preview(); exit(); } if ($action=="colorreader"){ if (!$filename) echo "
"; else echo outputColorAt($posx,$posy,$dir,$filename); exit(); } // image calls if ($img=="left"){cornerleft();exit;} if ($img=="right"){cornerright();exit;} if ($img=="logo"){logo();exit;} if ($img=="pixpos"){pixpos();exit;} ///////////////////////////////////////////////////////////// // message strings $GLOBALS["message_2large"] = "Image size is too large for this function! Please resize the image or increase the maximum size in the configuration."; $GLOBALS["message_rmdir_failed"] = "Removal of this directory failed. It might still contain files or not be writable."; $GLOBALS["message_supported"] = "Editing supported"; $GLOBALS["message_not_supported"] = "Editing is NOT supported"; $GLOBALS["message_no_file"]= "No file selected"; $GLOBALS["message_dir_up"] = " Up one level"; $GLOBALS["function_not_available"] = "* Truecolor Functions NOT available *
"; $GLOBALS["message_no_exif"] = "EXIF data not available"; $GLOBALS["message_no_rotate"] = "Rotate function not available"; ////////////////////////IMAGE TEXT CLASS////////////////////////// class imagetext{ var $handle; var $dx; var $dy; function imagetext($fontfile, $fontsize, $fontcolor, $textstr, $angle=0, $bgcolor=""){ $text=stripslashes($textstr); // font color $r = hexdec(substr($fontcolor, 0, 2)); $g = hexdec(substr($fontcolor, 2, 2)); $b = hexdec(substr($fontcolor, 4, 2)); // bg color if ($bgcolor && $fontcolor!=$bgcolor){ $rb = hexdec(substr($bgcolor, 0, 2)); $gb = hexdec(substr($bgcolor, 2, 2)); $bb = hexdec(substr($bgcolor, 4, 2)); }else{ $r>128?$rb=0:$rb=255; $g>128?$gb=0:$gb=255; $b>128?$bb=0:$bb=255; } //$fontsize = $fontsize/96*72; $size = imagettfbbox($fontsize,$angle,$fontfile,$text); $factor = $fontsize/2; $this->dx = $factor + max($size[2], $size[4]) - min($size[0], $size[6]); // extreme x values $this->dy = $factor + max($size[1], $size[3]) - min($size[5], $size[7]); // extreme y values $this->handle = imagecreate($this->dx,$this->dy); $transcolor = ImageColorAllocate ($this->handle, $rb, $gb, $bb); imagefill($this->handle,0,0,$transcolor); $textcolor = ImageColorAllocate($this->handle, $r, $g, $b); $offsety = $this->dy-($factor); $offsetx = $factor/2+($factor*$angle)/60; ImageTTFText($this->handle, $fontsize, $angle, $offsetx, $offsety, $textcolor, $fontfile, $text); imagecolortransparent($this->handle, $transcolor); } function preview(){ header("Content-type: image/png"); imagepng($this->handle); } } ////////////////////////MAIN IMAGE CLASS////////////////////////// class imageobject{ var $handle; var $type="jpg"; var $height=0; var $width=0; var $string;// for img height/width tags var $square; // output message var $message; // previous file var $previous; // current var $directory; var $filename; //output var $resample=false; var $quality="80"; var $output="jpg";// alternatives png8 or png var $transparent; // only if output=png8 // textobject var $previewobject; //constructor function imageobject($directory,$filename,$type="jpg") { $this->directory = $directory; $this->filename = $filename; $this->type = $type; if (file_exists($directory.$filename)){ $this->filesize = ceil(filesize($directory.$filename)/1024); $size = GetImageSize($directory.$filename); if ($size) $this->handle = $this->getHandle($directory.$filename,$size[2]); $this->width = $size[0]; $this->height = $size[1]; $this->string = $size[3]; $this->square = $size[0]*$size[1]; if ($this->handle) $this->message = $GLOBALS["message_supported"]; else $this->message = $GLOBALS["message_not_supported"]; } }// constructor // private methods function getHandle($name,&$type) { switch ($type){ case 1: $im = imagecreatefromgif($name); $this->type= "gif"; break; case 2: $im = imagecreatefromjpeg($name); break; case 3: $im = imagecreatefrompng($name); $this->type= "png"; break; } return $im; } function uniqueName() { $add=""; $fileparts = split("\.",$this->filename); $nonchr = array("__","0","1","2","3","4","5","6","7","8","9"); $desc = str_replace($nonchr,"",$fileparts[0]); $name = $desc."__".date("YmdHms"); // if exists add incremented number if (file_exists($this->directory.$name.".".$this->type)){ $add = 1; while(file_exists($this->directory.$name.$add.".".$this->type)) $add++; } return $imgnew.$name.$add.".".$this->type; } function createUnique($imgnew) { $this->type = substr($this->output,0,3); $unique_str = $this->uniqueName(); switch ($this->type){ case "png": imagepng($imgnew,$this->directory.$unique_str); break; default: imagejpeg($imgnew,$this->directory.$unique_str,$this->quality); break; } imagedestroy($this->handle); $newobject = new imageobject($this->directory,$unique_str,$this->type); return $newobject; } function createImage($new_w,$new_h) { if (function_exists("imagecreatetruecolor") && $this->output!="png8"){ return imagecreatetruecolor($new_w,$new_h); }else{ return imagecreate($new_w,$new_h); } } function copyhandle(&$dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) { if ($this->output=="png8" && $this->type="jpg"){ imagecopyresized($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); $this->resample==true; } if (function_exists("imagecopyresampled") && $this->resample==true) imagecopyresampled($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); else imagecopy($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h); } function copycreatehandle(&$src_im, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) { $dst_im = $this->createImage($dst_w,$dst_h); $this->copyhandle($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); return $dst_im; } function valore($n1,$n2,$hue) { if($hue>=360) $hue = $hue-360; if($hue<0) $hue = $hue+360; if($hue>=240) $result = $n1; if($hue<240) $result = $n1+($n2-$n1)*(240-$hue)/60; if($hue<180) $result = $n2; if($hue<60) $result = $n1+($n2-$n1)*$hue/60; return($result); } function rgb2hls($r,$g,$b) { $c1 = $r/255; $c2 = $g/255; $c3 = $b/255; $kmin = min($c1,$c2,$c3); $kmax = max($c1,$c2,$c3); $l = ($kmax+$kmin)/2; if($kmax == $kmin){ $s=0; $h=0; } else { if($l<=0.5) $s = ($kmax-$kmin)/($kmax+$kmin); else $s = ($kmax-$kmin)/(2-$kmax-$kmin); $delta = $kmax-$kmin; if($kmax==$c1) $h = ($c2-$c3)/$delta; if($kmax==$c2) $h = 2+($c3-$c1)/$delta; if($kmax==$c3) $h = 4+($c1-$c2)/$delta; $h = $h*60; if($h<0) $h = $h+360; } $out->h = $h; $out->s = $s; $out->l = $l; return($out); } function hls2rgb($h,$l,$s) { if($l<=0.5) $m2 = $l*(1+$s); else $m2 = $l+$s*(1-$l); $m1 = 2*$l-$m2; $c1 = $this->valore($m1,$m2,$h+120); $c2 = $this->valore($m1,$m2,$h); $c3 = $this->valore($m1,$m2,$h-120); if ($s==0 && $h==0){ $c1 = $l; $c2 = $l; $c3 = $l; } $r = round($c1*255); $g = round($c2*255); $b = round($c3*255); $out->r = $r; $out->g = $g; $out->b = $b; return($out); } function saveAlpha(&$handle) { ImageAlphaBlending($handle, true); imagesavealpha($handle,false); imagesavealpha($handle,true); } function getHexColor($xpos,$ypos) { $color = imagecolorat($this->handle, $xpos, $ypos); $colorrgb = imagecolorsforindex($this->handle,$color); if ($colorrgb["red"]>0)$hred = dechex($colorrgb["red"]); else $hred = "00"; if (strlen($hred)<2)$hred = "0".$hred; if ($colorrgb["green"]>0)$hgreen = dechex($colorrgb["green"]); else $hgreen = "00"; if (strlen($hgreen)<2)$hgreen = "0".$hgreen; if ($colorrgb["blue"]>0)$hblue = dechex($colorrgb["blue"]); else $hblue = "00"; if (strlen($hblue)<2)$hblue = "0".$hblue; return strtoupper($hred.$hgreen.$hblue); } // public methods function rotateImage($degrees) { if (function_exists("imagerotate")){ if ($degrees == 180){ $dst_img = @imagerotate($this->handle, $degrees, 0); }else{ $width = $this->width; $height = $this->height; if ($width > $height) $size = $width; else $size = $height; $dst_img = $this->createImage($size, $size); $this->copyhandle($dst_img, $this->handle, 0, 0, 0, 0, $width, $height,$width, $height); $dst_img = @imagerotate($dst_img, $degrees, 0); $this->handle = $dst_img; $dst_img = $this->createImage($height, $width); if ((($degrees == 90) && ($width > $height)) || (($degrees == 270) && ($width < $height))) $this->copyhandle($dst_img, $this->handle, 0, 0, 0, 0, $size, $size, $size, $size); if ((($degrees == 270) && ($width > $height)) || (($degrees == 90) && ($width < $height))) $this->copyhandle($dst_img, $this->handle, 0, 0, $size - $height, $size - $width, $size, $size, $size, $size); } return $this->createUnique($dst_img); }else{ $this->message = $GLOBALS["message_no_rotate"]; } } function resizeImage($scale,$newwidth=0,$newheight=0) { $new_w = $this->width; $new_h = $this->height; $aspect_ratio = (int) $new_h / $new_w; if ($scale) $new_w = $new_w * $scale; if ($newwidth>0) $new_w = $newwidth; if ($newheight>0){ $new_h = $newheight; $new_w = (int) $new_h / $aspect_ratio; }else{ $new_h = abs($new_w * $aspect_ratio); } $dst_img = $this->copycreatehandle($this->handle, 0, 0, 0, 0, $new_w, $new_h, $this->width,$this->height); return $this->createUnique($dst_img); } function createTransparent($x,$y) { $this->resample = false; $temp = $this->copycreatehandle($this->handle, 0, 0, 0, 0, $this->width, $this->height, $this->width, $this->height); $rgb = imagecolorat($temp,$x,$y); if ($this->output=="png8"){ imagecolortransparent($temp, $rgb); }else{ imagecolorexactalpha($temp, $rgb["red"], $rgb["green"], $rgb["blue"], 127); } return $this->createUnique($temp); } function cropImage($top,$right,$bottom,$left) { $new_w = $right - $left; $new_h = $bottom - $top; $dst_img = $this->copycreatehandle($this->handle, 0, 0, $left, $top, $new_w, $new_h, $new_w, $new_h); return $this->createUnique($dst_img); } function mirrorImage() { $imgnew = $this->createImage($this->width,$this->height); // horizontal for ($i=0;$i<$this->height;$i++){ // vertical for ($j=0;$j<$this->width;$j++){ $color = imagecolorat($this->handle, $j, $i); imagesetpixel($imgnew,$this->width-$j-1,$i,$color); } } return $this->createUnique($imgnew); } function changeColor($hue=0,$sat=0,$lum=0,$red=0,$green=0,$blue=0) { $imgnew = $this->createImage($this->width,$this->height); // horizontal for ($i=0;$i<$this->width;$i++){ // vertical for ($j=0;$j<$this->height;$j++){ $color = imagecolorat($this->handle, $i, $j); $rgb = imagecolorsforindex($this->handle, $color); $hls = $this->rgb2hls($rgb["red"],$rgb["green"],$rgb["blue"]); $hls->h += $hue * $hls->h; $hls->l += $lum * $hls->l; $hls->s += $sat * $hls->s; if ($hls->h > 255)$hls->h = 255; if ($hls->h < 0)$hls->h = 0; if ($hls->l > 1)$hls->l = 1; if ($hls->l < 0)$hls->l = 0; if ($hls->s > 1)$hls->s = 1; if ($hls->s < 0)$hls->s = 0; $rgb = $this->hls2rgb($hls->h,$hls->l,$hls->s); $rgb->r += $red * $rgb->r; $rgb->g += $green * $rgb->g; $rgb->b += $blue * $rgb->b; if ($rgb->r > 255)$rgb->r = 255; if ($rgb->r < 0)$rgb->r = 0; if ($rgb->g > 255)$rgb->g = 255; if ($rgb->g < 0)$rgb->g = 0; if ($rgb->b > 255)$rgb->b = 255; if ($rgb->b < 0)$rgb->b = 0; $newcol = imagecolorresolve($imgnew, $rgb->r, $rgb->g, $rgb->b); imagesetpixel($imgnew,$i,$j,$newcol); } } return $this->createUnique($imgnew); } function writeText($xpos=0, $ypos=0, $textstring, $fontsize, $truetype, $fontcolor, $fontangle) { $fontbgcolor= $this->getHexColor($xpos,$ypos); $textimage = new imagetext($truetype,$fontsize,$fontcolor,$textstring,$fontangle,$fontbgcolor); $this->saveAlpha($this->handle); $this->copyhandle($this->handle, $textimage->handle, $xpos, $ypos, 0, 0, $textimage->dx, $textimage->dy,$textimage->dx, $textimage->dy); return $this->createUnique($this->handle); } function mergeImage($dir, $srcimage, $srcx, $srcy, $opacity=100) { $newimage = new imageobject($dir, $srcimage); $this->saveAlpha($this->handle); if ($opacity<100) @ImageCopyMerge($this->handle,$newimage->handle,$srcx,$srcy,0,0,$newimage->width,$newimage->height,$opacity); else $this->copyhandle($this->handle,$newimage->handle,$srcx,$srcy,0,0,$newimage->width,$newimage->height,$newimage->width,$newimage->height); return $this->createUnique($this->handle); } function mergeColor($color,$opacity) { $newimage = ImageCreate($this->width,$this->height); $r = hexdec(substr($color, 0, 2)); $g = hexdec(substr($color, 2, 2)); $b = hexdec(substr($color, 4, 2)); $mergecolor = ImageColorAllocate($newimage, $r, $g, $b); ImageCopyMerge($this->handle,$newimage,0,0,0,0,$this->width,$this->height,$opacity); return $this->createUnique($this->handle); } function gammaCorrect($gamma) { imagegammacorrect($this->handle, 1.0, $gamma); return $this->createUnique($this->handle); } }// class // PAGE INIT if (!$action) $action="open"; if (!$img_dir) $img_dir = IMG_DIR; $replace = array("\'","\"","\#","\&","[","]"); // SWITCH ACTIONS if ($remoteimage && $remoteimage!="http://"){ $split = split("/",$remoteimage); $newname = $split[sizeof($split)-1]; if (@copy($remoteimage,$img_dir.$newname)) $newimage = $newname; }elseif ($uploadedfile){ $newname = str_replace($replace,"",$uploadedfile_name); if (@copy($uploadedfile,$img_dir.$newname)) $newimage = $newname; }else{ if ($newimage){ if (strpos($newimage,"]")){ if (strpos($newimage,"..")) $img_dir = prevdir($img_dir); else $img_dir = $img_dir.str_replace(array("[","]"),"",$newimage)."/"; unset($newimage); } if ($renamedfile && file_exists($img_dir.$newimage)){ $renamedfile = str_replace($replace,"",$renamedfile); rename($img_dir.$newimage,$img_dir.$renamedfile.".".$origfiletype); $newimage = $renamedfile.".".$origfiletype; } if ($action=="delete" && file_exists($img_dir.$newimage)){ unlink($img_dir.$newimage); unset($newimage); } if ($action=="createdir" && $newdirectory){ if (mkdir($img_dir."/".$newdirectory,0775)) $img_dir = $img_dir."/".$newdirectory; } if ($action=="copy" && $copydir){ if (copy($img_dir.$newimage,$copydir.$newimage)) $img_dir = $copydir; } if ($action=="deldir" && $copydir){ if (rmdir($copydir)){ if ($copydir==$img_dir) $img_dir = IMG_DIR; }else{ $message = $GLOBALS["message_rmdir_failed"]; } } if ($cleanup) $newimage = cleanupTemp($img_dir, $newimage); } }//upload if ($newimage){ $info = new imageobject($img_dir,$newimage); if ($quality) $info->quality = $quality; if ($output) $info->output = $output; if ($resample) $info->resample = $resample; if ($info->handle){ if ($currentcolor) $info = $info->createTransparent($pixxpos,$pixypos); if ($tocrop == 'true') $info = $info->cropImage($offset_top,$offset_right,$offset_bottom,$offset_left); if ($rescale || $newsize){ if ($widthheight=="width") $info = $info->resizeImage($rescale,$newsize,0); else $info = $info->resizeImage($rescale,0,$newsize); } if ($angle) $info = $info->rotateImage($angle); if ($mergecolor && $coloropacity) $info = $info->mergeColor($mergecolor,$coloropacity); if ($mergefile && $imageopacity) $info = $info->mergeImage($img_dir, $mergefile, $imgxpos, $imgypos, $imageopacity); if ($textstring) $info = $info->writeText($textxpos, $textypos, $textstring, $fontsize, $truetype, $fontcolor, $fontangle); if ($mirror) $info = $info->mirrorImage(); if ($gamma) $info = $info->gammaCorrect($gamma); if ($hue || $sat || $lum || $red || $green || $blue) if ($info->square < MAX_SQUARE) $info = $info->changeColor($hue,$sat,$lum,$red,$green,$blue); else $message = $GLOBALS["message_2large"]; }// handle }// newimage ?> Allayers TrueColor - The Easy Image Editor for the Web
handle){?>
">Open - Upload - Copy File CLOSE
Open
Copy remote
Upload
handle){?>
File Management Toolbars
Open - Copy - Upload
Rename - Copy - Delete
File Properties
Output options
Image Modify Toolbars
Resize - Scale
Rotate - Mirror
Cropping
Insert Text
Modify Colors
Merge Image
Rotate CLOSE
Mirror
Resize CLOSE
OR px
Output CLOSE
JPEG
PNG 24
PNG 8 Set transparency
Resample output image
Find Color CLOSE
Drag Cursor & Click Here
Current color #
 
Color correction CLOSE
Grayscale = -100% Saturation
File management CLOSE
Rename to .type ?>
Delete this file Erase all temporary files
Copy to
Delete selected directory
Create new subdirectory
Cropping CLOSE
Left px Top px
Right px Bottom px
Merge Image CLOSE
Opacity
Text CLOSE
Text
Font Size px
Font color
Angle degrees
File information CLOSE
Current directory:
Filename: filename?>
Filesize: filesize?> kB Status: message?>
Width: width;?> px Height: height;?> px
Exif Data: filename); ?>

