mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 b1b1f3ded2
			
		
	
	
		b1b1f3ded2
		
	
	
	
	
		
			
			* defs/gmake.mk (missing/des_tables.c): move the recipe from common.mk. this is less common. * missing/crypt.c (init_des): if des_tables.c is empty, initialize DES tables at runtime. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			1616 lines
		
	
	
	
		
			59 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			1616 lines
		
	
	
	
		
			59 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef HAVE_DES_TABLES
 | |
| 
 | |
| /* Initial key schedule permutation */
 | |
| static const C_block	PC1ROT[64/CHUNKBITS][1<<CHUNKBITS] = {
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  1,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  1,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  1,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  1,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  1,  1,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  1,  1,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0, 16,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0, 16,  0,  0,}},
 | |
| 		{{  0,  0,  1,  0,  0, 16,  0,  0,}},
 | |
| 		{{  0,  0,  1,  0,  0, 16,  0,  0,}},
 | |
| 		{{  0,  0,  0,  1,  0, 16,  0,  0,}},
 | |
| 		{{  0,  0,  0,  1,  0, 16,  0,  0,}},
 | |
| 		{{  0,  0,  1,  1,  0, 16,  0,  0,}},
 | |
| 		{{  0,  0,  1,  1,  0, 16,  0,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,128,  0,  0,  0,}},
 | |
| 		{{  0,  0,  4,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  4,  0,128,  0,  0,  0,}},
 | |
| 		{{  0, 16,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0, 16,  0,  0,128,  0,  0,  0,}},
 | |
| 		{{  0, 16,  4,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0, 16,  4,  0,128,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  8,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  8,128,  0,  0,  0,}},
 | |
| 		{{  0,  0,  4,  8,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  4,  8,128,  0,  0,  0,}},
 | |
| 		{{  0, 16,  0,  8,  0,  0,  0,  0,}},
 | |
| 		{{  0, 16,  0,  8,128,  0,  0,  0,}},
 | |
| 		{{  0, 16,  4,  8,  0,  0,  0,  0,}},
 | |
| 		{{  0, 16,  4,  8,128,  0,  0,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 64,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 64,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  8,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  8,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 64,  8,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 64,  8,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0, 16,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0, 16,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 64, 16,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 64, 16,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0, 24,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0, 24,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 64, 24,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 64, 24,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  2,  0,  0,  0,  0,}},
 | |
| 		{{  0,  1,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  1,  0,  2,  0,  0,  0,  0,}},
 | |
| 		{{  4,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  4,  0,  0,  2,  0,  0,  0,  0,}},
 | |
| 		{{  4,  1,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  4,  1,  0,  2,  0,  0,  0,  0,}},
 | |
| 		{{  0, 32,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0, 32,  0,  2,  0,  0,  0,  0,}},
 | |
| 		{{  0, 33,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0, 33,  0,  2,  0,  0,  0,  0,}},
 | |
| 		{{  4, 32,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  4, 32,  0,  2,  0,  0,  0,  0,}},
 | |
| 		{{  4, 33,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  4, 33,  0,  2,  0,  0,  0,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0, 64,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0, 64,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  4,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  4,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  4, 64,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  4, 64,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  8,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  8,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0, 64,  8,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0, 64,  8,  0,}},
 | |
| 		{{  0,  0,  0,  0,  4,  0,  8,  0,}},
 | |
| 		{{  0,  0,  0,  0,  4,  0,  8,  0,}},
 | |
| 		{{  0,  0,  0,  0,  4, 64,  8,  0,}},
 | |
| 		{{  0,  0,  0,  0,  4, 64,  8,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,128,  0,}},
 | |
| 		{{  0, 64,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0, 64,  0,  0,  0,  0,128,  0,}},
 | |
| 		{{  0,  0,  0, 64,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0, 64,  0,  0,128,  0,}},
 | |
| 		{{  0, 64,  0, 64,  0,  0,  0,  0,}},
 | |
| 		{{  0, 64,  0, 64,  0,  0,128,  0,}},
 | |
| 		{{128,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{128,  0,  0,  0,  0,  0,128,  0,}},
 | |
| 		{{128, 64,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{128, 64,  0,  0,  0,  0,128,  0,}},
 | |
| 		{{128,  0,  0, 64,  0,  0,  0,  0,}},
 | |
| 		{{128,  0,  0, 64,  0,  0,128,  0,}},
 | |
| 		{{128, 64,  0, 64,  0,  0,  0,  0,}},
 | |
| 		{{128, 64,  0, 64,  0,  0,128,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,128,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,128,}},
 | |
| 		{{  0,  0,  0,  0,  0,  8,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  8,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  8,  0,128,}},
 | |
| 		{{  0,  0,  0,  0,  0,  8,  0,128,}},
 | |
| 		{{  0,  0,  0,  0,  0,128,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,128,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,128,  0,128,}},
 | |
| 		{{  0,  0,  0,  0,  0,128,  0,128,}},
 | |
| 		{{  0,  0,  0,  0,  0,136,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,136,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,136,  0,128,}},
 | |
| 		{{  0,  0,  0,  0,  0,136,  0,128,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  8,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0, 32,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0, 32,  8,  0,  0,  0,}},
 | |
| 		{{  0,  0, 16,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0, 16,  0,  8,  0,  0,  0,}},
 | |
| 		{{  0,  0, 16, 32,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0, 16, 32,  8,  0,  0,  0,}},
 | |
| 		{{  0,  0, 32,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0, 32,  0,  8,  0,  0,  0,}},
 | |
| 		{{  0,  0, 32, 32,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0, 32, 32,  8,  0,  0,  0,}},
 | |
| 		{{  0,  0, 48,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0, 48,  0,  8,  0,  0,  0,}},
 | |
| 		{{  0,  0, 48, 32,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0, 48, 32,  8,  0,  0,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 16,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 16,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 16,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 16,  0,}},
 | |
| 		{{  0,  0,  0,  0, 16,  0, 16,  0,}},
 | |
| 		{{  0,  0,  0,  0, 16,  0, 16,  0,}},
 | |
| 		{{  0,  0,  0,  0, 64,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 64,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 80,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 80,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 64,  0, 16,  0,}},
 | |
| 		{{  0,  0,  0,  0, 64,  0, 16,  0,}},
 | |
| 		{{  0,  0,  0,  0, 80,  0, 16,  0,}},
 | |
| 		{{  0,  0,  0,  0, 80,  0, 16,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0, 16,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  8,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  8, 16,  0,  0,  0,  0,}},
 | |
| 		{{ 16,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 16,  0,  0, 16,  0,  0,  0,  0,}},
 | |
| 		{{ 16,  0,  8,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 16,  0,  8, 16,  0,  0,  0,  0,}},
 | |
| 		{{  0,  4,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  4,  0, 16,  0,  0,  0,  0,}},
 | |
| 		{{  0,  4,  8,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  4,  8, 16,  0,  0,  0,  0,}},
 | |
| 		{{ 16,  4,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 16,  4,  0, 16,  0,  0,  0,  0,}},
 | |
| 		{{ 16,  4,  8,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 16,  4,  8, 16,  0,  0,  0,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  4,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  4,  0,  0,}},
 | |
| 		{{  0,  0,  2,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  2,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  2,  0,  0,  4,  0,  0,}},
 | |
| 		{{  0,  0,  2,  0,  0,  4,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  4,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  4,}},
 | |
| 		{{  0,  0,  0,  0,  0,  4,  0,  4,}},
 | |
| 		{{  0,  0,  0,  0,  0,  4,  0,  4,}},
 | |
| 		{{  0,  0,  2,  0,  0,  0,  0,  4,}},
 | |
| 		{{  0,  0,  2,  0,  0,  0,  0,  4,}},
 | |
| 		{{  0,  0,  2,  0,  0,  4,  0,  4,}},
 | |
| 		{{  0,  0,  2,  0,  0,  4,  0,  4,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0, 64,  0,  0,  0,  0,  0,}},
 | |
| 		{{  2,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  2,  0, 64,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,128,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,128, 64,  0,  0,  0,  0,  0,}},
 | |
| 		{{  2,128,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  2,128, 64,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,128,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0, 64,128,  0,  0,  0,  0,}},
 | |
| 		{{  2,  0,  0,128,  0,  0,  0,  0,}},
 | |
| 		{{  2,  0, 64,128,  0,  0,  0,  0,}},
 | |
| 		{{  0,128,  0,128,  0,  0,  0,  0,}},
 | |
| 		{{  0,128, 64,128,  0,  0,  0,  0,}},
 | |
| 		{{  2,128,  0,128,  0,  0,  0,  0,}},
 | |
| 		{{  2,128, 64,128,  0,  0,  0,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0, 64,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0, 64,}},
 | |
| 		{{  0,  0,  0,  0, 32,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 32,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 32,  0,  0, 64,}},
 | |
| 		{{  0,  0,  0,  0, 32,  0,  0, 64,}},
 | |
| 		{{  0,  0,  0,  0,  0, 32,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0, 32,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0, 32,  0, 64,}},
 | |
| 		{{  0,  0,  0,  0,  0, 32,  0, 64,}},
 | |
| 		{{  0,  0,  0,  0, 32, 32,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 32, 32,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 32, 32,  0, 64,}},
 | |
| 		{{  0,  0,  0,  0, 32, 32,  0, 64,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  2,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  8,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  8,  2,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  1,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  1,  2,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  9,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  9,  2,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 64,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 64,  2,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 72,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 72,  2,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 65,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 65,  2,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 73,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 73,  2,  0,  0,  0,  0,  0,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 32,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 32,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0, 32,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0, 32,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 32, 32,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 32, 32,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  4,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  4,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 36,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 36,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  4, 32,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  4, 32,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 36, 32,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 36, 32,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 32,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  4,  0,  0,  0,  0,}},
 | |
| 		{{ 32,  0,  0,  4,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,128,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 32,  0,128,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,128,  4,  0,  0,  0,  0,}},
 | |
| 		{{ 32,  0,128,  4,  0,  0,  0,  0,}},
 | |
| 		{{  0,  8,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 32,  8,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  8,  0,  4,  0,  0,  0,  0,}},
 | |
| 		{{ 32,  8,  0,  4,  0,  0,  0,  0,}},
 | |
| 		{{  0,  8,128,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 32,  8,128,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  8,128,  4,  0,  0,  0,  0,}},
 | |
| 		{{ 32,  8,128,  4,  0,  0,  0,  0,}},
 | |
| 	},
 | |
| };
 | |
