<?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>34014</bug_id>
          
          <creation_ts>2010-01-22 12:21:06 -0800</creation_ts>
          <short_desc>WebSocket wrapper can be collected even if events are pending</short_desc>
          <delta_ts>2010-02-02 17:36:27 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Fumitoshi Ukai">ukai</assigned_to>
          <cc>eric</cc>
    
    <cc>ukai</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>183745</commentid>
    <comment_count>0</comment_count>
      <attachid>47218</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-01-22 12:21:06 -0800</bug_when>
    <thetext>Created attachment 47218
test case

WebSocket inherits from ActiveDOMObject, but it never sets pending activity. As a result, it can be garbage collected even if has a network exchange ongoing, and is going to post events. This violates a basic JS principle - garbage collection should not affect program execution.

A fix for this would be to call setPendingActivity when WebSocket waits for data from the network (and match it with unsetPendingActivity).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185638</commentid>
    <comment_count>1</comment_count>
      <attachid>47655</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-01-28 16:26:00 -0800</bug_when>
    <thetext>Created attachment 47655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185991</commentid>
    <comment_count>2</comment_count>
      <attachid>47655</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-01-29 15:52:07 -0800</bug_when>
    <thetext>Comment on attachment 47655
Patch

+    LOG(Network, &quot;WebSocket %p scriptExecutionContext destroyed&quot;, this);

There may be too many logs long term - very useful when writing the code, but perhaps overly noisy when debugging other network-related issues.

We&apos;ll need to review the use of LOG() in WebSocket code as it matures.

I&apos;d love to see per-function comments - the addition of contextDestroyed() really needs an explanation of why it was needed. Actually, is it also a fix for bug 33248?

+    if (m_channel)
+        ActiveDOMObject::unsetPendingActivity(this);
+    m_channel = 0;

Accessing &quot;this&quot; after unsetPendingActivity seems dangerous. I don&apos;t see how this can cause issues with current code, but that&apos;s the call that lets the object get deleted eventually. I think that it would be good defensive programming to move access to m_channel up.

r=me. Please consider addressing the comments about ChangeLog and m_channel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186173</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-01-31 00:00:50 -0800</bug_when>
    <thetext>Actually, I do not think that contextDestroyed() is the right place for cleanup - ActiveDOMObject has a stop() method for this. Is there a reason you didn&apos;t override that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186263</commentid>
    <comment_count>4</comment_count>
      <attachid>47806</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-01-31 17:41:15 -0800</bug_when>
    <thetext>Created attachment 47806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186265</commentid>
    <comment_count>5</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-01-31 17:43:38 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 47655 [details])
&gt; +    LOG(Network, &quot;WebSocket %p scriptExecutionContext destroyed&quot;, this);
&gt; 
&gt; There may be too many logs long term - very useful when writing the code, but
&gt; perhaps overly noisy when debugging other network-related issues.
&gt; 
&gt; We&apos;ll need to review the use of LOG() in WebSocket code as it matures.
&gt; 
&gt; I&apos;d love to see per-function comments - the addition of contextDestroyed()
&gt; really needs an explanation of why it was needed. Actually, is it also a fix
&gt; for bug 33248?

I implemented stop() method to close the connection, and contextDestoryed() just checks the connection was already closed.
It seems this fixes for bug 33248 as well.  I&apos;ll write layout test for it.

&gt; 
&gt; +    if (m_channel)
&gt; +        ActiveDOMObject::unsetPendingActivity(this);
&gt; +    m_channel = 0;
&gt; 
&gt; Accessing &quot;this&quot; after unsetPendingActivity seems dangerous. I don&apos;t see how
&gt; this can cause issues with current code, but that&apos;s the call that lets the
&gt; object get deleted eventually. I think that it would be good defensive
&gt; programming to move access to m_channel up.

Thanks.  Fixed.

&gt; 
&gt; r=me. Please consider addressing the comments about ChangeLog and m_channel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186269</commentid>
    <comment_count>6</comment_count>
      <attachid>47806</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-01-31 17:56:32 -0800</bug_when>
    <thetext>Comment on attachment 47806
Patch

Doesn&apos;t stop() need to call unsetPendingActivity()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186272</commentid>
    <comment_count>7</comment_count>
      <attachid>47807</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-01-31 18:34:28 -0800</bug_when>
    <thetext>Created attachment 47807
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186273</commentid>
    <comment_count>8</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-01-31 18:35:44 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 47806 [details])
&gt; Doesn&apos;t stop() need to call unsetPendingActivity()?

Ah, I think it needs.
Could you take a look again, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186277</commentid>
    <comment_count>9</comment_count>
      <attachid>47807</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-01-31 18:53:00 -0800</bug_when>
    <thetext>Comment on attachment 47807
Patch

ok, r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186296</commentid>
    <comment_count>10</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-01-31 21:28:56 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 47807 [details])
&gt; ok, r=me

Thanks.
Anyway, I tried to land it, but found several crashes with release build on Mac Leopard.  No crash with debug build.
I investigated it and found malloc claims some error in debug build.

DumpRenderTree(82014,0xa0830720) malloc: *** error for object 0x1364cc60: Non-aligned pointer being freed (2)
*** set a breakpoint in malloc_error_break to debug

and the object 0x1364cc60 is got by tryFastMalloc for m_buffer in WebSocketChannel.
WebSocketChannel doesn&apos;t move the pointer returned by tryFastMalloc (it just copies data in the allocated area) and I confirmed that tryFastMalloc actually returned 0x1364cc60.
Is this malloc bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186353</commentid>
    <comment_count>11</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-01 03:35:51 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (From update of attachment 47807 [details] [details])
