<?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>21575</bug_id>
          
          <creation_ts>2008-10-13 12:26:29 -0700</creation_ts>
          <short_desc>Cairo&apos;s ImageBuffer::getImageData() does not handle alpha=0 case correctly</short_desc>
          <delta_ts>2009-02-03 11:51:55 -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>Mac</rep_platform>
          <op_sys>OS X 10.5</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="Eric Roman">eroman</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>krit</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>95191</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Roman">eroman</who>
    <bug_when>2008-10-13 12:26:29 -0700</bug_when>
    <thetext>Cairo buffer data is stored in ARGB, and the following loop in ImageBufferCairo.cpp converts it to RGBA:

            if (unsigned int alpha = (*pixel &amp; 0xff000000) &gt;&gt; 24) {
                destRows[basex] = (*pixel &amp; 0x00ff0000) &gt;&gt; 16;
                destRows[basex + 1] = (*pixel &amp; 0x0000ff00) &gt;&gt; 8;
                destRows[basex + 2] = (*pixel &amp; 0x000000ff);
                destRows[basex + 3] = alpha;
            } else
                reinterpret_cast&lt;uint32_t*&gt;(destRows + basex)[0] = pixel[0];


The else clause looks suspicious, as it is assigning a ARGB value to where RGBA is expected. So instead of RGB0 you get 0RGB.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95193</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Roman">eroman</who>
    <bug_when>2008-10-13 12:29:16 -0700</bug_when>
    <thetext>There is also concern of endianness with how color components are extracted from uint32.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95195</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-10-13 12:31:39 -0700</bug_when>
    <thetext>Need to respect premultiplied colors:

                destRows[basex] = ((*pixel &amp; 0x00ff0000) &gt;&gt; 16) * 255 / alpha;
                destRows[basex + 1] = ((*pixel &amp; 0x0000ff00) &gt;&gt; 8) * 255 / alpha;
                destRows[basex + 2] = ((*pixel &amp; 0x000000ff)) * 255 / alpha;
                destRows[basex + 3] = alpha;

(the same on putImageData)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95223</commentid>
    <comment_count>3</comment_count>
      <attachid>24331</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-10-13 15:46:52 -0700</bug_when>
    <thetext>Created attachment 24331
imageData

This corrects the bugs and adds support for premultiplied colors.

Todo: make it endian-save</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96961</commentid>
    <comment_count>4</comment_count>
      <attachid>24743</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-10-29 03:25:29 -0700</bug_when>
    <thetext>Created attachment 24743
canvas-getImageData.html output

This is the output of canvas-getImageData.html after applying the patch. Like you can see many tests fail, because alpha channel is 1 &quot;degree&quot; lower than it should be. And perhaps thats why the other colors are wrong too. Because we use the alpha to get premultiplied colors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97062</commentid>
    <comment_count>5</comment_count>
      <attachid>24758</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-10-29 15:55:19 -0700</bug_when>
    <thetext>Created attachment 24758
color&apos;s given to GraphicsContext

I checked the color that are given to GraphicsContext. I added the original alpha value on fist column and the second column includes the alpha multiplied with 255.
As you can see (if you compare the values of the first list with the values of the second list): cairo gives the right values back (for the alpha channel).

That means first: There is something wrong in Color.cpp
and second: it shouldn&apos;t work on Cg either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107839</commentid>
    <comment_count>6</comment_count>
      <attachid>27216</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-01-31 07:19:33 -0800</bug_when>
    <thetext>Created attachment 27216
imageData respects pre-multiplied colors

