2005-07-11 05:16:55 +04:00
/* GENERATE FILE from gen-des.pl, do not edit */
/* pc1_c_3 bit pattern 5 13 21 */
static int pc1_c_3 [ 8 ] = {
2008-10-27 13:35:07 +03:00
0x00000000 , 0x00000010 , 0x00001000 , 0x00001010 ,
2005-07-11 05:16:55 +04:00
0x00100000 , 0x00100010 , 0x00101000 , 0x00101010
} ;
/* pc1_c_4 bit pattern 1 9 17 25 */
static int pc1_c_4 [ 16 ] = {
2008-10-27 13:35:07 +03:00
0x00000000 , 0x00000001 , 0x00000100 , 0x00000101 ,
0x00010000 , 0x00010001 , 0x00010100 , 0x00010101 ,
0x01000000 , 0x01000001 , 0x01000100 , 0x01000101 ,
2005-07-11 05:16:55 +04:00
0x01010000 , 0x01010001 , 0x01010100 , 0x01010101
} ;
/* pc1_d_3 bit pattern 49 41 33 */
static int pc1_d_3 [ 8 ] = {
2008-10-27 13:35:07 +03:00
0x00000000 , 0x01000000 , 0x00010000 , 0x01010000 ,
2005-07-11 05:16:55 +04:00
0x00000100 , 0x01000100 , 0x00010100 , 0x01010100
} ;
/* pc1_d_4 bit pattern 57 53 45 37 */
static int pc1_d_4 [ 16 ] = {
2008-10-27 13:35:07 +03:00
0x00000000 , 0x00100000 , 0x00001000 , 0x00101000 ,
0x00000010 , 0x00100010 , 0x00001010 , 0x00101010 ,
0x00000001 , 0x00100001 , 0x00001001 , 0x00101001 ,
2005-07-11 05:16:55 +04:00
0x00000011 , 0x00100011 , 0x00001011 , 0x00101011
} ;
/* pc2_c_1 bit pattern 5 24 7 16 6 10 */
static int pc2_c_1 [ 64 ] = {
2008-10-27 13:35:07 +03:00
0x00000000 , 0x00004000 , 0x00040000 , 0x00044000 ,
0x00000100 , 0x00004100 , 0x00040100 , 0x00044100 ,
0x00020000 , 0x00024000 , 0x00060000 , 0x00064000 ,
0x00020100 , 0x00024100 , 0x00060100 , 0x00064100 ,
0x00000001 , 0x00004001 , 0x00040001 , 0x00044001 ,
0x00000101 , 0x00004101 , 0x00040101 , 0x00044101 ,
0x00020001 , 0x00024001 , 0x00060001 , 0x00064001 ,
0x00020101 , 0x00024101 , 0x00060101 , 0x00064101 ,
0x00080000 , 0x00084000 , 0x000c0000 , 0x000c4000 ,
0x00080100 , 0x00084100 , 0x000c0100 , 0x000c4100 ,
0x000a0000 , 0x000a4000 , 0x000e0000 , 0x000e4000 ,
0x000a0100 , 0x000a4100 , 0x000e0100 , 0x000e4100 ,
0x00080001 , 0x00084001 , 0x000c0001 , 0x000c4001 ,
0x00080101 , 0x00084101 , 0x000c0101 , 0x000c4101 ,
0x000a0001 , 0x000a4001 , 0x000e0001 , 0x000e4001 ,
2005-07-11 05:16:55 +04:00
0x000a0101 , 0x000a4101 , 0x000e0101 , 0x000e4101
} ;
/* pc2_c_2 bit pattern 20 18 12 3 15 23 */
static int pc2_c_2 [ 64 ] = {
2008-10-27 13:35:07 +03:00
0x00000000 , 0x00000002 , 0x00000200 , 0x00000202 ,
0x00200000 , 0x00200002 , 0x00200200 , 0x00200202 ,
0x00001000 , 0x00001002 , 0x00001200 , 0x00001202 ,
0x00201000 , 0x00201002 , 0x00201200 , 0x00201202 ,
0x00000040 , 0x00000042 , 0x00000240 , 0x00000242 ,
0x00200040 , 0x00200042 , 0x00200240 , 0x00200242 ,
0x00001040 , 0x00001042 , 0x00001240 , 0x00001242 ,
0x00201040 , 0x00201042 , 0x00201240 , 0x00201242 ,
0x00000010 , 0x00000012 , 0x00000210 , 0x00000212 ,
0x00200010 , 0x00200012 , 0x00200210 , 0x00200212 ,
0x00001010 , 0x00001012 , 0x00001210 , 0x00001212 ,
0x00201010 , 0x00201012 , 0x00201210 , 0x00201212 ,
0x00000050 , 0x00000052 , 0x00000250 , 0x00000252 ,
0x00200050 , 0x00200052 , 0x00200250 , 0x00200252 ,
0x00001050 , 0x00001052 , 0x00001250 , 0x00001252 ,
2005-07-11 05:16:55 +04:00
0x00201050 , 0x00201052 , 0x00201250 , 0x00201252
} ;
/* pc2_c_3 bit pattern 1 9 19 2 14 22 */
static int pc2_c_3 [ 64 ] = {
2008-10-27 13:35:07 +03:00
0x00000000 , 0x00000004 , 0x00000400 , 0x00000404 ,
0x00400000 , 0x00400004 , 0x00400400 , 0x00400404 ,
0x00000020 , 0x00000024 , 0x00000420 , 0x00000424 ,
0x00400020 , 0x00400024 , 0x00400420 , 0x00400424 ,
0x00008000 , 0x00008004 , 0x00008400 , 0x00008404 ,
0x00408000 , 0x00408004 , 0x00408400 , 0x00408404 ,
0x00008020 , 0x00008024 , 0x00008420 , 0x00008424 ,
0x00408020 , 0x00408024 , 0x00408420 , 0x00408424 ,
0x00800000 , 0x00800004 , 0x00800400 , 0x00800404 ,
0x00c00000 , 0x00c00004 , 0x00c00400 , 0x00c00404 ,
0x00800020 , 0x00800024 , 0x00800420 , 0x00800424 ,
0x00c00020 , 0x00c00024 , 0x00c00420 , 0x00c00424 ,
0x00808000 , 0x00808004 , 0x00808400 , 0x00808404 ,
0x00c08000 , 0x00c08004 , 0x00c08400 , 0x00c08404 ,
0x00808020 , 0x00808024 , 0x00808420 , 0x00808424 ,
2005-07-11 05:16:55 +04:00
0x00c08020 , 0x00c08024 , 0x00c08420 , 0x00c08424
} ;
/* pc2_c_4 bit pattern 11 13 4 17 21 8 */
static int pc2_c_4 [ 64 ] = {
2008-10-27 13:35:07 +03:00
0x00000000 , 0x00010000 , 0x00000008 , 0x00010008 ,
0x00000080 , 0x00010080 , 0x00000088 , 0x00010088 ,
0x00100000 , 0x00110000 , 0x00100008 , 0x00110008 ,
0x00100080 , 0x00110080 , 0x00100088 , 0x00110088 ,
0x00000800 , 0x00010800 , 0x00000808 , 0x00010808 ,
0x00000880 , 0x00010880 , 0x00000888 , 0x00010888 ,
0x00100800 , 0x00110800 , 0x00100808 , 0x00110808 ,
0x00100880 , 0x00110880 , 0x00100888 , 0x00110888 ,
0x00002000 , 0x00012000 , 0x00002008 , 0x00012008 ,
0x00002080 , 0x00012080 , 0x00002088 , 0x00012088 ,
0x00102000 , 0x00112000 , 0x00102008 , 0x00112008 ,
0x00102080 , 0x00112080 , 0x00102088 , 0x00112088 ,
0x00002800 , 0x00012800 , 0x00002808 , 0x00012808 ,
0x00002880 , 0x00012880 , 0x00002888 , 0x00012888 ,
0x00102800 , 0x00112800 , 0x00102808 , 0x00112808 ,
2005-07-11 05:16:55 +04:00
0x00102880 , 0x00112880 , 0x00102888 , 0x00112888
} ;
/* pc2_d_1 bit pattern 51 35 31 52 39 45 */
static int pc2_d_1 [ 64 ] = {
2008-10-27 13:35:07 +03:00
0x00000000 , 0x00000080 , 0x00002000 , 0x00002080 ,
0x00000001 , 0x00000081 , 0x00002001 , 0x00002081 ,
0x00200000 , 0x00200080 , 0x00202000 , 0x00202080 ,
0x00200001 , 0x00200081 , 0x00202001 , 0x00202081 ,
0x00020000 , 0x00020080 , 0x00022000 , 0x00022080 ,
0x00020001 , 0x00020081 , 0x00022001 , 0x00022081 ,
0x00220000 , 0x00220080 , 0x00222000 , 0x00222080 ,
0x00220001 , 0x00220081 , 0x00222001 , 0x00222081 ,
0x00000002 , 0x00000082 , 0x00002002 , 0x00002082 ,
0x00000003 , 0x00000083 , 0x00002003 , 0x00002083 ,
0x00200002 , 0x00200082 , 0x00202002 , 0x00202082 ,
0x00200003 , 0x00200083 , 0x00202003 , 0x00202083 ,
0x00020002 , 0x00020082 , 0x00022002 , 0x00022082 ,
0x00020003 , 0x00020083 , 0x00022003 , 0x00022083 ,
0x00220002 , 0x00220082 , 0x00222002 , 0x00222082 ,
2005-07-11 05:16:55 +04:00
0x00220003 , 0x00220083 , 0x00222003 , 0x00222083
} ;
/* pc2_d_2 bit pattern 50 32 43 36 29 48 */
static int pc2_d_2 [ 64 ] = {
2008-10-27 13:35:07 +03:00
0x00000000 , 0x00000010 , 0x00800000 , 0x00800010 ,
0x00010000 , 0x00010010 , 0x00810000 , 0x00810010 ,
0x00000200 , 0x00000210 , 0x00800200 , 0x00800210 ,
0x00010200 , 0x00010210 , 0x00810200 , 0x00810210 ,
0x00100000 , 0x00100010 , 0x00900000 , 0x00900010 ,
0x00110000 , 0x00110010 , 0x00910000 , 0x00910010 ,
0x00100200 , 0x00100210 , 0x00900200 , 0x00900210 ,
0x00110200 , 0x00110210 , 0x00910200 , 0x00910210 ,
0x00000004 , 0x00000014 , 0x00800004 , 0x00800014 ,
0x00010004 , 0x00010014 , 0x00810004 , 0x00810014 ,
0x00000204 , 0x00000214 , 0x00800204 , 0x00800214 ,
0x00010204 , 0x00010214 , 0x00810204 , 0x00810214 ,
0x00100004 , 0x00100014 , 0x00900004 , 0x00900014 ,
0x00110004 , 0x00110014 , 0x00910004 , 0x00910014 ,
0x00100204 , 0x00100214 , 0x00900204 , 0x00900214 ,
2005-07-11 05:16:55 +04:00
0x00110204 , 0x00110214 , 0x00910204 , 0x00910214
} ;
/* pc2_d_3 bit pattern 41 38 47 33 40 42 */
static int pc2_d_3 [ 64 ] = {
2008-10-27 13:35:07 +03:00
0x00000000 , 0x00000400 , 0x00001000 , 0x00001400 ,
0x00080000 , 0x00080400 , 0x00081000 , 0x00081400 ,
0x00000020 , 0x00000420 , 0x00001020 , 0x00001420 ,
0x00080020 , 0x00080420 , 0x00081020 , 0x00081420 ,
0x00004000 , 0x00004400 , 0x00005000 , 0x00005400 ,
0x00084000 , 0x00084400 , 0x00085000 , 0x00085400 ,
0x00004020 , 0x00004420 , 0x00005020 , 0x00005420 ,
0x00084020 , 0x00084420 , 0x00085020 , 0x00085420 ,
0x00000800 , 0x00000c00 , 0x00001800 , 0x00001c00 ,
0x00080800 , 0x00080c00 , 0x00081800 , 0x00081c00 ,
0x00000820 , 0x00000c20 , 0x00001820 , 0x00001c20 ,
0x00080820 , 0x00080c20 , 0x00081820 , 0x00081c20 ,
0x00004800 , 0x00004c00 , 0x00005800 , 0x00005c00 ,
0x00084800 , 0x00084c00 , 0x00085800 , 0x00085c00 ,
0x00004820 , 0x00004c20 , 0x00005820 , 0x00005c20 ,
2005-07-11 05:16:55 +04:00
0x00084820 , 0x00084c20 , 0x00085820 , 0x00085c20
} ;
/* pc2_d_4 bit pattern 49 37 30 46 34 44 */
static int pc2_d_4 [ 64 ] = {
2008-10-27 13:35:07 +03:00
0x00000000 , 0x00000100 , 0x00040000 , 0x00040100 ,
0x00000040 , 0x00000140 , 0x00040040 , 0x00040140 ,
0x00400000 , 0x00400100 , 0x00440000 , 0x00440100 ,
0x00400040 , 0x00400140 , 0x00440040 , 0x00440140 ,
0x00008000 , 0x00008100 , 0x00048000 , 0x00048100 ,
0x00008040 , 0x00008140 , 0x00048040 , 0x00048140 ,
0x00408000 , 0x00408100 , 0x00448000 , 0x00448100 ,
0x00408040 , 0x00408140 , 0x00448040 , 0x00448140 ,
0x00000008 , 0x00000108 , 0x00040008 , 0x00040108 ,
0x00000048 , 0x00000148 , 0x00040048 , 0x00040148 ,
0x00400008 , 0x00400108 , 0x00440008 , 0x00440108 ,
0x00400048 , 0x00400148 , 0x00440048 , 0x00440148 ,
0x00008008 , 0x00008108 , 0x00048008 , 0x00048108 ,
0x00008048 , 0x00008148 , 0x00048048 , 0x00048148 ,
0x00408008 , 0x00408108 , 0x00448008 , 0x00448108 ,
2005-07-11 05:16:55 +04:00
0x00408048 , 0x00408148 , 0x00448048 , 0x00448148
} ;
2008-10-27 13:35:07 +03:00
static unsigned char odd_parity [ 256 ] = {
2005-07-11 05:16:55 +04:00
1 , 1 , 2 , 2 , 4 , 4 , 7 , 7 , 8 , 8 , 11 , 11 , 13 , 13 , 14 , 14 ,
16 , 16 , 19 , 19 , 21 , 21 , 22 , 22 , 25 , 25 , 26 , 26 , 28 , 28 , 31 , 31 ,
32 , 32 , 35 , 35 , 37 , 37 , 38 , 38 , 41 , 41 , 42 , 42 , 44 , 44 , 47 , 47 ,
49 , 49 , 50 , 50 , 52 , 52 , 55 , 55 , 56 , 56 , 59 , 59 , 61 , 61 , 62 , 62 ,
64 , 64 , 67 , 67 , 69 , 69 , 70 , 70 , 73 , 73 , 74 , 74 , 76 , 76 , 79 , 79 ,
81 , 81 , 82 , 82 , 84 , 84 , 87 , 87 , 88 , 88 , 91 , 91 , 93 , 93 , 94 , 94 ,
97 , 97 , 98 , 98 , 100 , 100 , 103 , 103 , 104 , 104 , 107 , 107 , 109 , 109 , 110 , 110 ,
112 , 112 , 115 , 115 , 117 , 117 , 118 , 118 , 121 , 121 , 122 , 122 , 124 , 124 , 127 , 127 ,
128 , 128 , 131 , 131 , 133 , 133 , 134 , 134 , 137 , 137 , 138 , 138 , 140 , 140 , 143 , 143 ,
145 , 145 , 146 , 146 , 148 , 148 , 151 , 151 , 152 , 152 , 155 , 155 , 157 , 157 , 158 , 158 ,
161 , 161 , 162 , 162 , 164 , 164 , 167 , 167 , 168 , 168 , 171 , 171 , 173 , 173 , 174 , 174 ,
176 , 176 , 179 , 179 , 181 , 181 , 182 , 182 , 185 , 185 , 186 , 186 , 188 , 188 , 191 , 191 ,
193 , 193 , 194 , 194 , 196 , 196 , 199 , 199 , 200 , 200 , 203 , 203 , 205 , 205 , 206 , 206 ,
208 , 208 , 211 , 211 , 213 , 213 , 214 , 214 , 217 , 217 , 218 , 218 , 220 , 220 , 223 , 223 ,
224 , 224 , 227 , 227 , 229 , 229 , 230 , 230 , 233 , 233 , 234 , 234 , 236 , 236 , 239 , 239 ,
241 , 241 , 242 , 242 , 244 , 244 , 247 , 247 , 248 , 248 , 251 , 251 , 253 , 253 , 254 , 254 ,
} ;