<?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>73497</bug_id>
          
          <creation_ts>2011-11-30 16:31:21 -0800</creation_ts>
          <short_desc>Copy/paste of the same content produces increasingly nested markup</short_desc>
          <delta_ts>2011-12-02 10:57:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>73510</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Enrica Casucci">enrica</reporter>
          <assigned_to name="Enrica Casucci">enrica</assigned_to>
          <cc>darin</cc>
    
    <cc>rniwa</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>512222</commentid>
    <comment_count>0</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-11-30 16:31:21 -0800</bug_when>
    <thetext>Start with the following markup:

&lt;div&gt;hello&lt;/div&gt;&lt;div&gt;world&lt;/div&gt;

Select all, copy and paste over the same content.
The markup produced is:

&lt;div&gt;&lt;div&gt;hello&lt;/div&gt;&lt;div&gt;world&lt;/div&gt;&lt;/div&gt;

Select all again and paste.
The markup produced is:

&lt;div&gt;&lt;div&gt;&lt;div&gt;hello&lt;/div&gt;&lt;div&gt;world&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;

Every time you select and paste one more div is added.
Deleting the selection will leave all the nested divs.

&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512233</commentid>
    <comment_count>1</comment_count>
      <attachid>117294</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-11-30 16:45:04 -0800</bug_when>
    <thetext>Created attachment 117294
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512253</commentid>
    <comment_count>2</comment_count>
      <attachid>117294</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-30 17:00:53 -0800</bug_when>
    <thetext>Comment on attachment 117294
Patch

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

r=me; but the use of deprecatedNode here in this new code seems like a bad idea.

&gt; Source/WebCore/editing/DeleteSelectionCommand.cpp:752
&gt; +    Node* node = m_endingPosition.deprecatedNode();

Do we have to use deprecatedNode? Can this be containerNode or anchorNode instead?

&gt; Source/WebCore/editing/DeleteSelectionCommand.cpp:758
&gt; +            node = node-&gt;parentNode();

This should be:

    node = parentNode;

&gt; Source/WebCore/editing/DeleteSelectionCommand.cpp:763
&gt; +            if (node == m_endingPosition.deprecatedNode())

Do we have to use deprecatedNode? Can this be containerNode or anchorNode instead?

&gt; Source/WebCore/editing/DeleteSelectionCommand.cpp:767
&gt; +            node = m_endingPosition.deprecatedNode();

Do we have to use deprecatedNode? Can this be containerNode or anchorNode instead?

&gt; Source/WebCore/editing/DeleteSelectionCommand.cpp:769
&gt; +            node = node-&gt;parentNode();

This should be:

    node = parentNode;

&gt; LayoutTests/editing/deleting/delete-and-cleanup.html:31
&gt; +    confimedMarkup = node.innerHTML;

Typo here: &quot;confimedMarkup&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512266</commentid>
    <comment_count>3</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-11-30 17:12:37 -0800</bug_when>
    <thetext>&gt; Do we have to use deprecatedNode? Can this be containerNode or anchorNode instead?
No, it should be anchorNode. Old habit die hard :-)
&gt; This should be:
&gt; 
&gt;     node = parentNode;
Done.
&gt; &gt; LayoutTests/editing/deleting/delete-and-cleanup.html:31
&gt; &gt; +    confimedMarkup = node.innerHTML;
&gt; 
&gt; Typo here: &quot;confimedMarkup&quot;.

Fixed: it was wrong on both tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512268</commentid>
    <comment_count>4</comment_count>
      <attachid>117294</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-30 17:15:29 -0800</bug_when>
    <thetext>Comment on attachment 117294
Patch

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

&gt;&gt; Source/WebCore/editing/DeleteSelectionCommand.cpp:752
&gt;&gt; +    Node* node = m_endingPosition.deprecatedNode();
&gt; 
&gt; Do we have to use deprecatedNode? Can this be containerNode or anchorNode instead?

containerNode should be used here since if m_endingPosition was before or after a div, then we&apos;re outside of that div.

&gt;&gt; Source/WebCore/editing/DeleteSelectionCommand.cpp:763
&gt;&gt; +            if (node == m_endingPosition.deprecatedNode())
&gt; 
&gt; Do we have to use deprecatedNode? Can this be containerNode or anchorNode instead?

This should be containerNode if we start our start from containerNode.

