summaryrefslogtreecommitdiffstats
path: root/perl-install/install_gtk.pm
blob: c7086f91504b84e7a19a92e403cb3f459521aff4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
package install_gtk; # $Id$

use diagnostics;
use strict;

use ugtk2 qw(:wrappers :helpers :create);
use common;
use lang;
use devices;

#-#####################################################################################
#-INTERN CONSTANT
#-#####################################################################################

my @background;

#- if we're running for the doc team, we want screenshots with
#- a good B&W contrast: we'll override values of our theme
my $theme_overriding_for_doc = q(style "galaxy-default"
{
    base[SELECTED]    = "#E0E0FF"
    base[ACTIVE]      = "#E0E0FF"
    base[PRELIGHT]    = "#E0E0FF"
    bg[SELECTED]      = "#E0E0FF"
    bg[ACTIVE]        = "#E0E0FF"
    bg[PRELIGHT]      = "#E0E0FF"
    text[ACTIVE]      = "#000000"
    text[PRELIGHT]    = "#000000"
    text[SELECTED]    = "#000000"
    fg[SELECTED]      = "#000000"
}

style "white-on-blue"
{
  base[NORMAL] = { 0.93, 0.93, 0.93 }
  bg[NORMAL] = { 0.93, 0.93, 0.93 }
    
  text[NORMAL] = "#000000"
  fg[NORMAL] = "#000000"
}

style "background"
{
  bg[NORMAL] = { 0.93, 0.93, 0.93 }
}

style "background-logo"
{
  bg[NORMAL] = { 0.70, 0.70, 0.70 }
}
widget "*logo*" style "background-logo"

);

#------------------------------------------------------------------------------
sub load_rc {
    my ($o, $name) = @_;

    if (my $f = -r $name ? $name
                         : find { -r $_ } map { "$_/themes-$name.rc" } ("share", $ENV{SHARE_PATH}, dirname(__FILE__))) {
	my @contents = cat_($f);
	$o->{doc} and push @contents, $theme_overriding_for_doc;

	Gtk2::Rc->parse_string(join("\n", @contents));
 	foreach (@contents) {
	    if (/style\s+"background"/ .. /^\s*$/) {
		@background = map { $_ * 256 * 257 } split ',', $1 if /NORMAL.*\{(.*)\}/;
	    }
	}
   }

    if ($::move) {
        #- override selection color since we won't do inverse-video on the text when it's images
	Gtk2::Rc->parse_string(q(
style "galaxy-default"
{
    base[ACTIVE]      = "#CECECE"
    base[SELECTED]    = "#CECECE"
    text[ACTIVE]      = "#000000"
    text[PRELIGHT]    = "#000000"
    text[SELECTED]    = "#000000"
}
));
    }
}

#------------------------------------------------------------------------------
sub load_font {
    my ($o) = @_;

    if (lang::text_direction_rtl()) {
	Gtk2::Widget->set_default_direction('rtl'); 
	my ($x, $y) = $::WizardWindow->get_position;
	my ($width) = $::WizardWindow->get_size;
	$::WizardWindow->move($::rootwidth - $width - $x, $y);
    }

    Gtk2::Rc->parse_string(q(
style "default-font" 
{
   font_name = ") . lang::l2pango_font($o->{locale}{lang}) . q("
}
widget "*" style "default-font"

));
}

#------------------------------------------------------------------------------
sub default_theme {
    my ($o) = @_;
    $::move ? '/usr/share/themes/Galaxy/gtk-2.0/gtkrc' :
    $o->{meta_class} eq 'firewall' ? 'mdk-Firewall' : 
    $o->{simple_themes} || $o->{vga16} ? 'blue' : 'galaxy';
}

sub install_theme {
    my ($o) = @_;

    load_rc($o, $o->{theme} ||= default_theme($o));
    load_font($o);
    gtkset_background(@background) if !$::move;
}

#------------------------------------------------------------------------------
sub create_help_window {
    my ($o) = @_;

    my $w;
    if ($w = $o->{help_window}) {
	$w->{window}->foreach(sub { $_[0]->destroy }, undef);
    } else {
	$w = $o->{help_window} = bless {}, 'ugtk2';
	$w->{rwindow} = $w->{window} = Gtk2::Window->new('toplevel');
	$w->{rwindow}->set_uposition($::rootwidth - $::helpwidth, $::rootheight - $::helpheight);
	$w->{rwindow}->set_size_request($::helpwidth, $::helpheight);
	$w->{rwindow}->set_title('skip');
    };
    gtkadd($w->{window}, create_scrolled_window($o->{help_window_text} = Gtk2::TextView->new));
    $w->show;
}

