<?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>81443</bug_id>
          
          <creation_ts>2012-03-16 19:28:36 -0700</creation_ts>
          <short_desc>[WebSocket]The minimal number of bytes MUST be used to encode the length</short_desc>
          <delta_ts>2012-03-22 23:04:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Li Yin">li.yin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>bashi</cc>
    
    <cc>benjamin</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>581217</commentid>
    <comment_count>0</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-03-16 19:28:36 -0700</bug_when>
    <thetext>From REF 6455:
http://tools.ietf.org/html/rfc6455#section-5.2
Note that in all cases, the minimal number of bytes MUST be used to encode
the length, for example, the length of a 124-byte-long string
can&apos;t be encoded as the sequence 126, 0, 124.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581220</commentid>
    <comment_count>1</comment_count>
      <attachid>132437</attachid>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-03-16 19:34:59 -0700</bug_when>
    <thetext>Created attachment 132437
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581275</commentid>
    <comment_count>2</comment_count>
      <attachid>132437</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-16 23:50:01 -0700</bug_when>
    <thetext>Comment on attachment 132437
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        No new test.

Why no tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581276</commentid>
    <comment_count>3</comment_count>
      <attachid>132437</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-16 23:50:01 -0700</bug_when>
    <thetext>Comment on attachment 132437
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        No new test.

Why no tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581295</commentid>
    <comment_count>4</comment_count>
      <attachid>132456</attachid>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-03-17 03:39:07 -0700</bug_when>
    <thetext>Created attachment 132456
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581297</commentid>
    <comment_count>5</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-03-17 03:42:16 -0700</bug_when>
    <thetext>Add the test case, and update the code. 
Please have a check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581298</commentid>
    <comment_count>6</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-03-17 03:47:44 -0700</bug_when>
    <thetext>Does the test case need to be split another patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581375</commentid>
    <comment_count>7</comment_count>
      <attachid>132456</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-17 13:57:05 -0700</bug_when>
    <thetext>Comment on attachment 132456
Patch

(In reply to comment #6)
&gt; Does the test case need to be split another patch?

The test should be submitted along the patch.

I r- because you need to update the ChangeLog. A ChangeLog should be created for the layout test.

I don&apos;t know WebSocket well enough to review this, I will leave the positive review for someone else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581400</commentid>
    <comment_count>8</comment_count>
      <attachid>132476</attachid>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-03-17 18:39:45 -0700</bug_when>
    <thetext>Created attachment 132476
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581401</commentid>
    <comment_count>9</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-03-17 18:42:33 -0700</bug_when>
    <thetext>Add the Change Log in Layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582507</commentid>
    <comment_count>10</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-03-19 17:28:07 -0700</bug_when>
    <thetext>Hi tkent,yuta,
  Can you review this patch? 
  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583222</commentid>
    <comment_count>11</comment_count>
      <attachid>132476</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2012-03-20 10:50:32 -0700</bug_when>
    <thetext>Comment on attachment 132476
Patch

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

The code looks okay, but the test can be improved.

&gt; Source/WebCore/ChangeLog:8
&gt; +        [WebSocket]The minimal number of bytes MUST be used to encode the length
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=81443
&gt; +        From RFC 6455 http://tools.ietf.org/html/rfc6455#section-5.2
&gt; +        the minimal number of bytes MUST be used to encode the length
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).

Our ChangeLog format is usually:

  &lt;bug title&gt;
  &lt;bug URL&gt;

  Reviewed by ...

  &lt;more description&gt;

&gt; LayoutTests/http/tests/websocket/tests/hybi/invalid-encode-length_wsh.py:12
&gt; +    # pywebsocket refuses to create a frame with error encode length.
&gt; +    # Thus, we need to build a frame manually.

You can use create_header() function from mod_pywebsocket.stream module to build a (possibly incorrect) frame header. See reserved-bits_wsh.py for example.

&gt; LayoutTests/http/tests/websocket/tests/hybi/invalid-encode-length_wsh.py:14
&gt; +    header += chr(126) # No Mask and two bytes extended payload length.

It would be better if we could test the edge cases like
  a) payload len = 126, extended payload length = 125
  b) payload len = 127, extended payload length = 0xFFFF
  c) payload len = {126,127}, extended payload length = 0

To test multiple cases, you may want to make use of query parameters in the URL; see protocol-test_wsh.py or reserved-bits_wsh.py for example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583225</commentid>
    <comment_count>12</comment_count>
      <attachid>132476</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2012-03-20 10:55:10 -0700</bug_when>
    <thetext>Comment on attachment 132476
Patch

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

&gt;&gt; LayoutTests/http/tests/websocket/tests/hybi/invalid-encode-length_wsh.py:12
&gt;&gt; +    # Thus, we need to build a frame manually.
&gt; 
&gt; You can use create_header() function from mod_pywebsocket.stream module to build a (possibly incorrect) frame header. See reserved-bits_wsh.py for example.

Well, I was wrong, and you cannot use create_header() in this case. It&apos;s probably okay to build a frame header manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583834</commentid>
    <comment_count>13</comment_count>
      <attachid>132976</attachid>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-03-20 22:55:55 -0700</bug_when>
    <thetext>Created attachment 132976
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583835</commentid>
    <comment_count>14</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-03-20 22:57:34 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 132476 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=132476&amp;action=review
&gt; 
&gt; The code looks okay, but the test can be improved.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        [WebSocket]The minimal number of bytes MUST be used to encode the length
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=81443
&gt; &gt; +        From RFC 6455 http://tools.ietf.org/html/rfc6455#section-5.2
&gt; &gt; +        the minimal number of bytes MUST be used to encode the length
&gt; &gt; +
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; 
&gt; Our ChangeLog format is usually:
&gt; 
&gt;   &lt;bug title&gt;
&gt;   &lt;bug URL&gt;
&gt; 
&gt;   Reviewed by ...
&gt; 
&gt;   &lt;more description&gt;
&gt; 
&gt; &gt; LayoutTests/http/tests/websocket/tests/hybi/invalid-encode-length_wsh.py:12
&gt; &gt; +    # pywebsocket refuses to create a frame with error encode length.
&gt; &gt; +    # Thus, we need to build a frame manually.
&gt; 
&gt; You can use create_header() function from mod_pywebsocket.stream module to build a (possibly incorrect) frame header. See reserved-bits_wsh.py for example.
&gt; 
&gt; &gt; LayoutTests/http/tests/websocket/tests/hybi/invalid-encode-length_wsh.py:14
&gt; &gt; +    header += chr(126) # No Mask and two bytes extended payload length.
&gt; 
&gt; It would be better if we could test the edge cases like
&gt;   a) payload len = 126, extended payload length = 125
&gt;   b) payload len = 127, extended payload length = 0xFFFF
&gt;   c) payload len = {126,127}, extended payload length = 0
&gt; 
&gt; To test multiple cases, you may want to make use of query parameters in the URL; see protocol-test_wsh.py or reserved-bits_wsh.py for example.

Thanks a million for your detailed review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583837</commentid>
    <comment_count>15</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-03-20 23:00:19 -0700</bug_when>
    <thetext>Update the test case covering four cases:
payload length:126, extended length:125
payload length:126, extended length:0
payload length:127, extended length:65535(0xFFFF)
payload length:127, extended length:0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584393</commentid>
    <comment_count>16</comment_count>
      <attachid>132976</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2012-03-21 11:19:55 -0700</bug_when>
    <thetext>Comment on attachment 132976
Patch

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

I just have style comments. The code itself looks fine.

&gt; LayoutTests/http/tests/websocket/tests/hybi/invalid-encode-length_wsh.py:16
&gt; +    payloadLength, extendedLength = (match.group(1)).split(&apos;_&apos;, 1)

Should be payload_length, extended_length respectively.

We generally follow PEP8 in python files, so please take a look at it.

&gt; LayoutTests/http/tests/websocket/tests/hybi/invalid-encode-length_wsh.py:18
&gt; +    payloadLength = int (payloadLength)
&gt; +    extendedLength = int (extendedLength)

Space after &quot;int&quot; is unnecessary.

&gt; LayoutTests/http/tests/websocket/tests/hybi/invalid-encode-length_wsh.py:24
&gt; +    if payloadLength == 126 :

Space before colon is unnecessary. For here and next two as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584783</commentid>
    <comment_count>17</comment_count>
      <attachid>133147</attachid>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-03-21 17:16:37 -0700</bug_when>
    <thetext>Created attachment 133147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584786</commentid>
    <comment_count>18</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-03-21 17:18:26 -0700</bug_when>
    <thetext>Hi Kent,
   Could you review this patch? 
   Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584856</commentid>
    <comment_count>19</comment_count>
      <attachid>133147</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-03-21 18:19:27 -0700</bug_when>
    <thetext>Comment on attachment 133147
Patch

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

&gt; LayoutTests/http/tests/websocket/tests/hybi/invalid-encode-length_wsh.py:28
&gt; +    else :

nit: else : -&gt; else:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584865</commentid>
    <comment_count>20</comment_count>
      <attachid>133162</attachid>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-03-21 18:26:50 -0700</bug_when>
    <thetext>Created attachment 133162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584868</commentid>
    <comment_count>21</comment_count>
      <attachid>133162</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-03-21 18:28:38 -0700</bug_when>
    <thetext>Comment on attachment 133162
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586096</commentid>
    <comment_count>22</comment_count>
      <attachid>133162</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-22 23:04:16 -0700</bug_when>
    <thetext>Comment on attachment 133162
