<?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>16095</bug_id>
          
          <creation_ts>2007-11-22 13:14:29 -0800</creation_ts>
          <short_desc>Move GraphicsContextPrivate to its own header file.</short_desc>
          <delta_ts>2008-03-10 09:30:18 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Marc-Antoine Ruel">maruel</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alp</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>62014</commentid>
    <comment_count>0</comment_count>
    <who name="Marc-Antoine Ruel">maruel</who>
    <bug_when>2007-11-22 13:14:29 -0800</bug_when>
    <thetext>By moving class GraphicsContextPrivate to its own header file, in conjunction with GraphicsContext::createGraphicsContextPrivate and GraphicsContext::destroyGraphicsContextPrivate use, it is easier to subclass GraphicsContextPrivate and lesser the necessity of GraphicsContext::m_data.

Note: I didn&apos;t update the various platform projects (xcode, vcproj, etc) They need to add WebCore/platform/graphics/GraphicsContextPrivate.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62016</commentid>
    <comment_count>1</comment_count>
      <attachid>17449</attachid>
    <who name="Marc-Antoine Ruel">maruel</who>
    <bug_when>2007-11-22 13:18:10 -0800</bug_when>
    <thetext>Created attachment 17449
patch that creates WebCore/platform/graphics/GraphicsContextPrivate.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62039</commentid>
    <comment_count>2</comment_count>
      <attachid>17449</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-11-22 19:31:59 -0800</bug_when>
    <thetext>Comment on attachment 17449
patch that creates WebCore/platform/graphics/GraphicsContextPrivate.h

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65745</commentid>
    <comment_count>3</comment_count>
      <attachid>18192</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-30 07:07:45 -0800</bug_when>
    <thetext>Created attachment 18192
Updated patch

This is an updated version of the patch with added header guards, corrected includes and fixed whitespace.

The added feature seems unusable since, even if the classes are subclassed, there is still static code instantiating the base class in GraphicsContext. In light of this, I think this patch is incomplete or wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67129</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-13 11:32:20 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; The added feature seems unusable since, even if the classes are subclassed,
&gt; there is still static code instantiating the base class in GraphicsContext. In
&gt; light of this, I think this patch is incomplete or wrong.

Sure, this patch just moves the class to a separate header file -- it doesn&apos;t do what&apos;s needed to create a new feature. So I&apos;m not sure it&apos;s all that valuable by itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67366</commentid>
    <comment_count>5</comment_count>
    <who name="Marc-Antoine Ruel">maruel</who>
    <bug_when>2008-01-16 09:54:18 -0800</bug_when>
    <thetext>I wasn&apos;t clear enough, my bad. I&apos;ll try to explain better this time.

There is 2 goals:
- Add access to the current GraphicsContextState stack to GraphicsContextPlatformPrivate, by having GraphicsContextPlatformPrivate inherits from GraphicsContextPrivate.
- While at it, remove a memory allocation, clean things up.

There was a confusion about subclassing. I never meant to subclass GraphicsContext but to add the possibility to subclass GraphicsContextPrivate. This subclassing is not about adding anything virtual but really adding all the GraphicsContext private stuff in one place instead of 2 differents objects (GraphicsContextPrivate and GraphicsContextPlatformPrivate). Hence, GraphicsContextPlatformPrivate could really just be subclass of GraphicsContextPrivate. This is not an obligation with this patch though.

This also removes the need of m_data. Since the GraphicsContext constructor could instantiate a subclass of GraphicsContextPrivate and set its pointer in m_common, the need of a second memory allocation (m_data) disapear.

Frankly, I&apos;d rather not modify the way the ports currently use m_data _in this patch_ and instead leave the m_data variable there. At worst it&apos;s a sizeof(void*) bytes lost.

This indeeds deprecate m_data but I didn&apos;t want to play in every port to modify their use of m_data. This patch is the first step. I can&apos;t build all the supported platforms so I&apos;m not fond of modifying platforms I can&apos;t test. (!) All of Cairo, GC, Qt, Wx and Win uses m_data. Luckily they all use a fairly simple GraphicsContextPlatformPrivate class which would be easy to convert to a GraphicsContextPrivate subclass.

Do you prefer me to add documentation to m_data about its deprecation in this patch?