| 
 | |
| /* Subsequent key schedule rotation permutations */
 | |
| static const C_block	PC2ROT[2][64/CHUNKBITS][1<<CHUNKBITS] = {
 | |
| 	{
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,128,  0,  0,  0,  0,  0,}},
 | |
| 			{{  8,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  8,  0,128,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0, 64,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,128, 64,  0,  0,  0,  0,}},
 | |
| 			{{  8,  0,  0, 64,  0,  0,  0,  0,}},
 | |
| 			{{  8,  0,128, 64,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  4,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,128,  4,  0,  0,  0,  0,}},
 | |
| 			{{  8,  0,  0,  4,  0,  0,  0,  0,}},
 | |
| 			{{  8,  0,128,  4,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0, 68,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,128, 68,  0,  0,  0,  0,}},
 | |
| 			{{  8,  0,  0, 68,  0,  0,  0,  0,}},
 | |
| 			{{  8,  0,128, 68,  0,  0,  0,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,128,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  4,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,128,  4,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  8,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,136,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  8,  4,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,136,  4,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 32,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,128, 32,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 36,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,128, 36,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  8, 32,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,136, 32,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  8, 36,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,136, 36,  0,  0,  0,  0,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0, 64,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 32,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 32, 64,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,128,  0,  0,  0,  0,}},
 | |
| 			{{  0, 64,  0,128,  0,  0,  0,  0,}},
 | |
| 			{{ 32,  0,  0,128,  0,  0,  0,  0,}},
 | |
| 			{{ 32, 64,  0,128,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0, 16,  0,  0,  0,  0,}},
 | |
| 			{{  0, 64,  0, 16,  0,  0,  0,  0,}},
 | |
| 			{{ 32,  0,  0, 16,  0,  0,  0,  0,}},
 | |
| 			{{ 32, 64,  0, 16,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,144,  0,  0,  0,  0,}},
 | |
| 			{{  0, 64,  0,144,  0,  0,  0,  0,}},
 | |
| 			{{ 32,  0,  0,144,  0,  0,  0,  0,}},
 | |
