<?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>61517</bug_id>
          
          <creation_ts>2011-05-26 03:55:01 -0700</creation_ts>
          <short_desc>IndexedDB: Support NO_DUPLICATE cursors on LevelDB back-end</short_desc>
          <delta_ts>2011-05-27 03:54:58 -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>New Bugs</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="Hans Wennborg">hans</reporter>
          <assigned_to name="Hans Wennborg">hans</assigned_to>
          <cc>andreip</cc>
    
    <cc>dgrogan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>410343</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-05-26 03:55:01 -0700</bug_when>
    <thetext>IndexedDB: Support NO_DUPLICATE cursors on LevelDB back-end</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410344</commentid>
    <comment_count>1</comment_count>
      <attachid>94958</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-05-26 03:56:11 -0700</bug_when>
    <thetext>Created attachment 94958
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410624</commentid>
    <comment_count>2</comment_count>
      <attachid>94958</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-05-26 11:26:04 -0700</bug_when>
    <thetext>Comment on attachment 94958
Patch

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

LGTM

&gt; Source/WebCore/ChangeLog:8
&gt; +        This is tested by storage/indexeddb/mozilla/indexes.html

The layout tests aren&apos;t run with the leveldb backend on the bots, right?  You have a local change that forces leveldb?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411264</commentid>
    <comment_count>3</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-05-27 01:34:01 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 94958 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=94958&amp;action=review
&gt; 
&gt; LGTM
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        This is tested by storage/indexeddb/mozilla/indexes.html
&gt; 
&gt; The layout tests aren&apos;t run with the leveldb backend on the bots, right?  You have a local change that forces leveldb?
Exactly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411307</commentid>
    <comment_count>4</comment_count>
      <attachid>94958</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-05-27 03:27:51 -0700</bug_when>
    <thetext>Comment on attachment 94958
Patch

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

&gt; Source/WebCore/ChangeLog:5
&gt; +        IndexedDB: Support NO_DUPLICATE cursors on LevelDB back-end

If possible, a link to this part of the spec in the ChangeLog would be nice.

&gt; Source/WebCore/storage/IDBLevelDBBackingStore.cpp:839
&gt; +    CursorImplCommon(LevelDBTransaction* transaction, const Vector&lt;char&gt;&amp; lowKey, bool lowOpen, const Vector&lt;char&gt;&amp; highKey, bool highOpen, bool forward, bool unique)

The bools are out of hand. I don&apos;t think you should hold up this change, but a future cleanup might be nice to use enums, an options struct or something else to clean up these signatures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411313</commentid>
    <comment_count>5</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-05-27 03:54:13 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 94958 [details])
Thanks for the review!

&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=94958&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:5
&gt; &gt; +        IndexedDB: Support NO_DUPLICATE cursors on LevelDB back-end
&gt; 
&gt; If possible, a link to this part of the spec in the ChangeLog would be nice.
Done.

&gt; 
&gt; &gt; Source/WebCore/storage/IDBLevelDBBackingStore.cpp:839
&gt; &gt; +    CursorImplCommon(LevelDBTransaction* transaction, const Vector&lt;char&gt;&amp; lowKey, bool lowOpen, const Vector&lt;char&gt;&amp; highKey, bool highOpen, bool forward, bool unique)
&gt; 
&gt; The bools are out of hand. I don&apos;t think you should hold up this change, but a future cleanup might be nice to use enums, an options struct or something else to clean up these signatures.
Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411314</commentid>
    <comment_count>6</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-05-27 03:54:58 -0700</bug_when>
    <thetext>Committed r87491: &lt;http://trac.webkit.org/changeset/87491&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94958</attachid>
            <date>2011-05-26 03:56:11 -0700</date>
            <delta_ts>2011-05-27 03:27:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61517-20110526115609.patch</filename>
            <type>text/plain</type>
            <size>9655</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODczNzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwOTI1MWQyNTJiMzI4NzA2
