<?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>30660</bug_id>
          
          <creation_ts>2009-10-21 20:39:50 -0700</creation_ts>
          <short_desc>WebInspector: Can&apos;t use IME inside console</short_desc>
          <delta_ts>2009-10-24 21:57:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.5</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="Keishi Hattori">keishi</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>aroben</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>pfeldman</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>156770</commentid>
    <comment_count>0</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2009-10-21 20:39:50 -0700</bug_when>
    <thetext>The console misinterprets an Enter inside an IME and executes the command when you&apos;re not finished typing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156778</commentid>
    <comment_count>1</comment_count>
      <attachid>41635</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2009-10-21 21:01:36 -0700</bug_when>
    <thetext>Created attachment 41635
proposed patch

event.keyCode will be 229 if it is from an IME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156815</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-10-22 00:09:58 -0700</bug_when>
    <thetext>Hey keishi! Long time no see!

Looks like you may missed have a recently added case in ElementsTreeOutline.js where pushing Enter starts editing the applicable part of the selected node:
http://trac.webkit.org/browser/trunk/WebCore/inspector/front-end/ElementsTreeOutline.js?rev=49709#L202

Also I think it would be best if there was a comment on those lines that this handles an Enter inside an IME as it is not immediately obvious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156819</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-10-22 00:14:17 -0700</bug_when>
    <thetext>You forgot CCs on this one. I&apos;ll add them.

You can bookmark these quick links to get some useful people CC&apos;d:
http://bit.ly/wi-bug or
http://bit.ly/SFGz (the previous + Pavel and Brian)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156878</commentid>
    <comment_count>4</comment_count>
      <attachid>41635</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-10-22 07:37:09 -0700</bug_when>
    <thetext>Comment on attachment 41635
proposed patch

&gt; +                if (event.keyCode !== 229) {
&gt; +                    this._enterKeyPressed(event);

229 all over the place is a bit confusing. Maybe you could add something like

function isEnterKey(event) {
    // Check if in IME.
    return event.keyCode !== 229 &amp;&amp; event.keyIdentifier === &quot;Enter&quot;;
}

into the utilities.js?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156894</commentid>
    <comment_count>5</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-10-22 08:50:53 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 41635 [details])
