<?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>141667</bug_id>
          
          <creation_ts>2015-02-16 14:55:15 -0800</creation_ts>
          <short_desc>Keep all memory cache resources in ListHashSets</short_desc>
          <delta_ts>2015-02-16 20:55:11 -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>Page Loading</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>japhet</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1069605</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-16 14:55:15 -0800</bug_when>
    <thetext>Keep all memory cache resources in ListHashSets instead of manual linked lists. This simplifies the code a lot and is also more efficient for retrieving / removing particular CachedResources.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069650</commentid>
    <comment_count>1</comment_count>
      <attachid>246696</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-16 16:12:42 -0800</bug_when>
    <thetext>Created attachment 246696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069734</commentid>
    <comment_count>2</comment_count>
      <attachid>246696</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-02-16 20:11:40 -0800</bug_when>
    <thetext>Comment on attachment 246696
Patch

I&apos;m a huge fan of these changes, r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069750</commentid>
    <comment_count>3</comment_count>
      <attachid>246696</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-16 20:55:07 -0800</bug_when>
    <thetext>Comment on attachment 246696
Patch

Clearing flags on attachment: 246696

Committed r180207: &lt;http://trac.webkit.org/changeset/180207&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069751</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-16 20:55:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246696</attachid>
            <date>2015-02-16 16:12:42 -0800</date>
            <delta_ts>2015-02-16 20:55:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141667-20150216161236.patch</filename>
            <type>text/plain</type>
            <size>13599</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwMDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM4NTBjZjFmN2QyMmI5
