<?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>93070</bug_id>
          
          <creation_ts>2012-08-02 23:44:36 -0700</creation_ts>
          <short_desc>Move DOM operations in the tree builder to HTMLConstructionSite.</short_desc>
          <delta_ts>2012-08-08 02:23:01 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>90751</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kwang Yul Seo">skyul</reporter>
          <assigned_to name="Kwang Yul Seo">skyul</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>686265</commentid>
    <comment_count>0</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-02 23:44:36 -0700</bug_when>
    <thetext>HTMLConstructionSite has DOM operations methods required for tree construction. But some DOM operations are still performed directly in the tree builder. Extracted such DOM operations and moved them to HTMLConstructionSite for consistency.
    
This change removes code duplication and improves the readability of HTMLTreeBuilder, esepcially HTMLTreeBuilder::callTheAdoptionAgency(AtomicHTMLToken*).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686267</commentid>
    <comment_count>1</comment_count>
      <attachid>156266</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-02 23:48:05 -0700</bug_when>
    <thetext>Created attachment 156266
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686270</commentid>
    <comment_count>2</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-02 23:53:05 -0700</bug_when>
    <thetext>This patch is a prerequisite for speculative parsing. 

Because we can&apos;t create nodes while in speculation, all DOM operations must be queued until we know if the speculation is successful or not. 

I want to ensure that all tree construction and DOM manipulations are performed only in HTMLConstructionSite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686275</commentid>
    <comment_count>3</comment_count>
      <attachid>156266</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-03 00:00:39 -0700</bug_when>
    <thetext>Comment on attachment 156266
Patch

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

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:-1612
&gt; -            newItem-&gt;element()-&gt;attach();

Can we use lazyAttach here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686276</commentid>
    <comment_count>4</comment_count>
      <attachid>156266</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-03 00:01:30 -0700</bug_when>
    <thetext>Comment on attachment 156266
Patch

This is probably right, but I&apos;m too tired to review it well right now.  I&apos;ll give it a shot tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686289</commentid>
    <comment_count>5</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-03 00:10:16 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 156266 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=156266&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:-1612
&gt; &gt; -            newItem-&gt;element()-&gt;attach();
&gt; 
&gt; Can we use lazyAttach here?

I am not sure. I don&apos;t understand the difference between lazyAttach and attach here. I just copied the original code verbatim to make sure not to change the behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686290</commentid>
    <comment_count>6</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-03 00:10:37 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 156266 [details])
&gt; This is probably right, but I&apos;m too tired to review it well right now.  I&apos;ll give it a shot tomorrow.

Okay. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686409</commentid>
    <comment_count>7</comment_count>
      <attachid>156288</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-03 01:36:48 -0700</bug_when>
    <thetext>Created attachment 156288
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686411</commentid>
    <comment_count>8</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-03 01:37:09 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=156288) [details]
&gt; Patch

I missed removeAllChildren in the previous patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686689</commentid>
    <comment_count>9</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-03 07:13:23 -0700</bug_when>
    <thetext>See also Bug 93113</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686910</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-03 10:25:14 -0700</bug_when>
    <thetext>@skyul: I wonder if we should keep these patches in your git branch for the moment.  If we don&apos;t end up with speculative parsing, then we probably won&apos;t want to add this layer of indirection...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686929</commentid>
    <comment_count>11</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-03 10:38:51 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; @skyul: I wonder if we should keep these patches in your git branch for the moment.  If we don&apos;t end up with speculative parsing, then we probably won&apos;t want to add this layer of indirection...

Okay. I won&apos;t land any patch on speculative parsing until we reach the final decision.

BTW, I though that this patch has its own benefit because it removes code duplication in the adoption agency algorithm. But I agree some new methods in HTMLConstructionSite just add a layer of indirection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686943</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-03 10:46:54 -0700</bug_when>
    <thetext>&gt; BTW, I though that this patch has its own benefit because it removes code duplication in the adoption agency algorithm. But I agree some new methods in HTMLConstructionSite just add a layer of indirection.

Yeah, that part of the patch is valuable independent of speculative parsing.

My guess is that we can come to a decision about speculative parsing relatively quickly, so this won&apos;t cause a long delay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686960</commentid>
    <comment_count>13</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-03 10:58:39 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Yeah, that part of the patch is valuable independent of speculative parsing.
&gt; 
&gt; My guess is that we can come to a decision about speculative parsing relatively quickly, so this won&apos;t cause a long delay.

I think I can complete the initial implementation within a week. I will push my work-in-progress patches into my git branch next Monday for interim review. Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689946</commentid>
    <comment_count>14</comment_count>
      <attachid>156288</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-07 23:04:38 -0700</bug_when>
    <thetext>Comment on attachment 156288
Patch

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

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:771
&gt; +        m_tree.detachNode(m_tree.openElements()-&gt;bodyElement());

I don&apos;t think detachNode is a good name. It reminds me of detach(), which has a completely different semantic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690012</commentid>
    <comment_count>15</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-08 00:22:38 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; I don&apos;t think detachNode is a good name. It reminds me of detach(), which has a completely different semantic.

Okay. What about removeChild? Does it sound better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690014</commentid>
    <comment_count>16</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-08 00:26:49 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; I don&apos;t think detachNode is a good name. It reminds me of detach(), which has a completely different semantic.
&gt; 
&gt; Okay. What about removeChild? Does it sound better?

Oops. I was confused. It should be something like removeFromItsParent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690079</commentid>
    <comment_count>17</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-08 02:22:48 -0700</bug_when>
    <thetext>Close this bug in favor of Bug 93455.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156266</attachid>
            <date>2012-08-02 23:48:05 -0700</date>
            <delta_ts>2012-08-03 01:36:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93070-20120803154731.patch</filename>
            <type>text/plain</type>
            <size>8194</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTEzYWQyMzU1MTk3NmU4
