<?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>28335</bug_id>
          
          <creation_ts>2009-08-14 19:40:04 -0700</creation_ts>
          <short_desc>HTML5 media elements do not fire waiting events correctly</short_desc>
          <delta_ts>2010-06-14 14:25:11 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Albert J. Wong">ajwong</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>140412</commentid>
    <comment_count>0</comment_count>
    <who name="Albert J. Wong">ajwong</who>
    <bug_when>2009-08-14 19:40:04 -0700</bug_when>
    <thetext>The HTMLMediaElement implementation of SetReadyState makes it impossible to correctly fire waiting, seeking, and seeked events based purely on the changes in ready state.

There are two separate issues:

  (1) 4.8.10.10 step 8 is not done quite right; waiting is fired after seeking.
  (2) The seekedEvent is not guaranteed to fire for eack seekingEvent.

Fixing #1 should be as simple as moving the code block for waiting up above the seeking event.

Fixing #2 required an extra status variable to track when a seekingEvent has started, and thus a seekedEvent should be fired.

Changes will also need to be made to the the MediaPlayerQT (and likely other ports) to support lowering the ready state to HAVE_METADATA on seek.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140413</commentid>
    <comment_count>1</comment_count>
    <who name="Albert J. Wong">ajwong</who>
    <bug_when>2009-08-14 19:44:23 -0700</bug_when>
    <thetext>
&gt; Fixing #1 should be as simple as moving the code block for waiting up above the
&gt; seeking event.

Wrong about this, and possibly about the implementation of #2 as well.  Trying to create a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140439</commentid>
    <comment_count>2</comment_count>
    <who name="Albert J. Wong">ajwong</who>
    <bug_when>2009-08-15 00:06:06 -0700</bug_when>
    <thetext>reread the spec some more and looked over the implementation further.  The main issue seems to be that HTMLMediaElement doesn&apos;t fire waiting before seeking (4.8.10.10 step 8), and doesn&apos;t fire seeked if the ready state changes down to HAVE_METADATA during a seek.

This patch addresses those issues.

I could not setup a test where MediaPlayerQT.mm would lower the readyState, but I did test this change on chromium and it looked right.

Patch is attached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140440</commentid>
    <comment_count>3</comment_count>
      <attachid>34889</attachid>
    <who name="Albert J. Wong">ajwong</who>
    <bug_when>2009-08-15 00:19:24 -0700</bug_when>
    <thetext>Created attachment 34889
waiting/seeked fix

the seeked event is missed due when the ready state is changed during
a seek.

Patch by Albert Wong &lt;ajwong@chromium.org&gt; on 2009-08-15
Reviewed by NOBODY (OOPS!).

HTML5 media elements do not fire waiting events correctly
https://bugs.webkit.org/show_bug.cgi?id=28335

The video-seeking.html test does not need to be updated because
it uses a local file which never fires a waiting/seeking event.
To test waiting/seeking, a source that doesn&apos;t buffer fully too
quickly is required.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setReadyState): add support for
waiting event when seeking.
(WebCore::HTMLMediaElement::finishSeek): send seeked event
whenever seeking finishes.
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged): dispatch to
new function.
* html/HTMLMediaElement.h:
---
 3 files changed, 50 insertions(+), 12 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140441</commentid>
    <comment_count>4</comment_count>
      <attachid>34890</attachid>
    <who name="Albert J. Wong">ajwong</who>
    <bug_when>2009-08-15 00:21:31 -0700</bug_when>
    <thetext>Created attachment 34890
waiting/seeked fix

the seeked event is missed due when the ready state is changed during
a seek.

Patch by Albert Wong &lt;ajwong@chromium.org&gt; on 2009-08-15
Reviewed by NOBODY (OOPS!).

HTML5 media elements do not fire waiting events correctly
https://bugs.webkit.org/show_bug.cgi?id=28335

The video-seeking.html test does not need to be updated because
it uses a local file which never fires a waiting/seeking event.
To test waiting/seeking, a source that doesn&apos;t buffer fully too
quickly is required.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setReadyState): add support for
waiting event when seeking.
(WebCore::HTMLMediaElement::finishSeek): send seeked event
whenever seeking finishes.
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged): dispatch to
new function.
* html/HTMLMediaElement.h:
---
 3 files changed, 50 insertions(+), 12 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140468</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-08-15 10:10:12 -0700</bug_when>
    <thetext>Although it isn&apos;t new to your patch, it is possible for a&apos;seeking&apos; event to be fired more than once so:

        // 4.8.10.10, step 9
        if (m_readyState &lt; HAVE_CURRENT_DATA)
            scheduleEvent(eventNames().seekingEvent);

should be something like:

        // 4.8.10.10, step 9
        if (m_readyState &lt; HAVE_CURRENT_DATA) {
            if (oldState &gt;= HAVE_CURRENT_DATA)
                scheduleEvent(eventNames().seekingEvent);
        }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140469</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-08-15 10:21:46 -0700</bug_when>
    <thetext>&gt; Changes will also need to be made to the the MediaPlayerQT (and likely other
&gt; ports) to support lowering the ready state to HAVE_METADATA on seek.

This should not require any changes as HTMLMediaElement::seek throws an exception unless the seek time is within the seekable() ranges. It is the responsibility of a media engine to report the seekable ranges accurately and to notify HTMLMediaElement of changes to the ready state, so it is an error if a media engine allows seeking to an unbuffered time without also lowering the ready state to HAVE_METADATA. The QuickTime based media engines behave correctly as far as I know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140470</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-08-15 10:26:00 -0700</bug_when>
    <thetext>This change really needs a new seeking test that tests a movie loaded via http. LayoutTests/http/tests/media/ has a cgi used that stalls loads which should be easy to modify to optionally load slowly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140901</commentid>
    <comment_count>8</comment_count>
      <attachid>34890</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-17 17:19:25 -0700</bug_when>
    <thetext>Comment on attachment 34890
waiting/seeked fix

It should be possible to write a layout test for this (or at least a manual test), using a little PHP an the webkit http server.  If the test is going to take too long to run, then we should make it a manual test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141056</commentid>
    <comment_count>9</comment_count>
    <who name="Albert J. Wong">ajwong</who>
    <bug_when>2009-08-18 02:11:36 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; This change really needs a new seeking test that tests a movie loaded via http.
&gt; LayoutTests/http/tests/media/ has a cgi used that stalls loads which should be
&gt; easy to modify to optionally load slowly.

For the QuickTime based media engine, I&apos;m having a pretty hard time writing up a test.

I modified video-load-and-stall.cgi to throttle serving, but the effect that has is that we just end up with a largish unseekable range.

What happens is that since the seekable() range is defined maxTimeSeekable(), which, empirically, seems to be equal to maxTimeLoaded(), it does not seem possible to seek to a range where quicktime doesn&apos;t have the data cached, and immediately available.  Seeking beyond what has been downloaded, like you said earlier, makes the HTMLMediaElement throw a INDEX_SIZE_ERR exception.

As far as I can tell, we can&apos;t get into a HAVE_METADATA ready state with the QuickTime media player via seeks, thus the seeking/waiting events are never fired.

Am I missing some other method to test the behavior of these events?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141059</commentid>
    <comment_count>10</comment_count>
      <attachid>35031</attachid>
    <who name="Albert J. Wong">ajwong</who>
    <bug_when>2009-08-18 02:40:34 -0700</bug_when>
    <thetext>Created attachment 35031
add Eric&apos;s debounce for seeking.

Incorporate Eric&apos;s fix to avoid multiple seeking events.   Still no unittest though.  See previous comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141240</commentid>
    <comment_count>11</comment_count>
      <attachid>35076</attachid>
    <who name="Albert J. Wong">ajwong</who>
    <bug_when>2009-08-18 14:30:31 -0700</bug_when>
    <thetext>Created attachment 35076
waiting/seeking fix...Now with a test\!

the seeked event is missed due when the ready state is changed during
a seek.

Patch by Albert J. Wong &lt;ajwong@chromium.org&gt; on 2009-08-18
Reviewed by NOBODY (OOPS!).

HTML5 media elements do not fire waiting events correctly
https://bugs.webkit.org/show_bug.cgi?id=28335

Added video-waiting-seeking.html into manual tests because not
all platforms allow seeking into non-buffered ranges.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setReadyState): add support for
waiting event when seeking.
(WebCore::HTMLMediaElement::finishSeek): send seeked event
whenever seeking finishes.
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged): dispatch to
new function.
* html/HTMLMediaElement.h:
* manual-tests/video-waiting-seeking.html: Added.

LayoutTests: New manual test to check if waiting/seeking events are fired
when seeking into a non-buffered region.

Patch by Albert J. Wong &lt;ajwong@chromium.org&gt; on 2009-08-18
Reviewed by NOBODY (OOPS!).

HTML5 media elements do not fire waiting events correctly
https://bugs.webkit.org/show_bug.cgi?id=28335

* http/tests/media/video-throttled-load.cgi: Added.
* media/video-test.js:
(isInTimeRanges):
---
 2 files changed, 66 insertions(+), 0 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141241</commentid>
    <comment_count>12</comment_count>
      <attachid>35077</attachid>
    <who name="Albert J. Wong">ajwong</who>
    <bug_when>2009-08-18 14:30:36 -0700</bug_when>
    <thetext>Created attachment 35077
waiting/seeking fix...Now with a test\!


---
 5 files changed, 131 insertions(+), 12 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141243</commentid>
    <comment_count>13</comment_count>
      <attachid>35078</attachid>
    <who name="Albert J. Wong">ajwong</who>
    <bug_when>2009-08-18 14:34:48 -0700</bug_when>
    <thetext>Created attachment 35078
waiting fix, with tests, in *1* patch!

try again...w/o bugzilla-tool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141270</commentid>
    <comment_count>14</comment_count>
      <attachid>35080</attachid>
    <who name="Albert J. Wong">ajwong</who>
    <bug_when>2009-08-18 15:07:30 -0700</bug_when>
    <thetext>Created attachment 35080
waiting fix with small style cleanups.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141603</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-08-19 14:28:33 -0700</bug_when>
    <thetext>&gt; +++ b/LayoutTests/http/tests/media/video-throttled-load.cgi

A couple of points about the cgi: 1) it would be nice optionally be able
to specify the MIME type so it can be used with other file types, 2) should
add a header to prevent the file from being cached in case the same file is
used with more than one test, 3) it would also be nice to be able to 
optionally specify the throttle rate to test different scenarios, 4) the select
for the last chunk is likely to pause too long, 5) might be nice to assume that
the throttle rate is in KBPS.

Something like this maybe (untested):

#!/usr/bin/perl -w

use CGI;
use File::stat;

my $query = new CGI;

my $name = $query-&gt;param(&apos;name&apos;);
my $filesize = stat($name)-&gt;size;

# get throttling rate, assume KBPS
my $kbPerSec = $query-&gt;param(&apos;throttle&apos;);
if (!$kbPerSec) {
    $kbPerSec = $filesize / 1024;
}
$kbPerSec *= 1024;

# get MIME type, use video/mp4 if not specified
my $type = $query-&gt;param(&apos;type&apos;);
if (!$type) {
    $type = &quot;video/mp4&quot;;
}

# print http header
print &quot;Content-type: &quot; . $type . &quot;\n&quot;;
print &quot;Content-Length: &quot; . $filesize . &quot;\n&quot;;
print &quot;Cache-Control: no-cache\n\n&quot;;

open FILE, $name or die;
binmode FILE;
my ($buf, $data, $n);
while (($n = read FILE, $data, 1024) != 0) {

    print $data;
    if ($kbPerSec &gt; 0) {
        select(undef, undef, undef, $n / $kbPerSec);
    }
}
close(FILE);

&gt; +++ b/WebCore/manual-tests/video-waiting-seeking.html

I know that this test is in the style of many of the older media test, but I greatly prefer
new tests to have a more &quot;trational&quot; style, eg. include &lt;html&gt; &amp; &lt;body&gt; element, put the 
code in the &lt;head&gt;, trigger the test start on an event (body onload, etc).


&gt; +        consoleWrite(&quot;Running scheduled seek&quot;);
&gt; +        // Source is assumed to be about 188k with a uniform bitrate,
&gt; +        // &gt; 4 seconds in length, and served at 25kb/s.  This should make
&gt; +        // seeking one second ahead every 200ms always leave the buffered
&gt; +        // region.

It would be good to have the test assumptions in the markup rather than in a comment so someone
looking at the results will see them.


&gt; +    consoleWrite(&quot;Start Load&quot;);
&gt; +    video.src = &quot;http://127.0.0.1:8000/media/video-throttled-load.cgi?name=../../../media/content/test.mp4&amp;throttle=30&amp;anti_cache=&quot; + (new Date()).getTime();

What is the &quot;anti_cache&quot; param?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141626</commentid>
    <comment_count>16</comment_count>
      <attachid>35156</attachid>
    <who name="Albert J. Wong">ajwong</who>
    <bug_when>2009-08-19 15:56:38 -0700</bug_when>
    <thetext>Created attachment 35156
Address Eric&apos;s comments

I updated the CGI file to add support for mime type, and pass the no-cache header.  I also cleaned up the throttling code a bit, but did it slightly different than the suggestion.  It seems to work on my box.

The html for the test was cleaned up to be proper html rather than just a fragment.

The comment has been moved into a &lt;p&gt; tag.

The anit-cache param has been removed since the cache-avoidance behavior is handled by the no-cache header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141791</commentid>
    <comment_count>17</comment_count>
      <attachid>35156</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-08-20 22:40:33 -0700</bug_when>
    <thetext>Comment on attachment 35156
Address Eric&apos;s comments

I had some minor style suggestions for this patch which Albert did and then I r+&apos;ed this patch (though I did a sanity pass, the r+ was in large part due to the fact that Eric Carlson said it looked good).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141800</commentid>
    <comment_count>18</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-08-20 22:45:50 -0700</bug_when>
    <thetext>My previous comment was my attempt to summarize what happened in the past 20 hours but was lost in a bugzilla db corruption.

Committed as http://trac.webkit.org/changeset/47619</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34889</attachid>
            <date>2009-08-15 00:19:24 -0700</date>
            <delta_ts>2009-08-15 00:21:27 -0700</delta_ts>
            <desc>waiting/seeked fix</desc>
            <filename>bug-28335-20090815001923.patch</filename>
            <type>text/plain</type>
            <size>3894</size>
            <attacher name="Albert J. Wong">ajwong</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzhjMzM5Ni4uMTE3YzRiMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAwOS0wOC0xNSAgQWxiZXJ0IFdvbmcg
IDxhandvbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEZpcmUgdGhlIHdhaXRpbmcgZXZlbnQgYmVmb3JlIHNlZWtpbmcsIGFu
ZCBmaXggYSBjYXNlIHdoZXJlIGZpcmluZyBvZgorICAgICAgICB0aGUgc2Vla2VkIGV2ZW50IGlz
IG1pc3NlZCBkdWUgd2hlbiB0aGUgcmVhZHkgc3RhdGUgaXMgY2hhbmdlZCBkdXJpbmcKKyAgICAg
ICAgYSBzZWVrLgorCisgICAgICAgIEhUTUw1IG1lZGlhIGVsZW1lbnRzIGRvIG5vdCBmaXJlIHdh
aXRpbmcgZXZlbnRzIGNvcnJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjgzMzUKKworICAgICAgICBUaGUgdmlkZW8tc2Vla2luZy5odG1sIHRl
c3QgZG9lcyBub3QgbmVlZCB0byBiZSB1cGRhdGVkIGJlY2F1c2UKKyAgICAgICAgaXQgdXNlcyBh
IGxvY2FsIGZpbGUgd2hpY2ggbmV2ZXIgZmlyZXMgYSB3YWl0aW5nL3NlZWtpbmcgZXZlbnQuCisg
ICAgICAgIFRvIHRlc3Qgd2FpdGluZy9zZWVraW5nLCBhIHNvdXJjZSB0aGF0IGRvZXNuJ3QgYnVm
ZmVyIGZ1bGx5IHRvbworICAgICAgICBxdWlja2x5IGlzIHJlcXVpcmVkLgorCisgICAgICAgICog
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OnNldFJlYWR5U3RhdGUpOiBhZGQgc3VwcG9ydCBmb3IKKyAgICAgICAgd2FpdGluZyBl
dmVudCB3aGVuIHNlZWtpbmcuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpm
aW5pc2hTZWVrKTogc2VuZCBzZWVrZWQgZXZlbnQKKyAgICAgICAgd2hlbmV2ZXIgc2Vla2luZyBm
aW5pc2hlcy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVy
VGltZUNoYW5nZWQpOiBkaXNwYXRjaCB0bworICAgICAgICBuZXcgZnVuY3Rpb24uCisgICAgICAg
ICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisKIDIwMDktMDgtMTMgIERhdmlkIExldmluICA8
bGV2aW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgY2hyb21pdW0gYnVpbGQg
Zml4LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGIyZTY0MjguLjVmNGU3YjYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTc0MiwyMSArNzQyLDI3IEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBzdGF0
ZSkKICAgICBpZiAobV9yZWFkeVN0YXRlID09IG9sZFN0YXRlKQogICAgICAgICByZXR1cm47CiAg
ICAgCi0gICAgaWYgKG1fcmVhZHlTdGF0ZSA+PSBIQVZFX0NVUlJFTlRfREFUQSkKLSAgICAgICAg
bV9zZWVraW5nID0gZmFsc2U7Ci0gICAgCiAgICAgaWYgKG1fbmV0d29ya1N0YXRlID09IE5FVFdP
UktfRU1QVFkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX3NlZWtpbmcgJiYgbV9yZWFk
eVN0YXRlIDwgSEFWRV9DVVJSRU5UX0RBVEEpIHsKKyAgICBpZiAobV9zZWVraW5nKSB7CisgICAg
ICAgIC8vIDQuOC4xMC4xMCwgc3RlcCA4CisgICAgICAgIGlmICh3YXNQb3RlbnRpYWxseVBsYXlp
bmcgJiYgbV9yZWFkeVN0YXRlIDwgSEFWRV9GVVRVUkVfREFUQSkKKyAgICAgICAgICAgIHNjaGVk
dWxlRXZlbnQoZXZlbnROYW1lcygpLndhaXRpbmdFdmVudCk7CisKICAgICAgICAgLy8gNC44LjEw
LjEwLCBzdGVwIDkKLSAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuc2Vla2luZ0V2
ZW50KTsKLSAgICB9CisgICAgICAgIGlmIChtX3JlYWR5U3RhdGUgPCBIQVZFX0NVUlJFTlRfREFU
QSkKKyAgICAgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnNlZWtpbmdFdmVudCk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIC8vIDQuOC4xMC4xMCBzdGVwIDEyICYgMTMuCisg
ICAgICAgICAgICBmaW5pc2hTZWVrKCk7CiAKLSAgICBpZiAod2FzUG90ZW50aWFsbHlQbGF5aW5n
ICYmIG1fcmVhZHlTdGF0ZSA8IEhBVkVfRlVUVVJFX0RBVEEpIHsKLSAgICAgICAgLy8gNC44LjEw
LjkKLSAgICAgICAgc2NoZWR1bGVUaW1ldXBkYXRlRXZlbnQoZmFsc2UpOwotICAgICAgICBzY2hl
ZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS53YWl0aW5nRXZlbnQpOworICAgIH0gZWxzZSB7CisgICAg
ICAgIGlmICh3YXNQb3RlbnRpYWxseVBsYXlpbmcgJiYgbV9yZWFkeVN0YXRlIDwgSEFWRV9GVVRV
UkVfREFUQSkgeworICAgICAgICAgICAgLy8gNC44LjEwLjkKKyAgICAgICAgICAgIHNjaGVkdWxl
VGltZXVwZGF0ZUV2ZW50KGZhbHNlKTsKKyAgICAgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnRO
YW1lcygpLndhaXRpbmdFdmVudCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAobV9yZWFk
eVN0YXRlID49IEhBVkVfTUVUQURBVEEgJiYgb2xkU3RhdGUgPCBIQVZFX01FVEFEQVRBKSB7CkBA
IC05MDEsNiArOTA3LDEyIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2VlayhmbG9hdCB0aW1l
LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBtX3NlbnRFbmRFdmVudCA9IGZhbHNlOwogfQogCit2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmZpbmlzaFNlZWsoKQoreworICAgIG1fc2Vla2luZyA9IGZh
bHNlOworICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnNlZWtlZEV2ZW50KTsKK30KKwog
SFRNTE1lZGlhRWxlbWVudDo6UmVhZHlTdGF0ZSBIVE1MTWVkaWFFbGVtZW50OjpyZWFkeVN0YXRl
KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9yZWFkeVN0YXRlOwpAQCAtMTI5OCw5ICsxMzEwLDkg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclRpbWVDaGFuZ2VkKE1lZGlhUGxh
eWVyKikKIHsKICAgICBiZWdpblByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CiAKKyAg
ICAvLyA0LjguMTAuMTAgc3RlcCAxMiAmIDEzLiAgTmVlZGVkIGlmIG5vIFJlYWR5U3RhdGUgY2hh
bmdlIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2Vlay4KICAgICBpZiAobV9yZWFkeVN0YXRlID49
IEhBVkVfQ1VSUkVOVF9EQVRBICYmIG1fc2Vla2luZykgewotICAgICAgICBzY2hlZHVsZUV2ZW50
KGV2ZW50TmFtZXMoKS5zZWVrZWRFdmVudCk7Ci0gICAgICAgIG1fc2Vla2luZyA9IGZhbHNlOwor
ICAgICAgICBmaW5pc2hTZWVrKCk7CiAgICAgfQogICAgIAogICAgIGZsb2F0IG5vdyA9IGN1cnJl
bnRUaW1lKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAyN2I0OGVhLi5mZTNiZWFmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTE5MCw2ICsxOTAsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgc3RvcFBlcmlvZGljVGltZXJzKCk7CiAKICAgICB2b2lkIHNlZWsoZmxvYXQgdGltZSwg
RXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgZmluaXNoU2VlaygpOwogICAgIHZvaWQgY2hlY2tJ
ZlNlZWtOZWVkZWQoKTsKICAgICAKICAgICB2b2lkIHNjaGVkdWxlVGltZXVwZGF0ZUV2ZW50KGJv
b2wgcGVyaW9kaWNFdmVudCk7
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34890</attachid>
            <date>2009-08-15 00:21:31 -0700</date>
            <delta_ts>2009-08-18 02:40:34 -0700</delta_ts>
            <desc>waiting/seeked fix</desc>
            <filename>bug-28335-20090815002130.patch</filename>
            <type>text/plain</type>
            <size>3897</size>
            <attacher name="Albert J. Wong">ajwong</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzhjMzM5Ni4uNTQwYmE0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAwOS0wOC0xNSAgQWxiZXJ0IEouIFdv
bmcgIDxhandvbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZpcmUgdGhlIHdhaXRpbmcgZXZlbnQgYmVmb3JlIHNlZWtpbmcs
IGFuZCBmaXggYSBjYXNlIHdoZXJlIGZpcmluZyBvZgorICAgICAgICB0aGUgc2Vla2VkIGV2ZW50
IGlzIG1pc3NlZCBkdWUgd2hlbiB0aGUgcmVhZHkgc3RhdGUgaXMgY2hhbmdlZCBkdXJpbmcKKyAg
ICAgICAgYSBzZWVrLgorCisgICAgICAgIEhUTUw1IG1lZGlhIGVsZW1lbnRzIGRvIG5vdCBmaXJl
IHdhaXRpbmcgZXZlbnRzIGNvcnJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjgzMzUKKworICAgICAgICBUaGUgdmlkZW8tc2Vla2luZy5odG1s
IHRlc3QgZG9lcyBub3QgbmVlZCB0byBiZSB1cGRhdGVkIGJlY2F1c2UKKyAgICAgICAgaXQgdXNl
cyBhIGxvY2FsIGZpbGUgd2hpY2ggbmV2ZXIgZmlyZXMgYSB3YWl0aW5nL3NlZWtpbmcgZXZlbnQu
CisgICAgICAgIFRvIHRlc3Qgd2FpdGluZy9zZWVraW5nLCBhIHNvdXJjZSB0aGF0IGRvZXNuJ3Qg
YnVmZmVyIGZ1bGx5IHRvbworICAgICAgICBxdWlja2x5IGlzIHJlcXVpcmVkLgorCisgICAgICAg
ICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnQ6OnNldFJlYWR5U3RhdGUpOiBhZGQgc3VwcG9ydCBmb3IKKyAgICAgICAgd2FpdGlu
ZyBldmVudCB3aGVuIHNlZWtpbmcuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpmaW5pc2hTZWVrKTogc2VuZCBzZWVrZWQgZXZlbnQKKyAgICAgICAgd2hlbmV2ZXIgc2Vla2lu
ZyBmaW5pc2hlcy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxh
eWVyVGltZUNoYW5nZWQpOiBkaXNwYXRjaCB0bworICAgICAgICBuZXcgZnVuY3Rpb24uCisgICAg
ICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisKIDIwMDktMDgtMTMgIERhdmlkIExldmlu
ICA8bGV2aW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgY2hyb21pdW0gYnVp
bGQgZml4LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGIyZTY0MjguLjVmNGU3YjYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTc0MiwyMSArNzQyLDI3IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBz
dGF0ZSkKICAgICBpZiAobV9yZWFkeVN0YXRlID09IG9sZFN0YXRlKQogICAgICAgICByZXR1cm47
CiAgICAgCi0gICAgaWYgKG1fcmVhZHlTdGF0ZSA+PSBIQVZFX0NVUlJFTlRfREFUQSkKLSAgICAg
ICAgbV9zZWVraW5nID0gZmFsc2U7Ci0gICAgCiAgICAgaWYgKG1fbmV0d29ya1N0YXRlID09IE5F
VFdPUktfRU1QVFkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX3NlZWtpbmcgJiYgbV9y
ZWFkeVN0YXRlIDwgSEFWRV9DVVJSRU5UX0RBVEEpIHsKKyAgICBpZiAobV9zZWVraW5nKSB7Cisg
ICAgICAgIC8vIDQuOC4xMC4xMCwgc3RlcCA4CisgICAgICAgIGlmICh3YXNQb3RlbnRpYWxseVBs
YXlpbmcgJiYgbV9yZWFkeVN0YXRlIDwgSEFWRV9GVVRVUkVfREFUQSkKKyAgICAgICAgICAgIHNj
aGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLndhaXRpbmdFdmVudCk7CisKICAgICAgICAgLy8gNC44
LjEwLjEwLCBzdGVwIDkKLSAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuc2Vla2lu
Z0V2ZW50KTsKLSAgICB9CisgICAgICAgIGlmIChtX3JlYWR5U3RhdGUgPCBIQVZFX0NVUlJFTlRf
REFUQSkKKyAgICAgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnNlZWtpbmdFdmVu
dCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIC8vIDQuOC4xMC4xMCBzdGVwIDEyICYgMTMu
CisgICAgICAgICAgICBmaW5pc2hTZWVrKCk7CiAKLSAgICBpZiAod2FzUG90ZW50aWFsbHlQbGF5
aW5nICYmIG1fcmVhZHlTdGF0ZSA8IEhBVkVfRlVUVVJFX0RBVEEpIHsKLSAgICAgICAgLy8gNC44
LjEwLjkKLSAgICAgICAgc2NoZWR1bGVUaW1ldXBkYXRlRXZlbnQoZmFsc2UpOwotICAgICAgICBz
Y2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS53YWl0aW5nRXZlbnQpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIGlmICh3YXNQb3RlbnRpYWxseVBsYXlpbmcgJiYgbV9yZWFkeVN0YXRlIDwgSEFWRV9G
VVRVUkVfREFUQSkgeworICAgICAgICAgICAgLy8gNC44LjEwLjkKKyAgICAgICAgICAgIHNjaGVk
dWxlVGltZXVwZGF0ZUV2ZW50KGZhbHNlKTsKKyAgICAgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZl
bnROYW1lcygpLndhaXRpbmdFdmVudCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAobV9y
ZWFkeVN0YXRlID49IEhBVkVfTUVUQURBVEEgJiYgb2xkU3RhdGUgPCBIQVZFX01FVEFEQVRBKSB7
CkBAIC05MDEsNiArOTA3LDEyIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2VlayhmbG9hdCB0
aW1lLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBtX3NlbnRFbmRFdmVudCA9IGZhbHNlOwogfQog
Cit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmZpbmlzaFNlZWsoKQoreworICAgIG1fc2Vla2luZyA9
IGZhbHNlOworICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnNlZWtlZEV2ZW50KTsKK30K
KwogSFRNTE1lZGlhRWxlbWVudDo6UmVhZHlTdGF0ZSBIVE1MTWVkaWFFbGVtZW50OjpyZWFkeVN0
YXRlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9yZWFkeVN0YXRlOwpAQCAtMTI5OCw5ICsxMzEw
LDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclRpbWVDaGFuZ2VkKE1lZGlh
UGxheWVyKikKIHsKICAgICBiZWdpblByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CiAK
KyAgICAvLyA0LjguMTAuMTAgc3RlcCAxMiAmIDEzLiAgTmVlZGVkIGlmIG5vIFJlYWR5U3RhdGUg
Y2hhbmdlIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2Vlay4KICAgICBpZiAobV9yZWFkeVN0YXRl
ID49IEhBVkVfQ1VSUkVOVF9EQVRBICYmIG1fc2Vla2luZykgewotICAgICAgICBzY2hlZHVsZUV2
ZW50KGV2ZW50TmFtZXMoKS5zZWVrZWRFdmVudCk7Ci0gICAgICAgIG1fc2Vla2luZyA9IGZhbHNl
OworICAgICAgICBmaW5pc2hTZWVrKCk7CiAgICAgfQogICAgIAogICAgIGZsb2F0IG5vdyA9IGN1
cnJlbnRUaW1lKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5o
IGIvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAyN2I0OGVhLi5mZTNiZWFm
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTE5MCw2ICsxOTAsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc3RvcFBlcmlvZGljVGltZXJzKCk7CiAKICAgICB2b2lkIHNlZWsoZmxvYXQgdGlt
ZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgZmluaXNoU2VlaygpOwogICAgIHZvaWQgY2hl
Y2tJZlNlZWtOZWVkZWQoKTsKICAgICAKICAgICB2b2lkIHNjaGVkdWxlVGltZXVwZGF0ZUV2ZW50
KGJvb2wgcGVyaW9kaWNFdmVudCk7
</data>
<flag name="review"
          id="19085"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35031</attachid>
            <date>2009-08-18 02:40:34 -0700</date>
            <delta_ts>2009-08-18 14:30:28 -0700</delta_ts>
            <desc>add Eric&apos;s debounce for seeking.</desc>
            <filename>waiting_v2.patch</filename>
            <type>text/plain</type>
            <size>3952</size>
            <attacher name="Albert J. Wong">ajwong</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