| 			{{ 32, 64,  0,144,  0,  0,  0,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  4,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{128,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{132,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0, 32,  0,  0,  0,  0,}},
 | |
| 			{{  4,  0,  0, 32,  0,  0,  0,  0,}},
 | |
| 			{{128,  0,  0, 32,  0,  0,  0,  0,}},
 | |
| 			{{132,  0,  0, 32,  0,  0,  0,  0,}},
 | |
| 			{{  1,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  5,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{129,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{133,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  1,  0,  0, 32,  0,  0,  0,  0,}},
 | |
| 			{{  5,  0,  0, 32,  0,  0,  0,  0,}},
 | |
| 			{{129,  0,  0, 32,  0,  0,  0,  0,}},
 | |
| 			{{133,  0,  0, 32,  0,  0,  0,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 64,  0,}},
 | |
| 			{{  0,  0,  0,  0, 32,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0, 32,  0, 64,  0,}},
 | |
| 			{{  0,  1,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  1,  0,  0,  0,  0, 64,  0,}},
 | |
| 			{{  0,  1,  0,  0, 32,  0,  0,  0,}},
 | |
| 			{{  0,  1,  0,  0, 32,  0, 64,  0,}},
 | |
| 			{{  2,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  2,  0,  0,  0,  0,  0, 64,  0,}},
 | |
| 			{{  2,  0,  0,  0, 32,  0,  0,  0,}},
 | |
| 			{{  2,  0,  0,  0, 32,  0, 64,  0,}},
 | |
| 			{{  2,  1,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  2,  1,  0,  0,  0,  0, 64,  0,}},
 | |
| 			{{  2,  1,  0,  0, 32,  0,  0,  0,}},
 | |
| 			{{  2,  1,  0,  0, 32,  0, 64,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 16,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  4,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 16,  4,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  2,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 16,  2,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  6,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 16,  6,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  8,  0,  0,  0,  0,}},
 | |
| 			{{ 16,  0,  0,  8,  0,  0,  0,  0,}},
 | |
| 			{{  0,  4,  0,  8,  0,  0,  0,  0,}},
 | |
| 			{{ 16,  4,  0,  8,  0,  0,  0,  0,}},
 | |
| 			{{  0,  2,  0,  8,  0,  0,  0,  0,}},
 | |
| 			{{ 16,  2,  0,  8,  0,  0,  0,  0,}},
 | |
| 			{{  0,  6,  0,  8,  0,  0,  0,  0,}},
 | |
| 			{{ 16,  6,  0,  8,  0,  0,  0,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  8,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,128,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,128,  8,}},
 | |
| 			{{  0, 16,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0, 16,  0,  0,  0,  0,  0,  8,}},
 | |
| 			{{  0, 16,  0,  0,  0,  0,128,  0,}},
 | |
| 			{{  0, 16,  0,  0,  0,  0,128,  8,}},
 | |
| 			{{  0, 32,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0, 32,  0,  0,  0,  0,  0,  8,}},
 | |
| 			{{  0, 32,  0,  0,  0,  0,128,  0,}},
 | |
| 			{{  0, 32,  0,  0,  0,  0,128,  8,}},
 | |
| 			{{  0, 48,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0, 48,  0,  0,  0,  0,  0,  8,}},
 | |
| 			{{  0, 48,  0,  0,  0,  0,128,  0,}},
 | |
| 			{{  0, 48,  0,  0,  0,  0,128,  8,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 64,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  8,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 72,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 16,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 80,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 24,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 88,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 64,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 64,  0, 64,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 64,  0,  8,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 64,  0, 72,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 64,  0, 16,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 64,  0, 80,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 64,  0, 24,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 64,  0, 88,  0,  0,  0,  0,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  8,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  8,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  8,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  8,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0, 16,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0, 16,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0, 16,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0, 16,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0, 24,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0, 24,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0, 24,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0, 24,  0,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  4,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0, 32,}},
 | |
| 			{{  0,  0,  0,  0,  0,  4,  0, 32,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  4,}},
 | |
| 			{{  0,  0,  0,  0,  0,  4,  0,  4,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0, 36,}},
 | |
| 			{{  0,  0,  0,  0,  0,  4,  0, 36,}},
 | |
| 			{{  0,  0,  0,  2,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  2,  0,  4,  0,  0,}},
 | |
| 			{{  0,  0,  0,  2,  0,  0,  0, 32,}},
 | |
| 			{{  0,  0,  0,  2,  0,  4,  0, 32,}},
 | |
| 			{{  0,  0,  0,  2,  0,  0,  0,  4,}},
 | |
| 			{{  0,  0,  0,  2,  0,  4,  0,  4,}},
 | |
| 			{{  0,  0,  0,  2,  0,  0,  0, 36,}},
 | |
| 			{{  0,  0,  0,  2,  0,  4,  0, 36,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0, 64,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0, 64,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0, 64,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0, 64,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 16,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 16,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 16,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 16,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 16, 64,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 16, 64,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 16, 64,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 16, 64,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0, 16,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  4,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  4, 16,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,128,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,144,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  4,128,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  4,144,}},
 | |
| 			{{  0,  0,  0,  0, 64,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0, 64,  0,  0, 16,}},
 | |
| 			{{  0,  0,  0,  0, 64,  0,  4,  0,}},
 | |
| 			{{  0,  0,  0,  0, 64,  0,  4, 16,}},
 | |
| 			{{  0,  0,  0,  0, 64,  0,  0,128,}},
 | |
| 			{{  0,  0,  0,  0, 64,  0,  0,144,}},
 | |
| 			{{  0,  0,  0,  0, 64,  0,  4,128,}},
 | |
| 			{{  0,  0,  0,  0, 64,  0,  4,144,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  1,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  1,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  1,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  1,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,128,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,128,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,128,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,128,  0,  0,}},
 | |
| 			{{  0,  0,  0,  1,  0,128,  0,  0,}},
 | |
| 			{{  0,  0,  0,  1,  0,128,  0,  0,}},
 | |
| 			{{  0,  0,  0,  1,  0,128,  0,  0,}},
 | |
| 			{{  0,  0,  0,  1,  0,128,  0,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  2,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,128,  0,  0,  0,}},
 | |
| 			{{  0,  0,  2,  0,128,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0, 64,  0,  0,}},
 | |
| 			{{  0,  0,  2,  0,  0, 64,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,128, 64,  0,  0,}},
 | |
| 			{{  0,  0,  2,  0,128, 64,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  8,  0,  0,  0,}},
 | |
| 			{{  0,  0,  2,  0,  8,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,136,  0,  0,  0,}},
 | |
| 			{{  0,  0,  2,  0,136,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  8, 64,  0,  0,}},
 | |
| 			{{  0,  0,  2,  0,  8, 64,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,136, 64,  0,  0,}},
 | |
| 			{{  0,  0,  2,  0,136, 64,  0,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0, 32,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0, 32,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0, 32,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0, 32,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  4,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  4,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  4,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  4,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  4, 32,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  4, 32,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  4, 32,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  4, 32,  0,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  8,  0,}},
 | |
| 			{{  0,  0,  1,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  1,  0,  0,  0,  8,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 32,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 40,  0,}},
 | |
| 			{{  0,  0,  1,  0,  0,  0, 32,  0,}},
 | |
| 			{{  0,  0,  1,  0,  0,  0, 40,  0,}},
 | |
| 			{{  0,  0,  0,  0, 16,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0, 16,  0,  8,  0,}},
 | |
| 			{{  0,  0,  1,  0, 16,  0,  0,  0,}},
 | |
| 			{{  0,  0,  1,  0, 16,  0,  8,  0,}},
 | |
| 			{{  0,  0,  0,  0, 16,  0, 32,  0,}},
 | |
| 			{{  0,  0,  0,  0, 16,  0, 40,  0,}},
 | |
| 			{{  0,  0,  1,  0, 16,  0, 32,  0,}},
 | |
| 			{{  0,  0,  1,  0, 16,  0, 40,  0,}},
 | |
| 		},
 | |
| 	},
 | |
| 	{
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  8,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  4,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0, 12,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 16,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 16,  8,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 16,  4,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 16, 12,  0,  0,  0,  0,}},
 | |
| 			{{  0, 16,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0, 16,  0,  8,  0,  0,  0,  0,}},
 | |
| 			{{  0, 16,  0,  4,  0,  0,  0,  0,}},
 | |
| 			{{  0, 16,  0, 12,  0,  0,  0,  0,}},
 | |
| 			{{  0, 16, 16,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0, 16, 16,  8,  0,  0,  0,  0,}},
 | |
| 			{{  0, 16, 16,  4,  0,  0,  0,  0,}},
 | |
| 			{{  0, 16, 16, 12,  0,  0,  0,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  1,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  1,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  1,  1,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0, 16,  0,  0,  0,  0,}},
 | |
| 			{{  1,  0,  0, 16,  0,  0,  0,  0,}},
 | |
| 			{{  0,  1,  0, 16,  0,  0,  0,  0,}},
 | |
| 			{{  1,  1,  0, 16,  0,  0,  0,  0,}},
 | |
| 			{{  0,  4,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  1,  4,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  5,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  1,  5,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  4,  0, 16,  0,  0,  0,  0,}},
 | |
| 			{{  1,  4,  0, 16,  0,  0,  0,  0,}},
 | |
| 			{{  0,  5,  0, 16,  0,  0,  0,  0,}},
 | |
| 			{{  1,  5,  0, 16,  0,  0,  0,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0, 32,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  4,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  4, 32,  0,  0,  0,  0,}},
 | |
| 			{{ 64,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 64,  0,  0, 32,  0,  0,  0,  0,}},
 | |
| 			{{ 64,  0,  4,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 64,  0,  4, 32,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 64,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 64, 32,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 68,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 68, 32,  0,  0,  0,  0,}},
 | |
| 			{{ 64,  0, 64,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 64,  0, 64, 32,  0,  0,  0,  0,}},
 | |
| 			{{ 64,  0, 68,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 64,  0, 68, 32,  0,  0,  0,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0, 64,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 32,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 32, 64,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  8,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  8, 64,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 40,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0, 40, 64,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,128,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,128, 64,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,160,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,160, 64,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,136,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,136, 64,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,168,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,168, 64,  0,  0,  0,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0, 64,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0, 32,}},
 | |
| 			{{  0,  0,  0,  0,  0, 64,  0, 32,}},
 | |
| 			{{  0, 64,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0, 64,  0,  0,  0, 64,  0,  0,}},
 | |
| 			{{  0, 64,  0,  0,  0,  0,  0, 32,}},
 | |
| 			{{  0, 64,  0,  0,  0, 64,  0, 32,}},
 | |
| 			{{  8,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  8,  0,  0,  0,  0, 64,  0,  0,}},
 | |
| 			{{  8,  0,  0,  0,  0,  0,  0, 32,}},
 | |
| 			{{  8,  0,  0,  0,  0, 64,  0, 32,}},
 | |
| 			{{  8, 64,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  8, 64,  0,  0,  0, 64,  0,  0,}},
 | |
| 			{{  8, 64,  0,  0,  0,  0,  0, 32,}},
 | |
| 			{{  8, 64,  0,  0,  0, 64,  0, 32,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,128,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,128,  0,  0,  0,  0,}},
 | |
| 			{{  0,128,  0,128,  0,  0,  0,  0,}},
 | |
| 			{{ 32,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 32,128,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 32,  0,  0,128,  0,  0,  0,  0,}},
 | |
| 			{{ 32,128,  0,128,  0,  0,  0,  0,}},
 | |
| 			{{  0, 32,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,160,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0, 32,  0,128,  0,  0,  0,  0,}},
 | |
| 			{{  0,160,  0,128,  0,  0,  0,  0,}},
 | |
| 			{{ 32, 32,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 32,160,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 32, 32,  0,128,  0,  0,  0,  0,}},
 | |
| 			{{ 32,160,  0,128,  0,  0,  0,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  4,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  8,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0, 12,  0,  0,  0,}},
 | |
| 			{{  4,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  4,  0,  0,  0,  4,  0,  0,  0,}},
 | |
| 			{{  4,  0,  0,  0,  8,  0,  0,  0,}},
 | |
| 			{{  4,  0,  0,  0, 12,  0,  0,  0,}},
 | |
| 			{{128,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{128,  0,  0,  0,  4,  0,  0,  0,}},
 | |
| 			{{128,  0,  0,  0,  8,  0,  0,  0,}},
 | |
| 			{{128,  0,  0,  0, 12,  0,  0,  0,}},
 | |
| 			{{132,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{132,  0,  0,  0,  4,  0,  0,  0,}},
 | |
| 			{{132,  0,  0,  0,  8,  0,  0,  0,}},
 | |
| 			{{132,  0,  0,  0, 12,  0,  0,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  2,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  2,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  2,  2,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 16,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 16,  2,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 18,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 18,  2,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  8,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0, 10,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  2,  8,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  2, 10,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 16,  8,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 16, 10,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 18,  8,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{ 18, 10,  0,  0,  0,  0,  0,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 16,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 16,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 16,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 16,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0, 16,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0, 16,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0, 16,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0, 16,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 16, 16,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 16, 16,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 16, 16,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 16, 16,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0, 64,}},
 | |
| 			{{  0,  0,  1,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  1,  0,  0,  0,  0, 64,}},
 | |
| 			{{  0,  0,  0,  0,  0, 32,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0, 32,  0, 64,}},
 | |
| 			{{  0,  0,  1,  0,  0, 32,  0,  0,}},
 | |
| 			{{  0,  0,  1,  0,  0, 32,  0, 64,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,128,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,128, 64,}},
 | |
| 			{{  0,  0,  1,  0,  0,  0,128,  0,}},
 | |
| 			{{  0,  0,  1,  0,  0,  0,128, 64,}},
 | |
| 			{{  0,  0,  0,  0,  0, 32,128,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0, 32,128, 64,}},
 | |
| 			{{  0,  0,  1,  0,  0, 32,128,  0,}},
 | |
| 			{{  0,  0,  1,  0,  0, 32,128, 64,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 32,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 32,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 32,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 32,  0,}},
 | |
| 			{{  0,  0,  2,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  2,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  2,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  2,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  2,  0,  0,  0, 32,  0,}},
 | |
| 			{{  0,  0,  2,  0,  0,  0, 32,  0,}},
 | |
| 			{{  0,  0,  2,  0,  0,  0, 32,  0,}},
 | |
| 			{{  0,  0,  2,  0,  0,  0, 32,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  8,  0,}},
 | |
| 			{{  0,  0,  0,  1,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  1,  0,  0,  8,  0,}},
 | |
| 			{{  0,  0,  0,  0, 16,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0, 16,  0,  8,  0,}},
 | |
| 			{{  0,  0,  0,  1, 16,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  1, 16,  0,  8,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  4,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  8,  4,}},
 | |
| 			{{  0,  0,  0,  1,  0,  0,  0,  4,}},
 | |
| 			{{  0,  0,  0,  1,  0,  0,  8,  4,}},
 | |
| 			{{  0,  0,  0,  0, 16,  0,  0,  4,}},
 | |
| 			{{  0,  0,  0,  0, 16,  0,  8,  4,}},
 | |
| 			{{  0,  0,  0,  1, 16,  0,  0,  4,}},
 | |
| 			{{  0,  0,  0,  1, 16,  0,  8,  4,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  8,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  8,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  8,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  8,}},
 | |
| 			{{  0,  0,  0,  0, 64,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0, 64,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0, 64,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0, 64,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0, 64,  0,  0,  8,}},
 | |
| 			{{  0,  0,  0,  0, 64,  0,  0,  8,}},
 | |
| 			{{  0,  0,  0,  0, 64,  0,  0,  8,}},
 | |
| 			{{  0,  0,  0,  0, 64,  0,  0,  8,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0, 32,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  2,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  2, 32,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,128,}},
 | |
| 			{{  0,  0,  0,  0, 32,  0,  0,128,}},
 | |
| 			{{  0,  0,  0,  2,  0,  0,  0,128,}},
 | |
| 			{{  0,  0,  0,  2, 32,  0,  0,128,}},
 | |
| 			{{  0,  0,  0,  0,  0, 16,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0, 32, 16,  0,  0,}},
 | |
| 			{{  0,  0,  0,  2,  0, 16,  0,  0,}},
 | |
| 			{{  0,  0,  0,  2, 32, 16,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0, 16,  0,128,}},
 | |
| 			{{  0,  0,  0,  0, 32, 16,  0,128,}},
 | |
| 			{{  0,  0,  0,  2,  0, 16,  0,128,}},
 | |
| 			{{  0,  0,  0,  2, 32, 16,  0,128,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  4,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  4,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  4,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0,  4,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  8,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  8,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  8,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  8,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  8,  4,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  8,  4,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  8,  4,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  8,  4,  0,}},
 | |
| 		},
 | |
| 		{
 | |
| 			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,128,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  0, 64,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,128, 64,  0,}},
 | |
| 			{{  0,  0,  0,  0,128,  0,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,128,128,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,128,  0, 64,  0,}},
 | |
| 			{{  0,  0,  0,  0,128,128, 64,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  4,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,132,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,  4, 64,  0,}},
 | |
| 			{{  0,  0,  0,  0,  0,132, 64,  0,}},
 | |
| 			{{  0,  0,  0,  0,128,  4,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,128,132,  0,  0,}},
 | |
| 			{{  0,  0,  0,  0,128,  4, 64,  0,}},
 | |
| 			{{  0,  0,  0,  0,128,132, 64,  0,}},
 | |
| 		},
 | |
| 	},
 | |