handle){ ?> string; ?> align="absmiddle">
Welcome to 1.3
".$i; } return $retval.""; } function writeScales($min,$max,$divide=1,$addplus=false) { for($i=$min;$i<=$max;$i++){ $retval .= ""; } function writeGammaScales() { for($i=0;$i<3;$i++) for($j=1;$j<10;$j++){ $retval .= ""; } function getDirs($basedir) { // reading all filenames $handle = opendir($basedir); while($file = readdir($handle)){ if (!strpos($file,".") && !is_dir($file)){ $h = @opendir($basedir.$file); if ($h){ $subdirs[] = $basedir.$file."/"; $nextsubs = getDirs($basedir.$file."/"); if ($nextsubs) for($i=0;$i".$alldirs[$i]; if ($retstr){ if($currentdir!=$basedir) $base = ""; } function getPix($dir) { // opening directory for reading $handle = @opendir($dir); // reading all filenames while($file = @readdir($handle)){ // skip directories if (!is_dir($file)){ // if the file is not an image, getimagesize won't result (or error :-) $img = getimagesize($dir."/".$file); // 1,2,3,5 = gif, jpg, png,wbmp; //if ($img[2]>0 && $img[2]<4 || $img[2]==5) if ($img){ $filenames[] = $file; }else{ $h = @opendir($dir.$file); if ($h) $filenames[] = "[".$file."]"; } } }// end while return $filenames; } // used for sorting function cmp($a,$b) { return strcasecmp($a, $b); } function getFiles($dir,$newimage="") { $stylecol = " style=\"background-color:#FFFFCC;\""; $files = getPix($dir); if ($dir!=IMG_DIR)$retstr .= ""; return $retstr; } function cleanupTemp($dir,$newimage="") { $handle = @opendir($dir); if($handle) while($file = @readdir($handle)){ if (!is_dir($file) && strpos($file,"__")){ unlink($dir.$file); if ($file==$newimage) unset($newimage); } } return $newimage; } function prevdir($dir) { $dirarray = split("/",$dir); if (sizeof($dirarray)) $maxlength = sizeof($dirarray)-2; for ($i=0;$i<$maxlength;$i++) $retval .= $dirarray[$i]."/"; if (!$retval) $retval = IMG_DIR; return $retval; } function getTrueTypes() { $handle = opendir(FNT_DIR); while($file = readdir($handle)) $files[] = $file; usort($files, "cmp"); foreach($files as $file){ if (!is_dir($file) && strpos($file, ".ttf")){ $split = split("\.",$file); $retstr .= ""; } function readExif($dir, $file) { if (function_exists("exif_read_data")) $exif = @exif_read_data("$dir/$file","IFD0"); if ($exif){ //print_r($exif); while(list($id,$array) = each($exif)) if (is_array($array)) while(list($item,$value) = each($array)) $retstr .= "$item: $value
\n"; }else{ $retstr = $GLOBALS["message_no_exif"]; } return $retstr; } function getHandle($directory,$filename) { $size = GetImageSize($directory.$filename); $type = $size[2]; switch ($type){ case 1: $im = imagecreatefromgif($directory.$filename); $this->type="gif"; break; case 2: $im = imagecreatefromjpeg($directory.$filename); break; case 3: $im = imagecreatefrompng($directory.$filename); $this->type="png"; break; } return $im; } function outputColorAt($posx,$posy,$dir,$filename){ $img = getHandle($dir,$filename); $color = imagecolorat(&$img, $posx, $posy); $colorrgb = imagecolorsforindex(&$img,$color); if ($colorrgb["red"]>0)$hred = dechex($colorrgb["red"]); else $hred = "00"; if (strlen($hred)<2)$hred = "0".$hred; if ($colorrgb["green"]>0)$hgreen = dechex($colorrgb["green"]); else $hgreen = "00"; if (strlen($hgreen)<2)$hgreen = "0".$hgreen; if ($colorrgb["blue"]>0)$hblue = dechex($colorrgb["blue"]); else $hblue = "00"; if (strlen($hblue)<2)$hblue = "0".$hblue; $hexcolor = strtoupper($hred.$hgreen.$hblue); imagedestroy($img); $retstr = "
"; return $retstr; } // embedded images function cornerleft() { header("Content-type: image/gif"); header("Content-length: 290"); echo base64_decode( 'R0lGODlhGQAZAMQAAP///+zu8d3h5tXb4dbW1s/V3czU2sXN1c'. 'PK0cPExMHCw7y+wLW1tbC2va6yuKurrJmZmf///wAAAAAAAAAA'. 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BA'. 'UUABEALAAAAAAZABkAAAWfICCOZGmeaHoqysI8CZG4sEzHSZ6I'. 'CeJEEULg8AsOi0IgULRACgoNIOEZDQoGyoiIAUwECkUvuBvAZk'. 'UPI1F6ZBuyS0Ds6RxbzXCR0C4Ol+FKPAdVQmtGb4BxTVJ0jHiJ'. 'W2R8f4mBAGmFSAGIlXFzdlOPnXpffqKjcoNunYBMTqeskRFesL'. 'GXh6yVPKG5ugBCtb08vbYJxKjGx5ByyokhADs='. ''); } function cornerright() { header("Content-type: image/gif"); header("Content-length: 292"); echo base64_decode( 'R0lGODlhGQAZAMQAAP///+zv8t3h5tXc5NbW1s/V3dHS08XN1c'. 'PK0cLDw8HCw7y+wLW1ta+0u66yuKurrJmZmf///wAAAAAAAAAA'. 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BA'. 'UUABEALAAAAAAZABkAAAWhYCSOZGlGCQCc7JmubSy+skzX5xAY'. 'Km4OAsLNJyrsIo8eMaJTiBhKH9AgciyiNSM10jgMZc2qFtuaih'. 'qF4JelPR+OSVg54Iw4jIknuWTmprdWeyNtXG9bXWsjYXZ4YjuC'. 'fWgCh2lCe4RdR4VwZIt3AXmMoHpyTAOUk2d/Z1elAQRVb7B2sm'. 'cILwm5CQYJDwwLu72/wb7ALyrIycrLzM3OyyEAOw=='. ''); } function logo() { header("Content-type: image/gif"); header("Content-length: 967"); echo base64_decode( 'R0lGODlhUAAUAOYAAP///+/89f/v7+/y/9/57N/y3//f3+/f/8'. '/14r/y2f/M5f/MzOfP/8/Z///Mv6/vz/+/37/lv9XU1P/Fn/+/'. 'v5/sxd+//7/Zv7/M/6/fr4/pvPzDX/rBX/+vr/e+Xf+l0v+yf9'. 'ev/6/Pr3/lsq+//5/Zn++4Wv+lj/+pb/+ZzLy7um/iqf+ZmY/S'. 'j+SwVrW1tJ+y/8yZ/1/fn7CvrtalUY+8j4+l//9/f/+MP6WlpM'. '2eTT/ZjG/Fb79//3+yf3+Z/8SXSv9lsi/VgpmZmV+/X7dv//9m'. 'Zh/SeW+M//9lP0+5T4yLig/Pb6aAPgDMZj+yP/9PT19//39/fv'. '8zmZp2Oi+sL/8/P09y/3Fwbv8zMx+lHz+MPz9l//8zAIVmMmZm'. 'Zg+fD/8fHy+CL3hcLS9Z/wCZAFtbWv8PDx9M/09OTWNMJYcP//'. '8AAA8//4AA/1E+HkFAPwBmAAAz/zo6OTMzMz8xFzwtFi8kESIh'. 'IR8YCxgYFxAQEBIOBwkIBQAAAAAAACH5BAUUAAAALAAAAABQAB'. 'QAAAf/gACCg4SFhoeIiYqLjI2Oj5CRjCpSWFhSOYM5L5Kdnooq'. 'aXt9eXl8fHMzAHh0n66vQ3h8ak06OkBed3hfeq2vv5EzeHlUJh'. 'vHxzpvfX2+AAtJ0dJJrhRQbGxQC4ooE45pfVQeHOTlHDR2fs4C'. 'Dg4nXe0Onx1nLAACRmcCiTggjSp76rgwR5BKM0MOuhDyIWJLjQ'. 'M9BvU4IOjBjh0aBoWxNwhKB0ENonBBMkBQP0EZlDxpMSgFhCAf'. 'lvQZM45gOR15nA1KSCiOmAsXLLgZ5MYCgApMKiQQIuMZGwOHGs'. 'j5geEKmpInW4ApkaGKEkFTgihQgKWPF5vmaOREqHBQHBGC/4QS'. 'NXqkgiACTghQYIMoSpRBaGAAOKmlhKACZQoAmAJBkJSZNdHi1C'. 'mIp9sLcYcKKgrAiefPCRaw2WeIy49Bpgf7KxNhEOvFCgQBFIiW'. 'XJODhSwLioMZgNzNRpk8GERA0JmPg4wYAXAFCWAbqgGAyXC4TA'. 'LYg+CEi5y2jjq2PXszcBMCQA/OK4QUH8EkAIAbYaACYMGGAgAS'. 'bTAAsNGG4kkeVRQQABFVgBWbbHoQYwwyG9CgRh/f5dbWbr0BUM'. 'Qaa8TAWQArMOGEEAgkx4YVWdQziA1oyEGGftEFwAMYZSihGHaD'. 'LKHHLLXQgIsde4hCGTCECECBfUAOogIce/BRSiQee8wxhASsFC'. 'mlIy9gYYYZWGQiyAsqTOnll2CGKeaYZJZ5SCAAOw=='. ''); } function pixpos() { header("Content-type: image/gif"); header("Content-length: 132"); echo base64_decode( 'R0lGODlhHgAeAJEAAP//////AP8AAAAAACH5BAUUAAAALAAAAA'. 'AeAB4AAAJVhI8oku1vFpxQ0qsY3nbf7k1g+IxkY56ZCgUB27jy'. 'CwO0RbO3lpfLD3RZFkKg8RgMDAVFpKYV4dV2hp5q5qohstpV95'. 'CChVljVfl0JqVDa0+b86QUAAA7'. ''); } ?>