<?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>23462</bug_id>
          
          <creation_ts>2009-01-21 14:32:59 -0800</creation_ts>
          <short_desc>Add RGB -&gt; CMYK conversion algorithm</short_desc>
          <delta_ts>2009-02-05 15:25:58 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</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="Scott Violet">sky</reporter>
          <assigned_to name="Scott Violet">sky</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>106504</commentid>
    <comment_count>0</comment_count>
    <who name="Scott Violet">sky</who>
    <bug_when>2009-01-21 14:32:59 -0800</bug_when>
    <thetext>CanvasStyle currently only handles RGB -&gt; CMYK conversion for CG and QT. We should add a fallback algorithm for use on other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106510</commentid>
    <comment_count>1</comment_count>
      <attachid>26907</attachid>
    <who name="Scott Violet">sky</who>
    <bug_when>2009-01-21 14:44:37 -0800</bug_when>
    <thetext>Created attachment 26907
Patch for RGB -&gt; CMYK converter

As this converter gives different results than the CG one, at least one layout test produces different results. I was tempted to modify shouldBe in fast/js/resources/js-test-pre.js to accept another parameter that gives another possible accepted value, but wanted to make sure you want that before writing it. Let me know if you want me to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106511</commentid>
    <comment_count>2</comment_count>
      <attachid>26907</attachid>
    <who name="">mitz</who>
    <bug_when>2009-01-21 14:52:13 -0800</bug_when>
    <thetext>Comment on attachment 26907
Patch for RGB -&gt; CMYK converter

&gt; +    int r = static_cast&lt;int&gt;(255 * (colors * (1 - m_cyan)));

This is suspicious, as it maps only one value to 255. Shouldn&apos;t nextafterf(256, 0) be used instead of 255?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106516</commentid>
    <comment_count>3</comment_count>
    <who name="Scott Violet">sky</who>
    <bug_when>2009-01-21 15:10:13 -0800</bug_when>
    <thetext>I must be missing something. colors is only 0-1 so that I believe we want 255 here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106519</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-01-21 15:18:56 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; I must be missing something. colors is only 0-1 so that I believe we want 255
&gt; here.

I think you want to divide the interval [0,1] into 255 equal intervals, and map the interval [254/255, 1] to 255. However, static_cast&lt;int&gt;(255 * (colors * (1 - m_cyan))) will map [254/255, 1) to 254 and only the value 1 will map to 255.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106520</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-01-21 15:20:53 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; I must be missing something. colors is only 0-1 so that I believe we want 255
&gt; &gt; here.
&gt; 
&gt; I think you want to divide the interval [0,1] into 255 equal intervals, and map
&gt; the interval [254/255, 1] to 255. However, static_cast&lt;int&gt;(255 * (colors * (1
&gt; - m_cyan))) will map [254/255, 1) to 254 and only the value 1 will map to 255.

Sorry, I meant to write:
You want to divide the interval [0, 1] into 256 equal intervals, and map the interval [255/256, 1] to 255.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106534</commentid>
    <comment_count>6</comment_count>
    <who name="Scott Violet">sky</who>
    <bug_when>2009-01-21 16:14:45 -0800</bug_when>
    <thetext>I&apos;m still confused.

If I have a value x in the range [0-1] and need to map that to the range [0-n], then I multiply x by n. Perhaps I&apos;m not understanding your syntax though. Could you post what you think the code should look like?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106574</commentid>
    <comment_count>7</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-01-21 21:59:17 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; I&apos;m still confused.
&gt; 
&gt; If I have a value x in the range [0-1] and need to map that to the range [0-n],
&gt; then I multiply x by n. Perhaps I&apos;m not understanding your syntax though. Could
&gt; you post what you think the code should look like?

Multiplication by n is correct if you are mapping floating point numbers to floating point numbers, but your mapping is to the set of integers {0, 1, ..., n}. static_cast&lt;int&gt;(n * x) truncates the result of the multiplication, meaning the only x value mapping to n is 1. I think static_cast&lt;int&gt;(nextafter(n, 0) * x) would map intervals of equal length to each integer in the set.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107231</commentid>
    <comment_count>8</comment_count>
      <attachid>27080</attachid>
    <who name="Scott Violet">sky</who>
    <bug_when>2009-01-27 12:20:38 -0800</bug_when>
    <thetext>Created attachment 27080
Patch for RGB -&gt; CMYK converter

macdome showed me the error of my ways. New patch is attached. I went with nextafter instead of nextafterf as nextafterf doesn&apos;t give the behavior you mentioned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107295</commentid>
    <comment_count>9</comment_count>
      <attachid>27080</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-27 23:19:16 -0800</bug_when>
    <thetext>Comment on attachment 27080
Patch for RGB -&gt; CMYK converter