MzUwZDcwMGQ0NmRjMDgwOTYzYzhmNjQ5Ni4uOTNjZTJkZjczMzhmMjgyNzA0YTMzZWM1MzliYzhk
MzljOTkwMWQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM1IEBACiAyMDEyLTA4LTAyICBLd2Fu
ZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CiAKKyAgICAgICAgTW92ZSBET00gb3Bl
cmF0aW9ucyBpbiB0aGUgdHJlZSBidWlsZGVyIHRvIEhUTUxDb25zdHJ1Y3Rpb25TaXRlLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTMwNzAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIVE1MQ29uc3RydWN0
aW9uU2l0ZSBoYXMgRE9NIG9wZXJhdGlvbnMgbWV0aG9kcyByZXF1aXJlZCBmb3IgdHJlZSBjb25z
dHJ1Y3Rpb24uCisgICAgICAgIEJ1dCBzb21lIERPTSBvcGVyYXRpb25zIGFyZSBzdGlsbCBwZXJm
b3JtZWQgZGlyZWN0bHkgaW4gdGhlIHRyZWUgYnVpbGRlci4gRXh0cmFjdGVkCisgICAgICAgIHN1
Y2ggRE9NIG9wZXJhdGlvbnMgYW5kIG1vdmVkIHRoZW0gdG8gSFRNTENvbnN0cnVjdGlvblNpdGUg
Zm9yIGNvbnNpc3RlbmN5LgorCisgICAgICAgIFRoaXMgY2hhbmdlIHJlbW92ZXMgY29kZSBkdXBs
aWNhdGlvbiBhbmQgaW1wcm92ZXMgdGhlIHJlYWRhYmlsaXR5CisgICAgICAgIG9mIEhUTUxUcmVl
QnVpbGRlciwgZXNlcGNpYWxseSBIVE1MVHJlZUJ1aWxkZXI6OmNhbGxUaGVBZG9wdGlvbkFnZW5j
eShBdG9taWNIVE1MVG9rZW4qKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYXMgdGhpcyBpcyBq
dXN0IGEgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MQ29uc3RydWN0
aW9uU2l0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6YWRk
Q2hpbGRBbmRBdHRhY2gpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MQ29uc3RydWN0aW9uU2l0ZTo6ZGV0YWNoTm9kZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIv
SFRNTENvbnN0cnVjdGlvblNpdGUuaDoKKyAgICAgICAgKEhUTUxDb25zdHJ1Y3Rpb25TaXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjptb3ZlQWxsQ2hpbGRyZW5U
b05ld1BhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6c2V0
QXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzSXNpbmRleFN0YXJ0VGFn
Rm9ySW5Cb2R5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRyZWVCdWlsZGVyOjpjYWxsVGhlQWRvcHRpb25BZ2VuY3kpOgorCisyMDEyLTA4LTAyICBL
d2FuZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CisKICAgICAgICAgTW92ZSBjYXVz
ZXNGb3N0ZXJQYXJlbnRpbmcoKSB0byBIVE1MU3RhY2tJdGVtCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzA0OAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKaW5kZXggZmM5ZDdjNjY0
OGEyYzRhNzU1NDhmZTk2ZmZlNzlmNzQ5ZTJiMDJlNi4uYjM5ZTljNTIzNzNmODIyMTU5NGUxZDQw
NDUxMGEwZDAxOWRkNmY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcApAQCAtNDgyLDYgKzQ4MiwyMyBAQCB2b2lkIEhUTUxD
b25zdHJ1Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZShIVE1MQ29uc3RydWN0aW9uU2l0ZVRhc2sm
IHRhc2spCiAgICAgdGFzay5wYXJlbnQgPSBtX29wZW5FbGVtZW50cy5yb290Tm9kZSgpOyAvLyBE
b2N1bWVudEZyYWdtZW50CiB9CiAKK3ZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6OmFkZENoaWxk
QW5kQXR0YWNoKENvbnRhaW5lck5vZGUqIHBhcmVudCwgTm9kZSogY2hpbGQsIGJvb2wgbGF6eUF0
dGFjaCkKK3sKKyAgICBwYXJlbnQtPnBhcnNlckFkZENoaWxkKGNoaWxkKTsKKyAgICBpZiAocGFy
ZW50LT5hdHRhY2hlZCgpICYmICFjaGlsZC0+YXR0YWNoZWQoKSkgeworICAgICAgICBpZiAobGF6
eUF0dGFjaCkKKyAgICAgICAgICAgIGNoaWxkLT5sYXp5QXR0YWNoKCk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGNoaWxkLT5hdHRhY2goKTsKKyAgICB9Cit9CisKK3ZvaWQgSFRNTENvbnN0
cnVjdGlvblNpdGU6OmRldGFjaE5vZGUoTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoQ29udGFpbmVy
Tm9kZSogcGFyZW50ID0gbm9kZS0+cGFyZW50Tm9kZSgpKQorICAgICAgICBwYXJlbnQtPnBhcnNl
clJlbW92ZUNoaWxkKG5vZGUpOworfQorCiBib29sIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpzaG91
bGRGb3N0ZXJQYXJlbnQoKSBjb25zdAogewogICAgIHJldHVybiBtX3JlZGlyZWN0QXR0YWNoVG9G
b3N0ZXJQYXJlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxD
b25zdHJ1Y3Rpb25TaXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3Ry
dWN0aW9uU2l0ZS5oCmluZGV4IDYwNTcyYmRkODU2Mjc0NDVjYmQ4NjVhOTY3OWQyZmViYTVmNmE4
ZGMuLmRmZTUyYjk1MjcxZTI4NzM2YjU5NTBlMTg5Y2IyNDdjNTEzMGUzODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaApAQCAtOTcs
NiArOTcsMTEgQEAgcHVibGljOgogICAgIHZvaWQgaW5zZXJ0SFRNTEh0bWxTdGFydFRhZ0luQm9k
eShBdG9taWNIVE1MVG9rZW4qKTsKICAgICB2b2lkIGluc2VydEhUTUxCb2R5U3RhcnRUYWdJbkJv
ZHkoQXRvbWljSFRNTFRva2VuKik7CiAKKyAgICB2b2lkIGFkZENoaWxkQW5kQXR0YWNoKENvbnRh
aW5lck5vZGUqIHBhcmVudCwgTm9kZSogY2hpbGQsIGJvb2wgbGF6eUF0dGFjaCA9IHRydWUpOwor
ICAgIHZvaWQgZGV0YWNoTm9kZShOb2RlKik7CisgICAgdm9pZCBtb3ZlQWxsQ2hpbGRyZW5Ub05l
d1BhcmVudChDb250YWluZXJOb2RlKiBuZXdQYXJlbnQsIENvbnRhaW5lck5vZGUqIG9sZFBhcmVu
dCkgeyBuZXdQYXJlbnQtPnRha2VBbGxDaGlsZHJlbkZyb20ob2xkUGFyZW50KTsgfQorICAgIHZv
aWQgc2V0QXR0cmlidXRlKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJpYnV0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkgeyBlbGVtZW50LT5zZXRBdHRyaWJ1
dGUoYXR0cmlidXRlLCB2YWx1ZSk7IH0KKwogICAgIFBhc3NSZWZQdHI8SFRNTFN0YWNrSXRlbT4g
Y3JlYXRlRWxlbWVudEZyb21TYXZlZFRva2VuKEhUTUxTdGFja0l0ZW0qKTsKIAogICAgIGJvb2wg
c2hvdWxkRm9zdGVyUGFyZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAppbmRleCBlMThmNzU5OTkwMWVlNjAwNDhiNTExOTg2NzY2
MDNjNTdmNTc4MTNmLi5mMzk3Mzk0NjcwOTVjMTgwZjZjZDNkYzhiOTFlYjg2NTQ2YjUzMzI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKQEAg
LTU4OCw3ICs1ODgsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0lzaW5kZXhTdGFy
dFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIHByb2Nlc3NGYWtlU3Rh
cnRUYWcoZm9ybVRhZyk7CiAgICAgQXR0cmlidXRlKiBhY3Rpb25BdHRyaWJ1dGUgPSB0b2tlbi0+
Z2V0QXR0cmlidXRlSXRlbShhY3Rpb25BdHRyKTsKICAgICBpZiAoYWN0aW9uQXR0cmlidXRlKQot
ICAgICAgICBtX3RyZWUuZm9ybSgpLT5zZXRBdHRyaWJ1dGUoYWN0aW9uQXR0ciwgYWN0aW9uQXR0
cmlidXRlLT52YWx1ZSgpKTsKKyAgICAgICAgbV90cmVlLnNldEF0dHJpYnV0ZShtX3RyZWUuZm9y
bSgpLCBhY3Rpb25BdHRyLCBhY3Rpb25BdHRyaWJ1dGUtPnZhbHVlKCkpOwogICAgIHByb2Nlc3NG
YWtlU3RhcnRUYWcoaHJUYWcpOwogICAgIHByb2Nlc3NGYWtlU3RhcnRUYWcobGFiZWxUYWcpOwog
ICAgIEF0dHJpYnV0ZSogcHJvbXB0QXR0cmlidXRlID0gdG9rZW4tPmdldEF0dHJpYnV0ZUl0ZW0o
cHJvbXB0QXR0cik7CkBAIC03NjgsOSArNzY4LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICB9
CiAgICAgICAgIGlmICghbV9mcmFtZXNldE9rKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5i
b2R5RWxlbWVudCgpLT5yZW1vdmUoZWMpOwotICAgICAgICBBU1NFUlQoIWVjKTsKKyAgICAgICAg
bV90cmVlLmRldGFjaE5vZGUobV90cmVlLm9wZW5FbGVtZW50cygpLT5ib2R5RWxlbWVudCgpKTsK
ICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BVbnRpbChtX3RyZWUub3BlbkVsZW1l
bnRzKCktPmJvZHlFbGVtZW50KCkpOwogICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBv
cEhUTUxCb2R5RWxlbWVudCgpOwogICAgICAgICBBU1NFUlQobV90cmVlLm9wZW5FbGVtZW50cygp
LT50b3AoKSA9PSBtX3RyZWUub3BlbkVsZW1lbnRzKCktPmh0bWxFbGVtZW50KCkpOwpAQCAtMTU3
Niw0MSArMTU3NCwyNSBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6Y2FsbFRoZUFkb3B0aW9uQWdl
bmN5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICBpZiAobGFzdE5vZGUgPT0g
ZnVydGhlc3RCbG9jaykKICAgICAgICAgICAgICAgICBib29rbWFyay5tb3ZlVG9BZnRlcihub2Rl
RW50cnkpOwogICAgICAgICAgICAgLy8gNi42Ci0gICAgICAgICAgICBpZiAoQ29udGFpbmVyTm9k
ZSogcGFyZW50ID0gbGFzdE5vZGUtPmVsZW1lbnQoKS0+cGFyZW50Tm9kZSgpKQotICAgICAgICAg
ICAgICAgIHBhcmVudC0+cGFyc2VyUmVtb3ZlQ2hpbGQobGFzdE5vZGUtPmVsZW1lbnQoKSk7Ci0g
ICAgICAgICAgICBub2RlLT5lbGVtZW50KCktPnBhcnNlckFkZENoaWxkKGxhc3ROb2RlLT5lbGVt
ZW50KCkpOwotICAgICAgICAgICAgaWYgKGxhc3ROb2RlLT5lbGVtZW50KCktPnBhcmVudEVsZW1l
bnQoKS0+YXR0YWNoZWQoKSAmJiAhbGFzdE5vZGUtPmVsZW1lbnQoKS0+YXR0YWNoZWQoKSkKLSAg
ICAgICAgICAgICAgICBsYXN0Tm9kZS0+ZWxlbWVudCgpLT5sYXp5QXR0YWNoKCk7CisgICAgICAg
ICAgICBtX3RyZWUuZGV0YWNoTm9kZShsYXN0Tm9kZS0+ZWxlbWVudCgpKTsKKyAgICAgICAgICAg
IG1fdHJlZS5hZGRDaGlsZEFuZEF0dGFjaChub2RlLT5lbGVtZW50KCksIGxhc3ROb2RlLT5lbGVt
ZW50KCkpOwogICAgICAgICAgICAgLy8gNi43CiAgICAgICAgICAgICBsYXN0Tm9kZSA9IG5vZGU7
CiAgICAgICAgIH0KICAgICAgICAgLy8gNwotICAgICAgICBpZiAoQ29udGFpbmVyTm9kZSogcGFy
ZW50ID0gbGFzdE5vZGUtPmVsZW1lbnQoKS0+cGFyZW50Tm9kZSgpKQotICAgICAgICAgICAgcGFy
ZW50LT5wYXJzZXJSZW1vdmVDaGlsZChsYXN0Tm9kZS0+ZWxlbWVudCgpKTsKKyAgICAgICAgbV90
cmVlLmRldGFjaE5vZGUobGFzdE5vZGUtPmVsZW1lbnQoKSk7CiAgICAgICAgIGlmIChjb21tb25B
bmNlc3Rvci0+Y2F1c2VzRm9zdGVyUGFyZW50aW5nKCkpCiAgICAgICAgICAgICBtX3RyZWUuZm9z
dGVyUGFyZW50KGxhc3ROb2RlLT5lbGVtZW50KCkpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgIGNvbW1vbkFuY2VzdG9yLT5lbGVtZW50KCktPnBhcnNlckFkZENoaWxkKGxhc3ROb2RlLT5l
bGVtZW50KCkpOwotICAgICAgICAgICAgQVNTRVJUKGxhc3ROb2RlLT5zdGFja0l0ZW0oKS0+aXNF
bGVtZW50Tm9kZSgpKTsKLSAgICAgICAgICAgIEFTU0VSVChsYXN0Tm9kZS0+ZWxlbWVudCgpLT5w
YXJlbnROb2RlKCkpOwotICAgICAgICAgICAgaWYgKGxhc3ROb2RlLT5lbGVtZW50KCktPnBhcmVu
dE5vZGUoKS0+YXR0YWNoZWQoKSAmJiAhbGFzdE5vZGUtPmVsZW1lbnQoKS0+YXR0YWNoZWQoKSkK
LSAgICAgICAgICAgICAgICBsYXN0Tm9kZS0+ZWxlbWVudCgpLT5sYXp5QXR0YWNoKCk7Ci0gICAg
ICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV90cmVlLmFkZENoaWxkQW5kQXR0YWNo
KGNvbW1vbkFuY2VzdG9yLT5lbGVtZW50KCksIGxhc3ROb2RlLT5lbGVtZW50KCkpOwogICAgICAg
ICAvLyA4CiAgICAgICAgIFJlZlB0cjxIVE1MU3RhY2tJdGVtPiBuZXdJdGVtID0gbV90cmVlLmNy
ZWF0ZUVsZW1lbnRGcm9tU2F2ZWRUb2tlbihmb3JtYXR0aW5nRWxlbWVudFJlY29yZC0+c3RhY2tJ
dGVtKCkuZ2V0KCkpOwogICAgICAgICAvLyA5Ci0gICAgICAgIG5ld0l0ZW0tPmVsZW1lbnQoKS0+
dGFrZUFsbENoaWxkcmVuRnJvbShmdXJ0aGVzdEJsb2NrLT5lbGVtZW50KCkpOworICAgICAgICBt
X3RyZWUubW92ZUFsbENoaWxkcmVuVG9OZXdQYXJlbnQobmV3SXRlbS0+ZWxlbWVudCgpLCBmdXJ0
aGVzdEJsb2NrLT5lbGVtZW50KCkpOwogICAgICAgICAvLyAxMAotICAgICAgICBFbGVtZW50KiBm
dXJ0aGVzdEJsb2NrRWxlbWVudCA9IGZ1cnRoZXN0QmxvY2stPmVsZW1lbnQoKTsKLSAgICAgICAg
Ly8gRklYTUU6IEFsbCB0aGlzIGNyZWF0aW9uIC8gcGFyc2VyQWRkQ2hpbGQgLyBhdHRhY2ggYnVz
aW5lc3Mgc2hvdWxkCi0gICAgICAgIC8vICAgICAgICBiZSBpbiBIVE1MQ29uc3RydWN0aW9uU2l0
ZS4gIE15IGd1ZXNzIGlzIHRoYXQgc3RlcHMgOC0tMTIKLSAgICAgICAgLy8gICAgICAgIHNob3Vs
ZCBhbGwgYmUgaW4gc29tZSBIVE1MQ29uc3RydWN0aW9uU2l0ZSBmdW5jdGlvbi4KLSAgICAgICAg
ZnVydGhlc3RCbG9ja0VsZW1lbnQtPnBhcnNlckFkZENoaWxkKG5ld0l0ZW0tPmVsZW1lbnQoKSk7
Ci0gICAgICAgIGlmIChmdXJ0aGVzdEJsb2NrRWxlbWVudC0+YXR0YWNoZWQoKSAmJiAhbmV3SXRl
bS0+ZWxlbWVudCgpLT5hdHRhY2hlZCgpKSB7Ci0gICAgICAgICAgICAvLyBOb3RpY2UgdGhhdCBu
ZXdJdGVtLT5lbGVtZW50KCkgbWlnaHQgYWxyZWFkeSBiZSBhdHRhY2hlZCBpZiwgZm9yIGV4YW1w
bGUsIG9uZSBvZiB0aGUgcmVwYXJlbnRlZAotICAgICAgICAgICAgLy8gY2hpbGRyZW4gaXMgYSBz
dHlsZSBlbGVtZW50LCB3aGljaCBhdHRhY2hlcyBpdHNlbGYgYXV0b21hdGljYWxseS4KLSAgICAg
ICAgICAgIG5ld0l0ZW0tPmVsZW1lbnQoKS0+YXR0YWNoKCk7Ci0gICAgICAgIH0KKyAgICAgICAg
Ly8gTm90aWNlIHRoYXQgbmV3SXRlbS0+ZWxlbWVudCgpIG1pZ2h0IGFscmVhZHkgYmUgYXR0YWNo
ZWQgaWYsIGZvciBleGFtcGxlLCBvbmUgb2YgdGhlIHJlcGFyZW50ZWQKKyAgICAgICAgLy8gY2hp
bGRyZW4gaXMgYSBzdHlsZSBlbGVtZW50LCB3aGljaCBhdHRhY2hlcyBpdHNlbGYgYXV0b21hdGlj
YWxseS4KKyAgICAgICAgbV90cmVlLmFkZENoaWxkQW5kQXR0YWNoKGZ1cnRoZXN0QmxvY2stPmVs
ZW1lbnQoKSwgbmV3SXRlbS0+ZWxlbWVudCgpLCBmYWxzZSk7CiAgICAgICAgIC8vIDExCiAgICAg
ICAgIG1fdHJlZS5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKS0+c3dhcFRvKGZvcm1hdHRpbmdF
bGVtZW50LCBuZXdJdGVtLCBib29rbWFyayk7CiAgICAgICAgIC8vIDEyCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156288</attachid>
            <date>2012-08-03 01:36:48 -0700</date>
            <delta_ts>2012-08-08 02:23:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93070-20120803173614.patch</filename>
            <type>text/plain</type>
            <size>8941</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzJmNWJlYWJmZjA3ZmQz
