PageRenderTime 70ms CodeModel.GetById 21ms RepoModel.GetById 0ms 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
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 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. * @Icy Phoenix is based on phpBB
  13. * @copyright (c) 2008 phpBB Group
  14. *
  15. */
  16. if (!defined('IN_ICYPHOENIX'))
  17. {
  18. die('Hacking attempt');
  19. }
  20. /**
  21. * Original Author - Xore (Robert Hetzler)
  22. * With contributions from Neothermic
  23. *
  24. * @package VC
  25. */
  26. class captcha
  27. {
  28. var $width = 360;
  29. var $height = 96;
  30. /**
  31. * Create the image containing $code with a seed of $seed
  32. */
  33. function execute($code, $seed)
  34. {
  35. global $config;
  36. mt_srand($seed);
  37. // Create image
  38. $img = imagecreatetruecolor($this->width, $this->height);
  39. // Generate colours
  40. $colour = new colour_manager($img, array(
  41. 'random' => true,
  42. 'min_value' => 60,
  43. ), 'hsv');
  44. $scheme = $colour->colour_scheme('background', false);
  45. $scheme = $colour->mono_range($scheme, 10, false);
  46. shuffle($scheme);
  47. $bg_colours = array_splice($scheme, mt_rand(6, 12));
  48. // Generate code characters
  49. $characters = $sizes = $bounding_boxes = $noise = array();
  50. $width_avail = $this->width - 15;
  51. $code_len = strlen($code);
  52. $captcha_bitmaps = $this->captcha_bitmaps();
  53. for ($i = 0; $i < $code_len; ++$i)
  54. {
  55. $characters[$i] = new char_cube3d($captcha_bitmaps, $code[$i]);
  56. list($min, $max) = $characters[$i]->range();
  57. $sizes[$i] = mt_rand($min, $max);
  58. $box = $characters[$i]->dimensions($sizes[$i]);
  59. $width_avail -= ($box[2] - $box[0]);
  60. $bounding_boxes[$i] = $box;
  61. }
  62. // Redistribute leftover x-space
  63. $offset = array();
  64. for ($i = 0; $i < $code_len; ++$i)
  65. {
  66. $denom = ($code_len - $i);
  67. $denom = max(1.3, $denom);
  68. $offset[$i] = mt_rand(0, (1.5 * $width_avail) / $denom);
  69. $width_avail -= $offset[$i];
  70. }
  71. if ($config['captcha_gd_x_grid'])
  72. {
  73. $grid = (int) $config['captcha_gd_x_grid'];
  74. for ($y = 0; $y < $this->height; $y += mt_rand($grid - 2, $grid + 2))
  75. {
  76. $current_colour = $scheme[array_rand($scheme)];
  77. 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);
  78. }
  79. }
  80. if ($config['captcha_gd_y_grid'])
  81. {
  82. $grid = (int) $config['captcha_gd_y_grid'];
  83. for ($x = 0; $x < $this->width; $x += mt_rand($grid - 2, $grid + 2))
  84. {
  85. $current_colour = $scheme[array_rand($scheme)];
  86. 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);
  87. }
  88. }
  89. if ($config['captcha_gd_wave'] && ($config['captcha_gd_y_grid'] || $config['captcha_gd_y_grid']))
  90. {
  91. $this->wave($img);
  92. }
  93. if ($config['captcha_gd_3d_noise'])
  94. {
  95. $xoffset = mt_rand(0,9);
  96. $noise_bitmaps = $this->captcha_noise_bg_bitmaps();
  97. for ($i = 0; $i < $code_len; ++$i)
  98. {
  99. $noise[$i] = new char_cube3d($noise_bitmaps, mt_rand(1, count($noise_bitmaps['data'])));
  100. list($min, $max) = $noise[$i]->range();
  101. //$box = $noise[$i]->dimensions($sizes[$i]);
  102. }
  103. $xoffset = 0;
  104. for ($i = 0; $i < $code_len; ++$i)
  105. {
  106. $dimm = $bounding_boxes[$i];
  107. $xoffset += ($offset[$i] - $dimm[0]);
  108. $yoffset = mt_rand(-$dimm[1], $this->height - $dimm[3]);
  109. $noise[$i]->drawchar($sizes[$i], $xoffset, $yoffset, $img, $colour->get_resource('background'), $scheme);
  110. $xoffset += $dimm[2];
  111. }
  112. }
  113. $xoffset = 5;
  114. for ($i = 0; $i < $code_len; ++$i)
  115. {
  116. $dimm = $bounding_boxes[$i];
  117. $xoffset += ($offset[$i] - $dimm[0]);
  118. $yoffset = mt_rand(-$dimm[1], $this->height - $dimm[3]);
  119. $characters[$i]->drawchar($sizes[$i], $xoffset, $yoffset, $img, $colour->get_resource('background'), $scheme);
  120. $xoffset += $dimm[2];
  121. }
  122. if ($config['captcha_gd_wave'])
  123. {
  124. $this->wave($img);
  125. }
  126. if ($config['captcha_gd_foreground_noise'])
  127. {
  128. $this->noise_line($img, 0, 0, $this->width, $this->height, $colour->get_resource('background'), $scheme, $bg_colours);
  129. }
  130. // Send image
  131. header('Content-Type: image/png');
  132. header('Cache-control: no-cache, no-store');
  133. imagepng($img);
  134. imagedestroy($img);
  135. }
  136. /**
  137. * Sinus
  138. */
  139. function wave($img)
  140. {
  141. global $config;
  142. $period_x = mt_rand(12, 18);
  143. $period_y = mt_rand(7, 14);
  144. $amp_x = mt_rand(5, 10);
  145. $amp_y = mt_rand(2, 4);
  146. $socket = mt_rand(0, 100);
  147. $dampen_x = mt_rand($this->width / 5, $this->width / 2);
  148. $dampen_y = mt_rand($this->height / 5, $this->height / 2);
  149. $direction_x = (mt_rand (0, 1));
  150. $direction_y = (mt_rand (0, 1));
  151. for ($i = 0; $i < $this->width; $i++)
  152. {
  153. $dir = ($direction_x) ? $i : ($this->width - $i);
  154. imagecopy($img, $img, $i - 1, sin($socket+ $i/($period_x + $dir/$dampen_x)) * $amp_x, $i, 0, 1, $this->height);
  155. }
  156. $socket = mt_rand(0, 100);
  157. for ($i = 0; $i < $this->height; $i++)
  158. {
  159. $dir = ($direction_y) ? $i : ($this->height - $i);
  160. imagecopy($img, $img, sin($socket + $i/($period_y + ($dir)/$dampen_y)) * $amp_y, $i - 1, 0, $i, $this->width, 1);
  161. }
  162. return $img;
  163. }
  164. /**
  165. * Noise line
  166. */
  167. function noise_line($img, $min_x, $min_y, $max_x, $max_y, $bg, $font, $non_font)
  168. {
  169. imagesetthickness($img, 2);
  170. $x1 = $min_x;
  171. $x2 = $max_x;
  172. $y1 = $min_y;
  173. $y2 = $min_y;
  174. do
  175. {
  176. $line = array_merge(
  177. array_fill(0, mt_rand(30, 60), $non_font[array_rand($non_font)]),
  178. array_fill(0, mt_rand(30, 60), $bg)
  179. );
  180. imagesetstyle($img, $line);
  181. imageline($img, $x1, $y1, $x2, $y2, IMG_COLOR_STYLED);
  182. $y1 += mt_rand(12, 35);
  183. $y2 += mt_rand(12, 35);
  184. }
  185. while ($y1 < $max_y && $y2 < $max_y);
  186. $x1 = $min_x;
  187. $x2 = $min_x;
  188. $y1 = $min_y;
  189. $y2 = $max_y;
  190. do
  191. {
  192. $line = array_merge(
  193. array_fill(0, mt_rand(30, 60), $non_font[array_rand($non_font)]),
  194. array_fill(0, mt_rand(30, 60), $bg)
  195. );
  196. imagesetstyle($img, $line);
  197. imageline($img, $x1, $y1, $x2, $y2, IMG_COLOR_STYLED);
  198. $x1 += mt_rand(20, 35);
  199. $x2 += mt_rand(20, 35);
  200. }
  201. while ($x1 < $max_x && $x2 < $max_x);
  202. imagesetthickness($img, 1);
  203. }
  204. function captcha_noise_bg_bitmaps()
  205. {
  206. return array(
  207. 'width' => 15,
  208. 'height' => 5,
  209. 'data' => array(
  210. 1 => array(
  211. array(1,0,0,0,1,0,0,0,0,0,0,0,0,0,0),
  212. array(1,0,0,0,0,1,0,0,0,0,0,0,0,0,0),
  213. array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  214. array(1,0,0,0,0,1,0,0,0,0,0,0,1,0,0),
  215. array(1,0,0,0,0,0,1,0,0,0,0,1,0,0,0),
  216. ),
  217. 2 => array(
  218. array(1,1,mt_rand(0,1),1,0,1,1,1,1,0,0,0,0,0,0),
  219. array(0,0,0,0,0,0,0,1,0,0,0,0,0,0,0),
  220. array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  221. array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  222. array(0,0,0,0,0,0,0,0,0,1,1,0,1,1,1),
  223. ),
  224. 3 => array(
  225. array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
  226. array(1,0,0,0,0,0,0,0,0,0,0,0,0,1,0),
  227. array(0,0,0,0,1,0,0,0,0,0,0,0,0,0,1),
  228. array(1,0,0,0,0,0,0,0,0,0,0,0,0,1,0),
  229. array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
  230. ),
  231. 4 => array(
  232. array(1,0,1,0,1,0,0,1,1,0,0,0,0,0,0),
  233. array(0,0,0,0,0,0,0,1,0,0,0,0,0,0,0),
  234. array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  235. array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  236. array(1,0,1,0,0,0,0,0,0,0,0,0,0,0,0),
  237. ),
  238. 5 => array(
  239. array(1,1,1,1,0,0,0,1,1,1,0,0,1,0,1),
  240. array(0,0,0,0,0,0,0,1,0,0,0,0,0,0,0),
  241. array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  242. array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  243. array(1,0,1,0,0,0,0,0,0,0,0,0,0,0,0),
  244. ),
  245. 6 => array(
  246. 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)),
  247. array(0,0,0,0,0,0,0,mt_rand(0,1),0,0,0,0,0,0,0),
  248. array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  249. array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  250. array(mt_rand(0,1),0,mt_rand(0,1),0,0,0,0,0,0,0,0,0,0,0,0),
  251. ),
  252. 7 => array(
  253. array(0,0,0,0,0,0,0,0,0,0,1,1,0,1,1),
  254. array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  255. array(0,0,1,1,0,0,0,1,0,0,0,0,0,0,0),
  256. array(0,1,0,0,0,1,0,0,0,0,0,0,0,0,0),
  257. array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  258. ),
  259. ));
  260. }
  261. /**
  262. * Return bitmaps
  263. */
  264. function captcha_bitmaps()
  265. {
  266. global $config;
  267. $chars = array(
  268. 'A' => array(
  269. array(
  270. array(0,0,0,0,1,0,0,0,0),
  271. array(0,0,0,1,0,1,0,0,0),
  272. array(0,0,0,1,0,1,0,0,0),
  273. array(0,0,0,1,0,1,0,0,0),
  274. array(0,0,1,0,0,0,1,0,0),
  275. array(0,0,1,0,0,0,1,0,0),
  276. array(0,0,1,0,0,0,1,0,0),
  277. array(0,1,0,0,0,0,0,1,0),
  278. array(0,1,0,0,0,0,0,1,0),
  279. array(0,1,1,1,1,1,1,1,0),
  280. array(0,1,0,0,0,0,0,1,0),
  281. array(1,0,0,0,0,0,0,0,1),
  282. array(1,0,0,0,0,0,0,0,1),
  283. array(1,0,0,0,0,0,0,0,1),
  284. array(1,0,0,0,0,0,0,0,1),
  285. ),
  286. array(
  287. array(0,0,0,0,0,0,0,0,0),
  288. array(0,0,0,0,0,0,0,0,0),
  289. array(0,0,0,0,1,0,0,0,0),
  290. array(0,0,0,1,0,1,0,0,0),
  291. array(0,0,1,1,0,1,1,0,0),
  292. array(0,0,1,0,0,0,1,0,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,1,1,1,1,1,1,0),
  296. array(0,1,0,0,0,0,0,1,0),
  297. array(0,1,0,0,0,0,0,1,0),
  298. array(0,1,0,0,0,0,0,1,0),
  299. array(0,1,0,0,0,0,0,1,0),
  300. array(0,1,0,0,0,0,0,1,0),
  301. array(1,1,1,0,0,0,1,1,1),
  302. ),
  303. array(
  304. array(0,0,0,0,0,0,0,0,0),
  305. array(0,0,0,0,0,0,0,0,0),
  306. array(0,0,0,0,0,0,0,0,0),
  307. array(0,0,0,0,0,0,0,0,0),
  308. array(0,0,1,1,1,1,1,0,0),
  309. array(0,1,1,0,0,0,1,1,0),
  310. array(1,1,0,0,0,0,0,1,1),
  311. array(1,0,0,0,0,0,0,0,1),
  312. array(0,0,0,0,0,0,0,1,1),
  313. array(0,0,0,0,0,1,1,1,1),
  314. array(0,0,0,1,1,1,0,0,1),
  315. array(0,1,1,1,0,0,0,0,1),
  316. array(1,0,0,0,0,0,0,0,1),
  317. array(1,1,0,0,0,0,1,1,1),
  318. array(0,1,1,1,1,1,1,0,1),
  319. ),
  320. ),
  321. 'B' => array(
  322. array(
  323. array(1,1,1,1,1,1,1,0,0),
  324. array(1,0,0,0,0,0,0,1,0),
  325. array(1,0,0,0,0,0,0,0,1),
  326. array(1,0,0,0,0,0,0,0,1),
  327. array(1,0,0,0,0,0,0,0,1),
  328. array(1,0,0,0,0,0,0,0,1),
  329. array(1,0,0,0,0,0,0,1,0),
  330. array(1,1,1,1,1,1,1,0,0),
  331. array(1,0,0,0,0,0,0,1,0),
  332. array(1,0,0,0,0,0,0,0,1),
  333. array(1,0,0,0,0,0,0,0,1),
  334. array(1,0,0,0,0,0,0,0,1),
  335. array(1,0,0,0,0,0,0,0,1),
  336. array(1,0,0,0,0,0,0,1,0),
  337. array(1,1,1,1,1,1,1,0,0),
  338. ),
  339. array(
  340. array(1,1,1,1,1,1,1,0,0),
  341. array(0,1,0,0,0,0,0,1,0),
  342. array(0,1,0,0,0,0,0,0,1),
  343. array(0,1,0,0,0,0,0,0,1),
  344. array(0,1,0,0,0,0,0,0,1),
  345. array(0,1,0,0,0,0,0,0,1),
  346. array(0,1,0,0,0,0,0,1,0),
  347. array(0,1,1,1,1,1,1,0,0),
  348. array(0,1,0,0,0,0,0,1,0),
  349. array(0,1,0,0,0,0,0,0,1),
  350. array(0,1,0,0,0,0,0,0,1),
  351. array(0,1,0,0,0,0,0,0,1),
  352. array(0,1,0,0,0,0,0,0,1),
  353. array(0,1,0,0,0,0,0,1,0),
  354. array(1,1,1,1,1,1,1,0,0),
  355. ),
  356. array(
  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,0,0,0,0,0,0,0),
  361. array(0,1,0,0,0,0,0,0,0),
  362. array(0,1,0,0,0,0,0,0,0),
  363. array(0,1,0,0,0,0,0,0,0),
  364. array(0,1,1,1,1,1,1,0,0),
  365. array(0,1,0,0,0,0,0,1,0),
  366. array(0,1,0,0,0,0,0,0,1),
  367. array(0,1,0,0,0,0,0,0,1),
  368. array(0,1,0,0,0,0,0,0,1),
  369. array(0,1,0,0,0,0,0,0,1),
  370. array(0,1,0,0,0,0,0,1,0),
  371. array(0,1,1,1,1,1,1,0,0),
  372. ),
  373. ),
  374. 'C' => array(
  375. array(
  376. array(0,0,1,1,1,1,1,0,0),
  377. array(0,1,0,0,0,0,0,1,0),
  378. array(1,0,0,0,0,0,0,0,1),
  379. array(1,0,0,0,0,0,0,0,1),
  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,0),
  384. array(1,0,0,0,0,0,0,0,0),
  385. array(1,0,0,0,0,0,0,0,0),
  386. array(1,0,0,0,0,0,0,0,0),
  387. array(1,0,0,0,0,0,0,0,1),
  388. array(1,0,0,0,0,0,0,0,1),
  389. array(0,1,0,0,0,0,0,1,0),
  390. array(0,0,1,1,1,1,1,0,0),
  391. ),
  392. array(
  393. array(0,0,1,1,1,1,1,0,1),
  394. array(0,1,0,0,0,0,0,1,1),
  395. array(1,0,0,0,0,0,0,0,1),
  396. array(1,0,0,0,0,0,0,0,1),
  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,0),
  401. array(1,0,0,0,0,0,0,0,0),
  402. array(1,0,0,0,0,0,0,0,0),
  403. array(1,0,0,0,0,0,0,0,0),
  404. array(1,0,0,0,0,0,0,0,1),
  405. array(1,0,0,0,0,0,0,0,1),
  406. array(0,1,0,0,0,0,0,1,1),
  407. array(0,0,1,1,1,1,1,0,1),
  408. ),
  409. ),
  410. 'D' => array(
  411. array(
  412. array(1,1,1,1,1,1,1,0,0),
  413. array(1,0,0,0,0,0,0,1,0),
  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,0,1),
  422. array(1,0,0,0,0,0,0,0,1),
  423. array(1,0,0,0,0,0,0,0,1),
  424. array(1,0,0,0,0,0,0,0,1),
  425. array(1,0,0,0,0,0,0,1,0),
  426. array(1,1,1,1,1,1,1,0,0),
  427. ),
  428. array(
  429. array(1,1,1,1,1,1,1,0,0),
  430. array(0,1,0,0,0,0,0,1,0),
  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,0,1),
  439. array(0,1,0,0,0,0,0,0,1),
  440. array(0,1,0,0,0,0,0,0,1),
  441. array(0,1,0,0,0,0,0,0,1),
  442. array(0,1,0,0,0,0,0,1,0),
  443. array(1,1,1,1,1,1,1,0,0),
  444. ),
  445. array(
  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,0,0,0,0,0,0,1),
  450. array(0,0,0,0,0,0,0,0,1),
  451. array(0,0,0,0,0,0,0,0,1),
  452. array(0,0,0,0,0,0,0,0,1),
  453. array(0,0,1,1,1,1,1,0,1),
  454. array(0,1,1,0,0,0,1,1,1),
  455. array(0,1,0,0,0,0,0,0,1),
  456. array(0,1,0,0,0,0,0,0,1),
  457. array(0,1,0,0,0,0,0,0,1),
  458. array(0,1,0,0,0,0,0,0,1),
  459. array(0,1,1,0,0,0,1,1,1),
  460. array(0,0,1,1,1,1,1,0,1),
  461. ),
  462. ),
  463. 'E' => array(
  464. array(
  465. array(1,1,1,1,1,1,1,1,1),
  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,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,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,0,0,0,0,0,0,0,0),
  476. array(1,0,0,0,0,0,0,0,0),
  477. array(1,0,0,0,0,0,0,0,0),
  478. array(1,0,0,0,0,0,0,0,0),
  479. array(1,1,1,1,1,1,1,1,1),
  480. ),
  481. array(
  482. array(1,1,1,1,1,1,1,1,1),
  483. array(1,0,0,0,0,0,0,0,1),
  484. array(1,0,0,0,0,0,0,0,0),
  485. array(1,0,0,0,0,0,0,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,1,1,1,1,1,1,0,0),
  490. array(1,0,0,0,0,0,0,0,0),
  491. array(1,0,0,0,0,0,0,0,0),
  492. array(1,0,0,0,0,0,0,0,0),
  493. array(1,0,0,0,0,0,0,0,0),
  494. array(1,0,0,0,0,0,0,0,0),
  495. array(1,0,0,0,0,0,0,0,1),
  496. array(1,1,1,1,1,1,1,1,1),
  497. ),
  498. array(
  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,0,0,0,0,0,0,0),
  503. array(0,0,0,0,0,0,0,0,0),
  504. array(0,0,0,0,0,0,0,0,0),
  505. array(0,0,0,0,0,0,0,0,0),
  506. array(0,0,1,1,1,1,1,0,0),
  507. array(0,1,1,0,0,0,1,1,0),
  508. array(1,1,0,0,0,0,0,1,1),
  509. array(1,1,1,1,1,1,1,1,1),
  510. array(1,0,0,0,0,0,0,0,0),
  511. array(1,0,0,0,0,0,0,0,1),
  512. array(1,1,0,0,0,0,0,1,1),
  513. array(0,1,1,1,1,1,1,1,0),
  514. ),
  515. ),
  516. 'F' => array(
  517. array(
  518. array(1,1,1,1,1,1,1,1,1),
  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,0,0,0,0,0,0,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,1,1,1,1,1,1,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,0,0,0,0,0,0,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. ),
  534. array(
  535. array(0,1,1,1,1,1,1,1,1),
  536. array(0,1,0,0,0,0,0,0,1),
  537. array(0,1,0,0,0,0,0,0,0),
  538. array(0,1,0,0,0,0,0,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,1,1,1,1,1,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(0,1,0,0,0,0,0,0,0),
  546. array(0,1,0,0,0,0,0,0,0),
  547. array(0,1,0,0,0,0,0,0,0),
  548. array(0,1,0,0,0,0,0,0,0),
  549. array(1,1,1,0,0,0,0,0,0),
  550. ),
  551. array(
  552. array(0,0,0,1,1,0,0,0,0),
  553. array(0,0,1,1,0,0,0,0,0),
  554. array(0,1,1,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(1,1,1,1,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. array(0,1,0,0,0,0,0,0,0),
  564. array(0,1,0,0,0,0,0,0,0),
  565. array(0,1,0,0,0,0,0,0,0),
  566. array(0,1,0,0,0,0,0,0,0),
  567. ),
  568. ),
  569. 'G' => array(
  570. array(
  571. array(0,0,1,1,1,1,1,0,0),
  572. array(0,1,0,0,0,0,0,1,0),
  573. array(1,0,0,0,0,0,0,0,1),
  574. array(1,0,0,0,0,0,0,0,0),
  575. array(1,0,0,0,0,0,0,0,0),
  576. array(1,0,0,0,0,0,0,0,0),
  577. array(1,0,0,0,0,0,0,0,0),
  578. array(1,0,0,0,0,0,0,0,0),
  579. array(1,0,0,0,0,0,1,1,1),
  580. array(1,0,0,0,0,0,0,0,1),
  581. array(1,0,0,0,0,0,0,0,1),
  582. array(1,0,0,0,0,0,0,0,1),
  583. array(1,0,0,0,0,0,0,0,1),
  584. array(0,1,0,0,0,0,0,1,0),
  585. array(0,0,1,1,1,1,1,0,0),
  586. ),
  587. array(
  588. array(0,0,1,1,1,1,1,0,1),
  589. array(0,1,0,0,0,0,0,1,1),
  590. array(1,0,0,0,0,0,0,0,1),
  591. array(1,0,0,0,0,0,0,0,0),
  592. array(1,0,0,0,0,0,0,0,0),
  593. array(1,0,0,0,0,0,0,0,0),
  594. array(1,0,0,0,0,0,0,0,0),
  595. array(1,0,0,0,0,0,0,0,0),
  596. array(1,0,0,0,1,1,1,1,1),
  597. array(1,0,0,0,1,0,0,0,1),
  598. array(1,0,0,0,1,0,0,0,1),
  599. array(1,0,0,0,0,0,0,0,1),
  600. array(1,0,0,0,0,0,0,0,1),
  601. array(0,1,0,0,0,0,0,1,1),
  602. array(0,0,1,1,1,1,1,0,1),
  603. ),
  604. array(
  605. array(0,0,1,1,1,1,1,0,1),
  606. array(0,1,1,0,0,0,0,1,1),
  607. array(1,1,0,0,0,0,0,1,1),
  608. array(1,0,0,0,0,0,0,0,1),
  609. array(1,0,0,0,0,0,0,0,1),
  610. array(1,1,1,0,0,0,0,0,1),
  611. array(0,0,1,1,1,1,1,1,1),
  612. array(0,0,0,0,0,0,0,0,1),
  613. array(0,0,0,0,0,0,0,0,1),
  614. array(0,0,0,0,0,0,0,0,1),
  615. array(0,0,0,0,0,0,0,0,1),
  616. array(0,0,0,0,0,0,0,1,1),
  617. array(1,1,1,1,1,1,1,1,0),
  618. array(0,0,0,0,0,0,0,0,0),
  619. array(0,0,0,0,0,0,0,0,0),
  620. ),
  621. ),
  622. 'H' => array(
  623. array(
  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,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,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. array(1,0,0,0,0,0,0,0,1),
  636. array(1,0,0,0,0,0,0,0,1),
  637. array(1,0,0,0,0,0,0,0,1),
  638. array(1,0,0,0,0,0,0,0,1),
  639. ),
  640. array(
  641. array(1,1,1,0,0,0,1,1,1),
  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,0,0,0,0,0,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,1,1,1,1,1,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(0,1,0,0,0,0,0,1,0),
  652. array(0,1,0,0,0,0,0,1,0),
  653. array(0,1,0,0,0,0,0,1,0),
  654. array(0,1,0,0,0,0,0,1,0),
  655. array(1,1,1,0,0,0,1,1,1),
  656. ),
  657. array(
  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,0,0,0,0,0,0),
  662. array(1,0,0,0,0,0,0,0,0),
  663. array(1,0,0,0,0,0,0,0,0),
  664. array(1,0,0,0,0,0,0,0,0),
  665. array(1,0,0,1,1,1,0,0,0),
  666. array(1,1,1,1,0,1,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. array(1,0,0,0,0,0,1,0,0),
  670. array(1,0,0,0,0,0,1,0,0),
  671. array(1,0,0,0,0,0,1,0,0),
  672. array(1,0,0,0,0,0,1,0,0),
  673. ),
  674. ),
  675. 'I' => array(
  676. array(
  677. array(1,1,1,1,1,1,1,1,1),
  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(0,0,0,0,1,0,0,0,0),
  688. array(0,0,0,0,1,0,0,0,0),
  689. array(0,0,0,0,1,0,0,0,0),
  690. array(0,0,0,0,1,0,0,0,0),
  691. array(1,1,1,1,1,1,1,1,1),
  692. ),
  693. array(
  694. array(0,0,0,1,1,1,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,0,1,0,0,0,0),
  705. array(0,0,0,0,1,0,0,0,0),
  706. array(0,0,0,0,1,0,0,0,0),
  707. array(0,0,0,0,1,0,0,0,0),
  708. array(0,0,0,1,1,1,0,0,0),
  709. ),
  710. array(
  711. array(0,0,0,0,0,0,0,0,0),
  712. array(0,0,0,0,0,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,1,1,1,0,0,0),
  716. array(0,0,0,0,1,0,0,0,0),
  717. array(0,0,0,0,0,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,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,1,1,1,0,0,0),
  726. ),
  727. ),
  728. 'J' => array(
  729. array(
  730. array(1,1,1,1,1,1,1,1,1),
  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(0,0,0,0,0,1,0,0,0),
  738. array(0,0,0,0,0,1,0,0,0),
  739. array(0,0,0,0,0,1,0,0,0),
  740. array(0,0,0,0,0,1,0,0,0),
  741. array(1,0,0,0,0,1,0,0,0),
  742. array(1,0,0,0,0,1,0,0,0),
  743. array(0,1,0,0,1,0,0,0,0),
  744. array(0,0,1,1,0,0,0,0,0),
  745. ),
  746. array(
  747. array(1,1,1,1,1,1,1,1,1),
  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(0,0,0,0,0,1,0,0,0),
  755. array(0,0,0,0,0,1,0,0,0),
  756. array(0,0,0,0,0,1,0,0,0),
  757. array(0,0,0,0,0,1,0,0,0),
  758. array(1,0,0,0,0,1,0,0,0),
  759. array(1,0,0,0,0,1,0,0,0),
  760. array(1,1,0,0,1,0,0,0,0),
  761. array(1,0,1,1,0,0,0,0,0),
  762. ),
  763. array(
  764. array(0,0,0,0,0,0,0,0,0),
  765. array(0,0,0,0,0,0,0,0,0),
  766. array(0,0,0,0,0,0,0,0,0),
  767. array(0,0,0,0,0,0,0,0,0),
  768. array(0,0,0,0,0,1,0,0,0),
  769. array(0,0,0,0,0,0,0,0,0),
  770. array(0,0,0,0,0,1,0,0,0),
  771. array(0,0,0,0,0,1,0,0,0),
  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(1,0,0,0,0,1,0,0,0),
  776. array(1,0,0,0,0,1,0,0,0),
  777. array(0,1,0,0,1,0,0,0,0),
  778. array(0,0,1,1,0,0,0,0,0),
  779. ),
  780. ),
  781. 'K' => array(
  782. array( // New 'K', supplied by NeoThermic
  783. array(1,0,0,0,0,0,0,0,1),
  784. array(1,0,0,0,0,0,0,1,0),
  785. array(1,0,0,0,0,0,1,0,0),
  786. array(1,0,0,0,0,1,0,0,0),
  787. array(1,0,0,0,1,0,0,0,0),
  788. array(1,0,0,1,0,0,0,0,0),
  789. array(1,0,1,0,0,0,0,0,0),
  790. array(1,1,0,0,0,0,0,0,0),
  791. array(1,0,1,0,0,0,0,0,0),
  792. array(1,0,0,1,0,0,0,0,0),
  793. array(1,0,0,0,1,0,0,0,0),
  794. array(1,0,0,0,0,1,0,0,0),
  795. array(1,0,0,0,0,0,1,0,0),
  796. array(1,0,0,0,0,0,0,1,0),
  797. array(1,0,0,0,0,0,0,0,1),
  798. ),
  799. array(
  800. array(0,1,0,0,0,0,0,0,1),
  801. array(0,1,0,0,0,0,0,1,0),
  802. array(0,1,0,0,0,0,1,0,0),
  803. array(0,1,0,0,0,1,0,0,0),
  804. array(0,1,0,0,1,0,0,0,0),
  805. array(0,1,0,1,0,0,0,0,0),
  806. array(0,1,1,0,0,0,0,0,0),
  807. array(0,1,0,0,0,0,0,0,0),
  808. array(0,1,1,0,0,0,0,0,0),
  809. array(0,1,0,1,0,0,0,0,0),
  810. array(0,1,0,0,1,0,0,0,0),
  811. array(0,1,0,0,0,1,0,0,0),
  812. array(0,1,0,0,0,0,1,0,0),
  813. array(0,1,0,0,0,0,0,1,0),
  814. array(1,1,1,0,0,0,1,1,1),
  815. ),
  816. array(
  817. array(0,0,0,0,0,0,0,0,0),
  818. array(0,1,0,0,0,0,0,0,0),
  819. array(0,1,0,0,0,0,0,0,0),
  820. array(0,1,0,0,0,1,0,0,0),
  821. array(0,1,0,0,1,0,0,0,0),
  822. array(0,1,0,1,0,0,0,0,0),
  823. array(0,1,1,0,0,0,0,0,0),
  824. array(0,1,0,0,0,0,0,0,0),
  825. array(0,1,1,0,0,0,0,0,0),
  826. array(0,1,0,1,0,0,0,0,0),
  827. array(0,1,0,0,1,0,0,0,0),
  828. array(0,1,0,0,0,1,0,0,0),
  829. array(0,1,0,0,0,0,1,0,0),
  830. array(0,1,0,0,0,0,0,1,0),
  831. array(0,1,0,0,0,0,0,1,0),
  832. ),
  833. ),
  834. 'L' => array(
  835. array(
  836. array(0,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,0,0,0,0,0,0,0,0),
  847. array(1,0,0,0,0,0,0,0,0),
  848. array(1,0,0,0,0,0,0,0,0),
  849. array(1,0,0,0,0,0,0,0,0),
  850. array(1,1,1,1,1,1,1,1,1),
  851. ),
  852. array(
  853. array(0,0,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,0),
  863. array(0,1,0,0,0,0,0,0,0),
  864. array(0,1,0,0,0,0,0,0,0),
  865. array(0,1,0,0,0,0,0,0,0),
  866. array(0,1,0,0,0,0,0,0,1),
  867. array(1,1,1,1,1,1,1,1,1),
  868. ),
  869. array(
  870. array(0,0,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,0,0,0,0,0,0,0),
  880. array(0,1,0,0,0,0,0,0,0),
  881. array(0,1,0,0,0,0,0,0,0),
  882. array(0,1,0,0,0,0,0,0,0),
  883. array(0,1,1,0,0,0,0,0,0),
  884. array(0,0,1,1,1,0,0,0,0),
  885. ),
  886. ),
  887. 'M' => array(
  888. array(
  889. array(1,1,0,0,0,0,0,1,1),
  890. array(1,1,0,0,0,0,0,1,1),
  891. array(1,0,1,0,0,0,1,0,1),
  892. array(1,0,1,0,0,0,1,0,1),
  893. array(1,0,1,0,0,0,1,0,1),
  894. array(1,0,0,1,0,1,0,0,1),
  895. array(1,0,0,1,0,1,0,0,1),
  896. array(1,0,0,1,0,1,0,0,1),
  897. array(1,0,0,0,1,0,0,0,1),
  898. array(1,0,0,0,1,0,0,0,1),
  899. array(1,0,0,0,0,0,0,0,1),
  900. array(1,0,0,0,0,0,0,0,1),
  901. array(1,0,0,0,0,0,0,0,1),
  902. array(1,0,0,0,0,0,0,0,1),
  903. array(1,0,0,0,0,0,0,0,1),
  904. ),
  905. array(
  906. array(0,0,0,0,0,0,0,0,0),
  907. array(0,1,0,0,0,0,0,1,0),
  908. array(0,1,1,0,0,0,1,1,0),
  909. array(0,1,1,0,0,0,1,1,0),
  910. array(0,1,1,0,0,0,1,1,0),
  911. array(0,1,0,1,0,1,0,1,0),
  912. array(0,1,0,1,0,1,0,1,0),
  913. array(0,1,0,1,0,1,0,1,0),
  914. array(0,1,0,0,1,0,0,1,0),
  915. array(0,1,0,0,1,0,0,1,0),
  916. array(0,1,0,0,0,0,0,1,0),
  917. array(0,1,0,0,0,0,0,1,0),
  918. array(0,1,0,0,0,0,0,1,0),
  919. array(0,1,0,0,0,0,0,1,0),
  920. array(1,1,1,0,0,0,1,1,1),
  921. ),
  922. array(
  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,0,0,0,0,0,0,0,0),
  926. array(0,0,0,0,0,0,0,0,0),
  927. array(0,0,0,0,0,0,0,0,0),
  928. array(0,0,0,0,0,0,0,0,0),
  929. array(0,1,1,1,0,1,1,1,0),
  930. array(1,1,0,1,1,1,0,1,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. array(1,0,0,0,1,0,0,0,1),
  935. array(1,0,0,0,1,0,0,0,1),
  936. array(1,0,0,0,1,0,0,0,1),
  937. array(1,0,0,0,1,0,0,0,1),
  938. ),
  939. ),
  940. 'N' => array(
  941. array(
  942. array(1,1,0,0,0,0,0,0,1),
  943. array(1,1,0,0,0,0,0,0,1),
  944. array(1,0,1,0,0,0,0,0,1),
  945. array(1,0,1,0,0,0,0,0,1),
  946. array(1,0,0,1,0,0,0,0,1),
  947. array(1,0,0,1,0,0,0,0,1),
  948. array(1,0,0,0,1,0,0,0,1),
  949. array(1,0,0,0,1,0,0,0,1),
  950. array(1,0,0,0,1,0,0,0,1),
  951. array(1,0,0,0,0,1,0,0,1),
  952. array(1,0,0,0,0,1,0,0,1),
  953. array(1,0,0,0,0,0,1,0,1),
  954. array(1,0,0,0,0,0,1,0,1),
  955. array(1,0,0,0,0,0,0,1,1),
  956. array(1,0,0,0,0,0,0,1,1),
  957. ),
  958. array(
  959. array(0,0,0,0,0,0,0,0,0),
  960. array(0,1,0,0,0,0,0,1,0),
  961. array(0,1,1,0,0,0,0,1,0),
  962. array(0,1,1,0,0,0,0,1,0),
  963. array(0,1,1,0,0,0,0,1,0),
  964. array(0,1,0,1,0,0,0,1,0),
  965. array(0,1,0,1,0,0,0,1,0),
  966. array(0,1,0,1,0,0,0,1,0),
  967. array(0,1,0,0,1,0,0,1,0),
  968. array(0,1,0,0,1,1,0,1,0),
  969. array(0,1,0,0,0,1,0,1,0),
  970. array(0,1,0,0,0,1,1,1,0),
  971. array(0,1,0,0,0,0,1,1,0),
  972. array(0,1,0,0,0,0,0,1,0),
  973. array(1,1,1,0,0,0,1,1,1),
  974. ),
  975. array(
  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(0,0,0,0,0,0,0,0,0),
  980. array(0,0,0,0,0,0,0,0,0),
  981. array(0,0,0,0,0,0,0,0,0),
  982. array(0,0,0,0,0,0,0,0,0),
  983. array(1,0,1,1,1,1,0,0,0),
  984. array(1,1,1,0,0,1,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. array(1,0,0,0,0,0,1,0,0),
  988. array(1,0,0,0,0,0,1,0,0),
  989. array(1,0,0,0,0,0,1,0,0),
  990. array(1,0,0,0,0,0,1,0,0),
  991. ),
  992. ),
  993. 'O' => array(
  994. array(
  995. array(0,0,1,1,1,1,1,0,0),
  996. array(0,1,0,0,0,0,0,1,0),
  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(1,0,0,0,0,0,0,0,1),
  1005. array(1,0,0,0,0,0,0,0,1),
  1006. array(1,0,0,0,0,0,0,0,1),
  1007. array(1,0,0,0,0,0,0,0,1),
  1008. array(0,1,0,0,0,0,0,1,0),
  1009. array(0,0,1,1,1,1,1,0,0),
  1010. ),
  1011. array(
  1012. array(0,0,1,1,1,1,1,0,0),
  1013. array(0,1,0,0,0,0,0,1,0),
  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(1,1,0,0,0,0,0,1,1),
  1022. array(1,1,0,0,0,0,0,1,1),
  1023. array(1,1,0,0,0,0,0,1,1),
  1024. array(1,1,0,0,0,0,0,1,1),
  1025. array(0,1,0,0,0,0,0,1,0),
  1026. array(0,0,1,1,1,1,1,0,0),
  1027. ),
  1028. array(
  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,0,0,0,0,0,0,0,0),
  1033. array(0,0,0,0,0,0,0,0,0),
  1034. array(0,0,0,0,0,0,0,0,0),
  1035. array(0,0,0,0,0,0,0,0,0),
  1036. array(0,1,1,1,1,1,0,0,0),
  1037. array(1,1,1,0,0,1,1,0,0),
  1038. array(1,0,0,0,0,0,1,0,0),
  1039. array(1,0,0,0,0,0,1,0,0),
  1040. array(1,0,0,0,0,0,1,0,0),
  1041. array(1,0,0,0,0,0,1,0,0),
  1042. array(1,1,0,0,0,1,1,0,0),
  1043. array(0,1,1,1,1,1,0,0,0),
  1044. ),
  1045. ),
  1046. 'P' => array(
  1047. array(
  1048. array(1,1,1,1,1,1,1,0,0),
  1049. array(1,0,0,0,0,0,0,1,0),
  1050. array(1,0,0,0,0,0,0,0,1),
  1051. array(1,0,0,0,0,0,0,0,1),
  1052. array(1,0,0,0,0,0,0,0,1),
  1053. array(1,0,0,0,0,0,0,0,1),
  1054. array(1,0,0,0,0,0,0,1,0),
  1055. array(1,1,1,1,1,1,1,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. array(1,0,0,0,0,0,0,0,0),
  1060. array(1,0,0,0,0,0,0,0,0),
  1061. array(1,0,0,0,0,0,0,0,0),
  1062. array(1,0,0,0,0,0,0,0,0),
  1063. ),
  1064. array(
  1065. array(1,1,1,1,1,1,1,0,0),
  1066. array(0,1,0,0,0,0,0,1,0),
  1067. array(0,1,0,0,0,0,0,0,1),
  1068. array(0,1,0,0,0,0,0,0,1),
  1069. array(0,1,0,0,0,0,0,0,1),
  1070. array(0,1,0,0,0,0,0,0,1),
  1071. array(0,1,0,0,0,0,0,1,0),
  1072. array(1,1,1,1,1,1,1,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(0,1,0,0,0,0,0,0,0),
  1076. array(0,1,0,0,0,0,0,0,0),
  1077. array(0,1,0,0,0,0,0,0,0),
  1078. array(0,1,0,0,0,0,0,0,0),
  1079. array(1,1,1,0,0,0,0,0,0),
  1080. ),
  1081. array(
  1082. array(0,0,0,0,0,0,0,0,0),
  1083. array(0,0,0,0,0,0,0,0,0),
  1084. array(1,0,0,0,0,0,0,0,0),
  1085. array(1,0,1,1,0,0,0,0,0),
  1086. array(1,1,0,1,1,0,0,0,0),
  1087. array(1,0,0,0,1,0,0,0,0),
  1088. array(1,0,0,0,1,0,0,0,0),
  1089. array(1,0,0,1,1,0,0,0,0),
  1090. array(1,1,1,1,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. array(1,0,0,0,0,0,0,0,0),
  1094. array(1,0,0,0,0,0,0,0,0),
  1095. array(1,0,0,0,0,0,0,0,0),
  1096. array(1,0,0,0,0,0,0,0,0),
  1097. ),
  1098. ),
  1099. 'Q' => array(
  1100. array(
  1101. array(0,0,1,1,1,1,1,0,0),
  1102. array(0,1,0,0,0,0,0,1,0),
  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,0,0,0,1),
  1109. array(1,0,0,0,0,0,0,0,1),
  1110. array(1,0,0,0,0,0,0,0,1),
  1111. array(1,0,0,0,0,0,0,0,1),
  1112. array(1,0,0,0,0,1,0,0,1),
  1113. array(1,0,0,0,0,0,1,0,1),
  1114. array(0,1,0,0,0,0,0,1,0),
  1115. array(0,0,1,1,1,1,1,0,1),
  1116. ),
  1117. array(
  1118. array(0,0,1,1,1,1,1,0,0),
  1119. array(0,1,0,0,0,0,0,1,0),
  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,0,0,0,0,1),
  1124. array(1,0,0,0,0,0,0,0,1),
  1125. array(1,0,0,0,0,0,0,0,1),
  1126. array(1,0,0,0,0,0,0,0,1),
  1127. array(1,0,0,0,1,0,0,0,1),
  1128. array(1,1,0,0,1,1,0,1,1),
  1129. array(0,1,1,1,1,1,1,1,0),
  1130. array(0,0,0,0,0,0,1,1,0),
  1131. array(0,0,0,0,0,0,0,1,1),
  1132. array(0,0,0,0,0,0,0,0,1),
  1133. ),
  1134. array(
  1135. array(0,0,0,0,0,0,0,0,0),
  1136. array(0,0,0,0,0,0,0,0,0),
  1137. array(0,0,0,0,0,0,0,0,0),
  1138. array(0,0,0,0,0,1,1,1,1),
  1139. array(0,0,0,0,1,1,0,0,1),
  1140. array(0,0,0,0,1,0,0,0,1),
  1141. array(0,0,0,0,1,0,0,0,1),
  1142. array(0,0,0,0,1,1,0,1,1),
  1143. array(0,0,0,0,0,1,1,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. array(0,0,0,0,0,0,0,0,1),
  1147. array(0,0,0,0,0,0,0,0,1),
  1148. array(0,0,0,0,0,0,0,0,1),
  1149. array(0,0,0,0,0,0,0,0,1),
  1150. ),
  1151. ),
  1152. 'R' => array(
  1153. array(
  1154. array(1,1,1,1,1,1,1,0,0),
  1155. array(1,0,0,0,0,0,0,1,0),
  1156. array(1,0,0,0,0,0,0,0,1),
  1157. array(1,0,0,0,0,0,0,0,1),
  1158. array(1,0,0,0,0,0,0,0,1),
  1159. array(1,0,0,0,0,0,0,0,1),
  1160. array(1,0,0,0,0,0,0,1,0),
  1161. array(1,1,1,1,1,1,1,0,0),
  1162. array(1,1,1,0,0,0,0,0,0),
  1163. array(1,0,0,1,0,0,0,0,0),
  1164. array(1,0,0,0,1,0,0,0,0),
  1165. array(1,0,0,0,0,1,0,0,0),
  1166. array(1,0,0,0,0,0,1,0,0),
  1167. array(1,0,0,0,0,0,0,1,0),
  1168. array(1,0,0,0,0,0,0,0,1),
  1169. ),
  1170. array(
  1171. array(1,1,1,1,1,1,1,0,0),
  1172. array(0,1,0,0,0,0,0,1,0),
  1173. array(0,1,0,0,0,0,0,0,1),
  1174. array(0,1,0,0,0,0,0,0,1),
  1175. array(0,1,0,0,0,0,0,0,1),
  1176. array(0,1,0,0,0,0,0,0,1),
  1177. array(0,1,0,0,0,0,0,1,0),
  1178. array(1,1,1,1,1,1,1,0,0),
  1179. array(0,1,1,0,0,0,0,0,0),
  1180. array(0,1,1,1,0,0,0,0,0),
  1181. array(0,1,0,1,1,0,0,0,0),
  1182. array(0,1,0,0,1,1,0,0,0),
  1183. array(0,1,0,0,0,1,1,0,0),
  1184. array(0,1,0,0,0,0,1,1,0),
  1185. array(1,1,1,0,0,0,1,1,1),
  1186. ),
  1187. array(
  1188. array(0,0,0,0,0,0,0,0,0),
  1189. array(0,0,0,0,0,0,0,0,0),
  1190. array(0,0,0,0,0,0,0,0,0),
  1191. array(0,0,0,0,0,0,0,0,0),
  1192. array(0,0,0,0,0,0,0,0,0),
  1193. array(0,0,0,0,0,0,0,0,0),
  1194. array(1,0,0,0,0,0,0,0,0),
  1195. array(1,1,1,1,1,0,0,0,0),
  1196. array(1,1,0,0,1,1,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. array(1,0,0,0,0,0,0,0,0),
  1200. array(1,0,0,0,0,0,0,0,0),
  1201. array(1,0,0,0,0,0,0,0,0),
  1202. array(1,0,0,0,0,0,0,0,0),
  1203. ),
  1204. ),
  1205. 'S' => array(
  1206. array(
  1207. array(0,0,1,1,1,1,1,0,0),
  1208. array(0,1,0,0,0,0,0,1,0),
  1209. array(1,0,0,0,0,0,0,0,1),
  1210. array(1,0,0,0,0,0,0,0,0),
  1211. array(1,0,0,0,0,0,0,0,0),
  1212. array(1,0,0,0,0,0,0,0,0),
  1213. array(0,1,0,0,0,0,0,0,0),
  1214. array(0,0,1,1,1,1,1,0,0),
  1215. array(0,0,0,0,0,0,0,1,0),
  1216. array(0,0,0,0,0,0,0,0,1),
  1217. array(0,0,0,0,0,0,0,0,1),
  1218. array(0,0,0,0,0,0,0,0,1),
  1219. array(1,0,0,0,0,0,0,0,1),
  1220. array(0,1,0,0,0,0,0,1,0),
  1221. array(0,0,1,1,1,1,1,0,0),
  1222. ),
  1223. array(
  1224. array(0,0,1,1,1,1,1,0,1),
  1225. array(0,1,0,0,0,0,0,1,1),
  1226. array(1,0,0,0,0,0,0,0,1),
  1227. array(1,0,0,0,0,0,0,0,1),
  1228. array(1,0,0,0,0,0,0,0,0),
  1229. array(1,0,0,0,0,0,0,0,0),
  1230. array(0,1,0,0,0,0,0,0,0),
  1231. array(0,0,1,1,1,1,1,0,0),
  1232. array(0,0,0,0,0,0,0,1,0),
  1233. array(0,0,0,0,0,0,0,0,1),
  1234. array(1,0,0,0,0,0,0,0,1),
  1235. array(1,0,0,0,0,0,0,0,1),
  1236. array(1,0,0,0,0,0,0,0,1),
  1237. array(1,1,0,0,0,0,0,1,0),
  1238. array(1,0,1,1,1,1,1,0,0),
  1239. ),
  1240. array(
  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,0,0,0,0,0,0,0,0),
  1245. array(0,0,0,0,0,0,0,0,0),
  1246. array(0,0,0,0,0,0,0,0,0),
  1247. array(0,0,0,0,0,0,0,0,0),
  1248. array(0,1,1,1,1,0,0,0,0),
  1249. array(1,0,0,0,0,1,0,0,0),
  1250. array(1,0,0,0,0,0,0,0,0),
  1251. array(1,1,0,0,0,0,0,0,0),
  1252. array(0,1,1,1,1,0,0,0,0),
  1253. array(0,0,0,0,0,1,0,0,0),
  1254. array(1,0,0,0,1,1,0,0,0),
  1255. array(0,1,1,1,1,0,0,0,0),
  1256. ),
  1257. ),
  1258. 'T' => array(
  1259. array(
  1260. array(1,1,1,1,1,1,1,1,1),
  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. array(0,0,0,0,1,0,0,0,0),
  1272. array(0,0,0,0,1,0,0,0,0),
  1273. array(0,0,0,0,1,0,0,0,0),
  1274. array(0,0,0,0,1,0,0,0,0),
  1275. ),
  1276. array(
  1277. array(1,1,1,1,1,1,1,1,1),
  1278. array(1,0,0,0,1,0,0,0,1),
  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,0,1,0,0,0,0),
  1288. array(0,0,0,0,1,0,0,0,0),
  1289. array(0,0,0,0,1,0,0,0,0),
  1290. array(0,0,0,0,1,0,0,0,0),
  1291. array(0,0,0,1,1,1,0,0,0),
  1292. ),
  1293. array(
  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,1,1,1,1,1,1,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,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,1,0,0,0),
  1308. array(0,0,0,0,0,1,1,1,0),
  1309. ),
  1310. ),
  1311. 'U' => array(
  1312. array(
  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(1,0,0,0,0,0,0,0,1),
  1323. array(1,0,0,0,0,0,0,0,1),
  1324. array(1,0,0,0,0,0,0,0,1),
  1325. array(1,0,0,0,0,0,0,0,1),
  1326. array(0,1,0,0,0,0,0,1,0),
  1327. array(0,0,1,1,1,1,1,0,0),
  1328. ),
  1329. array(
  1330. array(1,0,0,0,0,0,0,0,0),
  1331. array(1,1,1,0,0,0,1,1,1),
  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,0,0,0,0,0,1,0),
  1340. array(0,1,0,0,0,0,0,1,0),
  1341. array(0,1,0,0,0,0,0,1,0),
  1342. array(0,1,0,0,0,0,0,1,0),
  1343. array(0,1,1,0,0,0,1,1,0),
  1344. array(0,0,1,1,1,1,1,0,0),
  1345. ),
  1346. array(
  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,0,0,0,0,0,0,0),
  1351. array(0,0,0,0,0,0,0,0,0),
  1352. array(0,0,0,0,0,0,0,0,0),
  1353. array(0,0,0,0,0,0,0,0,0),
  1354. array(0,0,1,0,0,0,0,0,1),
  1355. array(0,0,1,0,0,0,0,0,1),
  1356. array(0,0,1,0,0,0,0,0,1),
  1357. array(0,0,1,0,0,0,0,0,1),
  1358. array(0,0,1,0,0,0,0,0,1),
  1359. array(0,0,1,0,0,0,0,1,1),
  1360. array(0,0,1,1,0,0,1,1,1),
  1361. array(0,0,0,1,1,1,1,0,1),
  1362. ),
  1363. ),
  1364. 'V' => array(
  1365. array(
  1366. array(1,0,0,0,0,0,0,0,1),
  1367. array(1,0,0,0,0,0,0,0,1),
  1368. array(1,0,0,0,0,0,0,0,1),
  1369. array(0,1,0,0,0,0,0,1,0),
  1370. array(0,1,0,0,0,0,0,1,0),
  1371. array(0,1,0,0,0,0,0,1,0),
  1372. array(0,0,1,0,0,0,1,0,0),
  1373. array(0,0,1,0,0,0,1,0,0),
  1374. array(0,0,1,0,0,0,1,0,0),
  1375. array(0,0,1,0,0,0,1,0,0),
  1376. array(0,0,0,1,0,1,0,0,0),
  1377. array(0,0,0,1,0,1,0,0,0),
  1378. array(0,0,0,1,0,1,0,0,0),
  1379. array(0,0,0,0,1,0,0,0,0),
  1380. array(0,0,0,0,1,0,0,0,0),
  1381. ),
  1382. array(
  1383. array(0,0,0,0,0,0,0,0,0),
  1384. array(0,0,0,0,0,0,0,0,0),
  1385. array(0,0,0,0,0,0,0,0,0),
  1386. array(1,1,1,0,0,0,1,1,1),
  1387. array(0,1,0,0,0,0,0,1,0),
  1388. array(0,1,0,0,0,0,0,1,0),
  1389. array(0,0,1,0,0,0,1,0,0),
  1390. array(0,0,1,0,0,0,1,0,0),
  1391. array(0,0,1,0,0,0,1,0,0),
  1392. array(0,0,1,0,0,0,1,0,0),
  1393. array(0,0,0,1,0,1,0,0,0),
  1394. array(0,0,0,1,0,1,0,0,0),
  1395. array(0,0,0,1,0,1,0,0,0),
  1396. array(0,0,0,0,1,0,0,0,0),
  1397. array(0,0,0,0,1,0,0,0,0),
  1398. ),
  1399. array(
  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,0,0,0,0,0,0,0),
  1403. array(0,0,0,0,0,0,0,0,0),
  1404. array(0,0,0,0,0,0,0,0,0),
  1405. array(0,0,0,0,0,0,0,0,0),
  1406. array(0,0,1,0,0,0,1,0,0),
  1407. array(0,0,1,0,0,0,1,0,0),
  1408. array(0,0,1,0,0,0,1,0,0),
  1409. array(0,0,1,0,0,0,1,0,0),
  1410. array(0,0,0,1,0,1,0,0,0),
  1411. array(0,0,0,1,0,1,0,0,0),
  1412. array(0,0,0,1,0,1,0,0,0),
  1413. array(0,0,0,0,1,0,0,0,0),
  1414. array(0,0,0,0,1,0,0,0,0),
  1415. ),
  1416. ),
  1417. 'W' => array(
  1418. array(
  1419. array(1,0,0,0,0,0,0,0,1),
  1420. array(1,0,0,0,0,0,0,0,1),
  1421. array(1,0,0,0,0,0,0,0,1),
  1422. array(1,0,0,0,0,0,0,0,1),
  1423. array(1,0,0,0,0,0,0,0,1),
  1424. array(1,0,0,0,1,0,0,0,1),
  1425. array(1,0,0,0,1,0,0,0,1),
  1426. array(1,0,0,1,0,1,0,0,1),
  1427. array(1,0,0,1,0,1,0,0,1),
  1428. array(1,0,0,1,0,1,0,0,1),
  1429. array(1,0,1,0,0,0,1,0,1),
  1430. array(1,0,1,0,0,0,1,0,1),
  1431. array(1,0,1,0,0,0,1,0,1),
  1432. array(1,1,0,0,0,0,0,1,1),
  1433. array(1,1,0,0,0,0,0,1,1),
  1434. ),
  1435. array(
  1436. array(0,0,0,0,0,0,0,0,0),
  1437. array(0,0,0,0,0,0,0,0,0),
  1438. array(1,1,1,0,0,0,1,1,1),
  1439. array(0,1,0,0,0,0,0,1,0),
  1440. array(0,1,0,0,0,0,0,1,0),
  1441. array(0,1,0,0,0,0,0,1,0),
  1442. array(0,1,0,0,0,0,0,1,0),
  1443. array(0,1,0,0,1,0,0,1,0),
  1444. array(0,1,0,0,1,0,0,1,0),
  1445. array(0,1,0,1,1,1,0,1,0),
  1446. array(0,1,0,1,0,1,0,1,0),
  1447. array(0,1,1,1,0,1,1,1,0),
  1448. array(0,1,1,0,0,0,1,1,0),
  1449. array(0,1,0,0,0,0,0,1,0),
  1450. array(0,0,0,0,0,0,0,0,0),
  1451. ),
  1452. array(
  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,0,0,0,0,0,0,0,0),
  1456. array(0,0,0,0,0,0,0,0,0),
  1457. array(0,0,0,0,0,0,0,0,0),
  1458. array(0,0,0,0,0,0,0,0,0),
  1459. array(0,1,0,0,0,0,0,1,0),
  1460. array(0,1,0,0,1,0,0,1,0),
  1461. array(0,1,0,0,1,0,0,1,0),
  1462. array(0,1,0,1,1,1,0,1,0),
  1463. array(0,1,0,1,0,1,0,1,0),
  1464. array(0,1,1,1,0,1,1,1,0),
  1465. array(0,1,1,0,0,0,1,1,0),
  1466. array(0,1,0,0,0,0,0,1,0),
  1467. array(0,0,0,0,0,0,0,0,0),
  1468. ),
  1469. ),
  1470. 'X' => array(
  1471. array(
  1472. array(1,0,0,0,0,0,0,0,1),
  1473. array(1,0,0,0,0,0,0,0,1),
  1474. array(0,1,0,0,0,0,0,1,0),
  1475. array(0,1,0,0,0,0,0,1,0),
  1476. array(0,0,1,0,0,0,1,0,0),
  1477. array(0,0,0,1,0,1,0,0,0),
  1478. array(0,0,0,1,0,1,0,0,0),
  1479. array(0,0,0,0,1,0,0,0,0),
  1480. array(0,0,0,1,0,1,0,0,0),
  1481. array(0,0,0,1,0,1,0,0,0),
  1482. array(0,0,1,0,0,0,1,0,0),
  1483. array(0,1,0,0,0,0,1,0,0),
  1484. array(0,1,0,0,0,0,0,1,0),
  1485. array(1,0,0,0,0,0,0,0,1),
  1486. array(1,0,0,0,0,0,0,0,1),
  1487. ),
  1488. array(
  1489. array(0,0,0,0,0,0,0,0,0),
  1490. array(1,1,1,0,0,0,1,1,1),
  1491. array(0,1,0,0,0,0,0,1,0),
  1492. array(0,1,0,0,0,0,0,1,0),
  1493. array(0,0,1,0,0,0,1,0,0),
  1494. array(0,0,0,1,0,1,0,0,0),
  1495. array(0,0,0,1,0,1,0,0,0),
  1496. array(0,0,0,0,1,0,0,0,0),
  1497. array(0,0,0,1,0,1,0,0,0),
  1498. array(0,0,0,1,0,1,0,0,0),
  1499. array(0,0,1,0,0,0,1,0,0),
  1500. array(0,1,0,0,0,0,1,0,0),
  1501. array(0,1,0,0,0,0,0,1,0),
  1502. array(1,1,1,0,0,0,1,1,1),
  1503. array(0,0,0,0,0,0,0,0,0),
  1504. ),
  1505. array(
  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,0,0,0,0,0,0,0,0),
  1510. array(0,0,0,0,0,0,0,0,0),
  1511. array(0,0,0,0,0,0,0,0,0),
  1512. array(0,0,0,0,0,0,0,0,0),
  1513. array(0,1,0,0,0,0,0,1,0),
  1514. array(0,1,1,0,0,0,1,1,0),
  1515. array(0,0,1,1,0,1,1,0,0),
  1516. array(0,0,0,1,1,1,0,0,0),
  1517. array(0,0,0,1,1,1,0,0,0),
  1518. array(0,0,1,1,0,1,1,0,0),
  1519. array(0,1,1,0,0,0,1,1,0),
  1520. array(0,0,0,0,0,0,0,0,0),
  1521. ),
  1522. ),
  1523. 'Y' => array(
  1524. array(
  1525. array(1,0,0,0,0,0,0,0,1),
  1526. array(1,0,0,0,0,0,0,0,1),
  1527. array(0,1,0,0,0,0,0,1,0),
  1528. array(0,1,0,0,0,0,0,1,0),
  1529. array(0,0,1,0,0,0,1,0,0),
  1530. array(0,0,1,0,0,0,1,0,0),
  1531. array(0,0,0,1,0,1,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. array(0,0,0,0,1,0,0,0,0),
  1537. array(0,0,0,0,1,0,0,0,0),
  1538. array(0,0,0,0,1,0,0,0,0),
  1539. array(0,0,0,0,1,0,0,0,0),
  1540. ),
  1541. array(
  1542. array(0,0,0,0,0,0,0,0,0),
  1543. array(1,1,1,0,0,0,1,1,1),
  1544. array(0,1,0,0,0,0,0,1,0),
  1545. array(0,1,0,0,0,0,0,1,0),
  1546. array(0,0,1,0,0,0,1,0,0),
  1547. array(0,0,1,0,0,0,1,0,0),
  1548. array(0,0,0,1,0,1,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,0,1,0,0,0,0),
  1553. array(0,0,0,0,1,0,0,0,0),
  1554. array(0,0,0,0,1,0,0,0,0),
  1555. array(0,0,0,0,1,0,0,0,0),
  1556. array(0,0,0,1,1,1,0,0,0),
  1557. ),
  1558. array(
  1559. array(0,0,0,0,0,0,0,0,0),
  1560. array(0,0,0,0,0,0,0,0,0),
  1561. array(0,0,0,0,0,0,0,0,0),
  1562. array(0,0,0,0,0,0,0,0,0),
  1563. array(0,0,0,1,0,0,0,0,1),
  1564. array(0,0,0,1,1,0,0,0,1),
  1565. array(0,0,0,0,1,0,0,1,1),
  1566. array(0,0,0,0,1,1,0,1,0),
  1567. array(0,0,0,0,0,1,1,1,0),
  1568. array(0,0,0,0,0,0,1,0,0),
  1569. array(0,0,0,0,0,1,1,0,0),
  1570. array(0,0,0,0,0,1,0,0,0),
  1571. array(0,0,0,0,1,1,0,0,0),
  1572. array(0,0,1,1,1,0,0,0,0),
  1573. array(0,0,0,0,0,0,0,0,0),
  1574. ),
  1575. ),
  1576. 'Z' => array(
  1577. array(
  1578. array(1,1,1,1,1,1,1,1,1),
  1579. array(1,0,0,0,0,0,0,0,1),
  1580. array(0,0,0,0,0,0,0,0,1),
  1581. array(0,0,0,0,0,0,0,1,0),
  1582. array(0,0,0,0,0,0,1,0,0),
  1583. array(0,0,0,0,0,1,0,0,0),
  1584. array(0,0,0,0,0,1,0,0,0),
  1585. array(0,0,0,0,1,0,0,0,0),
  1586. array(0,0,0,1,0,0,0,0,0),
  1587. array(0,0,0,1,0,0,0,0,0),
  1588. array(0,0,1,0,0,0,0,0,0),
  1589. array(0,1,0,0,0,0,0,0,0),
  1590. array(1,0,0,0,0,0,0,0,0),
  1591. array(1,0,0,0,0,0,0,0,1),
  1592. array(1,1,1,1,1,1,1,1,1),
  1593. ),
  1594. array(
  1595. array(1,1,1,1,1,1,1,1,1),
  1596. array(0,0,0,0,0,0,0,0,1),
  1597. array(0,0,0,0,0,0,0,0,1),
  1598. array(0,0,0,0,0,0,0,1,0),
  1599. array(0,0,0,0,0,0,1,0,0),
  1600. array(0,0,0,0,0,1,0,0,0),
  1601. array(0,0,0,0,0,1,0,0,0),
  1602. array(0,0,1,1,1,1,1,0,0),
  1603. array(0,0,0,1,0,0,0,0,0),
  1604. array(0,0,0,1,0,0,0,0,0),
  1605. array(0,0,1,0,0,0,0,0,0),
  1606. array(0,1,0,0,0,0,0,0,0),
  1607. array(1,0,0,0,0,0,0,0,0),
  1608. array(1,0,0,0,0,0,0,0,0),
  1609. array(1,1,1,1,1,1,1,1,1),
  1610. ),
  1611. array(
  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,0,0,0,0,0,0,0,0),
  1617. array(0,0,0,0,0,0,0,0,0),
  1618. array(0,0,0,0,0,0,0,0,0),
  1619. array(0,0,0,0,0,0,0,0,0),
  1620. array(0,1,1,1,1,1,1,1,0),
  1621. array(0,0,0,0,0,1,1,0,0),
  1622. array(0,0,0,0,1,1,0,0,0),
  1623. array(0,0,0,1,1,0,0,0,0),
  1624. array(0,0,1,1,0,0,0,0,0),
  1625. array(0,0,1,0,0,0,0,0,0),
  1626. array(0,1,1,1,1,1,1,1,0),
  1627. ),
  1628. ),
  1629. );
  1630. return array(
  1631. 'width' => 9,
  1632. 'height' => 15,
  1633. 'data' => array(
  1634. 'A' => $chars['A'][mt_rand(0, min(count($chars['A']), $config['captcha_gd_fonts']) -1)],
  1635. 'B' => $chars['B'][mt_rand(0, min(count($chars['B']), $config['captcha_gd_fonts']) -1)],
  1636. 'C' => $chars['C'][mt_rand(0, min(count($chars['C']), $config['captcha_gd_fonts']) -1)],
  1637. 'D' => $chars['D'][mt_rand(0, min(count($chars['D']), $config['captcha_gd_fonts']) -1)],
  1638. 'E' => $chars['E'][mt_rand(0, min(count($chars['E']), $config['captcha_gd_fonts']) -1)],
  1639. 'F' => $chars['F'][mt_rand(0, min(count($chars['F']), $config['captcha_gd_fonts']) -1)],
  1640. 'G' => $chars['G'][mt_rand(0, min(count($chars['G']), $config['captcha_gd_fonts']) -1)],
  1641. 'H' => $chars['H'][mt_rand(0, min(count($chars['H']), $config['captcha_gd_fonts']) -1)],
  1642. 'I' => $chars['I'][mt_rand(0, min(count($chars['I']), $config['captcha_gd_fonts']) -1)],
  1643. 'J' => $chars['J'][mt_rand(0, min(count($chars['J']), $config['captcha_gd_fonts']) -1)],
  1644. 'K' => $chars['K'][mt_rand(0, min(count($chars['K']), $config['captcha_gd_fonts']) -1)],
  1645. 'L' => $chars['L'][mt_rand(0, min(count($chars['L']), $config['captcha_gd_fonts']) -1)],
  1646. 'M' => $chars['M'][mt_rand(0, min(count($chars['M']), $config['captcha_gd_fonts']) -1)],
  1647. 'N' => $chars['N'][mt_rand(0, min(count($chars['N']), $config['captcha_gd_fonts']) -1)],
  1648. 'O' => $chars['O'][mt_rand(0, min(count($chars['O']), $config['captcha_gd_fonts']) -1)],
  1649. 'P' => $chars['P'][mt_rand(0, min(count($chars['P']), $config['captcha_gd_fonts']) -1)],
  1650. 'Q' => $chars['Q'][mt_ra

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