<?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>81849</bug_id>
          
          <creation_ts>2012-03-21 17:19:08 -0700</creation_ts>
          <short_desc>WebHistory is busted after changing time zone</short_desc>
          <delta_ts>2012-03-22 17:40:10 -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>WebKit API</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>584788</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-21 17:19:08 -0700</bug_when>
    <thetext>All history from WebHistory disappear after changing time zone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584791</commentid>
    <comment_count>1</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-21 17:19:43 -0700</bug_when>
    <thetext>Radar: &lt;rdar://problem/9091908&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584814</commentid>
    <comment_count>2</comment_count>
      <attachid>133154</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-21 17:34:00 -0700</bug_when>
    <thetext>Created attachment 133154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584875</commentid>
    <comment_count>3</comment_count>
      <attachid>133154</attachid>
    <who name="">mitz</who>
    <bug_when>2012-03-21 18:34:18 -0700</bug_when>
    <thetext>Comment on attachment 133154
Patch

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

&gt; Source/WebKit/mac/History/WebHistory.mm:31
&gt; +#import &quot;Foundation/NSTimeZone.h&quot;

This is a system header, so you should use &lt;&gt; instead of &quot;&quot;, and sort it accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584977</commentid>
    <comment_count>4</comment_count>
      <attachid>133154</attachid>
    <who name="">mitz</who>
    <bug_when>2012-03-21 22:11:16 -0700</bug_when>
    <thetext>Comment on attachment 133154
Patch

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

&gt;&gt; Source/WebKit/mac/History/WebHistory.mm:31
&gt;&gt; +#import &quot;Foundation/NSTimeZone.h&quot;
&gt; 
&gt; This is a system header, so you should use &lt;&gt; instead of &quot;&quot;, and sort it accordingly.

Actually, I am pretty sure this #import is unnecessary, since Foundation.h is imported.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584991</commentid>
    <comment_count>5</comment_count>
      <attachid>133154</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-03-21 22:57:44 -0700</bug_when>
    <thetext>Comment on attachment 133154
Patch

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

At least one of these methods get called on every navigation, and probably multiple ones.  I really hate to see the unconditionally added work at the start of rebuildHistoryByDayIfNeeded.

You might be surprised at how heavy handed [NSTimeZone defaultTimeZone] and [NSTimeZone isEqualToTimeZone:] might be.

I would really like us to think harder about how to do this smarter.

&gt; Source/WebKit/mac/History/WebHistory.mm:55
&gt; +static NSTimeZone *_timeZoneOfDayBoundaries = nil;

Why NSTimeZone when the pattern in this file was already to use CFTimeZone?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585014</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-22 00:00:49 -0700</bug_when>
    <thetext>&gt; &gt; This is a system header, so you should use &lt;&gt; instead of &quot;&quot;, and sort it accordingly.
&gt; 
&gt; Actually, I am pretty sure this #import is unnecessary, since Foundation.h is imported.

Yep, that is likely right. I added the header because autocompletion was not working.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585018</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-22 00:16:12 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 133154 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=133154&amp;action=review
&gt; 
&gt; At least one of these methods get called on every navigation, and probably multiple ones.  I really hate to see the unconditionally added work at the start of rebuildHistoryByDayIfNeeded.
&gt; 
&gt; You might be surprised at how heavy handed [NSTimeZone defaultTimeZone] and [NSTimeZone isEqualToTimeZone:] might be.

Note that we were already creating a default time zone for every call.


&gt; &gt; Source/WebKit/mac/History/WebHistory.mm:55
&gt; &gt; +static NSTimeZone *_timeZoneOfDayBoundaries = nil;
&gt; 
&gt; Why NSTimeZone when the pattern in this file was already to use CFTimeZone?

I did not find any way to compare two CFTimeZone equivalent to [NSTimeZone isEqualToTimeZone:].


&gt; I would really like us to think harder about how to do this smarter.

An alternative idea I had is to store all history as a single list of HistoryItem sorted by date in GMT. The split of items by date would be done on the fly with the current TimeZone.

This would make access to the dates O(n), and access by date O(log(n)). Which is why I dismissed this option.

Ideally we would want to be notified first of TimeZone changed but I do not know of any way to do that.

What do you suggest?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585072</commentid>
    <comment_count>8</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-03-22 02:01:46 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; &gt; Source/WebKit/mac/History/WebHistory.mm:55
&gt; &gt; &gt; +static NSTimeZone *_timeZoneOfDayBoundaries = nil;
&gt; &gt; 
&gt; &gt; Why NSTimeZone when the pattern in this file was already to use CFTimeZone?
&gt; 
&gt; I did not find any way to compare two CFTimeZone equivalent to [NSTimeZone isEqualToTimeZone:].

CFEqual is equivalent.

