From 3596f2dacf3ab4a2d3696bfb5e884a1ea70372cd Mon Sep 17 00:00:00 2001 From: hickert Date: Thu, 12 Aug 2010 07:15:51 +0000 Subject: [PATCH] Added JPgraph - git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@19376 594d385d-05f5-0310-b6e9-bd551577e9d8 --- gosa-core/include/class_jpGraphInclude.inc | 12 + gosa-core/include/jpgraph/README | 71 + gosa-core/include/jpgraph/VERSION | 1 + .../jpgraph/contour_dev/findpolygon.php | 798 +++ .../include/jpgraph/contour_dev/tri-quad.php | 790 +++ gosa-core/include/jpgraph/excludeFromAutoLoad | 1 + gosa-core/include/jpgraph/flag_mapping | 237 + gosa-core/include/jpgraph/flags.dat | Bin 0 -> 982587 bytes .../include/jpgraph/flags_thumb100x100.dat | Bin 0 -> 687530 bytes .../include/jpgraph/flags_thumb35x35.dat | Bin 0 -> 214310 bytes .../include/jpgraph/flags_thumb60x60.dat | Bin 0 -> 375469 bytes gosa-core/include/jpgraph/gd_image.inc.php | 2021 ++++++ .../include/jpgraph/imgdata_balls.inc.php | 1061 ++++ .../include/jpgraph/imgdata_bevels.inc.php | 104 + .../include/jpgraph/imgdata_diamonds.inc.php | 177 + .../include/jpgraph/imgdata_pushpins.inc.php | 517 ++ .../include/jpgraph/imgdata_squares.inc.php | 150 + .../include/jpgraph/imgdata_stars.inc.php | 144 + gosa-core/include/jpgraph/jpg-config.inc.php | 132 + gosa-core/include/jpgraph/jpgraph.php | 5401 +++++++++++++++++ .../jpgraph/jpgraph_antispam-digits.php | 205 + .../include/jpgraph/jpgraph_antispam.php | 615 ++ gosa-core/include/jpgraph/jpgraph_bar.php | 1136 ++++ gosa-core/include/jpgraph/jpgraph_canvas.php | 95 + .../include/jpgraph/jpgraph_canvtools.php | 523 ++ gosa-core/include/jpgraph/jpgraph_contour.php | 587 ++ gosa-core/include/jpgraph/jpgraph_date.php | 499 ++ .../jpgraph/jpgraph_errhandler.inc.php | 368 ++ gosa-core/include/jpgraph/jpgraph_error.php | 157 + gosa-core/include/jpgraph/jpgraph_flags.php | 376 ++ gosa-core/include/jpgraph/jpgraph_gantt.php | 3955 ++++++++++++ gosa-core/include/jpgraph/jpgraph_gb2312.php | 1552 +++++ .../include/jpgraph/jpgraph_gradient.php | 434 ++ .../include/jpgraph/jpgraph_iconplot.php | 190 + .../include/jpgraph/jpgraph_imgtrans.php | 223 + gosa-core/include/jpgraph/jpgraph_led.php | 311 + .../include/jpgraph/jpgraph_legend.inc.php | 484 ++ gosa-core/include/jpgraph/jpgraph_line.php | 682 +++ gosa-core/include/jpgraph/jpgraph_log.php | 305 + .../jpgraph/jpgraph_meshinterpolate.inc.php | 105 + gosa-core/include/jpgraph/jpgraph_mgraph.php | 345 ++ gosa-core/include/jpgraph/jpgraph_pie.php | 1462 +++++ gosa-core/include/jpgraph/jpgraph_pie3d.php | 933 +++ .../include/jpgraph/jpgraph_plotband.php | 635 ++ .../include/jpgraph/jpgraph_plotline.php | 138 + .../include/jpgraph/jpgraph_plotmark.inc.php | 504 ++ gosa-core/include/jpgraph/jpgraph_polar.php | 897 +++ gosa-core/include/jpgraph/jpgraph_radar.php | 861 +++ gosa-core/include/jpgraph/jpgraph_regstat.php | 215 + gosa-core/include/jpgraph/jpgraph_rgb.inc.php | 615 ++ gosa-core/include/jpgraph/jpgraph_scatter.php | 242 + gosa-core/include/jpgraph/jpgraph_stock.php | 198 + .../include/jpgraph/jpgraph_text.inc.php | 302 + gosa-core/include/jpgraph/jpgraph_ttf.inc.php | 617 ++ .../include/jpgraph/jpgraph_utils.inc.php | 685 +++ gosa-core/include/jpgraph/lang/de.inc.php | 542 ++ gosa-core/include/jpgraph/lang/en.inc.php | 536 ++ gosa-core/include/jpgraph/lang/prod.inc.php | 383 ++ .../generic/statistics/class_statistics.inc | 35 +- .../plugins/generic/statistics/statistics.tpl | 12 +- 60 files changed, 34556 insertions(+), 20 deletions(-) create mode 100644 gosa-core/include/class_jpGraphInclude.inc create mode 100644 gosa-core/include/jpgraph/README create mode 100644 gosa-core/include/jpgraph/VERSION create mode 100644 gosa-core/include/jpgraph/contour_dev/findpolygon.php create mode 100644 gosa-core/include/jpgraph/contour_dev/tri-quad.php create mode 100644 gosa-core/include/jpgraph/excludeFromAutoLoad create mode 100644 gosa-core/include/jpgraph/flag_mapping create mode 100644 gosa-core/include/jpgraph/flags.dat create mode 100644 gosa-core/include/jpgraph/flags_thumb100x100.dat create mode 100644 gosa-core/include/jpgraph/flags_thumb35x35.dat create mode 100644 gosa-core/include/jpgraph/flags_thumb60x60.dat create mode 100644 gosa-core/include/jpgraph/gd_image.inc.php create mode 100644 gosa-core/include/jpgraph/imgdata_balls.inc.php create mode 100644 gosa-core/include/jpgraph/imgdata_bevels.inc.php create mode 100644 gosa-core/include/jpgraph/imgdata_diamonds.inc.php create mode 100644 gosa-core/include/jpgraph/imgdata_pushpins.inc.php create mode 100644 gosa-core/include/jpgraph/imgdata_squares.inc.php create mode 100644 gosa-core/include/jpgraph/imgdata_stars.inc.php create mode 100644 gosa-core/include/jpgraph/jpg-config.inc.php create mode 100644 gosa-core/include/jpgraph/jpgraph.php create mode 100644 gosa-core/include/jpgraph/jpgraph_antispam-digits.php create mode 100644 gosa-core/include/jpgraph/jpgraph_antispam.php create mode 100644 gosa-core/include/jpgraph/jpgraph_bar.php create mode 100644 gosa-core/include/jpgraph/jpgraph_canvas.php create mode 100644 gosa-core/include/jpgraph/jpgraph_canvtools.php create mode 100644 gosa-core/include/jpgraph/jpgraph_contour.php create mode 100644 gosa-core/include/jpgraph/jpgraph_date.php create mode 100644 gosa-core/include/jpgraph/jpgraph_errhandler.inc.php create mode 100644 gosa-core/include/jpgraph/jpgraph_error.php create mode 100644 gosa-core/include/jpgraph/jpgraph_flags.php create mode 100644 gosa-core/include/jpgraph/jpgraph_gantt.php create mode 100644 gosa-core/include/jpgraph/jpgraph_gb2312.php create mode 100644 gosa-core/include/jpgraph/jpgraph_gradient.php create mode 100644 gosa-core/include/jpgraph/jpgraph_iconplot.php create mode 100644 gosa-core/include/jpgraph/jpgraph_imgtrans.php create mode 100644 gosa-core/include/jpgraph/jpgraph_led.php create mode 100644 gosa-core/include/jpgraph/jpgraph_legend.inc.php create mode 100644 gosa-core/include/jpgraph/jpgraph_line.php create mode 100644 gosa-core/include/jpgraph/jpgraph_log.php create mode 100644 gosa-core/include/jpgraph/jpgraph_meshinterpolate.inc.php create mode 100644 gosa-core/include/jpgraph/jpgraph_mgraph.php create mode 100644 gosa-core/include/jpgraph/jpgraph_pie.php create mode 100644 gosa-core/include/jpgraph/jpgraph_pie3d.php create mode 100644 gosa-core/include/jpgraph/jpgraph_plotband.php create mode 100644 gosa-core/include/jpgraph/jpgraph_plotline.php create mode 100644 gosa-core/include/jpgraph/jpgraph_plotmark.inc.php create mode 100644 gosa-core/include/jpgraph/jpgraph_polar.php create mode 100644 gosa-core/include/jpgraph/jpgraph_radar.php create mode 100644 gosa-core/include/jpgraph/jpgraph_regstat.php create mode 100644 gosa-core/include/jpgraph/jpgraph_rgb.inc.php create mode 100644 gosa-core/include/jpgraph/jpgraph_scatter.php create mode 100644 gosa-core/include/jpgraph/jpgraph_stock.php create mode 100644 gosa-core/include/jpgraph/jpgraph_text.inc.php create mode 100644 gosa-core/include/jpgraph/jpgraph_ttf.inc.php create mode 100644 gosa-core/include/jpgraph/jpgraph_utils.inc.php create mode 100644 gosa-core/include/jpgraph/lang/de.inc.php create mode 100644 gosa-core/include/jpgraph/lang/en.inc.php create mode 100644 gosa-core/include/jpgraph/lang/prod.inc.php diff --git a/gosa-core/include/class_jpGraphInclude.inc b/gosa-core/include/class_jpGraphInclude.inc new file mode 100644 index 000000000..4524a5b42 --- /dev/null +++ b/gosa-core/include/class_jpGraphInclude.inc @@ -0,0 +1,12 @@ + diff --git a/gosa-core/include/jpgraph/README b/gosa-core/include/jpgraph/README new file mode 100644 index 000000000..963cc5c8f --- /dev/null +++ b/gosa-core/include/jpgraph/README @@ -0,0 +1,71 @@ +README FOR JPGRAPH 3.0.x +======================== + +This package contains JpGraph, an Object Oriented PHP5 Graph Plotting library. + +The library is Copyright (C) 2001-2009 Aditus Consulting and +released under dual license QPL 1.0 for open source and educational +use and JpGraph Professional License for commercial use. + +Please see full license details at http://www.aditus.nu/jpgraph/ + +* -------------------------------------------------------------------- +* PHP4 IS NOT SUPPORTED in the 2.x or 3.x series +* -------------------------------------------------------------------- + +Requirements: +------------- +Miminum: +* PHP 5.1.0 or higher +* GD 2.0.28 or higher +Note: Earlier versions might work but is unsupported. + +Recommended: +* PHP >= 5.2.0 +* PHP Built-in GD library + +Installation +------------ +0. Make sure that the PHP version is compatible with the stated requirements + and that the PHP installation has support for the GD library. + Please run phpinfo() to check if GD library + is supported in the installation. + If the GD library doesn't seem to be installed + please consult the PHP manual under section "Image" for + instructions on where to find this library. Please refer to + the manual section "Verifying your PHP installation" + +1. Unzip and copy the files to a directory of your choice where Your + httpd sever can access them. + For a global site installation you should copy the files to + somewhere in the PHP search path. + +2. Check that the default directory paths in jpg-config.inc + for cache directory and TTF directory suits your installation. + Note1: The default directories are different depending on if + the library is running on Windows or UNIX. + Note2: Apache/PHP must have write permission to your cache + directory if you enable the cache feature. By default the cache + is disabled. + +3. Check that all rest of the DEFINE in jpg-config.inc + is setup to your preference. The default should be fine + for most users. + +4. Read the chapters on installation in the manual. + + +Documentation +------------- +The installation includes HTML documentation and reference guide for the +library. The portal page for all the documentation is +/docs/index.html + + +Bug reports and suggestions +--------------------------- +Should be reported using the the issue tracker at + +http://www.aditus.nu/bugtraq + + diff --git a/gosa-core/include/jpgraph/VERSION b/gosa-core/include/jpgraph/VERSION new file mode 100644 index 000000000..92f61ae6b --- /dev/null +++ b/gosa-core/include/jpgraph/VERSION @@ -0,0 +1 @@ +Version: v3.0.7, Build: r1928, Exported: Mon, 11 Jan 2010 at 23:34 (UTC+2), w1002.1 diff --git a/gosa-core/include/jpgraph/contour_dev/findpolygon.php b/gosa-core/include/jpgraph/contour_dev/findpolygon.php new file mode 100644 index 000000000..4d105280f --- /dev/null +++ b/gosa-core/include/jpgraph/contour_dev/findpolygon.php @@ -0,0 +1,798 @@ +contourCoord[0]); ++$i) { + // echo '('.$this->contourCoord[0][$i][0][0].','.$this->contourCoord[0][$i][0][1].') -> '. + // '('.$this->contourCoord[0][$i][1][0].','.$this->contourCoord[0][$i][1][1].")\n"; + // } + // + + $c=0; + $p[$c] = array(0.6,1, 1,0.5, 2,0.5, 3,0.5, 3.5,1, 3.5,2, 3,2.5, 2,2.5, 1,2.5, 0.5,2, 0.6,1); + $c++; + $p[$c] = array(6,0.5, 5.5,1, 5.5,2, 6,2.5); + + $this->nbrContours = $c+1; + + for ($c = 0 ; $c < count($p) ; $c++) { + $n=count($p[$c]); + + $this->contourCoord[$c][0] = array(array($p[$c][0],$p[$c][1]),array($p[$c][2],$p[$c][3])); + $k=1; + for ($i = 0; $i < ($n-4)/2; $i++, $k++) { + $this->contourCoord[$c][$k] = array($this->contourCoord[$c][$k-1][1], array($p[$c][2*$k+2],$p[$c][2*$k+1+2])); + } + + // Swap edges order at random + $n = count($this->contourCoord[$c]); + for($i=0; $i < floor($n/2); ++$i) { + $swap1 = rand(0,$n-1); + $t = $this->contourCoord[$c][$swap1]; + while( $swap1 == ($swap2 = rand(0,$n-1)) ) + ; + $this->contourCoord[$c][$swap1] = $this->contourCoord[$c][$swap2]; + $this->contourCoord[$c][$swap2] = $t; + } + + // Swap vector direction on 1/3 of the edges + for ($i = 0 ; $i < floor(count($this->contourCoord[$c])/3) ; $i++) { + $e = rand(0, count($this->contourCoord[$c])-1); + $edge = $this->contourCoord[$c][$e]; + $v1 = $edge[0]; $v2 = $edge[1]; + $this->contourCoord[$c][$e][0] = $v2; + $this->contourCoord[$c][$e][1] = $v1; + } + } + + $pp = array(); + for($j=0; $j < count($p); ++$j ) { + for( $i=0; $i < count($p[$j])/2; ++$i ) { + $pp[$j][$i] = array($p[$j][2*$i],$p[$j][2*$i+1]); + } + } + return $pp; + } + + function p_edges($v) { + for ($i = 0 ; $i < count($v) ; $i++) { + echo "(".$v[$i][0][0].",".$v[$i][0][1].") -> (".$v[$i][1][0].",".$v[$i][1][1].")\n"; + } + echo "\n"; + } + + function CompareCyclic($a,$b,$forward=true) { + + // We assume disjoint vertices and if last==first this just means + // that the polygon is closed. For this comparison it must be unique + // elements + if( $a[count($a)-1] == $a[0] ) { + array_pop($a); + } + if( $b[count($b)-1] == $b[0] ) { + array_pop($b); + } + + $n1 = count($a); $n2 = count($b); + if( $n1 != $n2 ) + return false; + + $i=0; + while( ($i < $n2) && ($a[0] != $b[$i]) ) + ++$i; + + if( $i >= $n2 ) + return false; + + $j=0; + if( $forward ) { + while( ($j < $n1) && ($a[$j] == $b[$i]) ) { + $i = ($i + 1) % $n2; + ++$j; + } + } + else { + while( ($j < $n1) && ($a[$j] == $b[$i]) ) { + --$i; + if( $i < 0 ) { + $i = $n2-1; + } + ++$j; + } + } + return $j >= $n1; + } + + function dbg($s) { + // echo $s."\n"; + } + + function IsVerticeOnBorder($x1,$y1) { + // Check if the vertice lies on any of the four border + if( $x1==$this->scale[0] || $x1==$this->scale[1] ) { + return true; + } + if( $y1==$this->scale[2] || $y1==$this->scale[3] ) { + return true; + } + return false; + } + + function FindPolygons($debug=false) { + + $pol = 0; + for ($c = 0; $c < $this->nbrContours; $c++) { + + $this->dbg("\n** Searching polygon chain $c ... "); + $this->dbg("------------------------------------------\n"); + + $edges = $this->contourCoord[$c]; + while( count($edges) > 0 ) { + + $edge = array_shift($edges); + list($x1,$y1) = $edge[0]; + list($x2,$y2) = $edge[1]; + $polygons[$pol]=array( + array($x1,$y1),array($x2,$y2) + ); + + $this->dbg("Searching on second vertice."); + + $found=false; + if( ! $this->IsVerticeOnBorder($x2,$y2) ) { + do { + + $this->dbg(" --Searching on edge: ($x1,$y1)->($x2,$y2)"); + + $found=false; + $nn = count($edges); + for( $i=0; $i < $nn && !$found; ++$i ) { + $edge = $edges[$i]; + if( $found = ($x2==$edge[0][0] && $y2==$edge[0][1]) ) { + $polygons[$pol][] = array($edge[1][0],$edge[1][1]); + $x1 = $x2; $y1 = $y2; + $x2 = $edge[1][0]; $y2 = $edge[1][1]; + } + elseif( $found = ($x2==$edge[1][0] && $y2==$edge[1][1]) ) { + $polygons[$pol][] = array($edge[0][0],$edge[0][1]); + $x1 = $x2; $y1 = $y2; + $x2 = $edge[0][0]; $y2 = $edge[0][1]; + } + if( $found ) { + $this->dbg(" --Found next edge: [i=$i], (%,%) -> ($x2,$y2)"); + unset($edges[$i]); + $edges = array_values($edges); + } + } + + } while( $found ); + } + + if( !$found && count($edges)>0 ) { + $this->dbg("Searching on first vertice."); + list($x1,$y1) = $polygons[$pol][0]; + list($x2,$y2) = $polygons[$pol][1]; + + if( ! $this->IsVerticeOnBorder($x1,$y1) ) { + do { + + $this->dbg(" --Searching on edge: ($x1,$y1)->($x2,$y2)"); + + $found=false; + $nn = count($edges); + for( $i=0; $i < $nn && !$found; ++$i ) { + $edge = $edges[$i]; + if( $found = ($x1==$edge[0][0] && $y1==$edge[0][1]) ) { + array_unshift($polygons[$pol],array($edge[1][0],$edge[1][1])); + $x2 = $x1; $y2 = $y1; + $x1 = $edge[1][0]; $y1 = $edge[1][1]; + } + elseif( $found = ($x1==$edge[1][0] && $y1==$edge[1][1]) ) { + array_unshift($polygons[$pol],array($edge[0][0],$edge[0][1])); + $x2 = $x1; $y2 = $y1; + $x1 = $edge[0][0]; $y1 = $edge[0][1]; + } + if( $found ) { + $this->dbg(" --Found next edge: [i=$i], ($x1,$y1) -> (%,%)"); + unset($edges[$i]); + $edges = array_values($edges); + } + } + + } while( $found ); + } + + } + + $pol++; + } + } + + return $polygons; + } + +} +define('HORIZ_EDGE',0); +define('VERT_EDGE',1); + +class FillGridRect { + private $edges,$dataPoints,$colors,$isoBars; + private $invert=false; + + function __construct(&$edges,&$dataPoints,$isoBars,$colors) { + $this->edges = $edges; + $this->dataPoints = $dataPoints; + $this->colors = $colors; + $this->isoBars = $isoBars; + } + + function GetIsobarColor($val) { + for ($i = 0 ; $i < count($this->isoBars) ; $i++) { + if( $val <= $this->isoBars[$i] ) { + return $this->colors[$i]; + } + } + return $this->colors[$i]; // The color for all values above the highest isobar + } + + function GetIsobarVal($a,$b) { + // Get the isobar that is between the values a and b + // If there are more isobars then return the one with lowest index + if( $b < $a ) { + $t=$a; $a=$b; $b=$t; + } + $i = 0 ; + $n = count($this->isoBars); + while( $i < $n && $this->isoBars[$i] < $a ) { + ++$i; + } + if( $i >= $n ) + die("Internal error. Cannot find isobar values for ($a,$b)"); + return $this->isoBars[$i]; + } + + function getCrossingCoord($aRow,$aCol,$aEdgeDir,$aIsobarVal) { + // In order to avoid numerical problem when two vertices are very close + // we have to check and avoid dividing by close to zero denumerator. + if( $aEdgeDir == HORIZ_EDGE ) { + $d = abs($this->dataPoints[$aRow][$aCol] - $this->dataPoints[$aRow][$aCol+1]); + if( $d > 0.001 ) { + $xcoord = $aCol + abs($aIsobarVal - $this->dataPoints[$aRow][$aCol]) / $d; + } + else { + $xcoord = $aCol; + } + $ycoord = $aRow; + } + else { + $d = abs($this->dataPoints[$aRow][$aCol] - $this->dataPoints[$aRow+1][$aCol]); + if( $d > 0.001 ) { + $ycoord = $aRow + abs($aIsobarVal - $this->dataPoints[$aRow][$aCol]) / $d; + } + else { + $ycoord = $aRow; + } + $xcoord = $aCol; + } + if( $this->invert ) { + $ycoord = $this->nbrRows-1 - $ycoord; + } + return array($xcoord,$ycoord); + } + + function Fill(ContCanvas $canvas) { + + $nx_vertices = count($this->dataPoints[0]); + $ny_vertices = count($this->dataPoints); + + // Loop through all squares in the grid + for($col=0; $col < $nx_vertices-1; ++$col) { + for($row=0; $row < $ny_vertices-1; ++$row) { + + $n = 0;$quad_edges=array(); + if ( $this->edges[VERT_EDGE][$row][$col] ) $quad_edges[$n++] = array($row, $col, VERT_EDGE); + if ( $this->edges[VERT_EDGE][$row][$col+1] ) $quad_edges[$n++] = array($row, $col+1,VERT_EDGE); + if ( $this->edges[HORIZ_EDGE][$row][$col] ) $quad_edges[$n++] = array($row, $col, HORIZ_EDGE); + if ( $this->edges[HORIZ_EDGE][$row+1][$col] ) $quad_edges[$n++] = array($row+1,$col, HORIZ_EDGE); + + if( $n == 0 ) { + // Easy, fill the entire quadrant with one color since we have no crossings + // Select the top left datapoint as representing this quadrant + // color for this quadrant + $color = $this->GetIsobarColor($this->dataPoints[$row][$col]); + $polygon = array($col,$row,$col,$row+1,$col+1,$row+1,$col+1,$row,$col,$row); + $canvas->FilledPolygon($polygon,$color); + + } elseif( $n==2 ) { + + // There is one isobar edge crossing this quadrant. In order to fill we need to + // find out the orientation of the two areas this edge is separating in order to + // construct the two polygons that define the two areas to be filled + // There are six possible variants + // 0) North-South + // 1) West-East + // 2) West-North + // 3) East-North + // 4) West-South + // 5) East-South + $type=-1; + if( $this->edges[HORIZ_EDGE][$row][$col] ) { + if( $this->edges[HORIZ_EDGE][$row+1][$col] ) $type=0; // North-South + elseif( $this->edges[VERT_EDGE][$row][$col] ) $type=2; + elseif( $this->edges[VERT_EDGE][$row][$col+1] ) $type=3; + } + elseif( $this->edges[HORIZ_EDGE][$row+1][$col] ) { + if( $this->edges[VERT_EDGE][$row][$col] ) $type=4; + elseif( $this->edges[VERT_EDGE][$row][$col+1] ) $type=5; + } + else { + $type=1; + } + if( $type==-1 ) { + die('Internal error: n=2 but no edges in the quadrant was find to determine type.'); + } + + switch( $type ) { + case 0: //North-South + + // North vertice + $v1 = $this->dataPoints[$row][$col]; + $v2 = $this->dataPoints[$row][$col+1]; + $isobarValue = $this->GetIsobarVal($v1, $v2); + list($x1,$y1) = $this->getCrossingCoord($row, $col,HORIZ_EDGE, $isobarValue); + + // South vertice + $v1 = $this->dataPoints[$row+1][$col]; + $v2 = $this->dataPoints[$row+1][$col+1]; + $isobarValue = $this->GetIsobarVal($v1, $v2); + list($x2,$y2) = $this->getCrossingCoord($row+1, $col,HORIZ_EDGE, $isobarValue); + + $polygon = array($col,$row,$x1,$y1,$x2,$y2,$col,$row+1,$col,$row); + $canvas->FilledPolygon($polygon,$this->GetIsobarColor($v1)); + + $polygon = array($col+1,$row,$x1,$y1,$x2,$y2,$col+1,$row+1,$col+1,$row); + $canvas->FilledPolygon($polygon,$this->GetIsobarColor($v2)); + + break; + + case 1: // West-East + + // West vertice + $v1 = $this->dataPoints[$row][$col]; + $v2 = $this->dataPoints[$row+1][$col]; + $isobarValue = $this->GetIsobarVal($v1, $v2); + list($x1,$y1) = $this->getCrossingCoord($row, $col,VERT_EDGE, $isobarValue); + + // East vertice + $v1 = $this->dataPoints[$row][$col+1]; + $v2 = $this->dataPoints[$row+1][$col+1]; + $isobarValue = $this->GetIsobarVal($v1, $v2); + list($x2,$y2) = $this->getCrossingCoord($row, $col+1,VERT_EDGE, $isobarValue); + + $polygon = array($col,$row,$x1,$y1,$x2,$y2,$col+1,$row,$col,$row); + $canvas->FilledPolygon($polygon,$this->GetIsobarColor($v1)); + + $polygon = array($col,$row+1,$x1,$y1,$x2,$y2,$col+1,$row+1,$col,$row+1); + $canvas->FilledPolygon($polygon,$this->GetIsobarColor($v2)); + break; + + case 2: // West-North + + // West vertice + $v1 = $this->dataPoints[$row][$col]; + $v2 = $this->dataPoints[$row+1][$col]; + $isobarValue = $this->GetIsobarVal($v1, $v2); + list($x1,$y1) = $this->getCrossingCoord($row, $col,VERT_EDGE, $isobarValue); + + // North vertice + $v1 = $this->dataPoints[$row][$col]; + $v2 = $this->dataPoints[$row][$col+1]; + $isobarValue = $this->GetIsobarVal($v1, $v2); + list($x2,$y2) = $this->getCrossingCoord($row, $col,HORIZ_EDGE, $isobarValue); + + $polygon = array($col,$row,$x1,$y1,$x2,$y2,$col,$row); + $canvas->FilledPolygon($polygon,$this->GetIsobarColor($v1)); + + $polygon = array($x1,$y1,$x2,$y2,$col+1,$row,$col+1,$row+1,$col,$row+1,$x1,$y1); + $canvas->FilledPolygon($polygon,$this->GetIsobarColor($v2)); + + break; + + case 3: // East-North + + // if( $row==3 && $col==1 && $n==2 ) { + // echo " ** East-North
"; + // } + + + // East vertice + $v1 = $this->dataPoints[$row][$col+1]; + $v2 = $this->dataPoints[$row+1][$col+1]; + $isobarValue = $this->GetIsobarVal($v1, $v2); + list($x1,$y1) = $this->getCrossingCoord($row, $col+1,VERT_EDGE, $isobarValue); + // + // if( $row==3 && $col==1 && $n==2 ) { + // echo " ** E_val($v1,$v2), isobar=$isobarValue
"; + // echo " ** E($x1,$y1)
"; + // } + + + // North vertice + $v1 = $this->dataPoints[$row][$col]; + $v2 = $this->dataPoints[$row][$col+1]; + $isobarValue = $this->GetIsobarVal($v1, $v2); + list($x2,$y2) = $this->getCrossingCoord($row, $col,HORIZ_EDGE, $isobarValue); + + // if( $row==3 && $col==1 && $n==2 ) { + // echo " ** N_val($v1,$v2), isobar=$isobarValue
"; + // echo " ** N($x2,$y2)
"; + // } + // if( $row==3 && $col==1 && $n==2 ) + // $canvas->Line($x1,$y1,$x2,$y2,'blue'); + + $polygon = array($x1,$y1,$x2,$y2,$col+1,$row,$x1,$y1); + $canvas->FilledPolygon($polygon,$this->GetIsobarColor($v2)); + + $polygon = array($col,$row,$x2,$y2,$x1,$y1,$col+1,$row+1,$col,$row+1,$col,$row); + $canvas->FilledPolygon($polygon,$this->GetIsobarColor($v1)); + + break; + + case 4: // West-South + + // West vertice + $v1 = $this->dataPoints[$row][$col]; + $v2 = $this->dataPoints[$row+1][$col]; + $isobarValue = $this->GetIsobarVal($v1, $v2); + list($x1,$y1) = $this->getCrossingCoord($row, $col,VERT_EDGE, $isobarValue); + + // South vertice + $v1 = $this->dataPoints[$row+1][$col]; + $v2 = $this->dataPoints[$row+1][$col+1]; + $isobarValue = $this->GetIsobarVal($v1, $v2); + list($x2,$y2) = $this->getCrossingCoord($row+1, $col,HORIZ_EDGE, $isobarValue); + + $polygon = array($col,$row+1,$x1,$y1,$x2,$y2,$col,$row+1); + $canvas->FilledPolygon($polygon,$this->GetIsobarColor($v1)); + + $polygon = array($x1,$y1,$x2,$y2,$col+1,$row+1,$col+1,$row,$col,$row,$x1,$y1); + $canvas->FilledPolygon($polygon,$this->GetIsobarColor($v2)); + + break; + + case 5: // East-South + + // + // if( $row==1 && $col==1 && $n==2 ) { + // echo " ** Sout-East
"; + // } + + // East vertice + $v1 = $this->dataPoints[$row][$col+1]; + $v2 = $this->dataPoints[$row+1][$col+1]; + $isobarValue = $this->GetIsobarVal($v1, $v2); + list($x1,$y1) = $this->getCrossingCoord($row, $col+1,VERT_EDGE, $isobarValue); + + // if( $row==1 && $col==1 && $n==2 ) { + // echo " ** E_val($v1,$v2), isobar=$isobarValue
"; + // echo " ** E($x1,$y1)
"; + // } + + // South vertice + $v1 = $this->dataPoints[$row+1][$col]; + $v2 = $this->dataPoints[$row+1][$col+1]; + $isobarValue = $this->GetIsobarVal($v1, $v2); + list($x2,$y2) = $this->getCrossingCoord($row+1, $col,HORIZ_EDGE, $isobarValue); + + // if( $row==1 && $col==1 && $n==2 ) { + // echo " ** S_val($v1,$v2), isobar=$isobarValue
"; + // echo " ** S($x2,$y2)
"; + // } + + $polygon = array($col+1,$row+1,$x1,$y1,$x2,$y2,$col+1,$row+1); + $canvas->FilledPolygon($polygon,$this->GetIsobarColor($v2)); + + $polygon = array($x1,$y1,$x2,$y2,$col,$row+1,$col,$row,$col+1,$row,$x1,$y1); + $canvas->FilledPolygon($polygon,$this->GetIsobarColor($v1)); + + break; + + } + + } + + } + } + + } +} + + +class ContCanvas { + public $g; + public $shape,$scale; + function __construct($xmax=6,$ymax=6,$width=400,$height=400) { + + $this->g = new CanvasGraph($width,$height); + $this->scale = new CanvasScale($this->g, 0, $xmax, 0, $ymax); + $this->shape = new Shape($this->g, $this->scale); + + //$this->g->SetFrame(true); + $this->g->SetMargin(5,5,5,5); + $this->g->SetMarginColor('white@1'); + $this->g->InitFrame(); + + + $this->shape->SetColor('gray'); + for( $col=1; $col<$xmax; ++$col ) { + $this->shape->Line($col, 0, $col, $ymax); + } + for( $row=1; $row<$ymax; ++$row ) { + $this->shape->Line(0, $row, $xmax, $row); + } + } + + function SetDatapoints($datapoints) { + $ny=count($datapoints); + $nx=count($datapoints[0]); + $t = new Text(); + $t->SetFont(FF_ARIAL,FS_NORMAL,8); + for( $x=0; $x < $nx; ++$x ) { + for( $y=0; $y < $ny; ++$y ) { + list($x1,$y1) = $this->scale->Translate($x,$y); + + if( $datapoints[$y][$x] > 0 ) + $t->SetColor('blue'); + else + $t->SetColor('black'); + $t->SetFont(FF_ARIAL,FS_BOLD,8); + $t->Set($datapoints[$y][$x]); + $t->Stroke($this->g->img,$x1,$y1); + + $t->SetColor('gray'); + $t->SetFont(FF_ARIAL,FS_NORMAL,8); + $t->Set("($y,$x)"); + $t->Stroke($this->g->img,$x1+10,$y1); + + } + } + } + + function DrawLinePolygons($p,$color='red') { + $this->shape->SetColor($color); + for ($i = 0 ; $i < count($p) ; $i++) { + $x1 = $p[$i][0][0]; $y1 = $p[$i][0][1]; + for ($j = 1 ; $j < count($p[$i]) ; $j++) { + $x2=$p[$i][$j][0]; $y2 = $p[$i][$j][1]; + $this->shape->Line($x1, $y1, $x2, $y2); + $x1=$x2; $y1=$y2; + } + } + } + + function Line($x1,$y1,$x2,$y2,$color='red') { + $this->shape->SetColor($color); + $this->shape->Line($x1, $y1, $x2, $y2); + } + function Polygon($p,$color='blue') { + $this->shape->SetColor($color); + $this->shape->Polygon($p); + } + + function FilledPolygon($p,$color='lightblue') { + $this->shape->SetColor($color); + $this->shape->FilledPolygon($p); + } + + function Point($x,$y,$color) { + list($x1,$y1) = $this->scale->Translate($x, $y); + $this->shape->SetColor($color); + $this->g->img->Point($x1,$y1); + } + + function Stroke() { + $this->g->Stroke(); + } + +} + + +class PixelFill { + + private $edges,$dataPoints,$colors,$isoBars; + + function __construct(&$edges,&$dataPoints,$isoBars,$colors) { + $this->edges = $edges; + $this->dataPoints = $dataPoints; + $this->colors = $colors; + $this->isoBars = $isoBars; + } + + function GetIsobarColor($val) { + for ($i = 0 ; $i < count($this->isoBars) ; $i++) { + if( $val <= $this->isoBars[$i] ) { + return $this->colors[$i]; + } + } + return $this->colors[$i]; // The color for all values above the highest isobar + } + + function Fill(ContCanvas $canvas) { + + $nx_vertices = count($this->dataPoints[0]); + $ny_vertices = count($this->dataPoints); + + // Loop through all squares in the grid + for($col=0; $col < $nx_vertices-1; ++$col) { + for($row=0; $row < $ny_vertices-1; ++$row) { + + $v=array( + $this->dataPoints[$row][$col], + $this->dataPoints[$row][$col+1], + $this->dataPoints[$row+1][$col+1], + $this->dataPoints[$row+1][$col], + ); + + list($x1,$y1) = $canvas->scale->Translate($col, $row); + list($x2,$y2) = $canvas->scale->Translate($col+1, $row+1); + + for( $x=$x1; $x < $x2; ++$x ) { + for( $y=$y1; $y < $y2; ++$y ) { + + $v1 = $v[0] + ($v[1]-$v[0])*($x-$x1)/($x2-$x1); + $v2 = $v[3] + ($v[2]-$v[3])*($x-$x1)/($x2-$x1); + $val = $v1 + ($v2-$v1)*($y-$y1)/($y2-$y1); + + if( $row==2 && $col==2 ) { + //echo " ($val ($x,$y)) (".$v[0].",".$v[1].",".$v[2].",".$v[3].")
"; + } + $color = $this->GetIsobarColor($val); + $canvas->g->img->SetColor($color); + $canvas->g->img->Point($x, $y); + } + } + } + } + + } + +} + +$edges=array(array(),array(),array()); +$datapoints=array(); +for($col=0; $col<6; $col++) { + for($row=0; $row<6; $row++) { + $datapoints[$row][$col]=0; + $edges[VERT_EDGE][$row][$col] = false; + $edges[HORIZ_EDGE][$row][$col] = false; + } +} + +$datapoints[1][2] = 2; +$datapoints[2][1] = 1; +$datapoints[2][2] = 7; +$datapoints[2][3] = 2; +$datapoints[3][1] = 2; +$datapoints[3][2] = 17; +$datapoints[3][3] = 4; +$datapoints[4][2] = 3; + +$datapoints[1][4] = 12; + +$edges[VERT_EDGE][1][2] = true; +$edges[VERT_EDGE][3][2] = true; + +$edges[HORIZ_EDGE][2][1] = true; +$edges[HORIZ_EDGE][2][2] = true; +$edges[HORIZ_EDGE][3][1] = true; +$edges[HORIZ_EDGE][3][2] = true; + + + +$isobars = array(5,10,15); +$colors = array('lightgray','lightblue','lightred','red'); + +$engine = new PixelFill($edges, $datapoints, $isobars, $colors); +$canvas = new ContCanvas(); +$engine->Fill($canvas); +$canvas->SetDatapoints($datapoints); +$canvas->Stroke(); +die(); + + +//$tst = new Findpolygon(); +//$p1 = $tst->SetupTestData(); +// +//$canvas = new ContCanvas(); +//for ($i = 0 ; $i < count($tst->contourCoord); $i++) { +// $canvas->DrawLinePolygons($tst->contourCoord[$i]); +//} +// +//$p2 = $tst->FindPolygons(); +//for ($i = 0 ; $i < count($p2) ; $i++) { +// $canvas->FilledPolygon($tst->flattenEdges($p2[$i])); +//} +// +//for ($i = 0 ; $i < count($p2) ; $i++) { +// $canvas->Polygon($tst->flattenEdges($p2[$i])); +//} +// +//$canvas->Stroke(); +//die(); + + +//for( $trial = 0; $trial < 1; ++$trial ) { +// echo "\nTest $trial:\n"; +// echo "========================================\n"; +// $tst = new Findpolygon(); +// $p1 = $tst->SetupTestData(); +// +// // for ($i = 0 ; $i < count($p1) ; $i++) { +// // echo "Test polygon $i:\n"; +// // echo "---------------------\n"; +// // $tst->p_edges($tst->contourCoord[$i]); +// // echo "\n"; +// // } +// // +// $p2 = $tst->FindPolygons(); +// $npol = count($p2); +// //echo "\n** Found $npol separate polygon chains.\n\n"; +// +// for( $i=0; $i<$npol; ++$i ) { +// +// $res_forward = $tst->CompareCyclic($p1[$i], $p2[$i],true); +// $res_backward = $tst->CompareCyclic($p1[$i], $p2[$i],false); +// if( $res_backward || $res_forward ) { +// // if( $res_forward ) +// // echo "Forward matches!\n"; +// // else +// // echo "Backward matches!\n"; +// } +// else { +// echo "********** NO MATCH!!.\n\n"; +// echo "\nBefore find:\n"; +// for ($j = 0 ; $j < count($p1[$i]) ; $j++) { +// echo "(".$p1[$i][$j][0].','.$p1[$i][$j][1]."), "; +// } +// echo "\n"; +// +// echo "\nAfter find:\n"; +// for ($j = 0 ; $j < count($p2[$i]) ; $j++) { +// echo "(".$p2[$i][$j][0].','.$p2[$i][$j][1]."), "; +// } +// echo "\n"; +// } +// +// } +//} +// +//echo "\n\nAll tests ready.\n\n"; +// + + +?> diff --git a/gosa-core/include/jpgraph/contour_dev/tri-quad.php b/gosa-core/include/jpgraph/contour_dev/tri-quad.php new file mode 100644 index 000000000..7281f8e36 --- /dev/null +++ b/gosa-core/include/jpgraph/contour_dev/tri-quad.php @@ -0,0 +1,790 @@ +g = new CanvasGraph($width,$height); + $this->scale = new CanvasScale($this->g, 0, $xmax, 0, $ymax); + $this->shape = new Shape($this->g, $this->scale); + + //$this->g->SetFrame(true); + $this->g->SetMargin(2,2,2,2); + $this->g->SetMarginColor('white@1'); + $this->g->InitFrame(); + } + + function StrokeGrid() { + list($xmin,$xmax,$ymin,$ymax) = $this->scale->Get(); + $this->shape->SetColor('gray'); + for( $col=1; $col<$xmax; ++$col ) { + $this->shape->Line($col, 0, $col, $ymax); + } + for( $row=1; $row<$ymax; ++$row ) { + $this->shape->Line(0, $row, $xmax, $row); + } + } + + function SetDatapoints($datapoints) { + $ny=count($datapoints); + $nx=count($datapoints[0]); + $t = new Text(); + $t->SetFont(FF_ARIAL,FS_NORMAL,8); + for( $x=0; $x < $nx; ++$x ) { + for( $y=0; $y < $ny; ++$y ) { + list($x1,$y1) = $this->scale->Translate($x,$y); + + if( $datapoints[$y][$x] > 0 ) + $t->SetColor('blue'); + else + $t->SetColor('black'); + $t->SetFont(FF_ARIAL,FS_BOLD,8); + $t->Set($datapoints[$y][$x]); + $t->Stroke($this->g->img,$x1,$y1); + + $t->SetColor('gray'); + $t->SetFont(FF_ARIAL,FS_NORMAL,8); + $t->Set("($y,$x)"); + $t->Stroke($this->g->img,$x1+10,$y1); + + } + } + } + + function DrawLinePolygons($p,$color='red') { + $this->shape->SetColor($color); + for ($i = 0 ; $i < count($p) ; $i++) { + $x1 = $p[$i][0][0]; $y1 = $p[$i][0][1]; + for ($j = 1 ; $j < count($p[$i]) ; $j++) { + $x2=$p[$i][$j][0]; $y2 = $p[$i][$j][1]; + $this->shape->Line($x1, $y1, $x2, $y2); + $x1=$x2; $y1=$y2; + } + } + } + + function Line($x1,$y1,$x2,$y2,$color='red') { + $this->shape->SetColor($color); + $this->shape->Line($x1, $y1, $x2, $y2); + } + function Polygon($p,$color='blue') { + $this->shape->SetColor($color); + $this->shape->Polygon($p); + } + + function FilledPolygon($p,$color='lightblue') { + $this->shape->SetColor($color); + $this->shape->FilledPolygon($p); + } + + function Point($x,$y,$color) { + list($x1,$y1) = $this->scale->Translate($x, $y); + $this->shape->SetColor($color); + $this->g->img->Point($x1,$y1); + } + + function Stroke() { + $this->g->Stroke(); + } + +} + +// Calculate the area for a simple polygon. This will not work for +// non-simple polygons, i.e. self crossing. +function polygonArea($aX, $aY) { + $n = count($aX); + $area = 0 ; + $j = 0 ; + for ($i=0; $i < $n; $i++) { + $j++; + if ( $j == $n) { + $j=0; + } + $area += ($aX[i]+$aX[j])*($aY[i]-$aY[j]); + } + return area*.5; +} + +class SingleTestTriangle { + const contval=5; + static $maxdepth=2; + static $cnt=0; + static $t; + public $g; + public $shape,$scale; + public $cont = array(2,4,5); + public $contcolors = array('yellow','purple','seagreen','green','lightblue','blue','teal','orange','red','darkred','brown'); + public $dofill=false; + public $showtriangulation=false,$triangulation_color="lightgray"; + public $showannotation=false; + public $contlinecolor='black',$showcontlines=true; + private $labels = array(), $showlabels=false; + private $labelColor='black',$labelFF=FF_ARIAL,$labelFS=FS_BOLD,$labelFSize=9; + + function __construct($width,$height,$nx,$ny) { + $xmax=$nx+0.1;$ymax=$ny+0.1; + $this->g = new CanvasGraph($width,$height); + $this->scale = new CanvasScale($this->g, -0.1, $xmax, -0.1, $ymax); + $this->shape = new Shape($this->g, $this->scale); + + //$this->g->SetFrame(true); + $this->g->SetMargin(2,2,2,2); + $this->g->SetMarginColor('white@1'); + //$this->g->InitFrame(); + + self::$t = new Text(); + self::$t->SetColor('black'); + self::$t->SetFont(FF_ARIAL,FS_BOLD,9); + self::$t->SetAlign('center','center'); + } + + function getPlotSize() { + return array($this->g->img->width,$this->g->img->height); + } + + function SetContours($c) { + $this->cont = $c; + } + + function ShowLabels($aFlg=true) { + $this->showlabels = $aFlg; + } + + function ShowLines($aFlg=true) { + $this->showcontlines=$aFlg; + } + + function SetFilled($f=true) { + $this->dofill = $f; + } + + function ShowTriangulation($f=true) { + $this->showtriangulation = $f; + } + + function Stroke() { + $this->g->Stroke(); + } + + function FillPolygon($color,&$p) { + self::$cnt++; + if( $this->dofill ) { + $this->shape->SetColor($color); + $this->shape->FilledPolygon($p); + } + if( $this->showtriangulation ) { + $this->shape->SetColor($this->triangulation_color); + $this->shape->Polygon($p); + } + } + + function GetNextHigherContourIdx($val) { + for( $i=0; $i < count($this->cont); ++$i ) { + if( $val < $this->cont[$i] ) return $i; + } + return count($this->cont); + } + + function GetContVal($v1) { + for( $i=0; $i < count($this->cont); ++$i ) { + if( $this->cont[$i] > $v1 ) { + return $this->cont[$i]; + } + } + die('No contour value is larger or equal than : '.$v1); + } + + function GetColor($v) { + return $this->contcolors[$this->GetNextHigherContourIdx($v)]; + } + + function storeAnnotation($x1,$y1,$v1,$angle) { + $this->labels[$this->GetNextHigherContourIdx($v1)][] = array($x1,$y1,$v1,$angle); + } + + function labelProx($x1,$y1,$v1) { + + list($w,$h) = $this->getPlotSize(); + + + if( $x1 < 20 || $x1 > $w-20 ) + return true; + + if( $y1 < 20 || $y1 > $h-20 ) + return true; + + if( !isset ($this->labels[$this->GetNextHigherContourIdx($v1)]) ) { + return false; + } + $p = $this->labels[$this->GetNextHigherContourIdx($v1)]; + $n = count($p); + $d = 999999; + for ($i = 0 ; $i < $n ; $i++) { + $xp = $p[$i][0]; + $yp = $p[$i][1]; + $d = min($d, ($x1-$xp)*($x1-$xp) + ($y1-$yp)*($y1-$yp)); + } + + $limit = $w*$h/9; + $limit = max(min($limit,20000),3500); + if( $d < $limit ) return true; + else return false; + } + + function putLabel($x1,$y1,$x2,$y2,$v1) { + + $angle = 0; + if( $x2 - $x1 != 0 ) { + $grad = ($y2-$y1)/($x2-$x1); + $angle = -(atan($grad) * 180/M_PI); + self::$t->SetAngle($angle); + } + + $x = $this->scale->TranslateX($x1); + $y = $this->scale->TranslateY($y1); + if( !$this->labelProx($x, $y, $v1) ) { + $this->storeAnnotation($x, $y, $v1, $angle); + } + } + + function strokeLabels() { + $t = new Text(); + $t->SetColor($this->labelColor); + $t->SetFont($this->labelFF,$this->labelFS,$this->labelFSize); + $t->SetAlign('center','center'); + + foreach ($this->labels as $cont_idx => $pos) { + if( $cont_idx >= 10 ) return; + foreach ($pos as $idx => $coord) { + $t->Set( sprintf("%.1f",$coord[2]) ); + $t->SetAngle($coord[3]); + $t->Stroke($this->g->img,$coord[0],$coord[1]); + } + } + } + + function annotate($x1,$y1,$x2,$y2,$x1p,$y1p,$v1,$v2,$v1p) { + if( !$this->showannotation ) return; + /* + $this->g->img->SetColor('green'); + $this->g->img->FilledCircle($this->scale->TranslateX($x1),$this->scale->TranslateY($y1), 4); + $this->g->img->FilledCircle($this->scale->TranslateX($x2),$this->scale->TranslateY($y2), 4); + + $this->g->img->SetColor('red'); + $this->g->img->FilledCircle($this->scale->TranslateX($x1p),$this->scale->TranslateY($y1p), 4); +*/ + //self::$t->Set(sprintf("%.1f",$v1,$this->VC($v1))); + //self::$t->Stroke($this->g->img,$this->scale->TranslateX($x1),$this->scale->TranslateY($y1)); + //self::$t->Set(sprintf("%.1f",$v2,$this->VC($v2))); + //self::$t->Stroke($this->g->img,$this->scale->TranslateX($x2),$this->scale->TranslateY($y2)); + + $x = $this->scale->TranslateX($x1p); + $y = $this->scale->TranslateY($y1p); + if( !$this->labelProx($x, $y, $v1p) ) { + $this->storeAnnotation($x, $y, $v1p); + self::$t->Set(sprintf("%.1f",$v1p,$this->VC($v1p))); + self::$t->Stroke($this->g->img,$x,$y); + } + } + + function Pertubate(&$v1,&$v2,&$v3,&$v4) { + $pert = 0.9999; + $n = count($this->cont); + for($i=0; $i < $n; ++$i) { + if( $v1==$this->cont[$i] ) { + $v1 *= $pert; + break; + } + } + for($i=0; $i < $n; ++$i) { + if( $v2==$this->cont[$i] ) { + $v2 *= $pert; + break; + } + } + for($i=0; $i < $n; ++$i) { + if( $v3==$this->cont[$i] ) { + $v3 *= $pert; + break; + } + } + for($i=0; $i < $n; ++$i) { + if( $v4==$this->cont[$i] ) { + $v4 *= $pert; + break; + } + } + } + + function interp2($x1,$y1,$x2,$y2,$v1,$v2) { + $cv = $this->GetContVal(min($v1,$v2)); + $alpha = ($v1-$cv)/($v1-$v2); + $x1p = $x1*(1-$alpha) + $x2*$alpha; + $y1p = $y1*(1-$alpha) + $y2*$alpha; + $v1p = $v1 + $alpha*($v2-$v1); + return array($x1p,$y1p,$v1p); + } + + function RectFill($v1,$v2,$v3,$v4,$x1,$y1,$x2,$y2,$x3,$y3,$x4,$y4,$depth) { + if( $depth >= self::$maxdepth ) { + // Abort and just appoximate the color of this area + // with the average of the three values + $color = $this->GetColor(($v1+$v2+$v3+$v4)/4); + $p = array($x1, $y1, $x2, $y2, $x3, $y3, $x4, $y4, $x1, $y1); + $this->FillPolygon($color,$p) ; + } + else { + + $this->Pertubate($v1,$v2,$v3,$v4); + + $fcnt = 0 ; + $vv1 = $this->GetNextHigherContourIdx($v1); + $vv2 = $this->GetNextHigherContourIdx($v2); + $vv3 = $this->GetNextHigherContourIdx($v3); + $vv4 = $this->GetNextHigherContourIdx($v4); + $eps = 0.0001; + + if( $vv1 == $vv2 && $vv2 == $vv3 && $vv3 == $vv4 ) { + $color = $this->GetColor($v1); + $p = array($x1, $y1, $x2, $y2, $x3, $y3, $x4, $y4, $x1, $y1); + $this->FillPolygon($color,$p) ; + } + else { + + $dv1 = abs($vv1-$vv2); + $dv2 = abs($vv2-$vv3); + $dv3 = abs($vv3-$vv4); + $dv4 = abs($vv1-$vv4); + + if( $dv1 == 1 ) { + list($x1p,$y1p,$v1p) = $this->interp2($x1,$y1,$x2,$y2,$v1,$v2); + $fcnt++; + } + + if( $dv2 == 1 ) { + list($x2p,$y2p,$v2p) = $this->interp2($x2,$y2,$x3,$y3,$v2,$v3); + $fcnt++; + } + + if( $dv3 == 1 ) { + list($x3p,$y3p,$v3p) = $this->interp2($x3,$y3,$x4,$y4,$v3,$v4); + $fcnt++; + } + + if( $dv4 == 1 ) { + list($x4p,$y4p,$v4p) = $this->interp2($x4,$y4,$x1,$y1,$v4,$v1); + $fcnt++; + } + + $totdv = $dv1 + $dv2 + $dv3 + $dv4 ; + + if( ($fcnt == 2 && $totdv==2) || ($fcnt == 4 && $totdv==4) ) { + + if( $fcnt == 2 && $totdv==2 ) { + + if( $dv1 == 1 && $dv2 == 1) { + $color1 = $this->GetColor($v2); + $p1 = array($x1p,$y1p,$x2,$y2,$x2p,$y2p,$x1p,$y1p); + $color2 = $this->GetColor($v4); + $p2 = array($x1,$y1,$x1p,$y1p,$x2p,$y2p,$x3,$y3,$x4,$y4,$x1,$y1); + + $color = $this->GetColor($v1p); + $p = array($x1p,$y1p,$x2p,$y2p); + $v = $v1p; + } + elseif( $dv1 == 1 && $dv3 == 1 ) { + $color1 = $this->GetColor($v2); + $p1 = array($x1p,$y1p,$x2,$y2,$x3,$y3,$x3p,$y3p,$x1p,$y1p); + $color2 = $this->GetColor($v4); + $p2 = array($x1,$y1,$x1p,$y1p,$x3p,$y3p,$x4,$y4,$x1,$y1); + + $color = $this->GetColor($v1p); + $p = array($x1p,$y1p,$x3p,$y3p); + $v = $v1p; + } + elseif( $dv1 == 1 && $dv4 == 1 ) { + $color1 = $this->GetColor($v1); + $p1 = array($x1,$y1,$x1p,$y1p,$x4p,$y4p,$x1,$y1); + $color2 = $this->GetColor($v3); + $p2 = array($x1p,$y1p,$x2,$y2,$x3,$y3,$x4,$y4,$x4p,$y4p,$x1p,$y1p); + + $color = $this->GetColor($v1p); + $p = array($x1p,$y1p,$x4p,$y4p); + $v = $v1p; + } + elseif( $dv2 == 1 && $dv4 == 1 ) { + $color1 = $this->GetColor($v1); + $p1 = array($x1,$y1,$x2,$y2,$x2p,$y2p,$x4p,$y4p,$x1,$y1); + $color2 = $this->GetColor($v3); + $p2 = array($x4p,$y4p,$x2p,$y2p,$x3,$y3,$x4,$y4,$x4p,$y4p); + + $color = $this->GetColor($v2p); + $p = array($x2p,$y2p,$x4p,$y4p); + $v = $v2p; + } + elseif( $dv2 == 1 && $dv3 == 1 ) { + $color1 = $this->GetColor($v1); + $p1 = array($x1,$y1,$x2,$y2,$x2p,$y2p,$x3p,$y3p,$x4,$y4,$x1,$y1); + $color2 = $this->GetColor($v3); + $p2 = array($x2p,$y2p,$x3,$y3,$x3p,$y3p,$x2p,$y2p); + + $color = $this->GetColor($v2p); + $p = array($x2p,$y2p,$x3p,$y3p); + $v = $v2p; + } + elseif( $dv3 == 1 && $dv4 == 1 ) { + $color1 = $this->GetColor($v1); + $p1 = array($x1,$y1,$x2,$y2,$x3,$y3,$x3p,$y3p,$x4p,$y4p,$x1,$y1); + $color2 = $this->GetColor($v4); + $p2 = array($x4p,$y4p,$x3p,$y3p,$x4,$y4,$x4p,$y4p); + + $color = $this->GetColor($v4p); + $p = array($x4p,$y4p,$x3p,$y3p); + $v = $v4p; + } + + $this->FillPolygon($color1,$p1); + $this->FillPolygon($color2,$p2); + + if( $this->showcontlines ) { + if( $this->dofill ) { + $this->shape->SetColor($this->contlinecolor); + } + else { + $this->shape->SetColor($color); + } + $this->shape->Line($p[0],$p[1],$p[2],$p[3]); + } + if( $this->showlabels ) { + $this->putLabel( ($p[0]+$p[2])/2, ($p[1]+$p[3])/2, $p[2],$p[3] , $v); + } + } + elseif( $fcnt == 4 && $totdv==4 ) { + $vc = ($v1+$v2+$v3+$v4)/4; + + if( $v1p == $v2p && $v2p == $v3p && $v3p == $v4p ) { + // Four edge crossings (saddle point) of the same contour + // so we first need to + // find out how the saddle is crossing "/" or "\" + + if( $this->GetNextHigherContourIdx($vc) == $this->GetNextHigherContourIdx($v1) ) { + // "\" + $color1 = $this->GetColor($v1); + $p1 = array($x1,$y1,$x1p,$y1p,$x4p,$y4p,$x1,$y1); + + $color2 = $this->GetColor($v2); + $p2 = array($x1p,$y1p,$x2,$y2,$x2p,$y2p,$x3p,$y3p,$x4,$y4,$x4p,$y4p,$x1p,$y1p); + + $color3 = $color1; + $p3 = array($x2p,$y2p,$x3,$y3,$x3p,$y3p,$x2p,$y2p); + + $colorl1 = $this->GetColor($v1p); + $pl1 = array($x1p,$y1p,$x4p,$y4p); + $colorl2 = $this->GetColor($v2p); + $pl2 = array($x2p,$y2p,$x3p,$y3p); + $vl1 = $v1p; $vl2 = $v2p; + + } + else { + // "/" + $color1 = $this->GetColor($v2); + $p1 = array($x1p,$y1p,$x2,$y2,$x2p,$y2p,$x1p,$y1p); + + $color2 = $this->GetColor($v3); + $p2 = array($x1p,$y1p,$x2p,$y2p,$x3,$y3,$x3p,$y3p,$x4p,$y4p,$x1,$y1,$x1p,$y1p); + + $color3 = $color1; + $p3 = array($x4p,$y4p,$x3p,$y3p,$x4,$y4,$x4p,$y4p); + + $colorl1 = $this->GetColor($v1p); + $pl1 = array($x1p,$y1p,$x2p,$y2p); + $colorl2 = $this->GetColor($v4p); + $pl2 = array($x4p,$y4p,$x3p,$y3p); + $vl1 = $v1p; $vl2 = $v4p; + } + } + else { + // There are two different contours crossing so we need to find + // out which belongs to which + if( $v1p == $v2p ) { + // "/" + $color1 = $this->GetColor($v2); + $p1 = array($x1p,$y1p,$x2,$y2,$x2p,$y2p,$x1p,$y1p); + + $color2 = $this->GetColor($v3); + $p2 = array($x1p,$y1p,$x2p,$y2p,$x3,$y3,$x3p,$y3p,$x4p,$y4p,$x1,$y1,$x1p,$y1p); + + $color3 = $this->GetColor($v4); + $p3 = array($x4p,$y4p,$x3p,$y3p,$x4,$y4,$x4p,$y4p); + + $colorl1 = $this->GetColor($v1p); + $pl1 = array($x1p,$y1p,$x2p,$y2p); + $colorl2 = $this->GetColor($v4p); + $pl2 = array($x4p,$y4p,$x3p,$y3p); + $vl1 = $v1p; $vl2 = $v4p; + } + else { //( $v1p == $v4p ) + // "\" + $color1 = $this->GetColor($v1); + $p1 = array($x1,$y1,$x1p,$y1p,$x4p,$y4p,$x1,$y1); + + $color2 = $this->GetColor($v2); + $p2 = array($x1p,$y1p,$x2,$y2,$x2p,$y2p,$x3p,$y3p,$x4,$y4,$x4p,$y4p,$x1p,$y1p); + + $color3 = $this->GetColor($v3); + $p3 = array($x2p,$y2p,$x3,$y3,$x3p,$y3p,$x2p,$y2p); + + $colorl1 = $this->GetColor($v1p); + $pl1 = array($x1p,$y1p,$x4p,$y4p); + $colorl2 = $this->GetColor($v2p); + $pl2 = array($x2p,$y2p,$x3p,$y3p); + $vl1 = $v1p; $vl2 = $v2p; + } + } + $this->FillPolygon($color1,$p1); + $this->FillPolygon($color2,$p2); + $this->FillPolygon($color3,$p3); + + if( $this->showcontlines ) { + if( $this->dofill ) { + $this->shape->SetColor($this->contlinecolor); + $this->shape->Line($pl1[0],$pl1[1],$pl1[2],$pl1[3]); + $this->shape->Line($pl2[0],$pl2[1],$pl2[2],$pl2[3]); + } + else { + $this->shape->SetColor($colorl1); + $this->shape->Line($pl1[0],$pl1[1],$pl1[2],$pl1[3]); + $this->shape->SetColor($colorl2); + $this->shape->Line($pl2[0],$pl2[1],$pl2[2],$pl2[3]); + } + } + if( $this->showlabels ) { + $this->putLabel( ($pl1[0]+$pl1[2])/2, ($pl1[1]+$pl1[3])/2, $pl1[2], $pl1[3], $vl1); + $this->putLabel( ($pl2[0]+$pl2[2])/2, ($pl2[1]+$pl2[3])/2, $pl2[2], $pl2[3],$vl2); + } + } + } + else { + $vc = ($v1+$v2+$v3+$v4)/4; + $xc = ($x1+$x4)/2; + $yc = ($y1+$y2)/2; + + // Top left + $this->RectFill(($v1+$v2)/2, $v2, ($v2+$v3)/2, $vc, + $x1,$yc, $x2,$y2, $xc,$y2, $xc,$yc, $depth+1); + // Top right + $this->RectFill($vc, ($v2+$v3)/2, $v3, ($v3+$v4)/2, + $xc,$yc, $xc,$y2, $x3,$y3, $x3,$yc, $depth+1); + + // Bottom left + $this->RectFill($v1, ($v1+$v2)/2, $vc, ($v1+$v4)/2, + $x1,$y1, $x1,$yc, $xc,$yc, $xc,$y4, $depth+1); + + // Bottom right + $this->RectFill(($v1+$v4)/2, $vc, ($v3+$v4)/2, $v4, + $xc,$y1, $xc,$yc, $x3,$yc, $x4,$y4, $depth+1); + + } + } + } + } + + function TriFill($v1,$v2,$v3,$x1,$y1,$x2,$y2,$x3,$y3,$depth) { + if( $depth >= self::$maxdepth ) { + // Abort and just appoximate the color of this area + // with the average of the three values + $color = $this->GetColor(($v1+$v2+$v3)/3); + $p = array($x1, $y1, $x2, $y2, $x3, $y3, $x1, $y1); + $this->FillPolygon($color,$p) ; + } + else { + // In order to avoid some real unpleasentness in case a vertice is exactly + // the same value as a contour we pertuberate them so that we do not end up + // in udefined situation. This will only affect the calculations and not the + // visual appearance + + $dummy=0; + $this->Pertubate($v1,$v2,$v3,$dummy); + + $fcnt = 0 ; + $vv1 = $this->GetNextHigherContourIdx($v1); + $vv2 = $this->GetNextHigherContourIdx($v2); + $vv3 = $this->GetNextHigherContourIdx($v3); + $eps = 0.0001; + + if( $vv1 == $vv2 && $vv2 == $vv3 ) { + $color = $this->GetColor($v1); + $p = array($x1, $y1, $x2, $y2, $x3, $y3, $x1, $y1); + $this->FillPolygon($color,$p) ; + } + else { + $dv1 = abs($vv1-$vv2); + $dv2 = abs($vv2-$vv3); + $dv3 = abs($vv1-$vv3); + + if( $dv1 == 1 ) { + list($x1p,$y1p,$v1p) = $this->interp2($x1,$y1,$x2,$y2,$v1,$v2); + $fcnt++; + } + else { + $x1p = ($x1+$x2)/2; + $y1p = ($y1+$y2)/2; + $v1p = ($v1+$v2)/2; + } + + if( $dv2 == 1 ) { + list($x2p,$y2p,$v2p) = $this->interp2($x2,$y2,$x3,$y3,$v2,$v3); + $fcnt++; + } + else { + $x2p = ($x2+$x3)/2; + $y2p = ($y2+$y3)/2; + $v2p = ($v2+$v3)/2; + } + + if( $dv3 == 1 ) { + list($x3p,$y3p,$v3p) = $this->interp2($x3,$y3,$x1,$y1,$v3,$v1); + $fcnt++; + } + else { + $x3p = ($x3+$x1)/2; + $y3p = ($y3+$y1)/2; + $v3p = ($v3+$v1)/2; + } + + if( $fcnt == 2 && + ((abs($v1p-$v2p) < $eps && $dv1 ==1 && $dv2==1 ) || + (abs($v1p-$v3p) < $eps && $dv1 ==1 && $dv3==1 ) || + (abs($v2p-$v3p) < $eps && $dv2 ==1 && $dv3==1 )) ) { + + // This means that the contour line crosses exactly two sides + // and that the values of each vertice is such that only this + // contour line will cross this section. + // We can now be smart. The cotour line will simply divide the + // area in two polygons that we can fill and then return. There is no + // need to recurse. + + // First find out which two sides the contour is crossing + if( abs($v1p-$v2p) < $eps ) { + $p4 = array($x1,$y1,$x1p,$y1p,$x2p,$y2p,$x3,$y3,$x1,$y1); + $color4 = $this->GetColor($v1); + + $p3 = array($x1p,$y1p,$x2,$y2,$x2p,$y2p,$x1p,$y1p); + $color3 = $this->GetColor($v2); + + $p = array($x1p,$y1p,$x2p,$y2p); + $color = $this->GetColor($v1p); + $v = $v1p; + } + elseif( abs($v1p-$v3p) < $eps ) { + $p4 = array($x1p,$y1p,$x2,$y2,$x3,$y3,$x3p,$y3p,$x1p,$y1p); + $color4 = $this->GetColor($v2); + + $p3 = array($x1,$y1,$x1p,$y1p,$x3p,$y3p,$x1,$y1); + $color3 = $this->GetColor($v1); + + $p = array($x1p,$y1p,$x3p,$y3p); + $color = $this->GetColor($v1p); + $v = $v1p; + } + else { + $p4 = array($x1,$y1,$x2,$y2,$x2p,$y2p,$x3p,$y3p,$x1,$y1); + $color4 = $this->GetColor($v2); + + $p3 = array($x3p,$y3p,$x2p,$y2p,$x3,$y3,$x3p,$y3p); + $color3 = $this->GetColor($v3); + + $p = array($x3p,$y3p,$x2p,$y2p); + $color = $this->GetColor($v3p); + $v = $v3p; + } + $this->FillPolygon($color4,$p4); + $this->FillPolygon($color3,$p3); + + if( $this->showcontlines ) { + if( $this->dofill ) { + $this->shape->SetColor($this->contlinecolor); + } + else { + $this->shape->SetColor($color); + } + $this->shape->Line($p[0],$p[1],$p[2],$p[3]); + } + if( $this->showlabels ) { + $this->putLabel( ($p[0]+$p[2])/2, ($p[1]+$p[3])/2, $p[2], $p[3], $v); + } + } + else { + $this->TriFill($v1, $v1p, $v3p, $x1, $y1, $x1p, $y1p, $x3p, $y3p, $depth+1); + $this->TriFill($v1p, $v2, $v2p, $x1p, $y1p, $x2, $y2, $x2p, $y2p, $depth+1); + $this->TriFill($v3p, $v1p, $v2p, $x3p, $y3p, $x1p, $y1p, $x2p, $y2p, $depth+1); + $this->TriFill($v3p, $v2p, $v3, $x3p, $y3p, $x2p, $y2p, $x3, $y3, $depth+1); + } + } + } + } + + function Fill($v1,$v2,$v3,$maxdepth) { + $x1=0; $y1=1; + $x2=1; $y2=0; + $x3=1; $y3=1; + self::$maxdepth = $maxdepth; + $this->TriFill($v1, $v2, $v3, $x1, $y1, $x2, $y2, $x3, $y3, 0); + } + + function Fillmesh($meshdata,$maxdepth,$method='tri') { + $nx = count($meshdata[0]); + $ny = count($meshdata); + self::$maxdepth = $maxdepth; + for( $x=0; $x < $nx-1; ++$x ) { + for( $y=0; $y < $ny-1; ++$y ) { + $v1 = $meshdata[$y][$x]; + $v2 = $meshdata[$y][$x+1]; + $v3 = $meshdata[$y+1][$x+1]; + $v4 = $meshdata[$y+1][$x]; + + if( $method == 'tri' ) { + // Fill upper and lower triangle + $this->TriFill($v4, $v1, $v2, $x, $y+1, $x, $y, $x+1, $y, 0); + $this->TriFill($v4, $v2, $v3, $x, $y+1, $x+1, $y, $x+1, $y+1, 0); + } + else { + $this->RectFill($v4, $v1, $v2, $v3, $x, $y+1, $x, $y, $x+1, $y, $x+1, $y+1, 0); + } + } + } + if( $this->showlabels ) { + $this->strokeLabels(); + } + } +} + +$meshdata = array( + array (12,12,10,10), + array (10,10,8,14), + array (7,7,13,17), + array (4,5,8,12), + array (10,8,7,8)); + +$tt = new SingleTestTriangle(400,400,count($meshdata[0])-1,count($meshdata)-1); +$tt->SetContours(array(4.7, 6.0, 7.2, 8.6, 9.9, 11.2, 12.5, 13.8, 15.1, 16.4)); +$tt->SetFilled(true); + +//$tt->ShowTriangulation(true); +$tt->ShowLines(true); + +//$tt->ShowLabels(true); +$tt->Fillmesh($meshdata, 8, 'rect'); + +//$tt->Fill(4.0,3.0,7.0, 4); +//$tt->Fill(7,4,1,5); +//$tt->Fill(1,7,4,5); + +$tt->Stroke(); + +?> diff --git a/gosa-core/include/jpgraph/excludeFromAutoLoad b/gosa-core/include/jpgraph/excludeFromAutoLoad new file mode 100644 index 000000000..230f80af3 --- /dev/null +++ b/gosa-core/include/jpgraph/excludeFromAutoLoad @@ -0,0 +1 @@ +This file excludes jpgraph from PHP5 class auto loading. diff --git a/gosa-core/include/jpgraph/flag_mapping b/gosa-core/include/jpgraph/flag_mapping new file mode 100644 index 000000000..7f9c3c5fa --- /dev/null +++ b/gosa-core/include/jpgraph/flag_mapping @@ -0,0 +1,237 @@ +class JpCountryFlags { + +$iCountryFlags = array( + 'Afghanistan' => 'afgh.gif', + 'Republic of Angola' => 'agla.gif', + 'Republic of Albania' => 'alba.gif', + 'Alderney' => 'alde.gif', + 'Democratic and Popular Republic of Algeria' => 'alge.gif', + 'Territory of American Samoa' => 'amsa.gif', + 'Principality of Andorra' => 'andr.gif', + 'British Overseas Territory of Anguilla' => 'angu.gif', + 'Antarctica' => 'anta.gif', + 'Argentine Republic' => 'arge.gif', + 'League of Arab States' => 'arle.gif', + 'Republic of Armenia' => 'arme.gif', + 'Aruba' => 'arub.gif', + 'Commonwealth of Australia' => 'astl.gif', + 'Republic of Austria' => 'aust.gif', + 'Azerbaijani Republic' => 'azer.gif', + 'British Antarctic Territory' => 'bant.gif', + 'Kingdom of Belgium' => 'belg.gif', + 'British Overseas Territory of Bermuda' => 'berm.gif', + 'Commonwealth of the Bahamas' => 'bhms.gif', + 'Kingdom of Bahrain' => 'bhrn.gif', + 'Republic of Belarus' => 'blru.gif', + 'Republic of Bolivia' => 'blva.gif', + 'Belize' => 'blze.gif', + 'Republic of Benin' => 'bnin.gif', + 'Republic of Botswana' => 'bots.gif', + 'Federative Republic of Brazil' => 'braz.gif', + 'Barbados' => 'brbd.gif', + 'British Indian Ocean Territory' => 'brin.gif', + 'Brunei Darussalam' => 'brun.gif', + 'Republic of Burkina' => 'bufa.gif', + 'Republic of Bulgaria' => 'bulg.gif', + 'Republic of Burundi' => 'buru.gif', + 'Overseas Territory of the British Virgin Islands' => 'bvis.gif', + 'Central African Republic' => 'cafr.gif', + 'Kingdom of Cambodia' => 'camb.gif', + 'Republic of Cameroon' => 'came.gif', + 'Dominion of Canada' => 'cana.gif', + 'Caribbean Community' => 'cari.gif', + 'Republic of Cape Verde' => 'cave.gif', + 'Republic of Chad' => 'chad.gif', + 'Republic of Chile' => 'chil.gif', + 'Territory of Christmas Island' => 'chms.gif', + 'Commonwealth of Independent States' => 'cins.gif', + 'Cook Islands' => 'ckis.gif', + 'Republic of Colombia' => 'clmb.gif', + 'Territory of Cocos Islands' => 'cois.gif', + 'Commonwealth' => 'comn.gif', + 'Union of the Comoros' => 'como.gif', + 'Republic of the Congo' => 'cong.gif', + 'Republic of Costa Rica' => 'corc.gif', + 'Republic of Croatia' => 'croa.gif', + 'Republic of Cuba' => 'cuba.gif', + 'British Overseas Territory of the Cayman Islands' => 'cyis.gif', + 'Republic of Cyprus' => 'cypr.gif', + 'The Czech Republic' => 'czec.gif', + 'Kingdom of Denmark' => 'denm.gif', + 'Republic of Djibouti' => 'djib.gif', + 'Commonwealth of Dominica' => 'domn.gif', + 'Dominican Republic' => 'dore.gif', + 'Republic of Ecuador' => 'ecua.gif', + 'Arab Republic of Egypt' => 'egyp.gif', + 'Republic of El Salvador' => 'elsa.gif', + 'England' => 'engl.gif', + 'Republic of Equatorial Guinea' => 'eqgu.gif', + 'State of Eritrea' => 'erit.gif', + 'Republic of Estonia' => 'estn.gif', + 'Ethiopia' => 'ethp.gif', + 'European Union' => 'euun.gif', + 'British Overseas Territory of the Falkland Islands' => 'fais.gif', + 'International Federation of Vexillological Associations' => 'fiav.gif', + 'Republic of Fiji' => 'fiji.gif', + 'Republic of Finland' => 'finl.gif', + 'Territory of French Polynesia' => 'fpol.gif', + 'French Republic' => 'fran.gif', + 'Overseas Department of French Guiana' => 'frgu.gif', + 'Gabonese Republic' => 'gabn.gif', + 'Republic of the Gambia' => 'gamb.gif', + 'Republic of Georgia' => 'geor.gif', + 'Federal Republic of Germany' => 'germ.gif', + 'Republic of Ghana' => 'ghan.gif', + 'Gibraltar' => 'gibr.gif', + 'Hellenic Republic' => 'grec.gif', + 'State of Grenada' => 'gren.gif', + 'Overseas Department of Guadeloupe' => 'guad.gif', + 'Territory of Guam' => 'guam.gif', + 'Republic of Guatemala' => 'guat.gif', + 'The Bailiwick of Guernsey' => 'guer.gif', + 'Republic of Guinea' => 'guin.gif', + 'Republic of Haiti' => 'hait.gif', + 'Hong Kong Special Administrative Region' => 'hokn.gif', + 'Republic of Honduras' => 'hond.gif', + 'Republic of Hungary' => 'hung.gif', + 'Republic of Iceland' => 'icel.gif', + 'International Committee of the Red Cross' => 'icrc.gif', + 'Republic of India' => 'inda.gif', + 'Republic of Indonesia' => 'indn.gif', + 'Republic of Iraq' => 'iraq.gif', + 'Republic of Ireland' => 'irel.gif', + 'Organization of the Islamic Conference' => 'isco.gif', + 'Isle of Man' => 'isma.gif', + 'State of Israel' => 'isra.gif', + 'Italian Republic' => 'ital.gif', + 'Jamaica' => 'jama.gif', + 'Japan' => 'japa.gif', + 'The Bailiwick of Jersey' => 'jers.gif', + 'Hashemite Kingdom of Jordan' => 'jord.gif', + 'Republic of Kazakhstan' => 'kazk.gif', + 'Republic of Kenya' => 'keny.gif', + 'Republic of Kiribati' => 'kirb.gif', + 'State of Kuwait' => 'kuwa.gif', + 'Kyrgyz Republic' => 'kyrg.gif', + 'Republic of Latvia' => 'latv.gif', + 'Lebanese Republic' => 'leba.gif', + 'Kingdom of Lesotho' => 'lest.gif', + 'Republic of Liberia' => 'libe.gif', + 'Principality of Liechtenstein' => 'liec.gif', + 'Republic of Lithuania' => 'lith.gif', + 'Grand Duchy of Luxembourg' => 'luxe.gif', + 'Macao Special Administrative Region' => 'maca.gif', + 'Republic of Macedonia' => 'mace.gif', + 'Republic of Madagascar' => 'mada.gif', + 'Republic of the Marshall Islands' => 'mais.gif', + 'Republic of Maldives' => 'mald.gif', + 'Republic of Mali' => 'mali.gif', + 'Federation of Malaysia' => 'mals018.gif', + 'Republic of Malta' => 'malt.gif', + 'Republic of Malawi' => 'malw.gif', + 'Overseas Department of Martinique' => 'mart.gif', + 'Islamic Republic of Mauritania' => 'maur.gif', + 'Territorial Collectivity of Mayotte' => 'mayt.gif', + 'United Mexican States' => 'mexc.gif', + 'Federated States of Micronesia' => 'micr.gif', + 'Midway Islands' => 'miis.gif', + 'Republic of Moldova' => 'mold.gif', + 'Principality of Monaco' => 'mona.gif', + 'Republic of Mongolia' => 'mong.gif', + 'British Overseas Territory of Montserrat' => 'mont.gif', + 'Kingdom of Morocco' => 'morc.gif', + 'Republic of Mozambique' => 'moza.gif', + 'Republic of Mauritius' => 'mrts.gif', + 'Union of Myanmar' => 'myan.gif', + 'Republic of Namibia' => 'namb.gif', + 'North Atlantic Treaty Organization' => 'nato.gif', + 'Republic of Nauru' => 'naur.gif', + 'Turkish Republic of Northern Cyprus' => 'ncyp.gif', + 'Netherlands Antilles' => 'nean.gif', + 'Kingdom of Nepal' => 'nepa.gif', + 'Kingdom of the Netherlands' => 'neth.gif', + 'Territory of Norfolk Island' => 'nfis.gif', + 'Federal Republic of Nigeria' => 'ngra.gif', + 'Republic of Nicaragua' => 'nica.gif', + 'Republic of Niger' => 'nigr.gif', + 'Niue' => 'niue.gif', + 'Commonwealth of the Northern Mariana Islands' => 'nmar.gif', + 'Province of Northern Ireland' => 'noir.gif', + 'Nordic Council' => 'nord.gif', + 'Kingdom of Norway' => 'norw.gif', + 'Territory of New Caledonia and Dependencies' => 'nwca.gif', + 'New Zealand' => 'nwze.gif', + 'Organization of American States' => 'oast.gif', + 'Organization of African Unity' => 'oaun.gif', + 'International Olympic Committee' => 'olym.gif', + 'Sultanate of Oman' => 'oman.gif', + 'Organization of Petroleum Exporting Countries' => 'opec.gif', + 'Islamic Republic of Pakistan' => 'paks.gif', + 'Republic of Palau' => 'pala.gif', + 'Independent State of Papua New Guinea' => 'pang.gif', + 'Republic of Paraguay' => 'para.gif', + 'Republic of the Philippines' => 'phil.gif', + 'British Overseas Territory of the Pitcairn Islands' => 'piis.gif', + 'Republic of Poland' => 'pola.gif', + 'Republic of Portugal' => 'port.gif', + 'Commonwealth of Puerto Rico' => 'purc.gif', + 'State of Qatar' => 'qata.gif', + 'Russian Federation' => 'russ.gif', + 'Republic of Rwanda' => 'rwan.gif', + 'Kingdom of Saudi Arabia' => 'saar.gif', + 'Republic of San Marino' => 'sama.gif', + 'Nordic Sami Conference' => 'sami.gif', + 'Sark' => 'sark.gif', + 'Scotland' => 'scot.gif', + 'Principality of Seborga' => 'sebo.gif', + 'Republic of Sierra Leone' => 'sile.gif', + 'Republic of Singapore' => 'sing.gif', + 'Republic of Korea' => 'skor.gif', + 'Republic of Slovenia' => 'slva.gif', + 'Somali Republic' => 'smla.gif', + 'Republic of Somaliland' => 'smld.gif', + 'Republic of South Africa' => 'soaf.gif', + 'Solomon Islands' => 'sois.gif', + 'Kingdom of Spain' => 'span.gif', + 'Secretariat of the Pacific Community' => 'spco.gif', + 'Democratic Socialist Republic of Sri Lanka' => 'srla.gif', + 'Saint Lucia' => 'stlu.gif', + 'Republic of the Sudan' => 'suda.gif', + 'Republic of Suriname' => 'surn.gif', + 'Slovak Republic' => 'svka.gif', + 'Kingdom of Sweden' => 'swdn.gif', + 'Swiss Confederation' => 'swit.gif', + 'Syrian Arab Republic' => 'syra.gif', + 'Kingdom of Swaziland' => 'szld.gif', + 'Republic of China' => 'taiw.gif', + 'Republic of Tajikistan' => 'tajk.gif', + 'United Republic of Tanzania' => 'tanz.gif', + 'Kingdom of Thailand' => 'thal.gif', + 'Autonomous Region of Tibet' => 'tibe.gif', + 'Turkmenistan' => 'tkst.gif', + 'Togolese Republic' => 'togo.gif', + 'Tokelau' => 'toke.gif', + 'Kingdom of Tonga' => 'tong.gif', + 'Tristan da Cunha' => 'trdc.gif', + 'Tromelin' => 'tris.gif', + 'Republic of Tunisia' => 'tuns.gif', + 'Republic of Turkey' => 'turk.gif', + 'Tuvalu' => 'tuva.gif', + 'United Arab Emirates' => 'uaem.gif', + 'Republic of Uganda' => 'ugan.gif', + 'Ukraine' => 'ukrn.gif', + 'United Kingdom of Great Britain' => 'unkg.gif', + 'United Nations' => 'unna.gif', + 'United States of America' => 'unst.gif', + 'Oriental Republic of Uruguay' => 'urgy.gif', + 'Virgin Islands of the United States' => 'usvs.gif', + 'Republic of Uzbekistan' => 'uzbk.gif', + 'State of the Vatican City' => 'vacy.gif', + 'Republic of Vanuatu' => 'vant.gif', + 'Bolivarian Republic of Venezuela' => 'venz.gif', + 'Republic of Yemen' => 'yemn.gif', + 'Democratic Republic of Congo' => 'zare.gif', + 'Republic of Zimbabwe' => 'zbwe.gif' +) ; + + diff --git a/gosa-core/include/jpgraph/flags.dat b/gosa-core/include/jpgraph/flags.dat new file mode 100644 index 0000000000000000000000000000000000000000..1cd2e72345fa62b81201376256dc29a708c54347 GIT binary patch literal 982587 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

2fZ$(t&%nTh%}5F1t;O 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 _Yb*gsl{o9p$1}jcUynruV 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�hp%Nk=wmT?cw_8z>vR^_KK;-#96XjYxcb0l=! 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�s3oglwE3h5pEoocJpb6vxt%#yk_I#7(2)f`FJVt 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

wm!N5E2&q>)N~D!GCKdK>uMSkP^G4 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

RxKQC~I%ln)3 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�Z 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'? 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�yxY)DVKxbkk#%+3*nxp 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 ctAL%sQ3vwLqDf=7~T7M;5yg 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

_J93d;bMn1G!D2i?sDBKbrS7UggA&mBkFo*Jozl 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

f6eV=uZFPd@Vp%AeAh^ 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štCY-#ld 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ν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 z

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 z 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

  • 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

    4vC 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 literal 0 HcmV?d00001 diff --git a/gosa-core/include/jpgraph/gd_image.inc.php b/gosa-core/include/jpgraph/gd_image.inc.php new file mode 100644 index 000000000..c2ec49e88 --- /dev/null +++ b/gosa-core/include/jpgraph/gd_image.inc.php @@ -0,0 +1,2021 @@ +CreateImgCanvas($aWidth,$aHeight); + + if( $aSetAutoMargin ) { + $this->SetAutoMargin(); + } + + if( !$this->SetImgFormat($aFormat) ) { + JpGraphError::RaiseL(25081,$aFormat);//("JpGraph: Selected graphic format is either not supported or unknown [$aFormat]"); + } + $this->ttf = new TTF(); + $this->langconv = new LanguageConv(); + } + + // Enable interlacing in images + function SetInterlace($aFlg=true) { + $this->iInterlace=$aFlg; + } + + // Should we use anti-aliasing. Note: This really slows down graphics! + function SetAntiAliasing($aFlg=true) { + $this->use_anti_aliasing = $aFlg; + if( function_exists('imageantialias') ) { + imageantialias($this->img,$aFlg); + } + else { + JpGraphError::RaiseL(25128);//('The function imageantialias() is not available in your PHP installation. Use the GD version that comes with PHP and not the standalone version.') + } + } + + function GetAntiAliasing() { + return $this->use_anti_aliasing ; + } + + function CreateRawCanvas($aWidth=0,$aHeight=0) { + if( $aWidth <= 1 || $aHeight <= 1 ) { + JpGraphError::RaiseL(25082,$aWidth,$aHeight);//("Illegal sizes specified for width or height when creating an image, (width=$aWidth, height=$aHeight)"); + } + + $this->img = @imagecreatetruecolor($aWidth, $aHeight); + if( $this->img < 1 ) { + JpGraphError::RaiseL(25126); + //die("Can't create truecolor image. Check that you really have GD2 library installed."); + } + $this->SetAlphaBlending(); + + if( $this->iInterlace ) { + imageinterlace($this->img,1); + } + if( $this->rgb != null ) { + $this->rgb->img = $this->img ; + } + else { + $this->rgb = new RGB($this->img); + } + } + + function CloneCanvasH() { + $oldimage = $this->img; + $this->CreateRawCanvas($this->width,$this->height); + imagecopy($this->img,$oldimage,0,0,0,0,$this->width,$this->height); + return $oldimage; + } + + function CreateImgCanvas($aWidth=0,$aHeight=0) { + + $old = array($this->img,$this->width,$this->height); + + $aWidth = round($aWidth); + $aHeight = round($aHeight); + + $this->width=$aWidth; + $this->height=$aHeight; + + + if( $aWidth==0 || $aHeight==0 ) { + // We will set the final size later. + // Note: The size must be specified before any other + // img routines that stroke anything are called. + $this->img = null; + $this->rgb = null; + return $old; + } + + $this->CreateRawCanvas($aWidth,$aHeight); + // Set canvas color (will also be the background color for a + // a pallett image + $this->SetColor($this->canvascolor); + $this->FilledRectangle(0,0,$aWidth-1,$aHeight-1); + + return $old ; + } + + function CopyCanvasH($aToHdl,$aFromHdl,$aToX,$aToY,$aFromX,$aFromY,$aWidth,$aHeight,$aw=-1,$ah=-1) { + if( $aw === -1 ) { + $aw = $aWidth; + $ah = $aHeight; + $f = 'imagecopyresized'; + } + else { + $f = 'imagecopyresampled'; + } + $f($aToHdl,$aFromHdl,$aToX,$aToY,$aFromX,$aFromY, $aWidth,$aHeight,$aw,$ah); + } + + function Copy($fromImg,$toX,$toY,$fromX,$fromY,$toWidth,$toHeight,$fromWidth=-1,$fromHeight=-1) { + $this->CopyCanvasH($this->img,$fromImg,$toX,$toY,$fromX,$fromY,$toWidth,$toHeight,$fromWidth,$fromHeight); + } + + function CopyMerge($fromImg,$toX,$toY,$fromX,$fromY,$toWidth,$toHeight,$fromWidth=-1,$fromHeight=-1,$aMix=100) { + if( $aMix == 100 ) { + $this->CopyCanvasH($this->img,$fromImg, + $toX,$toY,$fromX,$fromY,$toWidth,$toHeight,$fromWidth,$fromHeight); + } + else { + if( ($fromWidth != -1 && ($fromWidth != $toWidth)) || ($fromHeight != -1 && ($fromHeight != $fromHeight)) ) { + // Create a new canvas that will hold the re-scaled original from image + if( $toWidth <= 1 || $toHeight <= 1 ) { + JpGraphError::RaiseL(25083);//('Illegal image size when copying image. Size for copied to image is 1 pixel or less.'); + } + + $tmpimg = @imagecreatetruecolor($toWidth, $toHeight); + + if( $tmpimg < 1 ) { + JpGraphError::RaiseL(25084);//('Failed to create temporary GD canvas. Out of memory ?'); + } + $this->CopyCanvasH($tmpimg,$fromImg,0,0,0,0, + $toWidth,$toHeight,$fromWidth,$fromHeight); + $fromImg = $tmpimg; + } + imagecopymerge($this->img,$fromImg,$toX,$toY,$fromX,$fromY,$toWidth,$toHeight,$aMix); + } + } + + static function GetWidth($aImg=null) { + if( $aImg === null ) { + $aImg = $this->img; + } + return imagesx($aImg); + } + + static function GetHeight($aImg=null) { + if( $aImg === null ) { + $aImg = $this->img; + } + return imagesy($aImg); + } + + static function CreateFromString($aStr) { + $img = imagecreatefromstring($aStr); + if( $img === false ) { + JpGraphError::RaiseL(25085); + //('An image can not be created from the supplied string. It is either in a format not supported or the string is representing an corrupt image.'); + } + return $img; + } + + function SetCanvasH($aHdl) { + $this->img = $aHdl; + $this->rgb->img = $aHdl; + } + + function SetCanvasColor($aColor) { + $this->canvascolor = $aColor ; + } + + function SetAlphaBlending($aFlg=true) { + ImageAlphaBlending($this->img,$aFlg); + } + + function SetAutoMargin() { + $min_bm=5; + $lm = min(40,$this->width/7); + $rm = min(20,$this->width/10); + $tm = max(5,$this->height/7); + $bm = max($min_bm,$this->height/6); + $this->SetMargin($lm,$rm,$tm,$bm); + } + + //--------------- + // PUBLIC METHODS + + function SetFont($family,$style=FS_NORMAL,$size=10) { + $this->font_family=$family; + $this->font_style=$style; + $this->font_size=$size; + $this->font_file=''; + if( ($this->font_family==FF_FONT1 || $this->font_family==FF_FONT2) && $this->font_style==FS_BOLD ){ + ++$this->font_family; + } + if( $this->font_family > FF_FONT2+1 ) { // A TTF font so get the font file + + // Check that this PHP has support for TTF fonts + if( !function_exists('imagettfbbox') ) { + JpGraphError::RaiseL(25087);//('This PHP build has not been configured with TTF support. You need to recompile your PHP installation with FreeType support.'); + } + $this->font_file = $this->ttf->File($this->font_family,$this->font_style); + } + } + + // Get the specific height for a text string + function GetTextHeight($txt="",$angle=0) { + $tmp = preg_split('/\n/',$txt); + $n = count($tmp); + $m=0; + for($i=0; $i< $n; ++$i) { + $m = max($m,strlen($tmp[$i])); + } + + if( $this->font_family <= FF_FONT2+1 ) { + if( $angle==0 ) { + $h = imagefontheight($this->font_family); + if( $h === false ) { + JpGraphError::RaiseL(25088);//('You have a misconfigured GD font support. The call to imagefontwidth() fails.'); + } + + return $n*$h; + } + else { + $w = @imagefontwidth($this->font_family); + if( $w === false ) { + JpGraphError::RaiseL(25088);//('You have a misconfigured GD font support. The call to imagefontwidth() fails.'); + } + + return $m*$w; + } + } + else { + $bbox = $this->GetTTFBBox($txt,$angle); + return $bbox[1]-$bbox[5]+1; + } + } + + // Estimate font height + function GetFontHeight($angle=0) { + $txt = "XOMg"; + return $this->GetTextHeight($txt,$angle); + } + + // Approximate font width with width of letter "O" + function GetFontWidth($angle=0) { + $txt = 'O'; + return $this->GetTextWidth($txt,$angle); + } + + // Get actual width of text in absolute pixels. Note that the width is the + // texts projected with onto the x-axis. Call with angle=0 to get the true + // etxt width. + function GetTextWidth($txt,$angle=0) { + + $tmp = preg_split('/\n/',$txt); + $n = count($tmp); + if( $this->font_family <= FF_FONT2+1 ) { + + $m=0; + for($i=0; $i < $n; ++$i) { + $l=strlen($tmp[$i]); + if( $l > $m ) { + $m = $l; + } + } + + if( $angle==0 ) { + $w = @imagefontwidth($this->font_family); + if( $w === false ) { + JpGraphError::RaiseL(25088);//('You have a misconfigured GD font support. The call to imagefontwidth() fails.'); + } + return $m*$w; + } + else { + // 90 degrees internal so height becomes width + $h = @imagefontheight($this->font_family); + if( $h === false ) { + JpGraphError::RaiseL(25089);//('You have a misconfigured GD font support. The call to imagefontheight() fails.'); + } + return $n*$h; + } + } + else { + // For TTF fonts we must walk through a lines and find the + // widest one which we use as the width of the multi-line + // paragraph + $m=0; + for( $i=0; $i < $n; ++$i ) { + $bbox = $this->GetTTFBBox($tmp[$i],$angle); + $mm = $bbox[2] - $bbox[0]; + if( $mm > $m ) + $m = $mm; + } + return $m; + } + } + + + // Draw text with a box around it + function StrokeBoxedText($x,$y,$txt,$dir=0,$fcolor="white",$bcolor="black", + $shadowcolor=false,$paragraph_align="left", + $xmarg=6,$ymarg=4,$cornerradius=0,$dropwidth=3) { + + $oldx = $this->lastx; + $oldy = $this->lasty; + + if( !is_numeric($dir) ) { + if( $dir=="h" ) $dir=0; + elseif( $dir=="v" ) $dir=90; + else JpGraphError::RaiseL(25090,$dir);//(" Unknown direction specified in call to StrokeBoxedText() [$dir]"); + } + + if( $this->font_family >= FF_FONT0 && $this->font_family <= FF_FONT2+1) { + $width=$this->GetTextWidth($txt,$dir) ; + $height=$this->GetTextHeight($txt,$dir) ; + } + else { + $width=$this->GetBBoxWidth($txt,$dir) ; + $height=$this->GetBBoxHeight($txt,$dir) ; + } + + $height += 2*$ymarg; + $width += 2*$xmarg; + + if( $this->text_halign=="right" ) $x -= $width; + elseif( $this->text_halign=="center" ) $x -= $width/2; + + if( $this->text_valign=="bottom" ) $y -= $height; + elseif( $this->text_valign=="center" ) $y -= $height/2; + + $olda = $this->SetAngle(0); + + if( $shadowcolor ) { + $this->PushColor($shadowcolor); + $this->FilledRoundedRectangle($x-$xmarg+$dropwidth,$y-$ymarg+$dropwidth, + $x+$width+$dropwidth,$y+$height-$ymarg+$dropwidth, + $cornerradius); + $this->PopColor(); + $this->PushColor($fcolor); + $this->FilledRoundedRectangle($x-$xmarg,$y-$ymarg, + $x+$width,$y+$height-$ymarg, + $cornerradius); + $this->PopColor(); + $this->PushColor($bcolor); + $this->RoundedRectangle($x-$xmarg,$y-$ymarg, + $x+$width,$y+$height-$ymarg,$cornerradius); + $this->PopColor(); + } + else { + if( $fcolor ) { + $oc=$this->current_color; + $this->SetColor($fcolor); + $this->FilledRoundedRectangle($x-$xmarg,$y-$ymarg,$x+$width,$y+$height-$ymarg,$cornerradius); + $this->current_color=$oc; + } + if( $bcolor ) { + $oc=$this->current_color; + $this->SetColor($bcolor); + $this->RoundedRectangle($x-$xmarg,$y-$ymarg,$x+$width,$y+$height-$ymarg,$cornerradius); + $this->current_color=$oc; + } + } + + $h=$this->text_halign; + $v=$this->text_valign; + $this->SetTextAlign("left","top"); + + $debug=false; + $this->StrokeText($x, $y, $txt, $dir, $paragraph_align,$debug); + + $bb = array($x-$xmarg,$y+$height-$ymarg,$x+$width,$y+$height-$ymarg, + $x+$width,$y-$ymarg,$x-$xmarg,$y-$ymarg); + $this->SetTextAlign($h,$v); + + $this->SetAngle($olda); + $this->lastx = $oldx; + $this->lasty = $oldy; + + return $bb; + } + + // Draw text with a box around it. This time the box will be rotated + // with the text. The previous method will just make a larger enough non-rotated + // box to hold the text inside. + function StrokeBoxedText2($x,$y,$txt,$dir=0,$fcolor="white",$bcolor="black", + $shadowcolor=false,$paragraph_align="left", + $xmarg=6,$ymarg=4,$cornerradius=0,$dropwidth=3) { + + // This version of boxed text will stroke a rotated box round the text + // thta will follow the angle of the text. + // This has two implications: + // 1) This methos will only support TTF fonts + // 2) The only two alignment that makes sense are centered or baselined + + if( $this->font_family <= FF_FONT2+1 ) { + JpGraphError::RaiseL(25131);//StrokeBoxedText2() Only support TTF fonts and not built in bitmap fonts + } + + $oldx = $this->lastx; + $oldy = $this->lasty; + $dir = $this->NormAngle($dir); + + if( !is_numeric($dir) ) { + if( $dir=="h" ) $dir=0; + elseif( $dir=="v" ) $dir=90; + else JpGraphError::RaiseL(25090,$dir);//(" Unknown direction specified in call to StrokeBoxedText() [$dir]"); + } + + $width=$this->GetTextWidth($txt,0) + 2*$xmarg; + $height=$this->GetTextHeight($txt,0) + 2*$ymarg ; + $rect_width=$this->GetBBoxWidth($txt,$dir) ; + $rect_height=$this->GetBBoxHeight($txt,$dir) ; + + $baseline_offset = $this->bbox_cache[1]-1; + + if( $this->text_halign=="center" ) { + if( $dir >= 0 && $dir <= 90 ) { + + $x -= $rect_width/2; + $x += sin($dir*M_PI/180)*$height; + $y += $rect_height/2; + + } elseif( $dir >= 270 && $dir <= 360 ) { + + $x -= $rect_width/2; + $y -= $rect_height/2; + $y += cos($dir*M_PI/180)*$height; + + } elseif( $dir >= 90 && $dir <= 180 ) { + + $x += $rect_width/2; + $y += $rect_height/2; + $y += cos($dir*M_PI/180)*$height; + + } + else { + // $dir > 180 && $dir < 270 + $x += $rect_width/2; + $x += sin($dir*M_PI/180)*$height; + $y -= $rect_height/2; + } + } + + // Rotate the box around this point + $this->SetCenter($x,$y); + $olda = $this->SetAngle(-$dir); + + // We need to use adjusted coordinats for the box to be able + // to draw the box below the baseline. This cannot be done before since + // the rotating point must be the original x,y since that is arounbf the + // point where the text will rotate and we cannot change this since + // that is where the GD/GreeType will rotate the text + + + // For smaller <14pt font we need to do some additional + // adjustments to make it look good + if( $this->font_size < 14 ) { + $x -= 2; + $y += 2; + } + else { + // $y += $baseline_offset; + } + + if( $shadowcolor ) { + $this->PushColor($shadowcolor); + $this->FilledRectangle($x-$xmarg+$dropwidth,$y+$ymarg+$dropwidth-$height, + $x+$width+$dropwidth,$y+$ymarg+$dropwidth); + //$cornerradius); + $this->PopColor(); + $this->PushColor($fcolor); + $this->FilledRectangle($x-$xmarg, $y+$ymarg-$height, + $x+$width, $y+$ymarg); + //$cornerradius); + $this->PopColor(); + $this->PushColor($bcolor); + $this->Rectangle($x-$xmarg,$y+$ymarg-$height, + $x+$width,$y+$ymarg); + //$cornerradius); + $this->PopColor(); + } + else { + if( $fcolor ) { + $oc=$this->current_color; + $this->SetColor($fcolor); + $this->FilledRectangle($x-$xmarg,$y+$ymarg-$height,$x+$width,$y+$ymarg);//,$cornerradius); + $this->current_color=$oc; + } + if( $bcolor ) { + $oc=$this->current_color; + $this->SetColor($bcolor); + $this->Rectangle($x-$xmarg,$y+$ymarg-$height,$x+$width,$y+$ymarg);//,$cornerradius); + $this->current_color=$oc; + } + } + + if( $this->font_size < 14 ) { + $x += 2; + $y -= 2; + } + else { + + // Restore the original y before we stroke the text + // $y -= $baseline_offset; + + } + + $this->SetCenter(0,0); + $this->SetAngle($olda); + + $h=$this->text_halign; + $v=$this->text_valign; + if( $this->text_halign == 'center') { + $this->SetTextAlign('center','basepoint'); + } + else { + $this->SetTextAlign('basepoint','basepoint'); + } + + $debug=false; + $this->StrokeText($x, $y, $txt, $dir, $paragraph_align,$debug); + + $bb = array($x-$xmarg, $y+$height-$ymarg, + $x+$width, $y+$height-$ymarg, + $x+$width, $y-$ymarg, + $x-$xmarg, $y-$ymarg); + + $this->SetTextAlign($h,$v); + $this->SetAngle($olda); + + $this->lastx = $oldx; + $this->lasty = $oldy; + + return $bb; + } + + // Set text alignment + function SetTextAlign($halign,$valign="bottom") { + $this->text_halign=$halign; + $this->text_valign=$valign; + } + + function _StrokeBuiltinFont($x,$y,$txt,$dir,$paragraph_align,&$aBoundingBox,$aDebug=false) { + + if( is_numeric($dir) && $dir!=90 && $dir!=0) + JpGraphError::RaiseL(25091);//(" Internal font does not support drawing text at arbitrary angle. Use TTF fonts instead."); + + $h=$this->GetTextHeight($txt); + $fh=$this->GetFontHeight(); + $w=$this->GetTextWidth($txt); + + if( $this->text_halign=="right") { + $x -= $dir==0 ? $w : $h; + } + elseif( $this->text_halign=="center" ) { + // For center we subtract 1 pixel since this makes the middle + // be prefectly in the middle + $x -= $dir==0 ? $w/2-1 : $h/2; + } + if( $this->text_valign=="top" ) { + $y += $dir==0 ? $h : $w; + } + elseif( $this->text_valign=="center" ) { + $y += $dir==0 ? $h/2 : $w/2; + } + + if( $dir==90 ) { + imagestringup($this->img,$this->font_family,$x,$y,$txt,$this->current_color); + $aBoundingBox = array(round($x),round($y),round($x),round($y-$w),round($x+$h),round($y-$w),round($x+$h),round($y)); + if( $aDebug ) { + // Draw bounding box + $this->PushColor('green'); + $this->Polygon($aBoundingBox,true); + $this->PopColor(); + } + } + else { + if( preg_match('/\n/',$txt) ) { + $tmp = preg_split('/\n/',$txt); + for($i=0; $i < count($tmp); ++$i) { + $w1 = $this->GetTextWidth($tmp[$i]); + if( $paragraph_align=="left" ) { + imagestring($this->img,$this->font_family,$x,$y-$h+1+$i*$fh,$tmp[$i],$this->current_color); + } + elseif( $paragraph_align=="right" ) { + imagestring($this->img,$this->font_family,$x+($w-$w1),$y-$h+1+$i*$fh,$tmp[$i],$this->current_color); + } + else { + imagestring($this->img,$this->font_family,$x+$w/2-$w1/2,$y-$h+1+$i*$fh,$tmp[$i],$this->current_color); + } + } + } + else { + //Put the text + imagestring($this->img,$this->font_family,$x,$y-$h+1,$txt,$this->current_color); + } + if( $aDebug ) { + // Draw the bounding rectangle and the bounding box + $p1 = array(round($x),round($y),round($x),round($y-$h),round($x+$w),round($y-$h),round($x+$w),round($y)); + + // Draw bounding box + $this->PushColor('green'); + $this->Polygon($p1,true); + $this->PopColor(); + + } + $aBoundingBox=array(round($x),round($y),round($x),round($y-$h),round($x+$w),round($y-$h),round($x+$w),round($y)); + } + } + + function AddTxtCR($aTxt) { + // If the user has just specified a '\n' + // instead of '\n\t' we have to add '\r' since + // the width will be too muchy otherwise since when + // we print we stroke the individually lines by hand. + $e = explode("\n",$aTxt); + $n = count($e); + for($i=0; $i<$n; ++$i) { + $e[$i]=str_replace("\r","",$e[$i]); + } + return implode("\n\r",$e); + } + + function NormAngle($a) { + // Normalize angle in degrees + // Normalize angle to be between 0-360 + while( $a > 360 ) + $a -= 360; + while( $a < -360 ) + $a += 360; + if( $a < 0 ) + $a = 360 + $a; + return $a; + } + + function imagettfbbox_fixed($size, $angle, $fontfile, $text) { + + + if( ! USE_LIBRARY_IMAGETTFBBOX ) { + + $bbox = @imagettfbbox($size, $angle, $fontfile, $text); + if( $bbox === false ) { + JpGraphError::RaiseL(25092,$this->font_file); + //("There is either a configuration problem with TrueType or a problem reading font file (".$this->font_file."). Make sure file exists and is in a readable place for the HTTP process. (If 'basedir' restriction is enabled in PHP then the font file must be located in the document root.). It might also be a wrongly installed FreeType library. Try uppgrading to at least FreeType 2.1.13 and recompile GD with the correct setup so it can find the new FT library."); + } + $this->bbox_cache = $bbox; + return $bbox; + } + + // The built in imagettfbbox is buggy for angles != 0 so + // we calculate this manually by getting the bounding box at + // angle = 0 and then rotate the bounding box manually + $bbox = @imagettfbbox($size, 0, $fontfile, $text); + if( $bbox === false ) { + JpGraphError::RaiseL(25092,$this->font_file); + //("There is either a configuration problem with TrueType or a problem reading font file (".$this->font_file."). Make sure file exists and is in a readable place for the HTTP process. (If 'basedir' restriction is enabled in PHP then the font file must be located in the document root.). It might also be a wrongly installed FreeType library. Try uppgrading to at least FreeType 2.1.13 and recompile GD with the correct setup so it can find the new FT library."); + } + + $angle = $this->NormAngle($angle); + + $a = $angle*M_PI/180; + $ca = cos($a); + $sa = sin($a); + $ret = array(); + + // We always add 1 pixel to the left since the left edge of the bounding + // box is sometimes coinciding with the first pixel of the text + //$bbox[0] -= 1; + //$bbox[6] -= 1; + + // For roatated text we need to add extra width for rotated + // text since the kerning and stroking of the TTF is not the same as for + // text at a 0 degree angle + + if( $angle > 0.001 && abs($angle-360) > 0.001 ) { + $h = abs($bbox[7]-$bbox[1]); + $w = abs($bbox[2]-$bbox[0]); + + $bbox[0] -= 2; + $bbox[6] -= 2; + // The width is underestimated so compensate for that + $bbox[2] += round($w*0.06); + $bbox[4] += round($w*0.06); + + // and we also need to compensate with increased height + $bbox[5] -= round($h*0.1); + $bbox[7] -= round($h*0.1); + + if( $angle > 90 ) { + // For angles > 90 we also need to extend the height further down + // by the baseline since that is also one more problem + $bbox[1] += round($h*0.15); + $bbox[3] += round($h*0.15); + + // and also make it slighty less height + $bbox[7] += round($h*0.05); + $bbox[5] += round($h*0.05); + + // And we need to move the box slightly top the rright (from a tetx perspective) + $bbox[0] += round($w*0.02); + $bbox[6] += round($w*0.02); + + if( $angle > 180 ) { + // And we need to move the box slightly to the left (from a text perspective) + $bbox[0] -= round($w*0.02); + $bbox[6] -= round($w*0.02); + $bbox[2] -= round($w*0.02); + $bbox[4] -= round($w*0.02); + + } + + } + for($i = 0; $i < 7; $i += 2) { + $ret[$i] = round($bbox[$i] * $ca + $bbox[$i+1] * $sa); + $ret[$i+1] = round($bbox[$i+1] * $ca - $bbox[$i] * $sa); + } + $this->bbox_cache = $ret; + return $ret; + } + else { + $this->bbox_cache = $bbox; + return $bbox; + } + } + + // Deprecated + function GetTTFBBox($aTxt,$aAngle=0) { + $bbox = $this->imagettfbbox_fixed($this->font_size,$aAngle,$this->font_file,$aTxt); + return $bbox; + } + + function GetBBoxTTF($aTxt,$aAngle=0) { + // Normalize the bounding box to become a minimum + // enscribing rectangle + + $aTxt = $this->AddTxtCR($aTxt); + + if( !is_readable($this->font_file) ) { + JpGraphError::RaiseL(25093,$this->font_file); + //('Can not read font file ('.$this->font_file.') in call to Image::GetBBoxTTF. Please make sure that you have set a font before calling this method and that the font is installed in the TTF directory.'); + } + $bbox = $this->imagettfbbox_fixed($this->font_size,$aAngle,$this->font_file,$aTxt); + + if( $aAngle==0 ) return $bbox; + + if( $aAngle >= 0 ) { + if( $aAngle <= 90 ) { //<=0 + $bbox = array($bbox[6],$bbox[1],$bbox[2],$bbox[1], + $bbox[2],$bbox[5],$bbox[6],$bbox[5]); + } + elseif( $aAngle <= 180 ) { //<= 2 + $bbox = array($bbox[4],$bbox[7],$bbox[0],$bbox[7], + $bbox[0],$bbox[3],$bbox[4],$bbox[3]); + } + elseif( $aAngle <= 270 ) { //<= 3 + $bbox = array($bbox[2],$bbox[5],$bbox[6],$bbox[5], + $bbox[6],$bbox[1],$bbox[2],$bbox[1]); + } + else { + $bbox = array($bbox[0],$bbox[3],$bbox[4],$bbox[3], + $bbox[4],$bbox[7],$bbox[0],$bbox[7]); + } + } + elseif( $aAngle < 0 ) { + if( $aAngle <= -270 ) { // <= -3 + $bbox = array($bbox[6],$bbox[1],$bbox[2],$bbox[1], + $bbox[2],$bbox[5],$bbox[6],$bbox[5]); + } + elseif( $aAngle <= -180 ) { // <= -2 + $bbox = array($bbox[0],$bbox[3],$bbox[4],$bbox[3], + $bbox[4],$bbox[7],$bbox[0],$bbox[7]); + } + elseif( $aAngle <= -90 ) { // <= -1 + $bbox = array($bbox[2],$bbox[5],$bbox[6],$bbox[5], + $bbox[6],$bbox[1],$bbox[2],$bbox[1]); + } + else { + $bbox = array($bbox[0],$bbox[3],$bbox[4],$bbox[3], + $bbox[4],$bbox[7],$bbox[0],$bbox[7]); + } + } + return $bbox; + } + + function GetBBoxHeight($aTxt,$aAngle=0) { + $box = $this->GetBBoxTTF($aTxt,$aAngle); + return abs($box[7]-$box[1]); + } + + function GetBBoxWidth($aTxt,$aAngle=0) { + $box = $this->GetBBoxTTF($aTxt,$aAngle); + return $box[2]-$box[0]+1; + } + + + function _StrokeTTF($x,$y,$txt,$dir,$paragraph_align,&$aBoundingBox,$debug=false) { + + // Setup default inter line margin for paragraphs to be + // 3% of the font height. + $ConstLineSpacing = 0.03 ; + + // Remember the anchor point before adjustment + if( $debug ) { + $ox=$x; + $oy=$y; + } + + if( !preg_match('/\n/',$txt) || ($dir>0 && preg_match('/\n/',$txt)) ) { + // Format a single line + + $txt = $this->AddTxtCR($txt); + $bbox=$this->GetBBoxTTF($txt,$dir); + $width = $this->GetBBoxWidth($txt,$dir); + $height = $this->GetBBoxHeight($txt,$dir); + + // The special alignment "basepoint" is mostly used internally + // in the library. This will put the anchor position at the left + // basepoint of the tetx. This is the default anchor point for + // TTF text. + + if( $this->text_valign != 'basepoint' ) { + // Align x,y ot lower left corner of bbox + + + if( $this->text_halign=='right' ) { + $x -= $width; + $x -= $bbox[0]; + } + elseif( $this->text_halign=='center' ) { + $x -= $width/2; + $x -= $bbox[0]; + } + elseif( $this->text_halign=='baseline' ) { + // This is only support for text at 90 degree !! + // Do nothing the text is drawn at baseline by default + } + + if( $this->text_valign=='top' ) { + $y -= $bbox[1]; // Adjust to bottom of text + $y += $height; + } + elseif( $this->text_valign=='center' ) { + $y -= $bbox[1]; // Adjust to bottom of text + $y += $height/2; + } + elseif( $this->text_valign=='baseline' ) { + // This is only support for text at 0 degree !! + // Do nothing the text is drawn at baseline by default + } + } + ImageTTFText ($this->img, $this->font_size, $dir, $x, $y, + $this->current_color,$this->font_file,$txt); + + // Calculate and return the co-ordinates for the bounding box + $box = $this->imagettfbbox_fixed($this->font_size,$dir,$this->font_file,$txt); + $p1 = array(); + + for($i=0; $i < 4; ++$i) { + $p1[] = round($box[$i*2]+$x); + $p1[] = round($box[$i*2+1]+$y); + } + $aBoundingBox = $p1; + + // Debugging code to highlight the bonding box and bounding rectangle + // For text at 0 degrees the bounding box and bounding rectangle are the + // same + if( $debug ) { + // Draw the bounding rectangle and the bounding box + + $p = array(); + $p1 = array(); + + for($i=0; $i < 4; ++$i) { + $p[] = $bbox[$i*2]+$x ; + $p[] = $bbox[$i*2+1]+$y; + $p1[] = $box[$i*2]+$x ; + $p1[] = $box[$i*2+1]+$y ; + } + + // Draw bounding box + $this->PushColor('green'); + $this->Polygon($p1,true); + $this->PopColor(); + + // Draw bounding rectangle + $this->PushColor('darkgreen'); + $this->Polygon($p,true); + $this->PopColor(); + + // Draw a cross at the anchor point + $this->PushColor('red'); + $this->Line($ox-15,$oy,$ox+15,$oy); + $this->Line($ox,$oy-15,$ox,$oy+15); + $this->PopColor(); + } + } + else { + // Format a text paragraph + $fh=$this->GetFontHeight(); + + // Line margin is 25% of font height + $linemargin=round($fh*$ConstLineSpacing); + $fh += $linemargin; + $w=$this->GetTextWidth($txt); + + $y -= $linemargin/2; + $tmp = preg_split('/\n/',$txt); + $nl = count($tmp); + $h = $nl * $fh; + + if( $this->text_halign=='right') { + $x -= $dir==0 ? $w : $h; + } + elseif( $this->text_halign=='center' ) { + $x -= $dir==0 ? $w/2 : $h/2; + } + + if( $this->text_valign=='top' ) { + $y += $dir==0 ? $h : $w; + } + elseif( $this->text_valign=='center' ) { + $y += $dir==0 ? $h/2 : $w/2; + } + + // Here comes a tricky bit. + // Since we have to give the position for the string at the + // baseline this means thaht text will move slightly up + // and down depending on any of it's character descend below + // the baseline, for example a 'g'. To adjust the Y-position + // we therefore adjust the text with the baseline Y-offset + // as used for the current font and size. This will keep the + // baseline at a fixed positoned disregarding the actual + // characters in the string. + $standardbox = $this->GetTTFBBox('Gg',$dir); + $yadj = $standardbox[1]; + $xadj = $standardbox[0]; + $aBoundingBox = array(); + for($i=0; $i < $nl; ++$i) { + $wl = $this->GetTextWidth($tmp[$i]); + $bbox = $this->GetTTFBBox($tmp[$i],$dir); + if( $paragraph_align=='left' ) { + $xl = $x; + } + elseif( $paragraph_align=='right' ) { + $xl = $x + ($w-$wl); + } + else { + // Center + $xl = $x + $w/2 - $wl/2 ; + } + + // In theory we should adjust with full pre-lead to get the lines + // lined up but this doesn't look good so therfore we only adjust with + // half th pre-lead + $xl -= $bbox[0]/2; + $yl = $y - $yadj; + //$xl = $xl- $xadj; + ImageTTFText($this->img, $this->font_size, $dir, $xl, $yl-($h-$fh)+$fh*$i, + $this->current_color,$this->font_file,$tmp[$i]); + + // echo "xl=$xl,".$tmp[$i]."
    "; + if( $debug ) { + // Draw the bounding rectangle around each line + $box=@ImageTTFBBox($this->font_size,$dir,$this->font_file,$tmp[$i]); + $p = array(); + for($j=0; $j < 4; ++$j) { + $p[] = $bbox[$j*2]+$xl; + $p[] = $bbox[$j*2+1]+$yl-($h-$fh)+$fh*$i; + } + + // Draw bounding rectangle + $this->PushColor('darkgreen'); + $this->Polygon($p,true); + $this->PopColor(); + } + } + + // Get the bounding box + $bbox = $this->GetBBoxTTF($txt,$dir); + for($j=0; $j < 4; ++$j) { + $bbox[$j*2]+= round($x); + $bbox[$j*2+1]+= round($y - ($h-$fh) - $yadj); + } + $aBoundingBox = $bbox; + + if( $debug ) { + // Draw a cross at the anchor point + $this->PushColor('red'); + $this->Line($ox-25,$oy,$ox+25,$oy); + $this->Line($ox,$oy-25,$ox,$oy+25); + $this->PopColor(); + } + + } + } + + function StrokeText($x,$y,$txt,$dir=0,$paragraph_align="left",$debug=false) { + + $x = round($x); + $y = round($y); + + // Do special language encoding + $txt = $this->langconv->Convert($txt,$this->font_family); + + if( !is_numeric($dir) ) { + JpGraphError::RaiseL(25094);//(" Direction for text most be given as an angle between 0 and 90."); + } + + if( $this->font_family >= FF_FONT0 && $this->font_family <= FF_FONT2+1) { + $this->_StrokeBuiltinFont($x,$y,$txt,$dir,$paragraph_align,$boundingbox,$debug); + } + elseif( $this->font_family >= _FIRST_FONT && $this->font_family <= _LAST_FONT) { + $this->_StrokeTTF($x,$y,$txt,$dir,$paragraph_align,$boundingbox,$debug); + } + else { + JpGraphError::RaiseL(25095);//(" Unknown font font family specification. "); + } + return $boundingbox; + } + + function SetMargin($lm,$rm,$tm,$bm) { + $this->left_margin=$lm; + $this->right_margin=$rm; + $this->top_margin=$tm; + $this->bottom_margin=$bm; + $this->plotwidth=$this->width - $this->left_margin-$this->right_margin ; + $this->plotheight=$this->height - $this->top_margin-$this->bottom_margin ; + if( $this->width > 0 && $this->height > 0 ) { + if( $this->plotwidth < 0 || $this->plotheight < 0 ) { + JpGraphError::RaiseL(25130, $this->plotwidth, $this->plotheight); + //JpGraphError::raise("To small plot area. ($lm,$rm,$tm,$bm : $this->plotwidth x $this->plotheight). With the given image size and margins there is to little space left for the plot. Increase the plot size or reduce the margins."); + } + } + } + + function SetTransparent($color) { + imagecolortransparent ($this->img,$this->rgb->allocate($color)); + } + + function SetColor($color,$aAlpha=0) { + $this->current_color_name = $color; + $this->current_color=$this->rgb->allocate($color,$aAlpha); + if( $this->current_color == -1 ) { + $tc=imagecolorstotal($this->img); + JpGraphError::RaiseL(25096); + //("Can't allocate any more colors. Image has already allocated maximum of $tc colors. This might happen if you have anti-aliasing turned on together with a background image or perhaps gradient fill since this requires many, many colors. Try to turn off anti-aliasing. If there is still a problem try downgrading the quality of the background image to use a smaller pallete to leave some entries for your graphs. You should try to limit the number of colors in your background image to 64. If there is still problem set the constant DEFINE(\"USE_APPROX_COLORS\",true); in jpgraph.php This will use approximative colors when the palette is full. Unfortunately there is not much JpGraph can do about this since the palette size is a limitation of current graphic format and what the underlying GD library suppports."); + } + return $this->current_color; + } + + function PushColor($color) { + if( $color != "" ) { + $this->colorstack[$this->colorstackidx]=$this->current_color_name; + $this->colorstack[$this->colorstackidx+1]=$this->current_color; + $this->colorstackidx+=2; + $this->SetColor($color); + } + else { + JpGraphError::RaiseL(25097);//("Color specified as empty string in PushColor()."); + } + } + + function PopColor() { + if( $this->colorstackidx < 1 ) { + JpGraphError::RaiseL(25098);//(" Negative Color stack index. Unmatched call to PopColor()"); + } + $this->current_color=$this->colorstack[--$this->colorstackidx]; + $this->current_color_name=$this->colorstack[--$this->colorstackidx]; + } + + + function SetLineWeight($weight) { + $old = $this->line_weight; + imagesetthickness($this->img,$weight); + $this->line_weight = $weight; + return $old; + } + + function SetStartPoint($x,$y) { + $this->lastx=round($x); + $this->lasty=round($y); + } + + function Arc($cx,$cy,$w,$h,$s,$e) { + // GD Arc doesn't like negative angles + while( $s < 0) $s += 360; + while( $e < 0) $e += 360; + imagearc($this->img,round($cx),round($cy),round($w),round($h),$s,$e,$this->current_color); + } + + function FilledArc($xc,$yc,$w,$h,$s,$e,$style='') { + $s = round($s); + $e = round($e); + while( $s < 0 ) $s += 360; + while( $e < 0 ) $e += 360; + if( $style=='' ) + $style=IMG_ARC_PIE; + if( abs($s-$e) > 0 ) { + imagefilledarc($this->img,round($xc),round($yc),round($w),round($h),$s,$e,$this->current_color,$style); + } + } + + function FilledCakeSlice($cx,$cy,$w,$h,$s,$e) { + $this->CakeSlice($cx,$cy,$w,$h,$s,$e,$this->current_color_name); + } + + function CakeSlice($xc,$yc,$w,$h,$s,$e,$fillcolor="",$arccolor="") { + $s = round($s); $e = round($e); + $w = round($w); $h = round($h); + $xc = round($xc); $yc = round($yc); + if( $s == $e ) { + // A full circle. We draw this a plain circle + $this->PushColor($fillcolor); + imagefilledellipse($this->img,$xc,$yc,2*$w,2*$h,$this->current_color); + + // If antialiasing is used then we often don't have any color no the surrounding + // arc. So, we need to check for this special case so we don't send an empty + // color to the push function. In this case we use the fill color for the arc as well + if( $arccolor != '' ) { + $this->PopColor(); + $this->PushColor($arccolor); + } + imageellipse($this->img,$xc,$yc,2*$w,2*$h,$this->current_color); + $this->Line($xc,$yc,cos($s*M_PI/180)*$w+$xc,$yc+sin($s*M_PI/180)*$h); + $this->PopColor(); + } + else { + $this->PushColor($fillcolor); + $this->FilledArc($xc,$yc,2*$w,2*$h,$s,$e); + $this->PopColor(); + if( $arccolor != "" ) { + $this->PushColor($arccolor); + // We add 2 pixels to make the Arc() better aligned with + // the filled arc. + imagefilledarc($this->img,$xc,$yc,2*$w,2*$h,$s,$e,$this->current_color,IMG_ARC_NOFILL | IMG_ARC_EDGED ) ; + $this->PopColor(); + } + } + } + + function Ellipse($xc,$yc,$w,$h) { + $this->Arc($xc,$yc,$w,$h,0,360); + } + + function Circle($xc,$yc,$r) { + imageellipse($this->img,round($xc),round($yc),$r*2,$r*2,$this->current_color); + } + + function FilledCircle($xc,$yc,$r) { + imagefilledellipse($this->img,round($xc),round($yc),2*$r,2*$r,$this->current_color); + } + + // Linear Color InterPolation + function lip($f,$t,$p) { + $p = round($p,1); + $r = $f[0] + ($t[0]-$f[0])*$p; + $g = $f[1] + ($t[1]-$f[1])*$p; + $b = $f[2] + ($t[2]-$f[2])*$p; + return array($r,$g,$b); + } + + // Set line style dashed, dotted etc + function SetLineStyle($s) { + if( is_numeric($s) ) { + if( $s<1 || $s>4 ) { + JpGraphError::RaiseL(25101,$s);//(" Illegal numeric argument to SetLineStyle(): ($s)"); + } + } + elseif( is_string($s) ) { + if( $s == "solid" ) $s=1; + elseif( $s == "dotted" ) $s=2; + elseif( $s == "dashed" ) $s=3; + elseif( $s == "longdashed" ) $s=4; + else { + JpGraphError::RaiseL(25102,$s);//(" Illegal string argument to SetLineStyle(): $s"); + } + } + else { + JpGraphError::RaiseL(25103,$s);//(" Illegal argument to SetLineStyle $s"); + } + $old = $this->line_style; + $this->line_style=$s; + return $old; + } + + // Same as Line but take the line_style into account + function StyleLine($x1,$y1,$x2,$y2,$aStyle='') { + if( $this->line_weight <= 0 ) return; + + if( $aStyle === '' ) { + $aStyle = $this->line_style; + } + + // Add error check since dashed line will only work if anti-alias is disabled + // this is a limitation in GD + + if( $aStyle == 1 ) { + // Solid style. We can handle anti-aliasing for this + $this->Line($x1,$y1,$x2,$y2); + } + else { + // Since the GD routines doesn't handle AA for styled line + // we have no option than to turn it off to get any lines at + // all if the weight > 1 + $oldaa = $this->GetAntiAliasing(); + if( $oldaa && $this->line_weight > 1 ) { + $this->SetAntiAliasing(false); + } + + switch( $aStyle ) { + case 2: // Dotted + $this->DashedLine($x1,$y1,$x2,$y2,2,6); + break; + case 3: // Dashed + $this->DashedLine($x1,$y1,$x2,$y2,5,9); + break; + case 4: // Longdashes + $this->DashedLine($x1,$y1,$x2,$y2,9,13); + break; + default: + JpGraphError::RaiseL(25104,$this->line_style);//(" Unknown line style: $this->line_style "); + break; + } + if( $oldaa ) { + $this->SetAntiAliasing(true); + } + } + } + + function DashedLine($x1,$y1,$x2,$y2,$dash_length=1,$dash_space=4) { + + if( $this->line_weight <= 0 ) return; + + // Add error check to make sure anti-alias is not enabled. + // Dashed line does not work with anti-alias enabled. This + // is a limitation in GD. + if( $this->use_anti_aliasing ) { + JpGraphError::RaiseL(25129); // Anti-alias can not be used with dashed lines. Please disable anti-alias or use solid lines. + } + + + $x1 = round($x1); + $x2 = round($x2); + $y1 = round($y1); + $y2 = round($y2); + + $style = array_fill(0,$dash_length,$this->current_color); + $style = array_pad($style,$dash_space,IMG_COLOR_TRANSPARENT); + imagesetstyle($this->img, $style); + imageline($this->img, $x1, $y1, $x2, $y2, IMG_COLOR_STYLED); + $this->lastx = $x2; + $this->lasty = $y2; + } + + function Line($x1,$y1,$x2,$y2) { + + if( $this->line_weight <= 0 ) return; + + $x1 = round($x1); + $x2 = round($x2); + $y1 = round($y1); + $y2 = round($y2); + + imageline($this->img,$x1,$y1,$x2,$y2,$this->current_color); + $this->lastx=$x2; + $this->lasty=$y2; + } + + function Polygon($p,$closed=FALSE,$fast=FALSE) { + + if( $this->line_weight <= 0 ) return; + + $n=count($p); + $oldx = $p[0]; + $oldy = $p[1]; + if( $fast ) { + for( $i=2; $i < $n; $i+=2 ) { + imageline($this->img,$oldx,$oldy,$p[$i],$p[$i+1],$this->current_color); + $oldx = $p[$i]; + $oldy = $p[$i+1]; + } + if( $closed ) { + imageline($this->img,$p[$n*2-2],$p[$n*2-1],$p[0],$p[1],$this->current_color); + } + } + else { + for( $i=2; $i < $n; $i+=2 ) { + $this->StyleLine($oldx,$oldy,$p[$i],$p[$i+1]); + $oldx = $p[$i]; + $oldy = $p[$i+1]; + } + if( $closed ) { + $this->StyleLine($oldx,$oldy,$p[0],$p[1]); + } + } + } + + function FilledPolygon($pts) { + $n=count($pts); + if( $n == 0 ) { + JpGraphError::RaiseL(25105);//('NULL data specified for a filled polygon. Check that your data is not NULL.'); + } + for($i=0; $i < $n; ++$i) { + $pts[$i] = round($pts[$i]); + } + $old = $this->line_weight; + imagesetthickness($this->img,1); + imagefilledpolygon($this->img,$pts,count($pts)/2,$this->current_color); + $this->line_weight = $old; + imagesetthickness($this->img,$old); + } + + function Rectangle($xl,$yu,$xr,$yl) { + $this->Polygon(array($xl,$yu,$xr,$yu,$xr,$yl,$xl,$yl,$xl,$yu)); + } + + function FilledRectangle($xl,$yu,$xr,$yl) { + $this->FilledPolygon(array($xl,$yu,$xr,$yu,$xr,$yl,$xl,$yl)); + } + + function FilledRectangle2($xl,$yu,$xr,$yl,$color1,$color2,$style=1) { + // Fill a rectangle with lines of two colors + if( $style===1 ) { + // Horizontal stripe + if( $yl < $yu ) { + $t = $yl; $yl=$yu; $yu=$t; + } + for( $y=$yu; $y <= $yl; ++$y) { + $this->SetColor($color1); + $this->Line($xl,$y,$xr,$y); + ++$y; + $this->SetColor($color2); + $this->Line($xl,$y,$xr,$y); + } + } + else { + if( $xl < $xl ) { + $t = $xl; $xl=$xr; $xr=$t; + } + for( $x=$xl; $x <= $xr; ++$x) { + $this->SetColor($color1); + $this->Line($x,$yu,$x,$yl); + ++$x; + $this->SetColor($color2); + $this->Line($x,$yu,$x,$yl); + } + } + } + + function ShadowRectangle($xl,$yu,$xr,$yl,$fcolor=false,$shadow_width=4,$shadow_color='darkgray',$useAlpha=true) { + // This is complicated by the fact that we must also handle the case where + // the reactangle has no fill color + $xl = floor($xl); + $yu = floor($yu); + $xr = floor($xr); + $yl = floor($yl); + $this->PushColor($shadow_color); + $shadowAlpha=0; + $this->SetLineWeight(1); + $this->SetLineStyle('solid'); + $basecolor = $this->rgb->Color($shadow_color); + $shadow_color = array($basecolor[0],$basecolor[1],$basecolor[2],); + for( $i=0; $i < $shadow_width; ++$i ) { + $this->SetColor($shadow_color,$shadowAlpha); + $this->Line($xr-$shadow_width+$i, $yu+$shadow_width, + $xr-$shadow_width+$i, $yl-$shadow_width-1+$i); + $this->Line($xl+$shadow_width, $yl-$shadow_width+$i, + $xr-$shadow_width+$i, $yl-$shadow_width+$i); + if( $useAlpha ) $shadowAlpha += 1.0/$shadow_width; + } + + $this->PopColor(); + if( $fcolor==false ) { + $this->Rectangle($xl,$yu,$xr-$shadow_width-1,$yl-$shadow_width-1); + } + else { + $this->PushColor($fcolor); + $this->FilledRectangle($xl,$yu,$xr-$shadow_width-1,$yl-$shadow_width-1); + $this->PopColor(); + $this->Rectangle($xl,$yu,$xr-$shadow_width-1,$yl-$shadow_width-1); + } + } + + function FilledRoundedRectangle($xt,$yt,$xr,$yl,$r=5) { + if( $r==0 ) { + $this->FilledRectangle($xt,$yt,$xr,$yl); + return; + } + + // To avoid overlapping fillings (which will look strange + // when alphablending is enabled) we have no choice but + // to fill the five distinct areas one by one. + + // Center square + $this->FilledRectangle($xt+$r,$yt+$r,$xr-$r,$yl-$r); + // Top band + $this->FilledRectangle($xt+$r,$yt,$xr-$r,$yt+$r); + // Bottom band + $this->FilledRectangle($xt+$r,$yl-$r,$xr-$r,$yl); + // Left band + $this->FilledRectangle($xt,$yt+$r,$xt+$r,$yl-$r); + // Right band + $this->FilledRectangle($xr-$r,$yt+$r,$xr,$yl-$r); + + // Topleft & Topright arc + $this->FilledArc($xt+$r,$yt+$r,$r*2,$r*2,180,270); + $this->FilledArc($xr-$r,$yt+$r,$r*2,$r*2,270,360); + + // Bottomleft & Bottom right arc + $this->FilledArc($xt+$r,$yl-$r,$r*2,$r*2,90,180); + $this->FilledArc($xr-$r,$yl-$r,$r*2,$r*2,0,90); + + } + + function RoundedRectangle($xt,$yt,$xr,$yl,$r=5) { + + if( $r==0 ) { + $this->Rectangle($xt,$yt,$xr,$yl); + return; + } + + // Top & Bottom line + $this->Line($xt+$r,$yt,$xr-$r,$yt); + $this->Line($xt+$r,$yl,$xr-$r,$yl); + + // Left & Right line + $this->Line($xt,$yt+$r,$xt,$yl-$r); + $this->Line($xr,$yt+$r,$xr,$yl-$r); + + // Topleft & Topright arc + $this->Arc($xt+$r,$yt+$r,$r*2,$r*2,180,270); + $this->Arc($xr-$r,$yt+$r,$r*2,$r*2,270,360); + + // Bottomleft & Bottomright arc + $this->Arc($xt+$r,$yl-$r,$r*2,$r*2,90,180); + $this->Arc($xr-$r,$yl-$r,$r*2,$r*2,0,90); + } + + function FilledBevel($x1,$y1,$x2,$y2,$depth=2,$color1='white@0.4',$color2='darkgray@0.4') { + $this->FilledRectangle($x1,$y1,$x2,$y2); + $this->Bevel($x1,$y1,$x2,$y2,$depth,$color1,$color2); + } + + function Bevel($x1,$y1,$x2,$y2,$depth=2,$color1='white@0.4',$color2='black@0.5') { + $this->PushColor($color1); + for( $i=0; $i < $depth; ++$i ) { + $this->Line($x1+$i,$y1+$i,$x1+$i,$y2-$i); + $this->Line($x1+$i,$y1+$i,$x2-$i,$y1+$i); + } + $this->PopColor(); + + $this->PushColor($color2); + for( $i=0; $i < $depth; ++$i ) { + $this->Line($x1+$i,$y2-$i,$x2-$i,$y2-$i); + $this->Line($x2-$i,$y1+$i,$x2-$i,$y2-$i-1); + } + $this->PopColor(); + } + + function StyleLineTo($x,$y) { + $this->StyleLine($this->lastx,$this->lasty,$x,$y); + $this->lastx=$x; + $this->lasty=$y; + } + + function LineTo($x,$y) { + $this->Line($this->lastx,$this->lasty,$x,$y); + $this->lastx=$x; + $this->lasty=$y; + } + + function Point($x,$y) { + imagesetpixel($this->img,round($x),round($y),$this->current_color); + } + + function Fill($x,$y) { + imagefill($this->img,round($x),round($y),$this->current_color); + } + + function FillToBorder($x,$y,$aBordColor) { + $bc = $this->rgb->allocate($aBordColor); + if( $bc == -1 ) { + JpGraphError::RaiseL(25106);//('Image::FillToBorder : Can not allocate more colors'); + } + imagefilltoborder($this->img,round($x),round($y),$bc,$this->current_color); + } + + function SetExpired($aFlg=true) { + $this->expired = $aFlg; + } + + // Generate image header + function Headers() { + + // In case we are running from the command line with the client version of + // PHP we can't send any headers. + $sapi = php_sapi_name(); + if( $sapi == 'cli' ) return; + + // These parameters are set by headers_sent() but they might cause + // an undefined variable error unless they are initilized + $file=''; + $lineno=''; + if( headers_sent($file,$lineno) ) { + $file=basename($file); + $t = new ErrMsgText(); + $msg = $t->Get(10,$file,$lineno); + die($msg); + } + + if ($this->expired) { + header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); + header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); + header("Cache-Control: no-cache, must-revalidate"); + header("Pragma: no-cache"); + } + header("Content-type: image/$this->img_format"); + } + + // Adjust image quality for formats that allow this + function SetQuality($q) { + $this->quality = $q; + } + + // Stream image to browser or to file + function Stream($aFile="") { + $func="image".$this->img_format; + if( $this->img_format=="jpeg" && $this->quality != null ) { + $res = @$func($this->img,$aFile,$this->quality); + } + else { + if( $aFile != "" ) { + $res = @$func($this->img,$aFile); + if( !$res ) { + JpGraphError::RaiseL(25107,$aFile);//("Can't write to file '$aFile'. Check that the process running PHP has enough permission."); + } + } + else { + $res = @$func($this->img); + if( !$res ) { + JpGraphError::RaiseL(25108);//("Can't stream image. This is most likely due to a faulty PHP/GD setup. Try to recompile PHP and use the built-in GD library that comes with PHP."); + } + + } + } + } + + // Clear resources used by image (this is normally not used since all resources are/should be + // returned when the script terminates + function Destroy() { + imagedestroy($this->img); + } + + // Specify image format. Note depending on your installation + // of PHP not all formats may be supported. + function SetImgFormat($aFormat,$aQuality=75) { + $this->quality = $aQuality; + $aFormat = strtolower($aFormat); + $tst = true; + $supported = imagetypes(); + if( $aFormat=="auto" ) { + if( $supported & IMG_PNG ) $this->img_format="png"; + elseif( $supported & IMG_JPG ) $this->img_format="jpeg"; + elseif( $supported & IMG_GIF ) $this->img_format="gif"; + elseif( $supported & IMG_WBMP ) $this->img_format="wbmp"; + elseif( $supported & IMG_XPM ) $this->img_format="xpm"; + else { + JpGraphError::RaiseL(25109);//("Your PHP (and GD-lib) installation does not appear to support any known graphic formats. You need to first make sure GD is compiled as a module to PHP. If you also want to use JPEG images you must get the JPEG library. Please see the PHP docs for details."); + } + return true; + } + else { + if( $aFormat=="jpeg" || $aFormat=="png" || $aFormat=="gif" ) { + if( $aFormat=="jpeg" && !($supported & IMG_JPG) ) $tst=false; + elseif( $aFormat=="png" && !($supported & IMG_PNG) ) $tst=false; + elseif( $aFormat=="gif" && !($supported & IMG_GIF) ) $tst=false; + elseif( $aFormat=="wbmp" && !($supported & IMG_WBMP) ) $tst=false; + elseif( $aFormat=="xpm" && !($supported & IMG_XPM) ) $tst=false; + else { + $this->img_format=$aFormat; + return true; + } + } + else { + $tst=false; + } + if( !$tst ) { + JpGraphError::RaiseL(25110,$aFormat);//(" Your PHP installation does not support the chosen graphic format: $aFormat"); + } + } + } +} // CLASS + +//=================================================== +// CLASS RotImage +// Description: Exactly as Image but draws the image at +// a specified angle around a specified rotation point. +//=================================================== +class RotImage extends Image { + public $a=0; + public $dx=0,$dy=0,$transx=0,$transy=0; + private $m=array(); + + function __construct($aWidth,$aHeight,$a=0,$aFormat=DEFAULT_GFORMAT,$aSetAutoMargin=true) { + parent::__construct($aWidth,$aHeight,$aFormat,$aSetAutoMargin); + $this->dx=$this->left_margin+$this->plotwidth/2; + $this->dy=$this->top_margin+$this->plotheight/2; + $this->SetAngle($a); + } + + function SetCenter($dx,$dy) { + $old_dx = $this->dx; + $old_dy = $this->dy; + $this->dx=$dx; + $this->dy=$dy; + $this->SetAngle($this->a); + return array($old_dx,$old_dy); + } + + function SetTranslation($dx,$dy) { + $old = array($this->transx,$this->transy); + $this->transx = $dx; + $this->transy = $dy; + return $old; + } + + function UpdateRotMatrice() { + $a = $this->a; + $a *= M_PI/180; + $sa=sin($a); $ca=cos($a); + // Create the rotation matrix + $this->m[0][0] = $ca; + $this->m[0][1] = -$sa; + $this->m[0][2] = $this->dx*(1-$ca) + $sa*$this->dy ; + $this->m[1][0] = $sa; + $this->m[1][1] = $ca; + $this->m[1][2] = $this->dy*(1-$ca) - $sa*$this->dx ; + } + + function SetAngle($a) { + $tmp = $this->a; + $this->a = $a; + $this->UpdateRotMatrice(); + return $tmp; + } + + function Circle($xc,$yc,$r) { + list($xc,$yc) = $this->Rotate($xc,$yc); + parent::Circle($xc,$yc,$r); + } + + function FilledCircle($xc,$yc,$r) { + list($xc,$yc) = $this->Rotate($xc,$yc); + parent::FilledCircle($xc,$yc,$r); + } + + + function Arc($xc,$yc,$w,$h,$s,$e) { + list($xc,$yc) = $this->Rotate($xc,$yc); + $s += $this->a; + $e += $this->a; + parent::Arc($xc,$yc,$w,$h,$s,$e); + } + + function FilledArc($xc,$yc,$w,$h,$s,$e,$style='') { + list($xc,$yc) = $this->Rotate($xc,$yc); + $s += $this->a; + $e += $this->a; + parent::FilledArc($xc,$yc,$w,$h,$s,$e); + } + + function SetMargin($lm,$rm,$tm,$bm) { + parent::SetMargin($lm,$rm,$tm,$bm); + $this->dx=$this->left_margin+$this->plotwidth/2; + $this->dy=$this->top_margin+$this->plotheight/2; + $this->UpdateRotMatrice(); + } + + function Rotate($x,$y) { + // Optimization. Ignore rotation if Angle==0 || Angle==360 + if( $this->a == 0 || $this->a == 360 ) { + return array($x + $this->transx, $y + $this->transy ); + } + else { + $x1=round($this->m[0][0]*$x + $this->m[0][1]*$y,1) + $this->m[0][2] + $this->transx; + $y1=round($this->m[1][0]*$x + $this->m[1][1]*$y,1) + $this->m[1][2] + $this->transy; + return array($x1,$y1); + } + } + + function CopyMerge($fromImg,$toX,$toY,$fromX,$fromY,$toWidth,$toHeight,$fromWidth=-1,$fromHeight=-1,$aMix=100) { + list($toX,$toY) = $this->Rotate($toX,$toY); + parent::CopyMerge($fromImg,$toX,$toY,$fromX,$fromY,$toWidth,$toHeight,$fromWidth,$fromHeight,$aMix); + + } + + function ArrRotate($pnts) { + $n = count($pnts)-1; + for($i=0; $i < $n; $i+=2) { + list ($x,$y) = $this->Rotate($pnts[$i],$pnts[$i+1]); + $pnts[$i] = $x; $pnts[$i+1] = $y; + } + return $pnts; + } + + function DashedLine($x1,$y1,$x2,$y2,$dash_length=1,$dash_space=4) { + list($x1,$y1) = $this->Rotate($x1,$y1); + list($x2,$y2) = $this->Rotate($x2,$y2); + parent::DashedLine($x1,$y1,$x2,$y2,$dash_length,$dash_space); + } + + function Line($x1,$y1,$x2,$y2) { + list($x1,$y1) = $this->Rotate($x1,$y1); + list($x2,$y2) = $this->Rotate($x2,$y2); + parent::Line($x1,$y1,$x2,$y2); + } + + function Rectangle($x1,$y1,$x2,$y2) { + // Rectangle uses Line() so it will be rotated through that call + parent::Rectangle($x1,$y1,$x2,$y2); + } + + function FilledRectangle($x1,$y1,$x2,$y2) { + if( $y1==$y2 || $x1==$x2 ) + $this->Line($x1,$y1,$x2,$y2); + else + $this->FilledPolygon(array($x1,$y1,$x2,$y1,$x2,$y2,$x1,$y2)); + } + + function Polygon($pnts,$closed=FALSE,$fast=FALSE) { + // Polygon uses Line() so it will be rotated through that call unless + // fast drawing routines are used in which case a rotate is needed + if( $fast ) { + parent::Polygon($this->ArrRotate($pnts)); + } + else { + parent::Polygon($pnts,$closed,$fast); + } + } + + function FilledPolygon($pnts) { + parent::FilledPolygon($this->ArrRotate($pnts)); + } + + function Point($x,$y) { + list($xp,$yp) = $this->Rotate($x,$y); + parent::Point($xp,$yp); + } + + function StrokeText($x,$y,$txt,$dir=0,$paragraph_align="left",$debug=false) { + list($xp,$yp) = $this->Rotate($x,$y); + return parent::StrokeText($xp,$yp,$txt,$dir,$paragraph_align,$debug); + } +} + +//======================================================================= +// CLASS ImgStreamCache +// Description: Handle caching of graphs to files. All image output goes +// through this class +//======================================================================= +class ImgStreamCache { + private $cache_dir, $timeout=0; // Infinite timeout + //--------------- + // CONSTRUCTOR + function __construct($aCacheDir=CACHE_DIR) { + $this->cache_dir = $aCacheDir; + } + + //--------------- + // PUBLIC METHODS + + // Specify a timeout (in minutes) for the file. If the file is older then the + // timeout value it will be overwritten with a newer version. + // If timeout is set to 0 this is the same as infinite large timeout and if + // timeout is set to -1 this is the same as infinite small timeout + function SetTimeout($aTimeout) { + $this->timeout=$aTimeout; + } + + // Output image to browser and also write it to the cache + function PutAndStream($aImage,$aCacheFileName,$aInline,$aStrokeFileName) { + + // Check if we should always stroke the image to a file + if( _FORCE_IMGTOFILE ) { + $aStrokeFileName = _FORCE_IMGDIR.GenImgName(); + } + + if( $aStrokeFileName != '' ) { + + if( $aStrokeFileName == 'auto' ) { + $aStrokeFileName = GenImgName(); + } + + if( file_exists($aStrokeFileName) ) { + + // Wait for lock (to make sure no readers are trying to access the image) + $fd = fopen($aStrokeFileName,'w'); + $lock = flock($fd, LOCK_EX); + + // Since the image write routines only accepts a filename which must not + // exist we need to delete the old file first + if( !@unlink($aStrokeFileName) ) { + $lock = flock($fd, LOCK_UN); + JpGraphError::RaiseL(25111,$aStrokeFileName); + //(" Can't delete cached image $aStrokeFileName. Permission problem?"); + } + $aImage->Stream($aStrokeFileName); + $lock = flock($fd, LOCK_UN); + fclose($fd); + + } + else { + $aImage->Stream($aStrokeFileName); + } + + return; + } + + if( $aCacheFileName != '' && USE_CACHE) { + + $aCacheFileName = $this->cache_dir . $aCacheFileName; + if( file_exists($aCacheFileName) ) { + if( !$aInline ) { + // If we are generating image off-line (just writing to the cache) + // and the file exists and is still valid (no timeout) + // then do nothing, just return. + $diff=time()-filemtime($aCacheFileName); + if( $diff < 0 ) { + JpGraphError::RaiseL(25112,$aCacheFileName); + //(" Cached imagefile ($aCacheFileName) has file date in the future!!"); + } + if( $this->timeout>0 && ($diff <= $this->timeout*60) ) return; + } + + // Wait for lock (to make sure no readers are trying to access the image) + $fd = fopen($aCacheFileName,'w'); + $lock = flock($fd, LOCK_EX); + + if( !@unlink($aCacheFileName) ) { + $lock = flock($fd, LOCK_UN); + JpGraphError::RaiseL(25113,$aStrokeFileName); + //(" Can't delete cached image $aStrokeFileName. Permission problem?"); + } + $aImage->Stream($aCacheFileName); + $lock = flock($fd, LOCK_UN); + fclose($fd); + + } + else { + $this->MakeDirs(dirname($aCacheFileName)); + if( !is_writeable(dirname($aCacheFileName)) ) { + JpGraphError::RaiseL(25114,$aCacheFileName); + //('PHP has not enough permissions to write to the cache file '.$aCacheFileName.'. Please make sure that the user running PHP has write permission for this file if you wan to use the cache system with JpGraph.'); + } + $aImage->Stream($aCacheFileName); + } + + $res=true; + // Set group to specified + if( CACHE_FILE_GROUP != '' ) { + $res = @chgrp($aCacheFileName,CACHE_FILE_GROUP); + } + if( CACHE_FILE_MOD != '' ) { + $res = @chmod($aCacheFileName,CACHE_FILE_MOD); + } + if( !$res ) { + JpGraphError::RaiseL(25115,$aStrokeFileName); + //(" Can't set permission for cached image $aStrokeFileName. Permission problem?"); + } + + $aImage->Destroy(); + if( $aInline ) { + if ($fh = @fopen($aCacheFileName, "rb") ) { + $aImage->Headers(); + fpassthru($fh); + return; + } + else { + JpGraphError::RaiseL(25116,$aFile);//(" Cant open file from cache [$aFile]"); + } + } + } + elseif( $aInline ) { + $aImage->Headers(); + $aImage->Stream(); + return; + } + } + + function IsValid($aCacheFileName) { + $aCacheFileName = $this->cache_dir.$aCacheFileName; + if ( USE_CACHE && file_exists($aCacheFileName) ) { + $diff=time()-filemtime($aCacheFileName); + if( $this->timeout>0 && ($diff > $this->timeout*60) ) { + return false; + } + else { + return true; + } + } + else { + return false; + } + } + + function StreamImgFile($aImage,$aCacheFileName) { + $aCacheFileName = $this->cache_dir.$aCacheFileName; + if ( $fh = @fopen($aCacheFileName, 'rb') ) { + $lock = flock($fh, LOCK_SH); + $aImage->Headers(); + fpassthru($fh); + $lock = flock($fh, LOCK_UN); + fclose($fh); + return true; + } + else { + JpGraphError::RaiseL(25117,$aCacheFileName);//(" Can't open cached image \"$aCacheFileName\" for reading."); + } + } + + // Check if a given image is in cache and in that case + // pass it directly on to web browser. Return false if the + // image file doesn't exist or exists but is to old + function GetAndStream($aImage,$aCacheFileName) { + if( $this->Isvalid($aCacheFileName) ) { + $this->StreamImgFile($aImage,$aCacheFileName); + } + else { + return false; + } + } + + //--------------- + // PRIVATE METHODS + // Create all necessary directories in a path + function MakeDirs($aFile) { + $dirs = array(); + // In order to better work when open_basedir is enabled + // we do not create directories in the root path + while ( $aFile != '/' && !(file_exists($aFile)) ) { + $dirs[] = $aFile.'/'; + $aFile = dirname($aFile); + } + for ($i = sizeof($dirs)-1; $i>=0; $i--) { + if(! @mkdir($dirs[$i],0777) ) { + JpGraphError::RaiseL(25118,$aFile);//(" Can't create directory $aFile. Make sure PHP has write permission to this directory."); + } + // We also specify mode here after we have changed group. + // This is necessary if Apache user doesn't belong the + // default group and hence can't specify group permission + // in the previous mkdir() call + if( CACHE_FILE_GROUP != "" ) { + $res=true; + $res =@chgrp($dirs[$i],CACHE_FILE_GROUP); + $res = @chmod($dirs[$i],0777); + if( !$res ) { + JpGraphError::RaiseL(25119,$aFile);//(" Can't set permissions for $aFile. Permission problems?"); + } + } + } + return true; + } +} // CLASS Cache + +?> diff --git a/gosa-core/include/jpgraph/imgdata_balls.inc.php b/gosa-core/include/jpgraph/imgdata_balls.inc.php new file mode 100644 index 000000000..abc43d091 --- /dev/null +++ b/gosa-core/include/jpgraph/imgdata_balls.inc.php @@ -0,0 +1,1061 @@ + 'imgdata_large', + MARK_IMG_MBALL => 'imgdata_small', + MARK_IMG_SBALL => 'imgdata_xsmall', + MARK_IMG_BALL => 'imgdata_xsmall'); + protected $colors,$index,$maxidx; + private $colors_1 = array('blue','lightblue','brown','darkgreen', + 'green','purple','red','gray','yellow','silver','gray'); + private $index_1 = array('blue'=>9,'lightblue'=>1,'brown'=>6,'darkgreen'=>7, + 'green'=>8,'purple'=>4,'red'=>0,'gray'=>5,'silver'=>3,'yellow'=>2); + private $maxidx_1 = 9 ; + + private $colors_2 = array('blue','bluegreen','brown','cyan', + 'darkgray','greengray','gray','green', + 'greenblue','lightblue','lightred', + 'purple','red','white','yellow'); + + + private $index_2 = array('blue'=>9,'bluegreen'=>13,'brown'=>8,'cyan'=>12, + 'darkgray'=>5,'greengray'=>6,'gray'=>2,'green'=>10, + 'greenblue'=>3,'lightblue'=>1,'lightred'=>14, + 'purple'=>7,'red'=>0,'white'=>11,'yellow'=>4); + + private $maxidx_2 = 14 ; + + + private $colors_3 = array('bluegreen','cyan','darkgray','greengray', + 'gray','graypurple','green','greenblue','lightblue', + 'lightred','navy','orange','purple','red','yellow'); + + private $index_3 = array('bluegreen'=>1,'cyan'=>11,'darkgray'=>14,'greengray'=>10, + 'gray'=>3,'graypurple'=>4,'green'=>9,'greenblue'=>7, + 'lightblue'=>13,'lightred'=>0,'navy'=>2,'orange'=>12, + 'purple'=>8,'red'=>5,'yellow'=>6); + private $maxidx_3 = 14 ; + + protected $imgdata_large, $imgdata_small, $imgdata_xsmall ; + + + function GetImg($aMark,$aIdx) { + switch( $aMark ) { + case MARK_IMG_SBALL: + case MARK_IMG_BALL: + $this->colors = $this->colors_3; + $this->index = $this->index_3 ; + $this->maxidx = $this->maxidx_3 ; + break; + case MARK_IMG_MBALL: + $this->colors = $this->colors_2; + $this->index = $this->index_2 ; + $this->maxidx = $this->maxidx_2 ; + break; + default: + $this->colors = $this->colors_1; + $this->index = $this->index_1 ; + $this->maxidx = $this->maxidx_1 ; + break; + } + return parent::GetImg($aMark,$aIdx); + } + + function __construct() { + + //========================================================== + // File: bl_red.png + //========================================================== + $this->imgdata_large[0][0]= 1072 ; + $this->imgdata_large[0][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAByF'. + 'BMVEX/////////xsb/vb3/lIz/hIT/e3v/c3P/c2v/a2v/Y2P/'. + 'UlL/Skr/SkL/Qjn/MTH/MSn/KSn/ISH/IRj/GBj/GBD/EBD/EA'. + 'j/CAj/CAD/AAD3QkL3MTH3KSn3KSH3GBj3EBD3CAj3AAD1zMzv'. + 'QkLvISHvIRjvGBjvEBDvEAjvAADnUlLnSkrnMTnnKSnnIRjnGB'. + 'DnEBDnCAjnAADec3PeSkreISHeGBjeGBDeEAjWhITWa2vWUlLW'. + 'SkrWISnWGBjWEBDWEAjWCAjWAADOnp7Oa2vOGCHOGBjOGBDOEB'. + 'DOCAjOAADJrq7Gt7fGGBjGEBDGCAjGAADEpKS/v7+9QkK9GBC9'. + 'EBC9CAi9AAC1e3u1a2u1Skq1KSm1EBC1CAi1AACtEBCtCBCtCA'. + 'itAACngYGlCAilAACghIScOTmcCAicAACYgYGUGAiUCAiUAAiU'. + 'AACMKSmMEACMAACEa2uEGAiEAAB7GBh7CAB7AABzOTlzGBBzCA'. + 'BzAABrSkprOTlrGBhrAABjOTljAABaQkJaOTlaCABaAABSKSlS'. + 'GBhSAABKKSlKGBhKAABCGBhCCABCAAA5CAA5AAAxCAAxAAApCA'. + 'ApAAAhAAAYAACc9eRyAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgF'. + 'HUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkRFD'. + 'UHLytKAAAB4UlEQVR4nGNgIAK4mGjrmNq6BmFIWMmISUpKSmk5'. + 'B8ZEokj4qoiLiQCBgqald3xaBpKMj6y4sLCQkJCIvIaFV0RaUR'. + 'lCSk5cWEiAn19ASN7QwisuraihHiajKyEixM/NwckjoKrvEACU'. + 'qumpg7pAUlREiJdNmZmLT9/cMzwps7Smc3I2WEpGUkxYkJuFiY'. + 'lTxszePzY1v7Shc2oX2D+K4iLCgjzsrOw8embuYUmZeTVtPVOn'. + 'gqSslYAOF+Ln4ZHWtXMPTcjMrWno7J82rRgoZWOsqaCgrqaqqm'. + 'fn5peQmlsK1DR52vRaoFSIs5GRoYG5ub27n19CYm5pdVPnxKnT'. + 'pjWDpLydnZwcHTz8QxMSEnJLgDL9U6dNnQ6Sio4PDAgICA+PTU'. + 'zNzSkph8hADIxKS46Pj0tKTc3MLSksqWrtmQySAjuDIT8rKy0r'. + 'Kz+vtLSmur6jb9JUIJgGdjxDQUVRUVFpaUVNQ1NrZ9+kKVOmTZ'. + 'k6vR0sldJUAwQNTU2dnX0TgOJTQLrSIYFY2dPW1NbW2TNxwtQp'. + 'U6ZMmjJt2rRGWNB3TO7vnzh5MsgSoB6gy7sREdY7bRrQEDAGOb'. + 'wXOQW0TJsOEpwClmxBTTbZ7UDVIPkp7dkYaYqhuLa5trYYUxwL'. + 'AADzm6uekAAcXAAAAABJRU5ErkJggg==' ; + + //========================================================== + // File: bl_bluegreen.png + //========================================================== + $this->imgdata_large[1][0]= 1368 ; + $this->imgdata_large[1][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABm'. + 'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'. + 'B3RJTUUH0wMMFi8hE9b2uAAABOVJREFUeNq9lk2sJFUVx3+3qv'. + 'tW95t57zFvhiFxmCFRUJRoNCQiJARMhiFx/Igxii5goTG6ZDAu'. + '/EhcSCIrTAgLEiKsJ8ywABNZEMJXEDYCukAmjgjzBkK/j35V1d'. + '333FtV97io97pfzwxfG86qcu/N+Z3zP+fcW/Apmfk4hx57+R/6'. + 'Rqmc9ykhsWjlsUngAA1fXIQ7b73pI/186IGHnn9dH/8frC8v4I'. + 'PiG53uaerR4GmKkv31mB8cyfjd946ZTwR66qVX9OTWIi8UKUv9'. + 'BOrZXpYZvFeiBvzI0fgSUSFKwbVG+Pl1V3HH0VvNR4KeeukV/f'. + 'PmMmdHhst76aXD64AbeVQ9bjNHaiGOC2o3wLrAb2/4LL/84ffn'. + 'fCdzkOdayKpLppBemrBsU5Y1Zdmm9LJdGU6E/t4M24Q26jRDRL'. + 'j3mdc49cSTekFsMzs5XuTsyLDUNSDQ25NwKOly9YIl22MYhJr/'. + 'uoDtBBoT0CxBRGYOAhibIaOCe//2MpfM6KHnX9cXipSlbkKWmS'. + 'nk9iv38J0jixw7vJfrTMYBOvhSoQHJBS09ANELloAGDxW8tfoW'. + 'J+5/UC8CPS0LU7r3SpYarr7M8rmFjMPLXT6/33L4si7Z2GCrQC'. + '+0ctlOaNs9DReV8vSLr85ndPLpZ/WNvHW+01kAVFBOGvJx0wYg'. + 'Sp47RIQ4Emwa8FGJXlDxSCFo5YlVgAo2hwPue/hRndboTV3EW2'. + 'Wp3k6wBp8q56QiWzecW6vwQfnPRkAWhFgILnq08jQ+R2nlUzzN'. + 'uES9Q7Vd+9fba7NmWJW61db2247qACmcjxXr45psYphsFGSLBu'. + 'kIajxqtjNwHkvAjQt0sg3crhPA2+fPz0CuyNFOghsGsr19mnFg'. + 'DGwrRm8UoAtNmQPQtRXDgdC4HImCFEKcCE0oieUWUYq2LtbiGp'. + 'mBQmppfIkjw45DK0QNNkvQ0jMBtPL0UnDRM1rN+cxKwzvOo2NP'. + 'tykR9a1kfpZNDLMG6QDYJqCTBvUe1+uxs+YKyPoGrTwY2HhvC4'. + 'CDWQd5d4xNApNQEEMgjgLdUCLBQ5cprL/trwNwKG2IUmDqDFd5'. + 'sr5BWrlxuSdLDFEFlqAzXGc4zFjupqh6uqYihpxJcEgp026l2w'. + '7wFUv7Z6AvrfRo/n0OYzPwIKE3HUKAJg2otMBiElnsF7wngis9'. + '3ZDjNnLi7huCWUZfueZKTu/M0V3HvmkOFDVxVKDG04ScejSgW5'. + 'V0q5JYFEghuDLHlTmToqDeGOCKIVtrW9hsdmXufEcNLPSXuPHa'. + 'a+bvuh9df5AH/v5PDFmbWQC3Mx+TVvfGVTRB2CodNgT2JBX003'. + 'aANZAYS/BxCv32TV/l2C03G7jgmfjGiT/qmeEmibEYm7XzAO2k'. + 'A+pbgHhBgydqu54YO5eRiLCy7yDvPP6Xqf+5Z+Lu277OYuOpiw'. + 'H15oBmlNOMcmK5RbP+PrEscGU+DSAxdg4CICIkxnLP8aNz63Og'. + 'H3/rdvOb795GVhuaYo0oBc3GGrEsUPVTwO6a7LYd+X51x3Hu/t'. + 'lP5tS65FN+6okn9U+n/sqb596dTvhOF+02myXTmkQNrOw7yD3H'. + 'j14E+UDQjp24/0E9/eKrbA4HH3aMK1b2ccvXvswjv//1J/s5ud'. + 'Due/hRPfP+OmfOrk7vrn7a48ihA3zh8CH+8Iuffiw/n4r9H1ZZ'. + '0zz7G56hAAAAAElFTkSuQmCC' ; + + //========================================================== + // File: bl_yellow.png + //========================================================== + $this->imgdata_large[2][0]= 1101 ; + $this->imgdata_large[2][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAB2l'. + 'BMVEX//////////+///+f//9b//8b//73//7X//63//6X//5T/'. + '/4z//4T//3P//2v//1r//0r//0L//zH//yn//yH//xj//xD//w'. + 'j//wD/90L/9zn/9zH/9xj/9xD/9wj/9wD39yn37zn37zH37yH3'. + '7xD37wj37wDv70Lv50rv50Lv5znv5yHv5xjv5wjv5wDn51Ln5x'. + 'Dn3jHn3iHn3hjn3hDn3gje3oze3nPe3lLe1oze1nPe1lLe1ine'. + '1iHe1hje1hDe1gje1gDW1qXW1mvWzqXWzkLWzhjWzhDWzgjWzg'. + 'DOzrXOzq3OzpzOzgDOxkrOxinOxhjOxhDOxgjOxgDGxqXGxnvG'. + 'xmvGvRjGvRDGvQjGvQDFxbnAvr6/v7+9vaW9vZS9vQi9vQC9tR'. + 'C9tQi9tQC7u7W1tZS1tXu1tTG1tQi1rRC1rQi1rQCtrYytrSGt'. + 'rQitrQCtpYStpSGtpQitpQClpYSlpXulpQClnBClnAilnACcnG'. + 'ucnAicnACclAiclACUlFqUlCmUlAiUlACUjFKUjAiUjACMjFKM'. + 'jEqMjACMhACEhACEewB7ezF7exB7ewB7cwBzcylzcwBzaxBzaw'. + 'BraxhrawhrawBrYxBrYwBjYwBjWgBaWgBaUgCXBwRMAAAAAXRS'. + 'TlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAd'. + 'LdfvwAAAAHdElNRQfTAwkRFBKiJZ4hAAAB7ElEQVR4nI3S+1vS'. + 'UBgHcB67WJmIMWAVdDHEDLBC6Go0slj3Ft0m9RRBWQEmFZFDEM'. + 'Qgt0EMFBY7p/+198hj1kM/9N1+++x73rOd6XT/kStnTx4fPzd9'. + 'uwfOjFhomj7smAhwj/6Cm2O0xUwy6g7cCL99uCW3jtBmE7lsdr'. + 'fvejgpzP7uEDFRRoqy2k8xQPnypo2BUMP6waF9Vpf3ciiSzErL'. + 'XTkPc0zDe3bsHDAcc00yoVgqL3UWN2iENpspff+2vn6D0+NnZ9'. + '6lC5K6RuSqBTZn1O/a3rd7v/MSez+WyIpVFX8GuuCA9SjD4N6B'. + 'oRNTfo5PCAVR0fBXoIuOQzab1XjwwNHx00GOj8/nKtV1DdeArk'. + '24R+0ul9PjmbrHPYl+EipyU0OoQSjg8/m83kl/MMhx0fjCkqio'. + 'SMOE7t4JMAzDsizH81AqSdW2hroLPg4/CEF4PhKNx98vlevrbY'. + 'QQXgV6kXwVfjkTiSXmhYVcSa7DIE1DOENe7GM6lUym0l+EXKks'. + 'K20VAeH2M0JvVgrZfL5Qqkiy0lRVaMBd7H7EZUmsiJJcrTdVja'. + 'wGpdbTLj3/3qwrUOjAfGgg4LnNA5tdQx14Hm00QFBm65hfNzAm'. + '+yIFhFtzuj+z2MI/MQn6Uez5pz4Ua41G7VumB/6RX4zMr1TKBr'. + 'SXAAAAAElFTkSuQmCC' ; + + //========================================================== + // File: bl_silver.png + //========================================================== + $this->imgdata_large[3][0]= 1481 ; + $this->imgdata_large[3][1]= + 'iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAMAAAAM7l6QAAADAF'. + 'BMVEUAAADOzs7Gxsa9vb21tbXOxsbOzsbGzsb3///O1ta1vb2c'. + 'paVSWlpKWlpSY2ve5+97hIze7/9aY2vO5/9zhJRaa3tSY3PGzt'. + 'aMlJxrc3tja3NKUlpCSlK1vcZze4RSWmPW5/+Upb3G3v9zhJxS'. + 'Y3t7jKVaa4TO3veltc6ElK1re5Rjc4ycpbV7hJRaY3M5QlLn7/'. + '/Gzt6lrb2EjJzO3v9ja3vG1ve9zu+1xueltdacrc6UpcaMnL1C'. + 'SlqElLV7jK1zhKVre5zW3u/O1ue1vc6ttcaMlKVze4xrc4RSWm'. + 'tKUmPG1v+9zve1xu+tveeltd6crdbe5/+9xt6cpb17hJxaY3s5'. + 'QlrW3vfO1u/Gzue1vdattc6lrcaUnLWMlK2EjKVze5Rrc4xja4'. + 'RSWnNKUmtCSmO9xuecpcZ7hKVaY4TW3v/O1vfGzu+1vd6ttdal'. + 'rc69xu+UnL2MlLWEjK1ze5xrc5R7hK1ja4zO1v+1veettd6lrd'. + 'aMlL3Gzv/39//W1t7Gxs61tb29vcatrbWlpa2cnKWUlJyEhIx7'. + 'e4TW1ufGxta1tcZSUlqcnK3W1u+UlKW9vda1tc57e4ytrcalpb'. + '1ra3vOzu9jY3OUlK29vd6MjKWEhJxaWmtSUmNzc4xKSlpjY3tK'. + 'SmNCQlqUjJzOxs7///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'. + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'. + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'. + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'. + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'. + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'. + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'. + 'AAAAAAAAAAAAAAAAAAAAAAAAD///9fnkWVAAAAAnRSTlP/AOW3'. + 'MEoAAAABYktHRP+lB/LFAAAACXBIWXMAAABFAAAARQBP+QatAA'. + 'AB/klEQVR42mNgxAsYqCdd3+lcb4hLmj8wMMvEu8DCMqYbU9op'. + 'UEFB2MTb26eyysomFl06XEEhUCHLpAKo2z/fujikEUVaXUFBMB'. + 'BouLePuV+VVWGRciIXknSEsImCQd3//xwmPr65llaFcSFJHkjS'. + '3iYmWUDZ//8NfCr989NjNUMSUyTg0jneSiaCINn/gmlVQM12qg'. + 'lJnp5waTMTE5NAkCyHWZW/lXWNfUlikmdYK0zax7siS4EDKJtd'. + 'mQeU1XRwLBdLkRGASucWmGVnZ4dnhZvn5lmm29iVOWpnJqcuko'. + 'JKR1Wm5eTkRKYF5eblp9sU2ZeUJiV7zbfVg0pH56UFBQXNjIqK'. + 'jgkujItX1koKTVmYajsdKu2qETVhwgSXiUDZ2Bn9xqUeoZ5e0t'. + 'LzYYZ3B092ndjtOnmKTmycW1s7SHa+l5dtB8zlccE6RlN0dGbM'. + 'mDVbd5KupNBcL6+F82XgHouLj5vRP2PWLGNdd4+ppnxe8tJec6'. + 'XnNsKkm0uVQ5RDRHQTPTym68nPlZbvkfYCexsa5rpJ2qXa5Umm'. + 'ocmec3m8vHjmSs+fgxyhC5JDQ8WSPT2lvbzm8vDIe0nbtiBLN8'. + '8BigNdu1B6Lsje+fPbUFMLi5TMfGmvHi/puUAv23q2YCTFNqH5'. + 'MvPnSwPh3HasCbm3XUpv+nS5VtrkEkwAANSTpGHdye9PAAAASn'. + 'RFWHRzaWduYXR1cmUANGJkODkyYmE4MWZhNTk4MTIyNDJjNjUx'. + 'NzZhY2UxMDAzOGFhZjdhZWIyNzliNTM2ZGFmZDlkM2RiNDU3Zm'. + 'NlNT9CliMAAAAASUVORK5CYII=' ; + + //========================================================== + // File: bl_purple.png + //========================================================== + $this->imgdata_large[4][0]= 1149 ; + $this->imgdata_large[4][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAACAV'. + 'BMVEX/////////7///5///1v//xv//rf//pf//lP//jP//hP//'. + 'c///a///Wv//Wvf/Uv//Sv//Qv//Qvf/Off/Mf//Kf//If//If'. + 'f/GP//GPf/EP//EPf/CP//CPf/CO//AP//APf3Oe/3Kff3Ke/3'. + 'Ie/3GO/3EO/3AO/vSu/vSufvOefvMefvIefvGOfvEOfvCOfvAO'. + 'fnUufnSufnMd7nId7nGN7nGNbnEN7nCN7nAN7ejN7ejNbec97e'. + 'c9beUtbeQtbeIdbeGNbeENbeCNbeANbWpdbWa9bWQs7WGM7WEM'. + '7WCM7WAM7Otc7Orc7OnM7OSsbOIb3OGMbOEMbOCMbOAM7OAMbG'. + 'pcbGnMbGe8bGa8bGKbXGEL3GCL3GAL3FucXBu73AvsC/v7+9pb'. + '29Ka29GLW9ELW9CLW9AL29ALW5rrm1lLW1e7W1MbW1GKW1EK21'. + 'CLW1CK21AK2tjK2thKWtMaWtIaWtGJytCK2tCKWtAK2tAKWlhK'. + 'Wle6WlEJylCJylAKWlAJyca5ycGJScEJScCJScAJycAJSUWpSU'. + 'UoyUKZSUEIyUCIyUAJSUAIyMUoyMSoyMIYSMEISMCISMAIyMAI'. + 'SECHuEAISEAHt7MXt7EHt7CHt7AHt7AHNzKXNzEGtzAHNzAGtr'. + 'GGtrEGNrCGtrAGtrAGNjCFpjAGNjAFpaAFpaAFIpZn4bAAAAAX'. + 'RSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsS'. + 'AdLdfvwAAAAHdElNRQfTAwkRFB0ymoOwAAAB9UlEQVR4nGNgIA'. + 'K42hhqGtm5+WFIWClKycvLK6gbuARGoEj4aMjLSElISUir6Tt7'. + 'x+aEIWR8leQlwEBSTc/CK7awLguuR0lGQkJMVFRUTFJVzwko1d'. + 'oFk9OQl5IQE+Dh5hVR0TV3CkkvbJgyASJjDZIR5GBl5eRX0TH1'. + 'DEqrbJ2ypBEspSgvJSXKw8bMxMavbOLoGZNf1TZlybw4oIyfLN'. + 'BxotxsLEzsQiaOHkFpBQ2905esrAZK2SpIAaUEuDm5+LTNPAKj'. + 'C+pbps1evrIDKGWnLictKSkuLKyoZQyUya9o7Z2+YMXKGUApew'. + 'M9PTVdXR0TEwf3wOjUirruafOXL18xFyjl72Kpb25qaurg4REU'. + 'EFVe2zJ5zpLlK1aCpbydnZ2dnDwDA6NTopLLeiZNXbB8BcTAyP'. + 'TQ0JDg4KCY1NS83JKmiVOBepYvX9UPlAovzEiPSU/LLyior2vq'. + 'mjZr3vLlIF01IC+XVhUWFlZW1Lc290ycOGfxohVATSsXx4Oksn'. + 'vaWlsb2tq6J0+bM2/RohVA81asbIcEYueU3t7JU6ZNnwNyGkhm'. + '+cp5CRCppJnzZ8+ZM3/JUogECBbBIixr8Yqly8FCy8F6ltUgoj'. + 'lz7sqVK2ByK+cVMSCDxoUrwWDVysXt8WhJKqG4Y8bcuTP6qrGk'. + 'QwwAABiMu7T4HMi4AAAAAElFTkSuQmCC' ; + + //========================================================== + // File: bl_gray.png + //========================================================== + $this->imgdata_large[5][0]= 905 ; + $this->imgdata_large[5][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAABO1'. + 'BMVEX////////3///39/fv7+/e5+fW3t7Wzs7WxsbG1tbGzsbG'. + 'xsbDxMS/v7++wMC+v7+9zsa9xsa9vb29tbW9ra29pa24uLi1xs'. + 'a1vb21tbWxtrattbWmpqalra2cra2cpaWcnJycjIyUpaWUnJyU'. + 'lJSUjIyMnJyMnJSMlJSMlIyMjJSMjIyElJSElIyEjIyEhIR7jI'. + 'x7hIR7hHt7e3t7e3N7e2tzhIRze3tze3Nzc3Nre3trc3Nrc2tr'. + 'a2tjc3Njc2tja3Nja2tjY2NjWlpaa2taY2taY2NaY1paWlpaUl'. + 'JSY2NSY1pSWlpSWlJSUlJSUkpKWlpKWlJKUlpKUlJKUkpKSkpK'. + 'SkJCUlJCUkJCSkpCSkJCQkI5Sko5QkI5Qjk5OUI5OTkxQkIxOT'. + 'kxMTkxMTEpMTEhMTEhKSkYISEpy7AFAAAAAXRSTlMAQObYZgAA'. + 'AAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdE'. + 'lNRQfTAwkRFQfW40uLAAABx0lEQVR4nI3SbXfSMBQA4NV3nce5'. + 'TecAHUywRMHSgFuBCFsQUqwBS1OsWQh0GTj//y8wZUzdwQ/efM'. + 'tzcm/uuXdj4z9ic/PR9k4qk1qDnf0X2/uZzKt8GaRvSubg4LVp'. + 'mkWzCGAT/i3Zsm2XNQHLsm2n2937LaaNnGoJFAEo27B50qN0ay'. + 'Wg26lXsw8fP8nmzcJb2CbsnF5JmmCE8ncN404KvLfsYwd7/MdV'. + 'Pdgl/VbKMIzbuwVgVZw2JlSKJTVJ3609vWUY957lgAUd1KNcqr'. + 'yWnOcOPn8q7d5/8PywAqsOOiVDrn42NFk+HQ7dVuXNYeFdBTpN'. + 'nY5JdZl8xI5Y+HXYaTVqEDp1hAnRohZM03EUjMdhn5wghOoNnD'. + 'wSK7KiiDPqEtz+iD4ctdyAifNYzUnScBSxwPd6GLfRURW7Ay5i'. + 'pS5bmrY8348C5vvUI+TLiIVSJrVA0heK/GDkJxYMRoyfCSmk4s'. + 'uWc3yic/oBo4yF374LGQs5Xw0GyQljI8bYmEsxVUoKxa6HMpAT'. + 'vgyhU2mR8uU1pXmsa8ezqb6U4mwWF/5MeY8uLtQ0nmmQ8UWYvb'. + 'EcJaYWar7QhztrO5Wr4Q4hDbAG/4hfTAF2iCiWrCEAAAAASUVO'. + 'RK5CYII=' ; + + //========================================================== + // File: bl_brown.png + //========================================================== + $this->imgdata_large[6][0]= 1053 ; + $this->imgdata_large[6][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAABoV'. + 'BMVEX////Gzs7GvbXGrZTGpXu9nHO1nHO1nIy9taXGxs7GtaXO'. + 'nHPGlFrGjEq9hEq1hEqte0Klczmcazmce1KtnIzGxsbGvb3OlF'. + 'LOlFq9hFKte0qcc0KUYzGEWimMc1K9ta3OnGvOnGPWnGO9jFq9'. + 'jFKlc0KUazmMYzl7UilzUjGtpZzGxr3GnGPWpWvepXO1hFJ7Wj'. + 'FrSiFjUjG1ra3GnHPvxpT/5733zpythFKUa0KEYzlzUilaOSF7'. + 'Wjm9jErvvYz/99b///f/78bnrYS1hFqle0p7UjFrSiljQiFCMR'. + 'iMhHO9lGvGjFLWnGv/3q3////erXuthEqlc0paQiFKMRhSQin/'. + '1qX/997//++cc0pjSilaQilKORhCKRiclIy9pYzGlGPntYT33q'. + '3vvZSEWjlSOSE5KRB7c2O1lHutczmthFqte1JrWkqtjGtCKRBa'. + 'SjmljGuca0KMYzGMaznOztaclISUYzmEWjFKOSF7a1qEYzFaSi'. + 'GUjISEa0pKOSm9vb2llIxaQhg5IQiEc2tzY0paORilnJy1raVS'. + 'OSljUkJjWkKTpvQWAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHU'. + 'gAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkREiei'. + 'zP2EAAAB9UlEQVR4nGWS/VfSUBjHL5QluhhBxtwyWcCus5Blpm'. + 'wDC4ONaWXCyBi7RMZmpQ2Bypm9W/byV3cHHo/W88s95/s5z/d5'. + 'uwCcCh/4L3zAf+bs0NC588On9QAYGSUuBINk6GI4cmnsBLk8Go'. + '1SFEGMkzRzZeLq5JE8FvDHouw1lqXiCZJOcnCKnx4AcP0GBqmZ'. + 'mRgRT9MMB4Wbs7cGSXNRik3dnp9fiMUzNCNKgpzN9bsaWaQo9s'. + '7dfH7pXiFTZCBU1JK27LmtBO8TDx7mV1eXHqXXyiIUFLWiVzHx'. + 'BxcJIvV4/cn6wkqmWOOwmVE3UQOAp6HxRKL5bGPj+VwhUhalFq'. + '8alm5vAt+LlySZTsebzcKrraIIW4JqZC3N3ga+1+EQTZKZta1M'. + 'pCZCSeDViqVrThsEdsLJZLJYLpZrHVGScrKBvTQNtQHY6XIM02'. + 'E6Ik7odRW1Dzy3N28n3kGuB3tQagm7UMBFXI/sATAs7L5vdbEs'. + '8Lycm923NB0j5wMe6KOsKIIyxcuqauxbrmlqyEWfPmPy5assY1'. + 'U1SvWKZWom9nK/HfQ3+v2HYZSMStayTNN0PYKqg11P1nWsWq7u'. + '4gJeY8g9PLrddNXRdW8Iryv86I3ja/9s26gvukhDdvUQnIjlKr'. + 'IdZCNH+3Xw779qbG63f//ZOzb6C4+ofdbzERrSAAAAAElFTkSu'. + 'QmCC' ; + + //========================================================== + // File: bl_darkgreen.png + //========================================================== + $this->imgdata_large[7][0]= 1113 ; + $this->imgdata_large[7][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAB2l'. + 'BMVEX////////3///v///n/+/e99bW/+/W99bO786/v7++vr69'. + '/96999a7wb24vbu1/9a1zqW1u7itxrWosq6l772l1qWlxrWlxq'. + '2lva2cxpSU562U3q2UxqWUvaWUpZyM77WM57WMvYyMtZyMrZyM'. + 'pZSMnJSEvZyEtYyErZSElIx7zpR7xpx7xpR7vZR7jIRz1pRzxp'. + 'RzjIRrzpRrzoxrxoxrtYRrrYxrrXtrpYRrhHNjzoxjxoxjxoRj'. + 'vYRjtYRjrXtjpXtjlGNje2tazoxazoRaxoxaxoRavYRatYRatX'. + 'tarXtapXNanHNajFpae2tSzoRSxoRSvXtStXtSrXtSrXNSpXNS'. + 'nHNSnGtSlGtSlGNSjGtSjGNKvXtKtXNKrXNKpWtKnGtKlGNKjG'. + 'NKhGNKhFJKc1pKa1JCrWtCpWtCnGtClGNCjGNCjFpChFpCe1JC'. + 'a1JCY1I5pWs5nGM5lGM5jFo5hFo5e1o5c0o5WkoxjFoxhFoxhF'. + 'Ixe1Ixc1Ixc0oxa0ophFIpe0opc0opa0opa0IpY0IpWkIpWjkp'. + 'UkIpUjkhc0oha0IhY0IhWjkhWjEhUjkhUjEhSjEhSikhQjEhQi'. + 'kYWjkYSjEYSikYQjEYQikQSikQQikQQiEQOSExf8saAAAAAXRS'. + 'TlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAd'. + 'LdfvwAAAAHdElNRQfTAwkRFCaDkWqUAAAB+ElEQVR4nI3S+1vS'. + 'UBgHcGZlPV0ks/vFrmQWFimJjiwiYUJWjFBWFhClyZCy5hLrwA'. + 'x2EIwJC1w7zf2vnU0re+iHvs9++7x7zznvORbLf+TA6ct9fYMX'. + 'jrfAUYefpp+/iM1ykxf/lmuhUZ/PTwXC8dml5Wcd23o5H5Mk6b'. + '5NUU8icXbhS67rNzn9JDnguOEYGQtEEtwC+Crs3RJ76P5A/znr'. + 'vsNX7wQnEiwHCtK7TTkW8rvdZ9uJtvZTLkxpHhSrP66bNEj7/P'. + '3WNoLYeeSWQQCIpe9lQw7RNEU5rDsIYtcJ14Nocg7kRUlBNkxn'. + 'YmGKcp7cv3vPwR7XOJPmc0VYU3Sv0e9NOBAYG7Hbz/cMjTMveZ'. + 'CHkqxuTBv0PhYJB4N3XR6PJ5rMAPMnpGUxDX1IxSeMTEaZp1OZ'. + 'nGAIQiYtsalUIhFlmGTy3sO3AizJCKn6DKYryxzHsWyaneMzr6'. + 'cWxRVZVlFTe4SpE3zm+U/4+whyiwJcWVMQNr3XONirVWAklxcE'. + 'EdbqchPhjhVzGpeqhUKhWBQhLElr9fo3pDaQPrw5xOl1CGG1JE'. + 'k1uYEBIVkrb02+o6RItfq6rBhbw/tuINT96766KhuqYpY3UFPF'. + 'BbY/19yZ1XF1U0UNBa9T7rZsz80K0jWk6bpWGW55UzbvTHZ+3t'. + 'vbAv/IT+K1uCmhIrKJAAAAAElFTkSuQmCC' ; + + //========================================================== + // File: bl_green.png + //========================================================== + $this->imgdata_large[8][0]= 1484 ; + $this->imgdata_large[8][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABm'. + 'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'. + 'B3RJTUUH0wMMFjM4kcoDJQAABVlJREFUeNq9ll2MJFUVx3/11V'. + 'Vd/TE9vU0v4zLDwJIF16jBqLAPhsRXEiDqg0QTJiQSjcSNvCzw'. + 'sBEDDxizhvAAxBgf1oR9QF9NiE9ESFZkQyZB5WtddmdnZ3qqqr'. + 'uqbt367Cofqu3ZZpWVaDzJfbkf53//55z/PVdZXV3l/2H6f7Lp'. + '5VdOV/4Nb+GmHpUeA7AdBNxc3kafNb73jRPK9Xwon8ToxVefqU'. + 'b91wibH5EkCQBCizFihTSviHUHR0hWws9xe3wvJ7/7nPKpgX5y'. + '9oFqt3eOgWniRBoAbUBGGqZUibSYaeoT2B5bnkdaSA6793Cv/S'. + 'QPPbihXBfo5VdOV+8dfgnvwAU62YH5fCZ12sDujFkwyegCqTrB'. + 'iUOKTOJKj8jr88jS8zy6cXwBTP048nuHX0I0nDlIp7RpTG7kM0'. + 'sdyAYsTVukUuWGhlWHMq0ITL92lnUp9R1Obz/GmTNnqn9bDD8/'. + '+0D1oX0O0zQZZDYCsK2j3Gl9jQqDfHiei8GfiKVLlsZkJaBAN1'. + '0i6PgwUbB0GxG5/PrtE/xLRr959Znqw9452oVNI+jiJhnr1pe4'. + 'k29zB1/nFr5Kj7tpt1YYhJ0FJ7nUYbcJQBgahN2MzeCP/OipR6'. + 'prgN6Qr6ELFQFUWoRpNVjlKwxZB8DCpE+PtfEKqV1cUzxpVudu'. + 'GTBHA5Y1g99e+dUio9O/P1Vpq+/WE5GGjDSMoAtAQjrf3C52IP'. + 'QxpY4WK2hpReka9Gfrhqgz0bACRoCWjDh56kQ1z9FeuUUQxVhK'. + 'B92sD1VahM+bAJgcoJhGjP/6Ln8rAgDiRCVRKiIzxMkkodBJ85'. + 'im1IlEHbE4k1xyNveL4YP8HarmGJIOpqyjeQmfNHmTvnqZTWBt'. + 'vIJXpPwlukJSuSTKGK3pEwtJmiX00ZlInTyNscImO6XBITvH1c'. + '8vVt2OucdKvIyeKRTNCivsEMgcpg6taYs30nfq0Gqg6hOSSFJ4'. + 'BSnJPht0IqEjWmOGocEI6F0J94F0qaL6BntTF0MtUfweKQKAPU'. + 'Wwp4OcVnQAmVb0p9DLOzjEhEKnGRmoRc7EzRGlwA6NujAKG4yP'. + '6Sjwc4aVznZ7DK0xXdkDoJf0kGmFBniFBOBGcZSCCSKd0IwN0k'. + 'IS+QZWCGVZex4BnUxya3+Zt9iugQbcRFpIAtuHvAZulPUdLhUJ'. + 'RqegI3WcqaSXddlT3idsWMSRRGkEtNwmyTifAwyBo7LP+11J0e'. + '7tM7pZOYblHkBLcqZ5LcYtw6Wbd4CM3SpE9foYZsIHoqDKCrbz'. + 'mLSQtPwmuhXgtBLs0GBdbXOhFGB7WBKO2F8GXt9/VO97Ya3atF'. + '7nUHnwGjGGQqcPxFEdFqURkEidiZszAERoYIsGju1hq21kWee3'. + 'bw15+8WpsvAy3K1+i3JkkhZyPpxxjjPOsfOYiZ+TFhLPzQnHOU'. + 'tpzGB2dgA4tscIkKIx19Cxg/fPL7vQJu47eXt1VvsDK8pwPueZ'. + 'PuZoQMOqhRoJHSs0kKLBWjvjYinmeQGw1TaX1RFdfZ3LMzYLjA'. + 'C++dkn6AaH2Nobk6cxEzdnuG0TdC8zvdJkN0hqkFkO/jwL0fxa'. + 'so8sBcuFzQ+/+MRC+BeAHnpwQzn++ee5KT9Eshuy46dcKAXm32'. + '0uzPQhS4GttkH2GQID2Wc0Y4LtAbDxhZ/x5A+e/uTG9+jGceXH'. + '9/ySnnIXnUzOxXe1038mW3ZynNmam4yYWkO+f9cv+Oljz16/lV'. + '9tDz/9nerc1hm8ZEScSRK7VvtYl1i1dklsOKyvc+zg/bzw1O8+'. + '/efkajt56kR1ydlEJBc5H46xzbrJ3dY9wrB7hGcff+6/+279L+'. + '0fHxyiE8XMLl4AAAAASUVORK5CYII=' ; + + //========================================================== + // File: bl_blue.png + //========================================================== + $this->imgdata_large[9][0]= 1169 ; + $this->imgdata_large[9][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAACEF'. + 'BMVEX/////////7//35//v1v/exv/Wvf/Wrf/Wpf/Orf+/v7+9'. + 'tc69jP+9hP+5ucW1tc6tlP+rq7Wlpdalpcalpb2cnM6cnMacc/'. + '+cWv+UlLWUjN6UjK2Uc/+Ma/+MUv+EhKWEa/+EQvd7e8Z7e7V7'. + 'e6V7c957Wv9za9Zza8ZzSv9ra5xrSv9rOf9rMe9jUudjQv9jOe'. + '9aWpRaUt5aUpRaSu9aSudSUoxSSs5SSoxSMf9KQtZKOfdKMedK'. + 'Kf9KKe9CKf9CKb1CKa1CIfdCIedCId45MXs5Kfc5If85Iec5Id'. + 'Y5GP8xMbUxMXsxKc4xKZQxIf8xGP8xGO8xGN4xGNYxGL0xGK0p'. + 'KXMpIYwpGP8pGO8pGOcpGNYpGM4pEP8pEPcpEOcpEN4pENYpEM'. + 'YpEL0hGKUhEP8hEPchEO8hEOchEN4hENYhEM4hEMYhELUhCP8h'. + 'CO8hCN4YGJwYGGsYEL0YEK0YEHMYCN4YCM4YCMYYCL0YCKUYAP'. + '8QEJQQEIwQEHsQEGsQCM4QCLUQCK0QCKUQCJwQCJQQCIwQCHMQ'. + 'CGsQAP8QAPcQAO8QAOcQAN4QANYQAM4QAMYQAL0QALUQAKUQAJ'. + 'QQAIQICGsICGMIAO8IANYIAL0IALUIAK0IAKUIAJwIAJQIAIwI'. + 'AIQIAHsIAHMIAGsIAGMAAN4AAMYAAK0AAJQAAIwAAIQAAHMAAG'. + 'sAAGMAAFrR1dDlAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'. + 'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkRFRPMOZ'. + '/2AAAB+klEQVR4nGNgIAIIqeqZmBqpi2JISNml5lVXV3d198Yo'. + 'oUjwm1SnxsbGRsSm5ZfNXO4tjCTjVh0ABhFx6QV9E1Y0S8JkuN'. + '3yAgLc7W3t/QPi4jPKJ8ye1yoIlTKpjvVy15eVUbN0i4zKLJ8w'. + 'ae6qcKgLqmMj3PUFWFl5NJ0CExLLJzbNW7BWCyxlXR0ba6/Axs'. + 'zELmfnkRBT0QiSKgXJCOflxUbYy3KyMHEoOrtEZ1c2TZ6/cMl6'. + 'eaCUamdsbIC7tjgPr4SBS3BMMVDTwkXr1hsDpYy6UmMj/O0tdX'. + 'QNbDxjknJLWqYsXLx0vStQynxGflpkZGCgs7Onp29SbtNkoMy6'. + 'pevCgFJWy3oyMuKjgoKCPWNCvEuqWhcsWrJ06XqQlPnMvrKyrM'. + 'TomJjkZAfHlNa2qdOWrlu63gcopbG8v7+hvLwip7g4JdSxsLZu'. + '8dKlS9ettwBKic2eNXHChIkTG5tKqgpr2uo6loLAehWQx0LnzJ'. + '49p6mpeXLLlNq6RUvqly6dvnR9Bx9ISnnlvLmT582bMr9t4aL2'. + '+vrp60GaDCGB6Ld6wfwFCxYCJZYsXQ+SmL6+FBryInVrFi1atH'. + 'jJkqVQsH6pNCzCJNvXrQW6CmQJREYFEc2CYevXrwMLAyXXl0oz'. + 'IAOt0vVQUGSIkabkDV3DwlzNVDAksAAAfUbNQRCwr88AAAAASU'. + 'VORK5CYII=' ; + + //========================================================== + // File: bs_red.png + //========================================================== + $this->imgdata_small[0][0]= 437 ; + $this->imgdata_small[0][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAk1'. + 'BMVEX////////GxsbGra3/xsbOhITWhIT/hIT/e3v/c3P/a2vG'. + 'UlK1SkrOUlL/Y2PWUlLGSkrnUlLeSkrnSkr/SkqEGBj/KSmlGB'. + 'jeGBjvGBj3GBj/EBD/CAj/AAD3AADvAADnAADeAADWAADOAADG'. + 'AAC9AAC1AACtAAClAACcAACUAACMAACEAAB7AABzAABrAABjAA'. + 'BuukXBAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZ'. + 'cwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGDNEMgOYAAAAm0'. + 'lEQVR4nI3Q3RKCIBAFYGZMy9RKzX7MVUAUlQTe/+kS0K49d3wD'. + '7JlFaG+CvIR3FvzPXgpLatxevVVS+Jzv0BDGk/UJwOkQ1ph2g/'. + 'Ct5ACX4wNT1o/zzUoJUFUGBiGfVnDTYGJgmrWy8iKEtp0Bpd2d'. + 'jLGu56MB7f4JOOfDJAwoNwslk/jOUi+Jts6RVNrC1hkhPy50Ef'. + 'u79/ADQMQSGQ8bBywAAAAASUVORK5CYII=' ; + + + //========================================================== + // File: bs_lightblue.png + //========================================================== + $this->imgdata_small[1][0]= 657 ; + $this->imgdata_small[1][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAABVl'. + 'BMVEX////////d///AwMC7wcS08P+y+P+xxdCwxM+uws2twMur'. + 'vsinzNynytylzuKhyN6e5v6d5P+d1fOcwNWcu8ub4f+at8iZ3v'. + '+ZvdGY2/yW2f+VscGU1vuT1fqTr72Sx+SSxeKR0fWRz/GPz/OP'. + 'rr+OyeqMy+6Myu2LyeyKxueJudSGw+SGorGDvt+Cvd6CvN2Aud'. + 'p+uNd+t9Z9tdV8tdR8tNN6sc94r813rct2q8h0qcZ0qMVzp8Rx'. + 'o8Bwor5tn7ptnrptnrlsnbhqmbRpmbNpi51ol7Flkqtkkqtkka'. + 'pjj6hijaRhjaZgi6NfiqJfiaFdh55bhJtag5pZgphYgJZYf5VX'. + 'cn9Ve5FSeI1RdopRdYlQdYlPc4dPcoZPcoVNcINLboBLbH9GZn'. + 'hGZXdFZHZEY3RDYnJCXW4/W2s/WWg+Wmo7VmU7VGM7U2E6VGM6'. + 'VGI5UV82T1wGxheQAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHU'. + 'gAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGTok'. + '9Yp9AAAAtElEQVR4nGNgIBaw8wkpKghzwvksPAKiUsraprYiLF'. + 'ARXkE2JiZ1PXMHXzGIAIekOFBE08TGLTCOCyzCLyvDxsZqZOnk'. + 'E56kAhaRV9NQUjW2tPcMjs9wBYsY6Oobmlk7egRGpxZmgkW0zC'. + '2s7Jy9giKT8gohaiQcnVzc/UNjkrMLCyHmcHr7BYREJKTlFxbm'. + 'QOxiEIuKTUzJKgQCaZibpdOzQfwCOZibGRi4dcJyw3S4iQ4HAL'. + 'qvIlIAMH7YAAAAAElFTkSuQmCC' ; + + //========================================================== + // File: bs_gray.png + //========================================================== + $this->imgdata_small[2][0]= 550 ; + $this->imgdata_small[2][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABEAAAAQCAMAAADH72RtAAABI1'. + 'BMVEX///8AAAD8EAD8IAD8NAD8RAD8VAAYGBi/v7+goKCCgoJk'. + 'ZGRGRkb8yAD83AD87AD8/AD4+ADo+ADY+ADI+AC0+ACk+ACU+A'. + 'CE+AB0/ABk/ABU/ABE/AAw/AAg/AAQ/AAA/AAA+AAA6BAA2CAA'. + 'yDQAtEQApFQAlGQAhHQAdIgAZJgAVKgARLgAMMgAINwAEOwAAP'. + 'wAAPgIAPAQAOgYAOAkANgsANA0AMg8AMBEALhMALBUAKhcAKBo'. + 'AJhwAJB4AIiAAID////4+Pjy8vLs7Ozm5ubg4ODa2trT09PNzc'. + '3Hx8fBwcG7u7u1tbWurq6oqKiioqKcnJyWlpaQkJCJiYmDg4N9'. + 'fX13d3dxcXFra2tkZGReXl5YWFhSUlJMTExGRkZAQEA1BLn4AA'. + 'AAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIA'. + 'AAsSAdLdfvwAAAAHdElNRQfTAwkUGiIctEHoAAAAfElEQVR4nI'. + '2N2xKDIAwF+bZ2kAa8cNFosBD//yvKWGh9dN+yk9kjxH28R7ze'. + 'wzBOYSX6CaNB927Z9qZ66KTSNmBM7UU9Hx2c5qjmJaWCaV5j4t'. + 'o1ANr40sn5a+x4biElrqHgrXMeac/c1nEpFHG0LSFoo/jO/BeF'. + 'lJnFbT58ayUf0BpA8wAAAABJRU5ErkJggg==' ; + + //========================================================== + // File: bs_greenblue.png + //========================================================== + $this->imgdata_small[3][0]= 503 ; + $this->imgdata_small[3][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAxl'. + 'BMVEX///////+/v79znJQhSkJ7raU5hHtjraVKnJRCjIRClIyU'. + '9++E595avbVaxr2/v7+ctbWcvb17nJxrjIx7paUxQkK9//+Mvb'. + '17ra2Evb17tbVCY2MQGBiU5+ec9/eM5+d71tZanJxjra1rvb1j'. + 'tbVSnJxara1rzs5jxsZKlJRChIQpUlIhQkJatbVSpaU5c3MxY2'. + 'MYMTEQISFavb1Sra1KnJxCjIw5e3sxa2spWlpClJQhSkoYOTkp'. + 'Y2MhUlIQKSkIGBgQMTH+e30mAAAAAXRSTlMAQObYZgAAAAFiS0'. + 'dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfT'. + 'AwkUGTIqLgJPAAAAqklEQVR4nI2QVxOCMBCEM6Mi2OiCvSslJB'. + 'CUoqjn//9TYgCfubf9Zu9uZxFqO+rscO7b6l/LljMZX29J2pNr'. + 'YjmX4ZaIEs2NeiWO19NNacl8rHAyD4LR6jjw6PMRdTjZE0JOiU'. + 'dDv2ALTlzRvSdCCfAHGCc7yRPSrAQRQOWxKc3C/IUjBlDdUcM8'. + '97vFGwBY9QsZGBc/A4DWZNbeXIPWZEZI0c2lqSute/gCO9MXGY'. + '4/IOkAAAAASUVORK5CYII=' ; + + //========================================================== + // File: bs_yellow.png + //========================================================== + $this->imgdata_small[4][0]= 507 ; + $this->imgdata_small[4][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAzF'. + 'BMVEX///////+/v79zYwCMewDOxoTWzoTezkr/5wj/5wDnzgDe'. + 'xgC1pQCtnACllACcjACUhABjWgDGvVK1rUrOxlLGvUqEexilnB'. + 'jv3hj35xj/7wj/7wD35wDv3gDn1gDezgDWxgDOvQDGtQC9rQCE'. + 'ewB7cwBzawBrYwDWzlLn3lLe1krn3kre1hi9tQC1rQCtpQClnA'. + 'CclACUjACMhAD/9wC/v7///8bOzoT//4T//3v//3P//2v//2Pn'. + '50r//0r//yn39xj//xD//wBjYwDO8noaAAAAAXRSTlMAQObYZg'. + 'AAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAH'. + 'dElNRQfTAwkUGSDZl3MHAAAAqElEQVR4nI3QWRNDMBAA4My09E'. + 'IF1SME0VT1okXvM/3//6kEfbZv+81eswA0DfHxRpOV+M+zkDGG'. + 'rL63zCoJ2ef2RLZDIqNqYexyvFrY9ePkxGWdpvfzC7tEGtIRly'. + 'nqzboFKMlizAXbNnZyiFUKAy4bZ+B6W0lRaQDLmg4h/k7eFwDL'. + 'OWIky8qhXUBQ7gKGmsxpC+ah1TdriwByqG8GQNDNr6kLjf/wAx'. + 'KgEq+FpPbfAAAAAElFTkSuQmCC' ; + + //========================================================== + // File: bs_darkgray.png + //========================================================== + $this->imgdata_small[5][0]= 611 ; + $this->imgdata_small[5][1]= + 'iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAABJl'. + 'BMVEX////////o8v/f6O7W4OnR3PXL1OTL0evEyLvCzePAwMC/'. + 'v7a8wsq7t7C1xum1vtS1q6GzopmyxeKsrsOqvNWoq7anvN+nsb'. + 'qhrcGgqbGfpq6cp7+bqMuVmJKRm7yPlKKMnL6FkKWFipOEkLSE'. + 'j6qEhoqAiaB+jqd8haF7hZR4iJt4g5l3hZl2gIt2cod1hJVzeY'. + 'VzboJvhp9sfJJsb41peY1pd5xpdoVod4xndI5lcHxka4BjcYVg'. + 'Z3BfboFbb4lbZnZbYntaZ4laZYVZV3JYYWpXX3JWWm5VX4RVW2'. + 'NUYX9SXHxPWn5OVFxNWWtNVXVMVWFKV3xHUGZGU3dGTldFSlxE'. + 'Sk9ESXBCRlNBS3k/SGs/RU4+R1k9R2U6RFU2PUg0PEQxNU0ECL'. + 'QWAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAA'. + 'CxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGQmbJetrAAAAtklEQV'. + 'R4nGNgwAK4JZTNNOWlYDxhMT4ZDTOzQE1uMF9CiJWVU0LbxDlS'. + 'G8QVF+FnZ2KRNHAIiPUHaZGSlmZj5lH19A1KjLUA8lXU5MWllF'. + 'yjo30TYr2BfG19G11b37CEeN84H38gX1HbwTUkOjo+zjfG3hLI'. + 'l1exCvCNCwnxjfMz0gTyRdXNHXx9fUNCQu2MwU6SN3ZwD42LCH'. + 'W30IK4T8vUJSAkNMhDiwPqYiktXWN9JZj7UQAAjWEfhlG+kScA'. + 'AAAASUVORK5CYII=' ; + + + //========================================================== + // File: bs_darkgreen.png + //========================================================== + $this->imgdata_small[6][0]= 666 ; + $this->imgdata_small[6][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAABX1'. + 'BMVEX////////l/+nAwMC86r+8wb28wby8wLy78sCzw7SywrSx'. + 'wLKwvrGuvK+syK+ryq2rx62n36ym3aumxKmk2qij0Keh16ahva'. + 'Og1aSguKKe06KeuaCetZ+d0KGdtZ+bz6Cay56ZyZ2Zwp2Zr5qZ'. + 'rpqYwJuXyZuXrJmVw5mUxZiTxJeTw5eTq5WRwJWPtJKOvZKKuI'. + '6Kt42Kn4yJt42ItIuGsomFsYmEsIiEr4eDr4eBrIR/qoN+qIJ8'. + 'poB7pH56o356on14nnt2nXl0mndzmnZzmXZymHVwlXNvlHJukn'. + 'FtiHBqjm1qjW1oi2toiWpniWplh2hlhmdkhWdig2VggGNgf2Je'. + 'fmFdfGBde19bbl1aeFxXdFpWclhVclhVcVdUcFZTb1VSbVRQal'. + 'JPaVFKY0xKYkxJYUtIYEpHX0lEWkZCWERCV0NCVkM/U0A+U0A+'. + 'UUA+UEA9Uj89UT48Tj45TDvewfrHAAAAAXRSTlMAQObYZgAAAA'. + 'FiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElN'. + 'RQfTAwkUGRjxlcuZAAAAtElEQVR4nGNgIBZw8osqqIpzw/msfI'. + 'IiUmr6lo6SbFARASEOJiYtQ2uXADmIAJeEGFBE18LBMySBBywi'. + 'LC/LwcFiZuvmH5WiAxZR0tRW1DC3dfYJS8zyAouYGBibWtm7+o'. + 'TEpZfkgEX0rG3snNx9Q2NSCksgaqRd3Ty8gyLiU/NKSiDmcPsF'. + 'BodHJ2UUlZTkQ+xikIlNSE7LLgECZagL2VQyc0H8YnV2uD94jS'. + 'ILIo14iQ4HALarJBNwbJVNAAAAAElFTkSuQmCC' ; + + //========================================================== + // File: bs_purple.png + //========================================================== + $this->imgdata_small[7][0]= 447 ; + $this->imgdata_small[7][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAnF'. + 'BMVEX///////+/v7/Gvca9rb3Grcb/xv+1hLWte629hL21e7XG'. + 'hMbWhNbOe87We9b/hP//e/97OXv/c///a///Y/+cOZz/Sv/WOd'. + 'bnOefvOe//Kf9jCGNrCGv/EP//CP/nCOf/AP/3APfvAO/nAOfe'. + 'AN7WANbOAM7GAMa9AL21ALWtAK2lAKWcAJyUAJSMAIyEAIR7AH'. + 'tzAHNrAGtjAGPP1sZnAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgF'. + 'HUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGS'. + 'o5QpoZAAAAnElEQVR4nI3Q2xJDMBAG4MyQokWrZz3oSkJISJH3'. + 'f7dK0Gv/Xb7J7vyzCK0NjtPsHuH/2wlhTE7LnTNLCO/TFQjjIp'. + 'hHAA6bY06LSqppMAY47x+04HXTba2kAFlmQKr+YuVDCGUG2k6/'. + 'rNwYK8rKwKCnPxHnVS0aA3rag4UQslUGhrlk0Kpv1+sx3tLZ6w'. + 'dtYemMkOsnz8R3V9/hB87DEu2Wos5+AAAAAElFTkSuQmCC' ; + + + //========================================================== + // File: bs_brown.png + //========================================================== + $this->imgdata_small[8][0]= 677 ; + $this->imgdata_small[8][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAABaF'. + 'BMVEX//////////8X/3oD/3nj/1HX/0Gr/xGP/rkv/gBf+iS/2'. + 'bAL1agDxaQDuZwDrZwLpZQDmZQLlZADjcx7gZATeYQDdZgraXw'. + 'DZXwHYXgDXiEvXZAvUjlfUXwXTjVfTbR7ShUvRbR7RWwDMWQDL'. + 'WADKooLKWADJoYLJgkvHWATGoILFn4LFgEvFVgDEZx7EVQDDt6'. + '/DVQDCt6/CnoLChlfCVADAwMC+hFe+UgC8UgC6UQC4gVe4UAC3'. + 'gVe3UAC1gFe1eUu1TwC1TgCzTgCwTQKuTACrSgCqSgCpSgCpSQ'. + 'CodEulSACkRwCiRgCdRACcRACaQwCYQgCWQgKVQQCVQACUQACS'. + 'UR6RPwCOPgCNPQCLPACKPACJOwCEOQCBOAB+NwB9NgB8NgB7NQ'. + 'B6NwJ4NAB3RR52MwB0MgBuLwBtLwBsLwBqLgBpLQBkLQJiKgBh'. + 'KgBgKwRcKABbKQJbJwBaKQRaJwBYKAJVJQDZvdIYAAAAAXRSTl'. + 'MAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLd'. + 'fvwAAAAHdElNRQfTAwkUGho0tvl2AAAAtklEQVR4nGNgIBaoSg'. + 'mLKGpowfkGMty8AqJKpi4mRlAROR5ONg4JFUv3YHOIgDo/HwsT'. + 'q6yps29EsjZYREFIkJ2ZS9/OMzA20wEsIi8uKSZtaOPmH5WSFw'. + 'YW0VRW07Vw8vCLSMguLwCL6FlaObp6B0TGZxSXQ9TouHv6+IXG'. + 'JGYWlpdDzNEKCgmPjkvLKS0vL4LYxWAen5SelV8OBNZQFxrZ5h'. + 'aC+GX2MDczMBh7pZakehkTHQ4AA0Am/jsB5gkAAAAASUVORK5C'. + 'YII=' ; + + //========================================================== + // File: bs_blue.png + //========================================================== + $this->imgdata_small[9][0]= 436 ; + $this->imgdata_small[9][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAk1'. + 'BMVEX///////+/v7+trcbGxv+EhM6EhNaEhP97e/9zc/9ra/9S'. + 'UsZKSrVSUs5jY/9SUtZKSsZSUudKSt5KSudKSv8YGIQpKf8YGK'. + 'UYGN4YGO8YGPcQEP8ICP8AAP8AAPcAAO8AAOcAAN4AANYAAM4A'. + 'AMYAAL0AALUAAK0AAKUAAJwAAJQAAIwAAIQAAHsAAHMAAGsAAG'. + 'ONFkFbAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZ'. + 'cwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGhNNakHSAAAAmk'. + 'lEQVR4nI3P2xKCIBAGYGfM6SBWo1nauIqogaDA+z9dK9Lhrv47'. + 'vtl/2A2CfxNlJRRp9IETYGraJeEb7ocLNKznia8A7Db7umWDUG'. + 'sxAzhurxRHxok4KQGqCuEhlL45oU1D2w5BztY4KRhj/bCAsetM'. + '2uObjwvY8/oX50JItYDxSyZSTrO2mNhvGMbaWAevnbFIcpuTr7'. + 't+5AkyfBIKSJHdSQAAAABJRU5ErkJggg==' ; + + //========================================================== + // File: bs_green.png + //========================================================== + $this->imgdata_small[10][0]= 452 ; + $this->imgdata_small[10][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAn1'. + 'BMVEX///////+/v7+/v7/G/8aUxpSMvYyUzpSMzoyM1oxarVqE'. + '/4R7/3tavVpKnEpaxlpz/3Nr/2tKtUpj/2Na51pKzkpK1kpK50'. + 'pK/0oYcxgp/ykYlBgY3hgY7xgY9xgQ/xAI/wgA/wAA9wAA7wAA'. + '5wAA3gAA1gAAzgAAxgAAvQAAtQAArQAApQAAnAAAlAAAjAAAhA'. + 'AAewAAcwAAawAAYwA0tyxUAAAAAXRSTlMAQObYZgAAAAFiS0dE'. + 'AIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAw'. + 'kUGgW5vvSDAAAAnklEQVR4nI3QSxKCMAwA0M4gqCgoiiJ+kEAL'. + 'LQUq0PufzX7ENdnlJZNkgtDS2CYZvK6bf+7EoKLA9cH5SQzv6A'. + 'YloTywsAbYr44FrlgrXCMJwHl3xxVtuuFkJAPIcw2tGB9GcFli'. + 'oqEf5GTkSUhVMw2TtD0XSlnDOw3SznE5520vNEi7CwW9+Ayjyq'. + 'U/3+yPuq5gvhkhL0xlGnqL//AFf14UIh4mkEkAAAAASUVORK5C'. + 'YII=' ; + + + //========================================================== + // File: bs_white.png + //========================================================== + $this->imgdata_small[11][0]= 480 ; + $this->imgdata_small[11][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABEAAAAQCAYAAADwMZRfAAAABm'. + 'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'. + 'B3RJTUUH0wMLFTsY/ewvBQAAAW1JREFUeJytkz2u4jAUhT/jic'. + 'gfBUKiZhE0bIKeVbCWrIKenp6eDiGlCEEEBArIxvzGU4xeZjLk'. + 'jWb05lRXuvbx+exr4bouX1Xjyw7Atz81F4uFBYjjGIDhcCjq1o'. + 'k6nN1uZwFerxfP55Msy1itVmRZBsB4PK6YveHkeW5d18XzPIIg'. + 'wPd9Wq0WnU6HMAxJkoQoiuynOIfDwUopkVIihKAoCgAcx6Hdbm'. + 'OMIU1T5vN55eBKEikljUYDIX6kFUKU9e8aDAZlmjcca+1b7TgO'. + '1+uVy+VS9nzfr8e53++VzdZaiqIgz3OMMWitOZ/PaK0JgqDeRC'. + 'mF53lIKYGfr3O73TDGoJQiTVO01nS73XqT4/FIs9kkCAIej0eZ'. + 'brPZEMcxSZKgtQZgMpmIWpN+vy+m06n1PK9yTx8Gy+WS/X5Pr9'. + 'er9GuHLYoiG4YhSilOpxPr9Zrtdlti/JriU5MPjUYjq7UuEWaz'. + '2d+P/b/qv/zi75oetJcv7QQXAAAAAElFTkSuQmCC' ; + + + //========================================================== + // File: bs_cyan.png + //========================================================== + $this->imgdata_small[12][0]= 633 ; + $this->imgdata_small[12][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAABPl'. + 'BMVEX////////F///AwMCvxsaC1NSC0dGCz8+CzMyA//94//91'. + '//9q//9j//9X4uJX09NXz89Xx8dXxMRL//9L5uZL3d1L2NhLxs'. + 'ZLt7cv//8e9fUe8fEe7u4e398epqYehoYX//8L+PgK//8F9fUE'. + '/v4E5+cEb28EZ2cC//8C/v4C/f0CzMwCrq4Cjo4CdXUCaWkCZW'. + 'UB/PwA//8A/f0A+/sA8/MA7e0A7OwA6+sA5eUA5OQA4uIA4eEA'. + '3NwA2toA2NgA1dUA09MA0tIA0NAAysoAxsYAxcUAxMQAv78Avr'. + '4AvLwAtrYAtbUAs7MAsLAAra0Aq6sAqKgApaUApKQAoqIAoKAA'. + 'n58AmpoAlZUAk5MAkpIAkJAAj48AjIwAiYkAh4cAf38AfX0Ae3'. + 'sAenoAcnIAcHAAa2sAaWkAaGgAYmIUPEuTAAAAAXRSTlMAQObY'. + 'ZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAA'. + 'AHdElNRQfTAwkUGQDi+VPPAAAAtElEQVR4nGNgIBawikipyIiy'. + 'wfksfJpGRkamNtr8LFARPiMFHmFDcztXfwGoFi0jLiZuZRtnry'. + 'BddrCIiJEGL6eklYO7X3iCOFhE2thESdHawdUnJDZFDiyiamZh'. + 'aevk5h0UlZSpBhaRtbN3dPHwDY5MSM+EqBFzc/f0DgiLTkjLzI'. + 'SYw6bjHxgaEZeckZmpD7GLQSAqJj4xNRMIBGFuFtRLA/ENhGBu'. + 'ZmDgkJBXl5fgIDocAAKcINaFePT4AAAAAElFTkSuQmCC' ; + + //========================================================== + // File: bs_bluegreen.png + //========================================================== + $this->imgdata_small[13][0]= 493 ; + $this->imgdata_small[13][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAvV'. + 'BMVEX///////+/v79j//855/8x3v851v9Spb1C1v8AOUqEtcZK'. + 'lK1StdYxzv8hxv8AY4QASmNSlK1KpcZKtd4YQlIYnM4YrecIvf'. + '8AtfcAre8AjL0AhLUAc5wAa5QAWnsAQloAKTkAGCFKhJxKrdYY'. + 'jL0Ypd4Atf8ArfcApecAnN4AlM4AjMYAe60Ac6UAY4wAUnNSnL'. + '0AlNYAWoQASmsAOVIAITGEtc4YWnsAUnsAMUqtvcaErcYAKUIA'. + 'GCkAECHUyVh/AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAA'. + 'AJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGxNUcXCT'. + 'AAAAqUlEQVR4nI2Q1xKCMBREM2NHLCCogAGCjd6SqLT8/2cZKT'. + '6zb3tm987OBWCsXoejp8rC35fi4+l6gXFZlD0Rz6fZ1tdDmKR9'. + 'RdOmkzmP7DDpilfX3SzvRgQ/Vr1uiZplfsCBiVf03RJd140wgj'. + 'kmNqMtuYXcxyYmNWJdRoYwzpM9qRvGujuCmSR7q7ARY00/MiWk'. + 'sCnjkobNEm1+HknDZgAqR0GKU43+wxdu2hYzbsHU6AAAAABJRU'. + '5ErkJggg==' ; + + //========================================================== + // File: bs_lightred.png + //========================================================== + $this->imgdata_small[14][0]= 532 ; + $this->imgdata_small[14][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAA3l'. + 'BMVEX///////+/v7/Gvb0hGBj/5///3v//zu//1u//xucpGCG9'. + 'nK21lKVSQkp7Wms5KTExISlaOUpjQlIhEBj/tdbOhKXnrcbGjK'. + 'Wla4TetcbGnK2EWmv/rc73pcZ7UmOcY3vOpbW1jJzenLW9e5Rz'. + 'Slq1c4xrQlJSOULGhJz/pcb3nL2chIzOnK33rcbelK3WjKWMWm'. + 'vGe5SEUmM5ISnOtb3GrbXerb3vpb2ca3v/rcaUY3POhJxCKTF7'. + 'SlrWnK21e4ytc4TvnLXnlK2la3taOUK1lJxrSlLGhJRjQkpSMT'. + 'lw+q2nAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZ'. + 'cwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGjoP2Nm+AAAAr0'. + 'lEQVR4nGNgIBaYiOk62imYwPnMkiIyso76yhJSzFARMxkRNk49'. + 'a3t5OW6oFk1LVkYOfWUHKxUXiEYzLS12DnN3VXkjIRtFsIiSk5'. + '6evqGqhYGKugAfWMRa1FpD2UHeQEXQRlgALCJur+rgbCUNFOAS'. + 'hqjRkZe3MpBTcwEKCEPMMTGSs3Xz8OQHCnBBHckt6OJpIyAMBD'. + 'wwN/MYc4H4LK4wNzMwmGrzcvFqmxIdDgDiHRT6VVQkrAAAAABJ'. + 'RU5ErkJggg==' ; + + //========================================================== + // File: bxs_lightred.png + //========================================================== + $this->imgdata_xsmall[0][0]= 432 ; + $this->imgdata_xsmall[0][1]= + 'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAA3l'. + 'BMVEX///////+/v7/Gvb0hGBj/5///3v//zu//1u//xucpGCG9'. + 'nK21lKVSQkp7Wms5KTExISlaOUpjQlIhEBj/tdbOhKXnrcbGjK'. + 'Wla4TetcbGnK2EWmv/rc73pcZ7UmOcY3vOpbW1jJzenLW9e5Rz'. + 'Slq1c4xrQlJSOULGhJz/pcb3nL2chIzOnK33rcbelK3WjKWMWm'. + 'vGe5SEUmM5ISnOtb3GrbXerb3vpb2ca3v/rcaUY3POhJxCKTF7'. + 'SlrWnK21e4ytc4TvnLXnlK2la3taOUK1lJxrSlLGhJRjQkpSMT'. + 'lw+q2nAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZ'. + 'cwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAwkUKBOgGhWjAAAAS0'. + 'lEQVR4nGNgQAEmunYmEJaMCKe1vBxYzJKVQ9lKBSSupKdnaKGi'. + 'zgdkiqs6WKnYcIGYJnK2HvzCwmCNgi42wsLCECNMeXlNUY0HAL'. + 'DaB7Du8MiEAAAAAElFTkSuQmCC' ; + + //========================================================== + // File: bxs_bluegreen.png + //========================================================== + $this->imgdata_xsmall[1][0]= 397 ; + $this->imgdata_xsmall[1][1]= + 'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAvV'. + 'BMVEX///////+/v79j//855/8x3v851v9Spb1C1v8AOUqEtcZK'. + 'lK1StdYxzv8hxv8AY4QASmNSlK1KpcZKtd4YQlIYnM4YrecIvf'. + '8AtfcAre8AjL0AhLUAc5wAa5QAWnsAQloAKTkAGCFKhJxKrdYY'. + 'jL0Ypd4Atf8ArfcApecAnN4AlM4AjMYAe60Ac6UAY4wAUnNSnL'. + '0AlNYAWoQASmsAOVIAITGEtc4YWnsAUnsAMUqtvcaErcYAKUIA'. + 'GCkAECHUyVh/AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAA'. + 'AJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAwkUKDVyF5Be'. + 'AAAASUlEQVR4nGNgQAFmYqJcEJaEOJ+UrD5YTJKFTZrfGCQuaq'. + 'glLWvMaQ5kqujo6hnbKIKYXPr68gp2dmCNJiZAlh3ECGsREWtU'. + '4wF1kwdpAHfnSwAAAABJRU5ErkJggg==' ; + + //========================================================== + // File: bxs_navy.png + //========================================================== + $this->imgdata_xsmall[2][0]= 353 ; + $this->imgdata_xsmall[2][1]= + 'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAk1'. + 'BMVEX///////+/v7+trcbGxv+EhM6EhNaEhP97e/9zc/9ra/9S'. + 'UsZKSrVSUs5jY/9SUtZKSsZSUudKSt5KSudKSv8YGIQpKf8YGK'. + 'UYGN4YGO8YGPcQEP8ICP8AAP8AAPcAAO8AAOcAAN4AANYAAM4A'. + 'AMYAAL0AALUAAK0AAKUAAJwAAJQAAIwAAIQAAHsAAHMAAGsAAG'. + 'ONFkFbAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZ'. + 'cwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAwkUJxXO4axZAAAAR0'. + 'lEQVR4nGNgQAGskhKsEJaslIi8ijpYTJaDU1FVAyQuKSujoKKh'. + 'LQ5kSigpqWro6oOYrOoaWroGBmCNWiCWAdQwUVFWVOMBOp4GCJ'. + 's5S60AAAAASUVORK5CYII=' ; + + //========================================================== + // File: bxs_gray.png + //========================================================== + $this->imgdata_xsmall[3][0]= 492 ; + $this->imgdata_xsmall[3][1]= + 'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAABI1'. + 'BMVEX///8AAAD8EAD8IAD8NAD8RAD8VAAYGBi/v7+goKCCgoJk'. + 'ZGRGRkb8yAD83AD87AD8/AD4+ADo+ADY+ADI+AC0+ACk+ACU+A'. + 'CE+AB0/ABk/ABU/ABE/AAw/AAg/AAQ/AAA/AAA+AAA6BAA2CAA'. + 'yDQAtEQApFQAlGQAhHQAdIgAZJgAVKgARLgAMMgAINwAEOwAAP'. + 'wAAPgIAPAQAOgYAOAkANgsANA0AMg8AMBEALhMALBUAKhcAKBo'. + 'AJhwAJB4AIiAAID////4+Pjy8vLs7Ozm5ubg4ODa2trT09PNzc'. + '3Hx8fBwcG7u7u1tbWurq6oqKiioqKcnJyWlpaQkJCJiYmDg4N9'. + 'fX13d3dxcXFra2tkZGReXl5YWFhSUlJMTExGRkZAQEA1BLn4AA'. + 'AAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxEA'. + 'AAsRAX9kX5EAAAAHdElNRQfTAwkUKC74clmyAAAAQklEQVR4nG'. + 'NgQAVBYVCGt5dXYEQ0mOnp5h4QFgVmeri6+4dHxYMVeHoFRUTH'. + 'gTUFBIZBWAwMkZEx8bFQM2Lj0UwHANc/DV6yq/BiAAAAAElFTk'. + 'SuQmCC' ; + + //========================================================== + // File: bxs_graypurple.png + //========================================================== + $this->imgdata_xsmall[4][0]= 542 ; + $this->imgdata_xsmall[4][1]= + 'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAABSl'. + 'BMVEX////////11P/MqdvKrNfAwMC+u7+9u7+4rr24lsi3rby3'. + 'lMe1rLq1o720q7i0oL20ksSzoryyqbaykMGxlb2wkL+vnbiujb'. + '2sjLuri7qpl7GoirWoibenmK2mla6mjLKmhrSllauki7CjhrCj'. + 'hLGihLChg6+ggq2fkqadkKOcfqqai6Gag6WYe6WXeqSWeaOTd6'. + 'CTd5+Rdp6RdZ6RdZ2Qg5eOc5qMcpiLcZeJb5WIbpOHbZKGbJGE'. + 'a4+CaY2AZ4t/Z4p/Zop/Zol+Zol7ZIZ6Y4V5YoR1ZH11X391Xn'. + '9zXX1yXXtxXHtvWnluWXhsV3VqVnNpVXJoVHFnU3BmUm9jUGth'. + 'VGdgTmheTGZcS2RcSmRaSWJYR19XRl5SQllRQlhQQVdPQFZOP1'. + 'VLPlFJO09IPE5IOk5FOEtEN0lDOEpDOElDNklCNkc/M0XhbrfD'. + 'AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACx'. + 'EAAAsRAX9kX5EAAAAHdElNRQfTAwkUKCgREfyHAAAATUlEQVR4'. + 'nGNgQAEcIko8EBY3M5Ougy+IxSXMwmTsFsAHZMqrSRvZB0W7A5'. + 'k6FlYugXEZICaPr394Um4uSAFDRFRCbm4uxAihsDAhVOMBHT0L'. + 'hkeRpo8AAAAASUVORK5CYII=' ; + + //========================================================== + // File: bxs_red.png + //========================================================== + $this->imgdata_xsmall[5][0]= 357 ; + $this->imgdata_xsmall[5][1]= + 'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAk1'. + 'BMVEX////////GxsbGra3/xsbOhITWhIT/hIT/e3v/c3P/a2vG'. + 'UlK1SkrOUlL/Y2PWUlLGSkrnUlLeSkrnSkr/SkqEGBj/KSmlGB'. + 'jeGBjvGBj3GBj/EBD/CAj/AAD3AADvAADnAADeAADWAADOAADG'. + 'AAC9AAC1AACtAAClAACcAACUAACMAACEAAB7AABzAABrAABjAA'. + 'BuukXBAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZ'. + 'cwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAwkUIyjy5SVMAAAAS0'. + 'lEQVR4nGNgQAFsUpJsEJastIi8ijpYTJaDU0FVgxXIlJKVUVDR'. + '0BYHMiUUlVQ1dPVBTDZ1dS1dAwOQAgYtbSDLAGIEq6goK6rxAD'. + 'yXBg73lwGUAAAAAElFTkSuQmCC' ; + + //========================================================== + // File: bxs_yellow.png + //========================================================== + $this->imgdata_xsmall[6][0]= 414 ; + $this->imgdata_xsmall[6][1]= + 'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAzF'. + 'BMVEX///////+/v79zYwCMewDOxoTWzoTezkr/5wj/5wDnzgDe'. + 'xgC1pQCtnACllACcjACUhABjWgDGvVK1rUrOxlLGvUqEexilnB'. + 'jv3hj35xj/7wj/7wD35wDv3gDn1gDezgDWxgDOvQDGtQC9rQCE'. + 'ewB7cwBzawBrYwDWzlLn3lLe1krn3kre1hi9tQC1rQCtpQClnA'. + 'CclACUjACMhAD/9wC/v7///8bOzoT//4T//3v//3P//2v//2Pn'. + '50r//0r//yn39xj//xD//wBjYwDO8noaAAAAAXRSTlMAQObYZg'. + 'AAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAH'. + 'dElNRQfTAwkUIzoBXFQEAAAAS0lEQVR4nGNgQAFsDhJsEJaTo5'. + '2skj5YzMnSSk7ZwBzIlOSUklPiMxYHMnW4FXT5VNVBTDZeXiNV'. + 'QUGQAgYBYyBLEGIEq5gYK6rxAH4kBmHBaMQQAAAAAElFTkSuQm'. + 'CC' ; + + //========================================================== + // File: bxs_greenblue.png + //========================================================== + $this->imgdata_xsmall[7][0]= 410 ; + $this->imgdata_xsmall[7][1]= + 'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAxl'. + 'BMVEX///////+/v79znJQhSkJ7raU5hHtjraVKnJRCjIRClIyU'. + '9++E595avbVaxr2/v7+ctbWcvb17nJxrjIx7paUxQkK9//+Mvb'. + '17ra2Evb17tbVCY2MQGBiU5+ec9/eM5+d71tZanJxjra1rvb1j'. + 'tbVSnJxara1rzs5jxsZKlJRChIQpUlIhQkJatbVSpaU5c3MxY2'. + 'MYMTEQISFavb1Sra1KnJxCjIw5e3sxa2spWlpClJQhSkoYOTkp'. + 'Y2MhUlIQKSkIGBgQMTH+e30mAAAAAXRSTlMAQObYZgAAAAFiS0'. + 'dEAIgFHUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElNRQfT'. + 'AwkUJy5/6kV9AAAATUlEQVR4nGNgQAGCyuyCEJaGugKHviVYzF'. + 'hO3sxCWwDIVNLTM9PXtpEGMhW12Cy0DR1ATEFLSxZ7BweQAgYd'. + 'HUMHBweIEQKiogKoxgMAo/4H5AfSehsAAAAASUVORK5CYII=' ; + + //========================================================== + // File: bxs_purple.png + //========================================================== + $this->imgdata_xsmall[8][0]= 364 ; + $this->imgdata_xsmall[8][1]= + 'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAnF'. + 'BMVEX///////+/v7/Gvca9rb3Grcb/xv+1hLWte629hL21e7XG'. + 'hMbWhNbOe87We9b/hP//e/97OXv/c///a///Y/+cOZz/Sv/WOd'. + 'bnOefvOe//Kf9jCGNrCGv/EP//CP/nCOf/AP/3APfvAO/nAOfe'. + 'AN7WANbOAM7GAMa9AL21ALWtAK2lAKWcAJyUAJSMAIyEAIR7AH'. + 'tzAHNrAGtjAGPP1sZnAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgF'. + 'HUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAwkUIj'. + 'mBTjT/AAAASUlEQVR4nGNgQAGskhKsEJaCrJiSuhZYTEFASFlD'. + 'GyQuqSCnrK6tJwpkiquoamgbGIGYrFpaugbGxmCNunpAljHECB'. + 'ZBQRZU4wFSMAZsXeM71AAAAABJRU5ErkJggg==' ; + + //========================================================== + // File: bxs_green.png + //========================================================== + $this->imgdata_xsmall[9][0]= 370 ; + $this->imgdata_xsmall[9][1]= + 'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAn1'. + 'BMVEX///////+/v7+/v7/G/8aUxpSMvYyUzpSMzoyM1oxarVqE'. + '/4R7/3tavVpKnEpaxlpz/3Nr/2tKtUpj/2Na51pKzkpK1kpK50'. + 'pK/0oYcxgp/ykYlBgY3hgY7xgY9xgQ/xAI/wgA/wAA9wAA7wAA'. + '5wAA3gAA1gAAzgAAxgAAvQAAtQAArQAApQAAnAAAlAAAjAAAhA'. + 'AAewAAcwAAawAAYwA0tyxUAAAAAXRSTlMAQObYZgAAAAFiS0dE'. + 'AIgFHUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAw'. + 'kUKBrZxq0HAAAATElEQVR4nGNgQAGccrIcEJaivISyhjaIxa7I'. + 'I6CiqcMKZMopKqho6OhLA5kyqmqaOobGICartraeoYkJSAGDnj'. + '6QZQIxgk1Skg3VeABlVgbItqEBUwAAAABJRU5ErkJggg==' ; + + //========================================================== + // File: bxs_darkgreen.png + //========================================================== + $this->imgdata_xsmall[10][0]= 563 ; + $this->imgdata_xsmall[10][1]= + 'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAABX1'. + 'BMVEX////////l/+nAwMC86r+8wb28wby8wLy78sCzw7SywrSx'. + 'wLKwvrGuvK+syK+ryq2rx62n36ym3aumxKmk2qij0Keh16ahva'. + 'Og1aSguKKe06KeuaCetZ+d0KGdtZ+bz6Cay56ZyZ2Zwp2Zr5qZ'. + 'rpqYwJuXyZuXrJmVw5mUxZiTxJeTw5eTq5WRwJWPtJKOvZKKuI'. + '6Kt42Kn4yJt42ItIuGsomFsYmEsIiEr4eDr4eBrIR/qoN+qIJ8'. + 'poB7pH56o356on14nnt2nXl0mndzmnZzmXZymHVwlXNvlHJukn'. + 'FtiHBqjm1qjW1oi2toiWpniWplh2hlhmdkhWdig2VggGNgf2Je'. + 'fmFdfGBde19bbl1aeFxXdFpWclhVclhVcVdUcFZTb1VSbVRQal'. + 'JPaVFKY0xKYkxJYUtIYEpHX0lEWkZCWERCV0NCVkM/U0A+U0A+'. + 'UUA+UEA9Uj89UT48Tj45TDvewfrHAAAAAXRSTlMAQObYZgAAAA'. + 'FiS0dEAIgFHUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElN'. + 'RQfTAwkUKCFozUQjAAAATUlEQVR4nGNgQAGcoqrcEJYQB5OhSw'. + 'CIxSXGwWThGcIDZCppK5o7hyV6AZl6NnbuoSmFICZ3YHB0RkkJ'. + 'SAFDbEJaSUkJxAjeyEheVOMBQj4MOEkWew4AAAAASUVORK5CYI'. + 'I=' ; + + //========================================================== + // File: bxs_cyan.png + //========================================================== + $this->imgdata_xsmall[11][0]= 530 ; + $this->imgdata_xsmall[11][1]= + 'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAABPl'. + 'BMVEX////////F///AwMCvxsaC1NSC0dGCz8+CzMyA//94//91'. + '//9q//9j//9X4uJX09NXz89Xx8dXxMRL//9L5uZL3d1L2NhLxs'. + 'ZLt7cv//8e9fUe8fEe7u4e398epqYehoYX//8L+PgK//8F9fUE'. + '/v4E5+cEb28EZ2cC//8C/v4C/f0CzMwCrq4Cjo4CdXUCaWkCZW'. + 'UB/PwA//8A/f0A+/sA8/MA7e0A7OwA6+sA5eUA5OQA4uIA4eEA'. + '3NwA2toA2NgA1dUA09MA0tIA0NAAysoAxsYAxcUAxMQAv78Avr'. + '4AvLwAtrYAtbUAs7MAsLAAra0Aq6sAqKgApaUApKQAoqIAoKAA'. + 'n58AmpoAlZUAk5MAkpIAkJAAj48AjIwAiYkAh4cAf38AfX0Ae3'. + 'sAenoAcnIAcHAAa2sAaWkAaGgAYmIUPEuTAAAAAXRSTlMAQObY'. + 'ZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAA'. + 'AHdElNRQfTAwkUKQFKuFWqAAAATUlEQVR4nGNgQAGsUjJsEJaR'. + 'grC5qz9YzIiL28YriB3IlDZRsnYNiZUDMmXtHT2CE9JBTDb/wI'. + 'jkzEyQAoaomMTMzEyIERzy8hyoxgMAN2MLVPW0f4gAAAAASUVO'. + 'RK5CYII=' ; + + //========================================================== + // File: bxs_orange.png + //========================================================== + $this->imgdata_xsmall[12][0]= 572 ; + $this->imgdata_xsmall[12][1]= + 'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAABaF'. + 'BMVEX//////////8X/3oD/3nj/1HX/0Gr/xGP/rkv/gBf+iS/2'. + 'bAL1agDxaQDuZwDrZwLpZQDmZQLlZADjcx7gZATeYQDdZgraXw'. + 'DZXwHYXgDXiEvXZAvUjlfUXwXTjVfTbR7ShUvRbR7RWwDMWQDL'. + 'WADKooLKWADJoYLJgkvHWATGoILFn4LFgEvFVgDEZx7EVQDDt6'. + '/DVQDCt6/CnoLChlfCVADAwMC+hFe+UgC8UgC6UQC4gVe4UAC3'. + 'gVe3UAC1gFe1eUu1TwC1TgCzTgCwTQKuTACrSgCqSgCpSgCpSQ'. + 'CodEulSACkRwCiRgCdRACcRACaQwCYQgCWQgKVQQCVQACUQACS'. + 'UR6RPwCOPgCNPQCLPACKPACJOwCEOQCBOAB+NwB9NgB8NgB7NQ'. + 'B6NwJ4NAB3RR52MwB0MgBuLwBtLwBsLwBqLgBpLQBkLQJiKgBh'. + 'KgBgKwRcKABbKQJbJwBaKQRaJwBYKAJVJQDZvdIYAAAAAXRSTl'. + 'MAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxEAAAsRAX9k'. + 'X5EAAAAHdElNRQfTAwkUJBSSy88MAAAATUlEQVR4nGNgQAGqwo'. + 'paEBYPJ4eKezCIpc7HwmrqG6ENZMpLihm6RaWEAZl6Vo7ekRnF'. + 'IKZWSHhcTnk5SAFDfFJWeXk5xAjj1FRjVOMBeFwNcWYSLjsAAA'. + 'AASUVORK5CYII=' ; + + //========================================================== + // File: bxs_lightblue.png + //========================================================== + $this->imgdata_xsmall[13][0]= 554 ; + $this->imgdata_xsmall[13][1]= + 'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAABVl'. + 'BMVEX////////d///AwMC7wcS08P+y+P+xxdCwxM+uws2twMur'. + 'vsinzNynytylzuKhyN6e5v6d5P+d1fOcwNWcu8ub4f+at8iZ3v'. + '+ZvdGY2/yW2f+VscGU1vuT1fqTr72Sx+SSxeKR0fWRz/GPz/OP'. + 'rr+OyeqMy+6Myu2LyeyKxueJudSGw+SGorGDvt+Cvd6CvN2Aud'. + 'p+uNd+t9Z9tdV8tdR8tNN6sc94r813rct2q8h0qcZ0qMVzp8Rx'. + 'o8Bwor5tn7ptnrptnrlsnbhqmbRpmbNpi51ol7Flkqtkkqtkka'. + 'pjj6hijaRhjaZgi6NfiqJfiaFdh55bhJtag5pZgphYgJZYf5VX'. + 'cn9Ve5FSeI1RdopRdYlQdYlPc4dPcoZPcoVNcINLboBLbH9GZn'. + 'hGZXdFZHZEY3RDYnJCXW4/W2s/WWg+Wmo7VmU7VGM7U2E6VGM6'. + 'VGI5UV82T1wGxheQAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHU'. + 'gAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAwkUJziL'. + 'PvAsAAAATUlEQVR4nGNgQAHsQgqcEJYgG5Oegy+IxSHOxmTiFs'. + 'gFZMprKBnbB8e7AplaFlbOQUl5ICanX0BEWmEhSAFDVGxKYWEh'. + 'xAjusDBuVOMBJO8LrFHRAykAAAAASUVORK5CYII=' ; + + //========================================================== + // File: bxs_darkgray.png + //========================================================== + $this->imgdata_xsmall[14][0]= 574 ; + $this->imgdata_xsmall[14][1]= + 'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABm'. + 'JLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsRAAALEQF/ZF+RAAAB'. + 'iElEQVR42k3QPU8TYRwA8P//ebkXrgdIColXRAOEkJqbaExMut'. + 'DBhE1GNjYHPg+DG6ODiU6QOLjVxITBcFKBYCstlAC2Bz17fe76'. + 'vLD6+wg/1FpTRFR5lpaub/u1eGBGaAT4HneD4OlXx7avtDYUjT'. + 'HQabd2Ti8e3vVSKzxrtHS32wIpFVldno22Nqvvg2Bhl0gp/aNm'. + 'vJ3qqXAtLIva+ks1H0wqlSXi4+d6+OFTfRsAfHJx2d1od24rZP'. + 'xP2HzopINr1mkesX7ccojqif0v9crxWXODZTno3+dNGA7uWLsd'. + 'mUYU4fHJCViMG9umLBmM4L6fagZGg9QKfjZ+Qfy3C3G/B3mugF'. + 'IHHNcDf64E3KJALApk2p8CSolUUqLjFkyxOGMsTtFyJ+Wz57NQ'. + '8DghS4sLB0svioeZZo7nPhFoUKZDIVFbglkTTnl5/rC8snjAkJ'. + 'Bk/XV5LxHC/v7tR8jzTFPbg8LENK9WX0Vv31T2AEmCSmlKCCoh'. + 'ROnP1U1tPFYjJBRcbtzSf+GPsFTAQBq1n4AAAABKdEVYdHNpZ2'. + '5hdHVyZQBiYzYyMDIyNjgwYThjODMyMmUxNjk0NWUzZjljOGFh'. + 'N2VmZWFhMjA4OTE2ZjkwOTdhZWE1MzYyMjk0MWRkM2I5EqaPDA'. + 'AAAABJRU5ErkJggg==' ; + } +} + +?> \ No newline at end of file diff --git a/gosa-core/include/jpgraph/imgdata_bevels.inc.php b/gosa-core/include/jpgraph/imgdata_bevels.inc.php new file mode 100644 index 000000000..2cd545f74 --- /dev/null +++ b/gosa-core/include/jpgraph/imgdata_bevels.inc.php @@ -0,0 +1,104 @@ + 'imgdata'); + + protected $colors = array('green','purple','orange','red','yellow'); + protected $index = array('green'=>1,'purple'=>4,'orange'=>2,'red'=>0,'yellow'=>3); + protected $maxidx = 4 ; + + protected $imgdata ; + + function __construct() { + //========================================================== + // File: bullets_balls_red_013.png + //========================================================== + $this->imgdata[0][0]= 337 ; + $this->imgdata[0][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAM1'. + 'BMVEX////////27t/f3+LFwcmNxMuxm62DmqKth1VpZmIWg6fv'. + 'HCa7K0BwMEytCjFnIyUlEBg9vhQvAAAAAXRSTlMAQObYZgAAAA'. + 'FiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElN'. + 'RQfTAxcBNhk+pYJVAAAAl0lEQVR4nE2Q2xLDIAgFHUWBKJf//9'. + 'oekmbafVDZARRbK/pYTKP9WNcNv64zzUdd9BjmrgnsVXRNSzO3'. + 'CJ5ahdhy0XKQkxld1kxb45j7dp0x2lBNOyVgQpMaoadX7Hs7zr'. + 'P1yKj47DKBnKaBKiSAkNss7O6PkMx6kIgYXISQJpcZCqdY6KR+'. + 'J1PkS5Xob/h7MNz8x6D3fz5DKQjpkZOBYAAAAABJRU5ErkJggg'. + '==' ; + + //========================================================== + // File: bullets_balls_green_013.png + //========================================================== + $this->imgdata[1][0]= 344 ; + $this->imgdata[1][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAM1'. + 'BMVEX////////27t/e3+K3vriUub/Dm18j4xc3ob10k0ItqQlU'. + 'e5JBmwpxY1ENaKBgUh0iHgwsSre9AAAAAXRSTlMAQObYZgAAAA'. + 'FiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElN'. + 'RQfTAxcBNTfJXtxZAAAAnklEQVR4nE2QWY4EMQhDUVhSIRC4/2'. + 'kbaqLp9p+f2AxAayAzDfiK9znPORuvH0x8Ss9z6I9sHp6tcxE9'. + 'nLmWmebmt5F5p2AR0+C9AWpLBjXRaZsCAT3SqklVp0YkAWaGtd'. + 'c5Z41/STYpPzW7BjyiRrwkVmQto/Cw9tNEMvsgcekyCyFPboIu'. + 'IsuXiKffYB4NK4r/h6d4g9HPPwCR7i8+GscIiiaonUAAAAAASU'. + 'VORK5CYII=' ; + + //========================================================== + // File: bullets_balls_oy_035.png + //========================================================== + $this->imgdata[2][0]= 341 ; + $this->imgdata[2][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAM1'. + 'BMVEX////////27t/f3+K5tbqNwcjnkjXjbxR2i5anfEoNkbis'. + 'PBxpU0sZbZejKgdqIRIlERIwYtkYAAAAAXRSTlMAQObYZgAAAA'. + 'FiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElN'. + 'RQfTAxcBNgK0wEu5AAAAm0lEQVR4nE3QVxIEIQgEUErAgTHA/U'. + '+7zbipf9RXgoGo0liMmX6RdSPLPtZM9F4LuuSIaZtZWffiU6Iz'. + 'Y8SOMF0NogBj30ioGRGLZgiPvce1TbIRz6oBQEbOFGK0rIoxrn'. + '5hDomMA1cfGRCaRVhjS3gkzheM+4HtnlkXcvdZhWG4qZawewe6'. + '9Jnz/TKLB/ML6HUepn//QczazuwFO/0Ivpolhi4AAAAASUVORK'. + '5CYII=' ; + + //========================================================== + // File: bullets_balls_oy_036.png + //========================================================== + $this->imgdata[3][0]= 340 ; + $this->imgdata[3][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAM1'. + 'BMVEX////////27t/e3+LO3hfYzz65ubiNwci6uQ12ipadgVGa'. + 'fwsNkbhnVkcaZ5dwSA8lFg7CEepmAAAAAXRSTlMAQObYZgAAAA'. + 'FiS0dEAIgFHUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElN'. + 'RQfTAxcCBySi1nevAAAAjElEQVR4nFXPWw7EIAgFUNMoCMhj/6'. + 'staKczc/2RkwjS2glQ+w3YytgXCXCZpRo8gJdGxZadJws13CUP'. + '4SZI4MYiUxypeiGGw1XShVBTNN9kLXP2GRrZPFvKgd7z/sqGGV'. + '7C7r7r3l09alYN3iA8Yn+ImdVrNoEeSRqJPAaHfhZzLYwXstdZ'. + 'rP3n2bvdAI4INwtihiwAAAAASUVORK5CYII=' ; + + //========================================================== + // File: bullets_balls_pp_019.png + //========================================================== + $this->imgdata[4][0]= 334 ; + $this->imgdata[4][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAM1'. + 'BMVEX////+/v7i4eO/w8eHxcvKroNVormtfkjrMN2BeXQrepPc'. + 'Esy4IL+OFaR7F25LHF8mFRh5XXtUAAAAAXRSTlMAQObYZgAAAA'. + 'FiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElN'. + 'RQfTAxcBNgkjEpIxAAAAlElEQVR4nE2QAQ7FIAhDDTAVndL7n3'. + 'ZV/7JfEwMvFIWUlkTMVNInbVv5ZeJqG7Smh2QTBwJBpsdizAZP'. + '5NyW0awhK8kYodnZxS6ECvPRp2sI+y7PBv1mN02KH7h77QCJ8D'. + '4VvY5NUgEmCwj6ZMzHtJRgRSXwC1gfcqJJH0GBnSnK1kUQ72DY'. + 'CPBv+MCS/e0jib77eQAJxwiEWm7hFwAAAABJRU5ErkJggg==' ; + + } +} + + +?> \ No newline at end of file diff --git a/gosa-core/include/jpgraph/imgdata_diamonds.inc.php b/gosa-core/include/jpgraph/imgdata_diamonds.inc.php new file mode 100644 index 000000000..533cd4753 --- /dev/null +++ b/gosa-core/include/jpgraph/imgdata_diamonds.inc.php @@ -0,0 +1,177 @@ +'imgdata'); + protected $colors = array('lightblue','darkblue','gray', + 'blue','pink','purple','red','yellow'); + protected $index = array('lightblue' =>7,'darkblue'=>2,'gray'=>6, + 'blue'=>4,'pink'=>1,'purple'=>5,'red'=>0,'yellow'=>3); + + protected $maxidx = 7 ; + protected $imgdata ; + + function __construct() { + //========================================================== + // File: diam_red.png + //========================================================== + $this->imgdata[0][0]= 668 ; + $this->imgdata[0][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAAA/F'. + 'BMVEX///////+cAAD/AADOAABjAABrAADWGBjOCAj/CAj/GBj/'. + 'EBCcCAiMOTl7KSl7ISFzGBilGBjOEBBrCAjv5+eMQkK1QkKtMT'. + 'GtKSnWKSn/KSlzEBCcEBDexsb/tbXOe3ucWlqcUlKUSkr/e3vn'. + 'a2u9UlL/a2uEMTHeUlLeSkqtOTn/UlL/SkrWOTn/QkL/OTmlIS'. + 'H/MTH/ISH39/f/9/f35+fezs7/5+fvzs7WtbXOra3nvb3/zs7G'. + 'nJzvtbXGlJTepaW9jIy1hITWlJS1e3uta2ulY2P/lJTnhITne3'. + 'vGY2O9Wlr/c3PeY2O1Skr/Y2P/WlreQkLWISGlEBCglEUaAAAA'. + 'AXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAA'. + 'sSAdLdfvwAAAAHdElNRQfTAwsWEw5WI4qnAAABGUlEQVR4nHXQ'. + '1XLDMBAFUKUCM1NiO8zcpIxpp8z0//9SWY7b2LHv6EU6s1qtAN'. + 'iMBAojLPkigpJvogKC4pxDuQipjanlICXof1RQDkYEF21mKIfg'. + '/GGKtjAmOKt9oSyuCU7OhyiDCQnjowGfRnooCJIkiWJvv8NxnG'. + 'nyNAwFcekvZpPP3mu7Vrp8fOq8DYbTyjdnAvBj7Jbd7nP95urs'. + '+MC2D6unF+Cu0VJULQBAlsOQuueN3Hrp2nGUvqppemBZ0aU7Se'. + 'SXvYZFMKaLJn7MH3btJmZEMEmGSOreqy0SI/4ffo3uiUOYEACy'. + 'OFopmNWlP5uZd9uPWmUoxvK9ilO9NtBo6mS7KkZD0fOJYqgGBU'. + 'S/T7OKCAA9tfsFOicXcbxt29cAAAAASUVORK5CYII=' ; + + //========================================================== + // File: diam_pink.png + //========================================================== + $this->imgdata[1][0]= 262 ; + $this->imgdata[1][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbBAMAAAB/+ulmAAAAEl'. + 'BMVEX///+AgID/M5n/Zpn/zMz/mZn1xELhAAAAAXRSTlMAQObY'. + 'ZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAA'. + 'AHdElNRQfTAwsWEi3tX8qUAAAAbUlEQVR4nFXJwQ3AMAhDUdRm'. + 'kKojuCswABf2X6UEEiC+WF+PyDfoGEuvwXogq3Rk1Y6W0tBSG8'. + '6Uwpla6CmJnpoYKRsjjb/Y63vo9kIkLcZCCsbGYGwMRqIzEp1R'. + 'OBmFk9HQGA2N0ZEIz5HX+h/jailYpfz4dAAAAABJRU5ErkJggg'. + '==' ; + + //========================================================== + // File: diam_blue.png + //========================================================== + $this->imgdata[2][0]= 662 ; + $this->imgdata[2][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAAA+V'. + 'BMVEX///+AgIAAAJwAAP8AAM4AAGMAAGsQEP8YGHMQEHMYGP8Q'. + 'EKUICJwICM5KSpQxMYQpKXsYGNYQEM4ICGsICP97e85aWpw5OY'. + 'xSUv85ObVCQt4xMa0pKa0hIaUpKf+9vd6EhLVra+dzc/9SUr1r'. + 'a/9aWt5SUt5CQrVaWv9KSv8hIXs5Of8xMf8pKdYhIdYYGKUhIf'. + '/Ozs739//v7/fn5+/v7//n5/fW1ufOzufOzu/W1v+trc69veel'. + 'pc6trd6UlMa9vf+MjL21tfe1tf+UlNZzc61ra6Wlpf+EhOeMjP'. + '9ra8ZSUpyEhP9CQoxKSrVCQv85Od4xMdYQENZnJhlWAAAAAXRS'. + 'TlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAd'. + 'LdfvwAAAAHdElNRQfTAwsWEx3Snct5AAABFklEQVR4nHXR5XbD'. + 'IBgGYM6AuHsaqbvOfeuknev9X8xISbplSd5/8JyXwwcA/I0AKm'. + 'PFchVBdvKNKggKQx2VIoRwMZihMiQE49YUlWBCcPL0hYq4ITh+'. + 'qKECUoLDZWqoQNA766F/mJHlHXblPJJNiyURhM5eU9cNw5BlmS'. + 'IrLOLxhzfotF7vwO2j3ez2ap/TmW4AIM7DoN9+tu+vLk6Pdg9O'. + '6ufXjfXLm6pxPACSJIpRFAa+/26DhuK6qjbiON40k0N3skjOvm'. + 'NijBmchF5mi+1jhQqDmWyIzPp1hUlrv8On5l+6mMm1tigFNyrt'. + '5R97g+FKKyGKkTNKesXPJTZXOFIrUoKiypcTQVHjK4g8H2dWEQ'. + 'B8bvUDLSQXSr41rmEAAAAASUVORK5CYII=' ; + + //========================================================== + // File: diam_yellow.png + //========================================================== + $this->imgdata[3][0]= 262 ; + $this->imgdata[3][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbBAMAAAB/+ulmAAAAEl'. + 'BMVEX///+AgIBmMwCZZgD/zADMmQD/QLMZAAAAAXRSTlMAQObY'. + 'ZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAA'. + 'AHdElNRQfTAwsWEwcv/zIDAAAAbUlEQVR4nFXJwQ3AMAhDUdRm'. + 'kKojuCswABf2X6UEEiC+WF+PyDfoGEuvwXogq3Rk1Y6W0tBSG8'. + '6Uwpla6CmJnpoYKRsjjb/Y63vo9kIkLcZCCsbGYGwMRqIzEp1R'. + 'OBmFk9HQGA2N0ZEIz5HX+h/jailYpfz4dAAAAABJRU5ErkJggg'. + '==' ; + + //========================================================== + // File: diam_lightblue.png + //========================================================== + $this->imgdata[4][0]= 671 ; + $this->imgdata[4][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAAA/1'. + 'BMVEX///+AgIAAnP8A//8Azv8AY/8Aa/8I//8Y1v8Izv8Y//8Q'. + '//8InP8Qzv8Ypf85jP8he/8Yc/8Ia/8pe/8p//8p1v9Ctf8xrf'. + '8prf8QnP8Qc/9CjP+1//97//9r//9S//9K//9C//85//8x//8h'. + '//9r5/9K3v9S3v851v97zv9Svf85rf8hpf/G3v9SnP9anP9KlP'. + '8xhP/n7//v7+f3///n///O//+U//9z//9j//9a//975/9C3v8h'. + '1v+E5/+17/9j3v/O7//n9/+95/+l3v9jxv+U1v8Qpf9avf9Ktf'. + '+Uxv+11v97tf9rrf+cxv+Mvf9jpf+tzv+Etf/O3v/39/8Akkxr'. + 'AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACx'. + 'IAAAsSAdLdfvwAAAAHdElNRQfTAwsWEiHk6Ya/AAABGUlEQVR4'. + 'nHXQ13KDMBAF0J2o0E01GHDvJa7p3em95/+/JQJMYjDc0Yt0Zr'. + 'VaAaxHgtxwbSGPkGQpOIeQ2ORxJiJmNWYZyAhZR0WcgQGhViU0'. + 'nEGoedDHGxgRapRPcRpXhOr7XZzCmLjaXk9IIjvkOEmSRLG62+'. + 'F5XlEElhA5sW21GvXj6mGlDBfnJ51lr9svnvEKwH1hu2QPbwd3'. + 'N9eXVzuL7/Hn29frdKaamgcgy67L3HFG9gDefV+dm5qme4YRXL'. + 'oVR374mRqUELZYosf84XAxISFRQuMh4rrH8YxGSP6HX6H97NNQ'. + 'KEAaR08qCeuSnx2a8zIPWqUowtKHSRK91rAw0elmVYQFVc8mhq'. + '7p5RD7Ps3IIwA9sfsFxFUX6eZ4Zh4AAAAASUVORK5CYII=' ; + + //========================================================== + // File: diam_purple.png + //========================================================== + $this->imgdata[5][0]= 657 ; + $this->imgdata[5][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAAA/F'. + 'BMVEX///////8xAP/OAP+cAP9jAP9rAP+cCP85CP/OEP9SKf/O'. + 'CP9CEP9zGP9rCP+lGP/WOf/WIf9KIf9jOf+MQv+EMf97If9zEP'. + '+1Sv+lIf/ne//eUv/na//n5//Oxv/Wzv+chP9zUv97Wv9rQv9a'. + 'Mf9KGP/v5/+te/97Kf+9Y/+tOf+tKf+lEP/vtf/WMf/WKf/v7+'. + 'f39/+tnP+9rf9rSv9jQv9CGP+ljP+EY//Gtf+tlP+Ma/9zSv/e'. + 'zv+UUv+9lP+cWv+lY/+cUv+MOf+EKf+UQv/Opf/OhP/Ga/+1Qv'. + '/Oe/+9Uv/ntf/eWv/eSv/WGP/3zv/vlP/WEP//9/+pL4oHAAAA'. + 'AXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAA'. + 'sSAdLdfvwAAAAHdElNRQfTAwsWEjX+M1LCAAABDklEQVR4nHXQ'. + '1bLDIBAGYFqIEW+ksbr7cXd3ff93OUCamdOE/Mxw882yywLwPz'. + '+gNKotlRFUVnNUQlCxTMRFCKEdE+MgpJaEiIOU4DKaoSIygtb3'. + 'FBUQrm3xjPK4JvXjK0A5hFniYSBtIilQVYUm+X0KTVNiYah+2q'. + 'ulFb8nUbSovD2+TCavwXQWmnMA6ro+di+uR5cPzfPhVqPV3N1p'. + 'n3b3+rimAWAYhP3xnXd7P6oc9vadPsa1wYEs00dFQRAFehlX21'. + '25Sg9NOgwF5jeNTjVL9om0TjDc1lmeCKZ17nFPzhPtSRt6J06R'. + 'WKUoeG3MoXRa/wjLHGLodwZcotPqjsYngnWslRBZH91hWTbpD2'. + 'EdF1ECWW1SAAAAAElFTkSuQmCC' ; + + //========================================================== + // File: diam_gray.png + //========================================================== + $this->imgdata[6][0]= 262 ; + $this->imgdata[6][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbBAMAAAB/+ulmAAAAEl'. + 'BMVEX//////wAzMzNmZmbMzMyZmZlq4Qo5AAAAAXRSTlMAQObY'. + 'ZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAA'. + 'AHdElNRQfTAwsWExZFTxLxAAAAbUlEQVR4nFXJwQ3AMAhDUdRm'. + 'kKojuCswABf2X6UEEiC+WF+PyDfoGEuvwXogq3Rk1Y6W0tBSG8'. + '6Uwpla6CmJnpoYKRsjjb/Y63vo9kIkLcZCCsbGYGwMRqIzEp1R'. + 'OBmFk9HQGA2N0ZEIz5HX+h/jailYpfz4dAAAAABJRU5ErkJggg'. + '==' ; + + //========================================================== + // File: diam_blgr.png + //========================================================== + $this->imgdata[7][0]= 262 ; + $this->imgdata[7][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbBAMAAAB/+ulmAAAAEl'. + 'BMVEX///+AgIBmzP9m///M//+Z//8hMmBVAAAAAXRSTlMAQObY'. + 'ZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAA'. + 'AHdElNRQfTAwsWEwCxm6egAAAAbUlEQVR4nFXJwQ3AMAhDUdRm'. + 'kKojuCswABf2X6UEEiC+WF+PyDfoGEuvwXogq3Rk1Y6W0tBSG8'. + '6Uwpla6CmJnpoYKRsjjb/Y63vo9kIkLcZCCsbGYGwMRqIzEp1R'. + 'OBmFk9HQGA2N0ZEIz5HX+h/jailYpfz4dAAAAABJRU5ErkJggg'. + '==' ; + } +} + +?> \ No newline at end of file diff --git a/gosa-core/include/jpgraph/imgdata_pushpins.inc.php b/gosa-core/include/jpgraph/imgdata_pushpins.inc.php new file mode 100644 index 000000000..53e0b159a --- /dev/null +++ b/gosa-core/include/jpgraph/imgdata_pushpins.inc.php @@ -0,0 +1,517 @@ + 'imgdata_small', + MARK_IMG_SPUSHPIN => 'imgdata_small', + MARK_IMG_LPUSHPIN => 'imgdata_large'); + + protected $colors = array('blue','green','orange','pink','red'); + protected $index = array('red' => 0, 'orange' => 1, 'pink' => 2, 'blue' => 3, 'green' => 4 ) ; + protected $maxidx = 4 ; + protected $imgdata_large, $imgdata_small ; + + function __construct() { + + // The anchor should be where the needle "hits" the paper + // (bottom left corner) + $this->anchor_x = 0; + $this->anchor_y = 1; + + //========================================================== + // File: ppl_red.png + //========================================================== + $this->imgdata_large[0][0]= 2490 ; + $this->imgdata_large[0][1]= + 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABm'. + 'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'. + 'B3RJTUUH0wMKBh4Ryh89CgAACUdJREFUeJy9mNtTFFcexz+/7p'. + '4Lw1wZJKDGCAwmDAqUySamcCq1ed6k9mn3UfMP7F+1T3nYqn2J'. + 'lZdoDEjpbq0KG8EBFBFBEJye6Zmenkv32Ydu5GYiUMmeqq6uqT'. + '6Xz3zP73aOcIKmAQkIFyD3N/jrBPwlKjLQEglVlJKyUjR3u7cc'. + 'WLoP3/4dvv03LNrQ8I6x1rFbDML9kOmHvh7IRHU9JKmUSG8vpF'. + 'IoXX/TV0AiEM5A5jT0noFMFMJHXUt/d5f9TUAbhtQ3cPFruDog'. + '8klHMnmO0dGYe/myOJGINEwTz3F2higFXgy8PpAkOC+h8hoaCt'. + '4ppHFcQAWSgOQlyI/p+lUjmRxWAwNJd3xca/f34yoFi4tgmjtD'. + 'NIFkJ4xcgBCgVqEBFJ9DqcZea/gNAAVEg7AOGYnHe9XoaJd3+X'. + 'LISSSwnz6lsbKCZ9sHh4UVdBkwdA6cPwNnIfJPmC3Ctgft3wwQ'. + 'QPkvTZJJnbExzfvsM2nMzVG7e5fG48d4lnXwTwEYCjJxuHQBog'. + 'BHUfKkgAIIhiGk06hTp/Dm5qS1uYlXLvtWd4gPgIiCrAEcVckT'. + 'Ab5p7TaYJrK1hQaEenrwSiVfQdc91P0kSp7Ii89D5ksY/kAkLy'. + 'IZXFdXkQjS1YUSEbdcRu168V6+HTUNIKJDRwdE+sBIQmP9Ld59'. + 'bEBA3of4F/D+uXb7rGaaCSmXI3pPj64PDaHCYfEqFVSjgWo2D2'. + '73XlJNQTgCyQykIuBWoNKEeh1aLXBPBCggGdBOgxZVSjoajVhH'. + 'o5HWlIpq4bCQSgm9vXhK4ZZKh5SUYygp4J1EQVUD9xlU18BJQD'. + 'bUbJ5T5XJStyxN9fSI099P3baxV1dRloW2h2ivx/yakg2ot6F1'. + 'EkCa4G1D+zVEq5ArKTWM42Q6HUczQV7U66w9e0ZpdRXlOIQ5vF'. + 'VHUXILKify4jiEzkOqC3peQMoBQymFlMt4Dx6wUSxSsm2UZXEK'. + 'P30QvOUt8/2Sd78CdWwFDTA+gsw3cOlPcPUD+CQB52oQ21RKXM'. + 'eRhGXhOg7VoKrx8KuS4ygZhVg3ZI8FGIfwR9BVgAtfwxdXdP3L'. + '86nUR91dXelNXTeWWy10paQHX602YAP1ADASAL7LJvFtMpOCc0'. + 'cG3FHuGlz6Gr4YEpnoTCbzsdHRbOzy5RCRiLRMk5rjyOtAimwA'. + 'U4U3SurBN/0wnAASBCVDIKpB4kiAB5Ub0/UvO9LpPAMDGfn005'. + 'AxPCzxep3Q6iqPLUseBoufCZRsAE6g5g5kKIDfKUj3wnpAG8QB'. + '/Z1OIqANQuI65AtwNScyYXR2XlAXL2YZHzcklRKWl5GVFXFtGx'. + 'MoAiV/EQaAGH6BUQNWgQpwFngv+Ca8KUAQEBcwgTJHyMV7679R'. + 'XS8YqdSI6u/PMD5ukMtJY3GR2uQkr5aXeWVZOEALmA8WsIAxfL'. + 'd0goVLAdCOd+/YpgqeVtBv4yiA++q/RKKXixe7GB8PSyoljcVF'. + 'yg8fyubyMpulEk2lyAIfAAvAC+B+oOQFoAt/+0rAejB/EzjNri'. + 'vvqNnCd64jxcE39V8spnP+vMbAgDSePKE2NcXm06dslMuUlcID'. + 'TuFvqwXMBU8N39bGgRR+ki0Dz4L5DSAe9NGD7zq+6kcN1L6H2b'. + 'ao5WWaQHllRTafPmWrVMJUimoAQrBYJFjQwre7B6A8YAi8LCgD'. + '5DVo6/hbb/iHK1KggvFeD3hHziQKEMuiNTNDbXGRTdtmw7Iwla'. + 'KGH0oqwbscLOoG46rAY6AOzRhY74PT6QuUKEN4PegXxd/yEDTT'. + 'YMWOk+oEaLkuFdNk0zTZwjfkavDUArXWgGXgFb4dEShXhfYqlI'. + 'ow3w9rg3B6ED60IOOA5oEYQBrcpG+mj9bg0VG8GMJhVDZLyzAo'. + 'VSq8rFYxXXefcjVgG9+uisDrXUCApoKSBcUHMBmHhfcgNwhtD3'. + 'q9IG6Lr15b4OUTmPwBJt8JqGuapp05o0mhoHnptLQfPsR+8IBK'. + 'uYyNH3yr+B77LHheA3tK1Ta+IrMeTL2C6Xl48TOsNWDDgAz7s5'. + '/r+krP/eddCsbj8fDQ4GBm9MqVvvRXX2VULBayRGRzaYn1SoWa'. + 'UjgB4PIB5QK4ZgBXBKaAHxQsrED1H7CRgCUPwgHZDqACmhWwXv'. + '2aDRqGYeRyufS169cvThQKV88PDuYbW1vJ5VRK+5euqxWlPMdX'. + 'SRqgreHbZGN3ijfKBXBTAeh2Fdwi2MofshP/dvKwCmKhp4m83Y'. + 'vj8Xg4l8tlCoXC0MTExMTFkZE/1m37wvLGRvKRacoD1209E7Fc'. + 'pZwYREOQqEJ4z3HskHLsz4AoXykPIBSN0t3dTTQafROoHdumXC'. + '4fjoMiog0ODiauX7+eLxQKV3O53ETdti88nJnJ3rl505ifmWm3'. + 'arWSodR8GNbycDoNHy5C5jFold1k8d+DyvELNwg93d18/vnn9P'. + 'X1oes6nufx/Plz7t+/fxhQKSWJRCI5NjaWHxkZKdj1+sjSwkJm'. + '+uZN/dZ337VqCwullGUVdZjsgIUC5LqhrUPvCugWuApeApPAzY'. + 'PKHWyaphGNRunt7WVwcBARwfM8Ojo6sCzrMKBhGLphGFEF2Wq1'. + '2jc7M5OZ/vHH0MPbt93awkJJmeZsC6ZaMK3DCwvWdNioQUb5B6'. + 'AdBR+9SzkAz/NwHIeXL18iIui6TjgcJplMMjY2th8wHo+Hh4aG'. + 'MsPDw6fddru7+Phxx51bt/RbN260qwsLpZhlFZsw9QJ+2Pbrga'. + 'oJG2FY2oKwuTtVEz9uV34NbqdtbW0xPT1NNBoF4MyZM1y5coWu'. + 'rq5dQBHRcrlc4tq1a/l8Pj9RMs38ndu3Ez//9JNXLRZNyuXZJk'. + 'xVYKoExQpsK/+IaAuYb7no8zjC/R+A4zisrq7u+53NZjl16tQ+'. + 'QIlEIslsNpuPRCJXZ2dnh2/duNFRW1oy07a96MKd575yxRqU1B'. + '5vPMpF5HHa1tYW9+7do7Ozc/eQpZTSQ6FQt1Lq8pMnT/5w7969'. + 'nuLcXE1rNufO9fRMhlKpOyvt9qPtVmvb25fFfvvWbrepVCqHwo'. + 'xaX19vff/996ZhGC8qlkW9Wt1Onz073fXxxz+6MB+9e9dUjuO+'. + '7ebq9wLdB9hoNCrr6+s/4wf3FCJW3fPmTZhXsNWCprjuW66Dfr'. + '928KAfBhJAEgiJSLuzs7OSTqctoFkqlZRt26j/I+L/AGjPTN4d'. + 'Nqn4AAAAAElFTkSuQmCC' ; + + //========================================================== + // File: ppl_orange.png + //========================================================== + $this->imgdata_large[1][0]= 2753 ; + $this->imgdata_large[1][1]= + 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABm'. + 'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'. + 'B3RJTUUH0wMLFQ0VCkHCzQAACk5JREFUeJytmGtzG0d2hp8zNw'. + 'AEcRdJ6EJK9FL0CqZUm9jWbkwq3vhDstl8dmLvz8rP2H8Q75ZT'. + 'pkRfpLgqsS6WIFEKGYkiSBCDO+banQ8DUpRWEkklXQUUqlCDfv'. + 'rp857pgfAOQ4AMOJdg4R/hX96Hf06bvDc5iT07i8yeg8ksiIAI'. + '4TBi/ds9/vivD/njapNHvRBfHXMu410AM+BUoVSF05NQsi1sO4'. + '8402AXwLQTuP31OAZO2aG0MEn14iSlnI1z3LnMk8IZYJyBwjIs'. + '/TWsVIWPJkvMFS4zMfMhUp5BsoCpAAEBLYKaMFGn00jBxnvu02'. + '35+JHmSJEnBpQEcPo38MmCxd/nS9Ry71Ga/g1W9a8gn0GsHkgA'. + '6DGjxkqb5CoO+YxF3A3p+jGjQUzoK+L/V0ADzFMwtSR8eLbAr8'. + 'uXOTf9NzhTc0geSLUQcYHgYEH786RMg0zWJHV2Aitv4x/HpHVS'. + 'QA2YBqTTGIUq5qkPMWaWkVwPnPtAA/BevmZcjxaaUtHh8pJJGu'. + 'DpCB9FvT7A7YT7S3p5vFMNzmWo/O0MSx/Ms3TqI8r59zFTfUQe'. + 'I7SBODE3tnfoIxYnNHligwik0zAzDdVpyKbA8sff5YAeMEwgkV'. + 'cufQeTJzZoCsaFLKXPTnNpoUTNsSgJmNoGsuNQjIDwYD2HlnZy'. + 'k++yxTKXZfKTU8zOpjhneeQYkorSmGERtIlICBKRbLX+y98YN3'. + 'ADcNIm+bJD4U3pPnmbEaRgYVRTGBkDSSsmxKfY7ZLuDJA4hdjl'. + 'JEgyBB2SJOvQ9RzTpNKoEwNq0CNFvOXR3/HxMgYVPObaz8kPmh'. + 'hkEWMatAfRONGGvLizyOE9P8KkpwhPDAgQKJQbELUD0oOIhbbH'. + 'JeVTmowxjAgZutB5AoOngA+2DdYrcTyOyYZP9+QpBvI29vwEhb'. + 'It042BVQgDy9KTMfkwQG1A9ACCLlgBBGUwxxoc52WDh2ATyEPp'. + '1hoaPvrEBh0Dq5an9OUsl/9hylk5b5c+mowLc4E2Jtw4Eoljyf'. + 'ogA/AGEAagNRjGyUxOmEycyVA5EWDBxrmUp3ytLIv/NJP69Goh'. + '+9mFydIvS5PZYkvH1oY/RFtKymlwBFQAgQd+kAA6qSQ8pvn2mp'. + 'SkJkuVFHPHBnQMrEt5Sl+e4/Lvp51PF1PF5Xy6WMvOWZXMom8z'. + 'OZTQ8+j5sbQiMEwopsCIwRtBGIJSCdzbTGo9NimkDcgdC7Bg49'. + 'TG5n4/nfr0Si77WdYp1YzyZEkWPdteaEnB7pPqBTxuIf/VgciE'. + 'SgasCPwh+GNIkaNNag1RiPge5pEhMQVjfoLcF+eoXSvbKxedwn'. + 'LKzC3KWbOi5/sW5a44/SHFUSgVA7SCzRG0AvA9mPOgFIETgu4n'. + 'Ww0wNQWFAqRSL6D2ZQYBdDrQ7R7jXiwgRcvIL02makuTmWtpM/'. + '+BlLMl5vuWzLVEuwH6oYnR1KS8kJINGXMM2YdfRlALoQoQQKeb'. + 'bDVwoMdxQMaLCwLo96HZTF5HbrEhmOftianfZisfzueKv7ZmrX'. + 'MsjhxKXZGBjzyeEHmSE3oWiggtyVGmE8DTIXTC5NxgAxOAGUM8'. + 'fun9mnSSLQ/CxNzOTgJ3LIMgoGwkKBiiMyaVviHVkdCO4FEKNv'. + 'LQzWBYHfITPa4UBVM0LR/WB7ARJsdDDTjA6deYFIFUOimJ3d0E'. + 'sNdLavYYgBpthqKcjiiJRO8K6CK0CsJTjfQAGaJtD9vQFAxNNQ'. + '1FB0yBAfA8gdMAIagLoCVAen0M00zMOTYShNDtoHs9CAIUoI4E'. + '1IBihCdNhsMhsj6NuV7BCC2IBpBqQaaFOENCCeiEsO1BO4RQgy'. + 'I5Hm4k4oIU9MrgZSAdBeTabZz+ODxKQRRBFBJo6IUc51anYRQo'. + 'dto+24FNxYCiaWKkQsj00KkO4gxRRkAngJ868M0u3OkkM+hxQA'. + 'cQ7YD7GO5XYSsPZybh/TCkFIYY+kWniTW4Q7jXgHvHMhiRpmuW'. + 'ca08GZkkZ/nY6TZMNhCnf2CuPoDVJvxpB+q9BHA8Ag1uH+oP4c'. + 'YEPCzDwmzSLquShHW/E0YRbG/BjZtw40hAy7aNzJlzRn75E6N0'. + 'qiwTzafI7kOU3gWrhzZC2iHcbsPqLlxvJnCt4KC1RYAL3I5hzY'. + 'Xv/huePYCtITQMKEnyB4KQvMURuJvw889HGSwUCs7CwkLpo6tX'. + 'Ty/+7nel6VLGDn/8N9m+eZuo1UP8iNhLau6b3RfmOsHBGTUYw9'. + 'WBNeDrGB4+h/4qNLKwTnLbHj9CJw/6GoIh9Jpvq0HHcayFhYXi'. + 'l3/4w9LK8vLKexfma3G/mb/3n1njTivS7tNQaaU1grQDjJ868D'. + 'Axx6vmxnBrY9C9IcSbSXbavNjb/S3eN6/0m1JcKBScixcvllZW'. + 'Vi6uLC8v12q1v/M8b/HxVjP//YYr32yE4dYWvShO0ogi14xwxq'. + 'F4rbnxZ3cMjtpvEEeMvwA0TdOYn5/PffHFF7Vr166tvPeLXyx7'. + 'nrd4+/btyg/frFo//Xgncnd67qCn78earQqcmYD3fSi1wPCTSV'. + '3gzqvm9uFOMl5nUAqFQn5paal26dKla57vf7D+6FHph9VV88af'. + 'vgq79bo70e3VT2l9A3hYg4UiRALVHTCHSZvYBm4A//6quf8zoG'. + '3bpuM4acMwKr1+//SDe/dK31+/bv90/Xrcq9fduNW6rbVeC+E7'. + 'gWdD2DKg4UEpBmPcm10RuScida31ntb62HAigoigDw6Gh0axWH'. + 'QWFhZKi4uLZ+I4PrVer2e+u37dXPvqq6hbr7tOp1NXWq89h6/b'. + '8FBB34WGBesdcPrj38lkMkGlUuml0+mu53nR3t4eo9HoSLhMJk'. + 'OlUiGdTuN5Hq7rvgA0TdO4cOFC7vPPP6/VarXldqdTu7m2lrv7'. + '7beq++BBO263b/tKrfWSXlbvwJ6CuAtDgTYiaBFMw6BSqfDxxx'. + '+rarWqGo0GN2/eZGtrC6XenAkRoVKpcPXqVWZmZmg0Gty6desF'. + 'oIhIOp3Ol8vlmmVZK3fv3Lm09uc/Zwbr653ccPgoNIzvnmn99Z'. + '7W9QG46lAaM5mM2l95GIYUi0VOnz7N7OwsWmsymQzyuse5Q8Mw'. + 'DNLpNDMzM5w/f/7A6AGgUkoajYa9urpayOXzUz/fvZutr68Pim'. + 'F4/2y1+n2o9Q/ru7uPesPhXnyo4A+vfHp6mmazybNnz9jZ2UFr'. + 'TbPZJAhe+8/aS0Mphed5NBoNABqNBqPR6MWBVWstvu/nnj9/Pv'. + 'vo0aPq5uZmPBgM/qcwPf39xV/9ajU1M3Nvq9PZaw8GoT50PjdN'. + 'k6mpKa5cucL58+eJ45j19XWePHnCzs4OnudhmiaWZRGGIVH05r'. + 'yEYYjrumxubrKxsfFyDQJ6NBp1Pc+7C4jWumBaVm+kVL2l1H2l'. + '1G6otS+H6V6z8u3tbVzXpdFooJRicXGRqakptre3uXXr1ltrcT'. + 'Qa8ezZszemWAE9rfUdYBOwtVLRbrPZ+48ff+wDvuu6Sr3MB4Dr'. + 'uty6desgfa1WC3iRyrNnz4pSSmezWUzTfGtYtNYcdvC/9sMlgP'. + 'n5N4cAAAAASUVORK5CYII=' ; + + //========================================================== + // File: ppl_pink.png + //========================================================== + $this->imgdata_large[2][0]= 2779 ; + $this->imgdata_large[2][1]= + 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABm'. + 'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'. + 'B3RJTUUH0wMLFQolY9lkpgAACmhJREFUeJy9mOtzFNl5h5+3b9'. + 'Mz0kzPBWmEVtIiWYhIiC0HCDhB8lb8ISk7nzdZ5+/zJ/8BTmpT'. + '660CZLwG1pVFgBkgGIHECEaa+/T9nHzQCCQuRpCNz6mp6g893U'. + '8/c37ve3qEjxiC4OA4n/Lp/EUu/tsMM/+aEWduVBx7WhdkShcY'. + 'xUH2zo0Dwod/5N6vf8V//PoGdx8M8EOFPtK9jI8BdHCcMuVSmf'. + 'LxHLmSZdm2U8xIbmKETDGDZZnIy4dBbCynyGhphurEDBOlHFnn'. + 'qPcyPxTOwDCOccw7w5nlBRZWylI+ny/mZ6rL1dzUZ5/IWGZU3D'. + 'ZIOMQDDaJcHDVGWUbJBi9odVr0QoVSPzigIEaZ8vgSS/8wZU3/'. + 'k1fylipz5dLM2WlrZqHKaGCKbEbontq3KAKWQyZfZKTgYqc9Bp'. + '2I2PcJ4ogk/UEBQcwipbFZmT13vDBx8fhnE1Ofnp9yJopFyT3X'. + 'yANfks0QHSQMDaL37pOxMLIu2UyVkjVKLjyKSeuD8dAYCFkso1'. + 'gYMaeWJ40T56cl8yAi/O4FSa2P6kYczIDsgVpAqcDImZPMuAB1'. + 'dkLQtcc8a/bwox8IUHAxZVxGZMouSLVYwKuMkD5IxN+JSdsRJB'. + 'pexuTVgYYM6EoGmxkmg3/hEhNUMr/hd7dqbOzExMn/GRDAxWZc'. + 'j3I8HiXfMjF2FQowKw7pjoN6E/Llw/GBJj8qxVOMlX4ipxc/lY'. + 'kl2zBLkmrTcEzMkoNoRLVidLi/9g+Z3I+1xRHX5EcAihxnbPRv'. + 'OTU9kZSmpKPy9FTGrLimPZ1H+UiyGaF67w6n7E1DwMngFDxGvc'. + 'w70v0xZUby5IxjlIyMssUJrJwVWkXBdbXvSvwEibcSdKCAFI16'. + '4/sc0SRo9cGAGq1DwvQFzV6DVuBiV4zYnlEts6A2TSPcSiXoxo'. + 'QqJCEEFMbQ2b69o5qMiOOPqIMQkagu/aSL7waE8101WFShLjk9'. + 'yxgEvjRUiyYd+gwAjY2J9VpXfZ/JEXLhDp3OR6U4T97+hEnPwx'. + 'tv4HsRjy2tTQSFzQgDUnwSLBQRI+x1ZgcH87Vcv4SF19Kt0ezS'. + '1h9s0Ma25pgr/YJfnLnEysok0+ezjM6EBLldGqKIJYuDRhOQEJ'. + 'Oih8X9Q0xmcXNjlCofBJgn78wxVz7L2YWf8tPPz1hnfjbjzfxN'. + 'qVwutq2etZXUQSXikcXGIgUiUkJSDIQMJgYGJsaB3c7b1qQ4GZ'. + 'xSkdGZIwMeNLfK6uezMnvJK3pLxeVixfvMsyVjSNSO6IV9adPG'. + 'AArkEEz8oUkFmBjYGO80qfd6pCWIayD59wIKcsjcKqufn7JO/S'. + 'xfyi+5c24pey5rZ09mJRNkiDdT/tzbkBr3SYkpMYpgEaIJSYhI'. + 'kSOY1GhilAQk5ntDIojxCZ/kf87Pl85xbuWEnLiUy+cW3NNuJX'. + 'MmY5meKf6mT7wZS+THdOjxlG06tIlIOMZxchSxcFFEGAwAGGME'. + 'jwyZYSnWL3cXWiIUbUI6hO/vxXuFOV84ycmlBWthNeflTjuzTi'. + 'lzJmM5s46Ej0J63/ZoPmoy6PYxtYVNhmfs0mbAND1mmKVMBY1L'. + 'mxA1LN7WgXQbCApNhKJHRIM+DQbv7yQGhjnJ5NgFuXBuxpu5mD'. + 'udm3LPuY7pmZLUE6L1SIJaIPFuDAqyw9lnwDYv6NFHkWJh4ZDB'. + 'wCBFD3uMxsTAwcBAiElpE/KcPg36dIiOvpsRxDCyhmlP2YY9ZU'. + 'v8NMb/1id+FGO0DTztkSXLOONUqeITsMkW2zwnJEIDFhYGx+A1'. + 'kwK4mASkvKDPc3p0iYhRRwYUhZLUTyV6Eu0t4s1Y4kcx6W6KaM'. + 'EZThcXH59RRhGEgIAddnBwNEBKqqpUtWBIF22YDIhJsbEkJqFN'. + 'qLtERHs7GnUkwISEQAf0uj30bY39PzbiC6qrDu2cExJ69Nhhhz'. + '59UlIUipCQOnVi4sjG7ubJBy6um0C+he/0iDHQKIQERYyKFLqr'. + 'SI/W6kJCnvOcrWSLSquC1/Jw9Ks3R0FQKHr0uMc9bnCDGjX69A'. + 'H0XlcJkibN5jOe/alCZStHbjJL9lSMLkXExvCXRiDV6GZEeGeX'. + '3TvvBVQoEjfBL/v0rT75Th7VU5C8gktI6NLlMY+5yU3WWGODDf'. + 'r098tHpNFNH7/2lKdXXdz7efLzVaqJIBOCmK8AJUlI6g0aV+9y'. + '9+p7AR3bMQpTBWPy7yeN6fy0jNwewfpvC9Xe+3kFoUuXe9zj5n'. + 'BusEGHjh6GIAGawC2FWuvSvbbF1maFylZAsC1ISZADBiVNSJrP'. + 'eX73MY//skHP85z5+fnSxQsXj//4n39cmnPn7LbZlsajBmEnBL'. + '1nuEGDG9x4aa5Ldz+h0RCuBqwBv1Wo+7vs9r7n++0MmYeAM+zB'. + '+61EK1QUEnbbtN+9Bh3Hsebn54u//PdfLq9eWl2ZnZ1dSnaSwu'. + 'Pin40b9g3doKE0WoNIl65xj3v75njd3BBubQi6ExKmDWkMRKSl'. + 'tSbVKQcMao1Go5Ugb0+x53nOyZMnSysrKydXLq1cWlxa/McgCB'. + 'Yev3hU+GPrD3I5/q94k3pXYQY58q6B5Bs0HB//neaGx00gyWaz'. + 'VCoV7bquCoKAnZ0dfN/f03egLGj0m3XQNE1jdnY2/+WXXy6trq'. + '6uzP3oR5eCIFi4detW5feXL1vr679Let37zVB3/mQytjXJwmSB'. + 'wikHp9ShY0RESqObwPrr5oBERKhUKly4cIFqtUq9XufmzZtsbW'. + '2hXvuDwTTNtxZq8TyvsLy8vLS4uLgahOHphw8elL69fNlc++qr'. + 'uFOrNXPddm1cczVL5f5P+Lv5MuOJgTGxwYbZpZsCdeAq8M1Bcw'. + 'CGYeC6LtVqlRMnTjAyMkKn0yGXyx0N0LZt03Ec1zCMSrfXO37v'. + 'zp3S769csb+/ciXt1mrNdHf3ltZ6Lca8ZpJsduhtCdb2gEFJoQ'. + 'xADYHuHDS3f32lFEEQUK/XGRkZoVAocP78eZaXl9FaI/Jq25Uk'. + 'yWHAYrHozM/PlxYWFibTND32sFbLXrtyxVz76qukXas1M61WTW'. + 'm99gx+20TdN9jqtfjP7QzOwwYNp037Zd0DukDnIByA1pqdnR2+'. + '++472u02Z8+eZWJiAsMwDsEBRNGBzYJpmsaJEyfyX3zxxdLS0t'. + 'KlVqu1dP3q1cLta9ekU6u1dat1J9b6Sk9kraV1rYXegW7apDYw'. + 'kFY6fPc4MNTw88bwfZ/NzU2UUnieRxAEiAiGcXiXfcigiIjruo'. + 'VyubxkWdbK7fX1xWvffFMInjzBM82uMT5+p++6V1UUrSe7u03t'. + '+8lezlKt3gHyl0aSJDQaDa5fv876+vo+w6FzDq1BpZRsb2/bly'. + '9f9vL5/Njdu3fzG0+eMJHNxsfn532vXN5NPG/7abPZal6/Hvfe'. + 'kroPHfsm98f7AHW9Xo+//vrrlmVZm71+37QNw3JnZ9PK4uJGpV'. + 'pt4Dh+vLGhsrmcfv1iHzu01m89HjIdCon2fb8TBMHtvYeRUn50'. + '1Oj4vqp3Ok1f5LYSadfr9dQfDN642P/XeF2DA+SBAuA4jkOhUK'. + 'BQKESO43S11p3BYBDt7u4y+CtB/i/q7jp1GMiw2AAAAABJRU5E'. + 'rkJggg==' ; + + //========================================================== + // File: ppl_blue.png + //========================================================== + $this->imgdata_large[3][0]= 2284 ; + $this->imgdata_large[3][1]= + 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABm'. + 'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'. + 'B3RJTUUH0wMLFRAiTZAL3gAACHlJREFUeJy9mGtv29YZgJ9zKF'. + 'F3y/Q9jh05tuQkarKgbYasde0UBdZgwNou/Vqga/sD9mP2B4a1'. + 'BbZ9atFPxb5sqOtmXbI19bqsluPYiR3HN90vFEWRZx/IJI5zqa'. + 'x0OwBBSgR5Hj7v+55zSEFXTUgIJyA9C6/9RsjMjAyFIxxJCDc7'. + 'iBqKgyZACGg3G2x9+xXf/fG33P3mC9qNKsp1O+1JdkEnQTdgIO'. + 'ttCSMUi8gj072MnugllAyB9G8rBGi6RsToJTF6iuRoFi1kHKZf'. + '7fB8Iggj0/Dy23D2dakNTR3JDsXPvzstxmZGRMER1EwHhQAEgE'. + 'CLhIkPD6InY9S3djGLJVBtQP1Qb4HDAyoJYQOOZkPx49nhTH9i'. + '7MUBGT7egxkJgd70wZS/CUkoZtA/fRoE1DZ2ACiv52ibReCp4e'. + '7CIEHomxDiuVdGTqUnf/ZeOjR8fpiVXZul5ZrY3bWwbdcLr/dA'. + 'AAIpAwQjUWIjQ+g9HZvswiCgBVF9/SI6OSLGzo0i+oLi6+Utbq'. + '+bKEftgwOE/0Ohocf66M+cBjo22U2RQLIHMhmYnvaOpR9S8bSU'. + 'UqCURGpRkuMZMm9cIvPGJZLj0yBjT2LprkiSkykx9cuXIhOnUs'. + 'm+QNC2XdG02ggBTcvFabsPWwTPpBAChSCgh4kYBpoeplWp47Qs'. + '7EYDt21xINzd5GCAxLExRl89Z+nHjpbKMmjbmkgfDzI0JEW53K'. + 'Jaa6NcAOEX8v52uJzsBlAS6u0hcnTIccPRqhWPCUcLD+s1EaUp'. + 'HCEhEMCyHNpt9SjgIU12A6iw6xb123vYhaaKjB9tlgMD5X+uBp'. + 'zdkpg6azA8EaNQtKlVba+Xez4eCntnJrsDdFsW5nYFpxlFN846'. + 'DXe8utkM4mhi+EgQmjYbS2WqexZKk6BpjwJ2YlK5VjeA3pNDiH'. + 'YjRWPzPE7tmBo8EWwGhkXx+z3uXL7D3rU97LIF8RBEAl6lK/Uo'. + '6JNM1rZ2aTcr3eUgIQOGTgbdwXMGyRejenLYTvQGbAdRuetSud'. + 'OivVuFZgtCEgICghICnZoMhmlVTPR49LCAEkQUhk/B7KXe0MWf'. + 'nxj8xVR/cDheK14WZmtVMJSBnlGoN6FmQq0FLfdwJgORKPHRo/'. + 'Snzx4G0F/FjJ4KiOdmjPCrrx8bffnMybMv9MQGNG3rzlVqtR1B'. + 'sh/CYXCD4Aag1oCW7ZnUOjSp6WFi/QNEB8Y7BfTNjZyCmUvJ0I'. + 'XXT47MTp98Ybon9VZCk8cVazfqlNargsY34G7ByAlIjkHd9CCr'. + 'LbBdiHViUgiECuDKYCdz8b2cywREdiYZOj8zNnLuzOTzx6ODp+'. + 'OaGaqwVzBFqz0Idhz2loE7YEwBLaAJLQcKbW8qjAcBF5Jh0AMP'. + 'IOHe6kxgtb3UMO2OxkF//ffK28nQqxfvm3szrtnDVa799Qb/+v'. + 'NtsbNSpm3tAv8B+w7Ub0FhAyoBcMPec9oK6raXk48ziQBXQcmC'. + 'pT3YqHa0mpEBkTR6wz/Jjo2cy04+fzwxdDquNfQKO7sFUbpu0c'. + 'wp3JoAYsA42Bbkl4GCryUNDEM7Avm6Z/CgSYBWG8pNuFuDu1Wo'. + 'tjoxKIJGeHIiM/jmK9NnX5ycuJQMtUcqXPvLDTa+qIie4hAJ1U'. + 'vdrmO2HaDfB931twJgAn1A4lGT96obPHPLBbhVgUoTHHWo9aAA'. + 'JVAKpyKEmQNzWRENAsL18ycKjAFN/9gCNvzLB/390MMmE7pnDi'. + 'Bvwt0K5Jv3O+0oB22nJ1Vvjb/UMhOpcKknqN1OiMB2DNHU2G5s'. + 'sVndpGJVcZXjX1IAlvw9PmhRQcOFPhsSDkiBrQR1G7brgs0a7D'. + 'ag3FK4rguqBXarI4Nt1SJv5gls7TEWtJDRBO2GwnIs8maevFnA'. + 'Gx6awLZvzeTBu4kFbLigijC47pscpx0xyDfkvtUEnlarCDtrUC'. + 't2HGIhvPHVdVwqjTIrxRU2a5uUrYoP0QZ2gMvACl7+3V/LuKDq'. + 'sJuDy597516+CEezIHXv7vcgXQu2l+Bvn8He9Y4AE4kgk5P9DE'. + 'R6aFdq5Et5Nit3yTf3m9sBcsAN3+D98c0Fit5JawE25r1zg1Fo'. + '5B8GFD7g+nVYnu8EUEop9XTa0N/9dUbqcphP/rDJzbUClVbpgR'. + 'y2fXM3fND95qj75J8AC6BWPINfVSBieK+x+6cS5UCzCLu3oFV9'. + 'GqCMx2NGOp2Znpv7aXZudsool3T5J/179sxVlHJ4kGPrP2COBX'. + '/7DmiApWCjxIMXpYNznYuXM+6TAKWUMppOZzLvv//ery5cuDCT'. + 'SqVS336bCwr1JfAPB9r+2KAFwJS+OcETzZHz/7v3etl6ipz77X'. + 'GAMh6PG+l0OjM3NzczOzs3k0pNnFlbW43+e/GKtMqrblSsF03V'. + 'WHcJA0PjIAzvg9JTze2H67g9DjAwOTmZ+uCDD96anZ2dnZiYmF'. + '5dW41++Lvfa1fnr7qllVK9103mXNTnJgPA+YugsvB3HTaEl+Qs'. + 'AZ/yeHPPDCiTyaRx5syZbGoilV1dW00szC9oV+avusuLy0Xd0X'. + 'MgFkDM+zkYBZEHV8f7wwKu84zmngQoNU0LaZoWUa4K31y5qX/8'. + '4cfyyvwVN5/L10NOKNeg8UmDxoKF5Vfj1xXAgD0JrgAcvBDfel'. + 'a4g4AykUgY6XR6emJiIru2ttZXq9S0K19eUcuLy8WQE8o5OAsN'. + 'Ggsmpl+NpoL1g9X4UBU+C9xDgEKIwNTUVOqdd955M9mbnJ3/cj'. + '6Vu5aTheXCQXNdVeMzAwJSCGEA2XKpnF1cXIzlFnOVhJPIKdR+'. + 'c88ctq4AlVKsrKzw0UcfKcC5uXqzXnNqSzb2pwLxOHP/l7Z/BN'. + 'eB01LKt4HTrusKvGr8jB+hGn8MQAkYQMrfw4Nq/MFPtf+rdvDb'. + 'k8QL+/5Z4Uepxm7bfwHuTAVUWpWaqAAAAABJRU5ErkJggg==' ; + + //========================================================== + // File: ppl_green.png + //========================================================== + $this->imgdata_large[4][0]= 2854 ; + $this->imgdata_large[4][1]= + 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABm'. + 'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'. + 'B3RJTUUH0wMLFQ4hANhluwAACrNJREFUeJytmF1zE1eagJ+3u9'. + 'XdkvUty2AbmLEtEzDBgZ0UpDBOalNTUzU3czl7tct/2n+wt3M/'. + 'NVM12SSTQQSyW2TA+QAJQogtYYFtyfrqL3WfvWj5g8AEjzfvhS'. + 'SXjk8//Zz3Pf3qCMcJAWxMKlT4kH+jwu/FknnJSUItKFHzCrKA'. + 'BggBQx5ziz/wn/yBz3hED4/oaJfSjgVoYjJJgTLTZCjohp7IGT'. + 'k5aZ4kb+bRTR30Q7djj8f/kpPMUSCFedRL6W8e8qMQNE6S4xpv'. + 'c5HrTPFubiJ3ZnlyOXV59rJYU5Z00h1c3d0brxAiUkScRijisk'. + '6XLTyiN3s8HuAJpniXa/q8/pt8Or+0kF8oXJm5YiydWcIpOrJu'. + 'rjOQwd54AQwsMpTJYhPSoYuLQ58An/DnBQSdImXO8avsTPbqpc'. + 'lLp67OXDVzMznZLGxSs2qyIRu4at8gKHQEC50kE1icxqCAdxST'. + 'xjEA44tqaJlERl8uLWvvnX5PHuQfcCdxh5qq0aX76vj4WgWyXO'. + 'QiNgBP8IAaddr08X8+wHFmJSQhBbPAZGoSZSt5wQs6qoNC7UEd'. + '4AEoLIQSCaCCy78Dv8Tiv1hjjW1CRj8XIAgEKqDtt9keboMJZa'. + 'vMjuzQVd3Xr9prTJo+GF/jKZea95R25Lxs8jg5qFGiwDnOS0mW'. + 'NE0rjNRIt3WbklUCA9mV3Zdz8OBT/JfCQLB0SKYVVjGFYSfx/E'. + '26ow4e6uDujlPFQpE0FU6P8qNTHdXJdEdda0qf0itWBVM3pa/3'. + 'ccUlIECJet0cAJoeYk5EZCeS5IwEoerSxccJBwRqFFf38QCTaO'. + 'TRVFKJm3NTbtLNSyh2IkhIXsvLCesEGNCWdmwyruSD/z9kUlRc'. + '3bqNlSxhJNJ43p5JITrOEis8Qtr0cXEpU/JT/pmO18n2vb42pU'. + '3JnDnHMBqyPlpnoAaxhr2llv1ZUBqEGlqYwDQMsskMOcMgVL3Y'. + 'ZOQTHAcQQiIGjHCwCaiovjrv4hbcpKuJJjIcDHm685RGr4GLCx'. + 'YHkAcrLoAoDSLBiAQrMkjqybHJCbxgh+7xAC1MpsgzwRwD3qHL'. + 'WyTIBdlAa6u2rHfXaew06PV78ZZjAwleNnkolECoH5i090wOcY'. + '+TgwYzFHiPi1zkOkXexeAMASnVU+LiyiA1wFUuaqggACLizeWw'. + 'ycMzyssmVYKkbpGyC5T+OUALk2mKLHKWf+ED/az+YW42d66YL+'. + 'aNrmEEzQCFEnKw368EgEvcN1m80eTIQIt0TFOjMJHkzNEBBYPp'. + 'sblf8QHzrORO5JaWZ5ZLl6cuJyyxpNPv4PZdoT+GyIxBfI5uUg'. + 'eJMCwP2/bIHO1JEudcgUUWOceKNq99mCvnzs5PzRcuTV4y5mRO'. + 'SMIjo47z5S7a94oQCNKgJsZwO7D/IDNg3/LLhRNXt4JohBb4aG'. + '82GLdXcf93mQ+Y43r2RHZp+cRy6cqJK4l8MS+tdItaqiYtc0Mm'. + 'QpfJARh98HYh9IiXVcaAo58wGb+LBAjbSPgCOcoSa0wzxXtc08'. + '/pv8mfyL+9MLVQvDJ1JVHJV6SZbFI1qtTsB+KlehRtRTGE8Afo'. + 'P4DRcAxiEudhAHjjzz+ubgX4oHowakHQOlqzICQwyVPITGVOXi'. + 'xfLF6aumzmczl5lHzMff2+fCdPaGttEkXoLQAO9B7C6EugPYby'. + 'gVPjGXc5eIbNAJPjGwiAbaAJUQv8wVG7GROkJFpyOqn/ovgLba'. + '44L0+sDaraXb6jzq7aBQWjBOyUoHcaopOgmaA3IRyNDZnA1HjO'. + 'HSBkr7eEFDAEngHrQCf+/s2A8cSiSkqcKUeeTjwFy2Jd78t3+L'. + 'TR4itIiBLwLQhzkJyB5Cx4HXDaENVQCBAQcRqFIHTRaBIvuYXg'. + 'AdsouuNxEL0ZUBHnSQp66R73zYfUtQ6OytKT8RckQAJQoLtgO5'. + 'BJgj0D/WfgdyHaAHx8THoUcbGx8ciwhUl3bDEiToURPooeI7pH'. + 'MziK9Yd9nU5a6GgKjOH41vsgI4hAcyC5AZkapF+AoYNrjjsuhx'. + 'FbtPmeB5ykyQQzTPAWAQWC8S9oAI0QRRuPb9jkmyMZNAOTklvC'. + 'GGYZaFkGmkVAh8h4DtKFMIBunG+pB5B5AIkGBDsQ+qBiL20caj'. + 'zhJknq5KlgMkLjJHJos4kYEbFJi5vc5eYbATVN02bNWe19+32t'. + 'aJWlFm3wbf8Rz5NbDFJdlOFBF/g7cBf0JkrbBb+F6j1DOduEkU'. + '8bWCOiSofPWadBnSZDWmgUkEMGhZCINut8S/0NBtPptFlZrBSu'. + 'vnt1+ndnflfIp9OJ/279Ubbbd+lP7KBKPoEBsgnqLph/BRzwdS'. + 'LnBUFvHcfdpRsGPAGqwMco6jynz+e0SPKYCHMfLX5VKHwcenR+'. + 'Igd1XTcqlUr+xn/cePv91fevzy8sLO2OtrOpWkqL7gXKSAVRdh'. + 'ZFEmEXoYkwBNqovoc/3GHH3aUR+jwC1oD/AWrANi4hGwyBzqEG'. + 'Vvb77Dgi0eT1VZzJZMxKpVJYXV1dXF1dXVm6sPSvruue3Xzcyj'. + '6/syvDzwj0lNazK6Fj5LFCRZouZpBABj6jXouu3+Np6HNvDHaf'. + 'g91t74msbMuOJicnSSaTKKUQEUQEpRSO69But1/dB0VEm5uby9'. + 'y4cWNpdXX1+sLCworrume//PuXpeqnVeOban0U1PW2kcx+O9L7'. + 'Te9sUB4lWFR9SqNtNGcHx+/RDD2+Am4D94CnQA8OjjlEhMnyJC'. + 'srK8zOzu7BiYioMAzZ2Njg9u3brwIqpSSXy2WXl5eXLly4sOo4'. + 'zoV6vV6oflrVP/7Tx8Hmw1Zb6ydqmpWp7ha8h4O3gjOhzVANmF'. + 'XPMNQWvdDnCXCXuHR+APqH4fbCtm2mp6eZn59H13WJuYXRaKSU'. + 'UiSTyVcBdV3XDcOwRaTU7/en19bWCn/79G+JL/76RbhZ22y7u+'. + '6ahl71nPDz/nO17m7wAxlabFOihy4+DvAcqAMbPzZ3OFzX5dmz'. + 'Z2iahoiosUUVhiGNRgPHcV4GzGQy5uLiYuH8+fMzo9FoslarJW'. + '9+elP75E+fBJu1zY7qqpqBUW3T/niohnVvy+1zm5aVtp+WE2XT'. + 'nrHFzbjh1tYLz3XdPjD4R3BKKba2tqhWq4dzUO3noBPn4H5PKy'. + 'LaO++8U7hx48byhQsXVne7u6tf3/v64t3P7mbq9+odt+OuaWi3'. + 'PLxbW2ytubjbQCgiMnt6VlaurWgz0zM0m02q1WrUaDSUUuqI56'. + 'ivDxE5MCgiYllWtlwuL5mmufLV/a/O/uXPf9Ff1F+80Lv6Yx29'. + '2qHzyZBh3cdvc7gaTZuZkzPh/Py8ACqVSv1/uPZDKXUAGEWRtF'. + 'qtxEcffZTL5XLF+2v39fqjeivshA/TpP83JLwzYFBzcA4370Cc'. + 'S81nTRBUs9lkOByi1GuOPI4Rh3+26JZlnSkWi781DOPXvV4v3+'. + '/2G0R8kSBxB/jew+tERK+c49m2TblcxrZtXNfl+fPneJ6HZVmU'. + 'y2VJJpNyaJ9TSinlOA5bW1u4rntkQA0oAG8D54gb9W3ianxM3A'. + 'e/cn73U3Hq1Cm5du2aPjs7a+ztcSIShmE4ajQa6tatWzQajZ+0'. + 'fbiKI+It4SvijVUj7kL2qvGfgkskEqTTaZmcnDROnTplJhIJTU'. + 'QiwPd9P/Q8T6XTaQzDIAiCfzjP/wFVfszuFqdHXgAAAABJRU5E'. + 'rkJggg==' ; + + + //========================================================== + // File: pp_red.png + //========================================================== + $this->imgdata_small[0][0]= 384 ; + $this->imgdata_small[0][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABm'. + 'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsSAAALEgHS3X78AAAA'. + 'B3RJTUUH0wMJFhouFobZrQAAAQ1JREFUeJyV1dFtwyAQBuD/og'. + 'xQdYxa8gRY6hJ0jK6QdohMkTEuE5wUj5ERen05IoLvID7Jkn2G'. + 'j8MgTMyMXqRlUQBYq9ydmaL2h1cwqD7l30t+L1iwlbYFRegY7I'. + 'SHjkEifGg4ww3aBa/l4+9AhxWWr/dLhEunXUGHq6yGniw3QkOw'. + '3jJ7UBd82n/VVAlAtvsfp98lAj2sAJOhU4AeQ7DC1ubVBODWDJ'. + 'TtCsEWa6u5M1NeFs1NzgdtuhHGtj+9Q2IDppQUAL6Cyrlz0gDN'. + 'ohSMiJCt861672EiAhEhESG3woJ9V9OKTkwRKbdqz4cHmFLSFg'. + 's69+LvAZKdeZ/n89uLnd2g0S+gjd5g8zzjH5Y/eLLi+NPEAAAA'. + 'AElFTkSuQmCC' ; + + //========================================================== + // File: pp_orange.png + //========================================================== + $this->imgdata_small[1][0]= 403 ; + $this->imgdata_small[1][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABm'. + 'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsSAAALEgHS3X78AAAA'. + 'B3RJTUUH0wMJFhwAnApz5AAAASBJREFUeJyN1dFthDAMBuDf7S'. + '3BCm2VCRKpS4QxbhikW6IewzcBqm6Fm6JyH7iEEByCn5AJH38g'. + 'BBIRHNUzBAWAGNfe/SrUGv92CtNt309BrfFdMGPjvt9CD8Fyml'. + 'ZZaDchRgA/59FDMD18pvNoNyHxMnUmgLmPHoJ+CqqfMaNAH22C'. + 'fgqKRwR+GRpxGjXBEiuXDBWQhTK3plxijyWWvtKVS5KNG1xM8I'. + 'OBr7geV1WupDqpmTAPKjCqLhxk/z0PImQmjKrAuI6vMXlhFroD'. + 'vfdqITXWqg2YMSJEAFcReoag6UXU2DzPG8w5t09YYsAyLWvHrL'. + 'HUy6D3XmvMAAhAay8kAJpBosX4vt0G4+4Jam6s6Rz1fgFG0ncA'. + 'f3XfOQcA+Acv5IUSdQw9hgAAAABJRU5ErkJggg==' ; + + //========================================================== + // File: pp_pink.png + //========================================================== + $this->imgdata_small[2][0]= 419 ; + $this->imgdata_small[2][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABm'. + 'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsSAAALEgHS3X78AAAA'. + 'B3RJTUUH0wMJFhsQzvz1RwAAATBJREFUeJyd1MFthDAQheF/oi'. + 'gF+JYWQKICkCJRA1vGtrDbxFbhGvY0HVjCLeS2BeTiHFgTB2wg'. + 'eRISstCnmcG2qCpbuXf3ADBQzWsPfZfS9y9HsEu4/Fo33Wf4Fx'. + 'gxL3a1XkI3wbTNXHLoboVeLFUYDqObYBy+Fw/Uh9DdCmtOwIjF'. + 'YvG76CZoOhNGRmpO8zz30CJoOhMAqlDxFzQLppgXj2XaNlP7FF'. + 'GLL7ccMYCBgZERgCvXLBrfi2DEclmiKZwFY4tp6sW26bVfnede'. + 'e5Hc5dC2bUgrXGKqWrwcXnNYDjmCrcCIiQgDcFYV05kQ8SXmnB'. + 'NgPiVN06wrTDGAhz5EWY/FOccTk+cTnHM/YNu2YYllgFxCWuUM'. + 'ikzGx+2Gc+4N+CoJW8n+5a2UKm2aBoBvGA6L7wfl8aoAAAAASU'. + 'VORK5CYII=' ; + + + //========================================================== + // File: pp_blue.png + //========================================================== + $this->imgdata_small[3][0]= 883 ; + $this->imgdata_small[3][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAACi1'. + 'BMVEX///8AAAAAADMAAGYAAJkAAMwAAP8zAAAzADMzAGYzAJkz'. + 'AMwzAP9mAABmADNmAGZmAJlmAMxmAP+ZAACZADOZAGaZAJmZAM'. + 'yZAP/MAADMADPMAGbMAJnMAMzMAP//AAD/ADP/AGb/AJn/AMz/'. + 'AP8AMwAAMzMAM2YAM5kAM8wAM/8zMwAzMzMzM2YzM5kzM8wzM/'. + '9mMwBmMzNmM2ZmM5lmM8xmM/+ZMwCZMzOZM2aZM5mZM8yZM//M'. + 'MwDMMzPMM2bMM5nMM8zMM///MwD/MzP/M2b/M5n/M8z/M/8AZg'. + 'AAZjMAZmYAZpkAZswAZv8zZgAzZjMzZmYzZpkzZswzZv9mZgBm'. + 'ZjNmZmZmZplmZsxmZv+ZZgCZZjOZZmaZZpmZZsyZZv/MZgDMZj'. + 'PMZmbMZpnMZszMZv//ZgD/ZjP/Zmb/Zpn/Zsz/Zv8AmQAAmTMA'. + 'mWYAmZkAmcwAmf8zmQAzmTMzmWYzmZkzmcwzmf9mmQBmmTNmmW'. + 'ZmmZlmmcxmmf+ZmQCZmTOZmWaZmZmZmcyZmf/MmQDMmTPMmWbM'. + 'mZnMmczMmf//mQD/mTP/mWb/mZn/mcz/mf8AzAAAzDMAzGYAzJ'. + 'kAzMwAzP8zzAAzzDMzzGYzzJkzzMwzzP9mzABmzDNmzGZmzJlm'. + 'zMxmzP+ZzACZzDOZzGaZzJmZzMyZzP/MzADMzDPMzGbMzJnMzM'. + 'zMzP//zAD/zDP/zGb/zJn/zMz/zP8A/wAA/zMA/2YA/5kA/8wA'. + '//8z/wAz/zMz/2Yz/5kz/8wz//9m/wBm/zNm/2Zm/5lm/8xm//'. + '+Z/wCZ/zOZ/2aZ/5mZ/8yZ///M/wDM/zPM/2bM/5nM/8zM////'. + '/wD//zP//2b//5n//8z///9jJVUgAAAAAXRSTlMAQObYZgAAAA'. + 'FiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElN'. + 'RQfTAwkWGTNerea3AAAAYUlEQVR4nHXNwQ3AIAxDUUfyoROxRZ'. + 'icARin0EBTIP3Hp1gBRqSqYo0seqjZpnngojlWBir5+b8o06lM'. + 'ha5uFKEpDZulV8l52axhVzqaCdxQp32qVSSwC1wN3fYiw7b76w'. + 'bN4SMue4/KbwAAAABJRU5ErkJggg==' ; + + //========================================================== + // File: pp_green.png + //========================================================== + $this->imgdata_small[4][0]= 447 ; + $this->imgdata_small[4][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABm'. + 'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsSAAALEgHS3X78AAAA'. + 'B3RJTUUH0wMJFhkLdq9eKQAAAUxJREFUeJyN1LFVwzAQxvH/8f'. + 'IeDS0FLKABlN6eIwPYAzCHB0gWYI2jj+i1ABUTQN4TRSQ7iiWZ'. + 'qxLn9Mt9ydmiqrSq930AYFiu6YdKrf/hP1gYQn6960PxwBaYMG'. + 'E9UA3dBFtVQjdBOQmBakLennK0CapRwbZRZ3N0O/IeEsqp3HKL'. + 'Smtt5pUZgTPg4gdDud+6xoS97wM2rsxxmRSoTgoVcMZsXJkBho'. + 'SmKqCuOuEtls6nmGMFPTUmxBKx/MeyNfQGLoOOiC2ddsxb1Kzv'. + 'ZzUqu5IXbGDvBJf+hDisi77qFSuhq7Xpuu66TyJLRGbsXVUPxV'. + 'SxsgkzDMt0mKT3/RcjL8C5hHnvJToXY0xYRZ4xnVKsV/S+a8YA'. + 'AvCb3s9g13UhYj+TTo93B3fApRV1FVlEAD6H42DjN9/WvzDYuJ'. + 'dL5b1/ji+/IX8EGWP4AwRii8PdFHTqAAAAAElFTkSuQmCC' ; + } +} + +?> \ No newline at end of file diff --git a/gosa-core/include/jpgraph/imgdata_squares.inc.php b/gosa-core/include/jpgraph/imgdata_squares.inc.php new file mode 100644 index 000000000..b17faf044 --- /dev/null +++ b/gosa-core/include/jpgraph/imgdata_squares.inc.php @@ -0,0 +1,150 @@ +'imgdata'); + + protected $colors = array('bluegreen','blue','green', + 'lightblue','orange','purple','red','yellow'); + protected $index = array('bluegreen' =>2,'blue'=>5,'green'=>6, + 'lightblue'=>0,'orange'=>7,'purple'=>4,'red'=>3,'yellow'=>1); + protected $maxidx = 7 ; + protected $imgdata ; + + function ImgData_Squares () { + //========================================================== + //sq_lblue.png + //========================================================== + $this->imgdata[0][0]= 362 ; + $this->imgdata[0][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAIAAADZrBkAAAAABm'. + 'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'. + 'B3RJTUUH0wMLFgojiPx/ygAAAPdJREFUeNpj/P377+kzHx89/c'. + 'VAHNBQ5VBX52HavPWWjg6nnDQbkXoUFTnnL7zD9PPXrz17HxCj'. + 'E6Jn6fL7H7/+ZWJgYCBGJ7IeBgYGJogofp1oehDa8OjE1IOiDa'. + 'tOrHoYGBhY0NwD0enirMDAwMDFxYRVD7ptyDrNTAU0NXix6sGu'. + 'jYGBgZOT9e/f/0xMjFyczFgVsGAKCfBza2kKzpl3hIuT1c9Xb/'. + 'PW58/foKchJqx6tmy98vbjj8cvPm/afMnXW1JShA2fNmQ9EBFc'. + 'Opnw6MGjkwm/Hlw6mQjqwaqTiRg9mDoZv//4M2/+UYJ64EBWgj'. + 'cm2hwA8l24oNDl+DMAAAAASUVORK5CYII=' ; + + //========================================================== + //sq_yellow.png + //========================================================== + $this->imgdata[1][0]= 338 ; + $this->imgdata[1][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAWl'. + 'BMVEX////+/+H+/9/9/9v8/8P8/8H8/7v8/7n6/4P5/335/3n5'. + '/3X4/1f4/1P3/031/w30/wn0/wPt+ADp9ADm8ADk7gDc5gDa5A'. + 'DL1ADFzgCwuACqsgClrABzeAC9M0MzAAAAAWJLR0QAiAUdSAAA'. + 'AAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9MDCxYEDlOgDj'. + 'EAAAB+SURBVHjaVcpbCsQgDEDRGERGKopjDa2a/W9zfLWj9/Nw'. + 'Ac21ZRBOtZlRN9ApzSYFaDUj79KIorRDbJNO9bN/GUSh2ZRJFJ'. + 'S18iorURBiyksO8buT0zkfYaUqzI91ckfhWhoGXTLzsDjI68Sz'. + 'pGMjrzPzauA/iXk1AtykmvgBC8UcWUdc9HkAAAAASUVORK5CYI'. + 'I=' ; + + //========================================================== + //sq_blgr.png + //========================================================== + $this->imgdata[2][0]= 347 ; + $this->imgdata[2][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAZl'. + 'BMVEX////0+vv0+vrz+fry+frv+Png7e/d7e/a6+zY6+250tSz'. + '0tSyztCtztGM0NWIz9SDzdNfsLVcrrRZrbJOp61MpqtIr7dHn6'. + 'RErrZArLQ6q7M2g4kygYcsp68npa4ctr8QZ20JnqepKsl4AAAA'. + 'AWJLR0QAiAUdSAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU'. + '1FB9MDCxYEByp8tpUAAAB7SURBVHjaVcjRFoIgDADQWZpWJpjY'. + 'MsnG//9kzIFn3McLzfArDA3MndFjrhvgfDHFBEB9pt0CVzwrY3'. + 'n2yicjhY4vTSp0nbXtN+hCV53SHDWe61dZY+/9463r2XuifHAM'. + '0SoH+6xEcovUlCfefeFSIwfTTQ3fB+pi4lV/bTIgvmaA7a0AAA'. + 'AASUVORK5CYII=' ; + + //========================================================== + //sq_red.png + //========================================================== + $this->imgdata[3][0]= 324 ; + $this->imgdata[3][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAXV'. + 'BMVEX////++Pn99/j99ff99fb98/X98/T98PL55uj43+P24+bw'. + 'kKPvjaHviJ3teJHpxMnoL2Pjs73WW3rWNljVWXnUVnbUK1DTJk'. + '3SUHPOBz/KQmmxPVmuOFasNFOeIkWVka/fAAAAAWJLR0QAiAUd'. + 'SAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9MDCxYEHd'. + 'ceT+8AAABtSURBVHjaVchbAkMwEAXQq6i3VrQiQfa/zDYTw8z5'. + 'PCjGt9JVWFt1XWPh1fWNdfDy+tq6WPfRUPENNKnSnXNWPB4uv2'. + 'b54nSZ8jHrMtOxvWZZZtpD4KP6xLkO9/AhzhaCOMhJh68cOjzV'. + '/K/4Ac2cG+nBcaRuAAAAAElFTkSuQmCC' ; + + //========================================================== + //sq_pink.png + //========================================================== + $this->imgdata[4][0]= 445 ; + $this->imgdata[4][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAApV'. + 'BMVEX////6+Pz69/v49Pr38/r17/jr4+/l3Onj2efh1ua/L+i+'. + 'q8m+Lue9Lua8qsS8LuW8LeS7pca5LOG4LN+2Y9O2YNW1ZdO1Kt'. + 'y0atC0aNGzb82zbc6zKtuzKdqycsuwa8qtJtOISZ2GRpuFN6GE'. + 'NqCDQpmCMZ+BPpd/LJ1/K519S5B9Jpx9Jpt9JZt6RY11BJZ1BJ'. + 'V0BJV0BJRzBJNvNoRtIoJUEmdZ/XbrAAAAAWJLR0QAiAUdSAAA'. + 'AAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9MDCxYDF3iKMD'. + 'YAAACeSURBVHjaVczbEoIgGARgCiMtrexoWpaa2FHUgvd/tH4Y'. + 'BnEvv9ldhNPradPnnGBUTtPDzMRPSIF46SaBoR25dYjz3I20Lb'. + 'ek6BgQz73Il7KKpSgCO0pTHU0886J1sCe0ZYbALjGhjFnEM2es'. + 'VhZVI4d+B1QtfnV47ywCEaKeP/p7JdLejSYt0j6NIiOq1wJZIs'. + 'QTDA0ELHwhPBCwyR/Cni9cOmzJtwAAAABJRU5ErkJggg==' ; + + //========================================================== + //sq_blue.png + //========================================================== + $this->imgdata[5][0]= 283 ; + $this->imgdata[5][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAQl'. + 'BMVEX////4+fz39/z19vvy8vru7/ni4+7g4fHW1ue8vteXmt6B'. + 'hdhiZ7FQVaZETcxCSJo1Oq4zNoMjKakhJHcKFaMEC2jRVYdWAA'. + 'AAAWJLR0QAiAUdSAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0'. + 'SU1FB9MDCxYDN0PkEP4AAABfSURBVHjaVchHAoAgDATAVcCCIF'. + 'j4/1elJEjmOFDHKVgDv4iz640gLs+LMF6ZUv/VqcXXplU7Gqpy'. + 'PFzBT5qml9NzlOX259riWHlS4kOffviHD8PQYZx2EFMPRkw+9Q'. + 'FSnRPeWEDzKAAAAABJRU5ErkJggg==' ; + + //========================================================== + //sq_green.png + //========================================================== + $this->imgdata[6][0]= 325 ; + $this->imgdata[6][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAXV'. + 'BMVEX////2+vX1+vX1+fT0+fPz+PPx9/Dv9u7u9e3h7uHe697a'. + '6dnO2s3I1sa10LOvza2ay5aEwYBWlE9TqE5Tkk1RkEpMrUJMg0'. + 'hKiUNGpEFBojw8oTcsbScaYBMWlwmMT0NtAAAAAWJLR0QAiAUd'. + 'SAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9MDCxYEFd'. + 'nFx90AAABuSURBVHjaVc9HAoAgDADB2HuJWLDx/2cKBITscW4L'. + '5byzMIWtZobNDZIZtrcCGZsRQ8GwvRSRNxIiMuysODKG3alikl'. + 'ueOPlpKTLBaRmOZxQxaXlfb5ZWI9om4WntrXiDSJzp7SBkwMQa'. + 'FEy0VR/NAB2kNuj7rgAAAABJRU5ErkJggg==' ; + + //========================================================== + //sq_orange.png + //========================================================== + $this->imgdata[7][0]= 321 ; + $this->imgdata[7][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAUV'. + 'BMVEX/////8+n/8uf/8OP/59H/5Mv/zqH/zJ3/ypv/yJf/vYH/'. + 'u33/uXn/n0n/nUX/m0H/lzn/ljf/lDP/kS3/kCv/iR//hxv/fg'. + 'n/fAX/eQDYZgDW6ia5AAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAL'. + 'EgAACxIB0t1+/AAAAAd0SU1FB9MDCxYEJIgbx+cAAAB2SURBVH'. + 'jaVczRCoQwDETRbLAWLZSGUA35/w/dVI0283i4DODew3YESmWW'. + 'kg5gWkoQAe6TleUQI/66Sy7i56+kLk7cht2N0+hcnJgQu0SqiC'. + '1SzSIbzWSi6gavqJ63wSduRi2f+kwyD5rEukwCdZ1kGAMGMfv9'. + 'AbWuGMOr5COSAAAAAElFTkSuQmCC' ; + } +} + +?> \ No newline at end of file diff --git a/gosa-core/include/jpgraph/imgdata_stars.inc.php b/gosa-core/include/jpgraph/imgdata_stars.inc.php new file mode 100644 index 000000000..3c5f799a8 --- /dev/null +++ b/gosa-core/include/jpgraph/imgdata_stars.inc.php @@ -0,0 +1,144 @@ + 'imgdata'); + + protected $colors = array('bluegreen','lightblue','purple','blue','green','pink','red','yellow'); + protected $index = array('bluegreen'=>3,'lightblue'=>4,'purple'=>1, + 'blue'=>5,'green'=>0,'pink'=>7,'red'=>2,'yellow'=>6); + protected $maxidx = 7 ; + protected $imgdata ; + + function __construct() { + //========================================================== + // File: bstar_green_001.png + //========================================================== + $this->imgdata[0][0]= 329 ; + $this->imgdata[0][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAAUV'. + 'BMVEX///////+/v7+83rqcyY2Q/4R7/15y/1tp/05p/0lg/zdX'. + '/zdX/zVV/zdO/zFJ9TFJvDFD4yg+8Bw+3iU68hwurhYotxYosx'. + 'YokBoTfwANgQFUp7DWAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgF'. + 'HUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJj'. + 'CRyxgTAAAAcUlEQVR4nH3MSw6AIAwEUBL/IKBWwXL/g0pLojUS'. + 'ZzGLl8ko9Zumhr5iy66/GH0dp49llNPB5sTotDY5PVuLG6tnM9'. + 'CVKSIe1joSgPsAKSuANNaENFQvTAGzmheSkUpMBWeJZwqBT8wo'. + 'hmysD4bnnPsC/x8ItUdGPfAAAAAASUVORK5CYII=' ; + //========================================================== + // File: bstar_blred.png + //========================================================== + $this->imgdata[1][0]= 325 ; + $this->imgdata[1][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'. + 'BMVEX///+/v79uRJ6jWPOSUtKrb+ejWO+gWPaGTruJTr6rZvF2'. + 'RqC2ocqdVuCeV+egV/GsnLuIXL66rMSpcOyATbipY/OdWOp+VK'. + 'aTU9WhV+yJKBoLAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'. + 'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJwynv1'. + 'XVAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'. + 'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'. + 'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'. + 'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; + + //========================================================== + // File: bstar_red_001.png + //========================================================== + $this->imgdata[2][0]= 325 ; + $this->imgdata[2][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'. + 'BMVEX///+/v7+eRFHzWG3SUmHnb37vWGr2WHG7Tlm+TljxZneg'. + 'Rk3KoaXgVmXnV2nxV227nJ++XGzErK3scIS4TVzzY3fqWG2mVF'. + 'zVU2PsV2rJFw9VAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'. + 'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJzCI0C'. + 'lSAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'. + 'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'. + 'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'. + 'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; + + //========================================================== + // File: bstar_blgr_001.png + //========================================================== + $this->imgdata[3][0]= 325 ; + $this->imgdata[3][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'. + 'BMVEX///+/v79Ehp5Yx/NSq9Jvw+dYwu9YzfZOmbtOmb5myPFG'. + 'gqChvcpWteBXvedXxvGcsbtcpb6su8RwzOxNmrhjyvNYwupUjK'. + 'ZTr9VXwOyJhmWNAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'. + 'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJTC65k'. + 'vQAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'. + 'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'. + 'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'. + 'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; + + //========================================================== + // File: bstar_blgr_002.png + //========================================================== + $this->imgdata[4][0]= 325 ; + $this->imgdata[4][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'. + 'BMVEX///+/v79EnpxY8/FS0dJv5+dY7+9Y9vBOubtOur5m8fFG'. + 'nKChycpW3uBX5+ZX8e2curtcvrqswsRw7OdNuLZj8/BY6udUpK'. + 'ZT1dRX7OtNkrW5AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'. + 'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJgXHeN'. + 'wwAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'. + 'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'. + 'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'. + 'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; + + //========================================================== + // File: bstar_blue_001.png + //========================================================== + $this->imgdata[5][0]= 325 ; + $this->imgdata[5][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'. + 'BMVEX///+/v79EY55Yi/NSetJvledYiO9YkPZOb7tObr5mkvFG'. + 'X6ChrcpWgOBXhedXi/Gcpbtcf76sssRwnOxNcbhjk/NYiepUbK'. + 'ZTfdVXh+ynNEzzAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'. + 'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJhStyP'. + 'zCAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'. + 'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'. + 'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'. + 'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; + + //========================================================== + // File: bstar_oy_007.png + //========================================================== + $this->imgdata[6][0]= 325 ; + $this->imgdata[6][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'. + 'BMVEX///+/v7+ejUTz11jSvVLn02/v1lj21li7q06+r07x2mag'. + 'lUbKxKHgy1bnz1fx1Ve7t5y+qlzEwqzs03C4pE3z2WPqz1imml'. + 'TVv1Ps01dGRjeyAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'. + 'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJjsGGc'. + 'GbAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'. + 'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'. + 'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'. + 'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; + + //========================================================== + // File: bstar_lred.png + //========================================================== + $this->imgdata[7][0]= 325 ; + $this->imgdata[7][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'. + 'BMVEX///+/v7+eRJPzWN3SUr7nb9TvWNj2WOS7Tqi+TqnxZtyg'. + 'Ro/KocPgVsjnV9LxV927nLa+XLTErL7scN24TarzY9/qWNemVJ'. + 'jVU8LsV9VCwcc9AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'. + 'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJxi9ZY'. + 'GoAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'. + 'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'. + 'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'. + 'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; + } +} + +?> \ No newline at end of file diff --git a/gosa-core/include/jpgraph/jpg-config.inc.php b/gosa-core/include/jpgraph/jpg-config.inc.php new file mode 100644 index 000000000..35081fa05 --- /dev/null +++ b/gosa-core/include/jpgraph/jpg-config.inc.php @@ -0,0 +1,132 @@ + diff --git a/gosa-core/include/jpgraph/jpgraph.php b/gosa-core/include/jpgraph/jpgraph.php new file mode 100644 index 000000000..f5df2afe3 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph.php @@ -0,0 +1,5401 @@ +Get(11,$file,$lineno); + die($msg); + } + else { + define('CACHE_DIR', $_SERVER['TEMP'] . '/'); + } + } else { + define('CACHE_DIR','/tmp/jpgraph_cache/'); + } + } +} +elseif( !defined('CACHE_DIR') ) { + define('CACHE_DIR', ''); +} + +// +// Setup path for western/latin TTF fonts +// +if (!defined('TTF_DIR')) { + if (strstr( PHP_OS, 'WIN') ) { + $sroot = getenv('SystemRoot'); + if( empty($sroot) ) { + $t = new ErrMsgText(); + $msg = $t->Get(12,$file,$lineno); + die($msg); + } + else { + define('TTF_DIR', $sroot.'/fonts/'); + } + } else { + define('TTF_DIR','/usr/share/fonts/truetype/'); + } +} + +// +// Setup path for MultiByte TTF fonts (japanese, chinese etc.) +// +if (!defined('MBTTF_DIR')) { + if (strstr( PHP_OS, 'WIN') ) { + $sroot = getenv('SystemRoot'); + if( empty($sroot) ) { + $t = new ErrMsgText(); + $msg = $t->Get(12,$file,$lineno); + die($msg); + } + else { + define('MBTTF_DIR', $sroot.'/fonts/'); + } + } else { + define('MBTTF_DIR','/usr/share/fonts/truetype/'); + } +} + +// +// Check minimum PHP version +// +function CheckPHPVersion($aMinVersion) { + list($majorC, $minorC, $editC) = preg_split('/[\/.-]/', PHP_VERSION); + list($majorR, $minorR, $editR) = preg_split('/[\/.-]/', $aMinVersion); + + if ($majorC != $majorR) return false; + if ($majorC < $majorR) return false; + // same major - check minor + if ($minorC > $minorR) return true; + if ($minorC < $minorR) return false; + // and same minor + if ($editC >= $editR) return true; + return true; +} + +// +// Make sure PHP version is high enough +// +if( !CheckPHPVersion(MIN_PHPVERSION) ) { + JpGraphError::RaiseL(13,PHP_VERSION,MIN_PHPVERSION); + die(); +} + +// +// Make GD sanity check +// +if( !function_exists("imagetypes") || !function_exists('imagecreatefromstring') ) { + JpGraphError::RaiseL(25001); + //("This PHP installation is not configured with the GD library. Please recompile PHP with GD support to run JpGraph. (Neither function imagetypes() nor imagecreatefromstring() does exist)"); +} + +// +// Setup PHP error handler +// +function _phpErrorHandler($errno,$errmsg,$filename, $linenum, $vars) { + // Respect current error level + if( $errno & error_reporting() ) { + JpGraphError::RaiseL(25003,basename($filename),$linenum,$errmsg); + } +} + +if( INSTALL_PHP_ERR_HANDLER ) { + set_error_handler("_phpErrorHandler"); +} + +// +// Check if there were any warnings, perhaps some wrong includes by the user. In this +// case we raise it immediately since otherwise the image will not show and makes +// debugging difficult. This is controlled by the user setting CATCH_PHPERRMSG +// +if( isset($GLOBALS['php_errormsg']) && CATCH_PHPERRMSG && !preg_match('/|Deprecated|/i', $GLOBALS['php_errormsg']) ) { + JpGraphError::RaiseL(25004,$GLOBALS['php_errormsg']); +} + +// Useful mathematical function +function sign($a) {return $a >= 0 ? 1 : -1;} + +// +// Utility function to generate an image name based on the filename we +// are running from and assuming we use auto detection of graphic format +// (top level), i.e it is safe to call this function +// from a script that uses JpGraph +// +function GenImgName() { + // Determine what format we should use when we save the images + $supported = imagetypes(); + if( $supported & IMG_PNG ) $img_format="png"; + elseif( $supported & IMG_GIF ) $img_format="gif"; + elseif( $supported & IMG_JPG ) $img_format="jpeg"; + elseif( $supported & IMG_WBMP ) $img_format="wbmp"; + elseif( $supported & IMG_XPM ) $img_format="xpm"; + + + if( !isset($_SERVER['PHP_SELF']) ) { + JpGraphError::RaiseL(25005); + //(" Can't access PHP_SELF, PHP global variable. You can't run PHP from command line if you want to use the 'auto' naming of cache or image files."); + } + $fname = basename($_SERVER['PHP_SELF']); + if( !empty($_SERVER['QUERY_STRING']) ) { + $q = @$_SERVER['QUERY_STRING']; + $fname .= '_'.preg_replace("/\W/", "_", $q).'.'.$img_format; + } + else { + $fname = substr($fname,0,strlen($fname)-4).'.'.$img_format; + } + return $fname; +} + +//=================================================== +// CLASS JpgTimer +// Description: General timing utility class to handle +// time measurement of generating graphs. Multiple +// timers can be started. +//=================================================== +class JpgTimer { + private $start, $idx; + + function __construct() { + $this->idx=0; + } + + // Push a new timer start on stack + function Push() { + list($ms,$s)=explode(" ",microtime()); + $this->start[$this->idx++]=floor($ms*1000) + 1000*$s; + } + + // Pop the latest timer start and return the diff with the + // current time + function Pop() { + assert($this->idx>0); + list($ms,$s)=explode(" ",microtime()); + $etime=floor($ms*1000) + (1000*$s); + $this->idx--; + return $etime-$this->start[$this->idx]; + } +} // Class + +//=================================================== +// CLASS DateLocale +// Description: Hold localized text used in dates +//=================================================== +class DateLocale { + + public $iLocale = 'C'; // environmental locale be used by default + private $iDayAbb = null, $iShortDay = null, $iShortMonth = null, $iMonthName = null; + + function __construct() { + settype($this->iDayAbb, 'array'); + settype($this->iShortDay, 'array'); + settype($this->iShortMonth, 'array'); + settype($this->iMonthName, 'array'); + $this->Set('C'); + } + + function Set($aLocale) { + if ( in_array($aLocale, array_keys($this->iDayAbb)) ){ + $this->iLocale = $aLocale; + return TRUE; // already cached nothing else to do! + } + + $pLocale = setlocale(LC_TIME, 0); // get current locale for LC_TIME + + if (is_array($aLocale)) { + foreach ($aLocale as $loc) { + $res = @setlocale(LC_TIME, $loc); + if ( $res ) { + $aLocale = $loc; + break; + } + } + } + else { + $res = @setlocale(LC_TIME, $aLocale); + } + + if ( ! $res ) { + JpGraphError::RaiseL(25007,$aLocale); + //("You are trying to use the locale ($aLocale) which your PHP installation does not support. Hint: Use '' to indicate the default locale for this geographic region."); + return FALSE; + } + + $this->iLocale = $aLocale; + for( $i = 0, $ofs = 0 - strftime('%w'); $i < 7; $i++, $ofs++ ) { + $day = strftime('%a', strtotime("$ofs day")); + $day[0] = strtoupper($day[0]); + $this->iDayAbb[$aLocale][]= $day[0]; + $this->iShortDay[$aLocale][]= $day; + } + + for($i=1; $i<=12; ++$i) { + list($short ,$full) = explode('|', strftime("%b|%B",strtotime("2001-$i-01"))); + $this->iShortMonth[$aLocale][] = ucfirst($short); + $this->iMonthName [$aLocale][] = ucfirst($full); + } + + setlocale(LC_TIME, $pLocale); + + return TRUE; + } + + + function GetDayAbb() { + return $this->iDayAbb[$this->iLocale]; + } + + function GetShortDay() { + return $this->iShortDay[$this->iLocale]; + } + + function GetShortMonth() { + return $this->iShortMonth[$this->iLocale]; + } + + function GetShortMonthName($aNbr) { + return $this->iShortMonth[$this->iLocale][$aNbr]; + } + + function GetLongMonthName($aNbr) { + return $this->iMonthName[$this->iLocale][$aNbr]; + } + + function GetMonth() { + return $this->iMonthName[$this->iLocale]; + } +} + +// Global object handlers +$gDateLocale = new DateLocale(); +$gJpgDateLocale = new DateLocale(); + +//======================================================= +// CLASS Footer +// Description: Encapsulates the footer line in the Graph +//======================================================= +class Footer { + public $iLeftMargin = 3, $iRightMargin = 3, $iBottomMargin = 3 ; + public $left,$center,$right; + private $iTimer=null, $itimerpoststring=''; + + function __construct() { + $this->left = new Text(); + $this->left->ParagraphAlign('left'); + $this->center = new Text(); + $this->center->ParagraphAlign('center'); + $this->right = new Text(); + $this->right->ParagraphAlign('right'); + } + + function SetTimer($aTimer,$aTimerPostString='') { + $this->iTimer = $aTimer; + $this->itimerpoststring = $aTimerPostString; + } + + function SetMargin($aLeft=3,$aRight=3,$aBottom=3) { + $this->iLeftMargin = $aLeft; + $this->iRightMargin = $aRight; + $this->iBottomMargin = $aBottom; + } + + function Stroke($aImg) { + $y = $aImg->height - $this->iBottomMargin; + $x = $this->iLeftMargin; + $this->left->Align('left','bottom'); + $this->left->Stroke($aImg,$x,$y); + + $x = ($aImg->width - $this->iLeftMargin - $this->iRightMargin)/2; + $this->center->Align('center','bottom'); + $this->center->Stroke($aImg,$x,$y); + + $x = $aImg->width - $this->iRightMargin; + $this->right->Align('right','bottom'); + if( $this->iTimer != null ) { + $this->right->Set( $this->right->t . sprintf('%.3f',$this->iTimer->Pop()/1000.0) . $this->itimerpoststring ); + } + $this->right->Stroke($aImg,$x,$y); + } +} + + +//=================================================== +// CLASS Graph +// Description: Main class to handle graphs +//=================================================== +class Graph { + public $cache=null; // Cache object (singleton) + public $img=null; // Img object (singleton) + public $plots=array(); // Array of all plot object in the graph (for Y 1 axis) + public $y2plots=array(); // Array of all plot object in the graph (for Y 2 axis) + public $ynplots=array(); + public $xscale=null; // X Scale object (could be instance of LinearScale or LogScale + public $yscale=null,$y2scale=null, $ynscale=array(); + public $iIcons = array(); // Array of Icons to add to + public $cache_name; // File name to be used for the current graph in the cache directory + public $xgrid=null; // X Grid object (linear or logarithmic) + public $ygrid=null,$y2grid=null; //dito for Y + public $doframe=true,$frame_color='black', $frame_weight=1; // Frame around graph + public $boxed=false, $box_color='black', $box_weight=1; // Box around plot area + public $doshadow=false,$shadow_width=4,$shadow_color='gray@0.5'; // Shadow for graph + public $xaxis=null; // X-axis (instane of Axis class) + public $yaxis=null, $y2axis=null, $ynaxis=array(); // Y axis (instance of Axis class) + public $margin_color=array(230,230,230); // Margin color of graph + public $plotarea_color=array(255,255,255); // Plot area color + public $title,$subtitle,$subsubtitle; // Title and subtitle(s) text object + public $axtype="linlin"; // Type of axis + public $xtick_factor,$ytick_factor; // Factor to determine the maximum number of ticks depending on the plot width + public $texts=null, $y2texts=null; // Text object to ge shown in the graph + public $lines=null, $y2lines=null; + public $bands=null, $y2bands=null; + public $text_scale_off=0, $text_scale_abscenteroff=-1; // Text scale in fractions and for centering bars + public $background_image='',$background_image_type=-1,$background_image_format="png"; + public $background_image_bright=0,$background_image_contr=0,$background_image_sat=0; + public $background_image_xpos=0,$background_image_ypos=0; + public $image_bright=0, $image_contr=0, $image_sat=0; + public $inline; + public $showcsim=0,$csimcolor="red";//debug stuff, draw the csim boundaris on the image if <>0 + public $grid_depth=DEPTH_BACK; // Draw grid under all plots as default + public $iAxisStyle = AXSTYLE_SIMPLE; + public $iCSIMdisplay=false,$iHasStroked = false; + public $footer; + public $csimcachename = '', $csimcachetimeout = 0, $iCSIMImgAlt=''; + public $iDoClipping = false; + public $y2orderback=true; + public $tabtitle; + public $bkg_gradtype=-1,$bkg_gradstyle=BGRAD_MARGIN; + public $bkg_gradfrom='navy', $bkg_gradto='silver'; + public $plot_gradtype=-1,$plot_gradstyle=BGRAD_MARGIN; + public $plot_gradfrom='silver', $plot_gradto='navy'; + + public $titlebackground = false; + public $titlebackground_color = 'lightblue', + $titlebackground_style = 1, + $titlebackground_framecolor = 'blue', + $titlebackground_framestyle = 2, + $titlebackground_frameweight = 1, + $titlebackground_bevelheight = 3 ; + public $titlebkg_fillstyle=TITLEBKG_FILLSTYLE_SOLID; + public $titlebkg_scolor1='black',$titlebkg_scolor2='white'; + public $framebevel = false, $framebeveldepth = 2 ; + public $framebevelborder = false, $framebevelbordercolor='black'; + public $framebevelcolor1='white@0.4', $framebevelcolor2='black@0.4'; + public $background_image_mix=100; + public $background_cflag = ''; + public $background_cflag_type = BGIMG_FILLPLOT; + public $background_cflag_mix = 100; + public $iImgTrans=false, + $iImgTransHorizon = 100,$iImgTransSkewDist=150, + $iImgTransDirection = 1, $iImgTransMinSize = true, + $iImgTransFillColor='white',$iImgTransHighQ=false, + $iImgTransBorder=false,$iImgTransHorizonPos=0.5; + public $legend; + protected $iYAxisDeltaPos=50; + protected $iIconDepth=DEPTH_BACK; + protected $iAxisLblBgType = 0, + $iXAxisLblBgFillColor = 'lightgray', $iXAxisLblBgColor = 'black', + $iYAxisLblBgFillColor = 'lightgray', $iYAxisLblBgColor = 'black'; + protected $iTables=NULL; + + // aWIdth Width in pixels of image + // aHeight Height in pixels of image + // aCachedName Name for image file in cache directory + // aTimeOut Timeout in minutes for image in cache + // aInline If true the image is streamed back in the call to Stroke() + // If false the image is just created in the cache + function __construct($aWidth=300,$aHeight=200,$aCachedName='',$aTimeout=0,$aInline=true) { + + if( !is_numeric($aWidth) || !is_numeric($aHeight) ) { + JpGraphError::RaiseL(25008);//('Image width/height argument in Graph::Graph() must be numeric'); + } + + // Automatically generate the image file name based on the name of the script that + // generates the graph + if( $aCachedName == 'auto' ) { + $aCachedName=GenImgName(); + } + + // Should the image be streamed back to the browser or only to the cache? + $this->inline=$aInline; + + $this->img = new RotImage($aWidth,$aHeight); + $this->cache = new ImgStreamCache(); + + // Window doesn't like '?' in the file name so replace it with an '_' + $aCachedName = str_replace("?","_",$aCachedName); + $this->SetupCache($aCachedName, $aTimeout); + + $this->title = new Text(); + $this->title->ParagraphAlign('center'); + $this->title->SetFont(FF_FONT2,FS_BOLD); + $this->title->SetMargin(5); + $this->title->SetAlign('center'); + + $this->subtitle = new Text(); + $this->subtitle->ParagraphAlign('center'); + $this->subtitle->SetMargin(3); + $this->subtitle->SetAlign('center'); + + $this->subsubtitle = new Text(); + $this->subsubtitle->ParagraphAlign('center'); + $this->subsubtitle->SetMargin(3); + $this->subsubtitle->SetAlign('center'); + + $this->legend = new Legend(); + $this->footer = new Footer(); + + // If the cached version exist just read it directly from the + // cache, stream it back to browser and exit + if( $aCachedName!='' && READ_CACHE && $aInline ) { + if( $this->cache->GetAndStream($this->img,$aCachedName) ) { + exit(); + } + } + + $this->SetTickDensity(); // Normal density + + $this->tabtitle = new GraphTabTitle(); + } + + function SetupCache($aFilename,$aTimeout=60) { + $this->cache_name = $aFilename; + $this->cache->SetTimeOut($aTimeout); + } + + // Enable final image perspective transformation + function Set3DPerspective($aDir=1,$aHorizon=100,$aSkewDist=120,$aQuality=false,$aFillColor='#FFFFFF',$aBorder=false,$aMinSize=true,$aHorizonPos=0.5) { + $this->iImgTrans = true; + $this->iImgTransHorizon = $aHorizon; + $this->iImgTransSkewDist= $aSkewDist; + $this->iImgTransDirection = $aDir; + $this->iImgTransMinSize = $aMinSize; + $this->iImgTransFillColor=$aFillColor; + $this->iImgTransHighQ=$aQuality; + $this->iImgTransBorder=$aBorder; + $this->iImgTransHorizonPos=$aHorizonPos; + } + + function SetUserFont($aNormal,$aBold='',$aItalic='',$aBoldIt='') { + $this->img->ttf->SetUserFont($aNormal,$aBold,$aItalic,$aBoldIt); + } + + function SetUserFont1($aNormal,$aBold='',$aItalic='',$aBoldIt='') { + $this->img->ttf->SetUserFont1($aNormal,$aBold,$aItalic,$aBoldIt); + } + + function SetUserFont2($aNormal,$aBold='',$aItalic='',$aBoldIt='') { + $this->img->ttf->SetUserFont2($aNormal,$aBold,$aItalic,$aBoldIt); + } + + function SetUserFont3($aNormal,$aBold='',$aItalic='',$aBoldIt='') { + $this->img->ttf->SetUserFont3($aNormal,$aBold,$aItalic,$aBoldIt); + } + + // Set Image format and optional quality + function SetImgFormat($aFormat,$aQuality=75) { + $this->img->SetImgFormat($aFormat,$aQuality); + } + + // Should the grid be in front or back of the plot? + function SetGridDepth($aDepth) { + $this->grid_depth=$aDepth; + } + + function SetIconDepth($aDepth) { + $this->iIconDepth=$aDepth; + } + + // Specify graph angle 0-360 degrees. + function SetAngle($aAngle) { + $this->img->SetAngle($aAngle); + } + + function SetAlphaBlending($aFlg=true) { + $this->img->SetAlphaBlending($aFlg); + } + + // Shortcut to image margin + function SetMargin($lm,$rm,$tm,$bm) { + $this->img->SetMargin($lm,$rm,$tm,$bm); + } + + function SetY2OrderBack($aBack=true) { + $this->y2orderback = $aBack; + } + + // Rotate the graph 90 degrees and set the margin + // when we have done a 90 degree rotation + function Set90AndMargin($lm=0,$rm=0,$tm=0,$bm=0) { + $lm = $lm ==0 ? floor(0.2 * $this->img->width) : $lm ; + $rm = $rm ==0 ? floor(0.1 * $this->img->width) : $rm ; + $tm = $tm ==0 ? floor(0.2 * $this->img->height) : $tm ; + $bm = $bm ==0 ? floor(0.1 * $this->img->height) : $bm ; + + $adj = ($this->img->height - $this->img->width)/2; + $this->img->SetMargin($tm-$adj,$bm-$adj,$rm+$adj,$lm+$adj); + $this->img->SetCenter(floor($this->img->width/2),floor($this->img->height/2)); + $this->SetAngle(90); + if( empty($this->yaxis) || empty($this->xaxis) ) { + JpgraphError::RaiseL(25009);//('You must specify what scale to use with a call to Graph::SetScale()'); + } + $this->xaxis->SetLabelAlign('right','center'); + $this->yaxis->SetLabelAlign('center','bottom'); + } + + function SetClipping($aFlg=true) { + $this->iDoClipping = $aFlg ; + } + + // Add a plot object to the graph + function Add($aPlot) { + if( $aPlot == null ) { + JpGraphError::RaiseL(25010);//("Graph::Add() You tried to add a null plot to the graph."); + } + if( is_array($aPlot) && count($aPlot) > 0 ) { + $cl = $aPlot[0]; + } + else { + $cl = $aPlot; + } + + if( $cl instanceof Text ) $this->AddText($aPlot); + elseif( class_exists('PlotLine',false) && ($cl instanceof PlotLine) ) $this->AddLine($aPlot); + elseif( class_exists('PlotBand',false) && ($cl instanceof PlotBand) ) $this->AddBand($aPlot); + elseif( class_exists('IconPlot',false) && ($cl instanceof IconPlot) ) $this->AddIcon($aPlot); + elseif( class_exists('GTextTable',false) && ($cl instanceof GTextTable) ) $this->AddTable($aPlot); + else { + if( is_array($aPlot) ) { + $this->plots = array_merge($this->plots,$aPlot); + } + else { + $this->plots[] = $aPlot; + } + } + } + + function AddTable($aTable) { + if( is_array($aTable) ) { + for($i=0; $i < count($aTable); ++$i ) { + $this->iTables[]=$aTable[$i]; + } + } + else { + $this->iTables[] = $aTable ; + } + } + + function AddIcon($aIcon) { + if( is_array($aIcon) ) { + for($i=0; $i < count($aIcon); ++$i ) { + $this->iIcons[]=$aIcon[$i]; + } + } + else { + $this->iIcons[] = $aIcon ; + } + } + + // Add plot to second Y-scale + function AddY2($aPlot) { + if( $aPlot == null ) { + JpGraphError::RaiseL(25011);//("Graph::AddY2() You tried to add a null plot to the graph."); + } + + if( is_array($aPlot) && count($aPlot) > 0 ) { + $cl = $aPlot[0]; + } + else { + $cl = $aPlot; + } + + if( $cl instanceof Text ) { + $this->AddText($aPlot,true); + } + elseif( class_exists('PlotLine',false) && ($cl instanceof PlotLine) ) { + $this->AddLine($aPlot,true); + } + elseif( class_exists('PlotBand',false) && ($cl instanceof PlotBand) ) { + $this->AddBand($aPlot,true); + } + else { + $this->y2plots[] = $aPlot; + } + } + + // Add plot to the extra Y-axises + function AddY($aN,$aPlot) { + + if( $aPlot == null ) { + JpGraphError::RaiseL(25012);//("Graph::AddYN() You tried to add a null plot to the graph."); + } + + if( is_array($aPlot) && count($aPlot) > 0 ) { + $cl = $aPlot[0]; + } + else { + $cl = $aPlot; + } + + if( ($cl instanceof Text) || + (class_exists('PlotLine',false) && ($cl instanceof PlotLine)) || + (class_exists('PlotBand',false) && ($cl instanceof PlotBand)) ) { + JpGraph::RaiseL(25013);//('You can only add standard plots to multiple Y-axis'); + } + else { + $this->ynplots[$aN][] = $aPlot; + } + } + + // Add text object to the graph + function AddText($aTxt,$aToY2=false) { + if( $aTxt == null ) { + JpGraphError::RaiseL(25014);//("Graph::AddText() You tried to add a null text to the graph."); + } + if( $aToY2 ) { + if( is_array($aTxt) ) { + for($i=0; $i < count($aTxt); ++$i ) { + $this->y2texts[]=$aTxt[$i]; + } + } + else { + $this->y2texts[] = $aTxt; + } + } + else { + if( is_array($aTxt) ) { + for($i=0; $i < count($aTxt); ++$i ) { + $this->texts[]=$aTxt[$i]; + } + } + else { + $this->texts[] = $aTxt; + } + } + } + + // Add a line object (class PlotLine) to the graph + function AddLine($aLine,$aToY2=false) { + if( $aLine == null ) { + JpGraphError::RaiseL(25015);//("Graph::AddLine() You tried to add a null line to the graph."); + } + + if( $aToY2 ) { + if( is_array($aLine) ) { + for($i=0; $i < count($aLine); ++$i ) { + //$this->y2lines[]=$aLine[$i]; + $this->y2plots[]=$aLine[$i]; + } + } + else { + //$this->y2lines[] = $aLine; + $this->y2plots[]=$aLine; + } + } + else { + if( is_array($aLine) ) { + for($i=0; $ilines[]=$aLine[$i]; + $this->plots[]=$aLine[$i]; + } + } + else { + //$this->lines[] = $aLine; + $this->plots[] = $aLine; + } + } + } + + // Add vertical or horizontal band + function AddBand($aBand,$aToY2=false) { + if( $aBand == null ) { + JpGraphError::RaiseL(25016);//(" Graph::AddBand() You tried to add a null band to the graph."); + } + + if( $aToY2 ) { + if( is_array($aBand) ) { + for($i=0; $i < count($aBand); ++$i ) { + $this->y2bands[] = $aBand[$i]; + } + } + else { + $this->y2bands[] = $aBand; + } + } + else { + if( is_array($aBand) ) { + for($i=0; $i < count($aBand); ++$i ) { + $this->bands[] = $aBand[$i]; + } + } + else { + $this->bands[] = $aBand; + } + } + } + + function SetPlotGradient($aFrom='navy',$aTo='silver',$aGradType=2) { + $this->plot_gradtype=$aGradType; + $this->plot_gradfrom = $aFrom; + $this->plot_gradto = $aTo; + } + + function SetBackgroundGradient($aFrom='navy',$aTo='silver',$aGradType=2,$aStyle=BGRAD_FRAME) { + $this->bkg_gradtype=$aGradType; + $this->bkg_gradstyle=$aStyle; + $this->bkg_gradfrom = $aFrom; + $this->bkg_gradto = $aTo; + } + + // Set a country flag in the background + function SetBackgroundCFlag($aName,$aBgType=BGIMG_FILLPLOT,$aMix=100) { + $this->background_cflag = $aName; + $this->background_cflag_type = $aBgType; + $this->background_cflag_mix = $aMix; + } + + // Alias for the above method + function SetBackgroundCountryFlag($aName,$aBgType=BGIMG_FILLPLOT,$aMix=100) { + $this->background_cflag = $aName; + $this->background_cflag_type = $aBgType; + $this->background_cflag_mix = $aMix; + } + + + // Specify a background image + function SetBackgroundImage($aFileName,$aBgType=BGIMG_FILLPLOT,$aImgFormat='auto') { + + // Get extension to determine image type + if( $aImgFormat == 'auto' ) { + $e = explode('.',$aFileName); + if( !$e ) { + JpGraphError::RaiseL(25018,$aFileName);//('Incorrect file name for Graph::SetBackgroundImage() : '.$aFileName.' Must have a valid image extension (jpg,gif,png) when using autodetection of image type'); + } + + $valid_formats = array('png', 'jpg', 'gif'); + $aImgFormat = strtolower($e[count($e)-1]); + if ($aImgFormat == 'jpeg') { + $aImgFormat = 'jpg'; + } + elseif (!in_array($aImgFormat, $valid_formats) ) { + JpGraphError::RaiseL(25019,$aImgFormat);//('Unknown file extension ($aImgFormat) in Graph::SetBackgroundImage() for filename: '.$aFileName); + } + } + + $this->background_image = $aFileName; + $this->background_image_type=$aBgType; + $this->background_image_format=$aImgFormat; + } + + function SetBackgroundImageMix($aMix) { + $this->background_image_mix = $aMix ; + } + + // Adjust background image position + function SetBackgroundImagePos($aXpos,$aYpos) { + $this->background_image_xpos = $aXpos ; + $this->background_image_ypos = $aYpos ; + } + + // Specify axis style (boxed or single) + function SetAxisStyle($aStyle) { + $this->iAxisStyle = $aStyle ; + } + + // Set a frame around the plot area + function SetBox($aDrawPlotFrame=true,$aPlotFrameColor=array(0,0,0),$aPlotFrameWeight=1) { + $this->boxed = $aDrawPlotFrame; + $this->box_weight = $aPlotFrameWeight; + $this->box_color = $aPlotFrameColor; + } + + // Specify color for the plotarea (not the margins) + function SetColor($aColor) { + $this->plotarea_color=$aColor; + } + + // Specify color for the margins (all areas outside the plotarea) + function SetMarginColor($aColor) { + $this->margin_color=$aColor; + } + + // Set a frame around the entire image + function SetFrame($aDrawImgFrame=true,$aImgFrameColor=array(0,0,0),$aImgFrameWeight=1) { + $this->doframe = $aDrawImgFrame; + $this->frame_color = $aImgFrameColor; + $this->frame_weight = $aImgFrameWeight; + } + + function SetFrameBevel($aDepth=3,$aBorder=false,$aBorderColor='black',$aColor1='white@0.4',$aColor2='darkgray@0.4',$aFlg=true) { + $this->framebevel = $aFlg ; + $this->framebeveldepth = $aDepth ; + $this->framebevelborder = $aBorder ; + $this->framebevelbordercolor = $aBorderColor ; + $this->framebevelcolor1 = $aColor1 ; + $this->framebevelcolor2 = $aColor2 ; + + $this->doshadow = false ; + } + + // Set the shadow around the whole image + function SetShadow($aShowShadow=true,$aShadowWidth=5,$aShadowColor='darkgray') { + $this->doshadow = $aShowShadow; + $this->shadow_color = $aShadowColor; + $this->shadow_width = $aShadowWidth; + $this->footer->iBottomMargin += $aShadowWidth; + $this->footer->iRightMargin += $aShadowWidth; + } + + // Specify x,y scale. Note that if you manually specify the scale + // you must also specify the tick distance with a call to Ticks::Set() + function SetScale($aAxisType,$aYMin=1,$aYMax=1,$aXMin=1,$aXMax=1) { + $this->axtype = $aAxisType; + + if( $aYMax < $aYMin || $aXMax < $aXMin ) { + JpGraphError::RaiseL(25020);//('Graph::SetScale(): Specified Max value must be larger than the specified Min value.'); + } + + $yt=substr($aAxisType,-3,3); + if( $yt == 'lin' ) { + $this->yscale = new LinearScale($aYMin,$aYMax); + } + elseif( $yt == 'int' ) { + $this->yscale = new LinearScale($aYMin,$aYMax); + $this->yscale->SetIntScale(); + } + elseif( $yt == 'log' ) { + $this->yscale = new LogScale($aYMin,$aYMax); + } + else { + JpGraphError::RaiseL(25021,$aAxisType);//("Unknown scale specification for Y-scale. ($aAxisType)"); + } + + $xt=substr($aAxisType,0,3); + if( $xt == 'lin' || $xt == 'tex' ) { + $this->xscale = new LinearScale($aXMin,$aXMax,'x'); + $this->xscale->textscale = ($xt == 'tex'); + } + elseif( $xt == 'int' ) { + $this->xscale = new LinearScale($aXMin,$aXMax,'x'); + $this->xscale->SetIntScale(); + } + elseif( $xt == 'dat' ) { + $this->xscale = new DateScale($aXMin,$aXMax,'x'); + } + elseif( $xt == 'log' ) { + $this->xscale = new LogScale($aXMin,$aXMax,'x'); + } + else { + JpGraphError::RaiseL(25022,$aAxisType);//(" Unknown scale specification for X-scale. ($aAxisType)"); + } + + $this->xaxis = new Axis($this->img,$this->xscale); + $this->yaxis = new Axis($this->img,$this->yscale); + $this->xgrid = new Grid($this->xaxis); + $this->ygrid = new Grid($this->yaxis); + $this->ygrid->Show(); + } + + // Specify secondary Y scale + function SetY2Scale($aAxisType='lin',$aY2Min=1,$aY2Max=1) { + if( $aAxisType == 'lin' ) { + $this->y2scale = new LinearScale($aY2Min,$aY2Max); + } + elseif( $aAxisType == 'int' ) { + $this->y2scale = new LinearScale($aY2Min,$aY2Max); + $this->y2scale->SetIntScale(); + } + elseif( $aAxisType == 'log' ) { + $this->y2scale = new LogScale($aY2Min,$aY2Max); + } + else { + JpGraphError::RaiseL(25023,$aAxisType);//("JpGraph: Unsupported Y2 axis type: $aAxisType\nMust be one of (lin,log,int)"); + } + + $this->y2axis = new Axis($this->img,$this->y2scale); + $this->y2axis->scale->ticks->SetDirection(SIDE_LEFT); + $this->y2axis->SetLabelSide(SIDE_RIGHT); + $this->y2axis->SetPos('max'); + $this->y2axis->SetTitleSide(SIDE_RIGHT); + + // Deafult position is the max x-value + $this->y2grid = new Grid($this->y2axis); + } + + // Set the delta position (in pixels) between the multiple Y-axis + function SetYDeltaDist($aDist) { + $this->iYAxisDeltaPos = $aDist; + } + + // Specify secondary Y scale + function SetYScale($aN,$aAxisType="lin",$aYMin=1,$aYMax=1) { + + if( $aAxisType == 'lin' ) { + $this->ynscale[$aN] = new LinearScale($aYMin,$aYMax); + } + elseif( $aAxisType == 'int' ) { + $this->ynscale[$aN] = new LinearScale($aYMin,$aYMax); + $this->ynscale[$aN]->SetIntScale(); + } + elseif( $aAxisType == 'log' ) { + $this->ynscale[$aN] = new LogScale($aYMin,$aYMax); + } + else { + JpGraphError::RaiseL(25024,$aAxisType);//("JpGraph: Unsupported Y axis type: $aAxisType\nMust be one of (lin,log,int)"); + } + + $this->ynaxis[$aN] = new Axis($this->img,$this->ynscale[$aN]); + $this->ynaxis[$aN]->scale->ticks->SetDirection(SIDE_LEFT); + $this->ynaxis[$aN]->SetLabelSide(SIDE_RIGHT); + } + + // Specify density of ticks when autoscaling 'normal', 'dense', 'sparse', 'verysparse' + // The dividing factor have been determined heuristically according to my aesthetic + // sense (or lack off) y.m.m.v ! + function SetTickDensity($aYDensity=TICKD_NORMAL,$aXDensity=TICKD_NORMAL) { + $this->xtick_factor=30; + $this->ytick_factor=25; + switch( $aYDensity ) { + case TICKD_DENSE: + $this->ytick_factor=12; + break; + case TICKD_NORMAL: + $this->ytick_factor=25; + break; + case TICKD_SPARSE: + $this->ytick_factor=40; + break; + case TICKD_VERYSPARSE: + $this->ytick_factor=100; + break; + default: + JpGraphError::RaiseL(25025,$densy);//("JpGraph: Unsupported Tick density: $densy"); + } + switch( $aXDensity ) { + case TICKD_DENSE: + $this->xtick_factor=15; + break; + case TICKD_NORMAL: + $this->xtick_factor=30; + break; + case TICKD_SPARSE: + $this->xtick_factor=45; + break; + case TICKD_VERYSPARSE: + $this->xtick_factor=60; + break; + default: + JpGraphError::RaiseL(25025,$densx);//("JpGraph: Unsupported Tick density: $densx"); + } + } + + + // Get a string of all image map areas + function GetCSIMareas() { + if( !$this->iHasStroked ) { + $this->Stroke(_CSIM_SPECIALFILE); + } + + $csim = $this->title->GetCSIMAreas(); + $csim .= $this->subtitle->GetCSIMAreas(); + $csim .= $this->subsubtitle->GetCSIMAreas(); + $csim .= $this->legend->GetCSIMAreas(); + + if( $this->y2axis != NULL ) { + $csim .= $this->y2axis->title->GetCSIMAreas(); + } + + if( $this->texts != null ) { + $n = count($this->texts); + for($i=0; $i < $n; ++$i ) { + $csim .= $this->texts[$i]->GetCSIMAreas(); + } + } + + if( $this->y2texts != null && $this->y2scale != null ) { + $n = count($this->y2texts); + for($i=0; $i < $n; ++$i ) { + $csim .= $this->y2texts[$i]->GetCSIMAreas(); + } + } + + if( $this->yaxis != null && $this->xaxis != null ) { + $csim .= $this->yaxis->title->GetCSIMAreas(); + $csim .= $this->xaxis->title->GetCSIMAreas(); + } + + $n = count($this->plots); + for( $i=0; $i < $n; ++$i ) { + $csim .= $this->plots[$i]->GetCSIMareas(); + } + + $n = count($this->y2plots); + for( $i=0; $i < $n; ++$i ) { + $csim .= $this->y2plots[$i]->GetCSIMareas(); + } + + $n = count($this->ynaxis); + for( $i=0; $i < $n; ++$i ) { + $m = count($this->ynplots[$i]); + for($j=0; $j < $m; ++$j ) { + $csim .= $this->ynplots[$i][$j]->GetCSIMareas(); + } + } + + $n = count($this->iTables); + for( $i=0; $i < $n; ++$i ) { + $csim .= $this->iTables[$i]->GetCSIMareas(); + } + + return $csim; + } + + // Get a complete .. tag for the final image map + function GetHTMLImageMap($aMapName) { + $im = "\n"; + $im .= $this->GetCSIMareas(); + $im .= ""; + return $im; + } + + function CheckCSIMCache($aCacheName,$aTimeOut=60) { + global $_SERVER; + + if( $aCacheName=='auto' ) { + $aCacheName=basename($_SERVER['PHP_SELF']); + } + + $urlarg = $this->GetURLArguments(); + $this->csimcachename = CSIMCACHE_DIR.$aCacheName.$urlarg; + $this->csimcachetimeout = $aTimeOut; + + // First determine if we need to check for a cached version + // This differs from the standard cache in the sense that the + // image and CSIM map HTML file is written relative to the directory + // the script executes in and not the specified cache directory. + // The reason for this is that the cache directory is not necessarily + // accessible from the HTTP server. + if( $this->csimcachename != '' ) { + $dir = dirname($this->csimcachename); + $base = basename($this->csimcachename); + $base = strtok($base,'.'); + $suffix = strtok('.'); + $basecsim = $dir.'/'.$base.'?'.$urlarg.'_csim_.html'; + $baseimg = $dir.'/'.$base.'?'.$urlarg.'.'.$this->img->img_format; + + $timedout=false; + // Does it exist at all ? + + if( file_exists($basecsim) && file_exists($baseimg) ) { + // Check that it hasn't timed out + $diff=time()-filemtime($basecsim); + if( $this->csimcachetimeout>0 && ($diff > $this->csimcachetimeout*60) ) { + $timedout=true; + @unlink($basecsim); + @unlink($baseimg); + } + else { + if ($fh = @fopen($basecsim, "r")) { + fpassthru($fh); + return true; + } + else { + JpGraphError::RaiseL(25027,$basecsim);//(" Can't open cached CSIM \"$basecsim\" for reading."); + } + } + } + } + return false; + } + + // Build the argument string to be used with the csim images + static function GetURLArguments($aAddRecursiveBlocker=false) { + + if( $aAddRecursiveBlocker ) { + // This is a JPGRAPH internal defined that prevents + // us from recursively coming here again + $urlarg = _CSIM_DISPLAY.'=1'; + } + + // Now reconstruct any user URL argument + reset($_GET); + while( list($key,$value) = each($_GET) ) { + if( is_array($value) ) { + foreach ( $value as $k => $v ) { + $urlarg .= '&'.$key.'%5B'.$k.'%5D='.urlencode($v); + } + } + else { + $urlarg .= '&'.$key.'='.urlencode($value); + } + } + + // It's not ideal to convert POST argument to GET arguments + // but there is little else we can do. One idea for the + // future might be recreate the POST header in case. + reset($_POST); + while( list($key,$value) = each($_POST) ) { + if( is_array($value) ) { + foreach ( $value as $k => $v ) { + $urlarg .= '&'.$key.'%5B'.$k.'%5D='.urlencode($v); + } + } + else { + $urlarg .= '&'.$key.'='.urlencode($value); + } + } + + return $urlarg; + } + + function SetCSIMImgAlt($aAlt) { + $this->iCSIMImgAlt = $aAlt; + } + + function StrokeCSIM($aScriptName='auto',$aCSIMName='',$aBorder=0) { + if( $aCSIMName=='' ) { + // create a random map name + srand ((double) microtime() * 1000000); + $r = rand(0,100000); + $aCSIMName='__mapname'.$r.'__'; + } + + if( $aScriptName=='auto' ) { + $aScriptName=basename($_SERVER['PHP_SELF']); + } + + $urlarg = $this->GetURLArguments(true); + + if( empty($_GET[_CSIM_DISPLAY]) ) { + // First determine if we need to check for a cached version + // This differs from the standard cache in the sense that the + // image and CSIM map HTML file is written relative to the directory + // the script executes in and not the specified cache directory. + // The reason for this is that the cache directory is not necessarily + // accessible from the HTTP server. + if( $this->csimcachename != '' ) { + $dir = dirname($this->csimcachename); + $base = basename($this->csimcachename); + $base = strtok($base,'.'); + $suffix = strtok('.'); + $basecsim = $dir.'/'.$base.'?'.$urlarg.'_csim_.html'; + $baseimg = $base.'?'.$urlarg.'.'.$this->img->img_format; + + // Check that apache can write to directory specified + + if( file_exists($dir) && !is_writeable($dir) ) { + JpgraphError::RaiseL(25028,$dir);//('Apache/PHP does not have permission to write to the CSIM cache directory ('.$dir.'). Check permissions.'); + } + + // Make sure directory exists + $this->cache->MakeDirs($dir); + + // Write the image file + $this->Stroke(CSIMCACHE_DIR.$baseimg); + + // Construct wrapper HTML and write to file and send it back to browser + + // In the src URL we must replace the '?' with its encoding to prevent the arguments + // to be converted to real arguments. + $tmp = str_replace('?','%3f',$baseimg); + $htmlwrap = $this->GetHTMLImageMap($aCSIMName)."\n". + 'img->width.'" height="'.$this->img->height."\" alt=\"".$this->iCSIMImgAlt."\" />\n"; + + if($fh = @fopen($basecsim,'w') ) { + fwrite($fh,$htmlwrap); + fclose($fh); + echo $htmlwrap; + } + else { + JpGraphError::RaiseL(25029,$basecsim);//(" Can't write CSIM \"$basecsim\" for writing. Check free space and permissions."); + } + } + else { + + if( $aScriptName=='' ) { + JpGraphError::RaiseL(25030);//('Missing script name in call to StrokeCSIM(). You must specify the name of the actual image script as the first parameter to StrokeCSIM().'); + } + echo $this->GetHTMLImageMap($aCSIMName) . $this->GetCSIMImgHTML($aCSIMName, $aScriptName, $aBorder); + } + } + else { + $this->Stroke(); + } + } + + function StrokeCSIMImage() { + if( @$_GET[_CSIM_DISPLAY] == 1 ) { + $this->Stroke(); + } + } + + function GetCSIMImgHTML($aCSIMName, $aScriptName='auto', $aBorder=0 ) { + if( $aScriptName=='auto' ) { + $aScriptName=basename($_SERVER['PHP_SELF']); + } + $urlarg = $this->GetURLArguments(true); + return "\"".$this-iCSIMImgAlt."\" />\n"; + } + + function GetTextsYMinMax($aY2=false) { + if( $aY2 ) { + $txts = $this->y2texts; + } + else { + $txts = $this->texts; + } + $n = count($txts); + $min=null; + $max=null; + for( $i=0; $i < $n; ++$i ) { + if( $txts[$i]->iScalePosY !== null && $txts[$i]->iScalePosX !== null ) { + if( $min === null ) { + $min = $max = $txts[$i]->iScalePosY ; + } + else { + $min = min($min,$txts[$i]->iScalePosY); + $max = max($max,$txts[$i]->iScalePosY); + } + } + } + if( $min !== null ) { + return array($min,$max); + } + else { + return null; + } + } + + function GetTextsXMinMax($aY2=false) { + if( $aY2 ) { + $txts = $this->y2texts; + } + else { + $txts = $this->texts; + } + $n = count($txts); + $min=null; + $max=null; + for( $i=0; $i < $n; ++$i ) { + if( $txts[$i]->iScalePosY !== null && $txts[$i]->iScalePosX !== null ) { + if( $min === null ) { + $min = $max = $txts[$i]->iScalePosX ; + } + else { + $min = min($min,$txts[$i]->iScalePosX); + $max = max($max,$txts[$i]->iScalePosX); + } + } + } + if( $min !== null ) { + return array($min,$max); + } + else { + return null; + } + } + + function GetXMinMax() { + + list($min,$ymin) = $this->plots[0]->Min(); + list($max,$ymax) = $this->plots[0]->Max(); + + $i=0; + // Some plots, e.g. PlotLine should not affect the scale + // and will return (null,null). We should ignore those + // values. + while( ($min===null || $max === null) && ($i < count($this->plots)-1) ) { + ++$i; + list($min,$ymin) = $this->plots[$i]->Min(); + list($max,$ymax) = $this->plots[$i]->Max(); + } + + foreach( $this->plots as $p ) { + list($xmin,$ymin) = $p->Min(); + list($xmax,$ymax) = $p->Max(); + + if( $xmin !== null && $xmax !== null ) { + $min = Min($xmin,$min); + $max = Max($xmax,$max); + } + } + + if( $this->y2axis != null ) { + foreach( $this->y2plots as $p ) { + list($xmin,$ymin) = $p->Min(); + list($xmax,$ymax) = $p->Max(); + $min = Min($xmin,$min); + $max = Max($xmax,$max); + } + } + + $n = count($this->ynaxis); + for( $i=0; $i < $n; ++$i ) { + if( $this->ynaxis[$i] != null) { + foreach( $this->ynplots[$i] as $p ) { + list($xmin,$ymin) = $p->Min(); + list($xmax,$ymax) = $p->Max(); + $min = Min($xmin,$min); + $max = Max($xmax,$max); + } + } + } + return array($min,$max); + } + + function AdjustMarginsForTitles() { + $totrequired = ($this->title->t != '' ? $this->title->GetTextHeight($this->img) + $this->title->margin + 5 : 0 ) + + ($this->subtitle->t != '' ? $this->subtitle->GetTextHeight($this->img) + $this->subtitle->margin + 5 : 0 ) + + ($this->subsubtitle->t != '' ? $this->subsubtitle->GetTextHeight($this->img) + $this->subsubtitle->margin + 5 : 0 ) ; + + $btotrequired = 0; + if($this->xaxis != null && !$this->xaxis->hide && !$this->xaxis->hide_labels ) { + // Minimum bottom margin + if( $this->xaxis->title->t != '' ) { + if( $this->img->a == 90 ) { + $btotrequired = $this->yaxis->title->GetTextHeight($this->img) + 7 ; + } + else { + $btotrequired = $this->xaxis->title->GetTextHeight($this->img) + 7 ; + } + } + else { + $btotrequired = 0; + } + + if( $this->img->a == 90 ) { + $this->img->SetFont($this->yaxis->font_family,$this->yaxis->font_style, + $this->yaxis->font_size); + $lh = $this->img->GetTextHeight('Mg',$this->yaxis->label_angle); + } + else { + $this->img->SetFont($this->xaxis->font_family,$this->xaxis->font_style, + $this->xaxis->font_size); + $lh = $this->img->GetTextHeight('Mg',$this->xaxis->label_angle); + } + + $btotrequired += $lh + 6; + } + + if( $this->img->a == 90 ) { + // DO Nothing. It gets too messy to do this properly for 90 deg... + } + else{ + if( $this->img->top_margin < $totrequired ) { + $this->SetMargin($this->img->left_margin,$this->img->right_margin, + $totrequired,$this->img->bottom_margin); + } + if( $this->img->bottom_margin < $btotrequired ) { + $this->SetMargin($this->img->left_margin,$this->img->right_margin, + $this->img->top_margin,$btotrequired); + } + } + } + + function StrokeStore($aStrokeFileName) { + // Get the handler to prevent the library from sending the + // image to the browser + $ih = $this->Stroke(_IMG_HANDLER); + + // Stroke it to a file + $this->img->Stream($aStrokeFileName); + + // Send it back to browser + $this->img->Headers(); + $this->img->Stream(); + } + + function doAutoscaleXAxis() { + //Check if we should autoscale x-axis + if( !$this->xscale->IsSpecified() ) { + if( substr($this->axtype,0,4) == "text" ) { + $max=0; + $n = count($this->plots); + for($i=0; $i < $n; ++$i ) { + $p = $this->plots[$i]; + // We need some unfortunate sub class knowledge here in order + // to increase number of data points in case it is a line plot + // which has the barcenter set. If not it could mean that the + // last point of the data is outside the scale since the barcenter + // settings means that we will shift the entire plot half a tick step + // to the right in oder to align with the center of the bars. + if( class_exists('BarPlot',false) ) { + $cl = strtolower(get_class($p)); + if( (class_exists('BarPlot',false) && ($p instanceof BarPlot)) || empty($p->barcenter) ) { + $max=max($max,$p->numpoints-1); + } + else { + $max=max($max,$p->numpoints); + } + } + else { + if( empty($p->barcenter) ) { + $max=max($max,$p->numpoints-1); + } + else { + $max=max($max,$p->numpoints); + } + } + } + $min=0; + if( $this->y2axis != null ) { + foreach( $this->y2plots as $p ) { + $max=max($max,$p->numpoints-1); + } + } + $n = count($this->ynaxis); + for( $i=0; $i < $n; ++$i ) { + if( $this->ynaxis[$i] != null) { + foreach( $this->ynplots[$i] as $p ) { + $max=max($max,$p->numpoints-1); + } + } + } + + $this->xscale->Update($this->img,$min,$max); + $this->xscale->ticks->Set($this->xaxis->tick_step,1); + $this->xscale->ticks->SupressMinorTickMarks(); + } + else { + list($min,$max) = $this->GetXMinMax(); + + $lres = $this->GetLinesXMinMax($this->lines); + if( $lres ) { + list($linmin,$linmax) = $lres ; + $min = min($min,$linmin); + $max = max($max,$linmax); + } + + $lres = $this->GetLinesXMinMax($this->y2lines); + if( $lres ) { + list($linmin,$linmax) = $lres ; + $min = min($min,$linmin); + $max = max($max,$linmax); + } + + $tres = $this->GetTextsXMinMax(); + if( $tres ) { + list($tmin,$tmax) = $tres ; + $min = min($min,$tmin); + $max = max($max,$tmax); + } + + $tres = $this->GetTextsXMinMax(true); + if( $tres ) { + list($tmin,$tmax) = $tres ; + $min = min($min,$tmin); + $max = max($max,$tmax); + } + + $this->xscale->AutoScale($this->img,$min,$max,round($this->img->plotwidth/$this->xtick_factor)); + } + + //Adjust position of y-axis and y2-axis to minimum/maximum of x-scale + if( !is_numeric($this->yaxis->pos) && !is_string($this->yaxis->pos) ) { + $this->yaxis->SetPos($this->xscale->GetMinVal()); + } + } + elseif( $this->xscale->IsSpecified() && + ( $this->xscale->auto_ticks || !$this->xscale->ticks->IsSpecified()) ) { + // The tick calculation will use the user suplied min/max values to determine + // the ticks. If auto_ticks is false the exact user specifed min and max + // values will be used for the scale. + // If auto_ticks is true then the scale might be slightly adjusted + // so that the min and max values falls on an even major step. + $min = $this->xscale->scale[0]; + $max = $this->xscale->scale[1]; + $this->xscale->AutoScale($this->img,$min,$max,round($this->img->plotwidth/$this->xtick_factor),false); + + // Now make sure we show enough precision to accurate display the + // labels. If this is not done then the user might end up with + // a scale that might actually start with, say 13.5, butdue to rounding + // the scale label will ony show 14. + if( abs(floor($min)-$min) > 0 ) { + + // If the user has set a format then we bail out + if( $this->xscale->ticks->label_formatstr == '' && $this->xscale->ticks->label_dateformatstr == '' ) { + $this->xscale->ticks->precision = abs( floor(log10( abs(floor($min)-$min))) )+1; + } + } + } + + // Position the optional Y2 and Yn axis to the rightmost position of the x-axis + if( $this->y2axis != null ) { + if( !is_numeric($this->y2axis->pos) && !is_string($this->y2axis->pos) ) { + $this->y2axis->SetPos($this->xscale->GetMaxVal()); + } + $this->y2axis->SetTitleSide(SIDE_RIGHT); + } + + $n = count($this->ynaxis); + $nY2adj = $this->y2axis != null ? $this->iYAxisDeltaPos : 0; + for( $i=0; $i < $n; ++$i ) { + if( $this->ynaxis[$i] != null ) { + if( !is_numeric($this->ynaxis[$i]->pos) && !is_string($this->ynaxis[$i]->pos) ) { + $this->ynaxis[$i]->SetPos($this->xscale->GetMaxVal()); + $this->ynaxis[$i]->SetPosAbsDelta($i*$this->iYAxisDeltaPos + $nY2adj); + } + $this->ynaxis[$i]->SetTitleSide(SIDE_RIGHT); + } + } + } + + + function doAutoScaleYnAxis() { + + if( $this->y2scale != null) { + if( !$this->y2scale->IsSpecified() && count($this->y2plots)>0 ) { + list($min,$max) = $this->GetPlotsYMinMax($this->y2plots); + + $lres = $this->GetLinesYMinMax($this->y2lines); + if( is_array($lres) ) { + list($linmin,$linmax) = $lres ; + $min = min($min,$linmin); + $max = max($max,$linmax); + } + $tres = $this->GetTextsYMinMax(true); + if( is_array($tres) ) { + list($tmin,$tmax) = $tres ; + $min = min($min,$tmin); + $max = max($max,$tmax); + } + $this->y2scale->AutoScale($this->img,$min,$max,$this->img->plotheight/$this->ytick_factor); + } + elseif( $this->y2scale->IsSpecified() && ( $this->y2scale->auto_ticks || !$this->y2scale->ticks->IsSpecified()) ) { + // The tick calculation will use the user suplied min/max values to determine + // the ticks. If auto_ticks is false the exact user specifed min and max + // values will be used for the scale. + // If auto_ticks is true then the scale might be slightly adjusted + // so that the min and max values falls on an even major step. + $min = $this->y2scale->scale[0]; + $max = $this->y2scale->scale[1]; + $this->y2scale->AutoScale($this->img,$min,$max, + $this->img->plotheight/$this->ytick_factor, + $this->y2scale->auto_ticks); + + // Now make sure we show enough precision to accurate display the + // labels. If this is not done then the user might end up with + // a scale that might actually start with, say 13.5, butdue to rounding + // the scale label will ony show 14. + if( abs(floor($min)-$min) > 0 ) { + // If the user has set a format then we bail out + if( $this->y2scale->ticks->label_formatstr == '' && $this->y2scale->ticks->label_dateformatstr == '' ) { + $this->y2scale->ticks->precision = abs( floor(log10( abs(floor($min)-$min))) )+1; + } + } + + } + } + + + // + // Autoscale the extra Y-axises + // + $n = count($this->ynaxis); + for( $i=0; $i < $n; ++$i ) { + if( $this->ynscale[$i] != null) { + if( !$this->ynscale[$i]->IsSpecified() && count($this->ynplots[$i])>0 ) { + list($min,$max) = $this->GetPlotsYMinMax($this->ynplots[$i]); + $this->ynscale[$i]->AutoScale($this->img,$min,$max,$this->img->plotheight/$this->ytick_factor); + } + elseif( $this->ynscale[$i]->IsSpecified() && ( $this->ynscale[$i]->auto_ticks || !$this->ynscale[$i]->ticks->IsSpecified()) ) { + // The tick calculation will use the user suplied min/max values to determine + // the ticks. If auto_ticks is false the exact user specifed min and max + // values will be used for the scale. + // If auto_ticks is true then the scale might be slightly adjusted + // so that the min and max values falls on an even major step. + $min = $this->ynscale[$i]->scale[0]; + $max = $this->ynscale[$i]->scale[1]; + $this->ynscale[$i]->AutoScale($this->img,$min,$max, + $this->img->plotheight/$this->ytick_factor, + $this->ynscale[$i]->auto_ticks); + + // Now make sure we show enough precision to accurate display the + // labels. If this is not done then the user might end up with + // a scale that might actually start with, say 13.5, butdue to rounding + // the scale label will ony show 14. + if( abs(floor($min)-$min) > 0 ) { + // If the user has set a format then we bail out + if( $this->ynscale[$i]->ticks->label_formatstr == '' && $this->ynscale[$i]->ticks->label_dateformatstr == '' ) { + $this->ynscale[$i]->ticks->precision = abs( floor(log10( abs(floor($min)-$min))) )+1; + } + } + } + } + } + } + + function doAutoScaleYAxis() { + + //Check if we should autoscale y-axis + if( !$this->yscale->IsSpecified() && count($this->plots)>0 ) { + list($min,$max) = $this->GetPlotsYMinMax($this->plots); + $lres = $this->GetLinesYMinMax($this->lines); + if( is_array($lres) ) { + list($linmin,$linmax) = $lres ; + $min = min($min,$linmin); + $max = max($max,$linmax); + } + $tres = $this->GetTextsYMinMax(); + if( is_array($tres) ) { + list($tmin,$tmax) = $tres ; + $min = min($min,$tmin); + $max = max($max,$tmax); + } + $this->yscale->AutoScale($this->img,$min,$max, + $this->img->plotheight/$this->ytick_factor); + } + elseif( $this->yscale->IsSpecified() && ( $this->yscale->auto_ticks || !$this->yscale->ticks->IsSpecified()) ) { + // The tick calculation will use the user suplied min/max values to determine + // the ticks. If auto_ticks is false the exact user specifed min and max + // values will be used for the scale. + // If auto_ticks is true then the scale might be slightly adjusted + // so that the min and max values falls on an even major step. + $min = $this->yscale->scale[0]; + $max = $this->yscale->scale[1]; + $this->yscale->AutoScale($this->img,$min,$max, + $this->img->plotheight/$this->ytick_factor, + $this->yscale->auto_ticks); + + // Now make sure we show enough precision to accurate display the + // labels. If this is not done then the user might end up with + // a scale that might actually start with, say 13.5, butdue to rounding + // the scale label will ony show 14. + if( abs(floor($min)-$min) > 0 ) { + + // If the user has set a format then we bail out + if( $this->yscale->ticks->label_formatstr == '' && $this->yscale->ticks->label_dateformatstr == '' ) { + $this->yscale->ticks->precision = abs( floor(log10( abs(floor($min)-$min))) )+1; + } + } + } + + } + + function InitScaleConstants() { + // Setup scale constants + if( $this->yscale ) $this->yscale->InitConstants($this->img); + if( $this->xscale ) $this->xscale->InitConstants($this->img); + if( $this->y2scale ) $this->y2scale->InitConstants($this->img); + + $n=count($this->ynscale); + for($i=0; $i < $n; ++$i) { + if( $this->ynscale[$i] ) { + $this->ynscale[$i]->InitConstants($this->img); + } + } + } + + function doPrestrokeAdjustments() { + + // Do any pre-stroke adjustment that is needed by the different plot types + // (i.e bar plots want's to add an offset to the x-labels etc) + for($i=0; $i < count($this->plots) ; ++$i ) { + $this->plots[$i]->PreStrokeAdjust($this); + $this->plots[$i]->DoLegend($this); + } + + // Any plots on the second Y scale? + if( $this->y2scale != null ) { + for($i=0; $iy2plots) ; ++$i ) { + $this->y2plots[$i]->PreStrokeAdjust($this); + $this->y2plots[$i]->DoLegend($this); + } + } + + // Any plots on the extra Y axises? + $n = count($this->ynaxis); + for($i=0; $i<$n ; ++$i ) { + if( $this->ynplots == null || $this->ynplots[$i] == null) { + JpGraphError::RaiseL(25032,$i);//("No plots for Y-axis nbr:$i"); + } + $m = count($this->ynplots[$i]); + for($j=0; $j < $m; ++$j ) { + $this->ynplots[$i][$j]->PreStrokeAdjust($this); + $this->ynplots[$i][$j]->DoLegend($this); + } + } + } + + function StrokeBands($aDepth,$aCSIM) { + // Stroke bands + if( $this->bands != null && !$aCSIM) { + for($i=0; $i < count($this->bands); ++$i) { + // Stroke all bands that asks to be in the background + if( $this->bands[$i]->depth == $aDepth ) { + $this->bands[$i]->Stroke($this->img,$this->xscale,$this->yscale); + } + } + } + + if( $this->y2bands != null && $this->y2scale != null && !$aCSIM ) { + for($i=0; $i < count($this->y2bands); ++$i) { + // Stroke all bands that asks to be in the foreground + if( $this->y2bands[$i]->depth == $aDepth ) { + $this->y2bands[$i]->Stroke($this->img,$this->xscale,$this->y2scale); + } + } + } + } + + + // Stroke the graph + // $aStrokeFileName If != "" the image will be written to this file and NOT + // streamed back to the browser + function Stroke($aStrokeFileName='') { + + // Fist make a sanity check that user has specified a scale + if( empty($this->yscale) ) { + JpGraphError::RaiseL(25031);//('You must specify what scale to use with a call to Graph::SetScale().'); + } + + // Start by adjusting the margin so that potential titles will fit. + $this->AdjustMarginsForTitles(); + + // Give the plot a chance to do any scale adjuments the individual plots + // wants to do. Right now this is only used by the contour plot to set scale + // limits + for($i=0; $i < count($this->plots) ; ++$i ) { + $this->plots[$i]->PreScaleSetup($this); + } + + // Init scale constants that are used to calculate the transformation from + // world to pixel coordinates + $this->InitScaleConstants(); + + // If the filename is the predefined value = '_csim_special_' + // we assume that the call to stroke only needs to do enough + // to correctly generate the CSIM maps. + // We use this variable to skip things we don't strictly need + // to do to generate the image map to improve performance + // a best we can. Therefor you will see a lot of tests !$_csim in the + // code below. + $_csim = ($aStrokeFileName===_CSIM_SPECIALFILE); + + // If we are called the second time (perhaps the user has called GetHTMLImageMap() + // himself then the legends have alsready been populated once in order to get the + // CSIM coordinats. Since we do not want the legends to be populated a second time + // we clear the legends + $this->legend->Clear(); + + // We need to know if we have stroked the plot in the + // GetCSIMareas. Otherwise the CSIM hasn't been generated + // and in the case of GetCSIM called before stroke to generate + // CSIM without storing an image to disk GetCSIM must call Stroke. + $this->iHasStroked = true; + + // Setup pre-stroked adjustments and Legends + $this->doPrestrokeAdjustments(); + + // Bail out if any of the Y-axis not been specified and + // has no plots. (This means it is impossible to do autoscaling and + // no other scale was given so we can't possible draw anything). If you use manual + // scaling you also have to supply the tick steps as well. + if( (!$this->yscale->IsSpecified() && count($this->plots)==0) || + ($this->y2scale!=null && !$this->y2scale->IsSpecified() && count($this->y2plots)==0) ) { + //$e = "n=".count($this->y2plots)."\n"; + // $e = "Can't draw unspecified Y-scale.
    \nYou have either:
    \n"; + // $e .= "1. Specified an Y axis for autoscaling but have not supplied any plots
    \n"; + // $e .= "2. Specified a scale manually but have forgot to specify the tick steps"; + JpGraphError::RaiseL(25026); + } + + // Bail out if no plots and no specified X-scale + if( (!$this->xscale->IsSpecified() && count($this->plots)==0 && count($this->y2plots)==0) ) { + JpGraphError::RaiseL(25034);//("JpGraph: Can't draw unspecified X-scale.
    No plots.
    "); + } + + // Autoscale the normal Y-axis + $this->doAutoScaleYAxis(); + + // Autoscale all additiopnal y-axis + $this->doAutoScaleYnAxis(); + + // Autoscale the regular x-axis and position the y-axis properly + $this->doAutoScaleXAxis(); + + // If we have a negative values and x-axis position is at 0 + // we need to supress the first and possible the last tick since + // they will be drawn on top of the y-axis (and possible y2 axis) + // The test below might seem strange the reasone being that if + // the user hasn't specified a value for position this will not + // be set until we do the stroke for the axis so as of now it + // is undefined. + // For X-text scale we ignore all this since the tick are usually + // much further in and not close to the Y-axis. Hence the test + // for 'text' + if( ($this->yaxis->pos==$this->xscale->GetMinVal() || (is_string($this->yaxis->pos) && $this->yaxis->pos=='min')) && + !is_numeric($this->xaxis->pos) && $this->yscale->GetMinVal() < 0 && + substr($this->axtype,0,4) != 'text' && $this->xaxis->pos != 'min' ) { + + //$this->yscale->ticks->SupressZeroLabel(false); + $this->xscale->ticks->SupressFirst(); + if( $this->y2axis != null ) { + $this->xscale->ticks->SupressLast(); + } + } + elseif( !is_numeric($this->yaxis->pos) && $this->yaxis->pos=='max' ) { + $this->xscale->ticks->SupressLast(); + } + + if( !$_csim ) { + $this->StrokePlotArea(); + if( $this->iIconDepth == DEPTH_BACK ) { + $this->StrokeIcons(); + } + } + $this->StrokeAxis(false); + + // Stroke colored bands + $this->StrokeBands(DEPTH_BACK,$_csim); + + if( $this->grid_depth == DEPTH_BACK && !$_csim) { + $this->ygrid->Stroke(); + $this->xgrid->Stroke(); + } + + // Stroke Y2-axis + if( $this->y2axis != null && !$_csim) { + $this->y2axis->Stroke($this->xscale); + $this->y2grid->Stroke(); + } + + // Stroke yn-axis + $n = count($this->ynaxis); + for( $i=0; $i < $n; ++$i ) { + $this->ynaxis[$i]->Stroke($this->xscale); + } + + $oldoff=$this->xscale->off; + if( substr($this->axtype,0,4) == 'text' ) { + if( $this->text_scale_abscenteroff > -1 ) { + // For a text scale the scale factor is the number of pixel per step. + // Hence we can use the scale factor as a substitute for number of pixels + // per major scale step and use that in order to adjust the offset so that + // an object of width "abscenteroff" becomes centered. + $this->xscale->off += round($this->xscale->scale_factor/2)-round($this->text_scale_abscenteroff/2); + } + else { + $this->xscale->off += ceil($this->xscale->scale_factor*$this->text_scale_off*$this->xscale->ticks->minor_step); + } + } + + if( $this->iDoClipping ) { + $oldimage = $this->img->CloneCanvasH(); + } + + if( ! $this->y2orderback ) { + // Stroke all plots for Y1 axis + for($i=0; $i < count($this->plots); ++$i) { + $this->plots[$i]->Stroke($this->img,$this->xscale,$this->yscale); + $this->plots[$i]->StrokeMargin($this->img); + } + } + + // Stroke all plots for Y2 axis + if( $this->y2scale != null ) { + for($i=0; $i< count($this->y2plots); ++$i ) { + $this->y2plots[$i]->Stroke($this->img,$this->xscale,$this->y2scale); + } + } + + if( $this->y2orderback ) { + // Stroke all plots for Y1 axis + for($i=0; $i < count($this->plots); ++$i) { + $this->plots[$i]->Stroke($this->img,$this->xscale,$this->yscale); + $this->plots[$i]->StrokeMargin($this->img); + } + } + + $n = count($this->ynaxis); + for( $i=0; $i < $n; ++$i ) { + $m = count($this->ynplots[$i]); + for( $j=0; $j < $m; ++$j ) { + $this->ynplots[$i][$j]->Stroke($this->img,$this->xscale,$this->ynscale[$i]); + $this->ynplots[$i][$j]->StrokeMargin($this->img); + } + } + + if( $this->iIconDepth == DEPTH_FRONT) { + $this->StrokeIcons(); + } + + if( $this->iDoClipping ) { + // Clipping only supports graphs at 0 and 90 degrees + if( $this->img->a == 0 ) { + $this->img->CopyCanvasH($oldimage,$this->img->img, + $this->img->left_margin,$this->img->top_margin, + $this->img->left_margin,$this->img->top_margin, + $this->img->plotwidth+1,$this->img->plotheight); + } + elseif( $this->img->a == 90 ) { + $adj = ($this->img->height - $this->img->width)/2; + $this->img->CopyCanvasH($oldimage,$this->img->img, + $this->img->bottom_margin-$adj,$this->img->left_margin+$adj, + $this->img->bottom_margin-$adj,$this->img->left_margin+$adj, + $this->img->plotheight+1,$this->img->plotwidth); + } + else { + JpGraphError::RaiseL(25035,$this->img->a);//('You have enabled clipping. Cliping is only supported for graphs at 0 or 90 degrees rotation. Please adjust you current angle (='.$this->img->a.' degrees) or disable clipping.'); + } + $this->img->Destroy(); + $this->img->SetCanvasH($oldimage); + } + + $this->xscale->off=$oldoff; + + if( $this->grid_depth == DEPTH_FRONT && !$_csim ) { + $this->ygrid->Stroke(); + $this->xgrid->Stroke(); + } + + // Stroke colored bands + $this->StrokeBands(DEPTH_FRONT,$_csim); + + // Finally draw the axis again since some plots may have nagged + // the axis in the edges. + if( !$_csim ) { + $this->StrokeAxis(); + } + + if( $this->y2scale != null && !$_csim ) { + $this->y2axis->Stroke($this->xscale,false); + } + + if( !$_csim ) { + $this->StrokePlotBox(); + } + + // The titles and legends never gets rotated so make sure + // that the angle is 0 before stroking them + $aa = $this->img->SetAngle(0); + $this->StrokeTitles(); + $this->footer->Stroke($this->img); + $this->legend->Stroke($this->img); + $this->img->SetAngle($aa); + $this->StrokeTexts(); + $this->StrokeTables(); + + if( !$_csim ) { + + $this->img->SetAngle($aa); + + // Draw an outline around the image map + if(_JPG_DEBUG) { + $this->DisplayClientSideaImageMapAreas(); + } + + // Should we do any final image transformation + if( $this->iImgTrans ) { + if( !class_exists('ImgTrans',false) ) { + require_once('jpgraph_imgtrans.php'); + //JpGraphError::Raise('In order to use image transformation you must include the file jpgraph_imgtrans.php in your script.'); + } + + $tform = new ImgTrans($this->img->img); + $this->img->img = $tform->Skew3D($this->iImgTransHorizon,$this->iImgTransSkewDist, + $this->iImgTransDirection,$this->iImgTransHighQ, + $this->iImgTransMinSize,$this->iImgTransFillColor, + $this->iImgTransBorder); + } + + // If the filename is given as the special "__handle" + // then the image handler is returned and the image is NOT + // streamed back + if( $aStrokeFileName == _IMG_HANDLER ) { + return $this->img->img; + } + else { + // Finally stream the generated picture + $this->cache->PutAndStream($this->img,$this->cache_name,$this->inline,$aStrokeFileName); + } + } + } + + function SetAxisLabelBackground($aType,$aXFColor='lightgray',$aXColor='black',$aYFColor='lightgray',$aYColor='black') { + $this->iAxisLblBgType = $aType; + $this->iXAxisLblBgFillColor = $aXFColor; + $this->iXAxisLblBgColor = $aXColor; + $this->iYAxisLblBgFillColor = $aYFColor; + $this->iYAxisLblBgColor = $aYColor; + } + + function StrokeAxisLabelBackground() { + // Types + // 0 = No background + // 1 = Only X-labels, length of axis + // 2 = Only Y-labels, length of axis + // 3 = As 1 but extends to width of graph + // 4 = As 2 but extends to height of graph + // 5 = Combination of 3 & 4 + // 6 = Combination of 1 & 2 + + $t = $this->iAxisLblBgType ; + if( $t < 1 ) return; + + // Stroke optional X-axis label background color + if( $t == 1 || $t == 3 || $t == 5 || $t == 6 ) { + $this->img->PushColor($this->iXAxisLblBgFillColor); + if( $t == 1 || $t == 6 ) { + $xl = $this->img->left_margin; + $yu = $this->img->height - $this->img->bottom_margin + 1; + $xr = $this->img->width - $this->img->right_margin ; + $yl = $this->img->height-1-$this->frame_weight; + } + else { // t==3 || t==5 + $xl = $this->frame_weight; + $yu = $this->img->height - $this->img->bottom_margin + 1; + $xr = $this->img->width - 1 - $this->frame_weight; + $yl = $this->img->height-1-$this->frame_weight; + } + + $this->img->FilledRectangle($xl,$yu,$xr,$yl); + $this->img->PopColor(); + + // Check if we should add the vertical lines at left and right edge + if( $this->iXAxisLblBgColor !== '' ) { + // Hardcode to one pixel wide + $this->img->SetLineWeight(1); + $this->img->PushColor($this->iXAxisLblBgColor); + if( $t == 1 || $t == 6 ) { + $this->img->Line($xl,$yu,$xl,$yl); + $this->img->Line($xr,$yu,$xr,$yl); + } + else { + $xl = $this->img->width - $this->img->right_margin ; + $this->img->Line($xl,$yu-1,$xr,$yu-1); + } + $this->img->PopColor(); + } + } + + if( $t == 2 || $t == 4 || $t == 5 || $t == 6 ) { + $this->img->PushColor($this->iYAxisLblBgFillColor); + if( $t == 2 || $t == 6 ) { + $xl = $this->frame_weight; + $yu = $this->frame_weight+$this->img->top_margin; + $xr = $this->img->left_margin - 1; + $yl = $this->img->height - $this->img->bottom_margin + 1; + } + else { + $xl = $this->frame_weight; + $yu = $this->frame_weight; + $xr = $this->img->left_margin - 1; + $yl = $this->img->height-1-$this->frame_weight; + } + + $this->img->FilledRectangle($xl,$yu,$xr,$yl); + $this->img->PopColor(); + + // Check if we should add the vertical lines at left and right edge + if( $this->iXAxisLblBgColor !== '' ) { + $this->img->PushColor($this->iXAxisLblBgColor); + if( $t == 2 || $t == 6 ) { + $this->img->Line($xl,$yu-1,$xr,$yu-1); + $this->img->Line($xl,$yl-1,$xr,$yl-1); + } + else { + $this->img->Line($xr+1,$yu,$xr+1,$this->img->top_margin); + } + $this->img->PopColor(); + } + + } + } + + function StrokeAxis($aStrokeLabels=true) { + + if( $aStrokeLabels ) { + $this->StrokeAxisLabelBackground(); + } + + // Stroke axis + if( $this->iAxisStyle != AXSTYLE_SIMPLE ) { + switch( $this->iAxisStyle ) { + case AXSTYLE_BOXIN : + $toppos = SIDE_DOWN; + $bottompos = SIDE_UP; + $leftpos = SIDE_RIGHT; + $rightpos = SIDE_LEFT; + break; + case AXSTYLE_BOXOUT : + $toppos = SIDE_UP; + $bottompos = SIDE_DOWN; + $leftpos = SIDE_LEFT; + $rightpos = SIDE_RIGHT; + break; + case AXSTYLE_YBOXIN: + $toppos = FALSE; + $bottompos = SIDE_UP; + $leftpos = SIDE_RIGHT; + $rightpos = SIDE_LEFT; + break; + case AXSTYLE_YBOXOUT: + $toppos = FALSE; + $bottompos = SIDE_DOWN; + $leftpos = SIDE_LEFT; + $rightpos = SIDE_RIGHT; + break; + default: + JpGRaphError::RaiseL(25036,$this->iAxisStyle); //('Unknown AxisStyle() : '.$this->iAxisStyle); + break; + } + + // By default we hide the first label so it doesn't cross the + // Y-axis in case the positon hasn't been set by the user. + // However, if we use a box we always want the first value + // displayed so we make sure it will be displayed. + $this->xscale->ticks->SupressFirst(false); + + // Now draw the bottom X-axis + $this->xaxis->SetPos('min'); + $this->xaxis->SetLabelSide(SIDE_DOWN); + $this->xaxis->scale->ticks->SetSide($bottompos); + $this->xaxis->Stroke($this->yscale,$aStrokeLabels); + + if( $toppos !== FALSE ) { + // We also want a top X-axis + $this->xaxis = $this->xaxis; + $this->xaxis->SetPos('max'); + $this->xaxis->SetLabelSide(SIDE_UP); + // No title for the top X-axis + if( $aStrokeLabels ) { + $this->xaxis->title->Set(''); + } + $this->xaxis->scale->ticks->SetSide($toppos); + $this->xaxis->Stroke($this->yscale,$aStrokeLabels); + } + + // Stroke the left Y-axis + $this->yaxis->SetPos('min'); + $this->yaxis->SetLabelSide(SIDE_LEFT); + $this->yaxis->scale->ticks->SetSide($leftpos); + $this->yaxis->Stroke($this->xscale,$aStrokeLabels); + + // Stroke the right Y-axis + $this->yaxis->SetPos('max'); + // No title for the right side + if( $aStrokeLabels ) { + $this->yaxis->title->Set(''); + } + $this->yaxis->SetLabelSide(SIDE_RIGHT); + $this->yaxis->scale->ticks->SetSide($rightpos); + $this->yaxis->Stroke($this->xscale,$aStrokeLabels); + } + else { + $this->xaxis->Stroke($this->yscale,$aStrokeLabels); + $this->yaxis->Stroke($this->xscale,$aStrokeLabels); + } + } + + + // Private helper function for backgound image + static function LoadBkgImage($aImgFormat='',$aFile='',$aImgStr='') { + if( $aImgStr != '' ) { + return Image::CreateFromString($aImgStr); + } + + // Remove case sensitivity and setup appropriate function to create image + // Get file extension. This should be the LAST '.' separated part of the filename + $e = explode('.',$aFile); + $ext = strtolower($e[count($e)-1]); + if ($ext == "jpeg") { + $ext = "jpg"; + } + + if( trim($ext) == '' ) { + $ext = 'png'; // Assume PNG if no extension specified + } + + if( $aImgFormat == '' ) { + $imgtag = $ext; + } + else { + $imgtag = $aImgFormat; + } + + $supported = imagetypes(); + if( ( $ext == 'jpg' && !($supported & IMG_JPG) ) || + ( $ext == 'gif' && !($supported & IMG_GIF) ) || + ( $ext == 'png' && !($supported & IMG_PNG) ) || + ( $ext == 'bmp' && !($supported & IMG_WBMP) ) || + ( $ext == 'xpm' && !($supported & IMG_XPM) ) ) { + + JpGraphError::RaiseL(25037,$aFile);//('The image format of your background image ('.$aFile.') is not supported in your system configuration. '); + } + + + if( $imgtag == "jpg" || $imgtag == "jpeg") { + $f = "imagecreatefromjpeg"; + $imgtag = "jpg"; + } + else { + $f = "imagecreatefrom".$imgtag; + } + + // Compare specified image type and file extension + if( $imgtag != $ext ) { + //$t = "Background image seems to be of different type (has different file extension) than specified imagetype. Specified: '".$aImgFormat."'File: '".$aFile."'"; + JpGraphError::RaiseL(25038, $aImgFormat, $aFile); + } + + $img = @$f($aFile); + if( !$img ) { + JpGraphError::RaiseL(25039,$aFile);//(" Can't read background image: '".$aFile."'"); + } + return $img; + } + + function StrokePlotGrad() { + if( $this->plot_gradtype < 0 ) + return; + + $grad = new Gradient($this->img); + $xl = $this->img->left_margin; + $yt = $this->img->top_margin; + $xr = $xl + $this->img->plotwidth+1 ; + $yb = $yt + $this->img->plotheight ; + $grad->FilledRectangle($xl,$yt,$xr,$yb,$this->plot_gradfrom,$this->plot_gradto,$this->plot_gradtype); + + } + + function StrokeBackgroundGrad() { + if( $this->bkg_gradtype < 0 ) + return; + + $grad = new Gradient($this->img); + if( $this->bkg_gradstyle == BGRAD_PLOT ) { + $xl = $this->img->left_margin; + $yt = $this->img->top_margin; + $xr = $xl + $this->img->plotwidth+1 ; + $yb = $yt + $this->img->plotheight ; + $grad->FilledRectangle($xl,$yt,$xr,$yb,$this->bkg_gradfrom,$this->bkg_gradto,$this->bkg_gradtype); + } + else { + $xl = 0; + $yt = 0; + $xr = $xl + $this->img->width - 1; + $yb = $yt + $this->img->height - 1 ; + if( $this->doshadow ) { + $xr -= $this->shadow_width; + $yb -= $this->shadow_width; + } + if( $this->doframe ) { + $yt += $this->frame_weight; + $yb -= $this->frame_weight; + $xl += $this->frame_weight; + $xr -= $this->frame_weight; + } + $aa = $this->img->SetAngle(0); + $grad->FilledRectangle($xl,$yt,$xr,$yb,$this->bkg_gradfrom,$this->bkg_gradto,$this->bkg_gradtype); + $aa = $this->img->SetAngle($aa); + } + } + + function StrokeFrameBackground() { + if( $this->background_image != '' && $this->background_cflag != '' ) { + JpGraphError::RaiseL(25040);//('It is not possible to specify both a background image and a background country flag.'); + } + if( $this->background_image != '' ) { + $bkgimg = $this->LoadBkgImage($this->background_image_format,$this->background_image); + } + elseif( $this->background_cflag != '' ) { + if( ! class_exists('FlagImages',false) ) { + JpGraphError::RaiseL(25041);//('In order to use Country flags as backgrounds you must include the "jpgraph_flags.php" file.'); + } + $fobj = new FlagImages(FLAGSIZE4); + $dummy=''; + $bkgimg = $fobj->GetImgByName($this->background_cflag,$dummy); + $this->background_image_mix = $this->background_cflag_mix; + $this->background_image_type = $this->background_cflag_type; + } + else { + return ; + } + + $bw = ImageSX($bkgimg); + $bh = ImageSY($bkgimg); + + // No matter what the angle is we always stroke the image and frame + // assuming it is 0 degree + $aa = $this->img->SetAngle(0); + + switch( $this->background_image_type ) { + case BGIMG_FILLPLOT: // Resize to just fill the plotarea + $this->FillMarginArea(); + $this->StrokeFrame(); + // Special case to hande 90 degree rotated graph corectly + if( $aa == 90 ) { + $this->img->SetAngle(90); + $this->FillPlotArea(); + $aa = $this->img->SetAngle(0); + $adj = ($this->img->height - $this->img->width)/2; + $this->img->CopyMerge($bkgimg, + $this->img->bottom_margin-$adj,$this->img->left_margin+$adj, + 0,0, + $this->img->plotheight+1,$this->img->plotwidth, + $bw,$bh,$this->background_image_mix); + } + else { + $this->FillPlotArea(); + $this->img->CopyMerge($bkgimg, + $this->img->left_margin,$this->img->top_margin+1, + 0,0,$this->img->plotwidth+1,$this->img->plotheight, + $bw,$bh,$this->background_image_mix); + } + break; + case BGIMG_FILLFRAME: // Fill the whole area from upper left corner, resize to just fit + $hadj=0; $vadj=0; + if( $this->doshadow ) { + $hadj = $this->shadow_width; + $vadj = $this->shadow_width; + } + $this->FillMarginArea(); + $this->FillPlotArea(); + $this->img->CopyMerge($bkgimg,0,0,0,0,$this->img->width-$hadj,$this->img->height-$vadj, + $bw,$bh,$this->background_image_mix); + $this->StrokeFrame(); + break; + case BGIMG_COPY: // Just copy the image from left corner, no resizing + $this->FillMarginArea(); + $this->FillPlotArea(); + $this->img->CopyMerge($bkgimg,0,0,0,0,$bw,$bh, + $bw,$bh,$this->background_image_mix); + $this->StrokeFrame(); + break; + case BGIMG_CENTER: // Center original image in the plot area + $this->FillMarginArea(); + $this->FillPlotArea(); + $centerx = round($this->img->plotwidth/2+$this->img->left_margin-$bw/2); + $centery = round($this->img->plotheight/2+$this->img->top_margin-$bh/2); + $this->img->CopyMerge($bkgimg,$centerx,$centery,0,0,$bw,$bh, + $bw,$bh,$this->background_image_mix); + $this->StrokeFrame(); + break; + case BGIMG_FREE: // Just copy the image to the specified location + $this->img->CopyMerge($bkgimg, + $this->background_image_xpos,$this->background_image_ypos, + 0,0,$bw,$bh,$bw,$bh,$this->background_image_mix); + $this->StrokeFrame(); // New + break; + default: + JpGraphError::RaiseL(25042);//(" Unknown background image layout"); + } + $this->img->SetAngle($aa); + } + + // Private + // Draw a frame around the image + function StrokeFrame() { + if( !$this->doframe ) return; + + if( $this->background_image_type <= 1 && ($this->bkg_gradtype < 0 || ($this->bkg_gradtype > 0 && $this->bkg_gradstyle==BGRAD_PLOT)) ) { + $c = $this->margin_color; + } + else { + $c = false; + } + + if( $this->doshadow ) { + $this->img->SetColor($this->frame_color); + $this->img->ShadowRectangle(0,0,$this->img->width,$this->img->height, + $c,$this->shadow_width,$this->shadow_color); + } + elseif( $this->framebevel ) { + if( $c ) { + $this->img->SetColor($this->margin_color); + $this->img->FilledRectangle(0,0,$this->img->width-1,$this->img->height-1); + } + $this->img->Bevel(1,1,$this->img->width-2,$this->img->height-2, + $this->framebeveldepth, + $this->framebevelcolor1,$this->framebevelcolor2); + if( $this->framebevelborder ) { + $this->img->SetColor($this->framebevelbordercolor); + $this->img->Rectangle(0,0,$this->img->width-1,$this->img->height-1); + } + } + else { + $this->img->SetLineWeight($this->frame_weight); + if( $c ) { + $this->img->SetColor($this->margin_color); + $this->img->FilledRectangle(0,0,$this->img->width-1,$this->img->height-1); + } + $this->img->SetColor($this->frame_color); + $this->img->Rectangle(0,0,$this->img->width-1,$this->img->height-1); + } + } + + function FillMarginArea() { + $hadj=0; $vadj=0; + if( $this->doshadow ) { + $hadj = $this->shadow_width; + $vadj = $this->shadow_width; + } + + $this->img->SetColor($this->margin_color); + // $this->img->FilledRectangle(0,0,$this->img->width-1-$hadj,$this->img->height-1-$vadj); + + $this->img->FilledRectangle(0,0,$this->img->width-1-$hadj,$this->img->top_margin); + $this->img->FilledRectangle(0,$this->img->top_margin,$this->img->left_margin,$this->img->height-1-$hadj); + $this->img->FilledRectangle($this->img->left_margin+1, + $this->img->height-$this->img->bottom_margin, + $this->img->width-1-$hadj, + $this->img->height-1-$hadj); + $this->img->FilledRectangle($this->img->width-$this->img->right_margin, + $this->img->top_margin+1, + $this->img->width-1-$hadj, + $this->img->height-$this->img->bottom_margin-1); + } + + function FillPlotArea() { + $this->img->PushColor($this->plotarea_color); + $this->img->FilledRectangle($this->img->left_margin, + $this->img->top_margin, + $this->img->width-$this->img->right_margin, + $this->img->height-$this->img->bottom_margin); + $this->img->PopColor(); + } + + // Stroke the plot area with either a solid color or a background image + function StrokePlotArea() { + // Note: To be consistent we really should take a possible shadow + // into account. However, that causes some problem for the LinearScale class + // since in the current design it does not have any links to class Graph which + // means it has no way of compensating for the adjusted plotarea in case of a + // shadow. So, until I redesign LinearScale we can't compensate for this. + // So just set the two adjustment parameters to zero for now. + $boxadj = 0; //$this->doframe ? $this->frame_weight : 0 ; + $adj = 0; //$this->doshadow ? $this->shadow_width : 0 ; + + if( $this->background_image != '' || $this->background_cflag != '' ) { + $this->StrokeFrameBackground(); + } + else { + $aa = $this->img->SetAngle(0); + $this->StrokeFrame(); + $aa = $this->img->SetAngle($aa); + $this->StrokeBackgroundGrad(); + if( $this->bkg_gradtype < 0 || ($this->bkg_gradtype > 0 && $this->bkg_gradstyle==BGRAD_MARGIN) ) { + $this->FillPlotArea(); + } + $this->StrokePlotGrad(); + } + } + + function StrokeIcons() { + $n = count($this->iIcons); + for( $i=0; $i < $n; ++$i ) { + $this->iIcons[$i]->StrokeWithScale($this->img,$this->xscale,$this->yscale); + } + } + + function StrokePlotBox() { + // Should we draw a box around the plot area? + if( $this->boxed ) { + $this->img->SetLineWeight(1); + $this->img->SetLineStyle('solid'); + $this->img->SetColor($this->box_color); + for($i=0; $i < $this->box_weight; ++$i ) { + $this->img->Rectangle( + $this->img->left_margin-$i,$this->img->top_margin-$i, + $this->img->width-$this->img->right_margin+$i, + $this->img->height-$this->img->bottom_margin+$i); + } + } + } + + function SetTitleBackgroundFillStyle($aStyle,$aColor1='black',$aColor2='white') { + $this->titlebkg_fillstyle = $aStyle; + $this->titlebkg_scolor1 = $aColor1; + $this->titlebkg_scolor2 = $aColor2; + } + + function SetTitleBackground($aBackColor='gray', $aStyle=TITLEBKG_STYLE1, $aFrameStyle=TITLEBKG_FRAME_NONE, $aFrameColor='black', $aFrameWeight=1, $aBevelHeight=3, $aEnable=true) { + $this->titlebackground = $aEnable; + $this->titlebackground_color = $aBackColor; + $this->titlebackground_style = $aStyle; + $this->titlebackground_framecolor = $aFrameColor; + $this->titlebackground_framestyle = $aFrameStyle; + $this->titlebackground_frameweight = $aFrameWeight; + $this->titlebackground_bevelheight = $aBevelHeight ; + } + + + function StrokeTitles() { + + $margin=3; + + if( $this->titlebackground ) { + // Find out height + $this->title->margin += 2 ; + $h = $this->title->GetTextHeight($this->img)+$this->title->margin+$margin; + if( $this->subtitle->t != '' && !$this->subtitle->hide ) { + $h += $this->subtitle->GetTextHeight($this->img)+$margin+ + $this->subtitle->margin; + $h += 2; + } + if( $this->subsubtitle->t != '' && !$this->subsubtitle->hide ) { + $h += $this->subsubtitle->GetTextHeight($this->img)+$margin+ + $this->subsubtitle->margin; + $h += 2; + } + $this->img->PushColor($this->titlebackground_color); + if( $this->titlebackground_style === TITLEBKG_STYLE1 ) { + // Inside the frame + if( $this->framebevel ) { + $x1 = $y1 = $this->framebeveldepth + 1 ; + $x2 = $this->img->width - $this->framebeveldepth - 2 ; + $this->title->margin += $this->framebeveldepth + 1 ; + $h += $y1 ; + $h += 2; + } + else { + $x1 = $y1 = $this->frame_weight; + $x2 = $this->img->width - $this->frame_weight-1; + } + } + elseif( $this->titlebackground_style === TITLEBKG_STYLE2 ) { + // Cover the frame as well + $x1 = $y1 = 0; + $x2 = $this->img->width - 1 ; + } + elseif( $this->titlebackground_style === TITLEBKG_STYLE3 ) { + // Cover the frame as well (the difference is that + // for style==3 a bevel frame border is on top + // of the title background) + $x1 = $y1 = 0; + $x2 = $this->img->width - 1 ; + $h += $this->framebeveldepth ; + $this->title->margin += $this->framebeveldepth ; + } + else { + JpGraphError::RaiseL(25043);//('Unknown title background style.'); + } + + if( $this->titlebackground_framestyle === 3 ) { + $h += $this->titlebackground_bevelheight*2 + 1 ; + $this->title->margin += $this->titlebackground_bevelheight ; + } + + if( $this->doshadow ) { + $x2 -= $this->shadow_width ; + } + + $indent=0; + if( $this->titlebackground_framestyle == TITLEBKG_FRAME_BEVEL ) { + $indent = $this->titlebackground_bevelheight; + } + + if( $this->titlebkg_fillstyle==TITLEBKG_FILLSTYLE_HSTRIPED ) { + $this->img->FilledRectangle2($x1+$indent,$y1+$indent,$x2-$indent,$h-$indent, + $this->titlebkg_scolor1, + $this->titlebkg_scolor2); + } + elseif( $this->titlebkg_fillstyle==TITLEBKG_FILLSTYLE_VSTRIPED ) { + $this->img->FilledRectangle2($x1+$indent,$y1+$indent,$x2-$indent,$h-$indent, + $this->titlebkg_scolor1, + $this->titlebkg_scolor2,2); + } + else { + // Solid fill + $this->img->FilledRectangle($x1,$y1,$x2,$h); + } + $this->img->PopColor(); + + $this->img->PushColor($this->titlebackground_framecolor); + $this->img->SetLineWeight($this->titlebackground_frameweight); + if( $this->titlebackground_framestyle == TITLEBKG_FRAME_FULL ) { + // Frame background + $this->img->Rectangle($x1,$y1,$x2,$h); + } + elseif( $this->titlebackground_framestyle == TITLEBKG_FRAME_BOTTOM ) { + // Bottom line only + $this->img->Line($x1,$h,$x2,$h); + } + elseif( $this->titlebackground_framestyle == TITLEBKG_FRAME_BEVEL ) { + $this->img->Bevel($x1,$y1,$x2,$h,$this->titlebackground_bevelheight); + } + $this->img->PopColor(); + + // This is clumsy. But we neeed to stroke the whole graph frame if it is + // set to bevel to get the bevel shading on top of the text background + if( $this->framebevel && $this->doframe && $this->titlebackground_style === 3 ) { + $this->img->Bevel(1,1,$this->img->width-2,$this->img->height-2, + $this->framebeveldepth, + $this->framebevelcolor1,$this->framebevelcolor2); + if( $this->framebevelborder ) { + $this->img->SetColor($this->framebevelbordercolor); + $this->img->Rectangle(0,0,$this->img->width-1,$this->img->height-1); + } + } + } + + // Stroke title + $y = $this->title->margin; + if( $this->title->halign == 'center' ) { + $this->title->Center(0,$this->img->width,$y); + } + elseif( $this->title->halign == 'left' ) { + $this->title->SetPos($this->title->margin+2,$y); + } + elseif( $this->title->halign == 'right' ) { + $indent = 0; + if( $this->doshadow ) { + $indent = $this->shadow_width+2; + } + $this->title->SetPos($this->img->width-$this->title->margin-$indent,$y,'right'); + } + $this->title->Stroke($this->img); + + // ... and subtitle + $y += $this->title->GetTextHeight($this->img) + $margin + $this->subtitle->margin; + if( $this->subtitle->halign == 'center' ) { + $this->subtitle->Center(0,$this->img->width,$y); + } + elseif( $this->subtitle->halign == 'left' ) { + $this->subtitle->SetPos($this->subtitle->margin+2,$y); + } + elseif( $this->subtitle->halign == 'right' ) { + $indent = 0; + if( $this->doshadow ) + $indent = $this->shadow_width+2; + $this->subtitle->SetPos($this->img->width-$this->subtitle->margin-$indent,$y,'right'); + } + $this->subtitle->Stroke($this->img); + + // ... and subsubtitle + $y += $this->subtitle->GetTextHeight($this->img) + $margin + $this->subsubtitle->margin; + if( $this->subsubtitle->halign == 'center' ) { + $this->subsubtitle->Center(0,$this->img->width,$y); + } + elseif( $this->subsubtitle->halign == 'left' ) { + $this->subsubtitle->SetPos($this->subsubtitle->margin+2,$y); + } + elseif( $this->subsubtitle->halign == 'right' ) { + $indent = 0; + if( $this->doshadow ) + $indent = $this->shadow_width+2; + $this->subsubtitle->SetPos($this->img->width-$this->subsubtitle->margin-$indent,$y,'right'); + } + $this->subsubtitle->Stroke($this->img); + + // ... and fancy title + $this->tabtitle->Stroke($this->img); + + } + + function StrokeTexts() { + // Stroke any user added text objects + if( $this->texts != null ) { + for($i=0; $i < count($this->texts); ++$i) { + $this->texts[$i]->StrokeWithScale($this->img,$this->xscale,$this->yscale); + } + } + + if( $this->y2texts != null && $this->y2scale != null ) { + for($i=0; $i < count($this->y2texts); ++$i) { + $this->y2texts[$i]->StrokeWithScale($this->img,$this->xscale,$this->y2scale); + } + } + + } + + function StrokeTables() { + if( $this->iTables != null ) { + $n = count($this->iTables); + for( $i=0; $i < $n; ++$i ) { + $this->iTables[$i]->StrokeWithScale($this->img,$this->xscale,$this->yscale); + } + } + } + + function DisplayClientSideaImageMapAreas() { + // Debug stuff - display the outline of the image map areas + $csim=''; + foreach ($this->plots as $p) { + $csim.= $p->GetCSIMareas(); + } + $csim .= $this->legend->GetCSIMareas(); + if (preg_match_all("/area shape=\"(\w+)\" coords=\"([0-9\, ]+)\"/", $csim, $coords)) { + $this->img->SetColor($this->csimcolor); + $n = count($coords[0]); + for ($i=0; $i < $n; $i++) { + if ( $coords[1][$i] == 'poly' ) { + preg_match_all('/\s*([0-9]+)\s*,\s*([0-9]+)\s*,*/',$coords[2][$i],$pts); + $this->img->SetStartPoint($pts[1][count($pts[0])-1],$pts[2][count($pts[0])-1]); + $m = count($pts[0]); + for ($j=0; $j < $m; $j++) { + $this->img->LineTo($pts[1][$j],$pts[2][$j]); + } + } elseif ( $coords[1][$i] == 'rect' ) { + $pts = preg_split('/,/', $coords[2][$i]); + $this->img->SetStartPoint($pts[0],$pts[1]); + $this->img->LineTo($pts[2],$pts[1]); + $this->img->LineTo($pts[2],$pts[3]); + $this->img->LineTo($pts[0],$pts[3]); + $this->img->LineTo($pts[0],$pts[1]); + } + } + } + } + + // Text scale offset in world coordinates + function SetTextScaleOff($aOff) { + $this->text_scale_off = $aOff; + $this->xscale->text_scale_off = $aOff; + } + + // Text width of bar to be centered in absolute pixels + function SetTextScaleAbsCenterOff($aOff) { + $this->text_scale_abscenteroff = $aOff; + } + + // Get Y min and max values for added lines + function GetLinesYMinMax( $aLines ) { + $n = count($aLines); + if( $n == 0 ) return false; + $min = $aLines[0]->scaleposition ; + $max = $min ; + $flg = false; + for( $i=0; $i < $n; ++$i ) { + if( $aLines[$i]->direction == HORIZONTAL ) { + $flg = true ; + $v = $aLines[$i]->scaleposition ; + if( $min > $v ) $min = $v ; + if( $max < $v ) $max = $v ; + } + } + return $flg ? array($min,$max) : false ; + } + + // Get X min and max values for added lines + function GetLinesXMinMax( $aLines ) { + $n = count($aLines); + if( $n == 0 ) return false ; + $min = $aLines[0]->scaleposition ; + $max = $min ; + $flg = false; + for( $i=0; $i < $n; ++$i ) { + if( $aLines[$i]->direction == VERTICAL ) { + $flg = true ; + $v = $aLines[$i]->scaleposition ; + if( $min > $v ) $min = $v ; + if( $max < $v ) $max = $v ; + } + } + return $flg ? array($min,$max) : false ; + } + + // Get min and max values for all included plots + function GetPlotsYMinMax($aPlots) { + $n = count($aPlots); + $i=0; + do { + list($xmax,$max) = $aPlots[$i]->Max(); + } while( ++$i < $n && !is_numeric($max) ); + + $i=0; + do { + list($xmin,$min) = $aPlots[$i]->Min(); + } while( ++$i < $n && !is_numeric($min) ); + + if( !is_numeric($min) || !is_numeric($max) ) { + JpGraphError::RaiseL(25044);//('Cannot use autoscaling since it is impossible to determine a valid min/max value of the Y-axis (only null values).'); + } + + for($i=0; $i < $n; ++$i ) { + list($xmax,$ymax)=$aPlots[$i]->Max(); + list($xmin,$ymin)=$aPlots[$i]->Min(); + if (is_numeric($ymax)) $max=max($max,$ymax); + if (is_numeric($ymin)) $min=min($min,$ymin); + } + if( $min == '' ) $min = 0; + if( $max == '' ) $max = 0; + if( $min == 0 && $max == 0 ) { + // Special case if all values are 0 + $min=0;$max=1; + } + return array($min,$max); + } + +} // Class + +//=================================================== +// CLASS LineProperty +// Description: Holds properties for a line +//=================================================== +class LineProperty { + public $iWeight=1, $iColor='black', $iStyle='solid', $iShow=true; + + function __construct($aWeight=1,$aColor='black',$aStyle='solid') { + $this->iWeight = $aWeight; + $this->iColor = $aColor; + $this->iStyle = $aStyle; + } + + function SetColor($aColor) { + $this->iColor = $aColor; + } + + function SetWeight($aWeight) { + $this->iWeight = $aWeight; + } + + function SetStyle($aStyle) { + $this->iStyle = $aStyle; + } + + function Show($aShow=true) { + $this->iShow=$aShow; + } + + function Stroke($aImg,$aX1,$aY1,$aX2,$aY2) { + if( $this->iShow ) { + $aImg->PushColor($this->iColor); + $oldls = $aImg->line_style; + $oldlw = $aImg->line_weight; + $aImg->SetLineWeight($this->iWeight); + $aImg->SetLineStyle($this->iStyle); + $aImg->StyleLine($aX1,$aY1,$aX2,$aY2); + $aImg->PopColor($this->iColor); + $aImg->line_style = $oldls; + $aImg->line_weight = $oldlw; + + } + } +} + +//=================================================== +// CLASS GraphTabTitle +// Description: Draw "tab" titles on top of graphs +//=================================================== +class GraphTabTitle extends Text{ + private $corner = 6 , $posx = 7, $posy = 4; + private $fillcolor='lightyellow',$bordercolor='black'; + private $align = 'left', $width=TABTITLE_WIDTHFIT; + function __construct() { + $this->t = ''; + $this->font_style = FS_BOLD; + $this->hide = true; + $this->color = 'darkred'; + } + + function SetColor($aTxtColor,$aFillColor='lightyellow',$aBorderColor='black') { + $this->color = $aTxtColor; + $this->fillcolor = $aFillColor; + $this->bordercolor = $aBorderColor; + } + + function SetFillColor($aFillColor) { + $this->fillcolor = $aFillColor; + } + + function SetTabAlign($aAlign) { + $this->align = $aAlign; + } + + function SetWidth($aWidth) { + $this->width = $aWidth ; + } + + function Set($t) { + $this->t = $t; + $this->hide = false; + } + + function SetCorner($aD) { + $this->corner = $aD ; + } + + function Stroke($aImg,$aDummy1=null,$aDummy2=null) { + if( $this->hide ) + return; + $this->boxed = false; + $w = $this->GetWidth($aImg) + 2*$this->posx; + $h = $this->GetTextHeight($aImg) + 2*$this->posy; + + $x = $aImg->left_margin; + $y = $aImg->top_margin; + + if( $this->width === TABTITLE_WIDTHFIT ) { + if( $this->align == 'left' ) { + $p = array($x, $y, + $x, $y-$h+$this->corner, + $x + $this->corner,$y-$h, + $x + $w - $this->corner, $y-$h, + $x + $w, $y-$h+$this->corner, + $x + $w, $y); + } + elseif( $this->align == 'center' ) { + $x += round($aImg->plotwidth/2) - round($w/2); + $p = array($x, $y, + $x, $y-$h+$this->corner, + $x + $this->corner, $y-$h, + $x + $w - $this->corner, $y-$h, + $x + $w, $y-$h+$this->corner, + $x + $w, $y); + } + else { + $x += $aImg->plotwidth -$w; + $p = array($x, $y, + $x, $y-$h+$this->corner, + $x + $this->corner,$y-$h, + $x + $w - $this->corner, $y-$h, + $x + $w, $y-$h+$this->corner, + $x + $w, $y); + } + } + else { + if( $this->width === TABTITLE_WIDTHFULL ) { + $w = $aImg->plotwidth ; + } + else { + $w = $this->width ; + } + + // Make the tab fit the width of the plot area + $p = array($x, $y, + $x, $y-$h+$this->corner, + $x + $this->corner,$y-$h, + $x + $w - $this->corner, $y-$h, + $x + $w, $y-$h+$this->corner, + $x + $w, $y); + + } + if( $this->halign == 'left' ) { + $aImg->SetTextAlign('left','bottom'); + $x += $this->posx; + $y -= $this->posy; + } + elseif( $this->halign == 'center' ) { + $aImg->SetTextAlign('center','bottom'); + $x += $w/2; + $y -= $this->posy; + } + else { + $aImg->SetTextAlign('right','bottom'); + $x += $w - $this->posx; + $y -= $this->posy; + } + + $aImg->SetColor($this->fillcolor); + $aImg->FilledPolygon($p); + + $aImg->SetColor($this->bordercolor); + $aImg->Polygon($p,true); + + $aImg->SetColor($this->color); + $aImg->SetFont($this->font_family,$this->font_style,$this->font_size); + $aImg->StrokeText($x,$y,$this->t,0,'center'); + } + +} + +//=================================================== +// CLASS SuperScriptText +// Description: Format a superscript text +//=================================================== +class SuperScriptText extends Text { + private $iSuper=''; + private $sfont_family='',$sfont_style='',$sfont_size=8; + private $iSuperMargin=2,$iVertOverlap=4,$iSuperScale=0.65; + private $iSDir=0; + private $iSimple=false; + + function __construct($aTxt='',$aSuper='',$aXAbsPos=0,$aYAbsPos=0) { + parent::__construct($aTxt,$aXAbsPos,$aYAbsPos); + $this->iSuper = $aSuper; + } + + function FromReal($aVal,$aPrecision=2) { + // Convert a floating point number to scientific notation + $neg=1.0; + if( $aVal < 0 ) { + $neg = -1.0; + $aVal = -$aVal; + } + + $l = floor(log10($aVal)); + $a = sprintf("%0.".$aPrecision."f",round($aVal / pow(10,$l),$aPrecision)); + $a *= $neg; + if( $this->iSimple && ($a == 1 || $a==-1) ) $a = ''; + + if( $a != '' ) { + $this->t = $a.' * 10'; + } + else { + if( $neg == 1 ) { + $this->t = '10'; + } + else { + $this->t = '-10'; + } + } + $this->iSuper = $l; + } + + function Set($aTxt,$aSuper='') { + $this->t = $aTxt; + $this->iSuper = $aSuper; + } + + function SetSuperFont($aFontFam,$aFontStyle=FS_NORMAL,$aFontSize=8) { + $this->sfont_family = $aFontFam; + $this->sfont_style = $aFontStyle; + $this->sfont_size = $aFontSize; + } + + // Total width of text + function GetWidth($aImg) { + $aImg->SetFont($this->font_family,$this->font_style,$this->font_size); + $w = $aImg->GetTextWidth($this->t); + $aImg->SetFont($this->sfont_family,$this->sfont_style,$this->sfont_size); + $w += $aImg->GetTextWidth($this->iSuper); + $w += $this->iSuperMargin; + return $w; + } + + // Hight of font (approximate the height of the text) + function GetFontHeight($aImg) { + $aImg->SetFont($this->font_family,$this->font_style,$this->font_size); + $h = $aImg->GetFontHeight(); + $aImg->SetFont($this->sfont_family,$this->sfont_style,$this->sfont_size); + $h += $aImg->GetFontHeight(); + return $h; + } + + // Hight of text + function GetTextHeight($aImg) { + $aImg->SetFont($this->font_family,$this->font_style,$this->font_size); + $h = $aImg->GetTextHeight($this->t); + $aImg->SetFont($this->sfont_family,$this->sfont_style,$this->sfont_size); + $h += $aImg->GetTextHeight($this->iSuper); + return $h; + } + + function Stroke($aImg,$ax=-1,$ay=-1) { + + // To position the super script correctly we need different + // cases to handle the alignmewnt specified since that will + // determine how we can interpret the x,y coordinates + + $w = parent::GetWidth($aImg); + $h = parent::GetTextHeight($aImg); + switch( $this->valign ) { + case 'top': + $sy = $this->y; + break; + case 'center': + $sy = $this->y - $h/2; + break; + case 'bottom': + $sy = $this->y - $h; + break; + default: + JpGraphError::RaiseL(25052);//('PANIC: Internal error in SuperScript::Stroke(). Unknown vertical alignment for text'); + break; + } + + switch( $this->halign ) { + case 'left': + $sx = $this->x + $w; + break; + case 'center': + $sx = $this->x + $w/2; + break; + case 'right': + $sx = $this->x; + break; + default: + JpGraphError::RaiseL(25053);//('PANIC: Internal error in SuperScript::Stroke(). Unknown horizontal alignment for text'); + break; + } + + $sx += $this->iSuperMargin; + $sy += $this->iVertOverlap; + + // Should we automatically determine the font or + // has the user specified it explicetly? + if( $this->sfont_family == '' ) { + if( $this->font_family <= FF_FONT2 ) { + if( $this->font_family == FF_FONT0 ) { + $sff = FF_FONT0; + } + elseif( $this->font_family == FF_FONT1 ) { + if( $this->font_style == FS_NORMAL ) { + $sff = FF_FONT0; + } + else { + $sff = FF_FONT1; + } + } + else { + $sff = FF_FONT1; + } + $sfs = $this->font_style; + $sfz = $this->font_size; + } + else { + // TTF fonts + $sff = $this->font_family; + $sfs = $this->font_style; + $sfz = floor($this->font_size*$this->iSuperScale); + if( $sfz < 8 ) $sfz = 8; + } + $this->sfont_family = $sff; + $this->sfont_style = $sfs; + $this->sfont_size = $sfz; + } + else { + $sff = $this->sfont_family; + $sfs = $this->sfont_style; + $sfz = $this->sfont_size; + } + + parent::Stroke($aImg,$ax,$ay); + + // For the builtin fonts we need to reduce the margins + // since the bounding bx reported for the builtin fonts + // are much larger than for the TTF fonts. + if( $sff <= FF_FONT2 ) { + $sx -= 2; + $sy += 3; + } + + $aImg->SetTextAlign('left','bottom'); + $aImg->SetFont($sff,$sfs,$sfz); + $aImg->PushColor($this->color); + $aImg->StrokeText($sx,$sy,$this->iSuper,$this->iSDir,'left'); + $aImg->PopColor(); + } +} + + +//=================================================== +// CLASS Grid +// Description: responsible for drawing grid lines in graph +//=================================================== +class Grid { + protected $img; + protected $scale; + protected $majorcolor='#DDDDDD',$minorcolor='#EEEEEE'; + protected $majortype='solid',$minortype='solid'; + protected $show=false, $showMinor=false,$majorweight=1,$minorweight=1; + protected $fill=false,$fillcolor=array('#EFEFEF','#BBCCFF'); + + function __construct($aAxis) { + $this->scale = $aAxis->scale; + $this->img = $aAxis->img; + } + + function SetColor($aMajColor,$aMinColor=false) { + $this->majorcolor=$aMajColor; + if( $aMinColor === false ) { + $aMinColor = $aMajColor ; + } + $this->minorcolor = $aMinColor; + } + + function SetWeight($aMajorWeight,$aMinorWeight=1) { + $this->majorweight=$aMajorWeight; + $this->minorweight=$aMinorWeight; + } + + // Specify if grid should be dashed, dotted or solid + function SetLineStyle($aMajorType,$aMinorType='solid') { + $this->majortype = $aMajorType; + $this->minortype = $aMinorType; + } + + function SetStyle($aMajorType,$aMinorType='solid') { + $this->SetLineStyle($aMajorType,$aMinorType); + } + + // Decide if both major and minor grid should be displayed + function Show($aShowMajor=true,$aShowMinor=false) { + $this->show=$aShowMajor; + $this->showMinor=$aShowMinor; + } + + function SetFill($aFlg=true,$aColor1='lightgray',$aColor2='lightblue') { + $this->fill = $aFlg; + $this->fillcolor = array( $aColor1, $aColor2 ); + } + + // Display the grid + function Stroke() { + if( $this->showMinor && !$this->scale->textscale ) { + $this->DoStroke($this->scale->ticks->ticks_pos,$this->minortype,$this->minorcolor,$this->minorweight); + $this->DoStroke($this->scale->ticks->maj_ticks_pos,$this->majortype,$this->majorcolor,$this->majorweight); + } + else { + $this->DoStroke($this->scale->ticks->maj_ticks_pos,$this->majortype,$this->majorcolor,$this->majorweight); + } + } + + //-------------- + // Private methods + // Draw the grid + function DoStroke($aTicksPos,$aType,$aColor,$aWeight) { + if( !$this->show ) return; + $nbrgrids = count($aTicksPos); + + if( $this->scale->type == 'y' ) { + $xl=$this->img->left_margin; + $xr=$this->img->width-$this->img->right_margin; + + if( $this->fill ) { + // Draw filled areas + $y2 = $aTicksPos[0]; + $i=1; + while( $i < $nbrgrids ) { + $y1 = $y2; + $y2 = $aTicksPos[$i++]; + $this->img->SetColor($this->fillcolor[$i & 1]); + $this->img->FilledRectangle($xl,$y1,$xr,$y2); + } + } + + $this->img->SetColor($aColor); + $this->img->SetLineWeight($aWeight); + + // Draw grid lines + switch( $aType ) { + case 'solid': $style = LINESTYLE_SOLID; break; + case 'dotted': $style = LINESTYLE_DOTTED; break; + case 'dashed': $style = LINESTYLE_DASHED; break; + case 'longdashed': $style = LINESTYLE_LONGDASH; break; + default: + $style = LINESTYLE_SOLID; break; + } + + for($i=0; $i < $nbrgrids; ++$i) { + $y=$aTicksPos[$i]; + $this->img->StyleLine($xl,$y,$xr,$y,$style); + } + } + elseif( $this->scale->type == 'x' ) { + $yu=$this->img->top_margin; + $yl=$this->img->height-$this->img->bottom_margin; + $limit=$this->img->width-$this->img->right_margin; + + if( $this->fill ) { + // Draw filled areas + $x2 = $aTicksPos[0]; + $i=1; + while( $i < $nbrgrids ) { + $x1 = $x2; + $x2 = min($aTicksPos[$i++],$limit) ; + $this->img->SetColor($this->fillcolor[$i & 1]); + $this->img->FilledRectangle($x1,$yu,$x2,$yl); + } + } + + $this->img->SetColor($aColor); + $this->img->SetLineWeight($aWeight); + + // We must also test for limit since we might have + // an offset and the number of ticks is calculated with + // assumption offset==0 so we might end up drawing one + // to many gridlines + $i=0; + $x=$aTicksPos[$i]; + while( $iimg->Line($x,$yl,$x,$yu); + elseif( $aType == 'dotted' ) $this->img->DashedLine($x,$yl,$x,$yu,1,6); + elseif( $aType == 'dashed' ) $this->img->DashedLine($x,$yl,$x,$yu,2,4); + elseif( $aType == 'longdashed' ) $this->img->DashedLine($x,$yl,$x,$yu,8,6); + ++$i; + } + } + else { + JpGraphError::RaiseL(25054,$this->scale->type);//('Internal error: Unknown grid axis ['.$this->scale->type.']'); + } + return true; + } +} // Class + +//=================================================== +// CLASS Axis +// Description: Defines X and Y axis. Notes that at the +// moment the code is not really good since the axis on +// several occasion must know wheter it's an X or Y axis. +// This was a design decision to make the code easier to +// follow. +//=================================================== +class AxisPrototype { + public $scale=null; + public $img=null; + public $hide=false,$hide_labels=false; + public $title=null; + public $font_family=FF_FONT1,$font_style=FS_NORMAL,$font_size=12,$label_angle=0; + public $tick_step=1; + public $pos = false; + public $ticks_label = array(); + + protected $weight=1; + protected $color=array(0,0,0),$label_color=array(0,0,0); + protected $ticks_label_colors=null; + protected $show_first_label=true,$show_last_label=true; + protected $label_step=1; // Used by a text axis to specify what multiple of major steps + // should be labeled. + protected $labelPos=0; // Which side of the axis should the labels be? + protected $title_adjust,$title_margin,$title_side=SIDE_LEFT; + protected $tick_label_margin=5; + protected $label_halign = '',$label_valign = '', $label_para_align='left'; + protected $hide_line=false; + protected $iDeltaAbsPos=0; + + function __construct($img,$aScale,$color = array(0,0,0)) { + $this->img = $img; + $this->scale = $aScale; + $this->color = $color; + $this->title=new Text(''); + + if( $aScale->type == 'y' ) { + $this->title_margin = 25; + $this->title_adjust = 'middle'; + $this->title->SetOrientation(90); + $this->tick_label_margin=7; + $this->labelPos=SIDE_LEFT; + } + else { + $this->title_margin = 5; + $this->title_adjust = 'high'; + $this->title->SetOrientation(0); + $this->tick_label_margin=5; + $this->labelPos=SIDE_DOWN; + $this->title_side=SIDE_DOWN; + } + } + + function SetLabelFormat($aFormStr) { + $this->scale->ticks->SetLabelFormat($aFormStr); + } + + function SetLabelFormatString($aFormStr,$aDate=false) { + $this->scale->ticks->SetLabelFormat($aFormStr,$aDate); + } + + function SetLabelFormatCallback($aFuncName) { + $this->scale->ticks->SetFormatCallback($aFuncName); + } + + function SetLabelAlign($aHAlign,$aVAlign='top',$aParagraphAlign='left') { + $this->label_halign = $aHAlign; + $this->label_valign = $aVAlign; + $this->label_para_align = $aParagraphAlign; + } + + // Don't display the first label + function HideFirstTickLabel($aShow=false) { + $this->show_first_label=$aShow; + } + + function HideLastTickLabel($aShow=false) { + $this->show_last_label=$aShow; + } + + // Manually specify the major and (optional) minor tick position and labels + function SetTickPositions($aMajPos,$aMinPos=NULL,$aLabels=NULL) { + $this->scale->ticks->SetTickPositions($aMajPos,$aMinPos,$aLabels); + } + + // Manually specify major tick positions and optional labels + function SetMajTickPositions($aMajPos,$aLabels=NULL) { + $this->scale->ticks->SetTickPositions($aMajPos,NULL,$aLabels); + } + + // Hide minor or major tick marks + function HideTicks($aHideMinor=true,$aHideMajor=true) { + $this->scale->ticks->SupressMinorTickMarks($aHideMinor); + $this->scale->ticks->SupressTickMarks($aHideMajor); + } + + // Hide zero label + function HideZeroLabel($aFlag=true) { + $this->scale->ticks->SupressZeroLabel(); + } + + function HideFirstLastLabel() { + // The two first calls to ticks method will supress + // automatically generated scale values. However, that + // will not affect manually specified value, e.g text-scales. + // therefor we also make a kludge here to supress manually + // specified scale labels. + $this->scale->ticks->SupressLast(); + $this->scale->ticks->SupressFirst(); + $this->show_first_label = false; + $this->show_last_label = false; + } + + // Hide the axis + function Hide($aHide=true) { + $this->hide=$aHide; + } + + // Hide the actual axis-line, but still print the labels + function HideLine($aHide=true) { + $this->hide_line = $aHide; + } + + function HideLabels($aHide=true) { + $this->hide_labels = $aHide; + } + + // Weight of axis + function SetWeight($aWeight) { + $this->weight = $aWeight; + } + + // Axis color + function SetColor($aColor,$aLabelColor=false) { + $this->color = $aColor; + if( !$aLabelColor ) $this->label_color = $aColor; + else $this->label_color = $aLabelColor; + } + + // Title on axis + function SetTitle($aTitle,$aAdjustAlign='high') { + $this->title->Set($aTitle); + $this->title_adjust=$aAdjustAlign; + } + + // Specify distance from the axis + function SetTitleMargin($aMargin) { + $this->title_margin=$aMargin; + } + + // Which side of the axis should the axis title be? + function SetTitleSide($aSideOfAxis) { + $this->title_side = $aSideOfAxis; + } + + function SetTickSide($aDir) { + $this->scale->ticks->SetSide($aDir); + } + + function SetTickSize($aMajSize,$aMinSize=3) { + $this->scale->ticks->SetSize($aMajSize,$aMinSize=3); + } + + // Specify text labels for the ticks. One label for each data point + function SetTickLabels($aLabelArray,$aLabelColorArray=null) { + $this->ticks_label = $aLabelArray; + $this->ticks_label_colors = $aLabelColorArray; + } + + function SetLabelMargin($aMargin) { + $this->tick_label_margin=$aMargin; + } + + // Specify that every $step of the ticks should be displayed starting + // at $start + function SetTextTickInterval($aStep,$aStart=0) { + $this->scale->ticks->SetTextLabelStart($aStart); + $this->tick_step=$aStep; + } + + // Specify that every $step tick mark should have a label + // should be displayed starting + function SetTextLabelInterval($aStep) { + if( $aStep < 1 ) { + JpGraphError::RaiseL(25058);//(" Text label interval must be specified >= 1."); + } + $this->label_step=$aStep; + } + + function SetLabelSide($aSidePos) { + $this->labelPos=$aSidePos; + } + + // Set the font + function SetFont($aFamily,$aStyle=FS_NORMAL,$aSize=10) { + $this->font_family = $aFamily; + $this->font_style = $aStyle; + $this->font_size = $aSize; + } + + // Position for axis line on the "other" scale + function SetPos($aPosOnOtherScale) { + $this->pos=$aPosOnOtherScale; + } + + // Set the position of the axis to be X-pixels delta to the right + // of the max X-position (used to position the multiple Y-axis) + function SetPosAbsDelta($aDelta) { + $this->iDeltaAbsPos=$aDelta; + } + + // Specify the angle for the tick labels + function SetLabelAngle($aAngle) { + $this->label_angle = $aAngle; + } + +} // Class + + +//=================================================== +// CLASS Axis +// Description: Defines X and Y axis. Notes that at the +// moment the code is not really good since the axis on +// several occasion must know wheter it's an X or Y axis. +// This was a design decision to make the code easier to +// follow. +//=================================================== +class Axis extends AxisPrototype { + + function __construct($img,$aScale,$color='black') { + parent::__construct($img,$aScale,$color); + } + + // Stroke the axis. + function Stroke($aOtherAxisScale,$aStrokeLabels=true) { + if( $this->hide ) + return; + if( is_numeric($this->pos) ) { + $pos=$aOtherAxisScale->Translate($this->pos); + } + else { // Default to minimum of other scale if pos not set + if( ($aOtherAxisScale->GetMinVal() >= 0 && $this->pos==false) || $this->pos == 'min' ) { + $pos = $aOtherAxisScale->scale_abs[0]; + } + elseif($this->pos == "max") { + $pos = $aOtherAxisScale->scale_abs[1]; + } + else { // If negative set x-axis at 0 + $this->pos=0; + $pos=$aOtherAxisScale->Translate(0); + } + } + $pos += $this->iDeltaAbsPos; + $this->img->SetLineWeight($this->weight); + $this->img->SetColor($this->color); + $this->img->SetFont($this->font_family,$this->font_style,$this->font_size); + if( $this->scale->type == "x" ) { + if( !$this->hide_line ) { + $this->img->FilledRectangle($this->img->left_margin,$pos,$this->img->width-$this->img->right_margin,$pos+$this->weight-1); + } + if( $this->title_side == SIDE_DOWN ) { + $y = $pos + $this->img->GetFontHeight() + $this->title_margin + $this->title->margin; + $yalign = 'top'; + } + else { + $y = $pos - $this->img->GetFontHeight() - $this->title_margin - $this->title->margin; + $yalign = 'bottom'; + } + + if( $this->title_adjust=='high' ) { + $this->title->SetPos($this->img->width-$this->img->right_margin,$y,'right',$yalign); + } + elseif( $this->title_adjust=='middle' || $this->title_adjust=='center' ) { + $this->title->SetPos(($this->img->width-$this->img->left_margin-$this->img->right_margin)/2+$this->img->left_margin,$y,'center',$yalign); + } + elseif($this->title_adjust=='low') { + $this->title->SetPos($this->img->left_margin,$y,'left',$yalign); + } + else { + JpGraphError::RaiseL(25060,$this->title_adjust);//('Unknown alignment specified for X-axis title. ('.$this->title_adjust.')'); + } + } + elseif( $this->scale->type == "y" ) { + // Add line weight to the height of the axis since + // the x-axis could have a width>1 and we want the axis to fit nicely together. + if( !$this->hide_line ) { + $this->img->FilledRectangle($pos-$this->weight+1,$this->img->top_margin,$pos,$this->img->height-$this->img->bottom_margin+$this->weight-1); + } + $x=$pos ; + if( $this->title_side == SIDE_LEFT ) { + $x -= $this->title_margin; + $x -= $this->title->margin; + $halign = 'right'; + } + else { + $x += $this->title_margin; + $x += $this->title->margin; + $halign = 'left'; + } + // If the user has manually specified an hor. align + // then we override the automatic settings with this + // specifed setting. Since default is 'left' we compare + // with that. (This means a manually set 'left' align + // will have no effect.) + if( $this->title->halign != 'left' ) { + $halign = $this->title->halign; + } + if( $this->title_adjust == 'high' ) { + $this->title->SetPos($x,$this->img->top_margin,$halign,'top'); + } + elseif($this->title_adjust=='middle' || $this->title_adjust=='center') { + $this->title->SetPos($x,($this->img->height-$this->img->top_margin-$this->img->bottom_margin)/2+$this->img->top_margin,$halign,"center"); + } + elseif($this->title_adjust=='low') { + $this->title->SetPos($x,$this->img->height-$this->img->bottom_margin,$halign,'bottom'); + } + else { + JpGraphError::RaiseL(25061,$this->title_adjust);//('Unknown alignment specified for Y-axis title. ('.$this->title_adjust.')'); + } + } + $this->scale->ticks->Stroke($this->img,$this->scale,$pos); + if( $aStrokeLabels ) { + if( !$this->hide_labels ) { + $this->StrokeLabels($pos); + } + $this->title->Stroke($this->img); + } + } + + //--------------- + // PRIVATE METHODS + // Draw all the tick labels on major tick marks + function StrokeLabels($aPos,$aMinor=false,$aAbsLabel=false) { + + if( is_array($this->label_color) && count($this->label_color) > 3 ) { + $this->ticks_label_colors = $this->label_color; + $this->img->SetColor($this->label_color[0]); + } + else { + $this->img->SetColor($this->label_color); + } + $this->img->SetFont($this->font_family,$this->font_style,$this->font_size); + $yoff=$this->img->GetFontHeight()/2; + + // Only draw labels at major tick marks + $nbr = count($this->scale->ticks->maj_ticks_label); + + // We have the option to not-display the very first mark + // (Usefull when the first label might interfere with another + // axis.) + $i = $this->show_first_label ? 0 : 1 ; + if( !$this->show_last_label ) { + --$nbr; + } + // Now run through all labels making sure we don't overshoot the end + // of the scale. + $ncolor=0; + if( isset($this->ticks_label_colors) ) { + $ncolor=count($this->ticks_label_colors); + } + while( $i < $nbr ) { + // $tpos holds the absolute text position for the label + $tpos=$this->scale->ticks->maj_ticklabels_pos[$i]; + + // Note. the $limit is only used for the x axis since we + // might otherwise overshoot if the scale has been centered + // This is due to us "loosing" the last tick mark if we center. + if( $this->scale->type == 'x' && $tpos > $this->img->width-$this->img->right_margin+1 ) { + return; + } + // we only draw every $label_step label + if( ($i % $this->label_step)==0 ) { + + // Set specific label color if specified + if( $ncolor > 0 ) { + $this->img->SetColor($this->ticks_label_colors[$i % $ncolor]); + } + + // If the label has been specified use that and in other case + // just label the mark with the actual scale value + $m=$this->scale->ticks->GetMajor(); + + // ticks_label has an entry for each data point and is the array + // that holds the labels set by the user. If the user hasn't + // specified any values we use whats in the automatically asigned + // labels in the maj_ticks_label + if( isset($this->ticks_label[$i*$m]) ) { + $label=$this->ticks_label[$i*$m]; + } + else { + if( $aAbsLabel ) { + $label=abs($this->scale->ticks->maj_ticks_label[$i]); + } + else { + $label=$this->scale->ticks->maj_ticks_label[$i]; + } + + // We number the scale from 1 and not from 0 so increase by one + if( $this->scale->textscale && + $this->scale->ticks->label_formfunc == '' && + ! $this->scale->ticks->HaveManualLabels() ) { + + ++$label; + + } + } + + if( $this->scale->type == "x" ) { + if( $this->labelPos == SIDE_DOWN ) { + if( $this->label_angle==0 || $this->label_angle==90 ) { + if( $this->label_halign=='' && $this->label_valign=='') { + $this->img->SetTextAlign('center','top'); + } + else { + $this->img->SetTextAlign($this->label_halign,$this->label_valign); + } + + } + else { + if( $this->label_halign=='' && $this->label_valign=='') { + $this->img->SetTextAlign("right","top"); + } + else { + $this->img->SetTextAlign($this->label_halign,$this->label_valign); + } + } + $this->img->StrokeText($tpos,$aPos+$this->tick_label_margin,$label, + $this->label_angle,$this->label_para_align); + } + else { + if( $this->label_angle==0 || $this->label_angle==90 ) { + if( $this->label_halign=='' && $this->label_valign=='') { + $this->img->SetTextAlign("center","bottom"); + } + else { + $this->img->SetTextAlign($this->label_halign,$this->label_valign); + } + } + else { + if( $this->label_halign=='' && $this->label_valign=='') { + $this->img->SetTextAlign("right","bottom"); + } + else { + $this->img->SetTextAlign($this->label_halign,$this->label_valign); + } + } + $this->img->StrokeText($tpos,$aPos-$this->tick_label_margin-1,$label, + $this->label_angle,$this->label_para_align); + } + } + else { + // scale->type == "y" + //if( $this->label_angle!=0 ) + //JpGraphError::Raise(" Labels at an angle are not supported on Y-axis"); + if( $this->labelPos == SIDE_LEFT ) { // To the left of y-axis + if( $this->label_halign=='' && $this->label_valign=='') { + $this->img->SetTextAlign("right","center"); + } + else { + $this->img->SetTextAlign($this->label_halign,$this->label_valign); + } + $this->img->StrokeText($aPos-$this->tick_label_margin,$tpos,$label,$this->label_angle,$this->label_para_align); + } + else { // To the right of the y-axis + if( $this->label_halign=='' && $this->label_valign=='') { + $this->img->SetTextAlign("left","center"); + } + else { + $this->img->SetTextAlign($this->label_halign,$this->label_valign); + } + $this->img->StrokeText($aPos+$this->tick_label_margin,$tpos,$label,$this->label_angle,$this->label_para_align); + } + } + } + ++$i; + } + } + +} + + +//=================================================== +// CLASS Ticks +// Description: Abstract base class for drawing linear and logarithmic +// tick marks on axis +//=================================================== +class Ticks { + public $label_formatstr=''; // C-style format string to use for labels + public $label_formfunc=''; + public $label_dateformatstr=''; + public $direction=1; // Should ticks be in(=1) the plot area or outside (=-1) + public $supress_last=false,$supress_tickmarks=false,$supress_minor_tickmarks=false; + public $maj_ticks_pos = array(), $maj_ticklabels_pos = array(), + $ticks_pos = array(), $maj_ticks_label = array(); + public $precision; + + protected $minor_abs_size=3, $major_abs_size=5; + protected $scale; + protected $is_set=false; + protected $supress_zerolabel=false,$supress_first=false; + protected $mincolor='',$majcolor=''; + protected $weight=1; + protected $label_usedateformat=FALSE; + + function __construct($aScale) { + $this->scale=$aScale; + $this->precision = -1; + } + + // Set format string for automatic labels + function SetLabelFormat($aFormatString,$aDate=FALSE) { + $this->label_formatstr=$aFormatString; + $this->label_usedateformat=$aDate; + } + + function SetLabelDateFormat($aFormatString) { + $this->label_dateformatstr=$aFormatString; + } + + function SetFormatCallback($aCallbackFuncName) { + $this->label_formfunc = $aCallbackFuncName; + } + + // Don't display the first zero label + function SupressZeroLabel($aFlag=true) { + $this->supress_zerolabel=$aFlag; + } + + // Don't display minor tick marks + function SupressMinorTickMarks($aHide=true) { + $this->supress_minor_tickmarks=$aHide; + } + + // Don't display major tick marks + function SupressTickMarks($aHide=true) { + $this->supress_tickmarks=$aHide; + } + + // Hide the first tick mark + function SupressFirst($aHide=true) { + $this->supress_first=$aHide; + } + + // Hide the last tick mark + function SupressLast($aHide=true) { + $this->supress_last=$aHide; + } + + // Size (in pixels) of minor tick marks + function GetMinTickAbsSize() { + return $this->minor_abs_size; + } + + // Size (in pixels) of major tick marks + function GetMajTickAbsSize() { + return $this->major_abs_size; + } + + function SetSize($aMajSize,$aMinSize=3) { + $this->major_abs_size = $aMajSize; + $this->minor_abs_size = $aMinSize; + } + + // Have the ticks been specified + function IsSpecified() { + return $this->is_set; + } + + function SetSide($aSide) { + $this->direction=$aSide; + } + + // Which side of the axis should the ticks be on + function SetDirection($aSide=SIDE_RIGHT) { + $this->direction=$aSide; + } + + // Set colors for major and minor tick marks + function SetMarkColor($aMajorColor,$aMinorColor='') { + $this->SetColor($aMajorColor,$aMinorColor); + } + + function SetColor($aMajorColor,$aMinorColor='') { + $this->majcolor=$aMajorColor; + + // If not specified use same as major + if( $aMinorColor == '' ) { + $this->mincolor=$aMajorColor; + } + else { + $this->mincolor=$aMinorColor; + } + } + + function SetWeight($aWeight) { + $this->weight=$aWeight; + } + +} // Class + +//=================================================== +// CLASS LinearTicks +// Description: Draw linear ticks on axis +//=================================================== +class LinearTicks extends Ticks { + public $minor_step=1, $major_step=2; + public $xlabel_offset=0,$xtick_offset=0; + private $label_offset=0; // What offset should the displayed label have + // i.e should we display 0,1,2 or 1,2,3,4 or 2,3,4 etc + private $text_label_start=0; + private $iManualTickPos = NULL, $iManualMinTickPos = NULL, $iManualTickLabels = NULL; + private $iAdjustForDST = false; // If a date falls within the DST period add one hour to the diaplyed time + + function __construct() { + $this->precision = -1; + } + + // Return major step size in world coordinates + function GetMajor() { + return $this->major_step; + } + + // Return minor step size in world coordinates + function GetMinor() { + return $this->minor_step; + } + + // Set Minor and Major ticks (in world coordinates) + function Set($aMajStep,$aMinStep=false) { + if( $aMinStep==false ) { + $aMinStep=$aMajStep; + } + + if( $aMajStep <= 0 || $aMinStep <= 0 ) { + JpGraphError::RaiseL(25064); + //(" Minor or major step size is 0. Check that you haven't got an accidental SetTextTicks(0) in your code. If this is not the case you might have stumbled upon a bug in JpGraph. Please report this and if possible include the data that caused the problem."); + } + + $this->major_step=$aMajStep; + $this->minor_step=$aMinStep; + $this->is_set = true; + } + + function SetMajTickPositions($aMajPos,$aLabels=NULL) { + $this->SetTickPositions($aMajPos,NULL,$aLabels); + } + + function SetTickPositions($aMajPos,$aMinPos=NULL,$aLabels=NULL) { + if( !is_array($aMajPos) || ($aMinPos!==NULL && !is_array($aMinPos)) ) { + JpGraphError::RaiseL(25065);//('Tick positions must be specifued as an array()'); + return; + } + $n=count($aMajPos); + if( is_array($aLabels) && (count($aLabels) != $n) ) { + JpGraphError::RaiseL(25066);//('When manually specifying tick positions and labels the number of labels must be the same as the number of specified ticks.'); + } + $this->iManualTickPos = $aMajPos; + $this->iManualMinTickPos = $aMinPos; + $this->iManualTickLabels = $aLabels; + } + + function HaveManualLabels() { + return count($this->iManualTickLabels) > 0; + } + + // Specify all the tick positions manually and possible also the exact labels + function _doManualTickPos($aScale) { + $n=count($this->iManualTickPos); + $m=count($this->iManualMinTickPos); + $doLbl=count($this->iManualTickLabels) > 0; + + $this->maj_ticks_pos = array(); + $this->maj_ticklabels_pos = array(); + $this->ticks_pos = array(); + + // Now loop through the supplied positions and translate them to screen coordinates + // and store them in the maj_label_positions + $minScale = $aScale->scale[0]; + $maxScale = $aScale->scale[1]; + $j=0; + for($i=0; $i < $n ; ++$i ) { + // First make sure that the first tick is not lower than the lower scale value + if( !isset($this->iManualTickPos[$i]) || $this->iManualTickPos[$i] < $minScale || $this->iManualTickPos[$i] > $maxScale) { + continue; + } + + $this->maj_ticks_pos[$j] = $aScale->Translate($this->iManualTickPos[$i]); + $this->maj_ticklabels_pos[$j] = $this->maj_ticks_pos[$j]; + + // Set the minor tick marks the same as major if not specified + if( $m <= 0 ) { + $this->ticks_pos[$j] = $this->maj_ticks_pos[$j]; + } + if( $doLbl ) { + $this->maj_ticks_label[$j] = $this->iManualTickLabels[$i]; + } + else { + $this->maj_ticks_label[$j]=$this->_doLabelFormat($this->iManualTickPos[$i],$i,$n); + } + ++$j; + } + + // Some sanity check + if( count($this->maj_ticks_pos) < 2 ) { + JpGraphError::RaiseL(25067);//('Your manually specified scale and ticks is not correct. The scale seems to be too small to hold any of the specified tickl marks.'); + } + + // Setup the minor tick marks + $j=0; + for($i=0; $i < $m; ++$i ) { + if( empty($this->iManualMinTickPos[$i]) || $this->iManualMinTickPos[$i] < $minScale || $this->iManualMinTickPos[$i] > $maxScale) { + continue; + } + $this->ticks_pos[$j] = $aScale->Translate($this->iManualMinTickPos[$i]); + ++$j; + } + } + + function _doAutoTickPos($aScale) { + $maj_step_abs = $aScale->scale_factor*$this->major_step; + $min_step_abs = $aScale->scale_factor*$this->minor_step; + + if( $min_step_abs==0 || $maj_step_abs==0 ) { + JpGraphError::RaiseL(25068);//("A plot has an illegal scale. This could for example be that you are trying to use text autoscaling to draw a line plot with only one point or that the plot area is too small. It could also be that no input data value is numeric (perhaps only '-' or 'x')"); + } + // We need to make this an int since comparing it below + // with the result from round() can give wrong result, such that + // (40 < 40) == TRUE !!! + $limit = (int)$aScale->scale_abs[1]; + + if( $aScale->textscale ) { + // This can only be true for a X-scale (horizontal) + // Define ticks for a text scale. This is slightly different from a + // normal linear type of scale since the position might be adjusted + // and the labels start at on + $label = (float)$aScale->GetMinVal()+$this->text_label_start+$this->label_offset; + $start_abs=$aScale->scale_factor*$this->text_label_start; + $nbrmajticks=round(($aScale->GetMaxVal()-$aScale->GetMinVal()-$this->text_label_start )/$this->major_step)+1; + + $x = $aScale->scale_abs[0]+$start_abs+$this->xlabel_offset*$min_step_abs; + for( $i=0; $label <= $aScale->GetMaxVal()+$this->label_offset; ++$i ) { + // Apply format to label + $this->maj_ticks_label[$i]=$this->_doLabelFormat($label,$i,$nbrmajticks); + $label+=$this->major_step; + + // The x-position of the tick marks can be different from the labels. + // Note that we record the tick position (not the label) so that the grid + // happen upon tick marks and not labels. + $xtick=$aScale->scale_abs[0]+$start_abs+$this->xtick_offset*$min_step_abs+$i*$maj_step_abs; + $this->maj_ticks_pos[$i]=$xtick; + $this->maj_ticklabels_pos[$i] = round($x); + $x += $maj_step_abs; + } + } + else { + $label = $aScale->GetMinVal(); + $abs_pos = $aScale->scale_abs[0]; + $j=0; $i=0; + $step = round($maj_step_abs/$min_step_abs); + if( $aScale->type == "x" ) { + // For a normal linear type of scale the major ticks will always be multiples + // of the minor ticks. In order to avoid any rounding issues the major ticks are + // defined as every "step" minor ticks and not calculated separately + $nbrmajticks=round(($aScale->GetMaxVal()-$aScale->GetMinVal()-$this->text_label_start )/$this->major_step)+1; + while( round($abs_pos) <= $limit ) { + $this->ticks_pos[] = round($abs_pos); + $this->ticks_label[] = $label; + if( $step== 0 || $i % $step == 0 && $j < $nbrmajticks ) { + $this->maj_ticks_pos[$j] = round($abs_pos); + $this->maj_ticklabels_pos[$j] = round($abs_pos); + $this->maj_ticks_label[$j]=$this->_doLabelFormat($label,$j,$nbrmajticks); + ++$j; + } + ++$i; + $abs_pos += $min_step_abs; + $label+=$this->minor_step; + } + } + elseif( $aScale->type == "y" ) { + $nbrmajticks=round(($aScale->GetMaxVal()-$aScale->GetMinVal())/$this->major_step)+1; + while( round($abs_pos) >= $limit ) { + $this->ticks_pos[$i] = round($abs_pos); + $this->ticks_label[$i]=$label; + if( $step== 0 || $i % $step == 0 && $j < $nbrmajticks) { + $this->maj_ticks_pos[$j] = round($abs_pos); + $this->maj_ticklabels_pos[$j] = round($abs_pos); + $this->maj_ticks_label[$j]=$this->_doLabelFormat($label,$j,$nbrmajticks); + ++$j; + } + ++$i; + $abs_pos += $min_step_abs; + $label += $this->minor_step; + } + } + } + } + + function AdjustForDST($aFlg=true) { + $this->iAdjustForDST = $aFlg; + } + + + function _doLabelFormat($aVal,$aIdx,$aNbrTicks) { + + // If precision hasn't been specified set it to a sensible value + if( $this->precision==-1 ) { + $t = log10($this->minor_step); + if( $t > 0 ) { + $precision = 0; + } + else { + $precision = -floor($t); + } + } + else { + $precision = $this->precision; + } + + if( $this->label_formfunc != '' ) { + $f=$this->label_formfunc; + if( $this->label_formatstr == '' ) { + $l = call_user_func($f,$aVal); + } + else { + $l = sprintf($this->label_formatstr, call_user_func($f,$aVal)); + } + } + elseif( $this->label_formatstr != '' || $this->label_dateformatstr != '' ) { + if( $this->label_usedateformat ) { + // Adjust the value to take daylight savings into account + if (date("I",$aVal)==1 && $this->iAdjustForDST ) { + // DST + $aVal+=3600; + } + + $l = date($this->label_formatstr,$aVal); + if( $this->label_formatstr == 'W' ) { + // If we use week formatting then add a single 'w' in front of the + // week number to differentiate it from dates + $l = 'w'.$l; + } + } + else { + if( $this->label_dateformatstr !== '' ) { + // Adjust the value to take daylight savings into account + if (date("I",$aVal)==1 && $this->iAdjustForDST ) { + // DST + $aVal+=3600; + } + + $l = date($this->label_dateformatstr,$aVal); + if( $this->label_formatstr == 'W' ) { + // If we use week formatting then add a single 'w' in front of the + // week number to differentiate it from dates + $l = 'w'.$l; + } + } + else { + $l = sprintf($this->label_formatstr,$aVal); + } + } + } + else { + $l = sprintf('%01.'.$precision.'f',round($aVal,$precision)); + } + + if( ($this->supress_zerolabel && $l==0) || ($this->supress_first && $aIdx==0) || ($this->supress_last && $aIdx==$aNbrTicks-1) ) { + $l=''; + } + return $l; + } + + // Stroke ticks on either X or Y axis + function _StrokeTicks($aImg,$aScale,$aPos) { + $hor = $aScale->type == 'x'; + $aImg->SetLineWeight($this->weight); + + // We need to make this an int since comparing it below + // with the result from round() can give wrong result, such that + // (40 < 40) == TRUE !!! + $limit = (int)$aScale->scale_abs[1]; + + // A text scale doesn't have any minor ticks + if( !$aScale->textscale ) { + // Stroke minor ticks + $yu = $aPos - $this->direction*$this->GetMinTickAbsSize(); + $xr = $aPos + $this->direction*$this->GetMinTickAbsSize(); + $n = count($this->ticks_pos); + for($i=0; $i < $n; ++$i ) { + if( !$this->supress_tickmarks && !$this->supress_minor_tickmarks) { + if( $this->mincolor != '') { + $aImg->PushColor($this->mincolor); + } + if( $hor ) { + //if( $this->ticks_pos[$i] <= $limit ) + $aImg->Line($this->ticks_pos[$i],$aPos,$this->ticks_pos[$i],$yu); + } + else { + //if( $this->ticks_pos[$i] >= $limit ) + $aImg->Line($aPos,$this->ticks_pos[$i],$xr,$this->ticks_pos[$i]); + } + if( $this->mincolor != '' ) { + $aImg->PopColor(); + } + } + } + } + + // Stroke major ticks + $yu = $aPos - $this->direction*$this->GetMajTickAbsSize(); + $xr = $aPos + $this->direction*$this->GetMajTickAbsSize(); + $nbrmajticks=round(($aScale->GetMaxVal()-$aScale->GetMinVal()-$this->text_label_start )/$this->major_step)+1; + $n = count($this->maj_ticks_pos); + for($i=0; $i < $n ; ++$i ) { + if(!($this->xtick_offset > 0 && $i==$nbrmajticks-1) && !$this->supress_tickmarks) { + if( $this->majcolor != '') { + $aImg->PushColor($this->majcolor); + } + if( $hor ) { + //if( $this->maj_ticks_pos[$i] <= $limit ) + $aImg->Line($this->maj_ticks_pos[$i],$aPos,$this->maj_ticks_pos[$i],$yu); + } + else { + //if( $this->maj_ticks_pos[$i] >= $limit ) + $aImg->Line($aPos,$this->maj_ticks_pos[$i],$xr,$this->maj_ticks_pos[$i]); + } + if( $this->majcolor != '') { + $aImg->PopColor(); + } + } + } + + } + + // Draw linear ticks + function Stroke($aImg,$aScale,$aPos) { + if( $this->iManualTickPos != NULL ) { + $this->_doManualTickPos($aScale); + } + else { + $this->_doAutoTickPos($aScale); + } + $this->_StrokeTicks($aImg,$aScale,$aPos, $aScale->type == 'x' ); + } + + //--------------- + // PRIVATE METHODS + // Spoecify the offset of the displayed tick mark with the tick "space" + // Legal values for $o is [0,1] used to adjust where the tick marks and label + // should be positioned within the major tick-size + // $lo specifies the label offset and $to specifies the tick offset + // this comes in handy for example in bar graphs where we wont no offset for the + // tick but have the labels displayed halfway under the bars. + function SetXLabelOffset($aLabelOff,$aTickOff=-1) { + $this->xlabel_offset=$aLabelOff; + if( $aTickOff==-1 ) { + // Same as label offset + $this->xtick_offset=$aLabelOff; + } + else { + $this->xtick_offset=$aTickOff; + } + if( $aLabelOff>0 ) { + $this->SupressLast(); // The last tick wont fit + } + } + + // Which tick label should we start with? + function SetTextLabelStart($aTextLabelOff) { + $this->text_label_start=$aTextLabelOff; + } + +} // Class + +//=================================================== +// CLASS LinearScale +// Description: Handle linear scaling between screen and world +//=================================================== +class LinearScale { + public $textscale=false; // Just a flag to let the Plot class find out if + // we are a textscale or not. This is a cludge since + // this information is available in Graph::axtype but + // we don't have access to the graph object in the Plots + // stroke method. So we let graph store the status here + // when the linear scale is created. A real cludge... + public $type; // is this x or y scale ? + public $ticks=null; // Store ticks + public $text_scale_off = 0; + public $scale_abs=array(0,0); + public $scale_factor; // Scale factor between world and screen + public $off; // Offset between image edge and plot area + public $scale=array(0,0); + public $name = 'lin'; + public $auto_ticks=false; // When using manual scale should the ticks be automatically set? + public $world_abs_size; // Plot area size in pixels (Needed public in jpgraph_radar.php) + public $world_size; // Plot area size in world coordinates + public $intscale=false; // Restrict autoscale to integers + protected $autoscale_min=false; // Forced minimum value, auto determine max + protected $autoscale_max=false; // Forced maximum value, auto determine min + private $gracetop=0,$gracebottom=0; + + function __construct($aMin=0,$aMax=0,$aType='y') { + assert($aType=='x' || $aType=='y' ); + assert($aMin<=$aMax); + + $this->type=$aType; + $this->scale=array($aMin,$aMax); + $this->world_size=$aMax-$aMin; + $this->ticks = new LinearTicks(); + } + + // Check if scale is set or if we should autoscale + // We should do this is either scale or ticks has not been set + function IsSpecified() { + if( $this->GetMinVal()==$this->GetMaxVal() ) { // Scale not set + return false; + } + return true; + } + + // Set the minimum data value when the autoscaling is used. + // Usefull if you want a fix minimum (like 0) but have an + // automatic maximum + function SetAutoMin($aMin) { + $this->autoscale_min=$aMin; + } + + // Set the minimum data value when the autoscaling is used. + // Usefull if you want a fix minimum (like 0) but have an + // automatic maximum + function SetAutoMax($aMax) { + $this->autoscale_max=$aMax; + } + + // If the user manually specifies a scale should the ticks + // still be set automatically? + function SetAutoTicks($aFlag=true) { + $this->auto_ticks = $aFlag; + } + + // Specify scale "grace" value (top and bottom) + function SetGrace($aGraceTop,$aGraceBottom=0) { + if( $aGraceTop<0 || $aGraceBottom < 0 ) { + JpGraphError::RaiseL(25069);//(" Grace must be larger then 0"); + } + $this->gracetop=$aGraceTop; + $this->gracebottom=$aGraceBottom; + } + + // Get the minimum value in the scale + function GetMinVal() { + return $this->scale[0]; + } + + // get maximum value for scale + function GetMaxVal() { + return $this->scale[1]; + } + + // Specify a new min/max value for sclae + function Update($aImg,$aMin,$aMax) { + $this->scale=array($aMin,$aMax); + $this->world_size=$aMax-$aMin; + $this->InitConstants($aImg); + } + + // Translate between world and screen + function Translate($aCoord) { + if( !is_numeric($aCoord) ) { + if( $aCoord != '' && $aCoord != '-' && $aCoord != 'x' ) { + JpGraphError::RaiseL(25070);//('Your data contains non-numeric values.'); + } + return 0; + } + else { + return round($this->off+($aCoord - $this->scale[0]) * $this->scale_factor); + } + } + + // Relative translate (don't include offset) usefull when we just want + // to know the relative position (in pixels) on the axis + function RelTranslate($aCoord) { + if( !is_numeric($aCoord) ) { + if( $aCoord != '' && $aCoord != '-' && $aCoord != 'x' ) { + JpGraphError::RaiseL(25070);//('Your data contains non-numeric values.'); + } + return 0; + } + else { + return ($aCoord - $this->scale[0]) * $this->scale_factor; + } + } + + // Restrict autoscaling to only use integers + function SetIntScale($aIntScale=true) { + $this->intscale=$aIntScale; + } + + // Calculate an integer autoscale + function IntAutoScale($img,$min,$max,$maxsteps,$majend=true) { + // Make sure limits are integers + $min=floor($min); + $max=ceil($max); + if( abs($min-$max)==0 ) { + --$min; ++$max; + } + $maxsteps = floor($maxsteps); + + $gracetop=round(($this->gracetop/100.0)*abs($max-$min)); + $gracebottom=round(($this->gracebottom/100.0)*abs($max-$min)); + if( is_numeric($this->autoscale_min) ) { + $min = ceil($this->autoscale_min); + if( $min >= $max ) { + JpGraphError::RaiseL(25071);//('You have specified a min value with SetAutoMin() which is larger than the maximum value used for the scale. This is not possible.'); + } + } + + if( is_numeric($this->autoscale_max) ) { + $max = ceil($this->autoscale_max); + if( $min >= $max ) { + JpGraphError::RaiseL(25072);//('You have specified a max value with SetAutoMax() which is smaller than the miminum value used for the scale. This is not possible.'); + } + } + + if( abs($min-$max ) == 0 ) { + ++$max; + --$min; + } + + $min -= $gracebottom; + $max += $gracetop; + + // First get tickmarks as multiples of 1, 10, ... + if( $majend ) { + list($num1steps,$adj1min,$adj1max,$maj1step) = $this->IntCalcTicks($maxsteps,$min,$max,1); + } + else { + $adj1min = $min; + $adj1max = $max; + list($num1steps,$maj1step) = $this->IntCalcTicksFreeze($maxsteps,$min,$max,1); + } + + if( abs($min-$max) > 2 ) { + // Then get tick marks as 2:s 2, 20, ... + if( $majend ) { + list($num2steps,$adj2min,$adj2max,$maj2step) = $this->IntCalcTicks($maxsteps,$min,$max,5); + } + else { + $adj2min = $min; + $adj2max = $max; + list($num2steps,$maj2step) = $this->IntCalcTicksFreeze($maxsteps,$min,$max,5); + } + } + else { + $num2steps = 10000; // Dummy high value so we don't choose this + } + + if( abs($min-$max) > 5 ) { + // Then get tickmarks as 5:s 5, 50, 500, ... + if( $majend ) { + list($num5steps,$adj5min,$adj5max,$maj5step) = $this->IntCalcTicks($maxsteps,$min,$max,2); + } + else { + $adj5min = $min; + $adj5max = $max; + list($num5steps,$maj5step) = $this->IntCalcTicksFreeze($maxsteps,$min,$max,2); + } + } + else { + $num5steps = 10000; // Dummy high value so we don't choose this + } + + // Check to see whichof 1:s, 2:s or 5:s fit better with + // the requested number of major ticks + $match1=abs($num1steps-$maxsteps); + $match2=abs($num2steps-$maxsteps); + if( !empty($maj5step) && $maj5step > 1 ) { + $match5=abs($num5steps-$maxsteps); + } + else { + $match5=10000; // Dummy high value + } + + // Compare these three values and see which is the closest match + // We use a 0.6 weight to gravitate towards multiple of 5:s + if( $match1 < $match2 ) { + if( $match1 < $match5 ) $r=1; + else $r=3; + } + else { + if( $match2 < $match5 ) $r=2; + else $r=3; + } + // Minsteps are always the same as maxsteps for integer scale + switch( $r ) { + case 1: + $this->ticks->Set($maj1step,$maj1step); + $this->Update($img,$adj1min,$adj1max); + break; + case 2: + $this->ticks->Set($maj2step,$maj2step); + $this->Update($img,$adj2min,$adj2max); + break; + case 3: + $this->ticks->Set($maj5step,$maj5step); + $this->Update($img,$adj5min,$adj5max); + break; + default: + JpGraphError::RaiseL(25073,$r);//('Internal error. Integer scale algorithm comparison out of bound (r=$r)'); + } + } + + + // Calculate autoscale. Used if user hasn't given a scale and ticks + // $maxsteps is the maximum number of major tickmarks allowed. + function AutoScale($img,$min,$max,$maxsteps,$majend=true) { + + if( !is_numeric($min) || !is_numeric($max) ) { + JpGraphError::Raise(25044); + } + + if( $this->intscale ) { + $this->IntAutoScale($img,$min,$max,$maxsteps,$majend); + return; + } + if( abs($min-$max) < 0.00001 ) { + // We need some difference to be able to autoscale + // make it 5% above and 5% below value + if( $min==0 && $max==0 ) { // Special case + $min=-1; $max=1; + } + else { + $delta = (abs($max)+abs($min))*0.005; + $min -= $delta; + $max += $delta; + } + } + + $gracetop=($this->gracetop/100.0)*abs($max-$min); + $gracebottom=($this->gracebottom/100.0)*abs($max-$min); + if( is_numeric($this->autoscale_min) ) { + $min = $this->autoscale_min; + if( $min >= $max ) { + JpGraphError::RaiseL(25071);//('You have specified a min value with SetAutoMin() which is larger than the maximum value used for the scale. This is not possible.'); + } + if( abs($min-$max ) < 0.001 ) { + $max *= 1.2; + } + } + + if( is_numeric($this->autoscale_max) ) { + $max = $this->autoscale_max; + if( $min >= $max ) { + JpGraphError::RaiseL(25072);//('You have specified a max value with SetAutoMax() which is smaller than the miminum value used for the scale. This is not possible.'); + } + if( abs($min-$max ) < 0.001 ) { + $min *= 0.8; + } + } + + $min -= $gracebottom; + $max += $gracetop; + + // First get tickmarks as multiples of 0.1, 1, 10, ... + if( $majend ) { + list($num1steps,$adj1min,$adj1max,$min1step,$maj1step) = $this->CalcTicks($maxsteps,$min,$max,1,2); + } + else { + $adj1min=$min; + $adj1max=$max; + list($num1steps,$min1step,$maj1step) = $this->CalcTicksFreeze($maxsteps,$min,$max,1,2,false); + } + + // Then get tick marks as 2:s 0.2, 2, 20, ... + if( $majend ) { + list($num2steps,$adj2min,$adj2max,$min2step,$maj2step) = $this->CalcTicks($maxsteps,$min,$max,5,2); + } + else { + $adj2min=$min; + $adj2max=$max; + list($num2steps,$min2step,$maj2step) = $this->CalcTicksFreeze($maxsteps,$min,$max,5,2,false); + } + + // Then get tickmarks as 5:s 0.05, 0.5, 5, 50, ... + if( $majend ) { + list($num5steps,$adj5min,$adj5max,$min5step,$maj5step) = $this->CalcTicks($maxsteps,$min,$max,2,5); + } + else { + $adj5min=$min; + $adj5max=$max; + list($num5steps,$min5step,$maj5step) = $this->CalcTicksFreeze($maxsteps,$min,$max,2,5,false); + } + + // Check to see whichof 1:s, 2:s or 5:s fit better with + // the requested number of major ticks + $match1=abs($num1steps-$maxsteps); + $match2=abs($num2steps-$maxsteps); + $match5=abs($num5steps-$maxsteps); + + // Compare these three values and see which is the closest match + // We use a 0.8 weight to gravitate towards multiple of 5:s + $r=$this->MatchMin3($match1,$match2,$match5,0.8); + switch( $r ) { + case 1: + $this->Update($img,$adj1min,$adj1max); + $this->ticks->Set($maj1step,$min1step); + break; + case 2: + $this->Update($img,$adj2min,$adj2max); + $this->ticks->Set($maj2step,$min2step); + break; + case 3: + $this->Update($img,$adj5min,$adj5max); + $this->ticks->Set($maj5step,$min5step); + break; + } + } + + //--------------- + // PRIVATE METHODS + + // This method recalculates all constants that are depending on the + // margins in the image. If the margins in the image are changed + // this method should be called for every scale that is registred with + // that image. Should really be installed as an observer of that image. + function InitConstants($img) { + if( $this->type=='x' ) { + $this->world_abs_size=$img->width - $img->left_margin - $img->right_margin; + $this->off=$img->left_margin; + $this->scale_factor = 0; + if( $this->world_size > 0 ) { + $this->scale_factor=$this->world_abs_size/($this->world_size*1.0); + } + } + else { // y scale + $this->world_abs_size=$img->height - $img->top_margin - $img->bottom_margin; + $this->off=$img->top_margin+$this->world_abs_size; + $this->scale_factor = 0; + if( $this->world_size > 0 ) { + $this->scale_factor=-$this->world_abs_size/($this->world_size*1.0); + } + } + $size = $this->world_size * $this->scale_factor; + $this->scale_abs=array($this->off,$this->off + $size); + } + + // Initialize the conversion constants for this scale + // This tries to pre-calculate as much as possible to speed up the + // actual conversion (with Translate()) later on + // $start =scale start in absolute pixels (for x-scale this is an y-position + // and for an y-scale this is an x-position + // $len =absolute length in pixels of scale + function SetConstants($aStart,$aLen) { + $this->world_abs_size=$aLen; + $this->off=$aStart; + + if( $this->world_size<=0 ) { + // This should never ever happen !! + JpGraphError::RaiseL(25074); + //("You have unfortunately stumbled upon a bug in JpGraph. It seems like the scale range is ".$this->world_size." [for ".$this->type." scale]
    Please report Bug #01 to jpgraph@aditus.nu and include the script that gave this error. This problem could potentially be caused by trying to use \"illegal\" values in the input data arrays (like trying to send in strings or only NULL values) which causes the autoscaling to fail."); + } + + // scale_factor = number of pixels per world unit + $this->scale_factor=$this->world_abs_size/($this->world_size*1.0); + + // scale_abs = start and end points of scale in absolute pixels + $this->scale_abs=array($this->off,$this->off+$this->world_size*$this->scale_factor); + } + + + // Calculate number of ticks steps with a specific division + // $a is the divisor of 10**x to generate the first maj tick intervall + // $a=1, $b=2 give major ticks with multiple of 10, ...,0.1,1,10,... + // $a=5, $b=2 give major ticks with multiple of 2:s ...,0.2,2,20,... + // $a=2, $b=5 give major ticks with multiple of 5:s ...,0.5,5,50,... + // We return a vector of + // [$numsteps,$adjmin,$adjmax,$minstep,$majstep] + // If $majend==true then the first and last marks on the axis will be major + // labeled tick marks otherwise it will be adjusted to the closest min tick mark + function CalcTicks($maxsteps,$min,$max,$a,$b,$majend=true) { + $diff=$max-$min; + if( $diff==0 ) { + $ld=0; + } + else { + $ld=floor(log10($diff)); + } + + // Gravitate min towards zero if we are close + if( $min>0 && $min < pow(10,$ld) ) $min=0; + + //$majstep=pow(10,$ld-1)/$a; + $majstep=pow(10,$ld)/$a; + $minstep=$majstep/$b; + + $adjmax=ceil($max/$minstep)*$minstep; + $adjmin=floor($min/$minstep)*$minstep; + $adjdiff = $adjmax-$adjmin; + $numsteps=$adjdiff/$majstep; + + while( $numsteps>$maxsteps ) { + $majstep=pow(10,$ld)/$a; + $numsteps=$adjdiff/$majstep; + ++$ld; + } + + $minstep=$majstep/$b; + $adjmin=floor($min/$minstep)*$minstep; + $adjdiff = $adjmax-$adjmin; + if( $majend ) { + $adjmin = floor($min/$majstep)*$majstep; + $adjdiff = $adjmax-$adjmin; + $adjmax = ceil($adjdiff/$majstep)*$majstep+$adjmin; + } + else { + $adjmax=ceil($max/$minstep)*$minstep; + } + + return array($numsteps,$adjmin,$adjmax,$minstep,$majstep); + } + + function CalcTicksFreeze($maxsteps,$min,$max,$a,$b) { + // Same as CalcTicks but don't adjust min/max values + $diff=$max-$min; + if( $diff==0 ) { + $ld=0; + } + else { + $ld=floor(log10($diff)); + } + + //$majstep=pow(10,$ld-1)/$a; + $majstep=pow(10,$ld)/$a; + $minstep=$majstep/$b; + $numsteps=floor($diff/$majstep); + + while( $numsteps > $maxsteps ) { + $majstep=pow(10,$ld)/$a; + $numsteps=floor($diff/$majstep); + ++$ld; + } + $minstep=$majstep/$b; + return array($numsteps,$minstep,$majstep); + } + + + function IntCalcTicks($maxsteps,$min,$max,$a,$majend=true) { + $diff=$max-$min; + if( $diff==0 ) { + JpGraphError::RaiseL(25075);//('Can\'t automatically determine ticks since min==max.'); + } + else { + $ld=floor(log10($diff)); + } + + // Gravitate min towards zero if we are close + if( $min>0 && $min < pow(10,$ld) ) { + $min=0; + } + if( $ld == 0 ) { + $ld=1; + } + if( $a == 1 ) { + $majstep = 1; + } + else { + $majstep=pow(10,$ld)/$a; + } + $adjmax=ceil($max/$majstep)*$majstep; + + $adjmin=floor($min/$majstep)*$majstep; + $adjdiff = $adjmax-$adjmin; + $numsteps=$adjdiff/$majstep; + while( $numsteps>$maxsteps ) { + $majstep=pow(10,$ld)/$a; + $numsteps=$adjdiff/$majstep; + ++$ld; + } + + $adjmin=floor($min/$majstep)*$majstep; + $adjdiff = $adjmax-$adjmin; + if( $majend ) { + $adjmin = floor($min/$majstep)*$majstep; + $adjdiff = $adjmax-$adjmin; + $adjmax = ceil($adjdiff/$majstep)*$majstep+$adjmin; + } + else { + $adjmax=ceil($max/$majstep)*$majstep; + } + + return array($numsteps,$adjmin,$adjmax,$majstep); + } + + + function IntCalcTicksFreeze($maxsteps,$min,$max,$a) { + // Same as IntCalcTick but don't change min/max values + $diff=$max-$min; + if( $diff==0 ) { + JpGraphError::RaiseL(25075);//('Can\'t automatically determine ticks since min==max.'); + } + else { + $ld=floor(log10($diff)); + } + if( $ld == 0 ) { + $ld=1; + } + if( $a == 1 ) { + $majstep = 1; + } + else { + $majstep=pow(10,$ld)/$a; + } + + $numsteps=floor($diff/$majstep); + while( $numsteps > $maxsteps ) { + $majstep=pow(10,$ld)/$a; + $numsteps=floor($diff/$majstep); + ++$ld; + } + + return array($numsteps,$majstep); + } + + // Determine the minimum of three values witha weight for last value + function MatchMin3($a,$b,$c,$weight) { + if( $a < $b ) { + if( $a < ($c*$weight) ) { + return 1; // $a smallest + } + else { + return 3; // $c smallest + } + } + elseif( $b < ($c*$weight) ) { + return 2; // $b smallest + } + return 3; // $c smallest + } +} // Class + + +//=================================================== +// CLASS DisplayValue +// Description: Used to print data values at data points +//=================================================== +class DisplayValue { + public $margin=5; + public $show=false; + public $valign='',$halign='center'; + public $format='%.1f',$negformat=''; + private $ff=FF_FONT1,$fs=FS_NORMAL,$fsize=10; + private $iFormCallback=''; + private $angle=0; + private $color='navy',$negcolor=''; + private $iHideZero=false; + public $txt=null; + + function __construct() { + $this->txt = new Text(); + } + + function Show($aFlag=true) { + $this->show=$aFlag; + } + + function SetColor($aColor,$aNegcolor='') { + $this->color = $aColor; + $this->negcolor = $aNegcolor; + } + + function SetFont($aFontFamily,$aFontStyle=FS_NORMAL,$aFontSize=10) { + $this->ff=$aFontFamily; + $this->fs=$aFontStyle; + $this->fsize=$aFontSize; + } + + function ApplyFont($aImg) { + $aImg->SetFont($this->ff,$this->fs,$this->fsize); + } + + function SetMargin($aMargin) { + $this->margin = $aMargin; + } + + function SetAngle($aAngle) { + $this->angle = $aAngle; + } + + function SetAlign($aHAlign,$aVAlign='') { + $this->halign = $aHAlign; + $this->valign = $aVAlign; + } + + function SetFormat($aFormat,$aNegFormat='') { + $this->format= $aFormat; + $this->negformat= $aNegFormat; + } + + function SetFormatCallback($aFunc) { + $this->iFormCallback = $aFunc; + } + + function HideZero($aFlag=true) { + $this->iHideZero=$aFlag; + } + + function Stroke($img,$aVal,$x,$y) { + + if( $this->show ) + { + if( $this->negformat=='' ) { + $this->negformat=$this->format; + } + if( $this->negcolor=='' ) { + $this->negcolor=$this->color; + } + + if( $aVal===NULL || (is_string($aVal) && ($aVal=='' || $aVal=='-' || $aVal=='x' ) ) ) { + return; + } + + if( is_numeric($aVal) && $aVal==0 && $this->iHideZero ) { + return; + } + + // Since the value is used in different cirumstances we need to check what + // kind of formatting we shall use. For example, to display values in a line + // graph we simply display the formatted value, but in the case where the user + // has already specified a text string we don't fo anything. + if( $this->iFormCallback != '' ) { + $f = $this->iFormCallback; + $sval = call_user_func($f,$aVal); + } + elseif( is_numeric($aVal) ) { + if( $aVal >= 0 ) { + $sval=sprintf($this->format,$aVal); + } + else { + $sval=sprintf($this->negformat,$aVal); + } + } + else { + $sval=$aVal; + } + + $y = $y-sign($aVal)*$this->margin; + + $this->txt->Set($sval); + $this->txt->SetPos($x,$y); + $this->txt->SetFont($this->ff,$this->fs,$this->fsize); + if( $this->valign == '' ) { + if( $aVal >= 0 ) { + $valign = "bottom"; + } + else { + $valign = "top"; + } + } + else { + $valign = $this->valign; + } + $this->txt->Align($this->halign,$valign); + + $this->txt->SetOrientation($this->angle); + if( $aVal > 0 ) { + $this->txt->SetColor($this->color); + } + else { + $this->txt->SetColor($this->negcolor); + } + $this->txt->Stroke($img); + } + } +} + +//=================================================== +// CLASS Plot +// Description: Abstract base class for all concrete plot classes +//=================================================== +class Plot { + public $numpoints=0; + public $value; + public $legend=''; + public $coords=array(); + public $color='black'; + public $hidelegend=false; + public $line_weight=1; + public $csimtargets=array(),$csimwintargets=array(); // Array of targets for CSIM + public $csimareas=''; // Resultant CSIM area tags + public $csimalts=null; // ALT:s for corresponding target + public $legendcsimtarget='',$legendcsimwintarget=''; + public $legendcsimalt=''; + protected $weight=1; + protected $center=false; + + function __construct($aDatay,$aDatax=false) { + $this->numpoints = count($aDatay); + if( $this->numpoints==0 ) { + JpGraphError::RaiseL(25121);//("Empty input data array specified for plot. Must have at least one data point."); + } + $this->coords[0]=$aDatay; + if( is_array($aDatax) ) { + $this->coords[1]=$aDatax; + $n = count($aDatax); + for( $i=0; $i < $n; ++$i ) { + if( !is_numeric($aDatax[$i]) ) { + JpGraphError::RaiseL(25070); + } + } + } + $this->value = new DisplayValue(); + } + + // Stroke the plot + // "virtual" function which must be implemented by + // the subclasses + function Stroke($aImg,$aXScale,$aYScale) { + JpGraphError::RaiseL(25122);//("JpGraph: Stroke() must be implemented by concrete subclass to class Plot"); + } + + function HideLegend($f=true) { + $this->hidelegend = $f; + } + + function DoLegend($graph) { + if( !$this->hidelegend ) + $this->Legend($graph); + } + + function StrokeDataValue($img,$aVal,$x,$y) { + $this->value->Stroke($img,$aVal,$x,$y); + } + + // Set href targets for CSIM + function SetCSIMTargets($aTargets,$aAlts='',$aWinTargets='') { + $this->csimtargets=$aTargets; + $this->csimwintargets=$aWinTargets; + $this->csimalts=$aAlts; + } + + // Get all created areas + function GetCSIMareas() { + return $this->csimareas; + } + + // "Virtual" function which gets called before any scale + // or axis are stroked used to do any plot specific adjustment + function PreStrokeAdjust($aGraph) { + if( substr($aGraph->axtype,0,4) == "text" && (isset($this->coords[1])) ) { + JpGraphError::RaiseL(25123);//("JpGraph: You can't use a text X-scale with specified X-coords. Use a \"int\" or \"lin\" scale instead."); + } + return true; + } + + // Virtual function to the the concrete plot class to make any changes to the graph + // and scale before the stroke process begins + function PreScaleSetup($aGraph) { + // Empty + } + + // Get minimum values in plot + function Min() { + if( isset($this->coords[1]) ) { + $x=$this->coords[1]; + } + else { + $x=''; + } + if( $x != '' && count($x) > 0 ) { + $xm=min($x); + } + else { + $xm=0; + } + $y=$this->coords[0]; + $cnt = count($y); + if( $cnt > 0 ) { + $i=0; + while( $i<$cnt && !is_numeric($ym=$y[$i]) ) { + $i++; + } + while( $i < $cnt) { + if( is_numeric($y[$i]) ) { + $ym=min($ym,$y[$i]); + } + ++$i; + } + } + else { + $ym=''; + } + return array($xm,$ym); + } + + // Get maximum value in plot + function Max() { + if( isset($this->coords[1]) ) { + $x=$this->coords[1]; + } + else { + $x=''; + } + + if( $x!='' && count($x) > 0 ) { + $xm=max($x); + } + else { + $xm = $this->numpoints-1; + } + $y=$this->coords[0]; + if( count($y) > 0 ) { + $cnt = count($y); + $i=0; + while( $i<$cnt && !is_numeric($ym=$y[$i]) ) { + $i++; + } + while( $i < $cnt ) { + if( is_numeric($y[$i]) ) { + $ym=max($ym,$y[$i]); + } + ++$i; + } + } + else { + $ym=''; + } + return array($xm,$ym); + } + + function SetColor($aColor) { + $this->color=$aColor; + } + + function SetLegend($aLegend,$aCSIM='',$aCSIMAlt='',$aCSIMWinTarget='') { + $this->legend = $aLegend; + $this->legendcsimtarget = $aCSIM; + $this->legendcsimwintarget = $aCSIMWinTarget; + $this->legendcsimalt = $aCSIMAlt; + } + + function SetWeight($aWeight) { + $this->weight=$aWeight; + } + + function SetLineWeight($aWeight=1) { + $this->line_weight=$aWeight; + } + + function SetCenter($aCenter=true) { + $this->center = $aCenter; + } + + // This method gets called by Graph class to plot anything that should go + // into the margin after the margin color has been set. + function StrokeMargin($aImg) { + return true; + } + + // Framework function the chance for each plot class to set a legend + function Legend($aGraph) { + if( $this->legend != '' ) { + $aGraph->legend->Add($this->legend,$this->color,'',0,$this->legendcsimtarget,$this->legendcsimalt,$this->legendcsimwintarget); + } + } + +} // Class + + +// Provide a deterministic list of new colors whenever the getColor() method +// is called. Used to automatically set colors of plots. +class ColorFactory { + + static private $iIdx = 0; + static private $iColorList = array( + 'black', + 'blue', + 'orange', + 'darkgreen', + 'red', + 'AntiqueWhite3', + 'aquamarine3', + 'azure4', + 'brown', + 'cadetblue3', + 'chartreuse4', + 'chocolate', + 'darkblue', + 'darkgoldenrod3', + 'darkorchid3', + 'darksalmon', + 'darkseagreen4', + 'deepskyblue2', + 'dodgerblue4', + 'gold3', + 'hotpink', + 'lawngreen', + 'lightcoral', + 'lightpink3', + 'lightseagreen', + 'lightslateblue', + 'mediumpurple', + 'olivedrab', + 'orangered1', + 'peru', + 'slategray', + 'yellow4', + 'springgreen2'); + static private $iNum = 33; + + static function getColor() { + if( ColorFactory::$iIdx >= ColorFactory::$iNum ) + ColorFactory::$iIdx = 0; + return ColorFactory::$iColorList[ColorFactory::$iIdx++]; + } + +} + +// +?> diff --git a/gosa-core/include/jpgraph/jpgraph_antispam-digits.php b/gosa-core/include/jpgraph/jpgraph_antispam-digits.php new file mode 100644 index 000000000..f3cff8ae5 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_antispam-digits.php @@ -0,0 +1,205 @@ +digits['6'][0]= 645 ; + $this->digits['6'][1]= + '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'. + 'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. + 'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAEBAAMBAAAAAAAAAAAAAAAABgMEBwX/xAAvEAABAwMC'. + 'BAQEBwAAAAAAAAABAgMEAAURBiESIjFRBxMUQRUWMmFTYnGRkrHC/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/8QAFhEBAQEAAAAA'. + 'AAAAAAAAAAAAAAER/9oADAMBAAIRAxEAPwDslwiR3oDku8ONttsAvDiVyMcO/ET7ke5/aoOz6k1Vr5htNjW7a7M1yO3NTQU9JUDu'. + 'GgrlSn8xyf6p4gXaHJvNps9/mKZtSkGdMjRwpfqAFBLLACRlZUrJONsI2717No1lbZ10kx7XGnRpKWQ/6GVGMfzEJ5VFIVtsOH6e'. + 'wyKVhYsia0y22pLThSkJK1uniVgdThOM0ol+StIUhpopIyCFq3H8aUVCwnG3PGe4Rp6fLXJtMdyM0ojcIWvIz3HFnAPfrWTXb6GN'. + 'WaLXDwZjVz8pKEfhuIUFg/bAz9sVJ61nt61mxJFslLtq7e5yPqiBT4UDklKw4MDpt+u+9bFiu9riXNu83R+fcr6tohuQ5HQhmK37'. + 'paaC8DruScmg6X8KkjZEhbaB9KEyFYSOw26Uqd+e7Qerl5z74DY/1SomP//Z' ; + + //========================================================== + // d2-small.jpg + //========================================================== + $this->digits['2'][0]= 606 ; + $this->digits['2'][1]= + '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'. + 'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. + 'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEQMBIgACEQEDEQH/xAAYAAEBAQEBAAAAAAAAAAAAAAAFAAQHAv/EACsQAAEDBAEC'. + 'BAYDAAAAAAAAAAIBAwQABQYRIRIxQVFhcQcTFSJSU5GU0f/EABcBAAMBAAAAAAAAAAAAAAAAAAECAwT/xAAZEQACAwEAAAAAAAAA'. + 'AAAAAAAAARESUUH/2gAMAwEAAhEDEQA/AOqXm/Q8dxmOL4PPSnCSNFixx6nXnkXgRT3Te17JWbGsveueSyLZdbPItNxOKLzTLjou'. + 'gYCSoSoY8ISKSbFeUrzkdlnTL1YshskiErkQnFEZaF8kkdBBVdjyi6RNL5+9F486eS/ECVkcBtDt1vZcho5viS8ZCp9C9tAIAm/F'. + 'VoPRU+HRtJ5JVRP1kP0PfwP+1VKrHBMliXG4Nw8VgE4xGkuqk2S1wTUNEVdIvgpL9iL6KtNxY7WOwo9tt0RCitj0sR2uCbFPPzH1'. + '7+6rRuSRcljMBMsUy2tky045KOawZk5xtEFBJEROO3hx61kh2rPCIX3MhsyC4QmfTbC6lH8dq5212qwkiG5H6Y/9R2qm+ofxqqsL'. + 'DLZ6f//Z' ; + + //========================================================== + // d9-small.jpg + //========================================================== + $this->digits['9'][0]= 680 ; + $this->digits['9'][1]= + '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'. + 'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. + 'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABAUGBwP/xAArEAABAwMD'. + 'AgYBBQAAAAAAAAABAgMEBQYRABIhE1EUIjEzQUIHMlJhcdH/xAAWAQEBAQAAAAAAAAAAAAAAAAACAQD/xAAYEQEAAwEAAAAAAAAA'. + 'AAAAAAAAAREhQf/aAAwDAQACEQMRAD8AkK7brF6X7XpMeGoKhFMLEeT4ZUheEhanF4OcZ2pTgDykk92bZpdCsi7aezLjxkIPUZiV'. + 'RSCy8hah7EkZ27yM7V+iscal5bE22Lon1qNDmSKROd8Sl+Ix1lMOlIS4HGgQpbStoUCnlJz8HmsXtW3Lst2rmBAelLMRRekOwnYz'. + 'Edls9QKKnOVLyk7UgcbzzrdBthqEJJwZbAI4x1U/7o1TaFa9lG36aXaZTy54VrcXUgrzsGdx+T30aNydweqVw1GS87T6Lb86Q4ha'. + 'my/IAYjZBx+snKk99oOQMf1AViE65SY348hzFy6hPKnqtKz7DC1lbqyPrvJKUJ7H+M6Wrt3InP7o1brFNp4bCDGhxGAsqz69VSiQ'. + 'ORwBxrrQ7itm1ac7Hp0WoGTIc3PSn0pccdcP2WorycfA1RaRHjxosZqOyhtDTSAhCf2gDAGjVHTd9sKSCumynFEZK1tIJUe58/ro'. + '1V1//9k=' ; + + //========================================================== + // d5-small.jpg + //========================================================== + $this->digits['5'][0]= 632 ; + $this->digits['5'][1]= + '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'. + 'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. + 'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABgIFBwT/xAAoEAABAwME'. + 'AQQCAwAAAAAAAAABAgMEBQYRABIhIkEUMVFhBxNCgaH/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAv/EABcRAQEBAQAAAAAAAAAAAAAA'. + 'AAABEUH/2gAMAwEAAhEDEQA/ANGvW4YVOeiRX5b4mv5Sin05IdlupPKdo/j2SO3+6TbPNQvOsTVz33KRT4csR3YUF7Dsh5OSFvug'. + 'kqG4FPBxnjxpvvi4KZb1pTpU+QwxUi2Y7ZIAefUk5ATxnB9/gbtL/wCH1UpuhPUlZlMVaQ0mS8zJjqZOPfc2TwpIUonI9tw40R1r'. + 'WNGq/wBdJR1XT3lqHBUnGCfkfWjRWs1ve249erQqQYjOtN1FqPUpCXQ4WIzQSsJwT0UpRwQPG0nzqyuNHobjsl9kBuWqoOoXtT1/'. + 'WppZcA8lKRj64HxqU+3KpAr6plElRVKef3S4E0K9O8pLXVzKcqSsJAB9wSAca6bSoNXeuA1+5pEV+SGFNU1iKVFqI0Vdx2AJUeoz'. + '8DGlTDwG3CAf3q/pI0ah6MDhLz6U+EpXwPoaNMU//9k=' ; + + //========================================================== + // d1-small.jpg + //========================================================== + $this->digits['1'][0]= 646 ; + $this->digits['1'][1]= + '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'. + 'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. + 'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEwMBIgACEQEDEQH/xAAZAAADAAMAAAAAAAAAAAAAAAAABQYCBAf/xAApEAACAQMD'. + 'AwQBBQAAAAAAAAABAgMEBREABiESMUEHEyJRkSNCYXGB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/8QAFxEBAQEBAAAAAAAAAAAA'. + 'AAAAAAEREv/aAAwDAQACEQMRAD8A6jdd4WLbstILnc4Uq0VoWpkJknb6IjXLHJUePOlez923fcW4r1SxWlqC2UbdKirQif3Xw3yA'. + 'OFAGT09/kO3OmV3a20MFRf6lIYPcpy7yRRAzgxjIy2M8YwcdiBzpX6d22VNvUlTXsFkuwkrKqNSfnK7F8OTzwrAY+l5zoxKskudN'. + 'EgQPUT9PBkWF3DH+1GPxo1mLnRoAqF2VRgGOFmX/AAgY/GjRUP6hVMFv2FuFqUvUGrpDFJMBnpdyF5bsAQew7Hxzp6LZNT0yQ1DI'. + 'wp0QCFBhD0jCsfLZHxbx5xxpTuvb1+v9PV7Ztk9roLPLCjmSSN3mX5ZwqjCgZX7PfWxDQb2in96pv9qq46aTE0bW4x9ceAWAYPwS'. + 'PsYzoixgmheBGjIVcYCnjp/jHjHbRpe1JLn9OnopE/a0ykvjwDx47aNMXqP/2Q==' ; + + //========================================================== + // d8-small.jpg + //========================================================== + $this->digits['8'][0]= 694 ; + $this->digits['8'][1]= + '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'. + 'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. + 'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AFQMBIgACEQEDEQH/xAAYAAADAQEAAAAAAAAAAAAAAAAABgcEBf/EACsQAAEDAwMD'. + 'AwMFAAAAAAAAAAECAwQFBhEAEiEUMVEHE0EVYYEiIzJCsf/EABYBAQEBAAAAAAAAAAAAAAAAAAIAAf/EABcRAQEBAQAAAAAAAAAA'. + 'AAAAAAABERL/2gAMAwEAAhEDEQA/AKL6gVVUa0i1T5QjvTprUJMlxW4R9zgQXe/AH+kaWrntqlWjaq7gpcmotXAw82ht9yY4tch8'. + 'uAFC0k7VBXPGMY51ruiaue+bThIj+7NbWqS+7HDxajFf6AlB/k44o8ZOABk4xkL0X0tZiojKrlRuGRJjugqldSlKGf6t7BuUQe3J'. + '44xxxrA1a4KVJipLidri8uLHgqOcfjOPxo0o2hdDvS1CmV2Yl6fS5ioipIQR1CAlKkLKR2UUqAI8g6NRSwuuyHab6s1ufLI/Zai7'. + 'UBJOxhTS0+6B32pWSFH4CidOdWU0ukLiN1BLr0zG5Sdm3GRvcPhIT858DvjXNrVsSLnm/VIdTXS6tTnFsxZTSN3jchaTwps+O/z9'. + 'tcBVq3hIX0tYqlIiQHdy5CqRHKHXEjAOMgBKjnvyRk4xrQa7OiGt1K5biYZL8SoVEpjOqkFsONtJCNwASeCQrn7aNUKnQYtLp7EC'. + 'EylmLHQltptPZKQOBo1FzH//2Q==' ; + + //========================================================== + // d4-small.jpg + //========================================================== + $this->digits['4'][0]= 643 ; + $this->digits['4'][1]= + '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'. + 'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. + 'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAYAAADAQEAAAAAAAAAAAAAAAAABAYHAv/EAC0QAAIBAwQA'. + 'BAMJAAAAAAAAAAECAwQFEQAGEiETFDFBUmGBByIjUVNxobHR/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAIB/8QAGBEBAAMBAAAAAAAA'. + 'AAAAAAAAAAERIVH/2gAMAwEAAhEDEQA/ANjM00Nxmt1xiWW31CZp5uJwoAAaOQ/n7qfcZHqO5my3q5XX7R6ijiqnNut9u4NyJ4yv'. + 'JJyjYr8Xhrn5g599J7x3ulBNU7Zo7dXXXcLQ8kURYi4epYtkALjOePv1nUvbLvV7P3BZm3DR3eh88Kp7pVzBZI6iUhGWRRGWwE44'. + 'HX3V+uiL1uHgt+vL/H+aNJQ3CSeCOaFqSaJ1DJKs/TqRkMOvQjvRorHE4pRDLNWLGlRHGUeYIORXs9e5B7OP31E0fmdyb/t0DJ4Q'. + '27bfx3YZzPUIoAAz7IpOD6cuxq0uNumqLfVNDOqXBoZEjnZcqhIPXH4c46+WkdoWOltu3IDDLLLVVR83UVcuPEmmcZZ2/rHoAANG'. + 'GI7KIY1ijoLeEQBVCwIoAHpgY6Hy0aZe7mJ2jeHLKcEhusj6aNKgzr//2Q==' ; + + //========================================================== + // d7-small.jpg + //========================================================== + $this->digits['7'][0]= 658 ; + $this->digits['7'][1]= + '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'. + 'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. + 'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABgEFBwT/xAAuEAABAwIE'. + 'BAQGAwAAAAAAAAABAgMEBREABiExEhMiQSMyUXEHFBclVJFhk9L/xAAXAQADAQAAAAAAAAAAAAAAAAAAAQID/8QAGREBAQEAAwAA'. + 'AAAAAAAAAAAAAAEREiFR/9oADAMBAAIRAxEAPwDXq9mCjZeQ05VZ5ZST4bfEpa3VdglCbqUe+g9MZ5Uq7V8415WXoMSdQ6etgSps'. + '19wpkCMDZKUpv0FZvbi1NzpYasMDLDUbMVXrtQdbeeU23xLWkj5RlLYK0J7anW9gbAjCzkOtsVSUJUdtc6dVZK51UeaFm4LKbhpC'. + 'l7EhIFkDW974GbRI2XorUVls1OTdKAOqUpR0Hc3198GITQ6k+hLwrEpoODiDenRfW23bBicg78JXxPpD0mgVOW5PAivNNpahsPW5'. + '8xxQaSVkboQnhsnYm5OHqDGp1IpsalMKjMsMIC3+XZKbJFth62/QOEfMOZqZXp9JcKZTcGmTky3meSi7xQklI81vMR+sXIz/AEgp'. + 'Q0qPNu6ea8Q2jqtbp8+2w9h/OKORc/cpHjt1dDSHOtLZ4ekHW23bBjj+o9H/AB539aP94MG0+L//2Q==' ; + + //========================================================== + // d3-small.jpg + //========================================================== + $this->digits['3'][0]= 662 ; + $this->digits['3'][1]= + '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'. + 'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. + 'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABAUGBwL/xAArEAABBAED'. + 'AwMDBQEAAAAAAAABAgMEBREABhIhMUEiMmETFZEHFkJDUdH/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/xAAYEQEBAQEBAAAAAAAA'. + 'AAAAAAAAEQExQf/aAAwDAQACEQMRAD8A0vclruBdk3VVLLUNssGRJsZSCtqOjlgJAHvcOD6c4HnOdIbcttw1W5P29cFEhuawqTXS'. + 'VsJjnCMBxKkJJx7goAde+ceJfdNxU0UNlyymyXHi6kxWUNl1S3EnkAEIHX2nv86qtTuZr9Q9+1VhRsOoYpYcgSVyAE/TdewkJxnK'. + 'sBCjkdPGpnOtFMd3PqsXgfOAgD8Y0aX+11H9rDDjn8lr9yj5J+dGqsqxaw6Cc9cQZU4Sp7zTJsIrKlcUEKwhSin1JABI45GUjqOu'. + 'lbOvjbc3Ts9ynjGCy445UuFLYRzbWgrT6fhSCQSMDke+pew2zYVly/d7YchNqkMJZnQpgV9J8IzwWFJyUrAJHYgjvpLbu37G5nR7'. + 'vck5C3YRKYEOEVJZj8kjKypXqWvirjk9h+dB9i4faa89TDZUfKlIyT8k+To10a6KTkpcJ/0vL/7o0TS//9k=' ; + } +} + +class AntiSpam { + + var $iNumber=''; + + function __construct($aNumber='') { + $this->iNumber = $aNumber; + } + + function Rand($aLen) { + $d=''; + for($i=0; $i < $aLen; ++$i) { + $d .= rand(1,9); + } + $this->iNumber = $d; + return $d; + } + + function Stroke() { + + $n=strlen($this->iNumber); + for($i=0; $i < $n; ++$i ) { + if( !is_numeric($this->iNumber[$i]) || $this->iNumber[$i]==0 ) { + return false; + } + } + + $dd = new HandDigits(); + $n = strlen($this->iNumber); + $img = @imagecreatetruecolor($n*$dd->iWidth, $dd->iHeight); + if( $img < 1 ) { + return false; + } + $start=0; + for($i=0; $i < $n; ++$i ) { + $size = $dd->digits[$this->iNumber[$i]][0]; + $dimg = imagecreatefromstring(base64_decode($dd->digits[$this->iNumber[$i]][1])); + imagecopy($img,$dimg,$start,0,0,0,imagesx($dimg), $dd->iHeight); + $start += imagesx($dimg); + } + $resimg = @imagecreatetruecolor($start+4, $dd->iHeight+4); + if( $resimg < 1 ) { + return false; + } + imagecopy($resimg,$img,2,2,0,0,$start, $dd->iHeight); + header("Content-type: image/jpeg"); + imagejpeg($resimg); + return true; + } +} + +?> diff --git a/gosa-core/include/jpgraph/jpgraph_antispam.php b/gosa-core/include/jpgraph/jpgraph_antispam.php new file mode 100644 index 000000000..e9c995a74 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_antispam.php @@ -0,0 +1,615 @@ +chars['j'][0]= 658 ; + $this->chars['j'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABUDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAUGBAf/xAAsEAACAQMDAwMBCQAAAAAAAAAB'. +'AgMEBREAEjEGIUEUUXGBBxMVIiNSYWKC/8QAFgEBAQEAAAAAAAAAAAAAAAAAAwEC/8QAGhEAAwADAQAAAAAAAAAAAAAAAAECERIh'. +'Mv/aAAwDAQACEQMRAD8A6veK2st8zRWSyV1dUBfvHaGVI4hknsS7AFv4AyM57ayWbqeS+11xtT2etttwo4YqhEqnQs5bcAfyk4AZ'. +'SOeD441TKRTyingUBG4/ah8j684+dSFzh/BvtaslejMUu9DPQTDnLx4lQ/ONw1TGBm0jdRWqguEMghEisWilgDmNs4Ze+MEEEH40'. +'aUVFTa7JeLjRXu4GjhmnNbSfqFQVlA3rkckOjH/Q99Glmkl0C/Q06pvsvT9vttXHDF6T1KrWbs5gRgQJM+FDlQxPhjpF1XcVq+qe'. +'jEoKiOecXBqh2TDDYIXLKuP6549xk8auI6aJqV45oknWdNswkAIkGMYIxjGO2NR1F0LZY5qkWqkS1xrM0M8lMSJpY+TGrnJiQ577'. +'cEgeNHhi7D3qC3UN69M8tIakRhgrh9o748+eNGtcCiKjjpkQKlMTEg3ZwoxtHHtgfTRpYXArvp//2Q==' ; + + //========================================================== + // lf-small.jpg + //========================================================== + $this->chars['f'][0]= 633 ; + $this->chars['f'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAQFBgcC/8QAKxAAAgEDAwMCBQUAAAAAAAAA'. +'AQIDBBEhAAUGEjFBEyIHFFFhoRUzYnGS/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQP/xAAaEQACAwEBAAAAAAAAAAAAAAAAAQIRMRIh'. +'/9oADAMBAAIRAxEAPwDcnmLoIkiSYsouC3tA++O2lU9WkqVjJ+YdhZLsQI/4/YfQm50kZP0vbmaCSU0SRNIH6sghb9INs3t38dvp'. +'akUuz8x5DwdN5peS1jV1dSipSiVUigIcdQjQ26lIB/c6r3F86SZpE/zCFJaqsihQNhRgdj3Jyfxo0jDSbXHt9Oph9RAoV3qJGltY'. +'HDOxyb/nRpV0D3RXle21m48XraOk3IUSemUaV4g4Zc9ShcDtgff+tQfwvjq34Dtku7buamFqeJKemCCMxKFsEJU+/FrX8d76sEHG'. +'aNItzr4usVNdG3S0rmRYAVwEUmyjyQLZ11x7aF4zs9DQOyzml29I2cLa/pixIHi99DFCtU9dFuLIaijo9qiYPmR2mZmB9thgAHOD'. +'4+mjUrURyrUNMZFEkkIOFuFAbsP9d/OjVIQ6Vh4tP//Z' ; + + //========================================================== + // lb-small.jpg + //========================================================== + $this->chars['b'][0]= 645 ; + $this->chars['b'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABUDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYCAwUH/8QAKxAAAQMDAwMDAwUAAAAAAAAA'. +'AQIDBAAFEQYSIRMxUSJBYQcVI2JxgqHw/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQL/xAAYEQEBAQEBAAAAAAAAAAAAAAAAATERYf/a'. +'AAwDAQACEQMRAD8A6H95mxNYwLXcX+pCuilSLXJ6YSplaUELjqxwe4IJ5PIPamJ2V0bPcS7+NxCX1cHggAnIP+xSd9RyzHh2m7FQ'. +'Q1CvMNQWTjCt+HFD+PB/Y1fI1PL1HFFt0zaGblFdJQ9cJjpZiqPJUlBAKnPcEpGB5NNRKdrOl1NlgiQol4R2w4Sc5VtGf7opZteo'. +'LhdorjUSM5FnQnlR50NeHQysYxtVxlJHIPgjtRRD3xkaghs6juumdHz4+Y7RVPnt59K2mk7W+fcKWsZ7djTXMkW+xMP3GRJjwIEN'. +'HTG/CWx5wPY8AADx2NYk3SL9wukvUjGobnBkORksIbjdMANozgEqSo8qJPGO/wAVO36IsjUmBIfZfuM7epZk3F9UhSSk5O0K9Kcq'. +'8AcU3UzFuhUSBFud6nRXoz96mqmJZWg7m2dqUNhWBwdqQSP1UU5c/FFCn//Z' ; + + //========================================================== + // d6-small.jpg + //========================================================== + $this->chars['6'][0]= 645 ; + $this->chars['6'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'. +'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAEBAAMBAAAAAAAAAAAAAAAABgMEBwX/xAAvEAABAwMC'. +'BAQEBwAAAAAAAAABAgMEAAURBiESIjFRBxMUQRUWMmFTYnGRkrHC/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/8QAFhEBAQEAAAAA'. +'AAAAAAAAAAAAAAER/9oADAMBAAIRAxEAPwDslwiR3oDku8ONttsAvDiVyMcO/ET7ke5/aoOz6k1Vr5htNjW7a7M1yO3NTQU9JUDu'. +'GgrlSn8xyf6p4gXaHJvNps9/mKZtSkGdMjRwpfqAFBLLACRlZUrJONsI2717No1lbZ10kx7XGnRpKWQ/6GVGMfzEJ5VFIVtsOH6e'. +'wyKVhYsia0y22pLThSkJK1uniVgdThOM0ol+StIUhpopIyCFq3H8aUVCwnG3PGe4Rp6fLXJtMdyM0ojcIWvIz3HFnAPfrWTXb6GN'. +'WaLXDwZjVz8pKEfhuIUFg/bAz9sVJ61nt61mxJFslLtq7e5yPqiBT4UDklKw4MDpt+u+9bFiu9riXNu83R+fcr6tohuQ5HQhmK37'. +'paaC8DruScmg6X8KkjZEhbaB9KEyFYSOw26Uqd+e7Qerl5z74DY/1SomP//Z' ; + + //========================================================== + // lx-small.jpg + //========================================================== + $this->chars['x'][0]= 650 ; + $this->chars['x'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABMDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAUHBgj/xAApEAABAwMDAwQCAwAAAAAAAAAB'. +'AgMEBQYRACFBBxIxFCJRgRNxkcHw/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/xAAWEQEBAQAAAAAAAAAAAAAAAAAAEQH/2gAMAwEA'. +'AhEDEQA/AH9t3pKvO14UykVARa/HfAlxlDKXR24V2p3z7RlPwdtMep91uWdRGHWELjuTFFtLvcC4SNznnH+21O7ttiodOq1BvC0E'. +'p9I0lSX2kgqCSklK+5PKCMAng6zV2XRO6u3lSIURtbDRShltlZHa0tW7q/0MeTwnjxq1Jiw2xc9xTLbhSVU5iaXUFfqFFILgJOCd'. +'9Gt3SXabR6REpkL8yo0RpLCFNx1qBCRjOQMHxo0pEr6o3um2LVYpMEpTVqg25lHn08dfcB9kEgfZ1LIFDuawqZRb7aQlLTzqglsg'. +'9wQdveOEqBIB425xqhQuk8qo9UKlPrlRblw2ZBeCSVKW6CcoSrI2AGOT41SKzT4dYtmdS5bIXDZhNoWgbZJ94x8AYT/GkM03oNUc'. +'uKgwqtTZDTMOU0FttqRkoHggnPkEEHRrkJ6t1SlSHYUOc6zHaWrsbQrATk5/vRqK/9k=' ; + + //========================================================== + // d2-small.jpg + //========================================================== + $this->chars['2'][0]= 606 ; + $this->chars['2'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'. +'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEQMBIgACEQEDEQH/xAAYAAEBAQEBAAAAAAAAAAAAAAAFAAQHAv/EACsQAAEDBAEC'. +'BAYDAAAAAAAAAAIBAwQABQYRIRIxQVFhcQcTFSJSU5GU0f/EABcBAAMBAAAAAAAAAAAAAAAAAAECAwT/xAAZEQACAwEAAAAAAAAA'. +'AAAAAAAAARESUUH/2gAMAwEAAhEDEQA/AOqXm/Q8dxmOL4PPSnCSNFixx6nXnkXgRT3Te17JWbGsveueSyLZdbPItNxOKLzTLjou'. +'gYCSoSoY8ISKSbFeUrzkdlnTL1YshskiErkQnFEZaF8kkdBBVdjyi6RNL5+9F486eS/ECVkcBtDt1vZcho5viS8ZCp9C9tAIAm/F'. +'VoPRU+HRtJ5JVRP1kP0PfwP+1VKrHBMliXG4Nw8VgE4xGkuqk2S1wTUNEVdIvgpL9iL6KtNxY7WOwo9tt0RCitj0sR2uCbFPPzH1'. +'7+6rRuSRcljMBMsUy2tky045KOawZk5xtEFBJEROO3hx61kh2rPCIX3MhsyC4QmfTbC6lH8dq5212qwkiG5H6Y/9R2qm+ofxqqsL'. +'DLZ6f//Z' ; + + //========================================================== + // lm-small.jpg + //========================================================== + $this->chars['m'][0]= 649 ; + $this->chars['m'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGgAAAgMBAQAAAAAAAAAAAAAAAAcDBAUCBv/EAC0QAAICAQMCBAMJAAAAAAAA'. +'AAECAwQRAAUSBiETMVFhB2KhFSIyQVJxgZHB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgED/8QAGREBAQEAAwAAAAAAAAAAAAAAAQAR'. +'EiEx/9oADAMBAAIRAxEAPwB0MI2lIdgI0Cly3kFXLEn2zx1FDdp7rbpbjUtRWKio3hyxOGQllJzkegX66rQ2qW87Zuk9S5FNVmru'. +'iywyBhjDKTkeXfSr+GRfYtq2KAO32b1BGxAZu0dyJ2DKPTxY1wPddVszycUq2Golq8jRWbcnJWwCVGMjz+VQP50atxMtm2ZUOY4l'. +'4qfUnBP0x/Z0amy4jJm10Tt2yddWasFmfaRfdrlG3UcgArnxKzJ+Fu4DqCMkcgNem2DoWav8PLfTm+FPEkuSNTnqueS5bnHIv6CG'. +'LNjJwM99bm67NB1Ht89KSxNXnr2hNDbiUc47K4KyD2GQMfmMjUnS+7vuIktTqPCaaWCqAMMojPFyw8hyYMQBnAwNJHYGXPTsW9VN'. +'jg2zf50W9zk524GAEihuz+xbIOD82jW5TkjtRPZkTkJ+4VgDhQfuj/f3OjUxl1f/2Q==' ; + + //========================================================== + // lt-small.jpg + //========================================================== + $this->chars['t'][0]= 648 ; + $this->chars['t'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAQDBQYH/8QAJxAAAQMDAgYDAQEAAAAAAAAA'. +'AQIDBAUGEQASEyExQVFhIjJxFSP/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAP/xAAZEQADAQEBAAAAAAAAAAAAAAAAAREhMUH/2gAM'. +'AwEAAhEDEQA/AO4BLEiEy7uG4IGxxs5IOOx76wd2XYidSp1HoD70240gcNNPbDyI6wQQpaz8E9MczkdhqtbsKYLieDk6WLKmZmmL'. +'Hk7AHVkbkLI+RQc7uRxgkfr1tx2rGu6VbToLVKkhU+kbugGf9WfaknCk5ycaX0zmaa+3JkqvW/CmzojsB9xoF6OoFK0r6HOcEDI0'. +'aefTuKX5ScMdC14HYq8n12zo1DEUcKTGg1Z+hyBwoPBVIiA/VQyOIgedhUCB4WMfXSV3UufVLcTUIqVf26K6mXDbPVRRzKT54iMg'. +'+zjtq6mtsyJjclxpKlUhSXEbkgkqWnBx4+J5e/zU0pZemPvJJQzEPDfQOrwwFY9AZ5eeYPLV6FwhoFYZuigxpkJeIjqAeIoAk9wA'. +'D46EnuD+6Nc1smDNrTlRkxqtMo1vzKhIdYgU9YDqVpISrLhHxSSd21I0aYyqP//Z' ; + + //========================================================== + // li-small.jpg + //========================================================== + $this->chars['i'][0]= 639 ; + $this->chars['i'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABYDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABwAGBP/EACcQAAEEAQMEAgIDAAAAAAAAAAEC'. +'AwQRBQAGEiExQVEHExSBFWFx/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgMB/8QAGBEBAQEBAQAAAAAAAAAAAAAAAAECMRH/2gAMAwEA'. +'AhEDEQA/AE7c+5M9BeRG29t1WUfKFFYW+GvrI7WD3B9g140YD5T36rcErDjbUR6dCBdejsKUpxITXI2FUrooCh70yvxzHyIlMvuK'. +'eVSH7IKEpJoKqu/ahddLryR/aMiO187bsmrWShhp1AZS2XHHrWhNJrzdf7f7GiVcHk3sptmHkJcJ2DIftS2FrKlJPXudWuLGYeQp'. +'t2fmEIckqIZaaKuSGG0lQ4gduRoFRHQ9AOgs2lOJbk9aSUlpjGvAWeSVH2VKq/2dFPw3IjyJe8s281ct3I9UoHJXGiQkD2STrSZ7'. +'Yf8AOl7JTdw5eOCz0jw3+LbYCfA9nz71msb8KMxoTGTw+5srjsipAdDqFBQBIuiOl6KrdYyJMyTCshlw2G3Fr/HiNqNNAqJJUoGl'. +'KND+h47km1bZwsvCbYYjycxIyK1qDv2yEi0hQviK8atKDcy9j//Z' ; + + + //========================================================== + // lp-small.jpg + //========================================================== + $this->chars['p'][0]= 700 ; + $this->chars['p'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAECBAUGB//EAC8QAAEDAwMCBAMJAAAAAAAA'. +'AAECAwQFESEABhIiMRMVUWEHFEEWIzIzcYGRocH/xAAWAQEBAQAAAAAAAAAAAAAAAAADAgH/xAAcEQACAgIDAAAAAAAAAAAAAAAA'. +'AQIxAxESIUH/2gAMAwEAAhEDEQA/AOh703xG21DMeOyqoVNDjSzERiwU6Ep5qtZNycA97HTF13d33KWtmlt9xwkLl1NkXVxIuQgK'. +'wLj+hqBvel0qmbR8GnR22nJNZiLeeKr8nDIT1OLJucX+uPbWom7iocRpafOac5MX1ALltp/Cbi+cJH++utdh+WVNL3PNdNYpdWgx'. +'Y0qmLZSrwJJcQoOJ5XKlJFu4HbJOjVbt+V5nu7eopNRivqcdhK+bFnWwA1Y2AOcgjvj9dGlxy0g5y0xd+hNXoG24C4obizq3HZUh'. +'YHqtRHD06bG/8a0MbbG1mqekxaBSGmgkrcdcitlLfrckZIz7DUatbeFak0tyRLUwzT5vmiGm0cufEkFBJItfkD+59tKmiO12atFa'. +'eQukO3ejUxgENqTcfnE5WbkHiOnJ76N2IqI1DibabptS+zkZhtp90F2Y0S026EkAFK/qL46cXv65NVZDfxHmVCK4DE2/RX/lRFbA'. +'C5LwAyq2EtpHZI7mxPYDRqoctdESimz/2Q==' ; + + //========================================================== + // le-small.jpg + //========================================================== + $this->chars['e'][0]= 700 ; + $this->chars['e'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABgDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYEBQcB/8QAKhAAAQMCBAUEAwEAAAAAAAAA'. +'AgEDBAURAAYSIQciMTJBE0JRYRQVFoH/xAAXAQEBAQEAAAAAAAAAAAAAAAAAAgED/8QAGREAAwEBAQAAAAAAAAAAAAAAAAERAjFB'. +'/9oADAMBAAIRAxEAPwDTszvhEYCoS80BTm2bCjQRwdAzVe2yopkpJtpRUVfjEIc4V2oMerByg5Ji30oMyS3GeMunK0upfnu09MdJ'. +'p2scTmWnnGfx6HThktgLfKj7xEOqyr7QBbL41LhBzpxbcOru0LKDLdSnOHoaltNqSC4qWL0x9xbJYum69caczSaHmGmTmpDUYn4l'. +'UiqjkynzAVtwV23Ud+X4Ibpa2DCPkjhfUaRO/p8yzpb+YHhUmhbev6ZEll1lvqK3jt2XrbBgp6HVwsK3THpfEubGSoOUyFMpbJmL'. +'Deh6SgOGKti57EuY6l62JMWdJy7k3hg1LkOozEbVm7suQSkTiKtkEfP1pH664Za/QItccgI4bseTHdNxiXHLQ8yVl7V32XyioqL5'. +'TGc1ng6eYs0idczXUZscBBABWgEhEtfKNuUezwPnBhEuj8X2M21z9BR6NUX211Kk/UKKAjuhkPhL7XVf8vtgw7UPJlEyrDWFSYLb'. +'LBNF6qrzG6t0spEu6+fpL7YMXhUndp//2Q==' ; + + //========================================================== + // la-small.jpg + //========================================================== + $this->chars['a'][0]= 730 ; + $this->chars['a'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABoDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAABgMEBwX/xAAvEAABAwIFAQcCBwAAAAAAAAAB'. +'AgMEBREAEiExQQYHFBUiUXGBE2EyQkNSgpHh/8QAFwEBAQEBAAAAAAAAAAAAAAAAAAMBAv/EABkRAAMBAQEAAAAAAAAAAAAAAAAB'. +'IQIRMf/aAAwDAQACEQMRAD8AfdQ1pxjqZMSn0mRUZRYDaklJCE3OawO2ttTxY4hl07qFMVs1Ku02kpPnRGhsAqz8W9T9wDjozq6o'. +'Q1lDrcZLGVcmUoZg0obpufxK3Ftt9ccqB1GgBcmLSqtVEqOZcr6ARm/kbXHt7DEtc7WTJKTJqEWvRKfLqL9QplSjuPtGVYOJKBrm'. +'t+U+n94WGStZzNypmRWqckUKTbixy6jAfxPxHtCgKqFNlU5huK6pLMndSlegG4J45N8aKmTMKQRBsCNMzwB+RbHWHGEAZlPZX2hx'. +'qZIC34ygZoYUbB50JSkFXFhZR9BrpheR4fIbQ6gvurJ7q02bIQTuAOAN8x40HAxRr3TrNRpBmSHVt1KMlTyJTCsqkKAPlSf28W+c'. +'UGaD1c9HSR1HFUh9tJU45EBcAtcC9+P9wqbg8IAto9o81yputrVGpiUkgHKkqUTZI32+cKm1z1tIUgPBBAKQ4UBQH3uL3xmXSXep'. +'HVDtXStE5K5jlPU7PF3Q41+okJFkjgC+3OuNSYiSzHaLtRcW4UDMpLYSCbakDW3thhum5p//2Q==' ; + + //========================================================== + // d9-small.jpg + //========================================================== + $this->chars['9'][0]= 680 ; + $this->chars['9'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'. +'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABAUGBwP/xAArEAABAwMD'. +'AgYBBQAAAAAAAAABAgMEBQYRABIhE1EUIjEzQUIHMlJhcdH/xAAWAQEBAQAAAAAAAAAAAAAAAAACAQD/xAAYEQEAAwEAAAAAAAAA'. +'AAAAAAAAAREhQf/aAAwDAQACEQMRAD8AkK7brF6X7XpMeGoKhFMLEeT4ZUheEhanF4OcZ2pTgDykk92bZpdCsi7aezLjxkIPUZiV'. +'RSCy8hah7EkZ27yM7V+iscal5bE22Lon1qNDmSKROd8Sl+Ix1lMOlIS4HGgQpbStoUCnlJz8HmsXtW3Lst2rmBAelLMRRekOwnYz'. +'Edls9QKKnOVLyk7UgcbzzrdBthqEJJwZbAI4x1U/7o1TaFa9lG36aXaZTy54VrcXUgrzsGdx+T30aNydweqVw1GS87T6Lb86Q4ha'. +'my/IAYjZBx+snKk99oOQMf1AViE65SY348hzFy6hPKnqtKz7DC1lbqyPrvJKUJ7H+M6Wrt3InP7o1brFNp4bCDGhxGAsqz69VSiQ'. +'ORwBxrrQ7itm1ac7Hp0WoGTIc3PSn0pccdcP2WorycfA1RaRHjxosZqOyhtDTSAhCf2gDAGjVHTd9sKSCumynFEZK1tIJUe58/ro'. +'1V1//9k=' ; + + //========================================================== + // d5-small.jpg + //========================================================== + $this->chars['5'][0]= 632 ; + $this->chars['5'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'. +'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABgIFBwT/xAAoEAABAwME'. +'AQQCAwAAAAAAAAABAgMEBQYRABIhIkEUMVFhBxNCgaH/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAv/EABcRAQEBAQAAAAAAAAAAAAAA'. +'AAABEUH/2gAMAwEAAhEDEQA/ANGvW4YVOeiRX5b4mv5Sin05IdlupPKdo/j2SO3+6TbPNQvOsTVz33KRT4csR3YUF7Dsh5OSFvug'. +'kqG4FPBxnjxpvvi4KZb1pTpU+QwxUi2Y7ZIAefUk5ATxnB9/gbtL/wCH1UpuhPUlZlMVaQ0mS8zJjqZOPfc2TwpIUonI9tw40R1r'. +'WNGq/wBdJR1XT3lqHBUnGCfkfWjRWs1ve249erQqQYjOtN1FqPUpCXQ4WIzQSsJwT0UpRwQPG0nzqyuNHobjsl9kBuWqoOoXtT1/'. +'WppZcA8lKRj64HxqU+3KpAr6plElRVKef3S4E0K9O8pLXVzKcqSsJAB9wSAca6bSoNXeuA1+5pEV+SGFNU1iKVFqI0Vdx2AJUeoz'. +'8DGlTDwG3CAf3q/pI0ah6MDhLz6U+EpXwPoaNMU//9k=' ; + + //========================================================== + // d1-small.jpg + //========================================================== + $this->chars['1'][0]= 646 ; + $this->chars['1'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'. +'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEwMBIgACEQEDEQH/xAAZAAADAAMAAAAAAAAAAAAAAAAABQYCBAf/xAApEAACAQMD'. +'AwQBBQAAAAAAAAABAgMEBREABiESMUEHEyJRkSNCYXGB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/8QAFxEBAQEBAAAAAAAAAAAA'. +'AAAAAAEREv/aAAwDAQACEQMRAD8A6jdd4WLbstILnc4Uq0VoWpkJknb6IjXLHJUePOlez923fcW4r1SxWlqC2UbdKirQif3Xw3yA'. +'OFAGT09/kO3OmV3a20MFRf6lIYPcpy7yRRAzgxjIy2M8YwcdiBzpX6d22VNvUlTXsFkuwkrKqNSfnK7F8OTzwrAY+l5zoxKskudN'. +'EgQPUT9PBkWF3DH+1GPxo1mLnRoAqF2VRgGOFmX/AAgY/GjRUP6hVMFv2FuFqUvUGrpDFJMBnpdyF5bsAQew7Hxzp6LZNT0yQ1DI'. +'wp0QCFBhD0jCsfLZHxbx5xxpTuvb1+v9PV7Ztk9roLPLCjmSSN3mX5ZwqjCgZX7PfWxDQb2in96pv9qq46aTE0bW4x9ceAWAYPwS'. +'PsYzoixgmheBGjIVcYCnjp/jHjHbRpe1JLn9OnopE/a0ykvjwDx47aNMXqP/2Q==' ; + + //========================================================== + // ll-small.jpg + //========================================================== + $this->chars['l'][0]= 626 ; + $this->chars['l'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAYEBQf/xAArEAACAQIFAwIGAwAAAAAAAAAB'. +'AgMEEQAFBhIhFEFREzEHFSIyYcFxgZH/xAAXAQEAAwAAAAAAAAAAAAAAAAACAAED/8QAGhEAAwEAAwAAAAAAAAAAAAAAAAECMREh'. +'Qf/aAAwDAQACEQMRAD8A15Zfm1VURj1Fp5AqLKv3OARcL4W5Nzx+MLWjdRz5hqXU6TSb6OCr6WghiQbrJ91gOTy1yT5xZ55myZFk'. +'Gb5ozX6Ondm28XYqpQDwu7jEH4c5S2UaDy4xxrLmlUDWzk8XaQ3O49hbj+RiB85HNg8Ee3aqwIqhDuux7G/HHbvzgxEqaWOvy09R'. +'O0o3hjdQoUji20g+fY3wYSM6pJ4Ylr7V+Zz5PSaezHTlTRNWzxySSxt6q1MSkH6AOT2Fu3Aw7RfF/T9DEkLUeawuF2mKSgdWQj2/'. +'q3+fnDZDlqRZzQGaOGcpTOaeR1u8R+ncN3gj94so2jNWHeMNNKzorEX2qp9v3imNPoRE1zpjUtZ09HJmYq5lury0benZeTww23t3'. +'Ivgw+T0yRRyyxIqNfkLcA8jt7YMKcBWn/9k=' ; + + + //========================================================== + // ls-small.jpg + //========================================================== + $this->chars['s'][0]= 701 ; + $this->chars['s'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABQDASIAAhEBAxEB/8QAGgAAAgMBAQAAAAAAAAAAAAAAAAMCBAUGB//EACwQAAEEAQIFAgUFAAAAAAAA'. +'AAECAwQFEQAGEhMUITEiYQcjQVFxFRZCUoH/xAAWAQEBAQAAAAAAAAAAAAAAAAADAgH/xAAZEQADAQEBAAAAAAAAAAAAAAAAAQIR'. +'EiH/2gAMAwEAAhEDEQA/APWZMhmFXSJU+SGmWFiQtAWMJQAnJUr8Z+w/OuQk71uZnMsqnbjy9s8st9UMCQ6kZJdZaIHEkZ/JHceN'. +'N3HtizuY1JLrG48yLBSC9UTFKQiY4nACir+wAOOMEe2rm2bTbzlqtE1MyBuZAPybpw85KSfDRJ4Cg+Pl/wC61hJeGjV31VuuKqwr'. +'LGU+whZZK+Rw+oYJAyj3GjS4dZFpZVkqPLktdfMXNcaU2kBC1BIITkdx6c599GlnvPAa3TL2vNvU76n0063acr3YSLCEjpUpUQtW'. +'Dhf14SMEnOc57aZ8Tegm7dbrEQGZt1PeTDgc1PEW3FeXAvyAkZVkeMDOm2G3f3O7Cl/qEuqkQg4lp6CRxraWfUlRUD24kZA741Ko'. +'2k1HvlT3ri2sLOCgtsyJz6XEtBwZPAgJAGQMHUNPWKqWItsqh0UCFVyLeKhyLHQ2TMdHNVj+RKlAnJyfto1FW2ahgjrq6LYTFjjf'. +'lymUOLdWfJyoHA+gA7AAAaNPE3ysJdLT/9k=' ; + + //========================================================== + // lh-small.jpg + //========================================================== + $this->chars['h'][0]= 677 ; + $this->chars['h'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABUDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAIDBAUGB//EACwQAAIBAwMCBQIHAAAAAAAA'. +'AAECAwQFEQAGEiExExQiQVEVggcyU2GRocH/xAAXAQADAQAAAAAAAAAAAAAAAAAAAwQB/8QAGhEBAQEAAwEAAAAAAAAAAAAAAQAC'. +'AyEyMf/aAAwDAQACEQMRAD8A6DZb95q9bmpK6ieOCzNHJTxmE+NMhQ5fr1fLq3Ejvkak2e7ipiFsqb3R0m4qkPPJRiRXenU9VjKE'. +'5JVcA9R7nWc3/BUbfoKTdO3VRXhpjbZ2D8Rwk6RyZH6chB+46m7i2hDYtgA2ePlV2VkuKysoLzzRnlIScZJZeeevvjtrX7LK2rp7'. +'tTwwJ9WjhILDrTKnIdMEDl2+P80aVdJZb1QW+vgqENLPH4sBCDLIwUgnOf4GjVvDnLgUk79T81voqjb8NnuUx8pVRCiEaYUSuynl'. +'jHU9mOfnOoOx6hqz8PrbNdfEkMUXg1LSM3rKOUywJ7YAJ1ZTWmSpvdvlaVTDSUzJAhH5ZJBgv0x2RSAPlz21WXqoet3ba9nuW8n4'. +'Jr6qTPqnUNxSM/f6mPvxA9zqJnExTbR+h0nkhVu1uE8j0UBRQ9PGxBKFjnkAScdsDp10a0lc7z0tI7Y5YYN+5GAf7GjVXF4Icj3f'. +'/9k=' ; + + + //========================================================== + // ld-small.jpg + //========================================================== + $this->chars['d'][0]= 681 ; + $this->chars['d'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAQFBgH/xAAsEAABAwMEAAQFBQAAAAAAAAAB'. +'AgMEBQYRABIhMQcTI0EUMlFhkRgicaGx/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgEA/8QAGBEBAQEBAQAAAAAAAAAAAAAAAAECETH/'. +'2gAMAwEAAhEDEQA/ALUhp6h3W/X63UlypbhCY0WMjLqGzwDtPCfv/WtealNpVInuVBBqCogcdbU36YUkAkJWVHG8YPXBxxzxqPcN'. +'YtWyWnIlUeW05VEOAvrCnnSkftK1H5lKJPHsMDoDUWq+KdrSbIqsalVsImiEtLUZ2MU71bcYJWkhZ/36ayLHhi/IXZVOmzKqp5uU'. +'688hTyjuGVEFJKvoQesD86NL2jGZp1EoLDSmk+ZAQ8d7oPzp3YGesFWMfxo1YGvSzLsT9QExVX8phTlMaFOExAJIBGQjJwCcL+/e'. +'rd+W7GuO0Kw05CQ6+ww69Gfdb2kFIKk7DgEkjgnr86rXRa9HuyP8LV4SH0sIBbWFFDiFEgDaocgdkjo8ccay0qw7ut5nyrcviQqC'. +'slsRKo0HwlODkBRzxj2AGoXTtpzIdQ8MbffUChz4NCPRaClAo9Mn6c7T3o13wytmo0K05VIqkiPJbizFiMWs4CTgnIIHOST796NL'. +'Ia1JX//Z' ; + + //========================================================== + // d8-small.jpg + //========================================================== + $this->chars['8'][0]= 694 ; + $this->chars['8'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'. +'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AFQMBIgACEQEDEQH/xAAYAAADAQEAAAAAAAAAAAAAAAAABgcEBf/EACsQAAEDAwMD'. +'AwMFAAAAAAAAAAECAwQFBhEAEiEUMVEHE0EVYYEiIzJCsf/EABYBAQEBAAAAAAAAAAAAAAAAAAIAAf/EABcRAQEBAQAAAAAAAAAA'. +'AAAAAAABERL/2gAMAwEAAhEDEQA/AKL6gVVUa0i1T5QjvTprUJMlxW4R9zgQXe/AH+kaWrntqlWjaq7gpcmotXAw82ht9yY4tch8'. +'uAFC0k7VBXPGMY51ruiaue+bThIj+7NbWqS+7HDxajFf6AlB/k44o8ZOABk4xkL0X0tZiojKrlRuGRJjugqldSlKGf6t7BuUQe3J'. +'44xxxrA1a4KVJipLidri8uLHgqOcfjOPxo0o2hdDvS1CmV2Yl6fS5ioipIQR1CAlKkLKR2UUqAI8g6NRSwuuyHab6s1ufLI/Zai7'. +'UBJOxhTS0+6B32pWSFH4CidOdWU0ukLiN1BLr0zG5Sdm3GRvcPhIT858DvjXNrVsSLnm/VIdTXS6tTnFsxZTSN3jchaTwps+O/z9'. +'tcBVq3hIX0tYqlIiQHdy5CqRHKHXEjAOMgBKjnvyRk4xrQa7OiGt1K5biYZL8SoVEpjOqkFsONtJCNwASeCQrn7aNUKnQYtLp7EC'. +'EylmLHQltptPZKQOBo1FzH//2Q==' ; + + //========================================================== + // lz-small.jpg + //========================================================== + $this->chars['z'][0]= 690 ; + $this->chars['z'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABYDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABgAHA//EACsQAAEDAwQBAwIHAAAAAAAAAAEC'. +'AwQFESEABhIxBxMiQVFxCCM0UmGRof/EABYBAQEBAAAAAAAAAAAAAAAAAAECAP/EABgRAAMBAQAAAAAAAAAAAAAAAAABEVEC/9oA'. +'DAMBAAIRAxEAPwBTWfLu1KXXZDbM4uewNvLajlwhaCbBAwDe5uehYd3xm6t6bi3jvulwqc7KgxXZZeYQLNLeF73WRg4HEdgfzrSa'. +'P45pNEkznITDc9ypLShtyWhJDJyXC2qxJHZvjoZOjyVv1v8AESt6FFS4ijxvTLbawEApSccrYHJf0+OtJMQ2rNXk7GZMufJgJjTH'. +'Un9M4qzxT7hyCiThIyRnPXWrRvyLElVBUF6vlhl0lwRYCFKcQhAtyWpVhyWTx+w++rUvp4EWjOvbniUOnVatcS43BYDbJSPZyIBw'. +'ejclIx+3Wa+J63T6DQanuGszI0eZVJJV60p0Jum5GEi6le7l0PjvSjyRsaTvJqI1BqhhR46ksuMrQVJcUSEoUbHNr/7o7C8L7eiz'. +'4lLlyJk2cEqW+6V+m0AE9ISLnsj5+O9UhsFK92bZZqb9SRu9p2c4A0OCEqDbYAJSlJwAVZv3fBvbFrg/462btlhuS1RG5nL8pYkq'. +'KrnsKH06I/rVrQKkf//Z' ; + + //========================================================== + // d4-small.jpg + //========================================================== + $this->chars['4'][0]= 643 ; + $this->chars['4'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'. +'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAYAAADAQEAAAAAAAAAAAAAAAAABAYHAv/EAC0QAAIBAwQA'. +'BAMJAAAAAAAAAAECAwQFEQAGEiETFDFBUmGBByIjUVNxobHR/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAIB/8QAGBEBAAMBAAAAAAAA'. +'AAAAAAAAAAERIVH/2gAMAwEAAhEDEQA/ANjM00Nxmt1xiWW31CZp5uJwoAAaOQ/n7qfcZHqO5my3q5XX7R6ijiqnNut9u4NyJ4yv'. +'JJyjYr8Xhrn5g599J7x3ulBNU7Zo7dXXXcLQ8kURYi4epYtkALjOePv1nUvbLvV7P3BZm3DR3eh88Kp7pVzBZI6iUhGWRRGWwE44'. +'HX3V+uiL1uHgt+vL/H+aNJQ3CSeCOaFqSaJ1DJKs/TqRkMOvQjvRorHE4pRDLNWLGlRHGUeYIORXs9e5B7OP31E0fmdyb/t0DJ4Q'. +'27bfx3YZzPUIoAAz7IpOD6cuxq0uNumqLfVNDOqXBoZEjnZcqhIPXH4c46+WkdoWOltu3IDDLLLVVR83UVcuPEmmcZZ2/rHoAANG'. +'GI7KIY1ijoLeEQBVCwIoAHpgY6Hy0aZe7mJ2jeHLKcEhusj6aNKgzr//2Q==' ; + + //========================================================== + // lv-small.jpg + //========================================================== + $this->chars['v'][0]= 648 ; + $this->chars['v'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAQDBQYH/8QAKBAAAQQBAwMEAgMAAAAAAAAA'. +'AQIDBBEFAAYhEzFBEhQiYQdRFTKB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/8QAFxEBAQEBAAAAAAAAAAAAAAAAAAERIf/aAAwD'. +'AQACEQMRAD8A6Ngt1SZ4yrYgrecgTFsFJA9aGwAUrUaF2D2Avjzq6CIjiBPkB9bwQVIkIYIDae/wq+P9N+dY4SGMf+Txlev7KBmY'. +'PoadKRy4zxSgRxaTwO/x09u7KPYnasmHjlsyFZZXt4K23ezjvBpNGgLUrvXfVZyLLbWambiwEbKvvxYAkeotNlIJW2FEJWb7WBda'. +'NSQI0fHYyJjkrjKRDZQwnpQ1vgBIr+w8+a+9GocZr8iKkuY1eXhsKH8U8iZE9BHz6ZHUc48UfSPqzqH3kfeO9kTTDQYGGietpTaO'. +'shyW6AocpHNIrv8AvWzk9BUSdPdYS4BcRlomkhIV6KP0VE39V+tU2wdlRMHtZUB8NuTQ+51X27+Kr46ZPIAFV540D8zeLsJ5LMHa'. +'ubmMBCVJdjx0pRyLoWR4I8aNIQ8BvZMNtMTeUcsptKfc4tC1gAkCyFC+K0aJtf/Z' ; + + //========================================================== + // lk-small.jpg + //========================================================== + $this->chars['k'][0]= 680 ; + $this->chars['k'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABUDASIAAhEBAxEB/8QAGQAAAwEBAQAAAAAAAAAAAAAAAAUGBAMH/8QALhAAAQMDAwIEBAcAAAAAAAAA'. +'AQIDBAUREgAGITFBEyIyYQcVUYEUIzNicZHx/8QAFgEBAQEAAAAAAAAAAAAAAAAAAwEE/8QAGxEAAwACAwAAAAAAAAAAAAAAAAEC'. +'AxESMeH/2gAMAwEAAhEDEQA/APVK/V36dU6NSJDTT8esPLiqfK8S2cCoeTkKvZQ6jm2ldSqKqbu+OgMOvSX3m4UBrLnDlbqiefKl'. +'Nzz2x1m+IwNP27CkJQ7JkR6rCkMJbP5jp8S2CPfkgD6H+dJ6Ca0nerr+64rTNSqMYrg+C9mmOwhVpDfsuxSbi97DmybaoZeQ5jTl'. +'PEp18JTIfeW3kq3ly4H26aNZqvTWZsjFcZTsVtSg0G8Rio+vr2vb7g6NLPRnuXy8F+8kl+obUh4KXJdqSJJQnohlkZqJPYBXh3P+'. +'a4b5Hyp6k1bO7sOotPyXkj9NlwFl0ewstJA9ifrqkVSmET4csoS7UTHXFQ+6SQlskKUMb/tH9ddLVUmS7DqdBqD7U6OsqfS46jzl'. +'hQ5bXb1K9Scuybdxo2OTu92dwSZkWn0Sb8viQWyn8Qq5D6ifSLd0BIv7q0arTBRSKPToMZbi2GWylsvLK148Wue/XRrRjxOpT2R2'. +'k9aP/9k=' ; + + //========================================================== + // lr-small.jpg + //========================================================== + $this->chars['r'][0]= 681 ; + $this->chars['r'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABYDASIAAhEBAxEB/8QAGgAAAgIDAAAAAAAAAAAAAAAAAAYCBQMEB//EAC4QAAICAQIFAgMJAQAAAAAA'. +'AAECAwQRBQYAEiExQQdRFGFxEyIyM0JSYoGC8P/EABYBAQEBAAAAAAAAAAAAAAAAAAEAAv/EABcRAQEBAQAAAAAAAAAAAAAAAAAB'. +'EUH/2gAMAwEAAhEDEQA/AOs0ZdETU54Gt1INSmlPJEsyo7J+jlXPUYBPY9c+eE/dO9tY0a7ren6BVrW7VJTZtW5kZkjXkBSIKveQ'. +'gHp0AAJ4w+q2hVdT2Md0h46+saS4mr3EUK0gWTAB+vQj2PboeL/ZVOqmhaZVjkFmxdC6tctt3tM2G5/7bAx4C4+qxiWwd3prWzKe'. +'r3IBAth5OYxozKsgc8y4GTgnJB9uncdTi6tXq2140rRVM13JMEMAVAg7sMdBjJB/18uDgRO9R2Oo6FX2vShkFzURFUq1whIj+8DI'. +'7EdAFjXv7MeNb0kuStsFEmIaajZaos2fy2Q4VGH7SGxn+Rzw9yMLOm/FzRhZazmOTkP4grYyD3B8j2PTyeFfZ+z7G3BeSS8lmprl'. +'2K2qcnK0Z5S8gPjrgAY8cNEWmq7u23pEos6/Zji+Kd0rLLGWwseA3joeZj/w4OET1g0vlmrWV+ydFnkUxSgsvM4V+YYIwfHz6cHB'. +'ZeKZ1//Z' ; + + //========================================================== + // lg-small.jpg + //========================================================== + $this->chars['g'][0]= 655 ; + $this->chars['g'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAQCBQYH/8QAJxAAAQQBAwQCAgMAAAAAAAAA'. +'AQIDBBEFAAYhBxIxQRNhcYEiQlH/xAAYAQACAwAAAAAAAAAAAAAAAAACAwABBP/EABkRAAMBAQEAAAAAAAAAAAAAAAABAhEhIv/a'. +'AAwDAQACEQMRAD8AayO4t6bq3hmMHtxyLi4OKeKH5jyASiiQCCQeTRNAeB61FrBb+jTGpLO+BMW24EFMhkhpQru8m7B/H70x09Yi'. +'q3nv/vLfwpnJ7UNkqSRbngf2ofWkpXV7brymC2malLfagurjW0aHk89xPJ9cX9aprURHWbYEaMHHEBfwpv8AnXPk+/8AdGqGJOxO'. +'4YbOSxK4y4boIStUWysgkEmxY54r60aOI8oTV9MHtjJwunPUbO46WWo0HLlD8KY4goboFVoquOVEVwLT963WdnxYfT6ZJyz0JvHm'. +'KvtaSkW4tYNVSqKiTwB+fw5n9sY/cuOXCzDDcluyW3Ckd7V+0n0eNZTH9DdouFalHIOJBUhtDki0pNV3UALo81ehG6IdKjPZ6d47'. +'4ywltanVJvuJI+RQs/sHRqy2r003JhsImEc/CUyhxRZBjKV2oJ8eRXNmufPnRo1WIz3DdNn/2Q==' ; + + //========================================================== + // lc-small.jpg + //========================================================== + $this->chars['c'][0]= 629 ; + $this->chars['c'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGQAAAwEBAQAAAAAAAAAAAAAAAAUGBwID/8QALRAAAgICAQIEBAYDAAAAAAAA'. +'AQIDBAURACExBhIiQRMVUWEHMkJScYFykaH/xAAWAQEBAQAAAAAAAAAAAAAAAAABAgP/xAAXEQEBAQEAAAAAAAAAAAAAAAAAATER'. +'/9oADAMBAAIRAxEAPwDcoGkmiT4Q8kWvzuPU38D2/v8A1zwrCFayq1qTaFk2H7aJHt05MeMvENzC4upDWkjW9kJXiricAJCigvJN'. +'IB1IVQT5frrv24twPgunk6a288crbklUSJNNdnSTZ2STHHqOP/Eb17njdZtAoqwEvrEiGVyG117/AG6HhyV8H1sljMldoxXTksGC'. +'zV7M0oaWGQOVeGQ92I6EMR22D11w4LmEPjaOL51iL8ssc9Z69zHtZkYCGGeQK0ez2UEoU39wCeX1S/LLiEt+mPSbMLxsGVv2kEjR'. +'305xkaEV/GTULMUT1LD/AAGh8gIZS2jv+vpybb8NMIb0dVLWYWgiiU0vmMphOj6V0TvQI3rfsON1E6dYjGtisa0F1mAWR2NhG0WZ'. +'3Ls3TqNs5Hc9h23w49NWL9K+Q/VD5T/zhwPH/9k=' ; + + //========================================================== + // d7-small.jpg + //========================================================== + $this->chars['7'][0]= 658 ; + $this->chars['7'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'. +'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABgEFBwT/xAAuEAABAwIE'. +'BAQGAwAAAAAAAAABAgMEBREABiExEhMiQSMyUXEHFBclVJFhk9L/xAAXAQADAQAAAAAAAAAAAAAAAAAAAQID/8QAGREBAQEAAwAA'. +'AAAAAAAAAAAAAAEREiFR/9oADAMBAAIRAxEAPwDXq9mCjZeQ05VZ5ZST4bfEpa3VdglCbqUe+g9MZ5Uq7V8415WXoMSdQ6etgSps'. +'19wpkCMDZKUpv0FZvbi1NzpYasMDLDUbMVXrtQdbeeU23xLWkj5RlLYK0J7anW9gbAjCzkOtsVSUJUdtc6dVZK51UeaFm4LKbhpC'. +'l7EhIFkDW974GbRI2XorUVls1OTdKAOqUpR0Hc3198GITQ6k+hLwrEpoODiDenRfW23bBicg78JXxPpD0mgVOW5PAivNNpahsPW5'. +'8xxQaSVkboQnhsnYm5OHqDGp1IpsalMKjMsMIC3+XZKbJFth62/QOEfMOZqZXp9JcKZTcGmTky3meSi7xQklI81vMR+sXIz/AEgp'. +'Q0qPNu6ea8Q2jqtbp8+2w9h/OKORc/cpHjt1dDSHOtLZ4ekHW23bBjj+o9H/AB539aP94MG0+L//2Q==' ; + + //========================================================== + // ly-small.jpg + //========================================================== + $this->chars['y'][0]= 672 ; + $this->chars['y'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAQGBQf/xAArEAABAwMEAQIFBQAAAAAAAAAB'. +'AgMEBREhAAYSEzEHIhQkQVGxQmFxgaH/xAAWAQEBAQAAAAAAAAAAAAAAAAADAQL/xAAeEQEAAgEEAwAAAAAAAAAAAAABABECAxIh'. +'MUGR8P/aAAwDAQACEQMRAD8Ar3tys07dVHohemz5dWQ7fk91MsA3IIRY8rkKFySceTqw3JVV0KhyKw+0C1CQp9aUOFSiAk4AIAvn'. +'76xtz0ioVvbcJ6msx2JtOfZmw1PKI5LQcJNh7UqBKcn6+NRfqPu6s1fYc6GxSJsRfWDUVSGA22ygEckJWSexRNgOP0udXzDKOJ0I'. +'yo62mHm25Sy80l1Z4lSgpQvZRGLgWwPGjTjbchyLH+Ejx22EtJSgO8kki3kADA/nOjWjGzv73CyQZjUWNVp7bNSrj7qJDqflqUlQ'. +'DMds24l3HvcNr3Pi9gME6T9WWVsemdYWswwC2lPta4m5WMA3OdUExCmozUJD6g84ntMjrHIFBTdQz5yLDx/WDNytpwW6nAkViqVe'. +'uvmXdlme6n4dCwlRBKEgA2tj99QG7Ilncp5QqpU31PMsJ6x7A32f6SPxo0hPVCD45oVyKf0MtgeT97/nRrO7UOCFla3tn//Z' ; + + //========================================================== + // d3-small.jpg + //========================================================== + $this->chars['3'][0]= 662 ; + $this->chars['3'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'. +'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABAUGBwL/xAArEAABBAED'. +'AwMDBQEAAAAAAAABAgMEBREABhIhMUEiMmETFZEHFkJDUdH/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/xAAYEQEBAQEBAAAAAAAA'. +'AAAAAAAAEQExQf/aAAwDAQACEQMRAD8A0vclruBdk3VVLLUNssGRJsZSCtqOjlgJAHvcOD6c4HnOdIbcttw1W5P29cFEhuawqTXS'. +'VsJjnCMBxKkJJx7goAde+ceJfdNxU0UNlyymyXHi6kxWUNl1S3EnkAEIHX2nv86qtTuZr9Q9+1VhRsOoYpYcgSVyAE/TdewkJxnK'. +'sBCjkdPGpnOtFMd3PqsXgfOAgD8Y0aX+11H9rDDjn8lr9yj5J+dGqsqxaw6Cc9cQZU4Sp7zTJsIrKlcUEKwhSin1JABI45GUjqOu'. +'lbOvjbc3Ts9ynjGCy445UuFLYRzbWgrT6fhSCQSMDke+pew2zYVly/d7YchNqkMJZnQpgV9J8IzwWFJyUrAJHYgjvpLbu37G5nR7'. +'vck5C3YRKYEOEVJZj8kjKypXqWvirjk9h+dB9i4faa89TDZUfKlIyT8k+To10a6KTkpcJ/0vL/7o0TS//9k=' ; + + //========================================================== + // ln-small.jpg + //========================================================== + $this->chars['n'][0]= 643 ; + $this->chars['n'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABQDASIAAhEBAxEB/8QAGwAAAgEFAAAAAAAAAAAAAAAAAAYCAQMEBQf/xAAtEAACAQMCBAUCBwAAAAAA'. +'AAABAgMEBREAIQYSE0EHIjFRcWGRIzIzQoGCwf/EABYBAQEBAAAAAAAAAAAAAAAAAAMEAP/EABkRAQEBAQEBAAAAAAAAAAAAAAEA'. +'AhEhUf/aAAwDAQACEQMRAD8A6FR3p7v4oV9rlkMQsjL00RyOss0KkFxnDcrc2PbI1NOJKyTjW+W5OmKeA0UEJx5meRZS2/8AUfbS'. +'LVGS1+K16vCzfiR3GmoqqXGyxz06hWPsFlVMfOmq1iNvE69KjBYo3oJMZ3GKeYYPxg/fW+xzZX1FLQyxwSTcpWNceu4G3+aNSmpY'. +'qmQzzwh2k8yhv2r2H23/AJ0aoy+EWh7I1ntacR3PxDtEzhjWy0wkkIwYmanU5GO6sNh7rrU8AVdTceNbhDXxNHUQvS0tZ3DzwxVA'. +'fB7hj59/XJ08cPWaKj4gvlwSQiG7dCboqvLy9NOmQT9SM7ayJrBa6K5V91hjlWorp4JGUOAglRSiMMDb82/vgaBGTpVvtNUVtyJg'. +'5+WNAh5ZCu/r2+dGrgq0pi0DhmlRsSSAfqMd+b6ZyNu3po1Rk1yNBe3/2Q==' ; + + //========================================================== + // lu-small.jpg + //========================================================== + $this->chars['u'][0]= 671 ; + $this->chars['u'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYDBAUH/8QAJRAAAQQBAwQDAQEAAAAAAAAA'. +'AQIDBBEFAAYhBxMxYRJBURSB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAQAD/8QAGhEBAQEAAwEAAAAAAAAAAAAAAQARITFBAv/aAAwD'. +'AQACEQMRAD8A6dLkQmJzu3WVtHIqjf0duKFNuBr5UTQ45F1R8/XI1PMmsYoJyjhS9iI7BKHeKjkXZVXqhyLHP+rrHeR1pZlx1W1M'. +'wTiW0ukkrS28nn5fV2SPPFfurHUKQhzYG7pLYKEfyBhaSOS7dG/YCki/uvWn3LPDOJrwa4kyEzOYeakqkpC3Hk0bNePQHgDRpchY'. +'leIZwzUWauKtuPctTSUlCAUmrBHIKuAPV/ujQsmHdm7hya43UbbD3ZVElOQJsdTS6IQaQUqBHCk8E2Pocgam6oYwObHy0Zm0oi45'. +'T1KBPdpV2f0pom/1Ws7cmPazu98Ltvcq3VzRHfehz8a4pirFEKRZo8eQT+eCdWYfS/b+WYnxpbuVcDRMdHcyTqg2fiAfiLoi+Rf+'. +'jT7Xc74HtOYnHyUOh8yWUvKeHhy0CiPVUAPoDRrm+OeznTva6lzsyMjCYbbaiNJjJSWElagD5tRpNUSALFeNGoOCH7Bv/9k=' ; + + //========================================================== + // lw-small.jpg + //========================================================== + $this->chars['w'][0]= 673 ; + $this->chars['w'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAYDBAX/xAAtEAACAQMDAgMHBQAAAAAAAAAB'. +'AgMEBREABhIhMRMUQRUiIzJRYZEWNIGx0f/EABYBAQEBAAAAAAAAAAAAAAAAAAABA//EABoRAAICAwAAAAAAAAAAAAAAAAABERIh'. +'MVH/2gAMAwEAAhEDEQA/AHXbV13ZLu6t2/uaa1JijWopVp4XUTKSAXRyc+6ehBGeoPbTSlwpql0K3GneqpZViqUhI5JzGMEZJGeh'. +'GlXfaFILDf7FQzXC426rDLTojs8sLqVkXBGcfKf40twWbdWzZY75R0s90ul3jPtKjVMJDNn4DDp8iEhW+wJ1WZG2KWt3Lv26U1tv'. +'92o7PaYkgYUbqVepYlmUBlIwqnB++O2jTDt/bBtth9jcpvEWNGqalZQryTlmeR8jPct6+mNGmRC4a1U13htzVFItB5nA/cyOUVfp'. +'7oz/ALqitJulYJKuqvFsppHALLFb3cp9FBaXr+O51bq0q6i38KK5PDVAAxSzU6SIpz3Kjjn8jUFoS7uFmut1gq17xLFQ+DxOccj8'. +'Rsn+tVpiyJnqv09YfOXu5AycgZZQEhBZjgDBOOgwO/po0sttWHdNzqLruioa4UwmdaC3kYp4IwSvJlBHKQ4OSe3po0qxM6P/2Q==' ; + + //========================================================== + // lq-small.jpg + //========================================================== + $this->chars['q'][0]= 671 ; + $this->chars['q'][1]= +'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'. +'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'. +'MjIyMjIyMjL/wAARCAAeABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAcDBAUG/8QAKRAAAQQBBAICAQQDAAAAAAAA'. +'AQIDBBEFAAYSIQcxIlETCBQVgSNBYf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/8QAFhEBAQEAAAAAAAAAAAAAAAAAAAER/9oADAMB'. +'AAIRAxEAPwDT3H5Qz+O3LN2vtrF/y86NYLzzVlAABJITQPv2a/17vXMboz3lDEYWPuafNx7CFrS03+2jpK2bs0CUkUa7pRvrUu63'. +'sr438yv7pLEo4XIK5Kcji0uJUkckm+uQUOVH6GsnyJv7A5vaJwuFdkONLmolgONFH4vioKRXYqyCADXvRMh0yspmZ4jyIEtDTK47'. +'aiA0lQUopBJBI/7X9aNT7amRo228e3a31iO3yUzCcdSPiKAIFdCho0TIswZ7GQlO/hlRxBooih1YXzAoKUkX0LPEBX110dJ7zbuv'. +'AORpO04cIpmxH23FSEIRwKuNnsdk0o31702XhFMKbuRUZJWP8LTQ6HBCuIB+iVWSR2BXuqK93/hDlvGzEphmG3Ml5JpDi1I7TzNA'. +'BYFlPafY+/7LBiv1CYDH4iFDOGySlMR22lFP4wCUpANfL11o1r4bxXlWMNEaE/bqlIbCFl/ANPK5Do/M0VDr2Rf3o0TX/9k=' ; + + + + } +} + +class AntiSpam { + + private $iData=''; + private $iDD=null; + + function __construct($aData='') { + $this->iData = $aData; + $this->iDD = new HandDigits(); + } + + function Set($aData) { + $this->iData = $aData; + } + + function Rand($aLen) { + $d=''; + for($i=0; $i < $aLen; ++$i) { + if( rand(0,9) < 6 ) { + // Digits + $d .= chr( ord('1') + rand(0,8) ); + } + else { + // Letters + do { + $offset = rand(0,25); + } while ( $offset==14 ); + $d .= chr( ord('a') + $offset ); + } + } + $this->iData = $d; + return $d; + } + + function Stroke() { + + $n=strlen($this->iData); + if( $n==0 ) { + return false; + } + + for($i=0; $i < $n; ++$i ) { + if( $this->iData[$i]==='0' || strtolower($this->iData[$i])==='o') { + return false; + } + } + + $img = @imagecreatetruecolor($n*$this->iDD->iWidth, $this->iDD->iHeight); + if( $img < 1 ) { + return false; + } + + $start=0; + for($i=0; $i < $n; ++$i ) { + $dimg = imagecreatefromstring(base64_decode($this->iDD->chars[strtolower($this->iData[$i])][1])); + imagecopy($img,$dimg,$start,0,0,0,imagesx($dimg), $this->iDD->iHeight); + $start += imagesx($dimg); + } + $resimg = @imagecreatetruecolor($start+4, $this->iDD->iHeight+4); + if( $resimg < 1 ) { + return false; + } + + imagecopy($resimg,$img,2,2,0,0,$start, $this->iDD->iHeight); + header("Content-type: image/jpeg"); + imagejpeg($resimg); + return true; + } +} + +?> diff --git a/gosa-core/include/jpgraph/jpgraph_bar.php b/gosa-core/include/jpgraph/jpgraph_bar.php new file mode 100644 index 000000000..10a5ddfd2 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_bar.php @@ -0,0 +1,1136 @@ +numpoints; + } + + //--------------- + // PUBLIC METHODS + + // Set a drop shadow for the bar (or rather an "up-right" shadow) + function SetShadow($aColor="black",$aHSize=3,$aVSize=3,$aShow=true) { + $this->bar_shadow=$aShow; + $this->bar_shadow_color=$aColor; + $this->bar_shadow_vsize=$aVSize; + $this->bar_shadow_hsize=$aHSize; + + // Adjust the value margin to compensate for shadow + $this->value->margin += $aVSize; + } + + // DEPRECATED use SetYBase instead + function SetYMin($aYStartValue) { + //die("JpGraph Error: Deprecated function SetYMin. Use SetYBase() instead."); + $this->ybase=$aYStartValue; + } + + // Specify the base value for the bars + function SetYBase($aYStartValue) { + $this->ybase=$aYStartValue; + } + + // The method will take the specified pattern anre + // return a pattern index that corresponds to the original + // patterm being rotated 90 degreees. This is needed when plottin + // Horizontal bars + function RotatePattern($aPat,$aRotate=true) { + $rotate = array(1 => 2, 2 => 1, 3 => 3, 4 => 5, 5 => 4, 6 => 6, 7 => 7, 8 => 8); + if( $aRotate ) { + return $rotate[$aPat]; + } + else { + return $aPat; + } + } + + function Legend($graph) { + if( $this->grad && $this->legend!="" && !$this->fill ) { + $color=array($this->grad_fromcolor,$this->grad_tocolor); + // In order to differentiate between gradients and cooors specified as an RGB triple + $graph->legend->Add($this->legend,$color,"",-$this->grad_style, + $this->legendcsimtarget,$this->legendcsimalt,$this->legendcsimwintarget); + } + elseif( $this->legend!="" && ($this->iPattern > -1 || is_array($this->iPattern)) ) { + if( is_array($this->iPattern) ) { + $p1 = $this->RotatePattern( $this->iPattern[0], $graph->img->a == 90 ); + $p2 = $this->iPatternColor[0]; + $p3 = $this->iPatternDensity[0]; + } + else { + $p1 = $this->RotatePattern( $this->iPattern, $graph->img->a == 90 ); + $p2 = $this->iPatternColor; + $p3 = $this->iPatternDensity; + } + if( $p3 < 90 ) $p3 += 5; + $color = array($p1,$p2,$p3,$this->fill_color); + // A kludge: Too mark that we add a pattern we use a type value of < 100 + $graph->legend->Add($this->legend,$color,"",-101, + $this->legendcsimtarget,$this->legendcsimalt,$this->legendcsimwintarget); + } + elseif( $this->fill_color && $this->legend!="" ) { + if( is_array($this->fill_color) ) { + $graph->legend->Add($this->legend,$this->fill_color[0],"",0, + $this->legendcsimtarget,$this->legendcsimalt,$this->legendcsimwintarget); + } + else { + $graph->legend->Add($this->legend,$this->fill_color,"",0, + $this->legendcsimtarget,$this->legendcsimalt,$this->legendcsimwintarget); + } + } + } + + // Gets called before any axis are stroked + function PreStrokeAdjust($graph) { + parent::PreStrokeAdjust($graph); + + // If we are using a log Y-scale we want the base to be at the + // minimum Y-value unless the user have specifically set some other + // value than the default. + if( substr($graph->axtype,-3,3)=="log" && $this->ybase==0 ) + $this->ybase = $graph->yaxis->scale->GetMinVal(); + + // For a "text" X-axis scale we will adjust the + // display of the bars a little bit. + if( substr($graph->axtype,0,3)=="tex" ) { + // Position the ticks between the bars + $graph->xaxis->scale->ticks->SetXLabelOffset(0.5,0); + + // Center the bars + if( $this->abswidth > -1 ) { + $graph->SetTextScaleAbsCenterOff($this->abswidth); + } + else { + if( $this->align == "center" ) + $graph->SetTextScaleOff(0.5-$this->width/2); + elseif( $this->align == "right" ) + $graph->SetTextScaleOff(1-$this->width); + } + } + elseif( ($this instanceof AccBarPlot) || ($this instanceof GroupBarPlot) ) { + // We only set an absolute width for linear and int scale + // for text scale the width will be set to a fraction of + // the majstep width. + if( $this->abswidth == -1 ) { + // Not set + // set width to a visuable sensible default + $this->abswidth = $graph->img->plotwidth/(2*$this->numpoints); + } + } + } + + function Min() { + $m = parent::Min(); + if( $m[1] >= $this->ybase ) $m[1] = $this->ybase; + return $m; + } + + function Max() { + $m = parent::Max(); + if( $m[1] <= $this->ybase ) $m[1] = $this->ybase; + return $m; + } + + // Specify width as fractions of the major stepo size + function SetWidth($aWidth) { + if( $aWidth > 1 ) { + // Interpret this as absolute width + $this->abswidth=$aWidth; + } + else { + $this->width=$aWidth; + } + } + + // Specify width in absolute pixels. If specified this + // overrides SetWidth() + function SetAbsWidth($aWidth) { + $this->abswidth=$aWidth; + } + + function SetAlign($aAlign) { + $this->align=$aAlign; + } + + function SetNoFill() { + $this->grad = false; + $this->fill_color=false; + $this->fill=false; + } + + function SetFillColor($aColor) { + // Do an extra error check if the color is specified as an RGB array triple + // In that case convert it to a hex string since it will otherwise be + // interpretated as an array of colors for each individual bar. + + $aColor = RGB::tryHexConversion($aColor); + $this->fill = true ; + $this->fill_color=$aColor; + + } + + function SetFillGradient($aFromColor,$aToColor=null,$aStyle=null) { + $this->grad = true; + $this->grad_fromcolor = $aFromColor; + $this->grad_tocolor = $aToColor; + $this->grad_style = $aStyle; + } + + function SetValuePos($aPos) { + $this->valuepos = $aPos; + } + + function SetPattern($aPattern, $aColor='black'){ + if( is_array($aPattern) ) { + $n = count($aPattern); + $this->iPattern = array(); + $this->iPatternDensity = array(); + if( is_array($aColor) ) { + $this->iPatternColor = array(); + if( count($aColor) != $n ) { + JpGraphError::RaiseL(2001);//('NUmber of colors is not the same as the number of patterns in BarPlot::SetPattern()'); + } + } + else { + $this->iPatternColor = $aColor; + } + for( $i=0; $i < $n; ++$i ) { + $this->_SetPatternHelper($aPattern[$i], $this->iPattern[$i], $this->iPatternDensity[$i]); + if( is_array($aColor) ) { + $this->iPatternColor[$i] = $aColor[$i]; + } + } + } + else { + $this->_SetPatternHelper($aPattern, $this->iPattern, $this->iPatternDensity); + $this->iPatternColor = $aColor; + } + } + + function _SetPatternHelper($aPattern, &$aPatternValue, &$aDensity){ + switch( $aPattern ) { + case PATTERN_DIAG1: + $aPatternValue= 1; + $aDensity = 92; + break; + case PATTERN_DIAG2: + $aPatternValue= 1; + $aDensity = 78; + break; + case PATTERN_DIAG3: + $aPatternValue= 2; + $aDensity = 92; + break; + case PATTERN_DIAG4: + $aPatternValue= 2; + $aDensity = 78; + break; + case PATTERN_CROSS1: + $aPatternValue= 8; + $aDensity = 90; + break; + case PATTERN_CROSS2: + $aPatternValue= 8; + $aDensity = 78; + break; + case PATTERN_CROSS3: + $aPatternValue= 8; + $aDensity = 65; + break; + case PATTERN_CROSS4: + $aPatternValue= 7; + $aDensity = 90; + break; + case PATTERN_STRIPE1: + $aPatternValue= 5; + $aDensity = 94; + break; + case PATTERN_STRIPE2: + $aPatternValue= 5; + $aDensity = 85; + break; + default: + JpGraphError::RaiseL(2002); + //('Unknown pattern specified in call to BarPlot::SetPattern()'); + } + } + + function Stroke($img,$xscale,$yscale) { + + $numpoints = count($this->coords[0]); + if( isset($this->coords[1]) ) { + if( count($this->coords[1])!=$numpoints ) { + JpGraphError::RaiseL(2003,count($this->coords[1]),$numpoints); + //"Number of X and Y points are not equal. Number of X-points:".count($this->coords[1])."Number of Y-points:$numpoints"); + } + else { + $exist_x = true; + } + } + else { + $exist_x = false; + } + + + $numbars=count($this->coords[0]); + + // Use GetMinVal() instead of scale[0] directly since in the case + // of log scale we get a correct value. Log scales will have negative + // values for values < 1 while still not representing negative numbers. + if( $yscale->GetMinVal() >= 0 ) + $zp=$yscale->scale_abs[0]; + else { + $zp=$yscale->Translate(0); + } + + if( $this->abswidth > -1 ) { + $abswidth=$this->abswidth; + } + else { + $abswidth=round($this->width*$xscale->scale_factor,0); + } + + // Count pontetial pattern array to avoid doing the count for each iteration + if( is_array($this->iPattern) ) { + $np = count($this->iPattern); + } + + $grad = null; + for($i=0; $i < $numbars; ++$i) { + + // If value is NULL, or 0 then don't draw a bar at all + if ($this->coords[0][$i] === null || $this->coords[0][$i] === '' ) + continue; + + if( $exist_x ) { + $x=$this->coords[1][$i]; + } + else { + $x=$i; + } + + $x=$xscale->Translate($x); + + // Comment Note: This confuses the positioning when using acc together with + // grouped bars. Workaround for fixing #191 + /* + if( !$xscale->textscale ) { + if($this->align=="center") + $x -= $abswidth/2; + elseif($this->align=="right") + $x -= $abswidth; + } + */ + // Stroke fill color and fill gradient + $pts=array( + $x,$zp, + $x,$yscale->Translate($this->coords[0][$i]), + $x+$abswidth,$yscale->Translate($this->coords[0][$i]), + $x+$abswidth,$zp); + if( $this->grad ) { + if( $grad === null ) { + $grad = new Gradient($img); + } + if( is_array($this->grad_fromcolor) ) { + // The first argument (grad_fromcolor) can be either an array or a single color. If it is an array + // then we have two choices. It can either a) be a single color specified as an RGB triple or it can be + // an array to specify both (from, to style) for each individual bar. The way to know the difference is + // to investgate the first element. If this element is an integer [0,255] then we assume it is an RGB + // triple. + $ng = count($this->grad_fromcolor); + if( $ng === 3 ) { + if( is_numeric($this->grad_fromcolor[0]) && $this->grad_fromcolor[0] > 0 && $this->grad_fromcolor[0] < 256 ) { + // RGB Triple + $fromcolor = $this->grad_fromcolor; + $tocolor = $this->grad_tocolor; + $style = $this->grad_style; + } + else { + $fromcolor = $this->grad_fromcolor[$i % $ng][0]; + $tocolor = $this->grad_fromcolor[$i % $ng][1]; + $style = $this->grad_fromcolor[$i % $ng][2]; + } + } + else { + $fromcolor = $this->grad_fromcolor[$i % $ng][0]; + $tocolor = $this->grad_fromcolor[$i % $ng][1]; + $style = $this->grad_fromcolor[$i % $ng][2]; + } + $grad->FilledRectangle($pts[2],$pts[3], + $pts[6],$pts[7], + $fromcolor,$tocolor,$style); + } + else { + $grad->FilledRectangle($pts[2],$pts[3], + $pts[6],$pts[7], + $this->grad_fromcolor,$this->grad_tocolor,$this->grad_style); + } + } + elseif( !empty($this->fill_color) ) { + if(is_array($this->fill_color)) { + $img->PushColor($this->fill_color[$i % count($this->fill_color)]); + } else { + $img->PushColor($this->fill_color); + } + $img->FilledPolygon($pts); + $img->PopColor(); + } + + + // Remember value of this bar + $val=$this->coords[0][$i]; + + if( !empty($val) && !is_numeric($val) ) { + JpGraphError::RaiseL(2004,$i,$val); + //'All values for a barplot must be numeric. You have specified value['.$i.'] == \''.$val.'\''); + } + + // Determine the shadow + if( $this->bar_shadow && $val != 0) { + + $ssh = $this->bar_shadow_hsize; + $ssv = $this->bar_shadow_vsize; + // Create points to create a "upper-right" shadow + if( $val > 0 ) { + $sp[0]=$pts[6]; $sp[1]=$pts[7]; + $sp[2]=$pts[4]; $sp[3]=$pts[5]; + $sp[4]=$pts[2]; $sp[5]=$pts[3]; + $sp[6]=$pts[2]+$ssh; $sp[7]=$pts[3]-$ssv; + $sp[8]=$pts[4]+$ssh; $sp[9]=$pts[5]-$ssv; + $sp[10]=$pts[6]+$ssh; $sp[11]=$pts[7]-$ssv; + } + elseif( $val < 0 ) { + $sp[0]=$pts[4]; $sp[1]=$pts[5]; + $sp[2]=$pts[6]; $sp[3]=$pts[7]; + $sp[4]=$pts[0]; $sp[5]=$pts[1]; + $sp[6]=$pts[0]+$ssh; $sp[7]=$pts[1]-$ssv; + $sp[8]=$pts[6]+$ssh; $sp[9]=$pts[7]-$ssv; + $sp[10]=$pts[4]+$ssh; $sp[11]=$pts[5]-$ssv; + } + if( is_array($this->bar_shadow_color) ) { + $numcolors = count($this->bar_shadow_color); + if( $numcolors == 0 ) { + JpGraphError::RaiseL(2005);//('You have specified an empty array for shadow colors in the bar plot.'); + } + $img->PushColor($this->bar_shadow_color[$i % $numcolors]); + } + else { + $img->PushColor($this->bar_shadow_color); + } + $img->FilledPolygon($sp); + $img->PopColor(); + } + + // Stroke the pattern + if( is_array($this->iPattern) ) { + $f = new RectPatternFactory(); + if( is_array($this->iPatternColor) ) { + $pcolor = $this->iPatternColor[$i % $np]; + } + else { + $pcolor = $this->iPatternColor; + } + $prect = $f->Create($this->iPattern[$i % $np],$pcolor,1); + $prect->SetDensity($this->iPatternDensity[$i % $np]); + + if( $val < 0 ) { + $rx = $pts[0]; + $ry = $pts[1]; + } + else { + $rx = $pts[2]; + $ry = $pts[3]; + } + $width = abs($pts[4]-$pts[0])+1; + $height = abs($pts[1]-$pts[3])+1; + $prect->SetPos(new Rectangle($rx,$ry,$width,$height)); + $prect->Stroke($img); + } + else { + if( $this->iPattern > -1 ) { + $f = new RectPatternFactory(); + $prect = $f->Create($this->iPattern,$this->iPatternColor,1); + $prect->SetDensity($this->iPatternDensity); + if( $val < 0 ) { + $rx = $pts[0]; + $ry = $pts[1]; + } + else { + $rx = $pts[2]; + $ry = $pts[3]; + } + $width = abs($pts[4]-$pts[0])+1; + $height = abs($pts[1]-$pts[3])+1; + $prect->SetPos(new Rectangle($rx,$ry,$width,$height)); + $prect->Stroke($img); + } + } + + // Stroke the outline of the bar + if( is_array($this->color) ) { + $img->SetColor($this->color[$i % count($this->color)]); + } + else { + $img->SetColor($this->color); + } + + $pts[] = $pts[0]; + $pts[] = $pts[1]; + + if( $this->weight > 0 ) { + $img->SetLineWeight($this->weight); + $img->Polygon($pts); + } + + // Determine how to best position the values of the individual bars + $x=$pts[2]+($pts[4]-$pts[2])/2; + $this->value->SetMargin(5); + + if( $this->valuepos=='top' ) { + $y=$pts[3]; + if( $img->a === 90 ) { + if( $val < 0 ) { + $this->value->SetAlign('right','center'); + } + else { + $this->value->SetAlign('left','center'); + } + + } + else { + if( $val < 0 ) { + $this->value->SetMargin(-5); + $y=$pts[1]; + $this->value->SetAlign('center','bottom'); + } + else { + $this->value->SetAlign('center','bottom'); + } + + } + $this->value->Stroke($img,$val,$x,$y); + } + elseif( $this->valuepos=='max' ) { + $y=$pts[3]; + if( $img->a === 90 ) { + if( $val < 0 ) + $this->value->SetAlign('left','center'); + else + $this->value->SetAlign('right','center'); + } + else { + if( $val < 0 ) { + $this->value->SetAlign('center','bottom'); + } + else { + $this->value->SetAlign('center','top'); + } + } + $this->value->SetMargin(-5); + $this->value->Stroke($img,$val,$x,$y); + } + elseif( $this->valuepos=='center' ) { + $y = ($pts[3] + $pts[1])/2; + $this->value->SetAlign('center','center'); + $this->value->SetMargin(0); + $this->value->Stroke($img,$val,$x,$y); + } + elseif( $this->valuepos=='bottom' || $this->valuepos=='min' ) { + $y=$pts[1]; + if( $img->a === 90 ) { + if( $val < 0 ) + $this->value->SetAlign('right','center'); + else + $this->value->SetAlign('left','center'); + } + $this->value->SetMargin(3); + $this->value->Stroke($img,$val,$x,$y); + } + else { + JpGraphError::RaiseL(2006,$this->valuepos); + //'Unknown position for values on bars :'.$this->valuepos); + } + // Create the client side image map + $rpts = $img->ArrRotate($pts); + $csimcoord=round($rpts[0]).", ".round($rpts[1]); + for( $j=1; $j < 4; ++$j){ + $csimcoord .= ", ".round($rpts[2*$j]).", ".round($rpts[2*$j+1]); + } + if( !empty($this->csimtargets[$i]) ) { + $this->csimareas .= 'csimareas .= " href=\"".htmlentities($this->csimtargets[$i])."\""; + + if( !empty($this->csimwintargets[$i]) ) { + $this->csimareas .= " target=\"".$this->csimwintargets[$i]."\" "; + } + + $sval=''; + if( !empty($this->csimalts[$i]) ) { + $sval=sprintf($this->csimalts[$i],$this->coords[0][$i]); + $this->csimareas .= " title=\"$sval\" alt=\"$sval\" "; + } + $this->csimareas .= " />\n"; + } + } + return true; + } +} // Class + +//=================================================== +// CLASS GroupBarPlot +// Description: Produce grouped bar plots +//=================================================== +class GroupBarPlot extends BarPlot { + private $plots, $nbrplots=0; + //--------------- + // CONSTRUCTOR + function GroupBarPlot($plots) { + $this->width=0.7; + $this->plots = $plots; + $this->nbrplots = count($plots); + if( $this->nbrplots < 1 ) { + JpGraphError::RaiseL(2007);//('Cannot create GroupBarPlot from empty plot array.'); + } + for($i=0; $i < $this->nbrplots; ++$i ) { + if( empty($this->plots[$i]) || !isset($this->plots[$i]) ) { + JpGraphError::RaiseL(2008,$i);//("Group bar plot element nbr $i is undefined or empty."); + } + } + $this->numpoints = $plots[0]->numpoints; + $this->width=0.7; + } + + //--------------- + // PUBLIC METHODS + function Legend($graph) { + $n = count($this->plots); + for($i=0; $i < $n; ++$i) { + $c = get_class($this->plots[$i]); + if( !($this->plots[$i] instanceof BarPlot) ) { + JpGraphError::RaiseL(2009,$c); + //('One of the objects submitted to GroupBar is not a BarPlot. Make sure that you create the Group Bar plot from an array of BarPlot or AccBarPlot objects. (Class = '.$c.')'); + } + $this->plots[$i]->DoLegend($graph); + } + } + + function Min() { + list($xmin,$ymin) = $this->plots[0]->Min(); + $n = count($this->plots); + for($i=0; $i < $n; ++$i) { + list($xm,$ym) = $this->plots[$i]->Min(); + $xmin = max($xmin,$xm); + $ymin = min($ymin,$ym); + } + return array($xmin,$ymin); + } + + function Max() { + list($xmax,$ymax) = $this->plots[0]->Max(); + $n = count($this->plots); + for($i=0; $i < $n; ++$i) { + list($xm,$ym) = $this->plots[$i]->Max(); + $xmax = max($xmax,$xm); + $ymax = max($ymax,$ym); + } + return array($xmax,$ymax); + } + + function GetCSIMareas() { + $n = count($this->plots); + $csimareas=''; + for($i=0; $i < $n; ++$i) { + $csimareas .= $this->plots[$i]->csimareas; + } + return $csimareas; + } + + // Stroke all the bars next to each other + function Stroke($img,$xscale,$yscale) { + $tmp=$xscale->off; + $n = count($this->plots); + $subwidth = $this->width/$this->nbrplots ; + + for( $i=0; $i < $n; ++$i ) { + $this->plots[$i]->ymin=$this->ybase; + $this->plots[$i]->SetWidth($subwidth); + + // If the client have used SetTextTickInterval() then + // major_step will be > 1 and the positioning will fail. + // If we assume it is always one the positioning will work + // fine with a text scale but this will not work with + // arbitrary linear scale + $xscale->off = $tmp+$i*round($xscale->scale_factor* $subwidth); + $this->plots[$i]->Stroke($img,$xscale,$yscale); + } + $xscale->off=$tmp; + } +} // Class + +//=================================================== +// CLASS AccBarPlot +// Description: Produce accumulated bar plots +//=================================================== +class AccBarPlot extends BarPlot { + private $plots=null,$nbrplots=0; + //--------------- + // CONSTRUCTOR + function __construct($plots) { + $this->plots = $plots; + $this->nbrplots = count($plots); + if( $this->nbrplots < 1 ) { + JpGraphError::RaiseL(2010);//('Cannot create AccBarPlot from empty plot array.'); + } + for($i=0; $i < $this->nbrplots; ++$i ) { + if( empty($this->plots[$i]) || !isset($this->plots[$i]) ) { + JpGraphError::RaiseL(2011,$i);//("Acc bar plot element nbr $i is undefined or empty."); + } + } + + // We can only allow individual plost which do not have specified X-positions + for($i=0; $i < $this->nbrplots; ++$i ) { + if( !empty($this->plots[$i]->coords[1]) ) { + JpGraphError::RaiseL(2015); + //'Individual bar plots in an AccBarPlot or GroupBarPlot can not have specified X-positions.'); + } + } + + // Use 0 weight by default which means that the individual bar + // weights will be used per part n the accumulated bar + $this->SetWeight(0); + + $this->numpoints = $plots[0]->numpoints; + $this->value = new DisplayValue(); + } + + //--------------- + // PUBLIC METHODS + function Legend($graph) { + $n = count($this->plots); + for( $i=$n-1; $i >= 0; --$i ) { + $c = get_class($this->plots[$i]); + if( !($this->plots[$i] instanceof BarPlot) ) { + JpGraphError::RaiseL(2012,$c); + //('One of the objects submitted to AccBar is not a BarPlot. Make sure that you create the AccBar plot from an array of BarPlot objects.(Class='.$c.')'); + } + $this->plots[$i]->DoLegend($graph); + } + } + + function Max() { + list($xmax) = $this->plots[0]->Max(); + $nmax=0; + for($i=0; $i < count($this->plots); ++$i) { + $n = count($this->plots[$i]->coords[0]); + $nmax = max($nmax,$n); + list($x) = $this->plots[$i]->Max(); + $xmax = max($xmax,$x); + } + for( $i = 0; $i < $nmax; $i++ ) { + // Get y-value for bar $i by adding the + // individual bars from all the plots added. + // It would be wrong to just add the + // individual plots max y-value since that + // would in most cases give to large y-value. + $y=0; + if( !isset($this->plots[0]->coords[0][$i]) ) { + JpGraphError::RaiseL(2014); + } + if( $this->plots[0]->coords[0][$i] > 0 ) + $y=$this->plots[0]->coords[0][$i]; + for( $j = 1; $j < $this->nbrplots; $j++ ) { + if( !isset($this->plots[$j]->coords[0][$i]) ) { + JpGraphError::RaiseL(2014); + } + if( $this->plots[$j]->coords[0][$i] > 0 ) + $y += $this->plots[$j]->coords[0][$i]; + } + $ymax[$i] = $y; + } + $ymax = max($ymax); + + // Bar always start at baseline + if( $ymax <= $this->ybase ) + $ymax = $this->ybase; + return array($xmax,$ymax); + } + + function Min() { + $nmax=0; + list($xmin,$ysetmin) = $this->plots[0]->Min(); + for($i=0; $i < count($this->plots); ++$i) { + $n = count($this->plots[$i]->coords[0]); + $nmax = max($nmax,$n); + list($x,$y) = $this->plots[$i]->Min(); + $xmin = Min($xmin,$x); + $ysetmin = Min($y,$ysetmin); + } + for( $i = 0; $i < $nmax; $i++ ) { + // Get y-value for bar $i by adding the + // individual bars from all the plots added. + // It would be wrong to just add the + // individual plots max y-value since that + // would in most cases give to large y-value. + $y=0; + if( $this->plots[0]->coords[0][$i] < 0 ) + $y=$this->plots[0]->coords[0][$i]; + for( $j = 1; $j < $this->nbrplots; $j++ ) { + if( $this->plots[$j]->coords[0][$i] < 0 ) + $y += $this->plots[ $j ]->coords[0][$i]; + } + $ymin[$i] = $y; + } + $ymin = Min($ysetmin,Min($ymin)); + // Bar always start at baseline + if( $ymin >= $this->ybase ) + $ymin = $this->ybase; + return array($xmin,$ymin); + } + + // Stroke acc bar plot + function Stroke($img,$xscale,$yscale) { + $pattern=NULL; + $img->SetLineWeight($this->weight); + $grad=null; + for($i=0; $i < $this->numpoints-1; $i++) { + $accy = 0; + $accy_neg = 0; + for($j=0; $j < $this->nbrplots; ++$j ) { + $img->SetColor($this->plots[$j]->color); + + if ( $this->plots[$j]->coords[0][$i] >= 0) { + $yt=$yscale->Translate($this->plots[$j]->coords[0][$i]+$accy); + $accyt=$yscale->Translate($accy); + $accy+=$this->plots[$j]->coords[0][$i]; + } + else { + //if ( $this->plots[$j]->coords[0][$i] < 0 || $accy_neg < 0 ) { + $yt=$yscale->Translate($this->plots[$j]->coords[0][$i]+$accy_neg); + $accyt=$yscale->Translate($accy_neg); + $accy_neg+=$this->plots[$j]->coords[0][$i]; + } + + $xt=$xscale->Translate($i); + + if( $this->abswidth > -1 ) { + $abswidth=$this->abswidth; + } + else { + $abswidth=round($this->width*$xscale->scale_factor,0); + } + + $pts=array($xt,$accyt,$xt,$yt,$xt+$abswidth,$yt,$xt+$abswidth,$accyt); + + if( $this->bar_shadow ) { + $ssh = $this->bar_shadow_hsize; + $ssv = $this->bar_shadow_vsize; + + // We must also differ if we are a positive or negative bar. + if( $j === 0 ) { + // This gets extra complicated since we have to + // see all plots to see if we are negative. It could + // for example be that all plots are 0 until the very + // last one. We therefore need to save the initial setup + // for both the negative and positive case + + // In case the final bar is positive + $sp[0]=$pts[6]+1; $sp[1]=$pts[7]; + $sp[2]=$pts[6]+$ssh; $sp[3]=$pts[7]-$ssv; + + // In case the final bar is negative + $nsp[0]=$pts[0]; $nsp[1]=$pts[1]; + $nsp[2]=$pts[0]+$ssh; $nsp[3]=$pts[1]-$ssv; + $nsp[4]=$pts[6]+$ssh; $nsp[5]=$pts[7]-$ssv; + $nsp[10]=$pts[6]+1; $nsp[11]=$pts[7]; + } + + if( $j === $this->nbrplots-1 ) { + // If this is the last plot of the bar and + // the total value is larger than 0 then we + // add the shadow. + if( is_array($this->bar_shadow_color) ) { + $numcolors = count($this->bar_shadow_color); + if( $numcolors == 0 ) { + JpGraphError::RaiseL(2013);//('You have specified an empty array for shadow colors in the bar plot.'); + } + $img->PushColor($this->bar_shadow_color[$i % $numcolors]); + } + else { + $img->PushColor($this->bar_shadow_color); + } + + if( $accy > 0 ) { + $sp[4]=$pts[4]+$ssh; $sp[5]=$pts[5]-$ssv; + $sp[6]=$pts[2]+$ssh; $sp[7]=$pts[3]-$ssv; + $sp[8]=$pts[2]; $sp[9]=$pts[3]-1; + $sp[10]=$pts[4]+1; $sp[11]=$pts[5]; + $img->FilledPolygon($sp,4); + } + elseif( $accy_neg < 0 ) { + $nsp[6]=$pts[4]+$ssh; $nsp[7]=$pts[5]-$ssv; + $nsp[8]=$pts[4]+1; $nsp[9]=$pts[5]; + $img->FilledPolygon($nsp,4); + } + $img->PopColor(); + } + } + + + // If value is NULL or 0, then don't draw a bar at all + if ($this->plots[$j]->coords[0][$i] == 0 ) continue; + + if( $this->plots[$j]->grad ) { + if( $grad === null ) { + $grad = new Gradient($img); + } + if( is_array($this->plots[$j]->grad_fromcolor) ) { + // The first argument (grad_fromcolor) can be either an array or a single color. If it is an array + // then we have two choices. It can either a) be a single color specified as an RGB triple or it can be + // an array to specify both (from, to style) for each individual bar. The way to know the difference is + // to investgate the first element. If this element is an integer [0,255] then we assume it is an RGB + // triple. + $ng = count($this->plots[$j]->grad_fromcolor); + if( $ng === 3 ) { + if( is_numeric($this->plots[$j]->grad_fromcolor[0]) && $this->plots[$j]->grad_fromcolor[0] > 0 && + $this->plots[$j]->grad_fromcolor[0] < 256 ) { + // RGB Triple + $fromcolor = $this->plots[$j]->grad_fromcolor; + $tocolor = $this->plots[$j]->grad_tocolor; + $style = $this->plots[$j]->grad_style; + } + else { + $fromcolor = $this->plots[$j]->grad_fromcolor[$i % $ng][0]; + $tocolor = $this->plots[$j]->grad_fromcolor[$i % $ng][1]; + $style = $this->plots[$j]->grad_fromcolor[$i % $ng][2]; + } + } + else { + $fromcolor = $this->plots[$j]->grad_fromcolor[$i % $ng][0]; + $tocolor = $this->plots[$j]->grad_fromcolor[$i % $ng][1]; + $style = $this->plots[$j]->grad_fromcolor[$i % $ng][2]; + } + $grad->FilledRectangle($pts[2],$pts[3], + $pts[6],$pts[7], + $fromcolor,$tocolor,$style); + } + else { + $grad->FilledRectangle($pts[2],$pts[3], + $pts[6],$pts[7], + $this->plots[$j]->grad_fromcolor, + $this->plots[$j]->grad_tocolor, + $this->plots[$j]->grad_style); + } + } else { + if (is_array($this->plots[$j]->fill_color) ) { + $numcolors = count($this->plots[$j]->fill_color); + $fillcolor = $this->plots[$j]->fill_color[$i % $numcolors]; + // If the bar is specified to be non filled then the fill color is false + if( $fillcolor !== false ) { + $img->SetColor($this->plots[$j]->fill_color[$i % $numcolors]); + } + } + else { + $fillcolor = $this->plots[$j]->fill_color; + if( $fillcolor !== false ) { + $img->SetColor($this->plots[$j]->fill_color); + } + } + if( $fillcolor !== false ) { + $img->FilledPolygon($pts); + } + } + + $img->SetColor($this->plots[$j]->color); + + // Stroke the pattern + if( $this->plots[$j]->iPattern > -1 ) { + if( $pattern===NULL ) { + $pattern = new RectPatternFactory(); + } + + $prect = $pattern->Create($this->plots[$j]->iPattern,$this->plots[$j]->iPatternColor,1); + $prect->SetDensity($this->plots[$j]->iPatternDensity); + if( $this->plots[$j]->coords[0][$i] < 0 ) { + $rx = $pts[0]; + $ry = $pts[1]; + } + else { + $rx = $pts[2]; + $ry = $pts[3]; + } + $width = abs($pts[4]-$pts[0])+1; + $height = abs($pts[1]-$pts[3])+1; + $prect->SetPos(new Rectangle($rx,$ry,$width,$height)); + $prect->Stroke($img); + } + + + // CSIM array + + if( $i < count($this->plots[$j]->csimtargets) ) { + // Create the client side image map + $rpts = $img->ArrRotate($pts); + $csimcoord=round($rpts[0]).", ".round($rpts[1]); + for( $k=1; $k < 4; ++$k){ + $csimcoord .= ", ".round($rpts[2*$k]).", ".round($rpts[2*$k+1]); + } + if( ! empty($this->plots[$j]->csimtargets[$i]) ) { + $this->csimareas.= 'csimareas.= " href=\"".$this->plots[$j]->csimtargets[$i]."\" "; + + if( ! empty($this->plots[$j]->csimwintargets[$i]) ) { + $this->csimareas.= " target=\"".$this->plots[$j]->csimwintargets[$i]."\" "; + } + + $sval=''; + if( !empty($this->plots[$j]->csimalts[$i]) ) { + $sval=sprintf($this->plots[$j]->csimalts[$i],$this->plots[$j]->coords[0][$i]); + $this->csimareas .= " title=\"$sval\" "; + } + $this->csimareas .= " alt=\"$sval\" />\n"; + } + } + + $pts[] = $pts[0]; + $pts[] = $pts[1]; + $img->SetLineWeight($this->plots[$j]->weight); + $img->Polygon($pts); + $img->SetLineWeight(1); + } + + // Daw potential bar around the entire accbar bar + if( $this->weight > 0 ) { + $y=$yscale->Translate(0); + $img->SetColor($this->color); + $img->SetLineWeight($this->weight); + $img->Rectangle($pts[0],$y,$pts[6],$pts[5]); + } + + // Draw labels for each acc.bar + + $x=$pts[2]+($pts[4]-$pts[2])/2; + if($this->bar_shadow) $x += $ssh; + + // First stroke the accumulated value for the entire bar + // This value is always placed at the top/bottom of the bars + if( $accy_neg < 0 ) { + $y=$yscale->Translate($accy_neg); + $this->value->Stroke($img,$accy_neg,$x,$y); + } + else { + $y=$yscale->Translate($accy); + $this->value->Stroke($img,$accy,$x,$y); + } + + $accy = 0; + $accy_neg = 0; + for($j=0; $j < $this->nbrplots; ++$j ) { + + // We don't print 0 values in an accumulated bar plot + if( $this->plots[$j]->coords[0][$i] == 0 ) continue; + + if ($this->plots[$j]->coords[0][$i] > 0) { + $yt=$yscale->Translate($this->plots[$j]->coords[0][$i]+$accy); + $accyt=$yscale->Translate($accy); + if( $this->plots[$j]->valuepos=='center' ) { + $y = $accyt-($accyt-$yt)/2; + } + elseif( $this->plots[$j]->valuepos=='bottom' ) { + $y = $accyt; + } + else { // top or max + $y = $accyt-($accyt-$yt); + } + $accy+=$this->plots[$j]->coords[0][$i]; + if( $this->plots[$j]->valuepos=='center' ) { + $this->plots[$j]->value->SetAlign("center","center"); + $this->plots[$j]->value->SetMargin(0); + } + elseif( $this->plots[$j]->valuepos=='bottom' ) { + $this->plots[$j]->value->SetAlign('center','bottom'); + $this->plots[$j]->value->SetMargin(2); + } + else { + $this->plots[$j]->value->SetAlign('center','top'); + $this->plots[$j]->value->SetMargin(1); + } + } else { + $yt=$yscale->Translate($this->plots[$j]->coords[0][$i]+$accy_neg); + $accyt=$yscale->Translate($accy_neg); + $accy_neg+=$this->plots[$j]->coords[0][$i]; + if( $this->plots[$j]->valuepos=='center' ) { + $y = $accyt-($accyt-$yt)/2; + } + elseif( $this->plots[$j]->valuepos=='bottom' ) { + $y = $accyt; + } + else { + $y = $accyt-($accyt-$yt); + } + if( $this->plots[$j]->valuepos=='center' ) { + $this->plots[$j]->value->SetAlign("center","center"); + $this->plots[$j]->value->SetMargin(0); + } + elseif( $this->plots[$j]->valuepos=='bottom' ) { + $this->plots[$j]->value->SetAlign('center',$j==0 ? 'bottom':'top'); + $this->plots[$j]->value->SetMargin(-2); + } + else { + $this->plots[$j]->value->SetAlign('center','bottom'); + $this->plots[$j]->value->SetMargin(-1); + } + } + $this->plots[$j]->value->Stroke($img,$this->plots[$j]->coords[0][$i],$x,$y); + } + + } + return true; + } +} // Class + +/* EOF */ +?> diff --git a/gosa-core/include/jpgraph/jpgraph_canvas.php b/gosa-core/include/jpgraph/jpgraph_canvas.php new file mode 100644 index 000000000..4e9f9645b --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_canvas.php @@ -0,0 +1,95 @@ +StrokePlotArea(); + } + + // Method description + function Stroke($aStrokeFileName="") { + if( $this->texts != null ) { + for($i=0; $i < count($this->texts); ++$i) { + $this->texts[$i]->Stroke($this->img); + } + } + if( $this->iTables !== null ) { + for($i=0; $i < count($this->iTables); ++$i) { + $this->iTables[$i]->Stroke($this->img); + } + } + $this->StrokeTitles(); + + // If the filename is the predefined value = '_csim_special_' + // we assume that the call to stroke only needs to do enough + // to correctly generate the CSIM maps. + // We use this variable to skip things we don't strictly need + // to do to generate the image map to improve performance + // a best we can. Therefor you will see a lot of tests !$_csim in the + // code below. + $_csim = ($aStrokeFileName===_CSIM_SPECIALFILE); + + // We need to know if we have stroked the plot in the + // GetCSIMareas. Otherwise the CSIM hasn't been generated + // and in the case of GetCSIM called before stroke to generate + // CSIM without storing an image to disk GetCSIM must call Stroke. + $this->iHasStroked = true; + + if( !$_csim ) { + + // Should we do any final image transformation + if( $this->iImgTrans ) { + if( !class_exists('ImgTrans',false) ) { + require_once('jpgraph_imgtrans.php'); + } + + $tform = new ImgTrans($this->img->img); + $this->img->img = $tform->Skew3D($this->iImgTransHorizon,$this->iImgTransSkewDist, + $this->iImgTransDirection,$this->iImgTransHighQ, + $this->iImgTransMinSize,$this->iImgTransFillColor, + $this->iImgTransBorder); + } + + + // If the filename is given as the special _IMG_HANDLER + // then the image handler is returned and the image is NOT + // streamed back + if( $aStrokeFileName == _IMG_HANDLER ) { + return $this->img->img; + } + else { + // Finally stream the generated picture + $this->cache->PutAndStream($this->img,$this->cache_name,$this->inline,$aStrokeFileName); + return true; + } + } + } +} // Class + +/* EOF */ +?> \ No newline at end of file diff --git a/gosa-core/include/jpgraph/jpgraph_canvtools.php b/gosa-core/include/jpgraph/jpgraph_canvtools.php new file mode 100644 index 000000000..bb821bfa0 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_canvtools.php @@ -0,0 +1,523 @@ +g = $graph; + $this->w = $graph->img->width; + $this->h = $graph->img->height; + $this->ixmin = $xmin; + $this->ixmax = $xmax; + $this->iymin = $ymin; + $this->iymax = $ymax; + } + + function Set($xmin=0,$xmax=10,$ymin=0,$ymax=10) { + $this->ixmin = $xmin; + $this->ixmax = $xmax; + $this->iymin = $ymin; + $this->iymax = $ymax; + } + + function Get() { + return array($this->ixmin,$this->ixmax,$this->iymin,$this->iymax); + } + + function Translate($x,$y) { + $xp = round(($x-$this->ixmin)/($this->ixmax - $this->ixmin) * $this->w); + $yp = round(($y-$this->iymin)/($this->iymax - $this->iymin) * $this->h); + return array($xp,$yp); + } + + function TranslateX($x) { + $xp = round(($x-$this->ixmin)/($this->ixmax - $this->ixmin) * $this->w); + return $xp; + } + + function TranslateY($y) { + $yp = round(($y-$this->iymin)/($this->iymax - $this->iymin) * $this->h); + return $yp; + } + +} + + +//=================================================== +// CLASS Shape +// Description: Methods to draw shapes on canvas +//=================================================== +class Shape { + private $img,$scale; + + function __construct($aGraph,$scale) { + $this->img = $aGraph->img; + $this->img->SetColor('black'); + $this->scale = $scale; + } + + function SetColor($aColor) { + $this->img->SetColor($aColor); + } + + function Line($x1,$y1,$x2,$y2) { + list($x1,$y1) = $this->scale->Translate($x1,$y1); + list($x2,$y2) = $this->scale->Translate($x2,$y2); + $this->img->Line($x1,$y1,$x2,$y2); + } + + function SetLineWeight($aWeight) { + $this->img->SetLineWeight($aWeight); + } + + function Polygon($p,$aClosed=false) { + $n=count($p); + for($i=0; $i < $n; $i+=2 ) { + $p[$i] = $this->scale->TranslateX($p[$i]); + $p[$i+1] = $this->scale->TranslateY($p[$i+1]); + } + $this->img->Polygon($p,$aClosed); + } + + function FilledPolygon($p) { + $n=count($p); + for($i=0; $i < $n; $i+=2 ) { + $p[$i] = $this->scale->TranslateX($p[$i]); + $p[$i+1] = $this->scale->TranslateY($p[$i+1]); + } + $this->img->FilledPolygon($p); + } + + + // Draw a bezier curve with defining points in the $aPnts array + // using $aSteps steps. + // 0=x0, 1=y0 + // 2=x1, 3=y1 + // 4=x2, 5=y2 + // 6=x3, 7=y3 + function Bezier($p,$aSteps=40) { + $x0 = $p[0]; + $y0 = $p[1]; + // Calculate coefficients + $cx = 3*($p[2]-$p[0]); + $bx = 3*($p[4]-$p[2])-$cx; + $ax = $p[6]-$p[0]-$cx-$bx; + $cy = 3*($p[3]-$p[1]); + $by = 3*($p[5]-$p[3])-$cy; + $ay = $p[7]-$p[1]-$cy-$by; + + // Step size + $delta = 1.0/$aSteps; + + $x_old = $x0; + $y_old = $y0; + for($t=$delta; $t<=1.0; $t+=$delta) { + $tt = $t*$t; $ttt=$tt*$t; + $x = $ax*$ttt + $bx*$tt + $cx*$t + $x0; + $y = $ay*$ttt + $by*$tt + $cy*$t + $y0; + $this->Line($x_old,$y_old,$x,$y); + $x_old = $x; + $y_old = $y; + } + $this->Line($x_old,$y_old,$p[6],$p[7]); + } + + function Rectangle($x1,$y1,$x2,$y2) { + list($x1,$y1) = $this->scale->Translate($x1,$y1); + list($x2,$y2) = $this->scale->Translate($x2,$y2); + $this->img->Rectangle($x1,$y1,$x2,$y2); + } + + function FilledRectangle($x1,$y1,$x2,$y2) { + list($x1,$y1) = $this->scale->Translate($x1,$y1); + list($x2,$y2) = $this->scale->Translate($x2,$y2); + $this->img->FilledRectangle($x1,$y1,$x2,$y2); + } + + function Circle($x1,$y1,$r) { + list($x1,$y1) = $this->scale->Translate($x1,$y1); + if( $r >= 0 ) + $r = $this->scale->TranslateX($r); + else + $r = -$r; + $this->img->Circle($x1,$y1,$r); + } + + function FilledCircle($x1,$y1,$r) { + list($x1,$y1) = $this->scale->Translate($x1,$y1); + if( $r >= 0 ) + $r = $this->scale->TranslateX($r); + else + $r = -$r; + $this->img->FilledCircle($x1,$y1,$r); + } + + function RoundedRectangle($x1,$y1,$x2,$y2,$r=null) { + list($x1,$y1) = $this->scale->Translate($x1,$y1); + list($x2,$y2) = $this->scale->Translate($x2,$y2); + + if( $r == null ) + $r = 5; + elseif( $r >= 0 ) + $r = $this->scale->TranslateX($r); + else + $r = -$r; + $this->img->RoundedRectangle($x1,$y1,$x2,$y2,$r); + } + + function FilledRoundedRectangle($x1,$y1,$x2,$y2,$r=null) { + list($x1,$y1) = $this->scale->Translate($x1,$y1); + list($x2,$y2) = $this->scale->Translate($x2,$y2); + + if( $r == null ) + $r = 5; + elseif( $r > 0 ) + $r = $this->scale->TranslateX($r); + else + $r = -$r; + $this->img->FilledRoundedRectangle($x1,$y1,$x2,$y2,$r); + } + + function ShadowRectangle($x1,$y1,$x2,$y2,$fcolor=false,$shadow_width=null,$shadow_color=array(102,102,102)) { + list($x1,$y1) = $this->scale->Translate($x1,$y1); + list($x2,$y2) = $this->scale->Translate($x2,$y2); + if( $shadow_width == null ) + $shadow_width=4; + else + $shadow_width=$this->scale->TranslateX($shadow_width); + $this->img->ShadowRectangle($x1,$y1,$x2,$y2,$fcolor,$shadow_width,$shadow_color); + } + + function SetTextAlign($halign,$valign="bottom") { + $this->img->SetTextAlign($halign,$valign="bottom"); + } + + function StrokeText($x1,$y1,$txt,$dir=0,$paragraph_align="left") { + list($x1,$y1) = $this->scale->Translate($x1,$y1); + $this->img->StrokeText($x1,$y1,$txt,$dir,$paragraph_align); + } + + // A rounded rectangle where one of the corner has been moved "into" the + // rectangle 'iw' width and 'ih' height. Corners: + // 0=Top left, 1=top right, 2=bottom right, 3=bottom left + function IndentedRectangle($xt,$yt,$w,$h,$iw=0,$ih=0,$aCorner=3,$aFillColor="",$r=4) { + + list($xt,$yt) = $this->scale->Translate($xt,$yt); + list($w,$h) = $this->scale->Translate($w,$h); + list($iw,$ih) = $this->scale->Translate($iw,$ih); + + $xr = $xt + $w - 0; + $yl = $yt + $h - 0; + + switch( $aCorner ) { + case 0: // Upper left + + // Bottom line, left & right arc + $this->img->Line($xt+$r,$yl,$xr-$r,$yl); + $this->img->Arc($xt+$r,$yl-$r,$r*2,$r*2,90,180); + $this->img->Arc($xr-$r,$yl-$r,$r*2,$r*2,0,90); + + // Right line, Top right arc + $this->img->Line($xr,$yt+$r,$xr,$yl-$r); + $this->img->Arc($xr-$r,$yt+$r,$r*2,$r*2,270,360); + + // Top line, Top left arc + $this->img->Line($xt+$iw+$r,$yt,$xr-$r,$yt); + $this->img->Arc($xt+$iw+$r,$yt+$r,$r*2,$r*2,180,270); + + // Left line + $this->img->Line($xt,$yt+$ih+$r,$xt,$yl-$r); + + // Indent horizontal, Lower left arc + $this->img->Line($xt+$r,$yt+$ih,$xt+$iw-$r,$yt+$ih); + $this->img->Arc($xt+$r,$yt+$ih+$r,$r*2,$r*2,180,270); + + // Indent vertical, Indent arc + $this->img->Line($xt+$iw,$yt+$r,$xt+$iw,$yt+$ih-$r); + $this->img->Arc($xt+$iw-$r,$yt+$ih-$r,$r*2,$r*2,0,90); + + if( $aFillColor != '' ) { + $bc = $this->img->current_color_name; + $this->img->PushColor($aFillColor); + $this->img->FillToBorder($xr-$r,$yl-$r,$bc); + $this->img->PopColor(); + } + + break; + + case 1: // Upper right + + // Bottom line, left & right arc + $this->img->Line($xt+$r,$yl,$xr-$r,$yl); + $this->img->Arc($xt+$r,$yl-$r,$r*2,$r*2,90,180); + $this->img->Arc($xr-$r,$yl-$r,$r*2,$r*2,0,90); + + // Left line, Top left arc + $this->img->Line($xt,$yt+$r,$xt,$yl-$r); + $this->img->Arc($xt+$r,$yt+$r,$r*2,$r*2,180,270); + + // Top line, Top right arc + $this->img->Line($xt+$r,$yt,$xr-$iw-$r,$yt); + $this->img->Arc($xr-$iw-$r,$yt+$r,$r*2,$r*2,270,360); + + // Right line + $this->img->Line($xr,$yt+$ih+$r,$xr,$yl-$r); + + // Indent horizontal, Lower right arc + $this->img->Line($xr-$iw+$r,$yt+$ih,$xr-$r,$yt+$ih); + $this->img->Arc($xr-$r,$yt+$ih+$r,$r*2,$r*2,270,360); + + // Indent vertical, Indent arc + $this->img->Line($xr-$iw,$yt+$r,$xr-$iw,$yt+$ih-$r); + $this->img->Arc($xr-$iw+$r,$yt+$ih-$r,$r*2,$r*2,90,180); + + if( $aFillColor != '' ) { + $bc = $this->img->current_color_name; + $this->img->PushColor($aFillColor); + $this->img->FillToBorder($xt+$r,$yl-$r,$bc); + $this->img->PopColor(); + } + + break; + + case 2: // Lower right + // Top line, Top left & Top right arc + $this->img->Line($xt+$r,$yt,$xr-$r,$yt); + $this->img->Arc($xt+$r,$yt+$r,$r*2,$r*2,180,270); + $this->img->Arc($xr-$r,$yt+$r,$r*2,$r*2,270,360); + + // Left line, Bottom left arc + $this->img->Line($xt,$yt+$r,$xt,$yl-$r); + $this->img->Arc($xt+$r,$yl-$r,$r*2,$r*2,90,180); + + // Bottom line, Bottom right arc + $this->img->Line($xt+$r,$yl,$xr-$iw-$r,$yl); + $this->img->Arc($xr-$iw-$r,$yl-$r,$r*2,$r*2,0,90); + + // Right line + $this->img->Line($xr,$yt+$r,$xr,$yl-$ih-$r); + + // Indent horizontal, Lower right arc + $this->img->Line($xr-$r,$yl-$ih,$xr-$iw+$r,$yl-$ih); + $this->img->Arc($xr-$r,$yl-$ih-$r,$r*2,$r*2,0,90); + + // Indent vertical, Indent arc + $this->img->Line($xr-$iw,$yl-$r,$xr-$iw,$yl-$ih+$r); + $this->img->Arc($xr-$iw+$r,$yl-$ih+$r,$r*2,$r*2,180,270); + + if( $aFillColor != '' ) { + $bc = $this->img->current_color_name; + $this->img->PushColor($aFillColor); + $this->img->FillToBorder($xt+$r,$yt+$r,$bc); + $this->img->PopColor(); + } + + break; + + case 3: // Lower left + // Top line, Top left & Top right arc + $this->img->Line($xt+$r,$yt,$xr-$r,$yt); + $this->img->Arc($xt+$r,$yt+$r,$r*2,$r*2,180,270); + $this->img->Arc($xr-$r,$yt+$r,$r*2,$r*2,270,360); + + // Right line, Bottom right arc + $this->img->Line($xr,$yt+$r,$xr,$yl-$r); + $this->img->Arc($xr-$r,$yl-$r,$r*2,$r*2,0,90); + + // Bottom line, Bottom left arc + $this->img->Line($xt+$iw+$r,$yl,$xr-$r,$yl); + $this->img->Arc($xt+$iw+$r,$yl-$r,$r*2,$r*2,90,180); + + // Left line + $this->img->Line($xt,$yt+$r,$xt,$yl-$ih-$r); + + // Indent horizontal, Lower left arc + $this->img->Line($xt+$r,$yl-$ih,$xt+$iw-$r,$yl-$ih); + $this->img->Arc($xt+$r,$yl-$ih-$r,$r*2,$r*2,90,180); + + // Indent vertical, Indent arc + $this->img->Line($xt+$iw,$yl-$ih+$r,$xt+$iw,$yl-$r); + $this->img->Arc($xt+$iw-$r,$yl-$ih+$r,$r*2,$r*2,270,360); + + if( $aFillColor != '' ) { + $bc = $this->img->current_color_name; + $this->img->PushColor($aFillColor); + $this->img->FillToBorder($xr-$r,$yt+$r,$bc); + $this->img->PopColor(); + } + + break; + } + } +} + + +//=================================================== +// CLASS RectangleText +// Description: Draws a text paragraph inside a +// rounded, possible filled, rectangle. +//=================================================== +class CanvasRectangleText { + private $ix,$iy,$iw,$ih,$ir=4; + private $iTxt,$iColor='black',$iFillColor='',$iFontColor='black'; + private $iParaAlign='center'; + private $iAutoBoxMargin=5; + private $iShadowWidth=3,$iShadowColor=''; + + function __construct($aTxt='',$xl=0,$yt=0,$w=0,$h=0) { + $this->iTxt = new Text($aTxt); + $this->ix = $xl; + $this->iy = $yt; + $this->iw = $w; + $this->ih = $h; + } + + function SetShadow($aColor='gray',$aWidth=3) { + $this->iShadowColor = $aColor; + $this->iShadowWidth = $aWidth; + } + + function SetFont($FontFam,$aFontStyle,$aFontSize=12) { + $this->iTxt->SetFont($FontFam,$aFontStyle,$aFontSize); + } + + function SetTxt($aTxt) { + $this->iTxt->Set($aTxt); + } + + function ParagraphAlign($aParaAlign) { + $this->iParaAlign = $aParaAlign; + } + + function SetFillColor($aFillColor) { + $this->iFillColor = $aFillColor; + } + + function SetAutoMargin($aMargin) { + $this->iAutoBoxMargin=$aMargin; + } + + function SetColor($aColor) { + $this->iColor = $aColor; + } + + function SetFontColor($aColor) { + $this->iFontColor = $aColor; + } + + function SetPos($xl=0,$yt=0,$w=0,$h=0) { + $this->ix = $xl; + $this->iy = $yt; + $this->iw = $w; + $this->ih = $h; + } + + function Pos($xl=0,$yt=0,$w=0,$h=0) { + $this->ix = $xl; + $this->iy = $yt; + $this->iw = $w; + $this->ih = $h; + } + + function Set($aTxt,$xl,$yt,$w=0,$h=0) { + $this->iTxt->Set($aTxt); + $this->ix = $xl; + $this->iy = $yt; + $this->iw = $w; + $this->ih = $h; + } + + function SetCornerRadius($aRad=5) { + $this->ir = $aRad; + } + + function Stroke($aImg,$scale) { + + // If coordinates are specifed as negative this means we should + // treat them as abolsute (pixels) coordinates + if( $this->ix > 0 ) { + $this->ix = $scale->TranslateX($this->ix) ; + } + else { + $this->ix = -$this->ix; + } + + if( $this->iy > 0 ) { + $this->iy = $scale->TranslateY($this->iy) ; + } + else { + $this->iy = -$this->iy; + } + + list($this->iw,$this->ih) = $scale->Translate($this->iw,$this->ih) ; + + if( $this->iw == 0 ) + $this->iw = round($this->iTxt->GetWidth($aImg) + $this->iAutoBoxMargin); + if( $this->ih == 0 ) { + $this->ih = round($this->iTxt->GetTextHeight($aImg) + $this->iAutoBoxMargin); + } + + if( $this->iShadowColor != '' ) { + $aImg->PushColor($this->iShadowColor); + $aImg->FilledRoundedRectangle($this->ix+$this->iShadowWidth, + $this->iy+$this->iShadowWidth, + $this->ix+$this->iw-1+$this->iShadowWidth, + $this->iy+$this->ih-1+$this->iShadowWidth, + $this->ir); + $aImg->PopColor(); + } + + if( $this->iFillColor != '' ) { + $aImg->PushColor($this->iFillColor); + $aImg->FilledRoundedRectangle($this->ix,$this->iy, + $this->ix+$this->iw-1, + $this->iy+$this->ih-1, + $this->ir); + $aImg->PopColor(); + } + + if( $this->iColor != '' ) { + $aImg->PushColor($this->iColor); + $aImg->RoundedRectangle($this->ix,$this->iy, + $this->ix+$this->iw-1, + $this->iy+$this->ih-1, + $this->ir); + $aImg->PopColor(); + } + + $this->iTxt->Align('center','center'); + $this->iTxt->ParagraphAlign($this->iParaAlign); + $this->iTxt->SetColor($this->iFontColor); + $this->iTxt->Stroke($aImg, $this->ix+$this->iw/2, $this->iy+$this->ih/2); + + return array($this->iw, $this->ih); + + } + +} + + +?> \ No newline at end of file diff --git a/gosa-core/include/jpgraph/jpgraph_contour.php b/gosa-core/include/jpgraph/jpgraph_contour.php new file mode 100644 index 000000000..0b23cdec4 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_contour.php @@ -0,0 +1,587 @@ +nbrRows = count($aMatrix); + $this->nbrCols = count($aMatrix[0]); + $this->dataPoints = $aMatrix; + + if( is_array($aIsobars) ) { + // use the isobar values supplied + $this->nbrIsobars = count($aIsobars); + $this->isobarValues = $aIsobars; + } + else { + // Determine the isobar values automatically + $this->nbrIsobars = $aIsobars; + list($min,$max) = $this->getMinMaxVal(); + $stepSize = ($max-$min) / $aIsobars ; + $isobar = $min+$stepSize/2; + for ($i = 0; $i < $aIsobars; $i++) { + $this->isobarValues[$i] = $isobar; + $isobar += $stepSize; + } + } + + if( $aColors !== null && count($aColors) > 0 ) { + + if( !is_array($aColors) ) { + JpGraphError::RaiseL(28001); + //'Third argument to Contour must be an array of colors.' + } + + if( count($aColors) != count($this->isobarValues) ) { + JpGraphError::RaiseL(28002); + //'Number of colors must equal the number of isobar lines specified'; + } + + $this->isobarColors = $aColors; + } + } + + /** + * Flip the plot around the Y-coordinate. This has the same affect as flipping the input + * data matrice + * + * @param $aFlg If true the the vertice in input data matrice position (0,0) corresponds to the top left + * corner of teh plot otherwise it will correspond to the bottom left corner (a horizontal flip) + */ + function SetInvert($aFlg=true) { + $this->invert = $aFlg; + } + + /** + * Find the min and max values in the data matrice + * + * @return array(min_value,max_value) + */ + function getMinMaxVal() { + $min = $this->dataPoints[0][0]; + $max = $this->dataPoints[0][0]; + for ($i = 0; $i < $this->nbrRows; $i++) { + if( ($mi=min($this->dataPoints[$i])) < $min ) $min = $mi; + if( ($ma=max($this->dataPoints[$i])) > $max ) $max = $ma; + } + return array($min,$max); + } + + /** + * Reset the two matrices that keeps track on where the isobars crosses the + * horizontal and vertical edges + */ + function resetEdgeMatrices() { + for ($k = 0; $k < 2; $k++) { + for ($i = 0; $i <= $this->nbrRows; $i++) { + for ($j = 0; $j <= $this->nbrCols; $j++) { + $this->edges[$k][$i][$j] = false; + } + } + } + } + + /** + * Determine if the specified isobar crosses the horizontal edge specified by its row and column + * + * @param $aRow Row index of edge to be checked + * @param $aCol Col index of edge to be checked + * @param $aIsobar Isobar value + * @return true if the isobar is crossing this edge + */ + function isobarHCrossing($aRow,$aCol,$aIsobar) { + + if( $aCol >= $this->nbrCols-1 ) { + JpGraphError::RaiseL(28003,$aCol); + //'ContourPlot Internal Error: isobarHCrossing: Coloumn index too large (%d)' + } + if( $aRow >= $this->nbrRows ) { + JpGraphError::RaiseL(28004,$aRow); + //'ContourPlot Internal Error: isobarHCrossing: Row index too large (%d)' + } + + $v1 = $this->dataPoints[$aRow][$aCol]; + $v2 = $this->dataPoints[$aRow][$aCol+1]; + + return ($aIsobar-$v1)*($aIsobar-$v2) < 0 ; + + } + + /** + * Determine if the specified isobar crosses the vertical edge specified by its row and column + * + * @param $aRow Row index of edge to be checked + * @param $aCol Col index of edge to be checked + * @param $aIsobar Isobar value + * @return true if the isobar is crossing this edge + */ + function isobarVCrossing($aRow,$aCol,$aIsobar) { + + if( $aRow >= $this->nbrRows-1) { + JpGraphError::RaiseL(28005,$aRow); + //'isobarVCrossing: Row index too large + } + if( $aCol >= $this->nbrCols ) { + JpGraphError::RaiseL(28006,$aCol); + //'isobarVCrossing: Col index too large + } + + $v1 = $this->dataPoints[$aRow][$aCol]; + $v2 = $this->dataPoints[$aRow+1][$aCol]; + + return ($aIsobar-$v1)*($aIsobar-$v2) < 0 ; + + } + + /** + * Determine all edges, horizontal and vertical that the specified isobar crosses. The crossings + * are recorded in the two edge matrices. + * + * @param $aIsobar The value of the isobar to be checked + */ + function determineIsobarEdgeCrossings($aIsobar) { + + $ib = $this->isobarValues[$aIsobar]; + + for ($i = 0; $i < $this->nbrRows-1; $i++) { + for ($j = 0; $j < $this->nbrCols-1; $j++) { + $this->edges[HORIZ_EDGE][$i][$j] = $this->isobarHCrossing($i,$j,$ib); + $this->edges[VERT_EDGE][$i][$j] = $this->isobarVCrossing($i,$j,$ib); + } + } + + // We now have the bottom and rightmost edges unsearched + for ($i = 0; $i < $this->nbrRows-1; $i++) { + $this->edges[VERT_EDGE][$i][$j] = $this->isobarVCrossing($i,$this->nbrCols-1,$ib); + } + for ($j = 0; $j < $this->nbrCols-1; $j++) { + $this->edges[HORIZ_EDGE][$i][$j] = $this->isobarHCrossing($this->nbrRows-1,$j,$ib); + } + + } + + /** + * Return the normalized coordinates for the crossing of the specified edge with the specified + * isobar- The crossing is simpy detrmined with a linear interpolation between the two vertices + * on each side of the edge and the value of the isobar + * + * @param $aRow Row of edge + * @param $aCol Column of edge + * @param $aEdgeDir Determine if this is a horizontal or vertical edge + * @param $ib The isobar value + * @return unknown_type + */ + function getCrossingCoord($aRow,$aCol,$aEdgeDir,$aIsobarVal) { + + // In order to avoid numerical problem when two vertices are very close + // we have to check and avoid dividing by close to zero denumerator. + if( $aEdgeDir == HORIZ_EDGE ) { + $d = abs($this->dataPoints[$aRow][$aCol] - $this->dataPoints[$aRow][$aCol+1]); + if( $d > 0.001 ) { + $xcoord = $aCol + abs($aIsobarVal - $this->dataPoints[$aRow][$aCol]) / $d; + } + else { + $xcoord = $aCol; + } + $ycoord = $aRow; + } + else { + $d = abs($this->dataPoints[$aRow][$aCol] - $this->dataPoints[$aRow+1][$aCol]); + if( $d > 0.001 ) { + $ycoord = $aRow + abs($aIsobarVal - $this->dataPoints[$aRow][$aCol]) / $d; + } + else { + $ycoord = $aRow; + } + $xcoord = $aCol; + } + if( $this->invert ) { + $ycoord = $this->nbrRows-1 - $ycoord; + } + return array($xcoord,$ycoord); + + } + + /** + * In order to avoid all kinds of unpleasent extra checks and complex boundary + * controls for the degenerated case where the contour levels exactly crosses + * one of the vertices we add a very small delta (0.1%) to the data point value. + * This has no visible affect but it makes the code sooooo much cleaner. + * + */ + function adjustDataPointValues() { + + $ni = count($this->isobarValues); + for ($k = 0; $k < $ni; $k++) { + $ib = $this->isobarValues[$k]; + for ($row = 0 ; $row < $this->nbrRows-1; ++$row) { + for ($col = 0 ; $col < $this->nbrCols-1; ++$col ) { + if( abs($this->dataPoints[$row][$col] - $ib) < 0.0001 ) { + $this->dataPoints[$row][$col] += $this->dataPoints[$row][$col]*0.001; + } + } + } + } + + } + + /** + * @param $aFlg + * @param $aBW + * @return unknown_type + */ + function UseHighContrastColor($aFlg=true,$aBW=false) { + $this->highcontrast = $aFlg; + $this->highcontrastbw = $aBW; + } + + /** + * Calculate suitable colors for each defined isobar + * + */ + function CalculateColors() { + if ( $this->highcontrast ) { + if ( $this->highcontrastbw ) { + for ($ib = 0; $ib < $this->nbrIsobars; $ib++) { + $this->isobarColors[$ib] = 'black'; + } + } + else { + // Use only blue/red scale + $step = round(255/($this->nbrIsobars-1)); + for ($ib = 0; $ib < $this->nbrIsobars; $ib++) { + $this->isobarColors[$ib] = array($ib*$step, 50, 255-$ib*$step); + } + } + } + else { + $n = $this->nbrIsobars; + $v = 0; $step = 1 / ($this->nbrIsobars-1); + for ($ib = 0; $ib < $this->nbrIsobars; $ib++) { + $this->isobarColors[$ib] = RGB::GetSpectrum($v); + $v += $step; + } + } + } + + /** + * This is where the main work is done. For each isobar the crossing of the edges are determined + * and then each cell is analyzed to find the 0, 2 or 4 crossings. Then the normalized coordinate + * for the crossings are determined and pushed on to the isobar stack. When the method is finished + * the $isobarCoord will hold one arrayfor each isobar where all the line segments that makes + * up the contour plot are stored. + * + * @return array( $isobarCoord, $isobarValues, $isobarColors ) + */ + function getIsobars() { + + $this->adjustDataPointValues(); + + for ($isobar = 0; $isobar < $this->nbrIsobars; $isobar++) { + + $ib = $this->isobarValues[$isobar]; + $this->resetEdgeMatrices(); + $this->determineIsobarEdgeCrossings($isobar); + $this->isobarCoord[$isobar] = array(); + + $ncoord = 0; + + for ($row = 0 ; $row < $this->nbrRows-1; ++$row) { + for ($col = 0 ; $col < $this->nbrCols-1; ++$col ) { + + // Find out how many crossings around the edges + $n = 0; + if ( $this->edges[HORIZ_EDGE][$row][$col] ) $neigh[$n++] = array($row, $col, HORIZ_EDGE); + if ( $this->edges[HORIZ_EDGE][$row+1][$col] ) $neigh[$n++] = array($row+1,$col, HORIZ_EDGE); + if ( $this->edges[VERT_EDGE][$row][$col] ) $neigh[$n++] = array($row, $col, VERT_EDGE); + if ( $this->edges[VERT_EDGE][$row][$col+1] ) $neigh[$n++] = array($row, $col+1,VERT_EDGE); + + if ( $n == 2 ) { + $n1=0; $n2=1; + $this->isobarCoord[$isobar][$ncoord++] = array( + $this->getCrossingCoord($neigh[$n1][0],$neigh[$n1][1],$neigh[$n1][2],$ib), + $this->getCrossingCoord($neigh[$n2][0],$neigh[$n2][1],$neigh[$n2][2],$ib) ); + } + elseif ( $n == 4 ) { + // We must determine how to connect the edges either northwest->southeast or + // northeast->southwest. We do that by calculating the imaginary middle value of + // the cell by averaging the for corners. This will compared with the value of the + // top left corner will help determine the orientation of the ridge/creek + $midval = ($this->dataPoints[$row][$col]+$this->dataPoints[$row][$col+1]+$this->dataPoints[$row+1][$col]+$this->dataPoints[$row+1][$col+1])/4; + $v = $this->dataPoints[$row][$col]; + if( $midval == $ib ) { + // Orientation "+" + $n1=0; $n2=1; $n3=2; $n4=3; + } elseif ( ($midval > $ib && $v > $ib) || ($midval < $ib && $v < $ib) ) { + // Orientation of ridge/valley = "\" + $n1=0; $n2=3; $n3=2; $n4=1; + } elseif ( ($midval > $ib && $v < $ib) || ($midval < $ib && $v > $ib) ) { + // Orientation of ridge/valley = "/" + $n1=0; $n2=2; $n3=3; $n4=1; + } + + $this->isobarCoord[$isobar][$ncoord++] = array( + $this->getCrossingCoord($neigh[$n1][0],$neigh[$n1][1],$neigh[$n1][2],$ib), + $this->getCrossingCoord($neigh[$n2][0],$neigh[$n2][1],$neigh[$n2][2],$ib) ); + + $this->isobarCoord[$isobar][$ncoord++] = array( + $this->getCrossingCoord($neigh[$n3][0],$neigh[$n3][1],$neigh[$n3][2],$ib), + $this->getCrossingCoord($neigh[$n4][0],$neigh[$n4][1],$neigh[$n4][2],$ib) ); + + } + } + } + } + + if( count($this->isobarColors) == 0 ) { + // No manually specified colors. Calculate them automatically. + $this->CalculateColors(); + } + return array( $this->isobarCoord, $this->isobarValues, $this->isobarColors ); + } +} + + +/** + * This class represent a plotting of a contour outline of data given as a X-Y matrice + * + */ +class ContourPlot extends Plot { + + private $contour, $contourCoord, $contourVal, $contourColor; + private $nbrCountours = 0 ; + private $dataMatrix = array(); + private $invertLegend = false; + private $interpFactor = 1; + private $flipData = false; + private $isobar = 10; + private $showLegend = false; + private $highcontrast = false, $highcontrastbw = false; + private $manualIsobarColors = array(); + + /** + * Construct a contour plotting algorithm. The end result of the algorithm is a sequence of + * line segments for each isobar given as two vertices. + * + * @param $aDataMatrix The Z-data to be used + * @param $aIsobar A mixed variable, if it is an integer then this specified the number of isobars to use. + * The values of the isobars are automatically detrmined to be equ-spaced between the min/max value of the + * data. If it is an array then it explicetely gives the isobar values + * @param $aInvert By default the matrice with row index 0 corresponds to Y-value 0, i.e. in the bottom of + * the plot. If this argument is true then the row with the highest index in the matrice corresponds to + * Y-value 0. In affect flipping the matrice around an imaginary horizontal axis. + * @param $aHighContrast Use high contrast colors (blue/red:ish) + * @param $aHighContrastBW Use only black colors for contours + * @return an instance of the contour plot algorithm + */ + function __construct($aDataMatrix, $aIsobar=10, $aFactor=1, $aInvert=false, $aIsobarColors=array()) { + + $this->dataMatrix = $aDataMatrix; + $this->flipData = $aInvert; + $this->isobar = $aIsobar; + $this->interpFactor = $aFactor; + + if ( $this->interpFactor > 1 ) { + + if( $this->interpFactor > 5 ) { + JpGraphError::RaiseL(28007);// ContourPlot interpolation factor is too large (>5) + } + + $ip = new MeshInterpolate(); + $this->dataMatrix = $ip->Linear($this->dataMatrix, $this->interpFactor); + } + + $this->contour = new Contour($this->dataMatrix,$this->isobar,$aIsobarColors); + + if( is_array($aIsobar) ) + $this->nbrContours = count($aIsobar); + else + $this->nbrContours = $aIsobar; + } + + + /** + * Flipe the data around the center + * + * @param $aFlg + * + */ + function SetInvert($aFlg=true) { + $this->flipData = $aFlg; + } + + /** + * Set the colors for the isobar lines + * + * @param $aColorArray + * + */ + function SetIsobarColors($aColorArray) { + $this->manualIsobarColors = $aColorArray; + } + + /** + * Show the legend + * + * @param $aFlg true if the legend should be shown + * + */ + function ShowLegend($aFlg=true) { + $this->showLegend = $aFlg; + } + + + /** + * @param $aFlg true if the legend should start with the lowest isobar on top + * @return unknown_type + */ + function Invertlegend($aFlg=true) { + $this->invertLegend = $aFlg; + } + + /* Internal method. Give the min value to be used for the scaling + * + */ + function Min() { + return array(0,0); + } + + /* Internal method. Give the max value to be used for the scaling + * + */ + function Max() { + return array(count($this->dataMatrix[0])-1,count($this->dataMatrix)-1); + } + + /** + * Internal ramewrok method to setup the legend to be used for this plot. + * @param $aGraph The parent graph class + */ + function Legend($aGraph) { + + if( ! $this->showLegend ) + return; + + if( $this->invertLegend ) { + for ($i = 0; $i < $this->nbrContours; $i++) { + $aGraph->legend->Add(sprintf('%.1f',$this->contourVal[$i]), $this->contourColor[$i]); + } + } + else { + for ($i = $this->nbrContours-1; $i >= 0 ; $i--) { + $aGraph->legend->Add(sprintf('%.1f',$this->contourVal[$i]), $this->contourColor[$i]); + } + } + } + + + /** + * Framework function which gets called before the Stroke() method is called + * + * @see Plot#PreScaleSetup($aGraph) + * + */ + function PreScaleSetup($aGraph) { + $xn = count($this->dataMatrix[0])-1; + $yn = count($this->dataMatrix)-1; + + $aGraph->xaxis->scale->Update($aGraph->img,0,$xn); + $aGraph->yaxis->scale->Update($aGraph->img,0,$yn); + + $this->contour->SetInvert($this->flipData); + list($this->contourCoord,$this->contourVal,$this->contourColor) = $this->contour->getIsobars(); + } + + /** + * Use high contrast color schema + * + * @param $aFlg True, to use high contrast color + * @param $aBW True, Use only black and white color schema + */ + function UseHighContrastColor($aFlg=true,$aBW=false) { + $this->highcontrast = $aFlg; + $this->highcontrastbw = $aBW; + $this->contour->UseHighContrastColor($this->highcontrast,$this->highcontrastbw); + } + + /** + * Internal method. Stroke the contour plot to the graph + * + * @param $img Image handler + * @param $xscale Instance of the xscale to use + * @param $yscale Instance of the yscale to use + */ + function Stroke($img,$xscale,$yscale) { + + if( count($this->manualIsobarColors) > 0 ) { + $this->contourColor = $this->manualIsobarColors; + if( count($this->manualIsobarColors) != $this->nbrContours ) { + JpGraphError::RaiseL(28002); + } + } + + $img->SetLineWeight($this->line_weight); + + for ($c = 0; $c < $this->nbrContours; $c++) { + + $img->SetColor( $this->contourColor[$c] ); + + $n = count($this->contourCoord[$c]); + $i = 0; + while ( $i < $n ) { + list($x1,$y1) = $this->contourCoord[$c][$i][0]; + $x1t = $xscale->Translate($x1); + $y1t = $yscale->Translate($y1); + + list($x2,$y2) = $this->contourCoord[$c][$i++][1]; + $x2t = $xscale->Translate($x2); + $y2t = $yscale->Translate($y2); + + $img->Line($x1t,$y1t,$x2t,$y2t); + } + + } + } + +} + +// EOF +?> diff --git a/gosa-core/include/jpgraph/jpgraph_date.php b/gosa-core/include/jpgraph/jpgraph_date.php new file mode 100644 index 000000000..6adc9e4bb --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_date.php @@ -0,0 +1,499 @@ +type=$aType; + $this->scale=array($aMin,$aMax); + $this->world_size=$aMax-$aMin; + $this->ticks = new LinearTicks(); + $this->intscale=true; + } + + + //------------------------------------------------------------------------------------------ + // Utility Function AdjDate() + // Description: Will round a given time stamp to an even year, month or day + // argument. + //------------------------------------------------------------------------------------------ + + function AdjDate($aTime,$aRound=0,$aYearType=false,$aMonthType=false,$aDayType=false) { + $y = (int)date('Y',$aTime); $m = (int)date('m',$aTime); $d = (int)date('d',$aTime); + $h=0;$i=0;$s=0; + if( $aYearType !== false ) { + $yearAdj = array(0=>1, 1=>2, 2=>5); + if( $aRound == 0 ) { + $y = floor($y/$yearAdj[$aYearType])*$yearAdj[$aYearType]; + } + else { + ++$y; + $y = ceil($y/$yearAdj[$aYearType])*$yearAdj[$aYearType]; + } + $m=1;$d=1; + } + elseif( $aMonthType !== false ) { + $monthAdj = array(0=>1, 1=>6); + if( $aRound == 0 ) { + $m = floor($m/$monthAdj[$aMonthType])*$monthAdj[$aMonthType]; + $d=1; + } + else { + ++$m; + $m = ceil($m/$monthAdj[$aMonthType])*$monthAdj[$aMonthType]; + $d=1; + } + } + elseif( $aDayType !== false ) { + if( $aDayType == 0 ) { + if( $aRound == 1 ) { + //++$d; + $h=23;$i=59;$s=59; + } + } + else { + // Adjust to an even week boundary. + $w = (int)date('w',$aTime); // Day of week 0=Sun, 6=Sat + if( true ) { // Adjust to start on Mon + if( $w==0 ) $w=6; + else --$w; + } + if( $aRound == 0 ) { + $d -= $w; + } + else { + $d += (7-$w); + $h=23;$i=59;$s=59; + } + } + } + return mktime($h,$i,$s,$m,$d,$y); + + } + + //------------------------------------------------------------------------------------------ + // Wrapper for AdjDate that will round a timestamp to an even date rounding + // it downwards. + //------------------------------------------------------------------------------------------ + function AdjStartDate($aTime,$aYearType=false,$aMonthType=false,$aDayType=false) { + return $this->AdjDate($aTime,0,$aYearType,$aMonthType,$aDayType); + } + + //------------------------------------------------------------------------------------------ + // Wrapper for AdjDate that will round a timestamp to an even date rounding + // it upwards + //------------------------------------------------------------------------------------------ + function AdjEndDate($aTime,$aYearType=false,$aMonthType=false,$aDayType=false) { + return $this->AdjDate($aTime,1,$aYearType,$aMonthType,$aDayType); + } + + //------------------------------------------------------------------------------------------ + // Utility Function AdjTime() + // Description: Will round a given time stamp to an even time according to + // argument. + //------------------------------------------------------------------------------------------ + + function AdjTime($aTime,$aRound=0,$aHourType=false,$aMinType=false,$aSecType=false) { + $y = (int)date('Y',$aTime); $m = (int)date('m',$aTime); $d = (int)date('d',$aTime); + $h = (int)date('H',$aTime); $i = (int)date('i',$aTime); $s = (int)date('s',$aTime); + if( $aHourType !== false ) { + $aHourType %= 6; + $hourAdj = array(0=>1, 1=>2, 2=>3, 3=>4, 4=>6, 5=>12); + if( $aRound == 0 ) + $h = floor($h/$hourAdj[$aHourType])*$hourAdj[$aHourType]; + else { + if( ($h % $hourAdj[$aHourType]==0) && ($i > 0 || $s > 0) ) { + $h++; + } + $h = ceil($h/$hourAdj[$aHourType])*$hourAdj[$aHourType]; + if( $h >= 24 ) { + $aTime += 86400; + $y = (int)date('Y',$aTime); $m = (int)date('m',$aTime); $d = (int)date('d',$aTime); + $h -= 24; + } + } + $i=0;$s=0; + } + elseif( $aMinType !== false ) { + $aMinType %= 5; + $minAdj = array(0=>1, 1=>5, 2=>10, 3=>15, 4=>30); + if( $aRound == 0 ) { + $i = floor($i/$minAdj[$aMinType])*$minAdj[$aMinType]; + } + else { + if( ($i % $minAdj[$aMinType]==0) && $s > 0 ) { + $i++; + } + $i = ceil($i/$minAdj[$aMinType])*$minAdj[$aMinType]; + if( $i >= 60) { + $aTime += 3600; + $y = (int)date('Y',$aTime); $m = (int)date('m',$aTime); $d = (int)date('d',$aTime); + $h = (int)date('H',$aTime); $i = 0; + } + } + $s=0; + } + elseif( $aSecType !== false ) { + $aSecType %= 5; + $secAdj = array(0=>1, 1=>5, 2=>10, 3=>15, 4=>30); + if( $aRound == 0 ) { + $s = floor($s/$secAdj[$aSecType])*$secAdj[$aSecType]; + } + else { + $s = ceil($s/$secAdj[$aSecType]*1.0)*$secAdj[$aSecType]; + if( $s >= 60) { + $s=0; + $aTime += 60; + $y = (int)date('Y',$aTime); $m = (int)date('m',$aTime); $d = (int)date('d',$aTime); + $h = (int)date('H',$aTime); $i = (int)date('i',$aTime); + } + } + } + return mktime($h,$i,$s,$m,$d,$y); + } + + //------------------------------------------------------------------------------------------ + // Wrapper for AdjTime that will round a timestamp to an even time rounding + // it downwards. + // Example: AdjStartTime(mktime(18,27,13,2,22,2005),false,2) => 18:20 + //------------------------------------------------------------------------------------------ + function AdjStartTime($aTime,$aHourType=false,$aMinType=false,$aSecType=false) { + return $this->AdjTime($aTime,0,$aHourType,$aMinType,$aSecType); + } + + //------------------------------------------------------------------------------------------ + // Wrapper for AdjTime that will round a timestamp to an even time rounding + // it upwards + // Example: AdjEndTime(mktime(18,27,13,2,22,2005),false,2) => 18:30 + //------------------------------------------------------------------------------------------ + function AdjEndTime($aTime,$aHourType=false,$aMinType=false,$aSecType=false) { + return $this->AdjTime($aTime,1,$aHourType,$aMinType,$aSecType); + } + + //------------------------------------------------------------------------------------------ + // DateAutoScale + // Autoscale a date axis given start and end time + // Returns an array ($start,$end,$major,$minor,$format) + //------------------------------------------------------------------------------------------ + function DoDateAutoScale($aStartTime,$aEndTime,$aDensity=0,$aAdjust=true) { + // Format of array + // array ( Decision point, array( array( Major-scale-step-array ), + // array( Minor-scale-step-array ), + // array( 0=date-adjust, 1=time-adjust, adjustment-alignment) ) + // + $scalePoints = + array( + /* Intervall larger than 10 years */ + SECPERYEAR*10,array(array(SECPERYEAR*5,SECPERYEAR*2), + array(SECPERYEAR), + array(0,YEARADJ_1, 0,YEARADJ_1) ), + + /* Intervall larger than 2 years */ + SECPERYEAR*2,array(array(SECPERYEAR),array(SECPERYEAR), + array(0,YEARADJ_1) ), + + /* Intervall larger than 90 days (approx 3 month) */ + SECPERDAY*90,array(array(SECPERDAY*30,SECPERDAY*14,SECPERDAY*7,SECPERDAY), + array(SECPERDAY*5,SECPERDAY*7,SECPERDAY,SECPERDAY), + array(0,MONTHADJ_1, 0,DAYADJ_WEEK, 0,DAYADJ_1, 0,DAYADJ_1)), + + /* Intervall larger than 30 days (approx 1 month) */ + SECPERDAY*30,array(array(SECPERDAY*14,SECPERDAY*7,SECPERDAY*2, SECPERDAY), + array(SECPERDAY,SECPERDAY,SECPERDAY,SECPERDAY), + array(0,DAYADJ_WEEK, 0,DAYADJ_1, 0,DAYADJ_1, 0,DAYADJ_1)), + + /* Intervall larger than 7 days */ + SECPERDAY*7,array(array(SECPERDAY,SECPERHOUR*12,SECPERHOUR*6,SECPERHOUR*2), + array(SECPERHOUR*6,SECPERHOUR*3,SECPERHOUR,SECPERHOUR), + array(0,DAYADJ_1, 1,HOURADJ_12, 1,HOURADJ_6, 1,HOURADJ_1)), + + /* Intervall larger than 1 day */ + SECPERDAY,array(array(SECPERDAY,SECPERHOUR*12,SECPERHOUR*6,SECPERHOUR*2,SECPERHOUR), + array(SECPERHOUR*6,SECPERHOUR*2,SECPERHOUR,SECPERHOUR,SECPERHOUR), + array(1,HOURADJ_12, 1,HOURADJ_6, 1,HOURADJ_1, 1,HOURADJ_1)), + + /* Intervall larger than 12 hours */ + SECPERHOUR*12,array(array(SECPERHOUR*2,SECPERHOUR,SECPERMIN*30,900,600), + array(1800,1800,900,300,300), + array(1,HOURADJ_1, 1,MINADJ_30, 1,MINADJ_15, 1,MINADJ_10, 1,MINADJ_5) ), + + /* Intervall larger than 2 hours */ + SECPERHOUR*2,array(array(SECPERHOUR,SECPERMIN*30,900,600,300), + array(1800,900,300,120,60), + array(1,HOURADJ_1, 1,MINADJ_30, 1,MINADJ_15, 1,MINADJ_10, 1,MINADJ_5) ), + + /* Intervall larger than 1 hours */ + SECPERHOUR,array(array(SECPERMIN*30,900,600,300),array(900,300,120,60), + array(1,MINADJ_30, 1,MINADJ_15, 1,MINADJ_10, 1,MINADJ_5) ), + + /* Intervall larger than 30 min */ + SECPERMIN*30,array(array(SECPERMIN*15,SECPERMIN*10,SECPERMIN*5,SECPERMIN), + array(300,300,60,10), + array(1,MINADJ_15, 1,MINADJ_10, 1,MINADJ_5, 1,MINADJ_1)), + + /* Intervall larger than 1 min */ + SECPERMIN,array(array(SECPERMIN,15,10,5), + array(15,5,2,1), + array(1,MINADJ_1, 1,SECADJ_15, 1,SECADJ_10, 1,SECADJ_5)), + + /* Intervall larger than 10 sec */ + 10,array(array(5,2), + array(1,1), + array(1,SECADJ_5, 1,SECADJ_1)), + + /* Intervall larger than 1 sec */ + 1,array(array(1), + array(1), + array(1,SECADJ_1)), + ); + + $ns = count($scalePoints); + // Establish major and minor scale units for the date scale + $diff = $aEndTime - $aStartTime; + if( $diff < 1 ) return false; + $done=false; + $i=0; + while( ! $done ) { + if( $diff > $scalePoints[2*$i] ) { + // Get major and minor scale for this intervall + $scaleSteps = $scalePoints[2*$i+1]; + $major = $scaleSteps[0][min($aDensity,count($scaleSteps[0])-1)]; + // Try to find out which minor step looks best + $minor = $scaleSteps[1][min($aDensity,count($scaleSteps[1])-1)]; + if( $aAdjust ) { + // Find out how we should align the start and end timestamps + $idx = 2*min($aDensity,floor(count($scaleSteps[2])/2)-1); + if( $scaleSteps[2][$idx] === 0 ) { + // Use date adjustment + $adj = $scaleSteps[2][$idx+1]; + if( $adj >= 30 ) { + $start = $this->AdjStartDate($aStartTime,$adj-30); + $end = $this->AdjEndDate($aEndTime,$adj-30); + } + elseif( $adj >= 20 ) { + $start = $this->AdjStartDate($aStartTime,false,$adj-20); + $end = $this->AdjEndDate($aEndTime,false,$adj-20); + } + else { + $start = $this->AdjStartDate($aStartTime,false,false,$adj); + $end = $this->AdjEndDate($aEndTime,false,false,$adj); + // We add 1 second for date adjustment to make sure we end on 00:00 the following day + // This makes the final major tick be srawn when we step day-by-day instead of ending + // on xx:59:59 which would not draw the final major tick + $end++; + } + } + else { + // Use time adjustment + $adj = $scaleSteps[2][$idx+1]; + if( $adj >= 30 ) { + $start = $this->AdjStartTime($aStartTime,$adj-30); + $end = $this->AdjEndTime($aEndTime,$adj-30); + } + elseif( $adj >= 20 ) { + $start = $this->AdjStartTime($aStartTime,false,$adj-20); + $end = $this->AdjEndTime($aEndTime,false,$adj-20); + } + else { + $start = $this->AdjStartTime($aStartTime,false,false,$adj); + $end = $this->AdjEndTime($aEndTime,false,false,$adj); + } + } + } + // If the overall date span is larger than 1 day ten we show date + $format = ''; + if( ($end-$start) > SECPERDAY ) { + $format = 'Y-m-d '; + } + // If the major step is less than 1 day we need to whow hours + min + if( $major < SECPERDAY ) { + $format .= 'H:i'; + } + // If the major step is less than 1 min we need to show sec + if( $major < 60 ) { + $format .= ':s'; + } + $done=true; + } + ++$i; + } + return array($start,$end,$major,$minor,$format); + } + + // Overrides the automatic determined date format. Must be a valid date() format string + function SetDateFormat($aFormat) { + $this->date_format = $aFormat; + $this->ticks->SetLabelDateFormat($this->date_format); + } + + function AdjustForDST($aFlg=true) { + $this->ticks->AdjustForDST($aFlg); + } + + + function SetDateAlign($aStartAlign,$aEndAlign=false) { + if( $aEndAlign === false ) { + $aEndAlign=$aStartAlign; + } + $this->iStartAlign = $aStartAlign; + $this->iEndAlign = $aEndAlign; + } + + function SetTimeAlign($aStartAlign,$aEndAlign=false) { + if( $aEndAlign === false ) { + $aEndAlign=$aStartAlign; + } + $this->iStartTimeAlign = $aStartAlign; + $this->iEndTimeAlign = $aEndAlign; + } + + + function AutoScale($img,$aStartTime,$aEndTime,$aNumSteps,$_adummy=false) { + // We need to have one dummy argument to make the signature of AutoScale() + // identical to LinearScale::AutoScale + if( $aStartTime == $aEndTime ) { + // Special case when we only have one data point. + // Create a small artifical intervall to do the autoscaling + $aStartTime -= 10; + $aEndTime += 10; + } + $done=false; + $i=0; + while( ! $done && $i < 5) { + list($adjstart,$adjend,$maj,$min,$format) = $this->DoDateAutoScale($aStartTime,$aEndTime,$i); + $n = floor(($adjend-$adjstart)/$maj); + if( $n * 1.7 > $aNumSteps ) { + $done=true; + } + $i++; + } + + /* + if( 0 ) { // DEBUG + echo " Start =".date("Y-m-d H:i:s",$aStartTime)."
    "; + echo " End =".date("Y-m-d H:i:s",$aEndTime)."
    "; + echo "Adj Start =".date("Y-m-d H:i:s",$adjstart)."
    "; + echo "Adj End =".date("Y-m-d H:i:s",$adjend)."

    "; + echo "Major = $maj s, ".floor($maj/60)."min, ".floor($maj/3600)."h, ".floor($maj/86400)."day
    "; + echo "Min = $min s, ".floor($min/60)."min, ".floor($min/3600)."h, ".floor($min/86400)."day
    "; + echo "Format=$format

    "; + } + */ + + if( $this->iStartTimeAlign !== false && $this->iStartAlign !== false ) { + JpGraphError::RaiseL(3001); + //('It is only possible to use either SetDateAlign() or SetTimeAlign() but not both'); + } + + if( $this->iStartTimeAlign !== false ) { + if( $this->iStartTimeAlign >= 30 ) { + $adjstart = $this->AdjStartTime($aStartTime,$this->iStartTimeAlign-30); + } + elseif( $this->iStartTimeAlign >= 20 ) { + $adjstart = $this->AdjStartTime($aStartTime,false,$this->iStartTimeAlign-20); + } + else { + $adjstart = $this->AdjStartTime($aStartTime,false,false,$this->iStartTimeAlign); + } + } + if( $this->iEndTimeAlign !== false ) { + if( $this->iEndTimeAlign >= 30 ) { + $adjend = $this->AdjEndTime($aEndTime,$this->iEndTimeAlign-30); + } + elseif( $this->iEndTimeAlign >= 20 ) { + $adjend = $this->AdjEndTime($aEndTime,false,$this->iEndTimeAlign-20); + } + else { + $adjend = $this->AdjEndTime($aEndTime,false,false,$this->iEndTimeAlign); + } + } + + + + if( $this->iStartAlign !== false ) { + if( $this->iStartAlign >= 30 ) { + $adjstart = $this->AdjStartDate($aStartTime,$this->iStartAlign-30); + } + elseif( $this->iStartAlign >= 20 ) { + $adjstart = $this->AdjStartDate($aStartTime,false,$this->iStartAlign-20); + } + else { + $adjstart = $this->AdjStartDate($aStartTime,false,false,$this->iStartAlign); + } + } + if( $this->iEndAlign !== false ) { + if( $this->iEndAlign >= 30 ) { + $adjend = $this->AdjEndDate($aEndTime,$this->iEndAlign-30); + } + elseif( $this->iEndAlign >= 20 ) { + $adjend = $this->AdjEndDate($aEndTime,false,$this->iEndAlign-20); + } + else { + $adjend = $this->AdjEndDate($aEndTime,false,false,$this->iEndAlign); + } + } + $this->Update($img,$adjstart,$adjend); + if( ! $this->ticks->IsSpecified() ) + $this->ticks->Set($maj,$min); + if( $this->date_format == '' ) + $this->ticks->SetLabelDateFormat($format); + else + $this->ticks->SetLabelDateFormat($this->date_format); + } +} + + +?> diff --git a/gosa-core/include/jpgraph/jpgraph_errhandler.inc.php b/gosa-core/include/jpgraph/jpgraph_errhandler.inc.php new file mode 100644 index 000000000..68b5b5d46 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_errhandler.inc.php @@ -0,0 +1,368 @@ +lt = $_jpg_messages; + } + + function Get($errnbr,$a1=null,$a2=null,$a3=null,$a4=null,$a5=null) { + GLOBAL $__jpg_err_locale; + if( !isset($this->lt[$errnbr]) ) { + return 'Internal error: The specified error message ('.$errnbr.') does not exist in the chosen locale ('.$__jpg_err_locale.')'; + } + $ea = $this->lt[$errnbr]; + $j=0; + if( $a1 !== null ) { + $argv[$j++] = $a1; + if( $a2 !== null ) { + $argv[$j++] = $a2; + if( $a3 !== null ) { + $argv[$j++] = $a3; + if( $a4 !== null ) { + $argv[$j++] = $a4; + if( $a5 !== null ) { + $argv[$j++] = $a5; + } + } + } + } + } + $numargs = $j; + if( $ea[1] != $numargs ) { + // Error message argument count do not match. + // Just return the error message without arguments. + return $ea[0]; + } + switch( $numargs ) { + case 1: + $msg = sprintf($ea[0],$argv[0]); + break; + case 2: + $msg = sprintf($ea[0],$argv[0],$argv[1]); + break; + case 3: + $msg = sprintf($ea[0],$argv[0],$argv[1],$argv[2]); + break; + case 4: + $msg = sprintf($ea[0],$argv[0],$argv[1],$argv[2],$argv[3]); + break; + case 5: + $msg = sprintf($ea[0],$argv[0],$argv[1],$argv[2],$argv[3],$argv[4]); + break; + case 0: + default: + $msg = sprintf($ea[0]); + break; + } + return $msg; + } +} + +// +// A wrapper class that is used to access the specified error object +// (to hide the global error parameter and avoid having a GLOBAL directive +// in all methods. +// +class JpGraphError { + private static $__iImgFlg = true; + private static $__iLogFile = ''; + private static $__iTitle = 'JpGraph Error: '; + public static function Raise($aMsg,$aHalt=true){ + throw new JpGraphException($aMsg); + } + public static function SetErrLocale($aLoc) { + GLOBAL $__jpg_err_locale ; + $__jpg_err_locale = $aLoc; + } + public static function RaiseL($errnbr,$a1=null,$a2=null,$a3=null,$a4=null,$a5=null) { + throw new JpGraphExceptionL($errnbr,$a1,$a2,$a3,$a4,$a5); + } + public static function SetImageFlag($aFlg=true) { + self::$__iImgFlg = $aFlg; + } + public static function GetImageFlag() { + return self::$__iImgFlg; + } + public static function SetLogFile($aFile) { + self::$__iLogFile = $aFile; + } + public static function GetLogFile() { + return self::$__iLogFile; + } + public static function SetTitle($aTitle) { + self::$__iTitle = $aTitle; + } + public static function GetTitle() { + return self::$__iTitle; + } +} + +class JpGraphException extends Exception { + // Redefine the exception so message isn't optional + public function __construct($message, $code = 0) { + // make sure everything is assigned properly + parent::__construct($message, $code); + } + // custom string representation of object + public function _toString() { + return __CLASS__ . ": [{$this->code}]: {$this->message} at " . basename($this->getFile()) . ":" . $this->getLine() . "\n" . $this->getTraceAsString() . "\n"; + } + // custom representation of error as an image + public function Stroke() { + if( JpGraphError::GetImageFlag() ) { + $errobj = new JpGraphErrObjectImg(); + $errobj->SetTitle(JpGraphError::GetTitle()); + } + else { + $errobj = new JpGraphErrObject(); + $errobj->SetTitle(JpGraphError::GetTitle()); + $errobj->SetStrokeDest(JpGraphError::GetLogFile()); + } + $errobj->Raise($this->getMessage()); + } + static public function defaultHandler(Exception $exception) { + global $__jpg_OldHandler; + if( $exception instanceof JpGraphException ) { + $exception->Stroke(); + } + else { + // Restore old handler + if( $__jpg_OldHandler !== NULL ) { + set_exception_handler($__jpg_OldHandler); + } + throw $exception; + } + } +} + +class JpGraphExceptionL extends JpGraphException { + // Redefine the exception so message isn't optional + public function __construct($errcode,$a1=null,$a2=null,$a3=null,$a4=null,$a5=null) { + // make sure everything is assigned properly + $errtxt = new ErrMsgText(); + JpGraphError::SetTitle('JpGraph Error: '.$errcode); + parent::__construct($errtxt->Get($errcode,$a1,$a2,$a3,$a4,$a5), 0); + } +} + +// Setup the default handler +global $__jpg_OldHandler; +$__jpg_OldHandler = set_exception_handler(array('JpGraphException','defaultHandler')); + +// +// First of all set up a default error handler +// + +//============================================================= +// The default trivial text error handler. +//============================================================= +class JpGraphErrObject { + + protected $iTitle = "JpGraph error: "; + protected $iDest = false; + + + function __construct() { + // Empty. Reserved for future use + } + + function SetTitle($aTitle) { + $this->iTitle = $aTitle; + } + + function SetStrokeDest($aDest) { + $this->iDest = $aDest; + } + + // If aHalt is true then execution can't continue. Typical used for fatal errors + function Raise($aMsg,$aHalt=false) { + if( $this->iDest != '' ) { + if( $this->iDest == 'syslog' ) { + error_log($this->iTitle.$aMsg); + } + else { + $str = '['.date('r').'] '.$this->iTitle.$aMsg."\n"; + $f = @fopen($this->iDest,'a'); + if( $f ) { + @fwrite($f,$str); + @fclose($f); + } + } + } + else { + $aMsg = $this->iTitle.$aMsg; + // Check SAPI and if we are called from the command line + // send the error to STDERR instead + if( PHP_SAPI == 'cli' ) { + fwrite(STDERR,$aMsg); + } + else { + echo $aMsg; + } + } + if( $aHalt ) + exit(1); + } +} + +//============================================================== +// An image based error handler +//============================================================== +class JpGraphErrObjectImg extends JpGraphErrObject { + + function __construct() { + parent::__construct(); + // Empty. Reserved for future use + } + + function Raise($aMsg,$aHalt=true) { + $img_iconerror = + 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAAAaV'. + 'BMVEX//////2Xy8mLl5V/Z2VvMzFi/v1WyslKlpU+ZmUyMjEh/'. + 'f0VyckJlZT9YWDxMTDjAwMDy8sLl5bnY2K/MzKW/v5yyspKlpY'. + 'iYmH+MjHY/PzV/f2xycmJlZVlZWU9MTEXY2Ms/PzwyMjLFTjea'. + 'AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACx'. + 'IAAAsSAdLdfvwAAAAHdElNRQfTBgISOCqusfs5AAABLUlEQVR4'. + '2tWV3XKCMBBGWfkranCIVClKLd/7P2Q3QsgCxjDTq+6FE2cPH+'. + 'xJ0Ogn2lQbsT+Wrs+buAZAV4W5T6Bs0YXBBwpKgEuIu+JERAX6'. + 'wM2rHjmDdEITmsQEEmWADgZm6rAjhXsoMGY9B/NZBwJzBvn+e3'. + 'wHntCAJdGu9SviwIwoZVDxPB9+Rc0TSEbQr0j3SA1gwdSn6Db0'. + '6Tm1KfV6yzWGQO7zdpvyKLKBDmRFjzeB3LYgK7r6A/noDAfjtS'. + 'IXaIzbJSv6WgUebTMV4EoRB8a2mQiQjgtF91HdKDKZ1gtFtQjk'. + 'YcWaR5OKOhkYt+ZsTFdJRfPAApOpQYJTNHvCRSJR6SJngQadfc'. + 'vd69OLMddVOPCGVnmrFD8bVYd3JXfxXPtLR/+mtv59/ALWiiMx'. + 'qL72fwAAAABJRU5ErkJggg==' ; + + + if( function_exists("imagetypes") ) { + $supported = imagetypes(); + } else { + $supported = 0; + } + + if( !function_exists('imagecreatefromstring') ) { + $supported = 0; + } + + if( ob_get_length() || headers_sent() || !($supported & IMG_PNG) ) { + // Special case for headers already sent or that the installation doesn't support + // the PNG format (which the error icon is encoded in). + // Dont return an image since it can't be displayed + die($this->iTitle.' '.$aMsg); + } + + $aMsg = wordwrap($aMsg,55); + $lines = substr_count($aMsg,"\n"); + + // Create the error icon GD + $erricon = Image::CreateFromString(base64_decode($img_iconerror)); + + // Create an image that contains the error text. + $w=400; + $h=100 + 15*max(0,$lines-3); + + $img = new Image($w,$h); + + + // Drop shadow + $img->SetColor("gray"); + $img->FilledRectangle(5,5,$w-1,$h-1,10); + $img->SetColor("gray:0.7"); + $img->FilledRectangle(5,5,$w-3,$h-3,10); + + // Window background + $img->SetColor("lightblue"); + $img->FilledRectangle(1,1,$w-5,$h-5); + $img->CopyCanvasH($img->img,$erricon,5,30,0,0,40,40); + + // Window border + $img->SetColor("black"); + $img->Rectangle(1,1,$w-5,$h-5); + $img->Rectangle(0,0,$w-4,$h-4); + + // Window top row + $img->SetColor("darkred"); + for($y=3; $y < 18; $y += 2 ) + $img->Line(1,$y,$w-6,$y); + + // "White shadow" + $img->SetColor("white"); + + // Left window edge + $img->Line(2,2,2,$h-5); + $img->Line(2,2,$w-6,2); + + // "Gray button shadow" + $img->SetColor("darkgray"); + + // Gray window shadow + $img->Line(2,$h-6,$w-5,$h-6); + $img->Line(3,$h-7,$w-5,$h-7); + + // Window title + $m = floor($w/2-5); + $l = 110; + $img->SetColor("lightgray:1.3"); + $img->FilledRectangle($m-$l,2,$m+$l,16); + + // Stroke text + $img->SetColor("darkred"); + $img->SetFont(FF_FONT2,FS_BOLD); + $img->StrokeText($m-90,15,$this->iTitle); + $img->SetColor("black"); + $img->SetFont(FF_FONT1,FS_NORMAL); + $txt = new Text($aMsg,52,25); + $txt->Align("left","top"); + $txt->Stroke($img); + if ($this->iDest) { + $img->Stream($this->iDest); + } else { + $img->Headers(); + $img->Stream(); + } + if( $aHalt ) + die(); + } +} + + + +if( ! USE_IMAGE_ERROR_HANDLER ) { + JpGraphError::SetImageFlag(false); +} +?> diff --git a/gosa-core/include/jpgraph/jpgraph_error.php b/gosa-core/include/jpgraph/jpgraph_error.php new file mode 100644 index 000000000..5e0857fbe --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_error.php @@ -0,0 +1,157 @@ +numpoints /= 2; + } + //--------------- + // PUBLIC METHODS + + // Gets called before any axis are stroked + function PreStrokeAdjust($graph) { + if( $this->center ) { + $a=0.5; $b=0.5; + ++$this->numpoints; + } else { + $a=0; $b=0; + } + $graph->xaxis->scale->ticks->SetXLabelOffset($a); + $graph->SetTextScaleOff($b); + //$graph->xaxis->scale->ticks->SupressMinorTickMarks(); + } + + // Method description + function Stroke($img,$xscale,$yscale) { + $numpoints=count($this->coords[0])/2; + $img->SetColor($this->color); + $img->SetLineWeight($this->weight); + + if( isset($this->coords[1]) ) { + if( count($this->coords[1])!=$numpoints ) + JpGraphError::RaiseL(2003,count($this->coords[1]),$numpoints); + //("Number of X and Y points are not equal. Number of X-points:".count($this->coords[1])." Number of Y-points:$numpoints"); + else + $exist_x = true; + } + else + $exist_x = false; + + for( $i=0; $i<$numpoints; ++$i) { + if( $exist_x ) + $x=$this->coords[1][$i]; + else + $x=$i; + + if( !is_numeric($x) || + !is_numeric($this->coords[0][$i*2]) || !is_numeric($this->coords[0][$i*2+1]) ) { + continue; + } + + $xt = $xscale->Translate($x); + $yt1 = $yscale->Translate($this->coords[0][$i*2]); + $yt2 = $yscale->Translate($this->coords[0][$i*2+1]); + $img->Line($xt,$yt1,$xt,$yt2); + $img->Line($xt-$this->errwidth,$yt1,$xt+$this->errwidth,$yt1); + $img->Line($xt-$this->errwidth,$yt2,$xt+$this->errwidth,$yt2); + } + return true; + } +} // Class + + +//=================================================== +// CLASS ErrorLinePlot +// Description: Combine a line and error plot +// THIS IS A DEPRECATED PLOT TYPE JUST KEPT FOR +// BACKWARD COMPATIBILITY +//=================================================== +class ErrorLinePlot extends ErrorPlot { + public $line=null; + //--------------- + // CONSTRUCTOR + function __construct($datay,$datax=false) { + parent::__construct($datay,$datax); + // Calculate line coordinates as the average of the error limits + $n = count($datay); + for($i=0; $i < $n; $i+=2 ) { + $ly[]=($datay[$i]+$datay[$i+1])/2; + } + $this->line=new LinePlot($ly,$datax); + } + + //--------------- + // PUBLIC METHODS + function Legend($graph) { + if( $this->legend != "" ) + $graph->legend->Add($this->legend,$this->color); + $this->line->Legend($graph); + } + + function Stroke($img,$xscale,$yscale) { + parent::Stroke($img,$xscale,$yscale); + $this->line->Stroke($img,$xscale,$yscale); + } +} // Class + + +//=================================================== +// CLASS LineErrorPlot +// Description: Combine a line and error plot +//=================================================== +class LineErrorPlot extends ErrorPlot { + public $line=null; + //--------------- + // CONSTRUCTOR + // Data is (val, errdeltamin, errdeltamax) + function __construct($datay,$datax=false) { + $ly=array(); $ey=array(); + $n = count($datay); + if( $n % 3 != 0 ) { + JpGraphError::RaiseL(4002); + //('Error in input data to LineErrorPlot. Number of data points must be a multiple of 3'); + } + for($i=0; $i < $n; $i+=3 ) { + $ly[]=$datay[$i]; + $ey[]=$datay[$i]+$datay[$i+1]; + $ey[]=$datay[$i]+$datay[$i+2]; + } + parent::__construct($ey,$datax); + $this->line=new LinePlot($ly,$datax); + } + + //--------------- + // PUBLIC METHODS + function Legend($graph) { + if( $this->legend != "" ) + $graph->legend->Add($this->legend,$this->color); + $this->line->Legend($graph); + } + + function Stroke($img,$xscale,$yscale) { + parent::Stroke($img,$xscale,$yscale); + $this->line->Stroke($img,$xscale,$yscale); + } +} // Class + + +/* EOF */ +?> \ No newline at end of file diff --git a/gosa-core/include/jpgraph/jpgraph_flags.php b/gosa-core/include/jpgraph/jpgraph_flags.php new file mode 100644 index 000000000..3bf902ddc --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_flags.php @@ -0,0 +1,376 @@ + 'afgh', + 'Republic of Angola' => 'agla', + 'Republic of Albania' => 'alba', + 'Alderney' => 'alde', + 'Democratic and Popular Republic of Algeria' => 'alge', + 'Territory of American Samoa' => 'amsa', + 'Principality of Andorra' => 'andr', + 'British Overseas Territory of Anguilla' => 'angu', + 'Antarctica' => 'anta', + 'Argentine Republic' => 'arge', + 'League of Arab States' => 'arle', + 'Republic of Armenia' => 'arme', + 'Aruba' => 'arub', + 'Commonwealth of Australia' => 'astl', + 'Republic of Austria' => 'aust', + 'Azerbaijani Republic' => 'azer', + 'Bangladesh' => 'bngl', + 'British Antarctic Territory' => 'bant', + 'Kingdom of Belgium' => 'belg', + 'British Overseas Territory of Bermuda' => 'berm', + 'Commonwealth of the Bahamas' => 'bhms', + 'Kingdom of Bahrain' => 'bhrn', + 'Republic of Belarus' => 'blru', + 'Republic of Bolivia' => 'blva', + 'Belize' => 'blze', + 'Republic of Benin' => 'bnin', + 'Republic of Botswana' => 'bots', + 'Federative Republic of Brazil' => 'braz', + 'Barbados' => 'brbd', + 'British Indian Ocean Territory' => 'brin', + 'Brunei Darussalam' => 'brun', + 'Republic of Burkina' => 'bufa', + 'Republic of Bulgaria' => 'bulg', + 'Republic of Burundi' => 'buru', + 'Overseas Territory of the British Virgin Islands' => 'bvis', + 'Central African Republic' => 'cafr', + 'Kingdom of Cambodia' => 'camb', + 'Republic of Cameroon' => 'came', + 'Dominion of Canada' => 'cana', + 'Caribbean Community' => 'cari', + 'Republic of Cape Verde' => 'cave', + 'Republic of Chad' => 'chad', + 'Republic of Chile' => 'chil', + 'Peoples Republic of China' => 'chin', + 'Territory of Christmas Island' => 'chms', + 'Commonwealth of Independent States' => 'cins', + 'Cook Islands' => 'ckis', + 'Republic of Colombia' => 'clmb', + 'Territory of Cocos Islands' => 'cois', + 'Commonwealth' => 'comn', + 'Union of the Comoros' => 'como', + 'Republic of the Congo' => 'cong', + 'Republic of Costa Rica' => 'corc', + 'Republic of Croatia' => 'croa', + 'Republic of Cuba' => 'cuba', + 'British Overseas Territory of the Cayman Islands' => 'cyis', + 'Republic of Cyprus' => 'cypr', + 'The Czech Republic' => 'czec', + 'Kingdom of Denmark' => 'denm', + 'Republic of Djibouti' => 'djib', + 'Commonwealth of Dominica' => 'domn', + 'Dominican Republic' => 'dore', + 'Republic of Ecuador' => 'ecua', + 'Arab Republic of Egypt' => 'egyp', + 'Republic of El Salvador' => 'elsa', + 'England' => 'engl', + 'Republic of Equatorial Guinea' => 'eqgu', + 'State of Eritrea' => 'erit', + 'Republic of Estonia' => 'estn', + 'Ethiopia' => 'ethp', + 'European Union' => 'euun', + 'British Overseas Territory of the Falkland Islands' => 'fais', + 'International Federation of Vexillological Associations' => 'fiav', + 'Republic of Fiji' => 'fiji', + 'Republic of Finland' => 'finl', + 'Territory of French Polynesia' => 'fpol', + 'French Republic' => 'fran', + 'Overseas Department of French Guiana' => 'frgu', + 'Gabonese Republic' => 'gabn', + 'Republic of the Gambia' => 'gamb', + 'Republic of Georgia' => 'geor', + 'Federal Republic of Germany' => 'germ', + 'Republic of Ghana' => 'ghan', + 'Gibraltar' => 'gibr', + 'Hellenic Republic' => 'grec', + 'State of Grenada' => 'gren', + 'Overseas Department of Guadeloupe' => 'guad', + 'Territory of Guam' => 'guam', + 'Republic of Guatemala' => 'guat', + 'The Bailiwick of Guernsey' => 'guer', + 'Republic of Guinea' => 'guin', + 'Republic of Haiti' => 'hait', + 'Hong Kong Special Administrative Region' => 'hokn', + 'Republic of Honduras' => 'hond', + 'Republic of Hungary' => 'hung', + 'Republic of Iceland' => 'icel', + 'International Committee of the Red Cross' => 'icrc', + 'Republic of India' => 'inda', + 'Republic of Indonesia' => 'indn', + 'Republic of Iraq' => 'iraq', + 'Republic of Ireland' => 'irel', + 'Organization of the Islamic Conference' => 'isco', + 'Isle of Man' => 'isma', + 'State of Israel' => 'isra', + 'Italian Republic' => 'ital', + 'Jamaica' => 'jama', + 'Japan' => 'japa', + 'The Bailiwick of Jersey' => 'jers', + 'Hashemite Kingdom of Jordan' => 'jord', + 'Republic of Kazakhstan' => 'kazk', + 'Republic of Kenya' => 'keny', + 'Republic of Kiribati' => 'kirb', + 'State of Kuwait' => 'kuwa', + 'Kyrgyz Republic' => 'kyrg', + 'Republic of Latvia' => 'latv', + 'Lebanese Republic' => 'leba', + 'Kingdom of Lesotho' => 'lest', + 'Republic of Liberia' => 'libe', + 'Principality of Liechtenstein' => 'liec', + 'Republic of Lithuania' => 'lith', + 'Grand Duchy of Luxembourg' => 'luxe', + 'Macao Special Administrative Region' => 'maca', + 'Republic of Macedonia' => 'mace', + 'Republic of Madagascar' => 'mada', + 'Republic of the Marshall Islands' => 'mais', + 'Republic of Mali' => 'mali', + 'Federation of Malaysia' => 'mals', + 'Republic of Malta' => 'malt', + 'Republic of Malawi' => 'malw', + 'Overseas Department of Martinique' => 'mart', + 'Islamic Republic of Mauritania' => 'maur', + 'Territorial Collectivity of Mayotte' => 'mayt', + 'United Mexican States' => 'mexc', + 'Federated States of Micronesia' => 'micr', + 'Midway Islands' => 'miis', + 'Republic of Moldova' => 'mold', + 'Principality of Monaco' => 'mona', + 'Republic of Mongolia' => 'mong', + 'British Overseas Territory of Montserrat' => 'mont', + 'Kingdom of Morocco' => 'morc', + 'Republic of Mozambique' => 'moza', + 'Republic of Mauritius' => 'mrts', + 'Union of Myanmar' => 'myan', + 'Republic of Namibia' => 'namb', + 'North Atlantic Treaty Organization' => 'nato', + 'Republic of Nauru' => 'naur', + 'Turkish Republic of Northern Cyprus' => 'ncyp', + 'Netherlands Antilles' => 'nean', + 'Kingdom of Nepal' => 'nepa', + 'Kingdom of the Netherlands' => 'neth', + 'Territory of Norfolk Island' => 'nfis', + 'Federal Republic of Nigeria' => 'ngra', + 'Republic of Nicaragua' => 'nica', + 'Republic of Niger' => 'nigr', + 'Niue' => 'niue', + 'Commonwealth of the Northern Mariana Islands' => 'nmar', + 'Province of Northern Ireland' => 'noir', + 'Nordic Council' => 'nord', + 'Kingdom of Norway' => 'norw', + 'Territory of New Caledonia and Dependencies' => 'nwca', + 'New Zealand' => 'nwze', + 'Organization of American States' => 'oast', + 'Organization of African Unity' => 'oaun', + 'International Olympic Committee' => 'olym', + 'Sultanate of Oman' => 'oman', + 'Islamic Republic of Pakistan' => 'paks', + 'Republic of Palau' => 'pala', + 'Independent State of Papua New Guinea' => 'pang', + 'Republic of Paraguay' => 'para', + 'Republic of Peru' => 'peru', + 'Republic of the Philippines' => 'phil', + 'British Overseas Territory of the Pitcairn Islands' => 'piis', + 'Republic of Poland' => 'pola', + 'Republic of Portugal' => 'port', + 'Commonwealth of Puerto Rico' => 'purc', + 'State of Qatar' => 'qata', + 'Russian Federation' => 'russ', + 'Romania' => 'rmna', + 'Republic of Rwanda' => 'rwan', + 'Kingdom of Saudi Arabia' => 'saar', + 'Republic of San Marino' => 'sama', + 'Nordic Sami Conference' => 'sami', + 'Sark' => 'sark', + 'Scotland' => 'scot', + 'Principality of Seborga' => 'sebo', + 'Republic of Serbia' => 'serb', + 'Republic of Sierra Leone' => 'sile', + 'Republic of Singapore' => 'sing', + 'Republic of Korea' => 'skor', + 'Republic of Slovenia' => 'slva', + 'Somali Republic' => 'smla', + 'Republic of Somaliland' => 'smld', + 'Republic of South Africa' => 'soaf', + 'Solomon Islands' => 'sois', + 'Kingdom of Spain' => 'span', + 'Secretariat of the Pacific Community' => 'spco', + 'Democratic Socialist Republic of Sri Lanka' => 'srla', + 'Saint Lucia' => 'stlu', + 'Republic of the Sudan' => 'suda', + 'Republic of Suriname' => 'surn', + 'Slovak Republic' => 'svka', + 'Kingdom of Sweden' => 'swdn', + 'Swiss Confederation' => 'swit', + 'Syrian Arab Republic' => 'syra', + 'Kingdom of Swaziland' => 'szld', + 'Republic of China' => 'taiw', + 'Taiwan' => 'taiw', + 'Republic of Tajikistan' => 'tajk', + 'United Republic of Tanzania' => 'tanz', + 'Kingdom of Thailand' => 'thal', + 'Autonomous Region of Tibet' => 'tibe', + 'Turkmenistan' => 'tkst', + 'Togolese Republic' => 'togo', + 'Tokelau' => 'toke', + 'Kingdom of Tonga' => 'tong', + 'Tristan da Cunha' => 'trdc', + 'Tromelin' => 'tris', + 'Republic of Tunisia' => 'tuns', + 'Republic of Turkey' => 'turk', + 'Tuvalu' => 'tuva', + 'United Arab Emirates' => 'uaem', + 'Republic of Uganda' => 'ugan', + 'Ukraine' => 'ukrn', + 'United Kingdom of Great Britain' => 'unkg', + 'United Nations' => 'unna', + 'United States of America' => 'unst', + 'Oriental Republic of Uruguay' => 'urgy', + 'Virgin Islands of the United States' => 'usvs', + 'Republic of Uzbekistan' => 'uzbk', + 'State of the Vatican City' => 'vacy', + 'Republic of Vanuatu' => 'vant', + 'Bolivarian Republic of Venezuela' => 'venz', + 'Republic of Yemen' => 'yemn', + 'Democratic Republic of Congo' => 'zare', + 'Republic of Zimbabwe' => 'zbwe' ) ; + + + private $iFlagCount = -1; + private $iFlagSetMap = array( + FLAGSIZE1 => 'flags_thumb35x35', + FLAGSIZE2 => 'flags_thumb60x60', + FLAGSIZE3 => 'flags_thumb100x100', + FLAGSIZE4 => 'flags' + ); + + private $iFlagData ; + private $iOrdIdx=array(); + + function FlagImages($aSize=FLAGSIZE1) { + switch($aSize) { + case FLAGSIZE1 : + case FLAGSIZE2 : + case FLAGSIZE3 : + case FLAGSIZE4 : + $file = dirname(__FILE__).'/'.$this->iFlagSetMap[$aSize].'.dat'; + $fp = fopen($file,'rb'); + $rawdata = fread($fp,filesize($file)); + $this->iFlagData = unserialize($rawdata); + break; + default: + JpGraphError::RaiseL(5001,$aSize); + //('Unknown flag size. ('.$aSize.')'); + } + $this->iFlagCount = count($this->iCountryNameMap); + } + + function GetNum() { + return $this->iFlagCount; + } + + function GetImgByName($aName,&$outFullName) { + $idx = $this->GetIdxByName($aName,$outFullName); + return $this->GetImgByIdx($idx); + } + + function GetImgByIdx($aIdx) { + if( array_key_exists($aIdx,$this->iFlagData) ) { + $d = $this->iFlagData[$aIdx][1]; + return Image::CreateFromString($d); + } + else { + JpGraphError::RaiseL(5002,$aIdx); + //("Flag index \"�$aIdx\" does not exist."); + } + } + + function GetIdxByOrdinal($aOrd,&$outFullName) { + $aOrd--; + $n = count($this->iOrdIdx); + if( $n == 0 ) { + reset($this->iCountryNameMap); + $this->iOrdIdx=array(); + $i=0; + while( list($key,$val) = each($this->iCountryNameMap) ) { + $this->iOrdIdx[$i++] = array($val,$key); + } + $tmp=$this->iOrdIdx[$aOrd]; + $outFullName = $tmp[1]; + return $tmp[0]; + + } + elseif( $aOrd >= 0 && $aOrd < $n ) { + $tmp=$this->iOrdIdx[$aOrd]; + $outFullName = $tmp[1]; + return $tmp[0]; + } + else { + JpGraphError::RaiseL(5003,$aOrd); + //('Invalid ordinal number specified for flag index.'); + } + } + + function GetIdxByName($aName,&$outFullName) { + + if( is_integer($aName) ) { + $idx = $this->GetIdxByOrdinal($aName,$outFullName); + return $idx; + } + + $found=false; + $aName = strtolower($aName); + $nlen = strlen($aName); + reset($this->iCountryNameMap); + // Start by trying to match exact index name + while( list($key,$val) = each($this->iCountryNameMap) ) { + if( $nlen == strlen($val) && $val == $aName ) { + $found=true; + break; + } + } + if( !$found ) { + reset($this->iCountryNameMap); + // If the exact index doesn't work try a (partial) full name + while( list($key,$val) = each($this->iCountryNameMap) ) { + if( strpos(strtolower($key), $aName) !== false ) { + $found=true; + break; + } + } + } + if( $found ) { + $outFullName = $key; + return $val; + } + else { + JpGraphError::RaiseL(5004,$aName); + //("The (partial) country name \"$aName\" does not have a cooresponding flag image. The flag may still exist but under another name, e.g. insted of \"usa\" try \"united states\"."); + } + } +} + + + + +?> \ No newline at end of file diff --git a/gosa-core/include/jpgraph/jpgraph_gantt.php b/gosa-core/include/jpgraph/jpgraph_gantt.php new file mode 100644 index 000000000..b8f0e5fc9 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_gantt.php @@ -0,0 +1,3955 @@ +vgrid = new LineProperty(); + } + + function Hide($aF=true) { + $this->iShow=!$aF; + } + + function Show($aF=true) { + $this->iShow=$aF; + } + + // Specify font + function SetFont($aFFamily,$aFStyle=FS_NORMAL,$aFSize=10) { + $this->iFFamily = $aFFamily; + $this->iFStyle = $aFStyle; + $this->iFSize = $aFSize; + } + + function SetStyle($aStyle) { + $this->iStyle = $aStyle; + } + + function SetColumnMargin($aLeft,$aRight) { + $this->iLeftColMargin = $aLeft; + $this->iRightColMargin = $aRight; + } + + function SetFontColor($aFontColor) { + $this->iFontColor = $aFontColor; + } + + function SetColor($aColor) { + $this->iColor = $aColor; + } + + function SetBackgroundColor($aColor) { + $this->iBackgroundColor = $aColor; + } + + function SetColTitles($aTitles,$aWidth=null) { + $this->iTitles = $aTitles; + $this->iWidth = $aWidth; + } + + function SetMinColWidth($aWidths) { + $n = min(count($this->iTitles),count($aWidths)); + for($i=0; $i < $n; ++$i ) { + if( !empty($aWidths[$i]) ) { + if( empty($this->iWidth[$i]) ) { + $this->iWidth[$i] = $aWidths[$i]; + } + else { + $this->iWidth[$i] = max($this->iWidth[$i],$aWidths[$i]); + } + } + } + } + + function GetWidth($aImg) { + $txt = new TextProperty(); + $txt->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize); + $n = count($this->iTitles) ; + $rm=$this->iRightColMargin; + $w = 0; + for($h=0, $i=0; $i < $n; ++$i ) { + $w += $this->iLeftColMargin; + $txt->Set($this->iTitles[$i]); + if( !empty($this->iWidth[$i]) ) { + $w1 = max($txt->GetWidth($aImg)+$rm,$this->iWidth[$i]); + } + else { + $w1 = $txt->GetWidth($aImg)+$rm; + } + $this->iWidth[$i] = $w1; + $w += $w1; + $h = max($h,$txt->GetHeight($aImg)); + } + $this->iHeight = $h+$this->iTopHeaderMargin; + $txt=''; + return $w; + } + + function GetColStart($aImg,&$aStart,$aAddLeftMargin=false) { + $n = count($this->iTitles) ; + $adj = $aAddLeftMargin ? $this->iLeftColMargin : 0; + $aStart=array($aImg->left_margin+$adj); + for( $i=1; $i < $n; ++$i ) { + $aStart[$i] = $aStart[$i-1]+$this->iLeftColMargin+$this->iWidth[$i-1]; + } + } + + // Adjust headers left, right or centered + function SetHeaderAlign($aAlign) { + $this->iHeaderAlign=$aAlign; + } + + function Stroke($aImg,$aXLeft,$aYTop,$aXRight,$aYBottom,$aUseTextHeight=false) { + + if( !$this->iShow ) return; + + $txt = new TextProperty(); + $txt->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize); + $txt->SetColor($this->iFontColor); + $txt->SetAlign($this->iHeaderAlign,'top'); + $n=count($this->iTitles); + + if( $n == 0 ) + return; + + $x = $aXLeft; + $h = $this->iHeight; + $yTop = $aUseTextHeight ? $aYBottom-$h-$this->iTopColMargin-$this->iBottomColMargin : $aYTop ; + + if( $h < 0 ) { + JpGraphError::RaiseL(6001); + //('Internal error. Height for ActivityTitles is < 0'); + } + + $aImg->SetLineWeight(1); + // Set background color + $aImg->SetColor($this->iBackgroundColor); + $aImg->FilledRectangle($aXLeft,$yTop,$aXRight,$aYBottom-1); + + if( $this->iStyle == 1 ) { + // Make a 3D effect + $aImg->SetColor('white'); + $aImg->Line($aXLeft,$yTop+1,$aXRight,$yTop+1); + } + + for($i=0; $i < $n; ++$i ) { + if( $this->iStyle == 1 ) { + // Make a 3D effect + $aImg->SetColor('white'); + $aImg->Line($x+1,$yTop,$x+1,$aYBottom); + } + $x += $this->iLeftColMargin; + $txt->Set($this->iTitles[$i]); + + // Adjust the text anchor position according to the choosen alignment + $xp = $x; + if( $this->iHeaderAlign == 'center' ) { + $xp = (($x-$this->iLeftColMargin)+($x+$this->iWidth[$i]))/2; + } + elseif( $this->iHeaderAlign == 'right' ) { + $xp = $x +$this->iWidth[$i]-$this->iRightColMargin; + } + + $txt->Stroke($aImg,$xp,$yTop+$this->iTopHeaderMargin); + $x += $this->iWidth[$i]; + if( $i < $n-1 ) { + $aImg->SetColor($this->iColor); + $aImg->Line($x,$yTop,$x,$aYBottom); + } + } + + $aImg->SetColor($this->iColor); + $aImg->Line($aXLeft,$yTop, $aXRight,$yTop); + + // Stroke vertical column dividers + $cols=array(); + $this->GetColStart($aImg,$cols); + $n=count($cols); + for( $i=1; $i < $n; ++$i ) { + $this->vgrid->Stroke($aImg,$cols[$i],$aYBottom,$cols[$i], + $aImg->height - $aImg->bottom_margin); + } + } +} + + +//=================================================== +// CLASS GanttGraph +// Description: Main class to handle gantt graphs +//=================================================== +class GanttGraph extends Graph { + public $scale; // Public accessible + public $hgrid=null; + private $iObj=array(); // Gantt objects + private $iLabelHMarginFactor=0.2; // 10% margin on each side of the labels + private $iLabelVMarginFactor=0.4; // 40% margin on top and bottom of label + private $iLayout=GANTT_FROMTOP; // Could also be GANTT_EVEN + private $iSimpleFont = FF_FONT1,$iSimpleFontSize=11; + private $iSimpleStyle=GANTT_RDIAG,$iSimpleColor='yellow',$iSimpleBkgColor='red'; + private $iSimpleProgressBkgColor='gray',$iSimpleProgressColor='darkgreen'; + private $iSimpleProgressStyle=GANTT_SOLID; + private $iZoomFactor = 1.0; + //--------------- + // CONSTRUCTOR + // Create a new gantt graph + function __construct($aWidth=0,$aHeight=0,$aCachedName="",$aTimeOut=0,$aInline=true) { + + // Backward compatibility + if( $aWidth == -1 ) $aWidth=0; + if( $aHeight == -1 ) $aHeight=0; + + if( $aWidth< 0 || $aHeight < 0 ) { + JpgraphError::RaiseL(6002); + //("You can't specify negative sizes for Gantt graph dimensions. Use 0 to indicate that you want the library to automatically determine a dimension."); + } + parent::__construct($aWidth,$aHeight,$aCachedName,$aTimeOut,$aInline); + $this->scale = new GanttScale($this->img); + + // Default margins + $this->img->SetMargin(15,17,25,15); + + $this->hgrid = new HorizontalGridLine(); + + $this->scale->ShowHeaders(GANTT_HWEEK|GANTT_HDAY); + $this->SetBox(); + } + + //--------------- + // PUBLIC METHODS + + // + + function SetSimpleFont($aFont,$aSize) { + $this->iSimpleFont = $aFont; + $this->iSimpleFontSize = $aSize; + } + + function SetSimpleStyle($aBand,$aColor,$aBkgColor) { + $this->iSimpleStyle = $aBand; + $this->iSimpleColor = $aColor; + $this->iSimpleBkgColor = $aBkgColor; + } + + // A utility function to help create basic Gantt charts + function CreateSimple($data,$constrains=array(),$progress=array()) { + $num = count($data); + for( $i=0; $i < $num; ++$i) { + switch( $data[$i][1] ) { + case ACTYPE_GROUP: + // Create a slightly smaller height bar since the + // "wings" at the end will make it look taller + $a = new GanttBar($data[$i][0],$data[$i][2],$data[$i][3],$data[$i][4],'',8); + $a->title->SetFont($this->iSimpleFont,FS_BOLD,$this->iSimpleFontSize); + $a->rightMark->Show(); + $a->rightMark->SetType(MARK_RIGHTTRIANGLE); + $a->rightMark->SetWidth(8); + $a->rightMark->SetColor('black'); + $a->rightMark->SetFillColor('black'); + + $a->leftMark->Show(); + $a->leftMark->SetType(MARK_LEFTTRIANGLE); + $a->leftMark->SetWidth(8); + $a->leftMark->SetColor('black'); + $a->leftMark->SetFillColor('black'); + + $a->SetPattern(BAND_SOLID,'black'); + $csimpos = 6; + break; + + case ACTYPE_NORMAL: + $a = new GanttBar($data[$i][0],$data[$i][2],$data[$i][3],$data[$i][4],'',10); + $a->title->SetFont($this->iSimpleFont,FS_NORMAL,$this->iSimpleFontSize); + $a->SetPattern($this->iSimpleStyle,$this->iSimpleColor); + $a->SetFillColor($this->iSimpleBkgColor); + // Check if this activity should have a constrain line + $n = count($constrains); + for( $j=0; $j < $n; ++$j ) { + if( empty($constrains[$j]) || (count($constrains[$j]) != 3) ) { + JpGraphError::RaiseL(6003,$j); + //("Invalid format for Constrain parameter at index=$j in CreateSimple(). Parameter must start with index 0 and contain arrays of (Row,Constrain-To,Constrain-Type)"); + } + if( $constrains[$j][0]==$data[$i][0] ) { + $a->SetConstrain($constrains[$j][1],$constrains[$j][2],'black',ARROW_S2,ARROWT_SOLID); + } + } + + // Check if this activity have a progress bar + $n = count($progress); + for( $j=0; $j < $n; ++$j ) { + + if( empty($progress[$j]) || (count($progress[$j]) != 2) ) { + JpGraphError::RaiseL(6004,$j); + //("Invalid format for Progress parameter at index=$j in CreateSimple(). Parameter must start with index 0 and contain arrays of (Row,Progress)"); + } + if( $progress[$j][0]==$data[$i][0] ) { + $a->progress->Set($progress[$j][1]); + $a->progress->SetPattern($this->iSimpleProgressStyle, + $this->iSimpleProgressColor); + $a->progress->SetFillColor($this->iSimpleProgressBkgColor); + //$a->progress->SetPattern($progress[$j][2],$progress[$j][3]); + break; + } + } + $csimpos = 6; + break; + + case ACTYPE_MILESTONE: + $a = new MileStone($data[$i][0],$data[$i][2],$data[$i][3]); + $a->title->SetFont($this->iSimpleFont,FS_NORMAL,$this->iSimpleFontSize); + $a->caption->SetFont($this->iSimpleFont,FS_NORMAL,$this->iSimpleFontSize); + $csimpos = 5; + break; + default: + die('Unknown activity type'); + break; + } + + // Setup caption + $a->caption->Set($data[$i][$csimpos-1]); + + // Check if this activity should have a CSIM target�? + if( !empty($data[$i][$csimpos]) ) { + $a->SetCSIMTarget($data[$i][$csimpos]); + $a->SetCSIMAlt($data[$i][$csimpos+1]); + } + if( !empty($data[$i][$csimpos+2]) ) { + $a->title->SetCSIMTarget($data[$i][$csimpos+2]); + $a->title->SetCSIMAlt($data[$i][$csimpos+3]); + } + + $this->Add($a); + } + } + + // Set user specified scale zoom factor when auto sizing is used + function SetZoomFactor($aZoom) { + $this->iZoomFactor = $aZoom; + } + + + // Set what headers should be shown + function ShowHeaders($aFlg) { + $this->scale->ShowHeaders($aFlg); + } + + // Specify the fraction of the font height that should be added + // as vertical margin + function SetLabelVMarginFactor($aVal) { + $this->iLabelVMarginFactor = $aVal; + } + + // Synonym to the method above + function SetVMarginFactor($aVal) { + $this->iLabelVMarginFactor = $aVal; + } + + + // Add a new Gantt object + function Add($aObject) { + if( is_array($aObject) && count($aObject) > 0 ) { + $cl = $aObject[0]; + if( class_exists('IconPlot',false) && ($cl instanceof IconPlot) ) { + $this->AddIcon($aObject); + } + elseif( class_exists('Text',false) && ($cl instanceof Text) ) { + $this->AddText($aObject); + } + else { + $n = count($aObject); + for($i=0; $i < $n; ++$i) + $this->iObj[] = $aObject[$i]; + } + } + else { + if( class_exists('IconPlot',false) && ($aObject instanceof IconPlot) ) { + $this->AddIcon($aObject); + } + elseif( class_exists('Text',false) && ($aObject instanceof Text) ) { + $this->AddText($aObject); + } + else { + $this->iObj[] = $aObject; + } + } + } + + function StrokeTexts() { + // Stroke any user added text objects + if( $this->texts != null ) { + $n = count($this->texts); + for($i=0; $i < $n; ++$i) { + if( $this->texts[$i]->iScalePosX !== null && $this->texts[$i]->iScalePosY !== null ) { + $x = $this->scale->TranslateDate($this->texts[$i]->iScalePosX); + $y = $this->scale->TranslateVertPos($this->texts[$i]->iScalePosY); + $y -= $this->scale->GetVertSpacing()/2; + } + else { + $x = $y = null; + } + $this->texts[$i]->Stroke($this->img,$x,$y); + } + } + } + + // Override inherit method from Graph and give a warning message + function SetScale($aAxisType,$aYMin=1,$aYMax=1,$aXMin=1,$aXMax=1) { + JpGraphError::RaiseL(6005); + //("SetScale() is not meaningfull with Gantt charts."); + } + + // Specify the date range for Gantt graphs (if this is not set it will be + // automtically determined from the input data) + function SetDateRange($aStart,$aEnd) { + // Adjust the start and end so that the indicate the + // begining and end of respective start and end days + if( strpos($aStart,':') === false ) + $aStart = date('Y-m-d 00:00',strtotime($aStart)); + if( strpos($aEnd,':') === false ) + $aEnd = date('Y-m-d 23:59',strtotime($aEnd)); + $this->scale->SetRange($aStart,$aEnd); + } + + // Get the maximum width of the activity titles columns for the bars + // The name is lightly misleading since we from now on can have + // multiple columns in the label section. When this was first written + // it only supported a single label, hence the name. + function GetMaxLabelWidth() { + $m=10; + if( $this->iObj != null ) { + $marg = $this->scale->actinfo->iLeftColMargin+$this->scale->actinfo->iRightColMargin; + $n = count($this->iObj); + for($i=0; $i < $n; ++$i) { + if( !empty($this->iObj[$i]->title) ) { + if( $this->iObj[$i]->title->HasTabs() ) { + list($tot,$w) = $this->iObj[$i]->title->GetWidth($this->img,true); + $m=max($m,$tot); + } + else + $m=max($m,$this->iObj[$i]->title->GetWidth($this->img)); + } + } + } + return $m; + } + + // Get the maximum height of the titles for the bars + function GetMaxLabelHeight() { + $m=10; + if( $this->iObj != null ) { + $n = count($this->iObj); + // We can not include the title of GnttVLine since that title is stroked at the bottom + // of the Gantt bar and not in the activity title columns + for($i=0; $i < $n; ++$i) { + if( !empty($this->iObj[$i]->title) && !($this->iObj[$i] instanceof GanttVLine) ) { + $m=max($m,$this->iObj[$i]->title->GetHeight($this->img)); + } + } + } + return $m; + } + + function GetMaxBarAbsHeight() { + $m=0; + if( $this->iObj != null ) { + $m = $this->iObj[0]->GetAbsHeight($this->img); + $n = count($this->iObj); + for($i=1; $i < $n; ++$i) { + $m=max($m,$this->iObj[$i]->GetAbsHeight($this->img)); + } + } + return $m; + } + + // Get the maximum used line number (vertical position) for bars + function GetBarMaxLineNumber() { + $m=1; + if( $this->iObj != null ) { + $m = $this->iObj[0]->GetLineNbr(); + $n = count($this->iObj); + for($i=1; $i < $n; ++$i) { + $m=max($m,$this->iObj[$i]->GetLineNbr()); + } + } + return $m; + } + + // Get the minumum and maximum used dates for all bars + function GetBarMinMax() { + $start = 0 ; + $n = count($this->iObj); + while( $start < $n && $this->iObj[$start]->GetMaxDate() === false ) + ++$start; + if( $start >= $n ) { + JpgraphError::RaiseL(6006); + //('Cannot autoscale Gantt chart. No dated activities exist. [GetBarMinMax() start >= n]'); + } + + $max=$this->scale->NormalizeDate($this->iObj[$start]->GetMaxDate()); + $min=$this->scale->NormalizeDate($this->iObj[$start]->GetMinDate()); + + for($i=$start+1; $i < $n; ++$i) { + $rmax = $this->scale->NormalizeDate($this->iObj[$i]->GetMaxDate()); + if( $rmax != false ) + $max=Max($max,$rmax); + $rmin = $this->scale->NormalizeDate($this->iObj[$i]->GetMinDate()); + if( $rmin != false ) + $min=Min($min,$rmin); + } + $minDate = date("Y-m-d",$min); + $min = strtotime($minDate); + $maxDate = date("Y-m-d 23:59",$max); + $max = strtotime($maxDate); + return array($min,$max); + } + + // Create a new auto sized canvas if the user hasn't specified a size + // The size is determined by what scale the user has choosen and hence + // the minimum width needed to display the headers. Some margins are + // also added to make it better looking. + function AutoSize() { + + if( $this->img->img == null ) { + // The predefined left, right, top, bottom margins. + // Note that the top margin might incease depending on + // the title. + $hadj = $vadj = 0; + if( $this->doshadow ) { + $hadj = $this->shadow_width; + $vadj = $this->shadow_width+5; + } + + $lm = $this->img->left_margin; + $rm = $this->img->right_margin +$hadj; + $rm += 2 ; + $tm = $this->img->top_margin; + $bm = $this->img->bottom_margin + $vadj; + $bm += 2; + + // If there are any added GanttVLine we must make sure that the + // bottom margin is wide enough to hold a title. + $n = count($this->iObj); + for($i=0; $i < $n; ++$i) { + if( $this->iObj[$i] instanceof GanttVLine ) { + $bm = max($bm,$this->iObj[$i]->title->GetHeight($this->img)+10); + } + } + + // First find out the height + $n=$this->GetBarMaxLineNumber()+1; + $m=max($this->GetMaxLabelHeight(),$this->GetMaxBarAbsHeight()); + $height=$n*((1+$this->iLabelVMarginFactor)*$m); + + // Add the height of the scale titles + $h=$this->scale->GetHeaderHeight(); + $height += $h; + + // Calculate the top margin needed for title and subtitle + if( $this->title->t != "" ) { + $tm += $this->title->GetFontHeight($this->img); + } + if( $this->subtitle->t != "" ) { + $tm += $this->subtitle->GetFontHeight($this->img); + } + + // ...and then take the bottom and top plot margins into account + $height += $tm + $bm + $this->scale->iTopPlotMargin + $this->scale->iBottomPlotMargin; + // Now find the minimum width for the chart required + + // If day scale or smaller is shown then we use the day font width + // as the base size unit. + // If only weeks or above is displayed we use a modified unit to + // get a smaller image. + if( $this->scale->IsDisplayHour() || $this->scale->IsDisplayMinute() ) { + // Add 2 pixel margin on each side + $fw=$this->scale->day->GetFontWidth($this->img)+4; + } + elseif( $this->scale->IsDisplayWeek() ) { + $fw = 8; + } + elseif( $this->scale->IsDisplayMonth() ) { + $fw = 4; + } + else { + $fw = 2; + } + + $nd=$this->scale->GetNumberOfDays(); + + if( $this->scale->IsDisplayDay() ) { + // If the days are displayed we also need to figure out + // how much space each day's title will require. + switch( $this->scale->day->iStyle ) { + case DAYSTYLE_LONG : + $txt = "Monday"; + break; + case DAYSTYLE_LONGDAYDATE1 : + $txt = "Monday 23 Jun"; + break; + case DAYSTYLE_LONGDAYDATE2 : + $txt = "Monday 23 Jun 2003"; + break; + case DAYSTYLE_SHORT : + $txt = "Mon"; + break; + case DAYSTYLE_SHORTDAYDATE1 : + $txt = "Mon 23/6"; + break; + case DAYSTYLE_SHORTDAYDATE2 : + $txt = "Mon 23 Jun"; + break; + case DAYSTYLE_SHORTDAYDATE3 : + $txt = "Mon 23"; + break; + case DAYSTYLE_SHORTDATE1 : + $txt = "23/6"; + break; + case DAYSTYLE_SHORTDATE2 : + $txt = "23 Jun"; + break; + case DAYSTYLE_SHORTDATE3 : + $txt = "Mon 23"; + break; + case DAYSTYLE_SHORTDATE4 : + $txt = "88"; + break; + case DAYSTYLE_CUSTOM : + $txt = date($this->scale->day->iLabelFormStr,strtotime('2003-12-20 18:00')); + break; + case DAYSTYLE_ONELETTER : + default: + $txt = "M"; + break; + } + $fw = $this->scale->day->GetStrWidth($this->img,$txt)+6; + } + + // If we have hours enabled we must make sure that each day has enough + // space to fit the number of hours to be displayed. + if( $this->scale->IsDisplayHour() ) { + // Depending on what format the user has choose we need different amount + // of space. We therefore create a typical string for the choosen format + // and determine the length of that string. + switch( $this->scale->hour->iStyle ) { + case HOURSTYLE_HMAMPM: + $txt = '12:00pm'; + break; + case HOURSTYLE_H24: + // 13 + $txt = '24'; + break; + case HOURSTYLE_HAMPM: + $txt = '12pm'; + break; + case HOURSTYLE_CUSTOM: + $txt = date($this->scale->hour->iLabelFormStr,strtotime('2003-12-20 18:00')); + break; + case HOURSTYLE_HM24: + default: + $txt = '24:00'; + break; + } + + $hfw = $this->scale->hour->GetStrWidth($this->img,$txt)+6; + $mw = $hfw; + if( $this->scale->IsDisplayMinute() ) { + // Depending on what format the user has choose we need different amount + // of space. We therefore create a typical string for the choosen format + // and determine the length of that string. + switch( $this->scale->minute->iStyle ) { + case HOURSTYLE_CUSTOM: + $txt2 = date($this->scale->minute->iLabelFormStr,strtotime('2005-05-15 18:55')); + break; + case MINUTESTYLE_MM: + default: + $txt2 = '15'; + break; + } + + $mfw = $this->scale->minute->GetStrWidth($this->img,$txt2)+6; + $n2 = ceil(60 / $this->scale->minute->GetIntervall() ); + $mw = $n2 * $mfw; + } + $hfw = $hfw < $mw ? $mw : $hfw ; + $n = ceil(24*60 / $this->scale->TimeToMinutes($this->scale->hour->GetIntervall()) ); + $hw = $n * $hfw; + $fw = $fw < $hw ? $hw : $fw ; + } + + // We need to repeat this code block here as well. + // THIS iS NOT A MISTAKE ! + // We really need it since we need to adjust for minutes both in the case + // where hour scale is shown and when it is not shown. + + if( $this->scale->IsDisplayMinute() ) { + // Depending on what format the user has choose we need different amount + // of space. We therefore create a typical string for the choosen format + // and determine the length of that string. + switch( $this->scale->minute->iStyle ) { + case HOURSTYLE_CUSTOM: + $txt = date($this->scale->minute->iLabelFormStr,strtotime('2005-05-15 18:55')); + break; + case MINUTESTYLE_MM: + default: + $txt = '15'; + break; + } + + $mfw = $this->scale->minute->GetStrWidth($this->img,$txt)+6; + $n = ceil(60 / $this->scale->TimeToMinutes($this->scale->minute->GetIntervall()) ); + $mw = $n * $mfw; + $fw = $fw < $mw ? $mw : $fw ; + } + + // If we display week we must make sure that 7*$fw is enough + // to fit up to 10 characters of the week font (if the week is enabled) + if( $this->scale->IsDisplayWeek() ) { + // Depending on what format the user has choose we need different amount + // of space + $fsw = strlen($this->scale->week->iLabelFormStr); + if( $this->scale->week->iStyle==WEEKSTYLE_FIRSTDAY2WNBR ) { + $fsw += 8; + } + elseif( $this->scale->week->iStyle==WEEKSTYLE_FIRSTDAYWNBR ) { + $fsw += 7; + } + else { + $fsw += 4; + } + + $ww = $fsw*$this->scale->week->GetFontWidth($this->img); + if( 7*$fw < $ww ) { + $fw = ceil($ww/7); + } + } + + if( !$this->scale->IsDisplayDay() && !$this->scale->IsDisplayHour() && + !( ($this->scale->week->iStyle==WEEKSTYLE_FIRSTDAYWNBR || + $this->scale->week->iStyle==WEEKSTYLE_FIRSTDAY2WNBR) && $this->scale->IsDisplayWeek() ) ) { + // If we don't display the individual days we can shrink the + // scale a little bit. This is a little bit pragmatic at the + // moment and should be re-written to take into account + // a) What scales exactly are shown and + // b) what format do they use so we know how wide we need to + // make each scale text space at minimum. + $fw /= 2; + if( !$this->scale->IsDisplayWeek() ) { + $fw /= 1.8; + } + } + + $cw = $this->GetMaxActInfoColWidth() ; + $this->scale->actinfo->SetMinColWidth($cw); + if( $this->img->width <= 0 ) { + // Now determine the width for the activity titles column + + // Firdst find out the maximum width of each object column + $titlewidth = max(max($this->GetMaxLabelWidth(), + $this->scale->tableTitle->GetWidth($this->img)), + $this->scale->actinfo->GetWidth($this->img)); + + // Add the width of the vertivcal divider line + $titlewidth += $this->scale->divider->iWeight*2; + + // Adjust the width by the user specified zoom factor + $fw *= $this->iZoomFactor; + + // Now get the total width taking + // titlewidth, left and rigt margin, dayfont size + // into account + $width = $titlewidth + $nd*$fw + $lm+$rm; + } + else { + $width = $this->img->width; + } + + $width = round($width); + $height = round($height); + // Make a sanity check on image size + if( $width > MAX_GANTTIMG_SIZE_W || $height > MAX_GANTTIMG_SIZE_H ) { + JpgraphError::RaiseL(6007,$width,$height); + //("Sanity check for automatic Gantt chart size failed. Either the width (=$width) or height (=$height) is larger than MAX_GANTTIMG_SIZE. This could potentially be caused by a wrong date in one of the activities."); + } + $this->img->CreateImgCanvas($width,$height); + $this->img->SetMargin($lm,$rm,$tm,$bm); + } + } + + // Return an array width the maximum width for each activity + // column. This is used when we autosize the columns where we need + // to find out the maximum width of each column. In order to do that we + // must walk through all the objects, sigh... + function GetMaxActInfoColWidth() { + $n = count($this->iObj); + if( $n == 0 ) return; + $w = array(); + $m = $this->scale->actinfo->iLeftColMargin + $this->scale->actinfo->iRightColMargin; + + for( $i=0; $i < $n; ++$i ) { + $tmp = $this->iObj[$i]->title->GetColWidth($this->img,$m); + $nn = count($tmp); + for( $j=0; $j < $nn; ++$j ) { + if( empty($w[$j]) ) + $w[$j] = $tmp[$j]; + else + $w[$j] = max($w[$j],$tmp[$j]); + } + } + return $w; + } + + // Stroke the gantt chart + function Stroke($aStrokeFileName="") { + + // If the filename is the predefined value = '_csim_special_' + // we assume that the call to stroke only needs to do enough + // to correctly generate the CSIM maps. + // We use this variable to skip things we don't strictly need + // to do to generate the image map to improve performance + // a best we can. Therefor you will see a lot of tests !$_csim in the + // code below. + $_csim = ($aStrokeFileName===_CSIM_SPECIALFILE); + + // Should we autoscale dates? + + if( !$this->scale->IsRangeSet() ) { + list($min,$max) = $this->GetBarMinMax(); + $this->scale->SetRange($min,$max); + } + + $this->scale->AdjustStartEndDay(); + + // Check if we should autoscale the image + $this->AutoSize(); + + // Should we start from the top or just spread the bars out even over the + // available height + $this->scale->SetVertLayout($this->iLayout); + if( $this->iLayout == GANTT_FROMTOP ) { + $maxheight=max($this->GetMaxLabelHeight(),$this->GetMaxBarAbsHeight()); + $this->scale->SetVertSpacing($maxheight*(1+$this->iLabelVMarginFactor)); + } + // If it hasn't been set find out the maximum line number + if( $this->scale->iVertLines == -1 ) + $this->scale->iVertLines = $this->GetBarMaxLineNumber()+1; + + $maxwidth=max($this->scale->actinfo->GetWidth($this->img), + max($this->GetMaxLabelWidth(), + $this->scale->tableTitle->GetWidth($this->img))); + + $this->scale->SetLabelWidth($maxwidth+$this->scale->divider->iWeight);//*(1+$this->iLabelHMarginFactor)); + + if( !$_csim ) { + $this->StrokePlotArea(); + if( $this->iIconDepth == DEPTH_BACK ) { + $this->StrokeIcons(); + } + } + + $this->scale->Stroke(); + + if( !$_csim ) { + // Due to a minor off by 1 bug we need to temporarily adjust the margin + $this->img->right_margin--; + $this->StrokePlotBox(); + $this->img->right_margin++; + } + + // Stroke Grid line + $this->hgrid->Stroke($this->img,$this->scale); + + $n = count($this->iObj); + for($i=0; $i < $n; ++$i) { + //$this->iObj[$i]->SetLabelLeftMargin(round($maxwidth*$this->iLabelHMarginFactor/2)); + $this->iObj[$i]->Stroke($this->img,$this->scale); + } + + $this->StrokeTitles(); + + if( !$_csim ) { + $this->StrokeConstrains(); + $this->footer->Stroke($this->img); + + + if( $this->iIconDepth == DEPTH_FRONT) { + $this->StrokeIcons(); + } + + // Stroke all added user texts + $this->StrokeTexts(); + + // Should we do any final image transformation + if( $this->iImgTrans ) { + if( !class_exists('ImgTrans',false) ) { + require_once('jpgraph_imgtrans.php'); + } + + $tform = new ImgTrans($this->img->img); + $this->img->img = $tform->Skew3D($this->iImgTransHorizon,$this->iImgTransSkewDist, + $this->iImgTransDirection,$this->iImgTransHighQ, + $this->iImgTransMinSize,$this->iImgTransFillColor, + $this->iImgTransBorder); + } + + + // If the filename is given as the special "__handle" + // then the image handler is returned and the image is NOT + // streamed back + if( $aStrokeFileName == _IMG_HANDLER ) { + return $this->img->img; + } + else { + // Finally stream the generated picture + $this->cache->PutAndStream($this->img,$this->cache_name,$this->inline, + $aStrokeFileName); + } + } + } + + function StrokeConstrains() { + $n = count($this->iObj); + + // Stroke all constrains + for($i=0; $i < $n; ++$i) { + + // Some gantt objects may not have constraints associated with them + // for example we can add IconPlots which doesn't have this property. + if( empty($this->iObj[$i]->constraints) ) continue; + + $numConstrains = count($this->iObj[$i]->constraints); + + for( $k = 0; $k < $numConstrains; $k++ ) { + $vpos = $this->iObj[$i]->constraints[$k]->iConstrainRow; + if( $vpos >= 0 ) { + $c1 = $this->iObj[$i]->iConstrainPos; + + // Find out which object is on the target row + $targetobj = -1; + for( $j=0; $j < $n && $targetobj == -1; ++$j ) { + if( $this->iObj[$j]->iVPos == $vpos ) { + $targetobj = $j; + } + } + if( $targetobj == -1 ) { + JpGraphError::RaiseL(6008,$this->iObj[$i]->iVPos,$vpos); + //('You have specifed a constrain from row='.$this->iObj[$i]->iVPos.' to row='.$vpos.' which does not have any activity.'); + } + $c2 = $this->iObj[$targetobj]->iConstrainPos; + if( count($c1) == 4 && count($c2 ) == 4) { + switch( $this->iObj[$i]->constraints[$k]->iConstrainType ) { + case CONSTRAIN_ENDSTART: + if( $c1[1] < $c2[1] ) { + $link = new GanttLink($c1[2],$c1[3],$c2[0],$c2[1]); + } + else { + $link = new GanttLink($c1[2],$c1[1],$c2[0],$c2[3]); + } + $link->SetPath(3); + break; + case CONSTRAIN_STARTEND: + if( $c1[1] < $c2[1] ) { + $link = new GanttLink($c1[0],$c1[3],$c2[2],$c2[1]); + } + else { + $link = new GanttLink($c1[0],$c1[1],$c2[2],$c2[3]); + } + $link->SetPath(0); + break; + case CONSTRAIN_ENDEND: + if( $c1[1] < $c2[1] ) { + $link = new GanttLink($c1[2],$c1[3],$c2[2],$c2[1]); + } + else { + $link = new GanttLink($c1[2],$c1[1],$c2[2],$c2[3]); + } + $link->SetPath(1); + break; + case CONSTRAIN_STARTSTART: + if( $c1[1] < $c2[1] ) { + $link = new GanttLink($c1[0],$c1[3],$c2[0],$c2[1]); + } + else { + $link = new GanttLink($c1[0],$c1[1],$c2[0],$c2[3]); + } + $link->SetPath(3); + break; + default: + JpGraphError::RaiseL(6009,$this->iObj[$i]->iVPos,$vpos); + //('Unknown constrain type specified from row='.$this->iObj[$i]->iVPos.' to row='.$vpos); + break; + } + + $link->SetColor($this->iObj[$i]->constraints[$k]->iConstrainColor); + $link->SetArrow($this->iObj[$i]->constraints[$k]->iConstrainArrowSize, + $this->iObj[$i]->constraints[$k]->iConstrainArrowType); + + $link->Stroke($this->img); + } + } + } + } + } + + function GetCSIMAreas() { + if( !$this->iHasStroked ) + $this->Stroke(_CSIM_SPECIALFILE); + + $csim = $this->title->GetCSIMAreas(); + $csim .= $this->subtitle->GetCSIMAreas(); + $csim .= $this->subsubtitle->GetCSIMAreas(); + + $n = count($this->iObj); + for( $i=$n-1; $i >= 0; --$i ) + $csim .= $this->iObj[$i]->GetCSIMArea(); + return $csim; + } +} + +//=================================================== +// CLASS PredefIcons +// Description: Predefined icons for use with Gantt charts +//=================================================== +define('GICON_WARNINGRED',0); +define('GICON_TEXT',1); +define('GICON_ENDCONS',2); +define('GICON_MAIL',3); +define('GICON_STARTCONS',4); +define('GICON_CALC',5); +define('GICON_MAGNIFIER',6); +define('GICON_LOCK',7); +define('GICON_STOP',8); +define('GICON_WARNINGYELLOW',9); +define('GICON_FOLDEROPEN',10); +define('GICON_FOLDER',11); +define('GICON_TEXTIMPORTANT',12); + +class PredefIcons { + private $iBuiltinIcon = null, $iLen = -1 ; + + function GetLen() { + return $this->iLen ; + } + + function GetImg($aIdx) { + if( $aIdx < 0 || $aIdx >= $this->iLen ) { + JpGraphError::RaiseL(6010,$aIdx); + //('Illegal icon index for Gantt builtin icon ['.$aIdx.']'); + } + return Image::CreateFromString(base64_decode($this->iBuiltinIcon[$aIdx][1])); + } + + function __construct() { + //========================================================== + // warning.png + //========================================================== + $this->iBuiltinIcon[0][0]= 1043 ; + $this->iBuiltinIcon[0][1]= + 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsSAAALEgHS3X78AAAA'. + 'B3RJTUUH0wgKFSgilWPhUQAAA6BJREFUeNrtl91rHFUYh5/3zMx+Z5JNUoOamCZNaqTZ6IWIkqRiQWmi1IDetHfeiCiltgXBP8AL'. + '0SIUxf/AvfRSBS9EKILFFqyIH9CEmFZtPqrBJLs7c+b1YneT3WTTbNsUFPLCcAbmzPt73o9zzgzs2Z793231UOdv3w9k9Z2uzOdA'. + '5+2+79yNeL7Hl7hw7oeixRMZ6PJM26W18DNAm/Vh7lR8fqh97NmMF11es1iFpMATqdirwMNA/J4DpIzkr5YsAF1PO6gIMYHRdPwl'. + 'oO2elmB+qH3sm7XozbkgYvy8SzYnZPtcblyM6I+5z3jQ+0vJfgpEu56BfI9vUkbyi2HZd1QJoeWRiAjBd4SDCW8SSAOy6wBHMzF7'. + 'YdV2A+ROuvRPLfHoiSU0EMY/cDAIhxJeGngKaN1VgHyPL7NBxI1K9P4QxBzw3K1zJ/zkG8B9uwaQ7/HNsRZv9kohBGD0o7JqMYS/'. + '/ynPidQw/LrBiPBcS/yFCT95DvB2BWAy4575PaQbQKW+tPd3GCItu2odKI++YxiKu0d26oWmAD7paZU/rLz37VqIijD2YbnzNBBE'. + 'IBHf8K8qjL7vYhCGErEU8CTg3xXAeMp96GrJEqkyXkm9Bhui1xfsunjdGhcYLq+IzjsGmBt5YH/cmJkFq6gIqlon3u4LxdKGuCIo'. + 'Qu41g0E41po+2R33Xt5uz9kRIB2UTle7PnfKrROP1HD4sRjZlq0lzhwoZ6rDNeTi3nEg1si/7FT7kYQbXS6E5E65tA5uRF9tutq0'. + 'K/VwAF+/FbIYWt6+tjQM/AqUms7A4Wy6d7YSfSNxgMmzi0ycWWworio4QJvj4LpuL5BqugTnXzzqJsJwurrlNhJXFaavW67NRw3F'. + 'q+aJcCQVe9fzvJGmAY7/dPH0gi0f64OveGxa+usCuQMeZ0+kt8BVrX+qPO9Bzx0MgqBvs+a2PfDdYIf+WAjXU1ub4tqNaPPzRs8A'. + 'blrli+WVn79cXn0cWKl+tGx7HLc7pu3CSmnfitL+l1UihAhwjFkPQev4K/fSABjBM8JCaFuurJU+rgW41SroA8aNMVNAFtgHJCsn'. + 'XGy/58QVxAC9MccJtZ5kIzNlW440WrJ2ea4YPA9cAooA7i0A/gS+iqLoOpB1HOegqrYB3UBmJrAtQAJwpwPr1Ry92wVlgZsiYlW1'. + 'uX1gU36dymgqYxJIJJNJT1W9QqHgNwFQBGYqo94OwHZQUuPD7ACglSvc+5n5T9m/wfJJX4U9qzEAAAAASUVORK5CYII=' ; + + //========================================================== + // edit.png + //========================================================== + $this->iBuiltinIcon[1][0]= 959 ; + $this->iBuiltinIcon[1][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAFgAWABY9j+ZuwAAAAlwSFlz'. + 'AAALEAAACxABrSO9dQAAAAd0SU1FB9AKDAwbIEXOA6AAAAM8SURBVHicpdRPaBxlHMbx76ZvsmOTmm1dsEqQSIIsEmGVBAQjivEQ'. + 'PAUJngpWsAWlBw8egpQepKwplN4ULEG9CjkEyUFKlSJrWTG0IU51pCsdYW2ncUPjdtp9Z+f3vuNhu8nKbmhaf5cZeGc+PO8zf1Lc'. + 'm0KhkACICCKCMeaBjiLC0tLSnjNvPmuOHRpH0TZTU1M8zBi9wakzn7OFTs5sw8YYACYmJrre7HkeuVyu69qPF77hlT1XmZ0eQ03O'. + 'wOLJTvhBx1rLz18VmJ0eY+jVd2FxDkKXnvYLHgb97OgLzE4ON9Hzc1B1QaQzsed5O0Lta3Ec89OnR5h5McfQ+Mw2qgQUnfBOPbZ3'. + 'bK3l+xOvMT0+3ERLp5FNF6UEjcL32+DdVmGt5WLhDYYPZrbRqreFumXwql0S3w9tnDvLWD5PZigPpdOwuYpSCo3C8wU3UHxQdHbf'. + 'cZIkNM6dxcnlUM4k1eUFMlUPpUADbpkttFarHe6oYqeOr6yt4RzMQHYUcUsQVtGicHDwKprViuLDkkOtVnsHCHZVRVy/zcj1i5Af'. + 'h8AjdIts+hUcGcYPK3iBtKM3gD/uAzf/AdY2mmmVgy6X8YNNKmGIvyloPcB8SUin07RQ4EZHFdsdG0wkJEnEaHAJxvKEpSLeaokV'. + 'r4zWmhUZYLlY4b1D03y5eIEWCtS7vsciAgiIxkQRabWOrlQor66y4pUphoJb1jiO4uO5o0S3q6RSqVbiOmC7VCEgAhLSaDQ48dH7'. + 'vD46REY0iysegSjKQciRt99ib7qXwX0O+pG4teM6YKHLB9JMq4mTmF9/+AKA4wvLZByH7OgYL7+UY2qvw/7Bfg5kHiXjJFyv3CGO'. + 'Y1rof+BW4t/XLiPG0DCGr79d4XzRxRnIMn98huXSTYyJ6et1UNYQhRvcinpJq86H3wGPPPM0iBDd+QffD1g4eZjLvuG7S1Wef26E'. + 'J7L7eSx7gAHVg7V3MSbi6m/r93baBd6qQjerAJg/9Ql/XrvG0ON1+vv7GH3qSfY5fahUnSTpwZgIEQesaVXRPbHRG/xyJSAxMYlp'. + 'EOm71HUINiY7mGb95l/8jZCyQmJjMDGJjUmsdCROtZ0n/P/Z8v4Fs2MTUUf7vYoAAAAASUVORK5CYII=' ; + + //========================================================== + // endconstrain.png + //========================================================== + $this->iBuiltinIcon[2][0]= 666 ; + $this->iBuiltinIcon[2][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlz'. + 'AAALDwAACw8BkvkDpQAAAAd0SU1FB9ALEREILkh0+eQAAAIXSURBVHictZU9aFNRFMd/N81HX77aptJUWmp1LHRpIcWhg5sIDlUQ'. + 'LAXB4t7RRUpwEhy7iQ46CCIoSHcl0CFaoVARU2MFMYktadLXJNok7x2HtCExvuYFmnO4w/3gx+Gc/z1HKRTdMEdXqHbB/sgc/sic'. + 'nDoYAI8XwDa8o1RMLT+2hAsigtTvbIGVqhX46szUifBGswUeCPgAGB7QeLk0X4Ork+HOxo1VgSqGASjMqkn8W4r4vVtEgI/RRQEL'. + 'vaoGD85cl5V3nySR/S1mxWxab7f35PnntNyMJeRr9kCMqiHTy09EoeToLwggx6ymiMOD/VwcD7Oa/MHkcIiQx026WGYto5P/U+ZZ'. + '7gD0QwDuT5z9N3LrVPi0Xs543eQPKkRzaS54eviJIp4tMFQFMllAWN2qcRZHBnixNM8NYD162xq8u7ePSQ+GX2Pjwxc2dB2cLtB8'. + '7GgamCb0anBYBeChMtl8855CarclxU1gvViiUK4w2OMkNDnGeJ8bt9fH90yOnOkCwLFTwhzykhvtYzOWoBBbY//R3dbaNTYhf2RO'. + 'QpeuUMzv188MlwuHy0H13HnE48UzMcL0WAtUHX8OxZHoG1URiFw7rnLLCswuSPD1ulze/iWjT2PSf+dBXRFtVVGIvzqph0pQL7VE'. + 'avXYaXXxPwsnt0imdttCocMmZBdK7YU9D8wuNOW0nXc6QWzPsSa5naZ1beb9BbGB6dxGtMnXAAAAAElFTkSuQmCC' ; + + //========================================================== + // mail.png + //========================================================== + $this->iBuiltinIcon[3][0]= 1122 ; + $this->iBuiltinIcon[3][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlz'. + 'AAALEAAACxABrSO9dQAAAAd0SU1FB9AJHAMfFvL9OU8AAAPfSURBVHictZRdaBRXFMd/987H7tbNx8aYtGCrEexDsOBDaKHFxirb'. + 'h0qhsiY0ykppKq1osI99C4H2WSiFFMHWUhXBrjRi0uCmtSEUGgP1QWqhWjGkoW7M1kTX3WRn5p4+TJJNGolQ6IXDnDtz+N0z/3PP'. + 'UWBIpdpYa23b9g09PZ2kUrOrvmUyGVKp1Ao/mUyi56YnVgWfO/P1CihAd/dJMpmaNROIRq8BkM1m0bH6TasC3j6QXgFdXI+DR6PR'. + 'JX/Pno8B+KLnMKqlpUU8z8MYs2RBEDzWf9J+0RcRbMdxGBsbw/fmCXwPMUEYID4iAVp8wIRmDIHMo4yHSIBSASKC+CWE0C/PF9jU'. + '3B6Cp+4M07C5FUtKGNvGwQJctPgIsgD2wRhEIqAMGB+UQYkHJgYYZD7P1HwVlmWhHcfhyk83KeRGUW4t6CgoG5SNUS4KBWgQDUov'. + '7AGlwYASBVqH0Bk49dXpCviVV3dw/tI1Bvr7kMIIlh0NYUpjlF0BAYvcxSXmEVLKceHSCJm+PnbueBHbtkNwTXUNBzo6aGpq4sSZ'. + 'GwT5H7BsF6Wdf1GWHQAoM0upeI9PT1yioS7B7tdaSdSuw7KsUGMAy7HYsmUztTW1nMwM0txssX1rlHjjS5jy/Uq2YkK/eJuLl6/z'. + 'x+1xkslW6mrixGIODx8EFSlEBC0+tmXT0NhA2763iEUjnLv4C8XpUbSbAB1mKkGJ3J83Od77HW5EszvZSqK2iljMIeJaRGNuJePF'. + '6mspY7BJ1DXwQnCd2fxGRq5OUCz8xt72dyhMZcn++Cu3xu9SKhdp2b4ZHWnAtTSxmIWlhcIjlksR3lNBYzlxZsb7+f7ne+xtSzOd'. + 'u83szH1OnThOPp/n+a0beeP1l4mvq+PU2Qyd+5PY1RuwlAqLYFaBfbTbyPSdfgaH77A//QF4f1O/vpr6RJyq+C5Kc/M8FbFxXItY'. + 'xOHDrvfo/fxLDnbsJBp5BowBReVWYAzabeTh5ABDw7cWoNNL3YYYNtSv57lnn6Z+Qx01VeuIuBa2DV1HD3H63BAPZu4u1WGpeLHq'. + 'Rh7+NcjA0O+0p4+CNwXigwnbWlQQdpuEpli+n+PIkcOc//YKuckJJFh2K2anrjFw+QZt6S6kPImIF/b+cqAJD1LihWAxC61twBTo'. + 'fPcQF/oGsVW5ovHQlavs2/8+uYnRVSOUgHAmmAClBIOBwKC0gPjhIRgEIX2wg7NnwpZW3d3d4vs+vu8TBMGK51rvPM9b8hdteZxd'. + 'LBbVR8feJDs0Rlv6GFKeXJ21rNRXESxMPR+CBUl0nN7PjtO+dye7Up/8v1I88bf/ixT/AO1/hZsqW+C6AAAAAElFTkSuQmCC' ; + + //========================================================== + // startconstrain.png + //========================================================== + $this->iBuiltinIcon[4][0]= 725 ; + $this->iBuiltinIcon[4][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlz'. + 'AAALDgAACw4BQL7hQQAAAAd0SU1FB9ALEREICJp5fBkAAAJSSURBVHic3dS9a1NRGMfx77kxtS+xqS9FG6p1ER3qVJpBQUUc3CRU'. + 'BwURVLB1EAuKIP0THJQiiNRJBK3iJl18AyeltRZa0bbaJMbUNmlNSm5e7s25j0NqpSSmyag/OMM9POdzDuflwn8djz8gClVRrVEV'. + 'ur4Bl1FTNSzLrSS6vbml0jUUwSXj8Qfk3PkLtLW2AeBIybmrgz3+gFzpucjlE4f4btuFTuWuCF5XDr3a3UPf6cM8GQvxzbsRAJdh'. + 'ScfxSywml5j7mVypN0eGEJ0tebIre+zxB6Tv7jPReS2hREpOvpmUXU+H5eC913JnNCSRVE60pUVbWoZjprR39Yq70bdqj4pW7PEH'. + '5FpvL9e79jOTTHM7ssDL6CJZ08LbvAGnrpZg2mI2Z/MlZfN8IkxuSwu4V9+WIrj7zFlOHfXzKrLIi2SGh5ECKjnNVNxkQEc55vOw'. + 'rb6O8JLFdHyJ+ayFElUeHvjwkfteL/V7fKTSkFvIQE4DoLI2Mz/muTkTApcBKIwaN8pwIUrKw+ajWwDknAO0d/r4zFaMuRS63sWm'. + 'RoOdm+vRIriUYjKexrQV+t1o0YEVwfZSVJmD/dIABJuO0LG3lRFx0GOfiAELE9OgCrfU0XnIp5FwGLEy5WEAOxlR5uN+ARhP7GN3'. + '5w7Gv4bQI2+xpt4jjv2nWBmIlcExE2vDAHYioszBZXw6CPE4ADoWVHmd/tuwlZR9eXYyoszBfpiNQqaAOU5+TXRN+DeeenADPT9b'. + 'EVgKVsutKPl0TGWGhwofoquaoKK4apsq/tH/e/kFwBMXLgAEKK4AAAAASUVORK5CYII=' ; + + //========================================================== + // calc.png + //========================================================== + $this->iBuiltinIcon[5][0]= 589 ; + $this->iBuiltinIcon[5][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAA4AIwBbgMF12wAAAAlwSFlz'. + 'AAALEQAACxEBf2RfkQAAAAd0SU1FB9AHBxQeFsqn0wQAAAHKSURBVHicnZWff+RAGIef3U/gcOEgUAgUCgcLhYXCwsHBQeGgUDgs'. + 'FgMHB4VA/4Bg4XChWFgIFIqBwkJhsRAYeOGF+TQHmWSTTbKd9pU37/x45jvfTDITXEynAbdWKVQB0NazcVm0alcL4rJaRVzm+w/e'. + '3iwAkzbYRcnnYgI04GCvsxxSPabYaEdt2Ra6D0atcvvvDmyrMWBX1zPq2ircP/Tk98DiJtjV/fim6ziOCL6dDHZNhxQ3arIMsox4'. + 'vejleL2Ay9+jaw6A+4OSICG2cacGKhsGxg+CxeqAQS0Y7BYJvowq7iGMOhXHEfzpvpQkA9bLKgOgWKt+4Lo1mM9hs9m17QNsJ70P'. + 'Fjc/O52joogoX8MZKiBiAFxd9Z1vcj9wfSpUlDRNMcYQxzFpmnJ0FPH8nDe1MQaWSz9woQpWSZKEojDkeaWoKAyr1tlu+s48wfVx'. + 'u7n5i7jthmGIiEGcT+36PP+gFeJrxWLhb0UA/lb4ggGs1T0rZs0zwM/ZjNfilcIY5tutPxgOW3F6dUX464LrKILLiw+A7WErrl+2'. + 'rABG1EL/BilZP8DjU2uR4U+2E49P1Z8QJmNXUzl24A9GBT0IruCfi86d9x+D12RGzt+pNAAAAABJRU5ErkJggg==' ; + + //========================================================== + // mag.png + //========================================================== + $this->iBuiltinIcon[6][0]= 1415 ; + $this->iBuiltinIcon[6][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlz'. + 'AAALDAAACwwBP0AiyAAAAAd0SU1FB9ALDxEWDY6Ul+UAAAUESURBVHicdZVrbFRFGIafsyyF0nalV1R6WiggaAptlzsr1OgEogmC'. + '0IgoBAsBgkIrBAPEhBj/AP6xRTCUFEwRI4jcgsitXMrFCJptJWvBNpXYbbXtbtttt6e7e86ec/yxadlCfZPJZDIz73zzzjfvR2VL'. + 'F7U+hf0HD2JduIzTFy6SlJRkPtkcDgdCCE65OxFC8NPV6wghyM7OptankJ2dzbSC5QghEEIgCSHog9PpNAF27dlN6miZuPgElB4/'. + 'nmY3O7ZtByA1NVUCkGWZweD1eklJScESTbqxuIjrd+/x6uIl5M19hSy7nfGOeUxf+g7VjU1sKi7C4/GYsiyz7tAJAD4/cRaA1tZW'. + 'AHIPnECUVGD1+/3U19ebG4uLeHf1akamjsIwoVnVCOvQEdLoVILYYmMo3PIxSBJflpSaDX5FAmju1QAYv/8k/s8+wLVxOU0jR2LZ'. + '8sMFAApWrCApbRRDrRZirBYSLBKaoRPQw3SFernf2sav7T0Ubt4KwL4FMwF4Vu8FoHBCKgCzDhwHwLIhZ7y5a89u4m2JhA0wTdDC'. + 'OrphEjJMNElCHxKDEjaobmvlfo/Krj27CQQCJsCGJW8C0KXqAMxMiosQA8hZWcTFx9OsaniDKh1qmG7VoFsL0x0K06kbeAMhWpRe'. + '/KpG+gwHAKUnz7Dz3BUMw6DK18nuw99wt0Nh6VdHI8RJicmETQgFg7SFwjSrGv+oKp6ghldV6dZ0ugJBlF6FmCESQ2w2AIqXLsan'. + 'BrFYLJTnTCBrdBqveeopWZiPFaBHUegJhegMqGgxEkHDwB/UaQ9rdIV06v0+TD2EEQjQFtAY0dsNgNvt5sialQAIIXh7wQKuVf6J'. + 'gTsSccPDWlQstClBGjr9eHpVWvUQncEwdYEedF8noQ4vmYmpZMTH0nTvDn25vLbrNmu7bvfnsYEbAMnhcPDgwQPzUo2LJusw/mhp'. + 'QwlHNO0KBAnoIfxtrcQMT2De1Mm891wyUzNlUlJSpIyMDBobGzlzr5rFM/Koq6vrP8ASGxsLwPmKcvIShjPGZiPOakE3VFB8hHwd'. + 'vJAxhrk5L7Ly+RQuH/sWgPdXrwFg/6HDFBUsIj09nehfbAWwPWOT9n5RYhqGwarNWxkRM5TRCfF4U1PQsDDJFk9uYhwXvzvKjm3b'. + 'KSsro3DJInNW5RXp7u2bAKSlpeH1esnPz6eqqgqLpmmcr3Fht9ulfaV7mZk1Bs+lM6T1djM9fhg5egDPpTNMy5TZsW07kydPYdWM'. + 'aXx96ixOp9O8cfUa80srmDpjOgAulytiQqZpMnvObLbt/JTtHxXj9/tRVdU0DGOAufRpevPDTeac0hJyc3NxOOawfv161lVWS6eX'. + 'z+9/UOCxu1VWVvaTRGv16NFfjB2bNeAQp9NpTpmSM4DcbrdL0WsGDKLRR+52uwe1yP8jb2lpYfikyY9t80n03UCWZeaXVjw1f+zs'. + 'Oen+/d+pqanhzp2fKSsrw+l0mi6XiyPl5ZGITdN8fAVJwjRNJEmi1qfw1kw7siyTnJxMe3s71dXV3GpoZO64DG41NPJylvxU5D/e'. + 'qJKsfWQD9IkaZ2RmUvr9aV4aGYcQgjfO3aWoYBF5eXm4ewIsu/CbdPz1aWb0/p1bNoOrQxlUiuiaFo3c3FyEEOx9+C9CCD6paaTW'. + 'p/TXyYkTJ0Xe59jf7QOyAKDWp/QXxcFQ61P4pT3ShBBcvnUHIQTjxmX19/8BCeVg+/GPpskAAAAASUVORK5CYII=' ; + + //========================================================== + // lock.png + //========================================================== + $this->iBuiltinIcon[7][0]= 963 ; + $this->iBuiltinIcon[7][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlz'. + 'AAALCwAACwsBbQSEtwAAAAd0SU1FB9AKAw0XDmwMOwIAAANASURBVHic7ZXfS1t3GMY/3+PprI7aisvo2YU6h6ATA8JW4rrlsF4U'. + 'qiAsF9mhl0N2cYTRy9G/wptAYWPD9iJtRy5asDe7cYFmyjaXOLaMImOrmkRrjL9yTmIS3120JybWQgfb3R74wuc8Lzw858vLOUpE'. + 'OK6pqSm2trbY39+nu7tbPHYch7m5OcLhMIA67kWj0aMQEWk6tm17rNm2LSIie3t7ksvlJJ1OSyqVkls3Z8SyLMnlcqTTaVKpFLdu'. + 'zmBZVj1HeY2VUti2TSQSQSml2bZdi0QirK2tMT09zerqKtlslqGhISYnJ4nHv2N+foFsNquOe9FotLlxOBwmk8lgWRbhcFgymYxY'. + 'liUi0mqaJoAuIi2macrdO7fFsizx3to0Te7euV1vrXtXEgqFmJmZYWVlhXK5LB4/U9kwDL784kYV0A3DYHd3m4sXRymXywKoRi8U'. + 'Ch01DgQCJBIJLMsiEAhIIpHw2uLz+eqtYrEYIqKZpimxWEyCwaCMjY01zYPBIJpXqVQqsby8TLVabWKA/v5+RkZGMAyDrq4ulFKH'. + 'HsfjcWZnZ+ns7KTRqwcnk0mKxSKFQqGJlVKtruuSTCYB6O3trW9UI/v9/iZPB/j8s2HOnX0FgHfeXpeffnzK+fWf+fijvhLs0PtG'. + 'D/n1OJ9+MsrlSwb3733DwMCAt1EyPj6uACYmJp56168NU6nUqFSE9nZdPE7+WqC/r4NKTagcCJVqDaUUB5VDAA4Pa9x7sMLlSwan'. + 'WjRmv13D7/erpaWlo604qOp88OF7LC48rPNosMq5Th+Dgxd4/XyA1rbzADi7j8jnf2P++wdcvSr8MJ/i8eomAKlUqn41OsDAQDeD'. + 'g++yuPCwzm/2vU8+n2a7sMFfj79mp7BBuVzioFSiXHJx3SKuW2Rzy0Up9dxnQVvODALQerqNRn4ZKe0Mvtc6TpzpmqbxalcY9Ato'. + '2v06t515C73YQftZB9GLnDrt4LoujuPgOA4Ui+C6yOpXJwZrJ7r/gv4P/u+D9W7fLxTz+1ScQxrZ3atRLaVxdjbY2d184R6/sLHe'. + 'opHP7/Do90Ua+WWUyezzZHObP/7cfX54/dowE1d66s8TV3oE+Mfn+L/zb4XmHPjRG9YjAAAAAElFTkSuQmCC' ; + + //========================================================== + // stop.png + //========================================================== + $this->iBuiltinIcon[8][0]= 889 ; + $this->iBuiltinIcon[8][1]= + 'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlz'. + 'AAALDwAACw8BkvkDpQAAAAd0SU1FB9AJDwEvNyD6M/0AAAL2SURBVHic1ZTLaxVnGIefb2bO5OScHJN4oWrFNqcUJYoUEgU3/Qf6'. + 'F7gwCkIrvdBLUtqqiLhSg9bgBduFSHZdiG5ctkJ3xRDbUFwUmghNzBDanPGMkzOX79LFJGPMOSd204U/+Bbzvd/78F4H/ieJdoad'. + 'pZKxRFszAI/DcP0HazXY22v+HB01kee1PA/v3zfnjx4xgGnHcNZe7OvuNj+cOEF1ZATv5nUA4jhBSgmADCVWo8Ge2Of9wb18P/G7'. + 'oUXmYi30zqlTVEdGWLh1g2D6MYlKkXGE0Vl8aa2GEB149+4xXSzyoOIw/mimiZV/DPb25pFOj13A9gOMEChhUEqhVYqWKUk9QAUp'. + 'sT/P4s8PmKlUmNhQaIJbkDVqBbpw6wZ2zUc4Nm+ePku5p4eOrgpueQOFUoVCVxcD4+N07dpF9+5tVJeWGPBjhvr7WF1zC8ASgtcP'. + 'H8a7eZ1odh4sh50nzwCw9ZNh3M4Stutiu0X2nB/LyjZ6lcIbVTpdQU/jWVPzLADM8+ZGBRdtC7wrF/O7bR99iu26VL86iU4SAH4b'. + 'Po5d6AQhstMSvGyI4wS5FJBKSRwnzF8byx/u+PjzzMF1mfryQ1K/jnCahqp1xEopjFLoNEFJSRJHzF799gWHqa+/QKcSUXBI609f'. + 'Al5W4teQSiHDOipNUKnMI13RvnOXAIEKQixvGWya98SC560MFwPiqEG86JM8q79Q06lvhnOndy5/B6GPCUOMUu3BQgg8z0M3GmBZ'. + 'iGJn3v2VmsqnfzNx7FDueODuj8ROCFpjtG5TCmOYv32bJ09msP0ISydMfnAUgF8/O45RAA6WTPjlvXcB+Gn7FuRf/zAnNX6x3ARe'. + 'PSdmqL+P/YHkwMGDOGWDZTlQcNBRhPEComgB/YeHfq2InF1kLlXUOkpMbio1bd7aATRD/X0M1lPeSlM2vt2X1XBZjZnpLG2tmZO6'. + 'LbQVOIcP+HG2UauH3xgwBqOz9Cc3l1tC24Fz+MvUDroeGNb5if9H/1dM/wLPCYMw9fryKgAAAABJRU5ErkJggg==' ; + + //========================================================== + // error.png + //========================================================== + $this->iBuiltinIcon[9][0]= 541 ; + $this->iBuiltinIcon[9][1]= + 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAAAaVBMVEX//////2Xy8mLl5V/Z2VvMzFi/v1WyslKlpU+ZmUyMjEh/'. + 'f0VyckJlZT9YWDxMTDjAwMDy8sLl5bnY2K/MzKW/v5yyspKlpYiYmH+MjHY/PzV/f2xycmJlZVlZWU9MTEXY2Ms/PzwyMjLFTjea'. + 'AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTCAkUMSj9wWSOAAABLUlEQVR4'. + '2s2U3ZKCMAxGjfzJanFAXFkUle/9H9JUKA1gKTN7Yy6YMjl+kNPK5rlZVSuxf1ZRnlZxFYAm93NnIKvR+MEHUgqBXx93wZGIUrSe'. + 'h+ctEgbpiMo3iQ4kioHCGxir/ZYUbr7AgPXs9bX0BCYM8vN/cPe8oQYzom3tVsSBMVHEoOJ5dm5F1RsIe9CtqGgRacCAkUvRtevT'. + 'e2pd6vOWF+gCuc/brcuhyARakBU9FgK5bUBWdHEH8tHpDsZnRTZQGzdLVvQ3CzyYZiTAmSIODEwzFCAdJopuvbpeZDisJ4pKEcjD'. + 'ijWPJhU1MjCo9dkYfiUVjQNTDKY6CVbR6A0niUSZjRwFanR0l9i/TyvGnFdqwStq5axMfDbyBksld/FUumvxS/Bd9VyJvQDWiiMx'. + 'iOsCHgAAAABJRU5ErkJggg==' ; + + //========================================================== + // openfolder.png + //========================================================== + $this->iBuiltinIcon[10][0]= 2040 ; + $this->iBuiltinIcon[10][1]= + 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEANAAtwClFht71AAAAAlwSFlz'. + 'AAALEAAACxABrSO9dQAAAAd0SU1FB9AKDQ4RIXMeaLcAAAd1SURBVHicxZd7jBXVHcc/58zcvTNzH8vusqw8FsTsKiCUUh5WBZXG'. + 'GkOptmqwNWsWLKXFGlEpzZI0AWNKSy0WhDS22gJKtWlTsSRqzYIuLGB2WVvDIwQMZQMsy2OFfdzde+/OnHP6x907vJaFpjb9JZM5'. + 'c85Mfp/f9/s7Jxn4P4e41gtSyp78WGvtfdEAcqDFYUOH9HS0NhGk9tPb/ilSyp789UUB2AMuqhQy3Uzm7HGkE6W3dTNZMRI3EcWO'. + 'jf9ClLmWBT3dzW8jUsevWHCG3UpWl+IkHSxnbDh/Mcz12NevBcuWXTmf6TjnXvJ88gDmVB3pw3+nt3UzHa1NqMzBS2zqPLGFjtMN'. + 'ZNr3XdW+qyqwZcFk76HX/tHWfuQvyO4W7qhaHwL8efkMRlRUpPv7rqD0RrJ+FgAjLy1a20OIxZJEEuNCRfIApj+om4bGM3u2/sYU'. + '9J41d8973f3Dhg1pISTV1dXXBRNJxPGFCzhou+DCQrScZOkktNaeDZjamgeZ9MgiYmVDccvHhjAzJw0NTh8/alyZMaVJicp0iTHj'. + 'JpgNv38tjWUhhGROdbUL9W5/MH5XCkjlcibi+KIop5LVHLKEu8A/f4r286doa9pGrGwYAAsfqbbH3b8MgO/Nqgy6WvdbbXHMkEFJ'. + '4xUOMVEvaTZu3BgmvF4Yk4hz9rO/Ulr5cE9owae/rcGxohSOuiWkC2IjcIqKyPZm+OmCH7GhoZEF077EEzVVweAbJ+riEeO0Ey8y'. + 'UubqOHn0AOgMwvf59txnBrSp9dgxKmf/+kIP1NY8SFk0jh5ajmNHAWg5b2E5EexojGHjbiVRMoRMNs0LC+Yz46vTuH3enN7BI8fr'. + 'qFdo0BoVZNC9aVSQ4fNjBzEmQJiARxb+/AqYPMAVB5FsPU5v37g9OxgLhe14ZM5/ju052E6MNZvf5pmHHuLmmWOkEysxUtpGAtme'. + 'dtHTflJkezqQto3jFRnLssyf1jydxiiM7zNnye/c3ZsqLu2BN5fcMfzrv/hby1tPzmRUoihcTJ87CwQI2yLtDcIqsIjYUf51qBlf'. + 'OnScOSrdQUOMURkiXsLUzJnvbGhoBGDHH5cGyZLhOpYoNl5hqYnYEXOu5fDl9eYAHntx98n8hFHZcPHUuTSxSASAeK/CGIOxJJ0f'. + 'bOGNPU280dgkq6Y2yu8vfjCIlwwzr+/ZQ/PHO0gOLuO5qsftDQ2NbN+4OCgqG6WTxWVaq6zpF+DiSHWnicdylp3r6aZTWthIOrNp'. + 'ktHcvBu0sHX1Sm6ozB3B42d90zZA9bQp7PvgPSzXZfnqX/HS4DKKK2+x69Y/HURs26iBAN5ccsfw7774UcumF37C6f07KSt2OHji'. + 'DEUJD0tISjyPrrSPlAKvN0JP/U4O1NfjuhG2rvklN1SOpfXwftpbTqAyKRrff5fb7rs9V1R7m4wlz2ihA3HpmXflUWyOH2umpLiY'. + 'ui3v8M+6bWzfsRNbSgqkxaCkiy0simMuEWEhpcRzIhQWOIAh6tiAwS4owInFiTou5dOnMnl2NR++ujBwXEc9terD6M43nrj6LgAB'. + 'QnDPA9/irtkP8JRS7Hr/3T6YekDQ1pEiEXOwpUVJzCVlZZFS4mZtkpEo9ChAkDp/jtLMBACy6S4RiQghLyv5cgBRPnKUOX6smUGF'. + 'hSil0MYw9d77mPy1e5mnFE3batm3czvb6nYgEJztSFGU9LCRlMRdUjIH0+lnEMIwPNXD3NumoVJnrMCJaiciMUZfvQnz4QcBSvV1'. + 'vjE5GK358t0zmXDnDB79saLpo20c+aSRD+t25JTp7GZQwsEWFiVxl6hlUf/WO9z32CxmL1rOe6u/I2KuwGhzLQCB7/sYY9Bah3el'. + 'FKbvrrVm4vS7GH/7ncx+chEHGz7myCeNbPtoO0JI2jq78WIRLGkzsqs7V5SfFV5EovXACoiqqsfNpk2vo5VCWtYFBfoU0VoTBAFa'. + 'a7TRaK2p+MoURk+cxMzq+Rzbv49DDbuo27UTW9h0dedssPxuK+kIfN8XxhgDYPVXf2Fh4XKtFIl4AiklAlBKAYRKKK36wHIweTCt'. + 'NfHiEkaOn8j0+7/BmDFjaT30GbHywSxcuZkpFfFg+m1jjZ/NmnVvNfRvwd69e8WBA/uNFAIh4JVXXmHsmDHE4vEQQgjQ2lxQIm9N'. + 'nz35q3BEOZOHzaG2thaA4mRU+L29It+IV21CpbRQfeMFC35gRB/M2rVrubnyZmLxWJhECBEmz/eHyo/7lMlH3LFFujsthNFCCGOu'. + '+WNyeUgpjSVzMKtWraKyshLPdcPEeYWCIEBdpIxSivr6eta8vI7d6+cGnhdV06pe1QP+F/QXWmuRL+jZZ58LlVmxYgUVFRV4rhtu'. + '4TzMxXAA6XRaRAtsYUkx8I/JtSJQOlSwpmZpCLN8+fPcdNNoHMfB9/0QJgRoP295TlR7UVv8xxZcHMuWIZ9/Hn35vG3JEGZpzVJG'. + 'jx5N1IlitKahsZE1L69j69qHgx+urFX/lQL9JYdLlfnZihUhzOLFi8N3Ml1dthOxVH/f/8/CtqSJ2JaJ2JZ59J7RPsC/AViJsQS/'. + 'dBntAAAAAElFTkSuQmCC' ; + + //========================================================== + // folder.png + //========================================================== + $this->iBuiltinIcon[11][0]= 1824 ; + $this->iBuiltinIcon[11][1]= + 'iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlz'. + 'AAALEAAACxABrSO9dQAAAAd0SU1FB9ECAQgFFyd9cRUAAAadSURBVHiczdhvbBP3Hcfx9/2xfefEOA5JoCNNnIT8AdtZmYBETJsI'. + '6+jQOlQihT1AYgytqzZpD1atfyYqlT1h0lRpT7aRJ4NQpRvZGELVuo5Ua9jEJDIETQsNQyPBsUJMWGPnj//e+e72wNg4xElMR6ed'. + 'ZNln3933dZ/f93f6yfB/sgmrHdDV1WXlPg8NDZUDScD8LFFFEZZlWYZhWMFg0Orq6sq/gDJAfFy1iiZy9OjrVnj4JzQ1rMWqfxm/'. + '309jYyNtbW0kEgnu3bvH4cOH88c/jqSKQl4/XGkd+eVtAN46up1LH92ktqYS++ZX8Pv9NDQ0sGnTJlKpFOFwmO7u7vy5IyMjeVRd'. + 'XV1+WEOh0IrY4pDnq6wXX/sTiCJaMkFZdRNqxefoe7VtCSqXVDqdZnZ2ltraWkzTpKqqijt3JpFlG7dvj7NzZ1f++qFQyA3EClHL'. + 'Ql743nFkhxPDtJAd5eTaYSVUfX09lZWVlJWVIUnSg7sVQMBCUcu4ceMGe/bsIRQK1QAzOcyykIM9P0KyudAyCWyqG8nhwqa4SkLt'. + '3r0bVVVxu924XC40TUOWZUQxe97CwgIdHR2LMHIxSCaVInVvFElxE0vMY1Pd2NUKJMWNTXHlUfF//4vETJCelwbpFm3MjP2dt37x'. + 'AlN+PzU1NViWRSwW4+7du3g8HjweD4qi5EFAJzAExIpCANbooxhplfB0FJvTg6xWIqsVRVF6MopkU3FXPcnkJxGU0VEAdF2noqKC'. + 'W3/8DpnqLjzep2lubsblcjE8PExHR8fboVDID9xYFpLBDpJF0jDQIncQpWlkm31FlFLtp9PfyuW/vYQj1kPSuRW/38+lj27S2Q7v'. + '/aWXUBVUffVNtm3blivVCEwsC5Eyc5iiApEpDEAXMqQdldhSiWVQHjJagud+8Fuexck/zv+K82dfoSbSCsDe75/km+4GVPd6+l5t'. + '4zJHcqVUYN2yEEtZQDCSJCueRAYsPY49HsFIZVG6p25JUumFafT4DKJN4amtT7Nz38sk5+5A70HMtEYyMkFiZhxzjQ/poXrLQrRU'. + 'DFGEeFpAlkQkm4pRiCpIKodKzk0T/2QMh+piPjxKZPwiSkUtu/b9mNnJEWS7E8nhAmvpM60oJDkXJxqNozxRRUxPIesispBBlsXV'. + 'UaKEFo8gzoaJhz8s2lOmrpUG+WBhJ9/60g+Z+fDXTAXfxllRjl1VkO0OFATsYhYliiK21ZKKhhHnFveUqSdKgwAEOp7F2v51vvw8'. + 'XH7/N1wd/BlTweuUV65BdtgfoLTSkipsdD3tRi0VYpommUwGwzDwdT5HYEc3giAwcvH3jLz3BlPB67jWeZBEKYsSBWwpHZtNKo4q'. + 'aHTDsJeeiGEYWJaFZVmYpommaRiGQdPnv0bb1m8gSRL/vPIOV979aR4lmAJ2p4qCgCxksNuKJ6VNpx4NYhgGpmkuQhmGQTqdxjAM'. + 'qr2d7HtxEEEQuH1tkKvvvkF44tqDnrIcKJKAPf1g+LAUElq8dIiu60sApmnm93Pfzc7OYhgGrie+wFe++ztcLhcT1wf54PzPCU9c'. + 'w7XWjWS3IdsdOAUBWZAxrRJnTQ6SG5bce2FCpmkughmGQSqVYm5uDtnj44sH38TtdhP6+Dwf//V4ttHXrkGURZJaic8RgHQ6jWma'. + 'SJKUL5RLKNfIOczDKF3XSSaTRCIRhLJWntp3nGfWrSMxc5OLf3iNP4+68T9Ub9nF76lTpxgfHycajZJKpdA0LZ9GbjYV7hcDWZaF'. + 'pmnMz88Ti8UYunSLmu1HFi2aVkxkaGjINTY2ttDb24vX6+XQoUNs3ryZ8vJyIDu1BUFYkkxhgxeiWlpaOHPmDE1NTdTX1xe98eWG'. + 'JnF/9dQZCoXUYDA4AOD1ejlw4ACtra2Ul5fniwmCkEcUJiUIAoFAgL6+Pnw+H21tbfT39z8SxCS7hHsfWH9/8dL4MKqnp4eWlhac'. + 'TmcekEvMNE2am5s5ceIEgUCA9vZ2Tp48ic/nY3j4UsmQHCYOjJHtpeBKqL1799Lc3IzT6UTXdRobGxkYGKC9vZ3W1tZ8Ko86NJ8a'. + 'tXHjRo4dO8bp06fZsmULGzZsoL+/n0AggNfr5ezZs/8VpGTU5OSkc//+/acBfD4f1dXV7Nq1i4aGBs6dO4fP5+Pq1SuPBbIiyjTN'. + 'RUnV1dUNXLhwAa/Xy44dO4jFYgBEo9FFF1r134BPuYlk16LrAYXsAlmtq6sbKDwoFAp9m+ykuP5ZQVZF3f8tCdwCov8LyHIoAANI'. + 'AXf/A1TI0XCDh7OWAAAAAElFTkSuQmCC' ; + + //========================================================== + // file_important.png + //========================================================== + $this->iBuiltinIcon[12][0]= 1785 ; + $this->iBuiltinIcon[12][1]= + 'iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlz'. + 'AAALDwAACw8BkvkDpQAAAAd0SU1FB9ECDAcjDeD3lKsAAAZ2SURBVHicrZhPaFzHHcc/897s7lutJCsr2VHsOHWMk0MPbsBUrcnF'. + 'OFRdSo6FNhdB6SGHlpDmYtJCDyoxyKe6EBxKQkt7KKL0T6ABo0NbciqigtC6PhWKI2NFqqxdSd7V2/dmftPDvPd212t55dCBYfbN'. + 'zpvfZ77z+/1mdhUjytWrV93Hf/24eD5z9gwiMlDjOKbb7dLtdhER2u02u7u73Lp1CxEZBw4AeZwdNQqkMd9wbziFGINJUt6rRbz5'. + '1ptUq1XK5TJBEAAUMHt7e+zu7gKwvLzMysoKwAng/uNg9CgQgFKlgg1DUJ67Vqtx6tQpZmdniaIIpRTOOZRSdDoddnZ2aLfbLC8v'. + 's7S0xJUrV7ZGwQSj1PhhfRodVdDlMrpc5vup5Z2fvMPdu3fZ29vDWjvwztjYGPV6nVqtRqVS4dKlSywtLQFsAdOH2XwsCEApg3jl'. + 'w98Rak2gvYjNZpNms0mSJDjnHgkDMDc3dySYQ0Ea8w139YUX0OUKulzyg7UmCEO+l1huvHuDra0t9vf3h1TJYSqVypFhHquIrlQI'. + 'S5qv/uIDAC7/4bcEQYAKvK+0Wq1DVQGIoog7d+4cCeaRII35hrt+8SsEOkRlUaEyR0UpFIrXHxyMVKVUKnHv3r0jwRwaNelBjBjL'. + 'Sz/7KYuLiwAsLi7y4z/9kY9e+TpkCuSqjI+Po7XuAWeKXLt2DWNMUZMkwRjDhQsXWFtbK6JpCCT3jfQgxomPtPX19YHWicM5x3c2'. + '73Pj3Ru8/aO3mZqaolKpoHVvyuvXr/Ppnf/Q7uzz380NPtu4y/qnG+ztd1hfX2dtbQ3gIvDnRyqSxl1UoPjyz98D4PTp0wPtq39Z'. + '4fdzLxegrVaLVqvF5OQkYRgWqpRKJZ77wvNsbW1RG5tgfKLOTH2G7Z1twqBQrgrMDvhInjfSOCY5iIv+hYWFgRZArEWsZWF941Bf'. + 'SdMUgMnJCWpjVU4cn+HUyePM1Gc4+fRUPkzBI5w1jbukcczLv/5l0XfmzJmBFuCba38r/CRXpT+CrDUoZ0jjB4RYonJAOYRobJKT'. + 'z5zgqfqxAbsFSH6mpHFM2qdGXh4VnoViD6mSJF2cTQeqDqBaKVHWmonJCWpZjhkC6anR5WsffTgwaHV1FaUUq6urA/2v3f5k4LnV'. + 'arG9tUn3oI2YBCcWHYAxMVYs1qZEZY2SFB2aYZDGfMN9d7uJiWPSeFiNo5Rclc3NTXZbO6RpF7EJVixYA9agwwDnUiqlEPdQ3imi'. + 'Jo27BGHIt/7x9yEjc3Nzh27Na7c/4TdffKl4bja3ae5MUIu0T/HOEIaOpJt4gwoSsVTK4SBIY77hFtY3ABBjBiZ90rKwvsH77/+K'. + 't37wOhO1iPpTk4SBw1mLsz6CnKQ4l3qV+kE+t9XHlNZOk+bUJLVIE1VCcIJWQmJ6qjj30NbcXLkZMt8YPig+Z3n1G5fZ39/j/vY2'. + '9ckqZT2Ochbn0p4qNkU/dDfUADdXbh4HXgRO4zNdEU0XL1784PLly5w9e7Z4SazFOfGrEotDcOKrcoJPmrYIXf/Zop3QNd1skuGt'. + 'cUAb2MgAxvHZTgFUq1Wmp6eZnZ0F8JlTjDduDThBnDeECEoJtbGIp6enqEblzCcEZ1PECU4yVRiOGgd0gc+AB0CZvkv1sWPHOHfu'. + 'HOfPn8da41cpkkltEBEPJhYnBkTQJcdYVKGkgRxCfBsq5xXNgAa2Bn+hjTOgHEKBP8pzRUxykIH4ifLJRTJAl+UMBJzPHQ6bfe/f'. + 'cWIzPxlUpD+zugzIZtVk1d8znBAqRxgoQuVQgSJQ3h9C5QhDRYgjUILCAzlnEdsHYTKfMTEBcP7F54YUGVmc2GLlIn6ve6v0ahSt'. + '8X25TzjJ+rIx1grKpQPWR4LkGVVsMgghvS0qjPdvm5OeceOTWA5Evo2mFzkjQfL7hZPUy5yvvF/uPFQL3+nbDmsLCEmT3sTmCTNr'. + 'rogT6yFsOix3ftw7OwQhkvSU6CuinhCk0+kAkFoBazEEICHaHHiPVmU0gnUp4EAc1mYrF0EBVpwPi34VrBkwPxKk3W5ju/e5/c+d'. + 'bGUHIAIuydTIE5zfc5Wr4lJcahHnHTP3CVGm78DrgY38N+DEibp7dmYKdAQmBh1hjEFjis+9CTWYGK21H6PxPyOI0DobYwzZF/z7'. + '7jadTvJtYG0kCD7lfwl49ijgT1gc0AH+dZSJA/xB+Mz/GSIvFoj/B7H1mAd8CO/zAAAAAElFTkSuQmCC' ; + + $this->iLen = count($this->iBuiltinIcon); + } +} + +//=================================================== +// Global cache for builtin images +//=================================================== +$_gPredefIcons = new PredefIcons(); + +//=================================================== +// CLASS IconImage +// Description: Holds properties for an icon image +//=================================================== +class IconImage { + private $iGDImage=null; + private $iWidth,$iHeight; + private $ixalign='left',$iyalign='center'; + private $iScale=1.0; + + function __construct($aIcon,$aScale=1) { + GLOBAL $_gPredefIcons ; + if( is_string($aIcon) ) { + $this->iGDImage = Graph::LoadBkgImage('',$aIcon); + } + elseif( is_integer($aIcon) ) { + // Builtin image + $this->iGDImage = $_gPredefIcons->GetImg($aIcon); + } + else { + JpGraphError::RaiseL(6011); + //('Argument to IconImage must be string or integer'); + } + $this->iScale = $aScale; + $this->iWidth = Image::GetWidth($this->iGDImage); + $this->iHeight = Image::GetHeight($this->iGDImage); + } + + function GetWidth() { + return round($this->iScale*$this->iWidth); + } + + function GetHeight() { + return round($this->iScale*$this->iHeight); + } + + function SetAlign($aX='left',$aY='center') { + $this->ixalign = $aX; + $this->iyalign = $aY; + } + + function Stroke($aImg,$x,$y) { + + if( $this->ixalign == 'right' ) { + $x -= $this->iWidth; + } + elseif( $this->ixalign == 'center' ) { + $x -= round($this->iWidth/2*$this->iScale); + } + + if( $this->iyalign == 'bottom' ) { + $y -= $this->iHeight; + } + elseif( $this->iyalign == 'center' ) { + $y -= round($this->iHeight/2*$this->iScale); + } + + $aImg->Copy($this->iGDImage, + $x,$y,0,0, + round($this->iWidth*$this->iScale),round($this->iHeight*$this->iScale), + $this->iWidth,$this->iHeight); + } +} + + +//=================================================== +// CLASS TextProperty +// Description: Holds properties for a text +//=================================================== +class TextProperty { + public $iShow=true; + public $csimtarget='',$csimwintarget='',$csimalt=''; + private $iFFamily=FF_FONT1,$iFStyle=FS_NORMAL,$iFSize=10; + private $iFontArray=array(); + private $iColor="black"; + private $iText=""; + private $iHAlign="left",$iVAlign="bottom"; + + //--------------- + // CONSTRUCTOR + function __construct($aTxt='') { + $this->iText = $aTxt; + } + + //--------------- + // PUBLIC METHODS + function Set($aTxt) { + $this->iText = $aTxt; + } + + function SetCSIMTarget($aTarget,$aAltText='',$aWinTarget='') { + if( is_string($aTarget) ) + $aTarget = array($aTarget); + $this->csimtarget=$aTarget; + + if( is_string($aWinTarget) ) + $aWinTarget = array($aWinTarget); + $this->csimwintarget=$aWinTarget; + + if( is_string($aAltText) ) + $aAltText = array($aAltText); + $this->csimalt=$aAltText; + + } + + function SetCSIMAlt($aAltText) { + if( is_string($aAltText) ) + $aAltText = array($aAltText); + $this->csimalt=$aAltText; + } + + // Set text color + function SetColor($aColor) { + $this->iColor = $aColor; + } + + function HasTabs() { + if( is_string($this->iText) ) { + return substr_count($this->iText,"\t") > 0; + } + elseif( is_array($this->iText) ) { + return false; + } + } + + // Get number of tabs in string + function GetNbrTabs() { + if( is_string($this->iText) ) { + return substr_count($this->iText,"\t") ; + } + else{ + return 0; + } + } + + // Set alignment + function Align($aHAlign,$aVAlign="bottom") { + $this->iHAlign=$aHAlign; + $this->iVAlign=$aVAlign; + } + + // Synonym + function SetAlign($aHAlign,$aVAlign="bottom") { + $this->iHAlign=$aHAlign; + $this->iVAlign=$aVAlign; + } + + // Specify font + function SetFont($aFFamily,$aFStyle=FS_NORMAL,$aFSize=10) { + $this->iFFamily = $aFFamily; + $this->iFStyle = $aFStyle; + $this->iFSize = $aFSize; + } + + function SetColumnFonts($aFontArray) { + if( !is_array($aFontArray) || count($aFontArray[0]) != 3 ) { + JpGraphError::RaiseL(6033); + // 'Array of fonts must contain arrays with 3 elements, i.e. (Family, Style, Size)' + } + $this->iFontArray = $aFontArray; + } + + + function IsColumns() { + return is_array($this->iText) ; + } + + // Get width of text. If text contains several columns separated by + // tabs then return both the total width as well as an array with a + // width for each column. + function GetWidth($aImg,$aUseTabs=false,$aTabExtraMargin=1.1) { + $extra_margin=4; + $aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize); + if( is_string($this->iText) ) { + if( strlen($this->iText) == 0 ) return 0; + $tmp = preg_split('/\t/',$this->iText); + if( count($tmp) <= 1 || !$aUseTabs ) { + $w = $aImg->GetTextWidth($this->iText); + return $w + 2*$extra_margin; + } + else { + $tot=0; + $n = count($tmp); + for($i=0; $i < $n; ++$i) { + $res[$i] = $aImg->GetTextWidth($tmp[$i]); + $tot += $res[$i]*$aTabExtraMargin; + } + return array(round($tot),$res); + } + } + elseif( is_object($this->iText) ) { + // A single icon + return $this->iText->GetWidth()+2*$extra_margin; + } + elseif( is_array($this->iText) ) { + // Must be an array of texts. In this case we return the sum of the + // length + a fixed margin of 4 pixels on each text string + $n = count($this->iText); + $nf = count($this->iFontArray); + for( $i=0, $w=0; $i < $n; ++$i ) { + if( $i < $nf ) { + $aImg->SetFont($this->iFontArray[$i][0],$this->iFontArray[$i][1],$this->iFontArray[$i][2]); + } + else { + $aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize); + } + $tmp = $this->iText[$i]; + if( is_string($tmp) ) { + $w += $aImg->GetTextWidth($tmp)+$extra_margin; + } + else { + if( is_object($tmp) === false ) { + JpGraphError::RaiseL(6012); + } + $w += $tmp->GetWidth()+$extra_margin; + } + } + return $w; + } + else { + JpGraphError::RaiseL(6012); + } + } + + // for the case where we have multiple columns this function returns the width of each + // column individually. If there is no columns just return the width of the single + // column as an array of one + function GetColWidth($aImg,$aMargin=0) { + $aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize); + if( is_array($this->iText) ) { + $n = count($this->iText); + $nf = count($this->iFontArray); + for( $i=0, $w=array(); $i < $n; ++$i ) { + $tmp = $this->iText[$i]; + if( is_string($tmp) ) { + if( $i < $nf ) { + $aImg->SetFont($this->iFontArray[$i][0],$this->iFontArray[$i][1],$this->iFontArray[$i][2]); + } + else { + $aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize); + } + $w[$i] = $aImg->GetTextWidth($tmp)+$aMargin; + } + else { + if( is_object($tmp) === false ) { + JpGraphError::RaiseL(6012); + } + $w[$i] = $tmp->GetWidth()+$aMargin; + } + } + return $w; + } + else { + return array($this->GetWidth($aImg)); + } + } + + // Get total height of text + function GetHeight($aImg) { + $nf = count($this->iFontArray); + $maxheight = -1; + + if( $nf > 0 ) { + // We have to find out the largest font and take that one as the + // height of the row + for($i=0; $i < $nf; ++$i ) { + $aImg->SetFont($this->iFontArray[$i][0],$this->iFontArray[$i][1],$this->iFontArray[$i][2]); + $height = $aImg->GetFontHeight(); + $maxheight = max($height,$maxheight); + } + } + + $aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize); + $height = $aImg->GetFontHeight(); + $maxheight = max($height,$maxheight); + return $maxheight; + } + + // Unhide/hide the text + function Show($aShow=true) { + $this->iShow=$aShow; + } + + // Stroke text at (x,y) coordinates. If the text contains tabs then the + // x parameter should be an array of positions to be used for each successive + // tab mark. If no array is supplied then the tabs will be ignored. + function Stroke($aImg,$aX,$aY) { + if( $this->iShow ) { + $aImg->SetColor($this->iColor); + $aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize); + $aImg->SetTextAlign($this->iHAlign,$this->iVAlign); + if( $this->GetNbrTabs() < 1 ) { + if( is_string($this->iText) ) { + if( is_array($aX) ) $aX=$aX[0]; + if( is_array($aY) ) $aY=$aY[0]; + $aImg->StrokeText($aX,$aY,$this->iText); + } + elseif( is_array($this->iText) && ($n = count($this->iText)) > 0 ) { + $ax = is_array($aX) ; + $ay = is_array($aY) ; + if( $ax && $ay ) { + // Nothing; both are already arrays + } + elseif( $ax ) { + $aY = array_fill(0,$n,$aY); + } + elseif( $ay ) { + $aX = array_fill(0,$n,$aX); + } + else { + $aX = array_fill(0,$n,$aX); + $aY = array_fill(0,$n,$aY); + } + $n = min($n, count($aX) ) ; + $n = min($n, count($aY) ) ; + for($i=0; $i < $n; ++$i ) { + $tmp = $this->iText[$i]; + if( is_object($tmp) ) { + $tmp->Stroke($aImg,$aX[$i],$aY[$i]); + } + else { + if( $i < count($this->iFontArray) ) { + $font = $this->iFontArray[$i]; + $aImg->SetFont($font[0],$font[1],$font[2]); + } + else { + $aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize); + } + $aImg->StrokeText($aX[$i],$aY[$i],str_replace("\t"," ",$tmp)); + } + } + } + } + else { + $tmp = preg_split('/\t/',$this->iText); + $n = min(count($tmp),count($aX)); + for($i=0; $i < $n; ++$i) { + if( $i < count($this->iFontArray) ) { + $font = $this->iFontArray[$i]; + $aImg->SetFont($font[0],$font[1],$font[2]); + } + else { + $aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize); + } + $aImg->StrokeText($aX[$i],$aY,$tmp[$i]); + } + } + } + } +} + +//=================================================== +// CLASS HeaderProperty +// Description: Data encapsulating class to hold property +// for each type of the scale headers +//=================================================== +class HeaderProperty { + public $grid; + public $iShowLabels=true,$iShowGrid=true; + public $iTitleVertMargin=3,$iFFamily=FF_FONT0,$iFStyle=FS_NORMAL,$iFSize=8; + public $iStyle=0; + public $iFrameColor="black",$iFrameWeight=1; + public $iBackgroundColor="white"; + public $iWeekendBackgroundColor="lightgray",$iSundayTextColor="red"; // these are only used with day scale + public $iTextColor="black"; + public $iLabelFormStr="%d"; + public $iIntervall = 1; + + //--------------- + // CONSTRUCTOR + function __construct() { + $this->grid = new LineProperty(); + } + + //--------------- + // PUBLIC METHODS + function Show($aShow=true) { + $this->iShowLabels = $aShow; + } + + function SetIntervall($aInt) { + $this->iIntervall = $aInt; + } + + function SetInterval($aInt) { + $this->iIntervall = $aInt; + } + + function GetIntervall() { + return $this->iIntervall ; + } + + function SetFont($aFFamily,$aFStyle=FS_NORMAL,$aFSize=10) { + $this->iFFamily = $aFFamily; + $this->iFStyle = $aFStyle; + $this->iFSize = $aFSize; + } + + function SetFontColor($aColor) { + $this->iTextColor = $aColor; + } + + function GetFontHeight($aImg) { + $aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize); + return $aImg->GetFontHeight(); + } + + function GetFontWidth($aImg) { + $aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize); + return $aImg->GetFontWidth(); + } + + function GetStrWidth($aImg,$aStr) { + $aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize); + return $aImg->GetTextWidth($aStr); + } + + function SetStyle($aStyle) { + $this->iStyle = $aStyle; + } + + function SetBackgroundColor($aColor) { + $this->iBackgroundColor=$aColor; + } + + function SetFrameWeight($aWeight) { + $this->iFrameWeight=$aWeight; + } + + function SetFrameColor($aColor) { + $this->iFrameColor=$aColor; + } + + // Only used by day scale + function SetWeekendColor($aColor) { + $this->iWeekendBackgroundColor=$aColor; + } + + // Only used by day scale + function SetSundayFontColor($aColor) { + $this->iSundayTextColor=$aColor; + } + + function SetTitleVertMargin($aMargin) { + $this->iTitleVertMargin=$aMargin; + } + + function SetLabelFormatString($aStr) { + $this->iLabelFormStr=$aStr; + } + + function SetFormatString($aStr) { + $this->SetLabelFormatString($aStr); + } + + +} + +//=================================================== +// CLASS GanttScale +// Description: Responsible for calculating and showing +// the scale in a gantt chart. This includes providing methods for +// converting dates to position in the chart as well as stroking the +// date headers (days, week, etc). +//=================================================== +class GanttScale { + public $minute,$hour,$day,$week,$month,$year; + public $divider,$dividerh,$tableTitle; + public $iStartDate=-1,$iEndDate=-1; + // Number of gantt bar position (n.b not necessariliy the same as the number of bars) + // we could have on bar in position 1, and one bar in position 5 then there are two + // bars but the number of bar positions is 5 + public $actinfo; + public $iTopPlotMargin=10,$iBottomPlotMargin=15; + public $iVertLines=-1; + public $iVertHeaderSize=-1; + // The width of the labels (defaults to the widest of all labels) + private $iLabelWidth; + // Out image to stroke the scale to + private $iImg; + private $iTableHeaderBackgroundColor="white",$iTableHeaderFrameColor="black"; + private $iTableHeaderFrameWeight=1; + private $iAvailableHeight=-1,$iVertSpacing=-1; + private $iDateLocale; + private $iVertLayout=GANTT_EVEN; + private $iUsePlotWeekendBackground=true; + private $iWeekStart = 1; // Default to have weekends start on Monday + + //--------------- + // CONSTRUCTOR + function __construct($aImg) { + $this->iImg = $aImg; + $this->iDateLocale = new DateLocale(); + + $this->minute = new HeaderProperty(); + $this->minute->SetIntervall(15); + $this->minute->SetLabelFormatString('i'); + $this->minute->SetFont(FF_FONT0); + $this->minute->grid->SetColor("gray"); + + $this->hour = new HeaderProperty(); + $this->hour->SetFont(FF_FONT0); + $this->hour->SetIntervall(6); + $this->hour->SetStyle(HOURSTYLE_HM24); + $this->hour->SetLabelFormatString('H:i'); + $this->hour->grid->SetColor("gray"); + + $this->day = new HeaderProperty(); + $this->day->grid->SetColor("gray"); + $this->day->SetLabelFormatString('l'); + + $this->week = new HeaderProperty(); + $this->week->SetLabelFormatString("w%d"); + $this->week->SetFont(FF_FONT1); + + $this->month = new HeaderProperty(); + $this->month->SetFont(FF_FONT1,FS_BOLD); + + $this->year = new HeaderProperty(); + $this->year->SetFont(FF_FONT1,FS_BOLD); + + $this->divider=new LineProperty(); + $this->dividerh=new LineProperty(); + $this->dividerh->SetWeight(2); + $this->divider->SetWeight(6); + $this->divider->SetColor('gray'); + $this->divider->SetStyle('fancy'); + + $this->tableTitle=new TextProperty(); + $this->tableTitle->Show(false); + $this->actinfo = new GanttActivityInfo(); + } + + //--------------- + // PUBLIC METHODS + // Specify what headers should be visible + function ShowHeaders($aFlg) { + $this->day->Show($aFlg & GANTT_HDAY); + $this->week->Show($aFlg & GANTT_HWEEK); + $this->month->Show($aFlg & GANTT_HMONTH); + $this->year->Show($aFlg & GANTT_HYEAR); + $this->hour->Show($aFlg & GANTT_HHOUR); + $this->minute->Show($aFlg & GANTT_HMIN); + + // Make some default settings of gridlines whihc makes sense + if( $aFlg & GANTT_HWEEK ) { + $this->month->grid->Show(false); + $this->year->grid->Show(false); + } + if( $aFlg & GANTT_HHOUR ) { + $this->day->grid->SetColor("black"); + } + } + + // Should the weekend background stretch all the way down in the plotarea + function UseWeekendBackground($aShow) { + $this->iUsePlotWeekendBackground = $aShow; + } + + // Have a range been specified? + function IsRangeSet() { + return $this->iStartDate!=-1 && $this->iEndDate!=-1; + } + + // Should the layout be from top or even? + function SetVertLayout($aLayout) { + $this->iVertLayout = $aLayout; + } + + // Which locale should be used? + function SetDateLocale($aLocale) { + $this->iDateLocale->Set($aLocale); + } + + // Number of days we are showing + function GetNumberOfDays() { + return round(($this->iEndDate-$this->iStartDate)/SECPERDAY); + } + + // The width of the actual plot area + function GetPlotWidth() { + $img=$this->iImg; + return $img->width - $img->left_margin - $img->right_margin; + } + + // Specify the width of the titles(labels) for the activities + // (This is by default set to the minimum width enought for the + // widest title) + function SetLabelWidth($aLabelWidth) { + $this->iLabelWidth=$aLabelWidth; + } + + // Which day should the week start? + // 0==Sun, 1==Monday, 2==Tuesday etc + function SetWeekStart($aStartDay) { + $this->iWeekStart = $aStartDay % 7; + + //Recalculate the startday since this will change the week start + $this->SetRange($this->iStartDate,$this->iEndDate); + } + + // Do we show min scale? + function IsDisplayMinute() { + return $this->minute->iShowLabels; + } + + // Do we show day scale? + function IsDisplayHour() { + return $this->hour->iShowLabels; + } + + + // Do we show day scale? + function IsDisplayDay() { + return $this->day->iShowLabels; + } + + // Do we show week scale? + function IsDisplayWeek() { + return $this->week->iShowLabels; + } + + // Do we show month scale? + function IsDisplayMonth() { + return $this->month->iShowLabels; + } + + // Do we show year scale? + function IsDisplayYear() { + return $this->year->iShowLabels; + } + + // Specify spacing (in percent of bar height) between activity bars + function SetVertSpacing($aSpacing) { + $this->iVertSpacing = $aSpacing; + } + + // Specify scale min and max date either as timestamp or as date strings + // Always round to the nearest week boundary + function SetRange($aMin,$aMax) { + $this->iStartDate = $this->NormalizeDate($aMin); + $this->iEndDate = $this->NormalizeDate($aMax); + } + + + // Adjust the start and end date so they fit to beginning/ending + // of the week taking the specified week start day into account. + function AdjustStartEndDay() { + + if( !($this->IsDisplayYear() ||$this->IsDisplayMonth() || $this->IsDisplayWeek()) ) { + // Don't adjust + return; + } + + // Get day in week for start and ending date (Sun==0) + $ds=strftime("%w",$this->iStartDate); + $de=strftime("%w",$this->iEndDate); + + // We want to start on iWeekStart day. But first we subtract a week + // if the startdate is "behind" the day the week start at. + // This way we ensure that the given start date is always included + // in the range. If we don't do this the nearest correct weekday in the week + // to start at might be later than the start date. + if( $ds < $this->iWeekStart ) + $d = strtotime('-7 day',$this->iStartDate); + else + $d = $this->iStartDate; + $adjdate = strtotime(($this->iWeekStart-$ds).' day',$d /*$this->iStartDate*/ ); + $this->iStartDate = $adjdate; + + // We want to end on the last day of the week + $preferredEndDay = ($this->iWeekStart+6)%7; + if( $preferredEndDay != $de ) { + // Solve equivalence eq: $de + x ~ $preferredDay (mod 7) + $adj = (7+($preferredEndDay - $de)) % 7; + $adjdate = strtotime("+$adj day",$this->iEndDate); + $this->iEndDate = $adjdate; + } + } + + // Specify background for the table title area (upper left corner of the table) + function SetTableTitleBackground($aColor) { + $this->iTableHeaderBackgroundColor = $aColor; + } + + /////////////////////////////////////// + // PRIVATE Methods + + // Determine the height of all the scale headers combined + function GetHeaderHeight() { + $img=$this->iImg; + $height=1; + if( $this->minute->iShowLabels ) { + $height += $this->minute->GetFontHeight($img); + $height += $this->minute->iTitleVertMargin; + } + if( $this->hour->iShowLabels ) { + $height += $this->hour->GetFontHeight($img); + $height += $this->hour->iTitleVertMargin; + } + if( $this->day->iShowLabels ) { + $height += $this->day->GetFontHeight($img); + $height += $this->day->iTitleVertMargin; + } + if( $this->week->iShowLabels ) { + $height += $this->week->GetFontHeight($img); + $height += $this->week->iTitleVertMargin; + } + if( $this->month->iShowLabels ) { + $height += $this->month->GetFontHeight($img); + $height += $this->month->iTitleVertMargin; + } + if( $this->year->iShowLabels ) { + $height += $this->year->GetFontHeight($img); + $height += $this->year->iTitleVertMargin; + } + return $height; + } + + // Get width (in pixels) for a single day + function GetDayWidth() { + return ($this->GetPlotWidth()-$this->iLabelWidth+1)/$this->GetNumberOfDays(); + } + + // Get width (in pixels) for a single hour + function GetHourWidth() { + return $this->GetDayWidth() / 24 ; + } + + function GetMinuteWidth() { + return $this->GetHourWidth() / 60 ; + } + + // Nuber of days in a year + function GetNumDaysInYear($aYear) { + if( $this->IsLeap($aYear) ) + return 366; + else + return 365; + } + + // Get week number + function GetWeekNbr($aDate,$aSunStart=true) { + // We can't use the internal strftime() since it gets the weeknumber + // wrong since it doesn't follow ISO on all systems since this is + // system linrary dependent. + // Even worse is that this works differently if we are on a Windows + // or UNIX box (it even differs between UNIX boxes how strftime() + // is natively implemented) + // + // Credit to Nicolas Hoizey for this elegant + // version of Week Nbr calculation. + + $day = $this->NormalizeDate($aDate); + if( $aSunStart ) + $day += 60*60*24; + + /*------------------------------------------------------------------------- + According to ISO-8601 : + "Week 01 of a year is per definition the first week that has the Thursday in this year, + which is equivalent to the week that contains the fourth day of January. + In other words, the first week of a new year is the week that has the majority of its + days in the new year." + + Be carefull, with PHP, -3 % 7 = -3, instead of 4 !!! + + day of year = date("z", $day) + 1 + offset to thursday = 3 - (date("w", $day) + 6) % 7 + first thursday of year = 1 + (11 - date("w", mktime(0, 0, 0, 1, 1, date("Y", $day)))) % 7 + week number = (thursday's day of year - first thursday's day of year) / 7 + 1 + ---------------------------------------------------------------------------*/ + + $thursday = $day + 60 * 60 * 24 * (3 - (date("w", $day) + 6) % 7); // take week's thursday + $week = 1 + (date("z", $thursday) - (11 - date("w", mktime(0, 0, 0, 1, 1, date("Y", $thursday)))) % 7) / 7; + + return $week; + } + + // Is year a leap year? + function IsLeap($aYear) { + // Is the year a leap year? + //$year = 0+date("Y",$aDate); + if( $aYear % 4 == 0) + if( !($aYear % 100 == 0) || ($aYear % 400 == 0) ) + return true; + return false; + } + + // Get current year + function GetYear($aDate) { + return 0+Date("Y",$aDate); + } + + // Return number of days in a year + function GetNumDaysInMonth($aMonth,$aYear) { + $days=array(31,28,31,30,31,30,31,31,30,31,30,31); + $daysl=array(31,29,31,30,31,30,31,31,30,31,30,31); + if( $this->IsLeap($aYear)) + return $daysl[$aMonth]; + else + return $days[$aMonth]; + } + + // Get day in month + function GetMonthDayNbr($aDate) { + return 0+strftime("%d",$aDate); + } + + // Get day in year + function GetYearDayNbr($aDate) { + return 0+strftime("%j",$aDate); + } + + // Get month number + function GetMonthNbr($aDate) { + return 0+strftime("%m",$aDate); + } + + // Translate a date to screen coordinates (horizontal scale) + function TranslateDate($aDate) { + // + // In order to handle the problem with Daylight savings time + // the scale written with equal number of seconds per day beginning + // with the start date. This means that we "cement" the state of + // DST as it is in the start date. If later the scale includes the + // switchover date (depends on the locale) we need to adjust back + // if the date we try to translate has a different DST status since + // we would otherwise be off by one hour. + $aDate = $this->NormalizeDate($aDate); + $tmp = localtime($aDate); + $cloc = $tmp[8]; + $tmp = localtime($this->iStartDate); + $sloc = $tmp[8]; + $offset = 0; + if( $sloc != $cloc) { + if( $sloc ) + $offset = 3600; + else + $offset = -3600; + } + $img=$this->iImg; + return ($aDate-$this->iStartDate-$offset)/SECPERDAY*$this->GetDayWidth()+$img->left_margin+$this->iLabelWidth;; + } + + // Get screen coordinatesz for the vertical position for a bar + function TranslateVertPos($aPos,$atTop=false) { + $img=$this->iImg; + if( $aPos > $this->iVertLines ) + JpGraphError::RaiseL(6015,$aPos); + // 'Illegal vertical position %d' + if( $this->iVertLayout == GANTT_EVEN ) { + // Position the top bar at 1 vert spacing from the scale + $pos = round($img->top_margin + $this->iVertHeaderSize + ($aPos+1)*$this->iVertSpacing); + } + else { + // position the top bar at 1/2 a vert spacing from the scale + $pos = round($img->top_margin + $this->iVertHeaderSize + $this->iTopPlotMargin + ($aPos+1)*$this->iVertSpacing); + } + + if( $atTop ) + $pos -= $this->iVertSpacing; + + return $pos; + } + + // What is the vertical spacing? + function GetVertSpacing() { + return $this->iVertSpacing; + } + + // Convert a date to timestamp + function NormalizeDate($aDate) { + if( $aDate === false ) return false; + if( is_string($aDate) ) { + $t = strtotime($aDate); + if( $t === FALSE || $t === -1 ) { + JpGraphError::RaiseL(6016,$aDate); + //("Date string ($aDate) specified for Gantt activity can not be interpretated. Please make sure it is a valid time string, e.g. 2005-04-23 13:30"); + } + return $t; + } + elseif( is_int($aDate) || is_float($aDate) ) + return $aDate; + else + JpGraphError::RaiseL(6017,$aDate); + //Unknown date format in GanttScale ($aDate)."); + } + + + // Convert a time string to minutes + + function TimeToMinutes($aTimeString) { + // Split in hours and minutes + $pos=strpos($aTimeString,':'); + $minint=60; + if( $pos === false ) { + $hourint = $aTimeString; + $minint = 0; + } + else { + $hourint = floor(substr($aTimeString,0,$pos)); + $minint = floor(substr($aTimeString,$pos+1)); + } + $minint += 60 * $hourint; + return $minint; + } + + // Stroke the day scale (including gridlines) + function StrokeMinutes($aYCoord,$getHeight=false) { + $img=$this->iImg; + $xt=$img->left_margin+$this->iLabelWidth; + $yt=$aYCoord+$img->top_margin; + if( $this->minute->iShowLabels ) { + $img->SetFont($this->minute->iFFamily,$this->minute->iFStyle,$this->minute->iFSize); + $yb = $yt + $img->GetFontHeight() + + $this->minute->iTitleVertMargin + $this->minute->iFrameWeight; + if( $getHeight ) { + return $yb - $img->top_margin; + } + $xb = $img->width-$img->right_margin+1; + $img->SetColor($this->minute->iBackgroundColor); + $img->FilledRectangle($xt,$yt,$xb,$yb); + + $x = $xt; + $img->SetTextAlign("center"); + $day = date('w',$this->iStartDate); + $minint = $this->minute->GetIntervall() ; + + if( 60 % $minint !== 0 ) { + JpGraphError::RaiseL(6018,$minint); + //'Intervall for minutes must divide the hour evenly, e.g. 1,5,10,12,15,20,30 etc You have specified an intervall of '.$minint.' minutes.'); + } + + + $n = 60 / $minint; + $datestamp = $this->iStartDate; + $width = $this->GetHourWidth() / $n ; + if( $width < 8 ) { + // TO small width to draw minute scale + JpGraphError::RaiseL(6019,$width); + //('The available width ('.$width.') for minutes are to small for this scale to be displayed. Please use auto-sizing or increase the width of the graph.'); + } + + $nh = ceil(24*60 / $this->TimeToMinutes($this->hour->GetIntervall()) ); + $nd = $this->GetNumberOfDays(); + // Convert to intervall to seconds + $minint *= 60; + for($j=0; $j < $nd; ++$j, $day += 1, $day %= 7) { + for( $k=0; $k < $nh; ++$k ) { + for($i=0; $i < $n ;++$i, $x+=$width, $datestamp += $minint ) { + if( $day==6 || $day==0 ) { + + $img->PushColor($this->day->iWeekendBackgroundColor); + if( $this->iUsePlotWeekendBackground ) + $img->FilledRectangle($x,$yt+$this->day->iFrameWeight,$x+$width,$img->height-$img->bottom_margin); + else + $img->FilledRectangle($x,$yt+$this->day->iFrameWeight,$x+$width,$yb-$this->day->iFrameWeight); + $img->PopColor(); + + } + + if( $day==0 ) + $img->SetColor($this->day->iSundayTextColor); + else + $img->SetColor($this->day->iTextColor); + + switch( $this->minute->iStyle ) { + case MINUTESTYLE_CUSTOM: + $txt = date($this->minute->iLabelFormStr,$datestamp); + break; + case MINUTESTYLE_MM: + default: + // 15 + $txt = date('i',$datestamp); + break; + } + $img->StrokeText(round($x+$width/2),round($yb-$this->minute->iTitleVertMargin),$txt); + + // Fix a rounding problem the wrong way .. + // If we also have hour scale then don't draw the firsta or last + // gridline since that will be overwritten by the hour scale gridline if such exists. + // However, due to the propagation of rounding of the 'x+=width' term in the loop + // this might sometimes be one pixel of so we fix this by not drawing it. + // The proper way to fix it would be to re-calculate the scale for each step and + // not using the additive term. + if( !(($i == $n || $i==0) && $this->hour->iShowLabels && $this->hour->grid->iShow) ) { + $img->SetColor($this->minute->grid->iColor); + $img->SetLineWeight($this->minute->grid->iWeight); + $img->Line($x,$yt,$x,$yb); + $this->minute->grid->Stroke($img,$x,$yb,$x,$img->height-$img->bottom_margin); + } + } + } + } + $img->SetColor($this->minute->iFrameColor); + $img->SetLineWeight($this->minute->iFrameWeight); + $img->Rectangle($xt,$yt,$xb,$yb); + return $yb - $img->top_margin; + } + return $aYCoord; + } + + // Stroke the day scale (including gridlines) + function StrokeHours($aYCoord,$getHeight=false) { + $img=$this->iImg; + $xt=$img->left_margin+$this->iLabelWidth; + $yt=$aYCoord+$img->top_margin; + if( $this->hour->iShowLabels ) { + $img->SetFont($this->hour->iFFamily,$this->hour->iFStyle,$this->hour->iFSize); + $yb = $yt + $img->GetFontHeight() + + $this->hour->iTitleVertMargin + $this->hour->iFrameWeight; + if( $getHeight ) { + return $yb - $img->top_margin; + } + $xb = $img->width-$img->right_margin+1; + $img->SetColor($this->hour->iBackgroundColor); + $img->FilledRectangle($xt,$yt,$xb,$yb); + + $x = $xt; + $img->SetTextAlign("center"); + $tmp = $this->hour->GetIntervall() ; + $minint = $this->TimeToMinutes($tmp); + if( 1440 % $minint !== 0 ) { + JpGraphError::RaiseL(6020,$tmp); + //('Intervall for hours must divide the day evenly, e.g. 0:30, 1:00, 1:30, 4:00 etc. You have specified an intervall of '.$tmp); + } + + $n = ceil(24*60 / $minint ); + $datestamp = $this->iStartDate; + $day = date('w',$this->iStartDate); + $doback = !$this->minute->iShowLabels; + $width = $this->GetDayWidth() / $n ; + for($j=0; $j < $this->GetNumberOfDays(); ++$j, $day += 1,$day %= 7) { + for($i=0; $i < $n ;++$i, $x+=$width) { + if( $day==6 || $day==0 ) { + + $img->PushColor($this->day->iWeekendBackgroundColor); + if( $this->iUsePlotWeekendBackground && $doback ) + $img->FilledRectangle($x,$yt+$this->day->iFrameWeight,$x+$width,$img->height-$img->bottom_margin); + else + $img->FilledRectangle($x,$yt+$this->day->iFrameWeight,$x+$width,$yb-$this->day->iFrameWeight); + $img->PopColor(); + + } + + if( $day==0 ) + $img->SetColor($this->day->iSundayTextColor); + else + $img->SetColor($this->day->iTextColor); + + switch( $this->hour->iStyle ) { + case HOURSTYLE_HMAMPM: + // 1:35pm + $txt = date('g:ia',$datestamp); + break; + case HOURSTYLE_H24: + // 13 + $txt = date('H',$datestamp); + break; + case HOURSTYLE_HAMPM: + $txt = date('ga',$datestamp); + break; + case HOURSTYLE_CUSTOM: + $txt = date($this->hour->iLabelFormStr,$datestamp); + break; + case HOURSTYLE_HM24: + default: + $txt = date('H:i',$datestamp); + break; + } + $img->StrokeText(round($x+$width/2),round($yb-$this->hour->iTitleVertMargin),$txt); + $img->SetColor($this->hour->grid->iColor); + $img->SetLineWeight($this->hour->grid->iWeight); + $img->Line($x,$yt,$x,$yb); + $this->hour->grid->Stroke($img,$x,$yb,$x,$img->height-$img->bottom_margin); + //$datestamp += $minint*60 + $datestamp = mktime(date('H',$datestamp),date('i',$datestamp)+$minint,0, + date("m",$datestamp),date("d",$datestamp)+1,date("Y",$datestamp)); + + } + } + $img->SetColor($this->hour->iFrameColor); + $img->SetLineWeight($this->hour->iFrameWeight); + $img->Rectangle($xt,$yt,$xb,$yb); + return $yb - $img->top_margin; + } + return $aYCoord; + } + + + // Stroke the day scale (including gridlines) + function StrokeDays($aYCoord,$getHeight=false) { + $img=$this->iImg; + $daywidth=$this->GetDayWidth(); + $xt=$img->left_margin+$this->iLabelWidth; + $yt=$aYCoord+$img->top_margin; + if( $this->day->iShowLabels ) { + $img->SetFont($this->day->iFFamily,$this->day->iFStyle,$this->day->iFSize); + $yb=$yt + $img->GetFontHeight() + $this->day->iTitleVertMargin + $this->day->iFrameWeight; + if( $getHeight ) { + return $yb - $img->top_margin; + } + $xb=$img->width-$img->right_margin+1; + $img->SetColor($this->day->iBackgroundColor); + $img->FilledRectangle($xt,$yt,$xb,$yb); + + $x = $xt; + $img->SetTextAlign("center"); + $day = date('w',$this->iStartDate); + $datestamp = $this->iStartDate; + + $doback = !($this->hour->iShowLabels || $this->minute->iShowLabels); + + setlocale(LC_TIME,$this->iDateLocale->iLocale); + + for($i=0; $i < $this->GetNumberOfDays(); ++$i, $x+=$daywidth, $day += 1,$day %= 7) { + if( $day==6 || $day==0 ) { + $img->SetColor($this->day->iWeekendBackgroundColor); + if( $this->iUsePlotWeekendBackground && $doback) + $img->FilledRectangle($x,$yt+$this->day->iFrameWeight, + $x+$daywidth,$img->height-$img->bottom_margin); + else + $img->FilledRectangle($x,$yt+$this->day->iFrameWeight, + $x+$daywidth,$yb-$this->day->iFrameWeight); + } + + $mn = strftime('%m',$datestamp); + if( $mn[0]=='0' ) + $mn = $mn[1]; + + switch( $this->day->iStyle ) { + case DAYSTYLE_LONG: + // "Monday" + $txt = strftime('%A',$datestamp); + break; + case DAYSTYLE_SHORT: + // "Mon" + $txt = strftime('%a',$datestamp); + break; + case DAYSTYLE_SHORTDAYDATE1: + // "Mon 23/6" + $txt = strftime('%a %d/'.$mn,$datestamp); + break; + case DAYSTYLE_SHORTDAYDATE2: + // "Mon 23 Jun" + $txt = strftime('%a %d %b',$datestamp); + break; + case DAYSTYLE_SHORTDAYDATE3: + // "Mon 23 Jun 2003" + $txt = strftime('%a %d %b %Y',$datestamp); + break; + case DAYSTYLE_LONGDAYDATE1: + // "Monday 23 Jun" + $txt = strftime('%A %d %b',$datestamp); + break; + case DAYSTYLE_LONGDAYDATE2: + // "Monday 23 Jun 2003" + $txt = strftime('%A %d %b %Y',$datestamp); + break; + case DAYSTYLE_SHORTDATE1: + // "23/6" + $txt = strftime('%d/'.$mn,$datestamp); + break; + case DAYSTYLE_SHORTDATE2: + // "23 Jun" + $txt = strftime('%d %b',$datestamp); + break; + case DAYSTYLE_SHORTDATE3: + // "Mon 23" + $txt = strftime('%a %d',$datestamp); + break; + case DAYSTYLE_SHORTDATE4: + // "23" + $txt = strftime('%d',$datestamp); + break; + case DAYSTYLE_CUSTOM: + // Custom format + $txt = strftime($this->day->iLabelFormStr,$datestamp); + break; + case DAYSTYLE_ONELETTER: + default: + // "M" + $txt = strftime('%A',$datestamp); + $txt = strtoupper($txt[0]); + break; + } + + if( $day==0 ) + $img->SetColor($this->day->iSundayTextColor); + else + $img->SetColor($this->day->iTextColor); + $img->StrokeText(round($x+$daywidth/2+1), + round($yb-$this->day->iTitleVertMargin),$txt); + $img->SetColor($this->day->grid->iColor); + $img->SetLineWeight($this->day->grid->iWeight); + $img->Line($x,$yt,$x,$yb); + $this->day->grid->Stroke($img,$x,$yb,$x,$img->height-$img->bottom_margin); + $datestamp = mktime(0,0,0,date("m",$datestamp),date("d",$datestamp)+1,date("Y",$datestamp)); + //$datestamp += SECPERDAY; + + } + $img->SetColor($this->day->iFrameColor); + $img->SetLineWeight($this->day->iFrameWeight); + $img->Rectangle($xt,$yt,$xb,$yb); + return $yb - $img->top_margin; + } + return $aYCoord; + } + + // Stroke week header and grid + function StrokeWeeks($aYCoord,$getHeight=false) { + if( $this->week->iShowLabels ) { + $img=$this->iImg; + $yt=$aYCoord+$img->top_margin; + $img->SetFont($this->week->iFFamily,$this->week->iFStyle,$this->week->iFSize); + $yb=$yt + $img->GetFontHeight() + $this->week->iTitleVertMargin + $this->week->iFrameWeight; + + if( $getHeight ) { + return $yb - $img->top_margin; + } + + $xt=$img->left_margin+$this->iLabelWidth; + $weekwidth=$this->GetDayWidth()*7; + $wdays=$this->iDateLocale->GetDayAbb(); + $xb=$img->width-$img->right_margin+1; + $week = $this->iStartDate; + $weeknbr=$this->GetWeekNbr($week); + $img->SetColor($this->week->iBackgroundColor); + $img->FilledRectangle($xt,$yt,$xb,$yb); + $img->SetColor($this->week->grid->iColor); + $x = $xt; + if( $this->week->iStyle==WEEKSTYLE_WNBR ) { + $img->SetTextAlign("center"); + $txtOffset = $weekwidth/2+1; + } + elseif( $this->week->iStyle==WEEKSTYLE_FIRSTDAY || + $this->week->iStyle==WEEKSTYLE_FIRSTDAY2 || + $this->week->iStyle==WEEKSTYLE_FIRSTDAYWNBR || + $this->week->iStyle==WEEKSTYLE_FIRSTDAY2WNBR ) { + $img->SetTextAlign("left"); + $txtOffset = 3; + } + else { + JpGraphError::RaiseL(6021); + //("Unknown formatting style for week."); + } + + for($i=0; $i<$this->GetNumberOfDays()/7; ++$i, $x+=$weekwidth) { + $img->PushColor($this->week->iTextColor); + + if( $this->week->iStyle==WEEKSTYLE_WNBR ) + $txt = sprintf($this->week->iLabelFormStr,$weeknbr); + elseif( $this->week->iStyle==WEEKSTYLE_FIRSTDAY || + $this->week->iStyle==WEEKSTYLE_FIRSTDAYWNBR ) + $txt = date("j/n",$week); + elseif( $this->week->iStyle==WEEKSTYLE_FIRSTDAY2 || + $this->week->iStyle==WEEKSTYLE_FIRSTDAY2WNBR ) { + $monthnbr = date("n",$week)-1; + $shortmonth = $this->iDateLocale->GetShortMonthName($monthnbr); + $txt = Date("j",$week)." ".$shortmonth; + } + + if( $this->week->iStyle==WEEKSTYLE_FIRSTDAYWNBR || + $this->week->iStyle==WEEKSTYLE_FIRSTDAY2WNBR ) { + $w = sprintf($this->week->iLabelFormStr,$weeknbr); + $txt .= ' '.$w; + } + + $img->StrokeText(round($x+$txtOffset), + round($yb-$this->week->iTitleVertMargin),$txt); + + $week = strtotime('+7 day',$week); + $weeknbr = $this->GetWeekNbr($week); + $img->PopColor(); + $img->SetLineWeight($this->week->grid->iWeight); + $img->Line($x,$yt,$x,$yb); + $this->week->grid->Stroke($img,$x,$yb,$x,$img->height-$img->bottom_margin); + } + $img->SetColor($this->week->iFrameColor); + $img->SetLineWeight($this->week->iFrameWeight); + $img->Rectangle($xt,$yt,$xb,$yb); + return $yb-$img->top_margin; + } + return $aYCoord; + } + + // Format the mont scale header string + function GetMonthLabel($aMonthNbr,$year) { + $sn = $this->iDateLocale->GetShortMonthName($aMonthNbr); + $ln = $this->iDateLocale->GetLongMonthName($aMonthNbr); + switch($this->month->iStyle) { + case MONTHSTYLE_SHORTNAME: + $m=$sn; + break; + case MONTHSTYLE_LONGNAME: + $m=$ln; + break; + case MONTHSTYLE_SHORTNAMEYEAR2: + $m=$sn." '".substr("".$year,2); + break; + case MONTHSTYLE_SHORTNAMEYEAR4: + $m=$sn." ".$year; + break; + case MONTHSTYLE_LONGNAMEYEAR2: + $m=$ln." '".substr("".$year,2); + break; + case MONTHSTYLE_LONGNAMEYEAR4: + $m=$ln." ".$year; + break; + case MONTHSTYLE_FIRSTLETTER: + $m=$sn[0]; + break; + } + return $m; + } + + // Stroke month scale and gridlines + function StrokeMonths($aYCoord,$getHeight=false) { + if( $this->month->iShowLabels ) { + $img=$this->iImg; + $img->SetFont($this->month->iFFamily,$this->month->iFStyle,$this->month->iFSize); + $yt=$aYCoord+$img->top_margin; + $yb=$yt + $img->GetFontHeight() + $this->month->iTitleVertMargin + $this->month->iFrameWeight; + if( $getHeight ) { + return $yb - $img->top_margin; + } + $monthnbr = $this->GetMonthNbr($this->iStartDate)-1; + $xt=$img->left_margin+$this->iLabelWidth; + $xb=$img->width-$img->right_margin+1; + + $img->SetColor($this->month->iBackgroundColor); + $img->FilledRectangle($xt,$yt,$xb,$yb); + + $img->SetLineWeight($this->month->grid->iWeight); + $img->SetColor($this->month->iTextColor); + $year = 0+strftime("%Y",$this->iStartDate); + $img->SetTextAlign("center"); + if( $this->GetMonthNbr($this->iStartDate) == $this->GetMonthNbr($this->iEndDate) + && $this->GetYear($this->iStartDate)==$this->GetYear($this->iEndDate) ) { + $monthwidth=$this->GetDayWidth()*($this->GetMonthDayNbr($this->iEndDate) - $this->GetMonthDayNbr($this->iStartDate) + 1); + } + else { + $monthwidth=$this->GetDayWidth()*($this->GetNumDaysInMonth($monthnbr,$year)-$this->GetMonthDayNbr($this->iStartDate)+1); + } + // Is it enough space to stroke the first month? + $monthName = $this->GetMonthLabel($monthnbr,$year); + if( $monthwidth >= 1.2*$img->GetTextWidth($monthName) ) { + $img->SetColor($this->month->iTextColor); + $img->StrokeText(round($xt+$monthwidth/2+1), + round($yb-$this->month->iTitleVertMargin), + $monthName); + } + $x = $xt + $monthwidth; + while( $x < $xb ) { + $img->SetColor($this->month->grid->iColor); + $img->Line($x,$yt,$x,$yb); + $this->month->grid->Stroke($img,$x,$yb,$x,$img->height-$img->bottom_margin); + $monthnbr++; + if( $monthnbr==12 ) { + $monthnbr=0; + $year++; + } + $monthName = $this->GetMonthLabel($monthnbr,$year); + $monthwidth=$this->GetDayWidth()*$this->GetNumDaysInMonth($monthnbr,$year); + if( $x + $monthwidth < $xb ) + $w = $monthwidth; + else + $w = $xb-$x; + if( $w >= 1.2*$img->GetTextWidth($monthName) ) { + $img->SetColor($this->month->iTextColor); + $img->StrokeText(round($x+$w/2+1), + round($yb-$this->month->iTitleVertMargin),$monthName); + } + $x += $monthwidth; + } + $img->SetColor($this->month->iFrameColor); + $img->SetLineWeight($this->month->iFrameWeight); + $img->Rectangle($xt,$yt,$xb,$yb); + return $yb-$img->top_margin; + } + return $aYCoord; + } + + // Stroke year scale and gridlines + function StrokeYears($aYCoord,$getHeight=false) { + if( $this->year->iShowLabels ) { + $img=$this->iImg; + $yt=$aYCoord+$img->top_margin; + $img->SetFont($this->year->iFFamily,$this->year->iFStyle,$this->year->iFSize); + $yb=$yt + $img->GetFontHeight() + $this->year->iTitleVertMargin + $this->year->iFrameWeight; + + if( $getHeight ) { + return $yb - $img->top_margin; + } + + $xb=$img->width-$img->right_margin+1; + $xt=$img->left_margin+$this->iLabelWidth; + $year = $this->GetYear($this->iStartDate); + $img->SetColor($this->year->iBackgroundColor); + $img->FilledRectangle($xt,$yt,$xb,$yb); + $img->SetLineWeight($this->year->grid->iWeight); + $img->SetTextAlign("center"); + if( $year == $this->GetYear($this->iEndDate) ) + $yearwidth=$this->GetDayWidth()*($this->GetYearDayNbr($this->iEndDate)-$this->GetYearDayNbr($this->iStartDate)+1); + else + $yearwidth=$this->GetDayWidth()*($this->GetNumDaysInYear($year)-$this->GetYearDayNbr($this->iStartDate)+1); + + // The space for a year must be at least 20% bigger than the actual text + // so we allow 10% margin on each side + if( $yearwidth >= 1.20*$img->GetTextWidth("".$year) ) { + $img->SetColor($this->year->iTextColor); + $img->StrokeText(round($xt+$yearwidth/2+1), + round($yb-$this->year->iTitleVertMargin), + $year); + } + $x = $xt + $yearwidth; + while( $x < $xb ) { + $img->SetColor($this->year->grid->iColor); + $img->Line($x,$yt,$x,$yb); + $this->year->grid->Stroke($img,$x,$yb,$x,$img->height-$img->bottom_margin); + $year += 1; + $yearwidth=$this->GetDayWidth()*$this->GetNumDaysInYear($year); + if( $x + $yearwidth < $xb ) + $w = $yearwidth; + else + $w = $xb-$x; + if( $w >= 1.2*$img->GetTextWidth("".$year) ) { + $img->SetColor($this->year->iTextColor); + $img->StrokeText(round($x+$w/2+1), + round($yb-$this->year->iTitleVertMargin), + $year); + } + $x += $yearwidth; + } + $img->SetColor($this->year->iFrameColor); + $img->SetLineWeight($this->year->iFrameWeight); + $img->Rectangle($xt,$yt,$xb,$yb); + return $yb-$img->top_margin; + } + return $aYCoord; + } + + // Stroke table title (upper left corner) + function StrokeTableHeaders($aYBottom) { + $img=$this->iImg; + $xt=$img->left_margin; + $yt=$img->top_margin; + $xb=$xt+$this->iLabelWidth; + $yb=$aYBottom+$img->top_margin; + + if( $this->tableTitle->iShow ) { + $img->SetColor($this->iTableHeaderBackgroundColor); + $img->FilledRectangle($xt,$yt,$xb,$yb); + $this->tableTitle->Align("center","top"); + $this->tableTitle->Stroke($img,$xt+($xb-$xt)/2+1,$yt+2); + $img->SetColor($this->iTableHeaderFrameColor); + $img->SetLineWeight($this->iTableHeaderFrameWeight); + $img->Rectangle($xt,$yt,$xb,$yb); + } + + $this->actinfo->Stroke($img,$xt,$yt,$xb,$yb,$this->tableTitle->iShow); + + + // Draw the horizontal dividing line + $this->dividerh->Stroke($img,$xt,$yb,$img->width-$img->right_margin,$yb); + + // Draw the vertical dividing line + // We do the width "manually" since we want the line only to grow + // to the left + $fancy = $this->divider->iStyle == 'fancy' ; + if( $fancy ) { + $this->divider->iStyle = 'solid'; + } + + $tmp = $this->divider->iWeight; + $this->divider->iWeight=1; + $y = $img->height-$img->bottom_margin; + for($i=0; $i < $tmp; ++$i ) { + $this->divider->Stroke($img,$xb-$i,$yt,$xb-$i,$y); + } + + // Should we draw "fancy" divider + if( $fancy ) { + $img->SetLineWeight(1); + $img->SetColor($this->iTableHeaderFrameColor); + $img->Line($xb,$yt,$xb,$y); + $img->Line($xb-$tmp+1,$yt,$xb-$tmp+1,$y); + $img->SetColor('white'); + $img->Line($xb-$tmp+2,$yt,$xb-$tmp+2,$y); + } + } + + // Main entry point to stroke scale + function Stroke() { + if( !$this->IsRangeSet() ) { + JpGraphError::RaiseL(6022); + //("Gantt scale has not been specified."); + } + $img=$this->iImg; + + // If minutes are displayed then hour interval must be 1 + if( $this->IsDisplayMinute() && $this->hour->GetIntervall() > 1 ) { + JpGraphError::RaiseL(6023); + //('If you display both hour and minutes the hour intervall must be 1 (Otherwise it doesn\' make sense to display minutes).'); + } + + // Stroke all headers. As argument we supply the offset from the + // top which depends on any previous headers + + // First find out the height of each header + $offy=$this->StrokeYears(0,true); + $offm=$this->StrokeMonths($offy,true); + $offw=$this->StrokeWeeks($offm,true); + $offd=$this->StrokeDays($offw,true); + $offh=$this->StrokeHours($offd,true); + $offmin=$this->StrokeMinutes($offh,true); + + + // ... then we can stroke them in the "backwards order to ensure that + // the larger scale gridlines is stroked over the smaller scale gridline + $this->StrokeMinutes($offh); + $this->StrokeHours($offd); + $this->StrokeDays($offw); + $this->StrokeWeeks($offm); + $this->StrokeMonths($offy); + $this->StrokeYears(0); + + // Now when we now the oaverall size of the scale headers + // we can stroke the overall table headers + $this->StrokeTableHeaders($offmin); + + // Now we can calculate the correct scaling factor for each vertical position + $this->iAvailableHeight = $img->height - $img->top_margin - $img->bottom_margin - $offd; + + $this->iVertHeaderSize = $offmin; + if( $this->iVertSpacing == -1 ) + $this->iVertSpacing = $this->iAvailableHeight / $this->iVertLines; + } +} + + +//=================================================== +// CLASS GanttConstraint +// Just a structure to store all the values for a constraint +//=================================================== +class GanttConstraint { + public $iConstrainRow; + public $iConstrainType; + public $iConstrainColor; + public $iConstrainArrowSize; + public $iConstrainArrowType; + + //--------------- + // CONSTRUCTOR + function __construct($aRow,$aType,$aColor,$aArrowSize,$aArrowType){ + $this->iConstrainType = $aType; + $this->iConstrainRow = $aRow; + $this->iConstrainColor=$aColor; + $this->iConstrainArrowSize=$aArrowSize; + $this->iConstrainArrowType=$aArrowType; + } +} + + +//=================================================== +// CLASS GanttPlotObject +// The common signature for a Gantt object +//=================================================== +class GanttPlotObject { + public $title,$caption; + public $csimarea='',$csimtarget='',$csimwintarget='',$csimalt=''; + public $constraints = array(); + public $iCaptionMargin=5; + public $iConstrainPos=array(); + protected $iStart=""; // Start date + public $iVPos=0; // Vertical position + protected $iLabelLeftMargin=2; // Title margin + + function __construct() { + $this->title = new TextProperty(); + $this->title->Align('left','center'); + $this->caption = new TextProperty(); + } + + function GetCSIMArea() { + return $this->csimarea; + } + + function SetCSIMTarget($aTarget,$aAlt='',$aWinTarget='') { + if( !is_string($aTarget) ) { + $tv = substr(var_export($aTarget,true),0,40); + JpGraphError::RaiseL(6024,$tv); + //('CSIM Target must be specified as a string.'."\nStart of target is:\n$tv"); + } + if( !is_string($aAlt) ) { + $tv = substr(var_export($aAlt,true),0,40); + JpGraphError::RaiseL(6025,$tv); + //('CSIM Alt text must be specified as a string.'."\nStart of alt text is:\n$tv"); + } + + $this->csimtarget=$aTarget; + $this->csimwintarget=$aWinTarget; + $this->csimalt=$aAlt; + } + + function SetCSIMAlt($aAlt) { + if( !is_string($aAlt) ) { + $tv = substr(var_export($aAlt,true),0,40); + JpGraphError::RaiseL(6025,$tv); + //('CSIM Alt text must be specified as a string.'."\nStart of alt text is:\n$tv"); + } + $this->csimalt=$aAlt; + } + + function SetConstrain($aRow,$aType,$aColor='black',$aArrowSize=ARROW_S2,$aArrowType=ARROWT_SOLID) { + $this->constraints[] = new GanttConstraint($aRow, $aType, $aColor, $aArrowSize, $aArrowType); + } + + function SetConstrainPos($xt,$yt,$xb,$yb) { + $this->iConstrainPos = array($xt,$yt,$xb,$yb); + } + + function GetMinDate() { + return $this->iStart; + } + + function GetMaxDate() { + return $this->iStart; + } + + function SetCaptionMargin($aMarg) { + $this->iCaptionMargin=$aMarg; + } + + function GetAbsHeight($aImg) { + return 0; + } + + function GetLineNbr() { + return $this->iVPos; + } + + function SetLabelLeftMargin($aOff) { + $this->iLabelLeftMargin=$aOff; + } + + function StrokeActInfo($aImg,$aScale,$aYPos) { + $cols=array(); + $aScale->actinfo->GetColStart($aImg,$cols,true); + $this->title->Stroke($aImg,$cols,$aYPos); + } +} + +//=================================================== +// CLASS Progress +// Holds parameters for the progress indicator +// displyed within a bar +//=================================================== +class Progress { + public $iProgress=-1; + public $iPattern=GANTT_SOLID; + public $iColor="black", $iFillColor='black'; + public $iDensity=98, $iHeight=0.65; + + function Set($aProg) { + if( $aProg < 0.0 || $aProg > 1.0 ) { + JpGraphError::RaiseL(6027); + //("Progress value must in range [0, 1]"); + } + $this->iProgress = $aProg; + } + + function SetPattern($aPattern,$aColor="blue",$aDensity=98) { + $this->iPattern = $aPattern; + $this->iColor = $aColor; + $this->iDensity = $aDensity; + } + + function SetFillColor($aColor) { + $this->iFillColor = $aColor; + } + + function SetHeight($aHeight) { + $this->iHeight = $aHeight; + } +} + +define('GANTT_HGRID1',0); +define('GANTT_HGRID2',1); + +//=================================================== +// CLASS HorizontalGridLine +// Responsible for drawinf horizontal gridlines and filled alternatibg rows +//=================================================== +class HorizontalGridLine { + private $iGraph=NULL; + private $iRowColor1 = '', $iRowColor2 = ''; + private $iShow=false; + private $line=null; + private $iStart=0; // 0=from left margin, 1=just along header + + function __construct() { + $this->line = new LineProperty(); + $this->line->SetColor('gray@0.4'); + $this->line->SetStyle('dashed'); + } + + function Show($aShow=true) { + $this->iShow = $aShow; + } + + function SetRowFillColor($aColor1,$aColor2='') { + $this->iRowColor1 = $aColor1; + $this->iRowColor2 = $aColor2; + } + + function SetStart($aStart) { + $this->iStart = $aStart; + } + + function Stroke($aImg,$aScale) { + + if( ! $this->iShow ) return; + + // Get horizontal width of line + /* + $limst = $aScale->iStartDate; + $limen = $aScale->iEndDate; + $xt = round($aScale->TranslateDate($aScale->iStartDate)); + $xb = round($aScale->TranslateDate($limen)); + */ + + if( $this->iStart === 0 ) { + $xt = $aImg->left_margin-1; + } + else { + $xt = round($aScale->TranslateDate($aScale->iStartDate))+1; + } + + $xb = $aImg->width-$aImg->right_margin; + + $yt = round($aScale->TranslateVertPos(0)); + $yb = round($aScale->TranslateVertPos(1)); + $height = $yb - $yt; + + // Loop around for all lines in the chart + for($i=0; $i < $aScale->iVertLines; ++$i ) { + $yb = $yt - $height; + $this->line->Stroke($aImg,$xt,$yb,$xb,$yb); + if( $this->iRowColor1 !== '' ) { + if( $i % 2 == 0 ) { + $aImg->PushColor($this->iRowColor1); + $aImg->FilledRectangle($xt,$yt,$xb,$yb); + $aImg->PopColor(); + } + elseif( $this->iRowColor2 !== '' ) { + $aImg->PushColor($this->iRowColor2); + $aImg->FilledRectangle($xt,$yt,$xb,$yb); + $aImg->PopColor(); + } + } + $yt = round($aScale->TranslateVertPos($i+1)); + } + $yb = $yt - $height; + $this->line->Stroke($aImg,$xt,$yb,$xb,$yb); + } +} + + +//=================================================== +// CLASS GanttBar +// Responsible for formatting individual gantt bars +//=================================================== +class GanttBar extends GanttPlotObject { + public $progress; + public $leftMark,$rightMark; + private $iEnd; + private $iHeightFactor=0.5; + private $iFillColor="white",$iFrameColor="black"; + private $iShadow=false,$iShadowColor="darkgray",$iShadowWidth=1,$iShadowFrame="black"; + private $iPattern=GANTT_RDIAG,$iPatternColor="blue",$iPatternDensity=95; + private $iBreakStyle=false, $iBreakLineStyle='dotted',$iBreakLineWeight=1; + //--------------- + // CONSTRUCTOR + function __construct($aPos,$aLabel,$aStart,$aEnd,$aCaption="",$aHeightFactor=0.6) { + parent::__construct(); + $this->iStart = $aStart; + // Is the end date given as a date or as number of days added to start date? + if( is_string($aEnd) ) { + // If end date has been specified without a time we will asssume + // end date is at the end of that date + if( strpos($aEnd,':') === false ) { + $this->iEnd = strtotime($aEnd)+SECPERDAY-1; + } + else { + $this->iEnd = $aEnd; + } + } + elseif(is_int($aEnd) || is_float($aEnd) ) { + $this->iEnd = strtotime($aStart)+round($aEnd*SECPERDAY); + } + $this->iVPos = $aPos; + $this->iHeightFactor = $aHeightFactor; + $this->title->Set($aLabel); + $this->caption = new TextProperty($aCaption); + $this->caption->Align("left","center"); + $this->leftMark =new PlotMark(); + $this->leftMark->Hide(); + $this->rightMark=new PlotMark(); + $this->rightMark->Hide(); + $this->progress = new Progress(); + } + + //--------------- + // PUBLIC METHODS + function SetShadow($aShadow=true,$aColor="gray") { + $this->iShadow=$aShadow; + $this->iShadowColor=$aColor; + } + + function SetBreakStyle($aFlg=true,$aLineStyle='dotted',$aLineWeight=1) { + $this->iBreakStyle = $aFlg; + $this->iBreakLineStyle = $aLineStyle; + $this->iBreakLineWeight = $aLineWeight; + } + + function GetMaxDate() { + return $this->iEnd; + } + + function SetHeight($aHeight) { + $this->iHeightFactor = $aHeight; + } + + function SetColor($aColor) { + $this->iFrameColor = $aColor; + } + + function SetFillColor($aColor) { + $this->iFillColor = $aColor; + } + + function GetAbsHeight($aImg) { + if( is_int($this->iHeightFactor) || $this->leftMark->show || $this->rightMark->show ) { + $m=-1; + if( is_int($this->iHeightFactor) ) + $m = $this->iHeightFactor; + if( $this->leftMark->show ) + $m = max($m,$this->leftMark->width*2); + if( $this->rightMark->show ) + $m = max($m,$this->rightMark->width*2); + return $m; + } + else + return -1; + } + + function SetPattern($aPattern,$aColor="blue",$aDensity=95) { + $this->iPattern = $aPattern; + $this->iPatternColor = $aColor; + $this->iPatternDensity = $aDensity; + } + + function Stroke($aImg,$aScale) { + $factory = new RectPatternFactory(); + $prect = $factory->Create($this->iPattern,$this->iPatternColor); + $prect->SetDensity($this->iPatternDensity); + + // If height factor is specified as a float between 0,1 then we take it as meaning + // percetage of the scale width between horizontal line. + // If it is an integer > 1 we take it to mean the absolute height in pixels + if( $this->iHeightFactor > -0.0 && $this->iHeightFactor <= 1.1) + $vs = $aScale->GetVertSpacing()*$this->iHeightFactor; + elseif(is_int($this->iHeightFactor) && $this->iHeightFactor>2 && $this->iHeightFactor < 200 ) + $vs = $this->iHeightFactor; + else { + JpGraphError::RaiseL(6028,$this->iHeightFactor); + // ("Specified height (".$this->iHeightFactor.") for gantt bar is out of range."); + } + + // Clip date to min max dates to show + $st = $aScale->NormalizeDate($this->iStart); + $en = $aScale->NormalizeDate($this->iEnd); + + $limst = max($st,$aScale->iStartDate); + $limen = min($en,$aScale->iEndDate); + + $xt = round($aScale->TranslateDate($limst)); + $xb = round($aScale->TranslateDate($limen)); + $yt = round($aScale->TranslateVertPos($this->iVPos)-$vs-($aScale->GetVertSpacing()/2-$vs/2)); + $yb = round($aScale->TranslateVertPos($this->iVPos)-($aScale->GetVertSpacing()/2-$vs/2)); + $middle = round($yt+($yb-$yt)/2); + $this->StrokeActInfo($aImg,$aScale,$middle); + + // CSIM for title + if( ! empty($this->title->csimtarget) ) { + $colwidth = $this->title->GetColWidth($aImg); + $colstarts=array(); + $aScale->actinfo->GetColStart($aImg,$colstarts,true); + $n = min(count($colwidth),count($this->title->csimtarget)); + for( $i=0; $i < $n; ++$i ) { + $title_xt = $colstarts[$i]; + $title_xb = $title_xt + $colwidth[$i]; + $coords = "$title_xt,$yt,$title_xb,$yt,$title_xb,$yb,$title_xt,$yb"; + + if( ! empty($this->title->csimtarget[$i]) ) { + $this->csimarea .= "title->csimtarget[$i]."\""; + + if( ! empty($this->title->csimwintarget[$i]) ) { + $this->csimarea .= "target=\"".$this->title->csimwintarget[$i]."\" "; + } + + if( ! empty($this->title->csimalt[$i]) ) { + $tmp = $this->title->csimalt[$i]; + $this->csimarea .= " title=\"$tmp\" alt=\"$tmp\" "; + } + $this->csimarea .= " />\n"; + } + } + } + + // Check if the bar is totally outside the current scale range + if( $en < $aScale->iStartDate || $st > $aScale->iEndDate ) + return; + + + // Remember the positions for the bar + $this->SetConstrainPos($xt,$yt,$xb,$yb); + + + + $prect->ShowFrame(false); + $prect->SetBackground($this->iFillColor); + if( $this->iBreakStyle ) { + $aImg->SetColor($this->iFrameColor); + $olds = $aImg->SetLineStyle($this->iBreakLineStyle); + $oldw = $aImg->SetLineWeight($this->iBreakLineWeight); + $aImg->StyleLine($xt,$yt,$xb,$yt); + $aImg->StyleLine($xt,$yb,$xb,$yb); + $aImg->SetLineStyle($olds); + $aImg->SetLineWeight($oldw); + } + else { + if( $this->iShadow ) { + $aImg->SetColor($this->iFrameColor); + $aImg->ShadowRectangle($xt,$yt,$xb,$yb,$this->iFillColor,$this->iShadowWidth,$this->iShadowColor); + $prect->SetPos(new Rectangle($xt+1,$yt+1,$xb-$xt-$this->iShadowWidth-2,$yb-$yt-$this->iShadowWidth-2)); + $prect->Stroke($aImg); + } + else { + $prect->SetPos(new Rectangle($xt,$yt,$xb-$xt+1,$yb-$yt+1)); + $prect->Stroke($aImg); + $aImg->SetColor($this->iFrameColor); + $aImg->Rectangle($xt,$yt,$xb,$yb); + } + } + // CSIM for bar + if( ! empty($this->csimtarget) ) { + + $coords = "$xt,$yt,$xb,$yt,$xb,$yb,$xt,$yb"; + $this->csimarea .= "csimtarget."\""; + + if( !empty($this->csimwintarget) ) { + $this->csimarea .= " target=\"".$this->csimwintarget."\" "; + } + + if( $this->csimalt != '' ) { + $tmp = $this->csimalt; + $this->csimarea .= " title=\"$tmp\" alt=\"$tmp\" "; + } + $this->csimarea .= " />\n"; + } + + // Draw progress bar inside activity bar + if( $this->progress->iProgress > 0 ) { + + $xtp = $aScale->TranslateDate($st); + $xbp = $aScale->TranslateDate($en); + $len = ($xbp-$xtp)*$this->progress->iProgress; + + $endpos = $xtp+$len; + if( $endpos > $xt ) { + + // Take away the length of the progress that is not visible (before the start date) + $len -= ($xt-$xtp); + + // Is the the progress bar visible after the start date? + if( $xtp < $xt ) + $xtp = $xt; + + // Make sure that the progess bar doesn't extend over the end date + if( $xtp+$len-1 > $xb ) + $len = $xb - $xtp ; + + $prog = $factory->Create($this->progress->iPattern,$this->progress->iColor); + $prog->SetDensity($this->progress->iDensity); + $prog->SetBackground($this->progress->iFillColor); + $barheight = ($yb-$yt+1); + if( $this->iShadow ) + $barheight -= $this->iShadowWidth; + $progressheight = floor($barheight*$this->progress->iHeight); + $marg = ceil(($barheight-$progressheight)/2); + $pos = new Rectangle($xtp,$yt + $marg, $len,$barheight-2*$marg); + $prog->SetPos($pos); + $prog->Stroke($aImg); + } + } + + // We don't plot the end mark if the bar has been capped + if( $limst == $st ) { + $y = $middle; + // We treat the RIGHT and LEFT triangle mark a little bi + // special so that these marks are placed right under the + // bar. + if( $this->leftMark->GetType() == MARK_LEFTTRIANGLE ) { + $y = $yb ; + } + $this->leftMark->Stroke($aImg,$xt,$y); + } + if( $limen == $en ) { + $y = $middle; + // We treat the RIGHT and LEFT triangle mark a little bi + // special so that these marks are placed right under the + // bar. + if( $this->rightMark->GetType() == MARK_RIGHTTRIANGLE ) { + $y = $yb ; + } + $this->rightMark->Stroke($aImg,$xb,$y); + + $margin = $this->iCaptionMargin; + if( $this->rightMark->show ) + $margin += $this->rightMark->GetWidth(); + $this->caption->Stroke($aImg,$xb+$margin,$middle); + } + } +} + +//=================================================== +// CLASS MileStone +// Responsible for formatting individual milestones +//=================================================== +class MileStone extends GanttPlotObject { + public $mark; + + //--------------- + // CONSTRUCTOR + function __construct($aVPos,$aLabel,$aDate,$aCaption="") { + GanttPlotObject::__construct(); + $this->caption->Set($aCaption); + $this->caption->Align("left","center"); + $this->caption->SetFont(FF_FONT1,FS_BOLD); + $this->title->Set($aLabel); + $this->title->SetColor("darkred"); + $this->mark = new PlotMark(); + $this->mark->SetWidth(10); + $this->mark->SetType(MARK_DIAMOND); + $this->mark->SetColor("darkred"); + $this->mark->SetFillColor("darkred"); + $this->iVPos = $aVPos; + $this->iStart = $aDate; + } + + //--------------- + // PUBLIC METHODS + + function GetAbsHeight($aImg) { + return max($this->title->GetHeight($aImg),$this->mark->GetWidth()); + } + + function Stroke($aImg,$aScale) { + // Put the mark in the middle at the middle of the day + $d = $aScale->NormalizeDate($this->iStart)+SECPERDAY/2; + $x = $aScale->TranslateDate($d); + $y = $aScale->TranslateVertPos($this->iVPos)-($aScale->GetVertSpacing()/2); + + $this->StrokeActInfo($aImg,$aScale,$y); + + // CSIM for title + if( ! empty($this->title->csimtarget) ) { + + $yt = round($y - $this->title->GetHeight($aImg)/2); + $yb = round($y + $this->title->GetHeight($aImg)/2); + + $colwidth = $this->title->GetColWidth($aImg); + $colstarts=array(); + $aScale->actinfo->GetColStart($aImg,$colstarts,true); + $n = min(count($colwidth),count($this->title->csimtarget)); + for( $i=0; $i < $n; ++$i ) { + $title_xt = $colstarts[$i]; + $title_xb = $title_xt + $colwidth[$i]; + $coords = "$title_xt,$yt,$title_xb,$yt,$title_xb,$yb,$title_xt,$yb"; + + if( !empty($this->title->csimtarget[$i]) ) { + + $this->csimarea .= "title->csimtarget[$i]."\""; + + if( !empty($this->title->csimwintarget[$i]) ) { + $this->csimarea .= "target=\"".$this->title->csimwintarget[$i]."\""; + } + + if( ! empty($this->title->csimalt[$i]) ) { + $tmp = $this->title->csimalt[$i]; + $this->csimarea .= " title=\"$tmp\" alt=\"$tmp\" "; + } + $this->csimarea .= " />\n"; + } + } + } + + if( $d < $aScale->iStartDate || $d > $aScale->iEndDate ) + return; + + // Remember the coordinates for any constrains linking to + // this milestone + $w = $this->mark->GetWidth()/2; + $this->SetConstrainPos($x,round($y-$w),$x,round($y+$w)); + + // Setup CSIM + if( $this->csimtarget != '' ) { + $this->mark->SetCSIMTarget( $this->csimtarget ); + $this->mark->SetCSIMAlt( $this->csimalt ); + } + + $this->mark->Stroke($aImg,$x,$y); + $this->caption->Stroke($aImg,$x+$this->mark->width/2+$this->iCaptionMargin,$y); + + $this->csimarea .= $this->mark->GetCSIMAreas(); + } +} + + +//=================================================== +// CLASS GanttVLine +// Responsible for formatting individual milestones +//=================================================== + +class TextPropertyBelow extends TextProperty { + function __construct($aTxt='') { + parent::__construct($aTxt); + } + + function GetColWidth($aImg,$aMargin=0) { + // Since we are not stroking the title in the columns + // but rather under the graph we want this to return 0. + return array(0); + } +} + +class GanttVLine extends GanttPlotObject { + + private $iLine,$title_margin=3, $iDayOffset=0.5; + private $iStartRow = -1, $iEndRow = -1; + + //--------------- + // CONSTRUCTOR + function __construct($aDate,$aTitle="",$aColor="darkred",$aWeight=2,$aStyle="solid") { + GanttPlotObject::__construct(); + $this->iLine = new LineProperty(); + $this->iLine->SetColor($aColor); + $this->iLine->SetWeight($aWeight); + $this->iLine->SetStyle($aStyle); + $this->iStart = $aDate; + $this->title = new TextPropertyBelow(); + $this->title->Set($aTitle); + } + + //--------------- + // PUBLIC METHODS + + // Set start and end rows for the VLine. By default the entire heigh of the + // Gantt chart is used + function SetRowSpan($aStart, $aEnd=-1) { + $this->iStartRow = $aStart; + $this->iEndRow = $aEnd; + } + + function SetDayOffset($aOff=0.5) { + if( $aOff < 0.0 || $aOff > 1.0 ) { + JpGraphError::RaiseL(6029); + //("Offset for vertical line must be in range [0,1]"); + } + $this->iDayOffset = $aOff; + } + + function SetTitleMargin($aMarg) { + $this->title_margin = $aMarg; + } + + function SetWeight($aWeight) { + $this->iLine->SetWeight($aWeight); + } + + function Stroke($aImg,$aScale) { + $d = $aScale->NormalizeDate($this->iStart); + if( $d < $aScale->iStartDate || $d > $aScale->iEndDate ) + return; + if($this->iDayOffset != 0.0) + $d += 24*60*60*$this->iDayOffset; + $x = $aScale->TranslateDate($d);//d=1006858800, + + if( $this->iStartRow > -1 ) { + $y1 = $aScale->TranslateVertPos($this->iStartRow,true) ; + } + else { + $y1 = $aScale->iVertHeaderSize+$aImg->top_margin; + } + + if( $this->iEndRow > -1 ) { + $y2 = $aScale->TranslateVertPos($this->iEndRow); + } + else { + $y2 = $aImg->height - $aImg->bottom_margin; + } + + $this->iLine->Stroke($aImg,$x,$y1,$x,$y2); + $this->title->Align("center","top"); + $this->title->Stroke($aImg,$x,$y2+$this->title_margin); + } +} + +//=================================================== +// CLASS LinkArrow +// Handles the drawing of a an arrow +//=================================================== +class LinkArrow { + private $ix,$iy; + private $isizespec = array( + array(2,3),array(3,5),array(3,8),array(6,15),array(8,22)); + private $iDirection=ARROW_DOWN,$iType=ARROWT_SOLID,$iSize=ARROW_S2; + private $iColor='black'; + + function __construct($x,$y,$aDirection,$aType=ARROWT_SOLID,$aSize=ARROW_S2) { + $this->iDirection = $aDirection; + $this->iType = $aType; + $this->iSize = $aSize; + $this->ix = $x; + $this->iy = $y; + } + + function SetColor($aColor) { + $this->iColor = $aColor; + } + + function SetSize($aSize) { + $this->iSize = $aSize; + } + + function SetType($aType) { + $this->iType = $aType; + } + + function Stroke($aImg) { + list($dx,$dy) = $this->isizespec[$this->iSize]; + $x = $this->ix; + $y = $this->iy; + switch ( $this->iDirection ) { + case ARROW_DOWN: + $c = array($x,$y,$x-$dx,$y-$dy,$x+$dx,$y-$dy,$x,$y); + break; + case ARROW_UP: + $c = array($x,$y,$x-$dx,$y+$dy,$x+$dx,$y+$dy,$x,$y); + break; + case ARROW_LEFT: + $c = array($x,$y,$x+$dy,$y-$dx,$x+$dy,$y+$dx,$x,$y); + break; + case ARROW_RIGHT: + $c = array($x,$y,$x-$dy,$y-$dx,$x-$dy,$y+$dx,$x,$y); + break; + default: + JpGraphError::RaiseL(6030); + //('Unknown arrow direction for link.'); + die(); + break; + } + $aImg->SetColor($this->iColor); + switch( $this->iType ) { + case ARROWT_SOLID: + $aImg->FilledPolygon($c); + break; + case ARROWT_OPEN: + $aImg->Polygon($c); + break; + default: + JpGraphError::RaiseL(6031); + //('Unknown arrow type for link.'); + die(); + break; + } + } +} + +//=================================================== +// CLASS GanttLink +// Handles the drawing of a link line between 2 points +//=================================================== + +class GanttLink { + private $ix1,$ix2,$iy1,$iy2; + private $iPathType=2,$iPathExtend=15; + private $iColor='black',$iWeight=1; + private $iArrowSize=ARROW_S2,$iArrowType=ARROWT_SOLID; + + function __construct($x1=0,$y1=0,$x2=0,$y2=0) { + $this->ix1 = $x1; + $this->ix2 = $x2; + $this->iy1 = $y1; + $this->iy2 = $y2; + } + + function SetPos($x1,$y1,$x2,$y2) { + $this->ix1 = $x1; + $this->ix2 = $x2; + $this->iy1 = $y1; + $this->iy2 = $y2; + } + + function SetPath($aPath) { + $this->iPathType = $aPath; + } + + function SetColor($aColor) { + $this->iColor = $aColor; + } + + function SetArrow($aSize,$aType=ARROWT_SOLID) { + $this->iArrowSize = $aSize; + $this->iArrowType = $aType; + } + + function SetWeight($aWeight) { + $this->iWeight = $aWeight; + } + + function Stroke($aImg) { + // The way the path for the arrow is constructed is partly based + // on some heuristics. This is not an exact science but draws the + // path in a way that, for me, makes esthetic sence. For example + // if the start and end activities are very close we make a small + // detour to endter the target horixontally. If there are more + // space between axctivities then no suh detour is made and the + // target is "hit" directly vertical. I have tried to keep this + // simple. no doubt this could become almost infinitive complex + // and have some real AI. Feel free to modify this. + // This will no-doubt be tweaked as times go by. One design aim + // is to avoid having the user choose what types of arrow + // he wants. + + // The arrow is drawn between (x1,y1) to (x2,y2) + $x1 = $this->ix1 ; + $x2 = $this->ix2 ; + $y1 = $this->iy1 ; + $y2 = $this->iy2 ; + + // Depending on if the target is below or above we have to + // handle thi different. + if( $y2 > $y1 ) { + $arrowtype = ARROW_DOWN; + $midy = round(($y2-$y1)/2+$y1); + if( $x2 > $x1 ) { + switch ( $this->iPathType ) { + case 0: + $c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2); + break; + case 1: + case 2: + case 3: + $c = array($x1,$y1,$x2,$y1,$x2,$y2); + break; + default: + JpGraphError::RaiseL(6032,$this->iPathType); + //('Internal error: Unknown path type (='.$this->iPathType .') specified for link.'); + exit(1); + break; + } + } + else { + switch ( $this->iPathType ) { + case 0: + case 1: + $c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2); + break; + case 2: + // Always extend out horizontally a bit from the first point + // If we draw a link back in time (end to start) and the bars + // are very close we also change the path so it comes in from + // the left on the activity + $c = array($x1,$y1,$x1+$this->iPathExtend,$y1, + $x1+$this->iPathExtend,$midy, + $x2,$midy,$x2,$y2); + break; + case 3: + if( $y2-$midy < 6 ) { + $c = array($x1,$y1,$x1,$midy, + $x2-$this->iPathExtend,$midy, + $x2-$this->iPathExtend,$y2, + $x2,$y2); + $arrowtype = ARROW_RIGHT; + } + else { + $c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2); + } + break; + default: + JpGraphError::RaiseL(6032,$this->iPathType); + //('Internal error: Unknown path type specified for link.'); + exit(1); + break; + } + } + $arrow = new LinkArrow($x2,$y2,$arrowtype); + } + else { + // Y2 < Y1 + $arrowtype = ARROW_UP; + $midy = round(($y1-$y2)/2+$y2); + if( $x2 > $x1 ) { + switch ( $this->iPathType ) { + case 0: + case 1: + $c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2); + break; + case 3: + if( $midy-$y2 < 8 ) { + $arrowtype = ARROW_RIGHT; + $c = array($x1,$y1,$x1,$y2,$x2,$y2); + } + else { + $c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2); + } + break; + default: + JpGraphError::RaiseL(6032,$this->iPathType); + //('Internal error: Unknown path type specified for link.'); + break; + } + } + else { + switch ( $this->iPathType ) { + case 0: + case 1: + $c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2); + break; + case 2: + // Always extend out horizontally a bit from the first point + $c = array($x1,$y1,$x1+$this->iPathExtend,$y1, + $x1+$this->iPathExtend,$midy, + $x2,$midy,$x2,$y2); + break; + case 3: + if( $midy-$y2 < 16 ) { + $arrowtype = ARROW_RIGHT; + $c = array($x1,$y1,$x1,$midy,$x2-$this->iPathExtend,$midy, + $x2-$this->iPathExtend,$y2, + $x2,$y2); + } + else { + $c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2); + } + break; + default: + JpGraphError::RaiseL(6032,$this->iPathType); + //('Internal error: Unknown path type specified for link.'); + break; + } + } + $arrow = new LinkArrow($x2,$y2,$arrowtype); + } + $aImg->SetColor($this->iColor); + $aImg->SetLineWeight($this->iWeight); + $aImg->Polygon($c); + $aImg->SetLineWeight(1); + $arrow->SetColor($this->iColor); + $arrow->SetSize($this->iArrowSize); + $arrow->SetType($this->iArrowType); + $arrow->Stroke($aImg); + } +} + +// +?> diff --git a/gosa-core/include/jpgraph/jpgraph_gb2312.php b/gosa-core/include/jpgraph/jpgraph_gb2312.php new file mode 100644 index 000000000..bfaa58af0 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_gb2312.php @@ -0,0 +1,1552 @@ + 12288, 8482 => 12289, 8483 => 12290, 8484 => 12539, 8485 => 713, + 8486 => 711, 8487 => 168, 8488 => 12291, 8489 => 12293, 8490 => 8213, + 8491 => 65374, 8492 => 8214, 8493 => 8230, 8494 => 8216, 8495 => 8217, + 8496 => 8220, 8497 => 8221, 8498 => 12308, 8499 => 12309, 8500 => 12296, + 8501 => 12297, 8502 => 12298, 8503 => 12299, 8504 => 12300, 8505 => 12301, + 8506 => 12302, 8507 => 12303, 8508 => 12310, 8509 => 12311, 8510 => 12304, + 8511 => 12305, 8512 => 177, 8513 => 215, 8514 => 247, 8515 => 8758, + 8516 => 8743, 8517 => 8744, 8518 => 8721, 8519 => 8719, 8520 => 8746, + 8521 => 8745, 8522 => 8712, 8523 => 8759, 8524 => 8730, 8525 => 8869, + 8526 => 8741, 8527 => 8736, 8528 => 8978, 8529 => 8857, 8530 => 8747, + 8531 => 8750, 8532 => 8801, 8533 => 8780, 8534 => 8776, 8535 => 8765, + 8536 => 8733, 8537 => 8800, 8538 => 8814, 8539 => 8815, 8540 => 8804, + 8541 => 8805, 8542 => 8734, 8543 => 8757, 8544 => 8756, 8545 => 9794, + 8546 => 9792, 8547 => 176, 8548 => 8242, 8549 => 8243, 8550 => 8451, + 8551 => 65284, 8552 => 164, 8553 => 65504, 8554 => 65505, 8555 => 8240, + 8556 => 167, 8557 => 8470, 8558 => 9734, 8559 => 9733, 8560 => 9675, + 8561 => 9679, 8562 => 9678, 8563 => 9671, 8564 => 9670, 8565 => 9633, + 8566 => 9632, 8567 => 9651, 8568 => 9650, 8569 => 8251, 8570 => 8594, + 8571 => 8592, 8572 => 8593, 8573 => 8595, 8574 => 12307, 8753 => 9352, + 8754 => 9353, 8755 => 9354, 8756 => 9355, 8757 => 9356, 8758 => 9357, + 8759 => 9358, 8760 => 9359, 8761 => 9360, 8762 => 9361, 8763 => 9362, + 8764 => 9363, 8765 => 9364, 8766 => 9365, 8767 => 9366, 8768 => 9367, + 8769 => 9368, 8770 => 9369, 8771 => 9370, 8772 => 9371, 8773 => 9332, + 8774 => 9333, 8775 => 9334, 8776 => 9335, 8777 => 9336, 8778 => 9337, + 8779 => 9338, 8780 => 9339, 8781 => 9340, 8782 => 9341, 8783 => 9342, + 8784 => 9343, 8785 => 9344, 8786 => 9345, 8787 => 9346, 8788 => 9347, + 8789 => 9348, 8790 => 9349, 8791 => 9350, 8792 => 9351, 8793 => 9312, + 8794 => 9313, 8795 => 9314, 8796 => 9315, 8797 => 9316, 8798 => 9317, + 8799 => 9318, 8800 => 9319, 8801 => 9320, 8802 => 9321, 8805 => 12832, + 8806 => 12833, 8807 => 12834, 8808 => 12835, 8809 => 12836, 8810 => 12837, + 8811 => 12838, 8812 => 12839, 8813 => 12840, 8814 => 12841, 8817 => 8544, + 8818 => 8545, 8819 => 8546, 8820 => 8547, 8821 => 8548, 8822 => 8549, + 8823 => 8550, 8824 => 8551, 8825 => 8552, 8826 => 8553, 8827 => 8554, + 8828 => 8555, 8993 => 65281, 8994 => 65282, 8995 => 65283, 8996 => 65509, + 8997 => 65285, 8998 => 65286, 8999 => 65287, 9000 => 65288, 9001 => 65289, + 9002 => 65290, 9003 => 65291, 9004 => 65292, 9005 => 65293, 9006 => 65294, + 9007 => 65295, 9008 => 65296, 9009 => 65297, 9010 => 65298, 9011 => 65299, + 9012 => 65300, 9013 => 65301, 9014 => 65302, 9015 => 65303, 9016 => 65304, + 9017 => 65305, 9018 => 65306, 9019 => 65307, 9020 => 65308, 9021 => 65309, + 9022 => 65310, 9023 => 65311, 9024 => 65312, 9025 => 65313, 9026 => 65314, + 9027 => 65315, 9028 => 65316, 9029 => 65317, 9030 => 65318, 9031 => 65319, + 9032 => 65320, 9033 => 65321, 9034 => 65322, 9035 => 65323, 9036 => 65324, + 9037 => 65325, 9038 => 65326, 9039 => 65327, 9040 => 65328, 9041 => 65329, + 9042 => 65330, 9043 => 65331, 9044 => 65332, 9045 => 65333, 9046 => 65334, + 9047 => 65335, 9048 => 65336, 9049 => 65337, 9050 => 65338, 9051 => 65339, + 9052 => 65340, 9053 => 65341, 9054 => 65342, 9055 => 65343, 9056 => 65344, + 9057 => 65345, 9058 => 65346, 9059 => 65347, 9060 => 65348, 9061 => 65349, + 9062 => 65350, 9063 => 65351, 9064 => 65352, 9065 => 65353, 9066 => 65354, + 9067 => 65355, 9068 => 65356, 9069 => 65357, 9070 => 65358, 9071 => 65359, + 9072 => 65360, 9073 => 65361, 9074 => 65362, 9075 => 65363, 9076 => 65364, + 9077 => 65365, 9078 => 65366, 9079 => 65367, 9080 => 65368, 9081 => 65369, + 9082 => 65370, 9083 => 65371, 9084 => 65372, 9085 => 65373, 9086 => 65507, + 9249 => 12353, 9250 => 12354, 9251 => 12355, 9252 => 12356, 9253 => 12357, + 9254 => 12358, 9255 => 12359, 9256 => 12360, 9257 => 12361, 9258 => 12362, + 9259 => 12363, 9260 => 12364, 9261 => 12365, 9262 => 12366, 9263 => 12367, + 9264 => 12368, 9265 => 12369, 9266 => 12370, 9267 => 12371, 9268 => 12372, + 9269 => 12373, 9270 => 12374, 9271 => 12375, 9272 => 12376, 9273 => 12377, + 9274 => 12378, 9275 => 12379, 9276 => 12380, 9277 => 12381, 9278 => 12382, + 9279 => 12383, 9280 => 12384, 9281 => 12385, 9282 => 12386, 9283 => 12387, + 9284 => 12388, 9285 => 12389, 9286 => 12390, 9287 => 12391, 9288 => 12392, + 9289 => 12393, 9290 => 12394, 9291 => 12395, 9292 => 12396, 9293 => 12397, + 9294 => 12398, 9295 => 12399, 9296 => 12400, 9297 => 12401, 9298 => 12402, + 9299 => 12403, 9300 => 12404, 9301 => 12405, 9302 => 12406, 9303 => 12407, + 9304 => 12408, 9305 => 12409, 9306 => 12410, 9307 => 12411, 9308 => 12412, + 9309 => 12413, 9310 => 12414, 9311 => 12415, 9312 => 12416, 9313 => 12417, + 9314 => 12418, 9315 => 12419, 9316 => 12420, 9317 => 12421, 9318 => 12422, + 9319 => 12423, 9320 => 12424, 9321 => 12425, 9322 => 12426, 9323 => 12427, + 9324 => 12428, 9325 => 12429, 9326 => 12430, 9327 => 12431, 9328 => 12432, + 9329 => 12433, 9330 => 12434, 9331 => 12435, 9505 => 12449, 9506 => 12450, + 9507 => 12451, 9508 => 12452, 9509 => 12453, 9510 => 12454, 9511 => 12455, + 9512 => 12456, 9513 => 12457, 9514 => 12458, 9515 => 12459, 9516 => 12460, + 9517 => 12461, 9518 => 12462, 9519 => 12463, 9520 => 12464, 9521 => 12465, + 9522 => 12466, 9523 => 12467, 9524 => 12468, 9525 => 12469, 9526 => 12470, + 9527 => 12471, 9528 => 12472, 9529 => 12473, 9530 => 12474, 9531 => 12475, + 9532 => 12476, 9533 => 12477, 9534 => 12478, 9535 => 12479, 9536 => 12480, + 9537 => 12481, 9538 => 12482, 9539 => 12483, 9540 => 12484, 9541 => 12485, + 9542 => 12486, 9543 => 12487, 9544 => 12488, 9545 => 12489, 9546 => 12490, + 9547 => 12491, 9548 => 12492, 9549 => 12493, 9550 => 12494, 9551 => 12495, + 9552 => 12496, 9553 => 12497, 9554 => 12498, 9555 => 12499, 9556 => 12500, + 9557 => 12501, 9558 => 12502, 9559 => 12503, 9560 => 12504, 9561 => 12505, + 9562 => 12506, 9563 => 12507, 9564 => 12508, 9565 => 12509, 9566 => 12510, + 9567 => 12511, 9568 => 12512, 9569 => 12513, 9570 => 12514, 9571 => 12515, + 9572 => 12516, 9573 => 12517, 9574 => 12518, 9575 => 12519, 9576 => 12520, + 9577 => 12521, 9578 => 12522, 9579 => 12523, 9580 => 12524, 9581 => 12525, + 9582 => 12526, 9583 => 12527, 9584 => 12528, 9585 => 12529, 9586 => 12530, + 9587 => 12531, 9588 => 12532, 9589 => 12533, 9590 => 12534, 9761 => 913, + 9762 => 914, 9763 => 915, 9764 => 916, 9765 => 917, 9766 => 918, + 9767 => 919, 9768 => 920, 9769 => 921, 9770 => 922, 9771 => 923, + 9772 => 924, 9773 => 925, 9774 => 926, 9775 => 927, 9776 => 928, + 9777 => 929, 9778 => 931, 9779 => 932, 9780 => 933, 9781 => 934, + 9782 => 935, 9783 => 936, 9784 => 937, 9793 => 945, 9794 => 946, + 9795 => 947, 9796 => 948, 9797 => 949, 9798 => 950, 9799 => 951, + 9800 => 952, 9801 => 953, 9802 => 954, 9803 => 955, 9804 => 956, + 9805 => 957, 9806 => 958, 9807 => 959, 9808 => 960, 9809 => 961, + 9810 => 963, 9811 => 964, 9812 => 965, 9813 => 966, 9814 => 967, + 9815 => 968, 9816 => 969, 10017 => 1040, 10018 => 1041, 10019 => 1042, + 10020 => 1043, 10021 => 1044, 10022 => 1045, 10023 => 1025, 10024 => 1046, + 10025 => 1047, 10026 => 1048, 10027 => 1049, 10028 => 1050, 10029 => 1051, + 10030 => 1052, 10031 => 1053, 10032 => 1054, 10033 => 1055, 10034 => 1056, + 10035 => 1057, 10036 => 1058, 10037 => 1059, 10038 => 1060, 10039 => 1061, + 10040 => 1062, 10041 => 1063, 10042 => 1064, 10043 => 1065, 10044 => 1066, + 10045 => 1067, 10046 => 1068, 10047 => 1069, 10048 => 1070, 10049 => 1071, + 10065 => 1072, 10066 => 1073, 10067 => 1074, 10068 => 1075, 10069 => 1076, + 10070 => 1077, 10071 => 1105, 10072 => 1078, 10073 => 1079, 10074 => 1080, + 10075 => 1081, 10076 => 1082, 10077 => 1083, 10078 => 1084, 10079 => 1085, + 10080 => 1086, 10081 => 1087, 10082 => 1088, 10083 => 1089, 10084 => 1090, + 10085 => 1091, 10086 => 1092, 10087 => 1093, 10088 => 1094, 10089 => 1095, + 10090 => 1096, 10091 => 1097, 10092 => 1098, 10093 => 1099, 10094 => 1100, + 10095 => 1101, 10096 => 1102, 10097 => 1103, 10273 => 257, 10274 => 225, + 10275 => 462, 10276 => 224, 10277 => 275, 10278 => 233, 10279 => 283, + 10280 => 232, 10281 => 299, 10282 => 237, 10283 => 464, 10284 => 236, + 10285 => 333, 10286 => 243, 10287 => 466, 10288 => 242, 10289 => 363, + 10290 => 250, 10291 => 468, 10292 => 249, 10293 => 470, 10294 => 472, + 10295 => 474, 10296 => 476, 10297 => 252, 10298 => 234, 10309 => 12549, + 10310 => 12550, 10311 => 12551, 10312 => 12552, 10313 => 12553, 10314 => 12554, + 10315 => 12555, 10316 => 12556, 10317 => 12557, 10318 => 12558, 10319 => 12559, + 10320 => 12560, 10321 => 12561, 10322 => 12562, 10323 => 12563, 10324 => 12564, + 10325 => 12565, 10326 => 12566, 10327 => 12567, 10328 => 12568, 10329 => 12569, + 10330 => 12570, 10331 => 12571, 10332 => 12572, 10333 => 12573, 10334 => 12574, + 10335 => 12575, 10336 => 12576, 10337 => 12577, 10338 => 12578, 10339 => 12579, + 10340 => 12580, 10341 => 12581, 10342 => 12582, 10343 => 12583, 10344 => 12584, + 10345 => 12585, 10532 => 9472, 10533 => 9473, 10534 => 9474, 10535 => 9475, + 10536 => 9476, 10537 => 9477, 10538 => 9478, 10539 => 9479, 10540 => 9480, + 10541 => 9481, 10542 => 9482, 10543 => 9483, 10544 => 9484, 10545 => 9485, + 10546 => 9486, 10547 => 9487, 10548 => 9488, 10549 => 9489, 10550 => 9490, + 10551 => 9491, 10552 => 9492, 10553 => 9493, 10554 => 9494, 10555 => 9495, + 10556 => 9496, 10557 => 9497, 10558 => 9498, 10559 => 9499, 10560 => 9500, + 10561 => 9501, 10562 => 9502, 10563 => 9503, 10564 => 9504, 10565 => 9505, + 10566 => 9506, 10567 => 9507, 10568 => 9508, 10569 => 9509, 10570 => 9510, + 10571 => 9511, 10572 => 9512, 10573 => 9513, 10574 => 9514, 10575 => 9515, + 10576 => 9516, 10577 => 9517, 10578 => 9518, 10579 => 9519, 10580 => 9520, + 10581 => 9521, 10582 => 9522, 10583 => 9523, 10584 => 9524, 10585 => 9525, + 10586 => 9526, 10587 => 9527, 10588 => 9528, 10589 => 9529, 10590 => 9530, + 10591 => 9531, 10592 => 9532, 10593 => 9533, 10594 => 9534, 10595 => 9535, + 10596 => 9536, 10597 => 9537, 10598 => 9538, 10599 => 9539, 10600 => 9540, + 10601 => 9541, 10602 => 9542, 10603 => 9543, 10604 => 9544, 10605 => 9545, + 10606 => 9546, 10607 => 9547, 12321 => 21834, 12322 => 38463, 12323 => 22467, + 12324 => 25384, 12325 => 21710, 12326 => 21769, 12327 => 21696, 12328 => 30353, + 12329 => 30284, 12330 => 34108, 12331 => 30702, 12332 => 33406, 12333 => 30861, + 12334 => 29233, 12335 => 38552, 12336 => 38797, 12337 => 27688, 12338 => 23433, + 12339 => 20474, 12340 => 25353, 12341 => 26263, 12342 => 23736, 12343 => 33018, + 12344 => 26696, 12345 => 32942, 12346 => 26114, 12347 => 30414, 12348 => 20985, + 12349 => 25942, 12350 => 29100, 12351 => 32753, 12352 => 34948, 12353 => 20658, + 12354 => 22885, 12355 => 25034, 12356 => 28595, 12357 => 33453, 12358 => 25420, + 12359 => 25170, 12360 => 21485, 12361 => 21543, 12362 => 31494, 12363 => 20843, + 12364 => 30116, 12365 => 24052, 12366 => 25300, 12367 => 36299, 12368 => 38774, + 12369 => 25226, 12370 => 32793, 12371 => 22365, 12372 => 38712, 12373 => 32610, + 12374 => 29240, 12375 => 30333, 12376 => 26575, 12377 => 30334, 12378 => 25670, + 12379 => 20336, 12380 => 36133, 12381 => 25308, 12382 => 31255, 12383 => 26001, + 12384 => 29677, 12385 => 25644, 12386 => 25203, 12387 => 33324, 12388 => 39041, + 12389 => 26495, 12390 => 29256, 12391 => 25198, 12392 => 25292, 12393 => 20276, + 12394 => 29923, 12395 => 21322, 12396 => 21150, 12397 => 32458, 12398 => 37030, + 12399 => 24110, 12400 => 26758, 12401 => 27036, 12402 => 33152, 12403 => 32465, + 12404 => 26834, 12405 => 30917, 12406 => 34444, 12407 => 38225, 12408 => 20621, + 12409 => 35876, 12410 => 33502, 12411 => 32990, 12412 => 21253, 12413 => 35090, + 12414 => 21093, 12577 => 34180, 12578 => 38649, 12579 => 20445, 12580 => 22561, + 12581 => 39281, 12582 => 23453, 12583 => 25265, 12584 => 25253, 12585 => 26292, + 12586 => 35961, 12587 => 40077, 12588 => 29190, 12589 => 26479, 12590 => 30865, + 12591 => 24754, 12592 => 21329, 12593 => 21271, 12594 => 36744, 12595 => 32972, + 12596 => 36125, 12597 => 38049, 12598 => 20493, 12599 => 29384, 12600 => 22791, + 12601 => 24811, 12602 => 28953, 12603 => 34987, 12604 => 22868, 12605 => 33519, + 12606 => 26412, 12607 => 31528, 12608 => 23849, 12609 => 32503, 12610 => 29997, + 12611 => 27893, 12612 => 36454, 12613 => 36856, 12614 => 36924, 12615 => 40763, + 12616 => 27604, 12617 => 37145, 12618 => 31508, 12619 => 24444, 12620 => 30887, + 12621 => 34006, 12622 => 34109, 12623 => 27605, 12624 => 27609, 12625 => 27606, + 12626 => 24065, 12627 => 24199, 12628 => 30201, 12629 => 38381, 12630 => 25949, + 12631 => 24330, 12632 => 24517, 12633 => 36767, 12634 => 22721, 12635 => 33218, + 12636 => 36991, 12637 => 38491, 12638 => 38829, 12639 => 36793, 12640 => 32534, + 12641 => 36140, 12642 => 25153, 12643 => 20415, 12644 => 21464, 12645 => 21342, + 12646 => 36776, 12647 => 36777, 12648 => 36779, 12649 => 36941, 12650 => 26631, + 12651 => 24426, 12652 => 33176, 12653 => 34920, 12654 => 40150, 12655 => 24971, + 12656 => 21035, 12657 => 30250, 12658 => 24428, 12659 => 25996, 12660 => 28626, + 12661 => 28392, 12662 => 23486, 12663 => 25672, 12664 => 20853, 12665 => 20912, + 12666 => 26564, 12667 => 19993, 12668 => 31177, 12669 => 39292, 12670 => 28851, + 12833 => 30149, 12834 => 24182, 12835 => 29627, 12836 => 33760, 12837 => 25773, + 12838 => 25320, 12839 => 38069, 12840 => 27874, 12841 => 21338, 12842 => 21187, + 12843 => 25615, 12844 => 38082, 12845 => 31636, 12846 => 20271, 12847 => 24091, + 12848 => 33334, 12849 => 33046, 12850 => 33162, 12851 => 28196, 12852 => 27850, + 12853 => 39539, 12854 => 25429, 12855 => 21340, 12856 => 21754, 12857 => 34917, + 12858 => 22496, 12859 => 19981, 12860 => 24067, 12861 => 27493, 12862 => 31807, + 12863 => 37096, 12864 => 24598, 12865 => 25830, 12866 => 29468, 12867 => 35009, + 12868 => 26448, 12869 => 25165, 12870 => 36130, 12871 => 30572, 12872 => 36393, + 12873 => 37319, 12874 => 24425, 12875 => 33756, 12876 => 34081, 12877 => 39184, + 12878 => 21442, 12879 => 34453, 12880 => 27531, 12881 => 24813, 12882 => 24808, + 12883 => 28799, 12884 => 33485, 12885 => 33329, 12886 => 20179, 12887 => 27815, + 12888 => 34255, 12889 => 25805, 12890 => 31961, 12891 => 27133, 12892 => 26361, + 12893 => 33609, 12894 => 21397, 12895 => 31574, 12896 => 20391, 12897 => 20876, + 12898 => 27979, 12899 => 23618, 12900 => 36461, 12901 => 25554, 12902 => 21449, + 12903 => 33580, 12904 => 33590, 12905 => 26597, 12906 => 30900, 12907 => 25661, + 12908 => 23519, 12909 => 23700, 12910 => 24046, 12911 => 35815, 12912 => 25286, + 12913 => 26612, 12914 => 35962, 12915 => 25600, 12916 => 25530, 12917 => 34633, + 12918 => 39307, 12919 => 35863, 12920 => 32544, 12921 => 38130, 12922 => 20135, + 12923 => 38416, 12924 => 39076, 12925 => 26124, 12926 => 29462, 13089 => 22330, + 13090 => 23581, 13091 => 24120, 13092 => 38271, 13093 => 20607, 13094 => 32928, + 13095 => 21378, 13096 => 25950, 13097 => 30021, 13098 => 21809, 13099 => 20513, + 13100 => 36229, 13101 => 25220, 13102 => 38046, 13103 => 26397, 13104 => 22066, + 13105 => 28526, 13106 => 24034, 13107 => 21557, 13108 => 28818, 13109 => 36710, + 13110 => 25199, 13111 => 25764, 13112 => 25507, 13113 => 24443, 13114 => 28552, + 13115 => 37108, 13116 => 33251, 13117 => 36784, 13118 => 23576, 13119 => 26216, + 13120 => 24561, 13121 => 27785, 13122 => 38472, 13123 => 36225, 13124 => 34924, + 13125 => 25745, 13126 => 31216, 13127 => 22478, 13128 => 27225, 13129 => 25104, + 13130 => 21576, 13131 => 20056, 13132 => 31243, 13133 => 24809, 13134 => 28548, + 13135 => 35802, 13136 => 25215, 13137 => 36894, 13138 => 39563, 13139 => 31204, + 13140 => 21507, 13141 => 30196, 13142 => 25345, 13143 => 21273, 13144 => 27744, + 13145 => 36831, 13146 => 24347, 13147 => 39536, 13148 => 32827, 13149 => 40831, + 13150 => 20360, 13151 => 23610, 13152 => 36196, 13153 => 32709, 13154 => 26021, + 13155 => 28861, 13156 => 20805, 13157 => 20914, 13158 => 34411, 13159 => 23815, + 13160 => 23456, 13161 => 25277, 13162 => 37228, 13163 => 30068, 13164 => 36364, + 13165 => 31264, 13166 => 24833, 13167 => 31609, 13168 => 20167, 13169 => 32504, + 13170 => 30597, 13171 => 19985, 13172 => 33261, 13173 => 21021, 13174 => 20986, + 13175 => 27249, 13176 => 21416, 13177 => 36487, 13178 => 38148, 13179 => 38607, + 13180 => 28353, 13181 => 38500, 13182 => 26970, 13345 => 30784, 13346 => 20648, + 13347 => 30679, 13348 => 25616, 13349 => 35302, 13350 => 22788, 13351 => 25571, + 13352 => 24029, 13353 => 31359, 13354 => 26941, 13355 => 20256, 13356 => 33337, + 13357 => 21912, 13358 => 20018, 13359 => 30126, 13360 => 31383, 13361 => 24162, + 13362 => 24202, 13363 => 38383, 13364 => 21019, 13365 => 21561, 13366 => 28810, + 13367 => 25462, 13368 => 38180, 13369 => 22402, 13370 => 26149, 13371 => 26943, + 13372 => 37255, 13373 => 21767, 13374 => 28147, 13375 => 32431, 13376 => 34850, + 13377 => 25139, 13378 => 32496, 13379 => 30133, 13380 => 33576, 13381 => 30913, + 13382 => 38604, 13383 => 36766, 13384 => 24904, 13385 => 29943, 13386 => 35789, + 13387 => 27492, 13388 => 21050, 13389 => 36176, 13390 => 27425, 13391 => 32874, + 13392 => 33905, 13393 => 22257, 13394 => 21254, 13395 => 20174, 13396 => 19995, + 13397 => 20945, 13398 => 31895, 13399 => 37259, 13400 => 31751, 13401 => 20419, + 13402 => 36479, 13403 => 31713, 13404 => 31388, 13405 => 25703, 13406 => 23828, + 13407 => 20652, 13408 => 33030, 13409 => 30209, 13410 => 31929, 13411 => 28140, + 13412 => 32736, 13413 => 26449, 13414 => 23384, 13415 => 23544, 13416 => 30923, + 13417 => 25774, 13418 => 25619, 13419 => 25514, 13420 => 25387, 13421 => 38169, + 13422 => 25645, 13423 => 36798, 13424 => 31572, 13425 => 30249, 13426 => 25171, + 13427 => 22823, 13428 => 21574, 13429 => 27513, 13430 => 20643, 13431 => 25140, + 13432 => 24102, 13433 => 27526, 13434 => 20195, 13435 => 36151, 13436 => 34955, + 13437 => 24453, 13438 => 36910, 13601 => 24608, 13602 => 32829, 13603 => 25285, + 13604 => 20025, 13605 => 21333, 13606 => 37112, 13607 => 25528, 13608 => 32966, + 13609 => 26086, 13610 => 27694, 13611 => 20294, 13612 => 24814, 13613 => 28129, + 13614 => 35806, 13615 => 24377, 13616 => 34507, 13617 => 24403, 13618 => 25377, + 13619 => 20826, 13620 => 33633, 13621 => 26723, 13622 => 20992, 13623 => 25443, + 13624 => 36424, 13625 => 20498, 13626 => 23707, 13627 => 31095, 13628 => 23548, + 13629 => 21040, 13630 => 31291, 13631 => 24764, 13632 => 36947, 13633 => 30423, + 13634 => 24503, 13635 => 24471, 13636 => 30340, 13637 => 36460, 13638 => 28783, + 13639 => 30331, 13640 => 31561, 13641 => 30634, 13642 => 20979, 13643 => 37011, + 13644 => 22564, 13645 => 20302, 13646 => 28404, 13647 => 36842, 13648 => 25932, + 13649 => 31515, 13650 => 29380, 13651 => 28068, 13652 => 32735, 13653 => 23265, + 13654 => 25269, 13655 => 24213, 13656 => 22320, 13657 => 33922, 13658 => 31532, + 13659 => 24093, 13660 => 24351, 13661 => 36882, 13662 => 32532, 13663 => 39072, + 13664 => 25474, 13665 => 28359, 13666 => 30872, 13667 => 28857, 13668 => 20856, + 13669 => 38747, 13670 => 22443, 13671 => 30005, 13672 => 20291, 13673 => 30008, + 13674 => 24215, 13675 => 24806, 13676 => 22880, 13677 => 28096, 13678 => 27583, + 13679 => 30857, 13680 => 21500, 13681 => 38613, 13682 => 20939, 13683 => 20993, + 13684 => 25481, 13685 => 21514, 13686 => 38035, 13687 => 35843, 13688 => 36300, + 13689 => 29241, 13690 => 30879, 13691 => 34678, 13692 => 36845, 13693 => 35853, + 13694 => 21472, 13857 => 19969, 13858 => 30447, 13859 => 21486, 13860 => 38025, + 13861 => 39030, 13862 => 40718, 13863 => 38189, 13864 => 23450, 13865 => 35746, + 13866 => 20002, 13867 => 19996, 13868 => 20908, 13869 => 33891, 13870 => 25026, + 13871 => 21160, 13872 => 26635, 13873 => 20375, 13874 => 24683, 13875 => 20923, + 13876 => 27934, 13877 => 20828, 13878 => 25238, 13879 => 26007, 13880 => 38497, + 13881 => 35910, 13882 => 36887, 13883 => 30168, 13884 => 37117, 13885 => 30563, + 13886 => 27602, 13887 => 29322, 13888 => 29420, 13889 => 35835, 13890 => 22581, + 13891 => 30585, 13892 => 36172, 13893 => 26460, 13894 => 38208, 13895 => 32922, + 13896 => 24230, 13897 => 28193, 13898 => 22930, 13899 => 31471, 13900 => 30701, + 13901 => 38203, 13902 => 27573, 13903 => 26029, 13904 => 32526, 13905 => 22534, + 13906 => 20817, 13907 => 38431, 13908 => 23545, 13909 => 22697, 13910 => 21544, + 13911 => 36466, 13912 => 25958, 13913 => 39039, 13914 => 22244, 13915 => 38045, + 13916 => 30462, 13917 => 36929, 13918 => 25479, 13919 => 21702, 13920 => 22810, + 13921 => 22842, 13922 => 22427, 13923 => 36530, 13924 => 26421, 13925 => 36346, + 13926 => 33333, 13927 => 21057, 13928 => 24816, 13929 => 22549, 13930 => 34558, + 13931 => 23784, 13932 => 40517, 13933 => 20420, 13934 => 39069, 13935 => 35769, + 13936 => 23077, 13937 => 24694, 13938 => 21380, 13939 => 25212, 13940 => 36943, + 13941 => 37122, 13942 => 39295, 13943 => 24681, 13944 => 32780, 13945 => 20799, + 13946 => 32819, 13947 => 23572, 13948 => 39285, 13949 => 27953, 13950 => 20108, + 14113 => 36144, 14114 => 21457, 14115 => 32602, 14116 => 31567, 14117 => 20240, + 14118 => 20047, 14119 => 38400, 14120 => 27861, 14121 => 29648, 14122 => 34281, + 14123 => 24070, 14124 => 30058, 14125 => 32763, 14126 => 27146, 14127 => 30718, + 14128 => 38034, 14129 => 32321, 14130 => 20961, 14131 => 28902, 14132 => 21453, + 14133 => 36820, 14134 => 33539, 14135 => 36137, 14136 => 29359, 14137 => 39277, + 14138 => 27867, 14139 => 22346, 14140 => 33459, 14141 => 26041, 14142 => 32938, + 14143 => 25151, 14144 => 38450, 14145 => 22952, 14146 => 20223, 14147 => 35775, + 14148 => 32442, 14149 => 25918, 14150 => 33778, 14151 => 38750, 14152 => 21857, + 14153 => 39134, 14154 => 32933, 14155 => 21290, 14156 => 35837, 14157 => 21536, + 14158 => 32954, 14159 => 24223, 14160 => 27832, 14161 => 36153, 14162 => 33452, + 14163 => 37210, 14164 => 21545, 14165 => 27675, 14166 => 20998, 14167 => 32439, + 14168 => 22367, 14169 => 28954, 14170 => 27774, 14171 => 31881, 14172 => 22859, + 14173 => 20221, 14174 => 24575, 14175 => 24868, 14176 => 31914, 14177 => 20016, + 14178 => 23553, 14179 => 26539, 14180 => 34562, 14181 => 23792, 14182 => 38155, + 14183 => 39118, 14184 => 30127, 14185 => 28925, 14186 => 36898, 14187 => 20911, + 14188 => 32541, 14189 => 35773, 14190 => 22857, 14191 => 20964, 14192 => 20315, + 14193 => 21542, 14194 => 22827, 14195 => 25975, 14196 => 32932, 14197 => 23413, + 14198 => 25206, 14199 => 25282, 14200 => 36752, 14201 => 24133, 14202 => 27679, + 14203 => 31526, 14204 => 20239, 14205 => 20440, 14206 => 26381, 14369 => 28014, + 14370 => 28074, 14371 => 31119, 14372 => 34993, 14373 => 24343, 14374 => 29995, + 14375 => 25242, 14376 => 36741, 14377 => 20463, 14378 => 37340, 14379 => 26023, + 14380 => 33071, 14381 => 33105, 14382 => 24220, 14383 => 33104, 14384 => 36212, + 14385 => 21103, 14386 => 35206, 14387 => 36171, 14388 => 22797, 14389 => 20613, + 14390 => 20184, 14391 => 38428, 14392 => 29238, 14393 => 33145, 14394 => 36127, + 14395 => 23500, 14396 => 35747, 14397 => 38468, 14398 => 22919, 14399 => 32538, + 14400 => 21648, 14401 => 22134, 14402 => 22030, 14403 => 35813, 14404 => 25913, + 14405 => 27010, 14406 => 38041, 14407 => 30422, 14408 => 28297, 14409 => 24178, + 14410 => 29976, 14411 => 26438, 14412 => 26577, 14413 => 31487, 14414 => 32925, + 14415 => 36214, 14416 => 24863, 14417 => 31174, 14418 => 25954, 14419 => 36195, + 14420 => 20872, 14421 => 21018, 14422 => 38050, 14423 => 32568, 14424 => 32923, + 14425 => 32434, 14426 => 23703, 14427 => 28207, 14428 => 26464, 14429 => 31705, + 14430 => 30347, 14431 => 39640, 14432 => 33167, 14433 => 32660, 14434 => 31957, + 14435 => 25630, 14436 => 38224, 14437 => 31295, 14438 => 21578, 14439 => 21733, + 14440 => 27468, 14441 => 25601, 14442 => 25096, 14443 => 40509, 14444 => 33011, + 14445 => 30105, 14446 => 21106, 14447 => 38761, 14448 => 33883, 14449 => 26684, + 14450 => 34532, 14451 => 38401, 14452 => 38548, 14453 => 38124, 14454 => 20010, + 14455 => 21508, 14456 => 32473, 14457 => 26681, 14458 => 36319, 14459 => 32789, + 14460 => 26356, 14461 => 24218, 14462 => 32697, 14625 => 22466, 14626 => 32831, + 14627 => 26775, 14628 => 24037, 14629 => 25915, 14630 => 21151, 14631 => 24685, + 14632 => 40858, 14633 => 20379, 14634 => 36524, 14635 => 20844, 14636 => 23467, + 14637 => 24339, 14638 => 24041, 14639 => 27742, 14640 => 25329, 14641 => 36129, + 14642 => 20849, 14643 => 38057, 14644 => 21246, 14645 => 27807, 14646 => 33503, + 14647 => 29399, 14648 => 22434, 14649 => 26500, 14650 => 36141, 14651 => 22815, + 14652 => 36764, 14653 => 33735, 14654 => 21653, 14655 => 31629, 14656 => 20272, + 14657 => 27837, 14658 => 23396, 14659 => 22993, 14660 => 40723, 14661 => 21476, + 14662 => 34506, 14663 => 39592, 14664 => 35895, 14665 => 32929, 14666 => 25925, + 14667 => 39038, 14668 => 22266, 14669 => 38599, 14670 => 21038, 14671 => 29916, + 14672 => 21072, 14673 => 23521, 14674 => 25346, 14675 => 35074, 14676 => 20054, + 14677 => 25296, 14678 => 24618, 14679 => 26874, 14680 => 20851, 14681 => 23448, + 14682 => 20896, 14683 => 35266, 14684 => 31649, 14685 => 39302, 14686 => 32592, + 14687 => 24815, 14688 => 28748, 14689 => 36143, 14690 => 20809, 14691 => 24191, + 14692 => 36891, 14693 => 29808, 14694 => 35268, 14695 => 22317, 14696 => 30789, + 14697 => 24402, 14698 => 40863, 14699 => 38394, 14700 => 36712, 14701 => 39740, + 14702 => 35809, 14703 => 30328, 14704 => 26690, 14705 => 26588, 14706 => 36330, + 14707 => 36149, 14708 => 21053, 14709 => 36746, 14710 => 28378, 14711 => 26829, + 14712 => 38149, 14713 => 37101, 14714 => 22269, 14715 => 26524, 14716 => 35065, + 14717 => 36807, 14718 => 21704, 14881 => 39608, 14882 => 23401, 14883 => 28023, + 14884 => 27686, 14885 => 20133, 14886 => 23475, 14887 => 39559, 14888 => 37219, + 14889 => 25000, 14890 => 37039, 14891 => 38889, 14892 => 21547, 14893 => 28085, + 14894 => 23506, 14895 => 20989, 14896 => 21898, 14897 => 32597, 14898 => 32752, + 14899 => 25788, 14900 => 25421, 14901 => 26097, 14902 => 25022, 14903 => 24717, + 14904 => 28938, 14905 => 27735, 14906 => 27721, 14907 => 22831, 14908 => 26477, + 14909 => 33322, 14910 => 22741, 14911 => 22158, 14912 => 35946, 14913 => 27627, + 14914 => 37085, 14915 => 22909, 14916 => 32791, 14917 => 21495, 14918 => 28009, + 14919 => 21621, 14920 => 21917, 14921 => 33655, 14922 => 33743, 14923 => 26680, + 14924 => 31166, 14925 => 21644, 14926 => 20309, 14927 => 21512, 14928 => 30418, + 14929 => 35977, 14930 => 38402, 14931 => 27827, 14932 => 28088, 14933 => 36203, + 14934 => 35088, 14935 => 40548, 14936 => 36154, 14937 => 22079, 14938 => 40657, + 14939 => 30165, 14940 => 24456, 14941 => 29408, 14942 => 24680, 14943 => 21756, + 14944 => 20136, 14945 => 27178, 14946 => 34913, 14947 => 24658, 14948 => 36720, + 14949 => 21700, 14950 => 28888, 14951 => 34425, 14952 => 40511, 14953 => 27946, + 14954 => 23439, 14955 => 24344, 14956 => 32418, 14957 => 21897, 14958 => 20399, + 14959 => 29492, 14960 => 21564, 14961 => 21402, 14962 => 20505, 14963 => 21518, + 14964 => 21628, 14965 => 20046, 14966 => 24573, 14967 => 29786, 14968 => 22774, + 14969 => 33899, 14970 => 32993, 14971 => 34676, 14972 => 29392, 14973 => 31946, + 14974 => 28246, 15137 => 24359, 15138 => 34382, 15139 => 21804, 15140 => 25252, + 15141 => 20114, 15142 => 27818, 15143 => 25143, 15144 => 33457, 15145 => 21719, + 15146 => 21326, 15147 => 29502, 15148 => 28369, 15149 => 30011, 15150 => 21010, + 15151 => 21270, 15152 => 35805, 15153 => 27088, 15154 => 24458, 15155 => 24576, + 15156 => 28142, 15157 => 22351, 15158 => 27426, 15159 => 29615, 15160 => 26707, + 15161 => 36824, 15162 => 32531, 15163 => 25442, 15164 => 24739, 15165 => 21796, + 15166 => 30186, 15167 => 35938, 15168 => 28949, 15169 => 28067, 15170 => 23462, + 15171 => 24187, 15172 => 33618, 15173 => 24908, 15174 => 40644, 15175 => 30970, + 15176 => 34647, 15177 => 31783, 15178 => 30343, 15179 => 20976, 15180 => 24822, + 15181 => 29004, 15182 => 26179, 15183 => 24140, 15184 => 24653, 15185 => 35854, + 15186 => 28784, 15187 => 25381, 15188 => 36745, 15189 => 24509, 15190 => 24674, + 15191 => 34516, 15192 => 22238, 15193 => 27585, 15194 => 24724, 15195 => 24935, + 15196 => 21321, 15197 => 24800, 15198 => 26214, 15199 => 36159, 15200 => 31229, + 15201 => 20250, 15202 => 28905, 15203 => 27719, 15204 => 35763, 15205 => 35826, + 15206 => 32472, 15207 => 33636, 15208 => 26127, 15209 => 23130, 15210 => 39746, + 15211 => 27985, 15212 => 28151, 15213 => 35905, 15214 => 27963, 15215 => 20249, + 15216 => 28779, 15217 => 33719, 15218 => 25110, 15219 => 24785, 15220 => 38669, + 15221 => 36135, 15222 => 31096, 15223 => 20987, 15224 => 22334, 15225 => 22522, + 15226 => 26426, 15227 => 30072, 15228 => 31293, 15229 => 31215, 15230 => 31637, + 15393 => 32908, 15394 => 39269, 15395 => 36857, 15396 => 28608, 15397 => 35749, + 15398 => 40481, 15399 => 23020, 15400 => 32489, 15401 => 32521, 15402 => 21513, + 15403 => 26497, 15404 => 26840, 15405 => 36753, 15406 => 31821, 15407 => 38598, + 15408 => 21450, 15409 => 24613, 15410 => 30142, 15411 => 27762, 15412 => 21363, + 15413 => 23241, 15414 => 32423, 15415 => 25380, 15416 => 20960, 15417 => 33034, + 15418 => 24049, 15419 => 34015, 15420 => 25216, 15421 => 20864, 15422 => 23395, + 15423 => 20238, 15424 => 31085, 15425 => 21058, 15426 => 24760, 15427 => 27982, + 15428 => 23492, 15429 => 23490, 15430 => 35745, 15431 => 35760, 15432 => 26082, + 15433 => 24524, 15434 => 38469, 15435 => 22931, 15436 => 32487, 15437 => 32426, + 15438 => 22025, 15439 => 26551, 15440 => 22841, 15441 => 20339, 15442 => 23478, + 15443 => 21152, 15444 => 33626, 15445 => 39050, 15446 => 36158, 15447 => 30002, + 15448 => 38078, 15449 => 20551, 15450 => 31292, 15451 => 20215, 15452 => 26550, + 15453 => 39550, 15454 => 23233, 15455 => 27516, 15456 => 30417, 15457 => 22362, + 15458 => 23574, 15459 => 31546, 15460 => 38388, 15461 => 29006, 15462 => 20860, + 15463 => 32937, 15464 => 33392, 15465 => 22904, 15466 => 32516, 15467 => 33575, + 15468 => 26816, 15469 => 26604, 15470 => 30897, 15471 => 30839, 15472 => 25315, + 15473 => 25441, 15474 => 31616, 15475 => 20461, 15476 => 21098, 15477 => 20943, + 15478 => 33616, 15479 => 27099, 15480 => 37492, 15481 => 36341, 15482 => 36145, + 15483 => 35265, 15484 => 38190, 15485 => 31661, 15486 => 20214, 15649 => 20581, + 15650 => 33328, 15651 => 21073, 15652 => 39279, 15653 => 28176, 15654 => 28293, + 15655 => 28071, 15656 => 24314, 15657 => 20725, 15658 => 23004, 15659 => 23558, + 15660 => 27974, 15661 => 27743, 15662 => 30086, 15663 => 33931, 15664 => 26728, + 15665 => 22870, 15666 => 35762, 15667 => 21280, 15668 => 37233, 15669 => 38477, + 15670 => 34121, 15671 => 26898, 15672 => 30977, 15673 => 28966, 15674 => 33014, + 15675 => 20132, 15676 => 37066, 15677 => 27975, 15678 => 39556, 15679 => 23047, + 15680 => 22204, 15681 => 25605, 15682 => 38128, 15683 => 30699, 15684 => 20389, + 15685 => 33050, 15686 => 29409, 15687 => 35282, 15688 => 39290, 15689 => 32564, + 15690 => 32478, 15691 => 21119, 15692 => 25945, 15693 => 37237, 15694 => 36735, + 15695 => 36739, 15696 => 21483, 15697 => 31382, 15698 => 25581, 15699 => 25509, + 15700 => 30342, 15701 => 31224, 15702 => 34903, 15703 => 38454, 15704 => 25130, + 15705 => 21163, 15706 => 33410, 15707 => 26708, 15708 => 26480, 15709 => 25463, + 15710 => 30571, 15711 => 31469, 15712 => 27905, 15713 => 32467, 15714 => 35299, + 15715 => 22992, 15716 => 25106, 15717 => 34249, 15718 => 33445, 15719 => 30028, + 15720 => 20511, 15721 => 20171, 15722 => 30117, 15723 => 35819, 15724 => 23626, + 15725 => 24062, 15726 => 31563, 15727 => 26020, 15728 => 37329, 15729 => 20170, + 15730 => 27941, 15731 => 35167, 15732 => 32039, 15733 => 38182, 15734 => 20165, + 15735 => 35880, 15736 => 36827, 15737 => 38771, 15738 => 26187, 15739 => 31105, + 15740 => 36817, 15741 => 28908, 15742 => 28024, 15905 => 23613, 15906 => 21170, + 15907 => 33606, 15908 => 20834, 15909 => 33550, 15910 => 30555, 15911 => 26230, + 15912 => 40120, 15913 => 20140, 15914 => 24778, 15915 => 31934, 15916 => 31923, + 15917 => 32463, 15918 => 20117, 15919 => 35686, 15920 => 26223, 15921 => 39048, + 15922 => 38745, 15923 => 22659, 15924 => 25964, 15925 => 38236, 15926 => 24452, + 15927 => 30153, 15928 => 38742, 15929 => 31455, 15930 => 31454, 15931 => 20928, + 15932 => 28847, 15933 => 31384, 15934 => 25578, 15935 => 31350, 15936 => 32416, + 15937 => 29590, 15938 => 38893, 15939 => 20037, 15940 => 28792, 15941 => 20061, + 15942 => 37202, 15943 => 21417, 15944 => 25937, 15945 => 26087, 15946 => 33276, + 15947 => 33285, 15948 => 21646, 15949 => 23601, 15950 => 30106, 15951 => 38816, + 15952 => 25304, 15953 => 29401, 15954 => 30141, 15955 => 23621, 15956 => 39545, + 15957 => 33738, 15958 => 23616, 15959 => 21632, 15960 => 30697, 15961 => 20030, + 15962 => 27822, 15963 => 32858, 15964 => 25298, 15965 => 25454, 15966 => 24040, + 15967 => 20855, 15968 => 36317, 15969 => 36382, 15970 => 38191, 15971 => 20465, + 15972 => 21477, 15973 => 24807, 15974 => 28844, 15975 => 21095, 15976 => 25424, + 15977 => 40515, 15978 => 23071, 15979 => 20518, 15980 => 30519, 15981 => 21367, + 15982 => 32482, 15983 => 25733, 15984 => 25899, 15985 => 25225, 15986 => 25496, + 15987 => 20500, 15988 => 29237, 15989 => 35273, 15990 => 20915, 15991 => 35776, + 15992 => 32477, 15993 => 22343, 15994 => 33740, 15995 => 38055, 15996 => 20891, + 15997 => 21531, 15998 => 23803, 16161 => 20426, 16162 => 31459, 16163 => 27994, + 16164 => 37089, 16165 => 39567, 16166 => 21888, 16167 => 21654, 16168 => 21345, + 16169 => 21679, 16170 => 24320, 16171 => 25577, 16172 => 26999, 16173 => 20975, + 16174 => 24936, 16175 => 21002, 16176 => 22570, 16177 => 21208, 16178 => 22350, + 16179 => 30733, 16180 => 30475, 16181 => 24247, 16182 => 24951, 16183 => 31968, + 16184 => 25179, 16185 => 25239, 16186 => 20130, 16187 => 28821, 16188 => 32771, + 16189 => 25335, 16190 => 28900, 16191 => 38752, 16192 => 22391, 16193 => 33499, + 16194 => 26607, 16195 => 26869, 16196 => 30933, 16197 => 39063, 16198 => 31185, + 16199 => 22771, 16200 => 21683, 16201 => 21487, 16202 => 28212, 16203 => 20811, + 16204 => 21051, 16205 => 23458, 16206 => 35838, 16207 => 32943, 16208 => 21827, + 16209 => 22438, 16210 => 24691, 16211 => 22353, 16212 => 21549, 16213 => 31354, + 16214 => 24656, 16215 => 23380, 16216 => 25511, 16217 => 25248, 16218 => 21475, + 16219 => 25187, 16220 => 23495, 16221 => 26543, 16222 => 21741, 16223 => 31391, + 16224 => 33510, 16225 => 37239, 16226 => 24211, 16227 => 35044, 16228 => 22840, + 16229 => 22446, 16230 => 25358, 16231 => 36328, 16232 => 33007, 16233 => 22359, + 16234 => 31607, 16235 => 20393, 16236 => 24555, 16237 => 23485, 16238 => 27454, + 16239 => 21281, 16240 => 31568, 16241 => 29378, 16242 => 26694, 16243 => 30719, + 16244 => 30518, 16245 => 26103, 16246 => 20917, 16247 => 20111, 16248 => 30420, + 16249 => 23743, 16250 => 31397, 16251 => 33909, 16252 => 22862, 16253 => 39745, + 16254 => 20608, 16417 => 39304, 16418 => 24871, 16419 => 28291, 16420 => 22372, + 16421 => 26118, 16422 => 25414, 16423 => 22256, 16424 => 25324, 16425 => 25193, + 16426 => 24275, 16427 => 38420, 16428 => 22403, 16429 => 25289, 16430 => 21895, + 16431 => 34593, 16432 => 33098, 16433 => 36771, 16434 => 21862, 16435 => 33713, + 16436 => 26469, 16437 => 36182, 16438 => 34013, 16439 => 23146, 16440 => 26639, + 16441 => 25318, 16442 => 31726, 16443 => 38417, 16444 => 20848, 16445 => 28572, + 16446 => 35888, 16447 => 25597, 16448 => 35272, 16449 => 25042, 16450 => 32518, + 16451 => 28866, 16452 => 28389, 16453 => 29701, 16454 => 27028, 16455 => 29436, + 16456 => 24266, 16457 => 37070, 16458 => 26391, 16459 => 28010, 16460 => 25438, + 16461 => 21171, 16462 => 29282, 16463 => 32769, 16464 => 20332, 16465 => 23013, + 16466 => 37226, 16467 => 28889, 16468 => 28061, 16469 => 21202, 16470 => 20048, + 16471 => 38647, 16472 => 38253, 16473 => 34174, 16474 => 30922, 16475 => 32047, + 16476 => 20769, 16477 => 22418, 16478 => 25794, 16479 => 32907, 16480 => 31867, + 16481 => 27882, 16482 => 26865, 16483 => 26974, 16484 => 20919, 16485 => 21400, + 16486 => 26792, 16487 => 29313, 16488 => 40654, 16489 => 31729, 16490 => 29432, + 16491 => 31163, 16492 => 28435, 16493 => 29702, 16494 => 26446, 16495 => 37324, + 16496 => 40100, 16497 => 31036, 16498 => 33673, 16499 => 33620, 16500 => 21519, + 16501 => 26647, 16502 => 20029, 16503 => 21385, 16504 => 21169, 16505 => 30782, + 16506 => 21382, 16507 => 21033, 16508 => 20616, 16509 => 20363, 16510 => 20432, + 16673 => 30178, 16674 => 31435, 16675 => 31890, 16676 => 27813, 16677 => 38582, + 16678 => 21147, 16679 => 29827, 16680 => 21737, 16681 => 20457, 16682 => 32852, + 16683 => 33714, 16684 => 36830, 16685 => 38256, 16686 => 24265, 16687 => 24604, + 16688 => 28063, 16689 => 24088, 16690 => 25947, 16691 => 33080, 16692 => 38142, + 16693 => 24651, 16694 => 28860, 16695 => 32451, 16696 => 31918, 16697 => 20937, + 16698 => 26753, 16699 => 31921, 16700 => 33391, 16701 => 20004, 16702 => 36742, + 16703 => 37327, 16704 => 26238, 16705 => 20142, 16706 => 35845, 16707 => 25769, + 16708 => 32842, 16709 => 20698, 16710 => 30103, 16711 => 29134, 16712 => 23525, + 16713 => 36797, 16714 => 28518, 16715 => 20102, 16716 => 25730, 16717 => 38243, + 16718 => 24278, 16719 => 26009, 16720 => 21015, 16721 => 35010, 16722 => 28872, + 16723 => 21155, 16724 => 29454, 16725 => 29747, 16726 => 26519, 16727 => 30967, + 16728 => 38678, 16729 => 20020, 16730 => 37051, 16731 => 40158, 16732 => 28107, + 16733 => 20955, 16734 => 36161, 16735 => 21533, 16736 => 25294, 16737 => 29618, + 16738 => 33777, 16739 => 38646, 16740 => 40836, 16741 => 38083, 16742 => 20278, + 16743 => 32666, 16744 => 20940, 16745 => 28789, 16746 => 38517, 16747 => 23725, + 16748 => 39046, 16749 => 21478, 16750 => 20196, 16751 => 28316, 16752 => 29705, + 16753 => 27060, 16754 => 30827, 16755 => 39311, 16756 => 30041, 16757 => 21016, + 16758 => 30244, 16759 => 27969, 16760 => 26611, 16761 => 20845, 16762 => 40857, + 16763 => 32843, 16764 => 21657, 16765 => 31548, 16766 => 31423, 16929 => 38534, + 16930 => 22404, 16931 => 25314, 16932 => 38471, 16933 => 27004, 16934 => 23044, + 16935 => 25602, 16936 => 31699, 16937 => 28431, 16938 => 38475, 16939 => 33446, + 16940 => 21346, 16941 => 39045, 16942 => 24208, 16943 => 28809, 16944 => 25523, + 16945 => 21348, 16946 => 34383, 16947 => 40065, 16948 => 40595, 16949 => 30860, + 16950 => 38706, 16951 => 36335, 16952 => 36162, 16953 => 40575, 16954 => 28510, + 16955 => 31108, 16956 => 24405, 16957 => 38470, 16958 => 25134, 16959 => 39540, + 16960 => 21525, 16961 => 38109, 16962 => 20387, 16963 => 26053, 16964 => 23653, + 16965 => 23649, 16966 => 32533, 16967 => 34385, 16968 => 27695, 16969 => 24459, + 16970 => 29575, 16971 => 28388, 16972 => 32511, 16973 => 23782, 16974 => 25371, + 16975 => 23402, 16976 => 28390, 16977 => 21365, 16978 => 20081, 16979 => 25504, + 16980 => 30053, 16981 => 25249, 16982 => 36718, 16983 => 20262, 16984 => 20177, + 16985 => 27814, 16986 => 32438, 16987 => 35770, 16988 => 33821, 16989 => 34746, + 16990 => 32599, 16991 => 36923, 16992 => 38179, 16993 => 31657, 16994 => 39585, + 16995 => 35064, 16996 => 33853, 16997 => 27931, 16998 => 39558, 16999 => 32476, + 17000 => 22920, 17001 => 40635, 17002 => 29595, 17003 => 30721, 17004 => 34434, + 17005 => 39532, 17006 => 39554, 17007 => 22043, 17008 => 21527, 17009 => 22475, + 17010 => 20080, 17011 => 40614, 17012 => 21334, 17013 => 36808, 17014 => 33033, + 17015 => 30610, 17016 => 39314, 17017 => 34542, 17018 => 28385, 17019 => 34067, + 17020 => 26364, 17021 => 24930, 17022 => 28459, 17185 => 35881, 17186 => 33426, + 17187 => 33579, 17188 => 30450, 17189 => 27667, 17190 => 24537, 17191 => 33725, + 17192 => 29483, 17193 => 33541, 17194 => 38170, 17195 => 27611, 17196 => 30683, + 17197 => 38086, 17198 => 21359, 17199 => 33538, 17200 => 20882, 17201 => 24125, + 17202 => 35980, 17203 => 36152, 17204 => 20040, 17205 => 29611, 17206 => 26522, + 17207 => 26757, 17208 => 37238, 17209 => 38665, 17210 => 29028, 17211 => 27809, + 17212 => 30473, 17213 => 23186, 17214 => 38209, 17215 => 27599, 17216 => 32654, + 17217 => 26151, 17218 => 23504, 17219 => 22969, 17220 => 23194, 17221 => 38376, + 17222 => 38391, 17223 => 20204, 17224 => 33804, 17225 => 33945, 17226 => 27308, + 17227 => 30431, 17228 => 38192, 17229 => 29467, 17230 => 26790, 17231 => 23391, + 17232 => 30511, 17233 => 37274, 17234 => 38753, 17235 => 31964, 17236 => 36855, + 17237 => 35868, 17238 => 24357, 17239 => 31859, 17240 => 31192, 17241 => 35269, + 17242 => 27852, 17243 => 34588, 17244 => 23494, 17245 => 24130, 17246 => 26825, + 17247 => 30496, 17248 => 32501, 17249 => 20885, 17250 => 20813, 17251 => 21193, + 17252 => 23081, 17253 => 32517, 17254 => 38754, 17255 => 33495, 17256 => 25551, + 17257 => 30596, 17258 => 34256, 17259 => 31186, 17260 => 28218, 17261 => 24217, + 17262 => 22937, 17263 => 34065, 17264 => 28781, 17265 => 27665, 17266 => 25279, + 17267 => 30399, 17268 => 25935, 17269 => 24751, 17270 => 38397, 17271 => 26126, + 17272 => 34719, 17273 => 40483, 17274 => 38125, 17275 => 21517, 17276 => 21629, + 17277 => 35884, 17278 => 25720, 17441 => 25721, 17442 => 34321, 17443 => 27169, + 17444 => 33180, 17445 => 30952, 17446 => 25705, 17447 => 39764, 17448 => 25273, + 17449 => 26411, 17450 => 33707, 17451 => 22696, 17452 => 40664, 17453 => 27819, + 17454 => 28448, 17455 => 23518, 17456 => 38476, 17457 => 35851, 17458 => 29279, + 17459 => 26576, 17460 => 25287, 17461 => 29281, 17462 => 20137, 17463 => 22982, + 17464 => 27597, 17465 => 22675, 17466 => 26286, 17467 => 24149, 17468 => 21215, + 17469 => 24917, 17470 => 26408, 17471 => 30446, 17472 => 30566, 17473 => 29287, + 17474 => 31302, 17475 => 25343, 17476 => 21738, 17477 => 21584, 17478 => 38048, + 17479 => 37027, 17480 => 23068, 17481 => 32435, 17482 => 27670, 17483 => 20035, + 17484 => 22902, 17485 => 32784, 17486 => 22856, 17487 => 21335, 17488 => 30007, + 17489 => 38590, 17490 => 22218, 17491 => 25376, 17492 => 33041, 17493 => 24700, + 17494 => 38393, 17495 => 28118, 17496 => 21602, 17497 => 39297, 17498 => 20869, + 17499 => 23273, 17500 => 33021, 17501 => 22958, 17502 => 38675, 17503 => 20522, + 17504 => 27877, 17505 => 23612, 17506 => 25311, 17507 => 20320, 17508 => 21311, + 17509 => 33147, 17510 => 36870, 17511 => 28346, 17512 => 34091, 17513 => 25288, + 17514 => 24180, 17515 => 30910, 17516 => 25781, 17517 => 25467, 17518 => 24565, + 17519 => 23064, 17520 => 37247, 17521 => 40479, 17522 => 23615, 17523 => 25423, + 17524 => 32834, 17525 => 23421, 17526 => 21870, 17527 => 38218, 17528 => 38221, + 17529 => 28037, 17530 => 24744, 17531 => 26592, 17532 => 29406, 17533 => 20957, + 17534 => 23425, 17697 => 25319, 17698 => 27870, 17699 => 29275, 17700 => 25197, + 17701 => 38062, 17702 => 32445, 17703 => 33043, 17704 => 27987, 17705 => 20892, + 17706 => 24324, 17707 => 22900, 17708 => 21162, 17709 => 24594, 17710 => 22899, + 17711 => 26262, 17712 => 34384, 17713 => 30111, 17714 => 25386, 17715 => 25062, + 17716 => 31983, 17717 => 35834, 17718 => 21734, 17719 => 27431, 17720 => 40485, + 17721 => 27572, 17722 => 34261, 17723 => 21589, 17724 => 20598, 17725 => 27812, + 17726 => 21866, 17727 => 36276, 17728 => 29228, 17729 => 24085, 17730 => 24597, + 17731 => 29750, 17732 => 25293, 17733 => 25490, 17734 => 29260, 17735 => 24472, + 17736 => 28227, 17737 => 27966, 17738 => 25856, 17739 => 28504, 17740 => 30424, + 17741 => 30928, 17742 => 30460, 17743 => 30036, 17744 => 21028, 17745 => 21467, + 17746 => 20051, 17747 => 24222, 17748 => 26049, 17749 => 32810, 17750 => 32982, + 17751 => 25243, 17752 => 21638, 17753 => 21032, 17754 => 28846, 17755 => 34957, + 17756 => 36305, 17757 => 27873, 17758 => 21624, 17759 => 32986, 17760 => 22521, + 17761 => 35060, 17762 => 36180, 17763 => 38506, 17764 => 37197, 17765 => 20329, + 17766 => 27803, 17767 => 21943, 17768 => 30406, 17769 => 30768, 17770 => 25256, + 17771 => 28921, 17772 => 28558, 17773 => 24429, 17774 => 34028, 17775 => 26842, + 17776 => 30844, 17777 => 31735, 17778 => 33192, 17779 => 26379, 17780 => 40527, + 17781 => 25447, 17782 => 30896, 17783 => 22383, 17784 => 30738, 17785 => 38713, + 17786 => 25209, 17787 => 25259, 17788 => 21128, 17789 => 29749, 17790 => 27607, + 17953 => 21860, 17954 => 33086, 17955 => 30130, 17956 => 30382, 17957 => 21305, + 17958 => 30174, 17959 => 20731, 17960 => 23617, 17961 => 35692, 17962 => 31687, + 17963 => 20559, 17964 => 29255, 17965 => 39575, 17966 => 39128, 17967 => 28418, + 17968 => 29922, 17969 => 31080, 17970 => 25735, 17971 => 30629, 17972 => 25340, + 17973 => 39057, 17974 => 36139, 17975 => 21697, 17976 => 32856, 17977 => 20050, + 17978 => 22378, 17979 => 33529, 17980 => 33805, 17981 => 24179, 17982 => 20973, + 17983 => 29942, 17984 => 35780, 17985 => 23631, 17986 => 22369, 17987 => 27900, + 17988 => 39047, 17989 => 23110, 17990 => 30772, 17991 => 39748, 17992 => 36843, + 17993 => 31893, 17994 => 21078, 17995 => 25169, 17996 => 38138, 17997 => 20166, + 17998 => 33670, 17999 => 33889, 18000 => 33769, 18001 => 33970, 18002 => 22484, + 18003 => 26420, 18004 => 22275, 18005 => 26222, 18006 => 28006, 18007 => 35889, + 18008 => 26333, 18009 => 28689, 18010 => 26399, 18011 => 27450, 18012 => 26646, + 18013 => 25114, 18014 => 22971, 18015 => 19971, 18016 => 20932, 18017 => 28422, + 18018 => 26578, 18019 => 27791, 18020 => 20854, 18021 => 26827, 18022 => 22855, + 18023 => 27495, 18024 => 30054, 18025 => 23822, 18026 => 33040, 18027 => 40784, + 18028 => 26071, 18029 => 31048, 18030 => 31041, 18031 => 39569, 18032 => 36215, + 18033 => 23682, 18034 => 20062, 18035 => 20225, 18036 => 21551, 18037 => 22865, + 18038 => 30732, 18039 => 22120, 18040 => 27668, 18041 => 36804, 18042 => 24323, + 18043 => 27773, 18044 => 27875, 18045 => 35755, 18046 => 25488, 18209 => 24688, + 18210 => 27965, 18211 => 29301, 18212 => 25190, 18213 => 38030, 18214 => 38085, + 18215 => 21315, 18216 => 36801, 18217 => 31614, 18218 => 20191, 18219 => 35878, + 18220 => 20094, 18221 => 40660, 18222 => 38065, 18223 => 38067, 18224 => 21069, + 18225 => 28508, 18226 => 36963, 18227 => 27973, 18228 => 35892, 18229 => 22545, + 18230 => 23884, 18231 => 27424, 18232 => 27465, 18233 => 26538, 18234 => 21595, + 18235 => 33108, 18236 => 32652, 18237 => 22681, 18238 => 34103, 18239 => 24378, + 18240 => 25250, 18241 => 27207, 18242 => 38201, 18243 => 25970, 18244 => 24708, + 18245 => 26725, 18246 => 30631, 18247 => 20052, 18248 => 20392, 18249 => 24039, + 18250 => 38808, 18251 => 25772, 18252 => 32728, 18253 => 23789, 18254 => 20431, + 18255 => 31373, 18256 => 20999, 18257 => 33540, 18258 => 19988, 18259 => 24623, + 18260 => 31363, 18261 => 38054, 18262 => 20405, 18263 => 20146, 18264 => 31206, + 18265 => 29748, 18266 => 21220, 18267 => 33465, 18268 => 25810, 18269 => 31165, + 18270 => 23517, 18271 => 27777, 18272 => 38738, 18273 => 36731, 18274 => 27682, + 18275 => 20542, 18276 => 21375, 18277 => 28165, 18278 => 25806, 18279 => 26228, + 18280 => 27696, 18281 => 24773, 18282 => 39031, 18283 => 35831, 18284 => 24198, + 18285 => 29756, 18286 => 31351, 18287 => 31179, 18288 => 19992, 18289 => 37041, + 18290 => 29699, 18291 => 27714, 18292 => 22234, 18293 => 37195, 18294 => 27845, + 18295 => 36235, 18296 => 21306, 18297 => 34502, 18298 => 26354, 18299 => 36527, + 18300 => 23624, 18301 => 39537, 18302 => 28192, 18465 => 21462, 18466 => 23094, + 18467 => 40843, 18468 => 36259, 18469 => 21435, 18470 => 22280, 18471 => 39079, + 18472 => 26435, 18473 => 37275, 18474 => 27849, 18475 => 20840, 18476 => 30154, + 18477 => 25331, 18478 => 29356, 18479 => 21048, 18480 => 21149, 18481 => 32570, + 18482 => 28820, 18483 => 30264, 18484 => 21364, 18485 => 40522, 18486 => 27063, + 18487 => 30830, 18488 => 38592, 18489 => 35033, 18490 => 32676, 18491 => 28982, + 18492 => 29123, 18493 => 20873, 18494 => 26579, 18495 => 29924, 18496 => 22756, + 18497 => 25880, 18498 => 22199, 18499 => 35753, 18500 => 39286, 18501 => 25200, + 18502 => 32469, 18503 => 24825, 18504 => 28909, 18505 => 22764, 18506 => 20161, + 18507 => 20154, 18508 => 24525, 18509 => 38887, 18510 => 20219, 18511 => 35748, + 18512 => 20995, 18513 => 22922, 18514 => 32427, 18515 => 25172, 18516 => 20173, + 18517 => 26085, 18518 => 25102, 18519 => 33592, 18520 => 33993, 18521 => 33635, + 18522 => 34701, 18523 => 29076, 18524 => 28342, 18525 => 23481, 18526 => 32466, + 18527 => 20887, 18528 => 25545, 18529 => 26580, 18530 => 32905, 18531 => 33593, + 18532 => 34837, 18533 => 20754, 18534 => 23418, 18535 => 22914, 18536 => 36785, + 18537 => 20083, 18538 => 27741, 18539 => 20837, 18540 => 35109, 18541 => 36719, + 18542 => 38446, 18543 => 34122, 18544 => 29790, 18545 => 38160, 18546 => 38384, + 18547 => 28070, 18548 => 33509, 18549 => 24369, 18550 => 25746, 18551 => 27922, + 18552 => 33832, 18553 => 33134, 18554 => 40131, 18555 => 22622, 18556 => 36187, + 18557 => 19977, 18558 => 21441, 18721 => 20254, 18722 => 25955, 18723 => 26705, + 18724 => 21971, 18725 => 20007, 18726 => 25620, 18727 => 39578, 18728 => 25195, + 18729 => 23234, 18730 => 29791, 18731 => 33394, 18732 => 28073, 18733 => 26862, + 18734 => 20711, 18735 => 33678, 18736 => 30722, 18737 => 26432, 18738 => 21049, + 18739 => 27801, 18740 => 32433, 18741 => 20667, 18742 => 21861, 18743 => 29022, + 18744 => 31579, 18745 => 26194, 18746 => 29642, 18747 => 33515, 18748 => 26441, + 18749 => 23665, 18750 => 21024, 18751 => 29053, 18752 => 34923, 18753 => 38378, + 18754 => 38485, 18755 => 25797, 18756 => 36193, 18757 => 33203, 18758 => 21892, + 18759 => 27733, 18760 => 25159, 18761 => 32558, 18762 => 22674, 18763 => 20260, + 18764 => 21830, 18765 => 36175, 18766 => 26188, 18767 => 19978, 18768 => 23578, + 18769 => 35059, 18770 => 26786, 18771 => 25422, 18772 => 31245, 18773 => 28903, + 18774 => 33421, 18775 => 21242, 18776 => 38902, 18777 => 23569, 18778 => 21736, + 18779 => 37045, 18780 => 32461, 18781 => 22882, 18782 => 36170, 18783 => 34503, + 18784 => 33292, 18785 => 33293, 18786 => 36198, 18787 => 25668, 18788 => 23556, + 18789 => 24913, 18790 => 28041, 18791 => 31038, 18792 => 35774, 18793 => 30775, + 18794 => 30003, 18795 => 21627, 18796 => 20280, 18797 => 36523, 18798 => 28145, + 18799 => 23072, 18800 => 32453, 18801 => 31070, 18802 => 27784, 18803 => 23457, + 18804 => 23158, 18805 => 29978, 18806 => 32958, 18807 => 24910, 18808 => 28183, + 18809 => 22768, 18810 => 29983, 18811 => 29989, 18812 => 29298, 18813 => 21319, + 18814 => 32499, 18977 => 30465, 18978 => 30427, 18979 => 21097, 18980 => 32988, + 18981 => 22307, 18982 => 24072, 18983 => 22833, 18984 => 29422, 18985 => 26045, + 18986 => 28287, 18987 => 35799, 18988 => 23608, 18989 => 34417, 18990 => 21313, + 18991 => 30707, 18992 => 25342, 18993 => 26102, 18994 => 20160, 18995 => 39135, + 18996 => 34432, 18997 => 23454, 18998 => 35782, 18999 => 21490, 19000 => 30690, + 19001 => 20351, 19002 => 23630, 19003 => 39542, 19004 => 22987, 19005 => 24335, + 19006 => 31034, 19007 => 22763, 19008 => 19990, 19009 => 26623, 19010 => 20107, + 19011 => 25325, 19012 => 35475, 19013 => 36893, 19014 => 21183, 19015 => 26159, + 19016 => 21980, 19017 => 22124, 19018 => 36866, 19019 => 20181, 19020 => 20365, + 19021 => 37322, 19022 => 39280, 19023 => 27663, 19024 => 24066, 19025 => 24643, + 19026 => 23460, 19027 => 35270, 19028 => 35797, 19029 => 25910, 19030 => 25163, + 19031 => 39318, 19032 => 23432, 19033 => 23551, 19034 => 25480, 19035 => 21806, + 19036 => 21463, 19037 => 30246, 19038 => 20861, 19039 => 34092, 19040 => 26530, + 19041 => 26803, 19042 => 27530, 19043 => 25234, 19044 => 36755, 19045 => 21460, + 19046 => 33298, 19047 => 28113, 19048 => 30095, 19049 => 20070, 19050 => 36174, + 19051 => 23408, 19052 => 29087, 19053 => 34223, 19054 => 26257, 19055 => 26329, + 19056 => 32626, 19057 => 34560, 19058 => 40653, 19059 => 40736, 19060 => 23646, + 19061 => 26415, 19062 => 36848, 19063 => 26641, 19064 => 26463, 19065 => 25101, + 19066 => 31446, 19067 => 22661, 19068 => 24246, 19069 => 25968, 19070 => 28465, + 19233 => 24661, 19234 => 21047, 19235 => 32781, 19236 => 25684, 19237 => 34928, + 19238 => 29993, 19239 => 24069, 19240 => 26643, 19241 => 25332, 19242 => 38684, + 19243 => 21452, 19244 => 29245, 19245 => 35841, 19246 => 27700, 19247 => 30561, + 19248 => 31246, 19249 => 21550, 19250 => 30636, 19251 => 39034, 19252 => 33308, + 19253 => 35828, 19254 => 30805, 19255 => 26388, 19256 => 28865, 19257 => 26031, + 19258 => 25749, 19259 => 22070, 19260 => 24605, 19261 => 31169, 19262 => 21496, + 19263 => 19997, 19264 => 27515, 19265 => 32902, 19266 => 23546, 19267 => 21987, + 19268 => 22235, 19269 => 20282, 19270 => 20284, 19271 => 39282, 19272 => 24051, + 19273 => 26494, 19274 => 32824, 19275 => 24578, 19276 => 39042, 19277 => 36865, + 19278 => 23435, 19279 => 35772, 19280 => 35829, 19281 => 25628, 19282 => 33368, + 19283 => 25822, 19284 => 22013, 19285 => 33487, 19286 => 37221, 19287 => 20439, + 19288 => 32032, 19289 => 36895, 19290 => 31903, 19291 => 20723, 19292 => 22609, + 19293 => 28335, 19294 => 23487, 19295 => 35785, 19296 => 32899, 19297 => 37240, + 19298 => 33948, 19299 => 31639, 19300 => 34429, 19301 => 38539, 19302 => 38543, + 19303 => 32485, 19304 => 39635, 19305 => 30862, 19306 => 23681, 19307 => 31319, + 19308 => 36930, 19309 => 38567, 19310 => 31071, 19311 => 23385, 19312 => 25439, + 19313 => 31499, 19314 => 34001, 19315 => 26797, 19316 => 21766, 19317 => 32553, + 19318 => 29712, 19319 => 32034, 19320 => 38145, 19321 => 25152, 19322 => 22604, + 19323 => 20182, 19324 => 23427, 19325 => 22905, 19326 => 22612, 19489 => 29549, + 19490 => 25374, 19491 => 36427, 19492 => 36367, 19493 => 32974, 19494 => 33492, + 19495 => 25260, 19496 => 21488, 19497 => 27888, 19498 => 37214, 19499 => 22826, + 19500 => 24577, 19501 => 27760, 19502 => 22349, 19503 => 25674, 19504 => 36138, + 19505 => 30251, 19506 => 28393, 19507 => 22363, 19508 => 27264, 19509 => 30192, + 19510 => 28525, 19511 => 35885, 19512 => 35848, 19513 => 22374, 19514 => 27631, + 19515 => 34962, 19516 => 30899, 19517 => 25506, 19518 => 21497, 19519 => 28845, + 19520 => 27748, 19521 => 22616, 19522 => 25642, 19523 => 22530, 19524 => 26848, + 19525 => 33179, 19526 => 21776, 19527 => 31958, 19528 => 20504, 19529 => 36538, + 19530 => 28108, 19531 => 36255, 19532 => 28907, 19533 => 25487, 19534 => 28059, + 19535 => 28372, 19536 => 32486, 19537 => 33796, 19538 => 26691, 19539 => 36867, + 19540 => 28120, 19541 => 38518, 19542 => 35752, 19543 => 22871, 19544 => 29305, + 19545 => 34276, 19546 => 33150, 19547 => 30140, 19548 => 35466, 19549 => 26799, + 19550 => 21076, 19551 => 36386, 19552 => 38161, 19553 => 25552, 19554 => 39064, + 19555 => 36420, 19556 => 21884, 19557 => 20307, 19558 => 26367, 19559 => 22159, + 19560 => 24789, 19561 => 28053, 19562 => 21059, 19563 => 23625, 19564 => 22825, + 19565 => 28155, 19566 => 22635, 19567 => 30000, 19568 => 29980, 19569 => 24684, + 19570 => 33300, 19571 => 33094, 19572 => 25361, 19573 => 26465, 19574 => 36834, + 19575 => 30522, 19576 => 36339, 19577 => 36148, 19578 => 38081, 19579 => 24086, + 19580 => 21381, 19581 => 21548, 19582 => 28867, 19745 => 27712, 19746 => 24311, + 19747 => 20572, 19748 => 20141, 19749 => 24237, 19750 => 25402, 19751 => 33351, + 19752 => 36890, 19753 => 26704, 19754 => 37230, 19755 => 30643, 19756 => 21516, + 19757 => 38108, 19758 => 24420, 19759 => 31461, 19760 => 26742, 19761 => 25413, + 19762 => 31570, 19763 => 32479, 19764 => 30171, 19765 => 20599, 19766 => 25237, + 19767 => 22836, 19768 => 36879, 19769 => 20984, 19770 => 31171, 19771 => 31361, + 19772 => 22270, 19773 => 24466, 19774 => 36884, 19775 => 28034, 19776 => 23648, + 19777 => 22303, 19778 => 21520, 19779 => 20820, 19780 => 28237, 19781 => 22242, + 19782 => 25512, 19783 => 39059, 19784 => 33151, 19785 => 34581, 19786 => 35114, + 19787 => 36864, 19788 => 21534, 19789 => 23663, 19790 => 33216, 19791 => 25302, + 19792 => 25176, 19793 => 33073, 19794 => 40501, 19795 => 38464, 19796 => 39534, + 19797 => 39548, 19798 => 26925, 19799 => 22949, 19800 => 25299, 19801 => 21822, + 19802 => 25366, 19803 => 21703, 19804 => 34521, 19805 => 27964, 19806 => 23043, + 19807 => 29926, 19808 => 34972, 19809 => 27498, 19810 => 22806, 19811 => 35916, + 19812 => 24367, 19813 => 28286, 19814 => 29609, 19815 => 39037, 19816 => 20024, + 19817 => 28919, 19818 => 23436, 19819 => 30871, 19820 => 25405, 19821 => 26202, + 19822 => 30358, 19823 => 24779, 19824 => 23451, 19825 => 23113, 19826 => 19975, + 19827 => 33109, 19828 => 27754, 19829 => 29579, 19830 => 20129, 19831 => 26505, + 19832 => 32593, 19833 => 24448, 19834 => 26106, 19835 => 26395, 19836 => 24536, + 19837 => 22916, 19838 => 23041, 20001 => 24013, 20002 => 24494, 20003 => 21361, + 20004 => 38886, 20005 => 36829, 20006 => 26693, 20007 => 22260, 20008 => 21807, + 20009 => 24799, 20010 => 20026, 20011 => 28493, 20012 => 32500, 20013 => 33479, + 20014 => 33806, 20015 => 22996, 20016 => 20255, 20017 => 20266, 20018 => 23614, + 20019 => 32428, 20020 => 26410, 20021 => 34074, 20022 => 21619, 20023 => 30031, + 20024 => 32963, 20025 => 21890, 20026 => 39759, 20027 => 20301, 20028 => 28205, + 20029 => 35859, 20030 => 23561, 20031 => 24944, 20032 => 21355, 20033 => 30239, + 20034 => 28201, 20035 => 34442, 20036 => 25991, 20037 => 38395, 20038 => 32441, + 20039 => 21563, 20040 => 31283, 20041 => 32010, 20042 => 38382, 20043 => 21985, + 20044 => 32705, 20045 => 29934, 20046 => 25373, 20047 => 34583, 20048 => 28065, + 20049 => 31389, 20050 => 25105, 20051 => 26017, 20052 => 21351, 20053 => 25569, + 20054 => 27779, 20055 => 24043, 20056 => 21596, 20057 => 38056, 20058 => 20044, + 20059 => 27745, 20060 => 35820, 20061 => 23627, 20062 => 26080, 20063 => 33436, + 20064 => 26791, 20065 => 21566, 20066 => 21556, 20067 => 27595, 20068 => 27494, + 20069 => 20116, 20070 => 25410, 20071 => 21320, 20072 => 33310, 20073 => 20237, + 20074 => 20398, 20075 => 22366, 20076 => 25098, 20077 => 38654, 20078 => 26212, + 20079 => 29289, 20080 => 21247, 20081 => 21153, 20082 => 24735, 20083 => 35823, + 20084 => 26132, 20085 => 29081, 20086 => 26512, 20087 => 35199, 20088 => 30802, + 20089 => 30717, 20090 => 26224, 20091 => 22075, 20092 => 21560, 20093 => 38177, + 20094 => 29306, 20257 => 31232, 20258 => 24687, 20259 => 24076, 20260 => 24713, + 20261 => 33181, 20262 => 22805, 20263 => 24796, 20264 => 29060, 20265 => 28911, + 20266 => 28330, 20267 => 27728, 20268 => 29312, 20269 => 27268, 20270 => 34989, + 20271 => 24109, 20272 => 20064, 20273 => 23219, 20274 => 21916, 20275 => 38115, + 20276 => 27927, 20277 => 31995, 20278 => 38553, 20279 => 25103, 20280 => 32454, + 20281 => 30606, 20282 => 34430, 20283 => 21283, 20284 => 38686, 20285 => 36758, + 20286 => 26247, 20287 => 23777, 20288 => 20384, 20289 => 29421, 20290 => 19979, + 20291 => 21414, 20292 => 22799, 20293 => 21523, 20294 => 25472, 20295 => 38184, + 20296 => 20808, 20297 => 20185, 20298 => 40092, 20299 => 32420, 20300 => 21688, + 20301 => 36132, 20302 => 34900, 20303 => 33335, 20304 => 38386, 20305 => 28046, + 20306 => 24358, 20307 => 23244, 20308 => 26174, 20309 => 38505, 20310 => 29616, + 20311 => 29486, 20312 => 21439, 20313 => 33146, 20314 => 39301, 20315 => 32673, + 20316 => 23466, 20317 => 38519, 20318 => 38480, 20319 => 32447, 20320 => 30456, + 20321 => 21410, 20322 => 38262, 20323 => 39321, 20324 => 31665, 20325 => 35140, + 20326 => 28248, 20327 => 20065, 20328 => 32724, 20329 => 31077, 20330 => 35814, + 20331 => 24819, 20332 => 21709, 20333 => 20139, 20334 => 39033, 20335 => 24055, + 20336 => 27233, 20337 => 20687, 20338 => 21521, 20339 => 35937, 20340 => 33831, + 20341 => 30813, 20342 => 38660, 20343 => 21066, 20344 => 21742, 20345 => 22179, + 20346 => 38144, 20347 => 28040, 20348 => 23477, 20349 => 28102, 20350 => 26195, + 20513 => 23567, 20514 => 23389, 20515 => 26657, 20516 => 32918, 20517 => 21880, + 20518 => 31505, 20519 => 25928, 20520 => 26964, 20521 => 20123, 20522 => 27463, + 20523 => 34638, 20524 => 38795, 20525 => 21327, 20526 => 25375, 20527 => 25658, + 20528 => 37034, 20529 => 26012, 20530 => 32961, 20531 => 35856, 20532 => 20889, + 20533 => 26800, 20534 => 21368, 20535 => 34809, 20536 => 25032, 20537 => 27844, + 20538 => 27899, 20539 => 35874, 20540 => 23633, 20541 => 34218, 20542 => 33455, + 20543 => 38156, 20544 => 27427, 20545 => 36763, 20546 => 26032, 20547 => 24571, + 20548 => 24515, 20549 => 20449, 20550 => 34885, 20551 => 26143, 20552 => 33125, + 20553 => 29481, 20554 => 24826, 20555 => 20852, 20556 => 21009, 20557 => 22411, + 20558 => 24418, 20559 => 37026, 20560 => 34892, 20561 => 37266, 20562 => 24184, + 20563 => 26447, 20564 => 24615, 20565 => 22995, 20566 => 20804, 20567 => 20982, + 20568 => 33016, 20569 => 21256, 20570 => 27769, 20571 => 38596, 20572 => 29066, + 20573 => 20241, 20574 => 20462, 20575 => 32670, 20576 => 26429, 20577 => 21957, + 20578 => 38152, 20579 => 31168, 20580 => 34966, 20581 => 32483, 20582 => 22687, + 20583 => 25100, 20584 => 38656, 20585 => 34394, 20586 => 22040, 20587 => 39035, + 20588 => 24464, 20589 => 35768, 20590 => 33988, 20591 => 37207, 20592 => 21465, + 20593 => 26093, 20594 => 24207, 20595 => 30044, 20596 => 24676, 20597 => 32110, + 20598 => 23167, 20599 => 32490, 20600 => 32493, 20601 => 36713, 20602 => 21927, + 20603 => 23459, 20604 => 24748, 20605 => 26059, 20606 => 29572, 20769 => 36873, + 20770 => 30307, 20771 => 30505, 20772 => 32474, 20773 => 38772, 20774 => 34203, + 20775 => 23398, 20776 => 31348, 20777 => 38634, 20778 => 34880, 20779 => 21195, + 20780 => 29071, 20781 => 24490, 20782 => 26092, 20783 => 35810, 20784 => 23547, + 20785 => 39535, 20786 => 24033, 20787 => 27529, 20788 => 27739, 20789 => 35757, + 20790 => 35759, 20791 => 36874, 20792 => 36805, 20793 => 21387, 20794 => 25276, + 20795 => 40486, 20796 => 40493, 20797 => 21568, 20798 => 20011, 20799 => 33469, + 20800 => 29273, 20801 => 34460, 20802 => 23830, 20803 => 34905, 20804 => 28079, + 20805 => 38597, 20806 => 21713, 20807 => 20122, 20808 => 35766, 20809 => 28937, + 20810 => 21693, 20811 => 38409, 20812 => 28895, 20813 => 28153, 20814 => 30416, + 20815 => 20005, 20816 => 30740, 20817 => 34578, 20818 => 23721, 20819 => 24310, + 20820 => 35328, 20821 => 39068, 20822 => 38414, 20823 => 28814, 20824 => 27839, + 20825 => 22852, 20826 => 25513, 20827 => 30524, 20828 => 34893, 20829 => 28436, + 20830 => 33395, 20831 => 22576, 20832 => 29141, 20833 => 21388, 20834 => 30746, + 20835 => 38593, 20836 => 21761, 20837 => 24422, 20838 => 28976, 20839 => 23476, + 20840 => 35866, 20841 => 39564, 20842 => 27523, 20843 => 22830, 20844 => 40495, + 20845 => 31207, 20846 => 26472, 20847 => 25196, 20848 => 20335, 20849 => 30113, + 20850 => 32650, 20851 => 27915, 20852 => 38451, 20853 => 27687, 20854 => 20208, + 20855 => 30162, 20856 => 20859, 20857 => 26679, 20858 => 28478, 20859 => 36992, + 20860 => 33136, 20861 => 22934, 20862 => 29814, 21025 => 25671, 21026 => 23591, + 21027 => 36965, 21028 => 31377, 21029 => 35875, 21030 => 23002, 21031 => 21676, + 21032 => 33280, 21033 => 33647, 21034 => 35201, 21035 => 32768, 21036 => 26928, + 21037 => 22094, 21038 => 32822, 21039 => 29239, 21040 => 37326, 21041 => 20918, + 21042 => 20063, 21043 => 39029, 21044 => 25494, 21045 => 19994, 21046 => 21494, + 21047 => 26355, 21048 => 33099, 21049 => 22812, 21050 => 28082, 21051 => 19968, + 21052 => 22777, 21053 => 21307, 21054 => 25558, 21055 => 38129, 21056 => 20381, + 21057 => 20234, 21058 => 34915, 21059 => 39056, 21060 => 22839, 21061 => 36951, + 21062 => 31227, 21063 => 20202, 21064 => 33008, 21065 => 30097, 21066 => 27778, + 21067 => 23452, 21068 => 23016, 21069 => 24413, 21070 => 26885, 21071 => 34433, + 21072 => 20506, 21073 => 24050, 21074 => 20057, 21075 => 30691, 21076 => 20197, + 21077 => 33402, 21078 => 25233, 21079 => 26131, 21080 => 37009, 21081 => 23673, + 21082 => 20159, 21083 => 24441, 21084 => 33222, 21085 => 36920, 21086 => 32900, + 21087 => 30123, 21088 => 20134, 21089 => 35028, 21090 => 24847, 21091 => 27589, + 21092 => 24518, 21093 => 20041, 21094 => 30410, 21095 => 28322, 21096 => 35811, + 21097 => 35758, 21098 => 35850, 21099 => 35793, 21100 => 24322, 21101 => 32764, + 21102 => 32716, 21103 => 32462, 21104 => 33589, 21105 => 33643, 21106 => 22240, + 21107 => 27575, 21108 => 38899, 21109 => 38452, 21110 => 23035, 21111 => 21535, + 21112 => 38134, 21113 => 28139, 21114 => 23493, 21115 => 39278, 21116 => 23609, + 21117 => 24341, 21118 => 38544, 21281 => 21360, 21282 => 33521, 21283 => 27185, + 21284 => 23156, 21285 => 40560, 21286 => 24212, 21287 => 32552, 21288 => 33721, + 21289 => 33828, 21290 => 33829, 21291 => 33639, 21292 => 34631, 21293 => 36814, + 21294 => 36194, 21295 => 30408, 21296 => 24433, 21297 => 39062, 21298 => 30828, + 21299 => 26144, 21300 => 21727, 21301 => 25317, 21302 => 20323, 21303 => 33219, + 21304 => 30152, 21305 => 24248, 21306 => 38605, 21307 => 36362, 21308 => 34553, + 21309 => 21647, 21310 => 27891, 21311 => 28044, 21312 => 27704, 21313 => 24703, + 21314 => 21191, 21315 => 29992, 21316 => 24189, 21317 => 20248, 21318 => 24736, + 21319 => 24551, 21320 => 23588, 21321 => 30001, 21322 => 37038, 21323 => 38080, + 21324 => 29369, 21325 => 27833, 21326 => 28216, 21327 => 37193, 21328 => 26377, + 21329 => 21451, 21330 => 21491, 21331 => 20305, 21332 => 37321, 21333 => 35825, + 21334 => 21448, 21335 => 24188, 21336 => 36802, 21337 => 28132, 21338 => 20110, + 21339 => 30402, 21340 => 27014, 21341 => 34398, 21342 => 24858, 21343 => 33286, + 21344 => 20313, 21345 => 20446, 21346 => 36926, 21347 => 40060, 21348 => 24841, + 21349 => 28189, 21350 => 28180, 21351 => 38533, 21352 => 20104, 21353 => 23089, + 21354 => 38632, 21355 => 19982, 21356 => 23679, 21357 => 31161, 21358 => 23431, + 21359 => 35821, 21360 => 32701, 21361 => 29577, 21362 => 22495, 21363 => 33419, + 21364 => 37057, 21365 => 21505, 21366 => 36935, 21367 => 21947, 21368 => 23786, + 21369 => 24481, 21370 => 24840, 21371 => 27442, 21372 => 29425, 21373 => 32946, + 21374 => 35465, 21537 => 28020, 21538 => 23507, 21539 => 35029, 21540 => 39044, + 21541 => 35947, 21542 => 39533, 21543 => 40499, 21544 => 28170, 21545 => 20900, + 21546 => 20803, 21547 => 22435, 21548 => 34945, 21549 => 21407, 21550 => 25588, + 21551 => 36757, 21552 => 22253, 21553 => 21592, 21554 => 22278, 21555 => 29503, + 21556 => 28304, 21557 => 32536, 21558 => 36828, 21559 => 33489, 21560 => 24895, + 21561 => 24616, 21562 => 38498, 21563 => 26352, 21564 => 32422, 21565 => 36234, + 21566 => 36291, 21567 => 38053, 21568 => 23731, 21569 => 31908, 21570 => 26376, + 21571 => 24742, 21572 => 38405, 21573 => 32792, 21574 => 20113, 21575 => 37095, + 21576 => 21248, 21577 => 38504, 21578 => 20801, 21579 => 36816, 21580 => 34164, + 21581 => 37213, 21582 => 26197, 21583 => 38901, 21584 => 23381, 21585 => 21277, + 21586 => 30776, 21587 => 26434, 21588 => 26685, 21589 => 21705, 21590 => 28798, + 21591 => 23472, 21592 => 36733, 21593 => 20877, 21594 => 22312, 21595 => 21681, + 21596 => 25874, 21597 => 26242, 21598 => 36190, 21599 => 36163, 21600 => 33039, + 21601 => 33900, 21602 => 36973, 21603 => 31967, 21604 => 20991, 21605 => 34299, + 21606 => 26531, 21607 => 26089, 21608 => 28577, 21609 => 34468, 21610 => 36481, + 21611 => 22122, 21612 => 36896, 21613 => 30338, 21614 => 28790, 21615 => 29157, + 21616 => 36131, 21617 => 25321, 21618 => 21017, 21619 => 27901, 21620 => 36156, + 21621 => 24590, 21622 => 22686, 21623 => 24974, 21624 => 26366, 21625 => 36192, + 21626 => 25166, 21627 => 21939, 21628 => 28195, 21629 => 26413, 21630 => 36711, + 21793 => 38113, 21794 => 38392, 21795 => 30504, 21796 => 26629, 21797 => 27048, + 21798 => 21643, 21799 => 20045, 21800 => 28856, 21801 => 35784, 21802 => 25688, + 21803 => 25995, 21804 => 23429, 21805 => 31364, 21806 => 20538, 21807 => 23528, + 21808 => 30651, 21809 => 27617, 21810 => 35449, 21811 => 31896, 21812 => 27838, + 21813 => 30415, 21814 => 26025, 21815 => 36759, 21816 => 23853, 21817 => 23637, + 21818 => 34360, 21819 => 26632, 21820 => 21344, 21821 => 25112, 21822 => 31449, + 21823 => 28251, 21824 => 32509, 21825 => 27167, 21826 => 31456, 21827 => 24432, + 21828 => 28467, 21829 => 24352, 21830 => 25484, 21831 => 28072, 21832 => 26454, + 21833 => 19976, 21834 => 24080, 21835 => 36134, 21836 => 20183, 21837 => 32960, + 21838 => 30260, 21839 => 38556, 21840 => 25307, 21841 => 26157, 21842 => 25214, + 21843 => 27836, 21844 => 36213, 21845 => 29031, 21846 => 32617, 21847 => 20806, + 21848 => 32903, 21849 => 21484, 21850 => 36974, 21851 => 25240, 21852 => 21746, + 21853 => 34544, 21854 => 36761, 21855 => 32773, 21856 => 38167, 21857 => 34071, + 21858 => 36825, 21859 => 27993, 21860 => 29645, 21861 => 26015, 21862 => 30495, + 21863 => 29956, 21864 => 30759, 21865 => 33275, 21866 => 36126, 21867 => 38024, + 21868 => 20390, 21869 => 26517, 21870 => 30137, 21871 => 35786, 21872 => 38663, + 21873 => 25391, 21874 => 38215, 21875 => 38453, 21876 => 33976, 21877 => 25379, + 21878 => 30529, 21879 => 24449, 21880 => 29424, 21881 => 20105, 21882 => 24596, + 21883 => 25972, 21884 => 25327, 21885 => 27491, 21886 => 25919, 22049 => 24103, + 22050 => 30151, 22051 => 37073, 22052 => 35777, 22053 => 33437, 22054 => 26525, + 22055 => 25903, 22056 => 21553, 22057 => 34584, 22058 => 30693, 22059 => 32930, + 22060 => 33026, 22061 => 27713, 22062 => 20043, 22063 => 32455, 22064 => 32844, + 22065 => 30452, 22066 => 26893, 22067 => 27542, 22068 => 25191, 22069 => 20540, + 22070 => 20356, 22071 => 22336, 22072 => 25351, 22073 => 27490, 22074 => 36286, + 22075 => 21482, 22076 => 26088, 22077 => 32440, 22078 => 24535, 22079 => 25370, + 22080 => 25527, 22081 => 33267, 22082 => 33268, 22083 => 32622, 22084 => 24092, + 22085 => 23769, 22086 => 21046, 22087 => 26234, 22088 => 31209, 22089 => 31258, + 22090 => 36136, 22091 => 28825, 22092 => 30164, 22093 => 28382, 22094 => 27835, + 22095 => 31378, 22096 => 20013, 22097 => 30405, 22098 => 24544, 22099 => 38047, + 22100 => 34935, 22101 => 32456, 22102 => 31181, 22103 => 32959, 22104 => 37325, + 22105 => 20210, 22106 => 20247, 22107 => 33311, 22108 => 21608, 22109 => 24030, + 22110 => 27954, 22111 => 35788, 22112 => 31909, 22113 => 36724, 22114 => 32920, + 22115 => 24090, 22116 => 21650, 22117 => 30385, 22118 => 23449, 22119 => 26172, + 22120 => 39588, 22121 => 29664, 22122 => 26666, 22123 => 34523, 22124 => 26417, + 22125 => 29482, 22126 => 35832, 22127 => 35803, 22128 => 36880, 22129 => 31481, + 22130 => 28891, 22131 => 29038, 22132 => 25284, 22133 => 30633, 22134 => 22065, + 22135 => 20027, 22136 => 33879, 22137 => 26609, 22138 => 21161, 22139 => 34496, + 22140 => 36142, 22141 => 38136, 22142 => 31569, 22305 => 20303, 22306 => 27880, + 22307 => 31069, 22308 => 39547, 22309 => 25235, 22310 => 29226, 22311 => 25341, + 22312 => 19987, 22313 => 30742, 22314 => 36716, 22315 => 25776, 22316 => 36186, + 22317 => 31686, 22318 => 26729, 22319 => 24196, 22320 => 35013, 22321 => 22918, + 22322 => 25758, 22323 => 22766, 22324 => 29366, 22325 => 26894, 22326 => 38181, + 22327 => 36861, 22328 => 36184, 22329 => 22368, 22330 => 32512, 22331 => 35846, + 22332 => 20934, 22333 => 25417, 22334 => 25305, 22335 => 21331, 22336 => 26700, + 22337 => 29730, 22338 => 33537, 22339 => 37196, 22340 => 21828, 22341 => 30528, + 22342 => 28796, 22343 => 27978, 22344 => 20857, 22345 => 21672, 22346 => 36164, + 22347 => 23039, 22348 => 28363, 22349 => 28100, 22350 => 23388, 22351 => 32043, + 22352 => 20180, 22353 => 31869, 22354 => 28371, 22355 => 23376, 22356 => 33258, + 22357 => 28173, 22358 => 23383, 22359 => 39683, 22360 => 26837, 22361 => 36394, + 22362 => 23447, 22363 => 32508, 22364 => 24635, 22365 => 32437, 22366 => 37049, + 22367 => 36208, 22368 => 22863, 22369 => 25549, 22370 => 31199, 22371 => 36275, + 22372 => 21330, 22373 => 26063, 22374 => 31062, 22375 => 35781, 22376 => 38459, + 22377 => 32452, 22378 => 38075, 22379 => 32386, 22380 => 22068, 22381 => 37257, + 22382 => 26368, 22383 => 32618, 22384 => 23562, 22385 => 36981, 22386 => 26152, + 22387 => 24038, 22388 => 20304, 22389 => 26590, 22390 => 20570, 22391 => 20316, + 22392 => 22352, 22393 => 24231, 22561 => 20109, 22562 => 19980, 22563 => 20800, + 22564 => 19984, 22565 => 24319, 22566 => 21317, 22567 => 19989, 22568 => 20120, + 22569 => 19998, 22570 => 39730, 22571 => 23404, 22572 => 22121, 22573 => 20008, + 22574 => 31162, 22575 => 20031, 22576 => 21269, 22577 => 20039, 22578 => 22829, + 22579 => 29243, 22580 => 21358, 22581 => 27664, 22582 => 22239, 22583 => 32996, + 22584 => 39319, 22585 => 27603, 22586 => 30590, 22587 => 40727, 22588 => 20022, + 22589 => 20127, 22590 => 40720, 22591 => 20060, 22592 => 20073, 22593 => 20115, + 22594 => 33416, 22595 => 23387, 22596 => 21868, 22597 => 22031, 22598 => 20164, + 22599 => 21389, 22600 => 21405, 22601 => 21411, 22602 => 21413, 22603 => 21422, + 22604 => 38757, 22605 => 36189, 22606 => 21274, 22607 => 21493, 22608 => 21286, + 22609 => 21294, 22610 => 21310, 22611 => 36188, 22612 => 21350, 22613 => 21347, + 22614 => 20994, 22615 => 21000, 22616 => 21006, 22617 => 21037, 22618 => 21043, + 22619 => 21055, 22620 => 21056, 22621 => 21068, 22622 => 21086, 22623 => 21089, + 22624 => 21084, 22625 => 33967, 22626 => 21117, 22627 => 21122, 22628 => 21121, + 22629 => 21136, 22630 => 21139, 22631 => 20866, 22632 => 32596, 22633 => 20155, + 22634 => 20163, 22635 => 20169, 22636 => 20162, 22637 => 20200, 22638 => 20193, + 22639 => 20203, 22640 => 20190, 22641 => 20251, 22642 => 20211, 22643 => 20258, + 22644 => 20324, 22645 => 20213, 22646 => 20261, 22647 => 20263, 22648 => 20233, + 22649 => 20267, 22650 => 20318, 22651 => 20327, 22652 => 25912, 22653 => 20314, + 22654 => 20317, 22817 => 20319, 22818 => 20311, 22819 => 20274, 22820 => 20285, + 22821 => 20342, 22822 => 20340, 22823 => 20369, 22824 => 20361, 22825 => 20355, + 22826 => 20367, 22827 => 20350, 22828 => 20347, 22829 => 20394, 22830 => 20348, + 22831 => 20396, 22832 => 20372, 22833 => 20454, 22834 => 20456, 22835 => 20458, + 22836 => 20421, 22837 => 20442, 22838 => 20451, 22839 => 20444, 22840 => 20433, + 22841 => 20447, 22842 => 20472, 22843 => 20521, 22844 => 20556, 22845 => 20467, + 22846 => 20524, 22847 => 20495, 22848 => 20526, 22849 => 20525, 22850 => 20478, + 22851 => 20508, 22852 => 20492, 22853 => 20517, 22854 => 20520, 22855 => 20606, + 22856 => 20547, 22857 => 20565, 22858 => 20552, 22859 => 20558, 22860 => 20588, + 22861 => 20603, 22862 => 20645, 22863 => 20647, 22864 => 20649, 22865 => 20666, + 22866 => 20694, 22867 => 20742, 22868 => 20717, 22869 => 20716, 22870 => 20710, + 22871 => 20718, 22872 => 20743, 22873 => 20747, 22874 => 20189, 22875 => 27709, + 22876 => 20312, 22877 => 20325, 22878 => 20430, 22879 => 40864, 22880 => 27718, + 22881 => 31860, 22882 => 20846, 22883 => 24061, 22884 => 40649, 22885 => 39320, + 22886 => 20865, 22887 => 22804, 22888 => 21241, 22889 => 21261, 22890 => 35335, + 22891 => 21264, 22892 => 20971, 22893 => 22809, 22894 => 20821, 22895 => 20128, + 22896 => 20822, 22897 => 20147, 22898 => 34926, 22899 => 34980, 22900 => 20149, + 22901 => 33044, 22902 => 35026, 22903 => 31104, 22904 => 23348, 22905 => 34819, + 22906 => 32696, 22907 => 20907, 22908 => 20913, 22909 => 20925, 22910 => 20924, + 23073 => 20935, 23074 => 20886, 23075 => 20898, 23076 => 20901, 23077 => 35744, + 23078 => 35750, 23079 => 35751, 23080 => 35754, 23081 => 35764, 23082 => 35765, + 23083 => 35767, 23084 => 35778, 23085 => 35779, 23086 => 35787, 23087 => 35791, + 23088 => 35790, 23089 => 35794, 23090 => 35795, 23091 => 35796, 23092 => 35798, + 23093 => 35800, 23094 => 35801, 23095 => 35804, 23096 => 35807, 23097 => 35808, + 23098 => 35812, 23099 => 35816, 23100 => 35817, 23101 => 35822, 23102 => 35824, + 23103 => 35827, 23104 => 35830, 23105 => 35833, 23106 => 35836, 23107 => 35839, + 23108 => 35840, 23109 => 35842, 23110 => 35844, 23111 => 35847, 23112 => 35852, + 23113 => 35855, 23114 => 35857, 23115 => 35858, 23116 => 35860, 23117 => 35861, + 23118 => 35862, 23119 => 35865, 23120 => 35867, 23121 => 35864, 23122 => 35869, + 23123 => 35871, 23124 => 35872, 23125 => 35873, 23126 => 35877, 23127 => 35879, + 23128 => 35882, 23129 => 35883, 23130 => 35886, 23131 => 35887, 23132 => 35890, + 23133 => 35891, 23134 => 35893, 23135 => 35894, 23136 => 21353, 23137 => 21370, + 23138 => 38429, 23139 => 38434, 23140 => 38433, 23141 => 38449, 23142 => 38442, + 23143 => 38461, 23144 => 38460, 23145 => 38466, 23146 => 38473, 23147 => 38484, + 23148 => 38495, 23149 => 38503, 23150 => 38508, 23151 => 38514, 23152 => 38516, + 23153 => 38536, 23154 => 38541, 23155 => 38551, 23156 => 38576, 23157 => 37015, + 23158 => 37019, 23159 => 37021, 23160 => 37017, 23161 => 37036, 23162 => 37025, + 23163 => 37044, 23164 => 37043, 23165 => 37046, 23166 => 37050, 23329 => 37048, + 23330 => 37040, 23331 => 37071, 23332 => 37061, 23333 => 37054, 23334 => 37072, + 23335 => 37060, 23336 => 37063, 23337 => 37075, 23338 => 37094, 23339 => 37090, + 23340 => 37084, 23341 => 37079, 23342 => 37083, 23343 => 37099, 23344 => 37103, + 23345 => 37118, 23346 => 37124, 23347 => 37154, 23348 => 37150, 23349 => 37155, + 23350 => 37169, 23351 => 37167, 23352 => 37177, 23353 => 37187, 23354 => 37190, + 23355 => 21005, 23356 => 22850, 23357 => 21154, 23358 => 21164, 23359 => 21165, + 23360 => 21182, 23361 => 21759, 23362 => 21200, 23363 => 21206, 23364 => 21232, + 23365 => 21471, 23366 => 29166, 23367 => 30669, 23368 => 24308, 23369 => 20981, + 23370 => 20988, 23371 => 39727, 23372 => 21430, 23373 => 24321, 23374 => 30042, + 23375 => 24047, 23376 => 22348, 23377 => 22441, 23378 => 22433, 23379 => 22654, + 23380 => 22716, 23381 => 22725, 23382 => 22737, 23383 => 22313, 23384 => 22316, + 23385 => 22314, 23386 => 22323, 23387 => 22329, 23388 => 22318, 23389 => 22319, + 23390 => 22364, 23391 => 22331, 23392 => 22338, 23393 => 22377, 23394 => 22405, + 23395 => 22379, 23396 => 22406, 23397 => 22396, 23398 => 22395, 23399 => 22376, + 23400 => 22381, 23401 => 22390, 23402 => 22387, 23403 => 22445, 23404 => 22436, + 23405 => 22412, 23406 => 22450, 23407 => 22479, 23408 => 22439, 23409 => 22452, + 23410 => 22419, 23411 => 22432, 23412 => 22485, 23413 => 22488, 23414 => 22490, + 23415 => 22489, 23416 => 22482, 23417 => 22456, 23418 => 22516, 23419 => 22511, + 23420 => 22520, 23421 => 22500, 23422 => 22493, 23585 => 22539, 23586 => 22541, + 23587 => 22525, 23588 => 22509, 23589 => 22528, 23590 => 22558, 23591 => 22553, + 23592 => 22596, 23593 => 22560, 23594 => 22629, 23595 => 22636, 23596 => 22657, + 23597 => 22665, 23598 => 22682, 23599 => 22656, 23600 => 39336, 23601 => 40729, + 23602 => 25087, 23603 => 33401, 23604 => 33405, 23605 => 33407, 23606 => 33423, + 23607 => 33418, 23608 => 33448, 23609 => 33412, 23610 => 33422, 23611 => 33425, + 23612 => 33431, 23613 => 33433, 23614 => 33451, 23615 => 33464, 23616 => 33470, + 23617 => 33456, 23618 => 33480, 23619 => 33482, 23620 => 33507, 23621 => 33432, + 23622 => 33463, 23623 => 33454, 23624 => 33483, 23625 => 33484, 23626 => 33473, + 23627 => 33449, 23628 => 33460, 23629 => 33441, 23630 => 33450, 23631 => 33439, + 23632 => 33476, 23633 => 33486, 23634 => 33444, 23635 => 33505, 23636 => 33545, + 23637 => 33527, 23638 => 33508, 23639 => 33551, 23640 => 33543, 23641 => 33500, + 23642 => 33524, 23643 => 33490, 23644 => 33496, 23645 => 33548, 23646 => 33531, + 23647 => 33491, 23648 => 33553, 23649 => 33562, 23650 => 33542, 23651 => 33556, + 23652 => 33557, 23653 => 33504, 23654 => 33493, 23655 => 33564, 23656 => 33617, + 23657 => 33627, 23658 => 33628, 23659 => 33544, 23660 => 33682, 23661 => 33596, + 23662 => 33588, 23663 => 33585, 23664 => 33691, 23665 => 33630, 23666 => 33583, + 23667 => 33615, 23668 => 33607, 23669 => 33603, 23670 => 33631, 23671 => 33600, + 23672 => 33559, 23673 => 33632, 23674 => 33581, 23675 => 33594, 23676 => 33587, + 23677 => 33638, 23678 => 33637, 23841 => 33640, 23842 => 33563, 23843 => 33641, + 23844 => 33644, 23845 => 33642, 23846 => 33645, 23847 => 33646, 23848 => 33712, + 23849 => 33656, 23850 => 33715, 23851 => 33716, 23852 => 33696, 23853 => 33706, + 23854 => 33683, 23855 => 33692, 23856 => 33669, 23857 => 33660, 23858 => 33718, + 23859 => 33705, 23860 => 33661, 23861 => 33720, 23862 => 33659, 23863 => 33688, + 23864 => 33694, 23865 => 33704, 23866 => 33722, 23867 => 33724, 23868 => 33729, + 23869 => 33793, 23870 => 33765, 23871 => 33752, 23872 => 22535, 23873 => 33816, + 23874 => 33803, 23875 => 33757, 23876 => 33789, 23877 => 33750, 23878 => 33820, + 23879 => 33848, 23880 => 33809, 23881 => 33798, 23882 => 33748, 23883 => 33759, + 23884 => 33807, 23885 => 33795, 23886 => 33784, 23887 => 33785, 23888 => 33770, + 23889 => 33733, 23890 => 33728, 23891 => 33830, 23892 => 33776, 23893 => 33761, + 23894 => 33884, 23895 => 33873, 23896 => 33882, 23897 => 33881, 23898 => 33907, + 23899 => 33927, 23900 => 33928, 23901 => 33914, 23902 => 33929, 23903 => 33912, + 23904 => 33852, 23905 => 33862, 23906 => 33897, 23907 => 33910, 23908 => 33932, + 23909 => 33934, 23910 => 33841, 23911 => 33901, 23912 => 33985, 23913 => 33997, + 23914 => 34000, 23915 => 34022, 23916 => 33981, 23917 => 34003, 23918 => 33994, + 23919 => 33983, 23920 => 33978, 23921 => 34016, 23922 => 33953, 23923 => 33977, + 23924 => 33972, 23925 => 33943, 23926 => 34021, 23927 => 34019, 23928 => 34060, + 23929 => 29965, 23930 => 34104, 23931 => 34032, 23932 => 34105, 23933 => 34079, + 23934 => 34106, 24097 => 34134, 24098 => 34107, 24099 => 34047, 24100 => 34044, + 24101 => 34137, 24102 => 34120, 24103 => 34152, 24104 => 34148, 24105 => 34142, + 24106 => 34170, 24107 => 30626, 24108 => 34115, 24109 => 34162, 24110 => 34171, + 24111 => 34212, 24112 => 34216, 24113 => 34183, 24114 => 34191, 24115 => 34169, + 24116 => 34222, 24117 => 34204, 24118 => 34181, 24119 => 34233, 24120 => 34231, + 24121 => 34224, 24122 => 34259, 24123 => 34241, 24124 => 34268, 24125 => 34303, + 24126 => 34343, 24127 => 34309, 24128 => 34345, 24129 => 34326, 24130 => 34364, + 24131 => 24318, 24132 => 24328, 24133 => 22844, 24134 => 22849, 24135 => 32823, + 24136 => 22869, 24137 => 22874, 24138 => 22872, 24139 => 21263, 24140 => 23586, + 24141 => 23589, 24142 => 23596, 24143 => 23604, 24144 => 25164, 24145 => 25194, + 24146 => 25247, 24147 => 25275, 24148 => 25290, 24149 => 25306, 24150 => 25303, + 24151 => 25326, 24152 => 25378, 24153 => 25334, 24154 => 25401, 24155 => 25419, + 24156 => 25411, 24157 => 25517, 24158 => 25590, 24159 => 25457, 24160 => 25466, + 24161 => 25486, 24162 => 25524, 24163 => 25453, 24164 => 25516, 24165 => 25482, + 24166 => 25449, 24167 => 25518, 24168 => 25532, 24169 => 25586, 24170 => 25592, + 24171 => 25568, 24172 => 25599, 24173 => 25540, 24174 => 25566, 24175 => 25550, + 24176 => 25682, 24177 => 25542, 24178 => 25534, 24179 => 25669, 24180 => 25665, + 24181 => 25611, 24182 => 25627, 24183 => 25632, 24184 => 25612, 24185 => 25638, + 24186 => 25633, 24187 => 25694, 24188 => 25732, 24189 => 25709, 24190 => 25750, + 24353 => 25722, 24354 => 25783, 24355 => 25784, 24356 => 25753, 24357 => 25786, + 24358 => 25792, 24359 => 25808, 24360 => 25815, 24361 => 25828, 24362 => 25826, + 24363 => 25865, 24364 => 25893, 24365 => 25902, 24366 => 24331, 24367 => 24530, + 24368 => 29977, 24369 => 24337, 24370 => 21343, 24371 => 21489, 24372 => 21501, + 24373 => 21481, 24374 => 21480, 24375 => 21499, 24376 => 21522, 24377 => 21526, + 24378 => 21510, 24379 => 21579, 24380 => 21586, 24381 => 21587, 24382 => 21588, + 24383 => 21590, 24384 => 21571, 24385 => 21537, 24386 => 21591, 24387 => 21593, + 24388 => 21539, 24389 => 21554, 24390 => 21634, 24391 => 21652, 24392 => 21623, + 24393 => 21617, 24394 => 21604, 24395 => 21658, 24396 => 21659, 24397 => 21636, + 24398 => 21622, 24399 => 21606, 24400 => 21661, 24401 => 21712, 24402 => 21677, + 24403 => 21698, 24404 => 21684, 24405 => 21714, 24406 => 21671, 24407 => 21670, + 24408 => 21715, 24409 => 21716, 24410 => 21618, 24411 => 21667, 24412 => 21717, + 24413 => 21691, 24414 => 21695, 24415 => 21708, 24416 => 21721, 24417 => 21722, + 24418 => 21724, 24419 => 21673, 24420 => 21674, 24421 => 21668, 24422 => 21725, + 24423 => 21711, 24424 => 21726, 24425 => 21787, 24426 => 21735, 24427 => 21792, + 24428 => 21757, 24429 => 21780, 24430 => 21747, 24431 => 21794, 24432 => 21795, + 24433 => 21775, 24434 => 21777, 24435 => 21799, 24436 => 21802, 24437 => 21863, + 24438 => 21903, 24439 => 21941, 24440 => 21833, 24441 => 21869, 24442 => 21825, + 24443 => 21845, 24444 => 21823, 24445 => 21840, 24446 => 21820, 24609 => 21815, + 24610 => 21846, 24611 => 21877, 24612 => 21878, 24613 => 21879, 24614 => 21811, + 24615 => 21808, 24616 => 21852, 24617 => 21899, 24618 => 21970, 24619 => 21891, + 24620 => 21937, 24621 => 21945, 24622 => 21896, 24623 => 21889, 24624 => 21919, + 24625 => 21886, 24626 => 21974, 24627 => 21905, 24628 => 21883, 24629 => 21983, + 24630 => 21949, 24631 => 21950, 24632 => 21908, 24633 => 21913, 24634 => 21994, + 24635 => 22007, 24636 => 21961, 24637 => 22047, 24638 => 21969, 24639 => 21995, + 24640 => 21996, 24641 => 21972, 24642 => 21990, 24643 => 21981, 24644 => 21956, + 24645 => 21999, 24646 => 21989, 24647 => 22002, 24648 => 22003, 24649 => 21964, + 24650 => 21965, 24651 => 21992, 24652 => 22005, 24653 => 21988, 24654 => 36756, + 24655 => 22046, 24656 => 22024, 24657 => 22028, 24658 => 22017, 24659 => 22052, + 24660 => 22051, 24661 => 22014, 24662 => 22016, 24663 => 22055, 24664 => 22061, + 24665 => 22104, 24666 => 22073, 24667 => 22103, 24668 => 22060, 24669 => 22093, + 24670 => 22114, 24671 => 22105, 24672 => 22108, 24673 => 22092, 24674 => 22100, + 24675 => 22150, 24676 => 22116, 24677 => 22129, 24678 => 22123, 24679 => 22139, + 24680 => 22140, 24681 => 22149, 24682 => 22163, 24683 => 22191, 24684 => 22228, + 24685 => 22231, 24686 => 22237, 24687 => 22241, 24688 => 22261, 24689 => 22251, + 24690 => 22265, 24691 => 22271, 24692 => 22276, 24693 => 22282, 24694 => 22281, + 24695 => 22300, 24696 => 24079, 24697 => 24089, 24698 => 24084, 24699 => 24081, + 24700 => 24113, 24701 => 24123, 24702 => 24124, 24865 => 24119, 24866 => 24132, + 24867 => 24148, 24868 => 24155, 24869 => 24158, 24870 => 24161, 24871 => 23692, + 24872 => 23674, 24873 => 23693, 24874 => 23696, 24875 => 23702, 24876 => 23688, + 24877 => 23704, 24878 => 23705, 24879 => 23697, 24880 => 23706, 24881 => 23708, + 24882 => 23733, 24883 => 23714, 24884 => 23741, 24885 => 23724, 24886 => 23723, + 24887 => 23729, 24888 => 23715, 24889 => 23745, 24890 => 23735, 24891 => 23748, + 24892 => 23762, 24893 => 23780, 24894 => 23755, 24895 => 23781, 24896 => 23810, + 24897 => 23811, 24898 => 23847, 24899 => 23846, 24900 => 23854, 24901 => 23844, + 24902 => 23838, 24903 => 23814, 24904 => 23835, 24905 => 23896, 24906 => 23870, + 24907 => 23860, 24908 => 23869, 24909 => 23916, 24910 => 23899, 24911 => 23919, + 24912 => 23901, 24913 => 23915, 24914 => 23883, 24915 => 23882, 24916 => 23913, + 24917 => 23924, 24918 => 23938, 24919 => 23961, 24920 => 23965, 24921 => 35955, + 24922 => 23991, 24923 => 24005, 24924 => 24435, 24925 => 24439, 24926 => 24450, + 24927 => 24455, 24928 => 24457, 24929 => 24460, 24930 => 24469, 24931 => 24473, + 24932 => 24476, 24933 => 24488, 24934 => 24493, 24935 => 24501, 24936 => 24508, + 24937 => 34914, 24938 => 24417, 24939 => 29357, 24940 => 29360, 24941 => 29364, + 24942 => 29367, 24943 => 29368, 24944 => 29379, 24945 => 29377, 24946 => 29390, + 24947 => 29389, 24948 => 29394, 24949 => 29416, 24950 => 29423, 24951 => 29417, + 24952 => 29426, 24953 => 29428, 24954 => 29431, 24955 => 29441, 24956 => 29427, + 24957 => 29443, 24958 => 29434, 25121 => 29435, 25122 => 29463, 25123 => 29459, + 25124 => 29473, 25125 => 29450, 25126 => 29470, 25127 => 29469, 25128 => 29461, + 25129 => 29474, 25130 => 29497, 25131 => 29477, 25132 => 29484, 25133 => 29496, + 25134 => 29489, 25135 => 29520, 25136 => 29517, 25137 => 29527, 25138 => 29536, + 25139 => 29548, 25140 => 29551, 25141 => 29566, 25142 => 33307, 25143 => 22821, + 25144 => 39143, 25145 => 22820, 25146 => 22786, 25147 => 39267, 25148 => 39271, + 25149 => 39272, 25150 => 39273, 25151 => 39274, 25152 => 39275, 25153 => 39276, + 25154 => 39284, 25155 => 39287, 25156 => 39293, 25157 => 39296, 25158 => 39300, + 25159 => 39303, 25160 => 39306, 25161 => 39309, 25162 => 39312, 25163 => 39313, + 25164 => 39315, 25165 => 39316, 25166 => 39317, 25167 => 24192, 25168 => 24209, + 25169 => 24203, 25170 => 24214, 25171 => 24229, 25172 => 24224, 25173 => 24249, + 25174 => 24245, 25175 => 24254, 25176 => 24243, 25177 => 36179, 25178 => 24274, + 25179 => 24273, 25180 => 24283, 25181 => 24296, 25182 => 24298, 25183 => 33210, + 25184 => 24516, 25185 => 24521, 25186 => 24534, 25187 => 24527, 25188 => 24579, + 25189 => 24558, 25190 => 24580, 25191 => 24545, 25192 => 24548, 25193 => 24574, + 25194 => 24581, 25195 => 24582, 25196 => 24554, 25197 => 24557, 25198 => 24568, + 25199 => 24601, 25200 => 24629, 25201 => 24614, 25202 => 24603, 25203 => 24591, + 25204 => 24589, 25205 => 24617, 25206 => 24619, 25207 => 24586, 25208 => 24639, + 25209 => 24609, 25210 => 24696, 25211 => 24697, 25212 => 24699, 25213 => 24698, + 25214 => 24642, 25377 => 24682, 25378 => 24701, 25379 => 24726, 25380 => 24730, + 25381 => 24749, 25382 => 24733, 25383 => 24707, 25384 => 24722, 25385 => 24716, + 25386 => 24731, 25387 => 24812, 25388 => 24763, 25389 => 24753, 25390 => 24797, + 25391 => 24792, 25392 => 24774, 25393 => 24794, 25394 => 24756, 25395 => 24864, + 25396 => 24870, 25397 => 24853, 25398 => 24867, 25399 => 24820, 25400 => 24832, + 25401 => 24846, 25402 => 24875, 25403 => 24906, 25404 => 24949, 25405 => 25004, + 25406 => 24980, 25407 => 24999, 25408 => 25015, 25409 => 25044, 25410 => 25077, + 25411 => 24541, 25412 => 38579, 25413 => 38377, 25414 => 38379, 25415 => 38385, + 25416 => 38387, 25417 => 38389, 25418 => 38390, 25419 => 38396, 25420 => 38398, + 25421 => 38403, 25422 => 38404, 25423 => 38406, 25424 => 38408, 25425 => 38410, + 25426 => 38411, 25427 => 38412, 25428 => 38413, 25429 => 38415, 25430 => 38418, + 25431 => 38421, 25432 => 38422, 25433 => 38423, 25434 => 38425, 25435 => 38426, + 25436 => 20012, 25437 => 29247, 25438 => 25109, 25439 => 27701, 25440 => 27732, + 25441 => 27740, 25442 => 27722, 25443 => 27811, 25444 => 27781, 25445 => 27792, + 25446 => 27796, 25447 => 27788, 25448 => 27752, 25449 => 27753, 25450 => 27764, + 25451 => 27766, 25452 => 27782, 25453 => 27817, 25454 => 27856, 25455 => 27860, + 25456 => 27821, 25457 => 27895, 25458 => 27896, 25459 => 27889, 25460 => 27863, + 25461 => 27826, 25462 => 27872, 25463 => 27862, 25464 => 27898, 25465 => 27883, + 25466 => 27886, 25467 => 27825, 25468 => 27859, 25469 => 27887, 25470 => 27902, + 25633 => 27961, 25634 => 27943, 25635 => 27916, 25636 => 27971, 25637 => 27976, + 25638 => 27911, 25639 => 27908, 25640 => 27929, 25641 => 27918, 25642 => 27947, + 25643 => 27981, 25644 => 27950, 25645 => 27957, 25646 => 27930, 25647 => 27983, + 25648 => 27986, 25649 => 27988, 25650 => 27955, 25651 => 28049, 25652 => 28015, + 25653 => 28062, 25654 => 28064, 25655 => 27998, 25656 => 28051, 25657 => 28052, + 25658 => 27996, 25659 => 28000, 25660 => 28028, 25661 => 28003, 25662 => 28186, + 25663 => 28103, 25664 => 28101, 25665 => 28126, 25666 => 28174, 25667 => 28095, + 25668 => 28128, 25669 => 28177, 25670 => 28134, 25671 => 28125, 25672 => 28121, + 25673 => 28182, 25674 => 28075, 25675 => 28172, 25676 => 28078, 25677 => 28203, + 25678 => 28270, 25679 => 28238, 25680 => 28267, 25681 => 28338, 25682 => 28255, + 25683 => 28294, 25684 => 28243, 25685 => 28244, 25686 => 28210, 25687 => 28197, + 25688 => 28228, 25689 => 28383, 25690 => 28337, 25691 => 28312, 25692 => 28384, + 25693 => 28461, 25694 => 28386, 25695 => 28325, 25696 => 28327, 25697 => 28349, + 25698 => 28347, 25699 => 28343, 25700 => 28375, 25701 => 28340, 25702 => 28367, + 25703 => 28303, 25704 => 28354, 25705 => 28319, 25706 => 28514, 25707 => 28486, + 25708 => 28487, 25709 => 28452, 25710 => 28437, 25711 => 28409, 25712 => 28463, + 25713 => 28470, 25714 => 28491, 25715 => 28532, 25716 => 28458, 25717 => 28425, + 25718 => 28457, 25719 => 28553, 25720 => 28557, 25721 => 28556, 25722 => 28536, + 25723 => 28530, 25724 => 28540, 25725 => 28538, 25726 => 28625, 25889 => 28617, + 25890 => 28583, 25891 => 28601, 25892 => 28598, 25893 => 28610, 25894 => 28641, + 25895 => 28654, 25896 => 28638, 25897 => 28640, 25898 => 28655, 25899 => 28698, + 25900 => 28707, 25901 => 28699, 25902 => 28729, 25903 => 28725, 25904 => 28751, + 25905 => 28766, 25906 => 23424, 25907 => 23428, 25908 => 23445, 25909 => 23443, + 25910 => 23461, 25911 => 23480, 25912 => 29999, 25913 => 39582, 25914 => 25652, + 25915 => 23524, 25916 => 23534, 25917 => 35120, 25918 => 23536, 25919 => 36423, + 25920 => 35591, 25921 => 36790, 25922 => 36819, 25923 => 36821, 25924 => 36837, + 25925 => 36846, 25926 => 36836, 25927 => 36841, 25928 => 36838, 25929 => 36851, + 25930 => 36840, 25931 => 36869, 25932 => 36868, 25933 => 36875, 25934 => 36902, + 25935 => 36881, 25936 => 36877, 25937 => 36886, 25938 => 36897, 25939 => 36917, + 25940 => 36918, 25941 => 36909, 25942 => 36911, 25943 => 36932, 25944 => 36945, + 25945 => 36946, 25946 => 36944, 25947 => 36968, 25948 => 36952, 25949 => 36962, + 25950 => 36955, 25951 => 26297, 25952 => 36980, 25953 => 36989, 25954 => 36994, + 25955 => 37000, 25956 => 36995, 25957 => 37003, 25958 => 24400, 25959 => 24407, + 25960 => 24406, 25961 => 24408, 25962 => 23611, 25963 => 21675, 25964 => 23632, + 25965 => 23641, 25966 => 23409, 25967 => 23651, 25968 => 23654, 25969 => 32700, + 25970 => 24362, 25971 => 24361, 25972 => 24365, 25973 => 33396, 25974 => 24380, + 25975 => 39739, 25976 => 23662, 25977 => 22913, 25978 => 22915, 25979 => 22925, + 25980 => 22953, 25981 => 22954, 25982 => 22947, 26145 => 22935, 26146 => 22986, + 26147 => 22955, 26148 => 22942, 26149 => 22948, 26150 => 22994, 26151 => 22962, + 26152 => 22959, 26153 => 22999, 26154 => 22974, 26155 => 23045, 26156 => 23046, + 26157 => 23005, 26158 => 23048, 26159 => 23011, 26160 => 23000, 26161 => 23033, + 26162 => 23052, 26163 => 23049, 26164 => 23090, 26165 => 23092, 26166 => 23057, + 26167 => 23075, 26168 => 23059, 26169 => 23104, 26170 => 23143, 26171 => 23114, + 26172 => 23125, 26173 => 23100, 26174 => 23138, 26175 => 23157, 26176 => 33004, + 26177 => 23210, 26178 => 23195, 26179 => 23159, 26180 => 23162, 26181 => 23230, + 26182 => 23275, 26183 => 23218, 26184 => 23250, 26185 => 23252, 26186 => 23224, + 26187 => 23264, 26188 => 23267, 26189 => 23281, 26190 => 23254, 26191 => 23270, + 26192 => 23256, 26193 => 23260, 26194 => 23305, 26195 => 23319, 26196 => 23318, + 26197 => 23346, 26198 => 23351, 26199 => 23360, 26200 => 23573, 26201 => 23580, + 26202 => 23386, 26203 => 23397, 26204 => 23411, 26205 => 23377, 26206 => 23379, + 26207 => 23394, 26208 => 39541, 26209 => 39543, 26210 => 39544, 26211 => 39546, + 26212 => 39551, 26213 => 39549, 26214 => 39552, 26215 => 39553, 26216 => 39557, + 26217 => 39560, 26218 => 39562, 26219 => 39568, 26220 => 39570, 26221 => 39571, + 26222 => 39574, 26223 => 39576, 26224 => 39579, 26225 => 39580, 26226 => 39581, + 26227 => 39583, 26228 => 39584, 26229 => 39586, 26230 => 39587, 26231 => 39589, + 26232 => 39591, 26233 => 32415, 26234 => 32417, 26235 => 32419, 26236 => 32421, + 26237 => 32424, 26238 => 32425, 26401 => 32429, 26402 => 32432, 26403 => 32446, + 26404 => 32448, 26405 => 32449, 26406 => 32450, 26407 => 32457, 26408 => 32459, + 26409 => 32460, 26410 => 32464, 26411 => 32468, 26412 => 32471, 26413 => 32475, + 26414 => 32480, 26415 => 32481, 26416 => 32488, 26417 => 32491, 26418 => 32494, + 26419 => 32495, 26420 => 32497, 26421 => 32498, 26422 => 32525, 26423 => 32502, + 26424 => 32506, 26425 => 32507, 26426 => 32510, 26427 => 32513, 26428 => 32514, + 26429 => 32515, 26430 => 32519, 26431 => 32520, 26432 => 32523, 26433 => 32524, + 26434 => 32527, 26435 => 32529, 26436 => 32530, 26437 => 32535, 26438 => 32537, + 26439 => 32540, 26440 => 32539, 26441 => 32543, 26442 => 32545, 26443 => 32546, + 26444 => 32547, 26445 => 32548, 26446 => 32549, 26447 => 32550, 26448 => 32551, + 26449 => 32554, 26450 => 32555, 26451 => 32556, 26452 => 32557, 26453 => 32559, + 26454 => 32560, 26455 => 32561, 26456 => 32562, 26457 => 32563, 26458 => 32565, + 26459 => 24186, 26460 => 30079, 26461 => 24027, 26462 => 30014, 26463 => 37013, + 26464 => 29582, 26465 => 29585, 26466 => 29614, 26467 => 29602, 26468 => 29599, + 26469 => 29647, 26470 => 29634, 26471 => 29649, 26472 => 29623, 26473 => 29619, + 26474 => 29632, 26475 => 29641, 26476 => 29640, 26477 => 29669, 26478 => 29657, + 26479 => 39036, 26480 => 29706, 26481 => 29673, 26482 => 29671, 26483 => 29662, + 26484 => 29626, 26485 => 29682, 26486 => 29711, 26487 => 29738, 26488 => 29787, + 26489 => 29734, 26490 => 29733, 26491 => 29736, 26492 => 29744, 26493 => 29742, + 26494 => 29740, 26657 => 29723, 26658 => 29722, 26659 => 29761, 26660 => 29788, + 26661 => 29783, 26662 => 29781, 26663 => 29785, 26664 => 29815, 26665 => 29805, + 26666 => 29822, 26667 => 29852, 26668 => 29838, 26669 => 29824, 26670 => 29825, + 26671 => 29831, 26672 => 29835, 26673 => 29854, 26674 => 29864, 26675 => 29865, + 26676 => 29840, 26677 => 29863, 26678 => 29906, 26679 => 29882, 26680 => 38890, + 26681 => 38891, 26682 => 38892, 26683 => 26444, 26684 => 26451, 26685 => 26462, + 26686 => 26440, 26687 => 26473, 26688 => 26533, 26689 => 26503, 26690 => 26474, + 26691 => 26483, 26692 => 26520, 26693 => 26535, 26694 => 26485, 26695 => 26536, + 26696 => 26526, 26697 => 26541, 26698 => 26507, 26699 => 26487, 26700 => 26492, + 26701 => 26608, 26702 => 26633, 26703 => 26584, 26704 => 26634, 26705 => 26601, + 26706 => 26544, 26707 => 26636, 26708 => 26585, 26709 => 26549, 26710 => 26586, + 26711 => 26547, 26712 => 26589, 26713 => 26624, 26714 => 26563, 26715 => 26552, + 26716 => 26594, 26717 => 26638, 26718 => 26561, 26719 => 26621, 26720 => 26674, + 26721 => 26675, 26722 => 26720, 26723 => 26721, 26724 => 26702, 26725 => 26722, + 26726 => 26692, 26727 => 26724, 26728 => 26755, 26729 => 26653, 26730 => 26709, + 26731 => 26726, 26732 => 26689, 26733 => 26727, 26734 => 26688, 26735 => 26686, + 26736 => 26698, 26737 => 26697, 26738 => 26665, 26739 => 26805, 26740 => 26767, + 26741 => 26740, 26742 => 26743, 26743 => 26771, 26744 => 26731, 26745 => 26818, + 26746 => 26990, 26747 => 26876, 26748 => 26911, 26749 => 26912, 26750 => 26873, + 26913 => 26916, 26914 => 26864, 26915 => 26891, 26916 => 26881, 26917 => 26967, + 26918 => 26851, 26919 => 26896, 26920 => 26993, 26921 => 26937, 26922 => 26976, + 26923 => 26946, 26924 => 26973, 26925 => 27012, 26926 => 26987, 26927 => 27008, + 26928 => 27032, 26929 => 27000, 26930 => 26932, 26931 => 27084, 26932 => 27015, + 26933 => 27016, 26934 => 27086, 26935 => 27017, 26936 => 26982, 26937 => 26979, + 26938 => 27001, 26939 => 27035, 26940 => 27047, 26941 => 27067, 26942 => 27051, + 26943 => 27053, 26944 => 27092, 26945 => 27057, 26946 => 27073, 26947 => 27082, + 26948 => 27103, 26949 => 27029, 26950 => 27104, 26951 => 27021, 26952 => 27135, + 26953 => 27183, 26954 => 27117, 26955 => 27159, 26956 => 27160, 26957 => 27237, + 26958 => 27122, 26959 => 27204, 26960 => 27198, 26961 => 27296, 26962 => 27216, + 26963 => 27227, 26964 => 27189, 26965 => 27278, 26966 => 27257, 26967 => 27197, + 26968 => 27176, 26969 => 27224, 26970 => 27260, 26971 => 27281, 26972 => 27280, + 26973 => 27305, 26974 => 27287, 26975 => 27307, 26976 => 29495, 26977 => 29522, + 26978 => 27521, 26979 => 27522, 26980 => 27527, 26981 => 27524, 26982 => 27538, + 26983 => 27539, 26984 => 27533, 26985 => 27546, 26986 => 27547, 26987 => 27553, + 26988 => 27562, 26989 => 36715, 26990 => 36717, 26991 => 36721, 26992 => 36722, + 26993 => 36723, 26994 => 36725, 26995 => 36726, 26996 => 36728, 26997 => 36727, + 26998 => 36729, 26999 => 36730, 27000 => 36732, 27001 => 36734, 27002 => 36737, + 27003 => 36738, 27004 => 36740, 27005 => 36743, 27006 => 36747, 27169 => 36749, + 27170 => 36750, 27171 => 36751, 27172 => 36760, 27173 => 36762, 27174 => 36558, + 27175 => 25099, 27176 => 25111, 27177 => 25115, 27178 => 25119, 27179 => 25122, + 27180 => 25121, 27181 => 25125, 27182 => 25124, 27183 => 25132, 27184 => 33255, + 27185 => 29935, 27186 => 29940, 27187 => 29951, 27188 => 29967, 27189 => 29969, + 27190 => 29971, 27191 => 25908, 27192 => 26094, 27193 => 26095, 27194 => 26096, + 27195 => 26122, 27196 => 26137, 27197 => 26482, 27198 => 26115, 27199 => 26133, + 27200 => 26112, 27201 => 28805, 27202 => 26359, 27203 => 26141, 27204 => 26164, + 27205 => 26161, 27206 => 26166, 27207 => 26165, 27208 => 32774, 27209 => 26207, + 27210 => 26196, 27211 => 26177, 27212 => 26191, 27213 => 26198, 27214 => 26209, + 27215 => 26199, 27216 => 26231, 27217 => 26244, 27218 => 26252, 27219 => 26279, + 27220 => 26269, 27221 => 26302, 27222 => 26331, 27223 => 26332, 27224 => 26342, + 27225 => 26345, 27226 => 36146, 27227 => 36147, 27228 => 36150, 27229 => 36155, + 27230 => 36157, 27231 => 36160, 27232 => 36165, 27233 => 36166, 27234 => 36168, + 27235 => 36169, 27236 => 36167, 27237 => 36173, 27238 => 36181, 27239 => 36185, + 27240 => 35271, 27241 => 35274, 27242 => 35275, 27243 => 35276, 27244 => 35278, + 27245 => 35279, 27246 => 35280, 27247 => 35281, 27248 => 29294, 27249 => 29343, + 27250 => 29277, 27251 => 29286, 27252 => 29295, 27253 => 29310, 27254 => 29311, + 27255 => 29316, 27256 => 29323, 27257 => 29325, 27258 => 29327, 27259 => 29330, + 27260 => 25352, 27261 => 25394, 27262 => 25520, 27425 => 25663, 27426 => 25816, + 27427 => 32772, 27428 => 27626, 27429 => 27635, 27430 => 27645, 27431 => 27637, + 27432 => 27641, 27433 => 27653, 27434 => 27655, 27435 => 27654, 27436 => 27661, + 27437 => 27669, 27438 => 27672, 27439 => 27673, 27440 => 27674, 27441 => 27681, + 27442 => 27689, 27443 => 27684, 27444 => 27690, 27445 => 27698, 27446 => 25909, + 27447 => 25941, 27448 => 25963, 27449 => 29261, 27450 => 29266, 27451 => 29270, + 27452 => 29232, 27453 => 34402, 27454 => 21014, 27455 => 32927, 27456 => 32924, + 27457 => 32915, 27458 => 32956, 27459 => 26378, 27460 => 32957, 27461 => 32945, + 27462 => 32939, 27463 => 32941, 27464 => 32948, 27465 => 32951, 27466 => 32999, + 27467 => 33000, 27468 => 33001, 27469 => 33002, 27470 => 32987, 27471 => 32962, + 27472 => 32964, 27473 => 32985, 27474 => 32973, 27475 => 32983, 27476 => 26384, + 27477 => 32989, 27478 => 33003, 27479 => 33009, 27480 => 33012, 27481 => 33005, + 27482 => 33037, 27483 => 33038, 27484 => 33010, 27485 => 33020, 27486 => 26389, + 27487 => 33042, 27488 => 35930, 27489 => 33078, 27490 => 33054, 27491 => 33068, + 27492 => 33048, 27493 => 33074, 27494 => 33096, 27495 => 33100, 27496 => 33107, + 27497 => 33140, 27498 => 33113, 27499 => 33114, 27500 => 33137, 27501 => 33120, + 27502 => 33129, 27503 => 33148, 27504 => 33149, 27505 => 33133, 27506 => 33127, + 27507 => 22605, 27508 => 23221, 27509 => 33160, 27510 => 33154, 27511 => 33169, + 27512 => 28373, 27513 => 33187, 27514 => 33194, 27515 => 33228, 27516 => 26406, + 27517 => 33226, 27518 => 33211, 27681 => 33217, 27682 => 33190, 27683 => 27428, + 27684 => 27447, 27685 => 27449, 27686 => 27459, 27687 => 27462, 27688 => 27481, + 27689 => 39121, 27690 => 39122, 27691 => 39123, 27692 => 39125, 27693 => 39129, + 27694 => 39130, 27695 => 27571, 27696 => 24384, 27697 => 27586, 27698 => 35315, + 27699 => 26000, 27700 => 40785, 27701 => 26003, 27702 => 26044, 27703 => 26054, + 27704 => 26052, 27705 => 26051, 27706 => 26060, 27707 => 26062, 27708 => 26066, + 27709 => 26070, 27710 => 28800, 27711 => 28828, 27712 => 28822, 27713 => 28829, + 27714 => 28859, 27715 => 28864, 27716 => 28855, 27717 => 28843, 27718 => 28849, + 27719 => 28904, 27720 => 28874, 27721 => 28944, 27722 => 28947, 27723 => 28950, + 27724 => 28975, 27725 => 28977, 27726 => 29043, 27727 => 29020, 27728 => 29032, + 27729 => 28997, 27730 => 29042, 27731 => 29002, 27732 => 29048, 27733 => 29050, + 27734 => 29080, 27735 => 29107, 27736 => 29109, 27737 => 29096, 27738 => 29088, + 27739 => 29152, 27740 => 29140, 27741 => 29159, 27742 => 29177, 27743 => 29213, + 27744 => 29224, 27745 => 28780, 27746 => 28952, 27747 => 29030, 27748 => 29113, + 27749 => 25150, 27750 => 25149, 27751 => 25155, 27752 => 25160, 27753 => 25161, + 27754 => 31035, 27755 => 31040, 27756 => 31046, 27757 => 31049, 27758 => 31067, + 27759 => 31068, 27760 => 31059, 27761 => 31066, 27762 => 31074, 27763 => 31063, + 27764 => 31072, 27765 => 31087, 27766 => 31079, 27767 => 31098, 27768 => 31109, + 27769 => 31114, 27770 => 31130, 27771 => 31143, 27772 => 31155, 27773 => 24529, + 27774 => 24528, 27937 => 24636, 27938 => 24669, 27939 => 24666, 27940 => 24679, + 27941 => 24641, 27942 => 24665, 27943 => 24675, 27944 => 24747, 27945 => 24838, + 27946 => 24845, 27947 => 24925, 27948 => 25001, 27949 => 24989, 27950 => 25035, + 27951 => 25041, 27952 => 25094, 27953 => 32896, 27954 => 32895, 27955 => 27795, + 27956 => 27894, 27957 => 28156, 27958 => 30710, 27959 => 30712, 27960 => 30720, + 27961 => 30729, 27962 => 30743, 27963 => 30744, 27964 => 30737, 27965 => 26027, + 27966 => 30765, 27967 => 30748, 27968 => 30749, 27969 => 30777, 27970 => 30778, + 27971 => 30779, 27972 => 30751, 27973 => 30780, 27974 => 30757, 27975 => 30764, + 27976 => 30755, 27977 => 30761, 27978 => 30798, 27979 => 30829, 27980 => 30806, + 27981 => 30807, 27982 => 30758, 27983 => 30800, 27984 => 30791, 27985 => 30796, + 27986 => 30826, 27987 => 30875, 27988 => 30867, 27989 => 30874, 27990 => 30855, + 27991 => 30876, 27992 => 30881, 27993 => 30883, 27994 => 30898, 27995 => 30905, + 27996 => 30885, 27997 => 30932, 27998 => 30937, 27999 => 30921, 28000 => 30956, + 28001 => 30962, 28002 => 30981, 28003 => 30964, 28004 => 30995, 28005 => 31012, + 28006 => 31006, 28007 => 31028, 28008 => 40859, 28009 => 40697, 28010 => 40699, + 28011 => 40700, 28012 => 30449, 28013 => 30468, 28014 => 30477, 28015 => 30457, + 28016 => 30471, 28017 => 30472, 28018 => 30490, 28019 => 30498, 28020 => 30489, + 28021 => 30509, 28022 => 30502, 28023 => 30517, 28024 => 30520, 28025 => 30544, + 28026 => 30545, 28027 => 30535, 28028 => 30531, 28029 => 30554, 28030 => 30568, + 28193 => 30562, 28194 => 30565, 28195 => 30591, 28196 => 30605, 28197 => 30589, + 28198 => 30592, 28199 => 30604, 28200 => 30609, 28201 => 30623, 28202 => 30624, + 28203 => 30640, 28204 => 30645, 28205 => 30653, 28206 => 30010, 28207 => 30016, + 28208 => 30030, 28209 => 30027, 28210 => 30024, 28211 => 30043, 28212 => 30066, + 28213 => 30073, 28214 => 30083, 28215 => 32600, 28216 => 32609, 28217 => 32607, + 28218 => 35400, 28219 => 32616, 28220 => 32628, 28221 => 32625, 28222 => 32633, + 28223 => 32641, 28224 => 32638, 28225 => 30413, 28226 => 30437, 28227 => 34866, + 28228 => 38021, 28229 => 38022, 28230 => 38023, 28231 => 38027, 28232 => 38026, + 28233 => 38028, 28234 => 38029, 28235 => 38031, 28236 => 38032, 28237 => 38036, + 28238 => 38039, 28239 => 38037, 28240 => 38042, 28241 => 38043, 28242 => 38044, + 28243 => 38051, 28244 => 38052, 28245 => 38059, 28246 => 38058, 28247 => 38061, + 28248 => 38060, 28249 => 38063, 28250 => 38064, 28251 => 38066, 28252 => 38068, + 28253 => 38070, 28254 => 38071, 28255 => 38072, 28256 => 38073, 28257 => 38074, + 28258 => 38076, 28259 => 38077, 28260 => 38079, 28261 => 38084, 28262 => 38088, + 28263 => 38089, 28264 => 38090, 28265 => 38091, 28266 => 38092, 28267 => 38093, + 28268 => 38094, 28269 => 38096, 28270 => 38097, 28271 => 38098, 28272 => 38101, + 28273 => 38102, 28274 => 38103, 28275 => 38105, 28276 => 38104, 28277 => 38107, + 28278 => 38110, 28279 => 38111, 28280 => 38112, 28281 => 38114, 28282 => 38116, + 28283 => 38117, 28284 => 38119, 28285 => 38120, 28286 => 38122, 28449 => 38121, + 28450 => 38123, 28451 => 38126, 28452 => 38127, 28453 => 38131, 28454 => 38132, + 28455 => 38133, 28456 => 38135, 28457 => 38137, 28458 => 38140, 28459 => 38141, + 28460 => 38143, 28461 => 38147, 28462 => 38146, 28463 => 38150, 28464 => 38151, + 28465 => 38153, 28466 => 38154, 28467 => 38157, 28468 => 38158, 28469 => 38159, + 28470 => 38162, 28471 => 38163, 28472 => 38164, 28473 => 38165, 28474 => 38166, + 28475 => 38168, 28476 => 38171, 28477 => 38173, 28478 => 38174, 28479 => 38175, + 28480 => 38178, 28481 => 38186, 28482 => 38187, 28483 => 38185, 28484 => 38188, + 28485 => 38193, 28486 => 38194, 28487 => 38196, 28488 => 38198, 28489 => 38199, + 28490 => 38200, 28491 => 38204, 28492 => 38206, 28493 => 38207, 28494 => 38210, + 28495 => 38197, 28496 => 38212, 28497 => 38213, 28498 => 38214, 28499 => 38217, + 28500 => 38220, 28501 => 38222, 28502 => 38223, 28503 => 38226, 28504 => 38227, + 28505 => 38228, 28506 => 38230, 28507 => 38231, 28508 => 38232, 28509 => 38233, + 28510 => 38235, 28511 => 38238, 28512 => 38239, 28513 => 38237, 28514 => 38241, + 28515 => 38242, 28516 => 38244, 28517 => 38245, 28518 => 38246, 28519 => 38247, + 28520 => 38248, 28521 => 38249, 28522 => 38250, 28523 => 38251, 28524 => 38252, + 28525 => 38255, 28526 => 38257, 28527 => 38258, 28528 => 38259, 28529 => 38202, + 28530 => 30695, 28531 => 30700, 28532 => 38601, 28533 => 31189, 28534 => 31213, + 28535 => 31203, 28536 => 31211, 28537 => 31238, 28538 => 23879, 28539 => 31235, + 28540 => 31234, 28541 => 31262, 28542 => 31252, 28705 => 31289, 28706 => 31287, + 28707 => 31313, 28708 => 40655, 28709 => 39333, 28710 => 31344, 28711 => 30344, + 28712 => 30350, 28713 => 30355, 28714 => 30361, 28715 => 30372, 28716 => 29918, + 28717 => 29920, 28718 => 29996, 28719 => 40480, 28720 => 40482, 28721 => 40488, + 28722 => 40489, 28723 => 40490, 28724 => 40491, 28725 => 40492, 28726 => 40498, + 28727 => 40497, 28728 => 40502, 28729 => 40504, 28730 => 40503, 28731 => 40505, + 28732 => 40506, 28733 => 40510, 28734 => 40513, 28735 => 40514, 28736 => 40516, + 28737 => 40518, 28738 => 40519, 28739 => 40520, 28740 => 40521, 28741 => 40523, + 28742 => 40524, 28743 => 40526, 28744 => 40529, 28745 => 40533, 28746 => 40535, + 28747 => 40538, 28748 => 40539, 28749 => 40540, 28750 => 40542, 28751 => 40547, + 28752 => 40550, 28753 => 40551, 28754 => 40552, 28755 => 40553, 28756 => 40554, + 28757 => 40555, 28758 => 40556, 28759 => 40561, 28760 => 40557, 28761 => 40563, + 28762 => 30098, 28763 => 30100, 28764 => 30102, 28765 => 30112, 28766 => 30109, + 28767 => 30124, 28768 => 30115, 28769 => 30131, 28770 => 30132, 28771 => 30136, + 28772 => 30148, 28773 => 30129, 28774 => 30128, 28775 => 30147, 28776 => 30146, + 28777 => 30166, 28778 => 30157, 28779 => 30179, 28780 => 30184, 28781 => 30182, + 28782 => 30180, 28783 => 30187, 28784 => 30183, 28785 => 30211, 28786 => 30193, + 28787 => 30204, 28788 => 30207, 28789 => 30224, 28790 => 30208, 28791 => 30213, + 28792 => 30220, 28793 => 30231, 28794 => 30218, 28795 => 30245, 28796 => 30232, + 28797 => 30229, 28798 => 30233, 28961 => 30235, 28962 => 30268, 28963 => 30242, + 28964 => 30240, 28965 => 30272, 28966 => 30253, 28967 => 30256, 28968 => 30271, + 28969 => 30261, 28970 => 30275, 28971 => 30270, 28972 => 30259, 28973 => 30285, + 28974 => 30302, 28975 => 30292, 28976 => 30300, 28977 => 30294, 28978 => 30315, + 28979 => 30319, 28980 => 32714, 28981 => 31462, 28982 => 31352, 28983 => 31353, + 28984 => 31360, 28985 => 31366, 28986 => 31368, 28987 => 31381, 28988 => 31398, + 28989 => 31392, 28990 => 31404, 28991 => 31400, 28992 => 31405, 28993 => 31411, + 28994 => 34916, 28995 => 34921, 28996 => 34930, 28997 => 34941, 28998 => 34943, + 28999 => 34946, 29000 => 34978, 29001 => 35014, 29002 => 34999, 29003 => 35004, + 29004 => 35017, 29005 => 35042, 29006 => 35022, 29007 => 35043, 29008 => 35045, + 29009 => 35057, 29010 => 35098, 29011 => 35068, 29012 => 35048, 29013 => 35070, + 29014 => 35056, 29015 => 35105, 29016 => 35097, 29017 => 35091, 29018 => 35099, + 29019 => 35082, 29020 => 35124, 29021 => 35115, 29022 => 35126, 29023 => 35137, + 29024 => 35174, 29025 => 35195, 29026 => 30091, 29027 => 32997, 29028 => 30386, + 29029 => 30388, 29030 => 30684, 29031 => 32786, 29032 => 32788, 29033 => 32790, + 29034 => 32796, 29035 => 32800, 29036 => 32802, 29037 => 32805, 29038 => 32806, + 29039 => 32807, 29040 => 32809, 29041 => 32808, 29042 => 32817, 29043 => 32779, + 29044 => 32821, 29045 => 32835, 29046 => 32838, 29047 => 32845, 29048 => 32850, + 29049 => 32873, 29050 => 32881, 29051 => 35203, 29052 => 39032, 29053 => 39040, + 29054 => 39043, 29217 => 39049, 29218 => 39052, 29219 => 39053, 29220 => 39055, + 29221 => 39060, 29222 => 39066, 29223 => 39067, 29224 => 39070, 29225 => 39071, + 29226 => 39073, 29227 => 39074, 29228 => 39077, 29229 => 39078, 29230 => 34381, + 29231 => 34388, 29232 => 34412, 29233 => 34414, 29234 => 34431, 29235 => 34426, + 29236 => 34428, 29237 => 34427, 29238 => 34472, 29239 => 34445, 29240 => 34443, + 29241 => 34476, 29242 => 34461, 29243 => 34471, 29244 => 34467, 29245 => 34474, + 29246 => 34451, 29247 => 34473, 29248 => 34486, 29249 => 34500, 29250 => 34485, + 29251 => 34510, 29252 => 34480, 29253 => 34490, 29254 => 34481, 29255 => 34479, + 29256 => 34505, 29257 => 34511, 29258 => 34484, 29259 => 34537, 29260 => 34545, + 29261 => 34546, 29262 => 34541, 29263 => 34547, 29264 => 34512, 29265 => 34579, + 29266 => 34526, 29267 => 34548, 29268 => 34527, 29269 => 34520, 29270 => 34513, + 29271 => 34563, 29272 => 34567, 29273 => 34552, 29274 => 34568, 29275 => 34570, + 29276 => 34573, 29277 => 34569, 29278 => 34595, 29279 => 34619, 29280 => 34590, + 29281 => 34597, 29282 => 34606, 29283 => 34586, 29284 => 34622, 29285 => 34632, + 29286 => 34612, 29287 => 34609, 29288 => 34601, 29289 => 34615, 29290 => 34623, + 29291 => 34690, 29292 => 34594, 29293 => 34685, 29294 => 34686, 29295 => 34683, + 29296 => 34656, 29297 => 34672, 29298 => 34636, 29299 => 34670, 29300 => 34699, + 29301 => 34643, 29302 => 34659, 29303 => 34684, 29304 => 34660, 29305 => 34649, + 29306 => 34661, 29307 => 34707, 29308 => 34735, 29309 => 34728, 29310 => 34770, + 29473 => 34758, 29474 => 34696, 29475 => 34693, 29476 => 34733, 29477 => 34711, + 29478 => 34691, 29479 => 34731, 29480 => 34789, 29481 => 34732, 29482 => 34741, + 29483 => 34739, 29484 => 34763, 29485 => 34771, 29486 => 34749, 29487 => 34769, + 29488 => 34752, 29489 => 34762, 29490 => 34779, 29491 => 34794, 29492 => 34784, + 29493 => 34798, 29494 => 34838, 29495 => 34835, 29496 => 34814, 29497 => 34826, + 29498 => 34843, 29499 => 34849, 29500 => 34873, 29501 => 34876, 29502 => 32566, + 29503 => 32578, 29504 => 32580, 29505 => 32581, 29506 => 33296, 29507 => 31482, + 29508 => 31485, 29509 => 31496, 29510 => 31491, 29511 => 31492, 29512 => 31509, + 29513 => 31498, 29514 => 31531, 29515 => 31503, 29516 => 31559, 29517 => 31544, + 29518 => 31530, 29519 => 31513, 29520 => 31534, 29521 => 31537, 29522 => 31520, + 29523 => 31525, 29524 => 31524, 29525 => 31539, 29526 => 31550, 29527 => 31518, + 29528 => 31576, 29529 => 31578, 29530 => 31557, 29531 => 31605, 29532 => 31564, + 29533 => 31581, 29534 => 31584, 29535 => 31598, 29536 => 31611, 29537 => 31586, + 29538 => 31602, 29539 => 31601, 29540 => 31632, 29541 => 31654, 29542 => 31655, + 29543 => 31672, 29544 => 31660, 29545 => 31645, 29546 => 31656, 29547 => 31621, + 29548 => 31658, 29549 => 31644, 29550 => 31650, 29551 => 31659, 29552 => 31668, + 29553 => 31697, 29554 => 31681, 29555 => 31692, 29556 => 31709, 29557 => 31706, + 29558 => 31717, 29559 => 31718, 29560 => 31722, 29561 => 31756, 29562 => 31742, + 29563 => 31740, 29564 => 31759, 29565 => 31766, 29566 => 31755, 29729 => 31775, + 29730 => 31786, 29731 => 31782, 29732 => 31800, 29733 => 31809, 29734 => 31808, + 29735 => 33278, 29736 => 33281, 29737 => 33282, 29738 => 33284, 29739 => 33260, + 29740 => 34884, 29741 => 33313, 29742 => 33314, 29743 => 33315, 29744 => 33325, + 29745 => 33327, 29746 => 33320, 29747 => 33323, 29748 => 33336, 29749 => 33339, + 29750 => 33331, 29751 => 33332, 29752 => 33342, 29753 => 33348, 29754 => 33353, + 29755 => 33355, 29756 => 33359, 29757 => 33370, 29758 => 33375, 29759 => 33384, + 29760 => 34942, 29761 => 34949, 29762 => 34952, 29763 => 35032, 29764 => 35039, + 29765 => 35166, 29766 => 32669, 29767 => 32671, 29768 => 32679, 29769 => 32687, + 29770 => 32688, 29771 => 32690, 29772 => 31868, 29773 => 25929, 29774 => 31889, + 29775 => 31901, 29776 => 31900, 29777 => 31902, 29778 => 31906, 29779 => 31922, + 29780 => 31932, 29781 => 31933, 29782 => 31937, 29783 => 31943, 29784 => 31948, + 29785 => 31949, 29786 => 31944, 29787 => 31941, 29788 => 31959, 29789 => 31976, + 29790 => 33390, 29791 => 26280, 29792 => 32703, 29793 => 32718, 29794 => 32725, + 29795 => 32741, 29796 => 32737, 29797 => 32742, 29798 => 32745, 29799 => 32750, + 29800 => 32755, 29801 => 31992, 29802 => 32119, 29803 => 32166, 29804 => 32174, + 29805 => 32327, 29806 => 32411, 29807 => 40632, 29808 => 40628, 29809 => 36211, + 29810 => 36228, 29811 => 36244, 29812 => 36241, 29813 => 36273, 29814 => 36199, + 29815 => 36205, 29816 => 35911, 29817 => 35913, 29818 => 37194, 29819 => 37200, + 29820 => 37198, 29821 => 37199, 29822 => 37220, 29985 => 37218, 29986 => 37217, + 29987 => 37232, 29988 => 37225, 29989 => 37231, 29990 => 37245, 29991 => 37246, + 29992 => 37234, 29993 => 37236, 29994 => 37241, 29995 => 37260, 29996 => 37253, + 29997 => 37264, 29998 => 37261, 29999 => 37265, 30000 => 37282, 30001 => 37283, + 30002 => 37290, 30003 => 37293, 30004 => 37294, 30005 => 37295, 30006 => 37301, + 30007 => 37300, 30008 => 37306, 30009 => 35925, 30010 => 40574, 30011 => 36280, + 30012 => 36331, 30013 => 36357, 30014 => 36441, 30015 => 36457, 30016 => 36277, + 30017 => 36287, 30018 => 36284, 30019 => 36282, 30020 => 36292, 30021 => 36310, + 30022 => 36311, 30023 => 36314, 30024 => 36318, 30025 => 36302, 30026 => 36303, + 30027 => 36315, 30028 => 36294, 30029 => 36332, 30030 => 36343, 30031 => 36344, + 30032 => 36323, 30033 => 36345, 30034 => 36347, 30035 => 36324, 30036 => 36361, + 30037 => 36349, 30038 => 36372, 30039 => 36381, 30040 => 36383, 30041 => 36396, + 30042 => 36398, 30043 => 36387, 30044 => 36399, 30045 => 36410, 30046 => 36416, + 30047 => 36409, 30048 => 36405, 30049 => 36413, 30050 => 36401, 30051 => 36425, + 30052 => 36417, 30053 => 36418, 30054 => 36433, 30055 => 36434, 30056 => 36426, + 30057 => 36464, 30058 => 36470, 30059 => 36476, 30060 => 36463, 30061 => 36468, + 30062 => 36485, 30063 => 36495, 30064 => 36500, 30065 => 36496, 30066 => 36508, + 30067 => 36510, 30068 => 35960, 30069 => 35970, 30070 => 35978, 30071 => 35973, + 30072 => 35992, 30073 => 35988, 30074 => 26011, 30075 => 35286, 30076 => 35294, + 30077 => 35290, 30078 => 35292, 30241 => 35301, 30242 => 35307, 30243 => 35311, + 30244 => 35390, 30245 => 35622, 30246 => 38739, 30247 => 38633, 30248 => 38643, + 30249 => 38639, 30250 => 38662, 30251 => 38657, 30252 => 38664, 30253 => 38671, + 30254 => 38670, 30255 => 38698, 30256 => 38701, 30257 => 38704, 30258 => 38718, + 30259 => 40832, 30260 => 40835, 30261 => 40837, 30262 => 40838, 30263 => 40839, + 30264 => 40840, 30265 => 40841, 30266 => 40842, 30267 => 40844, 30268 => 40702, + 30269 => 40715, 30270 => 40717, 30271 => 38585, 30272 => 38588, 30273 => 38589, + 30274 => 38606, 30275 => 38610, 30276 => 30655, 30277 => 38624, 30278 => 37518, + 30279 => 37550, 30280 => 37576, 30281 => 37694, 30282 => 37738, 30283 => 37834, + 30284 => 37775, 30285 => 37950, 30286 => 37995, 30287 => 40063, 30288 => 40066, + 30289 => 40069, 30290 => 40070, 30291 => 40071, 30292 => 40072, 30293 => 31267, + 30294 => 40075, 30295 => 40078, 30296 => 40080, 30297 => 40081, 30298 => 40082, + 30299 => 40084, 30300 => 40085, 30301 => 40090, 30302 => 40091, 30303 => 40094, + 30304 => 40095, 30305 => 40096, 30306 => 40097, 30307 => 40098, 30308 => 40099, + 30309 => 40101, 30310 => 40102, 30311 => 40103, 30312 => 40104, 30313 => 40105, + 30314 => 40107, 30315 => 40109, 30316 => 40110, 30317 => 40112, 30318 => 40113, + 30319 => 40114, 30320 => 40115, 30321 => 40116, 30322 => 40117, 30323 => 40118, + 30324 => 40119, 30325 => 40122, 30326 => 40123, 30327 => 40124, 30328 => 40125, + 30329 => 40132, 30330 => 40133, 30331 => 40134, 30332 => 40135, 30333 => 40138, + 30334 => 40139, 30497 => 40140, 30498 => 40141, 30499 => 40142, 30500 => 40143, + 30501 => 40144, 30502 => 40147, 30503 => 40148, 30504 => 40149, 30505 => 40151, + 30506 => 40152, 30507 => 40153, 30508 => 40156, 30509 => 40157, 30510 => 40159, + 30511 => 40162, 30512 => 38780, 30513 => 38789, 30514 => 38801, 30515 => 38802, + 30516 => 38804, 30517 => 38831, 30518 => 38827, 30519 => 38819, 30520 => 38834, + 30521 => 38836, 30522 => 39601, 30523 => 39600, 30524 => 39607, 30525 => 40536, + 30526 => 39606, 30527 => 39610, 30528 => 39612, 30529 => 39617, 30530 => 39616, + 30531 => 39621, 30532 => 39618, 30533 => 39627, 30534 => 39628, 30535 => 39633, + 30536 => 39749, 30537 => 39747, 30538 => 39751, 30539 => 39753, 30540 => 39752, + 30541 => 39757, 30542 => 39761, 30543 => 39144, 30544 => 39181, 30545 => 39214, + 30546 => 39253, 30547 => 39252, 30548 => 39647, 30549 => 39649, 30550 => 39654, + 30551 => 39663, 30552 => 39659, 30553 => 39675, 30554 => 39661, 30555 => 39673, + 30556 => 39688, 30557 => 39695, 30558 => 39699, 30559 => 39711, 30560 => 39715, + 30561 => 40637, 30562 => 40638, 30563 => 32315, 30564 => 40578, 30565 => 40583, + 30566 => 40584, 30567 => 40587, 30568 => 40594, 30569 => 37846, 30570 => 40605, + 30571 => 40607, 30572 => 40667, 30573 => 40668, 30574 => 40669, 30575 => 40672, + 30576 => 40671, 30577 => 40674, 30578 => 40681, 30579 => 40679, 30580 => 40677, + 30581 => 40682, 30582 => 40687, 30583 => 40738, 30584 => 40748, 30585 => 40751, + 30586 => 40761, 30587 => 40759, 30588 => 40765, 30589 => 40766, 30590 => 40772, + 0 => 0 ); + + function gb2utf8($gb) { + if( !trim($gb) ) return $gb; + $utf8=''; + while($gb) { + if( ord(substr($gb,0,1)) > 127 ) { + $t=substr($gb,0,2); + $gb=substr($gb,2); + $utf8 .= $this->u2utf8($this->codetable[hexdec(bin2hex($t))-0x8080]); + } + else { + $t=substr($gb,0,1); + $gb=substr($gb,1); + $utf8 .= $this->u2utf8($t); + } + } + return $utf8; + } + + function u2utf8($c) { + $str=''; + if ($c < 0x80) { + $str.=$c; + } + else if ($c < 0x800) { + $str.=chr(0xC0 | $c>>6); + $str.=chr(0x80 | $c & 0x3F); + } + else if ($c < 0x10000) { + $str.=chr(0xE0 | $c>>12); + $str.=chr(0x80 | $c>>6 & 0x3F); + $str.=chr(0x80 | $c & 0x3F); + } + else if ($c < 0x200000) { + $str.=chr(0xF0 | $c>>18); + $str.=chr(0x80 | $c>>12 & 0x3F); + $str.=chr(0x80 | $c>>6 & 0x3F); + $str.=chr(0x80 | $c & 0x3F); + } + return $str; + } + +} // END Class + +?> diff --git a/gosa-core/include/jpgraph/jpgraph_gradient.php b/gosa-core/include/jpgraph/jpgraph_gradient.php new file mode 100644 index 000000000..a990b9ff4 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_gradient.php @@ -0,0 +1,434 @@ +img = $img; + } + + + function SetNumColors($aNum) { + $this->numcolors=$aNum; + } + //--------------- + // PUBLIC METHODS + // Produce a gradient filled rectangle with a smooth transition between + // two colors. + // ($xl,$yt) Top left corner + // ($xr,$yb) Bottom right + // $from_color Starting color in gradient + // $to_color End color in the gradient + // $style Which way is the gradient oriented? + function FilledRectangle($xl,$yt,$xr,$yb,$from_color,$to_color,$style=1) { + $this->img->SetLineWeight(1); + switch( $style ) { + case GRAD_VER: + $steps = ceil(abs($xr-$xl)+1); + $delta = $xr>=$xl ? 1 : -1; + $this->GetColArray($from_color,$to_color,$steps,$colors,$this->numcolors); + for( $i=0, $x=$xl; $i < $steps; ++$i ) { + $this->img->current_color = $colors[$i]; + $this->img->Line($x,$yt,$x,$yb); + $x += $delta; + } + break; + + case GRAD_HOR: + $steps = ceil(abs($yb-$yt)+1); + $delta = $yb >= $yt ? 1 : -1; + $this->GetColArray($from_color,$to_color,$steps,$colors,$this->numcolors); + for($i=0,$y=$yt; $i < $steps; ++$i) { + $this->img->current_color = $colors[$i]; + $this->img->Line($xl,$y,$xr,$y); + $y += $delta; + } + break; + + case GRAD_MIDHOR: + $steps = ceil(abs($yb-$yt)/2); + $delta = $yb >= $yt ? 1 : -1; + $this->GetColArray($from_color,$to_color,$steps,$colors,$this->numcolors); + for($y=$yt, $i=0; $i < $steps; ++$i) { + $this->img->current_color = $colors[$i]; + $this->img->Line($xl,$y,$xr,$y); + $y += $delta; + } + --$i; + if( abs($yb-$yt) % 2 == 1 ) { + --$steps; + } + for($j=0; $j < $steps; ++$j, --$i) { + $this->img->current_color = $colors[$i]; + $this->img->Line($xl,$y,$xr,$y); + $y += $delta; + } + $this->img->Line($xl,$y,$xr,$y); + break; + + case GRAD_MIDVER: + $steps = ceil(abs($xr-$xl)/2); + $delta = $xr>=$xl ? 1 : -1; + $this->GetColArray($from_color,$to_color,$steps,$colors,$this->numcolors); + for($x=$xl, $i=0; $i < $steps; ++$i) { + $this->img->current_color = $colors[$i]; + $this->img->Line($x,$yb,$x,$yt); + $x += $delta; + } + --$i; + if( abs($xr-$xl) % 2 == 1 ) { + --$steps; + } + for($j=0; $j < $steps; ++$j, --$i) { + $this->img->current_color = $colors[$i]; + $this->img->Line($x,$yb,$x,$yt); + $x += $delta; + } + $this->img->Line($x,$yb,$x,$yt); + break; + + case GRAD_WIDE_MIDVER: + $diff = ceil(abs($xr-$xl)); + $steps = floor(abs($diff)/3); + $firststep = $diff - 2*$steps ; + $delta = $xr >= $xl ? 1 : -1; + $this->GetColArray($from_color,$to_color,$firststep,$colors,$this->numcolors); + for($x=$xl, $i=0; $i < $firststep; ++$i) { + $this->img->current_color = $colors[$i]; + $this->img->Line($x,$yb,$x,$yt); + $x += $delta; + } + --$i; + $this->img->current_color = $colors[$i]; + for($j=0; $j< $steps; ++$j) { + $this->img->Line($x,$yb,$x,$yt); + $x += $delta; + } + + for($j=0; $j < $steps; ++$j, --$i) { + $this->img->current_color = $colors[$i]; + $this->img->Line($x,$yb,$x,$yt); + $x += $delta; + } + break; + + case GRAD_WIDE_MIDHOR: + $diff = ceil(abs($yb-$yt)); + $steps = floor(abs($diff)/3); + $firststep = $diff - 2*$steps ; + $delta = $yb >= $yt? 1 : -1; + $this->GetColArray($from_color,$to_color,$firststep,$colors,$this->numcolors); + for($y=$yt, $i=0; $i < $firststep; ++$i) { + $this->img->current_color = $colors[$i]; + $this->img->Line($xl,$y,$xr,$y); + $y += $delta; + } + --$i; + $this->img->current_color = $colors[$i]; + for($j=0; $j < $steps; ++$j) { + $this->img->Line($xl,$y,$xr,$y); + $y += $delta; + } + for($j=0; $j < $steps; ++$j, --$i) { + $this->img->current_color = $colors[$i]; + $this->img->Line($xl,$y,$xr,$y); + $y += $delta; + } + break; + + case GRAD_LEFT_REFLECTION: + $steps1 = ceil(0.3*abs($xr-$xl)); + $delta = $xr>=$xl ? 1 : -1; + + $from_color = $this->img->rgb->Color($from_color); + $adj = 1.4; + $m = ($adj-1.0)*(255-min(255,min($from_color[0],min($from_color[1],$from_color[2])))); + $from_color2 = array(min(255,$from_color[0]+$m), + min(255,$from_color[1]+$m), min(255,$from_color[2]+$m)); + + $this->GetColArray($from_color2,$to_color,$steps1,$colors,$this->numcolors); + $n = count($colors); + for($x=$xl, $i=0; $i < $steps1 && $i < $n; ++$i) { + $this->img->current_color = $colors[$i]; + $this->img->Line($x,$yb,$x,$yt); + $x += $delta; + } + $steps2 = max(1,ceil(0.08*abs($xr-$xl))); + $this->img->SetColor($to_color); + for($j=0; $j< $steps2; ++$j) { + $this->img->Line($x,$yb,$x,$yt); + $x += $delta; + } + $steps = abs($xr-$xl)-$steps1-$steps2; + $this->GetColArray($to_color,$from_color,$steps,$colors,$this->numcolors); + $n = count($colors); + for($i=0; $i < $steps && $i < $n; ++$i) { + $this->img->current_color = $colors[$i]; + $this->img->Line($x,$yb,$x,$yt); + $x += $delta; + } + break; + + case GRAD_RIGHT_REFLECTION: + $steps1 = ceil(0.7*abs($xr-$xl)); + $delta = $xr>=$xl ? 1 : -1; + + $this->GetColArray($from_color,$to_color,$steps1,$colors,$this->numcolors); + $n = count($colors); + for($x=$xl, $i=0; $i < $steps1 && $i < $n; ++$i) { + $this->img->current_color = $colors[$i]; + $this->img->Line($x,$yb,$x,$yt); + $x += $delta; + } + $steps2 = max(1,ceil(0.08*abs($xr-$xl))); + $this->img->SetColor($to_color); + for($j=0; $j< $steps2; ++$j) { + $this->img->Line($x,$yb,$x,$yt); + $x += $delta; + } + + $from_color = $this->img->rgb->Color($from_color); + $adj = 1.4; + $m = ($adj-1.0)*(255-min(255,min($from_color[0],min($from_color[1],$from_color[2])))); + $from_color = array(min(255,$from_color[0]+$m), + min(255,$from_color[1]+$m), min(255,$from_color[2]+$m)); + + $steps = abs($xr-$xl)-$steps1-$steps2; + $this->GetColArray($to_color,$from_color,$steps,$colors,$this->numcolors); + $n = count($colors); + for($i=0; $i < $steps && $i < $n; ++$i) { + $this->img->current_color = $colors[$i]; + $this->img->Line($x,$yb,$x,$yt); + $x += $delta; + } + break; + + case GRAD_CENTER: + $steps = ceil(min(($yb-$yt)+1,($xr-$xl)+1)/2); + $this->GetColArray($from_color,$to_color,$steps,$colors,$this->numcolors); + $dx = ($xr-$xl)/2; + $dy = ($yb-$yt)/2; + $x=$xl;$y=$yt;$x2=$xr;$y2=$yb; + $n = count($colors); + for($x=$xl, $i=0; $x < $xl+$dx && $y < $yt+$dy && $i < $n; ++$x, ++$y, --$x2, --$y2, ++$i) { + $this->img->current_color = $colors[$i]; + $this->img->Rectangle($x,$y,$x2,$y2); + } + $this->img->Line($x,$y,$x2,$y2); + break; + + case GRAD_RAISED_PANEL: + // right to left + $steps1 = $xr-$xl; + $delta = $xr>=$xl ? 1 : -1; + $this->GetColArray($to_color,$from_color,$steps1,$colors,$this->numcolors); + $n = count($colors); + for($x=$xl, $i=0; $i < $steps1 && $i < $n; ++$i) { + $this->img->current_color = $colors[$i]; + $this->img->Line($x,$yb,$x,$yt); + $x += $delta; + } + + // left to right + $xr -= 3; + $xl += 3; + $yb -= 3; + $yt += 3; + $steps2 = $xr-$xl; + $delta = $xr>=$xl ? 1 : -1; + for($x=$xl, $j=$steps2; $j >= 0; --$j) { + $this->img->current_color = $colors[$j]; + $this->img->Line($x,$yb,$x,$yt); + $x += $delta; + } + break; + + case GRAD_DIAGONAL: + // use the longer dimension to determine the required number of steps. + // first loop draws from one corner to the mid-diagonal and the second + // loop draws from the mid-diagonal to the opposing corner. + if($xr-$xl > $yb - $yt) { + // width is greater than height -> use x-dimension for steps + $steps = $xr-$xl; + $delta = $xr>=$xl ? 1 : -1; + $this->GetColArray($from_color,$to_color,$steps*2,$colors,$this->numcolors); + $n = count($colors); + + for($x=$xl, $i=0; $i < $steps && $i < $n; ++$i) { + $this->img->current_color = $colors[$i]; + $y = $yt+($i/$steps)*($yb-$yt)*$delta; + $this->img->Line($x,$yt,$xl,$y); + $x += $delta; + } + + for($x=$xl, $i = 0; $i < $steps && $i < $n; ++$i) { + $this->img->current_color = $colors[$steps+$i]; + $y = $yt+($i/$steps)*($yb-$yt)*$delta; + $this->img->Line($x,$yb,$xr,$y); + $x += $delta; + } + } else { + // height is greater than width -> use y-dimension for steps + $steps = $yb-$yt; + $delta = $yb>=$yt ? 1 : -1; + $this->GetColArray($from_color,$to_color,$steps*2,$colors,$this->numcolors); + $n = count($colors); + + for($y=$yt, $i=0; $i < $steps && $i < $n; ++$i) { + $this->img->current_color = $colors[$i]; + $x = $xl+($i/$steps)*($xr-$xl)*$delta; + $this->img->Line($x,$yt,$xl,$y); + $y += $delta; + } + + for($y=$yt, $i = 0; $i < $steps && $i < $n; ++$i) { + $this->img->current_color = $colors[$steps+$i]; + $x = $xl+($i/$steps)*($xr-$xl)*$delta; + $this->img->Line($x,$yb,$xr,$y); + $x += $delta; + } + + } + break; + + default: + JpGraphError::RaiseL(7001,$style); + //("Unknown gradient style (=$style)."); + break; + } + } + + // Fill a special case of a polygon with a flat bottom + // with a gradient. Can be used for filled line plots. + // Please note that this is NOT a generic gradient polygon fill + // routine. It assumes that the bottom is flat (like a drawing + // of a mountain) + function FilledFlatPolygon($pts,$from_color,$to_color) { + if( count($pts) == 0 ) return; + + $maxy=$pts[1]; + $miny=$pts[1]; + $n = count($pts) ; + for( $i=0, $idx=0; $i < $n; $i += 2) { + $x = round($pts[$i]); + $y = round($pts[$i+1]); + $miny = min($miny,$y); + $maxy = max($maxy,$y); + } + + $colors = array(); + $this->GetColArray($from_color,$to_color,abs($maxy-$miny)+1,$colors,$this->numcolors); + for($i=$miny, $idx=0; $i <= $maxy; ++$i ) { + $colmap[$i] = $colors[$idx++]; + } + + $n = count($pts)/2 ; + $idx = 0 ; + while( $idx < $n-1 ) { + $p1 = array(round($pts[$idx*2]),round($pts[$idx*2+1])); + $p2 = array(round($pts[++$idx*2]),round($pts[$idx*2+1])); + + // Find the largest rectangle we can fill + $y = max($p1[1],$p2[1]) ; + for($yy=$maxy; $yy > $y; --$yy) { + $this->img->current_color = $colmap[$yy]; + $this->img->Line($p1[0],$yy,$p2[0]-1,$yy); + } + + if( $p1[1] == $p2[1] ) { + continue; + } + + // Fill the rest using lines (slow...) + $slope = ($p2[0]-$p1[0])/($p1[1]-$p2[1]); + $x1 = $p1[0]; + $x2 = $p2[0]-1; + $start = $y; + if( $p1[1] > $p2[1] ) { + while( $y >= $p2[1] ) { + $x1=$slope*($start-$y)+$p1[0]; + $this->img->current_color = $colmap[$y]; + $this->img->Line($x1,$y,$x2,$y); + --$y; + } + } + else { + while( $y >= $p1[1] ) { + $x2=$p2[0]+$slope*($start-$y); + $this->img->current_color = $colmap[$y]; + $this->img->Line($x1,$y,$x2,$y); + --$y; + } + } + } + } + + //--------------- + // PRIVATE METHODS + // Add to the image color map the necessary colors to do the transition + // between the two colors using $numcolors intermediate colors + function GetColArray($from_color,$to_color,$arr_size,&$colors,$numcols=100) { + if( $arr_size==0 ) { + return; + } + + // If color is given as text get it's corresponding r,g,b values + $from_color = $this->img->rgb->Color($from_color); + $to_color = $this->img->rgb->Color($to_color); + + $rdelta=($to_color[0]-$from_color[0])/$numcols; + $gdelta=($to_color[1]-$from_color[1])/$numcols; + $bdelta=($to_color[2]-$from_color[2])/$numcols; + $colorsperstep = $numcols/$arr_size; + $prevcolnum = -1; + $from_alpha = $from_color[3]; + $to_alpha = $to_color[3]; + $adelta = ( $to_alpha - $from_alpha ) / $numcols ; + for ($i=0; $i < $arr_size; ++$i) { + $colnum = floor($colorsperstep*$i); + if ( $colnum == $prevcolnum ) { + $colors[$i] = $colidx; + } + else { + $r = floor($from_color[0] + $colnum*$rdelta); + $g = floor($from_color[1] + $colnum*$gdelta); + $b = floor($from_color[2] + $colnum*$bdelta); + $alpha = $from_alpha + $colnum*$adelta; + $colidx = $this->img->rgb->Allocate(sprintf("#%02x%02x%02x",$r,$g,$b),$alpha); + $colors[$i] = $colidx; + } + $prevcolnum = $colnum; + } + } +} // Class + +?> diff --git a/gosa-core/include/jpgraph/jpgraph_iconplot.php b/gosa-core/include/jpgraph/jpgraph_iconplot.php new file mode 100644 index 000000000..ca622314c --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_iconplot.php @@ -0,0 +1,190 @@ +iFile = $aFile; + $this->iX=$aX; + $this->iY=$aY; + $this->iScale= $aScale; + if( $aMix < 0 || $aMix > 100 ) { + JpGraphError::RaiseL(8001); //('Mix value for icon must be between 0 and 100.'); + } + $this->iMix = $aMix ; + } + + function SetCountryFlag($aFlag,$aX=0,$aY=0,$aScale=1.0,$aMix=100,$aStdSize=3) { + $this->iCountryFlag = $aFlag; + $this->iX=$aX; + $this->iY=$aY; + $this->iScale= $aScale; + if( $aMix < 0 || $aMix > 100 ) { + JpGraphError::RaiseL(8001);//'Mix value for icon must be between 0 and 100.'); + } + $this->iMix = $aMix; + $this->iCountryStdSize = $aStdSize; + } + + function SetPos($aX,$aY) { + $this->iX=$aX; + $this->iY=$aY; + } + + function CreateFromString($aStr) { + $this->iImgString = $aStr; + } + + function SetScalePos($aX,$aY) { + $this->iScalePosX = $aX; + $this->iScalePosY = $aY; + } + + function SetScale($aScale) { + $this->iScale = $aScale; + } + + function SetMix($aMix) { + if( $aMix < 0 || $aMix > 100 ) { + JpGraphError::RaiseL(8001);//('Mix value for icon must be between 0 and 100.'); + } + $this->iMix = $aMix ; + } + + function SetAnchor($aXAnchor='left',$aYAnchor='center') { + if( !in_array($aXAnchor,$this->iAnchors) || + !in_array($aYAnchor,$this->iAnchors) ) { + JpGraphError::RaiseL(8002);//("Anchor position for icons must be one of 'top', 'bottom', 'left', 'right' or 'center'"); + } + $this->iHorAnchor=$aXAnchor; + $this->iVertAnchor=$aYAnchor; + } + + function PreStrokeAdjust($aGraph) { + // Nothing to do ... + } + + function DoLegend($aGraph) { + // Nothing to do ... + } + + function Max() { + return array(false,false); + } + + + // The next four function are framework function tht gets called + // from Gantt and is not menaiungfull in the context of Icons but + // they must be implemented to avoid errors. + function GetMaxDate() { return false; } + function GetMinDate() { return false; } + function GetLineNbr() { return 0; } + function GetAbsHeight() {return 0; } + + + function Min() { + return array(false,false); + } + + function StrokeMargin(&$aImg) { + return true; + } + + function Stroke($aImg,$axscale=null,$ayscale=null) { + $this->StrokeWithScale($aImg,$axscale,$ayscale); + } + + function StrokeWithScale($aImg,$axscale,$ayscale) { + if( $this->iScalePosX === null || $this->iScalePosY === null || + $axscale === null || $ayscale === null ) { + $this->_Stroke($aImg); + } + else { + $this->_Stroke($aImg, + round($axscale->Translate($this->iScalePosX)), + round($ayscale->Translate($this->iScalePosY))); + } + } + + function GetWidthHeight() { + $dummy=0; + return $this->_Stroke($dummy,null,null,true); + } + + function _Stroke($aImg,$x=null,$y=null,$aReturnWidthHeight=false) { + if( $this->iFile != '' && $this->iCountryFlag != '' ) { + JpGraphError::RaiseL(8003);//('It is not possible to specify both an image file and a country flag for the same icon.'); + } + if( $this->iFile != '' ) { + $gdimg = Graph::LoadBkgImage('',$this->iFile); + } + elseif( $this->iImgString != '') { + $gdimg = Image::CreateFromString($this->iImgString); + } + + else { + if( ! class_exists('FlagImages',false) ) { + JpGraphError::RaiseL(8004);//('In order to use Country flags as icons you must include the "jpgraph_flags.php" file.'); + } + $fobj = new FlagImages($this->iCountryStdSize); + $dummy=''; + $gdimg = $fobj->GetImgByName($this->iCountryFlag,$dummy); + } + + $iconw = imagesx($gdimg); + $iconh = imagesy($gdimg); + + if( $aReturnWidthHeight ) { + return array(round($iconw*$this->iScale),round($iconh*$this->iScale)); + } + + if( $x !== null && $y !== null ) { + $this->iX = $x; $this->iY = $y; + } + if( $this->iX >= 0 && $this->iX <= 1.0 ) { + $w = imagesx($aImg->img); + $this->iX = round($w*$this->iX); + } + if( $this->iY >= 0 && $this->iY <= 1.0 ) { + $h = imagesy($aImg->img); + $this->iY = round($h*$this->iY); + } + + if( $this->iHorAnchor == 'center' ) + $this->iX -= round($iconw*$this->iScale/2); + if( $this->iHorAnchor == 'right' ) + $this->iX -= round($iconw*$this->iScale); + if( $this->iVertAnchor == 'center' ) + $this->iY -= round($iconh*$this->iScale/2); + if( $this->iVertAnchor == 'bottom' ) + $this->iY -= round($iconh*$this->iScale); + + $aImg->CopyMerge($gdimg,$this->iX,$this->iY,0,0, + round($iconw*$this->iScale),round($iconh*$this->iScale), + $iconw,$iconh, + $this->iMix); + } +} + +?> diff --git a/gosa-core/include/jpgraph/jpgraph_imgtrans.php b/gosa-core/include/jpgraph/jpgraph_imgtrans.php new file mode 100644 index 000000000..6f0cc07aa --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_imgtrans.php @@ -0,0 +1,223 @@ +gdImg = $aGdImg; + } + + // -------------------------------------------------------------------- + // _TransVert3D() and _TransHor3D() are helper methods to + // Skew3D(). + // -------------------------------------------------------------------- + function _TransVert3D($aGdImg,$aHorizon=100,$aSkewDist=120,$aDir=SKEW3D_DOWN,$aMinSize=true,$aFillColor='#FFFFFF',$aQuality=false,$aBorder=false,$aHorizonPos=0.5) { + + + // Parameter check + if( $aHorizonPos < 0 || $aHorizonPos > 1.0 ) { + JpGraphError::RaiseL(9001); + //("Value for image transformation out of bounds.\nVanishing point on horizon must be specified as a value between 0 and 1."); + } + + $w = imagesx($aGdImg); + $h = imagesy($aGdImg); + + // Create new image + $ww = $w; + if( $aMinSize ) + $hh = ceil($h * $aHorizon / ($aSkewDist+$h)); + else + $hh = $h; + + $newgdh = imagecreatetruecolor($ww,$hh); + $crgb = new RGB( $newgdh ); + $fillColor = $crgb->Allocate($aFillColor); + imagefilledrectangle($newgdh,0,0,$ww-1,$hh-1,$fillColor); + + if( $aBorder ) { + $colidx = $crgb->Allocate($aBorder); + imagerectangle($newgdh,0,0,$ww-1,$hh-1,$colidx); + } + + $mid = round($w * $aHorizonPos); + + $last=$h; + for($y=0; $y < $h; ++$y) { + + $yp = $h-$y-1; + $yt = floor($yp * $aHorizon / ($aSkewDist + $yp)); + + if( !$aQuality ) { + if( $last <= $yt ) continue ; + $last = $yt; + } + + for($x=0; $x < $w; ++$x) { + $xt = ($x-$mid) * $aSkewDist / ($aSkewDist + $yp); + if( $aDir == SKEW3D_UP ) + $rgb = imagecolorat($aGdImg,$x,$h-$y-1); + else + $rgb = imagecolorat($aGdImg,$x,$y); + $r = ($rgb >> 16) & 0xFF; + $g = ($rgb >> 8) & 0xFF; + $b = $rgb & 0xFF; + $colidx = imagecolorallocate($newgdh,$r,$g,$b); + $xt = round($xt+$mid); + if( $aDir == SKEW3D_UP ) { + $syt = $yt; + } + else { + $syt = $hh-$yt-1; + } + + if( !empty($set[$yt]) ) { + $nrgb = imagecolorat($newgdh,$xt,$syt); + $nr = ($nrgb >> 16) & 0xFF; + $ng = ($nrgb >> 8) & 0xFF; + $nb = $nrgb & 0xFF; + $colidx = imagecolorallocate($newgdh,floor(($r+$nr)/2), + floor(($g+$ng)/2),floor(($b+$nb)/2)); + } + + imagesetpixel($newgdh,$xt,$syt,$colidx); + } + + $set[$yt] = true; + } + + return $newgdh; + } + + // -------------------------------------------------------------------- + // _TransVert3D() and _TransHor3D() are helper methods to + // Skew3D(). + // -------------------------------------------------------------------- + function _TransHor3D($aGdImg,$aHorizon=100,$aSkewDist=120,$aDir=SKEW3D_LEFT,$aMinSize=true,$aFillColor='#FFFFFF',$aQuality=false,$aBorder=false,$aHorizonPos=0.5) { + + $w = imagesx($aGdImg); + $h = imagesy($aGdImg); + + // Create new image + $hh = $h; + if( $aMinSize ) + $ww = ceil($w * $aHorizon / ($aSkewDist+$w)); + else + $ww = $w; + + $newgdh = imagecreatetruecolor($ww,$hh); + $crgb = new RGB( $newgdh ); + $fillColor = $crgb->Allocate($aFillColor); + imagefilledrectangle($newgdh,0,0,$ww-1,$hh-1,$fillColor); + + if( $aBorder ) { + $colidx = $crgb->Allocate($aBorder); + imagerectangle($newgdh,0,0,$ww-1,$hh-1,$colidx); + } + + $mid = round($h * $aHorizonPos); + + $last = -1; + for($x=0; $x < $w-1; ++$x) { + $xt = floor($x * $aHorizon / ($aSkewDist + $x)); + if( !$aQuality ) { + if( $last >= $xt ) continue ; + $last = $xt; + } + + for($y=0; $y < $h; ++$y) { + $yp = $h-$y-1; + $yt = ($yp-$mid) * $aSkewDist / ($aSkewDist + $x); + + if( $aDir == SKEW3D_RIGHT ) + $rgb = imagecolorat($aGdImg,$w-$x-1,$y); + else + $rgb = imagecolorat($aGdImg,$x,$y); + $r = ($rgb >> 16) & 0xFF; + $g = ($rgb >> 8) & 0xFF; + $b = $rgb & 0xFF; + $colidx = imagecolorallocate($newgdh,$r,$g,$b); + $yt = floor($hh-$yt-$mid-1); + if( $aDir == SKEW3D_RIGHT ) { + $sxt = $ww-$xt-1; + } + else + $sxt = $xt ; + + if( !empty($set[$xt]) ) { + $nrgb = imagecolorat($newgdh,$sxt,$yt); + $nr = ($nrgb >> 16) & 0xFF; + $ng = ($nrgb >> 8) & 0xFF; + $nb = $nrgb & 0xFF; + $colidx = imagecolorallocate($newgdh,floor(($r+$nr)/2), + floor(($g+$ng)/2),floor(($b+$nb)/2)); + } + imagesetpixel($newgdh,$sxt,$yt,$colidx); + } + + $set[$xt] = true; + } + + return $newgdh; + } + + // -------------------------------------------------------------------- + // Skew image for the apperance of a 3D effect + // This transforms an image into a 3D-skewed version + // of the image. The transformation is specified by giving the height + // of the artificial horizon and specifying a "skew" factor which + // is the distance on the horizon line between the point of + // convergence and perspective line. + // + // The function returns the GD handle of the transformed image + // leaving the original image untouched. + // + // Parameters: + // * $aGdImg, GD handle to the image to be transformed + // * $aHorizon, Distance to the horizon + // * $aSkewDist, Distance from the horizon point of convergence + // on the horizon line to the perspective points. A larger + // value will fore-shorten the image more + // * $aDir, parameter specifies type of convergence. This of this + // as the walls in a room you are looking at. This specifies if the + // image should be applied on the left,right,top or bottom walls. + // * $aMinSize, true=make the new image just as big as needed, + // false = keep the image the same size as the original image + // * $aFillColor, Background fill color in the image + // * $aHiQuality, true=performa some interpolation that improves + // the image quality but at the expense of performace. Enabling + // high quality will have a dramatic effect on the time it takes + // to transform an image. + // * $aBorder, if set to anything besides false this will draw a + // a border of the speciied color around the image + // -------------------------------------------------------------------- + function Skew3D($aHorizon=120,$aSkewDist=150,$aDir=SKEW3D_DOWN,$aHiQuality=false,$aMinSize=true,$aFillColor='#FFFFFF',$aBorder=false) { + return $this->_Skew3D($this->gdImg,$aHorizon,$aSkewDist,$aDir,$aHiQuality, + $aMinSize,$aFillColor,$aBorder); + } + + function _Skew3D($aGdImg,$aHorizon=120,$aSkewDist=150,$aDir=SKEW3D_DOWN,$aHiQuality=false,$aMinSize=true,$aFillColor='#FFFFFF',$aBorder=false) { + if( $aDir == SKEW3D_DOWN || $aDir == SKEW3D_UP ) + return $this->_TransVert3D($aGdImg,$aHorizon,$aSkewDist,$aDir,$aMinSize,$aFillColor,$aHiQuality,$aBorder); + else + return $this->_TransHor3D($aGdImg,$aHorizon,$aSkewDist,$aDir,$aMinSize,$aFillColor,$aHiQuality,$aBorder); + + } + +} + + +?> \ No newline at end of file diff --git a/gosa-core/include/jpgraph/jpgraph_led.php b/gosa-core/include/jpgraph/jpgraph_led.php new file mode 100644 index 000000000..45cda1ba9 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_led.php @@ -0,0 +1,311 @@ + array('red','darkred:0.9','red:0.3'),// 0 + LEDC_GREEN => array('green','darkgreen','green:0.3'),// 1 + LEDC_BLUE => array('lightblue:0.9','darkblue:0.85','darkblue:0.7'),// 2 + LEDC_YELLOW => array('yellow','yellow:0.4','yellow:0.3'),// 3 + LEDC_GRAY => array('gray:1.4','darkgray:0.85','darkgray:0.7'), + LEDC_CHOCOLATE => array('chocolate','chocolate:0.7','chocolate:0.5'), + LEDC_PERU => array('peru:0.95','peru:0.6','peru:0.5'), + LEDC_GOLDENROD => array('goldenrod','goldenrod:0.6','goldenrod:0.5'), + LEDC_KHAKI => array('khaki:0.7','khaki:0.4','khaki:0.3'), + LEDC_OLIVE => array('#808000','#808000:0.7','#808000:0.6'), + LEDC_LIMEGREEN => array('limegreen:0.9','limegreen:0.5','limegreen:0.4'), + LEDC_FORESTGREEN => array('forestgreen','forestgreen:0.7','forestgreen:0.5'), + LEDC_TEAL => array('teal','teal:0.7','teal:0.5'), + LEDC_STEELBLUE => array('steelblue','steelblue:0.65','steelblue:0.5'), + LEDC_NAVY => array('navy:1.3','navy:0.95','navy:0.8'),//14 + LEDC_INVERTGRAY => array('darkgray','lightgray:1.5','white')//15 + ), + + /* Each line of the character is encoded as a 4 bit value + 0 ____ + 1 ___x + 2 __x_ + 3 __xx + 4 _x__ + 5 _x_x + 6 _xx_ + 7 _xxx + 8 x___ + 9 x__x + 10 x_x_ + 11 x_xx + 12 xx__ + 13 xx_x + 14 xxx_ + 15 xxxx + */ + + $iLEDSpec = array( + 0 => array(6,9,11,15,13,9,6), + 1 => array(2,6,10,2,2,2,2), + 2 => array(6,9,1,2,4,8,15), + 3 => array(6,9,1,6,1,9,6), + 4 => array(1,3,5,9,15,1,1), + 5 => array(15,8,8,14,1,9,6), + 6 => array(6,8,8,14,9,9,6), + 7 => array(15,1,1,2,4,4,4), + 8 => array(6,9,9,6,9,9,6), + 9 => array(6,9,9,7,1,1,6), + '!' => array(4,4,4,4,4,0,4), + '?' => array(6,9,1,2,2,0,2), + '#' => array(0,9,15,9,15,9,0), + '@' => array(6,9,11,11,10,9,6), + '-' => array(0,0,0,15,0,0,0), + '_' => array(0,0,0,0,0,0,15), + '=' => array(0,0,15,0,15,0,0), + '+' => array(0,0,4,14,4,0,0), + '|' => array(4,4,4,4,4,4,4), //vertical line, used for simulate rus 'Ы' + ',' => array(0,0,0,0,0,12,4), + '.' => array(0,0,0,0,0,12,12), + ':' => array(12,12,0,0,0,12,12), + ';' => array(12,12,0,0,0,12,4), + '[' => array(3,2,2,2,2,2,3), + ']' => array(12,4,4,4,4,4,12), + '(' => array(1,2,2,2,2,2,1), + ')' => array(8,4,4,4,4,4,8), + '{' => array(3,2,2,6,2,2,3), + '}' => array(12,4,4,6,4,4,12), + '<' => array(1,2,4,8,4,2,1), + '>' => array(8,4,2,1,2,4,8), + '*' => array(9,6,15,6,9,0,0), + '"' => array(10,10,0,0,0,0,0), + '\'' => array(4,4,0,0,0,0,0), + '`' => array(4,2,0,0,0,0,0), + '~' => array(13,11,0,0,0,0,0), + '^' => array(4,10,0,0,0,0,0), + '\\' => array(8,8,4,6,2,1,1), + '/' => array(1,1,2,6,4,8,8), + '%' => array(1,9,2,6,4,9,8), + '&' => array(0,4,10,4,11,10,5), + '$' => array(2,7,8,6,1,14,4), + ' ' => array(0,0,0,0,0,0,0), + '•' => array(0,0,6,6,0,0,0), //149 + '°' => array(14,10,14,0,0,0,0), //176 + '†' => array(4,4,14,4,4,4,4), //134 + '‡' => array(4,4,14,4,14,4,4), //135 + '±' => array(0,4,14,4,0,14,0), //177 + '‰' => array(0,4,2,15,2,4,0), //137 show right arrow + '™' => array(0,2,4,15,4,2,0), //156 show left arrow + 'Ў' => array(0,0,8,8,0,0,0), //159 show small hi-stick - that need for simulate rus 'Ф' + "\t" => array(8,8,8,0,0,0,0), //show hi-stick - that need for simulate rus 'У' + "\r" => array(8,8,8,8,8,8,8), //vertical line - that need for simulate 'M', 'W' and rus 'М','Ш' ,'Щ' + "\n" => array(15,15,15,15,15,15,15), //fill up - that need for simulate rus 'Ж' + "Ґ" => array(10,5,10,5,10,5,10), //chess + "µ" => array(15,0,15,0,15,0,15), //4 horizontal lines + // latin + 'A' => array(6,9,9,15,9,9,9), + 'B' => array(14,9,9,14,9,9,14), + 'C' => array(6,9,8,8,8,9,6), + 'D' => array(14,9,9,9,9,9,14), + 'E' => array(15,8,8,14,8,8,15), + 'F' => array(15,8,8,14,8,8,8), + 'G' => array(6,9,8,8,11,9,6), + 'H' => array(9,9,9,15,9,9,9), + 'I' => array(14,4,4,4,4,4,14), + 'J' => array(15,1,1,1,1,9,6), + 'K' => array(8,9,10,12,12,10,9), + 'L' => array(8,8,8,8,8,8,15), + 'M' => array(8,13,10,8,8,8,8),// need to add \r + 'N' => array(9,9,13,11,9,9,9), + 'O' => array(6,9,9,9,9,9,6), + 'P' => array(14,9,9,14,8,8,8), + 'Q' => array(6,9,9,9,13,11,6), + 'R' => array(14,9,9,14,12,10,9), + 'S' => array(6,9,8,6,1,9,6), + 'T' => array(14,4,4,4,4,4,4), + 'U' => array(9,9,9,9,9,9,6), + 'V' => array(0,0,0,10,10,10,4), + 'W' => array(8,8,8,8,10,13,8),// need to add \r + 'X' => array(9,9,6,6,6,9,9), + 'Y' => array(10,10,10,10,4,4,4), + 'Z' => array(15,1,2,6,4,8,15), + // russian utf-8 + 'А' => array(6,9,9,15,9,9,9), + 'Б' => array(14,8,8,14,9,9,14), + 'В' => array(14,9,9,14,9,9,14), + 'Г' => array(15,8,8,8,8,8,8), + 'Д' => array(14,9,9,9,9,9,14), + 'Е' => array(15,8,8,14,8,8,15), + 'Ё' => array(6,15,8,14,8,8,15), + //Ж is combine: >\n< + 'З' => array(6,9,1,2,1,9,6), + 'И' => array(9,9,9,11,13,9,9), + 'Й' => array(13,9,9,11,13,9,9), + 'К' => array(9,10,12,10,9,9,9), + 'Л' => array(7,9,9,9,9,9,9), + 'М' => array(8,13,10,8,8,8,8),// need to add \r + 'Н' => array(9,9,9,15,9,9,9), + 'О' => array(6,9,9,9,9,9,6), + 'П' => array(15,9,9,9,9,9,9), + 'Р' => array(14,9,9,14,8,8,8), + 'С' => array(6,9,8,8,8,9,6), + 'Т' => array(14,4,4,4,4,4,4), + 'У' => array(9,9,9,7,1,9,6), + 'Ф' => array(2,7,10,10,7,2,2),// need to add Ў + 'Х' => array(9,9,6,6,6,9,9), + 'Ц' => array(10,10,10,10,10,15,1), + 'Ч' => array(9,9,9,7,1,1,1), + 'Ш' => array(10,10,10,10,10,10,15),// \r + 'Щ' => array(10,10,10,10,10,15,0),// need to add \r + 'Ъ' => array(12,4,4,6,5,5,6), + 'Ы' => array(8,8,8,14,9,9,14),// need to add | + 'Ь' => array(8,8,8,14,9,9,14), + 'Э' => array(6,9,1,7,1,9,6), + 'Ю' => array(2,2,2,3,2,2,2),// need to add O + 'Я' => array(7,9,9,7,3,5,9) + ), + + $iSuperSampling = 3, $iMarg = 1, $iRad = 4; + + function __construct($aRadius = 2, $aMargin= 0.6) { + $this->iRad = $aRadius; + $this->iMarg = $aMargin; + } + + function SetSupersampling($aSuperSampling = 2) { + $this->iSuperSampling = $aSuperSampling; + } + + function _GetLED($aLedIdx, $aColor = 0) { + $width= $this->iLED_X*$this->iRad*2 + ($this->iLED_X+1)*$this->iMarg + $this->iRad ; + $height= $this->iLED_Y*$this->iRad*2 + ($this->iLED_Y)*$this->iMarg + $this->iRad * 2; + + // Adjust radious for supersampling + $rad = $this->iRad * $this->iSuperSampling; + + // Margin in between "Led" dots + $marg = $this->iMarg * $this->iSuperSampling; + + $swidth = $width*$this->iSuperSampling; + $sheight = $height*$this->iSuperSampling; + + $simg = new RotImage($swidth, $sheight, 0, DEFAULT_GFORMAT, false); + $simg->SetColor($this->iColorSchema[$aColor][2]); + $simg->FilledRectangle(0, 0, $swidth-1, $sheight-1); + + if( array_key_exists($aLedIdx, $this->iLEDSpec) ) { + $d = $this->iLEDSpec[$aLedIdx]; + } + else { + $d = array(0,0,0,0,0,0,0); + } + + for($r = 0; $r < 7; ++$r) { + $dr = $d[$r]; + for($c = 0; $c < 4; ++$c) { + if( ($dr & pow(2,3-$c)) !== 0 ) { + $color = $this->iColorSchema[$aColor][0]; + } + else { + $color = $this->iColorSchema[$aColor][1]; + } + + $x = 2*$rad*$c+$rad + ($c+1)*$marg + $rad ; + $y = 2*$rad*$r+$rad + ($r+1)*$marg + $rad ; + + $simg->SetColor($color); + $simg->FilledCircle($x,$y,$rad); + } + } + + $img = new Image($width, $height, DEFAULT_GFORMAT, false); + $img->Copy($simg->img, 0, 0, 0, 0, $width, $height, $swidth, $sheight); + $simg->Destroy(); + unset($simg); + return $img; + } + + + function Stroke($aValStr, $aColor = 0, $aFileName = '') { + $this->StrokeNumber($aValStr, $aColor, $aFileName); + } + + + function StrokeNumber($aValStr, $aColor = 0, $aFileName = '') { + if( $aColor < 0 || $aColor >= sizeof($this->iColorSchema) ) { + $aColor = 0; + } + + if(($n = mb_strlen($aValStr,'utf8')) == 0) { + $aValStr = ' '; + $n = 1; + } + + for($i = 0; $i < $n; ++$i) { + $d = mb_substr($aValStr, $i, 1, 'utf8'); + if( ctype_digit($d) ) { + $d = (int)$d; + } + else { + $d = strtoupper($d); + } + $digit_img[$i] = $this->_GetLED($d, $aColor); + } + + $w = imagesx($digit_img[0]->img); + $h = imagesy($digit_img[0]->img); + + $number_img = new Image($w*$n, $h, DEFAULT_GFORMAT, false); + + for($i = 0; $i < $n; ++$i) { + $number_img->Copy($digit_img[$i]->img, $i*$w, 0, 0, 0, $w, $h, $w, $h); + } + + if( $aFileName != '' ) { + $number_img->Stream($aFileName); + } else { + $number_img->Headers(); + $number_img->Stream(); + } + } +} +?> diff --git a/gosa-core/include/jpgraph/jpgraph_legend.inc.php b/gosa-core/include/jpgraph/jpgraph_legend.inc.php new file mode 100644 index 000000000..c1099c472 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_legend.inc.php @@ -0,0 +1,484 @@ +hide=$aHide; + } + + function SetHColMargin($aXMarg) { + $this->xmargin = $aXMarg; + } + + function SetVColMargin($aSpacing) { + $this->ylinespacing = $aSpacing ; + } + + function SetLeftMargin($aXMarg) { + $this->xlmargin = $aXMarg; + } + + // Synonym + function SetLineSpacing($aSpacing) { + $this->ylinespacing = $aSpacing ; + } + + function SetShadow($aShow='gray',$aWidth=4) { + if( is_string($aShow) ) { + $this->shadow_color = $aShow; + $this->shadow=true; + } + else { + $this->shadow = $aShow; + } + $this->shadow_width = $aWidth; + } + + function SetMarkAbsSize($aSize) { + $this->mark_abs_vsize = $aSize ; + $this->mark_abs_hsize = $aSize ; + } + + function SetMarkAbsVSize($aSize) { + $this->mark_abs_vsize = $aSize ; + } + + function SetMarkAbsHSize($aSize) { + $this->mark_abs_hsize = $aSize ; + } + + function SetLineWeight($aWeight) { + $this->weight = $aWeight; + } + + function SetFrameWeight($aWeight) { + $this->frameweight = $aWeight; + } + + function SetLayout($aDirection=LEGEND_VERT) { + $this->layout_n = $aDirection==LEGEND_VERT ? 1 : 99 ; + } + + function SetColumns($aCols) { + $this->layout_n = $aCols ; + } + + function SetReverse($f=true) { + $this->reverse = $f ; + } + + // Set color on frame around box + function SetColor($aFontColor,$aColor='black') { + $this->font_color=$aFontColor; + $this->color=$aColor; + } + + function SetFont($aFamily,$aStyle=FS_NORMAL,$aSize=10) { + $this->font_family = $aFamily; + $this->font_style = $aStyle; + $this->font_size = $aSize; + } + + function SetPos($aX,$aY,$aHAlign='right',$aVAlign='top') { + $this->Pos($aX,$aY,$aHAlign,$aVAlign); + } + + function SetAbsPos($aX,$aY,$aHAlign='right',$aVAlign='top') { + $this->xabspos=$aX; + $this->yabspos=$aY; + $this->halign=$aHAlign; + $this->valign=$aVAlign; + } + + function Pos($aX,$aY,$aHAlign='right',$aVAlign='top') { + if( !($aX<1 && $aY<1) ) { + JpGraphError::RaiseL(25120);//(" Position for legend must be given as percentage in range 0-1"); + } + $this->xpos=$aX; + $this->ypos=$aY; + $this->halign=$aHAlign; + $this->valign=$aVAlign; + } + + function SetFillColor($aColor) { + $this->fill_color=$aColor; + } + + function Clear() { + $this->txtcol = array(); + } + + function Add($aTxt,$aColor,$aPlotmark='',$aLinestyle=0,$csimtarget='',$csimalt='',$csimwintarget='') { + $this->txtcol[]=array($aTxt,$aColor,$aPlotmark,$aLinestyle,$csimtarget,$csimalt,$csimwintarget); + } + + function GetCSIMAreas() { + return $this->csimareas; + } + + function SetBackgroundGradient($aFrom='navy',$aTo='silver',$aGradType=2) { + $this->bkg_gradtype=$aGradType; + $this->bkg_gradfrom = $aFrom; + $this->bkg_gradto = $aTo; + } + + function Stroke($aImg) { + // Constant + $fillBoxFrameWeight=1; + + if( $this->hide ) return; + + $aImg->SetFont($this->font_family,$this->font_style,$this->font_size); + + if( $this->reverse ) { + $this->txtcol = array_reverse($this->txtcol); + } + + $n=count($this->txtcol); + if( $n == 0 ) return; + + // Find out the max width and height of each column to be able + // to size the legend box. + $numcolumns = ($n > $this->layout_n ? $this->layout_n : $n); + for( $i=0; $i < $numcolumns; ++$i ) { + $colwidth[$i] = $aImg->GetTextWidth($this->txtcol[$i][0]) + + 2*$this->xmargin + 2*$this->mark_abs_hsize; + $colheight[$i] = 0; + + } + + // Find our maximum height in each row + $rows = 0 ; $rowheight[0] = 0; + for( $i=0; $i < $n; ++$i ) { + $h = max($this->mark_abs_vsize,$aImg->GetTextHeight($this->txtcol[$i][0]))+$this->ylinespacing; + + // Makes sure we always have a minimum of 1/4 (1/2 on each side) of the mark as space + // between two vertical legend entries + //$h = round(max($h,$this->mark_abs_vsize+$this->ymargin)); + //echo "Textheight #$i: tetxheight=".$aImg->GetTextHeight($this->txtcol[$i][0]).', '; + //echo "h=$h ({$this->mark_abs_vsize},{$this->ymargin})
    "; + if( $i % $numcolumns == 0 ) { + $rows++; + $rowheight[$rows-1] = 0; + } + $rowheight[$rows-1] = max($rowheight[$rows-1],$h); + } + + $abs_height = 0; + for( $i=0; $i < $rows; ++$i ) { + $abs_height += $rowheight[$i] ; + } + + // Make sure that the height is at least as high as mark size + ymargin + $abs_height = max($abs_height,$this->mark_abs_vsize); + $abs_height += $this->ybottom_margin; + + // Find out the maximum width in each column + for( $i=$numcolumns; $i < $n; ++$i ) { + $colwidth[$i % $numcolumns] = max( + $aImg->GetTextWidth($this->txtcol[$i][0])+2*$this->xmargin+2*$this->mark_abs_hsize, + $colwidth[$i % $numcolumns]); + } + + // Get the total width + $mtw = 0; + for( $i=0; $i < $numcolumns; ++$i ) { + $mtw += $colwidth[$i] ; + } + + // remove the last rows interpace margin (since there is no next row) + $abs_height -= $this->ylinespacing; + + + // Find out maximum width we need for legend box + $abs_width = $mtw+$this->xlmargin+($numcolumns-1)*$this->mark_abs_hsize; + + if( $this->xabspos === -1 && $this->yabspos === -1 ) { + $this->xabspos = $this->xpos*$aImg->width ; + $this->yabspos = $this->ypos*$aImg->height ; + } + + // Positioning of the legend box + if( $this->halign == 'left' ) { + $xp = $this->xabspos; + } + elseif( $this->halign == 'center' ) { + $xp = $this->xabspos - $abs_width/2; + } + else { + $xp = $aImg->width - $this->xabspos - $abs_width; + } + + $yp=$this->yabspos; + if( $this->valign == 'center' ) { + $yp-=$abs_height/2; + } + elseif( $this->valign == 'bottom' ) { + $yp-=$abs_height; + } + + // Stroke legend box + $aImg->SetColor($this->color); + $aImg->SetLineWeight($this->frameweight); + $aImg->SetLineStyle('solid'); + + if( $this->shadow ) { + $aImg->ShadowRectangle($xp,$yp, + $xp+$abs_width+$this->shadow_width+2, + $yp+$abs_height+$this->shadow_width+2, + $this->fill_color,$this->shadow_width+2,$this->shadow_color); + } + else { + $aImg->SetColor($this->fill_color); + $aImg->FilledRectangle($xp,$yp,$xp+$abs_width,$yp+$abs_height); + $aImg->SetColor($this->color); + $aImg->Rectangle($xp,$yp,$xp+$abs_width,$yp+$abs_height); + } + + if( $this->bkg_gradtype >= 0 ) { + $grad = new Gradient($aImg); + $grad->FilledRectangle($xp+1, $yp+1, + $xp+$abs_width-3, $yp+$abs_height-3, + $this->bkg_gradfrom, $this->bkg_gradto, + $this->bkg_gradtype); + } + + // x1,y1 is the position for the legend marker + text + // The vertical position is the baseline position for the text + // and every marker is adjusted acording to that. + + // For multiline texts this get more complicated. + + $x1 = $xp + $this->xlmargin; + $y1 = $yp + $rowheight[0] - $this->ylinespacing + 2 ; // The ymargin is included in rowheight + + // Now, y1 is the bottom vertical position of the first legend, i.e if + // the legend has multiple lines it is the bottom line. + + $grad = new Gradient($aImg); + $patternFactory = null; + + // Now stroke each legend in turn + // Each plot has added the following information to the legend + // p[0] = Legend text + // p[1] = Color, + // p[2] = For markers a reference to the PlotMark object + // p[3] = For lines the line style, for gradient the negative gradient style + // p[4] = CSIM target + // p[5] = CSIM Alt text + $i = 1 ; $row = 0; + foreach($this->txtcol as $p) { + + // STROKE DEBUG BOX + if( _JPG_DEBUG ) { + $aImg->SetLineWeight(1); + $aImg->SetColor('red'); + $aImg->SetLineStyle('solid'); + $aImg->Rectangle($x1,$y1,$xp+$abs_width-1,$y1-$rowheight[$row]); + } + + $aImg->SetLineWeight($this->weight); + $x1 = round($x1)+1; // We add one to not collide with the border + $y1=round($y1); + + // This is the center offset up from the baseline which is + // considered the "center" of the marks. This gets slightly complicated since + // we need to consider if the text is a multiline paragraph or if it is only + // a single line. The reason is that for single line the y1 corresponds to the baseline + // and that is fine. However for a multiline paragraph there is no single baseline + // and in that case the y1 corresponds to the lowest y for the bounding box. In that + // case we center the mark in the middle of the paragraph + if( !preg_match('/\n/',$p[0]) ) { + // Single line + $marky = ceil($y1-$this->mark_abs_vsize/2)-1; + } else { + // Paragraph + $marky = $y1 - $aImg->GetTextHeight($p[0])/2; + + // echo "y1=$y1, p[o]={$p[0]}, marky=$marky
    "; + } + + //echo "
    Mark #$i: marky=$marky
    "; + + $x1 += $this->mark_abs_hsize; + + if ( !empty($p[2]) && $p[2]->GetType() > -1 ) { + + + // Make a plot mark legend. This is constructed with a mark which + // is run through with a line + + // First construct a bit of the line that looks exactly like the + // line in the plot + $aImg->SetColor($p[1]); + if( is_string($p[3]) || $p[3]>0 ) { + $aImg->SetLineStyle($p[3]); + $aImg->StyleLine($x1-$this->mark_abs_hsize,$marky,$x1+$this->mark_abs_hsize,$marky); + } + + // Stroke a mark with the standard size + // (As long as it is not an image mark ) + if( $p[2]->GetType() != MARK_IMG ) { + + // Clear any user callbacks since we ont want them called for + // the legend marks + $p[2]->iFormatCallback = ''; + $p[2]->iFormatCallback2 = ''; + + // Since size for circles is specified as the radius + // this means that we must half the size to make the total + // width behave as the other marks + if( $p[2]->GetType() == MARK_FILLEDCIRCLE || $p[2]->GetType() == MARK_CIRCLE ) { + $p[2]->SetSize(min($this->mark_abs_vsize,$this->mark_abs_hsize)/2); + $p[2]->Stroke($aImg,$x1,$marky); + } + else { + $p[2]->SetSize(min($this->mark_abs_vsize,$this->mark_abs_hsize)); + $p[2]->Stroke($aImg,$x1,$marky); + } + } + } + elseif ( !empty($p[2]) && (is_string($p[3]) || $p[3]>0 ) ) { + // Draw a styled line + $aImg->SetColor($p[1]); + $aImg->SetLineStyle($p[3]); + $aImg->StyleLine($x1-$this->mark_abs_hsize,$marky,$x1+$this->mark_abs_hsize,$marky); + $aImg->StyleLine($x1-$this->mark_abs_hsize,$marky+1,$x1+$this->mark_abs_hsize,$marky+1); + } + else { + // Draw a colored box + $color = $p[1] ; + + // We make boxes slightly larger to better show + $boxsize = max($this->mark_abs_vsize,$this->mark_abs_hsize) + 2 ; + + $ym = $marky-ceil($boxsize/2) ; // Marker y-coordinate + + // We either need to plot a gradient or a + // pattern. To differentiate we use a kludge. + // Patterns have a p[3] value of < -100 + if( $p[3] < -100 ) { + // p[1][0] == iPattern, p[1][1] == iPatternColor, p[1][2] == iPatternDensity + if( $patternFactory == null ) { + $patternFactory = new RectPatternFactory(); + } + $prect = $patternFactory->Create($p[1][0],$p[1][1],1); + $prect->SetBackground($p[1][3]); + $prect->SetDensity($p[1][2]+1); + $prect->SetPos(new Rectangle($x1,$ym,$boxsize,$boxsize)); + $prect->Stroke($aImg); + $prect=null; + } + else { + if( is_array($color) && count($color)==2 ) { + // The client want a gradient color + $grad->FilledRectangle($x1-$boxsize/2,$ym, + $x1+$boxsize/2,$ym+$boxsize, + $color[0],$color[1],-$p[3]); + } + else { + $aImg->SetColor($p[1]); + $aImg->FilledRectangle($x1-$boxsize/2,$ym, + $x1+$boxsize/2,$ym+$boxsize); + } + $aImg->SetColor($this->color); + $aImg->SetLineWeight($fillBoxFrameWeight); + $aImg->Rectangle($x1-$boxsize/2,$ym, + $x1+$boxsize/2,$ym+$boxsize); + } + } + $aImg->SetColor($this->font_color); + $aImg->SetFont($this->font_family,$this->font_style,$this->font_size); + $aImg->SetTextAlign('left','baseline'); + + $debug=false; + $aImg->StrokeText($x1+$this->mark_abs_hsize+$this->xmargin,$y1,$p[0], + 0,'left',$debug); + + // Add CSIM for Legend if defined + if( !empty($p[4]) ) { + + $xs = $x1 - $this->mark_abs_hsize ; + $ys = $y1 + 1 ; + $xe = $x1 + $aImg->GetTextWidth($p[0]) + $this->mark_abs_hsize + $this->xmargin ; + $ye = $y1-$rowheight[$row]+1; + $coords = "$xs,$ys,$xe,$y1,$xe,$ye,$xs,$ye"; + if( ! empty($p[4]) ) { + $this->csimareas .= "csimareas .= " target=\"".$p[6]."\""; + } + + if( !empty($p[5]) ) { + $tmp=sprintf($p[5],$p[0]); + $this->csimareas .= " title=\"$tmp\" alt=\"$tmp\" "; + } + $this->csimareas .= " />\n"; + } + } + + if( $i >= $this->layout_n ) { + $x1 = $xp+$this->xlmargin; + $row++; + if( !empty($rowheight[$row]) ) + $y1 += $rowheight[$row]; + $i = 1; + } + else { + $x1 += $colwidth[($i-1) % $numcolumns] ; + ++$i; + } + } + } +} // Class + +?> diff --git a/gosa-core/include/jpgraph/jpgraph_line.php b/gosa-core/include/jpgraph/jpgraph_line.php new file mode 100644 index 000000000..3151fb4fc --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_line.php @@ -0,0 +1,682 @@ +mark = new PlotMark() ; + $this->color = ColorFactory::getColor(); + $this->fill_color = $this->color; + } + //--------------- + // PUBLIC METHODS + + function SetFilled($aFlg=true) { + $this->filled = $aFlg; + } + + function SetBarCenter($aFlag=true) { + $this->barcenter=$aFlag; + } + + function SetStyle($aStyle) { + $this->line_style=$aStyle; + } + + function SetStepStyle($aFlag=true) { + $this->step_style = $aFlag; + } + + function SetColor($aColor) { + parent::SetColor($aColor); + } + + function SetFillFromYMin($f=true) { + $this->fillFromMin = $f ; + } + + function SetFillFromYMax($f=true) { + $this->fillFromMax = $f ; + } + + function SetFillColor($aColor,$aFilled=true) { + //$this->color = $aColor; + $this->fill_color=$aColor; + $this->filled=$aFilled; + } + + function SetFillGradient($aFromColor,$aToColor,$aNumColors=100,$aFilled=true) { + $this->fillgrad_fromcolor = $aFromColor; + $this->fillgrad_tocolor = $aToColor; + $this->fillgrad_numcolors = $aNumColors; + $this->filled = $aFilled; + $this->fillgrad = true; + } + + function Legend($graph) { + if( $this->legend!="" ) { + if( $this->filled && !$this->fillgrad ) { + $graph->legend->Add($this->legend, + $this->fill_color,$this->mark,0, + $this->legendcsimtarget,$this->legendcsimalt,$this->legendcsimwintarget); + } + elseif( $this->fillgrad ) { + $color=array($this->fillgrad_fromcolor,$this->fillgrad_tocolor); + // In order to differentiate between gradients and cooors specified as an RGB triple + $graph->legend->Add($this->legend,$color,"",-2 /* -GRAD_HOR */, + $this->legendcsimtarget,$this->legendcsimalt,$this->legendcsimwintarget); + } else { + $graph->legend->Add($this->legend, + $this->color,$this->mark,$this->line_style, + $this->legendcsimtarget,$this->legendcsimalt,$this->legendcsimwintarget); + } + } + } + + function AddArea($aMin=0,$aMax=0,$aFilled=LP_AREA_NOT_FILLED,$aColor="gray9",$aBorder=LP_AREA_BORDER) { + if($aMin > $aMax) { + // swap + $tmp = $aMin; + $aMin = $aMax; + $aMax = $tmp; + } + $this->filledAreas[] = array($aMin,$aMax,$aColor,$aFilled,$aBorder); + } + + // Gets called before any axis are stroked + function PreStrokeAdjust($graph) { + + // If another plot type have already adjusted the + // offset we don't touch it. + // (We check for empty in case the scale is a log scale + // and hence doesn't contain any xlabel_offset) + if( empty($graph->xaxis->scale->ticks->xlabel_offset) || $graph->xaxis->scale->ticks->xlabel_offset == 0 ) { + if( $this->center ) { + ++$this->numpoints; + $a=0.5; $b=0.5; + } else { + $a=0; $b=0; + } + $graph->xaxis->scale->ticks->SetXLabelOffset($a); + $graph->SetTextScaleOff($b); + //$graph->xaxis->scale->ticks->SupressMinorTickMarks(); + } + } + + function SetFastStroke($aFlg=true) { + $this->iFastStroke = $aFlg; + } + + function FastStroke($img,$xscale,$yscale,$aStartPoint=0,$exist_x=true) { + // An optimized stroke for many data points with no extra + // features but 60% faster. You can't have values or line styles, or null + // values in plots. + $numpoints=count($this->coords[0]); + if( $this->barcenter ) { + $textadj = 0.5-$xscale->text_scale_off; + } + else { + $textadj = 0; + } + + $img->SetColor($this->color); + $img->SetLineWeight($this->weight); + $pnts=$aStartPoint; + while( $pnts < $numpoints ) { + if( $exist_x ) { + $x=$this->coords[1][$pnts]; + } + else { + $x=$pnts+$textadj; + } + $xt = $xscale->Translate($x); + $y=$this->coords[0][$pnts]; + $yt = $yscale->Translate($y); + if( is_numeric($y) ) { + $cord[] = $xt; + $cord[] = $yt; + } + elseif( $y == '-' && $pnts > 0 ) { + // Just ignore + } + else { + JpGraphError::RaiseL(10002);//('Plot too complicated for fast line Stroke. Use standard Stroke()'); + } + ++$pnts; + } // WHILE + + $img->Polygon($cord,false,true); + } + + function Stroke($img,$xscale,$yscale) { + $idx=0; + $numpoints=count($this->coords[0]); + if( isset($this->coords[1]) ) { + if( count($this->coords[1])!=$numpoints ) { + JpGraphError::RaiseL(2003,count($this->coords[1]),$numpoints); + //("Number of X and Y points are not equal. Number of X-points:".count($this->coords[1])." Number of Y-points:$numpoints"); + } + else { + $exist_x = true; + } + } + else { + $exist_x = false; + } + + if( $this->barcenter ) { + $textadj = 0.5-$xscale->text_scale_off; + } + else { + $textadj = 0; + } + + // Find the first numeric data point + $startpoint=0; + while( $startpoint < $numpoints && !is_numeric($this->coords[0][$startpoint]) ) { + ++$startpoint; + } + + // Bail out if no data points + if( $startpoint == $numpoints ) return; + + if( $this->iFastStroke ) { + $this->FastStroke($img,$xscale,$yscale,$startpoint,$exist_x); + return; + } + + if( $exist_x ) { + $xs=$this->coords[1][$startpoint]; + } + else { + $xs= $textadj+$startpoint; + } + + $img->SetStartPoint($xscale->Translate($xs), + $yscale->Translate($this->coords[0][$startpoint])); + + if( $this->filled ) { + if( $this->fillFromMax ) { + //$max = $yscale->GetMaxVal(); + $cord[$idx++] = $xscale->Translate($xs); + $cord[$idx++] = $yscale->scale_abs[1]; + } + else { + $min = $yscale->GetMinVal(); + if( $min > 0 || $this->fillFromMin ) { + $fillmin = $yscale->scale_abs[0];//Translate($min); + } + else { + $fillmin = $yscale->Translate(0); + } + + $cord[$idx++] = $xscale->Translate($xs); + $cord[$idx++] = $fillmin; + } + } + $xt = $xscale->Translate($xs); + $yt = $yscale->Translate($this->coords[0][$startpoint]); + $cord[$idx++] = $xt; + $cord[$idx++] = $yt; + $yt_old = $yt; + $xt_old = $xt; + $y_old = $this->coords[0][$startpoint]; + + $this->value->Stroke($img,$this->coords[0][$startpoint],$xt,$yt); + + $img->SetColor($this->color); + $img->SetLineWeight($this->weight); + $img->SetLineStyle($this->line_style); + $pnts=$startpoint+1; + $firstnonumeric = false; + + + while( $pnts < $numpoints ) { + + if( $exist_x ) { + $x=$this->coords[1][$pnts]; + } + else { + $x=$pnts+$textadj; + } + $xt = $xscale->Translate($x); + $yt = $yscale->Translate($this->coords[0][$pnts]); + + $y=$this->coords[0][$pnts]; + if( $this->step_style ) { + // To handle null values within step style we need to record the + // first non numeric value so we know from where to start if the + // non value is '-'. + if( is_numeric($y) ) { + $firstnonumeric = false; + if( is_numeric($y_old) ) { + $img->StyleLine($xt_old,$yt_old,$xt,$yt_old); + $img->StyleLine($xt,$yt_old,$xt,$yt); + } + elseif( $y_old == '-' ) { + $img->StyleLine($xt_first,$yt_first,$xt,$yt_first); + $img->StyleLine($xt,$yt_first,$xt,$yt); + } + else { + $yt_old = $yt; + $xt_old = $xt; + } + $cord[$idx++] = $xt; + $cord[$idx++] = $yt_old; + $cord[$idx++] = $xt; + $cord[$idx++] = $yt; + } + elseif( $firstnonumeric==false ) { + $firstnonumeric = true; + $yt_first = $yt_old; + $xt_first = $xt_old; + } + } + else { + $tmp1=$y; + $prev=$this->coords[0][$pnts-1]; + if( $tmp1==='' || $tmp1===NULL || $tmp1==='X' ) $tmp1 = 'x'; + if( $prev==='' || $prev===null || $prev==='X' ) $prev = 'x'; + + if( is_numeric($y) || (is_string($y) && $y != '-') ) { + if( is_numeric($y) && (is_numeric($prev) || $prev === '-' ) ) { + $img->StyleLineTo($xt,$yt); + } + else { + $img->SetStartPoint($xt,$yt); + } + } + if( $this->filled && $tmp1 !== '-' ) { + if( $tmp1 === 'x' ) { + $cord[$idx++] = $cord[$idx-3]; + $cord[$idx++] = $fillmin; + } + elseif( $prev === 'x' ) { + $cord[$idx++] = $xt; + $cord[$idx++] = $fillmin; + $cord[$idx++] = $xt; + $cord[$idx++] = $yt; + } + else { + $cord[$idx++] = $xt; + $cord[$idx++] = $yt; + } + } + else { + if( is_numeric($tmp1) && (is_numeric($prev) || $prev === '-' ) ) { + $cord[$idx++] = $xt; + $cord[$idx++] = $yt; + } + } + } + $yt_old = $yt; + $xt_old = $xt; + $y_old = $y; + + $this->StrokeDataValue($img,$this->coords[0][$pnts],$xt,$yt); + + ++$pnts; + } + + if( $this->filled ) { + $cord[$idx++] = $xt; + if( $this->fillFromMax ) { + $cord[$idx++] = $yscale->scale_abs[1]; + } + else { + if( $min > 0 || $this->fillFromMin ) { + $cord[$idx++] = $yscale->Translate($min); + } + else { + $cord[$idx++] = $yscale->Translate(0); + } + } + if( $this->fillgrad ) { + $img->SetLineWeight(1); + $grad = new Gradient($img); + $grad->SetNumColors($this->fillgrad_numcolors); + $grad->FilledFlatPolygon($cord,$this->fillgrad_fromcolor,$this->fillgrad_tocolor); + $img->SetLineWeight($this->weight); + } + else { + $img->SetColor($this->fill_color); + $img->FilledPolygon($cord); + } + if( $this->weight > 0 ) { + $img->SetLineWeight($this->weight); + $img->SetColor($this->color); + // Remove first and last coordinate before drawing the line + // sine we otherwise get the vertical start and end lines which + // doesn't look appropriate + $img->Polygon(array_slice($cord,2,count($cord)-4)); + } + } + + if(!empty($this->filledAreas)) { + + $minY = $yscale->Translate($yscale->GetMinVal()); + $factor = ($this->step_style ? 4 : 2); + + for($i = 0; $i < sizeof($this->filledAreas); ++$i) { + // go through all filled area elements ordered by insertion + // fill polygon array + $areaCoords[] = $cord[$this->filledAreas[$i][0] * $factor]; + $areaCoords[] = $minY; + + $areaCoords = + array_merge($areaCoords, + array_slice($cord, + $this->filledAreas[$i][0] * $factor, + ($this->filledAreas[$i][1] - $this->filledAreas[$i][0] + ($this->step_style ? 0 : 1)) * $factor)); + $areaCoords[] = $areaCoords[sizeof($areaCoords)-2]; // last x + $areaCoords[] = $minY; // last y + + if($this->filledAreas[$i][3]) { + $img->SetColor($this->filledAreas[$i][2]); + $img->FilledPolygon($areaCoords); + $img->SetColor($this->color); + } + // Check if we should draw the frame. + // If not we still re-draw the line since it might have been + // partially overwritten by the filled area and it doesn't look + // very good. + if( $this->filledAreas[$i][4] ) { + $img->Polygon($areaCoords); + } + else { + $img->Polygon($cord); + } + + $areaCoords = array(); + } + } + + if( $this->mark->type == -1 || $this->mark->show == false ) + return; + + for( $pnts=0; $pnts<$numpoints; ++$pnts) { + + if( $exist_x ) { + $x=$this->coords[1][$pnts]; + } + else { + $x=$pnts+$textadj; + } + $xt = $xscale->Translate($x); + $yt = $yscale->Translate($this->coords[0][$pnts]); + + if( is_numeric($this->coords[0][$pnts]) ) { + if( !empty($this->csimtargets[$pnts]) ) { + if( !empty($this->csimwintargets[$pnts]) ) { + $this->mark->SetCSIMTarget($this->csimtargets[$pnts],$this->csimwintargets[$pnts]); + } + else { + $this->mark->SetCSIMTarget($this->csimtargets[$pnts]); + } + $this->mark->SetCSIMAlt($this->csimalts[$pnts]); + } + if( $exist_x ) { + $x=$this->coords[1][$pnts]; + } + else { + $x=$pnts; + } + $this->mark->SetCSIMAltVal($this->coords[0][$pnts],$x); + $this->mark->Stroke($img,$xt,$yt); + $this->csimareas .= $this->mark->GetCSIMAreas(); + } + } + } +} // Class + + +//=================================================== +// CLASS AccLinePlot +// Description: +//=================================================== +class AccLinePlot extends Plot { + protected $plots=null,$nbrplots=0; + private $iStartEndZero=true; + //--------------- + // CONSTRUCTOR + function __construct($plots) { + $this->plots = $plots; + $this->nbrplots = count($plots); + $this->numpoints = $plots[0]->numpoints; + + // Verify that all plots have the same number of data points + for( $i=1; $i < $this->nbrplots; ++$i ) { + if( $plots[$i]->numpoints != $this->numpoints ) { + JpGraphError::RaiseL(10003);//('Each plot in an accumulated lineplot must have the same number of data points',0) + } + } + + for($i=0; $i < $this->nbrplots; ++$i ) { + $this->LineInterpolate($this->plots[$i]->coords[0]); + } + } + + //--------------- + // PUBLIC METHODS + function Legend($graph) { + foreach( $this->plots as $p ) { + $p->DoLegend($graph); + } + } + + function Max() { + list($xmax) = $this->plots[0]->Max(); + $nmax=0; + $n = count($this->plots); + for($i=0; $i < $n; ++$i) { + $nc = count($this->plots[$i]->coords[0]); + $nmax = max($nmax,$nc); + list($x) = $this->plots[$i]->Max(); + $xmax = Max($xmax,$x); + } + for( $i = 0; $i < $nmax; $i++ ) { + // Get y-value for line $i by adding the + // individual bars from all the plots added. + // It would be wrong to just add the + // individual plots max y-value since that + // would in most cases give to large y-value. + $y=$this->plots[0]->coords[0][$i]; + for( $j = 1; $j < $this->nbrplots; $j++ ) { + $y += $this->plots[ $j ]->coords[0][$i]; + } + $ymax[$i] = $y; + } + $ymax = max($ymax); + return array($xmax,$ymax); + } + + function Min() { + $nmax=0; + list($xmin,$ysetmin) = $this->plots[0]->Min(); + $n = count($this->plots); + for($i=0; $i < $n; ++$i) { + $nc = count($this->plots[$i]->coords[0]); + $nmax = max($nmax,$nc); + list($x,$y) = $this->plots[$i]->Min(); + $xmin = Min($xmin,$x); + $ysetmin = Min($y,$ysetmin); + } + for( $i = 0; $i < $nmax; $i++ ) { + // Get y-value for line $i by adding the + // individual bars from all the plots added. + // It would be wrong to just add the + // individual plots min y-value since that + // would in most cases give to small y-value. + $y=$this->plots[0]->coords[0][$i]; + for( $j = 1; $j < $this->nbrplots; $j++ ) { + $y += $this->plots[ $j ]->coords[0][$i]; + } + $ymin[$i] = $y; + } + $ymin = Min($ysetmin,Min($ymin)); + return array($xmin,$ymin); + } + + // Gets called before any axis are stroked + function PreStrokeAdjust($graph) { + + // If another plot type have already adjusted the + // offset we don't touch it. + // (We check for empty in case the scale is a log scale + // and hence doesn't contain any xlabel_offset) + + if( empty($graph->xaxis->scale->ticks->xlabel_offset) || + $graph->xaxis->scale->ticks->xlabel_offset == 0 ) { + if( $this->center ) { + ++$this->numpoints; + $a=0.5; $b=0.5; + } else { + $a=0; $b=0; + } + $graph->xaxis->scale->ticks->SetXLabelOffset($a); + $graph->SetTextScaleOff($b); + $graph->xaxis->scale->ticks->SupressMinorTickMarks(); + } + + } + + function SetInterpolateMode($aIntMode) { + $this->iStartEndZero=$aIntMode; + } + + // Replace all '-' with an interpolated value. We use straightforward + // linear interpolation. If the data starts with one or several '-' they + // will be replaced by the the first valid data point + function LineInterpolate(&$aData) { + + $n=count($aData); + $i=0; + + // If first point is undefined we will set it to the same as the first + // valid data + if( $aData[$i]==='-' ) { + // Find the first valid data + while( $i < $n && $aData[$i]==='-' ) { + ++$i; + } + if( $i < $n ) { + for($j=0; $j < $i; ++$j ) { + if( $this->iStartEndZero ) + $aData[$i] = 0; + else + $aData[$j] = $aData[$i]; + } + } + else { + // All '-' => Error + return false; + } + } + + while($i < $n) { + while( $i < $n && $aData[$i] !== '-' ) { + ++$i; + } + if( $i < $n ) { + $pstart=$i-1; + + // Now see how long this segment of '-' are + while( $i < $n && $aData[$i] === '-' ) { + ++$i; + } + if( $i < $n ) { + $pend=$i; + $size=$pend-$pstart; + $k=($aData[$pend]-$aData[$pstart])/$size; + // Replace the segment of '-' with a linear interpolated value. + for($j=1; $j < $size; ++$j ) { + $aData[$pstart+$j] = $aData[$pstart] + $j*$k ; + } + } + else { + // There are no valid end point. The '-' goes all the way to the end + // In that case we just set all the remaining values the the same as the + // last valid data point. + for( $j=$pstart+1; $j < $n; ++$j ) + if( $this->iStartEndZero ) { + $aData[$j] = 0; + } + else { + $aData[$j] = $aData[$pstart] ; + } + } + } + } + return true; + } + + // To avoid duplicate of line drawing code here we just + // change the y-values for each plot and then restore it + // after we have made the stroke. We must do this copy since + // it wouldn't be possible to create an acc line plot + // with the same graphs, i.e AccLinePlot(array($pl,$pl,$pl)); + // since this method would have a side effect. + function Stroke($img,$xscale,$yscale) { + $img->SetLineWeight($this->weight); + $this->numpoints = count($this->plots[0]->coords[0]); + // Allocate array + $coords[$this->nbrplots][$this->numpoints]=0; + for($i=0; $i<$this->numpoints; $i++) { + $coords[0][$i]=$this->plots[0]->coords[0][$i]; + $accy=$coords[0][$i]; + for($j=1; $j<$this->nbrplots; ++$j ) { + $coords[$j][$i] = $this->plots[$j]->coords[0][$i]+$accy; + $accy = $coords[$j][$i]; + } + } + for($j=$this->nbrplots-1; $j>=0; --$j) { + $p=$this->plots[$j]; + for( $i=0; $i<$this->numpoints; ++$i) { + $tmp[$i]=$p->coords[0][$i]; + $p->coords[0][$i]=$coords[$j][$i]; + } + $p->Stroke($img,$xscale,$yscale); + for( $i=0; $i<$this->numpoints; ++$i) { + $p->coords[0][$i]=$tmp[$i]; + } + $p->coords[0][]=$tmp; + } + } +} // Class + + +/* EOF */ +?> diff --git a/gosa-core/include/jpgraph/jpgraph_log.php b/gosa-core/include/jpgraph/jpgraph_log.php new file mode 100644 index 000000000..58628c4e8 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_log.php @@ -0,0 +1,305 @@ +ticks = new LogTicks(); + $this->name = 'log'; + } + + //---------------- + // PUBLIC METHODS + + // Translate between world and screen + function Translate($a) { + if( !is_numeric($a) ) { + if( $a != '' && $a != '-' && $a != 'x' ) { + JpGraphError::RaiseL(11001); + // ('Your data contains non-numeric values.'); + } + return 1; + } + if( $a < 0 ) { + JpGraphError::RaiseL(11002); + //("Negative data values can not be used in a log scale."); + exit(1); + } + if( $a==0 ) $a=1; + $a=log10($a); + return ceil($this->off + ($a*1.0 - $this->scale[0]) * $this->scale_factor); + } + + // Relative translate (don't include offset) usefull when we just want + // to know the relative position (in pixels) on the axis + function RelTranslate($a) { + if( !is_numeric($a) ) { + if( $a != '' && $a != '-' && $a != 'x' ) { + JpGraphError::RaiseL(11001); + //('Your data contains non-numeric values.'); + } + return 1; + } + if( $a==0 ) { + $a=1; + } + $a=log10($a); + return round(($a*1.0 - $this->scale[0]) * $this->scale_factor); + } + + // Use bcpow() for increased precision + function GetMinVal() { + if( function_exists("bcpow") ) { + return round(bcpow(10,$this->scale[0],15),14); + } + else { + return round(pow(10,$this->scale[0]),14); + } + } + + function GetMaxVal() { + if( function_exists("bcpow") ) { + return round(bcpow(10,$this->scale[1],15),14); + } + else { + return round(pow(10,$this->scale[1]),14); + } + } + + // Logarithmic autoscaling is much simplier since we just + // set the min and max to logs of the min and max values. + // Note that for log autoscale the "maxstep" the fourth argument + // isn't used. This is just included to give the method the same + // signature as the linear counterpart. + function AutoScale($img,$min,$max,$maxsteps,$majend=true) { + if( $min==0 ) $min=1; + + if( $max <= 0 ) { + JpGraphError::RaiseL(11004); + //('Scale error for logarithmic scale. You have a problem with your data values. The max value must be greater than 0. It is mathematically impossible to have 0 in a logarithmic scale.'); + } + if( is_numeric($this->autoscale_min) ) { + $smin = round($this->autoscale_min); + $smax = ceil(log10($max)); + if( $min >= $max ) { + JpGraphError::RaiseL(25071);//('You have specified a min value with SetAutoMin() which is larger than the maximum value used for the scale. This is not possible.'); + } + } + else { + $smin = floor(log10($min)); + if( is_numeric($this->autoscale_max) ) { + $smax = round($this->autoscale_max); + if( $smin >= $smax ) { + JpGraphError::RaiseL(25072);//('You have specified a max value with SetAutoMax() which is smaller than the miminum value used for the scale. This is not possible.'); + } + } + else + $smax = ceil(log10($max)); + } + + $this->Update($img,$smin,$smax); + } + //--------------- + // PRIVATE METHODS +} // Class + +//=================================================== +// CLASS LogTicks +// Description: +//=================================================== +class LogTicks extends Ticks{ + private $label_logtype=LOGLABELS_MAGNITUDE; + private $ticklabels_pos = array(); + //--------------- + // CONSTRUCTOR + function LogTicks() { + } + //--------------- + // PUBLIC METHODS + function IsSpecified() { + return true; + } + + function SetLabelLogType($aType) { + $this->label_logtype = $aType; + } + + // For log scale it's meaningless to speak about a major step + // We just return -1 to make the framework happy (specifically + // StrokeLabels() ) + function GetMajor() { + return -1; + } + + function SetTextLabelStart($aStart) { + JpGraphError::RaiseL(11005); + //('Specifying tick interval for a logarithmic scale is undefined. Remove any calls to SetTextLabelStart() or SetTextTickInterval() on the logarithmic scale.'); + } + + function SetXLabelOffset($dummy) { + // For log scales we dont care about XLabel offset + } + + // Draw ticks on image "img" using scale "scale". The axis absolute + // position in the image is specified in pos, i.e. for an x-axis + // it specifies the absolute y-coord and for Y-ticks it specified the + // absolute x-position. + function Stroke($img,$scale,$pos) { + $start = $scale->GetMinVal(); + $limit = $scale->GetMaxVal(); + $nextMajor = 10*$start; + $step = $nextMajor / 10.0; + + + $img->SetLineWeight($this->weight); + + if( $scale->type == "y" ) { + // member direction specified if the ticks should be on + // left or right side. + $a=$pos + $this->direction*$this->GetMinTickAbsSize(); + $a2=$pos + $this->direction*$this->GetMajTickAbsSize(); + + $count=1; + $this->maj_ticks_pos[0]=$scale->Translate($start); + $this->maj_ticklabels_pos[0]=$scale->Translate($start); + if( $this->supress_first ) + $this->maj_ticks_label[0]=""; + else { + if( $this->label_formfunc != '' ) { + $f = $this->label_formfunc; + $this->maj_ticks_label[0]=call_user_func($f,$start); + } + elseif( $this->label_logtype == LOGLABELS_PLAIN ) { + $this->maj_ticks_label[0]=$start; + } + else { + $this->maj_ticks_label[0]='10^'.round(log10($start)); + } + } + $i=1; + for($y=$start; $y<=$limit; $y+=$step,++$count ) { + $ys=$scale->Translate($y); + $this->ticks_pos[]=$ys; + $this->ticklabels_pos[]=$ys; + if( $count % 10 == 0 ) { + if( !$this->supress_tickmarks ) { + if( $this->majcolor!="" ) { + $img->PushColor($this->majcolor); + $img->Line($pos,$ys,$a2,$ys); + $img->PopColor(); + } + else { + $img->Line($pos,$ys,$a2,$ys); + } + } + + $this->maj_ticks_pos[$i]=$ys; + $this->maj_ticklabels_pos[$i]=$ys; + + if( $this->label_formfunc != '' ) { + $f = $this->label_formfunc; + $this->maj_ticks_label[$i]=call_user_func($f,$nextMajor); + } + elseif( $this->label_logtype == 0 ) { + $this->maj_ticks_label[$i]=$nextMajor; + } + else { + $this->maj_ticks_label[$i]='10^'.round(log10($nextMajor)); + } + ++$i; + $nextMajor *= 10; + $step *= 10; + $count=1; + } + else { + if( !$this->supress_tickmarks && !$this->supress_minor_tickmarks) { + if( $this->mincolor!="" ) { + $img->PushColor($this->mincolor); + } + $img->Line($pos,$ys,$a,$ys); + if( $this->mincolor!="" ) { + $img->PopColor(); + } + } + } + } + } + else { + $a=$pos - $this->direction*$this->GetMinTickAbsSize(); + $a2=$pos - $this->direction*$this->GetMajTickAbsSize(); + $count=1; + $this->maj_ticks_pos[0]=$scale->Translate($start); + $this->maj_ticklabels_pos[0]=$scale->Translate($start); + if( $this->supress_first ) { + $this->maj_ticks_label[0]=""; + } + else { + if( $this->label_formfunc != '' ) { + $f = $this->label_formfunc; + $this->maj_ticks_label[0]=call_user_func($f,$start); + } + elseif( $this->label_logtype == 0 ) { + $this->maj_ticks_label[0]=$start; + } + else { + $this->maj_ticks_label[0]='10^'.round(log10($start)); + } + } + $i=1; + for($x=$start; $x<=$limit; $x+=$step,++$count ) { + $xs=$scale->Translate($x); + $this->ticks_pos[]=$xs; + $this->ticklabels_pos[]=$xs; + if( $count % 10 == 0 ) { + if( !$this->supress_tickmarks ) { + $img->Line($xs,$pos,$xs,$a2); + } + $this->maj_ticks_pos[$i]=$xs; + $this->maj_ticklabels_pos[$i]=$xs; + + if( $this->label_formfunc != '' ) { + $f = $this->label_formfunc; + $this->maj_ticks_label[$i]=call_user_func($f,$nextMajor); + } + elseif( $this->label_logtype == 0 ) { + $this->maj_ticks_label[$i]=$nextMajor; + } + else { + $this->maj_ticks_label[$i]='10^'.round(log10($nextMajor)); + } + ++$i; + $nextMajor *= 10; + $step *= 10; + $count=1; + } + else { + if( !$this->supress_tickmarks && !$this->supress_minor_tickmarks) { + $img->Line($xs,$pos,$xs,$a); + } + } + } + } + return true; + } +} // Class +/* EOF */ +?> diff --git a/gosa-core/include/jpgraph/jpgraph_meshinterpolate.inc.php b/gosa-core/include/jpgraph/jpgraph_meshinterpolate.inc.php new file mode 100644 index 000000000..bc9d6f036 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_meshinterpolate.inc.php @@ -0,0 +1,105 @@ +Linear($aData,$aFactor); +} + +/** + * Utility class to interpolate a given data matrix + * + */ +class MeshInterpolate { + private $data = array(); + + /** + * Calculate the mid points of the given rectangle which has its top left + * corner at $row,$col. The $aFactordecides how many spliots should be done. + * i.e. how many more divisions should be done recursively + * + * @param $row Top left corner of square to work with + * @param $col Top left corner of square to work with + * $param $aFactor In how many subsquare should we split this square. A value of 1 indicates that no action + */ + function IntSquare( $aRow, $aCol, $aFactor ) { + if ( $aFactor <= 1 ) + return; + + $step = pow( 2, $aFactor-1 ); + + $v0 = $this->data[$aRow][$aCol]; + $v1 = $this->data[$aRow][$aCol + $step]; + $v2 = $this->data[$aRow + $step][$aCol]; + $v3 = $this->data[$aRow + $step][$aCol + $step]; + + $this->data[$aRow][$aCol + $step / 2] = ( $v0 + $v1 ) / 2; + $this->data[$aRow + $step / 2][$aCol] = ( $v0 + $v2 ) / 2; + $this->data[$aRow + $step][$aCol + $step / 2] = ( $v2 + $v3 ) / 2; + $this->data[$aRow + $step / 2][$aCol + $step] = ( $v1 + $v3 ) / 2; + $this->data[$aRow + $step / 2][$aCol + $step / 2] = ( $v0 + $v1 + $v2 + $v3 ) / 4; + + $this->IntSquare( $aRow, $aCol, $aFactor-1 ); + $this->IntSquare( $aRow, $aCol + $step / 2, $aFactor-1 ); + $this->IntSquare( $aRow + $step / 2, $aCol, $aFactor-1 ); + $this->IntSquare( $aRow + $step / 2, $aCol + $step / 2, $aFactor-1 ); + } + + /** + * Interpolate values in a matrice so that the total number of data points + * in vert and horizontal axis are $aIntNbr more. For example $aIntNbr=2 will + * make the data matrice have tiwce as many vertical and horizontal dta points. + * + * Note: This will blow up the matrcide in memory size in the order of $aInNbr^2 + * + * @param $ &$aData The original data matricde + * @param $aInNbr Interpolation factor + * @return the interpolated matrice + */ + function Linear( &$aData, $aIntFactor ) { + $step = pow( 2, $aIntFactor-1 ); + + $orig_cols = count( $aData[0] ); + $orig_rows = count( $aData ); + // Number of new columns/rows + // N = (a-1) * 2^(f-1) + 1 + $p = pow( 2, $aIntFactor-1 ); + $new_cols = $p * ( $orig_cols - 1 ) + 1; + $new_rows = $p * ( $orig_rows - 1 ) + 1; + + $this->data = array_fill( 0, $new_rows, array_fill( 0, $new_cols, 0 ) ); + // Initialize the new matrix with the values that we know + for ( $i = 0; $i < $new_rows; $i++ ) { + for ( $j = 0; $j < $new_cols; $j++ ) { + $v = 0 ; + if ( ( $i % $step == 0 ) && ( $j % $step == 0 ) ) { + $v = $aData[$i / $step][$j / $step]; + } + $this->data[$i][$j] = $v; + } + } + + for ( $i = 0; $i < $new_rows-1; $i += $step ) { + for ( $j = 0; $j < $new_cols-1; $j += $step ) { + $this->IntSquare( $i, $j, $aIntFactor ); + } + } + + return $this->data; + } +} + +?> diff --git a/gosa-core/include/jpgraph/jpgraph_mgraph.php b/gosa-core/include/jpgraph/jpgraph_mgraph.php new file mode 100644 index 000000000..fbd8f5d89 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_mgraph.php @@ -0,0 +1,345 @@ +iWidth = $aWidth; + $this->iHeight = $aHeight; + + // If the cached version exist just read it directly from the + // cache, stream it back to browser and exit + if( $aCachedName!='' && READ_CACHE && $aInline ) { + $this->cache = new ImgStreamCache(); + $this->cache->SetTimeOut($aTimeOut); + $image = new Image(); + if( $this->cache->GetAndStream($image,$aCachedName) ) { + exit(); + } + } + $this->inline = $aInline; + $this->cache_name = $aCachedName; + + $this->title = new Text(); + $this->title->ParagraphAlign('center'); + $this->title->SetFont(FF_FONT2,FS_BOLD); + $this->title->SetMargin(3); + $this->title->SetAlign('center'); + + $this->subtitle = new Text(); + $this->subtitle->ParagraphAlign('center'); + $this->subtitle->SetFont(FF_FONT1,FS_BOLD); + $this->subtitle->SetMargin(3); + $this->subtitle->SetAlign('center'); + + $this->subsubtitle = new Text(); + $this->subsubtitle->ParagraphAlign('center'); + $this->subsubtitle->SetFont(FF_FONT1,FS_NORMAL); + $this->subsubtitle->SetMargin(3); + $this->subsubtitle->SetAlign('center'); + + $this->footer = new Footer(); + + } + + // Specify background fill color for the combined graph + function SetFillColor($aColor) { + $this->iFillColor = $aColor; + } + + // Add a frame around the combined graph + function SetFrame($aFlg,$aColor='black',$aWeight=1) { + $this->iDoFrame = $aFlg; + $this->iFrameColor = $aColor; + $this->iFrameWeight = $aWeight; + } + + // Specify a background image blend + function SetBackgroundImageMix($aMix) { + $this->background_image_mix = $aMix ; + } + + // Specify a background image + function SetBackgroundImage($aFileName,$aCenter_aX=NULL,$aY=NULL) { + // Second argument can be either a boolean value or + // a numeric + $aCenter=TRUE; + $aX=NULL; + + if( is_numeric($aCenter_aX) ) { + $aX=$aCenter_aX; + } + + // Get extension to determine image type + $e = explode('.',$aFileName); + if( !$e ) { + JpGraphError::RaiseL(12002,$aFileName); + //('Incorrect file name for MGraph::SetBackgroundImage() : '.$aFileName.' Must have a valid image extension (jpg,gif,png) when using autodetection of image type'); + } + + $valid_formats = array('png', 'jpg', 'gif'); + $aImgFormat = strtolower($e[count($e)-1]); + if ($aImgFormat == 'jpeg') { + $aImgFormat = 'jpg'; + } + elseif (!in_array($aImgFormat, $valid_formats) ) { + JpGraphError::RaiseL(12003,$aImgFormat,$aFileName); + //('Unknown file extension ($aImgFormat) in MGraph::SetBackgroundImage() for filename: '.$aFileName); + } + + $this->background_image = $aFileName; + $this->background_image_center=$aCenter; + $this->background_image_format=$aImgFormat; + $this->background_image_x = $aX; + $this->background_image_y = $aY; + } + + function _strokeBackgroundImage() { + if( $this->background_image == '' ) return; + + $bkgimg = Graph::LoadBkgImage('',$this->background_image); + + // Background width & Heoght + $bw = imagesx($bkgimg); + $bh = imagesy($bkgimg); + + // Canvas width and height + $cw = imagesx($this->img); + $ch = imagesy($this->img); + + if( $this->doshadow ) { + $cw -= $this->shadow_width; + $ch -= $this->shadow_width; + } + + if( $this->background_image_x === NULL || $this->background_image_y === NULL ) { + if( $this->background_image_center ) { + // Center original image in the plot area + $x = round($cw/2-$bw/2); $y = round($ch/2-$bh/2); + } + else { + // Just copy the image from left corner, no resizing + $x=0; $y=0; + } + } + else { + $x = $this->background_image_x; + $y = $this->background_image_y; + } + imagecopymerge($this->img,$bkgimg,$x,$y,0,0,$bw,$bh,$this->background_image_mix); + } + + function AddMix($aGraph,$x=0,$y=0,$mix=100,$fx=0,$fy=0,$w=0,$h=0) { + $this->_gdImgHandle($aGraph->Stroke( _IMG_HANDLER),$x,$y,$fx=0,$fy=0,$w,$h,$mix); + } + + function Add($aGraph,$x=0,$y=0,$fx=0,$fy=0,$w=0,$h=0) { + $this->_gdImgHandle($aGraph->Stroke( _IMG_HANDLER),$x,$y,$fx=0,$fy=0,$w,$h); + } + + function _gdImgHandle($agdCanvas,$x,$y,$fx=0,$fy=0,$w=0,$h=0,$mix=100) { + if( $w == 0 ) { + $w = @imagesx($agdCanvas); + } + if( $w === NULL ) { + JpGraphError::RaiseL(12007); + //('Argument to MGraph::Add() is not a valid GD image handle.'); + return; + } + if( $h == 0 ) { + $h = @imagesy($agdCanvas); + } + $this->iGraphs[$this->iCnt++] = array($agdCanvas,$x,$y,$fx,$fy,$w,$h,$mix); + } + + function SetMargin($lm,$rm,$tm,$bm) { + $this->lm = $lm; + $this->rm = $rm; + $this->tm = $tm; + $this->bm = $bm; + } + + function SetExpired($aFlg=true) { + $this->expired = $aFlg; + } + + function SetImgFormat($aFormat,$aQuality=75) { + $this->image_format = $aFormat; + $this->image_quality = $aQuality; + } + + // Set the shadow around the whole image + function SetShadow($aShowShadow=true,$aShadowWidth=4,$aShadowColor='gray@0.3') { + $this->doshadow = $aShowShadow; + $this->shadow_color = $aShadowColor; + $this->shadow_width = $aShadowWidth; + $this->footer->iBottomMargin += $aShadowWidth; + $this->footer->iRightMargin += $aShadowWidth; + } + + function StrokeTitle($image,$w,$h) { + // Stroke title + if( $this->title->t !== '' ) { + + $margin = 3; + + $y = $this->title->margin; + if( $this->title->halign == 'center' ) { + $this->title->Center(0,$w,$y); + } + elseif( $this->title->halign == 'left' ) { + $this->title->SetPos($this->title->margin+2,$y); + } + elseif( $this->title->halign == 'right' ) { + $indent = 0; + if( $this->doshadow ) { + $indent = $this->shadow_width+2; + } + $this->title->SetPos($w-$this->title->margin-$indent,$y,'right'); + } + $this->title->Stroke($image); + + // ... and subtitle + $y += $this->title->GetTextHeight($image) + $margin + $this->subtitle->margin; + if( $this->subtitle->halign == 'center' ) { + $this->subtitle->Center(0,$w,$y); + } + elseif( $this->subtitle->halign == 'left' ) { + $this->subtitle->SetPos($this->subtitle->margin+2,$y); + } + elseif( $this->subtitle->halign == 'right' ) { + $indent = 0; + if( $this->doshadow ) { + $indent = $this->shadow_width+2; + } + $this->subtitle->SetPos($this->img->width-$this->subtitle->margin-$indent,$y,'right'); + } + $this->subtitle->Stroke($image); + + // ... and subsubtitle + $y += $this->subtitle->GetTextHeight($image) + $margin + $this->subsubtitle->margin; + if( $this->subsubtitle->halign == 'center' ) { + $this->subsubtitle->Center(0,$w,$y); + } + elseif( $this->subsubtitle->halign == 'left' ) { + $this->subsubtitle->SetPos($this->subsubtitle->margin+2,$y); + } + elseif( $this->subsubtitle->halign == 'right' ) { + $indent = 0; + if( $this->doshadow ) { + $indent = $this->shadow_width+2; + } + $this->subsubtitle->SetPos($w-$this->subsubtitle->margin-$indent,$y,'right'); + } + $this->subsubtitle->Stroke($image); + + } + } + + function Stroke($aFileName='') { + // Find out the necessary size for the container image + $w=0; $h=0; + for($i=0; $i < $this->iCnt; ++$i ) { + $maxw = $this->iGraphs[$i][1]+$this->iGraphs[$i][5]; + $maxh = $this->iGraphs[$i][2]+$this->iGraphs[$i][6]; + $w = max( $w, $maxw ); + $h = max( $h, $maxh ); + } + $w += $this->lm+$this->rm; + $h += $this->tm+$this->bm; + + // User specified width,height overrides + if( $this->iWidth !== NULL && $this->iWidth !== 0 ) $w = $this->iWidth; + if( $this->iHeight!== NULL && $this->iHeight !== 0) $h = $this->iHeight; + + if( $this->doshadow ) { + $w += $this->shadow_width; + $h += $this->shadow_width; + } + + $image = new Image($w,$h); + $image->SetImgFormat( $this->image_format,$this->image_quality); + + if( $this->doshadow ) { + $image->SetColor($this->iFrameColor); + $image->ShadowRectangle(0,0,$w-1,$h-1,$this->iFillColor,$this->shadow_width,$this->shadow_color); + $w -= $this->shadow_width; + $h -= $this->shadow_width; + } + else { + $image->SetColor($this->iFillColor); + $image->FilledRectangle(0,0,$w-1,$h-1); + } + $image->SetExpired($this->expired); + + $this->img = $image->img; + $this->_strokeBackgroundImage(); + + if( $this->iDoFrame && ! $this->doshadow ) { + $image->SetColor($this->iFrameColor); + $image->SetLineWeight($this->iFrameWeight); + $image->Rectangle(0,0,$w-1,$h-1); + } + + // Copy all sub graphs to the container + for($i=0; $i < $this->iCnt; ++$i ) { + $image->CopyMerge($this->iGraphs[$i][0], + $this->iGraphs[$i][1]+$this->lm,$this->iGraphs[$i][2]+$this->tm, + $this->iGraphs[$i][3],$this->iGraphs[$i][4], + $this->iGraphs[$i][5],$this->iGraphs[$i][6], + -1,-1, /* Full from width and height */ + $this->iGraphs[$i][7]); + + + } + + $this->StrokeTitle($image,$w,$h); + $this->footer->Stroke($image); + + // Output image + if( $aFileName == _IMG_HANDLER ) { + return $image->img; + } + else { + //Finally stream the generated picture + $this->cache = new ImgStreamCache(); + $this->cache->PutAndStream($image,$this->cache_name,$this->inline,$aFileName); + } + } +} + +// EOF + +?> diff --git a/gosa-core/include/jpgraph/jpgraph_pie.php b/gosa-core/include/jpgraph/jpgraph_pie.php new file mode 100644 index 000000000..a4208b452 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_pie.php @@ -0,0 +1,1462 @@ + array(136,34,40,45,46,62,63,134,74,10,120,136,141,168,180,77,209,218,346,395,89,430), + "pastel" => array(27,415,128,59,66,79,105,110,42,147,152,230,236,240,331,337,405,38), + "water" => array(8,370,24,40,335,56,213,237,268,14,326,387,10,388), + "sand" => array(27,168,34,170,19,50,65,72,131,209,46,393)); + protected $theme="earth"; + protected $setslicecolors=array(); + protected $labeltype=0; // Default to percentage + protected $pie_border=true,$pie_interior_border=true; + public $value; + protected $ishadowcolor='',$ishadowdrop=4; + protected $ilabelposadj=1; + protected $legendcsimtargets = array(),$legendcsimwintargets = array(); + protected $legendcsimalts = array(); + protected $adjusted_data = array(); + public $guideline = null; + protected $guidelinemargin=10,$iShowGuideLineForSingle = false; + protected $iGuideLineCurve = false,$iGuideVFactor=1.4,$iGuideLineRFactor=0.8; + protected $la = array(); // Holds the exact angle for each label + + //--------------- + // CONSTRUCTOR + function __construct($data) { + $this->data = array_reverse($data); + $this->title = new Text(""); + $this->title->SetFont(FF_FONT1,FS_BOLD); + $this->value = new DisplayValue(); + $this->value->Show(); + $this->value->SetFormat('%.1f%%'); + $this->guideline = new LineProperty(); + } + + //--------------- + // PUBLIC METHODS + function SetCenter($x,$y=0.5) { + $this->posx = $x; + $this->posy = $y; + } + + // Enable guideline and set drwaing policy + function SetGuideLines($aFlg=true,$aCurved=true,$aAlways=false) { + $this->guideline->Show($aFlg); + $this->iShowGuideLineForSingle = $aAlways; + $this->iGuideLineCurve = $aCurved; + } + + // Adjuste the distance between labels and labels and pie + function SetGuideLinesAdjust($aVFactor,$aRFactor=0.8) { + $this->iGuideVFactor=$aVFactor; + $this->iGuideLineRFactor=$aRFactor; + } + + function SetColor($aColor) { + $this->color = $aColor; + } + + function SetSliceColors($aColors) { + $this->setslicecolors = $aColors; + } + + function SetShadow($aColor='darkgray',$aDropWidth=4) { + $this->ishadowcolor = $aColor; + $this->ishadowdrop = $aDropWidth; + } + + function SetCSIMTargets($aTargets,$aAlts='',$aWinTargets='') { + $this->csimtargets=array_reverse($aTargets); + if( is_array($aWinTargets) ) + $this->csimwintargets=array_reverse($aWinTargets); + if( is_array($aAlts) ) + $this->csimalts=array_reverse($aAlts); + } + + function GetCSIMareas() { + return $this->csimareas; + } + + function AddSliceToCSIM($i,$xc,$yc,$radius,$sa,$ea) { + //Slice number, ellipse centre (x,y), height, width, start angle, end angle + while( $sa > 2*M_PI ) $sa = $sa - 2*M_PI; + while( $ea > 2*M_PI ) $ea = $ea - 2*M_PI; + + $sa = 2*M_PI - $sa; + $ea = 2*M_PI - $ea; + + // Special case when we have only one slice since then both start and end + // angle will be == 0 + if( abs($sa - $ea) < 0.0001 ) { + $sa=2*M_PI; $ea=0; + } + + //add coordinates of the centre to the map + $xc = floor($xc);$yc=floor($yc); + $coords = "$xc, $yc"; + + //add coordinates of the first point on the arc to the map + $xp = floor(($radius*cos($ea))+$xc); + $yp = floor($yc-$radius*sin($ea)); + $coords.= ", $xp, $yp"; + + //add coordinates every 0.2 radians + $a=$ea+0.2; + + // If we cross the 360-limit with a slice we need to handle + // the fact that end angle is smaller than start + if( $sa < $ea ) { + while ($a <= 2*M_PI) { + $xp = floor($radius*cos($a)+$xc); + $yp = floor($yc-$radius*sin($a)); + $coords.= ", $xp, $yp"; + $a += 0.2; + } + $a -= 2*M_PI; + } + + + while ($a < $sa) { + $xp = floor($radius*cos($a)+$xc); + $yp = floor($yc-$radius*sin($a)); + $coords.= ", $xp, $yp"; + $a += 0.2; + } + + //Add the last point on the arc + $xp = floor($radius*cos($sa)+$xc); + $yp = floor($yc-$radius*sin($sa)); + $coords.= ", $xp, $yp"; + if( !empty($this->csimtargets[$i]) ) { + $this->csimareas .= "csimtargets[$i]."\""; + $tmp=""; + if( !empty($this->csimwintargets[$i]) ) { + $this->csimareas .= " target=\"".$this->csimwintargets[$i]."\" "; + } + if( !empty($this->csimalts[$i]) ) { + $tmp=sprintf($this->csimalts[$i],$this->data[$i]); + $this->csimareas .= " title=\"$tmp\" alt=\"$tmp\" "; + } + $this->csimareas .= " />\n"; + } + } + + + function SetTheme($aTheme) { + if( in_array($aTheme,array_keys($this->themearr)) ) + $this->theme = $aTheme; + else + JpGraphError::RaiseL(15001,$aTheme);//("PiePLot::SetTheme() Unknown theme: $aTheme"); + } + + function ExplodeSlice($e,$radius=20) { + if( ! is_integer($e) ) + JpGraphError::RaiseL(15002);//('Argument to PiePlot::ExplodeSlice() must be an integer'); + $this->explode_radius[$e]=$radius; + } + + function ExplodeAll($radius=20) { + $this->explode_all=true; + $this->explode_r = $radius; + } + + function Explode($aExplodeArr) { + if( !is_array($aExplodeArr) ) { + JpGraphError::RaiseL(15003); + //("Argument to PiePlot::Explode() must be an array with integer distances."); + } + $this->explode_radius = $aExplodeArr; + } + + function SetStartAngle($aStart) { + if( $aStart < 0 || $aStart > 360 ) { + JpGraphError::RaiseL(15004);//('Slice start angle must be between 0 and 360 degrees.'); + } + if( $aStart == 0 ) { + $this->startangle = 0; + } + else { + $this->startangle = 360-$aStart; + $this->startangle *= M_PI/180; + } + } + + // Size in percentage + function SetSize($aSize) { + if( ($aSize>0 && $aSize<=0.5) || ($aSize>10 && $aSize<1000) ) + $this->radius = $aSize; + else + JpGraphError::RaiseL(15006); + //("PiePlot::SetSize() Radius for pie must either be specified as a fraction [0, 0.5] of the size of the image or as an absolute size in pixels in the range [10, 1000]"); + } + + // Set label arrays + function SetLegends($aLegend) { + $this->legends = $aLegend; + } + + // Set text labels for slices + function SetLabels($aLabels,$aLblPosAdj="auto") { + $this->labels = array_reverse($aLabels); + $this->ilabelposadj=$aLblPosAdj; + } + + function SetLabelPos($aLblPosAdj) { + $this->ilabelposadj=$aLblPosAdj; + } + + // Should we display actual value or percentage? + function SetLabelType($aType) { + if( $aType < 0 || $aType > 2 ) + JpGraphError::RaiseL(15008,$aType); + //("PiePlot::SetLabelType() Type for pie plots must be 0 or 1 (not $t)."); + $this->labeltype = $aType; + } + + // Deprecated. + function SetValueType($aType) { + $this->SetLabelType($aType); + } + + // Should the circle around a pie plot be displayed + function ShowBorder($exterior=true,$interior=true) { + $this->pie_border = $exterior; + $this->pie_interior_border = $interior; + } + + // Setup the legends + function Legend($graph) { + $colors = array_keys($graph->img->rgb->rgb_table); + sort($colors); + $ta=$this->themearr[$this->theme]; + $n = count($this->data); + + if( $this->setslicecolors==null ) { + $numcolors=count($ta); + if( class_exists('PiePlot3D',false) && ($this instanceof PiePlot3D) ) { + $ta = array_reverse(array_slice($ta,0,$n)); + } + } + else { + $this->setslicecolors = array_slice($this->setslicecolors,0,$n); + $numcolors=count($this->setslicecolors); + if( $graph->pieaa && !($this instanceof PiePlot3D) ) { + $this->setslicecolors = array_reverse($this->setslicecolors); + } + } + + $sum=0; + for($i=0; $i < $n; ++$i) + $sum += $this->data[$i]; + + // Bail out with error if the sum is 0 + if( $sum==0 ) + JpGraphError::RaiseL(15009);//("Illegal pie plot. Sum of all data is zero for Pie!"); + + // Make sure we don't plot more values than data points + // (in case the user added more legends than data points) + $n = min(count($this->legends),count($this->data)); + if( $this->legends != "" ) { + $this->legends = array_reverse(array_slice($this->legends,0,$n)); + } + for( $i=$n-1; $i >= 0; --$i ) { + $l = $this->legends[$i]; + // Replace possible format with actual values + if( count($this->csimalts) > $i ) { + $fmt = $this->csimalts[$i]; + } + else { + $fmt = "%d"; // Deafult Alt if no other has been specified + } + if( $this->labeltype==0 ) { + $l = sprintf($l,100*$this->data[$i]/$sum); + $alt = sprintf($fmt,$this->data[$i]); + + } + elseif( $this->labeltype == 1) { + $l = sprintf($l,$this->data[$i]); + $alt = sprintf($fmt,$this->data[$i]); + + } + else { + $l = sprintf($l,$this->adjusted_data[$i]); + $alt = sprintf($fmt,$this->adjusted_data[$i]); + } + + if( empty($this->csimwintargets[$i]) ) { + $wintarg = ''; + } + else { + $wintarg = $this->csimwintargets[$i]; + } + + if( $this->setslicecolors==null ) { + $graph->legend->Add($l,$colors[$ta[$i%$numcolors]],"",0,$this->csimtargets[$i],$alt,$wintarg); + } + else { + $graph->legend->Add($l,$this->setslicecolors[$i%$numcolors],"",0,$this->csimtargets[$i],$alt,$wintarg); + } + } + } + + // Adjust the rounded percetage value so that the sum of + // of the pie slices are always 100% + // Using the Hare/Niemeyer method + function AdjPercentage($aData,$aPrec=0) { + $mul=100; + if( $aPrec > 0 && $aPrec < 3 ) { + if( $aPrec == 1 ) + $mul=1000; + else + $mul=10000; + } + + $tmp = array(); + $result = array(); + $quote_sum=0; + $n = count($aData) ; + for( $i=0, $sum=0; $i < $n; ++$i ) + $sum+=$aData[$i]; + foreach($aData as $index => $value) { + $tmp_percentage=$value/$sum*$mul; + $result[$index]=floor($tmp_percentage); + $tmp[$index]=$tmp_percentage-$result[$index]; + $quote_sum+=$result[$index]; + } + if( $quote_sum == $mul) { + if( $mul > 100 ) { + $tmp = $mul / 100; + for( $i=0; $i < $n; ++$i ) { + $result[$i] /= $tmp ; + } + } + return $result; + } + arsort($tmp,SORT_NUMERIC); + reset($tmp); + for($i=0; $i < $mul-$quote_sum; $i++) + { + $result[key($tmp)]++; + next($tmp); + } + if( $mul > 100 ) { + $tmp = $mul / 100; + for( $i=0; $i < $n; ++$i ) { + $result[$i] /= $tmp ; + } + } + return $result; + } + + + function Stroke($img,$aaoption=0) { + // aaoption is used to handle antialias + // aaoption == 0 a normal pie + // aaoption == 1 just the body + // aaoption == 2 just the values + + // Explode scaling. If anti alias we scale the image + // twice and we also need to scale the exploding distance + $expscale = $aaoption === 1 ? 2 : 1; + + if( $this->labeltype == 2 ) { + // Adjust the data so that it will add up to 100% + $this->adjusted_data = $this->AdjPercentage($this->data); + } + + $colors = array_keys($img->rgb->rgb_table); + sort($colors); + $ta=$this->themearr[$this->theme]; + $n = count($this->data); + + if( $this->setslicecolors==null ) { + $numcolors=count($ta); + } + else { + // We need to create an array of colors as long as the data + // since we need to reverse it to get the colors in the right order + $numcolors=count($this->setslicecolors); + $i = 2*$numcolors; + while( $n > $i ) { + $this->setslicecolors = array_merge($this->setslicecolors,$this->setslicecolors); + $i += $n; + } + $tt = array_slice($this->setslicecolors,0,$n % $numcolors); + $this->setslicecolors = array_merge($this->setslicecolors,$tt); + $this->setslicecolors = array_reverse($this->setslicecolors); + } + + // Draw the slices + $sum=0; + for($i=0; $i < $n; ++$i) + $sum += $this->data[$i]; + + // Bail out with error if the sum is 0 + if( $sum==0 ) { + JpGraphError::RaiseL(15009);//("Sum of all data is 0 for Pie."); + } + + // Set up the pie-circle + if( $this->radius <= 1 ) { + $radius = floor($this->radius*min($img->width,$img->height)); + } + else { + $radius = $aaoption === 1 ? $this->radius*2 : $this->radius; + } + + if( $this->posx <= 1 && $this->posx > 0 ) { + $xc = round($this->posx*$img->width); + } + else { + $xc = $this->posx ; + } + + if( $this->posy <= 1 && $this->posy > 0 ) { + $yc = round($this->posy*$img->height); + } + else { + $yc = $this->posy ; + } + + $n = count($this->data); + + if( $this->explode_all ) { + for($i=0; $i < $n; ++$i) { + $this->explode_radius[$i]=$this->explode_r; + } + } + + // If we have a shadow and not just drawing the labels + if( $this->ishadowcolor != "" && $aaoption !== 2) { + $accsum=0; + $angle2 = $this->startangle; + $img->SetColor($this->ishadowcolor); + for($i=0; $sum > 0 && $i < $n; ++$i) { + $j = $n-$i-1; + $d = $this->data[$i]; + $angle1 = $angle2; + $accsum += $d; + $angle2 = $this->startangle+2*M_PI*$accsum/$sum; + if( empty($this->explode_radius[$j]) ) { + $this->explode_radius[$j]=0; + } + + if( $d < 0.00001 ) continue; + + $la = 2*M_PI - (abs($angle2-$angle1)/2.0+$angle1); + + $xcm = $xc + $this->explode_radius[$j]*cos($la)*$expscale; + $ycm = $yc - $this->explode_radius[$j]*sin($la)*$expscale; + + $xcm += $this->ishadowdrop*$expscale; + $ycm += $this->ishadowdrop*$expscale; + + $_sa = round($angle1*180/M_PI); + $_ea = round($angle2*180/M_PI); + + // The CakeSlice method draws a full circle in case of start angle = end angle + // for pie slices we don't want this behaviour unless we only have one + // slice in the pie in case it is the wanted behaviour + if( $_ea-$_sa > 0.1 || $n==1 ) { + $img->CakeSlice($xcm,$ycm,$radius-1,$radius-1, + $angle1*180/M_PI,$angle2*180/M_PI,$this->ishadowcolor); + } + } + } + + //-------------------------------------------------------------------------------- + // This is the main loop to draw each cake slice + //-------------------------------------------------------------------------------- + + // Set up the accumulated sum, start angle for first slice and border color + $accsum=0; + $angle2 = $this->startangle; + $img->SetColor($this->color); + + // Loop though all the slices if there is a pie to draw (sum>0) + // There are n slices in total + for($i=0; $sum>0 && $i < $n; ++$i) { + + // $j is the actual index used for the slice + $j = $n-$i-1; + + // Make sure we havea valid distance to explode the slice + if( empty($this->explode_radius[$j]) ) { + $this->explode_radius[$j]=0; + } + + // The actual numeric value for the slice + $d = $this->data[$i]; + + $angle1 = $angle2; + + // Accumlate the sum + $accsum += $d; + + // The new angle when we add the "size" of this slice + // angle1 is then the start and angle2 the end of this slice + $angle2 = $this->NormAngle($this->startangle+2*M_PI*$accsum/$sum); + + // We avoid some trouble by not allowing end angle to be 0, in that case + // we translate to 360 + + // la is used to hold the label angle, which is centered on the slice + if( $angle2 < 0.0001 && $angle1 > 0.0001 ) { + $this->la[$i] = 2*M_PI - (abs(2*M_PI-$angle1)/2.0+$angle1); + } + elseif( $angle1 > $angle2 ) { + // The case where the slice crosses the 3 a'clock line + // Remember that the slices are counted clockwise and + // labels are counted counter clockwise so we need to revert with 2 PI + $this->la[$i] = 2*M_PI-$this->NormAngle($angle1 + ((2*M_PI - $angle1)+$angle2)/2); + } + else { + $this->la[$i] = 2*M_PI - (abs($angle2-$angle1)/2.0+$angle1); + } + + // Too avoid rounding problems we skip the slice if it is too small + if( $d < 0.00001 ) continue; + + // If the user has specified an array of colors for each slice then use + // that a color otherwise use the theme array (ta) of colors + if( $this->setslicecolors==null ) { + $slicecolor=$colors[$ta[$i%$numcolors]]; + } + else { + $slicecolor=$this->setslicecolors[$i%$numcolors]; + } + +// $_sa = round($angle1*180/M_PI); +// $_ea = round($angle2*180/M_PI); +// $_la = round($this->la[$i]*180/M_PI); +// echo "Slice#$i: ang1=$_sa , ang2=$_ea, la=$_la, color=$slicecolor
    "; + + + // If we have enabled antialias then we don't draw any border so + // make the bordedr color the same as the slice color + if( $this->pie_interior_border && $aaoption===0 ) { + $img->SetColor($this->color); + } + else { + $img->SetColor($slicecolor); + } + $arccolor = $this->pie_border && $aaoption===0 ? $this->color : ""; + + // Calculate the x,y coordinates for the base of this slice taking + // the exploded distance into account. Here we use the mid angle as the + // ray of extension and we have the mid angle handy as it is also the + // label angle + $xcm = $xc + $this->explode_radius[$j]*cos($this->la[$i])*$expscale; + $ycm = $yc - $this->explode_radius[$j]*sin($this->la[$i])*$expscale; + + // If we are not just drawing the labels then draw this cake slice + if( $aaoption !== 2 ) { + + $_sa = round($angle1*180/M_PI); + $_ea = round($angle2*180/M_PI); + $_la = round($this->la[$i]*180/M_PI); + //echo "[$i] sa=$_sa, ea=$_ea, la[$i]=$_la, (color=$slicecolor)
    "; + + // The CakeSlice method draws a full circle in case of start angle = end angle + // for pie slices we want this in case the slice have a value larger than 99% of the + // total sum + if( abs($_ea-$_sa) >= 1 || $d == $sum ) { + $img->CakeSlice($xcm,$ycm,$radius-1,$radius-1,$_sa,$_ea,$slicecolor,$arccolor); + } + } + + // If the CSIM is used then make sure we register a CSIM area for this slice as well + if( $this->csimtargets && $aaoption !== 1 ) { + $this->AddSliceToCSIM($i,$xcm,$ycm,$radius,$angle1,$angle2); + } + } + + // Format the titles for each slice + if( $aaoption !== 2 ) { + for( $i=0; $i < $n; ++$i) { + if( $this->labeltype==0 ) { + if( $sum != 0 ) + $l = 100.0*$this->data[$i]/$sum; + else + $l = 0.0; + } + elseif( $this->labeltype==1 ) { + $l = $this->data[$i]*1.0; + } + else { + $l = $this->adjusted_data[$i]; + } + if( isset($this->labels[$i]) && is_string($this->labels[$i]) ) + $this->labels[$i]=sprintf($this->labels[$i],$l); + else + $this->labels[$i]=$l; + } + } + + if( $this->value->show && $aaoption !== 1 ) { + $this->StrokeAllLabels($img,$xc,$yc,$radius); + } + + // Adjust title position + if( $aaoption !== 1 ) { + $this->title->SetPos($xc, + $yc-$this->title->GetFontHeight($img)-$radius-$this->title->margin, + "center","bottom"); + $this->title->Stroke($img); + } + + } + + //--------------- + // PRIVATE METHODS + + function NormAngle($a) { + while( $a < 0 ) $a += 2*M_PI; + while( $a > 2*M_PI ) $a -= 2*M_PI; + return $a; + } + + function Quadrant($a) { + $a=$this->NormAngle($a); + if( $a > 0 && $a <= M_PI/2 ) + return 0; + if( $a > M_PI/2 && $a <= M_PI ) + return 1; + if( $a > M_PI && $a <= 1.5*M_PI ) + return 2; + if( $a > 1.5*M_PI ) + return 3; + } + + function StrokeGuideLabels($img,$xc,$yc,$radius) { + $n = count($this->labels); + + //----------------------------------------------------------------------- + // Step 1 of the algorithm is to construct a number of clusters + // a cluster is defined as all slices within the same quadrant (almost) + // that has an angular distance less than the treshold + //----------------------------------------------------------------------- + $tresh_hold=25 * M_PI/180; // 25 degrees difference to be in a cluster + $incluster=false; // flag if we are currently in a cluster or not + $clusters = array(); // array of clusters + $cidx=-1; // running cluster index + + // Go through all the labels and construct a number of clusters + for($i=0; $i < $n-1; ++$i) { + // Calc the angle distance between two consecutive slices + $a1=$this->la[$i]; + $a2=$this->la[$i+1]; + $q1 = $this->Quadrant($a1); + $q2 = $this->Quadrant($a2); + $diff = abs($a1-$a2); + if( $diff < $tresh_hold ) { + if( $incluster ) { + $clusters[$cidx][1]++; + // Each cluster can only cover one quadrant + // Do we cross a quadrant ( and must break the cluster) + if( $q1 != $q2 ) { + // If we cross a quadrant boundary we normally start a + // new cluster. However we need to take the 12'a clock + // and 6'a clock positions into a special consideration. + // Case 1: WE go from q=1 to q=2 if the last slice on + // the cluster for q=1 is close to 12'a clock and the + // first slice in q=0 is small we extend the previous + // cluster + if( $q1 == 1 && $q2 == 0 && $a2 > (90-15)*M_PI/180 ) { + if( $i < $n-2 ) { + $a3 = $this->la[$i+2]; + // If there isn't a cluster coming up with the next-next slice + // we extend the previous cluster to cover this slice as well + if( abs($a3-$a2) >= $tresh_hold ) { + $clusters[$cidx][1]++; + $i++; + } + } + } + elseif( $q1 == 3 && $q2 == 2 && $a2 > (270-15)*M_PI/180 ) { + if( $i < $n-2 ) { + $a3 = $this->la[$i+2]; + // If there isn't a cluster coming up with the next-next slice + // we extend the previous cluster to cover this slice as well + if( abs($a3-$a2) >= $tresh_hold ) { + $clusters[$cidx][1]++; + $i++; + } + } + } + + if( $q1==2 && $q2==1 && $a2 > (180-15)*M_PI/180 ) { + $clusters[$cidx][1]++; + $i++; + } + + $incluster = false; + } + } + elseif( $q1 == $q2) { + $incluster = true; + // Now we have a special case for quadrant 0. If we previously + // have a cluster of one in quadrant 0 we just extend that + // cluster. If we don't do this then we risk that the label + // for the cluster of one will cross the guide-line + if( $q1 == 0 && $cidx > -1 && + $clusters[$cidx][1] == 1 && + $this->Quadrant($this->la[$clusters[$cidx][0]]) == 0 ) { + $clusters[$cidx][1]++; + } + else { + $cidx++; + $clusters[$cidx][0] = $i; + $clusters[$cidx][1] = 1; + } + } + else { + // Create a "cluster" of one since we are just crossing + // a quadrant + $cidx++; + $clusters[$cidx][0] = $i; + $clusters[$cidx][1] = 1; + } + } + else { + if( $incluster ) { + // Add the last slice + $clusters[$cidx][1]++; + $incluster = false; + } + else { // Create a "cluster" of one + $cidx++; + $clusters[$cidx][0] = $i; + $clusters[$cidx][1] = 1; + } + } + } + // Handle the very last slice + if( $incluster ) { + $clusters[$cidx][1]++; + } + else { // Create a "cluster" of one + $cidx++; + $clusters[$cidx][0] = $i; + $clusters[$cidx][1] = 1; + } + + /* + if( true ) { + // Debug printout in labels + for( $i=0; $i <= $cidx; ++$i ) { + for( $j=0; $j < $clusters[$i][1]; ++$j ) { + $a = $this->la[$clusters[$i][0]+$j]; + $aa = round($a*180/M_PI); + $q = $this->Quadrant($a); + $this->labels[$clusters[$i][0]+$j]="[$q:$aa] $i:$j"; + } + } + } + */ + + //----------------------------------------------------------------------- + // Step 2 of the algorithm is use the clusters and draw the labels + // and guidelines + //----------------------------------------------------------------------- + + // We use the font height as the base factor for how far we need to + // spread the labels in the Y-direction. + $this->value->ApplyFont($img); + $fh = $img->GetFontHeight(); + $origvstep=$fh*$this->iGuideVFactor; + $this->value->SetMargin(0); + + // Number of clusters found + $nc = count($clusters); + + // Walk through all the clusters + for($i=0; $i < $nc; ++$i) { + + // Start angle and number of slices in this cluster + $csize = $clusters[$i][1]; + $a = $this->la[$clusters[$i][0]]; + $q = $this->Quadrant($a); + + // Now set up the start and end conditions to make sure that + // in each cluster we walk through the all the slices starting with the slice + // closest to the equator. Since all slices are numbered clockwise from "3'a clock" + // we have different conditions depending on in which quadrant the slice lies within. + if( $q == 0 ) { + $start = $csize-1; $idx = $start; $step = -1; $vstep = -$origvstep; + } + elseif( $q == 1 ) { + $start = 0; $idx = $start; $step = 1; $vstep = -$origvstep; + } + elseif( $q == 2 ) { + $start = $csize-1; $idx = $start; $step = -1; $vstep = $origvstep; + } + elseif( $q == 3 ) { + $start = 0; $idx = $start; $step = 1; $vstep = $origvstep; + } + + // Walk through all slices within this cluster + for($j=0; $j < $csize; ++$j) { + // Now adjust the position of the labels in each cluster starting + // with the slice that is closest to the equator of the pie + $a = $this->la[$clusters[$i][0]+$idx]; + + // Guide line start in the center of the arc of the slice + $r = $radius+$this->explode_radius[$n-1-($clusters[$i][0]+$idx)]; + $x = round($r*cos($a)+$xc); + $y = round($yc-$r*sin($a)); + + // The distance from the arc depends on chosen font and the "R-Factor" + $r += $fh*$this->iGuideLineRFactor; + + // Should the labels be placed curved along the pie or in straight columns + // outside the pie? + if( $this->iGuideLineCurve ) + $xt=round($r*cos($a)+$xc); + + // If this is the first slice in the cluster we need some first time + // proessing + if( $idx == $start ) { + if( ! $this->iGuideLineCurve ) + $xt=round($r*cos($a)+$xc); + $yt=round($yc-$r*sin($a)); + + // Some special consideration in case this cluster starts + // in quadrant 1 or 3 very close to the "equator" (< 20 degrees) + // and the previous clusters last slice is within the tolerance. + // In that case we add a font height to this labels Y-position + // so it doesn't collide with + // the slice in the previous cluster + $prevcluster = ($i + ($nc-1) ) % $nc; + $previdx=$clusters[$prevcluster][0]+$clusters[$prevcluster][1]-1; + if( $q == 1 && $a > 160*M_PI/180 ) { + // Get the angle for the previous clusters last slice + $diff = abs($a-$this->la[$previdx]); + if( $diff < $tresh_hold ) { + $yt -= $fh; + } + } + elseif( $q == 3 && $a > 340*M_PI/180 ) { + // We need to subtract 360 to compare angle distance between + // q=0 and q=3 + $diff = abs($a-$this->la[$previdx]-360*M_PI/180); + if( $diff < $tresh_hold ) { + $yt += $fh; + } + } + + } + else { + // The step is at minimum $vstep but if the slices are relatively large + // we make sure that we add at least a step that corresponds to the vertical + // distance between the centers at the arc on the slice + $prev_a = $this->la[$clusters[$i][0]+($idx-$step)]; + $dy = abs($radius*(sin($a)-sin($prev_a))*1.2); + if( $vstep > 0 ) + $yt += max($vstep,$dy); + else + $yt += min($vstep,-$dy); + } + + $label = $this->labels[$clusters[$i][0]+$idx]; + + if( $csize == 1 ) { + // A "meta" cluster with only one slice + $r = $radius+$this->explode_radius[$n-1-($clusters[$i][0]+$idx)]; + $rr = $r+$img->GetFontHeight()/2; + $xt=round($rr*cos($a)+$xc); + $yt=round($yc-$rr*sin($a)); + $this->StrokeLabel($label,$img,$xc,$yc,$a,$r); + if( $this->iShowGuideLineForSingle ) + $this->guideline->Stroke($img,$x,$y,$xt,$yt); + } + else { + $this->guideline->Stroke($img,$x,$y,$xt,$yt); + if( $q==1 || $q==2 ) { + // Left side of Pie + $this->guideline->Stroke($img,$xt,$yt,$xt-$this->guidelinemargin,$yt); + $lbladj = -$this->guidelinemargin-5; + $this->value->halign = "right"; + $this->value->valign = "center"; + } + else { + // Right side of pie + $this->guideline->Stroke($img,$xt,$yt,$xt+$this->guidelinemargin,$yt); + $lbladj = $this->guidelinemargin+5; + $this->value->halign = "left"; + $this->value->valign = "center"; + } + $this->value->Stroke($img,$label,$xt+$lbladj,$yt); + } + + // Udate idx to point to next slice in the cluster to process + $idx += $step; + } + } + } + + function StrokeAllLabels($img,$xc,$yc,$radius) { + // First normalize all angles for labels + $n = count($this->la); + for($i=0; $i < $n; ++$i) { + $this->la[$i] = $this->NormAngle($this->la[$i]); + } + if( $this->guideline->iShow ) { + $this->StrokeGuideLabels($img,$xc,$yc,$radius); + } + else { + $n = count($this->labels); + for($i=0; $i < $n; ++$i) { + $this->StrokeLabel($this->labels[$i],$img,$xc,$yc, + $this->la[$i], + $radius + $this->explode_radius[$n-1-$i]); + } + } + } + + // Position the labels of each slice + function StrokeLabel($label,$img,$xc,$yc,$a,$r) { + + // Default value + if( $this->ilabelposadj === 'auto' ) + $this->ilabelposadj = 0.65; + + // We position the values diferently depending on if they are inside + // or outside the pie + if( $this->ilabelposadj < 1.0 ) { + + $this->value->SetAlign('center','center'); + $this->value->margin = 0; + + $xt=round($this->ilabelposadj*$r*cos($a)+$xc); + $yt=round($yc-$this->ilabelposadj*$r*sin($a)); + + $this->value->Stroke($img,$label,$xt,$yt); + } + else { + + $this->value->halign = "left"; + $this->value->valign = "top"; + $this->value->margin = 0; + + // Position the axis title. + // dx, dy is the offset from the top left corner of the bounding box that sorrounds the text + // that intersects with the extension of the corresponding axis. The code looks a little + // bit messy but this is really the only way of having a reasonable position of the + // axis titles. + $this->value->ApplyFont($img); + $h=$img->GetTextHeight($label); + // For numeric values the format of the display value + // must be taken into account + if( is_numeric($label) ) { + if( $label > 0 ) + $w=$img->GetTextWidth(sprintf($this->value->format,$label)); + else + $w=$img->GetTextWidth(sprintf($this->value->negformat,$label)); + } + else + $w=$img->GetTextWidth($label); + + if( $this->ilabelposadj > 1.0 && $this->ilabelposadj < 5.0) { + $r *= $this->ilabelposadj; + } + + $r += $img->GetFontHeight()/1.5; + + $xt=round($r*cos($a)+$xc); + $yt=round($yc-$r*sin($a)); + + // Normalize angle + while( $a < 0 ) $a += 2*M_PI; + while( $a > 2*M_PI ) $a -= 2*M_PI; + + if( $a>=7*M_PI/4 || $a <= M_PI/4 ) $dx=0; + if( $a>=M_PI/4 && $a <= 3*M_PI/4 ) $dx=($a-M_PI/4)*2/M_PI; + if( $a>=3*M_PI/4 && $a <= 5*M_PI/4 ) $dx=1; + if( $a>=5*M_PI/4 && $a <= 7*M_PI/4 ) $dx=(1-($a-M_PI*5/4)*2/M_PI); + + if( $a>=7*M_PI/4 ) $dy=(($a-M_PI)-3*M_PI/4)*2/M_PI; + if( $a<=M_PI/4 ) $dy=(1-$a*2/M_PI); + if( $a>=M_PI/4 && $a <= 3*M_PI/4 ) $dy=1; + if( $a>=3*M_PI/4 && $a <= 5*M_PI/4 ) $dy=(1-($a-3*M_PI/4)*2/M_PI); + if( $a>=5*M_PI/4 && $a <= 7*M_PI/4 ) $dy=0; + + $this->value->Stroke($img,$label,$xt-$dx*$w,$yt-$dy*$h); + } + } +} // Class + + +//=================================================== +// CLASS PiePlotC +// Description: Same as a normal pie plot but with a +// filled circle in the center +//=================================================== +class PiePlotC extends PiePlot { + private $imidsize=0.5; // Fraction of total width + private $imidcolor='white'; + public $midtitle=''; + private $middlecsimtarget='',$middlecsimwintarget='',$middlecsimalt=''; + + function __construct($data,$aCenterTitle='') { + parent::__construct($data); + $this->midtitle = new Text(); + $this->midtitle->ParagraphAlign('center'); + } + + function SetMid($aTitle,$aColor='white',$aSize=0.5) { + $this->midtitle->Set($aTitle); + + $this->imidsize = $aSize ; + $this->imidcolor = $aColor ; + } + + function SetMidTitle($aTitle) { + $this->midtitle->Set($aTitle); + } + + function SetMidSize($aSize) { + $this->imidsize = $aSize ; + } + + function SetMidColor($aColor) { + $this->imidcolor = $aColor ; + } + + function SetMidCSIM($aTarget,$aAlt='',$aWinTarget='') { + $this->middlecsimtarget = $aTarget; + $this->middlecsimwintarget = $aWinTarget; + $this->middlecsimalt = $aAlt; + } + + function AddSliceToCSIM($i,$xc,$yc,$radius,$sa,$ea) { + //Slice number, ellipse centre (x,y), radius, start angle, end angle + while( $sa > 2*M_PI ) $sa = $sa - 2*M_PI; + while( $ea > 2*M_PI ) $ea = $ea - 2*M_PI; + + $sa = 2*M_PI - $sa; + $ea = 2*M_PI - $ea; + + // Special case when we have only one slice since then both start and end + // angle will be == 0 + if( abs($sa - $ea) < 0.0001 ) { + $sa=2*M_PI; $ea=0; + } + + // Add inner circle first point + $xp = floor(($this->imidsize*$radius*cos($ea))+$xc); + $yp = floor($yc-($this->imidsize*$radius*sin($ea))); + $coords = "$xp, $yp"; + + //add coordinates every 0.25 radians + $a=$ea+0.25; + + // If we cross the 360-limit with a slice we need to handle + // the fact that end angle is smaller than start + if( $sa < $ea ) { + while ($a <= 2*M_PI) { + $xp = floor($radius*cos($a)+$xc); + $yp = floor($yc-$radius*sin($a)); + $coords.= ", $xp, $yp"; + $a += 0.25; + } + $a -= 2*M_PI; + } + + while ($a < $sa) { + $xp = floor(($this->imidsize*$radius*cos($a)+$xc)); + $yp = floor($yc-($this->imidsize*$radius*sin($a))); + $coords.= ", $xp, $yp"; + $a += 0.25; + } + + // Make sure we end at the last point + $xp = floor(($this->imidsize*$radius*cos($sa)+$xc)); + $yp = floor($yc-($this->imidsize*$radius*sin($sa))); + $coords.= ", $xp, $yp"; + + // Straight line to outer circle + $xp = floor($radius*cos($sa)+$xc); + $yp = floor($yc-$radius*sin($sa)); + $coords.= ", $xp, $yp"; + + //add coordinates every 0.25 radians + $a=$sa - 0.25; + while ($a > $ea) { + $xp = floor($radius*cos($a)+$xc); + $yp = floor($yc-$radius*sin($a)); + $coords.= ", $xp, $yp"; + $a -= 0.25; + } + + //Add the last point on the arc + $xp = floor($radius*cos($ea)+$xc); + $yp = floor($yc-$radius*sin($ea)); + $coords.= ", $xp, $yp"; + + // Close the arc + $xp = floor(($this->imidsize*$radius*cos($ea))+$xc); + $yp = floor($yc-($this->imidsize*$radius*sin($ea))); + $coords .= ", $xp, $yp"; + + if( !empty($this->csimtargets[$i]) ) { + $this->csimareas .= "csimtargets[$i]."\""; + if( !empty($this->csimwintargets[$i]) ) { + $this->csimareas .= " target=\"".$this->csimwintargets[$i]."\" "; + } + if( !empty($this->csimalts[$i]) ) { + $tmp=sprintf($this->csimalts[$i],$this->data[$i]); + $this->csimareas .= " title=\"$tmp\" alt=\"$tmp\" "; + } + $this->csimareas .= " />\n"; + } + } + + + function Stroke($img,$aaoption=0) { + + // Stroke the pie but don't stroke values + $tmp = $this->value->show; + $this->value->show = false; + parent::Stroke($img,$aaoption); + $this->value->show = $tmp; + + $xc = round($this->posx*$img->width); + $yc = round($this->posy*$img->height); + + $radius = floor($this->radius * min($img->width,$img->height)) ; + + + if( $this->imidsize > 0 && $aaoption !== 2 ) { + + if( $this->ishadowcolor != "" ) { + $img->SetColor($this->ishadowcolor); + $img->FilledCircle($xc+$this->ishadowdrop,$yc+$this->ishadowdrop, + round($radius*$this->imidsize)); + } + + $img->SetColor($this->imidcolor); + $img->FilledCircle($xc,$yc,round($radius*$this->imidsize)); + + if( $this->pie_border && $aaoption === 0 ) { + $img->SetColor($this->color); + $img->Circle($xc,$yc,round($radius*$this->imidsize)); + } + + if( !empty($this->middlecsimtarget) ) + $this->AddMiddleCSIM($xc,$yc,round($radius*$this->imidsize)); + + } + + if( $this->value->show && $aaoption !== 1) { + $this->StrokeAllLabels($img,$xc,$yc,$radius); + $this->midtitle->SetPos($xc,$yc,'center','center'); + $this->midtitle->Stroke($img); + } + + } + + function AddMiddleCSIM($xc,$yc,$r) { + $xc=round($xc);$yc=round($yc);$r=round($r); + $this->csimareas .= "middlecsimtarget."\""; + if( !empty($this->middlecsimwintarget) ) { + $this->csimareas .= " target=\"".$this->middlecsimwintarget."\""; + } + if( !empty($this->middlecsimalt) ) { + $tmp = $this->middlecsimalt; + $this->csimareas .= " title=\"$tmp\" alt=\"$tmp\" "; + } + $this->csimareas .= " />\n"; + } + + function StrokeLabel($label,$img,$xc,$yc,$a,$r) { + + if( $this->ilabelposadj === 'auto' ) + $this->ilabelposadj = (1-$this->imidsize)/2+$this->imidsize; + + parent::StrokeLabel($label,$img,$xc,$yc,$a,$r); + + } + +} + + +//=================================================== +// CLASS PieGraph +// Description: +//=================================================== +class PieGraph extends Graph { + private $posx, $posy, $radius; + private $legends=array(); + public $plots=array(); + public $pieaa = false ; + //--------------- + // CONSTRUCTOR + function __construct($width=300,$height=200,$cachedName="",$timeout=0,$inline=1) { + parent::__construct($width,$height,$cachedName,$timeout,$inline); + $this->posx=$width/2; + $this->posy=$height/2; + $this->SetColor(array(255,255,255)); + } + + //--------------- + // PUBLIC METHODS + function Add($aObj) { + + if( is_array($aObj) && count($aObj) > 0 ) + $cl = $aObj[0]; + else + $cl = $aObj; + + if( $cl instanceof Text ) + $this->AddText($aObj); + elseif( class_exists('IconPlot',false) && ($cl instanceof IconPlot) ) + $this->AddIcon($aObj); + else { + if( is_array($aObj) ) { + $n = count($aObj); + for($i=0; $i < $n; ++$i ) { + $this->plots[] = $aObj[$i]; + } + } + else { + $this->plots[] = $aObj; + } + } + } + + function SetAntiAliasing($aFlg=true) { + $this->pieaa = $aFlg; + } + + function SetColor($c) { + $this->SetMarginColor($c); + } + + + function DisplayCSIMAreas() { + $csim=""; + foreach($this->plots as $p ) { + $csim .= $p->GetCSIMareas(); + } + + $csim.= $this->legend->GetCSIMareas(); + if (preg_match_all("/area shape=\"(\w+)\" coords=\"([0-9\, ]+)\"/", $csim, $coords)) { + $this->img->SetColor($this->csimcolor); + $n = count($coords[0]); + for ($i=0; $i < $n; $i++) { + if ($coords[1][$i]=="poly") { + preg_match_all('/\s*([0-9]+)\s*,\s*([0-9]+)\s*,*/',$coords[2][$i],$pts); + $this->img->SetStartPoint($pts[1][count($pts[0])-1],$pts[2][count($pts[0])-1]); + $m = count($pts[0]); + for ($j=0; $j < $m; $j++) { + $this->img->LineTo($pts[1][$j],$pts[2][$j]); + } + } else if ($coords[1][$i]=="rect") { + $pts = preg_split('/,/', $coords[2][$i]); + $this->img->SetStartPoint($pts[0],$pts[1]); + $this->img->LineTo($pts[2],$pts[1]); + $this->img->LineTo($pts[2],$pts[3]); + $this->img->LineTo($pts[0],$pts[3]); + $this->img->LineTo($pts[0],$pts[1]); + + } + } + } + } + + // Method description + function Stroke($aStrokeFileName="") { + // If the filename is the predefined value = '_csim_special_' + // we assume that the call to stroke only needs to do enough + // to correctly generate the CSIM maps. + // We use this variable to skip things we don't strictly need + // to do to generate the image map to improve performance + // a best we can. Therefor you will see a lot of tests !$_csim in the + // code below. + $_csim = ($aStrokeFileName===_CSIM_SPECIALFILE); + + // If we are called the second time (perhaps the user has called GetHTMLImageMap() + // himself then the legends have alsready been populated once in order to get the + // CSIM coordinats. Since we do not want the legends to be populated a second time + // we clear the legends + $this->legend->Clear(); + + // We need to know if we have stroked the plot in the + // GetCSIMareas. Otherwise the CSIM hasn't been generated + // and in the case of GetCSIM called before stroke to generate + // CSIM without storing an image to disk GetCSIM must call Stroke. + $this->iHasStroked = true; + + $n = count($this->plots); + + if( $this->pieaa ) { + + if( !$_csim ) { + if( $this->background_image != "" ) { + $this->StrokeFrameBackground(); + } + else { + $this->StrokeFrame(); + $this->StrokeBackgroundGrad(); + } + } + + + $w = $this->img->width; + $h = $this->img->height; + $oldimg = $this->img->img; + + $this->img->CreateImgCanvas(2*$w,2*$h); + + $this->img->SetColor( $this->margin_color ); + $this->img->FilledRectangle(0,0,2*$w-1,2*$h-1); + + // Make all icons *2 i size since we will be scaling down the + // imahe to do the anti aliasing + $ni = count($this->iIcons); + for($i=0; $i < $ni; ++$i) { + $this->iIcons[$i]->iScale *= 2 ; + if( $this->iIcons[$i]->iX > 1 ) + $this->iIcons[$i]->iX *= 2 ; + if( $this->iIcons[$i]->iY > 1 ) + $this->iIcons[$i]->iY *= 2 ; + } + + $this->StrokeIcons(); + + for($i=0; $i < $n; ++$i) { + if( $this->plots[$i]->posx > 1 ) + $this->plots[$i]->posx *= 2 ; + if( $this->plots[$i]->posy > 1 ) + $this->plots[$i]->posy *= 2 ; + + $this->plots[$i]->Stroke($this->img,1); + + if( $this->plots[$i]->posx > 1 ) + $this->plots[$i]->posx /= 2 ; + if( $this->plots[$i]->posy > 1 ) + $this->plots[$i]->posy /= 2 ; + } + + $indent = $this->doframe ? ($this->frame_weight + ($this->doshadow ? $this->shadow_width : 0 )) : 0 ; + $indent += $this->framebevel ? $this->framebeveldepth + 1 : 0 ; + $this->img->CopyCanvasH($oldimg,$this->img->img,$indent,$indent,$indent,$indent, + $w-2*$indent,$h-2*$indent,2*($w-$indent),2*($h-$indent)); + + $this->img->img = $oldimg ; + $this->img->width = $w ; + $this->img->height = $h ; + + for($i=0; $i < $n; ++$i) { + $this->plots[$i]->Stroke($this->img,2); // Stroke labels + $this->plots[$i]->Legend($this); + } + + } + else { + + if( !$_csim ) { + if( $this->background_image != "" ) { + $this->StrokeFrameBackground(); + } + else { + $this->StrokeFrame(); + $this->StrokeBackgroundGrad(); + } + } + + $this->StrokeIcons(); + + for($i=0; $i < $n; ++$i) { + $this->plots[$i]->Stroke($this->img); + $this->plots[$i]->Legend($this); + } + } + + $this->legend->Stroke($this->img); + $this->footer->Stroke($this->img); + $this->StrokeTitles(); + + if( !$_csim ) { + + // Stroke texts + if( $this->texts != null ) { + $n = count($this->texts); + for($i=0; $i < $n; ++$i ) { + $this->texts[$i]->Stroke($this->img); + } + } + + if( _JPG_DEBUG ) { + $this->DisplayCSIMAreas(); + } + + // Should we do any final image transformation + if( $this->iImgTrans ) { + if( !class_exists('ImgTrans',false) ) { + require_once('jpgraph_imgtrans.php'); + //JpGraphError::Raise('In order to use image transformation you must include the file jpgraph_imgtrans.php in your script.'); + } + + $tform = new ImgTrans($this->img->img); + $this->img->img = $tform->Skew3D($this->iImgTransHorizon,$this->iImgTransSkewDist, + $this->iImgTransDirection,$this->iImgTransHighQ, + $this->iImgTransMinSize,$this->iImgTransFillColor, + $this->iImgTransBorder); + } + + + // If the filename is given as the special "__handle" + // then the image handler is returned and the image is NOT + // streamed back + if( $aStrokeFileName == _IMG_HANDLER ) { + return $this->img->img; + } + else { + // Finally stream the generated picture + $this->cache->PutAndStream($this->img,$this->cache_name,$this->inline, + $aStrokeFileName); + } + } + } +} // Class + +/* EOF */ +?> diff --git a/gosa-core/include/jpgraph/jpgraph_pie3d.php b/gosa-core/include/jpgraph/jpgraph_pie3d.php new file mode 100644 index 000000000..45cb2b2b9 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_pie3d.php @@ -0,0 +1,933 @@ +radius = 0.5; + $this->data = $data; + $this->title = new Text(""); + $this->title->SetFont(FF_FONT1,FS_BOLD); + $this->value = new DisplayValue(); + $this->value->Show(); + $this->value->SetFormat('%.0f%%'); + } + + //--------------- + // PUBLIC METHODS + + // Set label arrays + function SetLegends($aLegend) { + $this->legends = array_reverse(array_slice($aLegend,0,count($this->data))); + } + + function SetSliceColors($aColors) { + $this->setslicecolors = $aColors; + } + + function Legend($aGraph) { + parent::Legend($aGraph); + $aGraph->legend->txtcol = array_reverse($aGraph->legend->txtcol); + } + + function SetCSIMTargets($aTargets,$aAlts='',$aWinTargets='') { + $this->csimtargets = $aTargets; + $this->csimwintargets = $aWinTargets; + $this->csimalts = $aAlts; + } + + // Should the slices be separated by a line? If color is specified as "" no line + // will be used to separate pie slices. + function SetEdge($aColor='black',$aWeight=1) { + $this->edgecolor = $aColor; + $this->edgeweight = $aWeight; + } + + // Specify projection angle for 3D in degrees + // Must be between 20 and 70 degrees + function SetAngle($a) { + if( $a<5 || $a>90 ) { + JpGraphError::RaiseL(14002); + //("PiePlot3D::SetAngle() 3D Pie projection angle must be between 5 and 85 degrees."); + } + else { + $this->angle = $a; + } + } + + function Add3DSliceToCSIM($i,$xc,$yc,$height,$width,$thick,$sa,$ea) { //Slice number, ellipse centre (x,y), height, width, start angle, end angle + + $sa *= M_PI/180; + $ea *= M_PI/180; + + //add coordinates of the centre to the map + $coords = "$xc, $yc"; + + //add coordinates of the first point on the arc to the map + $xp = floor($width*cos($sa)/2+$xc); + $yp = floor($yc-$height*sin($sa)/2); + $coords.= ", $xp, $yp"; + + //If on the front half, add the thickness offset + if ($sa >= M_PI && $sa <= 2*M_PI*1.01) { + $yp = floor($yp+$thick); + $coords.= ", $xp, $yp"; + } + + //add coordinates every 0.2 radians + $a=$sa+0.2; + while ($a<$ea) { + $xp = floor($width*cos($a)/2+$xc); + if ($a >= M_PI && $a <= 2*M_PI*1.01) { + $yp = floor($yc-($height*sin($a)/2)+$thick); + } else { + $yp = floor($yc-$height*sin($a)/2); + } + $coords.= ", $xp, $yp"; + $a += 0.2; + } + + //Add the last point on the arc + $xp = floor($width*cos($ea)/2+$xc); + $yp = floor($yc-$height*sin($ea)/2); + + + if ($ea >= M_PI && $ea <= 2*M_PI*1.01) { + $coords.= ", $xp, ".floor($yp+$thick); + } + $coords.= ", $xp, $yp"; + $alt=''; + + if( !empty($this->csimtargets[$i]) ) { + $this->csimareas .= "csimtargets[$i]."\""; + + if( !empty($this->csimwintargets[$i]) ) { + $this->csimareas .= " target=\"".$this->csimwintargets[$i]."\" "; + } + + if( !empty($this->csimalts[$i]) ) { + $tmp=sprintf($this->csimalts[$i],$this->data[$i]); + $this->csimareas .= "alt=\"$tmp\" title=\"$tmp\" "; + } + $this->csimareas .= " />\n"; + } + + } + + function SetLabels($aLabels,$aLblPosAdj="auto") { + $this->labels = $aLabels; + $this->ilabelposadj=$aLblPosAdj; + } + + + // Distance from the pie to the labels + function SetLabelMargin($m) { + $this->value->SetMargin($m); + } + + // Show a thin line from the pie to the label for a specific slice + function ShowLabelHint($f=true) { + $this->showlabelhint=$f; + } + + // Set color of hint line to label for each slice + function SetLabelHintColor($c) { + $this->labelhintcolor=$c; + } + + function SetHeight($aHeight) { + $this->iThickness = $aHeight; + } + + + // Normalize Angle between 0-360 + function NormAngle($a) { + // Normalize anle to 0 to 2M_PI + // + if( $a > 0 ) { + while($a > 360) $a -= 360; + } + else { + while($a < 0) $a += 360; + } + if( $a < 0 ) + $a = 360 + $a; + + if( $a == 360 ) $a=0; + return $a; + } + + + + // Draw one 3D pie slice at position ($xc,$yc) with height $z + function Pie3DSlice($img,$xc,$yc,$w,$h,$sa,$ea,$z,$fillcolor,$shadow=0.65) { + + // Due to the way the 3D Pie algorithm works we are + // guaranteed that any slice we get into this method + // belongs to either the left or right side of the + // pie ellipse. Hence, no slice will cross 90 or 270 + // point. + if( ($sa < 90 && $ea > 90) || ( ($sa > 90 && $sa < 270) && $ea > 270) ) { + JpGraphError::RaiseL(14003);//('Internal assertion failed. Pie3D::Pie3DSlice'); + exit(1); + } + + $p[] = array(); + + // Setup pre-calculated values + $rsa = $sa/180*M_PI; // to Rad + $rea = $ea/180*M_PI; // to Rad + $sinsa = sin($rsa); + $cossa = cos($rsa); + $sinea = sin($rea); + $cosea = cos($rea); + + // p[] is the points for the overall slice and + // pt[] is the points for the top pie + + // Angular step when approximating the arc with a polygon train. + $step = 0.05; + + if( $sa >= 270 ) { + if( $ea > 360 || ($ea > 0 && $ea <= 90) ) { + if( $ea > 0 && $ea <= 90 ) { + // Adjust angle to simplify conditions in loops + $rea += 2*M_PI; + } + + $p = array($xc,$yc,$xc,$yc+$z, + $xc+$w*$cossa,$z+$yc-$h*$sinsa); + $pt = array($xc,$yc,$xc+$w*$cossa,$yc-$h*$sinsa); + + for( $a=$rsa; $a < 2*M_PI; $a += $step ) { + $tca = cos($a); + $tsa = sin($a); + $p[] = $xc+$w*$tca; + $p[] = $z+$yc-$h*$tsa; + $pt[] = $xc+$w*$tca; + $pt[] = $yc-$h*$tsa; + } + + $pt[] = $xc+$w; + $pt[] = $yc; + + $p[] = $xc+$w; + $p[] = $z+$yc; + $p[] = $xc+$w; + $p[] = $yc; + $p[] = $xc; + $p[] = $yc; + + for( $a=2*M_PI+$step; $a < $rea; $a += $step ) { + $pt[] = $xc + $w*cos($a); + $pt[] = $yc - $h*sin($a); + } + + $pt[] = $xc+$w*$cosea; + $pt[] = $yc-$h*$sinea; + $pt[] = $xc; + $pt[] = $yc; + + } + else { + $p = array($xc,$yc,$xc,$yc+$z, + $xc+$w*$cossa,$z+$yc-$h*$sinsa); + $pt = array($xc,$yc,$xc+$w*$cossa,$yc-$h*$sinsa); + + $rea = $rea == 0.0 ? 2*M_PI : $rea; + for( $a=$rsa; $a < $rea; $a += $step ) { + $tca = cos($a); + $tsa = sin($a); + $p[] = $xc+$w*$tca; + $p[] = $z+$yc-$h*$tsa; + $pt[] = $xc+$w*$tca; + $pt[] = $yc-$h*$tsa; + } + + $pt[] = $xc+$w*$cosea; + $pt[] = $yc-$h*$sinea; + $pt[] = $xc; + $pt[] = $yc; + + $p[] = $xc+$w*$cosea; + $p[] = $z+$yc-$h*$sinea; + $p[] = $xc+$w*$cosea; + $p[] = $yc-$h*$sinea; + $p[] = $xc; + $p[] = $yc; + } + } + elseif( $sa >= 180 ) { + $p = array($xc,$yc,$xc,$yc+$z,$xc+$w*$cosea,$z+$yc-$h*$sinea); + $pt = array($xc,$yc,$xc+$w*$cosea,$yc-$h*$sinea); + + for( $a=$rea; $a>$rsa; $a -= $step ) { + $tca = cos($a); + $tsa = sin($a); + $p[] = $xc+$w*$tca; + $p[] = $z+$yc-$h*$tsa; + $pt[] = $xc+$w*$tca; + $pt[] = $yc-$h*$tsa; + } + + $pt[] = $xc+$w*$cossa; + $pt[] = $yc-$h*$sinsa; + $pt[] = $xc; + $pt[] = $yc; + + $p[] = $xc+$w*$cossa; + $p[] = $z+$yc-$h*$sinsa; + $p[] = $xc+$w*$cossa; + $p[] = $yc-$h*$sinsa; + $p[] = $xc; + $p[] = $yc; + + } + elseif( $sa >= 90 ) { + if( $ea > 180 ) { + $p = array($xc,$yc,$xc,$yc+$z,$xc+$w*$cosea,$z+$yc-$h*$sinea); + $pt = array($xc,$yc,$xc+$w*$cosea,$yc-$h*$sinea); + + for( $a=$rea; $a > M_PI; $a -= $step ) { + $tca = cos($a); + $tsa = sin($a); + $p[] = $xc+$w*$tca; + $p[] = $z + $yc - $h*$tsa; + $pt[] = $xc+$w*$tca; + $pt[] = $yc-$h*$tsa; + } + + $p[] = $xc-$w; + $p[] = $z+$yc; + $p[] = $xc-$w; + $p[] = $yc; + $p[] = $xc; + $p[] = $yc; + + $pt[] = $xc-$w; + $pt[] = $z+$yc; + $pt[] = $xc-$w; + $pt[] = $yc; + + for( $a=M_PI-$step; $a > $rsa; $a -= $step ) { + $pt[] = $xc + $w*cos($a); + $pt[] = $yc - $h*sin($a); + } + + $pt[] = $xc+$w*$cossa; + $pt[] = $yc-$h*$sinsa; + $pt[] = $xc; + $pt[] = $yc; + + } + else { // $sa >= 90 && $ea <= 180 + $p = array($xc,$yc,$xc,$yc+$z, + $xc+$w*$cosea,$z+$yc-$h*$sinea, + $xc+$w*$cosea,$yc-$h*$sinea, + $xc,$yc); + + $pt = array($xc,$yc,$xc+$w*$cosea,$yc-$h*$sinea); + + for( $a=$rea; $a>$rsa; $a -= $step ) { + $pt[] = $xc + $w*cos($a); + $pt[] = $yc - $h*sin($a); + } + + $pt[] = $xc+$w*$cossa; + $pt[] = $yc-$h*$sinsa; + $pt[] = $xc; + $pt[] = $yc; + + } + } + else { // sa > 0 && ea < 90 + + $p = array($xc,$yc,$xc,$yc+$z, + $xc+$w*$cossa,$z+$yc-$h*$sinsa, + $xc+$w*$cossa,$yc-$h*$sinsa, + $xc,$yc); + + $pt = array($xc,$yc,$xc+$w*$cossa,$yc-$h*$sinsa); + + for( $a=$rsa; $a < $rea; $a += $step ) { + $pt[] = $xc + $w*cos($a); + $pt[] = $yc - $h*sin($a); + } + + $pt[] = $xc+$w*$cosea; + $pt[] = $yc-$h*$sinea; + $pt[] = $xc; + $pt[] = $yc; + } + + $img->PushColor($fillcolor.":".$shadow); + $img->FilledPolygon($p); + $img->PopColor(); + + $img->PushColor($fillcolor); + $img->FilledPolygon($pt); + $img->PopColor(); + } + + function SetStartAngle($aStart) { + if( $aStart < 0 || $aStart > 360 ) { + JpGraphError::RaiseL(14004);//('Slice start angle must be between 0 and 360 degrees.'); + } + $this->startangle = $aStart; + } + + // Draw a 3D Pie + function Pie3D($aaoption,$img,$data,$colors,$xc,$yc,$d,$angle,$z, + $shadow=0.65,$startangle=0,$edgecolor="",$edgeweight=1) { + + //--------------------------------------------------------------------------- + // As usual the algorithm get more complicated than I originally + // envisioned. I believe that this is as simple as it is possible + // to do it with the features I want. It's a good exercise to start + // thinking on how to do this to convince your self that all this + // is really needed for the general case. + // + // The algorithm two draw 3D pies without "real 3D" is done in + // two steps. + // First imagine the pie cut in half through a thought line between + // 12'a clock and 6'a clock. It now easy to imagine that we can plot + // the individual slices for each half by starting with the topmost + // pie slice and continue down to 6'a clock. + // + // In the algortithm this is done in three principal steps + // Step 1. Do the knife cut to ensure by splitting slices that extends + // over the cut line. This is done by splitting the original slices into + // upto 3 subslices. + // Step 2. Find the top slice for each half + // Step 3. Draw the slices from top to bottom + // + // The thing that slightly complicates this scheme with all the + // angle comparisons below is that we can have an arbitrary start + // angle so we must take into account the different equivalence classes. + // For the same reason we must walk through the angle array in a + // modulo fashion. + // + // Limitations of algorithm: + // * A small exploded slice which crosses the 270 degree point + // will get slightly nagged close to the center due to the fact that + // we print the slices in Z-order and that the slice left part + // get printed first and might get slightly nagged by a larger + // slice on the right side just before the right part of the small + // slice. Not a major problem though. + //--------------------------------------------------------------------------- + + + // Determine the height of the ellippse which gives an + // indication of the inclination angle + $h = ($angle/90.0)*$d; + $sum = 0; + for($i=0; $ilabeltype == 2 ) { + $this->adjusted_data = $this->AdjPercentage($data); + } + + // Setup the start + $accsum = 0; + $a = $startangle; + $a = $this->NormAngle($a); + + // + // Step 1 . Split all slices that crosses 90 or 270 + // + $idx=0; + $adjexplode=array(); + $numcolors = count($colors); + for($i=0; $iexplode_radius[$i]) ) { + $this->explode_radius[$i]=0; + } + + $expscale=1; + if( $aaoption == 1 ) { + $expscale=2; + } + + $la = $a + $da/2; + $explode = array( $xc + $this->explode_radius[$i]*cos($la*M_PI/180)*$expscale, + $yc - $this->explode_radius[$i]*sin($la*M_PI/180) * ($h/$d) *$expscale ); + $adjexplode[$idx] = $explode; + $labeldata[$i] = array($la,$explode[0],$explode[1]); + $originalangles[$i] = array($a,$a+$da); + + $ne = $this->NormAngle($a+$da); + if( $da <= 180 ) { + // If the slice size is <= 90 it can at maximum cut across + // one boundary (either 90 or 270) where it needs to be split + $split=-1; // no split + if( ($da<=90 && ($a <= 90 && $ne > 90)) || + (($da <= 180 && $da >90) && (($a < 90 || $a >= 270) && $ne > 90)) ) { + $split = 90; + } + elseif( ($da<=90 && ($a <= 270 && $ne > 270)) || + (($da<=180 && $da>90) && ($a >= 90 && $a < 270 && ($a+$da) > 270 )) ) { + $split = 270; + } + if( $split > 0 ) { // split in two + $angles[$idx] = array($a,$split); + $adjcolors[$idx] = $colors[$i % $numcolors]; + $adjexplode[$idx] = $explode; + $angles[++$idx] = array($split,$ne); + $adjcolors[$idx] = $colors[$i % $numcolors]; + $adjexplode[$idx] = $explode; + } + else { // no split + $angles[$idx] = array($a,$ne); + $adjcolors[$idx] = $colors[$i % $numcolors]; + $adjexplode[$idx] = $explode; + } + } + else { + // da>180 + // Slice may, depending on position, cross one or two + // bonudaries + + if( $a < 90 ) $split = 90; + elseif( $a <= 270 ) $split = 270; + else $split = 90; + + $angles[$idx] = array($a,$split); + $adjcolors[$idx] = $colors[$i % $numcolors]; + $adjexplode[$idx] = $explode; + //if( $a+$da > 360-$split ) { + // For slices larger than 270 degrees we might cross + // another boundary as well. This means that we must + // split the slice further. The comparison gets a little + // bit complicated since we must take into accound that + // a pie might have a startangle >0 and hence a slice might + // wrap around the 0 angle. + // Three cases: + // a) Slice starts before 90 and hence gets a split=90, but + // we must also check if we need to split at 270 + // b) Slice starts after 90 but before 270 and slices + // crosses 90 (after a wrap around of 0) + // c) If start is > 270 (hence the firstr split is at 90) + // and the slice is so large that it goes all the way + // around 270. + if( ($a < 90 && ($a+$da > 270)) || ($a > 90 && $a<=270 && ($a+$da>360+90) ) || ($a > 270 && $this->NormAngle($a+$da)>270) ) { + $angles[++$idx] = array($split,360-$split); + $adjcolors[$idx] = $colors[$i % $numcolors]; + $adjexplode[$idx] = $explode; + $angles[++$idx] = array(360-$split,$ne); + $adjcolors[$idx] = $colors[$i % $numcolors]; + $adjexplode[$idx] = $explode; + } + else { + // Just a simple split to the previous decided + // angle. + $angles[++$idx] = array($split,$ne); + $adjcolors[$idx] = $colors[$i % $numcolors]; + $adjexplode[$idx] = $explode; + } + } + $a += $da; + $a = $this->NormAngle($a); + } + + // Total number of slices + $n = count($angles); + + for($i=0; $i<$n; ++$i) { + list($dbgs,$dbge) = $angles[$i]; + } + + // + // Step 2. Find start index (first pie that starts in upper left quadrant) + // + $minval = $angles[0][0]; + $min = 0; + for( $i=0; $i<$n; ++$i ) { + if( $angles[$i][0] < $minval ) { + $minval = $angles[$i][0]; + $min = $i; + } + } + $j = $min; + $cnt = 0; + while( $angles[$j][1] <= 90 ) { + $j++; + if( $j>=$n) { + $j=0; + } + if( $cnt > $n ) { + JpGraphError::RaiseL(14005); + //("Pie3D Internal error (#1). Trying to wrap twice when looking for start index"); + } + ++$cnt; + } + $start = $j; + + // + // Step 3. Print slices in z-order + // + $cnt = 0; + + // First stroke all the slices between 90 and 270 (left half circle) + // counterclockwise + + while( $angles[$j][0] < 270 && $aaoption !== 2 ) { + + list($x,$y) = $adjexplode[$j]; + + $this->Pie3DSlice($img,$x,$y,$d,$h,$angles[$j][0],$angles[$j][1], + $z,$adjcolors[$j],$shadow); + + $last = array($x,$y,$j); + + $j++; + if( $j >= $n ) $j=0; + if( $cnt > $n ) { + JpGraphError::RaiseL(14006); + //("Pie3D Internal Error: Z-Sorting algorithm for 3D Pies is not working properly (2). Trying to wrap twice while stroking."); + } + ++$cnt; + } + + $slice_left = $n-$cnt; + $j=$start-1; + if($j<0) $j=$n-1; + $cnt = 0; + + // The stroke all slices from 90 to -90 (right half circle) + // clockwise + while( $cnt < $slice_left && $aaoption !== 2 ) { + + list($x,$y) = $adjexplode[$j]; + + $this->Pie3DSlice($img,$x,$y,$d,$h,$angles[$j][0],$angles[$j][1], + $z,$adjcolors[$j],$shadow); + $j--; + if( $cnt > $n ) { + JpGraphError::RaiseL(14006); + //("Pie3D Internal Error: Z-Sorting algorithm for 3D Pies is not working properly (2). Trying to wrap twice while stroking."); + } + if($j<0) $j=$n-1; + $cnt++; + } + + // Now do a special thing. Stroke the last slice on the left + // halfcircle one more time. This is needed in the case where + // the slice close to 270 have been exploded. In that case the + // part of the slice close to the center of the pie might be + // slightly nagged. + if( $aaoption !== 2 ) + $this->Pie3DSlice($img,$last[0],$last[1],$d,$h,$angles[$last[2]][0], + $angles[$last[2]][1],$z,$adjcolors[$last[2]],$shadow); + + + if( $aaoption !== 1 ) { + // Now print possible labels and add csim + $this->value->ApplyFont($img); + $margin = $img->GetFontHeight()/2 + $this->value->margin ; + for($i=0; $i < count($data); ++$i ) { + $la = $labeldata[$i][0]; + $x = $labeldata[$i][1] + cos($la*M_PI/180)*($d+$margin)*$this->ilabelposadj; + $y = $labeldata[$i][2] - sin($la*M_PI/180)*($h+$margin)*$this->ilabelposadj; + if( $this->ilabelposadj >= 1.0 ) { + if( $la > 180 && $la < 360 ) $y += $z; + } + if( $this->labeltype == 0 ) { + if( $sum > 0 ) $l = 100*$data[$i]/$sum; + else $l = 0; + } + elseif( $this->labeltype == 1 ) { + $l = $data[$i]; + } + else { + $l = $this->adjusted_data[$i]; + } + if( isset($this->labels[$i]) && is_string($this->labels[$i]) ) { + $l=sprintf($this->labels[$i],$l); + } + + $this->StrokeLabels($l,$img,$labeldata[$i][0]*M_PI/180,$x,$y,$z); + + $this->Add3DSliceToCSIM($i,$labeldata[$i][1],$labeldata[$i][2],$h*2,$d*2,$z, + $originalangles[$i][0],$originalangles[$i][1]); + } + } + + // + // Finally add potential lines in pie + // + + if( $edgecolor=="" || $aaoption !== 0 ) return; + + $accsum = 0; + $a = $startangle; + $a = $this->NormAngle($a); + + $a *= M_PI/180.0; + + $idx=0; + $img->PushColor($edgecolor); + $img->SetLineWeight($edgeweight); + + $fulledge = true; + for($i=0; $i < count($data) && $fulledge; ++$i ) { + if( empty($this->explode_radius[$i]) ) { + $this->explode_radius[$i]=0; + } + if( $this->explode_radius[$i] > 0 ) { + $fulledge = false; + } + } + + + for($i=0; $i < count($data); ++$i, ++$idx ) { + + $da = $data[$i]/$sum * 2*M_PI; + $this->StrokeFullSliceFrame($img,$xc,$yc,$a,$a+$da,$d,$h,$z,$edgecolor, + $this->explode_radius[$i],$fulledge); + $a += $da; + } + $img->PopColor(); + } + + function StrokeFullSliceFrame($img,$xc,$yc,$sa,$ea,$w,$h,$z,$edgecolor,$exploderadius,$fulledge) { + $step = 0.02; + + if( $exploderadius > 0 ) { + $la = ($sa+$ea)/2; + $xc += $exploderadius*cos($la); + $yc -= $exploderadius*sin($la) * ($h/$w) ; + + } + + $p = array($xc,$yc,$xc+$w*cos($sa),$yc-$h*sin($sa)); + + for($a=$sa; $a < $ea; $a += $step ) { + $p[] = $xc + $w*cos($a); + $p[] = $yc - $h*sin($a); + } + + $p[] = $xc+$w*cos($ea); + $p[] = $yc-$h*sin($ea); + $p[] = $xc; + $p[] = $yc; + + $img->SetColor($edgecolor); + $img->Polygon($p); + + // Unfortunately we can't really draw the full edge around the whole of + // of the slice if any of the slices are exploded. The reason is that + // this algorithm is to simply. There are cases where the edges will + // "overwrite" other slices when they have been exploded. + // Doing the full, proper 3D hidden lines stiff is actually quite + // tricky. So for exploded pies we only draw the top edge. Not perfect + // but the "real" solution is much more complicated. + if( $fulledge && !( $sa > 0 && $sa < M_PI && $ea < M_PI) ) { + + if($sa < M_PI && $ea > M_PI) { + $sa = M_PI; + } + + if($sa < 2*M_PI && (($ea >= 2*M_PI) || ($ea > 0 && $ea < $sa ) ) ) { + $ea = 2*M_PI; + } + + if( $sa >= M_PI && $ea <= 2*M_PI ) { + $p = array($xc + $w*cos($sa),$yc - $h*sin($sa), + $xc + $w*cos($sa),$z + $yc - $h*sin($sa)); + + for($a=$sa+$step; $a < $ea; $a += $step ) { + $p[] = $xc + $w*cos($a); + $p[] = $z + $yc - $h*sin($a); + } + $p[] = $xc + $w*cos($ea); + $p[] = $z + $yc - $h*sin($ea); + $p[] = $xc + $w*cos($ea); + $p[] = $yc - $h*sin($ea); + $img->SetColor($edgecolor); + $img->Polygon($p); + } + } + } + + function Stroke($img,$aaoption=0) { + $n = count($this->data); + + // If user hasn't set the colors use the theme array + if( $this->setslicecolors==null ) { + $colors = array_keys($img->rgb->rgb_table); + sort($colors); + $idx_a=$this->themearr[$this->theme]; + $ca = array(); + $m = count($idx_a); + for($i=0; $i < $m; ++$i) { + $ca[$i] = $colors[$idx_a[$i]]; + } + $ca = array_reverse(array_slice($ca,0,$n)); + } + else { + $ca = $this->setslicecolors; + } + + + if( $this->posx <= 1 && $this->posx > 0 ) { + $xc = round($this->posx*$img->width); + } + else { + $xc = $this->posx ; + } + + if( $this->posy <= 1 && $this->posy > 0 ) { + $yc = round($this->posy*$img->height); + } + else { + $yc = $this->posy ; + } + + if( $this->radius <= 1 ) { + $width = floor($this->radius*min($img->width,$img->height)); + // Make sure that the pie doesn't overflow the image border + // The 0.9 factor is simply an extra margin to leave some space + // between the pie an the border of the image. + $width = min($width,min($xc*0.9,($yc*90/$this->angle-$width/4)*0.9)); + } + else { + $width = $this->radius * ($aaoption === 1 ? 2 : 1 ) ; + } + + // Add a sanity check for width + if( $width < 1 ) { + JpGraphError::RaiseL(14007);//("Width for 3D Pie is 0. Specify a size > 0"); + } + + // Establish a thickness. By default the thickness is a fifth of the + // pie slice width (=pie radius) but since the perspective depends + // on the inclination angle we use some heuristics to make the edge + // slightly thicker the less the angle. + + // Has user specified an absolute thickness? In that case use + // that instead + + if( $this->iThickness ) { + $thick = $this->iThickness; + $thick *= ($aaoption === 1 ? 2 : 1 ); + } + else { + $thick = $width/12; + } + $a = $this->angle; + + if( $a <= 30 ) $thick *= 1.6; + elseif( $a <= 40 ) $thick *= 1.4; + elseif( $a <= 50 ) $thick *= 1.2; + elseif( $a <= 60 ) $thick *= 1.0; + elseif( $a <= 70 ) $thick *= 0.8; + elseif( $a <= 80 ) $thick *= 0.7; + else $thick *= 0.6; + + $thick = floor($thick); + + if( $this->explode_all ) { + for($i=0; $i < $n; ++$i) + $this->explode_radius[$i]=$this->explode_r; + } + + $this->Pie3D($aaoption,$img,$this->data, $ca, $xc, $yc, $width, $this->angle, + $thick, 0.65, $this->startangle, $this->edgecolor, $this->edgeweight); + + // Adjust title position + if( $aaoption != 1 ) { + $this->title->SetPos($xc,$yc-$this->title->GetFontHeight($img)-$width/2-$this->title->margin, "center","bottom"); + $this->title->Stroke($img); + } + } + + //--------------- + // PRIVATE METHODS + + // Position the labels of each slice + function StrokeLabels($label,$img,$a,$xp,$yp,$z) { + $this->value->halign="left"; + $this->value->valign="top"; + + // Position the axis title. + // dx, dy is the offset from the top left corner of the bounding box that sorrounds the text + // that intersects with the extension of the corresponding axis. The code looks a little + // bit messy but this is really the only way of having a reasonable position of the + // axis titles. + $this->value->ApplyFont($img); + $h=$img->GetTextHeight($label); + // For numeric values the format of the display value + // must be taken into account + if( is_numeric($label) ) { + if( $label >= 0 ) { + $w=$img->GetTextWidth(sprintf($this->value->format,$label)); + } + else { + $w=$img->GetTextWidth(sprintf($this->value->negformat,$label)); + } + } + else { + $w=$img->GetTextWidth($label); + } + + while( $a > 2*M_PI ) { + $a -= 2*M_PI; + } + + if( $a>=7*M_PI/4 || $a <= M_PI/4 ) $dx=0; + if( $a>=M_PI/4 && $a <= 3*M_PI/4 ) $dx=($a-M_PI/4)*2/M_PI; + if( $a>=3*M_PI/4 && $a <= 5*M_PI/4 ) $dx=1; + if( $a>=5*M_PI/4 && $a <= 7*M_PI/4 ) $dx=(1-($a-M_PI*5/4)*2/M_PI); + + if( $a>=7*M_PI/4 ) $dy=(($a-M_PI)-3*M_PI/4)*2/M_PI; + if( $a<=M_PI/4 ) $dy=(1-$a*2/M_PI); + if( $a>=M_PI/4 && $a <= 3*M_PI/4 ) $dy=1; + if( $a>=3*M_PI/4 && $a <= 5*M_PI/4 ) $dy=(1-($a-3*M_PI/4)*2/M_PI); + if( $a>=5*M_PI/4 && $a <= 7*M_PI/4 ) $dy=0; + + $x = round($xp-$dx*$w); + $y = round($yp-$dy*$h); + + // Mark anchor point for debugging + /* + $img->SetColor('red'); + $img->Line($xp-10,$yp,$xp+10,$yp); + $img->Line($xp,$yp-10,$xp,$yp+10); + */ + + $oldmargin = $this->value->margin; + $this->value->margin=0; + $this->value->Stroke($img,$label,$x,$y); + $this->value->margin=$oldmargin; + + } +} // Class + +/* EOF */ +?> diff --git a/gosa-core/include/jpgraph/jpgraph_plotband.php b/gosa-core/include/jpgraph/jpgraph_plotband.php new file mode 100644 index 000000000..1c78d33a4 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_plotband.php @@ -0,0 +1,635 @@ +x=$aX; + $this->y=$aY; + $this->w=$aWidth; + $this->h=$aHeight; + $this->xe=$aX+$aWidth-1; + $this->ye=$aY+$aHeight-1; + } +} + +//===================================================================== +// Class RectPattern +// Base class for pattern hierarchi that is used to display patterned +// bands on the graph. Any subclass that doesn't override Stroke() +// must at least implement method DoPattern($aImg) which is responsible +// for drawing the pattern onto the graph. +//===================================================================== +class RectPattern { + protected $color; + protected $weight; + protected $rect=null; + protected $doframe=true; + protected $linespacing; // Line spacing in pixels + protected $iBackgroundColor=-1; // Default is no background fill + + function __construct($aColor,$aWeight=1) { + $this->color = $aColor; + $this->weight = $aWeight; + } + + function SetBackground($aBackgroundColor) { + $this->iBackgroundColor=$aBackgroundColor; + } + + function SetPos($aRect) { + $this->rect = $aRect; + } + + function ShowFrame($aShow=true) { + $this->doframe=$aShow; + } + + function SetDensity($aDens) { + if( $aDens < 1 || $aDens > 100 ) + JpGraphError::RaiseL(16001,$aDens); + //(" Desity for pattern must be between 1 and 100. (You tried $aDens)"); + // 1% corresponds to linespacing=50 + // 100 % corresponds to linespacing 1 + $this->linespacing = floor(((100-$aDens)/100.0)*50)+1; + + } + + function Stroke($aImg) { + if( $this->rect == null ) + JpGraphError::RaiseL(16002); + //(" No positions specified for pattern."); + + if( !(is_numeric($this->iBackgroundColor) && $this->iBackgroundColor==-1) ) { + $aImg->SetColor($this->iBackgroundColor); + $aImg->FilledRectangle($this->rect->x,$this->rect->y,$this->rect->xe,$this->rect->ye); + } + + $aImg->SetColor($this->color); + $aImg->SetLineWeight($this->weight); + + // Virtual function implemented by subclass + $this->DoPattern($aImg); + + // Frame around the pattern area + if( $this->doframe ) + $aImg->Rectangle($this->rect->x,$this->rect->y,$this->rect->xe,$this->rect->ye); + } + +} + + +//===================================================================== +// Class RectPatternSolid +// Implements a solid band +//===================================================================== +class RectPatternSolid extends RectPattern { + + function __construct($aColor="black",$aWeight=1) { + parent::__construct($aColor,$aWeight); + } + + function DoPattern($aImg) { + $aImg->SetColor($this->color); + $aImg->FilledRectangle($this->rect->x,$this->rect->y, + $this->rect->xe,$this->rect->ye); + } +} + +//===================================================================== +// Class RectPatternHor +// Implements horizontal line pattern +//===================================================================== +class RectPatternHor extends RectPattern { + + function __construct($aColor="black",$aWeight=1,$aLineSpacing=7) { + parent::__construct($aColor,$aWeight); + $this->linespacing = $aLineSpacing; + } + + function DoPattern($aImg) { + $x0 = $this->rect->x; + $x1 = $this->rect->xe; + $y = $this->rect->y; + while( $y < $this->rect->ye ) { + $aImg->Line($x0,$y,$x1,$y); + $y += $this->linespacing; + } + } +} + +//===================================================================== +// Class RectPatternVert +// Implements vertical line pattern +//===================================================================== +class RectPatternVert extends RectPattern { + + function __construct($aColor="black",$aWeight=1,$aLineSpacing=7) { + parent::__construct($aColor,$aWeight); + $this->linespacing = $aLineSpacing; + } + + //-------------------- + // Private methods + // + function DoPattern($aImg) { + $x = $this->rect->x; + $y0 = $this->rect->y; + $y1 = $this->rect->ye; + while( $x < $this->rect->xe ) { + $aImg->Line($x,$y0,$x,$y1); + $x += $this->linespacing; + } + } +} + + +//===================================================================== +// Class RectPatternRDiag +// Implements right diagonal pattern +//===================================================================== +class RectPatternRDiag extends RectPattern { + + function __construct($aColor="black",$aWeight=1,$aLineSpacing=12) { + parent::__construct($aColor,$aWeight); + $this->linespacing = $aLineSpacing; + } + + function DoPattern($aImg) { + // -------------------- + // | / / / / /| + // |/ / / / / | + // | / / / / | + // -------------------- + $xe = $this->rect->xe; + $ye = $this->rect->ye; + $x0 = $this->rect->x + round($this->linespacing/2); + $y0 = $this->rect->y; + $x1 = $this->rect->x; + $y1 = $this->rect->y + round($this->linespacing/2); + + while($x0<=$xe && $y1<=$ye) { + $aImg->Line($x0,$y0,$x1,$y1); + $x0 += $this->linespacing; + $y1 += $this->linespacing; + } + + if( $xe-$x1 > $ye-$y0 ) { + // Width larger than height + $x1 = $this->rect->x + ($y1-$ye); + $y1 = $ye; + $y0 = $this->rect->y; + while( $x0 <= $xe ) { + $aImg->Line($x0,$y0,$x1,$y1); + $x0 += $this->linespacing; + $x1 += $this->linespacing; + } + + $y0=$this->rect->y + ($x0-$xe); + $x0=$xe; + } + else { + // Height larger than width + $diff = $x0-$xe; + $y0 = $diff+$this->rect->y; + $x0 = $xe; + $x1 = $this->rect->x; + while( $y1 <= $ye ) { + $aImg->Line($x0,$y0,$x1,$y1); + $y1 += $this->linespacing; + $y0 += $this->linespacing; + } + + $diff = $y1-$ye; + $y1 = $ye; + $x1 = $diff + $this->rect->x; + } + + while( $y0 <= $ye ) { + $aImg->Line($x0,$y0,$x1,$y1); + $y0 += $this->linespacing; + $x1 += $this->linespacing; + } + } +} + +//===================================================================== +// Class RectPatternLDiag +// Implements left diagonal pattern +//===================================================================== +class RectPatternLDiag extends RectPattern { + + function __construct($aColor="black",$aWeight=1,$aLineSpacing=12) { + $this->linespacing = $aLineSpacing; + parent::__construct($aColor,$aWeight); + } + + function DoPattern($aImg) { + // -------------------- + // |\ \ \ \ \ | + // | \ \ \ \ \| + // | \ \ \ \ | + // |------------------| + $xe = $this->rect->xe; + $ye = $this->rect->ye; + $x0 = $this->rect->x + round($this->linespacing/2); + $y0 = $this->rect->ye; + $x1 = $this->rect->x; + $y1 = $this->rect->ye - round($this->linespacing/2); + + while($x0<=$xe && $y1>=$this->rect->y) { + $aImg->Line($x0,$y0,$x1,$y1); + $x0 += $this->linespacing; + $y1 -= $this->linespacing; + } + if( $xe-$x1 > $ye-$this->rect->y ) { + // Width larger than height + $x1 = $this->rect->x + ($this->rect->y-$y1); + $y0=$ye; $y1=$this->rect->y; + while( $x0 <= $xe ) { + $aImg->Line($x0,$y0,$x1,$y1); + $x0 += $this->linespacing; + $x1 += $this->linespacing; + } + + $y0=$this->rect->ye - ($x0-$xe); + $x0=$xe; + } + else { + // Height larger than width + $diff = $x0-$xe; + $y0 = $ye-$diff; + $x0 = $xe; + while( $y1 >= $this->rect->y ) { + $aImg->Line($x0,$y0,$x1,$y1); + $y0 -= $this->linespacing; + $y1 -= $this->linespacing; + } + $diff = $this->rect->y - $y1; + $x1 = $this->rect->x + $diff; + $y1 = $this->rect->y; + } + while( $y0 >= $this->rect->y ) { + $aImg->Line($x0,$y0,$x1,$y1); + $y0 -= $this->linespacing; + $x1 += $this->linespacing; + } + } +} + +//===================================================================== +// Class RectPattern3DPlane +// Implements "3D" plane pattern +//===================================================================== +class RectPattern3DPlane extends RectPattern { + private $alpha=50; // Parameter that specifies the distance + // to "simulated" horizon in pixel from the + // top of the band. Specifies how fast the lines + // converge. + + function __construct($aColor="black",$aWeight=1) { + parent::__construct($aColor,$aWeight); + $this->SetDensity(10); // Slightly larger default + } + + function SetHorizon($aHorizon) { + $this->alpha=$aHorizon; + } + + function DoPattern($aImg) { + // "Fake" a nice 3D grid-effect. + $x0 = $this->rect->x + $this->rect->w/2; + $y0 = $this->rect->y; + $x1 = $x0; + $y1 = $this->rect->ye; + $x0_right = $x0; + $x1_right = $x1; + + // BTW "apa" means monkey in Swedish but is really a shortform for + // "alpha+a" which was the labels I used on paper when I derived the + // geometric to get the 3D perspective right. + // $apa is the height of the bounding rectangle plus the distance to the + // artifical horizon (alpha) + $apa = $this->rect->h + $this->alpha; + + // Three cases and three loops + // 1) The endpoint of the line ends on the bottom line + // 2) The endpoint ends on the side + // 3) Horizontal lines + + // Endpoint falls on bottom line + $middle=$this->rect->x + $this->rect->w/2; + $dist=$this->linespacing; + $factor=$this->alpha /($apa); + while($x1>$this->rect->x) { + $aImg->Line($x0,$y0,$x1,$y1); + $aImg->Line($x0_right,$y0,$x1_right,$y1); + $x1 = $middle - $dist; + $x0 = $middle - $dist * $factor; + $x1_right = $middle + $dist; + $x0_right = $middle + $dist * $factor; + $dist += $this->linespacing; + } + + // Endpoint falls on sides + $dist -= $this->linespacing; + $d=$this->rect->w/2; + $c = $apa - $d*$apa/$dist; + while( $x0>$this->rect->x ) { + $aImg->Line($x0,$y0,$this->rect->x,$this->rect->ye-$c); + $aImg->Line($x0_right,$y0,$this->rect->xe,$this->rect->ye-$c); + $dist += $this->linespacing; + $x0 = $middle - $dist * $factor; + $x1 = $middle - $dist; + $x0_right = $middle + $dist * $factor; + $c = $apa - $d*$apa/$dist; + } + + // Horizontal lines + // They need some serious consideration since they are a function + // of perspective depth (alpha) and density (linespacing) + $x0=$this->rect->x; + $x1=$this->rect->xe; + $y=$this->rect->ye; + + // The first line is drawn directly. Makes the loop below slightly + // more readable. + $aImg->Line($x0,$y,$x1,$y); + $hls = $this->linespacing; + + // A correction factor for vertical "brick" line spacing to account for + // a) the difference in number of pixels hor vs vert + // b) visual apperance to make the first layer of "bricks" look more + // square. + $vls = $this->linespacing*0.6; + + $ds = $hls*($apa-$vls)/$apa; + // Get the slope for the "perspective line" going from bottom right + // corner to top left corner of the "first" brick. + + // Uncomment the following lines if you want to get a visual understanding + // of what this helpline does. BTW this mimics the way you would get the + // perspective right when drawing on paper. + /* + $x0 = $middle; + $y0 = $this->rect->ye; + $len=floor(($this->rect->ye-$this->rect->y)/$vls); + $x1 = $middle+round($len*$ds); + $y1 = $this->rect->ye-$len*$vls; + $aImg->PushColor("red"); + $aImg->Line($x0,$y0,$x1,$y1); + $aImg->PopColor(); + */ + + $y -= $vls; + $k=($this->rect->ye-($this->rect->ye-$vls))/($middle-($middle-$ds)); + $dist = $hls; + while( $y>$this->rect->y ) { + $aImg->Line($this->rect->x,$y,$this->rect->xe,$y); + $adj = $k*$dist/(1+$dist*$k/$apa); + if( $adj < 2 ) $adj=1; + $y = $this->rect->ye - round($adj); + $dist += $hls; + } + } +} + +//===================================================================== +// Class RectPatternCross +// Vert/Hor crosses +//===================================================================== +class RectPatternCross extends RectPattern { + private $vert=null; + private $hor=null; + function __construct($aColor="black",$aWeight=1) { + parent::__construct($aColor,$aWeight); + $this->vert = new RectPatternVert($aColor,$aWeight); + $this->hor = new RectPatternHor($aColor,$aWeight); + } + + function SetOrder($aDepth) { + $this->vert->SetOrder($aDepth); + $this->hor->SetOrder($aDepth); + } + + function SetPos($aRect) { + parent::SetPos($aRect); + $this->vert->SetPos($aRect); + $this->hor->SetPos($aRect); + } + + function SetDensity($aDens) { + $this->vert->SetDensity($aDens); + $this->hor->SetDensity($aDens); + } + + function DoPattern($aImg) { + $this->vert->DoPattern($aImg); + $this->hor->DoPattern($aImg); + } +} + +//===================================================================== +// Class RectPatternDiagCross +// Vert/Hor crosses +//===================================================================== + +class RectPatternDiagCross extends RectPattern { + private $left=null; + private $right=null; + function __construct($aColor="black",$aWeight=1) { + parent::__construct($aColor,$aWeight); + $this->right = new RectPatternRDiag($aColor,$aWeight); + $this->left = new RectPatternLDiag($aColor,$aWeight); + } + + function SetOrder($aDepth) { + $this->left->SetOrder($aDepth); + $this->right->SetOrder($aDepth); + } + + function SetPos($aRect) { + parent::SetPos($aRect); + $this->left->SetPos($aRect); + $this->right->SetPos($aRect); + } + + function SetDensity($aDens) { + $this->left->SetDensity($aDens); + $this->right->SetDensity($aDens); + } + + function DoPattern($aImg) { + $this->left->DoPattern($aImg); + $this->right->DoPattern($aImg); + } + +} + +//===================================================================== +// Class RectPatternFactory +// Factory class for rectangular pattern +//===================================================================== +class RectPatternFactory { + function __construct() { + // Empty + } + function Create($aPattern,$aColor,$aWeight=1) { + switch($aPattern) { + case BAND_RDIAG: + $obj = new RectPatternRDiag($aColor,$aWeight); + break; + case BAND_LDIAG: + $obj = new RectPatternLDiag($aColor,$aWeight); + break; + case BAND_SOLID: + $obj = new RectPatternSolid($aColor,$aWeight); + break; + case BAND_VLINE: + $obj = new RectPatternVert($aColor,$aWeight); + break; + case BAND_HLINE: + $obj = new RectPatternHor($aColor,$aWeight); + break; + case BAND_3DPLANE: + $obj = new RectPattern3DPlane($aColor,$aWeight); + break; + case BAND_HVCROSS: + $obj = new RectPatternCross($aColor,$aWeight); + break; + case BAND_DIAGCROSS: + $obj = new RectPatternDiagCross($aColor,$aWeight); + break; + default: + JpGraphError::RaiseL(16003,$aPattern); + //(" Unknown pattern specification ($aPattern)"); + } + return $obj; + } +} + + +//===================================================================== +// Class PlotBand +// Factory class which is used by the client. +// It is responsible for factoring the corresponding pattern +// concrete class. +//===================================================================== +class PlotBand { + public $depth; // Determine if band should be over or under the plots + private $prect=null; + private $dir, $min, $max; + + function __construct($aDir,$aPattern,$aMin,$aMax,$aColor="black",$aWeight=1,$aDepth=DEPTH_BACK) { + $f = new RectPatternFactory(); + $this->prect = $f->Create($aPattern,$aColor,$aWeight); + if( is_numeric($aMin) && is_numeric($aMax) && ($aMin > $aMax) ) + JpGraphError::RaiseL(16004); + //('Min value for plotband is larger than specified max value. Please correct.'); + $this->dir = $aDir; + $this->min = $aMin; + $this->max = $aMax; + $this->depth=$aDepth; + } + + // Set position. aRect contains absolute image coordinates + function SetPos($aRect) { + assert( $this->prect != null ) ; + $this->prect->SetPos($aRect); + } + + function ShowFrame($aFlag=true) { + $this->prect->ShowFrame($aFlag); + } + + // Set z-order. In front of pplot or in the back + function SetOrder($aDepth) { + $this->depth=$aDepth; + } + + function SetDensity($aDens) { + $this->prect->SetDensity($aDens); + } + + function GetDir() { + return $this->dir; + } + + function GetMin() { + return $this->min; + } + + function GetMax() { + return $this->max; + } + + function PreStrokeAdjust($aGraph) { + // Nothing to do + } + + // Display band + function Stroke($aImg,$aXScale,$aYScale) { + assert( $this->prect != null ) ; + if( $this->dir == HORIZONTAL ) { + if( $this->min === 'min' ) $this->min = $aYScale->GetMinVal(); + if( $this->max === 'max' ) $this->max = $aYScale->GetMaxVal(); + + // Only draw the bar if it actually appears in the range + if ($this->min < $aYScale->GetMaxVal() && $this->max > $aYScale->GetMinVal()) { + + // Trucate to limit of axis + $this->min = max($this->min, $aYScale->GetMinVal()); + $this->max = min($this->max, $aYScale->GetMaxVal()); + + $x=$aXScale->scale_abs[0]; + $y=$aYScale->Translate($this->max); + $width=$aXScale->scale_abs[1]-$aXScale->scale_abs[0]+1; + $height=abs($y-$aYScale->Translate($this->min))+1; + $this->prect->SetPos(new Rectangle($x,$y,$width,$height)); + $this->prect->Stroke($aImg); + } + } + else { // VERTICAL + if( $this->min === 'min' ) $this->min = $aXScale->GetMinVal(); + if( $this->max === 'max' ) $this->max = $aXScale->GetMaxVal(); + + // Only draw the bar if it actually appears in the range + if ($this->min < $aXScale->GetMaxVal() && $this->max > $aXScale->GetMinVal()) { + + // Trucate to limit of axis + $this->min = max($this->min, $aXScale->GetMinVal()); + $this->max = min($this->max, $aXScale->GetMaxVal()); + + $y=$aYScale->scale_abs[1]; + $x=$aXScale->Translate($this->min); + $height=abs($aYScale->scale_abs[1]-$aYScale->scale_abs[0]); + $width=abs($x-$aXScale->Translate($this->max)); + $this->prect->SetPos(new Rectangle($x,$y,$width,$height)); + $this->prect->Stroke($aImg); + } + } + } +} + + +?> diff --git a/gosa-core/include/jpgraph/jpgraph_plotline.php b/gosa-core/include/jpgraph/jpgraph_plotline.php new file mode 100644 index 000000000..7c19219e8 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_plotline.php @@ -0,0 +1,138 @@ +direction = $aDir; + $this->color=$aColor; + $this->weight=$aWeight; + $this->scaleposition=$aPos; + } + + function SetLegend($aLegend,$aCSIM='',$aCSIMAlt='',$aCSIMWinTarget='') { + $this->legend = $aLegend; + $this->legendcsimtarget = $aCSIM; + $this->legendcsimwintarget = $aCSIMWinTarget; + $this->legendcsimalt = $aCSIMAlt; + } + + function HideLegend($f=true) { + $this->hidelegend = $f; + } + + function SetPosition($aScalePosition) { + $this->scaleposition=$aScalePosition; + } + + function SetDirection($aDir) { + $this->direction = $aDir; + } + + function SetColor($aColor) { + $this->color=$aColor; + } + + function SetWeight($aWeight) { + $this->weight=$aWeight; + } + + function SetLineStyle($aStyle) { + $this->iLineStyle = $aStyle; + } + + //--------------- + // PRIVATE METHODS + + function DoLegend($graph) { + if( !$this->hidelegend ) $this->Legend($graph); + } + + // Framework function the chance for each plot class to set a legend + function Legend($aGraph) { + if( $this->legend != '' ) { + $dummyPlotMark = new PlotMark(); + $lineStyle = 1; + $aGraph->legend->Add($this->legend,$this->color,$dummyPlotMark,$lineStyle, + $this->legendcsimtarget,$this->legendcsimalt,$this->legendcsimwintarget); + } + } + + function PreStrokeAdjust($aGraph) { + // Nothing to do + } + + // Called by framework to allow the object to draw + // optional information in the margin area + function StrokeMargin($aImg) { + // Nothing to do + } + + // Framework function to allow the object to adjust the scale + function PrescaleSetup($aGraph) { + // Nothing to do + } + + function Min() { + return array(null,null); + } + + function Max() { + return array(null,null); + } + + function _Stroke($aImg,$aMinX,$aMinY,$aMaxX,$aMaxY,$aXPos,$aYPos) { + $aImg->SetColor($this->color); + $aImg->SetLineWeight($this->weight); + $oldStyle = $aImg->SetLineStyle($this->iLineStyle); + if( $this->direction == VERTICAL ) { + $ymin_abs = $aMinY; + $ymax_abs = $aMaxY; + $xpos_abs = $aXPos; + $aImg->StyleLine($xpos_abs, $ymin_abs, $xpos_abs, $ymax_abs); + } + elseif( $this->direction == HORIZONTAL ) { + $xmin_abs = $aMinX; + $xmax_abs = $aMaxX; + $ypos_abs = $aYPos; + $aImg->StyleLine($xmin_abs, $ypos_abs, $xmax_abs, $ypos_abs); + } + else { + JpGraphError::RaiseL(25125);//(" Illegal direction for static line"); + } + $aImg->SetLineStyle($oldStyle); + } + + function Stroke($aImg,$aXScale,$aYScale) { + $this->_Stroke($aImg, + $aImg->left_margin, + $aYScale->Translate($aYScale->GetMinVal()), + $aImg->width-$aImg->right_margin, + $aYScale->Translate($aYScale->GetMaxVal()), + $aXScale->Translate($this->scaleposition), + $aYScale->Translate($this->scaleposition) + ); + } +} + + +?> \ No newline at end of file diff --git a/gosa-core/include/jpgraph/jpgraph_plotmark.inc.php b/gosa-core/include/jpgraph/jpgraph_plotmark.inc.php new file mode 100644 index 000000000..78a08cff2 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_plotmark.inc.php @@ -0,0 +1,504 @@ +title = new Text(); + $this->title->Hide(); + $this->csimareas = ''; + $this->type=-1; + } + //--------------- + // PUBLIC METHODS + function SetType($aType,$aFileName='',$aScale=1.0) { + $this->type = $aType; + if( $aType == MARK_IMG && $aFileName=='' ) { + JpGraphError::RaiseL(23003);//('A filename must be specified if you set the mark type to MARK_IMG.'); + } + $this->iFileName = $aFileName; + $this->iScale = $aScale; + } + + function SetCallback($aFunc) { + $this->iFormatCallback = $aFunc; + } + + function SetCallbackYX($aFunc) { + $this->iFormatCallback2 = $aFunc; + } + + function GetType() { + return $this->type; + } + + function SetColor($aColor) { + $this->color=$aColor; + } + + function SetFillColor($aFillColor) { + $this->fill_color = $aFillColor; + } + + function SetWeight($aWeight) { + $this->weight = $aWeight; + } + + // Synonym for SetWidth() + function SetSize($aWidth) { + $this->width=$aWidth; + } + + function SetWidth($aWidth) { + $this->width=$aWidth; + } + + function SetDefaultWidth() { + switch( $this->type ) { + case MARK_CIRCLE: + case MARK_FILLEDCIRCLE: + $this->width=4; + break; + default: + $this->width=7; + } + } + + function GetWidth() { + return $this->width; + } + + function Hide($aHide=true) { + $this->show = !$aHide; + } + + function Show($aShow=true) { + $this->show = $aShow; + } + + function SetCSIMAltVal($aY,$aX='') { + $this->yvalue=$aY; + $this->xvalue=$aX; + } + + function SetCSIMTarget($aTarget,$aWinTarget='') { + $this->csimtarget=$aTarget; + $this->csimwintarget=$aWinTarget; + } + + function SetCSIMAlt($aAlt) { + $this->csimalt=$aAlt; + } + + function GetCSIMAreas(){ + return $this->csimareas; + } + + function AddCSIMPoly($aPts) { + $coords = round($aPts[0]).", ".round($aPts[1]); + $n = count($aPts)/2; + for( $i=1; $i < $n; ++$i){ + $coords .= ", ".round($aPts[2*$i]).", ".round($aPts[2*$i+1]); + } + $this->csimareas=""; + if( !empty($this->csimtarget) ) { + $this->csimareas .= "csimtarget)."\""; + + if( !empty($this->csimwintarget) ) { + $this->csimareas .= " target=\"".$this->csimwintarget."\" "; + } + + if( !empty($this->csimalt) ) { + $tmp=sprintf($this->csimalt,$this->yvalue,$this->xvalue); + $this->csimareas .= " title=\"$tmp\" alt=\"$tmp\""; + } + $this->csimareas .= " />\n"; + } + } + + function AddCSIMCircle($x,$y,$r) { + $x = round($x); $y=round($y); $r=round($r); + $this->csimareas=""; + if( !empty($this->csimtarget) ) { + $this->csimareas .= "csimtarget)."\""; + + if( !empty($this->csimwintarget) ) { + $this->csimareas .= " target=\"".$this->csimwintarget."\" "; + } + + if( !empty($this->csimalt) ) { + $tmp=sprintf($this->csimalt,$this->yvalue,$this->xvalue); + $this->csimareas .= " title=\"$tmp\" alt=\"$tmp\" "; + } + $this->csimareas .= " />\n"; + } + } + + function Stroke($img,$x,$y) { + if( !$this->show ) return; + + if( $this->iFormatCallback != '' || $this->iFormatCallback2 != '' ) { + + if( $this->iFormatCallback != '' ) { + $f = $this->iFormatCallback; + list($width,$color,$fcolor) = call_user_func($f,$this->yvalue); + $filename = $this->iFileName; + $imgscale = $this->iScale; + } + else { + $f = $this->iFormatCallback2; + list($width,$color,$fcolor,$filename,$imgscale) = call_user_func($f,$this->yvalue,$this->xvalue); + if( $filename=="" ) $filename = $this->iFileName; + if( $imgscale=="" ) $imgscale = $this->iScale; + } + + if( $width=="" ) $width = $this->width; + if( $color=="" ) $color = $this->color; + if( $fcolor=="" ) $fcolor = $this->fill_color; + + } + else { + $fcolor = $this->fill_color; + $color = $this->color; + $width = $this->width; + $filename = $this->iFileName; + $imgscale = $this->iScale; + } + + if( $this->type == MARK_IMG || + ($this->type >= MARK_FLAG1 && $this->type <= MARK_FLAG4 ) || + $this->type >= MARK_IMG_PUSHPIN ) { + + // Note: For the builtin images we use the "filename" parameter + // to denote the color + $anchor_x = 0.5; + $anchor_y = 0.5; + switch( $this->type ) { + case MARK_FLAG1: + case MARK_FLAG2: + case MARK_FLAG3: + case MARK_FLAG4: + $this->markimg = FlagCache::GetFlagImgByName($this->type-MARK_FLAG1+1,$filename); + break; + + case MARK_IMG : + // Load an image and use that as a marker + // Small optimization, if we have already read an image don't + // waste time reading it again. + if( $this->markimg == '' || !($this->oldfilename === $filename) ) { + $this->markimg = Graph::LoadBkgImage('',$filename); + $this->oldfilename = $filename ; + } + break; + + case MARK_IMG_PUSHPIN: + case MARK_IMG_SPUSHPIN: + case MARK_IMG_LPUSHPIN: + if( $this->imgdata_pushpins == null ) { + require_once 'imgdata_pushpins.inc.php'; + $this->imgdata_pushpins = new ImgData_PushPins(); + } + $this->markimg = $this->imgdata_pushpins->GetImg($this->type,$filename); + list($anchor_x,$anchor_y) = $this->imgdata_pushpins->GetAnchor(); + break; + + case MARK_IMG_SQUARE: + if( $this->imgdata_squares == null ) { + require_once 'imgdata_squares.inc.php'; + $this->imgdata_squares = new ImgData_Squares(); + } + $this->markimg = $this->imgdata_squares->GetImg($this->type,$filename); + list($anchor_x,$anchor_y) = $this->imgdata_squares->GetAnchor(); + break; + + case MARK_IMG_STAR: + if( $this->imgdata_stars == null ) { + require_once 'imgdata_stars.inc.php'; + $this->imgdata_stars = new ImgData_Stars(); + } + $this->markimg = $this->imgdata_stars->GetImg($this->type,$filename); + list($anchor_x,$anchor_y) = $this->imgdata_stars->GetAnchor(); + break; + + case MARK_IMG_BEVEL: + if( $this->imgdata_bevels == null ) { + require_once 'imgdata_bevels.inc.php'; + $this->imgdata_bevels = new ImgData_Bevels(); + } + $this->markimg = $this->imgdata_bevels->GetImg($this->type,$filename); + list($anchor_x,$anchor_y) = $this->imgdata_bevels->GetAnchor(); + break; + + case MARK_IMG_DIAMOND: + if( $this->imgdata_diamonds == null ) { + require_once 'imgdata_diamonds.inc.php'; + $this->imgdata_diamonds = new ImgData_Diamonds(); + } + $this->markimg = $this->imgdata_diamonds->GetImg($this->type,$filename); + list($anchor_x,$anchor_y) = $this->imgdata_diamonds->GetAnchor(); + break; + + case MARK_IMG_BALL: + case MARK_IMG_SBALL: + case MARK_IMG_MBALL: + case MARK_IMG_LBALL: + if( $this->imgdata_balls == null ) { + require_once 'imgdata_balls.inc.php'; + $this->imgdata_balls = new ImgData_Balls(); + } + $this->markimg = $this->imgdata_balls->GetImg($this->type,$filename); + list($anchor_x,$anchor_y) = $this->imgdata_balls->GetAnchor(); + break; + } + + $w = $img->GetWidth($this->markimg); + $h = $img->GetHeight($this->markimg); + + $dw = round($imgscale * $w ); + $dh = round($imgscale * $h ); + + // Do potential rotation + list($x,$y) = $img->Rotate($x,$y); + + $dx = round($x-$dw*$anchor_x); + $dy = round($y-$dh*$anchor_y); + + $this->width = max($dx,$dy); + + $img->Copy($this->markimg,$dx,$dy,0,0,$dw,$dh,$w,$h); + if( !empty($this->csimtarget) ) { + $this->csimareas = "csimtarget)."\""; + + if( !empty($this->csimwintarget) ) { + $this->csimareas .= " target=\"".$this->csimwintarget."\" "; + } + + if( !empty($this->csimalt) ) { + $tmp=sprintf($this->csimalt,$this->yvalue,$this->xvalue); + $this->csimareas .= " title=\"$tmp\" alt=\"$tmp\" "; + } + $this->csimareas .= " />\n"; + } + + // Stroke title + $this->title->Align("center","top"); + $this->title->Stroke($img,$x,$y+round($dh/2)); + return; + } + + $weight = $this->weight; + $dx=round($width/2,0); + $dy=round($width/2,0); + $pts=0; + + switch( $this->type ) { + case MARK_SQUARE: + $c[]=$x-$dx;$c[]=$y-$dy; + $c[]=$x+$dx;$c[]=$y-$dy; + $c[]=$x+$dx;$c[]=$y+$dy; + $c[]=$x-$dx;$c[]=$y+$dy; + $c[]=$x-$dx;$c[]=$y-$dy; + $pts=5; + break; + case MARK_UTRIANGLE: + ++$dx;++$dy; + $c[]=$x-$dx;$c[]=$y+0.87*$dy; // tan(60)/2*$dx + $c[]=$x;$c[]=$y-0.87*$dy; + $c[]=$x+$dx;$c[]=$y+0.87*$dy; + $c[]=$x-$dx;$c[]=$y+0.87*$dy; // tan(60)/2*$dx + $pts=4; + break; + case MARK_DTRIANGLE: + ++$dx;++$dy; + $c[]=$x;$c[]=$y+0.87*$dy; // tan(60)/2*$dx + $c[]=$x-$dx;$c[]=$y-0.87*$dy; + $c[]=$x+$dx;$c[]=$y-0.87*$dy; + $c[]=$x;$c[]=$y+0.87*$dy; // tan(60)/2*$dx + $pts=4; + break; + case MARK_DIAMOND: + $c[]=$x;$c[]=$y+$dy; + $c[]=$x-$dx;$c[]=$y; + $c[]=$x;$c[]=$y-$dy; + $c[]=$x+$dx;$c[]=$y; + $c[]=$x;$c[]=$y+$dy; + $pts=5; + break; + case MARK_LEFTTRIANGLE: + $c[]=$x;$c[]=$y; + $c[]=$x;$c[]=$y+2*$dy; + $c[]=$x+$dx*2;$c[]=$y; + $c[]=$x;$c[]=$y; + $pts=4; + break; + case MARK_RIGHTTRIANGLE: + $c[]=$x-$dx*2;$c[]=$y; + $c[]=$x;$c[]=$y+2*$dy; + $c[]=$x;$c[]=$y; + $c[]=$x-$dx*2;$c[]=$y; + $pts=4; + break; + case MARK_FLASH: + $dy *= 2; + $c[]=$x+$dx/2; $c[]=$y-$dy; + $c[]=$x-$dx+$dx/2; $c[]=$y+$dy*0.7-$dy; + $c[]=$x+$dx/2; $c[]=$y+$dy*1.3-$dy; + $c[]=$x-$dx+$dx/2; $c[]=$y+2*$dy-$dy; + $img->SetLineWeight($weight); + $img->SetColor($color); + $img->Polygon($c); + $img->SetLineWeight(1); + $this->AddCSIMPoly($c); + break; + } + + if( $pts>0 ) { + $this->AddCSIMPoly($c); + $img->SetLineWeight($weight); + $img->SetColor($fcolor); + $img->FilledPolygon($c); + $img->SetColor($color); + $img->Polygon($c); + $img->SetLineWeight(1); + } + elseif( $this->type==MARK_CIRCLE ) { + $img->SetColor($color); + $img->Circle($x,$y,$width); + $this->AddCSIMCircle($x,$y,$width); + } + elseif( $this->type==MARK_FILLEDCIRCLE ) { + $img->SetColor($fcolor); + $img->FilledCircle($x,$y,$width); + $img->SetColor($color); + $img->Circle($x,$y,$width); + $this->AddCSIMCircle($x,$y,$width); + } + elseif( $this->type==MARK_CROSS ) { + // Oversize by a pixel to match the X + $img->SetColor($color); + $img->SetLineWeight($weight); + $img->Line($x,$y+$dy+1,$x,$y-$dy-1); + $img->Line($x-$dx-1,$y,$x+$dx+1,$y); + $this->AddCSIMCircle($x,$y,$dx); + } + elseif( $this->type==MARK_X ) { + $img->SetColor($color); + $img->SetLineWeight($weight); + $img->Line($x+$dx,$y+$dy,$x-$dx,$y-$dy); + $img->Line($x-$dx,$y+$dy,$x+$dx,$y-$dy); + $this->AddCSIMCircle($x,$y,$dx+$dy); + } + elseif( $this->type==MARK_STAR ) { + $img->SetColor($color); + $img->SetLineWeight($weight); + $img->Line($x+$dx,$y+$dy,$x-$dx,$y-$dy); + $img->Line($x-$dx,$y+$dy,$x+$dx,$y-$dy); + // Oversize by a pixel to match the X + $img->Line($x,$y+$dy+1,$x,$y-$dy-1); + $img->Line($x-$dx-1,$y,$x+$dx+1,$y); + $this->AddCSIMCircle($x,$y,$dx+$dy); + } + + // Stroke title + $this->title->Align("center","center"); + $this->title->Stroke($img,$x,$y); + } +} // Class + + + +//======================================================================== +// CLASS ImgData +// Description: Base class for all image data classes that contains the +// real image data. +//======================================================================== +class ImgData { + protected $name = ''; // Each subclass gives a name + protected $an = array(); // Data array names + protected $colors = array(); // Available colors + protected $index = array(); // Index for colors + protected $maxidx = 0 ; // Max color index + protected $anchor_x=0.5, $anchor_y=0.5 ; // Where is the center of the image + + function __construct() { + // Empty + } + + // Create a GD image from the data and return a GD handle + function GetImg($aMark,$aIdx) { + $n = $this->an[$aMark]; + if( is_string($aIdx) ) { + if( !in_array($aIdx,$this->colors) ) { + JpGraphError::RaiseL(23001,$this->name,$aIdx);//('This marker "'.($this->name).'" does not exist in color: '.$aIdx); + } + $idx = $this->index[$aIdx]; + } + elseif( !is_integer($aIdx) || + (is_integer($aIdx) && $aIdx > $this->maxidx ) ) { + JpGraphError::RaiseL(23002,$this->name);//('Mark color index too large for marker "'.($this->name).'"'); + } + else + $idx = $aIdx ; + return Image::CreateFromString(base64_decode($this->{$n}[$idx][1])); + } + + function GetAnchor() { + return array($this->anchor_x,$this->anchor_y); + } +} + + +// Keep a global flag cache to reduce memory usage +$_gFlagCache=array( +1 => null, +2 => null, +3 => null, +4 => null, +); +// Only supposed to b called as statics +class FlagCache { + + static function GetFlagImgByName($aSize,$aName) { + global $_gFlagCache; + require_once('jpgraph_flags.php'); + if( $_gFlagCache[$aSize] === null ) { + $_gFlagCache[$aSize] = new FlagImages($aSize); + } + $f = $_gFlagCache[$aSize]; + $idx = $f->GetIdxByName($aName,$aFullName); + return $f->GetImgByIdx($idx); + } +} + +?> \ No newline at end of file diff --git a/gosa-core/include/jpgraph/jpgraph_polar.php b/gosa-core/include/jpgraph/jpgraph_polar.php new file mode 100644 index 000000000..af3c88bde --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_polar.php @@ -0,0 +1,897 @@ +numpoints = $n/2; + $this->coord = $aData; + $this->mark = new PlotMark(); + } + + function SetWeight($aWeight) { + $this->iLineWeight = $aWeight; + } + + function SetColor($aColor){ + $this->iColor = $aColor; + } + + function SetFillColor($aColor){ + $this->iFillColor = $aColor; + } + + function Max() { + $m = $this->coord[1]; + $i=1; + while( $i < $this->numpoints ) { + $m = max($m,$this->coord[2*$i+1]); + ++$i; + } + return $m; + } + // Set href targets for CSIM + function SetCSIMTargets($aTargets,$aAlts=null) { + $this->csimtargets=$aTargets; + $this->csimalts=$aAlts; + } + + // Get all created areas + function GetCSIMareas() { + return $this->csimareas; + } + + function SetLegend($aLegend,$aCSIM="",$aCSIMAlt="") { + $this->legend = $aLegend; + $this->legendcsimtarget = $aCSIM; + $this->legendcsimalt = $aCSIMAlt; + } + + // Private methods + + function Legend($aGraph) { + $color = $this->iColor ; + if( $this->legend != "" ) { + if( $this->iFillColor!='' ) { + $color = $this->iFillColor; + $aGraph->legend->Add($this->legend,$color,$this->mark,0, + $this->legendcsimtarget,$this->legendcsimalt); + } + else { + $aGraph->legend->Add($this->legend,$color,$this->mark,$this->line_style, + $this->legendcsimtarget,$this->legendcsimalt); + } + } + } + + function Stroke($img,$scale) { + + $i=0; + $p=array(); + $this->csimareas=''; + while($i < $this->numpoints) { + list($x1,$y1) = $scale->PTranslate($this->coord[2*$i],$this->coord[2*$i+1]); + $p[2*$i] = $x1; + $p[2*$i+1] = $y1; + + if( isset($this->csimtargets[$i]) ) { + $this->mark->SetCSIMTarget($this->csimtargets[$i]); + $this->mark->SetCSIMAlt($this->csimalts[$i]); + $this->mark->SetCSIMAltVal($this->coord[2*$i], $this->coord[2*$i+1]); + $this->mark->Stroke($img,$x1,$y1); + $this->csimareas .= $this->mark->GetCSIMAreas(); + } + else { + $this->mark->Stroke($img,$x1,$y1); + } + + ++$i; + } + + if( $this->iFillColor != '' ) { + $img->SetColor($this->iFillColor); + $img->FilledPolygon($p); + } + $img->SetLineWeight($this->iLineWeight); + $img->SetColor($this->iColor); + $img->Polygon($p,$this->iFillColor!=''); + } +} + +//-------------------------------------------------------------------------- +// class PolarAxis +//-------------------------------------------------------------------------- +class PolarAxis extends Axis { + private $angle_step=15,$angle_color='lightgray',$angle_label_color='black'; + private $angle_fontfam=FF_FONT1,$angle_fontstyle=FS_NORMAL,$angle_fontsize=10; + private $angle_fontcolor = 'navy'; + private $gridminor_color='lightgray',$gridmajor_color='lightgray'; + private $show_minor_grid = false, $show_major_grid = true ; + private $show_angle_mark=true, $show_angle_grid=true, $show_angle_label=true; + private $angle_tick_len=3, $angle_tick_len2=3, $angle_tick_color='black'; + private $show_angle_tick=true; + private $radius_tick_color='black'; + + function __construct($img,$aScale) { + parent::__construct($img,$aScale); + } + + function ShowAngleDegreeMark($aFlg=true) { + $this->show_angle_mark = $aFlg; + } + + function SetAngleStep($aStep) { + $this->angle_step=$aStep; + } + + function HideTicks($aFlg=true,$aAngleFlg=true) { + parent::HideTicks($aFlg,$aFlg); + $this->show_angle_tick = !$aAngleFlg; + } + + function ShowAngleLabel($aFlg=true) { + $this->show_angle_label = $aFlg; + } + + function ShowGrid($aMajor=true,$aMinor=false,$aAngle=true) { + $this->show_minor_grid = $aMinor; + $this->show_major_grid = $aMajor; + $this->show_angle_grid = $aAngle ; + } + + function SetAngleFont($aFontFam,$aFontStyle=FS_NORMAL,$aFontSize=10) { + $this->angle_fontfam = $aFontFam; + $this->angle_fontstyle = $aFontStyle; + $this->angle_fontsize = $aFontSize; + } + + function SetColor($aColor,$aRadColor='',$aAngleColor='') { + if( $aAngleColor == '' ) + $aAngleColor=$aColor; + parent::SetColor($aColor,$aRadColor); + $this->angle_fontcolor = $aAngleColor; + } + + function SetGridColor($aMajorColor,$aMinorColor='',$aAngleColor='') { + if( $aMinorColor == '' ) + $aMinorColor = $aMajorColor; + if( $aAngleColor == '' ) + $aAngleColor = $aMajorColor; + + $this->gridminor_color = $aMinorColor; + $this->gridmajor_color = $aMajorColor; + $this->angle_color = $aAngleColor; + } + + function SetTickColors($aRadColor,$aAngleColor='') { + $this->radius_tick_color = $aRadColor; + $this->angle_tick_color = $aAngleColor; + } + + // Private methods + function StrokeGrid($pos) { + $x = round($this->img->left_margin + $this->img->plotwidth/2); + $this->scale->ticks->Stroke($this->img,$this->scale,$pos); + + // Stroke the minor arcs + $pmin = array(); + $p = $this->scale->ticks->ticks_pos; + $n = count($p); + $i = 0; + $this->img->SetColor($this->gridminor_color); + while( $i < $n ) { + $r = $p[$i]-$x+1; + $pmin[]=$r; + if( $this->show_minor_grid ) { + $this->img->Circle($x,$pos,$r); + } + $i++; + } + + $limit = max($this->img->plotwidth,$this->img->plotheight)*1.4 ; + while( $r < $limit ) { + $off = $r; + $i=1; + $r = $off + round($p[$i]-$x+1); + while( $r < $limit && $i < $n ) { + $r = $off+$p[$i]-$x; + $pmin[]=$r; + if( $this->show_minor_grid ) { + $this->img->Circle($x,$pos,$r); + } + $i++; + } + } + + // Stroke the major arcs + if( $this->show_major_grid ) { + // First determine how many minor step on + // every major step. We have recorded the minor radius + // in pmin and use these values. This is done in order + // to avoid rounding errors if we were to recalculate the + // different major radius. + $pmaj = $this->scale->ticks->maj_ticks_pos; + $p = $this->scale->ticks->ticks_pos; + if( $this->scale->name == 'lin' ) { + $step=round(($pmaj[1] - $pmaj[0])/($p[1] - $p[0])); + } + else { + $step=9; + } + $n = round(count($pmin)/$step); + $i = 0; + $this->img->SetColor($this->gridmajor_color); + $limit = max($this->img->plotwidth,$this->img->plotheight)*1.4 ; + $off = $r; + $i=0; + $r = $pmin[$i*$step]; + while( $r < $limit && $i < $n ) { + $r = $pmin[$i*$step]; + $this->img->Circle($x,$pos,$r); + $i++; + } + } + + // Draw angles + if( $this->show_angle_grid ) { + $this->img->SetColor($this->angle_color); + $d = max($this->img->plotheight,$this->img->plotwidth)*1.4 ; + $a = 0; + $p = $this->scale->ticks->ticks_pos; + $start_radius = $p[1]-$x; + while( $a < 360 ) { + if( $a == 90 || $a == 270 ) { + // Make sure there are no rounding problem with + // exactly vertical lines + $this->img->Line($x+$start_radius*cos($a/180*M_PI)+1, + $pos-$start_radius*sin($a/180*M_PI), + $x+$start_radius*cos($a/180*M_PI)+1, + $pos-$d*sin($a/180*M_PI)); + + } + else { + $this->img->Line($x+$start_radius*cos($a/180*M_PI)+1, + $pos-$start_radius*sin($a/180*M_PI), + $x+$d*cos($a/180*M_PI), + $pos-$d*sin($a/180*M_PI)); + } + $a += $this->angle_step; + } + } + } + + function StrokeAngleLabels($pos,$type) { + + if( !$this->show_angle_label ) + return; + + $x0 = round($this->img->left_margin+$this->img->plotwidth/2)+1; + + $d = max($this->img->plotwidth,$this->img->plotheight)*1.42; + $a = $this->angle_step; + $t = new Text(); + $t->SetColor($this->angle_fontcolor); + $t->SetFont($this->angle_fontfam,$this->angle_fontstyle,$this->angle_fontsize); + $xright = $this->img->width - $this->img->right_margin; + $ytop = $this->img->top_margin; + $xleft = $this->img->left_margin; + $ybottom = $this->img->height - $this->img->bottom_margin; + $ha = 'left'; + $va = 'center'; + $w = $this->img->plotwidth/2; + $h = $this->img->plotheight/2; + $xt = $x0; $yt = $pos; + $margin=5; + + $tl = $this->angle_tick_len ; // Outer len + $tl2 = $this->angle_tick_len2 ; // Interior len + + $this->img->SetColor($this->angle_tick_color); + $rot90 = $this->img->a == 90 ; + + if( $type == POLAR_360 ) { + + // Corner angles of the four corners + $ca1 = atan($h/$w)/M_PI*180; + $ca2 = 180-$ca1; + $ca3 = $ca1+180; + $ca4 = 360-$ca1; + $end = 360; + + while( $a < $end ) { + $ca = cos($a/180*M_PI); + $sa = sin($a/180*M_PI); + $x = $d*$ca; + $y = $d*$sa; + $xt=1000;$yt=1000; + if( $a <= $ca1 || $a >= $ca4 ) { + $yt = $pos - $w * $y/$x; + $xt = $xright + $margin; + if( $rot90 ) { + $ha = 'center'; + $va = 'top'; + } + else { + $ha = 'left'; + $va = 'center'; + } + $x1=$xright-$tl2; $x2=$xright+$tl; + $y1=$y2=$yt; + } + elseif( $a > $ca1 && $a < $ca2 ) { + $xt = $x0 + $h * $x/$y; + $yt = $ytop - $margin; + if( $rot90 ) { + $ha = 'left'; + $va = 'center'; + } + else { + $ha = 'center'; + $va = 'bottom'; + } + $y1=$ytop+$tl2;$y2=$ytop-$tl; + $x1=$x2=$xt; + } + elseif( $a >= $ca2 && $a <= $ca3 ) { + $yt = $pos + $w * $y/$x; + $xt = $xleft - $margin; + if( $rot90 ) { + $ha = 'center'; + $va = 'bottom'; + } + else { + $ha = 'right'; + $va = 'center'; + } + $x1=$xleft+$tl2;$x2=$xleft-$tl; + $y1=$y2=$yt; + } + else { + $xt = $x0 - $h * $x/$y; + $yt = $ybottom + $margin; + if( $rot90 ) { + $ha = 'right'; + $va = 'center'; + } + else { + $ha = 'center'; + $va = 'top'; + } + $y1=$ybottom-$tl2;$y2=$ybottom+$tl; + $x1=$x2=$xt; + } + if( $a != 0 && $a != 180 ) { + $t->Align($ha,$va); + if( $this->scale->clockwise ) { + $t->Set(360-$a); + } + else { + $t->Set($a); + } + if( $this->show_angle_mark && $t->font_family > 4 ) { + $a .= SymChar::Get('degree'); + } + $t->Stroke($this->img,$xt,$yt); + if( $this->show_angle_tick ) { + $this->img->Line($x1,$y1,$x2,$y2); + } + } + $a += $this->angle_step; + } + } + else { + // POLAR_HALF + $ca1 = atan($h/$w*2)/M_PI*180; + $ca2 = 180-$ca1; + $end = 180; + while( $a < $end ) { + $ca = cos($a/180*M_PI); + $sa = sin($a/180*M_PI); + $x = $d*$ca; + $y = $d*$sa; + if( $a <= $ca1 ) { + $yt = $pos - $w * $y/$x; + $xt = $xright + $margin; + if( $rot90 ) { + $ha = 'center'; + $va = 'top'; + } + else { + $ha = 'left'; + $va = 'center'; + } + $x1=$xright-$tl2; $x2=$xright+$tl; + $y1=$y2=$yt; + } + elseif( $a > $ca1 && $a < $ca2 ) { + $xt = $x0 + 2*$h * $x/$y; + $yt = $ytop - $margin; + if( $rot90 ) { + $ha = 'left'; + $va = 'center'; + } + else { + $ha = 'center'; + $va = 'bottom'; + } + $y1=$ytop+$tl2;$y2=$ytop-$tl; + $x1=$x2=$xt; + } + elseif( $a >= $ca2 ) { + $yt = $pos + $w * $y/$x; + $xt = $xleft - $margin; + if( $rot90 ) { + $ha = 'center'; + $va = 'bottom'; + } + else { + $ha = 'right'; + $va = 'center'; + } + $x1=$xleft+$tl2;$x2=$xleft-$tl; + $y1=$y2=$yt; + } + $t->Align($ha,$va); + if( $this->show_angle_mark && $t->font_family > 4 ) { + $a .= SymChar::Get('degree'); + } + $t->Set($a); + $t->Stroke($this->img,$xt,$yt); + if( $this->show_angle_tick ) { + $this->img->Line($x1,$y1,$x2,$y2); + } + $a += $this->angle_step; + } + } + } + + function Stroke($pos,$dummy=true) { + + $this->img->SetLineWeight($this->weight); + $this->img->SetColor($this->color); + $this->img->SetFont($this->font_family,$this->font_style,$this->font_size); + if( !$this->hide_line ) { + $this->img->FilledRectangle($this->img->left_margin,$pos, + $this->img->width-$this->img->right_margin, + $pos+$this->weight-1); + } + $y=$pos+$this->img->GetFontHeight()+$this->title_margin+$this->title->margin; + if( $this->title_adjust=="high" ) { + $this->title->SetPos($this->img->width-$this->img->right_margin,$y,"right","top"); + } + elseif( $this->title_adjust=="middle" || $this->title_adjust=="center" ) { + $this->title->SetPos(($this->img->width-$this->img->left_margin-$this->img->right_margin)/2+$this->img->left_margin, + $y,"center","top"); + } + elseif($this->title_adjust=="low") { + $this->title->SetPos($this->img->left_margin,$y,"left","top"); + } + else { + JpGraphError::RaiseL(17002,$this->title_adjust); + //('Unknown alignment specified for X-axis title. ('.$this->title_adjust.')'); + } + + + if (!$this->hide_labels) { + $this->StrokeLabels($pos,false); + } + $this->img->SetColor($this->radius_tick_color); + $this->scale->ticks->Stroke($this->img,$this->scale,$pos); + + // + // Mirror the positions for the left side of the scale + // + $mid = 2*($this->img->left_margin+$this->img->plotwidth/2); + $n = count($this->scale->ticks->ticks_pos); + $i=0; + while( $i < $n ) { + $this->scale->ticks->ticks_pos[$i] = + $mid-$this->scale->ticks->ticks_pos[$i] ; + ++$i; + } + + $n = count($this->scale->ticks->maj_ticks_pos); + $i=0; + while( $i < $n ) { + $this->scale->ticks->maj_ticks_pos[$i] = + $mid-$this->scale->ticks->maj_ticks_pos[$i] ; + ++$i; + } + + $n = count($this->scale->ticks->maj_ticklabels_pos); + $i=1; + while( $i < $n ) { + $this->scale->ticks->maj_ticklabels_pos[$i] = + $mid-$this->scale->ticks->maj_ticklabels_pos[$i] ; + ++$i; + } + + // Draw the left side of the scale + $n = count($this->scale->ticks->ticks_pos); + $yu = $pos - $this->scale->ticks->direction*$this->scale->ticks->GetMinTickAbsSize(); + + + // Minor ticks + if( ! $this->scale->ticks->supress_minor_tickmarks ) { + $i=1; + while( $i < $n/2 ) { + $x = round($this->scale->ticks->ticks_pos[$i]) ; + $this->img->Line($x,$pos,$x,$yu); + ++$i; + } + } + + $n = count($this->scale->ticks->maj_ticks_pos); + $yu = $pos - $this->scale->ticks->direction*$this->scale->ticks->GetMajTickAbsSize(); + + + // Major ticks + if( ! $this->scale->ticks->supress_tickmarks ) { + $i=1; + while( $i < $n/2 ) { + $x = round($this->scale->ticks->maj_ticks_pos[$i]) ; + $this->img->Line($x,$pos,$x,$yu); + ++$i; + } + } + if (!$this->hide_labels) { + $this->StrokeLabels($pos,false); + } + $this->title->Stroke($this->img); + } +} + +class PolarScale extends LinearScale { + private $graph; + public $clockwise=false; + + function __construct($aMax,$graph,$aClockwise) { + parent::__construct(0,$aMax,'x'); + $this->graph = $graph; + $this->clockwise = $aClockwise; + } + + function SetClockwise($aFlg) { + $this->clockwise = $aFlg; + } + + function _Translate($v) { + return parent::Translate($v); + } + + function PTranslate($aAngle,$aRad) { + + $m = $this->scale[1]; + $w = $this->graph->img->plotwidth/2; + $aRad = $aRad/$m*$w; + + $a = $aAngle/180 * M_PI; + if( $this->clockwise ) { + $a = 2*M_PI-$a; + } + + $x = cos($a) * $aRad; + $y = sin($a) * $aRad; + + $x += $this->_Translate(0); + + if( $this->graph->iType == POLAR_360 ) { + $y = ($this->graph->img->top_margin + $this->graph->img->plotheight/2) - $y; + } + else { + $y = ($this->graph->img->top_margin + $this->graph->img->plotheight) - $y; + } + return array($x,$y); + } +} + +class PolarLogScale extends LogScale { + private $graph; + public $clockwise=false; + + function __construct($aMax,$graph,$aClockwise=false) { + parent::__construct(0,$aMax,'x'); + $this->graph = $graph; + $this->ticks->SetLabelLogType(LOGLABELS_MAGNITUDE); + $this->clockwise = $aClockwise; + + } + + function SetClockwise($aFlg) { + $this->clockwise = $aFlg; + } + + function PTranslate($aAngle,$aRad) { + + if( $aRad == 0 ) + $aRad = 1; + $aRad = log10($aRad); + $m = $this->scale[1]; + $w = $this->graph->img->plotwidth/2; + $aRad = $aRad/$m*$w; + + $a = $aAngle/180 * M_PI; + if( $this->clockwise ) { + $a = 2*M_PI-$a; + } + + $x = cos( $a ) * $aRad; + $y = sin( $a ) * $aRad; + + $x += $w+$this->graph->img->left_margin;//$this->_Translate(0); + if( $this->graph->iType == POLAR_360 ) { + $y = ($this->graph->img->top_margin + $this->graph->img->plotheight/2) - $y; + } + else { + $y = ($this->graph->img->top_margin + $this->graph->img->plotheight) - $y; + } + return array($x,$y); + } +} + +class PolarGraph extends Graph { + public $scale; + public $axis; + public $iType=POLAR_360; + private $iClockwise=false; + + function __construct($aWidth=300,$aHeight=200,$aCachedName="",$aTimeOut=0,$aInline=true) { + parent::__construct($aWidth,$aHeight,$aCachedName,$aTimeOut,$aInline) ; + $this->SetDensity(TICKD_DENSE); + $this->SetBox(); + $this->SetMarginColor('white'); + } + + function SetDensity($aDense) { + $this->SetTickDensity(TICKD_NORMAL,$aDense); + } + + function SetClockwise($aFlg) { + $this->scale->SetClockwise($aFlg); + } + + function Set90AndMargin($lm=0,$rm=0,$tm=0,$bm=0) { + $adj = ($this->img->height - $this->img->width)/2; + $this->SetAngle(90); + $lm2 = -$adj + ($lm-$rm+$tm+$bm)/2; + $rm2 = -$adj + (-$lm+$rm+$tm+$bm)/2; + $tm2 = $adj + ($tm-$bm+$lm+$rm)/2; + $bm2 = $adj + (-$tm+$bm+$lm+$rm)/2; + $this->SetMargin($lm2, $rm2, $tm2, $bm2); + $this->axis->SetLabelAlign('right','center'); + } + + function SetScale($aScale,$rmax=0,$dummy1=1,$dummy2=1,$dummy3=1) { + if( $aScale == 'lin' ) { + $this->scale = new PolarScale($rmax,$this,$this->iClockwise); + } + elseif( $aScale == 'log' ) { + $this->scale = new PolarLogScale($rmax,$this,$this->iClockwise); + } + else { + JpGraphError::RaiseL(17004);//('Unknown scale type for polar graph. Must be "lin" or "log"'); + } + + $this->axis = new PolarAxis($this->img,$this->scale); + $this->SetMargin(40,40,50,40); + } + + function SetType($aType) { + $this->iType = $aType; + } + + function SetPlotSize($w,$h) { + $this->SetMargin(($this->img->width-$w)/2,($this->img->width-$w)/2, + ($this->img->height-$h)/2,($this->img->height-$h)/2); + } + + // Private methods + function GetPlotsMax() { + $n = count($this->plots); + $m = $this->plots[0]->Max(); + $i=1; + while($i < $n) { + $m = max($this->plots[$i]->Max(),$m); + ++$i; + } + return $m; + } + + function Stroke($aStrokeFileName="") { + + // Start by adjusting the margin so that potential titles will fit. + $this->AdjustMarginsForTitles(); + + // If the filename is the predefined value = '_csim_special_' + // we assume that the call to stroke only needs to do enough + // to correctly generate the CSIM maps. + // We use this variable to skip things we don't strictly need + // to do to generate the image map to improve performance + // a best we can. Therefor you will see a lot of tests !$_csim in the + // code below. + $_csim = ($aStrokeFileName===_CSIM_SPECIALFILE); + + // We need to know if we have stroked the plot in the + // GetCSIMareas. Otherwise the CSIM hasn't been generated + // and in the case of GetCSIM called before stroke to generate + // CSIM without storing an image to disk GetCSIM must call Stroke. + $this->iHasStroked = true; + + //Check if we should autoscale axis + if( !$this->scale->IsSpecified() && count($this->plots)>0 ) { + $max = $this->GetPlotsMax(); + $t1 = $this->img->plotwidth; + $this->img->plotwidth /= 2; + $t2 = $this->img->left_margin; + $this->img->left_margin += $this->img->plotwidth+1; + $this->scale->AutoScale($this->img,0,$max, + $this->img->plotwidth/$this->xtick_factor/2); + $this->img->plotwidth = $t1; + $this->img->left_margin = $t2; + } + else { + // The tick calculation will use the user suplied min/max values to determine + // the ticks. If auto_ticks is false the exact user specifed min and max + // values will be used for the scale. + // If auto_ticks is true then the scale might be slightly adjusted + // so that the min and max values falls on an even major step. + //$min = 0; + $max = $this->scale->scale[1]; + $t1 = $this->img->plotwidth; + $this->img->plotwidth /= 2; + $t2 = $this->img->left_margin; + $this->img->left_margin += $this->img->plotwidth+1; + $this->scale->AutoScale($this->img,0,$max, + $this->img->plotwidth/$this->xtick_factor/2); + $this->img->plotwidth = $t1; + $this->img->left_margin = $t2; + } + + if( $this->iType == POLAR_180 ) { + $pos = $this->img->height - $this->img->bottom_margin; + } + else { + $pos = $this->img->plotheight/2 + $this->img->top_margin; + } + + if( !$_csim ) { + $this->StrokePlotArea(); + } + + $this->iDoClipping = true; + + if( $this->iDoClipping ) { + $oldimage = $this->img->CloneCanvasH(); + } + + if( !$_csim ) { + $this->axis->StrokeGrid($pos); + } + + // Stroke all plots for Y1 axis + for($i=0; $i < count($this->plots); ++$i) { + $this->plots[$i]->Stroke($this->img,$this->scale); + } + + + if( $this->iDoClipping ) { + // Clipping only supports graphs at 0 and 90 degrees + if( $this->img->a == 0 ) { + $this->img->CopyCanvasH($oldimage,$this->img->img, + $this->img->left_margin,$this->img->top_margin, + $this->img->left_margin,$this->img->top_margin, + $this->img->plotwidth+1,$this->img->plotheight+1); + } + elseif( $this->img->a == 90 ) { + $adj1 = round(($this->img->height - $this->img->width)/2); + $adj2 = round(($this->img->width - $this->img->height)/2); + $lm = $this->img->left_margin; + $rm = $this->img->right_margin; + $tm = $this->img->top_margin; + $bm = $this->img->bottom_margin; + $this->img->CopyCanvasH($oldimage,$this->img->img, + $adj2 + round(($lm-$rm+$tm+$bm)/2), + $adj1 + round(($tm-$bm+$lm+$rm)/2), + $adj2 + round(($lm-$rm+$tm+$bm)/2), + $adj1 + round(($tm-$bm+$lm+$rm)/2), + $this->img->plotheight+1, + $this->img->plotwidth+1); + } + $this->img->Destroy(); + $this->img->SetCanvasH($oldimage); + } + + if( !$_csim ) { + $this->axis->Stroke($pos); + $this->axis->StrokeAngleLabels($pos,$this->iType); + } + + if( !$_csim ) { + $this->StrokePlotBox(); + $this->footer->Stroke($this->img); + + // The titles and legends never gets rotated so make sure + // that the angle is 0 before stroking them + $aa = $this->img->SetAngle(0); + $this->StrokeTitles(); + } + + for($i=0; $i < count($this->plots) ; ++$i ) { + $this->plots[$i]->Legend($this); + } + + $this->legend->Stroke($this->img); + + if( !$_csim ) { + + $this->StrokeTexts(); + $this->img->SetAngle($aa); + + // Draw an outline around the image map + if(_JPG_DEBUG) + $this->DisplayClientSideaImageMapAreas(); + + // If the filename is given as the special "__handle" + // then the image handler is returned and the image is NOT + // streamed back + if( $aStrokeFileName == _IMG_HANDLER ) { + return $this->img->img; + } + else { + // Finally stream the generated picture + $this->cache->PutAndStream($this->img,$this->cache_name,$this->inline,$aStrokeFileName); + } + } + } +} + + + +?> diff --git a/gosa-core/include/jpgraph/jpgraph_radar.php b/gosa-core/include/jpgraph/jpgraph_radar.php new file mode 100644 index 000000000..c71ffafe5 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_radar.php @@ -0,0 +1,861 @@ +GetMinVal(); + $limit = $aScale->GetMaxVal(); + $nextMajor = 10*$start; + $step = $nextMajor / 10.0; + $count=1; + + $ticklen_maj=5; + $dx_maj=round(sin($aAxisAngle)*$ticklen_maj); + $dy_maj=round(cos($aAxisAngle)*$ticklen_maj); + $ticklen_min=3; + $dx_min=round(sin($aAxisAngle)*$ticklen_min); + $dy_min=round(cos($aAxisAngle)*$ticklen_min); + + $aMajPos=array(); + $aMajLabel=array(); + + if( $this->supress_first ) { + $aMajLabel[] = ''; + } + else { + $aMajLabel[]=$start; + } + + $yr=$aScale->RelTranslate($start); + $xt=round($yr*cos($aAxisAngle))+$aScale->scale_abs[0]; + $yt=$aPos-round($yr*sin($aAxisAngle)); + $aMajPos[]=$xt+2*$dx_maj; + $aMajPos[]=$yt-$aImg->GetFontheight()/2; + $grid[]=$xt; + $grid[]=$yt; + + $aImg->SetLineWeight($this->weight); + + for($y=$start; $y<=$limit; $y+=$step,++$count ) { + $yr=$aScale->RelTranslate($y); + $xt=round($yr*cos($aAxisAngle))+$aScale->scale_abs[0]; + $yt=$aPos-round($yr*sin($aAxisAngle)); + if( $count % 10 == 0 ) { + $grid[]=$xt; + $grid[]=$yt; + $aMajPos[]=$xt+2*$dx_maj; + $aMajPos[]=$yt-$aImg->GetFontheight()/2; + if( !$this->supress_tickmarks ) { + if( $this->majcolor != '' ) { + $aImg->PushColor($this->majcolor); + } + $aImg->Line($xt+$dx_maj,$yt+$dy_maj,$xt-$dx_maj,$yt-$dy_maj); + if( $this->majcolor != '' ) { + $aImg->PopColor(); + } + } + if( $this->label_formfunc != '' ) { + $f=$this->label_formfunc; + $l = call_user_func($f,$nextMajor); + } + else { + $l = $nextMajor; + } + + $aMajLabel[]=$l; + $nextMajor *= 10; + $step *= 10; + $count=1; + } + else { + if( !$this->supress_minor_tickmarks ) { + if( $this->mincolor != '' ) { + $aImg->PushColor($this->mincolor); + } + $aImg->Line($xt+$dx_min,$yt+$dy_min,$xt-$dx_min,$yt-$dy_min); + if( $this->mincolor != '' ) { + $aImg->PopColor(); + } + } + } + } + } +} + +//=================================================== +// CLASS RadarLinear +// Description: Linear ticks +//=================================================== +class RadarLinearTicks extends Ticks { + + private $minor_step=1, $major_step=2; + private $xlabel_offset=0,$xtick_offset=0; + + function __construct() { + // Empty + } + + // Return major step size in world coordinates + function GetMajor() { + return $this->major_step; + } + + // Return minor step size in world coordinates + function GetMinor() { + return $this->minor_step; + } + + // Set Minor and Major ticks (in world coordinates) + function Set($aMajStep,$aMinStep=false) { + if( $aMinStep==false ) { + $aMinStep=$aMajStep; + } + + if( $aMajStep <= 0 || $aMinStep <= 0 ) { + JpGraphError::RaiseL(25064); + //JpGraphError::Raise(" Minor or major step size is 0. Check that you haven't got an accidental SetTextTicks(0) in your code. If this is not the case you might have stumbled upon a bug in JpGraph. Please report this and if possible include the data that caused the problem."); + } + + $this->major_step=$aMajStep; + $this->minor_step=$aMinStep; + $this->is_set = true; + } + + function Stroke($aImg,&$grid,$aPos,$aAxisAngle,$aScale,&$aMajPos,&$aMajLabel) { + // Prepare to draw linear ticks + $maj_step_abs = abs($aScale->scale_factor*$this->major_step); + $min_step_abs = abs($aScale->scale_factor*$this->minor_step); + $nbrmaj = round($aScale->world_abs_size/$maj_step_abs); + $nbrmin = round($aScale->world_abs_size/$min_step_abs); + $skip = round($nbrmin/$nbrmaj); // Don't draw minor on top of major + + // Draw major ticks + $ticklen2=$this->major_abs_size; + $dx=round(sin($aAxisAngle)*$ticklen2); + $dy=round(cos($aAxisAngle)*$ticklen2); + $label=$aScale->scale[0]+$this->major_step; + + $aImg->SetLineWeight($this->weight); + + $aMajPos = array(); + $aMajLabel = array(); + + for($i=1; $i<=$nbrmaj; ++$i) { + $xt=round($i*$maj_step_abs*cos($aAxisAngle))+$aScale->scale_abs[0]; + $yt=$aPos-round($i*$maj_step_abs*sin($aAxisAngle)); + + if( $this->label_formfunc != '' ) { + $f=$this->label_formfunc; + $l = call_user_func($f,$label); + } + else { + $l = $label; + } + + $aMajLabel[]=$l; + $label += $this->major_step; + $grid[]=$xt; + $grid[]=$yt; + $aMajPos[($i-1)*2]=$xt+2*$dx; + $aMajPos[($i-1)*2+1]=$yt-$aImg->GetFontheight()/2; + if( !$this->supress_tickmarks ) { + if( $this->majcolor != '' ) { + $aImg->PushColor($this->majcolor); + } + $aImg->Line($xt+$dx,$yt+$dy,$xt-$dx,$yt-$dy); + if( $this->majcolor != '' ) { + $aImg->PopColor(); + } + } + } + + // Draw minor ticks + $ticklen2=$this->minor_abs_size; + $dx=round(sin($aAxisAngle)*$ticklen2); + $dy=round(cos($aAxisAngle)*$ticklen2); + if( !$this->supress_tickmarks && !$this->supress_minor_tickmarks) { + if( $this->mincolor != '' ) { + $aImg->PushColor($this->mincolor); + } + for($i=1; $i<=$nbrmin; ++$i) { + if( ($i % $skip) == 0 ) { + continue; + } + $xt=round($i*$min_step_abs*cos($aAxisAngle))+$aScale->scale_abs[0]; + $yt=$aPos-round($i*$min_step_abs*sin($aAxisAngle)); + $aImg->Line($xt+$dx,$yt+$dy,$xt-$dx,$yt-$dy); + } + if( $this->mincolor != '' ) { + $aImg->PopColor(); + } + } + } +} + + +//=================================================== +// CLASS RadarAxis +// Description: Implements axis for the radar graph +//=================================================== +class RadarAxis extends AxisPrototype { + public $title=null; + private $title_color='navy'; + private $len=0; + + function __construct($img,$aScale,$color=array(0,0,0)) { + parent::__construct($img,$aScale,$color); + $this->len = $img->plotheight; + $this->title = new Text(); + $this->title->SetFont(FF_FONT1,FS_BOLD); + $this->color = array(0,0,0); + } + + // Stroke the axis + // $pos = Vertical position of axis + // $aAxisAngle = Axis angle + // $grid = Returns an array with positions used to draw the grid + // $lf = Label flag, TRUE if the axis should have labels + function Stroke($pos,$aAxisAngle,&$grid,$title,$lf) { + $this->img->SetColor($this->color); + + // Determine end points for the axis + $x=round($this->scale->world_abs_size*cos($aAxisAngle)+$this->scale->scale_abs[0]); + $y=round($pos-$this->scale->world_abs_size*sin($aAxisAngle)); + + // Draw axis + $this->img->SetColor($this->color); + $this->img->SetLineWeight($this->weight); + if( !$this->hide ) { + $this->img->Line($this->scale->scale_abs[0],$pos,$x,$y); + } + + $this->scale->ticks->Stroke($this->img,$grid,$pos,$aAxisAngle,$this->scale,$majpos,$majlabel); + $ncolor=0; + if( isset($this->ticks_label_colors) ) { + $ncolor=count($this->ticks_label_colors); + } + + // Draw labels + if( $lf && !$this->hide ) { + $this->img->SetFont($this->font_family,$this->font_style,$this->font_size); + $this->img->SetTextAlign('left','top'); + $this->img->SetColor($this->label_color); + + // majpos contains (x,y) coordinates for labels + if( ! $this->hide_labels ) { + $n = floor(count($majpos)/2); + for($i=0; $i < $n; ++$i) { + // Set specific label color if specified + if( $ncolor > 0 ) { + $this->img->SetColor($this->ticks_label_colors[$i % $ncolor]); + } + + if( $this->ticks_label != null && isset($this->ticks_label[$i]) ) { + $this->img->StrokeText($majpos[$i*2],$majpos[$i*2+1],$this->ticks_label[$i]); + } + else { + $this->img->StrokeText($majpos[$i*2],$majpos[$i*2+1],$majlabel[$i]); + } + } + } + } + $this->_StrokeAxisTitle($pos,$aAxisAngle,$title); + } + + function _StrokeAxisTitle($pos,$aAxisAngle,$title) { + $this->title->Set($title); + $marg=6+$this->title->margin; + $xt=round(($this->scale->world_abs_size+$marg)*cos($aAxisAngle)+$this->scale->scale_abs[0]); + $yt=round($pos-($this->scale->world_abs_size+$marg)*sin($aAxisAngle)); + + // Position the axis title. + // dx, dy is the offset from the top left corner of the bounding box that sorrounds the text + // that intersects with the extension of the corresponding axis. The code looks a little + // bit messy but this is really the only way of having a reasonable position of the + // axis titles. + if( $this->title->iWordwrap > 0 ) { + $title = wordwrap($title,$this->title->iWordwrap,"\n"); + } + + $h=$this->img->GetTextHeight($title)*1.2; + $w=$this->img->GetTextWidth($title)*1.2; + + while( $aAxisAngle > 2*M_PI ) + $aAxisAngle -= 2*M_PI; + + // Around 3 a'clock + if( $aAxisAngle>=7*M_PI/4 || $aAxisAngle <= M_PI/4 ) $dx=-0.15; // Small trimming to make the dist to the axis more even + + // Around 12 a'clock + if( $aAxisAngle>=M_PI/4 && $aAxisAngle <= 3*M_PI/4 ) $dx=($aAxisAngle-M_PI/4)*2/M_PI; + + // Around 9 a'clock + if( $aAxisAngle>=3*M_PI/4 && $aAxisAngle <= 5*M_PI/4 ) $dx=1; + + // Around 6 a'clock + if( $aAxisAngle>=5*M_PI/4 && $aAxisAngle <= 7*M_PI/4 ) $dx=(1-($aAxisAngle-M_PI*5/4)*2/M_PI); + + if( $aAxisAngle>=7*M_PI/4 ) $dy=(($aAxisAngle-M_PI)-3*M_PI/4)*2/M_PI; + if( $aAxisAngle<=M_PI/12 ) $dy=(0.5-$aAxisAngle*2/M_PI); + if( $aAxisAngle<=M_PI/4 && $aAxisAngle > M_PI/12) $dy=(1-$aAxisAngle*2/M_PI); + if( $aAxisAngle>=M_PI/4 && $aAxisAngle <= 3*M_PI/4 ) $dy=1; + if( $aAxisAngle>=3*M_PI/4 && $aAxisAngle <= 5*M_PI/4 ) $dy=(1-($aAxisAngle-3*M_PI/4)*2/M_PI); + if( $aAxisAngle>=5*M_PI/4 && $aAxisAngle <= 7*M_PI/4 ) $dy=0; + + if( !$this->hide ) { + $this->title->Stroke($this->img,$xt-$dx*$w,$yt-$dy*$h,$title); + } + } + +} // Class + + +//=================================================== +// CLASS RadarGrid +// Description: Draws grid for the radar graph +//=================================================== +class RadarGrid { //extends Grid { + private $type='solid'; + private $grid_color='#DDDDDD'; + private $show=false, $weight=1; + + function __construct() { + // Empty + } + + function SetColor($aMajColor) { + $this->grid_color = $aMajColor; + } + + function SetWeight($aWeight) { + $this->weight=$aWeight; + } + + // Specify if grid should be dashed, dotted or solid + function SetLineStyle($aType) { + $this->type = $aType; + } + + // Decide if both major and minor grid should be displayed + function Show($aShowMajor=true) { + $this->show=$aShowMajor; + } + + function Stroke($img,$grid) { + if( !$this->show ) { + return; + } + + $nbrticks = count($grid[0])/2; + $nbrpnts = count($grid); + $img->SetColor($this->grid_color); + $img->SetLineWeight($this->weight); + + for($i=0; $i<$nbrticks; ++$i) { + for($j=0; $j<$nbrpnts; ++$j) { + $pnts[$j*2]=$grid[$j][$i*2]; + $pnts[$j*2+1]=$grid[$j][$i*2+1]; + } + for($k=0; $k<$nbrpnts; ++$k ){ + $l=($k+1)%$nbrpnts; + if( $this->type == 'solid' ) + $img->Line($pnts[$k*2],$pnts[$k*2+1],$pnts[$l*2],$pnts[$l*2+1]); + elseif( $this->type == 'dotted' ) + $img->DashedLine($pnts[$k*2],$pnts[$k*2+1],$pnts[$l*2],$pnts[$l*2+1],1,6); + elseif( $this->type == 'dashed' ) + $img->DashedLine($pnts[$k*2],$pnts[$k*2+1],$pnts[$l*2],$pnts[$l*2+1],2,4); + elseif( $this->type == 'longdashed' ) + $img->DashedLine($pnts[$k*2],$pnts[$k*2+1],$pnts[$l*2],$pnts[$l*2+1],8,6); + } + $pnts=array(); + } + } +} // Class + + +//=================================================== +// CLASS RadarPlot +// Description: Plot a radarplot +//=================================================== +class RadarPlot { + public $mark=null; + public $legend=''; + public $legendcsimtarget=''; + public $legendcsimalt=''; + public $csimtargets=array(); // Array of targets for CSIM + public $csimareas=""; // Resultant CSIM area tags + public $csimalts=null; // ALT:s for corresponding target + private $data=array(); + private $fill=false, $fill_color=array(200,170,180); + private $color=array(0,0,0); + private $weight=1; + private $linestyle='solid'; + + //--------------- + // CONSTRUCTOR + function __construct($data) { + $this->data = $data; + $this->mark = new PlotMark(); + } + + function Min() { + return Min($this->data); + } + + function Max() { + return Max($this->data); + } + + function SetLegend($legend) { + $this->legend=$legend; + } + + function SetLineStyle($aStyle) { + $this->linestyle=$aStyle; + } + + function SetLineWeight($w) { + $this->weight=$w; + } + + function SetFillColor($aColor) { + $this->fill_color = $aColor; + $this->fill = true; + } + + function SetFill($f=true) { + $this->fill = $f; + } + + function SetColor($aColor,$aFillColor=false) { + $this->color = $aColor; + if( $aFillColor ) { + $this->SetFillColor($aFillColor); + $this->fill = true; + } + } + + // Set href targets for CSIM + function SetCSIMTargets($aTargets,$aAlts=null) { + $this->csimtargets=$aTargets; + $this->csimalts=$aAlts; + } + + // Get all created areas + function GetCSIMareas() { + return $this->csimareas; + } + + function Stroke($img, $pos, $scale, $startangle) { + $nbrpnts = count($this->data); + $astep=2*M_PI/$nbrpnts; + $a=$startangle; + + for($i=0; $i<$nbrpnts; ++$i) { + + // Rotate each non null point to the correct axis-angle + $cs=$scale->RelTranslate($this->data[$i]); + $x=round($cs*cos($a)+$scale->scale_abs[0]); + $y=round($pos-$cs*sin($a)); + + $pnts[$i*2]=$x; + $pnts[$i*2+1]=$y; + + // If the next point is null then we draw this polygon segment + // to the center, skip the next and draw the next segment from + // the center up to the point on the axis with the first non-null + // value and continues from that point. Some additoinal logic is necessary + // to handle the boundary conditions + if( $i < $nbrpnts-1 ) { + if( is_null($this->data[$i+1]) ) { + $cs = 0; + $x=round($cs*cos($a)+$scale->scale_abs[0]); + $y=round($pos-$cs*sin($a)); + $pnts[$i*2]=$x; + $pnts[$i*2+1]=$y; + $a += $astep; + } + } + + $a += $astep; + } + + if( $this->fill ) { + $img->SetColor($this->fill_color); + $img->FilledPolygon($pnts); + } + + $img->SetLineWeight($this->weight); + $img->SetColor($this->color); + $img->SetLineStyle($this->linestyle); + $pnts[] = $pnts[0]; + $pnts[] = $pnts[1]; + $img->Polygon($pnts); + $img->SetLineStyle('solid'); // Reset line style to default + + // Add plotmarks on top + if( $this->mark->show ) { + for($i=0; $i < $nbrpnts; ++$i) { + if( isset($this->csimtargets[$i]) ) { + $this->mark->SetCSIMTarget($this->csimtargets[$i]); + $this->mark->SetCSIMAlt($this->csimalts[$i]); + $this->mark->SetCSIMAltVal($pnts[$i*2], $pnts[$i*2+1]); + $this->mark->Stroke($img, $pnts[$i*2], $pnts[$i*2+1]); + $this->csimareas .= $this->mark->GetCSIMAreas(); + } + else { + $this->mark->Stroke($img,$pnts[$i*2],$pnts[$i*2+1]); + } + } + } + + } + + function GetCount() { + return count($this->data); + } + + function Legend($graph) { + if( $this->legend == '' ) { + return; + } + if( $this->fill ) { + $graph->legend->Add($this->legend,$this->fill_color,$this->mark); + } else { + $graph->legend->Add($this->legend,$this->color,$this->mark); + } + } + +} // Class + +//=================================================== +// CLASS RadarGraph +// Description: Main container for a radar graph +//=================================================== +class RadarGraph extends Graph { + public $grid,$axis=null; + private $posx,$posy; + private $len; + private $axis_title=null; + + function __construct($width=300,$height=200,$cachedName="",$timeout=0,$inline=1) { + parent::__construct($width,$height,$cachedName,$timeout,$inline); + $this->posx = $width/2; + $this->posy = $height/2; + $this->len = min($width,$height)*0.35; + $this->SetColor(array(255,255,255)); + $this->SetTickDensity(TICKD_NORMAL); + $this->SetScale('lin'); + $this->SetGridDepth(DEPTH_FRONT); + } + + function HideTickMarks($aFlag=true) { + $this->axis->scale->ticks->SupressTickMarks($aFlag); + } + + function ShowMinorTickmarks($aFlag=true) { + $this->yscale->ticks->SupressMinorTickMarks(!$aFlag); + } + + function SetScale($axtype,$ymin=1,$ymax=1,$dummy1=null,$dumy2=null) { + if( $axtype != 'lin' && $axtype != 'log' ) { + JpGraphError::RaiseL(18003,$axtype); + //("Illegal scale for radarplot ($axtype). Must be \"lin\" or \"log\""); + } + if( $axtype == 'lin' ) { + $this->yscale = new LinearScale($ymin,$ymax); + $this->yscale->ticks = new RadarLinearTicks(); + $this->yscale->ticks->SupressMinorTickMarks(); + } + elseif( $axtype == 'log' ) { + $this->yscale = new LogScale($ymin,$ymax); + $this->yscale->ticks = new RadarLogTicks(); + } + + $this->axis = new RadarAxis($this->img,$this->yscale); + $this->grid = new RadarGrid(); + } + + function SetSize($aSize) { + if( $aSize < 0.1 || $aSize>1 ) { + JpGraphError::RaiseL(18004,$aSize); + //("Radar Plot size must be between 0.1 and 1. (Your value=$s)"); + } + $this->len=min($this->img->width,$this->img->height)*$aSize/2; + } + + function SetPlotSize($aSize) { + $this->SetSize($aSize); + } + + function SetTickDensity($densy=TICKD_NORMAL,$dummy1=null) { + $this->ytick_factor=25; + switch( $densy ) { + case TICKD_DENSE: + $this->ytick_factor=12; + break; + case TICKD_NORMAL: + $this->ytick_factor=25; + break; + case TICKD_SPARSE: + $this->ytick_factor=40; + break; + case TICKD_VERYSPARSE: + $this->ytick_factor=70; + break; + default: + JpGraphError::RaiseL(18005,$densy); + //("RadarPlot Unsupported Tick density: $densy"); + } + } + + function SetPos($px,$py=0.5) { + $this->SetCenter($px,$py); + } + + function SetCenter($px,$py=0.5) { + if( $px >= 0 && $px <= 1 ) { + $this->posx = $this->img->width*$px; + } + else { + $this->posx = $px; + } + if( $py >= 0 && $py <= 1 ) { + $this->posy = $this->img->height*$py; + } + else { + $this->posy = $py; + } + } + + function SetColor($aColor) { + $this->SetMarginColor($aColor); + } + + function SetTitles($aTitleArray) { + $this->axis_title = $aTitleArray; + } + + function Add($aPlot) { + if( $aPlot == null ) { + JpGraphError::RaiseL(25010);//("Graph::Add() You tried to add a null plot to the graph."); + } + if( is_array($aPlot) && count($aPlot) > 0 ) { + $cl = $aPlot[0]; + } + else { + $cl = $aPlot; + } + + if( $cl instanceof Text ) $this->AddText($aPlot); + elseif( class_exists('IconPlot',false) && ($cl instanceof IconPlot) ) $this->AddIcon($aPlot); + else { + $this->plots[] = $aPlot; + } + } + + function GetPlotsYMinMax($aPlots) { + $min=$aPlots[0]->Min(); + $max=$aPlots[0]->Max(); + foreach( $this->plots as $p ) { + $max=max($max,$p->Max()); + $min=min($min,$p->Min()); + } + if( $min < 0 ) { + JpGraphError::RaiseL(18006,$min); + //("Minimum data $min (Radar plots should only be used when all data points > 0)"); + } + return array($min,$max); + } + + function StrokeIcons() { + if( $this->iIcons != null ) { + $n = count($this->iIcons); + for( $i=0; $i < $n; ++$i ) { + $this->iIcons[$i]->Stroke($this->img); + } + } + } + + function StrokeTexts() { + if( $this->texts != null ) { + $n = count($this->texts); + for( $i=0; $i < $n; ++$i ) { + $this->texts[$i]->Stroke($this->img); + } + } + } + + // Stroke the Radar graph + function Stroke($aStrokeFileName='') { + + // If the filename is the predefined value = '_csim_special_' + // we assume that the call to stroke only needs to do enough + // to correctly generate the CSIM maps. + // We use this variable to skip things we don't strictly need + // to do to generate the image map to improve performance + // a best we can. Therefor you will see a lot of tests !$_csim in the + // code below. + $_csim = ( $aStrokeFileName === _CSIM_SPECIALFILE ); + + // We need to know if we have stroked the plot in the + // GetCSIMareas. Otherwise the CSIM hasn't been generated + // and in the case of GetCSIM called before stroke to generate + // CSIM without storing an image to disk GetCSIM must call Stroke. + $this->iHasStroked = true; + + $n = count($this->plots); + // Set Y-scale + + if( !$this->yscale->IsSpecified() && count($this->plots) > 0 ) { + list($min,$max) = $this->GetPlotsYMinMax($this->plots); + $this->yscale->AutoScale($this->img,0,$max,$this->len/$this->ytick_factor); + } + elseif( $this->yscale->IsSpecified() && + ( $this->yscale->auto_ticks || !$this->yscale->ticks->IsSpecified()) ) { + + // The tick calculation will use the user suplied min/max values to determine + // the ticks. If auto_ticks is false the exact user specifed min and max + // values will be used for the scale. + // If auto_ticks is true then the scale might be slightly adjusted + // so that the min and max values falls on an even major step. + $min = $this->yscale->scale[0]; + $max = $this->yscale->scale[1]; + $this->yscale->AutoScale($this->img,$min,$max, + $this->len/$this->ytick_factor, + $this->yscale->auto_ticks); + } + + // Set start position end length of scale (in absolute pixels) + $this->yscale->SetConstants($this->posx,$this->len); + + // We need as many axis as there are data points + $nbrpnts=$this->plots[0]->GetCount(); + + // If we have no titles just number the axis 1,2,3,... + if( $this->axis_title==null ) { + for($i=0; $i < $nbrpnts; ++$i ) { + $this->axis_title[$i] = $i+1; + } + } + elseif( count($this->axis_title) < $nbrpnts) { + JpGraphError::RaiseL(18007); + // ("Number of titles does not match number of points in plot."); + } + for( $i=0; $i < $n; ++$i ) { + if( $nbrpnts != $this->plots[$i]->GetCount() ) { + JpGraphError::RaiseL(18008); + //("Each radar plot must have the same number of data points."); + } + } + + if( !$_csim ) { + if( $this->background_image != '' ) { + $this->StrokeFrameBackground(); + } + else { + $this->StrokeFrame(); + $this->StrokeBackgroundGrad(); + } + } + $astep=2*M_PI/$nbrpnts; + + if( !$_csim ) { + if( $this->iIconDepth == DEPTH_BACK ) { + $this->StrokeIcons(); + } + + + // Prepare legends + for($i=0; $i < $n; ++$i) { + $this->plots[$i]->Legend($this); + } + $this->legend->Stroke($this->img); + $this->footer->Stroke($this->img); + } + + if( !$_csim ) { + if( $this->grid_depth == DEPTH_BACK ) { + // Draw axis and grid + for( $i=0,$a=M_PI/2; $i < $nbrpnts; ++$i, $a += $astep ) { + $this->axis->Stroke($this->posy,$a,$grid[$i],$this->axis_title[$i],$i==0); + } + $this->grid->Stroke($this->img,$grid); + } + if( $this->iIconDepth == DEPTH_BACK ) { + $this->StrokeIcons(); + } + + } + + // Plot points + $a=M_PI/2; + for($i=0; $i < $n; ++$i ) { + $this->plots[$i]->Stroke($this->img, $this->posy, $this->yscale, $a); + } + + if( !$_csim ) { + if( $this->grid_depth != DEPTH_BACK ) { + // Draw axis and grid + for( $i=0,$a=M_PI/2; $i < $nbrpnts; ++$i, $a += $astep ) { + $this->axis->Stroke($this->posy,$a,$grid[$i],$this->axis_title[$i],$i==0); + } + $this->grid->Stroke($this->img,$grid); + } + + $this->StrokeTitles(); + $this->StrokeTexts(); + if( $this->iIconDepth == DEPTH_FRONT ) { + $this->StrokeIcons(); + } + } + + // Should we do any final image transformation + if( $this->iImgTrans && !$_csim ) { + if( !class_exists('ImgTrans',false) ) { + require_once('jpgraph_imgtrans.php'); + } + + $tform = new ImgTrans($this->img->img); + $this->img->img = $tform->Skew3D($this->iImgTransHorizon,$this->iImgTransSkewDist, + $this->iImgTransDirection,$this->iImgTransHighQ, + $this->iImgTransMinSize,$this->iImgTransFillColor, + $this->iImgTransBorder); + } + + if( !$_csim ) { + // If the filename is given as the special "__handle" + // then the image handler is returned and the image is NOT + // streamed back + if( $aStrokeFileName == _IMG_HANDLER ) { + return $this->img->img; + } + else { + // Finally stream the generated picture + $this->cache->PutAndStream($this->img,$this->cache_name,$this->inline,$aStrokeFileName); + } + } + } +} // Class + +/* EOF */ +?> diff --git a/gosa-core/include/jpgraph/jpgraph_regstat.php b/gosa-core/include/jpgraph/jpgraph_regstat.php new file mode 100644 index 000000000..c327c9598 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_regstat.php @@ -0,0 +1,215 @@ +y2 = array(); + $this->xdata = $xdata; + $this->ydata = $ydata; + + $n = count($ydata); + $this->n = $n; + if( $this->n !== count($xdata) ) { + JpGraphError::RaiseL(19001); + //('Spline: Number of X and Y coordinates must be the same'); + } + + // Natural spline 2:derivate == 0 at endpoints + $this->y2[0] = 0.0; + $this->y2[$n-1] = 0.0; + $delta[0] = 0.0; + + // Calculate 2:nd derivate + for($i=1; $i < $n-1; ++$i) { + $d = ($xdata[$i+1]-$xdata[$i-1]); + if( $d == 0 ) { + JpGraphError::RaiseL(19002); + //('Invalid input data for spline. Two or more consecutive input X-values are equal. Each input X-value must differ since from a mathematical point of view it must be a one-to-one mapping, i.e. each X-value must correspond to exactly one Y-value.'); + } + $s = ($xdata[$i]-$xdata[$i-1])/$d; + $p = $s*$this->y2[$i-1]+2.0; + $this->y2[$i] = ($s-1.0)/$p; + $delta[$i] = ($ydata[$i+1]-$ydata[$i])/($xdata[$i+1]-$xdata[$i]) - + ($ydata[$i]-$ydata[$i-1])/($xdata[$i]-$xdata[$i-1]); + $delta[$i] = (6.0*$delta[$i]/($xdata[$i+1]-$xdata[$i-1])-$s*$delta[$i-1])/$p; + } + + // Backward substitution + for( $j=$n-2; $j >= 0; --$j ) { + $this->y2[$j] = $this->y2[$j]*$this->y2[$j+1] + $delta[$j]; + } + } + + // Return the two new data vectors + function Get($num=50) { + $n = $this->n ; + $step = ($this->xdata[$n-1]-$this->xdata[0]) / ($num-1); + $xnew=array(); + $ynew=array(); + $xnew[0] = $this->xdata[0]; + $ynew[0] = $this->ydata[0]; + for( $j=1; $j < $num; ++$j ) { + $xnew[$j] = $xnew[0]+$j*$step; + $ynew[$j] = $this->Interpolate($xnew[$j]); + } + return array($xnew,$ynew); + } + + // Return a single interpolated Y-value from an x value + function Interpolate($xpoint) { + + $max = $this->n-1; + $min = 0; + + // Binary search to find interval + while( $max-$min > 1 ) { + $k = ($max+$min) / 2; + if( $this->xdata[$k] > $xpoint ) + $max=$k; + else + $min=$k; + } + + // Each interval is interpolated by a 3:degree polynom function + $h = $this->xdata[$max]-$this->xdata[$min]; + + if( $h == 0 ) { + JpGraphError::RaiseL(19002); + //('Invalid input data for spline. Two or more consecutive input X-values are equal. Each input X-value must differ since from a mathematical point of view it must be a one-to-one mapping, i.e. each X-value must correspond to exactly one Y-value.'); + } + + + $a = ($this->xdata[$max]-$xpoint)/$h; + $b = ($xpoint-$this->xdata[$min])/$h; + return $a*$this->ydata[$min]+$b*$this->ydata[$max]+ + (($a*$a*$a-$a)*$this->y2[$min]+($b*$b*$b-$b)*$this->y2[$max])*($h*$h)/6.0; + } +} + +//------------------------------------------------------------------------ +// CLASS Bezier +// Create a new data array from a number of control points +//------------------------------------------------------------------------ +class Bezier { + /** + * @author Thomas Despoix, openXtrem company + * @license released under QPL + * @abstract Bezier interoplated point generation, + * computed from control points data sets, based on Paul Bourke algorithm : + * http://local.wasp.uwa.edu.au/~pbourke/geometry/bezier/index2.html + */ + private $datax = array(); + private $datay = array(); + private $n=0; + + function __construct($datax, $datay, $attraction_factor = 1) { + // Adding control point multiple time will raise their attraction power over the curve + $this->n = count($datax); + if( $this->n !== count($datay) ) { + JpGraphError::RaiseL(19003); + //('Bezier: Number of X and Y coordinates must be the same'); + } + $idx=0; + foreach($datax as $datumx) { + for ($i = 0; $i < $attraction_factor; $i++) { + $this->datax[$idx++] = $datumx; + } + } + $idx=0; + foreach($datay as $datumy) { + for ($i = 0; $i < $attraction_factor; $i++) { + $this->datay[$idx++] = $datumy; + } + } + $this->n *= $attraction_factor; + } + + /** + * Return a set of data points that specifies the bezier curve with $steps points + * @param $steps Number of new points to return + * @return array($datax, $datay) + */ + function Get($steps) { + $datax = array(); + $datay = array(); + for ($i = 0; $i < $steps; $i++) { + list($datumx, $datumy) = $this->GetPoint((double) $i / (double) $steps); + $datax[$i] = $datumx; + $datay[$i] = $datumy; + } + + $datax[] = end($this->datax); + $datay[] = end($this->datay); + + return array($datax, $datay); + } + + /** + * Return one point on the bezier curve. $mu is the position on the curve where $mu is in the + * range 0 $mu < 1 where 0 is tha start point and 1 is the end point. Note that every newly computed + * point depends on all the existing points + * + * @param $mu Position on the bezier curve + * @return array($x, $y) + */ + function GetPoint($mu) { + $n = $this->n - 1; + $k = 0; + $kn = 0; + $nn = 0; + $nkn = 0; + $blend = 0.0; + $newx = 0.0; + $newy = 0.0; + + $muk = 1.0; + $munk = (double) pow(1-$mu,(double) $n); + + for ($k = 0; $k <= $n; $k++) { + $nn = $n; + $kn = $k; + $nkn = $n - $k; + $blend = $muk * $munk; + $muk *= $mu; + $munk /= (1-$mu); + while ($nn >= 1) { + $blend *= $nn; + $nn--; + if ($kn > 1) { + $blend /= (double) $kn; + $kn--; + } + if ($nkn > 1) { + $blend /= (double) $nkn; + $nkn--; + } + } + $newx += $this->datax[$k] * $blend; + $newy += $this->datay[$k] * $blend; + } + + return array($newx, $newy); + } +} + +// EOF +?> diff --git a/gosa-core/include/jpgraph/jpgraph_rgb.inc.php b/gosa-core/include/jpgraph/jpgraph_rgb.inc.php new file mode 100644 index 000000000..2cbc85bb3 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_rgb.inc.php @@ -0,0 +1,615 @@ +img = $aImg; + + // Conversion array between color names and RGB + $this->rgb_table = array( + 'aqua'=> array(0,255,255), + 'lime'=> array(0,255,0), + 'teal'=> array(0,128,128), + 'whitesmoke'=>array(245,245,245), + 'gainsboro'=>array(220,220,220), + 'oldlace'=>array(253,245,230), + 'linen'=>array(250,240,230), + 'antiquewhite'=>array(250,235,215), + 'papayawhip'=>array(255,239,213), + 'blanchedalmond'=>array(255,235,205), + 'bisque'=>array(255,228,196), + 'peachpuff'=>array(255,218,185), + 'navajowhite'=>array(255,222,173), + 'moccasin'=>array(255,228,181), + 'cornsilk'=>array(255,248,220), + 'ivory'=>array(255,255,240), + 'lemonchiffon'=>array(255,250,205), + 'seashell'=>array(255,245,238), + 'mintcream'=>array(245,255,250), + 'azure'=>array(240,255,255), + 'aliceblue'=>array(240,248,255), + 'lavender'=>array(230,230,250), + 'lavenderblush'=>array(255,240,245), + 'mistyrose'=>array(255,228,225), + 'white'=>array(255,255,255), + 'black'=>array(0,0,0), + 'darkslategray'=>array(47,79,79), + 'dimgray'=>array(105,105,105), + 'slategray'=>array(112,128,144), + 'lightslategray'=>array(119,136,153), + 'gray'=>array(190,190,190), + 'lightgray'=>array(211,211,211), + 'midnightblue'=>array(25,25,112), + 'navy'=>array(0,0,128), + 'indigo'=>array(75,0,130), + 'electricindigo'=>array(102,0,255), + 'deepindigo'=>array(138,43,226), + 'pigmentindigo'=>array(75,0,130), + 'indigodye'=>array(0,65,106), + 'cornflowerblue'=>array(100,149,237), + 'darkslateblue'=>array(72,61,139), + 'slateblue'=>array(106,90,205), + 'mediumslateblue'=>array(123,104,238), + 'lightslateblue'=>array(132,112,255), + 'mediumblue'=>array(0,0,205), + 'royalblue'=>array(65,105,225), + 'blue'=>array(0,0,255), + 'dodgerblue'=>array(30,144,255), + 'deepskyblue'=>array(0,191,255), + 'skyblue'=>array(135,206,235), + 'lightskyblue'=>array(135,206,250), + 'steelblue'=>array(70,130,180), + 'lightred'=>array(211,167,168), + 'lightsteelblue'=>array(176,196,222), + 'lightblue'=>array(173,216,230), + 'powderblue'=>array(176,224,230), + 'paleturquoise'=>array(175,238,238), + 'darkturquoise'=>array(0,206,209), + 'mediumturquoise'=>array(72,209,204), + 'turquoise'=>array(64,224,208), + 'cyan'=>array(0,255,255), + 'lightcyan'=>array(224,255,255), + 'cadetblue'=>array(95,158,160), + 'mediumaquamarine'=>array(102,205,170), + 'aquamarine'=>array(127,255,212), + 'darkgreen'=>array(0,100,0), + 'darkolivegreen'=>array(85,107,47), + 'darkseagreen'=>array(143,188,143), + 'seagreen'=>array(46,139,87), + 'mediumseagreen'=>array(60,179,113), + 'lightseagreen'=>array(32,178,170), + 'palegreen'=>array(152,251,152), + 'springgreen'=>array(0,255,127), + 'lawngreen'=>array(124,252,0), + 'green'=>array(0,255,0), + 'chartreuse'=>array(127,255,0), + 'mediumspringgreen'=>array(0,250,154), + 'greenyellow'=>array(173,255,47), + 'limegreen'=>array(50,205,50), + 'yellowgreen'=>array(154,205,50), + 'forestgreen'=>array(34,139,34), + 'olivedrab'=>array(107,142,35), + 'darkkhaki'=>array(189,183,107), + 'khaki'=>array(240,230,140), + 'palegoldenrod'=>array(238,232,170), + 'lightgoldenrodyellow'=>array(250,250,210), + 'lightyellow'=>array(255,255,200), + 'yellow'=>array(255,255,0), + 'gold'=>array(255,215,0), + 'lightgoldenrod'=>array(238,221,130), + 'goldenrod'=>array(218,165,32), + 'darkgoldenrod'=>array(184,134,11), + 'rosybrown'=>array(188,143,143), + 'indianred'=>array(205,92,92), + 'saddlebrown'=>array(139,69,19), + 'sienna'=>array(160,82,45), + 'peru'=>array(205,133,63), + 'burlywood'=>array(222,184,135), + 'beige'=>array(245,245,220), + 'wheat'=>array(245,222,179), + 'sandybrown'=>array(244,164,96), + 'tan'=>array(210,180,140), + 'chocolate'=>array(210,105,30), + 'firebrick'=>array(178,34,34), + 'brown'=>array(165,42,42), + 'darksalmon'=>array(233,150,122), + 'salmon'=>array(250,128,114), + 'lightsalmon'=>array(255,160,122), + 'orange'=>array(255,165,0), + 'darkorange'=>array(255,140,0), + 'coral'=>array(255,127,80), + 'lightcoral'=>array(240,128,128), + 'tomato'=>array(255,99,71), + 'orangered'=>array(255,69,0), + 'red'=>array(255,0,0), + 'hotpink'=>array(255,105,180), + 'deeppink'=>array(255,20,147), + 'pink'=>array(255,192,203), + 'lightpink'=>array(255,182,193), + 'palevioletred'=>array(219,112,147), + 'maroon'=>array(176,48,96), + 'mediumvioletred'=>array(199,21,133), + 'violetred'=>array(208,32,144), + 'magenta'=>array(255,0,255), + 'violet'=>array(238,130,238), + 'plum'=>array(221,160,221), + 'orchid'=>array(218,112,214), + 'mediumorchid'=>array(186,85,211), + 'darkorchid'=>array(153,50,204), + 'darkviolet'=>array(148,0,211), + 'blueviolet'=>array(138,43,226), + 'purple'=>array(160,32,240), + 'mediumpurple'=>array(147,112,219), + 'thistle'=>array(216,191,216), + 'snow1'=>array(255,250,250), + 'snow2'=>array(238,233,233), + 'snow3'=>array(205,201,201), + 'snow4'=>array(139,137,137), + 'seashell1'=>array(255,245,238), + 'seashell2'=>array(238,229,222), + 'seashell3'=>array(205,197,191), + 'seashell4'=>array(139,134,130), + 'AntiqueWhite1'=>array(255,239,219), + 'AntiqueWhite2'=>array(238,223,204), + 'AntiqueWhite3'=>array(205,192,176), + 'AntiqueWhite4'=>array(139,131,120), + 'bisque1'=>array(255,228,196), + 'bisque2'=>array(238,213,183), + 'bisque3'=>array(205,183,158), + 'bisque4'=>array(139,125,107), + 'peachPuff1'=>array(255,218,185), + 'peachpuff2'=>array(238,203,173), + 'peachpuff3'=>array(205,175,149), + 'peachpuff4'=>array(139,119,101), + 'navajowhite1'=>array(255,222,173), + 'navajowhite2'=>array(238,207,161), + 'navajowhite3'=>array(205,179,139), + 'navajowhite4'=>array(139,121,94), + 'lemonchiffon1'=>array(255,250,205), + 'lemonchiffon2'=>array(238,233,191), + 'lemonchiffon3'=>array(205,201,165), + 'lemonchiffon4'=>array(139,137,112), + 'ivory1'=>array(255,255,240), + 'ivory2'=>array(238,238,224), + 'ivory3'=>array(205,205,193), + 'ivory4'=>array(139,139,131), + 'honeydew'=>array(193,205,193), + 'lavenderblush1'=>array(255,240,245), + 'lavenderblush2'=>array(238,224,229), + 'lavenderblush3'=>array(205,193,197), + 'lavenderblush4'=>array(139,131,134), + 'mistyrose1'=>array(255,228,225), + 'mistyrose2'=>array(238,213,210), + 'mistyrose3'=>array(205,183,181), + 'mistyrose4'=>array(139,125,123), + 'azure1'=>array(240,255,255), + 'azure2'=>array(224,238,238), + 'azure3'=>array(193,205,205), + 'azure4'=>array(131,139,139), + 'slateblue1'=>array(131,111,255), + 'slateblue2'=>array(122,103,238), + 'slateblue3'=>array(105,89,205), + 'slateblue4'=>array(71,60,139), + 'royalblue1'=>array(72,118,255), + 'royalblue2'=>array(67,110,238), + 'royalblue3'=>array(58,95,205), + 'royalblue4'=>array(39,64,139), + 'dodgerblue1'=>array(30,144,255), + 'dodgerblue2'=>array(28,134,238), + 'dodgerblue3'=>array(24,116,205), + 'dodgerblue4'=>array(16,78,139), + 'steelblue1'=>array(99,184,255), + 'steelblue2'=>array(92,172,238), + 'steelblue3'=>array(79,148,205), + 'steelblue4'=>array(54,100,139), + 'deepskyblue1'=>array(0,191,255), + 'deepskyblue2'=>array(0,178,238), + 'deepskyblue3'=>array(0,154,205), + 'deepskyblue4'=>array(0,104,139), + 'skyblue1'=>array(135,206,255), + 'skyblue2'=>array(126,192,238), + 'skyblue3'=>array(108,166,205), + 'skyblue4'=>array(74,112,139), + 'lightskyblue1'=>array(176,226,255), + 'lightskyblue2'=>array(164,211,238), + 'lightskyblue3'=>array(141,182,205), + 'lightskyblue4'=>array(96,123,139), + 'slategray1'=>array(198,226,255), + 'slategray2'=>array(185,211,238), + 'slategray3'=>array(159,182,205), + 'slategray4'=>array(108,123,139), + 'lightsteelblue1'=>array(202,225,255), + 'lightsteelblue2'=>array(188,210,238), + 'lightsteelblue3'=>array(162,181,205), + 'lightsteelblue4'=>array(110,123,139), + 'lightblue1'=>array(191,239,255), + 'lightblue2'=>array(178,223,238), + 'lightblue3'=>array(154,192,205), + 'lightblue4'=>array(104,131,139), + 'lightcyan1'=>array(224,255,255), + 'lightcyan2'=>array(209,238,238), + 'lightcyan3'=>array(180,205,205), + 'lightcyan4'=>array(122,139,139), + 'paleturquoise1'=>array(187,255,255), + 'paleturquoise2'=>array(174,238,238), + 'paleturquoise3'=>array(150,205,205), + 'paleturquoise4'=>array(102,139,139), + 'cadetblue1'=>array(152,245,255), + 'cadetblue2'=>array(142,229,238), + 'cadetblue3'=>array(122,197,205), + 'cadetblue4'=>array(83,134,139), + 'turquoise1'=>array(0,245,255), + 'turquoise2'=>array(0,229,238), + 'turquoise3'=>array(0,197,205), + 'turquoise4'=>array(0,134,139), + 'cyan1'=>array(0,255,255), + 'cyan2'=>array(0,238,238), + 'cyan3'=>array(0,205,205), + 'cyan4'=>array(0,139,139), + 'darkslategray1'=>array(151,255,255), + 'darkslategray2'=>array(141,238,238), + 'darkslategray3'=>array(121,205,205), + 'darkslategray4'=>array(82,139,139), + 'aquamarine1'=>array(127,255,212), + 'aquamarine2'=>array(118,238,198), + 'aquamarine3'=>array(102,205,170), + 'aquamarine4'=>array(69,139,116), + 'darkseagreen1'=>array(193,255,193), + 'darkseagreen2'=>array(180,238,180), + 'darkseagreen3'=>array(155,205,155), + 'darkseagreen4'=>array(105,139,105), + 'seagreen1'=>array(84,255,159), + 'seagreen2'=>array(78,238,148), + 'seagreen3'=>array(67,205,128), + 'seagreen4'=>array(46,139,87), + 'palegreen1'=>array(154,255,154), + 'palegreen2'=>array(144,238,144), + 'palegreen3'=>array(124,205,124), + 'palegreen4'=>array(84,139,84), + 'springgreen1'=>array(0,255,127), + 'springgreen2'=>array(0,238,118), + 'springgreen3'=>array(0,205,102), + 'springgreen4'=>array(0,139,69), + 'chartreuse1'=>array(127,255,0), + 'chartreuse2'=>array(118,238,0), + 'chartreuse3'=>array(102,205,0), + 'chartreuse4'=>array(69,139,0), + 'olivedrab1'=>array(192,255,62), + 'olivedrab2'=>array(179,238,58), + 'olivedrab3'=>array(154,205,50), + 'olivedrab4'=>array(105,139,34), + 'darkolivegreen1'=>array(202,255,112), + 'darkolivegreen2'=>array(188,238,104), + 'darkolivegreen3'=>array(162,205,90), + 'darkolivegreen4'=>array(110,139,61), + 'khaki1'=>array(255,246,143), + 'khaki2'=>array(238,230,133), + 'khaki3'=>array(205,198,115), + 'khaki4'=>array(139,134,78), + 'lightgoldenrod1'=>array(255,236,139), + 'lightgoldenrod2'=>array(238,220,130), + 'lightgoldenrod3'=>array(205,190,112), + 'lightgoldenrod4'=>array(139,129,76), + 'yellow1'=>array(255,255,0), + 'yellow2'=>array(238,238,0), + 'yellow3'=>array(205,205,0), + 'yellow4'=>array(139,139,0), + 'gold1'=>array(255,215,0), + 'gold2'=>array(238,201,0), + 'gold3'=>array(205,173,0), + 'gold4'=>array(139,117,0), + 'goldenrod1'=>array(255,193,37), + 'goldenrod2'=>array(238,180,34), + 'goldenrod3'=>array(205,155,29), + 'goldenrod4'=>array(139,105,20), + 'darkgoldenrod1'=>array(255,185,15), + 'darkgoldenrod2'=>array(238,173,14), + 'darkgoldenrod3'=>array(205,149,12), + 'darkgoldenrod4'=>array(139,101,8), + 'rosybrown1'=>array(255,193,193), + 'rosybrown2'=>array(238,180,180), + 'rosybrown3'=>array(205,155,155), + 'rosybrown4'=>array(139,105,105), + 'indianred1'=>array(255,106,106), + 'indianred2'=>array(238,99,99), + 'indianred3'=>array(205,85,85), + 'indianred4'=>array(139,58,58), + 'sienna1'=>array(255,130,71), + 'sienna2'=>array(238,121,66), + 'sienna3'=>array(205,104,57), + 'sienna4'=>array(139,71,38), + 'burlywood1'=>array(255,211,155), + 'burlywood2'=>array(238,197,145), + 'burlywood3'=>array(205,170,125), + 'burlywood4'=>array(139,115,85), + 'wheat1'=>array(255,231,186), + 'wheat2'=>array(238,216,174), + 'wheat3'=>array(205,186,150), + 'wheat4'=>array(139,126,102), + 'tan1'=>array(255,165,79), + 'tan2'=>array(238,154,73), + 'tan3'=>array(205,133,63), + 'tan4'=>array(139,90,43), + 'chocolate1'=>array(255,127,36), + 'chocolate2'=>array(238,118,33), + 'chocolate3'=>array(205,102,29), + 'chocolate4'=>array(139,69,19), + 'firebrick1'=>array(255,48,48), + 'firebrick2'=>array(238,44,44), + 'firebrick3'=>array(205,38,38), + 'firebrick4'=>array(139,26,26), + 'brown1'=>array(255,64,64), + 'brown2'=>array(238,59,59), + 'brown3'=>array(205,51,51), + 'brown4'=>array(139,35,35), + 'salmon1'=>array(255,140,105), + 'salmon2'=>array(238,130,98), + 'salmon3'=>array(205,112,84), + 'salmon4'=>array(139,76,57), + 'lightsalmon1'=>array(255,160,122), + 'lightsalmon2'=>array(238,149,114), + 'lightsalmon3'=>array(205,129,98), + 'lightsalmon4'=>array(139,87,66), + 'orange1'=>array(255,165,0), + 'orange2'=>array(238,154,0), + 'orange3'=>array(205,133,0), + 'orange4'=>array(139,90,0), + 'darkorange1'=>array(255,127,0), + 'darkorange2'=>array(238,118,0), + 'darkorange3'=>array(205,102,0), + 'darkorange4'=>array(139,69,0), + 'coral1'=>array(255,114,86), + 'coral2'=>array(238,106,80), + 'coral3'=>array(205,91,69), + 'coral4'=>array(139,62,47), + 'tomato1'=>array(255,99,71), + 'tomato2'=>array(238,92,66), + 'tomato3'=>array(205,79,57), + 'tomato4'=>array(139,54,38), + 'orangered1'=>array(255,69,0), + 'orangered2'=>array(238,64,0), + 'orangered3'=>array(205,55,0), + 'orangered4'=>array(139,37,0), + 'deeppink1'=>array(255,20,147), + 'deeppink2'=>array(238,18,137), + 'deeppink3'=>array(205,16,118), + 'deeppink4'=>array(139,10,80), + 'hotpink1'=>array(255,110,180), + 'hotpink2'=>array(238,106,167), + 'hotpink3'=>array(205,96,144), + 'hotpink4'=>array(139,58,98), + 'pink1'=>array(255,181,197), + 'pink2'=>array(238,169,184), + 'pink3'=>array(205,145,158), + 'pink4'=>array(139,99,108), + 'lightpink1'=>array(255,174,185), + 'lightpink2'=>array(238,162,173), + 'lightpink3'=>array(205,140,149), + 'lightpink4'=>array(139,95,101), + 'palevioletred1'=>array(255,130,171), + 'palevioletred2'=>array(238,121,159), + 'palevioletred3'=>array(205,104,137), + 'palevioletred4'=>array(139,71,93), + 'maroon1'=>array(255,52,179), + 'maroon2'=>array(238,48,167), + 'maroon3'=>array(205,41,144), + 'maroon4'=>array(139,28,98), + 'violetred1'=>array(255,62,150), + 'violetred2'=>array(238,58,140), + 'violetred3'=>array(205,50,120), + 'violetred4'=>array(139,34,82), + 'magenta1'=>array(255,0,255), + 'magenta2'=>array(238,0,238), + 'magenta3'=>array(205,0,205), + 'magenta4'=>array(139,0,139), + 'mediumred'=>array(140,34,34), + 'orchid1'=>array(255,131,250), + 'orchid2'=>array(238,122,233), + 'orchid3'=>array(205,105,201), + 'orchid4'=>array(139,71,137), + 'plum1'=>array(255,187,255), + 'plum2'=>array(238,174,238), + 'plum3'=>array(205,150,205), + 'plum4'=>array(139,102,139), + 'mediumorchid1'=>array(224,102,255), + 'mediumorchid2'=>array(209,95,238), + 'mediumorchid3'=>array(180,82,205), + 'mediumorchid4'=>array(122,55,139), + 'darkorchid1'=>array(191,62,255), + 'darkorchid2'=>array(178,58,238), + 'darkorchid3'=>array(154,50,205), + 'darkorchid4'=>array(104,34,139), + 'purple1'=>array(155,48,255), + 'purple2'=>array(145,44,238), + 'purple3'=>array(125,38,205), + 'purple4'=>array(85,26,139), + 'mediumpurple1'=>array(171,130,255), + 'mediumpurple2'=>array(159,121,238), + 'mediumpurple3'=>array(137,104,205), + 'mediumpurple4'=>array(93,71,139), + 'thistle1'=>array(255,225,255), + 'thistle2'=>array(238,210,238), + 'thistle3'=>array(205,181,205), + 'thistle4'=>array(139,123,139), + 'gray1'=>array(10,10,10), + 'gray2'=>array(40,40,30), + 'gray3'=>array(70,70,70), + 'gray4'=>array(100,100,100), + 'gray5'=>array(130,130,130), + 'gray6'=>array(160,160,160), + 'gray7'=>array(190,190,190), + 'gray8'=>array(210,210,210), + 'gray9'=>array(240,240,240), + 'darkgray'=>array(100,100,100), + 'darkblue'=>array(0,0,139), + 'darkcyan'=>array(0,139,139), + 'darkmagenta'=>array(139,0,139), + 'darkred'=>array(139,0,0), + 'silver'=>array(192, 192, 192), + 'eggplant'=>array(144,176,168), + 'lightgreen'=>array(144,238,144)); + } + + + //---------------- + // PUBLIC METHODS + // Colors can be specified as either + // 1. #xxxxxx HTML style + // 2. "colorname" as a named color + // 3. array(r,g,b) RGB triple + // This function translates this to a native RGB format and returns an + // RGB triple. + + function Color($aColor) { + if (is_string($aColor)) { + $matches = array(); + // this regex will parse a color string and fill the $matches array as such: + // 0: the full match if any + // 1: a hex string preceded by a hash, can be 3 characters (#fff) or 6 (#ffffff) (4 or 5 also accepted but...) + // 2,3,4: r,g,b values in hex if the first character of the string is # + // 5: all alpha-numeric characters at the beginning of the string if string does not start with # + // 6: alpha value prefixed by @ if supplied + // 7: alpha value with @ stripped + // 8: adjust value prefixed with : if supplied + // 9: adjust value with : stripped + $regex = '/(#([0-9a-fA-F]{1,2})([0-9a-fA-F]{1,2})([0-9a-fA-F]{1,2}))?([\w]+)?(@([\d\.,]+))?(:([\d\.,]+))?/'; + if(!preg_match($regex, $aColor, $matches)) { + JpGraphError::RaiseL(25078,$aColor);//(" Unknown color: $aColor"); + } + if(empty($matches[5])) { + $r = strlen($matches[2]) == 1 ? $matches[2].$matches[2] : $matches[2]; + $g = strlen($matches[3]) == 1 ? $matches[3].$matches[3] : $matches[3]; + $b = strlen($matches[4]) == 1 ? $matches[4].$matches[4] : $matches[4]; + $r = hexdec($r); + $g = hexdec($g); + $b = hexdec($b); + }else { + if(!isset($this->rgb_table[$matches[5]]) ) { + JpGraphError::RaiseL(25078,$aColor);//(" Unknown color: $aColor"); + } + $r = $this->rgb_table[$matches[5]][0]; + $g = $this->rgb_table[$matches[5]][1]; + $b = $this->rgb_table[$matches[5]][2]; + } + $alpha = isset($matches[7]) ? str_replace(',','.',$matches[7]) : 0; + $adj = isset($matches[9]) ? str_replace(',','.',$matches[9]) : 1.0; + + if( $adj < 0 ) { + JpGraphError::RaiseL(25077);//('Adjustment factor for color must be > 0'); + } + + // Scale adj so that an adj=2 always + // makes the color 100% white (i.e. 255,255,255. + // and adj=1 neutral and adj=0 black. + if( $adj == 1) { + return array($r,$g,$b,$alpha); + } + elseif( $adj > 1 ) { + $m = ($adj-1.0)*(255-min(255,min($r,min($g,$b)))); + return array(min(255,$r+$m), min(255,$g+$m), min(255,$b+$m),$alpha); + } + elseif( $adj < 1 ) { + $m = ($adj-1.0)*max(255,max($r,max($g,$b))); + return array(max(0,$r+$m), max(0,$g+$m), max(0,$b+$m),$alpha); + } + } elseif( is_array($aColor) ) { + if(!isset($aColor[3])) $aColor[3] = 0; + return $aColor; + } + else { + JpGraphError::RaiseL(25079,$aColor,count($aColor));//(" Unknown color specification: $aColor , size=".count($aColor)); + } + } + + // Compare two colors + // return true if equal + function Equal($aCol1,$aCol2) { + $c1 = $this->Color($aCol1); + $c2 = $this->Color($aCol2); + return $c1[0]==$c2[0] && $c1[1]==$c2[1] && $c1[2]==$c2[2] ; + } + + // Allocate a new color in the current image + // Return new color index, -1 if no more colors could be allocated + function Allocate($aColor,$aAlpha=0.0) { + list ($r, $g, $b, $a) = $this->color($aColor); + // If alpha is specified in the color string then this + // takes precedence over the second argument + if( $a > 0 ) { + $aAlpha = $a; + } + if( $aAlpha < 0 || $aAlpha > 1 ) { + JpGraphError::RaiseL(25080);//('Alpha parameter for color must be between 0.0 and 1.0'); + } + return imagecolorresolvealpha($this->img, $r, $g, $b, round($aAlpha * 127)); + } + + // Try to convert an array with three valid numbers to the corresponding hex array + // This is currenly only used in processing the colors for barplots in order to be able + // to handle the case where the color might be specified as an array of colros as well. + // In that case we must be able to find out if an array of values should be interpretated as + // a single color (specifeid as an RGB triple) + static function tryHexConversion($aColor) { + if( is_array( $aColor ) ) { + if( count( $aColor ) == 3 ) { + if( is_numeric($aColor[0]) && is_numeric($aColor[1]) && is_numeric($aColor[2]) ) { + if( ($aColor[0] >= 0 && $aColor[0] <= 255) && + ($aColor[1] >= 0 && $aColor[1] <= 255) && + ($aColor[2] >= 0 && $aColor[2] <= 255) ) { + return sprintf('#%02x%02x%02x',$aColor[0],$aColor[1],$aColor[2]); + } + } + } + } + return $aColor; + } + + // Return a RGB tripple corresponding to a position in the normal light spectrum + // The argumen values is in the range [0, 1] where a value of 0 correponds to blue and + // a value of 1 corresponds to red. Values in betwen is mapped to a linear interpolation + // of the constituting colors in the visible color spectra. + // The $aDynamicRange specified how much of the dynamic range we shold use + // a value of 1.0 give the full dyanmic range and a lower value give more dark + // colors. In the extreme of 0.0 then all colors will be black. + static function GetSpectrum($aVal,$aDynamicRange=1.0) { + if( $aVal < 0 || $aVal > 1.0001 ) { + return array(0,0,0); // Invalid case - just return black + } + + $sat = round(255*$aDynamicRange); + $a = 0.25; + if( $aVal <= 0.25 ) { + return array(0, round($sat*$aVal/$a), $sat); + } + elseif( $aVal <= 0.5 ) { + return array(0, $sat, round($sat-$sat*($aVal-0.25)/$a)); + } + elseif( $aVal <= 0.75 ) { + return array(round($sat*($aVal-0.5)/$a), $sat, 0); + } + else { + return array($sat, round($sat-$sat*($aVal-0.75)/$a), 0); + } + } + +} // Class + +?> diff --git a/gosa-core/include/jpgraph/jpgraph_scatter.php b/gosa-core/include/jpgraph/jpgraph_scatter.php new file mode 100644 index 000000000..141fdfa20 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_scatter.php @@ -0,0 +1,242 @@ +iSize = $aSize; + $this->iArrowSize = $aArrowSize; + } + + function SetColor($aColor) { + $this->iColor = $aColor; + } + + function Stroke($aImg,$x,$y,$a) { + // First rotate the center coordinates + list($x,$y) = $aImg->Rotate($x,$y); + + $old_origin = $aImg->SetCenter($x,$y); + $old_a = $aImg->a; + $aImg->SetAngle(-$a+$old_a); + + $dx = round($this->iSize/2); + $c = array($x-$dx,$y,$x+$dx,$y); + $x += $dx; + + list($dx,$dy) = $this->isizespec[$this->iArrowSize]; + $ca = array($x,$y,$x-$dx,$y-$dy,$x-$dx,$y+$dy,$x,$y); + + $aImg->SetColor($this->iColor); + $aImg->Polygon($c); + $aImg->FilledPolygon($ca); + + $aImg->SetCenter($old_origin[0],$old_origin[1]); + $aImg->SetAngle($old_a); + } +} + +//=================================================== +// CLASS FieldPlot +// Description: Render a field plot +//=================================================== +class FieldPlot extends Plot { + public $arrow = ''; + private $iAngles = array(); + private $iCallback = ''; + + function __construct($datay,$datax,$angles) { + if( (count($datax) != count($datay)) ) + JpGraphError::RaiseL(20001);//("Fieldplots must have equal number of X and Y points."); + if( (count($datax) != count($angles)) ) + JpGraphError::RaiseL(20002);//("Fieldplots must have an angle specified for each X and Y points."); + + $this->iAngles = $angles; + + parent::__construct($datay,$datax); + $this->value->SetAlign('center','center'); + $this->value->SetMargin(15); + + $this->arrow = new FieldArrow(); + } + + function SetCallback($aFunc) { + $this->iCallback = $aFunc; + } + + function Stroke($img,$xscale,$yscale) { + + // Remeber base color and size + $bc = $this->arrow->iColor; + $bs = $this->arrow->iSize; + $bas = $this->arrow->iArrowSize; + + for( $i=0; $i<$this->numpoints; ++$i ) { + // Skip null values + if( $this->coords[0][$i]==="" ) + continue; + + $f = $this->iCallback; + if( $f != "" ) { + list($cc,$cs,$cas) = call_user_func($f,$this->coords[1][$i],$this->coords[0][$i],$this->iAngles[$i]); + // Fall back on global data if the callback isn't set + if( $cc == "" ) $cc = $bc; + if( $cs == "" ) $cs = $bs; + if( $cas == "" ) $cas = $bas; + $this->arrow->SetColor($cc); + $this->arrow->SetSize($cs,$cas); + } + + $xt = $xscale->Translate($this->coords[1][$i]); + $yt = $yscale->Translate($this->coords[0][$i]); + + $this->arrow->Stroke($img,$xt,$yt,$this->iAngles[$i]); + $this->value->Stroke($img,$this->coords[0][$i],$xt,$yt); + } + } + + // Framework function + function Legend($aGraph) { + if( $this->legend != "" ) { + $aGraph->legend->Add($this->legend,$this->mark->fill_color,$this->mark,0, + $this->legendcsimtarget,$this->legendcsimalt,$this->legendcsimwintarget); + } + } +} + +//=================================================== +// CLASS ScatterPlot +// Description: Render X and Y plots +//=================================================== +class ScatterPlot extends Plot { + public $mark,$link; + private $impuls = false; + //--------------- + // CONSTRUCTOR + function __construct($datay,$datax=false) { + if( (count($datax) != count($datay)) && is_array($datax)) { + JpGraphError::RaiseL(20003);//("Scatterplot must have equal number of X and Y points."); + } + parent::__construct($datay,$datax); + $this->mark = new PlotMark(); + $this->mark->SetType(MARK_SQUARE); + $this->mark->SetColor($this->color); + $this->value->SetAlign('center','center'); + $this->value->SetMargin(0); + $this->link = new LineProperty(1,'black','solid'); + $this->link->iShow = false; + } + + //--------------- + // PUBLIC METHODS + function SetImpuls($f=true) { + $this->impuls = $f; + } + + function SetStem($f=true) { + $this->impuls = $f; + } + + // Combine the scatter plot points with a line + function SetLinkPoints($aFlag=true,$aColor="black",$aWeight=1,$aStyle='solid') { + $this->link->iShow = $aFlag; + $this->link->iColor = $aColor; + $this->link->iWeight = $aWeight; + $this->link->iStyle = $aStyle; + } + + function Stroke($img,$xscale,$yscale) { + + $ymin=$yscale->scale_abs[0]; + if( $yscale->scale[0] < 0 ) + $yzero=$yscale->Translate(0); + else + $yzero=$yscale->scale_abs[0]; + + $this->csimareas = ''; + for( $i=0; $i<$this->numpoints; ++$i ) { + + // Skip null values + if( $this->coords[0][$i]==='' || $this->coords[0][$i]==='-' || $this->coords[0][$i]==='x') + continue; + + if( isset($this->coords[1]) ) + $xt = $xscale->Translate($this->coords[1][$i]); + else + $xt = $xscale->Translate($i); + $yt = $yscale->Translate($this->coords[0][$i]); + + + if( $this->link->iShow && isset($yt_old) ) { + $img->SetColor($this->link->iColor); + $img->SetLineWeight($this->link->iWeight); + $old = $img->SetLineStyle($this->link->iStyle); + $img->StyleLine($xt_old,$yt_old,$xt,$yt); + $img->SetLineStyle($old); + } + + if( $this->impuls ) { + $img->SetColor($this->color); + $img->SetLineWeight($this->weight); + $img->Line($xt,$yzero,$xt,$yt); + } + + if( !empty($this->csimtargets[$i]) ) { + if( !empty($this->csimwintargets[$i]) ) { + $this->mark->SetCSIMTarget($this->csimtargets[$i],$this->csimwintargets[$i]); + } + else { + $this->mark->SetCSIMTarget($this->csimtargets[$i]); + } + $this->mark->SetCSIMAlt($this->csimalts[$i]); + } + + if( isset($this->coords[1]) ) { + $this->mark->SetCSIMAltVal($this->coords[0][$i],$this->coords[1][$i]); + } + else { + $this->mark->SetCSIMAltVal($this->coords[0][$i],$i); + } + + $this->mark->Stroke($img,$xt,$yt); + + $this->csimareas .= $this->mark->GetCSIMAreas(); + $this->value->Stroke($img,$this->coords[0][$i],$xt,$yt); + + $xt_old = $xt; + $yt_old = $yt; + } + } + + // Framework function + function Legend($aGraph) { + if( $this->legend != "" ) { + $aGraph->legend->Add($this->legend,$this->mark->fill_color,$this->mark,0, + $this->legendcsimtarget,$this->legendcsimalt,$this->legendcsimwintarget); + } + } +} // Class +/* EOF */ +?> \ No newline at end of file diff --git a/gosa-core/include/jpgraph/jpgraph_stock.php b/gosa-core/include/jpgraph/jpgraph_stock.php new file mode 100644 index 000000000..45a136805 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_stock.php @@ -0,0 +1,198 @@ +iTupleSize ) { + JpGraphError::RaiseL(21001,$this->iTupleSize); + //('Data values for Stock charts must contain an even multiple of '.$this->iTupleSize.' data points.'); + } + parent::__construct($datay,$datax); + $this->numpoints /= $this->iTupleSize; + } + //--------------- + // PUBLIC METHODS + + function SetColor($aColor,$aColor1='white',$aColor2='darkred',$aColor3='darkred') { + $this->color = $aColor; + $this->iStockColor1 = $aColor1; + $this->iStockColor2 = $aColor2; + $this->iStockColor3 = $aColor3; + } + + function SetWidth($aWidth) { + // Make sure it's odd + $this->iWidth = 2*floor($aWidth/2)+1; + } + + function HideEndLines($aHide=true) { + $this->iEndLines = !$aHide; + } + + // Gets called before any axis are stroked + function PreStrokeAdjust($graph) { + if( $this->center ) { + $a=0.5; $b=0.5; + $this->numpoints++; + } else { + $a=0; $b=0; + } + $graph->xaxis->scale->ticks->SetXLabelOffset($a); + $graph->SetTextScaleOff($b); + } + + // Method description + function Stroke($img,$xscale,$yscale) { + $n=$this->numpoints; + if( $this->center ) $n--; + if( isset($this->coords[1]) ) { + if( count($this->coords[1])!=$n ) { + JpGraphError::RaiseL(2003,count($this->coords[1]),$n); + // ("Number of X and Y points are not equal. Number of X-points:".count($this->coords[1])." Number of Y-points:$numpoints"); + } + else { + $exist_x = true; + } + } + else { + $exist_x = false; + } + + if( $exist_x ) { + $xs=$this->coords[1][0]; + } + else { + $xs=0; + } + + $ts = $this->iTupleSize; + $this->csimareas = ''; + for( $i=0; $i<$n; ++$i) { + + //If value is NULL, then don't draw a bar at all + if ($this->coords[0][$i*$ts] === null) continue; + + if( $exist_x ) { + $x=$this->coords[1][$i]; + if ($x === null) continue; + } + else { + $x=$i; + } + $xt = $xscale->Translate($x); + + $neg = $this->coords[0][$i*$ts] > $this->coords[0][$i*$ts+1] ; + $yopen = $yscale->Translate($this->coords[0][$i*$ts]); + $yclose = $yscale->Translate($this->coords[0][$i*$ts+1]); + $ymin = $yscale->Translate($this->coords[0][$i*$ts+2]); + $ymax = $yscale->Translate($this->coords[0][$i*$ts+3]); + + $dx = floor($this->iWidth/2); + $xl = $xt - $dx; + $xr = $xt + $dx; + + if( $neg ) { + $img->SetColor($this->iStockColor3); + } + else { + $img->SetColor($this->iStockColor1); + } + $img->FilledRectangle($xl,$yopen,$xr,$yclose); + $img->SetLineWeight($this->weight); + if( $neg ) { + $img->SetColor($this->iStockColor2); + } + else { + $img->SetColor($this->color); + } + + $img->Rectangle($xl,$yopen,$xr,$yclose); + + if( $yopen < $yclose ) { + $ytop = $yopen ; + $ybottom = $yclose ; + } + else { + $ytop = $yclose ; + $ybottom = $yopen ; + } + $img->SetColor($this->color); + $img->Line($xt,$ytop,$xt,$ymax); + $img->Line($xt,$ybottom,$xt,$ymin); + + if( $this->iEndLines ) { + $img->Line($xl,$ymax,$xr,$ymax); + $img->Line($xl,$ymin,$xr,$ymin); + } + + // A chance for subclasses to add things to the bar + // for data point i + $this->ModBox($img,$xscale,$yscale,$i,$xl,$xr,$neg); + + // Setup image maps + if( !empty($this->csimtargets[$i]) ) { + $this->csimareas.= 'csimareas .= ' href="'.$this->csimtargets[$i].'"'; + if( !empty($this->csimalts[$i]) ) { + $sval=$this->csimalts[$i]; + $this->csimareas .= " title=\"$sval\" alt=\"$sval\" "; + } + $this->csimareas.= " />\n"; + } + } + return true; + } + + // A hook for subclasses to modify the plot + function ModBox($img,$xscale,$yscale,$i,$xl,$xr,$neg) {} + +} // Class + +//=================================================== +// CLASS BoxPlot +//=================================================== +class BoxPlot extends StockPlot { + private $iPColor='black',$iNColor='white'; + + function __construct($datay,$datax=false) { + $this->iTupleSize=5; + parent::__construct($datay,$datax); + } + + function SetMedianColor($aPos,$aNeg) { + $this->iPColor = $aPos; + $this->iNColor = $aNeg; + } + + function ModBox($img,$xscale,$yscale,$i,$xl,$xr,$neg) { + if( $neg ) + $img->SetColor($this->iNColor); + else + $img->SetColor($this->iPColor); + + $y = $yscale->Translate($this->coords[0][$i*5+4]); + $img->Line($xl,$y,$xr,$y); + } +} + +/* EOF */ +?> \ No newline at end of file diff --git a/gosa-core/include/jpgraph/jpgraph_text.inc.php b/gosa-core/include/jpgraph/jpgraph_text.inc.php new file mode 100644 index 000000000..c93846b85 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_text.inc.php @@ -0,0 +1,302 @@ +t = $aTxt; + $this->x = round($aXAbsPos); + $this->y = round($aYAbsPos); + $this->margin = 0; + } + //--------------- + // PUBLIC METHODS + // Set the string in the text object + function Set($aTxt) { + $this->t = $aTxt; + } + + // Alias for Pos() + function SetPos($aXAbsPos=0,$aYAbsPos=0,$aHAlign="left",$aVAlign="top") { + //$this->Pos($aXAbsPos,$aYAbsPos,$aHAlign,$aVAlign); + $this->x = $aXAbsPos; + $this->y = $aYAbsPos; + $this->halign = $aHAlign; + $this->valign = $aVAlign; + } + + function SetScalePos($aX,$aY) { + $this->iScalePosX = $aX; + $this->iScalePosY = $aY; + } + + // Specify alignment for the text + function Align($aHAlign,$aVAlign="top",$aParagraphAlign="") { + $this->halign = $aHAlign; + $this->valign = $aVAlign; + if( $aParagraphAlign != "" ) + $this->paragraph_align = $aParagraphAlign; + } + + // Alias + function SetAlign($aHAlign,$aVAlign="top",$aParagraphAlign="") { + $this->Align($aHAlign,$aVAlign,$aParagraphAlign); + } + + // Specifies the alignment for a multi line text + function ParagraphAlign($aAlign) { + $this->paragraph_align = $aAlign; + } + + // Specifies the alignment for a multi line text + function SetParagraphAlign($aAlign) { + $this->paragraph_align = $aAlign; + } + + function SetShadow($aShadowColor='gray',$aShadowWidth=3) { + $this->ishadowwidth=$aShadowWidth; + $this->shadow=$aShadowColor; + $this->boxed=true; + } + + function SetWordWrap($aCol) { + $this->iWordwrap = $aCol ; + } + + // Specify that the text should be boxed. fcolor=frame color, bcolor=border color, + // $shadow=drop shadow should be added around the text. + function SetBox($aFrameColor=array(255,255,255),$aBorderColor=array(0,0,0),$aShadowColor=false,$aCornerRadius=4,$aShadowWidth=3) { + if( $aFrameColor === false ) { + $this->boxed=false; + } + else { + $this->boxed=true; + } + $this->fcolor=$aFrameColor; + $this->bcolor=$aBorderColor; + // For backwards compatibility when shadow was just true or false + if( $aShadowColor === true ) { + $aShadowColor = 'gray'; + } + $this->shadow=$aShadowColor; + $this->icornerradius=$aCornerRadius; + $this->ishadowwidth=$aShadowWidth; + } + + function SetBox2($aFrameColor=array(255,255,255),$aBorderColor=array(0,0,0),$aShadowColor=false,$aCornerRadius=4,$aShadowWidth=3) { + $this->iBoxType=2; + $this->SetBox($aFrameColor,$aBorderColor,$aShadowColor,$aCornerRadius,$aShadowWidth); + } + + // Hide the text + function Hide($aHide=true) { + $this->hide=$aHide; + } + + // This looks ugly since it's not a very orthogonal design + // but I added this "inverse" of Hide() to harmonize + // with some classes which I designed more recently (especially) + // jpgraph_gantt + function Show($aShow=true) { + $this->hide=!$aShow; + } + + // Specify font + function SetFont($aFamily,$aStyle=FS_NORMAL,$aSize=10) { + $this->font_family=$aFamily; + $this->font_style=$aStyle; + $this->font_size=$aSize; + } + + // Center the text between $left and $right coordinates + function Center($aLeft,$aRight,$aYAbsPos=false) { + $this->x = $aLeft + ($aRight-$aLeft )/2; + $this->halign = "center"; + if( is_numeric($aYAbsPos) ) + $this->y = $aYAbsPos; + } + + // Set text color + function SetColor($aColor) { + $this->color = $aColor; + } + + function SetAngle($aAngle) { + $this->SetOrientation($aAngle); + } + + // Orientation of text. Note only TTF fonts can have an arbitrary angle + function SetOrientation($aDirection=0) { + if( is_numeric($aDirection) ) + $this->dir=$aDirection; + elseif( $aDirection=="h" ) + $this->dir = 0; + elseif( $aDirection=="v" ) + $this->dir = 90; + else + JpGraphError::RaiseL(25051);//(" Invalid direction specified for text."); + } + + // Total width of text + function GetWidth($aImg) { + $aImg->SetFont($this->font_family,$this->font_style,$this->font_size); + $w = $aImg->GetTextWidth($this->t,$this->dir); + return $w; + } + + // Hight of font + function GetFontHeight($aImg) { + $aImg->SetFont($this->font_family,$this->font_style,$this->font_size); + $h = $aImg->GetFontHeight(); + return $h; + + } + + function GetTextHeight($aImg) { + $aImg->SetFont($this->font_family,$this->font_style,$this->font_size); + $h = $aImg->GetTextHeight($this->t,$this->dir); + return $h; + } + + function GetHeight($aImg) { + // Synonym for GetTextHeight() + $aImg->SetFont($this->font_family,$this->font_style,$this->font_size); + $h = $aImg->GetTextHeight($this->t,$this->dir); + return $h; + } + + // Set the margin which will be interpretated differently depending + // on the context. + function SetMargin($aMarg) { + $this->margin = $aMarg; + } + + function StrokeWithScale($aImg,$axscale,$ayscale) { + if( $this->iScalePosX === null || $this->iScalePosY === null ) { + $this->Stroke($aImg); + } + else { + $this->Stroke($aImg, + round($axscale->Translate($this->iScalePosX)), + round($ayscale->Translate($this->iScalePosY))); + } + } + + function SetCSIMTarget($aURITarget,$aAlt='',$aWinTarget='') { + $this->iCSIMtarget = $aURITarget; + $this->iCSIMalt = $aAlt; + $this->iCSIMWinTarget = $aWinTarget; + } + + function GetCSIMareas() { + if( $this->iCSIMtarget !== '' ) { + return $this->iCSIMarea; + } + else { + return ''; + } + } + + // Display text in image + function Stroke($aImg,$x=null,$y=null) { + + if( $x !== null ) $this->x = round($x); + if( $y !== null ) $this->y = round($y); + + // Insert newlines + if( $this->iWordwrap > 0 ) { + $this->t = wordwrap($this->t,$this->iWordwrap,"\n"); + } + + // If position been given as a fraction of the image size + // calculate the absolute position + if( $this->x < 1 && $this->x > 0 ) $this->x *= $aImg->width; + if( $this->y < 1 && $this->y > 0 ) $this->y *= $aImg->height; + + $aImg->PushColor($this->color); + $aImg->SetFont($this->font_family,$this->font_style,$this->font_size); + $aImg->SetTextAlign($this->halign,$this->valign); + + if( $this->boxed ) { + if( $this->fcolor=="nofill" ) { + $this->fcolor=false; + } + + $oldweight=$aImg->SetLineWeight(1); + + if( $this->iBoxType == 2 && $this->font_family > FF_FONT2+2 ) { + + $bbox = $aImg->StrokeBoxedText2($this->x, $this->y, + $this->t, $this->dir, + $this->fcolor, + $this->bcolor, + $this->shadow, + $this->paragraph_align, + 2,4, + $this->icornerradius, + $this->ishadowwidth); + } + else { + $bbox = $aImg->StrokeBoxedText($this->x,$this->y,$this->t, + $this->dir,$this->fcolor,$this->bcolor,$this->shadow, + $this->paragraph_align,3,3,$this->icornerradius, + $this->ishadowwidth); + } + + $aImg->SetLineWeight($oldweight); + } + else { + $debug=false; + $bbox = $aImg->StrokeText($this->x,$this->y,$this->t,$this->dir,$this->paragraph_align,$debug); + } + + // Create CSIM targets + $coords = $bbox[0].','.$bbox[1].','.$bbox[2].','.$bbox[3].','.$bbox[4].','.$bbox[5].','.$bbox[6].','.$bbox[7]; + $this->iCSIMarea = "iCSIMtarget)."\" "; + if( trim($this->iCSIMalt) != '' ) { + $this->iCSIMarea .= " alt=\"".$this->iCSIMalt."\" "; + $this->iCSIMarea .= " title=\"".$this->iCSIMalt."\" "; + } + if( trim($this->iCSIMWinTarget) != '' ) { + $this->iCSIMarea .= " target=\"".$this->iCSIMWinTarget."\" "; + } + $this->iCSIMarea .= " />\n"; + + $aImg->PopColor($this->color); + } +} // Class + + +?> diff --git a/gosa-core/include/jpgraph/jpgraph_ttf.inc.php b/gosa-core/include/jpgraph/jpgraph_ttf.inc.php new file mode 100644 index 000000000..1e0d52409 --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_ttf.inc.php @@ -0,0 +1,617 @@ +g2312 == null ) { + include_once 'jpgraph_gb2312.php' ; + $this->g2312 = new GB2312toUTF8(); + } + return $this->g2312->gb2utf8($aTxt); + } + elseif( $aFF === FF_BIG5 ) { + if( !function_exists('iconv') ) { + JpGraphError::RaiseL(25006); + //('Usage of FF_CHINESE (FF_BIG5) font family requires that your PHP setup has the iconv() function. By default this is not compiled into PHP (needs the "--width-iconv" when configured).'); + } + return iconv('BIG5','UTF-8',$aTxt); + } + elseif( ASSUME_EUCJP_ENCODING && + ($aFF == FF_MINCHO || $aFF == FF_GOTHIC || $aFF == FF_PMINCHO || $aFF == FF_PGOTHIC) ) { + if( !function_exists('mb_convert_encoding') ) { + JpGraphError::RaiseL(25127); + } + return mb_convert_encoding($aTxt, 'UTF-8','EUC-JP'); + } + elseif( $aFF == FF_DAVID || $aFF == FF_MIRIAM || $aFF == FF_AHRON ) { + return LanguageConv::heb_iso2uni($aTxt); + } + else + return $aTxt; + } + + // Translate iso encoding to unicode + public static function iso2uni ($isoline){ + $uniline=''; + for ($i=0; $i < strlen($isoline); $i++){ + $thischar=substr($isoline,$i,1); + $charcode=ord($thischar); + $uniline.=($charcode>175) ? "&#" . (1040+($charcode-176)). ";" : $thischar; + } + return $uniline; + } + + // Translate greek iso encoding to unicode + public static function gr_iso2uni ($isoline) { + $uniline=''; + for ($i=0; $i < strlen($isoline); $i++) { + $thischar=substr($isoline,$i,1); + $charcode=ord($thischar); + $uniline.=($charcode>179 && $charcode!=183 && $charcode!=187 && $charcode!=189) ? "&#" . (900+($charcode-180)). ";" : $thischar; + } + return $uniline; + } + + // Translate greek win encoding to unicode + public static function gr_win2uni ($winline) { + $uniline=''; + for ($i=0; $i < strlen($winline); $i++) { + $thischar=substr($winline,$i,1); + $charcode=ord($thischar); + if ($charcode==161 || $charcode==162) { + $uniline.="&#" . (740+$charcode). ";"; + } + else { + $uniline.=(($charcode>183 && $charcode!=187 && $charcode!=189) || $charcode==180) ? "&#" . (900+($charcode-180)). ";" : $thischar; + } + } + return $uniline; + } + + public static function heb_iso2uni($isoline) { + $isoline = hebrev($isoline); + $o = ''; + + $n = strlen($isoline); + for($i=0; $i < $n; $i++) { + $c=ord( substr($isoline,$i,1) ); + $o .= ($c > 223) && ($c < 251) ? '&#'.(1264+$c).';' : chr($c); + } + return utf8_encode($o); + } +} + +//============================================================= +// CLASS TTF +// Description: Handle TTF font names and mapping and loading of +// font files +//============================================================= +class TTF { + private $font_files,$style_names; + + function __construct() { + + // String names for font styles to be used in error messages + $this->style_names=array( + FS_NORMAL =>'normal', + FS_BOLD =>'bold', + FS_ITALIC =>'italic', + FS_BOLDITALIC =>'bolditalic'); + + // File names for available fonts + $this->font_files=array( + FF_COURIER => array(FS_NORMAL =>'cour.ttf', + FS_BOLD =>'courbd.ttf', + FS_ITALIC =>'couri.ttf', + FS_BOLDITALIC =>'courbi.ttf' ), + FF_GEORGIA => array(FS_NORMAL =>'georgia.ttf', + FS_BOLD =>'georgiab.ttf', + FS_ITALIC =>'georgiai.ttf', + FS_BOLDITALIC =>'' ), + FF_TREBUCHE =>array(FS_NORMAL =>'trebuc.ttf', + FS_BOLD =>'trebucbd.ttf', + FS_ITALIC =>'trebucit.ttf', + FS_BOLDITALIC =>'trebucbi.ttf' ), + FF_VERDANA => array(FS_NORMAL =>'verdana.ttf', + FS_BOLD =>'verdanab.ttf', + FS_ITALIC =>'verdanai.ttf', + FS_BOLDITALIC =>'' ), + FF_TIMES => array(FS_NORMAL =>'times.ttf', + FS_BOLD =>'timesbd.ttf', + FS_ITALIC =>'timesi.ttf', + FS_BOLDITALIC =>'timesbi.ttf' ), + FF_COMIC => array(FS_NORMAL =>'comic.ttf', + FS_BOLD =>'comicbd.ttf', + FS_ITALIC =>'', + FS_BOLDITALIC =>'' ), + FF_ARIAL => array(FS_NORMAL =>'arial.ttf', + FS_BOLD =>'arialbd.ttf', + FS_ITALIC =>'ariali.ttf', + FS_BOLDITALIC =>'arialbi.ttf' ) , + FF_VERA => array(FS_NORMAL =>'Vera.ttf', + FS_BOLD =>'VeraBd.ttf', + FS_ITALIC =>'VeraIt.ttf', + FS_BOLDITALIC =>'VeraBI.ttf' ), + FF_VERAMONO => array(FS_NORMAL =>'VeraMono.ttf', + FS_BOLD =>'VeraMoBd.ttf', + FS_ITALIC =>'VeraMoIt.ttf', + FS_BOLDITALIC =>'VeraMoBI.ttf' ), + FF_VERASERIF=> array(FS_NORMAL =>'VeraSe.ttf', + FS_BOLD =>'VeraSeBd.ttf', + FS_ITALIC =>'', + FS_BOLDITALIC =>'' ) , + + /* Chinese fonts */ + FF_SIMSUN => array( + FS_NORMAL =>'simsun.ttc', + FS_BOLD =>'simhei.ttf', + FS_ITALIC =>'', + FS_BOLDITALIC =>'' ), + FF_CHINESE => array( + FS_NORMAL =>CHINESE_TTF_FONT, + FS_BOLD =>'', + FS_ITALIC =>'', + FS_BOLDITALIC =>'' ), + FF_BIG5 => array( + FS_NORMAL =>CHINESE_TTF_FONT, + FS_BOLD =>'', + FS_ITALIC =>'', + FS_BOLDITALIC =>'' ), + + /* Japanese fonts */ + FF_MINCHO => array( + FS_NORMAL =>MINCHO_TTF_FONT, + FS_BOLD =>'', + FS_ITALIC =>'', + FS_BOLDITALIC =>'' ), + + FF_PMINCHO => array( + FS_NORMAL =>PMINCHO_TTF_FONT, + FS_BOLD =>'', + FS_ITALIC =>'', + FS_BOLDITALIC =>'' ), + + FF_GOTHIC => array( + FS_NORMAL =>GOTHIC_TTF_FONT, + FS_BOLD =>'', + FS_ITALIC =>'', + FS_BOLDITALIC =>'' ), + + FF_PGOTHIC => array( + FS_NORMAL =>PGOTHIC_TTF_FONT, + FS_BOLD =>'', + FS_ITALIC =>'', + FS_BOLDITALIC =>'' ), + + /* Hebrew fonts */ + FF_DAVID => array( + FS_NORMAL =>'DAVIDNEW.TTF', + FS_BOLD =>'', + FS_ITALIC =>'', + FS_BOLDITALIC =>'' ), + + FF_MIRIAM => array( + FS_NORMAL =>'MRIAMY.TTF', + FS_BOLD =>'', + FS_ITALIC =>'', + FS_BOLDITALIC =>'' ), + + FF_AHRON => array( + FS_NORMAL =>'ahronbd.ttf', + FS_BOLD =>'', + FS_ITALIC =>'', + FS_BOLDITALIC =>'' ), + + /* Misc fonts */ + FF_DIGITAL => array( + FS_NORMAL =>'DIGIRU__.TTF', + FS_BOLD =>'Digirtu_.ttf', + FS_ITALIC =>'Digir___.ttf', + FS_BOLDITALIC =>'DIGIRT__.TTF' ), + + /* This is an experimental font for the speedometer development + FF_SPEEDO => array( + FS_NORMAL =>'Speedo.ttf', + FS_BOLD =>'', + FS_ITALIC =>'', + FS_BOLDITALIC =>'' ), + */ + + FF_COMPUTER => array( + FS_NORMAL =>'COMPUTER.TTF', + FS_BOLD =>'', + FS_ITALIC =>'', + FS_BOLDITALIC =>'' ), + + FF_CALCULATOR => array( + FS_NORMAL =>'Triad_xs.ttf', + FS_BOLD =>'', + FS_ITALIC =>'', + FS_BOLDITALIC =>'' ), + + /* Dejavu fonts */ + FF_DV_SANSSERIF => array( + FS_NORMAL =>array('DejaVuSans.ttf'), + FS_BOLD =>array('DejaVuSans-Bold.ttf','DejaVuSansBold.ttf'), + FS_ITALIC =>array('DejaVuSans-Oblique.ttf','DejaVuSansOblique.ttf'), + FS_BOLDITALIC =>array('DejaVuSans-BoldOblique.ttf','DejaVuSansBoldOblique.ttf') ), + + FF_DV_SANSSERIFMONO => array( + FS_NORMAL =>array('DejaVuSansMono.ttf','DejaVuMonoSans.ttf'), + FS_BOLD =>array('DejaVuSansMono-Bold.ttf','DejaVuMonoSansBold.ttf'), + FS_ITALIC =>array('DejaVuSansMono-Oblique.ttf','DejaVuMonoSansOblique.ttf'), + FS_BOLDITALIC =>array('DejaVuSansMono-BoldOblique.ttf','DejaVuMonoSansBoldOblique.ttf') ), + + FF_DV_SANSSERIFCOND => array( + FS_NORMAL =>array('DejaVuSansCondensed.ttf','DejaVuCondensedSans.ttf'), + FS_BOLD =>array('DejaVuSansCondensed-Bold.ttf','DejaVuCondensedSansBold.ttf'), + FS_ITALIC =>array('DejaVuSansCondensed-Oblique.ttf','DejaVuCondensedSansOblique.ttf'), + FS_BOLDITALIC =>array('DejaVuSansCondensed-BoldOblique.ttf','DejaVuCondensedSansBoldOblique.ttf') ), + + FF_DV_SERIF => array( + FS_NORMAL =>array('DejaVuSerif.ttf'), + FS_BOLD =>array('DejaVuSerif-Bold.ttf','DejaVuSerifBold.ttf'), + FS_ITALIC =>array('DejaVuSerif-Italic.ttf','DejaVuSerifItalic.ttf'), + FS_BOLDITALIC =>array('DejaVuSerif-BoldItalic.ttf','DejaVuSerifBoldItalic.ttf') ), + + FF_DV_SERIFCOND => array( + FS_NORMAL =>array('DejaVuSerifCondensed.ttf','DejaVuCondensedSerif.ttf'), + FS_BOLD =>array('DejaVuSerifCondensed-Bold.ttf','DejaVuCondensedSerifBold.ttf'), + FS_ITALIC =>array('DejaVuSerifCondensed-Italic.ttf','DejaVuCondensedSerifItalic.ttf'), + FS_BOLDITALIC =>array('DejaVuSerifCondensed-BoldItalic.ttf','DejaVuCondensedSerifBoldItalic.ttf') ), + + + /* Placeholders for defined fonts */ + FF_USERFONT1 => array( + FS_NORMAL =>'', + FS_BOLD =>'', + FS_ITALIC =>'', + FS_BOLDITALIC =>'' ), + + FF_USERFONT2 => array( + FS_NORMAL =>'', + FS_BOLD =>'', + FS_ITALIC =>'', + FS_BOLDITALIC =>'' ), + + FF_USERFONT3 => array( + FS_NORMAL =>'', + FS_BOLD =>'', + FS_ITALIC =>'', + FS_BOLDITALIC =>'' ), + + ); + } + + //--------------- + // PUBLIC METHODS + // Create the TTF file from the font specification + function File($family,$style=FS_NORMAL) { + $fam = @$this->font_files[$family]; + if( !$fam ) { + JpGraphError::RaiseL(25046,$family);//("Specified TTF font family (id=$family) is unknown or does not exist. Please note that TTF fonts are not distributed with JpGraph for copyright reasons. You can find the MS TTF WEB-fonts (arial, courier etc) for download at http://corefonts.sourceforge.net/"); + } + $ff = @$fam[$style]; + + if( is_array($ff) ) { + // There are several optional file names. They are tried in order + // and the first one found is used + $n = count($ff); + } else { + $n = 1; + $ff = array($ff); + } + $i = 0; + do { + $f = $ff[$i]; + // All font families are guaranteed to have the normal style + + if( $f==='' ) + JpGraphError::RaiseL(25047,$this->style_names[$style],$this->font_files[$family][FS_NORMAL]);//('Style "'.$this->style_names[$style].'" is not available for font family '.$this->font_files[$family][FS_NORMAL].'.'); + if( !$f ) { + JpGraphError::RaiseL(25048,$fam);//("Unknown font style specification [$fam]."); + } + + if ($family >= FF_MINCHO && $family <= FF_PGOTHIC) { + $f = MBTTF_DIR.$f; + } else { + $f = TTF_DIR.$f; + } + ++$i; + } while( $i < $n && (file_exists($f) === false || is_readable($f) === false) ); + + if( !file_exists($f) ) { + JpGraphError::RaiseL(25049,$f);//("Font file \"$f\" is not readable or does not exist."); + } + return $f; + } + + function SetUserFont($aNormal,$aBold='',$aItalic='',$aBoldIt='') { + $this->font_files[FF_USERFONT] = + array(FS_NORMAL => $aNormal, + FS_BOLD => $aBold, + FS_ITALIC => $aItalic, + FS_BOLDITALIC => $aBoldIt ) ; + } + + function SetUserFont1($aNormal,$aBold='',$aItalic='',$aBoldIt='') { + $this->font_files[FF_USERFONT1] = + array(FS_NORMAL => $aNormal, + FS_BOLD => $aBold, + FS_ITALIC => $aItalic, + FS_BOLDITALIC => $aBoldIt ) ; + } + + function SetUserFont2($aNormal,$aBold='',$aItalic='',$aBoldIt='') { + $this->font_files[FF_USERFONT2] = + array(FS_NORMAL => $aNormal, + FS_BOLD => $aBold, + FS_ITALIC => $aItalic, + FS_BOLDITALIC => $aBoldIt ) ; + } + + function SetUserFont3($aNormal,$aBold='',$aItalic='',$aBoldIt='') { + $this->font_files[FF_USERFONT3] = + array(FS_NORMAL => $aNormal, + FS_BOLD => $aBold, + FS_ITALIC => $aItalic, + FS_BOLDITALIC => $aBoldIt ) ; + } + +} // Class + + +//============================================================================= +// CLASS SymChar +// Description: Code values for some commonly used characters that +// normally isn't available directly on the keyboard, for example +// mathematical and greek symbols. +//============================================================================= +class SymChar { + static function Get($aSymb,$aCapital=FALSE) { + $iSymbols = array( + /* Greek */ + array('alpha','03B1','0391'), + array('beta','03B2','0392'), + array('gamma','03B3','0393'), + array('delta','03B4','0394'), + array('epsilon','03B5','0395'), + array('zeta','03B6','0396'), + array('ny','03B7','0397'), + array('eta','03B8','0398'), + array('theta','03B8','0398'), + array('iota','03B9','0399'), + array('kappa','03BA','039A'), + array('lambda','03BB','039B'), + array('mu','03BC','039C'), + array('nu','03BD','039D'), + array('xi','03BE','039E'), + array('omicron','03BF','039F'), + array('pi','03C0','03A0'), + array('rho','03C1','03A1'), + array('sigma','03C3','03A3'), + array('tau','03C4','03A4'), + array('upsilon','03C5','03A5'), + array('phi','03C6','03A6'), + array('chi','03C7','03A7'), + array('psi','03C8','03A8'), + array('omega','03C9','03A9'), + /* Money */ + array('euro','20AC'), + array('yen','00A5'), + array('pound','20A4'), + /* Math */ + array('approx','2248'), + array('neq','2260'), + array('not','2310'), + array('def','2261'), + array('inf','221E'), + array('sqrt','221A'), + array('int','222B'), + /* Misc */ + array('copy','00A9'), + array('para','00A7'), + array('tm','2122'), /* Trademark symbol */ + array('rtm','00AE'), /* Registered trademark */ + array('degree','00b0'), + array('lte','2264'), /* Less than or equal */ + array('gte','2265'), /* Greater than or equal */ + + ); + + $n = count($iSymbols); + $i=0; + $found = false; + $aSymb = strtolower($aSymb); + while( $i < $n && !$found ) { + $found = $aSymb === $iSymbols[$i++][0]; + } + if( $found ) { + $ca = $iSymbols[--$i]; + if( $aCapital && count($ca)==3 ) + $s = $ca[2]; + else + $s = $ca[1]; + return sprintf('&#%04d;',hexdec($s)); + } + else + return ''; + } +} + + +?> diff --git a/gosa-core/include/jpgraph/jpgraph_utils.inc.php b/gosa-core/include/jpgraph/jpgraph_utils.inc.php new file mode 100644 index 000000000..bd9fc911d --- /dev/null +++ b/gosa-core/include/jpgraph/jpgraph_utils.inc.php @@ -0,0 +1,685 @@ +iFunc = $aFunc; + $this->iXFunc = $aXFunc; + } + + function E($aXMin,$aXMax,$aSteps=50) { + $this->iMin = $aXMin; + $this->iMax = $aXMax; + $this->iStepSize = ($aXMax-$aXMin)/$aSteps; + + if( $this->iXFunc != '' ) + $t = 'for($i='.$aXMin.'; $i<='.$aXMax.'; $i += '.$this->iStepSize.') {$ya[]='.$this->iFunc.';$xa[]='.$this->iXFunc.';}'; + elseif( $this->iFunc != '' ) + $t = 'for($x='.$aXMin.'; $x<='.$aXMax.'; $x += '.$this->iStepSize.') {$ya[]='.$this->iFunc.';$xa[]=$x;} $x='.$aXMax.';$ya[]='.$this->iFunc.';$xa[]=$x;'; + else + JpGraphError::RaiseL(24001);//('FuncGenerator : No function specified. '); + + @eval($t); + + // If there is an error in the function specifcation this is the only + // way we can discover that. + if( empty($xa) || empty($ya) ) + JpGraphError::RaiseL(24002);//('FuncGenerator : Syntax error in function specification '); + + return array($xa,$ya); + } +} + + +//============================================================================= +// CLASS DateScaleUtils +// Description: Help to create a manual date scale +//============================================================================= +define('DSUTILS_MONTH',1); // Major and minor ticks on a monthly basis +define('DSUTILS_MONTH1',1); // Major and minor ticks on a monthly basis +define('DSUTILS_MONTH2',2); // Major ticks on a bi-monthly basis +define('DSUTILS_MONTH3',3); // Major icks on a tri-monthly basis +define('DSUTILS_MONTH6',4); // Major on a six-monthly basis +define('DSUTILS_WEEK1',5); // Major ticks on a weekly basis +define('DSUTILS_WEEK2',6); // Major ticks on a bi-weekly basis +define('DSUTILS_WEEK4',7); // Major ticks on a quod-weekly basis +define('DSUTILS_DAY1',8); // Major ticks on a daily basis +define('DSUTILS_DAY2',9); // Major ticks on a bi-daily basis +define('DSUTILS_DAY4',10); // Major ticks on a qoud-daily basis +define('DSUTILS_YEAR1',11); // Major ticks on a yearly basis +define('DSUTILS_YEAR2',12); // Major ticks on a bi-yearly basis +define('DSUTILS_YEAR5',13); // Major ticks on a five-yearly basis + + +class DateScaleUtils { + public static $iMin=0, $iMax=0; + + private static $starthour,$startmonth, $startday, $startyear; + private static $endmonth, $endyear, $endday; + private static $tickPositions=array(),$minTickPositions=array(); + private static $iUseWeeks = true; + + static function UseWeekFormat($aFlg) { + self::$iUseWeeks = $aFlg; + } + + static function doYearly($aType,$aMinor=false) { + $i=0; $j=0; + $m = self::$startmonth; + $y = self::$startyear; + + if( self::$startday == 1 ) { + self::$tickPositions[$i++] = mktime(0,0,0,$m,1,$y); + } + ++$m; + + + switch( $aType ) { + case DSUTILS_YEAR1: + for($y=self::$startyear; $y <= self::$endyear; ++$y ) { + if( $aMinor ) { + while( $m <= 12 ) { + if( !($y == self::$endyear && $m > self::$endmonth) ) { + self::$minTickPositions[$j++] = mktime(0,0,0,$m,1,$y); + } + ++$m; + } + $m=1; + } + self::$tickPositions[$i++] = mktime(0,0,0,1,1,$y); + } + break; + case DSUTILS_YEAR2: + $y=self::$startyear; + while( $y <= self::$endyear ) { + self::$tickPositions[$i++] = mktime(0,0,0,1,1,$y); + for($k=0; $k < 1; ++$k ) { + ++$y; + if( $aMinor ) { + self::$minTickPositions[$j++] = mktime(0,0,0,1,1,$y); + } + } + ++$y; + } + break; + case DSUTILS_YEAR5: + $y=self::$startyear; + while( $y <= self::$endyear ) { + self::$tickPositions[$i++] = mktime(0,0,0,1,1,$y); + for($k=0; $k < 4; ++$k ) { + ++$y; + if( $aMinor ) { + self::$minTickPositions[$j++] = mktime(0,0,0,1,1,$y); + } + } + ++$y; + } + break; + } + } + + static function doDaily($aType,$aMinor=false) { + $m = self::$startmonth; + $y = self::$startyear; + $d = self::$startday; + $h = self::$starthour; + $i=0;$j=0; + + if( $h == 0 ) { + self::$tickPositions[$i++] = mktime(0,0,0,$m,$d,$y); + } + $t = mktime(0,0,0,$m,$d,$y); + + switch($aType) { + case DSUTILS_DAY1: + while( $t <= self::$iMax ) { + $t = strtotime('+1 day',$t); + self::$tickPositions[$i++] = $t; + if( $aMinor ) { + self::$minTickPositions[$j++] = strtotime('+12 hours',$t); + } + } + break; + case DSUTILS_DAY2: + while( $t <= self::$iMax ) { + $t = strtotime('+1 day',$t); + if( $aMinor ) { + self::$minTickPositions[$j++] = $t; + } + $t = strtotime('+1 day',$t); + self::$tickPositions[$i++] = $t; + } + break; + case DSUTILS_DAY4: + while( $t <= self::$iMax ) { + for($k=0; $k < 3; ++$k ) { + $t = strtotime('+1 day',$t); + if( $aMinor ) { + self::$minTickPositions[$j++] = $t; + } + } + $t = strtotime('+1 day',$t); + self::$tickPositions[$i++] = $t; + } + break; + } + } + + static function doWeekly($aType,$aMinor=false) { + $hpd = 3600*24; + $hpw = 3600*24*7; + // Find out week number of min date + $thursday = self::$iMin + $hpd * (3 - (date('w', self::$iMin) + 6) % 7); + $week = 1 + (date('z', $thursday) - (11 - date('w', mktime(0, 0, 0, 1, 1, date('Y', $thursday)))) % 7) / 7; + $daynumber = date('w',self::$iMin); + if( $daynumber == 0 ) $daynumber = 7; + $m = self::$startmonth; + $y = self::$startyear; + $d = self::$startday; + $i=0;$j=0; + // The assumption is that the weeks start on Monday. If the first day + // is later in the week then the first week tick has to be on the following + // week. + if( $daynumber == 1 ) { + self::$tickPositions[$i++] = mktime(0,0,0,$m,$d,$y); + $t = mktime(0,0,0,$m,$d,$y) + $hpw; + } + else { + $t = mktime(0,0,0,$m,$d,$y) + $hpd*(8-$daynumber); + } + + switch($aType) { + case DSUTILS_WEEK1: + $cnt=0; + break; + case DSUTILS_WEEK2: + $cnt=1; + break; + case DSUTILS_WEEK4: + $cnt=3; + break; + } + while( $t <= self::$iMax ) { + self::$tickPositions[$i++] = $t; + for($k=0; $k < $cnt; ++$k ) { + $t += $hpw; + if( $aMinor ) { + self::$minTickPositions[$j++] = $t; + } + } + $t += $hpw; + } + } + + static function doMonthly($aType,$aMinor=false) { + $monthcount=0; + $m = self::$startmonth; + $y = self::$startyear; + $i=0; $j=0; + + // Skip the first month label if it is before the startdate + if( self::$startday == 1 ) { + self::$tickPositions[$i++] = mktime(0,0,0,$m,1,$y); + $monthcount=1; + } + if( $aType == 1 ) { + if( self::$startday < 15 ) { + self::$minTickPositions[$j++] = mktime(0,0,0,$m,15,$y); + } + } + ++$m; + + // Loop through all the years included in the scale + for($y=self::$startyear; $y <= self::$endyear; ++$y ) { + // Loop through all the months. There are three cases to consider: + // 1. We are in the first year and must start with the startmonth + // 2. We are in the end year and we must stop at last month of the scale + // 3. A year in between where we run through all the 12 months + $stopmonth = $y == self::$endyear ? self::$endmonth : 12; + while( $m <= $stopmonth ) { + switch( $aType ) { + case DSUTILS_MONTH1: + // Set minor tick at the middle of the month + if( $aMinor ) { + if( $m <= $stopmonth ) { + if( !($y==self::$endyear && $m==$stopmonth && self::$endday < 15) ) + self::$minTickPositions[$j++] = mktime(0,0,0,$m,15,$y); + } + } + // Major at month + // Get timestamp of first hour of first day in each month + self::$tickPositions[$i++] = mktime(0,0,0,$m,1,$y); + + break; + case DSUTILS_MONTH2: + if( $aMinor ) { + // Set minor tick at start of each month + self::$minTickPositions[$j++] = mktime(0,0,0,$m,1,$y); + } + + // Major at every second month + // Get timestamp of first hour of first day in each month + if( $monthcount % 2 == 0 ) { + self::$tickPositions[$i++] = mktime(0,0,0,$m,1,$y); + } + break; + case DSUTILS_MONTH3: + if( $aMinor ) { + // Set minor tick at start of each month + self::$minTickPositions[$j++] = mktime(0,0,0,$m,1,$y); + } + // Major at every third month + // Get timestamp of first hour of first day in each month + if( $monthcount % 3 == 0 ) { + self::$tickPositions[$i++] = mktime(0,0,0,$m,1,$y); + } + break; + case DSUTILS_MONTH6: + if( $aMinor ) { + // Set minor tick at start of each month + self::$minTickPositions[$j++] = mktime(0,0,0,$m,1,$y); + } + // Major at every third month + // Get timestamp of first hour of first day in each month + if( $monthcount % 6 == 0 ) { + self::$tickPositions[$i++] = mktime(0,0,0,$m,1,$y); + } + break; + } + ++$m; + ++$monthcount; + } + $m=1; + } + + // For the case where all dates are within the same month + // we want to make sure we have at least two ticks on the scale + // since the scale want work properly otherwise + if(self::$startmonth == self::$endmonth && self::$startyear == self::$endyear && $aType==1 ) { + self::$tickPositions[$i++] = mktime(0 ,0 ,0, self::$startmonth + 1, 1, self::$startyear); + } + + return array(self::$tickPositions,self::$minTickPositions); + } + + static function GetTicks($aData,$aType=1,$aMinor=false,$aEndPoints=false) { + $n = count($aData); + return self::GetTicksFromMinMax($aData[0],$aData[$n-1],$aType,$aMinor,$aEndPoints); + } + + static function GetAutoTicks($aMin,$aMax,$aMaxTicks=10,$aMinor=false) { + $diff = $aMax - $aMin; + $spd = 3600*24; + $spw = $spd*7; + $spm = $spd*30; + $spy = $spd*352; + + if( self::$iUseWeeks ) + $w = 'W'; + else + $w = 'd M'; + + // Decision table for suitable scales + // First value: Main decision point + // Second value: Array of formatting depending on divisor for wanted max number of ticks. ,.. + $tt = array( + array($spw, array(1,DSUTILS_DAY1,'d M',2,DSUTILS_DAY2,'d M',-1,DSUTILS_DAY4,'d M')), + array($spm, array(1,DSUTILS_DAY1,'d M',2,DSUTILS_DAY2,'d M',4,DSUTILS_DAY4,'d M',7,DSUTILS_WEEK1,$w,-1,DSUTILS_WEEK2,$w)), + array($spy, array(1,DSUTILS_DAY1,'d M',2,DSUTILS_DAY2,'d M',4,DSUTILS_DAY4,'d M',7,DSUTILS_WEEK1,$w,14,DSUTILS_WEEK2,$w,30,DSUTILS_MONTH1,'M',60,DSUTILS_MONTH2,'M',-1,DSUTILS_MONTH3,'M')), + array(-1, array(30,DSUTILS_MONTH1,'M-Y',60,DSUTILS_MONTH2,'M-Y',90,DSUTILS_MONTH3,'M-Y',180,DSUTILS_MONTH6,'M-Y',352,DSUTILS_YEAR1,'Y',704,DSUTILS_YEAR2,'Y',-1,DSUTILS_YEAR5,'Y'))); + + $ntt = count($tt); + $nd = floor($diff/$spd); + for($i=0; $i < $ntt; ++$i ) { + if( $diff <= $tt[$i][0] || $i==$ntt-1) { + $t = $tt[$i][1]; + $n = count($t)/3; + for( $j=0; $j < $n; ++$j ) { + if( $nd/$t[3*$j] <= $aMaxTicks || $j==$n-1) { + $type = $t[3*$j+1]; + $fs = $t[3*$j+2]; + list($tickPositions,$minTickPositions) = self::GetTicksFromMinMax($aMin,$aMax,$type,$aMinor); + return array($fs,$tickPositions,$minTickPositions,$type); + } + } + } + } + } + + static function GetTicksFromMinMax($aMin,$aMax,$aType,$aMinor=false,$aEndPoints=false) { + self::$starthour = date('G',$aMin); + self::$startmonth = date('n',$aMin); + self::$startday = date('j',$aMin); + self::$startyear = date('Y',$aMin); + self::$endmonth = date('n',$aMax); + self::$endyear = date('Y',$aMax); + self::$endday = date('j',$aMax); + self::$iMin = $aMin; + self::$iMax = $aMax; + + if( $aType <= DSUTILS_MONTH6 ) { + self::doMonthly($aType,$aMinor); + } + elseif( $aType <= DSUTILS_WEEK4 ) { + self::doWeekly($aType,$aMinor); + } + elseif( $aType <= DSUTILS_DAY4 ) { + self::doDaily($aType,$aMinor); + } + elseif( $aType <= DSUTILS_YEAR5 ) { + self::doYearly($aType,$aMinor); + } + else { + JpGraphError::RaiseL(24003); + } + // put a label at the very left data pos + if( $aEndPoints ) { + $tickPositions[$i++] = $aData[0]; + } + + // put a label at the very right data pos + if( $aEndPoints ) { + $tickPositions[$i] = $aData[$n-1]; + } + + return array(self::$tickPositions,self::$minTickPositions); + } +} + +//============================================================================= +// Class ReadFileData +//============================================================================= +Class ReadFileData { + //---------------------------------------------------------------------------- + // Desciption: + // Read numeric data from a file. + // Each value should be separated by either a new line or by a specified + // separator character (default is ','). + // Before returning the data each value is converted to a proper float + // value. The routine is robust in the sense that non numeric data in the + // file will be discarded. + // + // Returns: + // The number of data values read on success, FALSE on failure + //---------------------------------------------------------------------------- + static function FromCSV($aFile,&$aData,$aSepChar=',',$aMaxLineLength=1024) { + $rh = @fopen($aFile,'r'); + if( $rh === false ) { + return false; + } + $tmp = array(); + $lineofdata = fgetcsv($rh, 1000, ','); + while ( $lineofdata !== FALSE) { + $tmp = array_merge($tmp,$lineofdata); + $lineofdata = fgetcsv($rh, $aMaxLineLength, $aSepChar); + } + fclose($rh); + + // Now make sure that all data is numeric. By default + // all data is read as strings + $n = count($tmp); + $aData = array(); + $cnt=0; + for($i=0; $i < $n; ++$i) { + if( $tmp[$i] !== "" ) { + $aData[$cnt++] = floatval($tmp[$i]); + } + } + return $cnt; + } + + //---------------------------------------------------------------------------- + // Desciption: + // Read numeric data from a file. + // Each value should be separated by either a new line or by a specified + // separator character (default is ','). + // Before returning the data each value is converted to a proper float + // value. The routine is robust in the sense that non numeric data in the + // file will be discarded. + // + // Options: + // 'separator' => ',', + // 'enclosure' => '"', + // 'readlength' => 1024, + // 'ignore_first' => false, + // 'first_as_key' => false + // 'escape' => '\', # PHP >= 5.3 only + // + // Returns: + // The number of lines read on success, FALSE on failure + //---------------------------------------------------------------------------- + static function FromCSV2($aFile, &$aData, $aOptions = array()) { + $aDefaults = array( + 'separator' => ',', + 'enclosure' => chr(34), + 'escape' => chr(92), + 'readlength' => 1024, + 'ignore_first' => false, + 'first_as_key' => false + ); + + $aOptions = array_merge( + $aDefaults, is_array($aOptions) ? $aOptions : array()); + + if( $aOptions['first_as_key'] ) { + $aOptions['ignore_first'] = true; + } + + $rh = @fopen($aFile, 'r'); + + if( $rh === false ) { + return false; + } + + $aData = array(); + $aLine = fgetcsv($rh, + $aOptions['readlength'], + $aOptions['separator'], + $aOptions['enclosure'] + /*, $aOptions['escape'] # PHP >= 5.3 only */ + ); + + // Use numeric array keys for the columns by default + // If specified use first lines values as assoc keys instead + $keys = array_keys($aLine); + if( $aOptions['first_as_key'] ) { + $keys = array_values($aLine); + } + + $num_lines = 0; + $num_cols = count($aLine); + + while ($aLine !== false) { + if( is_array($aLine) && count($aLine) != $num_cols ) { + JpGraphError::RaiseL(24004); + // 'ReadCSV2: Column count mismatch in %s line %d' + } + + // fgetcsv returns NULL for empty lines + if( !is_null($aLine) ) { + $num_lines++; + + if( !($aOptions['ignore_first'] && $num_lines == 1) && is_numeric($aLine[0]) ) { + for( $i = 0; $i < $num_cols; $i++ ) { + $aData[ $keys[$i] ][] = floatval($aLine[$i]); + } + } + } + + $aLine = fgetcsv($rh, + $aOptions['readlength'], + $aOptions['separator'], + $aOptions['enclosure'] + /*, $aOptions['escape'] # PHP >= 5.3 only*/ + ); + } + + fclose($rh); + + if( $aOptions['ignore_first'] ) { + $num_lines--; + } + + return $num_lines; + } + + // Read data from two columns in a plain text file + static function From2Col($aFile, $aCol1, $aCol2, $aSepChar=' ') { + $lines = @file($aFile,FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES); + if( $lines === false ) { + return false; + } + $s = '/[\s]+/'; + if( $aSepChar == ',' ) { + $s = '/[\s]*,[\s]*/'; + } + elseif( $aSepChar == ';' ) { + $s = '/[\s]*;[\s]*/'; + } + foreach( $lines as $line => $datarow ) { + $split = preg_split($s,$datarow); + $aCol1[] = floatval(trim($split[0])); + $aCol2[] = floatval(trim($split[1])); + } + + return count($lines); + } + + // Read data from one columns in a plain text file + static function From1Col($aFile, $aCol1) { + $lines = @file($aFile,FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES); + if( $lines === false ) { + return false; + } + foreach( $lines as $line => $datarow ) { + $aCol1[] = floatval(trim($datarow)); + } + + return count($lines); + } + + static function FromMatrix($aFile,$aSepChar=' ') { + $lines = @file($aFile,FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES); + if( $lines === false ) { + return false; + } + $mat = array(); + $reg = '/'.$aSepChar.'/'; + foreach( $lines as $line => $datarow ) { + $row = preg_split($reg,trim($datarow)); + foreach ($row as $key => $cell ) { + $row[$key] = floatval(trim($cell)); + } + $mat[] = $row; + } + return $mat; + } + + +} + +define('__LR_EPSILON', 1.0e-8); +//============================================================================= +// Class LinearRegression +//============================================================================= +class LinearRegression { + private $ix=array(),$iy=array(); + private $ib=0, $ia=0; + private $icalculated=false; + public $iDet=0, $iCorr=0, $iStdErr=0; + + public function __construct($aDataX,$aDataY) { + if( count($aDataX) !== count($aDataY) ) { + JpGraph::Raise('LinearRegression: X and Y data array must be of equal length.'); + } + $this->ix = $aDataX; + $this->iy = $aDataY; + } + + public function Calc() { + + $this->icalculated = true; + + $n = count($this->ix); + $sx2 = 0 ; + $sy2 = 0 ; + $sxy = 0 ; + $sx = 0 ; + $sy = 0 ; + + for( $i=0; $i < $n; ++$i ) { + $sx2 += $this->ix[$i] * $this->ix[$i]; + $sy2 += $this->iy[$i] * $this->iy[$i]; + $sxy += $this->ix[$i] * $this->iy[$i]; + $sx += $this->ix[$i]; + $sy += $this->iy[$i]; + } + + if( $n*$sx2 - $sx*$sx > __LR_EPSILON ) { + $this->ib = ($n*$sxy - $sx*$sy) / ( $n*$sx2 - $sx*$sx ); + $this->ia = ( $sy - $this->ib*$sx ) / $n; + + $sx = $this->ib * ( $sxy - $sx*$sy/$n ); + $sy2 = $sy2 - $sy*$sy/$n; + $sy = $sy2 - $sx; + + $this->iDet = $sx / $sy2; + $this->iCorr = sqrt($this->iDet); + if( $n > 2 ) { + $this->iStdErr = sqrt( $sy / ($n-2) ); + } + else { + $this->iStdErr = NAN ; + } + } + else { + $this->ib = 0; + $this->ia = 0; + } + + } + + public function GetAB() { + if( $this->icalculated == false ) + $this->Calc(); + return array($this->ia, $this->ib); + } + + public function GetStat() { + if( $this->icalculated == false ) + $this->Calc(); + return array($this->iStdErr, $this->iCorr, $this->iDet); + } + + public function GetY($aMinX, $aMaxX, $aStep=1) { + if( $this->icalculated == false ) + $this->Calc(); + + $yy = array(); + $i = 0; + for( $x=$aMinX; $x <= $aMaxX; $x += $aStep ) { + $xx[$i ] = $x; + $yy[$i++] = $this->ia + $this->ib * $x; + } + + return array($xx,$yy); + } + +} + +?> \ No newline at end of file diff --git a/gosa-core/include/jpgraph/lang/de.inc.php b/gosa-core/include/jpgraph/lang/de.inc.php new file mode 100644 index 000000000..c92e5499d --- /dev/null +++ b/gosa-core/include/jpgraph/lang/de.inc.php @@ -0,0 +1,542 @@ +,) +$_jpg_messages = array( + +/* +** Headers wurden bereits gesendet - Fehler. Dies wird als HTML formatiert, weil es direkt als text zurueckgesendet wird +*/ +10 => array('
    JpGraph Fehler: +HTTP header wurden bereits gesendet.
    Fehler in der Datei %s in der Zeile %d.
    Erklärung:
    HTTP header wurden bereits zum Browser gesendet, wobei die Daten als Text gekennzeichnet wurden, bevor die Bibliothek die Chance hatte, seinen Bild-HTTP-Header zum Browser zu schicken. Dies verhindert, dass die Bibliothek Bilddaten zum Browser schicken kann (weil sie vom Browser als Text interpretiert würden und daher nur Mist dargestellt würde).

    Wahrscheinlich steht Text im Skript bevor Graph::Stroke() aufgerufen wird. Wenn dieser Text zum Browser gesendet wird, nimmt dieser an, dass die gesamten Daten aus Text bestehen. Such nach irgendwelchem Text, auch nach Leerzeichen und Zeilenumbrüchen, die eventuell bereits zum Browser gesendet wurden.

    Zum Beispiel ist ein oft auftretender Fehler, eine Leerzeile am Anfang der Datei oder vor Graph::Stroke() zu lassen."<?php".

    ',2), + +/* +** Setup Fehler +*/ +11 => array('Es wurde kein Pfad für CACHE_DIR angegeben. Bitte gib einen Pfad CACHE_DIR in der Datei jpg-config.inc an.',0), +12 => array('Es wurde kein Pfad für TTF_DIR angegeben und der Pfad kann nicht automatisch ermittelt werden. Bitte gib den Pfad in der Datei jpg-config.inc an.',0), +13 => array('The installed PHP version (%s) is not compatible with this release of the library. The library requires at least PHP version %s',2), + +/* +** jpgraph_bar +*/ + +2001 => array('Die Anzahl der Farben ist nicht gleich der Anzahl der Vorlagen in BarPlot::SetPattern().',0), +2002 => array('Unbekannte Vorlage im Aufruf von BarPlot::SetPattern().',0), +2003 => array('Anzahl der X- und Y-Koordinaten sind nicht identisch. Anzahl der X-Koordinaten: %d; Anzahl der Y-Koordinaten: %d.',2), +2004 => array('Alle Werte für ein Balkendiagramm (barplot) müssen numerisch sein. Du hast den Wert nr [%d] == %s angegeben.',2), +2005 => array('Du hast einen leeren Vektor für die Schattierungsfarben im Balkendiagramm (barplot) angegeben.',0), +2006 => array('Unbekannte Position für die Werte der Balken: %s.',1), +2007 => array('Kann GroupBarPlot nicht aus einem leeren Vektor erzeugen.',0), +2008 => array('GroupBarPlot Element nbr %d wurde nicht definiert oder ist leer.',0), +2009 => array('Eins der Objekte, das an GroupBar weitergegeben wurde ist kein Balkendiagramm (BarPlot). Versichere Dich, dass Du den GroupBarPlot aus einem Vektor von Balkendiagrammen (barplot) oder AccBarPlot-Objekten erzeugst. (Class = %s)',1), +2010 => array('Kann AccBarPlot nicht aus einem leeren Vektor erzeugen.',0), +2011 => array('AccBarPlot-Element nbr %d wurde nicht definiert oder ist leer.',1), +2012 => array('Eins der Objekte, das an AccBar weitergegeben wurde ist kein Balkendiagramm (barplot). Versichere Dich, dass Du den AccBar-Plot aus einem Vektor von Balkendiagrammen (barplot) erzeugst. (Class=%s)',1), +2013 => array('Du hast einen leeren Vektor für die Schattierungsfarben im Balkendiagramm (barplot) angegeben.',0), +2014 => array('Die Anzahl der Datenpunkte jeder Datenreihe in AccBarPlot muss gleich sein.',0), +2015 => array('Individual bar plots in an AccBarPlot or GroupBarPlot can not have specified X-coordinates',0), + + +/* +** jpgraph_date +*/ + +3001 => array('Es ist nur möglich, entweder SetDateAlign() oder SetTimeAlign() zu benutzen, nicht beides!',0), + +/* +** jpgraph_error +*/ + +4002 => array('Fehler bei den Eingabedaten von LineErrorPlot. Die Anzahl der Datenpunkte mus ein Mehrfaches von drei sein!',0), + +/* +** jpgraph_flags +*/ + +5001 => array('Unbekannte Flaggen-Größe (%d).',1), +5002 => array('Der Flaggen-Index %s existiert nicht.',1), +5003 => array('Es wurde eine ungültige Ordnungszahl (%d) für den Flaggen-Index angegeben.',1), +5004 => array('Der Landesname %s hat kein korrespondierendes Flaggenbild. Die Flagge mag existieren, abr eventuell unter einem anderen Namen, z.B. versuche "united states" statt "usa".',1), + + +/* +** jpgraph_gantt +*/ + +6001 => array('Interner Fehler. Die Höhe für ActivityTitles ist < 0.',0), +6002 => array('Es dürfen keine negativen Werte für die Gantt-Diagramm-Dimensionen angegeben werden. Verwende 0, wenn die Dimensionen automatisch ermittelt werden sollen.',0), +6003 => array('Ungültiges Format für den Bedingungs-Parameter bei Index=%d in CreateSimple(). Der Parameter muss bei index 0 starten und Vektoren in der Form (Row,Constrain-To,Constrain-Type) enthalten.',1), +6004 => array('Ungültiges Format für den Fortschritts-Parameter bei Index=%d in CreateSimple(). Der Parameter muss bei Index 0 starten und Vektoren in der Form (Row,Progress) enthalten.',1), +6005 => array('SetScale() ist nicht sinnvoll bei Gantt-Diagrammen.',0), +6006 => array('Das Gantt-Diagramm kann nicht automatisch skaliert werden. Es existieren keine Aktivitäten mit Termin. [GetBarMinMax() start >= n]',0), +6007 => array('Plausibiltätsprüfung für die automatische Gantt-Diagramm-Größe schlug fehl. Entweder die Breite (=%d) oder die Höhe (=%d) ist größer als MAX_GANTTIMG_SIZE. Dies kann möglicherweise durch einen falschen Wert bei einer Aktivität hervorgerufen worden sein.',2), +6008 => array('Du hast eine Bedingung angegeben von Reihe=%d bis Reihe=%d, die keine Aktivität hat.',2), +6009 => array('Unbekannter Bedingungstyp von Reihe=%d bis Reihe=%d',2), +6010 => array('Ungültiger Icon-Index für das eingebaute Gantt-Icon [%d]',1), +6011 => array('Argument für IconImage muss entweder ein String oder ein Integer sein.',0), +6012 => array('Unbekannter Typ bei der Gantt-Objekt-Title-Definition.',0), +6015 => array('Ungültige vertikale Position %d',1), +6016 => array('Der eingegebene Datums-String (%s) für eine Gantt-Aktivität kann nicht interpretiert werden. Versichere Dich, dass es ein gültiger Datumsstring ist, z.B. 2005-04-23 13:30',1), +6017 => array('Unbekannter Datumstyp in GanttScale (%s).',1), +6018 => array('Intervall für Minuten muss ein gerader Teiler einer Stunde sein, z.B. 1,5,10,12,15,20,30, etc. Du hast ein Intervall von %d Minuten angegeben.',1), +6019 => array('Die vorhandene Breite (%d) für die Minuten ist zu klein, um angezeigt zu werden. Bitte benutze die automatische Größenermittlung oder vergrößere die Breite des Diagramms.',1), +6020 => array('Das Intervall für die Stunden muss ein gerader Teiler eines Tages sein, z.B. 0:30, 1:00, 1:30, 4:00, etc. Du hast ein Intervall von %d eingegeben.',1), +6021 => array('Unbekanntes Format für die Woche.',0), +6022 => array('Die Gantt-Skala wurde nicht eingegeben.',0), +6023 => array('Wenn Du sowohl Stunden als auch Minuten anzeigen lassen willst, muss das Stunden-Interval gleich 1 sein (anderenfalls ist es nicht sinnvoll, Minuten anzeigen zu lassen).',0), +6024 => array('Das CSIM-Ziel muss als String angegeben werden. Der Start des Ziels ist: %d',1), +6025 => array('Der CSIM-Alt-Text muss als String angegeben werden. Der Beginn des Alt-Textes ist: %d',1), +6027 => array('Der Fortschrittswert muss im Bereich [0, 1] liegen.',0), +6028 => array('Die eingegebene Höhe (%d) für GanttBar ist nicht im zulässigen Bereich.',1), +6029 => array('Der Offset für die vertikale Linie muss im Bereich [0,1] sein.',0), +6030 => array('Unbekannte Pfeilrichtung für eine Verbindung.',0), +6031 => array('Unbekannter Pfeiltyp für eine Verbindung.',0), +6032 => array('Interner Fehler: Unbekannter Pfadtyp (=%d) für eine Verbindung.',1), +6033 => array('Array of fonts must contain arrays with 3 elements, i.e. (Family, Style, Size)',0), + +/* +** jpgraph_gradient +*/ + +7001 => array('Unbekannter Gradiententyp (=%d).',1), + +/* +** jpgraph_iconplot +*/ + +8001 => array('Der Mix-Wert für das Icon muss zwischen 0 und 100 sein.',0), +8002 => array('Die Ankerposition für Icons muss entweder "top", "bottom", "left", "right" oder "center" sein.',0), +8003 => array('Es ist nicht möglich, gleichzeitig ein Bild und eine Landesflagge für dasselbe Icon zu definieren',0), +8004 => array('Wenn Du Landesflaggen benutzen willst, musst Du die Datei "jpgraph_flags.php" hinzufügen (per include).',0), + +/* +** jpgraph_imgtrans +*/ + +9001 => array('Der Wert für die Bildtransformation ist außerhalb des zulässigen Bereichs. Der verschwindende Punkt am Horizont muss als Wert zwischen 0 und 1 angegeben werden.',0), + +/* +** jpgraph_lineplot +*/ + +10001 => array('Die Methode LinePlot::SetFilled() sollte nicht mehr benutzt werden. Benutze lieber SetFillColor()',0), +10002 => array('Der Plot ist zu kompliziert für FastLineStroke. Benutze lieber den StandardStroke()',0), +10003 => array('Each plot in an accumulated lineplot must have the same number of data points.',0), +/* +** jpgraph_log +*/ + +11001 => array('Deine Daten enthalten nicht-numerische Werte.',0), +11002 => array('Negative Werte können nicht für logarithmische Achsen verwendet werden.',0), +11003 => array('Deine Daten enthalten nicht-numerische Werte.',0), +11004 => array('Skalierungsfehler für die logarithmische Achse. Es gibt ein Problem mit den Daten der Achse. Der größte Wert muss größer sein als Null. Es ist mathematisch nicht möglich, einen Wert gleich Null in der Skala zu haben.',0), +11005 => array('Das Tick-Intervall für die logarithmische Achse ist nicht definiert. Lösche jeden Aufruf von SetTextLabelStart() oder SetTextTickInterval() bei der logarithmischen Achse.',0), + +/* +** jpgraph_mgraph +*/ + +12001 => array("Du benutzt GD 2.x und versuchst ein Nicht-Truecolor-Bild als Hintergrundbild zu benutzen. Um Hintergrundbilder mit GD 2.x zu benutzen, ist es notwendig Truecolor zu aktivieren, indem die USE_TRUECOLOR-Konstante auf TRUE gesetzt wird. Wegen eines Bugs in GD 2.0.1 ist die Qualität der Truetype-Schriften sehr schlecht, wenn man Truetype-Schriften mit Truecolor-Bildern verwendet.",0), +12002 => array('Ungültiger Dateiname für MGraph::SetBackgroundImage() : %s. Die Datei muss eine gültige Dateierweiterung haben (jpg,gif,png), wenn die automatische Typerkennung verwendet wird.',1), +12003 => array('Unbekannte Dateierweiterung (%s) in MGraph::SetBackgroundImage() für Dateiname: %s',2), +12004 => array('Das Bildformat des Hintergrundbildes (%s) wird von Deiner System-Konfiguration nicht unterstützt. ',1), +12005 => array('Das Hintergrundbild kann nicht gelesen werden: %s',1), +12006 => array('Es wurden ungültige Größen für Breite oder Höhe beim Erstellen des Bildes angegeben, (Breite=%d, Höhe=%d)',2), +12007 => array('Das Argument für MGraph::Add() ist nicht gültig für GD.',0), +12008 => array('Deine PHP- (und GD-lib-) Installation scheint keine bekannten Bildformate zu unterstützen.',0), +12009 => array('Deine PHP-Installation unterstützt das gewählte Bildformat nicht: %s',1), +12010 => array('Es konnte kein Bild als Datei %s erzeugt werden. Überprüfe, ob Du die entsprechenden Schreibrechte im aktuellen Verzeichnis hast.',1), +12011 => array('Es konnte kein Truecolor-Bild erzeugt werden. Überprüfe, ob Du wirklich die GD2-Bibliothek installiert hast.',0), +12012 => array('Es konnte kein Bild erzeugt werden. Überprüfe, ob Du wirklich die GD2-Bibliothek installiert hast.',0), + +/* +** jpgraph_pie3d +*/ + +14001 => array('Pie3D::ShowBorder(). Missbilligte Funktion. Benutze Pie3D::SetEdge(), um die Ecken der Tortenstücke zu kontrollieren.',0), +14002 => array('PiePlot3D::SetAngle() 3D-Torten-Projektionswinkel muss zwischen 5 und 85 Grad sein.',0), +14003 => array('Interne Festlegung schlug fehl. Pie3D::Pie3DSlice',0), +14004 => array('Tortenstück-Startwinkel muss zwischen 0 und 360 Grad sein.',0), +14005 => array('Pie3D Interner Fehler: Versuch, zweimal zu umhüllen bei der Suche nach dem Startindex.',0,), +14006 => array('Pie3D Interner Fehler: Z-Sortier-Algorithmus für 3D-Tortendiagramme funktioniert nicht einwandfrei (2). Versuch, zweimal zu umhüllen beim Erstellen des Bildes.',0), +14007 => array('Die Breite für das 3D-Tortendiagramm ist 0. Gib eine Breite > 0 an.',0), + +/* +** jpgraph_pie +*/ + +15001 => array('PiePLot::SetTheme() Unbekannter Stil: %s',1), +15002 => array('Argument für PiePlot::ExplodeSlice() muss ein Integer-Wert sein',0), +15003 => array('Argument für PiePlot::Explode() muss ein Vektor mit Integer-Werten sein.',0), +15004 => array('Tortenstück-Startwinkel muss zwischen 0 und 360 Grad sein.',0), +15005 => array('PiePlot::SetFont() sollte nicht mehr verwendet werden. Benutze stattdessen PiePlot->value->SetFont().',0), +15006 => array('PiePlot::SetSize() Radius für Tortendiagramm muss entweder als Bruch [0, 0.5] der Bildgröße oder als Absoluwert in Pixel im Bereich [10, 1000] angegeben werden.',0), +15007 => array('PiePlot::SetFontColor() sollte nicht mehr verwendet werden. Benutze stattdessen PiePlot->value->SetColor()..',0), +15008 => array('PiePlot::SetLabelType() der Typ für Tortendiagramme muss entweder 0 or 1 sein (nicht %d).',1), +15009 => array('Ungültiges Tortendiagramm. Die Summe aller Daten ist Null.',0), +15010 => array('Die Summe aller Daten ist Null.',0), +15011 => array('Um Bildtransformationen benutzen zu können, muss die Datei jpgraph_imgtrans.php eingefügt werden (per include).',0), + +/* +** jpgraph_plotband +*/ + +16001 => array('Die Dichte für das Pattern muss zwischen 1 und 100 sein. (Du hast %f eingegeben)',1), +16002 => array('Es wurde keine Position für das Pattern angegeben.',0), +16003 => array('Unbekannte Pattern-Definition (%d)',0), +16004 => array('Der Mindeswert für das PlotBand ist größer als der Maximalwert. Bitte korrigiere dies!',0), + + +/* +** jpgraph_polar +*/ + +17001 => array('PolarPlots müssen eine gerade Anzahl von Datenpunkten haben. Jeder Datenpunkt ist ein Tupel (Winkel, Radius).',0), +17002 => array('Unbekannte Ausrichtung für X-Achsen-Titel. (%s)',1), +//17003 => array('Set90AndMargin() wird für PolarGraph nicht unterstützt.',0), +17004 => array('Unbekannter Achsentyp für PolarGraph. Er muss entweder \'lin\' oder \'log\' sein.',0), + +/* +** jpgraph_radar +*/ + +18001 => array('ClientSideImageMaps werden für RadarPlots nicht unterstützt.',0), +18002 => array('RadarGraph::SupressTickMarks() sollte nicht mehr verwendet werden. Benutze stattdessen HideTickMarks().',0), +18003 => array('Ungültiger Achsentyp für RadarPlot (%s). Er muss entweder \'lin\' oder \'log\' sein.',1), +18004 => array('Die RadarPlot-Größe muss zwischen 0.1 und 1 sein. (Dein Wert=%f)',1), +18005 => array('RadarPlot: nicht unterstützte Tick-Dichte: %d',1), +18006 => array('Minimum Daten %f (RadarPlots sollten nur verwendet werden, wenn alle Datenpunkte einen Wert > 0 haben).',1), +18007 => array('Die Anzahl der Titel entspricht nicht der Anzahl der Datenpunkte.',0), +18008 => array('Jeder RadarPlot muss die gleiche Anzahl von Datenpunkten haben.',0), + +/* +** jpgraph_regstat +*/ + +19001 => array('Spline: Anzahl der X- und Y-Koordinaten muss gleich sein.',0), +19002 => array('Ungültige Dateneingabe für Spline. Zwei oder mehr aufeinanderfolgende X-Werte sind identisch. Jeder eigegebene X-Wert muss unterschiedlich sein, weil vom mathematischen Standpunkt ein Eins-zu-Eins-Mapping vorliegen muss, d.h. jeder X-Wert korrespondiert mit exakt einem Y-Wert.',0), +19003 => array('Bezier: Anzahl der X- und Y-Koordinaten muss gleich sein.',0), + +/* +** jpgraph_scatter +*/ + +20001 => array('Fieldplots müssen die gleiche Anzahl von X und Y Datenpunkten haben.',0), +20002 => array('Bei Fieldplots muss ein Winkel für jeden X und Y Datenpunkt angegeben werden.',0), +20003 => array('Scatterplots müssen die gleiche Anzahl von X- und Y-Datenpunkten haben.',0), + +/* +** jpgraph_stock +*/ + +21001 => array('Die Anzahl der Datenwerte für Stock-Charts müssen ein Mehrfaches von %d Datenpunkten sein.',1), + +/* +** jpgraph_plotmark +*/ + +23001 => array('Der Marker "%s" existiert nicht in der Farbe: %d',2), +23002 => array('Der Farb-Index ist zu hoch für den Marker "%s"',1), +23003 => array('Ein Dateiname muss angegeben werden, wenn Du den Marker-Typ auf MARK_IMG setzt.',0), + +/* +** jpgraph_utils +*/ + +24001 => array('FuncGenerator : Keine Funktion definiert. ',0), +24002 => array('FuncGenerator : Syntax-Fehler in der Funktionsdefinition ',0), +24003 => array('DateScaleUtils: Unknown tick type specified in call to GetTicks()',0), +24004 => array('ReadCSV2: Die anzahl der spalten fehler in %s reihe %d',2), +/* +** jpgraph +*/ + +25001 => array('Diese PHP-Installation ist nicht mit der GD-Bibliothek kompiliert. Bitte kompiliere PHP mit GD-Unterstützung neu, damit JpGraph funktioniert. (Weder die Funktion imagetypes() noch imagecreatefromstring() existiert!)',0), +25002 => array('Diese PHP-Installation scheint nicht die benötigte GD-Bibliothek zu unterstützen. Bitte schau in der PHP-Dokumentation nach, wie man die GD-Bibliothek installiert und aktiviert.',0), +25003 => array('Genereller PHP Fehler : Bei %s:%d : %s',3), +25004 => array('Genereller PHP Fehler : %s ',1), +25005 => array('PHP_SELF, die PHP-Global-Variable kann nicht ermittelt werden. PHP kann nicht von der Kommandozeile gestartet werden, wenn der Cache oder die Bilddateien automatisch benannt werden sollen.',0), +25006 => array('Die Benutzung der FF_CHINESE (FF_BIG5) Schriftfamilie benötigt die iconv() Funktion in Deiner PHP-Konfiguration. Dies wird nicht defaultmäßig in PHP kompiliert (benötigt "--width-iconv" bei der Konfiguration).',0), +25007 => array('Du versuchst das lokale (%s) zu verwenden, was von Deiner PHP-Installation nicht unterstützt wird. Hinweis: Benutze \'\', um das defaultmäßige Lokale für diese geographische Region festzulegen.',1), +25008 => array('Die Bild-Breite und Höhe in Graph::Graph() müssen numerisch sein',0), +25009 => array('Die Skalierung der Achsen muss angegeben werden mit Graph::SetScale()',0), + +25010 => array('Graph::Add() Du hast versucht, einen leeren Plot zum Graph hinzuzufügen.',0), +25011 => array('Graph::AddY2() Du hast versucht, einen leeren Plot zum Graph hinzuzufügen.',0), +25012 => array('Graph::AddYN() Du hast versucht, einen leeren Plot zum Graph hinzuzufügen.',0), +25013 => array('Es können nur Standard-Plots zu multiplen Y-Achsen hinzugefügt werden',0), +25014 => array('Graph::AddText() Du hast versucht, einen leeren Text zum Graph hinzuzufügen.',0), +25015 => array('Graph::AddLine() Du hast versucht, eine leere Linie zum Graph hinzuzufügen.',0), +25016 => array('Graph::AddBand() Du hast versucht, ein leeres Band zum Graph hinzuzufügen.',0), +25017 => array('Du benutzt GD 2.x und versuchst, ein Hintergrundbild in einem Truecolor-Bild zu verwenden. Um Hintergrundbilder mit GD 2.x zu verwenden, ist es notwendig, Truecolor zu aktivieren, indem die USE_TRUECOLOR-Konstante auf TRUE gesetzt wird. Wegen eines Bugs in GD 2.0.1 ist die Qualität der Schrift sehr schlecht, wenn Truetype-Schrift in Truecolor-Bildern verwendet werden.',0), +25018 => array('Falscher Dateiname für Graph::SetBackgroundImage() : "%s" muss eine gültige Dateinamenerweiterung (jpg,gif,png) haben, wenn die automatische Dateityperkennung verwenndet werden soll.',1), +25019 => array('Unbekannte Dateinamenerweiterung (%s) in Graph::SetBackgroundImage() für Dateiname: "%s"',2), + +25020 => array('Graph::SetScale(): Dar Maximalwert muss größer sein als der Mindestwert.',0), +25021 => array('Unbekannte Achsendefinition für die Y-Achse. (%s)',1), +25022 => array('Unbekannte Achsendefinition für die X-Achse. (%s)',1), +25023 => array('Nicht unterstützter Y2-Achsentyp: "%s" muss einer von (lin,log,int) sein.',1), +25024 => array('Nicht unterstützter X-Achsentyp: "%s" muss einer von (lin,log,int) sein.',1), +25025 => array('Nicht unterstützte Tick-Dichte: %d',1), +25026 => array('Nicht unterstützter Typ der nicht angegebenen Y-Achse. Du hast entweder: 1. einen Y-Achsentyp für automatisches Skalieren definiert, aber keine Plots angegeben. 2. eine Achse direkt definiert, aber vergessen, die Tick-Dichte zu festzulegen.',0), +25027 => array('Kann cached CSIM "%s" zum Lesen nicht öffnen.',1), +25028 => array('Apache/PHP hat keine Schreibrechte, in das CSIM-Cache-Verzeichnis (%s) zu schreiben. Überprüfe die Rechte.',1), +25029 => array('Kann nicht in das CSIM "%s" schreiben. Überprüfe die Schreibrechte und den freien Speicherplatz.',1), + +25030 => array('Fehlender Skriptname für StrokeCSIM(). Der Name des aktuellen Skriptes muss als erster Parameter von StrokeCSIM() angegeben werden.',0), +25031 => array('Der Achsentyp muss mittels Graph::SetScale() angegeben werden.',0), +25032 => array('Es existieren keine Plots für die Y-Achse nbr:%d',1), +25033 => array('',0), +25034 => array('Undefinierte X-Achse kann nicht gezeichnet werden. Es wurden keine Plots definiert.',0), +25035 => array('Du hast Clipping aktiviert. Clipping wird nur für Diagramme mit 0 oder 90 Grad Rotation unterstützt. Bitte verändere Deinen Rotationswinkel (=%d Grad) dementsprechend oder deaktiviere Clipping.',1), +25036 => array('Unbekannter Achsentyp AxisStyle() : %s',1), +25037 => array('Das Bildformat Deines Hintergrundbildes (%s) wird von Deiner System-Konfiguration nicht unterstützt. ',1), +25038 => array('Das Hintergrundbild scheint von einem anderen Typ (unterschiedliche Dateierweiterung) zu sein als der angegebene Typ. Angegebenen: %s; Datei: %s',2), +25039 => array('Hintergrundbild kann nicht gelesen werden: "%s"',1), + +25040 => array('Es ist nicht möglich, sowohl ein Hintergrundbild als auch eine Hintergrund-Landesflagge anzugeben.',0), +25041 => array('Um Landesflaggen als Hintergrund benutzen zu können, muss die Datei "jpgraph_flags.php" eingefügt werden (per include).',0), +25042 => array('Unbekanntes Hintergrundbild-Layout',0), +25043 => array('Unbekannter Titelhintergrund-Stil.',0), +25044 => array('Automatisches Skalieren kann nicht verwendet werden, weil es unmöglich ist, einen gültigen min/max Wert für die Y-Achse zu ermitteln (nur Null-Werte).',0), +25045 => array('Die Schriftfamilien FF_HANDWRT und FF_BOOK sind wegen Copyright-Problemen nicht mehr verfügbar. Diese Schriften können nicht mehr mit JpGraph verteilt werden. Bitte lade Dir Schriften von http://corefonts.sourceforge.net/ herunter.',0), +25046 => array('Angegebene TTF-Schriftfamilie (id=%d) ist unbekannt oder existiert nicht. Bitte merke Dir, dass TTF-Schriften wegen Copyright-Problemen nicht mit JpGraph mitgeliefert werden. Du findest MS-TTF-Internetschriften (arial, courier, etc.) zum Herunterladen unter http://corefonts.sourceforge.net/',1), +25047 => array('Stil %s ist nicht verfügbar für Schriftfamilie %s',2), +25048 => array('Unbekannte Schriftstildefinition [%s].',1), +25049 => array('Schriftdatei "%s" ist nicht lesbar oder existiert nicht.',1), + +25050 => array('Erstes Argument für Text::Text() muss ein String sein.',0), +25051 => array('Ungültige Richtung angegeben für Text.',0), +25052 => array('PANIK: Interner Fehler in SuperScript::Stroke(). Unbekannte vertikale Ausrichtung für Text.',0), +25053 => array('PANIK: Interner Fehler in SuperScript::Stroke(). Unbekannte horizontale Ausrichtung für Text.',0), +25054 => array('Interner Fehler: Unbekannte Grid-Achse %s',1), +25055 => array('Axis::SetTickDirection() sollte nicht mehr verwendet werden. Benutze stattdessen Axis::SetTickSide().',0), +25056 => array('SetTickLabelMargin() sollte nicht mehr verwendet werden. Benutze stattdessen Axis::SetLabelMargin().',0), +25057 => array('SetTextTicks() sollte nicht mehr verwendet werden. Benutze stattdessen SetTextTickInterval().',0), +25058 => array('TextLabelIntevall >= 1 muss angegeben werden.',0), +25059 => array('SetLabelPos() sollte nicht mehr verwendet werden. Benutze stattdessen Axis::SetLabelSide().',0), + +25060 => array('Unbekannte Ausrichtung angegeben für X-Achsentitel (%s).',1), +25061 => array('Unbekannte Ausrichtung angegeben für Y-Achsentitel (%s).',1), +25062 => array('Label unter einem Winkel werden für die Y-Achse nicht unterstützt.',0), +25063 => array('Ticks::SetPrecision() sollte nicht mehr verwendet werden. Benutze stattdessen Ticks::SetLabelFormat() (oder Ticks::SetFormatCallback()).',0), +25064 => array('Kleinere oder größere Schrittgröße ist 0. Überprüfe, ob Du fälschlicherweise SetTextTicks(0) in Deinem Skript hast. Wenn dies nicht der Fall ist, bist Du eventuell über einen Bug in JpGraph gestolpert. Bitte sende einen Report und füge den Code an, der den Fehler verursacht hat.',0), +25065 => array('Tick-Positionen müssen als array() angegeben werden',0), +25066 => array('Wenn die Tick-Positionen und -Label von Hand eingegeben werden, muss die Anzahl der Ticks und der Label gleich sein.',0), +25067 => array('Deine von Hand eingegebene Achse und Ticks sind nicht korrekt. Die Skala scheint zu klein zu sein für den Tickabstand.',0), +25068 => array('Ein Plot hat eine ungültige Achse. Dies kann beispielsweise der Fall sein, wenn Du automatisches Text-Skalieren verwendest, um ein Liniendiagramm zu zeichnen mit nur einem Datenpunkt, oder wenn die Bildfläche zu klein ist. Es kann auch der Fall sein, dass kein Datenpunkt einen numerischen Wert hat (vielleicht nur \'-\' oder \'x\').',0), +25069 => array('Grace muss größer sein als 0',0), + +25070 => array('Deine Daten enthalten nicht-numerische Werte.',0), +25071 => array('Du hast mit SetAutoMin() einen Mindestwert angegeben, der größer ist als der Maximalwert für die Achse. Dies ist nicht möglich.',0), +25072 => array('Du hast mit SetAutoMax() einen Maximalwert angegeben, der kleiner ist als der Minimalwert der Achse. Dies ist nicht möglich.',0), +25073 => array('Interner Fehler. Der Integer-Skalierungs-Algorithmus-Vergleich ist außerhalb der Grenzen (r=%f).',1), +25074 => array('Interner Fehler. Der Skalierungsbereich ist negativ (%f) [für %s Achse]. Dieses Problem könnte verursacht werden durch den Versuch, \'ungültige\' Werte in die Daten-Vektoren einzugeben (z.B. nur String- oder NULL-Werte), was beim automatischen Skalieren einen Fehler erzeugt.',2), +25075 => array('Die automatischen Ticks können nicht gesetzt werden, weil min==max.',0), +25077 => array('Einstellfaktor für die Farbe muss größer sein als 0',0), +25078 => array('Unbekannte Farbe: %s',1), +25079 => array('Unbekannte Farbdefinition: %s, Größe=%d',2), + +25080 => array('Der Alpha-Parameter für Farben muss zwischen 0.0 und 1.0 liegen.',0), +25081 => array('Das ausgewählte Grafikformat wird entweder nicht unterstützt oder ist unbekannt [%s]',1), +25082 => array('Es wurden ungültige Größen für Breite und Höhe beim Erstellen des Bildes definiert (Breite=%d, Höhe=%d).',2), +25083 => array('Es wurde eine ungültige Größe beim Kopieren des Bildes angegeben. Die Größe für das kopierte Bild wurde auf 1 Pixel oder weniger gesetzt.',0), +25084 => array('Fehler beim Erstellen eines temporären GD-Canvas. Möglicherweise liegt ein Arbeitsspeicherproblem vor.',0), +25085 => array('Ein Bild kann nicht aus dem angegebenen String erzeugt werden. Er ist entweder in einem nicht unterstützen Format oder er represäntiert ein kaputtes Bild.',0), +25086 => array('Du scheinst nur GD 1.x installiert zu haben. Um Alphablending zu aktivieren, ist GD 2.x oder höher notwendig. Bitte installiere GD 2.x oder versichere Dich, dass die Konstante USE_GD2 richtig gesetzt ist. Standardmäßig wird die installierte GD-Version automatisch erkannt. Ganz selten wird GD2 erkannt, obwohl nur GD1 installiert ist. Die Konstante USE_GD2 muss dann zu "false" gesetzt werden.',0), +25087 => array('Diese PHP-Version wurde ohne TTF-Unterstützung konfiguriert. PHP muss mit TTF-Unterstützung neu kompiliert und installiert werden.',0), +25088 => array('Die GD-Schriftunterstützung wurde falsch konfiguriert. Der Aufruf von imagefontwidth() ist fehlerhaft.',0), +25089 => array('Die GD-Schriftunterstützung wurde falsch konfiguriert. Der Aufruf von imagefontheight() ist fehlerhaft.',0), + +25090 => array('Unbekannte Richtung angegeben im Aufruf von StrokeBoxedText() [%s].',1), +25091 => array('Die interne Schrift untestützt das Schreiben von Text in einem beliebigen Winkel nicht. Benutze stattdessen TTF-Schriften.',0), +25092 => array('Es liegt entweder ein Konfigurationsproblem mit TrueType oder ein Problem beim Lesen der Schriftdatei "%s" vor. Versichere Dich, dass die Datei existiert und Leserechte und -pfad vergeben sind. (wenn \'basedir\' restriction in PHP aktiviert ist, muss die Schriftdatei im Dokumentwurzelverzeichnis abgelegt werden). Möglicherweise ist die FreeType-Bibliothek falsch installiert. Versuche, mindestens zur FreeType-Version 2.1.13 zu aktualisieren und kompiliere GD mit einem korrekten Setup neu, damit die FreeType-Bibliothek gefunden werden kann.',1), +25093 => array('Die Schriftdatei "%s" kann nicht gelesen werden beim Aufruf von Image::GetBBoxTTF. Bitte versichere Dich, dass die Schrift gesetzt wurde, bevor diese Methode aufgerufen wird, und dass die Schrift im TTF-Verzeichnis installiert ist.',1), +25094 => array('Die Textrichtung muss in einem Winkel zwischen 0 und 90 engegeben werden.',0), +25095 => array('Unbekannte Schriftfamilien-Definition. ',0), +25096 => array('Der Farbpalette können keine weiteren Farben zugewiesen werden. Dem Bild wurde bereits die größtmögliche Anzahl von Farben (%d) zugewiesen und die Palette ist voll. Verwende stattdessen ein TrueColor-Bild',0), +25097 => array('Eine Farbe wurde als leerer String im Aufruf von PushColor() angegegeben.',0), +25098 => array('Negativer Farbindex. Unpassender Aufruf von PopColor().',0), +25099 => array('Die Parameter für Helligkeit und Kontrast sind außerhalb des zulässigen Bereichs [-1,1]',0), + +25100 => array('Es liegt ein Problem mit der Farbpalette und dem GD-Setup vor. Bitte deaktiviere anti-aliasing oder verwende GD2 mit TrueColor. Wenn die GD2-Bibliothek installiert ist, versichere Dich, dass die Konstante USE_GD2 auf "true" gesetzt und TrueColor aktiviert ist.',0), +25101 => array('Ungültiges numerisches Argument für SetLineStyle(): (%d)',1), +25102 => array('Ungültiges String-Argument für SetLineStyle(): %s',1), +25103 => array('Ungültiges Argument für SetLineStyle %s',1), +25104 => array('Unbekannter Linientyp: %s',1), +25105 => array('Es wurden NULL-Daten für ein gefülltes Polygon angegeben. Sorge dafür, dass keine NULL-Daten angegeben werden.',0), +25106 => array('Image::FillToBorder : es können keine weiteren Farben zugewiesen werden.',0), +25107 => array('In Datei "%s" kann nicht geschrieben werden. Überprüfe die aktuellen Schreibrechte.',1), +25108 => array('Das Bild kann nicht gestreamt werden. Möglicherweise liegt ein Fehler im PHP/GD-Setup vor. Kompiliere PHP neu und verwende die eingebaute GD-Bibliothek, die mit PHP angeboten wird.',0), +25109 => array('Deine PHP- (und GD-lib-) Installation scheint keine bekannten Grafikformate zu unterstützen. Sorge zunächst dafür, dass GD als PHP-Modul kompiliert ist. Wenn Du außerdem JPEG-Bilder verwenden willst, musst Du die JPEG-Bibliothek installieren. Weitere Details sind in der PHP-Dokumentation zu finden.',0), + +25110 => array('Dein PHP-Installation unterstützt das gewählte Grafikformat nicht: %s',1), +25111 => array('Das gecachete Bild %s kann nicht gelöscht werden. Problem mit den Rechten?',1), +25112 => array('Das Datum der gecacheten Datei (%s) liegt in der Zukunft.',1), +25113 => array('Das gecachete Bild %s kann nicht gelöscht werden. Problem mit den Rechten?',1), +25114 => array('PHP hat nicht die erforderlichen Rechte, um in die Cache-Datei %s zu schreiben. Bitte versichere Dich, dass der Benutzer, der PHP anwendet, die entsprechenden Schreibrechte für die Datei hat, wenn Du das Cache-System in JPGraph verwenden willst.',1), +25115 => array('Berechtigung für gecachetes Bild %s kann nicht gesetzt werden. Problem mit den Rechten?',1), +25116 => array('Datei kann nicht aus dem Cache %s geöffnet werden',1), +25117 => array('Gecachetes Bild %s kann nicht zum Lesen geöffnet werden.',1), +25118 => array('Verzeichnis %s kann nicht angelegt werden. Versichere Dich, dass PHP die Schreibrechte in diesem Verzeichnis hat.',1), +25119 => array('Rechte für Datei %s können nicht gesetzt werden. Problem mit den Rechten?',1), + +25120 => array('Die Position für die Legende muss als Prozentwert im Bereich 0-1 angegeben werden.',0), +25121 => array('Eine leerer Datenvektor wurde für den Plot eingegeben. Es muss wenigstens ein Datenpunkt vorliegen.',0), +25122 => array('Stroke() muss als Subklasse der Klasse Plot definiert sein.',0), +25123 => array('Du kannst keine Text-X-Achse mit X-Koordinaten verwenden. Benutze stattdessen eine "int" oder "lin" Achse.',0), +25124 => array('Der Eingabedatenvektor mus aufeinanderfolgende Werte von 0 aufwärts beinhalten. Der angegebene Y-Vektor beginnt mit leeren Werten (NULL).',0), +25125 => array('Ungültige Richtung für statische Linie.',0), +25126 => array('Es kann kein TrueColor-Bild erzeugt werden. Überprüfe, ob die GD2-Bibliothek und PHP korrekt aufgesetzt wurden.',0), +25127 => array('The library has been configured for automatic encoding conversion of Japanese fonts. This requires that PHP has the mb_convert_encoding() function. Your PHP installation lacks this function (PHP needs the "--enable-mbstring" when compiled).',0), +25128 => array('The function imageantialias() is not available in your PHP installation. Use the GD version that comes with PHP and not the standalone version.',0), +25129 => array('Anti-alias can not be used with dashed lines. Please disable anti-alias or use solid lines.',0), +25130 => array('Too small plot area. (%d x %d). With the given image size and margins there is to little space left for the plot. Increase the plot size or reduce the margins.',2), + +25131 => array('StrokeBoxedText2() only supports TTF fonts and not built-in bitmap fonts.',0), + +/* +** jpgraph_led +*/ + +25500 => array('Multibyte strings must be enabled in the PHP installation in order to run the LED module so that the function mb_strlen() is available. See PHP documentation for more information.',0), + + +/* +**--------------------------------------------------------------------------------------------- +** Pro-version strings +**--------------------------------------------------------------------------------------------- +*/ + +/* +** jpgraph_table +*/ + +27001 => array('GTextTable: Ungültiges Argument für Set(). Das Array-Argument muss 2-- dimensional sein.',0), +27002 => array('GTextTable: Ungültiges Argument für Set()',0), +27003 => array('GTextTable: Falsche Anzahl von Argumenten für GTextTable::SetColor()',0), +27004 => array('GTextTable: Angegebener Zellenbereich, der verschmolzen werden soll, ist ungültig.',0), +27005 => array('GTextTable: Bereits verschmolzene Zellen im Bereich (%d,%d) bis (%d,%d) können nicht ein weiteres Mal verschmolzen werden.',4), +27006 => array('GTextTable: Spalten-Argument = %d liegt außerhalb der festgelegten Tabellengröße.',1), +27007 => array('GTextTable: Zeilen-Argument = %d liegt außerhalb der festgelegten Tabellengröße.',1), +27008 => array('GTextTable: Spalten- und Zeilengröße müssen zu den Dimensionen der Tabelle passen.',0), +27009 => array('GTextTable: Die Anzahl der Tabellenspalten oder -zeilen ist 0. Versichere Dich, dass die Methoden Init() oder Set() aufgerufen werden.',0), +27010 => array('GTextTable: Es wurde keine Ausrichtung beim Aufruf von SetAlign() angegeben.',0), +27011 => array('GTextTable: Es wurde eine unbekannte Ausrichtung beim Aufruf von SetAlign() abgegeben. Horizontal=%s, Vertikal=%s',2), +27012 => array('GTextTable: Interner Fehler. Es wurde ein ungültiges Argument festgeleget %s',1), +27013 => array('GTextTable: Das Argument für FormatNumber() muss ein String sein.',0), +27014 => array('GTextTable: Die Tabelle wurde weder mit einem Aufruf von Set() noch von Init() initialisiert.',0), +27015 => array('GTextTable: Der Zellenbildbedingungstyp muss entweder TIMG_WIDTH oder TIMG_HEIGHT sein.',0), + +/* +** jpgraph_windrose +*/ + +22001 => array('Die Gesamtsumme der prozentualen Anteile aller Windrosenarme darf 100%% nicht überschreiten!\n(Aktuell max: %d)',1), +22002 => array('Das Bild ist zu klein für eine Skala. Bitte vergrößere das Bild.',0), +22004 => array('Die Etikettendefinition für Windrosenrichtungen müssen 16 Werte haben (eine für jede Kompassrichtung).',0), +22005 => array('Der Linientyp für radiale Linien muss einer von ("solid","dotted","dashed","longdashed") sein.',0), +22006 => array('Es wurde ein ungültiger Windrosentyp angegeben.',0), +22007 => array('Es wurden zu wenig Werte für die Bereichslegende angegeben.',0), +22008 => array('Interner Fehler: Versuch, eine freie Windrose zu plotten, obwohl der Typ keine freie Windrose ist.',0), +22009 => array('Du hast die gleiche Richtung zweimal angegeben, einmal mit einem Winkel und einmal mit einer Kompassrichtung (%f Grad).',0), +22010 => array('Die Richtung muss entweder ein numerischer Wert sein oder eine der 16 Kompassrichtungen',0), +22011 => array('Der Windrosenindex muss ein numerischer oder Richtungswert sein. Du hast angegeben Index=%d',1), +22012 => array('Die radiale Achsendefinition für die Windrose enthält eine nicht aktivierte Richtung.',0), +22013 => array('Du hast dasselbe Look&Feel für die gleiche Kompassrichtung zweimal engegeben, einmal mit Text und einmal mit einem Index (Index=%d)',1), +22014 => array('Der Index für eine Kompassrichtung muss zwischen 0 und 15 sein.',0), +22015 => array('Du hast einen unbekannten Windrosenplottyp angegeben.',0), +22016 => array('Der Windrosenarmindex muss ein numerischer oder ein Richtungswert sein.',0), +22017 => array('Die Windrosendaten enthalten eine Richtung, die nicht aktiviert ist. Bitte berichtige, welche Label angezeigt werden sollen.',0), +22018 => array('Du hast für dieselbe Kompassrichtung zweimal Daten angegeben, einmal mit Text und einmal mit einem Index (Index=%d)',1), +22019 => array('Der Index für eine Richtung muss zwischen 0 und 15 sein. Winkel dürfen nicht für einen regelmäßigen Windplot angegeben werden, sondern entweder ein Index oder eine Kompassrichtung.',0), +22020 => array('Der Windrosenplot ist zu groß für die angegebene Bildgröße. Benutze entweder WindrosePlot::SetSize(), um den Plot kleiner zu machen oder vergrößere das Bild im ursprünglichen Aufruf von WindroseGraph().',0), +22021 => array('It is only possible to add Text, IconPlot or WindrosePlot to a Windrose Graph',0), + +/* +** jpgraph_odometer +*/ + +13001 => array('Unbekannter Nadeltypstil (%d).',1), +13002 => array('Ein Wert für das Odometer (%f) ist außerhalb des angegebenen Bereichs [%f,%f]',3), + +/* +** jpgraph_barcode +*/ + +1001 => array('Unbekannte Kodier-Specifikation: %s',1), +1002 => array('datenvalidierung schlug fehl. [%s] kann nicht mittels der Kodierung "%s" kodiert werden',2), +1003 => array('Interner Kodierfehler. Kodieren von %s ist nicht möglich in Code 128',1), +1004 => array('Interner barcode Fehler. Unbekannter UPC-E Kodiertyp: %s',1), +1005 => array('Interner Fehler. Das Textzeichen-Tupel (%s, %s) kann nicht im Code-128 Zeichensatz C kodiert werden.',2), +1006 => array('Interner Kodierfehler für CODE 128. Es wurde versucht, CTRL in CHARSET != A zu kodieren.',0), +1007 => array('Interner Kodierfehler für CODE 128. Es wurde versucht, DEL in CHARSET != B zu kodieren.',0), +1008 => array('Interner Kodierfehler für CODE 128. Es wurde versucht, kleine Buchstaben in CHARSET != B zu kodieren.',0), +1009 => array('Kodieren mittels CODE 93 wird noch nicht unterstützt.',0), +1010 => array('Kodieren mittels POSTNET wird noch nicht unterstützt.',0), +1011 => array('Nicht untrstütztes Barcode-Backend für den Typ %s',1), + +/* +** PDF417 +*/ + +26000 => array('PDF417: The PDF417 module requires that the PHP installation must support the function bcmod(). This is normally enabled at compile time. See documentation for more information.',0), +26001 => array('PDF417: Die Anzahl der Spalten muss zwischen 1 und 30 sein.',0), +26002 => array('PDF417: Der Fehler-Level muss zwischen 0 und 8 sein.',0), +26003 => array('PDF417: Ungültiges Format für Eingabedaten, um sie mit PDF417 zu kodieren.',0), +26004 => array('PDF417: die eigebenen Daten können nicht mit Fehler-Level %d und %d spalten kodiert werden, weil daraus zu viele Symbole oder mehr als 90 Zeilen resultieren.',2), +26005 => array('PDF417: Die Datei "%s" kann nicht zum Schreiben geöffnet werden.',1), +26006 => array('PDF417: Interner Fehler. Die Eingabedatendatei für PDF417-Cluster %d ist fehlerhaft.',1), +26007 => array('PDF417: Interner Fehler. GetPattern: Ungültiger Code-Wert %d (Zeile %d)',2), +26008 => array('PDF417: Interner Fehler. Modus wurde nicht in der Modusliste!! Modus %d',1), +26009 => array('PDF417: Kodierfehler: Ungültiges Zeichen. Zeichen kann nicht mit ASCII-Code %d kodiert werden.',1), +26010 => array('PDF417: Interner Fehler: Keine Eingabedaten beim Dekodieren.',0), +26011 => array('PDF417: Kodierfehler. Numerisches Kodieren bei nicht-numerischen Daten nicht möglich.',0), +26012 => array('PDF417: Interner Fehler. Es wurden für den Binary-Kompressor keine Daten zum Dekodieren eingegeben.',0), +26013 => array('PDF417: Interner Fehler. Checksum Fehler. Koeffiziententabellen sind fehlerhaft.',0), +26014 => array('PDF417: Interner Fehler. Es wurden keine Daten zum Berechnen von Kodewörtern eingegeben.',0), +26015 => array('PDF417: Interner Fehler. Ein Eintrag 0 in die Statusübertragungstabellen ist nicht NULL. Eintrag 1 = (%s)',1), +26016 => array('PDF417: Interner Fehler: Nichtregistrierter Statusübertragungsmodus beim Dekodieren.',0), + + +/* +** jpgraph_contour +*/ + +28001 => array('Dritten parameter fur Contour muss ein vector der fargen sind.',0), +28002 => array('Die anzahlen der farges jeder isobar linien muss gleich sein.',0), +28003 => array('ContourPlot Interner Fehler: isobarHCrossing: Spalten index ist zu hoch (%d)',1), +28004 => array('ContourPlot Interner Fehler: isobarHCrossing: Reihe index ist zu hoch (%d)',1), +28005 => array('ContourPlot Interner Fehler: isobarVCrossing: Reihe index ist zu hoch (%d)',1), +28006 => array('ContourPlot Interner Fehler: isobarVCrossing: Spalten index ist zu hoch (%d)',1), +28007 => array('ContourPlot. Interpolation faktor ist zu hoch (>5)',0), + + +/* + * jpgraph_matrix and colormap +*/ +29201 => array('Min range value must be less or equal to max range value for colormaps',0), +29202 => array('The distance between min and max value is too small for numerical precision',0), +29203 => array('Number of color quantification level must be at least %d',1), +29204 => array('Number of colors (%d) is invalid for this colormap. It must be a number that can be written as: %d + k*%d',3), +29205 => array('Colormap specification out of range. Must be an integer in range [0,%d]',1), +29206 => array('Invalid object added to MatrixGraph',0), +29207 => array('Empty input data specified for MatrixPlot',0), +29208 => array('Unknown side specifiction for matrix labels "%s"',1), +29209 => array('CSIM Target matrix must be the same size as the data matrix (csim=%d x %d, data=%d x %d)',4), +29210 => array('CSIM Target for matrix labels does not match the number of labels (csim=%d, labels=%d)',2), + +); + +?> diff --git a/gosa-core/include/jpgraph/lang/en.inc.php b/gosa-core/include/jpgraph/lang/en.inc.php new file mode 100644 index 000000000..3d0961dc3 --- /dev/null +++ b/gosa-core/include/jpgraph/lang/en.inc.php @@ -0,0 +1,536 @@ +,) +$_jpg_messages = array( + +/* +** Headers already sent error. This is formatted as HTML different since this will be sent back directly as text +*/ +10 => array('
    JpGraph Error: +HTTP headers have already been sent.
    Caused by output from file %s at line %d.
    Explanation:
    HTTP headers have already been sent back to the browser indicating the data as text before the library got a chance to send it\'s image HTTP header to this browser. This makes it impossible for the library to send back image data to the browser (since that would be interpretated as text by the browser and show up as junk text).

    Most likely you have some text in your script before the call to Graph::Stroke(). If this texts gets sent back to the browser the browser will assume that all data is plain text. Look for any text, even spaces and newlines, that might have been sent back to the browser.

    For example it is a common mistake to leave a blank line before the opening "<?php".

    ',2), + +/* +** Setup errors +*/ +11 => array('No path specified for CACHE_DIR. Please specify CACHE_DIR manually in jpg-config.inc',0), +12 => array('No path specified for TTF_DIR and path can not be determined automatically. Please specify TTF_DIR manually (in jpg-config.inc).',0), +13 => array('The installed PHP version (%s) is not compatible with this release of the library. The library requires at least PHP version %s',2), + + +/* +** jpgraph_bar +*/ + +2001 => array('Number of colors is not the same as the number of patterns in BarPlot::SetPattern()',0), +2002 => array('Unknown pattern specified in call to BarPlot::SetPattern()',0), +2003 => array('Number of X and Y points are not equal. Number of X-points: %d Number of Y-points: %d',2), +2004 => array('All values for a barplot must be numeric. You have specified value nr [%d] == %s',2), +2005 => array('You have specified an empty array for shadow colors in the bar plot.',0), +2006 => array('Unknown position for values on bars : %s',1), +2007 => array('Cannot create GroupBarPlot from empty plot array.',0), +2008 => array('Group bar plot element nbr %d is undefined or empty.',0), +2009 => array('One of the objects submitted to GroupBar is not a BarPlot. Make sure that you create the GroupBar plot from an array of BarPlot or AccBarPlot objects. (Class = %s)',1), +2010 => array('Cannot create AccBarPlot from empty plot array.',0), +2011 => array('Acc bar plot element nbr %d is undefined or empty.',1), +2012 => array('One of the objects submitted to AccBar is not a BarPlot. Make sure that you create the AccBar plot from an array of BarPlot objects. (Class=%s)',1), +2013 => array('You have specified an empty array for shadow colors in the bar plot.',0), +2014 => array('Number of datapoints for each data set in accbarplot must be the same',0), +2015 => array('Individual bar plots in an AccBarPlot or GroupBarPlot can not have specified X-coordinates',0), + + +/* +** jpgraph_date +*/ + +3001 => array('It is only possible to use either SetDateAlign() or SetTimeAlign() but not both',0), + +/* +** jpgraph_error +*/ + +4002 => array('Error in input data to LineErrorPlot. Number of data points must be a multiple of 3',0), + +/* +** jpgraph_flags +*/ + +5001 => array('Unknown flag size (%d).',1), +5002 => array('Flag index %s does not exist.',1), +5003 => array('Invalid ordinal number (%d) specified for flag index.',1), +5004 => array('The (partial) country name %s does not have a corresponding flag image. The flag may still exist but under another name, e.g. instead of "usa" try "united states".',1), + + +/* +** jpgraph_gantt +*/ + +6001 => array('Internal error. Height for ActivityTitles is < 0',0), +6002 => array('You can\'t specify negative sizes for Gantt graph dimensions. Use 0 to indicate that you want the library to automatically determine a dimension.',0), +6003 => array('Invalid format for Constrain parameter at index=%d in CreateSimple(). Parameter must start with index 0 and contain arrays of (Row,Constrain-To,Constrain-Type)',1), +6004 => array('Invalid format for Progress parameter at index=%d in CreateSimple(). Parameter must start with index 0 and contain arrays of (Row,Progress)',1), +6005 => array('SetScale() is not meaningful with Gantt charts.',0), +6006 => array('Cannot autoscale Gantt chart. No dated activities exist. [GetBarMinMax() start >= n]',0), +6007 => array('Sanity check for automatic Gantt chart size failed. Either the width (=%d) or height (=%d) is larger than MAX_GANTTIMG_SIZE. This could potentially be caused by a wrong date in one of the activities.',2), +6008 => array('You have specified a constrain from row=%d to row=%d which does not have any activity',2), +6009 => array('Unknown constrain type specified from row=%d to row=%d',2), +6010 => array('Illegal icon index for Gantt builtin icon [%d]',1), +6011 => array('Argument to IconImage must be string or integer',0), +6012 => array('Unknown type in Gantt object title specification',0), +6015 => array('Illegal vertical position %d',1), +6016 => array('Date string (%s) specified for Gantt activity can not be interpretated. Please make sure it is a valid time string, e.g. 2005-04-23 13:30',1), +6017 => array('Unknown date format in GanttScale (%s).',1), +6018 => array('Interval for minutes must divide the hour evenly, e.g. 1,5,10,12,15,20,30 etc You have specified an interval of %d minutes.',1), +6019 => array('The available width (%d) for minutes are to small for this scale to be displayed. Please use auto-sizing or increase the width of the graph.',1), +6020 => array('Interval for hours must divide the day evenly, e.g. 0:30, 1:00, 1:30, 4:00 etc. You have specified an interval of %d',1), +6021 => array('Unknown formatting style for week.',0), +6022 => array('Gantt scale has not been specified.',0), +6023 => array('If you display both hour and minutes the hour interval must be 1 (Otherwise it doesn\'t make sense to display minutes).',0), +6024 => array('CSIM Target must be specified as a string. Start of target is: %d',1), +6025 => array('CSIM Alt text must be specified as a string. Start of alt text is: %d',1), +6027 => array('Progress value must in range [0, 1]',0), +6028 => array('Specified height (%d) for gantt bar is out of range.',1), +6029 => array('Offset for vertical line must be in range [0,1]',0), +6030 => array('Unknown arrow direction for link.',0), +6031 => array('Unknown arrow type for link.',0), +6032 => array('Internal error: Unknown path type (=%d) specified for link.',1), +6033 => array('Array of fonts must contain arrays with 3 elements, i.e. (Family, Style, Size)',0), + +/* +** jpgraph_gradient +*/ + +7001 => array('Unknown gradient style (=%d).',1), + +/* +** jpgraph_iconplot +*/ + +8001 => array('Mix value for icon must be between 0 and 100.',0), +8002 => array('Anchor position for icons must be one of "top", "bottom", "left", "right" or "center"',0), +8003 => array('It is not possible to specify both an image file and a country flag for the same icon.',0), +8004 => array('In order to use Country flags as icons you must include the "jpgraph_flags.php" file.',0), + +/* +** jpgraph_imgtrans +*/ + +9001 => array('Value for image transformation out of bounds. Vanishing point on horizon must be specified as a value between 0 and 1.',0), + +/* +** jpgraph_lineplot +*/ + +10001 => array('LinePlot::SetFilled() is deprecated. Use SetFillColor()',0), +10002 => array('Plot too complicated for fast line Stroke. Use standard Stroke()',0), +10003 => array('Each plot in an accumulated lineplot must have the same number of data points.',0), + +/* +** jpgraph_log +*/ + +11001 => array('Your data contains non-numeric values.',0), +11002 => array('Negative data values can not be used in a log scale.',0), +11003 => array('Your data contains non-numeric values.',0), +11004 => array('Scale error for logarithmic scale. You have a problem with your data values. The max value must be greater than 0. It is mathematically impossible to have 0 in a logarithmic scale.',0), +11005 => array('Specifying tick interval for a logarithmic scale is undefined. Remove any calls to SetTextLabelStart() or SetTextTickInterval() on the logarithmic scale.',0), + +/* +** jpgraph_mgraph +*/ + +12001 => array("You are using GD 2.x and are trying to use a background images on a non truecolor image. To use background images with GD 2.x it is necessary to enable truecolor by setting the USE_TRUECOLOR constant to TRUE. Due to a bug in GD 2.0.1 using any truetype fonts with truecolor images will result in very poor quality fonts.",0), +12002 => array('Incorrect file name for MGraph::SetBackgroundImage() : %s Must have a valid image extension (jpg,gif,png) when using auto detection of image type',1), +12003 => array('Unknown file extension (%s) in MGraph::SetBackgroundImage() for filename: %s',2), +12004 => array('The image format of your background image (%s) is not supported in your system configuration. ',1), +12005 => array('Can\'t read background image: %s',1), +12006 => array('Illegal sizes specified for width or height when creating an image, (width=%d, height=%d)',2), +12007 => array('Argument to MGraph::Add() is not a valid GD image handle.',0), +12008 => array('Your PHP (and GD-lib) installation does not appear to support any known graphic formats.',0), +12009 => array('Your PHP installation does not support the chosen graphic format: %s',1), +12010 => array('Can\'t create or stream image to file %s Check that PHP has enough permission to write a file to the current directory.',1), +12011 => array('Can\'t create truecolor image. Check that you really have GD2 library installed.',0), +12012 => array('Can\'t create image. Check that you really have GD2 library installed.',0), + +/* +** jpgraph_pie3d +*/ + +14001 => array('Pie3D::ShowBorder() . Deprecated function. Use Pie3D::SetEdge() to control the edges around slices.',0), +14002 => array('PiePlot3D::SetAngle() 3D Pie projection angle must be between 5 and 85 degrees.',0), +14003 => array('Internal assertion failed. Pie3D::Pie3DSlice',0), +14004 => array('Slice start angle must be between 0 and 360 degrees.',0), +14005 => array('Pie3D Internal error: Trying to wrap twice when looking for start index',0,), +14006 => array('Pie3D Internal Error: Z-Sorting algorithm for 3D Pies is not working properly (2). Trying to wrap twice while stroking.',0), +14007 => array('Width for 3D Pie is 0. Specify a size > 0',0), + +/* +** jpgraph_pie +*/ + +15001 => array('PiePLot::SetTheme() Unknown theme: %s',1), +15002 => array('Argument to PiePlot::ExplodeSlice() must be an integer',0), +15003 => array('Argument to PiePlot::Explode() must be an array with integer distances.',0), +15004 => array('Slice start angle must be between 0 and 360 degrees.',0), +15005 => array('PiePlot::SetFont() is deprecated. Use PiePlot->value->SetFont() instead.',0), +15006 => array('PiePlot::SetSize() Radius for pie must either be specified as a fraction [0, 0.5] of the size of the image or as an absolute size in pixels in the range [10, 1000]',0), +15007 => array('PiePlot::SetFontColor() is deprecated. Use PiePlot->value->SetColor() instead.',0), +15008 => array('PiePlot::SetLabelType() Type for pie plots must be 0 or 1 (not %d).',1), +15009 => array('Illegal pie plot. Sum of all data is zero for Pie Plot',0), +15010 => array('Sum of all data is 0 for Pie.',0), +15011 => array('In order to use image transformation you must include the file jpgraph_imgtrans.php in your script.',0), + +/* +** jpgraph_plotband +*/ + +16001 => array('Density for pattern must be between 1 and 100. (You tried %f)',1), +16002 => array('No positions specified for pattern.',0), +16003 => array('Unknown pattern specification (%d)',0), +16004 => array('Min value for plotband is larger than specified max value. Please correct.',0), + + +/* +** jpgraph_polar +*/ + +17001 => array('Polar plots must have an even number of data point. Each data point is a tuple (angle,radius).',0), +17002 => array('Unknown alignment specified for X-axis title. (%s)',1), +//17003 => array('Set90AndMargin() is not supported for polar graphs.',0), +17004 => array('Unknown scale type for polar graph. Must be "lin" or "log"',0), + +/* +** jpgraph_radar +*/ + +18001 => array('Client side image maps not supported for RadarPlots.',0), +18002 => array('RadarGraph::SupressTickMarks() is deprecated. Use HideTickMarks() instead.',0), +18003 => array('Illegal scale for radarplot (%s). Must be \'lin\' or \'log\'',1), +18004 => array('Radar Plot size must be between 0.1 and 1. (Your value=%f)',1), +18005 => array('RadarPlot Unsupported Tick density: %d',1), +18006 => array('Minimum data %f (Radar plots should only be used when all data points > 0)',1), +18007 => array('Number of titles does not match number of points in plot.',0), +18008 => array('Each radar plot must have the same number of data points.',0), + +/* +** jpgraph_regstat +*/ + +19001 => array('Spline: Number of X and Y coordinates must be the same',0), +19002 => array('Invalid input data for spline. Two or more consecutive input X-values are equal. Each input X-value must differ since from a mathematical point of view it must be a one-to-one mapping, i.e. each X-value must correspond to exactly one Y-value.',0), +19003 => array('Bezier: Number of X and Y coordinates must be the same',0), + +/* +** jpgraph_scatter +*/ + +20001 => array('Fieldplots must have equal number of X and Y points.',0), +20002 => array('Fieldplots must have an angle specified for each X and Y points.',0), +20003 => array('Scatterplot must have equal number of X and Y points.',0), + +/* +** jpgraph_stock +*/ + +21001 => array('Data values for Stock charts must contain an even multiple of %d data points.',1), + +/* +** jpgraph_plotmark +*/ + +23001 => array('This marker "%s" does not exist in color with index: %d',2), +23002 => array('Mark color index too large for marker "%s"',1), +23003 => array('A filename must be specified if you set the mark type to MARK_IMG.',0), + +/* +** jpgraph_utils +*/ + +24001 => array('FuncGenerator : No function specified. ',0), +24002 => array('FuncGenerator : Syntax error in function specification ',0), +24003 => array('DateScaleUtils: Unknown tick type specified in call to GetTicks()',0), +24004 => array('ReadCSV2: Column count mismatch in %s line %d',2), +/* +** jpgraph +*/ + +25001 => array('This PHP installation is not configured with the GD library. Please recompile PHP with GD support to run JpGraph. (Neither function imagetypes() nor imagecreatefromstring() does exist)',0), +25002 => array('Your PHP installation does not seem to have the required GD library. Please see the PHP documentation on how to install and enable the GD library.',0), +25003 => array('General PHP error : At %s:%d : %s',3), +25004 => array('General PHP error : %s ',1), +25005 => array('Can\'t access PHP_SELF, PHP global variable. You can\'t run PHP from command line if you want to use the \'auto\' naming of cache or image files.',0), +25006 => array('Usage of FF_CHINESE (FF_BIG5) font family requires that your PHP setup has the iconv() function. By default this is not compiled into PHP (needs the "--width-iconv" when configured).',0), +25007 => array('You are trying to use the locale (%s) which your PHP installation does not support. Hint: Use \'\' to indicate the default locale for this geographic region.',1), +25008 => array('Image width/height argument in Graph::Graph() must be numeric',0), +25009 => array('You must specify what scale to use with a call to Graph::SetScale()',0), + +25010 => array('Graph::Add() You tried to add a null plot to the graph.',0), +25011 => array('Graph::AddY2() You tried to add a null plot to the graph.',0), +25012 => array('Graph::AddYN() You tried to add a null plot to the graph.',0), +25013 => array('You can only add standard plots to multiple Y-axis',0), +25014 => array('Graph::AddText() You tried to add a null text to the graph.',0), +25015 => array('Graph::AddLine() You tried to add a null line to the graph.',0), +25016 => array('Graph::AddBand() You tried to add a null band to the graph.',0), +25017 => array('You are using GD 2.x and are trying to use a background images on a non truecolor image. To use background images with GD 2.x it is necessary to enable truecolor by setting the USE_TRUECOLOR constant to TRUE. Due to a bug in GD 2.0.1 using any truetype fonts with truecolor images will result in very poor quality fonts.',0), +25018 => array('Incorrect file name for Graph::SetBackgroundImage() : "%s" Must have a valid image extension (jpg,gif,png) when using auto detection of image type',1), +25019 => array('Unknown file extension (%s) in Graph::SetBackgroundImage() for filename: "%s"',2), + +25020 => array('Graph::SetScale(): Specified Max value must be larger than the specified Min value.',0), +25021 => array('Unknown scale specification for Y-scale. (%s)',1), +25022 => array('Unknown scale specification for X-scale. (%s)',1), +25023 => array('Unsupported Y2 axis type: "%s" Must be one of (lin,log,int)',1), +25024 => array('Unsupported Y axis type: "%s" Must be one of (lin,log,int)',1), +25025 => array('Unsupported Tick density: %d',1), +25026 => array('Can\'t draw unspecified Y-scale. You have either: 1. Specified an Y axis for auto scaling but have not supplied any plots. 2. Specified a scale manually but have forgot to specify the tick steps',0), +25027 => array('Can\'t open cached CSIM "%s" for reading.',1), +25028 => array('Apache/PHP does not have permission to write to the CSIM cache directory (%s). Check permissions.',1), +25029 => array('Can\'t write CSIM "%s" for writing. Check free space and permissions.',1), + +25030 => array('Missing script name in call to StrokeCSIM(). You must specify the name of the actual image script as the first parameter to StrokeCSIM().',0), +25031 => array('You must specify what scale to use with a call to Graph::SetScale().',0), +25032 => array('No plots for Y-axis nbr:%d',1), +25033 => array('',0), +25034 => array('Can\'t draw unspecified X-scale. No plots specified.',0), +25035 => array('You have enabled clipping. Clipping is only supported for graphs at 0 or 90 degrees rotation. Please adjust you current angle (=%d degrees) or disable clipping.',1), +25036 => array('Unknown AxisStyle() : %s',1), +25037 => array('The image format of your background image (%s) is not supported in your system configuration. ',1), +25038 => array('Background image seems to be of different type (has different file extension) than specified imagetype. Specified: %s File: %s',2), +25039 => array('Can\'t read background image: "%s"',1), + +25040 => array('It is not possible to specify both a background image and a background country flag.',0), +25041 => array('In order to use Country flags as backgrounds you must include the "jpgraph_flags.php" file.',0), +25042 => array('Unknown background image layout',0), +25043 => array('Unknown title background style.',0), +25044 => array('Cannot use auto scaling since it is impossible to determine a valid min/max value of the Y-axis (only null values).',0), +25045 => array('Font families FF_HANDWRT and FF_BOOK are no longer available due to copyright problem with these fonts. Fonts can no longer be distributed with JpGraph. Please download fonts from http://corefonts.sourceforge.net/',0), +25046 => array('Specified TTF font family (id=%d) is unknown or does not exist. Please note that TTF fonts are not distributed with JpGraph for copyright reasons. You can find the MS TTF WEB-fonts (arial, courier etc) for download at http://corefonts.sourceforge.net/',1), +25047 => array('Style %s is not available for font family %s',2), +25048 => array('Unknown font style specification [%s].',1), +25049 => array('Font file "%s" is not readable or does not exist.',1), + +25050 => array('First argument to Text::Text() must be a string.',0), +25051 => array('Invalid direction specified for text.',0), +25052 => array('PANIC: Internal error in SuperScript::Stroke(). Unknown vertical alignment for text',0), +25053 => array('PANIC: Internal error in SuperScript::Stroke(). Unknown horizontal alignment for text',0), +25054 => array('Internal error: Unknown grid axis %s',1), +25055 => array('Axis::SetTickDirection() is deprecated. Use Axis::SetTickSide() instead',0), +25056 => array('SetTickLabelMargin() is deprecated. Use Axis::SetLabelMargin() instead.',0), +25057 => array('SetTextTicks() is deprecated. Use SetTextTickInterval() instead.',0), +25058 => array('Text label interval must be specified >= 1.',0), +25059 => array('SetLabelPos() is deprecated. Use Axis::SetLabelSide() instead.',0), + +25060 => array('Unknown alignment specified for X-axis title. (%s)',1), +25061 => array('Unknown alignment specified for Y-axis title. (%s)',1), +25062 => array('Labels at an angle are not supported on Y-axis',0), +25063 => array('Ticks::SetPrecision() is deprecated. Use Ticks::SetLabelFormat() (or Ticks::SetFormatCallback()) instead',0), +25064 => array('Minor or major step size is 0. Check that you haven\'t got an accidental SetTextTicks(0) in your code. If this is not the case you might have stumbled upon a bug in JpGraph. Please report this and if possible include the data that caused the problem',0), +25065 => array('Tick positions must be specified as an array()',0), +25066 => array('When manually specifying tick positions and labels the number of labels must be the same as the number of specified ticks.',0), +25067 => array('Your manually specified scale and ticks is not correct. The scale seems to be too small to hold any of the specified tick marks.',0), +25068 => array('A plot has an illegal scale. This could for example be that you are trying to use text auto scaling to draw a line plot with only one point or that the plot area is too small. It could also be that no input data value is numeric (perhaps only \'-\' or \'x\')',0), +25069 => array('Grace must be larger then 0',0), +25070 => array('Either X or Y data arrays contains non-numeric values. Check that the data is really specified as numeric data and not as strings. It is an error to specify data for example as \'-2345.2\' (using quotes).',0), +25071 => array('You have specified a min value with SetAutoMin() which is larger than the maximum value used for the scale. This is not possible.',0), +25072 => array('You have specified a max value with SetAutoMax() which is smaller than the minimum value used for the scale. This is not possible.',0), +25073 => array('Internal error. Integer scale algorithm comparison out of bound (r=%f)',1), +25074 => array('Internal error. The scale range is negative (%f) [for %s scale] This problem could potentially be caused by trying to use \"illegal\" values in the input data arrays (like trying to send in strings or only NULL values) which causes the auto scaling to fail.',2), +25075 => array('Can\'t automatically determine ticks since min==max.',0), +25077 => array('Adjustment factor for color must be > 0',0), +25078 => array('Unknown color: %s',1), +25079 => array('Unknown color specification: %s, size=%d',2), + +25080 => array('Alpha parameter for color must be between 0.0 and 1.0',0), +25081 => array('Selected graphic format is either not supported or unknown [%s]',1), +25082 => array('Illegal sizes specified for width or height when creating an image, (width=%d, height=%d)',2), +25083 => array('Illegal image size when copying image. Size for copied to image is 1 pixel or less.',0), +25084 => array('Failed to create temporary GD canvas. Possible Out of memory problem.',0), +25085 => array('An image can not be created from the supplied string. It is either in a format not supported or the string is representing an corrupt image.',0), +25086 => array('You only seem to have GD 1.x installed. To enable Alphablending requires GD 2.x or higher. Please install GD or make sure the constant USE_GD2 is specified correctly to reflect your installation. By default it tries to auto detect what version of GD you have installed. On some very rare occasions it may falsely detect GD2 where only GD1 is installed. You must then set USE_GD2 to false.',0), +25087 => array('This PHP build has not been configured with TTF support. You need to recompile your PHP installation with FreeType support.',0), +25088 => array('You have a misconfigured GD font support. The call to imagefontwidth() fails.',0), +25089 => array('You have a misconfigured GD font support. The call to imagefontheight() fails.',0), + +25090 => array('Unknown direction specified in call to StrokeBoxedText() [%s]',1), +25091 => array('Internal font does not support drawing text at arbitrary angle. Use TTF fonts instead.',0), +25092 => array('There is either a configuration problem with TrueType or a problem reading font file "%s" Make sure file exists and is in a readable place for the HTTP process. (If \'basedir\' restriction is enabled in PHP then the font file must be located in the document root.). It might also be a wrongly installed FreeType library. Try upgrading to at least FreeType 2.1.13 and recompile GD with the correct setup so it can find the new FT library.',1), +25093 => array('Can not read font file "%s" in call to Image::GetBBoxTTF. Please make sure that you have set a font before calling this method and that the font is installed in the TTF directory.',1), +25094 => array('Direction for text most be given as an angle between 0 and 90.',0), +25095 => array('Unknown font font family specification. ',0), +25096 => array('Can\'t allocate any more colors in palette image. Image has already allocated maximum of %d colors and the palette is now full. Change to a truecolor image instead',0), +25097 => array('Color specified as empty string in PushColor().',0), +25098 => array('Negative Color stack index. Unmatched call to PopColor()',0), +25099 => array('Parameters for brightness and Contrast out of range [-1,1]',0), + +25100 => array('Problem with color palette and your GD setup. Please disable anti-aliasing or use GD2 with true-color. If you have GD2 library installed please make sure that you have set the USE_GD2 constant to true and truecolor is enabled.',0), +25101 => array('Illegal numeric argument to SetLineStyle(): (%d)',1), +25102 => array('Illegal string argument to SetLineStyle(): %s',1), +25103 => array('Illegal argument to SetLineStyle %s',1), +25104 => array('Unknown line style: %s',1), +25105 => array('NULL data specified for a filled polygon. Check that your data is not NULL.',0), +25106 => array('Image::FillToBorder : Can not allocate more colors',0), +25107 => array('Can\'t write to file "%s". Check that the process running PHP has enough permission.',1), +25108 => array('Can\'t stream image. This is most likely due to a faulty PHP/GD setup. Try to recompile PHP and use the built-in GD library that comes with PHP.',0), +25109 => array('Your PHP (and GD-lib) installation does not appear to support any known graphic formats. You need to first make sure GD is compiled as a module to PHP. If you also want to use JPEG images you must get the JPEG library. Please see the PHP docs for details.',0), + +25110 => array('Your PHP installation does not support the chosen graphic format: %s',1), +25111 => array('Can\'t delete cached image %s. Permission problem?',1), +25112 => array('Cached imagefile (%s) has file date in the future.',1), +25113 => array('Can\'t delete cached image "%s". Permission problem?',1), +25114 => array('PHP has not enough permissions to write to the cache file "%s". Please make sure that the user running PHP has write permission for this file if you wan to use the cache system with JpGraph.',1), +25115 => array('Can\'t set permission for cached image "%s". Permission problem?',1), +25116 => array('Cant open file from cache "%s"',1), +25117 => array('Can\'t open cached image "%s" for reading.',1), +25118 => array('Can\'t create directory "%s". Make sure PHP has write permission to this directory.',1), +25119 => array('Can\'t set permissions for "%s". Permission problems?',1), + +25120 => array('Position for legend must be given as percentage in range 0-1',0), +25121 => array('Empty input data array specified for plot. Must have at least one data point.',0), +25122 => array('Stroke() must be implemented by concrete subclass to class Plot',0), +25123 => array('You can\'t use a text X-scale with specified X-coords. Use a "int" or "lin" scale instead.',0), +25124 => array('The input data array must have consecutive values from position 0 and forward. The given y-array starts with empty values (NULL)',0), +25125 => array('Illegal direction for static line',0), +25126 => array('Can\'t create truecolor image. Check that the GD2 library is properly setup with PHP.',0), +25127 => array('The library has been configured for automatic encoding conversion of Japanese fonts. This requires that PHP has the mb_convert_encoding() function. Your PHP installation lacks this function (PHP needs the "--enable-mbstring" when compiled).',0), +25128 => array('The function imageantialias() is not available in your PHP installation. Use the GD version that comes with PHP and not the standalone version.',0), +25129 => array('Anti-alias can not be used with dashed lines. Please disable anti-alias or use solid lines.',0), +25130 => array('Too small plot area. (%d x %d). With the given image size and margins there is to little space left for the plot. Increase the plot size or reduce the margins.',2), + +25131 => array('StrokeBoxedText2() only supports TTF fonts and not built-in bitmap fonts.',0), + +/* +** jpgraph_led +*/ + +25500 => array('Multibyte strings must be enabled in the PHP installation in order to run the LED module so that the function mb_strlen() is available. See PHP documentation for more information.',0), + +/* +**--------------------------------------------------------------------------------------------- +** Pro-version strings +**--------------------------------------------------------------------------------------------- +*/ + +/* +** jpgraph_table +*/ + +27001 => array('GTextTable: Invalid argument to Set(). Array argument must be 2 dimensional',0), +27002 => array('GTextTable: Invalid argument to Set()',0), +27003 => array('GTextTable: Wrong number of arguments to GTextTable::SetColor()',0), +27004 => array('GTextTable: Specified cell range to be merged is not valid.',0), +27005 => array('GTextTable: Cannot merge already merged cells in the range: (%d,%d) to (%d,%d)',4), +27006 => array('GTextTable: Column argument = %d is outside specified table size.',1), +27007 => array('GTextTable: Row argument = %d is outside specified table size.',1), +27008 => array('GTextTable: Column and row size arrays must match the dimensions of the table',0), +27009 => array('GTextTable: Number of table columns or rows are 0. Make sure Init() or Set() is called.',0), +27010 => array('GTextTable: No alignment specified in call to SetAlign()',0), +27011 => array('GTextTable: Unknown alignment specified in SetAlign(). Horizontal=%s, Vertical=%s',2), +27012 => array('GTextTable: Internal error. Invalid alignment specified =%s',1), +27013 => array('GTextTable: Argument to FormatNumber() must be a string.',0), +27014 => array('GTextTable: Table is not initilaized with either a call to Set() or Init()',0), +27015 => array('GTextTable: Cell image constrain type must be TIMG_WIDTH or TIMG_HEIGHT',0), + +/* +** jpgraph_windrose +*/ + +22001 => array('Total percentage for all windrose legs in a windrose plot can not exceed 100%% !\n(Current max is: %d)',1), +22002 => array('Graph is too small to have a scale. Please make the graph larger.',0), +22004 => array('Label specification for windrose directions must have 16 values (one for each compass direction).',0), +22005 => array('Line style for radial lines must be on of ("solid","dotted","dashed","longdashed") ',0), +22006 => array('Illegal windrose type specified.',0), +22007 => array('To few values for the range legend.',0), +22008 => array('Internal error: Trying to plot free Windrose even though type is not a free windrose',0), +22009 => array('You have specified the same direction twice, once with an angle and once with a compass direction (%f degrees)',0), +22010 => array('Direction must either be a numeric value or one of the 16 compass directions',0), +22011 => array('Windrose index must be numeric or direction label. You have specified index=%d',1), +22012 => array('Windrose radial axis specification contains a direction which is not enabled.',0), +22013 => array('You have specified the look&feel for the same compass direction twice, once with text and once with index (Index=%d)',1), +22014 => array('Index for compass direction must be between 0 and 15.',0), +22015 => array('You have specified an undefined Windrose plot type.',0), +22016 => array('Windrose leg index must be numeric or direction label.',0), +22017 => array('Windrose data contains a direction which is not enabled. Please adjust what labels are displayed.',0), +22018 => array('You have specified data for the same compass direction twice, once with text and once with index (Index=%d)',1), +22019 => array('Index for direction must be between 0 and 15. You can\'t specify angles for a Regular Windplot, only index and compass directions.',0), +22020 => array('Windrose plot is too large to fit the specified Graph size. Please use WindrosePlot::SetSize() to make the plot smaller or increase the size of the Graph in the initial WindroseGraph() call.',0), +22021 => array('It is only possible to add Text, IconPlot or WindrosePlot to a Windrose Graph',0), +/* +** jpgraph_odometer +*/ + +13001 => array('Unknown needle style (%d).',1), +13002 => array('Value for odometer (%f) is outside specified scale [%f,%f]',3), + +/* +** jpgraph_barcode +*/ + +1001 => array('Unknown encoder specification: %s',1), +1002 => array('Data validation failed. Can\'t encode [%s] using encoding "%s"',2), +1003 => array('Internal encoding error. Trying to encode %s is not possible in Code 128',1), +1004 => array('Internal barcode error. Unknown UPC-E encoding type: %s',1), +1005 => array('Internal error. Can\'t encode character tuple (%s, %s) in Code-128 charset C',2), +1006 => array('Internal encoding error for CODE 128. Trying to encode control character in CHARSET != A',0), +1007 => array('Internal encoding error for CODE 128. Trying to encode DEL in CHARSET != B',0), +1008 => array('Internal encoding error for CODE 128. Trying to encode small letters in CHARSET != B',0), +1009 => array('Encoding using CODE 93 is not yet supported.',0), +1010 => array('Encoding using POSTNET is not yet supported.',0), +1011 => array('Non supported barcode backend for type %s',1), + +/* +** PDF417 +*/ +26000 => array('PDF417: The PDF417 module requires that the PHP installation must support the function bcmod(). This is normally enabled at compile time. See documentation for more information.',0), +26001 => array('PDF417: Number of Columns must be >= 1 and <= 30',0), +26002 => array('PDF417: Error level must be between 0 and 8',0), +26003 => array('PDF417: Invalid format for input data to encode with PDF417',0), +26004 => array('PDF417: Can\'t encode given data with error level %d and %d columns since it results in too many symbols or more than 90 rows.',2), +26005 => array('PDF417: Can\'t open file "%s" for writing',1), +26006 => array('PDF417: Internal error. Data files for PDF417 cluster %d is corrupted.',1), +26007 => array('PDF417: Internal error. GetPattern: Illegal Code Value = %d (row=%d)',2), +26008 => array('PDF417: Internal error. Mode not found in mode list!! mode=%d',1), +26009 => array('PDF417: Encode error: Illegal character. Can\'t encode character with ASCII code=%d',1), +26010 => array('PDF417: Internal error: No input data in decode.',0), +26011 => array('PDF417: Encoding error. Can\'t use numeric encoding on non-numeric data.',0), +26012 => array('PDF417: Internal error. No input data to decode for Binary compressor.',0), +26013 => array('PDF417: Internal error. Checksum error. Coefficient tables corrupted.',0), +26014 => array('PDF417: Internal error. No data to calculate codewords on.',0), +26015 => array('PDF417: Internal error. State transition table entry 0 is NULL. Entry 1 = (%s)',1), +26016 => array('PDF417: Internal error: Unrecognized state transition mode in decode.',0), + +/* +** jpgraph_contour +*/ + +28001 => array('Third argument to Contour must be an array of colors.',0), +28002 => array('Number of colors must equal the number of isobar lines specified',0), +28003 => array('ContourPlot Internal Error: isobarHCrossing: Coloumn index too large (%d)',1), +28004 => array('ContourPlot Internal Error: isobarHCrossing: Row index too large (%d)',1), +28005 => array('ContourPlot Internal Error: isobarVCrossing: Row index too large (%d)',1), +28006 => array('ContourPlot Internal Error: isobarVCrossing: Col index too large (%d)',1), +28007 => array('ContourPlot interpolation factor is too large (>5)',0), + +/* + * jpgraph_matrix and colormap +*/ +29201 => array('Min range value must be less or equal to max range value for colormaps',0), +29202 => array('The distance between min and max value is too small for numerical precision',0), +29203 => array('Number of color quantification level must be at least %d',1), +29204 => array('Number of colors (%d) is invalid for this colormap. It must be a number that can be written as: %d + k*%d',3), +29205 => array('Colormap specification out of range. Must be an integer in range [0,%d]',1), +29206 => array('Invalid object added to MatrixGraph',0), +29207 => array('Empty input data specified for MatrixPlot',0), +29208 => array('Unknown side specifiction for matrix labels "%s"',1), +29209 => array('CSIM Target matrix must be the same size as the data matrix (csim=%d x %d, data=%d x %d)',4), +29210 => array('CSIM Target for matrix labels does not match the number of labels (csim=%d, labels=%d)',2), + +); + +?> diff --git a/gosa-core/include/jpgraph/lang/prod.inc.php b/gosa-core/include/jpgraph/lang/prod.inc.php new file mode 100644 index 000000000..8b376473b --- /dev/null +++ b/gosa-core/include/jpgraph/lang/prod.inc.php @@ -0,0 +1,383 @@ +,) +$_jpg_messages = array( + +/* +** Headers already sent error. This is formatted as HTML different since this will be sent back directly as text +*/ +10 => array('
    JpGraph Error: +HTTP headers have already been sent.
    Caused by output from file %s at line %d.
    Explanation:
    HTTP headers have already been sent back to the browser indicating the data as text before the library got a chance to send it\'s image HTTP header to this browser. This makes it impossible for the library to send back image data to the browser (since that would be interpretated as text by the browser and show up as junk text).

    Most likely you have some text in your script before the call to Graph::Stroke(). If this texts gets sent back to the browser the browser will assume that all data is plain text. Look for any text, even spaces and newlines, that might have been sent back to the browser.

    For example it is a common mistake to leave a blank line before the opening "<?php".

    ',2), + + +11 => array(DEFAULT_ERROR_MESSAGE.'11',0), +12 => array(DEFAULT_ERROR_MESSAGE.'12',0), +13 => array(DEFAULT_ERROR_MESSAGE.'13',0), +2001 => array(DEFAULT_ERROR_MESSAGE.'2001',0), +2002 => array(DEFAULT_ERROR_MESSAGE.'2002',0), +2003 => array(DEFAULT_ERROR_MESSAGE.'2003',0), +2004 => array(DEFAULT_ERROR_MESSAGE.'2004',0), +2005 => array(DEFAULT_ERROR_MESSAGE.'2005',0), +2006 => array(DEFAULT_ERROR_MESSAGE.'2006',0), +2007 => array(DEFAULT_ERROR_MESSAGE.'2007',0), +2008 => array(DEFAULT_ERROR_MESSAGE.'2008',0), +2009 => array(DEFAULT_ERROR_MESSAGE.'2009',0), +2010 => array(DEFAULT_ERROR_MESSAGE.'2010',0), +2011 => array(DEFAULT_ERROR_MESSAGE.'2011',0), +2012 => array(DEFAULT_ERROR_MESSAGE.'2012',0), +2013 => array(DEFAULT_ERROR_MESSAGE.'2013',0), +2014 => array(DEFAULT_ERROR_MESSAGE.'2014',0), +3001 => array(DEFAULT_ERROR_MESSAGE.'3001',0), +4002 => array(DEFAULT_ERROR_MESSAGE.'4002',0), +5001 => array(DEFAULT_ERROR_MESSAGE.'5001',0), +5002 => array(DEFAULT_ERROR_MESSAGE.'5002',0), +5003 => array(DEFAULT_ERROR_MESSAGE.'5003',0), +5004 => array(DEFAULT_ERROR_MESSAGE.'5004',0), +6001 => array(DEFAULT_ERROR_MESSAGE.'6001',0), +6002 => array(DEFAULT_ERROR_MESSAGE.'6002',0), +6003 => array(DEFAULT_ERROR_MESSAGE.'6003',0), +6004 => array(DEFAULT_ERROR_MESSAGE.'6004',0), +6005 => array(DEFAULT_ERROR_MESSAGE.'6005',0), +6006 => array(DEFAULT_ERROR_MESSAGE.'6006',0), +6007 => array(DEFAULT_ERROR_MESSAGE.'6007',0), +6008 => array(DEFAULT_ERROR_MESSAGE.'6008',0), +6009 => array(DEFAULT_ERROR_MESSAGE.'6009',0), +6010 => array(DEFAULT_ERROR_MESSAGE.'6010',0), +6011 => array(DEFAULT_ERROR_MESSAGE.'6011',0), +6012 => array(DEFAULT_ERROR_MESSAGE.'6012',0), +6015 => array(DEFAULT_ERROR_MESSAGE.'6015',0), +6016 => array(DEFAULT_ERROR_MESSAGE.'6016',0), +6017 => array(DEFAULT_ERROR_MESSAGE.'6017',0), +6018 => array(DEFAULT_ERROR_MESSAGE.'6018',0), +6019 => array(DEFAULT_ERROR_MESSAGE.'6019',0), +6020 => array(DEFAULT_ERROR_MESSAGE.'6020',0), +6021 => array(DEFAULT_ERROR_MESSAGE.'6021',0), +6022 => array(DEFAULT_ERROR_MESSAGE.'6022',0), +6023 => array(DEFAULT_ERROR_MESSAGE.'6023',0), +6024 => array(DEFAULT_ERROR_MESSAGE.'6024',0), +6025 => array(DEFAULT_ERROR_MESSAGE.'6025',0), +6027 => array(DEFAULT_ERROR_MESSAGE.'6027',0), +6028 => array(DEFAULT_ERROR_MESSAGE.'6028',0), +6029 => array(DEFAULT_ERROR_MESSAGE.'6029',0), +6030 => array(DEFAULT_ERROR_MESSAGE.'6030',0), +6031 => array(DEFAULT_ERROR_MESSAGE.'6031',0), +6032 => array(DEFAULT_ERROR_MESSAGE.'6032',0), +6033 => array(DEFAULT_ERROR_MESSAGE.'6033',0), +7001 => array(DEFAULT_ERROR_MESSAGE.'7001',0), +8001 => array(DEFAULT_ERROR_MESSAGE.'8001',0), +8002 => array(DEFAULT_ERROR_MESSAGE.'8002',0), +8003 => array(DEFAULT_ERROR_MESSAGE.'8003',0), +8004 => array(DEFAULT_ERROR_MESSAGE.'8004',0), +9001 => array(DEFAULT_ERROR_MESSAGE.'9001',0), +10001 => array(DEFAULT_ERROR_MESSAGE.'10001',0), +10002 => array(DEFAULT_ERROR_MESSAGE.'10002',0), +10003 => array(DEFAULT_ERROR_MESSAGE.'10003',0), +11001 => array(DEFAULT_ERROR_MESSAGE.'11001',0), +11002 => array(DEFAULT_ERROR_MESSAGE.'11002',0), +11003 => array(DEFAULT_ERROR_MESSAGE.'11003',0), +11004 => array(DEFAULT_ERROR_MESSAGE.'11004',0), +11005 => array(DEFAULT_ERROR_MESSAGE.'11005',0), +12001 => array(DEFAULT_ERROR_MESSAGE.'12001',0), +12002 => array(DEFAULT_ERROR_MESSAGE.'12002',0), +12003 => array(DEFAULT_ERROR_MESSAGE.'12003',0), +12004 => array(DEFAULT_ERROR_MESSAGE.'12004',0), +12005 => array(DEFAULT_ERROR_MESSAGE.'12005',0), +12006 => array(DEFAULT_ERROR_MESSAGE.'12006',0), +12007 => array(DEFAULT_ERROR_MESSAGE.'12007',0), +12008 => array(DEFAULT_ERROR_MESSAGE.'12008',0), +12009 => array(DEFAULT_ERROR_MESSAGE.'12009',0), +12010 => array(DEFAULT_ERROR_MESSAGE.'12010',0), +12011 => array(DEFAULT_ERROR_MESSAGE.'12011',0), +12012 => array(DEFAULT_ERROR_MESSAGE.'12012',0), +14001 => array(DEFAULT_ERROR_MESSAGE.'14001',0), +14002 => array(DEFAULT_ERROR_MESSAGE.'14002',0), +14003 => array(DEFAULT_ERROR_MESSAGE.'14003',0), +14004 => array(DEFAULT_ERROR_MESSAGE.'14004',0), +14005 => array(DEFAULT_ERROR_MESSAGE.'14005',0), +14006 => array(DEFAULT_ERROR_MESSAGE.'14006',0), +14007 => array(DEFAULT_ERROR_MESSAGE.'14007',0), +15001 => array(DEFAULT_ERROR_MESSAGE.'15001',0), +15002 => array(DEFAULT_ERROR_MESSAGE.'15002',0), +15003 => array(DEFAULT_ERROR_MESSAGE.'15003',0), +15004 => array(DEFAULT_ERROR_MESSAGE.'15004',0), +15005 => array(DEFAULT_ERROR_MESSAGE.'15005',0), +15006 => array(DEFAULT_ERROR_MESSAGE.'15006',0), +15007 => array(DEFAULT_ERROR_MESSAGE.'15007',0), +15008 => array(DEFAULT_ERROR_MESSAGE.'15008',0), +15009 => array(DEFAULT_ERROR_MESSAGE.'15009',0), +15010 => array(DEFAULT_ERROR_MESSAGE.'15010',0), +15011 => array(DEFAULT_ERROR_MESSAGE.'15011',0), +16001 => array(DEFAULT_ERROR_MESSAGE.'16001',0), +16002 => array(DEFAULT_ERROR_MESSAGE.'16002',0), +16003 => array(DEFAULT_ERROR_MESSAGE.'16003',0), +16004 => array(DEFAULT_ERROR_MESSAGE.'16004',0), +17001 => array(DEFAULT_ERROR_MESSAGE.'17001',0), +17002 => array(DEFAULT_ERROR_MESSAGE.'17002',0), +17004 => array(DEFAULT_ERROR_MESSAGE.'17004',0), +18001 => array(DEFAULT_ERROR_MESSAGE.'18001',0), +18002 => array(DEFAULT_ERROR_MESSAGE.'18002',0), +18003 => array(DEFAULT_ERROR_MESSAGE.'18003',0), +18004 => array(DEFAULT_ERROR_MESSAGE.'18004',0), +18005 => array(DEFAULT_ERROR_MESSAGE.'18005',0), +18006 => array(DEFAULT_ERROR_MESSAGE.'18006',0), +18007 => array(DEFAULT_ERROR_MESSAGE.'18007',0), +18008 => array(DEFAULT_ERROR_MESSAGE.'18008',0), +19001 => array(DEFAULT_ERROR_MESSAGE.'19001',0), +19002 => array(DEFAULT_ERROR_MESSAGE.'19002',0), +19003 => array(DEFAULT_ERROR_MESSAGE.'19003',0), +20001 => array(DEFAULT_ERROR_MESSAGE.'20001',0), +20002 => array(DEFAULT_ERROR_MESSAGE.'20002',0), +20003 => array(DEFAULT_ERROR_MESSAGE.'20003',0), +21001 => array(DEFAULT_ERROR_MESSAGE.'21001',0), +23001 => array(DEFAULT_ERROR_MESSAGE.'23001',0), +23002 => array(DEFAULT_ERROR_MESSAGE.'23002',0), +23003 => array(DEFAULT_ERROR_MESSAGE.'23003',0), +24001 => array(DEFAULT_ERROR_MESSAGE.'24001',0), +24002 => array(DEFAULT_ERROR_MESSAGE.'24002',0), +24003 => array(DEFAULT_ERROR_MESSAGE.'24003',0), +24004 => array(DEFAULT_ERROR_MESSAGE.'24004',0), +25001 => array(DEFAULT_ERROR_MESSAGE.'25001',0), +25002 => array(DEFAULT_ERROR_MESSAGE.'25002',0), +25003 => array(DEFAULT_ERROR_MESSAGE.'25003',0), +25004 => array(DEFAULT_ERROR_MESSAGE.'25004',0), +25005 => array(DEFAULT_ERROR_MESSAGE.'25005',0), +25006 => array(DEFAULT_ERROR_MESSAGE.'25006',0), +25007 => array(DEFAULT_ERROR_MESSAGE.'25007',0), +25008 => array(DEFAULT_ERROR_MESSAGE.'25008',0), +25009 => array(DEFAULT_ERROR_MESSAGE.'25009',0), +25010 => array(DEFAULT_ERROR_MESSAGE.'25010',0), +25011 => array(DEFAULT_ERROR_MESSAGE.'25011',0), +25012 => array(DEFAULT_ERROR_MESSAGE.'25012',0), +25013 => array(DEFAULT_ERROR_MESSAGE.'25013',0), +25014 => array(DEFAULT_ERROR_MESSAGE.'25014',0), +25015 => array(DEFAULT_ERROR_MESSAGE.'25015',0), +25016 => array(DEFAULT_ERROR_MESSAGE.'25016',0), +25017 => array(DEFAULT_ERROR_MESSAGE.'25017',0), +25018 => array(DEFAULT_ERROR_MESSAGE.'25018',0), +25019 => array(DEFAULT_ERROR_MESSAGE.'25019',0), +25020 => array(DEFAULT_ERROR_MESSAGE.'25020',0), +25021 => array(DEFAULT_ERROR_MESSAGE.'25021',0), +25022 => array(DEFAULT_ERROR_MESSAGE.'25022',0), +25023 => array(DEFAULT_ERROR_MESSAGE.'25023',0), +25024 => array(DEFAULT_ERROR_MESSAGE.'25024',0), +25025 => array(DEFAULT_ERROR_MESSAGE.'25025',0), +25026 => array(DEFAULT_ERROR_MESSAGE.'25026',0), +25027 => array(DEFAULT_ERROR_MESSAGE.'25027',0), +25028 => array(DEFAULT_ERROR_MESSAGE.'25028',0), +25029 => array(DEFAULT_ERROR_MESSAGE.'25029',0), +25030 => array(DEFAULT_ERROR_MESSAGE.'25030',0), +25031 => array(DEFAULT_ERROR_MESSAGE.'25031',0), +25032 => array(DEFAULT_ERROR_MESSAGE.'25032',0), +25033 => array(DEFAULT_ERROR_MESSAGE.'25033',0), +25034 => array(DEFAULT_ERROR_MESSAGE.'25034',0), +25035 => array(DEFAULT_ERROR_MESSAGE.'25035',0), +25036 => array(DEFAULT_ERROR_MESSAGE.'25036',0), +25037 => array(DEFAULT_ERROR_MESSAGE.'25037',0), +25038 => array(DEFAULT_ERROR_MESSAGE.'25038',0), +25039 => array(DEFAULT_ERROR_MESSAGE.'25039',0), +25040 => array(DEFAULT_ERROR_MESSAGE.'25040',0), +25041 => array(DEFAULT_ERROR_MESSAGE.'25041',0), +25042 => array(DEFAULT_ERROR_MESSAGE.'25042',0), +25043 => array(DEFAULT_ERROR_MESSAGE.'25043',0), +25044 => array(DEFAULT_ERROR_MESSAGE.'25044',0), +25045 => array(DEFAULT_ERROR_MESSAGE.'25045',0), +25046 => array(DEFAULT_ERROR_MESSAGE.'25046',0), +25047 => array(DEFAULT_ERROR_MESSAGE.'25047',0), +25048 => array(DEFAULT_ERROR_MESSAGE.'25048',0), +25049 => array(DEFAULT_ERROR_MESSAGE.'25049',0), +25050 => array(DEFAULT_ERROR_MESSAGE.'25050',0), +25051 => array(DEFAULT_ERROR_MESSAGE.'25051',0), +25052 => array(DEFAULT_ERROR_MESSAGE.'25052',0), +25053 => array(DEFAULT_ERROR_MESSAGE.'25053',0), +25054 => array(DEFAULT_ERROR_MESSAGE.'25054',0), +25055 => array(DEFAULT_ERROR_MESSAGE.'25055',0), +25056 => array(DEFAULT_ERROR_MESSAGE.'25056',0), +25057 => array(DEFAULT_ERROR_MESSAGE.'25057',0), +25058 => array(DEFAULT_ERROR_MESSAGE.'25058',0), +25059 => array(DEFAULT_ERROR_MESSAGE.'25059',0), +25060 => array(DEFAULT_ERROR_MESSAGE.'25060',0), +25061 => array(DEFAULT_ERROR_MESSAGE.'25061',0), +25062 => array(DEFAULT_ERROR_MESSAGE.'25062',0), +25063 => array(DEFAULT_ERROR_MESSAGE.'25063',0), +25064 => array(DEFAULT_ERROR_MESSAGE.'25064',0), +25065 => array(DEFAULT_ERROR_MESSAGE.'25065',0), +25066 => array(DEFAULT_ERROR_MESSAGE.'25066',0), +25067 => array(DEFAULT_ERROR_MESSAGE.'25067',0), +25068 => array(DEFAULT_ERROR_MESSAGE.'25068',0), +25069 => array(DEFAULT_ERROR_MESSAGE.'25069',0), +25070 => array(DEFAULT_ERROR_MESSAGE.'25070',0), +25071 => array(DEFAULT_ERROR_MESSAGE.'25071',0), +25072 => array(DEFAULT_ERROR_MESSAGE.'25072',0), +25073 => array(DEFAULT_ERROR_MESSAGE.'25073',0), +25074 => array(DEFAULT_ERROR_MESSAGE.'25074',0), +25075 => array(DEFAULT_ERROR_MESSAGE.'25075',0), +25077 => array(DEFAULT_ERROR_MESSAGE.'25077',0), +25078 => array(DEFAULT_ERROR_MESSAGE.'25078',0), +25079 => array(DEFAULT_ERROR_MESSAGE.'25079',0), +25080 => array(DEFAULT_ERROR_MESSAGE.'25080',0), +25081 => array(DEFAULT_ERROR_MESSAGE.'25081',0), +25082 => array(DEFAULT_ERROR_MESSAGE.'25082',0), +25083 => array(DEFAULT_ERROR_MESSAGE.'25083',0), +25084 => array(DEFAULT_ERROR_MESSAGE.'25084',0), +25085 => array(DEFAULT_ERROR_MESSAGE.'25085',0), +25086 => array(DEFAULT_ERROR_MESSAGE.'25086',0), +25087 => array(DEFAULT_ERROR_MESSAGE.'25087',0), +25088 => array(DEFAULT_ERROR_MESSAGE.'25088',0), +25089 => array(DEFAULT_ERROR_MESSAGE.'25089',0), +25090 => array(DEFAULT_ERROR_MESSAGE.'25090',0), +25091 => array(DEFAULT_ERROR_MESSAGE.'25091',0), +25092 => array(DEFAULT_ERROR_MESSAGE.'25092',0), +25093 => array(DEFAULT_ERROR_MESSAGE.'25093',0), +25094 => array(DEFAULT_ERROR_MESSAGE.'25094',0), +25095 => array(DEFAULT_ERROR_MESSAGE.'25095',0), +25096 => array(DEFAULT_ERROR_MESSAGE.'25096',0), +25097 => array(DEFAULT_ERROR_MESSAGE.'25097',0), +25098 => array(DEFAULT_ERROR_MESSAGE.'25098',0), +25099 => array(DEFAULT_ERROR_MESSAGE.'25099',0), +25100 => array(DEFAULT_ERROR_MESSAGE.'25100',0), +25101 => array(DEFAULT_ERROR_MESSAGE.'25101',0), +25102 => array(DEFAULT_ERROR_MESSAGE.'25102',0), +25103 => array(DEFAULT_ERROR_MESSAGE.'25103',0), +25104 => array(DEFAULT_ERROR_MESSAGE.'25104',0), +25105 => array(DEFAULT_ERROR_MESSAGE.'25105',0), +25106 => array(DEFAULT_ERROR_MESSAGE.'25106',0), +25107 => array(DEFAULT_ERROR_MESSAGE.'25107',0), +25108 => array(DEFAULT_ERROR_MESSAGE.'25108',0), +25109 => array(DEFAULT_ERROR_MESSAGE.'25109',0), +25110 => array(DEFAULT_ERROR_MESSAGE.'25110',0), +25111 => array(DEFAULT_ERROR_MESSAGE.'25111',0), +25112 => array(DEFAULT_ERROR_MESSAGE.'25112',0), +25113 => array(DEFAULT_ERROR_MESSAGE.'25113',0), +25114 => array(DEFAULT_ERROR_MESSAGE.'25114',0), +25115 => array(DEFAULT_ERROR_MESSAGE.'25115',0), +25116 => array(DEFAULT_ERROR_MESSAGE.'25116',0), +25117 => array(DEFAULT_ERROR_MESSAGE.'25117',0), +25118 => array(DEFAULT_ERROR_MESSAGE.'25118',0), +25119 => array(DEFAULT_ERROR_MESSAGE.'25119',0), +25120 => array(DEFAULT_ERROR_MESSAGE.'25120',0), +25121 => array(DEFAULT_ERROR_MESSAGE.'25121',0), +25122 => array(DEFAULT_ERROR_MESSAGE.'25122',0), +25123 => array(DEFAULT_ERROR_MESSAGE.'25123',0), +25124 => array(DEFAULT_ERROR_MESSAGE.'25124',0), +25125 => array(DEFAULT_ERROR_MESSAGE.'25125',0), +25126 => array(DEFAULT_ERROR_MESSAGE.'25126',0), +25127 => array(DEFAULT_ERROR_MESSAGE.'25127',0), +25128 => array(DEFAULT_ERROR_MESSAGE.'25128',0), +25129 => array(DEFAULT_ERROR_MESSAGE.'25129',0), +25130 => array(DEFAULT_ERROR_MESSAGE.'25130',0), +25131 => array(DEFAULT_ERROR_MESSAGE.'25131',0), +25500 => array(DEFAULT_ERROR_MESSAGE.'25500',0), +24003 => array(DEFAULT_ERROR_MESSAGE.'24003',0), +24004 => array(DEFAULT_ERROR_MESSAGE.'24004',0), +24005 => array(DEFAULT_ERROR_MESSAGE.'24005',0), +24006 => array(DEFAULT_ERROR_MESSAGE.'24006',0), +24007 => array(DEFAULT_ERROR_MESSAGE.'24007',0), +24008 => array(DEFAULT_ERROR_MESSAGE.'24008',0), +24009 => array(DEFAULT_ERROR_MESSAGE.'24009',0), +24010 => array(DEFAULT_ERROR_MESSAGE.'24010',0), +24011 => array(DEFAULT_ERROR_MESSAGE.'24011',0), +24012 => array(DEFAULT_ERROR_MESSAGE.'24012',0), +24013 => array(DEFAULT_ERROR_MESSAGE.'24013',0), +24014 => array(DEFAULT_ERROR_MESSAGE.'24014',0), +24015 => array(DEFAULT_ERROR_MESSAGE.'24015',0), +22001 => array(DEFAULT_ERROR_MESSAGE.'22001',0), +22002 => array(DEFAULT_ERROR_MESSAGE.'22002',0), +22004 => array(DEFAULT_ERROR_MESSAGE.'22004',0), +22005 => array(DEFAULT_ERROR_MESSAGE.'22005',0), +22006 => array(DEFAULT_ERROR_MESSAGE.'22006',0), +22007 => array(DEFAULT_ERROR_MESSAGE.'22007',0), +22008 => array(DEFAULT_ERROR_MESSAGE.'22008',0), +22009 => array(DEFAULT_ERROR_MESSAGE.'22009',0), +22010 => array(DEFAULT_ERROR_MESSAGE.'22010',0), +22011 => array(DEFAULT_ERROR_MESSAGE.'22011',0), +22012 => array(DEFAULT_ERROR_MESSAGE.'22012',0), +22013 => array(DEFAULT_ERROR_MESSAGE.'22013',0), +22014 => array(DEFAULT_ERROR_MESSAGE.'22014',0), +22015 => array(DEFAULT_ERROR_MESSAGE.'22015',0), +22016 => array(DEFAULT_ERROR_MESSAGE.'22016',0), +22017 => array(DEFAULT_ERROR_MESSAGE.'22017',0), +22018 => array(DEFAULT_ERROR_MESSAGE.'22018',0), +22019 => array(DEFAULT_ERROR_MESSAGE.'22019',0), +22020 => array(DEFAULT_ERROR_MESSAGE.'22020',0), +13001 => array(DEFAULT_ERROR_MESSAGE.'13001',0), +13002 => array(DEFAULT_ERROR_MESSAGE.'13002',0), +1001 => array(DEFAULT_ERROR_MESSAGE.'1001',0), +1002 => array(DEFAULT_ERROR_MESSAGE.'1002',0), +1003 => array(DEFAULT_ERROR_MESSAGE.'1003',0), +1004 => array(DEFAULT_ERROR_MESSAGE.'1004',0), +1005 => array(DEFAULT_ERROR_MESSAGE.'1005',0), +1006 => array(DEFAULT_ERROR_MESSAGE.'1006',0), +1007 => array(DEFAULT_ERROR_MESSAGE.'1007',0), +1008 => array(DEFAULT_ERROR_MESSAGE.'1008',0), +1009 => array(DEFAULT_ERROR_MESSAGE.'1009',0), +1010 => array(DEFAULT_ERROR_MESSAGE.'1010',0), +1011 => array(DEFAULT_ERROR_MESSAGE.'1011',0), +26000 => array(DEFAULT_ERROR_MESSAGE.'26000',0), +26001 => array(DEFAULT_ERROR_MESSAGE.'26001',0), +26002 => array(DEFAULT_ERROR_MESSAGE.'26002',0), +26003 => array(DEFAULT_ERROR_MESSAGE.'26003',0), +26004 => array(DEFAULT_ERROR_MESSAGE.'26004',0), +26005 => array(DEFAULT_ERROR_MESSAGE.'26005',0), +26006 => array(DEFAULT_ERROR_MESSAGE.'26006',0), +26007 => array(DEFAULT_ERROR_MESSAGE.'26007',0), +26008 => array(DEFAULT_ERROR_MESSAGE.'26008',0), +26009 => array(DEFAULT_ERROR_MESSAGE.'26009',0), +26010 => array(DEFAULT_ERROR_MESSAGE.'26010',0), +26011 => array(DEFAULT_ERROR_MESSAGE.'26011',0), +26012 => array(DEFAULT_ERROR_MESSAGE.'26012',0), +26013 => array(DEFAULT_ERROR_MESSAGE.'26013',0), +26014 => array(DEFAULT_ERROR_MESSAGE.'26014',0), +26015 => array(DEFAULT_ERROR_MESSAGE.'26015',0), +26016 => array(DEFAULT_ERROR_MESSAGE.'26016',0), + +27001 => array(DEFAULT_ERROR_MESSAGE.'27001',0), +27002 => array(DEFAULT_ERROR_MESSAGE.'27002',0), +27003 => array(DEFAULT_ERROR_MESSAGE.'27003',0), +27004 => array(DEFAULT_ERROR_MESSAGE.'27004',0), +27005 => array(DEFAULT_ERROR_MESSAGE.'27005',0), +27006 => array(DEFAULT_ERROR_MESSAGE.'27006',0), +27007 => array(DEFAULT_ERROR_MESSAGE.'27007',0), +27008 => array(DEFAULT_ERROR_MESSAGE.'27008',0), +27009 => array(DEFAULT_ERROR_MESSAGE.'27009',0), +27010 => array(DEFAULT_ERROR_MESSAGE.'27010',0), +27011 => array(DEFAULT_ERROR_MESSAGE.'27011',0), +27012 => array(DEFAULT_ERROR_MESSAGE.'27012',0), +27013 => array(DEFAULT_ERROR_MESSAGE.'27013',0), +27014 => array(DEFAULT_ERROR_MESSAGE.'27014',0), +27015 => array(DEFAULT_ERROR_MESSAGE.'27015',0), + +28001 => array(DEFAULT_ERROR_MESSAGE.'28001',0), +28002 => array(DEFAULT_ERROR_MESSAGE.'28002',0), +28003 => array(DEFAULT_ERROR_MESSAGE.'28003',0), +28004 => array(DEFAULT_ERROR_MESSAGE.'28004',0), +28005 => array(DEFAULT_ERROR_MESSAGE.'28005',0), +28006 => array(DEFAULT_ERROR_MESSAGE.'28006',0), +28007 => array(DEFAULT_ERROR_MESSAGE.'28007',0), + +29201 => array(DEFAULT_ERROR_MESSAGE.'28001',0), +29202 => array(DEFAULT_ERROR_MESSAGE.'28002',0), +29203 => array(DEFAULT_ERROR_MESSAGE.'28003',0), +29204 => array(DEFAULT_ERROR_MESSAGE.'28004',0), +29205 => array(DEFAULT_ERROR_MESSAGE.'28005',0), +29206 => array(DEFAULT_ERROR_MESSAGE.'28006',0), +29207 => array(DEFAULT_ERROR_MESSAGE.'28007',0), +29208 => array(DEFAULT_ERROR_MESSAGE.'28008',0), +29209 => array(DEFAULT_ERROR_MESSAGE.'28009',0), +29210 => array(DEFAULT_ERROR_MESSAGE.'28010',0), + +); + +?> diff --git a/gosa-core/plugins/generic/statistics/class_statistics.inc b/gosa-core/plugins/generic/statistics/class_statistics.inc index 169c15a7a..7f1bd5496 100644 --- a/gosa-core/plugins/generic/statistics/class_statistics.inc +++ b/gosa-core/plugins/generic/statistics/class_statistics.inc @@ -7,12 +7,10 @@ class statistics extends plugin var $plShortIcon = 'statistics.png'; var $plIcon = 'plugin.png'; - var $receivedStats = array(); - - var $rpcHandle = NULL; var $rpcConfigured = FALSE; + var $graphID_1 = 0; function __construct($config) { @@ -36,13 +34,13 @@ class statistics extends plugin // Do not render anything if we are not prepared to send and receive data via rpc. $smarty->assign("rpcConfigured", $this->rpcConfigured); + $smarty->assign("validRpcHandle", TRUE); if(!$this->rpcConfigured || !$this->rpcHandle){ $smarty->assign("validRpcHandle", FALSE); return($smarty->fetch(get_template_path('statistics.tpl', TRUE))); } - - $smarty->assign("validRpcHandle", TRUE); + // Send stats if(isset($_POST['transmitStatistics'])){ $tmp = stats::dumpTables(); $dump = array(); @@ -72,14 +70,33 @@ class statistics extends plugin $tmpRendered = array(); foreach($res['category_count'] as $category => $count){ $tmp[$category] = floor(($count / $all) * 10000) / 100; - $tmpRendered[$category] = progressbar($tmp[$category]); } - $this->receivedStats = $tmpRendered; + + + $data = array_values($tmp); + + // Include jpgraph classes now. + new jpGraphInclude(); + + $graph = new PieGraph(600,500); + $graph->title->Set("Example 4 of pie plot"); + $graph->SetAntiAliasing(); + + $p1 = new PiePlot($data); + $p1 = new PiePlot3D($data); + $p1->value->SetColor("darkred"); + $p1->SetSize(0.3); + $p1->SetCenter(0.4); + $p1->SetLegends(array_keys($tmp)); + $graph->Add($p1); + + $this->graphID_1 = preg_replace("/[^0-9]/","",microtime(TRUE)); + $graph->Stroke('/tmp/graph_'.$this->graphID_1, TRUE); + session::set('statistics::graphFile'.$this->graphID_1,'/tmp/graph_'.$this->graphID_1); } } - - $smarty->assign("receivedStats",$this->receivedStats); + $smarty->assign('graphID_1', $this->graphID_1); return($smarty->fetch(get_template_path('statistics.tpl', TRUE))); } diff --git a/gosa-core/plugins/generic/statistics/statistics.tpl b/gosa-core/plugins/generic/statistics/statistics.tpl index 44df1208a..8681a32cd 100644 --- a/gosa-core/plugins/generic/statistics/statistics.tpl +++ b/gosa-core/plugins/generic/statistics/statistics.tpl @@ -15,16 +15,6 @@


    - {if $receivedStats} -

    {t}Transmit daliy stats{/t}

    - - {foreach from=$receivedStats key=key item=item} - - - - - {/foreach} -
    {$key}{$item}
    - {/if} + {/if} -- 2.30.2
  • r64}Bh@RnfR(wk_j?s5O0W61^HR=3hBETWgblP9bCYKkBi6ng7?Y010Ju-@Eg+t#EPWkN$-#867Sn~38lgdP(a ziR!16%N~v+0!?y(g$7T8Cnsg~yAPiQXBs4eVOoe*WYkLI%z)t?lzKX|Zr{RdDL~X5 zHdC)#OUyOS^u)~jG+{O+xX-&E(9JD+H|0rB5Q+ZESZ?O@*g0DT2Ib@?RPD?VG( zpWvxWEm1aa0t>XBoBO7Wfp{2i2>!#l&KZFlNE!%C7GbcsHMbx~iwrGN9R!5{<$nC= zReC(oM~0$ZpBf+UyuXl)dv!C}*xFGUb|i3$*sm^K#yrdf;~Z5?d5& zvNgp@M>KLRRq|OpFwKmo&UQ7I*dMq3z-nZm=?hg${7l^w$5NMlkMJqi z<8+v)FcEfV6*n7d4RwQdi-)lW+G6Lthm9R&gMlPIi@j>kJ4}wEZ`IYORfcCe9mcYv zE=R7*>Phq49>-=t6ZXdja}98-*4k&T4V9;(SL4_5dKwDUWSQJg zNQz@&%^reFo&Gx|cKKt(sN^pjq#Ub!MzariZF0RV=snFUy2_XdLWjo;MW%KFC zrr;t}&Ck_LHLN5-?p9Qu*}#! zf3BpEg$gqEXjg7YxP5$lEl$qhS9veRDs%Mj45>yoaE{c+I9$R?&)Vc0{@+!P&V+Tr z58UdQs!79cPj9|Xf6C|2Y;C)L!S)u;1$(K7OLBWV%1FPlH`;ahKK{Pg8FC%$Xt7_t z0k=<39Zkv7eE7)S>^(SBo?)(zX&wgSg*<^>qpikfWV5tVMv4~sN|8y&jf3D(xn8@Q zG}SCws6Sem{_wQYzEc9$dwrBuWHM0FHt@E1vM2HOp@2W~9Vk*Cqpva5r-3-Zdl^L7 z+h;w0rmOgT_beQk3<-FLAEww1w3?k?f}7xMaml%>3I?c#DCF^J>*P7I2wdfE$g=~3L6JiTX}A<&3Go%`-axBMI1K0nP&JJ_ z3X7=H6cnNdNlvcW`>+$qE~jUj0S=%nTQhAR4pPDYmm{6j>9gwlPv_}sbVG~>;fw0c z{B?EeA3F!mW1}HLViCh-_9G32+8ruIUjkjo)t@)JCqFFqp+G`hR0alv$cv6PXGOdCEP?fo^cm+*BP{`R zLo@w#{u%cZRnv?+OXcYHU;nHGo@1C&ZSWJo*fnd2P_gaLQ zPz}!ez#_OqIkI1yfdnfmS`3H(901`xI64KxiJv5A=Pd;PC zEslr?5#Q;{ceQdyBm)iiB@7q}fH)HlsXhdUz=CiP%MOf4h`BE&RtCcYh%zlg;Jy)g ze{3gGeT=0+08=N;S-tP}GO4-Sll4##)Q86mL_-aC1asuzW2unW)frz(Lf6IvdMh@3 zu18&t{F!f&5wrYz8$NcJwYK1FdnT&Q)q<3~FSNE|u-_U!4Z)Fy2>~HJZKA7j_)Z{k zEf2)u5FthqUar#+Z6qyWox^%jUQKv=K8fd`Lo(xj4@X9n*6T;KJYx_nyzMH16r^@` zpSOCpv-M|2(*g$mes1`)ILR0PO;Ph)G!F3Q5K@f?_JcEe-wmlHujzSIG=-wT`vPOM z375z0y$pI_c@mzhZPwfBP)vJTQuRNO7EAAc2-$sJ7SWAfM|;JHwk zhIG~-eG$S*Cr%zg?dhonq@Ez6>txx8qqBVo64i8LRE#HTWQ7E55&%iyPzGc3fbe4; zFi$3i)tgi_a5-7cF6$WT0@~7}U*^nQnQzzD=C)_%X4?Fox=}x9%wnG29U=%P(z>`$ z*!r58nm)_RNlGBfUJULot z3o7!0&EGDv3HN4pT;DhE^wjr3;v%f5?632$nAujXjYIkn^tRj;s{;XO!m_n@4Eu4W zHzBc4rTB%8wcZ|K7U)oV7fa>?FW90iu!2hli|&z4TmA2+oHAB}?)wP8R3AK7C_f3~ zOMI2R2>Yv4tZZyT0br&|4Nc~bB3eOdj@pa-iR!F^@ksXas}O%@_vBh{r?AcEZ~e<0 z4HsLb&%~_n>5QM-Mar}2p#9@rm&;GVF<=zfavSA=71uB#@cYc>iL`H7{_$UDQ2OVa zq>P(d`xBgp`6*D1;rA6&ue!rD$o-is+p#DrPpfM)zPBFMjfFp1L;L@#HbhiiEC`vO z$AlDYJ*rh7kYx}512?^Yyw!hrh!8~NYt~RvOpWsA*{C1q2B{*6uJN(&ta3;mG3S>* zbALPM&qKh@dJi1=zTz>L=F&A(_vsAgdKdaTGOoPnPWbUo?sMAbT|Jhb>SFY$O0#-> zBM$wos<0-zziP%ZTA#I*wUkH>t#J4kIVN}6&-&DP8GQ9F3pV_=ySZyyDy^z&rRC-l z^5AAif!bvs%1pm^#iN;;7&7G)L2ZFCYy=Md~GHmjw$xKME)a0J3&j zl;Y1^QP7%rLeM=U1_+ZLnCzS-zbt?TKRz3&x!K|4aU>~)M;61q|BLQT#xQ}XZhi0l zh%Bu7YJU(58Dp!sb(z74ofU%>>*q41=?cz5lTs`9kfvP(6bi#4peIdQ72c^G?2^DW z&z(&^j?*NA#Mn)g4lOhUg$-^~I@3HIyEpr~v7HA@GN`X>aA}ois_`OZ>$VXhQ;#MO zVWu`yS@xmcps8#fc4Cs9-~wp$erS9={65sG*A&K(yC9B);uuUzss2Jm+xG8*KS&if z_GBaly?-zVUf|X*LqKlwKx38;y&76^h9YxasPckE`p+=}-}?JA@6I@f+B`OjD%$UU z-9ZWc=*D@lqV<+%*fVFyQu{6DuD?*S=roSK|1Xk80Kgu*wxzVehokHKxe9% z=?}=>*>O9$(Ap7M8fRRz(V=0o$@rd#@JsDbJ!!e$?M-pI@eAhHt*{3lSw&jc`FD41 zuXkOv+mmz*C(*& z&cTSXMfV-u9i9uAUAsb~3J)LObT0%BrCO_QJJ`XlU=<+DA+za&yBo*Nt$oy>eH5qXG)3rAz4@3M(Hj?_ zXs$Y^BWkcf`c3}p48PAU5()|wae;gmr@q&23Sc2r6n`f&5VX}TKt}+}mTu0a*W&9X z6cG?hRsG=$pi-~SWM?P_%ry+=Y4*9ZADGOdwDI)x94_Q-Q~_*9dU|+xuuWU;L`u+* zn71~#R6CV6psPp}J=^l3QnhzlYV&=B`?XF432fKKF858&&3*(%BPF4v-0kdw>y zyqb`|@bq9VO%I#8r9yLIc)4h;EiyU%0PElo)#c}EWnxmGMKAF1J1LIuGQw-h{Cjov zaXaPM=&rNZk>B0RaU|7g=TUXf*@=GYm^A>f+zia6su5$BY8D$b-fVAwTmYNHp%6Z9 zq4=L4+SH`b?S_ZLnhLOi$|{mJ-oSU6Xz&)CQrPL*Y-x!j;JUin}bkf%|Rc3728lnSijES)-kh*vN&`^6cyt_Q?q)6W;*#`DF;oN{NKAG$f8u zQS#1slX6Ow2Es=UG3RSFBQvv`aAXean&{Z*xk|AlY06nBC{8QR?@c?US4Dxe7;Y&7 zu)gnXEX0}}w^0NeO=D4FNQ$Dsi;hCcKPN5H**-dYWvzd%A{=L|s}scm@GM@}2Z$S9 zM(Ua^3oGAy#MpDE#**R$GAH(9SYa@dS2*2oQ;Y9+`@TT}0SWHe{gGF5LQZC(`q-)2 zH}^$qmvhZ_`KcOLY$mK|2_Q(3+CE=v2(qG?R}o`rfek_=Z*0my+_roY{jxw{V71z% ztVZkjJkN{6vnKS4^1Rr0S+!ZesjG?vtDUll#!qH7iV1to8fAfni-tEup4jna2%L0tKaNoO#wZrG%az(09(!)83$0*Bd5-9>JM2xe3-l&BwycVZ-QNw;q zl+jSJt_erSSWw^kRS_2Kp`iwRnj*1eA&%6sTYXyEYtR(y_l|x2{O2t0`g-o}rpfjI zj?G70ZPPTNUF-%q+aizQjo>FFaYTDC#F;@&jYGt$KsDMQn`p{c3n*!670$c6rvhZ7 zTlbZ;$Csl+3oyi=bGXlm4WIKjgJOlg^`SAS7-$;CX(yDauN&Tmx3_o3y0%u()mOsF zKp0tkJy1nPj!9K_h#Z52s2&Wa)~4aSWyJvqp)#Oq)J*ko;plDOO?92LcME8rNa=1l z`fXfZcc*Pp_ETC`)9q5E7U^M!^Qy><6uTXviQs&&Ci!70p#c4XkkW|LI3al} z_KJ6gkdU0gf|ArCRqUlM-DU8y=tNe2aT7w;rtMnR@Ux8#+gdF#i3ycrce@u`o7OV&>&OI{a=SyRtFXhbp4;5 zxar7jS9#trN$D^!1pc@U03DlR^?d9qy9mY1Ixi(fe)`hnF_^Ju#eRl;(5xBdzmm+>SgSDv1jd1~+TbQ$;Po*-A76N6a1fE03?} z=)*m_o?C{#$eJ{|5G!4^WL2`_Ovdm-B!odg>s0 zK3nbXdivD>Hw#A}Qa6Ys94<~15(IcU>)gu42ID-R@YYBnenAhT!c)OqSaB+jBg(Te z;Bpe-jU9N544+Hz6h`QD_I|60?etuH^m#ruO|Q<#r1<&`Q(*aJk&r>QrRN@mNC``S zY`}M;XM~Vh!gL^of-HQ+1f@E~kQ)qRV%4{5=v`{#boV$WP^33Y3#Qi2oHqMpXArQj z=zp^_y+(~HL@Ytm8`ng22kV>x1t(jg=r#Jy^-yiEH@~ZI&Gcl%IWQ6e5>=v}EUxEz zi7@Y8FNtv0mc4a6VGy9_yH{hM$GHEt-<#B59u6Z6Sgu{^X1_W9eg0$fEBGR^ug|gs z4DM!6L9EEo% zYY?9cPyKk)Clvc-m`A2Qapd{nXYQ9n@c6kT7kAy- zsP7^Y6Tf}~kbgNtq-G$1`B#y-iJP5p4{W) zxF$e<}-VcQA}EHlMYKP?@PD@-te!!)?}s z015*Gjs!l0%Y_1>6KJI_?$JkKzW%9o>`}LZu!kT-Eqk5fNQ6gcSZ(p1%%iw(mW(z+ zA_m0~mgv;$rMh67;gB?yW+<8shYn8vRJ4{-E(qP4$+iZ79B$0F-9>?YClNR#(55&z zIQPHVGJ851M{vl<2|BnfrEgfu8BS~qD@X;X)oJGMt3+uai;_y1N641KdB8@1&@}_m zL?a{s$lT0op}X4mP+JC*{JX|LN_h|V%kJ2$Pw7F&5A)Q1wu#|nH2G-S1d-PQ9PvoB zr0>hKz&_iFlMpR9C4|A}l90vfv{+mwXlkZ2ZXFjR)z|tYb0bON6MYhhINqoWc3l~FJfX%At_tJytWr(V@pV|-0VASGuq^c-wPM)X? z-%8C2N5Jng-&s#M0p$Cdcn)o|p>}RK!Gc zd2=-ME;o+OY2cPsaEXBL6OWA6Px?%wS_a<*R69M8mXH@0#KRij$&o3yV1L@_|I0D zj0&p3NfT;e6u8Rfg~wO-r~I0_foXNtJh?!nEz}wKr0?9bKmOpVc|s?SkhnDshJtd3 z72q}suJq{LcK6$&5WNQGt!1bj2o=4Yy?RCCXt8^KAbmxj7~Yol>WB{ltb3_6 zm{=;Zgn_7H24MXK6}@sMm9hQ;$eo0E>eNKaoJ3JQ#^&No&n^If8VzRcE^yBQAL^rT z=m+GG^_=^K^>#7ksDcntilh=LDsy99-jXUZ0yySyw6g6j?!JIk;+$j(auFv!pMuxn ziHEVP&$kVoa3nIDF{O8ajSe#aps=g1^tE>0k3yJDg;C|cN*t!Fh+8!yU8}hmLFAiG zH>=fP0LwH>7lZyBz72k~o3SuIeZO$%!7s< zM8I0U7MD92QNKYtn_F0z>qk8it_6J+xv)^yNNJH@o6MSP=U1ny4$1g3An2Dw_-hXw zcb1LlULzaoQbF6hMk*_n7gAV~?{j#R-db@&O{??_b`u(wPk*9zn(cIVWRK`fp;ClV zv2^i=omC<$zmkHK<;Iz1s!$7(NAln9uZsx>YdCZ(9uem_@VT@XkDD5kqiF?oEZ=4~>%_^(>{w}?mgp~3qzSr(pW~C95H%;-jxvJUc9}J2?#FTyk+E;W zK#=Uj8NKp}ZWF!{O-qM}M<}aZ&7MsGKfKvfNWXU%c&^1+4mCrv2w@1ppKz&cfD`ff zk46MxMw6k=t(^}9xf{HON1BjRWe^G==yn_Y;qJlLA|NlWeHg#3!Bka}%Y%qs;}^S( z2#e10-unJCv?^#~Ah8g@K;?2Akx2oUt)WML`@PN_T~%K%^D1t=ys#?A5=JWi;b=aUv8+YV76+hvOE!T8X9uZWs+N!iHy6*LE+Uf<{5=THWF<>Hj@q?4O zF7l|9VuTddcIdF4v?{px8M95@M;pvdEu`Pjha0|55dt`{a}&R5v!BdCW0eql3Xo%K z$ubIs1^alY>!k0`Q1m*%T$RvbG0e$LA|S_nUHI{6_if$u<@fRG8Rl!-tIWfMWa-C2 zyv>QR8Uyz4RgANJ_3La&9}z)txB9uDM2wV7j1&YC_GKNx$ENmz{M$au#iGG=l4n_6 zLI$`ocU}Erh>e7o6{QCl07wWeL^6!d@2PfG-&&vd_M&8$=&H+8zE22t||Ic(f# zyI;uqap6kz03qj}IPhdg4pn8i4W7}chlXbH%=N$HSq72YL>F`N(Y}I2NGJ_*cmmsz z$ZSJevj$;ez7flZ+kSEZdTim!5Rk?Z@Vu=vuoFk+Lo-YxjlW+L6%B?NDq{j=>34K+ zzL@BKz`+kv43o!n_H({~%4?~tdGfWwX%j9d8WhttT?kZ$VpJ#q>gg30D&l4O)nzXD zRexUVVK)`iYq$sFAQs^G`)7%vy|!{m&1qG1+LdEEOvoq8V-r!&PuC`K>o!Nv@I$Rl z>p#&_Deiy1+My8C&{^JP<8lj#5W;&Fq}q_1SYuP!$Bi9ZL1Eaka;CqY5j9NC?|ocx z+UUf@2tqOm#>_9B4US84t6k!C<;N4L)0$lW?9eStFLL|RIN)>Of-Ebpo{{L;cHDUT z9QCkYRB+h1M8R|#g(m6dWKxUg-rZs48S{aQ-$O&EpQ~(VXDasN)3Vq_P@F)M<82-f zHs^BIGFZFY3%}eLNb;Mdq)TP_K{T_Vp6!*|!Q2Hw=hP|$x=)J9?@n9R%39TXbWTcM z%|mdSWI#p2Ogz^n+X;-fR|F8*L1KOiRj}A;kl6TYuO~TYP`2sie!%JRg*6Bz*igR6 zescbyAz@(H=PVc8??~vQ4e}cR<}-dblj_)yT>oS zx1V%dR^u_d_#81944BJg!gU~sr2HDBrU8Aye!kuaGy-7ecNA3h%w^@ZA0is_AR?m@ z6W(zn%QmFZuB_AhQA|Q=ippYh0vb_@46< z5Y=axKe*`6KEjQ_x0bk?CZhL+EPSe zaoK#XCiB7PlKX;B{i~#-Z}Q6%-tP?PGyaJYRR@0yQOp7mBKl z*dMNQ_0@KcTPQ=)vS?{MlJi!%DR8#J(|%r4weAkzGgKlRb7Z7HTPH|tdNg#Tt^r3z z&ytY{VDf^6h>ip?9+6$|e7FFo0s{d9IM>k3c-u#Q2bHfR$eg(J!iK%{(b2Kvg6Cek z`k_sm4;SgOKIwS$#8qk7a(2Y-UrbCCY)Om6Lf(U9k?~6$YR;HUUO?~FE>oW2GdxqI z?LY|=hXsk@)NulL*HWds!^j289RA)jf}ipk8_V{RtS!tz_#iHm60a=nnOjw1{dP@u zHFR^D6h;UJkrM1PbZj!x3Izqp`37(JazZO7vl=@e%VlC&Phc`Gkbqe7RpAU3{v1S% zAhIr+Nhn_V-1l1&au>nfnU*xjDp*T;vjSXQ8_i^zk5Slu&{(TkaV1Mt?|(%T0g~8b zJFt6>j%7bcuEPws6;lF)(#Q{vxQiNyR0MiLBV|D|d>>sX?Tfk;XKK*ah`OXgCsM0Gwy zmfVk>i@d667B*7xn;Dgd@uvi_Uz1_e;Opf!k8YZ`rPHQw;C++VK~iW_5fzakL67~z z_s3*qEIkTt#~Yipiw%L3`t;4a%bw8dymbe4k5>D=141lRO7w939>>eQI-rze_0UHt zV$2xDS|T33>nMCSE&9VATr2tGF*ErwFfl3_C06J9^W-Yo0Ncyn3M8O*)$Z+9XtjO* zw3Dy*O6eTJ_<${xxPbVQg4Xp>_uLpc553b#oPohnX;$;mMqukfBk5>K zxmuhGFPHu|$RbcH1DBt{fWN#?W%lq_pS>kdd(Najx4qagY@ILs zPco5VrYSHx)r(i3(0r2}*l4{wW$`F1uH%hrkT?`{Nts0VMqPm&l`c{_9-W)|4R_h9 z%Es+rbG~iKt&VxGsGt{4lEIh4N7eftI!K7y|GxO9N&U2wOf#rGEV-Rg3(jO;p9+yW zMMesv5QK@%Zn9mA%h&t2Itd1`R7OW-k=*@?{k~Z@R=<(S`zTH_JPHA@?OJ%g%}PDd z_3V0WiBW>Yydv2f7aYaa5gSONNf~uu2-8Y=uM~|Om4Kq+`Fv9?niOxt-{aG9RpSpE z(Gk+YftTKdZ5u6J%`0x#RJ|81)Jpsa;UHt~v%&XJSzM~h!er;=BSbMM<(ondmu-03 z-JwpFvHeJ2Hp^W^7)4&~M9jiEudU%R8Rx1UnJV@bp|d(QhRYu9+YSunXh1a~pm(4n zE@$lIXpsMtFU*nK9^reI>2{kE!ec=8js}|uGqDgKkLb-M!ZJ~@=up6Ej79|}IaY~H z{pqs#lL=F^PJqK%fif+o%N|Xhu9)N_H^#v}gCqdZUq9JN_I}@d*fJ0#Jtf$p!axY| zty}k_FCA+oU)5!OBW`Y_7O}PUTuh(7bi5aE5bNkny7*MW^J7_Z6!#S*HhqClq=`;d z>cY_tsQ=W#Vn<%$X!7KAn^Xt{L}Slu?Lsy^9~6)l4RO9eqa|;A%38kme(3=a9YGrt zD2)w&t3prwA1ye_nh%4djYa=ab z@mx!zClz-Ebar^P;uSD)qjQ+NHQ1z0c+YoR4wj=PX?v`lyYKk>Lu zQ`sl;tanygel3|Bvn86!dbp*2VqHbaLFFtzBR+WfSI^1C)#kr2N^!Aq{yl4e?cMwz zJ*f`^|40n<^2AVY|FWUeUcs|YPDvg_|1(htfR7Q{#@A2^0o%pcN?b}@U_fjngr%&U z+?Iw|ik*#1f}`gc&rui{jD-8ERQYzW77n9;m{>N|U`E>V56@lP2NGM7pbygb{O`I? zZj)u+S4U@03OTAOchV=Nx?!Ebz=47Tw=6F{+^U{k?>G${?C0bfi?%5s$4uqW82i#Paj7j>Z zs0zHlkUB0CDn;Da~k-lpfE?i?LHSY|j-t`S9=pk$J|4?lR;JjRQujLVqtjFeFC9kYy-!>m9axWzp^YzVQ) zH~hNI@z2hI75}iW&*l4XRUu8%c;}+Jf`9Ic!$LrK#SL%s?X@iU=g6monJ+`@D=*4% zgtTy5QW0jfus9>0bt4%Cl`qQ3VEz5(ePyFm3l8nCewd9l{F^r7_RWh|t)Kf2EakRb zGU0eRe5|0ggp%?W2dOdw+St&@6LL_w@|MF|{}iuVOIJ0-qnOVy=im^7h)GLf-|wI% z&qIWHdAe$M6!zKOD|MLrj>{fLW`Rxn!R-g8Ym)IQlSNm1Jekea;8{T{C2|AyfYh9; z#nyKzq0ld}NZ}5kVgbd%V)Sd>xfM+t{#pgWA|T*%IT&eZXt=nzEOl$QJB3F_Yj=4x z0rL-8Lw>up^X-SsvtWQ1i5VZ2Xw0<~Ds9q;vGUc1?P-R0%}+QyK*A7 zt@TWy(aT?f1!QtJjto4h`*}PFYzgG#npYf*%JLA8AKAd3JQo&cjL+%9%C~xaM+XN) zf*-#t)mby9Od3}GIy*ZVyPx(VSl0ru?ui%?DXZD}S7BD$1Zm&Kt=!1a_zE2vMR9?2 zJ$Wy}tkcs~K0@eBzSzDQBQ-tBD{}^Q_h&1N3}3|4mn0Mvq6vi-1}aB?r9EQ0y=Upe zSbk{A#E@&8$kL!BIE0_!f`9!=exSIdp56~)4EVsQ_0;tKwFgYmQn;kJI41kOK@c!V za0m!xYa}EjSs5AY)%t^tHpj?_2!>VXNSH5?B}^RqW1Cd| zqjbqaMp`;5I(lk++@Vb?`QmT$Wa?LRH+nw|TZI%a!W*`1pwY zy|4CNY;0@+0RfE2p|AemjaK`Qw`UO%5rOZr_Xh{ajSsk|QGZ^(?q|ts2?sVV=o|J% zqmNI>hjO+=u`8P41^QK9CgP#*__}I@Trv$c^=hNJ;u40kGAb%6!a(X*Jx%}w+*@=# z9c_e$j?OZ1jH>AEvG-RigfZHc9KMvZZ8M)>c>1~B5*VFtP()LLQrazi^G7ePqgtYb z`RY<^r}yjMw>PiQf%vpE^;I*h5EB~wCni*}`EGjtXY;Y9`SYJEUN+B_c^3Bz?OU~P z6`dXFtkXY#K^tL*2Ksu9Z}XOy<(13-{5kCp2Icd1GotJJ-c(=bjjQw1pcf2W9og8e zAt`{o-L)rzY-v{R0We`(no5*_;+Ah6oY#D1WC3g0-Q^He9u5l!$I8M|Utj+gX&O0Q z@W^EU6$g(a8^0r4IWl>~nK~-Z%B$w2^F>&y;MzZTiWXL}|NiWT?fV`_N(ss}_ay~b zSXe)oDtCAASRTKnh->*yF?+iCE>9)mLaAjr1ke=V6F4(Q2nACqeI5pUA5uqJc0Z=B zu3}Jop@V~i6RYfx-om5f-yjnGszhxn8QK+WIYOeM?IEgA&Ttj|a`I74j-KH45feiJ z2c7RAJ$N;V*!wnzMf&hwSemFov3p$+hIN;l&N3n8j%vxs7Ei1BTF~__tk#ISM&Mg= zekO-~I?|HG3-sbF-Cko&!{-`R&$rb}a?WrQKq{230&Lr(<}acC$`F}Iz0udkE_bG5 zL_8StVS^EUy1rC_!?4`aE@!gHx~(Ss=U)_nmC~Ddvtc9v?Q*HVhNrR=oi|DG^4CCt zrDZMN$O~~S%f_X;(xTLlUKSMQtP>hNoNnKt-VVZcX8*|0e+0ZSVs|L-$1_!*kI;nz zp1Fs;iXQ^H-ai{x0|lGGDJMDbR{S#TxtNIwZB_GfmXp=V8ty(j2@I#p6DZcl0r*kQ6PTG&jc1`pn-cZOUSjJgbRvK zKLQixd$+444!VUYqKhpljj(gzT-y&{v}k7#)W$1N)sjPS43GZW8KJjikms=Odm|E7 zC3;%VW!lf&P6BLTMV_urXk*AdZkoSyF0%KPr{B^bG&vI57S`TYd}mH7x0}gvvu4}u zAfm;x*|20kf~|U+d|+B!8n|7N`&fb8B#lSk2&Vgp!oEtpqvaPC7B)98TR7>=EufqD zGKOal%PzyeO`@>-eR+PGDFz9Q#YPy0>okg>cb^%RR`?(29$ScNIl zAyJaif3_?gq#9m5!T8c=YBFnd+pZB=v1+FLO&i~bCDjZLYmFvm3W{Q}Sc0#+?AZ9Q zGs2odIBe?^7FH6bGELWMog*7Rr5Dt$gyU3y53#V(cM{XN5PXv%s=ET9Ztq>VXHHkx z&}B?<7>&lQez92EkKji*Y>|cp2S1!HO`JV^VMnyQz0sS9P}D&+d}Q>!*RuCf_1_gy z``XCe*q{oQk3cIcf5*=5k0t$jdK|P+Yei=fCuYygRmX3T?MGE-+sqo+2L{do~B$$&6 zSrZQqp-~R(p0Lia6?>*?@wZOd<|8}JYzTtAA6CUB^=}H)R|f817@>DZj2eyN31l)0 zf`Wo3)0wMnjz_n*w~LF5_}ngPRVvymRVtRDi1;yte8dxb)0dqbA>5x}B12TeiRKO; zii|vmv2qCga+u-=RzdBw3HC1SoMI|BXg4P`TbUDmIhNn!CJxqme0`TvuDV~V9gn8J zgr3E2x%>rZQT~zBFEljjPloi>N(M~AkH^n3%a(4CcL)#UMGz~W$xWM<^F=@piW~h1 zZ&7&uql>ok#bTDdT%((lnVFfE_Ix*U6gR=*drYH)D>K8Fo6gjUR>jFRe?L!(nT==Z zr{F2d{KVnGCM193rq&$7smNvb4IpG{Y>dzA^^J#T)AjE{Ty2K9N9LR?D!TFk)gGrw zfm(aJ_RJZArJ(6v0dkyo+({Xou8=*#mr^;sJ>8(ws#tAxV#kqtIPEsc-+!P|u;zo$ zP$U|bsl417%f_(tONg}y2SMfBtjIw*R(to-2uUe8Io*#XQU+Rg@5bJ|u?mZUBxNOK zPCWG2Op3+_DQybmgcL-OioGIU&nOpGRm+c8BnJU0V+gO7!+WB3FS+HX!W1H!)A6L5 zP(I}cA=7Tlg;Ico_SbUwUVlORII`W7Fhk}@Fu;u|$&XAuc7K@^T*Fe1;N;R|CSP^_ z&11-`cF`f6>IzR~7l!%D$2ykjIJ9E?^99fzQhcj}GBG#(Z&fys0;@1%ZCbQ%lB^Lp zV&fH}AR*40VmeZXA6sVM^ON%FE&5Qp?&H?3Elbm>^lH=9u-}*%;R|GFfk`0tGJcN{Km}+e<#ss0z$NPqp$rk=QPwo$IR6Qmz+MfDugE+bsK*a=P_S1FDVzXnMk{w--kNC0?AJ zl_O?&?;9Ut0l!$k9v8Pc6R!r_&2?)z)vA8JH3~R;^*_Z@$!7oa2{KtvWOkX^zxdys zlJz~z9sg4_gN5t=vUGe+|5vAEIL&{>Gcql$@K&7vVbC*l{mcBi!=UPQDxjWEr`brZ z+FbdagNVx|b69`?au0M2iZnbf7i5FO?2b4lk_aR{|6K`7#E?wfh>dEkzbr%44t}64 zORagRwH~;dVm3xW{^h79NL^aGWIz5HNT}CIX-r5hBKzo`nm%{9w4KiMyjDTmMHS~YYFtIEpLsY0E$%3VK)TUXI`@YNRNVdEFw z9+$!9L#G7~>TY-HdaZT!GHu*)bXo-lml(!=R;Fj+j0S7`=eB9czQB^fJNGB^k5Z0# zo@j$Y9c0exYDY&5YJD^0OD17onxv)VvU1bme(h%2-QF-%YEBz`&*jlomHTP0)2$Vu zFAU(ExASE!3W@T+2eC-r?V9T>8?AS8{RL0X4PI@6>ZRuKkBPXfl^8m2#wQ1ug5@N^ zf(waPSMMukO@~3;V*B2-=w7Ih;ijrrYiZlQL{CKZt}~a)NH+3Qx;+j%52ynj%7(h1 z)i>gog7Hfmj#(<0rkF*5PhRJRN89&tZ$()MR?0wCUkWez@pco_4VHT=p$#MOC)2|9j72VZqnpNM`n7N3 zigXEi7A4HwEZee!lO)*XHqv;6Xi&R6h{p6mAc%l~SBAzVV4VxnC#*5De_FU`0vPF- zGan+Jh@{vO*gU|!m>N=%6)WQkzHB&p!3&OA(4z`43@33w3`#v4DN#|IyQnmCuyP44OBKwvoV8zq zhqdeD6~QqNlittCHj3WFhv}7)X0#__EKOn*01-_6N-4(2&nhaeQ*W zkb<8~NB9r{WJohr+-x0vFivscy>t=Lh&cnfLj;}Tq#s?M(`c#IpP2Fxj3ehDIn znndWsKmB@n`Tfk6nJ@l2uGaH+&FwW$#s{f*>hD!c&~hJ<`8eJ0)*EsJ0L8Oi_H`VR z`CXsE+KOIKZ9+q~4}sGlyIOZL;*HO|tloczl4jQxh>+O2|M z^g#hq-)sw>WP&(yk1ky%+N{*! z(c`{z(QTRx2-18;N|4A&7Z zmt6GMN6A116ja~hD6rX7SUx@XK8`A4f0IBY@H^^@rzqoccd91&GV$(M!5DeLUNiDZkZ!wH5r?FOXW>$yKJE!%wc&!ua zSm~^QW6bx1Il+T2UCcEXAChl~lPDmCS)t$N{hP>#?fF=S>Urw`4CrGzP;%S5;x?SY zRj0JU5;Jv`@wzS_>rq>0&zRtcUZi&e!MX;$uMWTtG$xJH6CDsO!;!M_B1zOA0-j+7zndH)gNKRf zr5{U=A!H>_wWT4l%Ax!1w3c!*%_5Nog+%YsQAALw%2f|U^+yQ+!Q;!RQgSNIb+x)4 zPA-=SH4)2BlfL-bY%Tu2!*+g92J>7guXwdz6(N)fe%FGD-^4B}l3^1}&4ywY)r4&LF< zA1~Igj3#R#S8OrzybKqea#?SUsGs)Bh#V|md%t^8eT?=JFzgWH+kN@-5+Rul;VAa< znK)O12bIu=vhc8e+4^a|ZOH@$fFo97$AcYVmnkw{sM8=(S9>egsVA`_v!0F5#RWeG zKzE-ne~NuQ1;g$DElB+E^6F4&NA-IohFDr1fy@sGb_qGhDoUC0?JRfHppZxfbYgt{ zCW0rOj*)d8^&@|xlkR(4j$(>a#0c_RuO!RVtTE0?g^m$V5iM)=NdUR~o)lOQ(X|^$ z%s_fT-H&lc_l}pJ|GF#;{fAVWk5CdHib=;$QhZR3E{|=y^yjCF&V+0sLtlDiK)mGk zHojYe> zMpQ1S(P@G3&tdD8?utv7YLvc52htjcXT;KeX1Wj5lT<*c7&Y}qRAQ*bFM-n5Yv_rn zz*UY~_@k@S*Z${=ptw{I&|2yy9(DJ`{@9b=>|0eJFXZk;S@Bb0}0v+(L9G8Z>nv!Y?-($C`$OQyiMOZ{B zP=rGS0s<50x_VB=fXqH-G%wYDHzhs4kd^&WocQz6$u}!odOnL|E{4LIExc7aN=n#8 zosEVFIwDs9NM+&OB>%A0;rdZ3h{0Ta=X`#*MEJ1zdf9gLamjU*{pyK?Zd@X(-Yl5a zh4TvKM+NFPKztY#2+Pq!2+uD#&p-H6;P>@C%>Q=OcW?z-TGmZ%AtDZslz!%OP;gB{c05 zQ4j?5PmuEChTfJhE@$>i6{8Y^T2K-V;K_Y)a0m{?^_yEy5nD!5wLx7M{`bAWY{ZnBQs7PO)K-)w@i;?IE76aGT>a?mVIGDne44l^~ zw)Jp=lt;^wvUNS{wYDIfe{aag-9&o3gQIfUgHsv>yY}O~iSY|cn?@p+>E7Gm4LgFP z3tASR#Ch)wsQ~8pyP~8Zgzt%@%Yy*n_&hXaG_%Tfa?;v?;J0CQ*^UJb+ugkL z8C>#78cUOh{rKSG)6G(JgDXZBx5}0Q2Q~;Y|1odMZgBYC>~-y%@mR1_eld2&`PHYV zsWBJCY@zY-GG_T9<1h_6pmoDQM(8SsuZmSY>ydLPH4KPTdRG#ZPQT3TaYZQhcRxQO zw#RC0Oq$B;V+#9>feXpYpt|~xMa5znc6$k&@=2tz#X~~UXycPTJLb_jUAtXlWuFxb zXgB9W5I`hPzt8<2!ODa)Yt>u(K8Pw~lM81w%eCmQ)7v_<4V{KuW{EtEOnhZ=NcB8w zCUVh$pdM#P_!gKaYeP3SNIj2w=uB?nd5_Gne(|=8JOL1?IMKsBJ{k^BNj4AjPu4R% z*uS<7XkUISC|*9)_fm3}VVI1wtqnDd6b*+ivyolWy}V4!i$>0|8Lg&T5&=;NQht32 zo|b0$x54_y!t}U0|XEPa#IytlFUkL zGO0KPF`E$3>sKdO2EAmCEcm=?Uk%b-d;0En}xILb&%c*_qeOh zTZqh#6W#Hc;$vU#Bcn3Ee6$^<={k1vEOwagP+cs@!zuH)XtI<~mp1HcFDY!{r6%)H zd6DByAO92`jZu`>CvcaYR!`6Ueb{TPdB15oLP0Xj__$HB21V5oKEBOwyu;E}OHfco#P^`t@V@J~McMWFU#3n3&>C zZ|q?E>IXJ9K{^Viy25(B!|r5iX|L~l&0kM3Sb&<-1S>MYZ%l8itL4w=*qtTIevbDp z=K@?h{VU($X?a@%`|0Xkz_P6}{bYhUTjWtx4kqEUsgnd&E@=Xf9H2__<>(jY@!HI) z>s#ZU6FEBg)W&oBL-6T6xlZZ^L0x;@Yv8+SObWaD)EBqnq#D;jHHaWJP!jl%INPG5 zZBtA4eWj95$!p7|q5I|%)Bp6%x(x;(=W_Ux;md2#unM80^;%H5q9cxkm~_SKgb3YL zGda|KlbC$!H!BY!LPeg`PR7!M?w(kmvO2Tu=3xU$Jh+c611VYn0%(iMLdzpqfO^9U zQ-E=am8vsqGZ>RJfBL2@SPqdy(hp693i{S?pk(c-bEpJaP@+l( z*ty7AYSy`EADJ9th=j{V!$u5>F@{H{_W;dJO)E`JJGMj@$!jr%CX5Qt!sS3E;mDZX zhN7!T@3~$!9Mq>oe63N>af& zuVXht9#|(?RTQwk>-2*1Dd*0nA-8%9p>IR!J(~at0*%qIZgu}1x@eJ+f8+&f7D^Gy z&%Zgcd}^p`)%Z9)I!KDsInV>4*pL<7q9(@n%LUr%XE-iO&mH-Ao!waQHC^`_;RG?Jea=$wE|; zfNH0W9iBI{PO4)iQ102KlRwf(@E8DqpjoYg7<8KqWJ}$rf3kiqSQO&h-f*Kha4;EL zwvb!|TRNt(aP)oT6a=KUwIj#V($(5{QzRFS2{g(L2?B71-VcXOcDyrN@u^rcAP_u?Df77A^N(A}9ngUXte$gVhd8L{0daxXy>|M!7x^9y#9Ks?qPQZXg)sX% z8*%zg9V!f|#hhF@-WQJ3Cg>s{RBcyqL`8l~!<9Wfe+#yMRH@XC$m%B3zBOObUtKQ8 zx-i&Ir$4Q?P(~B-6*B@QVe&|k$l081a{|VQ{p_fB^EynwMJsa@R7g%()pR`1h^}rIbtNUF(hZu`{BFCc3G{NP ziStLSn%Q(N8LOt`-t zB_N9WZo9S#iruFM0OZ}7%Ai8zol4WzwiXtbU4$SLOP&bD!FG3$ZQ9pXcXZ&Yk-@hv zn92x$_GxqjjoXL>(8hDIa0{Qi&^BqsZ2cd^%cbeBjT7|dR`j+aax($&$nMiYho z+4y|BAp?m>5!5f<4hiTb?VsYc6b{qqHvsfnup_%G&grbLumf@>rsQfoMU_U-&~>@w zx6GRD+){rL10>6cpj+T?O}qo_1YGjhS>>EBX-s-Au+1#burka#WIL&lzpvHkr}V)K z0jDR@L5S$fy2#?0f`IZ^G^A?&M-WIi)<#U*^X4*=DLT@cG!)@|Vq2j;L8v zeouV8UwG?Pk{#F&nBg$GvKnsA^D|?AYJZe>u3FW%z-zBecqh(surBXHhVBk^)?Iv03C)71#@ z6H|$|aL|4=O)HGw%MnUvF3GD~Y_w!lRDr{O+_9oPXQYGf@&0gr7ry~f%<);8U*xu; zJ)P6+rs4H0eKPoI(x0*s^oO#)5U0vT#@|9erQj{ee%nS-1g4rUaz^d8q%#_Uw!7tS zaLKR;!6XqI2=ODznSZu|Giga%H!YrrR~P~?7vJamd|%nU4Gm2I!2=C|23}m8F_yKp zvv?o00@(r5G0;A?SHCtnUqyq6frSeY)!HbZRz41rT2Hy0t9a-oQLircP09c&B6{uk zmNG8Am(Y@GZ~IffIX!^zB?>4sNXQoN`(K_RsP6W-4D`>9_N2n!df}oK>WMWPspgD~ z92c9`bUfj-QpH7#KHRSR&F29~ku`+$=1jN9kEH2+? zUg#Rn062M)Os;K@YHD6;jv$57j^EyY1#$K4!PSBx;BHkWrNZIv5}5$}=Nz6QUwU9u zT?`6>Ag)O@vA$Ru{j8}z62BJ+893K+2OaI6g-4GCR`d=z0OdLH(Nf6eYCfN`G5F`J z=MbmLM8=qyoZ+NnH*H4Xt$P$@+ar0CJbS ztnS1A10(V|p7;PARzLs*C)#Ub28ozx6|NZSw2`90{E74&iE}a{9SsDKKXq72!+yCw zq^t@m_t^+9a#;-du$Wb{7W)goF;zN{Nk8Y(bBpaNZ=vL?7yhUskdpC_$&mGw)K4E0 zrSgZBO6?M@#zlDztBsZkH6K{zaoN|C=r=ipG0%^E-y$qb@9G$c9VA_I<@t&F-nSRBQ3Nw{I3*c_5O3C)o(cMp zP!toPINa4iPfmGnYzor=AGcjKhXONUkN8#Kowd>-W;YlMPiNGiZjHhEMMdq>F(7+r z+7Js~u`g`zDg&YFnf?twqKq{ld&`TieH1BHzlP08bd+$#7&rM;QqdYZt~-jWMy~7E-oikE;Ecit*5==hcw=wb}A@C zlRkY`$jn~{KNVa*cASPG^M>zUTle%M2t_Pux^{j6zpY73@#$v$=gb7k<}>gNf%v4M zp4&K2P^D~=Ww8>X&_EYQExscPzb+9>XoI)OlhDt`-M!>XrmUBXo~%{JQVXZ78>(K= zh_934=NRibx-dq_tat(}NB7#LLWKn2dM-JZ-WaMP46AG`g9Se|6}h6Hxj^KCO7mmn<{Y(YJ()t$-$_1tr9y- zpD^S%mL}B@onq||^V=tYVClk8LuwWtHbbIBXw=fwN8Q{sZ~ETl92`W1A4!p<=T6p? zx9Iv@#9zIv(*{G`$A`ZlK82#FI0OV5aXcL}W||FllDRzwn^GN6nJ&5lN5=RcTXtR@ zMEq!e?VHo-AsMf+E9~srVkj^>VoL3?ndL1tpPR8UU^6W`?d-JK)?B3fNunr|KpE(JlQhAy!mqUpCw>eR$twBHILkxF}rlR zoTlDK5X6$gD}bB?Htjq)=`d)IgWv<4rc?Q1ddVfp=ZeoH9%2%;BBd#b>|Ga6Dr7P1 zVb>q!(bXjiz{=hsOw0_HA1JCg!qM$~SA?ToRF z7CN7&huubFSX5gb$y1Yd2TV8S%zaD*({QSKGS}nM5$j4#M9#bL=wxbG6c;o2v$mPV zo!gIrBOKn_8;NVuU|?Ql`-j8p)L<%6893!gNTb#TLyZmD4?cH=Kb`8V{zODdG|9wK z$R>q8EJSF~l3DDm9`oS+cgE}p^w!#A%)~w@nRo>q^Y#su?b%_j&#>3b;BdtJqZWHH zNsSs-Hi^!?lWmAOl`R@{03yTH6ojdCHf&o;&x4ZN_^Au$^aYGad!ooueMEM%L`R^^qBCS|Y zOGsog*A-o?X~!;(pwa<)TW`;n!6?hM5mlwur+WFDG%B_B!>ne zSDB^=BVkHCa*t_HA7t z&hZ87x2(T0HWh|`%`Q%xOW~K`%dVN!U9x#-Km+w~qH90_?@kfG^|T#xDi%c1BWJJT z!CN;j=Cs3crE7dAl=$--3p99FO?3wh#20PmK~TVTEOPLtuOP_V!JjYiK}S|;{LMX> z|1QL8rEmM63nZ9XS^o___|Noz46*)4@IeTWe-}u|NaKF-BX4J@<6EkAfn4{zWhTdT+hZ##dK;fxDNTzKe29XmPa#*S zLYl$?l{RR6*@OrgU>=m(;h80yCloe$hUbDRnF5zYhe@T*AXl%IYt+U+=HQ=j07^aq z@qaFuwL#r}j|HXVbX@)hgNUfelP)7b^i%MR(PpIqyC!iJqA((|kuloUa6@k2!Vx-G zkdqyhtT*5r91L{W@iuIPA9P#BBM`W=4|=7~D=Z8y7&lx;w}XWJfwBn&z@_#aYFtiK z;gE_VCdqZhAKw@$aW{nl@B`!hPP<;lRxGzX3YxpjWo3e^F)aaclBNZ9i@$}v^xQ5> z;*Z}PV6mBHx!ct|PZj8lM`!%Qf^s8rKl-?32)nm$9TZ2e_GP_`jkya@X;*B1JQdrL zG^ZQDA0RQ4l+McNv|n{8Ei*nJ3zI?XSXOi{-W`f#tfhvBFE-JZ@eJzys>h$B_*B68%&7P&0i09oOH%h zNRNki8q?|p3<^XorVPS3p-hJks00YC`uO9p03wt)gBpDHgGf5F6W-kC>qd<)Lnj&x0XLe@1HVY&8WrmsAdac3 z%>8cq{r9Xc++(rILdpO(ORV(4wc9fRGJA}R%G(W*i|LPId%9cuo*XbgV=nCVvF}09 zQF+5%+l6Xa+@C;fF#u6O<3*tr6v36UK()Sr5i|gR14<0U5M+=QICL01bO(T%e|5t+ zDPFvJ@=}+Gb0-s2$PAScxkRBeK(m!x%;6a!+U5C-wNpop3LL&q_h<(_uIy_E{YR_t z-epG?*mVJDQu&kX*V{{(_)yei7krPixcjL z@ImB2nx$w!{Lik4U&3{uXtezQuK@*qHr{~}3_hEXZeKV-ce=(iMjnLIlaCS3v?9MSn(C4qEJ`hU~(|2MWQg_xx)~?w5T$v0zBtOoid|x$9 zukqnCd)(7^v{Aj%;ya=#o=D%h16RPer=Vvy#H_WO)->?N2^)EzJKK46jkSSF{s6-qe|`Gm{Y8C)l`(KC2X+dRELlpDeaLX14$ExIf<8%O~^7 z<-{DbX~AWrqobpz*S0j=f=V!|ZbG=C^ah;K+=EnB%tF;x3*Izw003JKDV7xcl>yhJ*Z0Mo&0*+T-y&^Z8s%lnqgp z)idvDZqeqonw+7Qaek4$Lq)p$oHV5XvlN8st~2d^pVQnMO?`M^dvZw_%*fbSlRSKM zvgvM%CkrKf^?2>}B&BAdfHY*{7@no`I*F9Z@uZSm_#00upMHD3+E~6WkpRzf?=dzh zeKd-kNS1hGAXsbiD+TdOy={E9{8efbz_g*WLU}!p;c_Tv+dp31Y^KFw^!%X1_(|FM z?(;-DHaD8iiYc>u^KiS2{52f>kRqdD8Y42i-TiZ(^M}{+=@jPI5jzlsnkpCk zG}(7$eH}1vv*J3F;unM#<*#8U_poMJO$CxvL3!~!1 zYpbV|%?#rQP1f^Mh%leMLQ+)$N&57NR!)vX7w&}xCHa!o(#vp|Gg`ly0b4p^eR)U? z!xf%d-)sH$RZX?ULm@FOHGrN4fMK9*%838P*zz<^O92kYl_vpOt3V`^f{+r6)Y5#q zKLVj9&Y#g37o3p0SEPD7HD$q+$}eSe4&zhX?6Oy(+fX8VR6&cZE`(r5q^tl6p6_#d z(z#CmdEH5BNe%dldIwd`HoEMG@}0il$S%zlEYC_7CCv)!5xWb0Za5xHFqXJ(+26VL zESNQIZPzL#9S&ixZ|ZQz=rcgxQb97LP@mzxtSUBu=N~_qtEMn9b`=_qD41)Mm&jh|+y#7UqK^8Qg#l~1z0Z(!o& z^gKg$BtN?`JLj_e+v|_y`{}vX!xtncP5{jhuqX}4>^~=srQ^K``hs8bcwj&%&BcKw z4hrP-dK%$7v~GdAf*aGu(fi7cO;hH$U0?6Vj+lS9(WR)Pmif-wU>;~B>LM-#N<|Jp zC|xpdIs9Ue`)1FJiDM)PN<{`%2+u2n>)2tMQ8pT7mB1V>_4Q)2>{T`+FjPYRne>+8Y{3Q zkypV1-+B+ZG6$yp4ki?wi)c|={p?QqP1CL((L2pVX|p~&`AaQVwh=|BSvq<7LBNUT zP17y1-zADX>8Z%E3Wk^y(+A9}|IIgMwJj_+;?JpfF|a)h*2l<+uE0 zvj9?lK^S);h`s#lvAuC_-?z2yz(olW%AzYO$#<)N~S2{si9@Nv0TLlcv; zjsY4%bdIG!X#967x4&_hmMe{efU<_5yeQDQjbaRdaYLqz)r(%UQj`-1SmQt)D1=h5 zl!gpE^#>Cm@C&r! zlwk2^Xo&CwH^UjAdmKKGA?cj+OM({&e2C`ijr$ux?wr)DVMGf4%lOJrZHvp4{tMyS z($Z-mMj`5tAFM?HQSyCpXCeb)#cxf(&xSxXeVN@sP4iTlA0zbKM=acEuVepy; zml%r;TNJhw_K0H1PyBCoJ3PLZC#E?UpZ7-vC`PTFc+;5_C*S~P;yw^$J!nR7B4R)k zq*xo0j$->+ATKCv?>&W@%};A3@hq zf12a#172YcAJunoxRE>s@jfHs$D_6{op}%Ac;j<6Wuo1Qq2o0t71#gP`8xh<%DoF)kpH*m&I)&E$7IHDHF%-Ze}j_>XmE!7B`stm`}2-4(}Cb*Pe{f z&La&?&B*uXI|hm36X~+LRrLbrlI)$DCT2{L`5eBP9sQv=UirOh*QoG6qgBUi%dX`Us?$A>jSO~Nkk_DM2(sT{Ufa!J(EA6Aq)4mPCapNlO1>5vM) z*w9DF7{iI=Qg59qmxBBwib={DEYnHO>Y?RQ(+diJu_xCSD=R`s!OHcbT|9qiDke3M zwZ|$QLYgA3U0dvHWZXffmyZfsD=AjtZgMmJ8ZM)bpo6}NnhZd)d2!$d5QPk$l)}Rd zQleN3X9x`zp-6|SldhAA-z>l30i*{I3H)+lm*99Eq%lgUMZ`7l96v#BH@~BkIH7$0 zcTSdp%YP|GV`FCex0ChH^nc}KAx;0=$uhT7T1g(6>3Zz)>0-2?uhJG5G&61jNHF>F z>jiLHjbh>MwWfaiIUJKUnUF4RoLXkjRVLAL%Bk`-txfr3fd11_*PVAc_r<6AD{E1 z?)`d1J4pK06fwzOo@mLjn5Wan#=m9c`EB{D4&Q*Kh;4B})7JOt1Ptt_?#7W4({!JS zUck_i*opYK`q(;JqR%&sVL}`%F^YYUeAaJ^ zx&)R8dG~JMn2hy6puo%Z+|R|ZFEB&4SABM&_*j%@qI|>a zj<&zqv&6uY^6!hrigpcd0|7*X$k#JBFQ5Vw z`R!3xHuZ~)#1y1}R?kuoojq$I^$*x7hD z?Zpg5EZotP3ZTY_pzRnAvLf0kDNTa7jN|t0-@HvUFhx$lt5*#=Rz{V=(58~lNkJj| zfB+!ES;Gn48C4n3!{QR!0 z>nn@Vs1ogxF*PP1>zY${{SL4Jh1s>TkL^QRUK7uDbc1xl422xb8{BV`gkq~-J=bej z#nw?bi7h8jTNWA%_=QD4-Ps(=9@g27t*0$+?Ey^=wZnU7U{1zsHt} z*1E<%HmO(67?!Apo5P_1;2Swj&JFGN#s+sQUJ3GkUF0M}1>G+wy8}Je%71@HRXG}> zMS?q|%Y9$Jot&%6OYgN1Hb)_gR!tZXI!BSeia2=UY#^}V2)NchP$f29p%U3PRjDtf zcQH;#&M+!fBTtq}s``;r9GhnFwn7Ap?i~ZsYii4SJ*RVtjteKm(%#)2aR#)K^O1@M1|*-?Ks+IS)s9>O(HwL zgPj$>zdkmr%(hFM7CcFP-B3~v{dov1{0&VU4g&vPypVt%Cd@`P1B~XNFs%aqQU(CR zXWh~waHE@SE9qsw;WvNr*3Wa77l16GFCu`T8~x)&o`PSeQZV%Bp&uJRz$V4wJ~gd3 z6b6zO@Ws#8$G0unlQiJ4!UD3LzUFl3@wDFL{8|;_$VoM*dkc*($GO+YFv&*yX!H)G zAHD4J&F;u%t6!~F26{oq98kLw~7$GD>Zs;Zqs@O#i0)e0~aZho0?=KH~iG^?^ zX0b@aa4iCk06^R`;a)h10dMu)$`K9MN7{@HMMH&lO4osoZxk9Du-}j=umPlxqv;%4sRZZ1pJ!g>LnoGz~6|R;3qVm)3L;W>Mea1%M zP2RnjjNeJ7l^n?PLXIe+fw4jmHhVesb0^%uBPwNtfbFsdD-(qWuK*IK?*I{`52NmEk}K`D&sP1fq-{mrmAZH^(vZU zIVEC6^4DzO#W?_>COKq+`TbJ*>Jube-r|FPXR-~X_Msr7B0@?_Tr#CuC-IuP2LPQC zdz!=p6^D-+jS8tB&zF&RZ*umfr!G9{Jzr^Wy-{0b^yJ}v?+6p-qt6~Kigbhim#MV) zncgrRvbmQ2smE#Itdog>awB~DXR=@&g~MJ)O(4@1%r;uqn_#!cOzv#iks!s_#Fz-R zBRp4g(3m%XnC>Tr*q?w7}+UqtRY-BFnjMhq|ERG@w z%f6?BA$0g@i?`~sOC8I%dy^k{%ap z9ZiKdty)=rO0l)q)Iiw^L!hP_ZxB%StFE$t|LJn$YV|erYuRqb5;v%%rJy0H^xmH6 zAhoVH7$p7cG{(-yvJ^CZcPgV1awc5VZM(ilPLo2s7HQ7hsY9HYin5NxGb!$4isHwB zsh|lU-m!ytymDNvA@_34VzBI_n^h8vvZJ<+z^pP!jPyJt@SHT?WATGtrEBKf#9nmV$te3JyeuU{yl(bf4$gfN4XIHXS8B!D zZw0y#4uUSAMEtVK5C|2yAY$f42ly2G0&bn)0()=!!%PVcEl$Vk)e)gbPk6pGOEl=7 zN0|$P1Y!vz3C>}}>VRXc&2(LcE8_BDBz^&gxot#jOuVTqftbnAtzu)O`^t06Nxdfn z3#Z;cqp`jTJq-v3M!{zG;AH=5^9@#*^5d%gRpW zf(`)i@wY$`C>00@0PzA0*JDHMgFyi#vPy)YpmdWPmy{apkg*kY_2KdXMuRfwk_{An zkbk1Ktm#$Rjxhae@;xTQ`@l>xF4_o{)6&kMysd^8i7aAia0YG6M}9f zk~uIjyWZUPnEB(0w37i8sP4ndIf)0v@9pOaxuKGkNJLfwILwuSo4u7CVlv26dDt9U~F+(W`A9JEbM}&w)t}@08CB1CqF*Lz|f% zopD1dUR#i5^23?e>u>)@yr_nc#tY3ev#d@w-Th$LR*28~qpnFXIl(k_3l#W9?^pe$ z6ht7@%i&e}1PBTpLTNo_6y}K%0B~jhbE)vRx>CJurkzX5 zjZsFihYe6%LWBkn!g^+RgN1;;BNe33h$07hS0hyJVbZ+wvt~Ewk_a4th90~ z9{*T?KId1!b@W^F8vy})5(R(E3QISo1#hY*vrjK0)oFZImp@z9HBU-fmsOARTyVUW z97%?c0kVf$S4xzA4q`GiDdl@Jk3Al43LJ4T;UnfluY4!@aipk5fsRYFS*a2#;SvtZ zv0(}xL6gXREDsjCHncBto)N<9jU8*WKKK1~4NcZk-UOx0+RVG?Q_1ri`kQ zKL*7HX~W?{_NLROhCH0O)WTub72ZXr40D^abTwz_l=5e@*u2239T z;?nX;iMO{vg@i?%F83`RmLI880(R7Ptn$KyYP<*q#f&1b5O3~p!p1-AK#H<$5Ei#m z-Ll;;?jT0tGO-!ch=ue%c_DRg-_+oo>)aH6{XhWTo+-wT7>S>4tlTcii$u#{Y3x)CfEu~NZy6x1Z5mV4Ks zrc3!0hO7~WZETd@;G3HF1;ytJ3;}-ja7|=oPoy*`x&i+#myl2bTLi$s=TCcxvw_Mp zW>4taGKfq%-Kb%y$LG(MPxZD&&kNm%6_xAj%ZZJt*B@&v)v?t!x+HqNN-}z02FMr? z+xV(5l18UXIg_uyA{?qQm%l)GSeyvi6+PnqUBSS?(ehu_W4>!N|122%m-)Xc7(kf* zqhOGBp`f^gGt_moxnY#$0;HA+_Q(eeo*?W`D2~v;N!~z|u&V5+9ZutQHV7G!$ly<*NHF9`qS}UFKP$JH7x>u>Aus^PAed+B-joiU z@51GePjK)qPr+b5o2sB;)A5CJ2e_-*4^*J^Ig5x*D_Cu6i^xRj3$$j5elxk+n+9V% zvU48$gTo{T$?0g8g+wDeX{@ojq@M+qn%XKULEeMq>9P&d|1+=@!3vi53=^xV`cU?d?X8ikvxYko_0?+RXOYU~yIrKE`BBLolV&zRPim01{*&epeN z<1Y<1@JV>8g8CGj8ThhHdF=|4qd*Ug3FJ(Vbfw=Pvb`_7Ob2ew0;r@@N(K|%ny|yf zV;Pyg_p9HeI548IR72`moGB&3vpz@i7|I^rcN-5al%aEz8DADUI$OP~ot>Swtlw$b zYOYoDce885?=bQeYty?oP@o=NTSrGny@TOlQQBr5lg}ciu8+&h$KOnFxXXdTem&dE%gcqK=?4QPrUaDiZtm|7_S*Mcb6?eyiOfEd7J-gU{twr_%+fPm?#A0)2j{DRn zCnmsveMJphYuKmKY>qT5RFt7m5$SZt4&T=$&w6_ph78l_0VvU8H zn_EXoJ5=W?fD-nE`uv2~^<=4IaB%SP;sC6cgsnJG%> zuwWQM3yXVp%Rm`!HhM-zQ2Y^}tWN)>w4Pm`LlwSnJ@e~9)c0pA^m_m;E9>(~QHOL} zPQzp#T1xL=0XfxV$?{Qo$!J>oyL>FMS|S+Gm1Q6NW`J~i+B~qf8&0D)o=ua0?ss5( z(^5%EEvg)$xne`pgpKxulCA2L*qIchMd5u}>gob`Eq-$^!-bvjA7ALVxR|DkkmqJw?a9Cn$I)qj$%o z`fXh0xG@pN1QUzR9Iq#0x@adVjieMKl>f=?sA2D#zTotH9j`I)*8aryn)6+^;a<3dt)9fOU8JQCk@7ayd)Hk=f_xpo??cR2BDAIQAF|%iR zimQ!HGVpAQHXe9W=>vMb2riSV&~o3-U(H$+VNoZMR0s?AVYR)V<@LazSP7oV=*n6sexALd%-{`N^a-hr&0Ke$t+TrrBlVL_;)eptwPwg)A;Dbo z`uR7_MF;dR0{uLf&eJB9cL9AO^sShk=4tt}p8)|^UPwQ}klVvDq!JL<*L{x@iu}!T z&=ESqZ!RX3>N2rSa;+$Rt0DV?nN-5S3gOndVRy>b$L2giw;z3mTF(w(-4OD~wDq%i zp*Slf`%&4R)u%pZXr%3|W!8BCpahCL5}y@TAKrxeyVhaE2&f>0b+=L6)bmija9NKj!jmWp3bXDuOEySPx{=x@w&BL?x)5+LDp!IC>3#=uglBKZl( zY3j=9vD7Q{KRDa?pU?+rOg`b2E>Ic!2rp&+T`IRUGcx!WfCU}X|BaITHveNP=Y$0Q z9uH3|I0XOz8~JA{->|_}!3grcVymmGYpcUsc~HS#yI~)c)-pZoC#CS6uE%dU@Y}@i zBrI(#eTJ8?aorRnKCLNHNMx(=uzwbH)3ZY&&YtD*%c5%05*MerB~#G*HATTbI6k%m@H6I7@JT z6aF0110cAZ>r3jcwwg!T2N}}A7A-;`VQp(i9#0z4q07E+K%ixEwF0twju$*e3~y>8 z(b_&T2Xd1;ZZlR?NQ1;*6y2#DI_4#nGBm$IGlt`9cD3j&hIgMelpiO?1RI?7Us>+4 z54f<4lW}007Kc;iR`caYUf*OP2IzuZDO7vRU9UUm)z7axOPzF2q=?kkk?-&C zdC%8X`tWLVT7fX&$&lD_*1e``!fVVH@ISXEi8ma3x#()rna@U484xWndcn|v9wf(> z#8LglqEjg}(?@kAQ>=T>e}OHrY_`zbTe=a&UH_`+S1Cf3Ppkr-=Ll&;()Mwnn_)44Vo=2kj9iw5- z>%EG}5vBC*$cu~2xMpl@Lay?X>c(*U<0fm!VUpb^3ne_|@CLP;h^05iEN+>4wZ)3! zQyM(=)y0{QSs5Y}HQfB)dlE2YkcIjUAzr{Ng$?-@?ih>qA0ubRHoE9vRZZZ01lHPX zme(+YpW{k!{ak$o9e?3~f&W;D(XnTu96NhDYPJ|%4~hUq+&2{lNyuM|Ub-#AM`6Np zn>k~kkF(>~w6*Ngk`59g?=G|K0>8Euf4lI?>#dBFrma(z439Ea0jGq; z%C5luG7yFXQH1s}7uI=p8%MU8mPW0DW$I*WntLA=(Z93HZg{Q};Va8RWtt8P#i!f< z*Zp=`Lj+Fwy!mN1>*GkKL=!sBU^l9&?24yK+ta^D*sM^rDpQ5$y#N{okGuG==oj1C z%gFA{)0lya<$N=isT2-+f7ja@$kyA5@7xdTwH=A2KXw$NYoL5l*fBcEKZi^Ph(w4% z3#`;Np{cd@BFBop_PL+xKuoCDArLQB`AklE@!^JF&%oS`r)~|h;JH0{2TAZg!lV0v z9K7M4q~vu_M@{BTr~ zL}@`J9iA}#wkegr`yiZm0fx#2^hvg$Cnwcut-gnxVHmxt8|!B+zYvQ8gbKxG5%|C5 zM|goGNc(Qa&B-2~&iudS(64DWJ?i_+eE4<}6T)5Bctp2Qz)AI`(>mQk7y~i3!4rTDh;j*Kz5Y&hlJhkz}{a64!Yv2`ib?64M z)po+`y#2t0s0cMa|KX!- zV&mAly}-Zw8ByCpg8jA0D__n&nXF96btq$eNKSpV*gCLG=gW072)nw;r3Ii_S$?Sl zweweKXmLH=mR)0SC=U6G*mxFl_2o4ejV&Dw55nn{C8e7aMdIC}VR$BZsc9BnSY|0sZDt=AXHz9-DYJP*8aAscD~&Hst}QLC_M8f>mBM2D z(dZkK=B45=Z=4d-=p@2Uy+{mD(p#q{nE!D}{>Q?_&kKGq_s&aNJrVu!)HK^=JlSHK zD?JYjK2lcwGBRP75SsaPOIQihR#57!Qh5Qnc5e|QST+0>mHeN$P)nyjM*p&HVPIwX zza%19{#TD8koZ3y#nra|((?Gb(;*`*8qG|8|yQ< zg1R`_T#B*tl?3#99?U3bAtGiI5JX<-wwsuP^O0Iws=)eC|K7mY(8{fBF=+^{Zr$Hmc<4FeZpEE*ux9@D`T5C>J^OFD*3CJK zk-0IC%#Y{(sX_nBrTZ)zmG*70ek245UMip((Ek_1wS(rWtrey6T1x)*p>x0OP0dMB z4WTUN&9rHFD(qryyDwaI;=O&-*rCbL*n`DV;Tc|=@Bd@Wk#RQT58pIb+@u0eJ5nna z>M|RYImt3U4X@RI=PG?YYsY_a6*C>8)w~O{_CRBayCXmi%G5q|c(f?Zik&|8(a?3j#bJfCUXb3NvOGVR zg1Ffnao3wU_|XB;8D?J3pJsQk`r8vYF|Wd+v7urEiB;C}lD~kwjdq{jC}d$5go4y{i&ozUwX2u*YZ%Xb zRe5awDiENCRU|ebAm?+|qY^Qk?jf&F;I4?~OMJ!tWG4#5o%_<`J?(UbVFKP}Iw46- zD%Hj^x#Ki*R|{gbv3+fM{Sp&m1_TXSzFP;;!8v%g9BQDMS0Uj zNA2(Zb?5i}YejiWeBZz8o!iDNeVN!>|LY3nRZ6qF_gW$kGh>66@M8gOLE55Xd^yEp zvdj`_SCd2cNg~=lhu1rifD?&969|CN@>bVs2yc_ysk}1`Kg0x2!vn&L7@wj51AKFlu}IXf8?qtOf!lqvqocdCrZzXXoZoqW@4x1x z<1No*5omM=zEMkGCinL6P^Y}9(0&G8o9|;&iKWNubMH9k|C6LFY~gUuU~@ka?eKd# zxjC(|HAR5$>FnxS9pPg7R)J{{iFZV>Js$~+m^A-4cFlofd1hE5hoGo zr*Y=6ljyQs7zH!`yYH;~eaZvW2cLGZ!m84Q2Buw2cT2IQeRlzRCC1a2%e^fVU7%6B zseIiYY{j>cWs~gyUg+jeH!T3&r`~aH^=Cm@*nHt&>b8puZ1ehUuiqIh4(sMkkc;#} zxE>)vHl)u@5>`)EW+)xN4}VaffEy8k?W%f-<}YT$=uy-Qq`b*IYk10QftoCJ$Aqb9 zPEAZi3M7H>^E%rRPX^wya&&FY?dF@8Yt`d*XAJz4v*#Y3B154XbHyArWfS^?jt)zi zo7qfAA$LN0%VrO)55TgV%F~=Lw4ud#-`yQt6Xe#XmhvKIG_!D?Qh-DAgdcX3=?xZ3g zsg!qqlp`6)myExB*zEs(VKMs|HsJooDPQ1WT*D`EZET?~A`(OnDW3vkQ2!DmBGB&} zHmT~Z3qumf zrxrHl~%_#nG1p>{AXI!RrdG)aa<55ufj($Sd9Wl}mk_Eid#Y?}g=_FRn1C{2zwM}9#UnYE8#MuirPdk>J*C{^1T9?mb; z5b=aYK;Q-T>S;d-^KFZpfF49g>YrGH^kdz1k*O|94Nt8*TCG5y<=?61{ylebd%<aYi1!6*~;>X+i_f3wxD=HNY$pO3yEM((UTotcKk7vDV);dX&m z69J445>DF+qMDR(I%;a;{epKEH8bG_kzMzIyw#!-{x}Poauv4fSjgz758nRi!eeb| z#PhUj_-P4G=KdZh063ZfgxlNQvka`+0BDuR0UHE?3vx~_f_Y0YpiFQo2M zgmv;}-XfuzJq^Gms2kf;g$9VDDS@&bLBP%nVBx+DeR+MXe8zQw-SGK|{$eV9fS071 zlo<+9;3$F?O&QDzK z8DHKYnGnRTaoPyLu|C`2Wdy{Kv(6ubw&z9w0MgE7b!R|^7 z08Y3!xA|-TI_L2E*6dblAq>_`&7SMbd>!p5Gr95FYkP}HhG*k%GHe{fuv;bRBr081p1O@R7g36b4hM4W4 ziliBo8quKpC2LVmfl1Rp&4Q5beZsXDH;>*#!}%n0QQF{O((6MfdG!pP>TIO?|qN^1X z;w@xgt&w0*i#{#uPsbw;5{!@W;=a0x4ChaMM>)q2g(|AFIOH&rQ0Q7i`+;?+%E{bL zpI_#(%wfCWvF&QCxzWKf!PGtc=)B1Xw3QlkMxGDx?J&py07+cVEBI7n6aO1LKQZQL zk}Rci1_G?jIp+~3r^~T7{r=KP5CG)*%>@%P?UlJAv$N6O-Z+&{qf?d3M7gpF;AZ;F3&^O7Pq&t4qw9ckPJbAyHyVS$=N&`Fv32}xeZ<5 zM@fN#KM|2zhB!*U+2b9_*qQ<0_;{rMVAtwOQcSkvB`?<0G$OTr8QLNL&8c4~fLk}^*j z?o1K|Hw{I{5E94W*=@02J^Wq}hE}ew|@Zr15`iZNU>c_81NZOhlpWu-j7^^|& z+>_^ZM#<4CiPvg;IHvvfxGPI+EcHeL{wcHN`9QX|Ndt49#qDIQehN$ZSCKFBq3leY zSy88#m^3aXuBctZB>)cFZyTv_uibj=vJn|}s09=P@=rmNg}msmPO4vSWb)OPiV?mPOO^wn6xq-rr^ zlq1e#8=L6pay}98-r$@ZJ~Fz|(oJ=zt4%j}WED#3qY?JhW((qaMhaH#JP@|x{Au0K#6M~9~QQXm)v2m8k?cZ!iNQgMP;eUPQP=( z4wJRW?Hr=*=@{38FtjR7D=|5p3ZFtVcB76h20TG;tb1oNps`#>%DGHQ{Q~S-y7V|W z8s~efx8vQ@gMkqArxU(4doW`Z*+}b@j|=@dEh*OuR(xG88ptd4)6AyDkByAp-E%0*T<#gdw(##HZC$ z%qS=*ID~#x?AF1wX;o-&0JwpPDLQ}n^zsgDFFHQVbVCa(C}1xvqi^cVax0A^ZBa!= zO@)bVO>aJtMtLfOijlV8#g_v6o}V?@Maocg~}mqCaRi^*Xg5HWeg`t34Qo_a;J!zQk;$C%Ux zkAHYS6;Bw00C*weu!BsY$$wr@yG(8CifL~?R|{)Q+A@&|M=l0amC@+vFIQi}7;M~( z{EaJ;>EF{Vm2%H(4xnq)U_ud#7B8Uc^Q8kv0Py8c2m`VQvhDM+c3?RXLAq~t8=qvB zSe~k?GHdnCYSbw@{KmWP{HH|Jy4phEEL~o!S*VnX?duF1J`tb=6Cx?jnzut@WHo#< zJ_ZVBxQ(d;npNd}bUesLAB&eD!5N^viS7Lr2k%L$DySTi52WEKiHTawpuhhae5(*4 z65v8G;-KSjt*yBWsD@9Nf3B+hj^crajAh2CQA|C8;z`mY2qtM-2bLq&n;q3%+3g)k zni8bLN3r)K^uCTDk+I5jk$@%a1qC`88wv}MEd8xhp2_pn8sSMF6a4t;d$>-dS6=;l zN!A)1w6~pK<=sPkMtEs}h{#IDeD@RRX-8QW_uv?B{@!EAB6Dde$~cA(X~cbGSV(AS z{QWSn2c)5c5|x#nYPt~d%|BX zSw2@WT71CCo8csZ^dm{ZK?ri>A)#yfTFv!cRZ-q@q!zrN3S={7AAvApC&0e`(Wt=e zmyz1e!^ftm%f-tzzN}1(3E!e_xhm&c`f<=OuqixtLcx0>6wsdRLvDD~nWnQ7)mG{Z zGA1k#zESd2U?49&lqgaFkyfT2cZy;Dtex(L+~4gfLUaK4>}VKL;r0@JD60B58IE;9 zy19+ZU~5-Gt^}xoMNr0yuW$;X*4wKK>I!{f5&FTWyw`mVmm)dAAU@1)J&D8DQ3?bx z(yDnhPfOwO8AcH5B4uFt6Q?KYj9Eb(nREsVYRLV-UrlG~pSa?J_@d(bb%&`6)D!4+ z(t|=2e>JIzARW|8)k)J%pE_;o?78tEYh(U!Vn$gEQl_sf|GG9IB?+CG8IDdWFer+R zHS2!I7xE*H+W$pFKu4L6PA{w>yqFG)Wd#P-f6z;ySV9tKk}by{4p2AH7bn$`BM&8< zx>lQru6-9Lqz?&_prh{NUNk>@lR)v&e5g26=li!J z8@SgyT_#M1bhuUTpoZ=YaKyqAQq}z~*3uEYS4vZ<1R`<>MC~h zWI`t%?+=3*aNzJmdyQb1Mm7+)fdD`*S{}Md>ArN|^o81FaU&!!5eao7z)XhZx$$uK z3lARCg!7n@V9mos32CCCelR35X_SpkWA@Zm;2xj685YUoztKYnfjg*S1x^GB1b&6U z!QS{qrzI`Txw)zKDprtA{FzkL>66OwX*mT#oFWvZmS8 zd;^Z~Gnl9qAou_A-dSFEDppF z5{F~>S<3xy6-g9hfQB34n3^8yC44xI_#3Ghf(l4JE`i9R79JH76hi^w`r~9Rdw5>e zAHzMF!CAolm8)?@lZ*l(g5Y|k+B)%B-dadgwdYzOVaECOh4T!{dAwYekE@-PhnUQA z`3lP1zn#B)0%(Inc-I%m#C=Q) zTuUVLstZbLrNDCLeiJn_T{i@k=cJ1~7+XlNrlNFH>7^6hw1Iy!`2sY#omSQ$nuhHC zmy2TufhpvB&p}bkwG2f_Yu_MX;&?DxxA|p}v2JoAY zuaV133=MQsfKAo3CYPi?PF%Yt6gav~CT`{ksk_FACz{u+Z&c$4khBbZy>`ED1Z}Y~ zJgWf^SIugTewZl^c_zt=i6Ee=(a6q|AP;e~E#hLp+G~m$&QYbvsBp0%!QIKzQH{Vp z2L*&_8??LIm&yX~39GD^qJ+-{v#dLy2Iu;BC!ku{tp?c1xbAFkXHPh{sc3y6`9&`~ zb>4q{T|u1oL)N`B4i_+fe_HsiLK+O!vewJ zWsfb+jLp*GPD2^srQLRR`H3+BkD34su=a}Bxx6c%`oX_F+L87rJfhAEMwDuBc?KaM zKs-xYVn5~&e_6By1|~o>cHe6KqM4HG?9ToHmLx@!B93y18>{LTC_(gzwe$z&Hq)m0JQcW-Ga3b83h&Wp_{3rbOloy_=@--b@fqO_PsvGG`nAu zR>u0gy&gUUe$q+jK_85tO(`GMhIZM-J#4#$P|~ouVaUQbSdRTYTw5QuA$LHqq z98XQ8R(GRM>Fb$|nssGf`Z{@=HF2xm>g9|o`~i6R6VDGl_uKeEfr=Jw(goze7C_Wb zYwjILNIuTkCZ~LuD&YI?Y!*F&p+ay2@&TYV_7iZCaVhhWdy-O8K;1ff&C4cLFrs3~ z3s9iID87)*^hSVZVpIU)yO)gHRC8Zn@PL|}m{2fa{LSfwDsgF?(ONU9j%PVUj94K& zKt=fcMOFLDkoG$7qKkYLUrvB5e#?+%@Yao%)U)GpRVjcddB~=c*IO&D{WCJ=VEU?lGj3B$*fUz;u?A-+S6LE2gh_p#0FRb2VBH<@Y)V3oY zcu+L?QjK^)Jur%(FZA`&z>TCFYE65giS0w8hx?>dR9iykeX6p zub1?C7*%cfBD;e?kGV5x<7%S}XfPcY3cwzQ$nU+eux=-lC`8W~wM3QQcGI^xudRLU zZ8584V+ayaKWU4%dM~BtswMvVMO`X-;{Pq^C#>#7)oD116jsm{R_*pY|DnTEFQ{5W zpKiLSgS%)UA9{@!r?Oa+jt_UPyfJkD*px8i)mr1$NTm;kvbp7RDb0K#mqXaCuBrov z0^kL(XsG%cw!etBmyPsO(&-X>YPv)b(gw<+R`((@H&j=297QZ}`8>ZF8Z!f_=o!k@ zK>HVO<#F(^Xf)0qhd0zoawqw@l!x~U_2%{tN|oN_znIbp5U8V7N*vC^Cp5ESd2sgh zT^!B{l-BxH{%`@$*STasn=jK#h}ZuD+SoMO)D(a;woe>6GpYdwvfL_(^w!&48}!L} z$`HJycm0hW*1y^`KZES1sO~t6K@WO-Z6|oEfef4OaJ4g_}w6NaWOM9wm1G)CL}hNe?soR zt^fF1{O@FjAo2frEv8Rc&+#Jom@KA6XMr#(i3?En+Bk(xhy*2+Y#jAyQmbm;qj_}GuL@UK z%4}|P6$G|e?{NJ*JrF})#stPWIy+;jaDTeM0Y1v6CsAoaIri_ZrC|AP< zWGhmER$AD6iGl(!qX9jMRD`@~T>|^IfSBOvNn21}$X_u;Y=ps7;Dlkm!}|EO=>Oh4 zu15~$6XcB<(hg3{Bz(tOiEVg#)G{$Dz>6H8N}`r3%9tluiCy@(A8~J3g&(V{BeWnd zMq!nv8b?|gCEfcT)J!{Y|IMooYVdtrDD7DSVy|^0BEmFCvm&rXQyr>^VyxNPQ*UM- zE8Fb>DA0WiVS5_~V&>@J;G$>>013b+=CU)t9k^TX@BbnX3#Uud@alkz33<1b7lCQy z0CI%ur3D?z`BX~;KiPyuMDdgFyL6jz1_l^iWo+ogR8j#W`_Q4VrP0c>%OYT--s?e< zvNjVd5K5_)s#58sFj<$em=NS{nO;_Xv+bf37TOn?3-TP5*OdN3{ZdeqZculB&i204 zrG7eCFyC9e@Cq8;?G0(c+JA$f)2}y_%49SmAUswDMt7O{p-}$Qi!W3jTr5k?P;&Z& z7aeX?2qF{B3X*fGevP(TQ+D)Q{5`|;Q*7)OE8?(%WX>E`Rm&g!^3TlTgOPEF zzO`Aol$kz_S-NjE4Go^-@L!Et@&KN4eSYw~0C8_*0D&+g;gq&L>Yd_{=$Y@494O2P+xeW-r9pbbib%eUjD+@ri zKH~BH^*_5U6+e(;XTImq>LP(lUgidsq7i%4YSio_%7@TKH$pT_@0p@OkIRtV%u@CO zyR^cdN|kLaF`FfqV4dh`meY3be->k;L{mll;sWZhAxs=4%Gb@LQ7f(Xt)4OC2H7=` zUx+XPokXk_b5Qmq1!@`^I`RA{)iR$`DgDN=Bvu2u#x*_COKX@>`wIayZr;|!2QNTk zDK05+3Jw{{xsn#x4{0bCj6p1dd}d(lzT!yR)y~njoFbcnV-5|`iWuqPeZuV>4d4T? zN?^Gx@bXfX)U$9l)ix=S9v1nkb$LE6k1ldfSo2&5b;Lfjfs;o-{BXtK|JQZDQl`;Wnk=$Jl04 z4-;lYp^W+Re|US#pv;0LP58xM+!}Xxcb5hlcXx-z-Q62)+}+*X-Mw*lhsGV2yK(RC zot>HZ=GPZdKdLHDohXZ}r?N8h+3Ip~wt5ni8^3jtGh<2`H8dTpW5aCyQWxff5wLNQ zb!t|`4o-xt_zuq$t7RnV(xHziRu{YW3+$0e7u9sc>Nob8jLg?H%JJga(GuQW+7}-O+Qp?{>Vuo%ZXbh zm*oB(I>Eu>S(S@t&|>Y9D2vE>gjvQPR*ITSm;S@#aV4AUN8;eZ9W%?&P0+e-{p+@i zT}#Cnyl6nPV~5xHh%}X2q1rf6oy(k-@~C}&%l3A4JHip6M$DYlG$vJZk=poXUD-)) zf)bT$vD!F(oyA=I*Jqrzk63c>G2>+g6yq7!bDjZs8Zk|}RMX=E*cuF-6pSVpl2=8v zQ|%sS7ok)U;K~|>W(CQcAWwd$i?6*S(w--HK{2V0utS0AH+r^bcp=m3e{SQ~{Av3P z+NT}D4GtF<7e7H7YFXA|hR?JAlZ5&wH2LXdVDoO zSmB6%8~(I4&D3eH#p4-h3YYn*Kr9FvPAOa&1QSY3^y2>qj9OV6CXpH>v4yYzKXz=m zl0$^cPrmg|OlWsc(O!@;0AEntnt@RBbop22^3RNc_FGQQpmXk@+%p^SCO*x00vA(n zy!AY! zBrW{^Fjb61J9%%uTfCh*d0wj)W~8`N^8Njj?`q>fY$57YcOLZA>GD4L=$oSTcX5J^ zIq>;PCJ#rXNa#$Nk0mBl>rzR<1DFp|d*^c@4NC6B~2)HA~s@ z6&GK1DRMJ|EnnA%V7@h4cb+j&LNX0SKl9JKU=pPxwCB~)DxSNy+*l3-CKdp3S@-Sb zU8>yZjf!H;i=EqJ>N&j>3>C4s`Yuc4o?zK|F0b9ONfBcC{Z79?2lBv}j-jVrALLN%Xz4k~>(n3glv)e(N)NTq^7 zfi{OK627jmdD+vwgb&ZvFH@sI;jebtXy<9mCXAOWduaQAhIMTof>-;;77Ee!|6U(0 zy&R0t-7=9qy!nMT4Rk3-)vZV7HA8NVSE^md8zPblUtFp0_P(pU(b8WU?{sUi+Z}L_ zxV?j#j1eFjPj*I{sFaE6UwQug4N=m{Rjqp^H(T;h!BD|>ws7{l_ghpR7bk~(ik6IY zydtqY<71yBMEpo6UuPo4s%(<=g|Qs3D%;S4tbqPMCB%V9(U4+EDZjzN zzg`mQ0`ln^&R6I1iI*!UQoD_GC%B@9u^L}1y&KY5Sokhd!JtXwl&NugY0ar~7YpJf zFPxXmbl1z$)4@TF!5XrgB{q)uw>^zsMTu{o7o7*D}N!EiVid#D8e#zw5;v6;@PN z=VWJx)R!7ex;+x$^m?lC=HlR7TsyIK@xXrh!6OWvohOliBuPp1WDhgk^VQaCp~=Sjx<0*}dWpZe`TXEzE}2^ON}ULux-BgszK;AvnxZF0o=s?U z$49N>#yu~{`B1@0bjfz3&G}@Gtb0pORrO(iOvOFA?$Iu<+oly1OVLA+gF~pEf^e zx|YtDy4h-2?%{IHuB7d0a5sRCou8tzC{9vw{u`tibKbjt@OapLPy#y8eRb+;bO%Cs zJv_@07%c4je)id>`KjHo{`@D+J{rT10$97^X1{=HNfY71r{|$BcOsRp#`hZ3DLA_j z6erL6>)nnBEdke|vd-9=wE|Tb6X*}Qn6yYQTY#ff1_z)V8N`8VecaMi>MD&3Yphx5 zYl2`U(AW~5U%38rELgI3V0nJW);jE&f5HSA^<}u=gZUd9%1ew^35}%B-+bH!M;Io+=t4WO4f)R3da6N?ndOXWa|c5D-gQ1qlbds03yf$_ zl$=xjQ(%jG*IffrZ3)et-N zaz@Z(+}|$G?l_v=v0ub^hT=g~;z#$kFE_Pl9b>~B`y(doPj+El9^8?vT_~c%^D{X1Xoh<{stFNU zD-yeKMMysWgY|ZJMG`ChkM*5R1U<+0M+?0YBVJ^A=V#+;UBd2>T>bSBcLfjeQVNPXXLGZ1=1*E3Se8#? z;3Xsj;zGa3%?E{(B%=i(+Oy{PqYJ7{tWAXIqq~GR1$u2M3q>ec?$S!r05)tvl3|T@ ze*~9#QRlkk&C-uFo4bEfu4BXx5x^8UV$j?^S5!tGpHJIA&zCrj3m-rgw=N;txwqcQ zYFV8s>1)pM0uO4``fH(@thXcnIV^vdE4Jjvv9GwXyjU|%sVKtCYZtTVdH+f7;iE@G;r14{Yytux>S$w_8RTM#~O*dH#Arj&z z)XOwPi{C5!V@lNgb>Pn7eixgZP z3LZ>^$_iVk&tY>u^fke+m;L;W5d7K>x|ESM4wj#3G>WXE7MbECM0)}nVbaxXK(i74 z@T^R&S3*Sa9$sF#3%>R)&!xl$zy|y_L6X#81F6N|mHkUbh;XYAmv$oxWecvUvl)_= z!-9k}Cd|zs)kbO9i{$T*Qld}y^L}^W8?_v6-c{E2*rFESGSr7~-S1UFwcaMQXzs8D zBzCzdiG^C@8rz2c1IyzZw)Xya`=5P=64!!`3`y#T;c$rT%z~2wU0%{xd85E`r|c|57VsxFbhK;h7{($u1PUy&MGpjq zjN`{JEJtm(4lP{mLCppdZ@JXr(sMw-Nuj)$&fB+3LcM>m+b3ZCWIKsM*aUK}bwqIl zR`xE-Yf5a!w6}jVG@wpgnm-*zr&c@M+b`eG-1GW*O^bhytIX0=4zG=Dm1y@zsKUPn znso{0CnfSRymON~cKh38)~}Bg)~TGW$qgOiTIP6@(u|pv?A@E-M)k0^Q={2{} z=wB6LO@n)nE>5wrA0sEOxGDV>W`bhf!mG?}sm00Z&omPUnvkza zUn9Kq&&Pffn?WNFDXR)X@$Z_IEiTSo+v4S&O_nDg5b2EzAH<{t0kIifHB)#l55ir* z0<^<_s{inLWpDO`8g`8E?x_xKLCxCN~-Gk5y)iTxNiYAdOsAa*(@ z$RR^o+kS1^?j<8@yH_c%M#`3V5*|ynM`cz?Mcbwx^2{<<2I(rJarzwm&1NT1NEat`kK=1< z*D|jo!b_ z8`tR=;+<<1KOZYl@nT+H{AFwO#D*Md>n}x?Nv49EIewSx{%e@}U_+^NbyGni*DX%C zL~O2|ZRls(xZ{Cpi6bqSMNuL|v=$|YF~~sLespcoKY#(7Ry|^xJnH2DHX>+oK zdX<{!(qA233t}VzXhVy2j(6eYj>G*fll7}Bg|)X1BBIs5sl_n0u%@@Pkg*+};hdZx zbH~DUvpAcp@|$V~UGPO6`CrVhqs?nJ7ay!azg*xj=}+XDxZp9dc>~~U`s>j(pyd@p zwmL@NcLB-myShGycYZD;=WKR=Hi+10zYfiZWON>`{OpR%q<(daY%h4R52&9ES52u&M1! z#DQyq)f!N(kw4oBrMIgWb*8WQX(@!?79YnZKd~PO&Lr+Z}}QD4km! zBRWTsfu?2s?D5XQyqHCynaBK|!{p*^Vd?q>E%5Tp(|3P(X@}PeN*9u^A)s!Ig{HcFZ`Oz1VcyNiZq(D7pcgY&vF>r)7;etm-|09I_ zg~v@x#myvde0EZ?mr|_nz4pNf)4W5IUwl zii-38%XY3ggD0I1EHj5O@ciiL)?J47;K)NCJoLVXJ2tn6;f_a}JPuDs&k(*)(hzjK zGbf)#lWUBOtH_d1DtwNCFSRx1wmTbs**^LqFYpcD^%Sw@{YwQ@7#SB={&B^le~fYoM&Va^t@UGnO}Y5N z=v2g4x73j2#rUJ{_uIvh%BAhsee&@W1SQ=ul-_ai%e&$~-=qyp&CLIU9*~8R`Cn8( z|H%HgH|c+Wt$!b zFV1gow;;{V$vwZZY%;2qsS6cLo!0<<=CB*#Gu-OD5DO2m4m1WJ0K%;{_%0;k@5Xdm zS)hy}#yv=y7=$B!4OZ9f@{jr({+GRNU>kwXP%vb@pL&DazWflH8uRO=?3n0af2Sd;S zkIb~CPLW_!ahd%Tw(nvDUdMpP5)YNxl*VE)Y(6CyI)FsdVqT<2nP^&#h7edq8rYMM z&t|zmXtCUMP+8C#J*Dp!#F&(k6%_SXZMkMKK7nGqiT3t72&)1jkEI@cXuyA`Q=!(y7golPI#bjnol0LPykp!n#aU?=Z}g6 zzIhSSQ5uZ>b7}ytlVs~M6Vb5 zhkBtT~KoO$?#N&D{kAaKznKZDpQ$z5Zz+sXA zEIg8#`s# zg5rlTqZ%VA#bV-e4Bd=S2XX5QcoWjU%w$Pgy_*&H^b8Xn-rumO;;X_z0mrFMHJk*W zV@#~Oi{k)*c$nLRn#*Sn@!!i(0^lfnw{5%tAN0K#ry6oxJ!rJ!UC9?Q^|(~{RipPS z7mQy~t1i8QgpH|MdSYFJS$7p>g{n!Tg-C4SFYigo)>NIsxQQ>15mp?K!qMVvB~U$e zP2~s(ttGI&V52Je4AGzY<-`2f;A#`YKZf5#m_1L3yE$XP`8Kx861RJZej3v#G!EQu zp+-GjeH_^k(8rh3sfaVw4NFBm6<=*{)~!LuHGJFe3yJ3)BWHHlebEdgnc1`8By z3{$Rj(&3aNEA@IZe+zv4GhMAV>{68VS#|vCPN-cr|GMx~HM?C)p9p0dm9jAjJz1`c z=k4v08+5v}vB&pfU>jC|^3d_^hgrfVf1bsD{pTEiXP)sK!2JFpmB)2HcQUT3-eb~t zduIF5SN|sCb5)Kz;A{IZJ>GOf($Gkj1>SbrmCZBiGXa*u@{hO`NTgEPeU*H-w^u_w z4H-VHos0{do{%5oX>=5&!>DSdCZ7nT1 z0(OKvzK(1;tfs)MBQbc>P$3#P^)PWXG%BN5AXDUm5`j|*O!P&h?OM~rY0OFa=Z@1O zaFAD~L6m@JO5mfQ(FxY)p={ksJo@6bOP-#4qw_{ikE)29JL`RZ_gLM?{mZUJ3Pl3Z zPf=2ZEkltevY05pL1upS^%cIJh&^4FD7(`q>bOm#nq$jdDm7EAhuI|RKx=ICeayAX z(&sF-QQ&jjly?*jW^vc+7YHcjEl2uQ*G9>bgvhjRw<*R=oi$m7spqF)dyx>OvlrzQ z=-(q7ry)a~Esxcri87T;Ie}aZei-z_l{XnukxA2zEdDL4r>x}ZO0EQnn77*2x=4)a zH9l`I*0Qd5NEFbB+un0lDzsHZKH4kXYFQzKeUSmANU zr@I8c#9Gu=pvk>q~d zg{>{lx_FAGcynlNN*mQk;^84dbI94C2R?{wbYF2C~_FWpyZ8^@N^8JQ`oiqnShA`10r$ne)2y4-8?JoCSfc0XSi z@YJfQr$iX5>PunP2$yaDI-0$!V`tocKvYH2k+clZM??TCoOlfM&;0`i^@{I3!Re5& z(LqGSc{C+5(Zf(B$Fv0{S=qaTJq(4rM2p_p9$Tm?A+3#rP%Jth;J zpi`O3@kyY=Z25wP-aDi~ov8lAJ)iq6P_d}vo`ozqU9vWw1f;=%QRIH1CfXcmQLl8s zp%+?>JHNKtxd7KjztTBuOv}ueL$TJ=@y<+(00&x_b0%0yd%DfJ&8euS_I`4d77@Y8 z-@8~hc|!HmE`_L$LrxrpH?j@j|#T13a@}*obD@hbsoQmzT7_{`=IQ zXUVo~BEJMYBG($%q!@0)4e`9x;|qG4xP;vl>TpAw>CBvom2r-p7#Bo7|QULQr}qSqhpO3l=gFVkeTT z_k0n1oer(Fhf}Q(2SEZ8m;d4 z9M}7Bp#$!Z*M3u_MP*DIhLHmGUD8a{AcRt0qFe|f6oK=YC zcVk%69cE0MU-qQ;INl5+`EhtH$^I+oZ{+^}QV6mBUkahG?EeV*Bfb0!`u}eVA;0O) ztNX4JjMBoz#Z|H(byA|=LCfF+=b%{Mdj!wzqkb6`cMP~N6UmxTbF$=`DjJn6|B|V} zv$EoqtyzH+^HVqey$lZ|`lV`VUCQCy?BQAc+Q}oJ>8B2UI>g3KpRMSetlRk&d}E96 zXx(wTJ!+FST~nP~qTQ>MkqX%jA9>Ee<%^SWG*GY6&6`%nK+sNY$2~5q;`z*%9wXzW zZ0}wmgaIXbej>Hf_x`}yceVTTSS1|0hzT%^43l5`JZhONLn%1bMR(;nr8j_LFD=T| z>2`8^#oCZofr+^G_Nf5`X^bpR)Mfa1Wq&vuFJq%wxILVyT~!V=P_}v4TrHZ+{*%pX zWC$kI1DwHoKYZpCtB{jK){DBnZ--0_5x(|QQi8`-2=ic{ zyh?-B#y&~ir()<~(d>}FyrY2gnd7r4i$yC(0nD#`at!=?Gsov51jxHys3-LpIbV~3 z*zT{uXuND3J+FnEkI*)@7)$gCmEl2tT@_Yak4=n5nX7fMmG@#3BqbZ0-BX;DkGE8s z$dg8A4#t(&&UQrhu6KKH&t#I_Vz@_hKU*<0fcK<1mq*dz9^A$l#6gTrN~+s#j?u8} zo>aBwhY#w?SXo}HD{%zUd|9v&hFLh8Gt`y;N#?~p{1H!p6=fO~7PVK3!ty}q@>8Hf zKC+nK@7d*MpFMwTthPkhv2ucDJ4)ql^}qiMP1rnSnD)jC2OWZ>XdHv;H3em&^Gk;aqMj177)bmAHSaWw?6sD zugf@;5x5UGeqU5tdwj`xgk)dNPGD|@_B(0>Y&o3p^DM&!jw`}4UU=N@{#K_8gS0`Q zH`1065JWOkt+Pe=ixS;dLBcjJZv{aq-80Sw-?`Q*XXnf(1YWclmkfh%?Eq;DMbaIg zC?Pgii^+FApDQk9kL>|38_L?{xuv#kfrj<=2*$}Cux z``hNAu0f#NeqY40qLZhnYN*x{(Wst={M(67-3ugn=zRN`{@!8C84kTu%><+D5Akok z$Vz`sgF{O92GLsa_=h3v|Azl=KZG;+$%5|;wNLKZN0aVR-Lxu(EoNf@S;;KY{r8Wu zx5Z^9!r(19(LljT96@QAUj3Zo1FnI(^nCB8F1Km~<6=ocJ+%X%$0L+s?pu~Z!a3I_ z*2r|?{t@)9^VkiuW@Vdw;C#Pi;cl^7qCkDouI#v7+xr;@-Z2wTzB>GYqQQZPjLB4M zjx&YXl_S)9k7LlO!Nu^x7-_dQ5(Y_&WL_FHplyOMQ#psYUxXmbtR>ooHkOix98q`o z$#2%l(TWxAydDmV#tsbZLzP5cJtduPVjNlzf$JsEWjLxmj!_b?u;mPuN!T>hE(Y$K%cz5$8g>y0LTtx!4`U8l7dc;aH7 zmjp|d_&4H4bKUsMplbpU|3Wbs1+08PmzKGl%19UOlMp**F@EWqm{InrhDQZ zad9D4&}__cNW!k771uZEm_c?Voh|dJ&FP1SSSSr8WZ|WBk|56R?Azx&HOL@Q#XPtT zbx$!;-qG=B89MVVPZw9HWY^s9ULP$pCnVrV#7HzGRM;9j1LtiKPD)a8e_)B>fgnT2 zIFf7nc3k1QIK-rBItXG#2xXG05G{QfY$qf#T}~#NAhIJ*mP>m zm3Ykbun20s-`}2F(m9vr9V}*EVc_4lz+oFC_85nGY3|h_r zKi~}bAJA-2riQ4z7WuGvP{c=_!ks zRRRHk!zCDu4zIGb$4b@pTQjidjX}mvEX7GK?q*_~I=ao^8h&^H*$Kvu>L^GF|CPIN znm!5CFI7%S;QYh%{e8+`srdW5Y|oeX@OT7l`?^*CGeUNDA!8ezHZi!YTF+P5C4IFZ z)X(M1h}B1kqT z51biYVQ#aZU&`m?{GBN{ehQ^#Q;F++;qNV=!|t7zM$X<>*3OIg`69v>=c$ao3L6qi zgMVgS`J?xq(v0XzCCWPB@P>d=17YZ#50|d^+;Bp&DqK3s@8*8<9nG&dYQphB{=aSN$bplJ-K(b{FsXc1uci z5EBxo8H!kfEO2nR$#@>JH$VA3yDV{v;y}dlombX{M%%R;h_A#;&8GiY;a;V26aqtIcgGCaQ9O{S47e7(sk17^Y7f8@De#MGPUt ze?smMNW6_oXh1t09QIqZSG9*)WW06>)X)CgPZk+B(4c+Ojrp{`6t5+w;N~vOEi+|I z5YYV5wvQ-=W^aDpy0rd6mVVU-{Slrak31T&FGRjzHgarw+xI(ybvV{ zF9LVT&b((y%=kpYCV8NJ`21?<&P{Ti)WNmb!8Cn%r?p0|#1DKWWwr-M96}Zk9lLeJ z?ND*`j;Q@3nka3NE+qn;zH8$or1#rY=HDn;u-=`!JNj}Q&>->UvA$X>U|q_n2^hsG z-Ieu4HJ3S${14+qWUB%$U4D z>wV8v^~I}O9uXr6soieK#n>fkpCF`leUKYoPfnjhh?$`=4)`%v+6L>ViH#`l?IgA2 z;BYt=>>9y~e$eHR42nd_h@MgC%@lU76xgRJOZ~nJ6<(>*;6I<&%c~(MrZ3lCsOG1B zG?cL5V&x1_(IipOXH2`r7zGCa<8F07y{#66b2agldD=WhPp-QuOd^!5_sin@ z2C#)O&l=rWRb1bs1MqKNeV#G*H>%DH)R-sOIencc=V@s33(}FjQA<4rzHwzI_&q>+J$BvdQAlr(j^Wgh7QMCs zqUTyEOde03z(NQUP7aYiVKyxS3AeF^7Ruu&$w^<9vsbp}&w6PAg)GUm zdT-1u+pD$rA_b#hWKj(FEF@6~TU=j(5y!@7l(9?jbyHA=)p;Ies58cub~#I%E9`6x zq&EtrA;zH}@K(~SD6{#=d2}uyL`MgeqMW)rjr^WE&VeK$$^#@9%SRVBFS$XYz@fWH z=r*$wsagulE$Os*O(qS0o#gdrs~MfVF4EsobM0Gw;T=u#sncujn>v^bfnI}ymhA7S zKR(zYQm5rKI!?+u29E(w-N_hV3o_IHQ-c=-KLO^ttvJr7vjB&G1<$IHI(|Dle5~k$ zG(g|pB|93|(&FW&Z$Y)Zkq?q>dLkc8Su+?KnveQJ?wb)%QZum@h+lXlg>rmgnT1eI11j6f;%?}C9}!+Tk6*e4+!vRc2CHT z$FfO*pc=rWG-}1k<`TC}Dou{X`3;%uFM@7f9jq(q!bokaM)g!&{qHwHaqA6#=6D?$ z2coCw3&>KTQG6yF;9?53P8)-m#a1w8DJI04(_^BdJT;9XSvb<;$ES2_0r%bkqG2l$ z0jica!F+AcQUuu!m7`W?JKTTNH~-|X+z&qQYafLkb$BSW^KZXSPP5;sbH`)|yca8l z8YY&xp9mW{F3Hib!3Z@=jbyOHE6dRrfi|@GG)rY$K5kJ&_y7$+v@eeMey(VqVMS@t z&+oxnug8jE1P7C+A6{Hw813R>xaFpYMJPQ_4gdU3}x=|1brLe!g5@KDXh(q52$x?K>Y5Kc_OpK zl`JcDUT@$U!=r-sU8(^c(wKEjWi0;9WoW&#Cc(!fwX(MJLp;B8CMWAR6$a2bnd^T97^wFlA;Dh>3iFG5>-of#6n=xT-EoG4)IFh4Y|{$Xrm~> z)NF_DF_mgS)yBN)t&K&CCh0K+1OME@VnOLw<~x1?nsp_HmAhYq2MBOyAxn=Th(xr6 zJz#W5B?-h?e)D)?D!;OI(6w|nH_lodN;imee*2-D@9%;qvg(qVU*O40=6+ZR1eexg zQ8AA`b)UysZ*7fVlZp`;2X>6(5$l+@C>4er}>doRf;{&31V@q|2sth0*({?!K|d1KfC8QETIqTIv} zmizEt3w$j)NV=Jt*?ZdRseQScki*1>dn-O zUoqiA`xh1#M8Mg>0>iw$y%kkdRCIK7TH{+`2#IsoxwK`L>!kI^nf>X;!JBAN|Eq%X zB{%>u!bq8a`l}$fO#h3kFpt!2BVa2=7K%8Drx!LsDJfRLF*LfQ{h`G3@gN3&$s=Ek zTBZ#FKsj#6NVu@bi7nQehNH8Wp0Kl&OPj2Q?&9jYw6vs!tHLv%yxPXsYG2>RQ!!{L z=)r{L7ePP_N(c~?h&{F7tEBUXDsI=(66vm{E&8HjS*W`cVQ#JE>w4)w?*daE0RaNs zS}`vABym761J=$`owUpq(p|^!N+_4=Xo<%zHwe6~-A~W1D6_$kCeTTUL1zX9MeQ!n zg{Eo0!VtU&ix4A6h<%@H7zmLmHsyOB`8u=lDKbIDSLXjwDir2?Q9n8U1+M zc$DCHdQl8gP&Mo?x@*P*5Zn1w5fUS1YCZmHi}1GFk5f73$J4t-M!P}xS|I{z>e+fN zaFe7P!4HtpG`d?}_Sm9VS`Y$&rPg>Wd;;}D1}BkO(qvuc6rK7j0U)5KwdxM@=!=xJ zbq?LQ6CsaadODvpVSwM4%enVr&jB?fW9RFYj}%XF_$3U_Mmj5ch)j@_?h(qAC7A|* z{ufamlFX@)$J<6d4-F6IOo2s+ire6BFl3O(_1=E3;bKhV!Reo7MvLRripTsiE3`^` zg~=ub(>N!$CULXbO9hv{xn4^UR^ZI)E%3Wve<7)F~07TFZr=({_ zH3N>l-1T6P0dB<&l58qoLh8o9eDw4WS-%;NZ;F7T(9pcIT$)Aou~FU2q@QAL0D8K9 z0pxL|;I{abGWKjtqWa0C@HGiM&J7aKVDafezn4{&sx!*zryHOdysbk|WbJf%GW$(& zM-UPVR-`=s_S|(FVg&S1OH}|>JKrjptuU`uJU{^(EYA-!dFuVODoe>2c?22P|ZH12cto>A2@fP(5^xx82Bg0qEm!0Fpa)7VsUj&kh`co6R*_Dq1b_CSSu|5!EVPWE^VE$vl*5CQx zdp72*3aM&78tSsd$pvgTn4PQY3!>2gJ_H+i(GufbX{T=l+$!seGysMWb( zb!_llbb2iKoS(gnU}8@FBKbS5;yabwd7DMmysLuUtb`){md*Hx$VA!nr9by8!u)>8=6vBTxFTQ+&P3+D7 zBRwB8GsnLouKy$Z-zww(-5(EF`A=p1s;?F55f;?nBloK*fxTtf-IU*)!K5?7$lp}! zWXi(H;g5$X=}L1fpzw51m)ojpnqFrwVkFA{_>#*g75cB{*%;DnNj;a-`a7n{6mXdV#U2|V3c4QS}B~(Nuivzp}1q7YiN)q^GMgstm z@c#Z9!0~_;0*xHz;B6kk1_uEA5%{^txLf;g8ZP_B z5L2~$0n<1449D8-M1*t$&((2k7>;1#7)NS1kcmhL0#DHgy_j=yLkI@;GhgK2sLdgL zGTyOxU&SQ=_~ ztJMzGe?Ks{&~Uod_#R8SAG0ygrtCYH_?qJ&A0{Sqe(DT$_Jty~F1^zeBOi!DeWKUs zPmJ3^L3TrkCz4&6G&b3FM6`zq3&IU(^#|Bj$8GjvG%Z|sJ9%FRNJS9E8DNeMge|BJ zaH+*Zr*{HlkwE~{bm+t)FL}+8Y=?!#859g2ms+ZgmYI%SuH19+c*LYX_Jw@w>+^g> zphY}=b=zJ<={E6Tvosy1V-!cjvRZa3H)z9(?zXkb0RF-Hg`GJ9MLxI6&AsLLI(mJF zj_hq&a1FTe74(K#vzA+`3s-0OD946vRk?V$;yC$U44fac}n>MY`s-_S6P~G+7sOe#cg)X|C{ko3ZMTsXp(Jt3% zU9@mLwDZoR90NV7NbhGXIiBu7O~CXrXr$TOuzQ1;cFlCZI7Kwkk`uJ)bZLSBf8R0D ztL`?MC)OA=sjeHE!b}XZZ?be#X>FY{8Z}0=`Fs4EmU({0?kUl?({1C=6rd#~T$WlH- zrG=U``qJw3IrJWYLQ_fA7G*MG=U3ud;Fm)59r>bXbbAMK*BZhae&bEc_1-XZ>pQ9Gw=a6eoOb$V6PUg78!JE?74pR=YgmZA>~ zFn4v_&42@JC+t~f#>gGB`>+?MG2h;1-?mlEGmvl{v2Jb=5dw(w5@PdWTT(U|O?Z!5 zgW9dtGb|)!e&AnQw~lko+t$?AD)n7U56D@VWZd{&lW%g!mIl5o7Vy$b6LMEz<6B_2vp&*5RjjX6L%W1rB-NNO!4 zfj>!0V@fM3g;q&2NnT5o#3EN9B_;>P`s-7p#Ccl%8mL*&Oh^(o_UYD3LQCHm<1#yU znZjqGSlb#aT_t<3=xugRw0!W7BPIKT9Irvk@JQZB3Lqi|xae?AD~rZ|uQkWS`r;g* z4_9<{zBe~yHIc6>ARJE|96d_VT{-d8r>6oSfeSH9VDNXyE2)_^X(Sj7nl?G+g`=IF zK7IfuMWyRV+Z{s{(CbH&R{jq~k`f9tpS{-1a(g zG6(5*e@l~}s#e&ksY=BakS`=Pjk~l*#oN~&%>5u}JZ=kVwKO$Bj8Hn@ePsdE)PBqZ z>@L?^ZwWs78C#my+db~7ZG$m@A_~gi4kRtdgMG7-4|2&i$!JbbFSi;>o0`}|)mM(q z?5SOW0^TFduUT==y0LasB(ZjkNWce3!`df@t(y{*&bif7hqh$;YwQqY1!9%N1(hzz z?CB%BZ%2PMxslZMwNinAah=2L^OE&O7koB0j0S`p`j zIV&~{j~*P=Zap^Rx=O|d8iFRsAay7*?ycl+%iL<{m-<8ncL_y50fHitOz|tUKr5zo z%c?Uy*AL6%Vd-xjXpW zLICy7vJr!(t41u5&ql}~%*E*5xd#guy(|Fn)(ia)S7Gp5-QE}ps_EvA5BcrtXJWRj zXZ^3P7|OU;9W-Y0U6Cm0O7!y9kQdN*Z~jhJ{QX5hp?uyt{sX7&GcH^4H!?ahp`&?i zU~&w*Q}^(V3e4fqSN}vk-ewZ>+uPD_HDC^VzA6@#cT;J)mlqPR6d7?;HOIug@-LQ+ zK3riH8A((%!zr?D_?jM9Z6S6cs8YJJMZrgC#cl-GsFO6hL{WM!T_^YC9i8S zS7)4LcKL*CvFS9H(vp@IJRioxJj8Nn1>|NZUw^Wcu^z_Zkqrw@ON+Drnh92{myc+U zubS}nZHQ7TtYKkREDxo%bh*atZ>5B6-gBtDX)T+}AF4{P&|hUoOb|(J-@11ZqgPuP z#rhu&*rOp+hhWyW8gQ8;yLmr78OjKeL4WDta&{VRH|*B@$faBgZEy<&d>4)W1aRP) zv%C4N!p;V9WQ%zAwK{6GA8C4Pa?iyaqcvSEAnCXgccl-2a!A&5h+91z#eDktD za->A;v7VVaedF+@wSk*&;gCclQDwv2=z(uRcra)DJlC3)4ho4cHgLd9@YmE5b!}IrTx~DFl^{Sw z1eEYK7EJX0CfD!gS6XT>$&k>DFrW~?VFb-0>w$b%6Ip7Rt4H(&5o6AAmm%*}2;${) zqO&}-bw-%qQ}iwRdQ||w&;LDx4^r(YvR6ek8F1_HvTWt zx;xnq9<1wTj^Xh~@!fc4=KFP*qugZoxV4j|dW9M%+jsUKnGS}rw0|T8$8>V8eI6Yc z-<10t3k}R){h_{ER#}i463pX4vR6Vf&&o5~)Pxra=43j;b}hnCofQD!dX5NAS&a$g zDkSll_Bk}I$IQfp?szGfYCX#|!3F|>as|lKI>o98WoRe(1hGaHRZX(Z%_l#+ z0Y>201}|Wrh02Ddblt3{3Zx5Hsb~~5oh$?M-I5+ z-i{_|6hfDkkxy;z*-02FPwTig7UXMmUkWCT8@6yJ77Ww7X4A#D)Dma&O)*qD4i(wp zK=;^ZfwU;aS{T(c5#c7ir8P%}>>+isJ@!RdZtS?>*Z@>{0mroQvJ`o^Lr^SQr?~;>t^J|OG znmGO~9qpQrgoJf%`8B6;z>pm4Pa}qS8#C`R-IEdnZu*F3>!T z%9=1QdMPY(yykmG=U*XFnF2XnQb_Ky&0z23eWBclJ!@{{35-yn!!6RnoYcY@K3q@L zVmci%Yq3G+l`-_jwQ+PCU!yCH*;xB&@1$)tZsY#-IY9{}M>Nkf;nv+AL*zD4+U-$3 zY5qyYBe&4uf$t%;Ri-_nXcYO+_u=QkaXR?}?F!y|RsnDV%+D8U?aN^=HszzdM}Q(= zw0fsm@nJ;=98g`Gg@E_{-mJ&nwec`2v&w3vJrNh~^?S@G;LliE)5;UM!2h&SIsKmu zXG~0t|9!xGiT`$^`ey_Q*rERpezQ znDGT8O%eVfnlo(@U&Jy?EM>%KR;->eEh%T3G%qOE>-T#i^0w^u3!zNIIHS3=x)oOGF3MfuiJY z+3ftd8BgwS3q%rRly3Ti%VQmvHTdu15@d1-(Cq{ZzNl)bGH=!FeFImcNu2=_P>_oG z?fdEM(?QM5_VWrKtGrUPIueE|V?(e71^ar`U=cY{8N&_9fU2o#3aZF@sxCrbkI>5tiZ<0=a>=aOkp7&8@OcH*U{x9 z70_zg5o3gO0%0vTktQ3E)zpSX34fx;g(5A}(Coy(o?x3ci4FZ_MWnHE&UAFoC8ZQf zkopD-1WPP1#fvH|_xJybX~vIA>!w`FsaD0z8qFb+$JMATY)<&gpRn24Iu1O(Up3^A zOGvP3!2t|i_@VL4*@ef-havb*Y$@h2mnj$gG47V!(JQXVug~z&Rdn%eUEwtI013{4 zm4^uEJpx77>551@WADn=Pex@_pic{p&>cWMK-XcA)07B?$%WQiXzI>CZInS=Cm=j5Dd;%1eTR7&vL zrFVm%rYTIzC137HQa?8+K*aW67QC=QM~_M1_atUZg+5Vy{nomgfrh7@PC`l@M)Tkr zd`(c*(=tEtp?}8B*EPANXras;0i6qcqM(GYShTNA@Zry&>})O19l#Kkj|UUFn1$c% z)(v#54O|aiatD($u%Su~8XuX19?KFdi#Wlua@=D2V^`_yoK`!H|5Yg$A^5lx`ynq1 znyxQBqC4wRPA#Y)HpXvQQUf+nAz9Oh%Dx^V2|KAG%fVfIg>%I}drmrd`m49TNg#?! z>NvnZqhPYYrlCb4R91!uIb@uuH6(rwlMA-#a1m7`7#{Us6DnVT(pOAs-RTQMlCgK% zXeG93iCJ79kHJV!l~q#0rQ!slmd2P&_>iPft&h*_`249yefXxgwBz|Bt66Q$mE4CF zr2<(_34jMbf6&z%*Lx#s7LK4>G~5*^u$Hc>o=$V@2?ES3d&`I+4dZ6Yn*Z!ZxfONL zVI&?2K{i4ehBuPVr;jSZ`l)@|BG;K!i}qHXTymPnVY4Ks7-UfMH{`mxu0d{4Lud2{@M-ZvAB7@lQVDz#{h9SyCeMr94Z!>oFU*LStCZMaX1`1s~r4OAsR0C zm&7cLW)v7wss|bDv7)4YCl;0T?-QQgxUa%gnV>(fhEFp~lC@clP!laGYYjJT8yHSa zi7s=1^82h{<8TRGP()+$ewX9B96tB*_Sxyh;TYZxEOYbi;g%#D*t?O2A4RYBzf;v%$R%TdSHcCoVRsnC@(L}4yAzk%?J?wC9r`ht*vv(5SeMT zCrfs~NRhc_VL*C=CicM()MC4WB!aG%IeHi>G2h#=4T9SpUiN4SEI^0P*gE>*!-OFk zlA9gc!@Y)AGeex#au%Wup(Oc$0B|%@Ir+9m+eb*!*RG@==`We^2gsBvh?qUUL{gyu07d*b3 zS+jcX+>H#Tr6#HH<73p~BbxLUlQm#ZP}uPH#I9qbXTN-63GRmvY%$hZM$yO!>5Va_P9#&E6M?{xB|>ix@jz5 zz~?=KBiqydDHIWuMpMsr+~a%%L3CXIsDx@uNIWW7*WZp9DfOo#g$X6$n_`{r^zhgX z?80naorIW9d*-}aM+6b+7~Yt-P=f+cMGf6eUHLed!=yYCKYoh7OWxd$>Q^g91=npc zEe!!>GCu%ldAUb(9Lp((9Nsbjit5BB=SB{KxTu|h5DU}@K{LsuBY}v?mRa9ESz$<@ zsS3ysnG);I{m2LHi>jYA&r6Y_- z#>7X^HI3qN1+DHpd+8)Fc7bcLLO$H*S23t=eF{ETshVzW*V??Y!8MA+CZtqH!txBFph$dtD8-gYd55XhS!v<(Ib2}Da zrOv~Zxl15p{z^xiytxC#fd&NeOVMJp-d>YYl@jX;pe8b?7G#t7FS)B+Tj{P3GQZ*d zVoXj-y6V}CPDO6M8X)8OM8UV(lN2%-Bu{3D;2RYg7L4u!WOOiJUo7}{iA(4m$F;Qu zoY4q^{H;%*ZB=cL(J$mOFQh8aHF+)qLWysRI(Zwa`tJa_lh7o7a53s-XyBf4cD_(!JgYkCp^%sTg_&JWIyJP|<6?EJ-I`sKl=|gG!xr-Dk103j*s; zJ^yBfV&1u`jP>-9myt1fCMzo(=5>y+&u-C5zl z6KnCcC|Kc0+h;lN4P~wfs)F)vXY>+zg@ldejt``GHYZYLtTulM_ow@_;u=Evam&)L zgHyA_9A<9qlkUL^p@OWeE-UxApR(J9=`>CK%!U_Ai!@cuJDHn|)qJeNamq~ZFFE|d z^<50qrj?Ro==F5jKJV7I%!Y&X4Elni@UGTiu{>ZW;=vDkeA~GAjpysE^oO%pl?bMO zdeQ*lz9+>4wnvKbcBjuDE|iF=t?9{x67te~ACqRQhM14g~Xmno6nW7GH=o zL0Ok$XA>8kPL}?0CHWYH!F|lz$je(~XhN3JP%%`Hx=0Ct{uo)=(gtMjaBE^Z`9O{@fA#oTZ;TL%IcS!vhRJFEW+2VNs0j+L>7JRk3Q5ejV`iv^x7qMo1 zzdhG=djfQ^;OBkfgiqGV(~x=mo0~YQHK^Ot8pUa+%*DiB7X@9fz+3(7 z_{&N{I_;EwC)68Ih}+Z9d`jQ%RTSGSZ5vKwq$3hA!iK7-S1%KUrvu7k?v{qM!ygnH z$xrO6E^RqL;Jfpwy=5J@&etYzjXXdKpy5LlEW}O0sgtKP#ZOj%9`b^i2zL1SG2l|% zWhexe5p%3LJ#4(Q43y2{^D;%0{$p!bc0tvmd};sI31>dHRi&YWSIOH~%ajG61JOMq z&BQKl4Fc`C!V7w&K`!I29Bs|P$c!|uV9s0|L(^Iw9HL-ia#SDRD=Vm^L8eK<0H$o< zW_XY#np${KO8>cju-$NtLfO6NpqBnh5XZE}-|c&ifUZGTy=~K~BFlaRuTigEn}c$Jvxv}iNBhgOoM?V> zO9<2sZh|CJ4cnuqLHtK+RU4pQ*nCATR1g%%Vfx^rO!w~Z&WaQcR#k#?bIRs%50g|_ zH^&ZP1{Y*?Y`=n^st~${gDT5Z%Y9Gd?TW+|Di1iO`Q#W+heK>Udi!1gI%E_Iv{)bO zT@@wqC^Is4J&}2Pw*F9N2v5)+VCF8Rcu!ldjwmRgN_Bc$QyO?cD<2n2Q`2pJpXRVK zz(wn1pzUT-LW!s`Vo8B@f3Uq_J|urS0zG!H^5*On!C>d@eujqi7inOqN-&i2I?oOj zd|sidGcv#@mw5(C9hAlE4SHH^ir?0lr7AbEXB1&5Ok3Jg%b+yBf6Z8HPf1qNBsYPjDM$L=Lq3*U8|8^FCdK&(!GWU^7+(T#;5uT=?3C1#n)UG_kDw9V>$4H=X*aOX-;mC>l5T;(G= zo(k*TeXH~QO%R!z4f*+~X^Vta(YmpCot6InnKPNzOKoYMG{sFG)l{x9o|i)v<9W$3 z3wcCuawF1OZYd8#K(GTYlkQ`>ojv5a7M2(2)aWMjP{$Im(P+q<{=U4BhOey8*p;|c z4x}bzP(V`7oU6Fl)2Tei6m_ch*Wxy$Dyt0>%_k}%eRD}$%@|{RwaW`~kNw>kgm7@M z_l;WS za~vtSsCKE^qaGTt16ZRVnr&`h%3-|wlT=Sn1mWIZzHvfWN!^rgCDXjkx|LxKA zFHtiC|9Lc}ds?78{usV_RVb`B zvn(`KYb{o*FImqsEk8P1A#${sS&5uc&c{X_@##|i&g>6%BOm|;O(MP1_I&^5WYXO4XlJ4q|5mQy(!rDu+FhAemR%F zzuiaj2W!UmiJ9Ff`02(3_}toufpo_KrL&`u-x z-Zk_yiwqVWDVmvl{Hc8(!P~o^n6$vdh>DmW_3YxhRR7yMN-zAz7e9mP4~g(nm4pTS zc88Y;6!+F(_kHw)P+uW15+Dqf_QuU!OPD)*Vno}~*7_jlq{o`aorQJjIKx=*TMh{b zV6=+U(X3;-tt{_=OM(s8>T~fp6I~8@zn2=MD#XX+yl202^F<@jRckNdFCyohm)YTT zC$kpECBl^t=CU)YQ1||A-F1fLd(uqZ%ky%ey~8o_#kB#kI1UXF!Ewh;ek;CrcAr6L z8{Ec&o3jk1kR*b8D5e1p!5XRWm{jVC(vJd~pS7KcQjgotY#d?Xdl2 zXfj6>jy=e^?RBR#>)iJB7aLO}kJ97pYo~gA3R|*k%mhqT6RR>w(!4W@haNA z!yTpaq@w#&KCTZvrGm+{GxIclFDRHdB!9kDGe8Z?}iPXV_&j z^-tD{GXAJ>DqBk}5f5c%bIA1E?b9ZWwQ7Q1Nhik72*K%SNSTEk?MZzbn_aF zCp=7Hf~dw|Zw^CQI0Zq2n*m56*$&K?Cj4vZ?eQRZxNLXZ7F=c?v2w>SDL9uCCnpvV zg3}umd+v7aN1CvYJ}Jc}w1U%CT3rZklll-&5!(9MJc)4yq8D7=YP{DXI%8=L8vPY` zuBfe;Q9j9SlTFxMwUbzTkam+R|N7Uy&U%b>{FG2Ub`R!-{81zb8mjx~D;=|e(B5;t z#ILNajpHDxk-K(^8^H>avo$Q(7zreY;}_Qm_a2tx^RHQJ8#%DTYYd0iXGnA9&WEK* z^0tW2z+GlsZ()_;Hl2ZvsbF7+*LCmgt199T*hV*k%i^-#B=VVCbd@oqweSY+%CuJFPu~& z?=HAqflgvsaxtjA`cqWz_aesQ#OsJU`D44w76Jhhy%-M{j{L}*9}ksp*#J@Gs#+f1P}#MftD5#GgqMOY zakc~lV8Jk*AkJvYT?$m(yiwvta*lW?r%+VWV3e~5&t6?ri?DaKw{dAXcI>1NN&;Vc4q+miBdwl}v?CXOIU0AJsVU)W!Y zhLx7zG4F;cVv}Y&(A0=`u6`YG;mSf}f7||8@L3#jQ;TmWqVHqXB%-P~M`_qUw;OT@ zk+-DsaC(D*SW3Sp8}EF6`=V9U!aZ*sOPTTF>q~8`fzB!|u1p94{BZW+^~`V1&b^+o z*iq1nm6?Ks#eRo%F6#VH(E$PEgge*YIn(|uVH9z&U@nPQ%D+EW>lIox zM7V?i1Hg*+^!rvIO$y$j21EHEM(cAx$8O$AVA22pICd*(FDoUqhR*|QY04~xYVsQG zIdzc;;1D=Y-cyjs*Zf}JVTqzi07GJI^XSSD{Zr)`gv;WvG=cye2Uz?|PV>0}x*CZ%WiENwmXaY#{zbf&Os7p!p&Nsi3i!9ii1ko~E3-if6Y$L-)-H@Ho0( zrTn*XqmaKtm;Fh^(sG`a*B8C(UTjPA|D?H<5fjPy;M+yObBJhq(Gg+QL&R+yUEf}Q zzFuVxL;7E#Ol2H~MeQhR0or~KfS62@h^ zh0su6c0rH0#~|@rF)U2S-_M@=NSMVHkRLjjk-A87h~PxfJ@-_MjA5G$CWhVTBrq09%sjzJPdd zqcotP!4B*v2zX($Kjmo=;s2#9eT5fW=sGz4i=xEDO8=j1A79eHRg?bNf(N1dPc>IC(B?nT$Y%s_iHq%%uBO!PDreJ{QAOtQIthE0j&)~B+~Q@Dsr z+tcc-y)Anx_CUbBR7QAj^~(8pF$-1CSWR;ZS9L*iels}@bTwEXGNJ?@4aom2>|qjl zL0XBE2lOL0d#SROrfuC=$BX2Z+(nHa*m~kKjI|$@H5X1+TK-fi9c^809;D%0cE-5^ z)q@TpB}nv9{SRSCbM-?5)gwOAUPg2E<#p8D{zUJB#du;IUMVGN^-{Mn%Y6(qy`r*) z{4w4|h>5T#&b|xgpWgrPg8oS$P=EWx4`M( zL(jy{>R-l#f$@KnM16_>c0~U9`WY$yTZlB*Je$7vy{Z^=}&<(2@nyam~jU4Y)vPI!2#b*^vLtl!Ki&n<6 zYgTiN2M;d;gKvn95Yi5_`Uu_Z$(!H03rq;XsLK0zlrUH}lULT<>3wlAWv5p>HUu@Q zDPuX=tZ;ST58_y`06?_v-zDVBzvfnPGxSS!;)B7BdJENhqQ&?XD;} zKA7HuD@wtzxM8Z~tY8?L_!>Q5tPkR~223}NOvq8)O2!#y!~m!HsQ|i~iBU$QiCUS4 zvcix3=Ra~31R}a`J6}bJ>NZfUx47O;=dNygc<$B)6M5YbZ!`Nhj7NH@DEuJJWPX5e zs(@jI1tBo0MVwYLab_wM)X&&gD%}7?5=aP+L7~S3O;*p2R5Qk>T;w;`58F46xiO&~ zw_d5U#yP3;lf)egYTL}_H$e{xBuJ2FTo4q!9(-|C5)S23lUW|%f5yi~6JN+bb5LkV zu|$d!EpEu>EL8A9+ImL`gVb!nZztiVzwKO(a)q|Gg%WGF;jwOik43 zMFfBv|DHIHGcq=e5Z2F#kSd&q07MI0JXvQX$`c7Gm@4xK8u^igs!Cz(^I~(7lc%bP zpK=t=gZ{^l@PFjrXis|O6vJ|Hw&3N@k@Fh=cEC|tjA5|h=n8@3CD~gmnXi8q;>5kQ zdOwl>4p_|Y0ENr9sw}iVJeJfLA4^N1T4`wHr!6tpts*>JNK0*~BJub~8?71(tuLoi z0$%hs$`q$_l&Yt5`plL9ahyJvk>Gd)E(TNH(oC4n`}&_Hrds%rKlpetxYY;B%}6zkN8 z?d)J#?XOMZS8dmrBm9Y^^5zUyC=#Zb!T(X&uZg;vF>mo2OrCKD(NaP01?LN=xu{gM z?s8~`i)fPrOG%w+y-8QDTHoTb`UpT|$A;&`Br;Nk>nrmWi3AJA>s+>((q-+oyxB9x zcU$Euzr-`Qhf&_ey*iZ@_q?%ZjlcACJ1wQN_PB0#aEI0D3&Nl2%3aU-!m9et91q{d zOi*OLUA6t}7@xrMHK|p`1Yl5{ry7>4F`8muE;3b2h=Axk*q}b8X6xe`x2u=+{rgDR z9gRY>1_@@Djku-LnAO|+oa*y87fIGjNTz2fD6p1Q3_(lD zb09NEK2o5Ze{-uU;4I^!S=qSQ>v!GtUej-RUbh;`$^=G|?2A%6XJ&e^Nl(gRtOe>VfH6S#TX(+&0Q2JOU9VzBE7xiJT-ASe*tv1OpKMn~{aUp&Sb4zMSarj*uJ8!dRGN9O zU$fl5#fFz^_^DJ_mxzD*jm_)O*Pp?9Cc~Pk_YwD5_QDl1)u_-_ohdxUkfP3f5SI@8 z`E_G(R?&qAyVGkCU!AHyzVwA`SE2%X)njQoDq}tET$F~X=pGse;&+|xo<u`^Y&v>FY=4`DFYmpUs>bAOy4$tgf_g}0Sgg$z-l(yiSdELg9> zyB?DgUZ(!Nq^o{1a5;@|oNvWUUNYKCA@141pw!Qu}R8i}BC_ zR7XU|O2pB8Y?=*3((}N&62dr`ev6077PaWcE#`-N;ISrBgGL^6k|KvbJUDUD5rmkS zUT(~_KdKB45{iQT#_ja#VPc2MFVnDc8Z4iWK>#$lxpR5F=KT@oSH#6mYj67??mxX`GFv&*xOrR8l%wgHLdrYf_DXFhY3+< z1R?gElO>hnkvFc6?3X)0jFrfeREj)#+_R?@FlA==IhJ6K=@{|Udog&wJ;4rDk1=8} z?%n$U6Gj-(?Ga#oL}40Lo6}C&!&=B(@)>^yLl1=4g?WGY!Az-LHR zVJdU#OUn3*np>cHb;1UNsLH1v*D?Hpi@tIb(iasb0+czdNKT~O-U0$TyNl(HWyfPz zt|cC4=ZJZ(JvfPAAul1h;($Gui@WC~8W8-<%tdpUP-zOv22Z*!x1aCE+n_pj35~vcQe%;A>zUMnT z2wrrmn43X#C#Q_VA|&N#%IGLibtp%#Tm9JE_FKDuIMdiLG+w;UgR0xIYHFlJw2U~) zzy*|9EF?=QBH)4|QIo2x->bp`lu8X{bXpJU_4+n`zH~&EL1wxI; z&r=LOsA^1_Digcxo^a73kuM&l!`95Bb1QQjLSmMmT-s^Kh(^`Xg9#f1P#tUcT}pw} zM_oqa2r=aEJA%UD$4m=Ouo8ynn|NX1&RYYohf%7xageeO?QiO;#O$vFd+K|cp$Yf` zV;!jZ4>jLsT4v{j09S z^xvw^m-PRn>44z=mjzBJ{aX%Ec>9yJveqBKhjJ`iy*TzGlXzR=U;&@1qcP3;*MlgZHD$m-A08 z=5BYLzY(`WId`!{Q7ra&+Q5suaxMD!)qusVIBk<$>@>En=CkB-R=l$pq1@++R>7F2~B+N*u z7Lm{YQ}5gB>i%mC12Ypn+kZMh{vrO`{{QETBE;1H(lkv~6&7237FT{B1kjU6GGg(e zrhw`Rfg^!KqT2p-JCUs~Us#yPTzGJBi7c0?bgGHFUs=_%#+9Boi~5}*tH_6xLQaTT zfJgwH@_V3t@tsgjX4PH&r`)OiEzdL3f|2EdTWt++^O2UFlUMGN83ds-IC>AotjqI{*OqJ^fVv=fDRZ`O&O3d($cyM_n~g~T4J&kn(WLyQTgK!f-VY-*GlgW1* zAb`{BT?`F?BIJVtg#v&Dp$EYLi2U48=%)dh|Bv zTmnFe?edwPEH-e{LUU1&iBJGJw&|D{SQ1-cHXH|eW67D(3|x*zYIV#&P`4Vn+f|u_;?QzMu}8z&pL?Q2)MMz5y>~5*Z_)bt z=Tkz8l*ZsM&Ig7O3p9v&wZ7%*A%l8LiNvp3dX`EPuL3EN? z!MZML4mX>4?$1UtudSupmuCtlk}rOD&69hT9G>rO;)@7dA<7Vt#?AVM{C`=@BmBu= z^$Pgomdz-~D3Y03l?qH&YhLODk8cCGEBBWrL?N&NU`X;MuT~DDZ-IK%NhXIfn>3l6 z-ix>RYGsKv2j9u}VIQE|WYuRX6@tTmtD)Vf;IAj6BGE-i55*W|lv9z}lnG6fZC#P~ zk;JhhZP7vi_@FQ(Q)@r#HM4W32(&*_hJj9n`uZOzs|y{(Do!^`YdwF!0eZyR8pMf# zh+>ScuwLzLu2yOjUkwjbD`vt(mmY>e3xsO+JCe)Y|CIsYhv2VCNjIEDe>|O2fAFN| zq)4CKcC~LWAeTO$Epc;b-={@Ou&n3z0{MltKVKjYc5DgBJD&nagI+6Bh-}wxwg*SM zZih9^S=*7fZI)k_$R7;=q}rXom?A`t!`<9p&X*{+@Ftw!e^0S z5^JLoCkYJ(Mnu5Ea%sAL6faW?fp+qgi)SC(%KwZT_o#2KsV^*V$dy~LM**c_<5<;U zIPY{>Vl;t53ARZoLlv8;$DSY8EElfDll_@Ai*|u8&R3>hzE#tF{(ZS4#~)nbzz*|l zq#-q6s3`-xQ3O(qImq|nBl4$G6bS_=9}a;-@xzP=uLlbkZQ9^LJd5_}G=&7#XeG1C zQaWp(uxrIZ&aCb`(~tlW-6oW+Xmlexj~x!EgNQbUzu3um(Din8e?4gjsC9(a=`N{5 z6HZ}C80QO@LT(%gs0Nw)@tshVGBP$0+>+A{WpD) zL5xK$xuS&ZkM0go{IG(^_)Lllx_U0$4G-&nAI3Rv)bL>~deaYk7}hOB>!UUXanwG; zT1TUAN&Us~^9_`%2a(~U4y(_9K;-)UeA9> zvvUw3hNsjVJXj~iILiD7hJ3E_Q@}McRcZwi*%$^dYLZx!)NvcyE6>-GKld8GWi75* zyqyFhAd~LWv1w>Bv`=lWUS7I4rj?@?lVs<0+>P$GqG1K9@e-hip;F~{%I@_e8Ia0& zWLO$V4Jz2qK7LFJ{o=R~bAD#Tg;k-W_X0KFZRybPB zXwtXgReu8kk~C>(&%^t0Ptn z2#?5#^MK{r+gu{i??{SqIzppdN~hiAH8>h99+|+R#q07+5j;HcM~2t&og2cob(Y7Z z_No~aJ#L+Ms*uU_n}^>^ou`uJJVUpf%(!b?ZDnn7sp0$D{AeLvHlpUb@?qU-Y!1qy zbo%i)N@f{_9p{-?EEq_d_OyIEv;Fq-iG-3ROTVL`mzEa}8Jp?dQ{B?u*93AZ^whpa zV13oGP_?MC-YPy7Y7~C;X6^3=UO+k1msRIN%c6E&fy7-1J|9!sq5vfmhen;HF0}8^ z+ZXcgcc3>k?}e4ral^a++#xtOouRiT^y^r0-5p~~XusU-v5jlej@H6}Yjnsjb{ftb z5l)uoR-W$OU&^E2uODAJka<=Lvk;PT(9s^^3qi)Oe8d-lWe8pV#qsq5(X;*pKem_8 zjoswBiZPw?sA&@=xr0N3WPm~jqpTfGtgVXvxr3A*zKWK6rZUv%VID>@1 zZ*Yqd`k+2h{JWfR+OQtW<%j8HXXn#((-Z@hW0coa7l9Z~ujbshq(DRf0Rxejk)2Ug zgY#wJZ_e5Y3#M98BgqgF8XZ)B5|L2Qd-PqAV5dm9@QMUB2$$Ea(w`TKlry_C1n`_M ztuupCOU~OmmwcCh_R98WF(mwm$Nh~k&fRPe(;&kTzCqO+;b!%|U-Ude%h`_BCMu4Y z0ZB%M%MoXk zaw($+DBY}_)`;`X;;?2-9+<*GV4T0)4X#^`JZP9MESH3f$?Zy{Rd{&4nX?WvBVd6* zfPfZKh3WmykAF*giW-a zdfVQn)1pwNQy76x@1if0DLt@dXFdl-^zgoh3hz&$Ckq`s;G|TkR3^Q-(M)YV62E0h z6}B;`j!ZM)hXU9%rvs*aJNWhea=wEO(jDDdUuRSC4uZ5 z*00%;8fB{`!2S8Z1~nZuCpx z#xWCyaq(gJy9ez=r6vcp?&pBS7J1P7hl3Kf_yyfY@X2-tLA{3JoVwp0tdPW@|b z@jhUDRyjS4L_Et_a6P4HP##u4<63MS7)}O<_%~d98XQ(vG9edu)On5i!ibPXNO)TJ zo~oQwiUdbww!7Nqw&599aadHWLnB2jyN& zH?&`sfxr8yTQ}Pl9@bTXni3lu&?FvXJX4p+Q<(FKVcV4<0G2B-M{~7JPi`q@;E-ImBLHuEGN8?Uiagh@HzIT#VT>OoyhM25i1GB$R-*f6{ zl$16%4^2ZwyO`xva=Cvk`Iv|4Hbm|C&BTWHELOc*IFI*C+0frB+E-p2dibveMLr@E z9P(RFAV(Z)R4m=YY+?j@S}d(|eWv^Zg4nCe-Uj_HgUPKc8-ID^3oaK{4^@gEKrSd@ zTp(%Bj$3~dWL`c`%815mc`23}8P7gbx?h zrJz6pjuu1$ce~1)#1`S@#eO>|R~gwNfOF>pDt=Uh#~8iVj_?vAOT>U7LEq+0)`at&*vJo?I>wJ540^rz;^?TayO_KNYh$ z79kiSAHfnEJ-H*6kiwxE9cOx^J42~EF^mAfXQPZ)-Sxu45UJ}*z3^!bB4;qD|7S*v z&FLdPKkUm@+kB9(SatE>XGc`8UMuOk7rx=T9IHdv*gC?`)Q5d{V~N6%cs5UP9+;U! z97>LE0x_uUaJ%)^_r-5va3WAaYz`YP=991a8REZcw=~@yUf7>dH?Wbr9 z+{7|-=0xG#lrOu_d}Dh3H8`NeN3CD6M6W%_aD)LUtGb8-E0weunvMujI`?h7pr z&~vzzr0g0xUO){(Pmwx_>NHMDwX1D%!vYSnV-=Mw7ZQ&?I?|Sa7O44acNQ0P3kE&j zw1k5-vwPBwHl(S{(CRX3qi>g=#%J007$ZQHhOtK*JsCmq|iosP|p^>W6&=e>L0J9mux@BN!KcC9s6 zt*SM5%~|uC9~;tDro0H-(~(X>71PA zMsW;wo;3VynKjcIf0lXv%z-GN(pp*N8`kMqY$Kc}H+*1tu(65H;9P6E>HULP)EnMV ztAbK}|Rv};Te6GzT66fn{<>6;JDH>#J*W-tcmXZvi(Hq^> zsGbn@fIKrLD8R^@s2Jc+un7Tru!6Ea1-3ek(Bg;x8CT`-v+_A_V^$s zMhk$P@{p2R{ODYt$9xy_+J+8E2p0!#xQ^GGWpBN#H?R49^!-uS2Jz>QKf3DfHW-GJ zdN}91zI@%BkHX@_i4FahSFPN#L8;A|zfJ=RILZW)1I_o(1M;5Y_rQ42^V>|r;RBqq zWi8CwiNom`i5!M>XnUDgSJV&X%mmX-2aO^La>;*Y8hnot&-o4apdDUbPRI$g|JmTV z{A`}v!-A4fI;l-NTO55fYW~8gzWAG~f-@t73hQhf-q(4nI8%`{928W$xr;Dsb~+Oq z6_}SqC>Sv9a(5_FWfQcA%qYMQF6rT;b5c*T=*PZbq#3R7b%EL2DT@oM37KpRLSPc3 z;LHV*-CD=7^YCDvL0SIqo%heylCrKJImHG~`9K_R-Xo#ycGq{6dt`@a^D_c~V{IyJ zTEo>1O?<@pcRW8EYicHrSyx-FCco*2Pw(fa=^Vbw6IKA-wO5zhYQ)x*{5M@IA7=LtIGg)?WDom`LALEQ8%5~8s1 z$XF|JRge%N1#^ON^y@pV3d;~t*)qKIh$JmxS)lj^twKu7ozE<~o-LOPX{A;1@Sc7& zRsEKyp}1su-p>JYI&yoXnYXy7%+JczYy3ngwK3=l3lq7s@Jp9^Rjl769|~huf4>v99jkE2peWj3QPrz|`{; zO_besYkrBFH~S9<_>Fu3@avcn0p}N)AqW7$;ne2X8H%@tDPCT-DJDhA^%n^0SB(Jax~Y^_so zY;fS$eS6YVYrL+FU~lX4XVa}ZKH>Cg>+ib+zht&`+MX6fBHT>i#M1UR)z3yV)*GU=?5nV|RBF1mF%}(nvQEWEmpx-jVh}O_5 zswg&FO->?BoUFYpSyx%L+S@LdGPK5|-kW3)&i|$sg!c4l_@& zS$n=m7P`hYJVbON*nL#Ju9kx0#Zl0+y4+2`&zanJTD++!x}WJZl_hJi*BJA-+4wLC zX14vFtF;UZpoaIndO1w4NS*fj7?hjJ#5G9*5fsunA^xsSHr}fDu6A~;{tbWwU+*jP z9^~gXdG-CFbNj!`6? z`4Rx|PZ5Ffj!h9+6w`c#>n92Z_*Z8*9igz$RSN=!Fo;0?4K!ggDCaO`ma9gw#!YFP zTZ|1B%VOg<%Hf!?6?|2MvEIa*`1vqj*e6K49LF zRTf1CLu^%=1qsW(?C$(z#IL#9+=T;_d2!*$v`|Fv9NE*EG!~Px8lr7+w!NbkvA;~;Z#u>R6@iO8jX}VLsGrS_kz3;s5fZ9 zuAMbdznzH9jLTLh8F%VMA6`yGr8x^9kMYc-2itDT!MBFZ_})BW>SA@)_lygv93RVy z;j?pgHcrm;*umsJ!RdnUwi_;2FC)Um4O~cB@(B_)e^61UFE*PTe2kW#ZvsBtsf#f} zI}bt+j~=XHzWHPw6$IvOpLVH7e=`GQ`n|(A(sE@I5f#p*7i+QZ-2{(ekb!fAwG`S< z*$fpHQX+r@#tX}$r`Siz%SuTJfq>QM>eJ#$b)qswPTY#MB&8{&guw7{{dMZJCGsQ7 zsR`rXjgzT}B-;HaECYJP%7N$=g zLPvGT@p|^Z`?cHJ3!h$MrlJbP#|%!YeBPc<-CLc?xd!+DNh-%m5&5#k&tID(-I}xg zvY$W7>ND@2wZG1yW5h1E5n>CcTttmIO2|n8;GmaRzE&=^D_*UrPtb+)C({Xj;1T@N z{aqNc4}V333?$}ZX9*prm@H_#6;5GZMEfNq)8@A;XX(EeG;71b>DPFrHtF z=a<-VR`l>=aG*M0zBi0ce;k$h}-bn z94lgp2=?r-0U}}^Rj4k#?U&i~8=TCRY)1<-ipvwYpT!1b$>D>PJ&$L z8*W#>R&RFXF;HdT`+DPnVD3q!S7dt_T8Yl$d%iWwlZya}`eZUvKK~AL>H3`g<@>x9 zDjz#x`z|3ol`0Sl(8$sI0URy#EOgn~Rrj=}hWje8hST?FKj4vz36myS5lTS#x6RTj z&%-HpNqgI{Q=16z4-S*Xh50%^X+>B+k{Lhv4{%Z9vQM5B6LnW2UQ{UxE|Li3+a2oThE?(AuZSyQ9bT$)P@YMHLPH7ER8+hZuj9S)IjwC zKCY%5-Z1Y4!>=0iZm)|BC~DZEbD*-R#!C%zKGCb)-^V z4@BYh-79i?+9SL2cWOjg=bt*4it@z{iDYeB;C1*kUElr%MJB41C_AJuBKbknq}gCP z=2U>@%_dujk`PT0145l zm7(Fgx~I}8o;ChqAJ?5MZwg)QsdRLS&XmPfXQlwQZ} z?#vKYfj${f9r|TqM%2c+YD`$8hHM#u=?f$&tvqrH3=&?la?d0;CdvJo>@TPa3atV4 ze>VtH>oG=5%yNV@He8dr3|bQhQx8pY) zWN4kHyvr)lYf(ej%sS2B0FBc_Y$UfygWf7=)Ey2qRMe2GIpGEky3?wTKcX=0TbZjQ z0)7Ni#AK2%h}HMV_b*{HO}s-BNLODh@v(f;aTFd)@&vA{}YGFl2q{HP~=OS(9mkL1e_3@hTX(IS;X_t zL4RXE$;9RZ6GuepVS9G6!NvZJIdHF-kWzd4Jp81->+jecBc>F+ofcQw=#SE9U<1mB zhnMppV0MCB1rG)qmMflnZMsh4u5JrIf0c=Kd6GndAdz?CJa(f+Ai1r$VdUq8G*5E% z^=7;Ek?GnwAA12=3-9f+UcS>x$4!-))ra?lp7OO0FxxXa=hWf)*y#DgnhkIkaQUhd z=prm?*zM)_7ps{p3Te>jF;w|ou~v_dX&F2VOGDR+FJaHi;t}?IyO)x6S&BO(DGkF$ z13X_I^Xs8J91{o=^i)R1=;3~0+WZj@9!9SY{U_t3jwv^v7izL${?dTV3MqkCwhCN{ zF@qB|xwPH2F1JuZnhDx%AYAmJgMoj;Nppgr-rSVq4z1T518*q4x9d0#t?a-}DQ1bd^hR9SxfE&i+=@Fy1s5+w?3^sz zzC=I_M|dww*`iwPa%??Qs`fdd&7u{#i&Tu(ZL0su=t!`>3V+g@y&#F!C*Fk?v#4^jTz!P`)ygA|6m1H~K%BmDwCq%FO1~#&H`)CY01L%U1!6 z2U6!f$!}D0T%i*LaZ+MNj`~aTS@&q$bc1)1`w#QvL_dYOYtZCU%Nw#az)%7yWOToM z*Hij@re6rZ8Is;hFU`I`>t?Ub3WNO7duI5xBCAKoq>phKEe8htDv}Tx@#egc>l{ap7TG}55n9gw%hy>3qM;y^}YtZpw!hL?orER>yy(6*Dt@xd)? zLX7E)G_+5~h!DtMqyq4KutWkc(!(t=qwyJAihnyjj*v+TuS#3o-n7HVL4{O;qtqkG zk4W+pQi1%NMlMkL`58O3LvR9IRZ4)5Kcp(l;=`=z6ClY%#UBu967ugXzLTAS>AwU7 z897-084&!3_&>7vFq;2i@i#LqYEdi;CoaC%>LI&Pp{_>SS{AI9<7g${iW?&fDR&?N196C8Vd?4nIbfY! zAKUSZLE>=8Cpr7OUx=M&yI(q|?>g+J`SG?=|0sPoK*~!p9sb3J(w&kkg-lKt-4^=2 zbC1^rhx>bI+5~PNTX0`qOw#Lu5T4BE55JNnpHurNv++Q-qaiwzaOsu%P$t6OXJ3x( zZ876|uXo{j=qOO-l!u?8O71}Vv?#?jo(>PzpU<3q=}ol|xiV+!X(+C?tP+ z0^@JGJ>ltD{wx$d;IIK?^qQM0tDN#|>-58gGV;a64N~JhcL7#03r7%y!P2+B2FRe% zrI!dx?2M8S^If6o-G|bn3I~+bd6o z-pDVg4>ECFXB~SFV1MftX#4+6Q@Sq!x5B}svzLiYPrs~*S!*dQg$;2)Yc~$zCf(ZJ zAcuvU!WjJFkGc<$Yxnz6a9HAtsJLG_cM&5Q!f6$vsG~E?%B~=g9?V?=48}-mZu+@; zr5x)#6)Atth*$}w?&kb9Ia>9|&K5zN_)ql;c%}bF5QA88AS{1#!+YTU5B@nB56dcD z7QcXUbG+r%UKb4ki>F&8gNv;~hf(hLj|j+YXu44Sg{zn9Gv`-*qjHAj(io*5)26A( zh@npz*k#Me#gP%U@ExTZ$-53t=59d+a|FnxGn_N_tqp<|3zJJ`RK)kEAyP?cs{u_` z9R-j;K3$^9ENo_qZ_}W}y9>1~3@Cv3Ky;8$9x(JOy}#`?m_u*kF%oHMgS5UsJ-Gu? zOiv$?Nn0p@apASPTcxvNp8Mb$@xSc+nE(}#+{s^8l7VBLZ!fJ)O+<=IFBFZ#k-FXl zMGoxqOA+(YBZx{V2BTWd6%KjjI}@OYlHk$z77Cw{XJ#@-g4DKKA92aLx6Z;Ub%icc zIl(Nzpu>Q@XC81KJlF1!^p)GpDresR7$#(af(0W9$|RqdH|mL#{SHonVg&5SY+iD0 z8dbmK~y29Hq5h%62sn516STeudC)+_~}ar+mYt)abcD zD4_H)N-5~4|M2KW(k(8EaFvkwbNEKxWxLtld>%RCvz z8hdmG0}ALi_dyR`2ppJrFZ=%${xKMYP|G;6NUQ~!f!?Wm6Hqb|1qizAf?1*q<$jP> z5(r+)6(846t@hu>H@C>=)hnfV=&uFHN2*fEDhKZUOod8;0Q*s|ZVn2vCi(}pxLn;{ z!m*>f>rqihPQ_YS(%ZP4TXLFKvszpN<~Q@ryAR>unV12@p5xwMk_A>mCQPV00)N%m zXVF5d*@J+7GTytS4^U754{_E}6&Xiwj_sIQ1#vQm$EnCT_>p{WW5|mS0y#J#3T>*Q zj5Mi|-=|z>t$5@h754SH<}ncn2*4WetpbaVK5k> zmxb|VkYUPEC$L=#5!CSB-47295P}m&JAAgzK!+X->aWLN1QteZ?jX@0r3gg1X-hIY zyz(@jVyYDMs(IePiW9uZ@g(3Z>Ja zvL;Sp7K&9Z+oKp(;zgnTD*S7&uV@-0Ry2^#c)k@H$dPZTi&x@#hQolxE}y*&WJe@|gOIFj<1*g+2q1)3b_ z=uAFWupLKB;kuKDCbDB|05Q)OJU!iGDJ07&Es7ASL7DUmp^U#mnCp6GRM`LoXkTjE zqlS)HC1y&w&sd7F59zj}yW-6x#sH-cVT9i^YNy{o%!d5!eE?p2GIx4LH}`73`m15%9BJ|9w-x1$kS6idAlTJ8h7y@`NIX2Tj1JoBR8 z00v9URInFX6jWWK>}ejY^0kP42JHA|M;tQtzGqOP0TMc18Y)FHqOqd(m1Ex&6qJB~ zAh-Pc*DPazfEY7DDABupr{aOC;f>nn3k6>MlGnw#=wZMXHBFJ)D1#~UnbO$e_fO8Iis_o}B#EyFx;XdWx= ztmcFG^Lt9nsF_?5;7PsfCpUE(ES1#t5R7{+5Ecadi@WyareS5;oF z>ghU_ZTZ$vMC2u5tj6PqqT2MpbobxM5t3@6Sf*=c^CK3qR!*(ARhth}+kk#)dCZE# z`uO;x;+3Nnc;`K8j>yuYWxxPl^k{VDT1g%djYzf7dSc-LKCv+{2Y08(M3y>=2|+i* z#M1c+ubR`fLIXsp|H)O>0+k{VW+P`fJRcs17?Qq}(oE{N-qwdpDud(SMR>)9&+>86 z@7dl@)Aa+`8D0zQ4Fo-3jn$(L&?Z$ag?VRR2=zP(ArgTi$(Zn(lrUiwor3v${@D42 zEAMKX8NACQUjV0u7PhQ=cIc?blel41Dczf&y#E@O3lhAKZs7JA#CVv&{?iG*fL?Yo)z_A@gcl4?P3?Cahbr-CtI3%G0t zMUP+5^V{uxzUHPK5e4!(L7he}(LuLggm}=2LnO=f00=RMuCF!OatdBpE$@UZ#g_Jn zLKdq={@N9^Skf<6dNTsGbG>U0$$OU4C3vE-ciK^P2JIHDLcZOO&xXgYxP1l;g1!f< z?Q+PiM^+03oM>(J#T<6_=4m4ww`#t2-KNt`yM<=SBiDYc!k2hrnU;1`S;6Q*!yml& zcLn7zcls1oli_G?$@T71U=U5R#RdvaN>Oi`Z)s(=2o8-v1gI`@Jm7yFY(g95k?Ko0 zrecS9dRGdx<&xjJ?rTnfgR zN!Hq$dt@x5UPj|p$Y1%+x$l_!$l1B8m99HI)(&7wa<5RsG1q+Y+S9CJ&Qp=}mYo>76S7(8%Esou*#LI(O4}hPg*3 z!AE!9PxnrGTtYy6MaRqN8+Fld0^b|_dfk|U1}?5Pe*3zuo8|t-Dpj*2&HOypB%ui1 ziw}HrZz;;G&q9}fw|TcWar{@dI41Ug?%ltn|IyYR9orNvB zd*p-(%?d}0=Fm;A53AtBsUWYiCf?b0ZEs$_MCWU!ZJtanTGy+i;2PED=wx1O?W()t zr&XDxBKE5>CRCkc`O3g?nK)rO+_I59qV?YoP>&O znbMljis%}AIv@7#+a64sK76=3D}B>0u#rq8%0E3@1OMGL88|sx|BH{s%t-%FQonzQ z|LsKmS9~)9+kg02i&`GaNopzGS3Y_)3qy)3;erwEBSe?v1VrHu--kjlWHwAa+vFIt zvPY#k$$T8A{<_L?N{}T^NRzoH73%QEkYer8N+s8uhieF@3_vKzm*qc%l)rRcP2od? zkLmtMe}z1{rg_|a^m^QKySnlbfj^{9uic08kcEeXgUE&iq^_&EKka@PZ8!erBo~4T zunjp1o;WeudaKc1J_@tzdgLVn1&lMc>3xpnv|c}NU)ESLD-^$`LVzGDuyK38D>3C{ zR^8<+Zm)JWU&uzWb4$0g4=1F*ziE+(R#cSa`FRQi+qd?NVPUm4f2QibiQb)iYG`7` zj{~6 z)Hi4Azh##$@OE^#9U@8GwT6pz+qR+Ns37@4L`A%N(iqu#(%7uSy3Em#6)+5>A?T@V zOZBaytYJn=PLKSHcz0x(<0G1qf|f6DS`;gl#an(`fxZ5yibqw}xT4)N^IAy;00#kq zA^;Hv2>wLqxC)@%g8~L36e%3gW_DO;cxT>)+Pq@3MgHZt5OytoNh>jNI+Sn40kC%y z@047x=%dnyZf+Hh_&jVUs8%`RvFlSVWk|sy-ZA~2w)t69Byn&%u~64g5?5K;7OyAo zA+2ZC)Q%rq$wx#0#3)jz@;1C3DoWhdZa#mu)8SGA@7sC|`xkA#TGVC_t*HEneI}@0|UZU00J!B^WMiU}~JM`Ys^@ z*R!y6SW{{_LdWg*kH_@#Clr`OSbx_dMI;OyKC1Gz_6))^GVLhsn%_yw-`T6O;oLEyx273 zR57Gw4K6ORWUW*(HWp7FoA~R{U^bwt%woN+L2GEJLma&DP}fd5g-HnA26h_P<=`;NCgFgM-w;~ zcTP%sM!qe!-0I43y;Y#I(!R6CW>*@aK+y8VF;o~bI~^ppQP0i#k{)YvGFUj7tg6lH zXvYt3(K2vA+_2m7F$RaC&ByBlRZRye@Qc}(f$QO(ZzOwtLwy@#R^I4y-@kRG=hf#A zriDUAcJg$V6e={}`laQz#@2e<>qA{4X7LoB^%xIL_ZLP5&)e)$gb^{wj^f3|1`Ss= zOU7#kPn(usW2DjN6TXzPL41|~9s-B}zcUk(!xVBs0~0Zwaw7{%kpJ=Hov9O`@+ZPg zY5b`ziK)s3T^@es{awlI`4oSC4+yv5SG%wBLelccBnxEd&4_ zjtSfzj;}1)M_QVflQDUL^RxG;y?;??f>2v|YpEP;c-Mv^OwFzC(p4U?ll$96MLVI9pnQ_cohSHdLiO-HE<=zY(ocBHk z7qJ@HTL>%Yk01yH5ad^!#GWl(2v8OH!%Kiu4ugaTGDL)@C5B#MUugmfXR%b|#a)0> zg1P@F2npm4VH(4`=y?X#dsfS$)@X`%XnT5^KxHv~`B;VnLO6Mq6=uN*8e zV2ZUXbrr5~z)WS&uzx*2l+jG&J8~Fga>E2Undr9`LjKC{(E#!yaQ`dqY+VH-vCg|C zavkYrCm~^huX=ONpuq;5t`x$$1WCU>>dw}3wt(dN8d!HxRe!Lv1-hc#5Ck#S4rsCg z2$F4aK9a!|q7OMRJ?AfV>X5<&!Jt51S`GtY;nK>|%4|vXygk)8{S&Ln?JZP3Wi!Gr zyIYZ&!b~LWNjD2^oBF!TmN^;>8kq#Wx?o(sBp*^wMXmfrJu9PTvysJ>ZP)cDla?TO z(egm4gx&xBbX^OrB7<>1Kru^xZpHY#C~Xe_!NT2l%(Ivj3VT&Ysi zhPg3j!MR{z*ubfQ#M8Z0d;kDYAqS6T!e=+n3>9{P;Y3``F^oKzJRc${?rMtq% zu2_AMmQ?Hm#tY_YcBsc^Uov87!aQh7!Yv{7Kb?DARck6WlDi$Zdc}O%n_i1;ZZs)Xo z$?o{9uHeFkvL|%65KJX1OzzJ2dDT7QeKBdon6_U$Yug0(qnEH$aDY)&`Nl-Z+L?WP z=1v7JGe@n$n6;z?-OeOHC`R#NKQMUmO!2aJ-?43+GMdXRBkDdF$;LI*aB}SwVRLx+ zEH;xvzn*<9B1w0G7+l@6eeuTEV6cR&!U>(!RyUQAhC;MZnG%gArKm^@19nIUf`)8r zhN)=Jv3^Ud(Q`bZ5g)(P`}b4*>XMe#q{ADG)}d?~vv=Rh2t(Z|%r@0;r;+d>TpSt6b|iGwDD%&--s|ND{uh}^+Tflvo+JN zNJ|lV4Vci2^@fHdRErLLXRmhcvL*Q*hi(>!TC3~iGUH|}F$McJ69$tr@sNe3yE@FPvowEc4;(*JLqoETn3{ngos)MaM<0 zwS0uF1ivA>3`c#}oTSwkr`y`MxZCb9aaen6F5}+mC+ZWg^!004oW4iEN&=W@R#tz9 zp@PpUo6`C9`=soot(5);e}dBJv9N+fnaiU=S6Ta900RGC2ONUKD;~dn=ljS^VZgNm z&fnFWB3^JnCLhHkL5zu|0Gd;-!s?Vtv?~3}q5V#^c>*CY39@S}X{^|7@ z@dJT?r@=34c43+oLxB{nN{90x75ngs!(hGoR!-LU=-vqoA}XXBe3u^zZEkZnF(8u# zJoL<0er{OnJ)lfz!=|h4>I!zA{2fP6%WwT`?^`c*J(zC+8Ri!{pAbzDF!Sec*KNr( zRFNw_q(A?+iF7zb_3$J`0LJyldm6@>P=(K@g)OkX-@*05KySn23(MeAwBm zLl9&a;FtUf>nj3zrtxUAIzqD)_2pO7&rcBWifHFfv` zLanzpjrgg;rHs1O>)A!_*%^V%(M$Yr8Cey^kkH1iO@kj|QR+SZ# z-Ik-qHK~bGgNjgEiY_w1sg!^qk?`@oc{N?A{Xm2W^Q}q-hdp9kS~>!9)C8@`rRL`3 zmd>u8exc7iO+IQA_ulav{I0Z;D0rb@6By)=gM;@#0@x3uCV@aye}9rM(@~B>s1Pq1 zHvf8iriUQ-aXU8mr(aM=h0vDiaU}AaaD;N9!gw-tgd_z7pjEnZiF`mYewqzI)6~4@ z)G&oqn>4w$`|~OhA59rRXqe*hrF+176G&R7rmrcV=u~eWyP}0jnVJz z1!k7Ul^_O7`E~>J+MzS%NjGc1b)7?W1jOzx=forMhE=D#>ic*PG(uN1t<~oW#5~7X z^lH|0c--#4Tf=6!x_F9nE+d?5W zC=L1fUC>gQ4o8QRx7m}F4qBBY2Z6w}?Y-f_pdo+&MSz(v@`8aIkX+^m1P2E4crdX6 zfP6pzdn2^Y0=PMxG`{{}P#CU}pW_oE~4|e;b+jmwX@p|IGJEpR`+d#_-=>o?I)okR+`t zuxVpi1(!kiLe3&VA_UdTtU)Fri%G7mIqt%;eSm&IRg2pbOYpgw_b&yr=rmT33%7eq zTc)sQ@U-6ykM~BT)>cWiGuLHt`vu(X-(30FVEVlsG~3a3TwPu%pd{x`-U$pibK1PV zYhKE_o|QyA@_Ih9_v<&*jI|&rh)s{QE_w;tQ?zO+zw4^WHCL^wnaHcBTpZtJZ>zMi z3us208e+F1gLRU{a;-)1z>L@9%3gU0TpDBi$Q7ZkLWqC62kN|NofcM2s!`#r8b_dI``3`TrIG{@;B_wq| z<@%?lsPISP^n8B1x=cO4+g0cr zRO~;toG;0otC$FI)QNdJFr-9mPkMdJy8OVCx-@k8SrianE}5}zO`o6`@TQykrLJu> zFjC3dfCN`=zti?;hCzx%RZasdycEgCx~}&C1@Wmv>_P{3@+0j&@1vfdZ?I*zPtueo zp6}oi`?s)R*w^UfsDCFVp-{n&2_-?G200p#bpB)b_i3K;c-7P~b5c>SAv2DW3cY4) z0;@m``PL{ArW6+^gWh~yx~^j4QR9v16jfmQRb zE^U6VdaNiCME=u8u>5IzgO?Hn0lu9=1Au@$ zk9tXgJhiRXzDZpKBOXop(6;w-i&$#VnLtjmt&XwD4njV9bNNMPZB-F@wdXV#!3kNB zAjqP5aSdg7Njzk=l9ubzOod5=B-sMvHo~ zae3JVNgMH9LgG+^0&WQI7dU?9p?%KPHAYz~H9ht(0^k73J;a6HwAFHVz0F!KVdW6mAh1-eP`-nO{I`f}?+D;tg#7FDh;(CT5O*BL2R_ z|B;D@-S|%vujOU0yzKGmv)x(YbMnsrJ&He`e^&;M{YO&}E_R9QhJzr+X`vC0A)5@O zAXq|1?7F8Vju5v|kH3uN?f{0--nVEQZs}8JQd=85kT-d8_fY~uC<*aC^CBII*Oo`` zcca160O|`#H@AB+zlMVN*vss@_U`woEAPilyOUmxgKj%prkhU;c&zLDK5ie(Fj_Yk zoCoaDL#Aqn3?aRtG;Ql;s=N6}7g^REUWDEQan=Z5@}*WrzN(e#1`5XMw0csuMUhcb z7hI0Cr?d87Ly-88e}-Gj?lLKgfnW$b0kB86ux5cCDEqy|-)D6>BU1blH-%_ezol64n^Bh7jtzn3cpRzmS`P1I`rhwRR=Iu*G z7(JPke0*=U<$6pwN0owtwtg}4C==1#ouEP(=&qh6-DJ*<_ZM+`F7{4majA`c+?Mcr zwYexK6Zjj+>`P78I8#j33#bdv^?$Z~J=IPnRxnlACU+WtzEL^<{m5c!qCfSOu1k~2 zb22mGqNa_;wSQn@u7|&0Oh(n)qbRbrCg0+$5si&x?gdSX z*4MXqhZfewxol&GhB8ULmR{hf#3O4VL<$luit9ZL%$P-5`6 zZx$~hB)~RJ%9>trFz0ixa!PWh?ZybdI#WgE?%8YkU5apAV(6wWVX0)=KNpOB)F zuA{(w1A%RFBKp-M*zBVcyN>q`>?gwL^9nP$e{9^go=@FaOQj8lU0{P2&ONTyY8(@5 ze8ZW@=tTh3t}^(cp&#v;p?WIt3hjKCv=Perk!JBU>-M~p!PzUf&!+Wom z{n`CX{1`RZRw~r50yHzs^OS%O+5e zgIYLgza|5+iJ;sc5n}HRGRVpU;rN@&coc7{=v$I(N-GlvsRdSY%5@c6!@R%*m{^G~ zA8|LZp6TRr{dXTIDIp*rm%DE8>0JSaR|311b=k)+R0^yg3)zgr zivwJQ1*e$zJ0BD#Uasx+d?^V7Rwpy*uM)J%4HtBo~ z{nlBNSozmX8jR(U9~PWiPu+117~h2JX7(w)QS{ZyrKa$&W3Sb(H2J+;x8UI+6zp3k z1{-L!sXT}V4_8c7S^Z`hjCV@*a5z($JsvG<7C1#0QQ0>Im8|$R&);sb2quq3tKF#= zq(m$UDsX}e6$X5r%=u9PGjTP}ISjwCueiy0n2jRe4sbN-Gt6Z6c0nbbkeP(zk<^p`2uvk#!l|Q4^&^3W_kb5hv;wEn>{%^0w~~B= zoJ>odHbXW^ddHy)>ZWGT!=ZEeqlBvBf=`>IH4GH>yrJaDl-*c9)`W?5LkSwL>|`dA z7ric-tI21MZ&PN&Mf?#g40)YTvKlNBzoXLNVQ>cCICgA)5(cC)`#jlSXr(hQnlJAu zY@vZflJ_6KNZeoEPGR}KrXj{;s690x`&0w5xo1#>Qcxo}G=HAAkI48>5y1Q0KtXAxqSTML8W3WAl~q=AJI&-RmAZq3>9 zxyR@}XM?9KbowHjz3mxs0P8`e=nw+`t2RgHgRdf}3`XN+)aWoihl`y}FN90 zAnulCGK0^X8liFu(h|Pj1A;ZW+J_ZdZnkPK>2qlnQOIhnGhZPON6jlR*>~}=E zbFPL5gJ6}>#u=&p;e*;9H$4eW$dN0QluO|*n;rX*E|96r_;uzmrqs^I)rUq@XYiKc zH#c-3hJ=Q?#dbRP6-8N%01`9CNPzO1N7?QhRa&tfwT24L;FoSq4K<&^Rh^UGsUN>m zf#Gw4U5!V26j$X+#yXv$2miQ(S{$GD9U2v~pnO70Dnf*&!rcR#=BIw1iip00&i?(d zXyff1*JP{GRFY2&i37_+q=)DIteEBYTyCW%$ZP)#(VRVLJmxLW=HJjW{HxmJq$tT? z-2u(gL&3*ayA?rQmZ63MI(}_RTPOrmtxdDo&Gm+ywSf~02Q+Aaa_ZGu#kx@HRFtWY zbO>V2BnlCd>6IV;srS1{#0j;5GD1;D&DHJ4a(kb&!?@;d%bl>WAqFnpXa3Rk>kT#u z>}UMveMg6obpM>P0sU^fjM&6s|b+wYi^d!K@?6 zmMW?M=(NEvuoB*zj#>>DEq&ecl6IeAQ@=$qsM_)_F7Xxd&O?`Df46Nb#wJK>#G6a6 zNjH1Ga3rQLoySmmD;?Zi%`vkbZ^Pf+&NoQ&z%^9BBY5FSOz$kEUQ^)mLKV_eXIEyr zObTXG*efClFwKT5pXGdZJq+f_C#3G3y*#TZhXReI!pVHai9j2!W(q%dz7#%fX2f!;XQQ)wW}1 z(_QcAHMf!NP!ajL;E67Cr{;6MTBmUzeSM(}^~A%~{9GYRI#^C5UaW3#cZ;`i#Z~L} zQ~V6*0{U7yL%&#J9Ey=oSA#x z-1olvk&#(nW#-PP9kF9&#ER32j?MKm&X#JQ_NNW7F9nirlo4TJ>Jw^$;~krA)ed}~ z{My0z{LcHO4KerluQ48j%g#~-0summEQ=mlYbj6Xh`_I{sdkltl!P}3DjyN}vDKs^ zfI<7mBe;pQj+X%vz02E+%Sb*NQl1W=58O zgirq={+Gfhbd!ICPZ?^KcuQ_W-Sy)pw_d=c|T`EShV1~Nu;o$)Ucua^w@8@#G9zY5`<_-Xp<#ws~872$Tq3qJv{ zXU@)|C`xcH@XwB8=}-ur+@2jR`D#okz8;WWj#?QC{zT9tT*6oBYKwrduVhbnYQ9bO z5pL3fpP=AaAb<`yi^QMUiUDjx=-uM%P(8T4LB1b9sR61+vV^x&5tCx<&Om}_AfTh| z;XSQ)m+EO!g}=pAmSz`M<*juIXI}W7qjwhojRghnt4#c-hv=G|^r!&Mg^qyFlzB`? zPPN+=&c;*0M&xwdvy{`q@Zp#ll9}vpeF9^HzO0Ssj1HwLbRL$uavC(H7L#Icui?ZI zKDZs|Q6yNU=qd>}48Yg#*S1X9qZoTr5(4aI#(Qu`qdq4tfmjXB_CONdk#_#R^YL3E z;l;>iN6hAI3)>g>g#;lsa9RoJbgf$)tXIZ^oEA@YGF=)zn2K5d&WrpKR$s$z5zqih{LB zw#Mz;){)@kz;JUTJeWq z-R#mSg15aXSuj^3z`*fm^fY|N5j=?Tiz~<>!(GH{oUJ@&4ZD}}x0jYAwnMG$9`*Oo zCSBEVDs%iMd~UAc6PB_eU(y$2cPeU0^kSuIrrXt~7)-T_N_Br~{2aAh^1LK3lgp)s zj7ILW*pibw$eq>A{gB>s>$H^NLjSD9;L%K&%&NK&J79%N^(x$1L;X21AsubKffM9s z(B5@L7)aNfM*-_UP0yKRBp$xs>PJG5+SK_vmQPRZvBkXS6Fa zppzzlv0}Y)bWC#&2U0EI=lL?HF5caV>TD!Sy%6~77`B*p@#*5 z{{vosD@R+X`wxRnr!Z~K?P*cFmnmO*NgH!*%oC!bJ~ZS~B0 zb7yyPH92gb-B<<>DJRoxD529Q^u*X7q4(4Bgc#3 zoj<$ugz1y}x9p%KdSbw5Z!Fg;oS<4W^#S|Zb)_nri8{6)39s~h-oW8H`@{a3=OLfs zF$r+`NP1|;ml@mbGj?`M3RM7fZ}cUj+69S754)ph;q05f+cU=26Tme$_6p~?nsz~R zYQoS#xfs<|n=F$sp(HKsy8qPCaDNW-(u!Ii%;@2aS9#UDGOuh~-K&m9PWNqrn78e@ z*4U~bWxx+8OBzi7RYUzJp7YqaTb0^{vnh)H^y17(ixnDFV0b)LuuU40^$KE}9|*}` zBdaB=)JV^ZI;GTqXxZgGpMtG(4W4!}QjG3!4uc=0G#^z;!iWR3jb5}?#Gy6rWHIT( zV(QcmsWq-Yalh=D&RM9XncD?C3{vNULiWFlMb_sPyvlKLafs7d&opql;uLNKU%gV# zgfyl99`bVF5YKVgmT}ETLA+?ldN!eWYfS_VnM8z=*V;@a z5E#GaZGKwDLm>9}v+myOXeS>-CxroF?~G+DKp1^#C%gXhBJ)Q6P$n)hluXNI@h z6DG`|`}|^x#E7~W%}|9?m$)`EGW`2NKbm!Y(Z^W%SG!wB5;Y8Au^dn`Lt9%qSpS5o zy;+;KR?gkhKMs24s|!gk?2H&zRwc|H#+Szm`ajA+a6X2=dPQfAoP29_(Xf56Nsj}^ z6$&@+rmz@(b=DNtOs23$p7;Dnwh?43(LWFZRG9vJ2*0|CvWn^OV)AtvE@8~3Z6-7n;vnVWy4`s4XVK5|k+Oqp2oDT%R<||#^SQygk z9)j9ZRy`8F>!JPQw+QrD_->0c*>8J1TF-^zyUdN-xD^ntYo z4UF7^g}rfylSm{}xTI$>d@2}=W#Wosv~I0aE!wry4?EcH9JUxlOR+Nzvg@dZ=yNUP z<*vRt@>BCS=VRC5^)QcK)h`JhsTPD9Q$Wd=eN=t6R6!nG@wMzbeLwFMOR zR(ABsW7ew-Wk1Y0(w%TwGsiN$E`c5Q1YHHHUcwu(#JVtn^qCJ;ybElh5<0O8V3o%C zCbsQ6!~RX|dF>?(1ckv=5+u<2LG$y|F+*BDWpmD+jV}Es%UxF%ZQ2&|rF@L36-Mf? zfwgnSLbHxhumbV6QgivMFZ(Bd)jDT$A#&t%HLYosG*D>=Lq1xUzx@fUIMX@`ZzDX~ z4)RBi>0h-%AijTSZ}hYLQ3%)YbUAQ6qYrKYqa30kgTbA=iYJ>^${D8<^w%&xp+TS-+ z=w=eL>cg5|f@EgpG3y$k)N%GXih%`a88qV=M(EPe0^nd3pUfu0D#Hjc!C98vH%Asb z2zZ?H3T;)z{yk89(R(Cz)DrUBA!%i+O;MC$#f)-TC<2O7IIFe4q)gC-QNgjv!-&Qr z86#`WuoGl0c2^`XNJ+oi0pg1`CV!9X9DuiH>%){LgC>ro>xI@+trDruo=0~SM8p#8 z%R!HZ%vGgE&!;eN)JQ9$QNpAf^d}IptDq=5@~9)?tfG>a0}2mf5iT>q3ny{nNyL+6 zk$3||>-O7z3Qn^~t)}(%D8hO_94LErZGCa)uzBIdj?FE(9ytFIY0<#_5I>KoI+7RC z9HL(nAybhxq}LfvG1kaofa=Hk<7+iE2t5*S8RSPIp@${scidJ~>@@YjHADzbt_@#R zx;RAFi@Rglkn;kU*P@xw&BVI~T>~V6!P1_wvm^U$&V+4G_J@566IS0|n;{F{M5bp@O@6mHbG7LhwwH;&lLk4IUAx8CxpSb{yqL=*~;A!wwfYGyn*C z(>HT&Mfkw-N1a{Cjj&SWI|l2!+I(b`a|942(68!b+`TS+tGM~Jmy&&fBoc2A_b+PR z-CNFDBiL0Jo)NQI->;r51YXnV)3+G%L{Q!#%Tx=_{w?B6cGAw(W(Vn!oz@M&?p& z>~U&j-$!eCjcFZk5DCMOpnbCF z0p7U%i#}p6+ThHATo{9|Z`!^MAGo^?=XTUaE2P0oK)3aF;`Pnu+oI82BJ_0=t-34k z5k=<2bJmcmKi#2U6cO$EL)dH;Sk&iRM2Fkp*=l;=MI@)7wuamgt~}V)P>lQ=yC|tyl5cI;K8GEf(Ea%lrW*5>&tyvn})7IRT6vY=+nbCcJ^POzCFMW-d z6HCWf60dX#0Gf_e3^yW=q~v6AJ)!IBa(5Vi7}3z?#k2k|Bvu!FimUq3V|mwrUYrqE zCHyZRL$KTFVw9z2kwG(fjV_(mOOcC#5(g%okp2eqL+Jslg^Jr4|OBmMfEltho z0Eoz)_cfh0Je~N0COww)C{4oeuHI`1{h7@etXDr1zRG#itQ>T8 z2{xE@=Phn$Yti=veEEj-HaUnPXjiARs=V zk2~ZA_GRfEyq%557AwVY|7PiQT)1463bNZ654ZtEaDhp7)PnE;t*AdMt8%QId19o^ zKHYonnqy%HPlSO&a$KDB$RXaP&E3U{Y>ZBlh<1=VO)&8iK?5MbK;$qKqM2&}HAf>A zeHap$`3@S1-i5~J*Q^ixdV|qAcxbn(n7AN%*nClp0pcoG)Lat_|=QP4#B z?W&*cIZD~Sbi-_MoW;Eyc#B!W07&r=K@G!)w$XVvf$K@HCA&#E8JSuaUGp6?<;px} zOtMY<|A;=N#}Vt-hvqm$hj%tDgL$*#)#n-oe!ZzyO>Q{W`z6|#G)dyjxFdOYV=>2 zwiVA3&-*b7+dXLLt$cmw}?lv>n&GFh7jOf;?Spo|^F5H73Z&NK$wk zuP3T8(rNX?S3#^0wSHGg=R{krP_WXiuDr~&aW9zQ{d(?`L_SK6Pus%<4ze2#(0XzY z1nsv>Plr<+@8@BVCNsj+PG-#}<|2~IYAu>XxWIB}Q##t_gn8%v zkkRq(JDZBo{h8dF6AlgH8<>k_8X`tdew2W>OY`&vtGVe(KELq#5tQ<4k@NJOnTB}f z7gmDXPj2_YPaY69t}C?Rk9}b+dEkc`XB@K|8KPqGk4HtL@9j_L8{F^5&DyU!GNNX# zkJlaR%p~@_o;!Y?Er7tEDkCt5;6yOOu|mr7GH7Z&hTDTN>ck$cC4q1z=`rsTy=>9f zq=U&zOvQwCr`gF;XMRCFH@cp7HWivu8N}*4Wu99I>gJ|51HURzW5f-%aH3n5xUj=d z@Q;j695wo3bU`tH)c`=QQ}pt$nsz^Aj$AG-PcO_^*EC1L8HWnGE*g6SQWs%%X06Vw zmR|LfNP28PG&7wNtJGFZ{A@^7iQ9(sxF*0(( zWp~Pm9&ioOtJCB!=tDPVzZKy&2R(T*pvZ&Pv;HV&?o)SLhPTB*j9pLWAdhLr|CDn* zES0>dA+ZI(`(kNk%zNyu2?KZ*Ft8z+GpnkqD5BT!6c%P*ud`<3Y$S0#3TkS7==Bh4 zl>J`~8<}+0s8U)z->K%y#kt6^2ye|T?lqbk>;p+m=nXU^(Y;J=#N6_zasOCt}; zn&QS4LbK?j&SUFUp3}=^_ED7-yQv2t_I{O=X_oj_J0%&g2W^ipqfQxGcXb-5DIAfL zs#*V>EZqx%4#Fn{SJlxu5B6&`H{IeUZY?I=fb#_hBzJvx0EE$Pu;Dy|6oLxmn75VW z_v-{Ef}aGFLR^1-d;bx@kTrX*vfuy9mN3Hkq&WaUC|PhaM8*3TvCs8vas%{^Bcv<$ zHVS86r~YHcI z!F^rnZQMmhgQh{7LG0#*QNbP%J#aJ|TY1bzP>Y3XKG)xQ4&ve*7HPFzirUc7eu<|y z)!?N{HOe^iTnF%#E+o#KZRZEOR0M4uwite_lpK5Z`qegruS?=+KoYBYc0#CnP?NFh z_p8$ffgWUA4i!rEJMrZrXscz+WfyH|S3HJKD6H(!t^iAm^#2sewQ+R#mt04t|3P%~ zCH+Wr4z>$&o74_s^rZeIN9+qcm(y-Lb*`J0_A2scm$o|5{fkLcb=DS}S5 z;S@h#3@su@6?}k*0)xL6I$T(m+Fu{}-yd=f3=%$eF2<(rd&|pooYYj&`vnl=?A^N? zyC#cxF7wFv4cV}%W8%GVb5^y)EeVE(_cUTyw_tnQK?n?On-a%ittH>XptajSF3kz=B+;!+P=mnHqhQ|GyA z+D(}`hj|Or`?KN4)})iXJ9un`@<&{9h+wYjFMx^LiEl4po_oR!4lKtBL-4;azW@0Y zLV5vOm$)E-y=(1-sVDCh=Dc6UxL|FA4!384X;c51+U@il|Fz*BJtNycTfY5=_-_^e zzZTy@F#I$BX~h~>7_G7_tDjyhw3jb1NDe3@z(vrjf&UEnAoBqe%>j3X(T@-dl{}Z^ zG8oz$IsfaL-e^)}a`Nqox>I@Kptng?$kncqZ0`2Omnt(~qxiCQAxbcJdUh7&2saY} z%fMXy*0`*pZDRsgbrl*!H;f>1O7+DE0BNX|{^!8{WiSdSFC6r!h~vEA@vPUC8+e5- z{%9Ks$W>E;k8Ne6Rjug$gMX5_ue}q}*w@K>egi(`7y*J6amT~@!(o)nsu7(^`8`gA zZNk!HRdawZMHSFPZIV|a-XN=u#Of@s-YVvV`n9S~y=dYHVymTC`=m*EJ~bhYcM#!- zgMJi?pGus}#0ZS*uaD00~vskyv3Z zv=;YPP-#C}B&7h~|BdUY)3db$zsgF8Gfb;<18T6tP!*bxs0;{@sQrWZ7c` z^r&WFI>UdeeLJ5qR5dGYoo(3!abHXvlmLxuCbYFi6xkTpTliiHrEgwqiH88v12+UD zB$1_-UilCwcsZaIXEH$;!ZM&1gEkP*G}|oY(_D`mzBS1n*J>w%`rW82IgwnEk8H~q zND$dEqqd8H51_VMpTJ!NyK$$hI+PI60h=_@pjELE3&Hwc`+P!3 zue7XK1=pkdG_?N4SJoJ>DVk7%2Oq?n{z3DiR)-PV+_#c1{^c4+4w2jpqcPJE;0ikv zqYkA9kMI4!;wJYdBS3sh%AnzWisl0LQBIuSW>M)dMvYrp7s#Wt`_aLc)#d}K3$RMtp-heCG4O86}=_t z+$-h}Pi2p)*(@sbz;7=1n>p$0)vx)t$^sje9}i&|x5MEg8LE*Z>81BePw6|6g;CN; zKKopk9e|$R*}=|py$7=f{7@H%kVReS3=h3Y`>Ab^9{dyYE=?q|A2EL>M3dAOEzb_L z*L$&aTDW|iUS9j4uEx9HId0qx5on)T_7U+$GnLsiZhm3s-q*|;CV73d-PzcVmVK!1 zY?^yfv0FE^UJyvq^$OieuOmOT30{|v*=T*<3mW9u4b80maG?MN)lS8U#i{0;Z)mhv zKrE!P*m0)jHG4=AoT-pFbYIV{=+>C<`b**Ea`1KAz-Vhk#Dl?l#fk57`obpqlIi7G zp>GXq_|mU`o!mIp+-^I5FEew1>EdQ{U5?vpWD4vTZxjyY_G9uk=DBe&gvRKK-Oe5& z!7#Z3wh=QM=9N2aGYVtG5z5lBh-t^wF28Y^cz(@weHFw(3%`^!TDy?RChf1Ial?s) ztXrM#FS83{O-0}FhSzhyCMCds0CZ4F>8wDyS$&|6Ib(Yd{Y|nv6r|7BGdvF{5crmH za$MArN?je?wgM)BLk#{5%5O6+lU@SA{mghFADykW?ka6O{?ClEft&5W_Ti*wWBeaH zqhI2`HOgH7tqsL@tnK{lU+z1XR5d83hHplnCSo=B5k)14H;Dc3V&uIbmAFOo37=u^>)XX`wVfIB+>y zi?!;)sqSpZz4LLh%jEF7m(VFR&lSakrRnj>jETeHDmD9Zz4d8)I+fAH+`>Zc(79iq zo*fOAnTaWZ~ye=@8ORHNK^+P2=^^(n1&d7$qJ41AO^EH3Nz;hBq0AKM7djC;v3!8z&im zK&1FGne6@cWBfdZlvK3rZQJTmGcmb+9Mu=uWzOP&G)S7o>=AyvB+wEp`(1HCie-+I z5L-F2Mi4Q#k-`I`!Ceay6shhY+Z8g45!Ts)Ciw>yxlp;H^m}kM9Dde5cw=9F za29$etPzE#)H*?ouVh^R3}3*8u**1njV&FRB}2~u+b{3Q6F6OM$~wR;@93oapqA&W zvGI<;#nW}EPtFd6b5)T1p9PtE4^$MJiB1Eno}}hnV(3Qnmzb+{bofWFxW)JI!1Q+= ze;ZnW{2G8SyYm3lptjb?Pz-(l3P9;{+d&tAPy=Ezw>}vMxD6aZC5sO;w11}Q61&1} zUsOBA81_aR>Qz>Tu>|#PhY$yQ`CczJQdujJ^w*oI!)JdS5ngq&yXw#?Vz`}yd2?tb9*m;vnsrZ(W>}=>S z5~tBnTvh0xRC9qBMV*DjMD*YSQU|BwuH}Aa z)AVHyt0Vj7p3_Ur;|DsQ$^Ly(+Ql7t9TGWhhv&yYd1>6I#y=E++X@T}$QNTLMOAGgL^W7finByr<|jRLp*A=Tc_ z8^q}rOaf3%x--At~fs>jG-ayb_Ko(B%g5UfLBuLCinih@D2as(+1Ru`5n?@JeLbi@!b zqXazelE2=fAYx-*Jdc~?-Egtmg~R#f8cIv(&vj# zUe;Fm{Nnts_Nh3n!JCF_X>+oSyYBsd8=r!WkKd%R=w#+Fch@dx;}qk>z5HxCcM7F_ z^#yoP>_4nOzH+ArtVw%28gg)M*4pXtH9qWZb5p>z*rn`0SpMKus9fBCs7T7Lln-DX zO3+lMba}j^VKZu0aGv6AVK3UR*!K~~%={M@@Gss0givT@$sZ^%JY$-0@!D;sh8i*O z0SAeYXLZa5`uKnN(=YxY7Z)=#eJ4wke~E7y+5ShJ2it$G%mYO7A0BmWN-TgM7<`jD zK>^-LLN>eowIe7kE2l+Mk$vFx5T~vzn$_Qm;IqGZ`mAas%C<;w$wbe zkI*GCdo$BCd9`^ILrbKrB0g0-mnJHO+#BC0K_4fM9M}895;JUVT7Vj?7QUYWIL7zy z1=&(j@5}Re`5)$t*}~v(5nTx^cPmJwEz&qtK?^DWhr+&y)=l)>|F@`=o|*n1X=U_Z z;=f%0{jX6e_&>S3QZ_6!jBtm#yN@z{H_vrs6iJbsL>!x^HaTfIjpd9>(1NchLgo?8 z=CT^mm9$TDI=L7K3Vr%X)r_uZhJx8?an|hGirOV=p>ZDlFtv}%=-}n0jW=2`T_WQ= zn0L5sMdIp~$&$$;N6K7feO)+RwJ$Bp`4dc6uZLw`rj9EwQ9QfyA`o<;JtrL;now%! zh?N+ir7h~#sYJIgX9w4w|t1aKKZv&s6P-qn9C zx6L;K{XoQ+@;qe7|0o3W@;TF59oe}cE$l1$m3;kF;Cp|-dnU=%fj1twsIk=aSn!9K zjw?fsle21o(<34>eNPX5_md<8gVFOtG#%h>CgEO)LAz#FO}50u$52hU;;DipTHu)8$5mI%m6g zwr^REM)5R}l0xIUc{jdKjtpZ1`e0Z~$2Lx*C^>+iH z8$!!`wpeIC`2=p@ugGGCE>EZj8PouLLISp%0LJ_LVV30%ORw{M=V{4 zg~Ii3SoOYJX^XS^r5Y)ng#FrN$M8I0hO#WjUL4am7Crfv9*XZXm7L}{n>nVhMor38 zc@~r$dGf8&rsqFyibHLjx-j%nWRnMjhj9UQx>D zriPw7{{d;0dxmAUiyAVNf1GF)hlc}?;}-ISgY#Z2B6PZm8WI&1WUO|!@TgF7eCDk~ zK?;Om*IvDWI0B?sQQp;h`0aLO{lXTz`x9~~927uyY}~-C)_4!T_r25J+vf6b@ht?B z;>xMQ$0rgb+KhPc!+lEfUSWOdxxCLea6%lLqDhnTI`fl6u}Or~dP)ZxB8Y%x;i4M! zuXCV@tg5uqWxYFB$leQ-z6-RDps^$_h+c`voUHqu(*{&YRHs6XlogY^?$A3p`&=qF z2c`b8VA1^AH{ z2AGS9>}%bhk=)uk6N}|^qJ9uOL&ZEAv{T7CdSy!b$b7CT%qmNF_gX21RVHjC{|+o= zrJZ@e-Y$2Fcn4J>>;N~Fl`~IwyC%Mk2Wsx* z>qj0bU+=2t5P)Nk!oP=dDKL6nzVUv`9T1HB=KRh3)Bk?vfjT5dyEi*o^{R2!+yKjF zdqg(%Lw=RW*N|iT+rJyGKJxuCZSSu&n0sigbb!d(2yOnnQa1N*P_+L{%MQ+Z|H@GK zKS|*K-#FmK{#!IIREKs30Dy)6L(3Uc7N~N-q3*lKLbLcbGtq!X>~bQ3++8uC&`f~q z^`*~D02H??utV*>2~;u6 z`61yuijq?YUP2A>|5?=S?sif4_R5KA$I$;a*n7VjXN)Ck5No%OESyg~LFepx`X;)1 zMUTPwyRp{mudoKGOcuimZmOvyL}OtOVkXbt(Vf?dm#01h5B-V_OuCV&^(3%;de8bT zoeVW<0Aa(dzCK8P0;eJn=jm<<`%`b#y2-Um)v0n=^3(!NoSDP((YY`cvTxkGaOY4$ zX=tO|G{ueJFv;$URLzc+AqG@v~`LEZ$ehPhjiK@Xc zBjMO8fasQpwG3d4m48-G^3SKBi}#0Kp~VTQ@e{a|I+DuHK|aY_h`<(%_YEIcv{0a; z9(rEYiiUd0t&?NSoosI?ihf7gSp(^%7K7W1r{2p^B{U56`qawI{MD^-^F00l_v+i4 z^WE-^rZJs>5giDL0n|YLg=yq>s-6SUsfd0|gGbL2$r6c*W1qi$01Wk1#METFAy0wkj z{|3FWvNHU0<@qK4+m+|PKyUT`ob3M{dYfu}njD|xId62ia5^`(Dt3B>rIdpx5Dg?M z1O*YGA$bW@LD-|mbK!M0Io=t9WYNmsf?lrdP(1tbxVCV9sl%J;;c~d1I*^*0DoF2b@( zgzek%jvW51YrYiYZHkC!KCVWA);~Qh%aXo;m8V?A5iwSw?xvz94?|g>8d=CpP6SId z`?WL=^^HX)VtD)s1tbh4Ag_J;r2H<5vH|izD?oJihhIe*%F)P)?;jfqqo9Xodd<3$ zcOuXY6QwnjpK78M?C35Er7GsUaPK+-L~tO01OXzmk-iH>?1U0P0<2OP%mxSm5Sy?o zLb?EzMI~Vo(QqjoSr9tr$R+<&8HM2axpniE-mFHFs>&T(x+WDoJ`^^er9_XW^{w$M zJsvSq6*DqYu}u&(P#`Jq^qG%%7hY1^0;KI*mJDgsy8TqQrZVVVQsQn`*go%Bn*wN{ z;l!=wrm5Ho9Py+_5{x-oI~nTFWDKh6F|uC+g7nCOvTC7^0_^TCu!C@u+RdK`b`Cz7 zNR8oOU0NVKDW^0P1E!QI*Y0BQqy8~4cW{B)~pY1Rx_~8J(6W#AD(N*KhAHT&c zYHN@s{(dAT$8FAM+WeLsCdvs6jhZaVn`Q)AVikt(BK!>$M7jF9U?YzDf<ZdL-DS&t|9W7g^s77VV5?3g$5$6r35iJhNi6Uz48Jc7 z*Yz>~``H971dT-5VO0JI@e|=u4%+;w5E>pHUf0p~0C{$q6LMrA zmH;(uq|(o$ZI>gV?WG8KQv*X)I-T&OUsx5?L8GA(xo%A#&Jzen zGBc|+CokO3XYgD$Tb+E*+LEJr&XsV+(LkO$Vnf9!zv>%fAvBjMG8W2t+2eS;M#BeK zwC2w?%h~4=y9mMe%H$M2y@G1#oVp%&3#_b-5z&NwOH7=|0eWebC%m+hnOi@Q(KMHv zbg}r285h;<0DP1S)|Lyn|j$WPUNOBWHCR5zoaZc88B zTb$OaN$3&6gLUC(zLOX5Qgxxg9+%E#l}kLH>(a**p9nBjnNuF zmmI|)=DWk+_#CtoDjKOe;7Ic39b$9VWM*e^sk0RW%GX#djH)OxMU86M~5 z>UZ8ZqbVok2K3}6vtzMT_w5fq?q(fwVAQxTxmWe3W8qf)Uoz*7!W5wXQoxq1fm*!0 z3aUVC!szcnKbBTGab`P%PfT77bsA7m25CUB*lCPon`LZer2<3mrixknv;7uKDIR3|lSYI7!kKSB%g%j(f!oIF6*gZt?; zw_3mO{KfkgYKZrCzIm;_+Lit3$^+@w;hpbrNQm{{i@UfuWFhcDrUHl*9d#5ge9RHU z?X3^Qyyj%^Uxe_38Ask~Z*NBoF6R&2HkT&F{hs*57-C_;bn#-uiLd|Oz!8@Mn+oIgC9cF@N?YE zJMj>asZoowE?qVWqkRmN&p)?3zU-q=p#NGlSZKimgRMp%sl^*CI}*o@PSVNbMq)(@Uei&f9e(Wtn~i{JY%L~{U;IDe~ACqEB>!U zSg2|L-79WnnD8n7>K-&Xw7inQ6ru$E@q8Y$v${LkW3E89lVcH+j^>K zKbu#_1Ge1|1)#|YSk{mJoXBN*3Z(!6fC7q&B{Rn6v${vnG{_tp1OkEwPh<(JLuPD< zsajPgGJOz}*)c6lsgsQXoxc4_qa~$p7TY`2VKdWB@&JG+G{6@E#23(WBuB$3i%gjH zT{;Gvn=N)I_uS2r=@{uF@9oAzC?Sx@KU`Bg845KDokZDe>%6=5vj<-_Tt#C&ksf-yVRz|Dq>pkE#=xPA!hDBP>8S7DPvTral;n!U zKlxpBY3Z@Q<4}+f5C!rfel?GVMt!#Qkmr=$0OjJzz-RUr1!gb7C#+QP+RL^&7e2Vt z^GSnzVJBE%0;`l5gy8z1$Rt1%0fM061dx>>*!IneWIaS<8e)zLVF2gx$2mnCq%kEBUG@X}2UeeE(^K>YllzhyGaqd&A;QP8>QI!X^Lh0%+YUo6vz()ldknS)5$6#(QiLh7l6Z?I3l z-ziRgs`VlwLLl8yg92&{@>p+71-#gAmSPcIl<{#nSRPSw_%ub;wtgP;b~)*EILA&D zSt!LDciXhi9Ej_I3UIdj&~dx>#S-*t@!`o;YVE|1dT8l8B6LNgpi}wyvwhD`vmmi^>}>a{$yGf&>`!~>v*oW%eU=QiJk9o5`vV5P z;gg>+ke1Q5qW5E(Vrk;jdz8f$mTnH|p>8riukgVBf;8N9bHondPws99~eECx>E zuEnQL4h%$~WzV<~2>GWX%~~b~3Qtkk_;M{LnNpkbjUhtG8jEI+ZDv(7FhFcn{B&k> z+3R17dG3(y^j0;SWs1esGw*FsXHGyu6AUnDLf;}vUZ0f;mjMGZg4|&_2rG6KH`jck z2Xn9Jp7RgBS^^Sf>_WV6%jFIWEtt3P#*>GrwEa&MVwr6!KNvva0RT^omK{FU z?zEUD=}^R~Rm!e{%5H5%pojJ(R$aGY~_pWz2<)6(#^Jx<*P79)%yqWxXK4B*K^UZ5&~pwN&?{NdI3 zc%&s%9e`$EgaIYng;&UUBswT1pg&}ujG!^4g1=HCN>imk08P zSz8x_8Hh)F&T}#V=Y45@jj2fh04D&~{+_e!K=FH*y9 zqTBt%Y3#&6u2s*_=@i?Q3OQOxpA6iM`iKsQlD4(9$cMCXE7eN-D8ZN45#veZnCwU) z8oqZmH_HJ1k;FDjXb`6-sVyN#jhVC9bJd$i6SCo;?Yxtq z)SPoL?E8pQl4o+dI~hMibYNLcuRzMIY6$`hwu`PR9_IE0Mp5_dIY$!#vF?pnd;t9I zRd={zZQ4i-EE%24csIh+;{$6}oOM&|#@_&JRKy5uZi?gI`z4#Xmz93M^gt9l3b|u)PkXJQ)Tk9 z+rO6Up%4zmHLD?*$dt`0r`$P!0IEQKcn5k;3P{Ibwcjnh$v0>lS@OjSSXB)* z(>nru0nj7Yn=0`k8OhM&5>MT4>RanwT4NyA2b$mja3*){)t%(FmqqE*>K=f1gHy*y zpLdIVpf2dLrTIOa-}kA|aQM3xsFF(6O3+YyZ`sM)o8M%eq~e|d@obAztGRU$e%=xGLQ5k}wYsEMQP*p8i+!TxsYWT!)|(pF+B+t@>ZauNyG6rb?h}_k)23PWT7M(x zcolqp>V&PpQywMsVaX@xP6MB4<%5Vti14?vZ047&TU#t2UZ$uL2cU`OqY?0%lmK3P z-BwJnmtOb+zP=VOOV0szxkgG+)(cS#_-oGR;!FOppDQFt?kVuRorlA%x{jy z(KCJYYRfuOTy$57duvnu7o9+*4T@g?eNb@CyPoUWl|RyH73YCIQ!1w~p3zEutmzdA ztHbR&wSj~ETN1aI`@{QkdJObSam_1{M>3RiN$Gd?0FX(nRy+z{VD~5A%lg3j=8UA7 z)Zi;OgasqqVwsc+#WVEy>VUaLn?Y_VcH^=(eu&kbgGIbp^~O7@ zayfx8h{@qrATX`SlS8y$%%{bcuX&gGk_QSn-p>N<#UdESd5&M}7+4Qg=KFSOh*7nsQ6p_s zAz0I?F&#sqTpj}88)wz&zDRv_=v&#b$;U`yI+?9i4rIGt!H2qKOVhZy|3 z8BMQ8_%+s}nBV!k?(U3yGYBs88my+yhPpQA(oFEwb3)>Y5pDRzNz$15$4j{j1b`4R$oC^qY)|e%RPYpK9Wgnk`RS zd>89^D_wC_)ea-nF}L?g9rOweW*i5HmnCW2eXG24=%3{+PN1l(O8-w=*BR9W)2ssl zq=})1BE6~@I*15_ULyeo3B?kcbR|HfNk9-mdPjs%1nEfcgkA-d-UN}N0Rz&ch4AG& z_n!CO`6US!9MNCzPEa8FYu1G zCvMtxy78HbGLTKt_OnF=Y4qSH0z>!VJ)f3F$6LG zurk<%f}-Q_2l&swD45mQ)?Zjy6-@q~&m-aW0zWdr$<92jV7jgsdhmk?ev)mdd)QQ= zQ^zOj@?7zpQXJ^Je}q?orEgB_de>a#q5ln;MWgNXFDe+Tn$O-Vj2%7Hue<<_GUsGh zd!x6l<9o5pjU%x861hNm8)-U;W(ZLwEe7h+2qLN*Mf%B919cQs?%&8EpIY&dJZBL! ztI6HOyM9UQ_^J1Oy=aIBT(Sx7$H}^I53sr0TaEV1mhCKi-nL=7J7P0(O4FF!HKl`S|vU zLDsIYEqXzLNi@kwOw6FLZE)|v_de{|Zq}l=&Sv;fH>WjL3?3(GAqVej=sOBj+4abw zhZIjkl(LmIp3W;k4`Wkt`xIo1qmjr$oVyzI#Tu1v)+$}o7hIdvCk#fB{ezGMUiAzv z)mtU(aPB$?s^zv_TY3FFIj1kTfy0lU;_(j+mP@?pfd=Qju&By0^Q(DSW;lU;m?GIm z+SMkmDN?oV8@2J0S$d_h^^-e6(X(!l^mU330LK$lZj+ z%ae7lhk4kGorY`NdWdekn}WzW-XYj$tW05lK$8EdAALq^QxP^Ty@qK8>Dr7!og>>dwRXP^*j?Z&76b}N1FJ@2LwKH_n_@L={~UAv|?SoxB(fFxmJ zn>D7Ija_0QmB)sXO%Pyr_eEIXHnKA(_a+qK6Jdn*96YbE3LY;US zM8Uh_F~8fM8ET93Gf&VAPa&t~Q%;w!P?Yv6Kz(*ZvE+q)ack`s(_nhp>--sC&rw@{ zBXdKIs8b$bFV*MM^B-R*m~EJV$q&=&OtRYNtq>cDa_evjmbf6>cd~JWpJQt`l0~h( zaA)WKg>#NXy@9n^dWI{B3n@ZjmX#?*)8*s*s@jrb;Hx?!VH0g1e-pyHj$1;S+ntQI z$1{h_sJ^OeUK6{Dj=vm*~&25#fmOv%QUiwB)O!ay9*YP@_uX z9>3)lqS?GR9q!0gl_?o!PD{#NRn`9N2oCfQd)9myKZ1~m=KsoFWH%$*U}Ixd+!`ft zs)F`&k1QBjv^qKyG@4Uz3hvaW?c}5j%QKA}SNd6{LM{DZD5W5ieVGqe)sK`j8z@fN z8dLn?8>afteGG}i2CuP7e zkm`5LLzTCk@@%x)`Qig++mt1mh~{ff_}#4lNk!lmmXVEhG%ok4uO<55x^gR_6?Xk! z+~l$vclS5mdk(*gDhjqro6)^h#jZOMKL(DyDuq4dYe5Ml;R>1)p6|Bg7pTB2&i5(U zSmT6KyK~8ZBAui_O#F0yOgWN@6NA;jOt1E)uau1{R zS}T=bCvWI;U!Ru2l7LYR@&|KIHNTEMwQs^$wv;hv_xo!NUpDToBgjhHO|fwTfg}tv zlsfZ5c~Yw`G%(~@kN#ZQNqI=gbh3L}?H+v4B45WfjZEh3SY7mK00heX+i3w%zP%|B z)HE-lGNDI_(G5~u1OPzaYB^mjDLSi!HR}hi#yLy-Dx#`K$mkso_$y^!0p4|R7`A6gT-yyL~Yd5wT zu6`V9W3w%+?ZpVP|M8!B8imHkHUhT>)_%~om}P5@_r0u2jNqVkwz?MH>N{0?Ipvh4 zPTsWOI?Vj2SjMbsel|=|lZX1#)MJ#wIXUtcF*r;Wg%Pns};=naRsgi({T zYCV*E@VWPfjg!8s>wdYlpCURstjH6TEk<686$Jt#g?3)BNneU`BSmn$W$Blv0@+$jcKce3*Za;=;HHl|fGbp~ zi0wUX2jcQj3hLzzlg8`9m_qDO7-a&+h>=QQV5o>QOLfKRCFgPzn)KUpg8#MU{Ddk59{+HblX2GZ@aSo(F*`dh==*vqmMGMI zVqKD#&KUf+kN?7JgMqN>+Q}m_efXhbE1_`X@eC=G$)_T=)PtHX;#`FCv4omhz91#2 zhh=Ip#4htnJ2zuEAm{$|hwW-drd499X~$m{`F8?hUlxdR(z~l2m#91|(^d!_C|&(2 z{1$MVv0VJrnuf`_r1}1FZ=mCb=JkiI_8s=eMrvWi?-1oJA88ywdU>MTL9`Zek`*W~l@@nvJN z`*^DY8&Y8jOUOXCs>KL54eG6-ZVjX!9rfj~7!rl;CvDZauT3q^o*tzZiL0#@{^e4<8&dp8VbWe^qN-GqT zf+_a#8`p}s5J?N=@ZC!(&Hm1gdG8YF0HOjHexriQAK%rOZQPE$X&Acn75MAj($tiX z*RhD*?^j3avm}ChKua^&aeN22TN*uTbr$^P6RJ}C8USvn$1o&5!IV-`%pmg{D#=m4 zp_=xKKv00O?ucZL@Tmprn@`o(r}8f2k4ZHq*cY1#sDL~$T4MDqQ{Cv?6)!s>9}o~w zidE)#yO%Jvw3Iz){|7=J-j(UuRu^zo0hNZ*I+ruxnr;&D5JJ*jXW5g)ZgM;Bm*;S*viJnK3WhdCKvqU2v_6I!_0*m$?N2- zk-U*%T=K5ZG?ykwPhkF)^{>!U^;9R<;uk zIwL>#)q@FjtCctp1cwyjB`)rxB;b>~3VGP0Mly)a^vyIyx2X`f1M>6FnvcS}SDG!e zR-5zlcg_z|9*_=3Rn|Qp%30`fME2$}Fc5K{{+zv9sNZ? zZ(z{}qq;n+2oIIIM@gHd4yr3bq&h~;@24?EWn1u7YuL|>QdY`lNbFAA{{Z1X;5q=M zC`xzw#y|#D3Y;ffj0!<{(dZgEGqVmqnO>5DOQ8 zc4dEKIjAR*Plnt7KjC@+pbzNva&n**01P35E@RS@mw=(^Q!_*`PXgWQq6ewzKkl}m Fe*q9&RIdO4 literal 0 HcmV?d00001 diff --git a/gosa-core/include/jpgraph/flags_thumb35x35.dat b/gosa-core/include/jpgraph/flags_thumb35x35.dat new file mode 100644 index 0000000000000000000000000000000000000000..7335011ec99e98dba5d52d6a02a5e0453d69cce4 GIT binary patch literal 214310 zcma%i1x%gky7dM&#bM*x;ts{#-Q9}2TXA=HclYA%?(P&Q?oNSH+o8R)I4?SVBw6aK2K2cHlLaKNaaS`kw$yE$j z4&R44Kgd=74Oe%Ui_VMnk5h)8AAnADvBtUy>kj zZwY67+t<{9Fcex=PVX`;XtUO7DV~Y%^7v86!lkF-_4GHI86idnm$D6+F7H5rA!FHA z=8uS?Ny&Pa`Kzu4(D|D??6C`PbzN1kdd#Q}lek za()W<*XQ$W={YUrgE4xnl5kr*igR{#v7(HY) zhoEtaqJda>S4O%N*&CF8rL?$7KWyA;c(8mrXHTZNb|W;tg&$+W&deBiI$V$rCHf%< z^ZVj9ScxSl3}!NKf=tLN(qM@XE)fN=`Zav(qO^)1*`@DFJnFJ#F9GKId{ ztckgWxzJr#RLuRP-Ff}Ewdz{6Oso5v9-K@>Uf46= zyfN9(%v7a>z>V%;q|tKo%d_2S>ht4ZT?Sbt8VR^C%2f7sriuw!4=*N53Fx2rI5yvUasb&sD!r!mLsHe!9*zf&JGghFWbD^mCVcQkDgp!;C>RV1 zC55?BVnJ@EV6p}p}s_k z#naANdM$2LzAQi*IB|L2qLf=U*Qk>R&>?X4zt@Pt?xOe1-{y%s8Gor$w^_Uvpg=PV zXC~s0GMFo*)3C8IHKh9PJRfS+KlUTd$z`swKHBhG+faR(6KO?dMlwBPF{Hg~ta72^ z{3@ou^B1uXW`gv-sd!(&oabST8=xM%r~^SA>v$fQF=^nsDYpS`@Fy{2O(X7+%i zcRUF`P)%+4{OyArJ%7i18*{_IN-8rW+n>yTNB_ut^#5VLP-;)tyQJFx!Tiod9@&0= zP>|`6rPwP(96PcikfK4$FZ_cYi3JIc4S-Ez6pR9#B8~ztjsT4w=AjpNbrey=-j}5> z+akj2Y4WVg%hl5@Cl9hmUN3L7bYwZEh&tIM92(bIRiL*r!^tr+n;U>;vr&Dw_{ zwL{Y?{AU`nS&tO>N~n$7^kEP7oM^Jy9_DqDsDPok!=>K@vEpGRY)Fr9Fvw}@r7Ur^ z>ZcnalEU{%g+8O9G)p!SN&>*ZFOJEmDXBH2CJ$sRa7YgP`u4E$%y2TYK49=oNm?*H z*LQz+q=r`327eJVMy7v@**p5jBgOomBSnTE3hHM>7NgVA~aBP~oWVweel zUD#Bwm}ZXXMT+RV$=0`_@tca3{GvtWx!PvQ9%4d?3h5P^js$Y+=dwHyV8$m{J_7rL zxMK-?!s}Oq#${1{2>+iw*g1(@T+GeQZH)d(a|RanfAjob@E@)6pRohv;~!RuN^+C`u7Wl^-P!%* z5pjvO;Q`I70B%Pp6ybGU`z?_(JXC615H+bmCYp)m+*s*FA&Nuhn1n1~=NoorhL%+g|3V9v7mHF;>(euWNUF zr=BIn28L*#UJ$zX+bHAuFV6$q*|i%?T@}z^WJc#x2A#%nG><9t_Rt!Zp|ZXOf~{=o zRoxFXyV4a^^`eLvgymGZ1)RyPCb@M!HAp_S*d#2bi`iqba*c4L*A36ckTJANibzIC zJB#SA-d{5F%(!aOiD7+d7}KckywHZO_O6a*WJZgbS6OV-uy3v-o-eg`!;Sq#rNaAD zXrxB6y-V8+uc=>4DV1R1SgRwZy%^h`_mXymoYbmrDU`9d2|q~YCQn^qrWK|Op><;T zIdB`kcFf3_=b0QLC|=Qmc)!*3v`|5T-`uFRA*nn|hQ~1D!Dc2}PU+z06qWIK71Wp+ zv~d*HY!#Wt+vjAu+z;$uAT4QkE>=^(1AG-mFFq*|s~hFcAb&WxT5Bzqf$PJ7&3X>Y zf`!-(e$MSk8qu?|xmfS)?07aRA3xr46$&?8UUh6dR8Bc^=ceQ)6tk-_#z;9G*`J>ohlD!p7bBNw|mRz zEQ?(nPaN>Iea!LFe3?4rThi({z6s}!Q3!l66lmL&4(k1F9^8l>H~#YR_cHRV{d8&u zliLd?3d-6K>yOSb`d%{D_}!ubShf5MP+Yc9yki#Ar&G$XJe`kgnYkrP--Jputg>JD zSU#1tc$U~=5o5(Ar9&+&I%gcJ815)wLGTmyCXk8q>fUMRDjTN@!n;S-ZXMS%dv3M1 z>K#Tmz>u;DBy$pD~JcfP_w2+8vM4oj%T3oo?UK**uHeueH4bp>F> zpuxc!;(e{f@HWwo;OQ4qgvezbd#i9|ietq_hSY<{g3tp1eCY+>#3}4jzm!jda*$^3 zGeRQ$@=e+Zp0*OjNADk{=l3>x3)_X3$kt1pvl03GHm_f$*b`WA;Gth3AOO&W@S&z? z(A%LjaDj(t15EtzZ`EJ<`5kK+I%xQm`;VjmJtH)BkxQ$^56#V5)DL-F`m+_m6I-8q zL0nfbJo$HCLxT8ZQh~Wsr_JA~zJJjeO3kkUWI6jMLj?i|EnMWAGj>(#7Okz_d@dL1 z0(i4Vr){8h4N~7qB`poY^IbdY`u*t1z`%I7tom&t^{vtf0Rm_eQ_1+k*dXvBtfGl; zcbcvDwf-IKSyQ@o8kNIxU!w6;a1rcp6_Zmr)3~YexiOh%f7V+v<6C!}!@~nHtQIJF zdsW@WG}Mc-E&S2l#5}%=Ohyq#7#g`TexL%+{Fwg)g_kT4B3F12h;55*T&cskDR-;k z&Fy^HY5g;zn>virv_F26@5ebBT75R|nhK?hos~F?+hCdP)Q#7#8}sa~OZ7YfO1qU% zXf>t!Q+{={#;K?X9Kn_1rq^sPjB%cn^`B&s3_e-6rI8#Wr%H1>#I89{I&KgAqr8JA zLTM2vf(J>9H%lKa6Sca2C;otD55zL`r6&N!OXK2lu{GcQfDF% zpxv8%HDIJKZql!NXJP=N6eExBlEUU%5)P(91K~qyWT3hP%xyZ{i-%;NRFkcgw8ov* z%9W;0-Dv{1&w!PRO0(o`n6@@MZKs>UYZuvS(Ab9@O#mX#J-et=*bueD06hw+`@wS# zCN9@J3Q_p4g!*|U(;~9f=~vd8W=H2A(QJkWq2)!59-CmR#}?Y26%OO8o7&FGKf8Av zUD**W$++)#jMDT)Az|Z1CrJ>mgmclDB$Y!!+%}@ett+Q8mD=Ns1x;PC3@!?b4J}_R z2gBNnjD5f=&Q~E~{FFTZKL_)kmYP``8vVuLGBDEr+vENV{#VWg==P^`QL(f_Q$gcB z+(`Rz?Ci2SM;oIkRchU<(F;DP{7qypDOK_t2~NH!io^m6(JKK?0Uxu4GD-jrieYFN z5soL2fmM_?u|!!=qBN!mx+sR0cJY?kp#ntVu z%KvF;ji%M|4fCTezBxX&#F5QXNP99JSDW0z0t+OpTu%GRoVJVF#7eDjI0R#*XSlE z9F*8yqK1XY)Klf6m}&f&au8@Xc`i9#&tz*qy^Lm+3_uwM03e6@hR(TjjiNFHL-)kp zMt^=J(5c!&%MmUt)lzwIog=arM3C*Ka!i zx_6B6WV)%S)2(ykjw;kYEVlMS`aN8#{*cb>N;$}4(O5-wRJ@RyWaC8s(<{}hv1vRp z2-)z<*7U8LlQ2o!duGaRD#LYh+ttKDw?RDW;_M{nN zIqo&+$CO{Q7j$sx7hr9mW2b%|FNs|yt2I8WPGA+XO9q-4bLf5&H9Qu4`_W`WuGj_{ z7`xQgpW=;QV-4e*8SraB@nZ&3^T5`%w~G|Pr>G&VHcmXIM;h%&KmAZX@Bq5b$Mrm} zL)*=!Uw%&Suj zb{v{pnuftBPDL}B6--2_efI^1uxS6=G>0T*K<~HtNb|hF*y#2!HYaU_-oo^vUMJnk zM0N>-F=tDTt_rB7O~OFofkgeH@+?vJU`B2t14m{K94VP>Ex;CD%edO9RfHo0&!;77 z4_2NVSL>Iux(z*&8J55idWVEbKswe)B)u#N>8_e^D$}ZFtJzc^ScKoVIYkfna zzKm|V5)wGTJU!o>JC2_GP9JCfj$vT86kh|p^Cj*Y^J#_aF}C*&0M>D1(Cn=56iwEFz_R77D=Q$wH(^Ywv{?d)|iOB5xCXg_;T`^?w*6;10U7#dhNx<3r7VKR%jB?mcl*=kt}`(iL*r8s0fE1H z4-n0B0G~H3P8d2rc;HeF1*V(%gN!tY#b5@XNE8>s0!T^(&TBAGMnEOMfljsV>~i6J zH`VEZ&-7}xpXVO~oXTMub@OC0J>YVf+1ko2EBl%>Xon{--(cw*2l z0=XePfc>zqhU&Jls3a_^|0~K6hs(J`QN3o+<+p6@Vi7LTW5yYtZ&2RF zf!9;6?YY5RpzAye03>?W(&c^&Y5cX5nkB$qn_!CBKnc>i<69x5{s1|2hv!8|(C%ry z6VE5Rg%N7#?Q4Jl=-$R>3$GLd3Hr5p>*wKyMDtK%tu`@agSF;7^QMD0R|6T16`CG2 zVeV()g7iXGdUK6$YgUCA6z;?T7qd}bcU!>~>j$O%S}qpiQH~a8Tb4H%JHEjUq-=+w zx^KmRLy)h;&Uig)4hm_KBBwud$G#sbZh*tI-s0f{h;d}V&*7^D^wMNX#^zj<>(y`E zvc~*_p!{zwS4${ScWTrSjR{C~W1m$HpnF@vLGba=@P~mD38TsT{sdrvB4u_TPk~s* z-A}mTQ#H|i0{2TSIA|gKYJQ+kbt~6&wioC9_BG8`PPds74Xp4(JG$-zmLouFn@Z%q zPJk7ZKY&CAdJmVFb~-&QEmdnI#%gr~9kBB?q|}C1DIm7BP?7!BpRXoP^*WA|05~E3 zQrDQJ&7~p04>-&LgUF$4ds#j$@4}(N><5jZ%ik1cdNXg-DK4TE`C3z{Vx*r4i{vN5 zf(r%_JXh>Ylq+p~R>2R&&PREun`7l@RaN1uLff2A>~V-F4NZsui~X94*T3cqDv=&` zh{#4-KyUcX6Bk@$|DvU!3Id2;Ud1vE%ZpkJ`MI3ftChCJES5!1&+Shmov%6Tjr$!f ziyc%khzF^;C|kRl3G{0#B>2S$E1-~0-?dyAf+lfs%2)}2?gpQ*>lYOhax#y!R~7|p z!~tlLfqd`PU%Ye@Lc&-zDC(&ESk%Dyv{IosCDRx$my<)yRb9NtO6m&lf;NS9etr@X z$vTqn+yh=fLV8kICztRcn(Eh|2&QFXp5>!6KD6pGwG?{x4Ab-gap=i~LL{0M^ARio zhc+jzs!5o$X`~ApH$~^2lfAu3f1<~h7`q8}Q#`E0NJIQPnDErh4h|;$8#)~;xl$|T zv2HX;E?8sf5&9o=0^q*RA~@BdyT-@>W_3&1rbiNXowJAE!!g{|s>iD&wKtN(uNsw+ zATU6nc%`Z;=dG00i~J@TP%Gdo3R1e04C+XqR=S?nt`_O?ZVJ)l;=Z-vypl2ufPUz_ zpm>j{fTp>j#MI?3t~%?vU0_73U{=y))tgRe`PM_~*k;KLUQqO@-E(?9r5Tom&iDwo zSQg6^2cU=2VWa#)B7)aiqF-cKu?tse>{w^Fa+D_agfus|;fMM?@R-T46b+9>QCIoW zWx1n^$O#vQYMZ00cEAM*5zoW@n;c$&)5g+@Vs$h(D@816V5dQbaNW5rfJk3PxZf6e$t+eVyqj~Yhu(}7nxc9=^ zgsm=nhw6>8^DoZRHEUV7^4K=ExK2pq&S_p1wq<+)Pw9dC5apEil5rR)XiqUTu@B%& z*K!!Jg9Mq$66X1?trU`!`H4COVL^)S3<=er<}R+e5;c+T`rrOe>K*Nk4F4+iOpF}= zmil-2k5d1iH4@;T{gomWDJx~;_b~SLZX=BgiL=_-x67RJoWP5Jygyt<`4fYlAc*uc zJw@(kH0@f4Nl8`}R0ch1_zdR)V1Py?Y#|zyd~rjANU6zLVDpplD z9j(!;rP5DL4cTe+Ij!^~Oo*x9(4|u=ec@>Rh_euZ|u0E zXSUk)&X<_AZMPm?EZ7INCWlX5Mu(g!`}=C2sk^E_Z-fmcBcS4QaI$=NJ7cB98OI)| zq)8(q0{C!%v+OF zrMUsK(@i>oIz(d^iY(@{Hw(s6NC@k7T0ep+N6C8jG#C+xkjN0vzQxj1MyQA+{fE(1 zW~$6Q#7_{Iubr>jIJJlj6kwhN6@VND9UA@>P!k%#E-bv|+cqe3NIMNk1JrbFbhnrD zvSU;)ifKxkM0Ic{+^w5dsy7^|@5`Er&cg%H+;+AHpaSub-FOf~`pbqw42Icbt7r$dFZGmMVlEtj=QRoyNm1N zeo*i+mY9ozF+3%mpG_~He>^|;;Ig)-;$UWHVkP7s4B`RE< znv%*1{>5gJf-VBV?ahfJlz-bI!oKiGM3Lb%$W?~RJ{H&HOy5ng! z?{-~_WPNqs$KfOa+v85p(=y3HrUt*fjIS&E<*W~&`rYct$}$#{_4B#|v@4xVScS%U z|L*F(%&V5FD00s^_4sFUd9`vY&?Gby@otjfo}NvJ&9@O)!ugvMo!7$B@i56eb zzOsE7j3-U`RKNh*=MuAmy92qb*W1&fUxwAz9^2oOdHC*vhA{i}tTkl(MNWRp7A7tf zF1vbrCT-G4eUU6~sAIL<Hq6zT0zAcC}8+4ELYxbbYBIANb|a zJkP=x*&0lYmJ+7REUY3nvgg|m#r08&8i29~#!np{o2Q?CeGNmg3<#+Mmqm8$kF=Dn z;~M8-4Us9MbwCvP5PT2BU zrb_1Ir;sLfQ>6o8&+H-9;=N=yu9Fx%pRLnvz{I6xsFk4%`Dt$?4ZVs;Bs<%IX@W)2#8P~`a*uqOos7q9ph&qScKyxFuWhg|KDG9Fm?Dp zQ8XjRzxvnz>RdCt!~afNXa9(zi;^_oD+E}>-4_#SKhoB%UD~ai;o4W>XsxZ`Ff_pP zz{4{Lv-=95PDU;bYOKswrU3)z+ zbX(p%%|7~VbNN$LR9Cweg#D)IE&EB%hm_>?xDMKfu7H+=G3;^3H6!E3iu9u(;7Qm1 z?(rDoym=$%-pte8S@bq+sU~&^O;BCdp??xte#3spHnYAXSTJpA<@Qn%Yj-dW)(L3y z<|F=Bk@Tiz>vp|w&=MBl0Uhl7+Yy?s{X|DTs7nfh$7VP><`!O5T6Zs5pOI=t$V=w+ zYEZO!YuQOpy#6i+tBcXz)Q$lH+P6iEiHQ(LrYR)^3R9Jsh}vIO3n2XStQYf1HGz|> z^io-ntY7fjl73hYN)aN3Ho7i)h>F~}W2u}>F^FHUAl9o$WQ_9hX#M#`7yyVJu`9oq zr%fBnqy8KLfCqqK1Hb`Ap#j+%WflOv)JQ@ifMLZKky1P155AGeKw*-eE)=equu}jQ z{RhCShUqFQi{b8F8{k#*Oa`nHDUPvzC@N;nJ5Pdu{zcyc&`D542uSiCHp5-wl^6n$PHOG zTN^CA)LCUit1 z$ZG2Ntll`~v0y2~^J!V4S~F2(_tDFh`Udq3kTVf_>4!}G0}INA!cTJ1TGf#7+--Fa z=S3;pcJ?m%>vJYoV=n44{WenD+tZ=*NPTQiyy--jLF zby9b*VLiEfcyUTn;5gU*el#VGhS)*+n|NS z2qd*+N4T2`K5iBdx7)?)R9myo#&2bhr42aD;u6Dp0@`EDO6HQn{=8EDw6rQa3KOH{ z)kQ8Q$MeSlpx#T}R&D9c$0$4VTJE$&u!sYKPa!?z272|hSRMIj0D$xm+`_37%m|T7 z0VP7X6j9*9Os$|*OP-~vi>4ZsQ`6Kbu#L?n5G6jF)?(4`eOvGRK|T?+$EwxMhzt_~*-Kt6 z4+H}OZhbjGQVU79G+C$wd#{A~SrMx=!R>95My>GbT#4r@u&P@F#WI?ZAxm0U^mYvv z#zQjA1g+4tYC=lR#(^mkk~L(_|PXOnIa+>u(7=2dIKCke+_`|PK5R&>MN87 zu>j_a2YUYBX{Nrl!(Ur=9Q3SzO6EKIuM`tP;m^85(zNZW5!UeL-Ax8_H0mz9`OdzJ z;*yOux!ruBv0(z4j6WPEXa}GFYwlMeK`jmk;WPh%pm`7~y`3OlQ-7gEB?x{6wyBnJ zV8L1jgR2&GwOSVuU5QemF{#(VJLlriE9dTs8)?tNG8>5iC`U>GAOxWCOA8TZCWaXY zz8Ei7O5ojkZ9T~afrCM}&ZLaU=Our#Ymj!7rQA!A3tuPINTm1m`N);cSwwT=U_=rE z@i7J-dAv^9EJwDwiNhMqSaE9EzS3KfYJ0bIdWJws^k!x*E$=fyQ8sP5cI~`mQ=}Oo zAIz`^*J_3uZ)baJ*VFag*pC#s?yFbBcme=3O1$*ZLTC}O=3%LZOo~R7^pZ65&6lE3 z6d363fK|=YoDP@6kn;9!8?NM!K!DxOngbotz*fO`22vtywXjBLYhrUJpx5-zPwd-H_bUAD<`5*BozCrkv#0rjc2=>JH6c8KU@&NZ!YH;) zZe5$~0jynjv+}|vcn?OYJtd9T33dHebhVQ>=?|jWJ#+!Dwy43BY^q+ib#`xy{kW%i zAJkveTU$|f-3IW!{pyAh?AYE2qIjnCx4WKzo9=#Mpgtf66IY&?%Zwl2Z($Fy&D&$` z*EJaH;G@*8{XVXXb7m^1%p=)b^QMiaeY2*U=?9F5B@d?zx+Ax^D_WX;H6&PjD-p}$ znnZ^Dmlf8@x{YdXPL#!Bd$19@&R?!r(i!wz=TFwJ#Wd@0kP64B48B0e?Y4!8i?wk} zEac1Ej3{aU^gwc{>W)g&UdrfhcAz9QE6tRk997kkf`t=HKvXJmstZW0?FUi_;6I^f<}6Z>EO^c4h>7T^2TrJ!N&8Er5vVJEVw#=A?@#O ztd+T=*U^6`!d)q5SVG zqHkmB^cRaT(6j$encbMMAz=oF#Rdk3yzp6#QtLwT0BeevCO?2k&o27JBMI`KW|-#kb-MQ{&-*t1!c_xDYMoH5$w@0J>&j>B@EJ_Ns9Z)1S~ z@eND>P@TK@XYltp>}z+|mDRfHPjAf8%a$X9)Q!xI&*n|I#M@Omnr-uHXQLQ2gk01Z znIW}tJhC_PVI*QvdA`Z1C?SKsg!>f33MOBAK+s^40EUer1(NeLk$in{fRIsa8zMM= zeiDJABs2i*nP_r}CJ9`xqrS@hi3b}|gy~Ls&(>K2vyD7I{6IFPi_b|W?D&dYh+bb>7y7B&(*9wL>C{qTzR?Z)qpZ4+i3T^RmMySK%nt;s2_QtbH{{5q)s{>|=!J+!Wno!Iy za5*VS&RPrpBAu|SRM9JkzG{Pu)fR^+arHjoYDWx_js9Btb5^|plXKyPO1{B4&Z z5J;a=EZlE*anfe@dxD)#IZg+q&cv?-`n{$4)NAU)d|(w%F%cvJ(5h|K$1-qEV_p7y zGEQQOdpMRT>2k`1VMwWVXv-kM2IHG7j|IT`km8t&C=cinZ%HGDpY?Gd^bQe@1M#2X z+`0&l)&8m}qB{BQr0E_^TD#Au?I$njh;l< z-xt3C^#IAsZ2ROEfOq)AvbIsQg3T0q2%f3M>YznBL=S+2{N3uKA%x#v5l1+#Nw}dv zkR3J+P~C5l0SmUOupbt+n<2PREi0n06`25lQ3ab;Hm@zny$_0SRF8nUfL*n)ukIze z4DA{D;Pj|V;NP?Bc|?{!wWDBEGqQ2+etNEiyO* zJW$T|!Ia)<1{{oK222ISxNxNcn#H6HzB9!43xTI5>BY2krsEoQ=PEjzk^CI;V#0Z@ zci_ysQH|Mhfd`g-!eZQP#3GF~1oGb}RP$eo50pU!Lw|6kMH3mwtwGUXBN6`aOtros z^T*elwIT}t`k_grxmebXq+W*L$x)qpQEnkt!TO!Rgg3Kyf%*&XD;E=29f5xD-x5(!PCiZolipz!A=+6(Sj ziv)nbA?q`^(E#*_o?h?A7~Qdmu*{bI>tds)L|Jdrx0+&J5Q~X-S^6GV1?JDMH=_GRY81$qa-2Xj>hs+$7-ik4oUd?IiPeGf zPJP(%i{hccqyjFD6DP8I0C;{oI0s6;Kw|Ktp_28tn8o9s>5zLJ78qa_0P-z3Hj;{I`kgX< z)rpod5w4-LA%4x0aU%{6;_tBvS8MU0g8BTTIAS8NE2f=HZ=3cGo9~#A7x+^K<}$J&;*3-klw_b}J#fLtDx}}Eiv(ws%j&9lxRGI3*QY)v zA9|}0ghwGdZ_wlSKqC18x{pHwC$4*o5rP02+%7*btWCE?m0O`)xn!Ie*E=&K3F7So1eZ#p-fet#1z(swVo&sZ|J}N z`vkvLzEp=Af#)(jIP7Dtn)HB9$m$7l+h`w$`HC67%3|)6&xV~GX}+E>fzHmlIyPN+ z;S>X*0NKuBoo+T2k}U+J`{zq5E0+S`E@w=N+hy~lV&YSSA^4v9{QdXiDRC0PeDSd& z>9_B{Mm3C|HI4`RmA&bDY+#U^va!HKYV3F+VX>IZC@_9`KlZ%;4IISoQpB*@IyXa? zi(Yesk`X~MO#1@*t-;Bb(VLmI-n0AmGBFzz9ptkZk%2Ju0`gSnL@)JALF3r{%}y-~ z8`Q`x#F=O{mRuN(3Is zeP%{cBc;0fW9oZ}T!<501`RWrP85xzzf(6OTWg!Ys2kh=#@6rXALac&<4EwLKeR1L zWn4;GAMGvc!uw9=LJK>~!qX^SQA7E|97KdgX&_J_MugT%CBmO*t;qtJ7D)I6;cqq@ zKx9^<9ibr}7l_7D%FZiFPDE^nkoW{209X;P|Qpcq6BF}aM_EXv(N57 z-V+;dMDme9XDW!Q7ktK7=OT}y?gO+Qy7)7pub<@rSQT2X)4q{!%4{5oObu+JkBM{V zwh)wv+KGYAt;7nI0#2h|*St~*$&Ql>G~l~DtcHc&$h#rC4{ zGAImKs?zPBg=C)0?2UD2x#M;tqRJS0;(YUT2$^ZCfg2t$ih+J4Uwvn9G(Mq9Cp0P7 z9hqb|Nq@>HbH1j@IZ*rH?*hBcWc>B(vWK29Vjz+c46N{~B)(?%lD9-zWaSDo1VbHX zZUIgY!YgBvJsx?3JN$J$YCy^Ng~)abC{YuS^WR#&>QyJ!q^p`2@Z6$GObxK**@stg zXAbiRoD~y=h09wc&Q%k%tiW5?8#)FB>qp$8c0H5Kfs!qjNxNq*a6kX}T$$!d--qo| zOFefc#G}yNz-{*|K84f}zh9nf3y>6kGHdl6rnbd98{g@TH zck{PlqK6G-rv*Zb**f~MTG{?n3%UOEO4?a zVov6GKF6NATNR2#+JE&S{xZEI6K2|ywc<6cyawK+;pPlioE;<+s55Cf{W?%heY~86 z8^-%k)GxA^cnm_}$G}QY3-VZ;p!rCN_7%;S+ZrIw?+Jz=9`v2ut0jq_naKgQg72bl z9T@VnC+AF+0y>Szhe@)zdWU{Je7m?8WV7r@9iF?cG(?0P!a-{+G5q*)KHxn%h?&J6 zd;d`NP>X6tWW4mnvmQMCC~@Q{29MD(Y7g6fA^<1>-%1zJ9bax~-ZlU1t*h&bqxR|c z)n0ZJZ=JsyM6f@;d)n(hHnYlDhA=PHx?Ua&7V@>Ex%CvuNgk6>v(o7GVZM-ZD)c#K z;{kq!u8kt132tBfu(Bz_+v6^&TL#;PyeZ%MLuZrinO~VAD zqwk{45P-%YK#qk&DF=f%9{{QQCG_aofUpk} zE#G%=M5N!3L_VX4SFBjsG?nhEYt%FB1U^kMr-1d88TIu%heGs=xAb8qCepp9@F{tQ zSV!4cKD`Iz1ACkcEgrBU?x9su4ZdY5=)lgvMeK`YiWn~aHSym;`LQrL-AKOz<z$3K|Mr`_1qb8QAC zejnB-o;(GKLpBG)UuoOV_0oRTwk(9qaS?x+S>_HdNy~Hz$bS=U3aPdDAfJuk1JMGL zG1sKe#`D`Y3uCt_$w~L{D^{?rqj3J)(a#Cy z6U25OeBbt;#vOnAX13=4ryEJn!1C``dx!t{ZvPogKy>|?DJ5x3uc}}T<=j0>LH#16 z=dB}*6zNN?feFXOrVso+dBjLc7F?RRJpWedZc#(3QwK9ZwE|Wl9 zo`lN!^Gmc+b1TNdv;HF+!i02q5W(lk98R634dwNOxPyzd!3Txk9?0+GV$5KYmAo05 znKVU2`DW6p=VLNb3~wt;567~duQ4?R7%m8JL}Jvh0D?fOcQBHhj0KL6~eXJUW@h_o`%Abu6HYIm1V~ zRylHj_nK)XD-Q5`7vJ4@@eJo&P^@tBoD93+uB=^(rF3WzkG6Oy2&pC-edJMgd^xb% z969?nUTb`9Cf1 z6)u*amoX~`=t8JycO#tG_gju7bRd|ZB4rJmwr)GQO%DX?qE);m$X8D+HSJ4bephcS5eJK5Z=|emIkcji7PD^D0w881L zn2tNvjQ0sK#ZWBynwq*M(AnH$v$|Q*kZMgsqdc${jRs91bSwA_r~aZd&4Xs6%2FT2 zOR8p6Ur)~@75{F{!}R`k>N{g|-z;O_$7Y{=XlXBa5u1pGPj26Y-KZONwN{+;d{O}+ zKfzH7`F+&2g7{-m)Xnd6!|F3m%+|%&q!DGE>^N+J*u}SAg=P92%2E@JVj`px#t@jrjwG05}l4&&^KdOMbNp z3CctJII6F_!S$@m;00`@)qcY%8J#MB&m&us=78|bq(_e*5Qx~&rH!en9wwQ%jEf$< zN@CSFn=pnLs!Q8a=;8ALSyEb;YodZ*HfW*u;EoP+_QH+RIxB8U{4D})rZc^>d#*c4 z@SM1I0@te!dV%*9IF;W7(o2|&`Tq#=o^8JSM)SX9qZ}OnUU+#&|L8yd(>Fqt{6UVa zWH~Eb5wxLhw)#`;ReO{Y*(^S5L1of#;iLxAC`DMAKxJjh+z*IFA@-u*LhN_I*<^db z2<^6d@(A*v(TjHcg#j>OvGSD4!gXKati$J*Z6y8QNUD}j*WK_Ui#VOq*QfAq>921~ z?j|#AKfU0bBYiC%N*vz=Uv#EM18n<1a9Oj4h4lbpn)l&gCErs4?Xxk&c{`dgeoEiDoqE#o9N<EV`%|$ zRe6wbG=hUf9!pms+x}QAu_0l=Pp_%?)?xaqU&u5fT_5u8TcCFamQ2U56EAWqY6)w1 zYf24TQld`uQjb9Mc$YGuR(s`BsF+F)n2gt?qx?XSJox7=1E~+D?%C7W+b*_~ zRe?JxNYd^V3BfC<6B+J%5!qo%t+>_3m|^NX`S5;V*%46_&e2)ZpYdpHxshQ`+%0_; zt+-OOnUf~lAsNuZe%z-PuN~U6Jtw4MH{czg*8K`7s%Rfp*=2Fq%-OCY9z?4>HqNueEiRrqG;(OJkg@`IuUGk@>z?7?gzA?poxqMrN&M4h_uK z(FLc+{|L@qy3TKq+yA*M`{7}DdAmGoc=mY$I(Kw(p!IBLDQmZM#yh4^G=@Mivh-=m zHn^SF+oFslfX+q>0<8xG4<-&w;_>F3VN

    *&5dS^?Td&pRsGG!#=-d@e~ri2O`;Z*JPDs3jggUc+)69~ma;|)8>$8)1pyxK zFeD&Tw@lm^O^|5U!*P4F({U7ZO2W?w_Ts{tnaK$s^bFbC)K>KQ@Jbvi~#;cP41CJX!9N{2*PjbP_Nz387-xobkTJ|(XN+>QA z5>U}%{JMW?qC#415*Eo_S*8yJKtw|uIiTI>%%skE)7_kWZz?vCe%Cv?u~1O?U7Rdw zVMxHzFnd$;8UGtezq2teGePBbHDvKkbb7@*bBx;Cb!*;*cY@x}2uwdx%^)U34D?|? zX&-%9_Ek}h)#XFg5MX|aJ=bJD0cpIL9`VJ51K^XYGJKMy2UtuFgTpb&vKGjg|7O#^I+qx-3rz{sf?%ObFWAb670r^_>U#1V`BG(plTKl=o>+Ut z*+rZ2!#k&|`fcJ#boTJW{{s>RpgEE8{#mq4fe4ro6d(k;8CnWaOyjXJkG1R;W%FpR zi@3GwFFMNCpx1y&sE)P|Q|OT^6xN7JsN6;j7HsyJ3F--am!J?qyKtKPYkTI)*T z+xKW6yN}_*_pU}MKVMiH#7S7_`B3`vuD_59RQ*sSWB$_B|IR_fZ;bOV5d81WxrXTK z>Oe6kZ|V5if=U2~sCEAi+kSKFA(xO@qp6QAg#c`S@4KGM6OJ*uiY#zLhOSCRfa790Wge3??A!B+ls)IZTXOmKf^A9!x0W@@d3O4}K# zi-oH5^GS=TH}3J}he-%;cLPC%Dt8BZ=N`vuRCnB}+VN3@fZ!`B!Ij`ssH0MNq51|$ zK!Z+Cg10r*pWK~~wqLy1s;<}>)VIx;?!l%-D<`RVxwL;q+AOr^GwXQlj$Y@GGDY}z zo4fZ=!?(KJvj}~?dugf61s#M!VOLOFj$Bdy5C%=d{HpbRk>2RwTcqNRWp*MJR8isW zR~z|4(!SnghgtRtk)QB-Kr_S%z#P#Dm9lVWSE`y#6p;Svl;vn@NT$LvGGy`;Y>!TH znNUlfwVvyEAIp=}qEIDP49Zf1xo@^+yk()JR8ym7?*gHaiI*1Oh?aBn$UYKgWIcxJ zuI-EVmkZOOCu90JoklO!6VyEHr*BkeT^YT;MZaT}3XO${TmnxSc`DN1EkX$g6lvt& zxlgLqg)CdqpnId-szC+ti4hyqNQ)Ag!-7sLng?P%=U0dWnWHM_3ji>fyWY-poS4;O zE`<1#)tCs50=imd@3YL3bg9b++<;~zjfbG2rT$n(GI=jnSg_`bLL0bv1-&iFA8s}! zQj~6I0fa@l#;GS+G_vVe{K0{m#^k2LQ`u1`kJb*E4(PUS6cN2B5-8 z3x*C!IFf?c=3`LiIdnBka(dQyR-I~og3gZM`!AZ<4VAIACyD3GtfCJa=wPPp=!d-` zAx5cpQxEr=W_grkeCYSw2GL^0aLUHZ_9M&MTvQhGU&+=#2`IaAo;M5cdN(e3PinvZ zo^%w_Kd;SmsV(eQPk0hEjJ+;5-g$CrZAE9L7RN42odt*gnWc^{-=E=rXCzh{T<6f(z*(AAvWoQEOAf@+E4gl%u zIgi#@3$Oesy$E#|3<~+ZLq*$~bMD9y3!o50 zpGIW6H(;n`8TTEq=uJ1~#&|BbC8}!EV{c46SCdd2Ri|EW7$1dht>zoOcx`x!+p)F$ zjK1&XI2hSAJmflEgPQ8DPJJ&oJH%}aI>JC#%f}fVf9bhc_0Br7eDj#S;|sqI({it> zzgiomA?IedBB8*qNI&h2$^0^;Rr{u^_CC^IneR-;j7&JoJG9+(oa*<&R zp`ea~GRXs-X>DyF<}Q)-(Q3j;pzflU-kqyn)I;OXmB}+>ct)3eo-BrN4E0PzOq=@; zb(736(Fen&pGm-$(Dm`c6mTIxK)2qhb<~R*Jcn|OZNOa%rzpYwF$Kr!i!P~ptgA*7 z>K)R0&TE$+aU#lKSZb)IhDtfHO1}S(Hh@G!oSsfcr}#r-G_3GI78kK54nNDNq3;m5 zskwh4_P{KV1{VMTjQppwS8J{yhcj?>!}~x) zZ`DYwJBpi@d$xVLJ6XCpoom2~j_4TYd<_&}-5C%)nfwU_uhfc~t2<3nV6IR-G{){7 z%*A&BKTaI_$^%-rigW%(qB;1{ohVa0W8JJY*B_($a<_dvHgrUmE>;`;h@g$jbk z#UI(-40=?b_5lV=w<_Q_Fdf=wZe;|R?%y5q8TtK0mfpWyV>@r`U3_RBziP7Mag6TL z*BfTIqp98g{>Z2k$pVV*@L*#9-f`hc#^J9bjmK-=JTIMbQI29h>c*Tr*71&e|W^NCH$%&Czzr$yN3n+UD|q@gy>WblMR@Z!;gfGPqK7=SRwn zYZ(t*`>;A!2t!Msy_mbAKrH+?9pvbSci{<}H%xf}Oan0p3h#y>5VKgfSM>;7|IC{*=7 zXPt(HCC(fw&%yZVIFHG~$-pzB&1=}sq8(CkE|i4nG6Mb=D@d!{!by|_`GPQIG00^? zR3%jMLzj@!F=xGZ{CsZq_cc+|jXFcrc_n5g%UMU(!zL?ebgZh9P$Ry)PbM}fS z{}|lv9=;P37ohYZ0@6OVE%Frt;D18^-m=UmBt!`i5(|LjgM{plL4b#@}zutWR!4cgl%)4KMXr7t}vq5CI9$o$uFy;($NYIL^R?D?G|$&Tvp9aV5)$pw>gfgpF@ zuRqx|(eiMp<~o>}yMh9U@QHwh2n7IaHutdzN!QRD+!`>7d-4j7;0^EVYB9q7p>v55 zZ`aS63zb|Y95Vm}oQKZqtvc4_^k|3?19C85&8CQftXqya1A10LqyW&(n&UEV)G)UY zgcyuCgwtN6F)21$wf<1*%46@_dE8`HM-ZPLy94(TyyceK4%!@tqXb2u&xAc9ln6P` zCEE!xaf#-~)vKf@PfqwIfS&Y_DPd)VY1XSI0l=1~fh=}T$S6eY%GIkb1V&kd;r`Hy zlg8!{9Eigt`a-Sw>`5BgF1bH|>PmJGDg*!-;{b~yqlhNc{yZh$RYsl4TXUl;nakN! zTlkjRT+IjI_xW)gE54L<9-GabXrzW53x?37dJ`)g;B0Y^zR+d=)NB2j!RyUibItm( zh$FcqJ9S$c!$=agRy!2HnA+$Zo$&e`gw7E>{Pwl7)_#xzTVwt_`4glRPKZLTv4X&Y z{AKhm1V3(Qw6@PIUM;v{VC34C7_`djbhZ6j5FZe*!~fw=>m?|;go%7W5{OWtI@eTX zVO0TnAAxofpZVFm`0tl1bb zcdTrq?jARq@e6Q>uKP)vtUw{vgQK%yPTeZ{57&`;PF~BWlH%j_6Bn?)b$gv%-wSSZ z*%ht(Tb*-Pd)MBVw&bqVQB_1;^CT{JCc^zIwob=J!TBL3r$K;a2>TFHzzsBMr>2Yj z@Jh7E9JeT1pOm^FC=xPci9^%NCPUEWWs*sKP{s1huQ`9f_tQxDNO!!CE1ie0R;%~h zPVrE|iFV@KLApY&%Jgvv^L$EIHr~4q>5`lAZ=O#K<-d84RhaPs;9C6N8>Vtq4c9H( zDzn)oG`M>J_0>Bsm9Z}t%S6t{dSHqu!p|Zecn>P8b^AUmSz*K(R;1-{cPjQYV>oHQ zfR)SDP%NO)*jd#8M(g6~!r9MkDAZ!c4z2xHDKC{#!edYiK}Nw{ZLO6}h5=h9)4)KG z!=AC6)oU}(dHaomV=tWOa8WPD#?XKeu?2$gqG77Ri%rzPZy*Q&$kGZzwh?*+#4VxK zB{#>ZE8lD1sk}DUj_ECco#UXV~?9&IysF^*Zt=7CQ z4eu<1(^q6>Bh1bnm|+lvnbIuR42T)kAaWYiV`%Ha`vQj|@|I`#=(=22cch|3<}mwQ zmZoVmp8d0)+&QsAE)N#Y(wfcV4kL&i3G*%8y%gMSx=*Ai&^iWD(?d8TH4`BrL(n(+ z9#{DQDJvXwBr*XKZX)4H%3px_wT?^`_H<3{>0cr&vc0GZY)75=G(JJJtWsZWJWAQ= z9;dyNbn0J2MjsPK@y@C-7FJ!XR&QoVy)T^)1fW85`7)+B01j*k-AL&}IPJ{Q{-Qo| zWA(+JSJP$u0NWKt)++Ork1GLx$pbbUAyDw$8WU@sjbmj7*3S*ZFC)w7*(D_^JDBS-+nf>&Uc*!8`r}f_4uwD64>=PpK82S zD&fsO5BTcd4ExhIRJ!g=B86VnCm0WFvnYW^-+{ls{!Tjgjn_g3w;P z9kk*^OZvk5zTet`8!4R#0Dsua-B&84l034lLWVG;7N z?I*>|vp5Y$oQ8Fl5I)MNtclIKTkD`8_R>F)5_F9h5-Wieg2nQ7dMWub(pTGVA2lxo z7@Q{^zq>@!VnlPwMkQbfY_q#D`<3MNKfQf%ayGh;9HIq|H6_yFQ^?v3^{%X>#%=L@ z>mtrcN_!t@;_fby z^D^K*V8L)+PnG&p#?N>xRV>+5yM2(VbTwAA>NFv-)>uq-Rp)QzuXq0}g6_#^N=T~f zTF_#|bjj?TCbTQJBw`poT^XJ+{FQy3Rw2w-;btO;ma#rdP8(vW>2-KaJb*>v$D<;U z*EK+|BSVmnJVJRAC3d^k(LqHnr< z+F9203R2AafyBO##e92fCKw}0FN6fb;3JIfeoLk%o5|aUvVb1-5-o)_w{+(qF<_WEk!D6 zo$YzW>z>}Qm=<5oh*7AtAyJ$&jE_F@fh3pi14*7swuoh~x&{IAD^tnhnbL19UDo6y zmGJ#0fFftdZ@V?AU?ZlFVe8>+a0Bgx7xaMTCj-USVQlqIu)+=uZd&KF14wa=XXT5A?j- z>YA$__aS3Q0-5`^cXzUVW9#86MG6N8hv4*?NT+r4O&TpCV+(z^{epO6w9|3xY4d5e zAz)p+wZX;r?Va?k#M#Wx5(tDAUA335EAZ`JUZ7hkA)!%ZR*?u_66XY6&bH9oS_UAI z0P%xNUMZp~E{2(led%I!P$BQXjL`Z)BW4P}vJc2WlX7KlsKCY&6BEB7vXT)41CD>U zf}9xQhkwWkj;8B)HaR{OSF#}spJggrw9SR>ln}#=pwl+dcvf@PvsgkBu=btN@`_J> z;*2`w7mlcO%E(YN5w=`m`zQ`)T)5)abmMB%}x8`+e4Vx%^t0dFSTot(0S zgu_N(-Vg}?c2!@|Rp8bLad&;)lKf_*(Sm&g-Y=)VIT;=psn=<(zw#IVq>g(b!|~a? zlZ&1s&ZrtFi40U6e(0W;`^Q8h^TrL=gu%XZvBS>uom)qi#8N1SE;}1zW=UcH)Cm=# zz1G5AyFl)wB@57FXSNd#dEt3C2YU$>xGz^9iZ3E$W0r4Io8$KoVY^m8q(L(aK7sUw&a%1Eo(#$Htb6 zMyoccuQ(M->Rybp6M*d@BGB~(fI)#0vclPl6Mf6Y z`DVA-9Z9Lu9~c6{AVHO?NO$^pY5#)RBx|B`T$N);VjgPO@$OfV(`ra1PVkPf7wfKwe&h+RIz!FL3u0QR$@?y z$9)!TcU1;9MX;VeeiC6Sxr7)~1!PrW($-MV(hGziBIg>%k|NiWUB8Jm4BF>dSGg7K z*=p#;5#^$0qs&vTmK+uLHLk_-d}mE>P%jq)>JKP|1g_JC1AKyskyLzx`@C-hFVwxr z^Ioo@e-UB_G^NheVA;1>C~qbVEBHB%$Zu&$s<6NyGVW#+?caX}$uDH+AeA7>sBb7U zjpPAN0_v%DeCvSWgWW_+#?i6>VTlZld9j5+U&H;gKkLi8d6Cc`z;ykZOzmw%%^b$T z&!ByEN+Lg?hgD+!Ovtt9Xalshg_(6$FrmV)PLiWB%s?dT9y=G+hQXeRoxd3V$#0h zLYl-15Duz_OED;Id}B={8j=`XHa4}X2yT3KTYK#^co2HFH6Ms{YgDLMICeFL@x`2o zPeRAEX6xMABN+i6AsnHSBmf3RP7(#Vb3ShZf0o+Ei@ckf^>mkhlsR9pum{X^c8Plv z8#Y3+THM7uTMa)E2L(rPtlFi6aKyF7*!Es;;JT=-H+y9X0|@)Uuh0pxeP`UT2=E?X^Gm+^{^mxoQ7~6Ksur6LJHeWV4zZIN8wJIC zE#+WRBlDA6FjEg zPdt!cv)9lxfVLryc78N; zREEuq2%1LCo3Nf>J7LGa@^MJrc15w&#iw~@Y2ODcpxWuI=C@=LD^}y$VSLLOq(=)H z9KtKT6L<3*t(pe#G$7z|NNgcQ`wV3!>dQ7~%g21$C8q@}VG^^`%7Xnf9;>7Op6W4= z^(^d7MlvZ9W5sOfsCGjfjMM|i&u3x_9i&%VI%^7!)E34T3vvlHnFDLZna}N*+!Dv{ zZ{f5+fsZlDHbv)QJ9hc=WE{ziKBp1>nRd1;F5dOr)_!-w%JG+a`PJ;a6LtLMNqO~w z?yL`5u@@|P0|sN${w_2C|1b_UwR|?S82B>kox847IXdG9+@}cmKIp2tskiOIGp0E_HLuEPIt}M_ zJMHkIcsSP0#U{pX>wAv}0e0nIh~ADMckHR}w=ms90I-cK&$^T{bWayIXCF|6YdxwL z;ddcl3gVnpz8g}^FM~WPbuj$E=L2j6uf26i5toA|Rv;EQw5SQh*-6n1MMej^JHb0qDY%~jCl zIsZEy{l~-goXMEoO?7wVhIkH}t&lMh){>;%JX zGN;7<71@*G`z^tsLmIG^Ca9Ah8`Ls~8S+3as)jNFOc+Xh9kFDQ&{dt}IZew#{Q=9( zNgo3`hUcIkrM=SWfu8R#eUou7=kW{HoAjPsMsN4Y$XUo0AP`uOt+2b&fE@`N^vHvzLjqD@5yelIL*#WUKe37ST4`r7ALLOm@B^6) zs=Kw3XXHH0aY}>z6H{v(R&v4+C>iAAoCPt`_;mG`i|nU-2K9Y%Fy-~2AEjUi>QaXB zafM6xfu|tT6f)S+#JbJ$I)&yai|!~XQ@XK`39@81rGVnqOe5`) zlUWgfvsb|YGO<`HLhapCb{!`KzY)9am#a1D3~W|P%lHF&aCAKrf9V2~@ zC7_|+?giiHLcxS5y*i}f<6CF0xELV&jcrio!4%@fFo?H#nhhZdAF%fk617VAr3k2< z_=PmQ2NZEzJhUrAfFKw?>~VtdowPd$kgkg#qYDHX<5Q~JEL1_z8y#`aIe!-KwIAWV z$(H;(voZPGlVlUSYtu7HIcL#0WIJ7?Z6eKwqIOvxp{=T=vF2DxgWZFmDw@hcK#!$u zGd{fH|H0T>2G4nMGfNiuiJ6(1nVBVv87yXIw3wNhC0h&@Gp}avc5mil zHe&yEbaZreRaSnPot62e$kon+IM?9#oWo4H!@jj06t?$DD#T%>U;{R?0HL9eEp9pF z_D4619tWZHsXSX^rI=YCAP_sdNY9_yfjkqOOi_c-wWm{n;E9YD@mTXVVLA) zxSCijY2ZSI4o#AJSQ29b*YIizEyRK+2TqO>r%+A#meEk~wZt#Ven%O7O6D1 z@;)^2UXzFeufIEamVwi@Mi>{Aqv(f&El&>q3)}1zWgW1l!&apCaF#kqgG>f5o+pH3kwGV@ed)vs8E*n3em+V?YfnGt1J~ z8nOpVp~Y}gYDho@q?np@Ulnf}%L6Q$vM#$_&AWdf9ZcD0Z4=ca0EpgSk>1tySyI5M zRelmGsKstsHx$-AHqu@z9QTYVx)b*=tC?C3+XV`1K1K5}vIc-PX#oH)PjEcIel9zX zab87Bw~v?P4-aifVAFP5HB$AyD|~p+L!q3LQtJ(^mpVdF6@xkf_A9-~o`%JrA=ft_ zSXr2suIIUtpJG)fij`Z}vC&e>kvsPLt+gej+Q>GXQS+LG9+*~XhkevicO-a+M; zQv7H&p%Mu~F&=4?Fow-$RzHD1_ZRmLz zrFAWTtIYRw%xCGCZ&z}0mOR@J8&Ll7dm=cf2Dtol5G8ZDJb2ytuP3s2|3e3D8;QHl zYN`nfauRpCFeBKMgYV?Z)fuN1-qYT|IQNBcuzy%{`{($1OAwI2yag3gb@xvN8zGi` zn#d+XNpsrd*%O-pik7{`w5T%!O*EMy{Rj%YBkcARgE6tvZmJO`iWb6%aCJlqM^(+< zCaa#-5JTL&qXT#XeF3ErB`c;djB;VZmgR)w`#TLw3Z^0QK7DpwOc7#aaH515N>$Wy zXIYwJd45x@7oHwoDjzbKpEOxiK*_KTj`;(bg2d3(CfFo?#9~i3J^l9Q|_%U^|VJH9);(%#N@Uv8(y!Yg{G~R^tpNDKd2)S`!gB!;wqbeqi&I=#XlTG zMb*A#8nw_nlbb!|<3{zzqtiCu%=d`cbs~|Z_afNq5ai4mQ=$7dZV8;P!Lnn8>aIP1 zUlqOZrNvCouGWbj8HGw86XpTxWKHd^(Lhp2G5i7n^2GWpb$k9PTiqQ~u{sV|wtnuK z7)}mP`M=oR!|Y)G6Z4UT)OUUk;kyqZlm(+HL9yer$mLofN(blb+$71f6mO-C0*D4g z4WJr3e$N?6pifj(K{(gpXw0|RczICF73j*}_OyP#uS9dmm1rq!ykvaaYsGc%KFV6v zc%)Wlk&&Gs30Ic7P)v=PLy(Cmf%pvirNddjFjhxbi3D#6zKp||A0I+guq;+KJMOs0 z!gV`wynfM}0b3>6@@?hx^TlfSQqO!q!En~AGwH(#hy~Z@Bx)ulc9hJO04fwAx%LQ{ zQ(Qb0Wwu9{jyUxjC8d{otNO_Vze*{EVY0x@5;3hFBr17Y5=|Ycp`%}tz_Eb}u7yLs z2k+KgBnF2c)^EO;dx6i3CqhPDU7!+3+_Y}-J}9S-h#+-dOT-e@-VL67#+@^=4@rv$ z#GuC;POez`>1V0Uh||+@)5_p-i%YVOZcEfe&UdMCTBPs6+eEQ!tpEq}SfC~P+=(KH zRevw^PxFq-%(g`oNRb+l7g$IWZRXe!Ld5vzh+*>JUOS@BV_}qWOhW<`j6?E=Ijf+| zpW1)~2IXy>9y8+hrI$Q|VbR|tt{XEdGzhv^CD+t7a{>GoEQ>d`h=l`8+qgT1C)A1X zcHwll&)_`pPcIsYKjm*aR}b-`2slu*C#vk+8dj_iV>)ki4DGmJoii4xqO3@89qC(k zmEVN~8glxR8;aq zx066SwFH_4#nw*sZTR+&(~S9uE>a>fWCr+(&!Qk|A$-^r`A-ROBWBcXqF#P{%}*Fe z*!bVMknaKzjTh}i{}=w?e>^f3de=fA{7(QjGTo9{PT(UDnT-Vxg)7+B#}5;trcO=i z@gQmK1MB_NrW=umZUub*Xg)(MHX0^1u7PQZLSn4UH}~PIyz!_&nE^2IU{8Gkp$(BF|P*XYhJ& zyLW2USpTgKn0wi|YV8L2 zqRb)VfI|F603;RyGJmnr<@MnS@8LgxC+S6tEV-egtk%@3BhJAhShe(bP8&H>PEHx* z@1|`r;;dEy4-i}(K?6TNUFm^nI&S3?b*9y))pqlDnV@_vnVQz^Sc<~@MmjMO>%CVB zzg(5>1cgJgLfTP`glIh86Kxs(ey=N6tFEY)@$z)K8mZZ&Bnf2E?#y&s`EVU5cL-?< zc0?g&-dwUz;_kY1csJ+EoS10H@wkGacvKf_wR5z2c7kk>G$ws@W1cEWiJV9m*mNoB z9-DOh{>NT`VnBZoNHs`z2c17L5CEjzW_`Fz8E?!yal2;$(@P3QNC;Keh?YKS)6z!m(dp zF`KIQqMNyHow8;QL41b@?ax2{5Ox)>)GAFwB-KV)@0_c*4R@XqSlWEuU9L*RlE)Eg zvGO!*U5lxCWdSTjSm!RV3Z7)mImHzWof!t(H|o>+C;yPqQBQK?#6ks0;*x#qJ3= zG4r~bJtVem7moOv&!D9uE-u2}@mgMR!|g@v?NY@?QGNH{`Uk3#sq;x(ZoUMGR4)mB zq*oaPIW5a*kr4R=>`BHA(WS!Wcs3yzhs@5(Ai@oowQW5J5)nm-t+9x6?DvOzc|);> z9ZD1G%HZa1&Jx&6Bp&E+Q?Yn2Gy` z0|M?%Jl3GfI(BXkuf`iib&u3wu0;tQ;xXswLcyA05KDqkR!a0`18t70Z%)$)d2 zG&pL0Ox`Gt(hq0gOG~%6-3?OD&CJhAc~*2?D|j&IKaxQ|a;yJ;^G!2s-_LNk#)JHa}x?+ z!(L%gAP4laMH;E;9@C$TWQgG&thM<%hQ}o>rSkL0=J;5I1(5d(=OzTA5~UI(JT|Ho zg{V>4ylhBCN>Nwbajf}rwwU+lFP^AXW%mb-a!#@mG2X_DX1sfTRvPi@(ju! zwE3bm)vM;Dt~U3yT7SIdGG&%mSvv}J)M+zR>*+VI?q_CI@wR=p+|1>)HkVa!V|5+= zN^fAkA8dxN8k$H#=7QO3?^DG4vBJ2N8s7}5i>t?d7G3Kbzm_34!7ZX*uG^wf!#rBXEx zeU&(pGoOtBObqG9?F;4=T?K0%(BtLSx|CZkn??BvoE%ZW%&V#474b|iTsO98qFm!au97pYjg_F!EuWaY$27HAXi$#>Bi0LjnAyr zg$sTXSVx% zxul)Ha0t^^)OC7(zTUaPc%I>Vo*4yjPBHQ-m{>mOg zPMaZmIXFNd;Dqjx2nw^}70U;iuee9hBw-^L?jP=9;*~99`c`ph%Hxr=6KOI%_}xH< z=z#-#Y;58XMX7fXST+tGubr)>ExpCR>76Gn7^L&=x*rU7C5j4x{5>9%W_g0}j8ZRq z)5Z4wxB)C*n9C+}`=sHgpz#fGGlHY<>9%a|_uXDi(<@qK^!e?g3&zXud86BXXHSQ5 zE7ElFapfX;|81l_N|*BJrp+^F%NxQK(SrMRX)+T{W$W{IrQ<9A5Vf*ES3ih_W=zDYzliwU_i-(4+pAB?{l_P9c-3)0)FAa&x>^aN= z*Ae68DezRd_f8?mXV<@x2IgQWFEgw8T#Mh^^(%)fVwX+`PFe}h)^C)M zfjMD)jvVd{mM-qSU*S@RQ=@8wBRDzUN?kVf&Kq(QrDw0(e&Sho2hu4M>K{!$#$DzE z7wb8Me7)HBtRa9uO5vjZYP$I9>qMOH-m-?ATFBZuU77W~KL7m4(MjBM9u5A8cvi{F zQI6m(a9APY33aSXRmg7t^72lpZ4Kn%Z8PcH$ZZRRf8q}mA~sZ#`l^-f`FX=8vUH9= z<3uX*_ssb>2^(aNIJWF$7j)8!@6}cO91VJKddtIJ+^3TA%Irk_W(r)NMi8YS#xM?jTTCSOzsaPWwo zu!9gL+*~&J+VPWo9YvpqsxO3RQXlb*J#wz_M+B3li%))AB{{UVU82~clZXKGnK9u- z-TY74Lw#Ix+|TDI^)M3T6&*ra^W}=m+Qz!yiXWxoRMuc;Vsp-P!tR%6(#*_?hylxc zjzr&Wo-MLlPm_g6dX!~agXsOR*BV=S&S`bmNVU;Db$<5f6C>T=6R~vU zpnL|nAYhwc-0tCMn9rJWhN*Pc*Fp*E3SKSqC9KMXM1l=h%@FtU;8Z+|=7&NZW)14G zxGZwdb<~6o!oKpEaO9=q3Cb0#D52vw@w&I(J=ft+sC@H|5G&i84MpU59ao~9l*!z- zSjghR~vq&9hq=kby`h>Bo81qvijrfWHb9whK-O`3r1s$ zEtu7iNgo@d$$FjMj)Msh*P04cGE#pW2-lk)T-frx>HCOw;_G}9P){nL_7V*}6eJQz zs^p^=k^=ycbC7DEnr|(I09GNYRS`F|D8GL0xJSlt?9st^&qD`1sTj&#ll#9@SPxv+ z;Fb#|=5ZAbjci55EMNRKHqV-)c81U^E4vca_6I6rM~M~`4Kl}h$-2e*-)LSe%Lg_6rQ2q;o5hF~CA&Lm$Pwqhi>{aTI(H(-14{T@MP3JFi>;J|i~ z*tg!5S;1(*NN7iOETOrK{DicoD&|=q-`Oz=SClRfrpWN4KSPTE1N-Xpw46WIgRv75 zKSN|?2Maz-{JUWsMjKewr@fx@14xYyC$7E0psq{wsw)~z&a*OXQyeHMj-5}NR8ho3GA7kBYb%{4k#Z<{dI_GktpPaF|{t_us>vPa_q9=N` z++G{^sPlF&GgO1NH}!tOf_C!54iKCvx-;uf#vZBMDR8 ziLUWK%Bgf5B@dO-5Qg<$qN%F2(G!KWM2e$G*>#R!b-p9U`PVTcQFa(=DXeVrHP0-bf|Dk#iz=xF8}^n{Go~r&LLevqr~w_ z<_hLH-{4~(w%!F&5J?op~g;kb-_U&%+k5A@TxEnZtA(cb1>pA>N4G7bO! z*K&-44PHG5;T8b+?xoR9#ph9$ROR6sv`ARQX<`t@va~0RhMje7^QRqyh^(mlmxC zx5YtrJ4UGzcrS3VIgdLY_YUfo%XPoAO#BS5lSPD0A7UBf#y15*l_#`~Lqft!Q?xm@ zmHmI`sm{94U#{<{bd{bPb-?6IS=k#ldi^HH5uLZqhcA_7)m?{fY#Y-p!&KAyzP@8G z@#TE(7)-p_u?YhJc~E!CbcxceC*{NMmg56TKcu3$(iMnV%^$&Ht_hUPOk;wQXqd1DP^NQ!ID+boP9s+|Q8iA!%#3ZU%`WwuhPA^!2p~zQ0ajN@!lp6hP4R`m3 zYOY1Lvem^|X&E`m{!e16lR^@8v8~YZ(?9iPs?x&8m#U2`S~iwt<$5JceQP z!4g|Fb(ewviWS2YgjTX*R|)#?l9j|38!t%v%9+V&Z3ICFMdzo z&X-UdJ9FE$^LB0&{AFg!dm46|QI8n{WysDy%XTq3$6XXsGLQg)yFfFKNb#Q}=~N!f zvaVvsak$aTa_i@?a3Lzm#`7sS+2{FsNdsn&JM2;2)`nmJP`<&je5UJt>Z{a9hh=n& zN--31_V7P`uUgQko@XKeIo=2};0y`FUXU>#YVqH$L{91w3{|V!@9^oX%^Vd}q_xzk1f~nHWR%y3#pI-hAV(K|`0jr){ajE8_G( zwByj~CYImS1dU32DJNu%hi#-ghDaG4+hE88ukhS)`?q_uu{Vqqm zeb`{A(4-=aZVvd)2L8Fr935OfmmBx((uDb(VcI(taes;-Ts_0%Tti8t8B3T@DL?W? zk3NTC3ND?dNb?p(FBqclMdm**uO^W=H~4de?B%(&f1#PH*q_}I5lKj4GBoHiXLT4v zh!t`$AV`!_;)Ea!=2}XhA7A^CO@W4KYVX$U)#l%(;YhHJLv?~!+&Y4Vk3?aA1UNM` zwTW`03LRAjL#SOU%#WbuE2Jk>Aj9UBG9A0X*uO`&D@yMi)cqM>8>@6O00jg{kni*4 z7}kEMB9I7&&-ctJzVWk@#AV-LW=jk|~VZt}AjBO#ELEqSBPUsRL zekOpBh^TuClVUz!Kmgz@FNSEha*yh(92`lWvf?LFETMJcWOUrAgquZXxoXfXZ1#9cdK7#-}_2dIV-h+?Fu^;xy zXbM+_vrjA{h4)qZf!C+`T+|!cXER5VtwEtl5Bq_M}7? zE6UfLqf|HIkUCu#EnUUIu4Jd+jR9q>qq$Wq+g!S76jW_i03o-`=CV~0AKX%c{Oa&m z0fB=D@zqSnpI;x)fL;J&ewO=tLm^+D)Lnf^v_n=w?J@pGZgB!?|FmjEn(F+*4SFnK z;VjCS5MmR5lo=X_mZPskeTl*3Z_WO)uN3T+ykvLUhyh5?2QhoeB zzm!D&IKHND3a2{71z{v&=qgbT)-Zs1jo9B&axO|5z7%^OUDQLM8~ECa1`)$&6TU$J zE_?ru8E23-PkuW?dc)M3K(u4+Ku5*}Rt4F8ea#hkCYro1NwWu`R z3C{EQ2l2vQ%=L~rEekY)5lM5EREMSM7@4!veWZ#LmZz)#0}weOI7%yeTy78>QfRzuv;U)HLVTC!1dRITlNc1%HTMiJ4~2 z49dolr5FzQQH#p&*XpxFFOX>$_C zuHAXTY`iSlTvWbDCn`)FK8VdMA)@k*etsC17=Af9B}d|ZUNd_6 z_}E!jdK67IX#AZuZ#aYlPLq0=pdR|0%kvOOC6ys1v1Gm~X<6M8o_+Tsf7Kvf5{W4q z%s{JqH^o%6M^{JTmvBx;KJ)E1%gPI-^(~Kl$U*H8J7E=y3EssX(YZ{6Q6!zeej#j_#6 z%>JdFUK{iskPKh{9>B0{@z5b@q1TrBt~*O3;(BmLAUfX1Y<)YJB=;W+MO%VfVq&YO zc{BSjt15y6p+@`YWuRwcdnQzw*6e; z&pb-b@kbN)wxv+V~JY) zEGrVUEOIWsW>_?zPYb*HOp{DgsfkkqfL;uf76Mm+C6kSvzcG$zQ@R-jF~ktqKxS`V zpB-KhbV^x#D)8rFr4k88qflE@Vk)rwOJ3B&U_t^6mQ_>U=Y-0x5n3|sN~osKhqpPy zlpC)jIu{C3vg8?&dAsIr>uXiX%fw;cV%BCSxn-OxC9`b19zKhhtLwY*z;gX5wrNHc z)Hq52_W|&|xcIX03kgrVI1z^W^Idvze?T+ShaG=ohUXEtl(E(AM9XFs+1@w9Et;k!JY5BK31jY3TcAVh7Cts zt10UX4mu`)3*?T^pw?=tBITcv%^@@6^>nOR9p|%M;!40v~P zd0e_|wd3xo2(K$euzWlySx8Iol;TWmsixE?xI(d_8$a251$At6VgGR})JbkI+>L6; z{C01W$d>@g}xYuBLBBzYA>Q}kEDTl{DrJqobQ?pZasy*&ipIfyr z-u(5G5m-3bn%EG~T8uu&u~`h2QeP@b!}^v81+XeN_!{1?oO1GJ>ms^{b&EyDf*-u8 zF3Yd0uc>9-Kp}!H#zXW5`S&oY7c_VwY*A7 z6gvkbwEQh4qAXW_VJW$6$KJUsDIR?xZQLcg$}s!lZ-*0CE&G!EG-=M})pr3ar0*Lx z_AMS!O{j%ZBFhDel90DjOU37e|3nYc1>JGP^;Br(e88Bbt3t z#wEk37vJB$iHjldoyuKVSkgBomD?RZ4oMqg#>Z^OYt(U!Pl`#1dM=`8KZZ-Y^BiIh zq?ILJAxuLNbc%Wp-bgvU$LLNkmOQ?1sGGl#@|}~5D`nHQqtKt%;iS#%H6n-Doxh7X zF#7LPqwil`%v!iTQA@SR@Z$}|Ce9^uiAF05i%HSnI1Dwugkw{DJl7T`i&#>eq%?o> z&Gk8V+tPo}K|hx%N8}aus~rDnw}U?C_B{bShFm|Xph%(-n|Et&bBdzI(-E{(EirT4dEJTP7*8NaM%Ms5)=(q^P~k zrb;XfUH$^j0TUCQPj^inZJLhpy~rvO8t<07`mqan3Yg?v8K!$o>9-y1WsB?@64UIO ziAR@(dsp5Y+ywNE1xlJ5pey3Gf>P&~y~?(0aJwCMId;*%>#TbX@RJOd-KtSLxI zM@do{$O~hfMj?u=*unElMW$LJT+Y2)@U6qQi|PF2xrS+Suc$dk#gk+(rfeWTdGW7J zXjx5Gj&2b?LZh2})=?m)2;}!)CIM%X0G&Ab z5U9Gyn|fH}&Em{_hkY{JXq@yic0|)}2WsaqIF_ly2j6|cMiAdmiJ`n`W##Zo!$N7Q zXx$J*-0}G{PchpYr?2oBd_Q?Pjwkl593n^WXy<|(@4i%r{j6wk$7N2g>8ral#E-*) zy&Bu<>6$=xOa5PUUrs~hk1t^V0zHDYY4U#C9+uRdg^Mkh**T;8TQ2#F;e*g0TNEEiHGxK3*PYR$=!+O&DLlK!2ZfkG_vELa$6N3Myvb4KI@$ zv;|E*aIUlz4)AVO2U)t1Kms>O%&en~<-^@|W3E3=c+W#9hG5@;V${=@=T~+D$J{oE ze+J!NiGCO&1Lr`EC60dE;EiUaf$E2L(K+3+%u9RkF3WG5P-$i~a9@_AK20m;LNv!2VaUm~J$lI>yN7(e|(U z5&ilV>)OT+*#=3sy%Gw`;s8>LP`?l$Y%*#7jRNVlLOCsxFE}i01eE{thom5Oz`k;k6+aGHLhilwJrJX-u=5N42p z=6*Z*phW^6m<9rJ(2w|FyopXtbp!897ky15!@k5;PZl2}-knquh%H9C=4?wSaCEpN z2Mf~Ze_y?71}bcMv$X}GgcKq>bRQh$Z^;_4iP2YFFG`$jGSU;3ElD8HH;he>6l=?5 zitJ&3gIzJmXx+ZFGh)fe8=J++P!%%;9*UcwtP?QqC)+iePEHknc&!C6^N<)R=D#$l z2^ELgeX6O+P@~`9Bsz^Ar;hEYoY$ED`ULh{wRmvMM3UJ4X3Wwa!YFK8+x3CsQu_;y z0<`hB=YxbrJ*L@Lo3nap^nY&b!#gwq=lpT6xE|77;>|W%Bw9Fi58c7(1$SmD_sES8 z>NZeQYeKJsCBcfF2t)j%>1wlR02{Py;r?e8xS`P#(67(^i+$=_JK~&cZ@}E|reP5s zS{y^;5xc6#IrTal5A`NoevRk=*$4u383*-z&7!BrO%Fvoa+lnxi!j|tYj8?yC!T^J z8D|Vl*P8PrliEQxD9-^E!`0^6p!>V48X>LbHQ2u-peI z!rT!!A6Or9gMafo8*7oY3p=CoeyX<3bp^N-Koeb@OJpt|@?rLbA1j3eqrkxTE=s`h zCdw$CY7IV4?2h*MNdUdrkPB}QIFg88d99BQ)tHU>4k2Nf_QE=0Az~ZfKfRmPI9nZ2 zW<{>VUmNjep#2*;A8(!`Trl~NZl;5?rg#5YkEJa?pywifID7^|XYplWtAEr?cWpAI zO)(>`D5T|6(Dd{Pezftrf@HMn$N?@US5$!`xq{}W*`p>T{`pQ1@bWs4S4+8sFMaw% zwhp9sQfUwmNlp=UDRc!J2WKlWEH*sCTc_dJn$dZ}Gg(a^%ZD>>pab0Bx(dY0r5C>M zw{cy}C|0^!zi3v3i@lzd?7SE?{SJ?D!Z(ID+vG?b&Pz1MZr{VJ%V}698T`v8kcF5< zkO(L}vu{@BPQU<-W84$+f^Xq7zIRK{E^^2Lh&W2KC&q4_h26fQf(2Lm!9Srh<{VzNnS34OD_s1ZXa9~3Nt8`R ze`^!$coHfkf|__Q&1#$Q)R^s#aHq%8;z2$MAN^cVDLI^SoR40)DrJo$<(+hoBEoLJ|33 zf<<>pUQg|L{1v_4^z^-XUk*GOH+p9++#=i?pCaU`iGfk4Sc;%M|Y?6c(%+LBo^ni?6moh6ywSH#4lOR2+t3vLqRY` zMz~5xnw!f1&c=R)BmXP;I6EsR%l}7E%kqB=NB(Cf2xOc8RWoMkprh&*Fykxj-m|^9 zb(*@UrIkssmKbfaHjEt&FlJ810q+ww_=+|GIiP4LbFS#h(Z5RajaUO!(g6@fX5cso zA#ezp6T{dDK>O8H3hUjqYU*FfR=W7$mmU=X_p5^$Pa>kUq(=PYR_m?c^nXV(9 zd~x+|Qt@a9%?~QWEmE@Z7^8UY(;OeH5C8-a&_tAW&>y z33Em1r+0-p3<2=GPi)!;>lhc<)DD=`d>MB!QnZD_RmO zisU5C`kpk%7S_NrT?68vroqO`1_!`yOABJh6~J~?|HZeHTi=dgtUprfl_<-Fp$(5H z^rtUPT^l}TWGDCJ>G66MJvSl}QsToiU+}S;68d*1N2R9nJGA?mt)6{wwO#OQl0Fg} z^yx9*!dN`W9^LVchZl)g{3gOf(Qm#f&=6L zF{WHWjSNs5-DJ1g2>+*x=wL3MASTfp>HOzf6@6L8259Gv7?~JdVW~3v{`{fsu6zyBvZK;joo}icD|{6&tw_Fh0?=P1qqTX)oe1HA7W zIriGG?@p@ydn2e7K{M@$V5CBun=RM;I zZah9OZa2oYOH_JzpnU?wL1H0B$Xl*VVyNj#ZRfs9AXioi5;5 zMI17>kRwAw zsrA165R{7psFPB`vF^0<^3goQWa5!W11eb1H(oxYGzNF=jSV-1fg?b=pmiBoezRD@ zysX&h((mEtxLTu+zdb<*3%Gw&Thuw3uaW4?kRDyX%*yUMxi-ZN56lV&hoWZBdVbp( zhNGKW;nx|$r7pl@BH)NBnQQl^)xkJ)&;2(sSPbuh7L~30UTTW&`vMIDYGOM~@v2X0 z9X+c+gOR4=dl~QkIYWCeO6r&|$hA5FR=Vlt_sPh+Q5dte!EcHIvP^Xpt6e`LE09SF zCqFIO*)SNsX*97p)|Am+yHl!dD>;qK;KtxrCpn#fM*$2G?hbpZCPa#TnWB-M@=#K;hW~3DzdFjc>N+##Ixx~ySVZ{dNDjA_V|dn_sOQYt7bG8-~caPT-{b*cyoy~Ftj z8ql;o&XJNnpbhU@r9N0Z$yrp9S4yqNWK;-vd7RPvlyH3&UfSvi^3m!(_B$fN1PcOa z+1)xp*&KPZt+R##@-_6jA&)^eIkXDj?KI%y^gZ|-n*E0Dk6;# z6U^at60`L0U^rU?H^Pjx3<@WPuPH^P!Da&8GaGdJE z)1j2N!2P|za!S_}o#W`;3D&YikmF93{CkFOM|01~1lhV+9T1mBohI_$J1yfgq~g!@BO<4Q9y zP$fT3yQBFn8XDQ_ajbi1)7@lOB*;kN3vDyzjTAw63WK>(a{JUmX<4a^bx+Co*fLlz zlNqhxfJ-O7DWwlISdvO0j;9-UC9TIb+5Jj8#g7>xBNiwbsE*KBaKe6!F|CWJI-U_p;j z+q!@PX~aG>^P;1e8z&B#=Hb8rG|+UHEr?c$x?cox=?$h3goP~yXs}io1}oQoLjr2x zE2;EX07dIbWXjYce^cs-^(p68nerF$S`jpV& zpaV&O`G->!vYC;^SuY*pvHZS!Sha$Fq^vnhg!HyeaRf22mYU-{TMhisq)TA^%u}e2r$w1`DmEVd<9a6s#|DH)^5dH3bSF-D~Ui zZ4_-_wTiZ`?r?lt(rLFA%o^3vgi#+ z3MGPY@nu%@&!7QSiSqjRp0D;^B6=i%@*Y%ayz^~nJODE2RAAQ?Y(?!=9^@v6oe>5q}+aqx3ZS=0E{t=Ur*h$v0L589<1o#PQxP> zIzK!7ykSJaTr-ji!8*?`ICvnk+GveFB5mS&ch~wqgEnvmRuB-Ga{tdXY}!ng^k@XY z-$`CUf)0wJBv$<$BqeY+T+|rNw}cWQdvJIk!lIOwJw{RVwN#fMRZOg0k0=0(H6;-6 z@OY`}m-t3s^;A5s942n8U60PMj) zFjWc-&7UkN#0l!LzRZY#43b=E;DM}LQq0M_iQ9F<8)_t@BPKYz3o)r#N~WKZxib#d zC89!rMII(oHLQ>WGg%RasFL}M5_%Lmiujvm;{r17_?4vQ;nLb%6*0Beq8I>~7`N>C z(IO~tQCIi3k@1{*?aLQ6;E7QfkXYcWWU~Kwd}`=hEe!$M%!(s;0N6^Eb9K*5I7VXB z#EM<*=?2$E7v1j@CM%>KjuUG~m1?&NR-TXTrUE0#pD%}x$ku^FgLRcl7w(*bnL1ayJRS(;bKcnB(bMQ`Ku7FMRE|anN1HuZ~l?#Q~+= zk^lT27Ek#mDpt6?1rW0_?vaU2r=T|UG(>^v@EU;he^RL&>nNZW(n8GUv_NV2;a)<~)G;es%3Q2+wcS>1 zJtKnY@mWH`+PwS}jEu#xWKhEvOdTCQXgCCq6wA+_G{XB4zzS=5r(ttvL64P2wx?MY zA7;G;jW*@PUZ8Nfy~dS$EH@pw@IIC=Joi(ugZnXmDtanYYI#%j;wnSH!;1Oej6(Zb z&48SeFP|DIxUuUlsB41xrn5o5#kjZ4#AoZV&5vGhJC_ zz9R?cA8#MQrOl(CYY(GEP3y%SZ2_R z1T_RaNB7SzHr$7PS%_sj2By1T&%b39E#CRNUH#RzKNOnBhJ9{o$#T27S@}|@v=JGN zm2Y&bt32_;^1r0uHWBNUp#Jck&tn_gvy;+ zI_=v`$g@61AQE9M1paB^ZU@H#k_8(x6AfGZ{gVpCkjI6IcBtaB4c)eFLY84l(pc@U z_UD-SuxXBE2?VLrN+)-h2#}7Wxn1Ldv2#&mdBVt@atO)xL4Qp@nn&flxR84SZ zC+M1O+4=Vj>Y4f7oW2i*7d>-`Ok2>$nrBu|#l|mhY>oclD+uPHY-GYU87#xBo_Y2I zhpZBvqHfFw2jr>0<-&~$Zbrur48)Mo2Qo2a;#R^N;Y{pia&}N=$c#I_07l-<9d7eB zF!_rja9yW!&Ccp^9#7LCR~DwiAd{25g*QAtIoLx1UlsZhyzaj6l_?Q%ru5gQh)Vw+(w zq)gfyT(#F?z0f;0E51X*FR&vph#!?SxktcE+(rEBXH8KxrHtxoWLHu3paUIK8fN?M z?$ffn8NSo*Wa={hhob9pNaB+Xi4<{O$89Am6GgC-`p0yDBLGbJ`raJ5Lo(n*{^r0z z%2^ZL64?fP+DI;+s~V0qoGtLAo??z*1u|6f)it zIJ4>Ca4PRaHu)wXt3!fXKJo1ljkX~o6z?F)7L<8k}#}tkWhjQiOcu9;OL;_ z??8AF3?Z~$ma>B{LKq1W&Qw$mImNPf6d);uP zsFBBsu;a<#$BbB#zkhu>UJj?7HInj^KA^wzs6b}_Hn~(aNqV`4fS&KIJY>GcFoAVh z+wp`~?K=@StR`8Bw$1y+6Rmd)1PtNvLpxcajJJM{wAk2vEwE}u z30np0Cy{J(T7nGJ(@bzOb5Jd=;jpt2lBnP$1uO>IvD!BEQ0gWnrP$gCr3~n~iyQ%h zR;P>-fu}*KT?yC}4C{{vJL-{)vt)?mh?!>hP}QN)8RlzE-9&OW154*r@NGV#IXnS# zY~HgZB`Y!Vxrxf-^bBFAGtmf-5fjB%beUecMW{qXnWv@7Ou1%n%k<)CE8-U4+Gmnd zCI)VkPq2_V_15dYT4^+4G*Kg0(3D93`8h_D=P}sIQ>x2W;&i*Cw!KkYsry-?>aZET zeA-K}`zh35tPz)C{beZ8u7!xg`;hI?-NCesY-Hp2Qpb5&9+E;H$9G#AS97cH$9kot znX$y+mtnVve9>evNHd=z$7i#HQ04`sQU}^s8+YF%33j_>D_s}QAtxs{wv#xGvd;4@ zD%G~PVAJE*Mld(8w|ruxahCJ^=jj<_(6VQeLWG_h$_5co`e#~svySb`vvhr$U)EH{ zMdH^&;~w2afj_tib9nh?e*EHFE~2t^E_hyWAMA>UDx0x%kJh3n-hDH1JW%y`J34Up z-%E=x{H>~RBb4MgCJ%Y~Eu!V}$+im9z^C}nTA56|pHt~r;p?Y?v4YaFTbgv92g&nK za;C5zJ(KFk*HZJ5j-x{bERCJp>D@zK=VG|l6Egoam?dt!@y>Q=>49jV0b|q zwrOWhN+ldRdeEyY9sE?S1PJ||c7-FLSw2|aU0Vt2dts0iRq}h-{@n}H+_vd+wpqFZ z2^;a~7QIY+UE7seR*$S@Zo>xl%h%&ENRMAx*V97WeacorB$6aSR-&_u)aWPg6A#Z% zXO*e}>?!6_+@OBdN^qk(7^acqwh~qL7O(HmjUfe(-WwMMR2e0Qtb?jm_Rp|B0|NoQ zf&|#x^wS70!bzs3!R9P?bO5oLdBC*WNBFKtjA-KRjzcZ>3eoKQOq?l{YRN7Pl~6w& z+XDp+n%Y?XPzx9xp=czGVWU_Y z4ACu)^3_E_n>sW0CY~~)OCH`kK)|L0VL-YMW_qJi^SlxWK9?= z!jL5Oaav*flGR2(n7?Tr@lUeN5*NPjOlt+1Q~!xMCuX^H{35z4tH6K;0GU|>vi{jr z49T0UVIqxDj?dfpLP>n4bZX_VCl}w`_g=^X(FW>t!(3_&K|#X>RS8m5rk1c9`=|yI z@u2<{d{}UNQ8Y-jvBMDp#EjDzHK|9h&R&X;C46>ja_n!<)3NiDpB2F$bbl7khDhMB zQ@;9_KF{tlA2X}THC3$tWW`ggbXKm5*Qoqf>r3H?rV2|0&-6v_3npM)f1tBNt%35`44tFG?IZxm4|OVmU#5# zQRo;@wh=@rM8H_Gm?t=f18@L%pevea8v#8~2uB7e30w#}AmKz9R6X3l?oI0bb8(sa zNzA3EuM#GvtULE|;y$!!;Xn|u%I!%8Ko?IMel1?-cLcyjIipdwb!S6zM~n*TRVR{l zBr;`~jOpyY?3}yzhV2`6)|6Qd7FO!%*7|-#U;kqIf>g(G1=$<$bhs$nq#73d{&ful z3X)l#C(IWQ6h0yyv?covj_P&nDCq55g45N#@V3F>?*DN!vgsht*$XH=sL7fC=9bF+Dpx8nj;} zgA>h&dpkdWfYaLG=@+$*PPKk! znk%4`I}ei_P0ZUt7E?SQK5-Kfud+`aAFYjRvYf~WF~yrFAD{)|e1p#zz0(pv{yJMk zE%%X#BX`KXsKyGlDG3?aX^`QJ-|AF`^n$Orc~4NDKl6F{VuWT(q`TtloE@xZ0U}(6F-FU0@sJd&&2;*<88O<@sSYjLB2B~8O z#@ymSpAejy@@6KCJH;iB6U>_Ox`8^x=%*f+dqxcd>{awlk<(*D6*|#i!GhpTcw~a- za@&>qRp%!n2*h(?otV*E3d?E_`nyjTuh(5S2FpkNjT2|H{A2XmvLYfvNdQ4dFM(}; z^P9lCQU;ik6f~R#Q7MLr>|2M=#x37pGOsgNdwod6N5`%^P~YAT2;KC$%<*a)VyH+* zM?!nn;5zEIsAn*PJ&_`{LPpVhI}7T9AJTk$?H`toa3ex22@Y~s8u z%?U#S5|Ok%D^GNzi{^<~@!BtSeV1um{lLl&v9V`pGB~E!oNO-S4-*gV%%cSfkyt?3 z43Lcx^4CTEZ1@Di2Ks@rdCY}$3UMnMX=OE4veGU)k3OvxW0r!#9XUR|)|lz(5-r*Q zpco7hvh4>e4w#`pcZpW#+o@HF%!r5qtQ@pPQ{v>zVx4Zy%%sYN3j%`0$#k}{Wp9gX zc*CP;_WF4->C_ale=@%;4xd(EHLsnWm~mm%P}fB~mIxoozSEzFD)lO7=l2X<`@DwZ zlUJSd8g|eMT^OWObSRp;eXF%N!+4QOxUGSA0^th{a z+BGw?PbN-XzW;IA$`8w?HC++;w+3c#K%7cGqJ8}ACzGT#orqMM+FIw3<8MnFEvY}9 z=Y8^3?T0+=2A0+CZ1^3XTyKpuwfTxQtKX<{a(Ns&8=g5ix|f!>U;9f67>T6| z3DD6St4Zwi%#@SvT2B{0S@Dsmq;yYsdn>cD4P-rc;wyTeM_Y4aB^2}@72Hn7{UT8% zm84VPN9Ql7JsIXNFl`i?FPdrU6oiKjJsJRlaA0Xn*`aoXxF}z&=;@{2$17vcj%mAL z9uefkHB^eYZNByyr26=ysUY&KN@>lZGB-+YwPRo*qa-*lyklSb*gnzI``6qe@C z5z2k7v$X7ZIQUCKI@Q?c*&|Dc7y9>afElh{OqAA}@ckfEEsKSz3N{g%R#LV4X8@Nxmz^}{eSu$b zOB6W^1vPJ*Sg8kbn;~j!jIxEPa&GM>a@ppoQ?v}$G`%nTEfYyfQk?u|-^adY{5D_t zDJ8RLOw@u}-4r6q;>)b4*e`VrGy9z#!cvz} zo(hyE%!e4aPOB~rcr66*E5R6p2aw>ztJ0jTt!iAmXu=UQ&3mOLjpSF+ujH+bHE3SL zU>iCM60zo+velyl0&Z&Eo<+_!kkCsG8HKSF#kIcH{R9W3n8A9Wz33DYh{8bhcmXUu z6isMuwZvqrt$m!;H9ZozWcHPVbHNl#m5n`KLP4*g zgZ**0D~*MaFUzLwYK<2gk~fIa?s-qI$Jmi6~efWdfvNNA%G!zyv1oe6JdLi)!A&7DWB_-9*4Uzq zje$b6zz`5{?m`t6_f5b(?;RS@?#Wd-L6aG~?*4n>Hrb9nJK5-~R9^&8a;2Ft{(yy`FBqv*B&ajW&0`$(c=NNvGd%F8RHgX0LC_5b8CAA>jEhRi(&U zJ6%4n$k!?0Rfz^h;KeeN(({YXR;17Yel=IdEVZ{zK6zh~rvAMYl*J^c7SKvg&Q09Q z>u(&|udQqH?;TrSkOjD`cSJQFpLT@Qu-S#jvu|}d)X_=dI!Ocpa`hfJ4zJiGv}x1G zYP_jWGw&hEXD_5>*u=zY!@S0Nw|l~%7fh#SXn*Q-zHLRF*RWyR#Oo8#F(H4o@Caex z7N&eIjup`PyV-_f)m$0p?N%j*1Mv+qSA3irGwdW=JD`sE=Ox(lZqYHyP|pbO&X^bWFu3VxNIiY9(Nr#yB-(6lfy9qKxtVlqe=N96!MZF zkfV$9=DYFLtW%63F>R_-wVOu#b>@sMmkb*58pDZkxovOj{ARFKY zM1ldH;U1$F!22y~!KC}GLg|mx_I6zLy{@#Bx%S&YQ94;3B*e-kao)Km&emOEQLJ&nr~T%&|@EbwdSOW`Z)Y`i`ESH50@h%q(bF-(KeTK@TVORiu$pFi^LB?kvyw zVH7_kNy(}y1dL7yv&uL$8DI859l#s7QlYaLn zuADUO`rnsnkSU4x$JX7jWqL^ zj*{E+%;|gE){W5dl1w5ow{5zY4V||>+a{I9CqT+)&n{ZsJs0m6B2q8fq496o|7~mq z4KY_eS9Kp*DuAGLFE9DJp8v$#x=@8p1jv~JLCXxV?-!J@Feoi)=_P=GRa!LWiJ)I& z#fpp(R8ft69L&P80;Zb9s#A)bkvbp-qMcW>LC`y8dZadJyT5V&EeE7n{WhOk;w12 z^ES4S1^qVI02Jp}^v%Eh!lDz3f(d5NXGdbx9bVf@e#iU(BQ3m)WTA?zcZ$i3Osu?2 ztfvr}zbFnL(@g>ne^J1Hk@f%lQ|9K6B_Rr4Urm;&xZv~n+FN4LkA#kNPFzRi4I=p@ zVMdINT*;;vuG=FHk%d3T!kh&Qs0Yp%I}=Z6*U*sYdO!8*q2(<^K0^$E1Ei9$F=rXP z`OoGWWXAe>nVq%&=4dH}2zp6xrCyYdj5tpiNOF5M+HF$Gq4V`eh8-K|A`@8YX=Q$V z_*dKatsJ{}dFH|ccD#y`4pW>h#Bw=ZJ5J`Hw8F|xLz^Q5p#Ujp$?MOr?s27Lqh!-@ z*8+K|KL7xCZo5AJ)AI2H#6R0XWz*mUF#?`>U5=;2tLZQXe76tB4l~FckPU~AjE3!Wo3U#_X0%IVqEZtJjsYzMw=3e=i3tEEm|=)f zvyc)SC$%2h$NLXO2awH$Z{xKPXawM{vE?q}$i#YG&gR{zZ5;i>#QKd#c_dHTVW zN#Hi%+t!sXD;Ojp{Bv+HQ$F26Oe|}R)|yQ^HLJ#^J9zdt!=4ja*L;ML#o5s$6raK2950e%lFzn8PyH~v{Pk1xb6`@AOV7j@YC zAjBad0^k=WgAGUKaVfMtf95>*DJZQ))reCR{kwpLv6HL)zofZX*tz~mFZ++~f1Bp| zuK^2Wj(;L!bR2cYJjXt}ypgXVrM4uaI1*AMfkedAZg?DxDmrnwvYW++^1L;R#B}0;7c=SQv&{?B1G7L_Mq!5p=yAcL$rhq>M!@3Bm z_G23r7bpm2hp;1)!m+?81z~K?`~@_ru=}aNSaK}cb6y9fB&hu+&%m`zF3%0;2lIvI zg=s+U;4=}ByiB1bAcY(T+kk38cqB~#Z-noKHG$s1XlAlZW;E}2-Xo-Qo9OZnQ3O(! zqgw;xx`@e5`7BiC7zFbI*umaOro6VUIG^5o`+CA!L_%zho^-OgvcrFb@ISk4WqL+T zJk*0=l|)3~32j){PskVWmjwAjuByQbE5^Z!r38-K^-2kmt+GAWXsXT4{kGS zudx=OQsuzyxE#Ik4p>q+U$hqIxlyCy0c_%C+Q#JmL0W0H0p9t_?LeJM?HxN!4a3u* z5hxjy90_75QCwaaU#}v;`7*=e{&b>BSB4a!SUhKop9fM{?ZG-%L~XJZJEodE>q?9q z8Te@sj=o;WdSAuSHprUqKrdBnTZ^fXmbI%wxwGK?A?jccHca2(aYbM4ZrVmT^Gd{Z z)Ctr|^U%llsnx9jX1RFa)`KtEhn61rhJs#S4c_P6z)#=j3bO{}=en}ue11UQfQ{#~ zBik9v%vh)Ac44EN^5;3Yx~4kUQbko(rYt<6YCNv7ynyP)a}+r0=y}YIS0F?_UcZun z9?gfKb~p6Z+0p}0`)b4k=}H*!MO4rlunXZh;#&6S?_oT4v{>Eh=KB2i{5}D+NJKG` z9#F~ngQE+t)_zny>L?O-;^*h9DBinkE}7D=Wtidm5faRtpLF z)I;ovicD=cV#hJmk&Bzo*Yf3kpQr2^P@Rb7cS{q{j~z2I?bjfB&@)P(d94H3goC8+ zW=}7ET@w7di5D+QbZjqcYXgaAow@8t&PY>p!G#JB&0CV8oxwpv1O_agk=>M#Wcfd&o`3QpNIIKIMJkjd;Hp&tg$1eB+f4+e zsY5C>5&ffk1*SH*afl-buKj+;@94zHII~!w&xserio_5645$;%T7|v#GQ3LIwtsqk zA24)eB#1*s35S94_VRiQ4A{2sAZcJjC*JlF-uZ{DZ&UyNm-H-LL&*R z1Pa6IonAz#g@t#0e9Xs@=Cv27NoE1XaPHdI2qVn!=ZE-ZC;W z1`ZB<*U&I9JYAj5cNU@@M_ex1ef|OVkr9K&A8#68)6U4)IP27oUa~@&_8p~0+iR;T zLschq>)m%S#Anpd-fF3|)m~Z_#pahz3eOMgDgRYPwUu=Rd#mK2wVt8u+t}a7qe9Mi&LBeIA7zJ_XyFy4i;yG%&l_KkN9L#O1mw z9sKdymJk@R_ZutnIjz#1+P6h)ATxK?)C)G+`dh!L3j8zg^U!4%Cq!#!e19jmvf7ji z!aV{HOhlnv0-Sq0JGFK7dbTT0eB1(J-&R=^e&AT0Z3AR>*Roq#ki42|&)zsr&*ju$Eh8SVU4 zW2}w#pHllQ8d{&)%MSrZ76;sGW+)KforIMT1^QxD0yU|Y9v&O6=RKoA(Qh9|1%F2mb7v?cV?cl^HLBkb! zZ{zs2B4l1Nqf2$I5r6a=mfM{t#^m0CcAaRzOWZ73s$eArVp%=RGxj%a1@)MFbH`;7 zQAyjYVuF6sSNh!Wk`@_-ACzoEjI7Ycq-Y9nzr!g%t|a{8%Zhq>`uhAi@xI`F-Pv7T z-B>xXw_Mvcf6UDr!g8w&3cv;j03%rFqV978T-ryeQX=+m92#*IUwS<%rIb|W{8>@=fUqL~rHC9(&RVb{$>>%${v<>{$!W4)R* zv2FMFFkl8mCzj`KTWN^1eMF4Cz{p{7joKMhcRx_zYN5H_n-R{rfT!cJYK&8K@i3q zD;;)1mV_-d`u7+G6Yf~quU|rHaToULRsP~iW&RnHdC8px6`xu$=Ka0$p58Z!ON<_z zju0*o+Ms^!fqt;LYJGoS$O&%DOD|o2@+ZS)T?=GSHFc#9d~|o_x6T4lCV-Bo(eY$} zty|ab>BaRmGRO^yi0pTw&Mi36Q%o?>hiC8VkU+8{Z0OAGM8)s64%mOk9QP#43-$<= zgr z2gEeYag=nLjy{3zvSv#jH)YOT)%UL1nOcbrP^7|$6$gEjuHb=y-5WQ0oxQlz7wyFx60|g(Y z^4TQ|1F@AkeiIApK}ET?+;%Gg$!bk-vgw>PdN+^V>rKx^Cam~egOP9S+?C&H)@fxvQD(q;IhH?jdqbqCz zUc$Nz8brWfS64{kLswtEctgq9+Z#fTa4|mxSrfFWN2R#^=?%AL=gEB5=xT-a9(GY2 zq>7Niiymf-D3#PA)2}nV;(c#~qM*Z2z`D;%Z!YdAbEtv{?APy^Tz3(Gl6WL3fUkbC zLfYQqpDq1ZSJxL@_1)+dGE$LJ8}fo0S(N4~1)>M?@7%q1-mz%Ekf^x`U;V+(N@Mn< zE%AQ)qbS|sZq@E71q(MpM5dl(dZrcaDZUJaceB8UOj4R@)=!4KBwry)DgE;ZekD>j zR;f6{DM06D`9L{l^gD4}1)1`lCXL{tgOC0VL*H)SYJF>DKV$t5Qu80R8YS#SRAPna zq7Tx(S@Z1j8)9<73p2Sfigk|7QdJNk0JK3-t1k#L?HL1>1SU+fdZHB3scgTx>>#&5 z*h@N7KuCakkUmkNbTPnLdW780p3(Jg=ue}Atx^C0ZA-KwCX^QqH)e#1JG3HG4&96+ zCO`+Ua=iDOz02+kZAYs!$9g98igd;-Y2tt=fyE)n`tXMjBGq@L8eSDLm{{OYr7-46 z(1k`qiknClGp36aK;C7oKfiaq3?8V@moQdi8=}z!_rdw0AR~jLd2I(wkR}d_f}5yh zbeb0GwhX?zhO~(2tV;pvsbD>TzYj=_1cg`Y8^hM=O3fL+j){UtVw_+%xMhMpfCadU zIqI|`L`SI;YQMMh!Bgj7XfhBbkEo)7T#h{Hk5QkmG1o?2cb|eh?6{3qh1DcI0k=nW z$62o1UNEHjJ(yRob31S^kLvFQZkDt>V6ar{spjC%`vMmFdLchArSCq$e2!rOkZxW} z|88drD!?@Rmz^mS6EoX?;z|F}{cm@s{}oRPN%zkJ%vqZpF`Ti!*{RD{6B~8`Yw#Mi zIZa_5p(OR{aDCn=?D&PCy}W~tIf4FU!{&RUdlC=eFd^S^^Z~h&NRhZ{?7Cd%`jfBw z&gpG^Hfy9(PJh>(_NlX1dZ@2C|Lauu>{S0;)yIMrzO(?W>>q6P*;0@~T6 z+ld!pWhGE_%~Bzg?(CACqY54zSi~kddo8M~r7(PuLSsJrSkVY1f;D{nQFR6_2o469 zsG6-srjBAIY3_&;y-W@2MRoJ2}fYC94zZVDIV15Zp8^Mi5GV9BRwm9p*KO z{{6dXLXG-OlZAGuZYmkgfC>hM_1?fQ7ywRPaY@zlwNX?u@8p-3jLTAbz>juzB9_WM zDU$>m-)h$Iaf&kFgBqh8mZ$!7YV z=Kg#SCqvs&%0)>Y=={-{D5h|yWbkStBM2XX>{FunR?Iyqbu$@;`0JK143HS4>GfAj zm3MBDqw!=J%qrlCyLb2f9R>_z*!Zbxbj3-z+6pLXG*#OD6AvCDz*w%$fla6GG}+>x1>;Zy$Uagqx zxd9f=ytCOMHFUgwXi-$EIF!aAqQt39gZw?c3_!TkQjOah+2YquY^OWvjChR-(}EZR z{Z8`a9ab#BI%pC5$`MNCt-3YsaOV^?z(-8MV7AB^k;r$TQfePLw!^e8osO~4Gwug< z=zO2UhsQT+^=ZZeue{M%srg{U4blDCd8g zBOO}|HJpIY&nde)v#zVwO-yb0Af2N^-NFhuijWNcUkLL*qlvRJe)k8XyqFrR9uy@~ zq9Z9J0gJwo?G#c3K@Py~z?PIWv(cNi(WlsT@pN5H&Ajo`!8UKV!nn<_-uj?qvuARh zPPLuBo$j(YL(l%;%a$&QfDH-!by7yT<2Us65@z)840*p{{q65?uQ78cfmPi&T0AR*+rrx}|LZ_T6rxA8rvXR=TT8p%OTC^Cx_K*EGAOtp|+k#0juxO8; zQ)1u~pE?@if7N!?r5#9}u09KH<**{3DP6L~L%5?x3EDbVJ+0Pc!JA4UMLgUc~-=~D>FfS3( z?eCElP=#*xjwC7i?*D4*kB3@a-28~V_NUM*jP`9C9hFt=iKY2ENdgFC7#u+H8;{B6 zAyoJUw%llaJNy-uN;9JYrTfl#rHltq56n z{u^qrs<$iLk9YR!d#L#V>rv@Y{33DjhGR!V-eG3~V5)O?@hCy%2TvlyTP4s6^Wu>kE>We#y{mr>uQ&dmC$eM7_)Gj7-=lWj(tt=s67;o_sw z4@#t|u$g{Ema%XJz7OVqej4sc{dvRdL2kJ ze`S_2bJSH_dmAd1^EU1Ndz;P|>5;G4OxuyI(5MR@?&AT>qwXyAd%W69{m^wLDXv6Z z3+kc=;&^}l8tDz(D!O6{2PS}~M$ZtqAS}cF&T8DWV9#FXIQ3@Fw*9;doF=)a z`S!Nft)v#g|Em3MRgOxH<;=19q>=%M*AbTDrkb@;Vf3+Kn8 z!=C+)ZNN%sM2$P^@b9d;jg`~CqI}p{SpUhP{EzN`Yt{cNhcZsee_C~K5NXM(>q&>h zO%Fa2Yk+-z1CU4%2*8f)5>-kORU)B|+Q6Atwq1{8W|LZ{)=*B(s;sEU%E}T@d0cBa z#GUm}BGYOlqbVj+!EjGR6I0&8b{txW?ZLi(@$%l}yDP%SheK1PfGR!M5-z~2+vR)O zx&hIaxX*YK5!PIm|D2HA+a1$`7K+fe)fHpElA}y`!$yAd!#}k->lgj(Dh430yIeT;K>`u=20? zsEB}EiEUvdbaKfxL{d{Y6i8TbwBr0m%Zvo=gf#r>UEuqYvJ@^t3CO`TED~HZ%eY*> z*~Imez@`|kNaGR-0;W^c@qL<%teEKdC$dqIevV``9Og6{G*8&-3z{`p>y&VvmscP{ z;YXPpY5|~?naLItV1Y%^r)LBMtYwB^0I>uc*IS|Oqtc+%EZYz0fLUKpSYr%qTIKe zxDdSjJj4=FM#zN8pq9|8z~MhsDfCBf!;4j^)MHiO>} z1n3MqUXSXA5(Cf-6Eol;;Q@e@eCv|RWURERR%_WC?AmwHN~SQ7!+9vFXNbx#r0r9|Itappkm1k{c`m~m`%fe4S1*W4cCPDkm)VW z5tktR8C{47@HyxZnyU%!85s%hVTx)Jr6Flz3tQVGuN*>1B8KhDo+?Knx{85-*Y!{&gHTX<$(}jGuhO;L!rr|AYG`TqUmEAliiyWzPNK6=V z{FG7wCD#y9G+3}Qq-rc8M2tUkn_^DX#%V+wBN4B%Kj>6sE1coc4 zXtp0Biw`)r_A0bCNN}+07k}e4BxbY zEe9xy3t=)?NGhRRu}~r-FjxRRacIP+K-F7x%qub$8YC2x7`0GR176V==`GPBWC)~$ zT=8b@NyQZE8M6VOvhRIEKq+NrR`>?y;P~H19X_e(2h{4naUxmiKlSxDNyRZ4v2nc9 zN&q1pc}$-E{lbExh5=M`=d)Npad*x*jM%uNkb!0xm#vQTSHp=0z2}JS! z!utjI7;_Q*tuADoU>XO14pI3)GFu!y?o`XxhXTV}BA9NofL_Tpv(ZKa2gLApq0d$`i^^ z@44-g4iu|5?m#hy19A!i%8-JF3|WGy`unL=+XeT8l!%j|2H;OvEZD<%e7@5&}#r!v*)RIK){xK#3(Uda5G{=!nhC#QYZ2=c!&uw z5^OAR2s#Y8B{m^8dB8y0I08x2#mwH<26>haGFFU5L^Ym)zgo=Lu-=eOgcaEhA%je^ zSn!YFsgEHJsEQAss+^G%J|tifd7p~YHbHvGFhG)))ia<11Xem>r<}3E!Lm*1PQgaE zRS%pf2_p;4f#O04CU)d8)c+z$!YEr&C4sZYMdcnyCOiu$X6|?HXWpwE>=s>ToU|5H zMwB@%Y|=#>;_~T)=r_Ze5BvDc(NIoUATj{m*$@ZlQC# zH0Sc`3}!H376LHmo00kyMK)C)aG+a435^)#^2iz!AxVACjR%bk+Rozx0$B}F$<1MxdM(fPo zd_M&AbL!?ignl{bNS;VVkfbI)aw8=sAp!?z9Al=_p<~gJ6&9nQV9Mvsb=DP>f(>nv z`;(F=!Xw_Qd#s<3yNH$9$hAzD8tn(scEw}A$dYVLs^C?@;aNwlYQUU?M=VutGAV_`cw=KqC@LFgp)UK>OG!F zR8V2W0CdfCI&&OR;NNGv6}j20Re^C1c622IjgX*~T)e-TDgG*^$4Q@4-5LPEgqlUj zs_pVF#UL*k9f=@?3g>s$=L-WW3;F!oS;MA6v?U^fZ_RYgwww0r^^teWXmPZ}iPKc+ zGZt=rc>;|F@nO-~^mbsVK-}=j#_!RGEuTcqEikVzl0?Arx;hEz0_H zpszXMMgI?oUbC5e4Al!ZOOYtu_4oGZkHmX%hvF z3>{2fFTIE;LWrl>$$&Q`A`0a6@0nW}P*+Xr;^rp7+n*oos9TOcy-y@o#TZo^<(N)S zqr=w5W>%-2;%)|z`6Ha62wgx`$_i~kD#LL0B0OI8bKjH-S{DC)&|Ap;wWdgn{h;o$R$WSMW>Z5TPbZDWiTfr+vRl-+-)5(aUYF=Y$2oJlcBaHm1v~Ra9 z95X}vyKaLcdiiDMa>qT5&U0VGCXN1WG99aVY5m4Up7cPF^L4*qk5U50D|{i!+G9dC zp8m}W|x34aNJu(i9*{dtSYFJ)+vYmej6BhYbY==eFlzZX$$wPb~!#z5t7@B3~- z+il@!cYAR~g3|EE{1glf_~+m7 z>x&+#N)^M=Spk4U%fs^Y^zJ6NzkckMd^{hz)$!a}BFE>P^Zk@1w;rzwED#VSDEa!< z`1uE0rnUMZ`fZy%Cn0tBviJG!sTLZ>3_!<)Czh?}@qMWK=2J??JNZJMebL3Mg6DSS z$F)B<0Rh1{;J|dWj4G=g221^Njq@flmES*A>_|on990GP>UU;hpa0YOtuwJ+k-be? zyT&J3S`#?Q7*j6&wFO~~PS4N7?@}p)f}GCxw!e~1AhriE@D3T}oVkb~PoBTbR#$D_ zE85xg3|XOj#1&v1=V0L^#{WRN;$HB-wr);X4I~zX-5Ru^+OQpLV`qCG!`{SV<>Y)^ z$yZc8j7Hce>~VeGi!{%5e=Dd*jl$~kl`@y$bm)#BeGAHrCE7nrOB4@ zrH>MfSfA37B@jz#%F>>rT+N3CRQER`&Z|OD$9dxdf<`7*)wL=or<3~epu-NI0~Ogb zX<~N8qsDP?jM=}_O&%e1*5aX~`KYZ>s(TUYo!C`0b=i`L#gr{q`9{w6;&J;}lO@un zTo+4filb@Cm33ODxQGA%U2^45>(;dN>vlRAPH&Wz_LTywS+ zOv5yUB?6EPF|i{!Fx|o?j9abeu;c#4$dx~9!0atsSz6N2QO3Rc)iEa_@$wpeEajgm zeKPLR9p4qdKK1RQ+{3oR!Ki4FuA!*mO#_=Gy!Y$>;p{Dg;|h{>!4^vvGqWsaW|l3s zg)L@A3tP<0%xp1(#mp>Omc`7>%-i?H+`BVxXLdJUME}UHuIQ>dnWr+dGV4nOlp;Bt z?BmD5X?P?F5}TUG-e!IrH!ch$ScVE~5&q?mpUup z`)1?r;G8hU_x64d^l(p&5u6}H^H&O*4B6*J-`3vK*1BPwI}m(C zzt6lMQ;k31UhmSZR#J*;!ks9CrqfVmXlBNWH)>0Jq8 z&7La939l&o#c1aM;!I9n3f2_pE;q~S!0`6<-5f{E&;P-lIqUB?IkDhwOQ`P`c_Yy+ljYNoBkf9;!+5R2r0bAen?o$&2DtG{aAyV1J(PL&u}aZ ztv?pN{4R@+msaN~?Wbne)_6Bx(c-SIPM^C&V@set6<~XPnSSm%kDykDkyS!l{9JWT zdTO!JRDF&^A-p3!GBzdA3*Kzq%LH;*4h4sQ{pIU!XndM0$)qnP^C6>8@_GpJaMpqX46k}Fn;v0?rVW_s7z(oDVfetft1&EH(NUg5@5uRgz}!-drYZN z2@f~Rx#CbO5(|bJMvinz#kpt=<)dRc5`HeP&A%g?VS+Ma2Cut00WW<|rZpl9^?QcC z3Pq;npo)wcA=>W7l7r}2`w+?{87&~u&grxf_B_jjo#u)Dx}MS=wjs=QoUmyEWzEnTRx=D48nAhGab{=V3tHmUvM;uo^RB#ZfSlj^xsQX~1bPm?ht z6uissnNqi>Pw(GJ3)))@K_eRT7Eh47uO>_mSi=sf1X~ouOY=6iVT9NbVJb9L;<&cmPhyM;OS)$_M=rXzA_}&B?+S8D) z@!m7Kg^B_V8E6Se+jqts#7$TKHcv|LE(J z;)uEEmUfL$-{q~ZT)P=7-fxs+SVLh;p6TKx_1H-~SHbNM@t<89YT2I+&ukvMzLjYF zR$ZQc(R@RMDTm$F#eRQP=dY4V8JxxK^YK>`9%~Y3E8XS2dwph$dz1G|YX5fuIQ zcsA}CgKWZXW%-$w>6Dqn)@R^jnd1id3n*W8LAM?K{+C6hb>}OOoZ!2w3OVGUR?XRqz;buz(|m(q!pO(- z&vX6rj(HKPZyvv~_981=^5@^TF{1^zxtqB7?de1k@$W{CX22Wv)3%NUqmroiE2$1V zJVtXt|4m>ju5e@V5TnDan|gJguY>SwZ*R}2T)ag=kHdhroex-!5o37-TY8vQ^BM98 zZ&&XYFCOlQdHIO&Qk>k0=^!CwcFV^UDsa@gF5UXu;L69&SD}4aM7&EXOboO7 z@(~t^x54Zp^{Mcdsqh>cf|csPk$y9Ki2fFf3iEYWT#O~f1xb#GyRNbKYC`M7DVB?K zZZS=uIpI3OK`2ddjca}`HEiHINYpmj#kAyL>vQs6OoF=^Sy7vqvCL;?1|o@7#ZgP_ zG*1hlQbfGuy9eu>NP>*1nvB6ox$UHnr$Uj`rkTZ;SW>LS1kC#DxxtZmj-R@n;T8pe zFtxq?sV7rH;GAGf?JA?AN^$D8)v#xPT7(yMLglpP#y6Fdkz4QF@W(|<_Oaf6LGRVz2W%Tzg4+l>~0i% z;SXbXMZ)ik**Bap7MxjU?LFF208G_RVgAAMat5+5f)Eu~2azD1uluH`3f|7vf7*D^ zw_B-m$eE>{a03Zeojy5U^0eFMbP-INafxoa6^~xHxj4->^Kd;0rnIvZAKyBD+wOex zZbyNGlBmxo7(8(eeeA-n*Io ziNY+kTH%W^uHokI?%aBDcc4wGsl}%R@jYV8&FA7OpGWve*oCfu{`nVW7DYdMq}H16 zmDdSabdJHAPcLPxoQ7Fy{jKt%VMijqjtH>2j3;_%LHE+WfMe@DV9z$G;}~r8q<_|R z75Pvd6Vg!RibgjHGvIzVwUBH7G_P{gvA4fMJ`2_$wB5d}moL*E_P3vhJ?UquG%EX! z2a~nupMlP*e?1rnyTY<&+dL94&QMSJv80Qz4e*-zI22_e{0mIBS2A_SSA@7o8pP`C zrQe@rZ_QXWwdfW!6pF7=I^ ziO>z{`ppyVZ=*xW#Mo+fDs1(iBG|A-N%%OP=W}uzfCVA`9F11!Xc{TMxRPx(_Ov@o z>#N6%Qg~$@7>jfesk%GRgk8BgIqAP$m!%Wc3}Bv#C$H?*!o#zsFh+fGdRm1}4yH2z zE9BGnQICH(uF;m+1D z{$1F^!ruB{gV`Kxtp9WC15EzMu*W~=)*v4JcQD)Yht8b$uy42Ld8a4nqN^~OQB!Ye zc{!dm!PFcw2%6A_h#hSQF0n98aWzzC#BVlTp3Szz{*SyYrgRqF?=P-DsMBSrnG_L` z5U_|4@uO7e7NL#l9BqVbFRJg!&(7D{A6$Iic8+1H)=K-Up&K^3@4?mX&-rrsx}AKw zZv;SB<~+8a%<6;S)pT{GlPapv1JiA6*)@Y*Y{}69VL_r{--BHg&;jJ|h-*;~iRHEX z`Sg|UrJt-x%KI`x|LH3RZX3h`7P^A(fYc^83%`bn7ZDu5j|~eS9*HQF$h_B`iCIGu zI;$arpr})KsYNViP=m?{8Pz=3V~mId!Y>$k90#4zkq8F~*7XeOV(I6v=KOMsf|-q6 z_iY*LQw+ucfNNb3#c;fF-Dlr7pud3KSIr#yT|uYAA6I|r&<0_e#WbjD!<_hVw4bZ& z%QJZM`@pRxQFkauEyI&(g@sNO9w}GN)#I+txCPBtcLAQf!|8Hwo z-JFUkfdZg{1%csU4QVD;MhYXYt=|`C=z=8814IP%Dwfrj=S6LMI7PO^Ke}qqoEv{r zjyojX->t{QlvQ{Mzx<6Ke|gZR{Am}C7fwsa1BuQU(5t4WA?b{a=-92yZHM;yUWU<6 zHcK_TUCg#Ja3t2eNxx$yEg1k5Q*yk1s$epwmC50%Fb7v?oLdKxj$u^P&`?P3w%H+N z!2uuv6q~Qa5=iLK5c%R$R(!f}!&iEsPP}k=5}{AqY9v$<+X=7_lq^`4GfLCTjZUM- z-LFOOLxjw7>X<17lgiHck&%ogMOB(Jx2(CpQ=d&ykfVLylxVW=e>K5gET4T0aMR%!`-n(m0Q_tP zT03Sy%nuU{Pv*G|Ds*T;^&TdsM4GhY;I+(U^63mB>Q z8$ouitOJ)LhjaSs+b37l2KPaA-2)XcEzoQRGEMUjC@8gCXB5KkblfDbs>lp-yfS(@ zPIYVC_7oArU{gchX!vSlBPuDTq(MvT)=3*Nf`=IFMcS@(S)uiSAc|zSfdWvZ|IEd; zbmaWnBa!%V&zWv^*7-31aRhPe<|cd*6}vK8m^c|=N@-j)Yd*sIUFkQM3_x9F=k4;# zTepuP4aQztx3e14N@19Ej6}+vqF+M}G&@e$0m(;`t;aX}x)NL=5;C%aJ~NhiYc_7=(v*Z??pMwI)~xjvx#Dn=Z*CWQo2vxv zyPB=anj6f+M#`M@Ts)Bq3IPizmTz%H)?0(y?Igz^ySB$EOe&tC7nB+%ctsrcQ+itJ zTW$-Bq-P977a44rrrzy%;aD-m<3#Vw6$mT9?ZT6R)()$pKTR>#8GnfyXDu0W((on2 zXd8e1C3dSl&xbPdepB6xF^-N-p32#SVY*%VhA6Dh2McVac9Wz6oF&`6L_UPOxBvi> zj95vjEMGM#hQ)>eqFP-#cD778yz%cP!!S};wrw&|Uz8G(nq2i5t!VUFUT;g(1(_ec zj_0cy^&dMrjDodWJG`DI8d?nHy*}X5B|@|1zgTGzEOzPISh2I{c}>%7*DG8C{0<9e z9pxfH5^w-AV`a|ccJ~HQKWr@{XbV%2#L=ee1p5zXXEPk{=;Y)VebR~wj;T8ZqNf}_ z_C6Z$TT}3N_Ghl}j%KHpja5ebqQmTjSBcXrDM?+T47-9rI%B6p25zLu%EehmX@wQO zAvuL+3K#G0%j2+)r?SEqgy9nQ?v2Y=TSl5^-(i9`z}iq6uz<~F7|Cp zTjcX~?A5yd?mZkn90>?H`|hevFC<>`Ms$-X+0QrI2K!eu>>sZzIt%e^l9FO%E7ap2 z)17d-YFBeEwvD4#?1SodkbS-<^FzZV-l1DqoKBY%^bsx2Wt%q;N=K)f;03;nVb@o_ zMt;Z?AFZ{JJ3p-D%&XtJ7Zp=ir$*G|PWU`XU+u~`jAGQ)p@&tDr=FQ$(8tkIjxm<8 zl;F2{i*mw+Mm0~nYiSRLz%~PE$1AI2~;}WcNA*Sh1 z%E$~B?P`y7>B>m5J* zVFDTPZoO||#guMyNF0e6ome$2HJDkjpv~EVUU!XsSIpKnQBfG0+$=|e+1xBTv_voN z&*3y2*`X8fKDQo}sH-d=icz?c&t)o#uHtJQqYYNr5d~bX;d2X=#A1qd_=iPx3ID8NS#g(!hyGm=XL#x5kNatW?^6I8{9m7~8~?N1`W*+;Gp$>< z5!S3zXh3ZnzW@n%cVr~O!TRj@@iw@iNbvU7qcPa_eMS|JqRo3Jq!(F2uTK1F#Dx)y zYGvOed~W`++4g4R9)Tti-K%`@w_ib61cg*;>q9;Gzmko%SOFt-DVI6ziM}6dpx8?& z_;G9p=Et|jhjYY>x2#___^hy!JqT%j0isy~J3H57$@gv;yg>eWPxUHCdz1X%tB*sz zFK6i`F&aOAVvnl=32@N!hgEzxdzV?(c^V7>09IT1`9oTd&VX|MBP8^vX4}lQ{AR|o zx_Cm^F?NbEh7<76&5y* z&9pxxUAyu8oB>t1@Zomqk#uai@jRPU6l^}guM^rCd>bsN zcSV-PSh(9R(+6Neck{#WA3VSnqiqru?7u7CD0s5IiMmyKmKk&hWHUgV3J_cpTG z5I$RE1E8fc#siz%C>1Y`<~%({ex1stmb5@aZf$I|-)@S1RB2oCA87eg4fgd?U_e5+ zd-TB$qpPY}X~7nR70}L0>AW~Pwoc^tPYpohf7v=1w)Ak4wXspPU!SnDGQ(R+m;anN zmz=h_29M6`KLRNLqCK;<;~T60n6Hxc%*2YGYLPS1OrPoxPStm95PLevxv^g%XxTwY zL&-6#XtZtkShy5(Bo2d@QnJ*hVT$yyf3-L~-*Dj})Iku=707PiF6MLC^*kCTr5P6& z14s&F$9yd1W(G?1w!20~M?1A@7^mKHnA105iMu~E6bDNx%gOD^y#%&{*wi|gr%zSs zy)ReF0yp+ExQ#8s4tK8y&oQ-txDg5FlU7+%3ySZL`c5BLNUHSPW#7pZB({~FLF3)ewN4SNjCthguxe&Zx3#=CrUqBktw?IslOo3i=$=N85+7d?#N#4xP z)6E%tz3R99e|e7ihZRpt+}2v0sNNVs@-M8ZDj|L``k5rKjM&(Gwtb`8*|_OXsa$_W!ha|H%NBmW0%yvM*&a zB1gvvYh5M)l)f)5HtxN1toTB)#Dq$#`pTaDJ6{51_`gBkad7=l3e|s+|IwG=0z;|+ z0KCdeN&owWSouDGpuDbmkYxm!Q-{CN17@eAIUJTfGOFQF+X$l8BvJWth-u9nyYtL!wBrNlC zRiz?zjv|u?aN2Fcc_MdToXGouE)Eng$M7b}Dg?Gv|kMUwz-viBC!tbK*k*@nJ{+Nh}0xfZwR| zFb}TpNBhG2sXpr4BMqDiI<}uzW79B+zRTWm%GU`X=*<;A3?d9BviRJ~!iEJ;t$Y1v)TJ31Xtf~qsv>Ly#UgW#-RNpUQK_A_rt;KEPCNt7+W$^A%iQD3wANr z`&pkip`RQI0LX`~4=N^adoj8oJ-s+ZA#}&I1weAJ-KZXv4lMruP5^JK$jU{;mn!I1 z|8+9lqSOz`gfNXC8Hwh>YjIH=doL$^TviV!&`~IC?f9(h)_{=s>&HAMEv#=m9WW8i@FoqM~9x~5_u!n_nErSZjWc$I{ z$^j>Ao@5F+8SK|DCS;dMOBcQ-b86$6;_@t+lW<)$WUZ zIu1d`def$$@a?0&_`_}QuZWK?&$Nm7H(Qr>zT86!FGW02c%?6}Pf2YToxKJiD>qgc zaB&*V$&7;#$8N8)mINMU^yJaQTj{~d!=teGam24NM8fu^#r<@MV!@S7AEKhL> z$WWOq#RLQ~$|>lVw_WYeZ*XJh6XEd+HjM)pSaf;cfZeBIL5{0bNoh4>F0+$P zP7&`@_8!R{;f9^i_8@u;1SwZ``<@iO8rP;+;rm6f61P-o9P@I;&=@(g z@APT98L%0@X3;sr@dacit(ost~A49Ob9B{lB{ejkeXI#7_%Lqat4uRi%-tTw!^b$Yk26I{ZK-JiCC6palE zB7dMm2a3T0OnR4-Cwc7j&`NL7-~eBs?V3BDo?91mXQQCW(EK!ExfawmIvlqC$dzcq z!WoHoykGdpB*xH&fNWyCiz^*OS&hE2QsFnyb$JemFm|zX+3@ z#T%yNeJ1eB7i*%UG&yQ(!+e%$0{umGh8Ag!_MIPQe22nK#rR1qF+ES_S_ zT+p(ndD@XB2gF%Y-ILzbiyz%K&~D*BXe#evc`8(u9H`d2rVInO)YXI*v#m4EfLII! zlg$$qNv1f+*ojImTic@3OPnLD6-%M;ow}AKx>gpn0&DRZGn?0H9$5W&{E691-|2Xx zW6U!5pR&05aMUn=js-~h`@hSR(+qj1s4|kP5Ine1l~@NaTs)sAT3>V-yR#+<&gMu5 zMJ@%^UDhvWf2-*}tq+Nr&F?*T7OXrb=zf}SU1_QUC2xgeZvBqKK&;T~HXh$-S_6Gs zvEZDYA&Cu+OmCTYv@{rwxdZCWcpd-zy_v2mSZNi}xHYu2@?n|Xz3hH1FVB6e@E(VX zOp)d$^h^W=5y71~0Z3$%P->M@rYMND)dQd*S5V8~XoWAjX{T!^O<7UV0t<~oVuMW+ zJ(TL8#n`L;@x}+;T4=-k+`vV*787 z9n=NohpV+IRiy&%Mt}dfw@weDB{~f1pIKRz3pyTpxd)FkbM%s-1GQMnl#mIIV}Wq1 zL8VqY!04iilc}sv)|#^iAaVmR!oq`q*1-bND(%9eo{)UOQ)opEyv<=GoA?G;@&RoGCyBVUQH#HW-UhdKu5 zrr!^rxvU9en&G~}-pEdIGQRC=Ge2G3N0X2Wylz?WS7SSdl=Qt1U;>4oH#6eD7yJ~` z8qt!Sf)=frb|2)>)b)=f%bfICel=$Qkv;WLGL;n#`;zFLt(R9b4K)sPk?i9L&m zj(+hK$%?Q*X@|x*46(>K`}p%&?V@9i(%}nHntXt?Gma6rp zyEb{f&VzMe02B;BGMsyLz250$U%%sT*BP8=t2$D5<8W`1a_g0tU)nIGyC8##gOZYQ zAP$->oHyKfSbVKyXU8x?Y2P?J>%P}BaI}TL z>ES3t?cC`Oh5G)Sq-n?=55c6@jf3L>O(SYb?yrg(N zUwSPs1m^r>n*lo+2Kz4c??-5|r6Fl}>e1pW8HqF-MJyb0_VHI9eJj@3tu$~g0 zT&6xh(ofFUXTEMoIaBl6wpn*9?IKc5_jXLZqMMHFNR=P~CXCjS00k9wVPWCh?PwBU z=dDskm?m+s4Sx5u{epUYtWmgahnGJg^U6kJQm2)1Vb{b)Y-FBAB#$wnmo)Yjk5?h zC`=lDY2lBuf-1d2OLzc8S{U!@oSHt6=cwTwddHrjU1yWI=m3NnGR}3>zzmrV7pSu! zBVRrrEIQ;y6>w3b%_FrygMHFRCi-_P?oM1x4J+dp3NCcGbL`hIexp+xxh9nY^d-8? zfV3=4T(eWcqYsG99RY^?9lG0p=LQ-Z+8O@qb#31N0TN>almF2T{AVCBIF|o*19feP z=CHwTAjk}4w$R?R(7wK?C`}~bc#0;Q5uvJD6(OtTpO?JpkNXNOUJy+`v+pnd4EU>2 z*un{+YO&e-J1mxLMjD3emx3QvJ*IS6K`}(YY#Q%C_|>w&3tPJY$HA>3F@^oBlDm+A z-0a6}wd?)5lMlbsc{<0#_W6YmhgmWH7-mD%;Lq4MMaw7-rSw3il<)8_eTS*qK3h@x z&;#JAr+Bm0NonbJiVBYI#%%EzC|q1Tbdz$OUpN(-B=woCOQ@B?>J8YS{Q3Y<8qAgT zUw)tcUF=F0g%rUaS-f$LH==CfrV3U^}ZWE^U|KkB516SH+j02DByutnDwkV_8Kpd z-s#);^(zfXP{_j<^uFVpU*KU;J6w_9Z5%!GF+89WOX%wp-GI-$+fCny9*_7mpwd}t z-#qOFJMlinwXSu-#^_?&4j)XL*c2)ZGmsF9fz^lq2AL)XkN&Bm$`;(=%Bqx;1$*WT znK+%fmzM6zPDA!lDRdH>3_=lj#QFaD0Tkp>8NgF;E!Hy2xgu7=A4yL^eoK4MDPQDumu)8 z13?Pj4OJ!|H#YujUk(6M3Z-WMAEC5K#CSzusK}+G}5}=jr7#DjWKrc1ZVP zi6HhuDT4*&CFaZ%vVjHuk=s2Ng3l7F?xA8p7tsj ztT^3{D22Vo`_~zh{veO#SSz1E61UjU_?UA%O3+~;_R?KI(9Ok$rojCq&k2kriVt6; z-#lG_7uvjNo3ho{3H^LRak#J#Q2M(XD6h+LVj7h}eN1Whvb}9P(qxMKA#k@}k)+sq z3ZpzG-TCy%D#Js8f!>a9&&WiHov-c9)Z{g0tQ|(k2T0c7Pv~Im0Y2l`9eYr-k*0o8@!QV3Hpzsj{3O zK_sQ^2j;RWas@TR_(Gw|fTY~MG~xs~EsD(MzpK}n4++nlU+G!l0C@#}SAEQP=FR`k zE!6K!Z1iNHVy(o~IN5@mtnJ!=vKQthyfI4t}YeVN1UddXSbS@E*1pttFOvo-xpP_glAse9i; zqo;|7;$!*bgvVB$z=%Xc?}-iq@J4X#Kb~HJXFSn^)I&xE0Pq3e!@hUSMl=(09E;ta zAZ9(Dz>kwWtr9##r!6+&p{ZeW>4sRFQc+up2giOOgmuj=D3ATX0K)+7W+9}&^z`WP zy8I!*zi$NTFx5`@KZv1P@c8IkYL+wVRyQ%KXr<82d{H75%N3bitTW`!hV~ zZBGg;Y}UJ#LhLrVgmo-AJaG5=OtoozZZ}N5r0djujir{rl)J+PG;}TntBlGj6<}qM zy*D8s4IEo%PY|7oLazT1(+J}oK2bI+mWPGb35N>q5fz2jsrhTJGI#b0MZwKMh8AX^ zlp8$;yz4b8(7^%tTh0UVNXniK_y+JX3jx=T8_QAU;usQFCDL%AI%0q%?dgAY6s5aAv za(qB-L!hpVjvF-nJB@5=XKwQ^8kw8(zjHjm)PK~+|9rC*QsE!^c(u-M_6OSVReSe` zYXVA`=$~a2PI1;N_9$X}cW7={ZW90a;Y|ego=?)Heiq5gzcGN-76E7LY|haVis(92 z=RafAZ)X>jsCax~XcA?JhVx2tutUG)sx9&SuzSLmRH}d29K5+y*LN__IS`gfxN@uH zEjT{MDjD47g$f<7Av=Gz$cia&13J)9c$lf{000xvVW()?>zYW=VH1U&iEH~c*B`YS zkT`NZMhF^=5Rsn^>Yy1@{01@pUm78{_iO6ox!`Pi6*rPhg&44SI0yM==Z>w@sx!7% zrQ-Le>IW8LQDCLY+%`(94|2P{s~L{Nnz<_dZTFoH&ex*fZ+J%*5qb4;aQ^e0z1F=& z)U?4QSy=x3bRM`bzWwBL+{=fgbJERC%bMn&k1hQQH`WnyEVi%2HAaC~0G9RxdSKg?U1mA$Z zBAy?QquXxF9@nv@o}k;yx$z&MJT44~nEHv(elhc;@*>C|>&BO%%}B6ai9<6v`{{pb z%d)rOdbx@lQ6j6|mo|v3%w<3S@6-DKc!HOu-s+e$5F8j#j2|ol7*HGq*WOZ+xu)so z7Y2VDwufu=x#r4qf%x~`Ir9C3McY$?)4otc5Z!@{6dw%#PFl@P?H&I`S~)p6|AF=c zrv86PD@5RbORJbwpD5no)dk^Kw$Ct1Xl;lll(!VR_ZUL5xI*!u!(!l};-DhJG8r}3 zZ17Uj@pjcdL&pXJ$p@0ZCobU07s0=Uvb^BZ*rB9%7FMUcd6)gDJvYNzzMT zRQckObXn#eijz#fZxhX;?%(m)*8YF<5jc1_{=s7~^&ffs{eK0D46MJl000nz|KRa5 zo0Yg2)|ai;X*x&>Sd88;XiPey$EQ5n4p9DBG8_tI2N!SYx?c<;L+H1yl4BuW%D-Gi{Wy|m#+>I|@4IT04X4Jo9j@b|Ue^nRkT%7-n zxAkA-e`L=;=L90O{DVDN);1~!_`|seLbxxyu6E!UTF@#y=PD$$^0An>_7_9Zq7++O zL*uG8*%xu1s$b>BR{H!3Rwe4Q>I$U{QLbup6f=leO0>TdLf}6u$Qr@tQ|%gw8(|EG zpFJ)fWIcG_lk2J}FeP^{YI^wG15aMxW^aTK=A4)xd)xNhRnWz2Tal$%Gq&Pyiu-Q* z$;DUZ&qOHz2?!3)ndgEW#NsALQObiG%nlc9CvXI*97>o4@Jt@i1O_fx&rl0-) z@1O8_X{OH5Cm%!sS>sld1PW z6+s)j*%bY+ptLCYLF2XpR#1qx6aNphiRJIJyUykS0Gh|hb+aJ_e?r6lp*37Iq5@NI z>F~;B#a9xY9ehKSR2|jGDI4kLU(RC`6q20PM6o@CW7iM*qJ~jMIWzN3LlCwh^`%?q z5eZN8-vty<{P+gpSiYN3%{cl^Rwaxtlvwv<=KRFqiN5D4K@lm>^+0JPYVCjsLvnPh zgqFA^gL!^YfG}zaG}-}BrSjyZ{LJ;RJHGt+o1S1ew&V4h0SNnruAPV~Rk^d@!Z+JUEQ2U2*IO^j_2auqx=@LG-uThl z_%EA~9#2ITM%vT`-?b>LA=h+ce3mzdkN0nZQrf%qcUXiwLM8Z+v-R2Qor1qj@3R!W zuT>uyg?)5It}4^;oaZkRdEUyp8~C)1b8Irg8%#mXgEtEM^v zn7WS*2)apCmkIduvFD~sh>Pd_%63xp{UyKZr7s79-@IA^Z)J8?5r2l9gg;a!`g9uW4u zW@cGJ2(k3EOpSdZjiSX+&wiq#VoUv~;34#F&!H2|9R-Xel3;bm6|w3VO;=%}7%$rQ zkbqB+WoJX-rY4Uh4Kr?@$%vstUx~g&9ueFVmVggMLIVwu$>=7?PIuR=rqO?TDVmz< zQp}wOp;zmX%&_D0>~5onDnC2BS3pJYS&V#bc8V z!sB7p5*N?w|Ho0AFXliYVW)yCD>$Z$6x(R($T$rHM&Hi$XXSkJgsa*=?RrnbF! znG~n$yz6%?PMzN`glL)$6qy%!hLWZq`$Vs}#DRM48xD|nAhAX6xVvwUecL{$>3*8J zuM+86^+pDyuxQ?Hg>!hie%x*nUYvTE(5Pg=1D;#>F1xT1;_zw4q3tZR-x=L;r?@po z@EnQVkiZ~DNojeNWk+J92$6&c(1vN$2)%r80J|$U3KXgq%eY!JbTm3PDPv$T$xzMx zOBkaI%`MjXCI=#nQvfSCmo==c2My4-B^_e9*8SEM-%|zGWZ%Tt;Gy&xppo*_b3aMx zul-=(J;I|*vE zm$wDQ5cx|zaOQG7T8|uQ@u;{C;-hdxQj^CSP z92wKyczcQ$YPX+gH*V~$nprVR;}PY~jwdqJd28oazBj>MLUps6$`)o#q|iH<^f;<-jeIlTtOpgQNF z(QqI-r7lD$Ap^>Pz8vub8;DzG>(fW z=!j=b-2XCo=Tn+j=UR~5&SS|RrF0m~j$(H*uyEm0T>N%?IRTOK;dd=x!1)cDYBt`r zPiOO~V&)z;6-F|2gu`U&@%~NEADtwoO!bryxTqSDUBiF|^mKJ~)z{Z25nnui-&MYF zqcw8A3&BdS(${S%4Quqi*R+4|J7;FD(cAk&WTyb@S86wSE4h)(^6M~qOhDF}$L7&d znzIo#Getu=J#j}VRc&7#%UwC8qq|#VuD?5i0#(B6xdxYDB~&eV4PNp>Pn#$O=;b`_ zedP811H-kzDr^N!t8T#v~I>BZ9W(UEiU}!heObF%3A&(PPF{y~j@>2Wk+QYG8Zt}M71T>Z z8GiNsHN*GXNk6ZE3KLvapg-ulS^^ioOey<~1>M>A4OxDMlT0+FJ~ZRRt4&ES3M+tU zlXiCESytwrbEysWs&wN1*fVw5p|kYh6F&HJG^ zotMu}B+K11&Vm=LOozTF{2?|g4g~Zp`g*45YBq<$pT2A+_We5p=3i`^xOn)pr-=tP zTN#qc5opnux{Vc%H?yV>z~Ed#j?}1f+rKjnZ7q%e)i-0~=KgP#tp6haqiOihDPFMh z|1b?RSL_L;u!g!h8oDZp+Z73DZ2$1mQ6Xb}vZZTQUHv5fJr8C;p%juFO%T9x*@rm& z3ekgzA%3Y04ZgvQrkW%!R>bsMjy82YL4292ig?)d^s!#R$!(F7Omsl{&O`KVx8!at z=jkYm!@O&$$TN54Sj!f$)A252(yBS$xSSNA-Y7yjTL#%B^!l$65h)i#M zn5hkPwDq;I^<^YV(wd%Qkx;IGiXWVC{T;ECfUk9PUF2$Su3=4b8XlvVQbb0PL|?sQ zRY3hU9irCHLPOYXCxPpY2^t!T0s{k()6Jq*ZE5BOD!e?On&krW2$5&zh6K>+mUi78 zJ*I|U*M-dyAi7l;ex+#P#d&-VU2PZmc3@6Cb6OjK5Dz1YwkJD9n42}WYyE9~h6x7Z z2Uhp{)#LC+p%|+_7Lq@>Lu&*=TtJc;AcagW&P<~ZUYV5~S%}Svm#ms7>LBu*Fju~# z)wW*4bpd%u0>W@a8QzIPj-zd*KW001UD&~(P&6<8YAG7n3~CBdEFL#A$!DvDPb)hF ziU_7psRaXiHb^F8P3be1vYP&4X^4NP)`uY5BO;`8pw|DKro3i|!uU#z<;3cKjhzB4 zpH`!sLYm&Zt7>?#=Q0sKXvpAj^2!XbuT4v5Q5ak{5_|JxxMblTHNVJe*W?(swZ6ON zof=yBK)|t#PA)qXIuT$Lo2cY!|D-&>cjF$DhgHb=%ghW%5~Q2iVPp`0Ux#qRh73Vr z(_wYRg-cV2wsy7!o_S4oVbwaLkq%$lqMI7~oS__fHC~u4iL9)ck87ncmYZ3KnOi2F z02OIxqcylNn7?VfvS#Nm7gb9fL|cn6X=`CNO`om&E+!rpAwl(HEh4KrCRm0^GI%2j z&Sko!z>{VReB0l-tQ?}`a>WVvcNNRrm6q0#aNFn=H2APPjj@Wzu@e(K>WJ54sjKq6 zt#)b!-3$p}XL*qvJ+4owRJHMs)6z1na@*g<5u-dIl2vDg>yUAbQOV6%4nAJx)i)Kr zzq+t#G0Y1uy6pcB z-#$h(mPlnhwn6sLuhPJ2<;5l@Nsq7Z%B7%<#@3Bb?womwOb=*y8Gd~?9{gD%JNvn0 zCVX*`lZs+eP+P_LXl%VdSPI>G4u+|{9ZQXlK|r1pV0n@&wtsP$($=1dPqrsp$% zzwuFo*&_MVQr9X2Y0O&&bE#CyFN(j{+Bw?R%|%J`S!TKFT<;D? z|4)wiyuxP>S+U3cAMfKAC5>hjUTlKiO7ybtIZ02jkuZiP^{<1dv&rSx9x!Ii3s}dC ztM1X(Ma4hnQ%YN(v$IQBj_t@v&*VNR3B9R`PkUpp{%V|{JbuKiQBxPIu{z}ec_m0vFPgvdA+svg=9$J~0%Wu$gWccZQN zCy(9vq9Yw!3T>|as5v~1^`Go7v6D8frlU6xC1GeNW3l&&lj_N88~ZbG>5$_$9n>Wi zvJJ!u04rwmYn1(o7qeJYKk`~mrxA?iD(%;v=-)27c`XlJ}}E=k;58kKd` z64`|qGd=x0OlyKkQP4$Z_ik!d{Ir8b-c0dvTe@e32A%t?ivb~rsx3qH6Qns)a*&>U-P zDDSEM|5jbu+nN8%Q6d}H|C}@Z7x^F6)jx-#VNU;{uC(QB2-UEJ9=doqNLFMpX%q-l zWf{Z2ea%kYFLZHY=w!${JUP0)g8nbY-U24FC`cP^+}#}-cZUIn z!QI{6-3Rvp8h0Pu-Q67q8{FLncelsp?Iyc<|NePNcT&kc-F;5qn>ux>>ifQn&zUj4 z3&KhUcry0C6=B&QH-~)5%TdIJQba!<7a9_4AQF-hgNkNri7OdW{+Q(5dv$u?tf>~wXUs>s!nTK#uD<_H>iad9j?^{-4 z(*3Y5;d<$*;akkr0_LW{gbDVV3D8q_rS~1DqNDmBF=y?y3eUv;uoXzB2OM+CkPhzq z!83gq5EUEgd5+*ku8*aWxkMWC+$9MYM;RfVr;lyt0NJ?Bm1SxYM0v1_)aD zJCo%-jCdaYn5{ZptBj#+k&b{_^8;fE2uzjuFhtOf)BDlGt?NDHW~EY? zWtP`%M4!x!X)u58WXHDjo6=H{oKD4#?JtZD(?5c8ZMjMb$b@yJ>~$viDcd72+YXC93_AC9KhNenZ~!81<%Qn|6R!0gg#a{H8-T8xix-gcD_|?Q-Sf$5w5#2FUt>GoKx277A3zOZvlU+13RO!ZG1<;+qonG z?nAgU=n|Kh%y0X##1%5a2qOqL4gN*HPTM1kQiJDD!;pcs9q10R#}xdxIZ*q(YmCtn zq>a-yKlv?wR|jI6^89ii;pSh^wKsFaEEz!A+dX}LYVd<=QidwpHN@!sxy7bUC4;-m zr5)rpct2(=?nC$8e-Q_Ud%M&$9`#QIQlL>W*5mJ`4s2yhY#}+D$5i+j(Sb*?zF%%| zlm4hoe#F19s&w}4&r-X^%9s9H(SBFo@~o61X6nK!|846}V-3w@>*ShWI|HmFQQi+l zc9mg!kSv4%2~||CB1l7Kht)}BG;#}VrBz`L2?*8J5T!tZV;MfO-_I1x^cM;=E@4tp zEN`W3B2}uBiTxA&ODTbvYWNY=;-QYf;!}aw!ARCiP&erZ*Pt9H2HwyMKH-14;IF~G zz6LLml?p*P*rz(LUUUZ!`kQe>z^?i(7QH@G?URt{$?OVEIv9zm@T?_IZ^u-~a)roq zG?_I@&4?bTMd6bE%LqMb3*`XEfiZgZlUq3i*_PI?1~oQKdXW54f-v_bSpSX2))&1# zuiGiK48y8x92@E!@5?*G8mt>cq-qjbQsQ7)@R+of#WBTqQ*YjzsxZK6#+1X7!tTX# zH=`e`Iie!eebTA9eQEWE-@&sKe287N$lz-z5U?j~H7zka81YWlt0DiSF7k!T zR*ncRnM8T(`E*o6%wVZbA6gq1$8d8;4?(B934}9}S7H_~r{|lcXzydgTlH5B&TU)M zzi5;z;RI96B9W3*9lTjMVdUq*Y^^8Xc-B>;>Yml@KA{ZP@ zRL<1$)v5o*DT9@Y$6s=b|^#o1!Bf7LEq zu0U8(vY4)5oRH|3=M|(E23n3vr${TSl}VqEZ(O!y-A<7hY)Fsl!?De=yL^;x=}qyE zyKEkK=G3psa#nV_o* z9s|M=h#udcYgz7asL*}%;OSiABi9uT9~y9#wc6+YC)@-dA1-S@o}B#M6)p>6-8McO zFbGuw#)$MX9onimcz-gyN3)8bVx-T!s0f;f3X-CN0h~KJ+Qb zeFZW<%VKBdA4lfsO!j;q1-`kyqIAt^6bsz+k-NtP8`{3c7#FcU&Z`~E9)4ohzUlf+ zE08c$ZVgtSPT92(oRIx9`1+cfYRO2g_gK(tb_9r!DaD&3VQ4UxO7sytmxD zHMC!Yuug|#b?tbjc6c>h+GZ@4kl$a9=Wh~my51vHd3}K$-cY^hf)eq#7_WUXHNGyp z-tJ16Xo{q4V-Eq9c59?0#t7fnrgS}oMnW7MmCNwtOht#eZC71RvoK=66Jx`3(aRSp z%U~1R=B%a(yH8*3DZ~ggev#&7d@YdK=aG+biN7z4SU?k+1_@EVQpdo!mc$ZwATW!siuhLLy=+*?8vq`*^bgX63ht@;2R# zO08ECLr=@rBZ*ZZk%_@E^2=s8$qugBZo^d2MGjo`PB6xwLr+K>0^ zXAONn(?aQB5j~V2jk^$+zF+@qJdyj`UzZKf%U0kTPfqyFySG96g_r+;c}cf?*I{F; zCf(y@Q-m3+=%BUrRZ{=cuMXzH0gz}MuQ`(jwg0u{y&O*Q$!Y8lPL?`1@9D`FY`;2Q zh7?4Vh~x};1W{DH_v`myn;e|!f<7{KHgTsjnn2n)`FRF78e3)=!~Dsy-PoE)YPX?8HQ&%Kx+J_H%rJC{=G_(Fg}MY25em z)8{H>Ex&pLOo&#V8X5{Di71N77(|nl+67ZYZ6NyD z+fVyZLt__L`IdF4lIJKZ@pE)xz~Ei|;&6@H&x2WBi|dj-$5PMFxt`%**=5sfWz@x{ z!l-pypa;Q^<+;E8+kqMpwcdRqC51m8BoIExaJ)IIWy9)Z_LlkEWgMij^HKE%_qyuS zGx;!zFcpj`2H0O9nyEjsv}lYn7YKu}L;wb=%hze4MP-wW8w*Bgsl@@W=N_hzGbVa~ z5JU4%J+}YTNv=QXV?oZ-kaDNX<6rkn!q*ReQd|MSB55N@3=CBodB5v+Cjr#D(VSgFMR)^khtnpZoI+|!xvz43!WwYMp2;tp+D{faT^7eqE(uBQ!O&qj|O zPT9wkzj+FSb0$6+x`xjnYd#HAs*DJ^5hip1^!GryLXZy{)J$9iNYK{N7@^JkVvCct z?QSmTn;{BsjQ8cc)t1|mi6w>cYybp2X&o$vRshv35L+q3gV!S*1b_ySv7$!)LM?Es zv^)zD*nV@tKblf|l}jS!bRC#9YC1uM_^bA*X1J`g3zOrY5o(;Vr4h9q8eBC{g-}ETQ4s<2a8TPS$Kd{L{S~d2EsJ| zy@7xLQ9$$}zd(1*r$M)Pn{e_NP8~p`HW1SZG8{l~1%hJ{q(K*Hlti=yLBksMg0l%v zrI)z--DR{nbaTAlOz=e~m8qKmp+yH7F?VTro$1o>H1kMmkC;9uwhp}?Y0PMgaxrb! zq&(A$i-#_~jd5fuY*(IC>^AGXogNTFCrC)_kT-Hvg7 ztkqiXfa!qV4UZUGkbG~cs#PI?1Rzqb_^E?E=b`&fa&i`kTB@J!j~i~6`8|FTr+6hq zZ*~J^^lmaLr!bovKd%XN6a?H(qqq7(8B=!aL1zNdpoP`hMr*O=q7{(rtGH&_-PQ*L zKHh?~n6b7bZGJ>r1TOT7AcL@|@+~%0tEf8o-^R#r-1xI(|L(U_1L+nH5|ApUUB@0w zFt@J;Eu~#UfiT%#Sl|q8zK84gKRAwm6_70@l!$g&7-C|?g#d<&QZjCNt@k?IP(}5N zF92$Vrb#J1ubHt+@5fFTeH<|*CwJ~hk3r;k;A(0irUbM7`ct+|`=vkXu>`EjBSl+jrk^Ki*fB29Lc))MbeDJe zbPa*lt#|f@w9vBOgH4GXIe&%Q3bjB=`T~6J=gvZ6k0ud&U7Az@7AgiI04Pi`DYx^G zwek6Ke-@#lt-+MDTC#{f0?h)H`fEliLMS8*3&BJac(yGjKjJy?{k3Lmv(_@_ieTjW z=_PuvM+f5$CC;wRh3`b8%JQ34+2;iQ1;KXn3jOB+$*qmSzxNaF+f%Ly-#sV^Y~dJi z^?~0jx0??sIGfMi%9q&(1|JqRx=KpA|IQ=z*8`-R>;!5-o)7hu07RCT<(iFasge3} zU?8Yv3!dU&^7RCV0Gk=#^QC3M$8RgtE>n*hy)F$jij#;l5Rhn?bVe8e0{?g5YGhzj z>G0!{uslyAYvR1~ns3j2i@IQs0$eaHOquqz5zDXXPqOsM#2h|0qpf~3N0-OU@&l0* z=1Le2OAInLTAAt}7d=mNyQQ8DViZK1wUh2!iFS+W1pl{*zEdnipN*F>f$ElYMj%20 zm2k8XSOAxoPyI(dcT;xzjbR9TkcS}vUR7b@HGU%Zfz8Pun)RwajZ*lyQLiGuaj~P@ zdt^Dfh0X+$0w`(-=&o7%2n;Aco#@yX9(RJZ^dInSnBspOrKE@vqn-RYRiV==DCTtC zCy{?0P7{;GxHeZ;t<(NwSQ{klwDi@7oVD>oMM`!G7d(wd8k`Ufs&5;o#{2pt_ORop z_Ui&Kb zJMDSD=(y)a=8-XV?6(#;YQyB2M>V&@#T_=oxEEBf^XzeGz zzOVh6)v@L+RJm(K(thW+?Cmh$c-<7Gv+mqU)K=R2n0InJQfT`?KMj z6XC`aE)NJq%msjfgTyAZ!}j)+7MR^0v0E-n&n}Q(VCb3cqFa6z2|De@#t9mV0G37J ze3?bQ2dY)1JgV_FC%=!kO!hnkPtvDSztp3F#bxt%yhB{BydIpEDUSLcc_*eonV{PI zw3AbrvJX;h9HvLW4tOhOOq&P>K_wgT>vcY4gibxf+|gbhkC;xG`~(9Nmeh)Z;6f$X zk8~15%loX(*(df^emsjeMpOEo6v@R7`Xi1IM;U`&C`eXFM|EvRVjSK|3Y4aEHql{R z@^f4f@R^-llw&3jf1K!iI(g)EF-H=3a;&Y8(4bTI?P|Hf#KS8p$p#Yzc>k>6HGbif zukD{<4L4!INW56fT)UeEGlWBZ^@DVD_KYm+G$TbWg|7>!Ps2nzCt`R+vMk1|Q>KHq z%`Z<|PQ$EY9u8a1#mx`ItP|uw75?JX0ZQWkM%}0{nt!N{&iNqZiP>1+pGrTUJeQoz z%uHXqXlh=r?zs9hex&ztWYnD-ObR~`&N=;R@S1`K7XM9tug#*O0O~$9&@JjwN!C|igb0tA%Dm8Xf9Qs|)z z3c~M;BsAtiMvQ_p#05g48cD5}+{?2YnSx2rKS%s+k>f=2O2qyJ4Pm7iN)UM=%KYBW8d8;PEd zMQ3_Ldqp=~h81OPEKKU0rg17EN{PBhDq~rFmA9nkbw>8pMtVFi9?m?j)p%=18}SFeH#+=K@1Px^Z$8 zKs8B*T~yD(IUzk!j%|@)S=n6qW)RH`88|4qEV78Aw2MIzH9kP>=i&^Jh1p~ES+0qy zB$(i#V=!kN!3stcAvQz5nBGTGW06iR4iD6bW z!aAK5PZ7>XlEyJ%yIvt0Ahaym*YB`8?>oM+Y2Np*ZdH}-*H4H@kf0B2TX%EAROi@B zeS0EIX4MGxpEh#df-=ZC-66N>uvjJz6lOPgVhJXc;xdX*R?3vuIB{hFI)X7;c~%>^ zuA=ZC&h3S#M5w1Y(cz36J|SY|kU~hc(MEC`Ni5}53UotwPN2fJ2sj#wEGjxID!Tah zN*kpfeM1N92II(hK^}+!bRe$}7e%k+k!E8h4GLo;vDP7YWA}icrO;dTMxBH%8asVI z-%oLev&i<0c^A8rpf0DBZ{Pr2VTMwWk{}j~AO<~JIG`d_ewVM&Kw7@k9I@>!0I^^q#T5XAfRVlbKD4# zD#Ve@Gm&J-+Rc&SWfPM{RK1qDkZ~_fwSaV zYbXQ2S;v}!06&UVX8>$w>VN>YsAN=FTqH|jXR@?2T?j4X)KSV9YtdBEGe}k-5?U`R zyfI>~%~%rbBx@Fr{VIIB^k@gB&YVWW2n;5E)x=I8?{;t@1R5k(DtA+9Opul$Hi0b$ zoKOI6X)h|O5Kt0p7mZq)3e7kkmPOF{x`d33f|^R?H;^iyfgWmK6h;uCtWX#}pb&qW zA|lt&Cgs7DhA7;U^%r6tQiM&l9y$hCog`okS35ox0eTOM+=;=QVn7Kzoe;%T0`k-` znk8DpLVmgi7Hvh8sSZl|cSztMQvxT}5Ctw?FBq+2#45egEB3<@_U6@d%_ zL)Rk{J40oUN3yk6=l-4O<(l5X7@0^dry~jvE15P5K^@`+6iGEgZ=DlHpmW}g)8{2d z@y0Ea=~Om9i5h`YM+%A<;lqELk8kC~R7u3+=!4=J#LoxWD#|y40m0C86^ZJomUCf+ zzm^6`DxC%?t0lWTO1mo>tgx9dS}U{l?TZC;JO&Giqa3NqdbEg)0I7Q(LF^aZAVeD} z7;X|7lZb4UY`Q^;OPH(v*aa1(EPGRpIK2z_v<2J)htAelp2JTsZV`|h&=|)&%rXLw zN(j^`r5mQQCOtqM0s=xZ4fqWh2xD$ty(VU{Hk_06^P8D)fYCq`M6@ zeWrm(@q%dw!Bxcsc-Lrug&7)QmjGAGKUPf+V5oLVON1R24`U7~u;IA*uBP&MF#?aq ze{u7H31C=rZwmD5w=la8K4+mnx4Sb8(MUmre$L&#JC2IASCb8$7wY4vg8yhTxuc~) zWos>J~rkrhGWq zP?90#Rbl{Dpz0I{G(e_49=n89bkwge^y+9Y6mxa#U+?6{vPctKq?xb^*CHmRL*IEg z@6un%T5ayx-M;^h`7`v3>XN4yNQ$m= zm#DVMPPABJQ2IMQ%ovp>C~0V!lw=sp3}g{D&t=Yp%lUEf)V4CyVvvbn!xv>O+*l-b zt`>+TMXu;bv)Z#au`=LfHUP2o3r(iEkuMZZ&_>ALRb(3qS}?SfT5hRlcw_xSwz##a zFnM@@+B@D&kxg2XONFco`m~iPE=}>**x)ESMm*3tJn@gyM9~N@CW8E*aZoT(L#2pA z7E4FzXTE|CILe(cy#U{*$FA3`JOjaE2AOTvk$gN(@l>alvY4b~@T;=xfX#X|5i-DT zW+3uxF@n}xl}|GeOlFdq6cyaaq@$r};RcwlGQZUMk9qnS6bFtMga9vfp=B*lyFLzC z%&y@b5n!zm^_mly%M`Z^3bgF6h7Qdyi#TdsMeO6vh0LN`C>8<4r_4c%$V5V85w<^b zScru2Z!~laUD#*!(-Ni0{DhLBZp0YRkUv_1icyD5U$rrH+0SpYJq#{j zg>O1;oB=XXxvi^c@7EpJwO5iD>Lyxme?k0JHR0d0=>@+F6En)P;O;cbm| z{_04GU5b7xSy36n310DU&YK&|6EI;+FsGq7AXYCEN42YxnA9m)1qKMGNMNrfa|~=N zhNLl&L@-~#S){uCsLD>a;jim$x0ZO~=F1=N=tra>7ZnuU7s==~3!%2Sey8SPo~%Q` zon&d8EV+jS-#5gke|mN6Qz7@#VXwiTb2weHA|n$lG)z=tUp|Ek7W+3kq+x%bx6p6IYjy%$HDv%6fZ9SsghFZa~*Usj*Dh$V=1+}ZT7NHHcQ zwL1R?0lYFSpoi-egQ+9}x~$tUe+dfR1TrYfrkgogn05 z_+&jZeiWZFs}nIh=LHlIwXQ?RdC zz#MIcK||-|+RMw1^*+MoZP(FMmM*i}s3r?ND4Nj+4pmEPVKOM@jrDbhhfI{P*wW3b zo)mN?BhT#I0G-{`jz~$QVu1R;r${%*V)EJ&fffAn&<(e)O%b zKWl59TWTG-Jqyr@SmRPU6*WZcT6su}Cu41kju|Nm{~9FjvUxuafZnY!IQw_r%@R0w zBau|QTd~8Bzq2DM@xoZNuUc^Kp$kUr6W!F_VsB{ z8=d?p+i-_ac|2i{&;lZ?Yq3)m#ZSghqFP4YfAkaw>k|rEBWn`MElhKYBG=fA@4$eO zDpxijzpg?2D6=vOgTAx03-$8`Qts!$e7{CB|2Ehc<~4Dy_I~;L`EL>(5Qk9-@j+q< z3|O$|?4GT@_qVWV!2iTCMNwHijjlobKb86{9qdj2XXgkD3+sO(lvuya|FzWj-#bSj zYX7s;mpSh6)j1O8e>9bq{`5}gl<_SlPib7F&`z5;NV-%QB%uzA+F0r@QpA9Uuvlvp z9UzATl0E|?6H*7=C{xDKB{WKTG|KJbj>InSrF(0Bs{(SmwW9wko_$v@xQ@R_cZi9- zB((Y0x1w;ureLUffgH@X6Iwa$vq02b4?RE%Na%&6np-*ZPV4P=MSnzBPl5iwzt~h^ zv3h@=u%PBE3T69|Vincbl4tOfmeh$ML@rU$VR5Nyb%F4%es@WT3XO_7ev0jXf}t@o zGfGJa!UN0`TJOAV8Y=X^Cv39cRD_6|k9t}IjVKfVF##M+57La9)%Q$qnpJKEt(XOP z?)BSqL@iNx2&WqY+}Vew}!drMrP$~j|0n#f0kzt5)+*bVZ;QHUEh;s z+JWbhUzbIow!Q|_AqaM1baAUhcpF#Y(V9C|H2SrzfL;9?ZT>N|4z~bPBi{(2b}0&t z!9^9BZbAG9xlL4%e)}Wcnh##M+rx7JjU(k}QEn15pwshv&J`qt4!^lMkX=Ax*c44^ zeXaYju*cWYtm^iHo4ZHPsvUV!qobiDR3Ql+lEN1T00uX`|Ec(T>U5+^`8-^wORXAh z&*4Jhl5c8TP)kqcjU7M`t&i%&bGq?k4mtl;0fpU#57u40dLGvR@_D0~ddT;s$juwTKy zk=dt*%e|@%>&Br%r$zxMJ4^P9m9XN^aD$)0>H5OUP)>yba}&DqTkY)k$0y%dycaM0 zQ!N!36O`CN9GgC8Mw){+>OUO@0%+L`)G}KBZP*O9t|UCTIr!mLO!qlPl@>@+O0sPw zmkLt-fvt&mzdOXJd`sdS4S0VeV@1#|r4HNI_W5Gd@q7*}(PfL=o@Pnbk^giMjo(e& z3uhm>-H5B<_L}(GvA`!Y31KH+J@x-5mtb$=>G(ff0vjvKe}NYN!~9=e!heUw!F>FuOZbAtVJ=|>Os5}B zRiAI%zr1gw#d(5$LDEqCqAHStBXbhPSPfDwmlTzRQnngK$2 zJZ?5TX4}}>+E$j9k^&uDIYG;tn@mZmsj){Xn;)1!TBEf-Sz-!bnBx6y#;Sxg1p3r^ivcwQ@GyTVJ2KD8#_mu=X z9_g(kqA4-h>)La#F=b|HNU4Cujo)4s4eh2`=jBJabV!&~8#gc%pL&hgEpI(go(RZg z^H|*9#by8M&Jv3e(K>|i^K_2({^;x!L)b4%R6=jCBSo^!Y#42v7n$UDI0s#pv3H07 zAban}-QWTMxL{x`U!7ib(-nG}tuH*!n;r2-4d+IdU-RL2NLj%;d0uGFZt=JIsRy;WS?adx+Zjg*TE-r=ez7h}fbwE8*PFiWW!4WwAc!Ah`V%60r27!|X8P$vSTXy9VTgUizGC!Ny z%oHQd{<{9+%Z7C4MQkb<;Z?6z%gpHU%B;>5Ry5zldAhcq&Ud)}aY@QwyQ%rM-E+5B z0^i;7E!B79m_;_*=3KWy$j%yk`!(H|M&`pJ6-Hm5SzQBp1uiuw^>cpj&u^{aXVMCq zBTS9vruBpgv${>qC3+onq-Y3PrwHY{T?KgV%ANHKj$InY!$^2A7v8*4UG@De_kzoF zVwRUU9QdUwy0>HPDaw*Hql=nwJoBru+rA6#mc%?0Y3H$<9BoXG9SOWNd@NHM`gWI8 zzZ==l5x6u>H7pOSt}dwnr|WvBGX9E)4+*OJ33|P*%TK6)A_jlJrkRW`d&wGs!Oi~h zMNUtjD&tx{fGx3z%eOe^ThZfQjJN@S*Nl|b{5#}v}Bi>KEKH7B=LfO zdtdzCNn2v%6pFf=D-o%Am*sQjcsq4p&Czo+^0T{(y}Skcl*|Z1REEJm=45U{`G&Mh zp_R?+`E8e64FU*YYCo;He!o|54b#eSe(VyfvE7FV;bEpHZUD}xYW*VSHc&UtBpu-3 z<830Bz{uekd>{ghw{LndLIRAP#KsmUZ;~?5xRS#eW)lmMbTbt(c~-JnOPdH09M;g* z{Qp{Zh!!IUyg#r2;t?th_B`Ka;<>*DV?ts&tk#j&+8Cjas2>REMG`A?R{!vPVVFaQ z_*8v}$)8OYEL<hcskx6W9N6U zr=FYe)FLcd7eEmD=gt%fDCHt#s|h_r`CAW2b3aD^MA4AM72W@aIpOap%m`m> zy3kF90$jjc;?PN}NB~Q6z9pABe336>$I`N!V|KO2kKf)kE6{6x@OKw_V2&nO zQ?>T6q6GLZ1O><{{BnQWgqJvrR$!o~U%4rFU1|k82U&hT{@sZSN!WkwW9#ls)h6p3 zLHS^Bzl9(OCeQD*u-=IM&e8vc0S$fCx(GWu@b7pS<{|xZZOUw(cBjk>!&DtXBBGm@ zB1W1qlkB7-TK^It2(nYD7YdQZnLKxdkJ@qWndMDiU62scaY9GuiZLDh!XKZ@a+m?~ zc0bm;jiXnWlNNnRjibc8!|T@kP4{<}s&tNSpV_=MGjxOP#q6HA@y5Dq9DEPT%wG>g z_4tpRr8qI{Ew)03Fv4G;XA^`yk4F{OTBN=ac9Uz3I{k?{?p&(iA~LrI2VB3PScvss zzr!>gV!Mv{C;>JuG8s|P5F~cJPx~D{04w^v8EnvoId?|!2_b=#2fBG3jKAq!t@cKxAp(1Wj@9qTaA=xA z?#J%nzqcungM$Hd>{;}#Es-uEO#FmeR@-0WzV=aAA|fKtzc-8KKB2*wn3zxSF;0m_ z9`3OJh%f#>?S&?mb}s)Tz+mU(Wce>vgfH`d4KV)unFFcl{|zuUGHh&hN8Cm}Ee2BCgqhZ;3L|Lrf!1O_N!Lfw$DST~Bz z^xMU~sO;slzBsClsJ*G$$%I5}HtR120~y2fM>h_fQ^$QbMkbEK^nQrO&sR%|C7?Xa zU2LYe_3#``cp_G9-J+~)*VbLTMd$%oHMbEM5dpawIlErm=B5$xs?JEWHj^bi}A(OY}!tu1DpK!bBaT-r8<72T8$qBCm|ZCklI3 zOw)g{^B~P%Spyi%+p!nHN5xwP*vF(3YGBt_ zMs=aVP=+UJg*x(`ixhm))Og%{^%45op|#3{VlTGi`G~dBM^}O_$`f@?3Q61f7z&`@ z9adecOAI0hv;ixYC>-(06b-J_K=Po0zfm>ZnN(8-CGR4< z3`IAMj@N3hW4T-+&B*gG=PMCHbzE6I1;4qdrRYV)#B?P+ZtwhFdq|3*Yq?nPAD^I7 zN+liW-iWgjFQI(k#z#y_BSPYQ$A{F})4!Ai+@2IFX^yemZKJ{7x~Q&Rm0oS zQi8p|&=#bou6(j3vFX@kkZ%3(sH+2Gef=Yk#@~|L@)CKj*Iz>OyBG!$_y!Ja!QeTE z^CHp15Udyh0OaD%Js!qX3~Yl$qiLZOoig!@oqcRD2WYJYC1+2M?Br36oEV0|Qy-aF67z){D{OYSpy9(U*e0&01lm-Jz!E80 zvN>mbym)e9H8PV>a75uj!9*#vM96KnPAkf8C4EQ=T|f2%qUo|UDLXJDR6J4lu;>La z)~=5)t?0wnmQmf5`lyV<>YBtYU)KeQM-I5F4w54Mk0D8_(ikN-_!)zElb`Dg|t4vlC|AG}YY7;87xS!9e`tNK9UF;Xd{2&4`aY(o%4&*4$ zON-7CZJ%j3$VKSEiD^K~++N-o;3)9r>l|f#G<)+EIGu2X;;DXsg1v{nqEZV zrpml1hu3jnVf;!Mo{@6v&TampmA$0Pw7Hu(67y}&&6KldrLEbKPcHeRT!CjiayZ(} z%r|FvlBvFamIWivbVY6W^AV@KYf7VYS2~3XZ?NilT zhvk~CrqjL{bXe=Z-DQNF&0gqD-c;1}d@^WwF`x5yts1ZnlttsY-zhM!T^92LprWHn z9tZa|2%?R=zk6N?GcZh^`H&_`OLe8|5gu zip*CH%@~0gaQEQAPjt6NrqG%C5Nf-r#>~gKf`*BgDlqCHK-4TSTIzf|2uab0*;q5< z!+Bh;{iknT-n*1~SNzSURL2o~d#NC#N%u8QfSL*oTma8@D$@OM z;+C#&zW>d@UV2^Bcw|beh@babMkHVnTFgT7v z5Fu-^x)hT9u%K4RD%Qr%G`XNeF2%z<`ZGMayRabVl({RxQQY=WYmSj=cwGrjQI~{E zo%2-zWuLT6T6-wr;nh@cltqq?2S20cl@JWV^FCIjn&M7;uynEj*+jj1AWH4Wi;(wr zp!nXZI+X_6dTJA#U}jGDobktpwSR-uXT0ObLxOMqI+DnO#5`xlP+mZ1OGkIpOiu~- z!)w>Z+%2DO~zN33%0qfqjPYU*l^ z>jd!~Cc}jz8n(Vehm9q-#NWjQfyRoN3a$&`S!f0Pq)bV72smf4_2s!>g6bBok^RPi zf3_{n_OM~6hy$pTNFU7iqRcUvSs~@m6YN!fK-_u%GJy8Hl={bn;*EcdgSXc-pPL_n z>|8s2cwr#XeJHK%tmQ32?yh(wF%h8(6Di!_w{#84$+iCBcUG5VgQsw;0v|=TynUnj z85osK>cq`EC$bs`vIT2w2uX{s)Q{Vn!~2~>=&fmk9_Rfzj%gcNv&-Sunv##RAz`{b zbxU=U0{C~o&*EU}X8(>$*reaLE~whH$?qo}plCIi;iWjXTbG%CtXy_0p3sPyQ`B3(s;oooU&32zhw(JU3wj zkb;SQYY!x*ZMB!M-)u=!v+k^K!3L{s9;ns7w;s!?yhApot+@8@G`bs3bc~~K>6||z z1StlGWBI?`s2olEX~o_tb!$P+Vy2-cj7zkPkJ8F|q+P|S)VhfcQ3(A_m>si9XXd8B zB=o(}y_ij&-FB2R65=k!TGf8v+U&WJ?*Dk?mQb6F2ZG^F4o(ee+`A!iEhq$(*~S7+ zkX8v3I!wgfHKog7Fz9ohS5z*uSHSajw0PZ8@h=K|B4G<@(`c7S#LPM@d{e+?+ziod z%%NeWnSH)t1n$s&)U@o8*>ugM*bm1G$fsQ>3f!&%oFxDnLTp(W5D%P#!c4_ z>~DssAz8bAPtE!6`V#>}PhtqIMMecq3vcT15P~S9HQ#z`QKowaO-&Q#)tf&y=@v>u zuS%o1y5ae-b78W!q;FXZ4;V&Rtjl`{rf%Qj^VX=w{M|3A!4C^AsNQesukf=oWEmCY z0L=!Ce?DB)r#(ExB7}gxdb5@?4W{Vm1GP4-E%+~F%a4hz?nAD;r}J#|Ppy3`R&%E? zsi0+mt{Enwf8TY-pD%?Edj5DZVg`a@osyB}e>*=g3or@EKlg9&4`+3ZxWQJ|`P>&K zoH^_F7imqU;28+&39Lh`G==cW*dxR^4{Ghhknem(tMBqvCHgR-oMj}`UFa*TI8mc< zyL3)_ej3b`1+M=w{}h!EOjXoxFB|<0l6PgssmC|6YHWJ?yqIqGyQQz{@FwVcrZOT7oCKbqLi8_`Moa*8^aO#xyGR$E{gK^2aLO{YtM!-x+6W$MD0QUSa$_ zU-mFoC`AifkhOd=iC5&aY5%nRsA$#Ey|r3ivClfmA;hKo-IL^hyv4+BVpv-HX0==c zhKG@gKmQMze^n&ACL^+*vxHC7P{Lsy6&`Aznz~_@IjI}sGFjb}?uD8$KiK)5!1>%r z^Vl)?Fdb7(L783cKa*-A|a~>^py1p0|1fpe+$)O z|394rzsT`i|K~Z7i|xNiHrT(+|9|JeyZ@>^c{(PIB=>HeUS^88Na9-+&VYeC!IBAr zXNojKHaiX??bb(gKN;FlC!bL{)n*kcZ^}_7+a|X}c+g7?aoLzafZ0w^BEk}6&LLoH4Ec-To5(%Od;v znx1b;j{_mFta9PZ<}@jQ#R}2%7IG69hlV~^iekiUD!Aa z8S}jXv4U1}>ta}QkB^<*7aoJIHUI!NIFa)v`SzqDF*Guz5JQpj-PFtcYX6bcf2u`$pK>jYC9IUkkRd+_!qKUEOYOUu^zVJ7~Yx$(&1kpDa_^z)`jUbcRs;((qrv398e;qKbnpUyqMap9=G*ePi2d*L~L-IiFYg)Dcq9-=5;TK~>x%gtN_c z#m(^JuUtupvzq&0e!tk!+E=YW6BX|3X4Equk>7n9t7IJamxq)>ku_ z_QKmUlz`9O2TgJ4jc>w6UOLN<+aa8&@lURa?~nkjt}`csy(zH7NAR{X&di_ zi^oZDII}N(aCmB^vyl^_k)!!_58q6|B=gaiuT~vX$%=~n zZ5=dtUn9?_%jSi_1V{ZM3)JjqusEJw4{_O$hz+aOqn;Wtmubx-W8%g^b;Ca>bh7H= zL=Olu63STht&6X(XY;!u51C10dEKEYw#;Z2Z0$Q4BeL5u#|X?${SjJ5pW>6 z^$He=PHnBHpyp?+nqCR}=EM{zY?a1W0s$GwF#f~90v}V182)~gQmS4cfH%wN7(L3K z6ae~mnIaRb_|PkP=JJ=dQ`17H=b*5K^V>YOXx&AK!LrU8v_7Ngn00XJBxw-ovU{>O z{j_VkbW}g!q`w^G0-5_{H*gF!{y7PiH^xg7Y=OwPjxUPH%^5Oz7)TFs0|zZV3itvc zfdZh{nP>1@Y8>8!pn?K|o=|i{<5*imWR{u9z^U#kZbacj()gxElcHXr7kLOCqE!U% zcn91xhyd@}3ZmPPgW)LP*bk1);s1WV*6`6mfbYI@VB7sp`%eFEEN#41+{bh4EtLmM zZofRk9P8LF?K%8s;VUKr#Xr}4eE~yFL`f-LScG$e3_eU` zeN(QY;u3glH<|Rc?7J!6&pUK~DLhAHfMBP$gmoJSSBf9j$cL4lm$Pz?7A(l+!@u1fKQ$1PumFA;JN(g_*#v7llilB#who2~sci13&Y11>S-qwD>?}CLg z1;$|dhsL>TYGOU`fVysR{|{wv6&y*BYzvl{nHgHF5;HTa)naCBF*8Gpsm099%*@Qt zVrFVFOHZ>qvpe_QJI{7M%E~RRDl#%6)5A}C_&H?53*l806^rIxu9?RTAk3B0sRc@! z`~tj(t1y+)Z8kz@H$+cn3=sT`7sOqE*ETSruK15en9bS7H0H$xK1Fl$`bpi?Z!-DJ zHd+Q%u796Do=|?5)Vxn&uypdcf(07^Z%SH9Aj_m;2I!x1j#|`PZ?3vj!Ge=q=W2wN zcV8(KTR;6h>(5?n@(2VybAUwgbA$~p@IN;VZQ-A-Jsk$(?*d}NeNO)L7FDbt9Yuy& zZd?~PX{b3CA*G-LLj7~l|4OW?AxtG&98BQk`#y>8WTbMzcsNs1tQFBkzhj^zYw0mE zJ%9 zv$fcadiz_0pIUTNv|j?g((+%*W*whn{=twu0Kle;z#uX*-sF_CEuoL^R;$fOWRY2x ztS0By|1}yix6ypNz5h7-mUeBOgVe{`fl7!#`F%5lKLWdSK1EhO=3GKR@yR+~@i}B6 zw-Va~JQ`%a5|DZ-mE-k8tbW*4ANF-Bs~e31T=ckUa|0I#ERU-0;&rN0TfWBQ#QVAR zBpf~8d@^1tV)eI%>p2Py;=we7x8v8y*S&GLX7V^yXhy?(bpZO7(I2z(HO7Hsf_TtQfnzLs~Z?hh@$sR4!$$nUuX2(8~RHgxs zEofrsuCrb}<+YP{Xm^S?><@z8kl3R`BLP*YZ@g!?!rxM`?;==fxjXKW)n(mk{LFEl z$6TA*NJ9D%Ys#L33Q4!3k!pe@ml2o!*nC=@b`LSj4Uez7cTzUgKb#4L7_6nKoQhLA z{Xr~$_t#R7wcA%h7CMe>4d1$pePxPurYkTx5hU*1I*#nozw(>YBEiZ$Z4u&+A7qhV zQ59M-R&N*Bhc!l>2&6%dH7Tg*P^mHlkdC_Ry#DQco*-G1@9%cQR5h4V@!HnCYOTDpTt z>Wkp!_w&URWQZQ5ONfD_aj061heKa7PEk5SS_!LsJ;k|Z^JP>TXSJ;?Dj?)HIpf9X zrOMom-K^T7NPGE7GioDHQi3?C-JFmcZYO^;OuG=--jwT_Ir5QQdq}$bMlWoK zrBOFsA*@BAhyl3B(29NN+g&*-{6wi$$3fT3W+mimcn{Fy8cNx1QM2}Y<@eZZeNZm0 zkr@|)R$&>=)yf+#t_4A(Xr>O?LGG3t+u99&k!dXMYg=v7fP2qAl;7oy$Ek7X{7oSl zsGValqhYfU7cztanI0Rn4x6b>KI~x2->&X5dEatFApLl)gd-if!Kh}(7KjXmM#hHh zoX}uE#Pbg}kOW7;S(Ky^2lSwj0{kTXf<{mXUTRIv;CG_haWDaZg)|ZNF9x?^azaSn z&`l461vg1Xe|E$KngnQnLE!{se?Me@!6jUJgXnpTz-+tZe&HG(@5G(;9Fp>RH8DsO z21h;ABH0j=`Wi9JcNFk|&=My`5D?_h&@~p*w=D$nQ6{$>R~{hv?r@n%BMuySB4$ZM zayLY$+DgCD0NSKI@jN)X9xe|;N&vvmvD`M%OQ06lz48lG_`JP8uhJUEPh%TPzr-n7ZBFx-tSmiZy!y0%jfvan|1Gx&_{ z{4(TAB-Q4}-!fxq!elc*`?e#?u3xC1gP-j05y@Q|>f<(5Ief)kh7LRIQB|?b zIFa%K7s2P?+JA~p3Sgx;yOE%RLnY`JX}rGV*2t|rb3C(K&?tXU6w&Iz!XIfA&V$c? z+6aIk=!FNEWQ--?a}1Ha2+MEbJG6rFqT)PVjQ?ENS+iLe(BzJ`>F<>nF)GQez2$@d z;2(BHR4u;q-sYof9e>pL)NX~Mh5X+?C_MBvh=-_WpI{_kH7tX~GxBdrvoolql1$LP zPzG<%q%O8!ESvvRdePR}=D)&9PBxBzr5C@<|4*5+_TMvcZ|^3xv}xA7#U@CP4@xCwQ-PmEy$%DWhJCU^rB-o_bdqss%M^rTAO z`i64p+<{>Uv$eWdYzM}8qC>VH`|**e%8nw^IAWn@u>HX%8N7e2)Q5xz&*52vs0t?v zc%i5 zwp~AK;rSd}f{}qqo-DuodkRUjL%sSOsmJA`$>We|4Ye6FIu6B{Tx*P1x=KP(V$fjy zkmH_=kEP=!#bMK=DFBwXj($l+o(6qcJWVH%eJkIzga*3n>UxI z?g-i8D39=xFQ=;~8YQ|o?Z|K3yx(^FKmmf3hz(9$p@wgXW>*?b4j)e*$hV-$tgme* zv|wtdQ43S@7x0a3=B&Vc8xu{ijRp*k?at5`RCYNgc}ZxzA)_@lg<>&HrYfosj*5h@x64^C^9jQyqrEG%KbSfS*=auVzIo}A_ zse@0Q>$I?8)xyr;tLt>garZ25+Zes!G(q_e)4zjGg4~+WPgd;l^$+(AmBOFx@d$>z zRha`R1`2=#g}3<#XMtVLqzs;>QfZX_8OEUte^V|8vz*H2Tg&_1>P(&YaoZ0W&l0+X ziM*XGE^W`9zb*={Skg(K$Ej)5gyX)V}~B%p9l^9w9QbOmFbY&@>vacZS{+0#YWz(C1Y(z2BEq@1t1CeLvQ0Nx)rQ$9(S= zvvs#JJ`R6b3Qf?dwNKMsEKN>abwBjBm&@2@XuN0ME)%lBxmp}_97+k3+J%jf+mCfQ zT0XCRe)Qc-)cXv8 z?0(q@HlY%3m}j|M7_+<&ID+eu*N5i4e2$(S0*e48#vN$kQM}bO%e6|X|27~$z1NT3 zPGb8iJU=Hl#lf)2jZS|4$gll8HyU!arBmWuzt#FQ@#>0so7TQIwYfp>`>LmRC;U-q zDKVLwhHNVB`W2A+-q{VoJz(;~!b5<^pYTOq19WCK4lHb4EQsx3NT|Z?6KaGa14HpV zNJHj1rZ>~3kYG$;+u9v+4uaptv@N*>Ca8RLZx3Mu3oRHzzjWpn8D&KI`PCbI_6pMt z20TcRCMZ)V{w(4e;X*RmsB;H~j!@PsfeFjUF-wgF!!&v4evQ=FiWW}4fek@8wByc7 zJ4Z9^kt$&(e_f-ssVUsMWAPONXfMJOgFv^3wd2de+|-;^J1g7M(xaaFU8J{pQZyVU zXb(^!h${an7@tabf)SiVnmP|X4;<`Q1V<7%Nmm`a8P`p>4!^y(cd$|D%Cb$>G;3Qb z=e{aO5swHP1JqemX>(Nta5*9~HyruByZzC)7ZjW{`Pd<6JeMXIUIZIbu@3+$jbb{- zI3!105On>GK9q|GIS<>D|3rE6P48+&g!hIHy0f@2$Ig=57=yN2r5rsR%2 zET9e!$UsTg zf(n~t6B5l0`sMFN+tNjJ%WbKR9zy$jv`9y&0dJver^cT9!g>lr#qcV%#usgbT+3T$S!CL`+@6O@0};j( z*TA9*_9iA_G7vgLkZEbjke)LR!@PDw@QKkWfu^H_JTd|rIy7ch9LPR)_ip0X zz85d4yMg56F|8H5EMKb%IeIPpf&J?F+2Z;!l5Tef zYEgo{8$F-=xthZ_u}B)O*Ve*JJ>L7jo@%Nto-0Q67boi_KRGoPr_ZW@1K-E>H5^=v zz3z7^Mv8SuUT58giif;n#R2-!=o+EZ_?tEe4KW-=3>6iR1YE_fx+5exLBxP<`((NQUt2G|?$SH^UiBHZw{2RC_$rZg;kK*cJ%hv2E*N-dqFIJ9O9%$wL-;E0W6Rj4lLC6<4yGhlrP*t^d>lc25wXIlk}5t9gr#3 zqoPhSbxoU-PvBMNRfD^Jt~gYtSMG~PnA9gUMg%L(=xBtR-Sqp@+FN;CPoYAHQr&K5 zenmZfK@iwR#ZD99tPnxRvnz7aGqo!ZW7^{}Eowh_r4_|d4d+#XS`WfD$5J9{4c@&l zLBxFu0n~myV*6tjhXa@a^kNu@MvVrDin#WTy$lmvjKI}yT&_oAb z7j-`>P&bcU11f&g5rzz}pIkT3duKt+ymA59=}o&39a#3B7?g5n z4b&lz3$qrslO_i-iHGWH>r7Z)u5lzQ1wdAL8P$UV_JY|iS;2FlNw8Z;iPfpJh-@dm zBHETtozzrZ#c;O_(*!>gm=LAZ7!#(Y0{M91@30PO*$Q4dFz{R>r9QKE*pP3bGD?TL znS%~P&pV5Ig%$5Py4tn}ihW+!VybQ(K#HIp^}3BwzWN5wlg&3JxTvp$)nFuAF%Wdb zB5Q=4H(A=NBD9tSq7C0du_XLAeMs=GrQ$Jo-w0Yicz1i7`snIbw}V%%Rj1>bJhJ0A zHC(mQ7hr|d_gQ&BxG5}{@a%1fMG;-MlT*3D2?OB@ESf4>zqE}gH7Pm?I4}?04>(`o-G}nyW`@ z*SAM;SVki>YJThZxGMn!_`Vpxn z1Z+0``WgiLDH?l{3O8IyhGP%HoJnM0*?-g1M{Xf8dljBmb<5!9N6N-g+{|9N^zLN! z1NdE%{K514^54X(Q07^FN{U zKg|CKo&TNq6Sn_f(Am>UX_;WS`-uOo>DDO=93M?`RS`M{9v8JNPFS%4mA&!q*Md0# zx_REI27x_qHj=8}uAQyP`#qHmK+`pa+`=%~1GPKPWSC=9ajE?L!W!`{F(i;LIQ z3emDlWPB`mtRZSwTiw3r)a?E9@grZ%79YhT5k_|gk7m&hw%~xsBpLVl_dR+D$aE-3 zB;#v=OY=pjtfx;7V~s}r)!wsM?xJvXU6jG zzk<%*AQfjBjpHdC{ig6`Y&UHp=nQQWy8MTK9U&!>LiVDU}jt zo8zNaK$P((iKib<3Z_yWv-?#(Lr2p?qw`CngDRq6PTwHNd@@H@Mf1WZqbUru&~Mm0 zs^Ab8Sb0WxrKXPai#XS^8`?tE2$A>q_jxf)2*3LkJj7(8s%O2dus1y`^izZHATh-w+9J^D20V zYIyeLhXuJAd7&{Hwrbtutj+Ruo5zb9DnSK<3Qo;?4WXN{pPgtrY*2FNw)M?YE=D*_ z4knA)SucBt{n2q1-|-yTow<4Fj4+8!OT_>^Cq$L?8LSA}vMNOflsKHGP0wWhYzP&? z-aE5q(U?V;;@D6N>^VycRf%CT>2lDc9tG~ zKY(2I9Qcpxo4QF3Bu;`Es8x9|>fj(*9*vDXX1nQ4jTIP5pI|L_KgsMBlMb|$?5Iy2 zHoxz^Y+1HjZlKwO__`%sAcFWQeE#e#yxjGp)=4y#96Q2x$%R=b0K(!h2x$Abi5$NC ztlhBnJz8k@Hu6@=7ca=$u%=zWvIm+GUPh8TQ0k(n`B?IsI&0k$QK_|UTtY*J_cioc zk2eis`Yyk2uxVNHg2E#I1y0+qcd@-@(YYlVab_L#<5X#g0U$5^&W;bJAG~zlXCH~y z-uvMu4XV;2D^3>|8PG4t$tJ`Lc8e!{neNkyf-%Nx+TqH5m0s5PAQsc>*fGp7V!$&o z&3>c|YNOj9NXcZH_Y|m^VLQ?O8E`R?HAblzS09d*V$6cEjkq{%m;_fSxvIjuLp=QH za1#$t*I$`jfkj<-D>IAi=T8M&?1`)Ue3-~_y4iBsQadAPiUI~eXO>GU9*>~2gUk@w z%st_O;e3~CpZ1w^xbgag2=V>HvC}?oj0u7r8O0OBO0aV4d{6n^m+*lHGi?;UJHe#C zTr_&eiCM=g)vRwX6URR?nGJ!Bz??rXsWg(B7DnWdK*N5-Pfp^f`gHSs=- zfH*7x|C^uhgnP2gX%6z6-jQ#;lg4JwqwMs_Yy3BpuPtA;W$ky%hmq;4zYZPKp$p}_ zJ+M_J;adZ${um-uE8LcysQn=8VDdPbP4?XA{Iq$;`r|o5Jzs;vwr70g{47J^-W3(T zAcjUQ^_>bML0azAixIt{t)g~t^k!eyxoE{8Yn3C(Ae&kBjjDWqP(s%!I_B`~=Eq}J z*MeD_3?;L^sMYz-qmH~4yJHS{gK(~eN5V29Fjc+@c}Jf?f0!%HaZ z{2Qo<5Gs0nfuu1?1JCO8UDk@$lUGB9m&VE-j%E4_Zt;WPk$d`85RVHom;JCB)a2~Lh3`#f>mIew!Uy#B<{{JqWX`mRpjDtDDh2UagNe-GIfP#?2- zmb>D>(!GyjF2 zu;-RO%|6Nf?UV;atL?ejQe~QLOo6?L*tmI=-tuI&)l$$znZCJC@b*o^KoyWiQa)ihPvj^^L}77N=&X{Jvy%EF0>fev~6-sNz~9Ra_MXvi0Mg zNFvA=Sl*eqn_$q=up3uR&+c2eR|<-#{%_`)8(m|!){9)Jom?b4{}&fjn4~SB3gt7DtkA>GeUTb0A}Ldyhojk zL%Sm7yd8C%2OarFCoinxR0A=vvE+bgf}iC9JVvF@^l~it@$j#5!JDWJm;ToGb9Xu! zMLlVEIv`al`DSndW8`P;oP+;3Kx3n_dnng(FSG7yAMQ{7Jk^F%>8Y;=Ax-!~FUM39 zthT4g=D}_xd_ChjAD$2BFmF-$mCmy*6{D{ydXo4`3JYuJ@rXOu1OXN!B$ShKwAG&! zHy1zjiIfI{w%e~8TKqpn$z~=F*8e3+X8C{fOaF)T(!a;ZAi#gd$bW>S!Gw^1?UZGu zi3v*v4EWJcPIiPRBS_cSlS3Z1+6nY)4fcG_LQ(k?dFI?Wao=x($vnJz-)}M`k5^K* zB3&$jt)m&@gqjd1`Kv?zXCv4HCuHvr>FrYdo9&z_{^>;xcQhV~rKotd_mm5zt_Vxz&v||;B%H#*oQP%r46hpgn1OHE5{OUc8;&0$iasjEz(X@_|Eb!B` zai;ak2ju&VptP;eAN>DmGMt=^{w9g`!F$I4ao#w=klJPQHkX_WO)Ujd`~^zH@zR< zF1a2vJil}WXjLPt-RO(G{Nv2c`t=V*B(yePwr5HmGZpLPp^4$i%|}j@#NSSbw@!7s zd*44o$j|}6sJ>*q3EkTuk&Gns70R>O`SwGv!)tN@n|4@I{Qg~r38m{DUWY$ zx`r_PuL(g$QyeD40u?IFW~?$$K$`+pLI=vXK&FUcBr1_kRc4g$De}sVPA}mwOBI3b zZ(2>7Z46w+e8(QogKs7g-KX(gzC8A$P@y}OPpkSM@^D?R$y`vD9gFQ=i|r0sy6R8T ziAI+haZFR)-i`)~;dMw&gxnSmvM=NlNKmuNXnbouK1A;h7tXIg z9JJbBab>$^miWy6agoWxnhh@2gh(!w%k&x?&MGxb}nC+8(%^Fk1vK~ygzpG6vV`U)nOE%EHb5d zy495p1FD*!kUfkAODkM<>B!93_%-2@kb&1za_q(rEC(xOaR*|>oR9s2wkgiE-C_fhgh0Alen@QIQr|KVPCsN956INrR3YqR48LzfvAlfr5 zx^Vp4iHB>@nEi=xY)f;PtzRqx>VC-YXQ-re9v-aOSBH3DdD4hH6bLHsdL{tMi53+U z#Yk5SVL_DcVHIo?A)KWdJkl2Yj{XhtRF{ZR*}=0}Kc!8QebG7u~&&#FTqj45m^ zTVp?!NcoCqKw+*e3eQf$8iU+O^Yya!tFkUaQB^7Y$$XKC3wgMoCDI)j*!84gl6FTF z5dv*{>y621@@GG|WYjDBOgm4Oz|~Els1nhToFKqNHp=R)iB!Ai?5t;CrG) zw_Wp(eV)9bpK>j!+K5asbS}QWB=|5)Z_%iutGKU^1Ze50VwdgdsGrBWL(yji1g#`d z7oH=U*RMK}NKlc`z4GghqXbN-q4-3Qle6O{=8#2qx#1|pVoL|BKlGtGb_}poGN@3U zgJJ|2_EI0*uj~eJ+G~2)?~Q(+{BTQIiLAneg_>FX)pT26sr`VBhf-%;!wfl!o}IQJ zLO3=TBDoWs5b$$XeR+V%eYb9F^e52iCgJkF&R9vV={>i!&qnPw6RZ)lKJ98Eh1c9p zNwb;K>9iqITnc*pSfOcdF8HC#5v#p0A-rWZ5M05LV=&6;6cSUB#eCyd1WKy*wc!#& z+BEr~mq0W&Qdc13+tYwqUgt0M8k?EiALe)9yqpoQ9!fr9pi7UwH(~8Z;lv4XQZohi z5al#P^y%6O#N^**yF|XYFs)9XH*^P$r@T*Ls?;|v8m6+p!@7p`vgEp@8T73r?X6cRJ*J83QkK^L1ZA%02Lc9w6=^vs=IiK5O-}meZMnk?NcqO7%FI(L zDqOb*CMHG_2Pm_EA{|djl;?=C>+?Bpg<&3|tcH>(9zvWL%b$bJdsknHs-N1Q^~s0y zblGv)>4~3{W9JY*UdmlvY}XeWcXV!-E@+b(blz6;=)SKOT@2$*xz_HN2h!i0D`PR% zjT%ErE!C6s?7TKEaan98NrGQf{UIJTCLOg$1t0TUAn~&U*s~F+1N`IgsL8)Laa5+f zPM9gap(EnI^u1rc^0hz2B11%A8Au&$+8w^c{8%D1pX;mTsvnw_pB2t&DOx7%a=TMr zTa6L#ZgY5;yP>sJJ>+j6(d#Vt-1E#l<49|^(Q5Qs3FpAFHV^Oaei!u?F+CcSadvd|Ta@Pc4Pq}s1!(|sn#}@!m)n!uc;blei1)(@ zS)DW9M7EVqqt{6|M;4A?(h}yk{uX7LZ!Uh4(5RxSXjByW?iJ|;7U<~pxBOLWKOXQK z9^&%y+<%Hl5acCHv@*O|UBr~#KvX&>QAVduw4SEeniRe4&dyj9q zVAZOZ*Bmk+f))3}{;qS<^D-!)%+J^w1g&PId2@cxR9Na1Td7-XbqH5q?z3`s6;-g> z!DW*wUw)_uz3eSf1Ppne<@kh=`JXBj(6_xJ-$R4ycYM}Q8B)8i*ra) zBsId54_kU~gXJ%aEg0c+;%H>?5oyX@)|wCg7I5eL+8OghiFL}mbHPcoB|JW8w~ZQ; zLlLO7aG3e3Y$S^bYB3v<mS(Y;};71h(!D1`NlQ%ohmD+!`CXHpgJ~BzS2Q!(eDPcFEK3was%R;<;y{GqJ z9+kw;Bf36Tc@za<6G;OJ4`58)rUCeMrQDV`$(BMWo%dLK94FucPg~HrH@HY_;8*#- z0sd$Prd7{W9%E5$mi@Fgc%EVx{WdC_a0e}JR&u9|*264@)EaL9@>{;3=!0Lc0UMj@ z6_n)71IdYC&M$$H4Bekk!fyW!x*I6NOlSr!@0=D$!y4EPO~V z!#r4C9{?{2GYTDK{{)Pa#R07Uw&(eQ`FJ0!=)02%4+l^%O7|Te#o7F+fC|1d;{Nmk zfRte*1`!E>W-HDejQ?G7;?!ca)72))ock`|Pws4e3-W&ZFle7C=r@pT){7cPf&-5I zB~c4)mOi@?D7tBT?tL7XHupg9tNDD6_$3TlQoGphvK4srcAJV4m0t=MK#UXC?>8V0 z3AU-LeFFxrH_-Zge!CdrW!}1|0}8i&8hH8nw=YLbkc9$ z-+b@-(Ko1+{6Xh?x$j+e{wafQfS{)7nl-W7ik|c9m7O|_)RfB~J)NZc(~PaiCZfxm z9c8o%(;!mpi@qn6*fL8k@5LVi^t?(}a_{%XtrmTfMRjLOAeJsau?A3lS2+<&{Zz{1m)pFaM9GXFbg&3{u^ zW##%;ts>Kx`5$5CzmwuYhD!5OTD8%sqRl9dWf;4B>I>kyqqCu zQ87AL6heg@8gjwHj#ngrmUP1o#C0DS4GJn+Xz~bLC>HS!W-GRh|7F7l=1-o?DK7pA z7YxOp?HgO#J~6M%j{MIbQ_qv8E-Sk~Xz;&9{7Ise=ZCysq+%lptLpW$(S9-rIK^He zET=ms$5IzItP4X@bSp#GXI<8hMdU^zA0i|uNAyDNz5%Du`V-eTUkCswoSR7c32}~G zF1A0M2%Aa&k)f~Q4U?i^KPn^(OE{N!!0U9(CeeWmRyTANAv6XtL6K1tYCau8bbA~0dRtJr4)|es%5vH zeC@-rQ`?G6JvW88N+|*;k;fMbj(;&>73h~tPP{ktPm-ZvC%Q9 z#aJ0ekygW~6YEgC#;k*gKetckx=!!R}4%B`0j+7YsxWFr}MU9_R_D#F(qg`QM z=z$b(Ru6>*by!uu=CF+jq86;eT0L*rFzQnaBtx7__P~XR<}1CUsN!tjS63|l&c*L5 zTDQx(OW^!g4*I%o2{zV+Z4-;qeh6tXi1FlAQ96kAk6OD@Nqu+JJvOU~UfTGRLQPrs zcEQrWwLuJQP;jM%KDd?2BVV(X5sctiV+UKgkeS{1FfF^nMpMdI>s1=HsLl!jTe`rY z=@~&SPKSY;M9CyK7;FJdlcsfk3|-nZ^jIO4BuRkT+$vsDGh(tYx+I)k72;^6R@Os9q% zLt@jqWv^6j3tors!=lPAokgkAx(%#mS&I6{iW&!Aqp0Fjw(_b&H6-0H!^T{O#w2mjJ z@njdA!f1ltx37DfzhYnx$2h(ioHHY0T`qm<`KOe@lQnk6f{9J>_oEEl2OiqMg_<~W zG9ZStlr;5|Vt6KdW<3ph&GCDi%g>5+GzW5vVkK#&I~~RIhJ%c-67*mzkgrJl_YcKOcoj?()YCoD2lVJVjRU%OJICc zhLYw$Az^4@IxlT45KwxNQFjg2KIJ z8tMu{K<9{+N!6?D+62%X>9C*x6%2I^fACUeTFW)_d;DeOAJl-dLPK|loL9m7^=03P z#w%9O=u+5tz{m$?WZ4&UtfF_W@f!=I%{p0!?@G+nyZECy0=WT0+l-;$5bznx$@YlA zIRGpAzbyisU%IHS=H`yJ&i}Q#fQyOspF1SJtpB(S{QKKRFpYn{ZCsm-z!$?FzTQ&O zd1tR@=|8t}5e@Py&wFx#7X4cgAcYJHLPFT-CjYm3lql9H6lyj<2-*Wx?Kd*msnGQ= zefG0+)1i}-lgqNB>l%iZ^f0ST$ch)jBV{kQvUXUH;~}l;2a0bbecu#YLrKiH9m$w4 z5uI$AanCpPA_oEaw;m=Rdp6J=v%6v-~ih;%}<+>IgJJq7dBJm8&(#X}d7UTQl zPA;_m0U<`te|ASvL9h!%ky2Qd>91!zUVFIDpNzu*f(yHM=J5iSdGyo1GxL+8Cc@G| zd|Bnc)?y{^aEH$#p@}PW>0A3QDc#@A8qOE#TldsONre}$R(a)VFzWO3vhEm?&aSZ5 z)D*npq2Ii%_&N}z3g_G_PcyUE2%N9R!k=ZLsv4CgAg?CM^crxepTeE@bLl`8=em`v zIGXAP{kLGnQpHGTKY!pH<$-t^0Z|@o+%(W3qlqy+&emx_VTyF+9Y8 z1uR9FJ_*%2G&LFRa@pq+CkU7+FGQDgl8MlH8`R*hvb(zCiCayJtgRLYB%XxG*vfI$1ROV5i(Bybm7VJ zNlb7xOq98rEOX7Z%C0nPHbScAhl(E@(fhe-b~-Cjc^w5Gc|9pxND5Ca1r+L)Gk=`7 zdU5U}hk0dJ`5aQD>iS-`<@7EA?nf#q(zF7V8z}R2>8{^mUGeOyy@8~)N+zGGA;@rC zp~#4ZfDy;g`2EM<>$QFd@;wez`dsKW_^|4T5Wo=7BoUDD-2cCaV<}Kjub&*d&>D*i zhBrU}*SGa4Xw8pD6TX1&2}&orqZR*SrohU?@xRhdurhM|OV#)v=6`&4|2>35s{7}& zo8fMUzMMJi+r7*eayTQIhC&P!JZ$LwGe8OMRk8BNlEFB6tV*L@vGnFe@?57_QLeSa zzHmva9TAxavBLhmVvpF~h~XM!m$fYxNP;X0>MtkWY%1@^==f~BZ(VT06D7l z@v(9>dFGS-(Y5t@@A>5=6BAj?rV0}JTyf<>Ljf2BzXR$_*(oW_rZTwVy`_}Y40Kn# zr`n(4u?}U=jrArLFbW&07+%&4B@7%Tb5aoQc+~r8@snLMZ*AyZ8=*vl0YU)3D}5aX z=@WMeE2ZCi`i}DQekRBOR21)w8g!}1mkdZtM1v2#9mLz4OUJIs1G#oReQ0JF353wd zJC-u4aA1t`>Df;zpVt*Z*IVO9IW`4pJp9@0iz}}Sc~?(CW1N7{nXq6 z|E`j1pmto`hXbGKv(=1K8D)1{1|&8r8#9It(z4R|Y;p1zf3OG5icwpi$8;;5zMUHq zQz$T_7Vp=DiWjqJw8?p++~3pr8YoR=B9ZFW=AuUhWoCwAyEMsoDO)mv0j43Q_q$hA zJ0!v#aRc42)3CZ9@2b^xR*mN+DWa1f7hgHlS~Piig(P8NiANcY)uT2u{6jaJ>I<)U z*Bq=ufUseCC0iKx+_8)b-7J_b%yMhAaCk9Zz`?-Kx{+tRF1PBV^Xt)~FTK`6tjyZv zu49jT`5yrbGtg|1>Or$V5pV#4*c7K1&o6;`8T4)}gm(Zx>;p2A=ukr-=}_xHYvvJc zDYgU|AT&twI<&mjqAnG_x`Y@j^+ zSY#)pjSW&S=@tnM1_{H43(0T+2#RJh5$OL-KnFC6j~g4c>Z0e&Vt78+SLvZYG`xVv zF&72JnMj#q(&o=k%nFS8*o1EI46%k4tHb% z1Tn~s9(K9Lm*vs#9~ z(g_AbhQ;UxI2A0(Z|}5ATFLYpuk+yoZ*{i|zah$(Zw-8N%I$09a@sW_9dSEr&+Zhm zI}HY9Y^Svvqi0Y5P{(r&h#u6#eKgBtM%iRVj>`x3Jv=;gbaWVugVRf@)0N9ayljN{ zbjpQ?6mNY9mP}vPFVldAgeE91>8IB28=S54@RY$i7flR*8dXmvFs*o1m8}r?HZMG% zK=>->1x3!w0|Y@T41Jl+%%d=+6F-t1lVLvxxGqSKU>>!F!O3Jv=}Gg@5nQrgI?7*U zau!_HU|lVBrsl3#DqQNQg=Cfa1+IMCC)`H~C`GbvhKh}+;>dHK|4cc0a)@mZ1d)W2 zF-=DK5u*RHh+Gnj;qzP;_*jqS@jLn4{ed?^3y$q@2#&XJn1G2X5E=eC}qjs9*JhNTJLf=o66 zv=H9kPeF@`x1y%J-erq||6ELX=npqBDe7(s1J`}=vLVRhWbc5?*auvf@2b(~aYG0i zx_DGBlpr-ZAjj;?%(Nplv&-5Ib8^_#eeD$50Mb{Knn0aFHc?IOJ~w!JOUd{|JigBJ zSr60Y^RB*%TLNCma}19F4NwR#BCIh)(5hiuP^^NQ5E7=b^HDW!@(Myl3<4;l8u^K> zN_(v!n6|H2l1CLDNBk=^fhH&NhOX!pmwD=JtlW8~hO)NmJ6%`s6GI2 zEe&YnH?`LdX>Y`YQI!5Y3w)m~hfxIRkJOyVruJXzDE-2%H#1>qg911eO_-eNO?N)R zlu?CJIebi6u&HJ9y!V}jcj;{) z!DGi9J3eNPnVH!>W@ct)W@d&sW`>xVneCXFnK_1-8Q1UXz29Ek?_Ozlf34J`DUCGU zqwbliu4k&Aaunu7+NfT*n~c158~P$EEQq$!WIxam_HIxUek3SJ!f`f07})Qm$OHG8 zv0XXixP~(Iuz)7vjf(WFW%(#BZnaXj>~fX5kzY{%W6y&mzWsRhW344TMwJ6y>5X0>o9 zQcXrJR28MKn;@^ zmblzbxCMM&JoBbrUlLE<|3Q>D>+SuLc_1gN<%|d*h|lC!-CwUY#PvD(8lgq~a%0ue zRg$>7C}o+78E7D-nY+-S#;qBQT{e^3l=NQsFm6C%On@Q7^Ge|iQnNrpzH?r<*diLt z-#bqrnKPQmHM?)J`{ZsmQasV3r;HV(T}w3bunILPXA6O0RnF(2M!#jlqn0ml--QI0 z4JYO;rcRo>fMe*ph%ydRBL55~K!yWh&iWkM>-nr?LT6)&GTCWua(+3A6P-5*a|qu^T# zD$8E?!NX6n1O%hC@?&aVju*NU=7Tl5RHF?othX7+VlHl|Ky?+T&*`)NoW7+T5@7&= z5vy`pO}~3ERSBb93h8&_?Wxpk;_IZLJ(ljnlc}0&5n{` z=7w6{&gVY$(`Dam)ZUATmP;xASUAC`_F(*e&Fa_4>=E>auzjTCiAuCA|rT8`;R;?MM5^T}^w-MfFeQLVD!?DFa* zmNS{uWoZbkn2wAY9yB!5@KOg`Krm@eZ!*J-gxy(So&Ocj8KqcwY|fVyLTaT;P+@x8 zq&^YPN>8EKaV5@IIOXSg4O_JNdNS8>n5d52&!n>EaKF>l2MxFo~0lt1yqC!}tuW3I~` z)<{piR+brMjoz?aPcxt(BFSc$mmx0Xqd_G1(f<4XYxJ-DiabOB`*EbrA)bZiiws-h zbB%FG_Q^gQDre*ZD=LBf?|9jA2er^E4xv1D&(Zds8gGT;JU=<tG3a8RnO~K|Y z6YP5v>=*`V2>)qHqmrv0xPb#avra9lXYL?N95~2?^MZ*)Kbzom!(WP_h4Pw9IBUwg zJnP7)^K7V6ZIwm5SfRv9w1PjNRSC%K`1d@j>$<5aVlG~O<)%UrCF;*7tw}>d>5R>% zUH_kBH<35hE<1dVt$0_|K`r57S7acUe9Rz3q_i%d-}jHPSvP6Xs$>`7A-_np8c%1A z%TBSIX8;XOaHz0oBrSaOtc_~-rddD0bHT|#zu<$ar295$<^+;qWhN-?;A?(6c(_&C zNwtohV<^971}TCQ;IQbKW!xaNMFoXE-}^t4eRdMW-1NDZ+*b5g^H*4re@hGX(I}$t z{t?>tT{Sr6vxE#=O8csJ;3~b;7?g}j6X(`1D^LMyDoz)a_ny8&4-`gsY5&zhAxJw9 zR@(CQ1``}Gc58~wH^G8yn5Mr=9MYfieM?XQFzTyf^)bJ>vK^g{G=~Jrc5heHXZ+KY z?uwPhwcQAqBWrI)L53{*sr8P?vGMkq|K2V1R&ZqR>f&{=+ z{|O1K^E34+po(32CFn6+(L1LJ7{S6-))H$?Q>Z8WR!vn%1)2)Oji?9Q~9B(38 z?T=JH^~`^}>fKSue^A?ea9!FeYSm`(Giz*3^v}RUBTRFSZQz}ogW>rn=?0y{b zGoa~F_pb#QfenI3Lt=hqK-d5O`a)ZH^l*vjLp>8!#>U}uYXcYW!XdFnlFEj;(LL{i z;J~l336kI9@padmJx_ zfPXGrhLy9jO7hSH=Yy(B8C9tyRZ_vVFMu!(0w&Iu=-}{^;6ehFHP%nWCiwMk*7@x!t^Vw{Xt9~WgXv3qt|uHQnX01> zg+6%wTmOW@**l zZ0&SbQODE4U^_vzR{*#c}O?(Xw1CJ`s`$w=P>a{k_H3ZJRS>KPcLgTna^sm9UO--fnaX`nZ9zg&} zPq&Xmd&zC>Q)?Uc{b(t_H;u7)U+K-wo@^nRmnFZZdGb)dEq|z}5ATl^n*|%@;-4OQuTK_Z zqlJI9bdqvfT>a1+^>x?N7n+6cv-GJn3Vxgp-LCZB*xB*5br+H5KRCknU1W^Q*T9JN z`!~34rG3$3N0(`jv>sA@n525h?ratrJQt1xb8H?!g@%A)z^kzM_DH%-VUG&a(-{^8 z4IqGUM{fD9v2rt)ya~2aG^z>e7)S*IQR0nMX-9BkSak-3{fq4{XaaW4E_+cu{|BP6Q)0|iAwPxjEt^3@e-3UK~tAr;L}#KK7&DnSqcrb}i&wBpaDfw{L-Z zuU$LvfsKZyqPDK+-&j8tB&HyUMTVL|h8BhkgQ18+XGv6?5+(T5JB&dX4@?Uc3)*RNL(s;#4uO$GMhoVi6Lc0% zdjgFO@QJZ+$~=p~$U?m!0pOVIx&?5p`WH~K{3m9e*^5-Xet50Zny`be|KvL6vTe3uD^NS zj>~g92_(RKwY+;oLZ)@$JkL)67YO#N!LK?9CK`-TZBz3T`2ZKVFdEmaTfQGhu@|BS zPrT3I64H;J)v}F;6?-%5w(&e}mbAMF7h70c+`Mh)FZuoxV`fsBdPrxph0^w2TS;_K zrOh00rC2I_Ts*Qs4SJA7f@7=1lcxvME)oWZJ2^DOqKvOI*^1B-dAF}v zx~q$MU3jq~ZZ$wi?n20)R?oX`+ggxSwcw&eLGd@cl#?{0%lAac3H zuFdKEXlwBHSr@F$%Z0szRtO+2Rac?Sa&=|$B%mmb>ebD;*=S%ScZZR9lxO-DOsBg_ ziCH9#<>RCXOHi)vR>aG^fo(DSS)9Q8SM5NTh11qCb0+C%TZi=P$a;_&4_dpduDJ_f zUEa_bRCjQ`k=R^B!|$a`Gc*Gxea`D8keqLdaaB0h^*hy#>I7D|L^Fqt z0uow5b+NPSD~yNh!tGN?T9J6Y%bn!S`byQP&ZnXHKlkcOXiQo8I@ zSGfSjAa6(#NEFs4I?T5fpr*Uhd6fSNOiXAuPreI;hyojNiwWeD%#j)**L7-HEhHiy z1f>qf=!=VsCSK=G)5E7tgQ3AeFa%!+N-1Zk(Pg!j*f_16;l(IXM5f|081X`v-Q3u5 zt2n9dp^9WCFqyK5LBamFcQeVvL-eTVpOtkF=AT5;irh17{w5^Pid2o3RXy;xybfj< zP_Fr@=r$Q{jMEnLqP5F4HGMi0n$qyF=+l-?iu1}@ep8d7C_~T2UT)b~{=&_zXdtt? z5F$;@?ovMooAM3a4Ikwrwc=a%3Bo=@m~bo$#-B;jnkw<^WD~1Dk2AE4;B0+b*J2`p z+vcFe@@^ilnxZFcCauiBY2>t|QQG)wcUl^w_eWzXw0@=LV-|7)RSA_gvM`;gq~N^h z>{|qq!fpkj?2B55OQn0J!T36?W*CZXrPUpa8Qe%y(WjhPMHi>3w^BYQ;B;JE^Tn6> zb4J-zH16IS@2Sevh5M$`PLYrCxeQ?N<=dz<@9V)840Fa&^_4!eigm*(oc`8ppK-fm zOK3KHe|eQ!5xWp6-&CB97dM!z*Jik8RF^6*a1C}ruwqeH(z7=D)n=Xti2Z_(nrA( zE?jOG`xply3jsriNq3YfybT|YQ?UCJjjrOt5q2^Rf2grP!xYF(M3r1pOPWq67^L;4 zVNleg1>})urJRe62Kg`bmWlf%Drim+urbaoD6gpSc^SbU2fg>C{%W)(Yf*N_Y2j(Gc(?Z%Mt*;0>K56}2lEiH?Md7a9d?HJiCqgW2p4nxHoH7TzVcoXxQy-2# zZE6m!eK%y9zW2+NLf6k_p+c;B&yX|X7Vb5_xrdLGLy_|2YTfGjJ{q@0U`}tS@6Tao z%uK;-hkuCzAZrh!R-da+qu@k&>m5&`UzKBy@=|CcQn?0HG)z8f0$aU8Gb|K#dFG~{ zCds8m8S_YY2uX>!sM#p5*3;_mOM}=?$&#S)Gvmf$Z3+CK`o$(xP>?C&h8uAps zsPGUHKEiEX+1bTU$`&MEcAPo8b~f@&pKI@?BrAdkud~tR=E|;VcWJqBRMQ$Hy4t-g zH-2n8;qmfg6s%!EgI(rphGf&fzeszNOwAEk3BsU|0x<7g!y0T?_uWtNBsn-$qBCpz z6Jf3#l2aiv_GUwbKhr#$qtqbuw|V_|$jzAUVPk09SyJvmSP~6sinD_LA(7Y>Tm(jj zTHFL=^5CFt*&JdRz`en?_L2-K_R4W0-Zvc5f^JoxPX+7qCjP%YS6-Q01}chHtXuI)$TJA*r1dhTsH- z@v?xN%7a`+G6|V1X)>zeLPgHe(&%ec1RiX~ivmoKRpTIR>n5HG@Uwhla%RF%E(sC@ zvC`aUowj^4c-mrcC?Bb-`ppVxA4-&TSQm{$e#_0`YwW#8+|dvQh4t$a_4@5@H(9h` zf>1|EL7loT-svc)dN%G&oNAkyLq;e#Mf3!FQlrq)e7@DCoorR#ryY!f5|Tt^V|C$s z4YaRV+_Y~qXuD`$QnE+5Z3GaZTEO13RD(ATSMauG^~r9)!0 zVl8Ok)u*YA_oEF9d9*@dqw76T#*Xxs?d`6wyrzQh{UozqX%`(VujHFUH88;DT~~+e zfct7=GAyqJC8qc24uuLeJg3iE1W|FK5i^wVut4kxHPbuqyqDKqF*pyz)C{}o=ljp1 zg-yFLHA7)O*gJfoApp^kJr-$Ui9P)({CR2M6Gg;n(K3Y&_Q%{-yR?(mtw;%lQNf$) z*3nVfS*aeT*_T7BWu&0jB}zf+Cf7EPZ_W(si0BWMu{{*@DduW)gA8fC4ziP?@3Asn z!=?Dlq_3x0-IHreW^X|;cciVlKJ_{#jNTUD5(*aSQS**Wb0~b#(kF-RB-ZW`aHYeT zDQC{>DPZ5h0A1qB@A)7{VFCkv8~FiLx^1&ritozd`O>j8i6z)w#Tk15&{_fJZDKbG zx2RJ`D4q48UdaM>l7Y9e$md?`!blyaw*o^>eWe}cpbbLh;FEV2Ee132H$keAll|Yh zfat65*W!5HEotl}!AQ90Vv84E!^9Y1AaID00$bZpypvv}6t|d#G;kDJ&KCF!q5&7+ zA4x!L4+Ed~@~1+y>z0OnRSFm?c2ah3q%NQf0+9j<6HH{h4Y(gvkk?X5+4_xgz8erA zD{Py@n};Z4td8`&7_4r0NB@p6yX{k^w7%c5h5)A+^A^v?E z6zCEJQvv~lj2E;F@;ea970S%{rou0*u4aU#t@iXNi~iy_ACZC|>>G?0`0o$*K=H2f zgdhCcNWy_VUeY@T(yd`1UmWEq9*@R9z7z@O8#3rg{r%5eY)9LF7wGi=BP0KBU?=}i zBO|s}c8>ohIhm1_^IxJ|{vrOCkk-GBP=f;hCo+<*WsRzWIrOph8K_*p);WW2Sz0(i zluQ+_ZlkQ+(LWYMhKV35OuU)LcqO7I-9aiEq!2w5o>GFSi_AI*jX%F#SVZuvQc{6R ze;`s`;E$`@TGmQy=2V!Zg_QOjZLVyl-o1g-;n{fFR`%1R+a#7{+hasD9x;R9I~LRg z!&k@Y7zET^7?ZcJ!u}AL`qR$rhy34|dkovOkVphI5(pAmVLwkGaAINu4(#M$Sbu3! zc#~9vY!z&%LZWY#7k{csE6oav+Ic@L#KYg-y!Ja#P(CTij%}p@;^sl|v{7ICDt-^u zppt~sMs>CBq;nmFlt~Kp=n@vr&Dk6=OAi@#^^K20!?ek^ffX*hYXq)jg#@*`xT^f7 zOnwWizc%qPTKMv_P;IMnX>n#}i1wqGTbRU3mVn40J??1&ZHzAHf}8(sI2(sU4`Ls| zNwRMF;jZ<@l=sT|?6;J;w6bEK&=)KGu*4Zsv!CdZ>NKABt;U0ARkS?F!-0L_71u|h z6^Y_%s+$kLJWSVuh0f164X4FfkX`9Ohq1RM7YC>WBA%XSzLo1sIgufCSb9GFh<}at? z;97Ap{w_nNj6RFn_i(9kmVRLtVjo|05}ylQTRPhGimC(;1^|eX#>&PCi40}xyEm8p zh7j_xC||mCw_>~ge&0(>79SIAb~CG4oEsgl7v`}Yw*Ua!ZzWx`#&6`>eL6`Rkn~6( z!eQi9bC)+DKXW;PJ>CaOGcFj?+ zsl|L<8;2K0r%k(?|9Z@Qfyas_KN>I6?;7B=Qfs0~mDP4YXS8GZ_>QCo@PAxb5}j%{ z|J`zofD5mEFK;@fC?qtQ-31%+{_gv5qyq#WKYOV_Me2Qs(rRD68C*1;a`Ib2tMFGT zq9F=AUDnZZe_gio+d9TuhV}J_XsW%K$Dv7*)9@xC>*c>C>D;p_>FNW5q?5fUKy znNr=}$^R3*=0XE!wbfjSCAs6O2}Rel{xB_t*hUKM`sD$=+4aX;xnDO#Okzff$7KQYr9(TiO))kZfypu7zi52M zSYeN=>-ij?AJ3UCnln>L;ILEcn&OH?Ps4GSF~2%p?biwYjaO+HfQK4|2J)*k zuaM3g`RFJ^(&hiz-oVww*7M&Q8D?h2e?~zwev1F4k@?r5ln~GVG%{&&|1dH=-JgMu zH9D@jXM$r*2#{bF(n^KU!gCOb5FfyFAacGVLlWj*NDwg$evjKGJhY!rc09ZtzH~j9e%F0> zb+dB}fnl-ohgtE)kRw%tQuLUvTZ9S#Z~y=S$#(=bs&e|gxh9mq{)ern&{#1rarq>z zfi*fVG1~8P1GaST6igraG2~R}$rJZ3Vjvx;UswN|Ga(b!x|oWD2+-r2j)G)gL@ghJ zK1M{;dcu+!&O_Ktn#Ze^FZfw-CV?bRH7DZ+-4fg%f$XQ)lj6+1m2HrP_20-$o@-1% z=8Hp-=Z|mFQ-@&k;*qJZ zKlXlhds#jn=bo1x=tv#u$fd7`+cFFeLGcpa6o%#)?z}|0a^#L`ZnSc;>vFceoMjM; zA>Kc@4pnVYp^yCtC8lD1c>3alAm;micbgN12C*I&+3n|P{QB5s7V1Sa^s=`YnHU^S zSp8+@8+k|eL2(d12@zKnhaagC_ivV!h2wSaqG*`#Kd@Xk#|LhFUB>N!ghao+i@aU9 z%+kkQ`=6+>hR`N5Sdv17#CfB_gMVcU8=KoX?xwUyg8>9!Wy{>gyF^?%73)WgY?Fr<}@hcUnHxpZ7r=R{I~6QIn`xR_(!3 zQr2?LF5ziWExwVm!svmW*N0P}v%1~edcN$V=rB4J9%?o%XawMcu zr2aSaTC4P&eGP_mX|z7Ec1!ymP?X5^eI&Bd{y$qJ8#_m%e`^7mIGF#%0)C4BJqtMc z&t=M7vr`tq9qR5*<20j3`_rV8980GTjD(EdiMLlM*G48LoH3t)VD7y_4OckVEU0U2AG?@j58{#|M2>Z(#2D-ddrxJGqf7dS{kM zbvmQbiv01=1F8b5A)d@7JaCTHVz9mO62D6w+$y>P7MS;)3F($5YcwnZo#0YjZZ0pk zOgmR3Ol>S?)KX79y>z+K&(}lXp_W1a3sfp_Gemh>#=E z0RnE4o{fd>>N-{Rw|a8Lw1L5|$Dm%n(mX)sd4gXTrgK;#?bvk{x{JYHxZkC$9IyasM07f4iX2qXPhH5;r)}=QMBQT;s!&Rz_JzG35HP&_}?Y(BYdg>cg=Hc6r zQkZDM6Q~As^!3G@=(N}D%XI&SG(IYd)#!E9&fwppTfrBDH2W$pvPA>tU zS1ZT0=y(Vj>8w{ne6rEMvR;yKzwfbJ@(QYGXPl-^rZ%hoelWrY7`3OPVHValQ8lZf zN?-~z+`Y^6qw#?Cr`}I29QD2OJ}t&2R_%=KJhR&^%7nYg6(n!OtEq-H`v~E_Wpf#7 zz{7~<4kr6~J-I4Ci0!7sz`sO6*m!WMu-b|er>ToVx z8HnHnt0)=fQqa=W*%mu<#K&qyycaV}kt`0?xj%j7Dzedv>kLF3WW`FUcP;)f^HGxA zqc{v!yLbdtI!qy1#($