<?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>38598</bug_id>
          
          <creation_ts>2010-05-05 11:48:29 -0700</creation_ts>
          <short_desc>[Qt] Failed at http://philip.html5.org/tests/canvas/suite/tests/2d.path.arcTo.transformation.html</short_desc>
          <delta_ts>2010-06-09 20:48: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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>Qt, QtTriaged</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="qi">qi.2.zhang</reporter>
          <assigned_to name="qi">qi.2.zhang</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>cshu</cc>
    
    <cc>eric</cc>
    
    <cc>hamaji</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
    
    <cc>krit</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>221212</commentid>
    <comment_count>0</comment_count>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2010-05-05 11:48:29 -0700</bug_when>
    <thetext>also failed at http://philip.html5.org/tests/canvas/suite/tests/2d.path.arcTo.scale.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221222</commentid>
    <comment_count>1</comment_count>
      <attachid>55141</attachid>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2010-05-05 12:20:24 -0700</bug_when>
    <thetext>Created attachment 55141
patch

Due to QPainterPath.isEmpty &quot;Returns true if either there are no elements in this path, or if the only element is a MoveToElement; otherwise returns false.&quot;, when QTransform try to transform a QPainterPath, if the path only have MoveToElement, it will not transform actually.

In this case, the translation function happen after moveto, then the start pointer didn&apos;t tranformed.

ctx.fillStyle = &apos;#0f0&apos;;
ctx.beginPath();
ctx.moveTo(0, 50);
ctx.translate(100, 0);
ctx.arcTo(50, 50, 50, 0, 50);
ctx.lineTo(-100, 0);
ctx.fill();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221470</commentid>
    <comment_count>2</comment_count>
      <attachid>55141</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-05 21:48:00 -0700</bug_when>
    <thetext>Comment on attachment 55141
patch

&gt; Index: WebCore/ChangeLog
&gt; ===================================================================
&gt; --- WebCore/ChangeLog	(revision 58832)
&gt; +++ WebCore/ChangeLog	(working copy)
&gt; @@ -1,3 +1,15 @@
&gt; +2010-05-05  Qi Zhang  &lt;qi.2.zhang@nokia.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        [Qt] Failed at http://philip.html5.org/tests/canvas/suite/tests/2d.path.arcTo.transformation.html
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=38598
&gt; +
&gt; +        In path transform function handle path only have moveElement case.
&gt; +
&gt; +        * platform/graphics/qt/PathQt.cpp:
&gt; +        (WebCore::Path::transform):
&gt; +
&gt;  2010-05-05  Jian Li  &lt;jianli@chromium.org&gt;
&gt;  
&gt;          Reviewed by Adam Barth.
&gt; Index: WebCore/platform/graphics/qt/PathQt.cpp
&gt; ===================================================================
&gt; --- WebCore/platform/graphics/qt/PathQt.cpp	(revision 58768)
&gt; +++ WebCore/platform/graphics/qt/PathQt.cpp	(working copy)
&gt; @@ -412,7 +412,19 @@ void Path::apply(void* info, PathApplier
&gt;  
&gt;  void Path::transform(const AffineTransform&amp; transform)
&gt;  {
&gt; -    m_path = QTransform(transform).map(m_path);
&gt; +    QTransform qTransform(transform);
&gt; +
&gt; +    // QTransform.map doesn&apos;t handle the MoveTo element because of the isEmpty issue
&gt; +    if (m_path.isEmpty()) {
&gt; +        for (int i = 0; i &lt; m_path.elementCount(); ++i) {
&gt; +            QPainterPath::Element &amp;e = (QPainterPath::Element &amp;)m_path.elementAt(i);
&gt; +            QPointF tPoint = qTransform.map(QPointF(e.x, e.y));
&gt; +            e.x = tPoint.x();
&gt; +            e.y = tPoint.y();
&gt; +        }
&gt; +    } else {
&gt; +        m_path =qTransform.map(m_path);
&gt; +    }
&gt;  }
&gt;  
&gt;  }
WebCore/platform/graphics/qt/PathQt.cpp:425
 +      } else {
Style error.  No { } around single line clauses last I knew.

WebCore/platform/graphics/qt/PathQt.cpp:420
 +              QPainterPath::Element &amp;e = (QPainterPath::Element &amp;)m_path.elementAt(i);
Style error, no space before &amp;.

WebCore/platform/graphics/qt/PathQt.cpp:420
 +              QPainterPath::Element &amp;e = (QPainterPath::Element &amp;)m_path.elementAt(i);
no c-style casts in c++ code.

WebCore/platform/graphics/qt/PathQt.cpp:426
 +          m_path =qTransform.map(m_path);
Style.  spaces around =

Otherwise looks OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221472</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-05 21:48:27 -0700</bug_when>
    <thetext>check-webkit-style completely failed on this patch.  I wonder if CWS is just broken these days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221501</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-05-05 22:15:31 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; check-webkit-style completely failed on this patch.  I wonder if CWS is just
&gt; broken these days.

I double-checked this patch.  It genuinely doesn&apos;t find any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221503</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-05 22:20:37 -0700</bug_when>
    <thetext>It seems at least the missing spaces around = should be an obvious error in our c++ checker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221506</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-05-05 22:25:57 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; It seems at least the missing spaces around = should be an obvious error in our
&gt; c++ checker.

I agree.  It looks like it&apos;s only triggered if both sides lack a space:

http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/style/checkers/cpp.py?rev=58852#L1301</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221634</commentid>
    <comment_count>7</comment_count>
      <attachid>55230</attachid>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2010-05-06 06:11:36 -0700</bug_when>
    <thetext>Created attachment 55230
patch2

add a space after &quot;=&quot; to fix the style issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221666</commentid>
    <comment_count>8</comment_count>
      <attachid>55230</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-06 07:23:57 -0700</bug_when>
    <thetext>Comment on attachment 55230
patch2

     } else {
         m_path = qTransform.map(m_path);WebCore/platform/graphics/qt/PathQt.cpp:427
     }

This is wrong coding style; should not have braces.

WebCore/platform/graphics/qt/PathQt.cpp:420
 +              QPainterPath::Element &amp;e = (QPainterPath::Element &amp;)m_path.elementAt(i);
&amp; is aligned wrongly. Should be QPainterPath::Element&amp; e = (QPainterPath::Element&amp;) m_path.elementAt(i);

And also we dis-encourage C style casts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221669</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-06 07:31:10 -0700</bug_when>
    <thetext>http://webkit.org/coding/coding-style.html

