Home | History | Annotate | Download | only in des
      1 /*
      2  * CDDL HEADER START
      3  *
      4  * The contents of this file are subject to the terms of the
      5  * Common Development and Distribution License, Version 1.0 only
      6  * (the "License").  You may not use this file except in compliance
      7  * with the License.
      8  *
      9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
     10  * or http://www.opensolaris.org/os/licensing.
     11  * See the License for the specific language governing permissions
     12  * and limitations under the License.
     13  *
     14  * When distributing Covered Code, include this CDDL HEADER in each
     15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     16  * If applicable, add the following below this CDDL HEADER, with the
     17  * fields enclosed by brackets "[]" replaced with your own identifying
     18  * information: Portions Copyright [yyyy] [name of copyright owner]
     19  *
     20  * CDDL HEADER END
     21  *
     22  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
     23  * Use is subject to license terms.
     24  */
     25 
     26 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
     27 /*	  All Rights Reserved  	*/
     28 
     29 /*
     30  * Portions of this source code were derived from Berkeley 4.3 BSD
     31  * under license from the Regents of the University of California.
     32  */
     33 
     34 #ifndef _SYS_DESDATA_H
     35 #define	_SYS_DESDATA_H
     36 
     37 #pragma ident	"%Z%%M%	%I%	%E% SMI"
     38 
     39 #ifdef	__cplusplus
     40 extern "C" {
     41 #endif
     42 
     43 /*
     44  * softdesdata.c, Data for software implementation of DES
     45  */
     46 
     47 /*
     48  * Lint can't handle static's in include files.
     49  * Complains "defined but not used" and then "used but not defined"
     50  */
     51 #ifdef __lint
     52 #define	static
     53 #endif
     54 
     55 /* EXPORT DELETE START */
     56 /*
     57  * Permuted-choice 1 from the key bits
     58  * to yield C and D.
     59  * Note that bits 8,16... are left out:
     60  * They are intended for a parity check.
     61  * Table has been munged to be zero-origin
     62  */
     63 
     64 const short	PC1_C[] = {
     65 	57-1, 49-1, 41-1, 33-1, 25-1, 17-1,  9-1,
     66 	1-1,  58-1, 50-1, 42-1, 34-1, 26-1, 18-1,
     67 	10-1,  2-1, 59-1, 51-1, 43-1, 35-1, 27-1,
     68 	19-1, 11-1,  3-1, 60-1, 52-1, 44-1, 36-1,
     69 };
     70 
     71 const short	PC1_D[] = {
     72 	63-1, 55-1, 47-1, 39-1, 31-1, 23-1, 15-1,
     73 	7-1,  62-1, 54-1, 46-1, 38-1, 30-1, 22-1,
     74 	14-1,  6-1, 61-1, 53-1, 45-1, 37-1, 29-1,
     75 	21-1, 13-1,  5-1, 28-1, 20-1, 12-1,  4-1,
     76 };
     77 
     78 /*
     79  * Sequence of shifts used for the key schedule.
     80  */
     81 const char	shifts[] = {
     82 	1-1, 1-1, 2-1, 2-1, 2-1, 2-1, 2-1, 2-1,
     83 	1-1, 2-1, 2-1, 2-1, 2-1, 2-1, 2-1, 1-1,
     84 };
     85 
     86 /*
     87  * Permuted-choice 2, to pick out the bits from
     88  * the CD array that generate the key schedule.
     89  */
     90 const	char	PC2_C[] = {
     91 	14, 17, 11, 24, 1,  5,
     92 	3,  28, 15, 6,  21, 10,
     93 	23, 19, 12, 4,  26, 8,
     94 	16, 7,  27, 20, 13, 2,
     95 };
     96 
     97 const	char	PC2_D[] = {
     98 	41-28, 52-28, 31-28, 37-28, 47-28, 55-28,
     99 	30-28, 40-28, 51-28, 45-28, 33-28, 48-28,
    100 	44-28, 49-28, 39-28, 56-28, 34-28, 53-28,
    101 	46-28, 42-28, 50-28, 36-28, 29-28, 32-28,
    102 };
    103 
    104 /*
    105  * Initial permutation
    106  */
    107 const	short	IPtab[64] = {
    108 	40-1,  8-1, 48-1, 16-1, 56-1, 24-1, 64-1, 32-1,
    109 	39-1,  7-1, 47-1, 15-1, 55-1, 23-1, 63-1, 31-1,
    110 	38-1,  6-1, 46-1, 14-1, 54-1, 22-1, 62-1, 30-1,
    111 	37-1,  5-1, 45-1, 13-1, 53-1, 21-1, 61-1, 29-1,
    112 	36-1,  4-1, 44-1, 12-1, 52-1, 20-1, 60-1, 28-1,
    113 	35-1,  3-1, 43-1, 11-1, 51-1, 19-1, 59-1, 27-1,
    114 	34-1,  2-1, 42-1, 10-1, 50-1, 18-1, 58-1, 26-1,
    115 	33-1,  1-1, 41-1,  9-1, 49-1, 17-1, 57-1, 25-1,
    116 };
    117 
    118 /*
    119  * Final permutation
    120  */
    121 const	short	FPtab[64] = {
    122 	58-1, 50-1, 42-1, 34-1, 26-1, 18-1, 10-1,  2-1,
    123 	60-1, 52-1, 44-1, 36-1, 28-1, 20-1, 12-1,  4-1,
    124 	62-1, 54-1, 46-1, 38-1, 30-1, 22-1, 14-1,  6-1,
    125 	64-1, 56-1, 48-1, 40-1, 32-1, 24-1, 16-1,  8-1,
    126 	57-1, 49-1, 41-1, 33-1, 25-1, 17-1,  9-1,  1-1,
    127 	59-1, 51-1, 43-1, 35-1, 27-1, 19-1, 11-1,  3-1,
    128 	61-1, 53-1, 45-1, 37-1, 29-1, 21-1, 13-1,  5-1,
    129 	63-1, 55-1, 47-1, 39-1, 31-1, 23-1, 15-1,  7-1,
    130 };
    131 
    132 /*
    133  * Mask bit selection table
    134  */
    135 const	uint32_t longtab[32] = {
    136 	0x80000000U,	0x40000000U,	0x20000000U,	0x10000000U,
    137 	0x8000000U,	0x4000000U,	0x2000000U,	0x1000000U,
    138 	0x800000U,	0x400000U,	0x200000U,	0x100000U,
    139 	0x80000U,	0x40000U,	0x20000U,	0x10000U,
    140 	0x8000U,	0x4000U,	0x2000U,	0x1000U,
    141 	0x800U,		0x400U,		0x200U,		0x100U,
    142 	0x80U,		0x40U,		0x20U,		0x10U,
    143 	0x8U,		0x4U,		0x2U,		0x1U,
    144 };
    145 
    146 /*
    147  * Table to expand 32 bit (4 bytes of 8 bits) R value
    148  * to 48 bits (8 bytes of 6 bits)
    149  */
    150 struct R_to_ER {
    151 	uint32_t l0, l1;
    152 };
    153 
    154 const	struct R_to_ER R_to_ER_tab[4][256] = {
    155 	{{ 0x00000000, 0x00000000, },	{ 0x00022000, 0x00000000, },
    156 	{ 0x00040000, 0x00000000, },	{ 0x00062000, 0x00000000, },
    157 	{ 0x00080000, 0x00000000, },	{ 0x000a2000, 0x00000000, },
    158 	{ 0x000c0000, 0x00000000, },	{ 0x000e2000, 0x00000000, },
    159 	{ 0x01100000, 0x00000000, },	{ 0x01122000, 0x00000000, },
    160 	{ 0x01140000, 0x00000000, },	{ 0x01162000, 0x00000000, },
    161 	{ 0x01180000, 0x00000000, },	{ 0x011a2000, 0x00000000, },
    162 	{ 0x011c0000, 0x00000000, },	{ 0x011e2000, 0x00000000, },
    163 	{ 0x02200000, 0x00000000, },	{ 0x02222000, 0x00000000, },
    164 	{ 0x02240000, 0x00000000, },	{ 0x02262000, 0x00000000, },
    165 	{ 0x02280000, 0x00000000, },	{ 0x022a2000, 0x00000000, },
    166 	{ 0x022c0000, 0x00000000, },	{ 0x022e2000, 0x00000000, },
    167 	{ 0x03300000, 0x00000000, },	{ 0x03322000, 0x00000000, },
    168 	{ 0x03340000, 0x00000000, },	{ 0x03362000, 0x00000000, },
    169 	{ 0x03380000, 0x00000000, },	{ 0x033a2000, 0x00000000, },
    170 	{ 0x033c0000, 0x00000000, },	{ 0x033e2000, 0x00000000, },
    171 	{ 0x04000000, 0x00000000, },	{ 0x04022000, 0x00000000, },
    172 	{ 0x04040000, 0x00000000, },	{ 0x04062000, 0x00000000, },
    173 	{ 0x04080000, 0x00000000, },	{ 0x040a2000, 0x00000000, },
    174 	{ 0x040c0000, 0x00000000, },	{ 0x040e2000, 0x00000000, },
    175 	{ 0x05100000, 0x00000000, },	{ 0x05122000, 0x00000000, },
    176 	{ 0x05140000, 0x00000000, },	{ 0x05162000, 0x00000000, },
    177 	{ 0x05180000, 0x00000000, },	{ 0x051a2000, 0x00000000, },
    178 	{ 0x051c0000, 0x00000000, },	{ 0x051e2000, 0x00000000, },
    179 	{ 0x06200000, 0x00000000, },	{ 0x06222000, 0x00000000, },
    180 	{ 0x06240000, 0x00000000, },	{ 0x06262000, 0x00000000, },
    181 	{ 0x06280000, 0x00000000, },	{ 0x062a2000, 0x00000000, },
    182 	{ 0x062c0000, 0x00000000, },	{ 0x062e2000, 0x00000000, },
    183 	{ 0x07300000, 0x00000000, },	{ 0x07322000, 0x00000000, },
    184 	{ 0x07340000, 0x00000000, },	{ 0x07362000, 0x00000000, },
    185 	{ 0x07380000, 0x00000000, },	{ 0x073a2000, 0x00000000, },
    186 	{ 0x073c0000, 0x00000000, },	{ 0x073e2000, 0x00000000, },
    187 	{ 0x08000000, 0x00000000, },	{ 0x08022000, 0x00000000, },
    188 	{ 0x08040000, 0x00000000, },	{ 0x08062000, 0x00000000, },
    189 	{ 0x08080000, 0x00000000, },	{ 0x080a2000, 0x00000000, },
    190 	{ 0x080c0000, 0x00000000, },	{ 0x080e2000, 0x00000000, },
    191 	{ 0x09100000, 0x00000000, },	{ 0x09122000, 0x00000000, },
    192 	{ 0x09140000, 0x00000000, },	{ 0x09162000, 0x00000000, },
    193 	{ 0x09180000, 0x00000000, },	{ 0x091a2000, 0x00000000, },
    194 	{ 0x091c0000, 0x00000000, },	{ 0x091e2000, 0x00000000, },
    195 	{ 0x0a200000, 0x00000000, },	{ 0x0a222000, 0x00000000, },
    196 	{ 0x0a240000, 0x00000000, },	{ 0x0a262000, 0x00000000, },
    197 	{ 0x0a280000, 0x00000000, },	{ 0x0a2a2000, 0x00000000, },
    198 	{ 0x0a2c0000, 0x00000000, },	{ 0x0a2e2000, 0x00000000, },
    199 	{ 0x0b300000, 0x00000000, },	{ 0x0b322000, 0x00000000, },
    200 	{ 0x0b340000, 0x00000000, },	{ 0x0b362000, 0x00000000, },
    201 	{ 0x0b380000, 0x00000000, },	{ 0x0b3a2000, 0x00000000, },
    202 	{ 0x0b3c0000, 0x00000000, },	{ 0x0b3e2000, 0x00000000, },
    203 	{ 0x0c000000, 0x00000000, },	{ 0x0c022000, 0x00000000, },
    204 	{ 0x0c040000, 0x00000000, },	{ 0x0c062000, 0x00000000, },
    205 	{ 0x0c080000, 0x00000000, },	{ 0x0c0a2000, 0x00000000, },
    206 	{ 0x0c0c0000, 0x00000000, },	{ 0x0c0e2000, 0x00000000, },
    207 	{ 0x0d100000, 0x00000000, },	{ 0x0d122000, 0x00000000, },
    208 	{ 0x0d140000, 0x00000000, },	{ 0x0d162000, 0x00000000, },
    209 	{ 0x0d180000, 0x00000000, },	{ 0x0d1a2000, 0x00000000, },
    210 	{ 0x0d1c0000, 0x00000000, },	{ 0x0d1e2000, 0x00000000, },
    211 	{ 0x0e200000, 0x00000000, },	{ 0x0e222000, 0x00000000, },
    212 	{ 0x0e240000, 0x00000000, },	{ 0x0e262000, 0x00000000, },
    213 	{ 0x0e280000, 0x00000000, },	{ 0x0e2a2000, 0x00000000, },
    214 	{ 0x0e2c0000, 0x00000000, },	{ 0x0e2e2000, 0x00000000, },
    215 	{ 0x0f300000, 0x00000000, },	{ 0x0f322000, 0x00000000, },
    216 	{ 0x0f340000, 0x00000000, },	{ 0x0f362000, 0x00000000, },
    217 	{ 0x0f380000, 0x00000000, },	{ 0x0f3a2000, 0x00000000, },
    218 	{ 0x0f3c0000, 0x00000000, },	{ 0x0f3e2000, 0x00000000, },
    219 	{ 0x10000000, 0x00000001, },	{ 0x10022000, 0x00000001, },
    220 	{ 0x10040000, 0x00000001, },	{ 0x10062000, 0x00000001, },
    221 	{ 0x10080000, 0x00000001, },	{ 0x100a2000, 0x00000001, },
    222 	{ 0x100c0000, 0x00000001, },	{ 0x100e2000, 0x00000001, },
    223 	{ 0x11100000, 0x00000001, },	{ 0x11122000, 0x00000001, },
    224 	{ 0x11140000, 0x00000001, },	{ 0x11162000, 0x00000001, },
    225 	{ 0x11180000, 0x00000001, },	{ 0x111a2000, 0x00000001, },
    226 	{ 0x111c0000, 0x00000001, },	{ 0x111e2000, 0x00000001, },
    227 	{ 0x12200000, 0x00000001, },	{ 0x12222000, 0x00000001, },
    228 	{ 0x12240000, 0x00000001, },	{ 0x12262000, 0x00000001, },
    229 	{ 0x12280000, 0x00000001, },	{ 0x122a2000, 0x00000001, },
    230 	{ 0x122c0000, 0x00000001, },	{ 0x122e2000, 0x00000001, },
    231 	{ 0x13300000, 0x00000001, },	{ 0x13322000, 0x00000001, },
    232 	{ 0x13340000, 0x00000001, },	{ 0x13362000, 0x00000001, },
    233 	{ 0x13380000, 0x00000001, },	{ 0x133a2000, 0x00000001, },
    234 	{ 0x133c0000, 0x00000001, },	{ 0x133e2000, 0x00000001, },
    235 	{ 0x14000000, 0x00000001, },	{ 0x14022000, 0x00000001, },
    236 	{ 0x14040000, 0x00000001, },	{ 0x14062000, 0x00000001, },
    237 	{ 0x14080000, 0x00000001, },	{ 0x140a2000, 0x00000001, },
    238 	{ 0x140c0000, 0x00000001, },	{ 0x140e2000, 0x00000001, },
    239 	{ 0x15100000, 0x00000001, },	{ 0x15122000, 0x00000001, },
    240 	{ 0x15140000, 0x00000001, },	{ 0x15162000, 0x00000001, },
    241 	{ 0x15180000, 0x00000001, },	{ 0x151a2000, 0x00000001, },
    242 	{ 0x151c0000, 0x00000001, },	{ 0x151e2000, 0x00000001, },
    243 	{ 0x16200000, 0x00000001, },	{ 0x16222000, 0x00000001, },
    244 	{ 0x16240000, 0x00000001, },	{ 0x16262000, 0x00000001, },
    245 	{ 0x16280000, 0x00000001, },	{ 0x162a2000, 0x00000001, },
    246 	{ 0x162c0000, 0x00000001, },	{ 0x162e2000, 0x00000001, },
    247 	{ 0x17300000, 0x00000001, },	{ 0x17322000, 0x00000001, },
    248 	{ 0x17340000, 0x00000001, },	{ 0x17362000, 0x00000001, },
    249 	{ 0x17380000, 0x00000001, },	{ 0x173a2000, 0x00000001, },
    250 	{ 0x173c0000, 0x00000001, },	{ 0x173e2000, 0x00000001, },
    251 	{ 0x18000000, 0x00000001, },	{ 0x18022000, 0x00000001, },
    252 	{ 0x18040000, 0x00000001, },	{ 0x18062000, 0x00000001, },
    253 	{ 0x18080000, 0x00000001, },	{ 0x180a2000, 0x00000001, },
    254 	{ 0x180c0000, 0x00000001, },	{ 0x180e2000, 0x00000001, },
    255 	{ 0x19100000, 0x00000001, },	{ 0x19122000, 0x00000001, },
    256 	{ 0x19140000, 0x00000001, },	{ 0x19162000, 0x00000001, },
    257 	{ 0x19180000, 0x00000001, },	{ 0x191a2000, 0x00000001, },
    258 	{ 0x191c0000, 0x00000001, },	{ 0x191e2000, 0x00000001, },
    259 	{ 0x1a200000, 0x00000001, },	{ 0x1a222000, 0x00000001, },
    260 	{ 0x1a240000, 0x00000001, },	{ 0x1a262000, 0x00000001, },
    261 	{ 0x1a280000, 0x00000001, },	{ 0x1a2a2000, 0x00000001, },
    262 	{ 0x1a2c0000, 0x00000001, },	{ 0x1a2e2000, 0x00000001, },
    263 	{ 0x1b300000, 0x00000001, },	{ 0x1b322000, 0x00000001, },
    264 	{ 0x1b340000, 0x00000001, },	{ 0x1b362000, 0x00000001, },
    265 	{ 0x1b380000, 0x00000001, },	{ 0x1b3a2000, 0x00000001, },
    266 	{ 0x1b3c0000, 0x00000001, },	{ 0x1b3e2000, 0x00000001, },
    267 	{ 0x1c000000, 0x00000001, },	{ 0x1c022000, 0x00000001, },
    268 	{ 0x1c040000, 0x00000001, },	{ 0x1c062000, 0x00000001, },
    269 	{ 0x1c080000, 0x00000001, },	{ 0x1c0a2000, 0x00000001, },
    270 	{ 0x1c0c0000, 0x00000001, },	{ 0x1c0e2000, 0x00000001, },
    271 	{ 0x1d100000, 0x00000001, },	{ 0x1d122000, 0x00000001, },
    272 	{ 0x1d140000, 0x00000001, },	{ 0x1d162000, 0x00000001, },
    273 	{ 0x1d180000, 0x00000001, },	{ 0x1d1a2000, 0x00000001, },
    274 	{ 0x1d1c0000, 0x00000001, },	{ 0x1d1e2000, 0x00000001, },
    275 	{ 0x1e200000, 0x00000001, },	{ 0x1e222000, 0x00000001, },
    276 	{ 0x1e240000, 0x00000001, },	{ 0x1e262000, 0x00000001, },
    277 	{ 0x1e280000, 0x00000001, },	{ 0x1e2a2000, 0x00000001, },
    278 	{ 0x1e2c0000, 0x00000001, },	{ 0x1e2e2000, 0x00000001, },
    279 	{ 0x1f300000, 0x00000001, },	{ 0x1f322000, 0x00000001, },
    280 	{ 0x1f340000, 0x00000001, },	{ 0x1f362000, 0x00000001, },
    281 	{ 0x1f380000, 0x00000001, },	{ 0x1f3a2000, 0x00000001, },
    282 	{ 0x1f3c0000, 0x00000001, },	{ 0x1f3e2000, 0x00000001, }, },
    283 
    284 	{{ 0x00000000, 0x00000000, },	{ 0x00000002, 0x20000000, },
    285 	{ 0x00000004, 0x00000000, },	{ 0x00000006, 0x20000000, },
    286 	{ 0x00000008, 0x00000000, },	{ 0x0000000a, 0x20000000, },
    287 	{ 0x0000000c, 0x00000000, },	{ 0x0000000e, 0x20000000, },
    288 	{ 0x00000110, 0x00000000, },	{ 0x00000112, 0x20000000, },
    289 	{ 0x00000114, 0x00000000, },	{ 0x00000116, 0x20000000, },
    290 	{ 0x00000118, 0x00000000, },	{ 0x0000011a, 0x20000000, },
    291 	{ 0x0000011c, 0x00000000, },	{ 0x0000011e, 0x20000000, },
    292 	{ 0x00000220, 0x00000000, },	{ 0x00000222, 0x20000000, },
    293 	{ 0x00000224, 0x00000000, },	{ 0x00000226, 0x20000000, },
    294 	{ 0x00000228, 0x00000000, },	{ 0x0000022a, 0x20000000, },
    295 	{ 0x0000022c, 0x00000000, },	{ 0x0000022e, 0x20000000, },
    296 	{ 0x00000330, 0x00000000, },	{ 0x00000332, 0x20000000, },
    297 	{ 0x00000334, 0x00000000, },	{ 0x00000336, 0x20000000, },
    298 	{ 0x00000338, 0x00000000, },	{ 0x0000033a, 0x20000000, },
    299 	{ 0x0000033c, 0x00000000, },	{ 0x0000033e, 0x20000000, },
    300 	{ 0x00000400, 0x00000000, },	{ 0x00000402, 0x20000000, },
    301 	{ 0x00000404, 0x00000000, },	{ 0x00000406, 0x20000000, },
    302 	{ 0x00000408, 0x00000000, },	{ 0x0000040a, 0x20000000, },
    303 	{ 0x0000040c, 0x00000000, },	{ 0x0000040e, 0x20000000, },
    304 	{ 0x00000510, 0x00000000, },	{ 0x00000512, 0x20000000, },
    305 	{ 0x00000514, 0x00000000, },	{ 0x00000516, 0x20000000, },
    306 	{ 0x00000518, 0x00000000, },	{ 0x0000051a, 0x20000000, },
    307 	{ 0x0000051c, 0x00000000, },	{ 0x0000051e, 0x20000000, },
    308 	{ 0x00000620, 0x00000000, },	{ 0x00000622, 0x20000000, },
    309 	{ 0x00000624, 0x00000000, },	{ 0x00000626, 0x20000000, },
    310 	{ 0x00000628, 0x00000000, },	{ 0x0000062a, 0x20000000, },
    311 	{ 0x0000062c, 0x00000000, },	{ 0x0000062e, 0x20000000, },
    312 	{ 0x00000730, 0x00000000, },	{ 0x00000732, 0x20000000, },
    313 	{ 0x00000734, 0x00000000, },	{ 0x00000736, 0x20000000, },
    314 	{ 0x00000738, 0x00000000, },	{ 0x0000073a, 0x20000000, },
    315 	{ 0x0000073c, 0x00000000, },	{ 0x0000073e, 0x20000000, },
    316 	{ 0x00000800, 0x00000000, },	{ 0x00000802, 0x20000000, },
    317 	{ 0x00000804, 0x00000000, },	{ 0x00000806, 0x20000000, },
    318 	{ 0x00000808, 0x00000000, },	{ 0x0000080a, 0x20000000, },
    319 	{ 0x0000080c, 0x00000000, },	{ 0x0000080e, 0x20000000, },
    320 	{ 0x00000910, 0x00000000, },	{ 0x00000912, 0x20000000, },
    321 	{ 0x00000914, 0x00000000, },	{ 0x00000916, 0x20000000, },
    322 	{ 0x00000918, 0x00000000, },	{ 0x0000091a, 0x20000000, },
    323 	{ 0x0000091c, 0x00000000, },	{ 0x0000091e, 0x20000000, },
    324 	{ 0x00000a20, 0x00000000, },	{ 0x00000a22, 0x20000000, },
    325 	{ 0x00000a24, 0x00000000, },	{ 0x00000a26, 0x20000000, },
    326 	{ 0x00000a28, 0x00000000, },	{ 0x00000a2a, 0x20000000, },
    327 	{ 0x00000a2c, 0x00000000, },	{ 0x00000a2e, 0x20000000, },
    328 	{ 0x00000b30, 0x00000000, },	{ 0x00000b32, 0x20000000, },
    329 	{ 0x00000b34, 0x00000000, },	{ 0x00000b36, 0x20000000, },
    330 	{ 0x00000b38, 0x00000000, },	{ 0x00000b3a, 0x20000000, },
    331 	{ 0x00000b3c, 0x00000000, },	{ 0x00000b3e, 0x20000000, },
    332 	{ 0x00000c00, 0x00000000, },	{ 0x00000c02, 0x20000000, },
    333 	{ 0x00000c04, 0x00000000, },	{ 0x00000c06, 0x20000000, },
    334 	{ 0x00000c08, 0x00000000, },	{ 0x00000c0a, 0x20000000, },
    335 	{ 0x00000c0c, 0x00000000, },	{ 0x00000c0e, 0x20000000, },
    336 	{ 0x00000d10, 0x00000000, },	{ 0x00000d12, 0x20000000, },
    337 	{ 0x00000d14, 0x00000000, },	{ 0x00000d16, 0x20000000, },
    338 	{ 0x00000d18, 0x00000000, },	{ 0x00000d1a, 0x20000000, },
    339 	{ 0x00000d1c, 0x00000000, },	{ 0x00000d1e, 0x20000000, },
    340 	{ 0x00000e20, 0x00000000, },	{ 0x00000e22, 0x20000000, },
    341 	{ 0x00000e24, 0x00000000, },	{ 0x00000e26, 0x20000000, },
    342 	{ 0x00000e28, 0x00000000, },	{ 0x00000e2a, 0x20000000, },
    343 	{ 0x00000e2c, 0x00000000, },	{ 0x00000e2e, 0x20000000, },
    344 	{ 0x00000f30, 0x00000000, },	{ 0x00000f32, 0x20000000, },
    345 	{ 0x00000f34, 0x00000000, },	{ 0x00000f36, 0x20000000, },
    346 	{ 0x00000f38, 0x00000000, },	{ 0x00000f3a, 0x20000000, },
    347 	{ 0x00000f3c, 0x00000000, },	{ 0x00000f3e, 0x20000000, },
    348 	{ 0x00011000, 0x00000000, },	{ 0x00011002, 0x20000000, },
    349 	{ 0x00011004, 0x00000000, },	{ 0x00011006, 0x20000000, },
    350 	{ 0x00011008, 0x00000000, },	{ 0x0001100a, 0x20000000, },
    351 	{ 0x0001100c, 0x00000000, },	{ 0x0001100e, 0x20000000, },
    352 	{ 0x00011110, 0x00000000, },	{ 0x00011112, 0x20000000, },
    353 	{ 0x00011114, 0x00000000, },	{ 0x00011116, 0x20000000, },
    354 	{ 0x00011118, 0x00000000, },	{ 0x0001111a, 0x20000000, },
    355 	{ 0x0001111c, 0x00000000, },	{ 0x0001111e, 0x20000000, },
    356 	{ 0x00011220, 0x00000000, },	{ 0x00011222, 0x20000000, },
    357 	{ 0x00011224, 0x00000000, },	{ 0x00011226, 0x20000000, },
    358 	{ 0x00011228, 0x00000000, },	{ 0x0001122a, 0x20000000, },
    359 	{ 0x0001122c, 0x00000000, },	{ 0x0001122e, 0x20000000, },
    360 	{ 0x00011330, 0x00000000, },	{ 0x00011332, 0x20000000, },
    361 	{ 0x00011334, 0x00000000, },	{ 0x00011336, 0x20000000, },
    362 	{ 0x00011338, 0x00000000, },	{ 0x0001133a, 0x20000000, },
    363 	{ 0x0001133c, 0x00000000, },	{ 0x0001133e, 0x20000000, },
    364 	{ 0x00011400, 0x00000000, },	{ 0x00011402, 0x20000000, },
    365 	{ 0x00011404, 0x00000000, },	{ 0x00011406, 0x20000000, },
    366 	{ 0x00011408, 0x00000000, },	{ 0x0001140a, 0x20000000, },
    367 	{ 0x0001140c, 0x00000000, },	{ 0x0001140e, 0x20000000, },
    368 	{ 0x00011510, 0x00000000, },	{ 0x00011512, 0x20000000, },
    369 	{ 0x00011514, 0x00000000, },	{ 0x00011516, 0x20000000, },
    370 	{ 0x00011518, 0x00000000, },	{ 0x0001151a, 0x20000000, },
    371 	{ 0x0001151c, 0x00000000, },	{ 0x0001151e, 0x20000000, },
    372 	{ 0x00011620, 0x00000000, },	{ 0x00011622, 0x20000000, },
    373 	{ 0x00011624, 0x00000000, },	{ 0x00011626, 0x20000000, },
    374 	{ 0x00011628, 0x00000000, },	{ 0x0001162a, 0x20000000, },
    375 	{ 0x0001162c, 0x00000000, },	{ 0x0001162e, 0x20000000, },
    376 	{ 0x00011730, 0x00000000, },	{ 0x00011732, 0x20000000, },
    377 	{ 0x00011734, 0x00000000, },	{ 0x00011736, 0x20000000, },
    378 	{ 0x00011738, 0x00000000, },	{ 0x0001173a, 0x20000000, },
    379 	{ 0x0001173c, 0x00000000, },	{ 0x0001173e, 0x20000000, },
    380 	{ 0x00011800, 0x00000000, },	{ 0x00011802, 0x20000000, },
    381 	{ 0x00011804, 0x00000000, },	{ 0x00011806, 0x20000000, },
    382 	{ 0x00011808, 0x00000000, },	{ 0x0001180a, 0x20000000, },
    383 	{ 0x0001180c, 0x00000000, },	{ 0x0001180e, 0x20000000, },
    384 	{ 0x00011910, 0x00000000, },	{ 0x00011912, 0x20000000, },
    385 	{ 0x00011914, 0x00000000, },	{ 0x00011916, 0x20000000, },
    386 	{ 0x00011918, 0x00000000, },	{ 0x0001191a, 0x20000000, },
    387 	{ 0x0001191c, 0x00000000, },	{ 0x0001191e, 0x20000000, },
    388 	{ 0x00011a20, 0x00000000, },	{ 0x00011a22, 0x20000000, },
    389 	{ 0x00011a24, 0x00000000, },	{ 0x00011a26, 0x20000000, },
    390 	{ 0x00011a28, 0x00000000, },	{ 0x00011a2a, 0x20000000, },
    391 	{ 0x00011a2c, 0x00000000, },	{ 0x00011a2e, 0x20000000, },
    392 	{ 0x00011b30, 0x00000000, },	{ 0x00011b32, 0x20000000, },
    393 	{ 0x00011b34, 0x00000000, },	{ 0x00011b36, 0x20000000, },
    394 	{ 0x00011b38, 0x00000000, },	{ 0x00011b3a, 0x20000000, },
    395 	{ 0x00011b3c, 0x00000000, },	{ 0x00011b3e, 0x20000000, },
    396 	{ 0x00011c00, 0x00000000, },	{ 0x00011c02, 0x20000000, },
    397 	{ 0x00011c04, 0x00000000, },	{ 0x00011c06, 0x20000000, },
    398 	{ 0x00011c08, 0x00000000, },	{ 0x00011c0a, 0x20000000, },
    399 	{ 0x00011c0c, 0x00000000, },	{ 0x00011c0e, 0x20000000, },
    400 	{ 0x00011d10, 0x00000000, },	{ 0x00011d12, 0x20000000, },
    401 	{ 0x00011d14, 0x00000000, },	{ 0x00011d16, 0x20000000, },
    402 	{ 0x00011d18, 0x00000000, },	{ 0x00011d1a, 0x20000000, },
    403 	{ 0x00011d1c, 0x00000000, },	{ 0x00011d1e, 0x20000000, },
    404 	{ 0x00011e20, 0x00000000, },	{ 0x00011e22, 0x20000000, },
    405 	{ 0x00011e24, 0x00000000, },	{ 0x00011e26, 0x20000000, },
    406 	{ 0x00011e28, 0x00000000, },	{ 0x00011e2a, 0x20000000, },
    407 	{ 0x00011e2c, 0x00000000, },	{ 0x00011e2e, 0x20000000, },
    408 	{ 0x00011f30, 0x00000000, },	{ 0x00011f32, 0x20000000, },
    409 	{ 0x00011f34, 0x00000000, },	{ 0x00011f36, 0x20000000, },
    410 	{ 0x00011f38, 0x00000000, },	{ 0x00011f3a, 0x20000000, },
    411 	{ 0x00011f3c, 0x00000000, },	{ 0x00011f3e, 0x20000000, }, },
    412 
    413 	{{ 0x00000000, 0x00000000, },	{ 0x00000000, 0x00022000, },
    414 	{ 0x00000000, 0x00040000, },	{ 0x00000000, 0x00062000, },
    415 	{ 0x00000000, 0x00080000, },	{ 0x00000000, 0x000a2000, },
    416 	{ 0x00000000, 0x000c0000, },	{ 0x00000000, 0x000e2000, },
    417 	{ 0x00000000, 0x01100000, },	{ 0x00000000, 0x01122000, },
    418 	{ 0x00000000, 0x01140000, },	{ 0x00000000, 0x01162000, },
    419 	{ 0x00000000, 0x01180000, },	{ 0x00000000, 0x011a2000, },
    420 	{ 0x00000000, 0x011c0000, },	{ 0x00000000, 0x011e2000, },
    421 	{ 0x00000000, 0x02200000, },	{ 0x00000000, 0x02222000, },
    422 	{ 0x00000000, 0x02240000, },	{ 0x00000000, 0x02262000, },
    423 	{ 0x00000000, 0x02280000, },	{ 0x00000000, 0x022a2000, },
    424 	{ 0x00000000, 0x022c0000, },	{ 0x00000000, 0x022e2000, },
    425 	{ 0x00000000, 0x03300000, },	{ 0x00000000, 0x03322000, },
    426 	{ 0x00000000, 0x03340000, },	{ 0x00000000, 0x03362000, },
    427 	{ 0x00000000, 0x03380000, },	{ 0x00000000, 0x033a2000, },
    428 	{ 0x00000000, 0x033c0000, },	{ 0x00000000, 0x033e2000, },
    429 	{ 0x00000000, 0x04000000, },	{ 0x00000000, 0x04022000, },
    430 	{ 0x00000000, 0x04040000, },	{ 0x00000000, 0x04062000, },
    431 	{ 0x00000000, 0x04080000, },	{ 0x00000000, 0x040a2000, },
    432 	{ 0x00000000, 0x040c0000, },	{ 0x00000000, 0x040e2000, },
    433 	{ 0x00000000, 0x05100000, },	{ 0x00000000, 0x05122000, },
    434 	{ 0x00000000, 0x05140000, },	{ 0x00000000, 0x05162000, },
    435 	{ 0x00000000, 0x05180000, },	{ 0x00000000, 0x051a2000, },
    436 	{ 0x00000000, 0x051c0000, },	{ 0x00000000, 0x051e2000, },
    437 	{ 0x00000000, 0x06200000, },	{ 0x00000000, 0x06222000, },
    438 	{ 0x00000000, 0x06240000, },	{ 0x00000000, 0x06262000, },
    439 	{ 0x00000000, 0x06280000, },	{ 0x00000000, 0x062a2000, },
    440 	{ 0x00000000, 0x062c0000, },	{ 0x00000000, 0x062e2000, },
    441 	{ 0x00000000, 0x07300000, },	{ 0x00000000, 0x07322000, },
    442 	{ 0x00000000, 0x07340000, },	{ 0x00000000, 0x07362000, },
    443 	{ 0x00000000, 0x07380000, },	{ 0x00000000, 0x073a2000, },
    444 	{ 0x00000000, 0x073c0000, },	{ 0x00000000, 0x073e2000, },
    445 	{ 0x00000000, 0x08000000, },	{ 0x00000000, 0x08022000, },
    446 	{ 0x00000000, 0x08040000, },	{ 0x00000000, 0x08062000, },
    447 	{ 0x00000000, 0x08080000, },	{ 0x00000000, 0x080a2000, },
    448 	{ 0x00000000, 0x080c0000, },	{ 0x00000000, 0x080e2000, },
    449 	{ 0x00000000, 0x09100000, },	{ 0x00000000, 0x09122000, },
    450 	{ 0x00000000, 0x09140000, },	{ 0x00000000, 0x09162000, },
    451 	{ 0x00000000, 0x09180000, },	{ 0x00000000, 0x091a2000, },
    452 	{ 0x00000000, 0x091c0000, },	{ 0x00000000, 0x091e2000, },
    453 	{ 0x00000000, 0x0a200000, },	{ 0x00000000, 0x0a222000, },
    454 	{ 0x00000000, 0x0a240000, },	{ 0x00000000, 0x0a262000, },
    455 	{ 0x00000000, 0x0a280000, },	{ 0x00000000, 0x0a2a2000, },
    456 	{ 0x00000000, 0x0a2c0000, },	{ 0x00000000, 0x0a2e2000, },
    457 	{ 0x00000000, 0x0b300000, },	{ 0x00000000, 0x0b322000, },
    458 	{ 0x00000000, 0x0b340000, },	{ 0x00000000, 0x0b362000, },
    459 	{ 0x00000000, 0x0b380000, },	{ 0x00000000, 0x0b3a2000, },
    460 	{ 0x00000000, 0x0b3c0000, },	{ 0x00000000, 0x0b3e2000, },
    461 	{ 0x00000000, 0x0c000000, },	{ 0x00000000, 0x0c022000, },
    462 	{ 0x00000000, 0x0c040000, },	{ 0x00000000, 0x0c062000, },
    463 	{ 0x00000000, 0x0c080000, },	{ 0x00000000, 0x0c0a2000, },
    464 	{ 0x00000000, 0x0c0c0000, },	{ 0x00000000, 0x0c0e2000, },
    465 	{ 0x00000000, 0x0d100000, },	{ 0x00000000, 0x0d122000, },
    466 	{ 0x00000000, 0x0d140000, },	{ 0x00000000, 0x0d162000, },
    467 	{ 0x00000000, 0x0d180000, },	{ 0x00000000, 0x0d1a2000, },
    468 	{ 0x00000000, 0x0d1c0000, },	{ 0x00000000, 0x0d1e2000, },
    469 	{ 0x00000000, 0x0e200000, },	{ 0x00000000, 0x0e222000, },
    470 	{ 0x00000000, 0x0e240000, },	{ 0x00000000, 0x0e262000, },
    471 	{ 0x00000000, 0x0e280000, },	{ 0x00000000, 0x0e2a2000, },
    472 	{ 0x00000000, 0x0e2c0000, },	{ 0x00000000, 0x0e2e2000, },
    473 	{ 0x00000000, 0x0f300000, },	{ 0x00000000, 0x0f322000, },
    474 	{ 0x00000000, 0x0f340000, },	{ 0x00000000, 0x0f362000, },
    475 	{ 0x00000000, 0x0f380000, },	{ 0x00000000, 0x0f3a2000, },
    476 	{ 0x00000000, 0x0f3c0000, },	{ 0x00000000, 0x0f3e2000, },
    477 	{ 0x00000001, 0x10000000, },	{ 0x00000001, 0x10022000, },
    478 	{ 0x00000001, 0x10040000, },	{ 0x00000001, 0x10062000, },
    479 	{ 0x00000001, 0x10080000, },	{ 0x00000001, 0x100a2000, },
    480 	{ 0x00000001, 0x100c0000, },	{ 0x00000001, 0x100e2000, },
    481 	{ 0x00000001, 0x11100000, },	{ 0x00000001, 0x11122000, },
    482 	{ 0x00000001, 0x11140000, },	{ 0x00000001, 0x11162000, },
    483 	{ 0x00000001, 0x11180000, },	{ 0x00000001, 0x111a2000, },
    484 	{ 0x00000001, 0x111c0000, },	{ 0x00000001, 0x111e2000, },
    485 	{ 0x00000001, 0x12200000, },	{ 0x00000001, 0x12222000, },
    486 	{ 0x00000001, 0x12240000, },	{ 0x00000001, 0x12262000, },
    487 	{ 0x00000001, 0x12280000, },	{ 0x00000001, 0x122a2000, },
    488 	{ 0x00000001, 0x122c0000, },	{ 0x00000001, 0x122e2000, },
    489 	{ 0x00000001, 0x13300000, },	{ 0x00000001, 0x13322000, },
    490 	{ 0x00000001, 0x13340000, },	{ 0x00000001, 0x13362000, },
    491 	{ 0x00000001, 0x13380000, },	{ 0x00000001, 0x133a2000, },
    492 	{ 0x00000001, 0x133c0000, },	{ 0x00000001, 0x133e2000, },
    493 	{ 0x00000001, 0x14000000, },	{ 0x00000001, 0x14022000, },
    494 	{ 0x00000001, 0x14040000, },	{ 0x00000001, 0x14062000, },
    495 	{ 0x00000001, 0x14080000, },	{ 0x00000001, 0x140a2000, },
    496 	{ 0x00000001, 0x140c0000, },	{ 0x00000001, 0x140e2000, },
    497 	{ 0x00000001, 0x15100000, },	{ 0x00000001, 0x15122000, },
    498 	{ 0x00000001, 0x15140000, },	{ 0x00000001, 0x15162000, },
    499 	{ 0x00000001, 0x15180000, },	{ 0x00000001, 0x151a2000, },
    500 	{ 0x00000001, 0x151c0000, },	{ 0x00000001, 0x151e2000, },
    501 	{ 0x00000001, 0x16200000, },	{ 0x00000001, 0x16222000, },
    502 	{ 0x00000001, 0x16240000, },	{ 0x00000001, 0x16262000, },
    503 	{ 0x00000001, 0x16280000, },	{ 0x00000001, 0x162a2000, },
    504 	{ 0x00000001, 0x162c0000, },	{ 0x00000001, 0x162e2000, },
    505 	{ 0x00000001, 0x17300000, },	{ 0x00000001, 0x17322000, },
    506 	{ 0x00000001, 0x17340000, },	{ 0x00000001, 0x17362000, },
    507 	{ 0x00000001, 0x17380000, },	{ 0x00000001, 0x173a2000, },
    508 	{ 0x00000001, 0x173c0000, },	{ 0x00000001, 0x173e2000, },
    509 	{ 0x00000001, 0x18000000, },	{ 0x00000001, 0x18022000, },
    510 	{ 0x00000001, 0x18040000, },	{ 0x00000001, 0x18062000, },
    511 	{ 0x00000001, 0x18080000, },	{ 0x00000001, 0x180a2000, },
    512 	{ 0x00000001, 0x180c0000, },	{ 0x00000001, 0x180e2000, },
    513 	{ 0x00000001, 0x19100000, },	{ 0x00000001, 0x19122000, },
    514 	{ 0x00000001, 0x19140000, },	{ 0x00000001, 0x19162000, },
    515 	{ 0x00000001, 0x19180000, },	{ 0x00000001, 0x191a2000, },
    516 	{ 0x00000001, 0x191c0000, },	{ 0x00000001, 0x191e2000, },
    517 	{ 0x00000001, 0x1a200000, },	{ 0x00000001, 0x1a222000, },
    518 	{ 0x00000001, 0x1a240000, },	{ 0x00000001, 0x1a262000, },
    519 	{ 0x00000001, 0x1a280000, },	{ 0x00000001, 0x1a2a2000, },
    520 	{ 0x00000001, 0x1a2c0000, },	{ 0x00000001, 0x1a2e2000, },
    521 	{ 0x00000001, 0x1b300000, },	{ 0x00000001, 0x1b322000, },
    522 	{ 0x00000001, 0x1b340000, },	{ 0x00000001, 0x1b362000, },
    523 	{ 0x00000001, 0x1b380000, },	{ 0x00000001, 0x1b3a2000, },
    524 	{ 0x00000001, 0x1b3c0000, },	{ 0x00000001, 0x1b3e2000, },
    525 	{ 0x00000001, 0x1c000000, },	{ 0x00000001, 0x1c022000, },
    526 	{ 0x00000001, 0x1c040000, },	{ 0x00000001, 0x1c062000, },
    527 	{ 0x00000001, 0x1c080000, },	{ 0x00000001, 0x1c0a2000, },
    528 	{ 0x00000001, 0x1c0c0000, },	{ 0x00000001, 0x1c0e2000, },
    529 	{ 0x00000001, 0x1d100000, },	{ 0x00000001, 0x1d122000, },
    530 	{ 0x00000001, 0x1d140000, },	{ 0x00000001, 0x1d162000, },
    531 	{ 0x00000001, 0x1d180000, },	{ 0x00000001, 0x1d1a2000, },
    532 	{ 0x00000001, 0x1d1c0000, },	{ 0x00000001, 0x1d1e2000, },
    533 	{ 0x00000001, 0x1e200000, },	{ 0x00000001, 0x1e222000, },
    534 	{ 0x00000001, 0x1e240000, },	{ 0x00000001, 0x1e262000, },
    535 	{ 0x00000001, 0x1e280000, },	{ 0x00000001, 0x1e2a2000, },
    536 	{ 0x00000001, 0x1e2c0000, },	{ 0x00000001, 0x1e2e2000, },
    537 	{ 0x00000001, 0x1f300000, },	{ 0x00000001, 0x1f322000, },
    538 	{ 0x00000001, 0x1f340000, },	{ 0x00000001, 0x1f362000, },
    539 	{ 0x00000001, 0x1f380000, },	{ 0x00000001, 0x1f3a2000, },
    540 	{ 0x00000001, 0x1f3c0000, },	{ 0x00000001, 0x1f3e2000, }, },
    541 
    542 	{{ 0x00000000, 0x00000000, },	{ 0x20000000, 0x00000002, },
    543 	{ 0x00000000, 0x00000004, },	{ 0x20000000, 0x00000006, },
    544 	{ 0x00000000, 0x00000008, },	{ 0x20000000, 0x0000000a, },
    545 	{ 0x00000000, 0x0000000c, },	{ 0x20000000, 0x0000000e, },
    546 	{ 0x00000000, 0x00000110, },	{ 0x20000000, 0x00000112, },
    547 	{ 0x00000000, 0x00000114, },	{ 0x20000000, 0x00000116, },
    548 	{ 0x00000000, 0x00000118, },	{ 0x20000000, 0x0000011a, },
    549 	{ 0x00000000, 0x0000011c, },	{ 0x20000000, 0x0000011e, },
    550 	{ 0x00000000, 0x00000220, },	{ 0x20000000, 0x00000222, },
    551 	{ 0x00000000, 0x00000224, },	{ 0x20000000, 0x00000226, },
    552 	{ 0x00000000, 0x00000228, },	{ 0x20000000, 0x0000022a, },
    553 	{ 0x00000000, 0x0000022c, },	{ 0x20000000, 0x0000022e, },
    554 	{ 0x00000000, 0x00000330, },	{ 0x20000000, 0x00000332, },
    555 	{ 0x00000000, 0x00000334, },	{ 0x20000000, 0x00000336, },
    556 	{ 0x00000000, 0x00000338, },	{ 0x20000000, 0x0000033a, },
    557 	{ 0x00000000, 0x0000033c, },	{ 0x20000000, 0x0000033e, },
    558 	{ 0x00000000, 0x00000400, },	{ 0x20000000, 0x00000402, },
    559 	{ 0x00000000, 0x00000404, },	{ 0x20000000, 0x00000406, },
    560 	{ 0x00000000, 0x00000408, },	{ 0x20000000, 0x0000040a, },
    561 	{ 0x00000000, 0x0000040c, },	{ 0x20000000, 0x0000040e, },
    562 	{ 0x00000000, 0x00000510, },	{ 0x20000000, 0x00000512, },
    563 	{ 0x00000000, 0x00000514, },	{ 0x20000000, 0x00000516, },
    564 	{ 0x00000000, 0x00000518, },	{ 0x20000000, 0x0000051a, },
    565 	{ 0x00000000, 0x0000051c, },	{ 0x20000000, 0x0000051e, },
    566 	{ 0x00000000, 0x00000620, },	{ 0x20000000, 0x00000622, },
    567 	{ 0x00000000, 0x00000624, },	{ 0x20000000, 0x00000626, },
    568 	{ 0x00000000, 0x00000628, },	{ 0x20000000, 0x0000062a, },
    569 	{ 0x00000000, 0x0000062c, },	{ 0x20000000, 0x0000062e, },
    570 	{ 0x00000000, 0x00000730, },	{ 0x20000000, 0x00000732, },
    571 	{ 0x00000000, 0x00000734, },	{ 0x20000000, 0x00000736, },
    572 	{ 0x00000000, 0x00000738, },	{ 0x20000000, 0x0000073a, },
    573 	{ 0x00000000, 0x0000073c, },	{ 0x20000000, 0x0000073e, },
    574 	{ 0x00000000, 0x00000800, },	{ 0x20000000, 0x00000802, },
    575 	{ 0x00000000, 0x00000804, },	{ 0x20000000, 0x00000806, },
    576 	{ 0x00000000, 0x00000808, },	{ 0x20000000, 0x0000080a, },
    577 	{ 0x00000000, 0x0000080c, },	{ 0x20000000, 0x0000080e, },
    578 	{ 0x00000000, 0x00000910, },	{ 0x20000000, 0x00000912, },
    579 	{ 0x00000000, 0x00000914, },	{ 0x20000000, 0x00000916, },
    580 	{ 0x00000000, 0x00000918, },	{ 0x20000000, 0x0000091a, },
    581 	{ 0x00000000, 0x0000091c, },	{ 0x20000000, 0x0000091e, },
    582 	{ 0x00000000, 0x00000a20, },	{ 0x20000000, 0x00000a22, },
    583 	{ 0x00000000, 0x00000a24, },	{ 0x20000000, 0x00000a26, },
    584 	{ 0x00000000, 0x00000a28, },	{ 0x20000000, 0x00000a2a, },
    585 	{ 0x00000000, 0x00000a2c, },	{ 0x20000000, 0x00000a2e, },
    586 	{ 0x00000000, 0x00000b30, },	{ 0x20000000, 0x00000b32, },
    587 	{ 0x00000000, 0x00000b34, },	{ 0x20000000, 0x00000b36, },
    588 	{ 0x00000000, 0x00000b38, },	{ 0x20000000, 0x00000b3a, },
    589 	{ 0x00000000, 0x00000b3c, },	{ 0x20000000, 0x00000b3e, },
    590 	{ 0x00000000, 0x00000c00, },	{ 0x20000000, 0x00000c02, },
    591 	{ 0x00000000, 0x00000c04, },	{ 0x20000000, 0x00000c06, },
    592 	{ 0x00000000, 0x00000c08, },	{ 0x20000000, 0x00000c0a, },
    593 	{ 0x00000000, 0x00000c0c, },	{ 0x20000000, 0x00000c0e, },
    594 	{ 0x00000000, 0x00000d10, },	{ 0x20000000, 0x00000d12, },
    595 	{ 0x00000000, 0x00000d14, },	{ 0x20000000, 0x00000d16, },
    596 	{ 0x00000000, 0x00000d18, },	{ 0x20000000, 0x00000d1a, },
    597 	{ 0x00000000, 0x00000d1c, },	{ 0x20000000, 0x00000d1e, },
    598 	{ 0x00000000, 0x00000e20, },	{ 0x20000000, 0x00000e22, },
    599 	{ 0x00000000, 0x00000e24, },	{ 0x20000000, 0x00000e26, },
    600 	{ 0x00000000, 0x00000e28, },	{ 0x20000000, 0x00000e2a, },
    601 	{ 0x00000000, 0x00000e2c, },	{ 0x20000000, 0x00000e2e, },
    602 	{ 0x00000000, 0x00000f30, },	{ 0x20000000, 0x00000f32, },
    603 	{ 0x00000000, 0x00000f34, },	{ 0x20000000, 0x00000f36, },
    604 	{ 0x00000000, 0x00000f38, },	{ 0x20000000, 0x00000f3a, },
    605 	{ 0x00000000, 0x00000f3c, },	{ 0x20000000, 0x00000f3e, },
    606 	{ 0x00000000, 0x00011000, },	{ 0x20000000, 0x00011002, },
    607 	{ 0x00000000, 0x00011004, },	{ 0x20000000, 0x00011006, },
    608 	{ 0x00000000, 0x00011008, },	{ 0x20000000, 0x0001100a, },
    609 	{ 0x00000000, 0x0001100c, },	{ 0x20000000, 0x0001100e, },
    610 	{ 0x00000000, 0x00011110, },	{ 0x20000000, 0x00011112, },
    611 	{ 0x00000000, 0x00011114, },	{ 0x20000000, 0x00011116, },
    612 	{ 0x00000000, 0x00011118, },	{ 0x20000000, 0x0001111a, },
    613 	{ 0x00000000, 0x0001111c, },	{ 0x20000000, 0x0001111e, },
    614 	{ 0x00000000, 0x00011220, },	{ 0x20000000, 0x00011222, },
    615 	{ 0x00000000, 0x00011224, },	{ 0x20000000, 0x00011226, },
    616 	{ 0x00000000, 0x00011228, },	{ 0x20000000, 0x0001122a, },
    617 	{ 0x00000000, 0x0001122c, },	{ 0x20000000, 0x0001122e, },
    618 	{ 0x00000000, 0x00011330, },	{ 0x20000000, 0x00011332, },
    619 	{ 0x00000000, 0x00011334, },	{ 0x20000000, 0x00011336, },
    620 	{ 0x00000000, 0x00011338, },	{ 0x20000000, 0x0001133a, },
    621 	{ 0x00000000, 0x0001133c, },	{ 0x20000000, 0x0001133e, },
    622 	{ 0x00000000, 0x00011400, },	{ 0x20000000, 0x00011402, },
    623 	{ 0x00000000, 0x00011404, },	{ 0x20000000, 0x00011406, },
    624 	{ 0x00000000, 0x00011408, },	{ 0x20000000, 0x0001140a, },
    625 	{ 0x00000000, 0x0001140c, },	{ 0x20000000, 0x0001140e, },
    626 	{ 0x00000000, 0x00011510, },	{ 0x20000000, 0x00011512, },
    627 	{ 0x00000000, 0x00011514, },	{ 0x20000000, 0x00011516, },
    628 	{ 0x00000000, 0x00011518, },	{ 0x20000000, 0x0001151a, },
    629 	{ 0x00000000, 0x0001151c, },	{ 0x20000000, 0x0001151e, },
    630 	{ 0x00000000, 0x00011620, },	{ 0x20000000, 0x00011622, },
    631 	{ 0x00000000, 0x00011624, },	{ 0x20000000, 0x00011626, },
    632 	{ 0x00000000, 0x00011628, },	{ 0x20000000, 0x0001162a, },
    633 	{ 0x00000000, 0x0001162c, },	{ 0x20000000, 0x0001162e, },
    634 	{ 0x00000000, 0x00011730, },	{ 0x20000000, 0x00011732, },
    635 	{ 0x00000000, 0x00011734, },	{ 0x20000000, 0x00011736, },
    636 	{ 0x00000000, 0x00011738, },	{ 0x20000000, 0x0001173a, },
    637 	{ 0x00000000, 0x0001173c, },	{ 0x20000000, 0x0001173e, },
    638 	{ 0x00000000, 0x00011800, },	{ 0x20000000, 0x00011802, },
    639 	{ 0x00000000, 0x00011804, },	{ 0x20000000, 0x00011806, },
    640 	{ 0x00000000, 0x00011808, },	{ 0x20000000, 0x0001180a, },
    641 	{ 0x00000000, 0x0001180c, },	{ 0x20000000, 0x0001180e, },
    642 	{ 0x00000000, 0x00011910, },	{ 0x20000000, 0x00011912, },
    643 	{ 0x00000000, 0x00011914, },	{ 0x20000000, 0x00011916, },
    644 	{ 0x00000000, 0x00011918, },	{ 0x20000000, 0x0001191a, },
    645 	{ 0x00000000, 0x0001191c, },	{ 0x20000000, 0x0001191e, },
    646 	{ 0x00000000, 0x00011a20, },	{ 0x20000000, 0x00011a22, },
    647 	{ 0x00000000, 0x00011a24, },	{ 0x20000000, 0x00011a26, },
    648 	{ 0x00000000, 0x00011a28, },	{ 0x20000000, 0x00011a2a, },
    649 	{ 0x00000000, 0x00011a2c, },	{ 0x20000000, 0x00011a2e, },
    650 	{ 0x00000000, 0x00011b30, },	{ 0x20000000, 0x00011b32, },
    651 	{ 0x00000000, 0x00011b34, },	{ 0x20000000, 0x00011b36, },
    652 	{ 0x00000000, 0x00011b38, },	{ 0x20000000, 0x00011b3a, },
    653 	{ 0x00000000, 0x00011b3c, },	{ 0x20000000, 0x00011b3e, },
    654 	{ 0x00000000, 0x00011c00, },	{ 0x20000000, 0x00011c02, },
    655 	{ 0x00000000, 0x00011c04, },	{ 0x20000000, 0x00011c06, },
    656 	{ 0x00000000, 0x00011c08, },	{ 0x20000000, 0x00011c0a, },
    657 	{ 0x00000000, 0x00011c0c, },	{ 0x20000000, 0x00011c0e, },
    658 	{ 0x00000000, 0x00011d10, },	{ 0x20000000, 0x00011d12, },
    659 	{ 0x00000000, 0x00011d14, },	{ 0x20000000, 0x00011d16, },
    660 	{ 0x00000000, 0x00011d18, },	{ 0x20000000, 0x00011d1a, },
    661 	{ 0x00000000, 0x00011d1c, },	{ 0x20000000, 0x00011d1e, },
    662 	{ 0x00000000, 0x00011e20, },	{ 0x20000000, 0x00011e22, },
    663 	{ 0x00000000, 0x00011e24, },	{ 0x20000000, 0x00011e26, },
    664 	{ 0x00000000, 0x00011e28, },	{ 0x20000000, 0x00011e2a, },
    665 	{ 0x00000000, 0x00011e2c, },	{ 0x20000000, 0x00011e2e, },
    666 	{ 0x00000000, 0x00011f30, },	{ 0x20000000, 0x00011f32, },
    667 	{ 0x00000000, 0x00011f34, },	{ 0x20000000, 0x00011f36, },
    668 	{ 0x00000000, 0x00011f38, },	{ 0x20000000, 0x00011f3a, },
    669 	{ 0x00000000, 0x00011f3c, },	{ 0x20000000, 0x00011f3e, }, }
    670 };
    671 
    672 /*
    673  * The 8 selection functions.
    674  * 8 functions to map 6 bits to 64 bits
    675  */
    676 const	uint32_t  S_tab[8][64] = {
    677 	{
    678 		0xe0000000U, 0x00000000U, 0x40000000U, 0xf0000000U,
    679 		0xd0000000U, 0x70000000U, 0x10000000U, 0x40000000U,
    680 		0x20000000U, 0xe0000000U, 0xf0000000U, 0x20000000U,
    681 		0xb0000000U, 0xd0000000U, 0x80000000U, 0x10000000U,
    682 		0x30000000U, 0xa0000000U, 0xa0000000U, 0x60000000U,
    683 		0x60000000U, 0xc0000000U, 0xc0000000U, 0xb0000000U,
    684 		0x50000000U, 0x90000000U, 0x90000000U, 0x50000000U,
    685 		0x00000000U, 0x30000000U, 0x70000000U, 0x80000000U,
    686 		0x40000000U, 0xf0000000U, 0x10000000U, 0xc0000000U,
    687 		0xe0000000U, 0x80000000U, 0x80000000U, 0x20000000U,
    688 		0xd0000000U, 0x40000000U, 0x60000000U, 0x90000000U,
    689 		0x20000000U, 0x10000000U, 0xb0000000U, 0x70000000U,
    690 		0xf0000000U, 0x50000000U, 0xc0000000U, 0xb0000000U,
    691 		0x90000000U, 0x30000000U, 0x70000000U, 0xe0000000U,
    692 		0x30000000U, 0xa0000000U, 0xa0000000U, 0x00000000U,
    693 		0x50000000U, 0x60000000U, 0x00000000U, 0xd0000000U,
    694 	},
    695 	{
    696 		0x0f000000U, 0x03000000U, 0x01000000U, 0x0d000000U,
    697 		0x08000000U, 0x04000000U, 0x0e000000U, 0x07000000U,
    698 		0x06000000U, 0x0f000000U, 0x0b000000U, 0x02000000U,
    699 		0x03000000U, 0x08000000U, 0x04000000U, 0x0e000000U,
    700 		0x09000000U, 0x0c000000U, 0x07000000U, 0x00000000U,
    701 		0x02000000U, 0x01000000U, 0x0d000000U, 0x0a000000U,
    702 		0x0c000000U, 0x06000000U, 0x00000000U, 0x09000000U,
    703 		0x05000000U, 0x0b000000U, 0x0a000000U, 0x05000000U,
    704 		0x00000000U, 0x0d000000U, 0x0e000000U, 0x08000000U,
    705 		0x07000000U, 0x0a000000U, 0x0b000000U, 0x01000000U,
    706 		0x0a000000U, 0x03000000U, 0x04000000U, 0x0f000000U,
    707 		0x0d000000U, 0x04000000U, 0x01000000U, 0x02000000U,
    708 		0x05000000U, 0x0b000000U, 0x08000000U, 0x06000000U,
    709 		0x0c000000U, 0x07000000U, 0x06000000U, 0x0c000000U,
    710 		0x09000000U, 0x00000000U, 0x03000000U, 0x05000000U,
    711 		0x02000000U, 0x0e000000U, 0x0f000000U, 0x09000000U,
    712 	},
    713 	{
    714 		0x00a00000U, 0x00d00000U, 0x00000000U, 0x00700000U,
    715 		0x00900000U, 0x00000000U, 0x00e00000U, 0x00900000U,
    716 		0x00600000U, 0x00300000U, 0x00300000U, 0x00400000U,
    717 		0x00f00000U, 0x00600000U, 0x00500000U, 0x00a00000U,
    718 		0x00100000U, 0x00200000U, 0x00d00000U, 0x00800000U,
    719 		0x00c00000U, 0x00500000U, 0x00700000U, 0x00e00000U,
    720 		0x00b00000U, 0x00c00000U, 0x00400000U, 0x00b00000U,
    721 		0x00200000U, 0x00f00000U, 0x00800000U, 0x00100000U,
    722 		0x00d00000U, 0x00100000U, 0x00600000U, 0x00a00000U,
    723 		0x00400000U, 0x00d00000U, 0x00900000U, 0x00000000U,
    724 		0x00800000U, 0x00600000U, 0x00f00000U, 0x00900000U,
    725 		0x00300000U, 0x00800000U, 0x00000000U, 0x00700000U,
    726 		0x00b00000U, 0x00400000U, 0x00100000U, 0x00f00000U,
    727 		0x00200000U, 0x00e00000U, 0x00c00000U, 0x00300000U,
    728 		0x00500000U, 0x00b00000U, 0x00a00000U, 0x00500000U,
    729 		0x00e00000U, 0x00200000U, 0x00700000U, 0x00c00000U,
    730 	},
    731 	{
    732 		0x00070000U, 0x000d0000U, 0x000d0000, 0x00080000U,
    733 		0x000e0000U, 0x000b0000U, 0x00030000, 0x00050000U,
    734 		0x00000000U, 0x00060000U, 0x00060000, 0x000f0000U,
    735 		0x00090000U, 0x00000000U, 0x000a0000, 0x00030000U,
    736 		0x00010000U, 0x00040000U, 0x00020000, 0x00070000U,
    737 		0x00080000U, 0x00020000U, 0x00050000, 0x000c0000U,
    738 		0x000b0000U, 0x00010000U, 0x000c0000, 0x000a0000U,
    739 		0x00040000U, 0x000e0000U, 0x000f0000, 0x00090000U,
    740 		0x000a0000U, 0x00030000U, 0x00060000, 0x000f0000U,
    741 		0x00090000U, 0x00000000U, 0x00000000, 0x00060000U,
    742 		0x000c0000U, 0x000a0000U, 0x000b0000, 0x00010000U,
    743 		0x00070000U, 0x000d0000U, 0x000d0000, 0x00080000U,
    744 		0x000f0000U, 0x00090000U, 0x00010000, 0x00040000U,
    745 		0x00030000U, 0x00050000U, 0x000e0000, 0x000b0000U,
    746 		0x00050000U, 0x000c0000U, 0x00020000, 0x00070000U,
    747 		0x00080000U, 0x00020000U, 0x00040000, 0x000e0000U,
    748 	},
    749 	{
    750 		0x00002000U, 0x0000e000U, 0x0000c000U, 0x0000b000U,
    751 		0x00004000U, 0x00002000U, 0x00001000U, 0x0000c000U,
    752 		0x00007000U, 0x00004000U, 0x0000a000U, 0x00007000U,
    753 		0x0000b000U,