&gt; &gt; I would really like us to think harder about how to do this smarter.
&gt; 
&gt; An alternative idea I had is to store all history as a single list of HistoryItem sorted by date in GMT. The split of items by date would be done on the fly with the current TimeZone.
&gt; 
&gt; This would make access to the dates O(n), and access by date O(log(n)). Which is why I dismissed this option.
&gt; 
&gt; Ideally we would want to be notified first of TimeZone changed but I do not know of any way to do that.

I&apos;m not sure I follow what you&apos;re looking for here, but if it&apos;s knowing when the system time zone changes then NSSystemTimeZoneDidChangeNotification / kCFTimeZoneSystemTimeZoneDidChangeNotification would probably be what you&apos;re after.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585077</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-03-22 02:08:19 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; Ideally we would want to be notified first of TimeZone changed but I do not know of any way to do that.
&gt; 
&gt; I&apos;m not sure I follow what you&apos;re looking for here, but if it&apos;s knowing when the system time zone changes then NSSystemTimeZoneDidChangeNotification / kCFTimeZoneSystemTimeZoneDidChangeNotification would probably be what you&apos;re after.

Ah, you&apos;re concerned that the issue could still occur if the WebKit client accesses WebHistory in response to itself receiving such a notification, before we&apos;ve received the notification and had a chance to perform the appropriate juggling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585079</commentid>
    <comment_count>10</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-22 02:17:11 -0700</bug_when>
    <thetext>&gt; &gt; I did not find any way to compare two CFTimeZone equivalent to [NSTimeZone isEqualToTimeZone:].
&gt; 
&gt; CFEqual is equivalent.

Cool! I learned something :)
I&apos;ll update with CFTypes.


&gt; Ah, you&apos;re concerned that the issue could still occur if the WebKit client accesses WebHistory in response to itself receiving such a notification, before we&apos;ve received the notification and had a chance to perform the appropriate juggling.

Yep, that is my problem with notifications.
The UI needs to update in response to the same notification, the WebHistory must be in a consistent state when accessed at that point.

Maybe the UI should instead respond only to WebHistoryAllItemsRemovedNotification and then WebHistoryItemsAddedNotification?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585093</commentid>
    <comment_count>11</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-22 03:00:20 -0700</bug_when>
    <thetext>&gt; Maybe the UI should instead respond only to WebHistoryAllItemsRemovedNotification and then WebHistoryItemsAddedNotification?