check-webkit-style (which is also automatically run for you by the style bot when you upload a patch) will catch many style errors, but not all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221704</commentid>
    <comment_count>10</comment_count>
      <attachid>55244</attachid>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2010-05-06 08:49:33 -0700</bug_when>
    <thetext>Created attachment 55244
patch3

fix style issue.
By the way, how can I find the error message for this style check?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227713</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-05-19 00:00:35 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=55244) [details]
&gt; patch3
&gt; 
&gt; fix style issue.
&gt; By the way, how can I find the error message for this style check?

Do we have a test in our LayoutTests for this bug? If not, you should add a regression test. See LayoutTests/fast/canvas/script-tests. You can create the HTML files with the script WebKitTools/Scripts/make-script-test-wrappers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232461</commentid>
    <comment_count>12</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-05-31 10:56:47 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Do we have a test in our LayoutTests for this bug? If not, you should add a regression test. See LayoutTests/fast/canvas/script-tests. You can create the HTML files with the script WebKitTools/Scripts/make-script-test-wrappers.

Yes, Philip&apos;s test cases was landed, see https://bugs.webkit.org/show_bug.cgi?id=20553 for details.

I tested the patch, and it fixes 3 test cases: (without any regression)
- canvas/philip/tests/2d.path.arcTo.scale.html
- canvas/philip/tests/2d.path.arcTo.transformation.html
- canvas/philip/tests/2d.path.transformation.changing.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233377</commentid>
    <comment_count>13</comment_count>
      <attachid>57677</attachid>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2010-06-02 11:57:39 -0700</bug_when>
    <thetext>Created attachment 57677
patch4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233378</commentid>
    <comment_count>14</comment_count>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2010-06-02 11:58:17 -0700</bug_when>
    <thetext>Repatch to enable 
- canvas/philip/tests/2d.path.arcTo.scale.html
- canvas/philip/tests/2d.path.arcTo.transformation.html
- canvas/philip/tests/2d.path.transformation.changing.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233379</commentid>
    <comment_count>15</comment_count>
      <attachid>57678</attachid>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2010-06-02 12:08:46 -0700</bug_when>
    <thetext>Created attachment 57678
patch5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233667</commentid>
    <comment_count>16</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-06-03 01:45:19 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Created an attachment (id=57678) [details]
&gt; patch5

I have a question to your patch. I guess you added the loop because a user can add moveTo mutliple times. IIRC the first moveTo&apos;s don&apos;t have any affect on the actual drawing. Can&apos;t you just read the last element, read the x,y values, transform them with your qTransform and call Path::moveTo(const FloatPoint&amp; point)?
It might also be better not to transform the given transform, but use the AffineTransform logic directly. This way you can omit your const_cast.

int countElements = m_path.elementCount();
if (m_path.isEmpty() &amp;&amp; countElements) {
        const QPainterPath::Element&amp; e = m_path.elementAt(countElements - 1);
        FloatPoint point(e.x, e.y);
        transform.map(point);
        moveTo(point);
} else 
        m_path = QTransform(transform).map(m_path);

or just take currentPosition():

QTransform qTransform(transform);
if (m_path.isEmpty() &amp;&amp; m_path.elementCount()) {
     QPointF point = qTransform.map(m_path.currentPosition());
     m_path.moveTo(point);
} else
     m_path = qTransform.map(m_path);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233743</commentid>
    <comment_count>17</comment_count>
      <attachid>57763</attachid>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2010-06-03 06:48:07 -0700</bug_when>
    <thetext>Created attachment 57763
patch6

Based on Dirk&apos;s comment, create a new patch.

Dirk, I agree that we just need transform the last moveTo element, but in this solution, we add a additional moveTo element instead of translating the last moveTo element, is it possible add risk?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234226</commentid>
    <comment_count>18</comment_count>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2010-06-04 08:25:52 -0700</bug_when>
    <thetext>Dirk has a idea to remove unneed moveTo element at the beginner of the path, I am not sure it is safe or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234750</commentid>
    <comment_count>19</comment_count>
      <attachid>57763</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-06-07 02:49:16 -0700</bug_when>
    <thetext>Comment on attachment 57763
patch6

This is really a Qt bug. I&apos;ve filed a bug at http://bugreports.qt.nokia.com/browse/QTBUG-11264 and fixed it. The fix will be in Qt 4.7.0.

I&apos;m okay with landing a workaround in WebKit, but please surround it with

#if QT_VERSION &lt; QT_VERSION_CHECK(4, 7, 0)

and add a comment like this:

// Workaround for http://bugreports.qt.nokia.com/browse/QTBUG-11264</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234845</commentid>
    <comment_count>20</comment_count>
      <attachid>58028</attachid>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2010-06-07 07:39:38 -0700</bug_when>
    <thetext>Created attachment 58028
patch7

Minor change based on Simon&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235310</commentid>
    <comment_count>21</comment_count>
      <attachid>58149</attachid>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2010-06-08 10:13:38 -0700</bug_when>
    <thetext>Created attachment 58149
patch8

Repatch to solve conflict.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235847</commentid>
    <comment_count>22</comment_count>
      <attachid>58149</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2010-06-09 10:08:52 -0700</bug_when>
    <thetext>Comment on attachment 58149
patch8

lgtm, r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235890</commentid>
    <comment_count>23</comment_count>
      <attachid>58028</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-09 11:16:58 -0700</bug_when>
    <thetext>Comment on attachment 58028
patch7

Cleared Simon Hausmann&apos;s review+ from obsolete attachment 58028 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236143</commentid>
    <comment_count>24</comment_count>
      <attachid>58149</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-09 20:48:00 -0700</bug_when>
    <thetext>Comment on attachment 58149
patch8

Clearing flags on attachment: 58149

Committed r60933: &lt;http://trac.webkit.org/changeset/60933&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236144</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-09 20:48:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55141</attachid>
            <date>2010-05-05 12:20:24 -0700</date>
            <delta_ts>2010-06-02 11:57:39 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug38598.patch</filename>
            <type>text/plain</type>
            <size>1593</size>
            <attacher name="qi">qi.2.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODgzMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDUtMDUgIFFpIFpoYW5nICA8cWkuMi56aGFuZ0Bub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0
