<?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>151014</bug_id>
          
          <creation_ts>2015-11-08 22:09:28 -0800</creation_ts>
          <short_desc>Modern IDB: Refactor memory objectstore/transaction interation</short_desc>
          <delta_ts>2015-11-09 10:36:48 -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>WebCore Misc.</component>
          <version>Other</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>
          
          <blocked>149117</blocked>
    
    <blocked>150939</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1140302</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-11-08 22:09:28 -0800</bug_when>
    <thetext>Modern IDB: Refactor memory objectstore/transaction integration

The only time object stores should ever notify transactions about changed records is when they are deleted.

This works because even puts/adds are defined as undergoing a delete first.

This also works such that when transactions abort, records are put back in to the database as normal.

This is important because as we support indexes (https://bugs.webkit.org/show_bug.cgi?id=150939), indexes will rely on OS.delete removing a record and OS.put adding a record.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1140304</commentid>
    <comment_count>1</comment_count>
      <attachid>265033</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-11-08 22:24:34 -0800</bug_when>
    <thetext>Created attachment 265033
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1140398</commentid>
    <comment_count>2</comment_count>
      <attachid>265033</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-11-09 09:48:22 -0800</bug_when>
    <thetext>Comment on attachment 265033
Patch v1

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

&gt; Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.cpp:168
&gt; +    ASSERT(!m_orderedKeys || m_orderedKeys-&gt;find(keyData) == m_orderedKeys-&gt;end());

Why not use contains here instead of find==end?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1140412</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-11-09 10:14:45 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 265033 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=265033&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.cpp:168
&gt; &gt; +    ASSERT(!m_orderedKeys || m_orderedKeys-&gt;find(keyData) == m_orderedKeys-&gt;end());
&gt; 
&gt; Why not use contains here instead of find==end?

m_orderedKeys is a std::set, which apparently doesn&apos;t have ::contains() - Only find. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1140419</commentid>
    <comment_count>4</comment_count>
      <attachid>265033</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-09 10:36:43 -0800</bug_when>
    <thetext>Comment on attachment 265033
Patch v1

Clearing flags on attachment: 265033

Committed r192163: &lt;http://trac.webkit.org/changeset/192163&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1140420</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-09 10:36:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265033</attachid>
            <date>2015-11-08 22:24:34 -0800</date>
            <delta_ts>2015-11-09 10:36:43 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>12871</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhZGRjZGVhLi44YTk0Y2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQg
QEAKKzIwMTUtMTEtMDggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE1vZGVybiBJREI6IFJlZmFjdG9yIG1lbW9yeSBvYmplY3RzdG9yZS90cmFuc2FjdGlvbiBp
bnRlcmF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUxMDE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIChSZWZhY3Rvciwgbm8gY2hhbmdlIGluIGJlaGF2aW9yKS4KKworICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaDoKKyAgICAg
ICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9y
ZVRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5QmFj
a2luZ1N0b3JlVHJhbnNhY3Rpb246OnJlY29yZFZhbHVlQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjphYm9ydCk6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5z
YWN0aW9uLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9N
ZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpN
ZW1vcnlJREJCYWNraW5nU3RvcmU6OmFkZFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6cHV0UmVjb3JkKTogRGVsZXRlZC4gUmVuYW1l
ZCB0byBhZGRSZWNvcmQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9y
eUlEQkJhY2tpbmdTdG9yZS5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpNZW1vcnlPYmplY3RTdG9yZTo6ZGVsZXRlUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6TWVtb3J5T2JqZWN0U3RvcmU6OmFkZFJlY29yZCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeU9iamVjdFN0b3JlOjpwdXRSZWNvcmQpOiBEZWxldGVkLiBS
ZW5hbWVkIHRvIGFkZFJlY29yZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5
T2JqZWN0U3RvcmU6OnNldEtleVZhbHVlKTogRGVsZXRlZC4gRm9sZGVkIGludG8gYWRkUmVjb3Jk
LgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5o
OgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURC
RGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRh
YmFzZTo6cGVyZm9ybVB1dE9yQWRkKToKKwogMjAxNS0xMS0wOCAgRGF2aWQgS2lsemVyICA8ZGRr
aWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIxOTIxNDApOiBXaW5kb3dz
IGJ1aWxkIGJyb2tlIGFmdGVyIHJlbW92aW5nIENvbG9yU3BhY2UgYXJndW1lbnQgdG8gYWxsIGRy
YXdpbmcgY2FsbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaAppbmRleCBlNmJhNjY5Li40MGE5ZDJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2lu
Z1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QkJhY2tpbmdTdG9yZS5oCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIElE
QkVycm9yIGNyZWF0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rp
b25JZGVudGlmaWVyLCBjb25zdCBJREJJbmRleEluZm8mKSA9IDA7CiAgICAgdmlydHVhbCBJREJF
cnJvciBrZXlFeGlzdHNJbk9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNv
bnN0IElEQktleURhdGEmLCBib29sJiBrZXlFeGlzdHMpID0gMDsKICAgICB2aXJ0dWFsIElEQkVy
cm9yIGRlbGV0ZVJhbmdlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJh
bmdlRGF0YSYpID0gMDsKLSAgICB2aXJ0dWFsIElEQkVycm9yIHB1dFJlY29yZChjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0
U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiwgY29uc3QgVGhyZWFkU2FmZURhdGFC
dWZmZXImIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCBJREJFcnJvciBhZGRSZWNvcmQoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9i
amVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYsIGNvbnN0IFRocmVhZFNhZmVE
YXRhQnVmZmVyJiB2YWx1ZSkgPSAwOwogICAgIHZpcnR1YWwgSURCRXJyb3IgZ2V0UmVjb3JkKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYsIFRocmVhZFNh
ZmVEYXRhQnVmZmVyJiBvdXRWYWx1ZSkgPSAwOwogICAgIHZpcnR1YWwgSURCRXJyb3IgZ2V0SW5k
ZXhSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlm
aWVyLCBJbmRleGVkREI6OkluZGV4UmVjb3JkVHlwZSwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwg
SURCR2V0UmVzdWx0JiBvdXRWYWx1ZSkgPSAwOwogICAgIHZpcnR1YWwgSURCRXJyb3IgZ2V0Q291
bnQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBj
b25zdCBJREJLZXlSYW5nZURhdGEmLCB1aW50NjRfdCYgb3V0Q291bnQpID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5n
U3RvcmVUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCmluZGV4IGQ4ZjE2YmUuLmQz
ZDAwMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNw
cApAQCAtMTMyLDcgKzEzMiw3IEBAIHZvaWQgTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246
Om9iamVjdFN0b3JlQ2xlYXJlZChNZW1vcnlPYmplY3RTdG9yZSYgb2JqZWN0CiAgICAgYWRkUmVz
dWx0Lml0ZXJhdG9yLT52YWx1ZSA9IFdURjo6bW92ZShrZXlWYWx1ZU1hcCk7CiB9CiAKLXZvaWQg
TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246OnJlY29yZFZhbHVlQ2hhbmdlZChNZW1vcnlP
YmplY3RTdG9yZSYgb2JqZWN0U3RvcmUsIGNvbnN0IElEQktleURhdGEmIGtleSkKK3ZvaWQgTWVt
b3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246OnJlY29yZFZhbHVlQ2hhbmdlZChNZW1vcnlPYmpl
Y3RTdG9yZSYgb2JqZWN0U3RvcmUsIGNvbnN0IElEQktleURhdGEmIGtleSwgVGhyZWFkU2FmZURh
dGFCdWZmZXIqIHZhbHVlKQogewogICAgIEFTU0VSVChtX29iamVjdFN0b3Jlcy5jb250YWlucygm
b2JqZWN0U3RvcmUpKTsKIApAQCAtMTU0LDcgKzE1NCw4IEBAIHZvaWQgTWVtb3J5QmFja2luZ1N0
b3JlVHJhbnNhY3Rpb246OnJlY29yZFZhbHVlQ2hhbmdlZChNZW1vcnlPYmplY3RTdG9yZSYgb2Jq
ZWN0CiAgICAgaWYgKCFhZGRSZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IG9iamVjdFN0b3JlLnZhbHVlRm9yS2V5UmFu
Z2UoSURCS2V5UmFuZ2VEYXRhKGtleSkpOworICAgIGlmICh2YWx1ZSkKKyAgICAgICAgYWRkUmVz
dWx0Lml0ZXJhdG9yLT52YWx1ZSA9ICp2YWx1ZTsKIH0KIAogdm9pZCBNZW1vcnlCYWNraW5nU3Rv
cmVUcmFuc2FjdGlvbjo6YWJvcnQoKQpAQCAtMTk3LDcgKzE5OCw3IEBAIHZvaWQgTWVtb3J5QmFj
a2luZ1N0b3JlVHJhbnNhY3Rpb246OmFib3J0KCkKIAogICAgICAgICBmb3IgKGF1dG8gZW50cnkg
OiAqa2V5VmFsdWVNYXApIHsKICAgICAgICAgICAgIG9iamVjdFN0b3JlLT5kZWxldGVSZWNvcmQo
ZW50cnkua2V5KTsKLSAgICAgICAgICAgIG9iamVjdFN0b3JlLT5zZXRLZXlWYWx1ZShlbnRyeS5r
ZXksIGVudHJ5LnZhbHVlKTsKKyAgICAgICAgICAgIG9iamVjdFN0b3JlLT5hZGRSZWNvcmQoKnRo
aXMsIGVudHJ5LmtleSwgZW50cnkudmFsdWUpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2lu
Z1N0b3JlVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oCmluZGV4IGQ3ZTZkMGMuLjc5Y2Rm
ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9N
ZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oCkBAIC01
OSw3ICs1OSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkTmV3T2JqZWN0U3RvcmUoTWVtb3J5
T2JqZWN0U3RvcmUmKTsKICAgICB2b2lkIGFkZEV4aXN0aW5nT2JqZWN0U3RvcmUoTWVtb3J5T2Jq
ZWN0U3RvcmUmKTsKLSAgICB2b2lkIHJlY29yZFZhbHVlQ2hhbmdlZChNZW1vcnlPYmplY3RTdG9y
ZSYsIGNvbnN0IElEQktleURhdGEmKTsKKyAgICAKKyAgICB2b2lkIHJlY29yZFZhbHVlQ2hhbmdl
ZChNZW1vcnlPYmplY3RTdG9yZSYsIGNvbnN0IElEQktleURhdGEmLCBUaHJlYWRTYWZlRGF0YUJ1
ZmZlciopOwogICAgIHZvaWQgb2JqZWN0U3RvcmVEZWxldGVkKHN0ZDo6dW5pcXVlX3B0cjxNZW1v
cnlPYmplY3RTdG9yZT4pOwogICAgIHZvaWQgb2JqZWN0U3RvcmVDbGVhcmVkKE1lbW9yeU9iamVj
dFN0b3JlJiwgc3RkOjp1bmlxdWVfcHRyPEtleVZhbHVlTWFwPiYmKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdT
dG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5
SURCQmFja2luZ1N0b3JlLmNwcAppbmRleCAzNzg0M2U1Li4xOGY4NjI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVt
b3J5SURCQmFja2luZ1N0b3JlLmNwcApAQCAtMjQ0LDkgKzI0NCw5IEBAIElEQkVycm9yIE1lbW9y
eUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlUmFuZ2UoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiB0cmFuc2FjCiAgICAgcmV0dXJuIElEQkVycm9yKCk7CiB9CiAKLUlEQkVycm9yIE1lbW9yeUlE
QkJhY2tpbmdTdG9yZTo6cHV0UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0
IElEQktleURhdGEmIGtleURhdGEsIGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2YWx1ZSkK
K0lEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YWRkUmVjb3JkKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9y
ZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIGNvbnN0IFRocmVhZFNhZmVE
YXRhQnVmZmVyJiB2YWx1ZSkKIHsKLSAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2lu
Z1N0b3JlOjpwdXRSZWNvcmQiKTsKKyAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2lu
Z1N0b3JlOjphZGRSZWNvcmQiKTsKIAogICAgIEFTU0VSVChvYmplY3RTdG9yZUlkZW50aWZpZXIp
OwogCkBAIC0yNTgsNyArMjU4LDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpw
dXRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGkKICAgICBpZiAo
IW9iamVjdFN0b3JlKQogICAgICAgICByZXR1cm4gSURCRXJyb3IoSURCRXhjZXB0aW9uQ29kZTo6
VW5rbm93biwgV1RGOjpBU0NJSUxpdGVyYWwoIk5vIGJhY2tpbmcgc3RvcmUgb2JqZWN0IHN0b3Jl
IGZvdW5kIHRvIHB1dCByZWNvcmQiKSk7CiAKLSAgICBvYmplY3RTdG9yZS0+cHV0UmVjb3JkKCp0
cmFuc2FjdGlvbiwga2V5RGF0YSwgdmFsdWUpOworICAgIG9iamVjdFN0b3JlLT5hZGRSZWNvcmQo
KnRyYW5zYWN0aW9uLCBrZXlEYXRhLCB2YWx1ZSk7CiAgICAgcmV0dXJuIElEQkVycm9yKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9N
ZW1vcnlJREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaAppbmRleCAxYjNkNmNmLi5mMjFlNGVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5
SURCQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIElEQkVycm9yIGNyZWF0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJJbmRleEluZm8mKSBvdmVycmlk
ZSBmaW5hbDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGtleUV4aXN0c0luT2JqZWN0U3RvcmUoY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90
IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYsIGJvb2wmIGtleUV4aXN0
cykgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCBJREJFcnJvciBkZWxldGVSYW5nZShjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qg
b2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmKSBvdmVycmlkZSBm
aW5hbDsKLSAgICB2aXJ0dWFsIElEQkVycm9yIHB1dFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVu
dGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiwgY29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImIHZh
bHVlKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIElEQkVycm9yIGFkZFJlY29yZChjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qg
b2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiwgY29uc3QgVGhyZWFkU2Fm
ZURhdGFCdWZmZXImIHZhbHVlKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIElEQkVycm9y
IGdldFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURh
dGEmLCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgb3V0VmFsdWUpIG92ZXJyaWRlIGZpbmFsOwogICAg
IHZpcnR1YWwgSURCRXJyb3IgZ2V0SW5kZXhSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmll
ciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBJbmRleGVkREI6OkluZGV4UmVjb3JkVHlwZSwg
Y29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgSURCR2V0UmVzdWx0JiBvdXRWYWx1ZSkgb3ZlcnJpZGUg
ZmluYWw7CiAgICAgdmlydHVhbCBJREJFcnJvciBnZXRDb3VudChjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVu
dGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYs
IHVpbnQ2NF90JiBvdXRDb3VudCkgb3ZlcnJpZGUgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3Jl
LmNwcAppbmRleCBjZTlmYzk4Li4wODJhNGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5jcHAK
QEAgLTExNSwxNCArMTE1LDIyIEBAIHZvaWQgTWVtb3J5T2JqZWN0U3RvcmU6OmRlbGV0ZVJlY29y
ZChjb25zdCBJREJLZXlEYXRhJiBrZXkpCiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeU9iamVj
dFN0b3JlOjpkZWxldGVSZWNvcmQiKTsKIAogICAgIEFTU0VSVChtX3dyaXRlVHJhbnNhY3Rpb24p
OwotICAgIG1fd3JpdGVUcmFuc2FjdGlvbi0+cmVjb3JkVmFsdWVDaGFuZ2VkKCp0aGlzLCBrZXkp
OwogCi0gICAgaWYgKCFtX2tleVZhbHVlU3RvcmUpCisgICAgaWYgKCFtX2tleVZhbHVlU3RvcmUp
IHsKKyAgICAgICAgbV93cml0ZVRyYW5zYWN0aW9uLT5yZWNvcmRWYWx1ZUNoYW5nZWQoKnRoaXMs
IGtleSwgbnVsbHB0cik7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBBU1NFUlQobV9v
cmRlcmVkS2V5cyk7CiAKLSAgICBtX2tleVZhbHVlU3RvcmUtPnJlbW92ZShrZXkpOworICAgIGF1
dG8gaXRlcmF0b3IgPSBtX2tleVZhbHVlU3RvcmUtPmZpbmQoa2V5KTsKKyAgICBpZiAoaXRlcmF0
b3IgPT0gbV9rZXlWYWx1ZVN0b3JlLT5lbmQoKSkgeworICAgICAgICBtX3dyaXRlVHJhbnNhY3Rp
b24tPnJlY29yZFZhbHVlQ2hhbmdlZCgqdGhpcywga2V5LCBudWxscHRyKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIG1fd3JpdGVUcmFuc2FjdGlvbi0+cmVjb3JkVmFsdWVDaGFuZ2Vk
KCp0aGlzLCBrZXksICZpdGVyYXRvci0+dmFsdWUpOworICAgIG1fa2V5VmFsdWVTdG9yZS0+cmVt
b3ZlKGl0ZXJhdG9yKTsKICAgICBtX29yZGVyZWRLZXlzLT5lcmFzZShrZXkpOwogfQogCkBAIC0x
NTAsMjAgKzE1OCwxNSBAQCB2b2lkIE1lbW9yeU9iamVjdFN0b3JlOjpkZWxldGVSYW5nZShjb25z
dCBJREJLZXlSYW5nZURhdGEmIGlucHV0UmFuZ2UpCiAgICAgfQogfQogCi12b2lkIE1lbW9yeU9i
amVjdFN0b3JlOjpwdXRSZWNvcmQoTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24mIHRyYW5z
YWN0aW9uLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1
ZmZlciYgdmFsdWUpCit2b2lkIE1lbW9yeU9iamVjdFN0b3JlOjphZGRSZWNvcmQoTWVtb3J5QmFj
a2luZ1N0b3JlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBjb25zdCBJREJLZXlEYXRhJiBrZXlE
YXRhLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWUpCiB7Ci0gICAgTE9HKEluZGV4
ZWREQiwgIk1lbW9yeU9iamVjdFN0b3JlOjpwdXRSZWNvcmQiKTsKKyAgICBMT0coSW5kZXhlZERC
LCAiTWVtb3J5T2JqZWN0U3RvcmU6OmFkZFJlY29yZCIpOwogCiAgICAgQVNTRVJUKG1fd3JpdGVU
cmFuc2FjdGlvbik7CiAgICAgQVNTRVJUX1VOVVNFRCh0cmFuc2FjdGlvbiwgbV93cml0ZVRyYW5z
YWN0aW9uID09ICZ0cmFuc2FjdGlvbik7CisgICAgQVNTRVJUKCFtX2tleVZhbHVlU3RvcmUgfHwg
IW1fa2V5VmFsdWVTdG9yZS0+Y29udGFpbnMoa2V5RGF0YSkpOworICAgIEFTU0VSVCghbV9vcmRl
cmVkS2V5cyB8fCBtX29yZGVyZWRLZXlzLT5maW5kKGtleURhdGEpID09IG1fb3JkZXJlZEtleXMt
PmVuZCgpKTsKIAotICAgIG1fd3JpdGVUcmFuc2FjdGlvbi0+cmVjb3JkVmFsdWVDaGFuZ2VkKCp0
aGlzLCBrZXlEYXRhKTsKLQotICAgIHNldEtleVZhbHVlKGtleURhdGEsIHZhbHVlKTsKLX0KLQot
dm9pZCBNZW1vcnlPYmplY3RTdG9yZTo6c2V0S2V5VmFsdWUoY29uc3QgSURCS2V5RGF0YSYga2V5
RGF0YSwgY29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVlKQotewogICAgIGlmICghbV9r
ZXlWYWx1ZVN0b3JlKSB7CiAgICAgICAgIEFTU0VSVCghbV9vcmRlcmVkS2V5cyk7CiAgICAgICAg
IG1fa2V5VmFsdWVTdG9yZSA9IHN0ZDo6bWFrZV91bmlxdWU8S2V5VmFsdWVNYXA+KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2Jq
ZWN0U3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1v
cnlPYmplY3RTdG9yZS5oCmluZGV4IDUzODkwOTAuLjY2YjljMmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RT
dG9yZS5oCkBAIC02Nyw5ICs2Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRhaW5zUmVjb3Jk
KGNvbnN0IElEQktleURhdGEmKTsKICAgICB2b2lkIGRlbGV0ZVJlY29yZChjb25zdCBJREJLZXlE
YXRhJik7CiAgICAgdm9pZCBkZWxldGVSYW5nZShjb25zdCBJREJLZXlSYW5nZURhdGEmKTsKLSAg
ICB2b2lkIHB1dFJlY29yZChNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbiYsIGNvbnN0IElE
QktleURhdGEmLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWUpOwotCi0gICAgdm9p
ZCBzZXRLZXlWYWx1ZShjb25zdCBJREJLZXlEYXRhJiwgY29uc3QgVGhyZWFkU2FmZURhdGFCdWZm
ZXImIHZhbHVlKTsKKyAgICB2b2lkIGFkZFJlY29yZChNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbiYsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFs
dWUpOwogCiAgICAgdWludDY0X3QgY3VycmVudEtleUdlbmVyYXRvclZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gbV9rZXlHZW5lcmF0b3JWYWx1ZTsgfQogICAgIHZvaWQgc2V0S2V5R2VuZXJhdG9yVmFs
dWUodWludDY0X3QgdmFsdWUpIHsgbV9rZXlHZW5lcmF0b3JWYWx1ZSA9IHZhbHVlOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURC
RGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1Vu
aXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCBhMjI0MDZhLi5kYjgzNzllIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJ
REJEYXRhYmFzZS5jcHAKQEAgLTQzNCw3ICs0MzQsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNl
OjpwZXJmb3JtUHV0T3JBZGQodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJS
ZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+
cHV0UmVjb3JkKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1
c2VkS2V5LCB2YWx1ZURhdGEpOworICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmFkZFJlY29y
ZCh0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgdXNlZEtleSwg
dmFsdWVEYXRhKTsKIAogICAgIG1fc2VydmVyLnBvc3REYXRhYmFzZVRhc2tSZXBseShjcmVhdGVD
cm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybVB1dE9y
QWRkLCBjYWxsYmFja0lkZW50aWZpZXIsIGVycm9yLCB1c2VkS2V5KSk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>