PageRenderTime 75ms CodeModel.GetById 11ms RepoModel.GetById 0ms app.codeStats 1ms

/phpBB/includes/captcha/captcha_gd.php

http://github.com/phpbb/phpbb3
PHP | 2271 lines | 2066 code | 107 blank | 98 comment | 49 complexity | 8d76373e9f54f9b05aa8bf0095a9af91 MD5 | raw file
Possible License(s): AGPL-1.0

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

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

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