XSBGYWlsZWQgYXQgaHR0cDovL3BoaWxpcC5odG1sNS5vcmcvdGVzdHMvY2FudmFzL3N1aXRlL3Rl
c3RzLzJkLnBhdGguYXJjVG8udHJhbnNmb3JtYXRpb24uaHRtbAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg1OTgKKworICAgICAgICBJbiBwYXRoIHRy
YW5zZm9ybSBmdW5jdGlvbiBoYW5kbGUgcGF0aCBvbmx5IGhhdmUgbW92ZUVsZW1lbnQgY2FzZS4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYXRoOjp0cmFuc2Zvcm0pOgorCiAyMDEwLTA1LTA1ICBKaWFuIExpICA8amlhbmxp
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9QYXRoUXQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvUGF0aFF0LmNwcAkocmV2aXNpb24gNTg3NjgpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQxMiw3ICs0MTIsMTkgQEAgdm9pZCBQYXRoOjphcHBseSh2b2lkKiBpbmZvLCBQYXRoQXBw
bGllcgogCiB2b2lkIFBhdGg6OnRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5z
Zm9ybSkKIHsKLSAgICBtX3BhdGggPSBRVHJhbnNmb3JtKHRyYW5zZm9ybSkubWFwKG1fcGF0aCk7
CisgICAgUVRyYW5zZm9ybSBxVHJhbnNmb3JtKHRyYW5zZm9ybSk7CisKKyAgICAvLyBRVHJhbnNm
b3JtLm1hcCBkb2Vzbid0IGhhbmRsZSB0aGUgTW92ZVRvIGVsZW1lbnQgYmVjYXVzZSBvZiB0aGUg
aXNFbXB0eSBpc3N1ZQorICAgIGlmIChtX3BhdGguaXNFbXB0eSgpKSB7CisgICAgICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgbV9wYXRoLmVsZW1lbnRDb3VudCgpOyArK2kpIHsKKyAgICAgICAgICAg
IFFQYWludGVyUGF0aDo6RWxlbWVudCAmZSA9IChRUGFpbnRlclBhdGg6OkVsZW1lbnQgJiltX3Bh
dGguZWxlbWVudEF0KGkpOworICAgICAgICAgICAgUVBvaW50RiB0UG9pbnQgPSBxVHJhbnNmb3Jt
Lm1hcChRUG9pbnRGKGUueCwgZS55KSk7CisgICAgICAgICAgICBlLnggPSB0UG9pbnQueCgpOwor
ICAgICAgICAgICAgZS55ID0gdFBvaW50LnkoKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7Cisg
ICAgICAgIG1fcGF0aCA9cVRyYW5zZm9ybS5tYXAobV9wYXRoKTsKKyAgICB9CiB9CiAKIH0K
</data>
<flag name="review"
          id="39254"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55230</attachid>
            <date>2010-05-06 06:11:36 -0700</date>
            <delta_ts>2010-05-06 08:32:40 -0700</delta_ts>
            <desc>patch2</desc>
            <filename>bug38598_2.patch</filename>
            <type>text/plain</type>
            <size>1601</size>
            <attacher name="qi">qi.2.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODg3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDUtMDYgIFFpIFpoYW5nICA8cWkuMi56aGFuZ0Bub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0
XSBGYWlsZWQgYXQgaHR0cDovL3BoaWxpcC5odG1sNS5vcmcvdGVzdHMvY2FudmFzL3N1aXRlL3Rl
c3RzLzJkLnBhdGguYXJjVG8udHJhbnNmb3JtYXRpb24uaHRtbAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg1OTgKKworICAgICAgICBJbiBwYXRoIHRy
YW5zZm9ybSBmdW5jdGlvbiBoYW5kbGUgcGF0aCBvbmx5IGhhdmUgbW92ZUVsZW1lbnQgY2FzZS4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYXRoOjp0cmFuc2Zvcm0pOgorCiAyMDEwLTA1LTA1ICBBbGVqYW5kcm8gRy4gQ2Fz
dHJvICA8YWxleEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4K
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvUGF0aFF0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHAJKHJldmlzaW9uIDU4
NzY4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9QYXRoUXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00MTIsNyArNDEyLDE5IEBAIHZvaWQgUGF0aDo6YXBwbHkodm9pZCogaW5mbywg
UGF0aEFwcGxpZXIKIAogdm9pZCBQYXRoOjp0cmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiB0cmFuc2Zvcm0pCiB7Ci0gICAgbV9wYXRoID0gUVRyYW5zZm9ybSh0cmFuc2Zvcm0pLm1hcCht
X3BhdGgpOworICAgIFFUcmFuc2Zvcm0gcVRyYW5zZm9ybSh0cmFuc2Zvcm0pOworCisgICAgLy8g
UVRyYW5zZm9ybS5tYXAgZG9lc24ndCBoYW5kbGUgdGhlIE1vdmVUbyBlbGVtZW50IGJlY2F1c2Ug
b2YgdGhlIGlzRW1wdHkgaXNzdWUKKyAgICBpZiAobV9wYXRoLmlzRW1wdHkoKSkgeworICAgICAg
ICBmb3IgKGludCBpID0gMDsgaSA8IG1fcGF0aC5lbGVtZW50Q291bnQoKTsgKytpKSB7CisgICAg
ICAgICAgICBRUGFpbnRlclBhdGg6OkVsZW1lbnQgJmUgPSAoUVBhaW50ZXJQYXRoOjpFbGVtZW50
ICYpbV9wYXRoLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIFFQb2ludEYgdFBvaW50ID0gcVRy
YW5zZm9ybS5tYXAoUVBvaW50RihlLngsIGUueSkpOworICAgICAgICAgICAgZS54ID0gdFBvaW50
LngoKTsKKyAgICAgICAgICAgIGUueSA9IHRQb2ludC55KCk7CisgICAgICAgIH0KKyAgICB9IGVs
c2UgeworICAgICAgICBtX3BhdGggPSBxVHJhbnNmb3JtLm1hcChtX3BhdGgpOworICAgIH0KIH0K
IAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55244</attachid>
            <date>2010-05-06 08:49:33 -0700</date>
            <delta_ts>2010-06-02 11:57:39 -0700</delta_ts>
            <desc>patch3</desc>
            <filename>bug38598_3.patch</filename>
            <type>text/plain</type>
            <size>1610</size>
            <attacher name="qi">qi.2.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODg4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDUtMDYgIFFpIFpoYW5nICA8cWkuMi56aGFuZ0Bub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0
