<?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>27517</bug_id>
          
          <creation_ts>2009-07-21 13:56:20 -0700</creation_ts>
          <short_desc>Misc cleanup in DOM Storage.</short_desc>
          <delta_ts>2009-07-28 15:26:41 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Jeremy Orlow">jorlow</assigned_to>
          <cc>eric</cc>
    
    <cc>fishd</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>133588</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-07-21 13:56:20 -0700</bug_when>
    <thetext>Description will be attached to patch shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133592</commentid>
    <comment_count>1</comment_count>
      <attachid>33212</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-07-21 14:05:38 -0700</bug_when>
    <thetext>Created attachment 33212
v1

The StorageAreaImpl changes are all for Chromium.  Because the DOM Storage implementation runs in a different process from where the Frame object lives, Chromium passes in NULL for the sourceFrame.  This affects events and handling privateBrowsing.  Chromium&apos;s incognito mode does not use the private browsing setting, so that&apos;s not a concern.  As for events, I&apos;ve decided to simply disable them for now.

The StorageNamespaceImpl changes get rid of a stale comment (path is .copy&apos;ed for thread-safety) and to add an assert that .copy is only ever called on a SessionStorage namespace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134159</commentid>
    <comment_count>2</comment_count>
      <attachid>33212</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-07-23 11:01:24 -0700</bug_when>
    <thetext>Comment on attachment 33212
v1

&gt; Index: WebCore/storage/StorageAreaImpl.cpp
...
&gt; +    // The frame pointer can be NULL in Chromium since this call is made in a
&gt; +    // different process from where the Frame object exists.  Luckily private
&gt; +    // browsing is implemented differently in Chromium, so it&apos;d never return
&gt; +    // true anyway.

This is a good comment for the ChangeLog since it is the kind of thing that
could get stale, and it refers to things like Chrome&apos;s multi-process architecture
that are not visible to someone just looking at the WebKit code base.

We have made a concerted effort to avoid putting comments into WebKit that refer
to Chrome and Chrome&apos;s architecture as much as we can.  If we can instead have
WebKit &quot;make sense&quot; standalone then it is a good thing.  It means WebKit will be
easier to understand.

Ultimately, I think we should probably revise StorageAreaImpl to not depend
directly on having a Page with Settings.  Or, in Chromium we should have a
dummy Page so that we can provide Settings.  Or, finally... the simplest thing
is to just have a comment that says StorageAreaImpl should be usable when there
is no associated Frame.  We could have a single comment in the header say that
documents that.  We could add that Chromium uses it that way without needing to
give much more detail.  A blanket comment like that would help someone else who
is tempted to add additional code to touch the Frame, Page, or Settings.

Otherwise, looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134790</commentid>
    <comment_count>3</comment_count>
      <attachid>33501</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-07-25 20:12:58 -0700</bug_when>
    <thetext>Created attachment 33501
v2

I haven&apos;t decided what approach I&apos;m going to take with events yet.  I&apos;ll have to think carefully about how it can be tied in with Chromium in a way that&apos;s still very clean from the WebKit side of things.  Until then, I&apos;ve placed FIXME&apos;s where we&apos;re dong the frame checks.  I&apos;ll come up with a better long term solution soon, but since we&apos;re the only implementation that would supply NULLS, I think this is an acceptable short-term solution.

So...changed the comments in StorageAreaImpl.cpp.  Also cleaned up a bunch of trailing whitespace because once I started I couldn&apos;t stop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135284</commentid>
    <comment_count>4</comment_count>
      <attachid>33501</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-28 11:09:24 -0700</bug_when>
    <thetext>Comment on attachment 33501
v2

I would rather you abstract this into a function, something like this:

static bool privateBrowsingEnabled(frame)
{
#ifdef CHROMIUM
    // comment explaing why it&apos;s OK for frame to be null
    return false;
#else
    return frame-&gt;....
#endif
}

Otherwis this looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135366</commentid>
    <comment_count>5</comment_count>
      <attachid>33670</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-07-28 14:08:13 -0700</bug_when>
    <thetext>Created attachment 33670
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135367</commentid>
    <comment_count>6</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-07-28 14:09:48 -0700</bug_when>
    <thetext>Would be great if I could get a quick review.  This is the only thing standing between LocalStorage (mostly) working in Chromium.  :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135371</commentid>
    <comment_count>7</comment_count>
      <attachid>33672</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-07-28 14:31:45 -0700</bug_when>
    <thetext>Created attachment 33672
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135380</commentid>
    <comment_count>8</comment_count>
      <attachid>33672</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-28 14:57:09 -0700</bug_when>
    <thetext>Comment on attachment 33672
patch

Why remove:
// FIXME: When can this occur?

Also, instead of removing // FIXME: Is the .copy necessary?
it seems replacing it with // copy for safe muti-threaded access
or some similar comment which explains the &quot;why&quot; since clearly the author of that FIXME didn&apos;t understand &quot;why&quot; :)

Otherwise looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135383</commentid>
    <comment_count>9</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-07-28 15:05:28 -0700</bug_when>
    <thetext>Added in the comment on the .copy().  As for the other FIXME, I still don&apos;t know when it&apos;s possible, but I suspect this was put in because page() can return NULL.  I added the fixme originally and I don&apos;t think anyone&apos;s touched the code since, so I figured it was OK to remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135388</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-28 15:12:56 -0700</bug_when>
    <thetext>I would rather replace it with an ASSERT(page) than just removing it. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135390</commentid>
    <comment_count>11</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-07-28 15:15:35 -0700</bug_when>
    <thetext>I&apos;ll create another bug to review this and a couple other places where I think there are unnecessary if statements.  I think it&apos;ll need careful review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135396</commentid>
    <comment_count>12</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-07-28 15:26:41 -0700</bug_when>
    <thetext>Sending        WebCore/ChangeLog
Deleting       WebCore/storage/StorageArea.cpp
Sending        WebCore/storage/StorageAreaImpl.cpp
Sending        WebCore/storage/StorageNamespaceImpl.cpp
Transmitting file data ...
Committed revision 46502.
http://trac.webkit.org/changeset/46502</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33212</attachid>
            <date>2009-07-21 14:05:38 -0700</date>
            <delta_ts>2009-07-25 20:12:58 -0700</delta_ts>
            <desc>v1</desc>
            <filename>misc.v1.patch</filename>
            <type>text/plain</type>
            <size>5493</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjE5MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMDktMDctMjEgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TWlzYyBjbGVhbnVwIGluIERPTSBTdG9yYWdlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc1MTcKKworICAgICAgICBUaGUgU3RvcmFnZUFyZWFJbXBs
