<?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>12866</bug_id>
          
          <creation_ts>2007-02-23 00:39:18 -0800</creation_ts>
          <short_desc>REGRESSION: BenchJS test 6 is 12% slower in TOT than Safari 2.0.4</short_desc>
          <delta_ts>2008-02-28 16:05:09 -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>New Bugs</component>
          <version>523.x (Safari 3)</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>http://www.24fun.com/downloadcenter/benchjs/benchjs.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, NeedsReduction, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          <cc>hyatt</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>22008</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-02-23 00:39:18 -0800</bug_when>
    <thetext>The 24Fun benchmark&apos;s flying letters test (test 6) is 6% slower in current WebKit than Safari 2.0.4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22010</commentid>
    <comment_count>1</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-02-23 00:44:38 -0800</bug_when>
    <thetext>&lt;rdar://problem/5018673&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21940</commentid>
    <comment_count>2</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-02-23 07:30:17 -0800</bug_when>
    <thetext>I think this is actually about 12% slower, not 6%.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21941</commentid>
    <comment_count>3</comment_count>
      <attachid>13347</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-02-23 07:31:15 -0800</bug_when>
    <thetext>Created attachment 13347
partial fix - 2% speedup on test 6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21942</commentid>
    <comment_count>4</comment_count>
      <attachid>13347</attachid>
    <who name="">mitz</who>
    <bug_when>2007-02-23 07:34:04 -0800</bug_when>
    <thetext>Comment on attachment 13347
partial fix - 2% speedup on test 6

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21944</commentid>
    <comment_count>5</comment_count>
      <attachid>13349</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-02-23 07:54:51 -0800</bug_when>
    <thetext>Created attachment 13349
partial fix 2 - 12.5% speedup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21946</commentid>
    <comment_count>6</comment_count>
      <attachid>13349</attachid>
    <who name="">mitz</who>
    <bug_when>2007-02-23 08:27:32 -0800</bug_when>
    <thetext>Comment on attachment 13349
partial fix 2 - 12.5% speedup

Maciej agreed to reinstate the null checking of m_frameView. Assuming that and a chnage log, r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21902</commentid>
    <comment_count>7</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-02-23 10:33:46 -0800</bug_when>
    <thetext>In r19761 (that is, without the latest patches), I get a speedup of roughly 25% if I tweak the test so that the layers will have an absolutely positioned div as their parent instead of the body. This demonstrates how bad it is that RenderView::layout() unconditionally lays out all of its positioned objects. In the BenchJS test, this causes each tiny block to relayout, and as a side effect also to invalidate its repaint rect twice (once as a result of updating the inline layout and once as a result of the layer moving).
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21897</commentid>
    <comment_count>8</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-02-23 13:23:27 -0800</bug_when>
    <thetext>I assume this problem was made worse by my fix to make the containing block for positioned elements (with no positioned ancestor) becoming the RenderView rather than the root element.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21885</commentid>
    <comment_count>9</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-02-23 13:35:54 -0800</bug_when>
    <thetext>I think we should fix the unconditional layout problem Mitz mentioned as the regression it causes clearly shows on the profile, even though test 6 is now faster than baseline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21889</commentid>
    <comment_count>10</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-02-23 14:30:13 -0800</bug_when>
    <thetext>Opps, looks like attachment 13349 has caused a regression &lt;http://build.webkit.org/results/post-commit-pixel-powerpc-mac-os-x/3698/fast/overflow/scrollRevealButton-diffs.html&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21884</commentid>
    <comment_count>11</comment_count>
      <attachid>13351</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-02-23 14:35:05 -0800</bug_when>
    <thetext>Created attachment 13351
Patch to rewrite RenderView::layout()

This will need a lot of testing.  It reworks RenderView::layout as follows:

(1) Avoid always laying out the root (it only does so now if the visible view size changes).
(2) Never setMinMaxKnown to false ever.  Let the normal mechanism for that always be used.
(3) Stop the relayout of positioned objects.  With calcWidth() and calcHeight() already overridden, the initial containing block size was already correct.
(4) Treat the docWidth() and docHeight() as overflow and let the normal layer sizing mechanisms handle sizing the layer.
(5) Removed the flexible box layout hack from RenderView, since nobody is using it any more and it was wrong anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21881</commentid>
    <comment_count>12</comment_count>
      <attachid>13352</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-02-23 14:43:57 -0800</bug_when>
    <thetext>Created attachment 13352
Minor tweak.  I think printing probably should setMinMaxKnown(false)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21863</commentid>
    <comment_count>13</comment_count>
      <attachid>13353</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-02-23 14:53:56 -0800</bug_when>
    <thetext>Created attachment 13353
Fix adjustViewSize to not be slow.

adjustViewSize was calling into docWidth/Height every time.  This info was cached on the layer (even before this patch), so there&apos;s no reason the method can&apos;t be fast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21791</commentid>
    <comment_count>14</comment_count>
      <attachid>13353</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-02-24 16:16:56 -0800</bug_when>
    <thetext>Comment on attachment 13353
Fix adjustViewSize to not be slow.

I reviewed this pretty carefully and it all looks right to me.

I guess the remaining steps are to carefully test to see that this doesn&apos;t break anything and to do new performance tests. Not sure who&apos;s going to do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21783</commentid>
    <comment_count>15</comment_count>
      <attachid>13353</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-02-24 17:05:51 -0800</bug_when>
    <thetext>Comment on attachment 13353
Fix adjustViewSize to not be slow.

I&apos;m not sure the printing() check is needed, since we&apos;ll need layout anyway when printing or coming out of printing. Also, this needs a ChangeLog and should probably be tested thoroughly, including printing. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21781</commentid>
    <comment_count>16</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-02-24 17:08:07 -0800</bug_when>
    <thetext>I did the performance testing and it is a 16% speedup on Test 6 of the BenchJS benchmark.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21782</commentid>
    <comment_count>17</comment_count>
      <attachid>13353</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-02-24 17:08:21 -0800</bug_when>
    <thetext>Comment on attachment 13353
Fix adjustViewSize to not be slow.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21431</commentid>
    <comment_count>18</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-02-25 17:49:53 -0800</bug_when>
    <thetext>Hyatt landed his latest patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72307</commentid>
    <comment_count>19</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-02-28 16:05:09 -0800</bug_when>
    <thetext>Attachment #13347 (&quot;partial fix - 2% speedup on test 6&quot;):
r19827

Attachment #13349 (&quot;partial fix 2 - 12.5% speedup&quot;):
r19828

Attachment #13353 (&quot;Fix adjustViewSize to not be slow.&quot;):
r19848
r19849
r19850

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13347</attachid>
            <date>2007-02-23 07:31:15 -0800</date>
            <delta_ts>2007-02-23 07:34:04 -0800</delta_ts>
            <desc>partial fix - 2% speedup on test 6</desc>
            <filename>benchJS-speedup-1.patch.txt</filename>
            <type>text/plain</type>
            <size>3499</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODIy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDctMDIt
MjMgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIDIlIHNwZWVkdXAgb24gQmVuY2hKUyB0
ZXN0IDYKKworICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y3NzVGV4dCk6IFVzZSBmb3JtYXQoKSBpbnN0ZWFk
IG9mCisgICAgICAgIG51bWJlcigpIGZvbGxvd2VkIGJ5IGFwcGVuZCBvZiBhIGNvbnN0YW50IHN0
cmluZy4KKwogMjAwNy0wMi0yMiAgS3J6eXN6dG9mIEtvd2FsY3p5ayAgPGtrb3dhbGN6eWtAZ21h
aWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4sIHdobyBuZXZlciBzbGVl
cHMuCkluZGV4OiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNzcy9D
U1NQcmltaXRpdmVWYWx1ZS5jcHAJKHJldmlzaW9uIDE5ODIxKQorKysgY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDU0LDUyICs0NTQsNTIgQEAgU3RyaW5nIENT
U1ByaW1pdGl2ZVZhbHVlOjpjc3NUZXh0KCkgY29ucwogICAgICAgICAgICAgdGV4dCA9IFN0cmlu
Zzo6bnVtYmVyKG1fdmFsdWUubnVtKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IENTU19QRVJDRU5UQUdFOgotICAgICAgICAgICAgdGV4dCA9IFN0cmluZzo6bnVtYmVyKG1fdmFs
dWUubnVtKSArICIlIjsKKyAgICAgICAgICAgIHRleHQgPSBTdHJpbmc6OmZvcm1hdCgiJS42bGcl
JSIsIG1fdmFsdWUubnVtKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU19F
TVM6Ci0gICAgICAgICAgICB0ZXh0ID0gU3RyaW5nOjpudW1iZXIobV92YWx1ZS5udW0pICsgImVt
IjsKKyAgICAgICAgICAgIHRleHQgPSBTdHJpbmc6OmZvcm1hdCgiJS42bGdlbSIsIG1fdmFsdWUu
bnVtKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU19FWFM6Ci0gICAgICAg
ICAgICB0ZXh0ID0gU3RyaW5nOjpudW1iZXIobV92YWx1ZS5udW0pICsgImV4IjsKKyAgICAgICAg
ICAgIHRleHQgPSBTdHJpbmc6OmZvcm1hdCgiJS42bGdleCIsIG1fdmFsdWUubnVtKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU19QWDoKLSAgICAgICAgICAgIHRleHQgPSBT
dHJpbmc6Om51bWJlcihtX3ZhbHVlLm51bSkgKyAicHgiOworICAgICAgICAgICAgdGV4dCA9IFN0
cmluZzo6Zm9ybWF0KCIlLjZsZ3B4IiwgbV92YWx1ZS5udW0pOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQ1NTX0NNOgotICAgICAgICAgICAgdGV4dCA9IFN0cmluZzo6bnVtYmVy
KG1fdmFsdWUubnVtKSArICJjbSI7CisgICAgICAgICAgICB0ZXh0ID0gU3RyaW5nOjpmb3JtYXQo
IiUuNmxnY20iLCBtX3ZhbHVlLm51bSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBDU1NfTU06Ci0gICAgICAgICAgICB0ZXh0ID0gU3RyaW5nOjpudW1iZXIobV92YWx1ZS5udW0p
ICsgIm1tIjsKKyAgICAgICAgICAgIHRleHQgPSBTdHJpbmc6OmZvcm1hdCgiJS42bGdtbSIsIG1f
dmFsdWUubnVtKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU19JTjoKLSAg
ICAgICAgICAgIHRleHQgPSBTdHJpbmc6Om51bWJlcihtX3ZhbHVlLm51bSkgKyAiaW4iOworICAg
ICAgICAgICAgdGV4dCA9IFN0cmluZzo6Zm9ybWF0KCIlLjZsZ2luIiwgbV92YWx1ZS5udW0pOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTX1BUOgotICAgICAgICAgICAgdGV4
dCA9IFN0cmluZzo6bnVtYmVyKG1fdmFsdWUubnVtKSArICJwdCI7CisgICAgICAgICAgICB0ZXh0
ID0gU3RyaW5nOjpmb3JtYXQoIiUuNmxncHQiLCBtX3ZhbHVlLm51bSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBDU1NfUEM6Ci0gICAgICAgICAgICB0ZXh0ID0gU3RyaW5nOjpu
dW1iZXIobV92YWx1ZS5udW0pICsgInBjIjsKKyAgICAgICAgICAgIHRleHQgPSBTdHJpbmc6OmZv
cm1hdCgiJS42bGdwYyIsIG1fdmFsdWUubnVtKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIENTU19ERUc6Ci0gICAgICAgICAgICB0ZXh0ID0gU3RyaW5nOjpudW1iZXIobV92YWx1
ZS5udW0pICsgImRlZyI7CisgICAgICAgICAgICB0ZXh0ID0gU3RyaW5nOjpmb3JtYXQoIiUuNmxn
ZGVnIiwgbV92YWx1ZS5udW0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NT
X1JBRDoKLSAgICAgICAgICAgIHRleHQgPSBTdHJpbmc6Om51bWJlcihtX3ZhbHVlLm51bSkgKyAi
cmFkIjsKKyAgICAgICAgICAgIHRleHQgPSBTdHJpbmc6OmZvcm1hdCgiJS42bGdyYWQiLCBtX3Zh
bHVlLm51bSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NfR1JBRDoKLSAg
ICAgICAgICAgIHRleHQgPSBTdHJpbmc6Om51bWJlcihtX3ZhbHVlLm51bSkgKyAiZ3JhZCI7Cisg
ICAgICAgICAgICB0ZXh0ID0gU3RyaW5nOjpmb3JtYXQoIiUuNmxnZ3JhZCIsIG1fdmFsdWUubnVt
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU19NUzoKLSAgICAgICAgICAg
IHRleHQgPSBTdHJpbmc6Om51bWJlcihtX3ZhbHVlLm51bSkgKyAibXMiOworICAgICAgICAgICAg
dGV4dCA9IFN0cmluZzo6Zm9ybWF0KCIlLjZsZ21zIiwgbV92YWx1ZS5udW0pOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTX1M6Ci0gICAgICAgICAgICB0ZXh0ID0gU3RyaW5n
OjpudW1iZXIobV92YWx1ZS5udW0pICsgInMiOworICAgICAgICAgICAgdGV4dCA9IFN0cmluZzo6
Zm9ybWF0KCIlLjZsZ3MiLCBtX3ZhbHVlLm51bSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBDU1NfSFo6Ci0gICAgICAgICAgICB0ZXh0ID0gU3RyaW5nOjpudW1iZXIobV92YWx1
ZS5udW0pICsgImh6IjsKKyAgICAgICAgICAgIHRleHQgPSBTdHJpbmc6OmZvcm1hdCgiJS42bGdo
eiIsIG1fdmFsdWUubnVtKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU19L
SFo6Ci0gICAgICAgICAgICB0ZXh0ID0gU3RyaW5nOjpudW1iZXIobV92YWx1ZS5udW0pICsgImto
eiI7CisgICAgICAgICAgICB0ZXh0ID0gU3RyaW5nOjpmb3JtYXQoIiUuNmxna2h6IiwgbV92YWx1
ZS5udW0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTX0RJTUVOU0lPTjoK
ICAgICAgICAgICAgIC8vIEZJWE1FCg==
</data>
<flag name="review"
          id="5238"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13349</attachid>
            <date>2007-02-23 07:54:51 -0800</date>
            <delta_ts>2007-02-23 08:27:32 -0800</delta_ts>
            <desc>partial fix 2 - 12.5% speedup</desc>
            <filename>benchJS-speedup-2.patch.txt</filename>
            <type>text/plain</type>
            <size>4196</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IHBsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRm
b3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tCShyZXZpc2lvbiAxOTgyMSkKKysrIHBsYXRmb3JtL21h
Yy9TY3JvbGxWaWV3TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03OSwxMCArNzksMTUgQEAgaW50
IFNjcm9sbFZpZXc6OnZpc2libGVIZWlnaHQoKSBjb25zdAogCiBGbG9hdFJlY3QgU2Nyb2xsVmll
dzo6dmlzaWJsZUNvbnRlbnRSZWN0KCkgY29uc3QKIHsKKyAgICBOU1Njcm9sbFZpZXcgKnZpZXcg
PSAoTlNTY3JvbGxWaWV3ICopZ2V0VmlldygpOworICAgIAogICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKLSAgICBpZiAoTlNWaWV3ICpkb2NWaWV3ID0gZ2V0RG9jdW1lbnRWaWV3KCkp
Ci0gICAgICAgIHJldHVybiBbZG9jVmlldyB2aXNpYmxlUmVjdF07CisgICAgaWYgKFt2aWV3IGlz
S2luZE9mQ2xhc3M6W05TU2Nyb2xsVmlldyBjbGFzc11dKQorICAgICAgICByZXR1cm4gW3ZpZXcg
ZG9jdW1lbnRWaXNpYmxlUmVjdF07CisgICAgZWxzZQorICAgICAgICByZXR1cm4gW3ZpZXcgdmlz
aWJsZVJlY3RdOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisKICAgICByZXR1cm4g
RmxvYXRSZWN0KCk7CiB9CiAKQEAgLTMzMCwxNCArMzM1LDE1IEBAIHZvaWQgU2Nyb2xsVmlldzo6
dXBkYXRlQ29udGVudHMoY29uc3QgSW4KICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CiAKICAgICBOU1ZpZXcgKnZpZXcgPSBnZXRWaWV3KCk7Ci0KICAgICBpZiAoW3ZpZXcgaXNLaW5k
T2ZDbGFzczpbTlNTY3JvbGxWaWV3IGNsYXNzXV0pCiAgICAgICAgIHZpZXcgPSBnZXREb2N1bWVu
dFZpZXcoKTsKIAorICAgIE5TUmVjdCB2aXNpYmxlUmVjdCA9IHZpc2libGVDb250ZW50UmVjdCgp
OworCiAgICAgLy8gQ2hlY2tpbmcgZm9yIHJlY3QgdmlzaWJpbGl0eSBpcyBhbiBpbXBvcnRhbnQg
b3B0aW1pemF0aW9uIGZvciB0aGUgY2FzZSBvZgogICAgIC8vIFNlbGVjdCBBbGwgb2YgYSBsYXJn
ZSBkb2N1bWVudC4gQXBwS2l0IGRvZXMgbm90IGRvIHRoaXMgY2hlY2ssIGFuZCBzbyBlbmRzCiAg
ICAgLy8gdXAgYnVpbGRpbmcgYSBsYXJnZSBjb21wbGljYXRlZCBOU1JlZ2lvbiBpZiB3ZSBkb24n
dCBwZXJmb3JtIHRoZSBjaGVjay4KLSAgICBOU1JlY3QgZGlydHlSZWN0ID0gTlNJbnRlcnNlY3Rp
b25SZWN0KHJlY3QsIFt2aWV3IHZpc2libGVSZWN0XSk7CisgICAgTlNSZWN0IGRpcnR5UmVjdCA9
IE5TSW50ZXJzZWN0aW9uUmVjdChyZWN0LCB2aXNpYmxlUmVjdCk7CiAgICAgaWYgKCFOU0lzRW1w
dHlSZWN0KGRpcnR5UmVjdCkpIHsKICAgICAgICAgW3ZpZXcgc2V0TmVlZHNEaXNwbGF5SW5SZWN0
OmRpcnR5UmVjdF07CiAgICAgICAgIGlmIChub3cpIHsKSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJW
aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAJKHJldmlzaW9u
IDE5ODIxKQorKysgcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
ODMsMjYgKzE4MywyNSBAQCB2b2lkIFJlbmRlclZpZXc6OnJlcGFpbnRWaWV3UmVjdGFuZ2xlKGNv
CiAgICAgaWYgKHByaW50aW5nKCkgfHwgdXIud2lkdGgoKSA9PSAwIHx8IHVyLmhlaWdodCgpID09
IDApCiAgICAgICAgIHJldHVybjsKIAotICAgIEludFJlY3QgdnIgPSB2aWV3UmVjdCgpOwotICAg
IGlmIChtX2ZyYW1lVmlldyAmJiB1ci5pbnRlcnNlY3RzKHZyKSkgewotICAgICAgICAvLyBXZSBh
bHdheXMganVzdCBpbnZhbGlkYXRlIHRoZSByb290IHZpZXcsIHNpbmNlIHdlIGNvdWxkIGJlIGFu
IGlmcmFtZSB0aGF0IGlzIGNsaXBwZWQgb3V0Ci0gICAgICAgIC8vIG9yIGV2ZW4gaW52aXNpYmxl
LgorICAgIC8vIFdlIGFsd2F5cyBqdXN0IGludmFsaWRhdGUgdGhlIHJvb3Qgdmlldywgc2luY2Ug
d2UgY291bGQgYmUgYW4gaWZyYW1lIHRoYXQgaXMgY2xpcHBlZCBvdXQKKyAgICAvLyBvciBldmVu
IGludmlzaWJsZS4KKyAgICBFbGVtZW50KiBlbHQgPSBlbGVtZW50KCktPmRvY3VtZW50KCktPm93
bmVyRWxlbWVudCgpOworICAgIGlmICghZWx0KQorICAgICAgICBtX2ZyYW1lVmlldy0+cmVwYWlu
dFJlY3RhbmdsZSh1ciwgaW1tZWRpYXRlKTsKKyAgICBlbHNlIGlmIChSZW5kZXJPYmplY3QqIG9i
aiA9IGVsdC0+cmVuZGVyZXIoKSkgeworICAgICAgICBJbnRSZWN0IHZyID0gdmlld1JlY3QoKTsK
ICAgICAgICAgSW50UmVjdCByID0gaW50ZXJzZWN0aW9uKHVyLCB2cik7Ci0gICAgICAgIEVsZW1l
bnQqIGVsdCA9IGVsZW1lbnQoKS0+ZG9jdW1lbnQoKS0+b3duZXJFbGVtZW50KCk7Ci0gICAgICAg
IGlmICghZWx0KQotICAgICAgICAgICAgbV9mcmFtZVZpZXctPnJlcGFpbnRSZWN0YW5nbGUociwg
aW1tZWRpYXRlKTsKLSAgICAgICAgZWxzZSBpZiAoUmVuZGVyT2JqZWN0KiBvYmogPSBlbHQtPnJl
bmRlcmVyKCkpIHsKLSAgICAgICAgICAgIC8vIFN1YnRyYWN0IG91dCB0aGUgY29udGVudHNYIGFu
ZCBjb250ZW50c1kgb2Zmc2V0cyB0byBnZXQgb3VyIGNvb3JkcyB3aXRoaW4gdGhlIHZpZXdpbmcK
LSAgICAgICAgICAgIC8vIHJlY3RhbmdsZS4KLSAgICAgICAgICAgIHIubW92ZSgtbV9mcmFtZVZp
ZXctPmNvbnRlbnRzWCgpLCAtbV9mcmFtZVZpZXctPmNvbnRlbnRzWSgpKTsKLQotICAgICAgICAg
ICAgLy8gRklYTUU6IEhhcmRjb2RlZCBvZmZzZXRzIGhlcmUgYXJlIG5vdCBnb29kLgotICAgICAg
ICAgICAgaW50IHlGcmFtZU9mZnNldCA9IG1fZnJhbWVWaWV3LT5oYXNCb3JkZXIoKSA/IDIgOiAw
OwotICAgICAgICAgICAgaW50IHhGcmFtZU9mZnNldCA9IG1fZnJhbWVWaWV3LT5oYXNCb3JkZXIo
KSA/IDEgOiAwOwotICAgICAgICAgICAgci5tb3ZlKG9iai0+Ym9yZGVyTGVmdCgpICsgb2JqLT5w
YWRkaW5nTGVmdCgpICsgeEZyYW1lT2Zmc2V0LAotICAgICAgICAgICAgICAgICAgIG9iai0+Ym9y
ZGVyVG9wKCkgKyBvYmotPnBhZGRpbmdUb3AoKSArIHlGcmFtZU9mZnNldCk7Ci0gICAgICAgICAg
ICBvYmotPnJlcGFpbnRSZWN0YW5nbGUociwgaW1tZWRpYXRlKTsKLSAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgLy8gU3VidHJhY3Qgb3V0IHRoZSBjb250ZW50c1ggYW5kIGNvbnRlbnRzWSBv
ZmZzZXRzIHRvIGdldCBvdXIgY29vcmRzIHdpdGhpbiB0aGUgdmlld2luZworICAgICAgICAvLyBy
ZWN0YW5nbGUuCisgICAgICAgIHIubW92ZSgtdnIueCgpLCAtdnIueSgpKTsKKyAgICAgICAgCisg
ICAgICAgIC8vIEZJWE1FOiBIYXJkY29kZWQgb2Zmc2V0cyBoZXJlIGFyZSBub3QgZ29vZC4KKyAg
ICAgICAgaW50IHlGcmFtZU9mZnNldCA9IG1fZnJhbWVWaWV3LT5oYXNCb3JkZXIoKSA/IDIgOiAw
OworICAgICAgICBpbnQgeEZyYW1lT2Zmc2V0ID0gbV9mcmFtZVZpZXctPmhhc0JvcmRlcigpID8g
MSA6IDA7CisgICAgICAgIHIubW92ZShvYmotPmJvcmRlckxlZnQoKSArIG9iai0+cGFkZGluZ0xl
ZnQoKSArIHhGcmFtZU9mZnNldCwKKyAgICAgICAgICAgICAgIG9iai0+Ym9yZGVyVG9wKCkgKyBv
YmotPnBhZGRpbmdUb3AoKSArIHlGcmFtZU9mZnNldCk7CisgICAgICAgIG9iai0+cmVwYWludFJl
Y3RhbmdsZShyLCBpbW1lZGlhdGUpOwogICAgIH0KIH0KIApAQCAtNDY0LDEwICs0NjMsNyBAQCBJ
bnRSZWN0IFJlbmRlclZpZXc6OnZpZXdSZWN0KCkgY29uc3QKICAgICBpZiAocHJpbnRpbmcoKSkK
ICAgICAgICAgcmV0dXJuIEludFJlY3QoMCwgMCwgbV93aWR0aCwgbV9oZWlnaHQpOwogICAgIGlm
IChtX2ZyYW1lVmlldykKLSAgICAgICAgcmV0dXJuIEludFJlY3QobV9mcmFtZVZpZXctPmNvbnRl
bnRzWCgpLAotICAgICAgICAgICAgICAgICAgICAgICBtX2ZyYW1lVmlldy0+Y29udGVudHNZKCks
Ci0gICAgICAgICAgICAgICAgICAgICAgIG1fZnJhbWVWaWV3LT52aXNpYmxlV2lkdGgoKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgbV9mcmFtZVZpZXctPnZpc2libGVIZWlnaHQoKSk7CisgICAg
ICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KG1fZnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJl
Y3QoKSk7CiAgICAgcmV0dXJuIEludFJlY3QoKTsKIH0KIAo=
</data>
<flag name="review"
          id="5240"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13351</attachid>
            <date>2007-02-23 14:35:05 -0800</date>
            <delta_ts>2007-02-23 14:43:57 -0800</delta_ts>
            <desc>Patch to rewrite RenderView::layout()</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>6102</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IHBhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdlL0ZyYW1lVmlldy5j