| };
 | |
| 
 | |
| /* Initial permutation/expansion table */
 | |
| static const C_block	IE3264[32/CHUNKBITS][1<<CHUNKBITS] = {
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 64,  4,}},
 | |
| 		{{  4,  0,  0,  0,  0,  0,  0, 64,}},
 | |
| 		{{  4,  0,  0,  0,  0,  0, 64, 68,}},
 | |
| 		{{  0,  0,  0,  0, 64,  4,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 64,  4, 64,  4,}},
 | |
| 		{{  4,  0,  0,  0, 64,  4,  0, 64,}},
 | |
| 		{{  4,  0,  0,  0, 64,  4, 64, 68,}},
 | |
| 		{{  0,  0,  0,  0,  0, 64,  4,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0, 64, 68,  4,}},
 | |
| 		{{  4,  0,  0,  0,  0, 64,  4, 64,}},
 | |
| 		{{  4,  0,  0,  0,  0, 64, 68, 68,}},
 | |
| 		{{  0,  0,  0,  0, 64, 68,  4,  0,}},
 | |
| 		{{  0,  0,  0,  0, 64, 68, 68,  4,}},
 | |
| 		{{  4,  0,  0,  0, 64, 68,  4, 64,}},
 | |
| 		{{  4,  0,  0,  0, 64, 68, 68, 68,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0, 64,  4,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0, 64,  4,  0,  0,  0,}},
 | |
| 		{{  0,  0, 64, 68,  4,  0,  0,  0,}},
 | |
| 		{{ 64,  4,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 64,  4, 64,  4,  0,  0,  0,  0,}},
 | |
| 		{{ 64,  4,  0, 64,  4,  0,  0,  0,}},
 | |
| 		{{ 64,  4, 64, 68,  4,  0,  0,  0,}},
 | |
| 		{{  0, 64,  4,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0, 64, 68,  4,  0,  0,  0,  0,}},
 | |
| 		{{  0, 64,  4, 64,  4,  0,  0,  0,}},
 | |
| 		{{  0, 64, 68, 68,  4,  0,  0,  0,}},
 | |
| 		{{ 64, 68,  4,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 64, 68, 68,  4,  0,  0,  0,  0,}},
 | |
| 		{{ 64, 68,  4, 64,  4,  0,  0,  0,}},
 | |
| 		{{ 64, 68, 68, 68,  4,  0,  0,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 32,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0, 32,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 32, 32,}},
 | |
| 		{{  0,  0,  0,  0, 32,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 32,  0, 32,  0,}},
 | |
| 		{{  0,  0,  0,  0, 32,  0,  0, 32,}},
 | |
| 		{{  0,  0,  0,  0, 32,  0, 32, 32,}},
 | |
| 		{{  0,  0,  0,  0,  0, 32,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0, 32, 32,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0, 32,  0, 32,}},
 | |
| 		{{  0,  0,  0,  0,  0, 32, 32, 32,}},
 | |
| 		{{  0,  0,  0,  0, 32, 32,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 32, 32, 32,  0,}},
 | |
| 		{{  0,  0,  0,  0, 32, 32,  0, 32,}},
 | |
| 		{{  0,  0,  0,  0, 32, 32, 32, 32,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0, 32,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0, 32,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0, 32, 32,  0,  0,  0,  0,}},
 | |
| 		{{ 32,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 32,  0, 32,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 32,  0,  0, 32,  0,  0,  0,  0,}},
 | |
| 		{{ 32,  0, 32, 32,  0,  0,  0,  0,}},
 | |
| 		{{  0, 32,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0, 32, 32,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0, 32,  0, 32,  0,  0,  0,  0,}},
 | |
| 		{{  0, 32, 32, 32,  0,  0,  0,  0,}},
 | |
| 		{{ 32, 32,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 32, 32, 32,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 32, 32,  0, 32,  0,  0,  0,  0,}},
 | |
| 		{{ 32, 32, 32, 32,  0,  0,  0,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 16,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0, 16,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 16, 16,}},
 | |
| 		{{  0,  0,  0,  0, 16,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 16,  0, 16,  0,}},
 | |
| 		{{  0,  0,  0,  0, 16,  0,  0, 16,}},
 | |
| 		{{  0,  0,  0,  0, 16,  0, 16, 16,}},
 | |
| 		{{  0,  0,  0,  0,  0, 16,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0, 16, 16,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0, 16,  0, 16,}},
 | |
| 		{{  0,  0,  0,  0,  0, 16, 16, 16,}},
 | |
| 		{{  0,  0,  0,  0, 16, 16,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 16, 16, 16,  0,}},
 | |
| 		{{  0,  0,  0,  0, 16, 16,  0, 16,}},
 | |
| 		{{  0,  0,  0,  0, 16, 16, 16, 16,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0, 16,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0, 16,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0, 16, 16,  0,  0,  0,  0,}},
 | |
| 		{{ 16,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 16,  0, 16,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 16,  0,  0, 16,  0,  0,  0,  0,}},
 | |
| 		{{ 16,  0, 16, 16,  0,  0,  0,  0,}},
 | |
| 		{{  0, 16,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0, 16, 16,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0, 16,  0, 16,  0,  0,  0,  0,}},
 | |
