PageRenderTime 248ms CodeModel.GetById 34ms app.highlight 200ms RepoModel.GetById 1ms app.codeStats 1ms

/includes/captcha/captcha_gd.php

http://github.com/MightyGorgon/icy_phoenix
PHP | 2644 lines | 2336 code | 173 blank | 135 comment | 80 complexity | 16d61ae97d6138af25238f0295edc912 MD5 | raw file

Large files files are truncated, but you can click here to view the full file

   1<?php
   2/**
   3*
   4* @package Icy Phoenix
   5* @version $Id$
   6* @copyright (c) 2008 Icy Phoenix
   7* @license http://opensource.org/licenses/gpl-license.php GNU Public License
   8*
   9*/
  10
  11/**
  12*
  13* @Icy Phoenix is based on phpBB
  14* @copyright (c) 2008 phpBB Group
  15*
  16*/
  17
  18if (!defined('IN_ICYPHOENIX'))
  19{
  20	die('Hacking attempt');
  21}
  22
  23/**
  24* Original Author - Xore (Robert Hetzler)
  25* With contributions from Neothermic
  26*
  27* @package VC
  28*/
  29class captcha
  30{
  31	var $width = 360;
  32	var $height = 96;
  33
  34
  35	/**
  36	* Create the image containing $code with a seed of $seed
  37	*/
  38	function execute($code, $seed)
  39	{
  40		global $config;
  41
  42		mt_srand($seed);
  43
  44		// Create image
  45		$img = imagecreatetruecolor($this->width, $this->height);
  46
  47		// Generate colours
  48		$colour = new colour_manager($img, array(
  49			'random' => true,
  50			'min_value' => 60,
  51		), 'hsv');
  52
  53		$scheme = $colour->colour_scheme('background', false);
  54		$scheme = $colour->mono_range($scheme, 10, false);
  55		shuffle($scheme);
  56
  57		$bg_colours = array_splice($scheme, mt_rand(6, 12));
  58
  59		// Generate code characters
  60		$characters = $sizes = $bounding_boxes = $noise = array();
  61		$width_avail = $this->width - 15;
  62		$code_len = strlen($code);
  63		$captcha_bitmaps = $this->captcha_bitmaps();
  64
  65		for ($i = 0; $i < $code_len; ++$i)
  66		{
  67			$characters[$i] = new char_cube3d($captcha_bitmaps, $code[$i]);
  68
  69			list($min, $max) = $characters[$i]->range();
  70			$sizes[$i] = mt_rand($min, $max);
  71
  72			$box = $characters[$i]->dimensions($sizes[$i]);
  73			$width_avail -= ($box[2] - $box[0]);
  74			$bounding_boxes[$i] = $box;
  75		}
  76
  77
  78		// Redistribute leftover x-space
  79		$offset = array();
  80		for ($i = 0; $i < $code_len; ++$i)
  81		{
  82			$denom = ($code_len - $i);
  83			$denom = max(1.3, $denom);
  84			$offset[$i] = mt_rand(0, (1.5 * $width_avail) / $denom);
  85			$width_avail -= $offset[$i];
  86		}
  87
  88		if ($config['captcha_gd_x_grid'])
  89		{
  90			$grid = (int) $config['captcha_gd_x_grid'];
  91			for ($y = 0; $y < $this->height; $y += mt_rand($grid - 2, $grid + 2))
  92			{
  93				$current_colour = $scheme[array_rand($scheme)];
  94				imageline($img, mt_rand(0,4), mt_rand($y - 3, $y), mt_rand($this->width - 5, $this->width), mt_rand($y - 3, $y), $current_colour);
  95			}
  96		}
  97
  98		if ($config['captcha_gd_y_grid'])
  99		{
 100			$grid = (int) $config['captcha_gd_y_grid'];
 101			for ($x = 0; $x < $this->width; $x += mt_rand($grid - 2, $grid + 2))
 102			{
 103				$current_colour = $scheme[array_rand($scheme)];
 104				imagedashedline($img, mt_rand($x -3, $x + 3), mt_rand(0, 4), mt_rand($x -3, $x + 3), mt_rand($this->height - 5, $this->height), $current_colour);
 105			}
 106		}
 107		if ($config['captcha_gd_wave'] && ($config['captcha_gd_y_grid'] || $config['captcha_gd_y_grid']))
 108		{
 109			$this->wave($img);
 110		}
 111
 112
 113		if ($config['captcha_gd_3d_noise'])
 114		{
 115			$xoffset = mt_rand(0,9);
 116			$noise_bitmaps = $this->captcha_noise_bg_bitmaps();
 117			for ($i = 0; $i < $code_len; ++$i)
 118			{
 119				$noise[$i] = new char_cube3d($noise_bitmaps, mt_rand(1, count($noise_bitmaps['data'])));
 120
 121				list($min, $max) = $noise[$i]->range();
 122				//$box = $noise[$i]->dimensions($sizes[$i]);
 123			}
 124			$xoffset = 0;
 125			for ($i = 0; $i < $code_len; ++$i)
 126			{
 127				$dimm = $bounding_boxes[$i];
 128				$xoffset += ($offset[$i] - $dimm[0]);
 129				$yoffset = mt_rand(-$dimm[1], $this->height - $dimm[3]);
 130
 131				$noise[$i]->drawchar($sizes[$i], $xoffset, $yoffset, $img, $colour->get_resource('background'), $scheme);
 132				$xoffset += $dimm[2];
 133			}
 134		}
 135		$xoffset = 5;
 136		for ($i = 0; $i < $code_len; ++$i)
 137		{
 138			$dimm = $bounding_boxes[$i];
 139			$xoffset += ($offset[$i] - $dimm[0]);
 140			$yoffset = mt_rand(-$dimm[1], $this->height - $dimm[3]);
 141
 142			$characters[$i]->drawchar($sizes[$i], $xoffset, $yoffset, $img, $colour->get_resource('background'), $scheme);
 143			$xoffset += $dimm[2];
 144		}
 145		if ($config['captcha_gd_wave'])
 146		{
 147			$this->wave($img);
 148		}
 149		if ($config['captcha_gd_foreground_noise'])
 150		{
 151			$this->noise_line($img, 0, 0, $this->width, $this->height, $colour->get_resource('background'), $scheme, $bg_colours);
 152		}
 153		// Send image
 154		header('Content-Type: image/png');
 155		header('Cache-control: no-cache, no-store');
 156		imagepng($img);
 157		imagedestroy($img);
 158	}
 159
 160	/**
 161	* Sinus
 162	*/
 163	function wave($img)
 164	{
 165		global $config;
 166
 167		$period_x = mt_rand(12, 18);
 168		$period_y = mt_rand(7, 14);
 169		$amp_x = mt_rand(5, 10);
 170		$amp_y = mt_rand(2, 4);
 171		$socket = mt_rand(0, 100);
 172
 173		$dampen_x = mt_rand($this->width / 5, $this->width / 2);
 174		$dampen_y = mt_rand($this->height / 5, $this->height / 2);
 175		$direction_x = (mt_rand (0, 1));
 176		$direction_y = (mt_rand (0, 1));
 177
 178		for ($i = 0; $i < $this->width; $i++)
 179		{
 180			$dir = ($direction_x) ? $i : ($this->width - $i);
 181			imagecopy($img, $img, $i - 1, sin($socket+ $i/($period_x + $dir/$dampen_x)) * $amp_x, $i, 0, 1, $this->height);
 182		}
 183		$socket = mt_rand(0, 100);
 184		for ($i = 0; $i < $this->height; $i++)
 185		{
 186			$dir = ($direction_y) ? $i : ($this->height - $i);
 187			imagecopy($img, $img, sin($socket + $i/($period_y + ($dir)/$dampen_y)) * $amp_y, $i - 1, 0, $i, $this->width, 1);
 188		}
 189		return $img;
 190	}
 191
 192	/**
 193	* Noise line
 194	*/
 195	function noise_line($img, $min_x, $min_y, $max_x, $max_y, $bg, $font, $non_font)
 196	{
 197		imagesetthickness($img, 2);
 198
 199		$x1 = $min_x;
 200		$x2 = $max_x;
 201		$y1 = $min_y;
 202		$y2 = $min_y;
 203
 204		do
 205		{
 206			$line = array_merge(
 207				array_fill(0, mt_rand(30, 60), $non_font[array_rand($non_font)]),
 208				array_fill(0, mt_rand(30, 60), $bg)
 209			);
 210
 211			imagesetstyle($img, $line);
 212			imageline($img, $x1, $y1, $x2, $y2, IMG_COLOR_STYLED);
 213
 214			$y1 += mt_rand(12, 35);
 215			$y2 += mt_rand(12, 35);
 216		}
 217		while ($y1 < $max_y && $y2 < $max_y);
 218
 219		$x1 = $min_x;
 220		$x2 = $min_x;
 221		$y1 = $min_y;
 222		$y2 = $max_y;
 223
 224		do
 225		{
 226			$line = array_merge(
 227				array_fill(0, mt_rand(30, 60), $non_font[array_rand($non_font)]),
 228				array_fill(0, mt_rand(30, 60), $bg)
 229			);
 230
 231			imagesetstyle($img, $line);
 232			imageline($img, $x1, $y1, $x2, $y2, IMG_COLOR_STYLED);
 233
 234			$x1 += mt_rand(20, 35);
 235			$x2 += mt_rand(20, 35);
 236		}
 237		while ($x1 < $max_x && $x2 < $max_x);
 238		imagesetthickness($img, 1);
 239	}
 240
 241
 242	function captcha_noise_bg_bitmaps()
 243	{
 244		return array(
 245			'width' => 15,
 246			'height' => 5,
 247			'data' => array(
 248
 249			1 => array(
 250				array(1,0,0,0,1,0,0,0,0,0,0,0,0,0,0),
 251				array(1,0,0,0,0,1,0,0,0,0,0,0,0,0,0),
 252				array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
 253				array(1,0,0,0,0,1,0,0,0,0,0,0,1,0,0),
 254				array(1,0,0,0,0,0,1,0,0,0,0,1,0,0,0),
 255			),
 256			2 => array(
 257				array(1,1,mt_rand(0,1),1,0,1,1,1,1,0,0,0,0,0,0),
 258				array(0,0,0,0,0,0,0,1,0,0,0,0,0,0,0),
 259				array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
 260				array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
 261				array(0,0,0,0,0,0,0,0,0,1,1,0,1,1,1),
 262			),
 263			3 => array(
 264				array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
 265				array(1,0,0,0,0,0,0,0,0,0,0,0,0,1,0),
 266				array(0,0,0,0,1,0,0,0,0,0,0,0,0,0,1),
 267				array(1,0,0,0,0,0,0,0,0,0,0,0,0,1,0),
 268				array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
 269			),
 270			4 => array(
 271				array(1,0,1,0,1,0,0,1,1,0,0,0,0,0,0),
 272				array(0,0,0,0,0,0,0,1,0,0,0,0,0,0,0),
 273				array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
 274				array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
 275				array(1,0,1,0,0,0,0,0,0,0,0,0,0,0,0),
 276			),
 277			5 => array(
 278				array(1,1,1,1,0,0,0,1,1,1,0,0,1,0,1),
 279				array(0,0,0,0,0,0,0,1,0,0,0,0,0,0,0),
 280				array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
 281				array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
 282				array(1,0,1,0,0,0,0,0,0,0,0,0,0,0,0),
 283			),
 284			6 => array(
 285				array(mt_rand(0,1),mt_rand(0,1),mt_rand(0,1),mt_rand(0,1),mt_rand(0,1),0,mt_rand(0,1),mt_rand(0,1),mt_rand(0,1),mt_rand(0,1),mt_rand(0,1),0,mt_rand(0,1),mt_rand(0,1),mt_rand(0,1)),
 286				array(0,0,0,0,0,0,0,mt_rand(0,1),0,0,0,0,0,0,0),
 287				array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
 288				array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
 289				array(mt_rand(0,1),0,mt_rand(0,1),0,0,0,0,0,0,0,0,0,0,0,0),
 290			),
 291			7 => array(
 292				array(0,0,0,0,0,0,0,0,0,0,1,1,0,1,1),
 293				array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
 294				array(0,0,1,1,0,0,0,1,0,0,0,0,0,0,0),
 295				array(0,1,0,0,0,1,0,0,0,0,0,0,0,0,0),
 296				array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
 297			),
 298		));
 299	}
 300
 301	/**
 302	* Return bitmaps
 303	*/
 304	function captcha_bitmaps()
 305	{
 306		global $config;
 307
 308		$chars = array(
 309			'A' => array(
 310						array(
 311							array(0,0,0,0,1,0,0,0,0),
 312							array(0,0,0,1,0,1,0,0,0),
 313							array(0,0,0,1,0,1,0,0,0),
 314							array(0,0,0,1,0,1,0,0,0),
 315							array(0,0,1,0,0,0,1,0,0),
 316							array(0,0,1,0,0,0,1,0,0),
 317							array(0,0,1,0,0,0,1,0,0),
 318							array(0,1,0,0,0,0,0,1,0),
 319							array(0,1,0,0,0,0,0,1,0),
 320							array(0,1,1,1,1,1,1,1,0),
 321							array(0,1,0,0,0,0,0,1,0),
 322							array(1,0,0,0,0,0,0,0,1),
 323							array(1,0,0,0,0,0,0,0,1),
 324							array(1,0,0,0,0,0,0,0,1),
 325							array(1,0,0,0,0,0,0,0,1),
 326						),
 327						array(
 328							array(0,0,0,0,0,0,0,0,0),
 329							array(0,0,0,0,0,0,0,0,0),
 330							array(0,0,0,0,1,0,0,0,0),
 331							array(0,0,0,1,0,1,0,0,0),
 332							array(0,0,1,1,0,1,1,0,0),
 333							array(0,0,1,0,0,0,1,0,0),
 334							array(0,1,0,0,0,0,0,1,0),
 335							array(0,1,0,0,0,0,0,1,0),
 336							array(0,1,1,1,1,1,1,1,0),
 337							array(0,1,0,0,0,0,0,1,0),
 338							array(0,1,0,0,0,0,0,1,0),
 339							array(0,1,0,0,0,0,0,1,0),
 340							array(0,1,0,0,0,0,0,1,0),
 341							array(0,1,0,0,0,0,0,1,0),
 342							array(1,1,1,0,0,0,1,1,1),
 343						),
 344						array(
 345							array(0,0,0,0,0,0,0,0,0),
 346							array(0,0,0,0,0,0,0,0,0),
 347							array(0,0,0,0,0,0,0,0,0),
 348							array(0,0,0,0,0,0,0,0,0),
 349							array(0,0,1,1,1,1,1,0,0),
 350							array(0,1,1,0,0,0,1,1,0),
 351							array(1,1,0,0,0,0,0,1,1),
 352							array(1,0,0,0,0,0,0,0,1),
 353							array(0,0,0,0,0,0,0,1,1),
 354							array(0,0,0,0,0,1,1,1,1),
 355							array(0,0,0,1,1,1,0,0,1),
 356							array(0,1,1,1,0,0,0,0,1),
 357							array(1,0,0,0,0,0,0,0,1),
 358							array(1,1,0,0,0,0,1,1,1),
 359							array(0,1,1,1,1,1,1,0,1),
 360						),
 361					),
 362		'B' => array(
 363						array(
 364							array(1,1,1,1,1,1,1,0,0),
 365							array(1,0,0,0,0,0,0,1,0),
 366							array(1,0,0,0,0,0,0,0,1),
 367							array(1,0,0,0,0,0,0,0,1),
 368							array(1,0,0,0,0,0,0,0,1),
 369							array(1,0,0,0,0,0,0,0,1),
 370							array(1,0,0,0,0,0,0,1,0),
 371							array(1,1,1,1,1,1,1,0,0),
 372							array(1,0,0,0,0,0,0,1,0),
 373							array(1,0,0,0,0,0,0,0,1),
 374							array(1,0,0,0,0,0,0,0,1),
 375							array(1,0,0,0,0,0,0,0,1),
 376							array(1,0,0,0,0,0,0,0,1),
 377							array(1,0,0,0,0,0,0,1,0),
 378							array(1,1,1,1,1,1,1,0,0),
 379						),
 380						array(
 381							array(1,1,1,1,1,1,1,0,0),
 382							array(0,1,0,0,0,0,0,1,0),
 383							array(0,1,0,0,0,0,0,0,1),
 384							array(0,1,0,0,0,0,0,0,1),
 385							array(0,1,0,0,0,0,0,0,1),
 386							array(0,1,0,0,0,0,0,0,1),
 387							array(0,1,0,0,0,0,0,1,0),
 388							array(0,1,1,1,1,1,1,0,0),
 389							array(0,1,0,0,0,0,0,1,0),
 390							array(0,1,0,0,0,0,0,0,1),
 391							array(0,1,0,0,0,0,0,0,1),
 392							array(0,1,0,0,0,0,0,0,1),
 393							array(0,1,0,0,0,0,0,0,1),
 394							array(0,1,0,0,0,0,0,1,0),
 395							array(1,1,1,1,1,1,1,0,0),
 396						),
 397						array(
 398							array(0,1,0,0,0,0,0,0,0),
 399							array(0,1,0,0,0,0,0,0,0),
 400							array(0,1,0,0,0,0,0,0,0),
 401							array(0,1,0,0,0,0,0,0,0),
 402							array(0,1,0,0,0,0,0,0,0),
 403							array(0,1,0,0,0,0,0,0,0),
 404							array(0,1,0,0,0,0,0,0,0),
 405							array(0,1,1,1,1,1,1,0,0),
 406							array(0,1,0,0,0,0,0,1,0),
 407							array(0,1,0,0,0,0,0,0,1),
 408							array(0,1,0,0,0,0,0,0,1),
 409							array(0,1,0,0,0,0,0,0,1),
 410							array(0,1,0,0,0,0,0,0,1),
 411							array(0,1,0,0,0,0,0,1,0),
 412							array(0,1,1,1,1,1,1,0,0),
 413						),
 414					),
 415		'C' => array(
 416						array(
 417							array(0,0,1,1,1,1,1,0,0),
 418							array(0,1,0,0,0,0,0,1,0),
 419							array(1,0,0,0,0,0,0,0,1),
 420							array(1,0,0,0,0,0,0,0,1),
 421							array(1,0,0,0,0,0,0,0,0),
 422							array(1,0,0,0,0,0,0,0,0),
 423							array(1,0,0,0,0,0,0,0,0),
 424							array(1,0,0,0,0,0,0,0,0),
 425							array(1,0,0,0,0,0,0,0,0),
 426							array(1,0,0,0,0,0,0,0,0),
 427							array(1,0,0,0,0,0,0,0,0),
 428							array(1,0,0,0,0,0,0,0,1),
 429							array(1,0,0,0,0,0,0,0,1),
 430							array(0,1,0,0,0,0,0,1,0),
 431							array(0,0,1,1,1,1,1,0,0),
 432						),
 433						array(
 434							array(0,0,1,1,1,1,1,0,1),
 435							array(0,1,0,0,0,0,0,1,1),
 436							array(1,0,0,0,0,0,0,0,1),
 437							array(1,0,0,0,0,0,0,0,1),
 438							array(1,0,0,0,0,0,0,0,0),
 439							array(1,0,0,0,0,0,0,0,0),
 440							array(1,0,0,0,0,0,0,0,0),
 441							array(1,0,0,0,0,0,0,0,0),
 442							array(1,0,0,0,0,0,0,0,0),
 443							array(1,0,0,0,0,0,0,0,0),
 444							array(1,0,0,0,0,0,0,0,0),
 445							array(1,0,0,0,0,0,0,0,1),
 446							array(1,0,0,0,0,0,0,0,1),
 447							array(0,1,0,0,0,0,0,1,1),
 448							array(0,0,1,1,1,1,1,0,1),
 449						),
 450					),
 451		'D' => array(
 452						array(
 453							array(1,1,1,1,1,1,1,0,0),
 454							array(1,0,0,0,0,0,0,1,0),
 455							array(1,0,0,0,0,0,0,0,1),
 456							array(1,0,0,0,0,0,0,0,1),
 457							array(1,0,0,0,0,0,0,0,1),
 458							array(1,0,0,0,0,0,0,0,1),
 459							array(1,0,0,0,0,0,0,0,1),
 460							array(1,0,0,0,0,0,0,0,1),
 461							array(1,0,0,0,0,0,0,0,1),
 462							array(1,0,0,0,0,0,0,0,1),
 463							array(1,0,0,0,0,0,0,0,1),
 464							array(1,0,0,0,0,0,0,0,1),
 465							array(1,0,0,0,0,0,0,0,1),
 466							array(1,0,0,0,0,0,0,1,0),
 467							array(1,1,1,1,1,1,1,0,0),
 468						),
 469						array(
 470							array(1,1,1,1,1,1,1,0,0),
 471							array(0,1,0,0,0,0,0,1,0),
 472							array(0,1,0,0,0,0,0,0,1),
 473							array(0,1,0,0,0,0,0,0,1),
 474							array(0,1,0,0,0,0,0,0,1),
 475							array(0,1,0,0,0,0,0,0,1),
 476							array(0,1,0,0,0,0,0,0,1),
 477							array(0,1,0,0,0,0,0,0,1),
 478							array(0,1,0,0,0,0,0,0,1),
 479							array(0,1,0,0,0,0,0,0,1),
 480							array(0,1,0,0,0,0,0,0,1),
 481							array(0,1,0,0,0,0,0,0,1),
 482							array(0,1,0,0,0,0,0,0,1),
 483							array(0,1,0,0,0,0,0,1,0),
 484							array(1,1,1,1,1,1,1,0,0),
 485						),
 486						array(
 487							array(0,0,0,0,0,0,0,0,1),
 488							array(0,0,0,0,0,0,0,0,1),
 489							array(0,0,0,0,0,0,0,0,1),
 490							array(0,0,0,0,0,0,0,0,1),
 491							array(0,0,0,0,0,0,0,0,1),
 492							array(0,0,0,0,0,0,0,0,1),
 493							array(0,0,0,0,0,0,0,0,1),
 494							array(0,0,1,1,1,1,1,0,1),
 495							array(0,1,1,0,0,0,1,1,1),
 496							array(0,1,0,0,0,0,0,0,1),
 497							array(0,1,0,0,0,0,0,0,1),
 498							array(0,1,0,0,0,0,0,0,1),
 499							array(0,1,0,0,0,0,0,0,1),
 500							array(0,1,1,0,0,0,1,1,1),
 501							array(0,0,1,1,1,1,1,0,1),
 502						),
 503					),
 504		'E' => array(
 505						array(
 506							array(1,1,1,1,1,1,1,1,1),
 507							array(1,0,0,0,0,0,0,0,0),
 508							array(1,0,0,0,0,0,0,0,0),
 509							array(1,0,0,0,0,0,0,0,0),
 510							array(1,0,0,0,0,0,0,0,0),
 511							array(1,0,0,0,0,0,0,0,0),
 512							array(1,0,0,0,0,0,0,0,0),
 513							array(1,1,1,1,1,1,1,1,0),
 514							array(1,0,0,0,0,0,0,0,0),
 515							array(1,0,0,0,0,0,0,0,0),
 516							array(1,0,0,0,0,0,0,0,0),
 517							array(1,0,0,0,0,0,0,0,0),
 518							array(1,0,0,0,0,0,0,0,0),
 519							array(1,0,0,0,0,0,0,0,0),
 520							array(1,1,1,1,1,1,1,1,1),
 521						),
 522						array(
 523							array(1,1,1,1,1,1,1,1,1),
 524							array(1,0,0,0,0,0,0,0,1),
 525							array(1,0,0,0,0,0,0,0,0),
 526							array(1,0,0,0,0,0,0,0,0),
 527							array(1,0,0,0,0,0,0,0,0),
 528							array(1,0,0,0,0,0,0,0,0),
 529							array(1,0,0,0,0,0,0,0,0),
 530							array(1,1,1,1,1,1,1,0,0),
 531							array(1,0,0,0,0,0,0,0,0),
 532							array(1,0,0,0,0,0,0,0,0),
 533							array(1,0,0,0,0,0,0,0,0),
 534							array(1,0,0,0,0,0,0,0,0),
 535							array(1,0,0,0,0,0,0,0,0),
 536							array(1,0,0,0,0,0,0,0,1),
 537							array(1,1,1,1,1,1,1,1,1),
 538						),
 539						array(
 540							array(0,0,0,0,0,0,0,0,0),
 541							array(0,0,0,0,0,0,0,0,0),
 542							array(0,0,0,0,0,0,0,0,0),
 543							array(0,0,0,0,0,0,0,0,0),
 544							array(0,0,0,0,0,0,0,0,0),
 545							array(0,0,0,0,0,0,0,0,0),
 546							array(0,0,0,0,0,0,0,0,0),
 547							array(0,0,1,1,1,1,1,0,0),
 548							array(0,1,1,0,0,0,1,1,0),
 549							array(1,1,0,0,0,0,0,1,1),
 550							array(1,1,1,1,1,1,1,1,1),
 551							array(1,0,0,0,0,0,0,0,0),
 552							array(1,0,0,0,0,0,0,0,1),
 553							array(1,1,0,0,0,0,0,1,1),
 554							array(0,1,1,1,1,1,1,1,0),
 555						),
 556					),
 557		'F' => array(
 558						array(
 559							array(1,1,1,1,1,1,1,1,1),
 560							array(1,0,0,0,0,0,0,0,0),
 561							array(1,0,0,0,0,0,0,0,0),
 562							array(1,0,0,0,0,0,0,0,0),
 563							array(1,0,0,0,0,0,0,0,0),
 564							array(1,0,0,0,0,0,0,0,0),
 565							array(1,0,0,0,0,0,0,0,0),
 566							array(1,1,1,1,1,1,1,0,0),
 567							array(1,0,0,0,0,0,0,0,0),
 568							array(1,0,0,0,0,0,0,0,0),
 569							array(1,0,0,0,0,0,0,0,0),
 570							array(1,0,0,0,0,0,0,0,0),
 571							array(1,0,0,0,0,0,0,0,0),
 572							array(1,0,0,0,0,0,0,0,0),
 573							array(1,0,0,0,0,0,0,0,0),
 574						),
 575						array(
 576							array(0,1,1,1,1,1,1,1,1),
 577							array(0,1,0,0,0,0,0,0,1),
 578							array(0,1,0,0,0,0,0,0,0),
 579							array(0,1,0,0,0,0,0,0,0),
 580							array(0,1,0,0,0,0,0,0,0),
 581							array(0,1,0,0,0,0,0,0,0),
 582							array(0,1,0,0,0,0,0,0,0),
 583							array(0,1,1,1,1,1,1,0,0),
 584							array(0,1,0,0,0,0,0,0,0),
 585							array(0,1,0,0,0,0,0,0,0),
 586							array(0,1,0,0,0,0,0,0,0),
 587							array(0,1,0,0,0,0,0,0,0),
 588							array(0,1,0,0,0,0,0,0,0),
 589							array(0,1,0,0,0,0,0,0,0),
 590							array(1,1,1,0,0,0,0,0,0),
 591						),
 592						array(
 593							array(0,0,0,1,1,0,0,0,0),
 594							array(0,0,1,1,0,0,0,0,0),
 595							array(0,1,1,0,0,0,0,0,0),
 596							array(0,1,0,0,0,0,0,0,0),
 597							array(0,1,0,0,0,0,0,0,0),
 598							array(1,1,1,1,0,0,0,0,0),
 599							array(0,1,0,0,0,0,0,0,0),
 600							array(0,1,0,0,0,0,0,0,0),
 601							array(0,1,0,0,0,0,0,0,0),
 602							array(0,1,0,0,0,0,0,0,0),
 603							array(0,1,0,0,0,0,0,0,0),
 604							array(0,1,0,0,0,0,0,0,0),
 605							array(0,1,0,0,0,0,0,0,0),
 606							array(0,1,0,0,0,0,0,0,0),
 607							array(0,1,0,0,0,0,0,0,0),
 608						),
 609					),
 610		'G' => array(
 611						array(
 612							array(0,0,1,1,1,1,1,0,0),
 613							array(0,1,0,0,0,0,0,1,0),
 614							array(1,0,0,0,0,0,0,0,1),
 615							array(1,0,0,0,0,0,0,0,0),
 616							array(1,0,0,0,0,0,0,0,0),
 617							array(1,0,0,0,0,0,0,0,0),
 618							array(1,0,0,0,0,0,0,0,0),
 619							array(1,0,0,0,0,0,0,0,0),
 620							array(1,0,0,0,0,0,1,1,1),
 621							array(1,0,0,0,0,0,0,0,1),
 622							array(1,0,0,0,0,0,0,0,1),
 623							array(1,0,0,0,0,0,0,0,1),
 624							array(1,0,0,0,0,0,0,0,1),
 625							array(0,1,0,0,0,0,0,1,0),
 626							array(0,0,1,1,1,1,1,0,0),
 627						),
 628						array(
 629							array(0,0,1,1,1,1,1,0,1),
 630							array(0,1,0,0,0,0,0,1,1),
 631							array(1,0,0,0,0,0,0,0,1),
 632							array(1,0,0,0,0,0,0,0,0),
 633							array(1,0,0,0,0,0,0,0,0),
 634							array(1,0,0,0,0,0,0,0,0),
 635							array(1,0,0,0,0,0,0,0,0),
 636							array(1,0,0,0,0,0,0,0,0),
 637							array(1,0,0,0,1,1,1,1,1),
 638							array(1,0,0,0,1,0,0,0,1),
 639							array(1,0,0,0,1,0,0,0,1),
 640							array(1,0,0,0,0,0,0,0,1),
 641							array(1,0,0,0,0,0,0,0,1),
 642							array(0,1,0,0,0,0,0,1,1),
 643							array(0,0,1,1,1,1,1,0,1),
 644						),
 645						array(
 646							array(0,0,1,1,1,1,1,0,1),
 647							array(0,1,1,0,0,0,0,1,1),
 648							array(1,1,0,0,0,0,0,1,1),
 649							array(1,0,0,0,0,0,0,0,1),
 650							array(1,0,0,0,0,0,0,0,1),
 651							array(1,1,1,0,0,0,0,0,1),
 652							array(0,0,1,1,1,1,1,1,1),
 653							array(0,0,0,0,0,0,0,0,1),
 654							array(0,0,0,0,0,0,0,0,1),
 655							array(0,0,0,0,0,0,0,0,1),
 656							array(0,0,0,0,0,0,0,0,1),
 657							array(0,0,0,0,0,0,0,1,1),
 658							array(1,1,1,1,1,1,1,1,0),
 659							array(0,0,0,0,0,0,0,0,0),
 660							array(0,0,0,0,0,0,0,0,0),
 661						),
 662					),
 663		'H' => array(
 664						array(
 665							array(1,0,0,0,0,0,0,0,1),
 666							array(1,0,0,0,0,0,0,0,1),
 667							array(1,0,0,0,0,0,0,0,1),
 668							array(1,0,0,0,0,0,0,0,1),
 669							array(1,0,0,0,0,0,0,0,1),
 670							array(1,0,0,0,0,0,0,0,1),
 671							array(1,0,0,0,0,0,0,0,1),
 672							array(1,1,1,1,1,1,1,1,1),
 673							array(1,0,0,0,0,0,0,0,1),
 674							array(1,0,0,0,0,0,0,0,1),
 675							array(1,0,0,0,0,0,0,0,1),
 676							array(1,0,0,0,0,0,0,0,1),
 677							array(1,0,0,0,0,0,0,0,1),
 678							array(1,0,0,0,0,0,0,0,1),
 679							array(1,0,0,0,0,0,0,0,1),
 680						),
 681						array(
 682							array(1,1,1,0,0,0,1,1,1),
 683							array(0,1,0,0,0,0,0,1,0),
 684							array(0,1,0,0,0,0,0,1,0),
 685							array(0,1,0,0,0,0,0,1,0),
 686							array(0,1,0,0,0,0,0,1,0),
 687							array(0,1,0,0,0,0,0,1,0),
 688							array(0,1,0,0,0,0,0,1,0),
 689							array(0,1,1,1,1,1,1,1,0),
 690							array(0,1,0,0,0,0,0,1,0),
 691							array(0,1,0,0,0,0,0,1,0),
 692							array(0,1,0,0,0,0,0,1,0),
 693							array(0,1,0,0,0,0,0,1,0),
 694							array(0,1,0,0,0,0,0,1,0),
 695							array(0,1,0,0,0,0,0,1,0),
 696							array(1,1,1,0,0,0,1,1,1),
 697						),
 698						array(
 699							array(1,0,0,0,0,0,0,0,0),
 700							array(1,0,0,0,0,0,0,0,0),
 701							array(1,0,0,0,0,0,0,0,0),
 702							array(1,0,0,0,0,0,0,0,0),
 703							array(1,0,0,0,0,0,0,0,0),
 704							array(1,0,0,0,0,0,0,0,0),
 705							array(1,0,0,0,0,0,0,0,0),
 706							array(1,0,0,1,1,1,0,0,0),
 707							array(1,1,1,1,0,1,1,0,0),
 708							array(1,0,0,0,0,0,1,0,0),
 709							array(1,0,0,0,0,0,1,0,0),
 710							array(1,0,0,0,0,0,1,0,0),
 711							array(1,0,0,0,0,0,1,0,0),
 712							array(1,0,0,0,0,0,1,0,0),
 713							array(1,0,0,0,0,0,1,0,0),
 714						),
 715					),
 716		'I' => array(
 717						array(
 718							array(1,1,1,1,1,1,1,1,1),
 719							array(0,0,0,0,1,0,0,0,0),
 720							array(0,0,0,0,1,0,0,0,0),
 721							array(0,0,0,0,1,0,0,0,0),
 722							array(0,0,0,0,1,0,0,0,0),
 723							array(0,0,0,0,1,0,0,0,0),
 724							array(0,0,0,0,1,0,0,0,0),
 725							array(0,0,0,0,1,0,0,0,0),
 726							array(0,0,0,0,1,0,0,0,0),
 727							array(0,0,0,0,1,0,0,0,0),
 728							array(0,0,0,0,1,0,0,0,0),
 729							array(0,0,0,0,1,0,0,0,0),
 730							array(0,0,0,0,1,0,0,0,0),
 731							array(0,0,0,0,1,0,0,0,0),
 732							array(1,1,1,1,1,1,1,1,1),
 733						),
 734						array(
 735							array(0,0,0,1,1,1,0,0,0),
 736							array(0,0,0,0,1,0,0,0,0),
 737							array(0,0,0,0,1,0,0,0,0),
 738							array(0,0,0,0,1,0,0,0,0),
 739							array(0,0,0,0,1,0,0,0,0),
 740							array(0,0,0,0,1,0,0,0,0),
 741							array(0,0,0,0,1,0,0,0,0),
 742							array(0,0,0,0,1,0,0,0,0),
 743							array(0,0,0,0,1,0,0,0,0),
 744							array(0,0,0,0,1,0,0,0,0),
 745							array(0,0,0,0,1,0,0,0,0),
 746							array(0,0,0,0,1,0,0,0,0),
 747							array(0,0,0,0,1,0,0,0,0),
 748							array(0,0,0,0,1,0,0,0,0),
 749							array(0,0,0,1,1,1,0,0,0),
 750						),
 751						array(
 752							array(0,0,0,0,0,0,0,0,0),
 753							array(0,0,0,0,0,0,0,0,0),
 754							array(0,0,0,0,0,0,0,0,0),
 755							array(0,0,0,0,1,0,0,0,0),
 756							array(0,0,0,1,1,1,0,0,0),
 757							array(0,0,0,0,1,0,0,0,0),
 758							array(0,0,0,0,0,0,0,0,0),
 759							array(0,0,0,0,1,0,0,0,0),
 760							array(0,0,0,0,1,0,0,0,0),
 761							array(0,0,0,0,1,0,0,0,0),
 762							array(0,0,0,0,1,0,0,0,0),
 763							array(0,0,0,0,1,0,0,0,0),
 764							array(0,0,0,0,1,0,0,0,0),
 765							array(0,0,0,0,1,0,0,0,0),
 766							array(0,0,0,1,1,1,0,0,0),
 767						),
 768					),
 769		'J' => array(
 770						array(
 771							array(1,1,1,1,1,1,1,1,1),
 772							array(0,0,0,0,0,1,0,0,0),
 773							array(0,0,0,0,0,1,0,0,0),
 774							array(0,0,0,0,0,1,0,0,0),
 775							array(0,0,0,0,0,1,0,0,0),
 776							array(0,0,0,0,0,1,0,0,0),
 777							array(0,0,0,0,0,1,0,0,0),
 778							array(0,0,0,0,0,1,0,0,0),
 779							array(0,0,0,0,0,1,0,0,0),
 780							array(0,0,0,0,0,1,0,0,0),
 781							array(0,0,0,0,0,1,0,0,0),
 782							array(1,0,0,0,0,1,0,0,0),
 783							array(1,0,0,0,0,1,0,0,0),
 784							array(0,1,0,0,1,0,0,0,0),
 785							array(0,0,1,1,0,0,0,0,0),
 786						),
 787						array(
 788							array(1,1,1,1,1,1,1,1,1),
 789							array(0,0,0,0,0,1,0,0,0),
 790							array(0,0,0,0,0,1,0,0,0),
 791							array(0,0,0,0,0,1,0,0,0),
 792							array(0,0,0,0,0,1,0,0,0),
 793							array(0,0,0,0,0,1,0,0,0),
 794							array(0,0,0,0,0,1,0,0,0),
 795							array(0,0,0,0,0,1,0,0,0),
 796							array(0,0,0,0,0,1,0,0,0),
 797							array(0,0,0,0,0,1,0,0,0),
 798							array(0,0,0,0,0,1,0,0,0),
 799							array(1,0,0,0,0,1,0,0,0),
 800							array(1,0,0,0,0,1,0,0,0),
 801							array(1,1,0,0,1,0,0,0,0),
 802							array(1,0,1,1,0,0,0,0,0),
 803						),
 804						array(
 805							array(0,0,0,0,0,0,0,0,0),
 806							array(0,0,0,0,0,0,0,0,0),
 807							array(0,0,0,0,0,0,0,0,0),
 808							array(0,0,0,0,0,0,0,0,0),
 809							array(0,0,0,0,0,1,0,0,0),
 810							array(0,0,0,0,0,0,0,0,0),
 811							array(0,0,0,0,0,1,0,0,0),
 812							array(0,0,0,0,0,1,0,0,0),
 813							array(0,0,0,0,0,1,0,0,0),
 814							array(0,0,0,0,0,1,0,0,0),
 815							array(0,0,0,0,0,1,0,0,0),
 816							array(1,0,0,0,0,1,0,0,0),
 817							array(1,0,0,0,0,1,0,0,0),
 818							array(0,1,0,0,1,0,0,0,0),
 819							array(0,0,1,1,0,0,0,0,0),
 820						),
 821					),
 822		'K' => array(
 823						array(    // New 'K', supplied by NeoThermic
 824							array(1,0,0,0,0,0,0,0,1),
 825							array(1,0,0,0,0,0,0,1,0),
 826							array(1,0,0,0,0,0,1,0,0),
 827							array(1,0,0,0,0,1,0,0,0),
 828							array(1,0,0,0,1,0,0,0,0),
 829							array(1,0,0,1,0,0,0,0,0),
 830							array(1,0,1,0,0,0,0,0,0),
 831							array(1,1,0,0,0,0,0,0,0),
 832							array(1,0,1,0,0,0,0,0,0),
 833							array(1,0,0,1,0,0,0,0,0),
 834							array(1,0,0,0,1,0,0,0,0),
 835							array(1,0,0,0,0,1,0,0,0),
 836							array(1,0,0,0,0,0,1,0,0),
 837							array(1,0,0,0,0,0,0,1,0),
 838							array(1,0,0,0,0,0,0,0,1),
 839						),
 840						array(
 841							array(0,1,0,0,0,0,0,0,1),
 842							array(0,1,0,0,0,0,0,1,0),
 843							array(0,1,0,0,0,0,1,0,0),
 844							array(0,1,0,0,0,1,0,0,0),
 845							array(0,1,0,0,1,0,0,0,0),
 846							array(0,1,0,1,0,0,0,0,0),
 847							array(0,1,1,0,0,0,0,0,0),
 848							array(0,1,0,0,0,0,0,0,0),
 849							array(0,1,1,0,0,0,0,0,0),
 850							array(0,1,0,1,0,0,0,0,0),
 851							array(0,1,0,0,1,0,0,0,0),
 852							array(0,1,0,0,0,1,0,0,0),
 853							array(0,1,0,0,0,0,1,0,0),
 854							array(0,1,0,0,0,0,0,1,0),
 855							array(1,1,1,0,0,0,1,1,1),
 856						),
 857						array(
 858							array(0,0,0,0,0,0,0,0,0),
 859							array(0,1,0,0,0,0,0,0,0),
 860							array(0,1,0,0,0,0,0,0,0),
 861							array(0,1,0,0,0,1,0,0,0),
 862							array(0,1,0,0,1,0,0,0,0),
 863							array(0,1,0,1,0,0,0,0,0),
 864							array(0,1,1,0,0,0,0,0,0),
 865							array(0,1,0,0,0,0,0,0,0),
 866							array(0,1,1,0,0,0,0,0,0),
 867							array(0,1,0,1,0,0,0,0,0),
 868							array(0,1,0,0,1,0,0,0,0),
 869							array(0,1,0,0,0,1,0,0,0),
 870							array(0,1,0,0,0,0,1,0,0),
 871							array(0,1,0,0,0,0,0,1,0),
 872							array(0,1,0,0,0,0,0,1,0),
 873						),
 874					),
 875		'L' => array(
 876						array(
 877							array(0,0,0,0,0,0,0,0,0),
 878							array(1,0,0,0,0,0,0,0,0),
 879							array(1,0,0,0,0,0,0,0,0),
 880							array(1,0,0,0,0,0,0,0,0),
 881							array(1,0,0,0,0,0,0,0,0),
 882							array(1,0,0,0,0,0,0,0,0),
 883							array(1,0,0,0,0,0,0,0,0),
 884							array(1,0,0,0,0,0,0,0,0),
 885							array(1,0,0,0,0,0,0,0,0),
 886							array(1,0,0,0,0,0,0,0,0),
 887							array(1,0,0,0,0,0,0,0,0),
 888							array(1,0,0,0,0,0,0,0,0),
 889							array(1,0,0,0,0,0,0,0,0),
 890							array(1,0,0,0,0,0,0,0,0),
 891							array(1,1,1,1,1,1,1,1,1),
 892						),
 893						array(
 894							array(0,0,0,0,0,0,0,0,0),
 895							array(0,1,0,0,0,0,0,0,0),
 896							array(0,1,0,0,0,0,0,0,0),
 897							array(0,1,0,0,0,0,0,0,0),
 898							array(0,1,0,0,0,0,0,0,0),
 899							array(0,1,0,0,0,0,0,0,0),
 900							array(0,1,0,0,0,0,0,0,0),
 901							array(0,1,0,0,0,0,0,0,0),
 902							array(0,1,0,0,0,0,0,0,0),
 903							array(0,1,0,0,0,0,0,0,0),
 904							array(0,1,0,0,0,0,0,0,0),
 905							array(0,1,0,0,0,0,0,0,0),
 906							array(0,1,0,0,0,0,0,0,0),
 907							array(0,1,0,0,0,0,0,0,1),
 908							array(1,1,1,1,1,1,1,1,1),
 909						),
 910						array(
 911							array(0,0,0,0,0,0,0,0,0),
 912							array(0,1,0,0,0,0,0,0,0),
 913							array(0,1,0,0,0,0,0,0,0),
 914							array(0,1,0,0,0,0,0,0,0),
 915							array(0,1,0,0,0,0,0,0,0),
 916							array(0,1,0,0,0,0,0,0,0),
 917							array(0,1,0,0,0,0,0,0,0),
 918							array(0,1,0,0,0,0,0,0,0),
 919							array(0,1,0,0,0,0,0,0,0),
 920							array(0,1,0,0,0,0,0,0,0),
 921							array(0,1,0,0,0,0,0,0,0),
 922							array(0,1,0,0,0,0,0,0,0),
 923							array(0,1,0,0,0,0,0,0,0),
 924							array(0,1,1,0,0,0,0,0,0),
 925							array(0,0,1,1,1,0,0,0,0),
 926						),
 927					),
 928		'M' => array(
 929						array(
 930							array(1,1,0,0,0,0,0,1,1),
 931							array(1,1,0,0,0,0,0,1,1),
 932							array(1,0,1,0,0,0,1,0,1),
 933							array(1,0,1,0,0,0,1,0,1),
 934							array(1,0,1,0,0,0,1,0,1),
 935							array(1,0,0,1,0,1,0,0,1),
 936							array(1,0,0,1,0,1,0,0,1),
 937							array(1,0,0,1,0,1,0,0,1),
 938							array(1,0,0,0,1,0,0,0,1),
 939							array(1,0,0,0,1,0,0,0,1),
 940							array(1,0,0,0,0,0,0,0,1),
 941							array(1,0,0,0,0,0,0,0,1),
 942							array(1,0,0,0,0,0,0,0,1),
 943							array(1,0,0,0,0,0,0,0,1),
 944							array(1,0,0,0,0,0,0,0,1),
 945						),
 946						array(
 947							array(0,0,0,0,0,0,0,0,0),
 948							array(0,1,0,0,0,0,0,1,0),
 949							array(0,1,1,0,0,0,1,1,0),
 950							array(0,1,1,0,0,0,1,1,0),
 951							array(0,1,1,0,0,0,1,1,0),
 952							array(0,1,0,1,0,1,0,1,0),
 953							array(0,1,0,1,0,1,0,1,0),
 954							array(0,1,0,1,0,1,0,1,0),
 955							array(0,1,0,0,1,0,0,1,0),
 956							array(0,1,0,0,1,0,0,1,0),
 957							array(0,1,0,0,0,0,0,1,0),
 958							array(0,1,0,0,0,0,0,1,0),
 959							array(0,1,0,0,0,0,0,1,0),
 960							array(0,1,0,0,0,0,0,1,0),
 961							array(1,1,1,0,0,0,1,1,1),
 962						),
 963						array(
 964							array(0,0,0,0,0,0,0,0,0),
 965							array(0,0,0,0,0,0,0,0,0),
 966							array(0,0,0,0,0,0,0,0,0),
 967							array(0,0,0,0,0,0,0,0,0),
 968							array(0,0,0,0,0,0,0,0,0),
 969							array(0,0,0,0,0,0,0,0,0),
 970							array(0,1,1,1,0,1,1,1,0),
 971							array(1,1,0,1,1,1,0,1,1),
 972							array(1,0,0,0,1,0,0,0,1),
 973							array(1,0,0,0,1,0,0,0,1),
 974							array(1,0,0,0,1,0,0,0,1),
 975							array(1,0,0,0,1,0,0,0,1),
 976							array(1,0,0,0,1,0,0,0,1),
 977							array(1,0,0,0,1,0,0,0,1),
 978							array(1,0,0,0,1,0,0,0,1),
 979						),
 980					),
 981		'N' => array(
 982						array(
 983							array(1,1,0,0,0,0,0,0,1),
 984							array(1,1,0,0,0,0,0,0,1),
 985							array(1,0,1,0,0,0,0,0,1),
 986							array(1,0,1,0,0,0,0,0,1),
 987							array(1,0,0,1,0,0,0,0,1),
 988							array(1,0,0,1,0,0,0,0,1),
 989							array(1,0,0,0,1,0,0,0,1),
 990							array(1,0,0,0,1,0,0,0,1),
 991							array(1,0,0,0,1,0,0,0,1),
 992							array(1,0,0,0,0,1,0,0,1),
 993							array(1,0,0,0,0,1,0,0,1),
 994							array(1,0,0,0,0,0,1,0,1),
 995							array(1,0,0,0,0,0,1,0,1),
 996							array(1,0,0,0,0,0,0,1,1),
 997							array(1,0,0,0,0,0,0,1,1),
 998						),
 999						array(
1000							array(0,0,0,0,0,0,0,0,0),
1001							array(0,1,0,0,0,0,0,1,0),
1002							array(0,1,1,0,0,0,0,1,0),
1003							array(0,1,1,0,0,0,0,1,0),
1004							array(0,1,1,0,0,0,0,1,0),
1005							array(0,1,0,1,0,0,0,1,0),
1006							array(0,1,0,1,0,0,0,1,0),
1007							array(0,1,0,1,0,0,0,1,0),
1008							array(0,1,0,0,1,0,0,1,0),
1009							array(0,1,0,0,1,1,0,1,0),
1010							array(0,1,0,0,0,1,0,1,0),
1011							array(0,1,0,0,0,1,1,1,0),
1012							array(0,1,0,0,0,0,1,1,0),
1013							array(0,1,0,0,0,0,0,1,0),
1014							array(1,1,1,0,0,0,1,1,1),
1015						),
1016						array(
1017							array(0,0,0,0,0,0,0,0,0),
1018							array(0,0,0,0,0,0,0,0,0),
1019							array(0,0,0,0,0,0,0,0,0),
1020							array(0,0,0,0,0,0,0,0,0),
1021							array(0,0,0,0,0,0,0,0,0),
1022							array(0,0,0,0,0,0,0,0,0),
1023							array(0,0,0,0,0,0,0,0,0),
1024							array(1,0,1,1,1,1,0,0,0),
1025							array(1,1,1,0,0,1,1,0,0),
1026							array(1,0,0,0,0,0,1,0,0),
1027							array(1,0,0,0,0,0,1,0,0),
1028							array(1,0,0,0,0,0,1,0,0),
1029							array(1,0,0,0,0,0,1,0,0),
1030							array(1,0,0,0,0,0,1,0,0),
1031							array(1,0,0,0,0,0,1,0,0),
1032						),
1033					),
1034		'O' => array(
1035						array(
1036							array(0,0,1,1,1,1,1,0,0),
1037							array(0,1,0,0,0,0,0,1,0),
1038							array(1,0,0,0,0,0,0,0,1),
1039							array(1,0,0,0,0,0,0,0,1),
1040							array(1,0,0,0,0,0,0,0,1),
1041							array(1,0,0,0,0,0,0,0,1),
1042							array(1,0,0,0,0,0,0,0,1),
1043							array(1,0,0,0,0,0,0,0,1),
1044							array(1,0,0,0,0,0,0,0,1),
1045							array(1,0,0,0,0,0,0,0,1),
1046							array(1,0,0,0,0,0,0,0,1),
1047							array(1,0,0,0,0,0,0,0,1),
1048							array(1,0,0,0,0,0,0,0,1),
1049							array(0,1,0,0,0,0,0,1,0),
1050							array(0,0,1,1,1,1,1,0,0),
1051						),
1052						array(
1053							array(0,0,1,1,1,1,1,0,0),
1054							array(0,1,0,0,0,0,0,1,0),
1055							array(1,1,0,0,0,0,0,1,1),
1056							array(1,1,0,0,0,0,0,1,1),
1057							array(1,1,0,0,0,0,0,1,1),
1058							array(1,1,0,0,0,0,0,1,1),
1059							array(1,1,0,0,0,0,0,1,1),
1060							array(1,1,0,0,0,0,0,1,1),
1061							array(1,1,0,0,0,0,0,1,1),
1062							array(1,1,0,0,0,0,0,1,1),
1063							array(1,1,0,0,0,0,0,1,1),
1064							array(1,1,0,0,0,0,0,1,1),
1065							array(1,1,0,0,0,0,0,1,1),
1066							array(0,1,0,0,0,0,0,1,0),
1067							array(0,0,1,1,1,1,1,0,0),
1068						),
1069						array(
1070							array(0,0,0,0,0,0,0,0,0),
1071							array(0,0,0,0,0,0,0,0,0),
1072							array(0,0,0,0,0,0,0,0,0),
1073							array(0,0,0,0,0,0,0,0,0),
1074							array(0,0,0,0,0,0,0,0,0),
1075							array(0,0,0,0,0,0,0,0,0),
1076							array(0,0,0,0,0,0,0,0,0),
1077							array(0,1,1,1,1,1,0,0,0),
1078							array(1,1,1,0,0,1,1,0,0),
1079							array(1,0,0,0,0,0,1,0,0),
1080							array(1,0,0,0,0,0,1,0,0),
1081							array(1,0,0,0,0,0,1,0,0),
1082							array(1,0,0,0,0,0,1,0,0),
1083							array(1,1,0,0,0,1,1,0,0),
1084							array(0,1,1,1,1,1,0,0,0),
1085						),
1086					),
1087		'P' => array(
1088						array(
1089							array(1,1,1,1,1,1,1,0,0),
1090							array(1,0,0,0,0,0,0,1,0),
1091							array(1,0,0,0,0,0,0,0,1),
1092							array(1,0,0,0,0,0,0,0,1),
1093							array(1,0,0,0,0,0,0,0,1),
1094							array(1,0,0,0,0,0,0,0,1),
1095							array(1,0,0,0,0,0,0,1,0),
1096							array(1,1,1,1,1,1,1,0,0),
1097							array(1,0,0,0,0,0,0,0,0),
1098							array(1,0,0,0,0,0,0,0,0),
1099							array(1,0,0,0,0,0,0,0,0),
1100							array(1,0,0,0,0,0,0,0,0),
1101							array(1,0,0,0,0,0,0,0,0),
1102							array(1,0,0,0,0,0,0,0,0),
1103							array(1,0,0,0,0,0,0,0,0),
1104						),
1105						array(
1106							array(1,1,1,1,1,1,1,0,0),
1107							array(0,1,0,0,0,0,0,1,0),
1108							array(0,1,0,0,0,0,0,0,1),
1109							array(0,1,0,0,0,0,0,0,1),
1110							array(0,1,0,0,0,0,0,0,1),
1111							array(0,1,0,0,0,0,0,0,1),
1112							array(0,1,0,0,0,0,0,1,0),
1113							array(1,1,1,1,1,1,1,0,0),
1114							array(0,1,0,0,0,0,0,0,0),
1115							array(0,1,0,0,0,0,0,0,0),
1116							array(0,1,0,0,0,0,0,0,0),
1117							array(0,1,0,0,0,0,0,0,0),
1118							array(0,1,0,0,0,0,0,0,0),
1119							array(0,1,0,0,0,0,0,0,0),
1120							array(1,1,1,0,0,0,0,0,0),
1121						),
1122						array(
1123							array(0,0,0,0,0,0,0,0,0),
1124							array(0,0,0,0,0,0,0,0,0),
1125							array(1,0,0,0,0,0,0,0,0),
1126							array(1,0,1,1,0,0,0,0,0),
1127							array(1,1,0,1,1,0,0,0,0),
1128							array(1,0,0,0,1,0,0,0,0),
1129							array(1,0,0,0,1,0,0,0,0),
1130							array(1,0,0,1,1,0,0,0,0),
1131							array(1,1,1,1,0,0,0,0,0),
1132							array(1,0,0,0,0,0,0,0,0),
1133							array(1,0,0,0,0,0,0,0,0),
1134							array(1,0,0,0,0,0,0,0,0),
1135							array(1,0,0,0,0,0,0,0,0),
1136							array(1,0,0,0,0,0,0,0,0),
1137							array(1,0,0,0,0,0,0,0,0),
1138						),
1139					),
1140		'Q' => array(
1141						array(
1142							array(0,0,1,1,1,1,1,0,0),
1143							array(0,1,0,0,0,0,0,1,0),
1144							array(1,0,0,0,0,0,0,0,1),
1145							array(1,0,0,0,0,0,0,0,1),
1146							array(1,0,0,0,0,0,0,0,1),
1147							array(1,0,0,0,0,0,0,0,1),
1148							array(1,0,0,0,0,0,0,0,1),
1149							array(1,0,0,0,0,0,0,0,1),
1150							array(1,0,0,0,0,0,0,0,1),
1151							array(1,0,0,0,0,0,0,0,1),
1152							array(1,0,0,0,0,0,0,0,1),
1153							array(1,0,0,0,0,1,0,0,1),
1154							array(1,0,0,0,0,0,1,0,1),
1155							array(0,1,0,0,0,0,0,1,0),
1156							array(0,0,1,1,1,1,1,0,1),
1157						),
1158						array(
1159							array(0,0,1,1,1,1,1,0,0),
1160							array(0,1,0,0,0,0,0,1,0),
1161							array(1,0,0,0,0,0,0,0,1),
1162							array(1,0,0,0,0,0,0,0,1),
1163							array(1,0,0,0,0,0,0,0,1),
1164							array(1,0,0,0,0,0,0,0,1),
1165							array(1,0,0,0,0,0,0,0,1),
1166							array(1,0,0,0,0,0,0,0,1),
1167							array(1,0,0,0,0,0,0,0,1),
1168							array(1,0,0,0,1,0,0,0,1),
1169							array(1,1,0,0,1,1,0,1,1),
1170							array(0,1,1,1,1,1,1,1,0),
1171							array(0,0,0,0,0,0,1,1,0),
1172							array(0,0,0,0,0,0,0,1,1),
1173							array(0,0,0,0,0,0,0,0,1),
1174						),
1175						array(
1176							array(0,0,0,0,0,0,0,0,0),
1177							array(0,0,0,0,0,0,0,0,0),
1178							array(0,0,0,0,0,0,0,0,0),
1179							array(0,0,0,0,0,1,1,1,1),
1180							array(0,0,0,0,1,1,0,0,1),
1181							array(0,0,0,0,1,0,0,0,1),
1182							array(0,0,0,0,1,0,0,0,1),
1183							array(0,0,0,0,1,1,0,1,1),
1184							array(0,0,0,0,0,1,1,0,1),
1185							array(0,0,0,0,0,0,0,0,1),
1186							array(0,0,0,0,0,0,0,0,1),
1187							array(0,0,0,0,0,0,0,0,1),
1188							array(0,0,0,0,0,0,0,0,1),
1189							array(0,0,0,0,0,0,0,0,1),
1190							array(0,0,0,0,0,0,0,0,1),
1191						),
1192					),
1193		'R' => array(
1194						array(
1195							array(1,1,1,1,1,1,1,0,0),
1196							array(1,0,0,0,0,0,0,1,0),
1197							array(1,0,0,0,0,0,0,0,1),
1198							array(1,0,0,0,0,0,0,0,1),
1199							array(1,0,0,0,0,0,0,0,1),
1200							array(1,0,0,0,0,0,0,0,1),
1201							array(1,0,0,0,0,0,0,1,0),
1202							array(1,1,1,1,1,1,1,0,0),
1203							array(1,1,1,0,0,0,0,0,0),
1204							array(1,0,0,1,0,0,0,0,0),
1205							array(1,0,0,0,1,0,0,0,0),
1206							array(1,0,0,0,0,1,0,0,0),
1207							array(1,0,0,0,0,0,1,0,0),
1208							array(1,0,0,0,0,0,0,1,0),
1209							array(1,0,0,0,0,0,0,0,1),
1210						),
1211						array(
1212							array(1,1,1,1,1,1,1,0,0),
1213							array(0,1,0,0,0,0,0,1,0),
1214							array(0,1,0,0,0,0,0,0,1),
1215							array(0,1,0,0,0,0,0,0,1),
1216							array(0,1,0,0,0,0,0,0,1),
1217							array(0,1,0,0,0,0,0,0,1),
1218							array(0,1,0,0,0,0,0,1,0),
1219							array(1,1,1,1,1,1,1,0,0),
1220							array(0,1,1,0,0,0,0,0,0),
1221							array(0,1,1,1,0,0,0,0,0),
1222							array(0,1,0,1,1,0,0,0,0),
1223							array(0,1,0,0,1,1,0,0,0),
1224							array(0,1,0,0,0,1,1,0,0),
1225							array(0,1,0,0,0,0,1,1,0),
1226							array(1,1,1,0,0,0,1,1,1),
1227						),
1228						array(
1229							array(0,0,0,0,0,0,0,0,0),
1230							array(0,0,0,0,0,0,0,0,0),
1231							array(0,0,0,0,0,0,0,0,0),
1232							array(0,0,0,0,0,0,0,0,0),
1233							array(0,0,0,0,0,0,0,0,0),
1234							array(0,0,0,0,0,0,0,0,0),
1235							array(1,0,0,0,0,0,0,0,0),
1236							array(1,1,1,1,1,0,0,0,0),
1237							array(1,1,0,0,1,1,0,0,0),
1238							array(1,0,0,0,0,0,0,0,0),
1239							array(1,0,0,0,0,0,0,0,0),
1240							array(1,0,0,0,0,0,0,0,0),
1241							array(1,0,0,0,0,0,0,0,0),
1242							array(1,0,0,0,0,0,0,0,0),
1243							array(1,0,0,0,0,0,0,0,0),
1244						),
1245					),
1246		'S' => array(
1247						array(
1248							array(0,0,1,1,1,1,1,0,0),
1249							array(0,1,0,0,0,0,0,1,0),
1250							array(1,0,0,0,0,0,0,0,1),
1251							array(1,0,0,0,0,0,0,0,0),
1252							array(1,0,0,0,0,0,0,0,0),
1253							array(1,0,0,0,0,0,0,0,0),
1254							array(0,1,0,0,0,0,0,0,0),
1255							array(0,0,1,1,1,1,1,0,0),
1256							array(0,0,0,0,0,0,0,1,0),
1257							array(0,0,0,0,0,0,0,0,1),
1258							array(0,0,0,0,0,0,0,0,1),
1259							array(0,0,0,0,0,0,0,0,1),
1260							array(1,0,0,0,0,0,0,0,1),
1261							array(0,1,0,0,0,0,0,1,0),
1262							array(0,0,1,1,1,1,1,0,0),
1263						),
1264						array(
1265							array(0,0,1,1,1,1,1,0,1),
1266							array(0,1,0,0,0,0,0,1,1),
1267							array(1,0,0,0,0,0,0,0,1),
1268							array(1,0,0,0,0,0,0,0,1),
1269							array(1,0,0,0,0,0,0,0,0),
1270							array(1,0,0,0,0,0,0,0,0),
1271							array(0,1,0,0,0,0,0,0,0),
1272							array(0,0,1,1,1,1,1,0,0),
1273							array(0,0,0,0,0,0,0,1,0),
1274							array(0,0,0,0,0,0,0,0,1),
1275							array(1,0,0,0,0,0,0,0,1),
1276							array(1,0,0,0,0,0,0,0,1),
1277							array(1,0,0,0,0,0,0,0,1),
1278							array(1,1,0,0,0,0,0,1,0),
1279							array(1,0,1,1,1,1,1,0,0),
1280						),
1281						array(
1282							array(0,0,0,0,0,0,0,0,0),
1283							array(0,0,0,0,0,0,0,0,0),
1284							array(0,0,0,0,0,0,0,0,0),
1285							array(0,0,0,0,0,0,0,0,0),
1286							array(0,0,0,0,0,0,0,0,0),
1287							array(0,0,0,0,0,0,0,0,0),
1288							array(0,0,0,0,0,0,0,0,0),
1289							array(0,1,1,1,1,0,0,0,0),
1290							array(1,0,0,0,0,1,0,0,0),
1291							array(1,0,0,0,0,0,0,0,0),
1292							array(1,1,0,0,0,0,0,0,0),
1293							array(0,1,1,1,1,0,0,0,0),
1294							array(0,0,0,0,0,1,0,0,0),
1295							array(1,0,0,0,1,1,0,0,0),
1296							array(0,1,1,1,1,0,0,0,0),
1297						),
1298					),
1299		'T' => array(
1300						array(
1301							array(1,1,1,1,1,1,1,1,1),
1302							array(0,0,0,0,1,0,0,0,0),
1303							array(0,0,0,0,1,0,0,0,0),
1304							array(0,0,0,0,1,0,0,0,0),
1305							array(0,0,0,0,1,0,0,0,0),
1306							array(0,0,0,0,1,0,0,0,0),
1307							array(0,0,0,0,1,0,0,0,0),
1308							array(0,0,0,0,1,0,0,0,0),
1309							array(0,0,0,0,1,0,0,0,0),
1310							array(0,0,0,0,1,0,0,0,0),
1311							array(0,0,0,0,1,0,0,0,0),
1312							array(0,0,0,0,1,0,0,0,0),
1313							array(0,0,0,0,1,0,0,0,0),
1314							array(0,0,0,0,1,0,0,0,0),
1315							array(0,0,0,0,1,0,0,0,0),
1316						),
1317						array(
1318							array(1,1,1,1,1,1,1,1,1),
1319							array(1,0,0,0,1,0,0,0,1),
1320							array(0,0,0,0,1,0,0,0,0),
1321							array(0,0,0,0,1,0,0,0,0),
1322							array(0,0,0,0,1,0,0,0,0),
1323							array(0,0,0,0,1,0,0,0,0),
1324							array(0,0,0,0,1,0,0,0,0),
1325							array(0,0,0,0,1,0,0,0,0),
1326							array(0,0,0,0,1,0,0,0,0),
1327							array(0,0,0,0,1,0,0,0,0),
1328							array(0,0,0,0,1,0,0,0,0),
1329							array(0,0,0,0,1,0,0,0,0),
1330							array(0,0,0,0,1,0,0,0,0),
1331							array(0,0,0,0,1,0,0,0,0),
1332							array(0,0,0,1,1,1,0,0,0),
1333						),
1334						array(
1335							array(0,0,0,0,1,0,0,0,0),
1336							array(0,0,0,0,1,0,0,0,0),
1337							array(0,0,0,0,1,0,0,0,0),
1338							array(0,0,1,1,1,1,1,1,0),
1339							array(0,0,0,0,1,0,0,0,0),
1340							array(0,0,0,0,1,0,0,0,0),
1341							array(0,0,0,0,1,0,0,0,0),
1342							array(0,0,0,0,1,0,0,0,0),
1343							array(0,0,0,0,1,0,0,0,0),
1344							array(0,0,0,0,1,0,0,0,0),
1345							array(0,0,0,0,1,0,0,0,0),
1346							array(0,0,0,0,1,0,0,0,0),
1347							array(0,0,0,0,1,0,0,0,0),
1348							array(0,0,0,0,1,1,0,0,0),
1349							array(0,0,0,0,0,1,1,1,0),
1350						),
1351					),
1352		'U' => array(
1353						array(
1354							array(1,0,0,0,0,0,0,0,1),
1355							array(1,0,0,0,0,0,0,0,1),
1356							array(1,0,0,0,0,0,0,0,1),
1357							array(1,0,0,0,0,0,0,0,1),
1358							array(1,0,0,0,0,0,0,0,1),
1359							array(1,0,0,0,0,0,0,0,1),
1360							array(1,0,0,0,0,0,0,0,1),
1361							array(1,0,0,0,0,0,0,0,1),
1362							array(1,0,0,0,0,0,0,0,1),
1363							array(1,0,0,0,0,0,0,0,1),
1364							array(1,0,0,0,0,0,0,0,1),
1365							array(1,0,0,0,0,0,0,0,1),
1366							array(1,0,0,0,0,0,0,0,1),
1367							array(0,1,0,0,0,0,0,1,0),
1368							array(0,0,1,1,1,1,1,0,0),
1369						),
1370						array(
1371							array(1,0,0,0,0,0,0,0,0),
1372							array(1,1,1,0,0,0,1,1,1),
1373							array(0,1,0,0,0,0,0,1,0),
1374							array(0,1,0,0,0,0,0,1,0),
1375							array(0,1,0,0,0,0,0,1,0),
1376							array(0,1,0,0,0,0,0,1,0),
1377							array(0,1,0,0,0,0,0,1,0),
1378							array(0,1,0,0,0,0,0,1,0),
1379							array(0,1,0,0,0,0,0,1,0),
1380							array(0,1,0,0,0,0,0,1,0),
1381							array(0,1,0,0,0,0,0,1,0),
1382							array(0,1,0,0,0,0,0,1,0),
1383							array(0,1,0,0,0,0,0,1,0),
1384							array(0,1,1,0,0,0,1,1,0),
1385							array(0,0,1,1,1,1,1,0,0),
1386						),
1387						array(
1388							array(0,0,0,0,0,0,0,0,0),
1389							array(0,0,0,0,0,0,0,0,0),
1390							array(0,0,0,0,0,0,0,0,0),
1391							array(0,0,0,0,0,0,0,0,0),
1392							array(0,0,0,0,0,0,0,0,0),
1393							array(0,0,0,0,0,0,0,0,0),
1394							array(0,0,0,0,0,0,0,0,0),
1395							array(0,0,1,0,0,0,0,0,1),
1396							array(0,0,1,0,0,0,0,0,1),
1397							array(0,0,1,0,0,0,0,0,1),
1398							array(0,0,1,0,0,0,0,0,1),
1399							array(0,0,1,0,0,0,0,0,1),
1400							array(0,0,1,0,0,0,0,1,1),
1401							array(0,0,1,1,0,0,1,1,1),
1402							array(0,0,0,1,1,1,1,0,1),
1403						),
1404					),
1405		'V' => array(
1406						array(
1407							array(1,0,0,0,0,0,0,0,1),
1408							array(1,0,0,0,0,0,0,0,1),
1409							array(1,0,0,0,0,0,0,0,1),
1410							array(0,1,0,0,0,0,0,1,0),
1411							array(0,1,0,0,0,0,0,1,0),
1412							array(0,1,0,0,0,0,0,1,0),
1413							array(0,0,1,0,0,0,1,0,0),
1414							array(0,0,1,0,0,0,1,0,0),
1415							array(0,0,1,0,0,0,1,0,0),
1416							array(0,0,1,0,0,0,1,0,0),
1417							array(0,0,0,1,0,1,0,0,0),
1418							array(0,0,0,1,0,1,0,0,0),
1419							array(0,0,0,1,0,1,0,0,0),
1420							array(0,0,0,0,1,0,0,0,0),
1421							array(0,0,0,0,1,0,0,0,0),
1422						),
1423						array(
1424							array(0,0,0,0,0,0,0,0,0),
1425							array(0,0,0,0,0,0,0,0,0),
1426							array(0,0,0,0,0,0,0,0,0),
1427							array(1,1,1,0,0,0,1,1,1),
1428							array(0,1,0,0,0,0,0,1,0),
1429							array(0,1,0,0,0,0,0,1,0),
1430							array(0,0,1,0,0,0,1,0,0),
1431							array(0,0,1,0,0,0,1,0,0),
1432							array(0,0,1,0,0,0,1,0,0),
1433							array(0,0,1,0,0,0,1,0,0),
1434							array(0,0,0,1,0,1,0,0,0),
1435							array(0,0,0,1,0,1,0,0,0),
1436							array(0,0,0,1,0,1,0,0,0),
1437							array(0,0,0,0,1,0,0,0,0),
1438							array(0,0,0,0,1,0,0,0,0),
1439						),
1440						array(
1441							array(0,0,0,0,0,0,0,0,0),
1442							array(0,0,0,0,0,0,0,0,0),
1443							array(0,0,0,0,0,0,0,0,0),
1444							array(0,0,0,0,0,0,0,0,0),
1445							array(0,0,0,0,0,0,0,0,0),
1446							array(0,0,0,0,0,0,0,0,0),
1447							array(0,0,1,0,0,0,1,0,0),
1448							array(0,0,1,0,0,0,1,0,0),
1449							array(0,0,1,0,0,0,1,0,0),
1450							array(0,0,1,0,0,0,1,0,0),
1451							array(0,0,0,1,0,1,0,0,0),
1452							array(0,0,0,1,0,1,0,0,0),
1453							array(0,0,0,1,0,1,0,0,0),
1454							array(0,0,0,0,1,0,0,0,0),
1455							array(0,0,0,0,1,0,0,0,0),
1456						),
1457					),
1458		'W' => array(
1459						array(
1460							array(1,0,0,0,0,0,0,0,1),
1461							array(1,0,0,0,0,0,0,0,1),
1462							array(1,0,0,0,0,0,0,0,1),
1463							array(1,0,0,0,0,0,0,0,1),
1464							array(1,0,0,0,0,0,0,0,1),
1465							array(1,0,0,0,1,0,0,0,1),
1466							array(1,0,0,0,1,0,0,0,1),
1467							array(1,0,0,1,0,1,0,0,1),
1468							array(1,0,0,1,0,1,0,0,1),
1469							array(1,0,0,1,0,1,0,0,1),
1470							array(1,0,1,0,0,0,1,0,1),
1471							array(1,0,1,0,0,0,1,0,1),
1472							array(1,0,1,0,0,0,1,0,1),
1473							array(1,1,0,0,0,0,0,1,1),
1474							array(1,1,0,0,0,0,0,1,1),
1475						),
1476						array(
1477							array(0,0,0,0,0,0,0,0,0),
1478							array(0,0,0,0,0,0,0,0,0),
1479							array(1,1,1,0,0,0,1,1,1),
1480							array(0,1,0,0,0,0,0,1,0),
1481							array(0,1,0,0,0,0,0,1,0),
1482							array(0,1,0,0,0,0,0,1,0),
1483							array(0,1,0,0,0,0,0,1,0),
1484							array(0,1,0,0,1,0,0,1,0),
1485							array(0,1,0,0,1,0,0,1,0),
1486							array(0,1,0,1,1,1,0,1,0),
1487							array(0,1,0,1,0,1,0,1,0),
1488							array(0,1,1,1,0,1,1,1,0),
1489							array(0,1,1,0,0,0,1,1,0),
1490							array(0,1,0,0,0,0,0,1,0),
1491							array(0,0,0,0,0,0,0,0,0),
1492						),
1493						array(
1494							array(0,0,0,0,0,0,0,0,0),
1495							array(0,0,0,0,0,0,0,0,0),
1496							array(0,0,0,0,0,0,0,0,0),
1497							array(0,0,0,0,0,0,0,0,0),
1498							array(0,0,0,0,0,0,0,0,0),
1499							array(0,0,0,0,0,0,0,0,0),
1500							array(0,1,0,0,0,0,0,1,0),
1501							array(0,1,0,0,1,0,0,1,0),
1502							array(0,1,0,0,1,0,0,1,0),
1503							array(0,1,0,1,1,1,0,1,0),
1504							array(0,1,0,1,0,1,0,1,0),
1505							array(0,1,1,1,0,1,1,1,0),
1506							array(0,1,1,0,0,0,1,1,0),
1507							array(0,1,0,0,0,0,0,1,0),
1508							array(0,0,0,0,0,0,0,0,0),
1509						),
1510					),
1511		'X' => array(
1512						array(
1513							array(1,0,0,0,0,0,0,0,1),
1514							array(1,0,0,0,0,0,0,0,1),
1515							array(0,1,0,0,0,0,0,1,0),
1516							array(0,1,0,0,0,0,0,1,0),
1517							array(0,0,1,0,0,0,1,0,0),
1518							array(0,0,0,1,0,1,0,0,0),
1519							array(0,0,0,1,0,1,0,0,0),
1520							array(0,0,0,0,1,0,0,0,0),
1521							array(0,0,0,1,0,1,0,0,0),
1522							array(0,0,0,1,0,1,0,0,0),
1523							array(0,0,1,0,0,0,1,0,0),
1524							array(0,1,0,0,0,0,1,0,0),
1525							array(0,1,0,0,0,0,0,1,0),
1526							array(1,0,0,0,0,0,0,0,1),
1527							array(1,0,0,0,0,0,0,0,1),
1528						),
1529						array(
1530							array(0,0,0,0,0,0,0,0,0),
1531							array(1,1,1,0,0,0,1,1,1),
1532							array(0,1,0,0,0,0,0,1,0),
1533							array(0,1,0,0,0,0,0,1,0),
1534							array(0,0,1,0,0,0,1,0,0),
1535							array(0,0,0,1,0,1,0,0,0),
1536							array(0,0,0,1,0,1,0,0,0),
1537							array(0,0,0,0,1,0,0,0,0),
1538							array(0,0,0,1,0,1,0,0,0),
1539							array(0,0,0,1,0,1,0,0,0),
1540							array(0,0,1,0,0,0,1,0,0),
1541							array(0,1,0,0,0,0,1,0,0),
1542							array(0,1,0,0,0,0,0,1,0),
1543							array(1,1,1,0,0,0,1,1,1),
1544							array(0,0,0,0,0,0,0,0,0),
1545						),
1546						array(
1547							array(0,0,0,0,0,0,0,0,0),
1548							array(0,0,0,0,0,0,0,0,0),
1549							array(0,0,0,0,0,0,0,0,0),
1550							array(0,0,0,0,0,0,0,0,0),
1551							array(0,0,0,0,0,0,0,0,0),
1552							array(0,0,0,0,0,0,0,0,0),
1553							array(0,0,0,0,0,0,0,0,0),
1554							array(0,1,0,0,0,0,0,1,0),
1555							array(0,1,1,0,0,0,1,1,0),
1556							array(0,0,1,1,0,1,1,0,0),
1557							array(0,0,0,1,1,1,0,0,0),
1558							array(0,0,0,1,1,1,0,0,0),
1559							array(0,0,1,1,0,1,1,0,0),
1560							array(0,1,1,0,0,0,1,1,0),
1561							array(0,0,0,0,0,0,0,0,0),
1562						),
1563					),
1564		'Y' => array(
1565						array(
1566							array(1,0,0,0,0,0,0,0,1),
1567							array(1,0,0,0,0,0,0,0,1),
1568							array(0,1,0,0,0,0,0,1,0),
1569							array(0,1,0,0,0,0,0,1,0),
1570							array(0,0,1,0,0,0,1,0,0),
1571							array(0,0,1,0,0,0,1,0,0),
1572							array(0,0,0,1,0,1,0,0,0),
1573							array(0,0,0,0,1,0,0,0,0),
1574							array(0,0,0,0,1,0,0,0,0),
1575							array(0,0,0,0,1,0,0,0,0),
1576							array(0,0,0,0,1,0,0,0,0),
1577							array(0,0,0,0,1,0,0,0,0),
1578							array(0,0,0,0,1,0,0,0,0),
1579							array(0,0,0,0,1,0,0,0,0),
1580							array(0,0,0,0,1,0,0,0,0),
1581						),
1582						array(
1583							array(0,0,0,0,0,0,0,0,0),
1584							array(1,1,1,0,0,0,1,1,1),
1585							array(0,1,0,0,0,0,0,1,0),
1586							array(0,1,0,0,0,0,0,1,0),
1587							array(0,0,1,0,0,0,1,0,0),
1588							array(0,0,1,0,0,0,1,0,0),
1589							array(0,0,0,1,0,1,0,0,0),
1590							array(0,0,0,0,1,0,0,0,0),
1591							array(0,0,0,0,1,0,0,0,0),
1592							array(0,0,0,0,1,0,0,0,0),
1593							array(0,0,0,0,1,0,0,0,0),
1594							array(0,0,0,0,1,0,0,0,0),
1595							array(0,0,0,0,1,0,0,0,0),
1596							array(0,0,0,0,1,0,0,0,0),
1597							array(0,0,0,1,1,1,0,0,0),
1598						),
1599						array(
1600							array(0,0,0,0,0,0,0,0,0),
1601							array(0,0,0,0,0,0,0,0,0),
1602							array(0,0,0,0,0,0,0,0,0),
1603							array(0,0,0,0,0,0,0,0,0),
1604							array(0,0,0,1,0,0,0,0,1),
1605							array(0,0,0,1,1,0,0,0,1),
1606							array(0,0,0,0,1,0,0,1,1),
1607							array(0,0,0,0,1,1,0,1,0),
1608							array(0,0,0,0,0,1,1,1,0),
1609							array(0,0,0,0,0,0,1,0,0),
1610							array(0,0,0,0,0,1,1,0,0),
1611							array(0,0,0,0,0,1,0,0,0),
1612							array(0,0,0,0,1,1,0,0,0),
1613							array(0,0,1,1,1,0,0,0,0),
1614							array(0,0,0,0,0,0,0,0,0),
1615						),
1616					),
1617		'Z' => array(
1618						array(
1619							array(1,1,1,1,1,1,1,1,1),
1620							array(1,0,0,0,0,0,0,0,1),
1621							array(0,0,0,0,0,0,0,0,1),
1622							array(0,0,0,0,0,0,0,1,0),
1623							array(0,0,0,0,0,0,1,0,0),
1624							array(0,0,0,0,0,1,0,0,0),
1625							array(0,0,0,0,0,1,0,0,0),
1626							array(0,0,0,0,1,0,0,0,0),
1627							array(0,0,0,1,0,0,0,0,0),
1628							array(0,0,0,1,0,0,0,0,0),
1629							array(0,0,1,0,0,0,0,0,0),
1630							array(0,1,0,0,0,0,0,0,0),
1631							array(1,0,0,0,0,0,0,0,0),
1632							array(1,0,0,0,0,0,0,0,1),
1633							array(1,1,1,1,1,1,1,1,1),
1634						),
1635						array(
1636							array(1,1,1,1,1,1,1,1,1),
1637							array(0,0,0,0,0,0,0,0,1),
1638							array(0,0,0,0,0,0,0,0,1),
1639							array(0,0,0,0,0,0,0,1,0),
1640							array(0,0,0,0,0,0,1,0,0),
1641							array(0,0,0,0,0,1,0,0,0),
1642							array(0,0,0,0,0,1,0,0,0),
1643							array(0,0,1,1,1,1,1,0,0),
1644							array(0,0,0,1,0,0,0,0,0),
1645							array(0,0,0,1,0,0,0,0,0),
1646							array(0,0,1,0,0,0,0,0,0),
1647							array(0,1,0,0,0,0,0,0,0),
1648							array(1,0,0,0,0,0,0,0,0),
1649							array(1,0,0,0,0,0,0,0,0),
1650							array(1,1,1,1,1,1,1,1,1),
1651						),
1652						array(
1653							array(0,0,0,0,0,0,0,0,0),
1654							array(0,0,0,0,0,0,0,0,0),
1655							array(0,0,0,0,0,0,0,0,0),
1656							array(0,0,0,0,0,0,0,0,0),
1657							array(0,0,0,0,0,0,0,0,0),
1658							array(0,0,0,0,0,0,0,0,0),
1659							array(0,0,0,0,0,0,0,0,0),
1660							array(0,0,0,0,0,0,0,0,0),
1661							array(0,1,1,1,1,1,1,1,0),
1662							array(0,0,0,0,0,1,1,0,0),
1663							array(0,0,0,0,1,1,0,0,0),
1664							array(0,0,0,1,1,0,0,0,0),
1665							array(0,0,1,1,0,0,0,0,0),
1666							array(0,0,1,0,0,0,0,0,0),
1667							array(0,1,1,1,1,1,1,1,0),
1668						),
1669					),
1670				);
1671		return array(
1672			'width' => 9,
1673			'height' => 15,
1674			'data' => array(
1675
1676			'A' => $chars['A'][mt_rand(0, min(count($chars['A']), $config['captcha_gd_fonts']) -1)],
1677			'B' => $chars['B'][mt_rand(0, min(count($chars['B']), $config['captcha_gd_fonts']) -1)],
1678			'C' => $chars['C'][mt_rand(0, min(count($chars['C']), $config['captcha_gd_fonts']) -1)],
1679			'D' => $chars['D'][mt_rand(0, min(count($chars['D']), $config['captcha_gd_fonts']) -1)],
1680			'E' => $chars['E'][mt_rand(0, min(count($chars['E']), $config['captcha_gd_fonts']) -1)],
1681			'F' => $chars['F'][mt_rand(0, min(count($chars['F']), $config['captcha_gd_fonts']) -1)],
1682			'G' => $chars['G'][mt_rand(0, min(count($chars['G']), $config['captcha_gd_fonts']) -1)],
1683			'H' => $chars['H'][mt_rand(0, min(count($chars['H']), $config['captcha_gd_fonts']) -1)],
1684			'I' => $chars['I'][mt_rand(0, min(count($chars['I']), $config['captcha_gd_fonts']) -1)],
1685			'J' => $chars['J'][mt_rand(0, min(count($chars['J']), $config['captcha_gd_fonts']) -1)],
1686			'K' => $chars['K'][mt_rand(0, min(count($chars['K']), $config['captcha_gd_fonts']) -1)],
1687			'L' => $chars['L'][mt_rand(0, min(count($chars['L']), $config['captcha_gd_fonts']) -1)],
1688			'M' => $chars['M'][mt_rand(0, min(count($chars['M']), $config['captcha_gd_fonts']) -1)],
1689			'N' => $chars['N'][mt_rand(0, min(count($chars['N']), $config['captcha_gd_fonts']) -1)],
1690			'O' => $chars['O'][mt_rand(0, min(count($chars['O']), $config['captcha_gd_fonts']) -1)],
1691			'P' => $chars['P'][mt_rand(0, min(count($chars['P']), $config['captcha_gd_fonts']) -1)],
1692			'Q' => $chars['Q'][mt_ra…

Large files files are truncated, but you can click here to view the full file