<?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>4377</bug_id>
          
          <creation_ts>2005-08-10 17:09:12 -0700</creation_ts>
          <short_desc>visibility:hidden can&apos;t be overridden in child for positioned element</short_desc>
          <delta_ts>2007-04-14 12:47:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>adele</cc>
    
    <cc>ian</cc>
    
    <cc>mnater</cc>
    
    <cc>oliver</cc>
    
    <cc>simon.martin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>16393</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2005-08-10 17:09:12 -0700</bug_when>
    <thetext>render_layer completely ignores (as optimization) boxes with visibility:hidden.
This means however that the child element of a positioned box can&apos;t override the
visibility, as it should. http://www.moposivut.com/

Works in both IE and Gecko.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16394</commentid>
    <comment_count>1</comment_count>
      <attachid>3327</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2005-08-10 17:10:30 -0700</bug_when>
    <thetext>Created attachment 3327
testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>19066</commentid>
    <comment_count>2</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2005-09-08 00:12:29 -0700</bug_when>
    <thetext>From hyatt, this&apos;ll be a pain to fix -- part of the reason for webkit doing DHTML faster 

Will be looking at adding a bit field in the next day or two...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>19238</commentid>
    <comment_count>3</comment_count>
      <attachid>3829</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2005-09-09 14:07:12 -0700</bug_when>
    <thetext>Created attachment 3829
patch

keep track of child visibility in renderlayer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>19239</commentid>
    <comment_count>4</comment_count>
      <attachid>3830</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2005-09-09 14:12:58 -0700</bug_when>
    <thetext>Created attachment 3830
better test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>19245</commentid>
    <comment_count>5</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2005-09-09 15:38:03 -0700</bug_when>
    <thetext>I would put the updates in appendChildNode and insertChildNode, since addChild is not called for all 
RenderTree manipulations (e.g., when generated content is used or anonymous blocks and continuations 
cause reshuffling of the tree).
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>20426</commentid>
    <comment_count>6</comment_count>
      <attachid>4026</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2005-09-23 21:01:43 -0700</bug_when>
    <thetext>Created attachment 4026
updated patch

updated patch based on daves comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21600</commentid>
    <comment_count>7</comment_count>
      <attachid>4026</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-10-08 23:17:16 -0700</bug_when>
    <thetext>Comment on attachment 4026
updated patch

I know this is an entirely trivial comment, but there&apos;s no need for a return;
at the end of RenderLayer::checkVisibility.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22190</commentid>
    <comment_count>8</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2005-10-17 20:38:12 -0700</bug_when>
    <thetext>See this link:

http://dbaron.org/log/2005-10#e20051013a

We should try S5, since it sounds like it&apos;s a good test case for this.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22196</commentid>
    <comment_count>9</comment_count>
      <attachid>4026</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2005-10-17 20:59:51 -0700</bug_when>
    <thetext>Comment on attachment 4026
updated patch