This fixes the pre-multiplied colors bug, as well as the alpha=0 case. It reads the colors, given to the context, correctly but fails on the canvas-getImageData test.
But the fact, that the context gets the wrong color and getImageData reads exactly this color-settings, tells that getImageData works correctly. (see https://bugs.webkit.org/show_bug.cgi?id=22150)
You can see the results of the test on the second attachment and the alpha of the colors, given to the context and therefor to the ImageBuffer, on the third attachement. You&apos;ll see, that the alpha channel is identical. (Haven&apos;t added all colors, but the result is the same)

This patch passes canvas-putImageData.

I talked about platform dependencies on IRC (#cairo). And they assure me, that this code is already endian safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107957</commentid>
    <comment_count>7</comment_count>
      <attachid>27216</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-02-02 06:08:32 -0800</bug_when>
    <thetext>Comment on attachment 27216
imageData respects pre-multiplied colors

Looks good. The +254 needs some thinking but I see where you got this code from (ImageBufferCG.cpp)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108136</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-02-03 11:51:55 -0800</bug_when>
    <thetext>landed in r40542</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24331</attachid>
            <date>2008-10-13 15:46:52 -0700</date>
            <delta_ts>2009-01-31 07:19:33 -0800</delta_ts>
            <desc>imageData</desc>
            <filename>imageData.patch</filename>
            <type>text/plain</type>
            <size>2101</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1
ZmZlckNhaXJvLmNwcAkocmV2aXNpb24gMzc1NjMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsMTIg
KzEzNywxNiBAQCBQYXNzUmVmUHRyPEltYWdlRGF0YT4gSW1hZ2VCdWZmZXI6OmdldEltCiAgICAg
ICAgICAgICB1aW50MzJfdCAqcGl4ZWwgPSAodWludDMyX3QgKikgcm93ICsgeCArIG9yaWdpbng7
CiAgICAgICAgICAgICBpbnQgYmFzZXggPSB4ICogNDsKICAgICAgICAgICAgIGlmICh1bnNpZ25l
ZCBpbnQgYWxwaGEgPSAoKnBpeGVsICYgMHhmZjAwMDAwMCkgPj4gMjQpIHsKKyAgICAgICAgICAg
ICAgICBkZXN0Um93c1tiYXNleF0gPSAoKCpwaXhlbCAmIDB4MDBmZjAwMDApID4+IDE2KSAqIDI1
NSAvIGFscGhhOworICAgICAgICAgICAgICAgIGRlc3RSb3dzW2Jhc2V4ICsgMV0gPSAoKCpwaXhl
bCAmIDB4MDAwMGZmMDApID4+IDgpICogMjU1IC8gYWxwaGE7CisgICAgICAgICAgICAgICAgZGVz
dFJvd3NbYmFzZXggKyAyXSA9ICgqcGl4ZWwgJiAweDAwMDAwMGZmKSAqIDI1NSAvIGFscGhhOwor
ICAgICAgICAgICAgICAgIGRlc3RSb3dzW2Jhc2V4ICsgM10gPSBhbHBoYTsKKyAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgZGVzdFJvd3NbYmFzZXhdID0gKCpwaXhlbCAmIDB4
MDBmZjAwMDApID4+IDE2OwogICAgICAgICAgICAgICAgIGRlc3RSb3dzW2Jhc2V4ICsgMV0gPSAo
KnBpeGVsICYgMHgwMDAwZmYwMCkgPj4gODsKLSAgICAgICAgICAgICAgICBkZXN0Um93c1tiYXNl
eCArIDJdID0gKCpwaXhlbCAmIDB4MDAwMDAwZmYpOworICAgICAgICAgICAgICAgIGRlc3RSb3dz
W2Jhc2V4ICsgMl0gPSAqcGl4ZWwgJiAweDAwMDAwMGZmOwogICAgICAgICAgICAgICAgIGRlc3RS
b3dzW2Jhc2V4ICsgM10gPSBhbHBoYTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
ICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3QqPihkZXN0Um93cyArIGJhc2V4KVswXSA9IHBp
eGVsWzBdOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGRlc3RSb3dzICs9IGRl
c3RCeXRlc1BlclJvdzsKICAgICB9CkBAIC0xOTQsMTAgKzE5OCwxMSBAQCB2b2lkIEltYWdlQnVm
ZmVyOjpwdXRJbWFnZURhdGEoSW1hZ2VEYXRhCiAgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwg
bnVtQ29sdW1uczsgeCsrKSB7CiAgICAgICAgICAgICB1aW50MzJfdCAqcGl4ZWwgPSAodWludDMy
X3QgKikgcm93ICsgeCArIGRlc3R4OwogICAgICAgICAgICAgaW50IGJhc2V4ID0geCAqIDQ7Ci0g
ICAgICAgICAgICBpZiAodW5zaWduZWQgaW50IGFscGhhID0gc3JjUm93c1tiYXNleCArIDNdKSB7
Ci0gICAgICAgICAgICAgICAgKnBpeGVsID0gYWxwaGEgPDwgMjQgfCBzcmNSb3dzW2Jhc2V4XSA8
PCAxNiB8IHNyY1Jvd3NbYmFzZXggKyAxXSA8PCA4IHwgc3JjUm93c1tiYXNleCArIDJdOwotICAg
ICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgcGl4ZWxbMF0gPSByZWludGVycHJldF9j
YXN0PHVpbnQzMl90Kj4oc3JjUm93cyArIGJhc2V4KVswXTsKKyAgICAgICAgICAgIHVuc2lnbmVk
IGNoYXIgYWxwaGEgPSBzcmNSb3dzW2Jhc2V4ICsgM107CisgICAgICAgICAgICAqcGl4ZWwgPSBh
bHBoYSA8PCAyNCB8IAorICAgICAgICAgICAgICAgICAgICAgKChzcmNSb3dzW2Jhc2V4XSAqIGFs
cGhhICsgMjU0KSAvIDI1NSkgPDwgMTYgfCAKKyAgICAgICAgICAgICAgICAgICAgICgoc3JjUm93
c1tiYXNleCArIDFdICogYWxwaGEgKyAyNTQpIC8gMjU1KSA8PCA4IHwgCisgICAgICAgICAgICAg
ICAgICAgICAoKHNyY1Jvd3NbYmFzZXggKyAyXSAqIGFscGhhICsgMjU0KSAvIDI1NSk7CiAgICAg
ICAgIH0KICAgICAgICAgc3JjUm93cyArPSBzcmNCeXRlc1BlclJvdzsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>24743</attachid>
            <date>2008-10-29 03:25:29 -0700</date>
            <delta_ts>2008-10-29 03:25:29 -0700</delta_ts>
            <desc>canvas-getImageData.html output</desc>
            <filename>imageData.txt</filename>
            <type>text/plain</type>
            <size>7962</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBnZXRJbWFnZURhdGEgd29ya3MgY29ycmVjdGx5LgpQQVNT
OiBwaXhlbCBhdCAoMCwwKSB3YXMgWzAsMCwwLDI1NV0KUEFTUzogcGl4ZWwgYXQgKDQsMCkgd2Fz
IFswLDExLDAsMjU1XQpQQVNTOiBwaXhlbCBhdCAoOCwwKSB3YXMgWzAsMjEsMCwyNTVdClBBU1M6
IHBpeGVsIGF0ICgxMiwwKSB3YXMgWzAsMzIsMCwyNTVdClBBU1M6IHBpeGVsIGF0ICgxNiwwKSB3
YXMgWzAsNDMsMCwyNTVdClBBU1M6IHBpeGVsIGF0ICgyMCwwKSB3YXMgWzAsNTMsMCwyNTVdClBB
U1M6IHBpeGVsIGF0ICgyNCwwKSB3YXMgWzAsNjQsMCwyNTVdClBBU1M6IHBpeGVsIGF0ICgyOCww
KSB3YXMgWzAsNzQsMCwyNTVdClBBU1M6IHBpeGVsIGF0ICgzMiwwKSB3YXMgWzAsODUsMCwyNTVd
ClBBU1M6IHBpeGVsIGF0ICgzNiwwKSB3YXMgWzAsOTYsMCwyNTVdClBBU1M6IHBpeGVsIGF0ICg0
MCwwKSB3YXMgWzAsMTA2LDAsMjU1XQpQQVNTOiBwaXhlbCBhdCAoNDQsMCkgd2FzIFswLDExNyww
LDI1NV0KUEFTUzogcGl4ZWwgYXQgKDQ4LDApIHdhcyBbMCwxMjgsMCwyNTVdClBBU1M6IHBpeGVs
IGF0ICg1MiwwKSB3YXMgWzAsMTM4LDAsMjU1XQpQQVNTOiBwaXhlbCBhdCAoNTYsMCkgd2FzIFsw
LDE0OSwwLDI1NV0KUEFTUzogcGl4ZWwgYXQgKDYwLDApIHdhcyBbMCwxNTksMCwyNTVdClBBU1M6
IHBpeGVsIGF0ICg2NCwwKSB3YXMgWzAsMTcwLDAsMjU1XQpQQVNTOiBwaXhlbCBhdCAoNjgsMCkg
d2FzIFswLDE4MSwwLDI1NV0KUEFTUzogcGl4ZWwgYXQgKDcyLDApIHdhcyBbMCwxOTEsMCwyNTVd
ClBBU1M6IHBpeGVsIGF0ICg3NiwwKSB3YXMgWzAsMjAyLDAsMjU1XQpQQVNTOiBwaXhlbCBhdCAo
ODAsMCkgd2FzIFswLDIxMywwLDI1NV0KUEFTUzogcGl4ZWwgYXQgKDg0LDApIHdhcyBbMCwyMjMs
MCwyNTVdClBBU1M6IHBpeGVsIGF0ICg4OCwwKSB3YXMgWzAsMjM0LDAsMjU1XQpQQVNTOiBwaXhl
bCBhdCAoOTIsMCkgd2FzIFswLDI0NCwwLDI1NV0KUEFTUzogcGl4ZWwgYXQgKDk2LDApIHdhcyBb
MCwyNTUsMCwyNTVdClBBU1M6IHBpeGVsIGF0ICg1LDUpIHdhcyBbNjQsMTI4LDE5MSwyNTVdClBB
U1M6IENvcnJlY3RseSByZXRyaWV2ZWQgZXZlcnkgcGl4ZWwgaW4gYSByb3cKUEFTUzogQ29ycmVj
dCBkYXRhIGZvciBjb250ZW50IG91dHNpZGUgY2FudmFzIGJvdW5kcwpQQVNTOiBwaXhlbCBhdCAo
NTAsNTApIHdhcyBbMCwwLDAsMF0KRkFJTDogcGl4ZWwgYXQgKDUwLDU0KSB3YXMgWzAsMCwwLDBd
LCBleHBlY3RlZCBbMCwwLDAsMV0KRkFJTDogcGl4ZWwgYXQgKDUwLDU4KSB3YXMgWzAsMCwwLDFd
LCBleHBlY3RlZCBbMCwwLDAsMl0KRkFJTDogcGl4ZWwgYXQgKDUwLDYyKSB3YXMgWzAsMCwwLDE1
XSwgZXhwZWN0ZWQgWzAsMCwwLDE2XQpGQUlMOiBwaXhlbCBhdCAoNTAsNjYpIHdhcyBbMCwwLDAs
MzFdLCBleHBlY3RlZCBbMCwwLDAsMzJdCkZBSUw6IHBpeGVsIGF0ICg1MCw3MCkgd2FzIFswLDAs
MCw2M10sIGV4cGVjdGVkIFswLDAsMCw2NF0KRkFJTDogcGl4ZWwgYXQgKDUwLDc0KSB3YXMgWzAs
MCwwLDk1XSwgZXhwZWN0ZWQgWzAsMCwwLDk2XQpGQUlMOiBwaXhlbCBhdCAoNTAsNzgpIHdhcyBb
MCwwLDAsMTI3XSwgZXhwZWN0ZWQgWzAsMCwwLDEyOF0KRkFJTDogcGl4ZWwgYXQgKDUwLDgyKSB3
YXMgWzAsMCwwLDE5MV0sIGV4cGVjdGVkIFswLDAsMCwxOTJdClBBU1M6IHBpeGVsIGF0ICg1MCw4
Nikgd2FzIFswLDAsMCwyNTRdClBBU1M6IHBpeGVsIGF0ICg1MCw5MCkgd2FzIFswLDAsMCwyNTVd
ClBBU1M6IHBpeGVsIGF0ICg1NCw1MCkgd2FzIFswLDAsMCwwXQpGQUlMOiBwaXhlbCBhdCAoNTQs
NTQpIHdhcyBbMCwwLDAsMF0sIGV4cGVjdGVkIFswLDAsMCwxXQpGQUlMOiBwaXhlbCBhdCAoNTQs
NTgpIHdhcyBbMCwwLDAsMV0sIGV4cGVjdGVkIFswLDAsMCwyXQpGQUlMOiBwaXhlbCBhdCAoNTQs
NjIpIHdhcyBbMCwwLDAsMTVdLCBleHBlY3RlZCBbMCwwLDAsMTZdCkZBSUw6IHBpeGVsIGF0ICg1
NCw2Nikgd2FzIFswLDAsMCwzMV0sIGV4cGVjdGVkIFswLDAsMCwzMl0KRkFJTDogcGl4ZWwgYXQg
KDU0LDcwKSB3YXMgWzAsMCwwLDYzXSwgZXhwZWN0ZWQgWzAsMCwwLDY0XQpGQUlMOiBwaXhlbCBh
dCAoNTQsNzQpIHdhcyBbMCwwLDAsOTVdLCBleHBlY3RlZCBbMCwwLDAsOTZdCkZBSUw6IHBpeGVs
IGF0ICg1NCw3OCkgd2FzIFswLDAsMCwxMjddLCBleHBlY3RlZCBbMSwwLDAsMTI4XQpGQUlMOiBw
aXhlbCBhdCAoNTQsODIpIHdhcyBbMCwwLDAsMTkxXSwgZXhwZWN0ZWQgWzEsMCwwLDE5Ml0KRkFJ
TDogcGl4ZWwgYXQgKDU0LDg2KSB3YXMgWzAsMCwwLDI1NF0sIGV4cGVjdGVkIFsxLDAsMCwyNTRd
ClBBU1M6IHBpeGVsIGF0ICg1NCw5MCkgd2FzIFsxLDAsMCwyNTVdClBBU1M6IHBpeGVsIGF0ICg1
OCw1MCkgd2FzIFswLDAsMCwwXQpGQUlMOiBwaXhlbCBhdCAoNTgsNTQpIHdhcyBbMCwwLDAsMF0s
IGV4cGVjdGVkIFswLDAsMCwxXQpGQUlMOiBwaXhlbCBhdCAoNTgsNTgpIHdhcyBbMCwwLDAsMV0s
IGV4cGVjdGVkIFswLDAsMCwyXQpGQUlMOiBwaXhlbCBhdCAoNTgsNjIpIHdhcyBbMCwwLDAsMTVd
LCBleHBlY3RlZCBbMCwwLDAsMTZdCkZBSUw6IHBpeGVsIGF0ICg1OCw2Nikgd2FzIFswLDAsMCwz
MV0sIGV4cGVjdGVkIFswLDAsMCwzMl0KRkFJTDogcGl4ZWwgYXQgKDU4LDcwKSB3YXMgWzAsMCww
LDYzXSwgZXhwZWN0ZWQgWzMsMCwwLDY0XQpGQUlMOiBwaXhlbCBhdCAoNTgsNzQpIHdhcyBbMCww
LDAsOTVdLCBleHBlY3RlZCBbMiwwLDAsOTZdCkZBSUw6IHBpeGVsIGF0ICg1OCw3OCkgd2FzIFsw
LDAsMCwxMjddLCBleHBlY3RlZCBbMSwwLDAsMTI4XQpGQUlMOiBwaXhlbCBhdCAoNTgsODIpIHdh
cyBbMSwwLDAsMTkxXSwgZXhwZWN0ZWQgWzIsMCwwLDE5Ml0KRkFJTDogcGl4ZWwgYXQgKDU4LDg2
KSB3YXMgWzEsMCwwLDI1NF0sIGV4cGVjdGVkIFsyLDAsMCwyNTRdClBBU1M6IHBpeGVsIGF0ICg1
OCw5MCkgd2FzIFsyLDAsMCwyNTVdClBBU1M6IHBpeGVsIGF0ICg2Miw1MCkgd2FzIFswLDAsMCww
XQpGQUlMOiBwaXhlbCBhdCAoNjIsNTQpIHdhcyBbMCwwLDAsMF0sIGV4cGVjdGVkIFswLDAsMCwx
XQpGQUlMOiBwaXhlbCBhdCAoNjIsNTgpIHdhcyBbMCwwLDAsMV0sIGV4cGVjdGVkIFswLDAsMCwy
XQpGQUlMOiBwaXhlbCBhdCAoNjIsNjIpIHdhcyBbMCwwLDAsMTVdLCBleHBlY3RlZCBbMTUsMCww
LDE2XQpGQUlMOiBwaXhlbCBhdCAoNjIsNjYpIHdhcyBbOCwwLDAsMzFdLCBleHBlY3RlZCBbMTUs
MCwwLDMyXQpGQUlMOiBwaXhlbCBhdCAoNjIsNzApIHdhcyBbMTIsMCwwLDYzXSwgZXhwZWN0ZWQg
WzE1LDAsMCw2NF0KRkFJTDogcGl4ZWwgYXQgKDYyLDc0KSB3YXMgWzEzLDAsMCw5NV0sIGV4cGVj
dGVkIFsxNSwwLDAsOTZdCkZBSUw6IHBpeGVsIGF0ICg2Miw3OCkgd2FzIFsxNCwwLDAsMTI3XSwg
ZXhwZWN0ZWQgWzE1LDAsMCwxMjhdCkZBSUw6IHBpeGVsIGF0ICg2Miw4Mikgd2FzIFsxNiwwLDAs
MTkxXSwgZXhwZWN0ZWQgWzE1LDAsMCwxOTJdCkZBSUw6IHBpeGVsIGF0ICg2Miw4Nikgd2FzIFsx
NSwwLDAsMjU0XSwgZXhwZWN0ZWQgWzE2LDAsMCwyNTRdClBBU1M6IHBpeGVsIGF0ICg2Miw5MCkg
d2FzIFsxNiwwLDAsMjU1XQpQQVNTOiBwaXhlbCBhdCAoNjYsNTApIHdhcyBbMCwwLDAsMF0KRkFJ
TDogcGl4ZWwgYXQgKDY2LDU0KSB3YXMgWzAsMCwwLDBdLCBleHBlY3RlZCBbMCwwLDAsMV0KRkFJ
TDogcGl4ZWwgYXQgKDY2LDU4KSB3YXMgWzAsMCwwLDFdLCBleHBlY3RlZCBbMCwwLDAsMl0KRkFJ
TDogcGl4ZWwgYXQgKDY2LDYyKSB3YXMgWzE3LDAsMCwxNV0sIGV4cGVjdGVkIFszMSwwLDAsMTZd
CkZBSUw6IHBpeGVsIGF0ICg2Niw2Nikgd2FzIFsyNCwwLDAsMzFdLCBleHBlY3RlZCBbMzEsMCww
LDMyXQpGQUlMOiBwaXhlbCBhdCAoNjYsNzApIHdhcyBbMjgsMCwwLDYzXSwgZXhwZWN0ZWQgWzMx
LDAsMCw2NF0KRkFJTDogcGl4ZWwgYXQgKDY2LDc0KSB3YXMgWzI5LDAsMCw5NV0sIGV4cGVjdGVk
IFszMSwwLDAsOTZdCkZBSUw6IHBpeGVsIGF0ICg2Niw3OCkgd2FzIFszMCwwLDAsMTI3XSwgZXhw
ZWN0ZWQgWzMxLDAsMCwxMjhdCkZBSUw6IHBpeGVsIGF0ICg2Niw4Mikgd2FzIFszMiwwLDAsMTkx
XSwgZXhwZWN0ZWQgWzMxLDAsMCwxOTJdCkZBSUw6IHBpeGVsIGF0ICg2Niw4Nikgd2FzIFszMSww
LDAsMjU0XSwgZXhwZWN0ZWQgWzMyLDAsMCwyNTRdClBBU1M6IHBpeGVsIGF0ICg2Niw5MCkgd2Fz
IFszMiwwLDAsMjU1XQpQQVNTOiBwaXhlbCBhdCAoNzAsNTApIHdhcyBbMCwwLDAsMF0KRkFJTDog
cGl4ZWwgYXQgKDcwLDU0KSB3YXMgWzAsMCwwLDBdLCBleHBlY3RlZCBbMCwwLDAsMV0KRkFJTDog
cGl4ZWwgYXQgKDcwLDU4KSB3YXMgWzAsMCwwLDFdLCBleHBlY3RlZCBbMTI3LDAsMCwyXQpGQUlM
OiBwaXhlbCBhdCAoNzAsNjIpIHdhcyBbNTEsMCwwLDE1XSwgZXhwZWN0ZWQgWzYzLDAsMCwxNl0K
RkFJTDogcGl4ZWwgYXQgKDcwLDY2KSB3YXMgWzU3LDAsMCwzMV0sIGV4cGVjdGVkIFs2MywwLDAs
MzJdCkZBSUw6IHBpeGVsIGF0ICg3MCw3MCkgd2FzIFs2MCwwLDAsNjNdLCBleHBlY3RlZCBbNjMs
MCwwLDY0XQpGQUlMOiBwaXhlbCBhdCAoNzAsNzQpIHdhcyBbNjEsMCwwLDk1XSwgZXhwZWN0ZWQg
WzYzLDAsMCw5Nl0KRkFJTDogcGl4ZWwgYXQgKDcwLDc4KSB3YXMgWzYyLDAsMCwxMjddLCBleHBl
Y3RlZCBbNjMsMCwwLDEyOF0KRkFJTDogcGl4ZWwgYXQgKDcwLDgyKSB3YXMgWzY0LDAsMCwxOTFd
LCBleHBlY3RlZCBbNjMsMCwwLDE5Ml0KRkFJTDogcGl4ZWwgYXQgKDcwLDg2KSB3YXMgWzYzLDAs
MCwyNTRdLCBleHBlY3RlZCBbNjQsMCwwLDI1NF0KUEFTUzogcGl4ZWwgYXQgKDcwLDkwKSB3YXMg
WzY0LDAsMCwyNTVdClBBU1M6IHBpeGVsIGF0ICg3NCw1MCkgd2FzIFswLDAsMCwwXQpGQUlMOiBw
aXhlbCBhdCAoNzQsNTQpIHdhcyBbMCwwLDAsMF0sIGV4cGVjdGVkIFswLDAsMCwxXQpGQUlMOiBw
aXhlbCBhdCAoNzQsNTgpIHdhcyBbMCwwLDAsMV0sIGV4cGVjdGVkIFsxMjcsMCwwLDJdCkZBSUw6
IHBpeGVsIGF0ICg3NCw2Mikgd2FzIFs4NSwwLDAsMTVdLCBleHBlY3RlZCBbOTUsMCwwLDE2XQpG
QUlMOiBwaXhlbCBhdCAoNzQsNjYpIHdhcyBbOTAsMCwwLDMxXSwgZXhwZWN0ZWQgWzk1LDAsMCwz
Ml0KRkFJTDogcGl4ZWwgYXQgKDc0LDcwKSB3YXMgWzkzLDAsMCw2M10sIGV4cGVjdGVkIFs5NSww
LDAsNjRdCkZBSUw6IHBpeGVsIGF0ICg3NCw3NCkgd2FzIFs5MywwLDAsOTVdLCBleHBlY3RlZCBb
OTUsMCwwLDk2XQpGQUlMOiBwaXhlbCBhdCAoNzQsNzgpIHdhcyBbOTQsMCwwLDEyN10sIGV4cGVj
dGVkIFs5NSwwLDAsMTI4XQpGQUlMOiBwaXhlbCBhdCAoNzQsODIpIHdhcyBbOTYsMCwwLDE5MV0s
IGV4cGVjdGVkIFs5NSwwLDAsMTkyXQpGQUlMOiBwaXhlbCBhdCAoNzQsODYpIHdhcyBbOTUsMCww
LDI1NF0sIGV4cGVjdGVkIFs5NiwwLDAsMjU0XQpQQVNTOiBwaXhlbCBhdCAoNzQsOTApIHdhcyBb
OTYsMCwwLDI1NV0KUEFTUzogcGl4ZWwgYXQgKDc4LDUwKSB3YXMgWzAsMCwwLDBdCkZBSUw6IHBp
eGVsIGF0ICg3OCw1NCkgd2FzIFswLDAsMCwwXSwgZXhwZWN0ZWQgWzI1NSwwLDAsMV0KRkFJTDog
cGl4ZWwgYXQgKDc4LDU4KSB3YXMgWzAsMCwwLDFdLCBleHBlY3RlZCBbMTI3LDAsMCwyXQpGQUlM
OiBwaXhlbCBhdCAoNzgsNjIpIHdhcyBbMTE5LDAsMCwxNV0sIGV4cGVjdGVkIFsxMjcsMCwwLDE2
XQpGQUlMOiBwaXhlbCBhdCAoNzgsNjYpIHdhcyBbMTIzLDAsMCwzMV0sIGV4cGVjdGVkIFsxMjcs
MCwwLDMyXQpGQUlMOiBwaXhlbCBhdCAoNzgsNzApIHdhcyBbMTI1LDAsMCw2M10sIGV4cGVjdGVk
IFsxMjcsMCwwLDY0XQpGQUlMOiBwaXhlbCBhdCAoNzgsNzQpIHdhcyBbMTI2LDAsMCw5NV0sIGV4
cGVjdGVkIFsxMjcsMCwwLDk2XQpGQUlMOiBwaXhlbCBhdCAoNzgsNzgpIHdhcyBbMTI2LDAsMCwx
MjddLCBleHBlY3RlZCBbMTI3LDAsMCwxMjhdCkZBSUw6IHBpeGVsIGF0ICg3OCw4Mikgd2FzIFsx
MjgsMCwwLDE5MV0sIGV4cGVjdGVkIFsxMjcsMCwwLDE5Ml0KUEFTUzogcGl4ZWwgYXQgKDc4LDg2
KSB3YXMgWzEyNywwLDAsMjU0XQpQQVNTOiBwaXhlbCBhdCAoNzgsOTApIHdhcyBbMTI4LDAsMCwy
NTVdClBBU1M6IHBpeGVsIGF0ICg4Miw1MCkgd2FzIFswLDAsMCwwXQpGQUlMOiBwaXhlbCBhdCAo
ODIsNTQpIHdhcyBbMCwwLDAsMF0sIGV4cGVjdGVkIFsyNTUsMCwwLDFdCkZBSUw6IHBpeGVsIGF0
ICg4Miw1OCkgd2FzIFswLDAsMCwxXSwgZXhwZWN0ZWQgWzI1NSwwLDAsMl0KRkFJTDogcGl4ZWwg
YXQgKDgyLDYyKSB3YXMgWzE4NywwLDAsMTVdLCBleHBlY3RlZCBbMTkxLDAsMCwxNl0KRkFJTDog
cGl4ZWwgYXQgKDgyLDY2KSB3YXMgWzE4OSwwLDAsMzFdLCBleHBlY3RlZCBbMTkxLDAsMCwzMl0K
RkFJTDogcGl4ZWwgYXQgKDgyLDcwKSB3YXMgWzE5MCwwLDAsNjNdLCBleHBlY3RlZCBbMTkxLDAs
MCw2NF0KRkFJTDogcGl4ZWwgYXQgKDgyLDc0KSB3YXMgWzE5MCwwLDAsOTVdLCBleHBlY3RlZCBb
MTkxLDAsMCw5Nl0KRkFJTDogcGl4ZWwgYXQgKDgyLDc4KSB3YXMgWzE5MCwwLDAsMTI3XSwgZXhw
ZWN0ZWQgWzE5MSwwLDAsMTI4XQpGQUlMOiBwaXhlbCBhdCAoODIsODIpIHdhcyBbMTkyLDAsMCwx
OTFdLCBleHBlY3RlZCBbMTkyLDAsMCwxOTJdClBBU1M6IHBpeGVsIGF0ICg4Miw4Nikgd2FzIFsx
OTEsMCwwLDI1NF0KUEFTUzogcGl4ZWwgYXQgKDgyLDkwKSB3YXMgWzE5MiwwLDAsMjU1XQpQQVNT
OiBwaXhlbCBhdCAoODYsNTApIHdhcyBbMCwwLDAsMF0KRkFJTDogcGl4ZWwgYXQgKDg2LDU0KSB3
YXMgWzAsMCwwLDBdLCBleHBlY3RlZCBbMjU1LDAsMCwxXQpGQUlMOiBwaXhlbCBhdCAoODYsNTgp
IHdhcyBbMCwwLDAsMV0sIGV4cGVjdGVkIFsyNTUsMCwwLDJdCkZBSUw6IHBpeGVsIGF0ICg4Niw2
Mikgd2FzIFsyMzgsMCwwLDE1XSwgZXhwZWN0ZWQgWzI1NSwwLDAsMTZdCkZBSUw6IHBpeGVsIGF0
ICg4Niw2Nikgd2FzIFsyNDYsMCwwLDMxXSwgZXhwZWN0ZWQgWzI1NSwwLDAsMzJdCkZBSUw6IHBp
eGVsIGF0ICg4Niw3MCkgd2FzIFsyNTAsMCwwLDYzXSwgZXhwZWN0ZWQgWzI1NSwwLDAsNjRdCkZB
SUw6IHBpeGVsIGF0ICg4Niw3NCkgd2FzIFsyNTIsMCwwLDk1XSwgZXhwZWN0ZWQgWzI1NSwwLDAs
OTZdCkZBSUw6IHBpeGVsIGF0ICg4Niw3OCkgd2FzIFsyNTIsMCwwLDEyN10sIGV4cGVjdGVkIFsy
NTMsMCwwLDEyOF0KRkFJTDogcGl4ZWwgYXQgKDg2LDgyKSB3YXMgWzI1MywwLDAsMTkxXSwgZXhw
ZWN0ZWQgWzI1MywwLDAsMTkyXQpQQVNTOiBwaXhlbCBhdCAoODYsODYpIHdhcyBbMjUzLDAsMCwy
NTRdClBBU1M6IHBpeGVsIGF0ICg4Niw5MCkgd2FzIFsyNTQsMCwwLDI1NV0KUEFTUzogcGl4ZWwg
YXQgKDkwLDUwKSB3YXMgWzAsMCwwLDBdCkZBSUw6IHBpeGVsIGF0ICg5MCw1NCkgd2FzIFswLDAs
MCwwXSwgZXhwZWN0ZWQgWzI1NSwwLDAsMV0KRkFJTDogcGl4ZWwgYXQgKDkwLDU4KSB3YXMgWzI1
NSwwLDAsMV0sIGV4cGVjdGVkIFsyNTUsMCwwLDJdCkZBSUw6IHBpeGVsIGF0ICg5MCw2Mikgd2Fz
IFsyNTUsMCwwLDE1XSwgZXhwZWN0ZWQgWzI1NSwwLDAsMTZdCkZBSUw6IHBpeGVsIGF0ICg5MCw2
Nikgd2FzIFsyNTUsMCwwLDMxXSwgZXhwZWN0ZWQgWzI1NSwwLDAsMzJdCkZBSUw6IHBpeGVsIGF0
ICg5MCw3MCkgd2FzIFsyNTUsMCwwLDYzXSwgZXhwZWN0ZWQgWzI1NSwwLDAsNjRdCkZBSUw6IHBp
eGVsIGF0ICg5MCw3NCkgd2FzIFsyNTUsMCwwLDk1XSwgZXhwZWN0ZWQgWzI1NSwwLDAsOTZdCkZB
SUw6IHBpeGVsIGF0ICg5MCw3OCkgd2FzIFsyNTUsMCwwLDEyN10sIGV4cGVjdGVkIFsyNTUsMCww
LDEyOF0KRkFJTDogcGl4ZWwgYXQgKDkwLDgyKSB3YXMgWzI1NSwwLDAsMTkxXSwgZXhwZWN0ZWQg
WzI1NSwwLDAsMTkyXQpQQVNTOiBwaXhlbCBhdCAoOTAsODYpIHdhcyBbMjU1LDAsMCwyNTRdClBB
U1M6IHBpeGVsIGF0ICg5MCw5MCkgd2FzIFsyNTUsMCwwLDI1NV0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>24758</attachid>
            <date>2008-10-29 15:55:19 -0700</date>
            <delta_ts>2008-10-29 15:55:19 -0700</delta_ts>
            <desc>color&apos;s given to GraphicsContext</desc>
            <filename>imageData-color.txt</filename>
            <type>text/plain</type>
            <size>2310</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">MCwwMDAwMDAgMCwwMDAwMDAKMCwwMDAwMDAgMCwwMDAwMDAKMCwwMDM5MjIgMSwwMDAwMDAKMCww
NTg4MjQgMTUsMDAwMDAwCjAsMTIxNTY5IDMxLDAwMDAwMAowLDI0NzA1OSA2MywwMDAwMDAKMCwz
NzI1NDkgOTUsMDAwMDAyCjAsNDk4MDM5IDEyNywwMDAwMDAKMCw3NDkwMjAgMTkxLDAwMDAwNAow
LDk5NjA3OCAyNTQsMDAwMDAwCjEsMDAwMDAwIDI1NSwwMDAwMDAKMCwwMDAwMDAgMCwwMDAwMDAK
MCwwMDAwMDAgMCwwMDAwMDAKMCwwMDM5MjIgMSwwMDAwMDAKMCwwNTg4MjQgMTUsMDAwMDAwCjAs
MTIxNTY5IDMxLDAwMDAwMAowLDI0NzA1OSA2MywwMDAwMDAKMCwzNzI1NDkgOTUsMDAwMDAyCjAs
NDk4MDM5IDEyNywwMDAwMDAKMCw3NDkwMjAgMTkxLDAwMDAwNAowLDk5NjA3OCAyNTQsMDAwMDAw
CjEsMDAwMDAwIDI1NSwwMDAwMDAKMCwwMDAwMDAgMCwwMDAwMDAKMCwwMDAwMDAgMCwwMDAwMDAK
MCwwMDM5MjIgMSwwMDAwMDAKMCwwNTg4MjQgMTUsMDAwMDAwCjAsMTIxNTY5IDMxLDAwMDAwMAow
LDI0NzA1OSA2MywwMDAwMDAKMCwzNzI1NDkgOTUsMDAwMDAyCjAsNDk4MDM5IDEyNywwMDAwMDAK
MCw3NDkwMjAgMTkxLDAwMDAwNAowLDk5NjA3OCAyNTQsMDAwMDAwCjEsMDAwMDAwIDI1NSwwMDAw
MDAKMCwwMDAwMDAgMCwwMDAwMDAKMCwwMDAwMDAgMCwwMDAwMDAKMCwwMDM5MjIgMSwwMDAwMDAK
MCwwNTg4MjQgMTUsMDAwMDAwCjAsMTIxNTY5IDMxLDAwMDAwMAowLDI0NzA1OSA2MywwMDAwMDAK
MCwzNzI1NDkgOTUsMDAwMDAyCjAsNDk4MDM5IDEyNywwMDAwMDAKMCw3NDkwMjAgMTkxLDAwMDAw
NAowLDk5NjA3OCAyNTQsMDAwMDAwCjEsMDAwMDAwIDI1NSwwMDAwMDAKMCwwMDAwMDAgMCwwMDAw
MDAKMCwwMDAwMDAgMCwwMDAwMDAKMCwwMDM5MjIgMSwwMDAwMDAKMCwwNTg4MjQgMTUsMDAwMDAw
CjAsMTIxNTY5IDMxLDAwMDAwMAowLDI0NzA1OSA2MywwMDAwMDAKMCwzNzI1NDkgOTUsMDAwMDAy
CjAsNDk4MDM5IDEyNywwMDAwMDAKMCw3NDkwMjAgMTkxLDAwMDAwNAowLDk5NjA3OCAyNTQsMDAw
MDAwCjEsMDAwMDAwIDI1NSwwMDAwMDAKMCwwMDAwMDAgMCwwMDAwMDAKMCwwMDAwMDAgMCwwMDAw
MDAKMCwwMDM5MjIgMSwwMDAwMDAKMCwwNTg4MjQgMTUsMDAwMDAwCjAsMTIxNTY5IDMxLDAwMDAw
MAowLDI0NzA1OSA2MywwMDAwMDAKMCwzNzI1NDkgOTUsMDAwMDAyCjAsNDk4MDM5IDEyNywwMDAw
MDAKMCw3NDkwMjAgMTkxLDAwMDAwNAowLDk5NjA3OCAyNTQsMDAwMDAwCjEsMDAwMDAwIDI1NSww
MDAwMDAKMCwwMDAwMDAgMCwwMDAwMDAKMCwwMDAwMDAgMCwwMDAwMDAKMCwwMDM5MjIgMSwwMDAw
MDAKMCwwNTg4MjQgMTUsMDAwMDAwCjAsMTIxNTY5IDMxLDAwMDAwMAowLDI0NzA1OSA2MywwMDAw
MDAKMCwzNzI1NDkgOTUsMDAwMDAyCjAsNDk4MDM5IDEyNywwMDAwMDAKMCw3NDkwMjAgMTkxLDAw
MDAwNAowLDk5NjA3OCAyNTQsMDAwMDAwCjEsMDAwMDAwIDI1NSwwMDAwMDAKMCwwMDAwMDAgMCww
MDAwMDAKMCwwMDAwMDAgMCwwMDAwMDAKMCwwMDM5MjIgMSwwMDAwMDAKMCwwNTg4MjQgMTUsMDAw
MDAwCjAsMTIxNTY5IDMxLDAwMDAwMAowLDI0NzA1OSA2MywwMDAwMDAKMCwzNzI1NDkgOTUsMDAw
MDAyCjAsNDk4MDM5IDEyNywwMDAwMDAKMCw3NDkwMjAgMTkxLDAwMDAwNAowLDk5NjA3OCAyNTQs
MDAwMDAwCjEsMDAwMDAwIDI1NSwwMDAwMDAKMCwwMDAwMDAgMCwwMDAwMDAKMCwwMDAwMDAgMCww
MDAwMDAKMCwwMDM5MjIgMSwwMDAwMDAKMCwwNTg4MjQgMTUsMDAwMDAwCjAsMTIxNTY5IDMxLDAw
MDAwMAowLDI0NzA1OSA2MywwMDAwMDAKMCwzNzI1NDkgOTUsMDAwMDAyCjAsNDk4MDM5IDEyNyww
MDAwMDAKMCw3NDkwMjAgMTkxLDAwMDAwNAowLDk5NjA3OCAyNTQsMDAwMDAwCjEsMDAwMDAwIDI1
NSwwMDAwMDAKMCwwMDAwMDAgMCwwMDAwMDAKMCwwMDAwMDAgMCwwMDAwMDAKMCwwMDM5MjIgMSww
MDAwMDAKMCwwNTg4MjQgMTUsMDAwMDAwCjAsMTIxNTY5IDMxLDAwMDAwMAowLDI0NzA1OSA2Myww
MDAwMDAKMCwzNzI1NDkgOTUsMDAwMDAyCjAsNDk4MDM5IDEyNywwMDAwMDAKMCw3NDkwMjAgMTkx
LDAwMDAwNAowLDk5NjA3OCAyNTQsMDAwMDAwCjEsMDAwMDAwIDI1NSwwMDAwMDAKMCwwMDAwMDAg
MCwwMDAwMDAKMCwwMDAwMDAgMCwwMDAwMDAKMCwwMDM5MjIgMSwwMDAwMDAKMCwwNTg4MjQgMTUs
MDAwMDAwCjAsMTIxNTY5IDMxLDAwMDAwMAowLDI0NzA1OSA2MywwMDAwMDAKMCwzNzI1NDkgOTUs
MDAwMDAyCjAsNDk4MDM5IDEyNywwMDAwMDAKMCw3NDkwMjAgMTkxLDAwMDAwNAowLDk5NjA3OCAy
NTQsMDAwMDAwCjEsMDAwMDAwIDI1NSwwMDAwMDAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27216</attachid>
            <date>2009-01-31 07:19:33 -0800</date>
            <delta_ts>2009-02-02 06:08:32 -0800</delta_ts>
            <desc>imageData respects pre-multiplied colors</desc>
            <filename>imageData-fix.patch</filename>
            <type>text/plain</type>
            <size>2936</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDQ1MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMDktMDEtMzEgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhl
ZCBnZXRJbWFnZURhdGEgYW5kIHB1dEltYWdlRGF0YSBhbmQgcmVzcGVjdCBwcmUtCisgICAgICAg
IG11bHRpcGxpZWQgY29sb3JzLgorCisgICAgICAgIENhaXJvJ3MgSW1hZ2VCdWZmZXI6OmdldElt
YWdlRGF0YSgpIGRvZXMgbm90IGhhbmRsZSBhbHBoYT0wIGNhc2UgY29ycmVjdGx5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU3NQorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Z2V0SW1hZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlQnVmZmVyOjpwdXRJbWFnZURhdGEpOgorCiAyMDA5LTAxLTMwICBBZGFtIEJhcnRoICA8
YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZl
ckNhaXJvLmNwcAkocmV2aXNpb24gNDA0NTApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsMTIgKzEz
MSwxNiBAQCBQYXNzUmVmUHRyPEltYWdlRGF0YT4gSW1hZ2VCdWZmZXI6OmdldEltCiAgICAgICAg
ICAgICB1aW50MzJfdCAqcGl4ZWwgPSAodWludDMyX3QgKikgcm93ICsgeCArIG9yaWdpbng7CiAg
ICAgICAgICAgICBpbnQgYmFzZXggPSB4ICogNDsKICAgICAgICAgICAgIGlmICh1bnNpZ25lZCBp
bnQgYWxwaGEgPSAoKnBpeGVsICYgMHhmZjAwMDAwMCkgPj4gMjQpIHsKKyAgICAgICAgICAgICAg
ICBkZXN0Um93c1tiYXNleF0gPSAoKCpwaXhlbCAmIDB4MDBmZjAwMDApID4+IDE2KSAqIDI1NSAv
IGFscGhhOworICAgICAgICAgICAgICAgIGRlc3RSb3dzW2Jhc2V4ICsgMV0gPSAoKCpwaXhlbCAm
IDB4MDAwMGZmMDApID4+IDgpICogMjU1IC8gYWxwaGE7CisgICAgICAgICAgICAgICAgZGVzdFJv
d3NbYmFzZXggKyAyXSA9ICgqcGl4ZWwgJiAweDAwMDAwMGZmKSAqIDI1NSAvIGFscGhhOworICAg
ICAgICAgICAgICAgIGRlc3RSb3dzW2Jhc2V4ICsgM10gPSBhbHBoYTsKKyAgICAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICAgICAgZGVzdFJvd3NbYmFzZXhdID0gKCpwaXhlbCAmIDB4MDBm
ZjAwMDApID4+IDE2OwogICAgICAgICAgICAgICAgIGRlc3RSb3dzW2Jhc2V4ICsgMV0gPSAoKnBp
eGVsICYgMHgwMDAwZmYwMCkgPj4gODsKICAgICAgICAgICAgICAgICBkZXN0Um93c1tiYXNleCAr
IDJdID0gKCpwaXhlbCAmIDB4MDAwMDAwZmYpOwogICAgICAgICAgICAgICAgIGRlc3RSb3dzW2Jh
c2V4ICsgM10gPSBhbHBoYTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIHJl
aW50ZXJwcmV0X2Nhc3Q8dWludDMyX3QqPihkZXN0Um93cyArIGJhc2V4KVswXSA9IHBpeGVsWzBd
OworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGRlc3RSb3dzICs9IGRlc3RCeXRl
c1BlclJvdzsKICAgICB9CkBAIC0xODUsMTAgKzE4OSwxNCBAQCB2b2lkIEltYWdlQnVmZmVyOjpw
dXRJbWFnZURhdGEoSW1hZ2VEYXRhCiAgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgbnVtQ29s
dW1uczsgeCsrKSB7CiAgICAgICAgICAgICB1aW50MzJfdCAqcGl4ZWwgPSAodWludDMyX3QgKikg
cm93ICsgeCArIGRlc3R4OwogICAgICAgICAgICAgaW50IGJhc2V4ID0geCAqIDQ7Ci0gICAgICAg
ICAgICBpZiAodW5zaWduZWQgaW50IGFscGhhID0gc3JjUm93c1tiYXNleCArIDNdKSB7Ci0gICAg
ICAgICAgICAgICAgKnBpeGVsID0gYWxwaGEgPDwgMjQgfCBzcmNSb3dzW2Jhc2V4XSA8PCAxNiB8
IHNyY1Jvd3NbYmFzZXggKyAxXSA8PCA4IHwgc3JjUm93c1tiYXNleCArIDJdOworICAgICAgICAg
ICAgdW5zaWduZWQgaW50IGFscGhhID0gc3JjUm93c1tiYXNleCArIDNdOworICAgICAgICAgICAg
aWYgKGFscGhhICE9IDI1NSkgeworICAgICAgICAgICAgICAgICpwaXhlbCA9IGFscGhhIDw8IDI0
IHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgKChzcmNSb3dzW2Jhc2V4XSAqIGFscGhhICsg
MjU0KSAvIDI1NSkgPDwgMTYgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKHNyY1Jvd3Nb
YmFzZXggKyAxXSAqIGFscGhhICsgMjU0KSAvIDI1NSkgPDwgOCB8IAorICAgICAgICAgICAgICAg
ICAgICAgICAgICgoc3JjUm93c1tiYXNleCArIDJdICogYWxwaGEgKyAyNTQpIC8gMjU1KTsKICAg
ICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIHBpeGVsWzBdID0gcmVpbnRlcnByZXRf
Y2FzdDx1aW50MzJfdCo+KHNyY1Jvd3MgKyBiYXNleClbMF07CisgICAgICAgICAgICAgICAgKnBp
eGVsID0gYWxwaGEgPDwgMjQgfCBzcmNSb3dzW2Jhc2V4XSA8PCAxNiB8IHNyY1Jvd3NbYmFzZXgg
KyAxXSA8PCA4IHwgc3JjUm93c1tiYXNleCArIDJdOwogICAgICAgICB9CiAgICAgICAgIHNyY1Jv
d3MgKz0gc3JjQnl0ZXNQZXJSb3c7CiAgICAgfQo=
</data>
<flag name="review"
          id="13101"
          type_id="1"
          status="+"
          setter="zecke"
    />
          </attachment>
      

    </bug>

</bugzilla>