cHAJKHJldmlzaW9uIDE5ODMwKQorKysgcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MzQsNyArNDM0LDcgQEAgdm9pZCBGcmFtZVZpZXc6OmxheW91dChib29sIGFsbG93U3Vi
dHJlZQogICAgIGQtPmxheW91dFNjaGVkdWxpbmdFbmFibGVkPXRydWU7CiAKICAgICBpZiAoIXN1
YnRyZWUgJiYgIXN0YXRpY19jYXN0PFJlbmRlclZpZXcqPihyb290KS0+cHJpbnRpbmcoKSkKLSAg
ICAgICAgcmVzaXplQ29udGVudHMobGF5ZXItPndpZHRoKCksIGxheWVyLT5oZWlnaHQoKSk7Cisg
ICAgICAgIGFkanVzdFZpZXdTaXplKCk7CiAKICAgICAvLyBOb3cgdXBkYXRlIHRoZSBwb3NpdGlv
bnMgb2YgYWxsIGxheWVycy4KICAgICBsYXllci0+dXBkYXRlTGF5ZXJQb3NpdGlvbnMoZC0+ZG9G
dWxsUmVwYWludCk7CkluZGV4OiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHJldmlzaW9uIDE5ODMwKQorKysgcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTc0LDggKzU3NCw3IEBAIHZv
aWQgUmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKGJvb2wgcmVsYXkKIAogICAgIC8vIFVwZGF0ZSBv
dXIgc2Nyb2xsIGluZm9ybWF0aW9uIGlmIHdlJ3JlIG92ZXJmbG93OmF1dG8vc2Nyb2xsL2hpZGRl
biBub3cgdGhhdCB3ZSBrbm93IGlmCiAgICAgLy8gd2Ugb3ZlcmZsb3cgb3Igbm90LgotICAgIFJl
bmRlck9iamVjdCogZmxleGJveCA9IHZpZXcoKS0+ZmxleEJveEluRmlyc3RMYXlvdXQoKTsKLSAg
ICBpZiAoaGFzT3ZlcmZsb3dDbGlwKCkgJiYgIShmbGV4Ym94ICYmIGZsZXhib3ggIT0gdGhpcyAm
JiBpc0Rlc2NlbmRhbnRPZihmbGV4Ym94KSkpCisgICAgaWYgKGhhc092ZXJmbG93Q2xpcCgpKQog
ICAgICAgICBtX2xheWVyLT51cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXQoKTsKIAogICAgIC8v
IFJlcGFpbnQgd2l0aCBvdXIgbmV3IGJvdW5kcyBpZiB0aGV5IGFyZSBkaWZmZXJlbnQgZnJvbSBv
dXIgb2xkIGJvdW5kcy4KSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAkocmV2aXNpb24gMTk4
MzApCisrKyByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMjQsOCArMzI0LDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9v
bAogCiAgICAgLy8gVXBkYXRlIG91ciBzY3JvbGxiYXJzIGlmIHdlJ3JlIG92ZXJmbG93OmF1dG8v
c2Nyb2xsL2hpZGRlbiBub3cgdGhhdCB3ZSBrbm93IGlmCiAgICAgLy8gd2Ugb3ZlcmZsb3cgb3Ig
bm90LgotICAgIFJlbmRlck9iamVjdCogZmxleGJveCA9IHZpZXcoKS0+ZmxleEJveEluRmlyc3RM
YXlvdXQoKTsKLSAgICBpZiAoaGFzT3ZlcmZsb3dDbGlwKCkgJiYgIShmbGV4Ym94ICYmIGZsZXhi
b3ggIT0gdGhpcyAmJiBpc0Rlc2NlbmRhbnRPZihmbGV4Ym94KSkpCisgICAgaWYgKGhhc092ZXJm
bG93Q2xpcCgpKQogICAgICAgICBtX2xheWVyLT51cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXQo
KTsKIAogICAgIC8vIFJlcGFpbnQgd2l0aCBvdXIgbmV3IGJvdW5kcyBpZiB0aGV5IGFyZSBkaWZm
ZXJlbnQgZnJvbSBvdXIgb2xkIGJvdW5kcy4KQEAgLTgwNSwxMiArODA0LDYgQEAgdm9pZCBSZW5k
ZXJGbGV4aWJsZUJveDo6bGF5b3V0VmVydGljYWxCbwogICAgIC8vIE91ciBmaXJzdCBwYXNzIGlz
IGRvbmUgd2l0aG91dCBmbGV4aW5nLiAgV2Ugc2ltcGx5IGxheSB0aGUgY2hpbGRyZW4KICAgICAv
LyBvdXQgd2l0aGluIHRoZSBib3guCiAgICAgZG8gewotICAgIAotICAgICAgICBpZiAodmlldygp
LT5mbGV4Qm94SW5GaXJzdExheW91dCgpID09IHRoaXMpCi0gICAgICAgICAgICB2aWV3KCktPnNl
dEZsZXhCb3hJbkZpcnN0TGF5b3V0KDApOwotICAgICAgICBlbHNlIGlmICghdmlldygpLT5mbGV4
Qm94SW5GaXJzdExheW91dCgpKQotICAgICAgICAgICAgdmlldygpLT5zZXRGbGV4Qm94SW5GaXJz
dExheW91dCh0aGlzKTsKLSAgICAgICAgICAgIAogICAgICAgICBtX2hlaWdodCA9IGJvcmRlclRv
cCgpICsgcGFkZGluZ1RvcCgpOwogICAgICAgICBpbnQgbWluSGVpZ2h0ID0gbV9oZWlnaHQgKyB0
b0FkZDsKICAgICAgICAgbV9vdmVyZmxvd0hlaWdodCA9IG1faGVpZ2h0OwpJbmRleDogcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCShyZXZpc2lvbiAxOTgzMCkKKysrIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxOCwxNSArMzE4LDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxh
eWVyUG9zaXRpb24oKQogICAgIC8vIENsZWFyIG91ciBjYWNoZWQgY2xpcCByZWN0IGluZm9ybWF0
aW9uLgogICAgIGNsZWFyQ2xpcFJlY3QoKTsKIAotICAgIC8vIFRoZSBjYW52YXMgaXMgc2l6ZWQg
dG8gdGhlIGRvY1dpZHRoL0hlaWdodCBvdmVyIGluIFJlbmRlclZpZXc6OmxheW91dCwgc28gd2UK
LSAgICAvLyBkb24ndCBuZWVkIHRvIGV2ZXIgdXBkYXRlIG91ciBsYXllciBwb3NpdGlvbiBoZXJl
LgotICAgIGlmIChyZW5kZXJlcigpLT5pc1JlbmRlclZpZXcoKSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIAogICAgIGludCB4ID0gbV9vYmplY3QtPnhQb3MoKTsKICAgICBpbnQgeSA9IG1fb2JqZWN0
LT55UG9zKCkgLSBtX29iamVjdC0+Ym9yZGVyVG9wRXh0cmEoKTsKIAotICAgIGlmICghbV9vYmpl
Y3QtPmlzUG9zaXRpb25lZCgpKSB7CisgICAgaWYgKCFtX29iamVjdC0+aXNQb3NpdGlvbmVkKCkg
JiYgbV9vYmplY3QtPnBhcmVudCgpKSB7CiAgICAgICAgIC8vIFdlIG11c3QgYWRqdXN0IG91ciBw
b3NpdGlvbiBieSB3YWxraW5nIHVwIHRoZSByZW5kZXIgdHJlZSBsb29raW5nIGZvciB0aGUKICAg
ICAgICAgLy8gbmVhcmVzdCBlbmNsb3Npbmcgb2JqZWN0IHdpdGggYSBsYXllci4KICAgICAgICAg
UmVuZGVyT2JqZWN0KiBjdXJyID0gbV9vYmplY3QtPnBhcmVudCgpOwpJbmRleDogcmVuZGVyaW5n
L1JlbmRlclZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAko
cmV2aXNpb24gMTk4MzApCisrKyByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQwLDcgKzQwLDYgQEAgUmVuZGVyVmlldzo6UmVuZGVyVmlldyhOb2RlKiBub2RlLCBG
cmFtZQogICAgICwgbV9zZWxlY3Rpb25FbmRQb3MoLTEpCiAgICAgLCBtX3ByaW50SW1hZ2VzKHRy
dWUpCiAgICAgLCBtX21heGltYWxPdXRsaW5lU2l6ZSgwKQotICAgICwgbV9mbGV4Qm94SW5GaXJz
dExheW91dCgwKQogewogICAgIC8vIENsZWFyIG91ciBhbm9ueW1vdXMgYml0LCBzZXQgYmVjYXVz
ZSBSZW5kZXJPYmplY3QgYXNzdW1lcwogICAgIC8vIGFueSByZW5kZXJlciB3aXRoIGRvY3VtZW50
IGFzIHRoZSBub2RlIGlzIGFub255bW91cy4KQEAgLTk1LDM0ICs5NCwxOCBAQCB2b2lkIFJlbmRl
clZpZXc6OmxheW91dCgpCiAgICAgaWYgKHByaW50aW5nKCkpCiAgICAgICAgIG1fbWluV2lkdGgg
PSBtX3dpZHRoOwogCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgYWxsIGp1c3QgYSB0ZXJyaWJsZSB3
b3JrYXJvdW5kIGZvciBidWdzIGluIGxheW91dCB3aGVuIHRoZSB2aWV3IGhlaWdodCBjaGFuZ2Vz
LgotICAgIC8vIEZpbmQgYSBiZXR0ZXIgd2F5IHRvIGRldGVjdCB2aWV3IGhlaWdodCBjaGFuZ2Vz
LiAgV2UncmUgZ3Vlc3NpbmcgdGhhdCBpZiB3ZSBkb24ndCBuZWVkIGxheW91dCB0aGF0IHRoZSBy
ZWFzb24KLSAgICAvLyB3ZSB3ZXJlIGNhbGxlZCBpcyBiZWNhdXNlIG9mIGEgRnJhbWVWaWV3IGJv
dW5kcyBjaGFuZ2UuCi0gICAgaWYgKCFuZWVkc0xheW91dCgpKSB7CisgICAgYm9vbCByZWxheW91
dENoaWxkcmVuID0gcHJpbnRpbmcoKSB8fCAhbV9mcmFtZVZpZXcgfHwgbV93aWR0aCAhPSBtX2Zy
YW1lVmlldy0+dmlzaWJsZVdpZHRoKCkgfHwgbV9oZWlnaHQgIT0gbV9mcmFtZVZpZXctPnZpc2li
bGVIZWlnaHQoKTsKKyAgICBpZiAocmVsYXlvdXRDaGlsZHJlbikKICAgICAgICAgc2V0Q2hpbGRO
ZWVkc0xheW91dCh0cnVlLCBmYWxzZSk7Ci0gICAgICAgIHNldE1pbk1heEtub3duKGZhbHNlKTsK
LSAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGMgPSBmaXJzdENoaWxkKCk7IGM7IGMgPSBjLT5u
ZXh0U2libGluZygpKQotICAgICAgICAgICAgYy0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBm
YWxzZSk7Ci0gICAgfQogCiAgICAgaWYgKHJlY2FsY01pbk1heCgpKQogICAgICAgICByZWNhbGNN
aW5NYXhXaWR0aHMoKTsKKyAgICAKKyAgICBpZiAobmVlZHNMYXlvdXQoKSkKKyAgICAgICAgUmVu
ZGVyQmxvY2s6OmxheW91dCgpOwogCi0gICAgUmVuZGVyQmxvY2s6OmxheW91dCgpOwotCi0gICAg
aW50IGRvY3cgPSBkb2NXaWR0aCgpOwotICAgIGludCBkb2NoID0gZG9jSGVpZ2h0KCk7Ci0KLSAg
ICBpZiAoIXByaW50aW5nKCkpIHsKLSAgICAgICAgc2V0V2lkdGgobV9mcmFtZVZpZXctPnZpc2li
bGVXaWR0aCgpKTsKLSAgICAgICAgc2V0SGVpZ2h0KG1fZnJhbWVWaWV3LT52aXNpYmxlSGVpZ2h0
KCkpOwotICAgIH0KLQotICAgIC8vIEZJWE1FOiB3ZSBjb3VsZCBtYXliZSBkbyB0aGUgY2FsbCBi
ZWxvdyBiZXR0ZXIgYW5kIG9ubHkgcGFzcyB0cnVlIGlmIHRoZSBkb2NzaXplIGNoYW5nZWQuCi0g
ICAgbGF5b3V0UG9zaXRpb25lZE9iamVjdHModHJ1ZSk7Ci0KLSAgICBsYXllcigpLT5zZXRIZWln
aHQobWF4KGRvY2gsIG1faGVpZ2h0KSk7Ci0gICAgbGF5ZXIoKS0+c2V0V2lkdGgobWF4KGRvY3cs
IG1fd2lkdGgpKTsKKyAgICBzZXRPdmVyZmxvd1dpZHRoKG1heChkb2NXaWR0aCgpLCBtX3dpZHRo
KSk7CisgICAgc2V0T3ZlcmZsb3dIZWlnaHQobWF4KGRvY0hlaWdodCgpLCBtX2hlaWdodCkpOwog
CiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQpJbmRleDogcmVuZGVyaW5nL1JlbmRlclZp
ZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvUmVuZGVyVmlldy5oCShyZXZpc2lvbiAxOTgz
MCkKKysrIHJlbmRlcmluZy9SZW5kZXJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTkwLDkgKzkw
LDYgQEAgcHVibGljOgogICAgIHZvaWQgYWRkV2lkZ2V0KFJlbmRlck9iamVjdCopOwogICAgIHZv
aWQgcmVtb3ZlV2lkZ2V0KFJlbmRlck9iamVjdCopOwogCi0gICAgdm9pZCBzZXRGbGV4Qm94SW5G
aXJzdExheW91dChSZW5kZXJPYmplY3QqIHIpIHsgbV9mbGV4Qm94SW5GaXJzdExheW91dCA9IHI7
IH0KLSAgICBSZW5kZXJPYmplY3QqIGZsZXhCb3hJbkZpcnN0TGF5b3V0KCkgeyByZXR1cm4gbV9m
bGV4Qm94SW5GaXJzdExheW91dDsgfQotCiAgICAgY29uc3QgSW50U2l6ZSYgbGF5b3V0RGVsdGEo
KSBjb25zdCB7IHJldHVybiBtX2xheW91dERlbHRhOyB9CiAgICAgdm9pZCBhZGRMYXlvdXREZWx0
YShjb25zdCBJbnRTaXplJiBkZWx0YSkgeyBtX2xheW91dERlbHRhICs9IGRlbHRhOyB9CiAKQEAg
LTExNSw4ICsxMTIsNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICBSZW5kZXJPYmplY3RTZXQgbV93aWRn
ZXRzOwogCi0gICAgUmVuZGVyT2JqZWN0KiBtX2ZsZXhCb3hJbkZpcnN0TGF5b3V0OwotCiBwcml2
YXRlOgogICAgIGludCBtX2Jlc3RUcnVuY2F0ZWRBdDsKICAgICBpbnQgbV90cnVuY2F0b3JXaWR0
aDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13352</attachid>
            <date>2007-02-23 14:43:57 -0800</date>
            <delta_ts>2007-02-23 14:53:56 -0800</delta_ts>
            <desc>Minor tweak.  I think printing probably should setMinMaxKnown(false)</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>6165</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IHBhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdlL0ZyYW1lVmlldy5j
