(**
 * Rijndael-Test.pas
 *
 * Simple automatic test for the Rijndael cipher (now AES) in Pascal.
 * Assumes SIZEOF(LONGINT) = 4.
 * Developed with TurboPascal 7 (later FreePascal).
 *
 * @version 1.0 (February 2001)
 * @author Tom Verhoeff <T.Verhoeff@tue.nl>
 *
 * Based on RijndaelTest.mod
 *
 * version 1.0 (January 2001)
 * @author Paulo Barreto <paulo.barreto@terra.com.br>
 *
 * This code is hereby placed in the public domain.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS
 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *)
program RijndaelTest;

    USES Rijndael;

    TYPE TestVectors = ARRAY [ 0..255 ] OF ARRAY [ 0..15 ] OF BYTE;
    TYPE Block       = ARRAY [ 0..31 ] OF BYTE;

    CONST
        testVectors128: TestVectors = (
          ( $66, $e9, $4b, $d4, $ef, $8a, $2c, $3b, $88, $4c, $fa, $59, $ca, $34, $2b, $2e ),
          ( $e1, $4d, $5d, $0e, $e2, $77, $15, $df, $08, $b4, $15, $2b, $a2, $3d, $a8, $e0 ),
          ( $5e, $ba, $73, $f8, $91, $42, $c5, $48, $80, $f6, $85, $94, $37, $3c, $5c, $37 ),
          ( $8d, $34, $ef, $cb, $3b, $d5, $45, $ca, $06, $2a, $ec, $df, $ef, $7c, $0b, $fa ),
          ( $4a, $94, $23, $0c, $c5, $09, $e4, $62, $57, $83, $8c, $07, $4a, $34, $c0, $43 ),
          ( $fe, $c1, $2d, $e0, $12, $c2, $5f, $05, $66, $b4, $7d, $a5, $6e, $03, $23, $e8 ),
          ( $5e, $45, $87, $c8, $66, $52, $ea, $f4, $e5, $86, $9f, $0c, $1f, $b3, $3d, $d0 ),
          ( $93, $41, $d4, $e3, $75, $82, $58, $46, $e4, $29, $6b, $ac, $f2, $46, $48, $9a ),
          ( $0a, $c0, $8f, $91, $33, $39, $93, $d1, $4e, $c9, $40, $de, $34, $9b, $24, $58 ),
          ( $ed, $66, $f4, $f8, $5c, $a4, $c7, $d2, $95, $5d, $e5, $3f, $47, $69, $92, $93 ),
          ( $6f, $42, $8f, $82, $0f, $3e, $f9, $a6, $15, $86, $f3, $17, $68, $dc, $36, $0a ),
          ( $9c, $1d, $f7, $64, $3e, $e9, $fb, $b4, $27, $3b, $dd, $a2, $79, $3d, $ee, $d4 ),
          ( $a4, $ce, $cc, $4e, $b7, $48, $f1, $d2, $99, $02, $43, $70, $7e, $f7, $73, $c8 ),
          ( $45, $42, $55, $05, $dc, $20, $03, $99, $e2, $dd, $4b, $fd, $f7, $ca, $d2, $59 ),
          ( $86, $6a, $04, $4f, $4e, $12, $66, $9a, $8b, $11, $48, $75, $29, $d5, $82, $d3 ),
          ( $0f, $db, $7d, $a4, $6c, $23, $8c, $5f, $37, $b1, $9d, $31, $0a, $7b, $c3, $5a ),
          ( $01, $43, $db, $63, $ee, $66, $b0, $cd, $ff, $9f, $69, $91, $76, $80, $15, $1e ),
          ( $ff, $a3, $c7, $ed, $04, $71, $0b, $98, $06, $7d, $ae, $68, $15, $e2, $75, $1f ),
          ( $5d, $6e, $8c, $72, $c1, $b4, $f9, $5d, $87, $bf, $e2, $d6, $e7, $e0, $46, $00 ),
          ( $76, $e6, $d5, $f7, $02, $54, $6b, $7e, $44, $65, $c6, $be, $91, $9c, $8d, $89 ),
          ( $65, $f4, $fb, $f2, $4a, $0c, $55, $99, $14, $cd, $74, $1e, $8a, $1c, $5c, $57 ),
          ( $62, $fa, $50, $ca, $a9, $64, $49, $9d, $51, $ed, $2c, $88, $c9, $ca, $d9, $8f ),
          ( $f0, $ce, $ba, $bd, $e2, $0a, $b5, $4b, $51, $6f, $e6, $71, $c8, $7a, $78, $55 ),
          ( $ff, $26, $bc, $5b, $e0, $c3, $7c, $6d, $03, $f4, $5f, $48, $a9, $b4, $28, $bd ),
          ( $ba, $fd, $fd, $81, $94, $c0, $3c, $e5, $dc, $1d, $e1, $25, $e0, $fa, $ae, $b4 ),
          ( $5c, $bd, $5b, $f3, $59, $6b, $06, $b0, $4a, $ff, $80, $be, $29, $4e, $44, $a7 ),
          ( $22, $d4, $de, $49, $e7, $3b, $bf, $9c, $00, $5f, $d0, $d3, $f5, $ff, $2c, $6a ),
          ( $fd, $ad, $55, $58, $60, $93, $f5, $8e, $5c, $97, $c8, $f8, $f0, $e8, $95, $5b ),
          ( $a6, $e3, $5f, $62, $5a, $9e, $97, $f9, $c4, $bc, $6c, $30, $b0, $bb, $b5, $22 ),
          ( $89, $b0, $97, $69, $ee, $54, $5e, $76, $71, $47, $4f, $63, $49, $a5, $ac, $8d ),
          ( $e5, $68, $d8, $f9, $2c, $4b, $1b, $30, $03, $71, $3f, $38, $e4, $76, $43, $6d ),
          ( $c8, $53, $b5, $31, $70, $32, $15, $5f, $60, $1f, $71, $39, $cf, $aa, $46, $c6 ),
          ( $c6, $ce, $5f, $d9, $5b, $84, $52, $19, $f9, $f2, $15, $57, $73, $f4, $bf, $87 ),
          ( $45, $3c, $c2, $4f, $7c, $5b, $0e, $b4, $b7, $c3, $3d, $0c, $49, $b0, $d9, $80 ),
          ( $6c, $9b, $42, $e8, $35, $77, $88, $c5, $62, $7b, $8c, $8d, $a6, $53, $99, $f5 ),
          ( $80, $5c, $a9, $d1, $1a, $a6, $16, $3a, $59, $6d, $1f, $0b, $e2, $4b, $ff, $d1 ),
          ( $30, $de, $22, $52, $b4, $8f, $58, $f3, $32, $46, $d3, $30, $14, $5d, $11, $a6 ),
          ( $1f, $6b, $30, $98, $17, $c7, $5b, $3e, $49, $e9, $88, $53, $3e, $c7, $9a, $df ),
          ( $1c, $d5, $2e, $90, $4a, $9d, $5b, $1a, $f9, $e7, $17, $19, $a0, $64, $98, $a2 ),
          ( $08, $90, $3f, $62, $ce, $25, $43, $6a, $b5, $6c, $f9, $44, $ec, $d8, $a3, $72 ),
          ( $43, $ca, $03, $ee, $d1, $3d, $d8, $a0, $bc, $5f, $48, $51, $c8, $28, $54, $c3 ),
          ( $6c, $1a, $e9, $75, $9f, $6b, $06, $9d, $45, $18, $6f, $07, $97, $45, $36, $a7 ),
          ( $d1, $2e, $6b, $21, $4a, $fc, $96, $77, $9d, $35, $42, $8d, $ba, $7e, $f4, $0d ),
          ( $f7, $eb, $13, $98, $50, $e2, $0b, $7a, $86, $9a, $77, $52, $09, $da, $cf, $c7 ),
          ( $0f, $eb, $a9, $d2, $89, $15, $07, $2b, $36, $3b, $e7, $32, $ab, $8e, $87, $3f ),
          ( $8c, $0b, $77, $26, $99, $c7, $a6, $d0, $e5, $33, $eb, $68, $28, $92, $0c, $c9 ),
          ( $e0, $71, $39, $d3, $7a, $e7, $a3, $df, $f6, $cb, $05, $84, $6b, $04, $e5, $56 ),
          ( $dc, $3b, $c8, $f0, $df, $63, $02, $ca, $34, $bc, $45, $22, $29, $56, $5a, $b5 ),
          ( $e0, $86, $82, $be, $5f, $2b, $18, $a6, $e8, $43, $7a, $15, $b1, $10, $d4, $18 ),
          ( $b6, $de, $54, $f9, $a7, $86, $37, $d1, $eb, $52, $3c, $a7, $20, $15, $89, $f4 ),
          ( $94, $06, $b7, $9d, $9f, $17, $33, $ac, $15, $ad, $53, $b6, $66, $71, $ac, $0f ),
          ( $2e, $3a, $70, $07, $e0, $69, $6f, $ed, $74, $cd, $f0, $e5, $d2, $e4, $65, $1d ),
          ( $b9, $c3, $be, $c8, $26, $e9, $59, $4a, $10, $87, $84, $13, $77, $3b, $cc, $e3 ),
          ( $9c, $04, $11, $58, $67, $19, $09, $d6, $e2, $7c, $de, $c1, $90, $90, $5e, $c8 ),
          ( $b2, $68, $d4, $f2, $2c, $fb, $94, $0e, $61, $db, $58, $41, $9d, $67, $d2, $c7 ),
          ( $01, $2e, $00, $1e, $37, $b4, $a0, $59, $c3, $1d, $6d, $e9, $b6, $52, $e6, $59 ),
          ( $1c, $84, $bc, $59, $6e, $e4, $f7, $bd, $fe, $f7, $2c, $24, $8d, $25, $2b, $98 ),
          ( $21, $08, $f2, $fc, $ea, $f9, $f3, $ed, $a3, $f3, $02, $c8, $4a, $85, $28, $cf ),
          ( $97, $d5, $82, $ab, $a7, $8c, $e6, $27, $eb, $0f, $36, $53, $3b, $bd, $14, $f7 ),
          ( $a6, $a2, $8d, $3d, $8a, $e0, $df, $d8, $99, $4f, $5e, $1f, $8e, $1d, $b4, $5a ),
          ( $3c, $50, $3f, $c1, $74, $9a, $61, $be, $9e, $cd, $65, $db, $f5, $3a, $10, $2d ),
          ( $35, $3b, $99, $20, $58, $37, $c2, $da, $35, $4e, $d6, $52, $25, $af, $1b, $b7 ),
          ( $a1, $89, $2a, $40, $e5, $23, $bc, $c3, $e0, $b0, $a3, $c2, $ea, $ba, $ad, $f2 ),
          ( $00, $e9, $4b, $ef, $d4, $e8, $b8, $da, $0c, $c7, $7b, $ba, $5f, $1e, $0c, $c9 ),
          ( $40, $3d, $81, $5d, $71, $c2, $27, $bd, $1a, $23, $37, $51, $23, $5c, $6f, $28 ),
          ( $b4, $9c, $bf, $19, $d3, $57, $e6, $e1, $f6, $84, $5c, $30, $fd, $5b, $63, $e3 ),
          ( $bf, $da, $a5, $7c, $b8, $12, $18, $97, $13, $a9, $50, $ad, $99, $47, $88, $79 ),
          ( $7a, $d5, $3e, $bd, $b1, $9a, $1e, $1f, $fb, $de, $1c, $9f, $af, $59, $ad, $59 ),
          ( $1f, $4d, $18, $01, $08, $a2, $bc, $73, $3f, $ce, $3a, $40, $8e, $a8, $1d, $03 ),
          ( $13, $c3, $7a, $f5, $c8, $15, $76, $30, $c9, $fb, $dc, $b2, $58, $55, $90, $19 ),
          ( $72, $b5, $63, $15, $4a, $8e, $a9, $eb, $60, $32, $8c, $a2, $a4, $4e, $29, $cc ),
          ( $e4, $e0, $77, $51, $94, $84, $d1, $7d, $c8, $c0, $72, $5a, $06, $e4, $49, $a7 ),
          ( $d0, $dd, $87, $c7, $80, $eb, $51, $b9, $a3, $bf, $a5, $78, $be, $d3, $7c, $f4 ),
          ( $d9, $79, $65, $38, $24, $ff, $7e, $d5, $cf, $96, $d9, $93, $6e, $05, $b0, $dc ),
          ( $e7, $87, $2b, $bd, $4f, $e2, $c1, $b0, $08, $93, $10, $41, $b3, $dc, $77, $39 ),
          ( $29, $b7, $06, $22, $6d, $44, $eb, $8e, $9c, $85, $35, $b5, $44, $c8, $05, $21 ),
          ( $1d, $98, $38, $19, $e4, $21, $2f, $50, $29, $26, $94, $f1, $d3, $d5, $34, $a9 ),
          ( $b5, $65, $e8, $d9, $c8, $66, $43, $8d, $2e, $1c, $54, $f4, $25, $04, $f3, $2f ),
          ( $c2, $f7, $b8, $ff, $2e, $98, $fd, $47, $b1, $96, $af, $ea, $ba, $4c, $87, $d9 ),
          ( $e5, $2b, $12, $88, $10, $30, $ec, $38, $4b, $c3, $92, $61, $13, $6b, $6a, $95 ),
          ( $97, $71, $8c, $aa, $fe, $27, $a5, $d1, $49, $7b, $79, $f7, $32, $d9, $37, $08 ),
          ( $25, $f6, $09, $47, $9a, $00, $cb, $05, $9c, $55, $4e, $71, $90, $bc, $9d, $63 ),
          ( $87, $59, $1d, $e1, $a5, $f3, $3b, $ed, $2c, $84, $22, $56, $14, $81, $18, $06 ),
          ( $4b, $fc, $d9, $42, $ec, $4c, $fc, $60, $95, $20, $a8, $91, $09, $c2, $93, $03 ),
          ( $b2, $c1, $f3, $9f, $bd, $b1, $49, $7c, $57, $1c, $b2, $23, $cf, $22, $01, $43 ),
          ( $9a, $da, $e0, $54, $f6, $3d, $fa, $ff, $5e, $a1, $8e, $45, $ed, $f6, $ea, $6f ),
          ( $c4, $97, $81, $73, $bd, $a1, $02, $ca, $2c, $ff, $03, $c5, $bb, $21, $23, $71 ),
          ( $a2, $a0, $09, $0b, $3e, $af, $42, $17, $1d, $9b, $4c, $cb, $42, $12, $82, $86 ),
          ( $b1, $7d, $ba, $72, $90, $13, $7d, $5e, $f5, $5d, $2e, $d6, $dd, $2f, $72, $cb ),
          ( $1c, $19, $99, $d0, $a6, $c7, $96, $f7, $9f, $4d, $c2, $b2, $7a, $ee, $2b, $26 ),
          ( $d1, $e0, $bb, $58, $f1, $d9, $a5, $ee, $3f, $e5, $ed, $3b, $49, $fe, $f5, $9d ),
          ( $c1, $de, $b6, $e1, $29, $e6, $0a, $bb, $e2, $c1, $77, $78, $eb, $8e, $f8, $1a ),
          ( $a9, $7f, $1b, $a4, $cf, $60, $fd, $58, $c1, $b0, $6d, $6d, $14, $29, $75, $25 ),
          ( $b0, $aa, $36, $9a, $28, $33, $cd, $df, $c4, $00, $3f, $37, $7b, $6b, $f7, $e4 ),
          ( $a7, $a4, $2c, $50, $de, $75, $f7, $84, $f0, $7c, $0f, $90, $5c, $76, $8d, $9e ),
          ( $be, $5d, $21, $a2, $28, $b8, $bb, $33, $84, $cf, $56, $0e, $61, $21, $9e, $e0 ),
          ( $b4, $ec, $75, $74, $f4, $bb, $c7, $5a, $1e, $fe, $32, $f4, $bf, $a6, $eb, $91 ),
          ( $92, $6c, $0f, $ea, $05, $af, $d6, $5f, $59, $31, $d2, $9a, $9c, $6b, $3f, $9c ),
          ( $90, $aa, $2c, $65, $e8, $3d, $81, $91, $2f, $28, $21, $0d, $11, $85, $a1, $67 ),
          ( $9d, $9a, $5c, $f8, $e4, $f0, $d1, $87, $d3, $05, $de, $9d, $e4, $8a, $aa, $35 ),
          ( $25, $29, $fe, $06, $f4, $99, $9d, $7f, $fa, $83, $1e, $f2, $86, $02, $8b, $2b ),
          ( $5e, $58, $16, $da, $96, $2a, $31, $ba, $08, $d1, $77, $a3, $83, $f7, $af, $1e ),
          ( $97, $60, $fa, $56, $5c, $a9, $24, $2d, $b4, $33, $71, $42, $d0, $2e, $2a, $37 ),
          ( $e8, $f6, $05, $04, $7b, $f0, $4c, $36, $53, $29, $95, $a5, $62, $15, $4c, $ea ),
          ( $20, $4c, $bf, $15, $03, $1f, $67, $04, $05, $f1, $6d, $e1, $42, $74, $6f, $55 ),
          ( $90, $fa, $e1, $3f, $fc, $88, $14, $0c, $10, $a5, $44, $28, $c2, $2b, $2c, $e1 ),
          ( $56, $07, $47, $76, $60, $d4, $5c, $79, $0d, $73, $3a, $fa, $b2, $8b, $73, $ee ),
          ( $c1, $45, $f1, $b8, $ff, $77, $67, $d3, $a9, $33, $11, $fd, $03, $1d, $04, $5e ),
          ( $23, $ce, $12, $81, $a6, $17, $44, $b8, $77, $89, $2c, $5f, $f8, $66, $8f, $e1 ),
          ( $ec, $18, $cc, $59, $23, $05, $d3, $5c, $b6, $79, $89, $ed, $57, $2f, $ea, $5b ),
          ( $25, $6a, $93, $d3, $c4, $8c, $fa, $92, $f2, $f9, $f5, $fa, $5b, $31, $8a, $90 ),
          ( $75, $73, $8e, $bb, $52, $63, $3f, $c2, $ec, $ba, $c6, $f9, $8c, $fe, $8d, $c9 ),
          ( $1f, $12, $cf, $60, $d3, $5d, $0d, $6f, $82, $1e, $66, $fd, $d7, $9a, $72, $18 ),
          ( $c1, $6a, $06, $39, $36, $ba, $5e, $a3, $82, $42, $21, $95, $99, $26, $02, $26 ),
          ( $b3, $05, $31, $9b, $db, $3e, $69, $6e, $75, $57, $0d, $54, $f3, $da, $33, $ea ),
          ( $fb, $20, $94, $82, $2b, $41, $1c, $51, $a4, $e0, $9e, $14, $e3, $bc, $eb, $c2 ),
          ( $8f, $42, $1c, $d5, $07, $ed, $e0, $77, $11, $54, $42, $e4, $8d, $ac, $e6, $cd ),
          ( $a4, $a4, $e3, $53, $44, $c9, $fc, $6d, $8b, $f0, $7e, $62, $b4, $20, $bb, $8e ),
          ( $93, $7f, $3d, $ce, $41, $a2, $c2, $48, $52, $15, $69, $03, $e7, $33, $29, $af ),
          ( $4d, $c3, $0b, $d9, $0e, $dc, $53, $8e, $7c, $1f, $be, $2c, $f8, $d1, $ee, $78 ),
          ( $f1, $a7, $09, $88, $7e, $f4, $22, $8c, $da, $ca, $97, $5b, $4f, $30, $47, $40 ),
          ( $16, $b0, $ca, $fe, $57, $0d, $5a, $b6, $86, $65, $81, $ac, $2b, $1c, $15, $d8 ),
          ( $40, $4f, $e6, $44, $cb, $7f, $dd, $ae, $77, $a3, $12, $97, $a6, $f9, $1b, $76 ),
          ( $de, $63, $ed, $75, $fe, $ed, $d3, $f1, $c4, $c5, $a7, $88, $b7, $74, $88, $b2 ),
          ( $7b, $e6, $a7, $66, $65, $32, $8d, $8c, $7d, $02, $1d, $07, $4a, $d1, $d2, $72 ),
          ( $85, $c1, $aa, $07, $d1, $65, $a8, $34, $76, $dc, $12, $98, $3d, $49, $db, $50 ),
          ( $a0, $34, $13, $f9, $79, $73, $c7, $81, $97, $cc, $4d, $7d, $56, $df, $1d, $2f ),
          ( $ec, $d0, $4c, $f0, $3d, $d6, $07, $b6, $e4, $1a, $38, $98, $96, $c8, $b5, $8e ),
          ( $35, $65, $97, $dc, $ce, $86, $95, $37, $ab, $2d, $0c, $a4, $ba, $1d, $6c, $75 ),
          ( $83, $43, $ed, $3f, $04, $2a, $29, $fe, $42, $f2, $c8, $c6, $c5, $0a, $f6, $ad ),
          ( $40, $a8, $31, $17, $e1, $01, $01, $e1, $94, $89, $29, $99, $24, $8a, $d3, $e0 ),
          ( $59, $6c, $6c, $df, $3f, $6b, $1b, $4b, $ea, $bb, $b1, $1c, $19, $bf, $4b, $a4 ),
          ( $e4, $c1, $c2, $b3, $a4, $d8, $3f, $14, $f0, $e8, $59, $e7, $19, $9d, $0c, $01 ),
          ( $9f, $3c, $19, $70, $ef, $12, $90, $89, $aa, $c0, $42, $b1, $16, $0a, $e2, $f1 ),
          ( $5c, $a1, $04, $c8, $6d, $94, $fc, $84, $e6, $fb, $18, $f9, $59, $5a, $29, $6a ),
          ( $c2, $54, $c6, $4e, $de, $db, $5c, $b8, $73, $00, $8a, $1b, $26, $eb, $1b, $91 ),
          ( $2a, $0b, $8f, $c8, $db, $a2, $03, $b4, $39, $15, $b4, $92, $7f, $33, $52, $cc ),
          ( $4b, $03, $59, $fa, $66, $aa, $d6, $75, $4c, $79, $4c, $c5, $30, $a6, $56, $7a ),
          ( $d8, $f1, $32, $44, $4b, $ac, $ef, $3e, $65, $3b, $4e, $07, $da, $e0, $7c, $3a ),
          ( $33, $69, $1e, $25, $28, $00, $4f, $2d, $df, $29, $a5, $e3, $a5, $18, $77, $86 ),
          ( $c6, $2c, $5e, $60, $2d, $36, $a5, $79, $41, $6a, $0d, $a6, $bc, $96, $aa, $a4 ),
          ( $7a, $93, $c9, $c5, $31, $f4, $46, $7c, $dd, $68, $d9, $13, $1f, $e6, $38, $e5 ),
          ( $a3, $80, $80, $c8, $15, $ca, $1a, $80, $8b, $e9, $b9, $f9, $7c, $0e, $00, $e2 ),
          ( $02, $65, $7b, $b2, $e5, $ad, $63, $6e, $60, $d9, $af, $e2, $e4, $26, $6e, $f3 ),
          ( $34, $ec, $a2, $e0, $29, $41, $00, $95, $19, $10, $e8, $af, $3b, $be, $76, $c4 ),
          ( $71, $10, $9d, $11, $4d, $52, $79, $9f, $63, $a7, $11, $da, $8b, $fa, $98, $f8 ),
          ( $38, $68, $6c, $0d, $14, $e7, $b7, $a6, $49, $74, $ef, $47, $56, $c5, $ca, $e8 ),
          ( $0d, $27, $d3, $a0, $b8, $49, $a4, $88, $17, $c0, $1c, $34, $6f, $3b, $a2, $d3 ),
          ( $69, $e1, $eb, $2d, $7b, $89, $7e, $33, $86, $9f, $a0, $1f, $4a, $36, $c8, $d7 ),
          ( $2d, $f9, $22, $5e, $86, $1b, $10, $8e, $73, $f2, $3d, $45, $44, $cb, $f7, $50 ),
          ( $f5, $dc, $01, $bf, $bd, $53, $34, $a8, $7c, $3a, $46, $51, $fd, $90, $d7, $fb ),
          ( $63, $9a, $96, $7c, $33, $16, $ef, $db, $87, $f6, $f1, $51, $4f, $b0, $7b, $7a ),
          ( $93, $dc, $6d, $f4, $84, $2a, $08, $3c, $24, $74, $54, $53, $8c, $c3, $74, $f4 ),
          ( $74, $ea, $bf, $6b, $94, $2f, $32, $93, $1a, $81, $f2, $2f, $34, $38, $5d, $37 ),
          ( $19, $29, $7a, $a3, $62, $4c, $f0, $9e, $34, $4e, $b3, $08, $ad, $14, $4a, $ae ),
          ( $43, $12, $43, $f5, $ee, $e5, $54, $23, $1c, $aa, $87, $36, $68, $f4, $a8, $b8 ),
          ( $8d, $df, $2c, $a8, $7a, $05, $4f, $59, $f5, $c8, $61, $19, $48, $33, $3f, $d3 ),
          ( $83, $58, $4a, $1f, $28, $0b, $f6, $1f, $e2, $41, $b0, $35, $cd, $15, $de, $c2 ),
          ( $d7, $06, $3f, $a7, $2d, $c2, $8e, $bc, $ab, $d7, $4f, $e6, $d1, $6c, $2a, $41 ),
          ( $f3, $8d, $18, $d9, $2d, $c5, $c4, $b3, $fa, $92, $05, $87, $90, $52, $99, $75 ),
          ( $f3, $e9, $a1, $de, $56, $50, $c9, $59, $d2, $07, $f5, $ed, $69, $f1, $69, $08 ),
          ( $89, $af, $4f, $6e, $ea, $04, $b0, $c9, $63, $fb, $1a, $60, $7f, $2d, $02, $67 ),
          ( $b2, $30, $95, $a3, $cd, $ee, $e3, $eb, $41, $0d, $15, $ea, $fd, $0a, $ac, $03 ),
          ( $df, $1e, $19, $51, $7c, $c1, $a8, $5e, $bc, $1c, $f7, $62, $b0, $cf, $a5, $f3 ),
          ( $b1, $bc, $d8, $87, $23, $e2, $c6, $0f, $cb, $b1, $85, $4a, $d8, $d9, $ed, $0e ),
          ( $aa, $d9, $c4, $16, $1f, $e5, $2e, $42, $aa, $08, $ce, $9a, $1c, $ab, $42, $4f ),
          ( $4e, $47, $07, $41, $6d, $4a, $81, $c1, $97, $d1, $ee, $74, $7c, $98, $0b, $50 ),
          ( $06, $ef, $57, $ab, $cd, $01, $2a, $fc, $af, $d8, $f5, $0b, $c1, $91, $87, $06 ),
          ( $2c, $6e, $0d, $6d, $b2, $0e, $43, $b2, $a3, $ef, $cc, $ea, $fd, $e8, $43, $15 ),
          ( $1c, $05, $9c, $56, $a4, $ff, $bc, $21, $fd, $88, $4c, $0f, $d3, $90, $62, $03 ),
          ( $85, $22, $71, $7d, $3a, $d1, $fb, $fe, $af, $a1, $ce, $aa, $fd, $f5, $65, $65 ),
          ( $48, $4d, $ea, $f5, $73, $f7, $2c, $52, $46, $e2, $46, $08, $f8, $e7, $57, $c7 ),
          ( $58, $df, $ed, $ef, $6e, $f3, $41, $2d, $60, $30, $00, $0b, $88, $99, $25, $96 ),
          ( $bf, $e3, $22, $34, $c5, $6a, $0c, $77, $76, $cc, $2d, $48, $4c, $a4, $0f, $f9 ),
          ( $8f, $c9, $7f, $1e, $3e, $a1, $8f, $9c, $39, $43, $ad, $3e, $fc, $5b, $59, $17 ),
          ( $c3, $46, $80, $7a, $03, $c2, $9b, $ff, $72, $cb, $f3, $5e, $d4, $6c, $03, $76 ),
          ( $03, $92, $ab, $b6, $d7, $61, $ad, $cd, $c4, $db, $12, $4f, $29, $6e, $cc, $93 ),
          ( $ca, $e6, $ac, $99, $5b, $5a, $f6, $f1, $14, $16, $e6, $7c, $76, $17, $93, $d2 ),
          ( $15, $c5, $8d, $d8, $eb, $b7, $f8, $5e, $75, $9a, $45, $52, $55, $59, $3a, $7f ),
          ( $32, $14, $77, $b1, $b7, $21, $8f, $bf, $01, $fd, $17, $ce, $48, $da, $8b, $ce ),
          ( $bb, $39, $2a, $79, $0a, $44, $1a, $94, $ae, $d7, $aa, $0f, $af, $d6, $19, $0f ),
          ( $89, $d0, $19, $8c, $1a, $23, $52, $68, $92, $f9, $40, $52, $ec, $4e, $67, $a4 ),
          ( $f9, $67, $a6, $16, $74, $f7, $e5, $7d, $9e, $76, $56, $6d, $9b, $57, $8b, $5b ),
          ( $34, $ad, $80, $89, $1a, $da, $56, $bc, $6c, $26, $69, $3c, $09, $c5, $88, $69 ),
          ( $7a, $19, $1a, $ba, $03, $9f, $2d, $69, $01, $9d, $81, $b1, $ba, $f8, $29, $69 ),
          ( $20, $25, $64, $83, $89, $90, $6d, $a4, $bf, $91, $c4, $9c, $ea, $59, $81, $65 ),
          ( $76, $40, $93, $e1, $bb, $44, $65, $df, $8f, $78, $da, $d2, $23, $04, $59, $d4 ),
          ( $bb, $3d, $35, $f1, $26, $3b, $cb, $80, $0c, $98, $71, $ce, $20, $72, $d2, $4b ),
          ( $f5, $cb, $00, $8f, $1c, $3b, $07, $db, $49, $c6, $85, $24, $e7, $e9, $75, $82 ),
          ( $9c, $5e, $3d, $de, $29, $db, $0b, $9b, $ad, $b9, $b0, $39, $8a, $b1, $26, $e9 ),
          ( $8a, $af, $7c, $bb, $c5, $e4, $29, $1f, $79, $30, $4c, $b4, $ac, $45, $00, $7f ),
          ( $10, $c6, $c7, $bc, $d7, $e1, $25, $0e, $ef, $1d, $4e, $2a, $e6, $25, $3f, $89 ),
          ( $30, $cd, $f0, $30, $9e, $8a, $aa, $ec, $41, $c9, $83, $b9, $7e, $db, $ff, $04 ),
          ( $93, $3e, $55, $d5, $c8, $87, $ee, $45, $3b, $ad, $c4, $97, $2f, $5c, $ec, $f7 ),
          ( $0a, $04, $c3, $73, $ca, $0d, $b9, $53, $a0, $e1, $9a, $0e, $2f, $27, $76, $7e ),
          ( $e5, $94, $9b, $16, $b5, $e1, $e4, $98, $9c, $66, $b1, $1f, $a6, $6f, $f6, $ac ),
          ( $9d, $c6, $da, $1b, $4b, $59, $3b, $08, $ba, $4c, $de, $7a, $23, $06, $a3, $60 ),
          ( $71, $19, $c3, $3b, $97, $c9, $da, $1b, $07, $71, $3b, $6d, $dc, $fa, $27, $88 ),
          ( $a8, $9f, $23, $b7, $82, $82, $0a, $35, $ed, $60, $5c, $85, $32, $9a, $74, $fa ),
          ( $89, $7e, $da, $7e, $8a, $d5, $05, $ed, $a7, $87, $a4, $9b, $90, $17, $2b, $ed ),
          ( $81, $0f, $11, $8c, $a1, $2e, $b2, $7c, $41, $f4, $e4, $d3, $0e, $02, $1d, $a2 ),
          ( $25, $2e, $c2, $3a, $d8, $7c, $cf, $41, $c7, $57, $fb, $a1, $81, $09, $0e, $6d ),
          ( $59, $19, $14, $49, $7b, $81, $26, $26, $c0, $53, $a6, $47, $e1, $a7, $ec, $55 ),
          ( $ef, $cb, $52, $ea, $c6, $3b, $25, $55, $d2, $83, $7a, $e3, $5b, $65, $80, $d2 ),
          ( $21, $43, $2a, $4e, $fd, $3a, $f1, $60, $a4, $33, $2c, $3e, $0a, $84, $7a, $9a ),
          ( $7d, $1f, $4c, $c5, $be, $ab, $f9, $e5, $a5, $4d, $40, $cd, $00, $24, $b6, $45 ),
          ( $90, $0c, $45, $f0, $d7, $a8, $db, $49, $53, $2d, $ed, $ef, $06, $d2, $1d, $ac ),
          ( $c3, $c5, $02, $f2, $fb, $dd, $17, $bc, $5a, $88, $2f, $7d, $e6, $ab, $9f, $55 ),
          ( $99, $19, $9b, $1a, $b6, $1b, $01, $c0, $f3, $78, $88, $c0, $5e, $be, $b7, $11 ),
          ( $78, $98, $a9, $39, $1f, $20, $4e, $6f, $31, $2c, $56, $6f, $d0, $ca, $94, $f5 ),
          ( $c3, $5d, $7d, $6e, $23, $25, $92, $93, $f7, $ca, $14, $d3, $9a, $b4, $bc, $d5 ),
          ( $dd, $c3, $d0, $e2, $f3, $b5, $7a, $20, $1c, $8f, $75, $89, $01, $b9, $04, $a3 ),
          ( $74, $5a, $33, $0a, $a3, $69, $62, $4a, $04, $f1, $34, $d8, $c6, $bc, $6b, $04 ),
          ( $84, $b5, $73, $f7, $bc, $76, $9a, $fe, $66, $1d, $f4, $ba, $61, $b3, $88, $0d ),
          ( $ff, $b5, $a9, $22, $03, $1e, $d9, $48, $38, $6c, $2d, $27, $27, $82, $b2, $db ),
          ( $7a, $89, $4f, $68, $9f, $bf, $74, $10, $7e, $97, $c6, $56, $32, $d2, $86, $a8 ),
          ( $36, $0d, $f3, $09, $f4, $87, $e4, $a5, $e4, $9d, $dd, $db, $6c, $83, $64, $28 ),
          ( $9f, $2f, $15, $64, $ca, $fe, $73, $af, $a0, $7f, $ea, $29, $2d, $c0, $a7, $54 ),
          ( $cd, $16, $14, $53, $01, $f0, $58, $1c, $24, $86, $8b, $22, $fd, $09, $bb, $c5 ),
          ( $0b, $5a, $37, $6c, $cf, $4d, $47, $58, $40, $6a, $0c, $3e, $c5, $a6, $05, $57 ),
          ( $08, $30, $2d, $44, $61, $3c, $05, $f6, $0e, $60, $32, $ae, $cc, $be, $04, $b8 ),
          ( $c1, $6a, $a1, $df, $54, $43, $61, $e7, $40, $7e, $df, $20, $3f, $30, $78, $70 ),
          ( $e1, $c2, $77, $61, $3f, $ea, $7b, $3f, $51, $c0, $8e, $64, $3a, $0b, $eb, $53 ),
          ( $09, $f2, $16, $59, $ab, $fe, $2c, $2b, $3e, $d7, $fb, $94, $de, $9d, $66, $ca ),
          ( $ae, $a7, $f1, $8c, $e5, $c7, $81, $95, $29, $8e, $14, $b4, $60, $1e, $99, $9d ),
          ( $57, $c9, $01, $ab, $38, $2f, $e7, $3d, $f7, $f9, $47, $71, $d2, $96, $58, $5c ),
          ( $46, $e9, $85, $ec, $cb, $30, $d5, $ef, $55, $df, $74, $33, $ff, $67, $0e, $87 ),
          ( $a3, $39, $6f, $5b, $15, $e8, $84, $f8, $47, $70, $99, $37, $bc, $18, $df, $1c ),
          ( $57, $29, $7c, $08, $b4, $c9, $9d, $b9, $48, $b7, $cb, $1e, $9b, $33, $fa, $6f ),
          ( $e9, $e8, $cf, $3c, $32, $65, $2d, $6d, $fd, $39, $d3, $ce, $61, $11, $04, $04 ),
          ( $c2, $40, $0e, $e3, $00, $b9, $43, $dc, $3a, $a9, $da, $30, $bd, $5f, $42, $a2 ),
          ( $0d, $c7, $3a, $6d, $7d, $67, $3c, $c4, $38, $9e, $44, $f6, $4a, $49, $ca, $f5 ),
          ( $bb, $a6, $bd, $c3, $b9, $76, $f5, $f9, $0a, $c1, $7c, $4a, $4c, $07, $d8, $1e ),
          ( $1b, $3c, $95, $89, $c3, $3e, $c4, $9d, $7b, $d1, $53, $fa, $0e, $a0, $ab, $99 ),
          ( $9f, $ee, $12, $46, $81, $16, $23, $49, $db, $62, $ef, $13, $d9, $d2, $20, $9c ),
          ( $9d, $cb, $eb, $d9, $d3, $dd, $56, $80, $f1, $14, $05, $44, $4b, $39, $e0, $08 ),
          ( $0a, $45, $4f, $47, $6a, $0f, $13, $65, $63, $00, $ab, $47, $a9, $ba, $85, $ca ),
          ( $f1, $55, $34, $5b, $c1, $37, $49, $48, $d8, $32, $72, $f9, $a6, $2d, $6f, $68 ),
          ( $74, $35, $a8, $d5, $57, $ab, $3b, $e5, $d6, $98, $92, $6b, $9d, $0b, $ab, $26 ),
          ( $b2, $0a, $e5, $fe, $11, $6d, $3a, $21, $b2, $64, $2c, $98, $ff, $d4, $5b, $d7 ),
          ( $fc, $95, $62, $0d, $28, $68, $fb, $c9, $cb, $b2, $d9, $ec, $84, $9f, $a3, $2c ),
          ( $77, $a4, $f3, $c2, $29, $49, $2d, $2b, $00, $f8, $bb, $fb, $06, $c2, $53, $1a ),
          ( $cd, $96, $ba, $67, $7d, $de, $35, $72, $1d, $65, $eb, $b2, $54, $4c, $e6, $a6 ),
          ( $74, $d0, $e2, $80, $9d, $3f, $54, $d6, $06, $ac, $60, $ce, $41, $92, $ac, $a5 ),
          ( $e3, $dd, $bb, $1c, $e0, $74, $00, $ee, $73, $fa, $33, $bd, $bf, $27, $9f, $a5 ),
          ( $f7, $2a, $d7, $c0, $c1, $d5, $a0, $16, $c2, $a8, $8b, $33, $f4, $dd, $dd, $6e ),
          ( $f0, $72, $d7, $ff, $a7, $72, $46, $05, $89, $fa, $f1, $6c, $7d, $e8, $24, $b2 ),
          ( $ef, $f5, $dd, $96, $f8, $ee, $e1, $10, $13, $e4, $bf, $72, $1b, $60, $5e, $5d ),
          ( $47, $96, $de, $61, $93, $5b, $bd, $52, $fa, $5e, $ad, $09, $ef, $c1, $53, $ee ),
          ( $32, $77, $16, $79, $80, $ac, $19, $93, $15, $2e, $04, $36, $74, $b1, $c9, $1f ),
          ( $f6, $53, $15, $d5, $0b, $3f, $a2, $92, $41, $6e, $1e, $db, $fa, $18, $c0, $93 ),
          ( $de, $dc, $c7, $68, $10, $6c, $3c, $bb, $f5, $8e, $fc, $24, $c0, $27, $97, $bf ),
          ( $fc, $06, $7f, $39, $33, $24, $06, $44, $34, $c0, $e5, $ec, $f4, $80, $05, $45 ),
          ( $ce, $29, $b6, $c9, $a9, $6d, $f6, $b7, $3a, $ba, $19, $3f, $4b, $b5, $74, $ed ),
          ( $27, $61, $14, $d3, $22, $1e, $a9, $1f, $b9, $11, $03, $ec, $2e, $a8, $45, $88 ),
          ( $3f, $5b, $8c, $c9, $ea, $85, $5a, $0a, $fa, $73, $47, $d2, $3e, $8d, $66, $4e )
        );
        testVectors192: TestVectors = (
          ( $aa, $e0, $69, $92, $ac, $bf, $52, $a3, $e8, $f4, $a9, $6e, $c9, $30, $0b, $d7 ),
          ( $cf, $1e, $ce, $3c, $44, $b0, $78, $fb, $27, $cb, $0a, $3e, $07, $1b, $08, $20 ),
          ( $8d, $c1, $79, $6a, $0e, $cc, $8a, $58, $3e, $df, $80, $c5, $3d, $69, $eb, $58 ),
          ( $30, $3c, $58, $cf, $78, $43, $46, $96, $80, $06, $30, $bb, $ab, $d7, $7e, $8e ),
          ( $c0, $3b, $1c, $da, $50, $7b, $2b, $c4, $e6, $39, $e4, $db, $e5, $83, $27, $dc ),
          ( $78, $1b, $3b, $a7, $43, $b8, $b7, $0a, $bc, $1e, $28, $a1, $57, $af, $64, $a3 ),
          ( $76, $97, $37, $d4, $60, $ad, $45, $80, $df, $aa, $f4, $cb, $40, $a6, $22, $fd ),
          ( $a0, $4e, $99, $2b, $05, $46, $a0, $93, $1e, $d1, $0f, $4f, $38, $25, $ba, $f7 ),
          ( $56, $b0, $00, $2e, $43, $ab, $82, $e3, $d4, $86, $fe, $4b, $38, $37, $9b, $87 ),
          ( $cd, $f7, $cf, $c1, $5d, $ff, $b8, $21, $8c, $3c, $8e, $82, $01, $71, $ce, $19 ),
          ( $0a, $74, $a4, $a3, $82, $0f, $18, $88, $90, $30, $ac, $6c, $12, $26, $85, $f0 ),
          ( $7b, $91, $93, $3c, $32, $dd, $32, $55, $a2, $d4, $76, $2b, $1d, $b2, $e8, $4b ),
          ( $8e, $b5, $a4, $8a, $72, $44, $28, $79, $74, $18, $f6, $1b, $f8, $b7, $c0, $f2 ),
          ( $b1, $39, $e9, $e8, $27, $12, $65, $70, $28, $a8, $fa, $29, $bd, $f4, $64, $a5 ),
          ( $61, $8b, $ef, $51, $07, $4e, $c5, $f0, $c2, $3f, $0e, $5b, $38, $2d, $15, $bb ),
          ( $a7, $7b, $a1, $4d, $7d, $09, $e1, $ea, $13, $1f, $f1, $e8, $df, $e9, $3a, $a6 ),
          ( $02, $bb, $29, $25, $27, $e7, $26, $fd, $51, $eb, $29, $89, $4d, $6f, $0a, $ad ),
          ( $33, $a3, $1e, $c7, $60, $5c, $85, $89, $38, $72, $a4, $67, $77, $7f, $3d, $db ),
          ( $6e, $77, $0d, $02, $56, $bc, $00, $62, $76, $f3, $95, $cf, $19, $9b, $17, $f3 ),
          ( $ed, $ac, $06, $84, $e2, $63, $09, $8f, $25, $26, $7d, $15, $94, $20, $8b, $d4 ),
          ( $36, $9f, $de, $b6, $b1, $f9, $9a, $09, $b3, $d6, $20, $9f, $f3, $04, $e2, $51 ),
          ( $a6, $d9, $54, $cf, $6d, $ce, $49, $7a, $d1, $2c, $da, $1b, $99, $04, $ae, $c2 ),
          ( $60, $4d, $96, $2d, $cf, $47, $27, $a1, $fd, $4e, $f9, $49, $37, $5a, $e2, $d0 ),
          ( $c5, $9f, $1c, $91, $61, $dd, $d9, $b2, $cf, $69, $6a, $c8, $c5, $9c, $33, $56 ),
          ( $3d, $ec, $95, $93, $20, $93, $98, $2e, $77, $b1, $95, $e2, $cd, $77, $45, $80 ),
          ( $54, $45, $7b, $36, $3a, $c2, $62, $e6, $32, $7e, $44, $f0, $b8, $7c, $83, $ad ),
          ( $d0, $15, $b1, $8b, $af, $be, $38, $7b, $0a, $f9, $87, $3b, $24, $ab, $ab, $d2 ),
          ( $19, $87, $26, $17, $66, $65, $a9, $84, $e1, $54, $e7, $60, $35, $90, $44, $31 ),
          ( $cf, $b4, $77, $b0, $e9, $a9, $a0, $4a, $8d, $ef, $eb, $37, $dc, $7b, $ee, $70 ),
          ( $8a, $6a, $b6, $eb, $07, $5b, $cc, $af, $28, $58, $91, $32, $84, $87, $84, $6f ),
          ( $de, $a7, $f9, $93, $7b, $2d, $65, $07, $0e, $a7, $e8, $5b, $a5, $91, $73, $d9 ),
          ( $27, $4a, $fb, $2a, $99, $bd, $be, $90, $6f, $f4, $9e, $90, $ee, $20, $e4, $a4 ),
          ( $ee, $42, $ac, $77, $d2, $f0, $24, $15, $9a, $4d, $f3, $5a, $f6, $1d, $ca, $bf ),
          ( $9f, $6a, $a5, $86, $03, $e7, $f8, $99, $3d, $d9, $89, $6c, $9d, $56, $d6, $c2 ),
          ( $c7, $db, $b1, $6b, $b1, $23, $f3, $bc, $ff, $81, $fc, $fe, $cb, $b1, $b3, $27 ),
          ( $79, $9a, $2f, $94, $05, $87, $93, $b2, $bd, $a4, $ad, $ba, $5d, $b7, $71, $b1 ),
          ( $8d, $c5, $06, $b5, $42, $45, $d1, $0a, $de, $91, $06, $2d, $ca, $24, $24, $18 ),
          ( $e7, $bd, $da, $3c, $9f, $db, $71, $68, $d5, $d6, $4b, $37, $5d, $a1, $37, $e4 ),
          ( $2a, $cb, $e0, $3f, $68, $e5, $1f, $af, $98, $95, $01, $f2, $85, $c6, $c2, $71 ),
          ( $aa, $b6, $b3, $da, $9c, $cb, $b2, $ac, $b8, $28, $39, $81, $ed, $93, $b1, $44 ),
          ( $bd, $be, $7f, $65, $81, $c6, $4a, $55, $13, $e1, $d4, $f5, $4d, $6f, $3c, $8a ),
          ( $bd, $bf, $f0, $d7, $26, $f6, $5b, $13, $32, $da, $e1, $0c, $66, $61, $43, $1d ),
          ( $f0, $73, $73, $a3, $c0, $d7, $4a, $dd, $50, $2a, $6c, $6a, $bc, $07, $aa, $9c ),
          ( $c8, $bd, $7b, $ee, $70, $0e, $cc, $26, $00, $98, $4b, $71, $f5, $84, $1a, $15 ),
          ( $a3, $db, $a2, $aa, $1f, $68, $7a, $29, $95, $66, $27, $d5, $06, $30, $77, $fc ),
          ( $c5, $c9, $66, $53, $c9, $8f, $67, $3a, $ca, $49, $21, $0f, $f4, $99, $40, $6b ),
          ( $fa, $96, $ce, $e3, $34, $31, $bf, $73, $ef, $2d, $a2, $d3, $8a, $b3, $10, $10 ),
          ( $f2, $a3, $c9, $9f, $2a, $55, $71, $78, $51, $65, $d9, $b3, $16, $f1, $65, $87 ),
          ( $cc, $fe, $d9, $9e, $38, $e9, $60, $f5, $d7, $e1, $c5, $9f, $56, $3a, $49, $9d ),
          ( $6c, $d4, $44, $ed, $cf, $2f, $a3, $9c, $24, $2d, $9d, $20, $9f, $eb, $f1, $70 ),
          ( $4d, $1a, $7b, $82, $d6, $60, $de, $28, $c2, $d7, $16, $02, $c8, $57, $df, $aa ),
          ( $02, $f6, $8e, $8d, $d5, $69, $83, $d4, $6e, $99, $20, $be, $62, $22, $62, $b3 ),
          ( $da, $ab, $c0, $33, $86, $1e, $29, $02, $0d, $a9, $d4, $2e, $a4, $34, $3f, $2b ),
          ( $3b, $f5, $c4, $fb, $33, $b3, $91, $07, $9d, $42, $a8, $d6, $6f, $fb, $f9, $06 ),
          ( $19, $c9, $36, $af, $b9, $51, $71, $90, $e4, $d1, $bc, $63, $32, $1d, $47, $64 ),
          ( $41, $97, $f9, $c6, $ed, $66, $92, $97, $ce, $a3, $25, $d0, $b4, $a3, $26, $f7 ),
          ( $66, $25, $1f, $42, $37, $05, $ec, $96, $e0, $63, $7d, $19, $a4, $4d, $b9, $37 ),
          ( $a6, $76, $6d, $ee, $b3, $c1, $0d, $00, $a2, $18, $7e, $53, $d3, $21, $c5, $f6 ),
          ( $21, $cd, $06, $65, $9c, $d3, $12, $20, $e3, $db, $01, $3e, $27, $ae, $7b, $4c ),
          ( $67, $f2, $6c, $74, $c8, $e9, $44, $41, $6c, $fa, $cc, $d2, $7c, $e9, $52, $98 ),
          ( $c4, $0d, $5d, $dc, $a9, $fe, $53, $45, $62, $99, $21, $41, $b1, $cb, $17, $91 ),
          ( $19, $ea, $f7, $c3, $84, $b5, $60, $fc, $2e, $16, $9c, $fc, $ba, $a6, $b0, $d3 ),
          ( $54, $e1, $d7, $44, $d2, $c7, $56, $a1, $db, $db, $9a, $08, $f8, $f4, $00, $a6 ),
          ( $d7, $7a, $8b, $6f, $7e, $72, $8d, $b1, $cc, $e8, $6d, $0a, $71, $cd, $b6, $e0 ),
          ( $9f, $f6, $c2, $57, $16, $fc, $68, $68, $24, $a9, $12, $e3, $bc, $dc, $99, $ce ),
          ( $48, $5e, $40, $47, $01, $da, $67, $88, $74, $72, $4d, $32, $da, $51, $d1, $24 ),
          ( $f7, $1b, $ca, $66, $08, $44, $85, $04, $bc, $1d, $49, $0b, $b1, $3d, $18, $09 ),
          ( $74, $36, $fd, $40, $03, $9d, $a0, $09, $57, $69, $66, $b9, $aa, $a6, $91, $48 ),
          ( $1e, $c9, $c0, $b4, $39, $7b, $94, $89, $77, $41, $08, $03, $31, $31, $6a, $a5 ),
          ( $d8, $bf, $7f, $02, $d0, $34, $3a, $24, $da, $c5, $19, $a4, $eb, $ce, $98, $0f ),
          ( $52, $1c, $a1, $81, $bc, $3f, $67, $b7, $22, $38, $8e, $47, $6c, $4e, $d1, $bc ),
          ( $2e, $4f, $c2, $4e, $b9, $0d, $2a, $5d, $07, $21, $3a, $6e, $e1, $2e, $60, $54 ),
          ( $ad, $0b, $f3, $96, $2a, $60, $ec, $d8, $75, $c3, $2b, $b6, $4a, $f2, $b4, $2a ),
          ( $76, $20, $9a, $dc, $b7, $65, $94, $f0, $68, $aa, $13, $c0, $bb, $6d, $79, $8d ),
          ( $6f, $d9, $5c, $6a, $ad, $0c, $2d, $20, $4b, $c5, $49, $79, $14, $07, $8f, $f8 ),
          ( $66, $f2, $8d, $b2, $ac, $9d, $86, $a5, $03, $ea, $2d, $58, $d5, $49, $6c, $cd ),
          ( $5d, $58, $c9, $3f, $d2, $4e, $42, $2d, $7c, $aa, $f5, $6a, $ae, $cf, $29, $d0 ),
          ( $2c, $ba, $17, $90, $ee, $71, $e7, $ab, $59, $05, $6d, $55, $b3, $7e, $62, $6b ),
          ( $c0, $f0, $7d, $c5, $fc, $51, $59, $ed, $ab, $ab, $eb, $66, $94, $85, $51, $54 ),
          ( $2f, $e9, $33, $2f, $99, $13, $19, $bd, $12, $20, $1d, $f4, $e0, $e1, $fe, $6f ),
          ( $19, $ab, $f7, $83, $ce, $cc, $ed, $17, $3c, $76, $4d, $0d, $4f, $89, $50, $a8 ),
          ( $8a, $bb, $a8, $00, $d5, $c4, $4d, $02, $35, $3d, $eb, $cd, $38, $45, $7c, $f8 ),
          ( $48, $56, $cd, $7a, $45, $9b, $ff, $10, $56, $5d, $f7, $bd, $a0, $f5, $7f, $d1 ),
          ( $b9, $d8, $8d, $a6, $5e, $c1, $4c, $20, $65, $0a, $06, $2b, $cf, $10, $d8, $c8 ),
          ( $b1, $f7, $d5, $ea, $e9, $2d, $60, $fd, $f9, $14, $02, $dc, $0b, $a4, $23, $4b ),
          ( $ef, $82, $91, $db, $cc, $5e, $f6, $8b, $84, $eb, $bb, $7f, $1b, $ea, $8c, $1e ),
          ( $e9, $35, $56, $7b, $29, $72, $01, $8a, $e4, $7e, $65, $71, $80, $f8, $db, $e4 ),
          ( $62, $2c, $80, $a1, $97, $4c, $68, $77, $51, $8f, $ff, $fa, $4d, $ed, $fc, $25 ),
          ( $7a, $be, $33, $e2, $78, $61, $36, $11, $7b, $43, $16, $8c, $3c, $58, $f0, $c0 ),
          ( $f7, $96, $42, $7d, $c2, $72, $de, $d6, $93, $cf, $74, $59, $8e, $3f, $e7, $00 ),
          ( $c3, $9c, $07, $77, $91, $80, $dd, $4c, $d8, $cb, $e1, $f1, $fc, $19, $0e, $47 ),
          ( $c4, $3c, $e7, $66, $46, $e2, $07, $66, $4e, $75, $a0, $b2, $f0, $dc, $e9, $a3 ),
          ( $a1, $26, $e7, $4d, $68, $5f, $69, $de, $3f, $58, $41, $62, $69, $f1, $8f, $ee ),
          ( $f0, $84, $87, $da, $c4, $b1, $07, $5f, $9d, $d8, $8f, $3d, $f8, $e9, $08, $08 ),
          ( $86, $4d, $9d, $be, $3f, $e1, $1d, $4c, $15, $74, $4b, $55, $91, $41, $21, $8b ),
          ( $d4, $c0, $69, $78, $60, $6d, $69, $cf, $e4, $3f, $fb, $ec, $7e, $2a, $43, $c0 ),
          ( $98, $52, $72, $7e, $81, $bb, $2a, $93, $ae, $85, $cf, $e8, $db, $2d, $bb, $dd ),
          ( $ba, $eb, $05, $9d, $39, $a0, $f6, $65, $b9, $9d, $77, $15, $63, $8d, $19, $ea ),
          ( $1e, $b6, $18, $39, $7b, $0c, $8d, $bf, $eb, $c5, $f7, $bc, $46, $cc, $f1, $8e ),
          ( $2e, $8c, $3b, $24, $50, $76, $30, $1e, $f7, $6f, $3c, $22, $ce, $e3, $2a, $9d ),
          ( $41, $c4, $9b, $cd, $f4, $58, $05, $4d, $f0, $1d, $22, $11, $c5, $8b, $86, $99 ),
          ( $30, $05, $79, $02, $2c, $d5, $10, $23, $c9, $de, $2e, $f7, $15, $d5, $c5, $c7 ),
          ( $58, $7e, $70, $93, $60, $b5, $26, $fe, $c0, $9c, $d4, $d0, $95, $0b, $8c, $2d ),
          ( $b0, $f5, $ff, $56, $d5, $9a, $44, $b7, $e8, $88, $92, $f8, $fe, $e4, $ef, $6e ),
          ( $40, $ed, $2d, $79, $a6, $3b, $20, $ae, $10, $5a, $ad, $a7, $8b, $3a, $97, $8e ),
          ( $4d, $8f, $c1, $90, $4a, $62, $3e, $3f, $4c, $d7, $77, $9a, $fa, $c9, $c8, $52 ),
          ( $82, $b0, $0b, $5e, $a8, $11, $c5, $75, $26, $cc, $62, $bd, $84, $83, $5a, $d1 ),
          ( $19, $ae, $ee, $a8, $6a, $5f, $96, $c4, $be, $0a, $b1, $b4, $78, $8d, $ae, $9f ),
          ( $79, $5f, $59, $4f, $39, $75, $57, $eb, $bf, $1b, $e9, $e3, $c2, $9b, $f4, $22 ),
          ( $7d, $75, $71, $41, $4f, $42, $6e, $88, $56, $a6, $6f, $16, $d3, $83, $ef, $7e ),
          ( $83, $10, $c3, $5f, $19, $81, $3f, $04, $de, $db, $9a, $c9, $43, $d8, $ff, $89 ),
          ( $e1, $4b, $7b, $59, $57, $04, $1a, $b2, $cc, $f7, $53, $0e, $4d, $0e, $c2, $9a ),
          ( $ba, $31, $f7, $b5, $a4, $3c, $92, $26, $3e, $41, $64, $3c, $0e, $2e, $87, $5a ),
          ( $38, $38, $ce, $ea, $1f, $0d, $94, $09, $69, $22, $03, $a6, $39, $e9, $76, $25 ),
          ( $22, $c0, $b2, $5d, $97, $41, $46, $36, $5a, $a8, $fe, $78, $d9, $38, $e5, $00 ),
          ( $2c, $96, $f2, $4b, $8a, $6f, $af, $bb, $a8, $38, $c2, $4d, $22, $bc, $17, $c2 ),
          ( $92, $55, $50, $c5, $2f, $c8, $ea, $2c, $8e, $19, $db, $95, $ed, $73, $54, $fd ),
          ( $88, $9c, $9c, $d0, $96, $da, $2b, $87, $bd, $30, $f4, $26, $ad, $8f, $47, $38 ),
          ( $92, $4e, $ac, $2e, $12, $de, $ce, $9c, $c8, $e4, $fe, $ff, $f3, $9c, $ae, $d0 ),
          ( $c5, $96, $00, $3a, $94, $d7, $63, $d7, $50, $d5, $56, $cc, $70, $e4, $e9, $ef ),
          ( $e0, $5a, $a4, $a2, $15, $27, $9a, $14, $ad, $b3, $21, $bb, $30, $46, $a1, $2d ),
          ( $f8, $8e, $0e, $99, $bc, $81, $ad, $4e, $99, $99, $d2, $34, $c7, $9a, $58, $a1 ),
          ( $33, $40, $6b, $d9, $3e, $26, $29, $fc, $58, $b7, $c8, $07, $58, $99, $32, $66 ),
          ( $77, $15, $22, $55, $31, $40, $8f, $a7, $57, $14, $6a, $72, $9c, $4e, $7c, $4e ),
          ( $f4, $98, $85, $a2, $0c, $d0, $fd, $a7, $e5, $37, $8c, $8f, $c5, $9d, $7c, $f8 ),
          ( $a7, $68, $6e, $d5, $47, $54, $0b, $07, $fe, $59, $b7, $40, $e8, $6c, $b3, $65 ),
          ( $96, $0e, $98, $da, $5e, $19, $1f, $e9, $ca, $27, $19, $a4, $9c, $ac, $75, $bd ),
          ( $30, $72, $33, $e9, $b2, $e6, $b0, $29, $b9, $b2, $e3, $de, $1a, $82, $56, $70 ),
          ( $0c, $07, $13, $ee, $ff, $e8, $66, $06, $85, $48, $fc, $99, $5c, $f5, $c1, $2c ),
          ( $c9, $e4, $ed, $06, $9e, $90, $7f, $76, $bd, $18, $1d, $f2, $fa, $03, $d0, $ad ),
          ( $9d, $fa, $2b, $fb, $90, $ea, $78, $35, $1a, $5f, $63, $bd, $fc, $ff, $9a, $b3 ),
          ( $3d, $f0, $eb, $2d, $fc, $88, $89, $ef, $0a, $a0, $9a, $09, $11, $58, $3a, $9f ),
          ( $6e, $93, $e0, $59, $62, $1d, $b6, $d8, $8d, $36, $cb, $37, $00, $e1, $1a, $83 ),
          ( $b1, $cb, $a6, $ec, $2f, $60, $f6, $fd, $14, $0f, $89, $ab, $a7, $9d, $6e, $23 ),
          ( $69, $c6, $c8, $5a, $ba, $cc, $8a, $9a, $ed, $21, $a1, $0f, $1e, $18, $bf, $c0 ),
          ( $49, $8a, $47, $cc, $53, $76, $41, $f6, $33, $40, $ec, $f4, $da, $b1, $96, $f7 ),
          ( $28, $a0, $c9, $8d, $76, $66, $82, $18, $67, $23, $68, $30, $f4, $2a, $2a, $d9 ),
          ( $d9, $58, $43, $93, $07, $27, $e9, $b0, $a0, $0b, $83, $fb, $5b, $c5, $ee, $b6 ),
          ( $2b, $70, $79, $7b, $17, $03, $5d, $00, $f7, $cd, $7e, $8e, $2a, $a5, $58, $f4 ),
          ( $90, $75, $3c, $e5, $a1, $88, $3e, $68, $4c, $92, $f9, $7b, $2b, $1c, $00, $f0 ),
          ( $b2, $59, $4d, $b4, $d3, $71, $62, $2a, $ce, $ea, $dc, $f5, $ce, $6c, $45, $26 ),
          ( $21, $33, $27, $54, $60, $74, $09, $07, $97, $7b, $32, $5c, $1f, $e5, $3b, $c3 ),
          ( $d3, $58, $d4, $b0, $b3, $47, $c8, $a8, $26, $4f, $5b, $f8, $61, $f7, $e5, $7b ),
          ( $54, $54, $96, $b1, $9b, $90, $5f, $81, $32, $7a, $bb, $ad, $27, $72, $12, $5c ),
          ( $f5, $d0, $54, $d4, $14, $1d, $03, $54, $e6, $30, $14, $39, $bd, $a3, $0f, $67 ),
          ( $89, $d6, $c9, $6b, $04, $3f, $66, $6b, $15, $a9, $32, $48, $76, $77, $73, $60 ),
          ( $52, $d6, $f5, $11, $a7, $d7, $6b, $a4, $74, $8d, $60, $e7, $72, $83, $74, $68 ),
          ( $23, $bc, $83, $f5, $00, $51, $4f, $cb, $d2, $5a, $97, $9c, $3b, $68, $ca, $d4 ),
          ( $ff, $d1, $8e, $ff, $ce, $de, $5c, $0a, $c4, $aa, $83, $c5, $79, $a4, $64, $2b ),
          ( $a2, $f2, $5e, $0b, $57, $46, $ee, $4d, $ce, $fa, $8b, $5c, $91, $0d, $cd, $be ),
          ( $1b, $08, $28, $ee, $8b, $fb, $41, $4a, $83, $98, $a6, $a9, $a9, $b5, $34, $8b ),
          ( $31, $3b, $1e, $7c, $34, $5f, $6b, $ff, $db, $14, $71, $ff, $f7, $ca, $5a, $33 ),
          ( $fe, $ae, $53, $1b, $4b, $d9, $da, $7b, $2b, $5a, $2a, $0b, $24, $09, $ab, $9d ),
          ( $42, $94, $39, $04, $9e, $65, $b1, $ff, $17, $b1, $4b, $06, $fe, $89, $c5, $7b ),
          ( $c1, $f8, $79, $d4, $b7, $cc, $ed, $c3, $57, $43, $64, $55, $58, $26, $88, $23 ),
          ( $ab, $77, $3d, $08, $2f, $b0, $8b, $9c, $e9, $1b, $3a, $8c, $da, $1f, $2e, $fe ),
          ( $6d, $91, $d4, $e8, $c2, $3c, $34, $3e, $12, $42, $c2, $2b, $44, $73, $f2, $b6 ),
          ( $f4, $65, $1a, $4f, $8a, $ce, $a9, $05, $b5, $e0, $19, $b5, $6f, $10, $5b, $d5 ),
          ( $2d, $14, $43, $0e, $04, $91, $6c, $6e, $67, $25, $f5, $00, $2d, $69, $23, $df ),
          ( $3b, $ec, $d5, $a5, $b5, $d7, $89, $a1, $88, $74, $b4, $d0, $46, $ee, $f8, $22 ),
          ( $14, $c3, $07, $cd, $8b, $4d, $f5, $88, $9d, $9e, $46, $aa, $5c, $41, $75, $3e ),
          ( $25, $31, $a7, $ad, $7f, $ce, $15, $dc, $00, $6c, $e9, $44, $6e, $36, $00, $c8 ),
          ( $f0, $53, $0a, $a7, $53, $b9, $81, $67, $51, $58, $1f, $31, $12, $c1, $41, $c0 ),
          ( $9d, $28, $7c, $2d, $31, $91, $f6, $cf, $0f, $12, $52, $88, $92, $ac, $ae, $9e ),
          ( $bb, $2a, $31, $d7, $52, $dd, $df, $9f, $3d, $97, $12, $d4, $7c, $65, $47, $21 ),
          ( $b3, $7c, $ed, $a5, $44, $de, $90, $10, $1d, $68, $93, $a5, $d8, $55, $5b, $c1 ),
          ( $14, $4a, $9b, $d7, $40, $c0, $c8, $bb, $ab, $93, $31, $ac, $0f, $38, $86, $70 ),
          ( $2d, $71, $0e, $16, $c1, $88, $6b, $ce, $ea, $9a, $b5, $64, $74, $a8, $ed, $b5 ),
          ( $57, $4a, $3a, $11, $95, $d2, $7b, $fb, $b1, $00, $c8, $94, $10, $38, $24, $b1 ),
          ( $0b, $19, $c2, $e0, $ea, $1f, $28, $d8, $0b, $a1, $f8, $7d, $54, $02, $89, $e1 ),
          ( $58, $df, $17, $84, $28, $71, $51, $56, $05, $21, $58, $60, $3c, $5c, $2d, $85 ),
          ( $c1, $6e, $c0, $78, $0d, $cf, $28, $4c, $80, $cf, $92, $a7, $91, $da, $61, $32 ),
          ( $9a, $73, $f1, $65, $76, $80, $a2, $80, $a3, $4f, $68, $64, $fb, $6a, $3e, $9f ),
          ( $47, $0a, $44, $0c, $7c, $8f, $61, $4d, $2c, $43, $25, $62, $b7, $de, $c9, $62 ),
          ( $91, $52, $f7, $34, $f6, $64, $7a, $46, $ae, $8e, $ce, $57, $73, $8a, $b2, $ff ),
          ( $f8, $97, $ae, $aa, $7f, $d8, $09, $c4, $6a, $90, $bc, $79, $de, $b3, $18, $2d ),
          ( $d6, $57, $74, $b6, $f0, $73, $58, $d4, $27, $24, $3e, $89, $72, $2e, $05, $70 ),
          ( $56, $8a, $52, $47, $84, $93, $e6, $ef, $1d, $86, $e6, $9e, $6b, $7e, $ad, $b3 ),
          ( $fa, $39, $53, $6f, $2a, $20, $bc, $40, $c3, $5f, $99, $d7, $ea, $1d, $17, $29 ),
          ( $27, $7c, $b8, $48, $2f, $64, $64, $b9, $f4, $e8, $b5, $2d, $56, $30, $6e, $f3 ),
          ( $35, $11, $5e, $03, $ed, $a0, $19, $85, $66, $ad, $9f, $f4, $ea, $6c, $ff, $0b ),
          ( $cd, $9f, $0e, $0d, $55, $56, $14, $d1, $ee, $b7, $7b, $78, $84, $3a, $f1, $8c ),
          ( $1b, $8d, $67, $ff, $0f, $b0, $98, $7f, $7e, $e2, $2e, $2b, $f9, $2a, $08, $ee ),
          ( $77, $3f, $96, $88, $6e, $d5, $aa, $29, $f2, $93, $17, $9e, $fa, $20, $aa, $6e ),
          ( $3d, $ff, $c9, $49, $3a, $61, $7e, $96, $28, $d6, $d0, $b3, $11, $ac, $c9, $7c ),
          ( $6c, $ed, $81, $52, $03, $58, $f1, $3d, $ea, $95, $d9, $66, $c6, $dc, $40, $ea ),
          ( $d4, $db, $ca, $43, $20, $97, $f4, $27, $f8, $30, $23, $9e, $ea, $3b, $81, $3f ),
          ( $33, $5e, $a7, $47, $70, $63, $81, $9e, $1f, $41, $6d, $51, $db, $21, $27, $bc ),
          ( $3a, $00, $c4, $e4, $ca, $48, $cb, $68, $d8, $2f, $f7, $f1, $67, $35, $aa, $61 ),
          ( $57, $d7, $74, $64, $0d, $d2, $df, $c2, $79, $fc, $d7, $1b, $31, $f7, $7e, $5f ),
          ( $f0, $e8, $31, $58, $4e, $a2, $a0, $63, $3a, $d0, $c9, $94, $4e, $23, $49, $ad ),
          ( $93, $20, $f8, $28, $c2, $03, $5b, $6b, $32, $89, $62, $1b, $48, $ce, $9f, $8b ),
          ( $e4, $4f, $12, $cb, $c3, $1c, $82, $e2, $00, $57, $b6, $01, $71, $be, $a5, $83 ),
          ( $f1, $e3, $c3, $88, $4c, $5f, $75, $e8, $79, $17, $45, $12, $c6, $0e, $72, $79 ),
          ( $db, $f0, $41, $b4, $5d, $6e, $62, $aa, $98, $7c, $15, $c1, $01, $5f, $ce, $ee ),
          ( $d9, $b1, $ca, $71, $ca, $df, $b8, $73, $02, $53, $89, $71, $b4, $af, $90, $59 ),
          ( $b7, $b2, $5e, $fa, $3d, $ad, $43, $2b, $79, $9d, $45, $98, $16, $05, $00, $04 ),
          ( $3b, $26, $35, $74, $22, $96, $88, $ae, $1f, $87, $17, $6c, $85, $2c, $ac, $ba ),
          ( $cf, $e8, $fd, $09, $25, $bc, $1c, $d3, $53, $8c, $1f, $10, $6c, $ac, $9f, $32 ),
          ( $6d, $68, $2b, $be, $15, $2d, $75, $86, $5a, $c6, $52, $38, $5d, $20, $f5, $80 ),
          ( $1c, $d1, $5b, $44, $5b, $78, $78, $14, $e1, $a8, $73, $f0, $38, $6e, $fc, $1d ),
          ( $77, $94, $3f, $b9, $48, $1c, $38, $93, $72, $54, $bd, $a9, $86, $9a, $0c, $42 ),
          ( $30, $c5, $e9, $fa, $94, $ea, $8d, $13, $66, $ef, $1d, $9c, $bf, $b4, $00, $de ),
          ( $30, $a9, $2b, $f4, $3c, $b9, $dc, $a8, $74, $a0, $1d, $59, $e6, $9a, $03, $a6 ),
          ( $47, $9f, $63, $f6, $09, $42, $5f, $ef, $d9, $1c, $3d, $b4, $33, $15, $da, $5e ),
          ( $45, $e6, $cb, $b2, $bd, $a1, $26, $1d, $7c, $32, $61, $33, $f4, $9e, $9f, $0e ),
          ( $e4, $27, $bc, $50, $81, $06, $0b, $23, $57, $e7, $bc, $39, $2e, $67, $2d, $5b ),
          ( $2c, $c6, $40, $dc, $c2, $29, $00, $e6, $f7, $62, $ec, $d0, $f7, $8d, $3f, $36 ),
          ( $c2, $05, $c5, $9a, $0e, $49, $3b, $78, $83, $e8, $1c, $69, $41, $a1, $0a, $8d ),
          ( $d3, $b1, $36, $b0, $2e, $5b, $19, $3b, $87, $6e, $3f, $1f, $eb, $74, $ee, $0e ),
          ( $bc, $3b, $b0, $c3, $6a, $b8, $7d, $c1, $36, $21, $27, $29, $a7, $5c, $29, $45 ),
          ( $8f, $12, $98, $41, $f0, $fa, $ba, $b6, $65, $66, $f0, $6e, $02, $c5, $e7, $b2 ),
          ( $d9, $48, $e2, $18, $c8, $a8, $08, $fd, $f3, $6b, $83, $57, $8c, $e9, $78, $f8 ),
          ( $8c, $9d, $b4, $c6, $d3, $4b, $2d, $aa, $d6, $99, $3b, $57, $8f, $b3, $cb, $3b ),
          ( $6d, $b9, $8b, $0f, $a4, $32, $33, $6e, $3c, $8b, $0d, $df, $59, $0f, $57, $86 ),
          ( $19, $9d, $24, $a5, $33, $a7, $d4, $de, $1e, $e0, $fc, $55, $4b, $61, $66, $dc ),
          ( $b8, $39, $d4, $d1, $fa, $d2, $ac, $32, $7c, $22, $76, $3e, $93, $4c, $76, $ee ),
          ( $ba, $d5, $e2, $e6, $37, $c6, $26, $e4, $3c, $33, $44, $d4, $f9, $d8, $36, $36 ),
          ( $c1, $76, $eb, $5a, $73, $5d, $bb, $97, $14, $d9, $82, $ee, $74, $32, $be, $ee ),
          ( $91, $c7, $53, $ce, $fe, $82, $f6, $42, $8d, $4d, $11, $bf, $38, $74, $be, $ba ),
          ( $95, $13, $21, $4f, $9f, $0f, $d0, $d4, $3b, $1a, $2a, $25, $9a, $ee, $53, $aa ),
          ( $56, $69, $e2, $46, $54, $74, $22, $17, $1f, $0a, $44, $4d, $63, $5e, $92, $02 ),
          ( $99, $18, $07, $56, $8e, $b5, $06, $f6, $71, $e5, $59, $01, $ad, $f5, $ac, $e7 ),
          ( $19, $61, $45, $aa, $8b, $de, $85, $fc, $7c, $43, $08, $d2, $75, $0a, $16, $63 ),
          ( $5a, $af, $15, $a7, $92, $e2, $c7, $1f, $18, $d8, $03, $7e, $e6, $35, $69, $36 ),
          ( $ed, $76, $87, $1f, $16, $3c, $c6, $92, $90, $0c, $38, $d8, $56, $4d, $ce, $07 ),
          ( $65, $bc, $31, $da, $c7, $5e, $2d, $e3, $45, $24, $5c, $42, $28, $e3, $c5, $04 ),
          ( $6c, $74, $1e, $2f, $9f, $6e, $40, $0b, $30, $b8, $ac, $c9, $cb, $f7, $f3, $84 ),
          ( $39, $eb, $cb, $27, $e1, $60, $1f, $df, $89, $e4, $9d, $30, $7b, $55, $98, $40 ),
          ( $80, $1c, $82, $d9, $23, $29, $80, $f5, $d3, $17, $3f, $b0, $2d, $71, $a0, $84 ),
          ( $57, $ff, $55, $6b, $ee, $c2, $45, $5e, $2b, $f6, $34, $c2, $31, $e8, $a3, $e7 ),
          ( $d7, $7a, $56, $07, $c1, $bc, $3f, $e9, $a5, $1f, $e0, $9a, $62, $68, $a9, $98 ),
          ( $e9, $95, $b6, $81, $09, $7c, $d7, $15, $8d, $f6, $ce, $fe, $93, $87, $74, $7a ),
          ( $f7, $10, $03, $80, $6d, $c6, $db, $ee, $d3, $7a, $84, $da, $97, $74, $f1, $4b ),
          ( $58, $af, $66, $50, $8f, $f5, $97, $62, $0c, $51, $53, $1b, $50, $4f, $ad, $87 ),
          ( $46, $26, $c5, $77, $eb, $4d, $9d, $62, $43, $20, $79, $89, $6c, $6e, $f2, $84 ),
          ( $4c, $3f, $d6, $9f, $69, $ea, $a5, $e8, $1b, $7c, $49, $d2, $20, $42, $7e, $cf ),
          ( $a8, $6c, $3b, $e6, $94, $58, $86, $cb, $46, $bb, $e6, $ab, $e0, $77, $8c, $53 ),
          ( $1e, $d1, $c8, $a3, $95, $f1, $45, $d2, $5e, $e8, $fa, $81, $98, $8b, $7c, $b7 ),
          ( $06, $df, $7a, $a1, $b8, $2a, $43, $e3, $54, $38, $4f, $4f, $77, $23, $3d, $3e ),
          ( $7b, $f7, $97, $60, $bc, $0b, $ab, $b5, $61, $61, $79, $ce, $0a, $56, $3a, $f5 ),
          ( $10, $4e, $87, $02, $be, $54, $55, $0d, $f0, $79, $97, $ab, $09, $40, $12, $3f ),
          ( $56, $c8, $56, $91, $f3, $f0, $87, $90, $a5, $7a, $19, $aa, $06, $93, $54, $bb ),
          ( $ce, $27, $51, $df, $bd, $72, $b4, $fa, $f9, $84, $87, $4d, $0e, $be, $09, $87 ),
          ( $4f, $bd, $87, $e2, $cf, $17, $c4, $03, $48, $f4, $67, $cb, $0d, $d0, $50, $ee ),
          ( $4a, $9c, $47, $a4, $48, $ae, $08, $83, $d1, $cd, $1f, $3b, $00, $42, $5b, $b3 ),
          ( $49, $75, $81, $8b, $9b, $53, $3f, $81, $c1, $b7, $b6, $22, $2e, $ba, $0d, $0a ),
          ( $d5, $95, $47, $37, $f0, $33, $c4, $9d, $8e, $0b, $82, $90, $76, $d9, $96, $57 ),
          ( $36, $db, $6c, $e1, $7b, $34, $3b, $da, $9e, $1f, $53, $97, $af, $2f, $31, $b8 ),
          ( $e2, $f0, $8a, $42, $ef, $f9, $29, $03, $ea, $ba, $98, $03, $f1, $77, $ff, $1b ),
          ( $d4, $e4, $b3, $6b, $7a, $4e, $f8, $64, $59, $e7, $b4, $cf, $48, $d6, $91, $ed ),
          ( $6d, $35, $fa, $07, $26, $f1, $e9, $b4, $da, $a8, $44, $13, $7c, $18, $5c, $31 ),
          ( $b8, $7f, $bd, $4a, $80, $47, $00, $8e, $56, $60, $99, $06, $b9, $05, $ea, $23 ),
          ( $56, $6e, $e4, $e9, $3d, $f0, $40, $af, $b0, $04, $6c, $a4, $09, $f0, $9f, $80 ),
          ( $39, $39, $42, $4a, $21, $19, $94, $c1, $da, $f8, $66, $71, $10, $a8, $0b, $9a ),
          ( $b1, $3d, $b4, $da, $1f, $71, $8b, $c6, $90, $47, $97, $c8, $2b, $cf, $2d, $32 )
        );
        testVectors256: TestVectors = (
          ( $dc, $95, $c0, $78, $a2, $40, $89, $89, $ad, $48, $a2, $14, $92, $84, $20, $87 ),
          ( $7b, $c3, $02, $6c, $d7, $37, $10, $3e, $62, $90, $2b, $cd, $18, $fb, $01, $63 ),
          ( $e3, $3e, $e9, $c1, $5d, $20, $a5, $82, $64, $bc, $01, $70, $58, $57, $a9, $a6 ),
          ( $12, $57, $57, $af, $f3, $fa, $09, $fd, $09, $2f, $52, $3b, $f8, $07, $87, $7e ),
          ( $9d, $13, $b0, $8a, $68, $80, $8a, $0b, $63, $7b, $24, $56, $81, $ce, $b1, $46 ),
          ( $ba, $6c, $43, $26, $00, $9b, $0f, $eb, $a7, $ad, $cc, $c5, $33, $ac, $af, $5f ),
          ( $0e, $e8, $d5, $25, $85, $7b, $94, $db, $f9, $e2, $f4, $b2, $e5, $a9, $c2, $00 ),
          ( $25, $fe, $be, $d5, $a7, $3a, $25, $69, $50, $d0, $78, $c9, $22, $08, $35, $35 ),
          ( $b7, $fc, $85, $e5, $e6, $a5, $3c, $4e, $59, $e1, $12, $f5, $59, $b8, $92, $8b ),
          ( $f4, $fd, $f5, $c9, $0b, $f1, $96, $22, $c6, $16, $24, $3f, $5a, $6f, $16, $c5 ),
          ( $aa, $c3, $da, $35, $e2, $1b, $5a, $8c, $da, $2c, $e8, $fb, $a3, $24, $6f, $56 ),
          ( $51, $13, $d4, $b2, $dd, $63, $0b, $7b, $d8, $e6, $fb, $87, $27, $e5, $70, $ad ),
          ( $e2, $2b, $78, $57, $48, $e9, $19, $2a, $16, $97, $62, $a2, $bf, $26, $63, $a4 ),
          ( $a6, $1f, $f4, $02, $91, $6b, $4f, $c8, $37, $1a, $b9, $41, $d6, $e1, $d8, $7a ),
          ( $2b, $9f, $ba, $69, $ba, $0c, $cb, $e7, $70, $f9, $73, $ad, $ce, $fa, $b7, $20 ),
          ( $f4, $b9, $1c, $82, $86, $5d, $94, $58, $6b, $48, $09, $b9, $c0, $1e, $4d, $d8 ),
          ( $1f, $78, $8f, $e6, $d8, $6c, $31, $75, $49, $69, $7f, $bf, $0c, $07, $fa, $43 ),
          ( $3e, $53, $6c, $79, $17, $a6, $95, $48, $5e, $f0, $46, $bd, $a7, $c6, $a3, $e6 ),
          ( $ee, $fe, $1c, $4d, $76, $dd, $66, $f3, $75, $46, $e9, $07, $78, $d4, $a5, $55 ),
          ( $0e, $5c, $36, $9c, $6c, $04, $5c, $84, $38, $d1, $9d, $e1, $fd, $af, $7c, $db ),
          ( $fc, $30, $4f, $0a, $5a, $f7, $a1, $08, $b8, $19, $ef, $1d, $bc, $bc, $a4, $4e ),
          ( $9d, $17, $4f, $cb, $f9, $6c, $d5, $16, $01, $07, $b2, $04, $28, $17, $d1, $88 ),
          ( $f1, $63, $de, $e4, $ba, $30, $0f, $44, $7a, $e1, $f6, $ef, $d2, $01, $3a, $48 ),
          ( $74, $df, $89, $5a, $a5, $2f, $4a, $20, $46, $59, $bd, $22, $db, $40, $3a, $28 ),
          ( $54, $11, $30, $cf, $d0, $f6, $37, $fb, $e5, $2a, $c7, $a8, $7a, $74, $75, $27 ),
          ( $42, $79, $6c, $9e, $38, $f1, $07, $f3, $8f, $c2, $0d, $21, $69, $c2, $a2, $63 ),
          ( $0f, $ae, $8c, $0d, $7f, $fd, $5e, $27, $ef, $82, $0d, $45, $f9, $1a, $ff, $be ),
          ( $36, $75, $ec, $de, $97, $b8, $cb, $41, $65, $05, $f4, $5a, $bf, $82, $73, $41 ),
          ( $53, $d0, $d2, $cf, $e5, $ce, $ed, $4b, $56, $24, $f3, $a3, $8a, $e4, $85, $88 ),
          ( $aa, $11, $85, $65, $be, $bd, $15, $00, $7e, $3d, $24, $68, $a3, $c9, $02, $a1 ),
          ( $f3, $97, $af, $d7, $e0, $a3, $72, $7d, $c6, $93, $96, $f6, $8c, $26, $e9, $6e ),
          ( $3a, $b2, $c4, $8b, $43, $50, $10, $a3, $50, $58, $ba, $f5, $fc, $93, $31, $32 ),
          ( $07, $43, $eb, $89, $40, $2d, $82, $5b, $d6, $88, $20, $4f, $39, $96, $63, $00 ),
          ( $c8, $ce, $9a, $b9, $a2, $7f, $fb, $6c, $6b, $cf, $bd, $7a, $db, $49, $69, $00 ),
          ( $a5, $74, $b2, $43, $57, $86, $0c, $4b, $9c, $58, $0d, $4c, $be, $6c, $22, $c7 ),
          ( $ba, $96, $76, $3e, $dc, $ee, $0a, $97, $72, $e4, $6a, $c2, $80, $f1, $9b, $6d ),
          ( $f9, $1e, $8f, $11, $6f, $04, $f7, $16, $6a, $e3, $74, $8f, $5f, $22, $3d, $df ),
          ( $e8, $9b, $09, $94, $c7, $7d, $97, $30, $5a, $08, $49, $65, $8d, $c8, $98, $0e ),
          ( $2a, $23, $67, $5d, $16, $23, $09, $88, $68, $28, $0f, $e4, $ee, $c7, $30, $91 ),
          ( $53, $31, $d9, $9f, $61, $45, $4e, $b4, $68, $0e, $82, $55, $d5, $7a, $a0, $63 ),
          ( $b6, $8e, $21, $d7, $37, $7c, $87, $cf, $c8, $41, $97, $1d, $38, $71, $6f, $5f ),
          ( $6c, $89, $38, $ed, $58, $c4, $29, $be, $77, $b1, $af, $e6, $7b, $89, $8b, $0a ),
          ( $a5, $4c, $24, $64, $8c, $60, $2e, $60, $9d, $e1, $80, $2d, $04, $3e, $3a, $09 ),
          ( $36, $05, $fc, $9c, $5b, $59, $af, $03, $ea, $d9, $03, $e0, $ed, $53, $97, $e8 ),
          ( $ab, $96, $d5, $cc, $18, $8b, $7f, $29, $2b, $a8, $0c, $61, $a3, $a2, $81, $f5 ),
          ( $1d, $a5, $3f, $d3, $78, $84, $f1, $19, $e5, $6c, $d4, $98, $ce, $80, $b6, $cb ),
          ( $b9, $49, $2e, $f6, $18, $c9, $5e, $44, $9a, $98, $bb, $58, $df, $d5, $39, $8b ),
          ( $a8, $c5, $fe, $06, $c8, $13, $db, $de, $36, $fe, $3c, $c7, $39, $a8, $de, $5a ),
          ( $94, $b1, $3a, $9f, $4c, $09, $d4, $d7, $00, $2c, $3f, $11, $7d, $b1, $7c, $8b ),
          ( $d4, $22, $7e, $a7, $e0, $58, $66, $0b, $cc, $8d, $fa, $bb, $40, $55, $3d, $64 ),
          ( $d3, $ee, $cf, $5c, $bb, $79, $25, $7d, $b1, $2f, $3a, $90, $75, $61, $0d, $d7 ),
          ( $d2, $b7, $6f, $4a, $cb, $59, $80, $33, $5a, $fa, $95, $99, $c4, $82, $6a, $6e ),
          ( $e6, $da, $bc, $c3, $e9, $6a, $6c, $29, $4c, $1f, $48, $2d, $04, $5a, $09, $0b ),
          ( $7f, $12, $43, $52, $f4, $5d, $37, $58, $08, $9c, $12, $ad, $94, $29, $69, $a6 ),
          ( $ee, $ed, $40, $83, $65, $fd, $9f, $22, $3c, $cb, $ce, $2f, $8b, $1c, $c8, $25 ),
          ( $8f, $b3, $57, $7b, $41, $e8, $71, $8e, $da, $a9, $08, $49, $b4, $29, $e3, $3b ),
          ( $25, $0e, $ac, $ac, $47, $80, $f5, $16, $45, $90, $fa, $99, $e7, $50, $92, $5d ),
          ( $7c, $9f, $a7, $7e, $f0, $f7, $aa, $4d, $d5, $fb, $9f, $12, $fc, $d4, $d9, $e7 ),
          ( $67, $f1, $0c, $af, $5e, $44, $84, $48, $60, $ef, $ec, $9e, $82, $17, $4a, $ad ),
          ( $7b, $20, $05, $29, $03, $80, $7a, $91, $4e, $e2, $c3, $6c, $63, $6b, $18, $c9 ),
          ( $ac, $08, $97, $0f, $41, $17, $08, $50, $14, $ce, $de, $b0, $84, $99, $53, $8b ),
          ( $ec, $ac, $80, $97, $ca, $ba, $7d, $74, $51, $7d, $fa, $14, $a2, $6b, $09, $0d ),
          ( $56, $5a, $80, $1b, $a8, $2c, $35, $cb, $df, $80, $51, $9c, $ec, $21, $95, $c5 ),
          ( $d0, $e9, $06, $9b, $31, $8e, $38, $ce, $0a, $94, $63, $b0, $9f, $68, $c5, $e6 ),
          ( $5c, $a0, $2b, $aa, $30, $00, $05, $0c, $75, $e8, $f5, $fa, $b0, $19, $f5, $ff ),
          ( $7e, $0e, $75, $77, $ef, $9c, $30, $a6, $bf, $0b, $25, $e0, $62, $1e, $82, $7e ),
          ( $de, $a7, $b5, $25, $b0, $2e, $a7, $03, $2b, $5f, $4e, $fd, $2a, $53, $18, $8f ),
          ( $63, $c3, $7a, $b6, $49, $4e, $03, $e3, $0a, $ed, $f6, $67, $fb, $db, $a5, $e4 ),
          ( $01, $ac, $56, $f3, $17, $df, $f3, $c5, $63, $0f, $b1, $ca, $71, $bb, $3a, $c3 ),
          ( $a1, $8c, $7b, $98, $84, $ac, $39, $43, $40, $f4, $53, $82, $8b, $57, $29, $49 ),
          ( $0c, $50, $a7, $98, $c5, $af, $fa, $b6, $2f, $5d, $d2, $cb, $56, $bf, $81, $05 ),
          ( $e0, $a8, $ea, $86, $eb, $be, $17, $22, $09, $db, $64, $23, $93, $be, $b3, $09 ),
          ( $92, $cd, $da, $83, $32, $37, $dc, $b1, $a1, $8b, $96, $2f, $98, $22, $82, $22 ),
          ( $e6, $38, $39, $5a, $b5, $a5, $e2, $a8, $c7, $af, $c2, $97, $af, $fe, $9b, $29 ),
          ( $d9, $69, $06, $7e, $7d, $1f, $fb, $57, $fd, $bc, $54, $e2, $a7, $f9, $b8, $e3 ),
          ( $b6, $28, $f6, $63, $3c, $80, $9e, $2c, $48, $ff, $a2, $2e, $58, $b6, $76, $ff ),
          ( $7e, $9c, $1e, $5f, $6b, $6a, $8f, $a6, $86, $e3, $45, $ee, $42, $11, $19, $50 ),
          ( $f6, $dc, $26, $08, $40, $20, $3a, $11, $50, $e2, $61, $73, $7f, $9a, $bd, $21 ),
          ( $b4, $13, $c2, $1e, $85, $d0, $c7, $8b, $cb, $da, $4f, $14, $87, $21, $38, $fd ),
          ( $9c, $b6, $fe, $f0, $23, $33, $a7, $31, $50, $01, $50, $7f, $db, $d2, $7b, $f5 ),
          ( $e2, $25, $d9, $1a, $09, $fd, $ca, $6e, $04, $d6, $eb, $60, $2c, $e0, $d7, $f0 ),
          ( $cc, $f9, $06, $d6, $f1, $4e, $0c, $b7, $c7, $f1, $52, $3a, $75, $e7, $85, $59 ),
          ( $7d, $4a, $4b, $c6, $ff, $0e, $22, $85, $5e, $73, $b5, $af, $ee, $ec, $42, $ae ),
          ( $40, $c3, $5d, $03, $42, $8a, $04, $dd, $4a, $1f, $1e, $15, $47, $ed, $88, $42 ),
          ( $81, $6c, $b5, $2d, $35, $69, $03, $2c, $5e, $90, $10, $06, $ed, $c7, $2f, $e1 ),
          ( $46, $be, $de, $f0, $aa, $f9, $0e, $65, $86, $62, $ce, $82, $55, $aa, $6f, $78 ),
          ( $fc, $f6, $be, $28, $ee, $94, $47, $23, $a1, $c3, $e4, $c0, $7a, $0d, $d5, $72 ),
          ( $20, $26, $92, $9c, $d8, $02, $50, $d3, $83, $5e, $06, $0f, $64, $ba, $ff, $3c ),
          ( $5b, $0a, $3f, $80, $e9, $60, $7c, $a0, $53, $46, $65, $9a, $4e, $88, $97, $e3 ),
          ( $ae, $81, $26, $c3, $0f, $cc, $21, $ff, $a6, $fc, $c5, $bd, $f2, $7b, $ee, $72 ),
          ( $0a, $be, $39, $0f, $81, $f6, $cf, $7c, $19, $32, $78, $6a, $9f, $22, $94, $87 ),
          ( $08, $30, $b0, $64, $5f, $d9, $e5, $6f, $45, $52, $4d, $fe, $22, $50, $d3, $b5 ),
          ( $91, $c2, $d0, $cf, $b6, $11, $82, $05, $84, $8e, $5d, $61, $be, $6b, $20, $67 ),
          ( $b1, $ca, $4a, $20, $fd, $fa, $a7, $0d, $df, $63, $fa, $ba, $77, $d8, $bc, $3f ),
          ( $04, $d4, $52, $1e, $fb, $fc, $45, $cf, $5d, $e2, $7b, $42, $0f, $12, $b1, $3a ),
          ( $d6, $87, $d7, $e3, $6d, $00, $e6, $5e, $b4, $eb, $3b, $3a, $f8, $17, $76, $1b ),
          ( $64, $b0, $14, $9b, $66, $53, $71, $80, $f6, $9e, $32, $86, $9e, $73, $cf, $d5 ),
          ( $98, $4c, $52, $6a, $73, $35, $b5, $5c, $84, $57, $58, $63, $4a, $a0, $65, $4d ),
          ( $a2, $a8, $e7, $7f, $24, $00, $34, $8e, $bc, $a2, $7e, $b0, $9c, $5d, $0d, $a2 ),
          ( $08, $65, $66, $ea, $7b, $19, $af, $96, $fc, $f7, $61, $72, $8f, $23, $55, $2f ),
          ( $74, $bc, $7b, $dd, $eb, $18, $d4, $70, $ac, $d1, $91, $9c, $99, $88, $e8, $04 ),
          ( $51, $0d, $f4, $66, $32, $52, $0a, $86, $1d, $41, $d6, $c8, $29, $f0, $f3, $05 ),
          ( $3b, $77, $28, $65, $fb, $d5, $02, $6b, $1b, $d0, $5c, $e5, $e8, $82, $f4, $10 ),
          ( $86, $bd, $62, $40, $1c, $7f, $8b, $7c, $d0, $e8, $4a, $7f, $4d, $ec, $8c, $fe ),
          ( $b4, $68, $d0, $00, $93, $79, $49, $05, $c8, $31, $fe, $d7, $c8, $3d, $b0, $ad ),
          ( $b9, $ad, $dc, $81, $73, $a0, $b1, $54, $be, $a6, $95, $74, $73, $89, $e5, $ca ),
          ( $6f, $18, $23, $17, $07, $f6, $99, $70, $04, $67, $77, $49, $ec, $50, $2c, $0c ),
          ( $19, $aa, $aa, $8d, $33, $a8, $c4, $d9, $f3, $08, $97, $1b, $12, $64, $0b, $1e ),
          ( $a3, $ec, $f2, $8b, $36, $39, $26, $bc, $ed, $3c, $05, $c7, $7a, $ba, $56, $11 ),
          ( $0b, $a3, $95, $64, $e5, $3e, $db, $cc, $6d, $02, $99, $b4, $d4, $57, $50, $52 ),
          ( $d4, $2f, $89, $c8, $43, $7e, $d5, $b5, $75, $54, $c1, $bd, $d7, $16, $1e, $1a ),
          ( $ec, $f0, $42, $cb, $15, $32, $32, $74, $b7, $ae, $b4, $1b, $90, $d9, $86, $e9 ),
          ( $4d, $33, $65, $15, $77, $c4, $20, $8f, $82, $dc, $07, $83, $28, $7a, $6e, $6b ),
          ( $bf, $51, $7f, $38, $73, $93, $c7, $19, $6f, $5d, $72, $4d, $16, $ea, $4a, $ff ),
          ( $ce, $2f, $5a, $ef, $a6, $c8, $63, $e3, $c5, $f4, $2d, $3d, $34, $c4, $cf, $e8 ),
          ( $67, $92, $fe, $5a, $e3, $33, $c4, $a4, $ab, $4e, $4d, $a9, $e8, $12, $86, $6b ),
          ( $ae, $ec, $38, $2c, $67, $e9, $79, $20, $9f, $f0, $1e, $f4, $86, $ef, $35, $f1 ),
          ( $5f, $0c, $e7, $6f, $06, $ff, $af, $e7, $72, $87, $c9, $a2, $b0, $53, $d4, $e9 ),
          ( $98, $19, $12, $fd, $53, $92, $83, $c8, $f3, $7e, $c3, $48, $b6, $9d, $05, $59 ),
          ( $43, $85, $d8, $f7, $e7, $d5, $52, $50, $14, $93, $fc, $68, $db, $80, $35, $5e ),
          ( $88, $ea, $96, $78, $46, $f2, $38, $85, $c0, $d4, $f1, $d7, $0a, $6c, $3b, $3c ),
          ( $eb, $1e, $b8, $8e, $b4, $ec, $00, $a0, $64, $27, $c5, $b8, $f5, $fd, $7c, $9b ),
          ( $bb, $0a, $a1, $6d, $5a, $c3, $60, $21, $99, $14, $7c, $4e, $0d, $3f, $35, $4a ),
          ( $53, $f3, $84, $89, $24, $c2, $9a, $d6, $c6, $eb, $a9, $8b, $1b, $9a, $c1, $bb ),
          ( $9a, $ea, $8b, $1b, $d3, $d4, $87, $23, $8a, $b7, $ad, $64, $de, $e2, $0d, $eb ),
          ( $b6, $f7, $6b, $9b, $a6, $7f, $a2, $19, $30, $34, $5c, $e1, $b0, $b8, $a0, $13 ),
          ( $ff, $dc, $1a, $df, $d8, $44, $b5, $4b, $52, $83, $b7, $11, $6b, $da, $41, $d6 ),
          ( $53, $a6, $7d, $f7, $9e, $5a, $4b, $9d, $88, $11, $1b, $fa, $27, $42, $44, $08 ),
          ( $8a, $cc, $4d, $7a, $a1, $00, $ec, $09, $63, $d6, $c9, $e1, $a7, $77, $b2, $81 ),
          ( $a8, $ef, $b4, $2d, $de, $2f, $90, $a8, $21, $30, $42, $97, $74, $81, $a8, $c1 ),
          ( $b6, $82, $dc, $9b, $db, $2e, $fc, $bc, $2a, $7a, $29, $85, $e6, $1c, $4c, $18 ),
          ( $4d, $cc, $18, $2a, $0e, $8f, $23, $3a, $48, $99, $56, $51, $b3, $dc, $81, $ca ),
          ( $70, $6d, $72, $80, $69, $dd, $46, $14, $ba, $48, $1c, $cb, $53, $00, $d1, $a4 ),
          ( $95, $ec, $2b, $64, $5d, $0a, $94, $24, $f8, $e0, $f2, $21, $04, $60, $51, $2b ),
          ( $60, $4e, $9a, $28, $6d, $08, $0f, $32, $c4, $11, $e2, $5a, $a2, $14, $db, $c7 ),
          ( $e1, $be, $28, $6e, $af, $a3, $65, $4d, $a8, $90, $f2, $e7, $34, $55, $f8, $f2 ),
          ( $49, $7e, $67, $3c, $a6, $6d, $06, $52, $d8, $30, $a2, $e6, $0f, $7e, $d9, $cd ),
          ( $ed, $12, $cb, $be, $d5, $c2, $d7, $64, $22, $40, $00, $b3, $ac, $32, $23, $46 ),
          ( $aa, $a8, $09, $36, $51, $7e, $93, $b2, $c3, $71, $fc, $da, $77, $28, $d9, $a5 ),
          ( $2b, $95, $40, $9d, $98, $72, $27, $b2, $d8, $b4, $a1, $7b, $8f, $af, $3a, $5c ),
          ( $81, $67, $7c, $4e, $8b, $b6, $ac, $bf, $f9, $14, $b6, $f0, $b4, $5b, $a9, $a9 ),
          ( $72, $ae, $a1, $de, $0e, $43, $76, $e9, $08, $c7, $ec, $ec, $5b, $b8, $c5, $5f ),
          ( $b6, $6d, $f7, $b6, $63, $e7, $38, $17, $39, $23, $53, $a3, $39, $f1, $31, $cb ),
          ( $62, $a6, $3f, $82, $42, $1e, $56, $aa, $58, $7e, $29, $e7, $d3, $55, $29, $67 ),
          ( $88, $7a, $b0, $64, $62, $88, $17, $4c, $54, $d0, $46, $cd, $2c, $2c, $ef, $25 ),
          ( $95, $fd, $3a, $13, $7f, $17, $d7, $f9, $a5, $2a, $7c, $cb, $da, $5a, $89, $18 ),
          ( $7d, $17, $ef, $7a, $24, $40, $32, $86, $17, $11, $ec, $80, $f2, $73, $3c, $94 ),
          ( $a7, $0e, $c0, $8a, $01, $f7, $4b, $fc, $42, $cc, $07, $19, $2a, $e7, $4e, $18 ),
          ( $55, $d3, $ee, $6d, $07, $a9, $ae, $08, $49, $e4, $fb, $91, $ba, $5a, $0e, $ed ),
          ( $c1, $15, $a1, $58, $c2, $81, $42, $a1, $7e, $74, $78, $0f, $bf, $1d, $7e, $fe ),
          ( $16, $75, $47, $22, $fb, $4b, $78, $15, $4e, $52, $c0, $09, $18, $fc, $bb, $5a ),
          ( $ce, $25, $14, $4c, $4e, $5a, $92, $36, $1f, $97, $65, $14, $48, $b8, $05, $7d ),
          ( $de, $a1, $89, $cd, $cf, $90, $2c, $6e, $2c, $ac, $f5, $01, $36, $31, $b7, $55 ),
          ( $16, $a6, $b0, $2d, $bf, $f9, $2c, $6c, $67, $71, $eb, $d4, $fd, $e6, $98, $28 ),
          ( $1f, $8b, $fb, $04, $bc, $08, $a0, $a6, $4f, $c4, $cf, $b4, $18, $f8, $f8, $1b ),
          ( $d7, $e1, $1f, $f5, $c8, $5a, $8c, $d6, $6e, $0e, $97, $5b, $e8, $fe, $e3, $df ),
          ( $5c, $39, $26, $3a, $ef, $be, $43, $e6, $82, $e6, $e9, $ff, $24, $89, $4c, $fe ),
          ( $e5, $41, $97, $dd, $ee, $0d, $fd, $2d, $dc, $7f, $de, $bd, $56, $2c, $cd, $5a ),
          ( $d8, $0d, $62, $1f, $19, $cc, $d1, $97, $80, $77, $24, $bb, $bb, $c0, $a0, $ec ),
          ( $48, $3e, $8f, $d0, $fc, $a4, $dc, $e7, $29, $59, $ee, $ac, $1c, $9c, $77, $3a ),
          ( $fc, $02, $96, $cc, $85, $a7, $cf, $f9, $3d, $c3, $19, $c5, $fe, $6e, $42, $0a ),
          ( $e8, $46, $d8, $dc, $db, $60, $6c, $52, $b2, $e4, $be, $10, $4b, $2f, $2d, $7d ),
          ( $32, $d9, $2c, $15, $f9, $fc, $c2, $d6, $27, $34, $47, $40, $86, $ca, $28, $a9 ),
          ( $66, $12, $14, $80, $4e, $6f, $67, $09, $24, $f3, $58, $1a, $2c, $58, $96, $7f ),
          ( $c5, $9c, $1b, $93, $e9, $0d, $94, $ef, $be, $2d, $c3, $ce, $5c, $c8, $fb, $40 ),
          ( $8b, $e8, $b9, $1a, $98, $91, $d9, $34, $41, $85, $58, $45, $8a, $da, $e1, $2d ),
          ( $dd, $5f, $08, $6f, $50, $6a, $71, $92, $32, $fd, $33, $a3, $e3, $54, $22, $62 ),
          ( $67, $81, $57, $63, $69, $59, $c8, $f0, $a7, $fd, $f6, $06, $97, $39, $bc, $69 ),
          ( $e0, $dd, $d2, $c2, $fe, $91, $c5, $d0, $c3, $5a, $68, $ff, $f5, $34, $ef, $ee ),
          ( $d1, $88, $a9, $05, $9e, $20, $04, $ea, $79, $ac, $8d, $73, $a5, $e9, $48, $f5 ),
          ( $b5, $eb, $fc, $02, $a7, $26, $8e, $ef, $24, $41, $2b, $9a, $99, $d0, $41, $d7 ),
          ( $55, $f7, $40, $c3, $9c, $f2, $f8, $f2, $58, $b1, $ec, $a5, $ee, $ba, $ad, $12 ),
          ( $85, $19, $03, $a1, $9e, $71, $b1, $6b, $47, $13, $37, $45, $00, $5f, $a4, $f6 ),
          ( $04, $2d, $45, $80, $e6, $c4, $39, $d1, $33, $e3, $f4, $a6, $54, $a2, $21, $12 ),
          ( $2d, $48, $fa, $7b, $68, $e6, $79, $ce, $de, $f3, $31, $fd, $6b, $89, $d9, $64 ),
          ( $61, $84, $24, $db, $27, $6b, $37, $4a, $45, $c7, $ee, $a3, $f4, $a8, $4c, $9c ),
          ( $f3, $be, $e6, $a1, $20, $99, $38, $50, $55, $cb, $c5, $ef, $3d, $1f, $1e, $7b ),
          ( $b6, $fa, $bb, $19, $04, $df, $57, $b2, $3a, $9e, $db, $63, $c4, $79, $c2, $a9 ),
          ( $73, $18, $6f, $a8, $36, $b5, $ab, $80, $79, $20, $42, $33, $6d, $b6, $36, $73 ),
          ( $8e, $f5, $88, $64, $db, $67, $33, $e5, $75, $fd, $10, $03, $b0, $27, $3e, $f1 ),
          ( $53, $5f, $34, $39, $8d, $25, $85, $af, $1f, $d4, $1e, $bf, $53, $cb, $fe, $3f ),
          ( $5a, $6b, $47, $20, $50, $2b, $f6, $9c, $d4, $84, $84, $dc, $d0, $a2, $bd, $a3 ),
          ( $68, $e7, $b4, $3e, $b5, $fe, $72, $e6, $c7, $a3, $94, $9c, $ba, $e2, $f4, $8e ),
          ( $4b, $85, $57, $33, $20, $5c, $db, $89, $c3, $90, $ef, $a9, $55, $91, $00, $20 ),
          ( $02, $fb, $72, $b9, $25, $46, $24, $e2, $ce, $97, $fb, $c8, $f7, $d7, $ab, $bf ),
          ( $44, $db, $38, $1c, $e1, $3e, $8d, $ea, $4c, $50, $bd, $25, $d1, $a8, $a5, $a5 ),
          ( $7e, $60, $3e, $6e, $e0, $44, $e7, $1e, $da, $f4, $e6, $9a, $da, $e5, $a1, $e0 ),
          ( $ed, $1b, $77, $0a, $15, $dc, $2f, $d6, $08, $6c, $c5, $66, $4e, $a4, $11, $2f ),
          ( $ef, $ab, $4b, $c2, $3e, $0b, $b2, $ce, $4a, $af, $93, $14, $7b, $5c, $43, $92 ),
          ( $d8, $b7, $55, $9e, $a7, $07, $4b, $b9, $7a, $a5, $c9, $0d, $d0, $a3, $9c, $fd ),
          ( $3a, $6e, $e3, $3b, $5b, $4e, $80, $16, $23, $bf, $89, $cb, $0e, $27, $f8, $a9 ),
          ( $48, $e2, $80, $c2, $3b, $4f, $b8, $f4, $02, $06, $d4, $64, $dc, $bb, $53, $5b ),
          ( $c1, $ae, $e8, $8c, $fe, $29, $92, $d7, $52, $e9, $86, $cb, $7d, $4d, $87, $f2 ),
          ( $c5, $c2, $f5, $45, $52, $c8, $99, $3d, $02, $9a, $b6, $d5, $7a, $88, $6d, $1c ),
          ( $2f, $da, $e6, $d3, $aa, $1f, $4a, $a7, $46, $6b, $60, $02, $e9, $94, $eb, $a1 ),
          ( $22, $84, $9a, $5f, $f5, $29, $f7, $dc, $3d, $1c, $80, $e9, $13, $65, $e5, $ad ),
          ( $be, $91, $73, $67, $56, $e0, $4f, $cc, $7b, $c4, $ff, $5a, $42, $cf, $eb, $5b ),
          ( $43, $77, $e3, $21, $29, $bb, $30, $56, $30, $34, $27, $79, $ab, $84, $88, $e8 ),
          ( $76, $9b, $6f, $e7, $61, $6a, $b5, $f7, $df, $02, $0b, $9c, $2b, $ae, $42, $f8 ),
          ( $a1, $3a, $1f, $56, $11, $5c, $e3, $21, $6d, $49, $ae, $e7, $24, $e1, $ee, $78 ),
          ( $29, $9b, $77, $36, $d4, $6a, $dd, $79, $b9, $3d, $bf, $e4, $46, $3e, $67, $8a ),
          ( $3b, $89, $8b, $73, $e2, $c8, $f9, $37, $d6, $dd, $19, $c1, $38, $21, $7b, $a9 ),
          ( $3b, $f7, $7c, $19, $0e, $23, $19, $27, $8b, $a4, $83, $64, $44, $f0, $b0, $40 ),
          ( $77, $ea, $29, $58, $1c, $89, $b7, $1f, $ce, $c3, $11, $25, $22, $74, $93, $71 ),
          ( $ac, $4c, $56, $16, $2c, $8f, $72, $91, $c8, $1b, $68, $71, $11, $b3, $42, $4a ),
          ( $5f, $54, $c0, $3a, $de, $01, $b3, $9d, $56, $28, $08, $2e, $c3, $99, $99, $ef ),
          ( $47, $dc, $c2, $d7, $70, $be, $a9, $b3, $3e, $6e, $fe, $cd, $c6, $90, $9e, $a4 ),
          ( $32, $f6, $fd, $d7, $77, $c7, $84, $61, $93, $c6, $fe, $24, $f7, $ef, $ae, $f3 ),
          ( $25, $04, $98, $28, $7a, $7e, $80, $39, $d9, $3c, $31, $b2, $0d, $8d, $0d, $5f ),
          ( $e1, $56, $8d, $38, $5e, $22, $af, $0d, $19, $70, $77, $45, $50, $eb, $03, $be ),
          ( $4c, $b9, $78, $31, $a1, $43, $28, $10, $c0, $73, $99, $e2, $a4, $94, $cf, $0d ),
          ( $21, $b9, $25, $f5, $df, $b0, $23, $ec, $79, $e3, $7e, $a0, $fb, $b7, $bb, $1c ),
          ( $18, $fc, $cb, $a5, $4a, $2c, $59, $cc, $b4, $cd, $b1, $6e, $83, $86, $a2, $8e ),
          ( $6a, $7c, $66, $48, $c4, $d3, $f5, $79, $77, $60, $e8, $28, $c0, $f1, $d1, $e7 ),
          ( $65, $16, $e3, $a9, $a1, $be, $79, $65, $7e, $26, $d7, $d5, $54, $df, $10, $ea ),
          ( $e1, $05, $62, $cb, $87, $27, $ae, $d2, $ce, $0f, $ab, $bf, $75, $b0, $bb, $19 ),
          ( $15, $8a, $67, $a7, $c3, $ed, $43, $1c, $5f, $33, $a6, $b3, $be, $66, $71, $57 ),
          ( $0c, $51, $de, $25, $4a, $7d, $fb, $38, $20, $ce, $1e, $3b, $e8, $2b, $8b, $77 ),
          ( $0a, $b6, $b4, $83, $a3, $da, $d3, $6f, $1f, $db, $b2, $39, $0f, $25, $d3, $ca ),
          ( $ca, $13, $34, $28, $62, $7d, $6e, $af, $81, $b8, $3b, $9e, $9d, $13, $2b, $c8 ),
          ( $4f, $9b, $03, $7a, $d2, $e4, $26, $2e, $48, $20, $e0, $cf, $9d, $c3, $eb, $74 ),
          ( $c6, $8a, $cd, $fa, $7d, $57, $87, $77, $53, $a5, $c2, $a8, $a4, $88, $cc, $d3 ),
          ( $e9, $bb, $be, $06, $d3, $c7, $a4, $4d, $63, $e7, $29, $80, $01, $75, $da, $48 ),
          ( $f3, $53, $12, $59, $a5, $eb, $ad, $5b, $8b, $5b, $de, $9e, $24, $12, $ba, $ed ),
          ( $63, $9f, $6c, $46, $23, $a7, $44, $2f, $38, $1c, $6b, $26, $1e, $58, $bf, $7b ),
          ( $db, $6e, $69, $21, $8e, $a6, $67, $48, $6c, $e5, $69, $97, $6e, $fd, $54, $84 ),
          ( $26, $98, $3a, $0a, $f3, $bc, $34, $9e, $1f, $e4, $ec, $ae, $23, $6a, $f2, $3b ),
          ( $81, $37, $fb, $ed, $a0, $20, $4f, $8f, $35, $eb, $63, $6c, $16, $7e, $b4, $9b ),
          ( $5a, $8d, $d5, $72, $15, $15, $75, $0d, $b2, $1f, $7f, $eb, $f6, $a4, $8c, $8d ),
          ( $bf, $9c, $dd, $bf, $96, $72, $0e, $6a, $8d, $d5, $f7, $31, $a7, $33, $05, $af ),
          ( $32, $6b, $7f, $2b, $b6, $b8, $42, $3a, $23, $f6, $8b, $2f, $34, $e5, $d8, $03 ),
          ( $f8, $2c, $1f, $f5, $ca, $82, $08, $b6, $b8, $d0, $5e, $61, $fb, $68, $b8, $95 ),
          ( $ca, $bc, $ad, $f6, $8f, $a9, $20, $9a, $bd, $09, $0a, $01, $2a, $0d, $8e, $26 ),
          ( $c0, $47, $df, $9c, $18, $7c, $c3, $f2, $43, $6b, $a7, $3a, $57, $95, $19, $b3 ),
          ( $be, $b6, $44, $2f, $b8, $45, $ba, $ac, $ef, $c0, $8f, $28, $b4, $bb, $6d, $5e ),
          ( $3f, $1f, $31, $7d, $bf, $ce, $d0, $2c, $8f, $cc, $35, $50, $48, $33, $3c, $06 ),
          ( $35, $9c, $29, $23, $76, $0c, $c9, $cd, $34, $f1, $fb, $bc, $13, $b6, $be, $17 ),
          ( $6b, $64, $5a, $0a, $71, $b5, $b5, $6f, $16, $9f, $ae, $61, $5d, $da, $5d, $3b ),
          ( $ee, $f8, $1b, $86, $28, $5e, $b5, $9c, $8d, $db, $0e, $de, $95, $b4, $f9, $9f ),
          ( $50, $0e, $7e, $18, $c2, $20, $e8, $13, $ff, $b6, $96, $c0, $25, $c9, $e9, $25 ),
          ( $dc, $3d, $fe, $78, $96, $c0, $32, $f4, $1e, $08, $dc, $10, $15, $d3, $ee, $3b ),
          ( $c8, $dc, $81, $86, $35, $34, $1e, $ab, $e3, $5c, $d0, $cf, $2c, $1f, $14, $ca ),
          ( $0b, $8b, $87, $2c, $68, $9a, $bc, $e6, $33, $90, $11, $d0, $b3, $e0, $73, $e0 ),
          ( $fd, $0a, $98, $bc, $54, $35, $df, $e2, $08, $31, $3c, $f2, $b8, $7b, $8f, $14 ),
          ( $8c, $8b, $7d, $c7, $48, $3b, $c9, $27, $ef, $21, $23, $0b, $ff, $5c, $96, $27 ),
          ( $68, $11, $44, $02, $49, $a1, $3b, $14, $6e, $16, $1e, $e3, $12, $de, $bd, $ed ),
          ( $4e, $8c, $1e, $ae, $19, $8d, $ee, $23, $f3, $ba, $12, $a3, $84, $36, $4c, $b4 ),
          ( $f4, $a6, $8e, $c9, $e7, $ce, $99, $e8, $ca, $af, $af, $e1, $d8, $1e, $40, $66 ),
          ( $f2, $5d, $66, $4b, $50, $f5, $25, $d0, $45, $0e, $78, $0b, $ab, $cb, $a5, $44 ),
          ( $5e, $b6, $25, $ae, $8b, $a4, $00, $d6, $cb, $6f, $54, $f8, $99, $2f, $61, $2d ),
          ( $fc, $64, $88, $a0, $83, $95, $f7, $9c, $65, $e5, $92, $7c, $a8, $ca, $19, $b4 ),
          ( $1f, $02, $3c, $f7, $28, $cd, $9e, $e5, $aa, $3e, $04, $87, $9c, $18, $a5, $6e ),
          ( $cd, $dc, $9c, $39, $83, $ce, $3b, $98, $39, $69, $8d, $90, $5d, $56, $94, $09 ),
          ( $fc, $66, $7f, $3b, $0b, $92, $7f, $92, $f2, $4f, $d5, $d7, $25, $c4, $f8, $1c ),
          ( $27, $84, $c8, $72, $be, $1b, $db, $37, $2c, $9c, $b8, $36, $c5, $6c, $c0, $3a ),
          ( $ac, $da, $ce, $80, $78, $a3, $2b, $1a, $18, $2b, $fa, $49, $87, $ca, $13, $47 )
        );

    PROCEDURE SimpleTest ( keyBits: LONGINT; const tv: testVectors );
    VAR Nr, i, t: LONGINT;
        cipherKey: Block;
        ek, dk: ExpandedKey;
        pt, ct, vt: Block;
    BEGIN
        FOR i := 0 TO Rijndael.MAXKS - 1 DO BEGIN
            cipherKey[i] := 0;
        END { FOR i };
        FOR i := 0 TO 255 DO BEGIN
            FOR t := 0 TO 15 DO BEGIN
                pt[t] := i;
            END { FOR t };

            FOR t := 0 TO 15 DO BEGIN
                vt[t] := 0;
            END { FOR t };
            Nr := Rijndael.KeySetupEnc(ek, cipherKey, keyBits);
            Rijndael.Encrypt(ek, Nr, pt, 0, ct, 0);
            FOR t := 0 TO 15 DO BEGIN
                IF ct[t] <> tv[i][t] THEN BEGIN
                    WriteLn(keyBits, '-bit encrypt failure @ ',
                            'i=', i:3, ', t=', t:2, ': ',
                            ct[t]:4, ' vs. ', tv[i][t]: 4);
                    Exit;
                END { IF };
            END { FOR t };
            Nr := Rijndael.KeySetupDec(dk, cipherKey, keyBits);
            Rijndael.Decrypt(dk, Nr, ct, 0, vt, 0);
            FOR t := 0 TO 15 DO BEGIN
                IF vt[t] <> pt[t] THEN BEGIN
                    WriteLn(keyBits, '-bit decrypt failure @ ',
                            'i=', i:3, ', t=', t:2, ': ',
                            vt[t]:4, ' vs. ', pt[t]: 4);
                    Exit;
                END { IF };
            END { FOR t };

            Write('.');
            IF (i + 1) MOD 64 = 0 THEN BEGIN
                WriteLn;
            END { IF };
        END { FOR i };
        WriteLn('Simple test for ', keyBits, '-bit OK!');
    END { SimpleTest };

BEGIN
    SimpleTest(128, testVectors128);
    SimpleTest(192, testVectors192);
    SimpleTest(256, testVectors256);
END { program RijndaelTest }.