| 		{{  0, 16, 16, 16,  0,  0,  0,  0,}},
 | |
| 		{{ 16, 16,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 16, 16, 16,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 16, 16,  0, 16,  0,  0,  0,  0,}},
 | |
| 		{{ 16, 16, 16, 16,  0,  0,  0,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,128,  8,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,128,  8,}},
 | |
| 		{{  0,  0,  0,  0,  0,128,136,  8,}},
 | |
| 		{{  0,  0,  0,128,  8,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,128,  8,128,  8,  0,}},
 | |
| 		{{  0,  0,  0,128,  8,  0,128,  8,}},
 | |
| 		{{  0,  0,  0,128,  8,128,136,  8,}},
 | |
| 		{{  0,  0,  0,  0,128,  8,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,128,136,  8,  0,}},
 | |
| 		{{  0,  0,  0,  0,128,  8,128,  8,}},
 | |
| 		{{  0,  0,  0,  0,128,136,136,  8,}},
 | |
| 		{{  0,  0,  0,128,136,  8,  0,  0,}},
 | |
| 		{{  0,  0,  0,128,136,136,  8,  0,}},
 | |
| 		{{  0,  0,  0,128,136,  8,128,  8,}},
 | |
| 		{{  0,  0,  0,128,136,136,136,  8,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,128,  8,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,128,  8,  0,  0,  0,  0,}},
 | |
| 		{{  0,128,136,  8,  0,  0,  0,  0,}},
 | |
| 		{{  8,  0,  0,  0,  0,  0,  0,128,}},
 | |
| 		{{  8,128,  8,  0,  0,  0,  0,128,}},
 | |
| 		{{  8,  0,128,  8,  0,  0,  0,128,}},
 | |
| 		{{  8,128,136,  8,  0,  0,  0,128,}},
 | |
| 		{{128,  8,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{128,136,  8,  0,  0,  0,  0,  0,}},
 | |
| 		{{128,  8,128,  8,  0,  0,  0,  0,}},
 | |
| 		{{128,136,136,  8,  0,  0,  0,  0,}},
 | |
| 		{{136,  8,  0,  0,  0,  0,  0,128,}},
 | |
| 		{{136,136,  8,  0,  0,  0,  0,128,}},
 | |
| 		{{136,  8,128,  8,  0,  0,  0,128,}},
 | |
| 		{{136,136,136,  8,  0,  0,  0,128,}},
 | |
| 	},
 | |
| };
 | |
| 
 | |
| /* Table that combines the S, P, and E operations.  */
 | |