N2E0NGJmZi4uNjYyNGNjZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAwOS0wOC0xNSAgQWxiZXJ0IEouIFdv
bmcgIDxhandvbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZpcmUgdGhlIHdhaXRpbmcgZXZlbnQgYmVmb3JlIHNlZWtpbmcs
IGFuZCBmaXggYSBjYXNlIHdoZXJlIGZpcmluZyBvZgorICAgICAgICB0aGUgc2Vla2VkIGV2ZW50
IGlzIG1pc3NlZCBkdWUgd2hlbiB0aGUgcmVhZHkgc3RhdGUgaXMgY2hhbmdlZCBkdXJpbmcKKyAg
ICAgICAgYSBzZWVrLgorCisgICAgICAgIEhUTUw1IG1lZGlhIGVsZW1lbnRzIGRvIG5vdCBmaXJl
IHdhaXRpbmcgZXZlbnRzIGNvcnJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjgzMzUKKworICAgICAgICBUaGUgdmlkZW8tc2Vla2luZy5odG1s
IHRlc3QgZG9lcyBub3QgbmVlZCB0byBiZSB1cGRhdGVkIGJlY2F1c2UKKyAgICAgICAgaXQgdXNl
cyBhIGxvY2FsIGZpbGUgd2hpY2ggbmV2ZXIgZmlyZXMgYSB3YWl0aW5nL3NlZWtpbmcgZXZlbnQu
CisgICAgICAgIFRvIHRlc3Qgd2FpdGluZy9zZWVraW5nLCBhIHNvdXJjZSB0aGF0IGRvZXNuJ3Qg
YnVmZmVyIGZ1bGx5IHRvbworICAgICAgICBxdWlja2x5IGlzIHJlcXVpcmVkLgorCisgICAgICAg
ICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnQ6OnNldFJlYWR5U3RhdGUpOiBhZGQgc3VwcG9ydCBmb3IKKyAgICAgICAgd2FpdGlu
ZyBldmVudCB3aGVuIHNlZWtpbmcuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpmaW5pc2hTZWVrKTogc2VuZCBzZWVrZWQgZXZlbnQKKyAgICAgICAgd2hlbmV2ZXIgc2Vla2lu
ZyBmaW5pc2hlcy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxh
eWVyVGltZUNoYW5nZWQpOiBkaXNwYXRjaCB0bworICAgICAgICBuZXcgZnVuY3Rpb24uCisgICAg
ICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisKIDIwMDktMDgtMTQgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBI
eWF0dC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBiMmU2NDI4Li40YmMxODc1IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC03NDIsMjEgKzc0MiwyOCBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgc3Rh
dGUpCiAgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBvbGRTdGF0ZSkKICAgICAgICAgcmV0dXJuOwog
ICAgIAotICAgIGlmIChtX3JlYWR5U3RhdGUgPj0gSEFWRV9DVVJSRU5UX0RBVEEpCi0gICAgICAg
IG1fc2Vla2luZyA9IGZhbHNlOwotICAgIAogICAgIGlmIChtX25ldHdvcmtTdGF0ZSA9PSBORVRX
T1JLX0VNUFRZKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9zZWVraW5nICYmIG1fcmVh
ZHlTdGF0ZSA8IEhBVkVfQ1VSUkVOVF9EQVRBKSB7CisgICAgaWYgKG1fc2Vla2luZykgeworICAg
ICAgICAvLyA0LjguMTAuMTAsIHN0ZXAgOAorICAgICAgICBpZiAod2FzUG90ZW50aWFsbHlQbGF5
aW5nICYmIG1fcmVhZHlTdGF0ZSA8IEhBVkVfRlVUVVJFX0RBVEEpCisgICAgICAgICAgICBzY2hl
ZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS53YWl0aW5nRXZlbnQpOworCiAgICAgICAgIC8vIDQuOC4x
MC4xMCwgc3RlcCA5Ci0gICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnNlZWtpbmdF
dmVudCk7Ci0gICAgfQorICAgICAgICBpZiAobV9yZWFkeVN0YXRlIDwgSEFWRV9DVVJSRU5UX0RB
VEEpIHsKKyAgICAgICAgICAgIGlmIChvbGRTdGF0ZSA+PSBIQVZFX0NVUlJFTlRfREFUQSkKKyAg
ICAgICAgICAgICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5zZWVraW5nRXZlbnQpOwor
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIC8vIDQuOC4xMC4xMCBzdGVwIDEyICYgMTMuCisg
ICAgICAgICAgICBmaW5pc2hTZWVrKCk7CiAKLSAgICBpZiAod2FzUG90ZW50aWFsbHlQbGF5aW5n
ICYmIG1fcmVhZHlTdGF0ZSA8IEhBVkVfRlVUVVJFX0RBVEEpIHsKLSAgICAgICAgLy8gNC44LjEw
LjkKLSAgICAgICAgc2NoZWR1bGVUaW1ldXBkYXRlRXZlbnQoZmFsc2UpOwotICAgICAgICBzY2hl
ZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS53YWl0aW5nRXZlbnQpOworICAgIH0gZWxzZSB7CisgICAg
ICAgIGlmICh3YXNQb3RlbnRpYWxseVBsYXlpbmcgJiYgbV9yZWFkeVN0YXRlIDwgSEFWRV9GVVRV
UkVfREFUQSkgeworICAgICAgICAgICAgLy8gNC44LjEwLjkKKyAgICAgICAgICAgIHNjaGVkdWxl
VGltZXVwZGF0ZUV2ZW50KGZhbHNlKTsKKyAgICAgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnRO
YW1lcygpLndhaXRpbmdFdmVudCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAobV9yZWFk
eVN0YXRlID49IEhBVkVfTUVUQURBVEEgJiYgb2xkU3RhdGUgPCBIQVZFX01FVEFEQVRBKSB7CkBA
IC05MDEsNiArOTA4LDEyIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2VlayhmbG9hdCB0aW1l
LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBtX3NlbnRFbmRFdmVudCA9IGZhbHNlOwogfQogCit2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmZpbmlzaFNlZWsoKQoreworICAgIG1fc2Vla2luZyA9IGZh
bHNlOworICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnNlZWtlZEV2ZW50KTsKK30KKwog
SFRNTE1lZGlhRWxlbWVudDo6UmVhZHlTdGF0ZSBIVE1MTWVkaWFFbGVtZW50OjpyZWFkeVN0YXRl
KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9yZWFkeVN0YXRlOwpAQCAtMTI5OCw5ICsxMzExLDkg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclRpbWVDaGFuZ2VkKE1lZGlhUGxh
eWVyKikKIHsKICAgICBiZWdpblByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CiAKKyAg
ICAvLyA0LjguMTAuMTAgc3RlcCAxMiAmIDEzLiAgTmVlZGVkIGlmIG5vIFJlYWR5U3RhdGUgY2hh
bmdlIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2Vlay4KICAgICBpZiAobV9yZWFkeVN0YXRlID49
IEhBVkVfQ1VSUkVOVF9EQVRBICYmIG1fc2Vla2luZykgewotICAgICAgICBzY2hlZHVsZUV2ZW50
KGV2ZW50TmFtZXMoKS5zZWVrZWRFdmVudCk7Ci0gICAgICAgIG1fc2Vla2luZyA9IGZhbHNlOwor
ICAgICAgICBmaW5pc2hTZWVrKCk7CiAgICAgfQogICAgIAogICAgIGZsb2F0IG5vdyA9IGN1cnJl
bnRUaW1lKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAyN2I0OGVhLi5mZTNiZWFmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTE5MCw2ICsxOTAsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgc3RvcFBlcmlvZGljVGltZXJzKCk7CiAKICAgICB2b2lkIHNlZWsoZmxvYXQgdGltZSwg
RXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgZmluaXNoU2VlaygpOwogICAgIHZvaWQgY2hlY2tJ
ZlNlZWtOZWVkZWQoKTsKICAgICAKICAgICB2b2lkIHNjaGVkdWxlVGltZXVwZGF0ZUV2ZW50KGJv
b2wgcGVyaW9kaWNFdmVudCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35076</attachid>
            <date>2009-08-18 14:30:31 -0700</date>
            <delta_ts>2009-08-18 14:34:48 -0700</delta_ts>
            <desc>waiting/seeking fix...Now with a test\!</desc>
            <filename>bug-28335-20090818143030.patch</filename>
            <type>text/plain</type>
            <size>3185</size>
            <attacher name="Albert J. Wong">ajwong</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2YTIwMzc4Li40YzRjZGZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDgt
MTggIEFsYmVydCBKLiBXb25nICA8YWp3b25nQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgbWFudWFsIHRlc3QgdG8gY2hl
Y2sgaWYgd2FpdGluZy9zZWVraW5nIGV2ZW50cyBhcmUgZmlyZWQKKyAgICAgICAgd2hlbiBzZWVr
aW5nIGludG8gYSBub24tYnVmZmVyZWQgcmVnaW9uLgorCisgICAgICAgIEhUTUw1IG1lZGlhIGVs
ZW1lbnRzIGRvIG5vdCBmaXJlIHdhaXRpbmcgZXZlbnRzIGNvcnJlY3RseQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgzMzUKKworICAgICAgICAqIGh0
dHAvdGVzdHMvbWVkaWEvdmlkZW8tdGhyb3R0bGVkLWxvYWQuY2dpOiBBZGRlZC4KKyAgICAgICAg
KiBtZWRpYS92aWRlby10ZXN0LmpzOgorICAgICAgICAoaXNJblRpbWVSYW5nZXMpOgorCiAyMDA5
LTA4LTE0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdhNDRiZmYuLjFkY2IzOGQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAK
KzIwMDktMDgtMTggIEFsYmVydCBKLiBXb25nICA8YWp3b25nQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXJlIHRoZSB3YWl0
aW5nIGV2ZW50IGJlZm9yZSBzZWVraW5nLCBhbmQgZml4IGEgY2FzZSB3aGVyZSBmaXJpbmcgb2YK
KyAgICAgICAgdGhlIHNlZWtlZCBldmVudCBpcyBtaXNzZWQgZHVlIHdoZW4gdGhlIHJlYWR5IHN0
YXRlIGlzIGNoYW5nZWQgZHVyaW5nCisgICAgICAgIGEgc2Vlay4KKworICAgICAgICBIVE1MNSBt
ZWRpYSBlbGVtZW50cyBkbyBub3QgZmlyZSB3YWl0aW5nIGV2ZW50cyBjb3JyZWN0bHkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MzM1CisKKyAgICAg
ICAgQWRkZWQgdmlkZW8td2FpdGluZy1zZWVraW5nLmh0bWwgaW50byBtYW51YWwgdGVzdHMgYmVj
YXVzZSBub3QKKyAgICAgICAgYWxsIHBsYXRmb3JtcyBhbGxvdyBzZWVraW5nIGludG8gbm9uLWJ1
ZmZlcmVkIHJhbmdlcy4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRSZWFkeVN0YXRlKTogYWRkIHN1
cHBvcnQgZm9yCisgICAgICAgIHdhaXRpbmcgZXZlbnQgd2hlbiBzZWVraW5nLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZmluaXNoU2Vlayk6IHNlbmQgc2Vla2VkIGV2ZW50
CisgICAgICAgIHdoZW5ldmVyIHNlZWtpbmcgZmluaXNoZXMuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclRpbWVDaGFuZ2VkKTogZGlzcGF0Y2ggdG8KKyAg
ICAgICAgbmV3IGZ1bmN0aW9uLgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgor
ICAgICAgICAqIG1hbnVhbC10ZXN0cy92aWRlby13YWl0aW5nLXNlZWtpbmcuaHRtbDogQWRkZWQu
CisKKzIwMDktMDgtMTUgIEFsYmVydCBKLiBXb25nICA8YWp3b25nQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXJlIHRoZSB3
YWl0aW5nIGV2ZW50IGJlZm9yZSBzZWVraW5nLCBhbmQgZml4IGEgY2FzZSB3aGVyZSBmaXJpbmcg
b2YKKyAgICAgICAgdGhlIHNlZWtlZCBldmVudCBpcyBtaXNzZWQgZHVlIHdoZW4gdGhlIHJlYWR5
IHN0YXRlIGlzIGNoYW5nZWQgZHVyaW5nCisgICAgICAgIGEgc2Vlay4KKworICAgICAgICBIVE1M
NSBtZWRpYSBlbGVtZW50cyBkbyBub3QgZmlyZSB3YWl0aW5nIGV2ZW50cyBjb3JyZWN0bHkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MzM1CisKKyAg
ICAgICAgVGhlIG1lZGlhL3ZpZGVvLXNlZWtpbmcuaHRtbCB0ZXN0IGRvZXMgbm90IG5lZWQgdG8g
YmUgdXBkYXRlZCBiZWNhdXNlCisgICAgICAgIGl0IHVzZXMgYSBsb2NhbCBmaWxlIHdoaWNoIG5l
dmVyIGZpcmVzIGEgd2FpdGluZy9zZWVraW5nIGV2ZW50LgorICAgICAgICBDcmVhdHRpbmcgYW4g
aHR0cCB0ZXN0IHdpdGggYSB0aHJvdHRsZWQgZmlsZSBkb2Vzbid0IHdvcmsgZWl0aGVyCisgICAg
ICAgIGJlY2F1c2UgdGhlIE1lZGlhUGxheWVyUHJpdmF0ZVFULm1tIGRvZXNuJ3QgcmVwb3J0IGEg
c2Vla2FibGUgcmFuZ2UKKyAgICAgICAgYmV5b25kIHdoYXQgaGFzIGJlZW4gZG93bmxvYWRlZCwg
bWVhbmluZyB0aGF0IHRoZSBIVE1MTWVkaWFFbGVtZW50CisgICAgICAgIHdpbGwgbmV2ZXIgYWxs
b3cgc2Vla2luZyB0byBhIGxvY2F0aW9uIHdoZXJlIHRoZSByZWFkeVN0YXRlIHdvdWxkIG5lZWQK
KyAgICAgICAgdG8gbW92ZSB0byBIQVZFX01FVEFEQVRBLgorCisgICAgICAgICogaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNl
dFJlYWR5U3RhdGUpOiBhZGQgc3VwcG9ydCBmb3IKKyAgICAgICAgd2FpdGluZyBldmVudCB3aGVu
IHNlZWtpbmcuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpmaW5pc2hTZWVr
KTogc2VuZCBzZWVrZWQgZXZlbnQKKyAgICAgICAgd2hlbmV2ZXIgc2Vla2luZyBmaW5pc2hlcy4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyVGltZUNoYW5n
ZWQpOiBkaXNwYXRjaCB0bworICAgICAgICBuZXcgZnVuY3Rpb24uCisgICAgICAgICogaHRtbC9I
VE1MTWVkaWFFbGVtZW50Lmg6CisKIDIwMDktMDgtMTQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dC4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35077</attachid>
            <date>2009-08-18 14:30:36 -0700</date>
            <delta_ts>2009-08-18 14:34:48 -0700</delta_ts>
            <desc>waiting/seeking fix...Now with a test\!</desc>
            <filename>bug-28335-20090818143034.patch</filename>
            <type>text/plain</type>
            <size>6387</size>
            <attacher name="Albert J. Wong">ajwong</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvdmlkZW8tdGhyb3R0bGVk
