<?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>92883</bug_id>
          
          <creation_ts>2012-08-01 10:34:39 -0700</creation_ts>
          <short_desc>IndexedDB: Make leveldb store integer versions and migrate old schemas</short_desc>
          <delta_ts>2012-08-06 23:55:15 -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>
          <dependson>92558</dependson>
          <blocked>92897</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Grogan">dgrogan</reporter>
          <assigned_to name="David Grogan">dgrogan</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>jsbell</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>684288</commentid>
    <comment_count>0</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-01 10:34:39 -0700</bug_when>
    <thetext>IndexedDB: Make leveldb store integer versions and migrate old schemas</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684313</commentid>
    <comment_count>1</comment_count>
      <attachid>155842</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-01 10:53:45 -0700</bug_when>
    <thetext>Created attachment 155842
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684316</commentid>
    <comment_count>2</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-01 10:55:05 -0700</bug_when>
    <thetext>Josh, Alec, could you look at this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684380</commentid>
    <comment_count>3</comment_count>
      <attachid>155842</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-01 11:38:28 -0700</bug_when>
    <thetext>Comment on attachment 155842
Patch

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

LGTM

&gt; Source/WebCore/ChangeLog:25
&gt; +        could let script call open(&quot;db&quot;, 0), get an upgradeneeded event,

If version is 0 we should throw TypeError, so that should be prevented.

&gt; Source/WebCore/Modules/indexeddb/IDBMetadata.h:46
&gt; +        NoIntVersion = -1,

Given that you can&apos;t call open(name, 0) I wonder if we could collapse these so NoIntVersion = 0 and skip the conversion in the metadata functions. I haven&apos;t looked at the other patches though to see if that&apos;s actually possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684389</commentid>
    <comment_count>4</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-01 11:42:28 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 155842 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=155842&amp;action=review
&gt; 
&gt; LGTM
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:25
&gt; &gt; +        could let script call open(&quot;db&quot;, 0), get an upgradeneeded event,
&gt; 
&gt; If version is 0 we should throw TypeError, so that should be prevented.

Oh nice, I wish I&apos;d noticed that earlier.

&gt; &gt; Source/WebCore/Modules/indexeddb/IDBMetadata.h:46
&gt; &gt; +        NoIntVersion = -1,
&gt; 
&gt; Given that you can&apos;t call open(name, 0) I wonder if we could collapse these so NoIntVersion = 0 and skip the conversion in the metadata functions. I haven&apos;t looked at the other patches though to see if that&apos;s actually possible.

I believe that that&apos;s possible, yes.  I&apos;ve suspected such but passing 0 to open was the only thing that made me uneasy. But if that&apos;s not allowed, I think they are collapsible.  I&apos;m adding a FIXME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684399</commentid>
    <comment_count>5</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-01 11:46:46 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Given that you can&apos;t call open(name, 0) I wonder if we could collapse these so NoIntVersion = 0 and skip the conversion in the metadata functions. I haven&apos;t looked at the other patches though to see if that&apos;s actually possible.

The other place 0 shows up in the spec is on an aborted versionchange transaction for a brand new database. My gut tells me that&apos;ll work out, but I haven&apos;t gone through the migration rules. Agreed, FIXME for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684499</commentid>
    <comment_count>6</comment_count>
      <attachid>155866</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-01 13:07:31 -0700</bug_when>
    <thetext>Created attachment 155866
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684700</commentid>
    <comment_count>7</comment_count>
      <attachid>155912</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-01 15:59:28 -0700</bug_when>
    <thetext>Created attachment 155912
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685989</commentid>
    <comment_count>8</comment_count>
      <attachid>156205</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-02 16:51:53 -0700</bug_when>
    <thetext>Created attachment 156205
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686063</commentid>
    <comment_count>9</comment_count>
      <attachid>156223</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-02 18:04:30 -0700</bug_when>
    <thetext>Created attachment 156223
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686068</commentid>
    <comment_count>10</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-02 18:11:33 -0700</bug_when>
    <thetext>abarth@, could you review this?

It&apos;s only been updated to ToT since jsbell@ LGTM&apos;d it, no real changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686079</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-02 18:15:52 -0700</bug_when>
    <thetext>&gt; It&apos;s only been updated to ToT since jsbell@ LGTM&apos;d it, no real changes.

If that&apos;s the case, you can land it with jsbell&apos;s review.  You can fill out the &quot;Reviewed by&quot; line with his name (exactly as it appears in other ChangeLog entries).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686084</commentid>
    <comment_count>12</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-02 18:21:35 -0700</bug_when>
    <thetext>I can do that even though he&apos;s not a reviewer?  (Did he become a reviewer in the past 24 hours or something?)