| static const unsigned long SPE[2][8][64] = {
 | |
| 	{
 | |
| 		{
 | |
| 			0x80088000,0x80000000,         0,0x80088000,
 | |
| 			         0,0x80088000,0x80000000,         0,
 | |
| 			0x80088000,0x80088000,0x80000000,   0x88000,
 | |
| 			   0x88000,         0,         0,0x80000000,
 | |
| 			0x80000000,         0,   0x88000,0x80088000,
 | |
| 			0x80088000,0x80000000,   0x88000,   0x88000,
 | |
| 			         0,   0x88000,0x80088000,0x80000000,
 | |
| 			   0x88000,   0x88000,0x80000000,         0,
 | |
| 			         0,0x80088000,   0x88000,0x80000000,
 | |
| 			0x80088000,0x80000000,   0x88000,   0x88000,
 | |
| 			0x80000000,   0x88000,0x80088000,         0,
 | |
| 			0x80088000,         0,         0,0x80000000,
 | |
| 			0x80088000,0x80088000,0x80000000,   0x88000,
 | |
| 			         0,   0x88000,0x80000000,         0,
 | |
| 			0x80000000,         0,   0x88000,0x80088000,
 | |
| 			         0,0x80000000,   0x88000,0x80088000,
 | |
| 		},
 | |
| 		{
 | |
| 			 0x8800010,         0, 0x8800000,         0,
 | |
| 			      0x10, 0x8800010, 0x8800000, 0x8800000,
 | |
| 			 0x8800000,      0x10,      0x10, 0x8800000,
 | |
| 			      0x10, 0x8800000,         0,      0x10,
 | |
| 			         0, 0x8800010,      0x10, 0x8800000,
 | |
| 			 0x8800010,         0,         0,      0x10,
 | |
| 			 0x8800010, 0x8800010, 0x8800000,      0x10,
 | |
| 			         0,         0, 0x8800010, 0x8800010,
 | |
| 			      0x10, 0x8800000, 0x8800000, 0x8800010,
 | |
| 			 0x8800010,      0x10,      0x10,         0,
 | |
| 			         0, 0x8800010,         0,      0x10,
 | |
| 			 0x8800000,         0, 0x8800010, 0x8800010,
 | |
| 			 0x8800000, 0x8800000,         0,      0x10,
 | |
| 			      0x10, 0x8800010, 0x8800000,         0,
 | |
| 			      0x10,         0, 0x8800010, 0x8800000,
 | |
| 			 0x8800010,      0x10,         0, 0x8800000,
 | |
| 		},
 | |
| 		{
 | |
| 			         0,0x40001000,    0x1000,    0x1000,
 | |
| 			0x40000000,         0,    0x1000,0x40001000,
 | |
| 			    0x1000,0x40000000,0x40000000,         0,
 | |
| 			0x40001000,    0x1000,         0,0x40000000,
 | |
| 			         0,0x40000000,0x40001000,    0x1000,
 | |
| 			    0x1000,0x40001000,0x40000000,         0,
 | |
| 			0x40000000,    0x1000,0x40001000,0x40000000,
 | |
| 			0x40001000,         0,         0,0x40001000,
 | |
| 			0x40001000,    0x1000,         0,0x40000000,
 | |
| 			    0x1000,0x40000000,0x40000000,    0x1000,
 | |
| 			         0,0x40001000,0x40001000,0x40000000,
 | |
| 			0x40000000,         0,0x40001000,         0,
 | |
| 			0x40001000,         0,         0,0x40001000,
 | |
| 			0x40000000,    0x1000,    0x1000,0x40001000,
 | |
| 			    0x1000,         0,0x40000000,    0x1000,
 | |
| 			         0,0x40001000,    0x1000,0x40000000,
 | |
| 		},
 | |
| 		{
 | |
| 			  0x100008,  0x100000,       0x8,  0x100008,
 | |
| 			         0,         0,  0x100008,       0x8,
 | |
| 			  0x100000,       0x8,         0,  0x100008,
 | |
| 			       0x8,  0x100008,         0,         0,
 | |
| 			       0x8,  0x100000,  0x100000,       0x8,
 | |
| 			  0x100000,  0x100008,         0,  0x100000,
 | |
| 			  0x100008,         0,       0x8,  0x100000,
 | |
| 			  0x100000,       0x8,  0x100008,         0,
 | |
| 			       0x8,  0x100008,         0,       0x8,
 | |
| 			  0x100000,  0x100000,       0x8,         0,
 | |
| 			  0x100008,         0,  0x100000,       0x8,
 | |
| 			         0,       0x8,  0x100000,  0x100000,
 | |
| 			         0,  0x100008,  0x100008,         0,
 | |
| 			  0x100008,       0x8,  0x100000,  0x100008,
 | |
| 			       0x8,  0x100000,         0,  0x100008,
 | |
| 			  0x100008,         0,       0x8,  0x100000,
 | |
| 		},
 | |
| 		{
 | |
| 			         0,0x10000000,   0x44000,0x10044020,
 | |
| 			0x10000020,   0x44000,0x10044020,0x10000000,
 | |
| 			0x10000000,      0x20,      0x20,0x10044000,
 | |
| 			   0x44020,0x10000020,0x10044000,         0,
 | |
| 			0x10044000,         0,0x10000020,   0x44020,
 | |
| 			   0x44000,0x10044020,         0,      0x20,
 | |
| 			      0x20,   0x44020,0x10044020,0x10000020,
 | |
| 			0x10000000,   0x44000,   0x44020,0x10044000,
 | |
| 			0x10044000,   0x44020,0x10000020,0x10000000,
 | |
| 			0x10000000,      0x20,      0x20,   0x44000,
 | |
| 			         0,0x10044000,0x10044020,         0,
 | |
| 			0x10044020,         0,   0x44000,0x10000020,
 | |
| 			   0x44020,   0x44000,         0,0x10044020,
 | |
| 			0x10000020,0x10044000,   0x44020,0x10000000,
 | |
| 			0x10044000,0x10000020,   0x44000,   0x44020,
 | |
| 			      0x20,0x10044020,0x10000000,      0x20,
 | |
| 		},
 | |
| 		{
 | |
| 			     0x440,     0x440,         0,  0x200000,
 | |
| 			     0x440,  0x200000,  0x200440,         0,
 | |
| 			  0x200440,  0x200440,  0x200000,         0,
 | |
| 			  0x200000,     0x440,         0,  0x200440,
 | |
| 			         0,  0x200440,     0x440,         0,
 | |
| 			  0x200000,     0x440,  0x200000,     0x440,
 | |
| 			  0x200440,         0,         0,  0x200440,
 | |
| 			     0x440,  0x200000,  0x200440,  0x200000,
 | |
| 			  0x200440,         0,  0x200000,  0x200440,
 | |
| 			  0x200000,     0x440,         0,  0x200000,
 | |
| 			         0,  0x200000,     0x440,         0,
 | |
| 			     0x440,  0x200440,  0x200000,     0x440,
 | |
| 			  0x200440,  0x200000,         0,  0x200440,
 | |
| 			     0x440,         0,  0x200440,         0,
 | |
| 			  0x200000,     0x440,  0x200440,  0x200000,
 | |
| 			         0,  0x200440,     0x440,     0x440,
 | |
| 		},
 | |
| 		{
 | |
| 			 0x4400000,    0x2000,    0x2000,       0x4,
 | |
| 			 0x4402004, 0x4400004, 0x4402000,         0,
 | |
| 			         0,    0x2004,    0x2004, 0x4400000,
 | |
| 			       0x4, 0x4402000, 0x4400000,    0x2004,
 | |
| 			    0x2004, 0x4400000, 0x4400004, 0x4402004,
 | |
| 			         0,    0x2000,       0x4, 0x4402000,
 | |
| 			 0x4400004, 0x4402004, 0x4402000,       0x4,
 | |
| 			 0x4402004, 0x4400004,    0x2000,         0,
 | |
| 			 0x4402004, 0x4400000, 0x4400004,    0x2004,
 | |
| 			 0x4400000,    0x2000,         0, 0x4400004,
 | |
| 			    0x2004, 0x4402004, 0x4402000,         0,
 | |
| 			    0x2000,       0x4,       0x4,    0x2000,
 | |
| 			         0,    0x2004,    0x2000, 0x4402000,
 | |
| 			    0x2004, 0x4400000, 0x4402004,         0,
 | |
| 			 0x4402000,       0x4, 0x4400004, 0x4402004,
 | |
| 			       0x4, 0x4402000, 0x4400000, 0x4400004,
 | |
| 		},
 | |
| 		{
 | |
| 			     0x880,0x20000000,0x20000880,         0,
 | |
| 			0x20000000,     0x880,         0,0x20000880,
 | |
| 			     0x880,         0,0x20000000,0x20000880,
 | |
| 			0x20000880,0x20000880,     0x880,         0,
 | |
| 			0x20000000,0x20000880,     0x880,0x20000000,
 | |
| 			0x20000880,     0x880,         0,0x20000000,
 | |
| 			         0,         0,0x20000880,     0x880,
 | |
| 			         0,0x20000000,0x20000000,     0x880,
 | |
| 			         0,0x20000000,     0x880,0x20000880,
 | |
| 			0x20000880,         0,         0,0x20000000,
 | |
| 			     0x880,0x20000880,0x20000000,     0x880,
 | |
| 			0x20000000,     0x880,     0x880,0x20000000,
 | |
| 			0x20000880,         0,         0,     0x880,
 | |
| 			0x20000000,0x20000880,0x20000880,         0,
 | |
| 			     0x880,0x20000000,0x20000880,         0,
 | |
| 			         0,     0x880,0x20000000,0x20000880,
 | |
| 		},
 | |
| 	},
 | |
| 	{
 | |
| 		{
 | |
| 			    0x2008,       0x8,0x20002000,0x20002008,
 | |
| 			    0x2000,0x20000008,0x20000008,0x20002000,
 | |
| 			0x20000008,    0x2008,    0x2008,0x20000000,
 | |
| 			0x20002000,    0x2000,         0,0x20000008,
 | |
| 			       0x8,0x20000000,    0x2000,       0x8,
 | |
| 			0x20002008,    0x2008,0x20000000,    0x2000,
 | |
| 			0x20000000,         0,       0x8,0x20002008,
 | |
| 			         0,0x20002000,0x20002008,         0,
 | |
| 			         0,0x20002008,    0x2000,0x20000008,
 | |
| 			    0x2008,       0x8,0x20000000,    0x2000,
 | |
| 			0x20002008,         0,       0x8,0x20002000,
 | |
| 			0x20000008,0x20000000,0x20002000,    0x2008,
 | |
| 			0x20002008,       0x8,    0x2008,0x20002000,
 | |
| 			    0x2000,0x20000000,0x20000008,         0,
 | |
| 			       0x8,    0x2000,0x20002000,    0x2008,
 | |
| 			0x20000000,0x20002008,         0,0x20000008,
 | |
| 		},
 | |
| 		{
 | |
| 			 0x4400010,         0,      0x10, 0x4400010,
 | |
| 			 0x4400000,         0, 0x4400000,      0x10,
 | |
| 			         0, 0x4400010,         0, 0x4400000,
 | |
| 			      0x10, 0x4400010, 0x4400010,         0,
 | |
| 			      0x10, 0x4400000, 0x4400010,         0,
 | |
| 			      0x10, 0x4400000,         0,      0x10,
 | |
| 			 0x4400000,      0x10, 0x4400010, 0x4400000,
 | |
| 			 0x4400000,      0x10,         0, 0x4400010,
 | |
| 			      0x10, 0x4400010, 0x4400000,      0x10,
 | |
| 			 0x4400010,      0x10, 0x4400000,         0,
 | |
| 			 0x4400000,         0,      0x10, 0x4400010,
 | |
| 			         0, 0x4400000,      0x10, 0x4400000,
 | |
| 			 0x4400010,         0,         0, 0x4400000,
 | |
| 			         0, 0x4400010,      0x10, 0x4400010,
 | |
| 			 0x4400010,      0x10,         0, 0x4400000,
 | |
| 			 0x4400000,         0, 0x4400010,      0x10,
 | |
| 		},
 | |
| 		{
 | |
| 			0x10044000,   0x44004,         0,0x10044000,
 | |
| 			0x10000004,   0x44000,0x10044000,       0x4,
 | |
| 			   0x44000,       0x4,   0x44004,0x10000000,
 | |
| 			0x10044004,0x10000000,0x10000000,0x10044004,
 | |
| 			         0,0x10000004,   0x44004,         0,
 | |
| 			0x10000000,0x10044004,       0x4,0x10044000,
 | |
| 			0x10044004,   0x44000,0x10000004,   0x44004,
 | |
| 			       0x4,         0,   0x44000,0x10000004,
 | |
| 			   0x44004,         0,0x10000000,       0x4,
 | |
| 			0x10000000,0x10000004,   0x44004,0x10044000,
 | |
| 			         0,   0x44004,       0x4,0x10044004,
 | |
| 			0x10000004,   0x44000,0x10044004,0x10000000,
 | |
| 			0x10000004,0x10044000,   0x44000,0x10044004,
 | |
| 			       0x4,   0x44000,0x10044000,       0x4,
 | |
| 			   0x44000,         0,0x10044004,0x10000000,
 | |
| 			0x10044000,0x10000004,         0,   0x44004,
 | |
| 		},
 | |
| 		{
 | |
| 			0x80000440,  0x100000,0x80000000,0x80100440,
 | |
| 			         0,  0x100440,0x80100000,0x80000440,
 | |
| 			  0x100440,0x80100000,  0x100000,0x80000000,
 | |
| 			0x80100000,0x80000440,     0x440,  0x100000,
 | |
| 			0x80100440,     0x440,         0,0x80000000,
 | |
| 			     0x440,0x80100000,  0x100440,         0,
 | |
| 			0x80000000,         0,0x80000440,  0x100440,
 | |
| 			  0x100000,0x80100440,0x80100440,     0x440,
 | |
| 			0x80100440,0x80000000,     0x440,0x80100000,
 | |
| 			     0x440,  0x100000,0x80000000,  0x100440,
 | |
| 			0x80100000,         0,         0,0x80000440,
 | |
| 			         0,0x80100440,  0x100440,         0,
 | |
| 			  0x100000,0x80100440,0x80000440,     0x440,
 | |
| 			0x80100440,0x80000000,  0x100000,0x80000440,
 | |
| 			0x80000440,     0x440,  0x100440,0x80100000,
 | |
| 			0x80000000,  0x100000,0x80100000,  0x100440,
 | |
| 		},
 | |
| 		{
 | |
| 			   0x88000,         0,         0,   0x88000,
 | |
| 			   0x88000,   0x88000,         0,   0x88000,
 | |
| 			         0,         0,   0x88000,         0,
 | |
| 			   0x88000,   0x88000,   0x88000,         0,
 | |
| 			         0,   0x88000,         0,         0,
 | |
| 			   0x88000,         0,         0,   0x88000,
 | |
| 			         0,   0x88000,   0x88000,         0,
 | |
| 			   0x88000,         0,         0,   0x88000,
 | |
| 			   0x88000,   0x88000,         0,   0x88000,
 | |
| 			         0,         0,   0x88000,   0x88000,
 | |
| 			   0x88000,         0,   0x88000,         0,
 | |
| 			         0,   0x88000,         0,         0,
 | |
| 			   0x88000,         0,         0,   0x88000,
 | |
| 			   0x88000,   0x88000,         0,         0,
 | |
| 			         0,   0x88000,   0x88000,         0,
 | |
| 			         0,         0,   0x88000,   0x88000,
 | |
| 		},
 | |
| 		{
 | |
| 			 0x8800000,      0x20,         0, 0x8800020,
 | |
| 			      0x20,         0, 0x8800000,      0x20,
 | |
| 			         0, 0x8800020,      0x20, 0x8800000,
 | |
| 			 0x8800000, 0x8800000, 0x8800020,      0x20,
 | |
| 			      0x20, 0x8800000, 0x8800020,         0,
 | |
| 			         0,         0, 0x8800020, 0x8800020,
 | |
| 			 0x8800020, 0x8800020, 0x8800000,         0,
 | |
| 			         0,      0x20,      0x20, 0x8800000,
 | |
| 			         0, 0x8800000, 0x8800000,      0x20,
 | |
| 			 0x8800020,      0x20,         0, 0x8800000,
 | |
| 			 0x8800000,         0, 0x8800020,      0x20,
 | |
| 			      0x20, 0x8800020,      0x20,         0,
 | |
| 			 0x8800020,      0x20,      0x20, 0x8800000,
 | |
| 			 0x8800000, 0x8800020,      0x20,         0,
 | |
| 			         0, 0x8800000, 0x8800000, 0x8800020,
 | |
| 			 0x8800020,         0,         0, 0x8800020,
 | |
| 		},
 | |
| 		{
 | |
| 			         0,         0,    0x1000,0x40001000,
 | |
| 			0x40001000,0x40000000,         0,         0,
 | |
| 			    0x1000,0x40001000,0x40000000,    0x1000,
 | |
| 			0x40000000,    0x1000,    0x1000,0x40000000,
 | |
| 			0x40001000,         0,0x40000000,0x40001000,
 | |
| 			         0,    0x1000,0x40001000,         0,
 | |
| 			0x40001000,0x40000000,    0x1000,0x40000000,
 | |
| 			0x40000000,0x40001000,         0,    0x1000,
 | |
| 			0x40000000,    0x1000,0x40001000,0x40000000,
 | |
| 			         0,         0,    0x1000,0x40001000,
 | |
| 			0x40001000,0x40000000,         0,         0,
 | |
| 			         0,0x40001000,0x40000000,    0x1000,
 | |
| 			         0,0x40001000,    0x1000,         0,
 | |
| 			0x40000000,         0,0x40001000,    0x1000,
 | |
| 			    0x1000,0x40000000,0x40000000,0x40001000,
 | |
| 			0x40001000,    0x1000,    0x1000,0x40000000,
 | |
| 		},
 | |
| 		{
 | |
| 			  0x200880,  0x200880,         0,         0,
 | |
| 			  0x200000,     0x880,  0x200880,  0x200880,
 | |
| 			         0,  0x200000,     0x880,         0,
 | |
| 			     0x880,  0x200000,  0x200000,  0x200880,
 | |
| 			         0,     0x880,     0x880,  0x200000,
 | |
| 			  0x200880,  0x200000,         0,     0x880,
 | |
| 			  0x200000,     0x880,  0x200000,  0x200880,
 | |
| 			     0x880,         0,  0x200880,         0,
 | |
| 			     0x880,         0,  0x200000,  0x200880,
 | |
| 			         0,  0x200000,         0,     0x880,
 | |
| 			  0x200880,  0x200000,  0x200000,     0x880,
 | |
| 			  0x200880,         0,     0x880,  0x200000,
 | |
| 			  0x200880,     0x880,  0x200880,  0x200000,
 | |
| 			     0x880,         0,  0x200000,  0x200880,
 | |
| 			         0,  0x200880,     0x880,         0,
 | |
| 			  0x200000,  0x200880,         0,     0x880,
 | |
| 		},
 | |
| 	},
 | |
| };
 | |