XSBGYWlsZWQgYXQgaHR0cDovL3BoaWxpcC5odG1sNS5vcmcvdGVzdHMvY2FudmFzL3N1aXRlL3Rl
c3RzLzJkLnBhdGguYXJjVG8udHJhbnNmb3JtYXRpb24uaHRtbAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg1OTgKKworICAgICAgICBJbiBwYXRoIHRy
YW5zZm9ybSBmdW5jdGlvbiBoYW5kbGUgcGF0aCBvbmx5IGhhdmUgbW92ZUVsZW1lbnQgY2FzZS4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYXRoOjp0cmFuc2Zvcm0pOgorCiAyMDEwLTA1LTA2ICBNaWtoYWlsIE5hZ2Fub3Yg
IDxtbmFnYW5vdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVs
ZG1hbi4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvUGF0aFF0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHAJKHJldmlz
aW9uIDU4NzY4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9QYXRoUXQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00MTIsNyArNDEyLDE4IEBAIHZvaWQgUGF0aDo6YXBwbHkodm9pZCog
aW5mbywgUGF0aEFwcGxpZXIKIAogdm9pZCBQYXRoOjp0cmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiB0cmFuc2Zvcm0pCiB7Ci0gICAgbV9wYXRoID0gUVRyYW5zZm9ybSh0cmFuc2Zvcm0p
Lm1hcChtX3BhdGgpOworICAgIFFUcmFuc2Zvcm0gcVRyYW5zZm9ybSh0cmFuc2Zvcm0pOworCisg
ICAgLy8gUVRyYW5zZm9ybS5tYXAgZG9lc24ndCBoYW5kbGUgdGhlIE1vdmVUbyBlbGVtZW50IGJl
Y2F1c2Ugb2YgdGhlIGlzRW1wdHkgaXNzdWUKKyAgICBpZiAobV9wYXRoLmlzRW1wdHkoKSkgewor
ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fcGF0aC5lbGVtZW50Q291bnQoKTsgKytpKSB7
CisgICAgICAgICAgICBRUGFpbnRlclBhdGg6OkVsZW1lbnQmIGUgPSBjb25zdF9jYXN0PFFQYWlu
dGVyUGF0aDo6RWxlbWVudCY+KG1fcGF0aC5lbGVtZW50QXQoaSkpOworICAgICAgICAgICAgUVBv
aW50RiB0UG9pbnQgPSBxVHJhbnNmb3JtLm1hcChRUG9pbnRGKGUueCwgZS55KSk7CisgICAgICAg
ICAgICBlLnggPSB0UG9pbnQueCgpOworICAgICAgICAgICAgZS55ID0gdFBvaW50LnkoKTsKKyAg
ICAgICAgfQorICAgIH0gZWxzZSAKKyAgICAgICAgbV9wYXRoID0gcVRyYW5zZm9ybS5tYXAobV9w
YXRoKTsKIH0KIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>57677</attachid>
            <date>2010-06-02 11:57:39 -0700</date>
            <delta_ts>2010-06-02 11:59:17 -0700</delta_ts>
            <desc>patch4</desc>
            <filename>bug38598_4.patch</filename>
            <type>text/plain</type>
            <size>3690</size>
            <attacher name="qi">qi.2.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDU3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDYtMDIgIFFpIFpoYW5nICA8cWkuMi56aGFuZ0Bub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0
XSBGYWlsZWQgYXQgaHR0cDovL3BoaWxpcC5odG1sNS5vcmcvdGVzdHMvY2FudmFzL3N1aXRlL3Rl
c3RzLzJkLnBhdGguYXJjVG8udHJhbnNmb3JtYXRpb24uaHRtbAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg1OTgKKworICAgICAgICBJbiBwYXRoIHRy
YW5zZm9ybSBmdW5jdGlvbiBoYW5kbGUgcGF0aCBvbmx5IGhhdmUgbW92ZUVsZW1lbnQgY2FzZS4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYXRoOjp0cmFuc2Zvcm0pOgorCiAyMDEwLTA2LTAyICBOYXRlIENoYXBpbiAgPGph
cGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292
LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9QYXRoUXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvUGF0aFF0LmNwcAkocmV2aXNpb24g
NjA1NjEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQxMyw3ICs0MTMsMTggQEAgdm9pZCBQYXRoOjphcHBseSh2b2lkKiBpbmZv
LCBQYXRoQXBwbGllcgogCiB2b2lkIFBhdGg6OnRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zv
cm0mIHRyYW5zZm9ybSkKIHsKLSAgICBtX3BhdGggPSBRVHJhbnNmb3JtKHRyYW5zZm9ybSkubWFw
KG1fcGF0aCk7CisgICAgUVRyYW5zZm9ybSBxVHJhbnNmb3JtKHRyYW5zZm9ybSk7CisKKyAgICAv
LyBRVHJhbnNmb3JtLm1hcCBkb2Vzbid0IGhhbmRsZSB0aGUgTW92ZVRvIGVsZW1lbnQgYmVjYXVz
ZSBvZiB0aGUgaXNFbXB0eSBpc3N1ZQorICAgIGlmIChtX3BhdGguaXNFbXB0eSgpKSB7CisgICAg
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9wYXRoLmVsZW1lbnRDb3VudCgpOyArK2kpIHsKKyAg
ICAgICAgICAgIFFQYWludGVyUGF0aDo6RWxlbWVudCYgZSA9IGNvbnN0X2Nhc3Q8UVBhaW50ZXJQ
YXRoOjpFbGVtZW50Jj4obV9wYXRoLmVsZW1lbnRBdChpKSk7CisgICAgICAgICAgICBRUG9pbnRG
IHRQb2ludCA9IHFUcmFuc2Zvcm0ubWFwKFFQb2ludEYoZS54LCBlLnkpKTsKKyAgICAgICAgICAg
IGUueCA9IHRQb2ludC54KCk7CisgICAgICAgICAgICBlLnkgPSB0UG9pbnQueSgpOworICAgICAg
ICB9CisgICAgfSBlbHNlIAorICAgICAgICBtX3BhdGggPSBxVHJhbnNmb3JtLm1hcChtX3BhdGgp
OwogfQogCiB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2MDU3MCkKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA2LTAyICBRaSBaaGFu
ZyAgPHFpLjIuemhhbmdAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtRdF0gRmFpbGVkIGF0IGh0dHA6Ly9waGlsaXAuaHRtbDUub3Jn
L3Rlc3RzL2NhbnZhcy9zdWl0ZS90ZXN0cy8yZC5wYXRoLmFyY1RvLnRyYW5zZm9ybWF0aW9uLmh0
bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NTk4
CisKKyAgICAgICAgUmVtb3ZlIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5hcmNUby5zY2Fs
ZS5odG1sLCBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguYXJjVG8udHJhbnNmb3JtYXRpb24u
aHRtbAorICAgICAgICBhbmQgY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLnRyYW5zZm9ybWF0
aW9uLmNoYW5naW5nLmh0bWwgZnJvbSBTa2lwcGVkLgorCisgICAgICAgICogcGxhdGZvcm0vcXQv
U2tpcHBlZDoKKwogMjAxMC0wNi0wMiAgTWlraGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1NraXBwZWQJKHJldmlzaW9uIDYwNTYxKQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNTE0MSw4ICs1MTQxLDggQEAgY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLmFyYy56ZXJvcmFkaQogY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5wYXRoLmFyY1RvLmNvbGxpbmVhci4yLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQu
cGF0aC5hcmNUby5jb2xsaW5lYXIuMy5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGgu
YXJjVG8uZW5zdXJlc3VicGF0aC4xLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5h
cmNUby5zY2FsZS5odG1sCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguYXJjVG8udHJhbnNm
b3JtYXRpb24uaHRtbAorI2NhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5hcmNUby5zY2FsZS5o
dG1sCisjY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLmFyY1RvLnRyYW5zZm9ybWF0aW9uLmh0
bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5iZXppZXJDdXJ2ZVRvLmVuc3VyZXN1YnBh
dGguMi5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGgucXVhZHJhdGljQ3VydmVUby5l
bnN1cmVzdWJwYXRoLjIuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLnF1YWRyYXRp
Y0N1cnZlVG8uc2NhbGVkLmh0bWwKQEAgLTUxNTIsNyArNTE1Miw3IEBAIGNhbnZhcy9waGlsaXAv
dGVzdHMvMmQucGF0aC5yZWN0Lnplcm8uNC4KIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5y
ZWN0Lnplcm8uNi5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguc3Ryb2tlLnBydW5l
LmFyYy5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguc3Ryb2tlLnNjYWxlMi5odG1s
Ci1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGgudHJhbnNmb3JtYXRpb24uY2hhbmdpbmcuaHRt
bAorI2NhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC50cmFuc2Zvcm1hdGlvbi5jaGFuZ2luZy5o
dG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uYmFzaWMudHlwZS5odG1sCiBjYW52
YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uaW1hZ2UuYnJva2VuLmh0bWwKIGNhbnZhcy9waGls
aXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5pbmNvbXBsZXRlLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>57678</attachid>
            <date>2010-06-02 12:08:46 -0700</date>
            <delta_ts>2010-06-03 06:48:25 -0700</delta_ts>
            <desc>patch5</desc>
            <filename>bug38598_5.patch</filename>
            <type>text/plain</type>
            <size>3528</size>
            <attacher name="qi">qi.2.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDU3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDYtMDIgIFFpIFpoYW5nICA8cWkuMi56aGFuZ0Bub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0
