<?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>62837</bug_id>
          
          <creation_ts>2011-06-16 18:13:49 -0700</creation_ts>
          <short_desc>[chromium]Optimize GraphicsLayerChromium::setChildren</short_desc>
          <delta_ts>2011-06-28 18:15:07 -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>Layout and Rendering</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="zeng huiqing">huiqing.zeng</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>eric</cc>
    
    <cc>huiqing.zeng</cc>
    
    <cc>jamesr</cc>
    
    <cc>kbr</cc>
    
    <cc>senorblanco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>422369</commentid>
    <comment_count>0</comment_count>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-06-16 18:13:49 -0700</bug_when>
    <thetext>The GraphicsLayerChromium::setChildren will call GraphicsLayer::setChildren, and it will call addChild() for each child, which will end up calling updateChildList() N times. This is potentially(N^2).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422456</commentid>
    <comment_count>1</comment_count>
      <attachid>97552</attachid>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-06-17 00:27:40 -0700</bug_when>
    <thetext>Created attachment 97552
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422458</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-17 00:30:43 -0700</bug_when>
    <thetext>Attachment 97552 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/ChangeLog:6:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422463</commentid>
    <comment_count>3</comment_count>
      <attachid>97554</attachid>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-06-17 00:43:31 -0700</bug_when>
    <thetext>Created attachment 97554
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422470</commentid>
    <comment_count>4</comment_count>
      <attachid>97556</attachid>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-06-17 00:52:33 -0700</bug_when>
    <thetext>Created attachment 97556
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426016</commentid>
    <comment_count>5</comment_count>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-06-23 01:35:53 -0700</bug_when>
    <thetext>For page load performance test, we find that while load a page that has 3D CSS transformation property, disable h/w accleration is 2x of enable h/w acceleration on chromium both on Linux and Win7.

Through analysis, we find the root cause is that with hardware acceleration enabled, when update the compositingLayers, the
GraphicsLayerChromium::setChildren will call GraphicsLayer::setChildren, and it will call addChild() for each child, which will end up calling updateChildList() N times. This is potentially(N^2).

The patch is to add an flag(m_setChildren)in class &apos;GraphicsLayerChromium&apos; to avoid the unnecessary call, and the gap between disable h/w and enable h/w becomes &lt; 10%.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426703</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-23 20:17:24 -0700</bug_when>
    <thetext>I assume this is only a problem for Chromium and not other platforms?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426704</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-23 20:26:42 -0700</bug_when>
    <thetext>Yeah. We used to have this issue on Windows/CA, but now share code with Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426725</commentid>
    <comment_count>8</comment_count>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-06-23 21:56:20 -0700</bug_when>
    <thetext>Have checked that qt&amp;gtk also don&apos;t have this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428071</commentid>
    <comment_count>9</comment_count>
      <attachid>97556</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-06-27 10:30:29 -0700</bug_when>
    <thetext>Comment on attachment 97556
Proposed patch

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

Thanks for the patch! This solution will fix the problem.  I do think that the GraphicsLayerChromium child management code needs some clean up and batching up pushes to the platform layers much like the CA implementation does would be nice.  However, I think this is a good intermediate solution.

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:133
&gt; +    m_setChildren = true;

Maybe using m_inSetChildren (instead of m_setChildren) would be more descriptive?

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:135
&gt;      // FIXME: GraphicsLayer::setChildren calls addChild() for each child, which

This fixme should be removed now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428094</commentid>
    <comment_count>10</comment_count>
      <attachid>97556</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-06-27 10:55:56 -0700</bug_when>
    <thetext>Comment on attachment 97556
Proposed patch

