<?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>31097</bug_id>
          
          <creation_ts>2009-11-03 21:31:07 -0800</creation_ts>
          <short_desc>&lt;FORM&gt; sends the form-data to the URL specified in &quot;action&quot; only once.</short_desc>
          <delta_ts>2010-06-11 12:13:39 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc>http://blog.sina.com.cn/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>39021</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hanrui">hanrui.gao</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>jnd</cc>
    
    <cc>johnnyding.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>160309</commentid>
    <comment_count>0</comment_count>
      <attachid>42447</attachid>
    <who name="Hanrui">hanrui.gao</who>
    <bug_when>2009-11-03 21:31:07 -0800</bug_when>
    <thetext>Created attachment 42447
Screenshot for your reference.

Other browsers tested:
Add OK or FAIL after other browsers where you have tested this issue:
     Safari 4: Fail
  Firefox 3.x: OK
         IE 7: OK
         IE 8: OK

What steps will reproduce the problem?
    1. Launch Safari
    2. Load http://blog.sina.com.cn/
    3. Type any words in the input box
    4. Click &quot;搜索&quot;. Then it will open a window or tab for results. 
    5. Back to original window or tab, click &quot;搜索&quot; again.

What is the expected result?
It should open a new window or tab to show the search result again.

What happens instead?
No result window nor tab has been opened.

Please provide any additional information below. Attach a screenshot if
possible.
1. When you go back to the original window or tab and press any key, and 
click the &quot;搜索&quot; button again, a new window/tab with search result will be 
shown.
2. When you go back to the original window or tab and press the &quot;Enter&quot; key  
in the input box, the result page could be shown.

So the issue seems to be that the &lt;form&gt; could not send the form-data 
continuously when there&apos;s no keyboard event happened between the submit 
button clicking. (Refer to my test-cases attached.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160310</commentid>
    <comment_count>1</comment_count>
      <attachid>42448</attachid>
    <who name="Hanrui">hanrui.gao</who>
    <bug_when>2009-11-03 21:31:27 -0800</bug_when>
    <thetext>Created attachment 42448
Testcase of quirks mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160311</commentid>
    <comment_count>2</comment_count>
      <attachid>42449</attachid>
    <who name="Hanrui">hanrui.gao</who>
    <bug_when>2009-11-03 21:31:45 -0800</bug_when>
    <thetext>Created attachment 42449
Testcase of standards mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160315</commentid>
    <comment_count>3</comment_count>
    <who name="Hanrui">hanrui.gao</who>
    <bug_when>2009-11-03 21:53:21 -0800</bug_when>
    <thetext>This bug is triggered when:
&lt;form&gt; has target attribute set to &quot;_blank&quot;
AND the form has a submit button</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160326</commentid>
    <comment_count>4</comment_count>
    <who name="Hanrui">hanrui.gao</who>
    <bug_when>2009-11-03 23:00:35 -0800</bug_when>
    <thetext>The second item is not an essential condition, look at the page again (http://blog.sina.com.cn/), the clicking the Google icon will lead you to Google homepage. However it could not trigger two times if you click it continuously (without any keyboard event between the icon clicks).
The Google icon is outside the form, it take the action by the codes below:
&lt;a id=&quot;sbox_change_google&quot; href=&quot;javascript:void(0)&quot;&gt;
  &lt;img height=&quot;23&quot; width=&quot;94&quot; alt=&quot;Google&quot; src=&quot;http://i2.sinaimg.cn/lx/deco/2007/1229/standard_header_channel_google.gif&quot;/&gt;
&lt;/a&gt;

sina.$(&quot;sbox_change_google&quot;).onclick = function(){
    submitFormWithChannel(&quot;tlogo&quot;);
};

function submitFormWithChannel(a) {
    if (document.gform.q.value == &quot;\u8BF7\u8F93\u5173\u952E\u8BCD&quot; ||
        document.gform.q.value == &quot;\u8BF7\u8F93\u5165\u5173\u952E\u5B57&quot; ||
        document.gform.q.value == &quot;&quot;) {
        document.gform.q.value = &quot;&quot;;
        document.gform.channel.value = a;
        document.gform.submit();
    } else {
        document.gform.channel.value = a;
        document.gform.submit();
        return;
    }
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160327</commentid>
    <comment_count>5</comment_count>
      <attachid>42451</attachid>
    <who name="Hanrui">hanrui.gao</who>
    <bug_when>2009-11-03 23:01:10 -0800</bug_when>
    <thetext>Created attachment 42451
The screenshot showing the Google icon cannot work twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165680</commentid>
    <comment_count>6</comment_count>
    <who name="Hanrui">hanrui.gao</who>
    <bug_when>2009-11-21 18:20:55 -0800</bug_when>
    <thetext>Another page which has same issue: http://flash.17173.com/
The orange &quot;Go&quot; button cannot lead to search result page twice (or even more).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177538</commentid>
    <comment_count>7</comment_count>
    <who name="Hanrui">hanrui.gao</who>
    <bug_when>2010-01-05 22:02:03 -0800</bug_when>
    <thetext>Based on our dedicated human testing to chinese web sites, the same issue also
applies to the following sites:

http://club.china.com
http://news.cctv.com
http://pc.2u.com.cn
http://www.52blackberry.com
http://chaxun.1616.net
http://www.abang.com
http://club2.cat898.com/newbbs/dispbbs.asp?boardid=1&amp;id=3130543
http://www.chetx.com
http://www.cn910.net
http://www.cnbeta.com</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181463</commentid>
    <comment_count>8</comment_count>
    <who name="Johnny(Jianning) Ding">jnd</who>
    <bug_when>2010-01-15 19:55:37 -0800</bug_when>
    <thetext>After digging in WebCore, I found this problem was because the algorithm of preventing a single form from submitting more than once. (The logic is in FrameLoader::submitForm.)

I am not familiar with the context of the multiple form submission issue. So I had a few questions for this algorithm. Please correct me if those questions looks stupid:)

1. I checked the situation of submitting a single form more than once on both IE and Firefox. They do allow this. Why WebKit disallow this behavior if people explicitly want to do this. Please check comments #5 on http://crbug.com/26662.

2. According to the comments of current algorithm of suppressing multiple form submissions (line 471, FrameLoader.cc), when starting handle a new mouse or key down event, m_submittedFormURL will be reset to empty to allow another submission. Which means this algorithm does allow users to explicitly submit more than once on a single form. Am I right?

3. Although above comments said when handing a new mouse event or key down event, m_submittedFormURL will be reset to empty to allow another submission. But the truth is only key event was taken care.
When testing on http://club.china.com, after the first submission, if you click the search button again, nothing happened. But when you press keyboard on anywhere of webpage (didn&apos;t need to focus on the query input control to change the query), then click the search button again, a new tab will be opened for same query (if didn&apos;t change the query).  This behavior really makes users confused.

4. In current algorithm, it checked the frame target. If the current frame is descendant of the target frame, m_submittedFormURL would be used to check whether this submission is as same as previous one.(line 479-482, FrameLoader.cc) But the thing also makes me confused is when frame target is &quot;_blank&quot;, the above logic also was hit. I think the &quot;_blank&quot; frame is obviously not ancestor of any frame. After checking the code, I think it was because we passed current frame to target frame when not finding out the target frame by name of target frame since findFrameForNavigation will return NULL when input is &quot;_blank&quot;. I personally this it should be a error. When I checked the original patch (https://bugs.webkit.org/attachment.cgi?id=29178&amp;action=diff), the original logic of checking target frame looked right.

If you agree with my analysis. I gonna provide a patch to fix this issue.

A immature idea to ignore too frequent submission and allow normal multiple submissions for a simple form is to add a timer to reset the m_submittedFormURL. For example, after submitting a form, a 3 seconds timer will be created to reset the m_submittedFormURL, so in the 3 seconds, users can not re-submit the form until if timer is expired. Just for your reference

So far I don&apos;t have other ideas to fix the multiple form submission issue in another better way, What I want to do to fix above problems in current way are.

1) correct the logic of checking frame target, the pseudo code looks like
    bool foundTarget = true; 
    Frame* targetFrame = findFrameForNavigation(targetOrBaseTarget);
    if (!targetFrame) {
        foundTarget = false;
        targetFrame = m_frame;
        frameRequest.setFrameName(targetOrBaseTarget);
    }
    ...
    if (foundTarget &amp;&amp; m_frame-&gt;tree()-&gt;isDescendantOf(targetFrame)) {
    ...

2) add the logic of reset multiple form submission protection when handling a mouse press event
EventHandler::handleMousePressEvent(...) {
   ...
   m_frame-&gt;loader()-&gt;resetMultipleFormSubmissionProtection();
}

3) add a layout test to test multiple submission.

I am looking forward to your feedback.
Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186210</commentid>
    <comment_count>9</comment_count>
    <who name="Johnny(Jianning) Ding">jnd</who>
    <bug_when>2010-01-31 10:55:35 -0800</bug_when>
    <thetext>Since now WebCore intends to empty m_submittedFormURL in a mouse or key down event, I personally think it is unnecessary to check the descendant relationship between current frame and target frame before comparing the previous submitted URL (m_submittedFormURL) and current submitting URL. Please refer to my patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186225</commentid>
    <comment_count>10</comment_count>
      <attachid>47798</attachid>
    <who name="Johnny(Jianning) Ding">jnd</who>
    <bug_when>2010-01-31 13:24:57 -0800</bug_when>
    <thetext>Created attachment 47798
patch to allow the multiple submission of a single form when they are user-initiated and disallow the multiple submission of a single form when they are not user-initiated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191234</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-17 14:46:30 -0800</bug_when>
    <thetext>Johnny: Any guess from the changed code who should best review this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192389</commentid>
    <comment_count>12</comment_count>
    <who name="Johnny(Jianning) Ding">jnd</who>
    <bug_when>2010-02-22 01:40:42 -0800</bug_when>
    <thetext>Hi Eric
Actually I have no idea about the reviewers. After digging in the change http://trac.webkit.org/changeset/19940 from trac.webkit.org, I guess Maciej or  Antti may be interest in this patch:)

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197245</commentid>
    <comment_count>13</comment_count>
      <attachid>47798</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-08 11:13:42 -0800</bug_when>
    <thetext>Comment on attachment 47798
patch to allow the multiple submission of a single form when they are user-initiated and disallow the multiple submission of a single form when they are not user-initiated.

Looks like I&apos;m as good a reviewer as you&apos;re going to get.  :)

This patch looks good.  Our current way of tracking whether we&apos;re handling a user input event is super lame, but I don&apos;t think we should block this patch on fixing that.

Please spellcheck your comments before landing.  For example, &quot;subssion&quot; is misspelled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197534</commentid>
    <comment_count>14</comment_count>
      <attachid>50292</attachid>
    <who name="Johnny(Jianning) Ding">jnd</who>
    <bug_when>2010-03-09 04:44:07 -0800</bug_when>
    <thetext>Created attachment 50292
patch after spell checking

Thanks Adam!

Sorry for the misspelling. This patch is as same as the patch you reviewed except I have done spell correction in this patch. I have also done the webkit-tests to make sure it didn&apos;t break the latest webkit tests.
Unfortunately I am still not a committer, so I have to leave this patch to you to help me land.

Thanks again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197559</commentid>
    <comment_count>15</comment_count>
      <attachid>50292</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-09 07:11:46 -0800</bug_when>
    <thetext>Comment on attachment 50292
patch after spell checking

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198293</commentid>
    <comment_count>16</comment_count>
      <attachid>50292</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-10 13:16:23 -0800</bug_when>
    <thetext>Comment on attachment 50292
patch after spell checking

Rejecting patch 50292 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--exit-after-n-failures=1&apos;, &apos;--quiet&apos;]&quot; exit_code: 1
Running build-dumprendertree
Compiling Java tests
make: Nothing to be done for `default&apos;.
Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
Testing 12468 test cases.
fast/encoding/char-encoding-mac.html -&gt; failed

Exiting early after 1 failures. 6166 tests run.
109.95s total testing time

6165 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
3 test cases (&lt;1%) had stderr output

Full output: http://webkit-commit-queue.appspot.com/results/545028</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198342</commentid>
    <comment_count>17</comment_count>
      <attachid>50292</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-10 14:23:07 -0800</bug_when>
    <thetext>Comment on attachment 50292
patch after spell checking

Lets try that again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198927</commentid>
    <comment_count>18</comment_count>
      <attachid>50292</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-11 21:54:14 -0800</bug_when>
    <thetext>Comment on attachment 50292
patch after spell checking

Rejecting patch 50292 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--exit-after-n-failures=1&apos;, &apos;--quiet&apos;]&quot; exit_code: 1
Running build-dumprendertree
Compiling Java tests
make: Nothing to be done for `default&apos;.
Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
Testing 12474 test cases.
fast/encoding/char-encoding-mac.html -&gt; failed