| 
 | |
| /* compressed/interleaved => final permutation table */
 | |
| static const C_block CF6464[64/CHUNKBITS][1<<CHUNKBITS] = {
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0, 64,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 64,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 64, 64,}},
 | |
| 		{{  0,  0,  0,  0,  0, 64,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0, 64,  0, 64,}},
 | |
| 		{{  0,  0,  0,  0,  0, 64, 64,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0, 64, 64, 64,}},
 | |
| 		{{  0,  0,  0,  0, 64,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 64,  0,  0, 64,}},
 | |
| 		{{  0,  0,  0,  0, 64,  0, 64,  0,}},
 | |
| 		{{  0,  0,  0,  0, 64,  0, 64, 64,}},
 | |
| 		{{  0,  0,  0,  0, 64, 64,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 64, 64,  0, 64,}},
 | |
| 		{{  0,  0,  0,  0, 64, 64, 64,  0,}},
 | |
| 		{{  0,  0,  0,  0, 64, 64, 64, 64,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  4,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  4,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  4,  4,}},
 | |
| 		{{  0,  0,  0,  0,  0,  4,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  4,  0,  4,}},
 | |
| 		{{  0,  0,  0,  0,  0,  4,  4,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  4,  4,  4,}},
 | |
| 		{{  0,  0,  0,  0,  4,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  4,  0,  0,  4,}},
 | |
| 		{{  0,  0,  0,  0,  4,  0,  4,  0,}},
 | |
| 		{{  0,  0,  0,  0,  4,  0,  4,  4,}},
 | |
| 		{{  0,  0,  0,  0,  4,  4,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  4,  4,  0,  4,}},
 | |
| 		{{  0,  0,  0,  0,  4,  4,  4,  0,}},
 | |
| 		{{  0,  0,  0,  0,  4,  4,  4,  4,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0, 64,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0, 64,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0, 64, 64,  0,  0,  0,  0,}},
 | |
| 		{{  0, 64,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0, 64,  0, 64,  0,  0,  0,  0,}},
 | |
| 		{{  0, 64, 64,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0, 64, 64, 64,  0,  0,  0,  0,}},
 | |
| 		{{ 64,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 64,  0,  0, 64,  0,  0,  0,  0,}},
 | |
| 		{{ 64,  0, 64,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 64,  0, 64, 64,  0,  0,  0,  0,}},
 | |
| 		{{ 64, 64,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 64, 64,  0, 64,  0,  0,  0,  0,}},
 | |
| 		{{ 64, 64, 64,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 64, 64, 64, 64,  0,  0,  0,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  4,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  4,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  4,  4,  0,  0,  0,  0,}},
 | |
| 		{{  0,  4,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  4,  0,  4,  0,  0,  0,  0,}},
 | |
| 		{{  0,  4,  4,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  4,  4,  4,  0,  0,  0,  0,}},
 | |
| 		{{  4,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  4,  0,  0,  4,  0,  0,  0,  0,}},
 | |
| 		{{  4,  0,  4,  0,  0,  0,  0,  0,}},
 | |
| 		{{  4,  0,  4,  4,  0,  0,  0,  0,}},
 | |
| 		{{  4,  4,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  4,  4,  0,  4,  0,  0,  0,  0,}},
 | |
| 		{{  4,  4,  4,  0,  0,  0,  0,  0,}},
 | |
| 		{{  4,  4,  4,  4,  0,  0,  0,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0, 16,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 16,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 16, 16,}},
 | |
| 		{{  0,  0,  0,  0,  0, 16,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0, 16,  0, 16,}},
 | |
| 		{{  0,  0,  0,  0,  0, 16, 16,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0, 16, 16, 16,}},
 | |
| 		{{  0,  0,  0,  0, 16,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 16,  0,  0, 16,}},
 | |
| 		{{  0,  0,  0,  0, 16,  0, 16,  0,}},
 | |
| 		{{  0,  0,  0,  0, 16,  0, 16, 16,}},
 | |
| 		{{  0,  0,  0,  0, 16, 16,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 16, 16,  0, 16,}},
 | |
| 		{{  0,  0,  0,  0, 16, 16, 16,  0,}},
 | |
| 		{{  0,  0,  0,  0, 16, 16, 16, 16,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  1,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  1,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  1,  1,}},
 | |
| 		{{  0,  0,  0,  0,  0,  1,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  1,  0,  1,}},
 | |
| 		{{  0,  0,  0,  0,  0,  1,  1,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  1,  1,  1,}},
 | |
| 		{{  0,  0,  0,  0,  1,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  1,  0,  0,  1,}},
 | |
| 		{{  0,  0,  0,  0,  1,  0,  1,  0,}},
 | |