YTA0NTYzNmJlZTA3Nzc3ZDBkYjA4ZWE5Li5iZGZhMDU3ZTRmMzAyZTcxMjAwN2QwZjZiNTBkMzJl
MjhmMzQ3NzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDUtMjYgIEhhbnMg
V2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbmRleGVkREI6IFN1cHBvcnQgTk9fRFVQTElDQVRFIGN1
cnNvcnMgb24gTGV2ZWxEQiBiYWNrLWVuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjE1MTcKKworICAgICAgICBUaGlzIGlzIHRlc3RlZCBieSBzdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL2luZGV4ZXMuaHRtbAorCisgICAgICAgICogc3RvcmFnZS9J
REJMZXZlbERCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkxldmVsREJC
YWNraW5nU3RvcmU6Om9wZW5PYmplY3RTdG9yZUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJ
REJMZXZlbERCQmFja2luZ1N0b3JlOjpvcGVuSW5kZXhLZXlDdXJzb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6b3BlbkluZGV4Q3Vyc29yKToKKwogMjAxMS0w
NS0yNiAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURC
TGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggMDRiNTdlNzQwYmZjZTRmZTE5MDI5ZjZjZjIw
M2U1MWI1ZDU0NWRkNy4uODM1ZjU1MjgxM2IwMTgyMzM3N2UxODY1ZmNiNmY3YzhjMTg1NzRhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQmFja2luZ1N0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJCYWNraW5nU3RvcmUu
Y3BwCkBAIC04MzYsMTMgKzgzNiwxNCBAQCBwdWJsaWM6CiAgICAgYm9vbCBmaXJzdFNlZWsoKTsK
IAogcHJvdGVjdGVkOgotICAgIEN1cnNvckltcGxDb21tb24oTGV2ZWxEQlRyYW5zYWN0aW9uKiB0
cmFuc2FjdGlvbiwgY29uc3QgVmVjdG9yPGNoYXI+JiBsb3dLZXksIGJvb2wgbG93T3BlbiwgY29u
c3QgVmVjdG9yPGNoYXI+JiBoaWdoS2V5LCBib29sIGhpZ2hPcGVuLCBib29sIGZvcndhcmQpCisg
ICAgQ3Vyc29ySW1wbENvbW1vbihMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBjb25z
dCBWZWN0b3I8Y2hhcj4mIGxvd0tleSwgYm9vbCBsb3dPcGVuLCBjb25zdCBWZWN0b3I8Y2hhcj4m
IGhpZ2hLZXksIGJvb2wgaGlnaE9wZW4sIGJvb2wgZm9yd2FyZCwgYm9vbCB1bmlxdWUpCiAgICAg
ICAgIDogbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKICAgICAgICAgLCBtX2xvd0tleShsb3dL
ZXkpCiAgICAgICAgICwgbV9sb3dPcGVuKGxvd09wZW4pCiAgICAgICAgICwgbV9oaWdoS2V5KGhp
Z2hLZXkpCiAgICAgICAgICwgbV9oaWdoT3BlbihoaWdoT3BlbikKICAgICAgICAgLCBtX2Zvcndh
cmQoZm9yd2FyZCkKKyAgICAgICAgLCBtX3VuaXF1ZSh1bmlxdWUpCiAgICAgewogICAgIH0KICAg
ICB2aXJ0dWFsIH5DdXJzb3JJbXBsQ29tbW9uKCkge30KQEAgLTg1NCw2ICs4NTUsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgVmVjdG9yPGNoYXI+IG1faGlnaEtleTsKICAgICBib29sIG1faGlnaE9wZW47
CiAgICAgYm9vbCBtX2ZvcndhcmQ7CisgICAgYm9vbCBtX3VuaXF1ZTsKICAgICBSZWZQdHI8SURC
S2V5PiBtX2N1cnJlbnRLZXk7CiB9OwogCkBAIC05MDksNiArOTExLDcgQEAgYm9vbCBDdXJzb3JJ
bXBsQ29tbW9uOjpmaXJzdFNlZWsoKQogYm9vbCBDdXJzb3JJbXBsQ29tbW9uOjpjb250aW51ZUZ1
bmN0aW9uKGNvbnN0IElEQktleSoga2V5KQogewogICAgIC8vIEZJWE1FOiBUaGlzIHNoYXJlcyBh
IGxvdCBvZiBjb2RlIHdpdGggZmlyc3RTZWVrLgorICAgIFJlZlB0cjxJREJLZXk+IHByZXZpb3Vz
S2V5ID0gbV9jdXJyZW50S2V5OwogCiAgICAgZm9yICg7OykgewogICAgICAgICBpZiAobV9mb3J3
YXJkKQpAQCAtOTQ1LDcgKzk0OCw4IEBAIGJvb2wgQ3Vyc29ySW1wbENvbW1vbjo6Y29udGludWVG
dW5jdGlvbihjb25zdCBJREJLZXkqIGtleSkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0g
ICAgICAgIC8vIEZJWE1FOiBPYmV5IHRoZSB1bmlxdWVuZXNzIGNvbnN0cmFpbnQgKGFuZCB0ZXN0
IGZvciBpdCEpCisgICAgICAgIGlmIChtX3VuaXF1ZSAmJiBtX2N1cnJlbnRLZXktPmlzRXF1YWwo
cHJldmlvdXNLZXkuZ2V0KCkpKQorICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgYnJl
YWs7CiAgICAgfQpAQCAtOTU1LDkgKzk1OSw5IEBAIGJvb2wgQ3Vyc29ySW1wbENvbW1vbjo6Y29u
dGludWVGdW5jdGlvbihjb25zdCBJREJLZXkqIGtleSkKIAogY2xhc3MgT2JqZWN0U3RvcmVDdXJz
b3JJbXBsIDogcHVibGljIEN1cnNvckltcGxDb21tb24gewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPE9iamVjdFN0b3JlQ3Vyc29ySW1wbD4gY3JlYXRlKExldmVsREJUcmFuc2FjdGlv
biogdHJhbnNhY3Rpb24sIGNvbnN0IFZlY3RvcjxjaGFyPiYgbG93S2V5LCBib29sIGxvd09wZW4s
IGNvbnN0IFZlY3RvcjxjaGFyPiYgaGlnaEtleSwgYm9vbCBoaWdoT3BlbiwgYm9vbCBmb3J3YXJk
KQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE9iamVjdFN0b3JlQ3Vyc29ySW1wbD4gY3JlYXRlKExl
dmVsREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGNvbnN0IFZlY3RvcjxjaGFyPiYgbG93S2V5
LCBib29sIGxvd09wZW4sIGNvbnN0IFZlY3RvcjxjaGFyPiYgaGlnaEtleSwgYm9vbCBoaWdoT3Bl
biwgYm9vbCBmb3J3YXJkLCBib29sIHVuaXF1ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgT2JqZWN0U3RvcmVDdXJzb3JJbXBsKHRyYW5zYWN0aW9uLCBsb3dLZXksIGxvd09w
ZW4sIGhpZ2hLZXksIGhpZ2hPcGVuLCBmb3J3YXJkKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgT2JqZWN0U3RvcmVDdXJzb3JJbXBsKHRyYW5zYWN0aW9uLCBsb3dLZXksIGxvd09wZW4s
IGhpZ2hLZXksIGhpZ2hPcGVuLCBmb3J3YXJkLCB1bmlxdWUpKTsKICAgICB9CiAKICAgICAvLyBD
dXJzb3JJbXBsQ29tbW9uCkBAIC05NjcsOCArOTcxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBsb2FkQ3VycmVudFJvdygpOwogCiBwcml2YXRlOgotICAgIE9iamVjdFN0b3JlQ3Vyc29y
SW1wbChMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBjb25zdCBWZWN0b3I8Y2hhcj4m
IGxvd0tleSwgYm9vbCBsb3dPcGVuLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGhpZ2hLZXksIGJvb2wg
aGlnaE9wZW4sIGJvb2wgZm9yd2FyZCkKLSAgICAgICAgOiBDdXJzb3JJbXBsQ29tbW9uKHRyYW5z
YWN0aW9uLCBsb3dLZXksIGxvd09wZW4sIGhpZ2hLZXksIGhpZ2hPcGVuLCBmb3J3YXJkKQorICAg
IE9iamVjdFN0b3JlQ3Vyc29ySW1wbChMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBj
b25zdCBWZWN0b3I8Y2hhcj4mIGxvd0tleSwgYm9vbCBsb3dPcGVuLCBjb25zdCBWZWN0b3I8Y2hh
cj4mIGhpZ2hLZXksIGJvb2wgaGlnaE9wZW4sIGJvb2wgZm9yd2FyZCwgYm9vbCB1bmlxdWUpCisg
ICAgICAgIDogQ3Vyc29ySW1wbENvbW1vbih0cmFuc2FjdGlvbiwgbG93S2V5LCBsb3dPcGVuLCBo
aWdoS2V5LCBoaWdoT3BlbiwgZm9yd2FyZCwgdW5pcXVlKQogICAgIHsKICAgICB9CiAKQEAgLTEw
MDIsOSArMTAwNiw5IEBAIGJvb2wgT2JqZWN0U3RvcmVDdXJzb3JJbXBsOjpsb2FkQ3VycmVudFJv
dygpCiAKIGNsYXNzIEluZGV4S2V5Q3Vyc29ySW1wbCA6IHB1YmxpYyBDdXJzb3JJbXBsQ29tbW9u
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbmRleEtleUN1cnNvckltcGw+IGNy
ZWF0ZShMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBjb25zdCBWZWN0b3I8Y2hhcj4m
IGxvd0tleSwgYm9vbCBsb3dPcGVuLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGhpZ2hLZXksIGJvb2wg
aGlnaE9wZW4sIGJvb2wgZm9yd2FyZCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbmRleEtleUN1
cnNvckltcGw+IGNyZWF0ZShMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBjb25zdCBW
ZWN0b3I8Y2hhcj4mIGxvd0tleSwgYm9vbCBsb3dPcGVuLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGhp
Z2hLZXksIGJvb2wgaGlnaE9wZW4sIGJvb2wgZm9yd2FyZCwgYm9vbCB1bmlxdWUpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluZGV4S2V5Q3Vyc29ySW1wbCh0cmFuc2FjdGlv
biwgbG93S2V5LCBsb3dPcGVuLCBoaWdoS2V5LCBoaWdoT3BlbiwgZm9yd2FyZCkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEluZGV4S2V5Q3Vyc29ySW1wbCh0cmFuc2FjdGlvbiwgbG93
S2V5LCBsb3dPcGVuLCBoaWdoS2V5LCBoaWdoT3BlbiwgZm9yd2FyZCwgdW5pcXVlKSk7CiAgICAg
fQogCiAgICAgLy8gQ3Vyc29ySW1wbENvbW1vbgpAQCAtMTAxNSw4ICsxMDE5LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBsb2FkQ3VycmVudFJvdygpOwogCiBwcml2YXRlOgotICAgIElu
ZGV4S2V5Q3Vyc29ySW1wbChMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBjb25zdCBW
ZWN0b3I8Y2hhcj4mIGxvd0tleSwgYm9vbCBsb3dPcGVuLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGhp
Z2hLZXksIGJvb2wgaGlnaE9wZW4sIGJvb2wgZm9yd2FyZCkKLSAgICAgICAgOiBDdXJzb3JJbXBs
Q29tbW9uKHRyYW5zYWN0aW9uLCBsb3dLZXksIGxvd09wZW4sIGhpZ2hLZXksIGhpZ2hPcGVuLCBm
b3J3YXJkKQorICAgIEluZGV4S2V5Q3Vyc29ySW1wbChMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5z
YWN0aW9uLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGxvd0tleSwgYm9vbCBsb3dPcGVuLCBjb25zdCBW
ZWN0b3I8Y2hhcj4mIGhpZ2hLZXksIGJvb2wgaGlnaE9wZW4sIGJvb2wgZm9yd2FyZCwgYm9vbCB1
bmlxdWUpCisgICAgICAgIDogQ3Vyc29ySW1wbENvbW1vbih0cmFuc2FjdGlvbiwgbG93S2V5LCBs
b3dPcGVuLCBoaWdoS2V5LCBoaWdoT3BlbiwgZm9yd2FyZCwgdW5pcXVlKQogICAgIHsKICAgICB9
CiAKQEAgLTEwNjUsOSArMTA2OSw5IEBAIGJvb2wgSW5kZXhLZXlDdXJzb3JJbXBsOjpsb2FkQ3Vy
cmVudFJvdygpCiAKIGNsYXNzIEluZGV4Q3Vyc29ySW1wbCA6IHB1YmxpYyBDdXJzb3JJbXBsQ29t
bW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbmRleEN1cnNvckltcGw+IGNy
ZWF0ZShMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBjb25zdCBWZWN0b3I8Y2hhcj4m
IGxvd0tleSwgYm9vbCBsb3dPcGVuLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGhpZ2hLZXksIGJvb2wg
aGlnaE9wZW4sIGJvb2wgZm9yd2FyZCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbmRleEN1cnNv
ckltcGw+IGNyZWF0ZShMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBjb25zdCBWZWN0
b3I8Y2hhcj4mIGxvd0tleSwgYm9vbCBsb3dPcGVuLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGhpZ2hL
ZXksIGJvb2wgaGlnaE9wZW4sIGJvb2wgZm9yd2FyZCwgYm9vbCB1bmlxdWUpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluZGV4Q3Vyc29ySW1wbCh0cmFuc2FjdGlvbiwgbG93
S2V5LCBsb3dPcGVuLCBoaWdoS2V5LCBoaWdoT3BlbiwgZm9yd2FyZCkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEluZGV4Q3Vyc29ySW1wbCh0cmFuc2FjdGlvbiwgbG93S2V5LCBsb3dP
cGVuLCBoaWdoS2V5LCBoaWdoT3BlbiwgZm9yd2FyZCwgdW5pcXVlKSk7CiAgICAgfQogCiAgICAg
Ly8gQ3Vyc29ySW1wbENvbW1vbgpAQCAtMTA3OCw4ICsxMDgyLDggQEAgcHVibGljOgogICAgIGJv
b2wgbG9hZEN1cnJlbnRSb3coKTsKIAogcHJpdmF0ZToKLSAgICBJbmRleEN1cnNvckltcGwoTGV2
ZWxEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgY29uc3QgVmVjdG9yPGNoYXI+JiBsb3dLZXks
IGJvb2wgbG93T3BlbiwgY29uc3QgVmVjdG9yPGNoYXI+JiBoaWdoS2V5LCBib29sIGhpZ2hPcGVu
LCBib29sIGZvcndhcmQpCi0gICAgICAgIDogQ3Vyc29ySW1wbENvbW1vbih0cmFuc2FjdGlvbiwg
bG93S2V5LCBsb3dPcGVuLCBoaWdoS2V5LCBoaWdoT3BlbiwgZm9yd2FyZCkKKyAgICBJbmRleEN1
cnNvckltcGwoTGV2ZWxEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgY29uc3QgVmVjdG9yPGNo
YXI+JiBsb3dLZXksIGJvb2wgbG93T3BlbiwgY29uc3QgVmVjdG9yPGNoYXI+JiBoaWdoS2V5LCBi
b29sIGhpZ2hPcGVuLCBib29sIGZvcndhcmQsIGJvb2wgdW5pcXVlKQorICAgICAgICA6IEN1cnNv
ckltcGxDb21tb24odHJhbnNhY3Rpb24sIGxvd0tleSwgbG93T3BlbiwgaGlnaEtleSwgaGlnaE9w
ZW4sIGZvcndhcmQsIHVuaXF1ZSkKICAgICB7CiAgICAgfQogCkBAIC0xMTU3LDYgKzExNjEsNyBA
QCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZTo6Q3Vyc29yPiBJREJMZXZlbERCQmFja2luZ1N0
b3JlOjpvcGVuT2JqZWN0U3RvcmVDdXJzbwogICAgIGJvb2wgbG93ZXJCb3VuZCA9IHJhbmdlICYm
IHJhbmdlLT5sb3dlcigpOwogICAgIGJvb2wgdXBwZXJCb3VuZCA9IHJhbmdlICYmIHJhbmdlLT51
cHBlcigpOwogICAgIGJvb2wgZm9yd2FyZCA9IChkaXJlY3Rpb24gPT0gSURCQ3Vyc29yOjpORVhU
X05PX0RVUExJQ0FURSB8fCBkaXJlY3Rpb24gPT0gSURCQ3Vyc29yOjpORVhUKTsKKyAgICBib29s
IHVuaXF1ZSA9IChkaXJlY3Rpb24gPT0gSURCQ3Vyc29yOjpORVhUX05PX0RVUExJQ0FURSB8fCBk
aXJlY3Rpb24gPT0gSURCQ3Vyc29yOjpQUkVWX05PX0RVUExJQ0FURSk7CiAKICAgICBib29sIGxv
d2VyT3BlbiwgdXBwZXJPcGVuOwogICAgIFZlY3RvcjxjaGFyPiBzdGFydEtleSwgc3RvcEtleTsK
QEAgLTExODMsNyArMTE4OCw3IEBAIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+
IElEQkxldmVsREJCYWNraW5nU3RvcmU6Om9wZW5PYmplY3RTdG9yZUN1cnNvCiAgICAgICAgIHVw
cGVyT3BlbiA9IHJhbmdlLT51cHBlck9wZW4oKTsKICAgICB9CiAKLSAgICBSZWZQdHI8T2JqZWN0
U3RvcmVDdXJzb3JJbXBsPiBjdXJzb3IgPSBPYmplY3RTdG9yZUN1cnNvckltcGw6OmNyZWF0ZSht
X2N1cnJlbnRUcmFuc2FjdGlvbi5nZXQoKSwgc3RhcnRLZXksIGxvd2VyT3Blbiwgc3RvcEtleSwg
dXBwZXJPcGVuLCBmb3J3YXJkKTsKKyAgICBSZWZQdHI8T2JqZWN0U3RvcmVDdXJzb3JJbXBsPiBj
dXJzb3IgPSBPYmplY3RTdG9yZUN1cnNvckltcGw6OmNyZWF0ZShtX2N1cnJlbnRUcmFuc2FjdGlv
bi5nZXQoKSwgc3RhcnRLZXksIGxvd2VyT3Blbiwgc3RvcEtleSwgdXBwZXJPcGVuLCBmb3J3YXJk
LCB1bmlxdWUpOwogICAgIGlmICghY3Vyc29yLT5maXJzdFNlZWsoKSkKICAgICAgICAgcmV0dXJu
IDA7CiAKQEAgLTExOTYsNiArMTIwMSw3IEBAIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpD
dXJzb3I+IElEQkxldmVsREJCYWNraW5nU3RvcmU6Om9wZW5JbmRleEtleUN1cnNvcihpCiAgICAg
Ym9vbCBsb3dlckJvdW5kID0gcmFuZ2UgJiYgcmFuZ2UtPmxvd2VyKCk7CiAgICAgYm9vbCB1cHBl
ckJvdW5kID0gcmFuZ2UgJiYgcmFuZ2UtPnVwcGVyKCk7CiAgICAgYm9vbCBmb3J3YXJkID0gKGRp
cmVjdGlvbiA9PSBJREJDdXJzb3I6Ok5FWFRfTk9fRFVQTElDQVRFIHx8IGRpcmVjdGlvbiA9PSBJ
REJDdXJzb3I6Ok5FWFQpOworICAgIGJvb2wgdW5pcXVlID0gKGRpcmVjdGlvbiA9PSBJREJDdXJz
b3I6Ok5FWFRfTk9fRFVQTElDQVRFIHx8IGRpcmVjdGlvbiA9PSBJREJDdXJzb3I6OlBSRVZfTk9f
RFVQTElDQVRFKTsKIAogICAgIGJvb2wgbG93ZXJPcGVuLCB1cHBlck9wZW47CiAgICAgVmVjdG9y
PGNoYXI+IHN0YXJ0S2V5LCBzdG9wS2V5OwpAQCAtMTIyNCw3ICsxMjMwLDcgQEAgUGFzc1JlZlB0
cjxJREJCYWNraW5nU3RvcmU6OkN1cnNvcj4gSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6b3Blbklu
ZGV4S2V5Q3Vyc29yKGkKICAgICAgICAgdXBwZXJPcGVuID0gcmFuZ2UtPnVwcGVyT3BlbigpOwog
ICAgIH0KIAotICAgIFJlZlB0cjxJbmRleEtleUN1cnNvckltcGw+IGN1cnNvciA9IEluZGV4S2V5
Q3Vyc29ySW1wbDo6Y3JlYXRlKG1fY3VycmVudFRyYW5zYWN0aW9uLmdldCgpLCBzdGFydEtleSwg
bG93ZXJPcGVuLCBzdG9wS2V5LCB1cHBlck9wZW4sIGZvcndhcmQpOworICAgIFJlZlB0cjxJbmRl
eEtleUN1cnNvckltcGw+IGN1cnNvciA9IEluZGV4S2V5Q3Vyc29ySW1wbDo6Y3JlYXRlKG1fY3Vy
cmVudFRyYW5zYWN0aW9uLmdldCgpLCBzdGFydEtleSwgbG93ZXJPcGVuLCBzdG9wS2V5LCB1cHBl
ck9wZW4sIGZvcndhcmQsIHVuaXF1ZSk7CiAgICAgaWYgKCFjdXJzb3ItPmZpcnN0U2VlaygpKQog
ICAgICAgICByZXR1cm4gMDsKIApAQCAtMTIzNyw2ICsxMjQzLDcgQEAgUGFzc1JlZlB0cjxJREJC
YWNraW5nU3RvcmU6OkN1cnNvcj4gSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6b3BlbkluZGV4Q3Vy
c29yKGludDYKICAgICBib29sIGxvd2VyQm91bmQgPSByYW5nZSAmJiByYW5nZS0+bG93ZXIoKTsK
ICAgICBib29sIHVwcGVyQm91bmQgPSByYW5nZSAmJiByYW5nZS0+dXBwZXIoKTsKICAgICBib29s
IGZvcndhcmQgPSAoZGlyZWN0aW9uID09IElEQkN1cnNvcjo6TkVYVF9OT19EVVBMSUNBVEUgfHwg
ZGlyZWN0aW9uID09IElEQkN1cnNvcjo6TkVYVCk7CisgICAgYm9vbCB1bmlxdWUgPSAoZGlyZWN0
aW9uID09IElEQkN1cnNvcjo6TkVYVF9OT19EVVBMSUNBVEUgfHwgZGlyZWN0aW9uID09IElEQkN1
cnNvcjo6UFJFVl9OT19EVVBMSUNBVEUpOwogCiAgICAgYm9vbCBsb3dlck9wZW4sIHVwcGVyT3Bl
bjsKICAgICBWZWN0b3I8Y2hhcj4gc3RhcnRLZXksIHN0b3BLZXk7CkBAIC0xMjY1LDcgKzEyNzIs
NyBAQCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZTo6Q3Vyc29yPiBJREJMZXZlbERCQmFja2lu
Z1N0b3JlOjpvcGVuSW5kZXhDdXJzb3IoaW50NgogICAgICAgICB1cHBlck9wZW4gPSByYW5nZS0+
dXBwZXJPcGVuKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPEluZGV4Q3Vyc29ySW1wbD4gY3Vyc29y
ID0gSW5kZXhDdXJzb3JJbXBsOjpjcmVhdGUobV9jdXJyZW50VHJhbnNhY3Rpb24uZ2V0KCksIHN0
YXJ0S2V5LCBsb3dlck9wZW4sIHN0b3BLZXksIHVwcGVyT3BlbiwgZm9yd2FyZCk7CisgICAgUmVm
UHRyPEluZGV4Q3Vyc29ySW1wbD4gY3Vyc29yID0gSW5kZXhDdXJzb3JJbXBsOjpjcmVhdGUobV9j
dXJyZW50VHJhbnNhY3Rpb24uZ2V0KCksIHN0YXJ0S2V5LCBsb3dlck9wZW4sIHN0b3BLZXksIHVw
cGVyT3BlbiwgZm9yd2FyZCwgdW5pcXVlKTsKICAgICBpZiAoIWN1cnNvci0+Zmlyc3RTZWVrKCkp
CiAgICAgICAgIHJldHVybiAwOwogCg==
</data>
<flag name="review"
          id="88351"
          type_id="1"
          status="+"
          setter="tonyg"
    />
          </attachment>
      

    </bug>

</bugzilla>