<?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>68554</bug_id>
          
          <creation_ts>2011-09-21 11:59:18 -0700</creation_ts>
          <short_desc>IndexedDB: compare strings without decoding</short_desc>
          <delta_ts>2011-09-21 16:43:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>dgrogan</cc>
    
    <cc>hans</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>471007</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-09-21 11:59:18 -0700</bug_when>
    <thetext>IndexedDB: compare strings without decoding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471014</commentid>
    <comment_count>1</comment_count>
      <attachid>108202</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-09-21 12:03:17 -0700</bug_when>
    <thetext>Created attachment 108202
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471116</commentid>
    <comment_count>2</comment_count>
      <attachid>108202</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-09-21 13:29:40 -0700</bug_when>
    <thetext>Comment on attachment 108202
Patch

Looks good! Just a couple of nits.

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

&gt; ChangeLog:6
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=68554

The ChangeLog looks a little unusual. It&apos;s normally the title of the patch (one line), followed by the URL, &quot;reviewed by...&quot;, and then a description.

&gt; Source/WebCore/storage/IDBLevelDBCoding.cpp:304
&gt; +                                    const char* q, const char* limitQ)

I don&apos;t think there&apos;s any need for a line break here

&gt; Source/WebCore/storage/IDBLevelDBCoding.cpp:316
&gt; +    int x = memcmp(p, q, lmin * 2);

feel free to do &quot;if (int x = memcmp(...))&quot;. I like it because it saves a line and keeps x in the inner scope

&gt; Source/WebCore/storage/IDBLevelDBCoding.cpp:480
&gt; +        return compareEncodedStringsWithLength(p, limitA, q, limitB);

i suppose we can now remove the declaration of s and t above?

&gt; Source/WebCore/storage/IDBLevelDBCoding.h:57
&gt; +                                    const char* q, const char* limitQ);

no line break</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471125</commentid>
    <comment_count>3</comment_count>
      <attachid>108226</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-09-21 13:44:23 -0700</bug_when>
    <thetext>Created attachment 108226
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471146</commentid>
    <comment_count>4</comment_count>
      <attachid>108231</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-09-21 14:08:40 -0700</bug_when>
    <thetext>Created attachment 108231
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471154</commentid>
    <comment_count>5</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-09-21 14:19:52 -0700</bug_when>
    <thetext>Looks good to me.

Tony, would you do the official reviewing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471159</commentid>
    <comment_count>6</comment_count>
      <attachid>108231</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-09-21 14:36:00 -0700</bug_when>
    <thetext>Comment on attachment 108231
Patch

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

&gt; Source/WebCore/storage/IDBLevelDBCoding.cpp:303
&gt; +int compareEncodedStringsWithLength(const char* p, const char* limitP, const char* q, const char* limitQ)

I find these 1 letter variable names hard to read, but it looks like that&apos;s how all the code around it is.  It would be great to have a follow up patch that uses more descriptive variable names in this file.

&gt; Source/WebCore/storage/IDBLevelDBCoding.cpp:314
&gt; +    const unsigned lmin = lenP &lt; lenQ ? lenP : lenQ;

Nit: Should lmin be a size_t since that&apos;s what memcmp takes?  Also, it might be more readable to explicitly static_cast&lt;size_t&gt;() after asserting that lenP and lenQ are &gt;= 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471174</commentid>
    <comment_count>7</comment_count>
      <attachid>108239</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-09-21 14:51:03 -0700</bug_when>
    <thetext>Created attachment 108239
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471260</commentid>
    <comment_count>8</comment_count>
      <attachid>108239</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-21 16:43:25 -0700</bug_when>
    <thetext>Comment on attachment 108239
Patch

Clearing flags on attachment: 108239