Exiting early after 1 failures. 6167 tests run.
108.78s total testing time

6166 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
3 test cases (&lt;1%) had stderr output

Full output: http://webkit-commit-queue.appspot.com/results/657008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198928</commentid>
    <comment_count>19</comment_count>
      <attachid>50292</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-11 21:56:48 -0800</bug_when>
    <thetext>Comment on attachment 50292
patch after spell checking

Looks like a real failure introduced by this patch.  Marking r- since it appears to break a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198929</commentid>
    <comment_count>20</comment_count>
    <who name="Johnny(Jianning) Ding">jnd</who>
    <bug_when>2010-03-11 22:07:44 -0800</bug_when>
    <thetext>I am checking this failure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198954</commentid>
    <comment_count>21</comment_count>
    <who name="Johnny(Jianning) Ding">jnd</who>
    <bug_when>2010-03-12 00:23:22 -0800</bug_when>
    <thetext>This is because fast/encoding/resources/char-encoding-utils.js, it had multiple submissions for a single form triggered by script (those submission were not user-initiated). So the WebKit&apos;s multiple submissions protection for single form took effect to disallow the multiple submissions, which caused the related charset encoding tests were failed.

Those tests were successful on previous webkit revisions is because int those revisions, the multiple submissions protection check was only triggered when the current frame (frame of sending submission) is descendant of the target frame (or the target frame is &quot;_blank&quot;, which was wrong). Actually in the old revisions, the multiple submissions protection was not active when running charset-encoding tests.

In this patch, I removed the unnecessary to check the descendant relationship, so the multiple submissions protection is active and takes effect.
I am sorry I didn&apos;t dig in the charset-encoding failures for previous patch. I thought they were just timeout issues.

I am modifying related affected tests to pass them. 
A new patch will be uploaded soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198963</commentid>
    <comment_count>22</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-03-12 01:28:28 -0800</bug_when>
    <thetext>&gt; I am modifying related affected tests to pass them. 

Is this the right thing to do? The test works in Firefox, so it sounds like the patch actually regresses behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198998</commentid>
    <comment_count>23</comment_count>
    <who name="Johnny(Jianning) Ding">jnd</who>
    <bug_when>2010-03-12 06:05:43 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; &gt; I am modifying related affected tests to pass them. 
&gt; 
&gt; Is this the right thing to do? The test works in Firefox, so it sounds like the
&gt; patch actually regresses behavior.

Thanks for comments, Alexey!

I didn&apos;t dig in the code of form submission in Firefox, but it looks Firefox does not have the multiple submission protection logic since all above sites work well in Firefox without this issue.

If WebKit community thinks a single form can have multiple non user-initiated submission (such as submission triggered by continuous calling form.submit()), then my patch is unnecessary. Otherwise the test needs to be changed.

Actually user can easily skip the multiple submission protection by adding a random and useless query parameter, this is also how I change the test.
@char-encoding-utils.js
line 57 form.action = &quot;resources/dummy.html?&quot; + i;
There is no test logic changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199036</commentid>
    <comment_count>24</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-12 07:22:31 -0800</bug_when>
    <thetext>&gt; I didn&apos;t dig in the code of form submission in Firefox, but it looks Firefox
&gt; does not have the multiple submission protection logic since all above sites
&gt; work well in Firefox without this issue.

Generally, it&apos;s a good idea to match Firefox unless there&apos;s a compelling reason not to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199075</commentid>
    <comment_count>25</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-03-12 08:42:27 -0800</bug_when>
    <thetext>I think we should just rip the whole multiple form submission protection out. It&apos;s pretty much disabled today and only shows up in the edge cases as an incompatibility, as reported on this bug. I have it on my todo list to make sure this doesn&apos;t introduce any regressions, and then sayonara baby.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199077</commentid>
    <comment_count>26</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-03-12 08:45:03 -0800</bug_when>
    <thetext>Just as a historical reference, multiple form submission protection has been implemented in the early days of WebKit to fix a particular important site that complained about the user being already logged in. Information in the bug is incomplete, and it&apos;s not clear if the change was in fact the best way to fix the problem. There are signs that it was working around some issue with keyboard event handling which made WebKit submit a form twice when a user pressed Enter, as opposed to clicking.

I used to think that multiple form submission was meant to protect against POSTing forms twice when someone double clicks a button (which many users actually do). But it turns out that this wasn&apos;t the original motivation for adding the code.

I think that the difference between WebKit and Firefox is captured in bug 13012. Firefox seems to protect against multiple form submission implicitly by replacing a pending submission with a new one.

See also bug 33513, bug 34315, bug 4847, bug 13011, bug 13012, bug 11420, bug 16886, bug 16930. Most of these can probably be fixed with a single check-in, but I hesitated to resolve any as duplicates so far.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199100</commentid>
    <comment_count>27</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-03-12 09:35:50 -0800</bug_when>
    <thetext>&gt; I think that the difference between WebKit and Firefox is captured in bug
&gt; 13012. Firefox seems to protect against multiple form submission implicitly by
&gt; replacing a pending submission with a new one.
&gt; 
&gt; See also bug 33513, bug 34315, bug 4847, bug 13011, bug 13012, bug 11420, bug
&gt; 16886, bug 16930. Most of these can probably be fixed with a single check-in,
&gt; but I hesitated to resolve any as duplicates so far.

This is really helpful! Thanks, Alexey.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199281</commentid>
    <comment_count>28</comment_count>
      <attachid>50650</attachid>
    <who name="Johnny(Jianning) Ding">jnd</who>
    <bug_when>2010-03-12 19:09:34 -0800</bug_when>
    <thetext>Created attachment 50650
fix the failure of charset-encoding tests and should not affect other tests at least on my mac.

Alexey, thanks for introducing the history and motivation of multiple submission protection.

