<?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>128444</bug_id>
          
          <creation_ts>2014-02-07 22:33:03 -0800</creation_ts>
          <short_desc>IDB: storage/indexeddb/mozilla/index-prev-no-duplicate.html fails</short_desc>
          <delta_ts>2014-02-08 22:05:20 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>978293</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-07 22:33:03 -0800</bug_when>
    <thetext>IDB: storage/indexeddb/mozilla/index-prev-no-duplicate.html fails

- The index cursor statements weren&apos;t doing secondary ordering by value.
- Something else I haven&apos;t identified yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978294</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-02-07 22:33:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/16018914&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978295</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-07 22:34:08 -0800</bug_when>
    <thetext>Have that first part fixed already.  Will fix the second part in the A.M.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978296</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-02-07 22:35:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/16018918&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978381</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-08 10:04:41 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; IDB: storage/indexeddb/mozilla/index-prev-no-duplicate.html fails
...
&gt; - Something else I haven&apos;t identified yet.

So say you&apos;re walking an index cursor and you get to a lump of 4 record in a row that have the same key.

Those four values are sorted by their referenced value.

In the test case, we see these records in the object store:
        { key: &quot;237-23-7736&quot;, value: { name: &quot;Joe&quot;, height: 65, weight: 150 } },
        { key: &quot;237-23-7737&quot;, value: { name: &quot;Pat&quot;, height: 65, weight: 100 } },
        { key: &quot;237-23-7738&quot;, value: { name: &quot;Leo&quot;, height: 65, weight: 180 } },
        { key: &quot;237-23-7739&quot;, value: { name: &quot;Jef&quot;, height: 65, weight: 120 } },

The &apos;height&apos; index has the entries:
        { key: 65, value:  &quot;237-23-7736&quot; },
        { key: 65, value:  &quot;237-23-7737&quot; },
        { key: 65, value:  &quot;237-23-7738&quot; },
        { key: 65, value:  &quot;237-23-7739&quot; },

So when walking the index backwards, you&apos;re supposed to first see the record or 7739, then 7738, then 7737, then 7736.

But when walking the index backwards *uniquely*, you&apos;re only supposed to see one of the 65 entries.  Which one?

Well, since you get to the 7739 record first (when walking backwards...) I thought it was the 7739 record.
But it turns out when picking which record to return for a unique cursor, you walk to the last record that matches - in this case, the 7736 record.

Yikes.

A new flavor of index cursor statement will fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978463</commentid>
    <comment_count>5</comment_count>
      <attachid>223595</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-08 16:41:29 -0800</bug_when>
    <thetext>Created attachment 223595
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978521</commentid>
    <comment_count>6</comment_count>
      <attachid>223595</attachid>
    <who name="">mitz</who>
    <bug_when>2014-02-08 21:54:37 -0800</bug_when>
    <thetext>Comment on attachment 223595
Patch v1

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

&gt; Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:75
&gt;          indexStatements.reserveCapacity(8);

Seems like we need to bump this 8 up? Isn’t there a more efficient reserveInitialCapacity?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978523</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-08 22:05:20 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/163741</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223595</attachid>
            <date>2014-02-08 16:41:29 -0800</date>
            <delta_ts>2014-02-08 21:54:37 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>10630</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlMTIwMDgwLi41NTdjNjVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTQgQEAKIDIwMTQtMDIt
MDggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIElEQjogc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9pbmRleC1wcmV2LW5vLWR1cGxpY2F0ZS5odG1sIGZhaWxz
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjAxODkxOD4gYW5kIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg0NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9u
czogRW5hYmxlIHRoZSB0ZXN0LgorCisyMDE0LTAyLTA4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KKwogICAgICAgICBJREI6IHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvdmVy
c2lvbmNoYW5nZS1hYm9ydC5odG1sIGZhaWxzCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjAx
ODg4Nz4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg0NDIK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDI2Y2U0NWIuLmFkMzE3MTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTQ3OCw2ICs0NzgsNyBAQCBzdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL2NyZWF0ZS1pbmRleC13aXRoLWludGVnZXIta2V5cy5odG1sIFsgUGFzcyBdCiBzdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci1tdXRhdGlvbi1vYmplY3RzdG9yZS1vbmx5Lmh0bWwg
WyBQYXNzIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLW11dGF0aW9uLmh0bWwg
WyBQYXNzIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29ycy5odG1sIFsgUGFzcyBd
CitzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2luZGV4LXByZXYtbm8tZHVwbGljYXRlLmh0bWwg
WyBQYXNzIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvdmVyc2lvbmNoYW5nZS1hYm9ydC5o
dG1sIFsgUGFzcyBdCiAKICMjIyBFTkQgT0YgKDUpIEZlYXR1cmVzIHRoYXQgYXJlIG5vdCBzdXBw
b3J0ZWQgaW4gV2ViS2l0MSwgc28gc2tpcHBlZCBpbiBtYWMvVGVzdEV4cGVjdGF0aW9ucyB0aGVu
IHJlLWVuYWJsZWQgaGVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDE5MDVlNzIuLjJjOWExNDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsNSArMSwyMSBAQAogMjAxNC0wMi0wOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CiAKKyAgICAgICAgSURCOiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2luZGV4
LXByZXYtbm8tZHVwbGljYXRlLmh0bWwgZmFpbHMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2
MDE4OTE4PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODQ0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGF0
YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCQ3Vyc29yLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6Z2V0SW5kZXhTdGF0ZW1lbnQpOiBSZXR1cm4gZGlmZmVyZW50IHN0YXRlbWVu
dHMgZm9yIHVuaXF1ZSBjdXJzb3JzIHRoYXQgd2lsbAorICAgICAgICAgIHNvcnQgdGhlIHZhbHVl
cyBpbiByZXZlcnNlIG9mIHRoZSBjdXJzb3IgZGlyZWN0aW9uLCBtYXRjaGluZyBleHBlY3RlZCBJ
bmRleGVkREIgYmVoYXZpb3IuCisgICAgICAgIChXZWJLaXQ6OlNRTGl0ZUlEQkN1cnNvcjo6ZXN0
YWJsaXNoU3RhdGVtZW50KToKKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIv
c3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OnVuY2hlY2tlZFB1
dEluZGV4UmVjb3JkKTogSW5zZXJ0IHRoZSB2YWx1ZXMgYXMKKyAgICAgICAgICBzdHJpbmdzIHNp
bmNlIHdlIG5lZWQgdGhlIGNvbGxhdGlvbiBmdW5jdGlvbiB0byBiZSBjYWxsZWQgZm9yIHByb3Bl
ciBzb3J0aW5nLgorCisyMDE0LTAyLTA4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKwogICAgICAgICBJREI6IHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29ycy5odG1s
IGZhaWxzCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjAxNzk5OD4gYW5kIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg0MjMKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCQ3Vyc29y
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1NR
TGl0ZUlEQkN1cnNvci5jcHAKaW5kZXggNjMyOTE4MS4uMTcyN2QzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCQ3Vy
c29yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3Nx
bGl0ZS9TUUxpdGVJREJDdXJzb3IuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIFNRTGl0ZUlEQkN1cnNv
cjo6U1FMaXRlSURCQ3Vyc29yKFNRTGl0ZUlEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgY29u
c3QgSURCSWRlCiAgICAgQVNTRVJUKG1fb2JqZWN0U3RvcmVJRCk7CiB9CiAKLXN0YXRpYyBjb25z
dCBTdHJpbmcmIGdldEluZGV4U3RhdGVtZW50KGJvb2wgaGFzTG93ZXJLZXksIGJvb2wgaXNMb3dl
ck9wZW4sIGJvb2wgaGFzVXBwZXJLZXksIGJvb2wgaXNVcHBlck9wZW4sIGJvb2wgZGVzY2VuZGlu
ZykKK3N0YXRpYyBjb25zdCBTdHJpbmcmIGdldEluZGV4U3RhdGVtZW50KGJvb2wgaGFzTG93ZXJL
ZXksIGJvb2wgaXNMb3dlck9wZW4sIGJvb2wgaGFzVXBwZXJLZXksIGJvb2wgaXNVcHBlck9wZW4s
IGJvb2wgZGVzY2VuZGluZywgYm9vbCB1bmlxdWUpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChWZWN0b3I8U3RyaW5nPiwgaW5kZXhTdGF0ZW1lbnRzLCAoKSk7CiAKQEAgLTc1LDMxICs3NSw0
MiBAQCBzdGF0aWMgY29uc3QgU3RyaW5nJiBnZXRJbmRleFN0YXRlbWVudChib29sIGhhc0xvd2Vy
S2V5LCBib29sIGlzTG93ZXJPcGVuLCBib29sCiAgICAgICAgIGluZGV4U3RhdGVtZW50cy5yZXNl
cnZlQ2FwYWNpdHkoOCk7CiAKICAgICAgICAgLy8gTG93ZXIgbWlzc2luZy9vcGVuLCB1cHBlciBt
aXNzaW5nL29wZW4uCi0gICAgICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRlcmFs
KCJTRUxFQ1Qgcm93aWQsIGtleSwgdmFsdWUgRlJPTSBJbmRleFJlY29yZHMgV0hFUkUgaW5kZXhJ
RCA9ID8gQU5EIGtleSA+IENBU1QoPyBBUyBURVhUKSBBTkQga2V5IDwgQ0FTVCg/IEFTIFRFWFQp
IE9SREVSIEJZIGtleTsiKSk7Ci0gICAgICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlM
aXRlcmFsKCJTRUxFQ1Qgcm93aWQsIGtleSwgdmFsdWUgRlJPTSBJbmRleFJlY29yZHMgV0hFUkUg
aW5kZXhJRCA9ID8gQU5EIGtleSA+IENBU1QoPyBBUyBURVhUKSBBTkQga2V5IDwgQ0FTVCg/IEFT
IFRFWFQpIE9SREVSIEJZIGtleSBERVNDOyIpKTsKKyAgICAgICAgaW5kZXhTdGF0ZW1lbnRzLmFw
cGVuZChBU0NJSUxpdGVyYWwoIlNFTEVDVCByb3dpZCwga2V5LCB2YWx1ZSBGUk9NIEluZGV4UmVj
b3JkcyBXSEVSRSBpbmRleElEID0gPyBBTkQga2V5ID4gQ0FTVCg/IEFTIFRFWFQpIEFORCBrZXkg
PCBDQVNUKD8gQVMgVEVYVCkgT1JERVIgQlkga2V5LCB2YWx1ZTsiKSk7CisgICAgICAgIGluZGV4
U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJTRUxFQ1Qgcm93aWQsIGtleSwgdmFsdWUg
RlJPTSBJbmRleFJlY29yZHMgV0hFUkUgaW5kZXhJRCA9ID8gQU5EIGtleSA+IENBU1QoPyBBUyBU
RVhUKSBBTkQga2V5IDwgQ0FTVCg/IEFTIFRFWFQpIE9SREVSIEJZIGtleSwgdmFsdWUgREVTQzsi
KSk7CisgICAgICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJTRUxFQ1Qg
cm93aWQsIGtleSwgdmFsdWUgRlJPTSBJbmRleFJlY29yZHMgV0hFUkUgaW5kZXhJRCA9ID8gQU5E
IGtleSA+IENBU1QoPyBBUyBURVhUKSBBTkQga2V5IDwgQ0FTVCg/IEFTIFRFWFQpIE9SREVSIEJZ
IGtleSBERVNDLCB2YWx1ZSBERVNDOyIpKTsKKyAgICAgICAgaW5kZXhTdGF0ZW1lbnRzLmFwcGVu
ZChBU0NJSUxpdGVyYWwoIlNFTEVDVCByb3dpZCwga2V5LCB2YWx1ZSBGUk9NIEluZGV4UmVjb3Jk
cyBXSEVSRSBpbmRleElEID0gPyBBTkQga2V5ID4gQ0FTVCg/IEFTIFRFWFQpIEFORCBrZXkgPCBD
QVNUKD8gQVMgVEVYVCkgT1JERVIgQlkga2V5IERFU0MsIHZhbHVlOyIpKTsKIAogICAgICAgICAv
LyBMb3dlciBtaXNzaW5nL29wZW4sIHVwcGVyIGNsb3NlZC4KLSAgICAgICAgaW5kZXhTdGF0ZW1l
bnRzLmFwcGVuZChBU0NJSUxpdGVyYWwoIlNFTEVDVCByb3dpZCwga2V5LCB2YWx1ZSBGUk9NIElu
ZGV4UmVjb3JkcyBXSEVSRSBpbmRleElEID0gPyBBTkQga2V5ID4gQ0FTVCg/IEFTIFRFWFQpIEFO
RCBrZXkgPD0gQ0FTVCg/IEFTIFRFWFQpIE9SREVSIEJZIGtleTsiKSk7Ci0gICAgICAgIGluZGV4
U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJTRUxFQ1Qgcm93aWQsIGtleSwgdmFsdWUg
RlJPTSBJbmRleFJlY29yZHMgV0hFUkUgaW5kZXhJRCA9ID8gQU5EIGtleSA+IENBU1QoPyBBUyBU
RVhUKSBBTkQga2V5IDw9IENBU1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXkgREVTQzsiKSk7Cisg
ICAgICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJTRUxFQ1Qgcm93aWQs
IGtleSwgdmFsdWUgRlJPTSBJbmRleFJlY29yZHMgV0hFUkUgaW5kZXhJRCA9ID8gQU5EIGtleSA+
IENBU1QoPyBBUyBURVhUKSBBTkQga2V5IDw9IENBU1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXks
IHZhbHVlOyIpKTsKKyAgICAgICAgaW5kZXhTdGF0ZW1lbnRzLmFwcGVuZChBU0NJSUxpdGVyYWwo
IlNFTEVDVCByb3dpZCwga2V5LCB2YWx1ZSBGUk9NIEluZGV4UmVjb3JkcyBXSEVSRSBpbmRleElE
ID0gPyBBTkQga2V5ID4gQ0FTVCg/IEFTIFRFWFQpIEFORCBrZXkgPD0gQ0FTVCg/IEFTIFRFWFQp
IE9SREVSIEJZIGtleSwgdmFsdWUgREVTQzsiKSk7CisgICAgICAgIGluZGV4U3RhdGVtZW50cy5h
cHBlbmQoQVNDSUlMaXRlcmFsKCJTRUxFQ1Qgcm93aWQsIGtleSwgdmFsdWUgRlJPTSBJbmRleFJl
Y29yZHMgV0hFUkUgaW5kZXhJRCA9ID8gQU5EIGtleSA+IENBU1QoPyBBUyBURVhUKSBBTkQga2V5
IDw9IENBU1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXkgREVTQywgdmFsdWUgREVTQzsiKSk7Cisg
ICAgICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJTRUxFQ1Qgcm93aWQs
IGtleSwgdmFsdWUgRlJPTSBJbmRleFJlY29yZHMgV0hFUkUgaW5kZXhJRCA9ID8gQU5EIGtleSA+
IENBU1QoPyBBUyBURVhUKSBBTkQga2V5IDw9IENBU1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXkg
REVTQywgdmFsdWU7IikpOwogCiAgICAgICAgIC8vIExvd2VyIGNsb3NlZCwgdXBwZXIgbWlzc2lu
Zy9vcGVuLgotICAgICAgICBpbmRleFN0YXRlbWVudHMuYXBwZW5kKEFTQ0lJTGl0ZXJhbCgiU0VM
RUNUIHJvd2lkLCBrZXksIHZhbHVlIEZST00gSW5kZXhSZWNvcmRzIFdIRVJFIGluZGV4SUQgPSA/
IEFORCBrZXkgPj0gQ0FTVCg/IEFTIFRFWFQpIEFORCBrZXkgPCBDQVNUKD8gQVMgVEVYVCkgT1JE
RVIgQlkga2V5OyIpKTsKLSAgICAgICAgaW5kZXhTdGF0ZW1lbnRzLmFwcGVuZChBU0NJSUxpdGVy
YWwoIlNFTEVDVCByb3dpZCwga2V5LCB2YWx1ZSBGUk9NIEluZGV4UmVjb3JkcyBXSEVSRSBpbmRl
eElEID0gPyBBTkQga2V5ID49IENBU1QoPyBBUyBURVhUKSBBTkQga2V5IDwgQ0FTVCg/IEFTIFRF
WFQpIE9SREVSIEJZIGtleSBERVNDOyIpKTsKKyAgICAgICAgaW5kZXhTdGF0ZW1lbnRzLmFwcGVu
ZChBU0NJSUxpdGVyYWwoIlNFTEVDVCByb3dpZCwga2V5LCB2YWx1ZSBGUk9NIEluZGV4UmVjb3Jk
cyBXSEVSRSBpbmRleElEID0gPyBBTkQga2V5ID49IENBU1QoPyBBUyBURVhUKSBBTkQga2V5IDwg
Q0FTVCg/IEFTIFRFWFQpIE9SREVSIEJZIGtleSwgdmFsdWU7IikpOworICAgICAgICBpbmRleFN0
YXRlbWVudHMuYXBwZW5kKEFTQ0lJTGl0ZXJhbCgiU0VMRUNUIHJvd2lkLCBrZXksIHZhbHVlIEZS
T00gSW5kZXhSZWNvcmRzIFdIRVJFIGluZGV4SUQgPSA/IEFORCBrZXkgPj0gQ0FTVCg/IEFTIFRF
WFQpIEFORCBrZXkgPCBDQVNUKD8gQVMgVEVYVCkgT1JERVIgQlkga2V5LCB2YWx1ZSBERVNDOyIp
KTsKKyAgICAgICAgaW5kZXhTdGF0ZW1lbnRzLmFwcGVuZChBU0NJSUxpdGVyYWwoIlNFTEVDVCBy
b3dpZCwga2V5LCB2YWx1ZSBGUk9NIEluZGV4UmVjb3JkcyBXSEVSRSBpbmRleElEID0gPyBBTkQg
a2V5ID49IENBU1QoPyBBUyBURVhUKSBBTkQga2V5IDwgQ0FTVCg/IEFTIFRFWFQpIE9SREVSIEJZ
IGtleSBERVNDLCB2YWx1ZSBERVNDOyIpKTsKKyAgICAgICAgaW5kZXhTdGF0ZW1lbnRzLmFwcGVu
ZChBU0NJSUxpdGVyYWwoIlNFTEVDVCByb3dpZCwga2V5LCB2YWx1ZSBGUk9NIEluZGV4UmVjb3Jk
cyBXSEVSRSBpbmRleElEID0gPyBBTkQga2V5ID49IENBU1QoPyBBUyBURVhUKSBBTkQga2V5IDwg
Q0FTVCg/IEFTIFRFWFQpIE9SREVSIEJZIGtleSBERVNDLCB2YWx1ZTsiKSk7CiAKICAgICAgICAg
Ly8gTG93ZXIgY2xvc2VkLCB1cHBlciBjbG9zZWQuCi0gICAgICAgIGluZGV4U3RhdGVtZW50cy5h
cHBlbmQoQVNDSUlMaXRlcmFsKCJTRUxFQ1Qgcm93aWQsIGtleSwgdmFsdWUgRlJPTSBJbmRleFJl
Y29yZHMgV0hFUkUgaW5kZXhJRCA9ID8gQU5EIGtleSA+PSBDQVNUKD8gQVMgVEVYVCkgQU5EIGtl
eSA8PSBDQVNUKD8gQVMgVEVYVCkgT1JERVIgQlkga2V5OyIpKTsKLSAgICAgICAgaW5kZXhTdGF0
ZW1lbnRzLmFwcGVuZChBU0NJSUxpdGVyYWwoIlNFTEVDVCByb3dpZCwga2V5LCB2YWx1ZSBGUk9N
IEluZGV4UmVjb3JkcyBXSEVSRSBpbmRleElEID0gPyBBTkQga2V5ID49IENBU1QoPyBBUyBURVhU
KSBBTkQga2V5IDw9IENBU1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXkgREVTQzsiKSk7CisgICAg
ICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJTRUxFQ1Qgcm93aWQsIGtl
eSwgdmFsdWUgRlJPTSBJbmRleFJlY29yZHMgV0hFUkUgaW5kZXhJRCA9ID8gQU5EIGtleSA+PSBD
QVNUKD8gQVMgVEVYVCkgQU5EIGtleSA8PSBDQVNUKD8gQVMgVEVYVCkgT1JERVIgQlkga2V5LCB2
YWx1ZTsiKSk7CisgICAgICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJT
RUxFQ1Qgcm93aWQsIGtleSwgdmFsdWUgRlJPTSBJbmRleFJlY29yZHMgV0hFUkUgaW5kZXhJRCA9
ID8gQU5EIGtleSA+PSBDQVNUKD8gQVMgVEVYVCkgQU5EIGtleSA8PSBDQVNUKD8gQVMgVEVYVCkg
T1JERVIgQlkga2V5LCB2YWx1ZSBERVNDOyIpKTsKKyAgICAgICAgaW5kZXhTdGF0ZW1lbnRzLmFw
cGVuZChBU0NJSUxpdGVyYWwoIlNFTEVDVCByb3dpZCwga2V5LCB2YWx1ZSBGUk9NIEluZGV4UmVj
b3JkcyBXSEVSRSBpbmRleElEID0gPyBBTkQga2V5ID49IENBU1QoPyBBUyBURVhUKSBBTkQga2V5
IDw9IENBU1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXkgREVTQywgdmFsdWUgREVTQzsiKSk7Cisg
ICAgICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJTRUxFQ1Qgcm93aWQs
IGtleSwgdmFsdWUgRlJPTSBJbmRleFJlY29yZHMgV0hFUkUgaW5kZXhJRCA9ID8gQU5EIGtleSA+
PSBDQVNUKD8gQVMgVEVYVCkgQU5EIGtleSA8PSBDQVNUKD8gQVMgVEVYVCkgT1JERVIgQlkga2V5
IERFU0MsIHZhbHVlOyIpKTsKICAgICB9CiAKICAgICBzaXplX3QgaSA9IDA7CiAKICAgICBpZiAo
aGFzTG93ZXJLZXkgJiYgIWlzTG93ZXJPcGVuKQotICAgICAgICBpICs9IDQ7CisgICAgICAgIGkg
Kz0gODsKIAogICAgIGlmIChoYXNVcHBlcktleSAmJiAhaXNVcHBlck9wZW4pCi0gICAgICAgIGkg
Kz0gMjsKKyAgICAgICAgaSArPSA0OwogCiAgICAgaWYgKGRlc2NlbmRpbmcpCisgICAgICAgIGkg
Kz0gMjsKKworICAgIGlmICh1bmlxdWUpCiAgICAgICAgIGkgKz0gMTsKIAogICAgIHJldHVybiBp
bmRleFN0YXRlbWVudHNbaV07CkBAIC0xNDksNyArMTYwLDcgQEAgYm9vbCBTUUxpdGVJREJDdXJz
b3I6OmVzdGFibGlzaFN0YXRlbWVudCgpCiAgICAgU3RyaW5nIHNxbDsKIAogICAgIGlmIChtX2lu
ZGV4SUQgIT0gSURCSW5kZXhNZXRhZGF0YTo6SW52YWxpZElkKSB7Ci0gICAgICAgIHNxbCA9IGdl
dEluZGV4U3RhdGVtZW50KCFtX2tleVJhbmdlLmxvd2VyS2V5LmlzTnVsbCwgbV9rZXlSYW5nZS5s
b3dlck9wZW4sICFtX2tleVJhbmdlLnVwcGVyS2V5LmlzTnVsbCwgbV9rZXlSYW5nZS51cHBlck9w
ZW4sIG1fY3Vyc29yRGlyZWN0aW9uID09IEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uOjpQcmV2
IHx8IG1fY3Vyc29yRGlyZWN0aW9uID09IEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uOjpQcmV2
Tm9EdXBsaWNhdGUpOworICAgICAgICBzcWwgPSBnZXRJbmRleFN0YXRlbWVudCghbV9rZXlSYW5n
ZS5sb3dlcktleS5pc051bGwsIG1fa2V5UmFuZ2UubG93ZXJPcGVuLCAhbV9rZXlSYW5nZS51cHBl
cktleS5pc051bGwsIG1fa2V5UmFuZ2UudXBwZXJPcGVuLCBtX2N1cnNvckRpcmVjdGlvbiA9PSBJ
bmRleGVkREI6OkN1cnNvckRpcmVjdGlvbjo6UHJldiB8fCBtX2N1cnNvckRpcmVjdGlvbiA9PSBJ
bmRleGVkREI6OkN1cnNvckRpcmVjdGlvbjo6UHJldk5vRHVwbGljYXRlLCBtX2N1cnNvckRpcmVj
dGlvbiA9PSBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbjo6TmV4dE5vRHVwbGljYXRlIHx8IG1f
Y3Vyc29yRGlyZWN0aW9uID09IEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uOjpQcmV2Tm9EdXBs
aWNhdGUpOwogICAgICAgICBtX2JvdW5kSUQgPSBtX2luZGV4SUQ7CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgc3FsID0gZ2V0T2JqZWN0U3RvcmVTdGF0ZW1lbnQoIW1fa2V5UmFuZ2UubG93ZXJLZXku
aXNOdWxsLCBtX2tleVJhbmdlLmxvd2VyT3BlbiwgIW1fa2V5UmFuZ2UudXBwZXJLZXkuaXNOdWxs
LCBtX2tleVJhbmdlLnVwcGVyT3BlbiwgbV9jdXJzb3JEaXJlY3Rpb24gPT0gSW5kZXhlZERCOjpD
dXJzb3JEaXJlY3Rpb246OlByZXYgfHwgbV9jdXJzb3JEaXJlY3Rpb24gPT0gSW5kZXhlZERCOjpD
dXJzb3JEaXJlY3Rpb246OlByZXZOb0R1cGxpY2F0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJh
Y2tpbmdTdG9yZVNRTGl0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5k
ZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5jcHAKaW5k
ZXggMWQxNjRlOC4uMGZkY2MyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxp
dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3Fs
aXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcApAQCAtODg4LDcgKzg4
OCw3IEBAIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OnVuY2hlY2tl
ZFB1dEluZGV4UmVjb3JkKGludDY0X3Qgb2JqZWN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAgICAgewotICAgICAgICBTUUxpdGVTdGF0ZW1lbnQgc3FsKCptX3NxbGl0ZURCLCBBU0NJ
SUxpdGVyYWwoIklOU0VSVCBJTlRPIEluZGV4UmVjb3JkcyBWQUxVRVMgKD8sID8sIENBU1QoPyBB
UyBURVhUKSwgPyk7IikpOworICAgICAgICBTUUxpdGVTdGF0ZW1lbnQgc3FsKCptX3NxbGl0ZURC
LCBBU0NJSUxpdGVyYWwoIklOU0VSVCBJTlRPIEluZGV4UmVjb3JkcyBWQUxVRVMgKD8sID8sIENB
U1QoPyBBUyBURVhUKSwgQ0FTVCg/IEFTIFRFWFQpKTsiKSk7CiAgICAgICAgIGlmIChzcWwucHJl
cGFyZSgpICE9IFNRTFJlc3VsdE9rCiAgICAgICAgICAgICB8fCBzcWwuYmluZEludDY0KDEsIGlu
ZGV4SUQpICE9IFNRTFJlc3VsdE9rCiAgICAgICAgICAgICB8fCBzcWwuYmluZEludDY0KDIsIG9i
amVjdFN0b3JlSUQpICE9IFNRTFJlc3VsdE9rCg==
</data>
<flag name="review"
          id="247644"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>