~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/crypto/aes_generic.c

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /crypto/aes_generic.c (Version linux-6.11.5) and /crypto/aes_generic.c (Version linux-5.10.228)


  1 /*                                                  1 /*
  2  * Cryptographic API.                               2  * Cryptographic API.
  3  *                                                  3  *
  4  * AES Cipher Algorithm.                            4  * AES Cipher Algorithm.
  5  *                                                  5  *
  6  * Based on Brian Gladman's code.                   6  * Based on Brian Gladman's code.
  7  *                                                  7  *
  8  * Linux developers:                                8  * Linux developers:
  9  *  Alexander Kjeldaas <astor@fast.no>              9  *  Alexander Kjeldaas <astor@fast.no>
 10  *  Herbert Valerio Riedel <hvr@hvrlab.org>        10  *  Herbert Valerio Riedel <hvr@hvrlab.org>
 11  *  Kyle McMartin <kyle@debian.org>                11  *  Kyle McMartin <kyle@debian.org>
 12  *  Adam J. Richter <adam@yggdrasil.com> (conv     12  *  Adam J. Richter <adam@yggdrasil.com> (conversion to 2.5 API).
 13  *                                                 13  *
 14  * This program is free software; you can redi     14  * This program is free software; you can redistribute it and/or modify
 15  * it under the terms of the GNU General Publi     15  * it under the terms of the GNU General Public License as published by
 16  * the Free Software Foundation; either versio     16  * the Free Software Foundation; either version 2 of the License, or
 17  * (at your option) any later version.             17  * (at your option) any later version.
 18  *                                                 18  *
 19  * -------------------------------------------     19  * ---------------------------------------------------------------------------
 20  * Copyright (c) 2002, Dr Brian Gladman <brg@g     20  * Copyright (c) 2002, Dr Brian Gladman <brg@gladman.me.uk>, Worcester, UK.
 21  * All rights reserved.                            21  * All rights reserved.
 22  *                                                 22  *
 23  * LICENSE TERMS                                   23  * LICENSE TERMS
 24  *                                                 24  *
 25  * The free distribution and use of this softw     25  * The free distribution and use of this software in both source and binary
 26  * form is allowed (with or without changes) p     26  * form is allowed (with or without changes) provided that:
 27  *                                                 27  *
 28  *   1. distributions of this source code incl     28  *   1. distributions of this source code include the above copyright
 29  *      notice, this list of conditions and th     29  *      notice, this list of conditions and the following disclaimer;
 30  *                                                 30  *
 31  *   2. distributions in binary form include t     31  *   2. distributions in binary form include the above copyright
 32  *      notice, this list of conditions and th     32  *      notice, this list of conditions and the following disclaimer
 33  *      in the documentation and/or other asso     33  *      in the documentation and/or other associated materials;
 34  *                                                 34  *
 35  *   3. the copyright holder's name is not use     35  *   3. the copyright holder's name is not used to endorse products
 36  *      built using this software without spec     36  *      built using this software without specific written permission.
 37  *                                                 37  *
 38  * ALTERNATIVELY, provided that this notice is     38  * ALTERNATIVELY, provided that this notice is retained in full, this product
 39  * may be distributed under the terms of the G     39  * may be distributed under the terms of the GNU General Public License (GPL),
 40  * in which case the provisions of the GPL app     40  * in which case the provisions of the GPL apply INSTEAD OF those given above.
 41  *                                                 41  *
 42  * DISCLAIMER                                      42  * DISCLAIMER
 43  *                                                 43  *
 44  * This software is provided 'as is' with no e     44  * This software is provided 'as is' with no explicit or implied warranties
 45  * in respect of its properties, including, bu     45  * in respect of its properties, including, but not limited to, correctness
 46  * and/or fitness for purpose.                     46  * and/or fitness for purpose.
 47  * -------------------------------------------     47  * ---------------------------------------------------------------------------
 48  */                                                48  */
 49                                                    49 
 50 #include <crypto/aes.h>                            50 #include <crypto/aes.h>
 51 #include <crypto/algapi.h>                     << 
 52 #include <linux/module.h>                          51 #include <linux/module.h>
 53 #include <linux/init.h>                            52 #include <linux/init.h>
 54 #include <linux/types.h>                           53 #include <linux/types.h>
 55 #include <linux/errno.h>                           54 #include <linux/errno.h>
                                                   >>  55 #include <linux/crypto.h>
 56 #include <asm/byteorder.h>                         56 #include <asm/byteorder.h>
 57 #include <asm/unaligned.h>                         57 #include <asm/unaligned.h>
 58                                                    58 
 59 static inline u8 byte(const u32 x, const unsig     59 static inline u8 byte(const u32 x, const unsigned n)
 60 {                                                  60 {
 61         return x >> (n << 3);                      61         return x >> (n << 3);
 62 }                                                  62 }
 63                                                    63 
 64 /* cacheline-aligned to facilitate prefetching     64 /* cacheline-aligned to facilitate prefetching into cache */
 65 __visible const u32 crypto_ft_tab[4][256] ____     65 __visible const u32 crypto_ft_tab[4][256] ____cacheline_aligned = {
 66         {                                          66         {
 67                 0xa56363c6, 0x847c7cf8, 0x9977     67                 0xa56363c6, 0x847c7cf8, 0x997777ee, 0x8d7b7bf6,
 68                 0x0df2f2ff, 0xbd6b6bd6, 0xb16f     68                 0x0df2f2ff, 0xbd6b6bd6, 0xb16f6fde, 0x54c5c591,
 69                 0x50303060, 0x03010102, 0xa967     69                 0x50303060, 0x03010102, 0xa96767ce, 0x7d2b2b56,
 70                 0x19fefee7, 0x62d7d7b5, 0xe6ab     70                 0x19fefee7, 0x62d7d7b5, 0xe6abab4d, 0x9a7676ec,
 71                 0x45caca8f, 0x9d82821f, 0x40c9     71                 0x45caca8f, 0x9d82821f, 0x40c9c989, 0x877d7dfa,
 72                 0x15fafaef, 0xeb5959b2, 0xc947     72                 0x15fafaef, 0xeb5959b2, 0xc947478e, 0x0bf0f0fb,
 73                 0xecadad41, 0x67d4d4b3, 0xfda2     73                 0xecadad41, 0x67d4d4b3, 0xfda2a25f, 0xeaafaf45,
 74                 0xbf9c9c23, 0xf7a4a453, 0x9672     74                 0xbf9c9c23, 0xf7a4a453, 0x967272e4, 0x5bc0c09b,
 75                 0xc2b7b775, 0x1cfdfde1, 0xae93     75                 0xc2b7b775, 0x1cfdfde1, 0xae93933d, 0x6a26264c,
 76                 0x5a36366c, 0x413f3f7e, 0x02f7     76                 0x5a36366c, 0x413f3f7e, 0x02f7f7f5, 0x4fcccc83,
 77                 0x5c343468, 0xf4a5a551, 0x34e5     77                 0x5c343468, 0xf4a5a551, 0x34e5e5d1, 0x08f1f1f9,
 78                 0x937171e2, 0x73d8d8ab, 0x5331     78                 0x937171e2, 0x73d8d8ab, 0x53313162, 0x3f15152a,
 79                 0x0c040408, 0x52c7c795, 0x6523     79                 0x0c040408, 0x52c7c795, 0x65232346, 0x5ec3c39d,
 80                 0x28181830, 0xa1969637, 0x0f05     80                 0x28181830, 0xa1969637, 0x0f05050a, 0xb59a9a2f,
 81                 0x0907070e, 0x36121224, 0x9b80     81                 0x0907070e, 0x36121224, 0x9b80801b, 0x3de2e2df,
 82                 0x26ebebcd, 0x6927274e, 0xcdb2     82                 0x26ebebcd, 0x6927274e, 0xcdb2b27f, 0x9f7575ea,
 83                 0x1b090912, 0x9e83831d, 0x742c     83                 0x1b090912, 0x9e83831d, 0x742c2c58, 0x2e1a1a34,
 84                 0x2d1b1b36, 0xb26e6edc, 0xee5a     84                 0x2d1b1b36, 0xb26e6edc, 0xee5a5ab4, 0xfba0a05b,
 85                 0xf65252a4, 0x4d3b3b76, 0x61d6     85                 0xf65252a4, 0x4d3b3b76, 0x61d6d6b7, 0xceb3b37d,
 86                 0x7b292952, 0x3ee3e3dd, 0x712f     86                 0x7b292952, 0x3ee3e3dd, 0x712f2f5e, 0x97848413,
 87                 0xf55353a6, 0x68d1d1b9, 0x0000     87                 0xf55353a6, 0x68d1d1b9, 0x00000000, 0x2cededc1,
 88                 0x60202040, 0x1ffcfce3, 0xc8b1     88                 0x60202040, 0x1ffcfce3, 0xc8b1b179, 0xed5b5bb6,
 89                 0xbe6a6ad4, 0x46cbcb8d, 0xd9be     89                 0xbe6a6ad4, 0x46cbcb8d, 0xd9bebe67, 0x4b393972,
 90                 0xde4a4a94, 0xd44c4c98, 0xe858     90                 0xde4a4a94, 0xd44c4c98, 0xe85858b0, 0x4acfcf85,
 91                 0x6bd0d0bb, 0x2aefefc5, 0xe5aa     91                 0x6bd0d0bb, 0x2aefefc5, 0xe5aaaa4f, 0x16fbfbed,
 92                 0xc5434386, 0xd74d4d9a, 0x5533     92                 0xc5434386, 0xd74d4d9a, 0x55333366, 0x94858511,
 93                 0xcf45458a, 0x10f9f9e9, 0x0602     93                 0xcf45458a, 0x10f9f9e9, 0x06020204, 0x817f7ffe,
 94                 0xf05050a0, 0x443c3c78, 0xba9f     94                 0xf05050a0, 0x443c3c78, 0xba9f9f25, 0xe3a8a84b,
 95                 0xf35151a2, 0xfea3a35d, 0xc040     95                 0xf35151a2, 0xfea3a35d, 0xc0404080, 0x8a8f8f05,
 96                 0xad92923f, 0xbc9d9d21, 0x4838     96                 0xad92923f, 0xbc9d9d21, 0x48383870, 0x04f5f5f1,
 97                 0xdfbcbc63, 0xc1b6b677, 0x75da     97                 0xdfbcbc63, 0xc1b6b677, 0x75dadaaf, 0x63212142,
 98                 0x30101020, 0x1affffe5, 0x0ef3     98                 0x30101020, 0x1affffe5, 0x0ef3f3fd, 0x6dd2d2bf,
 99                 0x4ccdcd81, 0x140c0c18, 0x3513     99                 0x4ccdcd81, 0x140c0c18, 0x35131326, 0x2fececc3,
100                 0xe15f5fbe, 0xa2979735, 0xcc44    100                 0xe15f5fbe, 0xa2979735, 0xcc444488, 0x3917172e,
101                 0x57c4c493, 0xf2a7a755, 0x827e    101                 0x57c4c493, 0xf2a7a755, 0x827e7efc, 0x473d3d7a,
102                 0xac6464c8, 0xe75d5dba, 0x2b19    102                 0xac6464c8, 0xe75d5dba, 0x2b191932, 0x957373e6,
103                 0xa06060c0, 0x98818119, 0xd14f    103                 0xa06060c0, 0x98818119, 0xd14f4f9e, 0x7fdcdca3,
104                 0x66222244, 0x7e2a2a54, 0xab90    104                 0x66222244, 0x7e2a2a54, 0xab90903b, 0x8388880b,
105                 0xca46468c, 0x29eeeec7, 0xd3b8    105                 0xca46468c, 0x29eeeec7, 0xd3b8b86b, 0x3c141428,
106                 0x79dedea7, 0xe25e5ebc, 0x1d0b    106                 0x79dedea7, 0xe25e5ebc, 0x1d0b0b16, 0x76dbdbad,
107                 0x3be0e0db, 0x56323264, 0x4e3a    107                 0x3be0e0db, 0x56323264, 0x4e3a3a74, 0x1e0a0a14,
108                 0xdb494992, 0x0a06060c, 0x6c24    108                 0xdb494992, 0x0a06060c, 0x6c242448, 0xe45c5cb8,
109                 0x5dc2c29f, 0x6ed3d3bd, 0xefac    109                 0x5dc2c29f, 0x6ed3d3bd, 0xefacac43, 0xa66262c4,
110                 0xa8919139, 0xa4959531, 0x37e4    110                 0xa8919139, 0xa4959531, 0x37e4e4d3, 0x8b7979f2,
111                 0x32e7e7d5, 0x43c8c88b, 0x5937    111                 0x32e7e7d5, 0x43c8c88b, 0x5937376e, 0xb76d6dda,
112                 0x8c8d8d01, 0x64d5d5b1, 0xd24e    112                 0x8c8d8d01, 0x64d5d5b1, 0xd24e4e9c, 0xe0a9a949,
113                 0xb46c6cd8, 0xfa5656ac, 0x07f4    113                 0xb46c6cd8, 0xfa5656ac, 0x07f4f4f3, 0x25eaeacf,
114                 0xaf6565ca, 0x8e7a7af4, 0xe9ae    114                 0xaf6565ca, 0x8e7a7af4, 0xe9aeae47, 0x18080810,
115                 0xd5baba6f, 0x887878f0, 0x6f25    115                 0xd5baba6f, 0x887878f0, 0x6f25254a, 0x722e2e5c,
116                 0x241c1c38, 0xf1a6a657, 0xc7b4    116                 0x241c1c38, 0xf1a6a657, 0xc7b4b473, 0x51c6c697,
117                 0x23e8e8cb, 0x7cdddda1, 0x9c74    117                 0x23e8e8cb, 0x7cdddda1, 0x9c7474e8, 0x211f1f3e,
118                 0xdd4b4b96, 0xdcbdbd61, 0x868b    118                 0xdd4b4b96, 0xdcbdbd61, 0x868b8b0d, 0x858a8a0f,
119                 0x907070e0, 0x423e3e7c, 0xc4b5    119                 0x907070e0, 0x423e3e7c, 0xc4b5b571, 0xaa6666cc,
120                 0xd8484890, 0x05030306, 0x01f6    120                 0xd8484890, 0x05030306, 0x01f6f6f7, 0x120e0e1c,
121                 0xa36161c2, 0x5f35356a, 0xf957    121                 0xa36161c2, 0x5f35356a, 0xf95757ae, 0xd0b9b969,
122                 0x91868617, 0x58c1c199, 0x271d    122                 0x91868617, 0x58c1c199, 0x271d1d3a, 0xb99e9e27,
123                 0x38e1e1d9, 0x13f8f8eb, 0xb398    123                 0x38e1e1d9, 0x13f8f8eb, 0xb398982b, 0x33111122,
124                 0xbb6969d2, 0x70d9d9a9, 0x898e    124                 0xbb6969d2, 0x70d9d9a9, 0x898e8e07, 0xa7949433,
125                 0xb69b9b2d, 0x221e1e3c, 0x9287    125                 0xb69b9b2d, 0x221e1e3c, 0x92878715, 0x20e9e9c9,
126                 0x49cece87, 0xff5555aa, 0x7828    126                 0x49cece87, 0xff5555aa, 0x78282850, 0x7adfdfa5,
127                 0x8f8c8c03, 0xf8a1a159, 0x8089    127                 0x8f8c8c03, 0xf8a1a159, 0x80898909, 0x170d0d1a,
128                 0xdabfbf65, 0x31e6e6d7, 0xc642    128                 0xdabfbf65, 0x31e6e6d7, 0xc6424284, 0xb86868d0,
129                 0xc3414182, 0xb0999929, 0x772d    129                 0xc3414182, 0xb0999929, 0x772d2d5a, 0x110f0f1e,
130                 0xcbb0b07b, 0xfc5454a8, 0xd6bb    130                 0xcbb0b07b, 0xfc5454a8, 0xd6bbbb6d, 0x3a16162c,
131         }, {                                      131         }, {
132                 0x6363c6a5, 0x7c7cf884, 0x7777    132                 0x6363c6a5, 0x7c7cf884, 0x7777ee99, 0x7b7bf68d,
133                 0xf2f2ff0d, 0x6b6bd6bd, 0x6f6f    133                 0xf2f2ff0d, 0x6b6bd6bd, 0x6f6fdeb1, 0xc5c59154,
134                 0x30306050, 0x01010203, 0x6767    134                 0x30306050, 0x01010203, 0x6767cea9, 0x2b2b567d,
135                 0xfefee719, 0xd7d7b562, 0xabab    135                 0xfefee719, 0xd7d7b562, 0xabab4de6, 0x7676ec9a,
136                 0xcaca8f45, 0x82821f9d, 0xc9c9    136                 0xcaca8f45, 0x82821f9d, 0xc9c98940, 0x7d7dfa87,
137                 0xfafaef15, 0x5959b2eb, 0x4747    137                 0xfafaef15, 0x5959b2eb, 0x47478ec9, 0xf0f0fb0b,
138                 0xadad41ec, 0xd4d4b367, 0xa2a2    138                 0xadad41ec, 0xd4d4b367, 0xa2a25ffd, 0xafaf45ea,
139                 0x9c9c23bf, 0xa4a453f7, 0x7272    139                 0x9c9c23bf, 0xa4a453f7, 0x7272e496, 0xc0c09b5b,
140                 0xb7b775c2, 0xfdfde11c, 0x9393    140                 0xb7b775c2, 0xfdfde11c, 0x93933dae, 0x26264c6a,
141                 0x36366c5a, 0x3f3f7e41, 0xf7f7    141                 0x36366c5a, 0x3f3f7e41, 0xf7f7f502, 0xcccc834f,
142                 0x3434685c, 0xa5a551f4, 0xe5e5    142                 0x3434685c, 0xa5a551f4, 0xe5e5d134, 0xf1f1f908,
143                 0x7171e293, 0xd8d8ab73, 0x3131    143                 0x7171e293, 0xd8d8ab73, 0x31316253, 0x15152a3f,
144                 0x0404080c, 0xc7c79552, 0x2323    144                 0x0404080c, 0xc7c79552, 0x23234665, 0xc3c39d5e,
145                 0x18183028, 0x969637a1, 0x0505    145                 0x18183028, 0x969637a1, 0x05050a0f, 0x9a9a2fb5,
146                 0x07070e09, 0x12122436, 0x8080    146                 0x07070e09, 0x12122436, 0x80801b9b, 0xe2e2df3d,
147                 0xebebcd26, 0x27274e69, 0xb2b2    147                 0xebebcd26, 0x27274e69, 0xb2b27fcd, 0x7575ea9f,
148                 0x0909121b, 0x83831d9e, 0x2c2c    148                 0x0909121b, 0x83831d9e, 0x2c2c5874, 0x1a1a342e,
149                 0x1b1b362d, 0x6e6edcb2, 0x5a5a    149                 0x1b1b362d, 0x6e6edcb2, 0x5a5ab4ee, 0xa0a05bfb,
150                 0x5252a4f6, 0x3b3b764d, 0xd6d6    150                 0x5252a4f6, 0x3b3b764d, 0xd6d6b761, 0xb3b37dce,
151                 0x2929527b, 0xe3e3dd3e, 0x2f2f    151                 0x2929527b, 0xe3e3dd3e, 0x2f2f5e71, 0x84841397,
152                 0x5353a6f5, 0xd1d1b968, 0x0000    152                 0x5353a6f5, 0xd1d1b968, 0x00000000, 0xededc12c,
153                 0x20204060, 0xfcfce31f, 0xb1b1    153                 0x20204060, 0xfcfce31f, 0xb1b179c8, 0x5b5bb6ed,
154                 0x6a6ad4be, 0xcbcb8d46, 0xbebe    154                 0x6a6ad4be, 0xcbcb8d46, 0xbebe67d9, 0x3939724b,
155                 0x4a4a94de, 0x4c4c98d4, 0x5858    155                 0x4a4a94de, 0x4c4c98d4, 0x5858b0e8, 0xcfcf854a,
156                 0xd0d0bb6b, 0xefefc52a, 0xaaaa    156                 0xd0d0bb6b, 0xefefc52a, 0xaaaa4fe5, 0xfbfbed16,
157                 0x434386c5, 0x4d4d9ad7, 0x3333    157                 0x434386c5, 0x4d4d9ad7, 0x33336655, 0x85851194,
158                 0x45458acf, 0xf9f9e910, 0x0202    158                 0x45458acf, 0xf9f9e910, 0x02020406, 0x7f7ffe81,
159                 0x5050a0f0, 0x3c3c7844, 0x9f9f    159                 0x5050a0f0, 0x3c3c7844, 0x9f9f25ba, 0xa8a84be3,
160                 0x5151a2f3, 0xa3a35dfe, 0x4040    160                 0x5151a2f3, 0xa3a35dfe, 0x404080c0, 0x8f8f058a,
161                 0x92923fad, 0x9d9d21bc, 0x3838    161                 0x92923fad, 0x9d9d21bc, 0x38387048, 0xf5f5f104,
162                 0xbcbc63df, 0xb6b677c1, 0xdada    162                 0xbcbc63df, 0xb6b677c1, 0xdadaaf75, 0x21214263,
163                 0x10102030, 0xffffe51a, 0xf3f3    163                 0x10102030, 0xffffe51a, 0xf3f3fd0e, 0xd2d2bf6d,
164                 0xcdcd814c, 0x0c0c1814, 0x1313    164                 0xcdcd814c, 0x0c0c1814, 0x13132635, 0xececc32f,
165                 0x5f5fbee1, 0x979735a2, 0x4444    165                 0x5f5fbee1, 0x979735a2, 0x444488cc, 0x17172e39,
166                 0xc4c49357, 0xa7a755f2, 0x7e7e    166                 0xc4c49357, 0xa7a755f2, 0x7e7efc82, 0x3d3d7a47,
167                 0x6464c8ac, 0x5d5dbae7, 0x1919    167                 0x6464c8ac, 0x5d5dbae7, 0x1919322b, 0x7373e695,
168                 0x6060c0a0, 0x81811998, 0x4f4f    168                 0x6060c0a0, 0x81811998, 0x4f4f9ed1, 0xdcdca37f,
169                 0x22224466, 0x2a2a547e, 0x9090    169                 0x22224466, 0x2a2a547e, 0x90903bab, 0x88880b83,
170                 0x46468cca, 0xeeeec729, 0xb8b8    170                 0x46468cca, 0xeeeec729, 0xb8b86bd3, 0x1414283c,
171                 0xdedea779, 0x5e5ebce2, 0x0b0b    171                 0xdedea779, 0x5e5ebce2, 0x0b0b161d, 0xdbdbad76,
172                 0xe0e0db3b, 0x32326456, 0x3a3a    172                 0xe0e0db3b, 0x32326456, 0x3a3a744e, 0x0a0a141e,
173                 0x494992db, 0x06060c0a, 0x2424    173                 0x494992db, 0x06060c0a, 0x2424486c, 0x5c5cb8e4,
174                 0xc2c29f5d, 0xd3d3bd6e, 0xacac    174                 0xc2c29f5d, 0xd3d3bd6e, 0xacac43ef, 0x6262c4a6,
175                 0x919139a8, 0x959531a4, 0xe4e4    175                 0x919139a8, 0x959531a4, 0xe4e4d337, 0x7979f28b,
176                 0xe7e7d532, 0xc8c88b43, 0x3737    176                 0xe7e7d532, 0xc8c88b43, 0x37376e59, 0x6d6ddab7,
177                 0x8d8d018c, 0xd5d5b164, 0x4e4e    177                 0x8d8d018c, 0xd5d5b164, 0x4e4e9cd2, 0xa9a949e0,
178                 0x6c6cd8b4, 0x5656acfa, 0xf4f4    178                 0x6c6cd8b4, 0x5656acfa, 0xf4f4f307, 0xeaeacf25,
179                 0x6565caaf, 0x7a7af48e, 0xaeae    179                 0x6565caaf, 0x7a7af48e, 0xaeae47e9, 0x08081018,
180                 0xbaba6fd5, 0x7878f088, 0x2525    180                 0xbaba6fd5, 0x7878f088, 0x25254a6f, 0x2e2e5c72,
181                 0x1c1c3824, 0xa6a657f1, 0xb4b4    181                 0x1c1c3824, 0xa6a657f1, 0xb4b473c7, 0xc6c69751,
182                 0xe8e8cb23, 0xdddda17c, 0x7474    182                 0xe8e8cb23, 0xdddda17c, 0x7474e89c, 0x1f1f3e21,
183                 0x4b4b96dd, 0xbdbd61dc, 0x8b8b    183                 0x4b4b96dd, 0xbdbd61dc, 0x8b8b0d86, 0x8a8a0f85,
184                 0x7070e090, 0x3e3e7c42, 0xb5b5    184                 0x7070e090, 0x3e3e7c42, 0xb5b571c4, 0x6666ccaa,
185                 0x484890d8, 0x03030605, 0xf6f6    185                 0x484890d8, 0x03030605, 0xf6f6f701, 0x0e0e1c12,
186                 0x6161c2a3, 0x35356a5f, 0x5757    186                 0x6161c2a3, 0x35356a5f, 0x5757aef9, 0xb9b969d0,
187                 0x86861791, 0xc1c19958, 0x1d1d    187                 0x86861791, 0xc1c19958, 0x1d1d3a27, 0x9e9e27b9,
188                 0xe1e1d938, 0xf8f8eb13, 0x9898    188                 0xe1e1d938, 0xf8f8eb13, 0x98982bb3, 0x11112233,
189                 0x6969d2bb, 0xd9d9a970, 0x8e8e    189                 0x6969d2bb, 0xd9d9a970, 0x8e8e0789, 0x949433a7,
190                 0x9b9b2db6, 0x1e1e3c22, 0x8787    190                 0x9b9b2db6, 0x1e1e3c22, 0x87871592, 0xe9e9c920,
191                 0xcece8749, 0x5555aaff, 0x2828    191                 0xcece8749, 0x5555aaff, 0x28285078, 0xdfdfa57a,
192                 0x8c8c038f, 0xa1a159f8, 0x8989    192                 0x8c8c038f, 0xa1a159f8, 0x89890980, 0x0d0d1a17,
193                 0xbfbf65da, 0xe6e6d731, 0x4242    193                 0xbfbf65da, 0xe6e6d731, 0x424284c6, 0x6868d0b8,
194                 0x414182c3, 0x999929b0, 0x2d2d    194                 0x414182c3, 0x999929b0, 0x2d2d5a77, 0x0f0f1e11,
195                 0xb0b07bcb, 0x5454a8fc, 0xbbbb    195                 0xb0b07bcb, 0x5454a8fc, 0xbbbb6dd6, 0x16162c3a,
196         }, {                                      196         }, {
197                 0x63c6a563, 0x7cf8847c, 0x77ee    197                 0x63c6a563, 0x7cf8847c, 0x77ee9977, 0x7bf68d7b,
198                 0xf2ff0df2, 0x6bd6bd6b, 0x6fde    198                 0xf2ff0df2, 0x6bd6bd6b, 0x6fdeb16f, 0xc59154c5,
199                 0x30605030, 0x01020301, 0x67ce    199                 0x30605030, 0x01020301, 0x67cea967, 0x2b567d2b,
200                 0xfee719fe, 0xd7b562d7, 0xab4d    200                 0xfee719fe, 0xd7b562d7, 0xab4de6ab, 0x76ec9a76,
201                 0xca8f45ca, 0x821f9d82, 0xc989    201                 0xca8f45ca, 0x821f9d82, 0xc98940c9, 0x7dfa877d,
202                 0xfaef15fa, 0x59b2eb59, 0x478e    202                 0xfaef15fa, 0x59b2eb59, 0x478ec947, 0xf0fb0bf0,
203                 0xad41ecad, 0xd4b367d4, 0xa25f    203                 0xad41ecad, 0xd4b367d4, 0xa25ffda2, 0xaf45eaaf,
204                 0x9c23bf9c, 0xa453f7a4, 0x72e4    204                 0x9c23bf9c, 0xa453f7a4, 0x72e49672, 0xc09b5bc0,
205                 0xb775c2b7, 0xfde11cfd, 0x933d    205                 0xb775c2b7, 0xfde11cfd, 0x933dae93, 0x264c6a26,
206                 0x366c5a36, 0x3f7e413f, 0xf7f5    206                 0x366c5a36, 0x3f7e413f, 0xf7f502f7, 0xcc834fcc,
207                 0x34685c34, 0xa551f4a5, 0xe5d1    207                 0x34685c34, 0xa551f4a5, 0xe5d134e5, 0xf1f908f1,
208                 0x71e29371, 0xd8ab73d8, 0x3162    208                 0x71e29371, 0xd8ab73d8, 0x31625331, 0x152a3f15,
209                 0x04080c04, 0xc79552c7, 0x2346    209                 0x04080c04, 0xc79552c7, 0x23466523, 0xc39d5ec3,
210                 0x18302818, 0x9637a196, 0x050a    210                 0x18302818, 0x9637a196, 0x050a0f05, 0x9a2fb59a,
211                 0x070e0907, 0x12243612, 0x801b    211                 0x070e0907, 0x12243612, 0x801b9b80, 0xe2df3de2,
212                 0xebcd26eb, 0x274e6927, 0xb27f    212                 0xebcd26eb, 0x274e6927, 0xb27fcdb2, 0x75ea9f75,
213                 0x09121b09, 0x831d9e83, 0x2c58    213                 0x09121b09, 0x831d9e83, 0x2c58742c, 0x1a342e1a,
214                 0x1b362d1b, 0x6edcb26e, 0x5ab4    214                 0x1b362d1b, 0x6edcb26e, 0x5ab4ee5a, 0xa05bfba0,
215                 0x52a4f652, 0x3b764d3b, 0xd6b7    215                 0x52a4f652, 0x3b764d3b, 0xd6b761d6, 0xb37dceb3,
216                 0x29527b29, 0xe3dd3ee3, 0x2f5e    216                 0x29527b29, 0xe3dd3ee3, 0x2f5e712f, 0x84139784,
217                 0x53a6f553, 0xd1b968d1, 0x0000    217                 0x53a6f553, 0xd1b968d1, 0x00000000, 0xedc12ced,
218                 0x20406020, 0xfce31ffc, 0xb179    218                 0x20406020, 0xfce31ffc, 0xb179c8b1, 0x5bb6ed5b,
219                 0x6ad4be6a, 0xcb8d46cb, 0xbe67    219                 0x6ad4be6a, 0xcb8d46cb, 0xbe67d9be, 0x39724b39,
220                 0x4a94de4a, 0x4c98d44c, 0x58b0    220                 0x4a94de4a, 0x4c98d44c, 0x58b0e858, 0xcf854acf,
221                 0xd0bb6bd0, 0xefc52aef, 0xaa4f    221                 0xd0bb6bd0, 0xefc52aef, 0xaa4fe5aa, 0xfbed16fb,
222                 0x4386c543, 0x4d9ad74d, 0x3366    222                 0x4386c543, 0x4d9ad74d, 0x33665533, 0x85119485,
223                 0x458acf45, 0xf9e910f9, 0x0204    223                 0x458acf45, 0xf9e910f9, 0x02040602, 0x7ffe817f,
224                 0x50a0f050, 0x3c78443c, 0x9f25    224                 0x50a0f050, 0x3c78443c, 0x9f25ba9f, 0xa84be3a8,
225                 0x51a2f351, 0xa35dfea3, 0x4080    225                 0x51a2f351, 0xa35dfea3, 0x4080c040, 0x8f058a8f,
226                 0x923fad92, 0x9d21bc9d, 0x3870    226                 0x923fad92, 0x9d21bc9d, 0x38704838, 0xf5f104f5,
227                 0xbc63dfbc, 0xb677c1b6, 0xdaaf    227                 0xbc63dfbc, 0xb677c1b6, 0xdaaf75da, 0x21426321,
228                 0x10203010, 0xffe51aff, 0xf3fd    228                 0x10203010, 0xffe51aff, 0xf3fd0ef3, 0xd2bf6dd2,
229                 0xcd814ccd, 0x0c18140c, 0x1326    229                 0xcd814ccd, 0x0c18140c, 0x13263513, 0xecc32fec,
230                 0x5fbee15f, 0x9735a297, 0x4488    230                 0x5fbee15f, 0x9735a297, 0x4488cc44, 0x172e3917,
231                 0xc49357c4, 0xa755f2a7, 0x7efc    231                 0xc49357c4, 0xa755f2a7, 0x7efc827e, 0x3d7a473d,
232                 0x64c8ac64, 0x5dbae75d, 0x1932    232                 0x64c8ac64, 0x5dbae75d, 0x19322b19, 0x73e69573,
233                 0x60c0a060, 0x81199881, 0x4f9e    233                 0x60c0a060, 0x81199881, 0x4f9ed14f, 0xdca37fdc,
234                 0x22446622, 0x2a547e2a, 0x903b    234                 0x22446622, 0x2a547e2a, 0x903bab90, 0x880b8388,
235                 0x468cca46, 0xeec729ee, 0xb86b    235                 0x468cca46, 0xeec729ee, 0xb86bd3b8, 0x14283c14,
236                 0xdea779de, 0x5ebce25e, 0x0b16    236                 0xdea779de, 0x5ebce25e, 0x0b161d0b, 0xdbad76db,
237                 0xe0db3be0, 0x32645632, 0x3a74    237                 0xe0db3be0, 0x32645632, 0x3a744e3a, 0x0a141e0a,
238                 0x4992db49, 0x060c0a06, 0x2448    238                 0x4992db49, 0x060c0a06, 0x24486c24, 0x5cb8e45c,
239                 0xc29f5dc2, 0xd3bd6ed3, 0xac43    239                 0xc29f5dc2, 0xd3bd6ed3, 0xac43efac, 0x62c4a662,
240                 0x9139a891, 0x9531a495, 0xe4d3    240                 0x9139a891, 0x9531a495, 0xe4d337e4, 0x79f28b79,
241                 0xe7d532e7, 0xc88b43c8, 0x376e    241                 0xe7d532e7, 0xc88b43c8, 0x376e5937, 0x6ddab76d,
242                 0x8d018c8d, 0xd5b164d5, 0x4e9c    242                 0x8d018c8d, 0xd5b164d5, 0x4e9cd24e, 0xa949e0a9,
243                 0x6cd8b46c, 0x56acfa56, 0xf4f3    243                 0x6cd8b46c, 0x56acfa56, 0xf4f307f4, 0xeacf25ea,
244                 0x65caaf65, 0x7af48e7a, 0xae47    244                 0x65caaf65, 0x7af48e7a, 0xae47e9ae, 0x08101808,
245                 0xba6fd5ba, 0x78f08878, 0x254a    245                 0xba6fd5ba, 0x78f08878, 0x254a6f25, 0x2e5c722e,
246                 0x1c38241c, 0xa657f1a6, 0xb473    246                 0x1c38241c, 0xa657f1a6, 0xb473c7b4, 0xc69751c6,
247                 0xe8cb23e8, 0xdda17cdd, 0x74e8    247                 0xe8cb23e8, 0xdda17cdd, 0x74e89c74, 0x1f3e211f,
248                 0x4b96dd4b, 0xbd61dcbd, 0x8b0d    248                 0x4b96dd4b, 0xbd61dcbd, 0x8b0d868b, 0x8a0f858a,
249                 0x70e09070, 0x3e7c423e, 0xb571    249                 0x70e09070, 0x3e7c423e, 0xb571c4b5, 0x66ccaa66,
250                 0x4890d848, 0x03060503, 0xf6f7    250                 0x4890d848, 0x03060503, 0xf6f701f6, 0x0e1c120e,
251                 0x61c2a361, 0x356a5f35, 0x57ae    251                 0x61c2a361, 0x356a5f35, 0x57aef957, 0xb969d0b9,
252                 0x86179186, 0xc19958c1, 0x1d3a    252                 0x86179186, 0xc19958c1, 0x1d3a271d, 0x9e27b99e,
253                 0xe1d938e1, 0xf8eb13f8, 0x982b    253                 0xe1d938e1, 0xf8eb13f8, 0x982bb398, 0x11223311,
254                 0x69d2bb69, 0xd9a970d9, 0x8e07    254                 0x69d2bb69, 0xd9a970d9, 0x8e07898e, 0x9433a794,
255                 0x9b2db69b, 0x1e3c221e, 0x8715    255                 0x9b2db69b, 0x1e3c221e, 0x87159287, 0xe9c920e9,
256                 0xce8749ce, 0x55aaff55, 0x2850    256                 0xce8749ce, 0x55aaff55, 0x28507828, 0xdfa57adf,
257                 0x8c038f8c, 0xa159f8a1, 0x8909    257                 0x8c038f8c, 0xa159f8a1, 0x89098089, 0x0d1a170d,
258                 0xbf65dabf, 0xe6d731e6, 0x4284    258                 0xbf65dabf, 0xe6d731e6, 0x4284c642, 0x68d0b868,
259                 0x4182c341, 0x9929b099, 0x2d5a    259                 0x4182c341, 0x9929b099, 0x2d5a772d, 0x0f1e110f,
260                 0xb07bcbb0, 0x54a8fc54, 0xbb6d    260                 0xb07bcbb0, 0x54a8fc54, 0xbb6dd6bb, 0x162c3a16,
261         }, {                                      261         }, {
262                 0xc6a56363, 0xf8847c7c, 0xee99    262                 0xc6a56363, 0xf8847c7c, 0xee997777, 0xf68d7b7b,
263                 0xff0df2f2, 0xd6bd6b6b, 0xdeb1    263                 0xff0df2f2, 0xd6bd6b6b, 0xdeb16f6f, 0x9154c5c5,
264                 0x60503030, 0x02030101, 0xcea9    264                 0x60503030, 0x02030101, 0xcea96767, 0x567d2b2b,
265                 0xe719fefe, 0xb562d7d7, 0x4de6    265                 0xe719fefe, 0xb562d7d7, 0x4de6abab, 0xec9a7676,
266                 0x8f45caca, 0x1f9d8282, 0x8940    266                 0x8f45caca, 0x1f9d8282, 0x8940c9c9, 0xfa877d7d,
267                 0xef15fafa, 0xb2eb5959, 0x8ec9    267                 0xef15fafa, 0xb2eb5959, 0x8ec94747, 0xfb0bf0f0,
268                 0x41ecadad, 0xb367d4d4, 0x5ffd    268                 0x41ecadad, 0xb367d4d4, 0x5ffda2a2, 0x45eaafaf,
269                 0x23bf9c9c, 0x53f7a4a4, 0xe496    269                 0x23bf9c9c, 0x53f7a4a4, 0xe4967272, 0x9b5bc0c0,
270                 0x75c2b7b7, 0xe11cfdfd, 0x3dae    270                 0x75c2b7b7, 0xe11cfdfd, 0x3dae9393, 0x4c6a2626,
271                 0x6c5a3636, 0x7e413f3f, 0xf502    271                 0x6c5a3636, 0x7e413f3f, 0xf502f7f7, 0x834fcccc,
272                 0x685c3434, 0x51f4a5a5, 0xd134    272                 0x685c3434, 0x51f4a5a5, 0xd134e5e5, 0xf908f1f1,
273                 0xe2937171, 0xab73d8d8, 0x6253    273                 0xe2937171, 0xab73d8d8, 0x62533131, 0x2a3f1515,
274                 0x080c0404, 0x9552c7c7, 0x4665    274                 0x080c0404, 0x9552c7c7, 0x46652323, 0x9d5ec3c3,
275                 0x30281818, 0x37a19696, 0x0a0f    275                 0x30281818, 0x37a19696, 0x0a0f0505, 0x2fb59a9a,
276                 0x0e090707, 0x24361212, 0x1b9b    276                 0x0e090707, 0x24361212, 0x1b9b8080, 0xdf3de2e2,
277                 0xcd26ebeb, 0x4e692727, 0x7fcd    277                 0xcd26ebeb, 0x4e692727, 0x7fcdb2b2, 0xea9f7575,
278                 0x121b0909, 0x1d9e8383, 0x5874    278                 0x121b0909, 0x1d9e8383, 0x58742c2c, 0x342e1a1a,
279                 0x362d1b1b, 0xdcb26e6e, 0xb4ee    279                 0x362d1b1b, 0xdcb26e6e, 0xb4ee5a5a, 0x5bfba0a0,
280                 0xa4f65252, 0x764d3b3b, 0xb761    280                 0xa4f65252, 0x764d3b3b, 0xb761d6d6, 0x7dceb3b3,
281                 0x527b2929, 0xdd3ee3e3, 0x5e71    281                 0x527b2929, 0xdd3ee3e3, 0x5e712f2f, 0x13978484,
282                 0xa6f55353, 0xb968d1d1, 0x0000    282                 0xa6f55353, 0xb968d1d1, 0x00000000, 0xc12ceded,
283                 0x40602020, 0xe31ffcfc, 0x79c8    283                 0x40602020, 0xe31ffcfc, 0x79c8b1b1, 0xb6ed5b5b,
284                 0xd4be6a6a, 0x8d46cbcb, 0x67d9    284                 0xd4be6a6a, 0x8d46cbcb, 0x67d9bebe, 0x724b3939,
285                 0x94de4a4a, 0x98d44c4c, 0xb0e8    285                 0x94de4a4a, 0x98d44c4c, 0xb0e85858, 0x854acfcf,
286                 0xbb6bd0d0, 0xc52aefef, 0x4fe5    286                 0xbb6bd0d0, 0xc52aefef, 0x4fe5aaaa, 0xed16fbfb,
287                 0x86c54343, 0x9ad74d4d, 0x6655    287                 0x86c54343, 0x9ad74d4d, 0x66553333, 0x11948585,
288                 0x8acf4545, 0xe910f9f9, 0x0406    288                 0x8acf4545, 0xe910f9f9, 0x04060202, 0xfe817f7f,
289                 0xa0f05050, 0x78443c3c, 0x25ba    289                 0xa0f05050, 0x78443c3c, 0x25ba9f9f, 0x4be3a8a8,
290                 0xa2f35151, 0x5dfea3a3, 0x80c0    290                 0xa2f35151, 0x5dfea3a3, 0x80c04040, 0x058a8f8f,
291                 0x3fad9292, 0x21bc9d9d, 0x7048    291                 0x3fad9292, 0x21bc9d9d, 0x70483838, 0xf104f5f5,
292                 0x63dfbcbc, 0x77c1b6b6, 0xaf75    292                 0x63dfbcbc, 0x77c1b6b6, 0xaf75dada, 0x42632121,
293                 0x20301010, 0xe51affff, 0xfd0e    293                 0x20301010, 0xe51affff, 0xfd0ef3f3, 0xbf6dd2d2,
294                 0x814ccdcd, 0x18140c0c, 0x2635    294                 0x814ccdcd, 0x18140c0c, 0x26351313, 0xc32fecec,
295                 0xbee15f5f, 0x35a29797, 0x88cc    295                 0xbee15f5f, 0x35a29797, 0x88cc4444, 0x2e391717,
296                 0x9357c4c4, 0x55f2a7a7, 0xfc82    296                 0x9357c4c4, 0x55f2a7a7, 0xfc827e7e, 0x7a473d3d,
297                 0xc8ac6464, 0xbae75d5d, 0x322b    297                 0xc8ac6464, 0xbae75d5d, 0x322b1919, 0xe6957373,
298                 0xc0a06060, 0x19988181, 0x9ed1    298                 0xc0a06060, 0x19988181, 0x9ed14f4f, 0xa37fdcdc,
299                 0x44662222, 0x547e2a2a, 0x3bab    299                 0x44662222, 0x547e2a2a, 0x3bab9090, 0x0b838888,
300                 0x8cca4646, 0xc729eeee, 0x6bd3    300                 0x8cca4646, 0xc729eeee, 0x6bd3b8b8, 0x283c1414,
301                 0xa779dede, 0xbce25e5e, 0x161d    301                 0xa779dede, 0xbce25e5e, 0x161d0b0b, 0xad76dbdb,
302                 0xdb3be0e0, 0x64563232, 0x744e    302                 0xdb3be0e0, 0x64563232, 0x744e3a3a, 0x141e0a0a,
303                 0x92db4949, 0x0c0a0606, 0x486c    303                 0x92db4949, 0x0c0a0606, 0x486c2424, 0xb8e45c5c,
304                 0x9f5dc2c2, 0xbd6ed3d3, 0x43ef    304                 0x9f5dc2c2, 0xbd6ed3d3, 0x43efacac, 0xc4a66262,
305                 0x39a89191, 0x31a49595, 0xd337    305                 0x39a89191, 0x31a49595, 0xd337e4e4, 0xf28b7979,
306                 0xd532e7e7, 0x8b43c8c8, 0x6e59    306                 0xd532e7e7, 0x8b43c8c8, 0x6e593737, 0xdab76d6d,
307                 0x018c8d8d, 0xb164d5d5, 0x9cd2    307                 0x018c8d8d, 0xb164d5d5, 0x9cd24e4e, 0x49e0a9a9,
308                 0xd8b46c6c, 0xacfa5656, 0xf307    308                 0xd8b46c6c, 0xacfa5656, 0xf307f4f4, 0xcf25eaea,
309                 0xcaaf6565, 0xf48e7a7a, 0x47e9    309                 0xcaaf6565, 0xf48e7a7a, 0x47e9aeae, 0x10180808,
310                 0x6fd5baba, 0xf0887878, 0x4a6f    310                 0x6fd5baba, 0xf0887878, 0x4a6f2525, 0x5c722e2e,
311                 0x38241c1c, 0x57f1a6a6, 0x73c7    311                 0x38241c1c, 0x57f1a6a6, 0x73c7b4b4, 0x9751c6c6,
312                 0xcb23e8e8, 0xa17cdddd, 0xe89c    312                 0xcb23e8e8, 0xa17cdddd, 0xe89c7474, 0x3e211f1f,
313                 0x96dd4b4b, 0x61dcbdbd, 0x0d86    313                 0x96dd4b4b, 0x61dcbdbd, 0x0d868b8b, 0x0f858a8a,
314                 0xe0907070, 0x7c423e3e, 0x71c4    314                 0xe0907070, 0x7c423e3e, 0x71c4b5b5, 0xccaa6666,
315                 0x90d84848, 0x06050303, 0xf701    315                 0x90d84848, 0x06050303, 0xf701f6f6, 0x1c120e0e,
316                 0xc2a36161, 0x6a5f3535, 0xaef9    316                 0xc2a36161, 0x6a5f3535, 0xaef95757, 0x69d0b9b9,
317                 0x17918686, 0x9958c1c1, 0x3a27    317                 0x17918686, 0x9958c1c1, 0x3a271d1d, 0x27b99e9e,
318                 0xd938e1e1, 0xeb13f8f8, 0x2bb3    318                 0xd938e1e1, 0xeb13f8f8, 0x2bb39898, 0x22331111,
319                 0xd2bb6969, 0xa970d9d9, 0x0789    319                 0xd2bb6969, 0xa970d9d9, 0x07898e8e, 0x33a79494,
320                 0x2db69b9b, 0x3c221e1e, 0x1592    320                 0x2db69b9b, 0x3c221e1e, 0x15928787, 0xc920e9e9,
321                 0x8749cece, 0xaaff5555, 0x5078    321                 0x8749cece, 0xaaff5555, 0x50782828, 0xa57adfdf,
322                 0x038f8c8c, 0x59f8a1a1, 0x0980    322                 0x038f8c8c, 0x59f8a1a1, 0x09808989, 0x1a170d0d,
323                 0x65dabfbf, 0xd731e6e6, 0x84c6    323                 0x65dabfbf, 0xd731e6e6, 0x84c64242, 0xd0b86868,
324                 0x82c34141, 0x29b09999, 0x5a77    324                 0x82c34141, 0x29b09999, 0x5a772d2d, 0x1e110f0f,
325                 0x7bcbb0b0, 0xa8fc5454, 0x6dd6    325                 0x7bcbb0b0, 0xa8fc5454, 0x6dd6bbbb, 0x2c3a1616,
326         }                                         326         }
327 };                                                327 };
328                                                   328 
329 static const u32 crypto_fl_tab[4][256] ____cac    329 static const u32 crypto_fl_tab[4][256] ____cacheline_aligned = {
330         {                                         330         {
331                 0x00000063, 0x0000007c, 0x0000    331                 0x00000063, 0x0000007c, 0x00000077, 0x0000007b,
332                 0x000000f2, 0x0000006b, 0x0000    332                 0x000000f2, 0x0000006b, 0x0000006f, 0x000000c5,
333                 0x00000030, 0x00000001, 0x0000    333                 0x00000030, 0x00000001, 0x00000067, 0x0000002b,
334                 0x000000fe, 0x000000d7, 0x0000    334                 0x000000fe, 0x000000d7, 0x000000ab, 0x00000076,
335                 0x000000ca, 0x00000082, 0x0000    335                 0x000000ca, 0x00000082, 0x000000c9, 0x0000007d,
336                 0x000000fa, 0x00000059, 0x0000    336                 0x000000fa, 0x00000059, 0x00000047, 0x000000f0,
337                 0x000000ad, 0x000000d4, 0x0000    337                 0x000000ad, 0x000000d4, 0x000000a2, 0x000000af,
338                 0x0000009c, 0x000000a4, 0x0000    338                 0x0000009c, 0x000000a4, 0x00000072, 0x000000c0,
339                 0x000000b7, 0x000000fd, 0x0000    339                 0x000000b7, 0x000000fd, 0x00000093, 0x00000026,
340                 0x00000036, 0x0000003f, 0x0000    340                 0x00000036, 0x0000003f, 0x000000f7, 0x000000cc,
341                 0x00000034, 0x000000a5, 0x0000    341                 0x00000034, 0x000000a5, 0x000000e5, 0x000000f1,
342                 0x00000071, 0x000000d8, 0x0000    342                 0x00000071, 0x000000d8, 0x00000031, 0x00000015,
343                 0x00000004, 0x000000c7, 0x0000    343                 0x00000004, 0x000000c7, 0x00000023, 0x000000c3,
344                 0x00000018, 0x00000096, 0x0000    344                 0x00000018, 0x00000096, 0x00000005, 0x0000009a,
345                 0x00000007, 0x00000012, 0x0000    345                 0x00000007, 0x00000012, 0x00000080, 0x000000e2,
346                 0x000000eb, 0x00000027, 0x0000    346                 0x000000eb, 0x00000027, 0x000000b2, 0x00000075,
347                 0x00000009, 0x00000083, 0x0000    347                 0x00000009, 0x00000083, 0x0000002c, 0x0000001a,
348                 0x0000001b, 0x0000006e, 0x0000    348                 0x0000001b, 0x0000006e, 0x0000005a, 0x000000a0,
349                 0x00000052, 0x0000003b, 0x0000    349                 0x00000052, 0x0000003b, 0x000000d6, 0x000000b3,
350                 0x00000029, 0x000000e3, 0x0000    350                 0x00000029, 0x000000e3, 0x0000002f, 0x00000084,
351                 0x00000053, 0x000000d1, 0x0000    351                 0x00000053, 0x000000d1, 0x00000000, 0x000000ed,
352                 0x00000020, 0x000000fc, 0x0000    352                 0x00000020, 0x000000fc, 0x000000b1, 0x0000005b,
353                 0x0000006a, 0x000000cb, 0x0000    353                 0x0000006a, 0x000000cb, 0x000000be, 0x00000039,
354                 0x0000004a, 0x0000004c, 0x0000    354                 0x0000004a, 0x0000004c, 0x00000058, 0x000000cf,
355                 0x000000d0, 0x000000ef, 0x0000    355                 0x000000d0, 0x000000ef, 0x000000aa, 0x000000fb,
356                 0x00000043, 0x0000004d, 0x0000    356                 0x00000043, 0x0000004d, 0x00000033, 0x00000085,
357                 0x00000045, 0x000000f9, 0x0000    357                 0x00000045, 0x000000f9, 0x00000002, 0x0000007f,
358                 0x00000050, 0x0000003c, 0x0000    358                 0x00000050, 0x0000003c, 0x0000009f, 0x000000a8,
359                 0x00000051, 0x000000a3, 0x0000    359                 0x00000051, 0x000000a3, 0x00000040, 0x0000008f,
360                 0x00000092, 0x0000009d, 0x0000    360                 0x00000092, 0x0000009d, 0x00000038, 0x000000f5,
361                 0x000000bc, 0x000000b6, 0x0000    361                 0x000000bc, 0x000000b6, 0x000000da, 0x00000021,
362                 0x00000010, 0x000000ff, 0x0000    362                 0x00000010, 0x000000ff, 0x000000f3, 0x000000d2,
363                 0x000000cd, 0x0000000c, 0x0000    363                 0x000000cd, 0x0000000c, 0x00000013, 0x000000ec,
364                 0x0000005f, 0x00000097, 0x0000    364                 0x0000005f, 0x00000097, 0x00000044, 0x00000017,
365                 0x000000c4, 0x000000a7, 0x0000    365                 0x000000c4, 0x000000a7, 0x0000007e, 0x0000003d,
366                 0x00000064, 0x0000005d, 0x0000    366                 0x00000064, 0x0000005d, 0x00000019, 0x00000073,
367                 0x00000060, 0x00000081, 0x0000    367                 0x00000060, 0x00000081, 0x0000004f, 0x000000dc,
368                 0x00000022, 0x0000002a, 0x0000    368                 0x00000022, 0x0000002a, 0x00000090, 0x00000088,
369                 0x00000046, 0x000000ee, 0x0000    369                 0x00000046, 0x000000ee, 0x000000b8, 0x00000014,
370                 0x000000de, 0x0000005e, 0x0000    370                 0x000000de, 0x0000005e, 0x0000000b, 0x000000db,
371                 0x000000e0, 0x00000032, 0x0000    371                 0x000000e0, 0x00000032, 0x0000003a, 0x0000000a,
372                 0x00000049, 0x00000006, 0x0000    372                 0x00000049, 0x00000006, 0x00000024, 0x0000005c,
373                 0x000000c2, 0x000000d3, 0x0000    373                 0x000000c2, 0x000000d3, 0x000000ac, 0x00000062,
374                 0x00000091, 0x00000095, 0x0000    374                 0x00000091, 0x00000095, 0x000000e4, 0x00000079,
375                 0x000000e7, 0x000000c8, 0x0000    375                 0x000000e7, 0x000000c8, 0x00000037, 0x0000006d,
376                 0x0000008d, 0x000000d5, 0x0000    376                 0x0000008d, 0x000000d5, 0x0000004e, 0x000000a9,
377                 0x0000006c, 0x00000056, 0x0000    377                 0x0000006c, 0x00000056, 0x000000f4, 0x000000ea,
378                 0x00000065, 0x0000007a, 0x0000    378                 0x00000065, 0x0000007a, 0x000000ae, 0x00000008,
379                 0x000000ba, 0x00000078, 0x0000    379                 0x000000ba, 0x00000078, 0x00000025, 0x0000002e,
380                 0x0000001c, 0x000000a6, 0x0000    380                 0x0000001c, 0x000000a6, 0x000000b4, 0x000000c6,
381                 0x000000e8, 0x000000dd, 0x0000    381                 0x000000e8, 0x000000dd, 0x00000074, 0x0000001f,
382                 0x0000004b, 0x000000bd, 0x0000    382                 0x0000004b, 0x000000bd, 0x0000008b, 0x0000008a,
383                 0x00000070, 0x0000003e, 0x0000    383                 0x00000070, 0x0000003e, 0x000000b5, 0x00000066,
384                 0x00000048, 0x00000003, 0x0000    384                 0x00000048, 0x00000003, 0x000000f6, 0x0000000e,
385                 0x00000061, 0x00000035, 0x0000    385                 0x00000061, 0x00000035, 0x00000057, 0x000000b9,
386                 0x00000086, 0x000000c1, 0x0000    386                 0x00000086, 0x000000c1, 0x0000001d, 0x0000009e,
387                 0x000000e1, 0x000000f8, 0x0000    387                 0x000000e1, 0x000000f8, 0x00000098, 0x00000011,
388                 0x00000069, 0x000000d9, 0x0000    388                 0x00000069, 0x000000d9, 0x0000008e, 0x00000094,
389                 0x0000009b, 0x0000001e, 0x0000    389                 0x0000009b, 0x0000001e, 0x00000087, 0x000000e9,
390                 0x000000ce, 0x00000055, 0x0000    390                 0x000000ce, 0x00000055, 0x00000028, 0x000000df,
391                 0x0000008c, 0x000000a1, 0x0000    391                 0x0000008c, 0x000000a1, 0x00000089, 0x0000000d,
392                 0x000000bf, 0x000000e6, 0x0000    392                 0x000000bf, 0x000000e6, 0x00000042, 0x00000068,
393                 0x00000041, 0x00000099, 0x0000    393                 0x00000041, 0x00000099, 0x0000002d, 0x0000000f,
394                 0x000000b0, 0x00000054, 0x0000    394                 0x000000b0, 0x00000054, 0x000000bb, 0x00000016,
395         }, {                                      395         }, {
396                 0x00006300, 0x00007c00, 0x0000    396                 0x00006300, 0x00007c00, 0x00007700, 0x00007b00,
397                 0x0000f200, 0x00006b00, 0x0000    397                 0x0000f200, 0x00006b00, 0x00006f00, 0x0000c500,
398                 0x00003000, 0x00000100, 0x0000    398                 0x00003000, 0x00000100, 0x00006700, 0x00002b00,
399                 0x0000fe00, 0x0000d700, 0x0000    399                 0x0000fe00, 0x0000d700, 0x0000ab00, 0x00007600,
400                 0x0000ca00, 0x00008200, 0x0000    400                 0x0000ca00, 0x00008200, 0x0000c900, 0x00007d00,
401                 0x0000fa00, 0x00005900, 0x0000    401                 0x0000fa00, 0x00005900, 0x00004700, 0x0000f000,
402                 0x0000ad00, 0x0000d400, 0x0000    402                 0x0000ad00, 0x0000d400, 0x0000a200, 0x0000af00,
403                 0x00009c00, 0x0000a400, 0x0000    403                 0x00009c00, 0x0000a400, 0x00007200, 0x0000c000,
404                 0x0000b700, 0x0000fd00, 0x0000    404                 0x0000b700, 0x0000fd00, 0x00009300, 0x00002600,
405                 0x00003600, 0x00003f00, 0x0000    405                 0x00003600, 0x00003f00, 0x0000f700, 0x0000cc00,
406                 0x00003400, 0x0000a500, 0x0000    406                 0x00003400, 0x0000a500, 0x0000e500, 0x0000f100,
407                 0x00007100, 0x0000d800, 0x0000    407                 0x00007100, 0x0000d800, 0x00003100, 0x00001500,
408                 0x00000400, 0x0000c700, 0x0000    408                 0x00000400, 0x0000c700, 0x00002300, 0x0000c300,
409                 0x00001800, 0x00009600, 0x0000    409                 0x00001800, 0x00009600, 0x00000500, 0x00009a00,
410                 0x00000700, 0x00001200, 0x0000    410                 0x00000700, 0x00001200, 0x00008000, 0x0000e200,
411                 0x0000eb00, 0x00002700, 0x0000    411                 0x0000eb00, 0x00002700, 0x0000b200, 0x00007500,
412                 0x00000900, 0x00008300, 0x0000    412                 0x00000900, 0x00008300, 0x00002c00, 0x00001a00,
413                 0x00001b00, 0x00006e00, 0x0000    413                 0x00001b00, 0x00006e00, 0x00005a00, 0x0000a000,
414                 0x00005200, 0x00003b00, 0x0000    414                 0x00005200, 0x00003b00, 0x0000d600, 0x0000b300,
415                 0x00002900, 0x0000e300, 0x0000    415                 0x00002900, 0x0000e300, 0x00002f00, 0x00008400,
416                 0x00005300, 0x0000d100, 0x0000    416                 0x00005300, 0x0000d100, 0x00000000, 0x0000ed00,
417                 0x00002000, 0x0000fc00, 0x0000    417                 0x00002000, 0x0000fc00, 0x0000b100, 0x00005b00,
418                 0x00006a00, 0x0000cb00, 0x0000    418                 0x00006a00, 0x0000cb00, 0x0000be00, 0x00003900,
419                 0x00004a00, 0x00004c00, 0x0000    419                 0x00004a00, 0x00004c00, 0x00005800, 0x0000cf00,
420                 0x0000d000, 0x0000ef00, 0x0000    420                 0x0000d000, 0x0000ef00, 0x0000aa00, 0x0000fb00,
421                 0x00004300, 0x00004d00, 0x0000    421                 0x00004300, 0x00004d00, 0x00003300, 0x00008500,
422                 0x00004500, 0x0000f900, 0x0000    422                 0x00004500, 0x0000f900, 0x00000200, 0x00007f00,
423                 0x00005000, 0x00003c00, 0x0000    423                 0x00005000, 0x00003c00, 0x00009f00, 0x0000a800,
424                 0x00005100, 0x0000a300, 0x0000    424                 0x00005100, 0x0000a300, 0x00004000, 0x00008f00,
425                 0x00009200, 0x00009d00, 0x0000    425                 0x00009200, 0x00009d00, 0x00003800, 0x0000f500,
426                 0x0000bc00, 0x0000b600, 0x0000    426                 0x0000bc00, 0x0000b600, 0x0000da00, 0x00002100,
427                 0x00001000, 0x0000ff00, 0x0000    427                 0x00001000, 0x0000ff00, 0x0000f300, 0x0000d200,
428                 0x0000cd00, 0x00000c00, 0x0000    428                 0x0000cd00, 0x00000c00, 0x00001300, 0x0000ec00,
429                 0x00005f00, 0x00009700, 0x0000    429                 0x00005f00, 0x00009700, 0x00004400, 0x00001700,
430                 0x0000c400, 0x0000a700, 0x0000    430                 0x0000c400, 0x0000a700, 0x00007e00, 0x00003d00,
431                 0x00006400, 0x00005d00, 0x0000    431                 0x00006400, 0x00005d00, 0x00001900, 0x00007300,
432                 0x00006000, 0x00008100, 0x0000    432                 0x00006000, 0x00008100, 0x00004f00, 0x0000dc00,
433                 0x00002200, 0x00002a00, 0x0000    433                 0x00002200, 0x00002a00, 0x00009000, 0x00008800,
434                 0x00004600, 0x0000ee00, 0x0000    434                 0x00004600, 0x0000ee00, 0x0000b800, 0x00001400,
435                 0x0000de00, 0x00005e00, 0x0000    435                 0x0000de00, 0x00005e00, 0x00000b00, 0x0000db00,
436                 0x0000e000, 0x00003200, 0x0000    436                 0x0000e000, 0x00003200, 0x00003a00, 0x00000a00,
437                 0x00004900, 0x00000600, 0x0000    437                 0x00004900, 0x00000600, 0x00002400, 0x00005c00,
438                 0x0000c200, 0x0000d300, 0x0000    438                 0x0000c200, 0x0000d300, 0x0000ac00, 0x00006200,
439                 0x00009100, 0x00009500, 0x0000    439                 0x00009100, 0x00009500, 0x0000e400, 0x00007900,
440                 0x0000e700, 0x0000c800, 0x0000    440                 0x0000e700, 0x0000c800, 0x00003700, 0x00006d00,
441                 0x00008d00, 0x0000d500, 0x0000    441                 0x00008d00, 0x0000d500, 0x00004e00, 0x0000a900,
442                 0x00006c00, 0x00005600, 0x0000    442                 0x00006c00, 0x00005600, 0x0000f400, 0x0000ea00,
443                 0x00006500, 0x00007a00, 0x0000    443                 0x00006500, 0x00007a00, 0x0000ae00, 0x00000800,
444                 0x0000ba00, 0x00007800, 0x0000    444                 0x0000ba00, 0x00007800, 0x00002500, 0x00002e00,
445                 0x00001c00, 0x0000a600, 0x0000    445                 0x00001c00, 0x0000a600, 0x0000b400, 0x0000c600,
446                 0x0000e800, 0x0000dd00, 0x0000    446                 0x0000e800, 0x0000dd00, 0x00007400, 0x00001f00,
447                 0x00004b00, 0x0000bd00, 0x0000    447                 0x00004b00, 0x0000bd00, 0x00008b00, 0x00008a00,
448                 0x00007000, 0x00003e00, 0x0000    448                 0x00007000, 0x00003e00, 0x0000b500, 0x00006600,
449                 0x00004800, 0x00000300, 0x0000    449                 0x00004800, 0x00000300, 0x0000f600, 0x00000e00,
450                 0x00006100, 0x00003500, 0x0000    450                 0x00006100, 0x00003500, 0x00005700, 0x0000b900,
451                 0x00008600, 0x0000c100, 0x0000    451                 0x00008600, 0x0000c100, 0x00001d00, 0x00009e00,
452                 0x0000e100, 0x0000f800, 0x0000    452                 0x0000e100, 0x0000f800, 0x00009800, 0x00001100,
453                 0x00006900, 0x0000d900, 0x0000    453                 0x00006900, 0x0000d900, 0x00008e00, 0x00009400,
454                 0x00009b00, 0x00001e00, 0x0000    454                 0x00009b00, 0x00001e00, 0x00008700, 0x0000e900,
455                 0x0000ce00, 0x00005500, 0x0000    455                 0x0000ce00, 0x00005500, 0x00002800, 0x0000df00,
456                 0x00008c00, 0x0000a100, 0x0000    456                 0x00008c00, 0x0000a100, 0x00008900, 0x00000d00,
457                 0x0000bf00, 0x0000e600, 0x0000    457                 0x0000bf00, 0x0000e600, 0x00004200, 0x00006800,
458                 0x00004100, 0x00009900, 0x0000    458                 0x00004100, 0x00009900, 0x00002d00, 0x00000f00,
459                 0x0000b000, 0x00005400, 0x0000    459                 0x0000b000, 0x00005400, 0x0000bb00, 0x00001600,
460         }, {                                      460         }, {
461                 0x00630000, 0x007c0000, 0x0077    461                 0x00630000, 0x007c0000, 0x00770000, 0x007b0000,
462                 0x00f20000, 0x006b0000, 0x006f    462                 0x00f20000, 0x006b0000, 0x006f0000, 0x00c50000,
463                 0x00300000, 0x00010000, 0x0067    463                 0x00300000, 0x00010000, 0x00670000, 0x002b0000,
464                 0x00fe0000, 0x00d70000, 0x00ab    464                 0x00fe0000, 0x00d70000, 0x00ab0000, 0x00760000,
465                 0x00ca0000, 0x00820000, 0x00c9    465                 0x00ca0000, 0x00820000, 0x00c90000, 0x007d0000,
466                 0x00fa0000, 0x00590000, 0x0047    466                 0x00fa0000, 0x00590000, 0x00470000, 0x00f00000,
467                 0x00ad0000, 0x00d40000, 0x00a2    467                 0x00ad0000, 0x00d40000, 0x00a20000, 0x00af0000,
468                 0x009c0000, 0x00a40000, 0x0072    468                 0x009c0000, 0x00a40000, 0x00720000, 0x00c00000,
469                 0x00b70000, 0x00fd0000, 0x0093    469                 0x00b70000, 0x00fd0000, 0x00930000, 0x00260000,
470                 0x00360000, 0x003f0000, 0x00f7    470                 0x00360000, 0x003f0000, 0x00f70000, 0x00cc0000,
471                 0x00340000, 0x00a50000, 0x00e5    471                 0x00340000, 0x00a50000, 0x00e50000, 0x00f10000,
472                 0x00710000, 0x00d80000, 0x0031    472                 0x00710000, 0x00d80000, 0x00310000, 0x00150000,
473                 0x00040000, 0x00c70000, 0x0023    473                 0x00040000, 0x00c70000, 0x00230000, 0x00c30000,
474                 0x00180000, 0x00960000, 0x0005    474                 0x00180000, 0x00960000, 0x00050000, 0x009a0000,
475                 0x00070000, 0x00120000, 0x0080    475                 0x00070000, 0x00120000, 0x00800000, 0x00e20000,
476                 0x00eb0000, 0x00270000, 0x00b2    476                 0x00eb0000, 0x00270000, 0x00b20000, 0x00750000,
477                 0x00090000, 0x00830000, 0x002c    477                 0x00090000, 0x00830000, 0x002c0000, 0x001a0000,
478                 0x001b0000, 0x006e0000, 0x005a    478                 0x001b0000, 0x006e0000, 0x005a0000, 0x00a00000,
479                 0x00520000, 0x003b0000, 0x00d6    479                 0x00520000, 0x003b0000, 0x00d60000, 0x00b30000,
480                 0x00290000, 0x00e30000, 0x002f    480                 0x00290000, 0x00e30000, 0x002f0000, 0x00840000,
481                 0x00530000, 0x00d10000, 0x0000    481                 0x00530000, 0x00d10000, 0x00000000, 0x00ed0000,
482                 0x00200000, 0x00fc0000, 0x00b1    482                 0x00200000, 0x00fc0000, 0x00b10000, 0x005b0000,
483                 0x006a0000, 0x00cb0000, 0x00be    483                 0x006a0000, 0x00cb0000, 0x00be0000, 0x00390000,
484                 0x004a0000, 0x004c0000, 0x0058    484                 0x004a0000, 0x004c0000, 0x00580000, 0x00cf0000,
485                 0x00d00000, 0x00ef0000, 0x00aa    485                 0x00d00000, 0x00ef0000, 0x00aa0000, 0x00fb0000,
486                 0x00430000, 0x004d0000, 0x0033    486                 0x00430000, 0x004d0000, 0x00330000, 0x00850000,
487                 0x00450000, 0x00f90000, 0x0002    487                 0x00450000, 0x00f90000, 0x00020000, 0x007f0000,
488                 0x00500000, 0x003c0000, 0x009f    488                 0x00500000, 0x003c0000, 0x009f0000, 0x00a80000,
489                 0x00510000, 0x00a30000, 0x0040    489                 0x00510000, 0x00a30000, 0x00400000, 0x008f0000,
490                 0x00920000, 0x009d0000, 0x0038    490                 0x00920000, 0x009d0000, 0x00380000, 0x00f50000,
491                 0x00bc0000, 0x00b60000, 0x00da    491                 0x00bc0000, 0x00b60000, 0x00da0000, 0x00210000,
492                 0x00100000, 0x00ff0000, 0x00f3    492                 0x00100000, 0x00ff0000, 0x00f30000, 0x00d20000,
493                 0x00cd0000, 0x000c0000, 0x0013    493                 0x00cd0000, 0x000c0000, 0x00130000, 0x00ec0000,
494                 0x005f0000, 0x00970000, 0x0044    494                 0x005f0000, 0x00970000, 0x00440000, 0x00170000,
495                 0x00c40000, 0x00a70000, 0x007e    495                 0x00c40000, 0x00a70000, 0x007e0000, 0x003d0000,
496                 0x00640000, 0x005d0000, 0x0019    496                 0x00640000, 0x005d0000, 0x00190000, 0x00730000,
497                 0x00600000, 0x00810000, 0x004f    497                 0x00600000, 0x00810000, 0x004f0000, 0x00dc0000,
498                 0x00220000, 0x002a0000, 0x0090    498                 0x00220000, 0x002a0000, 0x00900000, 0x00880000,
499                 0x00460000, 0x00ee0000, 0x00b8    499                 0x00460000, 0x00ee0000, 0x00b80000, 0x00140000,
500                 0x00de0000, 0x005e0000, 0x000b    500                 0x00de0000, 0x005e0000, 0x000b0000, 0x00db0000,
501                 0x00e00000, 0x00320000, 0x003a    501                 0x00e00000, 0x00320000, 0x003a0000, 0x000a0000,
502                 0x00490000, 0x00060000, 0x0024    502                 0x00490000, 0x00060000, 0x00240000, 0x005c0000,
503                 0x00c20000, 0x00d30000, 0x00ac    503                 0x00c20000, 0x00d30000, 0x00ac0000, 0x00620000,
504                 0x00910000, 0x00950000, 0x00e4    504                 0x00910000, 0x00950000, 0x00e40000, 0x00790000,
505                 0x00e70000, 0x00c80000, 0x0037    505                 0x00e70000, 0x00c80000, 0x00370000, 0x006d0000,
506                 0x008d0000, 0x00d50000, 0x004e    506                 0x008d0000, 0x00d50000, 0x004e0000, 0x00a90000,
507                 0x006c0000, 0x00560000, 0x00f4    507                 0x006c0000, 0x00560000, 0x00f40000, 0x00ea0000,
508                 0x00650000, 0x007a0000, 0x00ae    508                 0x00650000, 0x007a0000, 0x00ae0000, 0x00080000,
509                 0x00ba0000, 0x00780000, 0x0025    509                 0x00ba0000, 0x00780000, 0x00250000, 0x002e0000,
510                 0x001c0000, 0x00a60000, 0x00b4    510                 0x001c0000, 0x00a60000, 0x00b40000, 0x00c60000,
511                 0x00e80000, 0x00dd0000, 0x0074    511                 0x00e80000, 0x00dd0000, 0x00740000, 0x001f0000,
512                 0x004b0000, 0x00bd0000, 0x008b    512                 0x004b0000, 0x00bd0000, 0x008b0000, 0x008a0000,
513                 0x00700000, 0x003e0000, 0x00b5    513                 0x00700000, 0x003e0000, 0x00b50000, 0x00660000,
514                 0x00480000, 0x00030000, 0x00f6    514                 0x00480000, 0x00030000, 0x00f60000, 0x000e0000,
515                 0x00610000, 0x00350000, 0x0057    515                 0x00610000, 0x00350000, 0x00570000, 0x00b90000,
516                 0x00860000, 0x00c10000, 0x001d    516                 0x00860000, 0x00c10000, 0x001d0000, 0x009e0000,
517                 0x00e10000, 0x00f80000, 0x0098    517                 0x00e10000, 0x00f80000, 0x00980000, 0x00110000,
518                 0x00690000, 0x00d90000, 0x008e    518                 0x00690000, 0x00d90000, 0x008e0000, 0x00940000,
519                 0x009b0000, 0x001e0000, 0x0087    519                 0x009b0000, 0x001e0000, 0x00870000, 0x00e90000,
520                 0x00ce0000, 0x00550000, 0x0028    520                 0x00ce0000, 0x00550000, 0x00280000, 0x00df0000,
521                 0x008c0000, 0x00a10000, 0x0089    521                 0x008c0000, 0x00a10000, 0x00890000, 0x000d0000,
522                 0x00bf0000, 0x00e60000, 0x0042    522                 0x00bf0000, 0x00e60000, 0x00420000, 0x00680000,
523                 0x00410000, 0x00990000, 0x002d    523                 0x00410000, 0x00990000, 0x002d0000, 0x000f0000,
524                 0x00b00000, 0x00540000, 0x00bb    524                 0x00b00000, 0x00540000, 0x00bb0000, 0x00160000,
525         }, {                                      525         }, {
526                 0x63000000, 0x7c000000, 0x7700    526                 0x63000000, 0x7c000000, 0x77000000, 0x7b000000,
527                 0xf2000000, 0x6b000000, 0x6f00    527                 0xf2000000, 0x6b000000, 0x6f000000, 0xc5000000,
528                 0x30000000, 0x01000000, 0x6700    528                 0x30000000, 0x01000000, 0x67000000, 0x2b000000,
529                 0xfe000000, 0xd7000000, 0xab00    529                 0xfe000000, 0xd7000000, 0xab000000, 0x76000000,
530                 0xca000000, 0x82000000, 0xc900    530                 0xca000000, 0x82000000, 0xc9000000, 0x7d000000,
531                 0xfa000000, 0x59000000, 0x4700    531                 0xfa000000, 0x59000000, 0x47000000, 0xf0000000,
532                 0xad000000, 0xd4000000, 0xa200    532                 0xad000000, 0xd4000000, 0xa2000000, 0xaf000000,
533                 0x9c000000, 0xa4000000, 0x7200    533                 0x9c000000, 0xa4000000, 0x72000000, 0xc0000000,
534                 0xb7000000, 0xfd000000, 0x9300    534                 0xb7000000, 0xfd000000, 0x93000000, 0x26000000,
535                 0x36000000, 0x3f000000, 0xf700    535                 0x36000000, 0x3f000000, 0xf7000000, 0xcc000000,
536                 0x34000000, 0xa5000000, 0xe500    536                 0x34000000, 0xa5000000, 0xe5000000, 0xf1000000,
537                 0x71000000, 0xd8000000, 0x3100    537                 0x71000000, 0xd8000000, 0x31000000, 0x15000000,
538                 0x04000000, 0xc7000000, 0x2300    538                 0x04000000, 0xc7000000, 0x23000000, 0xc3000000,
539                 0x18000000, 0x96000000, 0x0500    539                 0x18000000, 0x96000000, 0x05000000, 0x9a000000,
540                 0x07000000, 0x12000000, 0x8000    540                 0x07000000, 0x12000000, 0x80000000, 0xe2000000,
541                 0xeb000000, 0x27000000, 0xb200    541                 0xeb000000, 0x27000000, 0xb2000000, 0x75000000,
542                 0x09000000, 0x83000000, 0x2c00    542                 0x09000000, 0x83000000, 0x2c000000, 0x1a000000,
543                 0x1b000000, 0x6e000000, 0x5a00    543                 0x1b000000, 0x6e000000, 0x5a000000, 0xa0000000,
544                 0x52000000, 0x3b000000, 0xd600    544                 0x52000000, 0x3b000000, 0xd6000000, 0xb3000000,
545                 0x29000000, 0xe3000000, 0x2f00    545                 0x29000000, 0xe3000000, 0x2f000000, 0x84000000,
546                 0x53000000, 0xd1000000, 0x0000    546                 0x53000000, 0xd1000000, 0x00000000, 0xed000000,
547                 0x20000000, 0xfc000000, 0xb100    547                 0x20000000, 0xfc000000, 0xb1000000, 0x5b000000,
548                 0x6a000000, 0xcb000000, 0xbe00    548                 0x6a000000, 0xcb000000, 0xbe000000, 0x39000000,
549                 0x4a000000, 0x4c000000, 0x5800    549                 0x4a000000, 0x4c000000, 0x58000000, 0xcf000000,
550                 0xd0000000, 0xef000000, 0xaa00    550                 0xd0000000, 0xef000000, 0xaa000000, 0xfb000000,
551                 0x43000000, 0x4d000000, 0x3300    551                 0x43000000, 0x4d000000, 0x33000000, 0x85000000,
552                 0x45000000, 0xf9000000, 0x0200    552                 0x45000000, 0xf9000000, 0x02000000, 0x7f000000,
553                 0x50000000, 0x3c000000, 0x9f00    553                 0x50000000, 0x3c000000, 0x9f000000, 0xa8000000,
554                 0x51000000, 0xa3000000, 0x4000    554                 0x51000000, 0xa3000000, 0x40000000, 0x8f000000,
555                 0x92000000, 0x9d000000, 0x3800    555                 0x92000000, 0x9d000000, 0x38000000, 0xf5000000,
556                 0xbc000000, 0xb6000000, 0xda00    556                 0xbc000000, 0xb6000000, 0xda000000, 0x21000000,
557                 0x10000000, 0xff000000, 0xf300    557                 0x10000000, 0xff000000, 0xf3000000, 0xd2000000,
558                 0xcd000000, 0x0c000000, 0x1300    558                 0xcd000000, 0x0c000000, 0x13000000, 0xec000000,
559                 0x5f000000, 0x97000000, 0x4400    559                 0x5f000000, 0x97000000, 0x44000000, 0x17000000,
560                 0xc4000000, 0xa7000000, 0x7e00    560                 0xc4000000, 0xa7000000, 0x7e000000, 0x3d000000,
561                 0x64000000, 0x5d000000, 0x1900    561                 0x64000000, 0x5d000000, 0x19000000, 0x73000000,
562                 0x60000000, 0x81000000, 0x4f00    562                 0x60000000, 0x81000000, 0x4f000000, 0xdc000000,
563                 0x22000000, 0x2a000000, 0x9000    563                 0x22000000, 0x2a000000, 0x90000000, 0x88000000,
564                 0x46000000, 0xee000000, 0xb800    564                 0x46000000, 0xee000000, 0xb8000000, 0x14000000,
565                 0xde000000, 0x5e000000, 0x0b00    565                 0xde000000, 0x5e000000, 0x0b000000, 0xdb000000,
566                 0xe0000000, 0x32000000, 0x3a00    566                 0xe0000000, 0x32000000, 0x3a000000, 0x0a000000,
567                 0x49000000, 0x06000000, 0x2400    567                 0x49000000, 0x06000000, 0x24000000, 0x5c000000,
568                 0xc2000000, 0xd3000000, 0xac00    568                 0xc2000000, 0xd3000000, 0xac000000, 0x62000000,
569                 0x91000000, 0x95000000, 0xe400    569                 0x91000000, 0x95000000, 0xe4000000, 0x79000000,
570                 0xe7000000, 0xc8000000, 0x3700    570                 0xe7000000, 0xc8000000, 0x37000000, 0x6d000000,
571                 0x8d000000, 0xd5000000, 0x4e00    571                 0x8d000000, 0xd5000000, 0x4e000000, 0xa9000000,
572                 0x6c000000, 0x56000000, 0xf400    572                 0x6c000000, 0x56000000, 0xf4000000, 0xea000000,
573                 0x65000000, 0x7a000000, 0xae00    573                 0x65000000, 0x7a000000, 0xae000000, 0x08000000,
574                 0xba000000, 0x78000000, 0x2500    574                 0xba000000, 0x78000000, 0x25000000, 0x2e000000,
575                 0x1c000000, 0xa6000000, 0xb400    575                 0x1c000000, 0xa6000000, 0xb4000000, 0xc6000000,
576                 0xe8000000, 0xdd000000, 0x7400    576                 0xe8000000, 0xdd000000, 0x74000000, 0x1f000000,
577                 0x4b000000, 0xbd000000, 0x8b00    577                 0x4b000000, 0xbd000000, 0x8b000000, 0x8a000000,
578                 0x70000000, 0x3e000000, 0xb500    578                 0x70000000, 0x3e000000, 0xb5000000, 0x66000000,
579                 0x48000000, 0x03000000, 0xf600    579                 0x48000000, 0x03000000, 0xf6000000, 0x0e000000,
580                 0x61000000, 0x35000000, 0x5700    580                 0x61000000, 0x35000000, 0x57000000, 0xb9000000,
581                 0x86000000, 0xc1000000, 0x1d00    581                 0x86000000, 0xc1000000, 0x1d000000, 0x9e000000,
582                 0xe1000000, 0xf8000000, 0x9800    582                 0xe1000000, 0xf8000000, 0x98000000, 0x11000000,
583                 0x69000000, 0xd9000000, 0x8e00    583                 0x69000000, 0xd9000000, 0x8e000000, 0x94000000,
584                 0x9b000000, 0x1e000000, 0x8700    584                 0x9b000000, 0x1e000000, 0x87000000, 0xe9000000,
585                 0xce000000, 0x55000000, 0x2800    585                 0xce000000, 0x55000000, 0x28000000, 0xdf000000,
586                 0x8c000000, 0xa1000000, 0x8900    586                 0x8c000000, 0xa1000000, 0x89000000, 0x0d000000,
587                 0xbf000000, 0xe6000000, 0x4200    587                 0xbf000000, 0xe6000000, 0x42000000, 0x68000000,
588                 0x41000000, 0x99000000, 0x2d00    588                 0x41000000, 0x99000000, 0x2d000000, 0x0f000000,
589                 0xb0000000, 0x54000000, 0xbb00    589                 0xb0000000, 0x54000000, 0xbb000000, 0x16000000,
590         }                                         590         }
591 };                                                591 };
592                                                   592 
593 __visible const u32 crypto_it_tab[4][256] ____    593 __visible const u32 crypto_it_tab[4][256] ____cacheline_aligned = {
594         {                                         594         {
595                 0x50a7f451, 0x5365417e, 0xc3a4    595                 0x50a7f451, 0x5365417e, 0xc3a4171a, 0x965e273a,
596                 0xcb6bab3b, 0xf1459d1f, 0xab58    596                 0xcb6bab3b, 0xf1459d1f, 0xab58faac, 0x9303e34b,
597                 0x55fa3020, 0xf66d76ad, 0x9176    597                 0x55fa3020, 0xf66d76ad, 0x9176cc88, 0x254c02f5,
598                 0xfcd7e54f, 0xd7cb2ac5, 0x8044    598                 0xfcd7e54f, 0xd7cb2ac5, 0x80443526, 0x8fa362b5,
599                 0x495ab1de, 0x671bba25, 0x980e    599                 0x495ab1de, 0x671bba25, 0x980eea45, 0xe1c0fe5d,
600                 0x02752fc3, 0x12f04c81, 0xa397    600                 0x02752fc3, 0x12f04c81, 0xa397468d, 0xc6f9d36b,
601                 0xe75f8f03, 0x959c9215, 0xeb7a    601                 0xe75f8f03, 0x959c9215, 0xeb7a6dbf, 0xda595295,
602                 0x2d83bed4, 0xd3217458, 0x2969    602                 0x2d83bed4, 0xd3217458, 0x2969e049, 0x44c8c98e,
603                 0x6a89c275, 0x78798ef4, 0x6b3e    603                 0x6a89c275, 0x78798ef4, 0x6b3e5899, 0xdd71b927,
604                 0xb64fe1be, 0x17ad88f0, 0x66ac    604                 0xb64fe1be, 0x17ad88f0, 0x66ac20c9, 0xb43ace7d,
605                 0x184adf63, 0x82311ae5, 0x6033    605                 0x184adf63, 0x82311ae5, 0x60335197, 0x457f5362,
606                 0xe07764b1, 0x84ae6bbb, 0x1ca0    606                 0xe07764b1, 0x84ae6bbb, 0x1ca081fe, 0x942b08f9,
607                 0x58684870, 0x19fd458f, 0x876c    607                 0x58684870, 0x19fd458f, 0x876cde94, 0xb7f87b52,
608                 0x23d373ab, 0xe2024b72, 0x578f    608                 0x23d373ab, 0xe2024b72, 0x578f1fe3, 0x2aab5566,
609                 0x0728ebb2, 0x03c2b52f, 0x9a7b    609                 0x0728ebb2, 0x03c2b52f, 0x9a7bc586, 0xa50837d3,
610                 0xf2872830, 0xb2a5bf23, 0xba6a    610                 0xf2872830, 0xb2a5bf23, 0xba6a0302, 0x5c8216ed,
611                 0x2b1ccf8a, 0x92b479a7, 0xf0f2    611                 0x2b1ccf8a, 0x92b479a7, 0xf0f207f3, 0xa1e2694e,
612                 0xcdf4da65, 0xd5be0506, 0x1f62    612                 0xcdf4da65, 0xd5be0506, 0x1f6234d1, 0x8afea6c4,
613                 0x9d532e34, 0xa055f3a2, 0x32e1    613                 0x9d532e34, 0xa055f3a2, 0x32e18a05, 0x75ebf6a4,
614                 0x39ec830b, 0xaaef6040, 0x069f    614                 0x39ec830b, 0xaaef6040, 0x069f715e, 0x51106ebd,
615                 0xf98a213e, 0x3d06dd96, 0xae05    615                 0xf98a213e, 0x3d06dd96, 0xae053edd, 0x46bde64d,
616                 0xb58d5491, 0x055dc471, 0x6fd4    616                 0xb58d5491, 0x055dc471, 0x6fd40604, 0xff155060,
617                 0x24fb9819, 0x97e9bdd6, 0xcc43    617                 0x24fb9819, 0x97e9bdd6, 0xcc434089, 0x779ed967,
618                 0xbd42e8b0, 0x888b8907, 0x385b    618                 0xbd42e8b0, 0x888b8907, 0x385b19e7, 0xdbeec879,
619                 0x470a7ca1, 0xe90f427c, 0xc91e    619                 0x470a7ca1, 0xe90f427c, 0xc91e84f8, 0x00000000,
620                 0x83868009, 0x48ed2b32, 0xac70    620                 0x83868009, 0x48ed2b32, 0xac70111e, 0x4e725a6c,
621                 0xfbff0efd, 0x5638850f, 0x1ed5    621                 0xfbff0efd, 0x5638850f, 0x1ed5ae3d, 0x27392d36,
622                 0x64d90f0a, 0x21a65c68, 0xd154    622                 0x64d90f0a, 0x21a65c68, 0xd1545b9b, 0x3a2e3624,
623                 0xb1670a0c, 0x0fe75793, 0xd296    623                 0xb1670a0c, 0x0fe75793, 0xd296eeb4, 0x9e919b1b,
624                 0x4fc5c080, 0xa220dc61, 0x694b    624                 0x4fc5c080, 0xa220dc61, 0x694b775a, 0x161a121c,
625                 0x0aba93e2, 0xe52aa0c0, 0x43e0    625                 0x0aba93e2, 0xe52aa0c0, 0x43e0223c, 0x1d171b12,
626                 0x0b0d090e, 0xadc78bf2, 0xb9a8    626                 0x0b0d090e, 0xadc78bf2, 0xb9a8b62d, 0xc8a91e14,
627                 0x8519f157, 0x4c0775af, 0xbbdd    627                 0x8519f157, 0x4c0775af, 0xbbdd99ee, 0xfd607fa3,
628                 0x9f2601f7, 0xbcf5725c, 0xc53b    628                 0x9f2601f7, 0xbcf5725c, 0xc53b6644, 0x347efb5b,
629                 0x7629438b, 0xdcc623cb, 0x68fc    629                 0x7629438b, 0xdcc623cb, 0x68fcedb6, 0x63f1e4b8,
630                 0xcadc31d7, 0x10856342, 0x4022    630                 0xcadc31d7, 0x10856342, 0x40229713, 0x2011c684,
631                 0x7d244a85, 0xf83dbbd2, 0x1132    631                 0x7d244a85, 0xf83dbbd2, 0x1132f9ae, 0x6da129c7,
632                 0x4b2f9e1d, 0xf330b2dc, 0xec52    632                 0x4b2f9e1d, 0xf330b2dc, 0xec52860d, 0xd0e3c177,
633                 0x6c16b32b, 0x99b970a9, 0xfa48    633                 0x6c16b32b, 0x99b970a9, 0xfa489411, 0x2264e947,
634                 0xc48cfca8, 0x1a3ff0a0, 0xd82c    634                 0xc48cfca8, 0x1a3ff0a0, 0xd82c7d56, 0xef903322,
635                 0xc74e4987, 0xc1d138d9, 0xfea2    635                 0xc74e4987, 0xc1d138d9, 0xfea2ca8c, 0x360bd498,
636                 0xcf81f5a6, 0x28de7aa5, 0x268e    636                 0xcf81f5a6, 0x28de7aa5, 0x268eb7da, 0xa4bfad3f,
637                 0xe49d3a2c, 0x0d927850, 0x9bcc    637                 0xe49d3a2c, 0x0d927850, 0x9bcc5f6a, 0x62467e54,
638                 0xc2138df6, 0xe8b8d890, 0x5ef7    638                 0xc2138df6, 0xe8b8d890, 0x5ef7392e, 0xf5afc382,
639                 0xbe805d9f, 0x7c93d069, 0xa92d    639                 0xbe805d9f, 0x7c93d069, 0xa92dd56f, 0xb31225cf,
640                 0x3b99acc8, 0xa77d1810, 0x6e63    640                 0x3b99acc8, 0xa77d1810, 0x6e639ce8, 0x7bbb3bdb,
641                 0x097826cd, 0xf418596e, 0x01b7    641                 0x097826cd, 0xf418596e, 0x01b79aec, 0xa89a4f83,
642                 0x656e95e6, 0x7ee6ffaa, 0x08cf    642                 0x656e95e6, 0x7ee6ffaa, 0x08cfbc21, 0xe6e815ef,
643                 0xd99be7ba, 0xce366f4a, 0xd409    643                 0xd99be7ba, 0xce366f4a, 0xd4099fea, 0xd67cb029,
644                 0xafb2a431, 0x31233f2a, 0x3094    644                 0xafb2a431, 0x31233f2a, 0x3094a5c6, 0xc066a235,
645                 0x37bc4e74, 0xa6ca82fc, 0xb0d0    645                 0x37bc4e74, 0xa6ca82fc, 0xb0d090e0, 0x15d8a733,
646                 0x4a9804f1, 0xf7daec41, 0x0e50    646                 0x4a9804f1, 0xf7daec41, 0x0e50cd7f, 0x2ff69117,
647                 0x8dd64d76, 0x4db0ef43, 0x544d    647                 0x8dd64d76, 0x4db0ef43, 0x544daacc, 0xdf0496e4,
648                 0xe3b5d19e, 0x1b886a4c, 0xb81f    648                 0xe3b5d19e, 0x1b886a4c, 0xb81f2cc1, 0x7f516546,
649                 0x04ea5e9d, 0x5d358c01, 0x7374    649                 0x04ea5e9d, 0x5d358c01, 0x737487fa, 0x2e410bfb,
650                 0x5a1d67b3, 0x52d2db92, 0x3356    650                 0x5a1d67b3, 0x52d2db92, 0x335610e9, 0x1347d66d,
651                 0x8c61d79a, 0x7a0ca137, 0x8e14    651                 0x8c61d79a, 0x7a0ca137, 0x8e14f859, 0x893c13eb,
652                 0xee27a9ce, 0x35c961b7, 0xede5    652                 0xee27a9ce, 0x35c961b7, 0xede51ce1, 0x3cb1477a,
653                 0x59dfd29c, 0x3f73f255, 0x79ce    653                 0x59dfd29c, 0x3f73f255, 0x79ce1418, 0xbf37c773,
654                 0xeacdf753, 0x5baafd5f, 0x146f    654                 0xeacdf753, 0x5baafd5f, 0x146f3ddf, 0x86db4478,
655                 0x81f3afca, 0x3ec468b9, 0x2c34    655                 0x81f3afca, 0x3ec468b9, 0x2c342438, 0x5f40a3c2,
656                 0x72c31d16, 0x0c25e2bc, 0x8b49    656                 0x72c31d16, 0x0c25e2bc, 0x8b493c28, 0x41950dff,
657                 0x7101a839, 0xdeb30c08, 0x9ce4    657                 0x7101a839, 0xdeb30c08, 0x9ce4b4d8, 0x90c15664,
658                 0x6184cb7b, 0x70b632d5, 0x745c    658                 0x6184cb7b, 0x70b632d5, 0x745c6c48, 0x4257b8d0,
659         }, {                                      659         }, {
660                 0xa7f45150, 0x65417e53, 0xa417    660                 0xa7f45150, 0x65417e53, 0xa4171ac3, 0x5e273a96,
661                 0x6bab3bcb, 0x459d1ff1, 0x58fa    661                 0x6bab3bcb, 0x459d1ff1, 0x58faacab, 0x03e34b93,
662                 0xfa302055, 0x6d76adf6, 0x76cc    662                 0xfa302055, 0x6d76adf6, 0x76cc8891, 0x4c02f525,
663                 0xd7e54ffc, 0xcb2ac5d7, 0x4435    663                 0xd7e54ffc, 0xcb2ac5d7, 0x44352680, 0xa362b58f,
664                 0x5ab1de49, 0x1bba2567, 0x0eea    664                 0x5ab1de49, 0x1bba2567, 0x0eea4598, 0xc0fe5de1,
665                 0x752fc302, 0xf04c8112, 0x9746    665                 0x752fc302, 0xf04c8112, 0x97468da3, 0xf9d36bc6,
666                 0x5f8f03e7, 0x9c921595, 0x7a6d    666                 0x5f8f03e7, 0x9c921595, 0x7a6dbfeb, 0x595295da,
667                 0x83bed42d, 0x217458d3, 0x69e0    667                 0x83bed42d, 0x217458d3, 0x69e04929, 0xc8c98e44,
668                 0x89c2756a, 0x798ef478, 0x3e58    668                 0x89c2756a, 0x798ef478, 0x3e58996b, 0x71b927dd,
669                 0x4fe1beb6, 0xad88f017, 0xac20    669                 0x4fe1beb6, 0xad88f017, 0xac20c966, 0x3ace7db4,
670                 0x4adf6318, 0x311ae582, 0x3351    670                 0x4adf6318, 0x311ae582, 0x33519760, 0x7f536245,
671                 0x7764b1e0, 0xae6bbb84, 0xa081    671                 0x7764b1e0, 0xae6bbb84, 0xa081fe1c, 0x2b08f994,
672                 0x68487058, 0xfd458f19, 0x6cde    672                 0x68487058, 0xfd458f19, 0x6cde9487, 0xf87b52b7,
673                 0xd373ab23, 0x024b72e2, 0x8f1f    673                 0xd373ab23, 0x024b72e2, 0x8f1fe357, 0xab55662a,
674                 0x28ebb207, 0xc2b52f03, 0x7bc5    674                 0x28ebb207, 0xc2b52f03, 0x7bc5869a, 0x0837d3a5,
675                 0x872830f2, 0xa5bf23b2, 0x6a03    675                 0x872830f2, 0xa5bf23b2, 0x6a0302ba, 0x8216ed5c,
676                 0x1ccf8a2b, 0xb479a792, 0xf207    676                 0x1ccf8a2b, 0xb479a792, 0xf207f3f0, 0xe2694ea1,
677                 0xf4da65cd, 0xbe0506d5, 0x6234    677                 0xf4da65cd, 0xbe0506d5, 0x6234d11f, 0xfea6c48a,
678                 0x532e349d, 0x55f3a2a0, 0xe18a    678                 0x532e349d, 0x55f3a2a0, 0xe18a0532, 0xebf6a475,
679                 0xec830b39, 0xef6040aa, 0x9f71    679                 0xec830b39, 0xef6040aa, 0x9f715e06, 0x106ebd51,
680                 0x8a213ef9, 0x06dd963d, 0x053e    680                 0x8a213ef9, 0x06dd963d, 0x053eddae, 0xbde64d46,
681                 0x8d5491b5, 0x5dc47105, 0xd406    681                 0x8d5491b5, 0x5dc47105, 0xd406046f, 0x155060ff,
682                 0xfb981924, 0xe9bdd697, 0x4340    682                 0xfb981924, 0xe9bdd697, 0x434089cc, 0x9ed96777,
683                 0x42e8b0bd, 0x8b890788, 0x5b19    683                 0x42e8b0bd, 0x8b890788, 0x5b19e738, 0xeec879db,
684                 0x0a7ca147, 0x0f427ce9, 0x1e84    684                 0x0a7ca147, 0x0f427ce9, 0x1e84f8c9, 0x00000000,
685                 0x86800983, 0xed2b3248, 0x7011    685                 0x86800983, 0xed2b3248, 0x70111eac, 0x725a6c4e,
686                 0xff0efdfb, 0x38850f56, 0xd5ae    686                 0xff0efdfb, 0x38850f56, 0xd5ae3d1e, 0x392d3627,
687                 0xd90f0a64, 0xa65c6821, 0x545b    687                 0xd90f0a64, 0xa65c6821, 0x545b9bd1, 0x2e36243a,
688                 0x670a0cb1, 0xe757930f, 0x96ee    688                 0x670a0cb1, 0xe757930f, 0x96eeb4d2, 0x919b1b9e,
689                 0xc5c0804f, 0x20dc61a2, 0x4b77    689                 0xc5c0804f, 0x20dc61a2, 0x4b775a69, 0x1a121c16,
690                 0xba93e20a, 0x2aa0c0e5, 0xe022    690                 0xba93e20a, 0x2aa0c0e5, 0xe0223c43, 0x171b121d,
691                 0x0d090e0b, 0xc78bf2ad, 0xa8b6    691                 0x0d090e0b, 0xc78bf2ad, 0xa8b62db9, 0xa91e14c8,
692                 0x19f15785, 0x0775af4c, 0xdd99    692                 0x19f15785, 0x0775af4c, 0xdd99eebb, 0x607fa3fd,
693                 0x2601f79f, 0xf5725cbc, 0x3b66    693                 0x2601f79f, 0xf5725cbc, 0x3b6644c5, 0x7efb5b34,
694                 0x29438b76, 0xc623cbdc, 0xfced    694                 0x29438b76, 0xc623cbdc, 0xfcedb668, 0xf1e4b863,
695                 0xdc31d7ca, 0x85634210, 0x2297    695                 0xdc31d7ca, 0x85634210, 0x22971340, 0x11c68420,
696                 0x244a857d, 0x3dbbd2f8, 0x32f9    696                 0x244a857d, 0x3dbbd2f8, 0x32f9ae11, 0xa129c76d,
697                 0x2f9e1d4b, 0x30b2dcf3, 0x5286    697                 0x2f9e1d4b, 0x30b2dcf3, 0x52860dec, 0xe3c177d0,
698                 0x16b32b6c, 0xb970a999, 0x4894    698                 0x16b32b6c, 0xb970a999, 0x489411fa, 0x64e94722,
699                 0x8cfca8c4, 0x3ff0a01a, 0x2c7d    699                 0x8cfca8c4, 0x3ff0a01a, 0x2c7d56d8, 0x903322ef,
700                 0x4e4987c7, 0xd138d9c1, 0xa2ca    700                 0x4e4987c7, 0xd138d9c1, 0xa2ca8cfe, 0x0bd49836,
701                 0x81f5a6cf, 0xde7aa528, 0x8eb7    701                 0x81f5a6cf, 0xde7aa528, 0x8eb7da26, 0xbfad3fa4,
702                 0x9d3a2ce4, 0x9278500d, 0xcc5f    702                 0x9d3a2ce4, 0x9278500d, 0xcc5f6a9b, 0x467e5462,
703                 0x138df6c2, 0xb8d890e8, 0xf739    703                 0x138df6c2, 0xb8d890e8, 0xf7392e5e, 0xafc382f5,
704                 0x805d9fbe, 0x93d0697c, 0x2dd5    704                 0x805d9fbe, 0x93d0697c, 0x2dd56fa9, 0x1225cfb3,
705                 0x99acc83b, 0x7d1810a7, 0x639c    705                 0x99acc83b, 0x7d1810a7, 0x639ce86e, 0xbb3bdb7b,
706                 0x7826cd09, 0x18596ef4, 0xb79a    706                 0x7826cd09, 0x18596ef4, 0xb79aec01, 0x9a4f83a8,
707                 0x6e95e665, 0xe6ffaa7e, 0xcfbc    707                 0x6e95e665, 0xe6ffaa7e, 0xcfbc2108, 0xe815efe6,
708                 0x9be7bad9, 0x366f4ace, 0x099f    708                 0x9be7bad9, 0x366f4ace, 0x099fead4, 0x7cb029d6,
709                 0xb2a431af, 0x233f2a31, 0x94a5    709                 0xb2a431af, 0x233f2a31, 0x94a5c630, 0x66a235c0,
710                 0xbc4e7437, 0xca82fca6, 0xd090    710                 0xbc4e7437, 0xca82fca6, 0xd090e0b0, 0xd8a73315,
711                 0x9804f14a, 0xdaec41f7, 0x50cd    711                 0x9804f14a, 0xdaec41f7, 0x50cd7f0e, 0xf691172f,
712                 0xd64d768d, 0xb0ef434d, 0x4daa    712                 0xd64d768d, 0xb0ef434d, 0x4daacc54, 0x0496e4df,
713                 0xb5d19ee3, 0x886a4c1b, 0x1f2c    713                 0xb5d19ee3, 0x886a4c1b, 0x1f2cc1b8, 0x5165467f,
714                 0xea5e9d04, 0x358c015d, 0x7487    714                 0xea5e9d04, 0x358c015d, 0x7487fa73, 0x410bfb2e,
715                 0x1d67b35a, 0xd2db9252, 0x5610    715                 0x1d67b35a, 0xd2db9252, 0x5610e933, 0x47d66d13,
716                 0x61d79a8c, 0x0ca1377a, 0x14f8    716                 0x61d79a8c, 0x0ca1377a, 0x14f8598e, 0x3c13eb89,
717                 0x27a9ceee, 0xc961b735, 0xe51c    717                 0x27a9ceee, 0xc961b735, 0xe51ce1ed, 0xb1477a3c,
718                 0xdfd29c59, 0x73f2553f, 0xce14    718                 0xdfd29c59, 0x73f2553f, 0xce141879, 0x37c773bf,
719                 0xcdf753ea, 0xaafd5f5b, 0x6f3d    719                 0xcdf753ea, 0xaafd5f5b, 0x6f3ddf14, 0xdb447886,
720                 0xf3afca81, 0xc468b93e, 0x3424    720                 0xf3afca81, 0xc468b93e, 0x3424382c, 0x40a3c25f,
721                 0xc31d1672, 0x25e2bc0c, 0x493c    721                 0xc31d1672, 0x25e2bc0c, 0x493c288b, 0x950dff41,
722                 0x01a83971, 0xb30c08de, 0xe4b4    722                 0x01a83971, 0xb30c08de, 0xe4b4d89c, 0xc1566490,
723                 0x84cb7b61, 0xb632d570, 0x5c6c    723                 0x84cb7b61, 0xb632d570, 0x5c6c4874, 0x57b8d042,
724         }, {                                      724         }, {
725                 0xf45150a7, 0x417e5365, 0x171a    725                 0xf45150a7, 0x417e5365, 0x171ac3a4, 0x273a965e,
726                 0xab3bcb6b, 0x9d1ff145, 0xfaac    726                 0xab3bcb6b, 0x9d1ff145, 0xfaacab58, 0xe34b9303,
727                 0x302055fa, 0x76adf66d, 0xcc88    727                 0x302055fa, 0x76adf66d, 0xcc889176, 0x02f5254c,
728                 0xe54ffcd7, 0x2ac5d7cb, 0x3526    728                 0xe54ffcd7, 0x2ac5d7cb, 0x35268044, 0x62b58fa3,
729                 0xb1de495a, 0xba25671b, 0xea45    729                 0xb1de495a, 0xba25671b, 0xea45980e, 0xfe5de1c0,
730                 0x2fc30275, 0x4c8112f0, 0x468d    730                 0x2fc30275, 0x4c8112f0, 0x468da397, 0xd36bc6f9,
731                 0x8f03e75f, 0x9215959c, 0x6dbf    731                 0x8f03e75f, 0x9215959c, 0x6dbfeb7a, 0x5295da59,
732                 0xbed42d83, 0x7458d321, 0xe049    732                 0xbed42d83, 0x7458d321, 0xe0492969, 0xc98e44c8,
733                 0xc2756a89, 0x8ef47879, 0x5899    733                 0xc2756a89, 0x8ef47879, 0x58996b3e, 0xb927dd71,
734                 0xe1beb64f, 0x88f017ad, 0x20c9    734                 0xe1beb64f, 0x88f017ad, 0x20c966ac, 0xce7db43a,
735                 0xdf63184a, 0x1ae58231, 0x5197    735                 0xdf63184a, 0x1ae58231, 0x51976033, 0x5362457f,
736                 0x64b1e077, 0x6bbb84ae, 0x81fe    736                 0x64b1e077, 0x6bbb84ae, 0x81fe1ca0, 0x08f9942b,
737                 0x48705868, 0x458f19fd, 0xde94    737                 0x48705868, 0x458f19fd, 0xde94876c, 0x7b52b7f8,
738                 0x73ab23d3, 0x4b72e202, 0x1fe3    738                 0x73ab23d3, 0x4b72e202, 0x1fe3578f, 0x55662aab,
739                 0xebb20728, 0xb52f03c2, 0xc586    739                 0xebb20728, 0xb52f03c2, 0xc5869a7b, 0x37d3a508,
740                 0x2830f287, 0xbf23b2a5, 0x0302    740                 0x2830f287, 0xbf23b2a5, 0x0302ba6a, 0x16ed5c82,
741                 0xcf8a2b1c, 0x79a792b4, 0x07f3    741                 0xcf8a2b1c, 0x79a792b4, 0x07f3f0f2, 0x694ea1e2,
742                 0xda65cdf4, 0x0506d5be, 0x34d1    742                 0xda65cdf4, 0x0506d5be, 0x34d11f62, 0xa6c48afe,
743                 0x2e349d53, 0xf3a2a055, 0x8a05    743                 0x2e349d53, 0xf3a2a055, 0x8a0532e1, 0xf6a475eb,
744                 0x830b39ec, 0x6040aaef, 0x715e    744                 0x830b39ec, 0x6040aaef, 0x715e069f, 0x6ebd5110,
745                 0x213ef98a, 0xdd963d06, 0x3edd    745                 0x213ef98a, 0xdd963d06, 0x3eddae05, 0xe64d46bd,
746                 0x5491b58d, 0xc471055d, 0x0604    746                 0x5491b58d, 0xc471055d, 0x06046fd4, 0x5060ff15,
747                 0x981924fb, 0xbdd697e9, 0x4089    747                 0x981924fb, 0xbdd697e9, 0x4089cc43, 0xd967779e,
748                 0xe8b0bd42, 0x8907888b, 0x19e7    748                 0xe8b0bd42, 0x8907888b, 0x19e7385b, 0xc879dbee,
749                 0x7ca1470a, 0x427ce90f, 0x84f8    749                 0x7ca1470a, 0x427ce90f, 0x84f8c91e, 0x00000000,
750                 0x80098386, 0x2b3248ed, 0x111e    750                 0x80098386, 0x2b3248ed, 0x111eac70, 0x5a6c4e72,
751                 0x0efdfbff, 0x850f5638, 0xae3d    751                 0x0efdfbff, 0x850f5638, 0xae3d1ed5, 0x2d362739,
752                 0x0f0a64d9, 0x5c6821a6, 0x5b9b    752                 0x0f0a64d9, 0x5c6821a6, 0x5b9bd154, 0x36243a2e,
753                 0x0a0cb167, 0x57930fe7, 0xeeb4    753                 0x0a0cb167, 0x57930fe7, 0xeeb4d296, 0x9b1b9e91,
754                 0xc0804fc5, 0xdc61a220, 0x775a    754                 0xc0804fc5, 0xdc61a220, 0x775a694b, 0x121c161a,
755                 0x93e20aba, 0xa0c0e52a, 0x223c    755                 0x93e20aba, 0xa0c0e52a, 0x223c43e0, 0x1b121d17,
756                 0x090e0b0d, 0x8bf2adc7, 0xb62d    756                 0x090e0b0d, 0x8bf2adc7, 0xb62db9a8, 0x1e14c8a9,
757                 0xf1578519, 0x75af4c07, 0x99ee    757                 0xf1578519, 0x75af4c07, 0x99eebbdd, 0x7fa3fd60,
758                 0x01f79f26, 0x725cbcf5, 0x6644    758                 0x01f79f26, 0x725cbcf5, 0x6644c53b, 0xfb5b347e,
759                 0x438b7629, 0x23cbdcc6, 0xedb6    759                 0x438b7629, 0x23cbdcc6, 0xedb668fc, 0xe4b863f1,
760                 0x31d7cadc, 0x63421085, 0x9713    760                 0x31d7cadc, 0x63421085, 0x97134022, 0xc6842011,
761                 0x4a857d24, 0xbbd2f83d, 0xf9ae    761                 0x4a857d24, 0xbbd2f83d, 0xf9ae1132, 0x29c76da1,
762                 0x9e1d4b2f, 0xb2dcf330, 0x860d    762                 0x9e1d4b2f, 0xb2dcf330, 0x860dec52, 0xc177d0e3,
763                 0xb32b6c16, 0x70a999b9, 0x9411    763                 0xb32b6c16, 0x70a999b9, 0x9411fa48, 0xe9472264,
764                 0xfca8c48c, 0xf0a01a3f, 0x7d56    764                 0xfca8c48c, 0xf0a01a3f, 0x7d56d82c, 0x3322ef90,
765                 0x4987c74e, 0x38d9c1d1, 0xca8c    765                 0x4987c74e, 0x38d9c1d1, 0xca8cfea2, 0xd498360b,
766                 0xf5a6cf81, 0x7aa528de, 0xb7da    766                 0xf5a6cf81, 0x7aa528de, 0xb7da268e, 0xad3fa4bf,
767                 0x3a2ce49d, 0x78500d92, 0x5f6a    767                 0x3a2ce49d, 0x78500d92, 0x5f6a9bcc, 0x7e546246,
768                 0x8df6c213, 0xd890e8b8, 0x392e    768                 0x8df6c213, 0xd890e8b8, 0x392e5ef7, 0xc382f5af,
769                 0x5d9fbe80, 0xd0697c93, 0xd56f    769                 0x5d9fbe80, 0xd0697c93, 0xd56fa92d, 0x25cfb312,
770                 0xacc83b99, 0x1810a77d, 0x9ce8    770                 0xacc83b99, 0x1810a77d, 0x9ce86e63, 0x3bdb7bbb,
771                 0x26cd0978, 0x596ef418, 0x9aec    771                 0x26cd0978, 0x596ef418, 0x9aec01b7, 0x4f83a89a,
772                 0x95e6656e, 0xffaa7ee6, 0xbc21    772                 0x95e6656e, 0xffaa7ee6, 0xbc2108cf, 0x15efe6e8,
773                 0xe7bad99b, 0x6f4ace36, 0x9fea    773                 0xe7bad99b, 0x6f4ace36, 0x9fead409, 0xb029d67c,
774                 0xa431afb2, 0x3f2a3123, 0xa5c6    774                 0xa431afb2, 0x3f2a3123, 0xa5c63094, 0xa235c066,
775                 0x4e7437bc, 0x82fca6ca, 0x90e0    775                 0x4e7437bc, 0x82fca6ca, 0x90e0b0d0, 0xa73315d8,
776                 0x04f14a98, 0xec41f7da, 0xcd7f    776                 0x04f14a98, 0xec41f7da, 0xcd7f0e50, 0x91172ff6,
777                 0x4d768dd6, 0xef434db0, 0xaacc    777                 0x4d768dd6, 0xef434db0, 0xaacc544d, 0x96e4df04,
778                 0xd19ee3b5, 0x6a4c1b88, 0x2cc1    778                 0xd19ee3b5, 0x6a4c1b88, 0x2cc1b81f, 0x65467f51,
779                 0x5e9d04ea, 0x8c015d35, 0x87fa    779                 0x5e9d04ea, 0x8c015d35, 0x87fa7374, 0x0bfb2e41,
780                 0x67b35a1d, 0xdb9252d2, 0x10e9    780                 0x67b35a1d, 0xdb9252d2, 0x10e93356, 0xd66d1347,
781                 0xd79a8c61, 0xa1377a0c, 0xf859    781                 0xd79a8c61, 0xa1377a0c, 0xf8598e14, 0x13eb893c,
782                 0xa9ceee27, 0x61b735c9, 0x1ce1    782                 0xa9ceee27, 0x61b735c9, 0x1ce1ede5, 0x477a3cb1,
783                 0xd29c59df, 0xf2553f73, 0x1418    783                 0xd29c59df, 0xf2553f73, 0x141879ce, 0xc773bf37,
784                 0xf753eacd, 0xfd5f5baa, 0x3ddf    784                 0xf753eacd, 0xfd5f5baa, 0x3ddf146f, 0x447886db,
785                 0xafca81f3, 0x68b93ec4, 0x2438    785                 0xafca81f3, 0x68b93ec4, 0x24382c34, 0xa3c25f40,
786                 0x1d1672c3, 0xe2bc0c25, 0x3c28    786                 0x1d1672c3, 0xe2bc0c25, 0x3c288b49, 0x0dff4195,
787                 0xa8397101, 0x0c08deb3, 0xb4d8    787                 0xa8397101, 0x0c08deb3, 0xb4d89ce4, 0x566490c1,
788                 0xcb7b6184, 0x32d570b6, 0x6c48    788                 0xcb7b6184, 0x32d570b6, 0x6c48745c, 0xb8d04257,
789         }, {                                      789         }, {
790                 0x5150a7f4, 0x7e536541, 0x1ac3    790                 0x5150a7f4, 0x7e536541, 0x1ac3a417, 0x3a965e27,
791                 0x3bcb6bab, 0x1ff1459d, 0xacab    791                 0x3bcb6bab, 0x1ff1459d, 0xacab58fa, 0x4b9303e3,
792                 0x2055fa30, 0xadf66d76, 0x8891    792                 0x2055fa30, 0xadf66d76, 0x889176cc, 0xf5254c02,
793                 0x4ffcd7e5, 0xc5d7cb2a, 0x2680    793                 0x4ffcd7e5, 0xc5d7cb2a, 0x26804435, 0xb58fa362,
794                 0xde495ab1, 0x25671bba, 0x4598    794                 0xde495ab1, 0x25671bba, 0x45980eea, 0x5de1c0fe,
795                 0xc302752f, 0x8112f04c, 0x8da3    795                 0xc302752f, 0x8112f04c, 0x8da39746, 0x6bc6f9d3,
796                 0x03e75f8f, 0x15959c92, 0xbfeb    796                 0x03e75f8f, 0x15959c92, 0xbfeb7a6d, 0x95da5952,
797                 0xd42d83be, 0x58d32174, 0x4929    797                 0xd42d83be, 0x58d32174, 0x492969e0, 0x8e44c8c9,
798                 0x756a89c2, 0xf478798e, 0x996b    798                 0x756a89c2, 0xf478798e, 0x996b3e58, 0x27dd71b9,
799                 0xbeb64fe1, 0xf017ad88, 0xc966    799                 0xbeb64fe1, 0xf017ad88, 0xc966ac20, 0x7db43ace,
800                 0x63184adf, 0xe582311a, 0x9760    800                 0x63184adf, 0xe582311a, 0x97603351, 0x62457f53,
801                 0xb1e07764, 0xbb84ae6b, 0xfe1c    801                 0xb1e07764, 0xbb84ae6b, 0xfe1ca081, 0xf9942b08,
802                 0x70586848, 0x8f19fd45, 0x9487    802                 0x70586848, 0x8f19fd45, 0x94876cde, 0x52b7f87b,
803                 0xab23d373, 0x72e2024b, 0xe357    803                 0xab23d373, 0x72e2024b, 0xe3578f1f, 0x662aab55,
804                 0xb20728eb, 0x2f03c2b5, 0x869a    804                 0xb20728eb, 0x2f03c2b5, 0x869a7bc5, 0xd3a50837,
805                 0x30f28728, 0x23b2a5bf, 0x02ba    805                 0x30f28728, 0x23b2a5bf, 0x02ba6a03, 0xed5c8216,
806                 0x8a2b1ccf, 0xa792b479, 0xf3f0    806                 0x8a2b1ccf, 0xa792b479, 0xf3f0f207, 0x4ea1e269,
807                 0x65cdf4da, 0x06d5be05, 0xd11f    807                 0x65cdf4da, 0x06d5be05, 0xd11f6234, 0xc48afea6,
808                 0x349d532e, 0xa2a055f3, 0x0532    808                 0x349d532e, 0xa2a055f3, 0x0532e18a, 0xa475ebf6,
809                 0x0b39ec83, 0x40aaef60, 0x5e06    809                 0x0b39ec83, 0x40aaef60, 0x5e069f71, 0xbd51106e,
810                 0x3ef98a21, 0x963d06dd, 0xddae    810                 0x3ef98a21, 0x963d06dd, 0xddae053e, 0x4d46bde6,
811                 0x91b58d54, 0x71055dc4, 0x046f    811                 0x91b58d54, 0x71055dc4, 0x046fd406, 0x60ff1550,
812                 0x1924fb98, 0xd697e9bd, 0x89cc    812                 0x1924fb98, 0xd697e9bd, 0x89cc4340, 0x67779ed9,
813                 0xb0bd42e8, 0x07888b89, 0xe738    813                 0xb0bd42e8, 0x07888b89, 0xe7385b19, 0x79dbeec8,
814                 0xa1470a7c, 0x7ce90f42, 0xf8c9    814                 0xa1470a7c, 0x7ce90f42, 0xf8c91e84, 0x00000000,
815                 0x09838680, 0x3248ed2b, 0x1eac    815                 0x09838680, 0x3248ed2b, 0x1eac7011, 0x6c4e725a,
816                 0xfdfbff0e, 0x0f563885, 0x3d1e    816                 0xfdfbff0e, 0x0f563885, 0x3d1ed5ae, 0x3627392d,
817                 0x0a64d90f, 0x6821a65c, 0x9bd1    817                 0x0a64d90f, 0x6821a65c, 0x9bd1545b, 0x243a2e36,
818                 0x0cb1670a, 0x930fe757, 0xb4d2    818                 0x0cb1670a, 0x930fe757, 0xb4d296ee, 0x1b9e919b,
819                 0x804fc5c0, 0x61a220dc, 0x5a69    819                 0x804fc5c0, 0x61a220dc, 0x5a694b77, 0x1c161a12,
820                 0xe20aba93, 0xc0e52aa0, 0x3c43    820                 0xe20aba93, 0xc0e52aa0, 0x3c43e022, 0x121d171b,
821                 0x0e0b0d09, 0xf2adc78b, 0x2db9    821                 0x0e0b0d09, 0xf2adc78b, 0x2db9a8b6, 0x14c8a91e,
822                 0x578519f1, 0xaf4c0775, 0xeebb    822                 0x578519f1, 0xaf4c0775, 0xeebbdd99, 0xa3fd607f,
823                 0xf79f2601, 0x5cbcf572, 0x44c5    823                 0xf79f2601, 0x5cbcf572, 0x44c53b66, 0x5b347efb,
824                 0x8b762943, 0xcbdcc623, 0xb668    824                 0x8b762943, 0xcbdcc623, 0xb668fced, 0xb863f1e4,
825                 0xd7cadc31, 0x42108563, 0x1340    825                 0xd7cadc31, 0x42108563, 0x13402297, 0x842011c6,
826                 0x857d244a, 0xd2f83dbb, 0xae11    826                 0x857d244a, 0xd2f83dbb, 0xae1132f9, 0xc76da129,
827                 0x1d4b2f9e, 0xdcf330b2, 0x0dec    827                 0x1d4b2f9e, 0xdcf330b2, 0x0dec5286, 0x77d0e3c1,
828                 0x2b6c16b3, 0xa999b970, 0x11fa    828                 0x2b6c16b3, 0xa999b970, 0x11fa4894, 0x472264e9,
829                 0xa8c48cfc, 0xa01a3ff0, 0x56d8    829                 0xa8c48cfc, 0xa01a3ff0, 0x56d82c7d, 0x22ef9033,
830                 0x87c74e49, 0xd9c1d138, 0x8cfe    830                 0x87c74e49, 0xd9c1d138, 0x8cfea2ca, 0x98360bd4,
831                 0xa6cf81f5, 0xa528de7a, 0xda26    831                 0xa6cf81f5, 0xa528de7a, 0xda268eb7, 0x3fa4bfad,
832                 0x2ce49d3a, 0x500d9278, 0x6a9b    832                 0x2ce49d3a, 0x500d9278, 0x6a9bcc5f, 0x5462467e,
833                 0xf6c2138d, 0x90e8b8d8, 0x2e5e    833                 0xf6c2138d, 0x90e8b8d8, 0x2e5ef739, 0x82f5afc3,
834                 0x9fbe805d, 0x697c93d0, 0x6fa9    834                 0x9fbe805d, 0x697c93d0, 0x6fa92dd5, 0xcfb31225,
835                 0xc83b99ac, 0x10a77d18, 0xe86e    835                 0xc83b99ac, 0x10a77d18, 0xe86e639c, 0xdb7bbb3b,
836                 0xcd097826, 0x6ef41859, 0xec01    836                 0xcd097826, 0x6ef41859, 0xec01b79a, 0x83a89a4f,
837                 0xe6656e95, 0xaa7ee6ff, 0x2108    837                 0xe6656e95, 0xaa7ee6ff, 0x2108cfbc, 0xefe6e815,
838                 0xbad99be7, 0x4ace366f, 0xead4    838                 0xbad99be7, 0x4ace366f, 0xead4099f, 0x29d67cb0,
839                 0x31afb2a4, 0x2a31233f, 0xc630    839                 0x31afb2a4, 0x2a31233f, 0xc63094a5, 0x35c066a2,
840                 0x7437bc4e, 0xfca6ca82, 0xe0b0    840                 0x7437bc4e, 0xfca6ca82, 0xe0b0d090, 0x3315d8a7,
841                 0xf14a9804, 0x41f7daec, 0x7f0e    841                 0xf14a9804, 0x41f7daec, 0x7f0e50cd, 0x172ff691,
842                 0x768dd64d, 0x434db0ef, 0xcc54    842                 0x768dd64d, 0x434db0ef, 0xcc544daa, 0xe4df0496,
843                 0x9ee3b5d1, 0x4c1b886a, 0xc1b8    843                 0x9ee3b5d1, 0x4c1b886a, 0xc1b81f2c, 0x467f5165,
844                 0x9d04ea5e, 0x015d358c, 0xfa73    844                 0x9d04ea5e, 0x015d358c, 0xfa737487, 0xfb2e410b,
845                 0xb35a1d67, 0x9252d2db, 0xe933    845                 0xb35a1d67, 0x9252d2db, 0xe9335610, 0x6d1347d6,
846                 0x9a8c61d7, 0x377a0ca1, 0x598e    846                 0x9a8c61d7, 0x377a0ca1, 0x598e14f8, 0xeb893c13,
847                 0xceee27a9, 0xb735c961, 0xe1ed    847                 0xceee27a9, 0xb735c961, 0xe1ede51c, 0x7a3cb147,
848                 0x9c59dfd2, 0x553f73f2, 0x1879    848                 0x9c59dfd2, 0x553f73f2, 0x1879ce14, 0x73bf37c7,
849                 0x53eacdf7, 0x5f5baafd, 0xdf14    849                 0x53eacdf7, 0x5f5baafd, 0xdf146f3d, 0x7886db44,
850                 0xca81f3af, 0xb93ec468, 0x382c    850                 0xca81f3af, 0xb93ec468, 0x382c3424, 0xc25f40a3,
851                 0x1672c31d, 0xbc0c25e2, 0x288b    851                 0x1672c31d, 0xbc0c25e2, 0x288b493c, 0xff41950d,
852                 0x397101a8, 0x08deb30c, 0xd89c    852                 0x397101a8, 0x08deb30c, 0xd89ce4b4, 0x6490c156,
853                 0x7b6184cb, 0xd570b632, 0x4874    853                 0x7b6184cb, 0xd570b632, 0x48745c6c, 0xd04257b8,
854         }                                         854         }
855 };                                                855 };
856                                                   856 
857 static const u32 crypto_il_tab[4][256] ____cac    857 static const u32 crypto_il_tab[4][256] ____cacheline_aligned = {
858         {                                         858         {
859                 0x00000052, 0x00000009, 0x0000    859                 0x00000052, 0x00000009, 0x0000006a, 0x000000d5,
860                 0x00000030, 0x00000036, 0x0000    860                 0x00000030, 0x00000036, 0x000000a5, 0x00000038,
861                 0x000000bf, 0x00000040, 0x0000    861                 0x000000bf, 0x00000040, 0x000000a3, 0x0000009e,
862                 0x00000081, 0x000000f3, 0x0000    862                 0x00000081, 0x000000f3, 0x000000d7, 0x000000fb,
863                 0x0000007c, 0x000000e3, 0x0000    863                 0x0000007c, 0x000000e3, 0x00000039, 0x00000082,
864                 0x0000009b, 0x0000002f, 0x0000    864                 0x0000009b, 0x0000002f, 0x000000ff, 0x00000087,
865                 0x00000034, 0x0000008e, 0x0000    865                 0x00000034, 0x0000008e, 0x00000043, 0x00000044,
866                 0x000000c4, 0x000000de, 0x0000    866                 0x000000c4, 0x000000de, 0x000000e9, 0x000000cb,
867                 0x00000054, 0x0000007b, 0x0000    867                 0x00000054, 0x0000007b, 0x00000094, 0x00000032,
868                 0x000000a6, 0x000000c2, 0x0000    868                 0x000000a6, 0x000000c2, 0x00000023, 0x0000003d,
869                 0x000000ee, 0x0000004c, 0x0000    869                 0x000000ee, 0x0000004c, 0x00000095, 0x0000000b,
870                 0x00000042, 0x000000fa, 0x0000    870                 0x00000042, 0x000000fa, 0x000000c3, 0x0000004e,
871                 0x00000008, 0x0000002e, 0x0000    871                 0x00000008, 0x0000002e, 0x000000a1, 0x00000066,
872                 0x00000028, 0x000000d9, 0x0000    872                 0x00000028, 0x000000d9, 0x00000024, 0x000000b2,
873                 0x00000076, 0x0000005b, 0x0000    873                 0x00000076, 0x0000005b, 0x000000a2, 0x00000049,
874                 0x0000006d, 0x0000008b, 0x0000    874                 0x0000006d, 0x0000008b, 0x000000d1, 0x00000025,
875                 0x00000072, 0x000000f8, 0x0000    875                 0x00000072, 0x000000f8, 0x000000f6, 0x00000064,
876                 0x00000086, 0x00000068, 0x0000    876                 0x00000086, 0x00000068, 0x00000098, 0x00000016,
877                 0x000000d4, 0x000000a4, 0x0000    877                 0x000000d4, 0x000000a4, 0x0000005c, 0x000000cc,
878                 0x0000005d, 0x00000065, 0x0000    878                 0x0000005d, 0x00000065, 0x000000b6, 0x00000092,
879                 0x0000006c, 0x00000070, 0x0000    879                 0x0000006c, 0x00000070, 0x00000048, 0x00000050,
880                 0x000000fd, 0x000000ed, 0x0000    880                 0x000000fd, 0x000000ed, 0x000000b9, 0x000000da,
881                 0x0000005e, 0x00000015, 0x0000    881                 0x0000005e, 0x00000015, 0x00000046, 0x00000057,
882                 0x000000a7, 0x0000008d, 0x0000    882                 0x000000a7, 0x0000008d, 0x0000009d, 0x00000084,
883                 0x00000090, 0x000000d8, 0x0000    883                 0x00000090, 0x000000d8, 0x000000ab, 0x00000000,
884                 0x0000008c, 0x000000bc, 0x0000    884                 0x0000008c, 0x000000bc, 0x000000d3, 0x0000000a,
885                 0x000000f7, 0x000000e4, 0x0000    885                 0x000000f7, 0x000000e4, 0x00000058, 0x00000005,
886                 0x000000b8, 0x000000b3, 0x0000    886                 0x000000b8, 0x000000b3, 0x00000045, 0x00000006,
887                 0x000000d0, 0x0000002c, 0x0000    887                 0x000000d0, 0x0000002c, 0x0000001e, 0x0000008f,
888                 0x000000ca, 0x0000003f, 0x0000    888                 0x000000ca, 0x0000003f, 0x0000000f, 0x00000002,
889                 0x000000c1, 0x000000af, 0x0000    889                 0x000000c1, 0x000000af, 0x000000bd, 0x00000003,
890                 0x00000001, 0x00000013, 0x0000    890                 0x00000001, 0x00000013, 0x0000008a, 0x0000006b,
891                 0x0000003a, 0x00000091, 0x0000    891                 0x0000003a, 0x00000091, 0x00000011, 0x00000041,
892                 0x0000004f, 0x00000067, 0x0000    892                 0x0000004f, 0x00000067, 0x000000dc, 0x000000ea,
893                 0x00000097, 0x000000f2, 0x0000    893                 0x00000097, 0x000000f2, 0x000000cf, 0x000000ce,
894                 0x000000f0, 0x000000b4, 0x0000    894                 0x000000f0, 0x000000b4, 0x000000e6, 0x00000073,
895                 0x00000096, 0x000000ac, 0x0000    895                 0x00000096, 0x000000ac, 0x00000074, 0x00000022,
896                 0x000000e7, 0x000000ad, 0x0000    896                 0x000000e7, 0x000000ad, 0x00000035, 0x00000085,
897                 0x000000e2, 0x000000f9, 0x0000    897                 0x000000e2, 0x000000f9, 0x00000037, 0x000000e8,
898                 0x0000001c, 0x00000075, 0x0000    898                 0x0000001c, 0x00000075, 0x000000df, 0x0000006e,
899                 0x00000047, 0x000000f1, 0x0000    899                 0x00000047, 0x000000f1, 0x0000001a, 0x00000071,
900                 0x0000001d, 0x00000029, 0x0000    900                 0x0000001d, 0x00000029, 0x000000c5, 0x00000089,
901                 0x0000006f, 0x000000b7, 0x0000    901                 0x0000006f, 0x000000b7, 0x00000062, 0x0000000e,
902                 0x000000aa, 0x00000018, 0x0000    902                 0x000000aa, 0x00000018, 0x000000be, 0x0000001b,
903                 0x000000fc, 0x00000056, 0x0000    903                 0x000000fc, 0x00000056, 0x0000003e, 0x0000004b,
904                 0x000000c6, 0x000000d2, 0x0000    904                 0x000000c6, 0x000000d2, 0x00000079, 0x00000020,
905                 0x0000009a, 0x000000db, 0x0000    905                 0x0000009a, 0x000000db, 0x000000c0, 0x000000fe,
906                 0x00000078, 0x000000cd, 0x0000    906                 0x00000078, 0x000000cd, 0x0000005a, 0x000000f4,
907                 0x0000001f, 0x000000dd, 0x0000    907                 0x0000001f, 0x000000dd, 0x000000a8, 0x00000033,
908                 0x00000088, 0x00000007, 0x0000    908                 0x00000088, 0x00000007, 0x000000c7, 0x00000031,
909                 0x000000b1, 0x00000012, 0x0000    909                 0x000000b1, 0x00000012, 0x00000010, 0x00000059,
910                 0x00000027, 0x00000080, 0x0000    910                 0x00000027, 0x00000080, 0x000000ec, 0x0000005f,
911                 0x00000060, 0x00000051, 0x0000    911                 0x00000060, 0x00000051, 0x0000007f, 0x000000a9,
912                 0x00000019, 0x000000b5, 0x0000    912                 0x00000019, 0x000000b5, 0x0000004a, 0x0000000d,
913                 0x0000002d, 0x000000e5, 0x0000    913                 0x0000002d, 0x000000e5, 0x0000007a, 0x0000009f,
914                 0x00000093, 0x000000c9, 0x0000    914                 0x00000093, 0x000000c9, 0x0000009c, 0x000000ef,
915                 0x000000a0, 0x000000e0, 0x0000    915                 0x000000a0, 0x000000e0, 0x0000003b, 0x0000004d,
916                 0x000000ae, 0x0000002a, 0x0000    916                 0x000000ae, 0x0000002a, 0x000000f5, 0x000000b0,
917                 0x000000c8, 0x000000eb, 0x0000    917                 0x000000c8, 0x000000eb, 0x000000bb, 0x0000003c,
918                 0x00000083, 0x00000053, 0x0000    918                 0x00000083, 0x00000053, 0x00000099, 0x00000061,
919                 0x00000017, 0x0000002b, 0x0000    919                 0x00000017, 0x0000002b, 0x00000004, 0x0000007e,
920                 0x000000ba, 0x00000077, 0x0000    920                 0x000000ba, 0x00000077, 0x000000d6, 0x00000026,
921                 0x000000e1, 0x00000069, 0x0000    921                 0x000000e1, 0x00000069, 0x00000014, 0x00000063,
922                 0x00000055, 0x00000021, 0x0000    922                 0x00000055, 0x00000021, 0x0000000c, 0x0000007d,
923         }, {                                      923         }, {
924                 0x00005200, 0x00000900, 0x0000    924                 0x00005200, 0x00000900, 0x00006a00, 0x0000d500,
925                 0x00003000, 0x00003600, 0x0000    925                 0x00003000, 0x00003600, 0x0000a500, 0x00003800,
926                 0x0000bf00, 0x00004000, 0x0000    926                 0x0000bf00, 0x00004000, 0x0000a300, 0x00009e00,
927                 0x00008100, 0x0000f300, 0x0000    927                 0x00008100, 0x0000f300, 0x0000d700, 0x0000fb00,
928                 0x00007c00, 0x0000e300, 0x0000    928                 0x00007c00, 0x0000e300, 0x00003900, 0x00008200,
929                 0x00009b00, 0x00002f00, 0x0000    929                 0x00009b00, 0x00002f00, 0x0000ff00, 0x00008700,
930                 0x00003400, 0x00008e00, 0x0000    930                 0x00003400, 0x00008e00, 0x00004300, 0x00004400,
931                 0x0000c400, 0x0000de00, 0x0000    931                 0x0000c400, 0x0000de00, 0x0000e900, 0x0000cb00,
932                 0x00005400, 0x00007b00, 0x0000    932                 0x00005400, 0x00007b00, 0x00009400, 0x00003200,
933                 0x0000a600, 0x0000c200, 0x0000    933                 0x0000a600, 0x0000c200, 0x00002300, 0x00003d00,
934                 0x0000ee00, 0x00004c00, 0x0000    934                 0x0000ee00, 0x00004c00, 0x00009500, 0x00000b00,
935                 0x00004200, 0x0000fa00, 0x0000    935                 0x00004200, 0x0000fa00, 0x0000c300, 0x00004e00,
936                 0x00000800, 0x00002e00, 0x0000    936                 0x00000800, 0x00002e00, 0x0000a100, 0x00006600,
937                 0x00002800, 0x0000d900, 0x0000    937                 0x00002800, 0x0000d900, 0x00002400, 0x0000b200,
938                 0x00007600, 0x00005b00, 0x0000    938                 0x00007600, 0x00005b00, 0x0000a200, 0x00004900,
939                 0x00006d00, 0x00008b00, 0x0000    939                 0x00006d00, 0x00008b00, 0x0000d100, 0x00002500,
940                 0x00007200, 0x0000f800, 0x0000    940                 0x00007200, 0x0000f800, 0x0000f600, 0x00006400,
941                 0x00008600, 0x00006800, 0x0000    941                 0x00008600, 0x00006800, 0x00009800, 0x00001600,
942                 0x0000d400, 0x0000a400, 0x0000    942                 0x0000d400, 0x0000a400, 0x00005c00, 0x0000cc00,
943                 0x00005d00, 0x00006500, 0x0000    943                 0x00005d00, 0x00006500, 0x0000b600, 0x00009200,
944                 0x00006c00, 0x00007000, 0x0000    944                 0x00006c00, 0x00007000, 0x00004800, 0x00005000,
945                 0x0000fd00, 0x0000ed00, 0x0000    945                 0x0000fd00, 0x0000ed00, 0x0000b900, 0x0000da00,
946                 0x00005e00, 0x00001500, 0x0000    946                 0x00005e00, 0x00001500, 0x00004600, 0x00005700,
947                 0x0000a700, 0x00008d00, 0x0000    947                 0x0000a700, 0x00008d00, 0x00009d00, 0x00008400,
948                 0x00009000, 0x0000d800, 0x0000    948                 0x00009000, 0x0000d800, 0x0000ab00, 0x00000000,
949                 0x00008c00, 0x0000bc00, 0x0000    949                 0x00008c00, 0x0000bc00, 0x0000d300, 0x00000a00,
950                 0x0000f700, 0x0000e400, 0x0000    950                 0x0000f700, 0x0000e400, 0x00005800, 0x00000500,
951                 0x0000b800, 0x0000b300, 0x0000    951                 0x0000b800, 0x0000b300, 0x00004500, 0x00000600,
952                 0x0000d000, 0x00002c00, 0x0000    952                 0x0000d000, 0x00002c00, 0x00001e00, 0x00008f00,
953                 0x0000ca00, 0x00003f00, 0x0000    953                 0x0000ca00, 0x00003f00, 0x00000f00, 0x00000200,
954                 0x0000c100, 0x0000af00, 0x0000    954                 0x0000c100, 0x0000af00, 0x0000bd00, 0x00000300,
955                 0x00000100, 0x00001300, 0x0000    955                 0x00000100, 0x00001300, 0x00008a00, 0x00006b00,
956                 0x00003a00, 0x00009100, 0x0000    956                 0x00003a00, 0x00009100, 0x00001100, 0x00004100,
957                 0x00004f00, 0x00006700, 0x0000    957                 0x00004f00, 0x00006700, 0x0000dc00, 0x0000ea00,
958                 0x00009700, 0x0000f200, 0x0000    958                 0x00009700, 0x0000f200, 0x0000cf00, 0x0000ce00,
959                 0x0000f000, 0x0000b400, 0x0000    959                 0x0000f000, 0x0000b400, 0x0000e600, 0x00007300,
960                 0x00009600, 0x0000ac00, 0x0000    960                 0x00009600, 0x0000ac00, 0x00007400, 0x00002200,
961                 0x0000e700, 0x0000ad00, 0x0000    961                 0x0000e700, 0x0000ad00, 0x00003500, 0x00008500,
962                 0x0000e200, 0x0000f900, 0x0000    962                 0x0000e200, 0x0000f900, 0x00003700, 0x0000e800,
963                 0x00001c00, 0x00007500, 0x0000    963                 0x00001c00, 0x00007500, 0x0000df00, 0x00006e00,
964                 0x00004700, 0x0000f100, 0x0000    964                 0x00004700, 0x0000f100, 0x00001a00, 0x00007100,
965                 0x00001d00, 0x00002900, 0x0000    965                 0x00001d00, 0x00002900, 0x0000c500, 0x00008900,
966                 0x00006f00, 0x0000b700, 0x0000    966                 0x00006f00, 0x0000b700, 0x00006200, 0x00000e00,
967                 0x0000aa00, 0x00001800, 0x0000    967                 0x0000aa00, 0x00001800, 0x0000be00, 0x00001b00,
968                 0x0000fc00, 0x00005600, 0x0000    968                 0x0000fc00, 0x00005600, 0x00003e00, 0x00004b00,
969                 0x0000c600, 0x0000d200, 0x0000    969                 0x0000c600, 0x0000d200, 0x00007900, 0x00002000,
970                 0x00009a00, 0x0000db00, 0x0000    970                 0x00009a00, 0x0000db00, 0x0000c000, 0x0000fe00,
971                 0x00007800, 0x0000cd00, 0x0000    971                 0x00007800, 0x0000cd00, 0x00005a00, 0x0000f400,
972                 0x00001f00, 0x0000dd00, 0x0000    972                 0x00001f00, 0x0000dd00, 0x0000a800, 0x00003300,
973                 0x00008800, 0x00000700, 0x0000    973                 0x00008800, 0x00000700, 0x0000c700, 0x00003100,
974                 0x0000b100, 0x00001200, 0x0000    974                 0x0000b100, 0x00001200, 0x00001000, 0x00005900,
975                 0x00002700, 0x00008000, 0x0000    975                 0x00002700, 0x00008000, 0x0000ec00, 0x00005f00,
976                 0x00006000, 0x00005100, 0x0000    976                 0x00006000, 0x00005100, 0x00007f00, 0x0000a900,
977                 0x00001900, 0x0000b500, 0x0000    977                 0x00001900, 0x0000b500, 0x00004a00, 0x00000d00,
978                 0x00002d00, 0x0000e500, 0x0000    978                 0x00002d00, 0x0000e500, 0x00007a00, 0x00009f00,
979                 0x00009300, 0x0000c900, 0x0000    979                 0x00009300, 0x0000c900, 0x00009c00, 0x0000ef00,
980                 0x0000a000, 0x0000e000, 0x0000    980                 0x0000a000, 0x0000e000, 0x00003b00, 0x00004d00,
981                 0x0000ae00, 0x00002a00, 0x0000    981                 0x0000ae00, 0x00002a00, 0x0000f500, 0x0000b000,
982                 0x0000c800, 0x0000eb00, 0x0000    982                 0x0000c800, 0x0000eb00, 0x0000bb00, 0x00003c00,
983                 0x00008300, 0x00005300, 0x0000    983                 0x00008300, 0x00005300, 0x00009900, 0x00006100,
984                 0x00001700, 0x00002b00, 0x0000    984                 0x00001700, 0x00002b00, 0x00000400, 0x00007e00,
985                 0x0000ba00, 0x00007700, 0x0000    985                 0x0000ba00, 0x00007700, 0x0000d600, 0x00002600,
986                 0x0000e100, 0x00006900, 0x0000    986                 0x0000e100, 0x00006900, 0x00001400, 0x00006300,
987                 0x00005500, 0x00002100, 0x0000    987                 0x00005500, 0x00002100, 0x00000c00, 0x00007d00,
988         }, {                                      988         }, {
989                 0x00520000, 0x00090000, 0x006a    989                 0x00520000, 0x00090000, 0x006a0000, 0x00d50000,
990                 0x00300000, 0x00360000, 0x00a5    990                 0x00300000, 0x00360000, 0x00a50000, 0x00380000,
991                 0x00bf0000, 0x00400000, 0x00a3    991                 0x00bf0000, 0x00400000, 0x00a30000, 0x009e0000,
992                 0x00810000, 0x00f30000, 0x00d7    992                 0x00810000, 0x00f30000, 0x00d70000, 0x00fb0000,
993                 0x007c0000, 0x00e30000, 0x0039    993                 0x007c0000, 0x00e30000, 0x00390000, 0x00820000,
994                 0x009b0000, 0x002f0000, 0x00ff    994                 0x009b0000, 0x002f0000, 0x00ff0000, 0x00870000,
995                 0x00340000, 0x008e0000, 0x0043    995                 0x00340000, 0x008e0000, 0x00430000, 0x00440000,
996                 0x00c40000, 0x00de0000, 0x00e9    996                 0x00c40000, 0x00de0000, 0x00e90000, 0x00cb0000,
997                 0x00540000, 0x007b0000, 0x0094    997                 0x00540000, 0x007b0000, 0x00940000, 0x00320000,
998                 0x00a60000, 0x00c20000, 0x0023    998                 0x00a60000, 0x00c20000, 0x00230000, 0x003d0000,
999                 0x00ee0000, 0x004c0000, 0x0095    999                 0x00ee0000, 0x004c0000, 0x00950000, 0x000b0000,
1000                 0x00420000, 0x00fa0000, 0x00c    1000                 0x00420000, 0x00fa0000, 0x00c30000, 0x004e0000,
1001                 0x00080000, 0x002e0000, 0x00a    1001                 0x00080000, 0x002e0000, 0x00a10000, 0x00660000,
1002                 0x00280000, 0x00d90000, 0x002    1002                 0x00280000, 0x00d90000, 0x00240000, 0x00b20000,
1003                 0x00760000, 0x005b0000, 0x00a    1003                 0x00760000, 0x005b0000, 0x00a20000, 0x00490000,
1004                 0x006d0000, 0x008b0000, 0x00d    1004                 0x006d0000, 0x008b0000, 0x00d10000, 0x00250000,
1005                 0x00720000, 0x00f80000, 0x00f    1005                 0x00720000, 0x00f80000, 0x00f60000, 0x00640000,
1006                 0x00860000, 0x00680000, 0x009    1006                 0x00860000, 0x00680000, 0x00980000, 0x00160000,
1007                 0x00d40000, 0x00a40000, 0x005    1007                 0x00d40000, 0x00a40000, 0x005c0000, 0x00cc0000,
1008                 0x005d0000, 0x00650000, 0x00b    1008                 0x005d0000, 0x00650000, 0x00b60000, 0x00920000,
1009                 0x006c0000, 0x00700000, 0x004    1009                 0x006c0000, 0x00700000, 0x00480000, 0x00500000,
1010                 0x00fd0000, 0x00ed0000, 0x00b    1010                 0x00fd0000, 0x00ed0000, 0x00b90000, 0x00da0000,
1011                 0x005e0000, 0x00150000, 0x004    1011                 0x005e0000, 0x00150000, 0x00460000, 0x00570000,
1012                 0x00a70000, 0x008d0000, 0x009    1012                 0x00a70000, 0x008d0000, 0x009d0000, 0x00840000,
1013                 0x00900000, 0x00d80000, 0x00a    1013                 0x00900000, 0x00d80000, 0x00ab0000, 0x00000000,
1014                 0x008c0000, 0x00bc0000, 0x00d    1014                 0x008c0000, 0x00bc0000, 0x00d30000, 0x000a0000,
1015                 0x00f70000, 0x00e40000, 0x005    1015                 0x00f70000, 0x00e40000, 0x00580000, 0x00050000,
1016                 0x00b80000, 0x00b30000, 0x004    1016                 0x00b80000, 0x00b30000, 0x00450000, 0x00060000,
1017                 0x00d00000, 0x002c0000, 0x001    1017                 0x00d00000, 0x002c0000, 0x001e0000, 0x008f0000,
1018                 0x00ca0000, 0x003f0000, 0x000    1018                 0x00ca0000, 0x003f0000, 0x000f0000, 0x00020000,
1019                 0x00c10000, 0x00af0000, 0x00b    1019                 0x00c10000, 0x00af0000, 0x00bd0000, 0x00030000,
1020                 0x00010000, 0x00130000, 0x008    1020                 0x00010000, 0x00130000, 0x008a0000, 0x006b0000,
1021                 0x003a0000, 0x00910000, 0x001    1021                 0x003a0000, 0x00910000, 0x00110000, 0x00410000,
1022                 0x004f0000, 0x00670000, 0x00d    1022                 0x004f0000, 0x00670000, 0x00dc0000, 0x00ea0000,
1023                 0x00970000, 0x00f20000, 0x00c    1023                 0x00970000, 0x00f20000, 0x00cf0000, 0x00ce0000,
1024                 0x00f00000, 0x00b40000, 0x00e    1024                 0x00f00000, 0x00b40000, 0x00e60000, 0x00730000,
1025                 0x00960000, 0x00ac0000, 0x007    1025                 0x00960000, 0x00ac0000, 0x00740000, 0x00220000,
1026                 0x00e70000, 0x00ad0000, 0x003    1026                 0x00e70000, 0x00ad0000, 0x00350000, 0x00850000,
1027                 0x00e20000, 0x00f90000, 0x003    1027                 0x00e20000, 0x00f90000, 0x00370000, 0x00e80000,
1028                 0x001c0000, 0x00750000, 0x00d    1028                 0x001c0000, 0x00750000, 0x00df0000, 0x006e0000,
1029                 0x00470000, 0x00f10000, 0x001    1029                 0x00470000, 0x00f10000, 0x001a0000, 0x00710000,
1030                 0x001d0000, 0x00290000, 0x00c    1030                 0x001d0000, 0x00290000, 0x00c50000, 0x00890000,
1031                 0x006f0000, 0x00b70000, 0x006    1031                 0x006f0000, 0x00b70000, 0x00620000, 0x000e0000,
1032                 0x00aa0000, 0x00180000, 0x00b    1032                 0x00aa0000, 0x00180000, 0x00be0000, 0x001b0000,
1033                 0x00fc0000, 0x00560000, 0x003    1033                 0x00fc0000, 0x00560000, 0x003e0000, 0x004b0000,
1034                 0x00c60000, 0x00d20000, 0x007    1034                 0x00c60000, 0x00d20000, 0x00790000, 0x00200000,
1035                 0x009a0000, 0x00db0000, 0x00c    1035                 0x009a0000, 0x00db0000, 0x00c00000, 0x00fe0000,
1036                 0x00780000, 0x00cd0000, 0x005    1036                 0x00780000, 0x00cd0000, 0x005a0000, 0x00f40000,
1037                 0x001f0000, 0x00dd0000, 0x00a    1037                 0x001f0000, 0x00dd0000, 0x00a80000, 0x00330000,
1038                 0x00880000, 0x00070000, 0x00c    1038                 0x00880000, 0x00070000, 0x00c70000, 0x00310000,
1039                 0x00b10000, 0x00120000, 0x001    1039                 0x00b10000, 0x00120000, 0x00100000, 0x00590000,
1040                 0x00270000, 0x00800000, 0x00e    1040                 0x00270000, 0x00800000, 0x00ec0000, 0x005f0000,
1041                 0x00600000, 0x00510000, 0x007    1041                 0x00600000, 0x00510000, 0x007f0000, 0x00a90000,
1042                 0x00190000, 0x00b50000, 0x004    1042                 0x00190000, 0x00b50000, 0x004a0000, 0x000d0000,
1043                 0x002d0000, 0x00e50000, 0x007    1043                 0x002d0000, 0x00e50000, 0x007a0000, 0x009f0000,
1044                 0x00930000, 0x00c90000, 0x009    1044                 0x00930000, 0x00c90000, 0x009c0000, 0x00ef0000,
1045                 0x00a00000, 0x00e00000, 0x003    1045                 0x00a00000, 0x00e00000, 0x003b0000, 0x004d0000,
1046                 0x00ae0000, 0x002a0000, 0x00f    1046                 0x00ae0000, 0x002a0000, 0x00f50000, 0x00b00000,
1047                 0x00c80000, 0x00eb0000, 0x00b    1047                 0x00c80000, 0x00eb0000, 0x00bb0000, 0x003c0000,
1048                 0x00830000, 0x00530000, 0x009    1048                 0x00830000, 0x00530000, 0x00990000, 0x00610000,
1049                 0x00170000, 0x002b0000, 0x000    1049                 0x00170000, 0x002b0000, 0x00040000, 0x007e0000,
1050                 0x00ba0000, 0x00770000, 0x00d    1050                 0x00ba0000, 0x00770000, 0x00d60000, 0x00260000,
1051                 0x00e10000, 0x00690000, 0x001    1051                 0x00e10000, 0x00690000, 0x00140000, 0x00630000,
1052                 0x00550000, 0x00210000, 0x000    1052                 0x00550000, 0x00210000, 0x000c0000, 0x007d0000,
1053         }, {                                     1053         }, {
1054                 0x52000000, 0x09000000, 0x6a0    1054                 0x52000000, 0x09000000, 0x6a000000, 0xd5000000,
1055                 0x30000000, 0x36000000, 0xa50    1055                 0x30000000, 0x36000000, 0xa5000000, 0x38000000,
1056                 0xbf000000, 0x40000000, 0xa30    1056                 0xbf000000, 0x40000000, 0xa3000000, 0x9e000000,
1057                 0x81000000, 0xf3000000, 0xd70    1057                 0x81000000, 0xf3000000, 0xd7000000, 0xfb000000,
1058                 0x7c000000, 0xe3000000, 0x390    1058                 0x7c000000, 0xe3000000, 0x39000000, 0x82000000,
1059                 0x9b000000, 0x2f000000, 0xff0    1059                 0x9b000000, 0x2f000000, 0xff000000, 0x87000000,
1060                 0x34000000, 0x8e000000, 0x430    1060                 0x34000000, 0x8e000000, 0x43000000, 0x44000000,
1061                 0xc4000000, 0xde000000, 0xe90    1061                 0xc4000000, 0xde000000, 0xe9000000, 0xcb000000,
1062                 0x54000000, 0x7b000000, 0x940    1062                 0x54000000, 0x7b000000, 0x94000000, 0x32000000,
1063                 0xa6000000, 0xc2000000, 0x230    1063                 0xa6000000, 0xc2000000, 0x23000000, 0x3d000000,
1064                 0xee000000, 0x4c000000, 0x950    1064                 0xee000000, 0x4c000000, 0x95000000, 0x0b000000,
1065                 0x42000000, 0xfa000000, 0xc30    1065                 0x42000000, 0xfa000000, 0xc3000000, 0x4e000000,
1066                 0x08000000, 0x2e000000, 0xa10    1066                 0x08000000, 0x2e000000, 0xa1000000, 0x66000000,
1067                 0x28000000, 0xd9000000, 0x240    1067                 0x28000000, 0xd9000000, 0x24000000, 0xb2000000,
1068                 0x76000000, 0x5b000000, 0xa20    1068                 0x76000000, 0x5b000000, 0xa2000000, 0x49000000,
1069                 0x6d000000, 0x8b000000, 0xd10    1069                 0x6d000000, 0x8b000000, 0xd1000000, 0x25000000,
1070                 0x72000000, 0xf8000000, 0xf60    1070                 0x72000000, 0xf8000000, 0xf6000000, 0x64000000,
1071                 0x86000000, 0x68000000, 0x980    1071                 0x86000000, 0x68000000, 0x98000000, 0x16000000,
1072                 0xd4000000, 0xa4000000, 0x5c0    1072                 0xd4000000, 0xa4000000, 0x5c000000, 0xcc000000,
1073                 0x5d000000, 0x65000000, 0xb60    1073                 0x5d000000, 0x65000000, 0xb6000000, 0x92000000,
1074                 0x6c000000, 0x70000000, 0x480    1074                 0x6c000000, 0x70000000, 0x48000000, 0x50000000,
1075                 0xfd000000, 0xed000000, 0xb90    1075                 0xfd000000, 0xed000000, 0xb9000000, 0xda000000,
1076                 0x5e000000, 0x15000000, 0x460    1076                 0x5e000000, 0x15000000, 0x46000000, 0x57000000,
1077                 0xa7000000, 0x8d000000, 0x9d0    1077                 0xa7000000, 0x8d000000, 0x9d000000, 0x84000000,
1078                 0x90000000, 0xd8000000, 0xab0    1078                 0x90000000, 0xd8000000, 0xab000000, 0x00000000,
1079                 0x8c000000, 0xbc000000, 0xd30    1079                 0x8c000000, 0xbc000000, 0xd3000000, 0x0a000000,
1080                 0xf7000000, 0xe4000000, 0x580    1080                 0xf7000000, 0xe4000000, 0x58000000, 0x05000000,
1081                 0xb8000000, 0xb3000000, 0x450    1081                 0xb8000000, 0xb3000000, 0x45000000, 0x06000000,
1082                 0xd0000000, 0x2c000000, 0x1e0    1082                 0xd0000000, 0x2c000000, 0x1e000000, 0x8f000000,
1083                 0xca000000, 0x3f000000, 0x0f0    1083                 0xca000000, 0x3f000000, 0x0f000000, 0x02000000,
1084                 0xc1000000, 0xaf000000, 0xbd0    1084                 0xc1000000, 0xaf000000, 0xbd000000, 0x03000000,
1085                 0x01000000, 0x13000000, 0x8a0    1085                 0x01000000, 0x13000000, 0x8a000000, 0x6b000000,
1086                 0x3a000000, 0x91000000, 0x110    1086                 0x3a000000, 0x91000000, 0x11000000, 0x41000000,
1087                 0x4f000000, 0x67000000, 0xdc0    1087                 0x4f000000, 0x67000000, 0xdc000000, 0xea000000,
1088                 0x97000000, 0xf2000000, 0xcf0    1088                 0x97000000, 0xf2000000, 0xcf000000, 0xce000000,
1089                 0xf0000000, 0xb4000000, 0xe60    1089                 0xf0000000, 0xb4000000, 0xe6000000, 0x73000000,
1090                 0x96000000, 0xac000000, 0x740    1090                 0x96000000, 0xac000000, 0x74000000, 0x22000000,
1091                 0xe7000000, 0xad000000, 0x350    1091                 0xe7000000, 0xad000000, 0x35000000, 0x85000000,
1092                 0xe2000000, 0xf9000000, 0x370    1092                 0xe2000000, 0xf9000000, 0x37000000, 0xe8000000,
1093                 0x1c000000, 0x75000000, 0xdf0    1093                 0x1c000000, 0x75000000, 0xdf000000, 0x6e000000,
1094                 0x47000000, 0xf1000000, 0x1a0    1094                 0x47000000, 0xf1000000, 0x1a000000, 0x71000000,
1095                 0x1d000000, 0x29000000, 0xc50    1095                 0x1d000000, 0x29000000, 0xc5000000, 0x89000000,
1096                 0x6f000000, 0xb7000000, 0x620    1096                 0x6f000000, 0xb7000000, 0x62000000, 0x0e000000,
1097                 0xaa000000, 0x18000000, 0xbe0    1097                 0xaa000000, 0x18000000, 0xbe000000, 0x1b000000,
1098                 0xfc000000, 0x56000000, 0x3e0    1098                 0xfc000000, 0x56000000, 0x3e000000, 0x4b000000,
1099                 0xc6000000, 0xd2000000, 0x790    1099                 0xc6000000, 0xd2000000, 0x79000000, 0x20000000,
1100                 0x9a000000, 0xdb000000, 0xc00    1100                 0x9a000000, 0xdb000000, 0xc0000000, 0xfe000000,
1101                 0x78000000, 0xcd000000, 0x5a0    1101                 0x78000000, 0xcd000000, 0x5a000000, 0xf4000000,
1102                 0x1f000000, 0xdd000000, 0xa80    1102                 0x1f000000, 0xdd000000, 0xa8000000, 0x33000000,
1103                 0x88000000, 0x07000000, 0xc70    1103                 0x88000000, 0x07000000, 0xc7000000, 0x31000000,
1104                 0xb1000000, 0x12000000, 0x100    1104                 0xb1000000, 0x12000000, 0x10000000, 0x59000000,
1105                 0x27000000, 0x80000000, 0xec0    1105                 0x27000000, 0x80000000, 0xec000000, 0x5f000000,
1106                 0x60000000, 0x51000000, 0x7f0    1106                 0x60000000, 0x51000000, 0x7f000000, 0xa9000000,
1107                 0x19000000, 0xb5000000, 0x4a0    1107                 0x19000000, 0xb5000000, 0x4a000000, 0x0d000000,
1108                 0x2d000000, 0xe5000000, 0x7a0    1108                 0x2d000000, 0xe5000000, 0x7a000000, 0x9f000000,
1109                 0x93000000, 0xc9000000, 0x9c0    1109                 0x93000000, 0xc9000000, 0x9c000000, 0xef000000,
1110                 0xa0000000, 0xe0000000, 0x3b0    1110                 0xa0000000, 0xe0000000, 0x3b000000, 0x4d000000,
1111                 0xae000000, 0x2a000000, 0xf50    1111                 0xae000000, 0x2a000000, 0xf5000000, 0xb0000000,
1112                 0xc8000000, 0xeb000000, 0xbb0    1112                 0xc8000000, 0xeb000000, 0xbb000000, 0x3c000000,
1113                 0x83000000, 0x53000000, 0x990    1113                 0x83000000, 0x53000000, 0x99000000, 0x61000000,
1114                 0x17000000, 0x2b000000, 0x040    1114                 0x17000000, 0x2b000000, 0x04000000, 0x7e000000,
1115                 0xba000000, 0x77000000, 0xd60    1115                 0xba000000, 0x77000000, 0xd6000000, 0x26000000,
1116                 0xe1000000, 0x69000000, 0x140    1116                 0xe1000000, 0x69000000, 0x14000000, 0x63000000,
1117                 0x55000000, 0x21000000, 0x0c0    1117                 0x55000000, 0x21000000, 0x0c000000, 0x7d000000,
1118         }                                        1118         }
1119 };                                               1119 };
1120                                                  1120 
1121 EXPORT_SYMBOL_GPL(crypto_ft_tab);                1121 EXPORT_SYMBOL_GPL(crypto_ft_tab);
1122 EXPORT_SYMBOL_GPL(crypto_it_tab);                1122 EXPORT_SYMBOL_GPL(crypto_it_tab);
1123                                                  1123 
1124 /**                                              1124 /**
1125  * crypto_aes_set_key - Set the AES key.         1125  * crypto_aes_set_key - Set the AES key.
1126  * @tfm:        The %crypto_tfm that is used     1126  * @tfm:        The %crypto_tfm that is used in the context.
1127  * @in_key:     The input key.                   1127  * @in_key:     The input key.
1128  * @key_len:    The size of the key.             1128  * @key_len:    The size of the key.
1129  *                                               1129  *
1130  * This function uses aes_expand_key() to exp    1130  * This function uses aes_expand_key() to expand the key.  &crypto_aes_ctx
1131  * _must_ be the private data embedded in @tf    1131  * _must_ be the private data embedded in @tfm which is retrieved with
1132  * crypto_tfm_ctx().                             1132  * crypto_tfm_ctx().
1133  *                                               1133  *
1134  * Return: 0 on success; -EINVAL on failure (    1134  * Return: 0 on success; -EINVAL on failure (only happens for bad key lengths)
1135  */                                              1135  */
1136 int crypto_aes_set_key(struct crypto_tfm *tfm    1136 int crypto_aes_set_key(struct crypto_tfm *tfm, const u8 *in_key,
1137                 unsigned int key_len)            1137                 unsigned int key_len)
1138 {                                                1138 {
1139         struct crypto_aes_ctx *ctx = crypto_t    1139         struct crypto_aes_ctx *ctx = crypto_tfm_ctx(tfm);
1140                                                  1140 
1141         return aes_expandkey(ctx, in_key, key    1141         return aes_expandkey(ctx, in_key, key_len);
1142 }                                                1142 }
1143 EXPORT_SYMBOL_GPL(crypto_aes_set_key);           1143 EXPORT_SYMBOL_GPL(crypto_aes_set_key);
1144                                                  1144 
1145 /* encrypt a block of text */                    1145 /* encrypt a block of text */
1146                                                  1146 
1147 #define f_rn(bo, bi, n, k)      do {             1147 #define f_rn(bo, bi, n, k)      do {                            \
1148         bo[n] = crypto_ft_tab[0][byte(bi[n],     1148         bo[n] = crypto_ft_tab[0][byte(bi[n], 0)] ^                      \
1149                 crypto_ft_tab[1][byte(bi[(n +    1149                 crypto_ft_tab[1][byte(bi[(n + 1) & 3], 1)] ^            \
1150                 crypto_ft_tab[2][byte(bi[(n +    1150                 crypto_ft_tab[2][byte(bi[(n + 2) & 3], 2)] ^            \
1151                 crypto_ft_tab[3][byte(bi[(n +    1151                 crypto_ft_tab[3][byte(bi[(n + 3) & 3], 3)] ^ *(k + n);  \
1152 } while (0)                                      1152 } while (0)
1153                                                  1153 
1154 #define f_nround(bo, bi, k)     do {\            1154 #define f_nround(bo, bi, k)     do {\
1155         f_rn(bo, bi, 0, k);     \                1155         f_rn(bo, bi, 0, k);     \
1156         f_rn(bo, bi, 1, k);     \                1156         f_rn(bo, bi, 1, k);     \
1157         f_rn(bo, bi, 2, k);     \                1157         f_rn(bo, bi, 2, k);     \
1158         f_rn(bo, bi, 3, k);     \                1158         f_rn(bo, bi, 3, k);     \
1159         k += 4;                 \                1159         k += 4;                 \
1160 } while (0)                                      1160 } while (0)
1161                                                  1161 
1162 #define f_rl(bo, bi, n, k)      do {             1162 #define f_rl(bo, bi, n, k)      do {                            \
1163         bo[n] = crypto_fl_tab[0][byte(bi[n],     1163         bo[n] = crypto_fl_tab[0][byte(bi[n], 0)] ^                      \
1164                 crypto_fl_tab[1][byte(bi[(n +    1164                 crypto_fl_tab[1][byte(bi[(n + 1) & 3], 1)] ^            \
1165                 crypto_fl_tab[2][byte(bi[(n +    1165                 crypto_fl_tab[2][byte(bi[(n + 2) & 3], 2)] ^            \
1166                 crypto_fl_tab[3][byte(bi[(n +    1166                 crypto_fl_tab[3][byte(bi[(n + 3) & 3], 3)] ^ *(k + n);  \
1167 } while (0)                                      1167 } while (0)
1168                                                  1168 
1169 #define f_lround(bo, bi, k)     do {\            1169 #define f_lround(bo, bi, k)     do {\
1170         f_rl(bo, bi, 0, k);     \                1170         f_rl(bo, bi, 0, k);     \
1171         f_rl(bo, bi, 1, k);     \                1171         f_rl(bo, bi, 1, k);     \
1172         f_rl(bo, bi, 2, k);     \                1172         f_rl(bo, bi, 2, k);     \
1173         f_rl(bo, bi, 3, k);     \                1173         f_rl(bo, bi, 3, k);     \
1174 } while (0)                                      1174 } while (0)
1175                                                  1175 
1176 static void crypto_aes_encrypt(struct crypto_    1176 static void crypto_aes_encrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in)
1177 {                                                1177 {
1178         const struct crypto_aes_ctx *ctx = cr    1178         const struct crypto_aes_ctx *ctx = crypto_tfm_ctx(tfm);
1179         u32 b0[4], b1[4];                        1179         u32 b0[4], b1[4];
1180         const u32 *kp = ctx->key_enc + 4;        1180         const u32 *kp = ctx->key_enc + 4;
1181         const int key_len = ctx->key_length;     1181         const int key_len = ctx->key_length;
1182                                                  1182 
1183         b0[0] = ctx->key_enc[0] ^ get_unalign    1183         b0[0] = ctx->key_enc[0] ^ get_unaligned_le32(in);
1184         b0[1] = ctx->key_enc[1] ^ get_unalign    1184         b0[1] = ctx->key_enc[1] ^ get_unaligned_le32(in + 4);
1185         b0[2] = ctx->key_enc[2] ^ get_unalign    1185         b0[2] = ctx->key_enc[2] ^ get_unaligned_le32(in + 8);
1186         b0[3] = ctx->key_enc[3] ^ get_unalign    1186         b0[3] = ctx->key_enc[3] ^ get_unaligned_le32(in + 12);
1187                                                  1187 
1188         if (key_len > 24) {                      1188         if (key_len > 24) {
1189                 f_nround(b1, b0, kp);            1189                 f_nround(b1, b0, kp);
1190                 f_nround(b0, b1, kp);            1190                 f_nround(b0, b1, kp);
1191         }                                        1191         }
1192                                                  1192 
1193         if (key_len > 16) {                      1193         if (key_len > 16) {
1194                 f_nround(b1, b0, kp);            1194                 f_nround(b1, b0, kp);
1195                 f_nround(b0, b1, kp);            1195                 f_nround(b0, b1, kp);
1196         }                                        1196         }
1197                                                  1197 
1198         f_nround(b1, b0, kp);                    1198         f_nround(b1, b0, kp);
1199         f_nround(b0, b1, kp);                    1199         f_nround(b0, b1, kp);
1200         f_nround(b1, b0, kp);                    1200         f_nround(b1, b0, kp);
1201         f_nround(b0, b1, kp);                    1201         f_nround(b0, b1, kp);
1202         f_nround(b1, b0, kp);                    1202         f_nround(b1, b0, kp);
1203         f_nround(b0, b1, kp);                    1203         f_nround(b0, b1, kp);
1204         f_nround(b1, b0, kp);                    1204         f_nround(b1, b0, kp);
1205         f_nround(b0, b1, kp);                    1205         f_nround(b0, b1, kp);
1206         f_nround(b1, b0, kp);                    1206         f_nround(b1, b0, kp);
1207         f_lround(b0, b1, kp);                    1207         f_lround(b0, b1, kp);
1208                                                  1208 
1209         put_unaligned_le32(b0[0], out);          1209         put_unaligned_le32(b0[0], out);
1210         put_unaligned_le32(b0[1], out + 4);      1210         put_unaligned_le32(b0[1], out + 4);
1211         put_unaligned_le32(b0[2], out + 8);      1211         put_unaligned_le32(b0[2], out + 8);
1212         put_unaligned_le32(b0[3], out + 12);     1212         put_unaligned_le32(b0[3], out + 12);
1213 }                                                1213 }
1214                                                  1214 
1215 /* decrypt a block of text */                    1215 /* decrypt a block of text */
1216                                                  1216 
1217 #define i_rn(bo, bi, n, k)      do {             1217 #define i_rn(bo, bi, n, k)      do {                            \
1218         bo[n] = crypto_it_tab[0][byte(bi[n],     1218         bo[n] = crypto_it_tab[0][byte(bi[n], 0)] ^                      \
1219                 crypto_it_tab[1][byte(bi[(n +    1219                 crypto_it_tab[1][byte(bi[(n + 3) & 3], 1)] ^            \
1220                 crypto_it_tab[2][byte(bi[(n +    1220                 crypto_it_tab[2][byte(bi[(n + 2) & 3], 2)] ^            \
1221                 crypto_it_tab[3][byte(bi[(n +    1221                 crypto_it_tab[3][byte(bi[(n + 1) & 3], 3)] ^ *(k + n);  \
1222 } while (0)                                      1222 } while (0)
1223                                                  1223 
1224 #define i_nround(bo, bi, k)     do {\            1224 #define i_nround(bo, bi, k)     do {\
1225         i_rn(bo, bi, 0, k);     \                1225         i_rn(bo, bi, 0, k);     \
1226         i_rn(bo, bi, 1, k);     \                1226         i_rn(bo, bi, 1, k);     \
1227         i_rn(bo, bi, 2, k);     \                1227         i_rn(bo, bi, 2, k);     \
1228         i_rn(bo, bi, 3, k);     \                1228         i_rn(bo, bi, 3, k);     \
1229         k += 4;                 \                1229         k += 4;                 \
1230 } while (0)                                      1230 } while (0)
1231                                                  1231 
1232 #define i_rl(bo, bi, n, k)      do {             1232 #define i_rl(bo, bi, n, k)      do {                    \
1233         bo[n] = crypto_il_tab[0][byte(bi[n],     1233         bo[n] = crypto_il_tab[0][byte(bi[n], 0)] ^              \
1234         crypto_il_tab[1][byte(bi[(n + 3) & 3]    1234         crypto_il_tab[1][byte(bi[(n + 3) & 3], 1)] ^            \
1235         crypto_il_tab[2][byte(bi[(n + 2) & 3]    1235         crypto_il_tab[2][byte(bi[(n + 2) & 3], 2)] ^            \
1236         crypto_il_tab[3][byte(bi[(n + 1) & 3]    1236         crypto_il_tab[3][byte(bi[(n + 1) & 3], 3)] ^ *(k + n);  \
1237 } while (0)                                      1237 } while (0)
1238                                                  1238 
1239 #define i_lround(bo, bi, k)     do {\            1239 #define i_lround(bo, bi, k)     do {\
1240         i_rl(bo, bi, 0, k);     \                1240         i_rl(bo, bi, 0, k);     \
1241         i_rl(bo, bi, 1, k);     \                1241         i_rl(bo, bi, 1, k);     \
1242         i_rl(bo, bi, 2, k);     \                1242         i_rl(bo, bi, 2, k);     \
1243         i_rl(bo, bi, 3, k);     \                1243         i_rl(bo, bi, 3, k);     \
1244 } while (0)                                      1244 } while (0)
1245                                                  1245 
1246 static void crypto_aes_decrypt(struct crypto_    1246 static void crypto_aes_decrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in)
1247 {                                                1247 {
1248         const struct crypto_aes_ctx *ctx = cr    1248         const struct crypto_aes_ctx *ctx = crypto_tfm_ctx(tfm);
1249         u32 b0[4], b1[4];                        1249         u32 b0[4], b1[4];
1250         const int key_len = ctx->key_length;     1250         const int key_len = ctx->key_length;
1251         const u32 *kp = ctx->key_dec + 4;        1251         const u32 *kp = ctx->key_dec + 4;
1252                                                  1252 
1253         b0[0] = ctx->key_dec[0] ^ get_unalign    1253         b0[0] = ctx->key_dec[0] ^ get_unaligned_le32(in);
1254         b0[1] = ctx->key_dec[1] ^ get_unalign    1254         b0[1] = ctx->key_dec[1] ^ get_unaligned_le32(in + 4);
1255         b0[2] = ctx->key_dec[2] ^ get_unalign    1255         b0[2] = ctx->key_dec[2] ^ get_unaligned_le32(in + 8);
1256         b0[3] = ctx->key_dec[3] ^ get_unalign    1256         b0[3] = ctx->key_dec[3] ^ get_unaligned_le32(in + 12);
1257                                                  1257 
1258         if (key_len > 24) {                      1258         if (key_len > 24) {
1259                 i_nround(b1, b0, kp);            1259                 i_nround(b1, b0, kp);
1260                 i_nround(b0, b1, kp);            1260                 i_nround(b0, b1, kp);
1261         }                                        1261         }
1262                                                  1262 
1263         if (key_len > 16) {                      1263         if (key_len > 16) {
1264                 i_nround(b1, b0, kp);            1264                 i_nround(b1, b0, kp);
1265                 i_nround(b0, b1, kp);            1265                 i_nround(b0, b1, kp);
1266         }                                        1266         }
1267                                                  1267 
1268         i_nround(b1, b0, kp);                    1268         i_nround(b1, b0, kp);
1269         i_nround(b0, b1, kp);                    1269         i_nround(b0, b1, kp);
1270         i_nround(b1, b0, kp);                    1270         i_nround(b1, b0, kp);
1271         i_nround(b0, b1, kp);                    1271         i_nround(b0, b1, kp);
1272         i_nround(b1, b0, kp);                    1272         i_nround(b1, b0, kp);
1273         i_nround(b0, b1, kp);                    1273         i_nround(b0, b1, kp);
1274         i_nround(b1, b0, kp);                    1274         i_nround(b1, b0, kp);
1275         i_nround(b0, b1, kp);                    1275         i_nround(b0, b1, kp);
1276         i_nround(b1, b0, kp);                    1276         i_nround(b1, b0, kp);
1277         i_lround(b0, b1, kp);                    1277         i_lround(b0, b1, kp);
1278                                                  1278 
1279         put_unaligned_le32(b0[0], out);          1279         put_unaligned_le32(b0[0], out);
1280         put_unaligned_le32(b0[1], out + 4);      1280         put_unaligned_le32(b0[1], out + 4);
1281         put_unaligned_le32(b0[2], out + 8);      1281         put_unaligned_le32(b0[2], out + 8);
1282         put_unaligned_le32(b0[3], out + 12);     1282         put_unaligned_le32(b0[3], out + 12);
1283 }                                                1283 }
1284                                                  1284 
1285 static struct crypto_alg aes_alg = {             1285 static struct crypto_alg aes_alg = {
1286         .cra_name               =       "aes"    1286         .cra_name               =       "aes",
1287         .cra_driver_name        =       "aes-    1287         .cra_driver_name        =       "aes-generic",
1288         .cra_priority           =       100,     1288         .cra_priority           =       100,
1289         .cra_flags              =       CRYPT    1289         .cra_flags              =       CRYPTO_ALG_TYPE_CIPHER,
1290         .cra_blocksize          =       AES_B    1290         .cra_blocksize          =       AES_BLOCK_SIZE,
1291         .cra_ctxsize            =       sizeo    1291         .cra_ctxsize            =       sizeof(struct crypto_aes_ctx),
1292         .cra_module             =       THIS_    1292         .cra_module             =       THIS_MODULE,
1293         .cra_u                  =       {        1293         .cra_u                  =       {
1294                 .cipher = {                      1294                 .cipher = {
1295                         .cia_min_keysize         1295                         .cia_min_keysize        =       AES_MIN_KEY_SIZE,
1296                         .cia_max_keysize         1296                         .cia_max_keysize        =       AES_MAX_KEY_SIZE,
1297                         .cia_setkey              1297                         .cia_setkey             =       crypto_aes_set_key,
1298                         .cia_encrypt             1298                         .cia_encrypt            =       crypto_aes_encrypt,
1299                         .cia_decrypt             1299                         .cia_decrypt            =       crypto_aes_decrypt
1300                 }                                1300                 }
1301         }                                        1301         }
1302 };                                               1302 };
1303                                                  1303 
1304 static int __init aes_init(void)                 1304 static int __init aes_init(void)
1305 {                                                1305 {
1306         return crypto_register_alg(&aes_alg);    1306         return crypto_register_alg(&aes_alg);
1307 }                                                1307 }
1308                                                  1308 
1309 static void __exit aes_fini(void)                1309 static void __exit aes_fini(void)
1310 {                                                1310 {
1311         crypto_unregister_alg(&aes_alg);         1311         crypto_unregister_alg(&aes_alg);
1312 }                                                1312 }
1313                                                  1313 
1314 subsys_initcall(aes_init);                       1314 subsys_initcall(aes_init);
1315 module_exit(aes_fini);                           1315 module_exit(aes_fini);
1316                                                  1316 
1317 MODULE_DESCRIPTION("Rijndael (AES) Cipher Alg    1317 MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm");
1318 MODULE_LICENSE("Dual BSD/GPL");                  1318 MODULE_LICENSE("Dual BSD/GPL");
1319 MODULE_ALIAS_CRYPTO("aes");                      1319 MODULE_ALIAS_CRYPTO("aes");
1320 MODULE_ALIAS_CRYPTO("aes-generic");              1320 MODULE_ALIAS_CRYPTO("aes-generic");
1321                                                  1321 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php