#------------------------------------------------------------------------------
my %steps;
sub create_steps_window {
    my ($o) = @_;

    return if $::stepswidth == 0;

    $o->{steps_window} and $o->{steps_window}->destroy;
    my $w = bless {}, 'ugtk2';
    $w->{rwindow} = $w->{window} = Gtk2::Window->new('toplevel');
    $w->{rwindow}->set_uposition(lang::text_direction_rtl() ? ($::rootwidth - $::stepswidth - 8) : 8, 150);
    $w->{rwindow}->set_size_request($::stepswidth, -1);
    $w->{rwindow}->set_name('Steps');
    $w->{rwindow}->set_title('skip');

    $steps{$_} ||= gtkcreate_pixbuf("steps_$_") foreach qw(on off);
    my $category = sub { gtkset_markup(Gtk2::Label->new,
				       $o->{doc} ? $_[0] : '<span foreground="gray81">' . $_[0] . '</span>') };

    gtkpack__(my $vb = Gtk2::VBox->new(0, 3), $steps{inst} = $category->(N("System installation")), '');
    foreach (grep { !eval $o->{steps}{$_}{hidden} } @{$o->{orderedSteps}}) {
	$_ eq 'setRootPassword'
	  and gtkpack__($vb, '', '', $steps{conf} = $category->(N("System configuration")), '');
	$steps{steps}{$_} = { img => gtkcreate_img('steps_off.png'),
			      txt => Gtk2::Label->new(translate($o->{steps}{$_}{text})) };
	gtkpack__($vb, gtkpack__(Gtk2::HBox->new(0, 7), $steps{steps}{$_}{img}, $steps{steps}{$_}{txt}));
					      
    }

    gtkadd($w->{window}, $vb);
    $w->show;
    $o->{steps_window} = $w;
}

sub update_steps_position {
    my ($o) = @_;
    return if !$steps{steps};
    my $last_step;
    foreach (@{$o->{orderedSteps}}) {
	exists $steps{steps}{$_} or next;
	if ($o->{steps}{$_}{entered} && !$o->{steps}{$_}{done}) {
	    $steps{steps}{$_}{img}->set_from_pixbuf($steps{on});
	    $last_step and $steps{steps}{$last_step}{img}->set_from_pixbuf($steps{off});
	    return;
	}
	$last_step = $_;
    }
}

#------------------------------------------------------------------------------
sub create_logo_window {
    my ($o) = @_;

    return if $::logowidth == 0 || $::move;

    gtkdestroy($o->{logo_window});

    my $w = bless {}, 'ugtk2';
    $w->{rwindow} = $w->{window} = Gtk2::Window->new('toplevel');
#    $w->{rwindow}->set_position(0, 0);
    $w->{rwindow}->set_size_request($::logowidth, $::logoheight);
    $w->{rwindow}->set_name("logo");
    $w->{rwindow}->set_title('skip');
    $w->show;
    my $file = $o->{meta_class} eq 'firewall' ? "logo-mandrake-Firewall.png" : "logo-mandrake.png";
    -r $file or $file = "$ENV{SHARE_PATH}/$file";
    -r $file and gtkadd($w->{window}, gtkcreate_img($file));
    $o->{logo_window} = $w;
}

#------------------------------------------------------------------------------
sub init_gtk {
    my ($o) = @_;

    symlink("/tmp/stage2/etc/$_", "/etc/$_") foreach qw(gtk-2.0 pango fonts);

    if ($o->{vga16}) {
        #- inactivate antialias in VGA16 because it makes fonts look worse
        output('/tmp/fonts.conf',
q(<fontconfig>
<include>/etc/fonts/fonts.conf</include>
<match target="font"><edit name="antialias"><bool>false</bool></edit></match>
</fontconfig>
));
        $ENV{FONTCONFIG_FILE} = '/tmp/fonts.conf';
    }

    Gtk2->init;
    Gtk2->set_locale;
}

#------------------------------------------------------------------------------
sub init_sizes() {
    ($::rootwidth,  $::rootheight)    = (Gtk2::Gdk->screen_width, Gtk2::Gdk->screen_height);
    #- ($::rootheight,  $::rootwidth)    = (min(768, $::rootheight), min(1024, $::rootwidth));
    $::stepswidth = $::rootwidth <= 640 ? 0 : 200 if !$::move;
    ($::logowidth, $::logoheight) = $::rootwidth <= 640 ? (0, 0) : (500, 40);
    ($::helpwidth,   $::helpheight)   = ($::rootwidth - $::stepswidth, $::move && 15);
    ($::windowwidth, $::windowheight) = ($::rootwidth - $::stepswidth, $::rootheight - $::helpheight - $::logoheight);
    ($::real_windowwidth, $::real_windowheight) = (576, 418);
    $::move and $::windowwidth -= 100;
}

#------------------------------------------------------------------------------
sub createXconf {
    my ($file, $mouse_type, $mouse_dev, $_wacom_dev, $Driver) = @_;

    symlinkf(devices::make($mouse_dev), "/dev/mouse") if $mouse_dev ne 'none';

    #- needed for imlib to start on 8-bit depth visual.
    symlink("/tmp/stage2/etc/imrc", "/etc/imrc");
    symlink("/tmp/stage2/etc/im_palette.pal", "/etc/im_palette.pal");

    #- remove "error opening security policy file" warning
    symlink("/tmp/stage2/etc/X11", "/etc/X11");

if ($Driver) {
     output($file, sprintf(<<'END', $mouse_type, $Driver, $Driver eq 'fbdev' ? '"default"' : '"800x600" "640x480"'));

Section "Files"
   FontPath   "/usr/X11R6/lib/X11/fonts:unscaled"
EndSection

Section "InputDevice"
    Identifier "Keyboard"
    Driver "Keyboard"
    Option "XkbDisable"
    Option "XkbModel" "pc105"
    Option "XkbLayout" ""
EndSection

Section "InputDevice"
    Identifier "Mouse"
    Driver "mouse"
    Option "Protocol" "%s"
    Option "Device" "/dev/mouse"
    Option "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
    Identifier "monitor"
    HorizSync 31.5-35.5
    VertRefresh 50-70
EndSection

Section "Device"
    Identifier  "device"
    Driver      "%s"
EndSection

Section "Screen"
    Identifier "screen"
    Device "device"
    Monitor "monitor"
    DefaultColorDepth 16
    Subsection "Display"
        Depth 16
        Modes %s
    EndSubsection
EndSection

Section "ServerLayout"
    Identifier "layout"
    Screen "screen"
    InputDevice "Mouse" "CorePointer"
    InputDevice "Keyboard" "CoreKeyboard"
EndSection

END
 }
}

