<?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>37126</bug_id>
          
          <creation_ts>2010-04-05 16:33:43 -0700</creation_ts>
          <short_desc>REGRESSION (r56223): http://www.playerpress.com/ shows up twice in the back/forward list.</short_desc>
          <delta_ts>2010-04-14 09:04:27 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Darin Fisher (:fishd, Google)">fishd</assigned_to>
          <cc>abarth</cc>
    
    <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>ian</cc>
    
    <cc>manyoso</cc>
    
    <cc>ossy</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>208785</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-04-05 16:33:43 -0700</bug_when>
    <thetext>REGRESSION (r56223): http://www.playerpress.com/ shows up twice in the back/forward list.

In fixing https://bugs.webkit.org/show_bug.cgi?id=9166, http://trac.webkit.org/changeset/56223 caused this change.

Simply navigating to http://www.playerpress.com/ causes it to show up in the back/forward list twice.  
Presumably some iframe on the page is setting its .src attribute.

Darin mentioned in the r56223 Changelog that this is to match HTML5&apos;s &lt;iframe&gt; spec, but the original bug was about iframe.src affecting global history (visited link coloring), not the session history.

CC&apos;ing him to unravel what he thinks 4.2.8 actually says about this (reading that section on &quot;process the iframe attributes&quot; and how it interacts with setting .src makes my brain hurt).

Whether or not we decide HTML5 says this should be in the back list, I don&apos;t think it should be because no other browser does that!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208788</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-04-05 16:34:40 -0700</bug_when>
    <thetext>In radar as &lt;rdar://problem/7825681&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208831</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-04-05 18:28:34 -0700</bug_when>
    <thetext>Another example is with NPR stories (which requires visiting an initial site to follow these steps):

1 - Visit google.com
2 - Visit http://www.npr.org/templates/story/story.php?storyId=125491180
3 - The back list contains only google.
4 - Go back.
5 - The forward list only contains http://www.npr.org/templates/story/story.php?storyId=125491180
6 - Go forward
7 - The back list contains http://www.google.com/ and a duplicate entry for http://www.npr.org/templates/story/story.php?storyId=125491180
8 - Click back
9 - ASSERT.  FrameLoader compares the current URL and the back item URL, which are both http://www.npr.org/templates/story/story.php?storyId=125491180, and determines this must be a same document navigation.  But it&apos;s not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208832</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-04-05 18:32:14 -0700</bug_when>
    <thetext>LayoutTests/fast/loader/frame-src-change-added-to-history.html used the back/forward list to confirm the passing of the test, which means Darin thought session history was the intended affectee of the change.

I really don&apos;t think this is right.  I&apos;m going to dig in to 4.2.8 and see if I can find out if it really specifies this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208852</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-04-05 19:20:50 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; LayoutTests/fast/loader/frame-src-change-added-to-history.html used the
&gt; back/forward list to confirm the passing of the test, which means Darin thought
&gt; session history was the intended affectee of the change.
&gt; 
&gt; I really don&apos;t think this is right.  I&apos;m going to dig in to 4.2.8 and see if I
&gt; can find out if it really specifies this.

The layout test does show a difference in behavior between Safari 4.0.5 and Opera/Firefox, and brings ToT WebKit inline with what they do.  IE8 completely breaks with the test, making the Opera and Firefox compatibility much more interesting.

But r56223 caused some other change to break playerpress.com, npr articles, and possibly others.  Neither the PP.com or NPR.org bugs reproduce in Firefox or Opera.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208855</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-04-05 19:25:57 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; LayoutTests/fast/loader/frame-src-change-added-to-history.html used the
&gt; &gt; back/forward list to confirm the passing of the test, which means Darin thought
&gt; &gt; session history was the intended affectee of the change.
&gt; &gt; 
&gt; &gt; I really don&apos;t think this is right.  I&apos;m going to dig in to 4.2.8 and see if I
&gt; &gt; can find out if it really specifies this.
&gt; 
&gt; The layout test does show a difference in behavior between Safari 4.0.5 and
&gt; Opera/Firefox, and brings ToT WebKit inline with what they do.  IE8 completely
&gt; breaks with the test, making the Opera and Firefox compatibility much more
&gt; interesting.
&gt; 
&gt; But r56223 caused some other change to break playerpress.com, npr articles, and
&gt; possibly others.  Neither the PP.com or NPR.org bugs reproduce in Firefox or
&gt; Opera.

Correction - The PP.com bug and NPR article bug both reproduce in Opera.

Interesting...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208856</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-04-05 19:32:06 -0700</bug_when>
    <thetext>IE8 doesn&apos;t misbehave with either site.

But I don&apos;t know if that&apos;s important/relevant to this discussion because it does weird things on related tests.

Still looking for someone who has the IE9 beta to try (Still might not be relevant) 

If the spec really does say this is correct behavior (and my reading of it suggests it does), then it&apos;s a split with most of the marketshare right now.  Is it better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208858</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-04-05 19:37:04 -0700</bug_when>
    <thetext>I&apos;m not sure what I think about this one anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209641</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-04-07 08:36:14 -0700</bug_when>
    <thetext>The change made a test case that works in other browsers now pass in WebKit. Notably, IE8 doesn&apos;t pass the test.

But the change also caused a real-world compatibility problem at real websites - a problem that IE8 and Firefox both don&apos;t have.

Unless someone can point out real-world compatibility gained by this change, and demonstrate that it is better than the compatibility lost by this change, I&apos;m strongly leaning towards reverting the change until it can be done again, fixing the original bug while not introducing this new regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209646</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-07 08:43:23 -0700</bug_when>
    <thetext>Yes, my objective in fixing bug 9166 was to affect session history as well as global history.  Although I don&apos;t have strong opinions about whether or not it affects global history.

There are sites like www.transact-online.co.uk that were fixed by r56223.  See http://code.google.com/p/chromium/issues/detail?id=8011#c3 for details about how to reproduce the problem.

