DCL SPCPTR .PARM1 PARM; DCL DD CONTROL CHAR(256) BAS(.PARM1); DCL DD OPERATION CHAR(8) DEF(CONTROL) POS( 1); /* EK ENCRYPTION KEY SCHEDULE */ /* E ENCRYPT */ /* DK DECRYPTION KEY SCHEDULE */ /* D DECRYPT */ DCL DD KEY CHAR(16) DEF(CONTROL) POS( 9); DCL DD SCHEDULE CHAR(176) DEF(CONTROL) POS(25); DCL DD RK(0:43) CHAR(4) DEF(SCHEDULE) POS(1); DCL SPCPTR .PARM2 PARM; DCL DD PT CHAR(16) BAS(.PARM2); DCL SPCPTR .PARM3 PARM; DCL DD CT CHAR(16) BAS(.PARM3); DCL OL PARMS (.PARM1, .PARM2, .PARM3) PARM EXT MIN(3); DCL DD S0 CHAR(4); DCL DD S1 CHAR(4); DCL DD S2 CHAR(4); DCL DD S3 CHAR(4); DCL DD T0 CHAR(4); DCL DD T1 CHAR(4); DCL DD T2 CHAR(4); DCL DD T3 CHAR(4); DCL DD L0 CHAR(4); DCL DD L1 CHAR(4); DCL DD L2 CHAR(4); DCL DD L3 CHAR(4); DCL DD RN BIN(4) UNSGND; DCL DD B BIN(4) UNSGND; DCL DD CB CHAR(1) DEF(B) POS(4); DCL DD R CHAR(4); ENTRY * (PARMS) EXT; CMPBLA(B) OPERATION(2:1), "K"/EQ(SETUP-KEY-SCHEDULE); CMPBLA(B) OPERATION(1:1), "E"/EQ(ENCRYPT); CMPBLA(B) OPERATION(1:1), "D"/EQ(DECRYPT); SETUP-KEY-SCHEDULE: SETUP-ENCRYPT-KEYS: CPYBLA RK(00), KEY(01:4); CPYBLA RK(01), KEY(05:4); CPYBLA RK(02), KEY(09:4); CPYBLA RK(03), KEY(13:4); CPYBTL B, RK(03), 8, 8; XOR L0(1:1), TE4(B), X'01'; CPYBTL B, RK(03), 16, 8; CPYBLA L0(2:1), TE4(B); CPYBTL B, RK(03), 24, 8; CPYBLA L0(3:1), TE4(B); CPYBTL B, RK(03), 0, 8; CPYBLA L0(4:1), TE4(B); XOR RK(04), L0 , RK(00); XOR RK(05), RK(04), RK(01); XOR RK(06), RK(05), RK(02); XOR RK(07), RK(06), RK(03); CPYBTL B, RK(07), 8, 8; XOR L0(1:1), TE4(B), X'02'; CPYBTL B, RK(07), 16, 8; CPYBLA L0(2:1), TE4(B); CPYBTL B, RK(07), 24, 8; CPYBLA L0(3:1), TE4(B); CPYBTL B, RK(07), 0, 8; CPYBLA L0(4:1), TE4(B); XOR RK(08), L0 , RK(04); XOR RK(09), RK(08), RK(05); XOR RK(10), RK(09), RK(06); XOR RK(11), RK(10), RK(07); CPYBTL B, RK(11), 8, 8; XOR L0(1:1), TE4(B), X'04'; CPYBTL B, RK(11), 16, 8; CPYBLA L0(2:1), TE4(B); CPYBTL B, RK(11), 24, 8; CPYBLA L0(3:1), TE4(B); CPYBTL B, RK(11), 0, 8; CPYBLA L0(4:1), TE4(B); XOR RK(12), L0 , RK(08); XOR RK(13), RK(12), RK(09); XOR RK(14), RK(13), RK(10); XOR RK(15), RK(14), RK(11); CPYBTL B, RK(15), 8, 8; XOR L0(1:1), TE4(B), X'08'; CPYBTL B, RK(15), 16, 8; CPYBLA L0(2:1), TE4(B); CPYBTL B, RK(15), 24, 8; CPYBLA L0(3:1), TE4(B); CPYBTL B, RK(15), 0, 8; CPYBLA L0(4:1), TE4(B); XOR RK(16), L0 , RK(12); XOR RK(17), RK(16), RK(13); XOR RK(18), RK(17), RK(14); XOR RK(19), RK(18), RK(15); CPYBTL B, RK(19), 8, 8; XOR L0(1:1), TE4(B), X'10'; CPYBTL B, RK(19), 16, 8; CPYBLA L0(2:1), TE4(B); CPYBTL B, RK(19), 24, 8; CPYBLA L0(3:1), TE4(B); CPYBTL B, RK(19), 0, 8; CPYBLA L0(4:1), TE4(B); XOR RK(20), L0 , RK(16); XOR RK(21), RK(20), RK(17); XOR RK(22), RK(21), RK(18); XOR RK(23), RK(22), RK(19); CPYBTL B, RK(23), 8, 8; XOR L0(1:1), TE4(B), X'20'; CPYBTL B, RK(23), 16, 8; CPYBLA L0(2:1), TE4(B); CPYBTL B, RK(23), 24, 8; CPYBLA L0(3:1), TE4(B); CPYBTL B, RK(23), 0, 8; CPYBLA L0(4:1), TE4(B); XOR RK(24), L0 , RK(20); XOR RK(25), RK(24), RK(21); XOR RK(26), RK(25), RK(22); XOR RK(27), RK(26), RK(23); CPYBTL B, RK(27), 8, 8; XOR L0(1:1), TE4(B), X'40'; CPYBTL B, RK(27), 16, 8; CPYBLA L0(2:1), TE4(B); CPYBTL B, RK(27), 24, 8; CPYBLA L0(3:1), TE4(B); CPYBTL B, RK(27), 0, 8; CPYBLA L0(4:1), TE4(B); XOR RK(28), L0 , RK(24); XOR RK(29), RK(28), RK(25); XOR RK(30), RK(29), RK(26); XOR RK(31), RK(30), RK(27); CPYBTL B, RK(31), 8, 8; XOR L0(1:1), TE4(B), X'80'; CPYBTL B, RK(31), 16, 8; CPYBLA L0(2:1), TE4(B); CPYBTL B, RK(31), 24, 8; CPYBLA L0(3:1), TE4(B); CPYBTL B, RK(31), 0, 8; CPYBLA L0(4:1), TE4(B); XOR RK(32), L0 , RK(28); XOR RK(33), RK(32), RK(29); XOR RK(34), RK(33), RK(30); XOR RK(35), RK(34), RK(31); CPYBTL B, RK(35), 8, 8; XOR L0(1:1), TE4(B), X'1B'; CPYBTL B, RK(35), 16, 8; CPYBLA L0(2:1), TE4(B); CPYBTL B, RK(35), 24, 8; CPYBLA L0(3:1), TE4(B); CPYBTL B, RK(35), 0, 8; CPYBLA L0(4:1), TE4(B); XOR RK(36), L0 , RK(32); XOR RK(37), RK(36), RK(33); XOR RK(38), RK(37), RK(34); XOR RK(39), RK(38), RK(35); CPYBTL B, RK(39), 8, 8; XOR L0(1:1), TE4(B), X'36'; CPYBTL B, RK(39), 16, 8; CPYBLA L0(2:1), TE4(B); CPYBTL B, RK(39), 24, 8; CPYBLA L0(3:1), TE4(B); CPYBTL B, RK(39), 0, 8; CPYBLA L0(4:1), TE4(B); XOR RK(40), L0 , RK(36); XOR RK(41), RK(40), RK(37); XOR RK(42), RK(41), RK(38); XOR RK(43), RK(42), RK(39); CMPBLA(B) OPERATION(1:1), "D"/EQ(INVERSION-FOR-DECRYPT); DONE: RTX *; INVERSION-FOR-DECRYPT: EXCHBY SCHEDULE(001:16), SCHEDULE(161:16); EXCHBY SCHEDULE(017:16), SCHEDULE(145:16); EXCHBY SCHEDULE(033:16), SCHEDULE(129:16); EXCHBY SCHEDULE(049:16), SCHEDULE(113:16); EXCHBY SCHEDULE(065:16), SCHEDULE(097:16); CPYNV RN, 4; /* SKIP FIRST (AND LAST) ROUND-KEY */ INVERT-MIX-COLS: CPYBLA R, RK(RN); CPYBTL B, R, 0,8; CPYBLA CB, TE4(B); CPYBLA RK(RN), TD0(B); CPYBTL B, R, 8,8; CPYBLA CB, TE4(B); XOR(S) RK(RN), TD1(B); CPYBTL B, R,16,8; CPYBLA CB, TE4(B); XOR(S) RK(RN), TD2(B); CPYBTL B, R,24,8; CPYBLA CB, TE4(B); XOR(S) RK(RN), TD3(B); ADDN(S) RN, 1; CMPNV(B) RN, 40/LO(INVERT-MIX-COLS), NLO(DONE); DCL DD TE4(0:255) CHAR(1) BDRY(8); DCL DD *(16) CHAR(16) DEF(TE4) POS(1) INIT( X'637C777BF26B6FC53001672BFED7AB76', X'CA82C97DFA5947F0ADD4A2AF9CA472C0', X'B7FD9326363FF7CC34A5E5F171D83115', X'04C723C31896059A071280E2EB27B275', X'09832C1A1B6E5AA0523BD6B329E32F84', X'53D100ED20FCB15B6ACBBE394A4C58CF', X'D0EFAAFB434D338545F9027F503C9FA8', X'51A3408F929D38F5BCB6DA2110FFF3D2', X'CD0C13EC5F974417C4A77E3D645D1973', X'60814FDC222A908846EEB814DE5E0BDB', X'E0323A0A4906245CC2D3AC629195E479', X'E7C8376D8DD54EA96C56F4EA657AAE08', X'BA78252E1CA6B4C6E8DD741F4BBD8B8A', X'703EB5664803F60E613557B986C11D9E', X'E1F8981169D98E949B1E87E9CE5528DF', X'8CA1890DBFE6426841992D0FB054BB16'); DCL DD TD4(0:255) CHAR(1) BDRY(8); DCL DD *(16) CHAR(16) DEF(TD4) POS(1) INIT( X'52096AD53036A538BF40A39E81F3D7FB', X'7CE339829B2FFF87348E4344C4DEE9CB', X'547B9432A6C2233DEE4C950B42FAC34E', X'082EA16628D924B2765BA2496D8BD125', X'72F8F66486689816D4A45CCC5D65B692', X'6C704850FDEDB9DA5E154657A78D9D84', X'90D8AB008CBCD30AF7E45805B8B34506', X'D02C1E8FCA3F0F02C1AFBD0301138A6B', X'3A9111414F67DCEA97F2CFCEF0B4E673', X'96AC7422E7AD3585E2F937E81C75DF6E', X'47F11A711D29C5896FB7620EAA18BE1B', X'FC563E4BC6D279209ADBC0FE78CD5AF4', X'1FDDA8338807C731B11210592780EC5F', X'60517FA919B54A0D2DE57A9F93C99CEF', X'A0E03B4DAE2AF5B0C8EBBB3C83539961', X'172B047EBA77D626E169146355210C7D'); ENCRYPT: ROUND-E0: XOR S0, PT(01:4), RK(0); XOR S1, PT(05:4), RK(1); XOR S2, PT(09:4), RK(2); XOR S3, PT(13:4), RK(3); ROUND-E1: CPYBTL B, S0, 0, 8; XOR T0, TE0(B), RK( 4); CPYBTL B, S1, 8, 8; XOR(S) T0, TE1(B); CPYBTL B, S2, 16, 8; XOR(S) T0, TE2(B); CPYBTL B, S3, 24, 8; XOR(S) T0, TE3(B); CPYBTL B, S1, 0, 8; XOR T1, TE0(B), RK( 5); CPYBTL B, S2, 8, 8; XOR(S) T1, TE1(B); CPYBTL B, S3, 16, 8; XOR(S) T1, TE2(B); CPYBTL B, S0, 24, 8; XOR(S) T1, TE3(B); CPYBTL B, S2, 0, 8; XOR T2, TE0(B), RK( 6); CPYBTL B, S3, 8, 8; XOR(S) T2, TE1(B); CPYBTL B, S0, 16, 8; XOR(S) T2, TE2(B); CPYBTL B, S1, 24, 8; XOR(S) T2, TE3(B); CPYBTL B, S3, 0, 8; XOR T3, TE0(B), RK( 7); CPYBTL B, S0, 8, 8; XOR(S) T3, TE1(B); CPYBTL B, S1, 16, 8; XOR(S) T3, TE2(B); CPYBTL B, S2, 24, 8; XOR(S) T3, TE3(B); ROUND-E2: CPYBTL B, T0, 0, 8; XOR S0, TE0(B), RK( 8); CPYBTL B, T1, 8, 8; XOR(S) S0, TE1(B); CPYBTL B, T2, 16, 8; XOR(S) S0, TE2(B); CPYBTL B, T3, 24, 8; XOR(S) S0, TE3(B); CPYBTL B, T1, 0, 8; XOR S1, TE0(B), RK(09); CPYBTL B, T2, 8, 8; XOR(S) S1, TE1(B); CPYBTL B, T3, 16, 8; XOR(S) S1, TE2(B); CPYBTL B, T0, 24, 8; XOR(S) S1, TE3(B); CPYBTL B, T2, 0, 8; XOR S2, TE0(B), RK(10); CPYBTL B, T3, 8, 8; XOR(S) S2, TE1(B); CPYBTL B, T0, 16, 8; XOR(S) S2, TE2(B); CPYBTL B, T1, 24, 8; XOR(S) S2, TE3(B); CPYBTL B, T3, 0, 8; XOR S3, TE0(B), RK(11); CPYBTL B, T0, 8, 8; XOR(S) S3, TE1(B); CPYBTL B, T1, 16, 8; XOR(S) S3, TE2(B); CPYBTL B, T2, 24, 8; XOR(S) S3, TE3(B); ROUND-E3: CPYBTL B, S0, 0, 8; XOR T0, TE0(B), RK(12); CPYBTL B, S1, 8, 8; XOR(S) T0, TE1(B); CPYBTL B, S2, 16, 8; XOR(S) T0, TE2(B); CPYBTL B, S3, 24, 8; XOR(S) T0, TE3(B); CPYBTL B, S1, 0, 8; XOR T1, TE0(B), RK(13); CPYBTL B, S2, 8, 8; XOR(S) T1, TE1(B); CPYBTL B, S3, 16, 8; XOR(S) T1, TE2(B); CPYBTL B, S0, 24, 8; XOR(S) T1, TE3(B); CPYBTL B, S2, 0, 8; XOR T2, TE0(B), RK(14); CPYBTL B, S3, 8, 8; XOR(S) T2, TE1(B); CPYBTL B, S0, 16, 8; XOR(S) T2, TE2(B); CPYBTL B, S1, 24, 8; XOR(S) T2, TE3(B); CPYBTL B, S3, 0, 8; XOR T3, TE0(B), RK(15); CPYBTL B, S0, 8, 8; XOR(S) T3, TE1(B); CPYBTL B, S1, 16, 8; XOR(S) T3, TE2(B); CPYBTL B, S2, 24, 8; XOR(S) T3, TE3(B); ROUND-E4: CPYBTL B, T0, 0, 8; XOR S0, TE0(B), RK(16); CPYBTL B, T1, 8, 8; XOR(S) S0, TE1(B); CPYBTL B, T2, 16, 8; XOR(S) S0, TE2(B); CPYBTL B, T3, 24, 8; XOR(S) S0, TE3(B); CPYBTL B, T1, 0, 8; XOR S1, TE0(B), RK(17); CPYBTL B, T2, 8, 8; XOR(S) S1, TE1(B); CPYBTL B, T3, 16, 8; XOR(S) S1, TE2(B); CPYBTL B, T0, 24, 8; XOR(S) S1, TE3(B); CPYBTL B, T2, 0, 8; XOR S2, TE0(B), RK(18); CPYBTL B, T3, 8, 8; XOR(S) S2, TE1(B); CPYBTL B, T0, 16, 8; XOR(S) S2, TE2(B); CPYBTL B, T1, 24, 8; XOR(S) S2, TE3(B); CPYBTL B, T3, 0, 8; XOR S3, TE0(B), RK(19); CPYBTL B, T0, 8, 8; XOR(S) S3, TE1(B); CPYBTL B, T1, 16, 8; XOR(S) S3, TE2(B); CPYBTL B, T2, 24, 8; XOR(S) S3, TE3(B); ROUND-E5: CPYBTL B, S0, 0, 8; XOR T0, TE0(B), RK(20); CPYBTL B, S1, 8, 8; XOR(S) T0, TE1(B); CPYBTL B, S2, 16, 8; XOR(S) T0, TE2(B); CPYBTL B, S3, 24, 8; XOR(S) T0, TE3(B); CPYBTL B, S1, 0, 8; XOR T1, TE0(B), RK(21); CPYBTL B, S2, 8, 8; XOR(S) T1, TE1(B); CPYBTL B, S3, 16, 8; XOR(S) T1, TE2(B); CPYBTL B, S0, 24, 8; XOR(S) T1, TE3(B); CPYBTL B, S2, 0, 8; XOR T2, TE0(B), RK(22); CPYBTL B, S3, 8, 8; XOR(S) T2, TE1(B); CPYBTL B, S0, 16, 8; XOR(S) T2, TE2(B); CPYBTL B, S1, 24, 8; XOR(S) T2, TE3(B); CPYBTL B, S3, 0, 8; XOR T3, TE0(B), RK(23); CPYBTL B, S0, 8, 8; XOR(S) T3, TE1(B); CPYBTL B, S1, 16, 8; XOR(S) T3, TE2(B); CPYBTL B, S2, 24, 8; XOR(S) T3, TE3(B); ROUND-E6: CPYBTL B, T0, 0, 8; XOR S0, TE0(B), RK(24); CPYBTL B, T1, 8, 8; XOR(S) S0, TE1(B); CPYBTL B, T2, 16, 8; XOR(S) S0, TE2(B); CPYBTL B, T3, 24, 8; XOR(S) S0, TE3(B); CPYBTL B, T1, 0, 8; XOR S1, TE0(B), RK(25); CPYBTL B, T2, 8, 8; XOR(S) S1, TE1(B); CPYBTL B, T3, 16, 8; XOR(S) S1, TE2(B); CPYBTL B, T0, 24, 8; XOR(S) S1, TE3(B); CPYBTL B, T2, 0, 8; XOR S2, TE0(B), RK(26); CPYBTL B, T3, 8, 8; XOR(S) S2, TE1(B); CPYBTL B, T0, 16, 8; XOR(S) S2, TE2(B); CPYBTL B, T1, 24, 8; XOR(S) S2, TE3(B); CPYBTL B, T3, 0, 8; XOR S3, TE0(B), RK(27); CPYBTL B, T0, 8, 8; XOR(S) S3, TE1(B); CPYBTL B, T1, 16, 8; XOR(S) S3, TE2(B); CPYBTL B, T2, 24, 8; XOR(S) S3, TE3(B); ROUND-E7: CPYBTL B, S0, 0, 8; XOR T0, TE0(B), RK(28); CPYBTL B, S1, 8, 8; XOR(S) T0, TE1(B); CPYBTL B, S2, 16, 8; XOR(S) T0, TE2(B); CPYBTL B, S3, 24, 8; XOR(S) T0, TE3(B); CPYBTL B, S1, 0, 8; XOR T1, TE0(B), RK(29); CPYBTL B, S2, 8, 8; XOR(S) T1, TE1(B); CPYBTL B, S3, 16, 8; XOR(S) T1, TE2(B); CPYBTL B, S0, 24, 8; XOR(S) T1, TE3(B); CPYBTL B, S2, 0, 8; XOR T2, TE0(B), RK(30); CPYBTL B, S3, 8, 8; XOR(S) T2, TE1(B); CPYBTL B, S0, 16, 8; XOR(S) T2, TE2(B); CPYBTL B, S1, 24, 8; XOR(S) T2, TE3(B); CPYBTL B, S3, 0, 8; XOR T3, TE0(B), RK(31); CPYBTL B, S0, 8, 8; XOR(S) T3, TE1(B); CPYBTL B, S1, 16, 8; XOR(S) T3, TE2(B); CPYBTL B, S2, 24, 8; XOR(S) T3, TE3(B); ROUND-E8: CPYBTL B, T0, 0, 8; XOR S0, TE0(B), RK(32); CPYBTL B, T1, 8, 8; XOR(S) S0, TE1(B); CPYBTL B, T2, 16, 8; XOR(S) S0, TE2(B); CPYBTL B, T3, 24, 8; XOR(S) S0, TE3(B); CPYBTL B, T1, 0, 8; XOR S1, TE0(B), RK(33); CPYBTL B, T2, 8, 8; XOR(S) S1, TE1(B); CPYBTL B, T3, 16, 8; XOR(S) S1, TE2(B); CPYBTL B, T0, 24, 8; XOR(S) S1, TE3(B); CPYBTL B, T2, 0, 8; XOR S2, TE0(B), RK(34); CPYBTL B, T3, 8, 8; XOR(S) S2, TE1(B); CPYBTL B, T0, 16, 8; XOR(S) S2, TE2(B); CPYBTL B, T1, 24, 8; XOR(S) S2, TE3(B); CPYBTL B, T3, 0, 8; XOR S3, TE0(B), RK(35); CPYBTL B, T0, 8, 8; XOR(S) S3, TE1(B); CPYBTL B, T1, 16, 8; XOR(S) S3, TE2(B); CPYBTL B, T2, 24, 8; XOR(S) S3, TE3(B); ROUND-E9: CPYBTL B, S0, 0, 8; XOR T0, TE0(B), RK(36); CPYBTL B, S1, 8, 8; XOR(S) T0, TE1(B); CPYBTL B, S2, 16, 8; XOR(S) T0, TE2(B); CPYBTL B, S3, 24, 8; XOR(S) T0, TE3(B); CPYBTL B, S1, 0, 8; XOR T1, TE0(B), RK(37); CPYBTL B, S2, 8, 8; XOR(S) T1, TE1(B); CPYBTL B, S3, 16, 8; XOR(S) T1, TE2(B); CPYBTL B, S0, 24, 8; XOR(S) T1, TE3(B); CPYBTL B, S2, 0, 8; XOR T2, TE0(B), RK(38); CPYBTL B, S3, 8, 8; XOR(S) T2, TE1(B); CPYBTL B, S0, 16, 8; XOR(S) T2, TE2(B); CPYBTL B, S1, 24, 8; XOR(S) T2, TE3(B); CPYBTL B, S3, 0, 8; XOR T3, TE0(B), RK(39); CPYBTL B, S0, 8, 8; XOR(S) T3, TE1(B); CPYBTL B, S1, 16, 8; XOR(S) T3, TE2(B); CPYBTL B, S2, 24, 8; XOR(S) T3, TE3(B); ROUND-E10: CPYBTL B, T0, 0, 8; CPYBLA L0(1:1), TE4(B); CPYBTL B, T1, 8, 8; CPYBLA L0(2:1), TE4(B); CPYBTL B, T2, 16, 8; CPYBLA L0(3:1), TE4(B); CPYBTL B, T3, 24, 8; CPYBLA L0(4:1), TE4(B); CPYBTL B, T1, 0, 8; CPYBLA L1(1:1), TE4(B); CPYBTL B, T2, 8, 8; CPYBLA L1(2:1), TE4(B); CPYBTL B, T3, 16, 8; CPYBLA L1(3:1), TE4(B); CPYBTL B, T0, 24, 8; CPYBLA L1(4:1), TE4(B); CPYBTL B, T2, 0, 8; CPYBLA L2(1:1), TE4(B); CPYBTL B, T3, 8, 8; CPYBLA L2(2:1), TE4(B); CPYBTL B, T0, 16, 8; CPYBLA L2(3:1), TE4(B); CPYBTL B, T1, 24, 8; CPYBLA L2(4:1), TE4(B); CPYBTL B, T3, 0, 8; CPYBLA L3(1:1), TE4(B); CPYBTL B, T0, 8, 8; CPYBLA L3(2:1), TE4(B); CPYBTL B, T1, 16, 8; CPYBLA L3(3:1), TE4(B); CPYBTL B, T2, 24, 8; CPYBLA L3(4:1), TE4(B); XOR CT(01:4), L0, RK(40); XOR CT(05:4), L1, RK(41); XOR CT(09:4), L2, RK(42); XOR CT(13:4), L3, RK(43); B DONE; DCL DD TE0(0:255) CHAR(4) BDRY(8) INIT( X'C66363A5', X'F87C7C84', X'EE777799', X'F67B7B8D', X'FFF2F20D', X'D66B6BBD', X'DE6F6FB1', X'91C5C554', X'60303050', X'02010103', X'CE6767A9', X'562B2B7D', X'E7FEFE19', X'B5D7D762', X'4DABABE6', X'EC76769A', X'8FCACA45', X'1F82829D', X'89C9C940', X'FA7D7D87', X'EFFAFA15', X'B25959EB', X'8E4747C9', X'FBF0F00B', X'41ADADEC', X'B3D4D467', X'5FA2A2FD', X'45AFAFEA', X'239C9CBF', X'53A4A4F7', X'E4727296', X'9BC0C05B', X'75B7B7C2', X'E1FDFD1C', X'3D9393AE', X'4C26266A', X'6C36365A', X'7E3F3F41', X'F5F7F702', X'83CCCC4F', X'6834345C', X'51A5A5F4', X'D1E5E534', X'F9F1F108', X'E2717193', X'ABD8D873', X'62313153', X'2A15153F', X'0804040C', X'95C7C752', X'46232365', X'9DC3C35E', X'30181828', X'379696A1', X'0A05050F', X'2F9A9AB5', X'0E070709', X'24121236', X'1B80809B', X'DFE2E23D', X'CDEBEB26', X'4E272769', X'7FB2B2CD', X'EA75759F', X'1209091B', X'1D83839E', X'582C2C74', X'341A1A2E', X'361B1B2D', X'DC6E6EB2', X'B45A5AEE', X'5BA0A0FB', X'A45252F6', X'763B3B4D', X'B7D6D661', X'7DB3B3CE', X'5229297B', X'DDE3E33E', X'5E2F2F71', X'13848497', X'A65353F5', X'B9D1D168', X'00000000', X'C1EDED2C', X'40202060', X'E3FCFC1F', X'79B1B1C8', X'B65B5BED', X'D46A6ABE', X'8DCBCB46', X'67BEBED9', X'7239394B', X'944A4ADE', X'984C4CD4', X'B05858E8', X'85CFCF4A', X'BBD0D06B', X'C5EFEF2A', X'4FAAAAE5', X'EDFBFB16', X'864343C5', X'9A4D4DD7', X'66333355', X'11858594', X'8A4545CF', X'E9F9F910', X'04020206', X'FE7F7F81', X'A05050F0', X'783C3C44', X'259F9FBA', X'4BA8A8E3', X'A25151F3', X'5DA3A3FE', X'804040C0', X'058F8F8A', X'3F9292AD', X'219D9DBC', X'70383848', X'F1F5F504', X'63BCBCDF', X'77B6B6C1', X'AFDADA75', X'42212163', X'20101030', X'E5FFFF1A', X'FDF3F30E', X'BFD2D26D', X'81CDCD4C', X'180C0C14', X'26131335', X'C3ECEC2F', X'BE5F5FE1', X'359797A2', X'884444CC', X'2E171739', X'93C4C457', X'55A7A7F2', X'FC7E7E82', X'7A3D3D47', X'C86464AC', X'BA5D5DE7', X'3219192B', X'E6737395', X'C06060A0', X'19818198', X'9E4F4FD1', X'A3DCDC7F', X'44222266', X'542A2A7E', X'3B9090AB', X'0B888883', X'8C4646CA', X'C7EEEE29', X'6BB8B8D3', X'2814143C', X'A7DEDE79', X'BC5E5EE2', X'160B0B1D', X'ADDBDB76', X'DBE0E03B', X'64323256', X'743A3A4E', X'140A0A1E', X'924949DB', X'0C06060A', X'4824246C', X'B85C5CE4', X'9FC2C25D', X'BDD3D36E', X'43ACACEF', X'C46262A6', X'399191A8', X'319595A4', X'D3E4E437', X'F279798B', X'D5E7E732', X'8BC8C843', X'6E373759', X'DA6D6DB7', X'018D8D8C', X'B1D5D564', X'9C4E4ED2', X'49A9A9E0', X'D86C6CB4', X'AC5656FA', X'F3F4F407', X'CFEAEA25', X'CA6565AF', X'F47A7A8E', X'47AEAEE9', X'10080818', X'6FBABAD5', X'F0787888', X'4A25256F', X'5C2E2E72', X'381C1C24', X'57A6A6F1', X'73B4B4C7', X'97C6C651', X'CBE8E823', X'A1DDDD7C', X'E874749C', X'3E1F1F21', X'964B4BDD', X'61BDBDDC', X'0D8B8B86', X'0F8A8A85', X'E0707090', X'7C3E3E42', X'71B5B5C4', X'CC6666AA', X'904848D8', X'06030305', X'F7F6F601', X'1C0E0E12', X'C26161A3', X'6A35355F', X'AE5757F9', X'69B9B9D0', X'17868691', X'99C1C158', X'3A1D1D27', X'279E9EB9', X'D9E1E138', X'EBF8F813', X'2B9898B3', X'22111133', X'D26969BB', X'A9D9D970', X'078E8E89', X'339494A7', X'2D9B9BB6', X'3C1E1E22', X'15878792', X'C9E9E920', X'87CECE49', X'AA5555FF', X'50282878', X'A5DFDF7A', X'038C8C8F', X'59A1A1F8', X'09898980', X'1A0D0D17', X'65BFBFDA', X'D7E6E631', X'844242C6', X'D06868B8', X'824141C3', X'299999B0', X'5A2D2D77', X'1E0F0F11', X'7BB0B0CB', X'A85454FC', X'6DBBBBD6', X'2C16163A'); DCL DD TE1(0:255) CHAR(4) BDRY(8) INIT( X'A5C66363', X'84F87C7C', X'99EE7777', X'8DF67B7B', X'0DFFF2F2', X'BDD66B6B', X'B1DE6F6F', X'5491C5C5', X'50603030', X'03020101', X'A9CE6767', X'7D562B2B', X'19E7FEFE', X'62B5D7D7', X'E64DABAB', X'9AEC7676', X'458FCACA', X'9D1F8282', X'4089C9C9', X'87FA7D7D', X'15EFFAFA', X'EBB25959', X'C98E4747', X'0BFBF0F0', X'EC41ADAD', X'67B3D4D4', X'FD5FA2A2', X'EA45AFAF', X'BF239C9C', X'F753A4A4', X'96E47272', X'5B9BC0C0', X'C275B7B7', X'1CE1FDFD', X'AE3D9393', X'6A4C2626', X'5A6C3636', X'417E3F3F', X'02F5F7F7', X'4F83CCCC', X'5C683434', X'F451A5A5', X'34D1E5E5', X'08F9F1F1', X'93E27171', X'73ABD8D8', X'53623131', X'3F2A1515', X'0C080404', X'5295C7C7', X'65462323', X'5E9DC3C3', X'28301818', X'A1379696', X'0F0A0505', X'B52F9A9A', X'090E0707', X'36241212', X'9B1B8080', X'3DDFE2E2', X'26CDEBEB', X'694E2727', X'CD7FB2B2', X'9FEA7575', X'1B120909', X'9E1D8383', X'74582C2C', X'2E341A1A', X'2D361B1B', X'B2DC6E6E', X'EEB45A5A', X'FB5BA0A0', X'F6A45252', X'4D763B3B', X'61B7D6D6', X'CE7DB3B3', X'7B522929', X'3EDDE3E3', X'715E2F2F', X'97138484', X'F5A65353', X'68B9D1D1', X'00000000', X'2CC1EDED', X'60402020', X'1FE3FCFC', X'C879B1B1', X'EDB65B5B', X'BED46A6A', X'468DCBCB', X'D967BEBE', X'4B723939', X'DE944A4A', X'D4984C4C', X'E8B05858', X'4A85CFCF', X'6BBBD0D0', X'2AC5EFEF', X'E54FAAAA', X'16EDFBFB', X'C5864343', X'D79A4D4D', X'55663333', X'94118585', X'CF8A4545', X'10E9F9F9', X'06040202', X'81FE7F7F', X'F0A05050', X'44783C3C', X'BA259F9F', X'E34BA8A8', X'F3A25151', X'FE5DA3A3', X'C0804040', X'8A058F8F', X'AD3F9292', X'BC219D9D', X'48703838', X'04F1F5F5', X'DF63BCBC', X'C177B6B6', X'75AFDADA', X'63422121', X'30201010', X'1AE5FFFF', X'0EFDF3F3', X'6DBFD2D2', X'4C81CDCD', X'14180C0C', X'35261313', X'2FC3ECEC', X'E1BE5F5F', X'A2359797', X'CC884444', X'392E1717', X'5793C4C4', X'F255A7A7', X'82FC7E7E', X'477A3D3D', X'ACC86464', X'E7BA5D5D', X'2B321919', X'95E67373', X'A0C06060', X'98198181', X'D19E4F4F', X'7FA3DCDC', X'66442222', X'7E542A2A', X'AB3B9090', X'830B8888', X'CA8C4646', X'29C7EEEE', X'D36BB8B8', X'3C281414', X'79A7DEDE', X'E2BC5E5E', X'1D160B0B', X'76ADDBDB', X'3BDBE0E0', X'56643232', X'4E743A3A', X'1E140A0A', X'DB924949', X'0A0C0606', X'6C482424', X'E4B85C5C', X'5D9FC2C2', X'6EBDD3D3', X'EF43ACAC', X'A6C46262', X'A8399191', X'A4319595', X'37D3E4E4', X'8BF27979', X'32D5E7E7', X'438BC8C8', X'596E3737', X'B7DA6D6D', X'8C018D8D', X'64B1D5D5', X'D29C4E4E', X'E049A9A9', X'B4D86C6C', X'FAAC5656', X'07F3F4F4', X'25CFEAEA', X'AFCA6565', X'8EF47A7A', X'E947AEAE', X'18100808', X'D56FBABA', X'88F07878', X'6F4A2525', X'725C2E2E', X'24381C1C', X'F157A6A6', X'C773B4B4', X'5197C6C6', X'23CBE8E8', X'7CA1DDDD', X'9CE87474', X'213E1F1F', X'DD964B4B', X'DC61BDBD', X'860D8B8B', X'850F8A8A', X'90E07070', X'427C3E3E', X'C471B5B5', X'AACC6666', X'D8904848', X'05060303', X'01F7F6F6', X'121C0E0E', X'A3C26161', X'5F6A3535', X'F9AE5757', X'D069B9B9', X'91178686', X'5899C1C1', X'273A1D1D', X'B9279E9E', X'38D9E1E1', X'13EBF8F8', X'B32B9898', X'33221111', X'BBD26969', X'70A9D9D9', X'89078E8E', X'A7339494', X'B62D9B9B', X'223C1E1E', X'92158787', X'20C9E9E9', X'4987CECE', X'FFAA5555', X'78502828', X'7AA5DFDF', X'8F038C8C', X'F859A1A1', X'80098989', X'171A0D0D', X'DA65BFBF', X'31D7E6E6', X'C6844242', X'B8D06868', X'C3824141', X'B0299999', X'775A2D2D', X'111E0F0F', X'CB7BB0B0', X'FCA85454', X'D66DBBBB', X'3A2C1616'); DCL DD TE2(0:255) CHAR(4) BDRY(8) INIT( X'63A5C663', X'7C84F87C', X'7799EE77', X'7B8DF67B', X'F20DFFF2', X'6BBDD66B', X'6FB1DE6F', X'C55491C5', X'30506030', X'01030201', X'67A9CE67', X'2B7D562B', X'FE19E7FE', X'D762B5D7', X'ABE64DAB', X'769AEC76', X'CA458FCA', X'829D1F82', X'C94089C9', X'7D87FA7D', X'FA15EFFA', X'59EBB259', X'47C98E47', X'F00BFBF0', X'ADEC41AD', X'D467B3D4', X'A2FD5FA2', X'AFEA45AF', X'9CBF239C', X'A4F753A4', X'7296E472', X'C05B9BC0', X'B7C275B7', X'FD1CE1FD', X'93AE3D93', X'266A4C26', X'365A6C36', X'3F417E3F', X'F702F5F7', X'CC4F83CC', X'345C6834', X'A5F451A5', X'E534D1E5', X'F108F9F1', X'7193E271', X'D873ABD8', X'31536231', X'153F2A15', X'040C0804', X'C75295C7', X'23654623', X'C35E9DC3', X'18283018', X'96A13796', X'050F0A05', X'9AB52F9A', X'07090E07', X'12362412', X'809B1B80', X'E23DDFE2', X'EB26CDEB', X'27694E27', X'B2CD7FB2', X'759FEA75', X'091B1209', X'839E1D83', X'2C74582C', X'1A2E341A', X'1B2D361B', X'6EB2DC6E', X'5AEEB45A', X'A0FB5BA0', X'52F6A452', X'3B4D763B', X'D661B7D6', X'B3CE7DB3', X'297B5229', X'E33EDDE3', X'2F715E2F', X'84971384', X'53F5A653', X'D168B9D1', X'00000000', X'ED2CC1ED', X'20604020', X'FC1FE3FC', X'B1C879B1', X'5BEDB65B', X'6ABED46A', X'CB468DCB', X'BED967BE', X'394B7239', X'4ADE944A', X'4CD4984C', X'58E8B058', X'CF4A85CF', X'D06BBBD0', X'EF2AC5EF', X'AAE54FAA', X'FB16EDFB', X'43C58643', X'4DD79A4D', X'33556633', X'85941185', X'45CF8A45', X'F910E9F9', X'02060402', X'7F81FE7F', X'50F0A050', X'3C44783C', X'9FBA259F', X'A8E34BA8', X'51F3A251', X'A3FE5DA3', X'40C08040', X'8F8A058F', X'92AD3F92', X'9DBC219D', X'38487038', X'F504F1F5', X'BCDF63BC', X'B6C177B6', X'DA75AFDA', X'21634221', X'10302010', X'FF1AE5FF', X'F30EFDF3', X'D26DBFD2', X'CD4C81CD', X'0C14180C', X'13352613', X'EC2FC3EC', X'5FE1BE5F', X'97A23597', X'44CC8844', X'17392E17', X'C45793C4', X'A7F255A7', X'7E82FC7E', X'3D477A3D', X'64ACC864', X'5DE7BA5D', X'192B3219', X'7395E673', X'60A0C060', X'81981981', X'4FD19E4F', X'DC7FA3DC', X'22664422', X'2A7E542A', X'90AB3B90', X'88830B88', X'46CA8C46', X'EE29C7EE', X'B8D36BB8', X'143C2814', X'DE79A7DE', X'5EE2BC5E', X'0B1D160B', X'DB76ADDB', X'E03BDBE0', X'32566432', X'3A4E743A', X'0A1E140A', X'49DB9249', X'060A0C06', X'246C4824', X'5CE4B85C', X'C25D9FC2', X'D36EBDD3', X'ACEF43AC', X'62A6C462', X'91A83991', X'95A43195', X'E437D3E4', X'798BF279', X'E732D5E7', X'C8438BC8', X'37596E37', X'6DB7DA6D', X'8D8C018D', X'D564B1D5', X'4ED29C4E', X'A9E049A9', X'6CB4D86C', X'56FAAC56', X'F407F3F4', X'EA25CFEA', X'65AFCA65', X'7A8EF47A', X'AEE947AE', X'08181008', X'BAD56FBA', X'7888F078', X'256F4A25', X'2E725C2E', X'1C24381C', X'A6F157A6', X'B4C773B4', X'C65197C6', X'E823CBE8', X'DD7CA1DD', X'749CE874', X'1F213E1F', X'4BDD964B', X'BDDC61BD', X'8B860D8B', X'8A850F8A', X'7090E070', X'3E427C3E', X'B5C471B5', X'66AACC66', X'48D89048', X'03050603', X'F601F7F6', X'0E121C0E', X'61A3C261', X'355F6A35', X'57F9AE57', X'B9D069B9', X'86911786', X'C15899C1', X'1D273A1D', X'9EB9279E', X'E138D9E1', X'F813EBF8', X'98B32B98', X'11332211', X'69BBD269', X'D970A9D9', X'8E89078E', X'94A73394', X'9BB62D9B', X'1E223C1E', X'87921587', X'E920C9E9', X'CE4987CE', X'55FFAA55', X'28785028', X'DF7AA5DF', X'8C8F038C', X'A1F859A1', X'89800989', X'0D171A0D', X'BFDA65BF', X'E631D7E6', X'42C68442', X'68B8D068', X'41C38241', X'99B02999', X'2D775A2D', X'0F111E0F', X'B0CB7BB0', X'54FCA854', X'BBD66DBB', X'163A2C16'); DCL DD TE3(0:255) CHAR(4) BDRY(8) INIT( X'6363A5C6', X'7C7C84F8', X'777799EE', X'7B7B8DF6', X'F2F20DFF', X'6B6BBDD6', X'6F6FB1DE', X'C5C55491', X'30305060', X'01010302', X'6767A9CE', X'2B2B7D56', X'FEFE19E7', X'D7D762B5', X'ABABE64D', X'76769AEC', X'CACA458F', X'82829D1F', X'C9C94089', X'7D7D87FA', X'FAFA15EF', X'5959EBB2', X'4747C98E', X'F0F00BFB', X'ADADEC41', X'D4D467B3', X'A2A2FD5F', X'AFAFEA45', X'9C9CBF23', X'A4A4F753', X'727296E4', X'C0C05B9B', X'B7B7C275', X'FDFD1CE1', X'9393AE3D', X'26266A4C', X'36365A6C', X'3F3F417E', X'F7F702F5', X'CCCC4F83', X'34345C68', X'A5A5F451', X'E5E534D1', X'F1F108F9', X'717193E2', X'D8D873AB', X'31315362', X'15153F2A', X'04040C08', X'C7C75295', X'23236546', X'C3C35E9D', X'18182830', X'9696A137', X'05050F0A', X'9A9AB52F', X'0707090E', X'12123624', X'80809B1B', X'E2E23DDF', X'EBEB26CD', X'2727694E', X'B2B2CD7F', X'75759FEA', X'09091B12', X'83839E1D', X'2C2C7458', X'1A1A2E34', X'1B1B2D36', X'6E6EB2DC', X'5A5AEEB4', X'A0A0FB5B', X'5252F6A4', X'3B3B4D76', X'D6D661B7', X'B3B3CE7D', X'29297B52', X'E3E33EDD', X'2F2F715E', X'84849713', X'5353F5A6', X'D1D168B9', X'00000000', X'EDED2CC1', X'20206040', X'FCFC1FE3', X'B1B1C879', X'5B5BEDB6', X'6A6ABED4', X'CBCB468D', X'BEBED967', X'39394B72', X'4A4ADE94', X'4C4CD498', X'5858E8B0', X'CFCF4A85', X'D0D06BBB', X'EFEF2AC5', X'AAAAE54F', X'FBFB16ED', X'4343C586', X'4D4DD79A', X'33335566', X'85859411', X'4545CF8A', X'F9F910E9', X'02020604', X'7F7F81FE', X'5050F0A0', X'3C3C4478', X'9F9FBA25', X'A8A8E34B', X'5151F3A2', X'A3A3FE5D', X'4040C080', X'8F8F8A05', X'9292AD3F', X'9D9DBC21', X'38384870', X'F5F504F1', X'BCBCDF63', X'B6B6C177', X'DADA75AF', X'21216342', X'10103020', X'FFFF1AE5', X'F3F30EFD', X'D2D26DBF', X'CDCD4C81', X'0C0C1418', X'13133526', X'ECEC2FC3', X'5F5FE1BE', X'9797A235', X'4444CC88', X'1717392E', X'C4C45793', X'A7A7F255', X'7E7E82FC', X'3D3D477A', X'6464ACC8', X'5D5DE7BA', X'19192B32', X'737395E6', X'6060A0C0', X'81819819', X'4F4FD19E', X'DCDC7FA3', X'22226644', X'2A2A7E54', X'9090AB3B', X'8888830B', X'4646CA8C', X'EEEE29C7', X'B8B8D36B', X'14143C28', X'DEDE79A7', X'5E5EE2BC', X'0B0B1D16', X'DBDB76AD', X'E0E03BDB', X'32325664', X'3A3A4E74', X'0A0A1E14', X'4949DB92', X'06060A0C', X'24246C48', X'5C5CE4B8', X'C2C25D9F', X'D3D36EBD', X'ACACEF43', X'6262A6C4', X'9191A839', X'9595A431', X'E4E437D3', X'79798BF2', X'E7E732D5', X'C8C8438B', X'3737596E', X'6D6DB7DA', X'8D8D8C01', X'D5D564B1', X'4E4ED29C', X'A9A9E049', X'6C6CB4D8', X'5656FAAC', X'F4F407F3', X'EAEA25CF', X'6565AFCA', X'7A7A8EF4', X'AEAEE947', X'08081810', X'BABAD56F', X'787888F0', X'25256F4A', X'2E2E725C', X'1C1C2438', X'A6A6F157', X'B4B4C773', X'C6C65197', X'E8E823CB', X'DDDD7CA1', X'74749CE8', X'1F1F213E', X'4B4BDD96', X'BDBDDC61', X'8B8B860D', X'8A8A850F', X'707090E0', X'3E3E427C', X'B5B5C471', X'6666AACC', X'4848D890', X'03030506', X'F6F601F7', X'0E0E121C', X'6161A3C2', X'35355F6A', X'5757F9AE', X'B9B9D069', X'86869117', X'C1C15899', X'1D1D273A', X'9E9EB927', X'E1E138D9', X'F8F813EB', X'9898B32B', X'11113322', X'6969BBD2', X'D9D970A9', X'8E8E8907', X'9494A733', X'9B9BB62D', X'1E1E223C', X'87879215', X'E9E920C9', X'CECE4987', X'5555FFAA', X'28287850', X'DFDF7AA5', X'8C8C8F03', X'A1A1F859', X'89898009', X'0D0D171A', X'BFBFDA65', X'E6E631D7', X'4242C684', X'6868B8D0', X'4141C382', X'9999B029', X'2D2D775A', X'0F0F111E', X'B0B0CB7B', X'5454FCA8', X'BBBBD66D', X'16163A2C'); DECRYPT: ROUND-D0: XOR S0, CT(01:4), RK(0); XOR S1, CT(05:4), RK(1); XOR S2, CT(09:4), RK(2); XOR S3, CT(13:4), RK(3); ROUND-D1: CPYBTL B, S0, 0, 8; XOR T0, TD0(B), RK( 4); CPYBTL B, S3, 8, 8; XOR(S) T0, TD1(B); CPYBTL B, S2, 16, 8; XOR(S) T0, TD2(B); CPYBTL B, S1, 24, 8; XOR(S) T0, TD3(B); CPYBTL B, S1, 0, 8; XOR T1, TD0(B), RK( 5); CPYBTL B, S0, 8, 8; XOR(S) T1, TD1(B); CPYBTL B, S3, 16, 8; XOR(S) T1, TD2(B); CPYBTL B, S2, 24, 8; XOR(S) T1, TD3(B); CPYBTL B, S2, 0, 8; XOR T2, TD0(B), RK( 6); CPYBTL B, S1, 8, 8; XOR(S) T2, TD1(B); CPYBTL B, S0, 16, 8; XOR(S) T2, TD2(B); CPYBTL B, S3, 24, 8; XOR(S) T2, TD3(B); CPYBTL B, S3, 0, 8; XOR T3, TD0(B), RK( 7); CPYBTL B, S2, 8, 8; XOR(S) T3, TD1(B); CPYBTL B, S1, 16, 8; XOR(S) T3, TD2(B); CPYBTL B, S0, 24, 8; XOR(S) T3, TD3(B); ROUND-D2: CPYBTL B, T0, 0, 8; XOR S0, TD0(B), RK( 8); CPYBTL B, T3, 8, 8; XOR(S) S0, TD1(B); CPYBTL B, T2, 16, 8; XOR(S) S0, TD2(B); CPYBTL B, T1, 24, 8; XOR(S) S0, TD3(B); CPYBTL B, T1, 0, 8; XOR S1, TD0(B), RK(09); CPYBTL B, T0, 8, 8; XOR(S) S1, TD1(B); CPYBTL B, T3, 16, 8; XOR(S) S1, TD2(B); CPYBTL B, T2, 24, 8; XOR(S) S1, TD3(B); CPYBTL B, T2, 0, 8; XOR S2, TD0(B), RK(10); CPYBTL B, T1, 8, 8; XOR(S) S2, TD1(B); CPYBTL B, T0, 16, 8; XOR(S) S2, TD2(B); CPYBTL B, T3, 24, 8; XOR(S) S2, TD3(B); CPYBTL B, T3, 0, 8; XOR S3, TD0(B), RK(11); CPYBTL B, T2, 8, 8; XOR(S) S3, TD1(B); CPYBTL B, T1, 16, 8; XOR(S) S3, TD2(B); CPYBTL B, T0, 24, 8; XOR(S) S3, TD3(B); ROUND-D3: CPYBTL B, S0, 0, 8; XOR T0, TD0(B), RK(12); CPYBTL B, S3, 8, 8; XOR(S) T0, TD1(B); CPYBTL B, S2, 16, 8; XOR(S) T0, TD2(B); CPYBTL B, S1, 24, 8; XOR(S) T0, TD3(B); CPYBTL B, S1, 0, 8; XOR T1, TD0(B), RK(13); CPYBTL B, S0, 8, 8; XOR(S) T1, TD1(B); CPYBTL B, S3, 16, 8; XOR(S) T1, TD2(B); CPYBTL B, S2, 24, 8; XOR(S) T1, TD3(B); CPYBTL B, S2, 0, 8; XOR T2, TD0(B), RK(14); CPYBTL B, S1, 8, 8; XOR(S) T2, TD1(B); CPYBTL B, S0, 16, 8; XOR(S) T2, TD2(B); CPYBTL B, S3, 24, 8; XOR(S) T2, TD3(B); CPYBTL B, S3, 0, 8; XOR T3, TD0(B), RK(15); CPYBTL B, S2, 8, 8; XOR(S) T3, TD1(B); CPYBTL B, S1, 16, 8; XOR(S) T3, TD2(B); CPYBTL B, S0, 24, 8; XOR(S) T3, TD3(B); ROUND-D4: CPYBTL B, T0, 0, 8; XOR S0, TD0(B), RK(16); CPYBTL B, T3, 8, 8; XOR(S) S0, TD1(B); CPYBTL B, T2, 16, 8; XOR(S) S0, TD2(B); CPYBTL B, T1, 24, 8; XOR(S) S0, TD3(B); CPYBTL B, T1, 0, 8; XOR S1, TD0(B), RK(17); CPYBTL B, T0, 8, 8; XOR(S) S1, TD1(B); CPYBTL B, T3, 16, 8; XOR(S) S1, TD2(B); CPYBTL B, T2, 24, 8; XOR(S) S1, TD3(B); CPYBTL B, T2, 0, 8; XOR S2, TD0(B), RK(18); CPYBTL B, T1, 8, 8; XOR(S) S2, TD1(B); CPYBTL B, T0, 16, 8; XOR(S) S2, TD2(B); CPYBTL B, T3, 24, 8; XOR(S) S2, TD3(B); CPYBTL B, T3, 0, 8; XOR S3, TD0(B), RK(19); CPYBTL B, T2, 8, 8; XOR(S) S3, TD1(B); CPYBTL B, T1, 16, 8; XOR(S) S3, TD2(B); CPYBTL B, T0, 24, 8; XOR(S) S3, TD3(B); ROUND-D5: CPYBTL B, S0, 0, 8; XOR T0, TD0(B), RK(20); CPYBTL B, S3, 8, 8; XOR(S) T0, TD1(B); CPYBTL B, S2, 16, 8; XOR(S) T0, TD2(B); CPYBTL B, S1, 24, 8; XOR(S) T0, TD3(B); CPYBTL B, S1, 0, 8; XOR T1, TD0(B), RK(21); CPYBTL B, S0, 8, 8; XOR(S) T1, TD1(B); CPYBTL B, S3, 16, 8; XOR(S) T1, TD2(B); CPYBTL B, S2, 24, 8; XOR(S) T1, TD3(B); CPYBTL B, S2, 0, 8; XOR T2, TD0(B), RK(22); CPYBTL B, S1, 8, 8; XOR(S) T2, TD1(B); CPYBTL B, S0, 16, 8; XOR(S) T2, TD2(B); CPYBTL B, S3, 24, 8; XOR(S) T2, TD3(B); CPYBTL B, S3, 0, 8; XOR T3, TD0(B), RK(23); CPYBTL B, S2, 8, 8; XOR(S) T3, TD1(B); CPYBTL B, S1, 16, 8; XOR(S) T3, TD2(B); CPYBTL B, S0, 24, 8; XOR(S) T3, TD3(B); ROUND-D6: CPYBTL B, T0, 0, 8; XOR S0, TD0(B), RK(24); CPYBTL B, T3, 8, 8; XOR(S) S0, TD1(B); CPYBTL B, T2, 16, 8; XOR(S) S0, TD2(B); CPYBTL B, T1, 24, 8; XOR(S) S0, TD3(B); CPYBTL B, T1, 0, 8; XOR S1, TD0(B), RK(25); CPYBTL B, T0, 8, 8; XOR(S) S1, TD1(B); CPYBTL B, T3, 16, 8; XOR(S) S1, TD2(B); CPYBTL B, T2, 24, 8; XOR(S) S1, TD3(B); CPYBTL B, T2, 0, 8; XOR S2, TD0(B), RK(26); CPYBTL B, T1, 8, 8; XOR(S) S2, TD1(B); CPYBTL B, T0, 16, 8; XOR(S) S2, TD2(B); CPYBTL B, T3, 24, 8; XOR(S) S2, TD3(B); CPYBTL B, T3, 0, 8; XOR S3, TD0(B), RK(27); CPYBTL B, T2, 8, 8; XOR(S) S3, TD1(B); CPYBTL B, T1, 16, 8; XOR(S) S3, TD2(B); CPYBTL B, T0, 24, 8; XOR(S) S3, TD3(B); ROUND-D7: CPYBTL B, S0, 0, 8; XOR T0, TD0(B), RK(28); CPYBTL B, S3, 8, 8; XOR(S) T0, TD1(B); CPYBTL B, S2, 16, 8; XOR(S) T0, TD2(B); CPYBTL B, S1, 24, 8; XOR(S) T0, TD3(B); CPYBTL B, S1, 0, 8; XOR T1, TD0(B), RK(29); CPYBTL B, S0, 8, 8; XOR(S) T1, TD1(B); CPYBTL B, S3, 16, 8; XOR(S) T1, TD2(B); CPYBTL B, S2, 24, 8; XOR(S) T1, TD3(B); CPYBTL B, S2, 0, 8; XOR T2, TD0(B), RK(30); CPYBTL B, S1, 8, 8; XOR(S) T2, TD1(B); CPYBTL B, S0, 16, 8; XOR(S) T2, TD2(B); CPYBTL B, S3, 24, 8; XOR(S) T2, TD3(B); CPYBTL B, S3, 0, 8; XOR T3, TD0(B), RK(31); CPYBTL B, S2, 8, 8; XOR(S) T3, TD1(B); CPYBTL B, S1, 16, 8; XOR(S) T3, TD2(B); CPYBTL B, S0, 24, 8; XOR(S) T3, TD3(B); ROUND-D8: CPYBTL B, T0, 0, 8; XOR S0, TD0(B), RK(32); CPYBTL B, T3, 8, 8; XOR(S) S0, TD1(B); CPYBTL B, T2, 16, 8; XOR(S) S0, TD2(B); CPYBTL B, T1, 24, 8; XOR(S) S0, TD3(B); CPYBTL B, T1, 0, 8; XOR S1, TD0(B), RK(33); CPYBTL B, T0, 8, 8; XOR(S) S1, TD1(B); CPYBTL B, T3, 16, 8; XOR(S) S1, TD2(B); CPYBTL B, T2, 24, 8; XOR(S) S1, TD3(B); CPYBTL B, T2, 0, 8; XOR S2, TD0(B), RK(34); CPYBTL B, T1, 8, 8; XOR(S) S2, TD1(B); CPYBTL B, T0, 16, 8; XOR(S) S2, TD2(B); CPYBTL B, T3, 24, 8; XOR(S) S2, TD3(B); CPYBTL B, T3, 0, 8; XOR S3, TD0(B), RK(35); CPYBTL B, T2, 8, 8; XOR(S) S3, TD1(B); CPYBTL B, T1, 16, 8; XOR(S) S3, TD2(B); CPYBTL B, T0, 24, 8; XOR(S) S3, TD3(B); ROUND-D9: CPYBTL B, S0, 0, 8; XOR T0, TD0(B), RK(36); CPYBTL B, S3, 8, 8; XOR(S) T0, TD1(B); CPYBTL B, S2, 16, 8; XOR(S) T0, TD2(B); CPYBTL B, S1, 24, 8; XOR(S) T0, TD3(B); CPYBTL B, S1, 0, 8; XOR T1, TD0(B), RK(37); CPYBTL B, S0, 8, 8; XOR(S) T1, TD1(B); CPYBTL B, S3, 16, 8; XOR(S) T1, TD2(B); CPYBTL B, S2, 24, 8; XOR(S) T1, TD3(B); CPYBTL B, S2, 0, 8; XOR T2, TD0(B), RK(38); CPYBTL B, S1, 8, 8; XOR(S) T2, TD1(B); CPYBTL B, S0, 16, 8; XOR(S) T2, TD2(B); CPYBTL B, S3, 24, 8; XOR(S) T2, TD3(B); CPYBTL B, S3, 0, 8; XOR T3, TD0(B), RK(39); CPYBTL B, S2, 8, 8; XOR(S) T3, TD1(B); CPYBTL B, S1, 16, 8; XOR(S) T3, TD2(B); CPYBTL B, S0, 24, 8; XOR(S) T3, TD3(B); ROUND-D10: CPYBTL B, T0, 0, 8; CPYBLA L0(1:1), TD4(B); CPYBTL B, T3, 8, 8; CPYBLA L0(2:1), TD4(B); CPYBTL B, T2, 16, 8; CPYBLA L0(3:1), TD4(B); CPYBTL B, T1, 24, 8; CPYBLA L0(4:1), TD4(B); CPYBTL B, T1, 0, 8; CPYBLA L1(1:1), TD4(B); CPYBTL B, T0, 8, 8; CPYBLA L1(2:1), TD4(B); CPYBTL B, T3, 16, 8; CPYBLA L1(3:1), TD4(B); CPYBTL B, T2, 24, 8; CPYBLA L1(4:1), TD4(B); CPYBTL B, T2, 0, 8; CPYBLA L2(1:1), TD4(B); CPYBTL B, T1, 8, 8; CPYBLA L2(2:1), TD4(B); CPYBTL B, T0, 16, 8; CPYBLA L2(3:1), TD4(B); CPYBTL B, T3, 24, 8; CPYBLA L2(4:1), TD4(B); CPYBTL B, T3, 0, 8; CPYBLA L3(1:1), TD4(B); CPYBTL B, T2, 8, 8; CPYBLA L3(2:1), TD4(B); CPYBTL B, T1, 16, 8; CPYBLA L3(3:1), TD4(B); CPYBTL B, T0, 24, 8; CPYBLA L3(4:1), TD4(B); XOR PT(01:4), L0, RK(40); XOR PT(05:4), L1, RK(41); XOR PT(09:4), L2, RK(42); XOR PT(13:4), L3, RK(43); B DONE; DCL DD TD0(0:255) CHAR(4) BDRY(8) INIT( X'51F4A750', X'7E416553', X'1A17A4C3', X'3A275E96', X'3BAB6BCB', X'1F9D45F1', X'ACFA58AB', X'4BE30393', X'2030FA55', X'AD766DF6', X'88CC7691', X'F5024C25', X'4FE5D7FC', X'C52ACBD7', X'26354480', X'B562A38F', X'DEB15A49', X'25BA1B67', X'45EA0E98', X'5DFEC0E1', X'C32F7502', X'814CF012', X'8D4697A3', X'6BD3F9C6', X'038F5FE7', X'15929C95', X'BF6D7AEB', X'955259DA', X'D4BE832D', X'587421D3', X'49E06929', X'8EC9C844', X'75C2896A', X'F48E7978', X'99583E6B', X'27B971DD', X'BEE14FB6', X'F088AD17', X'C920AC66', X'7DCE3AB4', X'63DF4A18', X'E51A3182', X'97513360', X'62537F45', X'B16477E0', X'BB6BAE84', X'FE81A01C', X'F9082B94', X'70486858', X'8F45FD19', X'94DE6C87', X'527BF8B7', X'AB73D323', X'724B02E2', X'E31F8F57', X'6655AB2A', X'B2EB2807', X'2FB5C203', X'86C57B9A', X'D33708A5', X'302887F2', X'23BFA5B2', X'02036ABA', X'ED16825C', X'8ACF1C2B', X'A779B492', X'F307F2F0', X'4E69E2A1', X'65DAF4CD', X'0605BED5', X'D134621F', X'C4A6FE8A', X'342E539D', X'A2F355A0', X'058AE132', X'A4F6EB75', X'0B83EC39', X'4060EFAA', X'5E719F06', X'BD6E1051', X'3E218AF9', X'96DD063D', X'DD3E05AE', X'4DE6BD46', X'91548DB5', X'71C45D05', X'0406D46F', X'605015FF', X'1998FB24', X'D6BDE997', X'894043CC', X'67D99E77', X'B0E842BD', X'07898B88', X'E7195B38', X'79C8EEDB', X'A17C0A47', X'7C420FE9', X'F8841EC9', X'00000000', X'09808683', X'322BED48', X'1E1170AC', X'6C5A724E', X'FD0EFFFB', X'0F853856', X'3DAED51E', X'362D3927', X'0A0FD964', X'685CA621', X'9B5B54D1', X'24362E3A', X'0C0A67B1', X'9357E70F', X'B4EE96D2', X'1B9B919E', X'80C0C54F', X'61DC20A2', X'5A774B69', X'1C121A16', X'E293BA0A', X'C0A02AE5', X'3C22E043', X'121B171D', X'0E090D0B', X'F28BC7AD', X'2DB6A8B9', X'141EA9C8', X'57F11985', X'AF75074C', X'EE99DDBB', X'A37F60FD', X'F701269F', X'5C72F5BC', X'44663BC5', X'5BFB7E34', X'8B432976', X'CB23C6DC', X'B6EDFC68', X'B8E4F163', X'D731DCCA', X'42638510', X'13972240', X'84C61120', X'854A247D', X'D2BB3DF8', X'AEF93211', X'C729A16D', X'1D9E2F4B', X'DCB230F3', X'0D8652EC', X'77C1E3D0', X'2BB3166C', X'A970B999', X'119448FA', X'47E96422', X'A8FC8CC4', X'A0F03F1A', X'567D2CD8', X'223390EF', X'87494EC7', X'D938D1C1', X'8CCAA2FE', X'98D40B36', X'A6F581CF', X'A57ADE28', X'DAB78E26', X'3FADBFA4', X'2C3A9DE4', X'5078920D', X'6A5FCC9B', X'547E4662', X'F68D13C2', X'90D8B8E8', X'2E39F75E', X'82C3AFF5', X'9F5D80BE', X'69D0937C', X'6FD52DA9', X'CF2512B3', X'C8AC993B', X'10187DA7', X'E89C636E', X'DB3BBB7B', X'CD267809', X'6E5918F4', X'EC9AB701', X'834F9AA8', X'E6956E65', X'AAFFE67E', X'21BCCF08', X'EF15E8E6', X'BAE79BD9', X'4A6F36CE', X'EA9F09D4', X'29B07CD6', X'31A4B2AF', X'2A3F2331', X'C6A59430', X'35A266C0', X'744EBC37', X'FC82CAA6', X'E090D0B0', X'33A7D815', X'F104984A', X'41ECDAF7', X'7FCD500E', X'1791F62F', X'764DD68D', X'43EFB04D', X'CCAA4D54', X'E49604DF', X'9ED1B5E3', X'4C6A881B', X'C12C1FB8', X'4665517F', X'9D5EEA04', X'018C355D', X'FA877473', X'FB0B412E', X'B3671D5A', X'92DBD252', X'E9105633', X'6DD64713', X'9AD7618C', X'37A10C7A', X'59F8148E', X'EB133C89', X'CEA927EE', X'B761C935', X'E11CE5ED', X'7A47B13C', X'9CD2DF59', X'55F2733F', X'1814CE79', X'73C737BF', X'53F7CDEA', X'5FFDAA5B', X'DF3D6F14', X'7844DB86', X'CAAFF381', X'B968C43E', X'3824342C', X'C2A3405F', X'161DC372', X'BCE2250C', X'283C498B', X'FF0D9541', X'39A80171', X'080CB3DE', X'D8B4E49C', X'6456C190', X'7BCB8461', X'D532B670', X'486C5C74', X'D0B85742'); DCL DD TD1(0:255) CHAR(4) BDRY(8) INIT( X'5051F4A7', X'537E4165', X'C31A17A4', X'963A275E', X'CB3BAB6B', X'F11F9D45', X'ABACFA58', X'934BE303', X'552030FA', X'F6AD766D', X'9188CC76', X'25F5024C', X'FC4FE5D7', X'D7C52ACB', X'80263544', X'8FB562A3', X'49DEB15A', X'6725BA1B', X'9845EA0E', X'E15DFEC0', X'02C32F75', X'12814CF0', X'A38D4697', X'C66BD3F9', X'E7038F5F', X'9515929C', X'EBBF6D7A', X'DA955259', X'2DD4BE83', X'D3587421', X'2949E069', X'448EC9C8', X'6A75C289', X'78F48E79', X'6B99583E', X'DD27B971', X'B6BEE14F', X'17F088AD', X'66C920AC', X'B47DCE3A', X'1863DF4A', X'82E51A31', X'60975133', X'4562537F', X'E0B16477', X'84BB6BAE', X'1CFE81A0', X'94F9082B', X'58704868', X'198F45FD', X'8794DE6C', X'B7527BF8', X'23AB73D3', X'E2724B02', X'57E31F8F', X'2A6655AB', X'07B2EB28', X'032FB5C2', X'9A86C57B', X'A5D33708', X'F2302887', X'B223BFA5', X'BA02036A', X'5CED1682', X'2B8ACF1C', X'92A779B4', X'F0F307F2', X'A14E69E2', X'CD65DAF4', X'D50605BE', X'1FD13462', X'8AC4A6FE', X'9D342E53', X'A0A2F355', X'32058AE1', X'75A4F6EB', X'390B83EC', X'AA4060EF', X'065E719F', X'51BD6E10', X'F93E218A', X'3D96DD06', X'AEDD3E05', X'464DE6BD', X'B591548D', X'0571C45D', X'6F0406D4', X'FF605015', X'241998FB', X'97D6BDE9', X'CC894043', X'7767D99E', X'BDB0E842', X'8807898B', X'38E7195B', X'DB79C8EE', X'47A17C0A', X'E97C420F', X'C9F8841E', X'00000000', X'83098086', X'48322BED', X'AC1E1170', X'4E6C5A72', X'FBFD0EFF', X'560F8538', X'1E3DAED5', X'27362D39', X'640A0FD9', X'21685CA6', X'D19B5B54', X'3A24362E', X'B10C0A67', X'0F9357E7', X'D2B4EE96', X'9E1B9B91', X'4F80C0C5', X'A261DC20', X'695A774B', X'161C121A', X'0AE293BA', X'E5C0A02A', X'433C22E0', X'1D121B17', X'0B0E090D', X'ADF28BC7', X'B92DB6A8', X'C8141EA9', X'8557F119', X'4CAF7507', X'BBEE99DD', X'FDA37F60', X'9FF70126', X'BC5C72F5', X'C544663B', X'345BFB7E', X'768B4329', X'DCCB23C6', X'68B6EDFC', X'63B8E4F1', X'CAD731DC', X'10426385', X'40139722', X'2084C611', X'7D854A24', X'F8D2BB3D', X'11AEF932', X'6DC729A1', X'4B1D9E2F', X'F3DCB230', X'EC0D8652', X'D077C1E3', X'6C2BB316', X'99A970B9', X'FA119448', X'2247E964', X'C4A8FC8C', X'1AA0F03F', X'D8567D2C', X'EF223390', X'C787494E', X'C1D938D1', X'FE8CCAA2', X'3698D40B', X'CFA6F581', X'28A57ADE', X'26DAB78E', X'A43FADBF', X'E42C3A9D', X'0D507892', X'9B6A5FCC', X'62547E46', X'C2F68D13', X'E890D8B8', X'5E2E39F7', X'F582C3AF', X'BE9F5D80', X'7C69D093', X'A96FD52D', X'B3CF2512', X'3BC8AC99', X'A710187D', X'6EE89C63', X'7BDB3BBB', X'09CD2678', X'F46E5918', X'01EC9AB7', X'A8834F9A', X'65E6956E', X'7EAAFFE6', X'0821BCCF', X'E6EF15E8', X'D9BAE79B', X'CE4A6F36', X'D4EA9F09', X'D629B07C', X'AF31A4B2', X'312A3F23', X'30C6A594', X'C035A266', X'37744EBC', X'A6FC82CA', X'B0E090D0', X'1533A7D8', X'4AF10498', X'F741ECDA', X'0E7FCD50', X'2F1791F6', X'8D764DD6', X'4D43EFB0', X'54CCAA4D', X'DFE49604', X'E39ED1B5', X'1B4C6A88', X'B8C12C1F', X'7F466551', X'049D5EEA', X'5D018C35', X'73FA8774', X'2EFB0B41', X'5AB3671D', X'5292DBD2', X'33E91056', X'136DD647', X'8C9AD761', X'7A37A10C', X'8E59F814', X'89EB133C', X'EECEA927', X'35B761C9', X'EDE11CE5', X'3C7A47B1', X'599CD2DF', X'3F55F273', X'791814CE', X'BF73C737', X'EA53F7CD', X'5B5FFDAA', X'14DF3D6F', X'867844DB', X'81CAAFF3', X'3EB968C4', X'2C382434', X'5FC2A340', X'72161DC3', X'0CBCE225', X'8B283C49', X'41FF0D95', X'7139A801', X'DE080CB3', X'9CD8B4E4', X'906456C1', X'617BCB84', X'70D532B6', X'74486C5C', X'42D0B857'); DCL DD TD2(0:255) CHAR(4) BDRY(8) INIT( X'A75051F4', X'65537E41', X'A4C31A17', X'5E963A27', X'6BCB3BAB', X'45F11F9D', X'58ABACFA', X'03934BE3', X'FA552030', X'6DF6AD76', X'769188CC', X'4C25F502', X'D7FC4FE5', X'CBD7C52A', X'44802635', X'A38FB562', X'5A49DEB1', X'1B6725BA', X'0E9845EA', X'C0E15DFE', X'7502C32F', X'F012814C', X'97A38D46', X'F9C66BD3', X'5FE7038F', X'9C951592', X'7AEBBF6D', X'59DA9552', X'832DD4BE', X'21D35874', X'692949E0', X'C8448EC9', X'896A75C2', X'7978F48E', X'3E6B9958', X'71DD27B9', X'4FB6BEE1', X'AD17F088', X'AC66C920', X'3AB47DCE', X'4A1863DF', X'3182E51A', X'33609751', X'7F456253', X'77E0B164', X'AE84BB6B', X'A01CFE81', X'2B94F908', X'68587048', X'FD198F45', X'6C8794DE', X'F8B7527B', X'D323AB73', X'02E2724B', X'8F57E31F', X'AB2A6655', X'2807B2EB', X'C2032FB5', X'7B9A86C5', X'08A5D337', X'87F23028', X'A5B223BF', X'6ABA0203', X'825CED16', X'1C2B8ACF', X'B492A779', X'F2F0F307', X'E2A14E69', X'F4CD65DA', X'BED50605', X'621FD134', X'FE8AC4A6', X'539D342E', X'55A0A2F3', X'E132058A', X'EB75A4F6', X'EC390B83', X'EFAA4060', X'9F065E71', X'1051BD6E', X'8AF93E21', X'063D96DD', X'05AEDD3E', X'BD464DE6', X'8DB59154', X'5D0571C4', X'D46F0406', X'15FF6050', X'FB241998', X'E997D6BD', X'43CC8940', X'9E7767D9', X'42BDB0E8', X'8B880789', X'5B38E719', X'EEDB79C8', X'0A47A17C', X'0FE97C42', X'1EC9F884', X'00000000', X'86830980', X'ED48322B', X'70AC1E11', X'724E6C5A', X'FFFBFD0E', X'38560F85', X'D51E3DAE', X'3927362D', X'D9640A0F', X'A621685C', X'54D19B5B', X'2E3A2436', X'67B10C0A', X'E70F9357', X'96D2B4EE', X'919E1B9B', X'C54F80C0', X'20A261DC', X'4B695A77', X'1A161C12', X'BA0AE293', X'2AE5C0A0', X'E0433C22', X'171D121B', X'0D0B0E09', X'C7ADF28B', X'A8B92DB6', X'A9C8141E', X'198557F1', X'074CAF75', X'DDBBEE99', X'60FDA37F', X'269FF701', X'F5BC5C72', X'3BC54466', X'7E345BFB', X'29768B43', X'C6DCCB23', X'FC68B6ED', X'F163B8E4', X'DCCAD731', X'85104263', X'22401397', X'112084C6', X'247D854A', X'3DF8D2BB', X'3211AEF9', X'A16DC729', X'2F4B1D9E', X'30F3DCB2', X'52EC0D86', X'E3D077C1', X'166C2BB3', X'B999A970', X'48FA1194', X'642247E9', X'8CC4A8FC', X'3F1AA0F0', X'2CD8567D', X'90EF2233', X'4EC78749', X'D1C1D938', X'A2FE8CCA', X'0B3698D4', X'81CFA6F5', X'DE28A57A', X'8E26DAB7', X'BFA43FAD', X'9DE42C3A', X'920D5078', X'CC9B6A5F', X'4662547E', X'13C2F68D', X'B8E890D8', X'F75E2E39', X'AFF582C3', X'80BE9F5D', X'937C69D0', X'2DA96FD5', X'12B3CF25', X'993BC8AC', X'7DA71018', X'636EE89C', X'BB7BDB3B', X'7809CD26', X'18F46E59', X'B701EC9A', X'9AA8834F', X'6E65E695', X'E67EAAFF', X'CF0821BC', X'E8E6EF15', X'9BD9BAE7', X'36CE4A6F', X'09D4EA9F', X'7CD629B0', X'B2AF31A4', X'23312A3F', X'9430C6A5', X'66C035A2', X'BC37744E', X'CAA6FC82', X'D0B0E090', X'D81533A7', X'984AF104', X'DAF741EC', X'500E7FCD', X'F62F1791', X'D68D764D', X'B04D43EF', X'4D54CCAA', X'04DFE496', X'B5E39ED1', X'881B4C6A', X'1FB8C12C', X'517F4665', X'EA049D5E', X'355D018C', X'7473FA87', X'412EFB0B', X'1D5AB367', X'D25292DB', X'5633E910', X'47136DD6', X'618C9AD7', X'0C7A37A1', X'148E59F8', X'3C89EB13', X'27EECEA9', X'C935B761', X'E5EDE11C', X'B13C7A47', X'DF599CD2', X'733F55F2', X'CE791814', X'37BF73C7', X'CDEA53F7', X'AA5B5FFD', X'6F14DF3D', X'DB867844', X'F381CAAF', X'C43EB968', X'342C3824', X'405FC2A3', X'C372161D', X'250CBCE2', X'498B283C', X'9541FF0D', X'017139A8', X'B3DE080C', X'E49CD8B4', X'C1906456', X'84617BCB', X'B670D532', X'5C74486C', X'5742D0B8'); DCL DD TD3(0:255) CHAR(4) BDRY(8) INIT( X'F4A75051', X'4165537E', X'17A4C31A', X'275E963A', X'AB6BCB3B', X'9D45F11F', X'FA58ABAC', X'E303934B', X'30FA5520', X'766DF6AD', X'CC769188', X'024C25F5', X'E5D7FC4F', X'2ACBD7C5', X'35448026', X'62A38FB5', X'B15A49DE', X'BA1B6725', X'EA0E9845', X'FEC0E15D', X'2F7502C3', X'4CF01281', X'4697A38D', X'D3F9C66B', X'8F5FE703', X'929C9515', X'6D7AEBBF', X'5259DA95', X'BE832DD4', X'7421D358', X'E0692949', X'C9C8448E', X'C2896A75', X'8E7978F4', X'583E6B99', X'B971DD27', X'E14FB6BE', X'88AD17F0', X'20AC66C9', X'CE3AB47D', X'DF4A1863', X'1A3182E5', X'51336097', X'537F4562', X'6477E0B1', X'6BAE84BB', X'81A01CFE', X'082B94F9', X'48685870', X'45FD198F', X'DE6C8794', X'7BF8B752', X'73D323AB', X'4B02E272', X'1F8F57E3', X'55AB2A66', X'EB2807B2', X'B5C2032F', X'C57B9A86', X'3708A5D3', X'2887F230', X'BFA5B223', X'036ABA02', X'16825CED', X'CF1C2B8A', X'79B492A7', X'07F2F0F3', X'69E2A14E', X'DAF4CD65', X'05BED506', X'34621FD1', X'A6FE8AC4', X'2E539D34', X'F355A0A2', X'8AE13205', X'F6EB75A4', X'83EC390B', X'60EFAA40', X'719F065E', X'6E1051BD', X'218AF93E', X'DD063D96', X'3E05AEDD', X'E6BD464D', X'548DB591', X'C45D0571', X'06D46F04', X'5015FF60', X'98FB2419', X'BDE997D6', X'4043CC89', X'D99E7767', X'E842BDB0', X'898B8807', X'195B38E7', X'C8EEDB79', X'7C0A47A1', X'420FE97C', X'841EC9F8', X'00000000', X'80868309', X'2BED4832', X'1170AC1E', X'5A724E6C', X'0EFFFBFD', X'8538560F', X'AED51E3D', X'2D392736', X'0FD9640A', X'5CA62168', X'5B54D19B', X'362E3A24', X'0A67B10C', X'57E70F93', X'EE96D2B4', X'9B919E1B', X'C0C54F80', X'DC20A261', X'774B695A', X'121A161C', X'93BA0AE2', X'A02AE5C0', X'22E0433C', X'1B171D12', X'090D0B0E', X'8BC7ADF2', X'B6A8B92D', X'1EA9C814', X'F1198557', X'75074CAF', X'99DDBBEE', X'7F60FDA3', X'01269FF7', X'72F5BC5C', X'663BC544', X'FB7E345B', X'4329768B', X'23C6DCCB', X'EDFC68B6', X'E4F163B8', X'31DCCAD7', X'63851042', X'97224013', X'C6112084', X'4A247D85', X'BB3DF8D2', X'F93211AE', X'29A16DC7', X'9E2F4B1D', X'B230F3DC', X'8652EC0D', X'C1E3D077', X'B3166C2B', X'70B999A9', X'9448FA11', X'E9642247', X'FC8CC4A8', X'F03F1AA0', X'7D2CD856', X'3390EF22', X'494EC787', X'38D1C1D9', X'CAA2FE8C', X'D40B3698', X'F581CFA6', X'7ADE28A5', X'B78E26DA', X'ADBFA43F', X'3A9DE42C', X'78920D50', X'5FCC9B6A', X'7E466254', X'8D13C2F6', X'D8B8E890', X'39F75E2E', X'C3AFF582', X'5D80BE9F', X'D0937C69', X'D52DA96F', X'2512B3CF', X'AC993BC8', X'187DA710', X'9C636EE8', X'3BBB7BDB', X'267809CD', X'5918F46E', X'9AB701EC', X'4F9AA883', X'956E65E6', X'FFE67EAA', X'BCCF0821', X'15E8E6EF', X'E79BD9BA', X'6F36CE4A', X'9F09D4EA', X'B07CD629', X'A4B2AF31', X'3F23312A', X'A59430C6', X'A266C035', X'4EBC3774', X'82CAA6FC', X'90D0B0E0', X'A7D81533', X'04984AF1', X'ECDAF741', X'CD500E7F', X'91F62F17', X'4DD68D76', X'EFB04D43', X'AA4D54CC', X'9604DFE4', X'D1B5E39E', X'6A881B4C', X'2C1FB8C1', X'65517F46', X'5EEA049D', X'8C355D01', X'877473FA', X'0B412EFB', X'671D5AB3', X'DBD25292', X'105633E9', X'D647136D', X'D7618C9A', X'A10C7A37', X'F8148E59', X'133C89EB', X'A927EECE', X'61C935B7', X'1CE5EDE1', X'47B13C7A', X'D2DF599C', X'F2733F55', X'14CE7918', X'C737BF73', X'F7CDEA53', X'FDAA5B5F', X'3D6F14DF', X'44DB8678', X'AFF381CA', X'68C43EB9', X'24342C38', X'A3405FC2', X'1DC37216', X'E2250CBC', X'3C498B28', X'0D9541FF', X'A8017139', X'0CB3DE08', X'B4E49CD8', X'56C19064', X'CB84617B', X'32B670D5', X'6C5C7448', X'B85742D0');