cHAJKHJldmlzaW9uIDE5ODMwKQorKysgcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MzQsNyArNDM0LDcgQEAgdm9pZCBGcmFtZVZpZXc6OmxheW91dChib29sIGFsbG93U3Vi
dHJlZQogICAgIGQtPmxheW91dFNjaGVkdWxpbmdFbmFibGVkPXRydWU7CiAKICAgICBpZiAoIXN1
YnRyZWUgJiYgIXN0YXRpY19jYXN0PFJlbmRlclZpZXcqPihyb290KS0+cHJpbnRpbmcoKSkKLSAg
ICAgICAgcmVzaXplQ29udGVudHMobGF5ZXItPndpZHRoKCksIGxheWVyLT5oZWlnaHQoKSk7Cisg
ICAgICAgIGFkanVzdFZpZXdTaXplKCk7CiAKICAgICAvLyBOb3cgdXBkYXRlIHRoZSBwb3NpdGlv
bnMgb2YgYWxsIGxheWVycy4KICAgICBsYXllci0+dXBkYXRlTGF5ZXJQb3NpdGlvbnMoZC0+ZG9G
dWxsUmVwYWludCk7CkluZGV4OiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHJldmlzaW9uIDE5ODMwKQorKysgcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTc0LDggKzU3NCw3IEBAIHZv
aWQgUmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKGJvb2wgcmVsYXkKIAogICAgIC8vIFVwZGF0ZSBv
dXIgc2Nyb2xsIGluZm9ybWF0aW9uIGlmIHdlJ3JlIG92ZXJmbG93OmF1dG8vc2Nyb2xsL2hpZGRl
biBub3cgdGhhdCB3ZSBrbm93IGlmCiAgICAgLy8gd2Ugb3ZlcmZsb3cgb3Igbm90LgotICAgIFJl
bmRlck9iamVjdCogZmxleGJveCA9IHZpZXcoKS0+ZmxleEJveEluRmlyc3RMYXlvdXQoKTsKLSAg
ICBpZiAoaGFzT3ZlcmZsb3dDbGlwKCkgJiYgIShmbGV4Ym94ICYmIGZsZXhib3ggIT0gdGhpcyAm
JiBpc0Rlc2NlbmRhbnRPZihmbGV4Ym94KSkpCisgICAgaWYgKGhhc092ZXJmbG93Q2xpcCgpKQog
ICAgICAgICBtX2xheWVyLT51cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXQoKTsKIAogICAgIC8v
IFJlcGFpbnQgd2l0aCBvdXIgbmV3IGJvdW5kcyBpZiB0aGV5IGFyZSBkaWZmZXJlbnQgZnJvbSBv
dXIgb2xkIGJvdW5kcy4KSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAkocmV2aXNpb24gMTk4
MzApCisrKyByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMjQsOCArMzI0LDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9v
bAogCiAgICAgLy8gVXBkYXRlIG91ciBzY3JvbGxiYXJzIGlmIHdlJ3JlIG92ZXJmbG93OmF1dG8v
c2Nyb2xsL2hpZGRlbiBub3cgdGhhdCB3ZSBrbm93IGlmCiAgICAgLy8gd2Ugb3ZlcmZsb3cgb3Ig
bm90LgotICAgIFJlbmRlck9iamVjdCogZmxleGJveCA9IHZpZXcoKS0+ZmxleEJveEluRmlyc3RM
YXlvdXQoKTsKLSAgICBpZiAoaGFzT3ZlcmZsb3dDbGlwKCkgJiYgIShmbGV4Ym94ICYmIGZsZXhi
b3ggIT0gdGhpcyAmJiBpc0Rlc2NlbmRhbnRPZihmbGV4Ym94KSkpCisgICAgaWYgKGhhc092ZXJm
bG93Q2xpcCgpKQogICAgICAgICBtX2xheWVyLT51cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXQo
KTsKIAogICAgIC8vIFJlcGFpbnQgd2l0aCBvdXIgbmV3IGJvdW5kcyBpZiB0aGV5IGFyZSBkaWZm
ZXJlbnQgZnJvbSBvdXIgb2xkIGJvdW5kcy4KQEAgLTgwNSwxMiArODA0LDYgQEAgdm9pZCBSZW5k
ZXJGbGV4aWJsZUJveDo6bGF5b3V0VmVydGljYWxCbwogICAgIC8vIE91ciBmaXJzdCBwYXNzIGlz
IGRvbmUgd2l0aG91dCBmbGV4aW5nLiAgV2Ugc2ltcGx5IGxheSB0aGUgY2hpbGRyZW4KICAgICAv
LyBvdXQgd2l0aGluIHRoZSBib3guCiAgICAgZG8gewotICAgIAotICAgICAgICBpZiAodmlldygp
LT5mbGV4Qm94SW5GaXJzdExheW91dCgpID09IHRoaXMpCi0gICAgICAgICAgICB2aWV3KCktPnNl
dEZsZXhCb3hJbkZpcnN0TGF5b3V0KDApOwotICAgICAgICBlbHNlIGlmICghdmlldygpLT5mbGV4
Qm94SW5GaXJzdExheW91dCgpKQotICAgICAgICAgICAgdmlldygpLT5zZXRGbGV4Qm94SW5GaXJz
dExheW91dCh0aGlzKTsKLSAgICAgICAgICAgIAogICAgICAgICBtX2hlaWdodCA9IGJvcmRlclRv
cCgpICsgcGFkZGluZ1RvcCgpOwogICAgICAgICBpbnQgbWluSGVpZ2h0ID0gbV9oZWlnaHQgKyB0
b0FkZDsKICAgICAgICAgbV9vdmVyZmxvd0hlaWdodCA9IG1faGVpZ2h0OwpJbmRleDogcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCShyZXZpc2lvbiAxOTgzMCkKKysrIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxOCwxNSArMzE4LDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxh
eWVyUG9zaXRpb24oKQogICAgIC8vIENsZWFyIG91ciBjYWNoZWQgY2xpcCByZWN0IGluZm9ybWF0
aW9uLgogICAgIGNsZWFyQ2xpcFJlY3QoKTsKIAotICAgIC8vIFRoZSBjYW52YXMgaXMgc2l6ZWQg
dG8gdGhlIGRvY1dpZHRoL0hlaWdodCBvdmVyIGluIFJlbmRlclZpZXc6OmxheW91dCwgc28gd2UK
LSAgICAvLyBkb24ndCBuZWVkIHRvIGV2ZXIgdXBkYXRlIG91ciBsYXllciBwb3NpdGlvbiBoZXJl
LgotICAgIGlmIChyZW5kZXJlcigpLT5pc1JlbmRlclZpZXcoKSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIAogICAgIGludCB4ID0gbV9vYmplY3QtPnhQb3MoKTsKICAgICBpbnQgeSA9IG1fb2JqZWN0
LT55UG9zKCkgLSBtX29iamVjdC0+Ym9yZGVyVG9wRXh0cmEoKTsKIAotICAgIGlmICghbV9vYmpl
Y3QtPmlzUG9zaXRpb25lZCgpKSB7CisgICAgaWYgKCFtX29iamVjdC0+aXNQb3NpdGlvbmVkKCkg
JiYgbV9vYmplY3QtPnBhcmVudCgpKSB7CiAgICAgICAgIC8vIFdlIG11c3QgYWRqdXN0IG91ciBw
b3NpdGlvbiBieSB3YWxraW5nIHVwIHRoZSByZW5kZXIgdHJlZSBsb29raW5nIGZvciB0aGUKICAg
ICAgICAgLy8gbmVhcmVzdCBlbmNsb3Npbmcgb2JqZWN0IHdpdGggYSBsYXllci4KICAgICAgICAg
UmVuZGVyT2JqZWN0KiBjdXJyID0gbV9vYmplY3QtPnBhcmVudCgpOwpJbmRleDogcmVuZGVyaW5n
L1JlbmRlclZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAko
cmV2aXNpb24gMTk4MzApCisrKyByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQwLDcgKzQwLDYgQEAgUmVuZGVyVmlldzo6UmVuZGVyVmlldyhOb2RlKiBub2RlLCBG
cmFtZQogICAgICwgbV9zZWxlY3Rpb25FbmRQb3MoLTEpCiAgICAgLCBtX3ByaW50SW1hZ2VzKHRy
dWUpCiAgICAgLCBtX21heGltYWxPdXRsaW5lU2l6ZSgwKQotICAgICwgbV9mbGV4Qm94SW5GaXJz
dExheW91dCgwKQogewogICAgIC8vIENsZWFyIG91ciBhbm9ueW1vdXMgYml0LCBzZXQgYmVjYXVz
ZSBSZW5kZXJPYmplY3QgYXNzdW1lcwogICAgIC8vIGFueSByZW5kZXJlciB3aXRoIGRvY3VtZW50
IGFzIHRoZSBub2RlIGlzIGFub255bW91cy4KQEAgLTk1LDM0ICs5NCwyMSBAQCB2b2lkIFJlbmRl
clZpZXc6OmxheW91dCgpCiAgICAgaWYgKHByaW50aW5nKCkpCiAgICAgICAgIG1fbWluV2lkdGgg
PSBtX3dpZHRoOwogCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgYWxsIGp1c3QgYSB0ZXJyaWJsZSB3
b3JrYXJvdW5kIGZvciBidWdzIGluIGxheW91dCB3aGVuIHRoZSB2aWV3IGhlaWdodCBjaGFuZ2Vz
LgotICAgIC8vIEZpbmQgYSBiZXR0ZXIgd2F5IHRvIGRldGVjdCB2aWV3IGhlaWdodCBjaGFuZ2Vz
LiAgV2UncmUgZ3Vlc3NpbmcgdGhhdCBpZiB3ZSBkb24ndCBuZWVkIGxheW91dCB0aGF0IHRoZSBy
ZWFzb24KLSAgICAvLyB3ZSB3ZXJlIGNhbGxlZCBpcyBiZWNhdXNlIG9mIGEgRnJhbWVWaWV3IGJv
dW5kcyBjaGFuZ2UuCi0gICAgaWYgKCFuZWVkc0xheW91dCgpKSB7CisgICAgYm9vbCByZWxheW91
dENoaWxkcmVuID0gcHJpbnRpbmcoKSB8fCAhbV9mcmFtZVZpZXcgfHwgbV93aWR0aCAhPSBtX2Zy
YW1lVmlldy0+dmlzaWJsZVdpZHRoKCkgfHwgbV9oZWlnaHQgIT0gbV9mcmFtZVZpZXctPnZpc2li
bGVIZWlnaHQoKTsKKyAgICBpZiAocmVsYXlvdXRDaGlsZHJlbikgewogICAgICAgICBzZXRDaGls
ZE5lZWRzTGF5b3V0KHRydWUsIGZhbHNlKTsKLSAgICAgICAgc2V0TWluTWF4S25vd24oZmFsc2Up
OwotICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogYyA9IGZpcnN0Q2hpbGQoKTsgYzsgYyA9IGMt
Pm5leHRTaWJsaW5nKCkpCi0gICAgICAgICAgICBjLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUs
IGZhbHNlKTsKKyAgICAgICAgaWYgKHByaW50aW5nKCkpCisgICAgICAgICAgICBzZXRNaW5NYXhL
bm93bihmYWxzZSk7CiAgICAgfQogCiAgICAgaWYgKHJlY2FsY01pbk1heCgpKQogICAgICAgICBy
ZWNhbGNNaW5NYXhXaWR0aHMoKTsKKyAgICAKKyAgICBpZiAobmVlZHNMYXlvdXQoKSkKKyAgICAg
ICAgUmVuZGVyQmxvY2s6OmxheW91dCgpOwogCi0gICAgUmVuZGVyQmxvY2s6OmxheW91dCgpOwot
Ci0gICAgaW50IGRvY3cgPSBkb2NXaWR0aCgpOwotICAgIGludCBkb2NoID0gZG9jSGVpZ2h0KCk7
Ci0KLSAgICBpZiAoIXByaW50aW5nKCkpIHsKLSAgICAgICAgc2V0V2lkdGgobV9mcmFtZVZpZXct
PnZpc2libGVXaWR0aCgpKTsKLSAgICAgICAgc2V0SGVpZ2h0KG1fZnJhbWVWaWV3LT52aXNpYmxl
SGVpZ2h0KCkpOwotICAgIH0KLQotICAgIC8vIEZJWE1FOiB3ZSBjb3VsZCBtYXliZSBkbyB0aGUg
Y2FsbCBiZWxvdyBiZXR0ZXIgYW5kIG9ubHkgcGFzcyB0cnVlIGlmIHRoZSBkb2NzaXplIGNoYW5n
ZWQuCi0gICAgbGF5b3V0UG9zaXRpb25lZE9iamVjdHModHJ1ZSk7Ci0KLSAgICBsYXllcigpLT5z
ZXRIZWlnaHQobWF4KGRvY2gsIG1faGVpZ2h0KSk7Ci0gICAgbGF5ZXIoKS0+c2V0V2lkdGgobWF4
KGRvY3csIG1fd2lkdGgpKTsKKyAgICBzZXRPdmVyZmxvd1dpZHRoKG1heChkb2NXaWR0aCgpLCBt
X3dpZHRoKSk7CisgICAgc2V0T3ZlcmZsb3dIZWlnaHQobWF4KGRvY0hlaWdodCgpLCBtX2hlaWdo
dCkpOwogCiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQpJbmRleDogcmVuZGVyaW5nL1Jl
bmRlclZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvUmVuZGVyVmlldy5oCShyZXZpc2lv
biAxOTgzMCkKKysrIHJlbmRlcmluZy9SZW5kZXJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTkw
LDkgKzkwLDYgQEAgcHVibGljOgogICAgIHZvaWQgYWRkV2lkZ2V0KFJlbmRlck9iamVjdCopOwog
ICAgIHZvaWQgcmVtb3ZlV2lkZ2V0KFJlbmRlck9iamVjdCopOwogCi0gICAgdm9pZCBzZXRGbGV4
Qm94SW5GaXJzdExheW91dChSZW5kZXJPYmplY3QqIHIpIHsgbV9mbGV4Qm94SW5GaXJzdExheW91
dCA9IHI7IH0KLSAgICBSZW5kZXJPYmplY3QqIGZsZXhCb3hJbkZpcnN0TGF5b3V0KCkgeyByZXR1
cm4gbV9mbGV4Qm94SW5GaXJzdExheW91dDsgfQotCiAgICAgY29uc3QgSW50U2l6ZSYgbGF5b3V0
RGVsdGEoKSBjb25zdCB7IHJldHVybiBtX2xheW91dERlbHRhOyB9CiAgICAgdm9pZCBhZGRMYXlv
dXREZWx0YShjb25zdCBJbnRTaXplJiBkZWx0YSkgeyBtX2xheW91dERlbHRhICs9IGRlbHRhOyB9
CiAKQEAgLTExNSw4ICsxMTIsNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICBSZW5kZXJPYmplY3RTZXQg
bV93aWRnZXRzOwogCi0gICAgUmVuZGVyT2JqZWN0KiBtX2ZsZXhCb3hJbkZpcnN0TGF5b3V0Owot
CiBwcml2YXRlOgogICAgIGludCBtX2Jlc3RUcnVuY2F0ZWRBdDsKICAgICBpbnQgbV90cnVuY2F0
b3JXaWR0aDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13353</attachid>
            <date>2007-02-23 14:53:56 -0800</date>
            <delta_ts>2007-02-24 17:08:21 -0800</delta_ts>
            <desc>Fix adjustViewSize to not be slow.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>6550</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IHBhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdlL0ZyYW1lVmlldy5j