Per Vangelis&apos; review, it looks like this is close to being ready to land. Please submit a revised one and I&apos;ll gladly r+ it. (Also, please set the r? and cq? bits on the new patch.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428621</commentid>
    <comment_count>11</comment_count>
      <attachid>98856</attachid>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-06-27 21:53:15 -0700</bug_when>
    <thetext>Created attachment 98856
new patch

update the old patch according to Vangelis&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428646</commentid>
    <comment_count>12</comment_count>
      <attachid>98856</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-06-27 23:06:00 -0700</bug_when>
    <thetext>Comment on attachment 98856
new patch

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

one additional comments.. Otherwise looks good!

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:98
&gt; +    m_inSetChildren = false;

This should move up to the initializer list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428656</commentid>
    <comment_count>13</comment_count>
      <attachid>98864</attachid>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-06-27 23:32:32 -0700</bug_when>
    <thetext>Created attachment 98864
new patch

update the patch: move the &quot;m_inSetChildren = false&quot; to initializer list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428658</commentid>
    <comment_count>14</comment_count>
      <attachid>98864</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-06-27 23:38:08 -0700</bug_when>
    <thetext>Comment on attachment 98864
new patch

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

&gt; Source/WebCore/ChangeLog:16
&gt; +2011-06-27  Zeng Huiqing  &lt;huiqing.zeng@intel.com&gt;

Double changelog entry...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428666</commentid>
    <comment_count>15</comment_count>
      <attachid>98867</attachid>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-06-27 23:56:40 -0700</bug_when>
    <thetext>Created attachment 98867
newPatch

sorry for the double changelog entry, have removed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428984</commentid>
    <comment_count>16</comment_count>
      <attachid>98867</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-06-28 10:58:51 -0700</bug_when>
    <thetext>Comment on attachment 98867
newPatch

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

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:136
&gt;      // FIXME: GraphicsLayer::setChildren calls addChild() for each child, which
&gt;      // will end up calling updateChildList() N times.

You forgot to remove this FIXME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429236</commentid>
    <comment_count>17</comment_count>
      <attachid>98994</attachid>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-06-28 16:21:48 -0700</bug_when>
    <thetext>Created attachment 98994
newPatch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429240</commentid>
    <comment_count>18</comment_count>
      <attachid>98996</attachid>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-06-28 16:24:45 -0700</bug_when>
    <thetext>Created attachment 98996
newPatch 

new patch: remove the &apos;FIXME&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429250</commentid>
    <comment_count>19</comment_count>
      <attachid>98996</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-06-28 16:32:40 -0700</bug_when>
    <thetext>Comment on attachment 98996
newPatch 

Thanks, this last version looks good. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429315</commentid>
    <comment_count>20</comment_count>
      <attachid>98996</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-28 17:57:36 -0700</bug_when>
    <thetext>Comment on attachment 98996
newPatch 

Clearing flags on attachment: 98996

Committed r89980: &lt;http://trac.webkit.org/changeset/89980&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429316</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-28 17:57:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429338</commentid>
    <comment_count>22</comment_count>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-06-28 18:15:07 -0700</bug_when>
    <thetext>Thanks for the review.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97552</attachid>
            <date>2011-06-17 00:27:40 -0700</date>
            <delta_ts>2011-06-17 00:52:33 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>myPatch.txt</filename>
            <type>text/plain</type>
            <size>2799</size>
            <attacher name="zeng huiqing">huiqing.zeng</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODkxMjEpDQorKysgU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDE4IEBADQorMjAxMS0wNi0xNyAgWmVu
ZyBIdWlxaW5nICA8aHVpcWluZy56ZW5nQGludGVsLmNvbT4NCisNCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgW2Nocm9taXVtXU9wdGltaXplIHRoZSBm
dW5jdGlvbiBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldENoaWxkcmVuKCkNCisJaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyODM3DQorDQorICAgICAgICBObyBuZWVk
IG5ldyB0ZXN0cy4gDQorDQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dy
YXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNocm9taXVtOjpHcmFwaGljc0xheWVyQ2hyb21pdW0pOg0KKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q2hpbGRyZW4pOg0KKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJDaHJvbWl1bTo6YWRkQ2hpbGQpOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaDoNCisNCiAyMDExLTA2LTE2ICBZ
dXRhIEtpdGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPg0KIA0KICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjg5MDczLg0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHANCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVy
Q2hyb21pdW0uY3BwCShyZXZpc2lvbiA4OTEwNykNCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNv
cHkpDQpAQCAtOTUsNiArOTUsNyBAQCBHcmFwaGljc0xheWVyQ2hyb21pdW06OkdyYXBoaWNzTGF5
ZXJDaHJvDQogICAgICwgbV9jb250ZW50c0xheWVySGFzQmFja2dyb3VuZENvbG9yKGZhbHNlKQ0K
IHsNCiAgICAgbV9sYXllciA9IENvbnRlbnRMYXllckNocm9taXVtOjpjcmVhdGUodGhpcyk7DQor
ICAgIG1fc2V0Q2hpbGRyZW4gPSBmYWxzZTsNCiANCiAgICAgdXBkYXRlRGVidWdJbmRpY2F0b3Jz
KCk7DQogfQ0KQEAgLTEyOSwxMSArMTMwLDEzIEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVt
Ojp1cGRhdGVOYW1lcygNCiANCiBib29sIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q2hpbGRy
ZW4oY29uc3QgVmVjdG9yPEdyYXBoaWNzTGF5ZXIqPiYgY2hpbGRyZW4pDQogew0KKyAgICBtX3Nl
dENoaWxkcmVuID0gdHJ1ZTsNCiAgICAgYm9vbCBjaGlsZHJlbkNoYW5nZWQgPSBHcmFwaGljc0xh
eWVyOjpzZXRDaGlsZHJlbihjaGlsZHJlbik7DQogICAgIC8vIEZJWE1FOiBHcmFwaGljc0xheWVy
OjpzZXRDaGlsZHJlbiBjYWxscyBhZGRDaGlsZCgpIGZvciBlYWNoIGNoaWxkLCB3aGljaA0KICAg
ICAvLyB3aWxsIGVuZCB1cCBjYWxsaW5nIHVwZGF0ZUNoaWxkTGlzdCgpIE4gdGltZXMuDQogICAg
IGlmIChjaGlsZHJlbkNoYW5nZWQpDQogICAgICAgICB1cGRhdGVDaGlsZExpc3QoKTsNCisgICAg
bV9zZXRDaGlsZHJlbiA9IGZhbHNlOw0KIA0KICAgICByZXR1cm4gY2hpbGRyZW5DaGFuZ2VkOw0K
IH0NCkBAIC0xNDEsNyArMTQ0LDggQEAgYm9vbCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldENo
aWxkcmVuKA0KIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjphZGRDaGlsZChHcmFwaGljc0xh
eWVyKiBjaGlsZExheWVyKQ0KIHsNCiAgICAgR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGQoY2hpbGRM
YXllcik7DQotICAgIHVwZGF0ZUNoaWxkTGlzdCgpOw0KKyAgICBpZiAoIW1fc2V0Q2hpbGRyZW4p
IA0KKyAgICAgICAgdXBkYXRlQ2hpbGRMaXN0KCk7DQogfQ0KIA0KIHZvaWQgR3JhcGhpY3NMYXll
ckNocm9taXVtOjphZGRDaGlsZEF0SW5kZXgoR3JhcGhpY3NMYXllciogY2hpbGRMYXllciwgaW50
IGluZGV4KQ0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgJKHJldmlz
aW9uIDg5MTA3KQ0KKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMTQzLDYgKzE0Myw3
IEBAIHByaXZhdGU6DQogDQogICAgIENvbnRlbnRzTGF5ZXJQdXJwb3NlIG1fY29udGVudHNMYXll
clB1cnBvc2U7DQogICAgIGJvb2wgbV9jb250ZW50c0xheWVySGFzQmFja2dyb3VuZENvbG9yIDog
MTsNCisgICAgYm9vbCBtX3NldENoaWxkcmVuOw0KIH07DQogDQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQ0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97554</attachid>
            <date>2011-06-17 00:43:31 -0700</date>
            <delta_ts>2011-06-17 00:52:33 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>myPatch.txt</filename>
            <type>text/plain</type>
            <size>2806</size>
            <attacher name="zeng huiqing">huiqing.zeng</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODkxMjEpDQorKysgU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDE4IEBADQorMjAxMS0wNi0xNyAgWmVu
ZyBIdWlxaW5nICA8aHVpcWluZy56ZW5nQGludGVsLmNvbT4NCisNCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgW2Nocm9taXVtXU9wdGltaXplIHRoZSBm
dW5jdGlvbiBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldENoaWxkcmVuKCkNCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjgzNw0KKw0KKyAgICAgICAg
Tm8gbmVlZCBuZXcgdGVzdHMuIA0KKw0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6R3JhcGhpY3NMYXllckNocm9taXVtKToNCisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldENoaWxkcmVuKToNCisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OmFkZENoaWxkKToNCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmg6DQorDQogMjAxMS0w
Ni0xNiAgWXV0YSBLaXRhbXVyYSAgPHl1dGFrQGNocm9taXVtLm9yZz4NCiANCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI4OTA3My4NCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhp
Y3NMYXllckNocm9taXVtLmNwcAkocmV2aXNpb24gODkxMDcpDQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAkod29y
a2luZyBjb3B5KQ0KQEAgLTk1LDYgKzk1LDcgQEAgR3JhcGhpY3NMYXllckNocm9taXVtOjpHcmFw
aGljc0xheWVyQ2hybw0KICAgICAsIG1fY29udGVudHNMYXllckhhc0JhY2tncm91bmRDb2xvcihm
YWxzZSkNCiB7DQogICAgIG1fbGF5ZXIgPSBDb250ZW50TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKHRo
aXMpOw0KKyAgICBtX3NldENoaWxkcmVuID0gZmFsc2U7DQogDQogICAgIHVwZGF0ZURlYnVnSW5k
aWNhdG9ycygpOw0KIH0NCkBAIC0xMjksMTEgKzEzMCwxMyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJD
aHJvbWl1bTo6dXBkYXRlTmFtZXMoDQogDQogYm9vbCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNl
dENoaWxkcmVuKGNvbnN0IFZlY3RvcjxHcmFwaGljc0xheWVyKj4mIGNoaWxkcmVuKQ0KIHsNCisg
ICAgbV9zZXRDaGlsZHJlbiA9IHRydWU7DQogICAgIGJvb2wgY2hpbGRyZW5DaGFuZ2VkID0gR3Jh
cGhpY3NMYXllcjo6c2V0Q2hpbGRyZW4oY2hpbGRyZW4pOw0KICAgICAvLyBGSVhNRTogR3JhcGhp
Y3NMYXllcjo6c2V0Q2hpbGRyZW4gY2FsbHMgYWRkQ2hpbGQoKSBmb3IgZWFjaCBjaGlsZCwgd2hp
Y2gNCiAgICAgLy8gd2lsbCBlbmQgdXAgY2FsbGluZyB1cGRhdGVDaGlsZExpc3QoKSBOIHRpbWVz
Lg0KICAgICBpZiAoY2hpbGRyZW5DaGFuZ2VkKQ0KICAgICAgICAgdXBkYXRlQ2hpbGRMaXN0KCk7
DQorICAgIG1fc2V0Q2hpbGRyZW4gPSBmYWxzZTsNCiANCiAgICAgcmV0dXJuIGNoaWxkcmVuQ2hh
bmdlZDsNCiB9DQpAQCAtMTQxLDcgKzE0NCw4IEBAIGJvb2wgR3JhcGhpY3NMYXllckNocm9taXVt
OjpzZXRDaGlsZHJlbigNCiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6YWRkQ2hpbGQoR3Jh
cGhpY3NMYXllciogY2hpbGRMYXllcikNCiB7DQogICAgIEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxk
KGNoaWxkTGF5ZXIpOw0KLSAgICB1cGRhdGVDaGlsZExpc3QoKTsNCisgICAgaWYgKCFtX3NldENo
aWxkcmVuKSANCisgICAgICAgIHVwZGF0ZUNoaWxkTGlzdCgpOw0KIH0NCiANCiB2b2lkIEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6YWRkQ2hpbGRBdEluZGV4KEdyYXBoaWNzTGF5ZXIqIGNoaWxkTGF5
ZXIsIGludCBpbmRleCkNCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaA0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5o
CShyZXZpc2lvbiA4OTEwNykNCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAkod29ya2luZyBjb3B5KQ0KQEAgLTE0Myw2
ICsxNDMsNyBAQCBwcml2YXRlOg0KIA0KICAgICBDb250ZW50c0xheWVyUHVycG9zZSBtX2NvbnRl
bnRzTGF5ZXJQdXJwb3NlOw0KICAgICBib29sIG1fY29udGVudHNMYXllckhhc0JhY2tncm91bmRD
b2xvciA6IDE7DQorICAgIGJvb2wgbV9zZXRDaGlsZHJlbjsNCiB9Ow0KIA0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUNCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97556</attachid>
            <date>2011-06-17 00:52:33 -0700</date>
            <delta_ts>2011-06-27 21:53:15 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>myPatch.txt</filename>
            <type>text/plain</type>
            <size>2806</size>
            <attacher name="zeng huiqing">huiqing.zeng</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODkxMjEpDQorKysgU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDE4IEBADQorMjAxMS0wNi0xNyAgWmVu
ZyBIdWlxaW5nICA8aHVpcWluZy56ZW5nQGludGVsLmNvbT4NCisNCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgW2Nocm9taXVtXU9wdGltaXplIHRoZSBm
dW5jdGlvbiBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldENoaWxkcmVuKCkNCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjgzNw0KKw0KKyAgICAgICAg
Tm8gbmVlZCBuZXcgdGVzdHMuIA0KKw0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6R3JhcGhpY3NMYXllckNocm9taXVtKToNCisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldENoaWxkcmVuKToNCisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OmFkZENoaWxkKToNCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmg6DQorDQogMjAxMS0w
Ni0xNiAgWXV0YSBLaXRhbXVyYSAgPHl1dGFrQGNocm9taXVtLm9yZz4NCiANCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI4OTA3My4NCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhp
Y3NMYXllckNocm9taXVtLmNwcAkocmV2aXNpb24gODkxMDcpDQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAkod29y
a2luZyBjb3B5KQ0KQEAgLTk1LDYgKzk1LDcgQEAgR3JhcGhpY3NMYXllckNocm9taXVtOjpHcmFw
aGljc0xheWVyQ2hybw0KICAgICAsIG1fY29udGVudHNMYXllckhhc0JhY2tncm91bmRDb2xvcihm
YWxzZSkNCiB7DQogICAgIG1fbGF5ZXIgPSBDb250ZW50TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKHRo
aXMpOw0KKyAgICBtX3NldENoaWxkcmVuID0gZmFsc2U7DQogDQogICAgIHVwZGF0ZURlYnVnSW5k
aWNhdG9ycygpOw0KIH0NCkBAIC0xMjksMTEgKzEzMCwxMyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJD
aHJvbWl1bTo6dXBkYXRlTmFtZXMoDQogDQogYm9vbCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNl
dENoaWxkcmVuKGNvbnN0IFZlY3RvcjxHcmFwaGljc0xheWVyKj4mIGNoaWxkcmVuKQ0KIHsNCisg
ICAgbV9zZXRDaGlsZHJlbiA9IHRydWU7DQogICAgIGJvb2wgY2hpbGRyZW5DaGFuZ2VkID0gR3Jh
cGhpY3NMYXllcjo6c2V0Q2hpbGRyZW4oY2hpbGRyZW4pOw0KICAgICAvLyBGSVhNRTogR3JhcGhp
Y3NMYXllcjo6c2V0Q2hpbGRyZW4gY2FsbHMgYWRkQ2hpbGQoKSBmb3IgZWFjaCBjaGlsZCwgd2hp
Y2gNCiAgICAgLy8gd2lsbCBlbmQgdXAgY2FsbGluZyB1cGRhdGVDaGlsZExpc3QoKSBOIHRpbWVz
Lg0KICAgICBpZiAoY2hpbGRyZW5DaGFuZ2VkKQ0KICAgICAgICAgdXBkYXRlQ2hpbGRMaXN0KCk7
DQorICAgIG1fc2V0Q2hpbGRyZW4gPSBmYWxzZTsNCiANCiAgICAgcmV0dXJuIGNoaWxkcmVuQ2hh
bmdlZDsNCiB9DQpAQCAtMTQxLDcgKzE0NCw4IEBAIGJvb2wgR3JhcGhpY3NMYXllckNocm9taXVt
OjpzZXRDaGlsZHJlbigNCiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6YWRkQ2hpbGQoR3Jh
cGhpY3NMYXllciogY2hpbGRMYXllcikNCiB7DQogICAgIEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxk
KGNoaWxkTGF5ZXIpOw0KLSAgICB1cGRhdGVDaGlsZExpc3QoKTsNCisgICAgaWYgKCFtX3NldENo
aWxkcmVuKSANCisgICAgICAgIHVwZGF0ZUNoaWxkTGlzdCgpOw0KIH0NCiANCiB2b2lkIEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6YWRkQ2hpbGRBdEluZGV4KEdyYXBoaWNzTGF5ZXIqIGNoaWxkTGF5
ZXIsIGludCBpbmRleCkNCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaA0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5o
CShyZXZpc2lvbiA4OTEwNykNCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAkod29ya2luZyBjb3B5KQ0KQEAgLTE0Myw2
ICsxNDMsNyBAQCBwcml2YXRlOg0KIA0KICAgICBDb250ZW50c0xheWVyUHVycG9zZSBtX2NvbnRl
bnRzTGF5ZXJQdXJwb3NlOw0KICAgICBib29sIG1fY29udGVudHNMYXllckhhc0JhY2tncm91bmRD
b2xvciA6IDE7DQorICAgIGJvb2wgbV9zZXRDaGlsZHJlbjsNCiB9Ow0KIA0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUNCg==
</data>
<flag name="review"
          id="93043"
          type_id="1"
          status="-"
          setter="kbr"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98856</attachid>
            <date>2011-06-27 21:53:15 -0700</date>
            <delta_ts>2011-06-27 23:32:32 -0700</delta_ts>
            <desc>new patch</desc>
            <filename>myPatch.txt</filename>
            <type>text/plain</type>
            <size>2811</size>
            <attacher name="zeng huiqing">huiqing.zeng</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODk4ODkpDQorKysgU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDE4IEBADQorMjAxMS0wNi0yNyAgWmVu
ZyBIdWlxaW5nICA8aHVpcWluZy56ZW5nQGludGVsLmNvbT4NCisNCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgW2Nocm9taXVtXU9wdGltaXplIEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q2hpbGRyZW4oKQ0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyODM3DQorDQorICAgICAgICBObyBuZXcgdGVzdHMu
DQorDQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJD
aHJvbWl1bS5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpH
cmFwaGljc0xheWVyQ2hyb21pdW0pOg0KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJD
aHJvbWl1bTo6c2V0Q2hpbGRyZW4pOg0KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJD
aHJvbWl1bTo6YWRkQ2hpbGQpOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaDoNCisNCiAyMDExLTA2LTI3ICBCcmlhbiBXZWluc3Rl
aW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIEZpeCB0aGUgV2ViQ29yZSB2
Y3Byb2ogZmlsZSBhZnRlciByODk4NTEuDQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5
ZXJDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDg5ODg3KQ0KKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcg
Y29weSkNCkBAIC05NSw2ICs5NSw3IEBAIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6R3JhcGhpY3NM
YXllckNocm8NCiAgICAgLCBtX2NvbnRlbnRzTGF5ZXJIYXNCYWNrZ3JvdW5kQ29sb3IoZmFsc2Up
DQogew0KICAgICBtX2xheWVyID0gQ29udGVudExheWVyQ2hyb21pdW06OmNyZWF0ZSh0aGlzKTsN
CisgICAgbV9pblNldENoaWxkcmVuID0gZmFsc2U7DQogDQogICAgIHVwZGF0ZURlYnVnSW5kaWNh
dG9ycygpOw0KIH0NCkBAIC0xMjksMTEgKzEzMCwxMyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJv
bWl1bTo6dXBkYXRlTmFtZXMoDQogDQogYm9vbCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldENo
aWxkcmVuKGNvbnN0IFZlY3RvcjxHcmFwaGljc0xheWVyKj4mIGNoaWxkcmVuKQ0KIHsNCisgICAg
bV9pblNldENoaWxkcmVuID0gdHJ1ZTsNCiAgICAgYm9vbCBjaGlsZHJlbkNoYW5nZWQgPSBHcmFw
aGljc0xheWVyOjpzZXRDaGlsZHJlbihjaGlsZHJlbik7DQogICAgIC8vIEZJWE1FOiBHcmFwaGlj
c0xheWVyOjpzZXRDaGlsZHJlbiBjYWxscyBhZGRDaGlsZCgpIGZvciBlYWNoIGNoaWxkLCB3aGlj
aA0KICAgICAvLyB3aWxsIGVuZCB1cCBjYWxsaW5nIHVwZGF0ZUNoaWxkTGlzdCgpIE4gdGltZXMu
DQogICAgIGlmIChjaGlsZHJlbkNoYW5nZWQpDQogICAgICAgICB1cGRhdGVDaGlsZExpc3QoKTsN
CisgICAgbV9pblNldENoaWxkcmVuID0gZmFsc2U7DQogDQogICAgIHJldHVybiBjaGlsZHJlbkNo
YW5nZWQ7DQogfQ0KQEAgLTE0MSw3ICsxNDQsOCBAQCBib29sIEdyYXBoaWNzTGF5ZXJDaHJvbWl1
bTo6c2V0Q2hpbGRyZW4oDQogdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmFkZENoaWxkKEdy
YXBoaWNzTGF5ZXIqIGNoaWxkTGF5ZXIpDQogew0KICAgICBHcmFwaGljc0xheWVyOjphZGRDaGls
ZChjaGlsZExheWVyKTsNCi0gICAgdXBkYXRlQ2hpbGRMaXN0KCk7DQorICAgIGlmICghbV9pblNl
dENoaWxkcmVuKSANCisgICAgICAgIHVwZGF0ZUNoaWxkTGlzdCgpOw0KIH0NCiANCiB2b2lkIEdy
YXBoaWNzTGF5ZXJDaHJvbWl1bTo6YWRkQ2hpbGRBdEluZGV4KEdyYXBoaWNzTGF5ZXIqIGNoaWxk
TGF5ZXIsIGludCBpbmRleCkNCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1
bS5oCShyZXZpc2lvbiA4OTg4NykNCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAkod29ya2luZyBjb3B5KQ0KQEAgLTE0
Myw2ICsxNDMsNyBAQCBwcml2YXRlOg0KIA0KICAgICBDb250ZW50c0xheWVyUHVycG9zZSBtX2Nv
bnRlbnRzTGF5ZXJQdXJwb3NlOw0KICAgICBib29sIG1fY29udGVudHNMYXllckhhc0JhY2tncm91
bmRDb2xvciA6IDE7DQorICAgIGJvb2wgbV9pblNldENoaWxkcmVuOw0KIH07DQogDQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQ0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98864</attachid>
            <date>2011-06-27 23:32:32 -0700</date>
            <delta_ts>2011-06-27 23:56:40 -0700</delta_ts>
            <desc>new patch</desc>
            <filename>newPatch.txt</filename>
            <type>text/plain</type>
            <size>3434</size>
            <attacher name="zeng huiqing">huiqing.zeng</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODk4OTYpDQorKysgU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDMzIEBADQorMjAxMS0wNi0yNyAgWmVu
ZyBIdWlxaW5nICA8aHVpcWluZy56ZW5nQGludGVsLmNvbT4NCisNCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgW2Nocm9taXVtXU9wdGltaXplIEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q2hpbGRyZW4oKQ0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyODM3DQorDQorICAgICAgICBObyBuZXcgdGVzdHMu
IA0KKw0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVy
Q2hyb21pdW0uY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6
R3JhcGhpY3NMYXllckNocm9taXVtKToNCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q2hyb21pdW06OnNldENoaWxkcmVuKToNCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q2hyb21pdW06OmFkZENoaWxkKToNCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vR3JhcGhpY3NMYXllckNocm9taXVtLmg6DQorDQorMjAxMS0wNi0yNyAgWmVuZyBIdWlxaW5n
ICA8aHVpcWluZy56ZW5nQGludGVsLmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLg0KKw0KKyAgICAgICAgW2Nocm9taXVtXU9wdGltaXplIEdyYXBoaWNzTGF5ZXJD
aHJvbWl1bTo6c2V0Q2hpbGRyZW4oKQ0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTYyODM3DQorDQorICAgICAgICBObyBuZXcgdGVzdHMuDQorDQorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5j
cHA6DQorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpHcmFwaGljc0xh
eWVyQ2hyb21pdW0pOg0KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6
c2V0Q2hpbGRyZW4pOg0KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6
YWRkQ2hpbGQpOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGlj
c0xheWVyQ2hyb21pdW0uaDoNCisNCiAyMDExLTA2LTI3ICBHeXV5b3VuZyBLaW0gIDxneXV5b3Vu
Zy5raW1Ac2Ftc3VuZy5jb20+DQogDQogICAgICAgICBVbnJldmlld2VkLiBGaXggc3R5bGUgZXJy
b3IgcmVsYXRlZCB0byB3cm9uZyBpbmNsdWRlIG9yZGVyLg0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHANCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9H
cmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA4OTg5NikNCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3Bw
CSh3b3JraW5nIGNvcHkpDQpAQCAtOTMsNiArOTMsNyBAQCBHcmFwaGljc0xheWVyQ2hyb21pdW06
OkdyYXBoaWNzTGF5ZXJDaHJvDQogICAgIDogR3JhcGhpY3NMYXllcihjbGllbnQpDQogICAgICwg
bV9jb250ZW50c0xheWVyUHVycG9zZShOb0NvbnRlbnRzTGF5ZXIpDQogICAgICwgbV9jb250ZW50
c0xheWVySGFzQmFja2dyb3VuZENvbG9yKGZhbHNlKQ0KKyAgICAsIG1faW5TZXRDaGlsZHJlbihm
YWxzZSkNCiB7DQogICAgIG1fbGF5ZXIgPSBDb250ZW50TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKHRo
aXMpOw0KIA0KQEAgLTEyOSwxMSArMTMwLDEzIEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVt
Ojp1cGRhdGVOYW1lcygNCiANCiBib29sIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q2hpbGRy
ZW4oY29uc3QgVmVjdG9yPEdyYXBoaWNzTGF5ZXIqPiYgY2hpbGRyZW4pDQogew0KKyAgICBtX2lu
U2V0Q2hpbGRyZW4gPSB0cnVlOw0KICAgICBib29sIGNoaWxkcmVuQ2hhbmdlZCA9IEdyYXBoaWNz
TGF5ZXI6OnNldENoaWxkcmVuKGNoaWxkcmVuKTsNCiAgICAgLy8gRklYTUU6IEdyYXBoaWNzTGF5
ZXI6OnNldENoaWxkcmVuIGNhbGxzIGFkZENoaWxkKCkgZm9yIGVhY2ggY2hpbGQsIHdoaWNoDQog
ICAgIC8vIHdpbGwgZW5kIHVwIGNhbGxpbmcgdXBkYXRlQ2hpbGRMaXN0KCkgTiB0aW1lcy4NCiAg
ICAgaWYgKGNoaWxkcmVuQ2hhbmdlZCkNCiAgICAgICAgIHVwZGF0ZUNoaWxkTGlzdCgpOw0KKyAg
ICBtX2luU2V0Q2hpbGRyZW4gPSBmYWxzZTsNCiANCiAgICAgcmV0dXJuIGNoaWxkcmVuQ2hhbmdl
ZDsNCiB9DQpAQCAtMTQxLDcgKzE0NCw4IEBAIGJvb2wgR3JhcGhpY3NMYXllckNocm9taXVtOjpz
ZXRDaGlsZHJlbigNCiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6YWRkQ2hpbGQoR3JhcGhp
Y3NMYXllciogY2hpbGRMYXllcikNCiB7DQogICAgIEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkKGNo
aWxkTGF5ZXIpOw0KLSAgICB1cGRhdGVDaGlsZExpc3QoKTsNCisgICAgaWYgKCFtX2luU2V0Q2hp
bGRyZW4pIA0KKyAgICAgICAgdXBkYXRlQ2hpbGRMaXN0KCk7DQogfQ0KIA0KIHZvaWQgR3JhcGhp
Y3NMYXllckNocm9taXVtOjphZGRDaGlsZEF0SW5kZXgoR3JhcGhpY3NMYXllciogY2hpbGRMYXll
ciwgaW50IGluZGV4KQ0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgJ
KHJldmlzaW9uIDg5ODk2KQ0KKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMTQzLDYg
KzE0Myw3IEBAIHByaXZhdGU6DQogDQogICAgIENvbnRlbnRzTGF5ZXJQdXJwb3NlIG1fY29udGVu
dHNMYXllclB1cnBvc2U7DQogICAgIGJvb2wgbV9jb250ZW50c0xheWVySGFzQmFja2dyb3VuZENv
bG9yIDogMTsNCisgICAgYm9vbCBtX2luU2V0Q2hpbGRyZW47DQogfTsNCiANCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlDQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98867</attachid>
            <date>2011-06-27 23:56:40 -0700</date>
            <delta_ts>2011-06-28 16:24:45 -0700</delta_ts>
            <desc>newPatch</desc>
            <filename>newPatch.txt</filename>
            <type>text/plain</type>
            <size>2874</size>
            <attacher name="zeng huiqing">huiqing.zeng</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODk4OTYpDQorKysgU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDE4IEBADQorMjAxMS0wNi0yNyAgWmVu
ZyBIdWlxaW5nICA8aHVpcWluZy56ZW5nQGludGVsLmNvbT4NCisNCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgW2Nocm9taXVtXU9wdGltaXplIEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q2hpbGRyZW4oKQ0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyODM3DQorDQorICAgICAgICBObyBuZXcgdGVzdHMu
IA0KKw0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVy
Q2hyb21pdW0uY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6
R3JhcGhpY3NMYXllckNocm9taXVtKToNCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q2hyb21pdW06OnNldENoaWxkcmVuKToNCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q2hyb21pdW06OmFkZENoaWxkKToNCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vR3JhcGhpY3NMYXllckNocm9taXVtLmg6DQorDQogMjAxMS0wNi0yNyAgR3l1eW91bmcgS2lt
ICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPg0KIA0KICAgICAgICAgVW5yZXZpZXdlZC4gRml4
IHN0eWxlIGVycm9yIHJlbGF0ZWQgdG8gd3JvbmcgaW5jbHVkZSBvcmRlci4NCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21p
dW0uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAkocmV2aXNpb24gODk4OTYpDQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNo
cm9taXVtLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTkzLDYgKzkzLDcgQEAgR3JhcGhpY3NMYXll
ckNocm9taXVtOjpHcmFwaGljc0xheWVyQ2hybw0KICAgICA6IEdyYXBoaWNzTGF5ZXIoY2xpZW50
KQ0KICAgICAsIG1fY29udGVudHNMYXllclB1cnBvc2UoTm9Db250ZW50c0xheWVyKQ0KICAgICAs
IG1fY29udGVudHNMYXllckhhc0JhY2tncm91bmRDb2xvcihmYWxzZSkNCisgICAgLCBtX2luU2V0
Q2hpbGRyZW4oZmFsc2UpDQogew0KICAgICBtX2xheWVyID0gQ29udGVudExheWVyQ2hyb21pdW06
OmNyZWF0ZSh0aGlzKTsNCiANCkBAIC0xMjksMTEgKzEzMCwxMyBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJDaHJvbWl1bTo6dXBkYXRlTmFtZXMoDQogDQogYm9vbCBHcmFwaGljc0xheWVyQ2hyb21pdW06
OnNldENoaWxkcmVuKGNvbnN0IFZlY3RvcjxHcmFwaGljc0xheWVyKj4mIGNoaWxkcmVuKQ0KIHsN
CisgICAgbV9pblNldENoaWxkcmVuID0gdHJ1ZTsNCiAgICAgYm9vbCBjaGlsZHJlbkNoYW5nZWQg
PSBHcmFwaGljc0xheWVyOjpzZXRDaGlsZHJlbihjaGlsZHJlbik7DQogICAgIC8vIEZJWE1FOiBH
cmFwaGljc0xheWVyOjpzZXRDaGlsZHJlbiBjYWxscyBhZGRDaGlsZCgpIGZvciBlYWNoIGNoaWxk
LCB3aGljaA0KICAgICAvLyB3aWxsIGVuZCB1cCBjYWxsaW5nIHVwZGF0ZUNoaWxkTGlzdCgpIE4g
dGltZXMuDQogICAgIGlmIChjaGlsZHJlbkNoYW5nZWQpDQogICAgICAgICB1cGRhdGVDaGlsZExp
c3QoKTsNCisgICAgbV9pblNldENoaWxkcmVuID0gZmFsc2U7DQogDQogICAgIHJldHVybiBjaGls
ZHJlbkNoYW5nZWQ7DQogfQ0KQEAgLTE0MSw3ICsxNDQsOCBAQCBib29sIEdyYXBoaWNzTGF5ZXJD
aHJvbWl1bTo6c2V0Q2hpbGRyZW4oDQogdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmFkZENo
aWxkKEdyYXBoaWNzTGF5ZXIqIGNoaWxkTGF5ZXIpDQogew0KICAgICBHcmFwaGljc0xheWVyOjph
ZGRDaGlsZChjaGlsZExheWVyKTsNCi0gICAgdXBkYXRlQ2hpbGRMaXN0KCk7DQorICAgIGlmICgh
bV9pblNldENoaWxkcmVuKSANCisgICAgICAgIHVwZGF0ZUNoaWxkTGlzdCgpOw0KIH0NCiANCiB2
b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6YWRkQ2hpbGRBdEluZGV4KEdyYXBoaWNzTGF5ZXIq
IGNoaWxkTGF5ZXIsIGludCBpbmRleCkNCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJD
aHJvbWl1bS5oCShyZXZpc2lvbiA4OTg5NikNCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAkod29ya2luZyBjb3B5KQ0K
QEAgLTE0Myw2ICsxNDMsNyBAQCBwcml2YXRlOg0KIA0KICAgICBDb250ZW50c0xheWVyUHVycG9z
ZSBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlOw0KICAgICBib29sIG1fY29udGVudHNMYXllckhhc0Jh
Y2tncm91bmRDb2xvciA6IDE7DQorICAgIGJvb2wgbV9pblNldENoaWxkcmVuOw0KIH07DQogDQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQ0K
</data>
<flag name="review"
          id="93215"
          type_id="1"
          status="-"
          setter="kbr"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>98994</attachid>
            <date>2011-06-28 16:21:48 -0700</date>
            <delta_ts>2011-06-28 16:24:45 -0700</delta_ts>
            <desc>newPatch</desc>
            <filename>newZhqPatch.txt</filename>
            <type>text/plain</type>
            <size>2838</size>
            <attacher name="zeng huiqing">huiqing.zeng</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODk5NzApDQorKysgU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDE4IEBADQorMjAxMS0wNi0yOCAgWmVu
ZyBIdWlxaW5nICA8aHVpcWluZy56ZW5nQGludGVsLmNvbT4NCisNCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgW2Nocm9taXVtXU9wdGltaXplIEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q2hpbGRyZW4oKQ0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyODM3DQorDQorICAgICAgICBObyBuZXcgdGVzdHMu
IA0KKw0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVy
Q2hyb21pdW0uY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6
R3JhcGhpY3NMYXllckNocm9taXVtKToNCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q2hyb21pdW06OnNldENoaWxkcmVuKToNCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q2hyb21pdW06OmFkZENoaWxkKToNCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vR3JhcGhpY3NMYXllckNocm9taXVtLmg6DQorDQogMjAxMS0wNi0yOCAgTGV2aSBXZWludHJh
dWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+DQogDQogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNl
aWRlbC4NCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9H
cmFwaGljc0xheWVyQ2hyb21pdW0uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAkocmV2
aXNpb24gODk5NzApDQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTkzLDYgKzkz
LDcgQEAgR3JhcGhpY3NMYXllckNocm9taXVtOjpHcmFwaGljc0xheWVyQ2hybw0KICAgICA6IEdy
YXBoaWNzTGF5ZXIoY2xpZW50KQ0KICAgICAsIG1fY29udGVudHNMYXllclB1cnBvc2UoTm9Db250
ZW50c0xheWVyKQ0KICAgICAsIG1fY29udGVudHNMYXllckhhc0JhY2tncm91bmRDb2xvcihmYWxz
ZSkNCisgICAgLCBtX2luU2V0Q2hpbGRyZW4oZmFsc2UpDQogew0KICAgICBtX2xheWVyID0gQ29u
dGVudExheWVyQ2hyb21pdW06OmNyZWF0ZSh0aGlzKTsNCiANCkBAIC0xMjksMTEgKzEzMCwxMiBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlTmFtZXMoDQogDQogYm9vbCBHcmFw
aGljc0xheWVyQ2hyb21pdW06OnNldENoaWxkcmVuKGNvbnN0IFZlY3RvcjxHcmFwaGljc0xheWVy
Kj4mIGNoaWxkcmVuKQ0KIHsNCisgICAgbV9pblNldENoaWxkcmVuID0gdHJ1ZTsNCiAgICAgYm9v
bCBjaGlsZHJlbkNoYW5nZWQgPSBHcmFwaGljc0xheWVyOjpzZXRDaGlsZHJlbihjaGlsZHJlbik7
DQotICAgIC8vIEZJWE1FOiBHcmFwaGljc0xheWVyOjpzZXRDaGlsZHJlbiBjYWxscyBhZGRDaGls
ZCgpIGZvciBlYWNoIGNoaWxkLCB3aGljaA0KLSAgICAvLyB3aWxsIGVuZCB1cCBjYWxsaW5nIHVw
ZGF0ZUNoaWxkTGlzdCgpIE4gdGltZXMuDQorDQogICAgIGlmIChjaGlsZHJlbkNoYW5nZWQpDQog
ICAgICAgICB1cGRhdGVDaGlsZExpc3QoKTsNCisgICAgbV9pblNldENoaWxkcmVuID0gZmFsc2U7
DQogDQogICAgIHJldHVybiBjaGlsZHJlbkNoYW5nZWQ7DQogfQ0KQEAgLTE0MSw3ICsxNDMsOCBA
QCBib29sIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q2hpbGRyZW4oDQogdm9pZCBHcmFwaGlj
c0xheWVyQ2hyb21pdW06OmFkZENoaWxkKEdyYXBoaWNzTGF5ZXIqIGNoaWxkTGF5ZXIpDQogew0K
ICAgICBHcmFwaGljc0xheWVyOjphZGRDaGlsZChjaGlsZExheWVyKTsNCi0gICAgdXBkYXRlQ2hp
bGRMaXN0KCk7DQorICAgIGlmICghbV9pblNldENoaWxkcmVuKSANCisgICAgICAgIHVwZGF0ZUNo
aWxkTGlzdCgpOw0KIH0NCiANCiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6YWRkQ2hpbGRB
dEluZGV4KEdyYXBoaWNzTGF5ZXIqIGNoaWxkTGF5ZXIsIGludCBpbmRleCkNCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21p
dW0uaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oCShyZXZpc2lvbiA4OTk3MCkNCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21p
dW0uaAkod29ya2luZyBjb3B5KQ0KQEAgLTE0Myw2ICsxNDMsNyBAQCBwcml2YXRlOg0KIA0KICAg
ICBDb250ZW50c0xheWVyUHVycG9zZSBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlOw0KICAgICBib29s
IG1fY29udGVudHNMYXllckhhc0JhY2tncm91bmRDb2xvciA6IDE7DQorICAgIGJvb2wgbV9pblNl
dENoaWxkcmVuOw0KIH07DQogDQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQ0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98996</attachid>
            <date>2011-06-28 16:24:45 -0700</date>
            <delta_ts>2011-06-28 17:57:36 -0700</delta_ts>
            <desc>newPatch </desc>
            <filename>newZhqPatch.txt</filename>
            <type>text/plain</type>
            <size>2838</size>
            <attacher name="zeng huiqing">huiqing.zeng</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODk5NzApDQorKysgU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDE4IEBADQorMjAxMS0wNi0yOCAgWmVu
ZyBIdWlxaW5nICA8aHVpcWluZy56ZW5nQGludGVsLmNvbT4NCisNCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgW2Nocm9taXVtXU9wdGltaXplIEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q2hpbGRyZW4oKQ0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyODM3DQorDQorICAgICAgICBObyBuZXcgdGVzdHMu
IA0KKw0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVy
Q2hyb21pdW0uY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6
R3JhcGhpY3NMYXllckNocm9taXVtKToNCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q2hyb21pdW06OnNldENoaWxkcmVuKToNCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q2hyb21pdW06OmFkZENoaWxkKToNCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vR3JhcGhpY3NMYXllckNocm9taXVtLmg6DQorDQogMjAxMS0wNi0yOCAgTGV2aSBXZWludHJh
dWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+DQogDQogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNl
aWRlbC4NCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9H
cmFwaGljc0xheWVyQ2hyb21pdW0uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAkocmV2
aXNpb24gODk5NzApDQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTkzLDYgKzkz
LDcgQEAgR3JhcGhpY3NMYXllckNocm9taXVtOjpHcmFwaGljc0xheWVyQ2hybw0KICAgICA6IEdy
YXBoaWNzTGF5ZXIoY2xpZW50KQ0KICAgICAsIG1fY29udGVudHNMYXllclB1cnBvc2UoTm9Db250
ZW50c0xheWVyKQ0KICAgICAsIG1fY29udGVudHNMYXllckhhc0JhY2tncm91bmRDb2xvcihmYWxz
ZSkNCisgICAgLCBtX2luU2V0Q2hpbGRyZW4oZmFsc2UpDQogew0KICAgICBtX2xheWVyID0gQ29u
dGVudExheWVyQ2hyb21pdW06OmNyZWF0ZSh0aGlzKTsNCiANCkBAIC0xMjksMTEgKzEzMCwxMiBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlTmFtZXMoDQogDQogYm9vbCBHcmFw
aGljc0xheWVyQ2hyb21pdW06OnNldENoaWxkcmVuKGNvbnN0IFZlY3RvcjxHcmFwaGljc0xheWVy
Kj4mIGNoaWxkcmVuKQ0KIHsNCisgICAgbV9pblNldENoaWxkcmVuID0gdHJ1ZTsNCiAgICAgYm9v
bCBjaGlsZHJlbkNoYW5nZWQgPSBHcmFwaGljc0xheWVyOjpzZXRDaGlsZHJlbihjaGlsZHJlbik7
DQotICAgIC8vIEZJWE1FOiBHcmFwaGljc0xheWVyOjpzZXRDaGlsZHJlbiBjYWxscyBhZGRDaGls
ZCgpIGZvciBlYWNoIGNoaWxkLCB3aGljaA0KLSAgICAvLyB3aWxsIGVuZCB1cCBjYWxsaW5nIHVw
ZGF0ZUNoaWxkTGlzdCgpIE4gdGltZXMuDQorDQogICAgIGlmIChjaGlsZHJlbkNoYW5nZWQpDQog
ICAgICAgICB1cGRhdGVDaGlsZExpc3QoKTsNCisgICAgbV9pblNldENoaWxkcmVuID0gZmFsc2U7
DQogDQogICAgIHJldHVybiBjaGlsZHJlbkNoYW5nZWQ7DQogfQ0KQEAgLTE0MSw3ICsxNDMsOCBA
QCBib29sIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q2hpbGRyZW4oDQogdm9pZCBHcmFwaGlj
c0xheWVyQ2hyb21pdW06OmFkZENoaWxkKEdyYXBoaWNzTGF5ZXIqIGNoaWxkTGF5ZXIpDQogew0K
ICAgICBHcmFwaGljc0xheWVyOjphZGRDaGlsZChjaGlsZExheWVyKTsNCi0gICAgdXBkYXRlQ2hp
bGRMaXN0KCk7DQorICAgIGlmICghbV9pblNldENoaWxkcmVuKSANCisgICAgICAgIHVwZGF0ZUNo
aWxkTGlzdCgpOw0KIH0NCiANCiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6YWRkQ2hpbGRB
dEluZGV4KEdyYXBoaWNzTGF5ZXIqIGNoaWxkTGF5ZXIsIGludCBpbmRleCkNCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21p
dW0uaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oCShyZXZpc2lvbiA4OTk3MCkNCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21p
dW0uaAkod29ya2luZyBjb3B5KQ0KQEAgLTE0Myw2ICsxNDMsNyBAQCBwcml2YXRlOg0KIA0KICAg
ICBDb250ZW50c0xheWVyUHVycG9zZSBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlOw0KICAgICBib29s
IG1fY29udGVudHNMYXllckhhc0JhY2tncm91bmRDb2xvciA6IDE7DQorICAgIGJvb2wgbV9pblNl
dENoaWxkcmVuOw0KIH07DQogDQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQ0K
</data>

          </attachment>
      

    </bug>

</bugzilla>