Committed r95682: &lt;http://trac.webkit.org/changeset/95682&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471261</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-21 16:43:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108202</attachid>
            <date>2011-09-21 12:03:17 -0700</date>
            <delta_ts>2011-09-21 13:44:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68554-20110921120316.patch</filename>
            <type>text/plain</type>
            <size>6017</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDk1NjU2
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDkt
MjEgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXNvbHZl
IEZJWE1FIGluIEluZGV4ZWREQjogY29tcGFyZSBzdHJpbmdzIHdpdGhvdXQgZGVjb2RpbmcuCisg
ICAgICAgIFRoaXMgd2FzIGlkZW50aWZpZWQgYXMgYSBob3RzcG90IGR1cmluZyBwcm9maWxpbmcs
IGFuZCB5aWVsZHMKKyAgICAgICAgYSBzbWFsbCBidXQgbWVhc3VyYWJsZSBwZXJmb3JtYW5jZSBp
bXByb3ZlbWVudCBpbiBJbmRleGVkREIgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NTU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJD
b2RpbmcuY3BwOgorICAgICAgICAqIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkNv
ZGluZy5oOgorICAgICAgICAqIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCTGV2ZWxE
QkNvZGluZ1Rlc3QuY3BwOgorCiAyMDExLTA5LTIwICBDaGFuZ1Nlb2sgT2ggIDxzaGl2YW1pZG93
QGdtYWlsLmNvbT4KIAogICAgICAgICBbR1RLXSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgc3VwcG9y
dCBmb3IgZ3RrIHBvcnQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkNv
ZGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERC
Q29kaW5nLmNwcAkocmV2aXNpb24gOTU1ODApCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lE
QkxldmVsREJDb2RpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDAsNiArMzAwLDI5IEBAIGNv
bnN0IGNoYXIqIGRlY29kZVN0cmluZ1dpdGhMZW5ndGgoY29uc3QKICAgICByZXR1cm4gcDsKIH0K
IAoraW50IGNvbXBhcmVFbmNvZGVkU3RyaW5nc1dpdGhMZW5ndGgoY29uc3QgY2hhciogcCwgY29u
c3QgY2hhciogbGltaXRQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciogcSwgY29uc3QgY2hhciogbGltaXRRKQoreworICAgIEFTU0VSVChsaW1pdFAgPj0g
cCk7CisgICAgQVNTRVJUKGxpbWl0USA+PSBxKTsKKyAgICBpbnQ2NF90IGxlblAsIGxlblE7Cisg
ICAgcCA9IGRlY29kZVZhckludChwLCBsaW1pdFAsIGxlblApOworICAgIHEgPSBkZWNvZGVWYXJJ
bnQocSwgbGltaXRRLCBsZW5RKTsKKyAgICBBU1NFUlQocCAmJiBxKTsKKyAgICBBU1NFUlQocCAr
IGxlblAgKiAyIDw9IGxpbWl0UCk7CisgICAgQVNTRVJUKHEgKyBsZW5RICogMiA8PSBsaW1pdFEp
OworCisgICAgY29uc3QgdW5zaWduZWQgbG1pbiA9IGxlblAgPCBsZW5RID8gbGVuUCA6IGxlblE7
CisgICAgaW50IHggPSBtZW1jbXAocCwgcSwgbG1pbiAqIDIpOworICAgIGlmICh4KQorICAgICAg
ICByZXR1cm4geDsKKworICAgIGlmIChsZW5QID09IGxlblEpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgcmV0dXJuIChsZW5QID4gbGVuUSkgPyAxIDogLTE7Cit9CisKIFZlY3RvcjxjaGFyPiBl
bmNvZGVEb3VibGUoZG91YmxlIHgpCiB7CiAgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIG5pY2Ug
aWYgd2UgY291bGQgYmUgYnl0ZSBvcmRlciBpbmRlcGVuZGVudC4KQEAgLTQ1NCwxMSArNDc3LDcg
QEAgaW50IGNvbXBhcmVFbmNvZGVkSURCS2V5cyhjb25zdCBWZWN0b3I8YwogICAgICAgICByZXR1
cm4gMDsKICAgICBjYXNlIGtJREJLZXlTdHJpbmdUeXBlQnl0ZToKICAgICAgICAgLy8gU3RyaW5n
IHR5cGUuCi0gICAgICAgIHAgPSBkZWNvZGVTdHJpbmdXaXRoTGVuZ3RoKHAsIGxpbWl0QSwgcyk7
IC8vIEZJWE1FOiBDb21wYXJlIHdpdGhvdXQgYWN0dWFsbHkgZGVjb2RpbmcgdGhlIFN0cmluZyEK
LSAgICAgICAgQVNTRVJUKHApOwotICAgICAgICBxID0gZGVjb2RlU3RyaW5nV2l0aExlbmd0aChx
LCBsaW1pdEIsIHQpOwotICAgICAgICBBU1NFUlQocSk7Ci0gICAgICAgIHJldHVybiBjb2RlUG9p
bnRDb21wYXJlKHMsIHQpOworICAgICAgICByZXR1cm4gY29tcGFyZUVuY29kZWRTdHJpbmdzV2l0
aExlbmd0aChwLCBsaW1pdEEsIHEsIGxpbWl0Qik7CiAgICAgY2FzZSBrSURCS2V5RGF0ZVR5cGVC
eXRlOgogICAgIGNhc2Uga0lEQktleU51bWJlclR5cGVCeXRlOgogICAgICAgICAvLyBEYXRlIG9y
IG51bWJlci4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkNvZGluZy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkNvZGluZy5o
CShyZXZpc2lvbiA5NTU4MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkNv
ZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw4IEBAIFZlY3RvcjxjaGFyPiBlbmNv
ZGVTdHJpbmcoY29uc3QgU3RyaW5nJikKIFN0cmluZyBkZWNvZGVTdHJpbmcoY29uc3QgY2hhciog
cCwgY29uc3QgY2hhciogZW5kKTsKIFZlY3RvcjxjaGFyPiBlbmNvZGVTdHJpbmdXaXRoTGVuZ3Ro
KGNvbnN0IFN0cmluZyYpOwogY29uc3QgY2hhciogZGVjb2RlU3RyaW5nV2l0aExlbmd0aChjb25z
dCBjaGFyKiBwLCBjb25zdCBjaGFyKiBsaW1pdCwgU3RyaW5nJiBmb3VuZFN0cmluZyk7CitpbnQg
Y29tcGFyZUVuY29kZWRTdHJpbmdzV2l0aExlbmd0aChjb25zdCBjaGFyKiBwLCBjb25zdCBjaGFy
KiBsaW1pdFAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
KiBxLCBjb25zdCBjaGFyKiBsaW1pdFEpOwogVmVjdG9yPGNoYXI+IGVuY29kZURvdWJsZShkb3Vi
bGUpOwogY29uc3QgY2hhciogZGVjb2RlRG91YmxlKGNvbnN0IGNoYXIqIHAsIGNvbnN0IGNoYXIq
IGxpbWl0LCBkb3VibGUqKTsKIFZlY3RvcjxjaGFyPiBlbmNvZGVJREJLZXkoY29uc3QgSURCS2V5
Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkxldmVsREJDb2RpbmdU
ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkxl
dmVsREJDb2RpbmdUZXN0LmNwcAkocmV2aXNpb24gOTU1ODApCisrKyBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0lEQkxldmVsREJDb2RpbmdUZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjMwLDYgKzIzMCw1NSBAQCBURVNUKElEQkxldmVsREJDb2RpbmdUZXN0LCBEZWNvZGVTdHJpbmdX
CiAgICAgfQogfQogCitURVNUKElEQkxldmVsREJDb2RpbmdUZXN0LCBDb21wYXJlRW5jb2RlZFN0
cmluZ3NXaXRoTGVuZ3RoKQoreworICAgIGNvbnN0IFVDaGFyIHRlc3RTdHJpbmdBW10gPSB7MHgx
MDAwLCAweDEwMDAsICdcMCd9OworICAgIGNvbnN0IFVDaGFyIHRlc3RTdHJpbmdCW10gPSB7MHgx
MDAwLCAweDEwMDAsIDB4MTAwMCwgJ1wwJ307CisgICAgY29uc3QgVUNoYXIgdGVzdFN0cmluZ0Nb
XSA9IHsweDEwMDAsIDB4MTAwMCwgMHgxMDAxLCAnXDAnfTsKKyAgICBjb25zdCBVQ2hhciB0ZXN0
U3RyaW5nRFtdID0gezB4MTAwMSwgMHgxMDAwLCAweDEwMDAsICdcMCd9OworICAgIGNvbnN0IFVD
aGFyIHRlc3RTdHJpbmdFW10gPSB7MHhkODM0LCAweGRkMWUsICdcMCd9OworICAgIGNvbnN0IFVD
aGFyIHRlc3RTdHJpbmdGW10gPSB7MHhmZmZkLCAnXDAnfTsKKworICAgIFZlY3RvcjxTdHJpbmc+
IHRlc3RDYXNlczsKKyAgICB0ZXN0Q2FzZXMuYXBwZW5kKFN0cmluZygiIikpOworICAgIHRlc3RD
YXNlcy5hcHBlbmQoU3RyaW5nKCJhIikpOworICAgIHRlc3RDYXNlcy5hcHBlbmQoU3RyaW5nKCJi
IikpOworICAgIHRlc3RDYXNlcy5hcHBlbmQoU3RyaW5nKCJiYWFhIikpOworICAgIHRlc3RDYXNl
cy5hcHBlbmQoU3RyaW5nKCJiYWFiIikpOworICAgIHRlc3RDYXNlcy5hcHBlbmQoU3RyaW5nKCJj
IikpOworICAgIHRlc3RDYXNlcy5hcHBlbmQoU3RyaW5nKHRlc3RTdHJpbmdBKSk7CisgICAgdGVz
dENhc2VzLmFwcGVuZChTdHJpbmcodGVzdFN0cmluZ0IpKTsKKyAgICB0ZXN0Q2FzZXMuYXBwZW5k
KFN0cmluZyh0ZXN0U3RyaW5nQykpOworICAgIHRlc3RDYXNlcy5hcHBlbmQoU3RyaW5nKHRlc3RT
dHJpbmdEKSk7CisgICAgdGVzdENhc2VzLmFwcGVuZChTdHJpbmcodGVzdFN0cmluZ0UpKTsKKyAg
ICB0ZXN0Q2FzZXMuYXBwZW5kKFN0cmluZyh0ZXN0U3RyaW5nRikpOworCisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCB0ZXN0Q2FzZXMuc2l6ZSgpIC0gMTsgKytpKSB7CisgICAgICAgIFN0cmlu
ZyBhID0gdGVzdENhc2VzW2ldOworICAgICAgICBTdHJpbmcgYiA9IHRlc3RDYXNlc1tpICsgMV07
CisKKyAgICAgICAgRVhQRUNUX0xUKGNvZGVQb2ludENvbXBhcmUoYSwgYiksIDApOworICAgICAg
ICBFWFBFQ1RfR1QoY29kZVBvaW50Q29tcGFyZShiLCBhKSwgMCk7CisgICAgICAgIEVYUEVDVF9F
UShjb2RlUG9pbnRDb21wYXJlKGEsIGEpLCAwKTsKKyAgICAgICAgRVhQRUNUX0VRKGNvZGVQb2lu
dENvbXBhcmUoYiwgYiksIDApOworCisgICAgICAgIFZlY3RvcjxjaGFyPiBlbmNvZGVkQSA9IGVu
Y29kZVN0cmluZ1dpdGhMZW5ndGgoYSk7CisgICAgICAgIEVYUEVDVF9UUlVFKGVuY29kZWRBLnNp
emUoKSk7CisgICAgICAgIFZlY3RvcjxjaGFyPiBlbmNvZGVkQiA9IGVuY29kZVN0cmluZ1dpdGhM
ZW5ndGgoYik7CisgICAgICAgIEVYUEVDVF9UUlVFKGVuY29kZWRBLnNpemUoKSk7CisKKyAgICAg
ICAgY29uc3QgY2hhciogcCA9IGVuY29kZWRBLmRhdGEoKTsKKyAgICAgICAgY29uc3QgY2hhciog
bGltaXRQID0gcCArIGVuY29kZWRBLnNpemUoKTsKKyAgICAgICAgY29uc3QgY2hhciogcSA9IGVu
Y29kZWRCLmRhdGEoKTsKKyAgICAgICAgY29uc3QgY2hhciogbGltaXRRID0gcSArIGVuY29kZWRC
LnNpemUoKTsKKworICAgICAgICBFWFBFQ1RfTFQoY29tcGFyZUVuY29kZWRTdHJpbmdzV2l0aExl
bmd0aChwLCBsaW1pdFAsIHEsIGxpbWl0USksIDApOworICAgICAgICBFWFBFQ1RfR1QoY29tcGFy
ZUVuY29kZWRTdHJpbmdzV2l0aExlbmd0aChxLCBsaW1pdFEsIHAsIGxpbWl0UCksIDApOworICAg
ICAgICBFWFBFQ1RfRVEoY29tcGFyZUVuY29kZWRTdHJpbmdzV2l0aExlbmd0aChwLCBsaW1pdFAs
IHAsIGxpbWl0UCksIDApOworICAgICAgICBFWFBFQ1RfRVEoY29tcGFyZUVuY29kZWRTdHJpbmdz
V2l0aExlbmd0aChxLCBsaW1pdFEsIHEsIGxpbWl0USksIDApOworICAgIH0KK30KKwogVEVTVChJ
REJMZXZlbERCQ29kaW5nVGVzdCwgRW5jb2RlRG91YmxlKQogewogICAgIEVYUEVDVF9FUShzdGF0
aWNfY2FzdDxzaXplX3Q+KDgpLCBlbmNvZGVEb3VibGUoMCkuc2l6ZSgpKTsKQEAgLTMwMiw2ICsz
NTEsOCBAQCBURVNUKElEQkxldmVsREJDb2RpbmdUZXN0LCBFeHRyYWN0QW5kQ29tCiAgICAga2V5
cy5hcHBlbmQoSURCS2V5OjpjcmVhdGVTdHJpbmcoImEiKSk7CiAgICAga2V5cy5hcHBlbmQoSURC
S2V5OjpjcmVhdGVTdHJpbmcoImIiKSk7CiAgICAga2V5cy5hcHBlbmQoSURCS2V5OjpjcmVhdGVT
dHJpbmcoImJhYWEiKSk7CisgICAga2V5cy5hcHBlbmQoSURCS2V5OjpjcmVhdGVTdHJpbmcoImJh
YWIiKSk7CisgICAga2V5cy5hcHBlbmQoSURCS2V5OjpjcmVhdGVTdHJpbmcoImMiKSk7CiAKICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtleXMuc2l6ZSgpIC0gMTsgKytpKSB7CiAgICAgICAg
IFJlZlB0cjxJREJLZXk+IGtleUEgPSBrZXlzW2ldOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108226</attachid>
            <date>2011-09-21 13:44:23 -0700</date>
            <delta_ts>2011-09-21 14:08:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68554-20110921134422.patch</filename>
            <type>text/plain</type>
            <size>6145</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDk1NjU2
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDkt
MjEgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVk
REI6IGNvbXBhcmUgc3RyaW5ncyB3aXRob3V0IGRlY29kaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODU1NAorICAgICAgICBSZXNvbHZlcyBhIEZJ
WE1FIGluIEluZGV4ZWREQiB0aGF0IHdhcyBhbHNvIGlkZW50aWZpZWQgYXMgYSBob3RzcG90Cisg
ICAgICAgIGR1cmluZyBwcm9maWxpbmcuIFlpZWxkcyBhIHNtYWxsIHBlcmZvcm1hbmNlIGltcHJv
dmVtZW50LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQ29kaW5nLmNwcDoKKyAgICAgICAg
KiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJDb2RpbmcuaDoKKyAgICAgICAgKiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkxldmVsREJDb2RpbmdUZXN0LmNwcDoKKwog
MjAxMS0wOS0yMCAgQ2hhbmdTZW9rIE9oICA8c2hpdmFtaWRvd0BnbWFpbC5jb20+CiAKICAgICAg
ICAgW0dUS10gcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHN1cHBvcnQgZm9yIGd0ayBwb3J0CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJDb2RpbmcuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkNvZGluZy5jcHAJKHJldmlzaW9u
IDk1NTgwKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQ29kaW5nLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzAwLDYgKzMwMCwyNyBAQCBjb25zdCBjaGFyKiBkZWNvZGVTdHJp
bmdXaXRoTGVuZ3RoKGNvbnN0CiAgICAgcmV0dXJuIHA7CiB9CiAKK2ludCBjb21wYXJlRW5jb2Rl
ZFN0cmluZ3NXaXRoTGVuZ3RoKGNvbnN0IGNoYXIqIHAsIGNvbnN0IGNoYXIqIGxpbWl0UCwgY29u
c3QgY2hhciogcSwgY29uc3QgY2hhciogbGltaXRRKQoreworICAgIEFTU0VSVChsaW1pdFAgPj0g
cCk7CisgICAgQVNTRVJUKGxpbWl0USA+PSBxKTsKKyAgICBpbnQ2NF90IGxlblAsIGxlblE7Cisg
ICAgcCA9IGRlY29kZVZhckludChwLCBsaW1pdFAsIGxlblApOworICAgIHEgPSBkZWNvZGVWYXJJ
bnQocSwgbGltaXRRLCBsZW5RKTsKKyAgICBBU1NFUlQocCAmJiBxKTsKKyAgICBBU1NFUlQocCAr
IGxlblAgKiAyIDw9IGxpbWl0UCk7CisgICAgQVNTRVJUKHEgKyBsZW5RICogMiA8PSBsaW1pdFEp
OworCisgICAgY29uc3QgdW5zaWduZWQgbG1pbiA9IGxlblAgPCBsZW5RID8gbGVuUCA6IGxlblE7
CisgICAgaWYgKGludCB4ID0gbWVtY21wKHAsIHEsIGxtaW4gKiAyKSkKKyAgICAgICAgcmV0dXJu
IHg7CisKKyAgICBpZiAobGVuUCA9PSBsZW5RKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJl
dHVybiAobGVuUCA+IGxlblEpID8gMSA6IC0xOworfQorCiBWZWN0b3I8Y2hhcj4gZW5jb2RlRG91
YmxlKGRvdWJsZSB4KQogewogICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBuaWNlIGlmIHdlIGNv
dWxkIGJlIGJ5dGUgb3JkZXIgaW5kZXBlbmRlbnQuCkBAIC00NDEsNyArNDYyLDYgQEAgaW50IGNv
bXBhcmVFbmNvZGVkSURCS2V5cyhjb25zdCBWZWN0b3I8YwogICAgIHVuc2lnbmVkIGNoYXIgdHlw
ZUEgPSAqcCsrOwogICAgIHVuc2lnbmVkIGNoYXIgdHlwZUIgPSAqcSsrOwogCi0gICAgU3RyaW5n
IHMsIHQ7CiAgICAgZG91YmxlIGQsIGU7CiAKICAgICBpZiAoaW50IHggPSB0eXBlQiAtIHR5cGVB
KSAvLyBGSVhNRTogTm90ZSB0aGUgc3VidGxlbmVzcyEKQEAgLTQ1NCwxMSArNDc0LDcgQEAgaW50
IGNvbXBhcmVFbmNvZGVkSURCS2V5cyhjb25zdCBWZWN0b3I8YwogICAgICAgICByZXR1cm4gMDsK
ICAgICBjYXNlIGtJREJLZXlTdHJpbmdUeXBlQnl0ZToKICAgICAgICAgLy8gU3RyaW5nIHR5cGUu
Ci0gICAgICAgIHAgPSBkZWNvZGVTdHJpbmdXaXRoTGVuZ3RoKHAsIGxpbWl0QSwgcyk7IC8vIEZJ
WE1FOiBDb21wYXJlIHdpdGhvdXQgYWN0dWFsbHkgZGVjb2RpbmcgdGhlIFN0cmluZyEKLSAgICAg
ICAgQVNTRVJUKHApOwotICAgICAgICBxID0gZGVjb2RlU3RyaW5nV2l0aExlbmd0aChxLCBsaW1p
dEIsIHQpOwotICAgICAgICBBU1NFUlQocSk7Ci0gICAgICAgIHJldHVybiBjb2RlUG9pbnRDb21w
YXJlKHMsIHQpOworICAgICAgICByZXR1cm4gY29tcGFyZUVuY29kZWRTdHJpbmdzV2l0aExlbmd0
aChwLCBsaW1pdEEsIHEsIGxpbWl0Qik7CiAgICAgY2FzZSBrSURCS2V5RGF0ZVR5cGVCeXRlOgog
ICAgIGNhc2Uga0lEQktleU51bWJlclR5cGVCeXRlOgogICAgICAgICAvLyBEYXRlIG9yIG51bWJl
ci4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkNvZGluZy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkNvZGluZy5oCShyZXZp
c2lvbiA5NTU4MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkNvZGluZy5o
CSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIFZlY3RvcjxjaGFyPiBlbmNvZGVTdHJp
bmcoY29uc3QgU3RyaW5nJikKIFN0cmluZyBkZWNvZGVTdHJpbmcoY29uc3QgY2hhciogcCwgY29u
c3QgY2hhciogZW5kKTsKIFZlY3RvcjxjaGFyPiBlbmNvZGVTdHJpbmdXaXRoTGVuZ3RoKGNvbnN0
IFN0cmluZyYpOwogY29uc3QgY2hhciogZGVjb2RlU3RyaW5nV2l0aExlbmd0aChjb25zdCBjaGFy
KiBwLCBjb25zdCBjaGFyKiBsaW1pdCwgU3RyaW5nJiBmb3VuZFN0cmluZyk7CitpbnQgY29tcGFy
ZUVuY29kZWRTdHJpbmdzV2l0aExlbmd0aChjb25zdCBjaGFyKiBwLCBjb25zdCBjaGFyKiBsaW1p
dFAsIGNvbnN0IGNoYXIqIHEsIGNvbnN0IGNoYXIqIGxpbWl0USk7CiBWZWN0b3I8Y2hhcj4gZW5j
b2RlRG91YmxlKGRvdWJsZSk7CiBjb25zdCBjaGFyKiBkZWNvZGVEb3VibGUoY29uc3QgY2hhciog
cCwgY29uc3QgY2hhciogbGltaXQsIGRvdWJsZSopOwogVmVjdG9yPGNoYXI+IGVuY29kZUlEQktl
eShjb25zdCBJREJLZXkmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURC
TGV2ZWxEQkNvZGluZ1Rlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvSURCTGV2ZWxEQkNvZGluZ1Rlc3QuY3BwCShyZXZpc2lvbiA5NTU4MCkKKysrIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCTGV2ZWxEQkNvZGluZ1Rlc3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMzAsNiArMjMwLDU1IEBAIFRFU1QoSURCTGV2ZWxEQkNvZGluZ1Rlc3Qs
IERlY29kZVN0cmluZ1cKICAgICB9CiB9CiAKK1RFU1QoSURCTGV2ZWxEQkNvZGluZ1Rlc3QsIENv
bXBhcmVFbmNvZGVkU3RyaW5nc1dpdGhMZW5ndGgpCit7CisgICAgY29uc3QgVUNoYXIgdGVzdFN0
cmluZ0FbXSA9IHsweDEwMDAsIDB4MTAwMCwgJ1wwJ307CisgICAgY29uc3QgVUNoYXIgdGVzdFN0
cmluZ0JbXSA9IHsweDEwMDAsIDB4MTAwMCwgMHgxMDAwLCAnXDAnfTsKKyAgICBjb25zdCBVQ2hh
ciB0ZXN0U3RyaW5nQ1tdID0gezB4MTAwMCwgMHgxMDAwLCAweDEwMDEsICdcMCd9OworICAgIGNv
bnN0IFVDaGFyIHRlc3RTdHJpbmdEW10gPSB7MHgxMDAxLCAweDEwMDAsIDB4MTAwMCwgJ1wwJ307
CisgICAgY29uc3QgVUNoYXIgdGVzdFN0cmluZ0VbXSA9IHsweGQ4MzQsIDB4ZGQxZSwgJ1wwJ307
CisgICAgY29uc3QgVUNoYXIgdGVzdFN0cmluZ0ZbXSA9IHsweGZmZmQsICdcMCd9OworCisgICAg
VmVjdG9yPFN0cmluZz4gdGVzdENhc2VzOworICAgIHRlc3RDYXNlcy5hcHBlbmQoU3RyaW5nKCIi
KSk7CisgICAgdGVzdENhc2VzLmFwcGVuZChTdHJpbmcoImEiKSk7CisgICAgdGVzdENhc2VzLmFw
cGVuZChTdHJpbmcoImIiKSk7CisgICAgdGVzdENhc2VzLmFwcGVuZChTdHJpbmcoImJhYWEiKSk7
CisgICAgdGVzdENhc2VzLmFwcGVuZChTdHJpbmcoImJhYWIiKSk7CisgICAgdGVzdENhc2VzLmFw
cGVuZChTdHJpbmcoImMiKSk7CisgICAgdGVzdENhc2VzLmFwcGVuZChTdHJpbmcodGVzdFN0cmlu
Z0EpKTsKKyAgICB0ZXN0Q2FzZXMuYXBwZW5kKFN0cmluZyh0ZXN0U3RyaW5nQikpOworICAgIHRl
c3RDYXNlcy5hcHBlbmQoU3RyaW5nKHRlc3RTdHJpbmdDKSk7CisgICAgdGVzdENhc2VzLmFwcGVu
ZChTdHJpbmcodGVzdFN0cmluZ0QpKTsKKyAgICB0ZXN0Q2FzZXMuYXBwZW5kKFN0cmluZyh0ZXN0
U3RyaW5nRSkpOworICAgIHRlc3RDYXNlcy5hcHBlbmQoU3RyaW5nKHRlc3RTdHJpbmdGKSk7CisK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRlc3RDYXNlcy5zaXplKCkgLSAxOyArK2kpIHsK
KyAgICAgICAgU3RyaW5nIGEgPSB0ZXN0Q2FzZXNbaV07CisgICAgICAgIFN0cmluZyBiID0gdGVz
dENhc2VzW2kgKyAxXTsKKworICAgICAgICBFWFBFQ1RfTFQoY29kZVBvaW50Q29tcGFyZShhLCBi
KSwgMCk7CisgICAgICAgIEVYUEVDVF9HVChjb2RlUG9pbnRDb21wYXJlKGIsIGEpLCAwKTsKKyAg
ICAgICAgRVhQRUNUX0VRKGNvZGVQb2ludENvbXBhcmUoYSwgYSksIDApOworICAgICAgICBFWFBF
Q1RfRVEoY29kZVBvaW50Q29tcGFyZShiLCBiKSwgMCk7CisKKyAgICAgICAgVmVjdG9yPGNoYXI+
IGVuY29kZWRBID0gZW5jb2RlU3RyaW5nV2l0aExlbmd0aChhKTsKKyAgICAgICAgRVhQRUNUX1RS
VUUoZW5jb2RlZEEuc2l6ZSgpKTsKKyAgICAgICAgVmVjdG9yPGNoYXI+IGVuY29kZWRCID0gZW5j
b2RlU3RyaW5nV2l0aExlbmd0aChiKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoZW5jb2RlZEEuc2l6
ZSgpKTsKKworICAgICAgICBjb25zdCBjaGFyKiBwID0gZW5jb2RlZEEuZGF0YSgpOworICAgICAg
ICBjb25zdCBjaGFyKiBsaW1pdFAgPSBwICsgZW5jb2RlZEEuc2l6ZSgpOworICAgICAgICBjb25z
dCBjaGFyKiBxID0gZW5jb2RlZEIuZGF0YSgpOworICAgICAgICBjb25zdCBjaGFyKiBsaW1pdFEg
PSBxICsgZW5jb2RlZEIuc2l6ZSgpOworCisgICAgICAgIEVYUEVDVF9MVChjb21wYXJlRW5jb2Rl
ZFN0cmluZ3NXaXRoTGVuZ3RoKHAsIGxpbWl0UCwgcSwgbGltaXRRKSwgMCk7CisgICAgICAgIEVY
UEVDVF9HVChjb21wYXJlRW5jb2RlZFN0cmluZ3NXaXRoTGVuZ3RoKHEsIGxpbWl0USwgcCwgbGlt
aXRQKSwgMCk7CisgICAgICAgIEVYUEVDVF9FUShjb21wYXJlRW5jb2RlZFN0cmluZ3NXaXRoTGVu
Z3RoKHAsIGxpbWl0UCwgcCwgbGltaXRQKSwgMCk7CisgICAgICAgIEVYUEVDVF9FUShjb21wYXJl
RW5jb2RlZFN0cmluZ3NXaXRoTGVuZ3RoKHEsIGxpbWl0USwgcSwgbGltaXRRKSwgMCk7CisgICAg
fQorfQorCiBURVNUKElEQkxldmVsREJDb2RpbmdUZXN0LCBFbmNvZGVEb3VibGUpCiB7CiAgICAg
RVhQRUNUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4oOCksIGVuY29kZURvdWJsZSgwKS5zaXplKCkp
OwpAQCAtMzAyLDYgKzM1MSw4IEBAIFRFU1QoSURCTGV2ZWxEQkNvZGluZ1Rlc3QsIEV4dHJhY3RB
bmRDb20KICAgICBrZXlzLmFwcGVuZChJREJLZXk6OmNyZWF0ZVN0cmluZygiYSIpKTsKICAgICBr
ZXlzLmFwcGVuZChJREJLZXk6OmNyZWF0ZVN0cmluZygiYiIpKTsKICAgICBrZXlzLmFwcGVuZChJ
REJLZXk6OmNyZWF0ZVN0cmluZygiYmFhYSIpKTsKKyAgICBrZXlzLmFwcGVuZChJREJLZXk6OmNy
ZWF0ZVN0cmluZygiYmFhYiIpKTsKKyAgICBrZXlzLmFwcGVuZChJREJLZXk6OmNyZWF0ZVN0cmlu
ZygiYyIpKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5cy5zaXplKCkgLSAxOyAr
K2kpIHsKICAgICAgICAgUmVmUHRyPElEQktleT4ga2V5QSA9IGtleXNbaV07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108231</attachid>
            <date>2011-09-21 14:08:40 -0700</date>
            <delta_ts>2011-09-21 14:51:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68554-20110921140839.patch</filename>
            <type>text/plain</type>
            <size>6147</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDk1NjU2
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDkt
MjEgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVk
REI6IGNvbXBhcmUgc3RyaW5ncyB3aXRob3V0IGRlY29kaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODU1NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc29sdmVzIGEgRklYTUUgaW4gSW5kZXhlZERC
IHRoYXQgd2FzIGFsc28gaWRlbnRpZmllZCBhcyBhIGhvdHNwb3QKKyAgICAgICAgZHVyaW5nIHBy
b2ZpbGluZy4gWWllbGRzIGEgc21hbGwgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQuCisKKyAgICAg
ICAgKiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJDb2RpbmcuY3BwOgorICAgICAg
ICAqIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkNvZGluZy5oOgorICAgICAgICAq
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCTGV2ZWxEQkNvZGluZ1Rlc3QuY3BwOgor
CiAyMDExLTA5LTIwICBDaGFuZ1Nlb2sgT2ggIDxzaGl2YW1pZG93QGdtYWlsLmNvbT4KIAogICAg
ICAgICBbR1RLXSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgc3VwcG9ydCBmb3IgZ3RrIHBvcnQKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkNvZGluZy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQ29kaW5nLmNwcAkocmV2aXNp
b24gOTU1ODApCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJDb2RpbmcuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMDAsNiArMzAwLDI3IEBAIGNvbnN0IGNoYXIqIGRlY29kZVN0
cmluZ1dpdGhMZW5ndGgoY29uc3QKICAgICByZXR1cm4gcDsKIH0KIAoraW50IGNvbXBhcmVFbmNv
ZGVkU3RyaW5nc1dpdGhMZW5ndGgoY29uc3QgY2hhciogcCwgY29uc3QgY2hhciogbGltaXRQLCBj
b25zdCBjaGFyKiBxLCBjb25zdCBjaGFyKiBsaW1pdFEpCit7CisgICAgQVNTRVJUKGxpbWl0UCA+
PSBwKTsKKyAgICBBU1NFUlQobGltaXRRID49IHEpOworICAgIGludDY0X3QgbGVuUCwgbGVuUTsK
KyAgICBwID0gZGVjb2RlVmFySW50KHAsIGxpbWl0UCwgbGVuUCk7CisgICAgcSA9IGRlY29kZVZh
ckludChxLCBsaW1pdFEsIGxlblEpOworICAgIEFTU0VSVChwICYmIHEpOworICAgIEFTU0VSVChw
ICsgbGVuUCAqIDIgPD0gbGltaXRQKTsKKyAgICBBU1NFUlQocSArIGxlblEgKiAyIDw9IGxpbWl0
USk7CisKKyAgICBjb25zdCB1bnNpZ25lZCBsbWluID0gbGVuUCA8IGxlblEgPyBsZW5QIDogbGVu
UTsKKyAgICBpZiAoaW50IHggPSBtZW1jbXAocCwgcSwgbG1pbiAqIDIpKQorICAgICAgICByZXR1
cm4geDsKKworICAgIGlmIChsZW5QID09IGxlblEpCisgICAgICAgIHJldHVybiAwOworCisgICAg
cmV0dXJuIChsZW5QID4gbGVuUSkgPyAxIDogLTE7Cit9CisKIFZlY3RvcjxjaGFyPiBlbmNvZGVE
b3VibGUoZG91YmxlIHgpCiB7CiAgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIG5pY2UgaWYgd2Ug
Y291bGQgYmUgYnl0ZSBvcmRlciBpbmRlcGVuZGVudC4KQEAgLTQ0MSw3ICs0NjIsNiBAQCBpbnQg
Y29tcGFyZUVuY29kZWRJREJLZXlzKGNvbnN0IFZlY3RvcjxjCiAgICAgdW5zaWduZWQgY2hhciB0
eXBlQSA9ICpwKys7CiAgICAgdW5zaWduZWQgY2hhciB0eXBlQiA9ICpxKys7CiAKLSAgICBTdHJp
bmcgcywgdDsKICAgICBkb3VibGUgZCwgZTsKIAogICAgIGlmIChpbnQgeCA9IHR5cGVCIC0gdHlw
ZUEpIC8vIEZJWE1FOiBOb3RlIHRoZSBzdWJ0bGVuZXNzIQpAQCAtNDU0LDExICs0NzQsNyBAQCBp
bnQgY29tcGFyZUVuY29kZWRJREJLZXlzKGNvbnN0IFZlY3RvcjxjCiAgICAgICAgIHJldHVybiAw
OwogICAgIGNhc2Uga0lEQktleVN0cmluZ1R5cGVCeXRlOgogICAgICAgICAvLyBTdHJpbmcgdHlw
ZS4KLSAgICAgICAgcCA9IGRlY29kZVN0cmluZ1dpdGhMZW5ndGgocCwgbGltaXRBLCBzKTsgLy8g
RklYTUU6IENvbXBhcmUgd2l0aG91dCBhY3R1YWxseSBkZWNvZGluZyB0aGUgU3RyaW5nIQotICAg
ICAgICBBU1NFUlQocCk7Ci0gICAgICAgIHEgPSBkZWNvZGVTdHJpbmdXaXRoTGVuZ3RoKHEsIGxp
bWl0QiwgdCk7Ci0gICAgICAgIEFTU0VSVChxKTsKLSAgICAgICAgcmV0dXJuIGNvZGVQb2ludENv
bXBhcmUocywgdCk7CisgICAgICAgIHJldHVybiBjb21wYXJlRW5jb2RlZFN0cmluZ3NXaXRoTGVu
Z3RoKHAsIGxpbWl0QSwgcSwgbGltaXRCKTsKICAgICBjYXNlIGtJREJLZXlEYXRlVHlwZUJ5dGU6
CiAgICAgY2FzZSBrSURCS2V5TnVtYmVyVHlwZUJ5dGU6CiAgICAgICAgIC8vIERhdGUgb3IgbnVt
YmVyLgpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQ29kaW5nLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQ29kaW5nLmgJKHJl
dmlzaW9uIDk1NTgwKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQ29kaW5n
LmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAgVmVjdG9yPGNoYXI+IGVuY29kZVN0
cmluZyhjb25zdCBTdHJpbmcmKQogU3RyaW5nIGRlY29kZVN0cmluZyhjb25zdCBjaGFyKiBwLCBj
b25zdCBjaGFyKiBlbmQpOwogVmVjdG9yPGNoYXI+IGVuY29kZVN0cmluZ1dpdGhMZW5ndGgoY29u
c3QgU3RyaW5nJik7CiBjb25zdCBjaGFyKiBkZWNvZGVTdHJpbmdXaXRoTGVuZ3RoKGNvbnN0IGNo
YXIqIHAsIGNvbnN0IGNoYXIqIGxpbWl0LCBTdHJpbmcmIGZvdW5kU3RyaW5nKTsKK2ludCBjb21w
YXJlRW5jb2RlZFN0cmluZ3NXaXRoTGVuZ3RoKGNvbnN0IGNoYXIqIHAsIGNvbnN0IGNoYXIqIGxp
bWl0UCwgY29uc3QgY2hhciogcSwgY29uc3QgY2hhciogbGltaXRRKTsKIFZlY3RvcjxjaGFyPiBl
bmNvZGVEb3VibGUoZG91YmxlKTsKIGNvbnN0IGNoYXIqIGRlY29kZURvdWJsZShjb25zdCBjaGFy
KiBwLCBjb25zdCBjaGFyKiBsaW1pdCwgZG91YmxlKik7CiBWZWN0b3I8Y2hhcj4gZW5jb2RlSURC
S2V5KGNvbnN0IElEQktleSYpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9J
REJMZXZlbERCQ29kaW5nVGVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9JREJMZXZlbERCQ29kaW5nVGVzdC5jcHAJKHJldmlzaW9uIDk1NTgwKQorKysg
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJMZXZlbERCQ29kaW5nVGVzdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIzMCw2ICsyMzAsNTUgQEAgVEVTVChJREJMZXZlbERCQ29kaW5nVGVz
dCwgRGVjb2RlU3RyaW5nVwogICAgIH0KIH0KIAorVEVTVChJREJMZXZlbERCQ29kaW5nVGVzdCwg
Q29tcGFyZUVuY29kZWRTdHJpbmdzV2l0aExlbmd0aCkKK3sKKyAgICBjb25zdCBVQ2hhciB0ZXN0
U3RyaW5nQVtdID0gezB4MTAwMCwgMHgxMDAwLCAnXDAnfTsKKyAgICBjb25zdCBVQ2hhciB0ZXN0
U3RyaW5nQltdID0gezB4MTAwMCwgMHgxMDAwLCAweDEwMDAsICdcMCd9OworICAgIGNvbnN0IFVD
aGFyIHRlc3RTdHJpbmdDW10gPSB7MHgxMDAwLCAweDEwMDAsIDB4MTAwMSwgJ1wwJ307CisgICAg
Y29uc3QgVUNoYXIgdGVzdFN0cmluZ0RbXSA9IHsweDEwMDEsIDB4MTAwMCwgMHgxMDAwLCAnXDAn
fTsKKyAgICBjb25zdCBVQ2hhciB0ZXN0U3RyaW5nRVtdID0gezB4ZDgzNCwgMHhkZDFlLCAnXDAn
fTsKKyAgICBjb25zdCBVQ2hhciB0ZXN0U3RyaW5nRltdID0gezB4ZmZmZCwgJ1wwJ307CisKKyAg
ICBWZWN0b3I8U3RyaW5nPiB0ZXN0Q2FzZXM7CisgICAgdGVzdENhc2VzLmFwcGVuZChTdHJpbmco
IiIpKTsKKyAgICB0ZXN0Q2FzZXMuYXBwZW5kKFN0cmluZygiYSIpKTsKKyAgICB0ZXN0Q2FzZXMu
YXBwZW5kKFN0cmluZygiYiIpKTsKKyAgICB0ZXN0Q2FzZXMuYXBwZW5kKFN0cmluZygiYmFhYSIp
KTsKKyAgICB0ZXN0Q2FzZXMuYXBwZW5kKFN0cmluZygiYmFhYiIpKTsKKyAgICB0ZXN0Q2FzZXMu
YXBwZW5kKFN0cmluZygiYyIpKTsKKyAgICB0ZXN0Q2FzZXMuYXBwZW5kKFN0cmluZyh0ZXN0U3Ry
aW5nQSkpOworICAgIHRlc3RDYXNlcy5hcHBlbmQoU3RyaW5nKHRlc3RTdHJpbmdCKSk7CisgICAg
dGVzdENhc2VzLmFwcGVuZChTdHJpbmcodGVzdFN0cmluZ0MpKTsKKyAgICB0ZXN0Q2FzZXMuYXBw
ZW5kKFN0cmluZyh0ZXN0U3RyaW5nRCkpOworICAgIHRlc3RDYXNlcy5hcHBlbmQoU3RyaW5nKHRl
c3RTdHJpbmdFKSk7CisgICAgdGVzdENhc2VzLmFwcGVuZChTdHJpbmcodGVzdFN0cmluZ0YpKTsK
KworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGVzdENhc2VzLnNpemUoKSAtIDE7ICsraSkg
eworICAgICAgICBTdHJpbmcgYSA9IHRlc3RDYXNlc1tpXTsKKyAgICAgICAgU3RyaW5nIGIgPSB0
ZXN0Q2FzZXNbaSArIDFdOworCisgICAgICAgIEVYUEVDVF9MVChjb2RlUG9pbnRDb21wYXJlKGEs
IGIpLCAwKTsKKyAgICAgICAgRVhQRUNUX0dUKGNvZGVQb2ludENvbXBhcmUoYiwgYSksIDApOwor
ICAgICAgICBFWFBFQ1RfRVEoY29kZVBvaW50Q29tcGFyZShhLCBhKSwgMCk7CisgICAgICAgIEVY
UEVDVF9FUShjb2RlUG9pbnRDb21wYXJlKGIsIGIpLCAwKTsKKworICAgICAgICBWZWN0b3I8Y2hh
cj4gZW5jb2RlZEEgPSBlbmNvZGVTdHJpbmdXaXRoTGVuZ3RoKGEpOworICAgICAgICBFWFBFQ1Rf
VFJVRShlbmNvZGVkQS5zaXplKCkpOworICAgICAgICBWZWN0b3I8Y2hhcj4gZW5jb2RlZEIgPSBl
bmNvZGVTdHJpbmdXaXRoTGVuZ3RoKGIpOworICAgICAgICBFWFBFQ1RfVFJVRShlbmNvZGVkQS5z
aXplKCkpOworCisgICAgICAgIGNvbnN0IGNoYXIqIHAgPSBlbmNvZGVkQS5kYXRhKCk7CisgICAg
ICAgIGNvbnN0IGNoYXIqIGxpbWl0UCA9IHAgKyBlbmNvZGVkQS5zaXplKCk7CisgICAgICAgIGNv
bnN0IGNoYXIqIHEgPSBlbmNvZGVkQi5kYXRhKCk7CisgICAgICAgIGNvbnN0IGNoYXIqIGxpbWl0
USA9IHEgKyBlbmNvZGVkQi5zaXplKCk7CisKKyAgICAgICAgRVhQRUNUX0xUKGNvbXBhcmVFbmNv
ZGVkU3RyaW5nc1dpdGhMZW5ndGgocCwgbGltaXRQLCBxLCBsaW1pdFEpLCAwKTsKKyAgICAgICAg
RVhQRUNUX0dUKGNvbXBhcmVFbmNvZGVkU3RyaW5nc1dpdGhMZW5ndGgocSwgbGltaXRRLCBwLCBs
aW1pdFApLCAwKTsKKyAgICAgICAgRVhQRUNUX0VRKGNvbXBhcmVFbmNvZGVkU3RyaW5nc1dpdGhM
ZW5ndGgocCwgbGltaXRQLCBwLCBsaW1pdFApLCAwKTsKKyAgICAgICAgRVhQRUNUX0VRKGNvbXBh
cmVFbmNvZGVkU3RyaW5nc1dpdGhMZW5ndGgocSwgbGltaXRRLCBxLCBsaW1pdFEpLCAwKTsKKyAg
ICB9Cit9CisKIFRFU1QoSURCTGV2ZWxEQkNvZGluZ1Rlc3QsIEVuY29kZURvdWJsZSkKIHsKICAg
ICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90Pig4KSwgZW5jb2RlRG91YmxlKDApLnNpemUo
KSk7CkBAIC0zMDIsNiArMzUxLDggQEAgVEVTVChJREJMZXZlbERCQ29kaW5nVGVzdCwgRXh0cmFj
dEFuZENvbQogICAgIGtleXMuYXBwZW5kKElEQktleTo6Y3JlYXRlU3RyaW5nKCJhIikpOwogICAg
IGtleXMuYXBwZW5kKElEQktleTo6Y3JlYXRlU3RyaW5nKCJiIikpOwogICAgIGtleXMuYXBwZW5k
KElEQktleTo6Y3JlYXRlU3RyaW5nKCJiYWFhIikpOworICAgIGtleXMuYXBwZW5kKElEQktleTo6
Y3JlYXRlU3RyaW5nKCJiYWFiIikpOworICAgIGtleXMuYXBwZW5kKElEQktleTo6Y3JlYXRlU3Ry
aW5nKCJjIikpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrZXlzLnNpemUoKSAtIDE7
ICsraSkgewogICAgICAgICBSZWZQdHI8SURCS2V5PiBrZXlBID0ga2V5c1tpXTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108239</attachid>
            <date>2011-09-21 14:51:03 -0700</date>
            <delta_ts>2011-09-21 16:43:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68554-20110921145102.patch</filename>
            <type>text/plain</type>
            <size>6324</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDk1NjY4
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMTggQEAKLTIwMTEtMDkt
MjEgIExlYW5kcm8gUGVyZWlyYSAgPGxlYW5kcm9AcHJvZnVzaW9uLm1vYmk+CisyMDExLTA5LTIx
ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERC
OiBjb21wYXJlIHN0cmluZ3Mgd2l0aG91dCBkZWNvZGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg1NTQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXNvbHZlcyBhIEZJWE1FIGluIEluZGV4ZWREQiB0
aGF0IHdhcyBhbHNvIGlkZW50aWZpZWQgYXMgYSBob3RzcG90CisgICAgICAgIGR1cmluZyBwcm9m
aWxpbmcuIFlpZWxkcyBhIHNtYWxsIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50LgorCisgICAgICAg
ICogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQ29kaW5nLmNwcDoKKyAgICAgICAg
KiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJDb2RpbmcuaDoKKyAgICAgICAgKiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkxldmVsREJDb2RpbmdUZXN0LmNwcDoKKwor
MDExLTA5LTIxICBMZWFuZHJvIFBlcmVpcmEgIDxsZWFuZHJvQHByb2Z1c2lvbi5tb2JpPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQuIFJlbW92ZSB1bnVzZWQgRU5BQkxFX0FTX0lNQUdFIGZsYWcgYWZ0
ZXIgcjk1MjM0IGZyb20KICAgICAgICAgT3B0aW9uc3tFZmwsV2luQ0V9LmNtYWtlLgpJbmRleDog
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQ29kaW5nLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJDb2RpbmcuY3BwCShyZXZpc2lvbiA5
NTU4MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkNvZGluZy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMwMCw2ICszMDAsMjkgQEAgY29uc3QgY2hhciogZGVjb2RlU3RyaW5n
V2l0aExlbmd0aChjb25zdAogICAgIHJldHVybiBwOwogfQogCitpbnQgY29tcGFyZUVuY29kZWRT
dHJpbmdzV2l0aExlbmd0aChjb25zdCBjaGFyKiBwLCBjb25zdCBjaGFyKiBsaW1pdFAsIGNvbnN0
IGNoYXIqIHEsIGNvbnN0IGNoYXIqIGxpbWl0USkKK3sKKyAgICBBU1NFUlQobGltaXRQID49IHAp
OworICAgIEFTU0VSVChsaW1pdFEgPj0gcSk7CisgICAgaW50NjRfdCBsZW5QLCBsZW5ROworICAg
IHAgPSBkZWNvZGVWYXJJbnQocCwgbGltaXRQLCBsZW5QKTsKKyAgICBxID0gZGVjb2RlVmFySW50
KHEsIGxpbWl0USwgbGVuUSk7CisgICAgQVNTRVJUKHAgJiYgcSk7CisgICAgQVNTRVJUKGxlblAg
Pj0gMCk7CisgICAgQVNTRVJUKGxlblEgPj0gMCk7CisgICAgQVNTRVJUKHAgKyBsZW5QICogMiA8
PSBsaW1pdFApOworICAgIEFTU0VSVChxICsgbGVuUSAqIDIgPD0gbGltaXRRKTsKKworICAgIGNv
bnN0IHNpemVfdCBsbWluID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihsZW5QIDwgbGVuUSA/IGxlblAg
OiBsZW5RKTsKKyAgICBpZiAoaW50IHggPSBtZW1jbXAocCwgcSwgbG1pbiAqIDIpKQorICAgICAg
ICByZXR1cm4geDsKKworICAgIGlmIChsZW5QID09IGxlblEpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgcmV0dXJuIChsZW5QID4gbGVuUSkgPyAxIDogLTE7Cit9CisKIFZlY3RvcjxjaGFyPiBl
bmNvZGVEb3VibGUoZG91YmxlIHgpCiB7CiAgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIG5pY2Ug
aWYgd2UgY291bGQgYmUgYnl0ZSBvcmRlciBpbmRlcGVuZGVudC4KQEAgLTQ0MSw3ICs0NjQsNiBA
QCBpbnQgY29tcGFyZUVuY29kZWRJREJLZXlzKGNvbnN0IFZlY3RvcjxjCiAgICAgdW5zaWduZWQg
Y2hhciB0eXBlQSA9ICpwKys7CiAgICAgdW5zaWduZWQgY2hhciB0eXBlQiA9ICpxKys7CiAKLSAg
ICBTdHJpbmcgcywgdDsKICAgICBkb3VibGUgZCwgZTsKIAogICAgIGlmIChpbnQgeCA9IHR5cGVC
IC0gdHlwZUEpIC8vIEZJWE1FOiBOb3RlIHRoZSBzdWJ0bGVuZXNzIQpAQCAtNDU0LDExICs0NzYs
NyBAQCBpbnQgY29tcGFyZUVuY29kZWRJREJLZXlzKGNvbnN0IFZlY3RvcjxjCiAgICAgICAgIHJl
dHVybiAwOwogICAgIGNhc2Uga0lEQktleVN0cmluZ1R5cGVCeXRlOgogICAgICAgICAvLyBTdHJp
bmcgdHlwZS4KLSAgICAgICAgcCA9IGRlY29kZVN0cmluZ1dpdGhMZW5ndGgocCwgbGltaXRBLCBz
KTsgLy8gRklYTUU6IENvbXBhcmUgd2l0aG91dCBhY3R1YWxseSBkZWNvZGluZyB0aGUgU3RyaW5n
IQotICAgICAgICBBU1NFUlQocCk7Ci0gICAgICAgIHEgPSBkZWNvZGVTdHJpbmdXaXRoTGVuZ3Ro
KHEsIGxpbWl0QiwgdCk7Ci0gICAgICAgIEFTU0VSVChxKTsKLSAgICAgICAgcmV0dXJuIGNvZGVQ
b2ludENvbXBhcmUocywgdCk7CisgICAgICAgIHJldHVybiBjb21wYXJlRW5jb2RlZFN0cmluZ3NX
aXRoTGVuZ3RoKHAsIGxpbWl0QSwgcSwgbGltaXRCKTsKICAgICBjYXNlIGtJREJLZXlEYXRlVHlw
ZUJ5dGU6CiAgICAgY2FzZSBrSURCS2V5TnVtYmVyVHlwZUJ5dGU6CiAgICAgICAgIC8vIERhdGUg
b3IgbnVtYmVyLgpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQ29kaW5n
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQ29kaW5n
LmgJKHJldmlzaW9uIDk1NTgwKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERC
Q29kaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAgVmVjdG9yPGNoYXI+IGVu
Y29kZVN0cmluZyhjb25zdCBTdHJpbmcmKQogU3RyaW5nIGRlY29kZVN0cmluZyhjb25zdCBjaGFy
KiBwLCBjb25zdCBjaGFyKiBlbmQpOwogVmVjdG9yPGNoYXI+IGVuY29kZVN0cmluZ1dpdGhMZW5n
dGgoY29uc3QgU3RyaW5nJik7CiBjb25zdCBjaGFyKiBkZWNvZGVTdHJpbmdXaXRoTGVuZ3RoKGNv
bnN0IGNoYXIqIHAsIGNvbnN0IGNoYXIqIGxpbWl0LCBTdHJpbmcmIGZvdW5kU3RyaW5nKTsKK2lu
dCBjb21wYXJlRW5jb2RlZFN0cmluZ3NXaXRoTGVuZ3RoKGNvbnN0IGNoYXIqIHAsIGNvbnN0IGNo
YXIqIGxpbWl0UCwgY29uc3QgY2hhciogcSwgY29uc3QgY2hhciogbGltaXRRKTsKIFZlY3Rvcjxj
aGFyPiBlbmNvZGVEb3VibGUoZG91YmxlKTsKIGNvbnN0IGNoYXIqIGRlY29kZURvdWJsZShjb25z
dCBjaGFyKiBwLCBjb25zdCBjaGFyKiBsaW1pdCwgZG91YmxlKik7CiBWZWN0b3I8Y2hhcj4gZW5j
b2RlSURCS2V5KGNvbnN0IElEQktleSYpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9JREJMZXZlbERCQ29kaW5nVGVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9JREJMZXZlbERCQ29kaW5nVGVzdC5jcHAJKHJldmlzaW9uIDk1NTgw
KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJMZXZlbERCQ29kaW5nVGVzdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMCw2ICsyMzAsNTUgQEAgVEVTVChJREJMZXZlbERCQ29k
aW5nVGVzdCwgRGVjb2RlU3RyaW5nVwogICAgIH0KIH0KIAorVEVTVChJREJMZXZlbERCQ29kaW5n
VGVzdCwgQ29tcGFyZUVuY29kZWRTdHJpbmdzV2l0aExlbmd0aCkKK3sKKyAgICBjb25zdCBVQ2hh
ciB0ZXN0U3RyaW5nQVtdID0gezB4MTAwMCwgMHgxMDAwLCAnXDAnfTsKKyAgICBjb25zdCBVQ2hh
ciB0ZXN0U3RyaW5nQltdID0gezB4MTAwMCwgMHgxMDAwLCAweDEwMDAsICdcMCd9OworICAgIGNv
bnN0IFVDaGFyIHRlc3RTdHJpbmdDW10gPSB7MHgxMDAwLCAweDEwMDAsIDB4MTAwMSwgJ1wwJ307
CisgICAgY29uc3QgVUNoYXIgdGVzdFN0cmluZ0RbXSA9IHsweDEwMDEsIDB4MTAwMCwgMHgxMDAw
LCAnXDAnfTsKKyAgICBjb25zdCBVQ2hhciB0ZXN0U3RyaW5nRVtdID0gezB4ZDgzNCwgMHhkZDFl
LCAnXDAnfTsKKyAgICBjb25zdCBVQ2hhciB0ZXN0U3RyaW5nRltdID0gezB4ZmZmZCwgJ1wwJ307
CisKKyAgICBWZWN0b3I8U3RyaW5nPiB0ZXN0Q2FzZXM7CisgICAgdGVzdENhc2VzLmFwcGVuZChT
dHJpbmcoIiIpKTsKKyAgICB0ZXN0Q2FzZXMuYXBwZW5kKFN0cmluZygiYSIpKTsKKyAgICB0ZXN0
Q2FzZXMuYXBwZW5kKFN0cmluZygiYiIpKTsKKyAgICB0ZXN0Q2FzZXMuYXBwZW5kKFN0cmluZygi
YmFhYSIpKTsKKyAgICB0ZXN0Q2FzZXMuYXBwZW5kKFN0cmluZygiYmFhYiIpKTsKKyAgICB0ZXN0
Q2FzZXMuYXBwZW5kKFN0cmluZygiYyIpKTsKKyAgICB0ZXN0Q2FzZXMuYXBwZW5kKFN0cmluZyh0
ZXN0U3RyaW5nQSkpOworICAgIHRlc3RDYXNlcy5hcHBlbmQoU3RyaW5nKHRlc3RTdHJpbmdCKSk7
CisgICAgdGVzdENhc2VzLmFwcGVuZChTdHJpbmcodGVzdFN0cmluZ0MpKTsKKyAgICB0ZXN0Q2Fz
ZXMuYXBwZW5kKFN0cmluZyh0ZXN0U3RyaW5nRCkpOworICAgIHRlc3RDYXNlcy5hcHBlbmQoU3Ry
aW5nKHRlc3RTdHJpbmdFKSk7CisgICAgdGVzdENhc2VzLmFwcGVuZChTdHJpbmcodGVzdFN0cmlu
Z0YpKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGVzdENhc2VzLnNpemUoKSAtIDE7
ICsraSkgeworICAgICAgICBTdHJpbmcgYSA9IHRlc3RDYXNlc1tpXTsKKyAgICAgICAgU3RyaW5n
IGIgPSB0ZXN0Q2FzZXNbaSArIDFdOworCisgICAgICAgIEVYUEVDVF9MVChjb2RlUG9pbnRDb21w
YXJlKGEsIGIpLCAwKTsKKyAgICAgICAgRVhQRUNUX0dUKGNvZGVQb2ludENvbXBhcmUoYiwgYSks
IDApOworICAgICAgICBFWFBFQ1RfRVEoY29kZVBvaW50Q29tcGFyZShhLCBhKSwgMCk7CisgICAg
ICAgIEVYUEVDVF9FUShjb2RlUG9pbnRDb21wYXJlKGIsIGIpLCAwKTsKKworICAgICAgICBWZWN0
b3I8Y2hhcj4gZW5jb2RlZEEgPSBlbmNvZGVTdHJpbmdXaXRoTGVuZ3RoKGEpOworICAgICAgICBF
WFBFQ1RfVFJVRShlbmNvZGVkQS5zaXplKCkpOworICAgICAgICBWZWN0b3I8Y2hhcj4gZW5jb2Rl
ZEIgPSBlbmNvZGVTdHJpbmdXaXRoTGVuZ3RoKGIpOworICAgICAgICBFWFBFQ1RfVFJVRShlbmNv
ZGVkQS5zaXplKCkpOworCisgICAgICAgIGNvbnN0IGNoYXIqIHAgPSBlbmNvZGVkQS5kYXRhKCk7
CisgICAgICAgIGNvbnN0IGNoYXIqIGxpbWl0UCA9IHAgKyBlbmNvZGVkQS5zaXplKCk7CisgICAg
ICAgIGNvbnN0IGNoYXIqIHEgPSBlbmNvZGVkQi5kYXRhKCk7CisgICAgICAgIGNvbnN0IGNoYXIq
IGxpbWl0USA9IHEgKyBlbmNvZGVkQi5zaXplKCk7CisKKyAgICAgICAgRVhQRUNUX0xUKGNvbXBh
cmVFbmNvZGVkU3RyaW5nc1dpdGhMZW5ndGgocCwgbGltaXRQLCBxLCBsaW1pdFEpLCAwKTsKKyAg
ICAgICAgRVhQRUNUX0dUKGNvbXBhcmVFbmNvZGVkU3RyaW5nc1dpdGhMZW5ndGgocSwgbGltaXRR
LCBwLCBsaW1pdFApLCAwKTsKKyAgICAgICAgRVhQRUNUX0VRKGNvbXBhcmVFbmNvZGVkU3RyaW5n
c1dpdGhMZW5ndGgocCwgbGltaXRQLCBwLCBsaW1pdFApLCAwKTsKKyAgICAgICAgRVhQRUNUX0VR
KGNvbXBhcmVFbmNvZGVkU3RyaW5nc1dpdGhMZW5ndGgocSwgbGltaXRRLCBxLCBsaW1pdFEpLCAw
KTsKKyAgICB9Cit9CisKIFRFU1QoSURCTGV2ZWxEQkNvZGluZ1Rlc3QsIEVuY29kZURvdWJsZSkK
IHsKICAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90Pig4KSwgZW5jb2RlRG91YmxlKDAp
LnNpemUoKSk7CkBAIC0zMDIsNiArMzUxLDggQEAgVEVTVChJREJMZXZlbERCQ29kaW5nVGVzdCwg
RXh0cmFjdEFuZENvbQogICAgIGtleXMuYXBwZW5kKElEQktleTo6Y3JlYXRlU3RyaW5nKCJhIikp
OwogICAgIGtleXMuYXBwZW5kKElEQktleTo6Y3JlYXRlU3RyaW5nKCJiIikpOwogICAgIGtleXMu
YXBwZW5kKElEQktleTo6Y3JlYXRlU3RyaW5nKCJiYWFhIikpOworICAgIGtleXMuYXBwZW5kKElE
QktleTo6Y3JlYXRlU3RyaW5nKCJiYWFiIikpOworICAgIGtleXMuYXBwZW5kKElEQktleTo6Y3Jl
YXRlU3RyaW5nKCJjIikpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrZXlzLnNpemUo
KSAtIDE7ICsraSkgewogICAgICAgICBSZWZQdHI8SURCS2V5PiBrZXlBID0ga2V5c1tpXTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>