IGNoYW5nZXMgYXJlIGFsbCBmb3IgQ2hyb21pdW0uICBCZWNhdXNlIHRoZSBET00gU3RvcmFnZSBp
bXBsZW1lbnRhdGlvbgorICAgICAgICBydW5zIGluIGEgZGlmZmVyZW50IHByb2Nlc3MgZnJvbSB3
aGVyZSB0aGUgRnJhbWUgb2JqZWN0IGxpdmVzLCBDaHJvbWl1bSBwYXNzZXMgaW4gTlVMTAorICAg
ICAgICBmb3IgdGhlIHNvdXJjZUZyYW1lLiAgVGhpcyBhZmZlY3RzIGV2ZW50cyBhbmQgaGFuZGxp
bmcgcHJpdmF0ZUJyb3dzaW5nLiAgQ2hyb21pdW0ncworICAgICAgICBpbmNvZ25pdG8gbW9kZSBk
b2VzIG5vdCB1c2UgdGhlIHByaXZhdGUgYnJvd3Npbmcgc2V0dGluZywgc28gdGhhdCdzIG5vdCBh
IGNvbmNlcm4uICBBcyBmb3IKKyAgICAgICAgZXZlbnRzLCBJJ3ZlIGRlY2lkZWQgdG8gc2ltcGx5
IGRpc2FibGUgdGhlbSBmb3Igbm93LgorCisgICAgICAgIFRoZSBTdG9yYWdlTmFtZXNwYWNlSW1w
bCBjaGFuZ2VzIGdldCByaWQgb2YgYSBzdGFsZSBjb21tZW50IChwYXRoIGlzIC5jb3B5J2VkIGZv
ciB0aHJlYWQtCisgICAgICAgIHNhZmV0eSkgYW5kIHRvIGFkZCBhbiBhc3NlcnQgdGhhdCAuY29w
eSBpcyBvbmx5IGV2ZXIgY2FsbGVkIG9uIGEgU2Vzc2lvblN0b3JhZ2UgbmFtZXNwYWNlLgorCisg
ICAgICAgICogc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3RvcmFnZUFyZWFJbXBsOjpzZXRJdGVtKTogTWFrZSBmcmFtZSBvcHRpb25hbC4KKyAgICAgICAg
KFdlYkNvcmU6OlN0b3JhZ2VBcmVhSW1wbDo6cmVtb3ZlSXRlbSk6IGRpdHRvCisgICAgICAgIChX
ZWJDb3JlOjpTdG9yYWdlQXJlYUltcGw6OmNsZWFyKTogZGl0dG8KKyAgICAgICAgKFdlYkNvcmU6
OlN0b3JhZ2VBcmVhSW1wbDo6ZGlzcGF0Y2hTdG9yYWdlRXZlbnQpOiBEaXNhYmxlIGluIENocm9t
aXVtIGZvciBub3cuCisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTmFtZXNwYWNlSW1wbDo6U3RvcmFnZU5hbWVzcGFj
ZUltcGwpOiBSZW1vdmUgc3RhbGUgY29tbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VO
YW1lc3BhY2VJbXBsOjpjb3B5KTogQWRkIGFzc2VydCB0aGF0IGl0J3MgU2Vzc2lvblN0b3JhZ2Uu
CisKIDIwMDktMDctMjEgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEFkYW0gQmFydGguCkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFy
ZWFJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBs
LmNwcAkocmV2aXNpb24gNDYxOTEpCisrKyBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBs
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDcgKzEyMiwxMSBAQCB2b2lkIFN0b3JhZ2VBcmVh
SW1wbDo6c2V0SXRlbShjb25zdCBTdHJpCiAgICAgQVNTRVJUKCF2YWx1ZS5pc051bGwoKSk7CiAg
ICAgYmxvY2tVbnRpbEltcG9ydENvbXBsZXRlKCk7CiAgICAgCi0gICAgaWYgKGZyYW1lLT5wYWdl
KCktPnNldHRpbmdzKCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkgeworICAgIC8vIFRoZSBm
cmFtZSBwb2ludGVyIGNhbiBiZSBOVUxMIGluIENocm9taXVtIHNpbmNlIHRoaXMgY2FsbCBpcyBt
YWRlIGluIGEKKyAgICAvLyBkaWZmZXJlbnQgcHJvY2VzcyBmcm9tIHdoZXJlIHRoZSBGcmFtZSBv
YmplY3QgZXhpc3RzLiAgTHVja2lseSBwcml2YXRlCisgICAgLy8gYnJvd3NpbmcgaXMgaW1wbGVt
ZW50ZWQgZGlmZmVyZW50bHkgaW4gQ2hyb21pdW0sIHNvIGl0J2QgbmV2ZXIgcmV0dXJuCisgICAg
Ly8gdHJ1ZSBhbnl3YXkuCisgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5wYWdlKCktPnNldHRpbmdz
KCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkgewogICAgICAgICBlYyA9IFFVT1RBX0VYQ0VF
REVEX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE1Myw3ICsxNTcsMTEgQEAgdm9p
ZCBTdG9yYWdlQXJlYUltcGw6OnJlbW92ZUl0ZW0oY29uc3QgUwogICAgIEFTU0VSVCghbV9pc1No
dXRkb3duKTsKICAgICBibG9ja1VudGlsSW1wb3J0Q29tcGxldGUoKTsKICAgICAKLSAgICBpZiAo
ZnJhbWUtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQorICAg
IC8vIFRoZSBmcmFtZSBwb2ludGVyIGNhbiBiZSBOVUxMIGluIENocm9taXVtIHNpbmNlIHRoaXMg
Y2FsbCBpcyBtYWRlIGluIGEKKyAgICAvLyBkaWZmZXJlbnQgcHJvY2VzcyBmcm9tIHdoZXJlIHRo
ZSBGcmFtZSBvYmplY3QgZXhpc3RzLiAgTHVja2lseSBwcml2YXRlCisgICAgLy8gYnJvd3Npbmcg
aXMgaW1wbGVtZW50ZWQgZGlmZmVyZW50bHkgaW4gQ2hyb21pdW0sIHNvIGl0J2QgbmV2ZXIgcmV0
dXJuCisgICAgLy8gdHJ1ZSBhbnl3YXkuCisgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5wYWdlKCkt
PnNldHRpbmdzKCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgU3RyaW5nIG9sZFZhbHVlOwpAQCAtMTc0LDcgKzE4MiwxMSBAQCB2b2lkIFN0b3JhZ2VB
cmVhSW1wbDo6Y2xlYXIoRnJhbWUqIGZyYW1lCiAgICAgQVNTRVJUKCFtX2lzU2h1dGRvd24pOwog
ICAgIGJsb2NrVW50aWxJbXBvcnRDb21wbGV0ZSgpOwogICAgIAotICAgIGlmIChmcmFtZS0+cGFn
ZSgpLT5zZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCisgICAgLy8gVGhlIGZy
YW1lIHBvaW50ZXIgY2FuIGJlIE5VTEwgaW4gQ2hyb21pdW0gc2luY2UgdGhpcyBjYWxsIGlzIG1h
ZGUgaW4gYQorICAgIC8vIGRpZmZlcmVudCBwcm9jZXNzIGZyb20gd2hlcmUgdGhlIEZyYW1lIG9i
amVjdCBleGlzdHMuICBMdWNraWx5IHByaXZhdGUKKyAgICAvLyBicm93c2luZyBpcyBpbXBsZW1l
bnRlZCBkaWZmZXJlbnRseSBpbiBDaHJvbWl1bSwgc28gaXQnZCBuZXZlciByZXR1cm4KKyAgICAv
LyB0cnVlIGFueXdheS4KKyAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKS0+c2V0dGluZ3Mo
KS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAg
bV9zdG9yYWdlTWFwID0gU3RvcmFnZU1hcDo6Y3JlYXRlKCk7CkBAIC0yMjEsMTUgKzIzMywxOCBA
QCB2b2lkIFN0b3JhZ2VBcmVhSW1wbDo6YmxvY2tVbnRpbEltcG9ydENvCiAKIHZvaWQgU3RvcmFn
ZUFyZWFJbXBsOjpkaXNwYXRjaFN0b3JhZ2VFdmVudChjb25zdCBTdHJpbmcmIGtleSwgY29uc3Qg
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgRnJhbWUqIHNvdXJjZUZy
YW1lKQogewotICAgIC8vIFdlIG5lZWQgdG8gY29weSBhbGwgcmVsZXZhbnQgZnJhbWVzIGZyb20g
ZXZlcnkgcGFnZSB0byBhIHZlY3RvciBzaW5jZSBzZW5kaW5nIHRoZSBldmVudCB0byBvbmUgZnJh
bWUgbWlnaHQgbXV0YXRlIHRoZSBmcmFtZSB0cmVlCi0gICAgLy8gb2YgYW55IGdpdmVuIHBhZ2Ug
aW4gdGhlIGdyb3VwIG9yIG11dGF0ZSB0aGUgcGFnZSBncm91cCBpdHNlbGYuCi0gICAgVmVjdG9y
PFJlZlB0cjxGcmFtZT4gPiBmcmFtZXM7CisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAgLy8g
RklYTUU6IEV2ZW50cyBhcmUgY3VycmVudGx5IGJyb2tlbiBpbiBDaHJvbWl1bS4KKyAgICByZXR1
cm47CisjZW5kaWYKIAotICAgIC8vIEZJWE1FOiBXaGVuIGNhbiB0aGlzIG9jY3VyPwogICAgIFBh
Z2UqIHBhZ2UgPSBzb3VyY2VGcmFtZS0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAg
cmV0dXJuOwogCisgICAgLy8gV2UgbmVlZCB0byBjb3B5IGFsbCByZWxldmFudCBmcmFtZXMgZnJv
bSBldmVyeSBwYWdlIHRvIGEgdmVjdG9yIHNpbmNlIHNlbmRpbmcgdGhlIGV2ZW50IHRvIG9uZSBm
cmFtZSBtaWdodCBtdXRhdGUgdGhlIGZyYW1lIHRyZWUKKyAgICAvLyBvZiBhbnkgZ2l2ZW4gcGFn
ZSBpbiB0aGUgZ3JvdXAgb3IgbXV0YXRlIHRoZSBwYWdlIGdyb3VwIGl0c2VsZi4KKyAgICBWZWN0
b3I8UmVmUHRyPEZyYW1lPiA+IGZyYW1lczsKICAgICBpZiAobV9zdG9yYWdlVHlwZSA9PSBTZXNz
aW9uU3RvcmFnZSkgewogICAgICAgICAvLyBTZW5kIGV2ZW50cyBvbmx5IHRvIG91ciBwYWdlLgog
ICAgICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJh
bWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewpJbmRleDogV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3Jh
Z2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCShyZXZpc2lvbiA0NjE5MSkKKysrIFdlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcg
KzY0LDcgQEAgUGFzc1JlZlB0cjxTdG9yYWdlTmFtZXNwYWNlPiBTdG9yYWdlTmFtZQogCiBTdG9y
YWdlTmFtZXNwYWNlSW1wbDo6U3RvcmFnZU5hbWVzcGFjZUltcGwoU3RvcmFnZVR5cGUgc3RvcmFn
ZVR5cGUsIGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICA6IG1fc3RvcmFnZVR5cGUoc3RvcmFnZVR5
cGUpCi0gICAgLCBtX3BhdGgocGF0aC5jb3B5KCkpICAvLyBGSVhNRTogSXMgdGhlIC5jb3B5IG5l
Y2Vzc2FyeT8KKyAgICAsIG1fcGF0aChwYXRoLmNvcHkoKSkKICAgICAsIG1fc3luY01hbmFnZXIo
MCkKICNpZm5kZWYgTkRFQlVHCiAgICAgLCBtX2lzU2h1dGRvd24oZmFsc2UpCkBAIC04OCw2ICs4
OCw3IEBAIFBhc3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWUKIHsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVCghbV9pc1NodXRkb3duKTsKKyAgICBB
U1NFUlQobV9zdG9yYWdlVHlwZSA9PSBTZXNzaW9uU3RvcmFnZSk7CiAKICAgICBTdG9yYWdlTmFt
ZXNwYWNlSW1wbCogbmV3TmFtZXNwYWNlID0gbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKG1fc3Rv
cmFnZVR5cGUsIG1fcGF0aCk7CiAK
</data>
<flag name="review"
          id="17527"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33501</attachid>
            <date>2009-07-25 20:12:58 -0700</date>
            <delta_ts>2009-07-28 14:07:55 -0700</delta_ts>
            <desc>v2</desc>
            <filename>storage_frame_cleanup.v2.patch</filename>
            <type>text/plain</type>
            <size>7534</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjM4NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMDktMDctMjEgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TWlzYyBjbGVhbnVwIGluIERPTSBTdG9yYWdlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc1MTcKKworICAgICAgICBUaGUgU3RvcmFnZUFyZWFJbXBs
