<?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>76591</bug_id>
          
          <creation_ts>2012-01-18 17:44:31 -0800</creation_ts>
          <short_desc>Cache and reuse the NodeList returned by Node::childNodes().</short_desc>
          <delta_ts>2012-02-17 15:16:41 -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>DOM</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>rboucher</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>538357</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-01-18 17:44:31 -0800</bug_when>
    <thetext>We already cache the DynamicNodeList::Caches on NodeRareData, we should cache the entire ChildNodeList instead of recreating it every time to reduce memory consumption and match the behavior of other browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538384</commentid>
    <comment_count>1</comment_count>
      <attachid>123048</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-01-18 18:18:11 -0800</bug_when>
    <thetext>Created attachment 123048
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538388</commentid>
    <comment_count>2</comment_count>
      <attachid>123048</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-18 18:30:03 -0800</bug_when>
    <thetext>Comment on attachment 123048
Patch

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

Could you clarify that new behavior matches FF/Opera as discussed on IRC?

&gt; Source/WebCore/dom/ChildNodeList.h:44
&gt; +        void reset() { m_caches-&gt;reset(); }

We should move m_caches to DynamicNodList. Once we do that, we can just call DyanmicNodeList::invalidateCache instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538390</commentid>
    <comment_count>3</comment_count>
      <attachid>123048</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-18 18:34:34 -0800</bug_when>
    <thetext>Comment on attachment 123048
Patch

kling says he&apos;ll do the m_caches move in a follow up. r=me provided the change log entry is updated to mention the improved compatibility with other browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538397</commentid>
    <comment_count>4</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-01-18 18:55:14 -0800</bug_when>
    <thetext>Committed r105372: &lt;http://trac.webkit.org/changeset/105372&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559586</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-17 15:16:41 -0800</bug_when>
    <thetext>*** Bug 17184 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123048</attachid>
            <date>2012-01-18 18:18:11 -0800</date>
            <delta_ts>2012-01-18 18:34:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76591.diff</filename>
            <type>text/plain</type>
            <size>13843</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0NWRiYjhlLi5mMDE5MDY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDEt
MTggIEFuZHJlYXMgS2xpbmcgIDxhd2Vzb21la2xpbmdAYXBwbGUuY29tPgorCisgICAgICAgIENh
Y2hlIGFuZCByZXVzZSB0aGUgTm9kZUxpc3QgcmV0dXJuZWQgYnkgTm9kZTo6Y2hpbGROb2Rlcygp
LgorICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi83NjU5MT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIGdjLTkuaHRtbCB0byBkb2N1
bWVudCB0aGUgbmV3IGxpZmV0aW1lIGNoYXJhY3RlcmlzdGljcyBvZiBhIC5jaGlsZE5vZGVzIHdp
dGgKKyAgICAgICAgY3VzdG9tIHByb3BlcnRpZXMuIEFsc28gYWRkZWQgYSB0ZXN0IHRvIHZlcmlm
eSB0aGF0IC5jaGlsZE5vZGVzID09PSAuY2hpbGROb2Rlcy4KKworICAgICAgICAqIGZhc3QvZG9t
L2djLTktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL2djLTkuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2RvbS9ub2RlLWNoaWxkTm9kZXMtaWRlbXBvdGVuY2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9ub2RlLWNoaWxkTm9kZXMtaWRlbXBvdGVuY2UuaHRt
bDogQWRkZWQuCisKIDIwMTItMDEtMTggIEdhYm9yIFJhcGNzYW55aSAgPHJnYWJvckB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFtRdF0gVXBkYXRlIGFub3RoZXIgU1ZHIGV4cGVjdGVkIGFmdGVyIHIx
MDUyNDcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy05LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTktZXhwZWN0ZWQudHh0CmluZGV4IDRkMTZmOTAu
LjE5MWY0ZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTktZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTktZXhwZWN0ZWQudHh0CkBAIC0xNCw3
ICsxNCw3IEBAIFBBU1M6IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdjYW52YXMnKVsw
XS5nZXRDb250ZXh0KCcyZCcpLm15Q3VzdG9tUHJvcGVyCiBQQVNTOiBkb2N1bWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgnY2FudmFzJylbMF0uZ2V0Q29udGV4dCgnMmQnKS5jcmVhdGVMaW5lYXJH
cmFkaWVudCgwLCAwLCAwLCAwKS5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQg
YW5kIGlzLgogUEFTUzogZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2NhbnZhcycpWzBd
LmdldENvbnRleHQoJzJkJykuY3JlYXRlUGF0dGVybihuZXcgSW1hZ2UoKSwgJ25vLXJlcGVhdCcp
Lm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCiBQQVNTOiBkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0JylbMF0ub3B0aW9ucy5teUN1c3RvbVBy
b3BlcnR5IHNob3VsZCBiZSAxIGFuZCBpcy4KLVBBU1M6IGRvY3VtZW50LmJvZHkuY2hpbGROb2Rl
cy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgorUEFTUzogZG9j
dW1lbnQuYm9keS5jaGlsZE5vZGVzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIDEgYW5kIGlz
LgogUEFTUzogZG9jdW1lbnQuYWxsLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIDEgYW5kIGlz
LgogUEFTUzogZG9jdW1lbnQuaW1hZ2VzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIDEgYW5k
IGlzLgogUEFTUzogZG9jdW1lbnQuZW1iZWRzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIDEg
YW5kIGlzLgpAQCAtNTAsNyArNTAsNyBAQCBQQVNTOiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgnY2FudmFzJylbMF0uZ2V0Q29udGV4dCgnMmQnKS5teUN1c3RvbVByb3BlcgogUEFTUzog
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2NhbnZhcycpWzBdLmdldENvbnRleHQoJzJk
JykuY3JlYXRlTGluZWFyR3JhZGllbnQoMCwgMCwgMCwgMCkubXlDdXN0b21Qcm9wZXJ0eSBzaG91
bGQgYmUgdW5kZWZpbmVkIGFuZCBpcy4KIFBBU1M6IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCdjYW52YXMnKVswXS5nZXRDb250ZXh0KCcyZCcpLmNyZWF0ZVBhdHRlcm4obmV3IEltYWdl
KCksICduby1yZXBlYXQnKS5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5k
IGlzLgogUEFTUzogZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NlbGVjdCcpWzBdLm9w
dGlvbnMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgMSBhbmQgaXMuCi1QQVNTOiBkb2N1bWVu
dC5ib2R5LmNoaWxkTm9kZXMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZpbmVkIGFu
ZCBpcy4KK1BBU1M6IGRvY3VtZW50LmJvZHkuY2hpbGROb2Rlcy5teUN1c3RvbVByb3BlcnR5IHNo
b3VsZCBiZSAxIGFuZCBpcy4KIFBBU1M6IGRvY3VtZW50LmFsbC5teUN1c3RvbVByb3BlcnR5IHNo
b3VsZCBiZSAxIGFuZCBpcy4KIFBBU1M6IGRvY3VtZW50LmltYWdlcy5teUN1c3RvbVByb3BlcnR5
IHNob3VsZCBiZSAxIGFuZCBpcy4KIFBBU1M6IGRvY3VtZW50LmVtYmVkcy5teUN1c3RvbVByb3Bl
cnR5IHNob3VsZCBiZSAxIGFuZCBpcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L2djLTkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTkuaHRtbAppbmRleCAxYjE3ODZj
Li40OWYyMjQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy05Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2MtOS5odG1sCkBAIC0xMjMsNyArMTIzLDcgQEAgdmFy
IG9iamVjdHNUb1Rlc3QgPSBbCiAgICAgWyAiZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
J2NhbnZhcycpWzBdLmdldENvbnRleHQoJzJkJykuY3JlYXRlTGluZWFyR3JhZGllbnQoMCwgMCwg
MCwgMCkiIF0sIC8vIENhbnZhc0dyYWRpZW50CiAgICAgWyAiZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoJ2NhbnZhcycpWzBdLmdldENvbnRleHQoJzJkJykuY3JlYXRlUGF0dGVybihuZXcg
SW1hZ2UoKSwgJ25vLXJlcGVhdCcpIiBdLCAvLyBDYW52YXNQYXR0ZXJuCiAgICAgWyAiZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NlbGVjdCcpWzBdLm9wdGlvbnMiLCAiYWxsb3cgY3Vz
dG9tIiBdLAotICAgIFsgImRvY3VtZW50LmJvZHkuY2hpbGROb2RlcyIgXSwKKyAgICBbICJkb2N1
bWVudC5ib2R5LmNoaWxkTm9kZXMiLCAiYWxsb3cgY3VzdG9tIiBdLAogCiAgICAgWyAiZG9jdW1l
bnQuYWxsIiwgImFsbG93IGN1c3RvbSIgXSwKICAgICBbICJkb2N1bWVudC5pbWFnZXMiLCAiYWxs
b3cgY3VzdG9tIiBdLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1jaGls
ZE5vZGVzLWlkZW1wb3RlbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25v
ZGUtY2hpbGROb2Rlcy1pZGVtcG90ZW5jZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZmZjZmM1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL25vZGUtY2hpbGROb2Rlcy1pZGVtcG90ZW5jZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMSBAQAorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgTm9kZS5jaGlsZE5vZGVzIHJldHVy
bnMgdGhlIHNhbWUgTm9kZUxpc3Qgd2hlbiBjYWxsZWQgcmVwZWF0ZWRseS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNoaWxk
Tm9kZXMgaXMgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNoaWxkTm9kZXMKK1BBU1MgZG9jdW1l
bnQuZG9jdW1lbnRFbGVtZW50LmNoaWxkTm9kZXMgPT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVu
dC5jaGlsZE5vZGVzIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2RlLWNo
aWxkTm9kZXMtaWRlbXBvdGVuY2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtY2hp
bGROb2Rlcy1pZGVtcG90ZW5jZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmZkYjkwZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rl
LWNoaWxkTm9kZXMtaWRlbXBvdGVuY2UuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IE5v
ZGUuY2hpbGROb2RlcyByZXR1cm5zIHRoZSBzYW1lIE5vZGVMaXN0IHdoZW4gY2FsbGVkIHJlcGVh
dGVkbHkuIik7CisKK3Nob3VsZEJlKCJkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2Rl
cyIsICJkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2RlcyIpOworc2hvdWxkQmVUcnVl
KCJkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2RlcyA9PT0gZG9jdW1lbnQuZG9jdW1l
bnRFbGVtZW50LmNoaWxkTm9kZXMiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggNTYxYTQ0Mi4uZjM4ZThjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBA
CisyMDEyLTAxLTE4ICBBbmRyZWFzIEtsaW5nICA8YXdlc29tZWtsaW5nQGFwcGxlLmNvbT4KKwor
ICAgICAgICBDYWNoZSBhbmQgcmV1c2UgdGhlIE5vZGVMaXN0IHJldHVybmVkIGJ5IE5vZGU6OmNo
aWxkTm9kZXMoKS4KKyAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvNzY1OTE+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBvbmx5
IGNhY2hpbmcgdGhlIER5bmFtaWNOb2RlTGlzdDo6Q2FjaGVzIGZvciAuY2hpbGROb2RlcyBvbiBO
b2RlUmFyZURhdGEsCisgICAgICAgIGNhY2hlIHRoZSBmdWxsIENoaWxkTm9kZUxpc3Qgb2JqZWN0
LiBMaWZldGltZSBtYW5hZ2VtZW50IGlzIGxlZnQgdG8gd3JhcHBlcnMgd2hvCisgICAgICAgIGlu
dmFsaWRhdGUgdGhlIGNhY2hlZCAocmF3KSBwb2ludGVyIHZpYSBOb2RlOjpyZW1vdmVDYWNoZWRD
aGlsZE5vZGVMaXN0KCksIGNhbGxlZAorICAgICAgICBmcm9tIH5DaGlsZE5vZGVMaXN0KCkuCisK
KyAgICAgICAgVGhpcyByZWR1Y2VzIG1lbW9yeSBjb25zdW1wdGlvbiBieSAxOTIga0IgKG9uIDMy
LWJpdCkgd2hlbiB2aWV3aW5nIHRoZSBmdWxsCisgICAgICAgIEhUTUw1IHNwZWMgYXQgPGh0dHA6
Ly93aGF0d2cub3JnL2M+CisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vZ2MtOS5odG1sCisgICAg
ICAgICAgICAgIGZhc3QvZG9tL25vZGUtY2hpbGROb2Rlcy1pZGVtcG90ZW5jZS5odG1sCisKKyAg
ICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpjaGlsZE5vZGVz
KToKKyAgICAgICAgKiBkb20vTm9kZVJhcmVEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
UmFyZURhdGE6Ok5vZGVSYXJlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6
OmNoaWxkTm9kZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpzZXRDaGls
ZE5vZGVMaXN0KToKKworICAgICAgICAgICAgT25seSBjb25zdHJ1Y3Qgb25lIENoaWxkTm9kZUxp
c3QgcGVyIE5vZGUgYW5kIHN0b3JlIGl0IG9uIE5vZGVSYXJlRGF0YSBmb3IKKyAgICAgICAgICAg
IHJldHJpZXZhbCBhY3Jvc3MgY2hpbGROb2RlcygpIGNhbGxzLgorCisgICAgICAgICogZG9tL0No
aWxkTm9kZUxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNoaWxkTm9kZUxpc3Q6OmNyZWF0ZSk6
CisgICAgICAgICogZG9tL0NoaWxkTm9kZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hp
bGROb2RlTGlzdDo6Q2hpbGROb2RlTGlzdCk6CisKKyAgICAgICAgICAgIENvbnN0cnVjdCB0aGUg
Q2FjaGVzIGF0IGNyZWF0aW9uIGluc3RlYWQgb2YgcGFzc2luZyBpdCB0byB0aGUgY29uc3RydWN0
b3IuCisKKyAgICAgICAgKFdlYkNvcmU6OkNoaWxkTm9kZUxpc3Q6OnJlc2V0KToKKworICAgICAg
ICAgICAgQWRkZWQsIHJlc2V0cyB0aGUgaW50ZXJuYWwgY2FjaGUuCisKKyAgICAgICAgKFdlYkNv
cmU6OkNoaWxkTm9kZUxpc3Q6On5DaGlsZE5vZGVMaXN0KToKKworICAgICAgICAgICAgQ2FsbCBO
b2RlOjpyZW1vdmVDYWNoZWRDaGlsZE5vZGVMaXN0KCkuCisKKyAgICAgICAgKiBkb20vRHluYW1p
Y05vZGVMaXN0LmNwcDoKKyAgICAgICAgKiBkb20vRHluYW1pY05vZGVMaXN0Lmg6CisKKyAgICAg
ICAgICAgIEhhdmUgRHluYW1pY05vZGVMaXN0IChhbmQgc3ViY2xhc3NlcykgcmVzcG9uZCAidHJ1
ZSIgdG8gaXNEeW5hbWljTm9kZUxpc3QoKS4KKyAgICAgICAgICAgIFByZXZpb3VzbHkgb25seSBE
eW5hbWljU3VidHJlZU5vZGVMaXN0IChhbmQgc3ViY2xhc3Nlcykgd2VyZSBkb2luZyB0aGlzLgor
ICAgICAgICAgICAgV2l0aG91dCBpdCwgSlNDIG1heSBHQyBvdXIgQ2hpbGROb2RlTGlzdHMgcHJl
bWF0dXJlbHkgKGR1ZSB0byBOb2RlTGlzdCdzCisgICAgICAgICAgICBpc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cygpIGltcGxlbWVudGF0aW9uIGNoZWNraW5nIGlzRHluYW1pY05vZGVMaXN0KCku
KQorCisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpOb2RlOjpyZW1vdmVDYWNoZWRDaGlsZE5vZGVMaXN0KToKKworICAgICAg
ICAgICAgQWRkZWQgZm9yIH5DaGlsZE5vZGVMaXN0KCkgdG8gcmVtb3ZlIHRoZSBwb2ludGVyIHRv
IGl0c2VsZiBmcm9tIHRoZSBOb2RlLgorCisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6
OmNsZWFyQ2hpbGROb2RlTGlzdENhY2hlKToKKworICAgICAgICAgICAgQ2FsbCBDaGlsZE5vZGVM
aXN0OjpyZXNldCgpLgorCiAyMDEyLTAxLTE3ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEVuYWJsZSBzdXBwb3J0IGZvciBP
cGVuIFNjcmlwdCBkaWFsb2cgYmFzZWQgb24gRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTm9kZUxpc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0NoaWxkTm9kZUxpc3QuY3BwCmluZGV4IGFiYjU0MDEuLjg2NTQ3MGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZE5vZGVMaXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ2hpbGROb2RlTGlzdC5jcHAKQEAgLTI3LDEyICsyNywxNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNoaWxkTm9kZUxpc3Q6OkNoaWxkTm9kZUxpc3QoUGFzc1Jl
ZlB0cjxOb2RlPiBub2RlLCBEeW5hbWljTm9kZUxpc3Q6OkNhY2hlcyogY2FjaGVzKQorQ2hpbGRO
b2RlTGlzdDo6Q2hpbGROb2RlTGlzdChQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCiAgICAgOiBEeW5h
bWljTm9kZUxpc3Qobm9kZSkKLSAgICAsIG1fY2FjaGVzKGNhY2hlcykKKyAgICAsIG1fY2FjaGVz
KENhY2hlczo6Y3JlYXRlKCkpCiB7CiB9CiAKK0NoaWxkTm9kZUxpc3Q6On5DaGlsZE5vZGVMaXN0
KCkKK3sKKyAgICBub2RlKCktPnJlbW92ZUNhY2hlZENoaWxkTm9kZUxpc3QoKTsKK30KKwogdW5z
aWduZWQgQ2hpbGROb2RlTGlzdDo6bGVuZ3RoKCkgY29uc3QKIHsKICAgICBpZiAobV9jYWNoZXMt
PmlzTGVuZ3RoQ2FjaGVWYWxpZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGls
ZE5vZGVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGROb2RlTGlzdC5oCmluZGV4IDEz
N2I2ZDYuLjg1ZWMzNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZE5vZGVM
aXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTm9kZUxpc3QuaApAQCAtMzEsMTYg
KzMxLDIwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIENoaWxkTm9kZUxpc3Qg
OiBwdWJsaWMgRHluYW1pY05vZGVMaXN0IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPENoaWxkTm9kZUxpc3Q+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2Rl
LCBDYWNoZXMqIGNhY2hlcykKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2hpbGROb2RlTGlz
dD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2hpbGROb2RlTGlzdChyb290Tm9kZSwgY2FjaGVzKSk7
CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENoaWxkTm9kZUxpc3Qocm9vdE5vZGUp
KTsKICAgICAgICAgfQogCisgICAgICAgIHZpcnR1YWwgfkNoaWxkTm9kZUxpc3QoKTsKKwogICAg
ICAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIE5v
ZGUqIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0OwogCisgICAgICAgIHZvaWQgcmVzZXQoKSB7
IG1fY2FjaGVzLT5yZXNldCgpOyB9CisKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIENoaWxkTm9k
ZUxpc3QoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgQ2FjaGVzKik7CisgICAgICAgIENoaWxk
Tm9kZUxpc3QoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSk7CiAKICAgICAgICAgdmlydHVhbCBi
b29sIG5vZGVNYXRjaGVzKEVsZW1lbnQqKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRHluYW1p
Y05vZGVMaXN0LmNwcAppbmRleCA3ODhhYjZlLi5kMDdhODIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RHluYW1pY05vZGVMaXN0LmNwcApAQCAtMTMyLDExICsxMzIsNiBAQCBOb2RlKiBEeW5hbWljTm9k
ZUxpc3Q6Oml0ZW1XaXRoTmFtZShjb25zdCBBdG9taWNTdHJpbmcmIGVsZW1lbnRJZCkgY29uc3QK
ICAgICByZXR1cm4gMDsKIH0KIAotYm9vbCBEeW5hbWljU3VidHJlZU5vZGVMaXN0Ojppc0R5bmFt
aWNOb2RlTGlzdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQgRHluYW1p
Y1N1YnRyZWVOb2RlTGlzdDo6aW52YWxpZGF0ZUNhY2hlKCkKIHsKICAgICBtX2NhY2hlcy0+cmVz
ZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EeW5hbWljTm9kZUxpc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9EeW5hbWljTm9kZUxpc3QuaAppbmRleCA2MDZmYzY0Li43ZmM5
MGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5oCkBAIC02NCw2ICs2NCw5IEBA
IHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgbm9kZU1hdGNoZXMoRWxlbWVu
dCopIGNvbnN0ID0gMDsKICAgICBSZWZQdHI8Tm9kZT4gbV9ub2RlOworCitwcml2YXRlOgorICAg
IHZpcnR1YWwgYm9vbCBpc0R5bmFtaWNOb2RlTGlzdCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IHRydWU7IH0KIH07CiAKIGNsYXNzIER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QgOiBwdWJsaWMgRHlu
YW1pY05vZGVMaXN0IHsKQEAgLTc5LDcgKzgyLDYgQEAgcHJvdGVjdGVkOgogICAgIG11dGFibGUg
UmVmUHRyPENhY2hlcz4gbV9jYWNoZXM7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGlz
RHluYW1pY05vZGVMaXN0KCkgY29uc3Q7CiAgICAgTm9kZSogaXRlbUZvcndhcmRzRnJvbUN1cnJl
bnQoTm9kZSogc3RhcnQsIHVuc2lnbmVkIG9mZnNldCwgaW50IHJlbWFpbmluZ09mZnNldCkgY29u
c3Q7CiAgICAgTm9kZSogaXRlbUJhY2t3YXJkc0Zyb21DdXJyZW50KE5vZGUqIHN0YXJ0LCB1bnNp
Z25lZCBvZmZzZXQsIGludCByZW1haW5pbmdPZmZzZXQpIGNvbnN0OwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cAppbmRleCBhMWM3NjI0Li5lYWMwYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC01NTIsNyArNTUy
LDEzIEBAIHZvaWQgTm9kZTo6c2V0Tm9kZVZhbHVlKGNvbnN0IFN0cmluZyYgLypub2RlVmFsdWUq
LywgRXhjZXB0aW9uQ29kZSYgZWMpCiAKIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IE5vZGU6OmNoaWxk
Tm9kZXMoKQogewotICAgIHJldHVybiBDaGlsZE5vZGVMaXN0OjpjcmVhdGUodGhpcywgZW5zdXJl
UmFyZURhdGEoKS0+ZW5zdXJlQ2hpbGROb2RlTGlzdENhY2hlKCkpOworICAgIE5vZGVSYXJlRGF0
YSogZGF0YSA9IGVuc3VyZVJhcmVEYXRhKCk7CisgICAgaWYgKGRhdGEtPmNoaWxkTm9kZUxpc3Qo
KSkKKyAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+KGRhdGEtPmNoaWxkTm9kZUxp
c3QoKSk7CisKKyAgICBSZWZQdHI8Q2hpbGROb2RlTGlzdD4gbGlzdCA9IENoaWxkTm9kZUxpc3Q6
OmNyZWF0ZSh0aGlzKTsKKyAgICBkYXRhLT5zZXRDaGlsZE5vZGVMaXN0KGxpc3QuZ2V0KCkpOwor
ICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKIH0KIAogTm9kZSAqTm9kZTo6bGFzdERlc2NlbmRh
bnQoKSBjb25zdApAQCAtMTA3NCw2ICsxMDgwLDEyIEBAIHZvaWQgTm9kZTo6cmVtb3ZlQ2FjaGVk
TGFiZWxzTm9kZUxpc3QoRHluYW1pY1N1YnRyZWVOb2RlTGlzdCogbGlzdCkKICAgICBkYXRhLT5t
X2xhYmVsc05vZGVMaXN0Q2FjaGUgPSAwOwogfQogCit2b2lkIE5vZGU6OnJlbW92ZUNhY2hlZENo
aWxkTm9kZUxpc3QoKQoreworICAgIEFTU0VSVChyYXJlRGF0YSgpKTsKKyAgICByYXJlRGF0YSgp
LT5zZXRDaGlsZE5vZGVMaXN0KDApOworfQorCiBOb2RlKiBOb2RlOjp0cmF2ZXJzZU5leHROb2Rl
KGNvbnN0IE5vZGUqIHN0YXlXaXRoaW4pIGNvbnN0CiB7CiAgICAgaWYgKGZpcnN0Q2hpbGQoKSkK
QEAgLTI5MzUsMTMgKzI5NDcsOCBAQCB2b2lkIE5vZGVSYXJlRGF0YTo6Y3JlYXRlTm9kZUxpc3Rz
KE5vZGUqIG5vZGUpCiAKIHZvaWQgTm9kZVJhcmVEYXRhOjpjbGVhckNoaWxkTm9kZUxpc3RDYWNo
ZSgpCiB7Ci0gICAgaWYgKCFtX2NoaWxkTm9kZUxpc3RDYWNoZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgaWYgKG1fY2hpbGROb2RlTGlzdENhY2hlLT5oYXNPbmVSZWYoKSkKLSAgICAgICAgbV9j
aGlsZE5vZGVMaXN0Q2FjaGUuY2xlYXIoKTsKLSAgICBlbHNlCi0gICAgICAgIG1fY2hpbGROb2Rl
TGlzdENhY2hlLT5yZXNldCgpOworICAgIGlmIChtX2NoaWxkTm9kZUxpc3QpCisgICAgICAgIG1f
Y2hpbGROb2RlTGlzdC0+cmVzZXQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmgKaW5kZXggOWQ2MDY4Yi4uMDk3MDllMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC01NTMsNiArNTUz
LDggQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlQ2FjaGVkVGFnTm9kZUxpc3QoVGFnTm9kZUxp
c3QqLCBjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdm9pZCByZW1vdmVDYWNoZWRMYWJlbHNO
b2RlTGlzdChEeW5hbWljU3VidHJlZU5vZGVMaXN0Kik7CiAKKyAgICB2b2lkIHJlbW92ZUNhY2hl
ZENoaWxkTm9kZUxpc3QoKTsKKwogICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGdldEVsZW1lbnRz
QnlUYWdOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+
IGdldEVsZW1lbnRzQnlUYWdOYW1lTlMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkks
IGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKTsKICAgICBQYXNzUmVmUHRyPE5vZGVMaXN0
PiBnZXRFbGVtZW50c0J5TmFtZShjb25zdCBTdHJpbmcmIGVsZW1lbnROYW1lKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmFyZURhdGEuaAppbmRleCAzNjIxMzVjLi5lZjE3Yjg2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSYXJlRGF0YS5oCkBAIC05NSw2ICs5NSw3IEBAIGNsYXNzIE5vZGVSYXJlRGF0YSB7CiBwdWJs
aWM6ICAgIAogICAgIE5vZGVSYXJlRGF0YSgpCiAgICAgICAgIDogbV90cmVlU2NvcGUoMCkKKyAg
ICAgICAgLCBtX2NoaWxkTm9kZUxpc3QoMCkKICAgICAgICAgLCBtX3RhYkluZGV4KDApCiAgICAg
ICAgICwgbV90YWJJbmRleFdhc1NldEV4cGxpY2l0bHkoZmFsc2UpCiAgICAgICAgICwgbV9pc0Zv
Y3VzZWQoZmFsc2UpCkBAIC0xMzIsMTIgKzEzMyw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IG1fbm9kZUxpc3RzLmdldCgpOwogICAgIH0KICAgICB2b2lkIGNsZWFyQ2hpbGROb2RlTGlzdENh
Y2hlKCk7Ci0gICAgRHluYW1pY05vZGVMaXN0OjpDYWNoZXMqIGVuc3VyZUNoaWxkTm9kZUxpc3RD
YWNoZSgpCi0gICAgewotICAgICAgICBpZiAoIW1fY2hpbGROb2RlTGlzdENhY2hlKQotICAgICAg
ICAgICAgbV9jaGlsZE5vZGVMaXN0Q2FjaGUgPSBEeW5hbWljTm9kZUxpc3Q6OkNhY2hlczo6Y3Jl
YXRlKCk7Ci0gICAgICAgIHJldHVybiBtX2NoaWxkTm9kZUxpc3RDYWNoZS5nZXQoKTsKLSAgICB9
CisKKyAgICBDaGlsZE5vZGVMaXN0KiBjaGlsZE5vZGVMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9j
aGlsZE5vZGVMaXN0OyB9CisgICAgdm9pZCBzZXRDaGlsZE5vZGVMaXN0KENoaWxkTm9kZUxpc3Qq
IGxpc3QpIHsgbV9jaGlsZE5vZGVMaXN0ID0gbGlzdDsgfQogCiAgICAgc2hvcnQgdGFiSW5kZXgo
KSBjb25zdCB7IHJldHVybiBtX3RhYkluZGV4OyB9CiAgICAgdm9pZCBzZXRUYWJJbmRleEV4cGxp
Y2l0bHkoc2hvcnQgaW5kZXgpIHsgbV90YWJJbmRleCA9IGluZGV4OyBtX3RhYkluZGV4V2FzU2V0
RXhwbGljaXRseSA9IHRydWU7IH0KQEAgLTI0MSw3ICsyMzksNyBAQCBwcml2YXRlOgogCiAgICAg
VHJlZVNjb3BlKiBtX3RyZWVTY29wZTsKICAgICBPd25QdHI8Tm9kZUxpc3RzTm9kZURhdGE+IG1f
bm9kZUxpc3RzOwotICAgIFJlZlB0cjxEeW5hbWljTm9kZUxpc3Q6OkNhY2hlcz4gbV9jaGlsZE5v
ZGVMaXN0Q2FjaGU7CisgICAgQ2hpbGROb2RlTGlzdCogbV9jaGlsZE5vZGVMaXN0OwogICAgIE93
blB0cjxFdmVudFRhcmdldERhdGE+IG1fZXZlbnRUYXJnZXREYXRhOwogICAgIHNob3J0IG1fdGFi
SW5kZXg7CiAgICAgYm9vbCBtX3RhYkluZGV4V2FzU2V0RXhwbGljaXRseSA6IDE7Cg==
</data>
<flag name="review"
          id="124009"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>