+    if (style()-&gt;visibility() != VISIBLE &amp;&amp;
newChild-&gt;style()-&gt;visibility()==VISIBLE &amp;&amp; !newChild-&gt;layer()) {

Style nit with the above, needs spaces before and after the ==.  

+    if (!object-&gt;firstChild() &amp;&amp; object-&gt;style()) {
+	 m_visibilityKnown = true;
+	 m_hasVisibleContent = object-&gt;style()-&gt;visibility() == VISIBLE;
+    }

This seems like a needlessly aggressive optimization to me.  checkVisibility()
will quickly determine the same thing, right?

Your change to collectLayers results in the entire layer tree being walked now.
 The old code would not descend into child layers if they weren&apos;t visible.  You
could further optimize by propagating bits up the layer tree (i.e., rather than
just a &quot;hasVisibleContent&quot; in this layer bit, you could have a
&quot;hasVisibleContent&quot; bit for the layer or its descendant layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22197</commentid>
    <comment_count>10</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2005-10-17 22:58:43 -0700</bug_when>
    <thetext>I think I would have to add another bit for tracking if child layer visibility is known (or something 
comparable). I&apos;m still not convinced this is worth it. Yes, we loop through child layers of an invisible layer 
which we did not do before, but only thing we do there is test the visibility bit. We do substantially more 
work if the test is positive, but that is the case we are fixing here in the first place.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>56585</commentid>
    <comment_count>11</comment_count>
      <attachid>10790</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2006-09-26 21:36:44 -0700</bug_when>
    <thetext>Created attachment 10790
another updated patch

- update patch to current webkit
- added m_hasVisibleDescendant bit to track visibility of child layers, avoiding the need to crawl through the entire layer tree to find visible layers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>56586</commentid>
    <comment_count>12</comment_count>
      <attachid>10791</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2006-09-26 21:38:58 -0700</bug_when>
    <thetext>Created attachment 10791
updated tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>56589</commentid>
    <comment_count>13</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-09-26 22:10:54 -0700</bug_when>
    <thetext>I&apos;ll review this (soon).
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>56678</commentid>
    <comment_count>14</comment_count>
      <attachid>10812</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2006-09-27 19:34:37 -0700</bug_when>
    <thetext>Created attachment 10812
cosmetic fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>56688</commentid>
    <comment_count>15</comment_count>
      <attachid>10812</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-09-27 22:13:27 -0700</bug_when>
    <thetext>Comment on attachment 10812
cosmetic fixes

r=me, looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>53610</commentid>
    <comment_count>16</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2006-10-11 08:20:16 -0700</bug_when>
    <thetext>r16988</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41725</commentid>
    <comment_count>17</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-12-16 12:38:05 -0800</bug_when>
    <thetext>*** Bug 5614 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41731</commentid>
    <comment_count>18</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-12-16 13:23:41 -0800</bug_when>
    <thetext>*** Bug 9286 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41026</commentid>
    <comment_count>19</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-12-19 11:02:15 -0800</bug_when>
    <thetext>*** Bug 7909 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15346</commentid>
    <comment_count>20</comment_count>
    <who name="rahul abrol">solushex</who>
    <bug_when>2007-04-07 17:23:37 -0700</bug_when>
    <thetext>there&apos;s still a problem when the parent element has its z-index set to a number.  adding z-index:0 to #main in antti&apos;s original attachment hides #monkoolia.

see #nest on atptennis.com, for example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>14803</commentid>
    <comment_count>21</comment_count>
    <who name="rahul abrol">solushex</who>
    <bug_when>2007-04-14 12:47:48 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; see #nest on atptennis.com, for example.

looks like they changed/fixed this.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>3327</attachid>
            <date>2005-08-10 17:10:30 -0700</date>
            <delta_ts>2006-09-26 21:38:58 -0700</delta_ts>
            <desc>testcase</desc>
            <filename>mopo.html</filename>
            <type>text/html</type>
            <size>536</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs
Ly9FTiI+DQoNCjxodG1sPg0KDQoNCjxoZWFkPg0KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiID48
IS0tDQojbW9ua29vbGlhICAgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZDVkNWQ1OyBwb3NpdGlv
bjogYWJzb2x1dGU7IHRvcDogMHB4OyBsZWZ0OiAwcHg7IHdpZHRoOiA0MDBweDsgaGVpZ2h0OiAz
NTBweDsgdmlzaWJpbGl0eTogdmlzaWJsZTsgZGlzcGxheTogYmxvY2sgfQ0KI21haW4geyBiYWNr
Z3JvdW5kLWNvbG9yOiAjMDAwOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNjVweDsgbGVmdDog
MTIxcHg7IHdpZHRoOiA0MDBweDsgaGVpZ2h0OiA3OTZweDsgdmlzaWJpbGl0eTogaGlkZGVuOyBk
aXNwbGF5OiBibG9jayB9DQotLT48L3N0eWxlPg0KCTwvaGVhZD4NCg0KCTxib2R5IGJnY29sb3I9
ImJsYWNrIiB0ZXh0PSJibGFjayI+PGRpdiBpZD0ibWFpbiI+PGRpdiBpZD0ibW9ua29vbGlhIj5N
T05HT0xJQUFOISEhPC9odG1sPg0KDQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3829</attachid>
            <date>2005-09-09 14:07:12 -0700</date>
            <delta_ts>2005-09-23 21:01:43 -0700</delta_ts>
            <desc>patch</desc>
            <filename>visibility.patch</filename>
            <type>text/plain</type>
            <size>7900</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IHJlbmRlcl9jb250YWluZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfY29udGFpbmVyLmNwcCx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS42OApkaWZmIC1wIC11IC1yMS42OCByZW5kZXJfY29udGFpbmVyLmNwcAot
LS0gcmVuZGVyX2NvbnRhaW5lci5jcHAJMzEgQXVnIDIwMDUgMDU6MDk6MDMgLTAwMDAJMS42OAor
KysgcmVuZGVyX2NvbnRhaW5lci5jcHAJOSBTZXAgMjAwNSAxOTowMjo0NSAtMDAwMApAQCAtMTMz
LDYgKzEzMywxMiBAQCB2b2lkIFJlbmRlckNvbnRhaW5lcjo6YWRkQ2hpbGQoUmVuZGVyT2JqCiAg
ICAgICAgIH0KICAgICB9CiAKKyAgICBpZiAoc3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lC
TEUgJiYgbmV3Q2hpbGQtPnN0eWxlKCktPnZpc2liaWxpdHkoKT09VklTSUJMRSkgeworICAgICAg
ICBSZW5kZXJMYXllciogbCA9IGVuY2xvc2luZ0xheWVyKCk7CisgICAgICAgIGwtPnNldEhhc1Zp
c2libGVDb250ZW50KHRydWUpOwkKKyAgICAgICAgbC0+c2V0VmlzaWJpbGl0eUtub3duKHRydWUp
OworICAgIH0KKwogICAgIGlmICggbmVlZHNUYWJsZSApIHsKICAgICAgICAgUmVuZGVyVGFibGUg
KnRhYmxlOwogICAgICAgICBpZiggIWJlZm9yZUNoaWxkICkKQEAgLTE2NSw5ICsxNzEsMTIgQEAg
UmVuZGVyT2JqZWN0KiBSZW5kZXJDb250YWluZXI6OnJlbW92ZUNoaQogICAgIGlmICghZG9jdW1l
bnRCZWluZ0Rlc3Ryb3llZCgpKSB7CiAgICAgICAgIG9sZENoaWxkLT5zZXROZWVkc0xheW91dEFu
ZE1pbk1heFJlY2FsYygpOwogICAgICAgICBvbGRDaGlsZC0+cmVwYWludCgpOwotICAgICAgICAK
KwkJCisgICAgICAgIFJlbmRlckxheWVyKiBsID0gZW5jbG9zaW5nTGF5ZXIoKTsKKyAgICAgICAg
aWYgKG1fc3R5bGUtPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFICYmIG9sZENoaWxkLT5zdHlsZSgp
LT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSkKKyAgICAgICAgICAgIGwtPnNldFZpc2liaWxpdHlL
bm93bihmYWxzZSk7CiAgICAgICAgIC8vIEtlZXAgb3VyIGxheWVyIGhpZXJhcmNoeSB1cGRhdGVk
LgotICAgICAgICBvbGRDaGlsZC0+cmVtb3ZlTGF5ZXJzKGVuY2xvc2luZ0xheWVyKCkpOworICAg
ICAgICBvbGRDaGlsZC0+cmVtb3ZlTGF5ZXJzKGwpOwogICAgIAogICAgICAgICAvLyBpZiBvbGRD
aGlsZCBpcyB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZSBzZWxlY3Rpb24sIHRoZW4gY2xlYXIgdGhl
IHNlbGVjdGlvbiB0bwogICAgICAgICAvLyBhdm9pZCBwcm9ibGVtcyBvZiBpbnZhbGlkIHBvaW50
ZXJzCkluZGV4OiByZW5kZXJfbGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfbGF5ZXIuY3BwLHYKcmV0cmlldmluZyBy
ZXZpc2lvbiAxLjEwMwpkaWZmIC1wIC11IC1yMS4xMDMgcmVuZGVyX2xheWVyLmNwcAotLS0gcmVu
ZGVyX2xheWVyLmNwcAkzMSBBdWcgMjAwNSAwNDozODo0MCAtMDAwMAkxLjEwMworKysgcmVuZGVy
X2xheWVyLmNwcAk5IFNlcCAyMDA1IDE5OjAyOjQ2IC0wMDAwCkBAIC0xMjksNiArMTI5LDggQEAg
bV9uZWdaT3JkZXJMaXN0KCAwICksCiBtX2NsaXBSZWN0cyggMCApICwKIG1fc2Nyb2xsRGltZW5z
aW9uc0RpcnR5KCB0cnVlICksCiBtX3pPcmRlckxpc3RzRGlydHkoIHRydWUgKSwKK21fdmlzaWJp
bGl0eUtub3duKCBmYWxzZSApLAorbV9oYXNWaXNpYmxlQ29udGVudCggZmFsc2UgKSwKIG1fdXNl
ZFRyYW5zcGFyZW5jeSggZmFsc2UgKSwKIG1fbWFycXVlZSggMCApCiB7CkBAIC0xNTEsMTMgKzE1
Myw1MSBAQCBSZW5kZXJMYXllcjo6flJlbmRlckxheWVyKCkKIAogdm9pZCBSZW5kZXJMYXllcjo6
Y29tcHV0ZVJlcGFpbnRSZWN0cygpCiB7Ci0gICAgLy8gRklYTUU6IENoaWxkIG9iamVjdCBjb3Vs
ZCBvdmVycmlkZSB2aXNpYmlsaXR5LgotICAgIGlmIChtX29iamVjdC0+c3R5bGUoKS0+dmlzaWJp
bGl0eSgpID09IFZJU0lCTEUpCisJY2hlY2tWaXNpYmlsaXR5KCk7CisgICAgaWYgKG1faGFzVmlz
aWJsZUNvbnRlbnQpCiAgICAgICAgIG1fb2JqZWN0LT5nZXRBYnNvbHV0ZVJlcGFpbnRSZWN0SW5j
bHVkaW5nRmxvYXRzKG1fcmVwYWludFJlY3QsIG1fZnVsbFJlcGFpbnRSZWN0KTsKICAgICBmb3IJ
KFJlbmRlckxheWVyKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQt
Pm5leHRTaWJsaW5nKCkpCiAgICAgICAgIGNoaWxkLT5jb21wdXRlUmVwYWludFJlY3RzKCk7CiB9
CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OmNoZWNrVmlzaWJpbGl0eSgpCit7CQorICAgIGlmIChtX3Zp
c2liaWxpdHlLbm93bikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1fdmlzaWJpbGl0eUtu
b3duID0gdHJ1ZTsKKyAgICAKKyAgICBpZiAobV9vYmplY3QtPnN0eWxlKCktPnZpc2liaWxpdHko
KSA9PSBWSVNJQkxFKSB7CisgICAgICAgIG1faGFzVmlzaWJsZUNvbnRlbnQgPSB0cnVlOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIC8vIGxheWVyIG1heSBiZSBoaWRkZW4gYnV0
IHN0aWxsIGhhdmUgc29tZSB2aXNpYmxlIGNvbnRlbnQsIGNoZWNrIGZvciB0aGlzCisgICAgbV9o
YXNWaXNpYmxlQ29udGVudCA9IGZhbHNlOworICAgIFJlbmRlck9iamVjdCogciA9IG1fb2JqZWN0
LT5maXJzdENoaWxkKCk7CisgICAgd2hpbGUgKHIpIHsKKyAgICAgICAgaWYgKHItPnN0eWxlKCkt
PnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFKSB7CisgICAgICAgICAgICBtX2hhc1Zpc2libGVDb250
ZW50ID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChy
LT5maXJzdENoaWxkKCkgJiYgIXItPmZpcnN0Q2hpbGQoKS0+bGF5ZXIoKSkKKyAgICAgICAgICAg
IHIgPSByLT5maXJzdENoaWxkKCk7CisgICAgICAgIGVsc2UgaWYgKHItPm5leHRTaWJsaW5nKCkg
JiYgIXItPm5leHRTaWJsaW5nKCktPmxheWVyKCkpCisgICAgICAgICAgICByID0gci0+bmV4dFNp
YmxpbmcoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB3aGlsZSAociAmJiAoIXItPm5l
eHRTaWJsaW5nKCkgfHwgci0+bmV4dFNpYmxpbmcoKS0+bGF5ZXIoKSkpIHsKKyAgICAgICAgICAg
ICAgICByID0gci0+cGFyZW50KCk7CisgICAgICAgICAgICAgICAgaWYgKHI9PW1fb2JqZWN0KQor
ICAgICAgICAgICAgICAgICAgICByID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlm
IChyKQorICAgICAgICAgICAgICAgIHIgPSByLT5uZXh0U2libGluZygpOyAJCQkJCisgICAgICAg
IH0KKyAgICB9CisgICAgcmV0dXJuOworfQorCisKIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxh
eWVyUG9zaXRpb25zKGJvb2wgZG9GdWxsUmVwYWludCwgYm9vbCBjaGVja0ZvclJlcGFpbnQpCiB7
CiAgICAgaWYgKGRvRnVsbFJlcGFpbnQpIHsKQEAgLTE3OCw4ICsyMTgsOCBAQCB2b2lkIFJlbmRl
ckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9ucyhiCiAgICAgICAgIHBvc2l0aW9uU2Nyb2xsYmFy
cyhsYXllckJvdW5kcyk7CiAgICAgfQogCi0gICAgLy8gRklYTUU6IENoaWxkIG9iamVjdCBjb3Vs
ZCBvdmVycmlkZSB2aXNpYmlsaXR5LgotICAgIGlmIChjaGVja0ZvclJlcGFpbnQgJiYgKG1fb2Jq
ZWN0LT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSkpCisJY2hlY2tWaXNpYmlsaXR5
KCk7CisgICAgaWYgKGNoZWNrRm9yUmVwYWludCAmJiBtX2hhc1Zpc2libGVDb250ZW50KQogICAg
ICAgICBtX29iamVjdC0+cmVwYWludEFmdGVyTGF5b3V0SWZOZWVkZWQobV9yZXBhaW50UmVjdCwg
bV9mdWxsUmVwYWludFJlY3QpOwogICAgIAogICAgIGZvcgkoUmVuZGVyTGF5ZXIqIGNoaWxkID0g
Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKQEAgLTE0
MjAsMjYgKzE0NjAsMjcgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlWk9yZGVyTGlzdHMoKQog
CiB2b2lkIFJlbmRlckxheWVyOjpjb2xsZWN0TGF5ZXJzKFFQdHJWZWN0b3I8UmVuZGVyTGF5ZXI+
KiYgcG9zQnVmZmVyLCBRUHRyVmVjdG9yPFJlbmRlckxheWVyPiomIG5lZ0J1ZmZlcikKIHsKKyAg
ICAvLyBpcyB0aGlzIHN0aWxsIHZhbGlkIGNvbW1lbnQ/IC1hbnR0aQogICAgIC8vIEZJWE1FOiBB
IGNoaWxkIHJlbmRlciBvYmplY3Qgb3IgbGF5ZXIgY291bGQgb3ZlcnJpZGUgdmlzaWJpbGl0eS4g
IERvbid0IHJlbW92ZSB0aGlzCiAgICAgLy8gb3B0aW1pemF0aW9uIHRob3VnaCB1bnRpbCBSZW5k
ZXJPYmplY3QncyBub2RlQXRQb2ludCBpcyBwYXRjaGVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0byBk
bwogICAgIC8vIHdoZW4gdmlzaWJpbGl0eSBpcyBvdmVycmlkZGVuIGJ5IGEgY2hpbGQuCi0gICAg
aWYgKHJlbmRlcmVyKCktPnN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKQotICAgICAg
ICByZXR1cm47Ci0gICAgCi0gICAgLy8gRGV0ZXJtaW5lIHdoaWNoIGJ1ZmZlciB0aGUgY2hpbGQg
c2hvdWxkIGJlIGluLgotICAgIFFQdHJWZWN0b3I8UmVuZGVyTGF5ZXI+KiYgYnVmZmVyID0gKHpJ
bmRleCgpID49IDApID8gcG9zQnVmZmVyIDogbmVnQnVmZmVyOwotCi0gICAgLy8gQ3JlYXRlIHRo
ZSBidWZmZXIgaWYgaXQgZG9lc24ndCBleGlzdCB5ZXQuCi0gICAgaWYgKCFidWZmZXIpCi0gICAg
ICAgIGJ1ZmZlciA9IG5ldyBRUHRyVmVjdG9yPFJlbmRlckxheWVyPigpOwotICAgIAotICAgIC8v
IFJlc2l6ZSBieSBhIHBvd2VyIG9mIDIgd2hlbiBvdXIgYnVmZmVyIGZpbGxzIHVwLgotICAgIGlm
IChidWZmZXItPmNvdW50KCkgPT0gYnVmZmVyLT5zaXplKCkpCi0gICAgICAgIGJ1ZmZlci0+cmVz
aXplKDIqKGJ1ZmZlci0+c2l6ZSgpKzEpKTsKLQotICAgIC8vIEFwcGVuZCBvdXJzZWx2ZXMgYXQg
dGhlIGVuZCBvZiB0aGUgYXBwcm9wcmlhdGUgYnVmZmVyLgotICAgIGJ1ZmZlci0+aW5zZXJ0KGJ1
ZmZlci0+Y291bnQoKSwgdGhpcyk7Ci0KKyAgICBjaGVja1Zpc2liaWxpdHkoKTsKKyAgICBpZiAo
bV9oYXNWaXNpYmxlQ29udGVudCkgeworICAgICAgICAvLyBEZXRlcm1pbmUgd2hpY2ggYnVmZmVy
IHRoZSBjaGlsZCBzaG91bGQgYmUgaW4uCisgICAgICAgIFFQdHJWZWN0b3I8UmVuZGVyTGF5ZXI+
KiYgYnVmZmVyID0gKHpJbmRleCgpID49IDApID8gcG9zQnVmZmVyIDogbmVnQnVmZmVyOworCisg
ICAgICAgIC8vIENyZWF0ZSB0aGUgYnVmZmVyIGlmIGl0IGRvZXNuJ3QgZXhpc3QgeWV0LgorICAg
ICAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgICAgIGJ1ZmZlciA9IG5ldyBRUHRyVmVjdG9yPFJl
bmRlckxheWVyPigpOworCisgICAgICAgIC8vIFJlc2l6ZSBieSBhIHBvd2VyIG9mIDIgd2hlbiBv
dXIgYnVmZmVyIGZpbGxzIHVwLgorICAgICAgICBpZiAoYnVmZmVyLT5jb3VudCgpID09IGJ1ZmZl
ci0+c2l6ZSgpKQorICAgICAgICAgICAgYnVmZmVyLT5yZXNpemUoMiooYnVmZmVyLT5zaXplKCkr
MSkpOworICAgICAgICAKKyAgICAgICAgLy8gQXBwZW5kIG91cnNlbHZlcyBhdCB0aGUgZW5kIG9m
IHRoZSBhcHByb3ByaWF0ZSBidWZmZXIuCisgICAgICAgIGJ1ZmZlci0+aW5zZXJ0KGJ1ZmZlci0+
Y291bnQoKSwgdGhpcyk7CisgICAgfQorCQogICAgIC8vIFJlY3VyIGludG8gb3VyIGNoaWxkcmVu
IHRvIGNvbGxlY3QgbW9yZSBsYXllcnMsIGJ1dCBvbmx5IGlmIHdlIGRvbid0IGVzdGFibGlzaAog
ICAgIC8vIGEgc3RhY2tpbmcgY29udGV4dC4KICAgICBpZiAoIWlzU3RhY2tpbmdDb250ZXh0KCkp
IHsKSW5kZXg6IHJlbmRlcl9sYXllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfbGF5ZXIuaCx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS40NwpkaWZmIC1wIC11IC1yMS40NyByZW5kZXJfbGF5ZXIuaAotLS0gcmVuZGVyX2xheWVy
LmgJMTIgSnVsIDIwMDUgMjA6MjY6NDEgLTAwMDAJMS40NworKysgcmVuZGVyX2xheWVyLmgJOSBT
ZXAgMjAwNSAxOTowMjo0NiAtMDAwMApAQCAtMjkwLDYgKzI5MCwxMSBAQCBwdWJsaWM6CiAgICAg
CiAgICAgUVJlY3QgcmVwYWludFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3JlcGFpbnRSZWN0OyB9
CiAKKyAgICBib29sIGhhc1Zpc2libGVDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNWaXNp
YmxlQ29udGVudDsgfQorICAgIHZvaWQgc2V0SGFzVmlzaWJsZUNvbnRlbnQoYm9vbCBiKSB7IG1f
aGFzVmlzaWJsZUNvbnRlbnQgPSBiOyB9CisgICAgdm9pZCBzZXRWaXNpYmlsaXR5S25vd24oYm9v
bCBiKSB7IG1fdmlzaWJpbGl0eUtub3duID0gYjsgfQorICAgIHZvaWQgY2hlY2tWaXNpYmlsaXR5
KCk7CisKICAgICB2b2lkIGRldGFjaChSZW5kZXJBcmVuYSogcmVuZGVyQXJlbmEpOwogCiAgICAg
IC8vIE92ZXJsb2FkZWQgbmV3IG9wZXJhdG9yLiAgRGVyaXZlZCBjbGFzc2VzIG11c3Qgb3ZlcnJp
ZGUgb3BlcmF0b3IgbmV3CkBAIC0zNjcsNiArMzcyLDggQEAgcHJvdGVjdGVkOiAgIAogCiAgICAg
Ym9vbCBtX3Njcm9sbERpbWVuc2lvbnNEaXJ0eSA6IDE7CiAgICAgYm9vbCBtX3pPcmRlckxpc3Rz
RGlydHkgOiAxOworICAgIGJvb2wgbV92aXNpYmlsaXR5S25vd24gOiAxOworICAgIGJvb2wgbV9o
YXNWaXNpYmxlQ29udGVudCA6IDE7CiAKICNpZiBBUFBMRV9DSEFOR0VTCiAgICAgYm9vbCBtX3Vz
ZWRUcmFuc3BhcmVuY3kgOiAxOyAvLyBUcmFja3Mgd2hldGhlciB3ZSBuZWVkIHRvIGNsb3NlIGEg
dHJhbnNwYXJlbnQgbGF5ZXIsIGkuZS4sIHdoZXRoZXIKSW5kZXg6IHJlbmRlcl9vYmplY3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9y
ZW5kZXJfb2JqZWN0LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMTIKZGlmZiAtcCAtdSAt
cjEuMjEyIHJlbmRlcl9vYmplY3QuY3BwCi0tLSByZW5kZXJfb2JqZWN0LmNwcAkzMSBBdWcgMjAw
NSAxMjo0OTozOCAtMDAwMAkxLjIxMgorKysgcmVuZGVyX29iamVjdC5jcHAJOSBTZXAgMjAwNSAx
OTowMjo0NiAtMDAwMApAQCAtMTc0MCw2ICsxNzQwLDE0IEBAIHZvaWQgUmVuZGVyT2JqZWN0Ojpz
ZXRTdHlsZShSZW5kZXJTdHlsZSAKICAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+dmlzaWJp
bGl0eSgpICE9IHN0eWxlLT52aXNpYmlsaXR5KCkpCiAgICAgICAgICAgICAgICAgICAgIGxheWVy
KCktPmRpcnR5Wk9yZGVyTGlzdHMoKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICht
X3N0eWxlLT52aXNpYmlsaXR5KCkgIT0gc3R5bGUtPnZpc2liaWxpdHkoKSkgeworICAgICAgICAg
ICAgICAgIFJlbmRlckxheWVyKiBsID0gZW5jbG9zaW5nTGF5ZXIoKTsgCisgICAgICAgICAgICAg
ICAgaWYgKHN0eWxlLT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSAmJiBsKSB7CisgICAgICAgICAg
ICAgICAgICAgIGwtPnNldEhhc1Zpc2libGVDb250ZW50KHRydWUpOworICAgICAgICAgICAgICAg
ICAgICBsLT5zZXRWaXNpYmlsaXR5S25vd24odHJ1ZSk7CisgICAgICAgICAgICAgICAgfSBlbHNl
IGlmIChsICYmIGwtPmhhc1Zpc2libGVDb250ZW50KCkpCisgICAgICAgICAgICAgICAgICAgIGwt
PnNldFZpc2liaWxpdHlLbm93bihmYWxzZSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAog
ICAgICAgICBkID0gbV9zdHlsZS0+ZGlmZihzdHlsZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>3830</attachid>
            <date>2005-09-09 14:12:58 -0700</date>
            <delta_ts>2006-09-26 21:38:58 -0700</delta_ts>
            <desc>better test case</desc>
            <filename>visibility-test.html</filename>
            <type>text/html</type>
            <size>3752</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">PGh0bWw+CjxzdHlsZT4KZGl2IHsgYm9yZGVyOiAycHggc29saWQgYmx1ZSB9CmRpdiA+IGRpdiB7
IGJvcmRlcjogMnB4IHNvbGlkIHJlZCB9CmRpdiA+IGRpdiA+IGRpdiB7IGJvcmRlcjogMnB4IHNv
bGlkIGdyZWVuIH0KLnZpc2libGUgeyB2aXNpYmlsaXR5OiB2aXNpYmxlfQouaW52aXNpYmxlIHsg
dmlzaWJpbGl0eTogaGlkZGVufQouYWJzdG9wIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OjA7
IHJpZ2h0OjA7IGhlaWdodDozMHB4ICAgfQouYWJzIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0
OjA7IHJpZ2h0OjA7IHRvcDowOyBib3R0b206MCB9Cgo8L3N0eWxlPgo8Ym9keT4KMSBibHVlIGJv
eDoKPGRpdiBjbGFzcz0idmlzaWJsZSI+CjxkaXYgY2xhc3M9ImludmlzaWJsZSI+Cm9rCjwvZGl2
Pgo8L2Rpdj4KMiByZWQgYm94IHdpdGggd29yZCBvazoKPGRpdiBjbGFzcz0iaW52aXNpYmxlIj4K
PGRpdiBjbGFzcz0idmlzaWJsZSI+Cm9rCjwvZGl2Pgo8L2Rpdj4KMyByZWQgYm94IHdpdGggd29y
ZCBvazoKPGRpdiBjbGFzcz0iaW52aXNpYmxlIGFic3RvcCIgPgo8ZGl2IGNsYXNzPSJ2aXNpYmxl
Ij4Kb2sKPC9kaXY+CjwvZGl2Pgo8YnI+PGJyPjxicj48YnI+CjQgcmVkIGJveCB3aXRoIHdvcmQg
b2s6CjxkaXYgY2xhc3M9ImludmlzaWJsZSBhYnN0b3AiID4KPGRpdiBjbGFzcz0idmlzaWJsZSBh
YnMiPgpvawo8L2Rpdj4KPC9kaXY+Cjxicj48YnI+PGJyPjxicj4KNSBncmVlbiBib3ggd2l0aCB3
b3JkIG9rOgo8ZGl2IGNsYXNzPSJpbnZpc2libGUgYWJzdG9wIj4KPGRpdiBjbGFzcz0iaW52aXNp
YmxlIj4KPGRpdiBjbGFzcz0idmlzaWJsZSI+Cm9rCjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cjxicj48
YnI+PGJyPjxicj4KNiBncmVlbiBib3ggd2l0aCB3b3JkIG9rOgo8ZGl2IGNsYXNzPSJpbnZpc2li
bGUgYWJzdG9wIj4KPGRpdiBjbGFzcz0iaW52aXNpYmxlIGFicyI+CjxkaXYgY2xhc3M9InZpc2li
bGUiPgpvawo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8YnI+PGJyPjxicj48YnI+CjcgZ3JlZW4gYm94
IHdpdGggd29yZCBvazoKPGRpdiBjbGFzcz0iaW52aXNpYmxlIGFic3RvcCI+CjxkaXYgY2xhc3M9
ImludmlzaWJsZSBhYnMiPgo8ZGl2IGNsYXNzPSJ2aXNpYmxlIGFicyI+Cm9rCjwvZGl2Pgo8L2Rp
dj4KPC9kaXY+Cjxicj48YnI+PGJyPjxicj4KOCBibHVlIGFuZCBncmVlbiBib3ggd2l0aCB3b3Jk
IG9rOgo8ZGl2IGNsYXNzPSJ2aXNpYmxlIGFic3RvcCI+CjxkaXYgY2xhc3M9ImludmlzaWJsZSBh
YnMiPgo8ZGl2IGNsYXNzPSJ2aXNpYmxlIGFicyI+Cm9rCjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cjxi
cj48YnI+PGJyPjxicj4KOSBncmVlbiBib3ggd2l0aCB3b3JkIG9rOgo8ZGl2IGNsYXNzPSJpbnZp
c2libGUgYWJzdG9wIj4KPGRpdiBjbGFzcz0iaW52aXNpYmxlIGFicyI+CjxkaXYgaWQ9ImEiIGNs
YXNzPSJpbnZpc2libGUgYWJzIj4Kb2sKPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPHNjcmlwdD4KZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2EnKS5zdHlsZS5zZXRQcm9wZXJ0eSgndmlzaWJpbGl0eScs
J3Zpc2libGUnLCcnKTsKPC9zY3JpcHQ+Cjxicj48YnI+PGJyPjxicj4KMTAgcmVkIGJveDoKPGRp
diBjbGFzcz0iaW52aXNpYmxlIGFic3RvcCI+CjxkaXYgY2xhc3M9InZpc2libGUgYWJzIj4KPGRp
diBpZD0iYiIgY2xhc3M9ImludmlzaWJsZSBhYnMiPgpvawo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8
c2NyaXB0Pgpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYicpLnN0eWxlLnNldFByb3BlcnR5KCd2
aXNpYmlsaXR5JywndmlzaWJsZScsJycpOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYicpLnN0
eWxlLnNldFByb3BlcnR5KCd2aXNpYmlsaXR5JywnaGlkZGVuJywnJyk7Cjwvc2NyaXB0Pgo8YnI+
PGJyPjxicj48YnI+CjExIGdyZWVuIGJveCB3aXRoIHdvcmQgb2s6CjxkaXYgY2xhc3M9Imludmlz
aWJsZSBhYnN0b3AiPgo8ZGl2IGNsYXNzPSJpbnZpc2libGUiPgo8ZGl2IGlkPSJjIiBjbGFzcz0i
aW52aXNpYmxlIj4Kb2sKPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPHNjcmlwdD4KZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2MnKS5zdHlsZS5zZXRQcm9wZXJ0eSgndmlzaWJpbGl0eScsJ3Zpc2libGUn
LCcnKTsKPC9zY3JpcHQ+Cjxicj48YnI+PGJyPjxicj4KMTIgZ3JlZW4gYm94IHdpdGggd29yZCBv
azoKPGRpdiBjbGFzcz0iaW52aXNpYmxlIGFic3RvcCI+CjxkaXYgY2xhc3M9ImludmlzaWJsZSI+
CjxkaXYgaWQ9ImQiIGNsYXNzPSJ2aXNpYmxlIj4Kb2sKPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPHNj
cmlwdD4KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2QnKS5zdHlsZS5zZXRQcm9wZXJ0eSgndmlz
aWJpbGl0eScsJ2hpZGRlbicsJycpOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZCcpLnN0eWxl
LnNldFByb3BlcnR5KCd2aXNpYmlsaXR5JywndmlzaWJsZScsJycpOwo8L3NjcmlwdD4KPGJyPjxi
cj48YnI+PGJyPgoxMyByZWQgYm94Ogo8ZGl2IGlkPSJlIiBjbGFzcz0idmlzaWJsZSBhYnN0b3Ai
Pgo8ZGl2IGlkPSJmIiBjbGFzcz0idmlzaWJsZSI+CjxkaXYgaWQ9ImciIGNsYXNzPSJ2aXNpYmxl
Ij4Kb2sKPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPHNjcmlwdD4KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2UnKS5zdHlsZS5zZXRQcm9wZXJ0eSgndmlzaWJpbGl0eScsJ2hpZGRlbicsJycpOwpkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZicpLnN0eWxlLnNldFByb3BlcnR5KCd2aXNpYmlsaXR5Jywn
aGlkZGVuJywnJyk7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnJykuc3R5bGUuc2V0UHJvcGVy
dHkoJ3Zpc2liaWxpdHknLCdoaWRkZW4nLCcnKTsKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Yn
KS5zdHlsZS5zZXRQcm9wZXJ0eSgndmlzaWJpbGl0eScsJ3Zpc2libGUnLCcnKTsKPC9zY3JpcHQ+
Cjxicj48YnI+PGJyPjxicj4KMTQgcmVkIGJveCB3aXRoIHdvcmQgb2s6CjxkaXYgaWQ9ImgiIGNs
YXNzPSJpbnZpc2libGUgYWJzdG9wIj4KPC9kaXY+CjxzY3JpcHQ+CnZhciBub2RlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Cm5vZGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoJ29rJykpOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaCcpLmFwcGVuZENoaWxk
KG5vZGUpOwpub2RlLnN0eWxlLnNldFByb3BlcnR5KCd2aXNpYmlsaXR5JywndmlzaWJsZScsJycp
Owpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaCcpLnJlbW92ZUNoaWxkKG5vZGUpOwpkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaCcpLmFwcGVuZENoaWxkKG5vZGUpOwo8L3NjcmlwdD4KPGJyPjxi
cj48YnI+PGJyPgoxNSByZWQgYm94IHdpdGggd29yZCBvazoKPGRpdiBpZD0iaSIgY2xhc3M9Imlu
dmlzaWJsZSBhYnN0b3AiPgo8L2Rpdj4KPHNjcmlwdD4KdmFyIG5vZGUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKbm9kZS5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywnaW52aXNpYmxlIGFi
cycpOwpub2RlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdvaycpKTsKZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2knKS5hcHBlbmRDaGlsZChub2RlKTsKbm9kZS5zdHlsZS5z
ZXRQcm9wZXJ0eSgndmlzaWJpbGl0eScsJ3Zpc2libGUnLCcnKTsKZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2knKS5yZW1vdmVDaGlsZChub2RlKTsKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kn
KS5hcHBlbmRDaGlsZChub2RlKTsKPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4026</attachid>
            <date>2005-09-23 21:01:43 -0700</date>
            <delta_ts>2006-09-26 21:36:44 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>visibility2.patch</filename>
            <type>text/plain</type>
            <size>10873</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IHJlbmRlcl9jb250YWluZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfY29udGFpbmVyLmNwcCx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS42OApkaWZmIC1wIC11IC1yMS42OCByZW5kZXJfY29udGFpbmVyLmNwcAot
LS0gcmVuZGVyX2NvbnRhaW5lci5jcHAJMzEgQXVnIDIwMDUgMDU6MDk6MDMgLTAwMDAJMS42OAor
KysgcmVuZGVyX2NvbnRhaW5lci5jcHAJMjQgU2VwIDIwMDUgMDM6NTg6MjEgLTAwMDAKQEAgLTE1
MCw4ICsxNTAsOCBAQCB2b2lkIFJlbmRlckNvbnRhaW5lcjo6YWRkQ2hpbGQoUmVuZGVyT2JqCiAg
ICAgICAgIH0KICAgICAgICAgdGFibGUtPmFkZENoaWxkKG5ld0NoaWxkKTsKICAgICB9IGVsc2Ug
ewotCS8vIGp1c3QgYWRkIGl0Li4uCi0JaW5zZXJ0Q2hpbGROb2RlKG5ld0NoaWxkLCBiZWZvcmVD
aGlsZCk7CisgICAgICAgIC8vIGp1c3QgYWRkIGl0Li4uCisgICAgICAgIGluc2VydENoaWxkTm9k
ZShuZXdDaGlsZCwgYmVmb3JlQ2hpbGQpOwogICAgIH0KIH0KIApAQCAtMTY1LDkgKzE2NSwxOSBA
QCBSZW5kZXJPYmplY3QqIFJlbmRlckNvbnRhaW5lcjo6cmVtb3ZlQ2hpCiAgICAgaWYgKCFkb2N1
bWVudEJlaW5nRGVzdHJveWVkKCkpIHsKICAgICAgICAgb2xkQ2hpbGQtPnNldE5lZWRzTGF5b3V0
QW5kTWluTWF4UmVjYWxjKCk7CiAgICAgICAgIG9sZENoaWxkLT5yZXBhaW50KCk7Ci0gICAgICAg
IAorCQkKKyAgICAgICAgLy8gaWYgd2UgcmVtb3ZlIHZpc2libGUgY2hpbGQgZnJvbSBhbiBpbnZp
c2libGUgcGFyZW50LCB3ZSBkb24ndCBrbm93IHRoZSBsYXllciB2aXNpYmlsaXR5IGFueSBtb3Jl
CisgICAgICAgIFJlbmRlckxheWVyKiBsYXllciA9IDA7CisgICAgICAgIGlmIChtX3N0eWxlLT52
aXNpYmlsaXR5KCkgIT0gVklTSUJMRSAmJiBvbGRDaGlsZC0+c3R5bGUoKS0+dmlzaWJpbGl0eSgp
ID09IFZJU0lCTEUgJiYgIW9sZENoaWxkLT5sYXllcigpKSB7CisgICAgICAgICAgICBsYXllciA9
IGVuY2xvc2luZ0xheWVyKCk7CisgICAgICAgICAgICBsYXllci0+c2V0VmlzaWJpbGl0eUtub3du
KGZhbHNlKTsKKyAgICAgICAgfQorICAgIAogICAgICAgICAvLyBLZWVwIG91ciBsYXllciBoaWVy
YXJjaHkgdXBkYXRlZC4KLSAgICAgICAgb2xkQ2hpbGQtPnJlbW92ZUxheWVycyhlbmNsb3NpbmdM
YXllcigpKTsKKyAgICAgICAgaWYgKG9sZENoaWxkLT5maXJzdENoaWxkKCkgfHwgb2xkQ2hpbGQt
PmxheWVyKCkpIHsKKyAgICAgICAgICAgIGlmICghbGF5ZXIpIGxheWVyID0gZW5jbG9zaW5nTGF5
ZXIoKTsgICAgICAgICAgICAKKyAgICAgICAgICAgIG9sZENoaWxkLT5yZW1vdmVMYXllcnMobGF5
ZXIpOworICAgICAgICB9CiAgICAgCiAgICAgICAgIC8vIGlmIG9sZENoaWxkIGlzIHRoZSBzdGFy
dCBvciBlbmQgb2YgdGhlIHNlbGVjdGlvbiwgdGhlbiBjbGVhciB0aGUgc2VsZWN0aW9uIHRvCiAg
ICAgICAgIC8vIGF2b2lkIHByb2JsZW1zIG9mIGludmFsaWQgcG9pbnRlcnMKQEAgLTM0MSwxMSAr
MzUxLDIwIEBAIHZvaWQgUmVuZGVyQ29udGFpbmVyOjphcHBlbmRDaGlsZE5vZGUoUmUKICAgICAK
ICAgICAvLyBLZWVwIG91ciBsYXllciBoaWVyYXJjaHkgdXBkYXRlZC4gIE9wdGltaXplIGZvciB0
aGUgY29tbW9uIGNhc2Ugd2hlcmUgd2UgZG9uJ3QgaGF2ZSBhbnkgY2hpbGRyZW4KICAgICAvLyBh
bmQgZG9uJ3QgaGF2ZSBhIGxheWVyIGF0dGFjaGVkIHRvIG91cnNlbHZlcy4KKyAgICBSZW5kZXJM
YXllciogbGF5ZXIgPSAwOwogICAgIGlmIChuZXdDaGlsZC0+Zmlyc3RDaGlsZCgpIHx8IG5ld0No
aWxkLT5sYXllcigpKSB7Ci0gICAgICAgIFJlbmRlckxheWVyKiBsYXllciA9IGVuY2xvc2luZ0xh
eWVyKCk7CisgICAgICAgIGxheWVyID0gZW5jbG9zaW5nTGF5ZXIoKTsKICAgICAgICAgbmV3Q2hp
bGQtPmFkZExheWVycyhsYXllciwgbmV3Q2hpbGQpOwogICAgIH0KICAgICAKKyAgICAvLyBpZiB0
aGUgbmV3IGNoaWxkIGlzIHZpc2libGUgYnV0IHRoaXMgb2JqZWN0IHdhcyBub3QsIHRlbGwgdGhl
IGxheWVyIGl0IGhhcyBzb21lIHZpc2libGUgY29udGVudAorICAgIC8vIHRoYXQgbmVlZHMgdG8g
YmUgZHJhd24gYW5kIGxheWVyIHZpc2liaWxpdHkgb3B0aW1pemF0aW9uIGNhbid0IGJlIHVzZWQK
KyAgICBpZiAoc3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUgJiYgbmV3Q2hpbGQtPnN0
eWxlKCktPnZpc2liaWxpdHkoKT09VklTSUJMRSAmJiAhbmV3Q2hpbGQtPmxheWVyKCkpIHsKKyAg
ICAgICAgaWYgKCFsYXllcikgbGF5ZXIgPSBlbmNsb3NpbmdMYXllcigpOworICAgICAgICBsYXll
ci0+c2V0SGFzVmlzaWJsZUNvbnRlbnQodHJ1ZSk7CQorICAgICAgICBsYXllci0+c2V0VmlzaWJp
bGl0eUtub3duKHRydWUpOworICAgIH0KKyAgICAKICAgICBuZXdDaGlsZC0+c2V0TmVlZHNMYXlv
dXRBbmRNaW5NYXhSZWNhbGMoKTsgLy8gR29lcyB1cCB0aGUgY29udGFpbmluZyBibG9jayBoaWVy
YXJjaHkuCiAgICAgaWYgKCFub3JtYWxDaGlsZE5lZWRzTGF5b3V0KCkpCiAgICAgICAgIHNldENo
aWxkTmVlZHNMYXlvdXQodHJ1ZSk7IC8vIFdlIG1heSBzdXBwbHkgdGhlIHN0YXRpYyBwb3NpdGlv
biBmb3IgYW4gYWJzb2x1dGUgcG9zaXRpb25lZCBjaGlsZC4KQEAgLTM2OCw3ICszODcsNyBAQCB2
b2lkIFJlbmRlckNvbnRhaW5lcjo6aW5zZXJ0Q2hpbGROb2RlKFJlCiAKICAgICBLSFRNTEFzc2Vy
dCghY2hpbGQtPnBhcmVudCgpKTsKICAgICB3aGlsZSAoIGJlZm9yZUNoaWxkLT5wYXJlbnQoKSAh
PSB0aGlzICYmIGJlZm9yZUNoaWxkLT5wYXJlbnQoKS0+aXNBbm9ueW1vdXNCbG9jaygpICkKLQli
ZWZvcmVDaGlsZCA9IGJlZm9yZUNoaWxkLT5wYXJlbnQoKTsKKyAgICAgICAgYmVmb3JlQ2hpbGQg
PSBiZWZvcmVDaGlsZC0+cGFyZW50KCk7CiAgICAgS0hUTUxBc3NlcnQoYmVmb3JlQ2hpbGQtPnBh
cmVudCgpID09IHRoaXMpOwogCiAgICAgaWYoYmVmb3JlQ2hpbGQgPT0gZmlyc3RDaGlsZCgpKQpA
QCAtMzgyLDkgKzQwMSwyMSBAQCB2b2lkIFJlbmRlckNvbnRhaW5lcjo6aW5zZXJ0Q2hpbGROb2Rl
KFJlCiAKICAgICBjaGlsZC0+c2V0UGFyZW50KHRoaXMpOwogICAgIAotICAgIC8vIEtlZXAgb3Vy
IGxheWVyIGhpZXJhcmNoeSB1cGRhdGVkLgotICAgIFJlbmRlckxheWVyKiBsYXllciA9IGVuY2xv
c2luZ0xheWVyKCk7Ci0gICAgY2hpbGQtPmFkZExheWVycyhsYXllciwgY2hpbGQpOworICAgIC8v
IEtlZXAgb3VyIGxheWVyIGhpZXJhcmNoeSB1cGRhdGVkLiAgT3B0aW1pemUgZm9yIHRoZSBjb21t
b24gY2FzZSB3aGVyZSB3ZSBkb24ndCBoYXZlIGFueSBjaGlsZHJlbgorICAgIC8vIGFuZCBkb24n
dCBoYXZlIGEgbGF5ZXIgYXR0YWNoZWQgdG8gb3Vyc2VsdmVzLgorICAgIFJlbmRlckxheWVyKiBs
YXllciA9IDA7CisgICAgaWYgKGNoaWxkLT5maXJzdENoaWxkKCkgfHwgY2hpbGQtPmxheWVyKCkp
IHsKKyAgICAgICAgbGF5ZXIgPSBlbmNsb3NpbmdMYXllcigpOworICAgICAgICBjaGlsZC0+YWRk
TGF5ZXJzKGxheWVyLCBjaGlsZCk7CisgICAgfQorCisgICAgLy8gaWYgdGhlIG5ldyBjaGlsZCBp
cyB2aXNpYmxlIGJ1dCB0aGlzIG9iamVjdCB3YXMgbm90LCB0ZWxsIHRoZSBsYXllciBpdCBoYXMg
c29tZSB2aXNpYmxlIGNvbnRlbnQKKyAgICAvLyB0aGF0IG5lZWRzIHRvIGJlIGRyYXduIGFuZCBs
YXllciB2aXNpYmlsaXR5IG9wdGltaXphdGlvbiBjYW4ndCBiZSB1c2VkCisgICAgaWYgKHN0eWxl
KCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFICYmIGNoaWxkLT5zdHlsZSgpLT52aXNpYmlsaXR5
KCk9PVZJU0lCTEUgJiYgIWNoaWxkLT5sYXllcigpKSB7CisgICAgICAgIGlmICghbGF5ZXIpIGxh
eWVyID0gZW5jbG9zaW5nTGF5ZXIoKTsKKyAgICAgICAgbGF5ZXItPnNldEhhc1Zpc2libGVDb250
ZW50KHRydWUpOwkKKyAgICAgICAgbGF5ZXItPnNldFZpc2liaWxpdHlLbm93bih0cnVlKTsKKyAg
ICB9CiAKICAgICBjaGlsZC0+c2V0TmVlZHNMYXlvdXRBbmRNaW5NYXhSZWNhbGMoKTsKICAgICBp
ZiAoIW5vcm1hbENoaWxkTmVlZHNMYXlvdXQoKSkKSW5kZXg6IHJlbmRlcl9sYXllci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRl
cl9sYXllci5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTA0CmRpZmYgLXAgLXUgLXIxLjEw
NCByZW5kZXJfbGF5ZXIuY3BwCi0tLSByZW5kZXJfbGF5ZXIuY3BwCTE5IFNlcCAyMDA1IDIwOjU0
OjA5IC0wMDAwCTEuMTA0CisrKyByZW5kZXJfbGF5ZXIuY3BwCTI0IFNlcCAyMDA1IDAzOjU4OjI0
IC0wMDAwCkBAIC0xMjksOSArMTI5LDE1IEBAIG1fbmVnWk9yZGVyTGlzdCggMCApLAogbV9jbGlw
UmVjdHMoIDAgKSAsCiBtX3Njcm9sbERpbWVuc2lvbnNEaXJ0eSggdHJ1ZSApLAogbV96T3JkZXJM
aXN0c0RpcnR5KCB0cnVlICksCittX3Zpc2liaWxpdHlLbm93biggZmFsc2UgKSwKK21faGFzVmlz
aWJsZUNvbnRlbnQoIGZhbHNlICksCiBtX3VzZWRUcmFuc3BhcmVuY3koIGZhbHNlICksCiBtX21h
cnF1ZWUoIDAgKQogeworICAgIGlmICghb2JqZWN0LT5maXJzdENoaWxkKCkgJiYgb2JqZWN0LT5z
dHlsZSgpKSB7CisgICAgICAgIG1fdmlzaWJpbGl0eUtub3duID0gdHJ1ZTsKKyAgICAgICAgbV9o
YXNWaXNpYmxlQ29udGVudCA9IG9iamVjdC0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lC
TEU7CisgICAgfQogfQogCiBSZW5kZXJMYXllcjo6flJlbmRlckxheWVyKCkKQEAgLTE1MSwxMyAr
MTU3LDUxIEBAIFJlbmRlckxheWVyOjp+UmVuZGVyTGF5ZXIoKQogCiB2b2lkIFJlbmRlckxheWVy
Ojpjb21wdXRlUmVwYWludFJlY3RzKCkKIHsKLSAgICAvLyBGSVhNRTogQ2hpbGQgb2JqZWN0IGNv
dWxkIG92ZXJyaWRlIHZpc2liaWxpdHkuCi0gICAgaWYgKG1fb2JqZWN0LT5zdHlsZSgpLT52aXNp
YmlsaXR5KCkgPT0gVklTSUJMRSkKKyAgICBjaGVja1Zpc2liaWxpdHkoKTsKKyAgICBpZiAobV9o
YXNWaXNpYmxlQ29udGVudCkKICAgICAgICAgbV9vYmplY3QtPmdldEFic29sdXRlUmVwYWludFJl
Y3RJbmNsdWRpbmdGbG9hdHMobV9yZXBhaW50UmVjdCwgbV9mdWxsUmVwYWludFJlY3QpOwogICAg
IGZvcgkoUmVuZGVyTGF5ZXIqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBj
aGlsZC0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgY2hpbGQtPmNvbXB1dGVSZXBhaW50UmVjdHMo
KTsKIH0KIAordm9pZCBSZW5kZXJMYXllcjo6Y2hlY2tWaXNpYmlsaXR5KCkKK3sJCisgICAgaWYg
KG1fdmlzaWJpbGl0eUtub3duKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV92aXNpYmls
aXR5S25vd24gPSB0cnVlOworICAgIAorICAgIGlmIChtX29iamVjdC0+c3R5bGUoKS0+dmlzaWJp
bGl0eSgpID09IFZJU0lCTEUpIHsKKyAgICAgICAgbV9oYXNWaXNpYmxlQ29udGVudCA9IHRydWU7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgLy8gbGF5ZXIgbWF5IGJlIGhpZGRl
biBidXQgc3RpbGwgaGF2ZSBzb21lIHZpc2libGUgY29udGVudCwgY2hlY2sgZm9yIHRoaXMKKyAg
ICBtX2hhc1Zpc2libGVDb250ZW50ID0gZmFsc2U7CisgICAgUmVuZGVyT2JqZWN0KiByID0gbV9v
YmplY3QtPmZpcnN0Q2hpbGQoKTsKKyAgICB3aGlsZSAocikgeworICAgICAgICBpZiAoci0+c3R5
bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUpIHsKKyAgICAgICAgICAgIG1faGFzVmlzaWJs
ZUNvbnRlbnQgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
aWYgKHItPmZpcnN0Q2hpbGQoKSAmJiAhci0+Zmlyc3RDaGlsZCgpLT5sYXllcigpKQorICAgICAg
ICAgICAgciA9IHItPmZpcnN0Q2hpbGQoKTsKKyAgICAgICAgZWxzZSBpZiAoci0+bmV4dFNpYmxp
bmcoKSAmJiAhci0+bmV4dFNpYmxpbmcoKS0+bGF5ZXIoKSkKKyAgICAgICAgICAgIHIgPSByLT5u
ZXh0U2libGluZygpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHdoaWxlIChyICYmICgh
ci0+bmV4dFNpYmxpbmcoKSB8fCByLT5uZXh0U2libGluZygpLT5sYXllcigpKSkgeworICAgICAg
ICAgICAgICAgIHIgPSByLT5wYXJlbnQoKTsKKyAgICAgICAgICAgICAgICBpZiAocj09bV9vYmpl
Y3QpCisgICAgICAgICAgICAgICAgICAgIHIgPSAwOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgaWYgKHIpCisgICAgICAgICAgICAgICAgciA9IHItPm5leHRTaWJsaW5nKCk7IAkJCQkKKyAg
ICAgICAgfQorICAgIH0KKyAgICByZXR1cm47Cit9CisKKwogdm9pZCBSZW5kZXJMYXllcjo6dXBk
YXRlTGF5ZXJQb3NpdGlvbnMoYm9vbCBkb0Z1bGxSZXBhaW50LCBib29sIGNoZWNrRm9yUmVwYWlu
dCkKIHsKICAgICBpZiAoZG9GdWxsUmVwYWludCkgewpAQCAtMTc4LDggKzIyMiw4IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zKGIKICAgICAgICAgcG9zaXRpb25TY3Jv
bGxiYXJzKGxheWVyQm91bmRzKTsKICAgICB9CiAKLSAgICAvLyBGSVhNRTogQ2hpbGQgb2JqZWN0
IGNvdWxkIG92ZXJyaWRlIHZpc2liaWxpdHkuCi0gICAgaWYgKGNoZWNrRm9yUmVwYWludCAmJiAo
bV9vYmplY3QtPnN0eWxlKCktPnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFKSkKKwljaGVja1Zpc2li
aWxpdHkoKTsKKyAgICBpZiAoY2hlY2tGb3JSZXBhaW50ICYmIG1faGFzVmlzaWJsZUNvbnRlbnQp
CiAgICAgICAgIG1fb2JqZWN0LT5yZXBhaW50QWZ0ZXJMYXlvdXRJZk5lZWRlZChtX3JlcGFpbnRS
ZWN0LCBtX2Z1bGxSZXBhaW50UmVjdCk7CiAgICAgCiAgICAgZm9yCShSZW5kZXJMYXllciogY2hp
bGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQpA
QCAtMTQyMSwyNiArMTQ2NSwyOCBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVaT3JkZXJMaXN0
cygpCiAKIHZvaWQgUmVuZGVyTGF5ZXI6OmNvbGxlY3RMYXllcnMoUVB0clZlY3RvcjxSZW5kZXJM
YXllcj4qJiBwb3NCdWZmZXIsIFFQdHJWZWN0b3I8UmVuZGVyTGF5ZXI+KiYgbmVnQnVmZmVyKQog
eworICAgIC8vIGlzIHRoaXMgc3RpbGwgYSB2YWxpZCBjb21tZW50PyAtYW50dGkKICAgICAvLyBG
SVhNRTogQSBjaGlsZCByZW5kZXIgb2JqZWN0IG9yIGxheWVyIGNvdWxkIG92ZXJyaWRlIHZpc2li
aWxpdHkuICBEb24ndCByZW1vdmUgdGhpcwogICAgIC8vIG9wdGltaXphdGlvbiB0aG91Z2ggdW50
aWwgUmVuZGVyT2JqZWN0J3Mgbm9kZUF0UG9pbnQgaXMgcGF0Y2hlZCB0byB1bmRlcnN0YW5kIHdo
YXQgdG8gZG8KICAgICAvLyB3aGVuIHZpc2liaWxpdHkgaXMgb3ZlcnJpZGRlbiBieSBhIGNoaWxk
LgotICAgIGlmIChyZW5kZXJlcigpLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkK
LSAgICAgICAgcmV0dXJuOworICAgIGNoZWNrVmlzaWJpbGl0eSgpOwogICAgIAotICAgIC8vIERl
dGVybWluZSB3aGljaCBidWZmZXIgdGhlIGNoaWxkIHNob3VsZCBiZSBpbi4KLSAgICBRUHRyVmVj
dG9yPFJlbmRlckxheWVyPiomIGJ1ZmZlciA9ICh6SW5kZXgoKSA+PSAwKSA/IHBvc0J1ZmZlciA6
IG5lZ0J1ZmZlcjsKLQotICAgIC8vIENyZWF0ZSB0aGUgYnVmZmVyIGlmIGl0IGRvZXNuJ3QgZXhp
c3QgeWV0LgotICAgIGlmICghYnVmZmVyKQotICAgICAgICBidWZmZXIgPSBuZXcgUVB0clZlY3Rv
cjxSZW5kZXJMYXllcj4oKTsKLSAgICAKLSAgICAvLyBSZXNpemUgYnkgYSBwb3dlciBvZiAyIHdo
ZW4gb3VyIGJ1ZmZlciBmaWxscyB1cC4KLSAgICBpZiAoYnVmZmVyLT5jb3VudCgpID09IGJ1ZmZl
ci0+c2l6ZSgpKQotICAgICAgICBidWZmZXItPnJlc2l6ZSgyKihidWZmZXItPnNpemUoKSsxKSk7
Ci0KLSAgICAvLyBBcHBlbmQgb3Vyc2VsdmVzIGF0IHRoZSBlbmQgb2YgdGhlIGFwcHJvcHJpYXRl
IGJ1ZmZlci4KLSAgICBidWZmZXItPmluc2VydChidWZmZXItPmNvdW50KCksIHRoaXMpOwotCisg
ICAgaWYgKG1faGFzVmlzaWJsZUNvbnRlbnQpIHsKKyAgICAgICAgLy8gRGV0ZXJtaW5lIHdoaWNo
IGJ1ZmZlciB0aGUgY2hpbGQgc2hvdWxkIGJlIGluLgorICAgICAgICBRUHRyVmVjdG9yPFJlbmRl
ckxheWVyPiomIGJ1ZmZlciA9ICh6SW5kZXgoKSA+PSAwKSA/IHBvc0J1ZmZlciA6IG5lZ0J1ZmZl
cjsKKworICAgICAgICAvLyBDcmVhdGUgdGhlIGJ1ZmZlciBpZiBpdCBkb2Vzbid0IGV4aXN0IHll
dC4KKyAgICAgICAgaWYgKCFidWZmZXIpCisgICAgICAgICAgICBidWZmZXIgPSBuZXcgUVB0clZl
Y3RvcjxSZW5kZXJMYXllcj4oKTsKKworICAgICAgICAvLyBSZXNpemUgYnkgYSBwb3dlciBvZiAy
IHdoZW4gb3VyIGJ1ZmZlciBmaWxscyB1cC4KKyAgICAgICAgaWYgKGJ1ZmZlci0+Y291bnQoKSA9
PSBidWZmZXItPnNpemUoKSkKKyAgICAgICAgICAgIGJ1ZmZlci0+cmVzaXplKDIqKGJ1ZmZlci0+
c2l6ZSgpKzEpKTsKKyAgICAgICAgCisgICAgICAgIC8vIEFwcGVuZCBvdXJzZWx2ZXMgYXQgdGhl
IGVuZCBvZiB0aGUgYXBwcm9wcmlhdGUgYnVmZmVyLgorICAgICAgICBidWZmZXItPmluc2VydChi
dWZmZXItPmNvdW50KCksIHRoaXMpOworICAgIH0KKwkKICAgICAvLyBSZWN1ciBpbnRvIG91ciBj
aGlsZHJlbiB0byBjb2xsZWN0IG1vcmUgbGF5ZXJzLCBidXQgb25seSBpZiB3ZSBkb24ndCBlc3Rh
Ymxpc2gKICAgICAvLyBhIHN0YWNraW5nIGNvbnRleHQuCiAgICAgaWYgKCFpc1N0YWNraW5nQ29u
dGV4dCgpKSB7CkluZGV4OiByZW5kZXJfbGF5ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2xheWVyLmgsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuNDcKZGlmZiAtcCAtdSAtcjEuNDcgcmVuZGVyX2xheWVyLmgKLS0tIHJlbmRl
cl9sYXllci5oCTEyIEp1bCAyMDA1IDIwOjI2OjQxIC0wMDAwCTEuNDcKKysrIHJlbmRlcl9sYXll
ci5oCTI0IFNlcCAyMDA1IDAzOjU4OjI3IC0wMDAwCkBAIC0yOTAsNiArMjkwLDExIEBAIHB1Ymxp
YzoKICAgICAKICAgICBRUmVjdCByZXBhaW50UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWlu
dFJlY3Q7IH0KIAorICAgIGJvb2wgaGFzVmlzaWJsZUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBt
X2hhc1Zpc2libGVDb250ZW50OyB9CisgICAgdm9pZCBzZXRIYXNWaXNpYmxlQ29udGVudChib29s
IGIpIHsgbV9oYXNWaXNpYmxlQ29udGVudCA9IGI7IH0KKyAgICB2b2lkIHNldFZpc2liaWxpdHlL
bm93bihib29sIGIpIHsgbV92aXNpYmlsaXR5S25vd24gPSBiOyB9CisgICAgdm9pZCBjaGVja1Zp
c2liaWxpdHkoKTsKKwogICAgIHZvaWQgZGV0YWNoKFJlbmRlckFyZW5hKiByZW5kZXJBcmVuYSk7
CiAKICAgICAgLy8gT3ZlcmxvYWRlZCBuZXcgb3BlcmF0b3IuICBEZXJpdmVkIGNsYXNzZXMgbXVz
dCBvdmVycmlkZSBvcGVyYXRvciBuZXcKQEAgLTM2Nyw2ICszNzIsOCBAQCBwcm90ZWN0ZWQ6ICAg
CiAKICAgICBib29sIG1fc2Nyb2xsRGltZW5zaW9uc0RpcnR5IDogMTsKICAgICBib29sIG1fek9y
ZGVyTGlzdHNEaXJ0eSA6IDE7CisgICAgYm9vbCBtX3Zpc2liaWxpdHlLbm93biA6IDE7CisgICAg
Ym9vbCBtX2hhc1Zpc2libGVDb250ZW50IDogMTsKIAogI2lmIEFQUExFX0NIQU5HRVMKICAgICBi
b29sIG1fdXNlZFRyYW5zcGFyZW5jeSA6IDE7IC8vIFRyYWNrcyB3aGV0aGVyIHdlIG5lZWQgdG8g
Y2xvc2UgYSB0cmFuc3BhcmVudCBsYXllciwgaS5lLiwgd2hldGhlcgpJbmRleDogcmVuZGVyX29i
amVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvcmVu
ZGVyaW5nL3JlbmRlcl9vYmplY3QuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIxNgpkaWZm
IC1wIC11IC1yMS4yMTYgcmVuZGVyX29iamVjdC5jcHAKLS0tIHJlbmRlcl9vYmplY3QuY3BwCTE5
IFNlcCAyMDA1IDIwOjU0OjEwIC0wMDAwCTEuMjE2CisrKyByZW5kZXJfb2JqZWN0LmNwcAkyNCBT
ZXAgMjAwNSAwMzo1ODozMCAtMDAwMApAQCAtMTc0MCw2ICsxNzQwLDE0IEBAIHZvaWQgUmVuZGVy
T2JqZWN0OjpzZXRTdHlsZShSZW5kZXJTdHlsZSAKICAgICAgICAgICAgICAgICAgICAgbV9zdHls
ZS0+dmlzaWJpbGl0eSgpICE9IHN0eWxlLT52aXNpYmlsaXR5KCkpCiAgICAgICAgICAgICAgICAg
ICAgIGxheWVyKCktPmRpcnR5Wk9yZGVyTGlzdHMoKTsKICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGlmIChtX3N0eWxlLT52aXNpYmlsaXR5KCkgIT0gc3R5bGUtPnZpc2liaWxpdHkoKSkgewor
ICAgICAgICAgICAgICAgIFJlbmRlckxheWVyKiBsID0gZW5jbG9zaW5nTGF5ZXIoKTsgCisgICAg
ICAgICAgICAgICAgaWYgKHN0eWxlLT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSAmJiBsKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGwtPnNldEhhc1Zpc2libGVDb250ZW50KHRydWUpOworICAgICAg
ICAgICAgICAgICAgICBsLT5zZXRWaXNpYmlsaXR5S25vd24odHJ1ZSk7CisgICAgICAgICAgICAg
ICAgfSBlbHNlIGlmIChsICYmIGwtPmhhc1Zpc2libGVDb250ZW50KCkpCisgICAgICAgICAgICAg
ICAgICAgIGwtPnNldFZpc2liaWxpdHlLbm93bihmYWxzZSk7CisgICAgICAgICAgICB9CiAgICAg
ICAgIH0KIAogICAgICAgICBkID0gbV9zdHlsZS0+ZGlmZihzdHlsZSk7Cg==
</data>
<flag name="review"
          id="694"
          type_id="1"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10790</attachid>
            <date>2006-09-26 21:36:44 -0700</date>
            <delta_ts>2006-09-27 19:34:37 -0700</delta_ts>
            <desc>another updated patch</desc>
            <filename>visibility3.patch</filename>
            <type>text/plain</type>
            <size>12026</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbnRhaW5lci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ29udGFpbmVyLmNwcAkocmV2aXNpb24gMTY1OTQp
CisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb250YWluZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzUsOCArMTc1LDE4IEBAIFJlbmRlck9iamVjdCogUmVuZGVyQ29udGFpbmVyOjpyZW1v
dmVDaGkKICAgICBvbGRDaGlsZC0+ZGVsZXRlTGluZUJveFdyYXBwZXIoKTsKIAogICAgIGlmICgh
ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKSB7Ci0gICAgICAgIC8vIEtlZXAgb3VyIGxheWVyIGhp
ZXJhcmNoeSB1cGRhdGVkLgotICAgICAgICBvbGRDaGlsZC0+cmVtb3ZlTGF5ZXJzKGVuY2xvc2lu
Z0xheWVyKCkpOworICAgICAgICAvLyBpZiB3ZSByZW1vdmUgdmlzaWJsZSBjaGlsZCBmcm9tIGFu
IGludmlzaWJsZSBwYXJlbnQsIHdlIGRvbid0IGtub3cgdGhlIGxheWVyIHZpc2liaWxpdHkgYW55
IG1vcmUKKyAgICAgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gMDsKKyAgICAgICAgaWYgKG1fc3R5
bGUtPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFICYmIG9sZENoaWxkLT5zdHlsZSgpLT52aXNpYmls
aXR5KCkgPT0gVklTSUJMRSAmJiAhb2xkQ2hpbGQtPmxheWVyKCkpIHsKKyAgICAgICAgICAgIGxh
eWVyID0gZW5jbG9zaW5nTGF5ZXIoKTsKKyAgICAgICAgICAgIGxheWVyLT5kaXJ0eVZpc2libGVD
b250ZW50U3RhdHVzKCk7CisgICAgICAgIH0KKworICAgICAgICAgLy8gS2VlcCBvdXIgbGF5ZXIg
aGllcmFyY2h5IHVwZGF0ZWQuCisgICAgICAgIGlmIChvbGRDaGlsZC0+Zmlyc3RDaGlsZCgpIHx8
IG9sZENoaWxkLT5sYXllcigpKSB7CisgICAgICAgICAgICBpZiAoIWxheWVyKSBsYXllciA9IGVu
Y2xvc2luZ0xheWVyKCk7ICAgICAgICAgICAgCisgICAgICAgICAgICBvbGRDaGlsZC0+cmVtb3Zl
TGF5ZXJzKGxheWVyKTsKKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgLy8gSWYgb2xkQ2hp
bGQgaXMgdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUgc2VsZWN0aW9uLCB0aGVuIGNsZWFyIHRoZSBz
ZWxlY3Rpb24gdG8KICAgICAgICAgLy8gYXZvaWQgcHJvYmxlbXMgb2YgaW52YWxpZCBwb2ludGVy
cy4KQEAgLTM3OSwxMCArMzg5LDE4IEBAIHZvaWQgUmVuZGVyQ29udGFpbmVyOjphcHBlbmRDaGls
ZE5vZGUoUmUKICAgICAKICAgICAvLyBLZWVwIG91ciBsYXllciBoaWVyYXJjaHkgdXBkYXRlZC4g
IE9wdGltaXplIGZvciB0aGUgY29tbW9uIGNhc2Ugd2hlcmUgd2UgZG9uJ3QgaGF2ZSBhbnkgY2hp
bGRyZW4KICAgICAvLyBhbmQgZG9uJ3QgaGF2ZSBhIGxheWVyIGF0dGFjaGVkIHRvIG91cnNlbHZl
cy4KKyAgICBSZW5kZXJMYXllciogbGF5ZXIgPSAwOwogICAgIGlmIChuZXdDaGlsZC0+Zmlyc3RD
aGlsZCgpIHx8IG5ld0NoaWxkLT5sYXllcigpKSB7Ci0gICAgICAgIFJlbmRlckxheWVyKiBsYXll
ciA9IGVuY2xvc2luZ0xheWVyKCk7CisgICAgICAgIGxheWVyID0gZW5jbG9zaW5nTGF5ZXIoKTsK
ICAgICAgICAgbmV3Q2hpbGQtPmFkZExheWVycyhsYXllciwgbmV3Q2hpbGQpOwogICAgIH0KKwor
ICAgIC8vIGlmIHRoZSBuZXcgY2hpbGQgaXMgdmlzaWJsZSBidXQgdGhpcyBvYmplY3Qgd2FzIG5v
dCwgdGVsbCB0aGUgbGF5ZXIgaXQgaGFzIHNvbWUgdmlzaWJsZSBjb250ZW50CisgICAgLy8gdGhh
dCBuZWVkcyB0byBiZSBkcmF3biBhbmQgbGF5ZXIgdmlzaWJpbGl0eSBvcHRpbWl6YXRpb24gY2Fu
J3QgYmUgdXNlZAorICAgIGlmIChzdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSAmJiBu
ZXdDaGlsZC0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpPT1WSVNJQkxFICYmICFuZXdDaGlsZC0+bGF5
ZXIoKSkgeworICAgICAgICBpZiAoIWxheWVyKSBsYXllciA9IGVuY2xvc2luZ0xheWVyKCk7Cisg
ICAgICAgIGxheWVyLT5zZXRIYXNWaXNpYmxlQ29udGVudCh0cnVlKTsJCisgICAgfQogICAgIAog
ICAgIG5ld0NoaWxkLT5zZXROZWVkc0xheW91dEFuZE1pbk1heFJlY2FsYygpOyAvLyBHb2VzIHVw
IHRoZSBjb250YWluaW5nIGJsb2NrIGhpZXJhcmNoeS4KICAgICBpZiAoIW5vcm1hbENoaWxkTmVl
ZHNMYXlvdXQoKSkKQEAgLTQyMCw5ICs0MzgsMjAgQEAgdm9pZCBSZW5kZXJDb250YWluZXI6Omlu
c2VydENoaWxkTm9kZShSZQogCiAgICAgY2hpbGQtPnNldFBhcmVudCh0aGlzKTsKICAgICAKLSAg
ICAvLyBLZWVwIG91ciBsYXllciBoaWVyYXJjaHkgdXBkYXRlZC4KLSAgICBSZW5kZXJMYXllciog
bGF5ZXIgPSBlbmNsb3NpbmdMYXllcigpOwotICAgIGNoaWxkLT5hZGRMYXllcnMobGF5ZXIsIGNo
aWxkKTsKKyAgICAvLyBLZWVwIG91ciBsYXllciBoaWVyYXJjaHkgdXBkYXRlZC4gIE9wdGltaXpl
IGZvciB0aGUgY29tbW9uIGNhc2Ugd2hlcmUgd2UgZG9uJ3QgaGF2ZSBhbnkgY2hpbGRyZW4KKyAg
ICAvLyBhbmQgZG9uJ3QgaGF2ZSBhIGxheWVyIGF0dGFjaGVkIHRvIG91cnNlbHZlcy4KKyAgICBS
ZW5kZXJMYXllciogbGF5ZXIgPSAwOworICAgIGlmIChjaGlsZC0+Zmlyc3RDaGlsZCgpIHx8IGNo
aWxkLT5sYXllcigpKSB7CisgICAgICAgIGxheWVyID0gZW5jbG9zaW5nTGF5ZXIoKTsKKyAgICAg
ICAgY2hpbGQtPmFkZExheWVycyhsYXllciwgY2hpbGQpOworICAgIH0KKworICAgIC8vIGlmIHRo
ZSBuZXcgY2hpbGQgaXMgdmlzaWJsZSBidXQgdGhpcyBvYmplY3Qgd2FzIG5vdCwgdGVsbCB0aGUg
bGF5ZXIgaXQgaGFzIHNvbWUgdmlzaWJsZSBjb250ZW50CisgICAgLy8gdGhhdCBuZWVkcyB0byBi
ZSBkcmF3biBhbmQgbGF5ZXIgdmlzaWJpbGl0eSBvcHRpbWl6YXRpb24gY2FuJ3QgYmUgdXNlZAor
ICAgIGlmIChzdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSAmJiBjaGlsZC0+c3R5bGUo
KS0+dmlzaWJpbGl0eSgpPT1WSVNJQkxFICYmICFjaGlsZC0+bGF5ZXIoKSkgeworICAgICAgICBp
ZiAoIWxheWVyKSBsYXllciA9IGVuY2xvc2luZ0xheWVyKCk7CisgICAgICAgIGxheWVyLT5zZXRI
YXNWaXNpYmxlQ29udGVudCh0cnVlKTsJCisgICAgfQogCiAgICAgY2hpbGQtPnNldE5lZWRzTGF5
b3V0QW5kTWluTWF4UmVjYWxjKCk7CiAgICAgaWYgKCFub3JtYWxDaGlsZE5lZWRzTGF5b3V0KCkp
CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZpc2lvbiAxNjU5NCkKKysrIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDgg
KzE0NCwxNiBAQCBtX3VzZWRUcmFuc3BhcmVuY3koZmFsc2UpLAogbV9pbk92ZXJmbG93UmVsYXlv
dXQoZmFsc2UpLAogbV9yZXBhaW50T3ZlcmZsb3dPblJlc2l6ZShmYWxzZSksCiBtX292ZXJmbG93
U3RhdHVzRGlydHkodHJ1ZSksCittX3Zpc2libGVDb250ZW50U3RhdHVzRGlydHkoIHRydWUgKSwK
K21faGFzVmlzaWJsZUNvbnRlbnQoIGZhbHNlICksCittX3Zpc2libGVEZXNjZW5kYW50U3RhdHVz
RGlydHkoIGZhbHNlICksCittX2hhc1Zpc2libGVEZXNjZW5kYW50KCBmYWxzZSApLAogbV9tYXJx
dWVlKDApCiB7CisgICAgaWYgKCFvYmplY3QtPmZpcnN0Q2hpbGQoKSAmJiBvYmplY3QtPnN0eWxl
KCkpIHsKKyAgICAgICAgbV92aXNpYmxlQ29udGVudFN0YXR1c0RpcnR5ID0gZmFsc2U7CisgICAg
ICAgIG1faGFzVmlzaWJsZUNvbnRlbnQgPSBvYmplY3QtPnN0eWxlKCktPnZpc2liaWxpdHkoKSA9
PSBWSVNJQkxFOworICAgIH0KIH0KIAogUmVuZGVyTGF5ZXI6On5SZW5kZXJMYXllcigpCkBAIC0x
OTIsOCArMjAwLDkgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnMoYgog
ICAgICAgICBwb3NpdGlvblNjcm9sbGJhcnMobGF5ZXJCb3VuZHMpOwogICAgIH0KIAotICAgIC8v
IEZJWE1FOiBDaGlsZCBvYmplY3QgY291bGQgb3ZlcnJpZGUgdmlzaWJpbGl0eS4KLSAgICBpZiAo
bV9vYmplY3QtPnN0eWxlKCktPnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFKSB7CisgICAgdXBkYXRl
VmlzaWJpbGl0eVN0YXR1cygpOworICAgICAgICAKKyAgICBpZiAobV9oYXNWaXNpYmxlQ29udGVu
dCkgewogICAgICAgICBpbnQgeCwgeTsKICAgICAgICAgbV9vYmplY3QtPmFic29sdXRlUG9zaXRp
b24oeCwgeSk7CiAgICAgICAgIEludFJlY3QgbmV3UmVjdCwgbmV3RnVsbFJlY3Q7CkBAIC0yMjcs
NiArMjM2LDkxIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zKGIKICAg
ICAgICAgbV9tYXJxdWVlLT51cGRhdGVNYXJxdWVlUG9zaXRpb24oKTsKIH0KIAordm9pZCBSZW5k
ZXJMYXllcjo6c2V0SGFzVmlzaWJsZUNvbnRlbnQoYm9vbCBiKSAKK3sgCisgICAgaWYgKG1faGFz
VmlzaWJsZUNvbnRlbnQgPT0gYiAmJiAhbV92aXNpYmxlQ29udGVudFN0YXR1c0RpcnR5KQorICAg
ICAgICByZXR1cm47CisgICAgbV92aXNpYmxlQ29udGVudFN0YXR1c0RpcnR5ID0gZmFsc2U7IAor
ICAgIG1faGFzVmlzaWJsZUNvbnRlbnQgPSBiOworICAgIGlmIChwYXJlbnQoKSkKKyAgICAgICAg
cGFyZW50KCktPmNoaWxkVmlzaWJpbGl0eUNoYW5nZWQobV9oYXNWaXNpYmxlQ29udGVudCk7Cit9
CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5VmlzaWJsZUNvbnRlbnRTdGF0dXMoKSAKK3sgCisg
ICAgbV92aXNpYmxlQ29udGVudFN0YXR1c0RpcnR5ID0gdHJ1ZTsgCisgICAgaWYgKHBhcmVudCgp
KQorICAgICAgICBwYXJlbnQoKS0+ZGlydHlWaXNpYmxlRGVzY2VuZGFudFN0YXR1cygpOworfQor
Cit2b2lkIFJlbmRlckxheWVyOjpjaGlsZFZpc2liaWxpdHlDaGFuZ2VkKGJvb2wgbmV3VmlzaWJp
bGl0eSkgCit7IAorICAgIGlmIChtX2hhc1Zpc2libGVEZXNjZW5kYW50PT1uZXdWaXNpYmlsaXR5
IHx8IG1fdmlzaWJsZURlc2NlbmRhbnRTdGF0dXNEaXJ0eSkKKyAgICAgICAgcmV0dXJuOworICAg
IGlmIChuZXdWaXNpYmlsaXR5KSB7CisgICAgICAgIFJlbmRlckxheWVyKiBsID0gdGhpczsKKyAg
ICAgICAgd2hpbGUgKGwgJiYgIWwtPm1fdmlzaWJsZURlc2NlbmRhbnRTdGF0dXNEaXJ0eSAmJiAh
bC0+bV9oYXNWaXNpYmxlRGVzY2VuZGFudCkgeworICAgICAgICAgICAgbC0+bV9oYXNWaXNpYmxl
RGVzY2VuZGFudCA9IHRydWU7CisgICAgICAgICAgICBsID0gbC0+cGFyZW50KCk7CisgICAgICAg
IH0KKyAgICB9IGVsc2UgCisgICAgICAgIGRpcnR5VmlzaWJsZURlc2NlbmRhbnRTdGF0dXMoKTsK
K30KKwordm9pZCBSZW5kZXJMYXllcjo6ZGlydHlWaXNpYmxlRGVzY2VuZGFudFN0YXR1cygpCit7
CisgICAgUmVuZGVyTGF5ZXIqIGwgPSB0aGlzOworICAgIHdoaWxlIChsICYmICFsLT5tX3Zpc2li
bGVEZXNjZW5kYW50U3RhdHVzRGlydHkpIHsKKyAgICAgICAgbC0+bV92aXNpYmxlRGVzY2VuZGFu
dFN0YXR1c0RpcnR5ID0gdHJ1ZTsKKyAgICAgICAgbCA9IGwtPnBhcmVudCgpOworICAgIH0KK30K
Kwordm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlVmlzaWJpbGl0eVN0YXR1cygpCit7CQorICAgIGlm
IChtX3Zpc2libGVEZXNjZW5kYW50U3RhdHVzRGlydHkpIHsKKyAgICAgICAgbV9oYXNWaXNpYmxl
RGVzY2VuZGFudCA9IGZhbHNlOworICAgICAgICBmb3IgKFJlbmRlckxheWVyKiBjaGlsZCA9IGZp
cnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAg
ICAgICAgIGNoaWxkLT51cGRhdGVWaXNpYmlsaXR5U3RhdHVzKCk7ICAgICAgICAKKyAgICAgICAg
ICAgIGlmIChjaGlsZC0+bV9oYXNWaXNpYmxlQ29udGVudCB8fCBjaGlsZC0+bV9oYXNWaXNpYmxl
RGVzY2VuZGFudCkgeworICAgICAgICAgICAgICAgIG1faGFzVmlzaWJsZURlc2NlbmRhbnQgPSB0
cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgICAgIG1fdmlzaWJsZURlc2NlbmRhbnRTdGF0dXNEaXJ0eSA9IGZhbHNlOworICAgIH0KKwor
ICAgIGlmIChtX3Zpc2libGVDb250ZW50U3RhdHVzRGlydHkpIHsKKyAgICAgICAgaWYgKG1fb2Jq
ZWN0LT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSkKKyAgICAgICAgICAgIG1faGFz
VmlzaWJsZUNvbnRlbnQgPSB0cnVlOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIGxh
eWVyIG1heSBiZSBoaWRkZW4gYnV0IHN0aWxsIGhhdmUgc29tZSB2aXNpYmxlIGNvbnRlbnQsIGNo
ZWNrIGZvciB0aGlzCisgICAgICAgICAgICBtX2hhc1Zpc2libGVDb250ZW50ID0gZmFsc2U7Cisg
ICAgICAgICAgICBSZW5kZXJPYmplY3QqIHIgPSBtX29iamVjdC0+Zmlyc3RDaGlsZCgpOworICAg
ICAgICAgICAgd2hpbGUgKHIpIHsKKyAgICAgICAgICAgICAgICBpZiAoci0+c3R5bGUoKS0+dmlz
aWJpbGl0eSgpID09IFZJU0lCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9oYXNWaXNpYmxl
Q29udGVudCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoci0+Zmlyc3RDaGlsZCgpICYmICFyLT5maXJzdENo
aWxkKCktPmxheWVyKCkpCisgICAgICAgICAgICAgICAgICAgIHIgPSByLT5maXJzdENoaWxkKCk7
CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoci0+bmV4dFNpYmxpbmcoKSAmJiAhci0+bmV4dFNp
YmxpbmcoKS0+bGF5ZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgciA9IHItPm5leHRTaWJsaW5n
KCk7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChy
ICYmICghci0+bmV4dFNpYmxpbmcoKSB8fCByLT5uZXh0U2libGluZygpLT5sYXllcigpKSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgciA9IHItPnBhcmVudCgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHI9PW1fb2JqZWN0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIg
PSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChyKQor
ICAgICAgICAgICAgICAgICAgICAgICAgciA9IHItPm5leHRTaWJsaW5nKCk7IAkJCQkKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgCisgICAgICAgIG1fdmlz
aWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSA9IGZhbHNlOyAKKyAgICB9Cit9CisKIHZvaWQgUmVuZGVy
TGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb24oKQogewogICAgIC8vIENsZWFyIG91ciBjYWNoZWQg
Y2xpcCByZWN0IGluZm9ybWF0aW9uLgpAQCAtNDU0LDYgKzU0OCwxMCBAQCB2b2lkIFJlbmRlckxh
eWVyOjphZGRDaGlsZChSZW5kZXJMYXllciAqCiAgICAgICAgIGlmIChzdGFja2luZ0NvbnRleHQp
CiAgICAgICAgICAgICBzdGFja2luZ0NvbnRleHQtPmRpcnR5Wk9yZGVyTGlzdHMoKTsKICAgICB9
CisgICAgCisgICAgY2hpbGQtPnVwZGF0ZVZpc2liaWxpdHlTdGF0dXMoKTsKKyAgICBpZiAoY2hp
bGQtPm1faGFzVmlzaWJsZUNvbnRlbnQgfHwgY2hpbGQtPm1faGFzVmlzaWJsZURlc2NlbmRhbnQp
CisgICAgICAgIGNoaWxkVmlzaWJpbGl0eUNoYW5nZWQodHJ1ZSk7CiB9CiAKIFJlbmRlckxheWVy
KiBSZW5kZXJMYXllcjo6cmVtb3ZlQ2hpbGQoUmVuZGVyTGF5ZXIqIG9sZENoaWxkKQpAQCAtNDg0
LDYgKzU4MiwxMCBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OnJlbW92ZUNoaWxkKFJlCiAg
ICAgb2xkQ2hpbGQtPnNldE5leHRTaWJsaW5nKDApOwogICAgIG9sZENoaWxkLT5zZXRQYXJlbnQo
MCk7CiAgICAgCisgICAgb2xkQ2hpbGQtPnVwZGF0ZVZpc2liaWxpdHlTdGF0dXMoKTsKKyAgICBp
ZiAob2xkQ2hpbGQtPm1faGFzVmlzaWJsZUNvbnRlbnQgfHwgb2xkQ2hpbGQtPm1faGFzVmlzaWJs
ZURlc2NlbmRhbnQpCisgICAgICAgIGNoaWxkVmlzaWJpbGl0eUNoYW5nZWQoZmFsc2UpOworICAg
IAogICAgIHJldHVybiBvbGRDaGlsZDsKIH0KIApAQCAtMTgzMiw3ICsxOTM0LDkgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6dXBkYXRlWk9yZGVyTGlzdHMoKQogewogICAgIGlmICghaXNTdGFja2luZ0Nv
bnRleHQoKSB8fCAhbV96T3JkZXJMaXN0c0RpcnR5KQogICAgICAgICByZXR1cm47Ci0gICAgCisK
KyAgICB1cGRhdGVWaXNpYmlsaXR5U3RhdHVzKCk7CisgICAgICAgIAogICAgIGZvciAoUmVuZGVy
TGF5ZXIqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNp
YmxpbmcoKSkKICAgICAgICAgY2hpbGQtPmNvbGxlY3RMYXllcnMobV9wb3NaT3JkZXJMaXN0LCBt
X25lZ1pPcmRlckxpc3QpOwogCkBAIC0xODYzLDE0ICsxOTY3LDggQEAgdm9pZCBSZW5kZXJMYXll
cjo6dXBkYXRlT3ZlcmZsb3dMaXN0KCkKIAogdm9pZCBSZW5kZXJMYXllcjo6Y29sbGVjdExheWVy
cyhWZWN0b3I8UmVuZGVyTGF5ZXIqPiomIHBvc0J1ZmZlciwgVmVjdG9yPFJlbmRlckxheWVyKj4q
JiBuZWdCdWZmZXIpCiB7Ci0gICAgLy8gRklYTUU6IEEgY2hpbGQgcmVuZGVyIG9iamVjdCBvciBs
YXllciBjb3VsZCBvdmVycmlkZSB2aXNpYmlsaXR5LiAgRG9uJ3QgcmVtb3ZlIHRoaXMKLSAgICAv
LyBvcHRpbWl6YXRpb24gdGhvdWdoIHVudGlsIFJlbmRlck9iamVjdCdzIG5vZGVBdFBvaW50IGlz
IHBhdGNoZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRvIGRvCi0gICAgLy8gd2hlbiB2aXNpYmlsaXR5
IGlzIG92ZXJyaWRkZW4gYnkgYSBjaGlsZC4KLSAgICBpZiAocmVuZGVyZXIoKS0+c3R5bGUoKS0+
dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUpCi0gICAgICAgIHJldHVybjsKLQogICAgIC8vIE92ZXJm
bG93IGxheWVycyBhcmUganVzdCBwYWludGVkIGJ5IHRoZWlyIGVuY2xvc2luZyBsYXllcnMsIHNv
IHRoZXkgZG9uJ3QgZ2V0IHB1dCBpbiB6b3JkZXIgbGlzdHMuCi0gICAgaWYgKCFpc092ZXJmbG93
T25seSgpKSB7CisgICAgaWYgKG1faGFzVmlzaWJsZUNvbnRlbnQgJiYgIWlzT3ZlcmZsb3dPbmx5
KCkpIHsKICAgICAgICAgLy8gRGV0ZXJtaW5lIHdoaWNoIGJ1ZmZlciB0aGUgY2hpbGQgc2hvdWxk
IGJlIGluLgogICAgICAgICBWZWN0b3I8UmVuZGVyTGF5ZXIqPiomIGJ1ZmZlciA9ICh6SW5kZXgo
KSA+PSAwKSA/IHBvc0J1ZmZlciA6IG5lZ0J1ZmZlcjsKIApAQCAtMTg4NCw3ICsxOTgyLDcgQEAg
dm9pZCBSZW5kZXJMYXllcjo6Y29sbGVjdExheWVycyhWZWN0b3I8UgogCiAgICAgLy8gUmVjdXIg
aW50byBvdXIgY2hpbGRyZW4gdG8gY29sbGVjdCBtb3JlIGxheWVycywgYnV0IG9ubHkgaWYgd2Ug
ZG9uJ3QgZXN0YWJsaXNoCiAgICAgLy8gYSBzdGFja2luZyBjb250ZXh0LgotICAgIGlmICghaXNT
dGFja2luZ0NvbnRleHQoKSkKKyAgICBpZiAobV9oYXNWaXNpYmxlRGVzY2VuZGFudCAmJiAhaXNT
dGFja2luZ0NvbnRleHQoKSkKICAgICAgICAgZm9yIChSZW5kZXJMYXllciogY2hpbGQgPSBmaXJz
dENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQogICAgICAgICAg
ICAgY2hpbGQtPmNvbGxlY3RMYXllcnMocG9zQnVmZmVyLCBuZWdCdWZmZXIpOwogfQpJbmRleDog
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCShyZXZpc2lvbiAxNjU5NCkKKysrIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4MSw2ICsyODEsMTAgQEAgcHVi
bGljOgogICAgIHZvaWQgZGlydHlPdmVyZmxvd0xpc3QoKTsKICAgICB2b2lkIHVwZGF0ZU92ZXJm
bG93TGlzdCgpOwogICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBvdmVyZmxvd0xpc3QoKSBjb25z
dCB7IHJldHVybiBtX292ZXJmbG93TGlzdDsgfQorICAgIAorICAgIGJvb2wgaGFzVmlzaWJsZUNv
bnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1Zpc2libGVDb250ZW50OyB9CisgICAgdm9pZCBz
ZXRIYXNWaXNpYmxlQ29udGVudChib29sIGIpOworICAgIHZvaWQgZGlydHlWaXNpYmxlQ29udGVu
dFN0YXR1cygpOwogCiAgICAgLy8gR2V0cyB0aGUgbmVhcmVzdCBlbmNsb3NpbmcgcG9zaXRpb25l
ZCBhbmNlc3RvciBsYXllciAoYWxzbyBpbmNsdWRlcwogICAgIC8vIHRoZSA8aHRtbD4gbGF5ZXIg
YW5kIHRoZSByb290IGxheWVyKS4KQEAgLTM0Nyw2ICszNTEsMTEgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgdmFsdWVDaGFuZ2VkKFNjcm9sbEJhciopOwogCiAgICAgdm9pZCB1cGRhdGVP
dmVyZmxvd1N0YXR1cyhib29sIGhvcml6b250YWxPdmVyZmxvdywgYm9vbCB2ZXJ0aWNhbE92ZXJm
bG93KTsKKyAgICAKKyAgICB2b2lkIGNoaWxkVmlzaWJpbGl0eUNoYW5nZWQoYm9vbCBuZXdWaXNp
YmlsaXR5KTsKKyAgICB2b2lkIGRpcnR5VmlzaWJsZURlc2NlbmRhbnRTdGF0dXMoKTsKKyAgICB2
b2lkIHVwZGF0ZVZpc2liaWxpdHlTdGF0dXMoKTsKKyAgICAgICAgCiBwcm90ZWN0ZWQ6ICAgCiAg
ICAgUmVuZGVyT2JqZWN0KiBtX29iamVjdDsKICAgICAKQEAgLTQyMCw2ICs0MjksMTAgQEAgcHJv
dGVjdGVkOiAgIAogICAgIGJvb2wgbV9vdmVyZmxvd1N0YXR1c0RpcnR5IDogMTsKICAgICBib29s
IG1faG9yaXpvbnRhbE92ZXJmbG93IDogMTsKICAgICBib29sIG1fdmVydGljYWxPdmVyZmxvdyA6
IDE7CisgICAgYm9vbCBtX3Zpc2libGVDb250ZW50U3RhdHVzRGlydHkgOiAxOworICAgIGJvb2wg
bV9oYXNWaXNpYmxlQ29udGVudCA6IDE7CisgICAgYm9vbCBtX3Zpc2libGVEZXNjZW5kYW50U3Rh
dHVzRGlydHkgOiAxOworICAgIGJvb2wgbV9oYXNWaXNpYmxlRGVzY2VuZGFudCA6IDE7CiAgICAg
CiAgICAgTWFycXVlZSogbV9tYXJxdWVlOyAvLyBVc2VkIGJ5IGxheWVycyB3aXRoIG92ZXJmbG93
Om1hcnF1ZWUKIH07CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlzaW9u
IDE2NTk0KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjA1OSw2ICsyMDU5LDE1IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpzZXRTdHlsZShS
ZW5kZXJTdHlsZSAKICAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+dmlzaWJpbGl0eSgpICE9
IHN0eWxlLT52aXNpYmlsaXR5KCkpCiAgICAgICAgICAgICAgICAgICAgIGxheWVyKCktPmRpcnR5
Wk9yZGVyTGlzdHMoKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGtlZXAgbGF5ZXIg
aGllcmFyY2h5IHZpc2liaWxpdHkgYml0cyB1cCB0byBkYXRlIGlmIHZpc2liaWxpdHkgY2hhbmdl
cworICAgICAgICAgICAgaWYgKG1fc3R5bGUtPnZpc2liaWxpdHkoKSAhPSBzdHlsZS0+dmlzaWJp
bGl0eSgpKSB7CisgICAgICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGwgPSBlbmNsb3NpbmdMYXll
cigpOyAKKyAgICAgICAgICAgICAgICBpZiAoc3R5bGUtPnZpc2liaWxpdHkoKSA9PSBWSVNJQkxF
ICYmIGwpCisgICAgICAgICAgICAgICAgICAgIGwtPnNldEhhc1Zpc2libGVDb250ZW50KHRydWUp
OworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGwgJiYgbC0+aGFzVmlzaWJsZUNvbnRlbnQoKSAm
JiAKKyAgICAgICAgICAgICAgICAgICAgKHRoaXM9PWwtPnJlbmRlcmVyKCkgfHwgIWwtPnJlbmRl
cmVyKCktPnN0eWxlKCktPnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFKSkKKyAgICAgICAgICAgICAg
ICAgICAgbC0+ZGlydHlWaXNpYmxlQ29udGVudFN0YXR1cygpOworICAgICAgICAgICAgfSAgICAg
ICAgICAgIAogICAgICAgICB9CiAKICAgICAgICAgZCA9IG1fc3R5bGUtPmRpZmYoc3R5bGUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>10791</attachid>
            <date>2006-09-26 21:38:58 -0700</date>
            <delta_ts>2006-09-26 21:38:58 -0700</delta_ts>
            <desc>updated tests</desc>
            <filename>visibility-test-2.html</filename>
            <type>text/html</type>
            <size>6193</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">PGh0bWw+CjxzdHlsZT4KLnJlZCB7IGJvcmRlcjogMnB4IHNvbGlkIHJlZCB9Ci5ncmVlbiB7IGJv
cmRlcjogMnB4IHNvbGlkIGdyZWVuIH0KLnZpc2libGUgeyB2aXNpYmlsaXR5OiB2aXNpYmxlfQou
aW52aXNpYmxlIHsgdmlzaWJpbGl0eTogaGlkZGVufQouYWJzdG9wIHsgcG9zaXRpb246IGFic29s
dXRlOyBsZWZ0OjA7IHJpZ2h0OjA7IGhlaWdodDozMHB4ICAgfQouYWJzIHsgcG9zaXRpb246IGFi
c29sdXRlOyBsZWZ0OjA7IHJpZ2h0OjA7IHRvcDowOyBib3R0b206MCB9Cjwvc3R5bGU+Cgo8c2Ny
aXB0PgpmdW5jdGlvbiBkb3Rlc3QoKQp7Ci8vOQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnOScp
LnN0eWxlLnNldFByb3BlcnR5KCd2aXNpYmlsaXR5JywndmlzaWJsZScsJycpOwoKLy8xMApkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnMTAnKS5zdHlsZS5zZXRQcm9wZXJ0eSgndmlzaWJpbGl0eScs
J3Zpc2libGUnLCcnKTsKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJzEwJykuc3R5bGUuc2V0UHJv
cGVydHkoJ3Zpc2liaWxpdHknLCdoaWRkZW4nLCcnKTsKCi8vMTEKZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJzExJykuc3R5bGUuc2V0UHJvcGVydHkoJ3Zpc2liaWxpdHknLCd2aXNpYmxlJywnJyk7
CgovLzEyCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCcxMicpLnN0eWxlLnNldFByb3BlcnR5KCd2
aXNpYmlsaXR5JywnaGlkZGVuJywnJyk7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCcxMicpLnN0
eWxlLnNldFByb3BlcnR5KCd2aXNpYmlsaXR5JywndmlzaWJsZScsJycpOwoKLy8xMwpkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnMTNhJykuc3R5bGUuc2V0UHJvcGVydHkoJ3Zpc2liaWxpdHknLCdo
aWRkZW4nLCcnKTsKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJzEzYicpLnN0eWxlLnNldFByb3Bl
cnR5KCd2aXNpYmlsaXR5JywnaGlkZGVuJywnJyk7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCcx
M2MnKS5zdHlsZS5zZXRQcm9wZXJ0eSgndmlzaWJpbGl0eScsJ2hpZGRlbicsJycpOwpkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnMTNiJykuc3R5bGUuc2V0UHJvcGVydHkoJ3Zpc2liaWxpdHknLCd2
aXNpYmxlJywnJyk7CgovLzE0CnZhciBub2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7Cm5vZGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ29rJykpOwpkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnMTQnKS5hcHBlbmRDaGlsZChub2RlKTsKbm9kZS5zdHlsZS5z
ZXRQcm9wZXJ0eSgndmlzaWJpbGl0eScsJ3Zpc2libGUnLCcnKTsKZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJzE0JykucmVtb3ZlQ2hpbGQobm9kZSk7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCcx
NCcpLmFwcGVuZENoaWxkKG5vZGUpOwpub2RlLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCdncmVlbicp
OwoKLy8xNQp2YXIgbm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwpub2RlLnNl
dEF0dHJpYnV0ZSgnY2xhc3MnLCdpbnZpc2libGUgYWJzIGdyZWVuJyk7Cm5vZGUuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ29rJykpOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnMTUnKS5hcHBlbmRDaGlsZChub2RlKTsKbm9kZS5zdHlsZS5zZXRQcm9wZXJ0eSgndmlzaWJp
bGl0eScsJ3Zpc2libGUnLCcnKTsKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJzE1JykucmVtb3Zl
Q2hpbGQobm9kZSk7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCcxNScpLmFwcGVuZENoaWxkKG5v
ZGUpOwoKLy8xNgpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnMTYnKS5zdHlsZS5zZXRQcm9wZXJ0
eSgndmlzaWJpbGl0eScsJ2hpZGRlbicsJycpOwoKLy8xNwpkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnMTcnKS5zdHlsZS5zZXRQcm9wZXJ0eSgndmlzaWJpbGl0eScsJ3Zpc2libGUnLCcnKTsKCi8v
MTgKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJzE4YScpLnN0eWxlLnNldFByb3BlcnR5KCd2aXNp
YmlsaXR5JywnaGlkZGVuJywnJyk7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCcxOGInKS5zdHls
ZS5zZXRQcm9wZXJ0eSgndmlzaWJpbGl0eScsJ3Zpc2libGUnLCcnKTsKCi8vMTkKZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJzE5YScpLnN0eWxlLnNldFByb3BlcnR5KCd2aXNpYmlsaXR5JywnaGlk
ZGVuJywnJyk7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCcxOWInKS5zdHlsZS5zZXRQcm9wZXJ0
eSgndmlzaWJpbGl0eScsJ3Zpc2libGUnLCcnKTsKCi8vMjAKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJzIwYScpLnN0eWxlLnNldFByb3BlcnR5KCd2aXNpYmlsaXR5JywnaGlkZGVuJywnJyk7CmRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCcyMGInKS5zdHlsZS5zZXRQcm9wZXJ0eSgndmlzaWJpbGl0
eScsJ3Zpc2libGUnLCcnKTsKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJzIwYicpLnN0eWxlLnNl
dFByb3BlcnR5KCd2aXNpYmlsaXR5JywnaGlkZGVuJywnJyk7CgovLzIxCmRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCcyMWEnKS5zdHlsZS5zZXRQcm9wZXJ0eSgndmlzaWJpbGl0eScsJ2hpZGRlbics
JycpOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnMjFiJykuc3R5bGUuc2V0UHJvcGVydHkoJ3Zp
c2liaWxpdHknLCd2aXNpYmxlJywnJyk7Cn0KPC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHkgb25sb2Fk
PSJzZXRUaW1lb3V0KGRvdGVzdCwyMCkiPgoxIGdyZWVuIGJveDoKPGRpdiBjbGFzcz0idmlzaWJs
ZSBncmVlbiI+CjxkaXYgY2xhc3M9ImludmlzaWJsZSByZWQiPgpmYWlsZWQKPC9kaXY+CjwvZGl2
PgoyICBncmVlbiBib3ggd2l0aCB3b3JkIG9rOgo8ZGl2IGNsYXNzPSJpbnZpc2libGUgcmVkIj4K
PGRpdiBjbGFzcz0idmlzaWJsZSBncmVlbiI+Cm9rCjwvZGl2Pgo8L2Rpdj4KMyBncmVlbiBib3gg
d2l0aCB3b3JkIG9rOgo8ZGl2IGNsYXNzPSJpbnZpc2libGUgYWJzdG9wIHJlZCIgPgo8ZGl2IGNs
YXNzPSJ2aXNpYmxlIGdyZWVuIj4Kb2sKPC9kaXY+CjwvZGl2Pgo8YnI+PGJyPjxicj48YnI+CjQg
Z3JlZW4gYm94IHdpdGggd29yZCBvazoKPGRpdiBjbGFzcz0iaW52aXNpYmxlIGFic3RvcCByZWQi
ID4KPGRpdiBjbGFzcz0idmlzaWJsZSBhYnMgZ3JlZW4iPgpvawo8L2Rpdj4KPC9kaXY+Cjxicj48
YnI+PGJyPjxicj4KNSBncmVlbiBib3ggd2l0aCB3b3JkIG9rOgo8ZGl2IGNsYXNzPSJpbnZpc2li
bGUgYWJzdG9wIHJlZCI+CjxkaXYgY2xhc3M9ImludmlzaWJsZSByZWQiPgo8ZGl2IGNsYXNzPSJ2
aXNpYmxlIGdyZWVuIj4Kb2sKPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGJyPjxicj48YnI+PGJyPgo2
IGdyZWVuIGJveCB3aXRoIHdvcmQgb2s6CjxkaXYgY2xhc3M9ImludmlzaWJsZSBhYnN0b3AgcmVk
Ij4KPGRpdiBjbGFzcz0iaW52aXNpYmxlIGFicyByZWQiPgo8ZGl2IGNsYXNzPSJ2aXNpYmxlIGdy
ZWVuIj4Kb2sKPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGJyPjxicj48YnI+PGJyPgo3IGdyZWVuIGJv
eCB3aXRoIHdvcmQgb2s6CjxkaXYgY2xhc3M9ImludmlzaWJsZSBhYnN0b3AgcmVkIj4KPGRpdiBj
bGFzcz0iaW52aXNpYmxlIGFicyByZWQiPgo8ZGl2IGNsYXNzPSJ2aXNpYmxlIGFicyBncmVlbiI+
Cm9rCjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cjxicj48YnI+PGJyPjxicj4KOCBkb3VibGUgZ3JlZW4g
Ym94IHdpdGggd29yZCBvazoKPGRpdiBjbGFzcz0idmlzaWJsZSBhYnN0b3AgZ3JlZW4iPgo8ZGl2
IGNsYXNzPSJpbnZpc2libGUgYWJzIHJlZCI+CjxkaXYgY2xhc3M9InZpc2libGUgYWJzIGdyZWVu
Ij4Kb2sKPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGJyPjxicj48YnI+PGJyPgo5IGdyZWVuIGJveCB3
aXRoIHdvcmQgb2s6CjxkaXYgY2xhc3M9ImludmlzaWJsZSBhYnN0b3AgcmVkIj4KPGRpdiBjbGFz
cz0iaW52aXNpYmxlIGFicyByZWQiPgo8ZGl2IGlkPSI5IiBjbGFzcz0iaW52aXNpYmxlIGFicyBn
cmVlbiI+Cm9rCjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cjxicj48YnI+PGJyPjxicj4KMTAgZ3JlZW4g
Ym94Ogo8ZGl2IGNsYXNzPSJpbnZpc2libGUgYWJzdG9wIHJlZCI+CjxkaXYgY2xhc3M9InZpc2li
bGUgYWJzIGdyZWVuIj4KPGRpdiBpZD0iMTAiIGNsYXNzPSJpbnZpc2libGUgYWJzIHJlZCI+CmZh
aWxlZAo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8YnI+PGJyPjxicj48YnI+CjExIGdyZWVuIGJveCB3
aXRoIHdvcmQgb2s6CjxkaXYgY2xhc3M9ImludmlzaWJsZSBhYnN0b3AgcmVkIj4KPGRpdiBjbGFz
cz0iaW52aXNpYmxlIHJlZCI+CjxkaXYgaWQ9IjExIiBjbGFzcz0iaW52aXNpYmxlIGdyZWVuIj4K
b2sKPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGJyPjxicj48YnI+PGJyPgoxMiBncmVlbiBib3ggd2l0
aCB3b3JkIG9rOgo8ZGl2IGNsYXNzPSJpbnZpc2libGUgYWJzdG9wIHJlZCI+CjxkaXYgY2xhc3M9
ImludmlzaWJsZSByZWQiPgo8ZGl2IGlkPSIxMiIgY2xhc3M9InZpc2libGUgZ3JlZW4iPgpvawo8
L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8YnI+PGJyPjxicj48YnI+CjEzIGdyZWVuIGJveDoKPGRpdiBp
ZD0iMTNhIiBjbGFzcz0idmlzaWJsZSBhYnN0b3AgcmVkIj4KPGRpdiBpZD0iMTNiIiBjbGFzcz0i
dmlzaWJsZSBncmVlbiI+CjxkaXYgaWQ9IjEzYyIgY2xhc3M9InZpc2libGUgcmVkIj4KZmFpbGVk
CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cjxicj48YnI+PGJyPjxicj4KMTQgZ3JlZW4gYm94IHdpdGgg
d29yZCBvazoKPGRpdiBpZD0iMTQiIGNsYXNzPSJpbnZpc2libGUgYWJzdG9wIj4KPC9kaXY+Cjxi
cj48YnI+PGJyPjxicj4KMTUgZ3JlZW4gYm94IHdpdGggd29yZCBvazoKPGRpdiBpZD0iMTUiIGNs
YXNzPSJpbnZpc2libGUgYWJzdG9wIj4KPC9kaXY+Cjxicj48YnI+PGJyPjxicj4KMTYgZ3JlZW4g
Ym94IHdpdGggd29yZCBvazoKPGRpdiBjbGFzcz0iaW52aXNpYmxlIGFic3RvcCByZWQiPgo8ZGl2
IGNsYXNzPSJpbnZpc2libGUgcmVkIj4KPGRpdiBpZD0iMTYiIGNsYXNzPSJ2aXNpYmxlIHJlZCI+
CmZhaWwKPC9kaXY+CjxkaXYgY2xhc3M9InZpc2libGUgZ3JlZW4iPgpvawo8L2Rpdj4KPC9kaXY+
CjwvZGl2Pgo8YnI+PGJyPjxicj48YnI+CjE3IGdyZWVuIGJveCB3aXRoIHdvcmQgb2s6CjxkaXYg
Y2xhc3M9ImludmlzaWJsZSBhYnN0b3AgcmVkIj4KPGRpdiBjbGFzcz0iaW52aXNpYmxlIHJlZCI+
CjxkaXYgaWQ9IjE3IiBjbGFzcz0iaW52aXNpYmxlIGdyZWVuIj4Kb2sKPC9kaXY+CjxkaXYgY2xh
c3M9ImludmlzaWJsZSByZWQiPgpmYWlsCjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cjxicj48YnI+PGJy
Pjxicj4KMTggZ3JlZW4gYm94IHdpdGggd29yZCBvazoKPGRpdiBjbGFzcz0iaW52aXNpYmxlIGFi
c3RvcCByZWQiPgo8ZGl2IGNsYXNzPSJpbnZpc2libGUgcmVkIj4KPGRpdiBpZD0iMThhIiBjbGFz
cz0idmlzaWJsZSByZWQiPgpmYWlsCjwvZGl2Pgo8ZGl2IGlkPSIxOGIiIGNsYXNzPSJpbnZpc2li
bGUgZ3JlZW4iPgpvawo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8YnI+PGJyPjxicj48YnI+CjE5IGdy
ZWVuIGJveCB3aXRoIHdvcmQgb2s6CjxkaXYgY2xhc3M9ImludmlzaWJsZSBhYnN0b3AgcmVkIj4K
PGRpdiBjbGFzcz0iaW52aXNpYmxlIHJlZCI+CjxkaXYgaWQ9IjE5YSIgY2xhc3M9InZpc2libGUg
cmVkIj4KZmFpbAo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImludmlzaWJsZSByZWQiPgo8ZGl2
IGlkPSIxOWIiIGNsYXNzPSJpbnZpc2libGUgZ3JlZW4iPgpvawo8L2Rpdj4KPC9kaXY+CjwvZGl2
Pgo8YnI+PGJyPjxicj48YnI+CjIwIGdyZWVuIGJveDoKPGRpdiBjbGFzcz0iaW52aXNpYmxlIGFi
c3RvcCByZWQiPgo8ZGl2IGNsYXNzPSJ2aXNpYmxlIGdyZWVuIj4KPGRpdiBpZD0iMjBhIiBjbGFz
cz0idmlzaWJsZSByZWQiPgpvawo8L2Rpdj4KPGRpdiBpZD0iMjBiIiBjbGFzcz0iaW52aXNpYmxl
IGdyZWVuIj4Kb2sKPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGJyPjxicj48YnI+PGJyPgoyMSB0d28g
Z3JlZW4gYm94ZXMgd2l0aCB3b3JkIG9rOgo8ZGl2IGNsYXNzPSJpbnZpc2libGUgYWJzdG9wIHJl
ZCI+CjxkaXYgaWQ9IjIxYSIgY2xhc3M9InZpc2libGUgcmVkIj4KPGRpdiBjbGFzcz0idmlzaWJs
ZSBncmVlbiI+Cm9rCjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iaW52aXNpYmxlIHJlZCI+Cjxk
aXYgaWQ9IjIxYiIgY2xhc3M9ImludmlzaWJsZSBncmVlbiI+Cm9rCjwvZGl2Pgo8L2Rpdj4KPC9k
aXY+Cjxicj48YnI+PGJyPjxicj4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10812</attachid>
            <date>2006-09-27 19:34:37 -0700</date>
            <delta_ts>2006-09-27 22:13:27 -0700</delta_ts>
            <desc>cosmetic fixes</desc>
            <filename>visibility4.patch</filename>
            <type>text/plain</type>
            <size>12033</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbnRhaW5lci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ29udGFpbmVyLmNwcAkocmV2aXNpb24gMTY1OTQp
CisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb250YWluZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzUsOCArMTc1LDE4IEBAIFJlbmRlck9iamVjdCogUmVuZGVyQ29udGFpbmVyOjpyZW1v
dmVDaGkKICAgICBvbGRDaGlsZC0+ZGVsZXRlTGluZUJveFdyYXBwZXIoKTsKIAogICAgIGlmICgh
ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKSB7Ci0gICAgICAgIC8vIEtlZXAgb3VyIGxheWVyIGhp
ZXJhcmNoeSB1cGRhdGVkLgotICAgICAgICBvbGRDaGlsZC0+cmVtb3ZlTGF5ZXJzKGVuY2xvc2lu
Z0xheWVyKCkpOworICAgICAgICAvLyBpZiB3ZSByZW1vdmUgdmlzaWJsZSBjaGlsZCBmcm9tIGFu
IGludmlzaWJsZSBwYXJlbnQsIHdlIGRvbid0IGtub3cgdGhlIGxheWVyIHZpc2liaWxpdHkgYW55
IG1vcmUKKyAgICAgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gMDsKKyAgICAgICAgaWYgKG1fc3R5
bGUtPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFICYmIG9sZENoaWxkLT5zdHlsZSgpLT52aXNpYmls
aXR5KCkgPT0gVklTSUJMRSAmJiAhb2xkQ2hpbGQtPmxheWVyKCkpIHsKKyAgICAgICAgICAgIGxh
eWVyID0gZW5jbG9zaW5nTGF5ZXIoKTsKKyAgICAgICAgICAgIGxheWVyLT5kaXJ0eVZpc2libGVD
b250ZW50U3RhdHVzKCk7CisgICAgICAgIH0KKworICAgICAgICAgLy8gS2VlcCBvdXIgbGF5ZXIg
aGllcmFyY2h5IHVwZGF0ZWQuCisgICAgICAgIGlmIChvbGRDaGlsZC0+Zmlyc3RDaGlsZCgpIHx8
IG9sZENoaWxkLT5sYXllcigpKSB7CisgICAgICAgICAgICBpZiAoIWxheWVyKSBsYXllciA9IGVu
Y2xvc2luZ0xheWVyKCk7ICAgICAgICAgICAgCisgICAgICAgICAgICBvbGRDaGlsZC0+cmVtb3Zl
TGF5ZXJzKGxheWVyKTsKKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgLy8gSWYgb2xkQ2hp
bGQgaXMgdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUgc2VsZWN0aW9uLCB0aGVuIGNsZWFyIHRoZSBz
ZWxlY3Rpb24gdG8KICAgICAgICAgLy8gYXZvaWQgcHJvYmxlbXMgb2YgaW52YWxpZCBwb2ludGVy
cy4KQEAgLTM3OSwxMCArMzg5LDE4IEBAIHZvaWQgUmVuZGVyQ29udGFpbmVyOjphcHBlbmRDaGls
ZE5vZGUoUmUKICAgICAKICAgICAvLyBLZWVwIG91ciBsYXllciBoaWVyYXJjaHkgdXBkYXRlZC4g
IE9wdGltaXplIGZvciB0aGUgY29tbW9uIGNhc2Ugd2hlcmUgd2UgZG9uJ3QgaGF2ZSBhbnkgY2hp
bGRyZW4KICAgICAvLyBhbmQgZG9uJ3QgaGF2ZSBhIGxheWVyIGF0dGFjaGVkIHRvIG91cnNlbHZl
cy4KKyAgICBSZW5kZXJMYXllciogbGF5ZXIgPSAwOwogICAgIGlmIChuZXdDaGlsZC0+Zmlyc3RD
aGlsZCgpIHx8IG5ld0NoaWxkLT5sYXllcigpKSB7Ci0gICAgICAgIFJlbmRlckxheWVyKiBsYXll
ciA9IGVuY2xvc2luZ0xheWVyKCk7CisgICAgICAgIGxheWVyID0gZW5jbG9zaW5nTGF5ZXIoKTsK
ICAgICAgICAgbmV3Q2hpbGQtPmFkZExheWVycyhsYXllciwgbmV3Q2hpbGQpOwogICAgIH0KKwor
ICAgIC8vIGlmIHRoZSBuZXcgY2hpbGQgaXMgdmlzaWJsZSBidXQgdGhpcyBvYmplY3Qgd2FzIG5v
dCwgdGVsbCB0aGUgbGF5ZXIgaXQgaGFzIHNvbWUgdmlzaWJsZSBjb250ZW50CisgICAgLy8gdGhh
dCBuZWVkcyB0byBiZSBkcmF3biBhbmQgbGF5ZXIgdmlzaWJpbGl0eSBvcHRpbWl6YXRpb24gY2Fu
J3QgYmUgdXNlZAorICAgIGlmIChzdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSAmJiBu
ZXdDaGlsZC0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUgJiYgIW5ld0NoaWxkLT5s
YXllcigpKSB7CisgICAgICAgIGlmICghbGF5ZXIpIGxheWVyID0gZW5jbG9zaW5nTGF5ZXIoKTsK
KyAgICAgICAgbGF5ZXItPnNldEhhc1Zpc2libGVDb250ZW50KHRydWUpOwkKKyAgICB9CiAgICAg
CiAgICAgbmV3Q2hpbGQtPnNldE5lZWRzTGF5b3V0QW5kTWluTWF4UmVjYWxjKCk7IC8vIEdvZXMg
dXAgdGhlIGNvbnRhaW5pbmcgYmxvY2sgaGllcmFyY2h5LgogICAgIGlmICghbm9ybWFsQ2hpbGRO
ZWVkc0xheW91dCgpKQpAQCAtNDIwLDkgKzQzOCwyMCBAQCB2b2lkIFJlbmRlckNvbnRhaW5lcjo6
aW5zZXJ0Q2hpbGROb2RlKFJlCiAKICAgICBjaGlsZC0+c2V0UGFyZW50KHRoaXMpOwogICAgIAot
ICAgIC8vIEtlZXAgb3VyIGxheWVyIGhpZXJhcmNoeSB1cGRhdGVkLgotICAgIFJlbmRlckxheWVy
KiBsYXllciA9IGVuY2xvc2luZ0xheWVyKCk7Ci0gICAgY2hpbGQtPmFkZExheWVycyhsYXllciwg
Y2hpbGQpOworICAgIC8vIEtlZXAgb3VyIGxheWVyIGhpZXJhcmNoeSB1cGRhdGVkLiAgT3B0aW1p
emUgZm9yIHRoZSBjb21tb24gY2FzZSB3aGVyZSB3ZSBkb24ndCBoYXZlIGFueSBjaGlsZHJlbgor
ICAgIC8vIGFuZCBkb24ndCBoYXZlIGEgbGF5ZXIgYXR0YWNoZWQgdG8gb3Vyc2VsdmVzLgorICAg
IFJlbmRlckxheWVyKiBsYXllciA9IDA7CisgICAgaWYgKGNoaWxkLT5maXJzdENoaWxkKCkgfHwg
Y2hpbGQtPmxheWVyKCkpIHsKKyAgICAgICAgbGF5ZXIgPSBlbmNsb3NpbmdMYXllcigpOworICAg
ICAgICBjaGlsZC0+YWRkTGF5ZXJzKGxheWVyLCBjaGlsZCk7CisgICAgfQorCisgICAgLy8gaWYg
dGhlIG5ldyBjaGlsZCBpcyB2aXNpYmxlIGJ1dCB0aGlzIG9iamVjdCB3YXMgbm90LCB0ZWxsIHRo
ZSBsYXllciBpdCBoYXMgc29tZSB2aXNpYmxlIGNvbnRlbnQKKyAgICAvLyB0aGF0IG5lZWRzIHRv
IGJlIGRyYXduIGFuZCBsYXllciB2aXNpYmlsaXR5IG9wdGltaXphdGlvbiBjYW4ndCBiZSB1c2Vk
CisgICAgaWYgKHN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFICYmIGNoaWxkLT5zdHls
ZSgpLT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSAmJiAhY2hpbGQtPmxheWVyKCkpIHsKKyAgICAg
ICAgaWYgKCFsYXllcikgbGF5ZXIgPSBlbmNsb3NpbmdMYXllcigpOworICAgICAgICBsYXllci0+
c2V0SGFzVmlzaWJsZUNvbnRlbnQodHJ1ZSk7CQorICAgIH0KIAogICAgIGNoaWxkLT5zZXROZWVk
c0xheW91dEFuZE1pbk1heFJlY2FsYygpOwogICAgIGlmICghbm9ybWFsQ2hpbGROZWVkc0xheW91
dCgpKQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2aXNpb24gMTY1OTQpCisr
KyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0
NCw4ICsxNDQsMTYgQEAgbV91c2VkVHJhbnNwYXJlbmN5KGZhbHNlKSwKIG1faW5PdmVyZmxvd1Jl
bGF5b3V0KGZhbHNlKSwKIG1fcmVwYWludE92ZXJmbG93T25SZXNpemUoZmFsc2UpLAogbV9vdmVy
Zmxvd1N0YXR1c0RpcnR5KHRydWUpLAorbV92aXNpYmxlQ29udGVudFN0YXR1c0RpcnR5KCB0cnVl
ICksCittX2hhc1Zpc2libGVDb250ZW50KCBmYWxzZSApLAorbV92aXNpYmxlRGVzY2VuZGFudFN0
YXR1c0RpcnR5KCBmYWxzZSApLAorbV9oYXNWaXNpYmxlRGVzY2VuZGFudCggZmFsc2UgKSwKIG1f
bWFycXVlZSgwKQogeworICAgIGlmICghb2JqZWN0LT5maXJzdENoaWxkKCkgJiYgb2JqZWN0LT5z
dHlsZSgpKSB7CisgICAgICAgIG1fdmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSA9IGZhbHNlOwor
ICAgICAgICBtX2hhc1Zpc2libGVDb250ZW50ID0gb2JqZWN0LT5zdHlsZSgpLT52aXNpYmlsaXR5
KCkgPT0gVklTSUJMRTsKKyAgICB9CiB9CiAKIFJlbmRlckxheWVyOjp+UmVuZGVyTGF5ZXIoKQpA
QCAtMTkyLDggKzIwMCw5IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25z
KGIKICAgICAgICAgcG9zaXRpb25TY3JvbGxiYXJzKGxheWVyQm91bmRzKTsKICAgICB9CiAKLSAg
ICAvLyBGSVhNRTogQ2hpbGQgb2JqZWN0IGNvdWxkIG92ZXJyaWRlIHZpc2liaWxpdHkuCi0gICAg
aWYgKG1fb2JqZWN0LT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSkgeworICAgIHVw
ZGF0ZVZpc2liaWxpdHlTdGF0dXMoKTsKKyAgICAgICAgCisgICAgaWYgKG1faGFzVmlzaWJsZUNv
bnRlbnQpIHsKICAgICAgICAgaW50IHgsIHk7CiAgICAgICAgIG1fb2JqZWN0LT5hYnNvbHV0ZVBv
c2l0aW9uKHgsIHkpOwogICAgICAgICBJbnRSZWN0IG5ld1JlY3QsIG5ld0Z1bGxSZWN0OwpAQCAt
MjI3LDYgKzIzNiw5MSBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9ucyhi
CiAgICAgICAgIG1fbWFycXVlZS0+dXBkYXRlTWFycXVlZVBvc2l0aW9uKCk7CiB9CiAKK3ZvaWQg
UmVuZGVyTGF5ZXI6OnNldEhhc1Zpc2libGVDb250ZW50KGJvb2wgYikgCit7IAorICAgIGlmICht
X2hhc1Zpc2libGVDb250ZW50ID09IGIgJiYgIW1fdmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSkK
KyAgICAgICAgcmV0dXJuOworICAgIG1fdmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSA9IGZhbHNl
OyAKKyAgICBtX2hhc1Zpc2libGVDb250ZW50ID0gYjsKKyAgICBpZiAocGFyZW50KCkpCisgICAg
ICAgIHBhcmVudCgpLT5jaGlsZFZpc2liaWxpdHlDaGFuZ2VkKG1faGFzVmlzaWJsZUNvbnRlbnQp
OworfQorCit2b2lkIFJlbmRlckxheWVyOjpkaXJ0eVZpc2libGVDb250ZW50U3RhdHVzKCkgCit7
IAorICAgIG1fdmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSA9IHRydWU7IAorICAgIGlmIChwYXJl
bnQoKSkKKyAgICAgICAgcGFyZW50KCktPmRpcnR5VmlzaWJsZURlc2NlbmRhbnRTdGF0dXMoKTsK
K30KKwordm9pZCBSZW5kZXJMYXllcjo6Y2hpbGRWaXNpYmlsaXR5Q2hhbmdlZChib29sIG5ld1Zp
c2liaWxpdHkpIAoreyAKKyAgICBpZiAobV9oYXNWaXNpYmxlRGVzY2VuZGFudCA9PSBuZXdWaXNp
YmlsaXR5IHx8IG1fdmlzaWJsZURlc2NlbmRhbnRTdGF0dXNEaXJ0eSkKKyAgICAgICAgcmV0dXJu
OworICAgIGlmIChuZXdWaXNpYmlsaXR5KSB7CisgICAgICAgIFJlbmRlckxheWVyKiBsID0gdGhp
czsKKyAgICAgICAgd2hpbGUgKGwgJiYgIWwtPm1fdmlzaWJsZURlc2NlbmRhbnRTdGF0dXNEaXJ0
eSAmJiAhbC0+bV9oYXNWaXNpYmxlRGVzY2VuZGFudCkgeworICAgICAgICAgICAgbC0+bV9oYXNW
aXNpYmxlRGVzY2VuZGFudCA9IHRydWU7CisgICAgICAgICAgICBsID0gbC0+cGFyZW50KCk7Cisg
ICAgICAgIH0KKyAgICB9IGVsc2UgCisgICAgICAgIGRpcnR5VmlzaWJsZURlc2NlbmRhbnRTdGF0
dXMoKTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6ZGlydHlWaXNpYmxlRGVzY2VuZGFudFN0YXR1
cygpCit7CisgICAgUmVuZGVyTGF5ZXIqIGwgPSB0aGlzOworICAgIHdoaWxlIChsICYmICFsLT5t
X3Zpc2libGVEZXNjZW5kYW50U3RhdHVzRGlydHkpIHsKKyAgICAgICAgbC0+bV92aXNpYmxlRGVz
Y2VuZGFudFN0YXR1c0RpcnR5ID0gdHJ1ZTsKKyAgICAgICAgbCA9IGwtPnBhcmVudCgpOworICAg
IH0KK30KKwordm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlVmlzaWJpbGl0eVN0YXR1cygpCit7CQor
ICAgIGlmIChtX3Zpc2libGVEZXNjZW5kYW50U3RhdHVzRGlydHkpIHsKKyAgICAgICAgbV9oYXNW
aXNpYmxlRGVzY2VuZGFudCA9IGZhbHNlOworICAgICAgICBmb3IgKFJlbmRlckxheWVyKiBjaGls
ZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsK
KyAgICAgICAgICAgIGNoaWxkLT51cGRhdGVWaXNpYmlsaXR5U3RhdHVzKCk7ICAgICAgICAKKyAg
ICAgICAgICAgIGlmIChjaGlsZC0+bV9oYXNWaXNpYmxlQ29udGVudCB8fCBjaGlsZC0+bV9oYXNW
aXNpYmxlRGVzY2VuZGFudCkgeworICAgICAgICAgICAgICAgIG1faGFzVmlzaWJsZURlc2NlbmRh
bnQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIG1fdmlzaWJsZURlc2NlbmRhbnRTdGF0dXNEaXJ0eSA9IGZhbHNlOworICAg
IH0KKworICAgIGlmIChtX3Zpc2libGVDb250ZW50U3RhdHVzRGlydHkpIHsKKyAgICAgICAgaWYg
KG1fb2JqZWN0LT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSkKKyAgICAgICAgICAg
IG1faGFzVmlzaWJsZUNvbnRlbnQgPSB0cnVlOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
IC8vIGxheWVyIG1heSBiZSBoaWRkZW4gYnV0IHN0aWxsIGhhdmUgc29tZSB2aXNpYmxlIGNvbnRl
bnQsIGNoZWNrIGZvciB0aGlzCisgICAgICAgICAgICBtX2hhc1Zpc2libGVDb250ZW50ID0gZmFs
c2U7CisgICAgICAgICAgICBSZW5kZXJPYmplY3QqIHIgPSBtX29iamVjdC0+Zmlyc3RDaGlsZCgp
OworICAgICAgICAgICAgd2hpbGUgKHIpIHsKKyAgICAgICAgICAgICAgICBpZiAoci0+c3R5bGUo
KS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9oYXNW
aXNpYmxlQ29udGVudCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoci0+Zmlyc3RDaGlsZCgpICYmICFyLT5m
aXJzdENoaWxkKCktPmxheWVyKCkpCisgICAgICAgICAgICAgICAgICAgIHIgPSByLT5maXJzdENo
aWxkKCk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoci0+bmV4dFNpYmxpbmcoKSAmJiAhci0+
bmV4dFNpYmxpbmcoKS0+bGF5ZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgciA9IHItPm5leHRT
aWJsaW5nKCk7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHdo
aWxlIChyICYmICghci0+bmV4dFNpYmxpbmcoKSB8fCByLT5uZXh0U2libGluZygpLT5sYXllcigp
KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgciA9IHItPnBhcmVudCgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHI9PW1fb2JqZWN0KQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHIgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlm
IChyKQorICAgICAgICAgICAgICAgICAgICAgICAgciA9IHItPm5leHRTaWJsaW5nKCk7IAkJCQkK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgCisgICAgICAg
IG1fdmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSA9IGZhbHNlOyAKKyAgICB9Cit9CisKIHZvaWQg
UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb24oKQogewogICAgIC8vIENsZWFyIG91ciBj
YWNoZWQgY2xpcCByZWN0IGluZm9ybWF0aW9uLgpAQCAtNDU0LDYgKzU0OCwxMCBAQCB2b2lkIFJl
bmRlckxheWVyOjphZGRDaGlsZChSZW5kZXJMYXllciAqCiAgICAgICAgIGlmIChzdGFja2luZ0Nv
bnRleHQpCiAgICAgICAgICAgICBzdGFja2luZ0NvbnRleHQtPmRpcnR5Wk9yZGVyTGlzdHMoKTsK
ICAgICB9CisgICAgCisgICAgY2hpbGQtPnVwZGF0ZVZpc2liaWxpdHlTdGF0dXMoKTsKKyAgICBp
ZiAoY2hpbGQtPm1faGFzVmlzaWJsZUNvbnRlbnQgfHwgY2hpbGQtPm1faGFzVmlzaWJsZURlc2Nl
bmRhbnQpCisgICAgICAgIGNoaWxkVmlzaWJpbGl0eUNoYW5nZWQodHJ1ZSk7CiB9CiAKIFJlbmRl
ckxheWVyKiBSZW5kZXJMYXllcjo6cmVtb3ZlQ2hpbGQoUmVuZGVyTGF5ZXIqIG9sZENoaWxkKQpA
QCAtNDg0LDYgKzU4MiwxMCBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OnJlbW92ZUNoaWxk
KFJlCiAgICAgb2xkQ2hpbGQtPnNldE5leHRTaWJsaW5nKDApOwogICAgIG9sZENoaWxkLT5zZXRQ
YXJlbnQoMCk7CiAgICAgCisgICAgb2xkQ2hpbGQtPnVwZGF0ZVZpc2liaWxpdHlTdGF0dXMoKTsK
KyAgICBpZiAob2xkQ2hpbGQtPm1faGFzVmlzaWJsZUNvbnRlbnQgfHwgb2xkQ2hpbGQtPm1faGFz
VmlzaWJsZURlc2NlbmRhbnQpCisgICAgICAgIGNoaWxkVmlzaWJpbGl0eUNoYW5nZWQoZmFsc2Up
OworICAgIAogICAgIHJldHVybiBvbGRDaGlsZDsKIH0KIApAQCAtMTgzMiw3ICsxOTM0LDkgQEAg
dm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlWk9yZGVyTGlzdHMoKQogewogICAgIGlmICghaXNTdGFj
a2luZ0NvbnRleHQoKSB8fCAhbV96T3JkZXJMaXN0c0RpcnR5KQogICAgICAgICByZXR1cm47Ci0g
ICAgCisKKyAgICB1cGRhdGVWaXNpYmlsaXR5U3RhdHVzKCk7CisgICAgICAgIAogICAgIGZvciAo
UmVuZGVyTGF5ZXIqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+
bmV4dFNpYmxpbmcoKSkKICAgICAgICAgY2hpbGQtPmNvbGxlY3RMYXllcnMobV9wb3NaT3JkZXJM
aXN0LCBtX25lZ1pPcmRlckxpc3QpOwogCkBAIC0xODYzLDE0ICsxOTY3LDggQEAgdm9pZCBSZW5k
ZXJMYXllcjo6dXBkYXRlT3ZlcmZsb3dMaXN0KCkKIAogdm9pZCBSZW5kZXJMYXllcjo6Y29sbGVj
dExheWVycyhWZWN0b3I8UmVuZGVyTGF5ZXIqPiomIHBvc0J1ZmZlciwgVmVjdG9yPFJlbmRlckxh
eWVyKj4qJiBuZWdCdWZmZXIpCiB7Ci0gICAgLy8gRklYTUU6IEEgY2hpbGQgcmVuZGVyIG9iamVj
dCBvciBsYXllciBjb3VsZCBvdmVycmlkZSB2aXNpYmlsaXR5LiAgRG9uJ3QgcmVtb3ZlIHRoaXMK
LSAgICAvLyBvcHRpbWl6YXRpb24gdGhvdWdoIHVudGlsIFJlbmRlck9iamVjdCdzIG5vZGVBdFBv
aW50IGlzIHBhdGNoZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRvIGRvCi0gICAgLy8gd2hlbiB2aXNp
YmlsaXR5IGlzIG92ZXJyaWRkZW4gYnkgYSBjaGlsZC4KLSAgICBpZiAocmVuZGVyZXIoKS0+c3R5
bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUpCi0gICAgICAgIHJldHVybjsKLQogICAgIC8v
IE92ZXJmbG93IGxheWVycyBhcmUganVzdCBwYWludGVkIGJ5IHRoZWlyIGVuY2xvc2luZyBsYXll
cnMsIHNvIHRoZXkgZG9uJ3QgZ2V0IHB1dCBpbiB6b3JkZXIgbGlzdHMuCi0gICAgaWYgKCFpc092
ZXJmbG93T25seSgpKSB7CisgICAgaWYgKG1faGFzVmlzaWJsZUNvbnRlbnQgJiYgIWlzT3ZlcmZs
b3dPbmx5KCkpIHsKICAgICAgICAgLy8gRGV0ZXJtaW5lIHdoaWNoIGJ1ZmZlciB0aGUgY2hpbGQg
c2hvdWxkIGJlIGluLgogICAgICAgICBWZWN0b3I8UmVuZGVyTGF5ZXIqPiomIGJ1ZmZlciA9ICh6
SW5kZXgoKSA+PSAwKSA/IHBvc0J1ZmZlciA6IG5lZ0J1ZmZlcjsKIApAQCAtMTg4NCw3ICsxOTgy
LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y29sbGVjdExheWVycyhWZWN0b3I8UgogCiAgICAgLy8g
UmVjdXIgaW50byBvdXIgY2hpbGRyZW4gdG8gY29sbGVjdCBtb3JlIGxheWVycywgYnV0IG9ubHkg
aWYgd2UgZG9uJ3QgZXN0YWJsaXNoCiAgICAgLy8gYSBzdGFja2luZyBjb250ZXh0LgotICAgIGlm
ICghaXNTdGFja2luZ0NvbnRleHQoKSkKKyAgICBpZiAobV9oYXNWaXNpYmxlRGVzY2VuZGFudCAm
JiAhaXNTdGFja2luZ0NvbnRleHQoKSkKICAgICAgICAgZm9yIChSZW5kZXJMYXllciogY2hpbGQg
PSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQogICAg
ICAgICAgICAgY2hpbGQtPmNvbGxlY3RMYXllcnMocG9zQnVmZmVyLCBuZWdCdWZmZXIpOwogfQpJ
bmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCShyZXZpc2lvbiAxNjU5NCkKKysrIFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4MSw2ICsyODEsMTAg
QEAgcHVibGljOgogICAgIHZvaWQgZGlydHlPdmVyZmxvd0xpc3QoKTsKICAgICB2b2lkIHVwZGF0
ZU92ZXJmbG93TGlzdCgpOwogICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBvdmVyZmxvd0xpc3Qo
KSBjb25zdCB7IHJldHVybiBtX292ZXJmbG93TGlzdDsgfQorICAgIAorICAgIGJvb2wgaGFzVmlz
aWJsZUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1Zpc2libGVDb250ZW50OyB9CisgICAg
dm9pZCBzZXRIYXNWaXNpYmxlQ29udGVudChib29sIGIpOworICAgIHZvaWQgZGlydHlWaXNpYmxl
Q29udGVudFN0YXR1cygpOwogCiAgICAgLy8gR2V0cyB0aGUgbmVhcmVzdCBlbmNsb3NpbmcgcG9z
aXRpb25lZCBhbmNlc3RvciBsYXllciAoYWxzbyBpbmNsdWRlcwogICAgIC8vIHRoZSA8aHRtbD4g
bGF5ZXIgYW5kIHRoZSByb290IGxheWVyKS4KQEAgLTM0Nyw2ICszNTEsMTEgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgdmFsdWVDaGFuZ2VkKFNjcm9sbEJhciopOwogCiAgICAgdm9pZCB1
cGRhdGVPdmVyZmxvd1N0YXR1cyhib29sIGhvcml6b250YWxPdmVyZmxvdywgYm9vbCB2ZXJ0aWNh
bE92ZXJmbG93KTsKKyAgICAKKyAgICB2b2lkIGNoaWxkVmlzaWJpbGl0eUNoYW5nZWQoYm9vbCBu
ZXdWaXNpYmlsaXR5KTsKKyAgICB2b2lkIGRpcnR5VmlzaWJsZURlc2NlbmRhbnRTdGF0dXMoKTsK
KyAgICB2b2lkIHVwZGF0ZVZpc2liaWxpdHlTdGF0dXMoKTsKKyAgICAgICAgCiBwcm90ZWN0ZWQ6
ICAgCiAgICAgUmVuZGVyT2JqZWN0KiBtX29iamVjdDsKICAgICAKQEAgLTQyMCw2ICs0MjksMTAg
QEAgcHJvdGVjdGVkOiAgIAogICAgIGJvb2wgbV9vdmVyZmxvd1N0YXR1c0RpcnR5IDogMTsKICAg
ICBib29sIG1faG9yaXpvbnRhbE92ZXJmbG93IDogMTsKICAgICBib29sIG1fdmVydGljYWxPdmVy
ZmxvdyA6IDE7CisgICAgYm9vbCBtX3Zpc2libGVDb250ZW50U3RhdHVzRGlydHkgOiAxOworICAg
IGJvb2wgbV9oYXNWaXNpYmxlQ29udGVudCA6IDE7CisgICAgYm9vbCBtX3Zpc2libGVEZXNjZW5k
YW50U3RhdHVzRGlydHkgOiAxOworICAgIGJvb2wgbV9oYXNWaXNpYmxlRGVzY2VuZGFudCA6IDE7
CiAgICAgCiAgICAgTWFycXVlZSogbV9tYXJxdWVlOyAvLyBVc2VkIGJ5IGxheWVycyB3aXRoIG92
ZXJmbG93Om1hcnF1ZWUKIH07CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHJl
dmlzaW9uIDE2NTk0KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjA1OSw2ICsyMDU5LDE1IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpzZXRT
dHlsZShSZW5kZXJTdHlsZSAKICAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+dmlzaWJpbGl0
eSgpICE9IHN0eWxlLT52aXNpYmlsaXR5KCkpCiAgICAgICAgICAgICAgICAgICAgIGxheWVyKCkt
PmRpcnR5Wk9yZGVyTGlzdHMoKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGtlZXAg
bGF5ZXIgaGllcmFyY2h5IHZpc2liaWxpdHkgYml0cyB1cCB0byBkYXRlIGlmIHZpc2liaWxpdHkg
Y2hhbmdlcworICAgICAgICAgICAgaWYgKG1fc3R5bGUtPnZpc2liaWxpdHkoKSAhPSBzdHlsZS0+
dmlzaWJpbGl0eSgpKSB7CisgICAgICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGwgPSBlbmNsb3Np
bmdMYXllcigpOyAKKyAgICAgICAgICAgICAgICBpZiAoc3R5bGUtPnZpc2liaWxpdHkoKSA9PSBW
SVNJQkxFICYmIGwpCisgICAgICAgICAgICAgICAgICAgIGwtPnNldEhhc1Zpc2libGVDb250ZW50
KHRydWUpOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGwgJiYgbC0+aGFzVmlzaWJsZUNvbnRl
bnQoKSAmJiAKKyAgICAgICAgICAgICAgICAgICAgKHRoaXMgPT0gbC0+cmVuZGVyZXIoKSB8fCBs
LT5yZW5kZXJlcigpLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkpCisgICAgICAg
ICAgICAgICAgICAgIGwtPmRpcnR5VmlzaWJsZUNvbnRlbnRTdGF0dXMoKTsKKyAgICAgICAgICAg
IH0gICAgICAgICAgICAKICAgICAgICAgfQogCiAgICAgICAgIGQgPSBtX3N0eWxlLT5kaWZmKHN0
eWxlKTsK
</data>
<flag name="review"
          id="3572"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>