--TEST--
libgd #100 (spurious horizontal line drawn by gdImageFilledPolygon)
--SKIPIF--
<?php
    
if (!extension_loaded('gd')) die("skip gd extension not available\n");
    if (!
GD_BUNDLED) die("skip requires bundled GD library\n");
?>
--FILE--
<?php
$im 
imagecreatetruecolor(256256);

$white   imagecolorallocatealpha($im25525525510);
$black   imagecolorallocatealpha($im,   0,   0,   010);
$red     imagecolorallocatealpha($im255,   0,   010);
$green   imagecolorallocatealpha($im,   0255,   010);
$blue    imagecolorallocatealpha($im,   0,   025510);
$yellow  imagecolorallocatealpha($im255255,   010);
$cyan    imagecolorallocatealpha($im,   025525510);
$magenta imagecolorallocatealpha($im255,   025510);
$purple  imagecolorallocatealpha($im100,   010010);

imagefilledrectangle($im00255255$white);

// M (bridge)
$top 240;
$bot 255;
$d 30;
$x 100;
$points = array(
  
$x,      $top,
  
$x+2*$d$top,
  
$x+2*$d$bot,
  
$x+$d,   ($top+$bot)/2,
  
$x,      $bot
);
imagefilledpolygon($im$points5$yellow);

// left-facing M not on baseline
$top 40;
$bot 70;
$left 120;
$right 180;
$points = array(
  
$left,  $top,
  
$right$top,
  
$right$bot,
  
$left,  $bot,
  (
$left+$right)/2, ($top+$bot)/2
);
imagefilledpolygon($im$points5$purple);

// left-facing M on baseline
$top 240;
$bot 270;
$left 20;
$right 80;
$points = array(
  
$left,  $top,
  
$right$top,
  
$right$bot,
  
$left,  $bot,
  (
$left+$right)/2, ($top+$bot)/2
);
imagefilledpolygon($im$points5$magenta);

// left-facing M on ceiling
$top = -15;
$bot 15;
$left 20;
$right 80;
$points = array(
  
$left,  $top,
  
$right$top,
  
$right$bot,
  
$left,  $bot,
  (
$left+$right)/2, ($top+$bot)/2
);
imagefilledpolygon($im$points5$blue);

$d 30;
$x 150;
$y 150;
$diamond = array($x-$d$y$x$y+$d$x+$d$y$x$y-$d);
imagefilledpolygon($im$diamond4$green);

$x 180;
$y 225;
$diamond = array($x-$d$y$x$y+$d$x+$d$y$x$y-$d);
imagefilledpolygon($im$diamond4$red);

$x 225;
$y 255;
$diamond = array($x-$d$y$x$y+$d$x+$d$y$x$y-$d);
imagefilledpolygon($im$diamond4$cyan);

// M (bridge) not touching bottom boundary
$top 100;
$bot 150;
$x 30;
$points = array(
  
$x,      $top,
  
$x+2*$d$top,
  
$x+2*$d$bot,
  
$x+$d,   ($top+$bot)/2,
  
$x,      $bot
);
imagefilledpolygon($im$points5$black);

ob_start();
imagepng($im);
$png ob_get_contents();
ob_end_clean();

echo 
md5($png);

imagedestroy($im);
?>
--EXPECTF--
2e6cf558bb4dadf60c8b608d5f8cda4e