(In reply to comment #11)
&gt; &gt; It&apos;s only been updated to ToT since jsbell@ LGTM&apos;d it, no real changes.
&gt; 
&gt; If that&apos;s the case, you can land it with jsbell&apos;s review.  You can fill out the &quot;Reviewed by&quot; line with his name (exactly as it appears in other ChangeLog entries).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686087</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-02 18:26:45 -0700</bug_when>
    <thetext>jsbell is not a reviewer!  What has the world come to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686090</commentid>
    <comment_count>14</comment_count>
      <attachid>156223</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-02 18:28:58 -0700</bug_when>
    <thetext>Comment on attachment 156223
Patch

Hum...  I don&apos;t really understand this patch, and it looks like some delicate migration code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686092</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-02 18:30:25 -0700</bug_when>
    <thetext>It looks like Tony and Ojan have been reviewing these sorts of patches recently.  Maybe they have better context than I do?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687761</commentid>
    <comment_count>16</comment_count>
      <attachid>156223</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-08-05 22:18:22 -0700</bug_when>
    <thetext>Comment on attachment 156223
Patch

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

(In reply to comment #15)
&gt; It looks like Tony and Ojan have been reviewing these sorts of patches recently.  Maybe they have better context than I do?

Barely, but I trust jsbell.

&gt; Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp:173
&gt; +            ASSERT(ok);
&gt; +            if (!ok)
&gt; +                return false;

Nit: It think it&apos;s more common to put ASSERT_NOT_REACHED() before &quot;return false;&quot;

&gt; Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp:327
&gt; +    ASSERT_WITH_MESSAGE(intVersion &gt;= 0, &quot;intVersion was %&quot;PRId64, intVersion);

Does PRId64 work with VS2008?  Does it work with the gcc arm compilers?  You might want to just static_cast to an int.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687764</commentid>
    <comment_count>17</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-08-05 22:21:17 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; &gt; Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp:327
&gt; &gt; +    ASSERT_WITH_MESSAGE(intVersion &gt;= 0, &quot;intVersion was %&quot;PRId64, intVersion);
&gt; 
&gt; Does PRId64 work with VS2008?  Does it work with the gcc arm compilers?  You might want to just static_cast to an int.

I see on bug 92558 that PRId64 doesn&apos;t work on VS2008, but it sounds like you decided to cast to long long.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688597</commentid>
    <comment_count>18</comment_count>
      <attachid>156223</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-06 17:21:27 -0700</bug_when>
    <thetext>Comment on attachment 156223
Patch

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

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp:173
&gt;&gt; +                return false;
&gt; 
&gt; Nit: It think it&apos;s more common to put ASSERT_NOT_REACHED() before &quot;return false;&quot;

Fixed throughout.

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp:327
&gt;&gt; +    ASSERT_WITH_MESSAGE(intVersion &gt;= 0, &quot;intVersion was %&quot;PRId64, intVersion);
&gt; 
&gt; Does PRId64 work with VS2008?  Does it work with the gcc arm compilers?  You might want to just static_cast to an int.

Thanks for noticing this, I&apos;d have been embarrassed if I broke the tree twice with PRId64.  Casted to long long.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688816</commentid>
    <comment_count>19</comment_count>
      <attachid>156864</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-06 22:20:14 -0700</bug_when>
    <thetext>Created attachment 156864
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688888</commentid>
    <comment_count>20</comment_count>
      <attachid>156864</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-06 23:55:10 -0700</bug_when>
    <thetext>Comment on attachment 156864
Patch for landing

Clearing flags on attachment: 156864

Committed r124858: &lt;http://trac.webkit.org/changeset/124858&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688889</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-06 23:55:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155842</attachid>
            <date>2012-08-01 10:53:45 -0700</date>
            <delta_ts>2012-08-01 13:07:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92883-20120801105326.patch</filename>
            <type>text/plain</type>
            <size>7901</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDUwNmJhNjM4OGJkNzg0
NWE3NTE4ZDk3YWRjNmUxZTcxOGVhYWI4YS4uZTdkM2VmYmRjYTUzNjNhNjI4YzdiYWZiMjgwNmRm
YWM0NzM3OGM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA4LTAxICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IE1h
a2UgbGV2ZWxkYiBzdG9yZSBpbnRlZ2VyIHZlcnNpb25zIGFuZCBtaWdyYXRlIG9sZCBzY2hlbWFz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjg4Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE91ciBmaXJz
dCBzY2hlbWEgY2hhbmdlLiBJZiBhbiBleGlzdGluZyBEQiBkb2Vzbid0IGhhdmUgaW50ZWdlcgor
ICAgICAgICB2ZXJzaW9ucywgdGhpcyB3aWxsIGFkZCBvbmUgdG8gYWxsIG9iamVjdCBzdG9yZXMg
aW4gdGhlIG9yaWdpbi4KKworICAgICAgICBObyBuZXcgdGVzdHMgLSBjaHJvbWUgdGVzdCBmb3Ig
dGhlIG1pZ3JhdGlvbiBmb3J0aGNvbWluZy4gV2lsbCBpbnZvbHZlCisgICAgICAgIHN0YXJ0aW5n
IHdpdGggYSBsZXZlbGRiIGRpcmVjdG9yeSBmcm9tIGFuIG9sZCBidWlsZCBvZiBjaHJvbWUsIG9w
ZW5pbmcKKyAgICAgICAgaXQgdXAgd2l0aCB0aGUgbWlncmF0aW9uIGNvZGUgaW4gcGxhY2UsIGFu
ZCBjaGVja2luZyB0aGUgbmV3IGRhdGFiYXNlLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwdXRWYXJJ
bnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRVcE1ldGFkYXRh
KToKKyAgICAgICAgVXNlcyB0aGUgQVNTRVJULWJ1dC1zdGlsbC1oYW5kbGUtY29ycnVwdGlvbiBw
YXR0ZXJuIHJlY2VudGx5IGRpc2N1c3NlZAorICAgICAgICBpbiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI3MjUjYzEzLgorCisgICAgICAgIChXZWJDb3JlOjpJREJM
ZXZlbERCQmFja2luZ1N0b3JlOjpvcGVuKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkxldmVsREJC
YWNraW5nU3RvcmU6OmdldElEQkRhdGFiYXNlTWV0YURhdGEpOgorICAgICAgICBCZWNhdXNlIHdl
IGNhbid0IHN0b3JlIG5lZ2F0aXZlIG51bWJlcnMsIHN0b3JlIDAgaW5zdGVhZCBvZiAtMS4gVGhp
cworICAgICAgICBjb3VsZCBsZXQgc2NyaXB0IGNhbGwgb3BlbigiZGIiLCAwKSwgZ2V0IGFuIHVw
Z3JhZGVuZWVkZWQgZXZlbnQsCisgICAgICAgIGNsb3NlIHRoZSBkYiwgcmVvcGVuIGFuZCB1c2Ug
c2V0VmVyc2lvbiBzdWNjZXNzZnVsbHkuICBXaGlsZQorICAgICAgICB0ZWNobmljYWxseSBhZ2Fp
bnN0IG91ciBtaWdyYXRpb24gcnVsZXMsIGl0J3MgZmluZS4KKworICAgICAgICAoV2ViQ29yZTo6
SURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlSURCRGF0YWJhc2VNZXRhRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJMZXZlbERCQmFja2luZ1N0b3JlOjp1cGRhdGVJREJEYXRhYmFzZUlu
dFZlcnNpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2Rpbmcu
aDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJNZXRhZGF0YS5oOgorCiAyMDEyLTA3
LTMxICBLd2FuZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgUmVh
ZCB0YWcgbmFtZXMgYW5kIGF0dHJpYnV0ZXMgZnJvbSB0aGUgc2F2ZWQgdG9rZW5zIGluIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4qKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0
b3JlLmNwcAppbmRleCBlODk4NzAyNmY3OTA2ZjNhM2E5ZjkyNDE3NDdlNTQyYjJiODlmMjFmLi41
M2JkYWM3YzNhMmFjMjVhMmY0ODNmMzdmYjFiOTc4Zjc0ZDZmMjI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0
b3JlLmNwcApAQCAtODcsNiArODcsMTIgQEAgc3RhdGljIGJvb2wgcHV0SW50KERCT3JUcmFuc2Fj
dGlvbiogZGIsIGNvbnN0IFZlY3RvcjxjaGFyPiYga2V5LCBpbnQ2NF90IHZhbHVlKQogfQogCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgREJPclRyYW5zYWN0aW9uPgorc3RhdGljIGJvb2wgcHV0VmFySW50
KERCT3JUcmFuc2FjdGlvbiogZGIsIGNvbnN0IFZlY3RvcjxjaGFyPiYga2V5LCBpbnQ2NF90IHZh
bHVlKQoreworICAgIHJldHVybiBkYi0+cHV0KGtleSwgZW5jb2RlVmFySW50KHZhbHVlKSk7Cit9
CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBEQk9yVHJhbnNhY3Rpb24+CiBzdGF0aWMgYm9vbCBnZXRT
dHJpbmcoREJPclRyYW5zYWN0aW9uKiBkYiwgY29uc3QgVmVjdG9yPGNoYXI+JiBrZXksIFN0cmlu
ZyYgZm91bmRTdHJpbmcpCiB7CiAgICAgVmVjdG9yPGNoYXI+IHJlc3VsdDsKQEAgLTEyOSw3ICsx
MzUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiBuYW1lKCkgY29uc3QgeyBy
ZXR1cm4gImlkYl9jbXAxIjsgfQogfTsKIAotc3RhdGljIGJvb2wgc2V0VXBNZXRhZGF0YShMZXZl
bERCRGF0YWJhc2UqIGRiKQorc3RhdGljIGJvb2wgc2V0VXBNZXRhZGF0YShMZXZlbERCRGF0YWJh
c2UqIGRiLCBjb25zdCBTdHJpbmcmIG9yaWdpbikKIHsKICAgICBjb25zdCBWZWN0b3I8Y2hhcj4g
bWV0YURhdGFLZXkgPSBTY2hlbWFWZXJzaW9uS2V5OjplbmNvZGUoKTsKIApAQCAtMTM4LDEyICsx
NDQsMzcgQEAgc3RhdGljIGJvb2wgc2V0VXBNZXRhZGF0YShMZXZlbERCRGF0YWJhc2UqIGRiKQog
ICAgICAgICBzY2hlbWFWZXJzaW9uID0gMDsKICAgICAgICAgaWYgKCFwdXRJbnQoZGIsIG1ldGFE
YXRhS2V5LCBzY2hlbWFWZXJzaW9uKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
IGVsc2UgeworICAgICAgICBpZiAoIXNjaGVtYVZlcnNpb24pIHsKKyAgICAgICAgICAgIHNjaGVt
YVZlcnNpb24gPSAxOworICAgICAgICAgICAgUmVmUHRyPExldmVsREJUcmFuc2FjdGlvbj4gdHJh
bnNhY3Rpb24gPSBMZXZlbERCVHJhbnNhY3Rpb246OmNyZWF0ZShkYik7CisgICAgICAgICAgICB0
cmFuc2FjdGlvbi0+cHV0KG1ldGFEYXRhS2V5LCBlbmNvZGVJbnQoc2NoZW1hVmVyc2lvbikpOwor
CisgICAgICAgICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gc3RhcnRLZXkgPSBEYXRhYmFzZU5hbWVL
ZXk6OmVuY29kZU1pbktleUZvck9yaWdpbihvcmlnaW4pOworICAgICAgICAgICAgY29uc3QgVmVj
dG9yPGNoYXI+IHN0b3BLZXkgPSBEYXRhYmFzZU5hbWVLZXk6OmVuY29kZVN0b3BLZXlGb3JPcmln
aW4ob3JpZ2luKTsKKyAgICAgICAgICAgIE93blB0cjxMZXZlbERCSXRlcmF0b3I+IGl0ID0gZGIt
PmNyZWF0ZUl0ZXJhdG9yKCk7CisgICAgICAgICAgICBmb3IgKGl0LT5zZWVrKHN0YXJ0S2V5KTsg
aXQtPmlzVmFsaWQoKSAmJiBjb21wYXJlS2V5cyhpdC0+a2V5KCksIHN0b3BLZXkpIDwgMDsgaXQt
Pm5leHQoKSkgeworICAgICAgICAgICAgICAgIFZlY3RvcjxjaGFyPiB2YWx1ZTsKKyAgICAgICAg
ICAgICAgICBib29sIG9rID0gdHJhbnNhY3Rpb24tPmdldChpdC0+a2V5KCksIHZhbHVlKTsKKyAg
ICAgICAgICAgICAgICBBU1NFUlQob2spOworICAgICAgICAgICAgICAgIGlmICghb2spCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBpbnQgZGF0YWJh
c2VJZCA9IGRlY29kZUludCh2YWx1ZS5iZWdpbigpLCB2YWx1ZS5lbmQoKSk7CisgICAgICAgICAg
ICAgICAgVmVjdG9yPGNoYXI+IGludFZlcnNpb25LZXkgPSBEYXRhYmFzZU1ldGFEYXRhS2V5Ojpl
bmNvZGUoZGF0YWJhc2VJZCwgRGF0YWJhc2VNZXRhRGF0YUtleTo6VXNlckludFZlcnNpb24pOwor
ICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5wdXQoaW50VmVyc2lvbktleSwgZW5jb2RlVmFy
SW50KElEQkRhdGFiYXNlTWV0YWRhdGE6OkRlZmF1bHRJbnRWZXJzaW9uKSk7CisgICAgICAgICAg
ICAgICAgb2sgPSB0cmFuc2FjdGlvbi0+Z2V0KGl0LT5rZXkoKSwgdmFsdWUpOworICAgICAgICAg
ICAgICAgIEFTU0VSVChvayk7CisgICAgICAgICAgICAgICAgaWYgKCFvaykKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYm9vbCBv
ayA9IHRyYW5zYWN0aW9uLT5jb21taXQoKTsKKyAgICAgICAgICAgIEFTU0VSVChvayk7CisgICAg
ICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
fQorICAgICAgICBBU1NFUlQoc2NoZW1hVmVyc2lvbiA9PSAxKTsKICAgICB9CiAKLSAgICAvLyBG
SVhNRTogRXZlbnR1YWxseSwgd2UnbGwgbmVlZCB0byBiZSBhYmxlIHRvIHRyYW5zaXRpb24gYmV0
d2VlbiBzY2hlbWFzLgotICAgIGlmIChzY2hlbWFWZXJzaW9uKQotICAgICAgICByZXR1cm4gZmFs
c2U7IC8vIERvbid0IGtub3cgd2hhdCB0byBkbyB3aXRoIHRoaXMgdmVyc2lvbi4KLQogICAgIHJl
dHVybiB0cnVlOwogfQogCkBAIC0yMDgsNyArMjM5LDcgQEAgUGFzc1JlZlB0cjxJREJCYWNraW5n
U3RvcmU+IElEQkxldmVsREJCYWNraW5nU3RvcmU6Om9wZW4oU2VjdXJpdHlPcmlnaW4qIHNlY3Vy
aXQKICAgICBSZWZQdHI8SURCTGV2ZWxEQkJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlKGFkb3B0
UmVmKG5ldyBJREJMZXZlbERCQmFja2luZ1N0b3JlKGZpbGVJZGVudGlmaWVyLCBmYWN0b3J5LCBk
Yi5yZWxlYXNlKCkpKSk7CiAgICAgYmFja2luZ1N0b3JlLT5tX2NvbXBhcmF0b3IgPSBjb21wYXJh
dG9yLnJlbGVhc2UoKTsKIAotICAgIGlmICghc2V0VXBNZXRhZGF0YShiYWNraW5nU3RvcmUtPm1f
ZGIuZ2V0KCkpKQorICAgIGlmICghc2V0VXBNZXRhZGF0YShiYWNraW5nU3RvcmUtPm1fZGIuZ2V0
KCksIGZpbGVJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8SURCQmFja2lu
Z1N0b3JlPigpOwogCiAgICAgcmV0dXJuIGJhY2tpbmdTdG9yZS5yZWxlYXNlKCk7CkBAIC0yNDYs
NiArMjc3LDEyIEBAIGJvb2wgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6Z2V0SURCRGF0YWJhc2VN
ZXRhRGF0YShjb25zdCBTdHJpbmcmIG5hbWUsIFN0cmluZyYKICAgICBpZiAoIW9rKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKKyAgICBvayA9IGdldEludChtX2RiLmdldCgpLCBEYXRhYmFzZU1l
dGFEYXRhS2V5OjplbmNvZGUoZm91bmRJZCwgRGF0YWJhc2VNZXRhRGF0YUtleTo6VXNlckludFZl
cnNpb24pLCBmb3VuZEludFZlcnNpb24pOworICAgIGlmICghb2spCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBpZiAoZm91bmRJbnRWZXJzaW9uID09IElEQkRhdGFiYXNlTWV0YWRhdGE6OkRl
ZmF1bHRJbnRWZXJzaW9uKQorICAgICAgICBmb3VuZEludFZlcnNpb24gPSBJREJEYXRhYmFzZU1l
dGFkYXRhOjpOb0ludFZlcnNpb247CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjc1LDEy
ICszMTIsMjAgQEAgYm9vbCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjpjcmVhdGVJREJEYXRhYmFz
ZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIGlmICghcHV0U3RyaW5nKG1fZGIuZ2V0KCksIERhdGFiYXNlTWV0YURhdGFLZXk6OmVu
Y29kZShyb3dJZCwgRGF0YWJhc2VNZXRhRGF0YUtleTo6VXNlclZlcnNpb24pLCB2ZXJzaW9uKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChpbnRWZXJzaW9uID09IElEQkRhdGFiYXNl
TWV0YWRhdGE6Ok5vSW50VmVyc2lvbikKKyAgICAgICAgaW50VmVyc2lvbiA9IElEQkRhdGFiYXNl
TWV0YWRhdGE6OkRlZmF1bHRJbnRWZXJzaW9uOworICAgIGlmICghcHV0VmFySW50KG1fZGIuZ2V0
KCksIERhdGFiYXNlTWV0YURhdGFLZXk6OmVuY29kZShyb3dJZCwgRGF0YWJhc2VNZXRhRGF0YUtl
eTo6VXNlckludFZlcnNpb24pLCBpbnRWZXJzaW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIElEQkxldmVsREJCYWNraW5nU3RvcmU6OnVwZGF0
ZUlEQkRhdGFiYXNlSW50VmVyc2lvbihpbnQ2NF90IHJvd0lkLCBpbnQ2NF90IGludFZlcnNpb24p
CiB7Ci0gICAgLy8gRklYTUU6IE1ha2UgdGhpcyBhY3R1YWxseSBkbyBzb21ldGhpbmcuIChmaXJz
dCBjdXQgaXMgaW4gaHR0cDovL3drYi51Zy84OTUwNSkKKyAgICBBU1NFUlQobV9jdXJyZW50VHJh
bnNhY3Rpb24pOworICAgIEFTU0VSVChpbnRWZXJzaW9uID4gMCk7CisgICAgaWYgKCFwdXRWYXJJ
bnQobV9jdXJyZW50VHJhbnNhY3Rpb24uZ2V0KCksIERhdGFiYXNlTWV0YURhdGFLZXk6OmVuY29k
ZShyb3dJZCwgRGF0YWJhc2VNZXRhRGF0YUtleTo6VXNlckludFZlcnNpb24pLCBpbnRWZXJzaW9u
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2Rpbmcu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuaApp
bmRleCAzMTEzZTdkOGE5ODgyYmQ3ZDhlNzc5Y2FkYWE5N2VkODIxYzVhOGU4Li4zZmNkYzQ2ZDM3
MjM3ZGRiYzMxMDZjZDEwMWQxMzVlNDY3MjE4YjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQ29kaW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5oCkBAIC0xNDAsNyArMTQwLDgg
QEAgcHVibGljOgogICAgICAgICBPcmlnaW5OYW1lID0gMCwKICAgICAgICAgRGF0YWJhc2VOYW1l
ID0gMSwKICAgICAgICAgVXNlclZlcnNpb24gPSAyLAotICAgICAgICBNYXhPYmplY3RTdG9yZUlk
ID0gMworICAgICAgICBNYXhPYmplY3RTdG9yZUlkID0gMywKKyAgICAgICAgVXNlckludFZlcnNp
b24gPSA0CiAgICAgfTsKIAogICAgIHN0YXRpYyBWZWN0b3I8Y2hhcj4gZW5jb2RlKGludDY0X3Qg
ZGF0YWJhc2VJZCwgTWV0YURhdGFUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQk1ldGFkYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJNZXRhZGF0YS5oCmluZGV4IGRkMjMwNjIwYzdjMWZiMDExYjNmOTk0MTBiYzgy
ZTdlNmE4ZjUzYmUuLmUzZjBlYzNmYjExOGI1OWFkNzE1NTU2NGQ4YjFlNDUxNzMzODY1ZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk1ldGFkYXRhLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTWV0YWRhdGEuaApAQCAt
NDMsNyArNDMsOCBAQCBzdHJ1Y3QgSURCSW5kZXhNZXRhZGF0YTsKIAogc3RydWN0IElEQkRhdGFi
YXNlTWV0YWRhdGEgewogICAgIGVudW0gewotICAgICAgICBOb0ludFZlcnNpb24gPSAtMQorICAg
ICAgICBOb0ludFZlcnNpb24gPSAtMSwKKyAgICAgICAgRGVmYXVsdEludFZlcnNpb24gPSAwCiAg
ICAgfTsKIAogICAgIElEQkRhdGFiYXNlTWV0YWRhdGEoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155866</attachid>
            <date>2012-08-01 13:07:31 -0700</date>
            <delta_ts>2012-08-01 15:59:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92883-20120801130713.patch</filename>
            <type>text/plain</type>
            <size>7989</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDUwNmJhNjM4OGJkNzg0
NWE3NTE4ZDk3YWRjNmUxZTcxOGVhYWI4YS4uZTdkM2VmYmRjYTUzNjNhNjI4YzdiYWZiMjgwNmRm
YWM0NzM3OGM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA4LTAxICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IE1h
a2UgbGV2ZWxkYiBzdG9yZSBpbnRlZ2VyIHZlcnNpb25zIGFuZCBtaWdyYXRlIG9sZCBzY2hlbWFz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjg4Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE91ciBmaXJz
dCBzY2hlbWEgY2hhbmdlLiBJZiBhbiBleGlzdGluZyBEQiBkb2Vzbid0IGhhdmUgaW50ZWdlcgor
ICAgICAgICB2ZXJzaW9ucywgdGhpcyB3aWxsIGFkZCBvbmUgdG8gYWxsIG9iamVjdCBzdG9yZXMg
aW4gdGhlIG9yaWdpbi4KKworICAgICAgICBObyBuZXcgdGVzdHMgLSBjaHJvbWUgdGVzdCBmb3Ig
dGhlIG1pZ3JhdGlvbiBmb3J0aGNvbWluZy4gV2lsbCBpbnZvbHZlCisgICAgICAgIHN0YXJ0aW5n
IHdpdGggYSBsZXZlbGRiIGRpcmVjdG9yeSBmcm9tIGFuIG9sZCBidWlsZCBvZiBjaHJvbWUsIG9w
ZW5pbmcKKyAgICAgICAgaXQgdXAgd2l0aCB0aGUgbWlncmF0aW9uIGNvZGUgaW4gcGxhY2UsIGFu
ZCBjaGVja2luZyB0aGUgbmV3IGRhdGFiYXNlLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwdXRWYXJJ
bnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRVcE1ldGFkYXRh
KToKKyAgICAgICAgVXNlcyB0aGUgQVNTRVJULWJ1dC1zdGlsbC1oYW5kbGUtY29ycnVwdGlvbiBw
YXR0ZXJuIHJlY2VudGx5IGRpc2N1c3NlZAorICAgICAgICBpbiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI3MjUjYzEzLgorCisgICAgICAgIChXZWJDb3JlOjpJREJM
ZXZlbERCQmFja2luZ1N0b3JlOjpvcGVuKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkxldmVsREJC
YWNraW5nU3RvcmU6OmdldElEQkRhdGFiYXNlTWV0YURhdGEpOgorICAgICAgICBCZWNhdXNlIHdl
IGNhbid0IHN0b3JlIG5lZ2F0aXZlIG51bWJlcnMsIHN0b3JlIDAgaW5zdGVhZCBvZiAtMS4gVGhp
cworICAgICAgICBjb3VsZCBsZXQgc2NyaXB0IGNhbGwgb3BlbigiZGIiLCAwKSwgZ2V0IGFuIHVw
Z3JhZGVuZWVkZWQgZXZlbnQsCisgICAgICAgIGNsb3NlIHRoZSBkYiwgcmVvcGVuIGFuZCB1c2Ug
c2V0VmVyc2lvbiBzdWNjZXNzZnVsbHkuICBXaGlsZQorICAgICAgICB0ZWNobmljYWxseSBhZ2Fp
bnN0IG91ciBtaWdyYXRpb24gcnVsZXMsIGl0J3MgZmluZS4KKworICAgICAgICAoV2ViQ29yZTo6
SURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlSURCRGF0YWJhc2VNZXRhRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJMZXZlbERCQmFja2luZ1N0b3JlOjp1cGRhdGVJREJEYXRhYmFzZUlu
dFZlcnNpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2Rpbmcu
aDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJNZXRhZGF0YS5oOgorCiAyMDEyLTA3
LTMxICBLd2FuZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgUmVh
ZCB0YWcgbmFtZXMgYW5kIGF0dHJpYnV0ZXMgZnJvbSB0aGUgc2F2ZWQgdG9rZW5zIGluIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4qKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0
b3JlLmNwcAppbmRleCBlODk4NzAyNmY3OTA2ZjNhM2E5ZjkyNDE3NDdlNTQyYjJiODlmMjFmLi41
M2JkYWM3YzNhMmFjMjVhMmY0ODNmMzdmYjFiOTc4Zjc0ZDZmMjI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0
b3JlLmNwcApAQCAtODcsNiArODcsMTIgQEAgc3RhdGljIGJvb2wgcHV0SW50KERCT3JUcmFuc2Fj
dGlvbiogZGIsIGNvbnN0IFZlY3RvcjxjaGFyPiYga2V5LCBpbnQ2NF90IHZhbHVlKQogfQogCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgREJPclRyYW5zYWN0aW9uPgorc3RhdGljIGJvb2wgcHV0VmFySW50
KERCT3JUcmFuc2FjdGlvbiogZGIsIGNvbnN0IFZlY3RvcjxjaGFyPiYga2V5LCBpbnQ2NF90IHZh
bHVlKQoreworICAgIHJldHVybiBkYi0+cHV0KGtleSwgZW5jb2RlVmFySW50KHZhbHVlKSk7Cit9
CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBEQk9yVHJhbnNhY3Rpb24+CiBzdGF0aWMgYm9vbCBnZXRT
dHJpbmcoREJPclRyYW5zYWN0aW9uKiBkYiwgY29uc3QgVmVjdG9yPGNoYXI+JiBrZXksIFN0cmlu
ZyYgZm91bmRTdHJpbmcpCiB7CiAgICAgVmVjdG9yPGNoYXI+IHJlc3VsdDsKQEAgLTEyOSw3ICsx
MzUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiBuYW1lKCkgY29uc3QgeyBy
ZXR1cm4gImlkYl9jbXAxIjsgfQogfTsKIAotc3RhdGljIGJvb2wgc2V0VXBNZXRhZGF0YShMZXZl
bERCRGF0YWJhc2UqIGRiKQorc3RhdGljIGJvb2wgc2V0VXBNZXRhZGF0YShMZXZlbERCRGF0YWJh
c2UqIGRiLCBjb25zdCBTdHJpbmcmIG9yaWdpbikKIHsKICAgICBjb25zdCBWZWN0b3I8Y2hhcj4g
bWV0YURhdGFLZXkgPSBTY2hlbWFWZXJzaW9uS2V5OjplbmNvZGUoKTsKIApAQCAtMTM4LDEyICsx
NDQsMzcgQEAgc3RhdGljIGJvb2wgc2V0VXBNZXRhZGF0YShMZXZlbERCRGF0YWJhc2UqIGRiKQog
ICAgICAgICBzY2hlbWFWZXJzaW9uID0gMDsKICAgICAgICAgaWYgKCFwdXRJbnQoZGIsIG1ldGFE
YXRhS2V5LCBzY2hlbWFWZXJzaW9uKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
IGVsc2UgeworICAgICAgICBpZiAoIXNjaGVtYVZlcnNpb24pIHsKKyAgICAgICAgICAgIHNjaGVt
YVZlcnNpb24gPSAxOworICAgICAgICAgICAgUmVmUHRyPExldmVsREJUcmFuc2FjdGlvbj4gdHJh
bnNhY3Rpb24gPSBMZXZlbERCVHJhbnNhY3Rpb246OmNyZWF0ZShkYik7CisgICAgICAgICAgICB0
cmFuc2FjdGlvbi0+cHV0KG1ldGFEYXRhS2V5LCBlbmNvZGVJbnQoc2NoZW1hVmVyc2lvbikpOwor
CisgICAgICAgICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gc3RhcnRLZXkgPSBEYXRhYmFzZU5hbWVL
ZXk6OmVuY29kZU1pbktleUZvck9yaWdpbihvcmlnaW4pOworICAgICAgICAgICAgY29uc3QgVmVj
dG9yPGNoYXI+IHN0b3BLZXkgPSBEYXRhYmFzZU5hbWVLZXk6OmVuY29kZVN0b3BLZXlGb3JPcmln
aW4ob3JpZ2luKTsKKyAgICAgICAgICAgIE93blB0cjxMZXZlbERCSXRlcmF0b3I+IGl0ID0gZGIt
PmNyZWF0ZUl0ZXJhdG9yKCk7CisgICAgICAgICAgICBmb3IgKGl0LT5zZWVrKHN0YXJ0S2V5KTsg
aXQtPmlzVmFsaWQoKSAmJiBjb21wYXJlS2V5cyhpdC0+a2V5KCksIHN0b3BLZXkpIDwgMDsgaXQt
Pm5leHQoKSkgeworICAgICAgICAgICAgICAgIFZlY3RvcjxjaGFyPiB2YWx1ZTsKKyAgICAgICAg
ICAgICAgICBib29sIG9rID0gdHJhbnNhY3Rpb24tPmdldChpdC0+a2V5KCksIHZhbHVlKTsKKyAg
ICAgICAgICAgICAgICBBU1NFUlQob2spOworICAgICAgICAgICAgICAgIGlmICghb2spCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBpbnQgZGF0YWJh
c2VJZCA9IGRlY29kZUludCh2YWx1ZS5iZWdpbigpLCB2YWx1ZS5lbmQoKSk7CisgICAgICAgICAg
ICAgICAgVmVjdG9yPGNoYXI+IGludFZlcnNpb25LZXkgPSBEYXRhYmFzZU1ldGFEYXRhS2V5Ojpl
bmNvZGUoZGF0YWJhc2VJZCwgRGF0YWJhc2VNZXRhRGF0YUtleTo6VXNlckludFZlcnNpb24pOwor
ICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5wdXQoaW50VmVyc2lvbktleSwgZW5jb2RlVmFy
SW50KElEQkRhdGFiYXNlTWV0YWRhdGE6OkRlZmF1bHRJbnRWZXJzaW9uKSk7CisgICAgICAgICAg
ICAgICAgb2sgPSB0cmFuc2FjdGlvbi0+Z2V0KGl0LT5rZXkoKSwgdmFsdWUpOworICAgICAgICAg
ICAgICAgIEFTU0VSVChvayk7CisgICAgICAgICAgICAgICAgaWYgKCFvaykKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYm9vbCBv
ayA9IHRyYW5zYWN0aW9uLT5jb21taXQoKTsKKyAgICAgICAgICAgIEFTU0VSVChvayk7CisgICAg
ICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
fQorICAgICAgICBBU1NFUlQoc2NoZW1hVmVyc2lvbiA9PSAxKTsKICAgICB9CiAKLSAgICAvLyBG
SVhNRTogRXZlbnR1YWxseSwgd2UnbGwgbmVlZCB0byBiZSBhYmxlIHRvIHRyYW5zaXRpb24gYmV0
d2VlbiBzY2hlbWFzLgotICAgIGlmIChzY2hlbWFWZXJzaW9uKQotICAgICAgICByZXR1cm4gZmFs
c2U7IC8vIERvbid0IGtub3cgd2hhdCB0byBkbyB3aXRoIHRoaXMgdmVyc2lvbi4KLQogICAgIHJl
dHVybiB0cnVlOwogfQogCkBAIC0yMDgsNyArMjM5LDcgQEAgUGFzc1JlZlB0cjxJREJCYWNraW5n
U3RvcmU+IElEQkxldmVsREJCYWNraW5nU3RvcmU6Om9wZW4oU2VjdXJpdHlPcmlnaW4qIHNlY3Vy
aXQKICAgICBSZWZQdHI8SURCTGV2ZWxEQkJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlKGFkb3B0
UmVmKG5ldyBJREJMZXZlbERCQmFja2luZ1N0b3JlKGZpbGVJZGVudGlmaWVyLCBmYWN0b3J5LCBk
Yi5yZWxlYXNlKCkpKSk7CiAgICAgYmFja2luZ1N0b3JlLT5tX2NvbXBhcmF0b3IgPSBjb21wYXJh
dG9yLnJlbGVhc2UoKTsKIAotICAgIGlmICghc2V0VXBNZXRhZGF0YShiYWNraW5nU3RvcmUtPm1f
ZGIuZ2V0KCkpKQorICAgIGlmICghc2V0VXBNZXRhZGF0YShiYWNraW5nU3RvcmUtPm1fZGIuZ2V0
KCksIGZpbGVJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8SURCQmFja2lu
Z1N0b3JlPigpOwogCiAgICAgcmV0dXJuIGJhY2tpbmdTdG9yZS5yZWxlYXNlKCk7CkBAIC0yNDYs
NiArMjc3LDEyIEBAIGJvb2wgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6Z2V0SURCRGF0YWJhc2VN
ZXRhRGF0YShjb25zdCBTdHJpbmcmIG5hbWUsIFN0cmluZyYKICAgICBpZiAoIW9rKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKKyAgICBvayA9IGdldEludChtX2RiLmdldCgpLCBEYXRhYmFzZU1l
dGFEYXRhS2V5OjplbmNvZGUoZm91bmRJZCwgRGF0YWJhc2VNZXRhRGF0YUtleTo6VXNlckludFZl
cnNpb24pLCBmb3VuZEludFZlcnNpb24pOworICAgIGlmICghb2spCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBpZiAoZm91bmRJbnRWZXJzaW9uID09IElEQkRhdGFiYXNlTWV0YWRhdGE6OkRl
ZmF1bHRJbnRWZXJzaW9uKQorICAgICAgICBmb3VuZEludFZlcnNpb24gPSBJREJEYXRhYmFzZU1l
dGFkYXRhOjpOb0ludFZlcnNpb247CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjc1LDEy
ICszMTIsMjAgQEAgYm9vbCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjpjcmVhdGVJREJEYXRhYmFz
ZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIGlmICghcHV0U3RyaW5nKG1fZGIuZ2V0KCksIERhdGFiYXNlTWV0YURhdGFLZXk6OmVu
Y29kZShyb3dJZCwgRGF0YWJhc2VNZXRhRGF0YUtleTo6VXNlclZlcnNpb24pLCB2ZXJzaW9uKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChpbnRWZXJzaW9uID09IElEQkRhdGFiYXNl
TWV0YWRhdGE6Ok5vSW50VmVyc2lvbikKKyAgICAgICAgaW50VmVyc2lvbiA9IElEQkRhdGFiYXNl
TWV0YWRhdGE6OkRlZmF1bHRJbnRWZXJzaW9uOworICAgIGlmICghcHV0VmFySW50KG1fZGIuZ2V0
KCksIERhdGFiYXNlTWV0YURhdGFLZXk6OmVuY29kZShyb3dJZCwgRGF0YWJhc2VNZXRhRGF0YUtl
eTo6VXNlckludFZlcnNpb24pLCBpbnRWZXJzaW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIElEQkxldmVsREJCYWNraW5nU3RvcmU6OnVwZGF0
ZUlEQkRhdGFiYXNlSW50VmVyc2lvbihpbnQ2NF90IHJvd0lkLCBpbnQ2NF90IGludFZlcnNpb24p
CiB7Ci0gICAgLy8gRklYTUU6IE1ha2UgdGhpcyBhY3R1YWxseSBkbyBzb21ldGhpbmcuIChmaXJz
dCBjdXQgaXMgaW4gaHR0cDovL3drYi51Zy84OTUwNSkKKyAgICBBU1NFUlQobV9jdXJyZW50VHJh
bnNhY3Rpb24pOworICAgIEFTU0VSVChpbnRWZXJzaW9uID4gMCk7CisgICAgaWYgKCFwdXRWYXJJ
bnQobV9jdXJyZW50VHJhbnNhY3Rpb24uZ2V0KCksIERhdGFiYXNlTWV0YURhdGFLZXk6OmVuY29k
ZShyb3dJZCwgRGF0YWJhc2VNZXRhRGF0YUtleTo6VXNlckludFZlcnNpb24pLCBpbnRWZXJzaW9u
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2Rpbmcu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuaApp
bmRleCAzMTEzZTdkOGE5ODgyYmQ3ZDhlNzc5Y2FkYWE5N2VkODIxYzVhOGU4Li4zZmNkYzQ2ZDM3
MjM3ZGRiYzMxMDZjZDEwMWQxMzVlNDY3MjE4YjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQ29kaW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5oCkBAIC0xNDAsNyArMTQwLDgg
QEAgcHVibGljOgogICAgICAgICBPcmlnaW5OYW1lID0gMCwKICAgICAgICAgRGF0YWJhc2VOYW1l
ID0gMSwKICAgICAgICAgVXNlclZlcnNpb24gPSAyLAotICAgICAgICBNYXhPYmplY3RTdG9yZUlk
ID0gMworICAgICAgICBNYXhPYmplY3RTdG9yZUlkID0gMywKKyAgICAgICAgVXNlckludFZlcnNp
b24gPSA0CiAgICAgfTsKIAogICAgIHN0YXRpYyBWZWN0b3I8Y2hhcj4gZW5jb2RlKGludDY0X3Qg
ZGF0YWJhc2VJZCwgTWV0YURhdGFUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQk1ldGFkYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJNZXRhZGF0YS5oCmluZGV4IGRkMjMwNjIwYzdjMWZiMDExYjNmOTk0MTBiYzgy
ZTdlNmE4ZjUzYmUuLjJkYzY2ZTdkNDc2YWVhNjg2NDkwY2VlZTFmNjA1ZWY3ZTM3YmE4YmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk1ldGFkYXRhLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTWV0YWRhdGEuaApAQCAt
NDIsOCArNDIsMTAgQEAgc3RydWN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGE7CiBzdHJ1Y3QgSURC
SW5kZXhNZXRhZGF0YTsKIAogc3RydWN0IElEQkRhdGFiYXNlTWV0YWRhdGEgeworICAgIC8vIEZJ
WE1FOiBUaGVzZSBjYW4gcHJvYmFibHkgYmUgY29sbGFwc2VkIGludG8gMC4KICAgICBlbnVtIHsK
LSAgICAgICAgTm9JbnRWZXJzaW9uID0gLTEKKyAgICAgICAgTm9JbnRWZXJzaW9uID0gLTEsCisg
ICAgICAgIERlZmF1bHRJbnRWZXJzaW9uID0gMAogICAgIH07CiAKICAgICBJREJEYXRhYmFzZU1l
dGFkYXRhKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155912</attachid>
            <date>2012-08-01 15:59:28 -0700</date>
            <delta_ts>2012-08-02 16:51:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92883-20120801155910.patch</filename>
            <type>text/plain</type>
            <size>8145</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDUwNmJhNjM4OGJkNzg0
NWE3NTE4ZDk3YWRjNmUxZTcxOGVhYWI4YS4uZTdkM2VmYmRjYTUzNjNhNjI4YzdiYWZiMjgwNmRm
YWM0NzM3OGM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA4LTAxICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IE1h
a2UgbGV2ZWxkYiBzdG9yZSBpbnRlZ2VyIHZlcnNpb25zIGFuZCBtaWdyYXRlIG9sZCBzY2hlbWFz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjg4Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE91ciBmaXJz
dCBzY2hlbWEgY2hhbmdlLiBJZiBhbiBleGlzdGluZyBEQiBkb2Vzbid0IGhhdmUgaW50ZWdlcgor
ICAgICAgICB2ZXJzaW9ucywgdGhpcyB3aWxsIGFkZCBvbmUgdG8gYWxsIG9iamVjdCBzdG9yZXMg
aW4gdGhlIG9yaWdpbi4KKworICAgICAgICBObyBuZXcgdGVzdHMgLSBjaHJvbWUgdGVzdCBmb3Ig
dGhlIG1pZ3JhdGlvbiBmb3J0aGNvbWluZy4gV2lsbCBpbnZvbHZlCisgICAgICAgIHN0YXJ0aW5n
IHdpdGggYSBsZXZlbGRiIGRpcmVjdG9yeSBmcm9tIGFuIG9sZCBidWlsZCBvZiBjaHJvbWUsIG9w
ZW5pbmcKKyAgICAgICAgaXQgdXAgd2l0aCB0aGUgbWlncmF0aW9uIGNvZGUgaW4gcGxhY2UsIGFu
ZCBjaGVja2luZyB0aGUgbmV3IGRhdGFiYXNlLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwdXRWYXJJ
bnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRVcE1ldGFkYXRh
KToKKyAgICAgICAgVXNlcyB0aGUgQVNTRVJULWJ1dC1zdGlsbC1oYW5kbGUtY29ycnVwdGlvbiBw
YXR0ZXJuIHJlY2VudGx5IGRpc2N1c3NlZAorICAgICAgICBpbiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI3MjUjYzEzLgorCisgICAgICAgIChXZWJDb3JlOjpJREJM
ZXZlbERCQmFja2luZ1N0b3JlOjpvcGVuKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkxldmVsREJC
YWNraW5nU3RvcmU6OmdldElEQkRhdGFiYXNlTWV0YURhdGEpOgorICAgICAgICBCZWNhdXNlIHdl
IGNhbid0IHN0b3JlIG5lZ2F0aXZlIG51bWJlcnMsIHN0b3JlIDAgaW5zdGVhZCBvZiAtMS4gVGhp
cworICAgICAgICBjb3VsZCBsZXQgc2NyaXB0IGNhbGwgb3BlbigiZGIiLCAwKSwgZ2V0IGFuIHVw
Z3JhZGVuZWVkZWQgZXZlbnQsCisgICAgICAgIGNsb3NlIHRoZSBkYiwgcmVvcGVuIGFuZCB1c2Ug
c2V0VmVyc2lvbiBzdWNjZXNzZnVsbHkuICBXaGlsZQorICAgICAgICB0ZWNobmljYWxseSBhZ2Fp
bnN0IG91ciBtaWdyYXRpb24gcnVsZXMsIGl0J3MgZmluZS4KKworICAgICAgICAoV2ViQ29yZTo6
SURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlSURCRGF0YWJhc2VNZXRhRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJMZXZlbERCQmFja2luZ1N0b3JlOjp1cGRhdGVJREJEYXRhYmFzZUlu
dFZlcnNpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2Rpbmcu
aDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJNZXRhZGF0YS5oOgorCiAyMDEyLTA3
LTMxICBLd2FuZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgUmVh
ZCB0YWcgbmFtZXMgYW5kIGF0dHJpYnV0ZXMgZnJvbSB0aGUgc2F2ZWQgdG9rZW5zIGluIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4qKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0
b3JlLmNwcAppbmRleCBlODk4NzAyNmY3OTA2ZjNhM2E5ZjkyNDE3NDdlNTQyYjJiODlmMjFmLi44
NzcxMjQxOGY0MjRhMDdhYjQzNmIyMjhjN2JiOTQxNDYyNDdlMDEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0
b3JlLmNwcApAQCAtODcsNiArODcsMTIgQEAgc3RhdGljIGJvb2wgcHV0SW50KERCT3JUcmFuc2Fj
dGlvbiogZGIsIGNvbnN0IFZlY3RvcjxjaGFyPiYga2V5LCBpbnQ2NF90IHZhbHVlKQogfQogCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgREJPclRyYW5zYWN0aW9uPgorc3RhdGljIGJvb2wgcHV0VmFySW50
KERCT3JUcmFuc2FjdGlvbiogZGIsIGNvbnN0IFZlY3RvcjxjaGFyPiYga2V5LCBpbnQ2NF90IHZh
bHVlKQoreworICAgIHJldHVybiBkYi0+cHV0KGtleSwgZW5jb2RlVmFySW50KHZhbHVlKSk7Cit9
CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBEQk9yVHJhbnNhY3Rpb24+CiBzdGF0aWMgYm9vbCBnZXRT
dHJpbmcoREJPclRyYW5zYWN0aW9uKiBkYiwgY29uc3QgVmVjdG9yPGNoYXI+JiBrZXksIFN0cmlu
ZyYgZm91bmRTdHJpbmcpCiB7CiAgICAgVmVjdG9yPGNoYXI+IHJlc3VsdDsKQEAgLTEyOSw3ICsx
MzUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiBuYW1lKCkgY29uc3QgeyBy
ZXR1cm4gImlkYl9jbXAxIjsgfQogfTsKIAotc3RhdGljIGJvb2wgc2V0VXBNZXRhZGF0YShMZXZl
bERCRGF0YWJhc2UqIGRiKQorc3RhdGljIGJvb2wgc2V0VXBNZXRhZGF0YShMZXZlbERCRGF0YWJh
c2UqIGRiLCBjb25zdCBTdHJpbmcmIG9yaWdpbikKIHsKICAgICBjb25zdCBWZWN0b3I8Y2hhcj4g
bWV0YURhdGFLZXkgPSBTY2hlbWFWZXJzaW9uS2V5OjplbmNvZGUoKTsKIApAQCAtMTM4LDEyICsx
NDQsMzcgQEAgc3RhdGljIGJvb2wgc2V0VXBNZXRhZGF0YShMZXZlbERCRGF0YWJhc2UqIGRiKQog
ICAgICAgICBzY2hlbWFWZXJzaW9uID0gMDsKICAgICAgICAgaWYgKCFwdXRJbnQoZGIsIG1ldGFE
YXRhS2V5LCBzY2hlbWFWZXJzaW9uKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
IGVsc2UgeworICAgICAgICBpZiAoIXNjaGVtYVZlcnNpb24pIHsKKyAgICAgICAgICAgIHNjaGVt
YVZlcnNpb24gPSAxOworICAgICAgICAgICAgUmVmUHRyPExldmVsREJUcmFuc2FjdGlvbj4gdHJh
bnNhY3Rpb24gPSBMZXZlbERCVHJhbnNhY3Rpb246OmNyZWF0ZShkYik7CisgICAgICAgICAgICB0
cmFuc2FjdGlvbi0+cHV0KG1ldGFEYXRhS2V5LCBlbmNvZGVJbnQoc2NoZW1hVmVyc2lvbikpOwor
CisgICAgICAgICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gc3RhcnRLZXkgPSBEYXRhYmFzZU5hbWVL
ZXk6OmVuY29kZU1pbktleUZvck9yaWdpbihvcmlnaW4pOworICAgICAgICAgICAgY29uc3QgVmVj
dG9yPGNoYXI+IHN0b3BLZXkgPSBEYXRhYmFzZU5hbWVLZXk6OmVuY29kZVN0b3BLZXlGb3JPcmln
aW4ob3JpZ2luKTsKKyAgICAgICAgICAgIE93blB0cjxMZXZlbERCSXRlcmF0b3I+IGl0ID0gZGIt
PmNyZWF0ZUl0ZXJhdG9yKCk7CisgICAgICAgICAgICBmb3IgKGl0LT5zZWVrKHN0YXJ0S2V5KTsg
aXQtPmlzVmFsaWQoKSAmJiBjb21wYXJlS2V5cyhpdC0+a2V5KCksIHN0b3BLZXkpIDwgMDsgaXQt
Pm5leHQoKSkgeworICAgICAgICAgICAgICAgIFZlY3RvcjxjaGFyPiB2YWx1ZTsKKyAgICAgICAg
ICAgICAgICBib29sIG9rID0gdHJhbnNhY3Rpb24tPmdldChpdC0+a2V5KCksIHZhbHVlKTsKKyAg
ICAgICAgICAgICAgICBBU1NFUlQob2spOworICAgICAgICAgICAgICAgIGlmICghb2spCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBpbnQgZGF0YWJh
c2VJZCA9IGRlY29kZUludCh2YWx1ZS5iZWdpbigpLCB2YWx1ZS5lbmQoKSk7CisgICAgICAgICAg
ICAgICAgVmVjdG9yPGNoYXI+IGludFZlcnNpb25LZXkgPSBEYXRhYmFzZU1ldGFEYXRhS2V5Ojpl
bmNvZGUoZGF0YWJhc2VJZCwgRGF0YWJhc2VNZXRhRGF0YUtleTo6VXNlckludFZlcnNpb24pOwor
ICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5wdXQoaW50VmVyc2lvbktleSwgZW5jb2RlVmFy
SW50KElEQkRhdGFiYXNlTWV0YWRhdGE6OkRlZmF1bHRJbnRWZXJzaW9uKSk7CisgICAgICAgICAg
ICAgICAgb2sgPSB0cmFuc2FjdGlvbi0+Z2V0KGl0LT5rZXkoKSwgdmFsdWUpOworICAgICAgICAg
ICAgICAgIEFTU0VSVChvayk7CisgICAgICAgICAgICAgICAgaWYgKCFvaykKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYm9vbCBv
ayA9IHRyYW5zYWN0aW9uLT5jb21taXQoKTsKKyAgICAgICAgICAgIEFTU0VSVChvayk7CisgICAg
ICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
fQorICAgICAgICBBU1NFUlQoc2NoZW1hVmVyc2lvbiA9PSAxKTsKICAgICB9CiAKLSAgICAvLyBG
SVhNRTogRXZlbnR1YWxseSwgd2UnbGwgbmVlZCB0byBiZSBhYmxlIHRvIHRyYW5zaXRpb24gYmV0
d2VlbiBzY2hlbWFzLgotICAgIGlmIChzY2hlbWFWZXJzaW9uKQotICAgICAgICByZXR1cm4gZmFs
c2U7IC8vIERvbid0IGtub3cgd2hhdCB0byBkbyB3aXRoIHRoaXMgdmVyc2lvbi4KLQogICAgIHJl
dHVybiB0cnVlOwogfQogCkBAIC0yMDgsNyArMjM5LDcgQEAgUGFzc1JlZlB0cjxJREJCYWNraW5n
U3RvcmU+IElEQkxldmVsREJCYWNraW5nU3RvcmU6Om9wZW4oU2VjdXJpdHlPcmlnaW4qIHNlY3Vy
aXQKICAgICBSZWZQdHI8SURCTGV2ZWxEQkJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlKGFkb3B0
UmVmKG5ldyBJREJMZXZlbERCQmFja2luZ1N0b3JlKGZpbGVJZGVudGlmaWVyLCBmYWN0b3J5LCBk
Yi5yZWxlYXNlKCkpKSk7CiAgICAgYmFja2luZ1N0b3JlLT5tX2NvbXBhcmF0b3IgPSBjb21wYXJh
dG9yLnJlbGVhc2UoKTsKIAotICAgIGlmICghc2V0VXBNZXRhZGF0YShiYWNraW5nU3RvcmUtPm1f
ZGIuZ2V0KCkpKQorICAgIGlmICghc2V0VXBNZXRhZGF0YShiYWNraW5nU3RvcmUtPm1fZGIuZ2V0
KCksIGZpbGVJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8SURCQmFja2lu
Z1N0b3JlPigpOwogCiAgICAgcmV0dXJuIGJhY2tpbmdTdG9yZS5yZWxlYXNlKCk7CkBAIC0yNDYs
NiArMjc3LDEyIEBAIGJvb2wgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6Z2V0SURCRGF0YWJhc2VN
ZXRhRGF0YShjb25zdCBTdHJpbmcmIG5hbWUsIFN0cmluZyYKICAgICBpZiAoIW9rKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKKyAgICBvayA9IGdldEludChtX2RiLmdldCgpLCBEYXRhYmFzZU1l
dGFEYXRhS2V5OjplbmNvZGUoZm91bmRJZCwgRGF0YWJhc2VNZXRhRGF0YUtleTo6VXNlckludFZl
cnNpb24pLCBmb3VuZEludFZlcnNpb24pOworICAgIGlmICghb2spCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBpZiAoZm91bmRJbnRWZXJzaW9uID09IElEQkRhdGFiYXNlTWV0YWRhdGE6OkRl
ZmF1bHRJbnRWZXJzaW9uKQorICAgICAgICBmb3VuZEludFZlcnNpb24gPSBJREJEYXRhYmFzZU1l
dGFkYXRhOjpOb0ludFZlcnNpb247CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjc1LDEy
ICszMTIsMjIgQEAgYm9vbCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjpjcmVhdGVJREJEYXRhYmFz
ZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIGlmICghcHV0U3RyaW5nKG1fZGIuZ2V0KCksIERhdGFiYXNlTWV0YURhdGFLZXk6OmVu
Y29kZShyb3dJZCwgRGF0YWJhc2VNZXRhRGF0YUtleTo6VXNlclZlcnNpb24pLCB2ZXJzaW9uKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChpbnRWZXJzaW9uID09IElEQkRhdGFiYXNl
TWV0YWRhdGE6Ok5vSW50VmVyc2lvbikKKyAgICAgICAgaW50VmVyc2lvbiA9IElEQkRhdGFiYXNl
TWV0YWRhdGE6OkRlZmF1bHRJbnRWZXJzaW9uOworICAgIGlmICghcHV0VmFySW50KG1fZGIuZ2V0
KCksIERhdGFiYXNlTWV0YURhdGFLZXk6OmVuY29kZShyb3dJZCwgRGF0YWJhc2VNZXRhRGF0YUtl
eTo6VXNlckludFZlcnNpb24pLCBpbnRWZXJzaW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIElEQkxldmVsREJCYWNraW5nU3RvcmU6OnVwZGF0
ZUlEQkRhdGFiYXNlSW50VmVyc2lvbihpbnQ2NF90IHJvd0lkLCBpbnQ2NF90IGludFZlcnNpb24p
CiB7Ci0gICAgLy8gRklYTUU6IE1ha2UgdGhpcyBhY3R1YWxseSBkbyBzb21ldGhpbmcuIChmaXJz
dCBjdXQgaXMgaW4gaHR0cDovL3drYi51Zy84OTUwNSkKKyAgICBBU1NFUlQobV9jdXJyZW50VHJh
bnNhY3Rpb24pOworICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhpcyB0byBzdHJpY3RseSBncmVhdGVy
IHRoYW4gMCBvbmNlIHdlIHRocm93IFR5cGVFcnJvciBmb3IKKyAgICAvLyBiYWQgdmVyc2lvbnMu
CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShpbnRWZXJzaW9uID49IDAsICJpbnRWZXJzaW9uIHdh
cyAlIlBSSWQ2NCwgaW50VmVyc2lvbik7CisgICAgaWYgKCFwdXRWYXJJbnQobV9jdXJyZW50VHJh
bnNhY3Rpb24uZ2V0KCksIERhdGFiYXNlTWV0YURhdGFLZXk6OmVuY29kZShyb3dJZCwgRGF0YWJh
c2VNZXRhRGF0YUtleTo6VXNlckludFZlcnNpb24pLCBpbnRWZXJzaW9uKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuaAppbmRleCAzMTEzZTdkOGE5
ODgyYmQ3ZDhlNzc5Y2FkYWE5N2VkODIxYzVhOGU4Li4zZmNkYzQ2ZDM3MjM3ZGRiYzMxMDZjZDEw
MWQxMzVlNDY3MjE4YjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJMZXZlbERCQ29kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCTGV2ZWxEQkNvZGluZy5oCkBAIC0xNDAsNyArMTQwLDggQEAgcHVibGljOgogICAg
ICAgICBPcmlnaW5OYW1lID0gMCwKICAgICAgICAgRGF0YWJhc2VOYW1lID0gMSwKICAgICAgICAg
VXNlclZlcnNpb24gPSAyLAotICAgICAgICBNYXhPYmplY3RTdG9yZUlkID0gMworICAgICAgICBN
YXhPYmplY3RTdG9yZUlkID0gMywKKyAgICAgICAgVXNlckludFZlcnNpb24gPSA0CiAgICAgfTsK
IAogICAgIHN0YXRpYyBWZWN0b3I8Y2hhcj4gZW5jb2RlKGludDY0X3QgZGF0YWJhc2VJZCwgTWV0
YURhdGFUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQk1ldGFkYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJNZXRh
ZGF0YS5oCmluZGV4IGRkMjMwNjIwYzdjMWZiMDExYjNmOTk0MTBiYzgyZTdlNmE4ZjUzYmUuLjJk
YzY2ZTdkNDc2YWVhNjg2NDkwY2VlZTFmNjA1ZWY3ZTM3YmE4YmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk1ldGFkYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTWV0YWRhdGEuaApAQCAtNDIsOCArNDIsMTAgQEAg
c3RydWN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGE7CiBzdHJ1Y3QgSURCSW5kZXhNZXRhZGF0YTsK
IAogc3RydWN0IElEQkRhdGFiYXNlTWV0YWRhdGEgeworICAgIC8vIEZJWE1FOiBUaGVzZSBjYW4g
cHJvYmFibHkgYmUgY29sbGFwc2VkIGludG8gMC4KICAgICBlbnVtIHsKLSAgICAgICAgTm9JbnRW
ZXJzaW9uID0gLTEKKyAgICAgICAgTm9JbnRWZXJzaW9uID0gLTEsCisgICAgICAgIERlZmF1bHRJ
bnRWZXJzaW9uID0gMAogICAgIH07CiAKICAgICBJREJEYXRhYmFzZU1ldGFkYXRhKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156205</attachid>
            <date>2012-08-02 16:51:53 -0700</date>
            <delta_ts>2012-08-02 18:04:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92883-20120802165134.patch</filename>
            <type>text/plain</type>
            <size>7848</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTA5ZTk5NzI4NTkwMDZl
OWQ3OGJkNDc3ZTgzMGQyNjM2MzVlYjE4NS4uN2I5MjUzYmU5ZDkxNjk5N2VjNjdkMWRkMDhkOGUx
OGExNzJlYTg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA4LTAxICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IE1h
a2UgbGV2ZWxkYiBzdG9yZSBpbnRlZ2VyIHZlcnNpb25zIGFuZCBtaWdyYXRlIG9sZCBzY2hlbWFz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjg4Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE91ciBmaXJz
dCBzY2hlbWEgY2hhbmdlLiBJZiBhbiBleGlzdGluZyBEQiBkb2Vzbid0IGhhdmUgaW50ZWdlcgor
ICAgICAgICB2ZXJzaW9ucywgdGhpcyB3aWxsIGFkZCBvbmUgdG8gYWxsIG9iamVjdCBzdG9yZXMg
aW4gdGhlIG9yaWdpbi4KKworICAgICAgICBObyBuZXcgdGVzdHMgLSBjaHJvbWUgdGVzdCBmb3Ig
dGhlIG1pZ3JhdGlvbiBmb3J0aGNvbWluZy4gV2lsbCBpbnZvbHZlCisgICAgICAgIHN0YXJ0aW5n
IHdpdGggYSBsZXZlbGRiIGRpcmVjdG9yeSBmcm9tIGFuIG9sZCBidWlsZCBvZiBjaHJvbWUsIG9w
ZW5pbmcKKyAgICAgICAgaXQgdXAgd2l0aCB0aGUgbWlncmF0aW9uIGNvZGUgaW4gcGxhY2UsIGFu
ZCBjaGVja2luZyB0aGUgbmV3IGRhdGFiYXNlLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwdXRWYXJJ
bnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRVcE1ldGFkYXRh
KToKKyAgICAgICAgVXNlcyB0aGUgQVNTRVJULWJ1dC1zdGlsbC1oYW5kbGUtY29ycnVwdGlvbiBw
YXR0ZXJuIHJlY2VudGx5IGRpc2N1c3NlZAorICAgICAgICBpbiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI3MjUjYzEzLgorCisgICAgICAgIChXZWJDb3JlOjpJREJM
ZXZlbERCQmFja2luZ1N0b3JlOjpvcGVuKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkxldmVsREJC
YWNraW5nU3RvcmU6OmdldElEQkRhdGFiYXNlTWV0YURhdGEpOgorICAgICAgICBCZWNhdXNlIHdl
IGNhbid0IHN0b3JlIG5lZ2F0aXZlIG51bWJlcnMsIHN0b3JlIDAgaW5zdGVhZCBvZiAtMS4KKwor
ICAgICAgICAoV2ViQ29yZTo6SURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlSURCRGF0YWJh
c2VNZXRhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJREJMZXZlbERCQmFja2luZ1N0b3JlOjp1
cGRhdGVJREJEYXRhYmFzZUludFZlcnNpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkxldmVsREJDb2RpbmcuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJNZXRh
ZGF0YS5oOgorCiAyMDEyLTA3LTMxICBEYXZpZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBJbmRleGVkREI6IENvcmUgdXBncmFkZW5lZWRlZCBsb2dpYwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tpbmdT
dG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFj
a2luZ1N0b3JlLmNwcAppbmRleCA3NjI4YTgwODlhMGMxMjIyNjkwZjdmYmZmNTVjYjVkYzgzMGJk
MzAyLi44NzcxMjQxOGY0MjRhMDdhYjQzNmIyMjhjN2JiOTQxNDYyNDdlMDEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFj
a2luZ1N0b3JlLmNwcApAQCAtODcsNiArODcsMTIgQEAgc3RhdGljIGJvb2wgcHV0SW50KERCT3JU
cmFuc2FjdGlvbiogZGIsIGNvbnN0IFZlY3RvcjxjaGFyPiYga2V5LCBpbnQ2NF90IHZhbHVlKQog
fQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgREJPclRyYW5zYWN0aW9uPgorc3RhdGljIGJvb2wgcHV0
VmFySW50KERCT3JUcmFuc2FjdGlvbiogZGIsIGNvbnN0IFZlY3RvcjxjaGFyPiYga2V5LCBpbnQ2
NF90IHZhbHVlKQoreworICAgIHJldHVybiBkYi0+cHV0KGtleSwgZW5jb2RlVmFySW50KHZhbHVl
KSk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBEQk9yVHJhbnNhY3Rpb24+CiBzdGF0aWMgYm9v
bCBnZXRTdHJpbmcoREJPclRyYW5zYWN0aW9uKiBkYiwgY29uc3QgVmVjdG9yPGNoYXI+JiBrZXks
IFN0cmluZyYgZm91bmRTdHJpbmcpCiB7CiAgICAgVmVjdG9yPGNoYXI+IHJlc3VsdDsKQEAgLTEy
OSw3ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiBuYW1lKCkgY29u
c3QgeyByZXR1cm4gImlkYl9jbXAxIjsgfQogfTsKIAotc3RhdGljIGJvb2wgc2V0VXBNZXRhZGF0
YShMZXZlbERCRGF0YWJhc2UqIGRiKQorc3RhdGljIGJvb2wgc2V0VXBNZXRhZGF0YShMZXZlbERC
RGF0YWJhc2UqIGRiLCBjb25zdCBTdHJpbmcmIG9yaWdpbikKIHsKICAgICBjb25zdCBWZWN0b3I8
Y2hhcj4gbWV0YURhdGFLZXkgPSBTY2hlbWFWZXJzaW9uS2V5OjplbmNvZGUoKTsKIApAQCAtMTM4
LDEyICsxNDQsMzcgQEAgc3RhdGljIGJvb2wgc2V0VXBNZXRhZGF0YShMZXZlbERCRGF0YWJhc2Uq
IGRiKQogICAgICAgICBzY2hlbWFWZXJzaW9uID0gMDsKICAgICAgICAgaWYgKCFwdXRJbnQoZGIs
IG1ldGFEYXRhS2V5LCBzY2hlbWFWZXJzaW9uKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9IGVsc2UgeworICAgICAgICBpZiAoIXNjaGVtYVZlcnNpb24pIHsKKyAgICAgICAgICAg
IHNjaGVtYVZlcnNpb24gPSAxOworICAgICAgICAgICAgUmVmUHRyPExldmVsREJUcmFuc2FjdGlv
bj4gdHJhbnNhY3Rpb24gPSBMZXZlbERCVHJhbnNhY3Rpb246OmNyZWF0ZShkYik7CisgICAgICAg
ICAgICB0cmFuc2FjdGlvbi0+cHV0KG1ldGFEYXRhS2V5LCBlbmNvZGVJbnQoc2NoZW1hVmVyc2lv
bikpOworCisgICAgICAgICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gc3RhcnRLZXkgPSBEYXRhYmFz
ZU5hbWVLZXk6OmVuY29kZU1pbktleUZvck9yaWdpbihvcmlnaW4pOworICAgICAgICAgICAgY29u
c3QgVmVjdG9yPGNoYXI+IHN0b3BLZXkgPSBEYXRhYmFzZU5hbWVLZXk6OmVuY29kZVN0b3BLZXlG
b3JPcmlnaW4ob3JpZ2luKTsKKyAgICAgICAgICAgIE93blB0cjxMZXZlbERCSXRlcmF0b3I+IGl0
ID0gZGItPmNyZWF0ZUl0ZXJhdG9yKCk7CisgICAgICAgICAgICBmb3IgKGl0LT5zZWVrKHN0YXJ0
S2V5KTsgaXQtPmlzVmFsaWQoKSAmJiBjb21wYXJlS2V5cyhpdC0+a2V5KCksIHN0b3BLZXkpIDwg
MDsgaXQtPm5leHQoKSkgeworICAgICAgICAgICAgICAgIFZlY3RvcjxjaGFyPiB2YWx1ZTsKKyAg
ICAgICAgICAgICAgICBib29sIG9rID0gdHJhbnNhY3Rpb24tPmdldChpdC0+a2V5KCksIHZhbHVl
KTsKKyAgICAgICAgICAgICAgICBBU1NFUlQob2spOworICAgICAgICAgICAgICAgIGlmICghb2sp
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBpbnQg
ZGF0YWJhc2VJZCA9IGRlY29kZUludCh2YWx1ZS5iZWdpbigpLCB2YWx1ZS5lbmQoKSk7CisgICAg
ICAgICAgICAgICAgVmVjdG9yPGNoYXI+IGludFZlcnNpb25LZXkgPSBEYXRhYmFzZU1ldGFEYXRh
S2V5OjplbmNvZGUoZGF0YWJhc2VJZCwgRGF0YWJhc2VNZXRhRGF0YUtleTo6VXNlckludFZlcnNp
b24pOworICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5wdXQoaW50VmVyc2lvbktleSwgZW5j
b2RlVmFySW50KElEQkRhdGFiYXNlTWV0YWRhdGE6OkRlZmF1bHRJbnRWZXJzaW9uKSk7CisgICAg
ICAgICAgICAgICAgb2sgPSB0cmFuc2FjdGlvbi0+Z2V0KGl0LT5rZXkoKSwgdmFsdWUpOworICAg
ICAgICAgICAgICAgIEFTU0VSVChvayk7CisgICAgICAgICAgICAgICAgaWYgKCFvaykKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
Ym9vbCBvayA9IHRyYW5zYWN0aW9uLT5jb21taXQoKTsKKyAgICAgICAgICAgIEFTU0VSVChvayk7
CisgICAgICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgfQorICAgICAgICBBU1NFUlQoc2NoZW1hVmVyc2lvbiA9PSAxKTsKICAgICB9CiAKLSAg
ICAvLyBGSVhNRTogRXZlbnR1YWxseSwgd2UnbGwgbmVlZCB0byBiZSBhYmxlIHRvIHRyYW5zaXRp
b24gYmV0d2VlbiBzY2hlbWFzLgotICAgIGlmIChzY2hlbWFWZXJzaW9uKQotICAgICAgICByZXR1
cm4gZmFsc2U7IC8vIERvbid0IGtub3cgd2hhdCB0byBkbyB3aXRoIHRoaXMgdmVyc2lvbi4KLQog
ICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0yMDgsNyArMjM5LDcgQEAgUGFzc1JlZlB0cjxJREJC
YWNraW5nU3RvcmU+IElEQkxldmVsREJCYWNraW5nU3RvcmU6Om9wZW4oU2VjdXJpdHlPcmlnaW4q
IHNlY3VyaXQKICAgICBSZWZQdHI8SURCTGV2ZWxEQkJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3Jl
KGFkb3B0UmVmKG5ldyBJREJMZXZlbERCQmFja2luZ1N0b3JlKGZpbGVJZGVudGlmaWVyLCBmYWN0
b3J5LCBkYi5yZWxlYXNlKCkpKSk7CiAgICAgYmFja2luZ1N0b3JlLT5tX2NvbXBhcmF0b3IgPSBj
b21wYXJhdG9yLnJlbGVhc2UoKTsKIAotICAgIGlmICghc2V0VXBNZXRhZGF0YShiYWNraW5nU3Rv
cmUtPm1fZGIuZ2V0KCkpKQorICAgIGlmICghc2V0VXBNZXRhZGF0YShiYWNraW5nU3RvcmUtPm1f
ZGIuZ2V0KCksIGZpbGVJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8SURC
QmFja2luZ1N0b3JlPigpOwogCiAgICAgcmV0dXJuIGJhY2tpbmdTdG9yZS5yZWxlYXNlKCk7CkBA
IC0yNDYsNiArMjc3LDEyIEBAIGJvb2wgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6Z2V0SURCRGF0
YWJhc2VNZXRhRGF0YShjb25zdCBTdHJpbmcmIG5hbWUsIFN0cmluZyYKICAgICBpZiAoIW9rKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBvayA9IGdldEludChtX2RiLmdldCgpLCBEYXRh
YmFzZU1ldGFEYXRhS2V5OjplbmNvZGUoZm91bmRJZCwgRGF0YWJhc2VNZXRhRGF0YUtleTo6VXNl
ckludFZlcnNpb24pLCBmb3VuZEludFZlcnNpb24pOworICAgIGlmICghb2spCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBpZiAoZm91bmRJbnRWZXJzaW9uID09IElEQkRhdGFiYXNlTWV0YWRh
dGE6OkRlZmF1bHRJbnRWZXJzaW9uKQorICAgICAgICBmb3VuZEludFZlcnNpb24gPSBJREJEYXRh
YmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb247CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAt
Mjc1LDEyICszMTIsMjIgQEAgYm9vbCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjpjcmVhdGVJREJE
YXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIGlmICghcHV0U3RyaW5nKG1fZGIuZ2V0KCksIERhdGFiYXNlTWV0YURhdGFL
ZXk6OmVuY29kZShyb3dJZCwgRGF0YWJhc2VNZXRhRGF0YUtleTo6VXNlclZlcnNpb24pLCB2ZXJz
aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChpbnRWZXJzaW9uID09IElEQkRh
dGFiYXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbikKKyAgICAgICAgaW50VmVyc2lvbiA9IElEQkRh
dGFiYXNlTWV0YWRhdGE6OkRlZmF1bHRJbnRWZXJzaW9uOworICAgIGlmICghcHV0VmFySW50KG1f
ZGIuZ2V0KCksIERhdGFiYXNlTWV0YURhdGFLZXk6OmVuY29kZShyb3dJZCwgRGF0YWJhc2VNZXRh
RGF0YUtleTo6VXNlckludFZlcnNpb24pLCBpbnRWZXJzaW9uKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIElEQkxldmVsREJCYWNraW5nU3RvcmU6
OnVwZGF0ZUlEQkRhdGFiYXNlSW50VmVyc2lvbihpbnQ2NF90IHJvd0lkLCBpbnQ2NF90IGludFZl
cnNpb24pCiB7Ci0gICAgLy8gRklYTUU6IE1ha2UgdGhpcyBhY3R1YWxseSBkbyBzb21ldGhpbmcu
IGh0dHA6Ly93a2IudWcvOTI4ODMKKyAgICBBU1NFUlQobV9jdXJyZW50VHJhbnNhY3Rpb24pOwor
ICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhpcyB0byBzdHJpY3RseSBncmVhdGVyIHRoYW4gMCBvbmNl
IHdlIHRocm93IFR5cGVFcnJvciBmb3IKKyAgICAvLyBiYWQgdmVyc2lvbnMuCisgICAgQVNTRVJU
X1dJVEhfTUVTU0FHRShpbnRWZXJzaW9uID49IDAsICJpbnRWZXJzaW9uIHdhcyAlIlBSSWQ2NCwg
aW50VmVyc2lvbik7CisgICAgaWYgKCFwdXRWYXJJbnQobV9jdXJyZW50VHJhbnNhY3Rpb24uZ2V0
KCksIERhdGFiYXNlTWV0YURhdGFLZXk6OmVuY29kZShyb3dJZCwgRGF0YWJhc2VNZXRhRGF0YUtl
eTo6VXNlckludFZlcnNpb24pLCBpbnRWZXJzaW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuaAppbmRleCAzMTEzZTdkOGE5ODgyYmQ3ZDhlNzc5
Y2FkYWE5N2VkODIxYzVhOGU4Li4zZmNkYzQ2ZDM3MjM3ZGRiYzMxMDZjZDEwMWQxMzVlNDY3MjE4
YjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZl
bERCQ29kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2
ZWxEQkNvZGluZy5oCkBAIC0xNDAsNyArMTQwLDggQEAgcHVibGljOgogICAgICAgICBPcmlnaW5O
YW1lID0gMCwKICAgICAgICAgRGF0YWJhc2VOYW1lID0gMSwKICAgICAgICAgVXNlclZlcnNpb24g
PSAyLAotICAgICAgICBNYXhPYmplY3RTdG9yZUlkID0gMworICAgICAgICBNYXhPYmplY3RTdG9y
ZUlkID0gMywKKyAgICAgICAgVXNlckludFZlcnNpb24gPSA0CiAgICAgfTsKIAogICAgIHN0YXRp
YyBWZWN0b3I8Y2hhcj4gZW5jb2RlKGludDY0X3QgZGF0YWJhc2VJZCwgTWV0YURhdGFUeXBlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk1ldGFkYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJNZXRhZGF0YS5oCmluZGV4
IGRkMjMwNjIwYzdjMWZiMDExYjNmOTk0MTBiYzgyZTdlNmE4ZjUzYmUuLjJkYzY2ZTdkNDc2YWVh
Njg2NDkwY2VlZTFmNjA1ZWY3ZTM3YmE4YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQk1ldGFkYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCTWV0YWRhdGEuaApAQCAtNDIsOCArNDIsMTAgQEAgc3RydWN0IElEQk9i
amVjdFN0b3JlTWV0YWRhdGE7CiBzdHJ1Y3QgSURCSW5kZXhNZXRhZGF0YTsKIAogc3RydWN0IElE
QkRhdGFiYXNlTWV0YWRhdGEgeworICAgIC8vIEZJWE1FOiBUaGVzZSBjYW4gcHJvYmFibHkgYmUg
Y29sbGFwc2VkIGludG8gMC4KICAgICBlbnVtIHsKLSAgICAgICAgTm9JbnRWZXJzaW9uID0gLTEK
KyAgICAgICAgTm9JbnRWZXJzaW9uID0gLTEsCisgICAgICAgIERlZmF1bHRJbnRWZXJzaW9uID0g
MAogICAgIH07CiAKICAgICBJREJEYXRhYmFzZU1ldGFkYXRhKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156223</attachid>
            <date>2012-08-02 18:04:30 -0700</date>
            <delta_ts>2012-08-06 22:20:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92883-20120802180411.patch</filename>
            <type>text/plain</type>
            <size>7875</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDk5OTRlMTY4NTc0MzUz
ZThiMTZkMjdkZTg2ZTcxNGEzNWYwYTQ1MC4uNmRhY2M3YjBmZThjOWJiNjQ5MDYyNzA4MDMzMzQx
YjZjNzU5NTRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA4LTAxICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IE1h
a2UgbGV2ZWxkYiBzdG9yZSBpbnRlZ2VyIHZlcnNpb25zIGFuZCBtaWdyYXRlIG9sZCBzY2hlbWFz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjg4Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE91ciBmaXJz
dCBzY2hlbWEgY2hhbmdlLiBJZiBhbiBleGlzdGluZyBEQiBkb2Vzbid0IGhhdmUgaW50ZWdlcgor
ICAgICAgICB2ZXJzaW9ucywgdGhpcyB3aWxsIGFkZCBvbmUgdG8gYWxsIG9iamVjdCBzdG9yZXMg
aW4gdGhlIG9yaWdpbi4KKworICAgICAgICBObyBuZXcgdGVzdHMgLSBjaHJvbWUgdGVzdCBmb3Ig
dGhlIG1pZ3JhdGlvbiBmb3J0aGNvbWluZy4gV2lsbCBpbnZvbHZlCisgICAgICAgIHN0YXJ0aW5n
IHdpdGggYSBsZXZlbGRiIGRpcmVjdG9yeSBmcm9tIGFuIG9sZCBidWlsZCBvZiBjaHJvbWUsIG9w
ZW5pbmcKKyAgICAgICAgaXQgdXAgd2l0aCB0aGUgbWlncmF0aW9uIGNvZGUgaW4gcGxhY2UsIGFu
ZCBjaGVja2luZyB0aGUgbmV3IGRhdGFiYXNlLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwdXRWYXJJ
bnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRVcE1ldGFkYXRh
KToKKyAgICAgICAgVXNlcyB0aGUgQVNTRVJULWJ1dC1zdGlsbC1oYW5kbGUtY29ycnVwdGlvbiBw
YXR0ZXJuIHJlY2VudGx5IGRpc2N1c3NlZAorICAgICAgICBpbiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI3MjUjYzEzLgorCisgICAgICAgIChXZWJDb3JlOjpJREJM
ZXZlbERCQmFja2luZ1N0b3JlOjpvcGVuKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkxldmVsREJC
YWNraW5nU3RvcmU6OmdldElEQkRhdGFiYXNlTWV0YURhdGEpOgorICAgICAgICBCZWNhdXNlIHdl
IGNhbid0IHN0b3JlIG5lZ2F0aXZlIG51bWJlcnMsIHN0b3JlIDAgaW5zdGVhZCBvZiAtMS4KKwor
ICAgICAgICAoV2ViQ29yZTo6SURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlSURCRGF0YWJh
c2VNZXRhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJREJMZXZlbERCQmFja2luZ1N0b3JlOjp1
cGRhdGVJREJEYXRhYmFzZUludFZlcnNpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkxldmVsREJDb2RpbmcuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJNZXRh
ZGF0YS5oOgorCiAyMDEyLTA4LTAyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgVjhQcm94eTo6Y3VycmVudENvbnRleHQoKSBkb2Vzbid0IGRvIGFueXRoaW5nIGFu
ZCBzaG91bGQgYmUgcmVtb3ZlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcAppbmRleCA3NjI4YTgwODlh
MGMxMjIyNjkwZjdmYmZmNTVjYjVkYzgzMGJkMzAyLi44NzcxMjQxOGY0MjRhMDdhYjQzNmIyMjhj
N2JiOTQxNDYyNDdlMDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcApAQCAtODcsNiArODcsMTIg
QEAgc3RhdGljIGJvb2wgcHV0SW50KERCT3JUcmFuc2FjdGlvbiogZGIsIGNvbnN0IFZlY3Rvcjxj
aGFyPiYga2V5LCBpbnQ2NF90IHZhbHVlKQogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgREJPclRy
YW5zYWN0aW9uPgorc3RhdGljIGJvb2wgcHV0VmFySW50KERCT3JUcmFuc2FjdGlvbiogZGIsIGNv
bnN0IFZlY3RvcjxjaGFyPiYga2V5LCBpbnQ2NF90IHZhbHVlKQoreworICAgIHJldHVybiBkYi0+
cHV0KGtleSwgZW5jb2RlVmFySW50KHZhbHVlKSk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBE
Qk9yVHJhbnNhY3Rpb24+CiBzdGF0aWMgYm9vbCBnZXRTdHJpbmcoREJPclRyYW5zYWN0aW9uKiBk
YiwgY29uc3QgVmVjdG9yPGNoYXI+JiBrZXksIFN0cmluZyYgZm91bmRTdHJpbmcpCiB7CiAgICAg
VmVjdG9yPGNoYXI+IHJlc3VsdDsKQEAgLTEyOSw3ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBjb25zdCBjaGFyKiBuYW1lKCkgY29uc3QgeyByZXR1cm4gImlkYl9jbXAxIjsgfQogfTsK
IAotc3RhdGljIGJvb2wgc2V0VXBNZXRhZGF0YShMZXZlbERCRGF0YWJhc2UqIGRiKQorc3RhdGlj
IGJvb2wgc2V0VXBNZXRhZGF0YShMZXZlbERCRGF0YWJhc2UqIGRiLCBjb25zdCBTdHJpbmcmIG9y
aWdpbikKIHsKICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gbWV0YURhdGFLZXkgPSBTY2hlbWFWZXJz
aW9uS2V5OjplbmNvZGUoKTsKIApAQCAtMTM4LDEyICsxNDQsMzcgQEAgc3RhdGljIGJvb2wgc2V0
VXBNZXRhZGF0YShMZXZlbERCRGF0YWJhc2UqIGRiKQogICAgICAgICBzY2hlbWFWZXJzaW9uID0g
MDsKICAgICAgICAgaWYgKCFwdXRJbnQoZGIsIG1ldGFEYXRhS2V5LCBzY2hlbWFWZXJzaW9uKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoIXNj
aGVtYVZlcnNpb24pIHsKKyAgICAgICAgICAgIHNjaGVtYVZlcnNpb24gPSAxOworICAgICAgICAg
ICAgUmVmUHRyPExldmVsREJUcmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24gPSBMZXZlbERCVHJhbnNh
Y3Rpb246OmNyZWF0ZShkYik7CisgICAgICAgICAgICB0cmFuc2FjdGlvbi0+cHV0KG1ldGFEYXRh
S2V5LCBlbmNvZGVJbnQoc2NoZW1hVmVyc2lvbikpOworCisgICAgICAgICAgICBjb25zdCBWZWN0
b3I8Y2hhcj4gc3RhcnRLZXkgPSBEYXRhYmFzZU5hbWVLZXk6OmVuY29kZU1pbktleUZvck9yaWdp
bihvcmlnaW4pOworICAgICAgICAgICAgY29uc3QgVmVjdG9yPGNoYXI+IHN0b3BLZXkgPSBEYXRh
YmFzZU5hbWVLZXk6OmVuY29kZVN0b3BLZXlGb3JPcmlnaW4ob3JpZ2luKTsKKyAgICAgICAgICAg
IE93blB0cjxMZXZlbERCSXRlcmF0b3I+IGl0ID0gZGItPmNyZWF0ZUl0ZXJhdG9yKCk7CisgICAg
ICAgICAgICBmb3IgKGl0LT5zZWVrKHN0YXJ0S2V5KTsgaXQtPmlzVmFsaWQoKSAmJiBjb21wYXJl
S2V5cyhpdC0+a2V5KCksIHN0b3BLZXkpIDwgMDsgaXQtPm5leHQoKSkgeworICAgICAgICAgICAg
ICAgIFZlY3RvcjxjaGFyPiB2YWx1ZTsKKyAgICAgICAgICAgICAgICBib29sIG9rID0gdHJhbnNh
Y3Rpb24tPmdldChpdC0+a2V5KCksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQob2sp
OworICAgICAgICAgICAgICAgIGlmICghb2spCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgICAgICAgICBpbnQgZGF0YWJhc2VJZCA9IGRlY29kZUludCh2YWx1ZS5i
ZWdpbigpLCB2YWx1ZS5lbmQoKSk7CisgICAgICAgICAgICAgICAgVmVjdG9yPGNoYXI+IGludFZl
cnNpb25LZXkgPSBEYXRhYmFzZU1ldGFEYXRhS2V5OjplbmNvZGUoZGF0YWJhc2VJZCwgRGF0YWJh
c2VNZXRhRGF0YUtleTo6VXNlckludFZlcnNpb24pOworICAgICAgICAgICAgICAgIHRyYW5zYWN0
aW9uLT5wdXQoaW50VmVyc2lvbktleSwgZW5jb2RlVmFySW50KElEQkRhdGFiYXNlTWV0YWRhdGE6
OkRlZmF1bHRJbnRWZXJzaW9uKSk7CisgICAgICAgICAgICAgICAgb2sgPSB0cmFuc2FjdGlvbi0+
Z2V0KGl0LT5rZXkoKSwgdmFsdWUpOworICAgICAgICAgICAgICAgIEFTU0VSVChvayk7CisgICAg
ICAgICAgICAgICAgaWYgKCFvaykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgYm9vbCBvayA9IHRyYW5zYWN0aW9uLT5jb21taXQo
KTsKKyAgICAgICAgICAgIEFTU0VSVChvayk7CisgICAgICAgICAgICBpZiAoIW9rKQorICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBBU1NFUlQoc2NoZW1h
VmVyc2lvbiA9PSAxKTsKICAgICB9CiAKLSAgICAvLyBGSVhNRTogRXZlbnR1YWxseSwgd2UnbGwg
bmVlZCB0byBiZSBhYmxlIHRvIHRyYW5zaXRpb24gYmV0d2VlbiBzY2hlbWFzLgotICAgIGlmIChz
Y2hlbWFWZXJzaW9uKQotICAgICAgICByZXR1cm4gZmFsc2U7IC8vIERvbid0IGtub3cgd2hhdCB0
byBkbyB3aXRoIHRoaXMgdmVyc2lvbi4KLQogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0yMDgs
NyArMjM5LDcgQEAgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU+IElEQkxldmVsREJCYWNraW5n
U3RvcmU6Om9wZW4oU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXQKICAgICBSZWZQdHI8SURCTGV2ZWxE
QkJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlKGFkb3B0UmVmKG5ldyBJREJMZXZlbERCQmFja2lu
Z1N0b3JlKGZpbGVJZGVudGlmaWVyLCBmYWN0b3J5LCBkYi5yZWxlYXNlKCkpKSk7CiAgICAgYmFj
a2luZ1N0b3JlLT5tX2NvbXBhcmF0b3IgPSBjb21wYXJhdG9yLnJlbGVhc2UoKTsKIAotICAgIGlm
ICghc2V0VXBNZXRhZGF0YShiYWNraW5nU3RvcmUtPm1fZGIuZ2V0KCkpKQorICAgIGlmICghc2V0
VXBNZXRhZGF0YShiYWNraW5nU3RvcmUtPm1fZGIuZ2V0KCksIGZpbGVJZGVudGlmaWVyKSkKICAg
ICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlPigpOwogCiAgICAgcmV0dXJu
IGJhY2tpbmdTdG9yZS5yZWxlYXNlKCk7CkBAIC0yNDYsNiArMjc3LDEyIEBAIGJvb2wgSURCTGV2
ZWxEQkJhY2tpbmdTdG9yZTo6Z2V0SURCRGF0YWJhc2VNZXRhRGF0YShjb25zdCBTdHJpbmcmIG5h
bWUsIFN0cmluZyYKICAgICBpZiAoIW9rKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBv
ayA9IGdldEludChtX2RiLmdldCgpLCBEYXRhYmFzZU1ldGFEYXRhS2V5OjplbmNvZGUoZm91bmRJ
ZCwgRGF0YWJhc2VNZXRhRGF0YUtleTo6VXNlckludFZlcnNpb24pLCBmb3VuZEludFZlcnNpb24p
OworICAgIGlmICghb2spCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoZm91bmRJbnRW
ZXJzaW9uID09IElEQkRhdGFiYXNlTWV0YWRhdGE6OkRlZmF1bHRJbnRWZXJzaW9uKQorICAgICAg
ICBmb3VuZEludFZlcnNpb24gPSBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb247CisK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjc1LDEyICszMTIsMjIgQEAgYm9vbCBJREJMZXZl
bERCQmFja2luZ1N0b3JlOjpjcmVhdGVJREJEYXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghcHV0U3RyaW5nKG1f
ZGIuZ2V0KCksIERhdGFiYXNlTWV0YURhdGFLZXk6OmVuY29kZShyb3dJZCwgRGF0YWJhc2VNZXRh
RGF0YUtleTo6VXNlclZlcnNpb24pLCB2ZXJzaW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmIChpbnRWZXJzaW9uID09IElEQkRhdGFiYXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbikK
KyAgICAgICAgaW50VmVyc2lvbiA9IElEQkRhdGFiYXNlTWV0YWRhdGE6OkRlZmF1bHRJbnRWZXJz
aW9uOworICAgIGlmICghcHV0VmFySW50KG1fZGIuZ2V0KCksIERhdGFiYXNlTWV0YURhdGFLZXk6
OmVuY29kZShyb3dJZCwgRGF0YWJhc2VNZXRhRGF0YUtleTo6VXNlckludFZlcnNpb24pLCBpbnRW
ZXJzaW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiB0cnVlOwogfQogCiBi
b29sIElEQkxldmVsREJCYWNraW5nU3RvcmU6OnVwZGF0ZUlEQkRhdGFiYXNlSW50VmVyc2lvbihp
bnQ2NF90IHJvd0lkLCBpbnQ2NF90IGludFZlcnNpb24pCiB7Ci0gICAgLy8gRklYTUU6IE1ha2Ug
dGhpcyBhY3R1YWxseSBkbyBzb21ldGhpbmcuIGh0dHA6Ly93a2IudWcvOTI4ODMKKyAgICBBU1NF
UlQobV9jdXJyZW50VHJhbnNhY3Rpb24pOworICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhpcyB0byBz
dHJpY3RseSBncmVhdGVyIHRoYW4gMCBvbmNlIHdlIHRocm93IFR5cGVFcnJvciBmb3IKKyAgICAv
LyBiYWQgdmVyc2lvbnMuCisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShpbnRWZXJzaW9uID49IDAs
ICJpbnRWZXJzaW9uIHdhcyAlIlBSSWQ2NCwgaW50VmVyc2lvbik7CisgICAgaWYgKCFwdXRWYXJJ
bnQobV9jdXJyZW50VHJhbnNhY3Rpb24uZ2V0KCksIERhdGFiYXNlTWV0YURhdGFLZXk6OmVuY29k
ZShyb3dJZCwgRGF0YWJhc2VNZXRhRGF0YUtleTo6VXNlckludFZlcnNpb24pLCBpbnRWZXJzaW9u
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2Rpbmcu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuaApp
bmRleCBkMDIxYWQ4NmFhMTA1YzUyY2Q1MDViMzFkYTJmYjM4ZjgyNzcxNWRmLi41Y2E1Njk1YjM2
YTc1N2I3MDQwMmRhNDUzZTdmOTcwZjYyNDc4ZDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQ29kaW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5oCkBAIC0xNDEsNyArMTQxLDgg
QEAgcHVibGljOgogICAgICAgICBPcmlnaW5OYW1lID0gMCwKICAgICAgICAgRGF0YWJhc2VOYW1l
ID0gMSwKICAgICAgICAgVXNlclZlcnNpb24gPSAyLAotICAgICAgICBNYXhPYmplY3RTdG9yZUlk
ID0gMworICAgICAgICBNYXhPYmplY3RTdG9yZUlkID0gMywKKyAgICAgICAgVXNlckludFZlcnNp
b24gPSA0CiAgICAgfTsKIAogICAgIHN0YXRpYyBWZWN0b3I8Y2hhcj4gZW5jb2RlKGludDY0X3Qg
ZGF0YWJhc2VJZCwgTWV0YURhdGFUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQk1ldGFkYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJNZXRhZGF0YS5oCmluZGV4IGRkMjMwNjIwYzdjMWZiMDExYjNmOTk0MTBiYzgy
ZTdlNmE4ZjUzYmUuLjJkYzY2ZTdkNDc2YWVhNjg2NDkwY2VlZTFmNjA1ZWY3ZTM3YmE4YmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk1ldGFkYXRhLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTWV0YWRhdGEuaApAQCAt
NDIsOCArNDIsMTAgQEAgc3RydWN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGE7CiBzdHJ1Y3QgSURC
SW5kZXhNZXRhZGF0YTsKIAogc3RydWN0IElEQkRhdGFiYXNlTWV0YWRhdGEgeworICAgIC8vIEZJ
WE1FOiBUaGVzZSBjYW4gcHJvYmFibHkgYmUgY29sbGFwc2VkIGludG8gMC4KICAgICBlbnVtIHsK
LSAgICAgICAgTm9JbnRWZXJzaW9uID0gLTEKKyAgICAgICAgTm9JbnRWZXJzaW9uID0gLTEsCisg
ICAgICAgIERlZmF1bHRJbnRWZXJzaW9uID0gMAogICAgIH07CiAKICAgICBJREJEYXRhYmFzZU1l
dGFkYXRhKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156864</attachid>
            <date>2012-08-06 22:20:14 -0700</date>
            <delta_ts>2012-08-06 23:55:10 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-92883-20120806221950.patch</filename>
            <type>text/plain</type>
            <size>8035</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0ODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTUwYjQ5YTViMTcwM2Yx
M2ZlMzkwY2ZkOWFkNjY5ZjE0MWI1YWRkMC4uODMwMDhkNDM1N2Y0NTgyNTFjYjUzNDZlYTY5ZWMz
OTUwZmUxMWVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA4LTAxICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IE1h
a2UgbGV2ZWxkYiBzdG9yZSBpbnRlZ2VyIHZlcnNpb25zIGFuZCBtaWdyYXRlIG9sZCBzY2hlbWFz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjg4Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCisKKyAgICAgICAgT3VyIGZpcnN0IHNj
aGVtYSBjaGFuZ2UuIElmIGFuIGV4aXN0aW5nIERCIGRvZXNuJ3QgaGF2ZSBpbnRlZ2VyCisgICAg
ICAgIHZlcnNpb25zLCB0aGlzIHdpbGwgYWRkIG9uZSB0byBhbGwgb2JqZWN0IHN0b3JlcyBpbiB0
aGUgb3JpZ2luLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtIGNocm9tZSB0ZXN0IGZvciB0aGUg
bWlncmF0aW9uIGZvcnRoY29taW5nLiBXaWxsIGludm9sdmUKKyAgICAgICAgc3RhcnRpbmcgd2l0
aCBhIGxldmVsZGIgZGlyZWN0b3J5IGZyb20gYW4gb2xkIGJ1aWxkIG9mIGNocm9tZSwgb3Blbmlu
ZworICAgICAgICBpdCB1cCB3aXRoIHRoZSBtaWdyYXRpb24gY29kZSBpbiBwbGFjZSwgYW5kIGNo
ZWNraW5nIHRoZSBuZXcgZGF0YWJhc2UuCisgICAgICAgIGh0dHA6Ly9jb2RlcmV2aWV3LmNocm9t
aXVtLm9yZy8xMDgyNjE1OS8KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVs
REJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cHV0VmFySW50KToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0VXBNZXRhZGF0YSk6CisgICAgICAg
IFVzZXMgdGhlIEFTU0VSVC1idXQtc3RpbGwtaGFuZGxlLWNvcnJ1cHRpb24gcGF0dGVybiByZWNl
bnRseSBkaXNjdXNzZWQKKyAgICAgICAgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTkyNzI1I2MxMy4KKworICAgICAgICAoV2ViQ29yZTo6SURCTGV2ZWxEQkJhY2tp
bmdTdG9yZTo6b3Blbik6CisgICAgICAgIChXZWJDb3JlOjpJREJMZXZlbERCQmFja2luZ1N0b3Jl
OjpnZXRJREJEYXRhYmFzZU1ldGFEYXRhKToKKyAgICAgICAgQmVjYXVzZSB3ZSBjYW4ndCBzdG9y
ZSBuZWdhdGl2ZSBudW1iZXJzLCBzdG9yZSAwIGluc3RlYWQgb2YgLTEuCisKKyAgICAgICAgKFdl
YkNvcmU6OklEQkxldmVsREJCYWNraW5nU3RvcmU6OmNyZWF0ZUlEQkRhdGFiYXNlTWV0YURhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6SURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6dXBkYXRlSURCRGF0
YWJhc2VJbnRWZXJzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERC
Q29kaW5nLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCTWV0YWRhdGEuaDoKKwog
MjAxMi0wOC0wNiAgQW5uYSBDYXZlbmRlciAgPGFubmFjY0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgVXBkYXRlIEhUTUxNZWRpYUVsZW1lbnQgdG8gdGhlIG5ldyBPTyBNZWRpYVNvdXJjZSBBUEku
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERC
QmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxl
dmVsREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDc2MjhhODA4OWEwYzEyMjI2OTBmN2ZiZmY1NWNi
NWRjODMwYmQzMDIuLmE4MDliYzkyYTM2YjkyYTA0NzVlYWMyZTg2ZmUzZWJhOGY1NjI2NWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJCYWNr
aW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxl
dmVsREJCYWNraW5nU3RvcmUuY3BwCkBAIC04Nyw2ICs4NywxMiBAQCBzdGF0aWMgYm9vbCBwdXRJ
bnQoREJPclRyYW5zYWN0aW9uKiBkYiwgY29uc3QgVmVjdG9yPGNoYXI+JiBrZXksIGludDY0X3Qg
dmFsdWUpCiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBEQk9yVHJhbnNhY3Rpb24+CitzdGF0aWMg
Ym9vbCBwdXRWYXJJbnQoREJPclRyYW5zYWN0aW9uKiBkYiwgY29uc3QgVmVjdG9yPGNoYXI+JiBr
ZXksIGludDY0X3QgdmFsdWUpCit7CisgICAgcmV0dXJuIGRiLT5wdXQoa2V5LCBlbmNvZGVWYXJJ
bnQodmFsdWUpKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIERCT3JUcmFuc2FjdGlvbj4KIHN0
YXRpYyBib29sIGdldFN0cmluZyhEQk9yVHJhbnNhY3Rpb24qIGRiLCBjb25zdCBWZWN0b3I8Y2hh
cj4mIGtleSwgU3RyaW5nJiBmb3VuZFN0cmluZykKIHsKICAgICBWZWN0b3I8Y2hhcj4gcmVzdWx0
OwpAQCAtMTI5LDcgKzEzNSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIG5h
bWUoKSBjb25zdCB7IHJldHVybiAiaWRiX2NtcDEiOyB9CiB9OwogCi1zdGF0aWMgYm9vbCBzZXRV
cE1ldGFkYXRhKExldmVsREJEYXRhYmFzZSogZGIpCitzdGF0aWMgYm9vbCBzZXRVcE1ldGFkYXRh
KExldmVsREJEYXRhYmFzZSogZGIsIGNvbnN0IFN0cmluZyYgb3JpZ2luKQogewogICAgIGNvbnN0
IFZlY3RvcjxjaGFyPiBtZXRhRGF0YUtleSA9IFNjaGVtYVZlcnNpb25LZXk6OmVuY29kZSgpOwog
CkBAIC0xMzgsMTIgKzE0NCw0MCBAQCBzdGF0aWMgYm9vbCBzZXRVcE1ldGFkYXRhKExldmVsREJE
YXRhYmFzZSogZGIpCiAgICAgICAgIHNjaGVtYVZlcnNpb24gPSAwOwogICAgICAgICBpZiAoIXB1
dEludChkYiwgbWV0YURhdGFLZXksIHNjaGVtYVZlcnNpb24pKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmICghc2NoZW1hVmVyc2lvbikgeworICAg
ICAgICAgICAgc2NoZW1hVmVyc2lvbiA9IDE7CisgICAgICAgICAgICBSZWZQdHI8TGV2ZWxEQlRy
YW5zYWN0aW9uPiB0cmFuc2FjdGlvbiA9IExldmVsREJUcmFuc2FjdGlvbjo6Y3JlYXRlKGRiKTsK
KyAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5wdXQobWV0YURhdGFLZXksIGVuY29kZUludChzY2hl
bWFWZXJzaW9uKSk7CisKKyAgICAgICAgICAgIGNvbnN0IFZlY3RvcjxjaGFyPiBzdGFydEtleSA9
IERhdGFiYXNlTmFtZUtleTo6ZW5jb2RlTWluS2V5Rm9yT3JpZ2luKG9yaWdpbik7CisgICAgICAg
ICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gc3RvcEtleSA9IERhdGFiYXNlTmFtZUtleTo6ZW5jb2Rl
U3RvcEtleUZvck9yaWdpbihvcmlnaW4pOworICAgICAgICAgICAgT3duUHRyPExldmVsREJJdGVy
YXRvcj4gaXQgPSBkYi0+Y3JlYXRlSXRlcmF0b3IoKTsKKyAgICAgICAgICAgIGZvciAoaXQtPnNl
ZWsoc3RhcnRLZXkpOyBpdC0+aXNWYWxpZCgpICYmIGNvbXBhcmVLZXlzKGl0LT5rZXkoKSwgc3Rv
cEtleSkgPCAwOyBpdC0+bmV4dCgpKSB7CisgICAgICAgICAgICAgICAgVmVjdG9yPGNoYXI+IHZh
bHVlOworICAgICAgICAgICAgICAgIGJvb2wgb2sgPSB0cmFuc2FjdGlvbi0+Z2V0KGl0LT5rZXko
KSwgdmFsdWUpOworICAgICAgICAgICAgICAgIGlmICghb2spIHsKKyAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW50IGRhdGFiYXNlSWQgPSBk
ZWNvZGVJbnQodmFsdWUuYmVnaW4oKSwgdmFsdWUuZW5kKCkpOworICAgICAgICAgICAgICAgIFZl
Y3RvcjxjaGFyPiBpbnRWZXJzaW9uS2V5ID0gRGF0YWJhc2VNZXRhRGF0YUtleTo6ZW5jb2RlKGRh
dGFiYXNlSWQsIERhdGFiYXNlTWV0YURhdGFLZXk6OlVzZXJJbnRWZXJzaW9uKTsKKyAgICAgICAg
ICAgICAgICB0cmFuc2FjdGlvbi0+cHV0KGludFZlcnNpb25LZXksIGVuY29kZVZhckludChJREJE
YXRhYmFzZU1ldGFkYXRhOjpEZWZhdWx0SW50VmVyc2lvbikpOworICAgICAgICAgICAgICAgIG9r
ID0gdHJhbnNhY3Rpb24tPmdldChpdC0+a2V5KCksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICBp
ZiAoIW9rKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorICAgICAgICAgICAgYm9vbCBvayA9IHRyYW5zYWN0aW9uLT5jb21taXQoKTsKKyAg
ICAgICAgICAgIGlmICghb2spIHsKKyAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICAgICAgQVNTRVJUKHNjaGVtYVZlcnNpb24gPT0gMSk7CiAgICAgfQogCi0gICAgLy8g
RklYTUU6IEV2ZW50dWFsbHksIHdlJ2xsIG5lZWQgdG8gYmUgYWJsZSB0byB0cmFuc2l0aW9uIGJl
dHdlZW4gc2NoZW1hcy4KLSAgICBpZiAoc2NoZW1hVmVyc2lvbikKLSAgICAgICAgcmV0dXJuIGZh
bHNlOyAvLyBEb24ndCBrbm93IHdoYXQgdG8gZG8gd2l0aCB0aGlzIHZlcnNpb24uCi0KICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjA4LDcgKzI0Miw3IEBAIFBhc3NSZWZQdHI8SURCQmFja2lu
Z1N0b3JlPiBJREJMZXZlbERCQmFja2luZ1N0b3JlOjpvcGVuKFNlY3VyaXR5T3JpZ2luKiBzZWN1
cml0CiAgICAgUmVmUHRyPElEQkxldmVsREJCYWNraW5nU3RvcmU+IGJhY2tpbmdTdG9yZShhZG9w
dFJlZihuZXcgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZShmaWxlSWRlbnRpZmllciwgZmFjdG9yeSwg
ZGIucmVsZWFzZSgpKSkpOwogICAgIGJhY2tpbmdTdG9yZS0+bV9jb21wYXJhdG9yID0gY29tcGFy
YXRvci5yZWxlYXNlKCk7CiAKLSAgICBpZiAoIXNldFVwTWV0YWRhdGEoYmFja2luZ1N0b3JlLT5t
X2RiLmdldCgpKSkKKyAgICBpZiAoIXNldFVwTWV0YWRhdGEoYmFja2luZ1N0b3JlLT5tX2RiLmdl
dCgpLCBmaWxlSWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybiBQYXNzUmVmUHRyPElEQkJhY2tp
bmdTdG9yZT4oKTsKIAogICAgIHJldHVybiBiYWNraW5nU3RvcmUucmVsZWFzZSgpOwpAQCAtMjQ2
LDYgKzI4MCwxMiBAQCBib29sIElEQkxldmVsREJCYWNraW5nU3RvcmU6OmdldElEQkRhdGFiYXNl
TWV0YURhdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBTdHJpbmcmCiAgICAgaWYgKCFvaykKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCisgICAgb2sgPSBnZXRJbnQobV9kYi5nZXQoKSwgRGF0YWJhc2VN
ZXRhRGF0YUtleTo6ZW5jb2RlKGZvdW5kSWQsIERhdGFiYXNlTWV0YURhdGFLZXk6OlVzZXJJbnRW
ZXJzaW9uKSwgZm91bmRJbnRWZXJzaW9uKTsKKyAgICBpZiAoIW9rKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgaWYgKGZvdW5kSW50VmVyc2lvbiA9PSBJREJEYXRhYmFzZU1ldGFkYXRhOjpE
ZWZhdWx0SW50VmVyc2lvbikKKyAgICAgICAgZm91bmRJbnRWZXJzaW9uID0gSURCRGF0YWJhc2VN
ZXRhZGF0YTo6Tm9JbnRWZXJzaW9uOworCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTI3NSwx
MiArMzE1LDIyIEBAIGJvb2wgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlSURCRGF0YWJh
c2VNZXRhRGF0YShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBpZiAoIXB1dFN0cmluZyhtX2RiLmdldCgpLCBEYXRhYmFzZU1ldGFEYXRhS2V5Ojpl
bmNvZGUocm93SWQsIERhdGFiYXNlTWV0YURhdGFLZXk6OlVzZXJWZXJzaW9uKSwgdmVyc2lvbikp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoaW50VmVyc2lvbiA9PSBJREJEYXRhYmFz
ZU1ldGFkYXRhOjpOb0ludFZlcnNpb24pCisgICAgICAgIGludFZlcnNpb24gPSBJREJEYXRhYmFz
ZU1ldGFkYXRhOjpEZWZhdWx0SW50VmVyc2lvbjsKKyAgICBpZiAoIXB1dFZhckludChtX2RiLmdl
dCgpLCBEYXRhYmFzZU1ldGFEYXRhS2V5OjplbmNvZGUocm93SWQsIERhdGFiYXNlTWV0YURhdGFL
ZXk6OlVzZXJJbnRWZXJzaW9uKSwgaW50VmVyc2lvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjp1cGRh
dGVJREJEYXRhYmFzZUludFZlcnNpb24oaW50NjRfdCByb3dJZCwgaW50NjRfdCBpbnRWZXJzaW9u
KQogewotICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgYWN0dWFsbHkgZG8gc29tZXRoaW5nLiBodHRw
Oi8vd2tiLnVnLzkyODgzCisgICAgQVNTRVJUKG1fY3VycmVudFRyYW5zYWN0aW9uKTsKKyAgICAv
LyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gc3RyaWN0bHkgZ3JlYXRlciB0aGFuIDAgb25jZSB3ZSB0
aHJvdyBUeXBlRXJyb3IgZm9yCisgICAgLy8gYmFkIHZlcnNpb25zLgorICAgIEFTU0VSVF9XSVRI
X01FU1NBR0UoaW50VmVyc2lvbiA+PSAwLCAiaW50VmVyc2lvbiB3YXMgJWxsZCIsIHN0YXRpY19j
YXN0PGxvbmcgbG9uZz4oaW50VmVyc2lvbikpOworICAgIGlmICghcHV0VmFySW50KG1fY3VycmVu
dFRyYW5zYWN0aW9uLmdldCgpLCBEYXRhYmFzZU1ldGFEYXRhS2V5OjplbmNvZGUocm93SWQsIERh
dGFiYXNlTWV0YURhdGFLZXk6OlVzZXJJbnRWZXJzaW9uKSwgaW50VmVyc2lvbikpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQ29kaW5nLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQ29kaW5nLmgKaW5kZXggZDAyMWFk
ODZhYTEwNWM1MmNkNTA1YjMxZGEyZmIzOGY4Mjc3MTVkZi4uNWNhNTY5NWIzNmE3NTdiNzA0MDJk
YTQ1M2U3Zjk3MGY2MjQ3OGQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuaApAQCAtMTQxLDcgKzE0MSw4IEBAIHB1YmxpYzoK
ICAgICAgICAgT3JpZ2luTmFtZSA9IDAsCiAgICAgICAgIERhdGFiYXNlTmFtZSA9IDEsCiAgICAg
ICAgIFVzZXJWZXJzaW9uID0gMiwKLSAgICAgICAgTWF4T2JqZWN0U3RvcmVJZCA9IDMKKyAgICAg
ICAgTWF4T2JqZWN0U3RvcmVJZCA9IDMsCisgICAgICAgIFVzZXJJbnRWZXJzaW9uID0gNAogICAg
IH07CiAKICAgICBzdGF0aWMgVmVjdG9yPGNoYXI+IGVuY29kZShpbnQ2NF90IGRhdGFiYXNlSWQs
IE1ldGFEYXRhVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJNZXRhZGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
TWV0YWRhdGEuaAppbmRleCBkZDIzMDYyMGM3YzFmYjAxMWIzZjk5NDEwYmM4MmU3ZTZhOGY1M2Jl
Li4yZGM2NmU3ZDQ3NmFlYTY4NjQ5MGNlZWUxZjYwNWVmN2UzN2JhOGJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJNZXRhZGF0YS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk1ldGFkYXRhLmgKQEAgLTQyLDggKzQyLDEw
IEBAIHN0cnVjdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhOwogc3RydWN0IElEQkluZGV4TWV0YWRh
dGE7CiAKIHN0cnVjdCBJREJEYXRhYmFzZU1ldGFkYXRhIHsKKyAgICAvLyBGSVhNRTogVGhlc2Ug
Y2FuIHByb2JhYmx5IGJlIGNvbGxhcHNlZCBpbnRvIDAuCiAgICAgZW51bSB7Ci0gICAgICAgIE5v
SW50VmVyc2lvbiA9IC0xCisgICAgICAgIE5vSW50VmVyc2lvbiA9IC0xLAorICAgICAgICBEZWZh
dWx0SW50VmVyc2lvbiA9IDAKICAgICB9OwogCiAgICAgSURCRGF0YWJhc2VNZXRhZGF0YSgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>