cHAJKHJldmlzaW9uIDE5ODMwKQorKysgcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMjIsMTEgKzIyMiw3IEBAIHZvaWQgRnJhbWVWaWV3OjphZGp1c3RWaWV3U2l6ZSgpCiAg
ICAgICAgIFJlbmRlclZpZXcqIHJvb3QgPSBzdGF0aWNfY2FzdDxSZW5kZXJWaWV3Kj4oZG9jdW1l
bnQtPnJlbmRlcmVyKCkpOwogICAgICAgICBpZiAoIXJvb3QpCiAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIAotICAgICAgICBpbnQgZG9jdyA9IHJvb3QtPmRvY1dpZHRoKCk7Ci0gICAgICAg
IGludCBkb2NoID0gcm9vdC0+ZG9jSGVpZ2h0KCk7Ci0gICAgCi0gICAgICAgIHJlc2l6ZUNvbnRl
bnRzKGRvY3csIGRvY2gpOworICAgICAgICByZXNpemVDb250ZW50cyhyb290LT5vdmVyZmxvd1dp
ZHRoKCksIHJvb3QtPm92ZXJmbG93SGVpZ2h0KCkpOwogICAgIH0KIH0KIApAQCAtNDM0LDcgKzQz
MCw3IEBAIHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUKICAgICBkLT5s
YXlvdXRTY2hlZHVsaW5nRW5hYmxlZD10cnVlOwogCiAgICAgaWYgKCFzdWJ0cmVlICYmICFzdGF0
aWNfY2FzdDxSZW5kZXJWaWV3Kj4ocm9vdCktPnByaW50aW5nKCkpCi0gICAgICAgIHJlc2l6ZUNv
bnRlbnRzKGxheWVyLT53aWR0aCgpLCBsYXllci0+aGVpZ2h0KCkpOworICAgICAgICBhZGp1c3RW
aWV3U2l6ZSgpOwogCiAgICAgLy8gTm93IHVwZGF0ZSB0aGUgcG9zaXRpb25zIG9mIGFsbCBsYXll
cnMuCiAgICAgbGF5ZXItPnVwZGF0ZUxheWVyUG9zaXRpb25zKGQtPmRvRnVsbFJlcGFpbnQpOwpJ
bmRleDogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCShyZXZpc2lvbiAxOTgzMCkKKysrIHJlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3NCw4ICs1NzQsNyBAQCB2b2lkIFJlbmRlckJsb2Nr
OjpsYXlvdXRCbG9jayhib29sIHJlbGF5CiAKICAgICAvLyBVcGRhdGUgb3VyIHNjcm9sbCBpbmZv
cm1hdGlvbiBpZiB3ZSdyZSBvdmVyZmxvdzphdXRvL3Njcm9sbC9oaWRkZW4gbm93IHRoYXQgd2Ug
a25vdyBpZgogICAgIC8vIHdlIG92ZXJmbG93IG9yIG5vdC4KLSAgICBSZW5kZXJPYmplY3QqIGZs
ZXhib3ggPSB2aWV3KCktPmZsZXhCb3hJbkZpcnN0TGF5b3V0KCk7Ci0gICAgaWYgKGhhc092ZXJm
bG93Q2xpcCgpICYmICEoZmxleGJveCAmJiBmbGV4Ym94ICE9IHRoaXMgJiYgaXNEZXNjZW5kYW50
T2YoZmxleGJveCkpKQorICAgIGlmIChoYXNPdmVyZmxvd0NsaXAoKSkKICAgICAgICAgbV9sYXll
ci0+dXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0KCk7CiAKICAgICAvLyBSZXBhaW50IHdpdGgg
b3VyIG5ldyBib3VuZHMgaWYgdGhleSBhcmUgZGlmZmVyZW50IGZyb20gb3VyIG9sZCBib3VuZHMu
CkluZGV4OiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAJKHJldmlzaW9uIDE5ODMwKQorKysgcmVuZGVy
aW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzI0LDggKzMyNCw3
IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJvb2wKIAogICAgIC8vIFVw
ZGF0ZSBvdXIgc2Nyb2xsYmFycyBpZiB3ZSdyZSBvdmVyZmxvdzphdXRvL3Njcm9sbC9oaWRkZW4g
bm93IHRoYXQgd2Uga25vdyBpZgogICAgIC8vIHdlIG92ZXJmbG93IG9yIG5vdC4KLSAgICBSZW5k
ZXJPYmplY3QqIGZsZXhib3ggPSB2aWV3KCktPmZsZXhCb3hJbkZpcnN0TGF5b3V0KCk7Ci0gICAg
aWYgKGhhc092ZXJmbG93Q2xpcCgpICYmICEoZmxleGJveCAmJiBmbGV4Ym94ICE9IHRoaXMgJiYg
aXNEZXNjZW5kYW50T2YoZmxleGJveCkpKQorICAgIGlmIChoYXNPdmVyZmxvd0NsaXAoKSkKICAg
ICAgICAgbV9sYXllci0+dXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0KCk7CiAKICAgICAvLyBS
ZXBhaW50IHdpdGggb3VyIG5ldyBib3VuZHMgaWYgdGhleSBhcmUgZGlmZmVyZW50IGZyb20gb3Vy
IG9sZCBib3VuZHMuCkBAIC04MDUsMTIgKzgwNCw2IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6
OmxheW91dFZlcnRpY2FsQm8KICAgICAvLyBPdXIgZmlyc3QgcGFzcyBpcyBkb25lIHdpdGhvdXQg
ZmxleGluZy4gIFdlIHNpbXBseSBsYXkgdGhlIGNoaWxkcmVuCiAgICAgLy8gb3V0IHdpdGhpbiB0
aGUgYm94LgogICAgIGRvIHsKLSAgICAKLSAgICAgICAgaWYgKHZpZXcoKS0+ZmxleEJveEluRmly
c3RMYXlvdXQoKSA9PSB0aGlzKQotICAgICAgICAgICAgdmlldygpLT5zZXRGbGV4Qm94SW5GaXJz
dExheW91dCgwKTsKLSAgICAgICAgZWxzZSBpZiAoIXZpZXcoKS0+ZmxleEJveEluRmlyc3RMYXlv
dXQoKSkKLSAgICAgICAgICAgIHZpZXcoKS0+c2V0RmxleEJveEluRmlyc3RMYXlvdXQodGhpcyk7
Ci0gICAgICAgICAgICAKICAgICAgICAgbV9oZWlnaHQgPSBib3JkZXJUb3AoKSArIHBhZGRpbmdU
b3AoKTsKICAgICAgICAgaW50IG1pbkhlaWdodCA9IG1faGVpZ2h0ICsgdG9BZGQ7CiAgICAgICAg
IG1fb3ZlcmZsb3dIZWlnaHQgPSBtX2hlaWdodDsKSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2aXNpb24g
MTk4MzApCisrKyByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MTgsMTUgKzMxOCwxMCBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9uKCkK
ICAgICAvLyBDbGVhciBvdXIgY2FjaGVkIGNsaXAgcmVjdCBpbmZvcm1hdGlvbi4KICAgICBjbGVh
ckNsaXBSZWN0KCk7CiAKLSAgICAvLyBUaGUgY2FudmFzIGlzIHNpemVkIHRvIHRoZSBkb2NXaWR0
aC9IZWlnaHQgb3ZlciBpbiBSZW5kZXJWaWV3OjpsYXlvdXQsIHNvIHdlCi0gICAgLy8gZG9uJ3Qg
bmVlZCB0byBldmVyIHVwZGF0ZSBvdXIgbGF5ZXIgcG9zaXRpb24gaGVyZS4KLSAgICBpZiAocmVu
ZGVyZXIoKS0+aXNSZW5kZXJWaWV3KCkpCi0gICAgICAgIHJldHVybjsKLSAgICAKICAgICBpbnQg
eCA9IG1fb2JqZWN0LT54UG9zKCk7CiAgICAgaW50IHkgPSBtX29iamVjdC0+eVBvcygpIC0gbV9v
YmplY3QtPmJvcmRlclRvcEV4dHJhKCk7CiAKLSAgICBpZiAoIW1fb2JqZWN0LT5pc1Bvc2l0aW9u
ZWQoKSkgeworICAgIGlmICghbV9vYmplY3QtPmlzUG9zaXRpb25lZCgpICYmIG1fb2JqZWN0LT5w
YXJlbnQoKSkgewogICAgICAgICAvLyBXZSBtdXN0IGFkanVzdCBvdXIgcG9zaXRpb24gYnkgd2Fs
a2luZyB1cCB0aGUgcmVuZGVyIHRyZWUgbG9va2luZyBmb3IgdGhlCiAgICAgICAgIC8vIG5lYXJl
c3QgZW5jbG9zaW5nIG9iamVjdCB3aXRoIGEgbGF5ZXIuCiAgICAgICAgIFJlbmRlck9iamVjdCog
Y3VyciA9IG1fb2JqZWN0LT5wYXJlbnQoKTsKSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAJKHJldmlzaW9uIDE5ODMw
KQorKysgcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0
MCw2IEBAIFJlbmRlclZpZXc6OlJlbmRlclZpZXcoTm9kZSogbm9kZSwgRnJhbWUKICAgICAsIG1f
c2VsZWN0aW9uRW5kUG9zKC0xKQogICAgICwgbV9wcmludEltYWdlcyh0cnVlKQogICAgICwgbV9t
YXhpbWFsT3V0bGluZVNpemUoMCkKLSAgICAsIG1fZmxleEJveEluRmlyc3RMYXlvdXQoMCkKIHsK
ICAgICAvLyBDbGVhciBvdXIgYW5vbnltb3VzIGJpdCwgc2V0IGJlY2F1c2UgUmVuZGVyT2JqZWN0
IGFzc3VtZXMKICAgICAvLyBhbnkgcmVuZGVyZXIgd2l0aCBkb2N1bWVudCBhcyB0aGUgbm9kZSBp
cyBhbm9ueW1vdXMuCkBAIC05NSwzNCArOTQsMjEgQEAgdm9pZCBSZW5kZXJWaWV3OjpsYXlvdXQo
KQogICAgIGlmIChwcmludGluZygpKQogICAgICAgICBtX21pbldpZHRoID0gbV93aWR0aDsKIAot
ICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFsbCBqdXN0IGEgdGVycmlibGUgd29ya2Fyb3VuZCBmb3Ig
YnVncyBpbiBsYXlvdXQgd2hlbiB0aGUgdmlldyBoZWlnaHQgY2hhbmdlcy4KLSAgICAvLyBGaW5k
IGEgYmV0dGVyIHdheSB0byBkZXRlY3QgdmlldyBoZWlnaHQgY2hhbmdlcy4gIFdlJ3JlIGd1ZXNz
aW5nIHRoYXQgaWYgd2UgZG9uJ3QgbmVlZCBsYXlvdXQgdGhhdCB0aGUgcmVhc29uCi0gICAgLy8g
d2Ugd2VyZSBjYWxsZWQgaXMgYmVjYXVzZSBvZiBhIEZyYW1lVmlldyBib3VuZHMgY2hhbmdlLgot
ICAgIGlmICghbmVlZHNMYXlvdXQoKSkgeworICAgIGJvb2wgcmVsYXlvdXRDaGlsZHJlbiA9IHBy
aW50aW5nKCkgfHwgIW1fZnJhbWVWaWV3IHx8IG1fd2lkdGggIT0gbV9mcmFtZVZpZXctPnZpc2li
bGVXaWR0aCgpIHx8IG1faGVpZ2h0ICE9IG1fZnJhbWVWaWV3LT52aXNpYmxlSGVpZ2h0KCk7Cisg
ICAgaWYgKHJlbGF5b3V0Q2hpbGRyZW4pIHsKICAgICAgICAgc2V0Q2hpbGROZWVkc0xheW91dCh0
cnVlLCBmYWxzZSk7Ci0gICAgICAgIHNldE1pbk1heEtub3duKGZhbHNlKTsKLSAgICAgICAgZm9y
IChSZW5kZXJPYmplY3QqIGMgPSBmaXJzdENoaWxkKCk7IGM7IGMgPSBjLT5uZXh0U2libGluZygp
KQotICAgICAgICAgICAgYy0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBmYWxzZSk7CisgICAg
ICAgIGlmIChwcmludGluZygpKQorICAgICAgICAgICAgc2V0TWluTWF4S25vd24oZmFsc2UpOwog
ICAgIH0KIAogICAgIGlmIChyZWNhbGNNaW5NYXgoKSkKICAgICAgICAgcmVjYWxjTWluTWF4V2lk
dGhzKCk7CisgICAgCisgICAgaWYgKG5lZWRzTGF5b3V0KCkpCisgICAgICAgIFJlbmRlckJsb2Nr
OjpsYXlvdXQoKTsKIAotICAgIFJlbmRlckJsb2NrOjpsYXlvdXQoKTsKLQotICAgIGludCBkb2N3
ID0gZG9jV2lkdGgoKTsKLSAgICBpbnQgZG9jaCA9IGRvY0hlaWdodCgpOwotCi0gICAgaWYgKCFw
cmludGluZygpKSB7Ci0gICAgICAgIHNldFdpZHRoKG1fZnJhbWVWaWV3LT52aXNpYmxlV2lkdGgo
KSk7Ci0gICAgICAgIHNldEhlaWdodChtX2ZyYW1lVmlldy0+dmlzaWJsZUhlaWdodCgpKTsKLSAg
ICB9Ci0KLSAgICAvLyBGSVhNRTogd2UgY291bGQgbWF5YmUgZG8gdGhlIGNhbGwgYmVsb3cgYmV0
dGVyIGFuZCBvbmx5IHBhc3MgdHJ1ZSBpZiB0aGUgZG9jc2l6ZSBjaGFuZ2VkLgotICAgIGxheW91
dFBvc2l0aW9uZWRPYmplY3RzKHRydWUpOwotCi0gICAgbGF5ZXIoKS0+c2V0SGVpZ2h0KG1heChk
b2NoLCBtX2hlaWdodCkpOwotICAgIGxheWVyKCktPnNldFdpZHRoKG1heChkb2N3LCBtX3dpZHRo
KSk7CisgICAgc2V0T3ZlcmZsb3dXaWR0aChtYXgoZG9jV2lkdGgoKSwgbV93aWR0aCkpOworICAg
IHNldE92ZXJmbG93SGVpZ2h0KG1heChkb2NIZWlnaHQoKSwgbV9oZWlnaHQpKTsKIAogICAgIHNl
dE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0KSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJWaWV3LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlclZpZXcuaAkocmV2aXNpb24gMTk4MzApCisrKyBy
ZW5kZXJpbmcvUmVuZGVyVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC05MCw5ICs5MCw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIGFkZFdpZGdldChSZW5kZXJPYmplY3QqKTsKICAgICB2b2lkIHJlbW92
ZVdpZGdldChSZW5kZXJPYmplY3QqKTsKIAotICAgIHZvaWQgc2V0RmxleEJveEluRmlyc3RMYXlv
dXQoUmVuZGVyT2JqZWN0KiByKSB7IG1fZmxleEJveEluRmlyc3RMYXlvdXQgPSByOyB9Ci0gICAg
UmVuZGVyT2JqZWN0KiBmbGV4Qm94SW5GaXJzdExheW91dCgpIHsgcmV0dXJuIG1fZmxleEJveElu
Rmlyc3RMYXlvdXQ7IH0KLQogICAgIGNvbnN0IEludFNpemUmIGxheW91dERlbHRhKCkgY29uc3Qg
eyByZXR1cm4gbV9sYXlvdXREZWx0YTsgfQogICAgIHZvaWQgYWRkTGF5b3V0RGVsdGEoY29uc3Qg
SW50U2l6ZSYgZGVsdGEpIHsgbV9sYXlvdXREZWx0YSArPSBkZWx0YTsgfQogCkBAIC0xMTUsOCAr
MTEyLDYgQEAgcHJvdGVjdGVkOgogCiAgICAgUmVuZGVyT2JqZWN0U2V0IG1fd2lkZ2V0czsKIAot
ICAgIFJlbmRlck9iamVjdCogbV9mbGV4Qm94SW5GaXJzdExheW91dDsKLQogcHJpdmF0ZToKICAg
ICBpbnQgbV9iZXN0VHJ1bmNhdGVkQXQ7CiAgICAgaW50IG1fdHJ1bmNhdG9yV2lkdGg7Cg==
</data>
<flag name="review"
          id="5243"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>