I hope it clears things up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67367</commentid>
    <comment_count>6</comment_count>
      <attachid>18192</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-01-16 09:59:27 -0800</bug_when>
    <thetext>Comment on attachment 18192
Updated patch

This looks good to me (I&apos;m always a fan of breaking classes out into their own files).  I&apos;ll leave this for darin/alp to comment on before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67368</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-01-16 09:59:59 -0800</bug_when>
    <thetext>CCing darin and alp in case they have comments before this lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67837</commentid>
    <comment_count>8</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-01-21 04:00:32 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; CCing darin and alp in case they have comments before this lands.
&gt; 

Fine by me as long as a comment is added alongside m_data noting that it&apos;s deprecated. We shouldn&apos;t keep two ways of keeping custom data in SVN for too long and it should be made clear that m_data is on its way out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73205</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-03-10 09:30:18 -0700</bug_when>
    <thetext>Committed revision 30933.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17449</attachid>
            <date>2007-11-22 13:18:10 -0800</date>
            <delta_ts>2007-12-30 07:07:45 -0800</delta_ts>
            <desc>patch that creates WebCore/platform/graphics/GraphicsContextPrivate.h</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>5118</size>
            <attacher name="Marc-Antoine Ruel">maruel</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzk3MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDctMTEtMjIgIE1hcmMtQW50b2luZSBSdWVsICA8bWFydWVsQGdt
YWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBCdWcgMTYwOTU6IE1vdmUgR3JhcGhpY3NDb250ZXh0UHJpdmF0ZSB0byBpdHMgb3duIGhlYWRl
ciBmaWxlLgorCisgICAgICAgIE1vdmVzIEdyYXBoaWNzQ29udGV4dFN0YXRlIGFuZCBHcmFwaGlj
c0NvbnRleHRQcml2YXRlIHRvIGl0cworICAgICAgICBvd24gaGVhZGVyCisKKyAgICAgICAgV0FS
TklORzogTk8gVEVTVCBDQVNFUyBBRERFRCBPUiBDSEFOR0VECisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dFByaXZhdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRTdGF0ZTo6R3JhcGhpY3NDb250ZXh0U3RhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0UHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0UHJpdmF0ZSk6CisK
IDIwMDctMTEtMjIgIEFscCBUb2tlciAgPGFscEBhdG9rZXIuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IE1hcmsgUm93ZS4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5jcHAJKHJldmlzaW9uIDI3OTcxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpbmNsdWRlICJCaWRpUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJGb250LmgiCisjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIlRleHRTdHlsZS5oIgog
CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtNzIsNDQgKzczLDYgQEAgcHJpdmF0ZToKICAgICBp
bnQgbV9vZmZzZXQ7CiB9OwogCi1zdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUgewotICAgIEdy
YXBoaWNzQ29udGV4dFN0YXRlKCkgCi0gICAgOiBzdHJva2VTdHlsZShTb2xpZFN0cm9rZSkKLSAg
ICAsIHN0cm9rZVRoaWNrbmVzcygwKQotICAgICwgc3Ryb2tlQ29sb3IoQ29sb3I6OmJsYWNrKQot
ICAgICwgZmlsbENvbG9yKENvbG9yOjpibGFjaykKLSAgICAsIHRleHREcmF3aW5nTW9kZShjVGV4
dEZpbGwpCi0gICAgLCBwYWludGluZ0Rpc2FibGVkKGZhbHNlKQotICAgIHt9Ci0gICAgCi0gICAg
Rm9udCBmb250OwotICAgIFN0cm9rZVN0eWxlIHN0cm9rZVN0eWxlOwotICAgIGZsb2F0IHN0cm9r
ZVRoaWNrbmVzczsKLSAgICBDb2xvciBzdHJva2VDb2xvcjsKLSAgICBDb2xvciBmaWxsQ29sb3I7
Ci0gICAgaW50IHRleHREcmF3aW5nTW9kZTsKLSAgICBib29sIHBhaW50aW5nRGlzYWJsZWQ7Ci19
OwotICAgICAgICAKLWNsYXNzIEdyYXBoaWNzQ29udGV4dFByaXZhdGUgewotcHVibGljOgotICAg
IEdyYXBoaWNzQ29udGV4dFByaXZhdGUoKTsKLSAgICAKLSAgICBHcmFwaGljc0NvbnRleHRTdGF0
ZSBzdGF0ZTsKLSAgICBWZWN0b3I8R3JhcGhpY3NDb250ZXh0U3RhdGU+IHN0YWNrOwotICAgIFZl
Y3RvcjxJbnRSZWN0PiBtX2ZvY3VzUmluZ1JlY3RzOwotICAgIGludCBtX2ZvY3VzUmluZ1dpZHRo
OwotICAgIGludCBtX2ZvY3VzUmluZ09mZnNldDsKLSAgICBib29sIG1fdXBkYXRpbmdDb250cm9s
VGludHM7Ci19OwotCi1HcmFwaGljc0NvbnRleHRQcml2YXRlOjpHcmFwaGljc0NvbnRleHRQcml2
YXRlKCkKLSAgICA6IG1fZm9jdXNSaW5nV2lkdGgoMCkKLSAgICAsIG1fZm9jdXNSaW5nT2Zmc2V0
KDApCi0gICAgLCBtX3VwZGF0aW5nQ29udHJvbFRpbnRzKGZhbHNlKQotewotfQotCiBHcmFwaGlj
c0NvbnRleHRQcml2YXRlKiBHcmFwaGljc0NvbnRleHQ6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dFBy
aXZhdGUoKQogewogICAgIHJldHVybiBuZXcgR3JhcGhpY3NDb250ZXh0UHJpdmF0ZTsKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0UHJpdmF0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0UHJpdmF0
ZS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHRQcml2YXRlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIHN0
cnVjdCBHcmFwaGljc0NvbnRleHRTdGF0ZSB7CisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRl
KCkgCisgICAgICAgIDogc3Ryb2tlU3R5bGUoU29saWRTdHJva2UpCisgICAgICAgICwgc3Ryb2tl
VGhpY2tuZXNzKDApCisgICAgICAgICwgc3Ryb2tlQ29sb3IoQ29sb3I6OmJsYWNrKQorICAgICAg
ICAsIGZpbGxDb2xvcihDb2xvcjo6YmxhY2spCisgICAgICAgICwgdGV4dERyYXdpbmdNb2RlKGNU
ZXh0RmlsbCkKKyAgICAgICAgLCBwYWludGluZ0Rpc2FibGVkKGZhbHNlKQorICAgICAgICB7fQor
ICAgICAgICAKKyAgICAgICAgRm9udCBmb250OworICAgICAgICBTdHJva2VTdHlsZSBzdHJva2VT
dHlsZTsKKyAgICAgICAgZmxvYXQgc3Ryb2tlVGhpY2tuZXNzOworICAgICAgICBDb2xvciBzdHJv
a2VDb2xvcjsKKyAgICAgICAgQ29sb3IgZmlsbENvbG9yOworICAgICAgICBpbnQgdGV4dERyYXdp
bmdNb2RlOworICAgICAgICBib29sIHBhaW50aW5nRGlzYWJsZWQ7CisgICAgfTsKKyAgICAgICAg
ICAgIAorICAgIGNsYXNzIEdyYXBoaWNzQ29udGV4dFByaXZhdGUgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgR3JhcGhpY3NDb250ZXh0UHJpdmF0ZSgpCisgICAgICAgIDogbV9mb2N1c1JpbmdXaWR0
aCgwKQorICAgICAgICAsIG1fZm9jdXNSaW5nT2Zmc2V0KDApCisgICAgICAgICwgbV91cGRhdGlu
Z0NvbnRyb2xUaW50cyhmYWxzZSkKKyAgICAgICAge30KKworICAgICAgICBHcmFwaGljc0NvbnRl
eHRTdGF0ZSBzdGF0ZTsKKyAgICAgICAgVmVjdG9yPEdyYXBoaWNzQ29udGV4dFN0YXRlPiBzdGFj
azsKKyAgICAgICAgVmVjdG9yPEludFJlY3Q+IG1fZm9jdXNSaW5nUmVjdHM7CisgICAgICAgIGlu
dCBtX2ZvY3VzUmluZ1dpZHRoOworICAgICAgICBpbnQgbV9mb2N1c1JpbmdPZmZzZXQ7CisgICAg
ICAgIGJvb2wgbV91cGRhdGluZ0NvbnRyb2xUaW50czsKKyAgICB9OworCit9CgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dFByaXZh
dGUuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCk5hbWU6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoK
</data>
<flag name="review"
          id="7491"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18192</attachid>
            <date>2007-12-30 07:07:45 -0800</date>
            <delta_ts>2008-01-16 09:59:27 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>updated-private.patch</filename>
            <type>text/plain</type>
            <size>5598</size>
            <attacher name="Alp Toker">alp</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyOTAzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDctMTItMzAgIE1hcmMtQW50b2luZSBSdWVsICA8bWFydWVsQGdt
YWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5NQorICAgICAgICBN
b3ZlIEdyYXBoaWNzQ29udGV4dFByaXZhdGUgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KKworICAg
ICAgICBNb3ZlcyBHcmFwaGljc0NvbnRleHRTdGF0ZSBhbmQgR3JhcGhpY3NDb250ZXh0UHJpdmF0
ZSB0byBpdHMKKyAgICAgICAgb3duIGhlYWRlcgorCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRQcml2
YXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0U3RhdGU6Okdy
YXBoaWNzQ29udGV4dFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFBy
aXZhdGU6OkdyYXBoaWNzQ29udGV4dFByaXZhdGUpOgorCiAyMDA3LTEyLTMwICBMdWNhIEJydW5v
ICA8bGV0aGFsbWFuODhAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFscCBUb2tl
ci4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gMjkw
MzYpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0zODU3LDYgKzM4NTcsMTAgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxG
aWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEdyYXBoaWNzQ29u
dGV4dFByaXZhdGUuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KIAkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xHcmFwaGljc1R5cGVzLmNwcCINCiAJ
CQkJCT4NCiAJCQkJPC9GaWxlPg0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5jcHAJKHJldmlzaW9uIDI5MDM2KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsy
Nyw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAKICNpbmNsdWRlICJCaWRpUmVz
b2x2ZXIuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAi
Rm9udC5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtNzEsNDQgKzcyLDYgQEAgcHJpdmF0
ZToKICAgICBpbnQgbV9vZmZzZXQ7CiB9OwogCi1zdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUg
ewotICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlKCkgCi0gICAgOiBzdHJva2VTdHlsZShTb2xpZFN0
cm9rZSkKLSAgICAsIHN0cm9rZVRoaWNrbmVzcygwKQotICAgICwgc3Ryb2tlQ29sb3IoQ29sb3I6
OmJsYWNrKQotICAgICwgZmlsbENvbG9yKENvbG9yOjpibGFjaykKLSAgICAsIHRleHREcmF3aW5n
TW9kZShjVGV4dEZpbGwpCi0gICAgLCBwYWludGluZ0Rpc2FibGVkKGZhbHNlKQotICAgIHt9Ci0g
ICAgCi0gICAgRm9udCBmb250OwotICAgIFN0cm9rZVN0eWxlIHN0cm9rZVN0eWxlOwotICAgIGZs
b2F0IHN0cm9rZVRoaWNrbmVzczsKLSAgICBDb2xvciBzdHJva2VDb2xvcjsKLSAgICBDb2xvciBm
aWxsQ29sb3I7Ci0gICAgaW50IHRleHREcmF3aW5nTW9kZTsKLSAgICBib29sIHBhaW50aW5nRGlz
YWJsZWQ7Ci19OwotICAgICAgICAKLWNsYXNzIEdyYXBoaWNzQ29udGV4dFByaXZhdGUgewotcHVi
bGljOgotICAgIEdyYXBoaWNzQ29udGV4dFByaXZhdGUoKTsKLSAgICAKLSAgICBHcmFwaGljc0Nv
bnRleHRTdGF0ZSBzdGF0ZTsKLSAgICBWZWN0b3I8R3JhcGhpY3NDb250ZXh0U3RhdGU+IHN0YWNr
OwotICAgIFZlY3RvcjxJbnRSZWN0PiBtX2ZvY3VzUmluZ1JlY3RzOwotICAgIGludCBtX2ZvY3Vz
UmluZ1dpZHRoOwotICAgIGludCBtX2ZvY3VzUmluZ09mZnNldDsKLSAgICBib29sIG1fdXBkYXRp
bmdDb250cm9sVGludHM7Ci19OwotCi1HcmFwaGljc0NvbnRleHRQcml2YXRlOjpHcmFwaGljc0Nv
bnRleHRQcml2YXRlKCkKLSAgICA6IG1fZm9jdXNSaW5nV2lkdGgoMCkKLSAgICAsIG1fZm9jdXNS
aW5nT2Zmc2V0KDApCi0gICAgLCBtX3VwZGF0aW5nQ29udHJvbFRpbnRzKGZhbHNlKQotewotfQot
CiBHcmFwaGljc0NvbnRleHRQcml2YXRlKiBHcmFwaGljc0NvbnRleHQ6OmNyZWF0ZUdyYXBoaWNz
Q29udGV4dFByaXZhdGUoKQogewogICAgIHJldHVybiBuZXcgR3JhcGhpY3NDb250ZXh0UHJpdmF0
ZTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0UHJpdmF0
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0UHJpdmF0ZS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHRQcml2YXRlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBHcmFwaGljc0NvbnRl
eHRQcml2YXRlX2gKKyNkZWZpbmUgR3JhcGhpY3NDb250ZXh0UHJpdmF0ZV9oCisKKyNpbmNsdWRl
ICJGb250LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIHN0cnVjdCBHcmFwaGljc0Nv
bnRleHRTdGF0ZSB7CisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlKCkKKyAgICAgICAgOiBz
dHJva2VTdHlsZShTb2xpZFN0cm9rZSkKKyAgICAgICAgLCBzdHJva2VUaGlja25lc3MoMCkKKyAg
ICAgICAgLCBzdHJva2VDb2xvcihDb2xvcjo6YmxhY2spCisgICAgICAgICwgZmlsbENvbG9yKENv
bG9yOjpibGFjaykKKyAgICAgICAgLCB0ZXh0RHJhd2luZ01vZGUoY1RleHRGaWxsKQorICAgICAg
ICAsIHBhaW50aW5nRGlzYWJsZWQoZmFsc2UpCisgICAgICAgIHt9CisKKyAgICAgICAgRm9udCBm
b250OworICAgICAgICBTdHJva2VTdHlsZSBzdHJva2VTdHlsZTsKKyAgICAgICAgZmxvYXQgc3Ry
b2tlVGhpY2tuZXNzOworICAgICAgICBDb2xvciBzdHJva2VDb2xvcjsKKyAgICAgICAgQ29sb3Ig
ZmlsbENvbG9yOworICAgICAgICBpbnQgdGV4dERyYXdpbmdNb2RlOworICAgICAgICBib29sIHBh
aW50aW5nRGlzYWJsZWQ7CisgICAgfTsKKworICAgIGNsYXNzIEdyYXBoaWNzQ29udGV4dFByaXZh
dGUgeworICAgIHB1YmxpYzoKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0UHJpdmF0ZSgpCisgICAg
ICAgIDogbV9mb2N1c1JpbmdXaWR0aCgwKQorICAgICAgICAsIG1fZm9jdXNSaW5nT2Zmc2V0KDAp
CisgICAgICAgICwgbV91cGRhdGluZ0NvbnRyb2xUaW50cyhmYWxzZSkKKyAgICAgICAge30KKwor
ICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSBzdGF0ZTsKKyAgICAgICAgVmVjdG9yPEdyYXBo
aWNzQ29udGV4dFN0YXRlPiBzdGFjazsKKyAgICAgICAgVmVjdG9yPEludFJlY3Q+IG1fZm9jdXNS
aW5nUmVjdHM7CisgICAgICAgIGludCBtX2ZvY3VzUmluZ1dpZHRoOworICAgICAgICBpbnQgbV9m
b2N1c1JpbmdPZmZzZXQ7CisgICAgICAgIGJvb2wgbV91cGRhdGluZ0NvbnRyb2xUaW50czsKKyAg
ICB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBHcmFwaGljc0NvbnRl
eHRQcml2YXRlX2gK
</data>
<flag name="review"
          id="8086"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>