1;
> 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/

namespace phpbb\captcha;

class gd
{
	var $width = 360;
	var $height = 96;

	/**
	* Create the image containing $code with a seed of $seed
	*/
	function execute($code, $seed)
	{
		global $config;

		mt_srand($seed);

		// Create image
		$img = imagecreatetruecolor($this->width, $this->height);

		// Generate colours
		$colour = new colour_manager($img, array(
			'random'	=> true,
			'min_value'	=> 60,
		), 'hsv');

		$scheme = $colour->colour_scheme('background', false);
		$scheme = $colour->mono_range($scheme, 10, false);
		shuffle($scheme);

		$bg_colours = array_splice($scheme, mt_rand(6, 12));

		// Generate code characters
		$characters = $sizes = $bounding_boxes = $noise = array();
		$width_avail = $this->width - 15;
		$code_len = strlen($code);
		$captcha_bitmaps = $this->captcha_bitmaps();

		for ($i = 0; $i < $code_len; ++$i)
		{
			$characters[$i] = new char_cube3d($captcha_bitmaps, $code[$i]);

			list($min, $max) = $characters[$i]->range();
			$sizes[$i] = mt_rand($min, $max);

			$box = $characters[$i]->dimensions($sizes[$i]);
			$width_avail -= ($box[2] - $box[0]);
			$bounding_boxes[$i] = $box;
		}

		// Redistribute leftover x-space
		$offset = array();
		for ($i = 0; $i < $code_len; ++$i)
		{
			$denom = ($code_len - $i);
			$denom = max(1.3, $denom);
			$offset[$i] = phpbb_mt_rand(0, (int) round((1.5 * $width_avail) / $denom));
			$width_avail -= $offset[$i];
		}

		if ($config['captcha_gd_x_grid'])
		{
			$grid = (int) $config['captcha_gd_x_grid'];
			for ($y = 0; $y < $this->height; $y += mt_rand($grid - 2, $grid + 2))
			{
				$current_colour = $scheme[array_rand($scheme)];
				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);
			}
		}