IGNoYW5nZXMgYXJlIGFsbCBmb3IgQ2hyb21pdW0uICBCZWNhdXNlIHRoZSBET00gU3RvcmFnZSBp
bXBsZW1lbnRhdGlvbgorICAgICAgICBydW5zIGluIGEgZGlmZmVyZW50IHByb2Nlc3MgZnJvbSB3
aGVyZSB0aGUgRnJhbWUgb2JqZWN0IGxpdmVzLCBDaHJvbWl1bSBwYXNzZXMgaW4gTlVMTAorICAg
ICAgICBmb3IgdGhlIHNvdXJjZUZyYW1lLiAgVGhpcyBhZmZlY3RzIGV2ZW50cyBhbmQgaGFuZGxp
bmcgcHJpdmF0ZUJyb3dzaW5nLiAgQ2hyb21pdW0ncworICAgICAgICBpbmNvZ25pdG8gbW9kZSBk
b2VzIG5vdCB1c2UgdGhlIHByaXZhdGUgYnJvd3Npbmcgc2V0dGluZywgc28gdGhhdCdzIG5vdCBh
IGNvbmNlcm4uICBBcyBmb3IKKyAgICAgICAgZXZlbnRzLCBJJ3ZlIGRlY2lkZWQgdG8gc2ltcGx5
IGRpc2FibGUgdGhlbSBmb3Igbm93LgorCisgICAgICAgIFRoZSBTdG9yYWdlTmFtZXNwYWNlSW1w
bCBjaGFuZ2VzIGdldCByaWQgb2YgYSBzdGFsZSBjb21tZW50IChwYXRoIGlzIC5jb3B5J2VkIGZv
ciB0aHJlYWQtCisgICAgICAgIHNhZmV0eSkgYW5kIHRvIGFkZCBhbiBhc3NlcnQgdGhhdCAuY29w
eSBpcyBvbmx5IGV2ZXIgY2FsbGVkIG9uIGEgU2Vzc2lvblN0b3JhZ2UgbmFtZXNwYWNlLgorCisg
ICAgICAgIEFsc28gY2xlYW5lZCB1cCB0YWlsaW5nIHdoaXRlc3BhY2UgaW4gc2V2ZXJhbCBwYXJ0
cyBvZiBTdG9yYWdlQXJlYUltcGwuY3BwCisKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVh
SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYUltcGw6OnNldEl0ZW0pOiBN
YWtlIGZyYW1lIG9wdGlvbmFsLgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFJbXBsOjpy
ZW1vdmVJdGVtKTogZGl0dG8KKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhSW1wbDo6Y2xl
YXIpOiBkaXR0bworICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFJbXBsOjpkaXNwYXRjaFN0
b3JhZ2VFdmVudCk6IERpc2FibGUgaW4gQ2hyb21pdW0gZm9yIG5vdy4KKyAgICAgICAgKiBzdG9y
YWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VO
YW1lc3BhY2VJbXBsOjpTdG9yYWdlTmFtZXNwYWNlSW1wbCk6IFJlbW92ZSBzdGFsZSBjb21tZW50
LgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZU5hbWVzcGFjZUltcGw6OmNvcHkpOiBBZGQgYXNz
ZXJ0IHRoYXQgaXQncyBTZXNzaW9uU3RvcmFnZS4KKwogMjAwOS0wNy0yNCAgTWFkcyBBZ2VyICA8
YWdlckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5k
ZXg6IFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwCShyZXZpc2lvbiA0NjM4NykKKysrIFdl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw5
ICsyMCw5IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCi0gCisKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJTdG9yYWdlQXJlYUltcGwuaCIKIApAQCAtOTcsMTQgKzk3LDE0IEBAIFN0cmlu
ZyBTdG9yYWdlQXJlYUltcGw6OmtleSh1bnNpZ25lZCBpbmQKIHsKICAgICBBU1NFUlQoIW1faXNT
aHV0ZG93bik7CiAgICAgYmxvY2tVbnRpbEltcG9ydENvbXBsZXRlKCk7Ci0gICAgCisKICAgICBT
dHJpbmcga2V5OwotICAgIAorCiAgICAgaWYgKCFtX3N0b3JhZ2VNYXAtPmtleShpbmRleCwga2V5
KSkgewogICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwogICAgICAgICByZXR1cm4gU3RyaW5n
KCk7CiAgICAgfQotICAgICAgICAKKwogICAgIHJldHVybiBrZXk7CiB9CiAKQEAgLTExMiw3ICsx
MTIsNyBAQCBTdHJpbmcgU3RvcmFnZUFyZWFJbXBsOjpnZXRJdGVtKGNvbnN0IFN0CiB7CiAgICAg
QVNTRVJUKCFtX2lzU2h1dGRvd24pOwogICAgIGJsb2NrVW50aWxJbXBvcnRDb21wbGV0ZSgpOwot
ICAgIAorCiAgICAgcmV0dXJuIG1fc3RvcmFnZU1hcC0+Z2V0SXRlbShrZXkpOwogfQogCkBAIC0x
MjEsOCArMTIxLDkgQEAgdm9pZCBTdG9yYWdlQXJlYUltcGw6OnNldEl0ZW0oY29uc3QgU3RyaQog
ICAgIEFTU0VSVCghbV9pc1NodXRkb3duKTsKICAgICBBU1NFUlQoIXZhbHVlLmlzTnVsbCgpKTsK
ICAgICBibG9ja1VudGlsSW1wb3J0Q29tcGxldGUoKTsKLSAgICAKLSAgICBpZiAoZnJhbWUtPnBh
Z2UoKS0+c2V0dGluZ3MoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKSB7CisKKyAgICAvLyBG
SVhNRTogSGFuZGxlIHRoZSBjYXNlIG9mIGZyYW1lIGJlaW5nIE5VTEwgbW9yZSBlbGVnZW50bHku
CisgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5wYWdlKCktPnNldHRpbmdzKCktPnByaXZhdGVCcm93
c2luZ0VuYWJsZWQoKSkgewogICAgICAgICBlYyA9IFFVT1RBX0VYQ0VFREVEX0VSUjsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KQEAgLTEzMywxMCArMTM0LDEwIEBAIHZvaWQgU3RvcmFnZUFyZWFJ
bXBsOjpzZXRJdGVtKGNvbnN0IFN0cmkKICAgICAvLyAgICAgZWMgPSBRVU9UQV9FWENFRURFRF9F
UlI7CiAgICAgLy8gICAgIHJldHVybjsKICAgICAvLyB9Ci0gICAgCi0gICAgU3RyaW5nIG9sZFZh
bHVlOyAgIAorCisgICAgU3RyaW5nIG9sZFZhbHVlOwogICAgIFJlZlB0cjxTdG9yYWdlTWFwPiBu
ZXdNYXAgPSBtX3N0b3JhZ2VNYXAtPnNldEl0ZW0oa2V5LCB2YWx1ZSwgb2xkVmFsdWUpOwotICAg
IAorCiAgICAgaWYgKG5ld01hcCkKICAgICAgICAgbV9zdG9yYWdlTWFwID0gbmV3TWFwLnJlbGVh
c2UoKTsKIApAQCAtMTUyLDggKzE1Myw5IEBAIHZvaWQgU3RvcmFnZUFyZWFJbXBsOjpyZW1vdmVJ
dGVtKGNvbnN0IFMKIHsKICAgICBBU1NFUlQoIW1faXNTaHV0ZG93bik7CiAgICAgYmxvY2tVbnRp
bEltcG9ydENvbXBsZXRlKCk7Ci0gICAgCi0gICAgaWYgKGZyYW1lLT5wYWdlKCktPnNldHRpbmdz
KCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkKKworICAgIC8vIEZJWE1FOiBIYW5kbGUgdGhl
IGNhc2Ugb2YgZnJhbWUgYmVpbmcgTlVMTCBtb3JlIGVsZWdlbnRseS4KKyAgICBpZiAoZnJhbWUg
JiYgZnJhbWUtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBTdHJpbmcgb2xkVmFsdWU7CkBAIC0xNzMsMTIgKzE3NSwx
MyBAQCB2b2lkIFN0b3JhZ2VBcmVhSW1wbDo6Y2xlYXIoRnJhbWUqIGZyYW1lCiB7CiAgICAgQVNT
RVJUKCFtX2lzU2h1dGRvd24pOwogICAgIGJsb2NrVW50aWxJbXBvcnRDb21wbGV0ZSgpOwotICAg
IAotICAgIGlmIChmcmFtZS0+cGFnZSgpLT5zZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFi
bGVkKCkpCisKKyAgICAvLyBGSVhNRTogSGFuZGxlIHRoZSBjYXNlIG9mIGZyYW1lIGJlaW5nIE5V
TEwgbW9yZSBlbGVnZW50bHkuCisgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5wYWdlKCktPnNldHRp
bmdzKCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAor
CiAgICAgbV9zdG9yYWdlTWFwID0gU3RvcmFnZU1hcDo6Y3JlYXRlKCk7Ci0gICAgCisKICAgICBp
ZiAobV9zdG9yYWdlQXJlYVN5bmMpCiAgICAgICAgIG1fc3RvcmFnZUFyZWFTeW5jLT5zY2hlZHVs
ZUNsZWFyKCk7CiAgICAgZGlzcGF0Y2hTdG9yYWdlRXZlbnQoU3RyaW5nKCksIFN0cmluZygpLCBT
dHJpbmcoKSwgZnJhbWUpOwpAQCAtMTg4LDcgKzE5MSw3IEBAIGJvb2wgU3RvcmFnZUFyZWFJbXBs
Ojpjb250YWlucyhjb25zdCBTdHIKIHsKICAgICBBU1NFUlQoIW1faXNTaHV0ZG93bik7CiAgICAg
YmxvY2tVbnRpbEltcG9ydENvbXBsZXRlKCk7Ci0gICAgCisKICAgICByZXR1cm4gbV9zdG9yYWdl
TWFwLT5jb250YWlucyhrZXkpOwogfQogCkBAIC0yMjEsMjIgKzIyNCwyNSBAQCB2b2lkIFN0b3Jh
Z2VBcmVhSW1wbDo6YmxvY2tVbnRpbEltcG9ydENvCiAKIHZvaWQgU3RvcmFnZUFyZWFJbXBsOjpk
aXNwYXRjaFN0b3JhZ2VFdmVudChjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgRnJhbWUqIHNvdXJjZUZyYW1lKQogewotICAg
IC8vIFdlIG5lZWQgdG8gY29weSBhbGwgcmVsZXZhbnQgZnJhbWVzIGZyb20gZXZlcnkgcGFnZSB0
byBhIHZlY3RvciBzaW5jZSBzZW5kaW5nIHRoZSBldmVudCB0byBvbmUgZnJhbWUgbWlnaHQgbXV0
YXRlIHRoZSBmcmFtZSB0cmVlCi0gICAgLy8gb2YgYW55IGdpdmVuIHBhZ2UgaW4gdGhlIGdyb3Vw
IG9yIG11dGF0ZSB0aGUgcGFnZSBncm91cCBpdHNlbGYuCi0gICAgVmVjdG9yPFJlZlB0cjxGcmFt
ZT4gPiBmcmFtZXM7CisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAgLy8gRklYTUU6IEV2ZW50
cyBhcmUgY3VycmVudGx5IGJyb2tlbiBpbiBDaHJvbWl1bS4KKyAgICByZXR1cm47CisjZW5kaWYK
IAotICAgIC8vIEZJWE1FOiBXaGVuIGNhbiB0aGlzIG9jY3VyPwogICAgIFBhZ2UqIHBhZ2UgPSBz
b3VyY2VGcmFtZS0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgLy8gV2UgbmVlZCB0byBjb3B5IGFsbCByZWxldmFudCBmcmFtZXMgZnJvbSBldmVyeSBwYWdl
IHRvIGEgdmVjdG9yIHNpbmNlIHNlbmRpbmcgdGhlIGV2ZW50IHRvIG9uZSBmcmFtZSBtaWdodCBt
dXRhdGUgdGhlIGZyYW1lIHRyZWUKKyAgICAvLyBvZiBhbnkgZ2l2ZW4gcGFnZSBpbiB0aGUgZ3Jv
dXAgb3IgbXV0YXRlIHRoZSBwYWdlIGdyb3VwIGl0c2VsZi4KKyAgICBWZWN0b3I8UmVmUHRyPEZy
YW1lPiA+IGZyYW1lczsKICAgICBpZiAobV9zdG9yYWdlVHlwZSA9PSBTZXNzaW9uU3RvcmFnZSkg
ewogICAgICAgICAvLyBTZW5kIGV2ZW50cyBvbmx5IHRvIG91ciBwYWdlLgogICAgICAgICBmb3Ig
KEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+
dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVu
dCgpLT5zZWN1cml0eU9yaWdpbigpLT5lcXVhbChzZWN1cml0eU9yaWdpbigpKSkKICAgICAgICAg
ICAgICAgICBmcmFtZXMuYXBwZW5kKGZyYW1lKTsKICAgICAgICAgfQotICAgICAgICAKKwogICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJhbWVzLnNpemUoKTsgKytpKQogICAgICAg
ICAgICAgZnJhbWVzW2ldLT5kb2N1bWVudCgpLT5kaXNwYXRjaFdpbmRvd0V2ZW50KFN0b3JhZ2VF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUsIG5l
d1ZhbHVlLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+ZG9jdW1lbnRVUkkoKSwgc291cmNlRnJh
bWUtPmRvbVdpbmRvdygpLCBmcmFtZXNbaV0tPmRvbVdpbmRvdygpLT5zZXNzaW9uU3RvcmFnZSgp
KSk7CiAgICAgfSBlbHNlIHsKQEAgLTI0OSwxMCArMjU1LDEwIEBAIHZvaWQgU3RvcmFnZUFyZWFJ
bXBsOjpkaXNwYXRjaFN0b3JhZ2VFdmUKICAgICAgICAgICAgICAgICAgICAgZnJhbWVzLmFwcGVu
ZChmcmFtZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgCisKICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZyYW1lcy5zaXplKCk7ICsraSkKICAgICAgICAgICAg
IGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZGlzcGF0Y2hXaW5kb3dFdmVudChTdG9yYWdlRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1
ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPmRvY3VtZW50VVJJKCksIHNvdXJjZUZyYW1lLT5k
b21XaW5kb3coKSwgZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+bG9jYWxTdG9yYWdlKCkpKTsKLSAg
ICB9ICAgICAgICAKKyAgICB9CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
TmFtZXNwYWNlSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VO
YW1lc3BhY2VJbXBsLmNwcAkocmV2aXNpb24gNDYzODcpCisrKyBXZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZU5hbWVzcGFjZUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3IEBAIFBh
c3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWUKIAogU3RvcmFnZU5hbWVzcGFj
ZUltcGw6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBlLCBjb25z
dCBTdHJpbmcmIHBhdGgpCiAgICAgOiBtX3N0b3JhZ2VUeXBlKHN0b3JhZ2VUeXBlKQotICAgICwg
bV9wYXRoKHBhdGguY29weSgpKSAgLy8gRklYTUU6IElzIHRoZSAuY29weSBuZWNlc3Nhcnk/Cisg
ICAgLCBtX3BhdGgocGF0aC5jb3B5KCkpCiAgICAgLCBtX3N5bmNNYW5hZ2VyKDApCiAjaWZuZGVm
IE5ERUJVRwogICAgICwgbV9pc1NodXRkb3duKGZhbHNlKQpAQCAtODgsNiArODgsNyBAQCBQYXNz
UmVmUHRyPFN0b3JhZ2VOYW1lc3BhY2U+IFN0b3JhZ2VOYW1lCiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKICAgICBBU1NFUlQoIW1faXNTaHV0ZG93bik7CisgICAgQVNTRVJUKG1fc3Rv
cmFnZVR5cGUgPT0gU2Vzc2lvblN0b3JhZ2UpOwogCiAgICAgU3RvcmFnZU5hbWVzcGFjZUltcGwq
IG5ld05hbWVzcGFjZSA9IG5ldyBTdG9yYWdlTmFtZXNwYWNlSW1wbChtX3N0b3JhZ2VUeXBlLCBt
X3BhdGgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33670</attachid>
            <date>2009-07-28 14:08:13 -0700</date>
            <delta_ts>2009-07-28 14:30:11 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-27517-20090728140812.patch</filename>
            <type>text/plain</type>
            <size>8113</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjUwMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMDktMDctMjggIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TWlzYyBjbGVhbnVwIGluIERPTSBTdG9yYWdlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc1MTcKKworICAgICAgICBUaGUgU3RvcmFnZUFyZWFJbXBs