XSBGYWlsZWQgYXQgaHR0cDovL3BoaWxpcC5odG1sNS5vcmcvdGVzdHMvY2FudmFzL3N1aXRlL3Rl
c3RzLzJkLnBhdGguYXJjVG8udHJhbnNmb3JtYXRpb24uaHRtbAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg1OTgKKworICAgICAgICBJbiBwYXRoIHRy
YW5zZm9ybSBmdW5jdGlvbiBoYW5kbGUgcGF0aCBvbmx5IGhhdmUgbW92ZUVsZW1lbnQgY2FzZS4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYXRoOjp0cmFuc2Zvcm0pOgorCiAyMDEwLTA2LTAyICBOYXRlIENoYXBpbiAgPGph
cGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292
LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9QYXRoUXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvUGF0aFF0LmNwcAkocmV2aXNpb24g
NjA1NjEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQxMyw3ICs0MTMsMTggQEAgdm9pZCBQYXRoOjphcHBseSh2b2lkKiBpbmZv
LCBQYXRoQXBwbGllcgogCiB2b2lkIFBhdGg6OnRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zv
cm0mIHRyYW5zZm9ybSkKIHsKLSAgICBtX3BhdGggPSBRVHJhbnNmb3JtKHRyYW5zZm9ybSkubWFw
KG1fcGF0aCk7CisgICAgUVRyYW5zZm9ybSBxVHJhbnNmb3JtKHRyYW5zZm9ybSk7CisKKyAgICAv
LyBRVHJhbnNmb3JtLm1hcCBkb2Vzbid0IGhhbmRsZSB0aGUgTW92ZVRvIGVsZW1lbnQgYmVjYXVz
ZSBvZiB0aGUgaXNFbXB0eSBpc3N1ZQorICAgIGlmIChtX3BhdGguaXNFbXB0eSgpKSB7CisgICAg
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9wYXRoLmVsZW1lbnRDb3VudCgpOyArK2kpIHsKKyAg
ICAgICAgICAgIFFQYWludGVyUGF0aDo6RWxlbWVudCYgZSA9IGNvbnN0X2Nhc3Q8UVBhaW50ZXJQ
YXRoOjpFbGVtZW50Jj4obV9wYXRoLmVsZW1lbnRBdChpKSk7CisgICAgICAgICAgICBRUG9pbnRG
IHRQb2ludCA9IHFUcmFuc2Zvcm0ubWFwKFFQb2ludEYoZS54LCBlLnkpKTsKKyAgICAgICAgICAg
IGUueCA9IHRQb2ludC54KCk7CisgICAgICAgICAgICBlLnkgPSB0UG9pbnQueSgpOworICAgICAg
ICB9CisgICAgfSBlbHNlIAorICAgICAgICBtX3BhdGggPSBxVHJhbnNmb3JtLm1hcChtX3BhdGgp
OwogfQogCiB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2MDU3MCkKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA2LTAyICBRaSBaaGFu
ZyAgPHFpLjIuemhhbmdAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtRdF0gRmFpbGVkIGF0IGh0dHA6Ly9waGlsaXAuaHRtbDUub3Jn
L3Rlc3RzL2NhbnZhcy9zdWl0ZS90ZXN0cy8yZC5wYXRoLmFyY1RvLnRyYW5zZm9ybWF0aW9uLmh0
bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NTk4
CisKKyAgICAgICAgUmVtb3ZlIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5hcmNUby5zY2Fs
ZS5odG1sLCBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguYXJjVG8udHJhbnNmb3JtYXRpb24u
aHRtbAorICAgICAgICBhbmQgY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLnRyYW5zZm9ybWF0
aW9uLmNoYW5naW5nLmh0bWwgZnJvbSBTa2lwcGVkLgorCisgICAgICAgICogcGxhdGZvcm0vcXQv
U2tpcHBlZDoKKwogMjAxMC0wNi0wMiAgTWlraGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1NraXBwZWQJKHJldmlzaW9uIDYwNTYxKQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNTE0MSw4ICs1MTQxLDYgQEAgY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLmFyYy56ZXJvcmFkaQogY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5wYXRoLmFyY1RvLmNvbGxpbmVhci4yLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQu
cGF0aC5hcmNUby5jb2xsaW5lYXIuMy5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGgu
YXJjVG8uZW5zdXJlc3VicGF0aC4xLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5h
cmNUby5zY2FsZS5odG1sCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguYXJjVG8udHJhbnNm
b3JtYXRpb24uaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLmJlemllckN1cnZlVG8u
ZW5zdXJlc3VicGF0aC4yLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5xdWFkcmF0
aWNDdXJ2ZVRvLmVuc3VyZXN1YnBhdGguMi5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBh
dGgucXVhZHJhdGljQ3VydmVUby5zY2FsZWQuaHRtbApAQCAtNTE1Miw3ICs1MTUwLDYgQEAgY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLnJlY3QuemVyby40LgogY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5wYXRoLnJlY3QuemVyby42Lmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5z
dHJva2UucHJ1bmUuYXJjLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5zdHJva2Uu
c2NhbGUyLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC50cmFuc2Zvcm1hdGlvbi5j
aGFuZ2luZy5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uYmFzaWMudHlwZS5o
dG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uaW1hZ2UuYnJva2VuLmh0bWwKIGNh
bnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5pbmNvbXBsZXRlLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57763</attachid>
            <date>2010-06-03 06:48:07 -0700</date>
            <delta_ts>2010-06-07 07:39:38 -0700</delta_ts>
            <desc>patch6</desc>
            <filename>bug38598_6.patch</filename>
            <type>text/plain</type>
            <size>3357</size>
            <attacher name="qi">qi.2.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDU3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDYtMDIgIFFpIFpoYW5nICA8cWkuMi56aGFuZ0Bub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0