Brady, do you have a reduction for this issue yet?  I&apos;m going to start working on that shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209649</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-07 08:45:41 -0700</bug_when>
    <thetext>I cannot reproduce the issue in #2 using Chrome, but I can reproduce the issue with www.playerpress.com.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209658</commentid>
    <comment_count>11</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-04-07 08:55:58 -0700</bug_when>
    <thetext>(In reply to comment #9) 
&gt; Brady, do you have a reduction for this issue yet?  I&apos;m going to start working
&gt; on that shortly.

I&apos;ll start reducing playerpress.com now.

(In reply to comment #10)
&gt; I cannot reproduce the issue in #2 using Chrome, but I can reproduce the issue
&gt; with www.playerpress.com.

That&apos;s very curious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209688</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-07 09:59:26 -0700</bug_when>
    <thetext>In the case of http://www.playerpress.com/, what I observe is page navigation completes, and then sometime later an iframe is navigated to /xd_receiver.html.  Sometimes that navigation occurs before the main page navigation completes, which prevents the bug from being visible.  However, that is not the common case for me.

This is a hidden iframe that appears to be integral to facebook connect.  It looks like it is used to communicate from facebook back to www.playerpress.com.

I need to look further to see how the iframe is constructed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209708</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-07 10:28:13 -0700</bug_when>
    <thetext>More details:

Page loading has ended, and an iframe that points to /xd_receiver.html#foo is navigated via &quot;src&quot; assignment to /xd_receiver.html#bar.  Because of r56223, this is counted as a new navigation.

I&apos;m still not sure how to reduce this properly because given a simple test based on what I described above, both WebKit and Firefox agree on behavior.  So, there must be some other subtlety that I&apos;m not yet seeing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209734</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-07 10:53:40 -0700</bug_when>
    <thetext>Please ignore comment #13.  I was wrong.  It is not changing the reference fragment.  It is navigating from about:blank.

Here&apos;s the facebook code that creates the hidden iframe:

    _createHiddenIFrame: function (b) {
        if (FB.FBDebug.logLevel &gt; 4) FB.FBDebug.writeLine(&apos;Create iframe &apos; + b + &apos; in &apos; + document.URL);
        var a;
        a = document.createElement(&apos;iframe&apos;);
        a.className = &apos;FB_RECEIVER_DOM&apos;;
        if (!this._iframeCreated &amp;&amp; FBIntern.AppInfo.get_singleton().get_hostInfo().get_hostName() === FBIntern.HostName.IE) {
            a.src = &apos;javascript:false&apos;;
            this._iframeCreated = true;
        }
        if (FBIntern.AppInfo.get_singleton().get_hostInfo().get_hostName() === FBIntern.HostName.IE) {
            a.src = b;
            a = FB.HiddenContainer.get().appendChild(a);
        } else {
            a = FB.HiddenContainer.get().appendChild(a);
            a.src = b;
        }
        return a;
    },

I think a possible fix for us, and perhaps what Firefox is doing, is to keep history locked when navigating from about:blank.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209735</commentid>
    <comment_count>15</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-04-07 10:55:17 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Please ignore comment #13.  I was wrong.  It is not changing the reference
&gt; fragment.  It is navigating from about:blank.
&gt; ...
&gt; I think a possible fix for us, and perhaps what Firefox is doing, is to keep
&gt; history locked when navigating from about:blank.

I think that sounds pretty reasonable.

If it works, we should consider getting that specifically into HTML5 (if it&apos;s not already there in some roundabout way that we both missed)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209751</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-07 11:32:52 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; Please ignore comment #13.  I was wrong.  It is not changing the reference
&gt; &gt; fragment.  It is navigating from about:blank.
&gt; &gt; ...
&gt; &gt; I think a possible fix for us, and perhaps what Firefox is doing, is to keep
&gt; &gt; history locked when navigating from about:blank.
&gt; 
&gt; I think that sounds pretty reasonable.
&gt; 
&gt; If it works, we should consider getting that specifically into HTML5 (if it&apos;s
&gt; not already there in some roundabout way that we both missed)

I think the solution may need to be a bit more subtle, which is why I haven&apos;t posted a patch yet.  What I think we really need to know is 1) are we navigating away from about:blank and 2) has the iframe been navigated anywhere else?

That is, if the iframe is newly constructed and has only loaded about:blank, then I think the next navigation should have lockHistory/lockBackForwardHistory set to true.

I am actually struggling a bit to see how best to implement that condition in WebCore.  FrameLoader has a committedFirstRealDocumentLoad() method that looks like it should be applicable here, but sadly that is set to true as a byproduct of FrameLoader::requestFrame(&quot;about:blank&quot;).  That may actually be a bug in itself.  Or, perhaps we should have a requestFrameWithEmptyDocument method to make things more clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210015</commentid>
    <comment_count>17</comment_count>
      <attachid>52834</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-07 23:28:01 -0700</bug_when>
    <thetext>Created attachment 52834
testcase: frame.src assignment after appendChild</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210016</commentid>
    <comment_count>18</comment_count>
      <attachid>52835</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-07 23:29:18 -0700</bug_when>
    <thetext>Created attachment 52835
testcase: frame.contentWindow.location assignment after appendChild</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212124</commentid>
    <comment_count>19</comment_count>
      <attachid>53291</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-13 15:50:50 -0700</bug_when>
    <thetext>Created attachment 53291
v1 patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212131</commentid>
    <comment_count>20</comment_count>
      <attachid>53291</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-04-13 16:04:27 -0700</bug_when>
    <thetext>Comment on attachment 53291
v1 patch

At this point the variable name &quot;m_quickRedirectComing&quot; is silly  :)

Do you see us adding more logic to currentItemShouldBeReplaced() in the future?  The name slightly bothers me because it doesn&apos;t obviously match the conditions being tested.

Are we sure we shouldn&apos;t adopt this new behavior in the (problematic but still quite real) cases where we have no m_currentItem?

r+ with a good answer to the m_currentItem question.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212141</commentid>
    <comment_count>21</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-13 16:21:19 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 53291 [details])
&gt; At this point the variable name &quot;m_quickRedirectComing&quot; is silly  :)

Probably true.  I would like to clean that up.

m_navigateWithReplacementEnabled comes to mind, but I will defer such cleanup to a separate cleanup-only patch.


&gt; Do you see us adding more logic to currentItemShouldBeReplaced() in the future?
&gt;  The name slightly bothers me because it doesn&apos;t obviously match the conditions
&gt; being tested.

I don&apos;t intend to add more cases to currentItemShouldBeReplaced.  Locally, I have added a clarifying comment that quotes the HTML5 spec.

It was hard to come up with a good name for this.  The name is meant to convey that this is about determining if &quot;navigation&quot; should happen with &quot;replacement enabled&quot; to borrow terms from the HTML5 spec.


&gt; Are we sure we shouldn&apos;t adopt this new behavior in the (problematic but still
&gt; quite real) cases where we have no m_currentItem?

I am also concerned about the cases where m_currentItem may be null.  I have it on my list to eliminate cases where m_currentItem may be null.  In fact, I think the m_documentLoader null check in FrameLoader::clientRedirected should really be a null check of history()-&gt;currentItem(), but that change breaks a layout test.  I suggest this change because it should only make sense to perform a navigation with replacement enabled if there is a current history item to replace!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212142</commentid>
    <comment_count>22</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-13 16:23:13 -0700</bug_when>
    <thetext>Brady, please also note that my goal here is to be as incremental as possible.  I expect to iterate on this clientRedirected function and related code in the near term.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212144</commentid>
    <comment_count>23</comment_count>
      <attachid>53296</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-13 16:26:13 -0700</bug_when>
    <thetext>Created attachment 53296
v2 patch: extra comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212145</commentid>
    <comment_count>24</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-04-13 16:26:36 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; Brady, please also note that my goal here is to be as incremental as possible. 
