<?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>30505</bug_id>
          
          <creation_ts>2009-10-19 01:29:20 -0700</creation_ts>
          <short_desc>Counters aren&apos;t updated when a new counter-increment is added</short_desc>
          <delta_ts>2009-12-09 18:32:05 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>11031</dup_id>
          
          <bug_file_loc>http://shinh.skr.jp/t/add-increment.html </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="Shinichiro Hamaji">hamaji</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>155610</commentid>
    <comment_count>0</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-19 01:29:20 -0700</bug_when>
    <thetext>This is the first step of Bug 23262.

The values of counters aren&apos;t updated when a new counter-increment element is added. Firefox and IE handle the test URL correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155612</commentid>
    <comment_count>1</comment_count>
      <attachid>41401</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-19 01:35:27 -0700</bug_when>
    <thetext>Created attachment 41401
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155865</commentid>
    <comment_count>2</comment_count>
      <attachid>41401</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-19 13:39:18 -0700</bug_when>
    <thetext>Comment on attachment 41401
Patch v1

Shouldn&apos;t this be dumpAsText?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156090</commentid>
    <comment_count>3</comment_count>
      <attachid>41401</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-20 00:52:38 -0700</bug_when>
    <thetext>Comment on attachment 41401
Patch v1

As same as tests of Bug 23262, innerText doesn&apos;t output counter values.

I looked how innerText works a bit and found it is not easy to change innerText to output counter values. innerText uses TextIterator to gather texts and TextIterator doesn&apos;t care about generated contents like counters.

Another idea is adding layoutTestController.dumpCounterNodes(). I think this is reasonable. I&apos;ll file another bug. For now, I remove review? bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159450</commentid>
    <comment_count>4</comment_count>
      <attachid>42237</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-30 14:39:16 -0700</bug_when>
    <thetext>Created attachment 42237
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159454</commentid>
    <comment_count>5</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-30 14:40:20 -0700</bug_when>
    <thetext>OK, as now we have counterValueForElementById, we can test this with dumpAsText.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159466</commentid>
    <comment_count>6</comment_count>
      <attachid>42237</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-30 14:52:33 -0700</bug_when>
    <thetext>Comment on attachment 42237
Patch v2

&gt; +void RenderCounter::addCounterNodes(RenderObject* object) {

Brace needs to be on the following line, not the same line.

I don’t understand the high level concept of this patch enough to review it. I believe the idea here is that it&apos;s important to explicitly create some counter nodes in certain cases. So you added a function that calls the counter function in RenderCounter.cpp because of its side effect. But I don&apos;t understand why creating more counter nodes is the way to fix a bug.

What is the nature of the bug?

Further, what does isRooted have to do with any of this? It seems clearly wrong to be walking up the entire render tree looking for a RenderView in this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159901</commentid>
    <comment_count>7</comment_count>
      <attachid>42339</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-11-02 12:53:32 -0800</bug_when>
    <thetext>Created attachment 42339
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159903</commentid>
    <comment_count>8</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-11-02 12:56:40 -0800</bug_when>
    <thetext>I&apos;ll describe this issue and why I chose this way.

Now, counter values are calculated when their originalText() are called. originalText() calls counter() and it traverses the tree in ascending order to update counter values. This approach works if there are no dynamic changes. 

However, if a new increment element (say [I]) is inserted before an RenderCounter element (say [A]) and no other RenderCounter are inserted after the increment element, the counter value of [A] won&apos;t be updated because originalText() for [A] doesn&apos;t trigger counter() and it just uses the value of counter node which are already constructed.

(Note that if another RenderCounter (say [B]) is added after [I], [B]&apos;s originalText() triggers counter(), notices [I] is added, creates a counter node for [I], and updates all counter values including [A]&apos;s)

I came up with two solutions for this:

- Insert counter nodes when counter elements are added and this addition will update the values of descendants if needed. This is what my patch is doing.
- When a counter element is added, mark descendants of the added element as dirty and make the counter values to be updated in the next call of originalText(). If we can mark descendants as dirty, I think we can update the values of counters when we mark. That&apos;s why I didn&apos;t choose this way.

Of course, there may be another better way which fixes this issue. If someone kindly suggest better ways, I&apos;m happy to fix my patch.

As for extra counter nodes, my patch doesn&apos;t create extra counter nodes actually. The counter() function doesn&apos;t create new counter nodes if corresponding counter node already exists.

&gt; Further, what does isRooted have to do with any of this? It seems clearly wrong
&gt; to be walking up the entire render tree looking for a RenderView in this code.

Ah, I think !isAnonymous() is much better here. What I want to do is

- for increment and reset, we create counter nodes when these nodes are added
- for content:counter(...), we create counter nodes when their originalText is called(). Because :before and :after are not connected to the root node in RenderObject::addChild(), we cannot create counter nodes for them with correct values here. Deferring counter node creation for them are OK because 1. they don&apos;t change the values of descendants as they aren&apos;t increment nor reset 2. originalText() will be called for them and their values will be calculated eventually.

I used isRooted() because of the second item, but I&apos;ve noticed !isAnonymous() is sufficient for this purpose so I changed to use it.

&gt; Brace needs to be on the following line, not the same line.

Sorry for this mistake... I often forgot this rule (and forgot to use check-webkit-style as well)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161012</commentid>
    <comment_count>9</comment_count>
      <attachid>42339</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-05 16:29:03 -0800</bug_when>
    <thetext>Comment on attachment 42339
Patch v3

It seems more elegant to me to delete the possibly-invalid counter nodes than to create new counter nodes just because something is going into the tree. The counter value may never be used and it seems unfortunate to compute its value explicitly instead of lazily. That having been said, the fix seems OK to me and won&apos;t have any effect on pages not using counters, so I&apos;ll say r=me

I think the name of the &quot;counter&quot; function, which I named, is extremely weak. It&apos;s really unclear you would call it to create a counter for its side effects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161574</commentid>
    <comment_count>10</comment_count>
      <attachid>42751</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-11-09 07:57:36 -0800</bug_when>
    <thetext>Created attachment 42751
Patch v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161579</commentid>
    <comment_count>11</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-11-09 08:13:11 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 42339 [details])
&gt; It seems more elegant to me to delete the possibly-invalid counter nodes than
&gt; to create new counter nodes just because something is going into the tree. The
&gt; counter value may never be used and it seems unfortunate to compute its value
&gt; explicitly instead of lazily. That having been said, the fix seems OK to me and
&gt; won&apos;t have any effect on pages not using counters, so I&apos;ll say r=me

OK, I uploaded another patch with invalidating approach. Indeed, this approach would be faster than the previous approach for usual (no-dynamic-change) cases. Thank you for the comment!
 
&gt; I think the name of the &quot;counter&quot; function, which I named, is extremely weak.
&gt; It&apos;s really unclear you would call it to create a counter for its side effects.

Agreed. I&apos;d like to create another patch to fix this naming, but I couldn&apos;t figure out a good name for this function. Do you have any good idea for this? createCounterNodeIfNeeded or something like this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161629</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-09 10:07:41 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Agreed. I&apos;d like to create another patch to fix this naming, but I couldn&apos;t
&gt; figure out a good name for this function. Do you have any good idea for this?
&gt; createCounterNodeIfNeeded or something like this?

I think just calling it create without the &quot;if needed&quot; may be OK even if it doesn&apos;t always create a new counter node. To avoid the &quot;create&quot; rule for object ownership, we should probably call it makeCounterNode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161630</commentid>
    <comment_count>13</comment_count>
      <attachid>42751</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-09 10:08:51 -0800</bug_when>
    <thetext>Comment on attachment 42751
Patch v4

Better. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161969</commentid>
    <comment_count>14</comment_count>
      <attachid>42751</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-11-10 00:08:57 -0800</bug_when>
    <thetext>Comment on attachment 42751
Patch v4

Putting cq- as this patch cannot be committed until Bug 31286 is resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163865</commentid>
    <comment_count>15</comment_count>
      <attachid>42751</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-11-16 00:10:37 -0800</bug_when>
    <thetext>Comment on attachment 42751
Patch v4

Rejecting patch 42751 from commit-queue.

Failed to run &quot;WebKitTools/Scripts/build-webkit&quot; exit_code: 1
Last 500 characters of output:
gfzddrsaowyo/WebCorePrefix.h -c /Users/hamaji/GitKit/WebCore/xml/XMLHttpRequest.cpp -o /Users/hamaji/GitKit/WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/i386/XMLHttpRequest.o
** BUILD FAILED **

The following build commands failed:
WebCore:
	Distributed-CompileC /Users/hamaji/GitKit/WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/i386/RenderCounter.o /Users/hamaji/GitKit/WebCore/rendering/RenderCounter.cpp normal i386 c++ com.apple.compilers.gcc.4_2
(1 failure)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163878</commentid>
    <comment_count>16</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-11-16 00:40:46 -0800</bug_when>
    <thetext>Conflicted with Bug 31213. As it seems Carol is also working for this issue, I&apos;ll discuss on Bug 11031.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163965</commentid>
    <comment_count>17</comment_count>
      <attachid>43300</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-11-16 05:37:11 -0800</bug_when>
    <thetext>Created attachment 43300
Resolving conflict for r50960</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163975</commentid>
    <comment_count>18</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-11-16 06:02:30 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; Created an attachment (id=43300) [details]
&gt; Resolving conflict for r50960

I added a comment on this patch in Bug 11031. I don&apos;t set the review? bit for this patch until the discussion in Bug 11031 finishes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170159</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-09 14:03:10 -0800</bug_when>
    <thetext>PIng?  Is Patch v4 waiting to be landed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170278</commentid>
    <comment_count>20</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-12-09 18:32:05 -0800</bug_when>
    <thetext>Sorry, this bug will be fixed by Carol.

*** This bug has been marked as a duplicate of bug 11031 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41401</attachid>
            <date>2009-10-19 01:35:27 -0700</date>
            <delta_ts>2009-10-30 14:39:10 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-30505-20091019173524.patch</filename>
            <type>text/plain</type>
            <size>13790</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3NzJkM2Q4Li4zMGViNDIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMTAt
MTkgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3VudGVycyBhcmVuJ3QgdXBk
YXRlZCB3aGVuIGEgbmV3IGNvdW50ZXItaW5jcmVtZW50IGlzIGFkZGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDUwNQorCisgICAgICAgICogZmFz
dC9jc3MvY291bnRlcnMvYWRkLWluY3JlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY3NzL2NvdW50ZXJzL2FkZC1pbmNyZW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL2FkZC1pbmNyZW1lbnQtZXhwZWN0ZWQu
Y2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVy
cy9hZGQtaW5jcmVtZW50LWV4cGVjdGVkLnBuZzogQWRkZWQuCisKIDIwMDktMTAtMTggIEVyaWsg
QXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFt
IEJhcnRoLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvYWRkLWlu
Y3JlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZGQt
aW5jcmVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5iM2ZkMzI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRl
cnMvYWRkLWluY3JlbWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMzEgQEAKK2xheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAor
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MjU4CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDgwMHgyNTgKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwyMCkgc2l6ZSA3ODR4
MjMwCisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4NjAKKyAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDUpIHNpemUgNzYweDUwCisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsNSkgd2lkdGggNzYwOiAiVGhlIGZvbGxvd2luZyBmaXZlIGxpbmVzIHNob3VsZCBi
ZSB0aGUiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMzUpIHdpZHRoIDEwMDogInNhbWU6Igor
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsODApIHNpemUgNzg0eDMwCisgICAgICAgIFJl
bmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVySW5saW5l
IHtTUEFOfSBhdCAoMCwwKSBzaXplIDQweDIwCisgICAgICAgICAgUmVuZGVySW5saW5lIChnZW5l
cmF0ZWQpIGF0ICgwLDApIHNpemUgNDB4MjAKKyAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQg
KDAsNSkgc2l6ZSAyMHgyMAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw1KSB3aWR0aCAy
MDogIm4iCisgICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgyMCw1KSBzaXplIDIweDIwCisgICAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICgyMCw1KSB3aWR0aCAyMDogIi0iCisgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoNDAsNSkgc2l6ZSAyMHgyMAorICAgICAgICAgIHRleHQgcnVuIGF0
ICg0MCw1KSB3aWR0aCAyMDogIiAiCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAs
MCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgw
CisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0MHgyMAorICAgICAg
ICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDQweDIwCisgICAgICAg
ICAgICBSZW5kZXJDb3VudGVyIGF0ICg2MCw1KSBzaXplIDIweDIwCisgICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICg2MCw1KSB3aWR0aCAyMDogIm8iCisgICAgICAgICAgICBSZW5kZXJUZXh0IGF0
ICg4MCw1KSBzaXplIDIweDIwCisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg4MCw1KSB3aWR0
aCAyMDogIi0iCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTAwLDUpIHNpemUgMjB4
MjAKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTAwLDUpIHdpZHRoIDIwOiAiICIKKyAgICAgICAg
UmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBh
dCAoMCwwKSBzaXplIDQweDIwCisgICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0
ICgwLDApIHNpemUgNDB4MjAKKyAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDEyMCw1KSBz
aXplIDIweDIwCisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMjAsNSkgd2lkdGggMjA6ICJw
IgorICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoMTQwLDUpIHNpemUgMjB4MjAKKyAgICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDE0MCw1KSB3aWR0aCAyMDogIi0iCisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQg
KDAsMTEwKSBzaXplIDc4NHgzMAorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDAp
IHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAor
ICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDB4MjAKKyAgICAgICAg
ICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA0MHgyMAorICAgICAgICAg
ICAgUmVuZGVyQ291bnRlciBhdCAoMCw1KSBzaXplIDIweDIwCisgICAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDUpIHdpZHRoIDIwOiAibiIKKyAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDIw
LDUpIHNpemUgMjB4MjAKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIwLDUpIHdpZHRoIDIw
OiAiLSIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg0MCw1KSBzaXplIDIweDIwCisg
ICAgICAgICAgdGV4dCBydW4gYXQgKDQwLDUpIHdpZHRoIDIwOiAiICIKKyAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICAgIFJlbmRlcklubGluZSB7U1BB
Tn0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCww
KSBzaXplIDQweDIwCisgICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDAp
IHNpemUgNDB4MjAKKyAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDYwLDUpIHNpemUgMjB4
MjAKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDYwLDUpIHdpZHRoIDIwOiAibyIKKyAgICAg
ICAgICAgIFJlbmRlclRleHQgYXQgKDgwLDUpIHNpemUgMjB4MjAKKyAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDgwLDUpIHdpZHRoIDIwOiAiLSIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgxMDAsNSkgc2l6ZSAyMHgyMAorICAgICAgICAgIHRleHQgcnVuIGF0ICgxMDAsNSkgd2lk
dGggMjA6ICIgIgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMHgw
CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICBS
ZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDB4MjAKKyAgICAgICAgICBSZW5kZXJJ
bmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA0MHgyMAorICAgICAgICAgICAgUmVuZGVy
Q291bnRlciBhdCAoMTIwLDUpIHNpemUgMjB4MjAKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDEyMCw1KSB3aWR0aCAyMDogInAiCisgICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgxNDAsNSkg
c2l6ZSAyMHgyMAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTQwLDUpIHdpZHRoIDIwOiAi
LSIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCwxNDApIHNpemUgNzg0eDMwCisgICAgICAgIFJlbmRlcklu
bGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgMHgwCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkg
c2l6ZSA0MHgyMAorICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBz
aXplIDQweDIwCisgICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICgwLDUpIHNpemUgMjB4MjAK
KyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNSkgd2lkdGggMjA6ICJuIgorICAgICAgICAg
ICAgUmVuZGVyVGV4dCBhdCAoMjAsNSkgc2l6ZSAyMHgyMAorICAgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMjAsNSkgd2lkdGggMjA6ICItIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDQwLDUpIHNpemUgMjB4MjAKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDAsNSkgd2lkdGggMjA6
ICIgIgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMHgwCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICBSZW5kZXJJ
bmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDB4MjAKKyAgICAgICAgICBSZW5kZXJJbmxpbmUg
KGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA0MHgyMAorICAgICAgICAgICAgUmVuZGVyQ291bnRl
ciBhdCAoNjAsNSkgc2l6ZSAyMHgyMAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjAsNSkg
d2lkdGggMjA6ICJvIgorICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoODAsNSkgc2l6ZSAyMHgy
MAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoODAsNSkgd2lkdGggMjA6ICItIgorICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEwMCw1KSBzaXplIDIweDIwCisgICAgICAgICAgdGV4
dCBydW4gYXQgKDEwMCw1KSB3aWR0aCAyMDogIiAiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDAp
IHNpemUgMHgwCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0MHgy
MAorICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDQweDIw
CisgICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICgxMjAsNSkgc2l6ZSAyMHgyMAorICAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMTIwLDUpIHdpZHRoIDIwOiAicCIKKyAgICAgICAgICAgIFJl
bmRlclRleHQgYXQgKDE0MCw1KSBzaXplIDIweDIwCisgICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgxNDAsNSkgd2lkdGggMjA6ICItIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSAweDAKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDE3MCkgc2l6ZSA3ODR4
MzAKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVySW5s
aW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQweDIwCisgICAgICAgICAgUmVuZGVySW5saW5lIChn
ZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgNDB4MjAKKyAgICAgICAgICAgIFJlbmRlckNvdW50ZXIg
YXQgKDAsNSkgc2l6ZSAyMHgyMAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw1KSB3aWR0
aCAyMDogIm4iCisgICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgyMCw1KSBzaXplIDIweDIwCisg
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyMCw1KSB3aWR0aCAyMDogIi0iCisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoNDAsNSkgc2l6ZSAyMHgyMAorICAgICAgICAgIHRleHQgcnVu
IGF0ICg0MCw1KSB3aWR0aCAyMDogIiAiCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQg
KDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MHgwCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0MHgyMAorICAg
ICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDQweDIwCisgICAg
ICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICg2MCw1KSBzaXplIDIweDIwCisgICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg2MCw1KSB3aWR0aCAyMDogIm8iCisgICAgICAgICAgICBSZW5kZXJUZXh0
IGF0ICg4MCw1KSBzaXplIDIweDIwCisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg4MCw1KSB3
aWR0aCAyMDogIi0iCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTAwLDUpIHNpemUg
MjB4MjAKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTAwLDUpIHdpZHRoIDIwOiAiICIKKyAgICAg
ICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFO
fSBhdCAoMCwwKSBzaXplIDQweDIwCisgICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQp
IGF0ICgwLDApIHNpemUgNDB4MjAKKyAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDEyMCw1
KSBzaXplIDIweDIwCisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMjAsNSkgd2lkdGggMjA6
ICJwIgorICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoMTQwLDUpIHNpemUgMjB4MjAKKyAgICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDE0MCw1KSB3aWR0aCAyMDogIi0iCisgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsMjAwKSBzaXplIDc4NHgzMAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
NSkgc2l6ZSAxNjB4MjAKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw1KSB3aWR0aCAxNjA6ICJu
LSBvLSBwLSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2FkZC1p
bmNyZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2FkZC1pbmNyZW1l
bnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZGU2NmRjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvYWRkLWluY3JlbWVu
dC5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9E
VEQgSFRNTCA0LjAxLy9FTiI+Cis8aHRtbD4KKyA8aGVhZD4KKyAgPHRpdGxlPmR5bmFtaWMgYWRk
aXRpb24gb2YgJ2NvdW50ZXItaW5jcmVtZW50JzwvdGl0bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0
L2NzcyI+CisKKyAgLyogV2UgdXNlICduJyAoMTMpIGFzIHRoZSBpbml0aWFsIG51bWJlciBvZiB0
aGlzIGNvdW50ZXIuCisgICAgIEluIHRoaXMgd2F5IHdlIGNhbiBjaGVjayB0aGUgcmVzdWx0IGV2
ZW4gd2l0aCBBaGVtIGJlY2F1c2UKKyAgICAgJ3AnICgxNSkgaGFzIGRpZmZlcmVudCBsb29raW5n
IGZyb20gb3RoZXIgY2hhcmFjdGVycy4gKi8KKyAgYm9keSB7IGZvbnQ6IDIwcHgvMzBweCBBaGVt
OyB9CisgIC50ZXN0IHsgY291bnRlci1yZXNldDogYyAxMzsgfQorICAuaW5jcmVtZW50IHsgY291
bnRlci1pbmNyZW1lbnQ6IGM7IH0KKyAgLnNob3c6YmVmb3JlIHsgY29udGVudDogY291bnRlcnMo
YywgIi4iLCBsb3dlci1hbHBoYSkgIi0iOyB9CisKKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgorICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgIGZ1bmN0aW9u
IHJ1bigpIHsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMzsgaSsrKSB7CisgICAgICAgICAg
dmFyIHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIgKyBpKTsKKyAgICAgICAgICB2
YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAgICAgICBzLnNldEF0
dHJpYnV0ZSgiY2xhc3MiLCAiaW5jcmVtZW50Iik7CisgICAgICAgICAgdC5pbnNlcnRCZWZvcmUo
cywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcyIgKyBpKSk7CisgICAgICB9CisKKyAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICB9CisKKyAgLy8gV2UgY2Fubm90IHVzZSBkdW1wQXNU
ZXh0KCkgYmVjYXVzZSB0aGUgY291bnRlcnMgYXJlIENTUyBwcm9wZXJ0aWVzIGFuZAorICAvLyB0
aGV5IGFyZW4ndCBkdW1wZWQgYnkgdGhlIGZ1bmN0aW9uLiBMZXQncyB1c2UgcmVuZGVyIHRyZWUu
Li4KKyAgPC9zY3JpcHQ+CisgPC9oZWFkPgorCisgPCEtLSBUaGlzIHRlc3QgY2hlY2tzIGlmIHRo
ZSBjb3VudGVycyB3b3JrIHByb3Blcmx5IHdoZW4gc29tZSBlbGVtZW50cyBhcmUKKyBhZGRlZC9y
ZW1vdmVkICphZnRlciogdGhlIGZpcnN0IHJlbmRlcmluZyBmaW5pc2hlcy4gSWYgd2UgcHV0IHRo
ZSBzY3JpcHQgaW4KKyA8Ym9keT4sIHRoaXMgb25seSBjaGVja3MgdGhlIHJlc3VsdHMgb2YgZmly
c3QgcmVuZGVyaW5nIGFuZCB0aGlzIGlzbid0CisgdGhlIHB1cnBvc2Ugb2YgdGhpcyB0ZXN0LiBU
aGF0J3Mgd2h5IHdlIHVzZSB0aW1lb3V0IGZvciB0aGlzIHRlc3QuIC0tPgorIDxib2R5IG9ubG9h
ZD0ic2V0VGltZW91dCgncnVuKCknLCAwKSI+CisKKyA8cD5UaGUgZm9sbG93aW5nIGZpdmUgbGlu
ZXMgc2hvdWxkIGJlIHRoZSBzYW1lOjwvcD4KKworIDxkaXYgY2xhc3M9InRlc3QiIGlkPSJ0ZXN0
MCI+CisgIDwhLS0gPHNwYW4gY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPiAtLT4KKyAgPHNwYW4g
Y2xhc3M9InNob3ciIGlkPSJwb3MwIj48L3NwYW4+CisgIDxzcGFuIGNsYXNzPSJpbmNyZW1lbnQi
Pjwvc3Bhbj4KKyAgPHNwYW4gY2xhc3M9InNob3ciPjwvc3Bhbj4KKyAgPHNwYW4gY2xhc3M9Imlu
Y3JlbWVudCI+PC9zcGFuPgorICA8c3BhbiBjbGFzcz0ic2hvdyI+PC9zcGFuPgorIDwvZGl2Pgor
CisgPGRpdiBjbGFzcz0idGVzdCIgaWQ9InRlc3QxIj4KKyAgPHNwYW4gY2xhc3M9ImluY3JlbWVu
dCI+PC9zcGFuPgorICA8c3BhbiBjbGFzcz0ic2hvdyI+PC9zcGFuPgorICA8IS0tIDxzcGFuIGNs
YXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj4gLS0+CisgIDxzcGFuIGNsYXNzPSJzaG93IiBpZD0icG9z
MSI+PC9zcGFuPgorICA8c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+CisgIDxzcGFuIGNs
YXNzPSJzaG93Ij48L3NwYW4+CisgPC9kaXY+CisKKyA8ZGl2IGNsYXNzPSJ0ZXN0IiBpZD0idGVz
dDIiPgorICA8c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+CisgIDxzcGFuIGNsYXNzPSJz
aG93Ij48L3NwYW4+CisgIDxzcGFuIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj4KKyAgPHNwYW4g
Y2xhc3M9InNob3ciPjwvc3Bhbj4KKyAgPCEtLSA8c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3Nw
YW4+IC0tPgorICA8c3BhbiBjbGFzcz0ic2hvdyIgaWQ9InBvczIiPjwvc3Bhbj4KKyA8L2Rpdj4K
KworIDxkaXYgY2xhc3M9InRlc3QiPgorICA8c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+
CisgIDxzcGFuIGNsYXNzPSJzaG93Ij48L3NwYW4+CisgIDxzcGFuIGNsYXNzPSJpbmNyZW1lbnQi
Pjwvc3Bhbj4KKyAgPHNwYW4gY2xhc3M9InNob3ciPjwvc3Bhbj4KKyAgPHNwYW4gY2xhc3M9Imlu
Y3JlbWVudCI+PC9zcGFuPgorICA8c3BhbiBjbGFzcz0ic2hvdyI+PC9zcGFuPgorIDwvZGl2Pgor
CisgPGRpdiBpZD0icmVmZXJlbmNlIj5uLSBvLSBwLTwvZGl2PgorCisgPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJz
L2FkZC1pbmNyZW1lbnQtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9jc3MvY291bnRlcnMvYWRkLWluY3JlbWVudC1leHBlY3RlZC5jaGVja3N1bQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Y2UzNDU5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL2FkZC1pbmNyZW1l
bnQtZXhwZWN0ZWQuY2hlY2tzdW0KQEAgLTAsMCArMSBAQAorYWU0ZGYyMmU0NTVhOWFiNGRkNGE1
Y2Q5YWVkNTI2MDMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvYWRkLWluY3JlbWVudC1leHBl
Y3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvYWRk
LWluY3JlbWVudC1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMGY3MDliNQpCaW5hcnkgZmlsZXMgL2Rldi9udWxsIGFuZCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy9hZGQtaW5jcmVtZW50LWV4cGVjdGVkLnBuZyBkaWZm
ZXIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggNDQ3MGNmMC4uNWMxNjhjNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAwOS0xMC0xOSAgU2hpbmljaGly
byBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdW50ZXJzIGFyZW4ndCB1cGRhdGVkIHdoZW4gYSBu
ZXcgY291bnRlci1pbmNyZW1lbnQgaXMgYWRkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTA1CisKKyAgICAgICAgVGVzdDogZmFzdC9jc3MvY291
bnRlcnMvYWRkLWluY3JlbWVudC5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQ291
bnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb3VudGVyOjphZGRDb3VudGVyTm9k
ZXMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJDb3VudGVyLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6
OmFkZENoaWxkKToKKwogMjAwOS0xMC0xOCAgRXJpayBBcnZpZHNzb24gIDxhcnZAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckNvdW50ZXIuY3BwCmluZGV4IDE3YzZkYWQuLmY3NDBmOTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckNvdW50ZXIuY3BwCkBAIC0yNzgsNiArMjc4LDE1IEBAIHZvaWQgUmVuZGVyQ291bnRlcjo6aW52
YWxpZGF0ZSgpCiAgICAgc2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7CiB9CiAK
K3ZvaWQgUmVuZGVyQ291bnRlcjo6YWRkQ291bnRlck5vZGVzKFJlbmRlck9iamVjdCogb2JqZWN0
KSB7CisgICAgY29uc3QgQ291bnRlckRpcmVjdGl2ZU1hcCogZGlyZWN0aXZlc01hcCA9IG9iamVj
dC0+c3R5bGUoKS0+Y291bnRlckRpcmVjdGl2ZXMoKTsKKyAgICBBU1NFUlQoZGlyZWN0aXZlc01h
cCk7CisKKyAgICBDb3VudGVyRGlyZWN0aXZlTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBkaXJl
Y3RpdmVzTWFwLT5lbmQoKTsKKyAgICBmb3IgKENvdW50ZXJEaXJlY3RpdmVNYXA6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gZGlyZWN0aXZlc01hcC0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAg
ICAgICBjb3VudGVyKG9iamVjdCwgaXQtPmZpcnN0LmdldCgpLCB0cnVlKTsKK30KKwogc3RhdGlj
IHZvaWQgZGVzdHJveUNvdW50ZXJOb2RlQ2hpbGRyZW4oQXRvbWljU3RyaW5nSW1wbCogaWRlbnRp
ZmllciwgQ291bnRlck5vZGUqIG5vZGUpCiB7CiAgICAgQ291bnRlck5vZGUqIHByZXZpb3VzOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5oIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQ291bnRlci5oCmluZGV4IDk2MTk2OGUuLmYxYzBhYmQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuaAorKysgYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJDb3VudGVyLmgKQEAgLTM1LDYgKzM1LDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBpbnZhbGlkYXRlKCk7CiAKKyAgICBzdGF0aWMgdm9pZCBhZGRDb3VudGVyTm9kZXMoUmVuZGVy
T2JqZWN0Kik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveUNvdW50ZXJOb2RlcyhSZW5kZXJPYmpl
Y3QqKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGExMGZm
ZDkuLjE0OThhNzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5j
cHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMzEzLDYgKzMx
MywxNSBAQCB2b2lkIFJlbmRlck9iamVjdDo6YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBuZXdDaGls
ZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCkKICAgICAgICAgaWYgKHRleHRUb1RyYW5zZm9y
bSkKICAgICAgICAgICAgIHRvUmVuZGVyVGV4dChuZXdDaGlsZCktPnNldFRleHQodGV4dFRvVHJh
bnNmb3JtLnJlbGVhc2UoKSwgdHJ1ZSk7CiAgICAgfQorCisgICAgLy8gSWYgbmV3Q2hpbGQgaXMg
bm90IHJvb3RlZCwgd2UgY2Fubm90IGNyZWF0ZSBhIGNvdW50ZXIKKyAgICAvLyBwcm9wZXJseS4g
QW55d2F5LCBmb3IgdGhpcyBjYXNlLCB3ZSBkb24ndCBuZWVkIHRvIHJlZ2lzdGVyIGEKKyAgICAv
LyBjb3VudGVyIG5vdyBiZWNhdXNlIHRoZSBjb3VudGVyIG9mIG5ld0NoaWxkIG9ubHkgYWZmZWN0
cyBpdHMKKyAgICAvLyBzaWJsaW5ncy4gSWYgdGhlIHNpYmxpbmdzIGhhdmUgYSByZW5kZXIgY291
bnRlciwgdGhpcyBlbGVtZW50CisgICAgLy8gd2lsbCBiZSBjaGVja2VkIHdoZW4gd2Ugd2lsbCBj
YWxjdWxhdGUgdGhlIHZhbHVlIG9mIHJlbmRlcgorICAgIC8vIGNvdW50ZXIuIE90aGVyd2lzZSwg
d2UgZG9uJ3QgbmVlZCB0byBjb25zaWRlciB0aGlzIGNvdW50ZXIuCisgICAgaWYgKG5ld0NoaWxk
LT5zdHlsZSgpLT5jb3VudGVyRGlyZWN0aXZlcygpICYmIG5ld0NoaWxkLT5pc1Jvb3RlZCgpKQor
ICAgICAgICBSZW5kZXJDb3VudGVyOjphZGRDb3VudGVyTm9kZXMobmV3Q2hpbGQpOwogfQogCiB2
b2lkIFJlbmRlck9iamVjdDo6cmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0KiBvbGRDaGlsZCk=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42237</attachid>
            <date>2009-10-30 14:39:16 -0700</date>
            <delta_ts>2009-11-02 12:53:25 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-30505-20091031063914.patch</filename>
            <type>text/plain</type>
            <size>9342</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlYTQwYzA5Li45OWJkMDYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMTAt
MzAgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3VudGVycyBhcmVuJ3QgdXBk
YXRlZCB3aGVuIGEgbmV3IGNvdW50ZXItaW5jcmVtZW50IGlzIGFkZGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDUwNQorCisgICAgICAgICogZmFz
dC9jc3MvY291bnRlcnMvYWRkLWluY3JlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY3NzL2NvdW50ZXJzL2FkZC1pbmNyZW1lbnQuaHRtbDogQWRkZWQuCisKIDIwMDkt
MTAtMzAgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhdmlkIEtpbHplci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50
ZXJzL2FkZC1pbmNyZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291
bnRlcnMvYWRkLWluY3JlbWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMDBjNzg5YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2NvdW50ZXJzL2FkZC1pbmNyZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAK
K0JlZm9yZSB0aGUgZHluYW1pYyBjaGFuZ2U6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhMCcpIGlzICcwJworUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYTEnKSBpcyAnMScKK1BBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2EyJykgaXMgJzIn
CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdi
MCcpIGlzICcxJworUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgnYjEnKSBpcyAnMScKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ2IyJykgaXMgJzInCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdjMCcpIGlzICcxJworUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYzEnKSBpcyAnMicKK1BBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2MyJykgaXMg
JzInCitBZnRlciB0aGUgZHluYW1pYyBjaGFuZ2U6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhMCcpIGlzICcxJworUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYTEnKSBpcyAnMicKK1BBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2EyJykgaXMg
JzMnCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCdiMCcpIGlzICcxJworUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgnYjEnKSBpcyAnMicKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ2IyJykgaXMgJzMnCitQQVNTIGxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdjMCcpIGlzICcxJworUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYzEnKSBpcyAnMicKK1BB
U1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2MyJykg
aXMgJzMnCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2FkZC1p
bmNyZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2FkZC1pbmNyZW1l
bnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTgxZmNlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvYWRkLWluY3JlbWVu
dC5odG1sCkBAIC0wLDAgKzEsMTE4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8v
RFREIEhUTUwgNC4wMS8vRU4iPgorPGh0bWw+CisgPGhlYWQ+CisgIDx0aXRsZT5keW5hbWljIGFk
ZGl0aW9uIG9mICdjb3VudGVyLWluY3JlbWVudCc8L3RpdGxlPgorICA8c3R5bGUgdHlwZT0idGV4
dC9jc3MiPgorCisgIC50ZXN0IHsgY291bnRlci1yZXNldDogYzsgfQorICAuaW5jcmVtZW50IHsg
Y291bnRlci1pbmNyZW1lbnQ6IGM7IH0KKyAgLnNob3c6YmVmb3JlIHsgY29udGVudDogY291bnRl
cnMoYywgIi4iKSAiLSI7IH0KKworICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgorCisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgZnVuY3Rpb24gY2hlY2tD
b3VudGVyVmFsdWVzQmVmb3JlQ2hhbmdlKCkKKyAgeworICAgICAgZGVidWcoJ0JlZm9yZSB0aGUg
ZHluYW1pYyBjaGFuZ2U6Jyk7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2EwJykiLCAiJzAnIik7CisgICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2ExJyki
LCAiJzEnIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ2EyJykiLCAiJzInIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2IwJykiLCAiJzEnIik7
CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ2IxJykiLCAiJzEnIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2IyJykiLCAiJzInIik7CisgICAgICBz
aG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J2MwJykiLCAiJzEnIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2MxJykiLCAiJzInIik7CisgICAgICBzaG91bGRCZSgi
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2MyJykiLCAi
JzInIik7CisgIH0KKworICBmdW5jdGlvbiBjaGVja0NvdW50ZXJWYWx1ZXNBZnRlckNoYW5nZSgp
CisgIHsKKyAgICAgIGRlYnVnKCdBZnRlciB0aGUgZHluYW1pYyBjaGFuZ2U6Jyk7CisgICAgICBz
aG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J2EwJykiLCAiJzEnIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2ExJykiLCAiJzInIik7CisgICAgICBzaG91bGRCZSgi
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2EyJykiLCAi
JzMnIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ2IwJykiLCAiJzEnIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2IxJykiLCAiJzInIik7Cisg
ICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ2IyJykiLCAiJzMnIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2MwJykiLCAiJzEnIik7CisgICAgICBzaG91
bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2Mx
JykiLCAiJzInIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ2MyJykiLCAiJzMnIik7CisKKyAgICAgIC8vIEVsaW1pbmF0
ZSBjb25mdXNpbmcgbWVzc2FnZXMgKGNvdW50ZXIgdmFsdWVzIHdvbid0IGJlIGR1bXBlZCBieSBk
dW1wQXNUZXh0KS4KKyAgICAgIHZhciB2aWV3RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ2aWV3Iik7CisgICAgICB2aWV3RWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHZp
ZXdFbGVtZW50KTsKKyAgfQorCisgIGZ1bmN0aW9uIHJ1bigpCisgIHsKKyAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgY2hlY2tDb3VudGVyVmFsdWVzQmVm
b3JlQ2hhbmdlKCk7CisKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMzsgaSsrKSB7CisgICAg
ICAgICAgdmFyIHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIgKyBpKTsKKyAgICAg
ICAgICB2YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAgICAgICBz
LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAiaW5jcmVtZW50Iik7CisgICAgICAgICAgdC5pbnNlcnRC
ZWZvcmUocywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoWyJhMCIsICJiMSIsICJjMiJdW2ldKSk7
CisgICAgICB9CisKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICAgICAgY2hlY2tDb3VudGVyVmFsdWVzQWZ0ZXJDaGFuZ2UoKTsKKyAgfQorCisgIDwvc2NyaXB0
PgorIDwvaGVhZD4KKworIDxib2R5IG9ubG9hZD0icnVuKCk7Ij4KKworIDxkaXYgaWQ9InZpZXci
PgorCisgPHA+VGhlIGZvbGxvd2luZyBmaXZlIGxpbmVzIHNob3VsZCBiZSB0aGUgc2FtZTo8L3A+
CisKKyA8ZGl2IGNsYXNzPSJ0ZXN0IiBpZD0idGVzdDAiPgorICA8IS0tIDxzcGFuIGNsYXNzPSJp
bmNyZW1lbnQiPjwvc3Bhbj4gLS0+CisgIDxzcGFuIGNsYXNzPSJzaG93IiBpZD0iYTAiPjwvc3Bh
bj4KKyAgPHNwYW4gY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPgorICA8c3BhbiBjbGFzcz0ic2hv
dyIgaWQ9ImExIj48L3NwYW4+CisgIDxzcGFuIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj4KKyAg
PHNwYW4gY2xhc3M9InNob3ciIGlkPSJhMiI+PC9zcGFuPgorIDwvZGl2PgorCisgPGRpdiBjbGFz
cz0idGVzdCIgaWQ9InRlc3QxIj4KKyAgPHNwYW4gY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPgor
ICA8c3BhbiBjbGFzcz0ic2hvdyIgaWQ9ImIwIj48L3NwYW4+CisgIDwhLS0gPHNwYW4gY2xhc3M9
ImluY3JlbWVudCI+PC9zcGFuPiAtLT4KKyAgPHNwYW4gY2xhc3M9InNob3ciIGlkPSJiMSI+PC9z
cGFuPgorICA8c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+CisgIDxzcGFuIGNsYXNzPSJz
aG93IiBpZD0iYjIiPjwvc3Bhbj4KKyA8L2Rpdj4KKworIDxkaXYgY2xhc3M9InRlc3QiIGlkPSJ0
ZXN0MiI+CisgIDxzcGFuIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj4KKyAgPHNwYW4gY2xhc3M9
InNob3ciIGlkPSJjMCI+PC9zcGFuPgorICA8c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+
CisgIDxzcGFuIGNsYXNzPSJzaG93IiBpZD0iYzEiPjwvc3Bhbj4KKyAgPCEtLSA8c3BhbiBjbGFz
cz0iaW5jcmVtZW50Ij48L3NwYW4+IC0tPgorICA8c3BhbiBjbGFzcz0ic2hvdyIgaWQ9ImMyIj48
L3NwYW4+CisgPC9kaXY+CisKKyA8ZGl2IGNsYXNzPSJ0ZXN0Ij4KKyAgPHNwYW4gY2xhc3M9Imlu
Y3JlbWVudCI+PC9zcGFuPgorICA8c3BhbiBjbGFzcz0ic2hvdyI+PC9zcGFuPgorICA8c3BhbiBj
bGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+CisgIDxzcGFuIGNsYXNzPSJzaG93Ij48L3NwYW4+Cisg
IDxzcGFuIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj4KKyAgPHNwYW4gY2xhc3M9InNob3ciPjwv
c3Bhbj4KKyA8L2Rpdj4KKworIDxkaXYgaWQ9InJlZmVyZW5jZSI+MS0gMi0gMy08L2Rpdj4KKwor
IDwvZGl2PgorCisgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKyA8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGRjMGE0N2YuLmRjOWZkMmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMTAtMzAgIFNoaW5pY2hpcm8g
SGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDb3VudGVycyBhcmVuJ3QgdXBkYXRlZCB3aGVuIGEgbmV3
IGNvdW50ZXItaW5jcmVtZW50IGlzIGFkZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zMDUwNQorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL2NvdW50
ZXJzL2FkZC1pbmNyZW1lbnQuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckNvdW50
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQ291bnRlcjo6YWRkQ291bnRlck5vZGVz
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQ291bnRlci5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojph
ZGRDaGlsZCk6CisKIDIwMDktMTAtMzAgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJD
b3VudGVyLmNwcAppbmRleCAxN2M2ZGFkLi5mNzQwZjk1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJD
b3VudGVyLmNwcApAQCAtMjc4LDYgKzI3OCwxNSBAQCB2b2lkIFJlbmRlckNvdW50ZXI6OmludmFs
aWRhdGUoKQogICAgIHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwogfQogCit2
b2lkIFJlbmRlckNvdW50ZXI6OmFkZENvdW50ZXJOb2RlcyhSZW5kZXJPYmplY3QqIG9iamVjdCkg
eworICAgIGNvbnN0IENvdW50ZXJEaXJlY3RpdmVNYXAqIGRpcmVjdGl2ZXNNYXAgPSBvYmplY3Qt
PnN0eWxlKCktPmNvdW50ZXJEaXJlY3RpdmVzKCk7CisgICAgQVNTRVJUKGRpcmVjdGl2ZXNNYXAp
OworCisgICAgQ291bnRlckRpcmVjdGl2ZU1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gZGlyZWN0
aXZlc01hcC0+ZW5kKCk7CisgICAgZm9yIChDb3VudGVyRGlyZWN0aXZlTWFwOjpjb25zdF9pdGVy
YXRvciBpdCA9IGRpcmVjdGl2ZXNNYXAtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAg
ICAgY291bnRlcihvYmplY3QsIGl0LT5maXJzdC5nZXQoKSwgdHJ1ZSk7Cit9CisKIHN0YXRpYyB2
b2lkIGRlc3Ryb3lDb3VudGVyTm9kZUNoaWxkcmVuKEF0b21pY1N0cmluZ0ltcGwqIGlkZW50aWZp
ZXIsIENvdW50ZXJOb2RlKiBub2RlKQogewogICAgIENvdW50ZXJOb2RlKiBwcmV2aW91czsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuaCBiL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckNvdW50ZXIuaAppbmRleCA5NjE5NjhlLi5mMWMwYWJkIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQ291bnRlci5oCkBAIC0zNSw2ICszNSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
aW52YWxpZGF0ZSgpOwogCisgICAgc3RhdGljIHZvaWQgYWRkQ291bnRlck5vZGVzKFJlbmRlck9i
amVjdCopOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3lDb3VudGVyTm9kZXMoUmVuZGVyT2JqZWN0
Kik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCBhMTBmZmQ5
Li4xNDk4YTcxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
CisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTMxMyw2ICszMTMs
MTUgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OmFkZENoaWxkKFJlbmRlck9iamVjdCogbmV3Q2hpbGQs
IFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCiAgICAgICAgIGlmICh0ZXh0VG9UcmFuc2Zvcm0p
CiAgICAgICAgICAgICB0b1JlbmRlclRleHQobmV3Q2hpbGQpLT5zZXRUZXh0KHRleHRUb1RyYW5z
Zm9ybS5yZWxlYXNlKCksIHRydWUpOwogICAgIH0KKworICAgIC8vIElmIG5ld0NoaWxkIGlzIG5v
dCByb290ZWQsIHdlIGNhbm5vdCBjcmVhdGUgYSBjb3VudGVyCisgICAgLy8gcHJvcGVybHkuIEFu
eXdheSwgZm9yIHRoaXMgY2FzZSwgd2UgZG9uJ3QgbmVlZCB0byByZWdpc3RlciBhCisgICAgLy8g
Y291bnRlciBub3cgYmVjYXVzZSB0aGUgY291bnRlciBvZiBuZXdDaGlsZCBvbmx5IGFmZmVjdHMg
aXRzCisgICAgLy8gc2libGluZ3MuIElmIHRoZSBzaWJsaW5ncyBoYXZlIGEgcmVuZGVyIGNvdW50
ZXIsIHRoaXMgZWxlbWVudAorICAgIC8vIHdpbGwgYmUgY2hlY2tlZCB3aGVuIHdlIHdpbGwgY2Fs
Y3VsYXRlIHRoZSB2YWx1ZSBvZiByZW5kZXIKKyAgICAvLyBjb3VudGVyLiBPdGhlcndpc2UsIHdl
IGRvbid0IG5lZWQgdG8gY29uc2lkZXIgdGhpcyBjb3VudGVyLgorICAgIGlmIChuZXdDaGlsZC0+
c3R5bGUoKS0+Y291bnRlckRpcmVjdGl2ZXMoKSAmJiBuZXdDaGlsZC0+aXNSb290ZWQoKSkKKyAg
ICAgICAgUmVuZGVyQ291bnRlcjo6YWRkQ291bnRlck5vZGVzKG5ld0NoaWxkKTsKIH0KIAogdm9p
ZCBSZW5kZXJPYmplY3Q6OnJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCogb2xkQ2hpbGQp
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42339</attachid>
            <date>2009-11-02 12:53:32 -0800</date>
            <delta_ts>2009-11-09 07:57:26 -0800</delta_ts>
            <desc>Patch v3</desc>
            <filename>bug-30505-20091103055330.patch</filename>
            <type>text/plain</type>
            <size>9335</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2YTQ0MzNjLi5lYmY0YzAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMTEt
MDIgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3VudGVycyBhcmVuJ3QgdXBk
YXRlZCB3aGVuIGEgbmV3IGNvdW50ZXItaW5jcmVtZW50IGlzIGFkZGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDUwNQorCisgICAgICAgICogZmFz
dC9jc3MvY291bnRlcnMvYWRkLWluY3JlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY3NzL2NvdW50ZXJzL2FkZC1pbmNyZW1lbnQuaHRtbDogQWRkZWQuCisKIDIwMDkt
MTEtMDIgIEFuZHJldyBTY2hlcmt1cyAgPHNjaGVya3VzQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb3VudGVycy9hZGQtaW5jcmVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzL2NvdW50ZXJzL2FkZC1pbmNyZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwYzc4OWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZGQtaW5jcmVtZW50LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDIxIEBACitCZWZvcmUgdGhlIGR5bmFtaWMgY2hhbmdlOgorUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYTAnKSBpcyAnMCcKK1BBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2ExJykgaXMgJzEn
CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdh
MicpIGlzICcyJworUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgnYjAnKSBpcyAnMScKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ2IxJykgaXMgJzEnCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdiMicpIGlzICcyJworUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYzAnKSBpcyAnMScKK1BBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2MxJykgaXMg
JzInCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCdjMicpIGlzICcyJworQWZ0ZXIgdGhlIGR5bmFtaWMgY2hhbmdlOgorUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYTAnKSBpcyAnMScKK1BBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2ExJykgaXMg
JzInCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCdhMicpIGlzICczJworUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgnYjAnKSBpcyAnMScKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ2IxJykgaXMgJzInCitQQVNTIGxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdiMicpIGlzICczJworUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYzAnKSBpcyAnMScKK1BB
U1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2MxJykg
aXMgJzInCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCdjMicpIGlzICczJworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3Vu
dGVycy9hZGQtaW5jcmVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9h
ZGQtaW5jcmVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTU4
MWZjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2Fk
ZC1pbmNyZW1lbnQuaHRtbApAQCAtMCwwICsxLDExOCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIj4KKzxodG1sPgorIDxoZWFkPgorICA8dGl0bGU+
ZHluYW1pYyBhZGRpdGlvbiBvZiAnY291bnRlci1pbmNyZW1lbnQnPC90aXRsZT4KKyAgPHN0eWxl
IHR5cGU9InRleHQvY3NzIj4KKworICAudGVzdCB7IGNvdW50ZXItcmVzZXQ6IGM7IH0KKyAgLmlu
Y3JlbWVudCB7IGNvdW50ZXItaW5jcmVtZW50OiBjOyB9CisgIC5zaG93OmJlZm9yZSB7IGNvbnRl
bnQ6IGNvdW50ZXJzKGMsICIuIikgIi0iOyB9CisKKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKworICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgIGZ1bmN0
aW9uIGNoZWNrQ291bnRlclZhbHVlc0JlZm9yZUNoYW5nZSgpCisgIHsKKyAgICAgIGRlYnVnKCdC
ZWZvcmUgdGhlIGR5bmFtaWMgY2hhbmdlOicpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhMCcpIiwgIicwJyIpOworICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCdhMScpIiwgIicxJyIpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhMicpIiwgIicyJyIpOworICAgICAgc2hvdWxk
QmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdiMCcp
IiwgIicxJyIpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCdiMScpIiwgIicxJyIpOworICAgICAgc2hvdWxkQmUoImxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdiMicpIiwgIicyJyIp
OworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCdjMCcpIiwgIicxJyIpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdjMScpIiwgIicyJyIpOworICAgICAg
c2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCdjMicpIiwgIicyJyIpOworICB9CisKKyAgZnVuY3Rpb24gY2hlY2tDb3VudGVyVmFsdWVzQWZ0
ZXJDaGFuZ2UoKQorICB7CisgICAgICBkZWJ1ZygnQWZ0ZXIgdGhlIGR5bmFtaWMgY2hhbmdlOicp
OworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCdhMCcpIiwgIicxJyIpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhMScpIiwgIicyJyIpOworICAgICAg
c2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCdhMicpIiwgIiczJyIpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdiMCcpIiwgIicxJyIpOworICAgICAgc2hvdWxkQmUo
ImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdiMScpIiwg
IicyJyIpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCdiMicpIiwgIiczJyIpOworICAgICAgc2hvdWxkQmUoImxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdjMCcpIiwgIicxJyIpOwor
ICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCdjMScpIiwgIicyJyIpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdjMicpIiwgIiczJyIpOworCisgICAgICAv
LyBFbGltaW5hdGUgY29uZnVzaW5nIG1lc3NhZ2VzIChjb3VudGVyIHZhbHVlcyB3b24ndCBiZSBk
dW1wZWQgYnkgZHVtcEFzVGV4dCkuCisgICAgICB2YXIgdmlld0VsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidmlldyIpOworICAgICAgdmlld0VsZW1lbnQucGFyZW50Tm9kZS5yZW1v
dmVDaGlsZCh2aWV3RWxlbWVudCk7CisgIH0KKworICBmdW5jdGlvbiBydW4oKQorICB7CisgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgIGNoZWNrQ291bnRl
clZhbHVlc0JlZm9yZUNoYW5nZSgpOworCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDM7IGkr
KykgeworICAgICAgICAgIHZhciB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiICsg
aSk7CisgICAgICAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Cisg
ICAgICAgICAgcy5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgImluY3JlbWVudCIpOworICAgICAgICAg
IHQuaW5zZXJ0QmVmb3JlKHMsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFsiYTAiLCAiYjEiLCAi
YzIiXVtpXSkpOworICAgICAgfQorCisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgIGNoZWNrQ291bnRlclZhbHVlc0FmdGVyQ2hhbmdlKCk7CisgIH0KKwor
ICA8L3NjcmlwdD4KKyA8L2hlYWQ+CisKKyA8Ym9keSBvbmxvYWQ9InJ1bigpOyI+CisKKyA8ZGl2
IGlkPSJ2aWV3Ij4KKworIDxwPlRoZSBmb2xsb3dpbmcgZml2ZSBsaW5lcyBzaG91bGQgYmUgdGhl
IHNhbWU6PC9wPgorCisgPGRpdiBjbGFzcz0idGVzdCIgaWQ9InRlc3QwIj4KKyAgPCEtLSA8c3Bh
biBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+IC0tPgorICA8c3BhbiBjbGFzcz0ic2hvdyIgaWQ9
ImEwIj48L3NwYW4+CisgIDxzcGFuIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj4KKyAgPHNwYW4g
Y2xhc3M9InNob3ciIGlkPSJhMSI+PC9zcGFuPgorICA8c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48
L3NwYW4+CisgIDxzcGFuIGNsYXNzPSJzaG93IiBpZD0iYTIiPjwvc3Bhbj4KKyA8L2Rpdj4KKwor
IDxkaXYgY2xhc3M9InRlc3QiIGlkPSJ0ZXN0MSI+CisgIDxzcGFuIGNsYXNzPSJpbmNyZW1lbnQi
Pjwvc3Bhbj4KKyAgPHNwYW4gY2xhc3M9InNob3ciIGlkPSJiMCI+PC9zcGFuPgorICA8IS0tIDxz
cGFuIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj4gLS0+CisgIDxzcGFuIGNsYXNzPSJzaG93IiBp
ZD0iYjEiPjwvc3Bhbj4KKyAgPHNwYW4gY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPgorICA8c3Bh
biBjbGFzcz0ic2hvdyIgaWQ9ImIyIj48L3NwYW4+CisgPC9kaXY+CisKKyA8ZGl2IGNsYXNzPSJ0
ZXN0IiBpZD0idGVzdDIiPgorICA8c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+CisgIDxz
cGFuIGNsYXNzPSJzaG93IiBpZD0iYzAiPjwvc3Bhbj4KKyAgPHNwYW4gY2xhc3M9ImluY3JlbWVu
dCI+PC9zcGFuPgorICA8c3BhbiBjbGFzcz0ic2hvdyIgaWQ9ImMxIj48L3NwYW4+CisgIDwhLS0g
PHNwYW4gY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPiAtLT4KKyAgPHNwYW4gY2xhc3M9InNob3ci
IGlkPSJjMiI+PC9zcGFuPgorIDwvZGl2PgorCisgPGRpdiBjbGFzcz0idGVzdCI+CisgIDxzcGFu
IGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj4KKyAgPHNwYW4gY2xhc3M9InNob3ciPjwvc3Bhbj4K
KyAgPHNwYW4gY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPgorICA8c3BhbiBjbGFzcz0ic2hvdyI+
PC9zcGFuPgorICA8c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+CisgIDxzcGFuIGNsYXNz
PSJzaG93Ij48L3NwYW4+CisgPC9kaXY+CisKKyA8ZGl2IGlkPSJyZWZlcmVuY2UiPjEtIDItIDMt
PC9kaXY+CisKKyA8L2Rpdj4KKworIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCisgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA3OTI1MzEzLi4yMDlkODEwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDA5LTExLTAyICBT
aGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ291bnRlcnMgYXJlbid0IHVwZGF0ZWQg
d2hlbiBhIG5ldyBjb3VudGVyLWluY3JlbWVudCBpcyBhZGRlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA1MDUKKworICAgICAgICBUZXN0OiBmYXN0
L2Nzcy9jb3VudGVycy9hZGQtaW5jcmVtZW50Lmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJDb3VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckNvdW50ZXI6OmFkZENv
dW50ZXJOb2Rlcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck9iamVjdDo6YWRkQ2hpbGQpOgorCiAyMDA5LTExLTAyICBQaGlsaXBwZSBOb3JtYW5kICA8cG5v
cm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKYW4gQWxvbnpvLgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAgYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcAppbmRleCAxN2M2ZGFkLi5mMDJiYTI1IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcAorKysgYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcApAQCAtMjc4LDYgKzI3OCwxNiBAQCB2b2lkIFJlbmRl
ckNvdW50ZXI6OmludmFsaWRhdGUoKQogICAgIHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1Jl
Y2FsYygpOwogfQogCit2b2lkIFJlbmRlckNvdW50ZXI6OmFkZENvdW50ZXJOb2RlcyhSZW5kZXJP
YmplY3QqIG9iamVjdCkKK3sKKyAgICBjb25zdCBDb3VudGVyRGlyZWN0aXZlTWFwKiBkaXJlY3Rp
dmVzTWFwID0gb2JqZWN0LT5zdHlsZSgpLT5jb3VudGVyRGlyZWN0aXZlcygpOworICAgIEFTU0VS
VChkaXJlY3RpdmVzTWFwKTsKKworICAgIENvdW50ZXJEaXJlY3RpdmVNYXA6OmNvbnN0X2l0ZXJh
dG9yIGVuZCA9IGRpcmVjdGl2ZXNNYXAtPmVuZCgpOworICAgIGZvciAoQ291bnRlckRpcmVjdGl2
ZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBkaXJlY3RpdmVzTWFwLT5iZWdpbigpOyBpdCAhPSBl
bmQ7ICsraXQpCisgICAgICAgIGNvdW50ZXIob2JqZWN0LCBpdC0+Zmlyc3QuZ2V0KCksIHRydWUp
OworfQorCiBzdGF0aWMgdm9pZCBkZXN0cm95Q291bnRlck5vZGVDaGlsZHJlbihBdG9taWNTdHJp
bmdJbXBsKiBpZGVudGlmaWVyLCBDb3VudGVyTm9kZSogbm9kZSkKIHsKICAgICBDb3VudGVyTm9k
ZSogcHJldmlvdXM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVy
LmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmgKaW5kZXggOTYxOTY4ZS4uZjFj
MGFiZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5oCisrKyBi
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuaApAQCAtMzUsNiArMzUsNyBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKIAorICAgIHN0YXRpYyB2b2lkIGFkZENvdW50
ZXJOb2RlcyhSZW5kZXJPYmplY3QqKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95Q291bnRlck5v
ZGVzKFJlbmRlck9iamVjdCopOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5j
cHAKaW5kZXggZTQ1MWMzMC4uZDY1M2QzMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
CkBAIC0zMTAsNiArMzEwLDE1IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjphZGRDaGlsZChSZW5kZXJP
YmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQogICAgICAgICBpZiAo
dGV4dFRvVHJhbnNmb3JtKQogICAgICAgICAgICAgdG9SZW5kZXJUZXh0KG5ld0NoaWxkKS0+c2V0
VGV4dCh0ZXh0VG9UcmFuc2Zvcm0ucmVsZWFzZSgpLCB0cnVlKTsKICAgICB9CisKKyAgICAvLyBJ
ZiBuZXdDaGlsZCBoYXMgY291bnRlciBkaXJlY3RpdmVzIGFuZCBpcyBhbm9ueW1vdXMsIHRoaXMg
bWVhbnMKKyAgICAvLyBuZXdDaGlsZCBpcyA6YmVmb3JlIG9yIDphZnRlci4gQXMgdGhlc2Ugbm9k
ZXMgYXJlbid0IGNvbm5lY3RlZAorICAgIC8vIHRvIHRoZSByZW5kZXIgdHJlZSB5ZXQsIHdlIGNh
bm5vdCBjYWxjdWxhdGUgdGhlaXIgdmFsdWUKKyAgICAvLyBjb3JyZWN0bHkgaGVyZS4gQW55d2F5
LCBmb3IgdGhpcyBjYXNlLCB3ZSBkb24ndCBuZWVkIHRvCisgICAgLy8gcmVnaXN0ZXIgYSBjb3Vu
dGVyIG5vdyBiZWNhdXNlIHRoZSB2YWx1ZSBvZiBuZXdDaGlsZCB3aWxsIGJlCisgICAgLy8gY2Fs
Y3VsYXRlZCBpbiBvcmlnaW5hbFRleHQoKS4KKyAgICBpZiAobmV3Q2hpbGQtPnN0eWxlKCktPmNv
dW50ZXJEaXJlY3RpdmVzKCkgJiYgIW5ld0NoaWxkLT5pc0Fub255bW91cygpKQorICAgICAgICBS
ZW5kZXJDb3VudGVyOjphZGRDb3VudGVyTm9kZXMobmV3Q2hpbGQpOwogfQogCiB2b2lkIFJlbmRl
ck9iamVjdDo6cmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0KiBvbGRDaGlsZCk=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42751</attachid>
            <date>2009-11-09 07:57:36 -0800</date>
            <delta_ts>2009-11-16 00:10:37 -0800</delta_ts>
            <desc>Patch v4</desc>
            <filename>bug-30505-20091110005733.patch</filename>
            <type>text/plain</type>
            <size>10348</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MzhiYmI2Li40NjY5N2JmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMTEt
MDkgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3VudGVycyBhcmVuJ3QgdXBk
YXRlZCB3aGVuIGEgbmV3IGNvdW50ZXItaW5jcmVtZW50IGlzIGFkZGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDUwNQorCisgICAgICAgICogZmFz
dC9jc3MvY291bnRlcnMvYWRkLWluY3JlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY3NzL2NvdW50ZXJzL2FkZC1pbmNyZW1lbnQuaHRtbDogQWRkZWQuCisKIDIwMDkt
MTEtMDggIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3Vu
dGVycy9hZGQtaW5jcmVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
dW50ZXJzL2FkZC1pbmNyZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjAwYzc4OWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb3VudGVycy9hZGQtaW5jcmVtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBA
CitCZWZvcmUgdGhlIGR5bmFtaWMgY2hhbmdlOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYTAnKSBpcyAnMCcKK1BBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2ExJykgaXMgJzEnCitQQVNTIGxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhMicpIGlzICcy
JworUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
YjAnKSBpcyAnMScKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ2IxJykgaXMgJzEnCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCdiMicpIGlzICcyJworUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYzAnKSBpcyAnMScKK1BBU1MgbGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2MxJykgaXMgJzInCitQQVNT
IGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdjMicpIGlz
ICcyJworQWZ0ZXIgdGhlIGR5bmFtaWMgY2hhbmdlOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYTAnKSBpcyAnMScKK1BBU1MgbGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2ExJykgaXMgJzInCitQQVNT
IGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhMicpIGlz
ICczJworUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgnYjAnKSBpcyAnMScKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ2IxJykgaXMgJzInCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdiMicpIGlzICczJworUEFTUyBsYXlvdXRUZXN0Q29udHJv
bGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYzAnKSBpcyAnMScKK1BBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2MxJykgaXMgJzInCitQ
QVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdjMicp
IGlzICczJworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZGQt
aW5jcmVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZGQtaW5jcmVt
ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTU4MWZjZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2FkZC1pbmNyZW1l
bnQuaHRtbApAQCAtMCwwICsxLDExOCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0Mv
L0RURCBIVE1MIDQuMDEvL0VOIj4KKzxodG1sPgorIDxoZWFkPgorICA8dGl0bGU+ZHluYW1pYyBh
ZGRpdGlvbiBvZiAnY291bnRlci1pbmNyZW1lbnQnPC90aXRsZT4KKyAgPHN0eWxlIHR5cGU9InRl
eHQvY3NzIj4KKworICAudGVzdCB7IGNvdW50ZXItcmVzZXQ6IGM7IH0KKyAgLmluY3JlbWVudCB7
IGNvdW50ZXItaW5jcmVtZW50OiBjOyB9CisgIC5zaG93OmJlZm9yZSB7IGNvbnRlbnQ6IGNvdW50
ZXJzKGMsICIuIikgIi0iOyB9CisKKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKworICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgIGZ1bmN0aW9uIGNoZWNr
Q291bnRlclZhbHVlc0JlZm9yZUNoYW5nZSgpCisgIHsKKyAgICAgIGRlYnVnKCdCZWZvcmUgdGhl
IGR5bmFtaWMgY2hhbmdlOicpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhMCcpIiwgIicwJyIpOworICAgICAgc2hvdWxk
QmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhMScp
IiwgIicxJyIpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCdhMicpIiwgIicyJyIpOworICAgICAgc2hvdWxkQmUoImxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdiMCcpIiwgIicxJyIp
OworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCdiMScpIiwgIicxJyIpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdiMicpIiwgIicyJyIpOworICAgICAg
c2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCdjMCcpIiwgIicxJyIpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdjMScpIiwgIicyJyIpOworICAgICAgc2hvdWxkQmUo
ImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdjMicpIiwg
IicyJyIpOworICB9CisKKyAgZnVuY3Rpb24gY2hlY2tDb3VudGVyVmFsdWVzQWZ0ZXJDaGFuZ2Uo
KQorICB7CisgICAgICBkZWJ1ZygnQWZ0ZXIgdGhlIGR5bmFtaWMgY2hhbmdlOicpOworICAgICAg
c2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCdhMCcpIiwgIicxJyIpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhMScpIiwgIicyJyIpOworICAgICAgc2hvdWxkQmUo
ImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhMicpIiwg
IiczJyIpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCdiMCcpIiwgIicxJyIpOworICAgICAgc2hvdWxkQmUoImxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdiMScpIiwgIicyJyIpOwor
ICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCdiMicpIiwgIiczJyIpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdjMCcpIiwgIicxJyIpOworICAgICAgc2hv
dWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdj
MScpIiwgIicyJyIpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdjMicpIiwgIiczJyIpOworCisgICAgICAvLyBFbGltaW5h
dGUgY29uZnVzaW5nIG1lc3NhZ2VzIChjb3VudGVyIHZhbHVlcyB3b24ndCBiZSBkdW1wZWQgYnkg
ZHVtcEFzVGV4dCkuCisgICAgICB2YXIgdmlld0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidmlldyIpOworICAgICAgdmlld0VsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh2
aWV3RWxlbWVudCk7CisgIH0KKworICBmdW5jdGlvbiBydW4oKQorICB7CisgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgIGNoZWNrQ291bnRlclZhbHVlc0Jl
Zm9yZUNoYW5nZSgpOworCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDM7IGkrKykgeworICAg
ICAgICAgIHZhciB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiICsgaSk7CisgICAg
ICAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgICAgICAg
cy5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgImluY3JlbWVudCIpOworICAgICAgICAgIHQuaW5zZXJ0
QmVmb3JlKHMsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFsiYTAiLCAiYjEiLCAiYzIiXVtpXSkp
OworICAgICAgfQorCisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICAgIGNoZWNrQ291bnRlclZhbHVlc0FmdGVyQ2hhbmdlKCk7CisgIH0KKworICA8L3Njcmlw
dD4KKyA8L2hlYWQ+CisKKyA8Ym9keSBvbmxvYWQ9InJ1bigpOyI+CisKKyA8ZGl2IGlkPSJ2aWV3
Ij4KKworIDxwPlRoZSBmb2xsb3dpbmcgZml2ZSBsaW5lcyBzaG91bGQgYmUgdGhlIHNhbWU6PC9w
PgorCisgPGRpdiBjbGFzcz0idGVzdCIgaWQ9InRlc3QwIj4KKyAgPCEtLSA8c3BhbiBjbGFzcz0i
aW5jcmVtZW50Ij48L3NwYW4+IC0tPgorICA8c3BhbiBjbGFzcz0ic2hvdyIgaWQ9ImEwIj48L3Nw
YW4+CisgIDxzcGFuIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj4KKyAgPHNwYW4gY2xhc3M9InNo
b3ciIGlkPSJhMSI+PC9zcGFuPgorICA8c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+Cisg
IDxzcGFuIGNsYXNzPSJzaG93IiBpZD0iYTIiPjwvc3Bhbj4KKyA8L2Rpdj4KKworIDxkaXYgY2xh
c3M9InRlc3QiIGlkPSJ0ZXN0MSI+CisgIDxzcGFuIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj4K
KyAgPHNwYW4gY2xhc3M9InNob3ciIGlkPSJiMCI+PC9zcGFuPgorICA8IS0tIDxzcGFuIGNsYXNz
PSJpbmNyZW1lbnQiPjwvc3Bhbj4gLS0+CisgIDxzcGFuIGNsYXNzPSJzaG93IiBpZD0iYjEiPjwv
c3Bhbj4KKyAgPHNwYW4gY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPgorICA8c3BhbiBjbGFzcz0i
c2hvdyIgaWQ9ImIyIj48L3NwYW4+CisgPC9kaXY+CisKKyA8ZGl2IGNsYXNzPSJ0ZXN0IiBpZD0i
dGVzdDIiPgorICA8c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+CisgIDxzcGFuIGNsYXNz
PSJzaG93IiBpZD0iYzAiPjwvc3Bhbj4KKyAgPHNwYW4gY2xhc3M9ImluY3JlbWVudCI+PC9zcGFu
PgorICA8c3BhbiBjbGFzcz0ic2hvdyIgaWQ9ImMxIj48L3NwYW4+CisgIDwhLS0gPHNwYW4gY2xh
c3M9ImluY3JlbWVudCI+PC9zcGFuPiAtLT4KKyAgPHNwYW4gY2xhc3M9InNob3ciIGlkPSJjMiI+
PC9zcGFuPgorIDwvZGl2PgorCisgPGRpdiBjbGFzcz0idGVzdCI+CisgIDxzcGFuIGNsYXNzPSJp
bmNyZW1lbnQiPjwvc3Bhbj4KKyAgPHNwYW4gY2xhc3M9InNob3ciPjwvc3Bhbj4KKyAgPHNwYW4g
Y2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPgorICA8c3BhbiBjbGFzcz0ic2hvdyI+PC9zcGFuPgor
ICA8c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+CisgIDxzcGFuIGNsYXNzPSJzaG93Ij48
L3NwYW4+CisgPC9kaXY+CisKKyA8ZGl2IGlkPSJyZWZlcmVuY2UiPjEtIDItIDMtPC9kaXY+CisK
KyA8L2Rpdj4KKworIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCisgPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA5ZTU1NTBmLi45ZTIyMjgzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDA5LTExLTA5ICBTaGluaWNoaXJv
IEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ291bnRlcnMgYXJlbid0IHVwZGF0ZWQgd2hlbiBhIG5l
dyBjb3VudGVyLWluY3JlbWVudCBpcyBhZGRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA1MDUKKworICAgICAgICBJbnZhbGlkYXRlIHN1YnNlcXVl
bnQgY291bnRlciBub2RlcyBhZnRlciBhbiBhZGRlZCBjb3VudGVyIG5vZGUuCisKKyAgICAgICAg
VGVzdDogZmFzdC9jc3MvY291bnRlcnMvYWRkLWluY3JlbWVudC5odG1sCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZXN0cm95Q291
bnRlck5vZGVzSW5NYXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQ291bnRlcjo6aW52YWxp
ZGF0ZVN1YnNlcXVlbnRDb3VudGVyTm9kZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQ291
bnRlcjo6ZGVzdHJveUNvdW50ZXJOb2Rlcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckNv
dW50ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6YWRkQ2hpbGQpOgorCiAyMDA5LTExLTA4ICBLZW50IFRh
bXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKaW5kZXggMTdjNmRhZC4uYjIwNjQ2
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKKysrIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKQEAgLTI5NSwxNCArMjk1LDggQEAg
c3RhdGljIHZvaWQgZGVzdHJveUNvdW50ZXJOb2RlQ2hpbGRyZW4oQXRvbWljU3RyaW5nSW1wbCog
aWRlbnRpZmllciwgQ291bnRlck5vZGUKICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyQ291bnRlcjo6
ZGVzdHJveUNvdW50ZXJOb2RlcyhSZW5kZXJPYmplY3QqIG9iamVjdCkKK3N0YXRpYyB2b2lkIGRl
c3Ryb3lDb3VudGVyTm9kZXNJbk1hcChDb3VudGVyTWFwKiBtYXApCiB7Ci0gICAgQ291bnRlck1h
cHMmIG1hcHMgPSBjb3VudGVyTWFwcygpOwotICAgIENvdW50ZXJNYXAqIG1hcCA9IG1hcHMuZ2V0
KG9iamVjdCk7Ci0gICAgaWYgKCFtYXApCi0gICAgICAgIHJldHVybjsKLSAgICBtYXBzLnJlbW92
ZShvYmplY3QpOwotCiAgICAgQ291bnRlck1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbWFwLT5l
bmQoKTsKICAgICBmb3IgKENvdW50ZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbWFwLT5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgQ291bnRlck5vZGUqIG5vZGUgPSBpdC0+
c2Vjb25kOwpAQCAtMzExLDcgKzMwNSwzMSBAQCB2b2lkIFJlbmRlckNvdW50ZXI6OmRlc3Ryb3lD
b3VudGVyTm9kZXMoUmVuZGVyT2JqZWN0KiBvYmplY3QpCiAgICAgICAgICAgICBwYXJlbnQtPnJl
bW92ZUNoaWxkKG5vZGUpOwogICAgICAgICBkZWxldGUgbm9kZTsKICAgICB9Cit9CisKK3ZvaWQg
UmVuZGVyQ291bnRlcjo6aW52YWxpZGF0ZVN1YnNlcXVlbnRDb3VudGVyTm9kZXMoUmVuZGVyT2Jq
ZWN0KiBvYmplY3QpCit7CisgICAgQ291bnRlck1hcHMmIG1hcHMgPSBjb3VudGVyTWFwcygpOwor
ICAgIGZvciAob2JqZWN0LT5uZXh0SW5QcmVPcmRlcigpOyBvYmplY3Q7IG9iamVjdCA9IG9iamVj
dC0+bmV4dEluUHJlT3JkZXIoKSkgeworICAgICAgICBpZiAob2JqZWN0LT5pc0NvdW50ZXIoKSkK
KyAgICAgICAgICAgIHRvUmVuZGVyQ291bnRlcihvYmplY3QpLT5pbnZhbGlkYXRlKCk7CisKKyAg
ICAgICAgQ291bnRlck1hcCogbWFwID0gbWFwcy5nZXQob2JqZWN0KTsKKyAgICAgICAgaWYgKCFt
YXApCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgZGVzdHJveUNvdW50ZXJOb2Rlc0lu
TWFwKG1hcCk7CisgICAgICAgIG1hcC0+Y2xlYXIoKTsKKyAgICB9Cit9CiAKK3ZvaWQgUmVuZGVy
Q291bnRlcjo6ZGVzdHJveUNvdW50ZXJOb2RlcyhSZW5kZXJPYmplY3QqIG9iamVjdCkKK3sKKyAg
ICBDb3VudGVyTWFwcyYgbWFwcyA9IGNvdW50ZXJNYXBzKCk7CisgICAgQ291bnRlck1hcCogbWFw
ID0gbWFwcy5nZXQob2JqZWN0KTsKKyAgICBpZiAoIW1hcCkKKyAgICAgICAgcmV0dXJuOworICAg
IG1hcHMucmVtb3ZlKG9iamVjdCk7CisgICAgZGVzdHJveUNvdW50ZXJOb2Rlc0luTWFwKG1hcCk7
CiAgICAgZGVsZXRlIG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQ291bnRlci5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5oCmluZGV4IDk2
MTk2OGUuLjM4OWYzZDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50
ZXIuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmgKQEAgLTM1LDYgKzM1
LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKKyAgICBzdGF0aWMgdm9p
ZCBpbnZhbGlkYXRlU3Vic2VxdWVudENvdW50ZXJOb2RlcyhSZW5kZXJPYmplY3QqKTsKICAgICBz
dGF0aWMgdm9pZCBkZXN0cm95Q291bnRlck5vZGVzKFJlbmRlck9iamVjdCopOwogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggM2RjNTY1Yy4uYmI0OWVkNSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0zMTAsNiArMzEwLDE1IEBAIHZvaWQgUmVu
ZGVyT2JqZWN0OjphZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3Qq
IGJlZm9yZUNoaWxkKQogICAgICAgICBpZiAodGV4dFRvVHJhbnNmb3JtKQogICAgICAgICAgICAg
dG9SZW5kZXJUZXh0KG5ld0NoaWxkKS0+c2V0VGV4dCh0ZXh0VG9UcmFuc2Zvcm0ucmVsZWFzZSgp
LCB0cnVlKTsKICAgICB9CisKKyAgICAvLyBJZiBuZXdDaGlsZCBoYXMgY291bnRlciBkaXJlY3Rp
dmVzIGFuZCBpcyBhbm9ueW1vdXMsIHRoaXMgbWVhbnMKKyAgICAvLyBuZXdDaGlsZCBpcyA6YmVm
b3JlIG9yIDphZnRlci4gQXMgdGhlc2Ugbm9kZXMgYXJlbid0IGNvbm5lY3RlZAorICAgIC8vIHRv
IHRoZSByZW5kZXIgdHJlZSB5ZXQsIHdlIGNhbm5vdCBjYWxjdWxhdGUgdGhlaXIgdmFsdWUKKyAg
ICAvLyBjb3JyZWN0bHkgaGVyZS4gQW55d2F5LCBmb3IgdGhpcyBjYXNlLCB3ZSBkb24ndCBuZWVk
IHRvCisgICAgLy8gcmVnaXN0ZXIgYSBjb3VudGVyIG5vdyBiZWNhdXNlIHRoZSB2YWx1ZSBvZiBu
ZXdDaGlsZCB3aWxsIGJlCisgICAgLy8gY2FsY3VsYXRlZCBpbiBvcmlnaW5hbFRleHQoKS4KKyAg
ICBpZiAobmV3Q2hpbGQtPnN0eWxlKCktPmNvdW50ZXJEaXJlY3RpdmVzKCkgJiYgIW5ld0NoaWxk
LT5pc0Fub255bW91cygpKQorICAgICAgICBSZW5kZXJDb3VudGVyOjppbnZhbGlkYXRlU3Vic2Vx
dWVudENvdW50ZXJOb2RlcyhuZXdDaGlsZCk7CiB9CiAKIHZvaWQgUmVuZGVyT2JqZWN0OjpyZW1v
dmVDaGlsZChSZW5kZXJPYmplY3QqIG9sZENoaWxkKQ==
</data>
<flag name="review"
          id="24318"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="24457"
          type_id="3"
          status="-"
          setter="hamaji"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43300</attachid>
            <date>2009-11-16 05:37:11 -0800</date>
            <delta_ts>2009-11-16 05:37:11 -0800</delta_ts>
            <desc>Resolving conflict for r50960</desc>
            <filename>bug-30505-20091116223709.patch</filename>
            <type>text/plain</type>
            <size>11600</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5NWZjYTNhLi4wY2I4NjJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMTEt
MTYgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3VudGVycyBhcmVuJ3QgdXBk
YXRlZCB3aGVuIGEgbmV3IGNvdW50ZXItaW5jcmVtZW50IGlzIGFkZGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDUwNQorCisgICAgICAgICogZmFz
dC9jc3MvY291bnRlcnMvYWRkLWluY3JlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY3NzL2NvdW50ZXJzL2FkZC1pbmNyZW1lbnQuaHRtbDogQWRkZWQuCisKIDIwMDkt
MTEtMTUgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBG
aXhpbmcgYnJva2VuIGxheW91dCB0ZXN0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY291bnRlcnMvYWRkLWluY3JlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb3VudGVycy9hZGQtaW5jcmVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4wMGM3ODliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY291bnRlcnMvYWRkLWluY3JlbWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyMSBAQAorQmVmb3JlIHRoZSBkeW5hbWljIGNoYW5nZToKK1BBU1MgbGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2EwJykgaXMgJzAnCitQQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhMScpIGlzICcxJwor
UEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYTIn
KSBpcyAnMicKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ2IwJykgaXMgJzEnCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCdiMScpIGlzICcxJworUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYjInKSBpcyAnMicKK1BBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2MwJykgaXMgJzEnCitQQVNTIGxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdjMScpIGlzICcy
JworUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
YzInKSBpcyAnMicKK0FmdGVyIHRoZSBkeW5hbWljIGNoYW5nZToKK1BBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2EwJykgaXMgJzEnCitQQVNTIGxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhMScpIGlzICcy
JworUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
YTInKSBpcyAnMycKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ2IwJykgaXMgJzEnCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCdiMScpIGlzICcyJworUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYjInKSBpcyAnMycKK1BBU1MgbGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2MwJykgaXMgJzEnCitQQVNT
IGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdjMScpIGlz
ICcyJworUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgnYzInKSBpcyAnMycKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRl
cnMvYWRkLWluY3JlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvYWRk
LWluY3JlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1ODFm
Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZGQt
aW5jcmVtZW50Lmh0bWwKQEAgLTAsMCArMSwxMTggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiI+Cis8aHRtbD4KKyA8aGVhZD4KKyAgPHRpdGxlPmR5
bmFtaWMgYWRkaXRpb24gb2YgJ2NvdW50ZXItaW5jcmVtZW50JzwvdGl0bGU+CisgIDxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+CisKKyAgLnRlc3QgeyBjb3VudGVyLXJlc2V0OiBjOyB9CisgIC5pbmNy
ZW1lbnQgeyBjb3VudGVyLWluY3JlbWVudDogYzsgfQorICAuc2hvdzpiZWZvcmUgeyBjb250ZW50
OiBjb3VudGVycyhjLCAiLiIpICItIjsgfQorCisgIDwvc3R5bGU+CisgIDxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CisKKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICBmdW5jdGlv
biBjaGVja0NvdW50ZXJWYWx1ZXNCZWZvcmVDaGFuZ2UoKQorICB7CisgICAgICBkZWJ1ZygnQmVm
b3JlIHRoZSBkeW5hbWljIGNoYW5nZTonKTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYTAnKSIsICInMCciKTsKKyAgICAg
IHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgnYTEnKSIsICInMSciKTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYTInKSIsICInMiciKTsKKyAgICAgIHNob3VsZEJl
KCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYjAnKSIs
ICInMSciKTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgnYjEnKSIsICInMSciKTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYjInKSIsICInMiciKTsK
KyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgnYzAnKSIsICInMSciKTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJv
bGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYzEnKSIsICInMiciKTsKKyAgICAgIHNo
b3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
YzInKSIsICInMiciKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNoZWNrQ291bnRlclZhbHVlc0FmdGVy
Q2hhbmdlKCkKKyAgeworICAgICAgZGVidWcoJ0FmdGVyIHRoZSBkeW5hbWljIGNoYW5nZTonKTsK
KyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgnYTAnKSIsICInMSciKTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJv
bGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYTEnKSIsICInMiciKTsKKyAgICAgIHNo
b3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
YTInKSIsICInMyciKTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYjAnKSIsICInMSciKTsKKyAgICAgIHNob3VsZEJlKCJs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYjEnKSIsICIn
MiciKTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgnYjInKSIsICInMyciKTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYzAnKSIsICInMSciKTsKKyAg
ICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgnYzEnKSIsICInMiciKTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYzInKSIsICInMyciKTsKKworICAgICAgLy8g
RWxpbWluYXRlIGNvbmZ1c2luZyBtZXNzYWdlcyAoY291bnRlciB2YWx1ZXMgd29uJ3QgYmUgZHVt
cGVkIGJ5IGR1bXBBc1RleHQpLgorICAgICAgdmFyIHZpZXdFbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInZpZXciKTsKKyAgICAgIHZpZXdFbGVtZW50LnBhcmVudE5vZGUucmVtb3Zl
Q2hpbGQodmlld0VsZW1lbnQpOworICB9CisKKyAgZnVuY3Rpb24gcnVuKCkKKyAgeworICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICBjaGVja0NvdW50ZXJW
YWx1ZXNCZWZvcmVDaGFuZ2UoKTsKKworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAzOyBpKysp
IHsKKyAgICAgICAgICB2YXIgdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0IiArIGkp
OworICAgICAgICAgIHZhciBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAg
ICAgICAgIHMuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJpbmNyZW1lbnQiKTsKKyAgICAgICAgICB0
Lmluc2VydEJlZm9yZShzLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChbImEwIiwgImIxIiwgImMy
Il1baV0pKTsKKyAgICAgIH0KKworICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgICBjaGVja0NvdW50ZXJWYWx1ZXNBZnRlckNoYW5nZSgpOworICB9CisKKyAg
PC9zY3JpcHQ+CisgPC9oZWFkPgorCisgPGJvZHkgb25sb2FkPSJydW4oKTsiPgorCisgPGRpdiBp
ZD0idmlldyI+CisKKyA8cD5UaGUgZm9sbG93aW5nIGZpdmUgbGluZXMgc2hvdWxkIGJlIHRoZSBz
YW1lOjwvcD4KKworIDxkaXYgY2xhc3M9InRlc3QiIGlkPSJ0ZXN0MCI+CisgIDwhLS0gPHNwYW4g
Y2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPiAtLT4KKyAgPHNwYW4gY2xhc3M9InNob3ciIGlkPSJh
MCI+PC9zcGFuPgorICA8c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+CisgIDxzcGFuIGNs
YXNzPSJzaG93IiBpZD0iYTEiPjwvc3Bhbj4KKyAgPHNwYW4gY2xhc3M9ImluY3JlbWVudCI+PC9z
cGFuPgorICA8c3BhbiBjbGFzcz0ic2hvdyIgaWQ9ImEyIj48L3NwYW4+CisgPC9kaXY+CisKKyA8
ZGl2IGNsYXNzPSJ0ZXN0IiBpZD0idGVzdDEiPgorICA8c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48
L3NwYW4+CisgIDxzcGFuIGNsYXNzPSJzaG93IiBpZD0iYjAiPjwvc3Bhbj4KKyAgPCEtLSA8c3Bh
biBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+IC0tPgorICA8c3BhbiBjbGFzcz0ic2hvdyIgaWQ9
ImIxIj48L3NwYW4+CisgIDxzcGFuIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj4KKyAgPHNwYW4g
Y2xhc3M9InNob3ciIGlkPSJiMiI+PC9zcGFuPgorIDwvZGl2PgorCisgPGRpdiBjbGFzcz0idGVz
dCIgaWQ9InRlc3QyIj4KKyAgPHNwYW4gY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPgorICA8c3Bh
biBjbGFzcz0ic2hvdyIgaWQ9ImMwIj48L3NwYW4+CisgIDxzcGFuIGNsYXNzPSJpbmNyZW1lbnQi
Pjwvc3Bhbj4KKyAgPHNwYW4gY2xhc3M9InNob3ciIGlkPSJjMSI+PC9zcGFuPgorICA8IS0tIDxz
cGFuIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj4gLS0+CisgIDxzcGFuIGNsYXNzPSJzaG93IiBp
ZD0iYzIiPjwvc3Bhbj4KKyA8L2Rpdj4KKworIDxkaXYgY2xhc3M9InRlc3QiPgorICA8c3BhbiBj
bGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+CisgIDxzcGFuIGNsYXNzPSJzaG93Ij48L3NwYW4+Cisg
IDxzcGFuIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj4KKyAgPHNwYW4gY2xhc3M9InNob3ciPjwv
c3Bhbj4KKyAgPHNwYW4gY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPgorICA8c3BhbiBjbGFzcz0i
c2hvdyI+PC9zcGFuPgorIDwvZGl2PgorCisgPGRpdiBpZD0icmVmZXJlbmNlIj4xLSAyLSAzLTwv
ZGl2PgorCisgPC9kaXY+CisKKyA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggYTY0YzE0My4uM2E2OTg2ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAwOS0xMS0xNiAgU2hp
bmljaGlybyBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdW50ZXJzIGFyZW4ndCB1cGRhdGVkIHdo
ZW4gYSBuZXcgY291bnRlci1pbmNyZW1lbnQgaXMgYWRkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTA1CisKKyAgICAgICAgVGVzdDogZmFzdC9j
c3MvY291bnRlcnMvYWRkLWluY3JlbWVudC5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQ291bnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZXN0cm95Q291bnRlck5vZGVJbk1h
cEl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmRlc3Ryb3lDb3VudGVyTm9kZXNJbk1hcCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb3VudGVyOjppbnZhbGlkYXRlU3Vic2VxdWVudENv
dW50ZXJOb2Rlcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb3VudGVyOjpkZXN0cm95Q291
bnRlck5vZGVzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQ291bnRlci5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
T2JqZWN0OjphZGRDaGlsZCk6CisKIDIwMDktMTEtMTQgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6
YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKaW5kZXggNmEwNzYxNi4uY2JmZDc1ZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKKysrIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKQEAgLTI3Myw2ICsyNzMsNTEgQEAgc3RhdGljIHZvaWQg
ZGVzdHJveUNvdW50ZXJOb2RlQ2hpbGRyZW4oY29uc3QgQXRvbWljU3RyaW5nJiBpZGVudGlmaWVy
LCBDb3VudGVyTm8KICAgICB9CiB9CiAKK3N0YXRpYyB2b2lkIGRlc3Ryb3lDb3VudGVyTm9kZUlu
TWFwSXRlcmF0b3IoQ291bnRlck1hcDo6Y29uc3RfaXRlcmF0b3IgaXQpCit7CisgICAgQ291bnRl
ck5vZGUqIG5vZGUgPSBpdC0+c2Vjb25kOworICAgIEF0b21pY1N0cmluZyBpZGVudGlmaWVyKGl0
LT5maXJzdC5nZXQoKSk7CisgICAgZGVzdHJveUNvdW50ZXJOb2RlQ2hpbGRyZW4oaWRlbnRpZmll
ciwgbm9kZSk7CisgICAgaWYgKENvdW50ZXJOb2RlKiBwYXJlbnQgPSBub2RlLT5wYXJlbnQoKSkK
KyAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZChub2RlLCBpZGVudGlmaWVyKTsKKyAgICBkZWxl
dGUgbm9kZTsKK30KKworc3RhdGljIHZvaWQgZGVzdHJveUNvdW50ZXJOb2Rlc0luTWFwKENvdW50
ZXJNYXAqIG1hcCkKK3sKKyAgICBDb3VudGVyTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBtYXAt
PmVuZCgpOworICAgIGZvciAoQ291bnRlck1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtYXAtPmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgZGVzdHJveUNvdW50ZXJOb2RlSW5NYXBJ
dGVyYXRvcihpdCk7Cit9CisKK3ZvaWQgUmVuZGVyQ291bnRlcjo6aW52YWxpZGF0ZVN1YnNlcXVl
bnRDb3VudGVyTm9kZXMoUmVuZGVyT2JqZWN0KiBvYmplY3QpCit7CisgICAgLy8gV2Ugd2lsbCBp
bnZhbGlkYXRlIGNvdW50ZXJzIHdob3NlIGlkZW50aWZpZXIgaXMgaW5jbHVkZWQgaW4gdGhpcyBt
YXAuCisgICAgY29uc3QgQ291bnRlckRpcmVjdGl2ZU1hcCogY2hhbmdpbmdDb3VudGVyTWFwID0g
b2JqZWN0LT5zdHlsZSgpLT5jb3VudGVyRGlyZWN0aXZlcygpOworICAgIEFTU0VSVChjaGFuZ2lu
Z0NvdW50ZXJNYXApOworICAgIENvdW50ZXJEaXJlY3RpdmVNYXA6OmNvbnN0X2l0ZXJhdG9yIGNo
YW5naW5nQ291bnRlck1hcEVuZCA9IGNoYW5naW5nQ291bnRlck1hcC0+ZW5kKCk7CisKKyAgICBD
b3VudGVyTWFwcyYgbWFwcyA9IGNvdW50ZXJNYXBzKCk7CisgICAgZm9yIChvYmplY3QtPm5leHRJ
blByZU9yZGVyKCk7IG9iamVjdDsgb2JqZWN0ID0gb2JqZWN0LT5uZXh0SW5QcmVPcmRlcigpKSB7
CisgICAgICAgIGlmIChvYmplY3QtPmlzQ291bnRlcigpKSB7CisgICAgICAgICAgICBmb3IgKENv
dW50ZXJEaXJlY3RpdmVNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gY2hhbmdpbmdDb3VudGVyTWFw
LT5iZWdpbigpOyBpdCAhPSBjaGFuZ2luZ0NvdW50ZXJNYXBFbmQ7ICsraXQpCisgICAgICAgICAg
ICAgICAgdG9SZW5kZXJDb3VudGVyKG9iamVjdCktPmludmFsaWRhdGUoQXRvbWljU3RyaW5nKGl0
LT5maXJzdC5nZXQoKSkpOworICAgICAgICB9CisKKyAgICAgICAgQ291bnRlck1hcCogbWFwID0g
bWFwcy5nZXQob2JqZWN0KTsKKyAgICAgICAgaWYgKCFtYXApCisgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICBDb3VudGVyTWFwOjppdGVyYXRvciBlbmQgPSBtYXAtPmVuZCgpOworICAg
ICAgICBmb3IgKENvdW50ZXJEaXJlY3RpdmVNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gY2hhbmdp
bmdDb3VudGVyTWFwLT5iZWdpbigpOyBpdCAhPSBjaGFuZ2luZ0NvdW50ZXJNYXBFbmQ7ICsraXQp
IHsKKyAgICAgICAgICAgIENvdW50ZXJNYXA6Oml0ZXJhdG9yIGZvdW5kID0gbWFwLT5maW5kKGl0
LT5maXJzdCk7CisgICAgICAgICAgICBpZiAoZm91bmQgIT0gZW5kKQorICAgICAgICAgICAgICAg
IGRlc3Ryb3lDb3VudGVyTm9kZUluTWFwSXRlcmF0b3IoZm91bmQpOworICAgICAgICAgICAgbWFw
LT5yZW1vdmUoZm91bmQpOworICAgICAgICB9CisgICAgfQorfQorCiB2b2lkIFJlbmRlckNvdW50
ZXI6OmRlc3Ryb3lDb3VudGVyTm9kZXMoUmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7CiAgICAgQ291
bnRlck1hcHMmIG1hcHMgPSBjb3VudGVyTWFwcygpOwpAQCAtMjgwLDE3ICszMjUsNyBAQCB2b2lk
IFJlbmRlckNvdW50ZXI6OmRlc3Ryb3lDb3VudGVyTm9kZXMoUmVuZGVyT2JqZWN0KiBvYmplY3Qp
CiAgICAgaWYgKCFtYXApCiAgICAgICAgIHJldHVybjsKICAgICBtYXBzLnJlbW92ZShvYmplY3Qp
OwotCi0gICAgQ291bnRlck1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbWFwLT5lbmQoKTsKLSAg
ICBmb3IgKENvdW50ZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbWFwLT5iZWdpbigpOyBpdCAh
PSBlbmQ7ICsraXQpIHsKLSAgICAgICAgQ291bnRlck5vZGUqIG5vZGUgPSBpdC0+c2Vjb25kOwot
ICAgICAgICBBdG9taWNTdHJpbmcgaWRlbnRpZmllcihpdC0+Zmlyc3QuZ2V0KCkpOwotICAgICAg
ICBkZXN0cm95Q291bnRlck5vZGVDaGlsZHJlbihpZGVudGlmaWVyLCBub2RlKTsKLSAgICAgICAg
aWYgKENvdW50ZXJOb2RlKiBwYXJlbnQgPSBub2RlLT5wYXJlbnQoKSkKLSAgICAgICAgICAgIHBh
cmVudC0+cmVtb3ZlQ2hpbGQobm9kZSwgaWRlbnRpZmllcik7Ci0gICAgICAgIGRlbGV0ZSBub2Rl
OwotICAgIH0KLQorICAgIGRlc3Ryb3lDb3VudGVyTm9kZXNJbk1hcChtYXApOwogICAgIGRlbGV0
ZSBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIu
aCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuaAppbmRleCAzNTZmMWJkLi5lNTlm
MTFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmgKKysrIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5oCkBAIC0zOSw2ICszOSw3IEBAIHB1Ymxp
YzoKICAgICAvLyB0cmVlIGZvciBpZGVudGlmaWVyIGNoYW5nZXMuCiAgICAgdm9pZCBpbnZhbGlk
YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgaWRlbnRpZmllcik7CiAKKyAgICBzdGF0aWMgdm9pZCBp
bnZhbGlkYXRlU3Vic2VxdWVudENvdW50ZXJOb2RlcyhSZW5kZXJPYmplY3QqKTsKICAgICBzdGF0
aWMgdm9pZCBkZXN0cm95Q291bnRlck5vZGVzKFJlbmRlck9iamVjdCopOwogCiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggMWU4ZTE5Zi4uYWQ3YzlmYyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0zMTAsNiArMzEwLDE1IEBAIHZvaWQgUmVuZGVy
T2JqZWN0OjphZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJl
Zm9yZUNoaWxkKQogICAgICAgICBpZiAodGV4dFRvVHJhbnNmb3JtKQogICAgICAgICAgICAgdG9S
ZW5kZXJUZXh0KG5ld0NoaWxkKS0+c2V0VGV4dCh0ZXh0VG9UcmFuc2Zvcm0ucmVsZWFzZSgpLCB0
cnVlKTsKICAgICB9CisKKyAgICAvLyBJZiBuZXdDaGlsZCBoYXMgY291bnRlciBkaXJlY3RpdmVz
IGFuZCBpcyBhbm9ueW1vdXMsIHRoaXMgbWVhbnMKKyAgICAvLyBuZXdDaGlsZCBpcyA6YmVmb3Jl
IG9yIDphZnRlci4gQXMgdGhlc2Ugbm9kZXMgYXJlbid0IGNvbm5lY3RlZAorICAgIC8vIHRvIHRo
ZSByZW5kZXIgdHJlZSB5ZXQsIHdlIGNhbm5vdCBjYWxjdWxhdGUgdGhlaXIgdmFsdWUKKyAgICAv
LyBjb3JyZWN0bHkgaGVyZS4gQW55d2F5LCBmb3IgdGhpcyBjYXNlLCB3ZSBkb24ndCBuZWVkIHRv
CisgICAgLy8gcmVnaXN0ZXIgYSBjb3VudGVyIG5vdyBiZWNhdXNlIHRoZSB2YWx1ZSBvZiBuZXdD
aGlsZCB3aWxsIGJlCisgICAgLy8gY2FsY3VsYXRlZCBpbiBvcmlnaW5hbFRleHQoKS4KKyAgICBp
ZiAobmV3Q2hpbGQtPnN0eWxlKCktPmNvdW50ZXJEaXJlY3RpdmVzKCkgJiYgIW5ld0NoaWxkLT5p
c0Fub255bW91cygpKQorICAgICAgICBSZW5kZXJDb3VudGVyOjppbnZhbGlkYXRlU3Vic2VxdWVu
dENvdW50ZXJOb2RlcyhuZXdDaGlsZCk7CiB9CiAKIHZvaWQgUmVuZGVyT2JqZWN0OjpyZW1vdmVD
aGlsZChSZW5kZXJPYmplY3QqIG9sZENoaWxkKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>