		if ($config['captcha_gd_y_grid'])
		{
			$grid = (int) $config['captcha_gd_y_grid'];
			for ($x = 0; $x < $this->width; $x += mt_rand($grid - 2, $grid + 2))
			{
				$current_colour = $scheme[array_rand($scheme)];
				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);
			}
		}

		if ($config['captcha_gd_wave'] && ($config['captcha_gd_y_grid'] || $config['captcha_gd_y_grid']))
		{
			$this->wave($img);
		}

		if ($config['captcha_gd_3d_noise'])
		{
			$xoffset = mt_rand(0,9);
			$noise_bitmaps = $this->captcha_noise_bg_bitmaps();
			for ($i = 0; $i < $code_len; ++$i)
			{
				$noise[$i] = new char_cube3d($noise_bitmaps, mt_rand(1, sizeof($noise_bitmaps['data'])));

				list($min, $max) = $noise[$i]->range();
				//$box = $noise[$i]->dimensions($sizes[$i]);
			}
			$xoffset = 0;
			for ($i = 0; $i < $code_len; ++$i)
			{
				$dimm = $bounding_boxes[$i];
				$xoffset += ($offset[$i] - $dimm[0]);
				$yoffset = mt_rand(-$dimm[1], $this->height - $dimm[3]);

				$noise[$i]->drawchar($sizes[$i], $xoffset, $yoffset, $img, $colour->get_resource('background'), $scheme);
				$xoffset += $dimm[2];
			}
		}

		$xoffset = 5;
		for ($i = 0; $i < $code_len; ++$i)
		{
			$dimm = $bounding_boxes[$i];
			$xoffset += ($offset[$i] - $dimm[0]);
			$yoffset = mt_rand(-$dimm[1], $this->height - $dimm[3]);

			$characters[$i]->drawchar($sizes[$i], $xoffset, $yoffset, $img, $colour->get_resource('background'), $scheme);
			$xoffset += $dimm[2];
		}

		if ($config['captcha_gd_wave'])
		{
			$this->wave($img);
		}

		if ($config['captcha_gd_foreground_noise'])
		{
			$this->noise_line($img, 0, 0, $this->width, $this->height, $colour->get_resource('background'), $scheme, $bg_colours);
		}

		// Send image
		header('Content-Type: image/png');
		header('Cache-control: no-cache, no-store');
		imagepng($img);
		imagedestroy($img);
	}

	/**
	* Sinus
	*/
	function wave($img)
	{
		global $config;

		$period_x = mt_rand(12,18);
		$period_y = mt_rand(7,14);
		$amp_x = mt_rand(5,10);
		$amp_y = mt_rand(2,4);
		$socket = mt_rand(0,100);

		$dampen_x = mt_rand($this->width/5, $this->width/2);
		$dampen_y = mt_rand($this->height/5, $this->height/2);
		$direction_x = (mt_rand (0, 1));
		$direction_y = (mt_rand (0, 1));

		for ($i = 0; $i < $this->width; $i++)
		{
			$dir = ($direction_x) ? $i : ($this->width - $i);
			imagecopy($img, $img, $i-1, sin($socket+ $i/($period_x + $dir/$dampen_x)) * $amp_x, $i, 0, 1, $this->height);
		}
		$socket = mt_rand(0,100);
		for ($i = 0; $i < $this->height; $i++)
		{
			$dir = ($direction_y) ? $i : ($this->height - $i);
			imagecopy($img, $img ,sin($socket + $i/($period_y + ($dir)/$dampen_y)) * $amp_y, $i-1, 0, $i, $this->width, 1);
		}
		return $img;
	}

	/**
	* Noise line
	*/
	function noise_line($img, $min_x, $min_y, $max_x, $max_y, $bg, $font, $non_font)
	{
		imagesetthickness($img, 2);

		$x1 = $min_x;
		$x2 = $max_x;
		$y1 = $min_y;
		$y2 = $min_y;

		do
		{
			$line = array_merge(
				array_fill(0, mt_rand(30, 60), $non_font[array_rand($non_font)]),
				array_fill(0, mt_rand(30, 60), $bg)
			);

			imagesetstyle($img, $line);
			imageline($img, $x1, $y1, $x2, $y2, IMG_COLOR_STYLED);

			$y1 += mt_rand(12, 35);
			$y2 += mt_rand(12, 35);
		}
		while ($y1 < $max_y && $y2 < $max_y);

		$x1 = $min_x;
		$x2 = $min_x;
		$y1 = $min_y;
		$y2 = $max_y;

		do
		{
			$line = array_merge(
				array_fill(0, mt_rand(30, 60), $non_font[array_rand($non_font)]),
				array_fill(0, mt_rand(30, 60), $bg)
			);

			imagesetstyle($img, $line);
			imageline($img, $x1, $y1, $x2, $y2, IMG_COLOR_STYLED);

			$x1 += mt_rand(20, 35);
			$x2 += mt_rand(20, 35);
		}
		while ($x1 < $max_x && $x2 < $max_x);
		imagesetthickness($img, 1);
	}

	function captcha_noise_bg_bitmaps()
	{
		return array(
			'width'		=> 15,
			'height'	=> 5,
			'data'		=> array(

			1 => array(
				array(1,0,0,0,1,0,0,0,0,0,0,0,0,0,0),
				array(1,0,0,0,0,1,0,0,0,0,0,0,0,0,0),
				array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
				array(1,0,0,0,0,1,0,0,0,0,0,0,1,0,0),
				array(1,0,0,0,0,0,1,0,0,0,0,1,0,0,0),
			),
			2 => array(
				array(1,1,mt_rand(0,1),1,0,1,1,1,1,0,0,0,0,0,0),
				array(0,0,0,0,0,0,0,1,0,0,0,0,0,0,0),
				array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
				array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
				array(0,0,0,0,0,0,0,0,0,1,1,0,1,1,1),
			),
			3 => array(
				array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
				array(1,0,0,0,0,0,0,0,0,0,0,0,0,1,0),
				array(0,0,0,0,1,0,0,0,0,0,0,0,0,0,1),
				array(1,0,0,0,0,0,0,0,0,0,0,0,0,1,0),
				array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
			),
			4 => array(
				array(1,0,1,0,1,0,0,1,1,0,0,0,0,0,0),
				array(0,0,0,0,0,0,0,1,0,0,0,0,0,0,0),
				array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
				array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
				array(1,0,1,0,0,0,0,0,0,0,0,0,0,0,0),
			),
			5 => array(
				array(1,1,1,1,0,0,0,1,1,1,0,0,1,0,1),
				array(0,0,0,0,0,0,0,1,0,0,0,0,0,0,0),
				array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
				array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
				array(1,0,1,0,0,0,0,0,0,0,0,0,0,0,0),
			),
			6 => array(
				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)),
				array(0,0,0,0,0,0,0,mt_rand(0,1),0,0,0,0,0,0,0),
				array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
				array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
				array(mt_rand(0,1),0,mt_rand(0,1),0,0,0,0,0,0,0,0,0,0,0,0),
			),
			7 => array(
				array(0,0,0,0,0,0,0,0,0,0,1,1,0,1,1),
				array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
				array(0,0,1,1,0,0,0,1,0,0,0,0,0,0,0),
				array(0,1,0,0,0,1,0,0,0,0,0,0,0,0,0),
				array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
			),
		));
	}

	/**
	* Return bitmaps
	*/
	function captcha_bitmaps()
	{
		global $config;

		$chars = array(
			'A'	=>	array(
						array(
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,1,1,1,1,1,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,1,1,0,1,1,0,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,1,1,1,1,1,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(1,1,1,0,0,0,1,1,1),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,1,1,1,1,1,0,0),
							array(0,1,1,0,0,0,1,1,0),
							array(1,1,0,0,0,0,0,1,1),
							array(1,0,0,0,0,0,0,0,1),
							array(0,0,0,0,0,0,0,1,1),
							array(0,0,0,0,0,1,1,1,1),
							array(0,0,0,1,1,1,0,0,1),
							array(0,1,1,1,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,1,0,0,0,0,1,1,1),
							array(0,1,1,1,1,1,1,0,1),
						),
					),
		'B'	=>		array(
						array(
							array(1,1,1,1,1,1,1,0,0),
							array(1,0,0,0,0,0,0,1,0),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,1,0),
							array(1,1,1,1,1,1,1,0,0),
							array(1,0,0,0,0,0,0,1,0),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,1,0),
							array(1,1,1,1,1,1,1,0,0),
						),
						array(
							array(1,1,1,1,1,1,1,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,1,1,1,1,1,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,1,0),
							array(1,1,1,1,1,1,1,0,0),
						),
						array(
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,1,1,1,1,1,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,1,1,1,1,1,0,0),
						),
					),
		'C'	=>		array(
						array(
							array(0,0,1,1,1,1,1,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,1,0),
							array(0,0,1,1,1,1,1,0,0),
						),
						array(
							array(0,0,1,1,1,1,1,0,1),
							array(0,1,0,0,0,0,0,1,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,1,1),
							array(0,0,1,1,1,1,1,0,1),
						),
					),
		'D'	=>		array(
						array(
							array(1,1,1,1,1,1,1,0,0),
							array(1,0,0,0,0,0,0,1,0),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,1,0),
							array(1,1,1,1,1,1,1,0,0),
						),
						array(
							array(1,1,1,1,1,1,1,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,1,0),
							array(1,1,1,1,1,1,1,0,0),
						),
						array(
							array(0,0,0,0,0,0,0,0,1),
							array(0,0,0,0,0,0,0,0,1),
							array(0,0,0,0,0,0,0,0,1),
							array(0,0,0,0,0,0,0,0,1),
							array(0,0,0,0,0,0,0,0,1),
							array(0,0,0,0,0,0,0,0,1),
							array(0,0,0,0,0,0,0,0,1),
							array(0,0,1,1,1,1,1,0,1),
							array(0,1,1,0,0,0,1,1,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,1,0,0,0,1,1,1),
							array(0,0,1,1,1,1,1,0,1),
						),
					),
		'E'	=>		array(
						array(
							array(1,1,1,1,1,1,1,1,1),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,1,1,1,1,1,1,1,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,1,1,1,1,1,1,1,1),
						),
						array(
							array(1,1,1,1,1,1,1,1,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,1,1,1,1,1,1,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,1),
							array(1,1,1,1,1,1,1,1,1),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,1,1,1,1,1,0,0),
							array(0,1,1,0,0,0,1,1,0),
							array(1,1,0,0,0,0,0,1,1),
							array(1,1,1,1,1,1,1,1,1),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,1),
							array(1,1,0,0,0,0,0,1,1),
							array(0,1,1,1,1,1,1,1,0),
						),
					),
		'F'	=>		array(
						array(
							array(1,1,1,1,1,1,1,1,1),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,1,1,1,1,1,1,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
						),
						array(
							array(0,1,1,1,1,1,1,1,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,1,1,1,1,1,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(1,1,1,0,0,0,0,0,0),
						),
						array(
							array(0,0,0,1,1,0,0,0,0),
							array(0,0,1,1,0,0,0,0,0),
							array(0,1,1,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(1,1,1,1,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
						),
					),
		'G'	=>		array(
						array(
							array(0,0,1,1,1,1,1,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,1,1,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,1,0),
							array(0,0,1,1,1,1,1,0,0),
						),
						array(
							array(0,0,1,1,1,1,1,0,1),
							array(0,1,0,0,0,0,0,1,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,1,1,1,1,1),
							array(1,0,0,0,1,0,0,0,1),
							array(1,0,0,0,1,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,1,1),
							array(0,0,1,1,1,1,1,0,1),
						),
						array(
							array(0,0,1,1,1,1,1,0,1),
							array(0,1,1,0,0,0,0,1,1),
							array(1,1,0,0,0,0,0,1,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,1,1,0,0,0,0,0,1),
							array(0,0,1,1,1,1,1,1,1),
							array(0,0,0,0,0,0,0,0,1),
							array(0,0,0,0,0,0,0,0,1),
							array(0,0,0,0,0,0,0,0,1),
							array(0,0,0,0,0,0,0,0,1),
							array(0,0,0,0,0,0,0,1,1),
							array(1,1,1,1,1,1,1,1,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
						),
					),
		'H'	=>		array(
						array(
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,1,1,1,1,1,1,1,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
						),
						array(
							array(1,1,1,0,0,0,1,1,1),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,1,1,1,1,1,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(1,1,1,0,0,0,1,1,1),
						),
						array(
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,1,1,1,0,0,0),
							array(1,1,1,1,0,1,1,0,0),
							array(1,0,0,0,0,0,1,0,0),
							array(1,0,0,0,0,0,1,0,0),
							array(1,0,0,0,0,0,1,0,0),
							array(1,0,0,0,0,0,1,0,0),
							array(1,0,0,0,0,0,1,0,0),
							array(1,0,0,0,0,0,1,0,0),
						),
					),
		'I'	=>		array(
						array(
							array(1,1,1,1,1,1,1,1,1),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(1,1,1,1,1,1,1,1,1),
						),
						array(
							array(0,0,0,1,1,1,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,1,1,1,0,0,0),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,1,1,1,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,1,1,1,0,0,0),
						),
					),
		'J'	=>		array(
						array(
							array(1,1,1,1,1,1,1,1,1),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(1,0,0,0,0,1,0,0,0),
							array(1,0,0,0,0,1,0,0,0),
							array(0,1,0,0,1,0,0,0,0),
							array(0,0,1,1,0,0,0,0,0),
						),
						array(
							array(1,1,1,1,1,1,1,1,1),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(1,0,0,0,0,1,0,0,0),
							array(1,0,0,0,0,1,0,0,0),
							array(1,1,0,0,1,0,0,0,0),
							array(1,0,1,1,0,0,0,0,0),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(1,0,0,0,0,1,0,0,0),
							array(1,0,0,0,0,1,0,0,0),
							array(0,1,0,0,1,0,0,0,0),
							array(0,0,1,1,0,0,0,0,0),
						),
					),
		'K'	=>		array(
						array(    // New 'K', supplied by NeoThermic
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,1,0),
							array(1,0,0,0,0,0,1,0,0),
							array(1,0,0,0,0,1,0,0,0),
							array(1,0,0,0,1,0,0,0,0),
							array(1,0,0,1,0,0,0,0,0),
							array(1,0,1,0,0,0,0,0,0),
							array(1,1,0,0,0,0,0,0,0),
							array(1,0,1,0,0,0,0,0,0),
							array(1,0,0,1,0,0,0,0,0),
							array(1,0,0,0,1,0,0,0,0),
							array(1,0,0,0,0,1,0,0,0),
							array(1,0,0,0,0,0,1,0,0),
							array(1,0,0,0,0,0,0,1,0),
							array(1,0,0,0,0,0,0,0,1),
						),
						array(
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,1,0,0),
							array(0,1,0,0,0,1,0,0,0),
							array(0,1,0,0,1,0,0,0,0),
							array(0,1,0,1,0,0,0,0,0),
							array(0,1,1,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,1,0,0,0,0,0,0),
							array(0,1,0,1,0,0,0,0,0),
							array(0,1,0,0,1,0,0,0,0),
							array(0,1,0,0,0,1,0,0,0),
							array(0,1,0,0,0,0,1,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(1,1,1,0,0,0,1,1,1),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,1,0,0,0),
							array(0,1,0,0,1,0,0,0,0),
							array(0,1,0,1,0,0,0,0,0),
							array(0,1,1,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,1,0,0,0,0,0,0),
							array(0,1,0,1,0,0,0,0,0),
							array(0,1,0,0,1,0,0,0,0),
							array(0,1,0,0,0,1,0,0,0),
							array(0,1,0,0,0,0,1,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
						),
					),
		'L'	=>		array(
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,1,1,1,1,1,1,1,1),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,1),
							array(1,1,1,1,1,1,1,1,1),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,1,0,0,0,0,0,0),
							array(0,0,1,1,1,0,0,0,0),
						),
					),
		'M'	=>		array(
						array(
							array(1,1,0,0,0,0,0,1,1),
							array(1,1,0,0,0,0,0,1,1),
							array(1,0,1,0,0,0,1,0,1),
							array(1,0,1,0,0,0,1,0,1),
							array(1,0,1,0,0,0,1,0,1),
							array(1,0,0,1,0,1,0,0,1),
							array(1,0,0,1,0,1,0,0,1),
							array(1,0,0,1,0,1,0,0,1),
							array(1,0,0,0,1,0,0,0,1),
							array(1,0,0,0,1,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,1,0,0,0,1,1,0),
							array(0,1,1,0,0,0,1,1,0),
							array(0,1,1,0,0,0,1,1,0),
							array(0,1,0,1,0,1,0,1,0),
							array(0,1,0,1,0,1,0,1,0),
							array(0,1,0,1,0,1,0,1,0),
							array(0,1,0,0,1,0,0,1,0),
							array(0,1,0,0,1,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(1,1,1,0,0,0,1,1,1),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,1,1,1,0,1,1,1,0),
							array(1,1,0,1,1,1,0,1,1),
							array(1,0,0,0,1,0,0,0,1),
							array(1,0,0,0,1,0,0,0,1),
							array(1,0,0,0,1,0,0,0,1),
							array(1,0,0,0,1,0,0,0,1),
							array(1,0,0,0,1,0,0,0,1),
							array(1,0,0,0,1,0,0,0,1),
							array(1,0,0,0,1,0,0,0,1),
						),
					),
		'N'	=>		array(
						array(
							array(1,1,0,0,0,0,0,0,1),
							array(1,1,0,0,0,0,0,0,1),
							array(1,0,1,0,0,0,0,0,1),
							array(1,0,1,0,0,0,0,0,1),
							array(1,0,0,1,0,0,0,0,1),
							array(1,0,0,1,0,0,0,0,1),
							array(1,0,0,0,1,0,0,0,1),
							array(1,0,0,0,1,0,0,0,1),
							array(1,0,0,0,1,0,0,0,1),
							array(1,0,0,0,0,1,0,0,1),
							array(1,0,0,0,0,1,0,0,1),
							array(1,0,0,0,0,0,1,0,1),
							array(1,0,0,0,0,0,1,0,1),
							array(1,0,0,0,0,0,0,1,1),
							array(1,0,0,0,0,0,0,1,1),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,1,0,0,0,0,1,0),
							array(0,1,1,0,0,0,0,1,0),
							array(0,1,1,0,0,0,0,1,0),
							array(0,1,0,1,0,0,0,1,0),
							array(0,1,0,1,0,0,0,1,0),
							array(0,1,0,1,0,0,0,1,0),
							array(0,1,0,0,1,0,0,1,0),
							array(0,1,0,0,1,1,0,1,0),
							array(0,1,0,0,0,1,0,1,0),
							array(0,1,0,0,0,1,1,1,0),
							array(0,1,0,0,0,0,1,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(1,1,1,0,0,0,1,1,1),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(1,0,1,1,1,1,0,0,0),
							array(1,1,1,0,0,1,1,0,0),
							array(1,0,0,0,0,0,1,0,0),
							array(1,0,0,0,0,0,1,0,0),
							array(1,0,0,0,0,0,1,0,0),
							array(1,0,0,0,0,0,1,0,0),
							array(1,0,0,0,0,0,1,0,0),
							array(1,0,0,0,0,0,1,0,0),
						),
					),
		'O'	=>		array(
						array(
							array(0,0,1,1,1,1,1,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,1,0),
							array(0,0,1,1,1,1,1,0,0),
						),
						array(
							array(0,0,1,1,1,1,1,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(1,1,0,0,0,0,0,1,1),
							array(1,1,0,0,0,0,0,1,1),
							array(1,1,0,0,0,0,0,1,1),
							array(1,1,0,0,0,0,0,1,1),
							array(1,1,0,0,0,0,0,1,1),
							array(1,1,0,0,0,0,0,1,1),
							array(1,1,0,0,0,0,0,1,1),
							array(1,1,0,0,0,0,0,1,1),
							array(1,1,0,0,0,0,0,1,1),
							array(1,1,0,0,0,0,0,1,1),
							array(1,1,0,0,0,0,0,1,1),
							array(0,1,0,0,0,0,0,1,0),
							array(0,0,1,1,1,1,1,0,0),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,1,1,1,1,1,0,0,0),
							array(1,1,1,0,0,1,1,0,0),
							array(1,0,0,0,0,0,1,0,0),
							array(1,0,0,0,0,0,1,0,0),
							array(1,0,0,0,0,0,1,0,0),
							array(1,0,0,0,0,0,1,0,0),
							array(1,1,0,0,0,1,1,0,0),
							array(0,1,1,1,1,1,0,0,0),
						),
					),
		'P'	=>		array(
						array(
							array(1,1,1,1,1,1,1,0,0),
							array(1,0,0,0,0,0,0,1,0),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,1,0),
							array(1,1,1,1,1,1,1,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
						),
						array(
							array(1,1,1,1,1,1,1,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,1,0),
							array(1,1,1,1,1,1,1,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(1,1,1,0,0,0,0,0,0),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,1,1,0,0,0,0,0),
							array(1,1,0,1,1,0,0,0,0),
							array(1,0,0,0,1,0,0,0,0),
							array(1,0,0,0,1,0,0,0,0),
							array(1,0,0,1,1,0,0,0,0),
							array(1,1,1,1,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
						),
					),
		'Q'	=>		array(
						array(
							array(0,0,1,1,1,1,1,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,1,0,0,1),
							array(1,0,0,0,0,0,1,0,1),
							array(0,1,0,0,0,0,0,1,0),
							array(0,0,1,1,1,1,1,0,1),
						),
						array(
							array(0,0,1,1,1,1,1,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,1,0,0,0,1),
							array(1,1,0,0,1,1,0,1,1),
							array(0,1,1,1,1,1,1,1,0),
							array(0,0,0,0,0,0,1,1,0),
							array(0,0,0,0,0,0,0,1,1),
							array(0,0,0,0,0,0,0,0,1),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,1,1,1,1),
							array(0,0,0,0,1,1,0,0,1),
							array(0,0,0,0,1,0,0,0,1),
							array(0,0,0,0,1,0,0,0,1),
							array(0,0,0,0,1,1,0,1,1),
							array(0,0,0,0,0,1,1,0,1),
							array(0,0,0,0,0,0,0,0,1),
							array(0,0,0,0,0,0,0,0,1),
							array(0,0,0,0,0,0,0,0,1),
							array(0,0,0,0,0,0,0,0,1),
							array(0,0,0,0,0,0,0,0,1),
							array(0,0,0,0,0,0,0,0,1),
						),
					),
		'R'	=>		array(
						array(
							array(1,1,1,1,1,1,1,0,0),
							array(1,0,0,0,0,0,0,1,0),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,1,0),
							array(1,1,1,1,1,1,1,0,0),
							array(1,1,1,0,0,0,0,0,0),
							array(1,0,0,1,0,0,0,0,0),
							array(1,0,0,0,1,0,0,0,0),
							array(1,0,0,0,0,1,0,0,0),
							array(1,0,0,0,0,0,1,0,0),
							array(1,0,0,0,0,0,0,1,0),
							array(1,0,0,0,0,0,0,0,1),
						),
						array(
							array(1,1,1,1,1,1,1,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,1,0),
							array(1,1,1,1,1,1,1,0,0),
							array(0,1,1,0,0,0,0,0,0),
							array(0,1,1,1,0,0,0,0,0),
							array(0,1,0,1,1,0,0,0,0),
							array(0,1,0,0,1,1,0,0,0),
							array(0,1,0,0,0,1,1,0,0),
							array(0,1,0,0,0,0,1,1,0),
							array(1,1,1,0,0,0,1,1,1),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,1,1,1,1,0,0,0,0),
							array(1,1,0,0,1,1,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
						),
					),
		'S'	=>		array(
						array(
							array(0,0,1,1,1,1,1,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,0,1,1,1,1,1,0,0),
							array(0,0,0,0,0,0,0,1,0),
							array(0,0,0,0,0,0,0,0,1),
							array(0,0,0,0,0,0,0,0,1),
							array(0,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,1,0),
							array(0,0,1,1,1,1,1,0,0),
						),
						array(
							array(0,0,1,1,1,1,1,0,1),
							array(0,1,0,0,0,0,0,1,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,0,0),
							array(0,0,1,1,1,1,1,0,0),
							array(0,0,0,0,0,0,0,1,0),
							array(0,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,1,0,0,0,0,0,1,0),
							array(1,0,1,1,1,1,1,0,0),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,1,1,1,1,0,0,0,0),
							array(1,0,0,0,0,1,0,0,0),
							array(1,0,0,0,0,0,0,0,0),
							array(1,1,0,0,0,0,0,0,0),
							array(0,1,1,1,1,0,0,0,0),
							array(0,0,0,0,0,1,0,0,0),
							array(1,0,0,0,1,1,0,0,0),
							array(0,1,1,1,1,0,0,0,0),
						),
					),
		'T'	=>		array(
						array(
							array(1,1,1,1,1,1,1,1,1),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
						),
						array(
							array(1,1,1,1,1,1,1,1,1),
							array(1,0,0,0,1,0,0,0,1),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,1,1,1,0,0,0),
						),
						array(
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,1,1,1,1,1,1,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,1,0,0,0),
							array(0,0,0,0,0,1,1,1,0),
						),
					),
		'U'	=>		array(
						array(
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,1,0),
							array(0,0,1,1,1,1,1,0,0),
						),
						array(
							array(1,0,0,0,0,0,0,0,0),
							array(1,1,1,0,0,0,1,1,1),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,1,0,0,0,1,1,0),
							array(0,0,1,1,1,1,1,0,0),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,1,0,0,0,0,0,1),
							array(0,0,1,0,0,0,0,0,1),
							array(0,0,1,0,0,0,0,0,1),
							array(0,0,1,0,0,0,0,0,1),
							array(0,0,1,0,0,0,0,0,1),
							array(0,0,1,0,0,0,0,1,1),
							array(0,0,1,1,0,0,1,1,1),
							array(0,0,0,1,1,1,1,0,1),
						),
					),
		'V'	=>		array(
						array(
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(1,1,1,0,0,0,1,1,1),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
						),
					),
		'W'	=>		array(
						array(
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,1,0,0,0,1),
							array(1,0,0,0,1,0,0,0,1),
							array(1,0,0,1,0,1,0,0,1),
							array(1,0,0,1,0,1,0,0,1),
							array(1,0,0,1,0,1,0,0,1),
							array(1,0,1,0,0,0,1,0,1),
							array(1,0,1,0,0,0,1,0,1),
							array(1,0,1,0,0,0,1,0,1),
							array(1,1,0,0,0,0,0,1,1),
							array(1,1,0,0,0,0,0,1,1),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(1,1,1,0,0,0,1,1,1),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,1,0,0,1,0),
							array(0,1,0,0,1,0,0,1,0),
							array(0,1,0,1,1,1,0,1,0),
							array(0,1,0,1,0,1,0,1,0),
							array(0,1,1,1,0,1,1,1,0),
							array(0,1,1,0,0,0,1,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,0,0,0,0,0,0,0,0),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,1,0,0,1,0),
							array(0,1,0,0,1,0,0,1,0),
							array(0,1,0,1,1,1,0,1,0),
							array(0,1,0,1,0,1,0,1,0),
							array(0,1,1,1,0,1,1,1,0),
							array(0,1,1,0,0,0,1,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,0,0,0,0,0,0,0,0),
						),
					),
		'X'	=>		array(
						array(
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,1,0,0,0,0,1,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(1,1,1,0,0,0,1,1,1),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,1,0,0,0,0,1,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(1,1,1,0,0,0,1,1,1),
							array(0,0,0,0,0,0,0,0,0),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,1,0,0,0,1,1,0),
							array(0,0,1,1,0,1,1,0,0),
							array(0,0,0,1,1,1,0,0,0),
							array(0,0,0,1,1,1,0,0,0),
							array(0,0,1,1,0,1,1,0,0),
							array(0,1,1,0,0,0,1,1,0),
							array(0,0,0,0,0,0,0,0,0),
						),
					),
		'Y'	=>		array(
						array(
							array(1,0,0,0,0,0,0,0,1),
							array(1,0,0,0,0,0,0,0,1),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(1,1,1,0,0,0,1,1,1),
							array(0,1,0,0,0,0,0,1,0),
							array(0,1,0,0,0,0,0,1,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,1,0,0,0,1,0,0),
							array(0,0,0,1,0,1,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,0,1,0,0,0,0),
							array(0,0,0,1,1,1,0,0,0),
						),
						array(
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,0,0,0,0,0,0),
							array(0,0,0,1,0,0,0,0,1),