LWxvYWQuY2dpIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS92aWRlby10aHJvdHRsZWQt
bG9hZC5jZ2kKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2UwYzg3ZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvdmlkZW8tdGhyb3R0
bGVkLWxvYWQuY2dpCkBAIC0wLDAgKzEsMjQgQEAKKyMhL3Vzci9iaW4vcGVybCAtdworCit1c2Ug
Q0dJOwordXNlIEZpbGU6OnN0YXQ7CisKKyRxdWVyeSA9IG5ldyBDR0k7CiskbmFtZSA9ICRxdWVy
eS0+cGFyYW0oJ25hbWUnKTsKKyRrYlBlclNlYyA9ICRxdWVyeS0+cGFyYW0oJ3Rocm90dGxlJyk7
CisKK215ICRmaWxlc2l6ZSA9IHN0YXQoJG5hbWUpLT5zaXplOworcHJpbnQgIkNvbnRlbnQtdHlw
ZTogdmlkZW8vbXA0XG4iOyAKK3ByaW50ICJDb250ZW50LUxlbmd0aDogIiAuICRmaWxlc2l6ZSAu
ICJcblxuIjsKKworb3BlbiBGSUxFLCAkbmFtZSBvciBkaWU7CitiaW5tb2RlIEZJTEU7CitteSAo
JGJ1ZiwgJGRhdGEsICRuKTsKK3doaWxlICgoJG4gPSByZWFkIEZJTEUsICRkYXRhLCAxMDI0KSAh
PSAwKSB7CisKKyAgICBwcmludCAkZGF0YTsKKyAgICBpZiAoJGtiUGVyU2VjID4gMCkgeworICAg
ICAgICBzZWxlY3QodW5kZWYsIHVuZGVmLCB1bmRlZiwgMS8ka2JQZXJTZWMpOworICAgIH0KK30K
K2Nsb3NlKEZJTEUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tdGVzdC5q
cyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMKaW5kZXggY2RmMmRjMC4uNDU2NzUy
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tdGVzdC5qcworKysgYi9MYXlv
dXRUZXN0cy9tZWRpYS92aWRlby10ZXN0LmpzCkBAIC0yMTgsMyArMjE4LDE1IEBAIGZ1bmN0aW9u
IHJlbGF0aXZlVVJMKHVybCkKIHsKICAgICByZXR1cm4gdXJsLnN1YnN0cih1cmwuaW5kZXhPZign
L21lZGlhLycpKzcpOwogfQorCisKK2Z1bmN0aW9uIGlzSW5UaW1lUmFuZ2VzKHJhbmdlcywgdGlt
ZSkKK3sKKyAgICB2YXIgaSA9IDA7CisgICAgZm9yIChpID0gMDsgaSA8IHJhbmdlcy5sZW5ndGg7
ICsraSkgeworICAgICAgICBpZiAodGltZSA+PSByYW5nZXMuc3RhcnQoaSkgJiYgdGltZSA8PSBy
YW5nZXMuZW5kKGkpKSB7CisgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9
CisgICAgcmV0dXJuIGZhbHNlOworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGIy
ZTY0MjguLjRiYzE4NzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTc0MiwyMSAr
NzQyLDI4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXll
cjo6UmVhZHlTdGF0ZSBzdGF0ZSkKICAgICBpZiAobV9yZWFkeVN0YXRlID09IG9sZFN0YXRlKQog
ICAgICAgICByZXR1cm47CiAgICAgCi0gICAgaWYgKG1fcmVhZHlTdGF0ZSA+PSBIQVZFX0NVUlJF
TlRfREFUQSkKLSAgICAgICAgbV9zZWVraW5nID0gZmFsc2U7Ci0gICAgCiAgICAgaWYgKG1fbmV0
d29ya1N0YXRlID09IE5FVFdPUktfRU1QVFkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICht
X3NlZWtpbmcgJiYgbV9yZWFkeVN0YXRlIDwgSEFWRV9DVVJSRU5UX0RBVEEpIHsKKyAgICBpZiAo
bV9zZWVraW5nKSB7CisgICAgICAgIC8vIDQuOC4xMC4xMCwgc3RlcCA4CisgICAgICAgIGlmICh3
YXNQb3RlbnRpYWxseVBsYXlpbmcgJiYgbV9yZWFkeVN0YXRlIDwgSEFWRV9GVVRVUkVfREFUQSkK
KyAgICAgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLndhaXRpbmdFdmVudCk7CisK
ICAgICAgICAgLy8gNC44LjEwLjEwLCBzdGVwIDkKLSAgICAgICAgc2NoZWR1bGVFdmVudChldmVu
dE5hbWVzKCkuc2Vla2luZ0V2ZW50KTsKLSAgICB9CisgICAgICAgIGlmIChtX3JlYWR5U3RhdGUg
PCBIQVZFX0NVUlJFTlRfREFUQSkgeworICAgICAgICAgICAgaWYgKG9sZFN0YXRlID49IEhBVkVf
Q1VSUkVOVF9EQVRBKQorICAgICAgICAgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygp
LnNlZWtpbmdFdmVudCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgLy8gNC44LjEwLjEw
IHN0ZXAgMTIgJiAxMy4KKyAgICAgICAgICAgIGZpbmlzaFNlZWsoKTsKIAotICAgIGlmICh3YXNQ
b3RlbnRpYWxseVBsYXlpbmcgJiYgbV9yZWFkeVN0YXRlIDwgSEFWRV9GVVRVUkVfREFUQSkgewot
ICAgICAgICAvLyA0LjguMTAuOQotICAgICAgICBzY2hlZHVsZVRpbWV1cGRhdGVFdmVudChmYWxz
ZSk7Ci0gICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLndhaXRpbmdFdmVudCk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHdhc1BvdGVudGlhbGx5UGxheWluZyAmJiBtX3JlYWR5
U3RhdGUgPCBIQVZFX0ZVVFVSRV9EQVRBKSB7CisgICAgICAgICAgICAvLyA0LjguMTAuOQorICAg
ICAgICAgICAgc2NoZWR1bGVUaW1ldXBkYXRlRXZlbnQoZmFsc2UpOworICAgICAgICAgICAgc2No
ZWR1bGVFdmVudChldmVudE5hbWVzKCkud2FpdGluZ0V2ZW50KTsKKyAgICAgICAgfQogICAgIH0K
IAogICAgIGlmIChtX3JlYWR5U3RhdGUgPj0gSEFWRV9NRVRBREFUQSAmJiBvbGRTdGF0ZSA8IEhB
VkVfTUVUQURBVEEpIHsKQEAgLTkwMSw2ICs5MDgsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjpzZWVrKGZsb2F0IHRpbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIG1fc2VudEVuZEV2ZW50
ID0gZmFsc2U7CiB9CiAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZmluaXNoU2VlaygpCit7Cisg
ICAgbV9zZWVraW5nID0gZmFsc2U7CisgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuc2Vl
a2VkRXZlbnQpOworfQorCiBIVE1MTWVkaWFFbGVtZW50OjpSZWFkeVN0YXRlIEhUTUxNZWRpYUVs
ZW1lbnQ6OnJlYWR5U3RhdGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3JlYWR5U3RhdGU7CkBA
IC0xMjk4LDkgKzEzMTEsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyVGlt
ZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKQogewogICAgIGJlZ2luUHJvY2Vzc2luZ01lZGlhUGxheWVy
Q2FsbGJhY2soKTsKIAorICAgIC8vIDQuOC4xMC4xMCBzdGVwIDEyICYgMTMuICBOZWVkZWQgaWYg
bm8gUmVhZHlTdGF0ZSBjaGFuZ2UgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZWVrLgogICAgIGlm
IChtX3JlYWR5U3RhdGUgPj0gSEFWRV9DVVJSRU5UX0RBVEEgJiYgbV9zZWVraW5nKSB7Ci0gICAg
ICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnNlZWtlZEV2ZW50KTsKLSAgICAgICAgbV9z
ZWVraW5nID0gZmFsc2U7CisgICAgICAgIGZpbmlzaFNlZWsoKTsKICAgICB9CiAgICAgCiAgICAg
ZmxvYXQgbm93ID0gY3VycmVudFRpbWUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDI3
YjQ4ZWEuLmZlM2JlYWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMTkwLDYgKzE5MCw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdG9wUGVyaW9kaWNUaW1lcnMoKTsKIAogICAgIHZvaWQg
c2VlayhmbG9hdCB0aW1lLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBmaW5pc2hTZWVrKCk7
CiAgICAgdm9pZCBjaGVja0lmU2Vla05lZWRlZCgpOwogICAgIAogICAgIHZvaWQgc2NoZWR1bGVU
aW1ldXBkYXRlRXZlbnQoYm9vbCBwZXJpb2RpY0V2ZW50KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bWFudWFsLXRlc3RzL3ZpZGVvLXdhaXRpbmctc2Vla2luZy5odG1sIGIvV2ViQ29yZS9tYW51YWwt
dGVzdHMvdmlkZW8td2FpdGluZy1zZWVraW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYWI0OWI2YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbWFudWFsLXRl
c3RzL3ZpZGVvLXdhaXRpbmctc2Vla2luZy5odG1sCkBAIC0wLDAgKzEsNjkgQEAKKzx2aWRlbyBj
b250cm9scz48L3ZpZGVvPgorPHA+QXR0ZW1wdCB0byBzZWVrIG91dCBvZiB0aGUgYnVmZmVyZWQg
cmFuZ2UuICBJZiBzdXBwb3J0ZWQsIHRoaXMgc2hvdWxkIGNhdXNlCithIHdhaXRpbmcgYW5kIHNl
ZWtpbmcgZXZlbnQgdG8gYmUgZmlyZWQgZm9yIGVhY2ggc2Vlay4gIFRoaXMgdGVzdCBtYWtlcyBh
c3N1bXB0aW9ucworb24gdGhlIHNpemUgb2YgdGhlIGlucHV0IGZpbGUsIHRoZSBiaXRyYXRlIG9m
IGRlbGl2ZXJ5LCBhbmQgdGhlIGR1cmF0aW9uIG9mIHRoZQorZmlsZS4KKzwvcD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisKKyAgICB2YXIgc2Vla2VkQ291bnQgPSAwOworICAgIHZhciBjb3VudGVyID0gMDsK
KyAgICB2YXIgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVsw
XTsKKworICAgIGZ1bmN0aW9uIHRyeVNlZWsoc2Vla1RvKQorICAgIHsKKyAgICAgICAgaWYgKGlz
SW5UaW1lUmFuZ2VzKHZpZGVvLnNlZWthYmxlLCBzZWVrVG8pKSB7CisgICAgICAgICAgICBpZiAo
aXNJblRpbWVSYW5nZXModmlkZW8uYnVmZmVyZWQsIHNlZWtUbykpIHsKKyAgICAgICAgICAgICAg
ICBjb25zb2xlV3JpdGUoIldhcmluaW5nOiBTZWVraW5nIGludG8gYnVmZmVyZWQgcmVnaW9uLiBN
YXkgbm90IGdlbmVyYXRlIHdhaXRpbmcgb3Igc2Vla2luZyBldmVudHMuIik7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBydW4oInZpZGVvLmN1cnJlbnRUaW1lID0gIiArIHNlZWtUbyk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmYWlsVGVzdCgiQ2Fubm90IHNlZWsgdG8gIiAr
IHNlZWtUbyArICIuIERvZXMgZW5naW5lIHN1cHBvcnQgc2Vla2luZyBpbnRvIHVuYnVmZmVyZWQg
cmVnaW9uPyIpOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gc2Vla2VkKCkKKyAg
ICB7IAorICAgICAgICArK3NlZWtlZENvdW50OyAKKyAgICAgICAgY29uc29sZVdyaXRlKCIiKTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBzY2hlZHVsZVNlZWsoKSB7CisgICAgICAgIHNldFRpbWVv
dXQoc29tZVRpbWVMYXRlciwgMjAwKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzb21lVGltZUxh
dGVyKCkKKyAgICB7CisgICAgICAgIGNvbnNvbGVXcml0ZSgiUnVubmluZyBzY2hlZHVsZWQgc2Vl
ayIpOworICAgICAgICAvLyBTb3VyY2UgaXMgYXNzdW1lZCB0byBiZSBhYm91dCAxODhrIHdpdGgg
YSB1bmlmb3JtIGJpdHJhdGUsCisgICAgICAgIC8vID4gNCBzZWNvbmRzIGluIGxlbmd0aCwgYW5k
IHNlcnZlZCBhdCAyNWtiL3MuICBUaGlzIHNob3VsZCBtYWtlCisgICAgICAgIC8vIHNlZWtpbmcg
b25lIHNlY29uZCBhaGVhZCBldmVyeSAyMDBtcyBhbHdheXMgbGVhdmUgdGhlIGJ1ZmZlcmVkCisg
ICAgICAgIC8vIHJlZ2lvbi4KKyAgICAgICAgdGVzdEV4cGVjdGVkKCJzZWVrZWRDb3VudCIsIGNv
dW50ZXIpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmN1cnJlbnRUaW1lIiwgY291bnRl
ciwgIj49Iik7CisKKyAgICAgICAgaWYgKGNvdW50ZXIgPT0gMykKKyAgICAgICAgeworICAgICAg
ICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IGVuZFRlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgICsrY291bnRlcjsKKworICAgICAgICBz
Y2hlZHVsZVNlZWsoKTsKKyAgICAgICAgdHJ5U2Vlayhjb3VudGVyKTsKKyAgICAgICAgY29uc29s
ZVdyaXRlKCIiKTsKKyAgICB9CisKKyAgICB3YWl0Rm9yRXZlbnQoJ3dhaXRpbmcnKTsKKyAgICB3
YWl0Rm9yRXZlbnQoJ3NlZWtpbmcnKTsKKyAgICB3YWl0Rm9yRXZlbnQoJ3NlZWtlZCcsIHNlZWtl
ZCk7CisgICAgd2FpdEZvckV2ZW50KCdwbGF5Jywgc29tZVRpbWVMYXRlcik7CisKKyAgICBjb25z
b2xlV3JpdGUoIlN0YXJ0IExvYWQiKTsKKyAgICB2aWRlby5zcmMgPSAiaHR0cDovLzEyNy4wLjAu
MTo4MDAwL21lZGlhL3ZpZGVvLXRocm90dGxlZC1sb2FkLmNnaT9uYW1lPS4uLy4uLy4uL21lZGlh
L2NvbnRlbnQvdGVzdC5tcDQmdGhyb3R0bGU9MzAmYW50aV9jYWNoZT0iICsgKG5ldyBEYXRlKCkp
LmdldFRpbWUoKTsKKyAgICB2aWRlby5sb2FkKCk7CisgICAgdmlkZW8ucGxheSgpOworPC9zY3Jp
cHQ+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35078</attachid>
            <date>2009-08-18 14:34:48 -0700</date>
            <delta_ts>2009-08-18 15:07:30 -0700</delta_ts>
            <desc>waiting fix, with tests, in *1* patch!</desc>
            <filename>waiting_fix.patch</filename>
            <type>text/plain</type>
            <size>9574</size>
            <attacher name="Albert J. Wong">ajwong</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2YTIwMzc4Li40YzRjZGZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDgt
MTggIEFsYmVydCBKLiBXb25nICA8YWp3b25nQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgbWFudWFsIHRlc3QgdG8gY2hl
Y2sgaWYgd2FpdGluZy9zZWVraW5nIGV2ZW50cyBhcmUgZmlyZWQKKyAgICAgICAgd2hlbiBzZWVr
aW5nIGludG8gYSBub24tYnVmZmVyZWQgcmVnaW9uLgorCisgICAgICAgIEhUTUw1IG1lZGlhIGVs
ZW1lbnRzIGRvIG5vdCBmaXJlIHdhaXRpbmcgZXZlbnRzIGNvcnJlY3RseQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgzMzUKKworICAgICAgICAqIGh0
dHAvdGVzdHMvbWVkaWEvdmlkZW8tdGhyb3R0bGVkLWxvYWQuY2dpOiBBZGRlZC4KKyAgICAgICAg
KiBtZWRpYS92aWRlby10ZXN0LmpzOgorICAgICAgICAoaXNJblRpbWVSYW5nZXMpOgorCiAyMDA5
LTA4LTE0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL3ZpZGVvLXRocm90dGxlZC1sb2FkLmNnaSBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvdmlkZW8tdGhyb3R0bGVkLWxvYWQuY2dpCm5ldyBmaWxlIG1vZGUgMTAwNzU1Cmlu
ZGV4IDAwMDAwMDAuLjNlMGM4N2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL3ZpZGVvLXRocm90dGxlZC1sb2FkLmNnaQpAQCAtMCwwICsxLDI0IEBACisj
IS91c3IvYmluL3BlcmwgLXcKKwordXNlIENHSTsKK3VzZSBGaWxlOjpzdGF0OworCiskcXVlcnkg
PSBuZXcgQ0dJOworJG5hbWUgPSAkcXVlcnktPnBhcmFtKCduYW1lJyk7Ciska2JQZXJTZWMgPSAk
cXVlcnktPnBhcmFtKCd0aHJvdHRsZScpOworCitteSAkZmlsZXNpemUgPSBzdGF0KCRuYW1lKS0+
c2l6ZTsKK3ByaW50ICJDb250ZW50LXR5cGU6IHZpZGVvL21wNFxuIjsgCitwcmludCAiQ29udGVu
dC1MZW5ndGg6ICIgLiAkZmlsZXNpemUgLiAiXG5cbiI7CisKK29wZW4gRklMRSwgJG5hbWUgb3Ig
ZGllOworYmlubW9kZSBGSUxFOworbXkgKCRidWYsICRkYXRhLCAkbik7Cit3aGlsZSAoKCRuID0g
cmVhZCBGSUxFLCAkZGF0YSwgMTAyNCkgIT0gMCkgeworCisgICAgcHJpbnQgJGRhdGE7CisgICAg
aWYgKCRrYlBlclNlYyA+IDApIHsKKyAgICAgICAgc2VsZWN0KHVuZGVmLCB1bmRlZiwgdW5kZWYs
IDEvJGtiUGVyU2VjKTsKKyAgICB9Cit9CitjbG9zZShGSUxFKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10ZXN0
LmpzCmluZGV4IGNkZjJkYzAuLjQ1Njc1MjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlh
L3ZpZGVvLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tdGVzdC5qcwpAQCAt
MjE4LDMgKzIxOCwxNSBAQCBmdW5jdGlvbiByZWxhdGl2ZVVSTCh1cmwpCiB7CiAgICAgcmV0dXJu
IHVybC5zdWJzdHIodXJsLmluZGV4T2YoJy9tZWRpYS8nKSs3KTsKIH0KKworCitmdW5jdGlvbiBp
c0luVGltZVJhbmdlcyhyYW5nZXMsIHRpbWUpCit7CisgICAgdmFyIGkgPSAwOworICAgIGZvciAo
aSA9IDA7IGkgPCByYW5nZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKHRpbWUgPj0gcmFu
Z2VzLnN0YXJ0KGkpICYmIHRpbWUgPD0gcmFuZ2VzLmVuZChpKSkgeworICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2E0NGJmZi4u
MWRjYjM4ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAwOS0wOC0xOCAgQWxiZXJ0IEouIFdvbmcgIDxhandv
bmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEZpcmUgdGhlIHdhaXRpbmcgZXZlbnQgYmVmb3JlIHNlZWtpbmcsIGFuZCBmaXgg
YSBjYXNlIHdoZXJlIGZpcmluZyBvZgorICAgICAgICB0aGUgc2Vla2VkIGV2ZW50IGlzIG1pc3Nl
ZCBkdWUgd2hlbiB0aGUgcmVhZHkgc3RhdGUgaXMgY2hhbmdlZCBkdXJpbmcKKyAgICAgICAgYSBz
ZWVrLgorCisgICAgICAgIEhUTUw1IG1lZGlhIGVsZW1lbnRzIGRvIG5vdCBmaXJlIHdhaXRpbmcg
ZXZlbnRzIGNvcnJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjgzMzUKKworICAgICAgICBBZGRlZCB2aWRlby13YWl0aW5nLXNlZWtpbmcuaHRt
bCBpbnRvIG1hbnVhbCB0ZXN0cyBiZWNhdXNlIG5vdAorICAgICAgICBhbGwgcGxhdGZvcm1zIGFs
bG93IHNlZWtpbmcgaW50byBub24tYnVmZmVyZWQgcmFuZ2VzLgorCisgICAgICAgICogaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnNldFJlYWR5U3RhdGUpOiBhZGQgc3VwcG9ydCBmb3IKKyAgICAgICAgd2FpdGluZyBldmVudCB3
aGVuIHNlZWtpbmcuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpmaW5pc2hT
ZWVrKTogc2VuZCBzZWVrZWQgZXZlbnQKKyAgICAgICAgd2hlbmV2ZXIgc2Vla2luZyBmaW5pc2hl
cy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyVGltZUNo
YW5nZWQpOiBkaXNwYXRjaCB0bworICAgICAgICBuZXcgZnVuY3Rpb24uCisgICAgICAgICogaHRt
bC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogbWFudWFsLXRlc3RzL3ZpZGVvLXdhaXRp
bmctc2Vla2luZy5odG1sOiBBZGRlZC4KKworMjAwOS0wOC0xNSAgQWxiZXJ0IEouIFdvbmcgIDxh
andvbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEZpcmUgdGhlIHdhaXRpbmcgZXZlbnQgYmVmb3JlIHNlZWtpbmcsIGFuZCBm
aXggYSBjYXNlIHdoZXJlIGZpcmluZyBvZgorICAgICAgICB0aGUgc2Vla2VkIGV2ZW50IGlzIG1p
c3NlZCBkdWUgd2hlbiB0aGUgcmVhZHkgc3RhdGUgaXMgY2hhbmdlZCBkdXJpbmcKKyAgICAgICAg
YSBzZWVrLgorCisgICAgICAgIEhUTUw1IG1lZGlhIGVsZW1lbnRzIGRvIG5vdCBmaXJlIHdhaXRp
bmcgZXZlbnRzIGNvcnJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjgzMzUKKworICAgICAgICBUaGUgbWVkaWEvdmlkZW8tc2Vla2luZy5odG1s
IHRlc3QgZG9lcyBub3QgbmVlZCB0byBiZSB1cGRhdGVkIGJlY2F1c2UKKyAgICAgICAgaXQgdXNl
cyBhIGxvY2FsIGZpbGUgd2hpY2ggbmV2ZXIgZmlyZXMgYSB3YWl0aW5nL3NlZWtpbmcgZXZlbnQu
CisgICAgICAgIENyZWF0dGluZyBhbiBodHRwIHRlc3Qgd2l0aCBhIHRocm90dGxlZCBmaWxlIGRv
ZXNuJ3Qgd29yayBlaXRoZXIKKyAgICAgICAgYmVjYXVzZSB0aGUgTWVkaWFQbGF5ZXJQcml2YXRl
UVQubW0gZG9lc24ndCByZXBvcnQgYSBzZWVrYWJsZSByYW5nZQorICAgICAgICBiZXlvbmQgd2hh
dCBoYXMgYmVlbiBkb3dubG9hZGVkLCBtZWFuaW5nIHRoYXQgdGhlIEhUTUxNZWRpYUVsZW1lbnQK
KyAgICAgICAgd2lsbCBuZXZlciBhbGxvdyBzZWVraW5nIHRvIGEgbG9jYXRpb24gd2hlcmUgdGhl
IHJlYWR5U3RhdGUgd291bGQgbmVlZAorICAgICAgICB0byBtb3ZlIHRvIEhBVkVfTUVUQURBVEEu
CisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0UmVhZHlTdGF0ZSk6IGFkZCBzdXBwb3J0IGZvcgorICAg
ICAgICB3YWl0aW5nIGV2ZW50IHdoZW4gc2Vla2luZy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OmZpbmlzaFNlZWspOiBzZW5kIHNlZWtlZCBldmVudAorICAgICAgICB3aGVu
ZXZlciBzZWVraW5nIGZpbmlzaGVzLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFQbGF5ZXJUaW1lQ2hhbmdlZCk6IGRpc3BhdGNoIHRvCisgICAgICAgIG5ldyBmdW5j
dGlvbi4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKwogMjAwOS0wOC0xNCAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXZlIEh5YXR0LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGIyZTY0Mjgu
LjRiYzE4NzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTc0MiwyMSArNzQyLDI4
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZSBzdGF0ZSkKICAgICBpZiAobV9yZWFkeVN0YXRlID09IG9sZFN0YXRlKQogICAgICAg
ICByZXR1cm47CiAgICAgCi0gICAgaWYgKG1fcmVhZHlTdGF0ZSA+PSBIQVZFX0NVUlJFTlRfREFU
QSkKLSAgICAgICAgbV9zZWVraW5nID0gZmFsc2U7Ci0gICAgCiAgICAgaWYgKG1fbmV0d29ya1N0
YXRlID09IE5FVFdPUktfRU1QVFkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX3NlZWtp
bmcgJiYgbV9yZWFkeVN0YXRlIDwgSEFWRV9DVVJSRU5UX0RBVEEpIHsKKyAgICBpZiAobV9zZWVr
aW5nKSB7CisgICAgICAgIC8vIDQuOC4xMC4xMCwgc3RlcCA4CisgICAgICAgIGlmICh3YXNQb3Rl
bnRpYWxseVBsYXlpbmcgJiYgbV9yZWFkeVN0YXRlIDwgSEFWRV9GVVRVUkVfREFUQSkKKyAgICAg
ICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLndhaXRpbmdFdmVudCk7CisKICAgICAg
ICAgLy8gNC44LjEwLjEwLCBzdGVwIDkKLSAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVz
KCkuc2Vla2luZ0V2ZW50KTsKLSAgICB9CisgICAgICAgIGlmIChtX3JlYWR5U3RhdGUgPCBIQVZF
X0NVUlJFTlRfREFUQSkgeworICAgICAgICAgICAgaWYgKG9sZFN0YXRlID49IEhBVkVfQ1VSUkVO
VF9EQVRBKQorICAgICAgICAgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnNlZWtp
bmdFdmVudCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgLy8gNC44LjEwLjEwIHN0ZXAg
MTIgJiAxMy4KKyAgICAgICAgICAgIGZpbmlzaFNlZWsoKTsKIAotICAgIGlmICh3YXNQb3RlbnRp
YWxseVBsYXlpbmcgJiYgbV9yZWFkeVN0YXRlIDwgSEFWRV9GVVRVUkVfREFUQSkgewotICAgICAg
ICAvLyA0LjguMTAuOQotICAgICAgICBzY2hlZHVsZVRpbWV1cGRhdGVFdmVudChmYWxzZSk7Ci0g
ICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLndhaXRpbmdFdmVudCk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgaWYgKHdhc1BvdGVudGlhbGx5UGxheWluZyAmJiBtX3JlYWR5U3RhdGUg
PCBIQVZFX0ZVVFVSRV9EQVRBKSB7CisgICAgICAgICAgICAvLyA0LjguMTAuOQorICAgICAgICAg
ICAgc2NoZWR1bGVUaW1ldXBkYXRlRXZlbnQoZmFsc2UpOworICAgICAgICAgICAgc2NoZWR1bGVF
dmVudChldmVudE5hbWVzKCkud2FpdGluZ0V2ZW50KTsKKyAgICAgICAgfQogICAgIH0KIAogICAg
IGlmIChtX3JlYWR5U3RhdGUgPj0gSEFWRV9NRVRBREFUQSAmJiBvbGRTdGF0ZSA8IEhBVkVfTUVU
QURBVEEpIHsKQEAgLTkwMSw2ICs5MDgsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWVr
KGZsb2F0IHRpbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIG1fc2VudEVuZEV2ZW50ID0gZmFs
c2U7CiB9CiAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZmluaXNoU2VlaygpCit7CisgICAgbV9z
ZWVraW5nID0gZmFsc2U7CisgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuc2Vla2VkRXZl
bnQpOworfQorCiBIVE1MTWVkaWFFbGVtZW50OjpSZWFkeVN0YXRlIEhUTUxNZWRpYUVsZW1lbnQ6
OnJlYWR5U3RhdGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3JlYWR5U3RhdGU7CkBAIC0xMjk4
LDkgKzEzMTEsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyVGltZUNoYW5n
ZWQoTWVkaWFQbGF5ZXIqKQogewogICAgIGJlZ2luUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJh
Y2soKTsKIAorICAgIC8vIDQuOC4xMC4xMCBzdGVwIDEyICYgMTMuICBOZWVkZWQgaWYgbm8gUmVh
ZHlTdGF0ZSBjaGFuZ2UgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZWVrLgogICAgIGlmIChtX3Jl
YWR5U3RhdGUgPj0gSEFWRV9DVVJSRU5UX0RBVEEgJiYgbV9zZWVraW5nKSB7Ci0gICAgICAgIHNj
aGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnNlZWtlZEV2ZW50KTsKLSAgICAgICAgbV9zZWVraW5n
ID0gZmFsc2U7CisgICAgICAgIGZpbmlzaFNlZWsoKTsKICAgICB9CiAgICAgCiAgICAgZmxvYXQg
bm93ID0gY3VycmVudFRpbWUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDI3YjQ4ZWEu
LmZlM2JlYWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysr
IGIvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMTkwLDYgKzE5MCw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBzdG9wUGVyaW9kaWNUaW1lcnMoKTsKIAogICAgIHZvaWQgc2Vlayhm
bG9hdCB0aW1lLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBmaW5pc2hTZWVrKCk7CiAgICAg
dm9pZCBjaGVja0lmU2Vla05lZWRlZCgpOwogICAgIAogICAgIHZvaWQgc2NoZWR1bGVUaW1ldXBk
YXRlRXZlbnQoYm9vbCBwZXJpb2RpY0V2ZW50KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbWFudWFs
LXRlc3RzL3ZpZGVvLXdhaXRpbmctc2Vla2luZy5odG1sIGIvV2ViQ29yZS9tYW51YWwtdGVzdHMv
dmlkZW8td2FpdGluZy1zZWVraW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYWI0OWI2YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbWFudWFsLXRlc3RzL3Zp
ZGVvLXdhaXRpbmctc2Vla2luZy5odG1sCkBAIC0wLDAgKzEsNjkgQEAKKzx2aWRlbyBjb250cm9s
cz48L3ZpZGVvPgorPHA+QXR0ZW1wdCB0byBzZWVrIG91dCBvZiB0aGUgYnVmZmVyZWQgcmFuZ2Uu
ICBJZiBzdXBwb3J0ZWQsIHRoaXMgc2hvdWxkIGNhdXNlCithIHdhaXRpbmcgYW5kIHNlZWtpbmcg
ZXZlbnQgdG8gYmUgZmlyZWQgZm9yIGVhY2ggc2Vlay4gIFRoaXMgdGVzdCBtYWtlcyBhc3N1bXB0
aW9ucworb24gdGhlIHNpemUgb2YgdGhlIGlucHV0IGZpbGUsIHRoZSBiaXRyYXRlIG9mIGRlbGl2
ZXJ5LCBhbmQgdGhlIGR1cmF0aW9uIG9mIHRoZQorZmlsZS4KKzwvcD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisKKyAgICB2YXIgc2Vla2VkQ291bnQgPSAwOworICAgIHZhciBjb3VudGVyID0gMDsKKyAgICB2
YXIgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVswXTsKKwor
ICAgIGZ1bmN0aW9uIHRyeVNlZWsoc2Vla1RvKQorICAgIHsKKyAgICAgICAgaWYgKGlzSW5UaW1l
UmFuZ2VzKHZpZGVvLnNlZWthYmxlLCBzZWVrVG8pKSB7CisgICAgICAgICAgICBpZiAoaXNJblRp
bWVSYW5nZXModmlkZW8uYnVmZmVyZWQsIHNlZWtUbykpIHsKKyAgICAgICAgICAgICAgICBjb25z
b2xlV3JpdGUoIldhcmluaW5nOiBTZWVraW5nIGludG8gYnVmZmVyZWQgcmVnaW9uLiBNYXkgbm90
IGdlbmVyYXRlIHdhaXRpbmcgb3Igc2Vla2luZyBldmVudHMuIik7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBydW4oInZpZGVvLmN1cnJlbnRUaW1lID0gIiArIHNlZWtUbyk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBmYWlsVGVzdCgiQ2Fubm90IHNlZWsgdG8gIiArIHNlZWtU
byArICIuIERvZXMgZW5naW5lIHN1cHBvcnQgc2Vla2luZyBpbnRvIHVuYnVmZmVyZWQgcmVnaW9u
PyIpOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gc2Vla2VkKCkKKyAgICB7IAor
ICAgICAgICArK3NlZWtlZENvdW50OyAKKyAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzY2hlZHVsZVNlZWsoKSB7CisgICAgICAgIHNldFRpbWVvdXQoc29t
ZVRpbWVMYXRlciwgMjAwKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzb21lVGltZUxhdGVyKCkK
KyAgICB7CisgICAgICAgIGNvbnNvbGVXcml0ZSgiUnVubmluZyBzY2hlZHVsZWQgc2VlayIpOwor
ICAgICAgICAvLyBTb3VyY2UgaXMgYXNzdW1lZCB0byBiZSBhYm91dCAxODhrIHdpdGggYSB1bmlm
b3JtIGJpdHJhdGUsCisgICAgICAgIC8vID4gNCBzZWNvbmRzIGluIGxlbmd0aCwgYW5kIHNlcnZl
ZCBhdCAyNWtiL3MuICBUaGlzIHNob3VsZCBtYWtlCisgICAgICAgIC8vIHNlZWtpbmcgb25lIHNl
Y29uZCBhaGVhZCBldmVyeSAyMDBtcyBhbHdheXMgbGVhdmUgdGhlIGJ1ZmZlcmVkCisgICAgICAg
IC8vIHJlZ2lvbi4KKyAgICAgICAgdGVzdEV4cGVjdGVkKCJzZWVrZWRDb3VudCIsIGNvdW50ZXIp
OworICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmN1cnJlbnRUaW1lIiwgY291bnRlciwgIj49
Iik7CisKKyAgICAgICAgaWYgKGNvdW50ZXIgPT0gMykKKyAgICAgICAgeworICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGVuZFRl
c3QoKTsKKyAgICAgICAgfQorCisgICAgICAgICsrY291bnRlcjsKKworICAgICAgICBzY2hlZHVs
ZVNlZWsoKTsKKyAgICAgICAgdHJ5U2Vlayhjb3VudGVyKTsKKyAgICAgICAgY29uc29sZVdyaXRl
KCIiKTsKKyAgICB9CisKKyAgICB3YWl0Rm9yRXZlbnQoJ3dhaXRpbmcnKTsKKyAgICB3YWl0Rm9y
RXZlbnQoJ3NlZWtpbmcnKTsKKyAgICB3YWl0Rm9yRXZlbnQoJ3NlZWtlZCcsIHNlZWtlZCk7Cisg
ICAgd2FpdEZvckV2ZW50KCdwbGF5Jywgc29tZVRpbWVMYXRlcik7CisKKyAgICBjb25zb2xlV3Jp
dGUoIlN0YXJ0IExvYWQiKTsKKyAgICB2aWRlby5zcmMgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
L21lZGlhL3ZpZGVvLXRocm90dGxlZC1sb2FkLmNnaT9uYW1lPS4uLy4uLy4uL21lZGlhL2NvbnRl
bnQvdGVzdC5tcDQmdGhyb3R0bGU9MzAmYW50aV9jYWNoZT0iICsgKG5ldyBEYXRlKCkpLmdldFRp
bWUoKTsKKyAgICB2aWRlby5sb2FkKCk7CisgICAgdmlkZW8ucGxheSgpOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35080</attachid>
            <date>2009-08-18 15:07:30 -0700</date>
            <delta_ts>2009-08-19 15:56:38 -0700</delta_ts>
            <desc>waiting fix with small style cleanups.</desc>
            <filename>waiting_fix3.patch</filename>
            <type>text/plain</type>
            <size>8315</size>
            <attacher name="Albert J. Wong">ajwong</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2YTIwMzc4Li40YzRjZGZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDgt
MTggIEFsYmVydCBKLiBXb25nICA8YWp3b25nQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgbWFudWFsIHRlc3QgdG8gY2hl
Y2sgaWYgd2FpdGluZy9zZWVraW5nIGV2ZW50cyBhcmUgZmlyZWQKKyAgICAgICAgd2hlbiBzZWVr
aW5nIGludG8gYSBub24tYnVmZmVyZWQgcmVnaW9uLgorCisgICAgICAgIEhUTUw1IG1lZGlhIGVs
ZW1lbnRzIGRvIG5vdCBmaXJlIHdhaXRpbmcgZXZlbnRzIGNvcnJlY3RseQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgzMzUKKworICAgICAgICAqIGh0
dHAvdGVzdHMvbWVkaWEvdmlkZW8tdGhyb3R0bGVkLWxvYWQuY2dpOiBBZGRlZC4KKyAgICAgICAg
KiBtZWRpYS92aWRlby10ZXN0LmpzOgorICAgICAgICAoaXNJblRpbWVSYW5nZXMpOgorCiAyMDA5
LTA4LTE0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL3ZpZGVvLXRocm90dGxlZC1sb2FkLmNnaSBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvdmlkZW8tdGhyb3R0bGVkLWxvYWQuY2dpCm5ldyBmaWxlIG1vZGUgMTAwNzU1Cmlu
ZGV4IDAwMDAwMDAuLjNlMGM4N2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL3ZpZGVvLXRocm90dGxlZC1sb2FkLmNnaQpAQCAtMCwwICsxLDI0IEBACisj
IS91c3IvYmluL3BlcmwgLXcKKwordXNlIENHSTsKK3VzZSBGaWxlOjpzdGF0OworCiskcXVlcnkg
PSBuZXcgQ0dJOworJG5hbWUgPSAkcXVlcnktPnBhcmFtKCduYW1lJyk7Ciska2JQZXJTZWMgPSAk
cXVlcnktPnBhcmFtKCd0aHJvdHRsZScpOworCitteSAkZmlsZXNpemUgPSBzdGF0KCRuYW1lKS0+
c2l6ZTsKK3ByaW50ICJDb250ZW50LXR5cGU6IHZpZGVvL21wNFxuIjsgCitwcmludCAiQ29udGVu
dC1MZW5ndGg6ICIgLiAkZmlsZXNpemUgLiAiXG5cbiI7CisKK29wZW4gRklMRSwgJG5hbWUgb3Ig
ZGllOworYmlubW9kZSBGSUxFOworbXkgKCRidWYsICRkYXRhLCAkbik7Cit3aGlsZSAoKCRuID0g
cmVhZCBGSUxFLCAkZGF0YSwgMTAyNCkgIT0gMCkgeworCisgICAgcHJpbnQgJGRhdGE7CisgICAg
aWYgKCRrYlBlclNlYyA+IDApIHsKKyAgICAgICAgc2VsZWN0KHVuZGVmLCB1bmRlZiwgdW5kZWYs
IDEvJGtiUGVyU2VjKTsKKyAgICB9Cit9CitjbG9zZShGSUxFKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10ZXN0
LmpzCmluZGV4IGNkZjJkYzAuLjQ1Njc1MjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlh
L3ZpZGVvLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tdGVzdC5qcwpAQCAt
MjE4LDMgKzIxOCwxNSBAQCBmdW5jdGlvbiByZWxhdGl2ZVVSTCh1cmwpCiB7CiAgICAgcmV0dXJu
IHVybC5zdWJzdHIodXJsLmluZGV4T2YoJy9tZWRpYS8nKSs3KTsKIH0KKworCitmdW5jdGlvbiBp
c0luVGltZVJhbmdlcyhyYW5nZXMsIHRpbWUpCit7CisgICAgdmFyIGkgPSAwOworICAgIGZvciAo
aSA9IDA7IGkgPCByYW5nZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKHRpbWUgPj0gcmFu
Z2VzLnN0YXJ0KGkpICYmIHRpbWUgPD0gcmFuZ2VzLmVuZChpKSkgeworICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2E0NGJmZi4u
YzU4Y2NjNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAwOS0wOC0xOCAgQWxiZXJ0IEouIFdvbmcgIDxhandv
bmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEZpcmUgdGhlIHdhaXRpbmcgZXZlbnQgYmVmb3JlIHNlZWtpbmcsIGFuZCBmaXgg
YSBjYXNlIHdoZXJlIGZpcmluZyBvZgorICAgICAgICB0aGUgc2Vla2VkIGV2ZW50IGlzIG1pc3Nl
ZCBkdWUgd2hlbiB0aGUgcmVhZHkgc3RhdGUgaXMgY2hhbmdlZCBkdXJpbmcKKyAgICAgICAgYSBz
ZWVrLgorCisgICAgICAgIEhUTUw1IG1lZGlhIGVsZW1lbnRzIGRvIG5vdCBmaXJlIHdhaXRpbmcg
ZXZlbnRzIGNvcnJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjgzMzUKKworICAgICAgICBBZGRlZCB2aWRlby13YWl0aW5nLXNlZWtpbmcuaHRt
bCBpbnRvIG1hbnVhbCB0ZXN0cyBiZWNhdXNlIG5vdAorICAgICAgICBhbGwgcGxhdGZvcm1zIGFs
bG93IHNlZWtpbmcgaW50byBub24tYnVmZmVyZWQgcmFuZ2VzLgorCisgICAgICAgICogaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnNldFJlYWR5U3RhdGUpOiBhZGQgc3VwcG9ydCBmb3IKKyAgICAgICAgd2FpdGluZyBldmVudCB3
aGVuIHNlZWtpbmcuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpmaW5pc2hT
ZWVrKTogc2VuZCBzZWVrZWQgZXZlbnQKKyAgICAgICAgd2hlbmV2ZXIgc2Vla2luZyBmaW5pc2hl
cy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyVGltZUNo
YW5nZWQpOiBkaXNwYXRjaCB0bworICAgICAgICBuZXcgZnVuY3Rpb24uCisgICAgICAgICogaHRt
bC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogbWFudWFsLXRlc3RzL3ZpZGVvLXdhaXRp
bmctc2Vla2luZy5odG1sOiBBZGRlZC4KKwogMjAwOS0wOC0xNCAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0Lgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGIyZTY0MjguLjUwOGE3YTYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTc0MiwyMSArNzQyLDI5IEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBzdGF0ZSkKICAg
ICBpZiAobV9yZWFkeVN0YXRlID09IG9sZFN0YXRlKQogICAgICAgICByZXR1cm47CiAgICAgCi0g
ICAgaWYgKG1fcmVhZHlTdGF0ZSA+PSBIQVZFX0NVUlJFTlRfREFUQSkKLSAgICAgICAgbV9zZWVr
aW5nID0gZmFsc2U7Ci0gICAgCiAgICAgaWYgKG1fbmV0d29ya1N0YXRlID09IE5FVFdPUktfRU1Q
VFkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX3NlZWtpbmcgJiYgbV9yZWFkeVN0YXRl
IDwgSEFWRV9DVVJSRU5UX0RBVEEpIHsKKyAgICBpZiAobV9zZWVraW5nKSB7CisgICAgICAgIC8v
IDQuOC4xMC4xMCwgc3RlcCA4CisgICAgICAgIGlmICh3YXNQb3RlbnRpYWxseVBsYXlpbmcgJiYg
bV9yZWFkeVN0YXRlIDwgSEFWRV9GVVRVUkVfREFUQSkKKyAgICAgICAgICAgIHNjaGVkdWxlRXZl
bnQoZXZlbnROYW1lcygpLndhaXRpbmdFdmVudCk7CisKICAgICAgICAgLy8gNC44LjEwLjEwLCBz
dGVwIDkKLSAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuc2Vla2luZ0V2ZW50KTsK
LSAgICB9CisgICAgICAgIGlmIChtX3JlYWR5U3RhdGUgPCBIQVZFX0NVUlJFTlRfREFUQSkgewor
ICAgICAgICAgICAgaWYgKG9sZFN0YXRlID49IEhBVkVfQ1VSUkVOVF9EQVRBKQorICAgICAgICAg
ICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnNlZWtpbmdFdmVudCk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAvLyA0LjguMTAuMTAgc3RlcCAxMiAmIDEzLgorICAgICAg
ICAgICAgZmluaXNoU2VlaygpOworICAgICAgICB9CiAKLSAgICBpZiAod2FzUG90ZW50aWFsbHlQ
bGF5aW5nICYmIG1fcmVhZHlTdGF0ZSA8IEhBVkVfRlVUVVJFX0RBVEEpIHsKLSAgICAgICAgLy8g
NC44LjEwLjkKLSAgICAgICAgc2NoZWR1bGVUaW1ldXBkYXRlRXZlbnQoZmFsc2UpOwotICAgICAg
ICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS53YWl0aW5nRXZlbnQpOworICAgIH0gZWxzZSB7
CisgICAgICAgIGlmICh3YXNQb3RlbnRpYWxseVBsYXlpbmcgJiYgbV9yZWFkeVN0YXRlIDwgSEFW
RV9GVVRVUkVfREFUQSkgeworICAgICAgICAgICAgLy8gNC44LjEwLjkKKyAgICAgICAgICAgIHNj
aGVkdWxlVGltZXVwZGF0ZUV2ZW50KGZhbHNlKTsKKyAgICAgICAgICAgIHNjaGVkdWxlRXZlbnQo
ZXZlbnROYW1lcygpLndhaXRpbmdFdmVudCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAo
bV9yZWFkeVN0YXRlID49IEhBVkVfTUVUQURBVEEgJiYgb2xkU3RhdGUgPCBIQVZFX01FVEFEQVRB
KSB7CkBAIC05MDEsNiArOTA5LDEyIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2VlayhmbG9h
dCB0aW1lLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBtX3NlbnRFbmRFdmVudCA9IGZhbHNlOwog
fQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmZpbmlzaFNlZWsoKQoreworICAgIG1fc2Vla2lu
ZyA9IGZhbHNlOworICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnNlZWtlZEV2ZW50KTsK
K30KKwogSFRNTE1lZGlhRWxlbWVudDo6UmVhZHlTdGF0ZSBIVE1MTWVkaWFFbGVtZW50OjpyZWFk
eVN0YXRlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9yZWFkeVN0YXRlOwpAQCAtMTI5OCw5ICsx
MzEyLDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclRpbWVDaGFuZ2VkKE1l
ZGlhUGxheWVyKikKIHsKICAgICBiZWdpblByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7
CiAKKyAgICAvLyA0LjguMTAuMTAgc3RlcCAxMiAmIDEzLiAgTmVlZGVkIGlmIG5vIFJlYWR5U3Rh
dGUgY2hhbmdlIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2Vlay4KICAgICBpZiAobV9yZWFkeVN0
YXRlID49IEhBVkVfQ1VSUkVOVF9EQVRBICYmIG1fc2Vla2luZykgewotICAgICAgICBzY2hlZHVs
ZUV2ZW50KGV2ZW50TmFtZXMoKS5zZWVrZWRFdmVudCk7Ci0gICAgICAgIG1fc2Vla2luZyA9IGZh
bHNlOworICAgICAgICBmaW5pc2hTZWVrKCk7CiAgICAgfQogICAgIAogICAgIGZsb2F0IG5vdyA9
IGN1cnJlbnRUaW1lKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oIGIvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAyN2I0OGVhLi5mZTNi
ZWFmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTE5MCw2ICsxOTAsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgc3RvcFBlcmlvZGljVGltZXJzKCk7CiAKICAgICB2b2lkIHNlZWsoZmxvYXQg
dGltZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgZmluaXNoU2VlaygpOwogICAgIHZvaWQg
Y2hlY2tJZlNlZWtOZWVkZWQoKTsKICAgICAKICAgICB2b2lkIHNjaGVkdWxlVGltZXVwZGF0ZUV2
ZW50KGJvb2wgcGVyaW9kaWNFdmVudCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL21hbnVhbC10ZXN0
cy92aWRlby13YWl0aW5nLXNlZWtpbmcuaHRtbCBiL1dlYkNvcmUvbWFudWFsLXRlc3RzL3ZpZGVv
LXdhaXRpbmctc2Vla2luZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmFiNDliNmEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy92aWRlby13
YWl0aW5nLXNlZWtpbmcuaHRtbApAQCAtMCwwICsxLDY5IEBACis8dmlkZW8gY29udHJvbHM+PC92
aWRlbz4KKzxwPkF0dGVtcHQgdG8gc2VlayBvdXQgb2YgdGhlIGJ1ZmZlcmVkIHJhbmdlLiAgSWYg
c3VwcG9ydGVkLCB0aGlzIHNob3VsZCBjYXVzZQorYSB3YWl0aW5nIGFuZCBzZWVraW5nIGV2ZW50
IHRvIGJlIGZpcmVkIGZvciBlYWNoIHNlZWsuICBUaGlzIHRlc3QgbWFrZXMgYXNzdW1wdGlvbnMK
K29uIHRoZSBzaXplIG9mIHRoZSBpbnB1dCBmaWxlLCB0aGUgYml0cmF0ZSBvZiBkZWxpdmVyeSwg
YW5kIHRoZSBkdXJhdGlvbiBvZiB0aGUKK2ZpbGUuCis8L3A+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
TGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisg
ICAgdmFyIHNlZWtlZENvdW50ID0gMDsKKyAgICB2YXIgY291bnRlciA9IDA7CisgICAgdmFyIHZp
ZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ZpZGVvJylbMF07CisKKyAgICBm
dW5jdGlvbiB0cnlTZWVrKHNlZWtUbykKKyAgICB7CisgICAgICAgIGlmIChpc0luVGltZVJhbmdl
cyh2aWRlby5zZWVrYWJsZSwgc2Vla1RvKSkgeworICAgICAgICAgICAgaWYgKGlzSW5UaW1lUmFu
Z2VzKHZpZGVvLmJ1ZmZlcmVkLCBzZWVrVG8pKSB7CisgICAgICAgICAgICAgICAgY29uc29sZVdy
aXRlKCJXYXJpbmluZzogU2Vla2luZyBpbnRvIGJ1ZmZlcmVkIHJlZ2lvbi4gTWF5IG5vdCBnZW5l
cmF0ZSB3YWl0aW5nIG9yIHNlZWtpbmcgZXZlbnRzLiIpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgcnVuKCJ2aWRlby5jdXJyZW50VGltZSA9ICIgKyBzZWVrVG8pOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgZmFpbFRlc3QoIkNhbm5vdCBzZWVrIHRvICIgKyBzZWVrVG8gKyAi
LiBEb2VzIGVuZ2luZSBzdXBwb3J0IHNlZWtpbmcgaW50byB1bmJ1ZmZlcmVkIHJlZ2lvbj8iKTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIHNlZWtlZCgpCisgICAgeyAKKyAgICAg
ICAgKytzZWVrZWRDb3VudDsgCisgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gc2NoZWR1bGVTZWVrKCkgeworICAgICAgICBzZXRUaW1lb3V0KHNvbWVUaW1l
TGF0ZXIsIDIwMCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc29tZVRpbWVMYXRlcigpCisgICAg
eworICAgICAgICBjb25zb2xlV3JpdGUoIlJ1bm5pbmcgc2NoZWR1bGVkIHNlZWsiKTsKKyAgICAg
ICAgLy8gU291cmNlIGlzIGFzc3VtZWQgdG8gYmUgYWJvdXQgMTg4ayB3aXRoIGEgdW5pZm9ybSBi
aXRyYXRlLAorICAgICAgICAvLyA+IDQgc2Vjb25kcyBpbiBsZW5ndGgsIGFuZCBzZXJ2ZWQgYXQg
MjVrYi9zLiAgVGhpcyBzaG91bGQgbWFrZQorICAgICAgICAvLyBzZWVraW5nIG9uZSBzZWNvbmQg
YWhlYWQgZXZlcnkgMjAwbXMgYWx3YXlzIGxlYXZlIHRoZSBidWZmZXJlZAorICAgICAgICAvLyBy
ZWdpb24uCisgICAgICAgIHRlc3RFeHBlY3RlZCgic2Vla2VkQ291bnQiLCBjb3VudGVyKTsKKyAg
ICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5jdXJyZW50VGltZSIsIGNvdW50ZXIsICI+PSIpOwor
CisgICAgICAgIGlmIChjb3VudGVyID09IDMpCisgICAgICAgIHsKKyAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBlbmRUZXN0KCk7
CisgICAgICAgIH0KKworICAgICAgICArK2NvdW50ZXI7CisKKyAgICAgICAgc2NoZWR1bGVTZWVr
KCk7CisgICAgICAgIHRyeVNlZWsoY291bnRlcik7CisgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7
CisgICAgfQorCisgICAgd2FpdEZvckV2ZW50KCd3YWl0aW5nJyk7CisgICAgd2FpdEZvckV2ZW50
KCdzZWVraW5nJyk7CisgICAgd2FpdEZvckV2ZW50KCdzZWVrZWQnLCBzZWVrZWQpOworICAgIHdh
aXRGb3JFdmVudCgncGxheScsIHNvbWVUaW1lTGF0ZXIpOworCisgICAgY29uc29sZVdyaXRlKCJT
dGFydCBMb2FkIik7CisgICAgdmlkZW8uc3JjID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9tZWRp
YS92aWRlby10aHJvdHRsZWQtbG9hZC5jZ2k/bmFtZT0uLi8uLi8uLi9tZWRpYS9jb250ZW50L3Rl
c3QubXA0JnRocm90dGxlPTMwJmFudGlfY2FjaGU9IiArIChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7
CisgICAgdmlkZW8ubG9hZCgpOworICAgIHZpZGVvLnBsYXkoKTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35156</attachid>
            <date>2009-08-19 15:56:38 -0700</date>
            <delta_ts>2010-06-14 14:25:11 -0700</delta_ts>
            <desc>Address Eric&apos;s comments</desc>
            <filename>waiting_fix_3.patch</filename>
            <type>text/plain</type>
            <size>9400</size>
            <attacher name="Albert J. Wong">ajwong</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2YTIwMzc4Li40YzRjZGZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDgt
MTggIEFsYmVydCBKLiBXb25nICA8YWp3b25nQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgbWFudWFsIHRlc3QgdG8gY2hl
Y2sgaWYgd2FpdGluZy9zZWVraW5nIGV2ZW50cyBhcmUgZmlyZWQKKyAgICAgICAgd2hlbiBzZWVr
aW5nIGludG8gYSBub24tYnVmZmVyZWQgcmVnaW9uLgorCisgICAgICAgIEhUTUw1IG1lZGlhIGVs
ZW1lbnRzIGRvIG5vdCBmaXJlIHdhaXRpbmcgZXZlbnRzIGNvcnJlY3RseQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgzMzUKKworICAgICAgICAqIGh0
dHAvdGVzdHMvbWVkaWEvdmlkZW8tdGhyb3R0bGVkLWxvYWQuY2dpOiBBZGRlZC4KKyAgICAgICAg
KiBtZWRpYS92aWRlby10ZXN0LmpzOgorICAgICAgICAoaXNJblRpbWVSYW5nZXMpOgorCiAyMDA5
LTA4LTE0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL3ZpZGVvLXRocm90dGxlZC1sb2FkLmNnaSBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvdmlkZW8tdGhyb3R0bGVkLWxvYWQuY2dpCm5ldyBmaWxlIG1vZGUgMTAwNzU1Cmlu
ZGV4IDAwMDAwMDAuLjllODA1OGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL3ZpZGVvLXRocm90dGxlZC1sb2FkLmNnaQpAQCAtMCwwICsxLDQ1IEBACisj
IS91c3IvYmluL3BlcmwgLXcKKwordXNlIHN0cmljdDsKKwordXNlIENHSTsKK3VzZSBGaWxlOjpz
dGF0OworCit1c2UgY29uc3RhbnQgQ0hVTktfU0laRV9CWVRFUyA9PiAxMDI0OworCitteSAkcXVl
cnkgPSBuZXcgQ0dJOworCitteSAkbmFtZSA9ICRxdWVyeS0+cGFyYW0oJ25hbWUnKTsKK215ICRm
aWxlc2l6ZSA9IHN0YXQoJG5hbWUpLT5zaXplOworCisjIEdldCB0aHJvdHRsaW5nIHJhdGUsIGFz
c3VtaW5nIHBhcmFtZXRlciBpcyBpbiBraWxvYnl0ZXMgcGVyIHNlY29uZC4KK215ICRrYlBlclNl
YyA9ICRxdWVyeS0+cGFyYW0oJ3Rocm90dGxlJyk7CitteSAkY2h1bmtQZXJTZWMgPSAka2JQZXJT
ZWMgKiAxMDI0IC8gQ0hVTktfU0laRV9CWVRFUzsKKworIyBHZXQgTUlNRSB0eXBlIGlmIHByb3Zp
ZGVkLiAgRGVmYXVsdCB0byB2aWRlby9tcDQuCitteSAkdHlwZSA9ICRxdWVyeS0+cGFyYW0oJ3R5
cGUnKSB8fCAidmlkZW8vbXA0IjsKKworIyBQcmludCBIVFRQIEhlYWRlciwgZGlzYWJsaW5nIGNh
Y2hlLgorcHJpbnQgIkNvbnRlbnQtdHlwZTogIiAuICR0eXBlIC4gIlxuIjsgCitwcmludCAiQ29u
dGVudC1MZW5ndGg6ICIgLiAkZmlsZXNpemUgLiAiXG4iOworcHJpbnQgIkNhY2hlLUNvbnRyb2w6
IG5vLWNhY2hlXG4iOworcHJpbnQgIlxuIjsKKworb3BlbiBGSUxFLCAkbmFtZSBvciBkaWU7Citi
aW5tb2RlIEZJTEU7CitteSAoJGRhdGEsICRuKTsKK215ICR0b3RhbCA9IDA7Cit3aGlsZSAoKCRu
ID0gcmVhZCBGSUxFLCAkZGF0YSwgMTAyNCkgIT0gMCkgeworICAgIHByaW50ICRkYXRhOworCisg
ICAgJHRvdGFsICs9ICRuOworICAgIGlmICgkdG90YWwgPj0gJGZpbGVzaXplKSB7CisgICAgICAg
IGxhc3Q7CisgICAgfQorCisgICAgIyBUaHJvdHRsZSBpZiB0aGVyZSBpcyBzb21lLgorICAgIGlm
ICgkY2h1bmtQZXJTZWMgPiAwKSB7CisgICAgICAgIHNlbGVjdCh1bmRlZiwgdW5kZWYsIHVuZGVm
LCAxLjAgLyAkY2h1bmtQZXJTZWMpOworICAgIH0KK30KK2Nsb3NlKEZJTEUpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tdGVzdC5qcyBiL0xheW91dFRlc3RzL21lZGlhL3Zp
ZGVvLXRlc3QuanMKaW5kZXggY2RmMmRjMC4uNDU2NzUyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvdmlkZW8tdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10ZXN0
LmpzCkBAIC0yMTgsMyArMjE4LDE1IEBAIGZ1bmN0aW9uIHJlbGF0aXZlVVJMKHVybCkKIHsKICAg
ICByZXR1cm4gdXJsLnN1YnN0cih1cmwuaW5kZXhPZignL21lZGlhLycpKzcpOwogfQorCisKK2Z1
bmN0aW9uIGlzSW5UaW1lUmFuZ2VzKHJhbmdlcywgdGltZSkKK3sKKyAgICB2YXIgaSA9IDA7Cisg
ICAgZm9yIChpID0gMDsgaSA8IHJhbmdlcy5sZW5ndGg7ICsraSkgeworICAgICAgICBpZiAodGlt
ZSA+PSByYW5nZXMuc3RhcnQoaSkgJiYgdGltZSA8PSByYW5nZXMuZW5kKGkpKSB7CisgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3
YTQ0YmZmLi5jNThjY2M2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDA5LTA4LTE4ICBBbGJlcnQgSi4gV29u
ZyAgPGFqd29uZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRmlyZSB0aGUgd2FpdGluZyBldmVudCBiZWZvcmUgc2Vla2luZywg
YW5kIGZpeCBhIGNhc2Ugd2hlcmUgZmlyaW5nIG9mCisgICAgICAgIHRoZSBzZWVrZWQgZXZlbnQg
aXMgbWlzc2VkIGR1ZSB3aGVuIHRoZSByZWFkeSBzdGF0ZSBpcyBjaGFuZ2VkIGR1cmluZworICAg
ICAgICBhIHNlZWsuCisKKyAgICAgICAgSFRNTDUgbWVkaWEgZWxlbWVudHMgZG8gbm90IGZpcmUg
d2FpdGluZyBldmVudHMgY29ycmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yODMzNQorCisgICAgICAgIEFkZGVkIHZpZGVvLXdhaXRpbmctc2Vl
a2luZy5odG1sIGludG8gbWFudWFsIHRlc3RzIGJlY2F1c2Ugbm90CisgICAgICAgIGFsbCBwbGF0
Zm9ybXMgYWxsb3cgc2Vla2luZyBpbnRvIG5vbi1idWZmZXJlZCByYW5nZXMuCisKKyAgICAgICAg
KiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6c2V0UmVhZHlTdGF0ZSk6IGFkZCBzdXBwb3J0IGZvcgorICAgICAgICB3YWl0aW5n
IGV2ZW50IHdoZW4gc2Vla2luZy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OmZpbmlzaFNlZWspOiBzZW5kIHNlZWtlZCBldmVudAorICAgICAgICB3aGVuZXZlciBzZWVraW5n
IGZpbmlzaGVzLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5
ZXJUaW1lQ2hhbmdlZCk6IGRpc3BhdGNoIHRvCisgICAgICAgIG5ldyBmdW5jdGlvbi4KKyAgICAg
ICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvdmlk
ZW8td2FpdGluZy1zZWVraW5nLmh0bWw6IEFkZGVkLgorCiAyMDA5LTA4LTE0ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUg
SHlhdHQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYjJlNjQyOC4uNTA4YTdhNiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNzQyLDIxICs3NDIsMjkgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHN0
YXRlKQogICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gb2xkU3RhdGUpCiAgICAgICAgIHJldHVybjsK
ICAgICAKLSAgICBpZiAobV9yZWFkeVN0YXRlID49IEhBVkVfQ1VSUkVOVF9EQVRBKQotICAgICAg
ICBtX3NlZWtpbmcgPSBmYWxzZTsKLSAgICAKICAgICBpZiAobV9uZXR3b3JrU3RhdGUgPT0gTkVU
V09SS19FTVBUWSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fc2Vla2luZyAmJiBtX3Jl
YWR5U3RhdGUgPCBIQVZFX0NVUlJFTlRfREFUQSkgeworICAgIGlmIChtX3NlZWtpbmcpIHsKKyAg
ICAgICAgLy8gNC44LjEwLjEwLCBzdGVwIDgKKyAgICAgICAgaWYgKHdhc1BvdGVudGlhbGx5UGxh
eWluZyAmJiBtX3JlYWR5U3RhdGUgPCBIQVZFX0ZVVFVSRV9EQVRBKQorICAgICAgICAgICAgc2No
ZWR1bGVFdmVudChldmVudE5hbWVzKCkud2FpdGluZ0V2ZW50KTsKKwogICAgICAgICAvLyA0Ljgu
MTAuMTAsIHN0ZXAgOQotICAgICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5zZWVraW5n
RXZlbnQpOwotICAgIH0KKyAgICAgICAgaWYgKG1fcmVhZHlTdGF0ZSA8IEhBVkVfQ1VSUkVOVF9E
QVRBKSB7CisgICAgICAgICAgICBpZiAob2xkU3RhdGUgPj0gSEFWRV9DVVJSRU5UX0RBVEEpCisg
ICAgICAgICAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuc2Vla2luZ0V2ZW50KTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIDQuOC4xMC4xMCBzdGVwIDEyICYgMTMu
CisgICAgICAgICAgICBmaW5pc2hTZWVrKCk7CisgICAgICAgIH0KIAotICAgIGlmICh3YXNQb3Rl
bnRpYWxseVBsYXlpbmcgJiYgbV9yZWFkeVN0YXRlIDwgSEFWRV9GVVRVUkVfREFUQSkgewotICAg
ICAgICAvLyA0LjguMTAuOQotICAgICAgICBzY2hlZHVsZVRpbWV1cGRhdGVFdmVudChmYWxzZSk7
Ci0gICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLndhaXRpbmdFdmVudCk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgaWYgKHdhc1BvdGVudGlhbGx5UGxheWluZyAmJiBtX3JlYWR5U3Rh
dGUgPCBIQVZFX0ZVVFVSRV9EQVRBKSB7CisgICAgICAgICAgICAvLyA0LjguMTAuOQorICAgICAg
ICAgICAgc2NoZWR1bGVUaW1ldXBkYXRlRXZlbnQoZmFsc2UpOworICAgICAgICAgICAgc2NoZWR1
bGVFdmVudChldmVudE5hbWVzKCkud2FpdGluZ0V2ZW50KTsKKyAgICAgICAgfQogICAgIH0KIAog
ICAgIGlmIChtX3JlYWR5U3RhdGUgPj0gSEFWRV9NRVRBREFUQSAmJiBvbGRTdGF0ZSA8IEhBVkVf
TUVUQURBVEEpIHsKQEAgLTkwMSw2ICs5MDksMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpz
ZWVrKGZsb2F0IHRpbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIG1fc2VudEVuZEV2ZW50ID0g
ZmFsc2U7CiB9CiAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZmluaXNoU2VlaygpCit7CisgICAg
bV9zZWVraW5nID0gZmFsc2U7CisgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuc2Vla2Vk
RXZlbnQpOworfQorCiBIVE1MTWVkaWFFbGVtZW50OjpSZWFkeVN0YXRlIEhUTUxNZWRpYUVsZW1l
bnQ6OnJlYWR5U3RhdGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3JlYWR5U3RhdGU7CkBAIC0x
Mjk4LDkgKzEzMTIsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyVGltZUNo
YW5nZWQoTWVkaWFQbGF5ZXIqKQogewogICAgIGJlZ2luUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2Fs
bGJhY2soKTsKIAorICAgIC8vIDQuOC4xMC4xMCBzdGVwIDEyICYgMTMuICBOZWVkZWQgaWYgbm8g
UmVhZHlTdGF0ZSBjaGFuZ2UgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZWVrLgogICAgIGlmICht
X3JlYWR5U3RhdGUgPj0gSEFWRV9DVVJSRU5UX0RBVEEgJiYgbV9zZWVraW5nKSB7Ci0gICAgICAg
IHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnNlZWtlZEV2ZW50KTsKLSAgICAgICAgbV9zZWVr
aW5nID0gZmFsc2U7CisgICAgICAgIGZpbmlzaFNlZWsoKTsKICAgICB9CiAgICAgCiAgICAgZmxv
YXQgbm93ID0gY3VycmVudFRpbWUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDI3YjQ4
ZWEuLmZlM2JlYWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgK
KysrIGIvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMTkwLDYgKzE5MCw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBzdG9wUGVyaW9kaWNUaW1lcnMoKTsKIAogICAgIHZvaWQgc2Vl
ayhmbG9hdCB0aW1lLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBmaW5pc2hTZWVrKCk7CiAg
ICAgdm9pZCBjaGVja0lmU2Vla05lZWRlZCgpOwogICAgIAogICAgIHZvaWQgc2NoZWR1bGVUaW1l
dXBkYXRlRXZlbnQoYm9vbCBwZXJpb2RpY0V2ZW50KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbWFu
dWFsLXRlc3RzL3ZpZGVvLXdhaXRpbmctc2Vla2luZy5odG1sIGIvV2ViQ29yZS9tYW51YWwtdGVz
dHMvdmlkZW8td2FpdGluZy1zZWVraW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMDY0OGUwZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbWFudWFsLXRlc3Rz
L3ZpZGVvLXdhaXRpbmctc2Vla2luZy5odG1sCkBAIC0wLDAgKzEsODEgQEAKKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vTGF5b3V0VGVzdHMvbWVkaWEvdmlk
ZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisKKyAgICAgICAgICAgIHZh
ciBzZWVrZWRDb3VudCA9IDA7CisgICAgICAgICAgICB2YXIgY291bnRlciA9IDA7CisKKyAgICAg
ICAgICAgIGZ1bmN0aW9uIHRyeVNlZWsoc2Vla1RvKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIGlmIChpc0luVGltZVJhbmdlcyh2aWRlby5zZWVrYWJsZSwgc2Vla1RvKSkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoaXNJblRpbWVSYW5nZXModmlkZW8uYnVmZmVyZWQsIHNlZWtU
bykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiV2FyaW5pbmc6IFNl
ZWtpbmcgaW50byBidWZmZXJlZCByZWdpb24uIE1heSBub3QgZ2VuZXJhdGUgd2FpdGluZyBvciBz
ZWVraW5nIGV2ZW50cy4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICBydW4oInZpZGVvLmN1cnJlbnRUaW1lID0gIiArIHNlZWtUbyk7CisgICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGZhaWxUZXN0KCJDYW5ub3Qgc2Vl
ayB0byAiICsgc2Vla1RvICsgIi4gRG9lcyBlbmdpbmUgc3VwcG9ydCBzZWVraW5nIGludG8gdW5i
dWZmZXJlZCByZWdpb24/Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBmdW5jdGlvbiBzZWVrZWQoKQorICAgICAgICAgICAgeyAKKyAgICAgICAgICAg
ICAgICArK3NlZWtlZENvdW50OyAKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBzY2hlZHVsZVNlZWsoKSB7Cisg
ICAgICAgICAgICAgICAgc2V0VGltZW91dChzb21lVGltZUxhdGVyLCAyMDApOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBzb21lVGltZUxhdGVyKCkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlJ1bm5pbmcgc2NoZWR1bGVkIHNlZWsi
KTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInNlZWtlZENvdW50IiwgY291bnRlcik7
CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5jdXJyZW50VGltZSIsIGNvdW50
ZXIsICI+PSIpOworCisgICAgICAgICAgICAgICAgaWYgKGNvdW50ZXIgPT0gMykKKyAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICsrY291bnRlcjsKKworICAgICAgICAg
ICAgICAgIHNjaGVkdWxlU2VlaygpOworICAgICAgICAgICAgICAgIHRyeVNlZWsoY291bnRlcik7
CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgZnVuY3Rpb24gc3RhcnQoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IGZpbmRNZWRpYUVsZW1lbnQoKTsKKworICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudCgnd2Fp
dGluZycpOworICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudCgnc2Vla2luZycpOworICAgICAg
ICAgICAgICAgIHdhaXRGb3JFdmVudCgnc2Vla2VkJywgc2Vla2VkKTsKKyAgICAgICAgICAgICAg
ICB3YWl0Rm9yRXZlbnQoJ3BsYXknLCBzb21lVGltZUxhdGVyKTsKKworICAgICAgICAgICAgICAg
IGNvbnNvbGVXcml0ZSgiU3RhcnQgTG9hZCIpOworICAgICAgICAgICAgICAgIHZpZGVvLnNyYyA9
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWVkaWEvdmlkZW8tdGhyb3R0bGVkLWxvYWQuY2dpP25h
bWU9Li4vLi4vLi4vbWVkaWEvY29udGVudC90ZXN0Lm1wNCZ0aHJvdHRsZT0yNSI7CisgICAgICAg
ICAgICAgICAgdmlkZW8ubG9hZCgpOworICAgICAgICAgICAgICAgIHZpZGVvLnBsYXkoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9u
bG9hZD0ic3RhcnQoKSI+CisgICAgICAgIDx2aWRlbyBjb250cm9scz48L3ZpZGVvPgorCisgICAg
ICAgIDxwPkF0dGVtcHQgdG8gc2VlayBvdXQgb2YgdGhlIGJ1ZmZlcmVkIHJhbmdlLiAgSWYgc3Vw
cG9ydGVkLCB0aGlzCisgICAgICAgIHNob3VsZCBjYXVzZSBhIHdhaXRpbmcgYW5kIHNlZWtpbmcg
ZXZlbnQgdG8gYmUgZmlyZWQgZm9yIGVhY2ggc2Vlay4KKyAgICAgICAgVGhpcyB0ZXN0IG1ha2Vz
IGFzc3VtcHRpb25zIG9uIHRoZSBzaXplIG9mIHRoZSBpbnB1dCBmaWxlLCB0aGUgYml0cmF0ZQor
ICAgICAgICBvZiBkZWxpdmVyeSwgYW5kIHRoZSBkdXJhdGlvbiBvZiB0aGUgZmlsZS4KKyAgICAg
ICAgPC9wPgorICAgICAgICA8cD4KKyAgICAgICAgU291cmNlIGlzIGFzc3VtZWQgdG8gYmUgYWJv
dXQgMTg4ayB3aXRoIGEgdW5pZm9ybSBiaXRyYXRlLCAmZ3Q7IDQKKyAgICAgICAgc2Vjb25kcyBp
biBsZW5ndGgsIGFuZCBzZXJ2ZWQgYXQgMjVrYi9zLiAgVGhpcyBzaG91bGQgbWFrZSBzZWVraW5n
IG9uZQorICAgICAgICBzZWNvbmQgYWhlYWQgZXZlcnkgMjAwbXMgYWx3YXlzIGxlYXZlIHRoZSBi
dWZmZXJlZCByZWdpb24uCisgICAgICAgIDwvcD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>