I&apos;ll try that tomorrow. This should be faster and robust enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585390</commentid>
    <comment_count>12</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-03-22 09:43:52 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; (From update of attachment 133154 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=133154&amp;action=review
&gt; &gt; 
&gt; &gt; At least one of these methods get called on every navigation, and probably multiple ones.  I really hate to see the unconditionally added work at the start of rebuildHistoryByDayIfNeeded.
&gt; &gt; 
&gt; &gt; You might be surprised at how heavy handed [NSTimeZone defaultTimeZone] and [NSTimeZone isEqualToTimeZone:] might be.
&gt; 
&gt; Note that we were already creating a default time zone for every call.

Once in 3 calls and zero times in the 4th.

Now twice in 3 calls and once in the 4th call.

&gt; &gt; &gt; Source/WebKit/mac/History/WebHistory.mm:55
&gt; &gt; &gt; +static NSTimeZone *_timeZoneOfDayBoundaries = nil;
&gt; &gt; 
&gt; &gt; Why NSTimeZone when the pattern in this file was already to use CFTimeZone?
&gt; 
&gt; I did not find any way to compare two CFTimeZone equivalent to [NSTimeZone isEqualToTimeZone:].

Mark got this one for you already.

(In reply to comment #10)
&gt; &gt; Ah, you&apos;re concerned that the issue could still occur if the WebKit client accesses WebHistory in response to itself receiving such a notification, before we&apos;ve received the notification and had a chance to perform the appropriate juggling.
&gt; 
&gt; Yep, that is my problem with notifications.
&gt; The UI needs to update in response to the same notification, the WebHistory must be in a consistent state when accessed at that point.
&gt; 
&gt; Maybe the UI should instead respond only to WebHistoryAllItemsRemovedNotification and then WebHistoryItemsAddedNotification?

(In reply to comment #11) 
&gt; I&apos;ll try that tomorrow. This should be faster and robust enough.

I think this is a great way to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585855</commentid>
    <comment_count>13</comment_count>
      <attachid>133383</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-22 16:33:01 -0700</bug_when>
    <thetext>Created attachment 133383
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585887</commentid>
    <comment_count>14</comment_count>
      <attachid>133383</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-03-22 17:13:26 -0700</bug_when>
    <thetext>Comment on attachment 133383
Patch

Awesome!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585903</commentid>
    <comment_count>15</comment_count>
      <attachid>133383</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-22 17:27:30 -0700</bug_when>
    <thetext>Comment on attachment 133383
Patch

Attachment 133383 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12120357</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585916</commentid>
    <comment_count>16</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-22 17:39:39 -0700</bug_when>
    <thetext>Committed r111795: &lt;http://trac.webkit.org/changeset/111795&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585918</commentid>
    <comment_count>17</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-22 17:40:10 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 133383 [details])
&gt; Attachment 133383 [details] did not pass mac-ews (mac):
&gt; Output: http://queues.webkit.org/results/12120357

Really bad timing. That built locally.
I&apos;ll find and land a fix.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133154</attachid>
            <date>2012-03-21 17:34:00 -0700</date>
            <delta_ts>2012-03-22 16:32:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81849-20120321173358.patch</filename>
            <type>text/plain</type>
            <size>6366</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggN2I3NDEzODBl
MTliNzNiYmIzNTZlZjZlZWU0OWI3ZmRkNjZiNmZjZi4uZjgwMmVjNzliODA1MzgzZWM1NTRkYzIw
MzZiYjZlMTIyZTAzNWEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEy
LTAzLTIxICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAg
IFdlYkhpc3RvcnkgaXMgYnVzdGVkIGFmdGVyIGNoYW5naW5nIHRpbWUgem9uZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE4NDkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJIaXN0b3J5IHNwbGl0IHRo
ZSBoaXN0b3J5IGJ5IGRheXMgaW4gX2VudHJpZXNCeURhdGUuCisKKyAgICAgICAgVGhlIGRhdGUg
dXNlZCBmb3IgY2hvb3NpbmcgdGhlIGJ1Y2tldCBvZiBhIG5ldyBlbnRyeSBpcyBjb21wdXRlZAor
ICAgICAgICB3aXRoIHRoZSBzeXN0ZW0gVGltZVpvbmUuCisKKyAgICAgICAgV2hlbiB0aGUgVGlt
ZSBab25lIGNoYW5nZSwgb3IgdGhlIGRheWxpZ2h0IHNhdmluZyB0aW1lIGNoYW5nZSwgYWxsIHRo
ZSBkYXRlcyBhcmUKKyAgICAgICAgaW4gX2VudHJpZXNCeURhdGUgYXJlIG9mZnNldCBmcm9tIHRo
ZSBuZXcgZW50cmllcy4KKworICAgICAgICBUaGlzIHBhdGNoIHNvbHZlcyB0aGUgaXNzdWUgYnkg
cmUtZGlzdHJpYnV0aW5nIHRoZSBXZWJIaXN0b3J5SXRlbSBpZiB0aGUgdGltZSB6b25lCisgICAg
ICAgIGNoYW5nZXMuCisKKyAgICAgICAgRGV0ZWN0aW5nIHRoZSBjaGFuZ2Ugb2YgdGltZSB6b25l
IGNhbm5vdCBiZSBkb25lIGZyb20gTlNOb3RpZmljYXRpb25DZW50ZXIgYmVjYXVzZQorICAgICAg
ICB0aGUgdXNlciBvZiBXZWJIaXN0b3J5IGNvdWxkIHJlY2VpdmUgdGhlIG5vdGlmaWNhdGlvbiBi
ZWZvcmUgV2ViS2l0LgorICAgICAgICBUbyBkZXRlY3QgdGhlIHRpbWUgem9uZSBjaGFuZ2UgaW4g
YSByZWxpYWJsZSB3YXksIHdlIHN5c3RlbWF0aWNhbGx5IGNvbXBhcmUgdGhlIHRpbWUgem9uZQor
ICAgICAgICBwcmV2aW91c2x5IHVzZWQgZm9yIGNvbXB1dGluZyBfZW50cmllc0J5RGF0ZSBhZ2Fp
bnN0IHRoZSBzeXN0ZW0gdGltZSB6b25lLgorCisgICAgICAgICogSGlzdG9yeS9XZWJIaXN0b3J5
Lm1tOgorICAgICAgICAoK1tXZWJIaXN0b3J5UHJpdmF0ZSBpbml0aWFsaXplXSk6CisgICAgICAg
IChnZXREYXlCb3VuZGFyaWVzKToKKyAgICAgICAgKC1bV2ViSGlzdG9yeVByaXZhdGUgcmVtb3Zl
SXRlbUZyb21EYXRlQ2FjaGVzOl0pOgorICAgICAgICAoLVtXZWJIaXN0b3J5UHJpdmF0ZSBhZGRJ
dGVtVG9EYXRlQ2FjaGVzOl0pOgorICAgICAgICAoLVtXZWJIaXN0b3J5UHJpdmF0ZSByZWJ1aWxk
SGlzdG9yeUJ5RGF5SWZOZWVkZWRdKToKKyAgICAgICAgKC1bV2ViSGlzdG9yeVByaXZhdGUgb3Jk
ZXJlZExhc3RWaXNpdGVkRGF5c10pOgorICAgICAgICAoLVtXZWJIaXN0b3J5UHJpdmF0ZSBvcmRl
cmVkSXRlbXNMYXN0VmlzaXRlZE9uRGF5Ol0pOgorCiAyMDEyLTAzLTIxICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgdXNlIG9mIENHIHJvdW5k
ZWQtcmVjdCBwcmltaXRpdmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5
L1dlYkhpc3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnkubW0K
aW5kZXggMTFiM2ZlZGUzMTgzMDU3OWZkM2JhZDNlMDViNzlhNTM3NDhjNmEzYy4uNjRhYTYzNmNi
NTg1NDE5ZDhhZTNjZTY4NTlhMDM2NTA4YmFlMzlmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3Rv
cnkvV2ViSGlzdG9yeS5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW1wb3J0ICJXZWJIaXN0b3J5
SW50ZXJuYWwuaCIKIAorI2ltcG9ydCAiRm91bmRhdGlvbi9OU1RpbWVab25lLmgiCiAjaW1wb3J0
ICJXZWJIaXN0b3J5SXRlbUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJLaXRMb2dnaW5nLmgiCiAj
aW1wb3J0ICJXZWJOU1VSTEV4dHJhcy5oIgpAQCAtNTEsNiArNTIsNyBAQCBOU1N0cmluZyAqV2Vi
SGlzdG9yeVNhdmVkTm90aWZpY2F0aW9uID0gQCJXZWJIaXN0b3J5U2F2ZWROb3RpZmljYXRpb24i
OwogTlNTdHJpbmcgKldlYkhpc3RvcnlJdGVtc0tleSA9IEAiV2ViSGlzdG9yeUl0ZW1zIjsKIAog
c3RhdGljIFdlYkhpc3RvcnkgKl9zaGFyZWRIaXN0b3J5ID0gbmlsOworc3RhdGljIE5TVGltZVpv
bmUgKl90aW1lWm9uZU9mRGF5Qm91bmRhcmllcyA9IG5pbDsKIAogTlNTdHJpbmcgKkZpbGVWZXJz
aW9uS2V5ID0gQCJXZWJIaXN0b3J5RmlsZVZlcnNpb24iOwogTlNTdHJpbmcgKkRhdGVzQXJyYXlL
ZXkgPSBAIldlYkhpc3RvcnlEYXRlcyI7CkBAIC05Myw2ICs5NSw3IEBAIHByaXZhdGU6CiAtIChX
ZWJIaXN0b3J5SXRlbSAqKWl0ZW1Gb3JVUkw6KE5TVVJMICopVVJMOwogLSAoV2ViSGlzdG9yeUl0
ZW0gKilpdGVtRm9yVVJMU3RyaW5nOihOU1N0cmluZyAqKVVSTFN0cmluZzsKIC0gKE5TQXJyYXkg
KilhbGxJdGVtczsKKy0gKHZvaWQpcmVidWlsZEhpc3RvcnlCeURheUlmTmVlZGVkOwogCiAtIChC
T09MKWxvYWRGcm9tVVJMOihOU1VSTCAqKVVSTCBjb2xsZWN0RGlzY2FyZGVkSXRlbXNJbnRvOihO
U011dGFibGVBcnJheSAqKWRpc2NhcmRlZEl0ZW1zIGVycm9yOihOU0Vycm9yICoqKWVycm9yOwog
LSAoQk9PTClzYXZlVG9VUkw6KE5TVVJMICopVVJMIGVycm9yOihOU0Vycm9yICoqKWVycm9yOwpA
QCAtMTE4LDcgKzEyMSw4IEBAIHByaXZhdGU6CiAgICAgICAgIFtOU0RpY3Rpb25hcnkgZGljdGlv
bmFyeVdpdGhPYmplY3RzQW5kS2V5czoKICAgICAgICAgICAgIEAiMTAwMCIsIEAiV2ViS2l0SGlz
dG9yeUl0ZW1MaW1pdCIsCiAgICAgICAgICAgICBAIjciLCBAIldlYktpdEhpc3RvcnlBZ2VJbkRh
eXNMaW1pdCIsCi0gICAgICAgICAgICBuaWxdXTsgICAgCisgICAgICAgICAgICBuaWxdXTsKKyAg
ICBfdGltZVpvbmVPZkRheUJvdW5kYXJpZXMgPSBbW05TVGltZVpvbmUgZGVmYXVsdFRpbWVab25l
XSByZXRhaW5dOwogfQogCiAtIChpZClpbml0CkBAIC0xNTEsNyArMTU1LDggQEAgcHJpdmF0ZToK
IAogc3RhdGljIHZvaWQgZ2V0RGF5Qm91bmRhcmllcyhOU1RpbWVJbnRlcnZhbCBpbnRlcnZhbCwg
TlNUaW1lSW50ZXJ2YWwmIGJlZ2lubmluZ09mRGF5LCBOU1RpbWVJbnRlcnZhbCYgYmVnaW5uaW5n
T2ZOZXh0RGF5KQogewotICAgIENGVGltZVpvbmVSZWYgdGltZVpvbmUgPSBDRlRpbWVab25lQ29w
eURlZmF1bHQoKTsKKyAgICBBU1NFUlQoW190aW1lWm9uZU9mRGF5Qm91bmRhcmllcyBpc0VxdWFs
VG9UaW1lWm9uZTpbTlNUaW1lWm9uZSBkZWZhdWx0VGltZVpvbmVdXSk7CisgICAgQ0ZUaW1lWm9u
ZVJlZiB0aW1lWm9uZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZUaW1lWm9uZVJlZj4oX3RpbWVab25l
T2ZEYXlCb3VuZGFyaWVzKTsKICAgICBDRkdyZWdvcmlhbkRhdGUgZGF0ZSA9IENGQWJzb2x1dGVU
aW1lR2V0R3JlZ29yaWFuRGF0ZShpbnRlcnZhbCwgdGltZVpvbmUpOwogICAgIGRhdGUuaG91ciA9
IDA7CiAgICAgZGF0ZS5taW51dGUgPSAwOwpAQCAtMTU5LDcgKzE2NCw2IEBAIHN0YXRpYyB2b2lk
IGdldERheUJvdW5kYXJpZXMoTlNUaW1lSW50ZXJ2YWwgaW50ZXJ2YWwsIE5TVGltZUludGVydmFs
JiBiZWdpbm5pbmdPCiAgICAgYmVnaW5uaW5nT2ZEYXkgPSBDRkdyZWdvcmlhbkRhdGVHZXRBYnNv
bHV0ZVRpbWUoZGF0ZSwgdGltZVpvbmUpOwogICAgIGRhdGUuZGF5ICs9IDE7CiAgICAgYmVnaW5u
aW5nT2ZOZXh0RGF5ID0gQ0ZHcmVnb3JpYW5EYXRlR2V0QWJzb2x1dGVUaW1lKGRhdGUsIHRpbWVa
b25lKTsKLSAgICBDRlJlbGVhc2UodGltZVpvbmUpOwogfQogCiBzdGF0aWMgaW5saW5lIE5TVGlt
ZUludGVydmFsIGJlZ2lubmluZ09mRGF5KE5TVGltZUludGVydmFsIGRhdGUpCkBAIC0yMjYsNiAr
MjMwLDcgQEAgc3RhdGljIGlubGluZSBXZWJIaXN0b3J5RGF0ZUtleSBkYXRlS2V5KE5TVGltZUlu
dGVydmFsIGRhdGUpCiAKIC0gKEJPT0wpcmVtb3ZlSXRlbUZyb21EYXRlQ2FjaGVzOihXZWJIaXN0
b3J5SXRlbSAqKWVudHJ5CiB7CisgICAgW3NlbGYgcmVidWlsZEhpc3RvcnlCeURheUlmTmVlZGVk
XTsKICAgICBXZWJIaXN0b3J5RGF0ZUtleSBkYXRlS2V5OwogICAgIEJPT0wgZm91bmREYXRlID0g
W3NlbGYgZmluZEtleTomZGF0ZUtleSBmb3JEYXk6W2VudHJ5IGxhc3RWaXNpdGVkVGltZUludGVy
dmFsXV07CiAgCkBAIC0yNzAsNiArMjc1LDcgQEAgc3RhdGljIGlubGluZSBXZWJIaXN0b3J5RGF0
ZUtleSBkYXRlS2V5KE5TVGltZUludGVydmFsIGRhdGUpCiAKIC0gKHZvaWQpYWRkSXRlbVRvRGF0
ZUNhY2hlczooV2ViSGlzdG9yeUl0ZW0gKillbnRyeQogeworICAgIFtzZWxmIHJlYnVpbGRIaXN0
b3J5QnlEYXlJZk5lZWRlZF07CiAgICAgV2ViSGlzdG9yeURhdGVLZXkgZGF0ZUtleTsKICAgICBp
ZiAoW3NlbGYgZmluZEtleTomZGF0ZUtleSBmb3JEYXk6W2VudHJ5IGxhc3RWaXNpdGVkVGltZUlu
dGVydmFsXV0pCiAgICAgICAgIC8vIG90aGVyIGVudHJpZXMgYWxyZWFkeSBleGlzdCBmb3IgdGhp
cyBkYXRlCkBAIC00MDAsMTAgKzQwNiwzNSBAQCBzdGF0aWMgaW5saW5lIFdlYkhpc3RvcnlEYXRl
S2V5IGRhdGVLZXkoTlNUaW1lSW50ZXJ2YWwgZGF0ZSkKICAgICAgICAgW3NlbGYgYWRkSXRlbTpl
bnRyeSBkaXNjYXJkRHVwbGljYXRlOk5PXTsKIH0KIAorLSAodm9pZClyZWJ1aWxkSGlzdG9yeUJ5
RGF5SWZOZWVkZWQKK3sKKyAgICAvLyBJZiB0aGUgdGltZSB6b25lIGhhcyBjaGFuZ2VkLCB0aGUg
dmFsdWVzIG9mIGJlZ2lubmluZ09mRGF5IGhhcyBjaGFuZ2VkIGFuZCB3ZSBuZWVkCisgICAgLy8g
dG8gcmVidWlsZCB0aGUgaGlzdG9yeS4KKyAgICBOU1RpbWVab25lICpkZWZhdWx0VGltZVpvbmUg
PSBbTlNUaW1lWm9uZSBkZWZhdWx0VGltZVpvbmVdOworICAgIGlmIChbZGVmYXVsdFRpbWVab25l
IGlzRXF1YWxUb1RpbWVab25lOl90aW1lWm9uZU9mRGF5Qm91bmRhcmllc10pCisgICAgICAgIHJl
dHVybjsKKworICAgIFtfdGltZVpvbmVPZkRheUJvdW5kYXJpZXMgcmVsZWFzZV07CisgICAgX3Rp
bWVab25lT2ZEYXlCb3VuZGFyaWVzID0gW2RlZmF1bHRUaW1lWm9uZSByZXRhaW5dOworCisgICAg
W19vcmRlcmVkTGFzdFZpc2l0ZWREYXlzIHJlbGVhc2VdOworICAgIF9vcmRlcmVkTGFzdFZpc2l0
ZWREYXlzID0gbmlsOworCisgICAgVmVjdG9yIDxSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+ID4g
ZW50cnlBcnJheXM7CisgICAgY29weVZhbHVlc1RvVmVjdG9yKCpfZW50cmllc0J5RGF0ZSwgZW50
cnlBcnJheXMpOworICAgIF9lbnRyaWVzQnlEYXRlLT5jbGVhcigpOworCisgICAgZm9yIChzaXpl
X3QgZGF5SW5kZXggPSAwOyBkYXlJbmRleCA8IGVudHJ5QXJyYXlzLnNpemUoKTsgKytkYXlJbmRl
eCkgeworICAgICAgICBmb3IgKFdlYkhpc3RvcnlJdGVtICplbnRyeSBpbiAoZW50cnlBcnJheXNb
ZGF5SW5kZXhdKS5nZXQoKSkKKyAgICAgICAgICAgIFtzZWxmIGFkZEl0ZW1Ub0RhdGVDYWNoZXM6
ZW50cnldOworICAgIH0KK30KKwogLy8gTUFSSzogREFURS1CQVNFRCBSRVRSSUVWQUwKIAogLSAo
TlNBcnJheSAqKW9yZGVyZWRMYXN0VmlzaXRlZERheXMKIHsKKyAgICBbc2VsZiByZWJ1aWxkSGlz
dG9yeUJ5RGF5SWZOZWVkZWRdOwogICAgIGlmICghX29yZGVyZWRMYXN0VmlzaXRlZERheXMpIHsK
ICAgICAgICAgVmVjdG9yPGludD4gZGF5c0FzVGltZUludGVydmFsczsKICAgICAgICAgZGF5c0Fz
VGltZUludGVydmFscy5yZXNlcnZlQ2FwYWNpdHkoX2VudHJpZXNCeURhdGUtPnNpemUoKSk7CkBA
IC00MjYsNiArNDU3LDcgQEAgc3RhdGljIGlubGluZSBXZWJIaXN0b3J5RGF0ZUtleSBkYXRlS2V5
KE5TVGltZUludGVydmFsIGRhdGUpCiAKIC0gKE5TQXJyYXkgKilvcmRlcmVkSXRlbXNMYXN0Vmlz
aXRlZE9uRGF5OihOU0NhbGVuZGFyRGF0ZSAqKWRhdGUKIHsKKyAgICBbc2VsZiByZWJ1aWxkSGlz
dG9yeUJ5RGF5SWZOZWVkZWRdOwogICAgIFdlYkhpc3RvcnlEYXRlS2V5IGRhdGVLZXk7CiAgICAg
aWYgKCFbc2VsZiBmaW5kS2V5OiZkYXRlS2V5IGZvckRheTpbZGF0ZSB0aW1lSW50ZXJ2YWxTaW5j
ZVJlZmVyZW5jZURhdGVdXSkKICAgICAgICAgcmV0dXJuIG5pbDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133383</attachid>
            <date>2012-03-22 16:33:01 -0700</date>
            <delta_ts>2012-03-22 17:27:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81849-20120322163300.patch</filename>
            <type>text/plain</type>
            <size>4479</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggN2I3NDEzODBl
MTliNzNiYmIzNTZlZjZlZWU0OWI3ZmRkNjZiNmZjZi4uY2YxOTg2NDU4NWIwMWE4NzIyMjc4NDg2
ZTc5MzI5NDc2NWQzNjM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEy
LTAzLTIyICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAg
IFdlYkhpc3RvcnkgaXMgYnVzdGVkIGFmdGVyIGNoYW5naW5nIHRpbWUgem9uZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE4NDkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZGF0ZSB1c2VkIGZvciBj
aG9vc2luZyB0aGUgYnVja2V0IG9mIGEgbmV3IGVudHJ5IGlzIGNvbXB1dGVkCisgICAgICAgIHdp
dGggdGhlIHN5c3RlbSBUaW1lWm9uZS4KKworICAgICAgICBXaGVuIHRoZSBUaW1lIFpvbmUgY2hh
bmdlLCBvciB0aGUgZGF5bGlnaHQgc2F2aW5nIHRpbWUgY2hhbmdlLCBhbGwgdGhlIGRhdGVzCisg
ICAgICAgIGluIF9lbnRyaWVzQnlEYXRlIGFyZSBvZmZzZXQgZnJvbSB0aGUgbmV3IGVudHJpZXMu
CisKKyAgICAgICAgVGhpcyBwYXRjaCBzb2x2ZXMgdGhlIGlzc3VlIGJ5IHJlLWRpc3RyaWJ1dGlu
ZyB0aGUgV2ViSGlzdG9yeUl0ZW1zIGlmIHRoZSB0aW1lIHpvbmUKKyAgICAgICAgY2hhbmdlcy4K
KyAgICAgICAgVGhlIGNsaWVudHMgb2YgV2ViSGlzdG9yeSBhcmUgbm90aWZpZWQgb2YgdGhpcyBj
aGFuZ2UgdGhyb3VnaCB0aGUgcmVndWxhciBOb3RpZmljYXRpb25zLgorCisgICAgICAgICogSGlz
dG9yeS9XZWJIaXN0b3J5Lm1tOgorICAgICAgICAoLVtXZWJIaXN0b3J5UHJpdmF0ZSByZWJ1aWxk
SGlzdG9yeUJ5RGF5SWZOZWVkZWQ6XSk6CisgICAgICAgICgtW1dlYkhpc3RvcnlQcml2YXRlIGlu
aXRdKToKKyAgICAgICAgKC1bV2ViSGlzdG9yeSB0aW1lWm9uZUNoYW5nZWQ6XSk6CisgICAgICAg
ICgtW1dlYkhpc3RvcnkgaW5pdF0pOgorICAgICAgICAoLVtXZWJIaXN0b3J5IGRlYWxsb2NdKToK
KyAgICAgICAgKC1bV2ViSGlzdG9yeSBmaW5hbGl6ZV0pOgorCiAyMDEyLTAzLTIxICBUaW0gSG9y
dG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgdXNlIG9mIENH
IHJvdW5kZWQtcmVjdCBwcmltaXRpdmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9I
aXN0b3J5L1dlYkhpc3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3Rv
cnkubW0KaW5kZXggMTFiM2ZlZGUzMTgzMDU3OWZkM2JhZDNlMDViNzlhNTM3NDhjNmEzYy4uOGU0
YjE5M2MzMGNhZmMzZDc1OGY0Y2U0YmZjNTdiNzc4M2MyNDFjOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0hpc3RvcnkvV2ViSGlzdG9yeS5tbQpAQCAtNjgsNiArNjgsMTAgQEAgcHJpdmF0ZToKICAgICBW
ZWN0b3I8aW50PiBtX2RhdGVLZXlzOwogfTsKIAorQGludGVyZmFjZSBXZWJIaXN0b3J5ICgpCist
ICh2b2lkKV9zZW5kTm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5hbWUgZW50cmllczooTlNBcnJh
eSAqKWVudHJpZXM7CitAZW5kCisKIEBpbnRlcmZhY2UgV2ViSGlzdG9yeVByaXZhdGUgOiBOU09i
amVjdCB7CiBAcHJpdmF0ZQogICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKl9lbnRyaWVzQnlVUkw7
CkBAIC0xMjEsNiArMTI1LDMyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBuaWxdXTsgICAgCiB9
CiAKKy0gKHZvaWQpcmVidWlsZEhpc3RvcnlCeURheUlmTmVlZGVkOihXZWJIaXN0b3J5ICopd2Vi
SGlzdG9yeQoreworICAgIC8vIFdlIGNsZWFyIGFsbCB0aGUgdmFsdWVzIHRvIHByZXNlbnQgYSBj
b25zaXN0ZW50IHN0YXRlIHdoZW4gc2VuZGluZyB0aGUgbm90aWZpY2F0aW9ucy4KKyAgICAvLyBX
ZSBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBlbnRyaWVzIGZvciByZWJ1aWxkaW5nIHRoZSBoaXN0
b3J5IGFmdGVyIHRoZSBub3RpZmljYXRpb24uCisgICAgVmVjdG9yIDxSZXRhaW5QdHI8TlNNdXRh
YmxlQXJyYXk+ID4gZW50cnlBcnJheXM7CisgICAgY29weVZhbHVlc1RvVmVjdG9yKCpfZW50cmll
c0J5RGF0ZSwgZW50cnlBcnJheXMpOworICAgIF9lbnRyaWVzQnlEYXRlLT5jbGVhcigpOworCisg
ICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqZW50cmllc0J5VVJMID0gX2VudHJpZXNCeVVSTDsKKyAg
ICBfZW50cmllc0J5VVJMID0gbmlsOworCisgICAgW19vcmRlcmVkTGFzdFZpc2l0ZWREYXlzIHJl
bGVhc2VdOworICAgIF9vcmRlcmVkTGFzdFZpc2l0ZWREYXlzID0gbmlsOworCisgICAgTlNBcnJh
eSAqYWxsRW50cmllcyA9IFtlbnRyaWVzQnlVUkwgYWxsVmFsdWVzXTsKKyAgICBbd2ViSGlzdG9y
eSBfc2VuZE5vdGlmaWNhdGlvbjpXZWJIaXN0b3J5QWxsSXRlbXNSZW1vdmVkTm90aWZpY2F0aW9u
IGVudHJpZXM6YWxsRW50cmllc107CisKKyAgICAvLyBOZXh0LCB3ZSByZWJ1aWxkIHRoZSBoaXN0
b3J5LCByZXN0b3JlIHRoZSBzdGF0ZXMsIGFuZCBub3RpZnkgdGhlIGNsaWVudHMuCisgICAgX2Vu
dHJpZXNCeVVSTCA9IGVudHJpZXNCeVVSTDsKKyAgICBmb3IgKHNpemVfdCBkYXlJbmRleCA9IDA7
IGRheUluZGV4IDwgZW50cnlBcnJheXMuc2l6ZSgpOyArK2RheUluZGV4KSB7CisgICAgICAgIGZv
ciAoV2ViSGlzdG9yeUl0ZW0gKmVudHJ5IGluIChlbnRyeUFycmF5c1tkYXlJbmRleF0pLmdldCgp
KQorICAgICAgICAgICAgW3NlbGYgYWRkSXRlbVRvRGF0ZUNhY2hlczplbnRyeV07CisgICAgfQor
ICAgIFt3ZWJIaXN0b3J5IF9zZW5kTm90aWZpY2F0aW9uOldlYkhpc3RvcnlJdGVtc0FkZGVkTm90
aWZpY2F0aW9uIGVudHJpZXM6YWxsRW50cmllc107Cit9CisKIC0gKGlkKWluaXQKIHsKICAgICBz
ZWxmID0gW3N1cGVyIGluaXRdOwpAQCAtNjYyLDIxICs2OTIsNDEgQEAgc3RhdGljIGlubGluZSBX
ZWJIaXN0b3J5RGF0ZUtleSBkYXRlS2V5KE5TVGltZUludGVydmFsIGRhdGUpCiAgICAgUGFnZUdy
b3VwOjpyZW1vdmVBbGxWaXNpdGVkTGlua3MoKTsKIH0KIAorLSAodm9pZCl0aW1lWm9uZUNoYW5n
ZWQ6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgW19oaXN0b3J5UHJpdmF0
ZSByZWJ1aWxkSGlzdG9yeUJ5RGF5SWZOZWVkZWQ6c2VsZl07Cit9CisKIC0gKGlkKWluaXQKIHsK
ICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJu
IG5pbDsKICAgICBfaGlzdG9yeVByaXZhdGUgPSBbW1dlYkhpc3RvcnlQcml2YXRlIGFsbG9jXSBp
bml0XTsKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2Vy
dmVyOnNlbGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGVjdG9yOkBzZWxlY3Rvcih0aW1lWm9uZUNoYW5nZWQ6KQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6TlNTeXN0ZW1UaW1lWm9uZURpZENoYW5n
ZU5vdGlmaWNhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvYmplY3Q6bmlsXTsKICAgICByZXR1cm4gc2VsZjsKIH0KIAogLSAodm9pZClkZWFsbG9j
CiB7CisgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNl
cnZlcjpzZWxmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbmFtZTpOU1N5c3RlbVRpbWVab25lRGlkQ2hhbmdlTm90aWZpY2F0aW9uCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDpuaWxdOwog
ICAgIFtfaGlzdG9yeVByaXZhdGUgcmVsZWFzZV07CiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQog
CistICh2b2lkKWZpbmFsaXplCit7CisgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0
Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTpOU1N5c3RlbVRpbWVab25lRGlkQ2hhbmdlTm90
aWZpY2F0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG9iamVjdDpuaWxdOworICAgIFtzdXBlciBmaW5hbGl6ZV07Cit9CisKIC8vIE1BUks6IE1P
RElGWUlORyBDT05URU5UUwogCiAtICh2b2lkKV9zZW5kTm90aWZpY2F0aW9uOihOU1N0cmluZyAq
KW5hbWUgZW50cmllczooTlNBcnJheSAqKWVudHJpZXMK
</data>
<flag name="review"
          id="137349"
          type_id="1"
          status="+"
          setter="beidson"
    />
    <flag name="commit-queue"
          id="137360"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>