ZGNmZmIwMTllY2I5MDIzNWZmN2U3MTBlMS4uZTFmZDY5NGI3YzE0NGU0NzIyODk1Y2M5ZWI3NDg5
ZDk3N2E3YjhlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDEyLTA4LTAzICBLd2Fu
ZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CiAKKyAgICAgICAgTW92ZSBET00gb3Bl
cmF0aW9ucyBpbiB0aGUgdHJlZSBidWlsZGVyIHRvIEhUTUxDb25zdHJ1Y3Rpb25TaXRlLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTMwNzAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIVE1MQ29uc3RydWN0
aW9uU2l0ZSBoYXMgRE9NIG9wZXJhdGlvbnMgbWV0aG9kcyByZXF1aXJlZCBmb3IgdHJlZSBjb25z
dHJ1Y3Rpb24uCisgICAgICAgIEJ1dCBzb21lIERPTSBvcGVyYXRpb25zIGFyZSBzdGlsbCBwZXJm
b3JtZWQgZGlyZWN0bHkgaW4gdGhlIHRyZWUgYnVpbGRlci4gRXh0cmFjdGVkCisgICAgICAgIHN1
Y2ggRE9NIG9wZXJhdGlvbnMgYW5kIG1vdmVkIHRoZW0gdG8gSFRNTENvbnN0cnVjdGlvblNpdGUg
Zm9yIGNvbnNpc3RlbmN5LgorCisgICAgICAgIFRoaXMgY2hhbmdlIHJlbW92ZXMgY29kZSBkdXBs
aWNhdGlvbiBhbmQgaW1wcm92ZXMgdGhlIHJlYWRhYmlsaXR5CisgICAgICAgIG9mIEhUTUxUcmVl
QnVpbGRlciwgZXNlcGNpYWxseSBIVE1MVHJlZUJ1aWxkZXI6OmNhbGxUaGVBZG9wdGlvbkFnZW5j
eShBdG9taWNIVE1MVG9rZW4qKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYXMgdGhpcyBpcyBq
dXN0IGEgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MQ29uc3RydWN0
aW9uU2l0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6YWRk
Q2hpbGRBbmRBdHRhY2gpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MQ29uc3RydWN0aW9uU2l0ZTo6ZGV0YWNoTm9kZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIv
SFRNTENvbnN0cnVjdGlvblNpdGUuaDoKKyAgICAgICAgKEhUTUxDb25zdHJ1Y3Rpb25TaXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjptb3ZlQWxsQ2hpbGRyZW5U
b05ld1BhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6cmVt
b3ZlQWxsQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6
OnNldEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0lzaW5kZXhTdGFy
dFRhZ0ZvckluQm9keSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6Y2FsbFRoZUFkb3B0aW9uQWdlbmN5KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyk6CisKKzIwMTItMDgtMDMgIEt3
YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55MTAwLm5ldD4KKwogICAgICAgICBVbnJldmlld2Vk
IHIxMjQ1MzYgZm9sbG93dXAsIGZpeCB0aGUgYXNzZXJ0aW9uIGVycm9yIG9uIENocm9taXVtLgog
CiAgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAppbmRleCBm
YzlkN2M2NjQ4YTJjNGE3NTU0OGZlOTZmZmU3OWY3NDllMmIwMmU2Li5iMzllOWM1MjM3M2Y4MjIx
NTk0ZTFkNDA0NTEwYTBkMDE5ZGQ2ZjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCkBAIC00ODIsNiArNDgyLDIzIEBAIHZv
aWQgSFRNTENvbnN0cnVjdGlvblNpdGU6OmZpbmRGb3N0ZXJTaXRlKEhUTUxDb25zdHJ1Y3Rpb25T
aXRlVGFzayYgdGFzaykKICAgICB0YXNrLnBhcmVudCA9IG1fb3BlbkVsZW1lbnRzLnJvb3ROb2Rl
KCk7IC8vIERvY3VtZW50RnJhZ21lbnQKIH0KIAordm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6
YWRkQ2hpbGRBbmRBdHRhY2goQ29udGFpbmVyTm9kZSogcGFyZW50LCBOb2RlKiBjaGlsZCwgYm9v
bCBsYXp5QXR0YWNoKQoreworICAgIHBhcmVudC0+cGFyc2VyQWRkQ2hpbGQoY2hpbGQpOworICAg
IGlmIChwYXJlbnQtPmF0dGFjaGVkKCkgJiYgIWNoaWxkLT5hdHRhY2hlZCgpKSB7CisgICAgICAg
IGlmIChsYXp5QXR0YWNoKQorICAgICAgICAgICAgY2hpbGQtPmxhenlBdHRhY2goKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgY2hpbGQtPmF0dGFjaCgpOworICAgIH0KK30KKwordm9pZCBI
VE1MQ29uc3RydWN0aW9uU2l0ZTo6ZGV0YWNoTm9kZShOb2RlKiBub2RlKQoreworICAgIGlmIChD
b250YWluZXJOb2RlKiBwYXJlbnQgPSBub2RlLT5wYXJlbnROb2RlKCkpCisgICAgICAgIHBhcmVu
dC0+cGFyc2VyUmVtb3ZlQ2hpbGQobm9kZSk7Cit9CisKIGJvb2wgSFRNTENvbnN0cnVjdGlvblNp
dGU6OnNob3VsZEZvc3RlclBhcmVudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcmVkaXJlY3RB
dHRhY2hUb0Zvc3RlclBhcmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxDb25zdHJ1Y3Rpb25TaXRlLmgKaW5kZXggNjA1NzJiZGQ4NTYyNzQ0NWNiZDg2NWE5Njc5ZDJm
ZWJhNWY2YThkYy4uODk3YWYwNjE1ZWEzOWMwNjdmZWY4NmQ1MjgxNzkzNDExYTUxMmZiMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5o
CkBAIC05Nyw2ICs5NywxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbnNlcnRIVE1MSHRtbFN0YXJ0
VGFnSW5Cb2R5KEF0b21pY0hUTUxUb2tlbiopOwogICAgIHZvaWQgaW5zZXJ0SFRNTEJvZHlTdGFy
dFRhZ0luQm9keShBdG9taWNIVE1MVG9rZW4qKTsKIAorICAgIHZvaWQgYWRkQ2hpbGRBbmRBdHRh
Y2goQ29udGFpbmVyTm9kZSogcGFyZW50LCBOb2RlKiBjaGlsZCwgYm9vbCBsYXp5QXR0YWNoID0g
dHJ1ZSk7CisgICAgdm9pZCBkZXRhY2hOb2RlKE5vZGUqKTsKKyAgICB2b2lkIG1vdmVBbGxDaGls
ZHJlblRvTmV3UGFyZW50KENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgQ29udGFpbmVyTm9kZSog
b2xkUGFyZW50KSB7IG5ld1BhcmVudC0+dGFrZUFsbENoaWxkcmVuRnJvbShvbGRQYXJlbnQpOyB9
CisgICAgdm9pZCByZW1vdmVBbGxDaGlsZHJlbihDb250YWluZXJOb2RlKiBub2RlKSB7IG5vZGUt
PnJlbW92ZUFsbENoaWxkcmVuKCk7IH0KKyAgICB2b2lkIHNldEF0dHJpYnV0ZShFbGVtZW50KiBl
bGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdmFsdWUpIHsgZWxlbWVudC0+c2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpOyB9CisK
ICAgICBQYXNzUmVmUHRyPEhUTUxTdGFja0l0ZW0+IGNyZWF0ZUVsZW1lbnRGcm9tU2F2ZWRUb2tl
bihIVE1MU3RhY2tJdGVtKik7CiAKICAgICBib29sIHNob3VsZEZvc3RlclBhcmVudCgpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKaW5k
ZXggYTdmMTQ1MTllZTIzMTVhY2Y1YWNhMThjYjA1NjE5ZmE3OTNjMTQ1Yy4uNWY4OWI0MWI2MjFi
MGZhOTJjZTEyYTFmN2VhOTc4ZjM5MWM3NTdjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCkBAIC01ODgsNyArNTg4LDcgQEAgdm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NJc2luZGV4U3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRv
a2VuKiB0b2tlbikKICAgICBwcm9jZXNzRmFrZVN0YXJ0VGFnKGZvcm1UYWcpOwogICAgIEF0dHJp
YnV0ZSogYWN0aW9uQXR0cmlidXRlID0gdG9rZW4tPmdldEF0dHJpYnV0ZUl0ZW0oYWN0aW9uQXR0
cik7CiAgICAgaWYgKGFjdGlvbkF0dHJpYnV0ZSkKLSAgICAgICAgbV90cmVlLmZvcm0oKS0+c2V0
QXR0cmlidXRlKGFjdGlvbkF0dHIsIGFjdGlvbkF0dHJpYnV0ZS0+dmFsdWUoKSk7CisgICAgICAg
IG1fdHJlZS5zZXRBdHRyaWJ1dGUobV90cmVlLmZvcm0oKSwgYWN0aW9uQXR0ciwgYWN0aW9uQXR0
cmlidXRlLT52YWx1ZSgpKTsKICAgICBwcm9jZXNzRmFrZVN0YXJ0VGFnKGhyVGFnKTsKICAgICBw
cm9jZXNzRmFrZVN0YXJ0VGFnKGxhYmVsVGFnKTsKICAgICBBdHRyaWJ1dGUqIHByb21wdEF0dHJp
YnV0ZSA9IHRva2VuLT5nZXRBdHRyaWJ1dGVJdGVtKHByb21wdEF0dHIpOwpAQCAtNzY4LDkgKzc2
OCw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRv
bWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgfQogICAgICAgICBpZiAoIW1fZnJhbWVzZXRP
aykKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0g
ICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+Ym9keUVsZW1lbnQoKS0+cmVtb3ZlKGVjKTsK
LSAgICAgICAgQVNTRVJUKCFlYyk7CisgICAgICAgIG1fdHJlZS5kZXRhY2hOb2RlKG1fdHJlZS5v
cGVuRWxlbWVudHMoKS0+Ym9keUVsZW1lbnQoKSk7CiAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+cG9wVW50aWwobV90cmVlLm9wZW5FbGVtZW50cygpLT5ib2R5RWxlbWVudCgpKTsKICAg
ICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BIVE1MQm9keUVsZW1lbnQoKTsKICAgICAg
ICAgQVNTRVJUKG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+dG9wKCkgPT0gbV90cmVlLm9wZW5FbGVt
ZW50cygpLT5odG1sRWxlbWVudCgpKTsKQEAgLTE1NzYsNDEgKzE1NzQsMjUgQEAgdm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OmNhbGxUaGVBZG9wdGlvbkFnZW5jeShBdG9taWNIVE1MVG9rZW4qIHRva2Vu
KQogICAgICAgICAgICAgaWYgKGxhc3ROb2RlID09IGZ1cnRoZXN0QmxvY2spCiAgICAgICAgICAg
ICAgICAgYm9va21hcmsubW92ZVRvQWZ0ZXIobm9kZUVudHJ5KTsKICAgICAgICAgICAgIC8vIDYu
NgotICAgICAgICAgICAgaWYgKENvbnRhaW5lck5vZGUqIHBhcmVudCA9IGxhc3ROb2RlLT5lbGVt
ZW50KCktPnBhcmVudE5vZGUoKSkKLSAgICAgICAgICAgICAgICBwYXJlbnQtPnBhcnNlclJlbW92
ZUNoaWxkKGxhc3ROb2RlLT5lbGVtZW50KCkpOwotICAgICAgICAgICAgbm9kZS0+ZWxlbWVudCgp
LT5wYXJzZXJBZGRDaGlsZChsYXN0Tm9kZS0+ZWxlbWVudCgpKTsKLSAgICAgICAgICAgIGlmIChs
YXN0Tm9kZS0+ZWxlbWVudCgpLT5wYXJlbnRFbGVtZW50KCktPmF0dGFjaGVkKCkgJiYgIWxhc3RO
b2RlLT5lbGVtZW50KCktPmF0dGFjaGVkKCkpCi0gICAgICAgICAgICAgICAgbGFzdE5vZGUtPmVs
ZW1lbnQoKS0+bGF6eUF0dGFjaCgpOworICAgICAgICAgICAgbV90cmVlLmRldGFjaE5vZGUobGFz
dE5vZGUtPmVsZW1lbnQoKSk7CisgICAgICAgICAgICBtX3RyZWUuYWRkQ2hpbGRBbmRBdHRhY2go
bm9kZS0+ZWxlbWVudCgpLCBsYXN0Tm9kZS0+ZWxlbWVudCgpKTsKICAgICAgICAgICAgIC8vIDYu
NwogICAgICAgICAgICAgbGFzdE5vZGUgPSBub2RlOwogICAgICAgICB9CiAgICAgICAgIC8vIDcK
LSAgICAgICAgaWYgKENvbnRhaW5lck5vZGUqIHBhcmVudCA9IGxhc3ROb2RlLT5lbGVtZW50KCkt
PnBhcmVudE5vZGUoKSkKLSAgICAgICAgICAgIHBhcmVudC0+cGFyc2VyUmVtb3ZlQ2hpbGQobGFz
dE5vZGUtPmVsZW1lbnQoKSk7CisgICAgICAgIG1fdHJlZS5kZXRhY2hOb2RlKGxhc3ROb2RlLT5l
bGVtZW50KCkpOwogICAgICAgICBpZiAoY29tbW9uQW5jZXN0b3ItPmNhdXNlc0Zvc3RlclBhcmVu
dGluZygpKQogICAgICAgICAgICAgbV90cmVlLmZvc3RlclBhcmVudChsYXN0Tm9kZS0+ZWxlbWVu
dCgpKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBjb21tb25BbmNlc3Rvci0+bm9kZSgp
LT5wYXJzZXJBZGRDaGlsZChsYXN0Tm9kZS0+ZWxlbWVudCgpKTsKLSAgICAgICAgICAgIEFTU0VS
VChsYXN0Tm9kZS0+c3RhY2tJdGVtKCktPmlzRWxlbWVudE5vZGUoKSk7Ci0gICAgICAgICAgICBB
U1NFUlQobGFzdE5vZGUtPmVsZW1lbnQoKS0+cGFyZW50Tm9kZSgpKTsKLSAgICAgICAgICAgIGlm
IChsYXN0Tm9kZS0+ZWxlbWVudCgpLT5wYXJlbnROb2RlKCktPmF0dGFjaGVkKCkgJiYgIWxhc3RO
b2RlLT5lbGVtZW50KCktPmF0dGFjaGVkKCkpCi0gICAgICAgICAgICAgICAgbGFzdE5vZGUtPmVs
ZW1lbnQoKS0+bGF6eUF0dGFjaCgpOwotICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIG1fdHJlZS5hZGRDaGlsZEFuZEF0dGFjaChjb21tb25BbmNlc3Rvci0+bm9kZSgpLCBsYXN0
Tm9kZS0+ZWxlbWVudCgpKTsKICAgICAgICAgLy8gOAogICAgICAgICBSZWZQdHI8SFRNTFN0YWNr
SXRlbT4gbmV3SXRlbSA9IG1fdHJlZS5jcmVhdGVFbGVtZW50RnJvbVNhdmVkVG9rZW4oZm9ybWF0
dGluZ0VsZW1lbnRSZWNvcmQtPnN0YWNrSXRlbSgpLmdldCgpKTsKICAgICAgICAgLy8gOQotICAg
ICAgICBuZXdJdGVtLT5lbGVtZW50KCktPnRha2VBbGxDaGlsZHJlbkZyb20oZnVydGhlc3RCbG9j
ay0+ZWxlbWVudCgpKTsKKyAgICAgICAgbV90cmVlLm1vdmVBbGxDaGlsZHJlblRvTmV3UGFyZW50
KG5ld0l0ZW0tPmVsZW1lbnQoKSwgZnVydGhlc3RCbG9jay0+ZWxlbWVudCgpKTsKICAgICAgICAg
Ly8gMTAKLSAgICAgICAgRWxlbWVudCogZnVydGhlc3RCbG9ja0VsZW1lbnQgPSBmdXJ0aGVzdEJs
b2NrLT5lbGVtZW50KCk7Ci0gICAgICAgIC8vIEZJWE1FOiBBbGwgdGhpcyBjcmVhdGlvbiAvIHBh
cnNlckFkZENoaWxkIC8gYXR0YWNoIGJ1c2luZXNzIHNob3VsZAotICAgICAgICAvLyAgICAgICAg
YmUgaW4gSFRNTENvbnN0cnVjdGlvblNpdGUuICBNeSBndWVzcyBpcyB0aGF0IHN0ZXBzIDgtLTEy
Ci0gICAgICAgIC8vICAgICAgICBzaG91bGQgYWxsIGJlIGluIHNvbWUgSFRNTENvbnN0cnVjdGlv
blNpdGUgZnVuY3Rpb24uCi0gICAgICAgIGZ1cnRoZXN0QmxvY2tFbGVtZW50LT5wYXJzZXJBZGRD
aGlsZChuZXdJdGVtLT5lbGVtZW50KCkpOwotICAgICAgICBpZiAoZnVydGhlc3RCbG9ja0VsZW1l
bnQtPmF0dGFjaGVkKCkgJiYgIW5ld0l0ZW0tPmVsZW1lbnQoKS0+YXR0YWNoZWQoKSkgewotICAg
ICAgICAgICAgLy8gTm90aWNlIHRoYXQgbmV3SXRlbS0+ZWxlbWVudCgpIG1pZ2h0IGFscmVhZHkg
YmUgYXR0YWNoZWQgaWYsIGZvciBleGFtcGxlLCBvbmUgb2YgdGhlIHJlcGFyZW50ZWQKLSAgICAg
ICAgICAgIC8vIGNoaWxkcmVuIGlzIGEgc3R5bGUgZWxlbWVudCwgd2hpY2ggYXR0YWNoZXMgaXRz
ZWxmIGF1dG9tYXRpY2FsbHkuCi0gICAgICAgICAgICBuZXdJdGVtLT5lbGVtZW50KCktPmF0dGFj
aCgpOwotICAgICAgICB9CisgICAgICAgIC8vIE5vdGljZSB0aGF0IG5ld0l0ZW0tPmVsZW1lbnQo
KSBtaWdodCBhbHJlYWR5IGJlIGF0dGFjaGVkIGlmLCBmb3IgZXhhbXBsZSwgb25lIG9mIHRoZSBy
ZXBhcmVudGVkCisgICAgICAgIC8vIGNoaWxkcmVuIGlzIGEgc3R5bGUgZWxlbWVudCwgd2hpY2gg
YXR0YWNoZXMgaXRzZWxmIGF1dG9tYXRpY2FsbHkuCisgICAgICAgIG1fdHJlZS5hZGRDaGlsZEFu
ZEF0dGFjaChmdXJ0aGVzdEJsb2NrLT5lbGVtZW50KCksIG5ld0l0ZW0tPmVsZW1lbnQoKSwgZmFs
c2UpOwogICAgICAgICAvLyAxMQogICAgICAgICBtX3RyZWUuYWN0aXZlRm9ybWF0dGluZ0VsZW1l
bnRzKCktPnN3YXBUbyhmb3JtYXR0aW5nRWxlbWVudCwgbmV3SXRlbSwgYm9va21hcmspOwogICAg
ICAgICAvLyAxMgpAQCAtMjEyNCw3ICsyMTA2LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIG1fc2NyaXB0
VG9Qcm9jZXNzID0gbV90cmVlLmN1cnJlbnRFbGVtZW50KCk7CiAgICAgICAgICAgICBtX3RyZWUu
b3BlbkVsZW1lbnRzKCktPnBvcCgpOwogICAgICAgICAgICAgaWYgKGlzUGFyc2luZ0ZyYWdtZW50
KCkgJiYgbV9mcmFnbWVudENvbnRleHQuc2NyaXB0aW5nUGVybWlzc2lvbigpID09IERpc2FsbG93
U2NyaXB0aW5nQ29udGVudCkKLSAgICAgICAgICAgICAgICBtX3NjcmlwdFRvUHJvY2Vzcy0+cmVt
b3ZlQWxsQ2hpbGRyZW4oKTsKKyAgICAgICAgICAgICAgICBtX3RyZWUucmVtb3ZlQWxsQ2hpbGRy
ZW4obV9zY3JpcHRUb1Byb2Nlc3MuZ2V0KCkpOwogICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9k
ZShtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZSk7CiAKICAgICAgICAgICAgIC8vIFRoaXMgdG9rZW4g
d2lsbCBub3QgaGF2ZSBiZWVuIGNyZWF0ZWQgYnkgdGhlIHRva2VuaXplciBpZiBhCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>