<?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>21820</bug_id>
          
          <creation_ts>2008-10-22 19:40:52 -0700</creation_ts>
          <short_desc>Unable to enter the Tamil UNICODE Characters via Thamizha Phonetic IME</short_desc>
          <delta_ts>2008-12-10 05:16:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</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>1</everconfirmed>
          <reporter name="Hironori Bono">hbono</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>jshin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>96282</commentid>
    <comment_count>0</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2008-10-22 19:40:52 -0700</bug_when>
    <thetext>Copied from &quot;http://code.google.com/p/chromium/issues/detail?id=1097&quot;

* Steps to Reproduce
1. Download the Thamizha tamil phonetic IME From
http://www.thamizha.com/downloads/ekalappai20b_anjal.zip
2. Extract the archive and install.
3. Try to enter Tamil UNICODE Characters to any checkboxes see the characters got deleted automatically once you try to enter some tamil characters. This is not the case with Firefox or Internet explorer. 

* Expected Results
I need to enter Tamil UNICODE characters to wikipedia project, blogging sites directly from the IME.

* Actual Results
Characters got deleted automatically one I try to enter a character. 

* Additional Builds and Platforms:
Other browsers tested:
Add OK or FAIL after other browsers where you have tested this issue:
   Safari 3: FAIL
  Firefox 3: OK
       IE 7: OK

- Does not occur on
The English version of Windows XP

* Additional Information:
Copy paste from notepad to browser with Tamil UNICODE characters works but
it is a real waste of time. Some similar issue was there with Yahoo!
messenger 7 and it has been rectified with latest version 9 (I think worked
with version 8 as well).

This issue is caused by the Editor::deleteWithDirection() function which deletes a ligature without decomposing it.
This issue also happens on languages which uses ligatures, e.g. Arabic, Lao, Thai, etc.
The easiest solution is changing the above function to insert a decomposed characters after deleting a ligature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96283</commentid>
    <comment_count>1</comment_count>
      <attachid>24586</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2008-10-22 19:46:12 -0700</bug_when>
    <thetext>Created attachment 24586
proposed fix

This is the simplest solution for this issue. I&apos;m wondering if this is the best one, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96316</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-10-23 05:31:31 -0700</bug_when>
    <thetext>I&apos;m leaving it to others to decide whether this is a good fix. But this absolutely needs an automated test case. See e.g. editing/deleting/forward-delete.html and platform/mac/editing/input/devanagari-ligature.html for some examples of how to make such.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96498</commentid>
    <comment_count>3</comment_count>
      <attachid>24637</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2008-10-24 02:39:23 -0700</bug_when>
    <thetext>Created attachment 24637
my second proposed patch including a layout test