&gt;&gt; Source/WebCore/editing/DeleteSelectionCommand.cpp:767
&gt;&gt; +            node = m_endingPosition.deprecatedNode();
&gt; 
&gt; Do we have to use deprecatedNode? Can this be containerNode or anchorNode instead?

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512272</commentid>
    <comment_count>5</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-11-30 17:17:54 -0800</bug_when>
    <thetext>Committed revision 101575.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512311</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-30 18:28:40 -0800</bug_when>
    <thetext>The patch you landed seems to still have one deprecatedNode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512527</commentid>
    <comment_count>7</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-11-30 23:28:47 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; The patch you landed seems to still have one deprecatedNode.
I&apos;ll fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513929</commentid>
    <comment_count>8</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-12-02 10:57:49 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; The patch you landed seems to still have one deprecatedNode.
&gt; I&apos;ll fix it.

Fixed in revision 101830.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117294</attachid>
            <date>2011-11-30 16:45:04 -0800</date>
            <delta_ts>2011-11-30 17:15:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>deletecleanup.txt</filename>
            <type>text/plain</type>
            <size>10824</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTU2OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDExLTExLTMwICBFbnJpY2Eg
Q2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgQ29weS9wYXN0ZSBvZiB0aGUg
c2FtZSBjb250ZW50IHByb2R1Y2VzIGluY3JlYXNpbmdseSBuZXN0ZWQgbWFya3VwCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ5NworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTAyMDg2MDU+CisgICAgICAgIAorICAgICAgICBXaGVuIHBhc3Rpbmcg
YSBmcmFnbWVudCBvdmVyIGEgc2VsZWN0aW9uLCB3ZSBwZXJmb20gYSBEZWxldGVTZWxlY3Rpb24g
Y29tbWFuZAorICAgICAgICBmb2xsb3dlZCBieSBhIFJlcGxhY2VTZWxlY3Rpb24gY29tbWFuZC4g
RGVsZXRlIHNlbGVjdGlvbiBwcmVzZXJ2ZXMgdGhlIHN0eWxlCisgICAgICAgIG9mIHRoZSBzZWxl
Y3Rpb24gc3RhcnQsIGxlYXZpbmcgYWxsIHRoZSBibG9ja3MgY29udGFpbmluZyB0aGUgaW5zZXJ0
aW9uIHBvaW50LgorICAgICAgICBUaGlzIHBhdGNoIGVsaW1pbmF0ZXMgYWxsIHRoZSBuZXN0ZWQg
ZGl2cyB0aGF0IGRvbid0IHByb3ZpZGUgYWRkaXRpb25hbCBzdHlsZSwKKyAgICAgICAgYXZvaWRp
bmcgdGhlIHByb2xpZmVyYXRpb24gb2YgbmVzdGVkIGRpdnMuIAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBlZGl0aW5nL2RlbGV0aW5nL2Rl
bGV0ZS1hbmQtY2xlYW51cC5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL3Bhc3RlYm9hcmQv
cGFzdGUtd2l0aG91dC1uZXN0aW5nLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25Db21t
YW5kOjpyZW1vdmVSZWR1bmRhbnRCbG9ja3MpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rp
b25Db21tYW5kLmg6CisKIDIwMTEtMTEtMzAgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQ2Fubm90IHNlbGVjdCBSVEwgdGV4dCBpbnNpZGUgTFRSIHRleHQgZnJv
bSByaWdodCB0byBsZWZ0IGJ5IGEgbW91c2UgZHJhZwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCShyZXZpc2lvbiAxMDE1MzEp
CisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03NDYsNiArNzQ2LDMwIEBAIFN0cmluZyBEZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpvcmlnaW5hbFMKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKKy8vIFRoaXMgbWV0
aG9kIHJlbW92ZXMgZGl2IGVsZW1lbnRzIHdpdGggbm8gYXR0cmlidXRlcyB0aGF0IGhhdmUgb25s
eSBvbmUgY2hpbGQgb3Igbm8gY2hpbGRyZW4gYXQgYWxsLgordm9pZCBEZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpyZW1vdmVSZWR1bmRhbnRCbG9ja3MoKQoreworICAgIE5vZGUqIG5vZGUgPSBtX2Vu
ZGluZ1Bvc2l0aW9uLmRlcHJlY2F0ZWROb2RlKCk7CisgICAgTm9kZSogcm9vdE5vZGUgPSBub2Rl
LT5yb290RWRpdGFibGVFbGVtZW50KCk7CisgICAKKyAgICB3aGlsZSAobm9kZSAhPSByb290Tm9k
ZSkgeworICAgICAgICBOb2RlKiBwYXJlbnROb2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpOworICAg
ICAgICBpZiAoKHBhcmVudE5vZGUgJiYgcGFyZW50Tm9kZS0+Zmlyc3RDaGlsZCgpICE9IHBhcmVu
dE5vZGUtPmxhc3RDaGlsZCgpKSB8fCAhbm9kZS0+aGFzVGFnTmFtZShkaXZUYWcpKSB7CisgICAg
ICAgICAgICBub2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpOworICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIH0KKyAgICAgICAgY29uc3QgTmFtZWROb2RlTWFwKiBhdHRyaWJ1dGVNYXAgPSBu
b2RlLT5hdHRyaWJ1dGVzKCk7CisgICAgICAgIGlmICghYXR0cmlidXRlTWFwIHx8IGF0dHJpYnV0
ZU1hcC0+aXNFbXB0eSgpKSB7CisgICAgICAgICAgICBpZiAobm9kZSA9PSBtX2VuZGluZ1Bvc2l0
aW9uLmRlcHJlY2F0ZWROb2RlKCkpCisgICAgICAgICAgICAgICAgdXBkYXRlUG9zaXRpb25Gb3JO
b2RlUmVtb3ZhbChtX2VuZGluZ1Bvc2l0aW9uLCBub2RlKTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4o
bm9kZSk7CisgICAgICAgICAgICBub2RlID0gbV9lbmRpbmdQb3NpdGlvbi5kZXByZWNhdGVkTm9k
ZSgpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnROb2Rl
KCk7CisgICAgfQorfQorCiB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQog
ewogICAgIC8vIElmIHNlbGVjdGlvbiBoYXMgbm90IGJlZW4gc2V0IHRvIGEgY3VzdG9tIHNlbGVj
dGlvbiB3aGVuIHRoZSBjb21tYW5kIHdhcyBjcmVhdGVkLApAQCAtODEwLDggKzgzNCwxMCBAQCB2
b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIAogICAgIFJlZlB0cjxO
b2RlPiBwbGFjZWhvbGRlciA9IG1fbmVlZFBsYWNlaG9sZGVyID8gY3JlYXRlQnJlYWtFbGVtZW50
KGRvY3VtZW50KCkpLmdldCgpIDogMDsKICAgICAKLSAgICBpZiAocGxhY2Vob2xkZXIpCisgICAg
aWYgKHBsYWNlaG9sZGVyKSB7CisgICAgICAgIHJlbW92ZVJlZHVuZGFudEJsb2NrcygpOwogICAg
ICAgICBpbnNlcnROb2RlQXQocGxhY2Vob2xkZXIuZ2V0KCksIG1fZW5kaW5nUG9zaXRpb24pOwor
ICAgIH0KIAogICAgIHJlYmFsYW5jZVdoaXRlc3BhY2VBdChtX2VuZGluZ1Bvc2l0aW9uKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5k
LmgJKHJldmlzaW9uIDEwMTUzMSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw2ICs2Nyw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBjbGVhclRyYW5zaWVudFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92
ZU5vZGUoUGFzc1JlZlB0cjxOb2RlPik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHRGcm9t
Tm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworICAgIHZvaWQgcmVt
b3ZlUmVkdW5kYW50QmxvY2tzKCk7CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHByb3ZpZGVzIGFj
Y2VzcyB0byBvcmlnaW5hbCBzdHJpbmcgYWZ0ZXIgdGhlIGNvcnJlY3Rpb24gaGFzIGJlZW4gZGVs
ZXRlZC4KICAgICBTdHJpbmcgb3JpZ2luYWxTdHJpbmdGb3JBdXRvY29ycmVjdGlvbkF0QmVnaW5u
aW5nT2ZTZWxlY3Rpb24oKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTU2OCkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDExLTExLTMw
ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgQ29weS9wYXN0
ZSBvZiB0aGUgc2FtZSBjb250ZW50IHByb2R1Y2VzIGluY3JlYXNpbmdseSBuZXN0ZWQgbWFya3Vw
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ5Nwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAyMDg2MDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1hbmQt
Y2xlYW51cC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcv
ZGVsZXRlLWFuZC1jbGVhbnVwLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVi
b2FyZC9wYXN0ZS13aXRob3V0LW5lc3RpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0aG91dC1uZXN0aW5nLmh0bWw6IEFkZGVkLgor
CiAyMDExLTExLTMwICBWaW5jZW50IFNjaGVpYiAgPHNjaGVpYkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmViYXNpbmcgbWFueSBTVkcgdGV4dCAmIHBpeGVsIHRlc3RzIGR1ZSB0byByMTAxNTE3
IEFkZCBuZXcgcmVuZGVyZXIgZm9yIFNWR1JlY3RFbGVtZW50LiBEaWZmZXJlbmNlcyBhcmUgcHJp
bWFyaWx5IDEgcGl4ZWwgYm91bmRzIGRpZmZlcmVuY2VzIGFuZCBzb21lIGltYWdlcyB0aGF0IG1v
dmVkIGJ5IDFweC4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWFu
ZC1jbGVhbnVwLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5n
L2RlbGV0aW5nL2RlbGV0ZS1hbmQtY2xlYW51cC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1hbmQtY2xlYW51cC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhh
dCBkZWxldGlvbiBkb2VzIG5vdCBsZWF2ZSB1bm5lY2Vzc2FyeSBuZXN0ZWQgZGl2cy4KKworUEFT
UyBjb25maW1lZE1hcmt1cCBpcyAnPGJyPicKK1BBU1MgY29uZmltZWRNYXJrdXAgaXMgJzxicj4n
CitQQVNTIGNvbmZpbWVkTWFya3VwIGlzICc8ZGl2IGlkPSJteWRpdiI+PGJyPjwvZGl2PicKK1BB
U1MgY29uZmltZWRNYXJrdXAgaXMgJzxicj4nCitQQVNTIGNvbmZpbWVkTWFya3VwIGlzICc8Yj48
aT48YnI+PC9pPjwvYj4nCitQQVNTIGNvbmZpbWVkTWFya3VwIGlzICc8Yj48ZGl2IHN0eWxlPSJi
b3JkZXI6IHNvbGlkIHJlZCI+PGk+PGJyPjwvaT48L2Rpdj48L2I+JworUEFTUyBjb25maW1lZE1h
cmt1cCBpcyAnPGJyPicKK1BBU1MgY29uZmltZWRNYXJrdXAgaXMgJzxicj4nCitQQVNTIGNvbmZp
bWVkTWFya3VwIGlzICc8cD48YnI+PC9wPicKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5n
L2RlbGV0ZS1hbmQtY2xlYW51cC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRp
bmcvZGVsZXRpbmcvZGVsZXRlLWFuZC1jbGVhbnVwLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1hbmQtY2xlYW51cC5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj5UaGlzIHRlc3QgY2hlY2tzIHRoYXQgZGVsZXRpb24gZG9lcyBub3Qg
bGVhdmUgdW5uZWNlc3NhcnkgbmVzdGVkIGRpdnMuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0PgorCit2YXIgc2VsID0gZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7Cit2YXIg
cm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInJvb3QiKTsKK2RvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQocm9vdCk7CisKKworZnVuY3Rpb24gY3JlYXRlRWRpdGFibGUodGFnTmFtZSwgbWFy
a3VwKSB7CisgICAgdmFyIG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZ05hbWUpOwor
ICAgIG5vZGUuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKKyAgICBub2RlLmlubmVySFRNTCA9IG1h
cmt1cDsKKyAgICByZXR1cm4gbm9kZTsKK30KKworZnVuY3Rpb24gdGVzdERlbGV0ZSh0YWdOYW1l
LCBvcmlnaW5hbE1hcmt1cCwgZXhwZWN0ZWQpIHsKKyAgICB2YXIgbm9kZSA9IGNyZWF0ZUVkaXRh
YmxlKHRhZ05hbWUsIG9yaWdpbmFsTWFya3VwKTsKKyAgICByb290LmFwcGVuZENoaWxkKG5vZGUp
OworCisgICAgbm9kZS5mb2N1cygpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RB
bGwiLCBmYWxzZSk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkRlbGV0ZSIsIGZhbHNlKTsK
KworICAgIGNvbmZpbWVkTWFya3VwID0gbm9kZS5pbm5lckhUTUw7CisKKyAgICBzaG91bGRCZSgi
Y29uZmltZWRNYXJrdXAiLCAiJyIgKyBleHBlY3RlZCArICInIik7Cit9CisKK3Rlc3REZWxldGUo
ImRpdiIsICJIZWxsbyIsICI8YnI+Iik7Cit0ZXN0RGVsZXRlKCJkaXYiLCAiPGRpdj5IZWxsbzwv
ZGl2PiIsICI8YnI+Iik7Cit0ZXN0RGVsZXRlKCJkaXYiLCAiPGRpdiBpZD1cIm15ZGl2XCI+SGVs
bG88L2Rpdj4iLCAiPGRpdiBpZD1cIm15ZGl2XCI+PGJyPjwvZGl2PiIpOwordGVzdERlbGV0ZSgi
ZGl2IiwgIjxkaXY+PGRpdj5IZWxsbzwvZGl2PjwvZGl2PiIsICI8YnI+Iik7Cit0ZXN0RGVsZXRl
KCJkaXYiLCAiPGRpdj48Yj48ZGl2PjxpPkhlbGxvPC9pPjwvZGl2PjwvYj48L2Rpdj4iLCAiPGI+
PGk+PGJyPjwvaT48L2I+Iik7Cit0ZXN0RGVsZXRlKCJkaXYiLCAiPGRpdj48Yj48ZGl2IHN0eWxl
PVwiYm9yZGVyOiBzb2xpZCByZWRcIj48aT5IZWxsbzwvaT48L2Rpdj48L2I+PC9kaXY+IiwgIjxi
PjxkaXYgc3R5bGU9XCJib3JkZXI6IHNvbGlkIHJlZFwiPjxpPjxicj48L2k+PC9kaXY+PC9iPiIp
OwordGVzdERlbGV0ZSgiZGl2IiwgIjxkaXY+SGVsbG88L2Rpdj48ZGl2PndvcmxkPC9kaXY+Iiwg
Ijxicj4iKTsKK3Rlc3REZWxldGUoImRpdiIsICI8ZGl2PkhlbGxvPC9kaXY+PGRpdj53b3JsZDwv
ZGl2PiIsICI8YnI+Iik7Cit0ZXN0RGVsZXRlKCJkaXYiLCAiPGRpdj48cD5IZWxsbzwvcD48L2Rp
dj48cD53b3JsZDwvcD48L2Rpdj4iLCAiPHA+PGJyPjwvcD4iKTsKKworcm9vdC5zdHlsZS5kaXNw
bGF5ID0gIm5vbmUiOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXdpdGhvdXQtbmVzdGluZy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJk
L3Bhc3RlLXdpdGhvdXQtbmVzdGluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0aG91dC1uZXN0aW5nLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0
IGNvcHkgYSBzZWxlY3Rpb24gYW5kIHBhc3RlIG92ZXIgdGhlIHNhbWUgc2VsZWN0aW9uIGRvZXMg
bm90IGNyZWF0ZSBuZXN0ZWQgZGl2cy4KKworUEFTUyBjb25maW1lZE1hcmt1cCBpcyAnSGVsbG8n
CitQQVNTIGNvbmZpbWVkTWFya3VwIGlzICdIZWxsbzxicj53b3JsZCcKK1BBU1MgY29uZmltZWRN
YXJrdXAgaXMgJzxkaXY+SGVsbG88L2Rpdj48ZGl2PndvcmxkPC9kaXY+JworUEFTUyBjb25maW1l
ZE1hcmt1cCBpcyAnPGRpdj5IZWxsbzwvZGl2PjxkaXY+d29ybGQ8L2Rpdj4nCitQQVNTIGNvbmZp
bWVkTWFya3VwIGlzICc8ZGl2PjxiPjxpPkhlbGxvPC9pPjwvYj48L2Rpdj48ZGl2PjxiPjxpPndv
cmxkPC9pPjwvYj48L2Rpdj4nCitQQVNTIGNvbmZpbWVkTWFya3VwIGlzICc8ZGl2IHN0eWxlPSJ0
ZXh0LWFsaWduOiBjZW50ZXI7Ij48ZGl2Pjxmb250IGNvbG9yPSIjZmYwMDAwIj48Yj48aT5oZWxs
bzwvaT48L2I+PC9mb250PjwvZGl2PjxkaXY+PGZvbnQgY29sb3I9IiNmZjAwMDAiPjxiPjxpPndv
cmxkPC9pPjwvYj48L2ZvbnQ+PC9kaXY+PC9kaXY+JworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFz
dGVib2FyZC9wYXN0ZS13aXRob3V0LW5lc3RpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0aG91dC1uZXN0aW5nLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0aG91dC1u
ZXN0aW5nLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPlRoaXMgdGVzdCBjaGVja3MgdGhh
dCBjb3B5IGEgc2VsZWN0aW9uIGFuZCBwYXN0ZSBvdmVyIHRoZSBzYW1lIHNlbGVjdGlvbiBkb2Vz
IG5vdCBjcmVhdGUgbmVzdGVkIGRpdnMuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0PgorCit2YXIgc2VsID0gZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7Cit2YXIgcm9vdCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInJvb3QiKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQocm9vdCk7CisKKworZnVuY3Rpb24gY3JlYXRlRWRpdGFibGUodGFnTmFtZSwgbWFya3VwKSB7
CisgICAgdmFyIG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZ05hbWUpOworICAgIG5v
ZGUuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKKyAgICBub2RlLmlubmVySFRNTCA9IG1hcmt1cDsK
KyAgICByZXR1cm4gbm9kZTsKK30KKworZnVuY3Rpb24gdGVzdENvcHlQYXN0ZSh0YWdOYW1lLCBv
cmlnaW5hbE1hcmt1cCwgZXhwZWN0ZWQpIHsKKyAgICB2YXIgbm9kZSA9IGNyZWF0ZUVkaXRhYmxl
KHRhZ05hbWUsIG9yaWdpbmFsTWFya3VwKTsKKyAgICByb290LmFwcGVuZENoaWxkKG5vZGUpOwor
CisgICAgbm9kZS5mb2N1cygpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwi
LCBmYWxzZSk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkNvcHkiLCBmYWxzZSk7CisgICAg
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlBhc3RlIiwgZmFsc2UpOworCisgICAgY29uZmltZWRNYXJr
dXAgPSBub2RlLmlubmVySFRNTDsKKworICAgIHNob3VsZEJlKCJjb25maW1lZE1hcmt1cCIsICIn
IiArIGV4cGVjdGVkICsgIiciKTsKK30KKwordGVzdENvcHlQYXN0ZSgiZGl2IiwgIkhlbGxvIiwg
IkhlbGxvIik7Cit0ZXN0Q29weVBhc3RlKCJkaXYiLCAiSGVsbG88YnI+d29ybGQiLCAiSGVsbG88
YnI+d29ybGQiKTsKK3Rlc3RDb3B5UGFzdGUoImRpdiIsICI8ZGl2PkhlbGxvPC9kaXY+PGRpdj53
b3JsZDwvZGl2PiIsICI8ZGl2PkhlbGxvPC9kaXY+PGRpdj53b3JsZDwvZGl2PiIpOwordGVzdENv
cHlQYXN0ZSgiZGl2IiwgIjxkaXY+PGRpdj5IZWxsbzwvZGl2PjxkaXY+d29ybGQ8L2Rpdj48L2Rp
dj4iLCAiPGRpdj5IZWxsbzwvZGl2PjxkaXY+d29ybGQ8L2Rpdj4iKTsKK3Rlc3RDb3B5UGFzdGUo
ImRpdiIsICI8ZGl2PjxiPjxpPkhlbGxvPC9pPjwvYj48L2Rpdj48ZGl2PjxiPjxpPndvcmxkPC9p
PjwvYj48L2Rpdj4iLCAiPGRpdj48Yj48aT5IZWxsbzwvaT48L2I+PC9kaXY+PGRpdj48Yj48aT53
b3JsZDwvaT48L2I+PC9kaXY+Iik7Cit0ZXN0Q29weVBhc3RlKCJkaXYiLCAiPGRpdiBzdHlsZT1c
InRleHQtYWxpZ246IGNlbnRlcjtcIj48ZGl2Pjxmb250IGNvbG9yPVwiI2ZmMDAwMFwiPjxiPjxp
PmhlbGxvPC9pPjwvYj48L2ZvbnQ+PC9kaXY+PGRpdj48Zm9udCBjb2xvcj1cIiNmZjAwMDBcIj48
Yj48aT53b3JsZDwvaT48L2I+PC9mb250PjwvZGl2PjwvZGl2PiIsICI8ZGl2IHN0eWxlPVwidGV4
dC1hbGlnbjogY2VudGVyO1wiPjxkaXY+PGZvbnQgY29sb3I9XCIjZmYwMDAwXCI+PGI+PGk+aGVs
bG88L2k+PC9iPjwvZm9udD48L2Rpdj48ZGl2Pjxmb250IGNvbG9yPVwiI2ZmMDAwMFwiPjxiPjxp
PndvcmxkPC9pPjwvYj48L2ZvbnQ+PC9kaXY+PC9kaXY+Iik7CisKK3Jvb3Quc3R5bGUuZGlzcGxh
eSA9ICJub25lIjsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="116690"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>