Patch

Clearing flags on attachment: 133162

Committed r111828: &lt;http://trac.webkit.org/changeset/111828&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586097</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-22 23:04:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132437</attachid>
            <date>2012-03-16 19:34:59 -0700</date>
            <delta_ts>2012-03-17 03:38:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81443-20120318103655.patch</filename>
            <type>text/plain</type>
            <size>2087</size>
            <attacher name="Li Yin">li.yin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThiZTIyMDlkODFiMjk1
ZTI1NmIzNjZkYmU3MDJmOTI4MTBiNTZlYi4uY2MwOTRmM2FlYzYwNDI1ZGQ1NGRlNDAyNjJhYzkz
NjMyNTAwOGU1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAzLTE3ICBMaSBZ
aW4gIDxsaS55aW5AaW50ZWwuY29tPgorCisgICAgICAgIFtXZWJTb2NrZXRdVGhlIG1pbmltYWwg
bnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE0NDMKKyAgICAgICAg
RnJvbSBSRkMgNjQ1NSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NDU1I3NlY3Rpb24t
NS4yCisgICAgICAgIHRoZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJlIHVzZWQgdG8g
ZW5jb2RlIHRoZSBsZW5ndGgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBObyBuZXcgdGVzdC4KKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6
OnBhcnNlRnJhbWUpOgorCiAyMDEyLTAzLTE0ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBh
cHBsZS5jb20+CiAKICAgICAgICAgRml4IGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDZjOTc2YWFj
OWVlMjZmMmJlNzI1YmUyOGY1YzAyMmYxZmIwNWMyOWEuLjU4ODNmMjFlZmFlYWMyNTljODg1MzAy
MjRlMzNjNzZmNTVhMmQyY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTU3NCw2ICs1NzQsMTYgQEAgV2Vi
U29ja2V0Q2hhbm5lbDo6UGFyc2VGcmFtZVJlc3VsdCBXZWJTb2NrZXRDaGFubmVsOjpwYXJzZUZy
YW1lKFdlYlNvY2tldEZyYW1lJgogICAgICAgICAgICAgcGF5bG9hZExlbmd0aDY0IDw8PSA4Owog
ICAgICAgICAgICAgcGF5bG9hZExlbmd0aDY0IHw9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+
KCpwKyspOwogICAgICAgICB9CisgICAgICAgIGlmIChzdGF0aWNfY2FzdDxzaXplX3Q+KGV4dGVu
ZGVkUGF5bG9hZExlbmd0aFNpemUpID09IHBheWxvYWRMZW5ndGhXaXRoVHdvQnl0ZUV4dGVuZGVk
TGVuZ3RoRmllbGQgCisgICAgICAgICAgICAmJiBwYXlsb2FkTGVuZ3RoNjQgPD0gbWF4UGF5bG9h
ZExlbmd0aFdpdGhvdXRFeHRlbmRlZExlbmd0aEZpZWxkKSB7CisgICAgICAgICAgICBmYWlsKCJU
aGUgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2VkIHRvIGVuY29kZSB0aGUgbGVu
Z3RoIik7CisgICAgICAgICAgICByZXR1cm4gRnJhbWVFcnJvcjsKKyAgICAgICAgfQorICAgICAg
ICBpZiAoc3RhdGljX2Nhc3Q8c2l6ZV90PihleHRlbmRlZFBheWxvYWRMZW5ndGhTaXplKSA9PSBw
YXlsb2FkTGVuZ3RoV2l0aEVpZ2h0Qnl0ZUV4dGVuZGVkTGVuZ3RoRmllbGQKKyAgICAgICAgICAg
ICYmIHBheWxvYWRMZW5ndGg2NCA8PSAweEZGRkYpIHsKKyAgICAgICAgICAgIGZhaWwoIlRoZSBt
aW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJlIHVzZWQgdG8gZW5jb2RlIHRoZSBsZW5ndGgi
KTsKKyAgICAgICAgICAgIHJldHVybiBGcmFtZUVycm9yOworICAgICAgICB9CiAgICAgfQogCiAg
ICAgLy8gRklYTUU6IFVJTlQ2NF9DKDB4N0ZGRkZGRkZGRkZGRkZGRikgc2hvdWxkIGJlIHVzZWQg
YnV0IGl0IGRpZCBub3QgY29tcGlsZSBvbiBRdCBib3RzLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132456</attachid>
            <date>2012-03-17 03:39:07 -0700</date>
            <delta_ts>2012-03-17 18:39:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81443-20120318184104.patch</filename>
            <type>text/plain</type>
            <size>5154</size>
            <attacher name="Li Yin">li.yin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThiZTIyMDlkODFiMjk1
ZTI1NmIzNjZkYmU3MDJmOTI4MTBiNTZlYi4uMzRmZmU0MGM3NzEwMzgwMDQ4ZWEyYmM5ODAyYzgy
NWFhNTk2NzljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAzLTE3ICBMaSBZ
aW4gIDxsaS55aW5AaW50ZWwuY29tPgorCisgICAgICAgIFtXZWJTb2NrZXRdVGhlIG1pbmltYWwg
bnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE0NDMKKyAgICAgICAg
RnJvbSBSRkMgNjQ1NSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NDU1I3NlY3Rpb24t
NS4yCisgICAgICAgIHRoZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJlIHVzZWQgdG8g
ZW5jb2RlIHRoZSBsZW5ndGgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBOZXcgdGVzdCBjYXNlIDogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9pbnZhbGlkLWVuY29kZS1sZW5ndGguaHRtbAorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hh
bm5lbDo6cGFyc2VGcmFtZSk6CisKIDIwMTItMDMtMTQgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVy
c2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggNmM5
NzZhYWM5ZWUyNmYyYmU3MjViZTI4ZjVjMDIyZjFmYjA1YzI5YS4uOTg4ODQ1ZTcxZTg0ZTJlMTIy
MzVjOGEyNGUwZjM3ZmU2OTNmMGU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtNTc0LDYgKzU3NCwxNCBA
QCBXZWJTb2NrZXRDaGFubmVsOjpQYXJzZUZyYW1lUmVzdWx0IFdlYlNvY2tldENoYW5uZWw6OnBh
cnNlRnJhbWUoV2ViU29ja2V0RnJhbWUmCiAgICAgICAgICAgICBwYXlsb2FkTGVuZ3RoNjQgPDw9
IDg7CiAgICAgICAgICAgICBwYXlsb2FkTGVuZ3RoNjQgfD0gc3RhdGljX2Nhc3Q8dW5zaWduZWQg
Y2hhcj4oKnArKyk7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKGV4dGVuZGVkUGF5bG9hZExlbmd0
aFNpemUgPT0gMiAmJiBwYXlsb2FkTGVuZ3RoNjQgPD0gbWF4UGF5bG9hZExlbmd0aFdpdGhvdXRF
eHRlbmRlZExlbmd0aEZpZWxkKSB7CisgICAgICAgICAgICBmYWlsKCJUaGUgbWluaW1hbCBudW1i
ZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3RoIik7CisgICAgICAg
ICAgICByZXR1cm4gRnJhbWVFcnJvcjsKKyAgICAgICAgfQorICAgICAgICBpZiAoZXh0ZW5kZWRQ
YXlsb2FkTGVuZ3RoU2l6ZSA9PSA4ICYmIHBheWxvYWRMZW5ndGg2NCA8PSAweEZGRkYpIHsKKyAg
ICAgICAgICAgIGZhaWwoIlRoZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJlIHVzZWQg
dG8gZW5jb2RlIHRoZSBsZW5ndGgiKTsKKyAgICAgICAgICAgIHJldHVybiBGcmFtZUVycm9yOwor
ICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gRklYTUU6IFVJTlQ2NF9DKDB4N0ZGRkZGRkZGRkZG
RkZGRikgc2hvdWxkIGJlIHVzZWQgYnV0IGl0IGRpZCBub3QgY29tcGlsZSBvbiBRdCBib3RzLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9p
bnZhbGlkLWVuY29kZS1sZW5ndGgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnZhbGlkLWVuY29kZS1sZW5ndGgtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjMxOWE3N2MyOGJjZTJmNDgyYjE2YjQ0NGM1MGU2ODM5ZjhmYTc0NjAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2ludmFsaWQtZW5jb2RlLWxlbmd0aC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAor
Q09OU09MRSBNRVNTQUdFOiBUaGUgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2Vk
IHRvIGVuY29kZSB0aGUgbGVuZ3RoCitUZXN0IHdoZXRoZXIgV2ViU29ja2V0IGFib3J0cyB0aGUg
Y29ubmVjdGlvbiB3aGVuIGl0IHJlY2VpdmVzIGFuIHVuZXhwZWN0ZWQgZW5jb2RpbmcgbGVuZ3Ro
IGZyYW1lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK29ub3BlbigpIHdhcyBjYWxs
ZWQuCitvbmNsb3NlKCkgd2FzIGNhbGxlZC4KK1BBU1MgY2xvc2VFdmVudC53YXNDbGVhbiBpcyBm
YWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
aW52YWxpZC1lbmNvZGUtbGVuZ3RoLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL2ludmFsaWQtZW5jb2RlLWxlbmd0aC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2
ZDg5YTBlYjI0NjVhMGRlNjIzMjVmMGY2MjlkNGRiNDc2MTE2MmEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ludmFsaWQtZW5j
b2RlLWxlbmd0aC5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0
aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCJUZXN0IHdoZXRoZXIgV2ViU29ja2V0IGFib3J0cyB0aGUgY29ubmVjdGlvbiB3aGVuIGl0
IHJlY2VpdmVzIGFuIHVuZXhwZWN0ZWQgZW5jb2RpbmcgbGVuZ3RoIGZyYW1lLiIpOworCit3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4
aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDApOworCit2YXIgd3MgPSBuZXcgV2ViU29j
a2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ludmFsaWQtZW5j
b2RlLWxlbmd0aCIpOwordmFyIGNsb3NlRXZlbnQ7CisKK3dzLm9ub3BlbiA9IGZ1bmN0aW9uKCkK
K3sKKyAgICBkZWJ1Zygib25vcGVuKCkgd2FzIGNhbGxlZC4iKTsKK307CisKK3dzLm9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKGV2ZW50KQoreworICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YTsKKyAg
ICB0ZXN0RmFpbGVkKCJvbm1lc3NhZ2UoKSB3YXMgY2FsbGVkLiAobWVzc2FnZSA9IFwiIiArIG1l
c3NhZ2UgKyAiXCIpIik7Cit9OworCit3cy5vbmNsb3NlID0gZnVuY3Rpb24oZXZlbnQpCit7Cisg
ICAgZGVidWcoIm9uY2xvc2UoKSB3YXMgY2FsbGVkLiIpOworICAgIGNsb3NlRXZlbnQgPSBldmVu
dDsKKyAgICBzaG91bGRCZUZhbHNlKCJjbG9zZUV2ZW50Lndhc0NsZWFuIik7CisgICAgZmluaXNo
SlNUZXN0KCk7Cit9OworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9pbnZhbGlkLWVuY29kZS1sZW5ndGhfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnZhbGlkLWVuY29kZS1sZW5ndGhfd3NoLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjg2ZDJhMDhkOGE3YmNjNDNjMWEzOTUzMGZiN2NiMzhiMzM5Mjk5MjIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ludmFs
aWQtZW5jb2RlLWxlbmd0aF93c2gucHkKQEAgLTAsMCArMSwxOCBAQAorZnJvbSBtb2RfcHl3ZWJz
b2NrZXQgaW1wb3J0IGNvbW1vbgorCisKK2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFr
ZShyZXF1ZXN0KToKKyAgICBwYXNzCisKKworZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShy
ZXF1ZXN0KToKKyAgICBsZW5ndGggPSAweDBGCisKKyAgICAjIHB5d2Vic29ja2V0IHJlZnVzZXMg
dG8gY3JlYXRlIGEgZnJhbWUgd2l0aCBlcnJvciBlbmNvZGUgbGVuZ3RoLgorICAgICMgVGh1cywg
d2UgbmVlZCB0byBidWlsZCBhIGZyYW1lIG1hbnVhbGx5LgorICAgIGhlYWRlciA9IGNocigweDgw
IHwgY29tbW9uLk9QQ09ERV9URVhUKSAjIDB4ODAgaXMgZm9yICJmaW4iIGJpdC4KKyAgICBoZWFk
ZXIgKz0gY2hyKDEyNikgIyBObyBNYXNrIGFuZCB0d28gYnl0ZXMgZXh0ZW5kZWQgcGF5bG9hZCBs
ZW5ndGguCisgICAgaGVhZGVyICs9IGNocigwKQorICAgIGhlYWRlciArPSBjaHIobGVuZ3RoKQor
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZShoZWFkZXIpCisgICAgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXRlKCdYJyAqIGxlbmd0aCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132476</attachid>
            <date>2012-03-17 18:39:45 -0700</date>
            <delta_ts>2012-03-20 22:55:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81443-20120319094143.patch</filename>
            <type>text/plain</type>
            <size>6037</size>
            <attacher name="Li Yin">li.yin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThiZTIyMDlkODFiMjk1
ZTI1NmIzNjZkYmU3MDJmOTI4MTBiNTZlYi4uMzRmZmU0MGM3NzEwMzgwMDQ4ZWEyYmM5ODAyYzgy
NWFhNTk2NzljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAzLTE3ICBMaSBZ
aW4gIDxsaS55aW5AaW50ZWwuY29tPgorCisgICAgICAgIFtXZWJTb2NrZXRdVGhlIG1pbmltYWwg
bnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE0NDMKKyAgICAgICAg
RnJvbSBSRkMgNjQ1NSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NDU1I3NlY3Rpb24t
NS4yCisgICAgICAgIHRoZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJlIHVzZWQgdG8g
ZW5jb2RlIHRoZSBsZW5ndGgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBOZXcgdGVzdCBjYXNlIDogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9pbnZhbGlkLWVuY29kZS1sZW5ndGguaHRtbAorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hh
bm5lbDo6cGFyc2VGcmFtZSk6CisKIDIwMTItMDMtMTQgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVy
c2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggNmM5
NzZhYWM5ZWUyNmYyYmU3MjViZTI4ZjVjMDIyZjFmYjA1YzI5YS4uOTg4ODQ1ZTcxZTg0ZTJlMTIy
MzVjOGEyNGUwZjM3ZmU2OTNmMGU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtNTc0LDYgKzU3NCwxNCBA
QCBXZWJTb2NrZXRDaGFubmVsOjpQYXJzZUZyYW1lUmVzdWx0IFdlYlNvY2tldENoYW5uZWw6OnBh
cnNlRnJhbWUoV2ViU29ja2V0RnJhbWUmCiAgICAgICAgICAgICBwYXlsb2FkTGVuZ3RoNjQgPDw9
IDg7CiAgICAgICAgICAgICBwYXlsb2FkTGVuZ3RoNjQgfD0gc3RhdGljX2Nhc3Q8dW5zaWduZWQg
Y2hhcj4oKnArKyk7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKGV4dGVuZGVkUGF5bG9hZExlbmd0
aFNpemUgPT0gMiAmJiBwYXlsb2FkTGVuZ3RoNjQgPD0gbWF4UGF5bG9hZExlbmd0aFdpdGhvdXRF
eHRlbmRlZExlbmd0aEZpZWxkKSB7CisgICAgICAgICAgICBmYWlsKCJUaGUgbWluaW1hbCBudW1i
ZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3RoIik7CisgICAgICAg
ICAgICByZXR1cm4gRnJhbWVFcnJvcjsKKyAgICAgICAgfQorICAgICAgICBpZiAoZXh0ZW5kZWRQ
YXlsb2FkTGVuZ3RoU2l6ZSA9PSA4ICYmIHBheWxvYWRMZW5ndGg2NCA8PSAweEZGRkYpIHsKKyAg
ICAgICAgICAgIGZhaWwoIlRoZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJlIHVzZWQg
dG8gZW5jb2RlIHRoZSBsZW5ndGgiKTsKKyAgICAgICAgICAgIHJldHVybiBGcmFtZUVycm9yOwor
ICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gRklYTUU6IFVJTlQ2NF9DKDB4N0ZGRkZGRkZGRkZG
RkZGRikgc2hvdWxkIGJlIHVzZWQgYnV0IGl0IGRpZCBub3QgY29tcGlsZSBvbiBRdCBib3RzLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDZmMzZlNzIxZjYxYjRhYjEyYmI1ZjA0N2RlMDhjYTk4MTBiZDM5YTEuLmNlZDk3OTMy
NTkxMjlmZmY1NTRiZWYzNzFiNWEwNDI4NWFmMTdhM2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAxMi0wMy0xOCAgTGkgWWluICA8bGkueWluQGludGVsLmNvbT4KKworICAgICAgICBbV2ViU29j
a2V0XVRoZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJlIHVzZWQgdG8gZW5jb2RlIHRo
ZSBsZW5ndGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgxNDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ludmFsaWQtZW5jb2RlLWxlbmd0aC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5YmkvaW52YWxpZC1lbmNvZGUtbGVuZ3RoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52YWxpZC1lbmNvZGUtbGVuZ3RoX3dzaC5weTog
QWRkZWQuCisgICAgICAgICh3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSk6CisgICAgICAg
ICh3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEpOgorCiAyMDEyLTAzLTE0ICBKZXNzaWUgQmVybGlu
ICA8amJlcmxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgZnVsbHNjcmVlbi92aWRlby1jb250cm9s
cy1kcmFnLmh0bWwgZmFpbGluZyBvbiBNYWMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52YWxpZC1lbmNvZGUtbGVuZ3RoLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52YWxp
ZC1lbmNvZGUtbGVuZ3RoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTlhNzdjMjhiY2UyZjQ4
MmIxNmI0NDRjNTBlNjgzOWY4ZmE3NDYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnZhbGlkLWVuY29kZS1sZW5ndGgtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK0NPTlNPTEUgTUVTU0FHRTogVGhlIG1pbmltYWwg
bnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aAorVGVzdCB3
aGV0aGVyIFdlYlNvY2tldCBhYm9ydHMgdGhlIGNvbm5lY3Rpb24gd2hlbiBpdCByZWNlaXZlcyBh
biB1bmV4cGVjdGVkIGVuY29kaW5nIGxlbmd0aCBmcmFtZS4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCitvbm9wZW4oKSB3YXMgY2FsbGVkLgorb25jbG9zZSgpIHdhcyBjYWxsZWQuCitQ
QVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ludmFsaWQtZW5jb2RlLWxlbmd0aC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnZhbGlkLWVuY29k
ZS1sZW5ndGguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNmQ4OWEwZWIyNDY1YTBkZTYyMzI1ZjBmNjI5ZDRk
YjQ3NjExNjJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9pbnZhbGlkLWVuY29kZS1sZW5ndGguaHRtbApAQCAtMCwwICsxLDQx
IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCB3aGV0aGVyIFdlYlNvY2tldCBh
Ym9ydHMgdGhlIGNvbm5lY3Rpb24gd2hlbiBpdCByZWNlaXZlcyBhbiB1bmV4cGVjdGVkIGVuY29k
aW5nIGxlbmd0aCBmcmFtZS4iKTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5v
dmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQi
LCAwKTsKKwordmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJz
b2NrZXQvdGVzdHMvaHliaS9pbnZhbGlkLWVuY29kZS1sZW5ndGgiKTsKK3ZhciBjbG9zZUV2ZW50
OworCit3cy5vbm9wZW4gPSBmdW5jdGlvbigpCit7CisgICAgZGVidWcoIm9ub3BlbigpIHdhcyBj
YWxsZWQuIik7Cit9OworCit3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkKK3sKKyAgICB2
YXIgbWVzc2FnZSA9IGV2ZW50LmRhdGE7CisgICAgdGVzdEZhaWxlZCgib25tZXNzYWdlKCkgd2Fz
IGNhbGxlZC4gKG1lc3NhZ2UgPSBcIiIgKyBtZXNzYWdlICsgIlwiKSIpOworfTsKKword3Mub25j
bG9zZSA9IGZ1bmN0aW9uKGV2ZW50KQoreworICAgIGRlYnVnKCJvbmNsb3NlKCkgd2FzIGNhbGxl
ZC4iKTsKKyAgICBjbG9zZUV2ZW50ID0gZXZlbnQ7CisgICAgc2hvdWxkQmVGYWxzZSgiY2xvc2VF
dmVudC53YXNDbGVhbiIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfTsKKworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52YWxpZC1lbmNvZGUtbGVuZ3RoX3dzaC5w
eSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52YWxpZC1l
bmNvZGUtbGVuZ3RoX3dzaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NmQyYTA4ZDhhN2JjYzQzYzFhMzk1MzBm
YjdjYjM4YjMzOTI5OTIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnZhbGlkLWVuY29kZS1sZW5ndGhfd3NoLnB5CkBAIC0w
LDAgKzEsMTggQEAKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KKworCitkZWYg
d2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CisgICAgcGFzcworCisKK2Rl
ZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAgbGVuZ3RoID0gMHgwRgor
CisgICAgIyBweXdlYnNvY2tldCByZWZ1c2VzIHRvIGNyZWF0ZSBhIGZyYW1lIHdpdGggZXJyb3Ig
ZW5jb2RlIGxlbmd0aC4KKyAgICAjIFRodXMsIHdlIG5lZWQgdG8gYnVpbGQgYSBmcmFtZSBtYW51
YWxseS4KKyAgICBoZWFkZXIgPSBjaHIoMHg4MCB8IGNvbW1vbi5PUENPREVfVEVYVCkgIyAweDgw
IGlzIGZvciAiZmluIiBiaXQuCisgICAgaGVhZGVyICs9IGNocigxMjYpICMgTm8gTWFzayBhbmQg
dHdvIGJ5dGVzIGV4dGVuZGVkIHBheWxvYWQgbGVuZ3RoLgorICAgIGhlYWRlciArPSBjaHIoMCkK
KyAgICBoZWFkZXIgKz0gY2hyKGxlbmd0aCkKKyAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUo
aGVhZGVyKQorICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZSgnWCcgKiBsZW5ndGgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132976</attachid>
            <date>2012-03-20 22:55:55 -0700</date>
            <delta_ts>2012-03-21 17:16:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81443-20120322135758.patch</filename>
            <type>text/plain</type>
            <size>7670</size>
            <attacher name="Li Yin">li.yin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThiZTIyMDlkODFiMjk1
ZTI1NmIzNjZkYmU3MDJmOTI4MTBiNTZlYi4uOTdlZTllZDM1ZDk5YTVlMzNlYzE4ZTJiNDc2MTRj
MWFkMzcyZmVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAzLTE3ICBMaSBZ
aW4gIDxsaS55aW5AaW50ZWwuY29tPgorCisgICAgICAgIFtXZWJTb2NrZXRdVGhlIG1pbmltYWwg
bnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE0NDMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcm9tIFJGQyA2NDU1IGh0
dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY0NTUjc2VjdGlvbi01LjIKKyAgICAgICAgdGhl
IG1pbmltYWwgbnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0
aAorICAgICAgICAKKyAgICAgICAgTmV3IHRlc3QgY2FzZSA6IGh0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5YmkvaW52YWxpZC1lbmNvZGUtbGVuZ3RoLmh0bWwKKworICAgICAgICAqIE1vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlNvY2tldENoYW5uZWw6OnBhcnNlRnJhbWUpOgorCiAyMDEyLTAzLTE0ICBBbmRlcnMgQ2FybHNz
b24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGJ1aWxkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
CmluZGV4IDZjOTc2YWFjOWVlMjZmMmJlNzI1YmUyOGY1YzAyMmYxZmIwNWMyOWEuLjk4ODg0NWU3
MWU4NGUyZTEyMjM1YzhhMjRlMGYzN2ZlNjkzZjBlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTU3NCw2
ICs1NzQsMTQgQEAgV2ViU29ja2V0Q2hhbm5lbDo6UGFyc2VGcmFtZVJlc3VsdCBXZWJTb2NrZXRD
aGFubmVsOjpwYXJzZUZyYW1lKFdlYlNvY2tldEZyYW1lJgogICAgICAgICAgICAgcGF5bG9hZExl
bmd0aDY0IDw8PSA4OwogICAgICAgICAgICAgcGF5bG9hZExlbmd0aDY0IHw9IHN0YXRpY19jYXN0
PHVuc2lnbmVkIGNoYXI+KCpwKyspOwogICAgICAgICB9CisgICAgICAgIGlmIChleHRlbmRlZFBh
eWxvYWRMZW5ndGhTaXplID09IDIgJiYgcGF5bG9hZExlbmd0aDY0IDw9IG1heFBheWxvYWRMZW5n
dGhXaXRob3V0RXh0ZW5kZWRMZW5ndGhGaWVsZCkgeworICAgICAgICAgICAgZmFpbCgiVGhlIG1p
bmltYWwgbnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aCIp
OworICAgICAgICAgICAgcmV0dXJuIEZyYW1lRXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KGV4dGVuZGVkUGF5bG9hZExlbmd0aFNpemUgPT0gOCAmJiBwYXlsb2FkTGVuZ3RoNjQgPD0gMHhG
RkZGKSB7CisgICAgICAgICAgICBmYWlsKCJUaGUgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVT
VCBiZSB1c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3RoIik7CisgICAgICAgICAgICByZXR1cm4gRnJh
bWVFcnJvcjsKKyAgICAgICAgfQogICAgIH0KIAogICAgIC8vIEZJWE1FOiBVSU5UNjRfQygweDdG
RkZGRkZGRkZGRkZGRkYpIHNob3VsZCBiZSB1c2VkIGJ1dCBpdCBkaWQgbm90IGNvbXBpbGUgb24g
UXQgYm90cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA2ZjM2ZTcyMWY2MWI0YWIxMmJiNWYwNDdkZTA4Y2E5ODEwYmQzOWEx
Li5jZWQ5NzkzMjU5MTI5ZmZmNTU0YmVmMzcxYjVhMDQyODVhZjE3YTNiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTItMDMtMTggIExpIFlpbiAgPGxpLnlpbkBpbnRlbC5jb20+CisKKyAgICAg
ICAgW1dlYlNvY2tldF1UaGUgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2VkIHRv
IGVuY29kZSB0aGUgbGVuZ3RoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MTQ0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnZhbGlkLWVuY29k
ZS1sZW5ndGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL2ludmFsaWQtZW5jb2RlLWxlbmd0aC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ludmFsaWQtZW5jb2RlLWxlbmd0
aF93c2gucHk6IEFkZGVkLgorICAgICAgICAod2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2Up
OgorICAgICAgICAod2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKToKKwogMjAxMi0wMy0xNCAgSmVz
c2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIGZ1bGxzY3JlZW4vdmlk
ZW8tY29udHJvbHMtZHJhZy5odG1sIGZhaWxpbmcgb24gTWFjCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ludmFsaWQtZW5jb2RlLWxlbmd0
aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2ludmFsaWQtZW5jb2RlLWxlbmd0aC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2EyYTlj
YTNjZDljN2U5NjA0MTlkOTFkNWY2MWZiMTEzZTgyMGRlOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52YWxpZC1lbmNvZGUt
bGVuZ3RoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4IEBACitDT05TT0xFIE1FU1NBR0U6IFRo
ZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJlIHVzZWQgdG8gZW5jb2RlIHRoZSBsZW5n
dGgKK0NPTlNPTEUgTUVTU0FHRTogVGhlIG1pbmltYWwgbnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUg
dXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aAorQ09OU09MRSBNRVNTQUdFOiBUaGUgbWluaW1hbCBu
dW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3RoCitDT05TT0xF
IE1FU1NBR0U6IFRoZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJlIHVzZWQgdG8gZW5j
b2RlIHRoZSBsZW5ndGgKK1Rlc3Qgd2hldGhlciBXZWJTb2NrZXQgYWJvcnRzIHRoZSBjb25uZWN0
aW9uIHdoZW4gaXQgcmVjZWl2ZXMgYW4gdW5leHBlY3RlZCBlbmNvZGluZyBsZW5ndGggZnJhbWUu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworQ2FzZSAxMjZfMTI1OiBUZXN0IHN0YXJ0
ZWQuCitvbm9wZW4oKSB3YXMgY2FsbGVkLgorb25jbG9zZSgpIHdhcyBjYWxsZWQuCitQQVNTIGNs
b3NlRXZlbnQud2FzQ2xlYW4gaXMgZmFsc2UKK0Nhc2UgMTI2XzA6IFRlc3Qgc3RhcnRlZC4KK29u
b3BlbigpIHdhcyBjYWxsZWQuCitvbmNsb3NlKCkgd2FzIGNhbGxlZC4KK1BBU1MgY2xvc2VFdmVu
dC53YXNDbGVhbiBpcyBmYWxzZQorQ2FzZSAxMjdfNjU1MzU6IFRlc3Qgc3RhcnRlZC4KK29ub3Bl
bigpIHdhcyBjYWxsZWQuCitvbmNsb3NlKCkgd2FzIGNhbGxlZC4KK1BBU1MgY2xvc2VFdmVudC53
YXNDbGVhbiBpcyBmYWxzZQorQ2FzZSAxMjdfMDogVGVzdCBzdGFydGVkLgorb25vcGVuKCkgd2Fz
IGNhbGxlZC4KK29uY2xvc2UoKSB3YXMgY2FsbGVkLgorUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFu
IGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS9pbnZhbGlkLWVuY29kZS1sZW5ndGguaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52YWxpZC1lbmNvZGUtbGVuZ3RoLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uN2M0OTQyNzk0ODg5NzVmNzI0ZDE1NmY4YjkwMzhkOTUzMGE5ZmJiZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52YWxp
ZC1lbmNvZGUtbGVuZ3RoLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIEhUTUw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVz
Y3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRlc3Qgd2hldGhlciBXZWJTb2NrZXQgYWJvcnRzIHRoZSBjb25uZWN0aW9uIHdo
ZW4gaXQgcmVjZWl2ZXMgYW4gdW5leHBlY3RlZCBlbmNvZGluZyBsZW5ndGggZnJhbWUuIik7CisK
K3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJL
aXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMCk7CisKK3ZhciBjbG9zZUV2ZW50
OwordmFyIHBheWxvYWRfZXh0ZW5kZWQgPSBbIjEyNl8xMjUiLCAiMTI2XzAiLCAiMTI3XzY1NTM1
IiwgIjEyN18wIl07Cit2YXIgdG90YWxUZXN0U2l6ZSA9IDQ7CisKK2Z1bmN0aW9uIGRvVGVzdChj
dXJUZXN0KQoreworICAgIHZhciB1cmwgPSAid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQv
dGVzdHMvaHliaS9pbnZhbGlkLWVuY29kZS1sZW5ndGg/Y2FzZT0iICsgcGF5bG9hZF9leHRlbmRl
ZFtjdXJUZXN0XTsKKyAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7CisKKyAgICBkZWJ1
ZygiQ2FzZSAiICsgcGF5bG9hZF9leHRlbmRlZFtjdXJUZXN0XSArICI6IFRlc3Qgc3RhcnRlZC4i
KTsKKworICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGRlYnVnKCJv
bm9wZW4oKSB3YXMgY2FsbGVkLiIpOworICAgIH07CisKKyAgICB3cy5vbm1lc3NhZ2UgPSBmdW5j
dGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YTsKKyAg
ICAgICAgdGVzdEZhaWxlZCgib25tZXNzYWdlKCkgd2FzIGNhbGxlZC4gKG1lc3NhZ2UgPSBcIiIg
KyBtZXNzYWdlICsgIlwiKSIpOworICAgIH07CisKKyAgICB3cy5vbmNsb3NlID0gZnVuY3Rpb24o
ZXZlbnQpCisgICAgeworICAgICAgICBkZWJ1Zygib25jbG9zZSgpIHdhcyBjYWxsZWQuIik7Cisg
ICAgICAgIGNsb3NlRXZlbnQgPSBldmVudDsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgiY2xvc2VF
dmVudC53YXNDbGVhbiIpOworICAgICAgICBpZiAoY3VyVGVzdCA9PSB0b3RhbFRlc3RTaXplIC0g
MSkKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBkb1Rlc3QoY3VyVGVzdCArIDEpOworICAgIH07Cit9CisKK2RvVGVzdCgwKTsKKworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52YWxpZC1lbmNvZGUtbGVuZ3Ro
X3dzaC5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52
YWxpZC1lbmNvZGUtbGVuZ3RoX3dzaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZGE5ODc1ZjhjMmE2YmU5NWYy
M2JmODM4ZGNiNzgwN2E0ZTYzNWY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnZhbGlkLWVuY29kZS1sZW5ndGhfd3NoLnB5
CkBAIC0wLDAgKzEsMzIgQEAKK2ltcG9ydCByZQoraW1wb3J0IHN0cnVjdAorZnJvbSBtb2RfcHl3
ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgorCisKK2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRz
aGFrZShyZXF1ZXN0KToKKyAgICBwYXNzCisKKworZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0
YShyZXF1ZXN0KToKKyAgICBtYXRjaCA9IHJlLnNlYXJjaChyJ1w/Y2FzZT0oXGQrX1xkKykkJywg
cmVxdWVzdC53c19yZXNvdXJjZSkKKyAgICBpZiBtYXRjaCBpcyBOb25lOgorICAgICAgICBtc2d1
dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnRkFJTDogUXVlcnkgdmFsdWUgaXMgaW5jb3JyZWN0
IG9yIG1pc3NpbmcnKQorICAgICAgICByZXR1cm4KKworICAgIHBheWxvYWRMZW5ndGgsIGV4dGVu
ZGVkTGVuZ3RoID0gKG1hdGNoLmdyb3VwKDEpKS5zcGxpdCgnXycsIDEpCisgICAgcGF5bG9hZExl
bmd0aCA9IGludCAocGF5bG9hZExlbmd0aCkKKyAgICBleHRlbmRlZExlbmd0aCA9IGludCAoZXh0
ZW5kZWRMZW5ndGgpCisKKyAgICAjIHB5d2Vic29ja2V0IHJlZnVzZXMgdG8gY3JlYXRlIGEgZnJh
bWUgd2l0aCBlcnJvciBlbmNvZGUgbGVuZ3RoLgorICAgICMgVGh1cywgd2UgbmVlZCB0byBidWls
ZCBhIGZyYW1lIG1hbnVhbGx5LgorICAgIGhlYWRlciA9IGNocigweDgwIHwgY29tbW9uLk9QQ09E
RV9URVhUKSAjIDB4ODAgaXMgZm9yICJmaW4iIGJpdC4KKyAgICBoZWFkZXIgKz0gY2hyKHBheWxv
YWRMZW5ndGgpICMgTm8gTWFzayBhbmQgdHdvIGJ5dGVzIGV4dGVuZGVkIHBheWxvYWQgbGVuZ3Ro
LgorICAgIGlmIHBheWxvYWRMZW5ndGggPT0gMTI2IDoKKyAgICAgICAgaGVhZGVyICs9IHN0cnVj
dC5wYWNrKCchSCcsIGV4dGVuZGVkTGVuZ3RoKQorICAgIGVsaWYgcGF5bG9hZExlbmd0aCA9PSAx
MjcgOgorICAgICAgICBoZWFkZXIgKz0gc3RydWN0LnBhY2soJyFRJywgZXh0ZW5kZWRMZW5ndGgp
CisgICAgZWxzZSA6CisgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdGQUlM
OiBRdWVyeSB2YWx1ZSBpcyBpbmNvcnJlY3Qgb3IgbWlzc2luZycpCisgICAgICAgIHJldHVybgor
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZShoZWFkZXIpCisgICAgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXRlKCdYJyAqIGV4dGVuZGVkTGVuZ3RoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133147</attachid>
            <date>2012-03-21 17:16:37 -0700</date>
            <delta_ts>2012-03-21 18:26:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81443-20120323081841.patch</filename>
            <type>text/plain</type>
            <size>7678</size>
            <attacher name="Li Yin">li.yin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThiZTIyMDlkODFiMjk1
ZTI1NmIzNjZkYmU3MDJmOTI4MTBiNTZlYi4uOTdlZTllZDM1ZDk5YTVlMzNlYzE4ZTJiNDc2MTRj
MWFkMzcyZmVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAzLTE3ICBMaSBZ
aW4gIDxsaS55aW5AaW50ZWwuY29tPgorCisgICAgICAgIFtXZWJTb2NrZXRdVGhlIG1pbmltYWwg
bnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE0NDMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcm9tIFJGQyA2NDU1IGh0
dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY0NTUjc2VjdGlvbi01LjIKKyAgICAgICAgdGhl
IG1pbmltYWwgbnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0
aAorICAgICAgICAKKyAgICAgICAgTmV3IHRlc3QgY2FzZSA6IGh0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5YmkvaW52YWxpZC1lbmNvZGUtbGVuZ3RoLmh0bWwKKworICAgICAgICAqIE1vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlNvY2tldENoYW5uZWw6OnBhcnNlRnJhbWUpOgorCiAyMDEyLTAzLTE0ICBBbmRlcnMgQ2FybHNz
b24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGJ1aWxkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
CmluZGV4IDZjOTc2YWFjOWVlMjZmMmJlNzI1YmUyOGY1YzAyMmYxZmIwNWMyOWEuLjk4ODg0NWU3
MWU4NGUyZTEyMjM1YzhhMjRlMGYzN2ZlNjkzZjBlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTU3NCw2
ICs1NzQsMTQgQEAgV2ViU29ja2V0Q2hhbm5lbDo6UGFyc2VGcmFtZVJlc3VsdCBXZWJTb2NrZXRD
aGFubmVsOjpwYXJzZUZyYW1lKFdlYlNvY2tldEZyYW1lJgogICAgICAgICAgICAgcGF5bG9hZExl
bmd0aDY0IDw8PSA4OwogICAgICAgICAgICAgcGF5bG9hZExlbmd0aDY0IHw9IHN0YXRpY19jYXN0
PHVuc2lnbmVkIGNoYXI+KCpwKyspOwogICAgICAgICB9CisgICAgICAgIGlmIChleHRlbmRlZFBh
eWxvYWRMZW5ndGhTaXplID09IDIgJiYgcGF5bG9hZExlbmd0aDY0IDw9IG1heFBheWxvYWRMZW5n
dGhXaXRob3V0RXh0ZW5kZWRMZW5ndGhGaWVsZCkgeworICAgICAgICAgICAgZmFpbCgiVGhlIG1p
bmltYWwgbnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aCIp
OworICAgICAgICAgICAgcmV0dXJuIEZyYW1lRXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KGV4dGVuZGVkUGF5bG9hZExlbmd0aFNpemUgPT0gOCAmJiBwYXlsb2FkTGVuZ3RoNjQgPD0gMHhG
RkZGKSB7CisgICAgICAgICAgICBmYWlsKCJUaGUgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVT
VCBiZSB1c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3RoIik7CisgICAgICAgICAgICByZXR1cm4gRnJh
bWVFcnJvcjsKKyAgICAgICAgfQogICAgIH0KIAogICAgIC8vIEZJWE1FOiBVSU5UNjRfQygweDdG
RkZGRkZGRkZGRkZGRkYpIHNob3VsZCBiZSB1c2VkIGJ1dCBpdCBkaWQgbm90IGNvbXBpbGUgb24g
UXQgYm90cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA2ZjM2ZTcyMWY2MWI0YWIxMmJiNWYwNDdkZTA4Y2E5ODEwYmQzOWEx
Li5jZWQ5NzkzMjU5MTI5ZmZmNTU0YmVmMzcxYjVhMDQyODVhZjE3YTNiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTItMDMtMTggIExpIFlpbiAgPGxpLnlpbkBpbnRlbC5jb20+CisKKyAgICAg
ICAgW1dlYlNvY2tldF1UaGUgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2VkIHRv
IGVuY29kZSB0aGUgbGVuZ3RoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MTQ0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnZhbGlkLWVuY29k
ZS1sZW5ndGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL2ludmFsaWQtZW5jb2RlLWxlbmd0aC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ludmFsaWQtZW5jb2RlLWxlbmd0
aF93c2gucHk6IEFkZGVkLgorICAgICAgICAod2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2Up
OgorICAgICAgICAod2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKToKKwogMjAxMi0wMy0xNCAgSmVz
c2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIGZ1bGxzY3JlZW4vdmlk
ZW8tY29udHJvbHMtZHJhZy5odG1sIGZhaWxpbmcgb24gTWFjCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ludmFsaWQtZW5jb2RlLWxlbmd0
aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2ludmFsaWQtZW5jb2RlLWxlbmd0aC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2EyYTlj
YTNjZDljN2U5NjA0MTlkOTFkNWY2MWZiMTEzZTgyMGRlOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52YWxpZC1lbmNvZGUt
bGVuZ3RoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4IEBACitDT05TT0xFIE1FU1NBR0U6IFRo
ZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJlIHVzZWQgdG8gZW5jb2RlIHRoZSBsZW5n
dGgKK0NPTlNPTEUgTUVTU0FHRTogVGhlIG1pbmltYWwgbnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUg
dXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aAorQ09OU09MRSBNRVNTQUdFOiBUaGUgbWluaW1hbCBu
dW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3RoCitDT05TT0xF
IE1FU1NBR0U6IFRoZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJlIHVzZWQgdG8gZW5j
b2RlIHRoZSBsZW5ndGgKK1Rlc3Qgd2hldGhlciBXZWJTb2NrZXQgYWJvcnRzIHRoZSBjb25uZWN0
aW9uIHdoZW4gaXQgcmVjZWl2ZXMgYW4gdW5leHBlY3RlZCBlbmNvZGluZyBsZW5ndGggZnJhbWUu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworQ2FzZSAxMjZfMTI1OiBUZXN0IHN0YXJ0
ZWQuCitvbm9wZW4oKSB3YXMgY2FsbGVkLgorb25jbG9zZSgpIHdhcyBjYWxsZWQuCitQQVNTIGNs
b3NlRXZlbnQud2FzQ2xlYW4gaXMgZmFsc2UKK0Nhc2UgMTI2XzA6IFRlc3Qgc3RhcnRlZC4KK29u
b3BlbigpIHdhcyBjYWxsZWQuCitvbmNsb3NlKCkgd2FzIGNhbGxlZC4KK1BBU1MgY2xvc2VFdmVu
dC53YXNDbGVhbiBpcyBmYWxzZQorQ2FzZSAxMjdfNjU1MzU6IFRlc3Qgc3RhcnRlZC4KK29ub3Bl
bigpIHdhcyBjYWxsZWQuCitvbmNsb3NlKCkgd2FzIGNhbGxlZC4KK1BBU1MgY2xvc2VFdmVudC53
YXNDbGVhbiBpcyBmYWxzZQorQ2FzZSAxMjdfMDogVGVzdCBzdGFydGVkLgorb25vcGVuKCkgd2Fz
IGNhbGxlZC4KK29uY2xvc2UoKSB3YXMgY2FsbGVkLgorUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFu
IGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS9pbnZhbGlkLWVuY29kZS1sZW5ndGguaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52YWxpZC1lbmNvZGUtbGVuZ3RoLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uN2M0OTQyNzk0ODg5NzVmNzI0ZDE1NmY4YjkwMzhkOTUzMGE5ZmJiZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52YWxp
ZC1lbmNvZGUtbGVuZ3RoLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIEhUTUw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVz
Y3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRlc3Qgd2hldGhlciBXZWJTb2NrZXQgYWJvcnRzIHRoZSBjb25uZWN0aW9uIHdo
ZW4gaXQgcmVjZWl2ZXMgYW4gdW5leHBlY3RlZCBlbmNvZGluZyBsZW5ndGggZnJhbWUuIik7CisK
K3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJL
aXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMCk7CisKK3ZhciBjbG9zZUV2ZW50
OwordmFyIHBheWxvYWRfZXh0ZW5kZWQgPSBbIjEyNl8xMjUiLCAiMTI2XzAiLCAiMTI3XzY1NTM1
IiwgIjEyN18wIl07Cit2YXIgdG90YWxUZXN0U2l6ZSA9IDQ7CisKK2Z1bmN0aW9uIGRvVGVzdChj
dXJUZXN0KQoreworICAgIHZhciB1cmwgPSAid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQv
dGVzdHMvaHliaS9pbnZhbGlkLWVuY29kZS1sZW5ndGg/Y2FzZT0iICsgcGF5bG9hZF9leHRlbmRl
ZFtjdXJUZXN0XTsKKyAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7CisKKyAgICBkZWJ1
ZygiQ2FzZSAiICsgcGF5bG9hZF9leHRlbmRlZFtjdXJUZXN0XSArICI6IFRlc3Qgc3RhcnRlZC4i
KTsKKworICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGRlYnVnKCJv
bm9wZW4oKSB3YXMgY2FsbGVkLiIpOworICAgIH07CisKKyAgICB3cy5vbm1lc3NhZ2UgPSBmdW5j
dGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YTsKKyAg
ICAgICAgdGVzdEZhaWxlZCgib25tZXNzYWdlKCkgd2FzIGNhbGxlZC4gKG1lc3NhZ2UgPSBcIiIg
KyBtZXNzYWdlICsgIlwiKSIpOworICAgIH07CisKKyAgICB3cy5vbmNsb3NlID0gZnVuY3Rpb24o
ZXZlbnQpCisgICAgeworICAgICAgICBkZWJ1Zygib25jbG9zZSgpIHdhcyBjYWxsZWQuIik7Cisg
ICAgICAgIGNsb3NlRXZlbnQgPSBldmVudDsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgiY2xvc2VF
dmVudC53YXNDbGVhbiIpOworICAgICAgICBpZiAoY3VyVGVzdCA9PSB0b3RhbFRlc3RTaXplIC0g
MSkKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBkb1Rlc3QoY3VyVGVzdCArIDEpOworICAgIH07Cit9CisKK2RvVGVzdCgwKTsKKworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52YWxpZC1lbmNvZGUtbGVuZ3Ro
X3dzaC5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52
YWxpZC1lbmNvZGUtbGVuZ3RoX3dzaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjg3OWZkNjI4NmU2NTBmMTc2
YjZhZmEzMjUyNWI2NzRkZDAwM2ZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnZhbGlkLWVuY29kZS1sZW5ndGhfd3NoLnB5
CkBAIC0wLDAgKzEsMzIgQEAKK2ltcG9ydCByZQoraW1wb3J0IHN0cnVjdAorZnJvbSBtb2RfcHl3
ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgorCisKK2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRz
aGFrZShyZXF1ZXN0KToKKyAgICBwYXNzCisKKworZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0
YShyZXF1ZXN0KToKKyAgICBtYXRjaCA9IHJlLnNlYXJjaChyJ1w/Y2FzZT0oXGQrX1xkKykkJywg
cmVxdWVzdC53c19yZXNvdXJjZSkKKyAgICBpZiBtYXRjaCBpcyBOb25lOgorICAgICAgICBtc2d1
dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnRkFJTDogUXVlcnkgdmFsdWUgaXMgaW5jb3JyZWN0
IG9yIG1pc3NpbmcnKQorICAgICAgICByZXR1cm4KKworICAgIHBheWxvYWRfbGVuZ3RoLCBleHRl
bmRlZF9sZW5ndGggPSAobWF0Y2guZ3JvdXAoMSkpLnNwbGl0KCdfJywgMSkKKyAgICBwYXlsb2Fk
X2xlbmd0aCA9IGludChwYXlsb2FkX2xlbmd0aCkKKyAgICBleHRlbmRlZF9sZW5ndGggPSBpbnQo
ZXh0ZW5kZWRfbGVuZ3RoKQorCisgICAgIyBweXdlYnNvY2tldCByZWZ1c2VzIHRvIGNyZWF0ZSBh
IGZyYW1lIHdpdGggZXJyb3IgZW5jb2RlIGxlbmd0aC4KKyAgICAjIFRodXMsIHdlIG5lZWQgdG8g
YnVpbGQgYSBmcmFtZSBtYW51YWxseS4KKyAgICBoZWFkZXIgPSBjaHIoMHg4MCB8IGNvbW1vbi5P
UENPREVfVEVYVCkgIyAweDgwIGlzIGZvciAiZmluIiBiaXQuCisgICAgaGVhZGVyICs9IGNocihw
YXlsb2FkX2xlbmd0aCkgIyBObyBNYXNrIGFuZCB0d28gYnl0ZXMgZXh0ZW5kZWQgcGF5bG9hZCBs
ZW5ndGguCisgICAgaWYgcGF5bG9hZF9sZW5ndGggPT0gMTI2OgorICAgICAgICBoZWFkZXIgKz0g
c3RydWN0LnBhY2soJyFIJywgZXh0ZW5kZWRfbGVuZ3RoKQorICAgIGVsaWYgcGF5bG9hZF9sZW5n
dGggPT0gMTI3OgorICAgICAgICBoZWFkZXIgKz0gc3RydWN0LnBhY2soJyFRJywgZXh0ZW5kZWRf
bGVuZ3RoKQorICAgIGVsc2UgOgorICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0
LCAnRkFJTDogUXVlcnkgdmFsdWUgaXMgaW5jb3JyZWN0IG9yIG1pc3NpbmcnKQorICAgICAgICBy
ZXR1cm4KKyAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoaGVhZGVyKQorICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi53cml0ZSgnWCcgKiBleHRlbmRlZF9sZW5ndGgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133162</attachid>
            <date>2012-03-21 18:26:50 -0700</date>
            <delta_ts>2012-03-22 23:04:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81443-20120323092854.patch</filename>
            <type>text/plain</type>
            <size>7677</size>
            <attacher name="Li Yin">li.yin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThiZTIyMDlkODFiMjk1
ZTI1NmIzNjZkYmU3MDJmOTI4MTBiNTZlYi4uOTdlZTllZDM1ZDk5YTVlMzNlYzE4ZTJiNDc2MTRj
MWFkMzcyZmVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAzLTE3ICBMaSBZ
aW4gIDxsaS55aW5AaW50ZWwuY29tPgorCisgICAgICAgIFtXZWJTb2NrZXRdVGhlIG1pbmltYWwg
bnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE0NDMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcm9tIFJGQyA2NDU1IGh0
dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY0NTUjc2VjdGlvbi01LjIKKyAgICAgICAgdGhl
IG1pbmltYWwgbnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0
aAorICAgICAgICAKKyAgICAgICAgTmV3IHRlc3QgY2FzZSA6IGh0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5YmkvaW52YWxpZC1lbmNvZGUtbGVuZ3RoLmh0bWwKKworICAgICAgICAqIE1vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlNvY2tldENoYW5uZWw6OnBhcnNlRnJhbWUpOgorCiAyMDEyLTAzLTE0ICBBbmRlcnMgQ2FybHNz
b24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGJ1aWxkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
CmluZGV4IDZjOTc2YWFjOWVlMjZmMmJlNzI1YmUyOGY1YzAyMmYxZmIwNWMyOWEuLjk4ODg0NWU3
MWU4NGUyZTEyMjM1YzhhMjRlMGYzN2ZlNjkzZjBlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTU3NCw2
ICs1NzQsMTQgQEAgV2ViU29ja2V0Q2hhbm5lbDo6UGFyc2VGcmFtZVJlc3VsdCBXZWJTb2NrZXRD
aGFubmVsOjpwYXJzZUZyYW1lKFdlYlNvY2tldEZyYW1lJgogICAgICAgICAgICAgcGF5bG9hZExl
bmd0aDY0IDw8PSA4OwogICAgICAgICAgICAgcGF5bG9hZExlbmd0aDY0IHw9IHN0YXRpY19jYXN0
PHVuc2lnbmVkIGNoYXI+KCpwKyspOwogICAgICAgICB9CisgICAgICAgIGlmIChleHRlbmRlZFBh
eWxvYWRMZW5ndGhTaXplID09IDIgJiYgcGF5bG9hZExlbmd0aDY0IDw9IG1heFBheWxvYWRMZW5n
dGhXaXRob3V0RXh0ZW5kZWRMZW5ndGhGaWVsZCkgeworICAgICAgICAgICAgZmFpbCgiVGhlIG1p
bmltYWwgbnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aCIp
OworICAgICAgICAgICAgcmV0dXJuIEZyYW1lRXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KGV4dGVuZGVkUGF5bG9hZExlbmd0aFNpemUgPT0gOCAmJiBwYXlsb2FkTGVuZ3RoNjQgPD0gMHhG
RkZGKSB7CisgICAgICAgICAgICBmYWlsKCJUaGUgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVT
VCBiZSB1c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3RoIik7CisgICAgICAgICAgICByZXR1cm4gRnJh
bWVFcnJvcjsKKyAgICAgICAgfQogICAgIH0KIAogICAgIC8vIEZJWE1FOiBVSU5UNjRfQygweDdG
RkZGRkZGRkZGRkZGRkYpIHNob3VsZCBiZSB1c2VkIGJ1dCBpdCBkaWQgbm90IGNvbXBpbGUgb24g
UXQgYm90cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA2ZjM2ZTcyMWY2MWI0YWIxMmJiNWYwNDdkZTA4Y2E5ODEwYmQzOWEx
Li5jZWQ5NzkzMjU5MTI5ZmZmNTU0YmVmMzcxYjVhMDQyODVhZjE3YTNiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTItMDMtMTggIExpIFlpbiAgPGxpLnlpbkBpbnRlbC5jb20+CisKKyAgICAg
ICAgW1dlYlNvY2tldF1UaGUgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2VkIHRv
IGVuY29kZSB0aGUgbGVuZ3RoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MTQ0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnZhbGlkLWVuY29k
ZS1sZW5ndGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL2ludmFsaWQtZW5jb2RlLWxlbmd0aC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ludmFsaWQtZW5jb2RlLWxlbmd0
aF93c2gucHk6IEFkZGVkLgorICAgICAgICAod2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2Up
OgorICAgICAgICAod2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKToKKwogMjAxMi0wMy0xNCAgSmVz
c2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIGZ1bGxzY3JlZW4vdmlk
ZW8tY29udHJvbHMtZHJhZy5odG1sIGZhaWxpbmcgb24gTWFjCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ludmFsaWQtZW5jb2RlLWxlbmd0
aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2ludmFsaWQtZW5jb2RlLWxlbmd0aC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2EyYTlj
YTNjZDljN2U5NjA0MTlkOTFkNWY2MWZiMTEzZTgyMGRlOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52YWxpZC1lbmNvZGUt
bGVuZ3RoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4IEBACitDT05TT0xFIE1FU1NBR0U6IFRo
ZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJlIHVzZWQgdG8gZW5jb2RlIHRoZSBsZW5n
dGgKK0NPTlNPTEUgTUVTU0FHRTogVGhlIG1pbmltYWwgbnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUg
dXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aAorQ09OU09MRSBNRVNTQUdFOiBUaGUgbWluaW1hbCBu
dW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3RoCitDT05TT0xF
IE1FU1NBR0U6IFRoZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJlIHVzZWQgdG8gZW5j
b2RlIHRoZSBsZW5ndGgKK1Rlc3Qgd2hldGhlciBXZWJTb2NrZXQgYWJvcnRzIHRoZSBjb25uZWN0
aW9uIHdoZW4gaXQgcmVjZWl2ZXMgYW4gdW5leHBlY3RlZCBlbmNvZGluZyBsZW5ndGggZnJhbWUu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworQ2FzZSAxMjZfMTI1OiBUZXN0IHN0YXJ0
ZWQuCitvbm9wZW4oKSB3YXMgY2FsbGVkLgorb25jbG9zZSgpIHdhcyBjYWxsZWQuCitQQVNTIGNs
b3NlRXZlbnQud2FzQ2xlYW4gaXMgZmFsc2UKK0Nhc2UgMTI2XzA6IFRlc3Qgc3RhcnRlZC4KK29u
b3BlbigpIHdhcyBjYWxsZWQuCitvbmNsb3NlKCkgd2FzIGNhbGxlZC4KK1BBU1MgY2xvc2VFdmVu
dC53YXNDbGVhbiBpcyBmYWxzZQorQ2FzZSAxMjdfNjU1MzU6IFRlc3Qgc3RhcnRlZC4KK29ub3Bl
bigpIHdhcyBjYWxsZWQuCitvbmNsb3NlKCkgd2FzIGNhbGxlZC4KK1BBU1MgY2xvc2VFdmVudC53
YXNDbGVhbiBpcyBmYWxzZQorQ2FzZSAxMjdfMDogVGVzdCBzdGFydGVkLgorb25vcGVuKCkgd2Fz
IGNhbGxlZC4KK29uY2xvc2UoKSB3YXMgY2FsbGVkLgorUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFu
IGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS9pbnZhbGlkLWVuY29kZS1sZW5ndGguaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52YWxpZC1lbmNvZGUtbGVuZ3RoLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uN2M0OTQyNzk0ODg5NzVmNzI0ZDE1NmY4YjkwMzhkOTUzMGE5ZmJiZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52YWxp
ZC1lbmNvZGUtbGVuZ3RoLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIEhUTUw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVz
Y3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRlc3Qgd2hldGhlciBXZWJTb2NrZXQgYWJvcnRzIHRoZSBjb25uZWN0aW9uIHdo
ZW4gaXQgcmVjZWl2ZXMgYW4gdW5leHBlY3RlZCBlbmNvZGluZyBsZW5ndGggZnJhbWUuIik7CisK
K3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJL
aXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMCk7CisKK3ZhciBjbG9zZUV2ZW50
OwordmFyIHBheWxvYWRfZXh0ZW5kZWQgPSBbIjEyNl8xMjUiLCAiMTI2XzAiLCAiMTI3XzY1NTM1
IiwgIjEyN18wIl07Cit2YXIgdG90YWxUZXN0U2l6ZSA9IDQ7CisKK2Z1bmN0aW9uIGRvVGVzdChj
dXJUZXN0KQoreworICAgIHZhciB1cmwgPSAid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQv
dGVzdHMvaHliaS9pbnZhbGlkLWVuY29kZS1sZW5ndGg/Y2FzZT0iICsgcGF5bG9hZF9leHRlbmRl
ZFtjdXJUZXN0XTsKKyAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7CisKKyAgICBkZWJ1
ZygiQ2FzZSAiICsgcGF5bG9hZF9leHRlbmRlZFtjdXJUZXN0XSArICI6IFRlc3Qgc3RhcnRlZC4i
KTsKKworICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGRlYnVnKCJv
bm9wZW4oKSB3YXMgY2FsbGVkLiIpOworICAgIH07CisKKyAgICB3cy5vbm1lc3NhZ2UgPSBmdW5j
dGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YTsKKyAg
ICAgICAgdGVzdEZhaWxlZCgib25tZXNzYWdlKCkgd2FzIGNhbGxlZC4gKG1lc3NhZ2UgPSBcIiIg
KyBtZXNzYWdlICsgIlwiKSIpOworICAgIH07CisKKyAgICB3cy5vbmNsb3NlID0gZnVuY3Rpb24o
ZXZlbnQpCisgICAgeworICAgICAgICBkZWJ1Zygib25jbG9zZSgpIHdhcyBjYWxsZWQuIik7Cisg
ICAgICAgIGNsb3NlRXZlbnQgPSBldmVudDsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgiY2xvc2VF
dmVudC53YXNDbGVhbiIpOworICAgICAgICBpZiAoY3VyVGVzdCA9PSB0b3RhbFRlc3RTaXplIC0g
MSkKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBkb1Rlc3QoY3VyVGVzdCArIDEpOworICAgIH07Cit9CisKK2RvVGVzdCgwKTsKKworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52YWxpZC1lbmNvZGUtbGVuZ3Ro
X3dzaC5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW52
YWxpZC1lbmNvZGUtbGVuZ3RoX3dzaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmJkZWE0Mjk4YTBlM2Y3MWNk
NGVhMjkxYmZlMTdiY2ZiZDRmMWIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnZhbGlkLWVuY29kZS1sZW5ndGhfd3NoLnB5
CkBAIC0wLDAgKzEsMzIgQEAKK2ltcG9ydCByZQoraW1wb3J0IHN0cnVjdAorZnJvbSBtb2RfcHl3
ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgorCisKK2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRz
aGFrZShyZXF1ZXN0KToKKyAgICBwYXNzCisKKworZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0
YShyZXF1ZXN0KToKKyAgICBtYXRjaCA9IHJlLnNlYXJjaChyJ1w/Y2FzZT0oXGQrX1xkKykkJywg
cmVxdWVzdC53c19yZXNvdXJjZSkKKyAgICBpZiBtYXRjaCBpcyBOb25lOgorICAgICAgICBtc2d1
dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnRkFJTDogUXVlcnkgdmFsdWUgaXMgaW5jb3JyZWN0
IG9yIG1pc3NpbmcnKQorICAgICAgICByZXR1cm4KKworICAgIHBheWxvYWRfbGVuZ3RoLCBleHRl
bmRlZF9sZW5ndGggPSAobWF0Y2guZ3JvdXAoMSkpLnNwbGl0KCdfJywgMSkKKyAgICBwYXlsb2Fk
X2xlbmd0aCA9IGludChwYXlsb2FkX2xlbmd0aCkKKyAgICBleHRlbmRlZF9sZW5ndGggPSBpbnQo
ZXh0ZW5kZWRfbGVuZ3RoKQorCisgICAgIyBweXdlYnNvY2tldCByZWZ1c2VzIHRvIGNyZWF0ZSBh
IGZyYW1lIHdpdGggZXJyb3IgZW5jb2RlIGxlbmd0aC4KKyAgICAjIFRodXMsIHdlIG5lZWQgdG8g
YnVpbGQgYSBmcmFtZSBtYW51YWxseS4KKyAgICBoZWFkZXIgPSBjaHIoMHg4MCB8IGNvbW1vbi5P
UENPREVfVEVYVCkgIyAweDgwIGlzIGZvciAiZmluIiBiaXQuCisgICAgaGVhZGVyICs9IGNocihw
YXlsb2FkX2xlbmd0aCkgIyBObyBNYXNrIGFuZCB0d28gYnl0ZXMgZXh0ZW5kZWQgcGF5bG9hZCBs
ZW5ndGguCisgICAgaWYgcGF5bG9hZF9sZW5ndGggPT0gMTI2OgorICAgICAgICBoZWFkZXIgKz0g
c3RydWN0LnBhY2soJyFIJywgZXh0ZW5kZWRfbGVuZ3RoKQorICAgIGVsaWYgcGF5bG9hZF9sZW5n
dGggPT0gMTI3OgorICAgICAgICBoZWFkZXIgKz0gc3RydWN0LnBhY2soJyFRJywgZXh0ZW5kZWRf
bGVuZ3RoKQorICAgIGVsc2U6CisgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3Qs
ICdGQUlMOiBRdWVyeSB2YWx1ZSBpcyBpbmNvcnJlY3Qgb3IgbWlzc2luZycpCisgICAgICAgIHJl
dHVybgorICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZShoZWFkZXIpCisgICAgcmVxdWVzdC5j
b25uZWN0aW9uLndyaXRlKCdYJyAqIGV4dGVuZGVkX2xlbmd0aCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>