Thank you for your review.
I have added a layout test &quot;LayoutTests/editing/deleting/delete-ligature.html&quot; which verifies if this issue is fixed.
While writing this test, I need to change another file &quot;WebCore/editing/EditorCommand.cpp&quot; to let a JavaScript call the executeDeleteBackward() function through document.execCommand(&quot;DeleteBackward&quot;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96519</commentid>
    <comment_count>4</comment_count>
      <attachid>24637</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2008-10-24 10:19:56 -0700</bug_when>
    <thetext>Comment on attachment 24637
my second proposed patch including a layout test

&gt; Index: WebCore/ChangeLog
&gt; ===================================================================
&gt; --- WebCore/ChangeLog	(revision 37842)
&gt; +++ WebCore/ChangeLog	(working copy)
&gt; @@ -1,3 +1,14 @@
&gt; +2008-10-24  Hironori Bono  &lt;hbono@chromium.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Test: editing/deleting/delete-ligature.html
&gt; +
&gt; +        * editing/Editor.cpp:
&gt; +        (WebCore::Editor::deleteWithDirection):
&gt; +        * editing/EditorCommand.cpp:
&gt; +        (WebCore::CommandEntry::):
&gt; +
&gt;  2008-10-24  David Kilzer  &lt;ddkilzer@apple.com&gt;
&gt;  
&gt;          Rolled out r37840 and r37841.
&gt; Index: WebCore/editing/Editor.cpp
&gt; ===================================================================
&gt; --- WebCore/editing/Editor.cpp	(revision 37801)
&gt; +++ WebCore/editing/Editor.cpp	(working copy)
&gt; @@ -259,8 +259,14 @@ bool Editor::deleteWithDirection(Selecti
&gt;                  break;
&gt;              case SelectionController::BACKWARD:
&gt;              case SelectionController::LEFT:
&gt; -                if (m_frame-&gt;document())
&gt; +                if (m_frame-&gt;document()) {
&gt; +                    String stringToDelete = plainText(range.get());
&gt;                      TypingCommand::deleteKeyPressed(m_frame-&gt;document(), false, granularity);
&gt; +                    if (stringToDelete.length() &gt; 1) {
&gt; +                        stringToDelete.truncate(stringToDelete.length() - 1);
&gt; +                        TypingCommand::insertText(m_frame-&gt;document(), stringToDelete, false, false);

What if &apos;granularity&apos; is not a &quot;character&quot;?  I think the above change needs to be done only when &apos;granularity&apos; is &apos;character&apos;? 

I also wonder if this meets everybody&apos;s expectation of &apos;delete backward&apos;. For instance, without your change, Latin base letter + combining accent will be deleted
as a unit. With this change, only the combining accent will be deleted, right? Given that widely used Latin letters with accents are represented in a composed form, it&apos;s 
not very critical. However, some Latin letters with accents (used in African languages, for instance) do not have a composed form representation. So, at least, you may want to
add a TODO comment about that. 

Perhaps, in the long run, a new granularity of &apos;Codepoint&apos; needs to be introduced. IIRC, &apos;character&apos; granularity is actually &apos;grapheme (cluster)&apos; granularity at the moment. 
 



&gt; +                    }
&gt; +                }
&gt;                  break;
&gt;          }
&gt;          revealSelectionAfterEditingOperation();
&gt; Index: WebCore/editing/EditorCommand.cpp
&gt; ===================================================================
&gt; --- WebCore/editing/EditorCommand.cpp	(revision 37801)
&gt; +++ WebCore/editing/EditorCommand.cpp	(working copy)
&gt; @@ -1164,7 +1164,7 @@ static const CommandMap&amp; createCommandMa
&gt;          { &quot;CreateLink&quot;, { executeCreateLink, supported, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
&gt;          { &quot;Cut&quot;, { executeCut, supported, enabledCut, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabled } },
&gt;          { &quot;Delete&quot;, { executeDelete, supported, enabledDelete, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
&gt; -        { &quot;DeleteBackward&quot;, { executeDeleteBackward, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
&gt; +        { &quot;DeleteBackward&quot;, { executeDeleteBackward, supported, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
&gt;          { &quot;DeleteBackwardByDecomposingPreviousCharacter&quot;, { executeDeleteBackwardByDecomposingPreviousCharacter, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
&gt;          { &quot;DeleteForward&quot;, { executeDeleteForward, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
&gt;          { &quot;DeleteToBeginningOfLine&quot;, { executeDeleteToBeginningOfLine, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
&gt; Index: LayoutTests/ChangeLog
&gt; ===================================================================
&gt; --- LayoutTests/ChangeLog	(revision 37842)
&gt; +++ LayoutTests/ChangeLog	(working copy)
&gt; @@ -1,3 +1,9 @@
&gt; +2008-10-24  Hironori Bono  &lt;hbono@chromium.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * editing/deleting/delete-ligature.html: Added.
&gt; +
&gt;  2008-10-24  David Kilzer  &lt;ddkilzer@apple.com&gt;
&gt;  
&gt;          Rolled out r37840.
&gt; Index: LayoutTests/editing/deleting/delete-ligature.html
&gt; ===================================================================
&gt; --- LayoutTests/editing/deleting/delete-ligature.html	(revision 0)
&gt; +++ LayoutTests/editing/deleting/delete-ligature.html	(revision 0)
&gt; @@ -0,0 +1,44 @@
&gt; +&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&gt; +    &lt;head&gt;
&gt; +        &lt;script src=&quot;../editing.js&quot; language=&quot;javascript&quot; type=&quot;text/javascript&quot; &gt;&lt;/script&gt;
&gt; +        &lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&gt;
&gt; +        function execBackwardDeleteCommand() {
&gt; +            document.execCommand(&quot;DeleteBackward&quot;);
&gt; +        }
&gt; +        function backwardDeleteCommand() {
&gt; +            if (commandDelay &gt; 0) {
&gt; +                window.setTimeout(execBackwardDeleteCommand, commandCount * commandDelay);
&gt; +                commandCount++;
&gt; +            } else {
&gt; +                execBackwardDeleteCommand();
&gt; +            }
&gt; +        }
&gt; +        function log(str) {
&gt; +            var li = document.createElement(&quot;li&quot;);
&gt; +            li.appendChild(document.createTextNode(str));
&gt; +            var console = document.getElementById(&quot;console&quot;);
&gt; +            console.appendChild(li);
&gt; +        }
&gt; +        function editingTest() {
&gt; +            var textarea = document.getElementById(&quot;test&quot;);
&gt; +            textarea.setSelectionRange(2, 2);
&gt; +            backwardDeleteCommand();
&gt; +            if (textarea.value == String.fromCharCode(0x0E27)) {
&gt; +                log(&quot;Succeeded.&quot;);
&gt; +            } else {
&gt; +                log(&quot;Failed. Actual: \&quot;&quot; + textarea.value + &quot;\&quot;, Expected: \&quot;&quot; + String.fromCharCode(0x0E27) + &quot;\&quot;&quot;);
&gt; +            }
&gt; +        }
&gt; +        &lt;/script&gt;
&gt; +    &lt;title&gt;Editing Test (Deleting a ligature)&lt;/title&gt; 
&gt; +&lt;/head&gt; 
&gt; +    &lt;body&gt;
&gt; +        &lt;p&gt;This test tests if a ligature &quot;&amp;#x0E27;&amp;#x0E31;&quot; is decomposed while deleting it with a back-space key.&lt;/p&gt;
&gt; +        &lt;p&gt;If this test succeeds, you can see &quot;&amp;#x0E27;&quot; (U+0E27) and a string &quot;succeeded&quot; below.&lt;/p&gt;
&gt; +        &lt;textarea id=&quot;test&quot; rows=&quot;1&quot; cols=&quot;40&quot;&gt;&amp;#x0E27;&amp;#x0E31;&lt;/textarea&gt;
&gt; +        &lt;ul id=&quot;console&quot;&gt;&lt;/ul&gt;
&gt; +        &lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&gt;
&gt; +        runEditingTest();
&gt; +        &lt;/script&gt;
&gt; +    &lt;/body&gt;
&gt; +&lt;/html&gt;
&gt; 
&gt; Property changes on: LayoutTests/editing/deleting/delete-ligature.html
&gt; ___________________________________________________________________
&gt; Added: svn:executable
&gt;    + *
&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96781</commentid>
    <comment_count>5</comment_count>
      <attachid>24694</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2008-10-27 14:23:40 -0700</bug_when>
    <thetext>Created attachment 24694
the third proposed fix

(In reply to comment #4)

&gt; What if &apos;granularity&apos; is not a &quot;character&quot;?  I think the above change needs to
&gt; be done only when &apos;granularity&apos; is &apos;character&apos;? 

Thank you for noticing this. You are right.
I have updated my patch to check if the &apos;granularity&apos; value is &apos;CharacterGranularity&apos;.

&gt; I also wonder if this meets everybody&apos;s expectation of &apos;delete backward&apos;.
&gt; For instance, without your change, Latin base letter + combining accent will be
&gt; deleted as a unit. With this change, only the combining accent will be deleted, right?

Yes. When a ligature consists of a Latin character and Unicode combining characters (U+0300,...,U+036F), my change deletes only the last combining character.

&gt; Given that widely used Latin letters with accents are represented in a composed
&gt; form, it&apos;s not very critical. However, some Latin letters with accents (used in African
&gt; languages, for instance) do not have a composed form representation. So, at
&gt; least, you may want to add a TODO comment about that. 

I have added a &apos;FIXME&apos; comment which notes this problem.
 
&gt; Perhaps, in the long run, a new granularity of &apos;Codepoint&apos; needs to be
&gt; introduced. IIRC, &apos;character&apos; granularity is actually &apos;grapheme (cluster)&apos;
&gt; granularity at the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97550</commentid>
    <comment_count>6</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2008-11-03 22:50:29 -0800</bug_when>
    <thetext>Excuse me.
Is it possible to give me what I should do next? Many people have been waiting for us to fix this issue and I would like to fix it as soon as possible.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97551</commentid>
    <comment_count>7</comment_count>
      <attachid>24694</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2008-11-03 23:17:34 -0800</bug_when>
    <thetext>Comment on attachment 24694
the third proposed fix

&gt; Index: WebCore/ChangeLog
&gt; ===================================================================
&gt; --- WebCore/ChangeLog	(revision 37899)
&gt; +++ WebCore/ChangeLog	(working copy)
&gt; @@ -1,3 +1,14 @@
&gt; +2008-10-27  Hironori Bono  &lt;hbono@chromium.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).

I guess you need to mention this bug here and add a brief description of the problem and your fix.

Sorry if it&apos;s me who held you up. It looks good to me. I&apos;m asking for review.

By the way, are you going to implement DeleteBackwardByDecomposingPreviousCharacter as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97757</commentid>
    <comment_count>8</comment_count>
      <attachid>24694</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2008-11-05 16:38:27 -0800</bug_when>
    <thetext>Comment on attachment 24694
the third proposed fix

+2008-10-27  Hironori Bono  &lt;hbono@chromium.org&gt;
+
+        Reviewed by NOBODY (OOPS!).
+
+        Test: editing/deleting/delete-ligature.html
+
+        * editing/Editor.cpp:
+        (WebCore::Editor::deleteWithDirection):
+        * editing/EditorCommand.cpp:
+        (WebCore::CommandEntry::):

Please describe the reasoning behind your changes here.

             case SelectionController::LEFT:
-                if (m_frame-&gt;document())
+                if (m_frame-&gt;document()) {
+                    String stringToDelete = plainText(range.get());

We found recently that deleting a text consumes most of the CPU on the iPhone and I&apos;m worried about what performance impact this may have.  Could you investigate?

+        &lt;p&gt;This test tests if a ligature &quot;&amp;#x0E27;&amp;#x0E31;&quot; is decomposed while deleting it with a back-space key.&lt;/p&gt;

Shouldn&apos;t you be implementing deleteBackwardByDecomposingPreviousCharacter then?

Justin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97774</commentid>
    <comment_count>9</comment_count>
      <attachid>24933</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2008-11-05 20:29:34 -0800</bug_when>
    <thetext>Created attachment 24933
the forth proposed patch (containing descriptions)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97775</commentid>
    <comment_count>10</comment_count>
      <attachid>24934</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2008-11-05 20:38:06 -0800</bug_when>
    <thetext>Created attachment 24934
the fourth proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97776</commentid>
    <comment_count>11</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2008-11-05 20:54:50 -0800</bug_when>
    <thetext>Thank you for your review and comments.

(In reply to comment #8)
&gt; (From update of attachment 24694 [edit])
&gt; +2008-10-27  Hironori Bono  &lt;hbono@chromium.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Test: editing/deleting/delete-ligature.html
&gt; +
&gt; +        * editing/Editor.cpp:
&gt; +        (WebCore::Editor::deleteWithDirection):
&gt; +        * editing/EditorCommand.cpp:
&gt; +        (WebCore::CommandEntry::):
&gt; 
&gt; Please describe the reasoning behind your changes here.

Sorry for the lack of descriptions.
I have added them to &quot;WebCore/ChangeLog&quot; and &quot;LayoutTests/ChangeLog&quot;.

&gt;              case SelectionController::LEFT:
&gt; -                if (m_frame-&gt;document())
&gt; +                if (m_frame-&gt;document()) {
&gt; +                    String stringToDelete = plainText(range.get());
&gt; 
&gt; We found recently that deleting a text consumes most of the CPU on the iPhone
&gt; and I&apos;m worried about what performance impact this may have.  Could you
&gt; investigate?

Even though I cannot use iPhones to investigate processing power while deleting a text, it does not consume so much processing power on Chrome.

&gt; +        &lt;p&gt;This test tests if a ligature &quot;&amp;#x0E27;&amp;#x0E31;&quot; is decomposed
&gt; while deleting it with a back-space key.&lt;/p&gt;
&gt;
&gt; Shouldn&apos;t you be implementing deleteBackwardByDecomposingPreviousCharacter
&gt; then?

Correctly, this fix changes the behavior of the &quot;DeleteBackward&quot; command to delete only the last character of a ligature consisting of multiple Unicode characters. That is, this fix does not decompose many Latin ligatures each of which consists of one Unicode character, e.g. this fix does not decompose &apos;&amp;#224;&apos; (U+00E0) to &apos;a&apos; + &apos;`&apos; but just deletes &apos;&amp;#224;&apos; itself. Since I&apos;m not sure this behaviors should be denoted as &quot;decompose&quot;, I can move this fix to &quot;deleteBackwardByDecomposingPreviousCharacter&quot; function if you prefer it.

&gt; Justin
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99092</commentid>
    <comment_count>12</comment_count>
      <attachid>24934</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-17 13:15:58 -0800</bug_when>
    <thetext>Comment on attachment 24934
the fourth proposed fix

I suppose that this was meant for review, marking as such.

I don&apos;t think that this patch should enable DeleteBackward - that&apos;s not as easy as it looks, because we&apos;d need to check whether its behavior in edge cases matches other commands, and how it differs from BackwardDelete. Please change the test to use eventSender (see e.g. editing/deleting/delete-by-word-001.html). Sorry for misguiding you by giving an example that uses commands.

I don&apos;t have an opinion on the substance of the fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99626</commentid>
    <comment_count>13</comment_count>
      <attachid>25344</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2008-11-21 01:50:31 -0800</bug_when>
    <thetext>Created attachment 25344
Fifth proposed fix

Thank you for your comments and sorry for my late response.
I have updated my fix to use the eventSender object and to make it work on the trunk (r38647).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100573</commentid>
    <comment_count>14</comment_count>
      <attachid>25564</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2008-11-27 20:22:26 -0800</bug_when>
    <thetext>Created attachment 25564
Sixth proposed patch

Sorry. My previous patch does not work at all since r38755.
I have fixed a problem of my patch and its layout test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100820</commentid>
    <comment_count>15</comment_count>
      <attachid>25564</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-12-01 04:51:00 -0800</bug_when>
    <thetext>Comment on attachment 25564
Sixth proposed patch

Please don&apos;t forget to set review? flag.

I tested this change, and it doesn&apos;t work sufficiently well yet. Here are the issues I encountered in my testing:

1) Undo is broken. Steps to reproduce:
 - open the test in Safari,
 - press Backspace,
 - press Cmd+Z for Undo.
Results: instead of the combining character being brought back, the first character is deleted, too.
It is quite clear why this happens: the delete operation can not be simply replaced with a delete/re-add pair.

2) Deleting still doesn&apos;t work correctly after moving the caret. Steps to reproduce:
 - open the test in Safari,
 - press Left arrow,
 - press Right arrow,
 - press Backspace.
Results: the whole ligature is deleted.

3) The automated test doesn&apos;t pass on Mac OS X. First, I&apos;m getting EDITING DELEGATE lines that are not in this patch (I&apos;m surprised that you didn&apos;t have them on Windows). Second, font metrics are different, so box sizes don&apos;t match. For this second problem, you could consider making the test text-only.

When problems (1) and (2) are fixed, we&apos;ll need automated tests for them, as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100990</commentid>
    <comment_count>16</comment_count>
      <attachid>25669</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2008-12-02 02:23:04 -0800</bug_when>
    <thetext>Created attachment 25669
seventh proposed (and temporal) fix without layout test results

Thank you for your review and comments.

Sorry for sending corrupted patch. I misunderstood the recent changes to the Editor class and wrote a completely corrupted fix.
Even though I have another fix (attached to this comment) which fixes the reported problems, I would not like to send its review request because I&apos;m wondering if it works on MacOS X. I&apos;m now getting a MacBook for my webkit development and moving my development environment to it. Once I move my development environment of WebKit to MacOS X and fixes problems on it, I will send a review request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101944</commentid>
    <comment_count>17</comment_count>
      <attachid>25877</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2008-12-08 23:19:32 -0800</bug_when>
    <thetext>Created attachment 25877
eighth proposed fix

Sorry for my late response.
I got a macbook, set up my development environment for WebKit on it, and made my fix and tests work on it.
Is it possible to review the latest fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101952</commentid>
    <comment_count>18</comment_count>
      <attachid>25878</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2008-12-09 00:52:40 -0800</bug_when>
    <thetext>Created attachment 25878
nineth proposed fix

Sorry. I forgot changing the &quot;LayoutTests/ChangeLog&quot;.
Is it possible to review this fix instead of the previous one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101958</commentid>
    <comment_count>19</comment_count>
      <attachid>25878</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-12-09 03:02:17 -0800</bug_when>
    <thetext>Comment on attachment 25878
nineth proposed fix

+        Added test for verifying if a backspace key deletes only the last character of a ligature which consists of
+	multiple Unicode characters.

There is a tab in ChangeLog here, please replace it with spaces.

These tests are not text-only, but the patch only includes text results. Please use layoutTestController to make the tests text-only:
if (window.layoutTestController)
    layoutTestController.dumpAsText().

This patch works much better, but it breaks at least one existing layout test for me: editing/deleting/delete-br-011.html. Does this happen on your machine?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102085</commentid>
    <comment_count>20</comment_count>
      <attachid>25917</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2008-12-10 01:43:36 -0800</bug_when>
    <thetext>Created attachment 25917
tenth proposed fix

Thank you for your review and sorry for my stupid mistakes.
I have added dumpAsText() calls in my tests and updated my patch to fix the layout-test regression in &quot;delete-br-011.html&quot;.
As far as I tested in my macbook, I cannot see any more regressions in my macbook. (WebKit r39162 has several layout-test regressions and I cannot confirm my fix does not yield any more regressions, though.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102088</commentid>
    <comment_count>21</comment_count>
      <attachid>25917</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-12-10 04:50:43 -0800</bug_when>
    <thetext>Comment on attachment 25917
tenth proposed fix

r=me. As already mentioned by Jungshik Shin in comment 4, there may be follow-up work to do for rare characters that do not have precomposed form, or for text that is encoded in decomposed form - but I don&apos;t expect this to come up in practice often, and user expectations in these cases aren&apos;t obvious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102089</commentid>
    <comment_count>22</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-12-10 04:51:56 -0800</bug_when>
    <thetext>Committed as &lt;http://trac.webkit.org/changeset/39169&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102090</commentid>
    <comment_count>23</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-12-10 05:16:12 -0800</bug_when>
    <thetext>I just realized that the comments shouldn&apos;t talk about ligatures - ligatures are formed at rendering time from non-combining Unicode characters, like English &quot;ffi&quot;, or many Indic ones. This patch fixed Backspace for sequences with combining characters, as ligatures worked correctly already.

This will need to be corrected to avoid future confusion.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24586</attachid>
            <date>2008-10-22 19:46:12 -0700</date>
            <delta_ts>2008-10-27 14:23:40 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>issue1097-patch.txt</filename>
            <type>text/plain</type>
            <size>1489</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNzgwMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMDgtMTAtMjIgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V0FSTklORzogTk8gVEVTVCBDQVNFUyBBRERFRCBPUiBDSEFOR0VECisKKyAgICAgICAgKiBlZGl0
aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmRlbGV0ZVdpdGhEaXJl
Y3Rpb24pOgorCiAyMDA4LTEwLTIyICBNaWtlIFBpbmtlcnRvbiAgPHBpbmtlcnRvbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFdlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwCShyZXZpc2lvbiAzNzgwMCkKKysrIFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTksOCArMjU5LDE0IEBAIGJvb2wgRWRpdG9yOjpkZWxldGVXaXRo
RGlyZWN0aW9uKFNlbGVjdGkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNh
c2UgU2VsZWN0aW9uQ29udHJvbGxlcjo6QkFDS1dBUkQ6CiAgICAgICAgICAgICBjYXNlIFNlbGVj
dGlvbkNvbnRyb2xsZXI6OkxFRlQ6Ci0gICAgICAgICAgICAgICAgaWYgKG1fZnJhbWUtPmRvY3Vt
ZW50KCkpCisgICAgICAgICAgICAgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgU3RyaW5nIHN0cmluZ1RvRGVsZXRlID0gcGxhaW5UZXh0KHJhbmdlLmdl
dCgpKTsKICAgICAgICAgICAgICAgICAgICAgVHlwaW5nQ29tbWFuZDo6ZGVsZXRlS2V5UHJlc3Nl
ZChtX2ZyYW1lLT5kb2N1bWVudCgpLCBmYWxzZSwgZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAg
ICAgICAgICBpZiAoc3RyaW5nVG9EZWxldGUubGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBzdHJpbmdUb0RlbGV0ZS5yZW1vdmUoc3RyaW5nVG9EZWxldGUubGVuZ3RoKCkg
LSAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHQo
bV9mcmFtZS0+ZG9jdW1lbnQoKSwgc3RyaW5nVG9EZWxldGUsIGZhbHNlLCBmYWxzZSk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0
aW9uKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24637</attachid>
            <date>2008-10-24 02:39:23 -0700</date>
            <delta_ts>2008-10-27 14:23:40 -0700</delta_ts>
            <desc>my second proposed patch including a layout test</desc>
            <filename>issue21820-patch2.txt</filename>
            <type>text/plain</type>
            <size>6013</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNzg0MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDgtMTAtMjQgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdDogZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUuaHRtbAorCisgICAgICAgICog
ZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVXaXRo
RGlyZWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tbWFuZEVudHJ5OjopOgorCiAyMDA4LTEwLTI0ICBEYXZpZCBLaWx6ZXIg
IDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgUm9sbGVkIG91dCByMzc4NDAgYW5kIHIz
Nzg0MS4KSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCShyZXZpc2lvbiAzNzgwMSkKKysrIFdlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTksOCArMjU5LDE0IEBAIGJvb2wg
RWRpdG9yOjpkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGkKICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIGNhc2UgU2VsZWN0aW9uQ29udHJvbGxlcjo6QkFDS1dBUkQ6CiAgICAg
ICAgICAgICBjYXNlIFNlbGVjdGlvbkNvbnRyb2xsZXI6OkxFRlQ6Ci0gICAgICAgICAgICAgICAg
aWYgKG1fZnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAgICAgICAgICAgaWYgKG1fZnJhbWUtPmRv
Y3VtZW50KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHN0cmluZ1RvRGVsZXRlID0g
cGxhaW5UZXh0KHJhbmdlLmdldCgpKTsKICAgICAgICAgICAgICAgICAgICAgVHlwaW5nQ29tbWFu
ZDo6ZGVsZXRlS2V5UHJlc3NlZChtX2ZyYW1lLT5kb2N1bWVudCgpLCBmYWxzZSwgZ3JhbnVsYXJp
dHkpOworICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5nVG9EZWxldGUubGVuZ3RoKCkgPiAx
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdUb0RlbGV0ZS50cnVuY2F0ZShzdHJp
bmdUb0RlbGV0ZS5sZW5ndGgoKSAtIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgVHlwaW5n
Q29tbWFuZDo6aW5zZXJ0VGV4dChtX2ZyYW1lLT5kb2N1bWVudCgpLCBzdHJpbmdUb0RlbGV0ZSwg
ZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICByZXZlYWxTZWxlY3Rp
b25BZnRlckVkaXRpbmdPcGVyYXRpb24oKTsKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9FZGl0b3JD
b21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5j
cHAJKHJldmlzaW9uIDM3ODAxKQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTY0LDcgKzExNjQsNyBAQCBzdGF0aWMgY29uc3QgQ29tbWFu
ZE1hcCYgY3JlYXRlQ29tbWFuZE1hCiAgICAgICAgIHsgIkNyZWF0ZUxpbmsiLCB7IGV4ZWN1dGVD
cmVhdGVMaW5rLCBzdXBwb3J0ZWQsIGVuYWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCwgc3RhdGVO
b25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVu
RGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJDdXQiLCB7IGV4ZWN1dGVDdXQsIHN1cHBvcnRlZCwg
ZW5hYmxlZEN1dCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGFsbG93
RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICAgICAgICAgeyAiRGVsZXRlIiwgeyBleGVjdXRl
RGVsZXRlLCBzdXBwb3J0ZWQsIGVuYWJsZWREZWxldGUsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBu
b3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKLSAg
ICAgICAgeyAiRGVsZXRlQmFja3dhcmQiLCB7IGV4ZWN1dGVEZWxldGVCYWNrd2FyZCwgc3VwcG9y
dGVkRnJvbU1lbnVPcktleUJpbmRpbmcsIGVuYWJsZWRJbkVkaXRhYmxlVGV4dCwgc3RhdGVOb25l
LCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlz
YWJsZWQgfSB9LAorICAgICAgICB7ICJEZWxldGVCYWNrd2FyZCIsIHsgZXhlY3V0ZURlbGV0ZUJh
Y2t3YXJkLCBzdXBwb3J0ZWQsIGVuYWJsZWRJbkVkaXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1
ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQg
fSB9LAogICAgICAgICB7ICJEZWxldGVCYWNrd2FyZEJ5RGVjb21wb3NpbmdQcmV2aW91c0NoYXJh
Y3RlciIsIHsgZXhlY3V0ZURlbGV0ZUJhY2t3YXJkQnlEZWNvbXBvc2luZ1ByZXZpb3VzQ2hhcmFj
dGVyLCBzdXBwb3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZEluRWRpdGFibGVUZXh0
LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1
dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIkRlbGV0ZUZvcndhcmQiLCB7IGV4ZWN1
dGVEZWxldGVGb3J3YXJkLCBzdXBwb3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZElu
RWRpdGFibGVUZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9O
b3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIkRlbGV0ZVRvQmVn
aW5uaW5nT2ZMaW5lIiwgeyBleGVjdXRlRGVsZXRlVG9CZWdpbm5pbmdPZkxpbmUsIHN1cHBvcnRl
ZEZyb21NZW51T3JLZXlCaW5kaW5nLCBlbmFibGVkSW5FZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwg
dmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2Fi
bGVkIH0gfSwKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3ODQyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOSBAQAorMjAwOC0xMC0yNCAgSGlyb25vcmkg
Qm9ubyAgPGhib25vQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLmh0
bWw6IEFkZGVkLgorCiAyMDA4LTEwLTI0ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5j
b20+CiAKICAgICAgICAgUm9sbGVkIG91dCByMzc4NDAuCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBACis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCI+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9lZGl0aW5n
LmpzIiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiA+PC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2
YXNjcmlwdCI+CisgICAgICAgIGZ1bmN0aW9uIGV4ZWNCYWNrd2FyZERlbGV0ZUNvbW1hbmQoKSB7
CisgICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiRGVsZXRlQmFja3dhcmQiKTsKKyAg
ICAgICAgfQorICAgICAgICBmdW5jdGlvbiBiYWNrd2FyZERlbGV0ZUNvbW1hbmQoKSB7CisgICAg
ICAgICAgICBpZiAoY29tbWFuZERlbGF5ID4gMCkgeworICAgICAgICAgICAgICAgIHdpbmRvdy5z
ZXRUaW1lb3V0KGV4ZWNCYWNrd2FyZERlbGV0ZUNvbW1hbmQsIGNvbW1hbmRDb3VudCAqIGNvbW1h
bmREZWxheSk7CisgICAgICAgICAgICAgICAgY29tbWFuZENvdW50Kys7CisgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgIGV4ZWNCYWNrd2FyZERlbGV0ZUNvbW1hbmQoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmdW5jdGlvbiBsb2coc3RyKSB7CisgICAg
ICAgICAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOworICAgICAgICAg
ICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3RyKSk7CisgICAgICAg
ICAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7Cisg
ICAgICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKKyAgICAgICAgfQorICAgICAgICBm
dW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKKyAgICAgICAgICAgIHZhciB0ZXh0YXJlYSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisgICAgICAgICAgICB0ZXh0YXJlYS5zZXRTZWxl
Y3Rpb25SYW5nZSgyLCAyKTsKKyAgICAgICAgICAgIGJhY2t3YXJkRGVsZXRlQ29tbWFuZCgpOwor
ICAgICAgICAgICAgaWYgKHRleHRhcmVhLnZhbHVlID09IFN0cmluZy5mcm9tQ2hhckNvZGUoMHgw
RTI3KSkgeworICAgICAgICAgICAgICAgIGxvZygiU3VjY2VlZGVkLiIpOworICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2coIkZhaWxlZC4gQWN0dWFsOiBcIiIgKyB0ZXh0
YXJlYS52YWx1ZSArICJcIiwgRXhwZWN0ZWQ6IFwiIiArIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgw
RTI3KSArICJcIiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0
PgorICAgIDx0aXRsZT5FZGl0aW5nIFRlc3QgKERlbGV0aW5nIGEgbGlnYXR1cmUpPC90aXRsZT4g
Cis8L2hlYWQ+IAorICAgIDxib2R5PgorICAgICAgICA8cD5UaGlzIHRlc3QgdGVzdHMgaWYgYSBs
aWdhdHVyZSAiJiN4MEUyNzsmI3gwRTMxOyIgaXMgZGVjb21wb3NlZCB3aGlsZSBkZWxldGluZyBp
dCB3aXRoIGEgYmFjay1zcGFjZSBrZXkuPC9wPgorICAgICAgICA8cD5JZiB0aGlzIHRlc3Qgc3Vj
Y2VlZHMsIHlvdSBjYW4gc2VlICImI3gwRTI3OyIgKFUrMEUyNykgYW5kIGEgc3RyaW5nICJzdWNj
ZWVkZWQiIGJlbG93LjwvcD4KKyAgICAgICAgPHRleHRhcmVhIGlkPSJ0ZXN0IiByb3dzPSIxIiBj
b2xzPSI0MCI+JiN4MEUyNzsmI3gwRTMxOzwvdGV4dGFyZWE+CisgICAgICAgIDx1bCBpZD0iY29u
c29sZSI+PC91bD4KKyAgICAgICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgcnVuRWRpdGluZ1Rlc3QoKTsKKyAgICAgICAgPC9z
Y3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0
VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUuaHRtbApfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFk
ZGVkOiBzdm46ZXhlY3V0YWJsZQogICArICoKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24694</attachid>
            <date>2008-10-27 14:23:40 -0700</date>
            <delta_ts>2008-11-05 20:38:06 -0800</delta_ts>
            <desc>the third proposed fix</desc>
            <filename>issue21820-patch3.txt</filename>
            <type>text/plain</type>
            <size>6328</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNzg5OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDgtMTAtMjcgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdDogZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUuaHRtbAorCisgICAgICAgICog
ZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVXaXRo
RGlyZWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tbWFuZEVudHJ5OjopOgorCiAyMDA4LTEwLTIxICBFcmljIFNlaWRlbCAg
PGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0LgpJbmRl
eDogV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAJKHJldmlzaW9uIDM3ODk2KQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1OSw4ICsyNTksMTYgQEAgYm9vbCBFZGl0b3I6OmRl
bGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgY2FzZSBTZWxlY3Rpb25Db250cm9sbGVyOjpCQUNLV0FSRDoKICAgICAgICAgICAgIGNh
c2UgU2VsZWN0aW9uQ29udHJvbGxlcjo6TEVGVDoKLSAgICAgICAgICAgICAgICBpZiAobV9mcmFt
ZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgICAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKSkg
eworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3RyaW5nVG9EZWxldGUgPSBwbGFpblRleHQo
cmFuZ2UuZ2V0KCkpOwogICAgICAgICAgICAgICAgICAgICBUeXBpbmdDb21tYW5kOjpkZWxldGVL
ZXlQcmVzc2VkKG1fZnJhbWUtPmRvY3VtZW50KCksIGZhbHNlLCBncmFudWxhcml0eSk7CisgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgYWxzbyBkZWNvbXBvc2VzIGEgbGln
YXR1cmUgY29uc2lzdGluZyBvZiBhIExhdGluIGNoYXJhY3RlciBhbmQgY29tYmluaW5nIGNoYXJh
Y3RlcnMgKFUrMDMwMCwuLi4sVSswMzZGKS4KKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgbmVl
ZCBhbm90aGVyIGdyYW51bGFyaXR5IHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gImNvZGVwb2ludCIg
YW5kICJjaGFyYWN0ZXIiLgorICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5nVG9EZWxldGUu
bGVuZ3RoKCkgPiAxICYmIGdyYW51bGFyaXR5ID09IENoYXJhY3RlckdyYW51bGFyaXR5KSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdUb0RlbGV0ZS50cnVuY2F0ZShzdHJpbmdUb0Rl
bGV0ZS5sZW5ndGgoKSAtIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgVHlwaW5nQ29tbWFu
ZDo6aW5zZXJ0VGV4dChtX2ZyYW1lLT5kb2N1bWVudCgpLCBzdHJpbmdUb0RlbGV0ZSwgZmFsc2Us
IGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICByZXZlYWxTZWxlY3Rpb25BZnRl
ckVkaXRpbmdPcGVyYXRpb24oKTsKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5k
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAJKHJl
dmlzaW9uIDM3ODk2KQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTY0LDcgKzExNjQsNyBAQCBzdGF0aWMgY29uc3QgQ29tbWFuZE1hcCYg
Y3JlYXRlQ29tbWFuZE1hCiAgICAgICAgIHsgIkNyZWF0ZUxpbmsiLCB7IGV4ZWN1dGVDcmVhdGVM
aW5rLCBzdXBwb3J0ZWQsIGVuYWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2
YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJs
ZWQgfSB9LAogICAgICAgICB7ICJDdXQiLCB7IGV4ZWN1dGVDdXQsIHN1cHBvcnRlZCwgZW5hYmxl
ZEN1dCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGFsbG93RXhlY3V0
aW9uV2hlbkRpc2FibGVkIH0gfSwKICAgICAgICAgeyAiRGVsZXRlIiwgeyBleGVjdXRlRGVsZXRl
LCBzdXBwb3J0ZWQsIGVuYWJsZWREZWxldGUsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0
SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKLSAgICAgICAg
eyAiRGVsZXRlQmFja3dhcmQiLCB7IGV4ZWN1dGVEZWxldGVCYWNrd2FyZCwgc3VwcG9ydGVkRnJv
bU1lbnVPcktleUJpbmRpbmcsIGVuYWJsZWRJbkVkaXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1
ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQg
fSB9LAorICAgICAgICB7ICJEZWxldGVCYWNrd2FyZCIsIHsgZXhlY3V0ZURlbGV0ZUJhY2t3YXJk
LCBzdXBwb3J0ZWQsIGVuYWJsZWRJbkVkaXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1ZU51bGws
IG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAog
ICAgICAgICB7ICJEZWxldGVCYWNrd2FyZEJ5RGVjb21wb3NpbmdQcmV2aW91c0NoYXJhY3RlciIs
IHsgZXhlY3V0ZURlbGV0ZUJhY2t3YXJkQnlEZWNvbXBvc2luZ1ByZXZpb3VzQ2hhcmFjdGVyLCBz
dXBwb3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZEluRWRpdGFibGVUZXh0LCBzdGF0
ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldo
ZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIkRlbGV0ZUZvcndhcmQiLCB7IGV4ZWN1dGVEZWxl
dGVGb3J3YXJkLCBzdXBwb3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZEluRWRpdGFi
bGVUZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxv
d0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIkRlbGV0ZVRvQmVnaW5uaW5n
T2ZMaW5lIiwgeyBleGVjdXRlRGVsZXRlVG9CZWdpbm5pbmdPZkxpbmUsIHN1cHBvcnRlZEZyb21N
ZW51T3JLZXlCaW5kaW5nLCBlbmFibGVkSW5FZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVO
dWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0g
fSwKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3ODk5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOSBAQAorMjAwOC0xMC0yNyAgSGlyb25vcmkgQm9ubyAg
PGhib25vQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLmh0bWw6IEFk
ZGVkLgorCiAyMDA4LTEwLTIxICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0LgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9k
ZWxldGluZy9kZWxldGUtbGlnYXR1cmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw0NCBAQAorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiPg0KKyAgICA8aGVhZD4NCisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9lZGl0aW5nLmpz
IiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiA+PC9zY3JpcHQ+
DQorICAgICAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPg0KKyAgICAgICAgZnVuY3Rpb24gZXhlY0JhY2t3YXJkRGVsZXRlQ29tbWFuZCgpIHsN
CisgICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiRGVsZXRlQmFja3dhcmQiKTsNCisg
ICAgICAgIH0NCisgICAgICAgIGZ1bmN0aW9uIGJhY2t3YXJkRGVsZXRlQ29tbWFuZCgpIHsNCisg
ICAgICAgICAgICBpZiAoY29tbWFuZERlbGF5ID4gMCkgew0KKyAgICAgICAgICAgICAgICB3aW5k
b3cuc2V0VGltZW91dChleGVjQmFja3dhcmREZWxldGVDb21tYW5kLCBjb21tYW5kQ291bnQgKiBj
b21tYW5kRGVsYXkpOw0KKyAgICAgICAgICAgICAgICBjb21tYW5kQ291bnQrKzsNCisgICAgICAg
ICAgICB9IGVsc2Ugew0KKyAgICAgICAgICAgICAgICBleGVjQmFja3dhcmREZWxldGVDb21tYW5k
KCk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAgICAgICAgZnVuY3Rpb24gbG9nKHN0
cikgeworICAgICAgICAgICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsK
KyAgICAgICAgICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikp
OworICAgICAgICAgICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpOworICAgICAgICAgICAgY29uc29sZS5hcHBlbmRDaGlsZChsaSk7CisgICAgICAgIH0K
KyAgICAgICAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7DQorICAgICAgICAgICAgdmFyIHRleHRh
cmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKyAgICAgICAgICAgIHRleHRh
cmVhLnNldFNlbGVjdGlvblJhbmdlKDIsIDIpOworICAgICAgICAgICAgYmFja3dhcmREZWxldGVD
b21tYW5kKCk7DQorICAgICAgICAgICAgaWYgKHRleHRhcmVhLnZhbHVlID09IFN0cmluZy5mcm9t
Q2hhckNvZGUoMHgwRTI3KSkgew0KKyAgICAgICAgICAgICAgICBsb2coIlN1Y2NlZWRlZC4iKTsN
CisgICAgICAgICAgICB9IGVsc2Ugew0KKyAgICAgICAgICAgICAgICBsb2coIkZhaWxlZC4gQWN0
dWFsOiBcIiIgKyB0ZXh0YXJlYS52YWx1ZSArICJcIiwgRXhwZWN0ZWQ6IFwiIiArIFN0cmluZy5m
cm9tQ2hhckNvZGUoMHgwRTI3KSArICJcIiIpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIH0N
CisgICAgICAgIDwvc2NyaXB0Pg0KKyAgICA8dGl0bGU+RWRpdGluZyBUZXN0IChEZWxldGluZyBh
IGxpZ2F0dXJlKTwvdGl0bGU+IA0KKzwvaGVhZD4gDQorICAgIDxib2R5Pg0KKyAgICAgICAgPHA+
VGhpcyB0ZXN0IHRlc3RzIGlmIGEgbGlnYXR1cmUgIiYjeDBFMjc7JiN4MEUzMTsiIGlzIGRlY29t
cG9zZWQgd2hpbGUgZGVsZXRpbmcgaXQgd2l0aCBhIGJhY2stc3BhY2Uga2V5LjwvcD4NCisgICAg
ICAgIDxwPklmIHRoaXMgdGVzdCBzdWNjZWVkcywgeW91IGNhbiBzZWUgIiYjeDBFMjc7IiAoVSsw
RTI3KSBhbmQgYSBzdHJpbmcgInN1Y2NlZWRlZCIgYmVsb3cuPC9wPg0KKyAgICAgICAgPHRleHRh
cmVhIGlkPSJ0ZXN0IiByb3dzPSIxIiBjb2xzPSI0MCI+JiN4MEUyNzsmI3gwRTMxOzwvdGV4dGFy
ZWE+DQorICAgICAgICA8dWwgaWQ9ImNvbnNvbGUiPjwvdWw+CisgICAgICAgIDxzY3JpcHQgbGFu
Z3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQorICAgICAgICBydW5F
ZGl0aW5nVGVzdCgpOw0KKyAgICAgICAgPC9zY3JpcHQ+DQorICAgIDwvYm9keT4NCis8L2h0bWw+
DQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxl
dGUtbGlnYXR1cmUuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZXhlY3V0YWJsZQogICArICoK
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24933</attachid>
            <date>2008-11-05 20:29:34 -0800</date>
            <delta_ts>2008-11-05 20:38:06 -0800</delta_ts>
            <desc>the forth proposed patch (containing descriptions)</desc>
            <filename>issue21820-patch4.txt</filename>
            <type>text/plain</type>
            <size>7013</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODE0OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMDgtMTEtMDUgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QnVnIDIxODIwOiBVbmFibGUgdG8gZW50ZXIgdGhlIFRhbWlsIFVOSUNPREUgQ2hhcmFjdGVycyB2
aWEgVGhhbWl6aGEgUGhvbmV0aWMgSU1FCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTgyMAorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvZGVsZXRpbmcv
ZGVsZXRlLWxpZ2F0dXJlLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRlV2l0aERpcmVjdGlvbik6IERlbGV0ZSBvbmx5
IHRoZSBsYXN0IGNoYXJhY3RlcgorICAgICAgICBvZiBhIGxpZ2F0dXJlIHdoaWNoIGNvbnNpc3Rz
IG9mIG11bHRpcGxlIFVuaWNvZGUgY2hhcmFjdGVycyB3aGVuIGl0cworICAgICAgICBkaXJlY3Rp
b24gaXMgTEVGVCBvciBCQUNLV0FSRC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tbWFuZEVudHJ5OjopOiBDaGFuZ2VzIHRoZSBJc1N1
cHBvcnRlZCBwcm9wZXJ0eSBvZiB0aGUKKyAgICAgICAgIkRlbGV0ZUJhY2t3YXJkIiBjb21tYW5k
IHRvICJzdXBwb3J0ZWQiIHNvIHdlIGNhbiB1c2UgdGhlIGNvbW1hbmQgaW4KKyAgICAgICAgYSBM
YXlvdXQgdGVzdC4KKwogMjAwOC0xMS0wNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFdlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCShyZXZpc2lvbiAzODE0NikKKysrIFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNTgsOCArMjU4LDE2IEBAIGJvb2wgRWRpdG9yOjpkZWxldGVXaXRoRGly
ZWN0aW9uKFNlbGVjdGkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2Ug
U2VsZWN0aW9uQ29udHJvbGxlcjo6QkFDS1dBUkQ6CiAgICAgICAgICAgICBjYXNlIFNlbGVjdGlv
bkNvbnRyb2xsZXI6OkxFRlQ6Ci0gICAgICAgICAgICAgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50
KCkpCisgICAgICAgICAgICAgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgU3RyaW5nIHN0cmluZ1RvRGVsZXRlID0gcGxhaW5UZXh0KHJhbmdlLmdldCgp
KTsKICAgICAgICAgICAgICAgICAgICAgVHlwaW5nQ29tbWFuZDo6ZGVsZXRlS2V5UHJlc3NlZCht
X2ZyYW1lLT5kb2N1bWVudCgpLCBmYWxzZSwgZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogVGhpcyBjb2RlIGFsc28gZGVjb21wb3NlcyBhIGxpZ2F0dXJlIGNvbnNp
c3Rpbmcgb2YgYSBMYXRpbiBjaGFyYWN0ZXIgYW5kIGNvbWJpbmluZyBjaGFyYWN0ZXJzIChVKzAz
MDAsLi4uLFUrMDM2RikuCisgICAgICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgYW5vdGhlciBn
cmFudWxhcml0eSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuICJjb2RlcG9pbnQiIGFuZCAiY2hhcmFj
dGVyIi4KKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZ1RvRGVsZXRlLmxlbmd0aCgpID4g
MSAmJiBncmFudWxhcml0eSA9PSBDaGFyYWN0ZXJHcmFudWxhcml0eSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgc3RyaW5nVG9EZWxldGUudHJ1bmNhdGUoc3RyaW5nVG9EZWxldGUubGVuZ3Ro
KCkgLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRl
eHQobV9mcmFtZS0+ZG9jdW1lbnQoKSwgc3RyaW5nVG9EZWxldGUsIGZhbHNlLCBmYWxzZSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3Bl
cmF0aW9uKCk7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCShyZXZpc2lvbiAzODE0
NikKKysrIFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTE3MCw3ICsxMTcwLDcgQEAgc3RhdGljIGNvbnN0IENvbW1hbmRNYXAmIGNyZWF0ZUNvbW1h
bmRNYQogICAgICAgICB7ICJDcmVhdGVMaW5rIiwgeyBleGVjdXRlQ3JlYXRlTGluaywgc3VwcG9y
dGVkLCBlbmFibGVkSW5SaWNobHlFZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBu
b3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICAg
ICAgICAgeyAiQ3V0IiwgeyBleGVjdXRlQ3V0LCBzdXBwb3J0ZWQsIGVuYWJsZWRDdXQsIHN0YXRl
Tm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBhbGxvd0V4ZWN1dGlvbldoZW5EaXNh
YmxlZCB9IH0sCiAgICAgICAgIHsgIkRlbGV0ZSIsIHsgZXhlY3V0ZURlbGV0ZSwgc3VwcG9ydGVk
LCBlbmFibGVkRGVsZXRlLCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwg
ZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCi0gICAgICAgIHsgIkRlbGV0ZUJh
Y2t3YXJkIiwgeyBleGVjdXRlRGVsZXRlQmFja3dhcmQsIHN1cHBvcnRlZEZyb21NZW51T3JLZXlC
aW5kaW5nLCBlbmFibGVkSW5FZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RU
ZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKKyAgICAg
ICAgeyAiRGVsZXRlQmFja3dhcmQiLCB7IGV4ZWN1dGVEZWxldGVCYWNrd2FyZCwgc3VwcG9ydGVk
LCBlbmFibGVkSW5FZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5z
ZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICAgICAgICAgeyAi
RGVsZXRlQmFja3dhcmRCeURlY29tcG9zaW5nUHJldmlvdXNDaGFyYWN0ZXIiLCB7IGV4ZWN1dGVE
ZWxldGVCYWNrd2FyZEJ5RGVjb21wb3NpbmdQcmV2aW91c0NoYXJhY3Rlciwgc3VwcG9ydGVkRnJv
bU1lbnVPcktleUJpbmRpbmcsIGVuYWJsZWRJbkVkaXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1
ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQg
fSB9LAogICAgICAgICB7ICJEZWxldGVGb3J3YXJkIiwgeyBleGVjdXRlRGVsZXRlRm9yd2FyZCwg
c3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcsIGVuYWJsZWRJbkVkaXRhYmxlVGV4dCwgc3Rh
dGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25X
aGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJEZWxldGVUb0JlZ2lubmluZ09mTGluZSIsIHsg
ZXhlY3V0ZURlbGV0ZVRvQmVnaW5uaW5nT2ZMaW5lLCBzdXBwb3J0ZWRGcm9tTWVudU9yS2V5Qmlu
ZGluZywgZW5hYmxlZEluRWRpdGFibGVUZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4
dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODE0OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE1IEBACisyMDA4LTExLTA1ICBIaXJvbm9yaSBCb25vICA8aGJvbm9AY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEJ1ZyAyMTgyMDogVW5hYmxlIHRvIGVudGVyIHRoZSBUYW1pbCBVTklDT0RFIENoYXJhY3Rl
cnMgdmlhIFRoYW1pemhhIFBob25ldGljIElNRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MjAKKworICAgICAgICBUZXN0IHdoZXRoZXIgYSAiRGVs
ZXRlQmFja3dhcmQiIGNvbW1hbmQgZGVsZXRlcyBvbmx5IHRoZSBsYXN0IGNoYXJhY3RlcgorICAg
ICAgICBvZiBhIGxpZ2F0dXJlLgorCisgICAgICAgICogZWRpdGluZy9kZWxldGluZy9kZWxldGUt
bGlnYXR1cmUuaHRtbDogQWRkZWQuCisKIDIwMDgtMTEtMDUgIEdhdmluIEJhcnJhY2xvdWdoICA8
YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFj
aG93aWFrLgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1
cmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0
ZS1saWdhdHVyZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxl
dGluZy9kZWxldGUtbGlnYXR1cmUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NCBAQAor
PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxoZWFkPgor
ICAgICAgICA8c2NyaXB0IHNyYz0iLi4vZWRpdGluZy5qcyIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQi
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IGxhbmd1
YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICBmdW5jdGlv
biBleGVjQmFja3dhcmREZWxldGVDb21tYW5kKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoIkRlbGV0ZUJhY2t3YXJkIik7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24g
YmFja3dhcmREZWxldGVDb21tYW5kKCkgeworICAgICAgICAgICAgaWYgKGNvbW1hbmREZWxheSA+
IDApIHsKKyAgICAgICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChleGVjQmFja3dhcmREZWxl
dGVDb21tYW5kLCBjb21tYW5kQ291bnQgKiBjb21tYW5kRGVsYXkpOworICAgICAgICAgICAgICAg
IGNvbW1hbmRDb3VudCsrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBl
eGVjQmFja3dhcmREZWxldGVDb21tYW5kKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICAgICAgZnVuY3Rpb24gbG9nKHN0cikgeworICAgICAgICAgICAgdmFyIGxpID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICAgICAgICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKHN0cikpOworICAgICAgICAgICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICAgICAgICAgICAgY29uc29sZS5hcHBlbmRD
aGlsZChsaSk7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7Cisg
ICAgICAgICAgICB2YXIgdGV4dGFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIp
OworICAgICAgICAgICAgdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UoMiwgMik7CisgICAgICAg
ICAgICBiYWNrd2FyZERlbGV0ZUNvbW1hbmQoKTsKKyAgICAgICAgICAgIGlmICh0ZXh0YXJlYS52
YWx1ZSA9PSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MEUyNykpIHsKKyAgICAgICAgICAgICAgICBs
b2coIlN1Y2NlZWRlZC4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
bG9nKCJGYWlsZWQuIEFjdHVhbDogXCIiICsgdGV4dGFyZWEudmFsdWUgKyAiXCIsIEV4cGVjdGVk
OiBcIiIgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MEUyNykgKyAiXCIiKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8dGl0bGU+RWRpdGluZyBUZXN0
IChEZWxldGluZyBhIGxpZ2F0dXJlKTwvdGl0bGU+IAorPC9oZWFkPiAKKyAgICA8Ym9keT4KKyAg
ICAgICAgPHA+VGhpcyB0ZXN0IHRlc3RzIGlmIGEgbGlnYXR1cmUgIiYjeDBFMjc7JiN4MEUzMTsi
IGlzIGRlY29tcG9zZWQgd2hpbGUgZGVsZXRpbmcgaXQgd2l0aCBhIGJhY2stc3BhY2Uga2V5Ljwv
cD4KKyAgICAgICAgPHA+SWYgdGhpcyB0ZXN0IHN1Y2NlZWRzLCB5b3UgY2FuIHNlZSAiJiN4MEUy
NzsiIChVKzBFMjcpIGFuZCBhIHN0cmluZyAic3VjY2VlZGVkIiBiZWxvdy48L3A+CisgICAgICAg
IDx0ZXh0YXJlYSBpZD0idGVzdCIgcm93cz0iMSIgY29scz0iNDAiPiYjeDBFMjc7JiN4MEUzMTs8
L3RleHRhcmVhPgorICAgICAgICA8dWwgaWQ9ImNvbnNvbGUiPjwvdWw+CisgICAgICAgIDxzY3Jp
cHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAg
IHJ1bkVkaXRpbmdUZXN0KCk7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRt
bD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVs
ZXRlLWxpZ2F0dXJlLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKICAgKyAq
Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24934</attachid>
            <date>2008-11-05 20:38:06 -0800</date>
            <delta_ts>2008-11-21 01:50:31 -0800</delta_ts>
            <desc>the fourth proposed fix</desc>
            <filename>issue21820-patch5.txt</filename>
            <type>text/plain</type>
            <size>7028</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODE0OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMDgtMTEtMDUgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QnVnIDIxODIwOiBVbmFibGUgdG8gZW50ZXIgdGhlIFRhbWlsIFVOSUNPREUgQ2hhcmFjdGVycyB2
aWEgVGhhbWl6aGEgUGhvbmV0aWMgSU1FCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTgyMAorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvZGVsZXRpbmcv
ZGVsZXRlLWxpZ2F0dXJlLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRlV2l0aERpcmVjdGlvbik6IERlbGV0ZSBvbmx5
IHRoZSBsYXN0IGNoYXJhY3RlcgorICAgICAgICBvZiBhIGxpZ2F0dXJlIHdoaWNoIGNvbnNpc3Rz
IG9mIG11bHRpcGxlIFVuaWNvZGUgY2hhcmFjdGVycyB3aGVuIGl0cworICAgICAgICBkaXJlY3Rp
b24gaXMgTEVGVCBvciBCQUNLV0FSRC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tbWFuZEVudHJ5OjopOiBDaGFuZ2VzIHRoZSBJc1N1
cHBvcnRlZCBwcm9wZXJ0eSBvZiB0aGUKKyAgICAgICAgIkRlbGV0ZUJhY2t3YXJkIiBjb21tYW5k
IHRvICJzdXBwb3J0ZWQiIHNvIHdlIGNhbiB1c2UgdGhlIGNvbW1hbmQgaW4KKyAgICAgICAgYSBM
YXlvdXQgdGVzdC4KKwogMjAwOC0xMS0wNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFdlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCShyZXZpc2lvbiAzODE0NikKKysrIFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNTgsOCArMjU4LDE2IEBAIGJvb2wgRWRpdG9yOjpkZWxldGVXaXRoRGly
ZWN0aW9uKFNlbGVjdGkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2Ug
U2VsZWN0aW9uQ29udHJvbGxlcjo6QkFDS1dBUkQ6CiAgICAgICAgICAgICBjYXNlIFNlbGVjdGlv
bkNvbnRyb2xsZXI6OkxFRlQ6Ci0gICAgICAgICAgICAgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50
KCkpCisgICAgICAgICAgICAgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgU3RyaW5nIHN0cmluZ1RvRGVsZXRlID0gcGxhaW5UZXh0KHJhbmdlLmdldCgp
KTsKICAgICAgICAgICAgICAgICAgICAgVHlwaW5nQ29tbWFuZDo6ZGVsZXRlS2V5UHJlc3NlZCht
X2ZyYW1lLT5kb2N1bWVudCgpLCBmYWxzZSwgZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogVGhpcyBjb2RlIGFsc28gZGVjb21wb3NlcyBhIGxpZ2F0dXJlIGNvbnNp
c3Rpbmcgb2YgYSBMYXRpbiBjaGFyYWN0ZXIgYW5kIGNvbWJpbmluZyBjaGFyYWN0ZXJzIChVKzAz
MDAsLi4uLFUrMDM2RikuCisgICAgICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgYW5vdGhlciBn
cmFudWxhcml0eSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuICJjb2RlcG9pbnQiIGFuZCAiY2hhcmFj
dGVyIi4KKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZ1RvRGVsZXRlLmxlbmd0aCgpID4g
MSAmJiBncmFudWxhcml0eSA9PSBDaGFyYWN0ZXJHcmFudWxhcml0eSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgc3RyaW5nVG9EZWxldGUudHJ1bmNhdGUoc3RyaW5nVG9EZWxldGUubGVuZ3Ro
KCkgLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRl
eHQobV9mcmFtZS0+ZG9jdW1lbnQoKSwgc3RyaW5nVG9EZWxldGUsIGZhbHNlLCBmYWxzZSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3Bl
cmF0aW9uKCk7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCShyZXZpc2lvbiAzODE0
NikKKysrIFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTE3MCw3ICsxMTcwLDcgQEAgc3RhdGljIGNvbnN0IENvbW1hbmRNYXAmIGNyZWF0ZUNvbW1h
bmRNYQogICAgICAgICB7ICJDcmVhdGVMaW5rIiwgeyBleGVjdXRlQ3JlYXRlTGluaywgc3VwcG9y
dGVkLCBlbmFibGVkSW5SaWNobHlFZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBu
b3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICAg
ICAgICAgeyAiQ3V0IiwgeyBleGVjdXRlQ3V0LCBzdXBwb3J0ZWQsIGVuYWJsZWRDdXQsIHN0YXRl
Tm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBhbGxvd0V4ZWN1dGlvbldoZW5EaXNh
YmxlZCB9IH0sCiAgICAgICAgIHsgIkRlbGV0ZSIsIHsgZXhlY3V0ZURlbGV0ZSwgc3VwcG9ydGVk
LCBlbmFibGVkRGVsZXRlLCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwg
ZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCi0gICAgICAgIHsgIkRlbGV0ZUJh
Y2t3YXJkIiwgeyBleGVjdXRlRGVsZXRlQmFja3dhcmQsIHN1cHBvcnRlZEZyb21NZW51T3JLZXlC
aW5kaW5nLCBlbmFibGVkSW5FZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RU
ZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKKyAgICAg
ICAgeyAiRGVsZXRlQmFja3dhcmQiLCB7IGV4ZWN1dGVEZWxldGVCYWNrd2FyZCwgc3VwcG9ydGVk
LCBlbmFibGVkSW5FZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5z
ZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICAgICAgICAgeyAi
RGVsZXRlQmFja3dhcmRCeURlY29tcG9zaW5nUHJldmlvdXNDaGFyYWN0ZXIiLCB7IGV4ZWN1dGVE
ZWxldGVCYWNrd2FyZEJ5RGVjb21wb3NpbmdQcmV2aW91c0NoYXJhY3Rlciwgc3VwcG9ydGVkRnJv
bU1lbnVPcktleUJpbmRpbmcsIGVuYWJsZWRJbkVkaXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1
ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQg
fSB9LAogICAgICAgICB7ICJEZWxldGVGb3J3YXJkIiwgeyBleGVjdXRlRGVsZXRlRm9yd2FyZCwg
c3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcsIGVuYWJsZWRJbkVkaXRhYmxlVGV4dCwgc3Rh
dGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25X
aGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJEZWxldGVUb0JlZ2lubmluZ09mTGluZSIsIHsg
ZXhlY3V0ZURlbGV0ZVRvQmVnaW5uaW5nT2ZMaW5lLCBzdXBwb3J0ZWRGcm9tTWVudU9yS2V5Qmlu
ZGluZywgZW5hYmxlZEluRWRpdGFibGVUZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4
dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODE0OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE1IEBACisyMDA4LTExLTA1ICBIaXJvbm9yaSBCb25vICA8aGJvbm9AY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEJ1ZyAyMTgyMDogVW5hYmxlIHRvIGVudGVyIHRoZSBUYW1pbCBVTklDT0RFIENoYXJhY3Rl
cnMgdmlhIFRoYW1pemhhIFBob25ldGljIElNRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MjAKKworICAgICAgICBUZXN0IHdoZXRoZXIgYSAiRGVs
ZXRlQmFja3dhcmQiIGNvbW1hbmQgZGVsZXRlcyBvbmx5IHRoZSBsYXN0IGNoYXJhY3RlcgorICAg
ICAgICBvZiBhIGxpZ2F0dXJlLgorCisgICAgICAgICogZWRpdGluZy9kZWxldGluZy9kZWxldGUt
bGlnYXR1cmUuaHRtbDogQWRkZWQuCisKIDIwMDgtMTEtMDUgIEdhdmluIEJhcnJhY2xvdWdoICA8
YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFj
aG93aWFrLgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1
cmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0
ZS1saWdhdHVyZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxl
dGluZy9kZWxldGUtbGlnYXR1cmUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NCBAQAor
PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxoZWFkPgor
ICAgICAgICA8c2NyaXB0IHNyYz0iLi4vZWRpdGluZy5qcyIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQi
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IGxhbmd1
YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICBmdW5jdGlv
biBleGVjQmFja3dhcmREZWxldGVDb21tYW5kKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoIkRlbGV0ZUJhY2t3YXJkIik7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24g
YmFja3dhcmREZWxldGVDb21tYW5kKCkgeworICAgICAgICAgICAgaWYgKGNvbW1hbmREZWxheSA+
IDApIHsKKyAgICAgICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChleGVjQmFja3dhcmREZWxl
dGVDb21tYW5kLCBjb21tYW5kQ291bnQgKiBjb21tYW5kRGVsYXkpOworICAgICAgICAgICAgICAg
IGNvbW1hbmRDb3VudCsrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBl
eGVjQmFja3dhcmREZWxldGVDb21tYW5kKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICAgICAgZnVuY3Rpb24gbG9nKHN0cikgeworICAgICAgICAgICAgdmFyIGxpID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICAgICAgICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKHN0cikpOworICAgICAgICAgICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICAgICAgICAgICAgY29uc29sZS5hcHBlbmRD
aGlsZChsaSk7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7Cisg
ICAgICAgICAgICB2YXIgdGV4dGFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIp
OworICAgICAgICAgICAgdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UoMiwgMik7CisgICAgICAg
ICAgICBiYWNrd2FyZERlbGV0ZUNvbW1hbmQoKTsKKyAgICAgICAgICAgIGlmICh0ZXh0YXJlYS52
YWx1ZSA9PSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MEUyNykpIHsKKyAgICAgICAgICAgICAgICBs
b2coIlN1Y2NlZWRlZC4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
bG9nKCJGYWlsZWQuIEFjdHVhbDogXCIiICsgdGV4dGFyZWEudmFsdWUgKyAiXCIsIEV4cGVjdGVk
OiBcIiIgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MEUyNykgKyAiXCIiKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8dGl0bGU+RWRpdGluZyBUZXN0
IChEZWxldGluZyBhIGxpZ2F0dXJlKTwvdGl0bGU+IAorPC9oZWFkPiAKKyAgICA8Ym9keT4KKyAg
ICAgICAgPHA+VGhpcyB0ZXN0IHRlc3RzIHdoZXRoZXIgdGhlICJEZWxldGVCYWNrd2FyZCIgY29t
bWFuZCBkZWxldGVzIG9ubHkgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgbGlnYXR1cmUgIiYjeDBF
Mjc7JiN4MEUzMTsiLjwvcD4KKyAgICAgICAgPHA+SWYgdGhpcyB0ZXN0IHN1Y2NlZWRzLCB5b3Ug
Y2FuIHNlZSAiJiN4MEUyNzsiIChVKzBFMjcpIGFuZCBhIHN0cmluZyAic3VjY2VlZGVkIiBiZWxv
dy48L3A+CisgICAgICAgIDx0ZXh0YXJlYSBpZD0idGVzdCIgcm93cz0iMSIgY29scz0iNDAiPiYj
eDBFMjc7JiN4MEUzMTs8L3RleHRhcmVhPgorICAgICAgICA8dWwgaWQ9ImNvbnNvbGUiPjwvdWw+
CisgICAgICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CisgICAgICAgIHJ1bkVkaXRpbmdUZXN0KCk7CisgICAgICAgIDwvc2NyaXB0PgorICAg
IDwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2VkaXRp
bmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4
ZWN1dGFibGUKICAgKyAqCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25344</attachid>
            <date>2008-11-21 01:50:31 -0800</date>
            <delta_ts>2008-12-02 02:23:04 -0800</delta_ts>
            <desc>Fifth proposed fix</desc>
            <filename>issue21820-patch7.txt</filename>
            <type>text/plain</type>
            <size>4752</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODY1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMDgtMTEtMjEgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QnVnIDIxODIwOiBVbmFibGUgdG8gZW50ZXIgdGhlIFRhbWlsIFVOSUNPREUgQ2hhcmFjdGVycyB2
aWEgVGhhbWl6aGEgUGhvbmV0aWMgSU1FCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTgyMAorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvZGVsZXRpbmcv
ZGVsZXRlLWxpZ2F0dXJlLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRlV2l0aERpcmVjdGlvbik6IERlbGV0ZSBvbmx5
IHRoZSBsYXN0IGNoYXJhY3RlcgorICAgICAgICBvZiBhIGxpZ2F0dXJlIHdoaWNoIGNvbnNpc3Rz
IG9mIG11bHRpcGxlIFVuaWNvZGUgY2hhcmFjdGVycyB3aGVuIGl0cworICAgICAgICBkaXJlY3Rp
b24gaXMgTEVGVCBvciBCQUNLV0FSRC4KKwogMjAwOC0xMS0yMCAgU2FtIFdlaW5pZyAgPHNhbUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpJbmRleDog
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAJKHJldmlzaW9uIDM4NjQ3KQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNyw3ICsyMzcsMTQgQEAgYm9vbCBFZGl0b3I6OmRlbGV0
ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgY2FzZSBTZWxlY3Rpb25Db250cm9sbGVyOjpCQUNLV0FSRDoKICAgICAgICAgICAgIGNhc2Ug
U2VsZWN0aW9uQ29udHJvbGxlcjo6TEVGVDoKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3RyaW5n
VG9EZWxldGUgPSBwbGFpblRleHQoc2VsZWN0ZWRSYW5nZSgpLmdldCgpKTsKICAgICAgICAgICAg
ICAgICBUeXBpbmdDb21tYW5kOjpkZWxldGVLZXlQcmVzc2VkKG1fZnJhbWUtPmRvY3VtZW50KCks
IGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIGdyYW51bGFyaXR5LCBraWxsUmluZyk7CisgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IFRoaXMgY29kZSBhbHNvIGRlY29tcG9zZXMgYSBsaWdhdHVyZSBj
b25zaXN0aW5nIG9mIGEgTGF0aW4gY2hhcmFjdGVyIGFuZCBjb21iaW5pbmcgY2hhcmFjdGVycyAo
VSswMzAwLC4uLixVKzAzNkYpLgorICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgYW5vdGhlciBn
cmFudWxhcml0eSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuICJjb2RlcG9pbnQiIGFuZCAiY2hhcmFj
dGVyIi4KKyAgICAgICAgICAgICAgICBpZiAoc3RyaW5nVG9EZWxldGUubGVuZ3RoKCkgPiAxICYm
IGdyYW51bGFyaXR5ID09IENoYXJhY3RlckdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICAgICAg
ICAgIHN0cmluZ1RvRGVsZXRlLnRydW5jYXRlKHN0cmluZ1RvRGVsZXRlLmxlbmd0aCgpIC0gMSk7
CisgICAgICAgICAgICAgICAgICAgIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHQobV9mcmFtZS0+
ZG9jdW1lbnQoKSwgc3RyaW5nVG9EZWxldGUsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIHJldmVhbFNl
bGVjdGlvbkFmdGVyRWRpdGluZ09wZXJhdGlvbigpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMzg2NTUp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBA
QAorMjAwOC0xMS0yMSAgSGlyb25vcmkgQm9ubyAgPGhib25vQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCdWcgMjE4MjA6IFVu
YWJsZSB0byBlbnRlciB0aGUgVGFtaWwgVU5JQ09ERSBDaGFyYWN0ZXJzIHZpYSBUaGFtaXpoYSBQ
aG9uZXRpYyBJTUUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxODIwCisKKyAgICAgICAgVGVzdCB3aGV0aGVyIHRoZSBCYWNrU3BhY2Uga2V5IGNvbW1h
bmQgZGVsZXRlcyBvbmx5IHRoZSBsYXN0IGNoYXJhY3RlcgorICAgICAgICBvZiBhIGxpZ2F0dXJl
LgorCisgICAgICAgICogZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUuaHRtbDogQWRk
ZWQuCisKIDIwMDgtMTEtMjAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbgpJbmRleDogTGF5b3V0VGVzdHMv
ZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNiBAQAorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiPg0KKyAgICA8aGVhZD4NCisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9l
ZGl0aW5nLmpzIiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiA+
PC9zY3JpcHQ+DQorICAgICAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPg0KKyAgICAgICAgZnVuY3Rpb24gbG9nKHN0cikgeworICAgICAgICAg
ICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICAgICAgICAgIGxp
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikpOworICAgICAgICAgICAg
dmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICAgICAg
ICAgICAgY29uc29sZS5hcHBlbmRDaGlsZChsaSk7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rp
b24gc2VuZEJhY2t3YXJkRGVsZXRlS2V5KCkgew0KKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZl
bnRTZW5kZXIpCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bihTdHJpbmcuZnJv
bUNoYXJDb2RlKDB4MDAwOCksIG51bGwpOworICAgICAgICB9DQorICAgICAgICBmdW5jdGlvbiBl
ZGl0aW5nVGVzdCgpIHsNCisgICAgICAgICAgICB2YXIgdGV4dGFyZWEgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGVzdCIpOworICAgICAgICAgICAgdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFu
Z2UoMiwgMik7CisgICAgICAgICAgICBzZW5kQmFja3dhcmREZWxldGVLZXkoKTsNCisgICAgICAg
ICAgICBpZiAodGV4dGFyZWEudmFsdWUgPT0gU3RyaW5nLmZyb21DaGFyQ29kZSgweDBFMjcpKQ0K
KyAgICAgICAgICAgICAgICBsb2coIlN1Y2NlZWRlZC4iKTsNCisgICAgICAgICAgICBlbHNlDQor
ICAgICAgICAgICAgICAgIGxvZygiRmFpbGVkLiBBY3R1YWw6IFwiIiArIHRleHRhcmVhLnZhbHVl
ICsgIlwiLCBFeHBlY3RlZDogXCIiICsgU3RyaW5nLmZyb21DaGFyQ29kZSgweDBFMjcpICsgIlwi
Iik7DQorICAgICAgICB9DQorICAgICAgICA8L3NjcmlwdD4NCisgICAgPHRpdGxlPkVkaXRpbmcg
VGVzdCAoRGVsZXRpbmcgYSBsaWdhdHVyZSk8L3RpdGxlPiANCis8L2hlYWQ+IA0KKyAgICA8Ym9k
eT4NCisgICAgICAgIDxwPlRoaXMgdGVzdCB0ZXN0cyB3aGV0aGVyIHRoZSBCYWNrU3BhY2Uga2V5
IGRlbGV0ZXMgb25seSB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgYSBsaWdhdHVyZSAiJiN4MEUyNzsm
I3gwRTMxOyIuPC9wPg0KKyAgICAgICAgPHA+SWYgdGhpcyB0ZXN0IHN1Y2NlZWRzLCB5b3UgY2Fu
IHNlZSAiJiN4MEUyNzsiIChVKzBFMjcpIGFuZCBhIHN0cmluZyAic3VjY2VlZGVkIiBiZWxvdy48
L3A+DQorICAgICAgICA8dGV4dGFyZWEgaWQ9InRlc3QiIHJvd3M9IjEiIGNvbHM9IjQwIj4mI3gw
RTI3OyYjeDBFMzE7PC90ZXh0YXJlYT4NCisgICAgICAgIDx1bCBpZD0iY29uc29sZSI+PC91bD4K
KyAgICAgICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4NCisgICAgICAgIHJ1bkVkaXRpbmdUZXN0KCk7DQorICAgICAgICA8L3NjcmlwdD4NCisg
ICAgPC9ib2R5Pg0KKzwvaHRtbD4NCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS5odG1sCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2
bjpleGVjdXRhYmxlCiAgICsgKgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25564</attachid>
            <date>2008-11-27 20:22:26 -0800</date>
            <delta_ts>2008-12-02 02:23:04 -0800</delta_ts>
            <desc>Sixth proposed patch</desc>
            <filename>issue21820-patch8.txt</filename>
            <type>text/plain</type>
            <size>7580</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODgyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMDgtMTEtMjcgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QnVnIDIxODIwOiBVbmFibGUgdG8gZW50ZXIgdGhlIFRhbWlsIFVOSUNPREUgQ2hhcmFjdGVycyB2
aWEgVGhhbWl6aGEgUGhvbmV0aWMgSU1FCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTgyMAorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvZGVsZXRpbmcv
ZGVsZXRlLWxpZ2F0dXJlLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjpkZWxldGVLZXlQcmVzc2VkKTog
RGVsZXRlIG9ubHkgdGhlIGxhc3QgY2hhcmFjdGVyCisgICAgICAgIG9mIGEgbGlnYXR1cmUgd2hp
Y2ggY29uc2lzdHMgb2YgbXVsdGlwbGUgVW5pY29kZSBjaGFyYWN0ZXJzIHdoZW4gaXRzCisgICAg
ICAgIGRpcmVjdGlvbiBpcyBMRUZUIG9yIEJBQ0tXQVJELgorCiAyMDA4LTExLTI3ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4g
QmVybnN0ZWluLgpJbmRleDogV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAkocmV2aXNpb24gMzg3
NTUpCisrKyBXZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM3Miw2ICszNzIsNyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6OmRlbGV0ZUtleVByZXNzZWQo
VGV4CiB7CiAgICAgU2VsZWN0aW9uIHNlbGVjdGlvblRvRGVsZXRlOwogICAgIFNlbGVjdGlvbiBz
ZWxlY3Rpb25BZnRlclVuZG87CisgICAgU3RyaW5nIHN0cmluZ1RvRGVsZXRlOwogICAgIAogICAg
IHN3aXRjaCAoZW5kaW5nU2VsZWN0aW9uKCkuc3RhdGUoKSkgewogICAgICAgICBjYXNlIFNlbGVj
dGlvbjo6UkFOR0U6CkBAIC00MjMsNiArNDI0LDE0IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6ZGVs
ZXRlS2V5UHJlc3NlZChUZXgKICAgICAgICAgICAgICAgICAvLyBXZSBjYW4ndCBsZXQgdGhlIFNl
bGVjdGlvbiBjbGFzcydzIHZhbGlkYXRpb24ga2ljayBpbiBvciBpdCdsbCBhZGp1c3QgZm9yIHVz
IGJhc2VkIG9uCiAgICAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGRv
Y3VtZW50IGFuZCB3ZSdsbCBnZXQgdGhlIHdyb25nIHJlc3VsdC4KICAgICAgICAgICAgICAgICBz
ZWxlY3Rpb25BZnRlclVuZG8uc2V0V2l0aG91dFZhbGlkYXRpb24oc3RhcnRpbmdTZWxlY3Rpb24o
KS5lbmQoKSwgc2VsZWN0aW9uVG9EZWxldGUuZXh0ZW50KCkpOworCisgICAgICAgICAgICAvLyBX
aGVuIHdlIGRlbGV0ZSBhIGxpZ2F0dXJlIGNvbnNpc3Rpbmcgb2YgbXVsdGlwbGUgVW5pY29kZSBj
aGFyYWN0ZXJzIHdpdGggYSBiYWNrc3BhY2Uga2V5LAorICAgICAgICAgICAgLy8gd2Ugc2hvdWxk
IG5vdCBkZWxldGUgdGhlIGxpZ2F0dXJlIGJ1dCBkZWxldGUgb25seSBpdHMgbGFzdCBjaGFyYWNl
dGVyLgorICAgICAgICAgICAgLy8gVG8gZW11bGF0ZSB0aGlzIGJlaGF2aW9yLCB3ZSBjcmVhdGUg
YSBjb3B5IG9mIGEgbGlnYXR1cmUgb25seSB3aGVuIHdlIGFyZSBkZWxldGluZyBpdCB3aXRoIGEg
YmFja3NwYWNlIGtleS4KKyAgICAgICAgICAgIC8vIFRoaXMgY29weSBpcyB1c2VkIGZvciByZW1v
dmluZyB0aGUgbGFzdCBjaGFyYWN0ZXIgYW5kIHJlLWFkZCBpdCBhZnRlciBoYXZpbmcgZGVsZXRl
ZCB0aGUgbGlnYXR1cmUuCisgICAgICAgICAgICBQYXNzUmVmUHRyPFJhbmdlPiByYW5nZVRvRGVs
ZXRlKHNlbGVjdGlvblRvRGVsZXRlLnRvUmFuZ2UoKSk7CisgICAgICAgICAgICBpZiAoZ3JhbnVs
YXJpdHkgPT0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkgJiYgcmFuZ2VUb0RlbGV0ZS0+ZW5kT2Zmc2V0
KCkgLSByYW5nZVRvRGVsZXRlLT5zdGFydE9mZnNldCgpID4gMSkKKyAgICAgICAgICAgICAgICBz
dHJpbmdUb0RlbGV0ZSA9IHJhbmdlVG9EZWxldGUtPnRleHQoKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgIGNhc2UgU2VsZWN0aW9uOjpOT05FOgpAQCAtNDQxLDYgKzQ1
MCwxMyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6OmRlbGV0ZUtleVByZXNzZWQoVGV4CiAgICAgICAg
IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVTZWxlY3Rpb24oc2VsZWN0aW9uVG9EZWxldGUs
IG1fc21hcnREZWxldGUpOwogICAgICAgICBzZXRTbWFydERlbGV0ZShmYWxzZSk7CiAgICAgICAg
IHR5cGluZ0FkZGVkVG9PcGVuQ29tbWFuZCgpOworCisgICAgICAgIGlmICghc3RyaW5nVG9EZWxl
dGUuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAvLyBXZSBoYXZlIGRlbGV0ZWQgYSBsaWdhdHVy
ZSBjb25zaXN0aW5nIG9mIG11bHRpcGxlIFVuaWNvZGUgY2hhcmFjdGVycy4KKyAgICAgICAgICAg
IC8vIHdlIHJlbW92ZSBpdHMgbGFzdCBjaGFyYWN0ZXIgYW5kIHJlLWFkZCBpdC4KKyAgICAgICAg
ICAgIHN0cmluZ1RvRGVsZXRlLnRydW5jYXRlKHN0cmluZ1RvRGVsZXRlLmxlbmd0aCgpIC0gMSk7
CisgICAgICAgICAgICBpbnNlcnRUZXh0KGRvY3VtZW50KCksIHN0cmluZ1RvRGVsZXRlLCBmYWxz
ZSwgZmFsc2UpOworICAgICAgICB9CiAgICAgfQogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAzODgy
NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2
IEBACisyMDA4LTExLTI3ICBIaXJvbm9yaSBCb25vICA8aGJvbm9AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAyMTgyMDog
VW5hYmxlIHRvIGVudGVyIHRoZSBUYW1pbCBVTklDT0RFIENoYXJhY3RlcnMgdmlhIFRoYW1pemhh
IFBob25ldGljIElNRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE4MjAKKworICAgICAgICBUZXN0IHdoZXRoZXIgdGhlIEJhY2tTcGFjZSBrZXkgY29t
bWFuZCBkZWxldGVzIG9ubHkgdGhlIGxhc3QgY2hhcmFjdGVyCisgICAgICAgIG9mIGEgbGlnYXR1
cmUuCisKKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJl
Lmh0bWw6IEFkZGVkLgorCiAyMDA4LTExLTI2ICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuaWtvbGFz
LnppbW1lcm1hbm5AdG9yY2htb2JpbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb3Jn
ZSBTdGFpa29zLgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGln
YXR1cmUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZGVs
ZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwyNCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisg
IFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU3NgorICAgICAgUmVuZGVyQmxvY2sg
e1B9IGF0ICgwLDApIHNpemUgNzg0eDIxCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDU2MXgyMAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDU2MTog
IlRoaXMgdGVzdCB0ZXN0cyB3aGV0aGVyIHRoZSBCYWNrU3BhY2Uga2V5IGRlbGV0ZXMgb25seSB0
aGUgbGFzdCBjaGFyYWN0ZXIgb2YgYSBsaWdhdHVyZSBcIlx4e0UyN31ceHtFMzF9XCIuIgorICAg
ICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDM3KSBzaXplIDc4NHgyMQorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1MDV4MjAKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCA1MDU6ICJJZiB0aGlzIHRlc3Qgc3VjY2VlZHMsIHlvdSBjYW4gc2VlIFwiXHh7
RTI3fVwiIChVKzBFMjcpIGFuZCBhIHN0cmluZyBcInN1Y2NlZWRlZFwiIGJlbG93LiIKKyAgICAg
IFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDc0KSBzaXplIDc4NHgyMAorICAgICAgICBS
ZW5kZXJUZXh0Q29udHJvbCB7VEVYVEFSRUF9IGF0ICgyLDIpIHNpemUgMjYzeDE2IFtiZ2NvbG9y
PSNGRkZGRkZdIFtib3JkZXI6ICgxcHggc29saWQgIzAwMDAwMCldCisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVyQmxvY2sge1VMfSBhdCAo
MCwxMTApIHNpemUgNzg0eDIxCisgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDQwLDAp
IHNpemUgNzQ0eDIxCisgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTE5LDApIHNpemUg
OHgyMDogYnVsbGV0CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
NzJ4MjAKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDcyOiAiU3VjY2VlZGVk
LiIKK2xheWVyIGF0ICgxMSw4NSkgc2l6ZSAyNjF4MTQKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQg
KDEsMSkgc2l6ZSAyNjF4MTQKKyAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMsMCkgc2l6ZSA1
eDE0CisgICAgICB0ZXh0IHJ1biBhdCAoMywwKSB3aWR0aCA1OiAiXHh7RTI3fSIKK2NhcmV0OiBw
b3NpdGlvbiAxIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAwIHtESVZ9IG9mIGNoaWxkIDUg
e1RFWFRBUkVBfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVu
dApJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdh
dHVyZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9k
ZWxldGUtbGlnYXR1cmUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOCBAQAorPGh0bWwg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxoZWFkPgorICAgICAg
ICA8c2NyaXB0IHNyYz0iLi4vZWRpdGluZy5qcyIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IGxhbmd1YWdlPSJq
YXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICBmdW5jdGlvbiBsb2co
c3RyKSB7CisgICAgICAgICAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIp
OworICAgICAgICAgICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3Ry
KSk7CisgICAgICAgICAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIik7CisgICAgICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKKyAgICAgICAg
fQorICAgICAgICBmdW5jdGlvbiBzZW5kQmFja3dhcmREZWxldGVLZXkoKSB7CisgICAgICAgICAg
ICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtl
eURvd24oU3RyaW5nLmZyb21DaGFyQ29kZSgweDAwMDgpLCBudWxsKTsKKyAgICAgICAgfQorICAg
ICAgICBmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKKyAgICAgICAgICAgIHZhciB0ZXh0YXJlYSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisgICAgICAgICAgICB0ZXh0YXJlYS5m
b2N1cygpOworICAgICAgICAgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoU3RyaW5nLmZyb21DaGFy
Q29kZSgweDBFMjcpKTsKKyAgICAgICAgICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKFN0cmluZy5m
cm9tQ2hhckNvZGUoMHgwRTMxKSk7CisgICAgICAgICAgICBzZW5kQmFja3dhcmREZWxldGVLZXko
KTsKKyAgICAgICAgICAgIGlmICh0ZXh0YXJlYS52YWx1ZSA9PSBTdHJpbmcuZnJvbUNoYXJDb2Rl
KDB4MEUyNykpCisgICAgICAgICAgICAgICAgbG9nKCJTdWNjZWVkZWQuIik7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgbG9nKCJGYWlsZWQuIEFjdHVhbDogXCIiICsgdGV4dGFy
ZWEudmFsdWUgKyAiXCIsIEV4cGVjdGVkOiBcIiIgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MEUy
NykgKyAiXCIiKTsKKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8dGl0bGU+RWRp
dGluZyBUZXN0IChEZWxldGluZyBhIGxpZ2F0dXJlKTwvdGl0bGU+IAorPC9oZWFkPiAKKyAgICA8
Ym9keT4KKyAgICAgICAgPHA+VGhpcyB0ZXN0IHRlc3RzIHdoZXRoZXIgdGhlIEJhY2tTcGFjZSBr
ZXkgZGVsZXRlcyBvbmx5IHRoZSBsYXN0IGNoYXJhY3RlciBvZiBhIGxpZ2F0dXJlICImI3gwRTI3
OyYjeDBFMzE7Ii48L3A+CisgICAgICAgIDxwPklmIHRoaXMgdGVzdCBzdWNjZWVkcywgeW91IGNh
biBzZWUgIiYjeDBFMjc7IiAoVSswRTI3KSBhbmQgYSBzdHJpbmcgInN1Y2NlZWRlZCIgYmVsb3cu
PC9wPgorICAgICAgICA8dGV4dGFyZWEgaWQ9InRlc3QiIHJvd3M9IjEiIGNvbHM9IjQwIj48L3Rl
eHRhcmVhPgorICAgICAgICA8dWwgaWQ9ImNvbnNvbGUiPjwvdWw+CisgICAgICAgIDxzY3JpcHQg
bGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIHJ1
bkVkaXRpbmdUZXN0KCk7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
ClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRl
LWxpZ2F0dXJlLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCgo=
</data>
<flag name="review"
          id="11941"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25669</attachid>
            <date>2008-12-02 02:23:04 -0800</date>
            <delta_ts>2008-12-08 23:19:32 -0800</delta_ts>
            <desc>seventh proposed (and temporal) fix without layout test results</desc>
            <filename>issue21820-patch9.txt</filename>
            <type>text/plain</type>
            <size>9574</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODkwMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDgtMTItMDIgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QnVnIDIxODIwOiBVbmFibGUgdG8gZW50ZXIgdGhlIFRhbWlsIFVOSUNPREUgQ2hhcmFjdGVycyB2
aWEgVGhhbWl6aGEgUGhvbmV0aWMgSU1FCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTgyMAorCisgICAgICAgIFRlc3RzOiBlZGl0aW5nL2RlbGV0aW5n
L2RlbGV0ZS1saWdhdHVyZS0wMDEuaHRtbAorICAgICAgICAgICAgICAgZWRpdGluZy9kZWxldGlu
Zy9kZWxldGUtbGlnYXR1cmUtMDAyLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvZGVsZXRp
bmcvZGVsZXRlLWxpZ2F0dXJlLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvVHlwaW5nQ29tbWFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjpkZWxldGVLZXlQcmVzc2Vk
KTogRGVsZXRlIG9ubHkgdGhlIGxhc3QgY2hhcmFjdGVyCisgICAgICAgIG9mIGEgbGlnYXR1cmUg
d2hpY2ggY29uc2lzdHMgb2YgbXVsdGlwbGUgVW5pY29kZSBjaGFyYWN0ZXJzIHdoZW4gZGVsZXRp
bmcgaXQgd2l0aAorICAgICAgICBhIGJhY2tzcGFjZSBrZXkuCisKIDIwMDgtMTItMDIgIERhdmlk
IExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhl
eSBQcm9za3VyeWFrb3YuCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCShyZXZpc2lv
biAzODc1NSkKKysrIFdlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDE2LDYgKzQxNiwxMyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6OmRlbGV0ZUtleVBy
ZXNzZWQoVGV4CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHNlbGVjdGlvblRvRGVsZXRl
ID0gc2VsZWN0aW9uLnNlbGVjdGlvbigpOworCisgICAgICAgICAgICAvLyBXaGVuIHdlIGRlbGV0
ZSBhIGxpZ2F0dXJlIGNvbnNpc3Rpbmcgb2YgbXVsdGlwbGUgVW5pY29kZSBjaGFyYWN0ZXJzIHdp
dGggYSBiYWNrc3BhY2Uga2V5LAorICAgICAgICAgICAgLy8gd2Ugc2hvdWxkIG5vdCBkZWxldGUg
dGhlIGxpZ2F0dXJlIGJ1dCBkZWxldGUgb25seSBpdHMgbGFzdCBjaGFyYWNldGVyLgorICAgICAg
ICAgICAgUGFzc1JlZlB0cjxSYW5nZT4gcmFuZ2VUb0RlbGV0ZShzZWxlY3Rpb25Ub0RlbGV0ZS50
b1JhbmdlKCkpOworICAgICAgICAgICAgaWYgKGdyYW51bGFyaXR5ID09IENoYXJhY3RlckdyYW51
bGFyaXR5ICYmIHJhbmdlVG9EZWxldGUtPmVuZE9mZnNldCgpIC0gcmFuZ2VUb0RlbGV0ZS0+c3Rh
cnRPZmZzZXQoKSA+IDEpCisgICAgICAgICAgICAgICAgc2VsZWN0aW9uVG9EZWxldGUuc2V0V2l0
aG91dFZhbGlkYXRpb24oc2VsZWN0aW9uVG9EZWxldGUuYmFzZSgpLCBzZWxlY3Rpb25Ub0RlbGV0
ZS5iYXNlKCkucHJldmlvdXMoTm90VXNpbmdDb21wb3NlZENoYXJhY3RlcnMpKTsKKwogICAgICAg
ICAgICAgaWYgKCFzdGFydGluZ1NlbGVjdGlvbigpLmlzUmFuZ2UoKSB8fCBzZWxlY3Rpb25Ub0Rl
bGV0ZS5iYXNlKCkgIT0gc3RhcnRpbmdTZWxlY3Rpb24oKS5zdGFydCgpKQogICAgICAgICAgICAg
ICAgIHNlbGVjdGlvbkFmdGVyVW5kbyA9IHNlbGVjdGlvblRvRGVsZXRlOwogICAgICAgICAgICAg
ZWxzZQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMzg5MDApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAwOC0xMi0wMiAgSGlyb25vcmkgQm9u
byAgPGhib25vQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBCdWcgMjE4MjA6IFVuYWJsZSB0byBlbnRlciB0aGUgVGFtaWwgVU5J
Q09ERSBDaGFyYWN0ZXJzIHZpYSBUaGFtaXpoYSBQaG9uZXRpYyBJTUUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIwCisKKyAgICAgICAgVGVzdHMg
d2hldGhlciBhIGJhY2tTcGFjZSBvcGVyYXRpb24gZGVsZXRlcyBvbmx5IHRoZSBsYXN0IGNoYXJh
Y3RlciBvZiBhIGxpZ2F0dXJlLgorICAgICAgICBUZXN0cyB3aGV0aGVyIGFuIHVuZG8gb3BlcmF0
aW9uIHJlLWFkZHMgdGhlIGRlbGV0ZWQgY2hhcmFjdGVyLgorCisgICAgICAgICogZWRpdGluZy9k
ZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRp
bmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBl
ZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS5odG1sOiBBZGRlZC4KKwogMjAwOC0xMi0w
MSAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGFuIEJlcm5zdGVpbi4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRl
LWxpZ2F0dXJlLTAwMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZGVs
ZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAxLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMzggQEAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sIj4NCisgICAgPGhlYWQ+DQorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vZWRpdGluZy5qcyIg
bGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgPjwvc2NyaXB0Pg0K
KyAgICAgICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4NCisgICAgICAgIGZ1bmN0aW9uIGxvZyhzdHIpIHsKKyAgICAgICAgICAgIHZhciBsaSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgICAgICAgICBsaS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKKyAgICAgICAgICAgIHZhciBjb25zb2xl
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICAgICAgICAgIGNvbnNv
bGUuYXBwZW5kQ2hpbGQobGkpOworICAgICAgICB9CisgICAgICAgIGZ1bmN0aW9uIHNlbmRCYWNr
d2FyZERlbGV0ZUtleSgpIHsNCisgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQor
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oU3RyaW5nLmZyb21DaGFyQ29kZSgw
eDAwMDgpLCBudWxsKTsKKyAgICAgICAgfQ0KKyAgICAgICAgZnVuY3Rpb24gZWRpdGluZ1Rlc3Qo
KSB7DQorICAgICAgICAgICAgdmFyIHRleHRhcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRlc3QiKTsKKyAgICAgICAgICAgIHRleHRhcmVhLmZvY3VzKCk7CisgICAgICAgICAgICB0eXBl
Q2hhcmFjdGVyQ29tbWFuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MEUyNykpOworICAgICAgICAg
ICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoU3RyaW5nLmZyb21DaGFyQ29kZSgweDBFMzEpKTsKKyAg
ICAgICAgICAgIHNlbmRCYWNrd2FyZERlbGV0ZUtleSgpOw0KKyAgICAgICAgICAgIGlmICh0ZXh0
YXJlYS52YWx1ZSA9PSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MEUyNykpDQorICAgICAgICAgICAg
ICAgIGxvZygiU3VjY2VlZGVkLiIpOw0KKyAgICAgICAgICAgIGVsc2UNCisgICAgICAgICAgICAg
ICAgbG9nKCJGYWlsZWQuIEFjdHVhbDogXCIiICsgdGV4dGFyZWEudmFsdWUgKyAiXCIsIEV4cGVj
dGVkOiBcIiIgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MEUyNykgKyAiXCIiKTsNCisgICAgICAg
IH0NCisgICAgICAgIDwvc2NyaXB0Pg0KKyAgICA8dGl0bGU+RWRpdGluZyBUZXN0IChEZWxldGlu
ZyBhIGxpZ2F0dXJlKTwvdGl0bGU+IA0KKzwvaGVhZD4gDQorICAgIDxib2R5Pg0KKyAgICAgICAg
PHA+VGhpcyB0ZXN0IHRlc3RzIHdoZXRoZXIgdGhlIEJhY2tTcGFjZSBrZXkgZGVsZXRlcyBvbmx5
IHRoZSBsYXN0IGNoYXJhY3RlciBvZiBhIGxpZ2F0dXJlICImI3gwRTI3OyYjeDBFMzE7Ii48L3A+
DQorICAgICAgICA8cD5JZiB0aGlzIHRlc3Qgc3VjY2VlZHMsIHlvdSBjYW4gc2VlICImI3gwRTI3
OyIgKFUrMEUyNykgYW5kIGEgc3RyaW5nICJzdWNjZWVkZWQiIGJlbG93LjwvcD4NCisgICAgICAg
IDx0ZXh0YXJlYSBpZD0idGVzdCIgcm93cz0iMSIgY29scz0iNDAiPjwvdGV4dGFyZWE+DQorICAg
ICAgICA8dWwgaWQ9ImNvbnNvbGUiPjwvdWw+CisgICAgICAgIDxzY3JpcHQgbGFuZ3VhZ2U9Imph
dmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQorICAgICAgICBydW5FZGl0aW5nVGVz
dCgpOw0KKyAgICAgICAgPC9zY3JpcHQ+DQorICAgIDwvYm9keT4NCis8L2h0bWw+DQoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1
cmUtMDAxLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCgpJbmRl
eDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAyLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1
cmUtMDAyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5n
L2RlbGV0ZS1saWdhdHVyZS0wMDIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAor
PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KKyAgICA8aGVhZD4N
CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9lZGl0aW5nLmpzIiBsYW5ndWFnZT0iamF2YXNjcmlw
dCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiA+PC9zY3JpcHQ+DQorICAgICAgICA8c2NyaXB0IGxh
bmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KKyAgICAgICAgZnVu
Y3Rpb24gbG9nKHN0cikgeworICAgICAgICAgICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgibGkiKTsKKyAgICAgICAgICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKHN0cikpOworICAgICAgICAgICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29uc29sZSIpOworICAgICAgICAgICAgY29uc29sZS5hcHBlbmRDaGlsZChsaSk7
CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gc2VuZEJhY2t3YXJkRGVsZXRlS2V5KCkgew0K
KyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgZXZl
bnRTZW5kZXIua2V5RG93bihTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwOCksIG51bGwpOworICAg
ICAgICB9DQorICAgICAgICBmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsNCisgICAgICAgICAgICB2
YXIgdGV4dGFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworICAgICAgICAg
ICAgdGV4dGFyZWEuZm9jdXMoKTsKKyAgICAgICAgICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKFN0
cmluZy5mcm9tQ2hhckNvZGUoMHgwRTI3KSk7CisgICAgICAgICAgICB0eXBlQ2hhcmFjdGVyQ29t
bWFuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MEUzMSkpOworICAgICAgICAgICAgbW92ZVNlbGVj
dGlvbkJhY2t3YXJkQnlDaGFyYWN0ZXJDb21tYW5kKCk7DQorICAgICAgICAgICAgbW92ZVNlbGVj
dGlvbkZvcndhcmRCeUNoYXJhY3RlckNvbW1hbmQoKTsNCisgICAgICAgICAgICBzZW5kQmFja3dh
cmREZWxldGVLZXkoKTsNCisgICAgICAgICAgICBpZiAodGV4dGFyZWEudmFsdWUgPT0gU3RyaW5n
LmZyb21DaGFyQ29kZSgweDBFMjcpKQ0KKyAgICAgICAgICAgICAgICBsb2coIlN1Y2NlZWRlZC4i
KTsNCisgICAgICAgICAgICBlbHNlDQorICAgICAgICAgICAgICAgIGxvZygiRmFpbGVkLiBBY3R1
YWw6IFwiIiArIHRleHRhcmVhLnZhbHVlICsgIlwiLCBFeHBlY3RlZDogXCIiICsgU3RyaW5nLmZy
b21DaGFyQ29kZSgweDBFMjcpICsgIlwiIik7DQorICAgICAgICB9DQorICAgICAgICA8L3Njcmlw
dD4NCisgICAgPHRpdGxlPkVkaXRpbmcgVGVzdCAoRGVsZXRpbmcgYSBsaWdhdHVyZSk8L3RpdGxl
PiANCis8L2hlYWQ+IA0KKyAgICA8Ym9keT4NCisgICAgICAgIDxwPlRoaXMgdGVzdCB0ZXN0cyB3
aGV0aGVyIHRoZSBCYWNrU3BhY2Uga2V5IGRlbGV0ZXMgb25seSB0aGUgbGFzdCBjaGFyYWN0ZXIg
b2YgYSBsaWdhdHVyZSAiJiN4MEUyNzsmI3gwRTMxOyIuPC9wPg0KKyAgICAgICAgPHA+SWYgdGhp
cyB0ZXN0IHN1Y2NlZWRzLCB5b3UgY2FuIHNlZSAiJiN4MEUyNzsiIChVKzBFMjcpIGFuZCBhIHN0
cmluZyAic3VjY2VlZGVkIiBiZWxvdy48L3A+DQorICAgICAgICA8dGV4dGFyZWEgaWQ9InRlc3Qi
IHJvd3M9IjEiIGNvbHM9IjQwIj48L3RleHRhcmVhPg0KKyAgICAgICAgPHVsIGlkPSJjb25zb2xl
Ij48L3VsPgorICAgICAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPg0KKyAgICAgICAgcnVuRWRpdGluZ1Rlc3QoKTsNCisgICAgICAgIDwvc2Ny
aXB0Pg0KKyAgICA8L2JvZHk+DQorPC9odG1sPg0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91
dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMi5odG1sCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KQWRkZWQ6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoKSW5kZXg6IExheW91dFRlc3RzL2VkaXRp
bmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIj4NCisgICAgPGhlYWQ+DQorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vZWRpdGlu
Zy5qcyIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgPjwvc2Ny
aXB0Pg0KKyAgICAgICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4NCisgICAgICAgIGZ1bmN0aW9uIGxvZyhzdHIpIHsKKyAgICAgICAgICAgIHZh
ciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgICAgICAgICBsaS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKKyAgICAgICAgICAgIHZhciBj
b25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICAgICAgICAg
IGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOworICAgICAgICB9CisgICAgICAgIGZ1bmN0aW9uIHNl
bmRCYWNrd2FyZERlbGV0ZUtleSgpIHsNCisgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2Vu
ZGVyKQorICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oU3RyaW5nLmZyb21DaGFy
Q29kZSgweDAwMDgpLCBudWxsKTsKKyAgICAgICAgfQ0KKyAgICAgICAgZnVuY3Rpb24gZWRpdGlu
Z1Rlc3QoKSB7DQorICAgICAgICAgICAgdmFyIHRleHRhcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRlc3QiKTsKKyAgICAgICAgICAgIHRleHRhcmVhLmZvY3VzKCk7CisgICAgICAgICAg
ICB0eXBlQ2hhcmFjdGVyQ29tbWFuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MEUyNykpOworICAg
ICAgICAgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoU3RyaW5nLmZyb21DaGFyQ29kZSgweDBFMzEp
KTsKKyAgICAgICAgICAgIHNlbmRCYWNrd2FyZERlbGV0ZUtleSgpOw0KKyAgICAgICAgICAgIGlm
ICh0ZXh0YXJlYS52YWx1ZSA9PSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MEUyNykpDQorICAgICAg
ICAgICAgICAgIGxvZygiU3VjY2VlZGVkLiIpOw0KKyAgICAgICAgICAgIGVsc2UNCisgICAgICAg
ICAgICAgICAgbG9nKCJGYWlsZWQuIEFjdHVhbDogXCIiICsgdGV4dGFyZWEudmFsdWUgKyAiXCIs
IEV4cGVjdGVkOiBcIiIgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MEUyNykgKyAiXCIiKTsNCisg
ICAgICAgIH0NCisgICAgICAgIDwvc2NyaXB0Pg0KKyAgICA8dGl0bGU+RWRpdGluZyBUZXN0IChE
ZWxldGluZyBhIGxpZ2F0dXJlKTwvdGl0bGU+IA0KKzwvaGVhZD4gDQorICAgIDxib2R5Pg0KKyAg
ICAgICAgPHA+VGhpcyB0ZXN0IHRlc3RzIHdoZXRoZXIgdGhlIEJhY2tTcGFjZSBrZXkgZGVsZXRl
cyBvbmx5IHRoZSBsYXN0IGNoYXJhY3RlciBvZiBhIGxpZ2F0dXJlICImI3gwRTI3OyYjeDBFMzE7
Ii48L3A+DQorICAgICAgICA8cD5JZiB0aGlzIHRlc3Qgc3VjY2VlZHMsIHlvdSBjYW4gc2VlICIm
I3gwRTI3OyIgKFUrMEUyNykgYW5kIGEgc3RyaW5nICJzdWNjZWVkZWQiIGJlbG93LjwvcD4NCisg
ICAgICAgIDx0ZXh0YXJlYSBpZD0idGVzdCIgcm93cz0iMSIgY29scz0iNDAiPjwvdGV4dGFyZWE+
DQorICAgICAgICA8dWwgaWQ9ImNvbnNvbGUiPjwvdWw+CisgICAgICAgIDxzY3JpcHQgbGFuZ3Vh
Z2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQorICAgICAgICBydW5FZGl0
aW5nVGVzdCgpOw0KKyAgICAgICAgPC9zY3JpcHQ+DQorICAgIDwvYm9keT4NCis8L2h0bWw+DQoK
UHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUt
bGlnYXR1cmUuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZXhlY3V0YWJsZQogICArICoKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25877</attachid>
            <date>2008-12-08 23:19:32 -0800</date>
            <delta_ts>2008-12-09 00:52:40 -0800</delta_ts>
            <desc>eighth proposed fix</desc>
            <filename>issue21820-patch10.txt</filename>
            <type>text/plain</type>
            <size>18068</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzOTEyNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDgtMTItMDggIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QnVnIDIxODIwOiBVbmFibGUgdG8gZW50ZXIgdGhlIFRhbWlsIFVOSUNPREUgQ2hhcmFjdGVycyB2
aWEgVGhhbWl6aGEgUGhvbmV0aWMgSU1FCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTgyMAorCisgICAgICAgIFRlc3RzOiBlZGl0aW5nL2RlbGV0aW5n
L2RlbGV0ZS1saWdhdHVyZS0wMDEuaHRtbAorICAgICAgICAgICAgICAgZWRpdGluZy9kZWxldGlu
Zy9kZWxldGUtbGlnYXR1cmUtMDAyLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvZGVsZXRp
bmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0Nv
bW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6ZGVsZXRlS2V5UHJl
c3NlZCk6IERlbGV0ZSBvbmx5IHRoZSBsYXN0IGNoYXJhY3RlcgorICAgICAgICBvZiBhIGxpZ2F0
dXJlIHdoaWNoIGNvbnNpc3RzIG9mIG11bHRpcGxlIFVuaWNvZGUgY2hhcmFjdGVycyB3aGVuIGRl
bGV0aW5nIGl0IHdpdGgKKyAgICAgICAgYSBiYWNrc3BhY2Uga2V5LgorCiAyMDA4LTExLTI2ICBQ
ZXRlciBLYXN0aW5nICA8cGthc3RpbmdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBbmRlcnMgQ2FybHNzb24uCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCShyZXZp
c2lvbiAzOTEyMSkKKysrIFdlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDE2LDYgKzQxNiwxMyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6OmRlbGV0ZUtl
eVByZXNzZWQoVGV4CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHNlbGVjdGlvblRvRGVs
ZXRlID0gc2VsZWN0aW9uLnNlbGVjdGlvbigpOworCisgICAgICAgICAgICAvLyBXaGVuIHdlIGRl
bGV0ZSBhIGxpZ2F0dXJlIGNvbnNpc3Rpbmcgb2YgbXVsdGlwbGUgVW5pY29kZSBjaGFyYWN0ZXJz
IHdpdGggYSBiYWNrc3BhY2Uga2V5LAorICAgICAgICAgICAgLy8gd2Ugc2hvdWxkIG5vdCBkZWxl
dGUgdGhlIGxpZ2F0dXJlIGJ1dCBkZWxldGUgb25seSBpdHMgbGFzdCBjaGFyYWNldGVyLgorICAg
ICAgICAgICAgUGFzc1JlZlB0cjxSYW5nZT4gcmFuZ2VUb0RlbGV0ZShzZWxlY3Rpb25Ub0RlbGV0
ZS50b1JhbmdlKCkpOworICAgICAgICAgICAgaWYgKGdyYW51bGFyaXR5ID09IENoYXJhY3Rlckdy
YW51bGFyaXR5ICYmIHJhbmdlVG9EZWxldGUtPmVuZE9mZnNldCgpIC0gcmFuZ2VUb0RlbGV0ZS0+
c3RhcnRPZmZzZXQoKSA+IDEpCisgICAgICAgICAgICAgICAgc2VsZWN0aW9uVG9EZWxldGUuc2V0
V2l0aG91dFZhbGlkYXRpb24oc2VsZWN0aW9uVG9EZWxldGUuYmFzZSgpLCBzZWxlY3Rpb25Ub0Rl
bGV0ZS5iYXNlKCkucHJldmlvdXMoTm90VXNpbmdDb21wb3NlZENoYXJhY3RlcnMpKTsKKwogICAg
ICAgICAgICAgaWYgKCFzdGFydGluZ1NlbGVjdGlvbigpLmlzUmFuZ2UoKSB8fCBzZWxlY3Rpb25U
b0RlbGV0ZS5iYXNlKCkgIT0gc3RhcnRpbmdTZWxlY3Rpb24oKS5zdGFydCgpKQogICAgICAgICAg
ICAgICAgIHNlbGVjdGlvbkFmdGVyVW5kbyA9IHNlbGVjdGlvblRvRGVsZXRlOwogICAgICAgICAg
ICAgZWxzZQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMzkxMjYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAwOC0xMi0wOCAgSGlyb25vcmkg
Qm9ubyAgPGhib25vQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAw
MS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRl
LWxpZ2F0dXJlLTAwMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL2Rl
bGV0ZS1saWdhdHVyZS0wMDItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5n
L2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS0wMDIuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRp
dGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAzLmh0bWw6IEFkZGVk
LgorCiAyMDA4LTEyLTA4ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
ZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAxLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRl
LWxpZ2F0dXJlLTAwMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzYgQEAK
K0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMCBv
ZiBESVYgdG8gMCBvZiBESVYgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDEgb2YgI3RleHQgPiBESVYg
dG8gMSBvZiAjdGV4dCA+IERJViBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVh
bSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24K
K0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJv
bSAxIG9mICN0ZXh0ID4gRElWIHRvIDEgb2YgI3RleHQgPiBESVYgdG9ET01SYW5nZTpyYW5nZSBm
cm9tIDIgb2YgI3RleHQgPiBESVYgdG8gMiBvZiAjdGV4dCA+IERJViBhZmZpbml0eTpOU1NlbGVj
dGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
Tm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdE
aWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJh
bmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IERJViB0byAyIG9mICN0ZXh0ID4gRElWCitFRElU
SU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMSBv
ZiAjdGV4dCA+IERJViB0byAxIG9mICN0ZXh0ID4gRElWIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAx
IG9mICN0ZXh0ID4gRElWIHRvIDEgb2YgI3RleHQgPiBESVYgYWZmaW5pdHk6TlNTZWxlY3Rpb25B
ZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlm
aWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hh
bmdlTm90aWZpY2F0aW9uCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTc2CisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAs
MCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
NTYxeDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTYxOiAiVGhpcyB0ZXN0
IHRlc3RzIHdoZXRoZXIgdGhlIEJhY2tTcGFjZSBrZXkgZGVsZXRlcyBvbmx5IHRoZSBsYXN0IGNo
YXJhY3RlciBvZiBhIGxpZ2F0dXJlIFwiXHh7RTI3fVx4e0UzMX1cIi4iCisgICAgICBSZW5kZXJC
bG9jayB7UH0gYXQgKDAsMzQpIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDUwNXgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDUwNTogIklmIHRoaXMgdGVzdCBzdWNjZWVkcywgeW91IGNhbiBzZWUgXCJceHtFMjd9XCIgKFUr
MEUyNykgYW5kIGEgc3RyaW5nIFwic3VjY2VlZGVkXCIgYmVsb3cuIgorICAgICAgUmVuZGVyQmxv
Y2sgKGFub255bW91cykgYXQgKDAsNjgpIHNpemUgNzg0eDE5CisgICAgICAgIFJlbmRlclRleHRD
b250cm9sIHtURVhUQVJFQX0gYXQgKDIsMikgc2l6ZSAzMDJ4MTUgW2JnY29sb3I9I0ZGRkZGRl0g
W2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgMHgwCisgICAgICBSZW5kZXJCbG9jayB7VUx9IGF0ICgwLDEwMykgc2l6
ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoNDAsMCkgc2l6ZSA3NDR4
MTgKKyAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtMTcsMCkgc2l6ZSA3eDE4OiBidWxs
ZXQKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3MngxOAorICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzI6ICJTdWNjZWVkZWQuIgorbGF5ZXIg
YXQgKDExLDc5KSBzaXplIDMwMHgxMworICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMSwxKSBzaXpl
IDMwMHgxMworICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMywwKSBzaXplIDZ4MTMKKyAgICAg
IHRleHQgcnVuIGF0ICgzLDApIHdpZHRoIDY6ICJceHtFMjd9IgorY2FyZXQ6IHBvc2l0aW9uIDEg
b2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDAge0RJVn0gb2YgY2hpbGQgNSB7VEVYVEFSRUF9
IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CkluZGV4OiBM
YXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS0wMDEuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS0w
MDEuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVs
ZXRlLWxpZ2F0dXJlLTAwMS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACis8aHRt
bCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgPGhlYWQ+CisgICAg
ICAgIDxzY3JpcHQgc3JjPSIuLi9lZGl0aW5nLmpzIiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiA+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgbGFuZ3VhZ2U9
ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGZ1bmN0aW9uIGxv
ZyhzdHIpIHsKKyAgICAgICAgICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxp
Iik7CisgICAgICAgICAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShz
dHIpKTsKKyAgICAgICAgICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnNvbGUiKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOworICAgICAg
ICB9CisgICAgICAgIGZ1bmN0aW9uIHNlbmRCYWNrd2FyZERlbGV0ZUtleSgpIHsKKyAgICAgICAg
ICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIu
a2V5RG93bihTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwOCksIG51bGwpOworICAgICAgICB9Cisg
ICAgICAgIGZ1bmN0aW9uIGVkaXRpbmdUZXN0KCkgeworICAgICAgICAgICAgdmFyIHRleHRhcmVh
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKyAgICAgICAgICAgIHRleHRhcmVh
LmZvY3VzKCk7CisgICAgICAgICAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZChTdHJpbmcuZnJvbUNo
YXJDb2RlKDB4MEUyNykpOworICAgICAgICAgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoU3RyaW5n
LmZyb21DaGFyQ29kZSgweDBFMzEpKTsKKyAgICAgICAgICAgIHNlbmRCYWNrd2FyZERlbGV0ZUtl
eSgpOworICAgICAgICAgICAgaWYgKHRleHRhcmVhLnZhbHVlID09ICJcdTBFMjciKQorICAgICAg
ICAgICAgICAgIGxvZygiU3VjY2VlZGVkLiIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIGxvZygiRmFpbGVkLiBBY3R1YWw6IFwiIiArIHRleHRhcmVhLnZhbHVlICsgIlwiLCBF
eHBlY3RlZDogXCJcdTBFMjdcIiIpOworICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAg
ICAgICA8dGl0bGU+RWRpdGluZyBUZXN0IChEZWxldGluZyBhIGxpZ2F0dXJlKTwvdGl0bGU+IAor
ICAgIDwvaGVhZD4gCisgICAgPGJvZHk+CisgICAgICAgIDxwPlRoaXMgdGVzdCB0ZXN0cyB3aGV0
aGVyIHRoZSBCYWNrU3BhY2Uga2V5IGRlbGV0ZXMgb25seSB0aGUgbGFzdCBjaGFyYWN0ZXIgb2Yg
YSBsaWdhdHVyZSAiJiN4MEUyNzsmI3gwRTMxOyIuPC9wPgorICAgICAgICA8cD5JZiB0aGlzIHRl
c3Qgc3VjY2VlZHMsIHlvdSBjYW4gc2VlICImI3gwRTI3OyIgKFUrMEUyNykgYW5kIGEgc3RyaW5n
ICJzdWNjZWVkZWQiIGJlbG93LjwvcD4KKyAgICAgICAgPHRleHRhcmVhIGlkPSJ0ZXN0IiByb3dz
PSIxIiBjb2xzPSI0MCI+PC90ZXh0YXJlYT4KKyAgICAgICAgPHVsIGlkPSJjb25zb2xlIj48L3Vs
PgorICAgICAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgorICAgICAgICBydW5FZGl0aW5nVGVzdCgpOworICAgICAgICA8L3NjcmlwdD4KKyAg
ICA8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2Rl
bGV0ZS1saWdhdHVyZS0wMDItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMi1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS0w
MDItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACitFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FU
RTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgRElWIHRvIDAg
b2YgRElWIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxIG9mICN0ZXh0ID4gRElWIHRvIDEgb2YgI3Rl
eHQgPiBESVYgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxl
Y3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246
V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERF
TEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4
dCA+IERJViB0byAxIG9mICN0ZXh0ID4gRElWIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAyIG9mICN0
ZXh0ID4gRElWIHRvIDIgb2YgI3RleHQgPiBESVYgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0
eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlv
bgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90
aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNh
dGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6cmFuZ2UgZnJvbSAx
IG9mICN0ZXh0ID4gRElWIHRvIDIgb2YgI3RleHQgPiBESVYKK0VESVRJTkcgREVMRUdBVEU6IHNo
b3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxIG9mICN0ZXh0ID4gRElWIHRv
IDEgb2YgI3RleHQgPiBESVYgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDEgb2YgI3RleHQgPiBESVYg
dG8gMSBvZiAjdGV4dCA+IERJViBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVh
bSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24K
K2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
ODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1M
fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBz
aXplIDc4NHg1NzYKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgxOAor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1NjF4MTgKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1NjE6ICJUaGlzIHRlc3QgdGVzdHMgd2hldGhlciB0
aGUgQmFja1NwYWNlIGtleSBkZWxldGVzIG9ubHkgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgbGln
YXR1cmUgXCJceHtFMjd9XHh7RTMxfVwiLiIKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwz
NCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
NTA1eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTA1OiAiSWYgdGhpcyB0
ZXN0IHN1Y2NlZWRzLCB5b3UgY2FuIHNlZSBcIlx4e0UyN31cIiAoVSswRTI3KSBhbmQgYSBzdHJp
bmcgXCJzdWNjZWVkZWRcIiBiZWxvdy4iCisgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBh
dCAoMCw2OCkgc2l6ZSA3ODR4MTkKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge1RFWFRBUkVB
fSBhdCAoMiwyKSBzaXplIDMwMngxNSBbYmdjb2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMXB4IHNv
bGlkICMwMDAwMDApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAw
eDAKKyAgICAgIFJlbmRlckJsb2NrIHtVTH0gYXQgKDAsMTAzKSBzaXplIDc4NHgxOAorICAgICAg
ICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0MCwwKSBzaXplIDc0NHgxOAorICAgICAgICAgIFJl
bmRlckxpc3RNYXJrZXIgYXQgKC0xNywwKSBzaXplIDd4MTg6IGJ1bGxldAorICAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDcyeDE4CisgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCA3MjogIlN1Y2NlZWRlZC4iCitsYXllciBhdCAoMTEsNzkpIHNpemUg
MzAweDEzCisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxLDEpIHNpemUgMzAweDEzCisgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgzLDApIHNpemUgNngxMworICAgICAgdGV4dCBydW4gYXQgKDMs
MCkgd2lkdGggNjogIlx4e0UyN30iCitjYXJldDogcG9zaXRpb24gMSBvZiBjaGlsZCAwIHsjdGV4
dH0gb2YgY2hpbGQgMCB7RElWfSBvZiBjaGlsZCA1IHtURVhUQVJFQX0gb2YgY2hpbGQgMSB7Qk9E
WX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL2VkaXRp
bmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMi5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMi5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAy
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDAgQEAKKzxodG1sIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Ii4uL2VkaXRpbmcuanMiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiID48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gbG9nKHN0cikgeworICAgICAg
ICAgICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICAgICAgICAg
IGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikpOworICAgICAgICAg
ICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICAg
ICAgICAgICAgY29uc29sZS5hcHBlbmRDaGlsZChsaSk7CisgICAgICAgIH0KKyAgICAgICAgZnVu
Y3Rpb24gc2VuZEJhY2t3YXJkRGVsZXRlS2V5KCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5l
dmVudFNlbmRlcikKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKFN0cmluZy5m
cm9tQ2hhckNvZGUoMHgwMDA4KSwgbnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24g
ZWRpdGluZ1Rlc3QoKSB7CisgICAgICAgICAgICB2YXIgdGV4dGFyZWEgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGVzdCIpOworICAgICAgICAgICAgdGV4dGFyZWEuZm9jdXMoKTsKKyAgICAg
ICAgICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwRTI3KSk7
CisgICAgICAgICAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDB4
MEUzMSkpOworICAgICAgICAgICAgbW92ZVNlbGVjdGlvbkJhY2t3YXJkQnlDaGFyYWN0ZXJDb21t
YW5kKCk7CisgICAgICAgICAgICBtb3ZlU2VsZWN0aW9uRm9yd2FyZEJ5Q2hhcmFjdGVyQ29tbWFu
ZCgpOworICAgICAgICAgICAgc2VuZEJhY2t3YXJkRGVsZXRlS2V5KCk7CisgICAgICAgICAgICBp
ZiAodGV4dGFyZWEudmFsdWUgPT0gIlx1MEUyNyIpCisgICAgICAgICAgICAgICAgbG9nKCJTdWNj
ZWVkZWQuIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbG9nKCJGYWlsZWQu
IEFjdHVhbDogXCIiICsgdGV4dGFyZWEudmFsdWUgKyAiXCIsIEV4cGVjdGVkOiBcIlx1MEUyN1wi
Iik7CisgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDx0aXRsZT5FZGl0aW5n
IFRlc3QgKERlbGV0aW5nIGEgbGlnYXR1cmUpPC90aXRsZT4gCisgICAgPC9oZWFkPiAKKyAgICA8
Ym9keT4KKyAgICAgICAgPHA+VGhpcyB0ZXN0IHRlc3RzIHdoZXRoZXIgdGhlIEJhY2tTcGFjZSBr
ZXkgZGVsZXRlcyBvbmx5IHRoZSBsYXN0IGNoYXJhY3RlciBvZiBhIGxpZ2F0dXJlICImI3gwRTI3
OyYjeDBFMzE7Ii48L3A+CisgICAgICAgIDxwPklmIHRoaXMgdGVzdCBzdWNjZWVkcywgeW91IGNh
biBzZWUgIiYjeDBFMjc7IiAoVSswRTI3KSBhbmQgYSBzdHJpbmcgInN1Y2NlZWRlZCIgYmVsb3cu
PC9wPgorICAgICAgICA8dGV4dGFyZWEgaWQ9InRlc3QiIHJvd3M9IjEiIGNvbHM9IjQwIj48L3Rl
eHRhcmVhPgorICAgICAgICA8dWwgaWQ9ImNvbnNvbGUiPjwvdWw+CisgICAgICAgIDxzY3JpcHQg
bGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIHJ1
bkVkaXRpbmdUZXN0KCk7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9k
ZWxldGUtbGlnYXR1cmUtMDAzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMzUgQEAKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcg
REVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IERJ
ViB0byAyIG9mICN0ZXh0ID4gRElWCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxl
Y3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IERJViB0byAxIG9mICN0ZXh0ID4g
RElWIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxIG9mICN0ZXh0ID4gRElWIHRvIDEgb2YgI3RleHQg
PiBESVYgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rp
bmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2Vi
Vmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVH
QVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+
IERJViB0byAxIG9mICN0ZXh0ID4gRElWIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxIG9mICN0ZXh0
ID4gRElWIHRvIDIgb2YgI3RleHQgPiBESVYgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURv
d25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgor
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZp
Y2F0aW9uCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCww
KSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQg
KDgsOCkgc2l6ZSA3ODR4NTc2CisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3
ODR4MTgKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzM2eDE4Cisg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzM2OiAiVGhpcyB0ZXN0IHRlc3RzIHdo
ZXRoZXIgdGhlIHVuZG8gY29tbWFuZCB3b3JrcyB3aGVuIHRoZSBCYWNrU3BhY2Uga2V5IGRlbGV0
ZXMgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgbGlnYXR1cmUgXCJceHtFMjd9XHh7RTMxfVwiLiIK
KyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwzNCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTY0eDE4CisgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNTY0OiAiSWYgdGhpcyB0ZXN0IHN1Y2NlZWRzLCB5b3UgY2FuIHNlZSBc
Ilx4e0UyN31ceHtFMzF9XCIgKFUrMEUyNyxVKzBFMzEpIGFuZCBhIHN0cmluZyBcInN1Y2NlZWRl
ZFwiIGJlbG93LiIKKyAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDY4KSBzaXpl
IDc4NHgxOQorICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7VEVYVEFSRUF9IGF0ICgyLDIpIHNp
emUgMzAyeDE1IFtiZ2NvbG9yPSNGRkZGRkZdIFtib3JkZXI6ICgxcHggc29saWQgIzAwMDAwMCld
CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVu
ZGVyQmxvY2sge1VMfSBhdCAoMCwxMDMpIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRlckxpc3RJ
dGVtIHtMSX0gYXQgKDQwLDApIHNpemUgNzQ0eDE4CisgICAgICAgICAgUmVuZGVyTGlzdE1hcmtl
ciBhdCAoLTE3LDApIHNpemUgN3gxODogYnVsbGV0CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgNzJ4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDcyOiAiU3VjY2VlZGVkLiIKK2xheWVyIGF0ICgxMSw3OSkgc2l6ZSAzMDB4MTMKKyAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDEsMSkgc2l6ZSAzMDB4MTMKKyAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDMsMCkgc2l6ZSA2eDEzCisgICAgICB0ZXh0IHJ1biBhdCAoMywwKSB3aWR0aCA2OiAi
XHh7RTI3fVx4e0UzMX0iCitzZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDEgb2YgY2hpbGQgMCB7
I3RleHR9IG9mIGNoaWxkIDAge0RJVn0gb2YgY2hpbGQgNSB7VEVYVEFSRUF9IG9mIGNoaWxkIDEg
e0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gZW5kOiAgIHBv
c2l0aW9uIDIgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDAge0RJVn0gb2YgY2hpbGQgNSB7
VEVYVEFSRUF9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS0wMDMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1s
aWdhdHVyZS0wMDMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZGVs
ZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM5
IEBACis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgPGhl
YWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9lZGl0aW5nLmpzIiBsYW5ndWFnZT0iamF2YXNj
cmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiA+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
bGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGZ1
bmN0aW9uIGxvZyhzdHIpIHsKKyAgICAgICAgICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImxpIik7CisgICAgICAgICAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZShzdHIpKTsKKyAgICAgICAgICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkp
OworICAgICAgICB9CisgICAgICAgIGZ1bmN0aW9uIHNlbmRCYWNrd2FyZERlbGV0ZUtleSgpIHsK
KyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgZXZl
bnRTZW5kZXIua2V5RG93bihTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwOCksIG51bGwpOworICAg
ICAgICB9CisgICAgICAgIGZ1bmN0aW9uIGVkaXRpbmdUZXN0KCkgeworICAgICAgICAgICAgdmFy
IHRleHRhcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKyAgICAgICAgICAg
IHRleHRhcmVhLmZvY3VzKCk7CisgICAgICAgICAgICBtb3ZlU2VsZWN0aW9uRm9yd2FyZEJ5Q2hh
cmFjdGVyQ29tbWFuZCgpOworICAgICAgICAgICAgbW92ZVNlbGVjdGlvbkZvcndhcmRCeUNoYXJh
Y3RlckNvbW1hbmQoKTsKKyAgICAgICAgICAgIHNlbmRCYWNrd2FyZERlbGV0ZUtleSgpOworICAg
ICAgICAgICAgZXhlY1VuZG9Db21tYW5kKCk7CisgICAgICAgICAgICBpZiAodGV4dGFyZWEudmFs
dWUgPT0gIlx1MEUyN1x1MEUzMSIpCisgICAgICAgICAgICAgICAgbG9nKCJTdWNjZWVkZWQuIik7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbG9nKCJGYWlsZWQuIEFjdHVhbDog
XCIiICsgdGV4dGFyZWEudmFsdWUgKyAiXCIsIEV4cGVjdGVkOiBcIlx1MEUyN1x1MEUzMVwiIik7
CisgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDx0aXRsZT5FZGl0aW5nIFRl
c3QgKFVuZG8gZGVsZXRpbmcgYSBsaWdhdHVyZSk8L3RpdGxlPiAKKyAgICA8L2hlYWQ+IAorICAg
IDxib2R5PgorICAgICAgICA8cD5UaGlzIHRlc3QgdGVzdHMgd2hldGhlciB0aGUgdW5kbyBjb21t
YW5kIHdvcmtzIHdoZW4gdGhlIEJhY2tTcGFjZSBrZXkgZGVsZXRlcyB0aGUgbGFzdCBjaGFyYWN0
ZXIgb2YgYSBsaWdhdHVyZSAiJiN4MEUyNzsmI3gwRTMxOyIuPC9wPgorICAgICAgICA8cD5JZiB0
aGlzIHRlc3Qgc3VjY2VlZHMsIHlvdSBjYW4gc2VlICImI3gwRTI3OyYjeDBFMzE7IiAoVSswRTI3
LFUrMEUzMSkgYW5kIGEgc3RyaW5nICJzdWNjZWVkZWQiIGJlbG93LjwvcD4KKyAgICAgICAgPHRl
eHRhcmVhIGlkPSJ0ZXN0IiByb3dzPSIxIiBjb2xzPSI0MCI+JiN4MEUyNzsmI3gwRTMxOzwvdGV4
dGFyZWE+CisgICAgICAgIDx1bCBpZD0iY29uc29sZSI+PC91bD4KKyAgICAgICAgPHNjcmlwdCBs
YW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgcnVu
RWRpdGluZ1Rlc3QoKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25878</attachid>
            <date>2008-12-09 00:52:40 -0800</date>
            <delta_ts>2008-12-10 01:43:36 -0800</delta_ts>
            <desc>nineth proposed fix</desc>
            <filename>issue21820-patch11.txt</filename>
            <type>text/plain</type>
            <size>18481</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzOTEyNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDgtMTItMDggIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QnVnIDIxODIwOiBVbmFibGUgdG8gZW50ZXIgdGhlIFRhbWlsIFVOSUNPREUgQ2hhcmFjdGVycyB2
aWEgVGhhbWl6aGEgUGhvbmV0aWMgSU1FCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTgyMAorCisgICAgICAgIFRlc3RzOiBlZGl0aW5nL2RlbGV0aW5n
L2RlbGV0ZS1saWdhdHVyZS0wMDEuaHRtbAorICAgICAgICAgICAgICAgZWRpdGluZy9kZWxldGlu
Zy9kZWxldGUtbGlnYXR1cmUtMDAyLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvZGVsZXRp
bmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0Nv
bW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6ZGVsZXRlS2V5UHJl
c3NlZCk6IERlbGV0ZSBvbmx5IHRoZSBsYXN0IGNoYXJhY3RlcgorICAgICAgICBvZiBhIGxpZ2F0
dXJlIHdoaWNoIGNvbnNpc3RzIG9mIG11bHRpcGxlIFVuaWNvZGUgY2hhcmFjdGVycyB3aGVuIGRl
bGV0aW5nIGl0IHdpdGgKKyAgICAgICAgYSBiYWNrc3BhY2Uga2V5LgorCiAyMDA4LTExLTI2ICBQ
ZXRlciBLYXN0aW5nICA8cGthc3RpbmdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBbmRlcnMgQ2FybHNzb24uCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCShyZXZp
c2lvbiAzOTEyMSkKKysrIFdlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDE2LDYgKzQxNiwxMyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6OmRlbGV0ZUtl
eVByZXNzZWQoVGV4CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHNlbGVjdGlvblRvRGVs
ZXRlID0gc2VsZWN0aW9uLnNlbGVjdGlvbigpOworCisgICAgICAgICAgICAvLyBXaGVuIHdlIGRl
bGV0ZSBhIGxpZ2F0dXJlIGNvbnNpc3Rpbmcgb2YgbXVsdGlwbGUgVW5pY29kZSBjaGFyYWN0ZXJz
IHdpdGggYSBiYWNrc3BhY2Uga2V5LAorICAgICAgICAgICAgLy8gd2Ugc2hvdWxkIG5vdCBkZWxl
dGUgdGhlIGxpZ2F0dXJlIGJ1dCBkZWxldGUgb25seSBpdHMgbGFzdCBjaGFyYWNldGVyLgorICAg
ICAgICAgICAgUGFzc1JlZlB0cjxSYW5nZT4gcmFuZ2VUb0RlbGV0ZShzZWxlY3Rpb25Ub0RlbGV0
ZS50b1JhbmdlKCkpOworICAgICAgICAgICAgaWYgKGdyYW51bGFyaXR5ID09IENoYXJhY3Rlckdy
YW51bGFyaXR5ICYmIHJhbmdlVG9EZWxldGUtPmVuZE9mZnNldCgpIC0gcmFuZ2VUb0RlbGV0ZS0+
c3RhcnRPZmZzZXQoKSA+IDEpCisgICAgICAgICAgICAgICAgc2VsZWN0aW9uVG9EZWxldGUuc2V0
V2l0aG91dFZhbGlkYXRpb24oc2VsZWN0aW9uVG9EZWxldGUuYmFzZSgpLCBzZWxlY3Rpb25Ub0Rl
bGV0ZS5iYXNlKCkucHJldmlvdXMoTm90VXNpbmdDb21wb3NlZENoYXJhY3RlcnMpKTsKKwogICAg
ICAgICAgICAgaWYgKCFzdGFydGluZ1NlbGVjdGlvbigpLmlzUmFuZ2UoKSB8fCBzZWxlY3Rpb25U
b0RlbGV0ZS5iYXNlKCkgIT0gc3RhcnRpbmdTZWxlY3Rpb24oKS5zdGFydCgpKQogICAgICAgICAg
ICAgICAgIHNlbGVjdGlvbkFmdGVyVW5kbyA9IHNlbGVjdGlvblRvRGVsZXRlOwogICAgICAgICAg
ICAgZWxzZQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMzkxMjYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAwOC0xMi0wOCAgSGlyb25vcmkg
Qm9ubyAgPGhib25vQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCdWcgMjE4MjA6IFVuYWJsZSB0byBlbnRlciB0aGUgVGFtaWwg
VU5JQ09ERSBDaGFyYWN0ZXJzIHZpYSBUaGFtaXpoYSBQaG9uZXRpYyBJTUUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIwCisKKyAgICAgICAgQWRk
ZWQgdGVzdCBmb3IgdmVyaWZ5aW5nIGlmIGEgYmFja3NwYWNlIGtleSBkZWxldGVzIG9ubHkgdGhl
IGxhc3QgY2hhcmFjdGVyIG9mIGEgbGlnYXR1cmUgd2hpY2ggY29uc2lzdHMgb2YKKwltdWx0aXBs
ZSBVbmljb2RlIGNoYXJhY3RlcnMuCisgICAgICAgIEFsc28gYWRkZWQgYSB0ZXN0IGZvciB2ZXJp
ZnlpbmcgYW4gdW5kbyBvcGVyYXRpb24gd29ya3MgYWZ0ZXIgZGVsZXRpbmcgdGhlIGxhc3QgY2hh
cmFjdGVyIG9mIGEgbGlnYXR1cmUuCisJCisgICAgICAgICogZWRpdGluZy9kZWxldGluZy9kZWxl
dGUtbGlnYXR1cmUtMDAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9k
ZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRp
bmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS0wMDMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS0w
MDMuaHRtbDogQWRkZWQuCisKIDIwMDgtMTItMDggIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogTGF5b3V0
VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAxLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVy
ZS0wMDEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9k
ZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwzNiBAQAorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3Rp
ZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6
cmFuZ2UgZnJvbSAwIG9mIERJViB0byAwIG9mIERJViB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMSBv
ZiAjdGV4dCA+IERJViB0byAxIG9mICN0ZXh0ID4gRElWIGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZm
aW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmlj
YXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5n
ZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01S
YW5nZTpyYW5nZSBmcm9tIDEgb2YgI3RleHQgPiBESVYgdG8gMSBvZiAjdGV4dCA+IERJViB0b0RP
TVJhbmdlOnJhbmdlIGZyb20gMiBvZiAjdGV4dCA+IERJViB0byAyIG9mICN0ZXh0ID4gRElWIGFm
ZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNF
CitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hv
dWxkRGVsZXRlRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxIG9mICN0ZXh0ID4gRElWIHRvIDIgb2YgI3Rl
eHQgPiBESVYKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6
cmFuZ2UgZnJvbSAxIG9mICN0ZXh0ID4gRElWIHRvIDEgb2YgI3RleHQgPiBESVYgdG9ET01SYW5n
ZTpyYW5nZSBmcm9tIDEgb2YgI3RleHQgPiBESVYgdG8gMSBvZiAjdGV4dCA+IERJViBhZmZpbml0
eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdl
OldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
ICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1NzYKKyAgICAgIFJlbmRlckJs
b2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSA1NjF4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1
NjE6ICJUaGlzIHRlc3QgdGVzdHMgd2hldGhlciB0aGUgQmFja1NwYWNlIGtleSBkZWxldGVzIG9u
bHkgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgbGlnYXR1cmUgXCJceHtFMjd9XHh7RTMxfVwiLiIK
KyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwzNCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTA1eDE4CisgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNTA1OiAiSWYgdGhpcyB0ZXN0IHN1Y2NlZWRzLCB5b3UgY2FuIHNlZSBc
Ilx4e0UyN31cIiAoVSswRTI3KSBhbmQgYSBzdHJpbmcgXCJzdWNjZWVkZWRcIiBiZWxvdy4iCisg
ICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCw2OCkgc2l6ZSA3ODR4MTkKKyAgICAg
ICAgUmVuZGVyVGV4dENvbnRyb2wge1RFWFRBUkVBfSBhdCAoMiwyKSBzaXplIDMwMngxNSBbYmdj
b2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQorICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgIFJlbmRlckJsb2NrIHtVTH0g
YXQgKDAsMTAzKSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0
MCwwKSBzaXplIDc0NHgxOAorICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0xNywwKSBz
aXplIDd4MTg6IGJ1bGxldAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDcyeDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA3MjogIlN1Y2Nl
ZWRlZC4iCitsYXllciBhdCAoMTEsNzkpIHNpemUgMzAweDEzCisgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgxLDEpIHNpemUgMzAweDEzCisgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzLDApIHNp
emUgNngxMworICAgICAgdGV4dCBydW4gYXQgKDMsMCkgd2lkdGggNjogIlx4e0UyN30iCitjYXJl
dDogcG9zaXRpb24gMSBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7RElWfSBvZiBjaGls
ZCA1IHtURVhUQVJFQX0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9j
dW1lbnQKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJl
LTAwMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVs
ZXRlLWxpZ2F0dXJlLTAwMS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAxLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMzggQEAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAg
ICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL2VkaXRpbmcuanMiIGxhbmd1YWdlPSJq
YXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiID48L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAg
ICAgZnVuY3Rpb24gbG9nKHN0cikgeworICAgICAgICAgICAgdmFyIGxpID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgibGkiKTsKKyAgICAgICAgICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKHN0cikpOworICAgICAgICAgICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICAgICAgICAgICAgY29uc29sZS5hcHBlbmRDaGls
ZChsaSk7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gc2VuZEJhY2t3YXJkRGVsZXRlS2V5
KCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAg
ICBldmVudFNlbmRlci5rZXlEb3duKFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDA4KSwgbnVsbCk7
CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7CisgICAgICAgICAg
ICB2YXIgdGV4dGFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworICAgICAg
ICAgICAgdGV4dGFyZWEuZm9jdXMoKTsKKyAgICAgICAgICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5k
KFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwRTI3KSk7CisgICAgICAgICAgICB0eXBlQ2hhcmFjdGVy
Q29tbWFuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MEUzMSkpOworICAgICAgICAgICAgc2VuZEJh
Y2t3YXJkRGVsZXRlS2V5KCk7CisgICAgICAgICAgICBpZiAodGV4dGFyZWEudmFsdWUgPT0gIlx1
MEUyNyIpCisgICAgICAgICAgICAgICAgbG9nKCJTdWNjZWVkZWQuIik7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgbG9nKCJGYWlsZWQuIEFjdHVhbDogXCIiICsgdGV4dGFyZWEu
dmFsdWUgKyAiXCIsIEV4cGVjdGVkOiBcIlx1MEUyN1wiIik7CisgICAgICAgIH0KKyAgICAgICAg
PC9zY3JpcHQ+CisgICAgICAgIDx0aXRsZT5FZGl0aW5nIFRlc3QgKERlbGV0aW5nIGEgbGlnYXR1
cmUpPC90aXRsZT4gCisgICAgPC9oZWFkPiAKKyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGhpcyB0
ZXN0IHRlc3RzIHdoZXRoZXIgdGhlIEJhY2tTcGFjZSBrZXkgZGVsZXRlcyBvbmx5IHRoZSBsYXN0
IGNoYXJhY3RlciBvZiBhIGxpZ2F0dXJlICImI3gwRTI3OyYjeDBFMzE7Ii48L3A+CisgICAgICAg
IDxwPklmIHRoaXMgdGVzdCBzdWNjZWVkcywgeW91IGNhbiBzZWUgIiYjeDBFMjc7IiAoVSswRTI3
KSBhbmQgYSBzdHJpbmcgInN1Y2NlZWRlZCIgYmVsb3cuPC9wPgorICAgICAgICA8dGV4dGFyZWEg
aWQ9InRlc3QiIHJvd3M9IjEiIGNvbHM9IjQwIj48L3RleHRhcmVhPgorICAgICAgICA8dWwgaWQ9
ImNvbnNvbGUiPjwvdWw+CisgICAgICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIHJ1bkVkaXRpbmdUZXN0KCk7CisgICAgICAg
IDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRp
bmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAyLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVs
ZXRlLWxpZ2F0dXJlLTAwMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzgg
QEAKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0Rp
ZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0Rp
ZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitF
RElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20g
MCBvZiBESVYgdG8gMCBvZiBESVYgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDEgb2YgI3RleHQgPiBE
SVYgdG8gMSBvZiAjdGV4dCA+IERJViBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0
cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRp
b24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSAxIG9mICN0ZXh0ID4gRElWIHRvIDEgb2YgI3RleHQgPiBESVYgdG9ET01SYW5nZTpyYW5n
ZSBmcm9tIDIgb2YgI3RleHQgPiBESVYgdG8gMiBvZiAjdGV4dCA+IERJViBhZmZpbml0eTpOU1Nl
bGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZp
ZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElO
RyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGREZWxldGVET01SYW5n
ZTpyYW5nZSBmcm9tIDEgb2YgI3RleHQgPiBESVYgdG8gMiBvZiAjdGV4dCA+IERJVgorRURJVElO
RyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDEgb2Yg
I3RleHQgPiBESVYgdG8gMSBvZiAjdGV4dCA+IERJViB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMSBv
ZiAjdGV4dCA+IERJViB0byAxIG9mICN0ZXh0ID4gRElWIGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZm
aW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmlj
YXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5n
ZU5vdGlmaWNhdGlvbgorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVu
ZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgNzg0eDU3NgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDAp
IHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDU2
MXgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDU2MTogIlRoaXMgdGVzdCB0
ZXN0cyB3aGV0aGVyIHRoZSBCYWNrU3BhY2Uga2V5IGRlbGV0ZXMgb25seSB0aGUgbGFzdCBjaGFy
YWN0ZXIgb2YgYSBsaWdhdHVyZSBcIlx4e0UyN31ceHtFMzF9XCIuIgorICAgICAgUmVuZGVyQmxv
Y2sge1B9IGF0ICgwLDM0KSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSA1MDV4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1
MDU6ICJJZiB0aGlzIHRlc3Qgc3VjY2VlZHMsIHlvdSBjYW4gc2VlIFwiXHh7RTI3fVwiIChVKzBF
MjcpIGFuZCBhIHN0cmluZyBcInN1Y2NlZWRlZFwiIGJlbG93LiIKKyAgICAgIFJlbmRlckJsb2Nr
IChhbm9ueW1vdXMpIGF0ICgwLDY4KSBzaXplIDc4NHgxOQorICAgICAgICBSZW5kZXJUZXh0Q29u
dHJvbCB7VEVYVEFSRUF9IGF0ICgyLDIpIHNpemUgMzAyeDE1IFtiZ2NvbG9yPSNGRkZGRkZdIFti
b3JkZXI6ICgxcHggc29saWQgIzAwMDAwMCldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVyQmxvY2sge1VMfSBhdCAoMCwxMDMpIHNpemUg
Nzg0eDE4CisgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDQwLDApIHNpemUgNzQ0eDE4
CisgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTE3LDApIHNpemUgN3gxODogYnVsbGV0
CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzJ4MTgKKyAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDcyOiAiU3VjY2VlZGVkLiIKK2xheWVyIGF0
ICgxMSw3OSkgc2l6ZSAzMDB4MTMKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDEsMSkgc2l6ZSAz
MDB4MTMKKyAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMsMCkgc2l6ZSA2eDEzCisgICAgICB0
ZXh0IHJ1biBhdCAoMywwKSB3aWR0aCA2OiAiXHh7RTI3fSIKK2NhcmV0OiBwb3NpdGlvbiAxIG9m
IGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAwIHtESVZ9IG9mIGNoaWxkIDUge1RFWFRBUkVBfSBv
ZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudApJbmRleDogTGF5
b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAyLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAy
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0
ZS1saWdhdHVyZS0wMDIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAorPGh0bWwg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxoZWFkPgorICAgICAg
ICA8c2NyaXB0IHNyYz0iLi4vZWRpdGluZy5qcyIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IGxhbmd1YWdlPSJq
YXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICBmdW5jdGlvbiBsb2co
c3RyKSB7CisgICAgICAgICAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIp
OworICAgICAgICAgICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3Ry
KSk7CisgICAgICAgICAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIik7CisgICAgICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKKyAgICAgICAg
fQorICAgICAgICBmdW5jdGlvbiBzZW5kQmFja3dhcmREZWxldGVLZXkoKSB7CisgICAgICAgICAg
ICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtl
eURvd24oU3RyaW5nLmZyb21DaGFyQ29kZSgweDAwMDgpLCBudWxsKTsKKyAgICAgICAgfQorICAg
ICAgICBmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKKyAgICAgICAgICAgIHZhciB0ZXh0YXJlYSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisgICAgICAgICAgICB0ZXh0YXJlYS5m
b2N1cygpOworICAgICAgICAgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoU3RyaW5nLmZyb21DaGFy
Q29kZSgweDBFMjcpKTsKKyAgICAgICAgICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKFN0cmluZy5m
cm9tQ2hhckNvZGUoMHgwRTMxKSk7CisgICAgICAgICAgICBtb3ZlU2VsZWN0aW9uQmFja3dhcmRC
eUNoYXJhY3RlckNvbW1hbmQoKTsKKyAgICAgICAgICAgIG1vdmVTZWxlY3Rpb25Gb3J3YXJkQnlD
aGFyYWN0ZXJDb21tYW5kKCk7CisgICAgICAgICAgICBzZW5kQmFja3dhcmREZWxldGVLZXkoKTsK
KyAgICAgICAgICAgIGlmICh0ZXh0YXJlYS52YWx1ZSA9PSAiXHUwRTI3IikKKyAgICAgICAgICAg
ICAgICBsb2coIlN1Y2NlZWRlZC4iKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBsb2coIkZhaWxlZC4gQWN0dWFsOiBcIiIgKyB0ZXh0YXJlYS52YWx1ZSArICJcIiwgRXhwZWN0
ZWQ6IFwiXHUwRTI3XCIiKTsKKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAg
PHRpdGxlPkVkaXRpbmcgVGVzdCAoRGVsZXRpbmcgYSBsaWdhdHVyZSk8L3RpdGxlPiAKKyAgICA8
L2hlYWQ+IAorICAgIDxib2R5PgorICAgICAgICA8cD5UaGlzIHRlc3QgdGVzdHMgd2hldGhlciB0
aGUgQmFja1NwYWNlIGtleSBkZWxldGVzIG9ubHkgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgbGln
YXR1cmUgIiYjeDBFMjc7JiN4MEUzMTsiLjwvcD4KKyAgICAgICAgPHA+SWYgdGhpcyB0ZXN0IHN1
Y2NlZWRzLCB5b3UgY2FuIHNlZSAiJiN4MEUyNzsiIChVKzBFMjcpIGFuZCBhIHN0cmluZyAic3Vj
Y2VlZGVkIiBiZWxvdy48L3A+CisgICAgICAgIDx0ZXh0YXJlYSBpZD0idGVzdCIgcm93cz0iMSIg
Y29scz0iNDAiPjwvdGV4dGFyZWE+CisgICAgICAgIDx1bCBpZD0iY29uc29sZSI+PC91bD4KKyAg
ICAgICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KKyAgICAgICAgcnVuRWRpdGluZ1Rlc3QoKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUt
bGlnYXR1cmUtMDAzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS0wMDMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAzLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNSBAQAorRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90
aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNh
dGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6cmFuZ2UgZnJvbSAx
IG9mICN0ZXh0ID4gRElWIHRvIDIgb2YgI3RleHQgPiBESVYKK0VESVRJTkcgREVMRUdBVEU6IHNo
b3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxIG9mICN0ZXh0ID4gRElWIHRv
IDEgb2YgI3RleHQgPiBESVYgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDEgb2YgI3RleHQgPiBESVYg
dG8gMSBvZiAjdGV4dCA+IERJViBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVh
bSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24K
K0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJv
bSAxIG9mICN0ZXh0ID4gRElWIHRvIDEgb2YgI3RleHQgPiBESVYgdG9ET01SYW5nZTpyYW5nZSBm
cm9tIDEgb2YgI3RleHQgPiBESVYgdG8gMiBvZiAjdGV4dCA+IERJViBhZmZpbml0eTpOU1NlbGVj
dGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
Tm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdE
aWRDaGFuZ2VOb3RpZmljYXRpb24KK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJC
b2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1NzYKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBh
dCAoMCwwKSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSA3MzZ4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA3MzY6ICJUaGlz
IHRlc3QgdGVzdHMgd2hldGhlciB0aGUgdW5kbyBjb21tYW5kIHdvcmtzIHdoZW4gdGhlIEJhY2tT
cGFjZSBrZXkgZGVsZXRlcyB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgYSBsaWdhdHVyZSBcIlx4e0Uy
N31ceHtFMzF9XCIuIgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDM0KSBzaXplIDc4NHgx
OAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1NjR4MTgKKyAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1NjQ6ICJJZiB0aGlzIHRlc3Qgc3VjY2VlZHMs
IHlvdSBjYW4gc2VlIFwiXHh7RTI3fVx4e0UzMX1cIiAoVSswRTI3LFUrMEUzMSkgYW5kIGEgc3Ry
aW5nIFwic3VjY2VlZGVkXCIgYmVsb3cuIgorICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykg
YXQgKDAsNjgpIHNpemUgNzg0eDE5CisgICAgICAgIFJlbmRlclRleHRDb250cm9sIHtURVhUQVJF
QX0gYXQgKDIsMikgc2l6ZSAzMDJ4MTUgW2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRlcjogKDFweCBz
b2xpZCAjMDAwMDAwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MHgwCisgICAgICBSZW5kZXJCbG9jayB7VUx9IGF0ICgwLDEwMykgc2l6ZSA3ODR4MTgKKyAgICAg
ICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoNDAsMCkgc2l6ZSA3NDR4MTgKKyAgICAgICAgICBS
ZW5kZXJMaXN0TWFya2VyIGF0ICgtMTcsMCkgc2l6ZSA3eDE4OiBidWxsZXQKKyAgICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3MngxOAorICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggNzI6ICJTdWNjZWVkZWQuIgorbGF5ZXIgYXQgKDExLDc5KSBzaXpl
IDMwMHgxMworICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMSwxKSBzaXplIDMwMHgxMworICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMywwKSBzaXplIDZ4MTMKKyAgICAgIHRleHQgcnVuIGF0ICgz
LDApIHdpZHRoIDY6ICJceHtFMjd9XHh7RTMxfSIKK3NlbGVjdGlvbiBzdGFydDogcG9zaXRpb24g
MSBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7RElWfSBvZiBjaGlsZCA1IHtURVhUQVJF
QX0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKK3NlbGVj
dGlvbiBlbmQ6ICAgcG9zaXRpb24gMiBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7RElW
fSBvZiBjaGlsZCA1IHtURVhUQVJFQX0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRN
TH0gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRl
LWxpZ2F0dXJlLTAwMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZGVs
ZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAzLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMzkgQEAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sIj4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL2VkaXRpbmcuanMiIGxh
bmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiID48L3NjcmlwdD4KKyAg
ICAgICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KKyAgICAgICAgZnVuY3Rpb24gbG9nKHN0cikgeworICAgICAgICAgICAgdmFyIGxpID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICAgICAgICAgIGxpLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikpOworICAgICAgICAgICAgdmFyIGNvbnNvbGUgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICAgICAgICAgICAgY29uc29sZS5h
cHBlbmRDaGlsZChsaSk7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gc2VuZEJhY2t3YXJk
RGVsZXRlS2V5KCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAg
ICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDA4
KSwgbnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7Cisg
ICAgICAgICAgICB2YXIgdGV4dGFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIp
OworICAgICAgICAgICAgdGV4dGFyZWEuZm9jdXMoKTsKKyAgICAgICAgICAgIG1vdmVTZWxlY3Rp
b25Gb3J3YXJkQnlDaGFyYWN0ZXJDb21tYW5kKCk7CisgICAgICAgICAgICBtb3ZlU2VsZWN0aW9u
Rm9yd2FyZEJ5Q2hhcmFjdGVyQ29tbWFuZCgpOworICAgICAgICAgICAgc2VuZEJhY2t3YXJkRGVs
ZXRlS2V5KCk7CisgICAgICAgICAgICBleGVjVW5kb0NvbW1hbmQoKTsKKyAgICAgICAgICAgIGlm
ICh0ZXh0YXJlYS52YWx1ZSA9PSAiXHUwRTI3XHUwRTMxIikKKyAgICAgICAgICAgICAgICBsb2co
IlN1Y2NlZWRlZC4iKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsb2coIkZh
aWxlZC4gQWN0dWFsOiBcIiIgKyB0ZXh0YXJlYS52YWx1ZSArICJcIiwgRXhwZWN0ZWQ6IFwiXHUw
RTI3XHUwRTMxXCIiKTsKKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHRp
dGxlPkVkaXRpbmcgVGVzdCAoVW5kbyBkZWxldGluZyBhIGxpZ2F0dXJlKTwvdGl0bGU+IAorICAg
IDwvaGVhZD4gCisgICAgPGJvZHk+CisgICAgICAgIDxwPlRoaXMgdGVzdCB0ZXN0cyB3aGV0aGVy
IHRoZSB1bmRvIGNvbW1hbmQgd29ya3Mgd2hlbiB0aGUgQmFja1NwYWNlIGtleSBkZWxldGVzIHRo
ZSBsYXN0IGNoYXJhY3RlciBvZiBhIGxpZ2F0dXJlICImI3gwRTI3OyYjeDBFMzE7Ii48L3A+Cisg
ICAgICAgIDxwPklmIHRoaXMgdGVzdCBzdWNjZWVkcywgeW91IGNhbiBzZWUgIiYjeDBFMjc7JiN4
MEUzMTsiIChVKzBFMjcsVSswRTMxKSBhbmQgYSBzdHJpbmcgInN1Y2NlZWRlZCIgYmVsb3cuPC9w
PgorICAgICAgICA8dGV4dGFyZWEgaWQ9InRlc3QiIHJvd3M9IjEiIGNvbHM9IjQwIj4mI3gwRTI3
OyYjeDBFMzE7PC90ZXh0YXJlYT4KKyAgICAgICAgPHVsIGlkPSJjb25zb2xlIj48L3VsPgorICAg
ICAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgorICAgICAgICBydW5FZGl0aW5nVGVzdCgpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="12143"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25917</attachid>
            <date>2008-12-10 01:43:36 -0800</date>
            <delta_ts>2008-12-10 04:50:43 -0800</delta_ts>
            <desc>tenth proposed fix</desc>
            <filename>issue21820-patch12.txt</filename>
            <type>text/plain</type>
            <size>15538</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzOTE2MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDgtMTItMDggIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QnVnIDIxODIwOiBVbmFibGUgdG8gZW50ZXIgdGhlIFRhbWlsIFVOSUNPREUgQ2hhcmFjdGVycyB2
aWEgVGhhbWl6aGEgUGhvbmV0aWMgSU1FCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTgyMAorCisgICAgICAgIFRlc3RzOiBlZGl0aW5nL2RlbGV0aW5n
L2RlbGV0ZS1saWdhdHVyZS0wMDEuaHRtbAorICAgICAgICAgICAgICAgZWRpdGluZy9kZWxldGlu
Zy9kZWxldGUtbGlnYXR1cmUtMDAyLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvZGVsZXRp
bmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0Nv
bW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6ZGVsZXRlS2V5UHJl
c3NlZCk6IERlbGV0ZSBvbmx5IHRoZSBsYXN0IGNoYXJhY3RlcgorICAgICAgICBvZiBhIGxpZ2F0
dXJlIHdoaWNoIGNvbnNpc3RzIG9mIG11bHRpcGxlIFVuaWNvZGUgY2hhcmFjdGVycyB3aGVuIGRl
bGV0aW5nIGl0IHdpdGgKKyAgICAgICAgYSBiYWNrc3BhY2Uga2V5LgorCiAyMDA4LTEyLTA5ICBF
cmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBObyByZXZpZXcsIGJ1aWxk
IGZpeCBvbmx5LgpJbmRleDogV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAkocmV2aXNpb24gMzkx
NjIpCisrKyBXZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQxNiw2ICs0MTYsMTggQEAgdm9pZCBUeXBpbmdDb21tYW5kOjpkZWxldGVLZXlQcmVzc2Vk
KFRleAogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBzZWxlY3Rpb25Ub0RlbGV0ZSA9IHNl
bGVjdGlvbi5zZWxlY3Rpb24oKTsKKworICAgICAgICAgICAgaWYgKGdyYW51bGFyaXR5ID09IENo
YXJhY3RlckdyYW51bGFyaXR5ICYmIHNlbGVjdGlvblRvRGVsZXRlLmVuZCgpLm9mZnNldCgpIC0g
c2VsZWN0aW9uVG9EZWxldGUuc3RhcnQoKS5vZmZzZXQoKSA+IDEpIHsKKyAgICAgICAgICAgICAg
ICAvLyBXaGVuIHdlIGRlbGV0ZSBhIGxpZ2F0dXJlIGNvbnNpc3Rpbmcgb2YgbXVsdGlwbGUgVW5p
Y29kZSBjaGFyYWN0ZXJzIHdpdGggYSBiYWNrc3BhY2Uga2V5LAorICAgICAgICAgICAgICAgIC8v
IHdlIHNob3VsZCBub3QgZGVsZXRlIHRoZSBsaWdhdHVyZSBidXQgZGVsZXRlIG9ubHkgaXRzIGxh
c3QgY2hhcmFjZXRlci4gVG8gY2hlY2sgd2UgYXJlIGRlbGV0aW5nCisgICAgICAgICAgICAgICAg
Ly8gYSBsaWdhdHVyZSwgd2UgcmV0cmlldmUgdGhlIHByZXZpb3VzIHBvc2l0aW9uIG9mIHRoZSBj
YXJldCBhbmQgY291bnQgdGhlIG51bWJlciBvZgorICAgICAgICAgICAgICAgIC8vIGNoYXJhY3Rl
cnMgdG8gYmUgZGVsZXRlZC4KKyAgICAgICAgICAgICAgICAvLyBUbyBwcmV2ZW50IGZyb20gY2Fs
Y3VsYXRpbmcgdGhlIHByZXZpb3VzIHBvc2l0aW9uIGV2ZXJ5IHRpbWUgd2hlbiBwcmVzc2luZyBh
IGJhY2tzcGFjZSBrZXksCisgICAgICAgICAgICAgICAgLy8gd2UgcmV0cmlldmUgdGhlIHByZXZp
b3VzIHBvc2l0aW9uIG9ubHkgd2hlbiB0aGUgZ2l2ZW4gc2VsZWN0aW9uIGNvbnNpc3RzIG9mIHR3
byBvciBtb3JlIGNoYXJhY3RlcnMuCisgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvblRvRGVs
ZXRlLmVuZCgpLm9mZnNldCgpIC0gc2VsZWN0aW9uVG9EZWxldGUuZW5kKCkucHJldmlvdXMoVXNp
bmdDb21wb3NlZENoYXJhY3RlcnMpLm9mZnNldCgpID4gMSkKKyAgICAgICAgICAgICAgICAgICAg
c2VsZWN0aW9uVG9EZWxldGUuc2V0V2l0aG91dFZhbGlkYXRpb24oc2VsZWN0aW9uVG9EZWxldGUu
ZW5kKCksIHNlbGVjdGlvblRvRGVsZXRlLmVuZCgpLnByZXZpb3VzKE5vdFVzaW5nQ29tcG9zZWRD
aGFyYWN0ZXJzKSk7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGlmICghc3RhcnRpbmdT
ZWxlY3Rpb24oKS5pc1JhbmdlKCkgfHwgc2VsZWN0aW9uVG9EZWxldGUuYmFzZSgpICE9IHN0YXJ0
aW5nU2VsZWN0aW9uKCkuc3RhcnQoKSkKICAgICAgICAgICAgICAgICBzZWxlY3Rpb25BZnRlclVu
ZG8gPSBzZWxlY3Rpb25Ub0RlbGV0ZTsKICAgICAgICAgICAgIGVsc2UKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDM5MTYyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMjEgQEAKKzIwMDgtMTItMDggIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVn
IDIxODIwOiBVbmFibGUgdG8gZW50ZXIgdGhlIFRhbWlsIFVOSUNPREUgQ2hhcmFjdGVycyB2aWEg
VGhhbWl6aGEgUGhvbmV0aWMgSU1FCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTgyMAorCisgICAgICAgIEFkZGVkIHRlc3QgZm9yIHZlcmlmeWluZyBp
ZiBhIGJhY2tzcGFjZSBrZXkgZGVsZXRlcyBvbmx5IHRoZSBsYXN0IGNoYXJhY3RlciBvZiBhIGxp
Z2F0dXJlIHdoaWNoIGNvbnNpc3RzIG9mCisgICAgICAgIG11bHRpcGxlIFVuaWNvZGUgY2hhcmFj
dGVycy4KKyAgICAgICAgQWxzbyBhZGRlZCBhIHRlc3QgZm9yIHZlcmlmeWluZyBhbiB1bmRvIG9w
ZXJhdGlvbiB3b3JrcyBhZnRlciBkZWxldGluZyB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgYSBsaWdh
dHVyZS4KKworICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxp
Z2F0dXJlLTAwMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL2RlbGV0
ZS1saWdhdHVyZS0wMDItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2Rl
bGV0aW5nL2RlbGV0ZS1saWdhdHVyZS0wMDIuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGlu
Zy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAzLmh0bWw6IEFkZGVkLgor
CiAyMDA4LTEyLTA5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQ2FtZXJvbiBad2FyaWNoLgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGlu
Zy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAxLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS0wMDEtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxl
dGUtbGlnYXR1cmUtMDAxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOCBA
QAorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VE
SVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAw
IG9mIERJViB0byAwIG9mIERJViB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IERJ
ViB0byAxIG9mICN0ZXh0ID4gRElWIGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3Ry
ZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlv
bgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBm
cm9tIDEgb2YgI3RleHQgPiBESVYgdG8gMSBvZiAjdGV4dCA+IERJViB0b0RPTVJhbmdlOnJhbmdl
IGZyb20gMiBvZiAjdGV4dCA+IERJViB0byAyIG9mICN0ZXh0ID4gRElWIGFmZmluaXR5Ok5TU2Vs
ZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmll
d0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9N
UmFuZ2U6cmFuZ2UgZnJvbSAxIG9mICN0ZXh0ID4gRElWIHRvIDIgb2YgI3RleHQgPiBESVYKK0VE
SVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAx
IG9mICN0ZXh0ID4gRElWIHRvIDEgb2YgI3RleHQgPiBESVYgdG9ET01SYW5nZTpyYW5nZSBmcm9t
IDEgb2YgI3RleHQgPiBESVYgdG8gMSBvZiAjdGV4dCA+IERJViBhZmZpbml0eTpOU1NlbGVjdGlv
bkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90
aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRD
aGFuZ2VOb3RpZmljYXRpb24KK1RoaXMgdGVzdCB0ZXN0cyB3aGV0aGVyIHRoZSBCYWNrU3BhY2Ug
a2V5IGRlbGV0ZXMgb25seSB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgYSBsaWdhdHVyZSAi4Lin4Lix
Ii4KKworSWYgdGhpcyB0ZXN0IHN1Y2NlZWRzLCB5b3UgY2FuIHNlZSAi4LinIiAoVSswRTI3KSBh
bmQgYSBzdHJpbmcgInN1Y2NlZWRlZCIgYmVsb3cuCisKKworU3VjY2VlZGVkLgpJbmRleDogTGF5
b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAxLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAx
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0
ZS1saWdhdHVyZS0wMDEuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAorPGh0bWwg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxoZWFkPgorICAgICAg
ICA8c2NyaXB0IHNyYz0iLi4vZWRpdGluZy5qcyIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IGxhbmd1YWdlPSJq
YXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICBmdW5jdGlvbiBsb2co
c3RyKSB7CisgICAgICAgICAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIp
OworICAgICAgICAgICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3Ry
KSk7CisgICAgICAgICAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIik7CisgICAgICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKKyAgICAgICAg
fQorICAgICAgICBmdW5jdGlvbiBzZW5kQmFja3dhcmREZWxldGVLZXkoKSB7CisgICAgICAgICAg
ICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtl
eURvd24oU3RyaW5nLmZyb21DaGFyQ29kZSgweDAwMDgpLCBudWxsKTsKKyAgICAgICAgfQorICAg
ICAgICBmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHZhciB0ZXh0YXJlYSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisgICAgICAgICAgICB0ZXh0YXJlYS5mb2N1cygpOwor
ICAgICAgICAgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoU3RyaW5nLmZyb21DaGFyQ29kZSgweDBF
MjcpKTsKKyAgICAgICAgICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKFN0cmluZy5mcm9tQ2hhckNv
ZGUoMHgwRTMxKSk7CisgICAgICAgICAgICBzZW5kQmFja3dhcmREZWxldGVLZXkoKTsKKyAgICAg
ICAgICAgIGlmICh0ZXh0YXJlYS52YWx1ZSA9PSAiXHUwRTI3IikKKyAgICAgICAgICAgICAgICBs
b2coIlN1Y2NlZWRlZC4iKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsb2co
IkZhaWxlZC4gQWN0dWFsOiBcIiIgKyB0ZXh0YXJlYS52YWx1ZSArICJcIiwgRXhwZWN0ZWQ6IFwi
XHUwRTI3XCIiKTsKKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHRpdGxl
PkVkaXRpbmcgVGVzdCAoRGVsZXRpbmcgYSBsaWdhdHVyZSk8L3RpdGxlPiAKKyAgICA8L2hlYWQ+
IAorICAgIDxib2R5PgorICAgICAgICA8cD5UaGlzIHRlc3QgdGVzdHMgd2hldGhlciB0aGUgQmFj
a1NwYWNlIGtleSBkZWxldGVzIG9ubHkgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgbGlnYXR1cmUg
IiYjeDBFMjc7JiN4MEUzMTsiLjwvcD4KKyAgICAgICAgPHA+SWYgdGhpcyB0ZXN0IHN1Y2NlZWRz
LCB5b3UgY2FuIHNlZSAiJiN4MEUyNzsiIChVKzBFMjcpIGFuZCBhIHN0cmluZyAic3VjY2VlZGVk
IiBiZWxvdy48L3A+CisgICAgICAgIDx0ZXh0YXJlYSBpZD0idGVzdCIgcm93cz0iMSIgY29scz0i
NDAiPjwvdGV4dGFyZWE+CisgICAgICAgIDx1bCBpZD0iY29uc29sZSI+PC91bD4KKyAgICAgICAg
PHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAg
ICAgICAgcnVuRWRpdGluZ1Rlc3QoKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1
cmUtMDAyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2Rl
bGV0aW5nL2RlbGV0ZS1saWdhdHVyZS0wMDItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAyLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMCBAQAorRURJVElORyBERUxFR0FURTogd2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0
aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENo
YW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIERJViB0byAwIG9mIERJViB0b0RP
TVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IERJViB0byAxIG9mICN0ZXh0ID4gRElWIGFm
ZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNF
CitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hv
dWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDEgb2YgI3RleHQgPiBESVYgdG8g
MSBvZiAjdGV4dCA+IERJViB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMiBvZiAjdGV4dCA+IERJViB0
byAyIG9mICN0ZXh0ID4gRElWIGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFt
IHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgor
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJ
TkcgREVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+
IERJViB0byAyIG9mICN0ZXh0ID4gRElWCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VT
ZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IERJViB0byAxIG9mICN0ZXh0
ID4gRElWIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxIG9mICN0ZXh0ID4gRElWIHRvIDEgb2YgI3Rl
eHQgPiBESVYgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxl
Y3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246
V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitUaGlzIHRlc3Qg
dGVzdHMgd2hldGhlciB0aGUgQmFja1NwYWNlIGtleSBkZWxldGVzIG9ubHkgdGhlIGxhc3QgY2hh
cmFjdGVyIG9mIGEgbGlnYXR1cmUgIuC4p+C4sSIuCisKK0lmIHRoaXMgdGVzdCBzdWNjZWVkcywg
eW91IGNhbiBzZWUgIuC4pyIgKFUrMEUyNykgYW5kIGEgc3RyaW5nICJzdWNjZWVkZWQiIGJlbG93
LgorCisKK1N1Y2NlZWRlZC4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVs
ZXRlLWxpZ2F0dXJlLTAwMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcv
ZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAyLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNDIgQEAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIj4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL2VkaXRpbmcuanMi
IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiID48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gbG9nKHN0cikgeworICAgICAgICAgICAgdmFyIGxpID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICAgICAgICAgIGxpLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikpOworICAgICAgICAgICAgdmFyIGNvbnNvbGUg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICAgICAgICAgICAgY29uc29s
ZS5hcHBlbmRDaGlsZChsaSk7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gc2VuZEJhY2t3
YXJkRGVsZXRlS2V5KCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAg
ICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKFN0cmluZy5mcm9tQ2hhckNvZGUoMHgw
MDA4KSwgbnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7
CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAg
ICAgICB2YXIgdGV4dGFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworICAg
ICAgICAgICAgdGV4dGFyZWEuZm9jdXMoKTsKKyAgICAgICAgICAgIHR5cGVDaGFyYWN0ZXJDb21t
YW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwRTI3KSk7CisgICAgICAgICAgICB0eXBlQ2hhcmFj
dGVyQ29tbWFuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MEUzMSkpOworICAgICAgICAgICAgbW92
ZVNlbGVjdGlvbkJhY2t3YXJkQnlDaGFyYWN0ZXJDb21tYW5kKCk7CisgICAgICAgICAgICBtb3Zl
U2VsZWN0aW9uRm9yd2FyZEJ5Q2hhcmFjdGVyQ29tbWFuZCgpOworICAgICAgICAgICAgc2VuZEJh
Y2t3YXJkRGVsZXRlS2V5KCk7CisgICAgICAgICAgICBpZiAodGV4dGFyZWEudmFsdWUgPT0gIlx1
MEUyNyIpCisgICAgICAgICAgICAgICAgbG9nKCJTdWNjZWVkZWQuIik7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgbG9nKCJGYWlsZWQuIEFjdHVhbDogXCIiICsgdGV4dGFyZWEu
dmFsdWUgKyAiXCIsIEV4cGVjdGVkOiBcIlx1MEUyN1wiIik7CisgICAgICAgIH0KKyAgICAgICAg
PC9zY3JpcHQ+CisgICAgICAgIDx0aXRsZT5FZGl0aW5nIFRlc3QgKERlbGV0aW5nIGEgbGlnYXR1
cmUpPC90aXRsZT4gCisgICAgPC9oZWFkPiAKKyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGhpcyB0
ZXN0IHRlc3RzIHdoZXRoZXIgdGhlIEJhY2tTcGFjZSBrZXkgZGVsZXRlcyBvbmx5IHRoZSBsYXN0
IGNoYXJhY3RlciBvZiBhIGxpZ2F0dXJlICImI3gwRTI3OyYjeDBFMzE7Ii48L3A+CisgICAgICAg
IDxwPklmIHRoaXMgdGVzdCBzdWNjZWVkcywgeW91IGNhbiBzZWUgIiYjeDBFMjc7IiAoVSswRTI3
KSBhbmQgYSBzdHJpbmcgInN1Y2NlZWRlZCIgYmVsb3cuPC9wPgorICAgICAgICA8dGV4dGFyZWEg
aWQ9InRlc3QiIHJvd3M9IjEiIGNvbHM9IjQwIj48L3RleHRhcmVhPgorICAgICAgICA8dWwgaWQ9
ImNvbnNvbGUiPjwvdWw+CisgICAgICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIHJ1bkVkaXRpbmdUZXN0KCk7CisgICAgICAg
IDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRp
bmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAzLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVs
ZXRlLWxpZ2F0dXJlLTAwMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTYg
QEAKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0Rp
ZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0Rp
ZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitF
RElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZERlbGV0ZURP
TVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IERJViB0byAyIG9mICN0ZXh0ID4gRElWCitF
RElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20g
MSBvZiAjdGV4dCA+IERJViB0byAxIG9mICN0ZXh0ID4gRElWIHRvRE9NUmFuZ2U6cmFuZ2UgZnJv
bSAxIG9mICN0ZXh0ID4gRElWIHRvIDEgb2YgI3RleHQgPiBESVYgYWZmaW5pdHk6TlNTZWxlY3Rp
b25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5v
dGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlk
Q2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3Rl
ZERPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IERJViB0byAxIG9mICN0ZXh0ID4gRElW
IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxIG9mICN0ZXh0ID4gRElWIHRvIDIgb2YgI3RleHQgPiBE
SVYgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6
RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitUaGlzIHRlc3QgdGVzdHMg
d2hldGhlciB0aGUgdW5kbyBjb21tYW5kIHdvcmtzIHdoZW4gdGhlIEJhY2tTcGFjZSBrZXkgZGVs
ZXRlcyB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgYSBsaWdhdHVyZSAi4Lin4LixIi4KKworSWYgdGhp
cyB0ZXN0IHN1Y2NlZWRzLCB5b3UgY2FuIHNlZSAi4Lin4LixIiAoVSswRTI3LFUrMEUzMSkgYW5k
IGEgc3RyaW5nICJzdWNjZWVkZWQiIGJlbG93LgorCisKK1N1Y2NlZWRlZC4KSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUt
bGlnYXR1cmUtMDAzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDEgQEAKKzxodG1sIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICA8aGVhZD4KKyAgICAgICAg
PHNjcmlwdCBzcmM9Ii4uL2VkaXRpbmcuanMiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiID48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2
YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gbG9nKHN0
cikgeworICAgICAgICAgICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsK
KyAgICAgICAgICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikp
OworICAgICAgICAgICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpOworICAgICAgICAgICAgY29uc29sZS5hcHBlbmRDaGlsZChsaSk7CisgICAgICAgIH0K
KyAgICAgICAgZnVuY3Rpb24gc2VuZEJhY2t3YXJkRGVsZXRlS2V5KCkgeworICAgICAgICAgICAg
aWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlE
b3duKFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDA4KSwgbnVsbCk7CisgICAgICAgIH0KKyAgICAg
ICAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB2YXIgdGV4dGFyZWEgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGVzdCIpOworICAgICAgICAgICAgdGV4dGFyZWEuZm9jdXMoKTsKKyAg
ICAgICAgICAgIG1vdmVTZWxlY3Rpb25Gb3J3YXJkQnlDaGFyYWN0ZXJDb21tYW5kKCk7CisgICAg
ICAgICAgICBtb3ZlU2VsZWN0aW9uRm9yd2FyZEJ5Q2hhcmFjdGVyQ29tbWFuZCgpOworICAgICAg
ICAgICAgc2VuZEJhY2t3YXJkRGVsZXRlS2V5KCk7CisgICAgICAgICAgICBleGVjVW5kb0NvbW1h
bmQoKTsKKyAgICAgICAgICAgIGlmICh0ZXh0YXJlYS52YWx1ZSA9PSAiXHUwRTI3XHUwRTMxIikK
KyAgICAgICAgICAgICAgICBsb2coIlN1Y2NlZWRlZC4iKTsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICBsb2coIkZhaWxlZC4gQWN0dWFsOiBcIiIgKyB0ZXh0YXJlYS52YWx1ZSAr
ICJcIiwgRXhwZWN0ZWQ6IFwiXHUwRTI3XHUwRTMxXCIiKTsKKyAgICAgICAgfQorICAgICAgICA8
L3NjcmlwdD4KKyAgICAgICAgPHRpdGxlPkVkaXRpbmcgVGVzdCAoVW5kbyBkZWxldGluZyBhIGxp
Z2F0dXJlKTwvdGl0bGU+IAorICAgIDwvaGVhZD4gCisgICAgPGJvZHk+CisgICAgICAgIDxwPlRo
aXMgdGVzdCB0ZXN0cyB3aGV0aGVyIHRoZSB1bmRvIGNvbW1hbmQgd29ya3Mgd2hlbiB0aGUgQmFj
a1NwYWNlIGtleSBkZWxldGVzIHRoZSBsYXN0IGNoYXJhY3RlciBvZiBhIGxpZ2F0dXJlICImI3gw
RTI3OyYjeDBFMzE7Ii48L3A+CisgICAgICAgIDxwPklmIHRoaXMgdGVzdCBzdWNjZWVkcywgeW91
IGNhbiBzZWUgIiYjeDBFMjc7JiN4MEUzMTsiIChVKzBFMjcsVSswRTMxKSBhbmQgYSBzdHJpbmcg
InN1Y2NlZWRlZCIgYmVsb3cuPC9wPgorICAgICAgICA8dGV4dGFyZWEgaWQ9InRlc3QiIHJvd3M9
IjEiIGNvbHM9IjQwIj4mI3gwRTI3OyYjeDBFMzE7PC90ZXh0YXJlYT4KKyAgICAgICAgPHVsIGlk
PSJjb25zb2xlIj48L3VsPgorICAgICAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICBydW5FZGl0aW5nVGVzdCgpOworICAgICAg
ICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="12169"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>