<?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>26832</bug_id>
          
          <creation_ts>2009-06-30 00:19:47 -0700</creation_ts>
          <short_desc>Generalize special height handling in InlineBox</short_desc>
          <delta_ts>2009-07-06 15:42:44 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>3749</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Roland Steiner">rolandsteiner</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>128964</commentid>
    <comment_count>0</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2009-06-30 00:19:47 -0700</bug_when>
    <thetext>InlineBox contains a bit that is used to mark when a box computes its height differently from the default. This bit is currently used only for SVG (and used instead of virtual methods for performance reasons) and hence named &apos;m_isSVG&apos;.

This bit should have a generic name that fits its purpose so that it can be re-used.

The implementation for ruby will make use of this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128966</commentid>
    <comment_count>1</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2009-06-30 00:22:22 -0700</bug_when>
    <thetext>(In reply to comment #0)

Addendum: This of course also applies to all methods that make use of this bit (isSVG, setIsSVG, svgBoxheight).

&gt; InlineBox contains a bit that is used to mark when a box computes its height
&gt; differently from the default. This bit is currently used only for SVG (and used
&gt; instead of virtual methods for performance reasons) and hence named &apos;m_isSVG&apos;.
&gt; 
&gt; This bit should have a generic name that fits its purpose so that it can be
&gt; re-used.
&gt; 
&gt; The implementation for ruby will make use of this.
&gt; 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128967</commentid>
    <comment_count>2</comment_count>
      <attachid>32036</attachid>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2009-06-30 00:23:19 -0700</bug_when>
    <thetext>Created attachment 32036
patch: implement proposed renaming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128976</commentid>
    <comment_count>3</comment_count>
      <attachid>32036</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-30 00:52:36 -0700</bug_when>
    <thetext>Comment on attachment 32036
patch: implement proposed renaming

It seems this should still be wrapped in ENABLE(SVG) || ENABLE(RUBY) blocks.

maybe m_useVirtualHeight would be more clear?  I&apos;m not sure.  I&apos;m just not sure what a &quot;special height&quot; is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129254</commentid>
    <comment_count>4</comment_count>
      <attachid>32110</attachid>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2009-06-30 23:22:45 -0700</bug_when>
    <thetext>Created attachment 32110
patch: renamed to &apos;virtualHeight&apos;

You&apos;re right, &apos;virtualheight&apos; probably is more clear.

Updated patch accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129899</commentid>
    <comment_count>5</comment_count>
      <attachid>32110</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-07-06 00:23:14 -0700</bug_when>
    <thetext>Comment on attachment 32110
patch: renamed to &apos;virtualHeight&apos;

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129923</commentid>
    <comment_count>6</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2009-07-06 04:11:45 -0700</bug_when>
    <thetext>(In reply to comment #5)

Thanks a lot for the review! Can I ask you to commit the patch for me, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130041</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-06 15:42:44 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/rendering/InlineBox.cpp
	M	WebCore/rendering/InlineBox.h
	M	WebCore/rendering/RenderSVGInline.cpp
	M	WebCore/rendering/RenderSVGInlineText.cpp
	M	WebCore/rendering/RenderSVGText.cpp
	M	WebCore/rendering/SVGInlineFlowBox.h
	M	WebCore/rendering/SVGInlineTextBox.h
	M	WebCore/rendering/SVGRootInlineBox.h
Committed r45570
	M	WebCore/ChangeLog
	M	WebCore/rendering/InlineBox.cpp
	M	WebCore/rendering/RenderSVGInlineText.cpp
	M	WebCore/rendering/SVGInlineTextBox.h
	M	WebCore/rendering/SVGInlineFlowBox.h
	M	WebCore/rendering/RenderSVGText.cpp
	M	WebCore/rendering/RenderSVGInline.cpp
	M	WebCore/rendering/SVGRootInlineBox.h
	M	WebCore/rendering/InlineBox.h
r45570 = 0bc3a1356efe435f43de58095372a73b869cb918 (trunk)
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk
http://trac.webkit.org/changeset/45570</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32036</attachid>
            <date>2009-06-30 00:23:19 -0700</date>
            <delta_ts>2009-06-30 23:22:45 -0700</delta_ts>
            <desc>patch: implement proposed renaming</desc>
            <filename>SpecialHeight.patch</filename>
            <type>text/plain</type>
            <size>7900</size>
            <attacher name="Roland Steiner">rolandsteiner</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTM2NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMDktMDYtMzAgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5l
ckBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGdlbmVyYWxpemUgdGhlIHNwZWNpYWwgaGVpZ2h0IHRyZWF0bWVudCBmb3IgU1ZHICh0
byBiZSByZS11c2VkIGZvciBydWJ5KToKKyAgICAgICAgICAgIHJlbmFtZWQgSW5saW5lQm94Ojpt
X2lzU1ZHIHRvIG1faGFzU3BlY2lhbEhlaWdodAorICAgICAgICAgICAgcmVuYW1lZCBJbmxpbmVC
b3g6OmlzU1ZHKCkgdG8gaGFzU3BlY2lhbEhlaWdodCgpCisgICAgICAgICAgICByZW5hbWVkIElu
bGluZUJveDo6c2V0SXNTVkcoKSB0byBzZXRIYXNTcGVjaWFsSGVpZ2h0KCkKKyAgICAgICAgICAg
IHJlbmFtZWQgc3ZnQm94SGVpZ2h0KCkgdG8gc3BlY2lhbEhlaWdodCgpCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvSW5saW5lQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUJveDo6aGVp
Z2h0KToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lQm94Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVCb3g6OklubGluZUJveCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVCb3g6Omlz
U1ZHUm9vdElubGluZUJveCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVCb3g6Omhhc1NwZWNp
YWxIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lQm94OjpzZXRIYXNTcGVjaWFsSGVp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUJveDo6c3BlY2lhbEhlaWdodCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbmxpbmVCb3g6OmJhc2VsaW5lUG9zaXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6SW5saW5lQm94OjpsaW5lSGVpZ2h0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
U1ZHSW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0lubGluZTo6Y3JlYXRl
Rmxvd0JveCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR0lubGluZVRleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW5saW5lVGV4dDo6Y3JlYXRlVGV4dEJveCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU1ZHVGV4dDo6Y3JlYXRlUm9vdEJveCk6CisgICAgICAgICogcmVuZGVyaW5nL1NWR0lu
bGluZUZsb3dCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0lubGluZUZsb3dCb3g6OnNwZWNp
YWxIZWlnaHQpOgorICAgICAgICAqIHJlbmRlcmluZy9TVkdJbmxpbmVUZXh0Qm94Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdJbmxpbmVUZXh0Qm94OjpzcGVjaWFsSGVpZ2h0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvU1ZHUm9vdElubGluZUJveC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUm9v
dElubGluZUJveDo6c3BlY2lhbEhlaWdodCk6CisKIDIwMDktMDYtMjkgIFhhbiBMb3BleiAgPHhs
b3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbiBBbG9uem8uCkluZGV4
OiBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cmVuZGVyaW5nL0lubGluZUJveC5jcHAJKHJldmlzaW9uIDQ1MzMzKQorKysgV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODcsMTEgKzg3LDkgQEAgdm9p
ZCBJbmxpbmVCb3g6OnNob3dUcmVlRm9yVGhpcygpIGNvbnN0CiAKIGludCBJbmxpbmVCb3g6Omhl
aWdodCgpIGNvbnN0CiB7Ci0jaWYgRU5BQkxFKFNWRykKLSAgICBpZiAoaXNTVkcoKSkKLSAgICAg
ICAgcmV0dXJuIHN2Z0JveEhlaWdodCgpOwotI2VuZGlmCi0KKyAgICBpZiAoaGFzU3BlY2lhbEhl
aWdodCgpKQorICAgICAgICByZXR1cm4gc3BlY2lhbEhlaWdodCgpOworICAgIAogICAgIGlmIChy
ZW5kZXJlcigpLT5pc1RleHQoKSkKICAgICAgICAgcmV0dXJuIG1faXNUZXh0ID8gcmVuZGVyZXIo
KS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCkuaGVpZ2h0KCkgOiAwOwogICAgIGlmIChyZW5k
ZXJlcigpLT5pc0JveCgpICYmIHBhcmVudCgpKQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvSW5s
aW5lQm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lQm94LmgJKHJl
dmlzaW9uIDQ1MzMzKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lQm94LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ4LDkgKzQ4LDcgQEAgcHVibGljOgogICAgICAgICAsIG1fYmlkaUVtYmVkZGlu
Z0xldmVsKDApCiAgICAgICAgICwgbV9kaXJ0eShmYWxzZSkKICAgICAgICAgLCBtX2V4dHJhY3Rl
ZChmYWxzZSkKLSNpZiBFTkFCTEUoU1ZHKQotICAgICAgICAsIG1faXNTVkcoZmFsc2UpCi0jZW5k
aWYKKyAgICAgICAgLCBtX2hhc1NwZWNpYWxIZWlnaHQoZmFsc2UpCiAgICAgICAgICwgbV9lbmRz
V2l0aEJyZWFrKGZhbHNlKQogICAgICAgICAsIG1faGFzU2VsZWN0ZWRDaGlsZHJlbihmYWxzZSkK
ICAgICAgICAgLCBtX2hhc0VsbGlwc2lzQm94KGZhbHNlKQpAQCAtODEsOSArNzksNyBAQCBwdWJs
aWM6CiAgICAgICAgICwgbV9iaWRpRW1iZWRkaW5nTGV2ZWwoMCkKICAgICAgICAgLCBtX2RpcnR5
KGRpcnR5KQogICAgICAgICAsIG1fZXh0cmFjdGVkKGV4dHJhY3RlZCkKLSNpZiBFTkFCTEUoU1ZH
KQotICAgICAgICAsIG1faXNTVkcoZmFsc2UpCi0jZW5kaWYKKyAgICAgICAgLCBtX2hhc1NwZWNp
YWxIZWlnaHQoZmFsc2UpCiAgICAgICAgICwgbV9lbmRzV2l0aEJyZWFrKGZhbHNlKQogICAgICAg
ICAsIG1faGFzU2VsZWN0ZWRDaGlsZHJlbihmYWxzZSkgICAKICAgICAgICAgLCBtX2hhc0VsbGlw
c2lzQm94KGZhbHNlKQpAQCAtMTM1LDEyICsxMzEsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBpc1Jvb3RJbmxpbmVCb3goKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2lmIEVOQUJM
RShTVkcpIAogICAgIHZpcnR1YWwgYm9vbCBpc1NWR1Jvb3RJbmxpbmVCb3goKSB7IHJldHVybiBm
YWxzZTsgfQotICAgIGJvb2wgaXNTVkcoKSBjb25zdCB7IHJldHVybiBtX2lzU1ZHOyB9Ci0gICAg
dm9pZCBzZXRJc1NWRyhib29sIGIpIHsgbV9pc1NWRyA9IGI7IH0KICNlbmRpZgogICAgIGJvb2wg
aXNUZXh0KCkgY29uc3QgeyByZXR1cm4gbV9pc1RleHQ7IH0KICAgICB2b2lkIHNldElzVGV4dChi
b29sIGIpIHsgbV9pc1RleHQgPSBiOyB9CiAKKyAgICBib29sIGhhc1NwZWNpYWxIZWlnaHQoKSBj
b25zdCB7IHJldHVybiBtX2hhc1NwZWNpYWxIZWlnaHQ7IH0KKyAgICB2b2lkIHNldEhhc1NwZWNp
YWxIZWlnaHQoKSB7IG1faGFzU3BlY2lhbEhlaWdodCA9IHRydWU7IH0KKyAgICAKICAgICBib29s
IGlzQ29uc3RydWN0ZWQoKSB7IHJldHVybiBtX2NvbnN0cnVjdGVkOyB9CiAgICAgdmlydHVhbCB2
b2lkIHNldENvbnN0cnVjdGVkKCkKICAgICB7CkBAIC0yMDAsNiArMTk3LDEwIEBAIHB1YmxpYzoK
ICAgICBpbnQgeSgpIGNvbnN0IHsgcmV0dXJuIG1feTsgfQogCiAgICAgaW50IGhlaWdodCgpIGNv
bnN0OworICAgIHZpcnR1YWwgaW50IHNwZWNpYWxIZWlnaHQoKSBjb25zdCB7IEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyByZXR1cm4gMDsgfQorCisgICAgaW5saW5lIGludCBiYXNlbGluZVBvc2l0aW9u
KGJvb2wgaXNSb290TGluZUJveCkgY29uc3QgeyByZXR1cm4gcmVuZGVyZXIoKS0+YmFzZWxpbmVQ
b3NpdGlvbihtX2ZpcnN0TGluZSwgaXNSb290TGluZUJveCk7IH0KKyAgICBpbmxpbmUgaW50IGxp
bmVIZWlnaHQoYm9vbCBpc1Jvb3RMaW5lQm94KSBjb25zdCB7IHJldHVybiByZW5kZXJlcigpLT5s
aW5lSGVpZ2h0KG1fZmlyc3RMaW5lLCBpc1Jvb3RMaW5lQm94KTsgfQogCiAgICAgdmlydHVhbCBp
bnQgdG9wT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiB5KCk7IH0KICAgICB2aXJ0dWFsIGludCBi
b3R0b21PdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIHkoKSArIGhlaWdodCgpOyB9CkBAIC0yNDMs
MTEgKzI0NCw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi1wcm90ZWN0
ZWQ6Ci0jaWYgRU5BQkxFKFNWRykKLSAgICB2aXJ0dWFsIGludCBzdmdCb3hIZWlnaHQoKSBjb25z
dCB7IHJldHVybiAwOyB9Ci0jZW5kaWYKLQogcHJpdmF0ZToKICAgICBJbmxpbmVCb3gqIG1fbmV4
dDsgLy8gVGhlIG5leHQgZWxlbWVudCBvbiB0aGUgc2FtZSBsaW5lIGFzIHVzLgogICAgIElubGlu
ZUJveCogbV9wcmV2OyAvLyBUaGUgcHJldmlvdXMgZWxlbWVudCBvbiB0aGUgc2FtZSBsaW5lIGFz
IHVzLgpAQCAtMjcyLDEwICsyNjgsNyBAQCBwcml2YXRlOgogcHJvdGVjdGVkOgogICAgIGJvb2wg
bV9kaXJ0eSA6IDE7CiAgICAgYm9vbCBtX2V4dHJhY3RlZCA6IDE7Ci0KLSNpZiBFTkFCTEUoU1ZH
KQotICAgIGJvb2wgbV9pc1NWRyA6IDE7Ci0jZW5kaWYKKyAgICBib29sIG1faGFzU3BlY2lhbEhl
aWdodCA6IDE7CiAKICAgICAvLyBmb3IgUm9vdElubGluZUJveAogICAgIGJvb2wgbV9lbmRzV2l0
aEJyZWFrIDogMTsgIC8vIFdoZXRoZXIgdGhlIGxpbmUgZW5kcyB3aXRoIGEgPGJyPi4KSW5kZXg6
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0lubGluZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHSW5saW5lLmNwcAkocmV2aXNpb24gNDUzMzMpCisrKyBX
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdJbmxpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
Miw3ICs0Miw3IEBAIFJlbmRlclNWR0lubGluZTo6UmVuZGVyU1ZHSW5saW5lKE5vZGUqIG4KIElu
bGluZUZsb3dCb3gqIFJlbmRlclNWR0lubGluZTo6Y3JlYXRlRmxvd0JveCgpCiB7CiAgICAgSW5s
aW5lRmxvd0JveCogYm94ID0gbmV3IChyZW5kZXJBcmVuYSgpKSBTVkdJbmxpbmVGbG93Qm94KHRo
aXMpOwotICAgIGJveC0+c2V0SXNTVkcodHJ1ZSk7CisgICAgYm94LT5zZXRIYXNTcGVjaWFsSGVp
Z2h0KCk7CiAgICAgcmV0dXJuIGJveDsKIH0KIApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU1ZHSW5saW5lVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU1ZHSW5saW5lVGV4dC5jcHAJKHJldmlzaW9uIDQ1MzMzKQorKysgV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNCw3ICsxMzQs
NyBAQCBGbG9hdFF1YWQgUmVuZGVyU1ZHSW5saW5lVGV4dDo6Y29tcHV0ZVJlCiBJbmxpbmVUZXh0
Qm94KiBSZW5kZXJTVkdJbmxpbmVUZXh0OjpjcmVhdGVUZXh0Qm94KCkKIHsKICAgICBJbmxpbmVU
ZXh0Qm94KiBib3ggPSBuZXcgKHJlbmRlckFyZW5hKCkpIFNWR0lubGluZVRleHRCb3godGhpcyk7
Ci0gICAgYm94LT5zZXRJc1NWRyh0cnVlKTsKKyAgICBib3gtPnNldEhhc1NwZWNpYWxIZWlnaHQo
KTsKICAgICByZXR1cm4gYm94OwogfQogCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
VkdUZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0
LmNwcAkocmV2aXNpb24gNDUzMzMpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTIsNyArOTIsNyBAQCB2b2lkIFJlbmRlclNWR1RleHQ6
OmxheW91dCgpCiBSb290SW5saW5lQm94KiBSZW5kZXJTVkdUZXh0OjpjcmVhdGVSb290Qm94KCkK
IHsKICAgICBSb290SW5saW5lQm94KiBib3ggPSBuZXcgKHJlbmRlckFyZW5hKCkpIFNWR1Jvb3RJ
bmxpbmVCb3godGhpcyk7Ci0gICAgYm94LT5zZXRJc1NWRyh0cnVlKTsKKyAgICBib3gtPnNldEhh
c1NwZWNpYWxIZWlnaHQoKTsKICAgICByZXR1cm4gYm94OwogfQogCkluZGV4OiBXZWJDb3JlL3Jl
bmRlcmluZy9TVkdJbmxpbmVGbG93Qm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJp
bmcvU1ZHSW5saW5lRmxvd0JveC5oCShyZXZpc2lvbiA0NTMzMykKKysrIFdlYkNvcmUvcmVuZGVy
aW5nL1NWR0lubGluZUZsb3dCb3guaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBw
dWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgaW50IHN2Z0JveEhlaWdodCgpIGNv
bnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9CisgICAgdmlydHVhbCBpbnQgc3BlY2lhbEhlaWdodCgp
IGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9CiAgICAgdm9pZCBzZXRIZWlnaHQoaW50IGgpIHsg
bV9oZWlnaHQgPSBoOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUmVuZGVyT2JqZWN0OjpQ
YWludEluZm8mLCBpbnQgdHgsIGludCB0eSk7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9TVkdJ
bmxpbmVUZXh0Qm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvU1ZHSW5saW5l
VGV4dEJveC5oCShyZXZpc2lvbiA0NTMzMykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1NWR0lubGlu
ZVRleHRCb3guaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgcHVibGljOgogICAgICAgICBTVkdJbmxpbmVUZXh0Qm94KFJlbmRlck9iamVj
dCogb2JqKTsKIAotICAgICAgICB2aXJ0dWFsIGludCBzdmdCb3hIZWlnaHQoKSBjb25zdCB7IHJl
dHVybiBtX2hlaWdodDsgfQorICAgICAgICB2aXJ0dWFsIGludCBzcGVjaWFsSGVpZ2h0KCkgY29u
c3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KICAgICAgICAgdm9pZCBzZXRIZWlnaHQoaW50IGgpIHsg
bV9oZWlnaHQgPSBoOyB9CiAKICAgICAgICAgdmlydHVhbCBpbnQgc2VsZWN0aW9uVG9wKCk7Cklu
ZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9TVkdSb290SW5saW5lQm94LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9yZW5kZXJpbmcvU1ZHUm9vdElubGluZUJveC5oCShyZXZpc2lvbiA0NTMzMykKKysr
IFdlYkNvcmUvcmVuZGVyaW5nL1NWR1Jvb3RJbmxpbmVCb3guaAkod29ya2luZyBjb3B5KQpAQCAt
NTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdSb290SW5saW5l
Qm94KCkgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBpbnQgc3ZnQm94SGVpZ2h0KCkg
Y29uc3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KKyAgICB2aXJ0dWFsIGludCBzcGVjaWFsSGVpZ2h0
KCkgY29uc3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KICAgICB2b2lkIHNldEhlaWdodChpbnQgaCkg
eyBtX2hlaWdodCA9IGg7IH0KICAgICAKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUmVuZGVyT2Jq
ZWN0OjpQYWludEluZm8mLCBpbnQgdHgsIGludCB0eSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32110</attachid>
            <date>2009-06-30 23:22:45 -0700</date>
            <delta_ts>2009-07-06 00:23:14 -0700</delta_ts>
            <desc>patch: renamed to &apos;virtualHeight&apos;</desc>
            <filename>VirtualHeight.patch</filename>
            <type>text/plain</type>
            <size>7581</size>
            <attacher name="Roland Steiner">rolandsteiner</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTQyNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMDktMDYtMzAgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5l
ckBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGdlbmVyYWxpemUgdGhlIHNwZWNpYWwgaGVpZ2h0IHRyZWF0bWVudCBmb3IgU1ZHICh0
byBiZSByZS11c2VkIGZvciBydWJ5KToKKyAgICAgICAgICAgIHJlbmFtZWQgSW5saW5lQm94Ojpt
X2lzU1ZHIHRvIG1faGFzVmlydHVhbEhlaWdodAorICAgICAgICAgICAgcmVuYW1lZCBJbmxpbmVC
b3g6OmlzU1ZHKCkgdG8gaGFzVmlydHVhbEhlaWdodCgpCisgICAgICAgICAgICByZW5hbWVkIElu
bGluZUJveDo6c2V0SXNTVkcoKSB0byBzZXRIYXNWaXJ0dWFsSGVpZ2h0KCkKKworICAgICAgICAq
IHJlbmRlcmluZy9JbmxpbmVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lQm94Ojpo
ZWlnaHQpOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVCb3guaDoKKyAgICAgICAgKFdlYkNv
cmU6OklubGluZUJveDo6SW5saW5lQm94KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUJveDo6
aXNUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUJveDo6c2V0SXNUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OklubGluZUJveDo6aXNTVkdSb290SW5saW5lQm94KToKKyAgICAgICAgKFdl
YkNvcmU6OklubGluZUJveDo6aGFzVmlydHVhbEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bmxpbmVCb3g6OnNldEhhc1ZpcnR1YWxIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5l
Qm94Ojp2aXJ0dWFsSGVpZ2h0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHSW5saW5l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0lubGluZTo6Y3JlYXRlRmxvd0JveCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR0lubGluZVRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU1ZHSW5saW5lVGV4dDo6Y3JlYXRlVGV4dEJveCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclNWR1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
VGV4dDo6Y3JlYXRlUm9vdEJveCk6CisgICAgICAgICogcmVuZGVyaW5nL1NWR0lubGluZUZsb3dC
b3guaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0lubGluZUZsb3dCb3g6OnZpcnR1YWxIZWlnaHQp
OgorICAgICAgICAqIHJlbmRlcmluZy9TVkdJbmxpbmVUZXh0Qm94Lmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdJbmxpbmVUZXh0Qm94Ojp2aXJ0dWFsSGVpZ2h0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvU1ZHUm9vdElubGluZUJveC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUm9vdElubGluZUJv
eDo6dmlydHVhbEhlaWdodCk6CisKIDIwMDktMDYtMzAgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxl
LmNvbT4KIAogICAgICAgICBMYW5kIHNvbWUgY29kZSB0aGF0IGhhcyBhIGhvcGUgb2YgY29tcGls
aW5nLgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lQm94LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVCb3guY3BwCShyZXZpc2lvbiA0NTMzMykKKysrIFdl
YkNvcmUvcmVuZGVyaW5nL0lubGluZUJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDEwICs4
OCwxMCBAQCB2b2lkIElubGluZUJveDo6c2hvd1RyZWVGb3JUaGlzKCkgY29uc3QKIGludCBJbmxp
bmVCb3g6OmhlaWdodCgpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKFNWRykKLSAgICBpZiAoaXNTVkco
KSkKLSAgICAgICAgcmV0dXJuIHN2Z0JveEhlaWdodCgpOworICAgIGlmIChoYXNWaXJ0dWFsSGVp
Z2h0KCkpCisgICAgICAgIHJldHVybiB2aXJ0dWFsSGVpZ2h0KCk7CiAjZW5kaWYKLQorICAgIAog
ICAgIGlmIChyZW5kZXJlcigpLT5pc1RleHQoKSkKICAgICAgICAgcmV0dXJuIG1faXNUZXh0ID8g
cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCkuaGVpZ2h0KCkgOiAwOwogICAg
IGlmIChyZW5kZXJlcigpLT5pc0JveCgpICYmIHBhcmVudCgpKQpJbmRleDogV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lQm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
Qm94LmgJKHJldmlzaW9uIDQ1MzMzKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lQm94LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgICAgICAsIG1fZGly
dHkoZmFsc2UpCiAgICAgICAgICwgbV9leHRyYWN0ZWQoZmFsc2UpCiAjaWYgRU5BQkxFKFNWRykK
LSAgICAgICAgLCBtX2lzU1ZHKGZhbHNlKQorICAgICAgICAsIG1faGFzVmlydHVhbEhlaWdodChm
YWxzZSkKICNlbmRpZgogICAgICAgICAsIG1fZW5kc1dpdGhCcmVhayhmYWxzZSkKICAgICAgICAg
LCBtX2hhc1NlbGVjdGVkQ2hpbGRyZW4oZmFsc2UpCkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoK
ICAgICAgICAgLCBtX2RpcnR5KGRpcnR5KQogICAgICAgICAsIG1fZXh0cmFjdGVkKGV4dHJhY3Rl
ZCkKICNpZiBFTkFCTEUoU1ZHKQotICAgICAgICAsIG1faXNTVkcoZmFsc2UpCisgICAgICAgICwg
bV9oYXNWaXJ0dWFsSGVpZ2h0KGZhbHNlKQogI2VuZGlmCiAgICAgICAgICwgbV9lbmRzV2l0aEJy
ZWFrKGZhbHNlKQogICAgICAgICAsIG1faGFzU2VsZWN0ZWRDaGlsZHJlbihmYWxzZSkgICAKQEAg
LTEyOSwxOCArMTI5LDIyIEBAIHB1YmxpYzoKICNpZm5kZWYgTkRFQlVHCiAgICAgdm9pZCBzaG93
VHJlZUZvclRoaXMoKSBjb25zdDsKICNlbmRpZgorCisgICAgYm9vbCBpc1RleHQoKSBjb25zdCB7
IHJldHVybiBtX2lzVGV4dDsgfQorICAgIHZvaWQgc2V0SXNUZXh0KGJvb2wgYikgeyBtX2lzVGV4
dCA9IGI7IH0KKyAKICAgICB2aXJ0dWFsIGJvb2wgaXNJbmxpbmVCb3goKSB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0lubGluZUZsb3dCb3goKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0lubGluZVRleHRCb3goKSB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Jvb3RJbmxpbmVCb3goKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogI2lmIEVOQUJMRShTVkcpIAogICAgIHZpcnR1YWwgYm9vbCBpc1NWR1Jvb3RJbmxp
bmVCb3goKSB7IHJldHVybiBmYWxzZTsgfQotICAgIGJvb2wgaXNTVkcoKSBjb25zdCB7IHJldHVy
biBtX2lzU1ZHOyB9Ci0gICAgdm9pZCBzZXRJc1NWRyhib29sIGIpIHsgbV9pc1NWRyA9IGI7IH0K
LSNlbmRpZgotICAgIGJvb2wgaXNUZXh0KCkgY29uc3QgeyByZXR1cm4gbV9pc1RleHQ7IH0KLSAg
ICB2b2lkIHNldElzVGV4dChib29sIGIpIHsgbV9pc1RleHQgPSBiOyB9CiAKKyAgICBib29sIGhh
c1ZpcnR1YWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hhc1ZpcnR1YWxIZWlnaHQ7IH0KKyAg
ICB2b2lkIHNldEhhc1ZpcnR1YWxIZWlnaHQoKSB7IG1faGFzVmlydHVhbEhlaWdodCA9IHRydWU7
IH0KKyAgICB2aXJ0dWFsIGludCB2aXJ0dWFsSGVpZ2h0KCkgY29uc3QgeyBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsgcmV0dXJuIDA7IH0KKyNlbmRpZgorICAgIAogICAgIGJvb2wgaXNDb25zdHJ1Y3Rl
ZCgpIHsgcmV0dXJuIG1fY29uc3RydWN0ZWQ7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29uc3Ry
dWN0ZWQoKQogICAgIHsKQEAgLTI0MywxMSArMjQ3LDYgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gMDsKICAgICB9CiAKLXByb3RlY3RlZDoKLSNpZiBFTkFCTEUoU1ZHKQotICAgIHZpcnR1YWwg
aW50IHN2Z0JveEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSNlbmRpZgotCiBwcml2YXRl
OgogICAgIElubGluZUJveCogbV9uZXh0OyAvLyBUaGUgbmV4dCBlbGVtZW50IG9uIHRoZSBzYW1l
IGxpbmUgYXMgdXMuCiAgICAgSW5saW5lQm94KiBtX3ByZXY7IC8vIFRoZSBwcmV2aW91cyBlbGVt
ZW50IG9uIHRoZSBzYW1lIGxpbmUgYXMgdXMuCkBAIC0yNzIsMTAgKzI3MSw3IEBAIHByaXZhdGU6
CiBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2RpcnR5IDogMTsKICAgICBib29sIG1fZXh0cmFjdGVk
IDogMTsKLQotI2lmIEVOQUJMRShTVkcpCi0gICAgYm9vbCBtX2lzU1ZHIDogMTsKLSNlbmRpZgor
ICAgIGJvb2wgbV9oYXNWaXJ0dWFsSGVpZ2h0IDogMTsKIAogICAgIC8vIGZvciBSb290SW5saW5l
Qm94CiAgICAgYm9vbCBtX2VuZHNXaXRoQnJlYWsgOiAxOyAgLy8gV2hldGhlciB0aGUgbGluZSBl
bmRzIHdpdGggYSA8YnI+LgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHSW5saW5l
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdJbmxpbmUuY3Bw
CShyZXZpc2lvbiA0NTMzMykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0lubGluZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAgUmVuZGVyU1ZHSW5saW5lOjpSZW5k
ZXJTVkdJbmxpbmUoTm9kZSogbgogSW5saW5lRmxvd0JveCogUmVuZGVyU1ZHSW5saW5lOjpjcmVh
dGVGbG93Qm94KCkKIHsKICAgICBJbmxpbmVGbG93Qm94KiBib3ggPSBuZXcgKHJlbmRlckFyZW5h
KCkpIFNWR0lubGluZUZsb3dCb3godGhpcyk7Ci0gICAgYm94LT5zZXRJc1NWRyh0cnVlKTsKKyAg
ICBib3gtPnNldEhhc1ZpcnR1YWxIZWlnaHQoKTsKICAgICByZXR1cm4gYm94OwogfQogCkluZGV4
OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcAkocmV2aXNpb24gNDUz
MzMpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTM0LDcgKzEzNCw3IEBAIEZsb2F0UXVhZCBSZW5kZXJTVkdJbmxpbmVUZXh0
Ojpjb21wdXRlUmUKIElubGluZVRleHRCb3gqIFJlbmRlclNWR0lubGluZVRleHQ6OmNyZWF0ZVRl
eHRCb3goKQogewogICAgIElubGluZVRleHRCb3gqIGJveCA9IG5ldyAocmVuZGVyQXJlbmEoKSkg
U1ZHSW5saW5lVGV4dEJveCh0aGlzKTsKLSAgICBib3gtPnNldElzU1ZHKHRydWUpOworICAgIGJv
eC0+c2V0SGFzVmlydHVhbEhlaWdodCgpOwogICAgIHJldHVybiBib3g7CiB9CiAKSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1RleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNWR1RleHQuY3BwCShyZXZpc2lvbiA0NTMzMykKKysrIFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNWR1RleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Miw3ICs5Miw3
IEBAIHZvaWQgUmVuZGVyU1ZHVGV4dDo6bGF5b3V0KCkKIFJvb3RJbmxpbmVCb3gqIFJlbmRlclNW
R1RleHQ6OmNyZWF0ZVJvb3RCb3goKQogewogICAgIFJvb3RJbmxpbmVCb3gqIGJveCA9IG5ldyAo
cmVuZGVyQXJlbmEoKSkgU1ZHUm9vdElubGluZUJveCh0aGlzKTsKLSAgICBib3gtPnNldElzU1ZH
KHRydWUpOworICAgIGJveC0+c2V0SGFzVmlydHVhbEhlaWdodCgpOwogICAgIHJldHVybiBib3g7
CiB9CiAKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1NWR0lubGluZUZsb3dCb3guaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9TVkdJbmxpbmVGbG93Qm94LmgJKHJldmlzaW9uIDQ1
MzMzKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvU1ZHSW5saW5lRmxvd0JveC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVh
bCBpbnQgc3ZnQm94SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KKyAgICB2aXJ0
dWFsIGludCB2aXJ0dWFsSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KICAgICB2
b2lkIHNldEhlaWdodChpbnQgaCkgeyBtX2hlaWdodCA9IGg7IH0KIAogICAgIHZpcnR1YWwgdm9p
ZCBwYWludChSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGludCB0eCwgaW50IHR5KTsKSW5kZXg6
IFdlYkNvcmUvcmVuZGVyaW5nL1NWR0lubGluZVRleHRCb3guaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3JlbmRlcmluZy9TVkdJbmxpbmVUZXh0Qm94LmgJKHJldmlzaW9uIDQ1MzMzKQorKysgV2Vi
Q29yZS9yZW5kZXJpbmcvU1ZHSW5saW5lVGV4dEJveC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3
ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFNWR0lu
bGluZVRleHRCb3goUmVuZGVyT2JqZWN0KiBvYmopOwogCi0gICAgICAgIHZpcnR1YWwgaW50IHN2
Z0JveEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9CisgICAgICAgIHZpcnR1YWwg
aW50IHZpcnR1YWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hlaWdodDsgfQogICAgICAgICB2
b2lkIHNldEhlaWdodChpbnQgaCkgeyBtX2hlaWdodCA9IGg7IH0KIAogICAgICAgICB2aXJ0dWFs
IGludCBzZWxlY3Rpb25Ub3AoKTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1NWR1Jvb3RJbmxp
bmVCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9TVkdSb290SW5saW5lQm94
LmgJKHJldmlzaW9uIDQ1MzMzKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvU1ZHUm9vdElubGluZUJv
eC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgYm9vbCBpc1NWR1Jvb3RJbmxpbmVCb3goKSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0
dWFsIGludCBzdmdCb3hIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hlaWdodDsgfQorICAgIHZp
cnR1YWwgaW50IHZpcnR1YWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hlaWdodDsgfQogICAg
IHZvaWQgc2V0SGVpZ2h0KGludCBoKSB7IG1faGVpZ2h0ID0gaDsgfQogICAgIAogICAgIHZpcnR1
YWwgdm9pZCBwYWludChSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGludCB0eCwgaW50IHR5KTsK
</data>
<flag name="review"
          id="16622"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>