XSBGYWlsZWQgYXQgaHR0cDovL3BoaWxpcC5odG1sNS5vcmcvdGVzdHMvY2FudmFzL3N1aXRlL3Rl
c3RzLzJkLnBhdGguYXJjVG8udHJhbnNmb3JtYXRpb24uaHRtbAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg1OTgKKworICAgICAgICBJbiBwYXRoIHRy
YW5zZm9ybSBmdW5jdGlvbiBoYW5kbGUgcGF0aCBvbmx5IGhhdmUgbW92ZUVsZW1lbnQgY2FzZS4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYXRoOjp0cmFuc2Zvcm0pOgorCiAyMDEwLTA2LTAyICBOYXRlIENoYXBpbiAgPGph
cGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292
LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9QYXRoUXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvUGF0aFF0LmNwcAkocmV2aXNpb24g
NjA1NjEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQxMyw3ICs0MTMsMTQgQEAgdm9pZCBQYXRoOjphcHBseSh2b2lkKiBpbmZv
LCBQYXRoQXBwbGllcgogCiB2b2lkIFBhdGg6OnRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zv
cm0mIHRyYW5zZm9ybSkKIHsKLSAgICBtX3BhdGggPSBRVHJhbnNmb3JtKHRyYW5zZm9ybSkubWFw
KG1fcGF0aCk7CisgICAgUVRyYW5zZm9ybSBxVHJhbnNmb3JtKHRyYW5zZm9ybSk7CisKKyAgICAv
LyBRVHJhbnNmb3JtLm1hcCBkb2Vzbid0IGhhbmRsZSB0aGUgTW92ZVRvIGVsZW1lbnQgYmVjYXVz
ZSBvZiB0aGUgaXNFbXB0eSBpc3N1ZQorICAgIGlmIChtX3BhdGguaXNFbXB0eSgpICYmIG1fcGF0
aC5lbGVtZW50Q291bnQoKSkgeworICAgICAgICBRUG9pbnRGIHBvaW50ID0gcVRyYW5zZm9ybS5t
YXAobV9wYXRoLmN1cnJlbnRQb3NpdGlvbigpKTsKKyAgICAgICAgbV9wYXRoLm1vdmVUbyhwb2lu
dCk7CisgICAgfSBlbHNlIAorICAgICAgICBtX3BhdGggPSBxVHJhbnNmb3JtLm1hcChtX3BhdGgp
OwogfQogCiB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2MDU3MCkKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA2LTAyICBRaSBaaGFu
ZyAgPHFpLjIuemhhbmdAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtRdF0gRmFpbGVkIGF0IGh0dHA6Ly9waGlsaXAuaHRtbDUub3Jn
L3Rlc3RzL2NhbnZhcy9zdWl0ZS90ZXN0cy8yZC5wYXRoLmFyY1RvLnRyYW5zZm9ybWF0aW9uLmh0
bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NTk4
CisKKyAgICAgICAgUmVtb3ZlIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5hcmNUby5zY2Fs
ZS5odG1sLCBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguYXJjVG8udHJhbnNmb3JtYXRpb24u
aHRtbAorICAgICAgICBhbmQgY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLnRyYW5zZm9ybWF0
aW9uLmNoYW5naW5nLmh0bWwgZnJvbSBTa2lwcGVkLgorCisgICAgICAgICogcGxhdGZvcm0vcXQv
U2tpcHBlZDoKKwogMjAxMC0wNi0wMiAgTWlraGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1NraXBwZWQJKHJldmlzaW9uIDYwNTYxKQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNTE0MSw4ICs1MTQxLDYgQEAgY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLmFyYy56ZXJvcmFkaQogY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5wYXRoLmFyY1RvLmNvbGxpbmVhci4yLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQu
cGF0aC5hcmNUby5jb2xsaW5lYXIuMy5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGgu
YXJjVG8uZW5zdXJlc3VicGF0aC4xLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5h
cmNUby5zY2FsZS5odG1sCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguYXJjVG8udHJhbnNm
b3JtYXRpb24uaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLmJlemllckN1cnZlVG8u
ZW5zdXJlc3VicGF0aC4yLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5xdWFkcmF0
aWNDdXJ2ZVRvLmVuc3VyZXN1YnBhdGguMi5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBh
dGgucXVhZHJhdGljQ3VydmVUby5zY2FsZWQuaHRtbApAQCAtNTE1Miw3ICs1MTUwLDYgQEAgY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLnJlY3QuemVyby40LgogY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5wYXRoLnJlY3QuemVyby42Lmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5z
dHJva2UucHJ1bmUuYXJjLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5zdHJva2Uu
c2NhbGUyLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC50cmFuc2Zvcm1hdGlvbi5j
aGFuZ2luZy5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uYmFzaWMudHlwZS5o
dG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uaW1hZ2UuYnJva2VuLmh0bWwKIGNh
bnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5pbmNvbXBsZXRlLmh0bWwK
</data>
<flag name="review"
          id="42408"
          type_id="1"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58028</attachid>
            <date>2010-06-07 07:39:38 -0700</date>
            <delta_ts>2010-06-09 11:16:57 -0700</delta_ts>
            <desc>patch7</desc>
            <filename>bug38598_7.patch</filename>
            <type>text/plain</type>
            <size>3479</size>
            <attacher name="qi">qi.2.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDc4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDYtMDcgIFFpIFpoYW5nICA8cWkuMi56aGFuZ0Bub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0