Since the protection doesn&apos;t mean to disallow script-initiated multiple submissions and Dimitri is planning to work on the new approach like you mentioned, I guess I should drop this patch. (But I still upload the latest patch without review request for reference.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213097</commentid>
    <comment_count>29</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-04-15 16:11:57 -0700</bug_when>
    <thetext>Kevin McCullough attempted to do this once before in http://trac.webkit.org/changeset/18011, then it was reverted in http://trac.webkit.org/changeset/19940, when it broke a bunch of sites.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213101</commentid>
    <comment_count>30</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-04-15 16:34:33 -0700</bug_when>
    <thetext>Looks like mozilla does something much simpler in this case. They just detect if submission is in progress, stop it, then restart:

http://mxr.mozilla.org/mozilla-central/source/content/html/content/src/nsHTMLFormElement.cpp#392</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213309</commentid>
    <comment_count>31</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-04-16 11:15:59 -0700</bug_when>
    <thetext>The actual bit of magic lies in mDeferSubmission and mPendingSubmission (http://mxr.mozilla.org/mozilla-central/ident?i=mDeferSubmission), which is what we kind of have in m_insubmit, m_doingsubmit, and m_submittedFormURL. What we should do is clean up this logic to follow what Mozilla does.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>42447</attachid>
            <date>2009-11-03 21:31:07 -0800</date>
            <delta_ts>2009-11-03 21:31:07 -0800</delta_ts>
            <desc>Screenshot for your reference.</desc>
            <filename>form_action_submit.png</filename>
            <type>image/png</type>
            <size>26168</size>
            <attacher name="Hanrui">hanrui.gao</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAAA80AAABmCAIAAAB+5+QSAAAACXBIWXMAAAsTAAALEwEAmpwYAAAK
TWlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVN3WJP3Fj7f92UPVkLY8LGXbIEAIiOsCMgQ
WaIQkgBhhBASQMWFiApWFBURnEhVxILVCkidiOKgKLhnQYqIWotVXDjuH9yntX167+3t+9f7vOec
5/zOec8PgBESJpHmomoAOVKFPDrYH49PSMTJvYACFUjgBCAQ5svCZwXFAADwA3l4fnSwP/wBr28A
AgBw1S4kEsfh/4O6UCZXACCRAOAiEucLAZBSAMguVMgUAMgYALBTs2QKAJQAAGx5fEIiAKoNAOz0
ST4FANipk9wXANiiHKkIAI0BAJkoRyQCQLsAYFWBUiwCwMIAoKxAIi4EwK4BgFm2MkcCgL0FAHaO
WJAPQGAAgJlCLMwAIDgCAEMeE80DIEwDoDDSv+CpX3CFuEgBAMDLlc2XS9IzFLiV0Bp38vDg4iHi
wmyxQmEXKRBmCeQinJebIxNI5wNMzgwAABr50cH+OD+Q5+bk4eZm52zv9MWi/mvwbyI+IfHf/ryM
AgQAEE7P79pf5eXWA3DHAbB1v2upWwDaVgBo3/ldM9sJoFoK0Hr5i3k4/EAenqFQyDwdHAoLC+0l
YqG9MOOLPv8z4W/gi372/EAe/tt68ABxmkCZrcCjg/1xYW52rlKO58sEQjFu9+cj/seFf/2OKdHi
NLFcLBWK8ViJuFAiTcd5uVKRRCHJleIS6X8y8R+W/QmTdw0ArIZPwE62B7XLbMB+7gECiw5Y0nYA
QH7zLYwaC5EAEGc0Mnn3AACTv/mPQCsBAM2XpOMAALzoGFyolBdMxggAAESggSqwQQcMwRSswA6c
wR28wBcCYQZEQAwkwDwQQgbkgBwKoRiWQRlUwDrYBLWwAxqgEZrhELTBMTgN5+ASXIHrcBcGYBie
whi8hgkEQcgIE2EhOogRYo7YIs4IF5mOBCJhSDSSgKQg6YgUUSLFyHKkAqlCapFdSCPyLXIUOY1c
QPqQ28ggMor8irxHMZSBslED1AJ1QLmoHxqKxqBz0XQ0D12AlqJr0Rq0Hj2AtqKn0UvodXQAfYqO
Y4DRMQ5mjNlhXIyHRWCJWBomxxZj5Vg1Vo81Yx1YN3YVG8CeYe8IJAKLgBPsCF6EEMJsgpCQR1hM
WEOoJewjtBK6CFcJg4Qxwicik6hPtCV6EvnEeGI6sZBYRqwm7iEeIZ4lXicOE1+TSCQOyZLkTgoh
JZAySQtJa0jbSC2kU6Q+0hBpnEwm65Btyd7kCLKArCCXkbeQD5BPkvvJw+S3FDrFiOJMCaIkUqSU
Eko1ZT/lBKWfMkKZoKpRzame1AiqiDqfWkltoHZQL1OHqRM0dZolzZsWQ8ukLaPV0JppZ2n3aC/p
dLoJ3YMeRZfQl9Jr6Afp5+mD9HcMDYYNg8dIYigZaxl7GacYtxkvmUymBdOXmchUMNcyG5lnmA+Y
b1VYKvYqfBWRyhKVOpVWlX6V56pUVXNVP9V5qgtUq1UPq15WfaZGVbNQ46kJ1Bar1akdVbupNq7O
UndSj1DPUV+jvl/9gvpjDbKGhUaghkijVGO3xhmNIRbGMmXxWELWclYD6yxrmE1iW7L57Ex2Bfsb
di97TFNDc6pmrGaRZp3mcc0BDsax4PA52ZxKziHODc57LQMtPy2x1mqtZq1+rTfaetq+2mLtcu0W
7eva73VwnUCdLJ31Om0693UJuja6UbqFutt1z+o+02PreekJ9cr1Dund0Uf1bfSj9Rfq79bv0R83
MDQINpAZbDE4Y/DMkGPoa5hpuNHwhOGoEctoupHEaKPRSaMnuCbuh2fjNXgXPmasbxxirDTeZdxr
PGFiaTLbpMSkxeS+Kc2Ua5pmutG003TMzMgs3KzYrMnsjjnVnGueYb7ZvNv8jYWlRZzFSos2i8eW
2pZ8ywWWTZb3rJhWPlZ5VvVW16xJ1lzrLOtt1ldsUBtXmwybOpvLtqitm63Edptt3xTiFI8p0in1
U27aMez87ArsmuwG7Tn2YfYl9m32zx3MHBId1jt0O3xydHXMdmxwvOuk4TTDqcSpw+lXZxtnoXOd
8zUXpkuQyxKXdpcXU22niqdun3rLleUa7rrStdP1o5u7m9yt2W3U3cw9xX2r+00umxvJXcM970H0
8PdY4nHM452nm6fC85DnL152Xlle+70eT7OcJp7WMG3I28Rb4L3Le2A6Pj1l+s7pAz7GPgKfep+H
vqa+It89viN+1n6Zfgf8nvs7+sv9j/i/4XnyFvFOBWABwQHlAb2BGoGzA2sDHwSZBKUHNQWNBbsG
Lww+FUIMCQ1ZH3KTb8AX8hv5YzPcZyya0RXKCJ0VWhv6MMwmTB7WEY6GzwjfEH5vpvlM6cy2CIjg
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
RK5CYII=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>42448</attachid>
            <date>2009-11-03 21:31:27 -0800</date>
            <delta_ts>2009-11-03 21:31:27 -0800</delta_ts>
            <desc>Testcase of quirks mode.</desc>
            <filename>test_form_submit_action_quirk.html</filename>
            <type>text/html</type>
            <size>207</size>
            <attacher name="Hanrui">hanrui.gao</attacher>
            
              <data encoding="base64">PGZvcm0gdGFyZ2V0PSJfYmxhbmsiIGFjdGlvbj0iaHR0cDovL3d3dy5nb29nbGUuY24vc2VhcmNo
IiBtZXRob2Q9ImdldCIgb25zdWJtaXQ9ImFsZXJ0KCdvbnN1Ym1pdCB0cmlnZ2VyZWQnKTsiPg0K
ICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJxIiB2YWx1ZT0iIj4NCiAgICA8aW5wdXQgdHlw
ZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIi8+DQo8L2Zvcm0+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>42449</attachid>
            <date>2009-11-03 21:31:45 -0800</date>
            <delta_ts>2009-11-03 21:31:45 -0800</delta_ts>
            <desc>Testcase of standards mode.</desc>
            <filename>test_form_submit_action_standard.html</filename>
            <type>text/html</type>
            <size>224</size>
            <attacher name="Hanrui">hanrui.gao</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+DQo8Zm9ybSB0YXJnZXQ9Il9ibGFuayIgYWN0aW9uPSJodHRwOi8vd3d3
Lmdvb2dsZS5jbi9zZWFyY2giIG1ldGhvZD0iZ2V0IiBvbnN1Ym1pdD0iYWxlcnQoJ29uc3VibWl0
IHRyaWdnZXJlZCcpOyI+DQogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InEiIHZhbHVlPSIi
Pg0KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2giLz4NCjwvZm9ybT4=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>42451</attachid>
            <date>2009-11-03 23:01:10 -0800</date>
            <delta_ts>2009-11-03 23:01:10 -0800</delta_ts>
            <desc>The screenshot showing the Google icon cannot work twice.</desc>
            <filename>form_action_submit2.PNG</filename>
            <type>image/png</type>
            <size>22293</size>
            <attacher name="Hanrui">hanrui.gao</attacher>
            
              <data encoding="base64">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
TkSuQmCC
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47798</attachid>
            <date>2010-01-31 13:24:57 -0800</date>
            <delta_ts>2010-03-09 07:10:56 -0800</delta_ts>
            <desc>patch to allow the multiple submission of a single form when they are user-initiated and disallow the multiple submission of a single form when they are not user-initiated.</desc>
            <filename>patch6.txt</filename>
            <type>text/plain</type>
            <size>9932</size>
            <attacher name="Johnny(Jianning) Ding">jnd</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDExMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDEtMzEgIEpvaG5ueSBEaW5nICA8am5kQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXgg
dGhlIGxvZ2ljIG9mIHByZXZlbnRpbmcgYSBzaW5nbGUgZm9ybSBmcm9tIHN1Ym1pdHRpbmcgbW9y
ZSB0aGFuIG9uY2UuCisgICAgICAgIEFsbG93IHRoZSBtdWx0aXBsZSBzdWJtaXNzaW9uIG9mIGEg
c2luZ2xlIGZvcm0gd2hlbiB0aGV5IGFyZSB1c2VyLWluaXRpYXRlZC4KKyAgICAgICAgRGlzYWxs
b3cgdGhlIG11bHRpcGxlIHN1Ym1pc3Npb24gb2YgYSBzaW5nbGUgZm9ybSB3aGVuIHRoZXkgYXJl
IG5vdCB1c2VyLWluaXRpYXRlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMxMDk3CisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9taXNjL3Npbmds
ZS1mb3JtLW11bHRpcGxlLXN1Ym1pc3Npb25zLmh0bWwKKworICAgICAgICAqIGxvYWRlci9GcmFt
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c3VibWl0Rm9ybSk6
CisgICAgICAgUmVtb3ZpbmcgdGhlIGxvZ2ljIG9mIGNoZWNraW5nIHRoZSBkZXNjZW5kYW50IHJl
bGF0aW9uc2hpcCBiZXR3ZWVuIGN1cnJlbnQgZnJhbWUKKyAgICAgICBhbmQgdGFyZ2V0IGZyYW1l
IGJlZm9yZSBjb21wYXJpbmcgdGhlIHByZXZpb3VzIHN1Ym1pdHRlZCBVUkwgKG1fc3VibWl0dGVk
Rm9ybVVSTCkKKyAgICAgICBhbmQgY3VycmVudCBzdWJtaXR0aW5nIFVSTC4gU2luY2UgV2ViQ29y
ZSBpbnRlbmRzIHRvIGVtcHR5IG1fc3VibWl0dGVkRm9ybVVSTCBpbgorICAgICAgIGEgbW91c2Ug
b3Iga2V5IGRvd24gZXZlbnQsIHRoZSBvbGQgbG9naWMgbG9va3MgdW5uZWNlc3NhcnkuCisgICAg
ICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQpOgorICAgICAgIENhbGwgcmVzZXRNdWx0aXBsZUZv
cm1TdWJtaXNzaW9uUHJvdGVjdGlvbiB0byBlbXB0eSBtX3N1Ym1pdHRlZEZvcm1VUkwgaW4gbW91
c2UKKyAgICAgICBwcmVzcyBldmVudCB0byBhbGxvdyB0aGUgbXVsdGlwbGUgc3VibWlzc2lvbiBv
ZiBhIHNpbmdsZSBmb3JtIHdoZW4gdGhleSBhcmUKKyAgICAgICB1c2VyLWluaXRpYXRlZC4KKwog
MjAxMC0wMS0zMSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCkluZGV4OiBXZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCShyZXZpc2lvbiA1NDA2MCkKKysrIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDc3LDE3ICs0NzcsOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzdWJt
aXRGb3JtKGNvbnN0IGNoYXIqCiAgICAgLy8gZm9ybSBtb3JlIHRoYW4gb25jZS4gVGhpcyBmbGFn
IHByZXZlbnRzIHRoZXNlIGZyb20gaGFwcGVuaW5nOyBub3Qgc3VyZSBob3cgb3RoZXIgYnJvd3Nl
cnMgcHJldmVudCB0aGlzLgogICAgIC8vIFRoZSBmbGFnIGlzIHJlc2V0IGluIGVhY2ggdGltZSB3
ZSBzdGFydCBoYW5kbGUgYSBuZXcgbW91c2Ugb3Iga2V5IGRvd24gZXZlbnQsIGFuZAogICAgIC8v
IGFsc28gaW4gc2V0VmlldyBzaW5jZSB0aGlzIHBhcnQgbWF5IGdldCByZXVzZWQgZm9yIGEgcGFn
ZSBmcm9tIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCi0gICAgLy8gVGhlIGZvcm0gbXVsdGktc3Vi
bWl0IGxvZ2ljIGhlcmUgaXMgb25seSBuZWVkZWQgd2hlbiB3ZSBhcmUgc3VibWl0dGluZyBhIGZv
cm0gdGhhdCBhZmZlY3RzIHRoaXMgZnJhbWUuCi0KLSAgICAvLyBGSVhNRTogRnJhbWUgdGFyZ2V0
aW5nIGlzIG9ubHkgb25lIG9mIHRoZSB3YXlzIHRoZSBzdWJtaXNzaW9uIGNvdWxkIGVuZCB1cCBk
b2luZyBzb21ldGhpbmcgb3RoZXIKLSAgICAvLyB0aGFuIHJlcGxhY2luZyB0aGlzIGZyYW1lJ3Mg
Y29udGVudCwgc28gdGhpcyBjaGVjayBpcyBmbGF3ZWQuIE9uIHRoZSBvdGhlciBoYW5kLCB0aGUg
Y2hlY2sgaXMgaGFyZGx5Ci0gICAgLy8gbmVlZGVkIGFueSBtb3JlIG5vdyB0aGF0IHdlIHJlc2V0
IG1fc3VibWl0dGVkRm9ybVVSTCBvbiBlYWNoIG1vdXNlIG9yIGtleSBkb3duIGV2ZW50LgotCi0g
ICAgaWYgKG1fZnJhbWUtPnRyZWUoKS0+aXNEZXNjZW5kYW50T2YodGFyZ2V0RnJhbWUpKSB7Ci0g
ICAgICAgIGlmIChtX3N1Ym1pdHRlZEZvcm1VUkwgPT0gdSkKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgbV9zdWJtaXR0ZWRGb3JtVVJMID0gdTsKLSAgICB9CisgICAgaWYgKG1fc3VibWl0
dGVkRm9ybVVSTCA9PSB1KQorICAgICAgICByZXR1cm47CisgICAgbV9zdWJtaXR0ZWRGb3JtVVJM
ID0gdTsKIAogICAgIGZvcm1EYXRhLT5nZW5lcmF0ZUZpbGVzKG1fZnJhbWUtPnBhZ2UoKS0+Y2hy
b21lKCktPmNsaWVudCgpKTsKICAgICAKSW5kZXg6IFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCShyZXZpc2lv
biA1NDA2MCkKKysrIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zOTEsNiArMzkxLDEwIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNz
RXZlbnQKICAgICBpZiAoZXZlbnQuaXNPdmVyV2lkZ2V0KCkgJiYgcGFzc1dpZGdldE1vdXNlRG93
bkV2ZW50VG9XaWRnZXQoZXZlbnQpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAorICAgIC8vIEZJ
WE1FOiBsaWtlIHNhbWUgY29kZSBpbiBmdW5jdGlvbiBLZXlFdmVudCwgd2hhdCBpcyB0aGlzIGRv
aW5nIGhlcmUsIGluIG1vdXNlIHByZXNzIGV2ZW50IGhhbmRsZXI/CisgICAgLy8gRG8gd2UgbmVl
ZCB0byBhZGQgdGhpcyBsb2dpYyBpbiBvdGhlciBtb3VzZSBldmVudHM/CisgICAgbV9mcmFtZS0+
bG9hZGVyKCktPnJlc2V0TXVsdGlwbGVGb3JtU3VibWlzc2lvblByb3RlY3Rpb24oKTsKKwogI2lm
IEVOQUJMRShTVkcpCiAgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCktPmlzU1ZHRG9jdW1lbnQo
KSAmJgogICAgICAgIHN0YXRpY19jYXN0PFNWR0RvY3VtZW50Kj4obV9mcmFtZS0+ZG9jdW1lbnQo
KSktPnpvb21BbmRQYW5FbmFibGVkKCkpIHsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU0MTExKQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTAtMDEtMzEgIEpvaG5ueSBEaW5nICA8am5kQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggdGhlIGxvZ2ljIG9mIHByZXZl
bnRpbmcgYSBzaW5nbGUgZm9ybSBmcm9tIHN1Ym1pdHRpbmcgbW9yZSB0aGFuIG9uY2UuCisgICAg
ICAgIEFsbG93IHRoZSBtdWx0aXBsZSBzdWJtaXNzaW9uIG9mIGEgc2luZ2xlIGZvcm0gd2hlbiB0
aGV5IGFyZSB1c2VyLWluaXRpYXRlZC4KKyAgICAgICAgRGlzYWxsb3cgdGhlIG11bHRpcGxlIHN1
Ym1pc3Npb24gb2YgYSBzaW5nbGUgZm9ybSB3aGVuIHRoZXkgYXJlIG5vdCB1c2VyLWluaXRpYXRl
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxMDk3
CisKKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2Mvc2luZ2xlLWZvcm0tbXVsdGlwbGUtc3VibWlz
c2lvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2Mvc2lu
Z2xlLWZvcm0tbXVsdGlwbGUtc3VibWlzc2lvbnMuaHRtbDogQWRkZWQuCisKIDIwMTAtMDEtMzAg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQWRlbGUgUGV0ZXJzb24uCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mv
c2luZ2xlLWZvcm0tbXVsdGlwbGUtc3VibWlzc2lvbnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zaW5nbGUtZm9ybS1tdWx0aXBsZS1zdWJt
aXNzaW9ucy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pc2Mvc2luZ2xlLWZvcm0tbXVsdGlwbGUtc3VibWlzc2lvbnMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcgQEAKKworRm9yIGEgc2luZ2xlIGZvcm0sIHdoZW4gdXNl
cnMgbWFudWFsbHkgY2xpY2sgdGhlIHN1Ym1pdCBidXR0b24gb3IgcHJlc3Mga2V5IHRvIGFjdGl2
ZSB0aGUgc3VibWl0IGJ1dHRvbiwgdGhlIG11bHRpcGxlIHN1Ym1pc3Npb25zIG9mIHRoaXMgc2lu
Z2xlIGZvcm0gY2FuIGJlIHNlbnQuIElmIHVzZXJzIHVzZSBzY3JpcHQgdG8gc3VibWl0IGEgc2lu
Z2xlIGZvcm0gbW9yZSB0aGFuIG9uY2UsIG9ubHkgdGhlIGZpcnN0IHN1Ym1pc3Npb24gY2FuIGJl
IHNlbnQuCisKK011bHRpcGxlIHN1YnNzaW9uIGJ5IG1hbnVhbCBtb3VzZSBjbGljayBQQVNTRUQK
K011bHRpcGxlIHN1YnNzaW9uIGJ5IG1hbnVhbCBrZXkgcHJlc3MgUEFTU0VECitNdWx0aXBsZSBz
dWJzc2lvbiBieSBzY3JpcHRpbmcgUEFTU0VECisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9zaW5nbGUtZm9ybS1tdWx0aXBsZS1zdWJtaXNzaW9ucy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zaW5nbGUtZm9ybS1tdWx0aXBsZS1zdWJt
aXNzaW9ucy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L3NpbmdsZS1mb3JtLW11bHRpcGxlLXN1Ym1pc3Npb25zLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTM2IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK3dpbmRvdy5tdWx0aXBsZVN1
Ym1pc3Npb25UZXN0ID0gKGZ1bmN0aW9uKCkgeworICAgIGZ1bmN0aW9uIENhbGxDb21tYW5kKGNt
ZCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB2YXIgcmVxID0gbmV3IFhNTEh0
dHBSZXF1ZXN0OworICAgICAgICAgICAgcmVxLm9wZW4oIkdFVCIsICIvcmVzb3VyY2VzL25ldHdv
cmstc2ltdWxhdG9yLnBocD9jb21tYW5kPSIgKyBjbWQsIGZhbHNlKTsKKyAgICAgICAgICAgIHJl
cS5zZW5kKG51bGwpOworICAgICAgICAgICAgcmV0dXJuIHJlcS5yZXNwb25zZVRleHQ7CisgICAg
ICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICB2YXIgbXVsdGlwbGVTdWJtaXNzaW9uQ291bnQgPSAyOworICAgIHZhciBzdWJt
aXNzaW9uSW50ZXJ2YWwgPSA1MDA7CisgICAgdmFyIGN1cnJlbnRUZXN0U3RlcHMgPSAwOworCisg
ICAgZnVuY3Rpb24gc3VibWl0Rm9ybUJ5TW91c2VDbGljaygpCisgICAgeworICAgICAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbygyMCwgMjApOworICAgICAgICBldmVudFNlbmRlci5tb3VzZURv
d24oMCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoMCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gc3VibWl0Rm9ybUJ5S2V5UHJlc3MoKQorICAgIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInN1YiIpLmZvY3VzKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24o
IlxyIik7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3VibWl0Rm9ybUJ5U2NyaXB0aW5nKCkKKyAg
ICB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb3JtMSIpLnN1Ym1pdCgpOwor
ICAgIH0KKworICAgIHZhciBtb3VzZUNsaWNrU3VibWl0VGVzdCA9CisgICAgeworICAgICAgICBj
dXJyZW50U3VibWlzc2lvbkNvdW50IDogMCwKKyAgICAgICAgbWF4U3VibWlzc2lvbkNvdW50IDog
bXVsdGlwbGVTdWJtaXNzaW9uQ291bnQsCisgICAgICAgIG91dHB1dFBhbmVsSWQgOiAib3V0cHV0
UGFuZWwxIiwKKyAgICAgICAgZXhwZWN0U3VibWlzc2lvbkNvdW50IDogbXVsdGlwbGVTdWJtaXNz
aW9uQ291bnQsCisgICAgICAgIHRlc3RGdW5jdGlvbiA6IHN1Ym1pdEZvcm1CeU1vdXNlQ2xpY2sK
KyAgICB9CisKKyAgICB2YXIga2V5UHJlc3NTdWJtaXRUZXN0ID0KKyAgICB7CisgICAgICAgIGN1
cnJlbnRTdWJtaXNzaW9uQ291bnQgOiAwLAorICAgICAgICBtYXhTdWJtaXNzaW9uQ291bnQgOiBt
dWx0aXBsZVN1Ym1pc3Npb25Db3VudCwKKyAgICAgICAgb3V0cHV0UGFuZWxJZCA6ICJvdXRwdXRQ
YW5lbDIiLAorICAgICAgICBleHBlY3RTdWJtaXNzaW9uQ291bnQgOiBtdWx0aXBsZVN1Ym1pc3Np
b25Db3VudCwKKyAgICAgICAgdGVzdEZ1bmN0aW9uIDogc3VibWl0Rm9ybUJ5S2V5UHJlc3MKKyAg
ICB9CisKKyAgICB2YXIgc2NyaXB0aW5nU3VibWl0VGVzdCA9CisgICAgeworICAgICAgICBjdXJy
ZW50U3VibWlzc2lvbkNvdW50IDogMCwKKyAgICAgICAgbWF4U3VibWlzc2lvbkNvdW50IDogbXVs
dGlwbGVTdWJtaXNzaW9uQ291bnQsCisgICAgICAgIG91dHB1dFBhbmVsSWQgOiAib3V0cHV0UGFu
ZWwzIiwKKyAgICAgICAgZXhwZWN0U3VibWlzc2lvbkNvdW50IDogMSwKKyAgICAgICAgdGVzdEZ1
bmN0aW9uIDogc3VibWl0Rm9ybUJ5U2NyaXB0aW5nCisgICAgfQorCisgICAgdmFyIHRlc3RPYmpl
Y3RzID0gW21vdXNlQ2xpY2tTdWJtaXRUZXN0LCBrZXlQcmVzc1N1Ym1pdFRlc3QsIHNjcmlwdGlu
Z1N1Ym1pdFRlc3RdOworICAgIHZhciBjdXJyZW50U3RlcCA9IDA7CisKKyAgICBmdW5jdGlvbiBj
aGVja05vdGlmeURvbmUoKQorICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBnZXRUZXN0T2JqZWN0KCkKKyAgICB7CisgICAgICAgIGlm
IChjdXJyZW50U3RlcCA8IHRlc3RPYmplY3RzLmxlbmd0aCkKKyAgICAgICAgICAgIHJldHVybiB0
ZXN0T2JqZWN0c1tjdXJyZW50U3RlcF07CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVy
biBudWxsOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNrUmVzdWx0KCkgeworICAgICAgICB2
YXIgdGVzdE9iamVjdCA9IGdldFRlc3RPYmplY3QoKTsKKyAgICAgICAgaWYgKCF0ZXN0T2JqZWN0
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgY291bnQgPSBDYWxsQ29tbWFuZCgi
Z2V0LXJlc291cmNlLWNvdW50JnBhdGg9aW52YWxpZF9yZXNvdXJjZSIpOworICAgICAgICBjb3Vu
dCA9IHBhcnNlSW50KGNvdW50LCAxMCk7CisgICAgICAgIGlmIChjb3VudCA9PSB0ZXN0T2JqZWN0
LmV4cGVjdFN1Ym1pc3Npb25Db3VudCkKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKHRlc3RPYmplY3Qub3V0cHV0UGFuZWxJZCkuaW5uZXJIVE1MID0gIlBBU1NFRCI7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRlc3RPYmplY3Qu
b3V0cHV0UGFuZWxJZCkuaW5uZXJIVE1MID0gIkZBSUxFRCI7CisgICAgICAgIGN1cnJlbnRTdGVw
Kys7CisgICAgICAgIHdpbmRvdy5tdWx0aXBsZVN1Ym1pc3Npb25UZXN0KCk7CisgICAgfQorICAg
IAorICAgIHJldHVybiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIgdGVzdE9iamVjdCA9
IGdldFRlc3RPYmplY3QoKTsKKyAgICAgICAgaWYgKCF0ZXN0T2JqZWN0KSB7CisgICAgICAgICAg
ICBjaGVja05vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICAvLyBDbGVhciB0aGUgcmVzb3VyY2UgY291bnQgYmVmb3JlIGVhY2ggY2F0ZWdvcnkgb2Yg
c3VibWlzc2lvbiB0ZXN0IHN0YXJ0cy4KKyAgICAgICAgaWYgKDAgPT0gdGVzdE9iamVjdC5jdXJy
ZW50U3VibWlzc2lvbkNvdW50KQorICAgICAgICAgICAgQ2FsbENvbW1hbmQoInJlc2V0LXJlc291
cmNlLWNvdW50Iik7CisgICAgICAgIHRlc3RPYmplY3QuY3VycmVudFN1Ym1pc3Npb25Db3VudCsr
OworICAgICAgICB0ZXN0T2JqZWN0LnRlc3RGdW5jdGlvbigpOworICAgICAgICBpZiAodGVzdE9i
amVjdC5jdXJyZW50U3VibWlzc2lvbkNvdW50IDwgdGVzdE9iamVjdC5tYXhTdWJtaXNzaW9uQ291
bnQpCisgICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dCh3aW5kb3cubXVsdGlwbGVTdWJtaXNz
aW9uVGVzdCwgc3VibWlzc2lvbkludGVydmFsKQorICAgICAgICBlbHNlCisgICAgICAgICAgICB3
aW5kb3cuc2V0VGltZW91dChjaGVja1Jlc3VsdCwgc3VibWlzc2lvbkludGVydmFsKQorICAgIH0K
K30pKCk7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgd2luZG93
Lm11bHRpcGxlU3VibWlzc2lvblRlc3QoKTsKKyAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPGZvcm0gbmFtZT1mIGlkPSJmb3JtMSIgYWN0aW9uPSIv
cmVzb3VyY2VzL25ldHdvcmstc2ltdWxhdG9yLnBocD9jb21tYW5kPWluY3JlYXNlLXJlc291cmNl
LWNvdW50JnBhdGg9aW52YWxpZF9yZXNvdXJjZSIgbWV0aG9kPSJwb3N0IiB0YXJnZXQ9ImNvbnRl
bnRzIiBzdHlsZT0ibWFyZ2luOjBweDsgcGFkZGluZzowcHgiPgorPGlucHV0IGlkPXN1YiB0eXBl
PXN1Ym1pdCBzdHlsZT0id2lkdGg6MTAwcHg7aGVpZ2h0OjMwcHgiIG5hbWU9InN1Yl9idG4iIHZh
bHVlPSJzdWJtaXQiPgorPC9mb3JtPgorPHA+Rm9yIGEgc2luZ2xlIGZvcm0sIHdoZW4gdXNlcnMg
bWFudWFsbHkgY2xpY2sgdGhlIHN1Ym1pdCBidXR0b24gb3IgcHJlc3Mga2V5IHRvIGFjdGl2ZSB0
aGUgc3VibWl0IGJ1dHRvbiwgdGhlIG11bHRpcGxlIHN1Ym1pc3Npb25zIG9mIHRoaXMgc2luZ2xl
IGZvcm0gY2FuIGJlIHNlbnQuIElmIHVzZXJzIHVzZSBzY3JpcHQgdG8gc3VibWl0IGEgc2luZ2xl
IGZvcm0gbW9yZSB0aGFuIG9uY2UsIG9ubHkgdGhlIGZpcnN0IHN1Ym1pc3Npb24gY2FuIGJlIHNl
bnQuPC9wPgorTXVsdGlwbGUgc3Vic3Npb24gYnkgbWFudWFsIG1vdXNlIGNsaWNrIDxzcGFuIGlk
PSJvdXRwdXRQYW5lbDEiPkZBSUxFRDwvc3Bhbj48YnI+CitNdWx0aXBsZSBzdWJzc2lvbiBieSBt
YW51YWwga2V5IHByZXNzIDxzcGFuIGlkPSJvdXRwdXRQYW5lbDIiPkZBSUxFRDwvc3Bhbj48YnI+
CitNdWx0aXBsZSBzdWJzc2lvbiBieSBzY3JpcHRpbmcgPHNwYW4gaWQ9Im91dHB1dFBhbmVsMyI+
RkFJTEVEPC9zcGFuPjxicj4KKzxpZnJhbWUgbmFtZT0iY29udGVudHMiPjwvaWZyYW1lPgorPC9i
b2R5PgorPC9odG1sPgo=
</data>
<flag name="commit-queue"
          id="33310"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50292</attachid>
            <date>2010-03-09 04:44:07 -0800</date>
            <delta_ts>2010-06-11 12:13:39 -0700</delta_ts>
            <desc>patch after spell checking</desc>
            <filename>patch6.txt</filename>
            <type>text/plain</type>
            <size>9976</size>
            <attacher name="Johnny(Jianning) Ding">jnd</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTcxOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDMtMDkgIEpvaG5ueSBEaW5nICA8am5kQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXgg
dGhlIGxvZ2ljIG9mIHByZXZlbnRpbmcgYSBzaW5nbGUgZm9ybSBmcm9tIHN1Ym1pdHRpbmcgbW9y
ZSB0aGFuIG9uY2UuCisgICAgICAgIEFsbG93IHRoZSBtdWx0aXBsZSBzdWJtaXNzaW9ucyBvZiBh
IHNpbmdsZSBmb3JtIHdoZW4gdGhleSBhcmUgdXNlci1pbml0aWF0ZWQuCisgICAgICAgIERpc2Fs
bG93IHRoZSBtdWx0aXBsZSBzdWJtaXNzaW9ucyBvZiBhIHNpbmdsZSBmb3JtIHdoZW4gdGhleSBh
cmUgbm90IHVzZXItaW5pdGlhdGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzEwOTcKKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL21pc2Mvc2lu
Z2xlLWZvcm0tbXVsdGlwbGUtc3VibWlzc2lvbnMuaHRtbAorCisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzdWJtaXRGb3Jt
KToKKyAgICAgICAgUmVtb3ZlIHRoZSBsb2dpYyBvZiBjaGVja2luZyB0aGUgZGVzY2VuZGFudCBy
ZWxhdGlvbnNoaXAgYmV0d2VlbiBjdXJyZW50IGZyYW1lCisgICAgICAgIGFuZCB0YXJnZXQgZnJh
bWUgYmVmb3JlIGNvbXBhcmluZyB0aGUgcHJldmlvdXMgc3VibWl0dGVkIFVSTCAobV9zdWJtaXR0
ZWRGb3JtVVJMKQorICAgICAgICBhbmQgY3VycmVudCBzdWJtaXR0aW5nIFVSTC4gU2luY2UgV2Vi
Q29yZSBpbnRlbmRzIHRvIGVtcHR5IG1fc3VibWl0dGVkRm9ybVVSTCBpbgorICAgICAgICBhIG1v
dXNlIG9yIGtleSBkb3duIGV2ZW50LCB0aGUgb2xkIGxvZ2ljIGxvb2tzIHVubmVjZXNzYXJ5Lgor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KToKKyAgICAgICAgQ2FsbCByZXNldE11bHRp
cGxlRm9ybVN1Ym1pc3Npb25Qcm90ZWN0aW9uIHRvIGVtcHR5IG1fc3VibWl0dGVkRm9ybVVSTCBp
biBtb3VzZQorICAgICAgICBwcmVzcyBldmVudCB0byBhbGxvdyB0aGUgbXVsdGlwbGUgc3VibWlz
c2lvbnMgb2YgYSBzaW5nbGUgZm9ybSB3aGVuIHRoZXkgYXJlCisgICAgICAgIHVzZXItaW5pdGlh
dGVkLgorCiAyMDEwLTAzLTA5ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCkluZGV4OiBX
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lvbiA1NTcxOCkKKysrIFdlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDc5LDE3ICs0NzksOSBAQCB2b2lkIEZy
YW1lTG9hZGVyOjpzdWJtaXRGb3JtKGNvbnN0IGNoYXIqCiAgICAgLy8gZm9ybSBtb3JlIHRoYW4g
b25jZS4gVGhpcyBmbGFnIHByZXZlbnRzIHRoZXNlIGZyb20gaGFwcGVuaW5nOyBub3Qgc3VyZSBo
b3cgb3RoZXIgYnJvd3NlcnMgcHJldmVudCB0aGlzLgogICAgIC8vIFRoZSBmbGFnIGlzIHJlc2V0
IGluIGVhY2ggdGltZSB3ZSBzdGFydCBoYW5kbGUgYSBuZXcgbW91c2Ugb3Iga2V5IGRvd24gZXZl
bnQsIGFuZAogICAgIC8vIGFsc28gaW4gc2V0VmlldyBzaW5jZSB0aGlzIHBhcnQgbWF5IGdldCBy
ZXVzZWQgZm9yIGEgcGFnZSBmcm9tIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCi0gICAgLy8gVGhl
IGZvcm0gbXVsdGktc3VibWl0IGxvZ2ljIGhlcmUgaXMgb25seSBuZWVkZWQgd2hlbiB3ZSBhcmUg
c3VibWl0dGluZyBhIGZvcm0gdGhhdCBhZmZlY3RzIHRoaXMgZnJhbWUuCi0KLSAgICAvLyBGSVhN
RTogRnJhbWUgdGFyZ2V0aW5nIGlzIG9ubHkgb25lIG9mIHRoZSB3YXlzIHRoZSBzdWJtaXNzaW9u
IGNvdWxkIGVuZCB1cCBkb2luZyBzb21ldGhpbmcgb3RoZXIKLSAgICAvLyB0aGFuIHJlcGxhY2lu
ZyB0aGlzIGZyYW1lJ3MgY29udGVudCwgc28gdGhpcyBjaGVjayBpcyBmbGF3ZWQuIE9uIHRoZSBv
dGhlciBoYW5kLCB0aGUgY2hlY2sgaXMgaGFyZGx5Ci0gICAgLy8gbmVlZGVkIGFueSBtb3JlIG5v
dyB0aGF0IHdlIHJlc2V0IG1fc3VibWl0dGVkRm9ybVVSTCBvbiBlYWNoIG1vdXNlIG9yIGtleSBk
b3duIGV2ZW50LgotCi0gICAgaWYgKG1fZnJhbWUtPnRyZWUoKS0+aXNEZXNjZW5kYW50T2YodGFy
Z2V0RnJhbWUpKSB7Ci0gICAgICAgIGlmIChtX3N1Ym1pdHRlZEZvcm1VUkwgPT0gdSkKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgbV9zdWJtaXR0ZWRGb3JtVVJMID0gdTsKLSAgICB9Cisg
ICAgaWYgKG1fc3VibWl0dGVkRm9ybVVSTCA9PSB1KQorICAgICAgICByZXR1cm47CisgICAgbV9z
dWJtaXR0ZWRGb3JtVVJMID0gdTsKIAogICAgIGZvcm1EYXRhLT5nZW5lcmF0ZUZpbGVzKG1fZnJh
bWUtPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpKTsKICAgICAKSW5kZXg6IFdlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCShyZXZpc2lvbiA1NTcxOCkKKysrIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zOTUsNiArMzk1LDEwIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpo
YW5kbGVNb3VzZVByZXNzRXZlbnQKICAgICBpZiAoZXZlbnQuaXNPdmVyV2lkZ2V0KCkgJiYgcGFz
c1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoZXZlbnQpKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKIAorICAgIC8vIEZJWE1FOiBsaWtlIHNhbWUgY29kZSBpbiBmdW5jdGlvbiBLZXlFdmVudCwg
d2hhdCBpcyB0aGlzIGRvaW5nIGhlcmUsIGluIG1vdXNlIHByZXNzIGV2ZW50IGhhbmRsZXI/Cisg
ICAgLy8gRG8gd2UgbmVlZCB0byBhZGQgdGhpcyBsb2dpYyBpbiBvdGhlciBtb3VzZSBldmVudHM/
CisgICAgbV9mcmFtZS0+bG9hZGVyKCktPnJlc2V0TXVsdGlwbGVGb3JtU3VibWlzc2lvblByb3Rl
Y3Rpb24oKTsKKwogI2lmIEVOQUJMRShTVkcpCiAgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkt
PmlzU1ZHRG9jdW1lbnQoKSAmJgogICAgICAgIHN0YXRpY19jYXN0PFNWR0RvY3VtZW50Kj4obV9m
cmFtZS0+ZG9jdW1lbnQoKSktPnpvb21BbmRQYW5FbmFibGVkKCkpIHsKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDU1NzE4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTAtMDMtMDkgIEpvaG5ueSBEaW5nICA8am5kQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggdGhl
IGxvZ2ljIG9mIHByZXZlbnRpbmcgYSBzaW5nbGUgZm9ybSBmcm9tIHN1Ym1pdHRpbmcgbW9yZSB0
aGFuIG9uY2UuCisgICAgICAgIEFsbG93IHRoZSBtdWx0aXBsZSBzdWJtaXNzaW9ucyBvZiBhIHNp
bmdsZSBmb3JtIHdoZW4gdGhleSBhcmUgdXNlci1pbml0aWF0ZWQuCisgICAgICAgIERpc2FsbG93
IHRoZSBtdWx0aXBsZSBzdWJtaXNzaW9ucyBvZiBhIHNpbmdsZSBmb3JtIHdoZW4gdGhleSBhcmUg
bm90IHVzZXItaW5pdGlhdGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzEwOTcKKworICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9zaW5nbGUtZm9y
bS1tdWx0aXBsZS1zdWJtaXNzaW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvbWlzYy9zaW5nbGUtZm9ybS1tdWx0aXBsZS1zdWJtaXNzaW9ucy5odG1sOiBBZGRl
ZC4KKwogMjAxMC0wMy0wOCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9zaW5nbGUtZm9ybS1tdWx0aXBsZS1zdWJtaXNzaW9ucy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3NpbmdsZS1mb3JtLW11bHRp
cGxlLXN1Ym1pc3Npb25zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWlzYy9zaW5nbGUtZm9ybS1tdWx0aXBsZS1zdWJtaXNzaW9ucy1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorCitGb3IgYSBzaW5nbGUgZm9ybSwg
d2hlbiB1c2VycyBtYW51YWxseSBjbGljayB0aGUgc3VibWl0IGJ1dHRvbiBvciBwcmVzcyBrZXkg
dG8gYWN0aXZlIHRoZSBzdWJtaXQgYnV0dG9uLCB0aGUgbXVsdGlwbGUgc3VibWlzc2lvbnMgb2Yg
dGhpcyBzaW5nbGUgZm9ybSBjYW4gYmUgc2VudC4gSWYgdXNlcnMgdXNlIHNjcmlwdCB0byBzdWJt
aXQgYSBzaW5nbGUgZm9ybSBtb3JlIHRoYW4gb25jZSwgb25seSB0aGUgZmlyc3Qgc3VibWlzc2lv
biBjYW4gYmUgc2VudC4KKworTXVsdGlwbGUgc3VibWlzc2lvbnMgYnkgbWFudWFsIG1vdXNlIGNs
aWNrIFBBU1NFRAorTXVsdGlwbGUgc3VibWlzc2lvbnMgYnkgbWFudWFsIGtleSBwcmVzcyBQQVNT
RUQKK011bHRpcGxlIHN1Ym1pc3Npb25zIGJ5IHNjcmlwdGluZyBQQVNTRUQKKwpJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3NpbmdsZS1mb3JtLW11bHRpcGxlLXN1Ym1pc3Npb25z
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3NpbmdsZS1m
b3JtLW11bHRpcGxlLXN1Ym1pc3Npb25zLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2Mvc2luZ2xlLWZvcm0tbXVsdGlwbGUtc3VibWlzc2lvbnMuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMzYgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0Pgor
d2luZG93Lm11bHRpcGxlU3VibWlzc2lvbnNUZXN0ID0gKGZ1bmN0aW9uKCkgeworICAgIGZ1bmN0
aW9uIENhbGxDb21tYW5kKGNtZCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB2
YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0OworICAgICAgICAgICAgcmVxLm9wZW4oIkdFVCIs
ICIvcmVzb3VyY2VzL25ldHdvcmstc2ltdWxhdG9yLnBocD9jb21tYW5kPSIgKyBjbWQsIGZhbHNl
KTsKKyAgICAgICAgICAgIHJlcS5zZW5kKG51bGwpOworICAgICAgICAgICAgcmV0dXJuIHJlcS5y
ZXNwb25zZVRleHQ7CisgICAgICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgICAgICByZXR1cm4g
IiI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgbXVsdGlwbGVTdWJtaXNzaW9uc0NvdW50
ID0gMjsKKyAgICB2YXIgc3VibWlzc2lvbkludGVydmFsID0gNTAwOworICAgIHZhciBjdXJyZW50
VGVzdFN0ZXBzID0gMDsKKworICAgIGZ1bmN0aW9uIHN1Ym1pdEZvcm1CeU1vdXNlQ2xpY2soKQor
ICAgIHsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMjAsIDIwKTsKKyAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKDApOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKDAp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHN1Ym1pdEZvcm1CeUtleVByZXNzKCkKKyAgICB7Cisg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdWIiKS5mb2N1cygpOworICAgICAgICBl
dmVudFNlbmRlci5rZXlEb3duKCJcciIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN1Ym1pdEZv
cm1CeVNjcmlwdGluZygpCisgICAgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Zm9ybTEiKS5zdWJtaXQoKTsKKyAgICB9CisKKyAgICB2YXIgbW91c2VDbGlja1N1Ym1pdFRlc3Qg
PQorICAgIHsKKyAgICAgICAgY3VycmVudFN1Ym1pc3Npb25Db3VudCA6IDAsCisgICAgICAgIG1h
eFN1Ym1pc3Npb25zQ291bnQgOiBtdWx0aXBsZVN1Ym1pc3Npb25zQ291bnQsCisgICAgICAgIG91
dHB1dFBhbmVsSWQgOiAib3V0cHV0UGFuZWwxIiwKKyAgICAgICAgZXhwZWN0U3VibWlzc2lvbnND
b3VudCA6IG11bHRpcGxlU3VibWlzc2lvbnNDb3VudCwKKyAgICAgICAgdGVzdEZ1bmN0aW9uIDog
c3VibWl0Rm9ybUJ5TW91c2VDbGljaworICAgIH0KKworICAgIHZhciBrZXlQcmVzc1N1Ym1pdFRl
c3QgPQorICAgIHsKKyAgICAgICAgY3VycmVudFN1Ym1pc3Npb25Db3VudCA6IDAsCisgICAgICAg
IG1heFN1Ym1pc3Npb25zQ291bnQgOiBtdWx0aXBsZVN1Ym1pc3Npb25zQ291bnQsCisgICAgICAg
IG91dHB1dFBhbmVsSWQgOiAib3V0cHV0UGFuZWwyIiwKKyAgICAgICAgZXhwZWN0U3VibWlzc2lv
bnNDb3VudCA6IG11bHRpcGxlU3VibWlzc2lvbnNDb3VudCwKKyAgICAgICAgdGVzdEZ1bmN0aW9u
IDogc3VibWl0Rm9ybUJ5S2V5UHJlc3MKKyAgICB9CisKKyAgICB2YXIgc2NyaXB0aW5nU3VibWl0
VGVzdCA9CisgICAgeworICAgICAgICBjdXJyZW50U3VibWlzc2lvbkNvdW50IDogMCwKKyAgICAg
ICAgbWF4U3VibWlzc2lvbnNDb3VudCA6IG11bHRpcGxlU3VibWlzc2lvbnNDb3VudCwKKyAgICAg
ICAgb3V0cHV0UGFuZWxJZCA6ICJvdXRwdXRQYW5lbDMiLAorICAgICAgICBleHBlY3RTdWJtaXNz
aW9uc0NvdW50IDogMSwKKyAgICAgICAgdGVzdEZ1bmN0aW9uIDogc3VibWl0Rm9ybUJ5U2NyaXB0
aW5nCisgICAgfQorCisgICAgdmFyIHRlc3RPYmplY3RzID0gW21vdXNlQ2xpY2tTdWJtaXRUZXN0
LCBrZXlQcmVzc1N1Ym1pdFRlc3QsIHNjcmlwdGluZ1N1Ym1pdFRlc3RdOworICAgIHZhciBjdXJy
ZW50U3RlcCA9IDA7CisKKyAgICBmdW5jdGlvbiBjaGVja05vdGlmeURvbmUoKQorICAgIHsKKyAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBnZXRU
ZXN0T2JqZWN0KCkKKyAgICB7CisgICAgICAgIGlmIChjdXJyZW50U3RlcCA8IHRlc3RPYmplY3Rz
Lmxlbmd0aCkKKyAgICAgICAgICAgIHJldHVybiB0ZXN0T2JqZWN0c1tjdXJyZW50U3RlcF07Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGNoZWNrUmVzdWx0KCkgeworICAgICAgICB2YXIgdGVzdE9iamVjdCA9IGdldFRlc3RPYmpl
Y3QoKTsKKyAgICAgICAgaWYgKCF0ZXN0T2JqZWN0KQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB2YXIgY291bnQgPSBDYWxsQ29tbWFuZCgiZ2V0LXJlc291cmNlLWNvdW50JnBhdGg9aW52
YWxpZF9yZXNvdXJjZSIpOworICAgICAgICBjb3VudCA9IHBhcnNlSW50KGNvdW50LCAxMCk7Cisg
ICAgICAgIGlmIChjb3VudCA9PSB0ZXN0T2JqZWN0LmV4cGVjdFN1Ym1pc3Npb25zQ291bnQpCisg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0ZXN0T2JqZWN0Lm91dHB1dFBhbmVs
SWQpLmlubmVySFRNTCA9ICJQQVNTRUQiOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCh0ZXN0T2JqZWN0Lm91dHB1dFBhbmVsSWQpLmlubmVySFRNTCA9
ICJGQUlMRUQiOworICAgICAgICBjdXJyZW50U3RlcCsrOworICAgICAgICB3aW5kb3cubXVsdGlw
bGVTdWJtaXNzaW9uc1Rlc3QoKTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIGZ1bmN0aW9uKCkK
KyAgICB7CisgICAgICAgIHZhciB0ZXN0T2JqZWN0ID0gZ2V0VGVzdE9iamVjdCgpOworICAgICAg
ICBpZiAoIXRlc3RPYmplY3QpIHsKKyAgICAgICAgICAgIGNoZWNrTm90aWZ5RG9uZSgpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vIENsZWFyIHRoZSByZXNvdXJj
ZSBjb3VudCBiZWZvcmUgZWFjaCBjYXRlZ29yeSBvZiBzdWJtaXNzaW9uIHRlc3Qgc3RhcnRzLgor
ICAgICAgICBpZiAoMCA9PSB0ZXN0T2JqZWN0LmN1cnJlbnRTdWJtaXNzaW9uQ291bnQpCisgICAg
ICAgICAgICBDYWxsQ29tbWFuZCgicmVzZXQtcmVzb3VyY2UtY291bnQiKTsKKyAgICAgICAgdGVz
dE9iamVjdC5jdXJyZW50U3VibWlzc2lvbkNvdW50Kys7CisgICAgICAgIHRlc3RPYmplY3QudGVz
dEZ1bmN0aW9uKCk7CisgICAgICAgIGlmICh0ZXN0T2JqZWN0LmN1cnJlbnRTdWJtaXNzaW9uQ291
bnQgPCB0ZXN0T2JqZWN0Lm1heFN1Ym1pc3Npb25zQ291bnQpCisgICAgICAgICAgICB3aW5kb3cu
c2V0VGltZW91dCh3aW5kb3cubXVsdGlwbGVTdWJtaXNzaW9uc1Rlc3QsIHN1Ym1pc3Npb25JbnRl
cnZhbCkKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoY2hlY2tS
ZXN1bHQsIHN1Ym1pc3Npb25JbnRlcnZhbCkKKyAgICB9Cit9KSgpOworCitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgIHdpbmRvdy5tdWx0aXBsZVN1Ym1pc3Npb25zVGVz
dCgpOworICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+
Cis8Zm9ybSBuYW1lPWYgaWQ9ImZvcm0xIiBhY3Rpb249Ii9yZXNvdXJjZXMvbmV0d29yay1zaW11
bGF0b3IucGhwP2NvbW1hbmQ9aW5jcmVhc2UtcmVzb3VyY2UtY291bnQmcGF0aD1pbnZhbGlkX3Jl
c291cmNlIiBtZXRob2Q9InBvc3QiIHRhcmdldD0iY29udGVudHMiIHN0eWxlPSJtYXJnaW46MHB4
OyBwYWRkaW5nOjBweCI+Cis8aW5wdXQgaWQ9c3ViIHR5cGU9c3VibWl0IHN0eWxlPSJ3aWR0aDox
MDBweDtoZWlnaHQ6MzBweCIgbmFtZT0ic3ViX2J0biIgdmFsdWU9InN1Ym1pdCI+Cis8L2Zvcm0+
Cis8cD5Gb3IgYSBzaW5nbGUgZm9ybSwgd2hlbiB1c2VycyBtYW51YWxseSBjbGljayB0aGUgc3Vi
bWl0IGJ1dHRvbiBvciBwcmVzcyBrZXkgdG8gYWN0aXZlIHRoZSBzdWJtaXQgYnV0dG9uLCB0aGUg
bXVsdGlwbGUgc3VibWlzc2lvbnMgb2YgdGhpcyBzaW5nbGUgZm9ybSBjYW4gYmUgc2VudC4gSWYg
dXNlcnMgdXNlIHNjcmlwdCB0byBzdWJtaXQgYSBzaW5nbGUgZm9ybSBtb3JlIHRoYW4gb25jZSwg
b25seSB0aGUgZmlyc3Qgc3VibWlzc2lvbiBjYW4gYmUgc2VudC48L3A+CitNdWx0aXBsZSBzdWJt
aXNzaW9ucyBieSBtYW51YWwgbW91c2UgY2xpY2sgPHNwYW4gaWQ9Im91dHB1dFBhbmVsMSI+RkFJ
TEVEPC9zcGFuPjxicj4KK011bHRpcGxlIHN1Ym1pc3Npb25zIGJ5IG1hbnVhbCBrZXkgcHJlc3Mg
PHNwYW4gaWQ9Im91dHB1dFBhbmVsMiI+RkFJTEVEPC9zcGFuPjxicj4KK011bHRpcGxlIHN1Ym1p
c3Npb25zIGJ5IHNjcmlwdGluZyA8c3BhbiBpZD0ib3V0cHV0UGFuZWwzIj5GQUlMRUQ8L3NwYW4+
PGJyPgorPGlmcmFtZSBuYW1lPSJjb250ZW50cyI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>
<flag name="review"
          id="33383"
          type_id="1"
          status="-"
          setter="eric"
    />
    <flag name="commit-queue"
          id="33399"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50650</attachid>
            <date>2010-03-12 19:09:34 -0800</date>
            <delta_ts>2010-03-12 19:09:34 -0800</delta_ts>
            <desc>fix the failure of charset-encoding tests and should not affect other tests at least on my mac.</desc>
            <filename>patch6.txt</filename>
            <type>text/plain</type>
            <size>10973</size>
            <attacher name="Johnny(Jianning) Ding">jnd</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTg5NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDMtMTIgIEpvaG5ueSBEaW5nICA8am5kQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXgg
dGhlIGxvZ2ljIG9mIHByZXZlbnRpbmcgYSBzaW5nbGUgZm9ybSBmcm9tIHN1Ym1pdHRpbmcgbW9y
ZSB0aGFuIG9uY2UuCisgICAgICAgIEFsbG93IHRoZSBtdWx0aXBsZSBzdWJtaXNzaW9ucyBvZiBh
IHNpbmdsZSBmb3JtIHdoZW4gdGhleSBhcmUgdXNlci1pbml0aWF0ZWQuCisgICAgICAgIERpc2Fs
bG93IHRoZSBtdWx0aXBsZSBzdWJtaXNzaW9ucyBvZiBhIHNpbmdsZSBmb3JtIHdoZW4gdGhleSBh
cmUgbm90IHVzZXItaW5pdGlhdGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzEwOTcKKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL21pc2Mvc2lu
Z2xlLWZvcm0tbXVsdGlwbGUtc3VibWlzc2lvbnMuaHRtbAorCisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzdWJtaXRGb3Jt
KToKKyAgICAgICAgUmVtb3ZlIHRoZSBsb2dpYyBvZiBjaGVja2luZyB0aGUgZGVzY2VuZGFudCBy
ZWxhdGlvbnNoaXAgYmV0d2VlbiBjdXJyZW50IGZyYW1lCisgICAgICAgIGFuZCB0YXJnZXQgZnJh
bWUgYmVmb3JlIGNvbXBhcmluZyB0aGUgcHJldmlvdXMgc3VibWl0dGVkIFVSTCAobV9zdWJtaXR0
ZWRGb3JtVVJMKQorICAgICAgICBhbmQgY3VycmVudCBzdWJtaXR0aW5nIFVSTC4gU2luY2UgV2Vi
Q29yZSBpbnRlbmRzIHRvIGVtcHR5IG1fc3VibWl0dGVkRm9ybVVSTCBpbgorICAgICAgICBhIG1v
dXNlIG9yIGtleSBkb3duIGV2ZW50LCB0aGUgb2xkIGxvZ2ljIGxvb2tzIHVubmVjZXNzYXJ5Lgor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KToKKyAgICAgICAgQ2FsbCByZXNldE11bHRp
cGxlRm9ybVN1Ym1pc3Npb25Qcm90ZWN0aW9uIHRvIGVtcHR5IG1fc3VibWl0dGVkRm9ybVVSTCBp
biBtb3VzZQorICAgICAgICBwcmVzcyBldmVudCB0byBhbGxvdyB0aGUgbXVsdGlwbGUgc3VibWlz
c2lvbnMgb2YgYSBzaW5nbGUgZm9ybSB3aGVuIHRoZXkgYXJlCisgICAgICAgIHVzZXItaW5pdGlh
dGVkLgorCiAyMDEwLTAzLTEyICBEYW4gV2luc2hpcCAgPGRhbndAZ25vbWUub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAJKHJldmlzaW9uIDU1NzE4KQorKysgV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00NzksMTcgKzQ3OSw5IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN1Ym1p
dEZvcm0oY29uc3QgY2hhcioKICAgICAvLyBmb3JtIG1vcmUgdGhhbiBvbmNlLiBUaGlzIGZsYWcg
cHJldmVudHMgdGhlc2UgZnJvbSBoYXBwZW5pbmc7IG5vdCBzdXJlIGhvdyBvdGhlciBicm93c2Vy
cyBwcmV2ZW50IHRoaXMuCiAgICAgLy8gVGhlIGZsYWcgaXMgcmVzZXQgaW4gZWFjaCB0aW1lIHdl
IHN0YXJ0IGhhbmRsZSBhIG5ldyBtb3VzZSBvciBrZXkgZG93biBldmVudCwgYW5kCiAgICAgLy8g
YWxzbyBpbiBzZXRWaWV3IHNpbmNlIHRoaXMgcGFydCBtYXkgZ2V0IHJldXNlZCBmb3IgYSBwYWdl
IGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KLSAgICAvLyBUaGUgZm9ybSBtdWx0aS1zdWJt
aXQgbG9naWMgaGVyZSBpcyBvbmx5IG5lZWRlZCB3aGVuIHdlIGFyZSBzdWJtaXR0aW5nIGEgZm9y
bSB0aGF0IGFmZmVjdHMgdGhpcyBmcmFtZS4KLQotICAgIC8vIEZJWE1FOiBGcmFtZSB0YXJnZXRp
bmcgaXMgb25seSBvbmUgb2YgdGhlIHdheXMgdGhlIHN1Ym1pc3Npb24gY291bGQgZW5kIHVwIGRv
aW5nIHNvbWV0aGluZyBvdGhlcgotICAgIC8vIHRoYW4gcmVwbGFjaW5nIHRoaXMgZnJhbWUncyBj
b250ZW50LCBzbyB0aGlzIGNoZWNrIGlzIGZsYXdlZC4gT24gdGhlIG90aGVyIGhhbmQsIHRoZSBj
aGVjayBpcyBoYXJkbHkKLSAgICAvLyBuZWVkZWQgYW55IG1vcmUgbm93IHRoYXQgd2UgcmVzZXQg
bV9zdWJtaXR0ZWRGb3JtVVJMIG9uIGVhY2ggbW91c2Ugb3Iga2V5IGRvd24gZXZlbnQuCi0KLSAg
ICBpZiAobV9mcmFtZS0+dHJlZSgpLT5pc0Rlc2NlbmRhbnRPZih0YXJnZXRGcmFtZSkpIHsKLSAg
ICAgICAgaWYgKG1fc3VibWl0dGVkRm9ybVVSTCA9PSB1KQotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICBtX3N1Ym1pdHRlZEZvcm1VUkwgPSB1OwotICAgIH0KKyAgICBpZiAobV9zdWJtaXR0
ZWRGb3JtVVJMID09IHUpCisgICAgICAgIHJldHVybjsKKyAgICBtX3N1Ym1pdHRlZEZvcm1VUkwg
PSB1OwogCiAgICAgZm9ybURhdGEtPmdlbmVyYXRlRmlsZXMobV9mcmFtZS0+cGFnZSgpLT5jaHJv
bWUoKS0+Y2xpZW50KCkpOwogICAgIApJbmRleDogV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHJldmlzaW9u
IDU1NzE4KQorKysgV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM5NSw2ICszOTUsMTAgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NF
dmVudAogICAgIGlmIChldmVudC5pc092ZXJXaWRnZXQoKSAmJiBwYXNzV2lkZ2V0TW91c2VEb3du
RXZlbnRUb1dpZGdldChldmVudCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgLy8gRklY
TUU6IGxpa2Ugc2FtZSBjb2RlIGluIGZ1bmN0aW9uIEtleUV2ZW50LCB3aGF0IGlzIHRoaXMgZG9p
bmcgaGVyZSwgaW4gbW91c2UgcHJlc3MgZXZlbnQgaGFuZGxlcj8KKyAgICAvLyBEbyB3ZSBuZWVk
IHRvIGFkZCB0aGlzIGxvZ2ljIGluIG90aGVyIG1vdXNlIGV2ZW50cz8KKyAgICBtX2ZyYW1lLT5s
b2FkZXIoKS0+cmVzZXRNdWx0aXBsZUZvcm1TdWJtaXNzaW9uUHJvdGVjdGlvbigpOworCiAjaWYg
RU5BQkxFKFNWRykKICAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKS0+aXNTVkdEb2N1bWVudCgp
ICYmCiAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHRG9jdW1lbnQqPihtX2ZyYW1lLT5kb2N1bWVudCgp
KS0+em9vbUFuZFBhbkVuYWJsZWQoKSkgewpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTU4OTUpCisrKyBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAx
MC0wMy0xMiAgSm9obm55IERpbmcgIDxqbmRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB0aGUgbG9naWMgb2YgcHJldmVu
dGluZyBhIHNpbmdsZSBmb3JtIGZyb20gc3VibWl0dGluZyBtb3JlIHRoYW4gb25jZS4KKyAgICAg
ICAgQWxsb3cgdGhlIG11bHRpcGxlIHN1Ym1pc3Npb25zIG9mIGEgc2luZ2xlIGZvcm0gd2hlbiB0
aGV5IGFyZSB1c2VyLWluaXRpYXRlZC4KKyAgICAgICAgRGlzYWxsb3cgdGhlIG11bHRpcGxlIHN1
Ym1pc3Npb25zIG9mIGEgc2luZ2xlIGZvcm0gd2hlbiB0aGV5IGFyZSBub3QgdXNlci1pbml0aWF0
ZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTA5
NworCisgICAgICAgICogZmFzdC9lbmNvZGluZy9yZXNvdXJjZXMvY2hhci1lbmNvZGluZy11dGls
cy5qczoKKyAgICAgICAgKHJ1blRlc3QpOgorICAgICAgICBBZGQgaSBhcyBxdWVyeSBwYXJhbWV0
ZXIgdG8gc2tpcCBtdWx0aXBsZSBzdWJtaXNzaW9uIHByb3RlY3Rpb24uCisgICAgICAgICogaHR0
cC90ZXN0cy9taXNjL3NpbmdsZS1mb3JtLW11bHRpcGxlLXN1Ym1pc3Npb25zLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL3NpbmdsZS1mb3JtLW11bHRpcGxl
LXN1Ym1pc3Npb25zLmh0bWw6IEFkZGVkLgorCiAyMDEwLTAzLTEyICBHdXN0YXZvIE5vcm9uaGEg
U2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFtHVEtd
IEZhaWxzIGZhc3QvZG9tL0dlb2xvY2F0aW9uL21heGltdW0tYWdlLmh0bQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9lbmNvZGluZy9yZXNvdXJjZXMvY2hhci1lbmNvZGluZy11dGlscy5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3Jlc291cmNlcy9jaGFyLWVuY29k
aW5nLXV0aWxzLmpzCShyZXZpc2lvbiA1NTcxOCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2Rp
bmcvcmVzb3VyY2VzL2NoYXItZW5jb2RpbmctdXRpbHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTU0
LDcgKzU0LDggQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgdmFyIHN1YmZyYW1lID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3N1YmZyYW1lJyk7CiAKICAgICBmb3JtLmFjY2VwdENoYXJzZXQg
PSBjaGFyc2V0c1tpXTsKLSAgICBmb3JtLmFjdGlvbiA9ICJyZXNvdXJjZXMvZHVtbXkuaHRtbCI7
CisgICAgLy8gQWRkICJpIiBhcyBxdWVyeSBwYXJhbWV0ZXIgdG8gcHJldmVudCBtdWx0aXBsZSBz
dWJtaXNzaW9ucyBwcm90ZWN0aW9uIHNpbmNlIFdlYktpdCBkaXNhbGxvd3MgdGhlIG11bHRpcGxl
IHN1Ym1pc3Npb25zIG9mIGEgc2luZ2xlIGZvcm0gd2hlbiB0aGV5IGFyZSBub3QgdXNlci1pbml0
aWF0ZWQuCisgICAgZm9ybS5hY3Rpb24gPSAicmVzb3VyY2VzL2R1bW15Lmh0bWw/IiArIGk7CiAg
ICAgc3ViZnJhbWUub25sb2FkID0gc3ViZnJhbWVMb2FkZWQ7CiAgICAgdGV4dC52YWx1ZSA9IFN0
cmluZy5mcm9tQ2hhckNvZGUodW5pY29kZXNbaV0ucmVwbGFjZSgnVSsnLCAnMHgnKSk7CiAgICAg
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2luZ2xlLWZvcm0tbXVsdGlwbGUt
c3VibWlzc2lvbnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWlzYy9zaW5nbGUtZm9ybS1tdWx0aXBsZS1zdWJtaXNzaW9ucy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2luZ2xlLWZvcm0t
bXVsdGlwbGUtc3VibWlzc2lvbnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDcgQEAKKworRm9yIGEgc2luZ2xlIGZvcm0sIHdoZW4gdXNlcnMgbWFudWFsbHkgY2xpY2sgdGhl
IHN1Ym1pdCBidXR0b24gb3IgcHJlc3Mga2V5IHRvIGFjdGl2ZSB0aGUgc3VibWl0IGJ1dHRvbiwg
dGhlIG11bHRpcGxlIHN1Ym1pc3Npb25zIG9mIHRoaXMgc2luZ2xlIGZvcm0gY2FuIGJlIHNlbnQu
IElmIHVzZXJzIHVzZSBzY3JpcHQgdG8gc3VibWl0IGEgc2luZ2xlIGZvcm0gbW9yZSB0aGFuIG9u
Y2UsIG9ubHkgdGhlIGZpcnN0IHN1Ym1pc3Npb24gY2FuIGJlIHNlbnQuCisKK011bHRpcGxlIHN1
Ym1pc3Npb25zIGJ5IG1hbnVhbCBtb3VzZSBjbGljayBQQVNTRUQKK011bHRpcGxlIHN1Ym1pc3Np
b25zIGJ5IG1hbnVhbCBrZXkgcHJlc3MgUEFTU0VECitNdWx0aXBsZSBzdWJtaXNzaW9ucyBieSBz
Y3JpcHRpbmcgUEFTU0VECisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zaW5n
bGUtZm9ybS1tdWx0aXBsZS1zdWJtaXNzaW9ucy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWlzYy9zaW5nbGUtZm9ybS1tdWx0aXBsZS1zdWJtaXNzaW9ucy5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3NpbmdsZS1mb3Jt
LW11bHRpcGxlLXN1Ym1pc3Npb25zLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTM2IEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK3dpbmRvdy5tdWx0aXBsZVN1Ym1pc3Npb25zVGVz
dCA9IChmdW5jdGlvbigpIHsKKyAgICBmdW5jdGlvbiBDYWxsQ29tbWFuZChjbWQpCisgICAgewor
ICAgICAgICB0cnkgeworICAgICAgICAgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdDsK
KyAgICAgICAgICAgIHJlcS5vcGVuKCJHRVQiLCAiL3Jlc291cmNlcy9uZXR3b3JrLXNpbXVsYXRv
ci5waHA/Y29tbWFuZD0iICsgY21kLCBmYWxzZSk7CisgICAgICAgICAgICByZXEuc2VuZChudWxs
KTsKKyAgICAgICAgICAgIHJldHVybiByZXEucmVzcG9uc2VUZXh0OworICAgICAgICB9IGNhdGNo
IChleCkgeworICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgICB9CisgICAgfQorCisgICAg
dmFyIG11bHRpcGxlU3VibWlzc2lvbnNDb3VudCA9IDI7CisgICAgdmFyIHN1Ym1pc3Npb25JbnRl
cnZhbCA9IDUwMDsKKyAgICB2YXIgY3VycmVudFRlc3RTdGVwcyA9IDA7CisKKyAgICBmdW5jdGlv
biBzdWJtaXRGb3JtQnlNb3VzZUNsaWNrKCkKKyAgICB7CisgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKDIwLCAyMCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigwKTsKKyAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgwKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdWJt
aXRGb3JtQnlLZXlQcmVzcygpCisgICAgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgic3ViIikuZm9jdXMoKTsKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiXHIiKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBzdWJtaXRGb3JtQnlTY3JpcHRpbmcoKQorICAgIHsKKyAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvcm0xIikuc3VibWl0KCk7CisgICAgfQorCisg
ICAgdmFyIG1vdXNlQ2xpY2tTdWJtaXRUZXN0ID0KKyAgICB7CisgICAgICAgIGN1cnJlbnRTdWJt
aXNzaW9uQ291bnQgOiAwLAorICAgICAgICBtYXhTdWJtaXNzaW9uc0NvdW50IDogbXVsdGlwbGVT
dWJtaXNzaW9uc0NvdW50LAorICAgICAgICBvdXRwdXRQYW5lbElkIDogIm91dHB1dFBhbmVsMSIs
CisgICAgICAgIGV4cGVjdFN1Ym1pc3Npb25zQ291bnQgOiBtdWx0aXBsZVN1Ym1pc3Npb25zQ291
bnQsCisgICAgICAgIHRlc3RGdW5jdGlvbiA6IHN1Ym1pdEZvcm1CeU1vdXNlQ2xpY2sKKyAgICB9
CisKKyAgICB2YXIga2V5UHJlc3NTdWJtaXRUZXN0ID0KKyAgICB7CisgICAgICAgIGN1cnJlbnRT
dWJtaXNzaW9uQ291bnQgOiAwLAorICAgICAgICBtYXhTdWJtaXNzaW9uc0NvdW50IDogbXVsdGlw
bGVTdWJtaXNzaW9uc0NvdW50LAorICAgICAgICBvdXRwdXRQYW5lbElkIDogIm91dHB1dFBhbmVs
MiIsCisgICAgICAgIGV4cGVjdFN1Ym1pc3Npb25zQ291bnQgOiBtdWx0aXBsZVN1Ym1pc3Npb25z
Q291bnQsCisgICAgICAgIHRlc3RGdW5jdGlvbiA6IHN1Ym1pdEZvcm1CeUtleVByZXNzCisgICAg
fQorCisgICAgdmFyIHNjcmlwdGluZ1N1Ym1pdFRlc3QgPQorICAgIHsKKyAgICAgICAgY3VycmVu
dFN1Ym1pc3Npb25Db3VudCA6IDAsCisgICAgICAgIG1heFN1Ym1pc3Npb25zQ291bnQgOiBtdWx0
aXBsZVN1Ym1pc3Npb25zQ291bnQsCisgICAgICAgIG91dHB1dFBhbmVsSWQgOiAib3V0cHV0UGFu
ZWwzIiwKKyAgICAgICAgZXhwZWN0U3VibWlzc2lvbnNDb3VudCA6IDEsCisgICAgICAgIHRlc3RG
dW5jdGlvbiA6IHN1Ym1pdEZvcm1CeVNjcmlwdGluZworICAgIH0KKworICAgIHZhciB0ZXN0T2Jq
ZWN0cyA9IFttb3VzZUNsaWNrU3VibWl0VGVzdCwga2V5UHJlc3NTdWJtaXRUZXN0LCBzY3JpcHRp
bmdTdWJtaXRUZXN0XTsKKyAgICB2YXIgY3VycmVudFN0ZXAgPSAwOworCisgICAgZnVuY3Rpb24g
Y2hlY2tOb3RpZnlEb25lKCkKKyAgICB7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gZ2V0VGVzdE9iamVjdCgpCisgICAgeworICAgICAgICBp
ZiAoY3VycmVudFN0ZXAgPCB0ZXN0T2JqZWN0cy5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4g
dGVzdE9iamVjdHNbY3VycmVudFN0ZXBdOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1
cm4gbnVsbDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja1Jlc3VsdCgpIHsKKyAgICAgICAg
dmFyIHRlc3RPYmplY3QgPSBnZXRUZXN0T2JqZWN0KCk7CisgICAgICAgIGlmICghdGVzdE9iamVj
dCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdmFyIGNvdW50ID0gQ2FsbENvbW1hbmQo
ImdldC1yZXNvdXJjZS1jb3VudCZwYXRoPWludmFsaWRfcmVzb3VyY2UiKTsKKyAgICAgICAgY291
bnQgPSBwYXJzZUludChjb3VudCwgMTApOworICAgICAgICBpZiAoY291bnQgPT0gdGVzdE9iamVj
dC5leHBlY3RTdWJtaXNzaW9uc0NvdW50KQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQodGVzdE9iamVjdC5vdXRwdXRQYW5lbElkKS5pbm5lckhUTUwgPSAiUEFTU0VEIjsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGVzdE9iamVj
dC5vdXRwdXRQYW5lbElkKS5pbm5lckhUTUwgPSAiRkFJTEVEIjsKKyAgICAgICAgY3VycmVudFN0
ZXArKzsKKyAgICAgICAgd2luZG93Lm11bHRpcGxlU3VibWlzc2lvbnNUZXN0KCk7CisgICAgfQor
ICAgIAorICAgIHJldHVybiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIgdGVzdE9iamVj
dCA9IGdldFRlc3RPYmplY3QoKTsKKyAgICAgICAgaWYgKCF0ZXN0T2JqZWN0KSB7CisgICAgICAg
ICAgICBjaGVja05vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICAvLyBDbGVhciB0aGUgcmVzb3VyY2UgY291bnQgYmVmb3JlIGVhY2ggY2F0ZWdvcnkg
b2Ygc3VibWlzc2lvbiB0ZXN0IHN0YXJ0cy4KKyAgICAgICAgaWYgKDAgPT0gdGVzdE9iamVjdC5j
dXJyZW50U3VibWlzc2lvbkNvdW50KQorICAgICAgICAgICAgQ2FsbENvbW1hbmQoInJlc2V0LXJl
c291cmNlLWNvdW50Iik7CisgICAgICAgIHRlc3RPYmplY3QuY3VycmVudFN1Ym1pc3Npb25Db3Vu
dCsrOworICAgICAgICB0ZXN0T2JqZWN0LnRlc3RGdW5jdGlvbigpOworICAgICAgICBpZiAodGVz
dE9iamVjdC5jdXJyZW50U3VibWlzc2lvbkNvdW50IDwgdGVzdE9iamVjdC5tYXhTdWJtaXNzaW9u
c0NvdW50KQorICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQod2luZG93Lm11bHRpcGxlU3Vi
bWlzc2lvbnNUZXN0LCBzdWJtaXNzaW9uSW50ZXJ2YWwpCisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHdpbmRvdy5zZXRUaW1lb3V0KGNoZWNrUmVzdWx0LCBzdWJtaXNzaW9uSW50ZXJ2YWwpCisg
ICAgfQorfSkoKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CisgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICB3
aW5kb3cubXVsdGlwbGVTdWJtaXNzaW9uc1Rlc3QoKTsKKyAgIH0KK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPGZvcm0gbmFtZT1mIGlkPSJmb3JtMSIgYWN0
aW9uPSIvcmVzb3VyY2VzL25ldHdvcmstc2ltdWxhdG9yLnBocD9jb21tYW5kPWluY3JlYXNlLXJl
c291cmNlLWNvdW50JnBhdGg9aW52YWxpZF9yZXNvdXJjZSIgbWV0aG9kPSJwb3N0IiB0YXJnZXQ9
ImNvbnRlbnRzIiBzdHlsZT0ibWFyZ2luOjBweDsgcGFkZGluZzowcHgiPgorPGlucHV0IGlkPXN1
YiB0eXBlPXN1Ym1pdCBzdHlsZT0id2lkdGg6MTAwcHg7aGVpZ2h0OjMwcHgiIG5hbWU9InN1Yl9i
dG4iIHZhbHVlPSJzdWJtaXQiPgorPC9mb3JtPgorPHA+Rm9yIGEgc2luZ2xlIGZvcm0sIHdoZW4g
dXNlcnMgbWFudWFsbHkgY2xpY2sgdGhlIHN1Ym1pdCBidXR0b24gb3IgcHJlc3Mga2V5IHRvIGFj
dGl2ZSB0aGUgc3VibWl0IGJ1dHRvbiwgdGhlIG11bHRpcGxlIHN1Ym1pc3Npb25zIG9mIHRoaXMg
c2luZ2xlIGZvcm0gY2FuIGJlIHNlbnQuIElmIHVzZXJzIHVzZSBzY3JpcHQgdG8gc3VibWl0IGEg
c2luZ2xlIGZvcm0gbW9yZSB0aGFuIG9uY2UsIG9ubHkgdGhlIGZpcnN0IHN1Ym1pc3Npb24gY2Fu
IGJlIHNlbnQuPC9wPgorTXVsdGlwbGUgc3VibWlzc2lvbnMgYnkgbWFudWFsIG1vdXNlIGNsaWNr
IDxzcGFuIGlkPSJvdXRwdXRQYW5lbDEiPkZBSUxFRDwvc3Bhbj48YnI+CitNdWx0aXBsZSBzdWJt
aXNzaW9ucyBieSBtYW51YWwga2V5IHByZXNzIDxzcGFuIGlkPSJvdXRwdXRQYW5lbDIiPkZBSUxF
RDwvc3Bhbj48YnI+CitNdWx0aXBsZSBzdWJtaXNzaW9ucyBieSBzY3JpcHRpbmcgPHNwYW4gaWQ9
Im91dHB1dFBhbmVsMyI+RkFJTEVEPC9zcGFuPjxicj4KKzxpZnJhbWUgbmFtZT0iY29udGVudHMi
PjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>