&gt; I expect to iterate on this clientRedirected function and related code in the
&gt; near term.

Oh, totally.  I was just probing the future, making sure such incremental plans were in place :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212146</commentid>
    <comment_count>25</comment_count>
      <attachid>53296</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-04-13 16:27:24 -0700</bug_when>
    <thetext>Comment on attachment 53296
v2 patch: extra comment

I feel a little better about this one, even.

r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212217</commentid>
    <comment_count>26</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-13 21:52:56 -0700</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/57558</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212226</commentid>
    <comment_count>27</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-13 22:29:02 -0700</bug_when>
    <thetext>Looks to have broken tiger.  http://build.webkit.org/results/Tiger%20Intel%20Release/r57558%20(10787)/results.html

Sorry the cq was down this afternoon during the hackfest.  It&apos;s back now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212237</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-13 22:46:27 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/57558 might have broken Tiger Intel Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212238</commentid>
    <comment_count>29</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-13 22:48:17 -0700</bug_when>
    <thetext>Qt looks affected too:
http://build.webkit.org/results/Qt%20Linux%20Release/r57558%20(10053)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212243</commentid>
    <comment_count>30</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-04-13 23:09:54 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; Qt looks affected too:
&gt; http://build.webkit.org/results/Qt%20Linux%20Release/r57558%20(10053)/results.html

It is a known issue, and skipped by http://trac.webkit.org/changeset/57560 ( https://bugs.webkit.org/show_bug.cgi?id=36392 ). Thx for it, Darin.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>52834</attachid>
            <date>2010-04-07 23:28:01 -0700</date>
            <delta_ts>2010-04-07 23:28:01 -0700</delta_ts>
            <desc>testcase: frame.src assignment after appendChild</desc>
            <filename>case2.html</filename>
            <type>text/html</type>
            <size>188</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KZnVuY3Rpb24gZm9vKCkgewogIHZhciBmID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaWZyYW1lIik7CiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmKTsKICBmLnNyYyA9ICJo
dHRwOi8vZ29vZ2xlLmNvbS8iOwp9Cjwvc2NyaXB0Pgo8YnV0dG9uIG9uY2xpY2s9ImZvbygpIj5j
bGljayBtZTwvYnV0dG9uPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>52835</attachid>
            <date>2010-04-07 23:29:18 -0700</date>
            <delta_ts>2010-04-07 23:29:18 -0700</delta_ts>
            <desc>testcase: frame.contentWindow.location assignment after appendChild</desc>
            <filename>case3.html</filename>
            <type>text/html</type>
            <size>213</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KZnVuY3Rpb24gZm9vKCkgewogIHZhciBmID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaWZyYW1lIik7CiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmKTsKICBmLmNvbnRlbnRX
aW5kb3cubG9jYXRpb24uYXNzaWduKCJodHRwOi8vZ29vZ2xlLmNvbS8iKTsKfQo8L3NjcmlwdD4K
PGJ1dHRvbiBvbmNsaWNrPSJmb28oKSI+Y2xpY2sgbWU8L2J1dHRvbj4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53291</attachid>
            <date>2010-04-13 15:50:50 -0700</date>
            <delta_ts>2010-04-13 16:26:13 -0700</delta_ts>
            <desc>v1 patch</desc>
            <filename>hist_1.txt</filename>
            <type>text/plain</type>
            <size>9266</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNTc1MzIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wNC0xMyAgRGFyaW4gRmlzaGVyICA8
ZGFyaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIElmIHRoZSBicm93c2luZyBjb250ZXh0J3Mgc2Vzc2lvbiBoaXN0b3J5IGNv
bnRhaW5zIG9ubHkgb25lIERvY3VtZW50LAorICAgICAgICBhbmQgdGhhdCB3YXMgdGhlIGFib3V0
OmJsYW5rIERvY3VtZW50IGNyZWF0ZWQgd2hlbiB0aGUgYnJvd3NpbmcgY29udGV4dAorICAgICAg
ICB3YXMgY3JlYXRlZCwgdGhlbiB0aGUgbmF2aWdhdGlvbiBtdXN0IGJlIGRvbmUgd2l0aCByZXBs
YWNlbWVudCBlbmFibGVkLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNzEyNgorCisgICAgICAgICogZmFzdC9sb2FkZXIvZnJhbWUtbG9jYXRpb24t
Y2hhbmdlLW5vdC1hZGRlZC10by1oaXN0b3J5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9sb2FkZXIvZnJhbWUtbG9jYXRpb24tY2hhbmdlLW5vdC1hZGRlZC10by1oaXN0b3J5
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL2ZyYW1lLXNyYy1jaGFuZ2UtYWRk
ZWQtdG8taGlzdG9yeS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9sb2FkZXIvZnJhbWUt
c3JjLWNoYW5nZS1ub3QtYWRkZWQtdG8taGlzdG9yeS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvbG9hZGVyL2ZyYW1lLXNyYy1jaGFuZ2Utbm90LWFkZGVkLXRvLWhpc3Rvcnku
aHRtbDogQWRkZWQuCisKIDIwMTAtMDQtMTMgIER1bWl0cnUgRGFuaWxpdWMgIDxkdW1pQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9sb2FkZXIvZnJhbWUtbG9jYXRpb24tY2hhbmdlLW5vdC1hZGRlZC10by1oaXN0
b3J5LWV4cGVjdGVkLnR4dA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3RzL2Zhc3QvbG9hZGVy
L2ZyYW1lLWxvY2F0aW9uLWNoYW5nZS1ub3QtYWRkZWQtdG8taGlzdG9yeS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mcmFtZS1sb2NhdGlvbi1j
aGFuZ2Utbm90LWFkZGVkLXRvLWhpc3RvcnktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDcgQEAKK21haW4gZnJhbWUgLSBoYXMgMSBvbnVubG9hZCBoYW5kbGVyKHMpCitoaXN0
b3J5Lmxlbmd0aCA9IDEKKworPT09PT09PT09PT09PT0gQmFjayBGb3J3YXJkIExpc3QgPT09PT09
PT09PT09PT0KK2N1cnItPiAgKGZpbGUgdGVzdCk6ZmFzdC9sb2FkZXIvZnJhbWUtbG9jYXRpb24t
Y2hhbmdlLW5vdC1hZGRlZC10by1oaXN0b3J5Lmh0bWwgICoqbmF2IHRhcmdldCoqCisgICAgICAg
ICAgICBkYXRhOixoZWxsbyAoaW4gZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+
LS0+IikKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mcmFtZS1sb2NhdGlvbi1jaGFuZ2Utbm90LWFk
ZGVkLXRvLWhpc3RvcnkuaHRtbA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3RzL2Zhc3QvbG9h
ZGVyL2ZyYW1lLWxvY2F0aW9uLWNoYW5nZS1ub3QtYWRkZWQtdG8taGlzdG9yeS5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZnJhbWUtbG9jYXRpb24tY2hhbmdl
LW5vdC1hZGRlZC10by1oaXN0b3J5Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzQgQEAK
KzxoZWFkPgorPHNjcmlwdD4gCisvLyBUZXN0IHRoYXQgdGhlIHZlcnkgZmlyc3QgbmF2aWdhdGlv
biBtYWRlIG9uIGEgbmV3bHkgY3JlYXRlZCBJRlJBTUUgZG9lcyBub3QKKy8vIGNyZWF0ZSBhbm90
aGVyIHNlc3Npb24gaGlzdG9yeSBlbnRyeSwgZXZlbiBpZiB0aGUgSUZSQU1FIGlzIGFscmVhZHkg
YXR0YWNoZWQKKy8vIHRvIHRoZSBkb2N1bWVudCBhbmQgdGhlIHBhZ2UgaGFzIGZ1bGx5IGxvYWRl
ZC4KK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgIHZhciBmID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaWZyYW1lIik7CisgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZik7CisKKyAgZi5jb250
ZW50V2luZG93LmxvY2F0aW9uID0gImRhdGE6LGhlbGxvIjsKKworICBmLm9ubG9hZCA9IGZ1bmN0
aW9uKCkgeworICAgIGRvY3VtZW50LmJvZHkuaW5uZXJUZXh0ID0gImhpc3RvcnkubGVuZ3RoID0g
IiArIGhpc3RvcnkubGVuZ3RoOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgIH0KK30KKworb251
bmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgLy8gRGlzYWJsZSBwYWdlIGNhY2hlCit9CisKK29ubG9h
ZCA9IGZ1bmN0aW9uKCkgeworICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBCYWNrRm9yd2FyZExpc3QoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5j
bGVhckJhY2tGb3J3YXJkTGlzdCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKyAgfQorICBzZXRUaW1lb3V0KHJ1blRlc3QsIDApOworfQorPC9zY3JpcHQ+IAor
PC9oZWFkPgorPGJvZHk+PC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZnJh
bWUtc3JjLWNoYW5nZS1hZGRlZC10by1oaXN0b3J5LWV4cGVjdGVkLnR4dA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2ZyYW1lLXNyYy1jaGFuZ2UtYWRkZWQtdG8taGlz
dG9yeS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDU3NTI5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9s
b2FkZXIvZnJhbWUtc3JjLWNoYW5nZS1hZGRlZC10by1oaXN0b3J5LWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtNyw5ICs3LDcgQEAgRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZy
YW1lMC0tPi0tPgogCiA9PT09PT09PT09PT09PSBCYWNrIEZvcndhcmQgTGlzdCA9PT09PT09PT09
PT09PQogICAgICAgICAoZmlsZSB0ZXN0KTpmYXN0L2xvYWRlci9mcmFtZS1zcmMtY2hhbmdlLWFk
ZGVkLXRvLWhpc3RvcnkuaHRtbCAgKipuYXYgdGFyZ2V0KioKLSAgICAgICAgICAgIGFib3V0OmJs
YW5rIChpbiBmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iKQotICAgICAg
ICAoZmlsZSB0ZXN0KTpmYXN0L2xvYWRlci9mcmFtZS1zcmMtY2hhbmdlLWFkZGVkLXRvLWhpc3Rv
cnkuaHRtbAotICAgICAgICAgICAgZGF0YTosNCAoaW4gZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88
IS0tZnJhbWUwLS0+LS0+IikgICoqbmF2IHRhcmdldCoqCisgICAgICAgICAgICBkYXRhOiw0IChp
biBmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iKQogICAgICAgICAoZmls
ZSB0ZXN0KTpmYXN0L2xvYWRlci9mcmFtZS1zcmMtY2hhbmdlLWFkZGVkLXRvLWhpc3RvcnkuaHRt
bAogICAgICAgICAgICAgZGF0YTosMyAoaW4gZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJh
bWUwLS0+LS0+IikgICoqbmF2IHRhcmdldCoqCiAgICAgICAgIChmaWxlIHRlc3QpOmZhc3QvbG9h
ZGVyL2ZyYW1lLXNyYy1jaGFuZ2UtYWRkZWQtdG8taGlzdG9yeS5odG1sCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2xvYWRlci9mcmFtZS1zcmMtY2hhbmdlLW5vdC1hZGRlZC10by1oaXN0b3J5LWV4
cGVjdGVkLnR4dA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2ZyYW1l
LXNyYy1jaGFuZ2Utbm90LWFkZGVkLXRvLWhpc3RvcnktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZnJhbWUtc3JjLWNoYW5nZS1ub3QtYWRkZWQt
dG8taGlzdG9yeS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorbWFp
biBmcmFtZSAtIGhhcyAxIG9udW5sb2FkIGhhbmRsZXIocykKK2hpc3RvcnkubGVuZ3RoID0gMQor
Cis9PT09PT09PT09PT09PSBCYWNrIEZvcndhcmQgTGlzdCA9PT09PT09PT09PT09PQorY3Vyci0+
ICAoZmlsZSB0ZXN0KTpmYXN0L2xvYWRlci9mcmFtZS1zcmMtY2hhbmdlLW5vdC1hZGRlZC10by1o
aXN0b3J5Lmh0bWwgICoqbmF2IHRhcmdldCoqCisgICAgICAgICAgICBkYXRhOixoZWxsbyAoaW4g
ZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+IikKKz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2xvYWRlci9mcmFtZS1zcmMtY2hhbmdlLW5vdC1hZGRlZC10by1oaXN0b3J5Lmh0bWwNCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mcmFtZS1zcmMtY2hhbmdlLW5vdC1h
ZGRlZC10by1oaXN0b3J5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2xv
YWRlci9mcmFtZS1zcmMtY2hhbmdlLW5vdC1hZGRlZC10by1oaXN0b3J5Lmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMzQgQEAKKzxoZWFkPgorPHNjcmlwdD4gCisvLyBUZXN0IHRoYXQgdGhl
IHZlcnkgZmlyc3QgbmF2aWdhdGlvbiBtYWRlIG9uIGEgbmV3bHkgY3JlYXRlZCBJRlJBTUUgZG9l
cyBub3QKKy8vIGNyZWF0ZSBhbm90aGVyIHNlc3Npb24gaGlzdG9yeSBlbnRyeSwgZXZlbiBpZiB0
aGUgSUZSQU1FIGlzIGFscmVhZHkgYXR0YWNoZWQKKy8vIHRvIHRoZSBkb2N1bWVudCBhbmQgdGhl
IHBhZ2UgaGFzIGZ1bGx5IGxvYWRlZC4KK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgIHZhciBmID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoZik7CisKKyAgZi5zcmMgPSAiZGF0YTosaGVsbG8iOworCisgIGYub25sb2FkID0gZnVu
Y3Rpb24oKSB7CisgICAgZG9jdW1lbnQuYm9keS5pbm5lclRleHQgPSAiaGlzdG9yeS5sZW5ndGgg
PSAiICsgaGlzdG9yeS5sZW5ndGg7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgfQorfQorCitv
bnVubG9hZCA9IGZ1bmN0aW9uKCkgeworICAvLyBEaXNhYmxlIHBhZ2UgY2FjaGUKK30KKworb25s
b2FkID0gZnVuY3Rpb24oKSB7CisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmNsZWFyQmFja0ZvcndhcmRMaXN0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOworICB9CisgIHNldFRpbWVvdXQocnVuVGVzdCwgMCk7Cit9Cis8L3NjcmlwdD4g
Cis8L2hlYWQ+Cis8Ym9keT48L2JvZHk+CkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZw0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA1NzUzMikKKysrIFdlYkNvcmUv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDQtMTMgIERh
cmluIEZpc2hlciAgPGRhcmluQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgYnJvd3NpbmcgY29udGV4dCdzIHNlc3Np
b24gaGlzdG9yeSBjb250YWlucyBvbmx5IG9uZSBEb2N1bWVudCwKKyAgICAgICAgYW5kIHRoYXQg
d2FzIHRoZSBhYm91dDpibGFuayBEb2N1bWVudCBjcmVhdGVkIHdoZW4gdGhlIGJyb3dzaW5nIGNv
bnRleHQKKyAgICAgICAgd2FzIGNyZWF0ZWQsIHRoZW4gdGhlIG5hdmlnYXRpb24gbXVzdCBiZSBk
b25lIHdpdGggcmVwbGFjZW1lbnQgZW5hYmxlZC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcxMjYKKworICAgICAgICBUZXN0czogZmFzdC9sb2Fk
ZXIvZnJhbWUtbG9jYXRpb24tY2hhbmdlLW5vdC1hZGRlZC10by1oaXN0b3J5Lmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvbG9hZGVyL2ZyYW1lLXNyYy1jaGFuZ2Utbm90LWFkZGVkLXRvLWhpc3Rv
cnkuaHRtbAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpjbGllbnRSZWRpcmVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyOjpmaW5kRnJhbWVGb3JOYXZpZ2F0aW9uKToKKyAgICAgICAgKiBsb2FkZXIv
SGlzdG9yeUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xs
ZXI6OmN1cnJlbnRJdGVtU2hvdWxkQmVSZXBsYWNlZCk6CisgICAgICAgICogbG9hZGVyL0hpc3Rv
cnlDb250cm9sbGVyLmg6CisKIDIwMTAtMDQtMTMgIER1bWl0cnUgRGFuaWxpdWMgIDxkdW1pQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJbmRleDogV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lvbiA1NzUyOSkKKysrIFdlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcwNiw2ICsyNzA2LDkgQEAgdm9pZCBG
cmFtZUxvYWRlcjo6Y2xpZW50UmVkaXJlY3RlZChjb25zdAogICAgIC8vIG5vICJvcmlnaW5hbCIg
bG9hZCBvbiB3aGljaCB0byBiYXNlIGEgcmVkaXJlY3QsIHNvIHdlIHRyZWF0IHRoZSByZWRpcmVj
dCBhcyBhIG5vcm1hbCBsb2FkLgogICAgIC8vIExvYWRzIHRyaWdnZXJlZCBieSBKYXZhU2NyaXB0
IGZvcm0gc3VibWlzc2lvbnMgbmV2ZXIgY291bnQgYXMgcXVpY2sgcmVkaXJlY3RzLgogICAgIG1f
cXVpY2tSZWRpcmVjdENvbWluZyA9IGxvY2tCYWNrRm9yd2FyZExpc3QgJiYgbV9kb2N1bWVudExv
YWRlciAmJiAhbV9pc0V4ZWN1dGluZ0phdmFTY3JpcHRGb3JtQWN0aW9uOworCisgICAgaWYgKGhp
c3RvcnkoKS0+Y3VycmVudEl0ZW1TaG91bGRCZVJlcGxhY2VkKCkpCisgICAgICAgIG1fcXVpY2tS
ZWRpcmVjdENvbWluZyA9IHRydWU7CiB9CiAKIGJvb2wgRnJhbWVMb2FkZXI6OnNob3VsZFJlbG9h
ZChjb25zdCBLVVJMJiBjdXJyZW50VVJMLCBjb25zdCBLVVJMJiBkZXN0aW5hdGlvblVSTCkKQEAg
LTM3NzEsNyArMzc3NCw3IEBAIEZyYW1lKiBGcmFtZUxvYWRlcjo6ZmluZEZyYW1lRm9yTmF2aWdh
dGkKIHsKICAgICBGcmFtZSogZnJhbWUgPSBtX2ZyYW1lLT50cmVlKCktPmZpbmQobmFtZSk7CiAg
ICAgaWYgKCFzaG91bGRBbGxvd05hdmlnYXRpb24oZnJhbWUpKQotICAgICAgICByZXR1cm4gMDsg
IAorICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gZnJhbWU7CiB9CiAKSW5kZXg6IFdlYkNv
cmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUv
bG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNTc1MjkpCisrKyBXZWJDb3Jl
L2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0NSw2ICs0
NDUsMTEgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6c2V0Q3VycmVudEl0ZW1UaQogICAgICAg
ICBtX2N1cnJlbnRJdGVtLT5zZXRUaXRsZSh0aXRsZSk7CiB9CiAKK2Jvb2wgSGlzdG9yeUNvbnRy
b2xsZXI6OmN1cnJlbnRJdGVtU2hvdWxkQmVSZXBsYWNlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fY3VycmVudEl0ZW0gJiYgIW1fcHJldmlvdXNJdGVtICYmIGVxdWFsSWdub3JpbmdDYXNlKG1f
Y3VycmVudEl0ZW0tPnVybFN0cmluZygpLCBibGFua1VSTCgpKTsKK30KKwogdm9pZCBIaXN0b3J5
Q29udHJvbGxlcjo6c2V0UHJvdmlzaW9uYWxJdGVtKEhpc3RvcnlJdGVtKiBpdGVtKQogewogICAg
IG1fcHJvdmlzaW9uYWxJdGVtID0gaXRlbTsKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0hpc3RvcnlD
b250cm9sbGVyLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJv
bGxlci5oCShyZXZpc2lvbiA1NzUyOSkKKysrIFdlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9s
bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDcgQEAgcHVibGljOgogICAgIEhpc3Rv
cnlJdGVtKiBjdXJyZW50SXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudEl0ZW0uZ2V0KCk7
IH0KICAgICB2b2lkIHNldEN1cnJlbnRJdGVtKEhpc3RvcnlJdGVtKik7CiAgICAgdm9pZCBzZXRD
dXJyZW50SXRlbVRpdGxlKGNvbnN0IFN0cmluZyYpOworICAgIGJvb2wgY3VycmVudEl0ZW1TaG91
bGRCZVJlcGxhY2VkKCkgY29uc3Q7CiAKICAgICBIaXN0b3J5SXRlbSogcHJvdmlzaW9uYWxJdGVt
KCkgY29uc3QgeyByZXR1cm4gbV9wcm92aXNpb25hbEl0ZW0uZ2V0KCk7IH0KICAgICB2b2lkIHNl
dFByb3Zpc2lvbmFsSXRlbShIaXN0b3J5SXRlbSopOwo=
</data>
<flag name="review"
          id="36975"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53296</attachid>
            <date>2010-04-13 16:26:13 -0700</date>
            <delta_ts>2010-04-13 17:43:52 -0700</delta_ts>
            <desc>v2 patch: extra comment</desc>
            <filename>hist_2.txt</filename>
            <type>text/plain</type>
            <size>9788</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNTc1NDIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wNC0xMyAgRGFyaW4gRmlzaGVyICA8
ZGFyaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIElmIHRoZSBicm93c2luZyBjb250ZXh0J3Mgc2Vzc2lvbiBoaXN0b3J5IGNv
bnRhaW5zIG9ubHkgb25lIERvY3VtZW50LAorICAgICAgICBhbmQgdGhhdCB3YXMgdGhlIGFib3V0
OmJsYW5rIERvY3VtZW50IGNyZWF0ZWQgd2hlbiB0aGUgYnJvd3NpbmcgY29udGV4dAorICAgICAg
ICB3YXMgY3JlYXRlZCwgdGhlbiB0aGUgbmF2aWdhdGlvbiBtdXN0IGJlIGRvbmUgd2l0aCByZXBs
YWNlbWVudCBlbmFibGVkLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNzEyNgorCisgICAgICAgICogZmFzdC9sb2FkZXIvZnJhbWUtbG9jYXRpb24t
Y2hhbmdlLW5vdC1hZGRlZC10by1oaXN0b3J5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9sb2FkZXIvZnJhbWUtbG9jYXRpb24tY2hhbmdlLW5vdC1hZGRlZC10by1oaXN0b3J5
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL2ZyYW1lLXNyYy1jaGFuZ2UtYWRk
ZWQtdG8taGlzdG9yeS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9sb2FkZXIvZnJhbWUt
c3JjLWNoYW5nZS1ub3QtYWRkZWQtdG8taGlzdG9yeS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvbG9hZGVyL2ZyYW1lLXNyYy1jaGFuZ2Utbm90LWFkZGVkLXRvLWhpc3Rvcnku
aHRtbDogQWRkZWQuCisKIDIwMTAtMDQtMTMgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFNraXAgbmV3IHRlc3QgaW50cm9kdWNlZCBpbiByNTc1
MzAsIGJlY2F1c2Ugb2YKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2ZyYW1lLWxvY2F0
aW9uLWNoYW5nZS1ub3QtYWRkZWQtdG8taGlzdG9yeS1leHBlY3RlZC50eHQNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mcmFtZS1sb2NhdGlvbi1jaGFuZ2Utbm90LWFk
ZGVkLXRvLWhpc3RvcnktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9sb2FkZXIvZnJhbWUtbG9jYXRpb24tY2hhbmdlLW5vdC1hZGRlZC10by1oaXN0b3J5LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3IEBACittYWluIGZyYW1lIC0gaGFz
IDEgb251bmxvYWQgaGFuZGxlcihzKQoraGlzdG9yeS5sZW5ndGggPSAxCisKKz09PT09PT09PT09
PT09IEJhY2sgRm9yd2FyZCBMaXN0ID09PT09PT09PT09PT09CitjdXJyLT4gIChmaWxlIHRlc3Qp
OmZhc3QvbG9hZGVyL2ZyYW1lLWxvY2F0aW9uLWNoYW5nZS1ub3QtYWRkZWQtdG8taGlzdG9yeS5o
dG1sICAqKm5hdiB0YXJnZXQqKgorICAgICAgICAgICAgZGF0YTosaGVsbG8gKGluIGZyYW1lICI8
IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPiIpCis9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIv
ZnJhbWUtbG9jYXRpb24tY2hhbmdlLW5vdC1hZGRlZC10by1oaXN0b3J5Lmh0bWwNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mcmFtZS1sb2NhdGlvbi1jaGFuZ2Utbm90
LWFkZGVkLXRvLWhpc3RvcnkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
bG9hZGVyL2ZyYW1lLWxvY2F0aW9uLWNoYW5nZS1ub3QtYWRkZWQtdG8taGlzdG9yeS5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM0IEBACis8aGVhZD4KKzxzY3JpcHQ+IAorLy8gVGVzdCB0
aGF0IHRoZSB2ZXJ5IGZpcnN0IG5hdmlnYXRpb24gbWFkZSBvbiBhIG5ld2x5IGNyZWF0ZWQgSUZS
QU1FIGRvZXMgbm90CisvLyBjcmVhdGUgYW5vdGhlciBzZXNzaW9uIGhpc3RvcnkgZW50cnksIGV2
ZW4gaWYgdGhlIElGUkFNRSBpcyBhbHJlYWR5IGF0dGFjaGVkCisvLyB0byB0aGUgZG9jdW1lbnQg
YW5kIHRoZSBwYWdlIGhhcyBmdWxseSBsb2FkZWQuCitmdW5jdGlvbiBydW5UZXN0KCkgeworICB2
YXIgZiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGYpOworCisgIGYuY29udGVudFdpbmRvdy5sb2NhdGlvbiA9ICJkYXRhOixo
ZWxsbyI7CisKKyAgZi5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBkb2N1bWVudC5ib2R5Lmlu
bmVyVGV4dCA9ICJoaXN0b3J5Lmxlbmd0aCA9ICIgKyBoaXN0b3J5Lmxlbmd0aDsKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICB9Cit9CisKK29udW5sb2FkID0gZnVuY3Rpb24oKSB7CisgIC8vIERp
c2FibGUgcGFnZSBjYWNoZQorfQorCitvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQmFja0ZvcndhcmRMaXN0KCk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY2xlYXJCYWNrRm9yd2FyZExpc3QoKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgIH0KKyAgc2V0VGltZW91dChy
dW5UZXN0LCAwKTsKK30KKzwvc2NyaXB0PiAKKzwvaGVhZD4KKzxib2R5PjwvYm9keT4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2ZyYW1lLXNyYy1jaGFuZ2UtYWRkZWQtdG8taGlzdG9y
eS1leHBlY3RlZC50eHQNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9m
cmFtZS1zcmMtY2hhbmdlLWFkZGVkLXRvLWhpc3RvcnktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1
NzU0MikKKysrIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2ZyYW1lLXNyYy1jaGFuZ2UtYWRkZWQt
dG8taGlzdG9yeS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTcsOSArNyw3IEBAIEZy
YW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4KIAogPT09PT09PT09PT09PT0g
QmFjayBGb3J3YXJkIExpc3QgPT09PT09PT09PT09PT0KICAgICAgICAgKGZpbGUgdGVzdCk6ZmFz
dC9sb2FkZXIvZnJhbWUtc3JjLWNoYW5nZS1hZGRlZC10by1oaXN0b3J5Lmh0bWwgICoqbmF2IHRh
cmdldCoqCi0gICAgICAgICAgICBhYm91dDpibGFuayAoaW4gZnJhbWUgIjwhLS1mcmFtZVBhdGgg
Ly88IS0tZnJhbWUwLS0+LS0+IikKLSAgICAgICAgKGZpbGUgdGVzdCk6ZmFzdC9sb2FkZXIvZnJh
bWUtc3JjLWNoYW5nZS1hZGRlZC10by1oaXN0b3J5Lmh0bWwKLSAgICAgICAgICAgIGRhdGE6LDQg
KGluIGZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPiIpICAqKm5hdiB0YXJn
ZXQqKgorICAgICAgICAgICAgZGF0YTosNCAoaW4gZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0t
ZnJhbWUwLS0+LS0+IikKICAgICAgICAgKGZpbGUgdGVzdCk6ZmFzdC9sb2FkZXIvZnJhbWUtc3Jj
LWNoYW5nZS1hZGRlZC10by1oaXN0b3J5Lmh0bWwKICAgICAgICAgICAgIGRhdGE6LDMgKGluIGZy
YW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPiIpICAqKm5hdiB0YXJnZXQqKgog
ICAgICAgICAoZmlsZSB0ZXN0KTpmYXN0L2xvYWRlci9mcmFtZS1zcmMtY2hhbmdlLWFkZGVkLXRv
LWhpc3RvcnkuaHRtbApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZnJhbWUtc3JjLWNo
YW5nZS1ub3QtYWRkZWQtdG8taGlzdG9yeS1leHBlY3RlZC50eHQNCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBM
YXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mcmFtZS1zcmMtY2hhbmdlLW5vdC1hZGRlZC10by1oaXN0
b3J5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbG9hZGVy
L2ZyYW1lLXNyYy1jaGFuZ2Utbm90LWFkZGVkLXRvLWhpc3RvcnktZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDcgQEAKK21haW4gZnJhbWUgLSBoYXMgMSBvbnVubG9hZCBoYW5k
bGVyKHMpCitoaXN0b3J5Lmxlbmd0aCA9IDEKKworPT09PT09PT09PT09PT0gQmFjayBGb3J3YXJk
IExpc3QgPT09PT09PT09PT09PT0KK2N1cnItPiAgKGZpbGUgdGVzdCk6ZmFzdC9sb2FkZXIvZnJh
bWUtc3JjLWNoYW5nZS1ub3QtYWRkZWQtdG8taGlzdG9yeS5odG1sICAqKm5hdiB0YXJnZXQqKgor
ICAgICAgICAgICAgZGF0YTosaGVsbG8gKGluIGZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZy
YW1lMC0tPi0tPiIpCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZnJhbWUtc3JjLWNoYW5nZS1ub3Qt
YWRkZWQtdG8taGlzdG9yeS5odG1sDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gTGF5b3V0VGVzdHMvZmFzdC9s
b2FkZXIvZnJhbWUtc3JjLWNoYW5nZS1ub3QtYWRkZWQtdG8taGlzdG9yeS5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZnJhbWUtc3JjLWNoYW5nZS1ub3QtYWRk
ZWQtdG8taGlzdG9yeS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM0IEBACis8aGVhZD4K
KzxzY3JpcHQ+IAorLy8gVGVzdCB0aGF0IHRoZSB2ZXJ5IGZpcnN0IG5hdmlnYXRpb24gbWFkZSBv
biBhIG5ld2x5IGNyZWF0ZWQgSUZSQU1FIGRvZXMgbm90CisvLyBjcmVhdGUgYW5vdGhlciBzZXNz
aW9uIGhpc3RvcnkgZW50cnksIGV2ZW4gaWYgdGhlIElGUkFNRSBpcyBhbHJlYWR5IGF0dGFjaGVk
CisvLyB0byB0aGUgZG9jdW1lbnQgYW5kIHRoZSBwYWdlIGhhcyBmdWxseSBsb2FkZWQuCitmdW5j
dGlvbiBydW5UZXN0KCkgeworICB2YXIgZiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFt
ZSIpOworICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGYpOworCisgIGYuc3JjID0gImRhdGE6
LGhlbGxvIjsKKworICBmLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGRvY3VtZW50LmJvZHku
aW5uZXJUZXh0ID0gImhpc3RvcnkubGVuZ3RoID0gIiArIGhpc3RvcnkubGVuZ3RoOworICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CisgIH0KK30KKworb251bmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgLy8g
RGlzYWJsZSBwYWdlIGNhY2hlCit9CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBCYWNrRm9yd2FyZExpc3Qo
KTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5jbGVhckJhY2tGb3J3YXJkTGlzdCgpOworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgfQorICBzZXRUaW1lb3V0
KHJ1blRlc3QsIDApOworfQorPC9zY3JpcHQ+IAorPC9oZWFkPgorPGJvZHk+PC9ib2R5PgpJbmRl
eDogV2ViQ29yZS9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL0NoYW5nZUxvZwko
cmV2aXNpb24gNTc1NDIpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDIzIEBACisyMDEwLTA0LTEzICBEYXJpbiBGaXNoZXIgIDxkYXJpbkBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYg
dGhlIGJyb3dzaW5nIGNvbnRleHQncyBzZXNzaW9uIGhpc3RvcnkgY29udGFpbnMgb25seSBvbmUg
RG9jdW1lbnQsCisgICAgICAgIGFuZCB0aGF0IHdhcyB0aGUgYWJvdXQ6YmxhbmsgRG9jdW1lbnQg
Y3JlYXRlZCB3aGVuIHRoZSBicm93c2luZyBjb250ZXh0CisgICAgICAgIHdhcyBjcmVhdGVkLCB0
aGVuIHRoZSBuYXZpZ2F0aW9uIG11c3QgYmUgZG9uZSB3aXRoIHJlcGxhY2VtZW50IGVuYWJsZWQu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MTI2
CisKKyAgICAgICAgVGVzdHM6IGZhc3QvbG9hZGVyL2ZyYW1lLWxvY2F0aW9uLWNoYW5nZS1ub3Qt
YWRkZWQtdG8taGlzdG9yeS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2xvYWRlci9mcmFtZS1z
cmMtY2hhbmdlLW5vdC1hZGRlZC10by1oaXN0b3J5Lmh0bWwKKworICAgICAgICAqIGxvYWRlci9G
cmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2xpZW50UmVk
aXJlY3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZmluZEZyYW1lRm9yTmF2
aWdhdGlvbik6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpjdXJyZW50SXRlbVNob3VsZEJlUmVwbGFj
ZWQpOgorICAgICAgICAqIGxvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oOgorCiAyMDEwLTA0LTEy
ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBTZWN1cml0
eU9yaWdpbiBuZWVkcyBhIHdheSB0byByZW1vdmUgaW5kaXZpZHVhbCBPcmlnaW5BY2Nlc3NFbnRy
aWVzCkluZGV4OiBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHANCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9uIDU3NTQyKQorKysgV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzA1LDcgKzI3
MDUsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjbGllbnRSZWRpcmVjdGVkKGNvbnN0CiAgICAgLy8g
bG9hZCBhcyBwYXJ0IG9mIHRoZSBvcmlnaW5hbCBuYXZpZ2F0aW9uLiBJZiB3ZSBkb24ndCBoYXZl
IGEgZG9jdW1lbnQgbG9hZGVyLCB3ZSBoYXZlCiAgICAgLy8gbm8gIm9yaWdpbmFsIiBsb2FkIG9u
IHdoaWNoIHRvIGJhc2UgYSByZWRpcmVjdCwgc28gd2UgdHJlYXQgdGhlIHJlZGlyZWN0IGFzIGEg
bm9ybWFsIGxvYWQuCiAgICAgLy8gTG9hZHMgdHJpZ2dlcmVkIGJ5IEphdmFTY3JpcHQgZm9ybSBz
dWJtaXNzaW9ucyBuZXZlciBjb3VudCBhcyBxdWljayByZWRpcmVjdHMuCi0gICAgbV9xdWlja1Jl
ZGlyZWN0Q29taW5nID0gbG9ja0JhY2tGb3J3YXJkTGlzdCAmJiBtX2RvY3VtZW50TG9hZGVyICYm
ICFtX2lzRXhlY3V0aW5nSmF2YVNjcmlwdEZvcm1BY3Rpb247CisgICAgbV9xdWlja1JlZGlyZWN0
Q29taW5nID0gKGxvY2tCYWNrRm9yd2FyZExpc3QgfHwgaGlzdG9yeSgpLT5jdXJyZW50SXRlbVNo
b3VsZEJlUmVwbGFjZWQoKSkgJiYgbV9kb2N1bWVudExvYWRlciAmJiAhbV9pc0V4ZWN1dGluZ0ph
dmFTY3JpcHRGb3JtQWN0aW9uOwogfQogCiBib29sIEZyYW1lTG9hZGVyOjpzaG91bGRSZWxvYWQo
Y29uc3QgS1VSTCYgY3VycmVudFVSTCwgY29uc3QgS1VSTCYgZGVzdGluYXRpb25VUkwpCkBAIC0z
NzcxLDcgKzM3NzEsNyBAQCBGcmFtZSogRnJhbWVMb2FkZXI6OmZpbmRGcmFtZUZvck5hdmlnYXRp
CiB7CiAgICAgRnJhbWUqIGZyYW1lID0gbV9mcmFtZS0+dHJlZSgpLT5maW5kKG5hbWUpOwogICAg
IGlmICghc2hvdWxkQWxsb3dOYXZpZ2F0aW9uKGZyYW1lKSkKLSAgICAgICAgcmV0dXJuIDA7ICAK
KyAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGZyYW1lOwogfQogCkluZGV4OiBXZWJDb3Jl
L2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL2xv
YWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDU3NTQyKQorKysgV2ViQ29yZS9s
b2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDUsNiArNDQ1
LDE1IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnNldEN1cnJlbnRJdGVtVGkKICAgICAgICAg
bV9jdXJyZW50SXRlbS0+c2V0VGl0bGUodGl0bGUpOwogfQogCitib29sIEhpc3RvcnlDb250cm9s
bGVyOjpjdXJyZW50SXRlbVNob3VsZEJlUmVwbGFjZWQoKSBjb25zdAoreworICAgIC8vIEZyb20g
dGhlIEhUTUw1IHNwZWMgZm9yIGxvY2F0aW9uLmFzc2lnbigpOgorICAgIC8vICAiSWYgdGhlIGJy
b3dzaW5nIGNvbnRleHQncyBzZXNzaW9uIGhpc3RvcnkgY29udGFpbnMgb25seSBvbmUgRG9jdW1l
bnQsCisgICAgLy8gICBhbmQgdGhhdCB3YXMgdGhlIGFib3V0OmJsYW5rIERvY3VtZW50IGNyZWF0
ZWQgd2hlbiB0aGUgYnJvd3NpbmcgY29udGV4dAorICAgIC8vICAgd2FzIGNyZWF0ZWQsIHRoZW4g
dGhlIG5hdmlnYXRpb24gbXVzdCBiZSBkb25lIHdpdGggcmVwbGFjZW1lbnQgZW5hYmxlZC4iCisg
ICAgcmV0dXJuIG1fY3VycmVudEl0ZW0gJiYgIW1fcHJldmlvdXNJdGVtICYmIGVxdWFsSWdub3Jp
bmdDYXNlKG1fY3VycmVudEl0ZW0tPnVybFN0cmluZygpLCBibGFua1VSTCgpKTsKK30KKwogdm9p
ZCBIaXN0b3J5Q29udHJvbGxlcjo6c2V0UHJvdmlzaW9uYWxJdGVtKEhpc3RvcnlJdGVtKiBpdGVt
KQogewogICAgIG1fcHJvdmlzaW9uYWxJdGVtID0gaXRlbTsKSW5kZXg6IFdlYkNvcmUvbG9hZGVy
L0hpc3RvcnlDb250cm9sbGVyLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL2xvYWRlci9IaXN0
b3J5Q29udHJvbGxlci5oCShyZXZpc2lvbiA1NzU0MikKKysrIFdlYkNvcmUvbG9hZGVyL0hpc3Rv
cnlDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDcgQEAgcHVibGljOgog
ICAgIEhpc3RvcnlJdGVtKiBjdXJyZW50SXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudEl0
ZW0uZ2V0KCk7IH0KICAgICB2b2lkIHNldEN1cnJlbnRJdGVtKEhpc3RvcnlJdGVtKik7CiAgICAg
dm9pZCBzZXRDdXJyZW50SXRlbVRpdGxlKGNvbnN0IFN0cmluZyYpOworICAgIGJvb2wgY3VycmVu
dEl0ZW1TaG91bGRCZVJlcGxhY2VkKCkgY29uc3Q7CiAKICAgICBIaXN0b3J5SXRlbSogcHJvdmlz
aW9uYWxJdGVtKCkgY29uc3QgeyByZXR1cm4gbV9wcm92aXNpb25hbEl0ZW0uZ2V0KCk7IH0KICAg
ICB2b2lkIHNldFByb3Zpc2lvbmFsSXRlbShIaXN0b3J5SXRlbSopOwo=
</data>
<flag name="review"
          id="36982"
          type_id="1"
          status="+"
          setter="beidson"
    />
    <flag name="commit-queue"
          id="36990"
          type_id="3"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>