| 		{{  0,  0,  0,  0,  1,  0,  1,  1,}},
 | |
| 		{{  0,  0,  0,  0,  1,  1,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  1,  1,  0,  1,}},
 | |
| 		{{  0,  0,  0,  0,  1,  1,  1,  0,}},
 | |
| 		{{  0,  0,  0,  0,  1,  1,  1,  1,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0, 16,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0, 16,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0, 16, 16,  0,  0,  0,  0,}},
 | |
| 		{{  0, 16,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0, 16,  0, 16,  0,  0,  0,  0,}},
 | |
| 		{{  0, 16, 16,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0, 16, 16, 16,  0,  0,  0,  0,}},
 | |
| 		{{ 16,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 16,  0,  0, 16,  0,  0,  0,  0,}},
 | |
| 		{{ 16,  0, 16,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 16,  0, 16, 16,  0,  0,  0,  0,}},
 | |
| 		{{ 16, 16,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 16, 16,  0, 16,  0,  0,  0,  0,}},
 | |
| 		{{ 16, 16, 16,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 16, 16, 16, 16,  0,  0,  0,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  1,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  1,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  1,  1,  0,  0,  0,  0,}},
 | |
| 		{{  0,  1,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  1,  0,  1,  0,  0,  0,  0,}},
 | |
| 		{{  0,  1,  1,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  1,  1,  1,  0,  0,  0,  0,}},
 | |
| 		{{  1,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  1,  0,  0,  1,  0,  0,  0,  0,}},
 | |
| 		{{  1,  0,  1,  0,  0,  0,  0,  0,}},
 | |
| 		{{  1,  0,  1,  1,  0,  0,  0,  0,}},
 | |
| 		{{  1,  1,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  1,  1,  0,  1,  0,  0,  0,  0,}},
 | |
| 		{{  1,  1,  1,  0,  0,  0,  0,  0,}},
 | |
| 		{{  1,  1,  1,  1,  0,  0,  0,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,128,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,128,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,128,128,}},
 | |
| 		{{  0,  0,  0,  0,  0,128,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,128,  0,128,}},
 | |
| 		{{  0,  0,  0,  0,  0,128,128,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,128,128,128,}},
 | |
| 		{{  0,  0,  0,  0,128,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,128,  0,  0,128,}},
 | |
| 		{{  0,  0,  0,  0,128,  0,128,  0,}},
 | |
| 		{{  0,  0,  0,  0,128,  0,128,128,}},
 | |
| 		{{  0,  0,  0,  0,128,128,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,128,128,  0,128,}},
 | |
| 		{{  0,  0,  0,  0,128,128,128,  0,}},
 | |
| 		{{  0,  0,  0,  0,128,128,128,128,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  8,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  8,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  8,  8,}},
 | |
| 		{{  0,  0,  0,  0,  0,  8,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  8,  0,  8,}},
 | |
| 		{{  0,  0,  0,  0,  0,  8,  8,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  8,  8,  8,}},
 | |
| 		{{  0,  0,  0,  0,  8,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  8,  0,  0,  8,}},
 | |
| 		{{  0,  0,  0,  0,  8,  0,  8,  0,}},
 | |
| 		{{  0,  0,  0,  0,  8,  0,  8,  8,}},
 | |
| 		{{  0,  0,  0,  0,  8,  8,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  8,  8,  0,  8,}},
 | |
| 		{{  0,  0,  0,  0,  8,  8,  8,  0,}},
 | |
| 		{{  0,  0,  0,  0,  8,  8,  8,  8,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,128,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,128,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,128,128,  0,  0,  0,  0,}},
 | |
| 		{{  0,128,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,128,  0,128,  0,  0,  0,  0,}},
 | |
| 		{{  0,128,128,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,128,128,128,  0,  0,  0,  0,}},
 | |
| 		{{128,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{128,  0,  0,128,  0,  0,  0,  0,}},
 | |
| 		{{128,  0,128,  0,  0,  0,  0,  0,}},
 | |
| 		{{128,  0,128,128,  0,  0,  0,  0,}},
 | |
| 		{{128,128,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{128,128,  0,128,  0,  0,  0,  0,}},
 | |
| 		{{128,128,128,  0,  0,  0,  0,  0,}},
 | |
| 		{{128,128,128,128,  0,  0,  0,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  8,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  8,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  8,  8,  0,  0,  0,  0,}},
 | |
| 		{{  0,  8,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  8,  0,  8,  0,  0,  0,  0,}},
 | |
| 		{{  0,  8,  8,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  8,  8,  8,  0,  0,  0,  0,}},
 | |
| 		{{  8,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  8,  0,  0,  8,  0,  0,  0,  0,}},
 | |
| 		{{  8,  0,  8,  0,  0,  0,  0,  0,}},
 | |
| 		{{  8,  0,  8,  8,  0,  0,  0,  0,}},
 | |
| 		{{  8,  8,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  8,  8,  0,  8,  0,  0,  0,  0,}},
 | |
| 		{{  8,  8,  8,  0,  0,  0,  0,  0,}},
 | |
| 		{{  8,  8,  8,  8,  0,  0,  0,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0, 32,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 32,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0, 32, 32,}},
 | |
| 		{{  0,  0,  0,  0,  0, 32,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0, 32,  0, 32,}},
 | |
| 		{{  0,  0,  0,  0,  0, 32, 32,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0, 32, 32, 32,}},
 | |
| 		{{  0,  0,  0,  0, 32,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 32,  0,  0, 32,}},
 | |
| 		{{  0,  0,  0,  0, 32,  0, 32,  0,}},
 | |
| 		{{  0,  0,  0,  0, 32,  0, 32, 32,}},
 | |
| 		{{  0,  0,  0,  0, 32, 32,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0, 32, 32,  0, 32,}},
 | |
| 		{{  0,  0,  0,  0, 32, 32, 32,  0,}},
 | |
| 		{{  0,  0,  0,  0, 32, 32, 32, 32,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  2,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  2,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  0,  2,  2,}},
 | |
| 		{{  0,  0,  0,  0,  0,  2,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  2,  0,  2,}},
 | |
| 		{{  0,  0,  0,  0,  0,  2,  2,  0,}},
 | |
| 		{{  0,  0,  0,  0,  0,  2,  2,  2,}},
 | |
| 		{{  0,  0,  0,  0,  2,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  2,  0,  0,  2,}},
 | |
| 		{{  0,  0,  0,  0,  2,  0,  2,  0,}},
 | |
| 		{{  0,  0,  0,  0,  2,  0,  2,  2,}},
 | |
| 		{{  0,  0,  0,  0,  2,  2,  0,  0,}},
 | |
| 		{{  0,  0,  0,  0,  2,  2,  0,  2,}},
 | |
| 		{{  0,  0,  0,  0,  2,  2,  2,  0,}},
 | |
| 		{{  0,  0,  0,  0,  2,  2,  2,  2,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0, 32,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0, 32,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0, 32, 32,  0,  0,  0,  0,}},
 | |
| 		{{  0, 32,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0, 32,  0, 32,  0,  0,  0,  0,}},
 | |
| 		{{  0, 32, 32,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0, 32, 32, 32,  0,  0,  0,  0,}},
 | |
| 		{{ 32,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 32,  0,  0, 32,  0,  0,  0,  0,}},
 | |
| 		{{ 32,  0, 32,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 32,  0, 32, 32,  0,  0,  0,  0,}},
 | |
| 		{{ 32, 32,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 32, 32,  0, 32,  0,  0,  0,  0,}},
 | |
| 		{{ 32, 32, 32,  0,  0,  0,  0,  0,}},
 | |
| 		{{ 32, 32, 32, 32,  0,  0,  0,  0,}},
 | |
| 	},
 | |
| 	{
 | |
| 		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  0,  2,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  2,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  0,  2,  2,  0,  0,  0,  0,}},
 | |
| 		{{  0,  2,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  2,  0,  2,  0,  0,  0,  0,}},
 | |
| 		{{  0,  2,  2,  0,  0,  0,  0,  0,}},
 | |
| 		{{  0,  2,  2,  2,  0,  0,  0,  0,}},
 | |
| 		{{  2,  0,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  2,  0,  0,  2,  0,  0,  0,  0,}},
 | |
| 		{{  2,  0,  2,  0,  0,  0,  0,  0,}},
 | |
| 		{{  2,  0,  2,  2,  0,  0,  0,  0,}},
 | |
| 		{{  2,  2,  0,  0,  0,  0,  0,  0,}},
 | |
| 		{{  2,  2,  0,  2,  0,  0,  0,  0,}},
 | |
| 		{{  2,  2,  2,  0,  0,  0,  0,  0,}},
 | |
| 		{{  2,  2,  2,  2,  0,  0,  0,  0,}},
 | |
| 	},
 | |
| };
 | |
| 
 | |
| #define HAVE_DES_TABLES 1
 | |
| #endif
 |