IGNoYW5nZXMgYXJlIGFsbCBmb3IgQ2hyb21pdW0uICBCZWNhdXNlIHRoZSBET00gU3RvcmFnZSBp
bXBsZW1lbnRhdGlvbgorICAgICAgICBydW5zIGluIGEgZGlmZmVyZW50IHByb2Nlc3MgZnJvbSB3
aGVyZSB0aGUgRnJhbWUgb2JqZWN0IGxpdmVzLCBDaHJvbWl1bSBwYXNzZXMgaW4gTlVMTAorICAg
ICAgICBmb3IgdGhlIHNvdXJjZUZyYW1lLiAgVGhpcyBhZmZlY3RzIGV2ZW50cyBhbmQgaGFuZGxp
bmcgcHJpdmF0ZUJyb3dzaW5nLiAgQ2hyb21pdW0ncworICAgICAgICBpbmNvZ25pdG8gbW9kZSBk
b2VzIG5vdCB1c2UgdGhlIHByaXZhdGUgYnJvd3Npbmcgc2V0dGluZywgc28gdGhhdCdzIG5vdCBh
IGNvbmNlcm4uICBBcyBmb3IKKyAgICAgICAgZXZlbnRzLCBJJ3ZlIGRlY2lkZWQgdG8gc2ltcGx5
IGRpc2FibGUgdGhlbSBmb3Igbm93LgorCisgICAgICAgIFRoZSBTdG9yYWdlTmFtZXNwYWNlSW1w
bCBjaGFuZ2VzIGdldCByaWQgb2YgYSBzdGFsZSBjb21tZW50IChwYXRoIGlzIC5jb3B5J2VkIGZv
ciB0aHJlYWQtCisgICAgICAgIHNhZmV0eSkgYW5kIHRvIGFkZCBhbiBhc3NlcnQgdGhhdCAuY29w
eSBpcyBvbmx5IGV2ZXIgY2FsbGVkIG9uIGEgU2Vzc2lvblN0b3JhZ2UgbmFtZXNwYWNlLgorCisg
ICAgICAgIEFsc28gY2xlYW5lZCB1cCB0YWlsaW5nIHdoaXRlc3BhY2UgaW4gc2V2ZXJhbCBwYXJ0
cyBvZiBTdG9yYWdlQXJlYUltcGwuY3BwCisKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVh
LmNwcDogUmVtb3ZlZC4gIChJdCB3YXMgZW1wdHkgYW55d2F5LikKKyAgICAgICAgKiBzdG9yYWdl
L1N0b3JhZ2VBcmVhSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcml2YXRlQnJvd3NpbmdF
bmFibGVkKTogRmFjdG9yZWQgb3V0IHRoZSBjaGVjay4KKyAgICAgICAgKFdlYkNvcmU6OlN0b3Jh
Z2VBcmVhSW1wbDo6c2V0SXRlbSk6IE1ha2UgZnJhbWUgb3B0aW9uYWwuCisgICAgICAgIChXZWJD
b3JlOjpTdG9yYWdlQXJlYUltcGw6OnJlbW92ZUl0ZW0pOiBkaXR0bworICAgICAgICAoV2ViQ29y
ZTo6U3RvcmFnZUFyZWFJbXBsOjpjbGVhcik6IGRpdHRvCisgICAgICAgIChXZWJDb3JlOjpTdG9y
YWdlQXJlYUltcGw6OmRpc3BhdGNoU3RvcmFnZUV2ZW50KTogRGlzYWJsZSBpbiBDaHJvbWl1bSBm
b3Igbm93LgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3RvcmFnZU5hbWVzcGFjZUltcGw6OlN0b3JhZ2VOYW1lc3BhY2VJbXBs
KTogUmVtb3ZlIHN0YWxlIGNvbW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTmFtZXNw
YWNlSW1wbDo6Y29weSk6IEFkZCBhc3NlcnQgdGhhdCBpdCdzIFNlc3Npb25TdG9yYWdlLgorCiAy
MDA5LTA3LTI4ICBKYWt1YiBXaWVjem9yZWsgIDxmYXcyMTdAZ21haWwuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VB
cmVhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcAko
cmV2aXNpb24gNDY1MDApCisrKyBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjAsOSArMjAsOSBAQAogICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQogICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwotIAor
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFJbXBsLmgiCiAKQEAg
LTg3LDYgKzg3LDIwIEBAIFN0b3JhZ2VBcmVhSW1wbDo6U3RvcmFnZUFyZWFJbXBsKFNlY3VyaXQK
ICAgICBBU1NFUlQoIW1faXNTaHV0ZG93bik7CiB9CiAKKworc3RhdGljIGJvb2wgcHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZChGcmFtZSogZnJhbWUpCit7CisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisg
ICAgLy8gVGhlIGZyYW1lIHBvaW50ZXIgY2FuIGJlIE5VTEwgaW4gQ2hyb21pdW0gc2luY2UgdGhp
cyBjYWxsIGlzIG1hZGUgaW4gYSBkaWZmZXJlbnQKKyAgICAvLyBwcm9jZXNzIGZyb20gd2hlcmUg
dGhlIEZyYW1lIG9iamVjdCBleGlzdHMuICBMdWNraWx5LCBwcml2YXRlIGJyb3dzZWluZyBpcwor
ICAgIC8vIGltcGxlbWVudGVkIGRpZmZlcmVudGx5IGluIENocm9taXVtLCBzbyBpdCdkIG5ldmVy
IHJldHVybiB0cnVlIGFueXdheS4KKyAgICBBU1NFUlQoIWZyYW1lKTsKKyAgICByZXR1cm4gZmFs
c2U7CisjZWxzZQorICAgIHJldHVybiBmcmFtZS0+cGFnZSgpLT5zZXR0aW5ncygpLT5wcml2YXRl
QnJvd3NpbmdFbmFibGVkKCk7CisjZW5kaWYKK30KKwogdW5zaWduZWQgU3RvcmFnZUFyZWFJbXBs
OjpsZW5ndGgoKSBjb25zdAogewogICAgIEFTU0VSVCghbV9pc1NodXRkb3duKTsKQEAgLTk3LDE0
ICsxMTEsMTQgQEAgU3RyaW5nIFN0b3JhZ2VBcmVhSW1wbDo6a2V5KHVuc2lnbmVkIGluZAogewog
ICAgIEFTU0VSVCghbV9pc1NodXRkb3duKTsKICAgICBibG9ja1VudGlsSW1wb3J0Q29tcGxldGUo
KTsKLSAgICAKKwogICAgIFN0cmluZyBrZXk7Ci0gICAgCisKICAgICBpZiAoIW1fc3RvcmFnZU1h
cC0+a2V5KGluZGV4LCBrZXkpKSB7CiAgICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7CiAgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKICAgICB9Ci0gICAgICAgIAorCiAgICAgcmV0dXJuIGtleTsK
IH0KIApAQCAtMTEyLDcgKzEyNiw3IEBAIFN0cmluZyBTdG9yYWdlQXJlYUltcGw6OmdldEl0ZW0o
Y29uc3QgU3QKIHsKICAgICBBU1NFUlQoIW1faXNTaHV0ZG93bik7CiAgICAgYmxvY2tVbnRpbElt
cG9ydENvbXBsZXRlKCk7Ci0gICAgCisKICAgICByZXR1cm4gbV9zdG9yYWdlTWFwLT5nZXRJdGVt
KGtleSk7CiB9CiAKQEAgLTEyMSw4ICsxMzUsOCBAQCB2b2lkIFN0b3JhZ2VBcmVhSW1wbDo6c2V0
SXRlbShjb25zdCBTdHJpCiAgICAgQVNTRVJUKCFtX2lzU2h1dGRvd24pOwogICAgIEFTU0VSVCgh
dmFsdWUuaXNOdWxsKCkpOwogICAgIGJsb2NrVW50aWxJbXBvcnRDb21wbGV0ZSgpOwotICAgIAot
ICAgIGlmIChmcmFtZS0+cGFnZSgpLT5zZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVk
KCkpIHsKKworICAgIGlmIChwcml2YXRlQnJvd3NpbmdFbmFibGVkKGZyYW1lKSkgewogICAgICAg
ICBlYyA9IFFVT1RBX0VYQ0VFREVEX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEz
MywxMCArMTQ3LDEwIEBAIHZvaWQgU3RvcmFnZUFyZWFJbXBsOjpzZXRJdGVtKGNvbnN0IFN0cmkK
ICAgICAvLyAgICAgZWMgPSBRVU9UQV9FWENFRURFRF9FUlI7CiAgICAgLy8gICAgIHJldHVybjsK
ICAgICAvLyB9Ci0gICAgCi0gICAgU3RyaW5nIG9sZFZhbHVlOyAgIAorCisgICAgU3RyaW5nIG9s
ZFZhbHVlOwogICAgIFJlZlB0cjxTdG9yYWdlTWFwPiBuZXdNYXAgPSBtX3N0b3JhZ2VNYXAtPnNl
dEl0ZW0oa2V5LCB2YWx1ZSwgb2xkVmFsdWUpOwotICAgIAorCiAgICAgaWYgKG5ld01hcCkKICAg
ICAgICAgbV9zdG9yYWdlTWFwID0gbmV3TWFwLnJlbGVhc2UoKTsKIApAQCAtMTUyLDggKzE2Niw4
IEBAIHZvaWQgU3RvcmFnZUFyZWFJbXBsOjpyZW1vdmVJdGVtKGNvbnN0IFMKIHsKICAgICBBU1NF
UlQoIW1faXNTaHV0ZG93bik7CiAgICAgYmxvY2tVbnRpbEltcG9ydENvbXBsZXRlKCk7Ci0gICAg
Ci0gICAgaWYgKGZyYW1lLT5wYWdlKCktPnNldHRpbmdzKCktPnByaXZhdGVCcm93c2luZ0VuYWJs
ZWQoKSkKKworICAgIGlmIChwcml2YXRlQnJvd3NpbmdFbmFibGVkKGZyYW1lKSkgewogICAgICAg
ICByZXR1cm47CiAKICAgICBTdHJpbmcgb2xkVmFsdWU7CkBAIC0xNzMsMTIgKzE4NywxMiBAQCB2
b2lkIFN0b3JhZ2VBcmVhSW1wbDo6Y2xlYXIoRnJhbWUqIGZyYW1lCiB7CiAgICAgQVNTRVJUKCFt
X2lzU2h1dGRvd24pOwogICAgIGJsb2NrVW50aWxJbXBvcnRDb21wbGV0ZSgpOwotICAgIAotICAg
IGlmIChmcmFtZS0+cGFnZSgpLT5zZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkp
CisKKyAgICBpZiAocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChmcmFtZSkpIHsKICAgICAgICAgcmV0
dXJuOwotICAgIAorCiAgICAgbV9zdG9yYWdlTWFwID0gU3RvcmFnZU1hcDo6Y3JlYXRlKCk7Ci0g
ICAgCisKICAgICBpZiAobV9zdG9yYWdlQXJlYVN5bmMpCiAgICAgICAgIG1fc3RvcmFnZUFyZWFT
eW5jLT5zY2hlZHVsZUNsZWFyKCk7CiAgICAgZGlzcGF0Y2hTdG9yYWdlRXZlbnQoU3RyaW5nKCks
IFN0cmluZygpLCBTdHJpbmcoKSwgZnJhbWUpOwpAQCAtMTg4LDcgKzIwMiw3IEBAIGJvb2wgU3Rv
cmFnZUFyZWFJbXBsOjpjb250YWlucyhjb25zdCBTdHIKIHsKICAgICBBU1NFUlQoIW1faXNTaHV0
ZG93bik7CiAgICAgYmxvY2tVbnRpbEltcG9ydENvbXBsZXRlKCk7Ci0gICAgCisKICAgICByZXR1
cm4gbV9zdG9yYWdlTWFwLT5jb250YWlucyhrZXkpOwogfQogCkBAIC0yMjEsMjIgKzIzNSwyNSBA
QCB2b2lkIFN0b3JhZ2VBcmVhSW1wbDo6YmxvY2tVbnRpbEltcG9ydENvCiAKIHZvaWQgU3RvcmFn
ZUFyZWFJbXBsOjpkaXNwYXRjaFN0b3JhZ2VFdmVudChjb25zdCBTdHJpbmcmIGtleSwgY29uc3Qg
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgRnJhbWUqIHNvdXJjZUZy
YW1lKQogewotICAgIC8vIFdlIG5lZWQgdG8gY29weSBhbGwgcmVsZXZhbnQgZnJhbWVzIGZyb20g
ZXZlcnkgcGFnZSB0byBhIHZlY3RvciBzaW5jZSBzZW5kaW5nIHRoZSBldmVudCB0byBvbmUgZnJh
bWUgbWlnaHQgbXV0YXRlIHRoZSBmcmFtZSB0cmVlCi0gICAgLy8gb2YgYW55IGdpdmVuIHBhZ2Ug
aW4gdGhlIGdyb3VwIG9yIG11dGF0ZSB0aGUgcGFnZSBncm91cCBpdHNlbGYuCi0gICAgVmVjdG9y
PFJlZlB0cjxGcmFtZT4gPiBmcmFtZXM7CisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAgLy8g
RklYTUU6IEV2ZW50cyBhcmUgY3VycmVudGx5IGJyb2tlbiBpbiBDaHJvbWl1bS4KKyAgICByZXR1
cm47CisjZW5kaWYKIAotICAgIC8vIEZJWE1FOiBXaGVuIGNhbiB0aGlzIG9jY3VyPwogICAgIFBh
Z2UqIHBhZ2UgPSBzb3VyY2VGcmFtZS0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAg
cmV0dXJuOwogCisgICAgLy8gV2UgbmVlZCB0byBjb3B5IGFsbCByZWxldmFudCBmcmFtZXMgZnJv
bSBldmVyeSBwYWdlIHRvIGEgdmVjdG9yIHNpbmNlIHNlbmRpbmcgdGhlIGV2ZW50IHRvIG9uZSBm
cmFtZSBtaWdodCBtdXRhdGUgdGhlIGZyYW1lIHRyZWUKKyAgICAvLyBvZiBhbnkgZ2l2ZW4gcGFn
ZSBpbiB0aGUgZ3JvdXAgb3IgbXV0YXRlIHRoZSBwYWdlIGdyb3VwIGl0c2VsZi4KKyAgICBWZWN0
b3I8UmVmUHRyPEZyYW1lPiA+IGZyYW1lczsKICAgICBpZiAobV9zdG9yYWdlVHlwZSA9PSBTZXNz
aW9uU3RvcmFnZSkgewogICAgICAgICAvLyBTZW5kIGV2ZW50cyBvbmx5IHRvIG91ciBwYWdlLgog
ICAgICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJh
bWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICAgICAgaWYgKGZy
YW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5lcXVhbChzZWN1cml0eU9yaWdpbigp
KSkKICAgICAgICAgICAgICAgICBmcmFtZXMuYXBwZW5kKGZyYW1lKTsKICAgICAgICAgfQotICAg
ICAgICAKKwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJhbWVzLnNpemUoKTsg
KytpKQogICAgICAgICAgICAgZnJhbWVzW2ldLT5kb2N1bWVudCgpLT5kaXNwYXRjaFdpbmRvd0V2
ZW50KFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwg
b2xkVmFsdWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+ZG9jdW1lbnRVUkko
KSwgc291cmNlRnJhbWUtPmRvbVdpbmRvdygpLCBmcmFtZXNbaV0tPmRvbVdpbmRvdygpLT5zZXNz
aW9uU3RvcmFnZSgpKSk7CiAgICAgfSBlbHNlIHsKQEAgLTI0OSwxMCArMjY2LDEwIEBAIHZvaWQg
U3RvcmFnZUFyZWFJbXBsOjpkaXNwYXRjaFN0b3JhZ2VFdmUKICAgICAgICAgICAgICAgICAgICAg
ZnJhbWVzLmFwcGVuZChmcmFtZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAg
CisKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZyYW1lcy5zaXplKCk7ICsraSkK
ICAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZGlzcGF0Y2hXaW5kb3dFdmVudChT
dG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXksIG9sZFZh
bHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPmRvY3VtZW50VVJJKCksIHNv
dXJjZUZyYW1lLT5kb21XaW5kb3coKSwgZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+bG9jYWxTdG9y
YWdlKCkpKTsKLSAgICB9ICAgICAgICAKKyAgICB9CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAkocmV2aXNpb24gNDY1MDApCisrKyBXZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3
ICs2NCw3IEBAIFBhc3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWUKIAogU3Rv
cmFnZU5hbWVzcGFjZUltcGw6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlIHN0b3Jh
Z2VUeXBlLCBjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgOiBtX3N0b3JhZ2VUeXBlKHN0b3JhZ2VU
eXBlKQotICAgICwgbV9wYXRoKHBhdGguY29weSgpKSAgLy8gRklYTUU6IElzIHRoZSAuY29weSBu
ZWNlc3Nhcnk/CisgICAgLCBtX3BhdGgocGF0aC5jb3B5KCkpCiAgICAgLCBtX3N5bmNNYW5hZ2Vy
KDApCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9pc1NodXRkb3duKGZhbHNlKQpAQCAtODgsNiAr
ODgsNyBAQCBQYXNzUmVmUHRyPFN0b3JhZ2VOYW1lc3BhY2U+IFN0b3JhZ2VOYW1lCiB7CiAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoIW1faXNTaHV0ZG93bik7CisgICAg
QVNTRVJUKG1fc3RvcmFnZVR5cGUgPT0gU2Vzc2lvblN0b3JhZ2UpOwogCiAgICAgU3RvcmFnZU5h
bWVzcGFjZUltcGwqIG5ld05hbWVzcGFjZSA9IG5ldyBTdG9yYWdlTmFtZXNwYWNlSW1wbChtX3N0
b3JhZ2VUeXBlLCBtX3BhdGgpOw==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33672</attachid>
            <date>2009-07-28 14:31:45 -0700</date>
            <delta_ts>2009-07-28 14:57:09 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-27517-20090728143144.patch</filename>
            <type>text/plain</type>
            <size>8107</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjUwMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMDktMDctMjggIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TWlzYyBjbGVhbnVwIGluIERPTSBTdG9yYWdlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc1MTcKKworICAgICAgICBUaGUgU3RvcmFnZUFyZWFJbXBs
