+++ /dev/null
-diff -Naurp GD-2.05.orig/GD.pm GD-2.05/GD.pm
---- GD-2.05.orig/GD.pm 2002-11-24 20:27:31.000000000 -0500
-+++ GD-2.05/GD.pm 2003-01-06 17:07:02.000000000 -0500
-@@ -166,6 +166,15 @@ sub GD::Image::newFromPng {
- $class->_newFromPng($fh,@_);
- }
-
-+sub GD::Image::newFromGif {
-+ croak("Usage: newFromGid(class,filehandle)") unless @_==2;
-+ my($class) = shift;
-+ my($f) = shift;
-+ my $fh = $class->_make_filehandle($f);
-+ binmode($fh);
-+ $class->_newFromGif($fh);
-+}
-+
- sub GD::Image::newFromJpeg {
- croak("Usage: newFromJpeg(class,filehandle,[truecolor])") unless @_>=2;
- my($class) = shift;
-@@ -211,6 +220,7 @@ sub _image_type {
- my $data = shift;
- my $magic = substr($data,0,4);
- return 'Png' if $magic eq "\x89PNG";
-+ return 'Gif' if $magic eq "GIF8";
- return 'Jpeg' if $magic eq "\377\330\377\340";
- return 'Jpeg' if $magic eq "\377\330\377\356";
- return 'Gd2' if $magic eq "gd2\000";
-@@ -617,6 +627,14 @@ you can call the image query methods des
- The newFromPngData() method will create a new GD::Image initialized
- with the PNG format B<data> contained in C<$data>.
-
-+=item B<$image = GD::Image-E<gt>newFromGif($file)>
-+
-+=item B<$image = GD::Image-E<gt>newFromGifData($data)>
-+
-+These methods will create an image from a GIF file. They work just
-+like newFromPng() and newFromPngData(), and will accept the same
-+filehandle and pathname arguments.
-+
- =item B<$image = GD::Image-E<gt>newFromJpeg($file, [$truecolor])>
-
- =item B<$image = GD::Image-E<gt>newFromJpegData($data, [$truecolor])>
-@@ -745,6 +763,10 @@ pipe it to a display program, or write i
- Same as gd(), except that it returns the data in compressed GD2
- format.
-
-+=item B<$gifdata = $image-E<gt>gif>
-+
-+Same as gd(), except that it returns the data in GIF format.
-+
- =item B<$wbmpdata = $image-E<gt>wbmp([$foreground])>
-
- This returns the image data in WBMP format, which is a black-and-white
-diff -Naurp GD-2.05.orig/GD.xs GD-2.05/GD.xs
---- GD-2.05.orig/GD.xs 2002-11-22 14:20:54.000000000 -0500
-+++ GD-2.05/GD.xs 2003-01-06 17:07:02.000000000 -0500
-@@ -251,6 +251,7 @@ extern gdFontPtr gdFontTiny;
- #ifdef PERL_OBJECT
- # ifdef WIN32
- #define GDIMAGECREATEFROMPNG(x) gdImageCreateFromPng((FILE*)x)
-+#define GDIMAGECREATEFROMGIF(x) gdImageCreateFromGif((FILE*)x)
- #define GDIMAGECREATEFROMXBM(x) gdImageCreateFromXbm((FILE*)x)
- #define GDIMAGECREATEFROMJPEG(x) gdImageCreateFromJpeg((FILE*)x)
- #define GDIMAGECREATEFROMWBMP(x) gdImageCreateFromWBMP((FILE*)x)
-@@ -261,6 +262,7 @@ extern gdFontPtr gdFontTiny;
- #else
- # ifdef USE_PERLIO
- #define GDIMAGECREATEFROMPNG(x) gdImageCreateFromPng(PerlIO_findFILE(x))
-+#define GDIMAGECREATEFROMGIF(x) gdImageCreateFromGif(PerlIO_findFILE(x))
- #define GDIMAGECREATEFROMXBM(x) gdImageCreateFromXbm(PerlIO_findFILE(x))
- #define GDIMAGECREATEFROMJPEG(x) gdImageCreateFromJpeg(PerlIO_findFILE(x))
- #define GDIMAGECREATEFROMWBMP(x) gdImageCreateFromWBMP(PerlIO_findFILE(x))
-@@ -269,6 +271,7 @@ extern gdFontPtr gdFontTiny;
- #define GDIMAGECREATEFROMGD2PART(x,a,b,c,d) gdImageCreateFromGd2Part(PerlIO_findFILE(x),a,b,c,d)
- # else
- #define GDIMAGECREATEFROMPNG(x) gdImageCreateFromPng(x)
-+#define GDIMAGECREATEFROMGIF(x) gdImageCreateFromGif(x)
- #define GDIMAGECREATEFROMXBM(x) gdImageCreateFromXbm(x)
- #define GDIMAGECREATEFROMJPEG(x) gdImageCreateFromJpeg(x)
- #define GDIMAGECREATEFROMWBMP(x) gdImageCreateFromWBMP(x)
-@@ -503,6 +506,23 @@ gdnewFromPngData(packname="GD::Image", i
- RETVAL
-
- GD::Image
-+gdnewFromGifData(packname="GD::Image", imageData, ...)
-+ char * packname
-+ SV * imageData
-+ PROTOTYPE: $$;$
-+ PREINIT:
-+ gdIOCtx* ctx;
-+ char* data;
-+ STRLEN len;
-+ CODE:
-+ data = SvPV(imageData,len);
-+ ctx = newDynamicCtx(data,len);
-+ RETVAL = (GD__Image) gdImageCreateFromGifCtx(ctx);
-+ (ctx->gd_free)(ctx);
-+ OUTPUT:
-+ RETVAL
-+
-+GD::Image
- gdnewFromGdData(packname="GD::Image", imageData)
- char * packname
- SV * imageData
-@@ -604,6 +624,16 @@ gd_newFromGd(packname="GD::Image", fileh
- RETVAL
-
- GD::Image
-+gd_newFromGif(packname="GD::Image", filehandle)
-+ char * packname
-+ InputStream filehandle
-+ PROTOTYPE: $$
-+ CODE:
-+ RETVAL = GDIMAGECREATEFROMGIF(filehandle);
-+ OUTPUT:
-+ RETVAL
-+
-+GD::Image
- gd_newFromGd2(packname="GD::Image", filehandle)
- char * packname
- InputStream filehandle
-@@ -810,6 +840,21 @@ gdgd2(image)
- OUTPUT:
- RETVAL
-
-+SV*
-+gdgif(image)
-+ GD::Image image
-+ PROTOTYPE: $
-+ CODE:
-+ {
-+ void* data;
-+ int size;
-+ data = gdImageGifPtr(image,&size);
-+ RETVAL = newSVpv((char*) data,size);
-+ gdFree(data);
-+ }
-+ OUTPUT:
-+ RETVAL
-+
- int
- gdtransparent(image, ...)
- GD::Image image
-diff -Naurp GD-2.05.orig/t/GD.t GD-2.05/t/GD.t
---- GD-2.05.orig/t/GD.t 2002-11-22 15:30:06.000000000 -0500
-+++ GD-2.05/t/GD.t 2003-01-06 17:07:02.000000000 -0500
-@@ -7,7 +7,7 @@ use constant FONT=>"$Bin/Generic.ttf";
- use constant SKIP_TEST_8 => 1;
-
- my $loaded;
--BEGIN {$| = 1; $loaded = 0; print "1..10\n"; }
-+BEGIN {$| = 1; $loaded = 0; print "1..11\n"; }
- END {print "not ok 1\n" unless $loaded;}
-
- use GD qw(:DEFAULT GD_CMP_IMAGE);
-@@ -29,6 +29,7 @@ if (defined $arg && $arg eq '--write') {
- compare(&test8,8,'write');
- compare(&test9('frog.xpm'),9,'write');
- compare(&test10('frog.jpg'),10,'write');
-+ compare(&test11('frog.gif'),11,'write');
- }
-
- compare(test2(),2);
-@@ -65,6 +66,14 @@ if (GD::Image->newFromJpeg('frog.jpg'))
- print "not ok ",10,"\n";
- }
-
-+if (GD::Image->newFromGif('frog.gif')) {
-+ compare(test11('frog.gif'),11);
-+} elsif ($@ =~/not built with gif support/) {
-+ print "ok ",11," # Skip, no GIF support\n";
-+} else {
-+ print "not ok ",11,"\n";
-+}
-+
- sub compare {
- my($imageData,$testNo,$fht) = @_;
- local($/);
-@@ -298,6 +307,6 @@ sub test10 {
- sub test11 {
- my $fn = shift;
- my $im = GD::Image->newFromGif($fn);
-- $im->gif;
-+ $im->png;
- }
-
-diff -Naurp GD-2.05.orig/t/GD.t~ GD-2.05/t/GD.t~
---- GD-2.05.orig/t/GD.t~ 1969-12-31 19:00:00.000000000 -0500
-+++ GD-2.05/t/GD.t~ 2002-11-22 15:30:06.000000000 -0500
-@@ -0,0 +1,303 @@
-+#!/usr/bin/perl -w
-+
-+use lib './blib/lib','./blib/arch','../blib/lib','../blib/arch';
-+use FileHandle;
-+use FindBin qw($Bin);
-+use constant FONT=>"$Bin/Generic.ttf";
-+use constant SKIP_TEST_8 => 1;
-+
-+my $loaded;
-+BEGIN {$| = 1; $loaded = 0; print "1..10\n"; }
-+END {print "not ok 1\n" unless $loaded;}
-+
-+use GD qw(:DEFAULT GD_CMP_IMAGE);
-+$loaded++;
-+print "ok 1\n";
-+
-+chdir 't' || die "Couldn't change to 't' directory: $!";
-+
-+$arg = shift;
-+
-+if (defined $arg && $arg eq '--write') {
-+ warn "Writing regression files...";
-+ compare(&test2,2,'write');
-+ compare(&test3,3,'write');
-+ compare(&test4,4,'write');
-+ compare(&test5,5,'write');
-+ compare(&test6,6,'write');
-+ compare(&test7,7,'write');
-+ compare(&test8,8,'write');
-+ compare(&test9('frog.xpm'),9,'write');
-+ compare(&test10('frog.jpg'),10,'write');
-+}
-+
-+compare(test2(),2);
-+compare(test3(),3);
-+compare(test4(),4);
-+compare(test5(),5);
-+compare(test6(),6);
-+compare(test7(),7);
-+
-+if (SKIP_TEST_8) {
-+ print "ok 8 # Skip, FreeType changes too frequently to be testable\n";
-+}
-+elsif (GD::Image->stringTTF(0,FONT,12.0,0.0,20,20,"Hello world!")) {
-+ multicompare(test8(),8,undef);
-+} elsif ($@ =~/not built with .+Type font support/) {
-+ print "ok ",8," # Skip, no FreeType font support\n";
-+} else {
-+ print "not ok ",8,"\n";
-+}
-+
-+if (GD::Image->newFromXpm('frog.xpm')) {
-+ compare(test9('frog.xpm'),9);
-+} elsif ($@ =~/not built with xpm support/) {
-+ print "ok ",9," # Skip, no XPM support\n";
-+} else {
-+ print "not ok ",9,"\n";
-+}
-+
-+if (GD::Image->newFromJpeg('frog.jpg')) {
-+ compare(test10('frog.jpg'),10);
-+} elsif ($@ =~/not built with jpeg support/) {
-+ print "ok ",10," # Skip, no JPEG support\n";
-+} else {
-+ print "not ok ",10,"\n";
-+}
-+
-+sub compare {
-+ my($imageData,$testNo,$fht) = @_;
-+ local($/);
-+ undef $/;
-+ my $ok = $testNo;
-+ my $regressdata;
-+ my $file = ($^O eq 'VMS')? "test.out_".$testNo."_png" : "./test.out.$testNo.png";
-+ if (defined $fht and $fht eq 'write') {
-+ open (REGRESSFILE,">$file")
-+ || die "Can't open regression file '$file': $!\n";
-+ binmode REGRESSFILE;
-+ print REGRESSFILE $imageData;
-+ close REGRESSFILE;
-+ } else {
-+ open (REGRESSFILE,"./$file")
-+ || die "Can't open regression file './t/$file': $!\n";
-+ binmode REGRESSFILE;
-+ $regressdata = <REGRESSFILE>;
-+ close REGRESSFILE;
-+ print $imageData eq $regressdata ? "ok $ok" : "not ok $ok","\n";
-+ }
-+}
-+
-+sub multicompare {
-+ my($imageData,$testNo,$fht,@alt) = @_;
-+ local $/ = undef;
-+ my $ok = $testNo;
-+ my $regressdata;
-+ my $file = ($^O eq 'VMS')? "test.out_".$testNo."_png" : "test.out.$testNo.png";
-+ if (defined $fht and $fht eq 'write') {
-+ die "Not implemented with multicompare";
-+ } else {
-+ my $equal;
-+ opendir(DIR,'.');
-+ ENTRY:
-+ while (my $entry =readdir(DIR)) {
-+ next unless $entry =~ /^$file(-\d+)?/;
-+ open (REGRESSFILE,$entry)
-+ || die "Can't open regression file './t/$entry': $!\n";
-+ binmode REGRESSFILE;
-+ $regressdata = <REGRESSFILE>;
-+ close REGRESSFILE;
-+ if ($imageData eq $regressdata) {
-+ $equal = 1;
-+ last ENTRY;
-+ }
-+ }
-+ closedir DIR;
-+ print $equal ? "ok $ok" : "not ok $ok","\n";
-+ }
-+}
-+
-+sub test2 {
-+ my($im) = new GD::Image(300,300);
-+ my($white) = $im->colorAllocate(255, 255, 255);
-+ my($black) = $im->colorAllocate(0, 0, 0);
-+ my($red) = $im->colorAllocate(255, 0, 0);
-+ my($green) = $im->colorAllocate(0,255,0);
-+ my($yellow) = $im->colorAllocate(255,250,205);
-+ open (TILE,"./tile.png") || die "Can't open tile file: $!";
-+ my($tile) = newFromPng GD::Image(TILE);
-+ close TILE;
-+ $im->setBrush($tile);
-+ $im->arc(100,100,100,150,0,360,gdBrushed);
-+ $im->setTile($tile);
-+ $im->filledRectangle(150,150,250,250,gdTiled);
-+ $im->rectangle(150,150,250,250,$black);
-+ $im->setStyle($green,$green,$green,gdTransparent,$red,$red,$red,gdTransparent);
-+ $im->line(0,280,300,280,gdStyled);
-+ return $im->png;
-+}
-+
-+sub test3 {
-+ my($im) = new GD::Image(300,300);
-+ my($white,$black,$red,$blue,$yellow) = (
-+ $im->colorAllocate(255, 255, 255),
-+ $im->colorAllocate(0, 0, 0),
-+ $im->colorAllocate(255, 0, 0),
-+ $im->colorAllocate(0,0,255),
-+ $im->colorAllocate(255,250,205)
-+ );
-+ my($brush) = new GD::Image(10,10);
-+ $brush->colorAllocate(255,255,255); # white
-+ $brush->colorAllocate(0,0,0); # black
-+ $brush->transparent($white); # white is transparent
-+ $brush->filledRectangle(0,0,5,2,$black); # a black rectangle
-+ $im->setBrush($brush);
-+ $im->arc(100,100,100,150,0,360,gdBrushed);
-+ my($poly) = new GD::Polygon;
-+ $poly->addPt(30,30);
-+ $poly->addPt(100,10);
-+ $poly->addPt(190,290);
-+ $poly->addPt(30,290);
-+ $im->polygon($poly,gdBrushed);
-+ $im->fill(132,62,$blue);
-+ $im->fill(100,70,$red);
-+ $im->fill(40,40,$yellow);
-+ $im->interlaced(1);
-+ $im->copy($im,150,150,20,20,50,50);
-+ $im->copyResized($im,10,200,20,20,100,100,50,50);
-+ return $im->png;
-+}
-+
-+sub test4 {
-+ my($im) = new GD::Image(100,50);
-+ my($black,$white,$red,$blue) =
-+ (
-+ $im->colorAllocate(0, 0, 0),
-+ $im->colorAllocate(255, 255, 255),
-+ $im->colorAllocate(255, 0, 0),
-+ $im->colorAllocate(0,0,255)
-+ );
-+ $im->arc(50, 25, 98, 48, 0, 360, $white);
-+ $im->fill(50, 21, $red);
-+ return $im->png;
-+}
-+
-+sub test5 {
-+ my($im) = new GD::Image(225,180);
-+ my($black,$white,$red,$blue,$yellow) =
-+ ($im->colorAllocate(0, 0, 0),
-+ $im->colorAllocate(255, 255, 255),
-+ $im->colorAllocate(255, 0, 0),
-+ $im->colorAllocate(0,0,255),
-+ $im->colorAllocate(255,250,205)
-+ );
-+ my($poly) = new GD::Polygon;
-+ $poly->addPt(0,50);
-+ $poly->addPt(25,25);
-+ $poly->addPt(50,50);
-+ $im->filledPolygon($poly,$blue);
-+ $poly->offset(100,100);
-+ $im->filledPolygon($poly,$red);
-+ $poly->map(50,50,100,100,10,10,110,60);
-+ $im->filledPolygon($poly,$yellow);
-+ $poly->map($poly->bounds,50,20,80,160);
-+ $im->filledPolygon($poly,$white);
-+ return $im->png;
-+}
-+
-+sub test6 {
-+ my($im) = new GD::Image(300,300);
-+ my($white,$black,$red,$blue,$yellow) =
-+ (
-+ $im->colorAllocate(255, 255, 255),
-+ $im->colorAllocate(0, 0, 0),
-+ $im->colorAllocate(255, 0, 0),
-+ $im->colorAllocate(0,0,255),
-+ $im->colorAllocate(255,250,205)
-+ );
-+ $im->transparent($white);
-+ $im->interlaced(1);
-+ my($brush) = new GD::Image(10,10);
-+ $brush->colorAllocate(255,255,255);
-+ $brush->colorAllocate(0,0,0);
-+ $brush->transparent($white);
-+ $brush->filledRectangle(0,0,5,2,$black);
-+ $im->string(gdLargeFont,150,10,"Hello world!",$red);
-+ $im->string(gdSmallFont,150,28,"Goodbye cruel world!",$blue);
-+ $im->stringUp(gdTinyFont,280,250,"I'm climbing the wall!",$black);
-+ $im->charUp(gdMediumBoldFont,280,280,"Q",$black);
-+ $im->setBrush($brush);
-+ $im->arc(100,100,100,150,0,360,gdBrushed);
-+ $poly = new GD::Polygon;
-+ $poly->addPt(30,30);
-+ $poly->addPt(100,10);
-+ $poly->addPt(190,290);
-+ $poly->addPt(30,290);
-+ $im->polygon($poly,gdBrushed);
-+ $im->fill(132,62,$blue);
-+ $im->fill(100,70,$red);
-+ $im->fill(40,40,$yellow);
-+ return $im->png;
-+}
-+
-+sub test7 {
-+ my $dtor = 0.0174533;
-+ my $pi = 3.141592654;
-+ my $xsize = 500; my $ysize = 500; my $scale = 1;
-+ my $x_offset = $xsize/2; my $y_offset = $ysize/2;
-+ my $im = new GD::Image($xsize,$ysize);
-+ my $poly = new GD::Polygon;
-+ my $col_bg = $im->colorAllocate(0,0,0);
-+ my $col_fg = $im->colorAllocate(255,255,0);
-+ my $col_fill = $im->colorAllocate(255,0,0);
-+ my $r_0 = 100; my $theta_0 = 20; my $spring_factor = 30;
-+ for($theta=0;$theta<=360;$theta++) {
-+ my $r = $r_0 + $spring_factor*sin(2*$pi*$theta/$theta_0);
-+ my $x = int($r * cos($theta*$dtor))*$scale+$x_offset;
-+ my $y = int($r * sin($theta*$dtor))*$scale+$y_offset;
-+ $poly->addPt($x,$y);
-+ }
-+
-+ $im->filledPolygon($poly,$col_fill); # Call gdImageFilledPolygon()
-+
-+ return $im->png;
-+}
-+
-+sub test8 {
-+ my $im = GD::Image->new(400,250);
-+ if (!$im) { printf("Test7: no image");};
-+ my($white,$black,$red,$blue,$yellow) =
-+ (
-+ $im->colorAllocate(255, 255, 255),
-+ $im->colorAllocate(0, 0, 0),
-+ $im->colorAllocate(255, 0, 0),
-+ $im->colorAllocate(0,0,255),
-+ $im->colorAllocate(255,250,205)
-+ );
-+
-+ # Some TTFs
-+ $im->stringFT($black,FONT,12.0,0.0,20,20,"Hello world!") || warn $@;
-+ $im->stringFT($red,FONT,14.0,0.0,20,80,"Hello world!") || warn $@;
-+ $im->stringFT($blue,FONT,30.0,-0.5,60,100,"Goodbye cruel world!") || warn $@;
-+ $im->png;
-+}
-+
-+sub test9 {
-+ my $fn = shift;
-+ my $im = GD::Image->newFromXpm($fn);
-+ $im->png;
-+}
-+
-+sub test10 {
-+ my $fn = shift;
-+ my $im = GD::Image->newFromJpeg($fn);
-+ $im->png;
-+}
-+
-+# not used
-+sub test11 {
-+ my $fn = shift;
-+ my $im = GD::Image->newFromGif($fn);
-+ $im->gif;
-+}
-+
-diff -Naurp GD-2.05.orig/t/frog.gif GD-2.05/t/frog.gif
---- GD-2.05.orig/t/frog.gif 1969-12-31 19:00:00.000000000 -0500
-+++ GD-2.05/t/frog.gif 2003-01-06 17:07:02.000000000 -0500
-@@ -0,0 +1,28 @@
-+GIF89a0\00\0÷\0\0\0\0\0\0\b\0\0\10\0\0\18\0\0\0\b\0\10\b\0\18\b\0\b\10\0\0\18\0\b!\0\10\10\0\10!\0\18\10\0\18\1c\0\10)\0\18)\b\0\0\b\b\0\10\0\0\b\ 4\f\b\10\0\b\10\10\b\18\0\0!\0\18\0\0\10\b\0\18\b\0\10\14\0!\0\0\1f \ 2.\ 5\09\b\0\0)\0\b!\0\0!\b\0)\b\0!\10\0)\10\0!\18\0!%\01\0\01\b\01\10\0)\1c\01\18\01!\09\ 4\fd\14\01+-m@\17yI6uO\1c\84:1\84C\18|[.|a\12\8cA\e\8f;-\8d<+\8aP\1d\87]1\8c\ \88s1\8at\14¤\e\14\9d3\12\9eD!\9c@-¤&+·%2£@5µ;\18Ð5&Ä3*Ì-)ÌC9½)5½73Ã/1Ó2\1f\98U5\9cM1\9aZ+\98u5¹J4±Z+¿X-ÔU\ eÝ×\vðÜ)âÉ+æ×\bæç\ 6õé\14îç$ïä\0ï÷\0ïÿ\0÷ï\0÷÷\0÷ÿ\0ÿï\0ÿ÷\0ÿÿ\bïï\bï÷\b÷ï\rôñ\10ï÷\b÷ÿ\bÿ÷\bÿÿ\18ìñ\18÷ï\10÷÷\10÷ÿ\18÷ÿ\10ÿï\10ÿ÷\10ÿÿ!ñù\1cÿó\18ÿÿ!ÿÿ-óï-ó÷+ÿñ-ýý\7fL\1a\91L\12\9aI\10\95U\evN-\8cH.\98H/\98R*¢S\b£R\1f°O\ 4±H\19¨E-¡T/±G-°R*F\8c0C/>À'B»9:Î'<Î1>Ç;<Ñ;eb4Y\98/N»/OÆ2\93]3³b\19\8fp.»\8d"ç\94\0ä\9f\0ï \0÷\9c\0÷¥\0ÿ\94\0ÿ\9c\0ÿ¥\0Ò\98\bØ\94\18é\91\10è\9e\18÷¥\bÿ\9c\bû\9c\10ù\99&ã« ÷\0÷±\bÿ¥\bÿ\0ÿ\bÿµ\0ÿ½\0Þ©$Ù²3ó©\10ï¯*ÿ¥\10û¥&ýµ\16ü¹)KuJG\8aPH\9bRK©LF·HPµFF±UR±R;¿TFÁNNÄFRÁRBÊN=ÔQHÔFJÓRJ\80aM\9acKeV«cA½gP¿`FÌ_RÐ`N\99xKºwDÛªCâÏ9äÜIãß?õä?õõh\8b\dªY]µO`³b\ÅLaÁYbµk^Ìly_F\96bJ\83\9eSuÁ]ÃvHÛ§O¯¼ZݸPaÄ\8d`ÛÆqÖ\9c¡Ã¡Zæãmîî¤ÿÿ¹ÿÿÜØÅóû÷Æÿÿáÿüäüÿïÿÿûûÿÿÿÿ,\0\0\0\00\00\0\0\bþ\0»Üi3'Ì\9b3fêdÙÖ-\9eCzñ¶mû\92¥K\191\ 4çÌ!s¦c\992fÌ\9cáxæ \987wN\92¹#F\ eÁ\94r¶p³gï\9eM\9b4½iáóg\ f\1d\8dmÚt\fYÆMI\92cî¼y\ 3\ 6\8c\192n¸Ü\91ÃfÏ\1f\9aûöñë×\8f\9f>~üöé\ek¯\e\1e6nÞ\88\fiÆ\8dË\8epß\8cyc\aåJ3oö Á\83\85Û½¯üüõÓº5,Y{pä¸ é¦qH\82pK\8a13\17\r\997aFÊ\13'Î\97oöÆÚ\14m³Þ7,kÔ,f,GÎ\197A\ fvÔ£ºÌA»BÁØñ\92§b\1eÐôê1¤×\e·?yÜ\88\19Ú\91 Ë6o\84"tã%\ e\9f<hî\8c9\19\86Ì\9e>Þ¶þ|±Ã\ 5\r\9c>pðà9\8fG\ e\1a0sô\8cl\1e´\r\1d:ÒÍ\94©ÃG\8bq<j\8c1Ò\1dplÑÂ
-+-L\14\87\1cz°\81_R`\8cq\99\1ds\ 4ÕÑeÐ\11\84\1fB\9cÉ\ 4Ã\ 3'pó\85\1eb\94á\ 5=&LÁ\ 3\ f"\90@\ f\1f^ì\91FHréö\ 6\17ÑÁ&`Jw¤\11\14\19f\88\91\87\16+\98àÃ\91't\13G\19YxSÂ\r=H#C\ f?\88°\r\1fYÌÁ\98\18\7f`ÁÇ7^xá\87\17ß|\81\ 5\98z@7\86\1duxcÂ\ fpþàÃ\ f0`ñ\85\16,ð\80\r\r8D\91C6S\94 $^c\98¸Í\ 3\ e\80H\8f\16ô<\80è\ 3Üd¡\9c\19Yp³Â\ fÐ̰C\ f7ÜðC\82ñ\94°b6C\ 4!\ 4\ ePØÐ\ 2Ery±\ 5\fþûøãÏ>$ÄÃÀ>ÿøÃO Þpá\86\1d~\:\ 344DCC\ f=ø°B<
-+`3Å\145ì\10\84\15VP3E
-+ÜÄ1Æ\1eNÆÊ\ 1\ 6ÿôCÁ>ý\0@\80`\røÑÅ\17Û\90\80Í\f5\f\93Ã\vCHÁÃ\r
-+\14Ði6;è\10Ä\15È\A\r\ e*\1c\87\85ýL\80\8f?\12ä#@>\ 1àÃ\ f\0þ\1c Å\1e\96þ0C4:DrÄ9§B\81M\0\ 3\983Ã\f:P\91\8c\13\95\14q\r5P\94À\rD\ fðCÀ<óTàO\0ù\140\ f>\bøÓ@\990Lq\ 3\ f4,C\ 4\11K,100\0\f\10\ 34Á\fA\ 5Ë\94<Q\845Ò\\10Ï\b"\f@.\ 2\15\84õp>\13\9c»\8f\95Û\9cðC\ fFPAD$Ì\0±\ 4\10Ù\ 4\13\0þ\bS×0D\12\95HB %I<cÌ\ 5. SE5\ 3ä\93OV\ 3LÓx>³^P\r\b `JÃ&@h2É3O ±Ä\101\f0\06ÙHaE3\94H" \13ÍP\81\828\93LâL2Å\98.À\ 5ÙT3Í\ 5\ 2ìNL\13Õ\9c\13Â4äh¢¼2E(\81Ä%T\983À
-+3Ø0\84\10Í\103 9Ë`¾L$\9bPrI\11\91$¿\f\15M4ÁÌ$â\14CÌ3N\14Q\ 43(\fS\8c2\960ñDèHp-\80<\ 5\98\ 2\14¬\80\fb \0\ 4(8F5\8eA\8c#0CeÅ G1"q\8ed0\83\18\91(G9"Q\reT¢\12M8Ç\ 1Q\80\82&8\ 3 H¸\82\15F \8fx¬À\ 6Ù¨B×Ä¡\f\13\16\81\1aÕÈ\86\ 5.\0\ 2\ 1\ 4`wþ¦\vâ\ f\83gºp\8cÃ\18ÈxÆ2\86\81À%8# W\18\ 1DHÀ\ 3(`n\1c\17(Æ2\96Q\8d\v\f x\ 1\b\0\0$ \ 1\rD \ 2\0È\0\19%\0\81\1f\92l\0\17\90\861¦\ 1\ 2sd\ 3\ 5\96h\825R°\8dx\ \a\17 F5\86q\ 1àù0\ 3\18È@\ 4|Ø\ 1\ e|À\ 3\18ø\96\a&É\81\ eüP\ 2\96\14@\ 3\14 \80\92Ea\19.`B2RÐ\8dm\94 \ 6\178ß8\ 6\10\80\ 2\ 4\80\ 2\91\94\0\0~\88\81vز\1d\83ð\0 nÙ\ e\v\0\80\ 3\12\bc\ 2\10@²i\94c\12 P\ 6\15\0\11\18Ü\0\ 4\13\\864¾h\01Î2\8c\10¸e/p\81\88nî¢\17¹hÇ<$\0L7þP\1cÊÓ\ 4
-+\98a\85\16ð\81\ e_\b\9b8\96q\8dc\98#x)þØ]'[9\ 1\f¼£\1dïÈÅ;\ 2\9a\8bOl \ 3n4\1d\b\ 6°\8eL(¯\18(@\86\v¶\0\a4|Ã\ 4Ð(ä\ 5ì©\ es\ 4Ã\1cÒó¢éD`\0/öÐ\8b\ 6H\81éxH\8ceX#\7fà\vG\b.`G\17¼\93\ e|p\e<\82!\ e\14\`\ 4!8à4@\1a\8er\f£\1aÕ0F9ÄQ\8ec\1cu\18âXG1\98ð\8c#PÁ\12\95Ø\84\vP \rxL!\e)Ø\82\1fè\80\85-¤`\aFPÞ&,q\ 4ctM\0\ 50\871\88Á\f'\Â\19L¨¡\13\9eñÀa\1cC\19\930ÇP\83*\89Q#\e,\90\88\16"\12\ fm¸@\bF\0\ 2\13.Á\fkü\ e\18Á¸À:\9b` K¬¯\bk¥\ 22p¸\fb\80\0x\ 3\b\87%\9cð\ 4KD\ 1\ 5ñ\90þ\87<Îá\ ew\9cC\eÚx\81\f²\91\83dPá\1aR\8b\821\8cA\ eÌi\94\84Æ=.\b\841¬(\10ã JÀ\1d\bæQÛ\ä¢\15¿pÇ:\1a{Ö(Ð \1aQ\0A0r0\84õ\15£\1c&\8bF\r\8e1\ esD\ 3\1a; Â$\ 4Y\80\ 1è \19ê[Æ\0ª\8b\vXÈB\17º\b§;æ\ 1G\1eÖ \1cæ°\80\14ª°\84¬Fâ\ 2\9bÊ\ 62Ê\81Eaä K`+$Â!\8ephÖtîÈ\ 5.\0|
-+] b\17ïÀ@\ 42\11\83pHN¤Á\88\ 22.!\89âÖ\0
-+PH\ 6\11Ê\ 1\ 2\1dPc J°D2|ZHs\80#\1cê\0A\ 6r±\vP¸b\17¹Ð\80\0 \11\8ci\ 4\83\81-\15\að\80!\rjLb\13 ð®9\96A\8ec\84y\bM¸\84þ Q \8c\1dT\19¤Ç\80Ä:.@\ 1ë¶\83\ 3\9e\0ÆéB \fs\80\80\1c\91\10\87\00\11\80hàà\bÝ\83\84\95\87Áá\1eWÁ\19\938Æïv\0¥\v\ 4£\ 6!0Ç\ 5Â\91
-+¸Ã\ 3è\0\a\0À\ 1\8d\ 2`\ 3\1c"@r\ 10\91\8e\0Ô \a×@æ\0\80\91\ 1\0X\0\8eP\bÂ&$\11\8e/\ 6\0\eP\ 3\ 68,\1d\83\10`B\1d\1d@\87\ 40\80\ e\ 2d\0\1c\10 \0&"0\ 1t`ÂÚ" Æ\11\94q\8cy\0\0\1dè\80\0Õv\80\f"\90Ã\ 2ׯD\a$à\8e\ elÀ\1d\ 1x÷\ 6:Ð\ etx¢\10é8D 8\ 1\bN\10"\1d\83(\84'Ò\ 1\89\1d\90wvà\90@:\94\r\8c\19 \80\1aËÈÄ\0¬\9b\8bTàâ\17ýý\ 5*~\11
-+Xàb\15\80\0D#þ\12±\88E4b\10\83\18y#ü-\ 1L\80#µë\bÞÂýM\81YÿN\1d\9fø\0,Ha\8bQ\88"\16±\bÅ-H1
-+Z\98\82\17\83èD"\1eÑ\88\91\1f"\11\89@9'ÒA\bH\12¢\ 3\18 \ 4:8ÑôAx\82\10\18è\0 :ð\81\8d\93â\14¦ \ 5-Î\8evS\98Â\15®X\ 4Ó\ fa\bC4â\11(\97z:ÒQ\b|÷=\1d\8d°{"\ 2\11\88N\f\ 2\11\9d@D*~¡\8bQÔÂ\14£0\ 5ÚÛÞ
-+¸3\82\11t\a<Ý\13q\88Apâ\10\85`\ 4;ÒÁ\88F¤Ã\11\86(\84¾\13\9f\8a]|ü\9b¼P\85.|q\8aÚ×\9e\14¬`\85.XÁ\vF<BóO\7fÄÜ\9b~ùËÛ\9d\11\82`z7G¼\8a_¸b\15¾\18\ 5/|Á\vV\88Âö§ \85.`Ì¡\8bX\90Â\10Æ_\ 4É\1fá\88ò\97ÿ\11%\1fÄ!:!\88Nô¢\17º\b\ 5õM1\v\0\87b\16§\98\85(@Q\v£ß>\16°\0t±ð\b\89 \b\9dð
-+¯Ð \8a \brWr\vØMݤ\bªÐ\v\8eW\v¶7
-+§ \v×W
-+¦@
-+¤`\81Øç}"(
-+\8dç
-+¼Ð\v®Ð\v«ð~¯°
-+«°\vºðM®À
-+´Ðs´p
-+£Ð
-+¼ y§`\v8Ø\7fÙ\a
-+¹×
-+Ø\97}±`\vk·v¤\10\vk÷s² \v°\0\vÖ7\v\1eH
-+k\87v@\847x{8h
-+¾À
-+¾ \v®Ðv·\17\10\0\0;
-\ No newline at end of file
-diff -Naurp GD-2.05.orig/t/test.out.11.png GD-2.05/t/test.out.11.png
---- GD-2.05.orig/t/test.out.11.png 1969-12-31 19:00:00.000000000 -0500
-+++ GD-2.05/t/test.out.11.png 2003-01-06 17:07:02.000000000 -0500
-@@ -0,0 +1,13 @@
-+\89PNG\r
-+\1a
-+\0\0\0\rIHDR\0\0\00\0\0\00\b\ 3\0\0\0`Ü µ\0\0\ 2ýPLTE\0\0\0\0\b\0\0\10\0\0\18\0\0\0\b\0\10\b\0\18\b\0\b\10\0\0\18\0\b!\0\10\10\0\18\10\0\18\1c\0\10)\0\18)\b\0\0\b\b\0\10\0\0\b\ 4\f\b\10\0\b\10\10\b\18\0\0!\0\18\0\0\10\b\0\18\b\0\10\14\0!\0\0\1f \ 2.\ 5\09\b\0\0)\0\b!\0\0!\b\0)\b\0!\10\0)\10\0!\18\0!%\01\0\01\b\01\10\0)\1c\01\18\01!\09\ 4\fd\14\01+-m@\17yI6uO\1c\84:1\84C\18|[.|a\12\8cA\e\8f;-\8d<+\8aP\1d\87]1\8c\ \88s1\8at\14¤\e\14\9d3\12\9eD!\9c@-¤&+·%2£@5µ;\18Ð5&Ä3*Ì-)ÌC9½)5½73Ã/1Ó2\1f\98U5\9cM1\9aZ+\98u5¹J4±Z+¿X-ÔU\ eÝ×\vðÜ)âÉ+æ×\bæç\ 6õé\14îç$ïä\0ï÷\0ïÿ\0÷ï\0÷÷\0÷ÿ\0ÿï\0ÿ÷\0ÿÿ\bïï\bï÷\b÷ï\rôñ\10ï÷\b÷ÿ\bÿ÷\bÿÿ\18ìñ\18÷ï\10÷÷\10÷ÿ\18÷ÿ\10ÿï\10ÿ÷\10ÿÿ!ñù\1cÿó\18ÿÿ!ÿÿ-óï-ó÷+ÿñ-ýý\7fL\1a\91L\12\9aI\10\95U\evN-\8cH.\98H/\98R*¢S\b£R\1f°O\ 4±H\19¨E-¡T/±G-°R*F\8c0C/>À'B»9:Î'<Î1>Ç;<Ñ;eb4Y\98/N»/OÆ2\93]3³b\19\8fp.»\8d"ç\94\0ä\9f\0ï \0÷\9c\0÷¥\0ÿ\94\0ÿ\9c\0ÿ¥\0Ò\98\bØ\94\18é\91\10è\9e\18÷¥\bÿ\9c\bû\9c\10ù\99&ã« ÷\0÷±\bÿ¥\bÿ\0ÿ\bÿµ\0ÿ½\0Þ©$Ù²3ó©\10ï¯*ÿ¥\10û¥&ýµ\16ü¹)KuJG\8aPH\9bRK©LF·HPµFF±UR±R;¿TFÁNNÄFRÁRBÊN=ÔQHÔFJÓRJ\80aM\9acKeV«cA½gP¿`FÌ_RÐ`N\99xKºwDÛªCâÏ9äÜIãß?õä?õõh\8b\dªY]µO`³b\ÅLaÁYbµk^Ìly_F\96bJ\83\9eSuÁ]ÃvHÛ§O¯¼ZݸPaÄ\8d`ÛÆqÖ\9c¡Ã¡Zæãmîî¤ÿÿ¹ÿÿÜØÅóû÷Æÿÿáÿüäüÿïÿÿûûÿÿÿÿ)\1aCà\0\0\bÌIDATx\9c%S\vX\13W\1a½3#]·uÕh\1d¨\80\ 3\8a\86¥R-PD@T@l\ 1\85\12\91\87\ 2%\90X·ÉÈC¢\82¯\86§\90"F\10yX\85lÒ\16¤ àB\0!\12\9eI\15 Qb@H\84\bºb#\14\v\ 1úí\r{îܹó8ç¿ÿ9ß\f8Êa%|C2\19'CÕCz½~Z¯VG\86\1e\8d\8df%$$Ä0\99ÌØX\ 6\83 /Hf\14É\89"c\0':\9e\95À\89\8a\ f\1f\9c\99yoÄÌÌó°\94óÉ\89 ,\16\93É`IJ\99$\14Ð9$\19\15Å\88\ 1ì#\9cøï\92ÏÏÌ\18\fó\v\vósóó\86¹¹¹\99¡Sß±I\ 6ä3ØñP\aAÒÉ$\92\ 3w`\90ÉÇN\85\f¾\87ÔÅ\ 5Ãüü\82Q13s"\9e\rÉlxb%,ñ£\19tòX\f ¾aÆ\90ô\93qq\91Ã3ssïß\eçû?\86Cþu\9c½T=\9eÉf±H(8s\9c\1dK2I\ e\88a1£\92"N\87\1e==<3ý\87zhzhhðüiv4l\9fÉd%ÄCºÑ
-+;".åô1\ e=
-+\90ßÄ$\9f}\1e\1e\99täØ\89³'N\9d:qöTü±¨\843ÆdX\10\89\89F~ìÉ\94°¡ÁSÇéL\10Ã9\11¾Õn«:2.þÌw\89,:'\8a\1eC&-%\14CÂê PÀ8\19\17>¸må\96ÁÈ3Ñ 6bzs\90\9b\9bõ¦é\94\88äo\19\f\92\1e\95D\1e!Yl\16\9dÉ\89â|ËbÅ0¢O\87ÙmÞµk×\96¡¸X\10úÜÆÙ½ïsw\ fkuJh\ 2ô\19}>$e8"â\ÄpdÈpÄ\19\16IO:ù|³\aÄ.\8fm!\91 ìS·\ 1Ç\1d\81.ª \9b¡8X?6B½ò\1f+·L\87M¯\84ë`(;\9a\11:hçÑëàêîìì±U\rô6nn*Ï={w\ 4|±52\94¤G\84o3,.\1a6é?2üµ8oóü\b;é\9c\9d\87C¯ãcGw÷]vzðá@P\90\93ë\9eààþ ÛÁ8zòs\eâ¹é_\vk\r\v`ÙâÂ\8asG#Õ\9b\ 6\1c\9cÚ\>óüÚÍùC`âì¬rݹçp×áþ\1dÿ\1c<\1f¢ÿhaÍ\9f\8b\94Yt\16ùs\1e,þ-,\196äðxg\9eÏKØÅ\0\ 20\9d\83ÃNZ÷\81|ï§ý\ 16\83Óú\95ó˦¦>^DfM¦þ\¾¸b8r[\90³\9b£ÌËË×·\7fG+\0Øö^\89'í@þÕ\83ÞOúpýFk̰°üãy\ 3:;»fÙ¢ÁZÞâá¾\8fæ\95'ßí»[%A\0±½×ÉóËü+W¯~ù¨\ 3·ï:¤Äfg\r\ 6L\ 1\97E\ 3®$\b\8f^ÇâÝEüG\a÷ûznÇ\06 ú:ø·«W®øýF£jùü\87Ýí\18\86â*¥\ 2GQ\ê¯|i¥\18-**êñþjÿ5\9a\ e\ 3v\ e_xîýMÊ\1f\95\11\84,¯øê5ï¼Ñ"\19Íß_Î×¶K\1f\1dðö\96SÛÚ{
-+ü\ e\1eÜ¿ÿI\1f
-+Þ\99\ 4\ 5\ 4wI©\ 4µSÙ)õ\91ÓºÛGÛó^vË¥yccyÊ\9eü|ÿ\97ð%Õÿáþý\87\837¾\ 3z»/T\87úpm\8fÿCï~¥j\1dN \b\8acF (\8ab\98æEG×#Y\eAõ}øåá\8dÓ@¿É-\80 ^àí2\99\12ÇP\14A\0\85òÉêÕÀ\8cB¡¬BP\ 4Ãð¾\ e\ 5¡SQ\vü\9fØÂO\ 3wÇ¥Ê6\1cZDÌLÍV£\88\85ù\ 6KSsSKKKs\v\ 4¥À¹âC\14Ó\ 5Êìýºm\87\80ÚÆ \97Ñ^`\88 ²ÖÔ\9c\ 2\10Ôô\r\ 4×ò\82qY\aÌ)\bò÷å\b¦\18ã\13=4{5\88ÜæL´çÉú0ô\ 3\ 4\0\ 4AVA^s}fffcsÃ\9b)
-+\14À6Q-L\96*\ fÞ\9a\ 2\12#1ìi§\ eEmQ\1c\85;1}ûæmÃÛ·\r\r?®7[2A`¯¯\17\15µS»ìÃO\80cÃ\9b{q\1cïÔ½ÒIt:Ì\98\8fõ\a8FÀ¤>°\85\86 ©ìI\81_^±Æ
-+שìS\12AbÊ\16\8fß%Z*¾Ñ\8aJ(t:ÍX\9bRÙ1¦\1dëlS¶i_·û=ò¡\15ä\17ÛSû~\ fRÙ\86\9f\ 3\89!á¶®û\8a\8a\8a\v|:úpÔD×!\95\1f¸öЯÇÿÀ#9³\87¯S謨W¼\9fô«>U«Ã\80^\7ff¿wßn¿kò'
-+¼U\82Såþ\ 5\ 5r¾wq\ 1«_)\93\12Ð\98¦àÀÁ\82@ªþÝ»\97`ròå³g\9f}®ré¦=Ŷ\avt\8c\12\ 4ôD¥.-8\95xàÐ\e(=øUw;159ÙÐ\0n·L¾Ö?³u\rtT\ 6\12\12\17O9¿}LçðØ©ó\85îq¯«\17_ª4ÁvvûËe\18¤×Wß\ 1bqÃ\9bÉ)\fÇ '\8dnÝ×\87|ó\8bópWwUר\vü\81\8b¿o\81Ïe\8dV\83S1\fòÅb\11\10ÿÔøÖtõõí\1a\851RI`×µ+£\84S@@·×\18±³ß÷«\82n*ìL7¢yE\9854Þ¬\ 2\8d\r\9f \97%
-+I§T*Óâhk_?¿\98\btÔÉF;\89@OÿkR%õ\81«\ 4æÝyù5¾\16zxc~£\15\e°z #Fó´h!òx\87\8f\8c¸¬\90´i´ÄÎC\ fù\9d
-+ÜÕÙ\1d\978YépÍõµ\93Àr|\ 4\8cô\9a\f\8cXk^\99\14N N.Où\ 4Öj\ 6ÖaxÀ\9eâ+\1a\fE\ 6ZAë\b.ÙnUøÊ\ 2\8cSLÇ\97\99\8d¬Z[¸zÍxáx¡u¿OOç\14\18\1f_Õ+qíò\1a]\a\9fYP&-ÖO"ë'×[¼\ 1ã7Ò&2.\96\(I\9dà¦Ý\98¸ìêâIÕ\8eP&Æ)\ eÔ~Ùu¬¡¡áçú\96úê\96\9fZnU×W\80\v\17xYÙÙ<.\97\97Å+I¥\14\8e`\9a×(:1^\92º\16kUà¯~ÜP-¸W^VSsë?\82òZa\13à\96fåòxY\19YY\nÉDª¥iª\85iêx \8fǽ\91jjqÁbÃO-\ 2\91°¶V \12 \85ª*\90\9dËËHOçår¹FÁDZ\9añà¥ó².^,åf\96fþÜ".¯\13\96\vEp\boCANNFú\ 4ÔdepK2Òrþ;\91Ã\9bø!=-ã"ä6ÖW467ý"¾/2BPY)®l\ 29¹\90\9e\91\95\v7âñr Òy9ßçò23ëÅ\15-U\15÷Ë\9bî7U\96- ÄÕâ\1a\ 1H\87\94ì¬ìÜ\1f\8cÈÍÎæf\94~_ÚÜ,¾u¿IxW,¾uWt·ìf]\10
-+jªkjj@nÖ¥Ò_\7f-½t)\e²/]\82?\7fæ¥_\9aËëê`ÍrÑ\9d2Ñ¿\85\ 2AÝRO5\ 28@\99¸¼ª©¹ª¹¢¹ù×\8a\8aFqcsUeí½òZQùí&Xö\9e¨¼®V$¸YYyûÿF@ͽZA@PS+(«¹s§ºº²ì®@\0\9f\88\84·o\8bj\8d\14Q¹ð~å}q\15L Þý\ f±\11xðFë\13\\0\0\0\0IEND®B`\82
-\ No newline at end of file