XSBGYWlsZWQgYXQgaHR0cDovL3BoaWxpcC5odG1sNS5vcmcvdGVzdHMvY2FudmFzL3N1aXRlL3Rl
c3RzLzJkLnBhdGguYXJjVG8udHJhbnNmb3JtYXRpb24uaHRtbAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg1OTgKKworICAgICAgICBJbiBwYXRoIHRy
YW5zZm9ybSBmdW5jdGlvbiBoYW5kbGUgcGF0aCBvbmx5IGhhdmUgbW92ZUVsZW1lbnQgY2FzZS4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYXRoOjp0cmFuc2Zvcm0pOgorCiAyMDEwLTA2LTA3ICBNYWhlc2ggS3VsYWtybmkg
IDxtYWhlc2gua3Vsa2FybmlAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEhhdXNtYW5uLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9QYXRoUXQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvUGF0aFF0LmNwcAko
cmV2aXNpb24gNjA2MjEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQxMyw3ICs0MTMsMTYgQEAgdm9pZCBQYXRoOjphcHBseSh2
b2lkKiBpbmZvLCBQYXRoQXBwbGllcgogCiB2b2lkIFBhdGg6OnRyYW5zZm9ybShjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSkKIHsKLSAgICBtX3BhdGggPSBRVHJhbnNmb3JtKHRyYW5z
Zm9ybSkubWFwKG1fcGF0aCk7CisgICAgUVRyYW5zZm9ybSBxVHJhbnNmb3JtKHRyYW5zZm9ybSk7
CisjaWYgUVRfVkVSU0lPTiA8IFFUX1ZFUlNJT05fQ0hFQ0soNCwgNywgMCkKKyAgICAvLyBXb3Jr
YXJvdW5kIGZvciBodHRwOi8vYnVncmVwb3J0cy5xdC5ub2tpYS5jb20vYnJvd3NlL1FUQlVHLTEx
MjY0CisgICAgLy8gUVRyYW5zZm9ybS5tYXAgZG9lc24ndCBoYW5kbGUgdGhlIE1vdmVUbyBlbGVt
ZW50IGJlY2F1c2Ugb2YgdGhlIGlzRW1wdHkgaXNzdWUKKyAgICBpZiAobV9wYXRoLmlzRW1wdHko
KSAmJiBtX3BhdGguZWxlbWVudENvdW50KCkpIHsKKyAgICAgICAgUVBvaW50RiBwb2ludCA9IHFU
cmFuc2Zvcm0ubWFwKG1fcGF0aC5jdXJyZW50UG9zaXRpb24oKSk7CisgICAgICAgIG1fcGF0aC5t
b3ZlVG8ocG9pbnQpOworICAgIH0gZWxzZSAKKyNlbmRpZgorICAgICAgICBtX3BhdGggPSBxVHJh
bnNmb3JtLm1hcChtX3BhdGgpOwogfQogCiB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2MDc4MCkKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisy
MDEwLTA2LTA3ICBRaSBaaGFuZyAgPHFpLjIuemhhbmdAbm9raWEuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRmFpbGVkIGF0IGh0dHA6
Ly9waGlsaXAuaHRtbDUub3JnL3Rlc3RzL2NhbnZhcy9zdWl0ZS90ZXN0cy8yZC5wYXRoLmFyY1Rv
LnRyYW5zZm9ybWF0aW9uLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM4NTk4CisKKyAgICAgICAgUmVtb3ZlIGNhbnZhcy9waGlsaXAvdGVzdHMv
MmQucGF0aC5hcmNUby5zY2FsZS5odG1sLCBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguYXJj
VG8udHJhbnNmb3JtYXRpb24uaHRtbAorICAgICAgICBhbmQgY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC5wYXRoLnRyYW5zZm9ybWF0aW9uLmNoYW5naW5nLmh0bWwgZnJvbSBTa2lwcGVkLgorCisgICAg
ICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMC0wNi0wNiAgTU9SSVRBIEhhamltZSAg
PG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4K
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkocmV2aXNpb24gNjA1NjEpCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC01MTQxLDggKzUxNDEs
NiBAQCBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguYXJjLnplcm9yYWRpCiBjYW52YXMvcGhp
bGlwL3Rlc3RzLzJkLnBhdGguYXJjVG8uY29sbGluZWFyLjIuaHRtbAogY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC5wYXRoLmFyY1RvLmNvbGxpbmVhci4zLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMv
MmQucGF0aC5hcmNUby5lbnN1cmVzdWJwYXRoLjEuaHRtbAotY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC5wYXRoLmFyY1RvLnNjYWxlLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5hcmNU
by50cmFuc2Zvcm1hdGlvbi5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguYmV6aWVy
Q3VydmVUby5lbnN1cmVzdWJwYXRoLjIuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRo
LnF1YWRyYXRpY0N1cnZlVG8uZW5zdXJlc3VicGF0aC4yLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVz
dHMvMmQucGF0aC5xdWFkcmF0aWNDdXJ2ZVRvLnNjYWxlZC5odG1sCkBAIC01MTUyLDcgKzUxNTAs
NiBAQCBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGgucmVjdC56ZXJvLjQuCiBjYW52YXMvcGhp
bGlwL3Rlc3RzLzJkLnBhdGgucmVjdC56ZXJvLjYuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC5wYXRoLnN0cm9rZS5wcnVuZS5hcmMuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRo
LnN0cm9rZS5zY2FsZTIuaHRtbAotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLnRyYW5zZm9y
bWF0aW9uLmNoYW5naW5nLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5iYXNp
Yy50eXBlLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5icm9rZW4u
aHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmluY29tcGxldGUuaHRt
bAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58149</attachid>
            <date>2010-06-08 10:13:38 -0700</date>
            <delta_ts>2010-06-09 20:48:00 -0700</delta_ts>
            <desc>patch8</desc>
            <filename>bug38598_8.patch</filename>
            <type>text/plain</type>
            <size>3500</size>
            <attacher name="qi">qi.2.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDg0NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDYtMDggIFFpIFpoYW5nICA8cWkuMi56aGFuZ0Bub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0