IGNoYW5nZXMgYXJlIGFsbCBmb3IgQ2hyb21pdW0uICBCZWNhdXNlIHRoZSBET00gU3RvcmFnZSBp
bXBsZW1lbnRhdGlvbgorICAgICAgICBydW5zIGluIGEgZGlmZmVyZW50IHByb2Nlc3MgZnJvbSB3
aGVyZSB0aGUgRnJhbWUgb2JqZWN0IGxpdmVzLCBDaHJvbWl1bSBwYXNzZXMgaW4gTlVMTAorICAg
ICAgICBmb3IgdGhlIHNvdXJjZUZyYW1lLiAgVGhpcyBhZmZlY3RzIGV2ZW50cyBhbmQgaGFuZGxp
bmcgcHJpdmF0ZUJyb3dzaW5nLiAgQ2hyb21pdW0ncworICAgICAgICBpbmNvZ25pdG8gbW9kZSBk
b2VzIG5vdCB1c2UgdGhlIHByaXZhdGUgYnJvd3Npbmcgc2V0dGluZywgc28gdGhhdCdzIG5vdCBh
IGNvbmNlcm4uICBBcyBmb3IKKyAgICAgICAgZXZlbnRzLCBJJ3ZlIGRlY2lkZWQgdG8gc2ltcGx5
IGRpc2FibGUgdGhlbSBmb3Igbm93LgorCisgICAgICAgIFRoZSBTdG9yYWdlTmFtZXNwYWNlSW1w
bCBjaGFuZ2VzIGdldCByaWQgb2YgYSBzdGFsZSBjb21tZW50IChwYXRoIGlzIC5jb3B5J2VkIGZv
ciB0aHJlYWQtCisgICAgICAgIHNhZmV0eSkgYW5kIHRvIGFkZCBhbiBhc3NlcnQgdGhhdCAuY29w
eSBpcyBvbmx5IGV2ZXIgY2FsbGVkIG9uIGEgU2Vzc2lvblN0b3JhZ2UgbmFtZXNwYWNlLgorCisg
ICAgICAgIEFsc28gY2xlYW5lZCB1cCB0YWlsaW5nIHdoaXRlc3BhY2UgaW4gc2V2ZXJhbCBwYXJ0
cyBvZiBTdG9yYWdlQXJlYUltcGwuY3BwCisKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVh
LmNwcDogUmVtb3ZlZC4gIChJdCB3YXMgZW1wdHkgYW55d2F5LikKKyAgICAgICAgKiBzdG9yYWdl
L1N0b3JhZ2VBcmVhSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcml2YXRlQnJvd3NpbmdF
bmFibGVkKTogRmFjdG9yZWQgb3V0IHRoZSBjaGVjay4KKyAgICAgICAgKFdlYkNvcmU6OlN0b3Jh
Z2VBcmVhSW1wbDo6c2V0SXRlbSk6IE1ha2UgZnJhbWUgb3B0aW9uYWwuCisgICAgICAgIChXZWJD
b3JlOjpTdG9yYWdlQXJlYUltcGw6OnJlbW92ZUl0ZW0pOiBkaXR0bworICAgICAgICAoV2ViQ29y
ZTo6U3RvcmFnZUFyZWFJbXBsOjpjbGVhcik6IGRpdHRvCisgICAgICAgIChXZWJDb3JlOjpTdG9y
YWdlQXJlYUltcGw6OmRpc3BhdGNoU3RvcmFnZUV2ZW50KTogRGlzYWJsZSBpbiBDaHJvbWl1bSBm
b3Igbm93LgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3RvcmFnZU5hbWVzcGFjZUltcGw6OlN0b3JhZ2VOYW1lc3BhY2VJbXBs
KTogUmVtb3ZlIHN0YWxlIGNvbW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTmFtZXNw
YWNlSW1wbDo6Y29weSk6IEFkZCBhc3NlcnQgdGhhdCBpdCdzIFNlc3Npb25TdG9yYWdlLgorCiAy
MDA5LTA3LTI4ICBKYWt1YiBXaWVjem9yZWsgIDxmYXcyMTdAZ21haWwuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VB
cmVhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcAko
cmV2aXNpb24gNDY1MDApCisrKyBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjAsOSArMjAsOSBAQAogICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQogICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwotIAor
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFJbXBsLmgiCiAKQEAg
LTg3LDYgKzg3LDE5IEBAIFN0b3JhZ2VBcmVhSW1wbDo6U3RvcmFnZUFyZWFJbXBsKFNlY3VyaXQK
ICAgICBBU1NFUlQoIW1faXNTaHV0ZG93bik7CiB9CiAKK3N0YXRpYyBib29sIHByaXZhdGVCcm93
c2luZ0VuYWJsZWQoRnJhbWUqIGZyYW1lKQoreworI2lmIFBMQVRGT1JNKENIUk9NSVVNKQorICAg
IC8vIFRoZSBmcmFtZSBwb2ludGVyIGNhbiBiZSBOVUxMIGluIENocm9taXVtIHNpbmNlIHRoaXMg
Y2FsbCBpcyBtYWRlIGluIGEgZGlmZmVyZW50CisgICAgLy8gcHJvY2VzcyBmcm9tIHdoZXJlIHRo
ZSBGcmFtZSBvYmplY3QgZXhpc3RzLiAgTHVja2lseSwgcHJpdmF0ZSBicm93c2VpbmcgaXMKKyAg
ICAvLyBpbXBsZW1lbnRlZCBkaWZmZXJlbnRseSBpbiBDaHJvbWl1bSwgc28gaXQnZCBuZXZlciBy
ZXR1cm4gdHJ1ZSBhbnl3YXkuCisgICAgQVNTRVJUKCFmcmFtZSk7CisgICAgcmV0dXJuIGZhbHNl
OworI2Vsc2UKKyAgICByZXR1cm4gZnJhbWUtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+cHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZCgpOworI2VuZGlmCit9CisKIHVuc2lnbmVkIFN0b3JhZ2VBcmVhSW1wbDo6
bGVuZ3RoKCkgY29uc3QKIHsKICAgICBBU1NFUlQoIW1faXNTaHV0ZG93bik7CkBAIC05NywxNCAr
MTEwLDE0IEBAIFN0cmluZyBTdG9yYWdlQXJlYUltcGw6OmtleSh1bnNpZ25lZCBpbmQKIHsKICAg
ICBBU1NFUlQoIW1faXNTaHV0ZG93bik7CiAgICAgYmxvY2tVbnRpbEltcG9ydENvbXBsZXRlKCk7
Ci0gICAgCisKICAgICBTdHJpbmcga2V5OwotICAgIAorCiAgICAgaWYgKCFtX3N0b3JhZ2VNYXAt
PmtleShpbmRleCwga2V5KSkgewogICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwogICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CiAgICAgfQotICAgICAgICAKKwogICAgIHJldHVybiBrZXk7CiB9
CiAKQEAgLTExMiw3ICsxMjUsNyBAQCBTdHJpbmcgU3RvcmFnZUFyZWFJbXBsOjpnZXRJdGVtKGNv
bnN0IFN0CiB7CiAgICAgQVNTRVJUKCFtX2lzU2h1dGRvd24pOwogICAgIGJsb2NrVW50aWxJbXBv
cnRDb21wbGV0ZSgpOwotICAgIAorCiAgICAgcmV0dXJuIG1fc3RvcmFnZU1hcC0+Z2V0SXRlbShr
ZXkpOwogfQogCkBAIC0xMjEsOCArMTM0LDggQEAgdm9pZCBTdG9yYWdlQXJlYUltcGw6OnNldEl0
ZW0oY29uc3QgU3RyaQogICAgIEFTU0VSVCghbV9pc1NodXRkb3duKTsKICAgICBBU1NFUlQoIXZh
bHVlLmlzTnVsbCgpKTsKICAgICBibG9ja1VudGlsSW1wb3J0Q29tcGxldGUoKTsKLSAgICAKLSAg
ICBpZiAoZnJhbWUtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgp
KSB7CisKKyAgICBpZiAocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChmcmFtZSkpIHsKICAgICAgICAg
ZWMgPSBRVU9UQV9FWENFRURFRF9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMzMs
MTAgKzE0NiwxMCBAQCB2b2lkIFN0b3JhZ2VBcmVhSW1wbDo6c2V0SXRlbShjb25zdCBTdHJpCiAg
ICAgLy8gICAgIGVjID0gUVVPVEFfRVhDRUVERURfRVJSOwogICAgIC8vICAgICByZXR1cm47CiAg
ICAgLy8gfQotICAgIAotICAgIFN0cmluZyBvbGRWYWx1ZTsgICAKKworICAgIFN0cmluZyBvbGRW
YWx1ZTsKICAgICBSZWZQdHI8U3RvcmFnZU1hcD4gbmV3TWFwID0gbV9zdG9yYWdlTWFwLT5zZXRJ
dGVtKGtleSwgdmFsdWUsIG9sZFZhbHVlKTsKLSAgICAKKwogICAgIGlmIChuZXdNYXApCiAgICAg
ICAgIG1fc3RvcmFnZU1hcCA9IG5ld01hcC5yZWxlYXNlKCk7CiAKQEAgLTE1Miw4ICsxNjUsOCBA
QCB2b2lkIFN0b3JhZ2VBcmVhSW1wbDo6cmVtb3ZlSXRlbShjb25zdCBTCiB7CiAgICAgQVNTRVJU
KCFtX2lzU2h1dGRvd24pOwogICAgIGJsb2NrVW50aWxJbXBvcnRDb21wbGV0ZSgpOwotICAgIAot
ICAgIGlmIChmcmFtZS0+cGFnZSgpLT5zZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVk
KCkpCisKKyAgICBpZiAocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChmcmFtZSkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIFN0cmluZyBvbGRWYWx1ZTsKQEAgLTE3MywxMiArMTg2LDEyIEBAIHZvaWQg
U3RvcmFnZUFyZWFJbXBsOjpjbGVhcihGcmFtZSogZnJhbWUKIHsKICAgICBBU1NFUlQoIW1faXNT
aHV0ZG93bik7CiAgICAgYmxvY2tVbnRpbEltcG9ydENvbXBsZXRlKCk7Ci0gICAgCi0gICAgaWYg
KGZyYW1lLT5wYWdlKCktPnNldHRpbmdzKCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkKKwor
ICAgIGlmIChwcml2YXRlQnJvd3NpbmdFbmFibGVkKGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwot
ICAgIAorCiAgICAgbV9zdG9yYWdlTWFwID0gU3RvcmFnZU1hcDo6Y3JlYXRlKCk7Ci0gICAgCisK
ICAgICBpZiAobV9zdG9yYWdlQXJlYVN5bmMpCiAgICAgICAgIG1fc3RvcmFnZUFyZWFTeW5jLT5z
Y2hlZHVsZUNsZWFyKCk7CiAgICAgZGlzcGF0Y2hTdG9yYWdlRXZlbnQoU3RyaW5nKCksIFN0cmlu
ZygpLCBTdHJpbmcoKSwgZnJhbWUpOwpAQCAtMTg4LDcgKzIwMSw3IEBAIGJvb2wgU3RvcmFnZUFy
ZWFJbXBsOjpjb250YWlucyhjb25zdCBTdHIKIHsKICAgICBBU1NFUlQoIW1faXNTaHV0ZG93bik7
CiAgICAgYmxvY2tVbnRpbEltcG9ydENvbXBsZXRlKCk7Ci0gICAgCisKICAgICByZXR1cm4gbV9z
dG9yYWdlTWFwLT5jb250YWlucyhrZXkpOwogfQogCkBAIC0yMjEsMjIgKzIzNCwyNSBAQCB2b2lk
IFN0b3JhZ2VBcmVhSW1wbDo6YmxvY2tVbnRpbEltcG9ydENvCiAKIHZvaWQgU3RvcmFnZUFyZWFJ
bXBsOjpkaXNwYXRjaFN0b3JhZ2VFdmVudChjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgRnJhbWUqIHNvdXJjZUZyYW1lKQog
ewotICAgIC8vIFdlIG5lZWQgdG8gY29weSBhbGwgcmVsZXZhbnQgZnJhbWVzIGZyb20gZXZlcnkg
cGFnZSB0byBhIHZlY3RvciBzaW5jZSBzZW5kaW5nIHRoZSBldmVudCB0byBvbmUgZnJhbWUgbWln
aHQgbXV0YXRlIHRoZSBmcmFtZSB0cmVlCi0gICAgLy8gb2YgYW55IGdpdmVuIHBhZ2UgaW4gdGhl
IGdyb3VwIG9yIG11dGF0ZSB0aGUgcGFnZSBncm91cCBpdHNlbGYuCi0gICAgVmVjdG9yPFJlZlB0
cjxGcmFtZT4gPiBmcmFtZXM7CisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAgLy8gRklYTUU6
IEV2ZW50cyBhcmUgY3VycmVudGx5IGJyb2tlbiBpbiBDaHJvbWl1bS4KKyAgICByZXR1cm47Cisj
ZW5kaWYKIAotICAgIC8vIEZJWE1FOiBXaGVuIGNhbiB0aGlzIG9jY3VyPwogICAgIFBhZ2UqIHBh
Z2UgPSBzb3VyY2VGcmFtZS0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJu
OwogCisgICAgLy8gV2UgbmVlZCB0byBjb3B5IGFsbCByZWxldmFudCBmcmFtZXMgZnJvbSBldmVy
eSBwYWdlIHRvIGEgdmVjdG9yIHNpbmNlIHNlbmRpbmcgdGhlIGV2ZW50IHRvIG9uZSBmcmFtZSBt
aWdodCBtdXRhdGUgdGhlIGZyYW1lIHRyZWUKKyAgICAvLyBvZiBhbnkgZ2l2ZW4gcGFnZSBpbiB0
aGUgZ3JvdXAgb3IgbXV0YXRlIHRoZSBwYWdlIGdyb3VwIGl0c2VsZi4KKyAgICBWZWN0b3I8UmVm
UHRyPEZyYW1lPiA+IGZyYW1lczsKICAgICBpZiAobV9zdG9yYWdlVHlwZSA9PSBTZXNzaW9uU3Rv
cmFnZSkgewogICAgICAgICAvLyBTZW5kIGV2ZW50cyBvbmx5IHRvIG91ciBwYWdlLgogICAgICAg
ICBmb3IgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBm
cmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICAgICAgaWYgKGZyYW1lLT5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5lcXVhbChzZWN1cml0eU9yaWdpbigpKSkKICAg
ICAgICAgICAgICAgICBmcmFtZXMuYXBwZW5kKGZyYW1lKTsKICAgICAgICAgfQotICAgICAgICAK
KwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJhbWVzLnNpemUoKTsgKytpKQog
ICAgICAgICAgICAgZnJhbWVzW2ldLT5kb2N1bWVudCgpLT5kaXNwYXRjaFdpbmRvd0V2ZW50KFN0
b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFs
dWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+ZG9jdW1lbnRVUkkoKSwgc291
cmNlRnJhbWUtPmRvbVdpbmRvdygpLCBmcmFtZXNbaV0tPmRvbVdpbmRvdygpLT5zZXNzaW9uU3Rv
cmFnZSgpKSk7CiAgICAgfSBlbHNlIHsKQEAgLTI0OSwxMCArMjY1LDEwIEBAIHZvaWQgU3RvcmFn
ZUFyZWFJbXBsOjpkaXNwYXRjaFN0b3JhZ2VFdmUKICAgICAgICAgICAgICAgICAgICAgZnJhbWVz
LmFwcGVuZChmcmFtZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgCisKICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZyYW1lcy5zaXplKCk7ICsraSkKICAgICAg
ICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZGlzcGF0Y2hXaW5kb3dFdmVudChTdG9yYWdl
RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBu
ZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPmRvY3VtZW50VVJJKCksIHNvdXJjZUZy
YW1lLT5kb21XaW5kb3coKSwgZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+bG9jYWxTdG9yYWdlKCkp
KTsKLSAgICB9ICAgICAgICAKKyAgICB9CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAkocmV2aXNpb24gNDY1MDApCisrKyBXZWJDb3JlL3N0b3Jh
Z2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3
IEBAIFBhc3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWUKIAogU3RvcmFnZU5h
bWVzcGFjZUltcGw6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBl
LCBjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgOiBtX3N0b3JhZ2VUeXBlKHN0b3JhZ2VUeXBlKQot
ICAgICwgbV9wYXRoKHBhdGguY29weSgpKSAgLy8gRklYTUU6IElzIHRoZSAuY29weSBuZWNlc3Nh
cnk/CisgICAgLCBtX3BhdGgocGF0aC5jb3B5KCkpCiAgICAgLCBtX3N5bmNNYW5hZ2VyKDApCiAj
aWZuZGVmIE5ERUJVRwogICAgICwgbV9pc1NodXRkb3duKGZhbHNlKQpAQCAtODgsNiArODgsNyBA
QCBQYXNzUmVmUHRyPFN0b3JhZ2VOYW1lc3BhY2U+IFN0b3JhZ2VOYW1lCiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoIW1faXNTaHV0ZG93bik7CisgICAgQVNTRVJU
KG1fc3RvcmFnZVR5cGUgPT0gU2Vzc2lvblN0b3JhZ2UpOwogCiAgICAgU3RvcmFnZU5hbWVzcGFj
ZUltcGwqIG5ld05hbWVzcGFjZSA9IG5ldyBTdG9yYWdlTmFtZXNwYWNlSW1wbChtX3N0b3JhZ2VU
eXBlLCBtX3BhdGgpOw==
</data>
<flag name="review"
          id="17896"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>