The cmykToRGB function should at least ASSERT that m_type is CMYK.  Another way would be to make it a free function which took the 4 arguments, but this is probably less error-prone as is (if you add the ASSERT.

I&apos;ll mark your first patch as obsolete since this one supersedes it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107296</commentid>
    <comment_count>10</comment_count>
      <attachid>27080</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-27 23:20:16 -0800</bug_when>
    <thetext>Comment on attachment 27080
Patch for RGB -&gt; CMYK converter

Oh, you also can leave the &quot;Reviewed by nobody (OOPS!). line in when posting for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107325</commentid>
    <comment_count>11</comment_count>
      <attachid>27105</attachid>
    <who name="Scott Violet">sky</who>
    <bug_when>2009-01-28 08:05:36 -0800</bug_when>
    <thetext>Created attachment 27105
Patch for RGB -&gt; CMYK converter

Updated patch adding ASSERT and reviewd by nobody.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107436</commentid>
    <comment_count>12</comment_count>
      <attachid>27105</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-28 16:41:02 -0800</bug_when>
    <thetext>Comment on attachment 27105
Patch for RGB -&gt; CMYK converter

Yeah, mitz should probably complete the review here.  I&apos;m unsure if the alpha conversion is correct either.  I think that needs to use nextafter(256,0) as well.  If that&apos;s true, that&apos;s simple and can be corrected when landing.  Thanks for the update!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107443</commentid>
    <comment_count>13</comment_count>
      <attachid>27105</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-01-28 18:13:07 -0800</bug_when>
    <thetext>Comment on attachment 27105
Patch for RGB -&gt; CMYK converter

&gt; Index: WebCore/ChangeLog
&gt; ===================================================================
&gt; --- WebCore/ChangeLog	(revision 40097)
&gt; +++ WebCore/ChangeLog	(working copy)
&gt; @@ -1,3 +1,19 @@
&gt; +2009-01-21  Scott Violet  &lt;sky@google.com&gt;
&gt; +
&gt; +        Reviewed by nobody (OOPS!)
&gt; +
&gt; +	Bug 23462: Add RGB -&gt; CMYK conversion algorithm
&gt; +	&lt;https://bugs.webkit.org/show_bug.cgi?id=23462&gt;
&gt; +
&gt; +	Adds an RGB -&gt; CMYK converter. This isn&apos;t perfect, but better than
&gt; +	nothing.

Please remove tabs.  Doesn&apos;t this actually add a cmyk -&gt; rgb conversion?

&gt;  
&gt; +Color CanvasStyle::cmykToRGB() const
&gt; +{
&gt; +    ASSERT(m_type == CMYKA);
&gt; +    double colors = 1 - m_black;
&gt; +    int r = static_cast&lt;int&gt;(nextafter(256, 0) * (colors * (1 - m_cyan)));
&gt; +    int g = static_cast&lt;int&gt;(nextafter(256, 0) * (colors * (1 - m_magenta)));
&gt; +    int b = static_cast&lt;int&gt;(nextafter(256, 0) * (colors * (1 - m_yellow)));
&gt; +    return Color(r, g, b, static_cast&lt;int&gt;(m_alpha * 255));
&gt; +}

This seems much more suited to be a Color constructor.

r-.  Please make the function a color constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107526</commentid>
    <comment_count>14</comment_count>
    <who name="Scott Violet">sky</who>
    <bug_when>2009-01-29 08:34:16 -0800</bug_when>
    <thetext>Just to be sure I understand what you&apos;re after. You&apos;re asking for a

Color(float c, float m, float y, float k, float a)

constructor, right? And this would have the code that I currently have in CanvasStyle::cmykToRGB, right?

The CMYK color conversion seems platform specific though, are you sure you want to hoist this into Color?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107536</commentid>
    <comment_count>15</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-01-29 10:17:57 -0800</bug_when>
    <thetext>Even if it is unused on some platforms at the moment I see no reason not to do in Color.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107545</commentid>
    <comment_count>16</comment_count>
      <attachid>27152</attachid>
    <who name="Scott Violet">sky</who>
    <bug_when>2009-01-29 11:09:24 -0800</bug_when>
    <thetext>Created attachment 27152
Adds Color(CMYKA) constructor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108475</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-02-05 12:14:42 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/40673</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108495</commentid>
    <comment_count>18</comment_count>
      <attachid>27360</attachid>
    <who name="Scott Violet">sky</who>
    <bug_when>2009-02-05 13:14:03 -0800</bug_when>
    <thetext>Created attachment 27360
Last patch had a bug, it used setFillColor when it should have used setStrokeColor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108533</commentid>
    <comment_count>19</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-02-05 15:25:49 -0800</bug_when>
    <thetext>Extra fix landed as http://trac.webkit.org/changeset/40688.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26907</attachid>
            <date>2009-01-21 14:44:37 -0800</date>
            <delta_ts>2009-01-27 23:19:26 -0800</delta_ts>
            <desc>Patch for RGB -&gt; CMYK converter</desc>
            <filename>23462.patch</filename>
            <type>text/plain</type>
            <size>3885</size>
            <attacher name="Scott Violet">sky</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDA5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMDktMDEtMjEgIFNjb3R0IFZpb2xldCAgPHNreUBnb29nbGUuY29t
PgorCisJQnVnIDIzNDYyOiBBZGQgUkdCIC0+IENNWUsgY29udmVyc2lvbiBhbGdvcml0aG0KKwk8
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDYyPgorCisJQWRkcyBh
biBSR0IgLT4gQ01ZSyBjb252ZXJ0ZXIuIFRoaXMgaXNuJ3QgcGVyZmVjdCwgYnV0IGJldHRlciB0
aGFuCisJbm90aGluZy4KKwkKKyAgICAgICAgKiBodG1sL0NhbnZhc1N0eWxlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNhbnZhc1N0eWxlOjphcHBseVN0cm9rZUNvbG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhbnZhc1N0eWxlOjphcHBseUZpbGxDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpD
YW52YXNTdHlsZTo6Y215a1RvUkdCKToKKyAgICAgICAgKiBodG1sL0NhbnZhc1N0eWxlLmg6CisK
IDIwMDktMDEtMTYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEp1c3RpbiBHYXJjaWEuCkluZGV4OiBXZWJDb3JlL2h0bWwvQ2FudmFzU3R5bGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9DYW52YXNTdHlsZS5jcHAJKHJldmlzaW9u
IDQwMDg4KQorKysgV2ViQ29yZS9odG1sL0NhbnZhc1N0eWxlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTM2LDggKzEzNiw2IEBAIHZvaWQgQ2FudmFzU3R5bGU6OmFwcGx5U3Ryb2tlQ29sb3IoR3Jh
cGgKICAgICAgICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKENvbG9yKG1fcmVkLCBtX2dy
ZWVuLCBtX2JsdWUsIG1fYWxwaGEpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IENNWUtBOiB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdoIHBsYXRmb3Jt
LWluZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCi0gICAgICAgICAgICAvLyBXZSdsbCBu
ZWVkIGEgZmFuY2llciBDb2xvciBhYnN0cmFjdGlvbiB0byBzdXBwb3J0IENZTUtBIGNvcnJlY3Rs
eQogI2lmIFBMQVRGT1JNKENHKQogICAgICAgICAgICAgQ0dDb250ZXh0U2V0Q01ZS1N0cm9rZUNv
bG9yKGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLCBtX2N5YW4sIG1fbWFnZW50YSwgbV95ZWxs
b3csIG1fYmxhY2ssIG1fYWxwaGEpOwogI2VsaWYgUExBVEZPUk0oUVQpCkBAIC0xNDYsOCArMTQ0
LDggQEAgdm9pZCBDYW52YXNTdHlsZTo6YXBwbHlTdHJva2VDb2xvcihHcmFwaAogICAgICAgICAg
ICAgY2xyLnNldENteWtGKG1fY3lhbiwgbV9tYWdlbnRhLCBtX3llbGxvdywgbV9ibGFjaywgbV9h
bHBoYSk7CiAgICAgICAgICAgICBjdXJyZW50UGVuLnNldENvbG9yKGNscik7CiAgICAgICAgICAg
ICBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+c2V0UGVuKGN1cnJlbnRQZW4pOwotI2VsaWYg
UExBVEZPUk0oQ0FJUk8pCi0gICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworI2Vsc2UKKyAg
ICAgICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKGNteWtUb1JHQigpKTsKICNlbmRpZgog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTE5Nyw4ICsxOTUsNiBAQCB2b2lkIENh
bnZhc1N0eWxlOjphcHBseUZpbGxDb2xvcihHcmFwaGljCiAgICAgICAgICAgICBjb250ZXh0LT5z
ZXRGaWxsQ29sb3IoQ29sb3IobV9yZWQsIG1fZ3JlZW4sIG1fYmx1ZSwgbV9hbHBoYSkpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ01ZS0E6IHsKLSAgICAgICAgICAgIC8vIEZJ
WE1FOiBEbyB0aGlzIHRocm91Z2ggcGxhdGZvcm0taW5kZXBlbmRlbnQgR3JhcGhpY3NDb250ZXh0
IEFQSS4KLSAgICAgICAgICAgIC8vIFdlJ2xsIG5lZWQgYSBmYW5jaWVyIENvbG9yIGFic3RyYWN0
aW9uIHRvIHN1cHBvcnQgQ1lNS0EgY29ycmVjdGx5CiAjaWYgUExBVEZPUk0oQ0cpCiAgICAgICAg
ICAgICBDR0NvbnRleHRTZXRDTVlLRmlsbENvbG9yKGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgp
LCBtX2N5YW4sIG1fbWFnZW50YSwgbV95ZWxsb3csIG1fYmxhY2ssIG1fYWxwaGEpOwogI2VsaWYg
UExBVEZPUk0oUVQpCkBAIC0yMDcsNiArMjAzLDggQEAgdm9pZCBDYW52YXNTdHlsZTo6YXBwbHlG
aWxsQ29sb3IoR3JhcGhpYwogICAgICAgICAgICAgY2xyLnNldENteWtGKG1fY3lhbiwgbV9tYWdl
bnRhLCBtX3llbGxvdywgbV9ibGFjaywgbV9hbHBoYSk7CiAgICAgICAgICAgICBjdXJyZW50QnJ1
c2guc2V0Q29sb3IoY2xyKTsKICAgICAgICAgICAgIGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgp
LT5zZXRCcnVzaChjdXJyZW50QnJ1c2gpOworI2Vsc2UKKyAgICAgICAgICAgIGNvbnRleHQtPnNl
dEZpbGxDb2xvcihjbXlrVG9SR0IoKSk7CiAjZW5kaWYKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CkBAIC0yMTksNCArMjE3LDE1IEBAIHZvaWQgQ2FudmFzU3R5bGU6OmFwcGx5RmlsbENv
bG9yKEdyYXBoaWMKICAgICB9CiB9CiAKK0NvbG9yIENhbnZhc1N0eWxlOjpjbXlrVG9SR0IoKSBj
b25zdAoreworICAgIC8vIEZJWE1FOiBEbyB0aGlzIHRocm91Z2ggcGxhdGZvcm0taW5kZXBlbmRl
bnQgR3JhcGhpY3NDb250ZXh0IEFQSS4KKyAgICAvLyBXZSdsbCBuZWVkIGEgZmFuY2llciBDb2xv
ciBhYnN0cmFjdGlvbiB0byBzdXBwb3J0IENZTUtBIGNvcnJlY3RseS4KKyAgICBmbG9hdCBjb2xv
cnMgPSAxIC0gbV9ibGFjazsKKyAgICBpbnQgciA9IHN0YXRpY19jYXN0PGludD4oMjU1ICogKGNv
bG9ycyAqICgxIC0gbV9jeWFuKSkpOworICAgIGludCBnID0gc3RhdGljX2Nhc3Q8aW50PigyNTUg
KiAoY29sb3JzICogKDEgLSBtX21hZ2VudGEpKSk7CisgICAgaW50IGIgPSBzdGF0aWNfY2FzdDxp
bnQ+KDI1NSAqIChjb2xvcnMgKiAoMSAtIG1feWVsbG93KSkpOworICAgIHJldHVybiBDb2xvcihy
LCBnLCBiLCBzdGF0aWNfY2FzdDxpbnQ+KG1fYWxwaGEgKiAyNTUpKTsKK30KKwogfQpJbmRleDog
V2ViQ29yZS9odG1sL0NhbnZhc1N0eWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0Nh
bnZhc1N0eWxlLmgJKHJldmlzaW9uIDQwMDg4KQorKysgV2ViQ29yZS9odG1sL0NhbnZhc1N0eWxl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgY2xhc3MgQ2FudmFzR3JhZGllbnQ7CiAgICAgY2xhc3MgQ2FudmFzUGF0dGVybjsKKyAg
ICBjbGFzcyBDb2xvcjsKICAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAKICAgICBjbGFzcyBD
YW52YXNTdHlsZSA6IHB1YmxpYyBSZWZDb3VudGVkPENhbnZhc1N0eWxlPiB7CkBAIC02Miw2ICs2
Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQ2FudmFzU3R5bGUoUGFzc1JlZlB0
cjxDYW52YXNHcmFkaWVudD4pOwogICAgICAgICBDYW52YXNTdHlsZShQYXNzUmVmUHRyPENhbnZh
c1BhdHRlcm4+KTsKIAorICAgICAgICBDb2xvciBjbXlrVG9SR0IoKSBjb25zdDsKKwogICAgICAg
ICBlbnVtIFR5cGUgeyBDb2xvclN0cmluZywgQ29sb3JTdHJpbmdXaXRoQWxwaGEsIEdyYXlMZXZl
bCwgUkdCQSwgQ01ZS0EsIEdyYWRpZW50LCBJbWFnZVBhdHRlcm4gfTsKIAogICAgICAgICBUeXBl
IG1fdHlwZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27080</attachid>
            <date>2009-01-27 12:20:38 -0800</date>
            <delta_ts>2009-01-28 08:04:37 -0800</delta_ts>
            <desc>Patch for RGB -&gt; CMYK converter</desc>
            <filename>23462.patch</filename>
            <type>text/plain</type>
            <size>2967</size>
            <attacher name="Scott Violet">sky</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDA5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMDktMDEtMjEgIFNjb3R0IFZpb2xldCAgPHNreUBnb29nbGUuY29t
PgorCisJQnVnIDIzNDYyOiBBZGQgUkdCIC0+IENNWUsgY29udmVyc2lvbiBhbGdvcml0aG0KKwk8
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDYyPgorCisJQWRkcyBh
biBSR0IgLT4gQ01ZSyBjb252ZXJ0ZXIuIFRoaXMgaXNuJ3QgcGVyZmVjdCwgYnV0IGJldHRlciB0
aGFuCisJbm90aGluZy4KKwkKKyAgICAgICAgKiBodG1sL0NhbnZhc1N0eWxlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNhbnZhc1N0eWxlOjphcHBseVN0cm9rZUNvbG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhbnZhc1N0eWxlOjphcHBseUZpbGxDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpD
YW52YXNTdHlsZTo6Y215a1RvUkdCKToKKyAgICAgICAgKiBodG1sL0NhbnZhc1N0eWxlLmg6CisK
IDIwMDktMDEtMTYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEp1c3RpbiBHYXJjaWEuCkluZGV4OiBXZWJDb3JlL2h0bWwvQ2FudmFzU3R5bGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9DYW52YXNTdHlsZS5jcHAJKHJldmlzaW9u
IDQwMDg4KQorKysgV2ViQ29yZS9odG1sL0NhbnZhc1N0eWxlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNhbnZhc0dyYWRpZW50LmgiCiAjaW5jbHVkZSAi
Q2FudmFzUGF0dGVybi5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUg
PHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogI2lmIFBM
QVRGT1JNKENHKQpAQCAtMTQ2LDggKzE0Nyw4IEBAIHZvaWQgQ2FudmFzU3R5bGU6OmFwcGx5U3Ry
b2tlQ29sb3IoR3JhcGgKICAgICAgICAgICAgIGNsci5zZXRDbXlrRihtX2N5YW4sIG1fbWFnZW50
YSwgbV95ZWxsb3csIG1fYmxhY2ssIG1fYWxwaGEpOwogICAgICAgICAgICAgY3VycmVudFBlbi5z
ZXRDb2xvcihjbHIpOwogICAgICAgICAgICAgY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCktPnNl
dFBlbihjdXJyZW50UGVuKTsKLSNlbGlmIFBMQVRGT1JNKENBSVJPKQotICAgICAgICAgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyNlbHNlCisgICAgICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xv
cihjbXlrVG9SR0IoKSk7CiAjZW5kaWYKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBA
IC0yMDcsNiArMjA4LDggQEAgdm9pZCBDYW52YXNTdHlsZTo6YXBwbHlGaWxsQ29sb3IoR3JhcGhp
YwogICAgICAgICAgICAgY2xyLnNldENteWtGKG1fY3lhbiwgbV9tYWdlbnRhLCBtX3llbGxvdywg
bV9ibGFjaywgbV9hbHBoYSk7CiAgICAgICAgICAgICBjdXJyZW50QnJ1c2guc2V0Q29sb3IoY2xy
KTsKICAgICAgICAgICAgIGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5zZXRCcnVzaChjdXJy
ZW50QnJ1c2gpOworI2Vsc2UKKyAgICAgICAgICAgIGNvbnRleHQtPnNldEZpbGxDb2xvcihjbXlr
VG9SR0IoKSk7CiAjZW5kaWYKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yMTks
NCArMjIyLDEzIEBAIHZvaWQgQ2FudmFzU3R5bGU6OmFwcGx5RmlsbENvbG9yKEdyYXBoaWMKICAg
ICB9CiB9CiAKK0NvbG9yIENhbnZhc1N0eWxlOjpjbXlrVG9SR0IoKSBjb25zdAoreworICAgIGRv
dWJsZSBjb2xvcnMgPSAxIC0gbV9ibGFjazsKKyAgICBpbnQgciA9IHN0YXRpY19jYXN0PGludD4o
bmV4dGFmdGVyKDI1NiwgMCkgKiAoY29sb3JzICogKDEgLSBtX2N5YW4pKSk7CisgICAgaW50IGcg
PSBzdGF0aWNfY2FzdDxpbnQ+KG5leHRhZnRlcigyNTYsIDApICogKGNvbG9ycyAqICgxIC0gbV9t
YWdlbnRhKSkpOworICAgIGludCBiID0gc3RhdGljX2Nhc3Q8aW50PihuZXh0YWZ0ZXIoMjU2LCAw
KSAqIChjb2xvcnMgKiAoMSAtIG1feWVsbG93KSkpOworICAgIHJldHVybiBDb2xvcihyLCBnLCBi
LCBzdGF0aWNfY2FzdDxpbnQ+KG1fYWxwaGEgKiAyNTUpKTsKK30KKwogfQpJbmRleDogV2ViQ29y
ZS9odG1sL0NhbnZhc1N0eWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0NhbnZhc1N0
eWxlLmgJKHJldmlzaW9uIDQwMDg4KQorKysgV2ViQ29yZS9odG1sL0NhbnZhc1N0eWxlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
Y2xhc3MgQ2FudmFzR3JhZGllbnQ7CiAgICAgY2xhc3MgQ2FudmFzUGF0dGVybjsKKyAgICBjbGFz
cyBDb2xvcjsKICAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAKICAgICBjbGFzcyBDYW52YXNT
dHlsZSA6IHB1YmxpYyBSZWZDb3VudGVkPENhbnZhc1N0eWxlPiB7CkBAIC02Miw2ICs2Myw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQ2FudmFzU3R5bGUoUGFzc1JlZlB0cjxDYW52
YXNHcmFkaWVudD4pOwogICAgICAgICBDYW52YXNTdHlsZShQYXNzUmVmUHRyPENhbnZhc1BhdHRl
cm4+KTsKIAorICAgICAgICBDb2xvciBjbXlrVG9SR0IoKSBjb25zdDsKKwogICAgICAgICBlbnVt
IFR5cGUgeyBDb2xvclN0cmluZywgQ29sb3JTdHJpbmdXaXRoQWxwaGEsIEdyYXlMZXZlbCwgUkdC
QSwgQ01ZS0EsIEdyYWRpZW50LCBJbWFnZVBhdHRlcm4gfTsKIAogICAgICAgICBUeXBlIG1fdHlw
ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27105</attachid>
            <date>2009-01-28 08:05:36 -0800</date>
            <delta_ts>2009-02-03 09:30:39 -0800</delta_ts>
            <desc>Patch for RGB -&gt; CMYK converter</desc>
            <filename>23462.patch</filename>
            <type>text/plain</type>
            <size>3035</size>
            <attacher name="Scott Violet">sky</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDA5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDktMDEtMjEgIFNjb3R0IFZpb2xldCAgPHNreUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IG5vYm9keSAoT09QUyEpCisKKwlCdWcgMjM0NjI6IEFk
ZCBSR0IgLT4gQ01ZSyBjb252ZXJzaW9uIGFsZ29yaXRobQorCTxodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NjI+CisKKwlBZGRzIGFuIFJHQiAtPiBDTVlLIGNvbnZl
cnRlci4gVGhpcyBpc24ndCBwZXJmZWN0LCBidXQgYmV0dGVyIHRoYW4KKwlub3RoaW5nLgorCQor
ICAgICAgICAqIGh0bWwvQ2FudmFzU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFz
U3R5bGU6OmFwcGx5U3Ryb2tlQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6
OmFwcGx5RmlsbENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1N0eWxlOjpjbXlrVG9S
R0IpOgorICAgICAgICAqIGh0bWwvQ2FudmFzU3R5bGUuaDoKKwogMjAwOS0wMS0xNiAgRXJpYyBT
ZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSnVzdGluIEdh
cmNpYS4KSW5kZXg6IFdlYkNvcmUvaHRtbC9DYW52YXNTdHlsZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL0NhbnZhc1N0eWxlLmNwcAkocmV2aXNpb24gNDAwODgpCisrKyBXZWJDb3Jl
L2h0bWwvQ2FudmFzU3R5bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiQ2FudmFzR3JhZGllbnQuaCIKICNpbmNsdWRlICJDYW52YXNQYXR0ZXJuLmgiCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiAjaWYgUExBVEZPUk0oQ0cpCkBAIC0xNDYs
OCArMTQ3LDggQEAgdm9pZCBDYW52YXNTdHlsZTo6YXBwbHlTdHJva2VDb2xvcihHcmFwaAogICAg
ICAgICAgICAgY2xyLnNldENteWtGKG1fY3lhbiwgbV9tYWdlbnRhLCBtX3llbGxvdywgbV9ibGFj
aywgbV9hbHBoYSk7CiAgICAgICAgICAgICBjdXJyZW50UGVuLnNldENvbG9yKGNscik7CiAgICAg
ICAgICAgICBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+c2V0UGVuKGN1cnJlbnRQZW4pOwot
I2VsaWYgUExBVEZPUk0oQ0FJUk8pCi0gICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworI2Vs
c2UKKyAgICAgICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKGNteWtUb1JHQigpKTsKICNl
bmRpZgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIwNyw2ICsyMDgsOCBAQCB2
b2lkIENhbnZhc1N0eWxlOjphcHBseUZpbGxDb2xvcihHcmFwaGljCiAgICAgICAgICAgICBjbHIu
c2V0Q215a0YobV9jeWFuLCBtX21hZ2VudGEsIG1feWVsbG93LCBtX2JsYWNrLCBtX2FscGhhKTsK
ICAgICAgICAgICAgIGN1cnJlbnRCcnVzaC5zZXRDb2xvcihjbHIpOwogICAgICAgICAgICAgY29u
dGV4dC0+cGxhdGZvcm1Db250ZXh0KCktPnNldEJydXNoKGN1cnJlbnRCcnVzaCk7CisjZWxzZQor
ICAgICAgICAgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKGNteWtUb1JHQigpKTsKICNlbmRpZgog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIxOSw0ICsyMjIsMTQgQEAgdm9pZCBD
YW52YXNTdHlsZTo6YXBwbHlGaWxsQ29sb3IoR3JhcGhpYwogICAgIH0KIH0KIAorQ29sb3IgQ2Fu
dmFzU3R5bGU6OmNteWtUb1JHQigpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBDTVlL
QSk7CisgICAgZG91YmxlIGNvbG9ycyA9IDEgLSBtX2JsYWNrOworICAgIGludCByID0gc3RhdGlj
X2Nhc3Q8aW50PihuZXh0YWZ0ZXIoMjU2LCAwKSAqIChjb2xvcnMgKiAoMSAtIG1fY3lhbikpKTsK
KyAgICBpbnQgZyA9IHN0YXRpY19jYXN0PGludD4obmV4dGFmdGVyKDI1NiwgMCkgKiAoY29sb3Jz
ICogKDEgLSBtX21hZ2VudGEpKSk7CisgICAgaW50IGIgPSBzdGF0aWNfY2FzdDxpbnQ+KG5leHRh
ZnRlcigyNTYsIDApICogKGNvbG9ycyAqICgxIC0gbV95ZWxsb3cpKSk7CisgICAgcmV0dXJuIENv
bG9yKHIsIGcsIGIsIHN0YXRpY19jYXN0PGludD4obV9hbHBoYSAqIDI1NSkpOworfQorCiB9Cklu
ZGV4OiBXZWJDb3JlL2h0bWwvQ2FudmFzU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvQ2FudmFzU3R5bGUuaAkocmV2aXNpb24gNDAwODgpCisrKyBXZWJDb3JlL2h0bWwvQ2FudmFz
U3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICBjbGFzcyBDYW52YXNHcmFkaWVudDsKICAgICBjbGFzcyBDYW52YXNQYXR0ZXJu
OworICAgIGNsYXNzIENvbG9yOwogICAgIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIAogICAgIGNs
YXNzIENhbnZhc1N0eWxlIDogcHVibGljIFJlZkNvdW50ZWQ8Q2FudmFzU3R5bGU+IHsKQEAgLTYy
LDYgKzYzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBDYW52YXNTdHlsZShQYXNz
UmVmUHRyPENhbnZhc0dyYWRpZW50Pik7CiAgICAgICAgIENhbnZhc1N0eWxlKFBhc3NSZWZQdHI8
Q2FudmFzUGF0dGVybj4pOwogCisgICAgICAgIENvbG9yIGNteWtUb1JHQigpIGNvbnN0OworCiAg
ICAgICAgIGVudW0gVHlwZSB7IENvbG9yU3RyaW5nLCBDb2xvclN0cmluZ1dpdGhBbHBoYSwgR3Jh
eUxldmVsLCBSR0JBLCBDTVlLQSwgR3JhZGllbnQsIEltYWdlUGF0dGVybiB9OwogCiAgICAgICAg
IFR5cGUgbV90eXBlOwo=
</data>
<flag name="review"
          id="13021"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27152</attachid>
            <date>2009-01-29 11:09:24 -0800</date>
            <delta_ts>2009-02-05 13:53:45 -0800</delta_ts>
            <desc>Adds Color(CMYKA) constructor</desc>
            <filename>23462.patch</filename>
            <type>text/plain</type>
            <size>3820</size>
            <attacher name="Scott Violet">sky</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDA5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDktMDEtMjEgIFNjb3R0IFZpb2xldCAgPHNreUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IG5vYm9keSAoT09QUyEpCisKKyAgICAgICAgQnVnIDIz
NDYyOiBBZGQgUkdCIC0+IENNWUsgY29udmVyc2lvbiBhbGdvcml0aG0KKyAgICAgICAgPGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ2Mj4KKworICAgICAgICBBZGRz
IGFuIFJHQiAtPiBDTVlLIGNvbnZlcnRlci4gVGhpcyBpc24ndCBwZXJmZWN0LCBidXQgYmV0dGVy
IHRoYW4KKyAgICAgICAgbm90aGluZy4KKworICAgICAgICAqIGh0bWwvQ2FudmFzU3R5bGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OmFwcGx5U3Ryb2tlQ29sb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OmFwcGx5RmlsbENvbG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhbnZhc1N0eWxlOjpjbXlrVG9SR0IpOgorICAgICAgICAqIGh0bWwvQ2FudmFzU3R5
bGUuaDoKKwogMjAwOS0wMS0xNiAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgSnVzdGluIEdhcmNpYS4KSW5kZXg6IFdlYkNvcmUvaHRtbC9DYW52
YXNTdHlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0NhbnZhc1N0eWxlLmNwcAko
cmV2aXNpb24gNDAwODgpCisrKyBXZWJDb3JlL2h0bWwvQ2FudmFzU3R5bGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDYsOCArMTQ2LDggQEAgdm9pZCBDYW52YXNTdHlsZTo6YXBwbHlTdHJva2VD
b2xvcihHcmFwaAogICAgICAgICAgICAgY2xyLnNldENteWtGKG1fY3lhbiwgbV9tYWdlbnRhLCBt
X3llbGxvdywgbV9ibGFjaywgbV9hbHBoYSk7CiAgICAgICAgICAgICBjdXJyZW50UGVuLnNldENv
bG9yKGNscik7CiAgICAgICAgICAgICBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+c2V0UGVu
KGN1cnJlbnRQZW4pOwotI2VsaWYgUExBVEZPUk0oQ0FJUk8pCi0gICAgICAgICAgICBub3RJbXBs
ZW1lbnRlZCgpOworI2Vsc2UKKyAgICAgICAgICAgIGNvbnRleHQtPnNldEZpbGxDb2xvcihDb2xv
cihtX2N5YW4sIG1fbWFnZW50YSwgbV95ZWxsb3csIG1fYmxhY2ssIG1fYWxwaGEpKTsKICNlbmRp
ZgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIwNyw2ICsyMDcsOCBAQCB2b2lk
IENhbnZhc1N0eWxlOjphcHBseUZpbGxDb2xvcihHcmFwaGljCiAgICAgICAgICAgICBjbHIuc2V0
Q215a0YobV9jeWFuLCBtX21hZ2VudGEsIG1feWVsbG93LCBtX2JsYWNrLCBtX2FscGhhKTsKICAg
ICAgICAgICAgIGN1cnJlbnRCcnVzaC5zZXRDb2xvcihjbHIpOwogICAgICAgICAgICAgY29udGV4
dC0+cGxhdGZvcm1Db250ZXh0KCktPnNldEJydXNoKGN1cnJlbnRCcnVzaCk7CisjZWxzZQorICAg
ICAgICAgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKENvbG9yKG1fY3lhbiwgbV9tYWdlbnRhLCBt
X3llbGxvdywgbV9ibGFjaywgbV9hbHBoYSkpOwogI2VuZGlmCiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAJKHJldmlzaW9u
IDQwMDg4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTExNiw2ICsxMTYsMTUgQEAgUkdCQTMyIG1ha2VSR0JBRnJvbUhTTEEoZG91Ymxl
IGh1ZSwgZG91YgogICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KGFscGhhICog
c2NhbGVGYWN0b3IpKTsKIH0KIAorUkdCQTMyIG1ha2VSR0JBRnJvbUNNWUtBKGZsb2F0IGMsIGZs
b2F0IG0sIGZsb2F0IHksIGZsb2F0IGssIGZsb2F0IGEpCit7CisgICAgZG91YmxlIGNvbG9ycyA9
IDEgLSBrOworICAgIGludCByID0gc3RhdGljX2Nhc3Q8aW50PihuZXh0YWZ0ZXIoMjU2LCAwKSAq
IChjb2xvcnMgKiAoMSAtIGMpKSk7CisgICAgaW50IGcgPSBzdGF0aWNfY2FzdDxpbnQ+KG5leHRh
ZnRlcigyNTYsIDApICogKGNvbG9ycyAqICgxIC0gbSkpKTsKKyAgICBpbnQgYiA9IHN0YXRpY19j
YXN0PGludD4obmV4dGFmdGVyKDI1NiwgMCkgKiAoY29sb3JzICogKDEgLSB5KSkpOworICAgIHJl
dHVybiBtYWtlUkdCQShyLCBnLCBiLCBzdGF0aWNfY2FzdDxmbG9hdD4obmV4dGFmdGVyKDI1Niwg
MCkgKiBhKSk7Cit9CisKIC8vIG9yaWdpbmFsbHkgbW92ZWQgaGVyZSBmcm9tIHRoZSBDU1MgcGFy
c2VyCiBib29sIENvbG9yOjpwYXJzZUhleENvbG9yKGNvbnN0IFN0cmluZyYgbmFtZSwgUkdCQTMy
JiByZ2IpCiB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCShyZXZpc2lvbiA0MDA4
OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAkod29ya2luZyBjb3B5KQpA
QCAtNjAsNiArNjAsNyBAQCBSR0JBMzIgbWFrZVJHQkEoaW50IHIsIGludCBnLCBpbnQgYiwgaW50
CiBSR0JBMzIgY29sb3JXaXRoT3ZlcnJpZGVBbHBoYShSR0JBMzIgY29sb3IsIGZsb2F0IG92ZXJy
aWRlQWxwaGEpOwogUkdCQTMyIG1ha2VSR0JBMzJGcm9tRmxvYXRzKGZsb2F0IHIsIGZsb2F0IGcs
IGZsb2F0IGIsIGZsb2F0IGEpOwogUkdCQTMyIG1ha2VSR0JBRnJvbUhTTEEoZG91YmxlIGgsIGRv
dWJsZSBzLCBkb3VibGUgbCwgZG91YmxlIGEpOworUkdCQTMyIG1ha2VSR0JBRnJvbUNNWUtBKGZs
b2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGssIGZsb2F0IGEpOwogCiBpbnQgZGlmZmVy
ZW5jZVNxdWFyZWQoY29uc3QgQ29sb3ImLCBjb25zdCBDb2xvciYpOwogCkBAIC03MSw2ICs3Miw4
IEBAIHB1YmxpYzoKICAgICBDb2xvcihpbnQgciwgaW50IGcsIGludCBiLCBpbnQgYSkgOiBtX2Nv
bG9yKG1ha2VSR0JBKHIsIGcsIGIsIGEpKSwgbV92YWxpZCh0cnVlKSB7IH0KICAgICAvLyBDb2xv
ciBpcyBjdXJyZW50bHkgbGltaXRlZCB0byAzMmJpdCBSR0JBLCBwZXJoYXBzIHNvbWUgZGF5IHdl
J2xsIHN1cHBvcnQgYmV0dGVyIGNvbG9ycwogICAgIENvbG9yKGZsb2F0IHIsIGZsb2F0IGcsIGZs
b2F0IGIsIGZsb2F0IGEpIDogbV9jb2xvcihtYWtlUkdCQTMyRnJvbUZsb2F0cyhyLCBnLCBiLCBh
KSksIG1fdmFsaWQodHJ1ZSkgeyB9CisgICAgLy8gQ3JlYXRlcyBhIG5ldyBjb2xvciBmcm9tIHRo
ZSBzcGVjaWZpYyBDTVlLIGFuZCBhbHBoYSB2YWx1ZXMuCisgICAgQ29sb3IoZmxvYXQgYywgZmxv
YXQgbSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYSkgOiBtX2NvbG9yKG1ha2VSR0JBRnJvbUNN
WUtBKGMsIG0sIHksIGssIGEpKSwgbV92YWxpZCh0cnVlKSB7IH0KICAgICBleHBsaWNpdCBDb2xv
cihjb25zdCBTdHJpbmcmKTsKICAgICBleHBsaWNpdCBDb2xvcihjb25zdCBjaGFyKik7CiAgICAg
Cg==
</data>
<flag name="review"
          id="13052"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27360</attachid>
            <date>2009-02-05 13:14:03 -0800</date>
            <delta_ts>2009-02-05 15:25:58 -0800</delta_ts>
            <desc>Last patch had a bug, it used setFillColor when it should have used setStrokeColor</desc>
            <filename>23462.patch</filename>
            <type>text/plain</type>
            <size>1258</size>
            <attacher name="Scott Violet">sky</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDY3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMDktMDItMDUgIFNjb3R0IFZpb2xldCAgPHNreUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAy
MzQ2MjogQWRkIFJHQiAtPiBDTVlLIGNvbnZlcnNpb24gYWxnb3JpdGhtCisgICAgICAgIDxodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NjI+CisKKyAgICAgICAgQ2hh
bmdlcyBjYWxsIGZyb20gc2V0RmlsbENvbG9yIHRvIHNldFN0cm9rZUNvbG9yLgorCisgICAgICAg
IENvdmVyZWQgYnkgZXhpc3RpbmcgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogaHRtbC9DYW52
YXNTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNTdHlsZTo6YXBwbHlTdHJva2VD
b2xvcik6CisKIDIwMDktMDItMDUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZXZpbiBEZWNrZXIuCkluZGV4OiBXZWJDb3JlL2h0
bWwvQ2FudmFzU3R5bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9DYW52YXNTdHls
ZS5jcHAJKHJldmlzaW9uIDQwNjczKQorKysgV2ViQ29yZS9odG1sL0NhbnZhc1N0eWxlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgQ2FudmFzU3R5bGU6OmFwcGx5
U3Ryb2tlQ29sb3IoR3JhcGgKICAgICAgICAgICAgIGN1cnJlbnRQZW4uc2V0Q29sb3IoY2xyKTsK
ICAgICAgICAgICAgIGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5zZXRQZW4oY3VycmVudFBl
bik7CiAjZWxzZQotICAgICAgICAgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKENvbG9yKG1fY3lh
biwgbV9tYWdlbnRhLCBtX3llbGxvdywgbV9ibGFjaywgbV9hbHBoYSkpOworICAgICAgICAgICAg
Y29udGV4dC0+c2V0U3Ryb2tlQ29sb3IoQ29sb3IobV9jeWFuLCBtX21hZ2VudGEsIG1feWVsbG93
LCBtX2JsYWNrLCBtX2FscGhhKSk7CiAjZW5kaWYKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>