ZTE5YzNlNWUxZjljOGU0OWU0OTc3NjI2NC4uYzliOTFiNGViZmI4ZmEwYzFjMmQ2YmZiNDcwOTA0
YjkxZWI5MjBmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE1LTAyLTE2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgS2VlcCBhbGwgbWVtb3J5IGNh
Y2hlIHJlc291cmNlcyBpbiBMaXN0SGFzaFNldHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTY2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEtlZXAgYWxsIG1lbW9yeSBjYWNoZSByZXNvdXJjZXMgaW4g
TGlzdEhhc2hTZXRzIGluc3RlYWQgb2YgbWFudWFsIGxpbmtlZAorICAgICAgICBsaXN0cy4gVGhp
cyBzaW1wbGlmaWVzIHRoZSBjb2RlIGEgbG90IGFuZCBpcyBhbHNvIG1vcmUgZWZmaWNpZW50IGZv
cgorICAgICAgICByZXRyaWV2aW5nIC8gcmVtb3ZpbmcgcGFydGljdWxhciBDYWNoZWRSZXNvdXJj
ZXMuCisKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKToKKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvTWVt
b3J5Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnBydW5lRGVhZFJl
c291cmNlc1RvU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVtb3ZlRnJv
bUxSVUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6Omluc2VydEluTFJVTGlz
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6ZHVtcExSVUxpc3RzKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpscnVMaXN0Rm9yKTogRGVsZXRlZC4KKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaDoKKwogMjAxNS0wMi0xMyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmRlckxpc3RJdGVtIHJlc2V0cyBpdHMg
bWFya2VyJ3Mgc3R5bGUgb24gc3R5bGUgY2hhbmdlIGV2ZW4gaWYgdGhlIGRpZmYgaXMgU3R5bGVE
aWZmZXJlbmNlRXF1YWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCmluZGV4IDY1OTU1ZTA5ZTIxZDVmZGU4NDVlNjk4ODc1NTA2NThhZTljNTJjYWYu
LjMzZjE0MzkyZmMyOGZjYjljZjk4YTY3MjNhMzFlYjQwZDI1MWU3YTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtMTM1LDggKzEzNSw2
IEBAIENhY2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZShjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIFR5cGUgdHlwZSwgU2Vzc2lvCiAgICAgLCBtX2RlbGV0ZWQoZmFsc2UpCiAgICAg
LCBtX2xydUluZGV4KDApCiAjZW5kaWYKLSAgICAsIG1fbmV4dEluQWxsUmVzb3VyY2VzTGlzdCgw
KQotICAgICwgbV9wcmV2SW5BbGxSZXNvdXJjZXNMaXN0KDApCiAgICAgLCBtX293bmluZ0NhY2hl
ZFJlc291cmNlTG9hZGVyKDApCiAgICAgLCBtX3Jlc291cmNlVG9SZXZhbGlkYXRlKDApCiAgICAg
LCBtX3Byb3h5UmVzb3VyY2UoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlLmgKaW5kZXggNjZkMjljYzc0MDliYzI4YjNjYmUzNWUzYTMwZTE4MDU4MjQ5MTk0
Ni4uMWRhMTFjZWZkMzVhNzJmODVhZjM1NzgwYWRkOGNlZjY2OTY1ZmUzMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTMxOSw5ICszMTksNiBA
QCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fbHJ1SW5kZXg7CiAjZW5kaWYKIAotICAgIENhY2hl
ZFJlc291cmNlKiBtX25leHRJbkFsbFJlc291cmNlc0xpc3Q7Ci0gICAgQ2FjaGVkUmVzb3VyY2Uq
IG1fcHJldkluQWxsUmVzb3VyY2VzTGlzdDsKLQogICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBt
X293bmluZ0NhY2hlZFJlc291cmNlTG9hZGVyOyAvLyBvbmx5IG5vbi1udWxsIGZvciByZXNvdXJj
ZXMgdGhhdCBhcmUgbm90IGluIHRoZSBjYWNoZQogICAgIAogICAgIC8vIElmIHRoaXMgZmllbGQg
aXMgbm9uLW51bGwgd2UgYXJlIHVzaW5nIHRoZSByZXNvdXJjZSBhcyBhIHByb3h5IGZvciBjaGVj
a2luZyB3aGV0aGVyIGFuIGV4aXN0aW5nIHJlc291cmNlIGlzIHN0aWxsIHVwIHRvIGRhdGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCmluZGV4IDE0MmI0ZDUx
MDc3MmU0ODRkZjVmMGNjMjRmM2E0NzAwOGM2MmQ0MmIuLjk2NDJmZmI2YmZmM2RjMTMxMGRmY2Jh
ZjNlMDhhOTlmOTY5ZmNhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9NZW1vcnlDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9y
eUNhY2hlLmNwcApAQCAtMzQ3LDU5ICszNDcsNjkgQEAgdm9pZCBNZW1vcnlDYWNoZTo6cHJ1bmVE
ZWFkUmVzb3VyY2VzVG9TaXplKHVuc2lnbmVkIHRhcmdldFNpemUpCiAgICAgaWYgKG1faW5QcnVu
ZVJlc291cmNlcykKICAgICAgICAgcmV0dXJuOwogICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBy
ZWVudHJhbmN5UHJvdGVjdG9yKG1faW5QcnVuZVJlc291cmNlcywgdHJ1ZSk7Ci0KLSAgICBpbnQg
c2l6ZSA9IG1fYWxsUmVzb3VyY2VzLnNpemUoKTsKICAKICAgICBpZiAodGFyZ2V0U2l6ZSAmJiBt
X2RlYWRTaXplIDw9IHRhcmdldFNpemUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGJvb2wgY2Fu
U2hyaW5rTFJVTGlzdHMgPSB0cnVlOwotICAgIGZvciAoaW50IGkgPSBzaXplIC0gMTsgaSA+PSAw
OyBpLS0pIHsKLSAgICAgICAgLy8gUmVtb3ZlIGZyb20gdGhlIHRhaWwsIHNpbmNlIHRoaXMgaXMg
dGhlIGxlYXN0IGZyZXF1ZW50bHkgYWNjZXNzZWQgb2YgdGhlIG9iamVjdHMuCi0gICAgICAgIENh
Y2hlZFJlc291cmNlKiBjdXJyZW50ID0gbV9hbGxSZXNvdXJjZXNbaV0ubV90YWlsOwotICAgICAg
ICAKKyAgICBmb3IgKGludCBpID0gbV9hbGxSZXNvdXJjZXMuc2l6ZSgpIC0gMTsgaSA+PSAwOyBp
LS0pIHsKKyAgICAgICAgTFJVTGlzdCYgbGlzdCA9ICptX2FsbFJlc291cmNlc1tpXTsKKwogICAg
ICAgICAvLyBGaXJzdCBmbHVzaCBhbGwgdGhlIGRlY29kZWQgZGF0YSBpbiB0aGlzIHF1ZXVlLgot
ICAgICAgICB3aGlsZSAoY3VycmVudCkgewotICAgICAgICAgICAgLy8gUHJvdGVjdCAncHJldmlv
dXMnIHNvIGl0IGNhbid0IGdldCBkZWxldGVkIGR1cmluZyBkZXN0cm95RGVjb2RlZERhdGEoKS4K
LSAgICAgICAgICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBwcmV2aW91
cyA9IGN1cnJlbnQtPm1fcHJldkluQWxsUmVzb3VyY2VzTGlzdDsKLSAgICAgICAgICAgIEFTU0VS
VCghcHJldmlvdXMgfHwgcHJldmlvdXMtPmluQ2FjaGUoKSk7Ci0gICAgICAgICAgICBpZiAoIWN1
cnJlbnQtPmhhc0NsaWVudHMoKSAmJiAhY3VycmVudC0+aXNQcmVsb2FkZWQoKSAmJiBjdXJyZW50
LT5pc0xvYWRlZCgpKSB7CisgICAgICAgIC8vIFJlbW92ZSBmcm9tIHRoZSBoZWFkLCBzaW5jZSB0
aGlzIGlzIHRoZSBsZWFzdCBmcmVxdWVudGx5IGFjY2Vzc2VkIG9mIHRoZSBvYmplY3RzLgorICAg
ICAgICBhdXRvIGl0ID0gbGlzdC5iZWdpbigpOworICAgICAgICB3aGlsZSAoaXQgIT0gbGlzdC5l
bmQoKSkgeworICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2UmIGN1cnJlbnQgPSAqKml0OworCisg
ICAgICAgICAgICAvLyBJbmNyZW1lbnQgdGhlIGl0ZXJhdG9yIG5vdyBhcyB0aGUgY2FsbCB0byBk
ZXN0cm95RGVjb2RlZERhdGEoKSBiZWxvdyBtYXkKKyAgICAgICAgICAgIC8vIGludmFsaWRhdGUg
dGhlIGN1cnJlbnQgaXRlcmF0b3IuCisgICAgICAgICAgICArK2l0OworCisgICAgICAgICAgICAv
LyBQcm90ZWN0ICduZXh0JyBzbyBpdCBjYW4ndCBnZXQgZGVsZXRlZCBkdXJpbmcgZGVzdHJveURl
Y29kZWREYXRhKCkuCisgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNv
dXJjZT4gbmV4dCA9IGl0ICE9IGxpc3QuZW5kKCkgPyAqaXQgOiBudWxscHRyOworICAgICAgICAg
ICAgQVNTRVJUKCFuZXh0IHx8IG5leHQtPmluQ2FjaGUoKSk7CisgICAgICAgICAgICBpZiAoIWN1
cnJlbnQuaGFzQ2xpZW50cygpICYmICFjdXJyZW50LmlzUHJlbG9hZGVkKCkgJiYgY3VycmVudC5p
c0xvYWRlZCgpKSB7CiAgICAgICAgICAgICAgICAgLy8gRGVzdHJveSBvdXIgZGVjb2RlZCBkYXRh
LiBUaGlzIHdpbGwgcmVtb3ZlIHVzIGZyb20gCiAgICAgICAgICAgICAgICAgLy8gbV9saXZlRGVj
b2RlZFJlc291cmNlcywgYW5kIHBvc3NpYmx5IG1vdmUgdXMgdG8gYSBkaWZmZXJlbnQgCiAgICAg
ICAgICAgICAgICAgLy8gTFJVIGxpc3QgaW4gbV9hbGxSZXNvdXJjZXMuCi0gICAgICAgICAgICAg
ICAgY3VycmVudC0+ZGVzdHJveURlY29kZWREYXRhKCk7CisgICAgICAgICAgICAgICAgY3VycmVu
dC5kZXN0cm95RGVjb2RlZERhdGEoKTsKIAogICAgICAgICAgICAgICAgIGlmICh0YXJnZXRTaXpl
ICYmIG1fZGVhZFNpemUgPD0gdGFyZ2V0U2l6ZSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gRGVjb2RlZCBkYXRhIG1heSByZWZlcmVu
Y2Ugb3RoZXIgcmVzb3VyY2VzLiBTdG9wIGl0ZXJhdGluZyBpZiAncHJldmlvdXMnIHNvbWVob3cg
Z290CisgICAgICAgICAgICAvLyBEZWNvZGVkIGRhdGEgbWF5IHJlZmVyZW5jZSBvdGhlciByZXNv
dXJjZXMuIFN0b3AgaXRlcmF0aW5nIGlmICduZXh0JyBzb21laG93IGdvdAogICAgICAgICAgICAg
Ly8ga2lja2VkIG91dCBvZiBjYWNoZSBkdXJpbmcgZGVzdHJveURlY29kZWREYXRhKCkuCi0gICAg
ICAgICAgICBpZiAocHJldmlvdXMgJiYgIXByZXZpb3VzLT5pbkNhY2hlKCkpCisgICAgICAgICAg
ICBpZiAobmV4dCAmJiAhbmV4dC0+aW5DYWNoZSgpKQogICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgY3VycmVudCA9IHByZXZpb3VzLmdldCgpOwogICAgICAgICB9CiAKLSAgICAg
ICAgLy8gTm93IGV2aWN0IG9iamVjdHMgZnJvbSB0aGlzIHF1ZXVlLgotICAgICAgICBjdXJyZW50
ID0gbV9hbGxSZXNvdXJjZXNbaV0ubV90YWlsOwotICAgICAgICB3aGlsZSAoY3VycmVudCkgewot
ICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHByZXZpb3Vz
ID0gY3VycmVudC0+bV9wcmV2SW5BbGxSZXNvdXJjZXNMaXN0OwotICAgICAgICAgICAgQVNTRVJU
KCFwcmV2aW91cyB8fCBwcmV2aW91cy0+aW5DYWNoZSgpKTsKLSAgICAgICAgICAgIGlmICghY3Vy
cmVudC0+aGFzQ2xpZW50cygpICYmICFjdXJyZW50LT5pc1ByZWxvYWRlZCgpICYmICFjdXJyZW50
LT5pc0NhY2hlVmFsaWRhdG9yKCkpIHsKLSAgICAgICAgICAgICAgICByZW1vdmUoKmN1cnJlbnQp
OworICAgICAgICAvLyBOb3cgZXZpY3Qgb2JqZWN0cyBmcm9tIHRoaXMgbGlzdC4KKyAgICAgICAg
Ly8gUmVtb3ZlIGZyb20gdGhlIGhlYWQsIHNpbmNlIHRoaXMgaXMgdGhlIGxlYXN0IGZyZXF1ZW50
bHkgYWNjZXNzZWQgb2YgdGhlIG9iamVjdHMuCisgICAgICAgIGl0ID0gbGlzdC5iZWdpbigpOwor
ICAgICAgICB3aGlsZSAoaXQgIT0gbGlzdC5lbmQoKSkgeworICAgICAgICAgICAgQ2FjaGVkUmVz
b3VyY2UmIGN1cnJlbnQgPSAqKml0OworCisgICAgICAgICAgICAvLyBJbmNyZW1lbnQgdGhlIGl0
ZXJhdG9yIG5vdyBhcyB0aGUgY2FsbCB0byByZW1vdmUoKSBiZWxvdyB3aWxsCisgICAgICAgICAg
ICAvLyBpbnZhbGlkYXRlIHRoZSBjdXJyZW50IGl0ZXJhdG9yLgorICAgICAgICAgICAgKytpdDsK
KworICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IG5leHQg
PSBpdCAhPSBsaXN0LmVuZCgpID8gKml0IDogbnVsbHB0cjsKKyAgICAgICAgICAgIEFTU0VSVCgh
bmV4dCB8fCBuZXh0LT5pbkNhY2hlKCkpOworICAgICAgICAgICAgaWYgKCFjdXJyZW50Lmhhc0Ns
aWVudHMoKSAmJiAhY3VycmVudC5pc1ByZWxvYWRlZCgpICYmICFjdXJyZW50LmlzQ2FjaGVWYWxp
ZGF0b3IoKSkgeworICAgICAgICAgICAgICAgIHJlbW92ZShjdXJyZW50KTsKICAgICAgICAgICAg
ICAgICBpZiAodGFyZ2V0U2l6ZSAmJiBtX2RlYWRTaXplIDw9IHRhcmdldFNpemUpCiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChwcmV2
aW91cyAmJiAhcHJldmlvdXMtPmluQ2FjaGUoKSkKKyAgICAgICAgICAgIGlmIChuZXh0ICYmICFu
ZXh0LT5pbkNhY2hlKCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjdXJy
ZW50ID0gcHJldmlvdXMuZ2V0KCk7CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAv
LyBTaHJpbmsgdGhlIHZlY3RvciBiYWNrIGRvd24gc28gd2UgZG9uJ3Qgd2FzdGUgdGltZSBpbnNw
ZWN0aW5nCiAgICAgICAgIC8vIGVtcHR5IExSVSBsaXN0cyBvbiBmdXR1cmUgcHJ1bmVzLgotICAg
ICAgICBpZiAobV9hbGxSZXNvdXJjZXNbaV0ubV9oZWFkKQorICAgICAgICBpZiAoIW1fYWxsUmVz
b3VyY2VzW2ldLT5pc0VtcHR5KCkpCiAgICAgICAgICAgICBjYW5TaHJpbmtMUlVMaXN0cyA9IGZh
bHNlOwogICAgICAgICBlbHNlIGlmIChjYW5TaHJpbmtMUlVMaXN0cykKLSAgICAgICAgICAgIG1f
YWxsUmVzb3VyY2VzLnJlc2l6ZShpKTsKKyAgICAgICAgICAgIG1fYWxsUmVzb3VyY2VzLnNocmlu
ayhpKTsKICAgICB9CiB9CiAKQEAgLTQ0NSwxNiArNDU1LDE4IEBAIHZvaWQgTWVtb3J5Q2FjaGU6
OnJlbW92ZShDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UpCiAgICAgcmVzb3VyY2UuZGVsZXRlSWZQ
b3NzaWJsZSgpOwogfQogCi1NZW1vcnlDYWNoZTo6TFJVTGlzdCogTWVtb3J5Q2FjaGU6OmxydUxp
c3RGb3IoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlKQorYXV0byBNZW1vcnlDYWNoZTo6bHJ1TGlz
dEZvcihDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UpIC0+IExSVUxpc3QmCiB7CiAgICAgdW5zaWdu
ZWQgYWNjZXNzQ291bnQgPSBzdGQ6Om1heChyZXNvdXJjZS5hY2Nlc3NDb3VudCgpLCAxVSk7CiAg
ICAgdW5zaWduZWQgcXVldWVJbmRleCA9IFdURjo6ZmFzdExvZzIocmVzb3VyY2Uuc2l6ZSgpIC8g
YWNjZXNzQ291bnQpOwogI2lmbmRlZiBOREVCVUcKICAgICByZXNvdXJjZS5tX2xydUluZGV4ID0g
cXVldWVJbmRleDsKICNlbmRpZgotICAgIGlmIChtX2FsbFJlc291cmNlcy5zaXplKCkgPD0gcXVl
dWVJbmRleCkKLSAgICAgICAgbV9hbGxSZXNvdXJjZXMuZ3JvdyhxdWV1ZUluZGV4ICsgMSk7Ci0g
ICAgcmV0dXJuICZtX2FsbFJlc291cmNlc1txdWV1ZUluZGV4XTsKKworICAgIG1fYWxsUmVzb3Vy
Y2VzLnJlc2VydmVDYXBhY2l0eShxdWV1ZUluZGV4ICsgMSk7CisgICAgd2hpbGUgKG1fYWxsUmVz
b3VyY2VzLnNpemUoKSA8PSBxdWV1ZUluZGV4KQorICAgICAgICBtX2FsbFJlc291cmNlcy51bmNo
ZWNrZWRBcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxMUlVMaXN0PigpKTsKKyAgICByZXR1cm4gKm1f
YWxsUmVzb3VyY2VzW3F1ZXVlSW5kZXhdOwogfQogCiB2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVG
cm9tTFJVTGlzdChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UpCkBAIC00NjcsNzMgKzQ3OSwyMiBA
QCB2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVGcm9tTFJVTGlzdChDYWNoZWRSZXNvdXJjZSYgcmVz
b3VyY2UpCiAgICAgdW5zaWduZWQgb2xkTGlzdEluZGV4ID0gcmVzb3VyY2UubV9scnVJbmRleDsK
ICNlbmRpZgogCi0gICAgTFJVTGlzdCogbGlzdCA9IGxydUxpc3RGb3IocmVzb3VyY2UpOworICAg
IExSVUxpc3QmIGxpc3QgPSBscnVMaXN0Rm9yKHJlc291cmNlKTsKIAotI2lmICFBU1NFUlRfRElT
QUJMRUQKICAgICAvLyBWZXJpZnkgdGhhdCB0aGUgbGlzdCB3ZSBnb3QgaXMgdGhlIGxpc3Qgd2Ug
d2FudC4KICAgICBBU1NFUlQocmVzb3VyY2UubV9scnVJbmRleCA9PSBvbGRMaXN0SW5kZXgpOwog
Ci0gICAgLy8gVmVyaWZ5IHRoYXQgd2UgYXJlIGluIGZhY3QgaW4gdGhpcyBsaXN0LgotICAgIGJv
b2wgZm91bmQgPSBmYWxzZTsKLSAgICBmb3IgKENhY2hlZFJlc291cmNlKiBjdXJyZW50ID0gbGlz
dC0+bV9oZWFkOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bV9uZXh0SW5BbGxSZXNvdXJj
ZXNMaXN0KSB7Ci0gICAgICAgIGlmIChjdXJyZW50ID09ICZyZXNvdXJjZSkgewotICAgICAgICAg
ICAgZm91bmQgPSB0cnVlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0g
ICAgQVNTRVJUKGZvdW5kKTsKLSNlbmRpZgotCi0gICAgQ2FjaGVkUmVzb3VyY2UqIG5leHQgPSBy
ZXNvdXJjZS5tX25leHRJbkFsbFJlc291cmNlc0xpc3Q7Ci0gICAgQ2FjaGVkUmVzb3VyY2UqIHBy
ZXYgPSByZXNvdXJjZS5tX3ByZXZJbkFsbFJlc291cmNlc0xpc3Q7Ci0gICAgCi0gICAgaWYgKCFu
ZXh0ICYmICFwcmV2ICYmIGxpc3QtPm1faGVhZCAhPSAmcmVzb3VyY2UpCi0gICAgICAgIHJldHVy
bjsKLSAgICAKLSAgICByZXNvdXJjZS5tX25leHRJbkFsbFJlc291cmNlc0xpc3QgPSBudWxscHRy
OwotICAgIHJlc291cmNlLm1fcHJldkluQWxsUmVzb3VyY2VzTGlzdCA9IG51bGxwdHI7Ci0gICAg
Ci0gICAgaWYgKG5leHQpCi0gICAgICAgIG5leHQtPm1fcHJldkluQWxsUmVzb3VyY2VzTGlzdCA9
IHByZXY7Ci0gICAgZWxzZSBpZiAobGlzdC0+bV90YWlsID09ICZyZXNvdXJjZSkKLSAgICAgICAg
bGlzdC0+bV90YWlsID0gcHJldjsKLQotICAgIGlmIChwcmV2KQotICAgICAgICBwcmV2LT5tX25l
eHRJbkFsbFJlc291cmNlc0xpc3QgPSBuZXh0OwotICAgIGVsc2UgaWYgKGxpc3QtPm1faGVhZCA9
PSAmcmVzb3VyY2UpCi0gICAgICAgIGxpc3QtPm1faGVhZCA9IG5leHQ7CisgICAgYm9vbCByZW1v
dmVkID0gbGlzdC5yZW1vdmUoJnJlc291cmNlKTsKKyAgICBBU1NFUlRfVU5VU0VEKHJlbW92ZWQs
IHJlbW92ZWQpOwogfQogCiB2b2lkIE1lbW9yeUNhY2hlOjppbnNlcnRJbkxSVUxpc3QoQ2FjaGVk
UmVzb3VyY2UmIHJlc291cmNlKQogewotICAgIC8vIE1ha2Ugc3VyZSB3ZSBhcmVuJ3QgaW4gc29t
ZSBsaXN0IGFscmVhZHkuCi0gICAgQVNTRVJUKCFyZXNvdXJjZS5tX25leHRJbkFsbFJlc291cmNl
c0xpc3QgJiYgIXJlc291cmNlLm1fcHJldkluQWxsUmVzb3VyY2VzTGlzdCk7CiAgICAgQVNTRVJU
KHJlc291cmNlLmluQ2FjaGUoKSk7CiAgICAgQVNTRVJUKHJlc291cmNlLmFjY2Vzc0NvdW50KCkg
PiAwKTsKICAgICAKLSAgICBMUlVMaXN0KiBsaXN0ID0gbHJ1TGlzdEZvcihyZXNvdXJjZSk7Ci0K
LSAgICByZXNvdXJjZS5tX25leHRJbkFsbFJlc291cmNlc0xpc3QgPSBsaXN0LT5tX2hlYWQ7Ci0g
ICAgaWYgKGxpc3QtPm1faGVhZCkKLSAgICAgICAgbGlzdC0+bV9oZWFkLT5tX3ByZXZJbkFsbFJl
c291cmNlc0xpc3QgPSAmcmVzb3VyY2U7Ci0gICAgbGlzdC0+bV9oZWFkID0gJnJlc291cmNlOwot
ICAgIAotICAgIGlmICghcmVzb3VyY2UubV9uZXh0SW5BbGxSZXNvdXJjZXNMaXN0KQotICAgICAg
ICBsaXN0LT5tX3RhaWwgPSAmcmVzb3VyY2U7Ci0gICAgICAgIAotI2lmICFBU1NFUlRfRElTQUJM
RUQKLSAgICAvLyBWZXJpZnkgdGhhdCB3ZSBhcmUgaW4gbm93IGluIHRoZSBsaXN0IGxpa2Ugd2Ug
c2hvdWxkIGJlLgotICAgIGxpc3QgPSBscnVMaXN0Rm9yKHJlc291cmNlKTsKLSAgICBib29sIGZv
dW5kID0gZmFsc2U7Ci0gICAgZm9yIChDYWNoZWRSZXNvdXJjZSogY3VycmVudCA9IGxpc3QtPm1f
aGVhZDsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQtPm1fbmV4dEluQWxsUmVzb3VyY2VzTGlz
dCkgewotICAgICAgICBpZiAoY3VycmVudCA9PSAmcmVzb3VyY2UpIHsKLSAgICAgICAgICAgIGZv
dW5kID0gdHJ1ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIEFT
U0VSVChmb3VuZCk7Ci0jZW5kaWYKLQorICAgIGF1dG8gYWRkUmVzdWx0ID0gbHJ1TGlzdEZvcihy
ZXNvdXJjZSkuYWRkKCZyZXNvdXJjZSk7CisgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFk
ZFJlc3VsdC5pc05ld0VudHJ5KTsKIH0KIAogdm9pZCBNZW1vcnlDYWNoZTo6cmVzb3VyY2VBY2Nl
c3NlZChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UpCkBAIC03NTEsMTMgKzcxMiw5IEBAIHZvaWQg
TWVtb3J5Q2FjaGU6OmR1bXBMUlVMaXN0cyhib29sIGluY2x1ZGVMaXZlKSBjb25zdAogICAgIGlu
dCBzaXplID0gbV9hbGxSZXNvdXJjZXMuc2l6ZSgpOwogICAgIGZvciAoaW50IGkgPSBzaXplIC0g
MTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICAgcHJpbnRmKCJcblxuTGlzdCAlZDogIiwgaSk7Ci0g
ICAgICAgIENhY2hlZFJlc291cmNlKiBjdXJyZW50ID0gbV9hbGxSZXNvdXJjZXNbaV0ubV90YWls
OwotICAgICAgICB3aGlsZSAoY3VycmVudCkgewotICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2Uq
IHByZXYgPSBjdXJyZW50LT5tX3ByZXZJbkFsbFJlc291cmNlc0xpc3Q7Ci0gICAgICAgICAgICBp
ZiAoaW5jbHVkZUxpdmUgfHwgIWN1cnJlbnQtPmhhc0NsaWVudHMoKSkKLSAgICAgICAgICAgICAg
ICBwcmludGYoIiglLjFmSywgJS4xZkssICV1QSwgJWRSKTsgIiwgY3VycmVudC0+ZGVjb2RlZFNp
emUoKSAvIDEwMjQuMGYsIChjdXJyZW50LT5lbmNvZGVkU2l6ZSgpICsgY3VycmVudC0+b3Zlcmhl
YWRTaXplKCkpIC8gMTAyNC4wZiwgY3VycmVudC0+YWNjZXNzQ291bnQoKSwgY3VycmVudC0+aGFz
Q2xpZW50cygpKTsKLQotICAgICAgICAgICAgY3VycmVudCA9IHByZXY7CisgICAgICAgIGZvciAo
YXV0byogcmVzb3VyY2UgOiAqbV9hbGxSZXNvdXJjZXNbaV0pIHsKKyAgICAgICAgICAgIGlmIChp
bmNsdWRlTGl2ZSB8fCAhcmVzb3VyY2UtPmhhc0NsaWVudHMoKSkKKyAgICAgICAgICAgICAgICBw
cmludGYoIiglLjFmSywgJS4xZkssICV1QSwgJWRSKTsgIiwgcmVzb3VyY2UtPmRlY29kZWRTaXpl
KCkgLyAxMDI0LjBmLCAocmVzb3VyY2UtPmVuY29kZWRTaXplKCkgKyByZXNvdXJjZS0+b3Zlcmhl
YWRTaXplKCkpIC8gMTAyNC4wZiwgcmVzb3VyY2UtPmFjY2Vzc0NvdW50KCksIHJlc291cmNlLT5o
YXNDbGllbnRzKCkpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvTWVtb3J5Q2FjaGUuaAppbmRleCAzZTI1OTA3ODM3NWQ3ZTU5ODQ3N2FkYmE5Zjg1NmU5
YTg4OGI4ZmRkLi5hY2I2ZDlhZGYzYTAzODRkNmI4MDA3ZTU3N2Q3MDcxOTBhYTBkMjhhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaApAQCAtMTY2LDExICsxNjYs
NyBAQCBwcml2YXRlOgogI2Vsc2UKICAgICB0eXBlZGVmIEhhc2hNYXA8VVJMLCBDYWNoZWRSZXNv
dXJjZSo+IENhY2hlZFJlc291cmNlTWFwOwogI2VuZGlmCi0KLSAgICBzdHJ1Y3QgTFJVTGlzdCB7
Ci0gICAgICAgIENhY2hlZFJlc291cmNlKiBtX2hlYWQge251bGxwdHJ9OwotICAgICAgICBDYWNo
ZWRSZXNvdXJjZSogbV90YWlsIHtudWxscHRyfTsKLSAgICB9OworICAgIHR5cGVkZWYgTGlzdEhh
c2hTZXQ8Q2FjaGVkUmVzb3VyY2UqPiBMUlVMaXN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBwcnVuZURlYWRSZXNvdXJjZXNUb1NpemUodW5zaWduZWQgdGFyZ2V0U2l6ZSk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBwcnVuZUxpdmVSZXNvdXJjZXNUb1NpemUodW5zaWduZWQgdGFyZ2V0
U2l6ZSwgYm9vbCBzaG91bGREZXN0cm95RGVjb2RlZERhdGFGb3JBbGxMaXZlUmVzb3VyY2VzID0g
ZmFsc2UpOwpAQCAtMTc4LDcgKzE3NCw3IEBAIHByaXZhdGU6CiAgICAgTWVtb3J5Q2FjaGUoKTsK
ICAgICB+TWVtb3J5Q2FjaGUoKTsgLy8gTm90IGltcGxlbWVudGVkIHRvIG1ha2Ugc3VyZSBub2Jv
ZHkgYWNjaWRlbnRhbGx5IGNhbGxzIGRlbGV0ZSAtLSBXZWJDb3JlIGRvZXMgbm90IGRlbGV0ZSBz
aW5nbGV0b25zLgogCi0gICAgTFJVTGlzdCogbHJ1TGlzdEZvcihDYWNoZWRSZXNvdXJjZSYpOwor
ICAgIExSVUxpc3QmIGxydUxpc3RGb3IoQ2FjaGVkUmVzb3VyY2UmKTsKICNpZm5kZWYgTkRFQlVH
CiAgICAgdm9pZCBkdW1wU3RhdHMoKTsKICAgICB2b2lkIGR1bXBMUlVMaXN0cyhib29sIGluY2x1
ZGVMaXZlKSBjb25zdDsKQEAgLTIwNiwxMCArMjAyLDEwIEBAIHByaXZhdGU6CiAgICAgLy8gU2l6
ZS1hZGp1c3RlZCBhbmQgcG9wdWxhcml0eS1hd2FyZSBMUlUgbGlzdCBjb2xsZWN0aW9uIGZvciBj
YWNoZSBvYmplY3RzLiAgVGhpcyBjb2xsZWN0aW9uIGNhbiBob2xkCiAgICAgLy8gbW9yZSByZXNv
dXJjZXMgdGhhbiB0aGUgY2FjaGVkIHJlc291cmNlIG1hcCwgc2luY2UgaXQgY2FuIGFsc28gaG9s
ZCAic3RhbGUiIG11bHRpcGxlIHZlcnNpb25zIG9mIG9iamVjdHMgdGhhdCBhcmUKICAgICAvLyB3
YWl0aW5nIHRvIGRpZSB3aGVuIHRoZSBjbGllbnRzIHJlZmVyZW5jaW5nIHRoZW0gZ28gYXdheS4K
LSAgICBWZWN0b3I8TFJVTGlzdCwgMzI+IG1fYWxsUmVzb3VyY2VzOworICAgIFZlY3RvcjxzdGQ6
OnVuaXF1ZV9wdHI8TFJVTGlzdD4sIDMyPiBtX2FsbFJlc291cmNlczsKICAgICAKICAgICAvLyBM
aXN0IGp1c3QgZm9yIGxpdmUgcmVzb3VyY2VzIHdpdGggZGVjb2RlZCBkYXRhLiAgQWNjZXNzIHRv
IHRoaXMgbGlzdCBpcyBiYXNlZCBvZmYgb2YgcGFpbnRpbmcgdGhlIHJlc291cmNlLgotICAgIExp
c3RIYXNoU2V0PENhY2hlZFJlc291cmNlKj4gbV9saXZlRGVjb2RlZFJlc291cmNlczsKKyAgICBM
UlVMaXN0IG1fbGl2ZURlY29kZWRSZXNvdXJjZXM7CiAgICAgCiAgICAgLy8gQSBVUkwtYmFzZWQg
bWFwIG9mIGFsbCByZXNvdXJjZXMgdGhhdCBhcmUgaW4gdGhlIGNhY2hlIChpbmNsdWRpbmcgdGhl
IGZyZXNoZXN0IHZlcnNpb24gb2Ygb2JqZWN0cyB0aGF0IGFyZSBjdXJyZW50bHkgYmVpbmcgCiAg
ICAgLy8gcmVmZXJlbmNlZCBieSBhIFdlYiBwYWdlKS4K
</data>

          </attachment>
      

    </bug>

</bugzilla>