XSBGYWlsZWQgYXQgaHR0cDovL3BoaWxpcC5odG1sNS5vcmcvdGVzdHMvY2FudmFzL3N1aXRlL3Rl
c3RzLzJkLnBhdGguYXJjVG8udHJhbnNmb3JtYXRpb24uaHRtbAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg1OTgKKworICAgICAgICBJbiBwYXRoIHRy
YW5zZm9ybSBmdW5jdGlvbiBoYW5kbGUgcGF0aCBvbmx5IGhhdmUgbW92ZUVsZW1lbnQgY2FzZS4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYXRoOjp0cmFuc2Zvcm0pOgorCiAyMDEwLTA2LTA4ICBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbiAgPGtlbm5ldGguY2hyaXN0aWFuc2VuQG9wZW5ib3NzYS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L1BhdGhRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9QYXRoUXQuY3BwCShyZXZpc2lvbiA2MDg0MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvUGF0aFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDM0LDcgKzQzNCwxNiBA
QCB2b2lkIFBhdGg6OmFwcGx5KHZvaWQqIGluZm8sIFBhdGhBcHBsaWVyCiAKIHZvaWQgUGF0aDo6
dHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtKQogewotICAgIG1fcGF0
aCA9IFFUcmFuc2Zvcm0odHJhbnNmb3JtKS5tYXAobV9wYXRoKTsKKyAgICBRVHJhbnNmb3JtIHFU
cmFuc2Zvcm0odHJhbnNmb3JtKTsKKyNpZiBRVF9WRVJTSU9OIDwgUVRfVkVSU0lPTl9DSEVDSyg0
LCA3LCAwKQorICAgIC8vIFdvcmthcm91bmQgZm9yIGh0dHA6Ly9idWdyZXBvcnRzLnF0Lm5va2lh
LmNvbS9icm93c2UvUVRCVUctMTEyNjQKKyAgICAvLyBRVHJhbnNmb3JtLm1hcCBkb2Vzbid0IGhh
bmRsZSB0aGUgTW92ZVRvIGVsZW1lbnQgYmVjYXVzZSBvZiB0aGUgaXNFbXB0eSBpc3N1ZQorICAg
IGlmIChtX3BhdGguaXNFbXB0eSgpICYmIG1fcGF0aC5lbGVtZW50Q291bnQoKSkgeworICAgICAg
ICBRUG9pbnRGIHBvaW50ID0gcVRyYW5zZm9ybS5tYXAobV9wYXRoLmN1cnJlbnRQb3NpdGlvbigp
KTsKKyAgICAgICAgbV9wYXRoLm1vdmVUbyhwb2ludCk7CisgICAgfSBlbHNlIAorI2VuZGlmCisg
ICAgICAgIG1fcGF0aCA9IHFUcmFuc2Zvcm0ubWFwKG1fcGF0aCk7CiB9CiAKIH0KSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDYwODQ3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDYtMDggIFFpIFpoYW5nICA8cWkuMi56aGFuZ0Bub2tp
YS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
W1F0XSBGYWlsZWQgYXQgaHR0cDovL3BoaWxpcC5odG1sNS5vcmcvdGVzdHMvY2FudmFzL3N1aXRl
L3Rlc3RzLzJkLnBhdGguYXJjVG8udHJhbnNmb3JtYXRpb24uaHRtbAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg1OTgKKworICAgICAgICBSZW1vdmUg
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLmFyY1RvLnNjYWxlLmh0bWwsIGNhbnZhcy9waGls
aXAvdGVzdHMvMmQucGF0aC5hcmNUby50cmFuc2Zvcm1hdGlvbi5odG1sCisgICAgICAgIGFuZCBj
YW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGgudHJhbnNmb3JtYXRpb24uY2hhbmdpbmcuaHRtbCBm
cm9tIFNraXBwZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorCiAyMDEwLTA2
LTA4ICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFVucmV2aWV3ZWQ7IGV4cGVjdGF0aW9ucyBmaXguCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBw
ZWQJKHJldmlzaW9uIDYwODQxKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAko
d29ya2luZyBjb3B5KQpAQCAtNTI5MCw4ICs1MjkwLDYgQEAgY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC5taXNzaW5nYXJncy5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguYXJjLnR3b3Bp
ZS4zLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5hcmNUby5jb2xsaW5lYXIuMi5o
dG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguYXJjVG8uY29sbGluZWFyLjMuaHRtbAot
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLmFyY1RvLnNjYWxlLmh0bWwKLWNhbnZhcy9waGls
aXAvdGVzdHMvMmQucGF0aC5hcmNUby50cmFuc2Zvcm1hdGlvbi5odG1sCiBjYW52YXMvcGhpbGlw
L3Rlc3RzLzJkLnBhdGguYmV6aWVyQ3VydmVUby5lbnN1cmVzdWJwYXRoLjIuaHRtbAogY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC5wYXRoLnF1YWRyYXRpY0N1cnZlVG8uZW5zdXJlc3VicGF0aC4yLmh0
bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5xdWFkcmF0aWNDdXJ2ZVRvLnNjYWxlZC5o
dG1sCkBAIC01MzAxLDcgKzUyOTksNiBAQCBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGgucmVj
dC56ZXJvLjQuCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGgucmVjdC56ZXJvLjYuaHRtbAog
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLnN0cm9rZS5wcnVuZS5hcmMuaHRtbAogY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC5wYXRoLnN0cm9rZS5zY2FsZTIuaHRtbAotY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC5wYXRoLnRyYW5zZm9ybWF0aW9uLmNoYW5naW5nLmh0bWwKIGNhbnZhcy9waGlsaXAv
dGVzdHMvMmQucGF0dGVybi5iYXNpYy50eXBlLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQu
cGF0dGVybi5pbWFnZS5icm9rZW4uaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJu
LmltYWdlLmluY29tcGxldGUuaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>