&gt; &gt; ok, r=me
&gt; 
&gt; Thanks.
&gt; Anyway, I tried to land it, but found several crashes with release build on Mac
&gt; Leopard.  No crash with debug build.
&gt; I investigated it and found malloc claims some error in debug build.
&gt; 
&gt; DumpRenderTree(82014,0xa0830720) malloc: *** error for object 0x1364cc60:
&gt; Non-aligned pointer being freed (2)
&gt; *** set a breakpoint in malloc_error_break to debug
&gt; 
&gt; and the object 0x1364cc60 is got by tryFastMalloc for m_buffer in
&gt; WebSocketChannel.
&gt; WebSocketChannel doesn&apos;t move the pointer returned by tryFastMalloc (it just
&gt; copies data in the allocated area) and I confirmed that tryFastMalloc actually
&gt; returned 0x1364cc60.
&gt; Is this malloc bug?

This could be fixed if we alloc 8-byte aligned size by tryFastMalloc for m_buffer in WebSocketChannel.
Is this contract of tryFastMalloc, so that client must request aligned size? (if so, should we assert this in tryFastMalloc?)
or is this tryFastMalloc bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186423</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-02-01 07:49:08 -0800</bug_when>
    <thetext>I have never heard of such issues with FastMalloc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186655</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-01 16:12:56 -0800</bug_when>
    <thetext>Attachment 47807 was posted by a committer and has review+, assigning to Fumitoshi Ukai for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186694</commentid>
    <comment_count>14</comment_count>
      <attachid>47878</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-01 16:42:05 -0800</bug_when>
    <thetext>Created attachment 47878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186695</commentid>
    <comment_count>15</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-01 16:44:58 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; I have never heard of such issues with FastMalloc.

Ah, I found a bug in the previous patch.
I need to protect WebSocketChannel in didReceivedData, because it would call some user callback which might close the connection and deallocate WebSocketChannel in it, but didReceivedData would call skipBuffer after that.

New patch fixed crash bugs found in previous patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187218</commentid>
    <comment_count>16</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-02 17:36:27 -0800</bug_when>
    <thetext>Committed r54267: &lt;http://trac.webkit.org/changeset/54267&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>47218</attachid>
            <date>2010-01-22 12:21:06 -0800</date>
            <delta_ts>2010-01-22 12:21:06 -0800</delta_ts>
            <desc>test case</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>670</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">PGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgo8cD5TaG91bGQgYWxlcnQgIlBBU1MiLjwvcD4KPHNjcmlw
dD4KaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOwogICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwp9CgpmdW5jdGlvbiBnYygpCnsKICAgIGlmICh3aW5kb3cuR0NDb250cm9sbGVyKQogICAg
ICAgIHJldHVybiBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOwoKICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDA7IGkrKykgeyAvLyA+IGZvcmNlIGdhcmJhZ2UgY29sbGVjdGlvbiAoRkYgcmVxdWly
ZXMgYWJvdXQgOUsgYWxsb2NhdGlvbnMgYmVmb3JlIGEgY29sbGVjdCkKICAgICAgICB2YXIgcyA9
IG5ldyBTdHJpbmcoImFiYyIpOwogICAgfQp9CgpmdW5jdGlvbiB0ZXN0KCkKewogICAgdmFyIHdz
ID0gbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvZWNo
byIpOwogICAgd3Mub25vcGVuID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdGhpcy5zZW5kKCJQQVNT
Iik7CiAgICB9CiAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihtc2cpIHsgYWxlcnQobXNnLmRh
dGEpIH0KICAgIHdzID0gbnVsbDsKICAgIGdjKCk7Cn0KPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47655</attachid>
            <date>2010-01-28 16:26:00 -0800</date>
            <delta_ts>2010-01-31 17:41:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34014-20100129092558.patch</filename>
            <type>text/plain</type>
            <size>4678</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2OWM2ZjUwLi4xYmU4ZDg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDEt
MjggIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViU29ja2V0IHdyYXBwZXIgY2FuIGJl
IGNvbGxlY3RlZCBldmVuIGlmIGV2ZW50cyBhcmUgcGVuZGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwMTQKKworICAgICAgICAqIHdlYnNvY2tl
dC90ZXN0cy93ZWJzb2NrZXQtcGVuZGluZy1hY3Rpdml0eS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYnNvY2tldC90ZXN0cy93ZWJzb2NrZXQtcGVuZGluZy1hY3Rpdml0eS5odG1s
OiBBZGRlZC4KKwogMjAxMC0wMS0yOCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21l
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvd2Vic29ja2V0LXBlbmRpbmctYWN0aXZpdHktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL3dlYnNvY2tldC1wZW5kaW5n
LWFjdGl2aXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li43MzQwYmMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L3dlYnNvY2tldC1wZW5kaW5nLWFjdGl2aXR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAK
K0FMRVJUOiBQQVNTCitTaG91bGQgYWxlcnQgIlBBU1MiLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2Vic29ja2V0L3Rlc3RzL3dlYnNvY2tldC1wZW5kaW5nLWFjdGl2aXR5Lmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvd2Vic29ja2V0LXBlbmRpbmctYWN0aXZpdHkuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmNiNmIzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL3dlYnNvY2tldC1wZW5kaW5nLWFjdGl2
aXR5Lmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPHA+U2hv
dWxkIGFsZXJ0ICJQQVNTIi48L3A+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGdjKCkK
K3sKKyAgICBpZiAod2luZG93LkdDQ29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuIEdDQ29udHJv
bGxlci5jb2xsZWN0KCk7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsg
Ly8gPiBmb3JjZSBnYXJiYWdlIGNvbGxlY3Rpb24gKEZGIHJlcXVpcmVzIGFib3V0IDlLIGFsbG9j
YXRpb25zIGJlZm9yZSBhIGNvbGxlY3QpCisgICAgICAgIHZhciBzID0gbmV3IFN0cmluZygiYWJj
Iik7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgd3MgPSBuZXcgV2Vi
U29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9lY2hvIik7CisgICAg
d3Mub25vcGVuID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuc2VuZCgiUEFTUyIpOworICAg
IH0KKyAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihtc2cpIHsKKyAgICAgICAgYWxlcnQobXNn
LmRhdGEpOworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KKyAgICB3cyA9
IG51bGw7CisgICAgZ2MoKTsKK30KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9XZWJDb3JlL0No
YW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRlNzhiYzcuLmI5ODQ3MjYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTAtMDEtMjggIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViU29j
a2V0IHNldHMgcGVuZGluZyBhY3Rpdml0eSB0byBhdm9pZCB1bmV4cGVjdGVkIEdDLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwMTQKKworICAgICAg
ICBUZXN0OiB3ZWJzb2NrZXQvdGVzdHMvd2Vic29ja2V0LXBlbmRpbmctYWN0aXZpdHkuaHRtbAor
CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0Ojpjb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6Y29udGV4
dERlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmRpZENsb3NlKToKKyAg
ICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldC5oOgorCiAyMDEwLTAxLTI4ICBTZWJhc3RpYW4g
RHLDtmdlICA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAgYi9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCAw
NDM1NDkwLi4wMWJlNzk5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0
LmNwcAorKysgYi9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtMTUxLDYgKzE1
MSw3IEBAIHZvaWQgV2ViU29ja2V0Ojpjb25uZWN0KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiBwcm90b2NvbCwgRXhjZXB0aW9uQ29kZSYKIAogICAgIG1fY2hhbm5lbCA9IFRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0aGlz
LCBtX3VybCwgbV9wcm90b2NvbCk7CiAgICAgbV9jaGFubmVsLT5jb25uZWN0KCk7CisgICAgQWN0
aXZlRE9NT2JqZWN0OjpzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiB9CiAKIGJvb2wgV2ViU29j
a2V0OjpzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0x
OTgsNiArMTk5LDE4IEBAIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIFdlYlNvY2tldDo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOwogfQogCit2b2lkIFdlYlNvY2tldDo6Y29udGV4dERlc3Ry
b3llZCgpCit7CisgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCBkZXN0cm95ZWQiLCB0aGlzKTsKKyAgICBpZiAobV9jaGFubmVsKSB7CisgICAgICAg
IG1fY2hhbm5lbC0+ZGlzY29ubmVjdCgpOworICAgICAgICBBY3RpdmVET01PYmplY3Q6OnVuc2V0
UGVuZGluZ0FjdGl2aXR5KHRoaXMpOworICAgIH0KKyAgICBtX2NoYW5uZWwgPSAwOworICAgIG1f
c3RhdGUgPSBDTE9TRUQ7CisgICAgQWN0aXZlRE9NT2JqZWN0Ojpjb250ZXh0RGVzdHJveWVkKCk7
Cit9CisKIHZvaWQgV2ViU29ja2V0OjpkaWRDb25uZWN0KCkKIHsKICAgICBMT0coTmV0d29yaywg
IldlYlNvY2tldCAlcCBkaWRDb25uZWN0IiwgdGhpcyk7CkBAIC0yMjQsNiArMjM3LDkgQEAgdm9p
ZCBXZWJTb2NrZXQ6OmRpZENsb3NlKCkKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldCAlcCBk
aWRDbG9zZSIsIHRoaXMpOwogICAgIG1fc3RhdGUgPSBDTE9TRUQ7CiAgICAgZGlzcGF0Y2hFdmVu
dChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbG9zZUV2ZW50LCBmYWxzZSwgZmFsc2UpKTsK
KyAgICBpZiAobV9jaGFubmVsKQorICAgICAgICBBY3RpdmVET01PYmplY3Q6OnVuc2V0UGVuZGlu
Z0FjdGl2aXR5KHRoaXMpOworICAgIG1fY2hhbm5lbCA9IDA7CiB9CiAKIEV2ZW50VGFyZ2V0RGF0
YSogV2ViU29ja2V0OjpldmVudFRhcmdldERhdGEoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93ZWJz
b2NrZXRzL1dlYlNvY2tldC5oIGIvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmluZGV4
IDE4ZTJiMjUuLmYwNjljOTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2Nr
ZXQuaAorKysgYi9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKQEAgLTgyLDYgKzgyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIFdlYlNvY2tldCogdG9XZWJT
b2NrZXQoKSB7IHJldHVybiB0aGlzOyB9CiAKICAgICAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7CisgICAgICAgIHZpcnR1
YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCk7CiAKICAgICAgICAgdXNpbmcgUmVmQ291bnRlZDxX
ZWJTb2NrZXQ+OjpyZWY7CiAgICAgICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViU29ja2V0Pjo6ZGVy
ZWY7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47806</attachid>
            <date>2010-01-31 17:41:15 -0800</date>
            <delta_ts>2010-01-31 18:34:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34014-20100201104113.patch</filename>
            <type>text/plain</type>
            <size>4908</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhOWVlMmMxLi42OGVlMzNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDEt
MzEgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViU29ja2V0IHdyYXBwZXIgY2FuIGJl
IGNvbGxlY3RlZCBldmVuIGlmIGV2ZW50cyBhcmUgcGVuZGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwMTQKKworICAgICAgICAqIHdlYnNvY2tl
dC90ZXN0cy93ZWJzb2NrZXQtcGVuZGluZy1hY3Rpdml0eS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYnNvY2tldC90ZXN0cy93ZWJzb2NrZXQtcGVuZGluZy1hY3Rpdml0eS5odG1s
OiBBZGRlZC4KKwogMjAxMC0wMS0yOCAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2Vic29ja2V0L3Rlc3RzL3dlYnNvY2tldC1wZW5kaW5nLWFjdGl2aXR5LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy93ZWJzb2NrZXQtcGVuZGluZy1hY3Rpdml0
eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzM0MGJj
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy93ZWJzb2Nr
ZXQtcGVuZGluZy1hY3Rpdml0eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitBTEVSVDog
UEFTUworU2hvdWxkIGFsZXJ0ICJQQVNTIi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnNv
Y2tldC90ZXN0cy93ZWJzb2NrZXQtcGVuZGluZy1hY3Rpdml0eS5odG1sIGIvTGF5b3V0VGVzdHMv
d2Vic29ja2V0L3Rlc3RzL3dlYnNvY2tldC1wZW5kaW5nLWFjdGl2aXR5Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZjYjZiMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy93ZWJzb2NrZXQtcGVuZGluZy1hY3Rpdml0eS5odG1s
CkBAIC0wLDAgKzEsMzQgQEAKKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxwPlNob3VsZCBhbGVy
dCAiUEFTUyIuPC9wPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBnYygpCit7CisgICAg
aWYgKHdpbmRvdy5HQ0NvbnRyb2xsZXIpCisgICAgICAgIHJldHVybiBHQ0NvbnRyb2xsZXIuY29s
bGVjdCgpOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKSB7IC8vID4gZm9y
Y2UgZ2FyYmFnZSBjb2xsZWN0aW9uIChGRiByZXF1aXJlcyBhYm91dCA5SyBhbGxvY2F0aW9ucyBi
ZWZvcmUgYSBjb2xsZWN0KQorICAgICAgICB2YXIgcyA9IG5ldyBTdHJpbmcoImFiYyIpOworICAg
IH0KK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCgi
d3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvZWNobyIpOworICAgIHdzLm9ub3Bl
biA9IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLnNlbmQoIlBBU1MiKTsKKyAgICB9CisgICAg
d3Mub25tZXNzYWdlID0gZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGFsZXJ0KG1zZy5kYXRhKTsK
KyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisgICAgd3MgPSBudWxsOwor
ICAgIGdjKCk7Cit9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ODJkYjk3Li5iOTEzMWMxIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBA
CisyMDEwLTAxLTMxICBGdW1pdG9zaGkgVWthaSAgPHVrYWlAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYlNvY2tldCBzZXQg
cGVuZGluZyBhY3Rpdml0eSB0byBhdm9pZCB1bmV4ZXBlY3RlZCBHQy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MDE0CisKKyAgICAgICAgVGVzdDog
d2Vic29ja2V0L3Rlc3RzL3dlYnNvY2tldC1wZW5kaW5nLWFjdGl2aXR5Lmh0bWwKKworICAgICAg
ICAqIHdlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tl
dDo6Y29ubmVjdCk6IHNldCBwZW5kaW5nIGFjdGl2aXR5IHVudGlsIGl0IHJlY2VpdmVzIGRpZENs
b3NlLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Ojpjb250ZXh0RGVzdHJveWVkKTogY2hl
Y2sgc29ja2V0IGlzIGFscmVhZHkgY2xvc2VkLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
OjpzdG9wKTogY2xvc2UgdGhlIGNvbm5lY3Rpb24gd2hlbiBpdCBzdG9wcy4KKyAgICAgICAgKFdl
YkNvcmU6OldlYlNvY2tldDo6ZGlkQ2xvc2UpOiB1bnNldCBwZW5kaW5nIGFjdGl2aXR5CisgICAg
ICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXQuaDoKKwogMjAxMC0wMS0yOCAgT2phbiBWYWZhaSAg
PG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9XZWJDb3JlL3dl
YnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCAwNDM1NDkwLi5hZDQ5MjE4IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9XZWJDb3JlL3dlYnNvY2tl
dHMvV2ViU29ja2V0LmNwcApAQCAtMTUxLDYgKzE1MSw3IEBAIHZvaWQgV2ViU29ja2V0Ojpjb25u
ZWN0KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgRXhjZXB0aW9uQ29k
ZSYKIAogICAgIG1fY2hhbm5lbCA9IFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUo
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0aGlzLCBtX3VybCwgbV9wcm90b2NvbCk7CiAgICAg
bV9jaGFubmVsLT5jb25uZWN0KCk7CisgICAgQWN0aXZlRE9NT2JqZWN0OjpzZXRQZW5kaW5nQWN0
aXZpdHkodGhpcyk7CiB9CiAKIGJvb2wgV2ViU29ja2V0OjpzZW5kKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0xOTgsNiArMTk5LDIzIEBAIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIFdlYlNvY2tldDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0CiAg
ICAgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogfQog
Cit2b2lkIFdlYlNvY2tldDo6Y29udGV4dERlc3Ryb3llZCgpCit7CisgICAgTE9HKE5ldHdvcmss
ICJXZWJTb2NrZXQgJXAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCBkZXN0cm95ZWQiLCB0aGlzKTsK
KyAgICBBU1NFUlQoIW1fY2hhbm5lbCk7CisgICAgQVNTRVJUKG1fc3RhdGUgPT0gQ0xPU0VEKTsK
KyAgICBBY3RpdmVET01PYmplY3Q6OmNvbnRleHREZXN0cm95ZWQoKTsKK30KKwordm9pZCBXZWJT
b2NrZXQ6OnN0b3AoKQoreworICAgIGlmIChtX2NoYW5uZWwpCisgICAgICAgIG1fY2hhbm5lbC0+
ZGlzY29ubmVjdCgpOworICAgIG1fY2hhbm5lbCA9IDA7CisgICAgbV9zdGF0ZSA9IENMT1NFRDsK
KyAgICBBY3RpdmVET01PYmplY3Q6OnN0b3AoKTsKK30KKwogdm9pZCBXZWJTb2NrZXQ6OmRpZENv
bm5lY3QoKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIGRpZENvbm5lY3QiLCB0
aGlzKTsKQEAgLTIyNCw2ICsyNDIsOSBAQCB2b2lkIFdlYlNvY2tldDo6ZGlkQ2xvc2UoKQogICAg
IExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIGRpZENsb3NlIiwgdGhpcyk7CiAgICAgbV9zdGF0
ZSA9IENMT1NFRDsKICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LmNsb3NlRXZlbnQsIGZhbHNlLCBmYWxzZSkpOworICAgIG1fY2hhbm5lbCA9IDA7CisgICAgaWYg
KG1fY2hhbm5lbCkKKyAgICAgICAgQWN0aXZlRE9NT2JqZWN0Ojp1bnNldFBlbmRpbmdBY3Rpdml0
eSh0aGlzKTsKIH0KIAogRXZlbnRUYXJnZXREYXRhKiBXZWJTb2NrZXQ6OmV2ZW50VGFyZ2V0RGF0
YSgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmggYi9XZWJDb3Jl
L3dlYnNvY2tldHMvV2ViU29ja2V0LmgKaW5kZXggMThlMmIyNS4uYzcyZGJiZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCisrKyBiL1dlYkNvcmUvd2Vic29ja2V0
cy9XZWJTb2NrZXQuaApAQCAtODIsNiArODIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZpcnR1YWwgV2ViU29ja2V0KiB0b1dlYlNvY2tldCgpIHsgcmV0dXJuIHRoaXM7IH0KIAog
ICAgICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIHN0b3AoKTsKIAogICAgICAgICB1c2luZyBSZWZDb3VudGVk
PFdlYlNvY2tldD46OnJlZjsKICAgICAgICAgdXNpbmcgUmVmQ291bnRlZDxXZWJTb2NrZXQ+Ojpk
ZXJlZjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47807</attachid>
            <date>2010-01-31 18:34:28 -0800</date>
            <delta_ts>2010-02-01 16:41:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34014-20100201113426.patch</filename>
            <type>text/plain</type>
            <size>5064</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiM2I1NmIzLi4yZDQ5OGFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDEt
MzEgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViU29ja2V0IHdyYXBwZXIgY2FuIGJl
IGNvbGxlY3RlZCBldmVuIGlmIGV2ZW50cyBhcmUgcGVuZGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwMTQKKworICAgICAgICAqIHdlYnNvY2tl
dC90ZXN0cy93ZWJzb2NrZXQtcGVuZGluZy1hY3Rpdml0eS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYnNvY2tldC90ZXN0cy93ZWJzb2NrZXQtcGVuZGluZy1hY3Rpdml0eS5odG1s
OiBBZGRlZC4KKwogMjAxMC0wMS0zMSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvd2Vic29ja2V0LXBlbmRpbmctYWN0aXZpdHktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL3dlYnNvY2tldC1wZW5kaW5nLWFjdGl2
aXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MzQw
YmMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL3dlYnNv
Y2tldC1wZW5kaW5nLWFjdGl2aXR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK0FMRVJU
OiBQQVNTCitTaG91bGQgYWxlcnQgIlBBU1MiLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL3dlYnNvY2tldC1wZW5kaW5nLWFjdGl2aXR5Lmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJzb2NrZXQvdGVzdHMvd2Vic29ja2V0LXBlbmRpbmctYWN0aXZpdHkuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmNiNmIzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL3dlYnNvY2tldC1wZW5kaW5nLWFjdGl2aXR5Lmh0
bWwKQEAgLTAsMCArMSwzNCBAQAorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPHA+U2hvdWxkIGFs
ZXJ0ICJQQVNTIi48L3A+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGdjKCkKK3sKKyAg
ICBpZiAod2luZG93LkdDQ29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuIEdDQ29udHJvbGxlci5j
b2xsZWN0KCk7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsgLy8gPiBm
b3JjZSBnYXJiYWdlIGNvbGxlY3Rpb24gKEZGIHJlcXVpcmVzIGFib3V0IDlLIGFsbG9jYXRpb25z
IGJlZm9yZSBhIGNvbGxlY3QpCisgICAgICAgIHZhciBzID0gbmV3IFN0cmluZygiYWJjIik7Cisg
ICAgfQorfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0
KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9lY2hvIik7CisgICAgd3Mub25v
cGVuID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuc2VuZCgiUEFTUyIpOworICAgIH0KKyAg
ICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihtc2cpIHsKKyAgICAgICAgYWxlcnQobXNnLmRhdGEp
OworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KKyAgICB3cyA9IG51bGw7
CisgICAgZ2MoKTsKK30KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI0MGY2OWMuLjQzZjFkNGEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTAtMDEtMzEgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViU29ja2V0IHNl
dCBwZW5kaW5nIGFjdGl2aXR5IHRvIGF2b2lkIHVuZXhwZWN0ZWQgR0MuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDAxNAorCisgICAgICAgIFRlc3Q6
IHdlYnNvY2tldC90ZXN0cy93ZWJzb2NrZXQtcGVuZGluZy1hY3Rpdml0eS5odG1sCisKKyAgICAg
ICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2Nr
ZXQ6OmNvbm5lY3QpOiBzZXQgcGVuZGluZyBhY3Rpdml0eSB1bnRpbCBpdCByZWNlaXZlcyBkaWRD
bG9zZS4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6Y29udGV4dERlc3Ryb3llZCk6IGNo
ZWNrIHNvY2tldCBpcyBhbHJlYWR5IGNsb3NlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tl
dDo6c3RvcCk6IGNsb3NlIHRoZSBjb25uZWN0aW9uIGFuZCB1bnNldCBwZW5kaW5nIGFjdGl2aXR5
IHdoZW4gaXQgc3RvcHMuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmRpZENsb3NlKTog
dW5zZXQgcGVuZGluZyBhY3Rpdml0eS4KKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldC5o
OgorCiAyMDEwLTAxLTMxICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwIGIvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5k
ZXggMDQzNTQ5MC4uZjUwZGM1YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5jcHAKKysrIGIvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKQEAgLTE1MSw2
ICsxNTEsNyBAQCB2b2lkIFdlYlNvY2tldDo6Y29ubmVjdChjb25zdCBLVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgcHJvdG9jb2wsIEV4Y2VwdGlvbkNvZGUmCiAKICAgICBtX2NoYW5uZWwgPSBUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
dGhpcywgbV91cmwsIG1fcHJvdG9jb2wpOwogICAgIG1fY2hhbm5lbC0+Y29ubmVjdCgpOworICAg
IEFjdGl2ZURPTU9iamVjdDo6c2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOwogfQogCiBib29sIFdl
YlNvY2tldDo6c2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQpA
QCAtMTk4LDYgKzE5OSwyNiBAQCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBXZWJTb2NrZXQ6OnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogICAgIHJldHVybiBBY3RpdmVET01PYmplY3Q6
OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKIH0KIAordm9pZCBXZWJTb2NrZXQ6OmNvbnRleHRE
ZXN0cm95ZWQoKQoreworICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQgZGVzdHJveWVkIiwgdGhpcyk7CisgICAgQVNTRVJUKCFtX2NoYW5uZWwpOwor
ICAgIEFTU0VSVChtX3N0YXRlID09IENMT1NFRCk7CisgICAgQWN0aXZlRE9NT2JqZWN0Ojpjb250
ZXh0RGVzdHJveWVkKCk7Cit9CisKK3ZvaWQgV2ViU29ja2V0OjpzdG9wKCkKK3sKKyAgICBib29s
IHBlbmRpbmcgPSBoYXNQZW5kaW5nQWN0aXZpdHkoKTsKKyAgICBpZiAobV9jaGFubmVsKQorICAg
ICAgICBtX2NoYW5uZWwtPmRpc2Nvbm5lY3QoKTsKKyAgICBtX2NoYW5uZWwgPSAwOworICAgIG1f
c3RhdGUgPSBDTE9TRUQ7CisgICAgQWN0aXZlRE9NT2JqZWN0OjpzdG9wKCk7CisgICAgaWYgKHBl
bmRpbmcpCisgICAgICAgIEFjdGl2ZURPTU9iamVjdDo6dW5zZXRQZW5kaW5nQWN0aXZpdHkodGhp
cyk7Cit9CisKIHZvaWQgV2ViU29ja2V0OjpkaWRDb25uZWN0KCkKIHsKICAgICBMT0coTmV0d29y
aywgIldlYlNvY2tldCAlcCBkaWRDb25uZWN0IiwgdGhpcyk7CkBAIC0yMjQsNiArMjQ1LDkgQEAg
dm9pZCBXZWJTb2NrZXQ6OmRpZENsb3NlKCkKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldCAl
cCBkaWRDbG9zZSIsIHRoaXMpOwogICAgIG1fc3RhdGUgPSBDTE9TRUQ7CiAgICAgZGlzcGF0Y2hF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbG9zZUV2ZW50LCBmYWxzZSwgZmFsc2Up
KTsKKyAgICBtX2NoYW5uZWwgPSAwOworICAgIGlmIChoYXNQZW5kaW5nQWN0aXZpdHkoKSkKKyAg
ICAgICAgQWN0aXZlRE9NT2JqZWN0Ojp1bnNldFBlbmRpbmdBY3Rpdml0eSh0aGlzKTsKIH0KIAog
RXZlbnRUYXJnZXREYXRhKiBXZWJTb2NrZXQ6OmV2ZW50VGFyZ2V0RGF0YSgpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmggYi9XZWJDb3JlL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmgKaW5kZXggMThlMmIyNS4uYzcyZGJiZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS93ZWJz
b2NrZXRzL1dlYlNvY2tldC5oCisrKyBiL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaApA
QCAtODIsNiArODIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgV2Vi
U29ja2V0KiB0b1dlYlNvY2tldCgpIHsgcmV0dXJuIHRoaXM7IH0KIAogICAgICAgICB2aXJ0dWFs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsK
KyAgICAgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKTsKKyAgICAgICAgdmlydHVh
bCB2b2lkIHN0b3AoKTsKIAogICAgICAgICB1c2luZyBSZWZDb3VudGVkPFdlYlNvY2tldD46OnJl
ZjsKICAgICAgICAgdXNpbmcgUmVmQ291bnRlZDxXZWJTb2NrZXQ+OjpkZXJlZjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47878</attachid>
            <date>2010-02-01 16:42:05 -0800</date>
            <delta_ts>2010-02-01 22:01:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34014-20100202094203.patch</filename>
            <type>text/plain</type>
            <size>5912</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3Yzc2MDhiLi44ZmIzZmQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDIt
MDEgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViU29ja2V0IHdyYXBwZXIgY2FuIGJl
IGNvbGxlY3RlZCBldmVuIGlmIGV2ZW50cyBhcmUgcGVuZGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwMTQKKworICAgICAgICAqIHdlYnNvY2tl
dC90ZXN0cy93ZWJzb2NrZXQtcGVuZGluZy1hY3Rpdml0eS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYnNvY2tldC90ZXN0cy93ZWJzb2NrZXQtcGVuZGluZy1hY3Rpdml0eS5odG1s
OiBBZGRlZC4KKwogMjAxMC0wMi0wMSAgQnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgT2xpdmVyIEh1bnQuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvd2Vic29ja2V0LXBlbmRpbmctYWN0aXZp
dHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL3dlYnNvY2tldC1w
ZW5kaW5nLWFjdGl2aXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi43MzQwYmMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vic29ja2V0
L3Rlc3RzL3dlYnNvY2tldC1wZW5kaW5nLWFjdGl2aXR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDIgQEAKK0FMRVJUOiBQQVNTCitTaG91bGQgYWxlcnQgIlBBU1MiLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL3dlYnNvY2tldC1wZW5kaW5nLWFjdGl2aXR5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvd2Vic29ja2V0LXBlbmRpbmctYWN0aXZpdHku
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmNiNmIzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL3dlYnNvY2tldC1wZW5kaW5n
LWFjdGl2aXR5Lmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgor
PHA+U2hvdWxkIGFsZXJ0ICJQQVNTIi48L3A+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9u
IGdjKCkKK3sKKyAgICBpZiAod2luZG93LkdDQ29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuIEdD
Q29udHJvbGxlci5jb2xsZWN0KCk7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyBp
KyspIHsgLy8gPiBmb3JjZSBnYXJiYWdlIGNvbGxlY3Rpb24gKEZGIHJlcXVpcmVzIGFib3V0IDlL
IGFsbG9jYXRpb25zIGJlZm9yZSBhIGNvbGxlY3QpCisgICAgICAgIHZhciBzID0gbmV3IFN0cmlu
ZygiYWJjIik7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgd3MgPSBu
ZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9lY2hvIik7
CisgICAgd3Mub25vcGVuID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuc2VuZCgiUEFTUyIp
OworICAgIH0KKyAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihtc2cpIHsKKyAgICAgICAgYWxl
cnQobXNnLmRhdGEpOworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KKyAg
ICB3cyA9IG51bGw7CisgICAgZ2MoKTsKK30KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDc3OGVhMTUuLjU1ODdiOGUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMDItMDEgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2ViU29ja2V0IHNldCBwZW5kaW5nIGFjdGl2aXR5IHRvIGF2b2lkIHVuZXhwZWN0ZWQgR0MuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDAxNAorCisg
ICAgICAgIFRlc3Q6IHdlYnNvY2tldC90ZXN0cy93ZWJzb2NrZXQtcGVuZGluZy1hY3Rpdml0eS5o
dG1sCisKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJTb2NrZXQ6OmNvbm5lY3QpOiBzZXQgcGVuZGluZyBhY3Rpdml0eSB1bnRpbCBpdCBy
ZWNlaXZlcyBkaWRDbG9zZS4gCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmNvbnRleHRE
ZXN0cm95ZWQpOiBjaGVjayBzb2NrZXQgaXMgYWxyZWFkeSBjbG9zZWQuCisgICAgICAgIChXZWJD
b3JlOjpXZWJTb2NrZXQ6OnN0b3ApOiBjbG9zZSB0aGUgY29ubmVjdGlvbiBhbmQgdW5zZXQgcGVu
ZGluZyBhY3Rpdml0eSB3aGVuIGl0IHN0b3BzLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
OjpkaWRDbG9zZSk6IHVuc2V0IHBlbmRpbmcgYWN0aXZpdHkuCisgICAgICAgICogd2Vic29ja2V0
cy9XZWJTb2NrZXQuaDoKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZURhdGEpOiBw
cm90ZWN0IHRoaXMgd2hpbGUgaXQgcHJvY2Vzc2VzIHJlY2VpdmVkIGRhdGEuCisKIDIwMTAtMDEt
MjcgIE1hdHQgUGVycnkgIDxtcGNvbXBsZXRlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJT
b2NrZXQuY3BwIGIvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggMDQzNTQ5
MC4uZjUwZGM1YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAK
KysrIGIvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKQEAgLTE1MSw2ICsxNTEsNyBA
QCB2b2lkIFdlYlNvY2tldDo6Y29ubmVjdChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
cHJvdG9jb2wsIEV4Y2VwdGlvbkNvZGUmCiAKICAgICBtX2NoYW5uZWwgPSBUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgdGhpcywgbV91
cmwsIG1fcHJvdG9jb2wpOwogICAgIG1fY2hhbm5lbC0+Y29ubmVjdCgpOworICAgIEFjdGl2ZURP
TU9iamVjdDo6c2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOwogfQogCiBib29sIFdlYlNvY2tldDo6
c2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMTk4LDYg
KzE5OSwyNiBAQCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBXZWJTb2NrZXQ6OnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSBjb25zdAogICAgIHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsKIH0KIAordm9pZCBXZWJTb2NrZXQ6OmNvbnRleHREZXN0cm95ZWQo
KQoreworICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQgZGVzdHJveWVkIiwgdGhpcyk7CisgICAgQVNTRVJUKCFtX2NoYW5uZWwpOworICAgIEFTU0VS
VChtX3N0YXRlID09IENMT1NFRCk7CisgICAgQWN0aXZlRE9NT2JqZWN0Ojpjb250ZXh0RGVzdHJv
eWVkKCk7Cit9CisKK3ZvaWQgV2ViU29ja2V0OjpzdG9wKCkKK3sKKyAgICBib29sIHBlbmRpbmcg
PSBoYXNQZW5kaW5nQWN0aXZpdHkoKTsKKyAgICBpZiAobV9jaGFubmVsKQorICAgICAgICBtX2No
YW5uZWwtPmRpc2Nvbm5lY3QoKTsKKyAgICBtX2NoYW5uZWwgPSAwOworICAgIG1fc3RhdGUgPSBD
TE9TRUQ7CisgICAgQWN0aXZlRE9NT2JqZWN0OjpzdG9wKCk7CisgICAgaWYgKHBlbmRpbmcpCisg
ICAgICAgIEFjdGl2ZURPTU9iamVjdDo6dW5zZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7Cit9CisK
IHZvaWQgV2ViU29ja2V0OjpkaWRDb25uZWN0KCkKIHsKICAgICBMT0coTmV0d29yaywgIldlYlNv
Y2tldCAlcCBkaWRDb25uZWN0IiwgdGhpcyk7CkBAIC0yMjQsNiArMjQ1LDkgQEAgdm9pZCBXZWJT
b2NrZXQ6OmRpZENsb3NlKCkKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldCAlcCBkaWRDbG9z
ZSIsIHRoaXMpOwogICAgIG1fc3RhdGUgPSBDTE9TRUQ7CiAgICAgZGlzcGF0Y2hFdmVudChFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbG9zZUV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKKyAgICBt
X2NoYW5uZWwgPSAwOworICAgIGlmIChoYXNQZW5kaW5nQWN0aXZpdHkoKSkKKyAgICAgICAgQWN0
aXZlRE9NT2JqZWN0Ojp1bnNldFBlbmRpbmdBY3Rpdml0eSh0aGlzKTsKIH0KIAogRXZlbnRUYXJn
ZXREYXRhKiBXZWJTb2NrZXQ6OmV2ZW50VGFyZ2V0RGF0YSgpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3dlYnNvY2tldHMvV2ViU29ja2V0LmggYi9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmgK
aW5kZXggMThlMmIyNS4uYzcyZGJiZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dl
YlNvY2tldC5oCisrKyBiL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaApAQCAtODIsNiAr
ODIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgV2ViU29ja2V0KiB0
b1dlYlNvY2tldCgpIHsgcmV0dXJuIHRoaXM7IH0KIAogICAgICAgICB2aXJ0dWFsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKKyAgICAgICAg
dmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHN0
b3AoKTsKIAogICAgICAgICB1c2luZyBSZWZDb3VudGVkPFdlYlNvY2tldD46OnJlZjsKICAgICAg
ICAgdXNpbmcgUmVmQ291bnRlZDxXZWJTb2NrZXQ+OjpkZXJlZjsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1dlYkNvcmUvd2Vic29ja2V0cy9X
ZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCA1YzBmNGMzLi5kZjY2YzE0IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvV2ViQ29yZS93ZWJz
b2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0xNDEsNiArMTQxLDcgQEAgdm9pZCBXZWJT
b2NrZXRDaGFubmVsOjpkaWRDbG9zZShTb2NrZXRTdHJlYW1IYW5kbGUqIGhhbmRsZSkKIHZvaWQg
V2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZURhdGEoU29ja2V0U3RyZWFtSGFuZGxlKiBoYW5k
bGUsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW4pCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJT
b2NrZXRDaGFubmVsICVwIGRpZFJlY2VpdmVEYXRhICVkIiwgdGhpcywgbGVuKTsKKyAgICBSZWZQ
dHI8V2ViU29ja2V0Q2hhbm5lbD4gcHJvdGVjdCh0aGlzKTsgLy8gVGhlIGNsaWVudCBjYW4gY2xv
c2UgdGhlIGNoYW5uZWwsIHBvdGVudGlhbGx5IHJlbW92aW5nIHRoZSBsYXN0IHJlZmVyZW5jZS4K
ICAgICBBU1NFUlQoaGFuZGxlID09IG1faGFuZGxlKTsKICAgICBpZiAoIWFwcGVuZFRvQnVmZmVy
KGRhdGEsIGxlbikpIHsKICAgICAgICAgaGFuZGxlLT5jbG9zZSgpOwo=
</data>
<flag name="review"
          id="30439"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>