<?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>43766</bug_id>
          
          <creation_ts>2010-08-09 20:07:54 -0700</creation_ts>
          <short_desc>Clients of HTMLTokenizer should be able to see where characters went in the token</short_desc>
          <delta_ts>2010-08-10 18:56:24 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          <blocked>43746</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>262461</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-09 20:07:54 -0700</bug_when>
    <thetext>Clients of HTMLTokenizer should be able to see where characters when in the token</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262466</commentid>
    <comment_count>1</comment_count>
      <attachid>63969</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-09 20:11:16 -0700</bug_when>
    <thetext>Created attachment 63969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262467</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-09 20:11:42 -0700</bug_when>
    <thetext>This facility will be used to implement view-source in Bug 43746.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262483</commentid>
    <comment_count>3</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-08-09 21:04:59 -0700</bug_when>
    <thetext>Attachment 63969 did not build on qt:
Build output: http://queues.webkit.org/results/3705014</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262507</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-09 23:15:39 -0700</bug_when>
    <thetext>Attachment 63969 did not build on mac:
Build output: http://queues.webkit.org/results/3772008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262511</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-09 23:37:15 -0700</bug_when>
    <thetext>Attachment 63969 did not build on chromium:
Build output: http://queues.webkit.org/results/3728008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262532</commentid>
    <comment_count>6</comment_count>
      <attachid>63969</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-10 00:37:34 -0700</bug_when>
    <thetext>Comment on attachment 63969
Patch

I worry there is an off-by-one typo waiting to happen here.

Looks OK AFAICT.

Did you test perf?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262811</commentid>
    <comment_count>7</comment_count>
      <attachid>63969</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-10 12:03:19 -0700</bug_when>
    <thetext>Comment on attachment 63969
Patch

&gt; Did you test perf?

I did.  It showed a minor slowdown (~1%) on the parser benchmark.  We discussed in person whether we should worry about these things.  I&apos;m inclined to land this now (to unblock the view-source + removing the old parser work), but I&apos;ll play with it a bit to understand the performance sensitivity.  I suspect it comes from adding 4 ints to the HTMLToken::Attribute structure, but we&apos;ll find out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262961</commentid>
    <comment_count>8</comment_count>
      <attachid>63969</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-10 18:56:18 -0700</bug_when>
    <thetext>Comment on attachment 63969
Patch

Clearing flags on attachment: 63969

Committed r65110: &lt;http://trac.webkit.org/changeset/65110&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262962</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-10 18:56:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63969</attachid>
            <date>2010-08-09 20:11:16 -0700</date>
            <delta_ts>2010-08-10 18:56:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43766-20100809201114.patch</filename>
            <type>text/plain</type>
            <size>11420</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTAzOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTAtMDgtMDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGll
bnRzIG9mIEhUTUxUb2tlbml6ZXIgc2hvdWxkIGJlIGFibGUgdG8gc2VlIHdoZXJlIGNoYXJhY3Rl
cnMgd2VudCBpbiB0aGUgdG9rZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQzNzY2CisKKyAgICAgICAgV2hlbiB2aWV3aW5nIHRoZSBzb3VyY2Ugb2Yg
YSBkb2N1bWVudCwgd2Ugd2FudCB0byBjb2xvcml6ZSBkaWZmZXJlbnQKKyAgICAgICAgcGFydHMg
b2YgdGhlIGlucHV0IGRlcGVuZGluZyBvbiBob3cgdGhleSB3ZXJlIHRva2VuaXplZC4gIEluIHRo
aXMKKyAgICAgICAgcGF0Y2gsIHdlIGV4cG9zZSB0aGUgaW50ZXJuYWwgc2VnbWVudGF0aW9uIG9m
IGEgdG9rZW4gYnkgcmVjb3JkaW5nIHRoZQorICAgICAgICBzdGFydCBhbmQgZW5kIG9mZnNldHMg
Zm9yIGVhY2ggYXR0cmlidXRlIG5hbWUgYW5kIGVhY2ggYXR0cmlidXRlIHZhbHVlLgorCisgICAg
ICAgICogaHRtbC9IVE1MVG9rZW4uaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbjo6YWRk
TmV3QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbjo6YmVnaW5BdHRyaWJ1
dGVOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbjo6ZW5kQXR0cmlidXRlTmFtZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW46OmJlZ2luQXR0cmlidXRlVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFRva2VuOjplbmRBdHRyaWJ1dGVWYWx1ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVG9rZW46OmFwcGVuZFRvQXR0cmlidXRlTmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVG9rZW46OmFwcGVuZFRvQXR0cmlidXRlVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6QXRvbWljSFRNTFRva2VuOjpBdG9taWNIVE1MVG9rZW4pOgorICAgICAgICAqIGh0bWwvSFRN
TFRva2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpuZXh0VG9r
ZW4pOgorCiAyMDEwLTA4LTA5ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxl
LmNvbT4KIAogICAgICAgICBTcGVjdWxhdGl2ZSBjaHJvbWl1bSBidWlsZCBmaXguCkluZGV4OiBX
ZWJDb3JlL2h0bWwvSFRNTFRva2VuLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxU
b2tlbi5oCShyZXZpc2lvbiA2NTAzOCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MVG9rZW4uaAkod29y
a2luZyBjb3B5KQpAQCAtNDUsOCArNDUsMTYgQEAgcHVibGljOgogICAgICAgICBFbmRPZkZpbGUs
CiAgICAgfTsKIAorICAgIGNsYXNzIFJhbmdlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIGludCBt
X3N0YXJ0OworICAgICAgICBpbnQgbV9lbmQ7CisgICAgfTsKKwogICAgIGNsYXNzIEF0dHJpYnV0
ZSB7CiAgICAgcHVibGljOgorICAgICAgICBSYW5nZSBtX25hbWVSYW5nZTsKKyAgICAgICAgUmFu
Z2UgbV92YWx1ZVJhbmdlOwogICAgICAgICBXVEY6OlZlY3RvcjxVQ2hhciwgMzI+IG1fbmFtZTsK
ICAgICAgICAgV1RGOjpWZWN0b3I8VUNoYXIsIDMyPiBtX3ZhbHVlOwogICAgIH07CkBAIC0xNDYs
MTIgKzE1NCw0NCBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gU3RhcnRUYWcg
fHwgbV90eXBlID09IEVuZFRhZyk7CiAgICAgICAgIG1fYXR0cmlidXRlcy5ncm93KG1fYXR0cmli
dXRlcy5zaXplKCkgKyAxKTsKICAgICAgICAgbV9jdXJyZW50QXR0cmlidXRlID0gJm1fYXR0cmli
dXRlcy5sYXN0KCk7CisjaWZuZGVmIE5ERUJVRworICAgICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUt
Pm1fbmFtZVJhbmdlLm1fc3RhcnQgPSAwOworICAgICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUtPm1f
bmFtZVJhbmdlLm1fZW5kID0gMDsKKyAgICAgICAgbV9jdXJyZW50QXR0cmlidXRlLT5tX3ZhbHVl
UmFuZ2UubV9zdGFydCA9IDA7CisgICAgICAgIG1fY3VycmVudEF0dHJpYnV0ZS0+bV92YWx1ZVJh
bmdlLm1fZW5kID0gMDsKKyNlbmRpZgorICAgIH0KKworICAgIHZvaWQgYmVnaW5BdHRyaWJ1dGVO
YW1lKGludCBpbmRleCkKKyAgICB7CisgICAgICAgIG1fY3VycmVudEF0dHJpYnV0ZS0+bV9uYW1l
UmFuZ2UubV9zdGFydCA9IGluZGV4OworICAgIH0KKworICAgIHZvaWQgZW5kQXR0cmlidXRlTmFt
ZShpbnQgaW5kZXgpCisgICAgeworICAgICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUtPm1fbmFtZVJh
bmdlLm1fZW5kID0gaW5kZXg7CisgICAgICAgIG1fY3VycmVudEF0dHJpYnV0ZS0+bV92YWx1ZVJh
bmdlLm1fc3RhcnQgPSBpbmRleDsKKyAgICAgICAgbV9jdXJyZW50QXR0cmlidXRlLT5tX3ZhbHVl
UmFuZ2UubV9lbmQgPSBpbmRleDsKKyAgICB9CisKKyAgICB2b2lkIGJlZ2luQXR0cmlidXRlVmFs
dWUoaW50IGluZGV4KQorICAgIHsKKyAgICAgICAgbV9jdXJyZW50QXR0cmlidXRlLT5tX3ZhbHVl
UmFuZ2UubV9zdGFydCA9IGluZGV4OworI2lmbmRlZiBOREVCVUcKKyAgICAgICAgbV9jdXJyZW50
QXR0cmlidXRlLT5tX3ZhbHVlUmFuZ2UubV9lbmQgPSAwOworI2VuZGlmCisgICAgfQorCisgICAg
dm9pZCBlbmRBdHRyaWJ1dGVWYWx1ZShpbnQgaW5kZXgpCisgICAgeworICAgICAgICBtX2N1cnJl
bnRBdHRyaWJ1dGUtPm1fdmFsdWVSYW5nZS5tX2VuZCA9IGluZGV4OwogICAgIH0KIAogICAgIHZv
aWQgYXBwZW5kVG9BdHRyaWJ1dGVOYW1lKFVDaGFyIGNoYXJhY3RlcikKICAgICB7CiAgICAgICAg
IEFTU0VSVChjaGFyYWN0ZXIpOwogICAgICAgICBBU1NFUlQobV90eXBlID09IFN0YXJ0VGFnIHx8
IG1fdHlwZSA9PSBFbmRUYWcpOworICAgICAgICBBU1NFUlQobV9jdXJyZW50QXR0cmlidXRlLT5t
X25hbWVSYW5nZS5tX3N0YXJ0KTsKICAgICAgICAgbV9jdXJyZW50QXR0cmlidXRlLT5tX25hbWUu
YXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgfQogCkBAIC0xNTksNiArMTk5LDcgQEAgcHVibGljOgog
ICAgIHsKICAgICAgICAgQVNTRVJUKGNoYXJhY3Rlcik7CiAgICAgICAgIEFTU0VSVChtX3R5cGUg
PT0gU3RhcnRUYWcgfHwgbV90eXBlID09IEVuZFRhZyk7CisgICAgICAgIEFTU0VSVChtX2N1cnJl
bnRBdHRyaWJ1dGUtPm1fdmFsdWVSYW5nZS5tX3N0YXJ0KTsKICAgICAgICAgbV9jdXJyZW50QXR0
cmlidXRlLT5tX3ZhbHVlLmFwcGVuZChjaGFyYWN0ZXIpOwogICAgIH0KIApAQCAtMzIzLDYgKzM2
NCwxMCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgaWYgKCFpdGVyLT5tX25hbWUuaXNFbXB0
eSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lKGl0ZXItPm1fbmFtZS5kYXRh
KCksIGl0ZXItPm1fbmFtZS5zaXplKCkpOwogICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUoaXRlci0+bV92YWx1ZS5kYXRhKCksIGl0ZXItPm1fdmFsdWUuc2l6ZSgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgQVNTRVJUKGl0ZXItPm1fbmFtZVJhbmdlLm1fc3RhcnQpOworICAgICAgICAg
ICAgICAgICAgICBBU1NFUlQoaXRlci0+bV9uYW1lUmFuZ2UubV9lbmQpOworICAgICAgICAgICAg
ICAgICAgICBBU1NFUlQoaXRlci0+bV92YWx1ZVJhbmdlLm1fc3RhcnQpOworICAgICAgICAgICAg
ICAgICAgICBBU1NFUlQoaXRlci0+bV92YWx1ZVJhbmdlLm1fZW5kKTsKICAgICAgICAgICAgICAg
ICAgICAgUmVmUHRyPEF0dHJpYnV0ZT4gbWFwcGVkQXR0cmlidXRlID0gQXR0cmlidXRlOjpjcmVh
dGVNYXBwZWQobmFtZSwgdmFsdWUpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIW1fYXR0cmli
dXRlcykgewogICAgICAgICAgICAgICAgICAgICAgICAgbV9hdHRyaWJ1dGVzID0gTmFtZWROb2Rl
TWFwOjpjcmVhdGUoKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAJKHJldmlzaW9uIDY1MDM4
KQorKysgV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04
NjQsNiArODY0LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkUwog
ICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAg
ICAgICAgIGVsc2UgaWYgKGlzQVNDSUlVcHBlcihjYykpIHsKICAgICAgICAgICAgIG1fdG9rZW4t
PmFkZE5ld0F0dHJpYnV0ZSgpOworICAgICAgICAgICAgbV90b2tlbi0+YmVnaW5BdHRyaWJ1dGVO
YW1lKHNvdXJjZS5udW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZCgpKTsKICAgICAgICAgICAgIG1f
dG9rZW4tPmFwcGVuZFRvQXR0cmlidXRlTmFtZSh0b0xvd2VyQ2FzZShjYykpOwogICAgICAgICAg
ICAgQURWQU5DRV9UTyhBdHRyaWJ1dGVOYW1lU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNj
ID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKQEAgLTg3Myw2
ICs4NzQsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTCiAgICAg
ICAgICAgICBpZiAoY2MgPT0gJyInIHx8IGNjID09ICdcJycgfHwgY2MgPT0gJzwnIHx8IGNjID09
ICc9JykKICAgICAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2Vu
LT5hZGROZXdBdHRyaWJ1dGUoKTsKKyAgICAgICAgICAgIG1fdG9rZW4tPmJlZ2luQXR0cmlidXRl
TmFtZShzb3VyY2UubnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQoKSk7CiAgICAgICAgICAgICBt
X3Rva2VuLT5hcHBlbmRUb0F0dHJpYnV0ZU5hbWUoY2MpOwogICAgICAgICAgICAgQURWQU5DRV9U
TyhBdHRyaWJ1dGVOYW1lU3RhdGUpOwogICAgICAgICB9CkBAIC04ODAsMTkgKzg4MiwyNCBAQCBi
b29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTCiAgICAgRU5EX1NUQVRFKCkK
IAogICAgIEJFR0lOX1NUQVRFKEF0dHJpYnV0ZU5hbWVTdGF0ZSkgewotICAgICAgICBpZiAoaXNU
b2tlbml6ZXJXaGl0ZXNwYWNlKGNjKSkKKyAgICAgICAgaWYgKGlzVG9rZW5pemVyV2hpdGVzcGFj
ZShjYykpIHsKKyAgICAgICAgICAgIG1fdG9rZW4tPmVuZEF0dHJpYnV0ZU5hbWUoc291cmNlLm51
bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhBZnRl
ckF0dHJpYnV0ZU5hbWVTdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGNjID09ICcvJykKKyAgICAg
ICAgfSBlbHNlIGlmIChjYyA9PSAnLycpIHsKKyAgICAgICAgICAgIG1fdG9rZW4tPmVuZEF0dHJp
YnV0ZU5hbWUoc291cmNlLm51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkpOwogICAgICAgICAg
ICAgQURWQU5DRV9UTyhTZWxmQ2xvc2luZ1N0YXJ0VGFnU3RhdGUpOwotICAgICAgICBlbHNlIGlm
IChjYyA9PSAnPScpCisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJz0nKSB7CisgICAgICAgICAg
ICBtX3Rva2VuLT5lbmRBdHRyaWJ1dGVOYW1lKHNvdXJjZS5udW1iZXJPZkNoYXJhY3RlcnNDb25z
dW1lZCgpKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQmVmb3JlQXR0cmlidXRlVmFsdWVTdGF0
ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGNjID09ICc+JykKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9
PSAnPicpIHsKKyAgICAgICAgICAgIG1fdG9rZW4tPmVuZEF0dHJpYnV0ZU5hbWUoc291cmNlLm51
bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkpOwogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRS
ZXN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGlzQVNDSUlVcHBl
cihjYykpIHsKKyAgICAgICAgfSBlbHNlIGlmIChpc0FTQ0lJVXBwZXIoY2MpKSB7CiAgICAgICAg
ICAgICBtX3Rva2VuLT5hcHBlbmRUb0F0dHJpYnV0ZU5hbWUodG9Mb3dlckNhc2UoY2MpKTsKICAg
ICAgICAgICAgIEFEVkFOQ0VfVE8oQXR0cmlidXRlTmFtZVN0YXRlKTsKICAgICAgICAgfSBlbHNl
IGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7CiAg
ICAgICAgICAgICBwYXJzZUVycm9yKCk7CisgICAgICAgICAgICBtX3Rva2VuLT5lbmRBdHRyaWJ1
dGVOYW1lKHNvdXJjZS5udW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZCgpKTsKICAgICAgICAgICAg
IFJFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
aWYgKGNjID09ICciJyB8fCBjYyA9PSAnXCcnIHx8IGNjID09ICc8JyB8fCBjYyA9PSAnPScpCkBA
IC05MTQsNiArOTIxLDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVk
UwogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7
CiAgICAgICAgIGVsc2UgaWYgKGlzQVNDSUlVcHBlcihjYykpIHsKICAgICAgICAgICAgIG1fdG9r
ZW4tPmFkZE5ld0F0dHJpYnV0ZSgpOworICAgICAgICAgICAgbV90b2tlbi0+YmVnaW5BdHRyaWJ1
dGVOYW1lKHNvdXJjZS5udW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZCgpKTsKICAgICAgICAgICAg
IG1fdG9rZW4tPmFwcGVuZFRvQXR0cmlidXRlTmFtZSh0b0xvd2VyQ2FzZShjYykpOwogICAgICAg
ICAgICAgQURWQU5DRV9UTyhBdHRyaWJ1dGVOYW1lU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYg
KGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKQEAgLTky
Myw2ICs5MzEsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTCiAg
ICAgICAgICAgICBpZiAoY2MgPT0gJyInIHx8IGNjID09ICdcJycgfHwgY2MgPT0gJzwnKQogICAg
ICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPmFkZE5ld0F0
dHJpYnV0ZSgpOworICAgICAgICAgICAgbV90b2tlbi0+YmVnaW5BdHRyaWJ1dGVOYW1lKHNvdXJj
ZS5udW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZCgpKTsKICAgICAgICAgICAgIG1fdG9rZW4tPmFw
cGVuZFRvQXR0cmlidXRlTmFtZShjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKEF0dHJpYnV0
ZU5hbWVTdGF0ZSk7CiAgICAgICAgIH0KQEAgLTkzMiwxMyArOTQxLDE2IEBAIGJvb2wgSFRNTFRv
a2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFMKICAgICBCRUdJTl9TVEFURShCZWZvcmVBdHRy
aWJ1dGVWYWx1ZVN0YXRlKSB7CiAgICAgICAgIGlmIChpc1Rva2VuaXplcldoaXRlc3BhY2UoY2Mp
KQogICAgICAgICAgICAgQURWQU5DRV9UTyhCZWZvcmVBdHRyaWJ1dGVWYWx1ZVN0YXRlKTsKLSAg
ICAgICAgZWxzZSBpZiAoY2MgPT0gJyInKQorICAgICAgICBlbHNlIGlmIChjYyA9PSAnIicpIHsK
KyAgICAgICAgICAgIG1fdG9rZW4tPmJlZ2luQXR0cmlidXRlVmFsdWUoc291cmNlLm51bWJlck9m
Q2hhcmFjdGVyc0NvbnN1bWVkKCkgKyAxKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQXR0cmli
dXRlVmFsdWVEb3VibGVRdW90ZWRTdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGNjID09ICcmJykK
KyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnJicpIHsKKyAgICAgICAgICAgIG1fdG9rZW4tPmJl
Z2luQXR0cmlidXRlVmFsdWUoc291cmNlLm51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkpOwog
ICAgICAgICAgICAgUkVDT05TVU1FX0lOKEF0dHJpYnV0ZVZhbHVlVW5xdW90ZWRTdGF0ZSk7Ci0g
ICAgICAgIGVsc2UgaWYgKGNjID09ICdcJycpCisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJ1wn
JykgeworICAgICAgICAgICAgbV90b2tlbi0+YmVnaW5BdHRyaWJ1dGVWYWx1ZShzb3VyY2UubnVt
YmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQoKSArIDEpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhB
dHRyaWJ1dGVWYWx1ZVNpbmdsZVF1b3RlZFN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAoY2MgPT0g
Jz4nKSB7CisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJz4nKSB7CiAgICAgICAgICAgICBwYXJz
ZUVycm9yKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgRGF0
YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nv
cjo6ZW5kT2ZGaWxlTWFya2VyKSB7CkBAIC05NDcsNiArOTU5LDcgQEAgYm9vbCBIVE1MVG9rZW5p
emVyOjpuZXh0VG9rZW4oU2VnbWVudGVkUwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
aWYgKGNjID09ICc8JyB8fCBjYyA9PSAnPScgfHwgY2MgPT0gJ2AnKQogICAgICAgICAgICAgICAg
IHBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIG1fdG9rZW4tPmJlZ2luQXR0cmlidXRlVmFsdWUo
c291cmNlLm51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkpOwogICAgICAgICAgICAgbV90b2tl
bi0+YXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZShjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKEF0
dHJpYnV0ZVZhbHVlVW5xdW90ZWRTdGF0ZSk7CiAgICAgICAgIH0KQEAgLTk1NCwxMyArOTY3LDE1
IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFMKICAgICBFTkRfU1RB
VEUoKQogCiAgICAgQkVHSU5fU1RBVEUoQXR0cmlidXRlVmFsdWVEb3VibGVRdW90ZWRTdGF0ZSkg
ewotICAgICAgICBpZiAoY2MgPT0gJyInKQorICAgICAgICBpZiAoY2MgPT0gJyInKSB7CisgICAg
ICAgICAgICBtX3Rva2VuLT5lbmRBdHRyaWJ1dGVWYWx1ZShzb3VyY2UubnVtYmVyT2ZDaGFyYWN0
ZXJzQ29uc3VtZWQoKSk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKEFmdGVyQXR0cmlidXRlVmFs
dWVRdW90ZWRTdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGNjID09ICcmJykgeworICAgICAgICB9
IGVsc2UgaWYgKGNjID09ICcmJykgewogICAgICAgICAgICAgbV9hZGRpdGlvbmFsQWxsb3dlZENo
YXJhY3RlciA9ICciJzsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQ2hhcmFjdGVyUmVmZXJlbmNl
SW5BdHRyaWJ1dGVWYWx1ZVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0
cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVy
cm9yKCk7CisgICAgICAgICAgICBtX3Rva2VuLT5lbmRBdHRyaWJ1dGVWYWx1ZShzb3VyY2UubnVt
YmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQoKSk7CiAgICAgICAgICAgICBSRUNPTlNVTUVfSU4oRGF0
YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRv
QXR0cmlidXRlVmFsdWUoY2MpOwpAQCAtOTcwLDEzICs5ODUsMTUgQEAgYm9vbCBIVE1MVG9rZW5p
emVyOjpuZXh0VG9rZW4oU2VnbWVudGVkUwogICAgIEVORF9TVEFURSgpCiAKICAgICBCRUdJTl9T
VEFURShBdHRyaWJ1dGVWYWx1ZVNpbmdsZVF1b3RlZFN0YXRlKSB7Ci0gICAgICAgIGlmIChjYyA9
PSAnXCcnKQorICAgICAgICBpZiAoY2MgPT0gJ1wnJykgeworICAgICAgICAgICAgbV90b2tlbi0+
ZW5kQXR0cmlidXRlVmFsdWUoc291cmNlLm51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkpOwog
ICAgICAgICAgICAgQURWQU5DRV9UTyhBZnRlckF0dHJpYnV0ZVZhbHVlUXVvdGVkU3RhdGUpOwot
ICAgICAgICBlbHNlIGlmIChjYyA9PSAnJicpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAn
JicpIHsKICAgICAgICAgICAgIG1fYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIgPSAnXCcnOwog
ICAgICAgICAgICAgQURWQU5DRV9UTyhDaGFyYWN0ZXJSZWZlcmVuY2VJbkF0dHJpYnV0ZVZhbHVl
U3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29y
OjplbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKKyAgICAgICAg
ICAgIG1fdG9rZW4tPmVuZEF0dHJpYnV0ZVZhbHVlKHNvdXJjZS5udW1iZXJPZkNoYXJhY3RlcnND
b25zdW1lZCgpKTsKICAgICAgICAgICAgIFJFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZShj
Yyk7CkBAIC05ODYsMTUgKzEwMDMsMTggQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4o
U2VnbWVudGVkUwogICAgIEVORF9TVEFURSgpCiAKICAgICBCRUdJTl9TVEFURShBdHRyaWJ1dGVW
YWx1ZVVucXVvdGVkU3RhdGUpIHsKLSAgICAgICAgaWYgKGlzVG9rZW5pemVyV2hpdGVzcGFjZShj
YykpCisgICAgICAgIGlmIChpc1Rva2VuaXplcldoaXRlc3BhY2UoY2MpKSB7CisgICAgICAgICAg
ICBtX3Rva2VuLT5lbmRBdHRyaWJ1dGVWYWx1ZShzb3VyY2UubnVtYmVyT2ZDaGFyYWN0ZXJzQ29u
c3VtZWQoKSk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKEJlZm9yZUF0dHJpYnV0ZU5hbWVTdGF0
ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGNjID09ICcmJykgeworICAgICAgICB9IGVsc2UgaWYgKGNj
ID09ICcmJykgewogICAgICAgICAgICAgbV9hZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlciA9ICc+
JzsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQ2hhcmFjdGVyUmVmZXJlbmNlSW5BdHRyaWJ1dGVW
YWx1ZVN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPicpCisgICAgICAgIH0gZWxz
ZSBpZiAoY2MgPT0gJz4nKSB7CisgICAgICAgICAgICBtX3Rva2VuLT5lbmRBdHRyaWJ1dGVWYWx1
ZShzb3VyY2UubnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQoKSk7CiAgICAgICAgICAgICByZXR1
cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAo
Y2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAg
ICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJr
ZXIpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIG1fdG9rZW4tPmVu
ZEF0dHJpYnV0ZVZhbHVlKHNvdXJjZS5udW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZCgpKTsKICAg
ICAgICAgICAgIFJFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgaWYgKGNjID09ICciJyB8fCBjYyA9PSAnXCcnIHx8IGNjID09ICc8JyB8fCBjYyA9
PSAnPScgfHwgY2MgPT0gJ2AnKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>