&gt; &gt; +                if (event.keyCode !== 229) {
&gt; &gt; +                    this._enterKeyPressed(event);
&gt; 
&gt; 229 all over the place is a bit confusing. Maybe you could add something like
&gt; 
&gt; function isEnterKey(event) {
&gt;     // Check if in IME.
&gt;     return event.keyCode !== 229 &amp;&amp; event.keyIdentifier === &quot;Enter&quot;;
&gt; }
&gt; 
&gt; into the utilities.js?

Good idea. I agree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157051</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-10-22 17:16:17 -0700</bug_when>
    <thetext>Could Web Inspector listen for keypress, not for keydown? The latter is very low level, as you discovered.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157057</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-10-22 17:24:22 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Could Web Inspector listen for keypress, not for keydown? The latter is very
&gt; low level, as you discovered.

I know that onkeypress does not handle the ESC key, but onkeydown does.  This would matter for WebInspector.documentKeyDown which does watch for the ESC key.  I posted a bug on this a while back:
https://bugs.webkit.org/show_bug.cgi?id=25147

The test case on that bug would be applicable for testing some other keypress/keydown differences:
https://bug-25147-attachments.webkit.org/attachment.cgi?id=29418</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157073</commentid>
    <comment_count>8</comment_count>
      <attachid>41707</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2009-10-22 18:07:13 -0700</bug_when>
    <thetext>Created attachment 41707
proposed patch 2

&gt; http://trac.webkit.org/browser/trunk/WebCore/inspector/front-end/ElementsTreeOutline.js?rev=49709#L202
I don&apos;t think we need to check here because we can&apos;t be in IME. We only need to check if we want to detect an Enter key while the user is typing text.

Turns out that keyup doesn&apos;t return keycode=229 and we can&apos;t tell if we are in an IME or not. So I moved performSearch() to searchKeyDown.

The comment says that &quot;Only call performSearch if the Enter key was pressed.&quot; but I think we are doing incremental search. 
Is this a regression? Or is the comment old?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157110</commentid>
    <comment_count>9</comment_count>
      <attachid>41707</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-10-22 23:30:14 -0700</bug_when>
    <thetext>Comment on attachment 41707
proposed patch 2

I worry about eliminating WebInspector.searchKeyUp. How did you test search?

-     // Select all of the text so the user can easily type an entirely new query.

Why did you delete this? The code it applies to is still there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157536</commentid>
    <comment_count>10</comment_count>
      <attachid>41808</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2009-10-24 20:22:15 -0700</bug_when>
    <thetext>Created attachment 41808
proposed patch 3

&gt; Why did you delete this? The code it applies to is still there.
Sorry, added back the comments.

I was misreading the comment. So incremental search *is* the desired behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157541</commentid>
    <comment_count>11</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2009-10-24 20:33:47 -0700</bug_when>
    <thetext>Don&apos;t forget to add the newline at the end of utilities.js.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157542</commentid>
    <comment_count>12</comment_count>
      <attachid>41808</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-10-24 20:34:11 -0700</bug_when>
    <thetext>Comment on attachment 41808
proposed patch 3


&gt; -    searchField.addEventListener(&quot;keydown&quot;, this.searchKeyDown.bind(this), false);
&gt; -    searchField.addEventListener(&quot;keyup&quot;, this.searchKeyUp.bind(this), false);

You only want to unregister keyup.


&gt; +function isEnterKey(event) {
&gt; +    // Check if in IME.
&gt; +    return event.keyCode !== 229 &amp;&amp; event.keyIdentifier === &quot;Enter&quot;;
&gt; +}
&gt; \ No newline at end of file

Add a new line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157543</commentid>
    <comment_count>13</comment_count>
      <attachid>41809</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2009-10-24 20:45:29 -0700</bug_when>
    <thetext>Created attachment 41809
proposed patch 4

&gt; &gt; -    searchField.addEventListener(&quot;keydown&quot;, this.searchKeyDown.bind(this), false);
&gt; &gt; -    searchField.addEventListener(&quot;keyup&quot;, this.searchKeyUp.bind(this), false);
&gt; You only want to unregister keyup.

I removed WebInspector.searchKeyUp because I moved performSearch to searchKeyDown. Do I need it?

Patch just adds the newline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157544</commentid>
    <comment_count>14</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-10-24 20:52:10 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Created an attachment (id=41809) [details]
&gt; proposed patch 4
&gt; 
&gt; &gt; &gt; -    searchField.addEventListener(&quot;keydown&quot;, this.searchKeyDown.bind(this), false);
&gt; &gt; &gt; -    searchField.addEventListener(&quot;keyup&quot;, this.searchKeyUp.bind(this), false);
&gt; &gt; You only want to unregister keyup.
&gt; 
&gt; I removed WebInspector.searchKeyUp because I moved performSearch to
&gt; searchKeyDown. Do I need it?
&gt; 
&gt; Patch just adds the newline.

Yes but you unregisted keydown, which still is needed.

-    searchField.addEventListener(&quot;keydown&quot;, this.searchKeyDown.bind(this), false);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157547</commentid>
    <comment_count>15</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2009-10-24 21:03:17 -0700</bug_when>
    <thetext>WebInspector.documentKeyDown was calling WebInspector.searchKeyDown
So when I registered here WebInspector.searchKeyDown was getting called twice.


I just noticed I shouldn&apos;t have removed this comment either. Patch coming up.
-    // Call preventDefault since this was the Enter key. This prevents a &quot;search&quot; event
-    // from firing for key down. We handle the Enter key on key up in searchKeyUp. This
-    // stops performSearch from being called twice in a row.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157548</commentid>
    <comment_count>16</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-10-24 21:06:50 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; WebInspector.documentKeyDown was calling WebInspector.searchKeyDown
&gt; So when I registered here WebInspector.searchKeyDown was getting called twice.
&gt; 
&gt; 
&gt; I just noticed I shouldn&apos;t have removed this comment either. Patch coming up.
&gt; -    // Call preventDefault since this was the Enter key. This prevents a
&gt; &quot;search&quot; event
&gt; -    // from firing for key down. We handle the Enter key on key up in
&gt; searchKeyUp. This
&gt; -    // stops performSearch from being called twice in a row.

I don&apos;t see WebInspector.documentKeyDown call ing searchKeyDown.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157552</commentid>
    <comment_count>17</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2009-10-24 21:24:13 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; I don&apos;t see WebInspector.documentKeyDown call ing searchKeyDown.

Hmm… I put a breakpoint on WebInspector.searchKeyDown for ToT and type in to the search box and it is getting called twice. 

Stack trace shows it&apos;s getting called here
http://trac.webkit.org/browser/trunk/WebCore/inspector/front-end/inspector.js#L597</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157554</commentid>
    <comment_count>18</comment_count>
      <attachid>41813</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2009-10-24 21:39:07 -0700</bug_when>
    <thetext>Created attachment 41813
proposed patch 5

Re-added for now to be safe.
searchField.addEventListener(&quot;keydown&quot;, this.searchKeyDown.bind(this), false);

Added comment
+    // Call preventDefault since this was the Enter key. This prevents a &quot;search&quot; event
+    // from firing for key down. This stops performSearch from being called twice in a row.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157556</commentid>
    <comment_count>19</comment_count>
      <attachid>41813</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-10-24 21:46:55 -0700</bug_when>
    <thetext>Comment on attachment 41813
proposed patch 5

You can remove searchField.addEventListener(&quot;keydown&quot;, this.searchKeyDown.bind(this), false); then! Sorry, I forgot about the documentKeyDown magic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157557</commentid>
    <comment_count>20</comment_count>
      <attachid>41813</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-10-24 21:52:24 -0700</bug_when>
    <thetext>Comment on attachment 41813
proposed patch 5

I&apos;ll land and remove the listener.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157558</commentid>
    <comment_count>21</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-10-24 21:57:03 -0700</bug_when>
    <thetext>Committed r50039: &lt;http://trac.webkit.org/changeset/50039&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41635</attachid>
            <date>2009-10-21 21:01:36 -0700</date>
            <delta_ts>2009-10-22 18:07:13 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>fixime.diff</filename>
            <type>text/plain</type>
            <size>3171</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTkyOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMDktMTAtMjEgIEtlaXNoaSBIYXR0b3JpICA8Y2FzZXkuaGF0dG9y
aUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2ViSW5zcGVjdG9yOiBGaXhlZCBpc3N1ZSB3aXRoIElNRSBpbnNpZGUgY29uc29sZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA2NjAKKwor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLl9wcm9tcHRLZXlEb3duKTogQ2hlY2sg
aWYgaW4gSU1FLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VRdWVyeVZp
ZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YWJhc2VRdWVyeVZpZXcucHJvdG90eXBl
Ll9wcm9tcHRLZXlEb3duKTogQ2hlY2sgaWYgaW4gSU1FLgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLnNlYXJjaEtleURv
d24pOiBDaGVjayBpZiBpbiBJTUUuCisgICAgICAgIChXZWJJbnNwZWN0b3Iuc2VhcmNoS2V5VXAp
OiBDaGVjayBpZiBpbiBJTUUuCisKIDIwMDktMTAtMjEgIER1bWl0cnUgRGFuaWxpdWMgIDxkdW1p
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCklu
ZGV4OiBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCShyZXZpc2lv
biA0OTkyMCkKKysrIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwko
d29ya2luZyBjb3B5KQpAQCAtMzc1LDggKzM3NSwxMSBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZp
ZXcucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgc3dpdGNoIChldmVudC5rZXlJZGVudGlm
aWVyKSB7CiAgICAgICAgICAgICBjYXNlICJFbnRlciI6Ci0gICAgICAgICAgICAgICAgdGhpcy5f
ZW50ZXJLZXlQcmVzc2VkKGV2ZW50KTsKLSAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgIT09IDIyOSkgeworICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9lbnRlcktleVByZXNzZWQoZXZlbnQpOworICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAKICAgICAgICAgdGhpcy5wcm9tcHQuaGFuZGxlS2V5RXZlbnQoZXZlbnQpOwpJbmRleDogV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlUXVlcnlWaWV3LmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qcwkocmV2
aXNpb24gNDk5MjApCisrKyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VRdWVy
eVZpZXcuanMJKHdvcmtpbmcgY29weSkKQEAgLTk2LDggKzk2LDExIEBAIFdlYkluc3BlY3Rvci5E
YXRhYmFzZVF1ZXJ5Vmlldy5wcm90b3R5cGUKICAgICB7CiAgICAgICAgIHN3aXRjaCAoZXZlbnQu
a2V5SWRlbnRpZmllcikgewogICAgICAgICAgICAgY2FzZSAiRW50ZXIiOgotICAgICAgICAgICAg
ICAgIHRoaXMuX2VudGVyS2V5UHJlc3NlZChldmVudCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgICAgIGlmIChldmVudC5rZXlDb2RlICE9PSAyMjkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fZW50ZXJLZXlQcmVzc2VkKGV2ZW50KTsKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogCiAgICAgICAgIHRoaXMucHJvbXB0LmhhbmRsZUtleUV2ZW50KGV2ZW50KTsK
SW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwkocmV2aXNpb24g
NDk5MjApCisrKyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNDMwLDcgKzE0MzAsNyBAQCBXZWJJbnNwZWN0b3IuYWRkTWFpbkV2ZW50
TGlzdGVuZXJzID0gZnVuCiAKIFdlYkluc3BlY3Rvci5zZWFyY2hLZXlEb3duID0gZnVuY3Rpb24o
ZXZlbnQpCiB7Ci0gICAgaWYgKGV2ZW50LmtleUlkZW50aWZpZXIgIT09ICJFbnRlciIpCisgICAg
aWYgKGV2ZW50LmtleUlkZW50aWZpZXIgIT09ICJFbnRlciIgfHwgZXZlbnQua2V5Q29kZSAhPT0g
MjI5KQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBDYWxsIHByZXZlbnREZWZhdWx0IHNpbmNl
IHRoaXMgd2FzIHRoZSBFbnRlciBrZXkuIFRoaXMgcHJldmVudHMgYSAic2VhcmNoIiBldmVudApA
QCAtMTQ0MSw3ICsxNDQxLDcgQEAgV2ViSW5zcGVjdG9yLnNlYXJjaEtleURvd24gPSBmdW5jdGlv
bihldgogCiBXZWJJbnNwZWN0b3Iuc2VhcmNoS2V5VXAgPSBmdW5jdGlvbihldmVudCkKIHsKLSAg
ICBpZiAoZXZlbnQua2V5SWRlbnRpZmllciAhPT0gIkVudGVyIikKKyAgICBpZiAoZXZlbnQua2V5
SWRlbnRpZmllciAhPT0gIkVudGVyIiB8fCBldmVudC5rZXlDb2RlICE9PSAyMjkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIC8vIFNlbGVjdCBhbGwgb2YgdGhlIHRleHQgc28gdGhlIHVzZXIgY2Fu
IGVhc2lseSB0eXBlIGFuIGVudGlyZWx5IG5ldyBxdWVyeS4K
</data>
<flag name="review"
          id="23060"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41707</attachid>
            <date>2009-10-22 18:07:13 -0700</date>
            <delta_ts>2009-10-24 20:22:15 -0700</delta_ts>
            <desc>proposed patch 2</desc>
            <filename>fixime.diff</filename>
            <type>text/plain</type>
            <size>4940</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTk1OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDktMTAtMjIgIEtlaXNoaSBIYXR0b3JpICA8Y2FzZXkuaGF0dG9y
aUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJMIChPT1BTISkKKworICAg
ICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvQ29uc29sZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJv
dG90eXBlLl9wcm9tcHRLZXlEb3duKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0Rh
dGFiYXNlUXVlcnlWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRhdGFiYXNlUXVlcnlW
aWV3LnByb3RvdHlwZS5fcHJvbXB0S2V5RG93bik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iuc2VhcmNoS2V5RG93bik6
CisgICAgICAgIChXZWJJbnNwZWN0b3Iuc3RhcnRFZGl0aW5nLmVsZW1lbnQuaGFuZGxlS2V5RXZl
bnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLnN0YXJ0RWRpdGluZyk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanM6CisgICAgICAgIChpc0VudGVyS2V5KToKKwog
MjAwOS0xMC0yMiAgSm9hbm1hcmllIERpZ2dzICA8am9hbm1hcmllLmRpZ2dzQGdtYWlsLmNvbT4K
ICAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpJbmRleDogV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwkocmV2aXNpb24gNDk5MzcpCisrKyBXZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMJKHdvcmtpbmcgY29weSkKQEAgLTM3
MywxMCArMzczLDkgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKIAog
ICAgIF9wcm9tcHRLZXlEb3duOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHN3aXRj
aCAoZXZlbnQua2V5SWRlbnRpZmllcikgewotICAgICAgICAgICAgY2FzZSAiRW50ZXIiOgotICAg
ICAgICAgICAgICAgIHRoaXMuX2VudGVyS2V5UHJlc3NlZChldmVudCk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICBpZiAoaXNFbnRlcktleShldmVudCkpIHsKKyAgICAgICAgICAg
IHRoaXMuX2VudGVyS2V5UHJlc3NlZChldmVudCk7CisgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIAogICAgICAgICB0aGlzLnByb21wdC5oYW5kbGVLZXlFdmVudChldmVudCk7CkluZGV4
OiBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VRdWVyeVZpZXcuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlUXVlcnlWaWV3Lmpz
CShyZXZpc2lvbiA0OTkzNykKKysrIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFz
ZVF1ZXJ5Vmlldy5qcwkod29ya2luZyBjb3B5KQpAQCAtOTQsMTAgKzk0LDkgQEAgV2ViSW5zcGVj
dG9yLkRhdGFiYXNlUXVlcnlWaWV3LnByb3RvdHlwZQogCiAgICAgX3Byb21wdEtleURvd246IGZ1
bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgc3dpdGNoIChldmVudC5rZXlJZGVudGlmaWVy
KSB7Ci0gICAgICAgICAgICBjYXNlICJFbnRlciI6Ci0gICAgICAgICAgICAgICAgdGhpcy5fZW50
ZXJLZXlQcmVzc2VkKGV2ZW50KTsKLSAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlm
IChpc0VudGVyS2V5KGV2ZW50KSkgeworICAgICAgICAgICAgdGhpcy5fZW50ZXJLZXlQcmVzc2Vk
KGV2ZW50KTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIHRoaXMu
cHJvbXB0LmhhbmRsZUtleUV2ZW50KGV2ZW50KTsKSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qcwkocmV2aXNpb24gNDk5MzcpCisrKyBXZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00NTYsOCArNDU2LDYg
QEAgV2ViSW5zcGVjdG9yLmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICAvLyB0aGlzLl91cGRhdGVF
cnJvckFuZFdhcm5pbmdDb3VudHMoKTsKIAogICAgIHZhciBzZWFyY2hGaWVsZCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzZWFyY2giKTsKLSAgICBzZWFyY2hGaWVsZC5hZGRFdmVudExpc3Rl
bmVyKCJrZXlkb3duIiwgdGhpcy5zZWFyY2hLZXlEb3duLmJpbmQodGhpcyksIGZhbHNlKTsKLSAg
ICBzZWFyY2hGaWVsZC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsIHRoaXMuc2VhcmNoS2V5VXAu
YmluZCh0aGlzKSwgZmFsc2UpOwogICAgIHNlYXJjaEZpZWxkLmFkZEV2ZW50TGlzdGVuZXIoInNl
YXJjaCIsIHRoaXMucGVyZm9ybVNlYXJjaC5iaW5kKHRoaXMpLCBmYWxzZSk7IC8vIHdoZW4gdGhl
IHNlYXJjaCBpcyBlbXB0aWVkCiAKICAgICB0b29sYmFyRWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCJtb3VzZWRvd24iLCB0aGlzLnRvb2xiYXJEcmFnU3RhcnQsIHRydWUpOwpAQCAtMTQzMCwyNyAr
MTQyOCwxMiBAQCBXZWJJbnNwZWN0b3IuYWRkTWFpbkV2ZW50TGlzdGVuZXJzID0gZnVuCiAKIFdl
Ykluc3BlY3Rvci5zZWFyY2hLZXlEb3duID0gZnVuY3Rpb24oZXZlbnQpCiB7Ci0gICAgaWYgKGV2
ZW50LmtleUlkZW50aWZpZXIgIT09ICJFbnRlciIpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8v
IENhbGwgcHJldmVudERlZmF1bHQgc2luY2UgdGhpcyB3YXMgdGhlIEVudGVyIGtleS4gVGhpcyBw
cmV2ZW50cyBhICJzZWFyY2giIGV2ZW50Ci0gICAgLy8gZnJvbSBmaXJpbmcgZm9yIGtleSBkb3du
LiBXZSBoYW5kbGUgdGhlIEVudGVyIGtleSBvbiBrZXkgdXAgaW4gc2VhcmNoS2V5VXAuIFRoaXMK
LSAgICAvLyBzdG9wcyBwZXJmb3JtU2VhcmNoIGZyb20gYmVpbmcgY2FsbGVkIHR3aWNlIGluIGEg
cm93LgotICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci19Ci0KLVdlYkluc3BlY3Rvci5zZWFy
Y2hLZXlVcCA9IGZ1bmN0aW9uKGV2ZW50KQotewotICAgIGlmIChldmVudC5rZXlJZGVudGlmaWVy
ICE9PSAiRW50ZXIiKQotICAgICAgICByZXR1cm47CisgICAgaWYgKCFpc0VudGVyS2V5KGV2ZW50
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gU2VsZWN0IGFsbCBvZiB0aGUgdGV4
dCBzbyB0aGUgdXNlciBjYW4gZWFzaWx5IHR5cGUgYW4gZW50aXJlbHkgbmV3IHF1ZXJ5LgogICAg
IGV2ZW50LnRhcmdldC5zZWxlY3QoKTsKLQotICAgIC8vIE9ubHkgY2FsbCBwZXJmb3JtU2VhcmNo
IGlmIHRoZSBFbnRlciBrZXkgd2FzIHByZXNzZWQuIE90aGVyd2lzZSB0aGUgc2VhcmNoCi0gICAg
Ly8gcGVyZm9ybWFuY2UgaXMgcG9vciBiZWNhdXNlIG9mIHNlYXJjaGluZyBvbiBldmVyeSBrZXku
IFRoZSBzZWFyY2ggZmllbGQgaGFzCi0gICAgLy8gdGhlIGluY3JlbWVudGFsIGF0dHJpYnV0ZSBz
ZXQsIHNvIHdlIHN0aWxsIGdldCBpbmNyZW1lbnRhbCBzZWFyY2hlcy4KICAgICB0aGlzLnBlcmZv
cm1TZWFyY2goZXZlbnQpOworICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiB9CiAKIFdlYklu
c3BlY3Rvci5wZXJmb3JtU2VhcmNoID0gZnVuY3Rpb24oZXZlbnQpCkBAIC0xNjE0LDcgKzE1OTcs
NyBAQCBXZWJJbnNwZWN0b3Iuc3RhcnRFZGl0aW5nID0gZnVuY3Rpb24oZWxlCiAgICAgICAgIGlm
IChldmVudC5oYW5kbGVkKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmIChldmVu
dC5rZXlJZGVudGlmaWVyID09PSAiRW50ZXIiKSB7CisgICAgICAgIGlmIChpc0VudGVyS2V5KGV2
ZW50KSkgewogICAgICAgICAgICAgZWRpdGluZ0NvbW1pdHRlZC5jYWxsKGVsZW1lbnQpOwogICAg
ICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgfSBlbHNlIGlmIChldmVu
dC5rZXlDb2RlID09PSAyNykgeyAvLyBFc2NhcGUga2V5CkluZGV4OiBXZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC91dGlsaXRpZXMuanMJKHJldmlzaW9uIDQ5OTM3KQorKysgV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL3V0aWxpdGllcy5qcwkod29ya2luZyBjb3B5KQpAQCAtODE3LDMgKzgx
Nyw4IEBAIFN0cmluZy5mb3JtYXQgPSBmdW5jdGlvbihmb3JtYXQsIHN1YnN0aXQKIAogICAgIHJl
dHVybiB7IGZvcm1hdHRlZFJlc3VsdDogcmVzdWx0LCB1bnVzZWRTdWJzdGl0dXRpb25zOiB1bnVz
ZWRTdWJzdGl0dXRpb25zIH07CiB9CisKK2Z1bmN0aW9uIGlzRW50ZXJLZXkoZXZlbnQpIHsKKyAg
ICAvLyBDaGVjayBpZiBpbiBJTUUuCisgICAgcmV0dXJuIGV2ZW50LmtleUNvZGUgIT09IDIyOSAm
JiBldmVudC5rZXlJZGVudGlmaWVyID09PSAiRW50ZXIiOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41808</attachid>
            <date>2009-10-24 20:22:15 -0700</date>
            <delta_ts>2009-10-24 20:45:29 -0700</delta_ts>
            <desc>proposed patch 3</desc>
            <filename>fixime.diff</filename>
            <type>text/plain</type>
            <size>5077</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDAzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDktMTAtMjQgIEtlaXNoaSBIYXR0b3JpICA8Y2FzZXkuaGF0dG9y
aUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2ViSW5zcGVjdG9yOiBGaXhlZCBpc3N1ZSB3aXRoIElNRSBpbnNpZGUgY29uc29sZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA2NjAKKwor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLl9wcm9tcHRLZXlEb3duKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlUXVlcnlWaWV3LmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRhdGFiYXNlUXVlcnlWaWV3LnByb3RvdHlwZS5fcHJvbXB0S2V5RG93bik6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IubG9hZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5zZWFyY2hLZXlEb3du
KTogTW92ZWQgcGVyZm9ybVNlYXJjaCBoZXJlIGZyb20gV2ViSW5zcGVjdG9yLnNlYXJjaEtleVVw
LgorICAgICAgICAoV2ViSW5zcGVjdG9yLnN0YXJ0RWRpdGluZy5lbGVtZW50LmhhbmRsZUtleUV2
ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5zdGFydEVkaXRpbmcpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzOgorICAgICAgICAoaXNFbnRlcktleSk6IEFk
ZGVkLiBDaGVjayBpZiBpbiBJTUUuCisKIDIwMDktMTAtMjQgIFNhbSBXZWluaWcgIDxzYW1Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpJbmRleDogV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwkocmV2aXNpb24gNTAwMjcp
CisrKyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTM3MywxMCArMzczLDkgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3Rv
dHlwZSA9IHsKIAogICAgIF9wcm9tcHRLZXlEb3duOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0g
ICAgICAgIHN3aXRjaCAoZXZlbnQua2V5SWRlbnRpZmllcikgewotICAgICAgICAgICAgY2FzZSAi
RW50ZXIiOgotICAgICAgICAgICAgICAgIHRoaXMuX2VudGVyS2V5UHJlc3NlZChldmVudCk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoaXNFbnRlcktleShldmVudCkpIHsK
KyAgICAgICAgICAgIHRoaXMuX2VudGVyS2V5UHJlc3NlZChldmVudCk7CisgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICB0aGlzLnByb21wdC5oYW5kbGVLZXlFdmVudChl
dmVudCk7CkluZGV4OiBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VRdWVyeVZp
ZXcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNl
UXVlcnlWaWV3LmpzCShyZXZpc2lvbiA1MDAyNykKKysrIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qcwkod29ya2luZyBjb3B5KQpAQCAtOTQsMTAgKzk0LDkg
QEAgV2ViSW5zcGVjdG9yLkRhdGFiYXNlUXVlcnlWaWV3LnByb3RvdHlwZQogCiAgICAgX3Byb21w
dEtleURvd246IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgc3dpdGNoIChldmVudC5r
ZXlJZGVudGlmaWVyKSB7Ci0gICAgICAgICAgICBjYXNlICJFbnRlciI6Ci0gICAgICAgICAgICAg
ICAgdGhpcy5fZW50ZXJLZXlQcmVzc2VkKGV2ZW50KTsKLSAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIGlmIChpc0VudGVyS2V5KGV2ZW50KSkgeworICAgICAgICAgICAgdGhpcy5fZW50
ZXJLZXlQcmVzc2VkKGV2ZW50KTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAg
ICAgICAgIHRoaXMucHJvbXB0LmhhbmRsZUtleUV2ZW50KGV2ZW50KTsKSW5kZXg6IFdlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwkocmV2aXNpb24gNTAwMjcpCisrKyBXZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00
NjEsOCArNDYxLDYgQEAgV2ViSW5zcGVjdG9yLmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICAvLyB0
aGlzLl91cGRhdGVFcnJvckFuZFdhcm5pbmdDb3VudHMoKTsKIAogICAgIHZhciBzZWFyY2hGaWVs
ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2giKTsKLSAgICBzZWFyY2hGaWVsZC5h
ZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5zZWFyY2hLZXlEb3duLmJpbmQodGhpcyks
IGZhbHNlKTsKLSAgICBzZWFyY2hGaWVsZC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsIHRoaXMu
c2VhcmNoS2V5VXAuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgIHNlYXJjaEZpZWxkLmFkZEV2ZW50
TGlzdGVuZXIoInNlYXJjaCIsIHRoaXMucGVyZm9ybVNlYXJjaC5iaW5kKHRoaXMpLCBmYWxzZSk7
IC8vIHdoZW4gdGhlIHNlYXJjaCBpcyBlbXB0aWVkCiAKICAgICB0b29sYmFyRWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCB0aGlzLnRvb2xiYXJEcmFnU3RhcnQsIHRydWUpOwpA
QCAtMTQ0MSwxOSArMTQzOSw4IEBAIFdlYkluc3BlY3Rvci5hZGRNYWluRXZlbnRMaXN0ZW5lcnMg
PSBmdW4KIAogV2ViSW5zcGVjdG9yLnNlYXJjaEtleURvd24gPSBmdW5jdGlvbihldmVudCkKIHsK
LSAgICBpZiAoZXZlbnQua2V5SWRlbnRpZmllciAhPT0gIkVudGVyIikKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgLy8gQ2FsbCBwcmV2ZW50RGVmYXVsdCBzaW5jZSB0aGlzIHdhcyB0aGUgRW50ZXIg
a2V5LiBUaGlzIHByZXZlbnRzIGEgInNlYXJjaCIgZXZlbnQKLSAgICAvLyBmcm9tIGZpcmluZyBm
b3Iga2V5IGRvd24uIFdlIGhhbmRsZSB0aGUgRW50ZXIga2V5IG9uIGtleSB1cCBpbiBzZWFyY2hL
ZXlVcC4gVGhpcwotICAgIC8vIHN0b3BzIHBlcmZvcm1TZWFyY2ggZnJvbSBiZWluZyBjYWxsZWQg
dHdpY2UgaW4gYSByb3cuCi0gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKLX0KLQotV2ViSW5z
cGVjdG9yLnNlYXJjaEtleVVwID0gZnVuY3Rpb24oZXZlbnQpCi17Ci0gICAgaWYgKGV2ZW50Lmtl
eUlkZW50aWZpZXIgIT09ICJFbnRlciIpCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAoIWlzRW50
ZXJLZXkoZXZlbnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBTZWxlY3QgYWxs
IG9mIHRoZSB0ZXh0IHNvIHRoZSB1c2VyIGNhbiBlYXNpbHkgdHlwZSBhbiBlbnRpcmVseSBuZXcg
cXVlcnkuCiAgICAgZXZlbnQudGFyZ2V0LnNlbGVjdCgpOwpAQCAtMTQ2Miw2ICsxNDQ5LDggQEAg
V2ViSW5zcGVjdG9yLnNlYXJjaEtleVVwID0gZnVuY3Rpb24oZXZlbgogICAgIC8vIHBlcmZvcm1h
bmNlIGlzIHBvb3IgYmVjYXVzZSBvZiBzZWFyY2hpbmcgb24gZXZlcnkga2V5LiBUaGUgc2VhcmNo
IGZpZWxkIGhhcwogICAgIC8vIHRoZSBpbmNyZW1lbnRhbCBhdHRyaWJ1dGUgc2V0LCBzbyB3ZSBz
dGlsbCBnZXQgaW5jcmVtZW50YWwgc2VhcmNoZXMuCiAgICAgdGhpcy5wZXJmb3JtU2VhcmNoKGV2
ZW50KTsKKyAgICAKKyAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogfQogCiBXZWJJbnNwZWN0
b3IucGVyZm9ybVNlYXJjaCA9IGZ1bmN0aW9uKGV2ZW50KQpAQCAtMTY0MCw3ICsxNjI5LDcgQEAg
V2ViSW5zcGVjdG9yLnN0YXJ0RWRpdGluZyA9IGZ1bmN0aW9uKGVsZQogICAgICAgICBpZiAoZXZl
bnQuaGFuZGxlZCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAoZXZlbnQua2V5
SWRlbnRpZmllciA9PT0gIkVudGVyIikgeworICAgICAgICBpZiAoaXNFbnRlcktleShldmVudCkp
IHsKICAgICAgICAgICAgIGVkaXRpbmdDb21taXR0ZWQuY2FsbChlbGVtZW50KTsKICAgICAgICAg
ICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5
Q29kZSA9PT0gMjcpIHsgLy8gRXNjYXBlIGtleQpJbmRleDogV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL3V0aWxpdGllcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvdXRpbGl0aWVzLmpzCShyZXZpc2lvbiA1MDAyNykKKysrIFdlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC91dGlsaXRpZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTgxNywzICs4MTcsOCBA
QCBTdHJpbmcuZm9ybWF0ID0gZnVuY3Rpb24oZm9ybWF0LCBzdWJzdGl0CiAKICAgICByZXR1cm4g
eyBmb3JtYXR0ZWRSZXN1bHQ6IHJlc3VsdCwgdW51c2VkU3Vic3RpdHV0aW9uczogdW51c2VkU3Vi
c3RpdHV0aW9ucyB9OwogfQorCitmdW5jdGlvbiBpc0VudGVyS2V5KGV2ZW50KSB7CisgICAgLy8g
Q2hlY2sgaWYgaW4gSU1FLgorICAgIHJldHVybiBldmVudC5rZXlDb2RlICE9PSAyMjkgJiYgZXZl
bnQua2V5SWRlbnRpZmllciA9PT0gIkVudGVyIjsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCg==
</data>
<flag name="review"
          id="23269"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41809</attachid>
            <date>2009-10-24 20:45:29 -0700</date>
            <delta_ts>2009-10-24 21:39:07 -0700</delta_ts>
            <desc>proposed patch 4</desc>
            <filename>fixime.diff</filename>
            <type>text/plain</type>
            <size>5049</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDAzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDktMTAtMjQgIEtlaXNoaSBIYXR0b3JpICA8Y2FzZXkuaGF0dG9y
aUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2ViSW5zcGVjdG9yOiBGaXhlZCBpc3N1ZSB3aXRoIElNRSBpbnNpZGUgY29uc29sZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA2NjAKKwor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLl9wcm9tcHRLZXlEb3duKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlUXVlcnlWaWV3LmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRhdGFiYXNlUXVlcnlWaWV3LnByb3RvdHlwZS5fcHJvbXB0S2V5RG93bik6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IubG9hZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5zZWFyY2hLZXlEb3du
KTogTW92ZWQgcGVyZm9ybVNlYXJjaCBoZXJlIGZyb20gV2ViSW5zcGVjdG9yLnNlYXJjaEtleVVw
LgorICAgICAgICAoV2ViSW5zcGVjdG9yLnN0YXJ0RWRpdGluZy5lbGVtZW50LmhhbmRsZUtleUV2
ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5zdGFydEVkaXRpbmcpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzOgorICAgICAgICAoaXNFbnRlcktleSk6IEFk
ZGVkLiBDaGVjayBpZiBpbiBJTUUuCisKIDIwMDktMTAtMjQgIFNhbSBXZWluaWcgIDxzYW1Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpJbmRleDogV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwkocmV2aXNpb24gNTAwMjcp
CisrKyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTM3MywxMCArMzczLDkgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3Rv
dHlwZSA9IHsKIAogICAgIF9wcm9tcHRLZXlEb3duOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0g
ICAgICAgIHN3aXRjaCAoZXZlbnQua2V5SWRlbnRpZmllcikgewotICAgICAgICAgICAgY2FzZSAi
RW50ZXIiOgotICAgICAgICAgICAgICAgIHRoaXMuX2VudGVyS2V5UHJlc3NlZChldmVudCk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoaXNFbnRlcktleShldmVudCkpIHsK
KyAgICAgICAgICAgIHRoaXMuX2VudGVyS2V5UHJlc3NlZChldmVudCk7CisgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICB0aGlzLnByb21wdC5oYW5kbGVLZXlFdmVudChl
dmVudCk7CkluZGV4OiBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VRdWVyeVZp
ZXcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNl
UXVlcnlWaWV3LmpzCShyZXZpc2lvbiA1MDAyNykKKysrIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qcwkod29ya2luZyBjb3B5KQpAQCAtOTQsMTAgKzk0LDkg
QEAgV2ViSW5zcGVjdG9yLkRhdGFiYXNlUXVlcnlWaWV3LnByb3RvdHlwZQogCiAgICAgX3Byb21w
dEtleURvd246IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgc3dpdGNoIChldmVudC5r
ZXlJZGVudGlmaWVyKSB7Ci0gICAgICAgICAgICBjYXNlICJFbnRlciI6Ci0gICAgICAgICAgICAg
ICAgdGhpcy5fZW50ZXJLZXlQcmVzc2VkKGV2ZW50KTsKLSAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIGlmIChpc0VudGVyS2V5KGV2ZW50KSkgeworICAgICAgICAgICAgdGhpcy5fZW50
ZXJLZXlQcmVzc2VkKGV2ZW50KTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAg
ICAgICAgIHRoaXMucHJvbXB0LmhhbmRsZUtleUV2ZW50KGV2ZW50KTsKSW5kZXg6IFdlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwkocmV2aXNpb24gNTAwMjcpCisrKyBXZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00
NjEsOCArNDYxLDYgQEAgV2ViSW5zcGVjdG9yLmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICAvLyB0
aGlzLl91cGRhdGVFcnJvckFuZFdhcm5pbmdDb3VudHMoKTsKIAogICAgIHZhciBzZWFyY2hGaWVs
ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2giKTsKLSAgICBzZWFyY2hGaWVsZC5h
ZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5zZWFyY2hLZXlEb3duLmJpbmQodGhpcyks
IGZhbHNlKTsKLSAgICBzZWFyY2hGaWVsZC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsIHRoaXMu
c2VhcmNoS2V5VXAuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgIHNlYXJjaEZpZWxkLmFkZEV2ZW50
TGlzdGVuZXIoInNlYXJjaCIsIHRoaXMucGVyZm9ybVNlYXJjaC5iaW5kKHRoaXMpLCBmYWxzZSk7
IC8vIHdoZW4gdGhlIHNlYXJjaCBpcyBlbXB0aWVkCiAKICAgICB0b29sYmFyRWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCB0aGlzLnRvb2xiYXJEcmFnU3RhcnQsIHRydWUpOwpA
QCAtMTQ0MSwxOSArMTQzOSw4IEBAIFdlYkluc3BlY3Rvci5hZGRNYWluRXZlbnRMaXN0ZW5lcnMg
PSBmdW4KIAogV2ViSW5zcGVjdG9yLnNlYXJjaEtleURvd24gPSBmdW5jdGlvbihldmVudCkKIHsK
LSAgICBpZiAoZXZlbnQua2V5SWRlbnRpZmllciAhPT0gIkVudGVyIikKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgLy8gQ2FsbCBwcmV2ZW50RGVmYXVsdCBzaW5jZSB0aGlzIHdhcyB0aGUgRW50ZXIg
a2V5LiBUaGlzIHByZXZlbnRzIGEgInNlYXJjaCIgZXZlbnQKLSAgICAvLyBmcm9tIGZpcmluZyBm
b3Iga2V5IGRvd24uIFdlIGhhbmRsZSB0aGUgRW50ZXIga2V5IG9uIGtleSB1cCBpbiBzZWFyY2hL
ZXlVcC4gVGhpcwotICAgIC8vIHN0b3BzIHBlcmZvcm1TZWFyY2ggZnJvbSBiZWluZyBjYWxsZWQg
dHdpY2UgaW4gYSByb3cuCi0gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKLX0KLQotV2ViSW5z
cGVjdG9yLnNlYXJjaEtleVVwID0gZnVuY3Rpb24oZXZlbnQpCi17Ci0gICAgaWYgKGV2ZW50Lmtl
eUlkZW50aWZpZXIgIT09ICJFbnRlciIpCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAoIWlzRW50
ZXJLZXkoZXZlbnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBTZWxlY3QgYWxs
IG9mIHRoZSB0ZXh0IHNvIHRoZSB1c2VyIGNhbiBlYXNpbHkgdHlwZSBhbiBlbnRpcmVseSBuZXcg
cXVlcnkuCiAgICAgZXZlbnQudGFyZ2V0LnNlbGVjdCgpOwpAQCAtMTQ2Miw2ICsxNDQ5LDggQEAg
V2ViSW5zcGVjdG9yLnNlYXJjaEtleVVwID0gZnVuY3Rpb24oZXZlbgogICAgIC8vIHBlcmZvcm1h
bmNlIGlzIHBvb3IgYmVjYXVzZSBvZiBzZWFyY2hpbmcgb24gZXZlcnkga2V5LiBUaGUgc2VhcmNo
IGZpZWxkIGhhcwogICAgIC8vIHRoZSBpbmNyZW1lbnRhbCBhdHRyaWJ1dGUgc2V0LCBzbyB3ZSBz
dGlsbCBnZXQgaW5jcmVtZW50YWwgc2VhcmNoZXMuCiAgICAgdGhpcy5wZXJmb3JtU2VhcmNoKGV2
ZW50KTsKKyAgICAKKyAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogfQogCiBXZWJJbnNwZWN0
b3IucGVyZm9ybVNlYXJjaCA9IGZ1bmN0aW9uKGV2ZW50KQpAQCAtMTY0MCw3ICsxNjI5LDcgQEAg
V2ViSW5zcGVjdG9yLnN0YXJ0RWRpdGluZyA9IGZ1bmN0aW9uKGVsZQogICAgICAgICBpZiAoZXZl
bnQuaGFuZGxlZCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAoZXZlbnQua2V5
SWRlbnRpZmllciA9PT0gIkVudGVyIikgeworICAgICAgICBpZiAoaXNFbnRlcktleShldmVudCkp
IHsKICAgICAgICAgICAgIGVkaXRpbmdDb21taXR0ZWQuY2FsbChlbGVtZW50KTsKICAgICAgICAg
ICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5
Q29kZSA9PT0gMjcpIHsgLy8gRXNjYXBlIGtleQpJbmRleDogV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL3V0aWxpdGllcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvdXRpbGl0aWVzLmpzCShyZXZpc2lvbiA1MDAyNykKKysrIFdlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC91dGlsaXRpZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTgxNywzICs4MTcsOCBA
QCBTdHJpbmcuZm9ybWF0ID0gZnVuY3Rpb24oZm9ybWF0LCBzdWJzdGl0CiAKICAgICByZXR1cm4g
eyBmb3JtYXR0ZWRSZXN1bHQ6IHJlc3VsdCwgdW51c2VkU3Vic3RpdHV0aW9uczogdW51c2VkU3Vi
c3RpdHV0aW9ucyB9OwogfQorCitmdW5jdGlvbiBpc0VudGVyS2V5KGV2ZW50KSB7CisgICAgLy8g
Q2hlY2sgaWYgaW4gSU1FLgorICAgIHJldHVybiBldmVudC5rZXlDb2RlICE9PSAyMjkgJiYgZXZl
bnQua2V5SWRlbnRpZmllciA9PT0gIkVudGVyIjsKK30K
</data>
<flag name="review"
          id="23271"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41813</attachid>
            <date>2009-10-24 21:39:07 -0700</date>
            <delta_ts>2009-10-24 21:52:23 -0700</delta_ts>
            <desc>proposed patch 5</desc>
            <filename>fixime.diff</filename>
            <type>text/plain</type>
            <size>5187</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDAzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDktMTAtMjQgIEtlaXNoaSBIYXR0b3JpICA8Y2FzZXkuaGF0dG9y
aUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2ViSW5zcGVjdG9yOiBGaXhlZCBpc3N1ZSB3aXRoIElNRSBpbnNpZGUgY29uc29sZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA2NjAKKwor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLl9wcm9tcHRLZXlEb3duKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlUXVlcnlWaWV3LmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRhdGFiYXNlUXVlcnlWaWV3LnByb3RvdHlwZS5fcHJvbXB0S2V5RG93bik6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IubG9hZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5zZWFyY2hLZXlEb3du
KTogTW92ZWQgcGVyZm9ybVNlYXJjaCBoZXJlIGZyb20gV2ViSW5zcGVjdG9yLnNlYXJjaEtleVVw
LgorICAgICAgICAoV2ViSW5zcGVjdG9yLnN0YXJ0RWRpdGluZy5lbGVtZW50LmhhbmRsZUtleUV2
ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5zdGFydEVkaXRpbmcpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzOgorICAgICAgICAoaXNFbnRlcktleSk6IEFk
ZGVkLiBDaGVjayBpZiBpbiBJTUUuCisKIDIwMDktMTAtMjQgIFNhbSBXZWluaWcgIDxzYW1Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpJbmRleDogV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwkocmV2aXNpb24gNTAwMjcp
CisrKyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTM3MywxMCArMzczLDkgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3Rv
dHlwZSA9IHsKIAogICAgIF9wcm9tcHRLZXlEb3duOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0g
ICAgICAgIHN3aXRjaCAoZXZlbnQua2V5SWRlbnRpZmllcikgewotICAgICAgICAgICAgY2FzZSAi
RW50ZXIiOgotICAgICAgICAgICAgICAgIHRoaXMuX2VudGVyS2V5UHJlc3NlZChldmVudCk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoaXNFbnRlcktleShldmVudCkpIHsK
KyAgICAgICAgICAgIHRoaXMuX2VudGVyS2V5UHJlc3NlZChldmVudCk7CisgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICB0aGlzLnByb21wdC5oYW5kbGVLZXlFdmVudChl
dmVudCk7CkluZGV4OiBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VRdWVyeVZp
ZXcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNl
UXVlcnlWaWV3LmpzCShyZXZpc2lvbiA1MDAyNykKKysrIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qcwkod29ya2luZyBjb3B5KQpAQCAtOTQsMTAgKzk0LDkg
QEAgV2ViSW5zcGVjdG9yLkRhdGFiYXNlUXVlcnlWaWV3LnByb3RvdHlwZQogCiAgICAgX3Byb21w
dEtleURvd246IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgc3dpdGNoIChldmVudC5r
ZXlJZGVudGlmaWVyKSB7Ci0gICAgICAgICAgICBjYXNlICJFbnRlciI6Ci0gICAgICAgICAgICAg
ICAgdGhpcy5fZW50ZXJLZXlQcmVzc2VkKGV2ZW50KTsKLSAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIGlmIChpc0VudGVyS2V5KGV2ZW50KSkgeworICAgICAgICAgICAgdGhpcy5fZW50
ZXJLZXlQcmVzc2VkKGV2ZW50KTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAg
ICAgICAgIHRoaXMucHJvbXB0LmhhbmRsZUtleUV2ZW50KGV2ZW50KTsKSW5kZXg6IFdlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwkocmV2aXNpb24gNTAwMjcpCisrKyBXZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00
NjIsNyArNDYyLDYgQEAgV2ViSW5zcGVjdG9yLmxvYWRlZCA9IGZ1bmN0aW9uKCkKIAogICAgIHZh
ciBzZWFyY2hGaWVsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2giKTsKICAgICBz
ZWFyY2hGaWVsZC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5zZWFyY2hLZXlEb3du
LmJpbmQodGhpcyksIGZhbHNlKTsKLSAgICBzZWFyY2hGaWVsZC5hZGRFdmVudExpc3RlbmVyKCJr
ZXl1cCIsIHRoaXMuc2VhcmNoS2V5VXAuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgIHNlYXJjaEZp
ZWxkLmFkZEV2ZW50TGlzdGVuZXIoInNlYXJjaCIsIHRoaXMucGVyZm9ybVNlYXJjaC5iaW5kKHRo
aXMpLCBmYWxzZSk7IC8vIHdoZW4gdGhlIHNlYXJjaCBpcyBlbXB0aWVkCiAKICAgICB0b29sYmFy
RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCB0aGlzLnRvb2xiYXJEcmFnU3Rh
cnQsIHRydWUpOwpAQCAtMTQ0MSwxOSArMTQ0MCw4IEBAIFdlYkluc3BlY3Rvci5hZGRNYWluRXZl
bnRMaXN0ZW5lcnMgPSBmdW4KIAogV2ViSW5zcGVjdG9yLnNlYXJjaEtleURvd24gPSBmdW5jdGlv
bihldmVudCkKIHsKLSAgICBpZiAoZXZlbnQua2V5SWRlbnRpZmllciAhPT0gIkVudGVyIikKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgLy8gQ2FsbCBwcmV2ZW50RGVmYXVsdCBzaW5jZSB0aGlzIHdh
cyB0aGUgRW50ZXIga2V5LiBUaGlzIHByZXZlbnRzIGEgInNlYXJjaCIgZXZlbnQKLSAgICAvLyBm
cm9tIGZpcmluZyBmb3Iga2V5IGRvd24uIFdlIGhhbmRsZSB0aGUgRW50ZXIga2V5IG9uIGtleSB1
cCBpbiBzZWFyY2hLZXlVcC4gVGhpcwotICAgIC8vIHN0b3BzIHBlcmZvcm1TZWFyY2ggZnJvbSBi
ZWluZyBjYWxsZWQgdHdpY2UgaW4gYSByb3cuCi0gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
LX0KLQotV2ViSW5zcGVjdG9yLnNlYXJjaEtleVVwID0gZnVuY3Rpb24oZXZlbnQpCi17Ci0gICAg
aWYgKGV2ZW50LmtleUlkZW50aWZpZXIgIT09ICJFbnRlciIpCi0gICAgICAgIHJldHVybjsKKyAg
ICBpZiAoIWlzRW50ZXJLZXkoZXZlbnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAv
LyBTZWxlY3QgYWxsIG9mIHRoZSB0ZXh0IHNvIHRoZSB1c2VyIGNhbiBlYXNpbHkgdHlwZSBhbiBl
bnRpcmVseSBuZXcgcXVlcnkuCiAgICAgZXZlbnQudGFyZ2V0LnNlbGVjdCgpOwpAQCAtMTQ2Miw2
ICsxNDUwLDEwIEBAIFdlYkluc3BlY3Rvci5zZWFyY2hLZXlVcCA9IGZ1bmN0aW9uKGV2ZW4KICAg
ICAvLyBwZXJmb3JtYW5jZSBpcyBwb29yIGJlY2F1c2Ugb2Ygc2VhcmNoaW5nIG9uIGV2ZXJ5IGtl
eS4gVGhlIHNlYXJjaCBmaWVsZCBoYXMKICAgICAvLyB0aGUgaW5jcmVtZW50YWwgYXR0cmlidXRl
IHNldCwgc28gd2Ugc3RpbGwgZ2V0IGluY3JlbWVudGFsIHNlYXJjaGVzLgogICAgIHRoaXMucGVy
Zm9ybVNlYXJjaChldmVudCk7CisgICAgCisgICAgLy8gQ2FsbCBwcmV2ZW50RGVmYXVsdCBzaW5j
ZSB0aGlzIHdhcyB0aGUgRW50ZXIga2V5LiBUaGlzIHByZXZlbnRzIGEgInNlYXJjaCIgZXZlbnQK
KyAgICAvLyBmcm9tIGZpcmluZyBmb3Iga2V5IGRvd24uIFRoaXMgc3RvcHMgcGVyZm9ybVNlYXJj
aCBmcm9tIGJlaW5nIGNhbGxlZCB0d2ljZSBpbiBhIHJvdy4KKyAgICBldmVudC5wcmV2ZW50RGVm
YXVsdCgpOwogfQogCiBXZWJJbnNwZWN0b3IucGVyZm9ybVNlYXJjaCA9IGZ1bmN0aW9uKGV2ZW50
KQpAQCAtMTY0MCw3ICsxNjMyLDcgQEAgV2ViSW5zcGVjdG9yLnN0YXJ0RWRpdGluZyA9IGZ1bmN0
aW9uKGVsZQogICAgICAgICBpZiAoZXZlbnQuaGFuZGxlZCkKICAgICAgICAgICAgIHJldHVybjsK
IAotICAgICAgICBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIkVudGVyIikgeworICAgICAg
ICBpZiAoaXNFbnRlcktleShldmVudCkpIHsKICAgICAgICAgICAgIGVkaXRpbmdDb21taXR0ZWQu
Y2FsbChlbGVtZW50KTsKICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAg
ICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMjcpIHsgLy8gRXNjYXBlIGtleQpJbmRl
eDogV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3V0aWxpdGllcy5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzCShyZXZpc2lvbiA1MDAy
NykKKysrIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTgxNywzICs4MTcsOCBAQCBTdHJpbmcuZm9ybWF0ID0gZnVuY3Rpb24oZm9ybWF0
LCBzdWJzdGl0CiAKICAgICByZXR1cm4geyBmb3JtYXR0ZWRSZXN1bHQ6IHJlc3VsdCwgdW51c2Vk
U3Vic3RpdHV0aW9uczogdW51c2VkU3Vic3RpdHV0aW9ucyB9OwogfQorCitmdW5jdGlvbiBpc0Vu
dGVyS2V5KGV2ZW50KSB7CisgICAgLy8gQ2hlY2sgaWYgaW4gSU1FLgorICAgIHJldHVybiBldmVu
dC5rZXlDb2RlICE9PSAyMjkgJiYgZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIkVudGVyIjsKK30K
</data>
<flag name="review"
          id="23276"
          type_id="1"
          status="+"
          setter="timothy"
    />
    <flag name="commit-queue"
          id="23277"
          type_id="3"
          status="-"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>