This has been made obsolete by the sha1collisiondetection
submodule. See the preceding change for details.

Signed-off-by: Ævar Arnfjörð Bjarmason <ava...@gmail.com>
---
 sha1dc/LICENSE.txt |  30 -----
 sha1dc/sha1.h      | 110 ----------------
 sha1dc/ubc_check.c | 372 -----------------------------------------------------
 sha1dc/ubc_check.h |  52 --------
 4 files changed, 564 deletions(-)
 delete mode 100644 sha1dc/LICENSE.txt
 delete mode 100644 sha1dc/sha1.h
 delete mode 100644 sha1dc/ubc_check.c
 delete mode 100644 sha1dc/ubc_check.h

diff --git a/sha1dc/LICENSE.txt b/sha1dc/LICENSE.txt
deleted file mode 100644
index 4a3e6a1b15..0000000000
--- a/sha1dc/LICENSE.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-MIT License
-
-Copyright (c) 2017:
-    Marc Stevens
-    Cryptology Group
-    Centrum Wiskunde & Informatica
-    P.O. Box 94079, 1090 GB Amsterdam, Netherlands
-    m...@marc-stevens.nl
-
-    Dan Shumow
-    Microsoft Research
-    dan...@microsoft.com
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/sha1dc/sha1.h b/sha1dc/sha1.h
deleted file mode 100644
index dd41b0a5a6..0000000000
--- a/sha1dc/sha1.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/***
-* Copyright 2017 Marc Stevens <m...@marc-stevens.nl>, Dan Shumow 
<dan...@microsoft.com>
-* Distributed under the MIT Software License.
-* See accompanying file LICENSE.txt or copy at
-* https://opensource.org/licenses/MIT
-***/
-
-#ifndef SHA1DC_SHA1_H
-#define SHA1DC_SHA1_H
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#ifndef SHA1DC_NO_STANDARD_INCLUDES
-#include <stdint.h>
-#endif
-
-/* sha-1 compression function that takes an already expanded message, and 
additionally store intermediate states */
-/* only stores states ii (the state between step ii-1 and step ii) when 
DOSTORESTATEii is defined in ubc_check.h */
-void sha1_compression_states(uint32_t[5], const uint32_t[16], uint32_t[80], 
uint32_t[80][5]);
-
-/*
-// Function type for sha1_recompression_step_T (uint32_t ihvin[5], uint32_t 
ihvout[5], const uint32_t me2[80], const uint32_t state[5]).
-// Where 0 <= T < 80
-//       me2 is an expanded message (the expansion of an original message 
block XOR'ed with a disturbance vector's message block difference.)
-//       state is the internal state (a,b,c,d,e) before step T of the SHA-1 
compression function while processing the original message block.
-// The function will return:
-//       ihvin: The reconstructed input chaining value.
-//       ihvout: The reconstructed output chaining value.
-*/
-typedef void(*sha1_recompression_type)(uint32_t*, uint32_t*, const uint32_t*, 
const uint32_t*);
-
-/* A callback function type that can be set to be called when a collision 
block has been found: */
-/* void collision_block_callback(uint64_t byteoffset, const uint32_t 
ihvin1[5], const uint32_t ihvin2[5], const uint32_t m1[80], const uint32_t 
m2[80]) */
-typedef void(*collision_block_callback)(uint64_t, const uint32_t*, const 
uint32_t*, const uint32_t*, const uint32_t*);
-
-/* The SHA-1 context. */
-typedef struct {
-       uint64_t total;
-       uint32_t ihv[5];
-       unsigned char buffer[64];
-       int found_collision;
-       int safe_hash;
-       int detect_coll;
-       int ubc_check;
-       int reduced_round_coll;
-       collision_block_callback callback;
-
-       uint32_t ihv1[5];
-       uint32_t ihv2[5];
-       uint32_t m1[80];
-       uint32_t m2[80];
-       uint32_t states[80][5];
-} SHA1_CTX;
-
-/* Initialize SHA-1 context. */
-void SHA1DCInit(SHA1_CTX*);
-
-/*
-    Function to enable safe SHA-1 hashing:
-    Collision attacks are thwarted by hashing a detected near-collision block 
3 times.
-    Think of it as extending SHA-1 from 80-steps to 240-steps for such blocks:
-        The best collision attacks against SHA-1 have complexity about 2^60,
-        thus for 240-steps an immediate lower-bound for the best cryptanalytic 
attacks would be 2^180.
-        An attacker would be better off using a generic birthday search of 
complexity 2^80.
-  
-   Enabling safe SHA-1 hashing will result in the correct SHA-1 hash for 
messages where no collision attack was detected,
-   but it will result in a different SHA-1 hash for messages where a collision 
attack was detected.
-   This will automatically invalidate SHA-1 based digital signature forgeries.
-   Enabled by default.
-*/
-void SHA1DCSetSafeHash(SHA1_CTX*, int);
-
-/*
-    Function to disable or enable the use of Unavoidable Bitconditions 
(provides a significant speed up).
-    Enabled by default
- */
-void SHA1DCSetUseUBC(SHA1_CTX*, int);
-
-/*
-    Function to disable or enable the use of Collision Detection.
-    Enabled by default.
- */
-void SHA1DCSetUseDetectColl(SHA1_CTX*, int);
-
-/* function to disable or enable the detection of reduced-round SHA-1 
collisions */
-/* disabled by default */
-void SHA1DCSetDetectReducedRoundCollision(SHA1_CTX*, int);
-
-/* function to set a callback function, pass NULL to disable */
-/* by default no callback set */
-void SHA1DCSetCallback(SHA1_CTX*, collision_block_callback);
-
-/* update SHA-1 context with buffer contents */
-void SHA1DCUpdate(SHA1_CTX*, const char*, size_t);
-
-/* obtain SHA-1 hash from SHA-1 context */
-/* returns: 0 = no collision detected, otherwise = collision found => warn 
user for active attack */
-int  SHA1DCFinal(unsigned char[20], SHA1_CTX*); 
-
-#if defined(__cplusplus)
-}
-#endif
-
-#ifdef SHA1DC_CUSTOM_TRAILING_INCLUDE_SHA1_H
-#include SHA1DC_CUSTOM_TRAILING_INCLUDE_SHA1_H
-#endif
-
-#endif
diff --git a/sha1dc/ubc_check.c b/sha1dc/ubc_check.c
deleted file mode 100644
index b3beff2afb..0000000000
--- a/sha1dc/ubc_check.c
+++ /dev/null
@@ -1,372 +0,0 @@
-/***
-* Copyright 2017 Marc Stevens <m...@marc-stevens.nl>, Dan Shumow 
<dan...@microsoft.com>
-* Distributed under the MIT Software License.
-* See accompanying file LICENSE.txt or copy at
-* https://opensource.org/licenses/MIT
-***/
-
-/*
-// this file was generated by the 'parse_bitrel' program in the tools section
-// using the data files from directory 'tools/data/3565'
-//
-// sha1_dvs contains a list of SHA-1 Disturbance Vectors (DV) to check
-// dvType, dvK and dvB define the DV: I(K,B) or II(K,B) (see the paper)
-// dm[80] is the expanded message block XOR-difference defined by the DV
-// testt is the step to do the recompression from for collision detection
-// maski and maskb define the bit to check for each DV in the dvmask returned 
by ubc_check
-//
-// ubc_check takes as input an expanded message block and verifies the 
unavoidable bitconditions for all listed DVs
-// it returns a dvmask where each bit belonging to a DV is set if all 
unavoidable bitconditions for that DV have been met
-// thus one needs to do the recompression check for each DV that has its bit 
set
-//
-// ubc_check is programmatically generated and the unavoidable bitconditions 
have been hardcoded
-// a directly verifiable version named ubc_check_verify can be found in 
ubc_check_verify.c
-// ubc_check has been verified against ubc_check_verify using the 
'ubc_check_test' program in the tools section
-*/
-
-#ifndef SHA1DC_NO_STANDARD_INCLUDES
-#include <stdint.h>
-#endif
-#ifdef SHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C
-#include SHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C
-#endif
-#include "ubc_check.h"
-
-static const uint32_t DV_I_43_0_bit    = (uint32_t)(1) << 0;
-static const uint32_t DV_I_44_0_bit    = (uint32_t)(1) << 1;
-static const uint32_t DV_I_45_0_bit    = (uint32_t)(1) << 2;
-static const uint32_t DV_I_46_0_bit    = (uint32_t)(1) << 3;
-static const uint32_t DV_I_46_2_bit    = (uint32_t)(1) << 4;
-static const uint32_t DV_I_47_0_bit    = (uint32_t)(1) << 5;
-static const uint32_t DV_I_47_2_bit    = (uint32_t)(1) << 6;
-static const uint32_t DV_I_48_0_bit    = (uint32_t)(1) << 7;
-static const uint32_t DV_I_48_2_bit    = (uint32_t)(1) << 8;
-static const uint32_t DV_I_49_0_bit    = (uint32_t)(1) << 9;
-static const uint32_t DV_I_49_2_bit    = (uint32_t)(1) << 10;
-static const uint32_t DV_I_50_0_bit    = (uint32_t)(1) << 11;
-static const uint32_t DV_I_50_2_bit    = (uint32_t)(1) << 12;
-static const uint32_t DV_I_51_0_bit    = (uint32_t)(1) << 13;
-static const uint32_t DV_I_51_2_bit    = (uint32_t)(1) << 14;
-static const uint32_t DV_I_52_0_bit    = (uint32_t)(1) << 15;
-static const uint32_t DV_II_45_0_bit   = (uint32_t)(1) << 16;
-static const uint32_t DV_II_46_0_bit   = (uint32_t)(1) << 17;
-static const uint32_t DV_II_46_2_bit   = (uint32_t)(1) << 18;
-static const uint32_t DV_II_47_0_bit   = (uint32_t)(1) << 19;
-static const uint32_t DV_II_48_0_bit   = (uint32_t)(1) << 20;
-static const uint32_t DV_II_49_0_bit   = (uint32_t)(1) << 21;
-static const uint32_t DV_II_49_2_bit   = (uint32_t)(1) << 22;
-static const uint32_t DV_II_50_0_bit   = (uint32_t)(1) << 23;
-static const uint32_t DV_II_50_2_bit   = (uint32_t)(1) << 24;
-static const uint32_t DV_II_51_0_bit   = (uint32_t)(1) << 25;
-static const uint32_t DV_II_51_2_bit   = (uint32_t)(1) << 26;
-static const uint32_t DV_II_52_0_bit   = (uint32_t)(1) << 27;
-static const uint32_t DV_II_53_0_bit   = (uint32_t)(1) << 28;
-static const uint32_t DV_II_54_0_bit   = (uint32_t)(1) << 29;
-static const uint32_t DV_II_55_0_bit   = (uint32_t)(1) << 30;
-static const uint32_t DV_II_56_0_bit   = (uint32_t)(1) << 31;
-
-dv_info_t sha1_dvs[] =
-{
-  {1,43,0,58,0,0, { 
0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012,0x80000202,0x00000018,0x00000164,0x00000408,0x800000e6,0x8000004c,0x00000803,0x80000161,0x80000599
 } }
-, {1,44,0,58,0,1, { 
0xb4000008,0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012,0x80000202,0x00000018,0x00000164,0x00000408,0x800000e6,0x8000004c,0x00000803,0x80000161
 } }
-, {1,45,0,58,0,2, { 
0xf4000014,0xb4000008,0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012,0x80000202,0x00000018,0x00000164,0x00000408,0x800000e6,0x8000004c,0x00000803
 } }
-, {1,46,0,58,0,3, { 
0x2c000010,0xf4000014,0xb4000008,0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012,0x80000202,0x00000018,0x00000164,0x00000408,0x800000e6,0x8000004c
 } }
-, {1,46,2,58,0,4, { 
0xb0000040,0xd0000053,0xd0000022,0x20000000,0x60000032,0x60000043,0x20000040,0xe0000042,0x60000002,0x80000001,0x00000020,0x00000003,0x40000052,0x40000040,0xe0000052,0xa0000000,0x80000040,0x20000001,0x20000060,0x80000001,0x40000042,0xc0000043,0x40000022,0x00000003,0x40000042,0xc0000043,0xc0000022,0x00000001,0x40000002,0xc0000043,0x40000062,0x80000001,0x40000042,0x40000042,0x40000002,0x00000002,0x00000040,0x80000002,0x80000000,0x80000002,0x80000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000000,0x00000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000101,0x00000009,0x00000012,0x00000202,0x0000001a,0x00000124,0x0000040c,0x00000026,0x0000004a,0x0000080a,0x00000060,0x00000590,0x00001020,0x0000039a,0x00000132
 } }
-, {1,47,0,58,0,5, { 
0xc8000010,0x2c000010,0xf4000014,0xb4000008,0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012,0x80000202,0x00000018,0x00000164,0x00000408,0x800000e6
 } }
-, {1,47,2,58,0,6, { 
0x20000043,0xb0000040,0xd0000053,0xd0000022,0x20000000,0x60000032,0x60000043,0x20000040,0xe0000042,0x60000002,0x80000001,0x00000020,0x00000003,0x40000052,0x40000040,0xe0000052,0xa0000000,0x80000040,0x20000001,0x20000060,0x80000001,0x40000042,0xc0000043,0x40000022,0x00000003,0x40000042,0xc0000043,0xc0000022,0x00000001,0x40000002,0xc0000043,0x40000062,0x80000001,0x40000042,0x40000042,0x40000002,0x00000002,0x00000040,0x80000002,0x80000000,0x80000002,0x80000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000000,0x00000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000101,0x00000009,0x00000012,0x00000202,0x0000001a,0x00000124,0x0000040c,0x00000026,0x0000004a,0x0000080a,0x00000060,0x00000590,0x00001020,0x0000039a
 } }
-, {1,48,0,58,0,7, { 
0xb800000a,0xc8000010,0x2c000010,0xf4000014,0xb4000008,0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012,0x80000202,0x00000018,0x00000164,0x00000408
 } }
-, {1,48,2,58,0,8, { 
0xe000002a,0x20000043,0xb0000040,0xd0000053,0xd0000022,0x20000000,0x60000032,0x60000043,0x20000040,0xe0000042,0x60000002,0x80000001,0x00000020,0x00000003,0x40000052,0x40000040,0xe0000052,0xa0000000,0x80000040,0x20000001,0x20000060,0x80000001,0x40000042,0xc0000043,0x40000022,0x00000003,0x40000042,0xc0000043,0xc0000022,0x00000001,0x40000002,0xc0000043,0x40000062,0x80000001,0x40000042,0x40000042,0x40000002,0x00000002,0x00000040,0x80000002,0x80000000,0x80000002,0x80000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000000,0x00000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000101,0x00000009,0x00000012,0x00000202,0x0000001a,0x00000124,0x0000040c,0x00000026,0x0000004a,0x0000080a,0x00000060,0x00000590,0x00001020
 } }
-, {1,49,0,58,0,9, { 
0x18000000,0xb800000a,0xc8000010,0x2c000010,0xf4000014,0xb4000008,0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012,0x80000202,0x00000018,0x00000164
 } }
-, {1,49,2,58,0,10, { 
0x60000000,0xe000002a,0x20000043,0xb0000040,0xd0000053,0xd0000022,0x20000000,0x60000032,0x60000043,0x20000040,0xe0000042,0x60000002,0x80000001,0x00000020,0x00000003,0x40000052,0x40000040,0xe0000052,0xa0000000,0x80000040,0x20000001,0x20000060,0x80000001,0x40000042,0xc0000043,0x40000022,0x00000003,0x40000042,0xc0000043,0xc0000022,0x00000001,0x40000002,0xc0000043,0x40000062,0x80000001,0x40000042,0x40000042,0x40000002,0x00000002,0x00000040,0x80000002,0x80000000,0x80000002,0x80000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000000,0x00000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000101,0x00000009,0x00000012,0x00000202,0x0000001a,0x00000124,0x0000040c,0x00000026,0x0000004a,0x0000080a,0x00000060,0x00000590
 } }
-, {1,50,0,65,0,11, { 
0x0800000c,0x18000000,0xb800000a,0xc8000010,0x2c000010,0xf4000014,0xb4000008,0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012,0x80000202,0x00000018
 } }
-, {1,50,2,65,0,12, { 
0x20000030,0x60000000,0xe000002a,0x20000043,0xb0000040,0xd0000053,0xd0000022,0x20000000,0x60000032,0x60000043,0x20000040,0xe0000042,0x60000002,0x80000001,0x00000020,0x00000003,0x40000052,0x40000040,0xe0000052,0xa0000000,0x80000040,0x20000001,0x20000060,0x80000001,0x40000042,0xc0000043,0x40000022,0x00000003,0x40000042,0xc0000043,0xc0000022,0x00000001,0x40000002,0xc0000043,0x40000062,0x80000001,0x40000042,0x40000042,0x40000002,0x00000002,0x00000040,0x80000002,0x80000000,0x80000002,0x80000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000000,0x00000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000101,0x00000009,0x00000012,0x00000202,0x0000001a,0x00000124,0x0000040c,0x00000026,0x0000004a,0x0000080a,0x00000060
 } }
-, {1,51,0,65,0,13, { 
0xe8000000,0x0800000c,0x18000000,0xb800000a,0xc8000010,0x2c000010,0xf4000014,0xb4000008,0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012,0x80000202
 } }
-, {1,51,2,65,0,14, { 
0xa0000003,0x20000030,0x60000000,0xe000002a,0x20000043,0xb0000040,0xd0000053,0xd0000022,0x20000000,0x60000032,0x60000043,0x20000040,0xe0000042,0x60000002,0x80000001,0x00000020,0x00000003,0x40000052,0x40000040,0xe0000052,0xa0000000,0x80000040,0x20000001,0x20000060,0x80000001,0x40000042,0xc0000043,0x40000022,0x00000003,0x40000042,0xc0000043,0xc0000022,0x00000001,0x40000002,0xc0000043,0x40000062,0x80000001,0x40000042,0x40000042,0x40000002,0x00000002,0x00000040,0x80000002,0x80000000,0x80000002,0x80000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000000,0x00000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000101,0x00000009,0x00000012,0x00000202,0x0000001a,0x00000124,0x0000040c,0x00000026,0x0000004a,0x0000080a
 } }
-, {1,52,0,65,0,15, { 
0x04000010,0xe8000000,0x0800000c,0x18000000,0xb800000a,0xc8000010,0x2c000010,0xf4000014,0xb4000008,0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012
 } }
-, {2,45,0,58,0,16, { 
0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107,0x00000089,0x00000014,0x8000024b,0x0000011b,0x8000016d,0x8000041a,0x000002e4,0x80000054,0x00000967
 } }
-, {2,46,0,58,0,17, { 
0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107,0x00000089,0x00000014,0x8000024b,0x0000011b,0x8000016d,0x8000041a,0x000002e4,0x80000054
 } }
-, {2,46,2,58,0,18, { 
0x90000070,0xb0000053,0x30000008,0x00000043,0xd0000072,0xb0000010,0xf0000062,0xc0000042,0x00000030,0xe0000042,0x20000060,0xe0000041,0x20000050,0xc0000041,0xe0000072,0xa0000003,0xc0000012,0x60000041,0xc0000032,0x20000001,0xc0000002,0xe0000042,0x60000042,0x80000002,0x00000000,0x00000000,0x80000000,0x00000002,0x00000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000001,0x00000060,0x80000003,0x40000002,0xc0000040,0xc0000002,0x80000000,0x80000000,0x80000002,0x00000040,0x00000002,0x80000000,0x80000000,0x80000000,0x00000002,0x00000040,0x00000000,0x80000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000105,0x00000089,0x00000016,0x0000020b,0x0000011b,0x0000012d,0x0000041e,0x00000224,0x00000050,0x0000092e,0x0000046c,0x000005b6,0x0000106a,0x00000b90,0x00000152
 } }
-, {2,47,0,58,0,19, { 
0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107,0x00000089,0x00000014,0x8000024b,0x0000011b,0x8000016d,0x8000041a,0x000002e4
 } }
-, {2,48,0,58,0,20, { 
0xbc00001a,0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107,0x00000089,0x00000014,0x8000024b,0x0000011b,0x8000016d,0x8000041a
 } }
-, {2,49,0,58,0,21, { 
0x3c000004,0xbc00001a,0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107,0x00000089,0x00000014,0x8000024b,0x0000011b,0x8000016d
 } }
-, {2,49,2,58,0,22, { 
0xf0000010,0xf000006a,0x80000040,0x90000070,0xb0000053,0x30000008,0x00000043,0xd0000072,0xb0000010,0xf0000062,0xc0000042,0x00000030,0xe0000042,0x20000060,0xe0000041,0x20000050,0xc0000041,0xe0000072,0xa0000003,0xc0000012,0x60000041,0xc0000032,0x20000001,0xc0000002,0xe0000042,0x60000042,0x80000002,0x00000000,0x00000000,0x80000000,0x00000002,0x00000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000001,0x00000060,0x80000003,0x40000002,0xc0000040,0xc0000002,0x80000000,0x80000000,0x80000002,0x00000040,0x00000002,0x80000000,0x80000000,0x80000000,0x00000002,0x00000040,0x00000000,0x80000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000105,0x00000089,0x00000016,0x0000020b,0x0000011b,0x0000012d,0x0000041e,0x00000224,0x00000050,0x0000092e,0x0000046c,0x000005b6
 } }
-, {2,50,0,65,0,23, { 
0xb400001c,0x3c000004,0xbc00001a,0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107,0x00000089,0x00000014,0x8000024b,0x0000011b
 } }
-, {2,50,2,65,0,24, { 
0xd0000072,0xf0000010,0xf000006a,0x80000040,0x90000070,0xb0000053,0x30000008,0x00000043,0xd0000072,0xb0000010,0xf0000062,0xc0000042,0x00000030,0xe0000042,0x20000060,0xe0000041,0x20000050,0xc0000041,0xe0000072,0xa0000003,0xc0000012,0x60000041,0xc0000032,0x20000001,0xc0000002,0xe0000042,0x60000042,0x80000002,0x00000000,0x00000000,0x80000000,0x00000002,0x00000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000001,0x00000060,0x80000003,0x40000002,0xc0000040,0xc0000002,0x80000000,0x80000000,0x80000002,0x00000040,0x00000002,0x80000000,0x80000000,0x80000000,0x00000002,0x00000040,0x00000000,0x80000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000105,0x00000089,0x00000016,0x0000020b,0x0000011b,0x0000012d,0x0000041e,0x00000224,0x00000050,0x0000092e,0x0000046c
 } }
-, {2,51,0,65,0,25, { 
0xc0000010,0xb400001c,0x3c000004,0xbc00001a,0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107,0x00000089,0x00000014,0x8000024b
 } }
-, {2,51,2,65,0,26, { 
0x00000043,0xd0000072,0xf0000010,0xf000006a,0x80000040,0x90000070,0xb0000053,0x30000008,0x00000043,0xd0000072,0xb0000010,0xf0000062,0xc0000042,0x00000030,0xe0000042,0x20000060,0xe0000041,0x20000050,0xc0000041,0xe0000072,0xa0000003,0xc0000012,0x60000041,0xc0000032,0x20000001,0xc0000002,0xe0000042,0x60000042,0x80000002,0x00000000,0x00000000,0x80000000,0x00000002,0x00000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000001,0x00000060,0x80000003,0x40000002,0xc0000040,0xc0000002,0x80000000,0x80000000,0x80000002,0x00000040,0x00000002,0x80000000,0x80000000,0x80000000,0x00000002,0x00000040,0x00000000,0x80000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000105,0x00000089,0x00000016,0x0000020b,0x0000011b,0x0000012d,0x0000041e,0x00000224,0x00000050,0x0000092e
 } }
-, {2,52,0,65,0,27, { 
0x0c000002,0xc0000010,0xb400001c,0x3c000004,0xbc00001a,0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107,0x00000089,0x00000014
 } }
-, {2,53,0,65,0,28, { 
0xcc000014,0x0c000002,0xc0000010,0xb400001c,0x3c000004,0xbc00001a,0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107,0x00000089
 } }
-, {2,54,0,65,0,29, { 
0x0400001c,0xcc000014,0x0c000002,0xc0000010,0xb400001c,0x3c000004,0xbc00001a,0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107
 } }
-, {2,55,0,65,0,30, { 
0x00000010,0x0400001c,0xcc000014,0x0c000002,0xc0000010,0xb400001c,0x3c000004,0xbc00001a,0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b
 } }
-, {2,56,0,65,0,31, { 
0x2600001a,0x00000010,0x0400001c,0xcc000014,0x0c000002,0xc0000010,0xb400001c,0x3c000004,0xbc00001a,0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046
 } }
-, {0,0,0,0,0,0, 
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}
-};
-void ubc_check(const uint32_t W[80], uint32_t dvmask[1])
-{
-       uint32_t mask = ~((uint32_t)(0));
-       mask &= (((((W[44]^W[45])>>29)&1)-1) | 
~(DV_I_48_0_bit|DV_I_51_0_bit|DV_I_52_0_bit|DV_II_45_0_bit|DV_II_46_0_bit|DV_II_50_0_bit|DV_II_51_0_bit));
-       mask &= (((((W[49]^W[50])>>29)&1)-1) | 
~(DV_I_46_0_bit|DV_II_45_0_bit|DV_II_50_0_bit|DV_II_51_0_bit|DV_II_55_0_bit|DV_II_56_0_bit));
-       mask &= (((((W[48]^W[49])>>29)&1)-1) | 
~(DV_I_45_0_bit|DV_I_52_0_bit|DV_II_49_0_bit|DV_II_50_0_bit|DV_II_54_0_bit|DV_II_55_0_bit));
-       mask &= ((((W[47]^(W[50]>>25))&(1<<4))-(1<<4)) | 
~(DV_I_47_0_bit|DV_I_49_0_bit|DV_I_51_0_bit|DV_II_45_0_bit|DV_II_51_0_bit|DV_II_56_0_bit));
-       mask &= (((((W[47]^W[48])>>29)&1)-1) | 
~(DV_I_44_0_bit|DV_I_51_0_bit|DV_II_48_0_bit|DV_II_49_0_bit|DV_II_53_0_bit|DV_II_54_0_bit));
-       mask &= (((((W[46]>>4)^(W[49]>>29))&1)-1) | 
~(DV_I_46_0_bit|DV_I_48_0_bit|DV_I_50_0_bit|DV_I_52_0_bit|DV_II_50_0_bit|DV_II_55_0_bit));
-       mask &= (((((W[46]^W[47])>>29)&1)-1) | 
~(DV_I_43_0_bit|DV_I_50_0_bit|DV_II_47_0_bit|DV_II_48_0_bit|DV_II_52_0_bit|DV_II_53_0_bit));
-       mask &= (((((W[45]>>4)^(W[48]>>29))&1)-1) | 
~(DV_I_45_0_bit|DV_I_47_0_bit|DV_I_49_0_bit|DV_I_51_0_bit|DV_II_49_0_bit|DV_II_54_0_bit));
-       mask &= (((((W[45]^W[46])>>29)&1)-1) | 
~(DV_I_49_0_bit|DV_I_52_0_bit|DV_II_46_0_bit|DV_II_47_0_bit|DV_II_51_0_bit|DV_II_52_0_bit));
-       mask &= (((((W[44]>>4)^(W[47]>>29))&1)-1) | 
~(DV_I_44_0_bit|DV_I_46_0_bit|DV_I_48_0_bit|DV_I_50_0_bit|DV_II_48_0_bit|DV_II_53_0_bit));
-       mask &= (((((W[43]>>4)^(W[46]>>29))&1)-1) | 
~(DV_I_43_0_bit|DV_I_45_0_bit|DV_I_47_0_bit|DV_I_49_0_bit|DV_II_47_0_bit|DV_II_52_0_bit));
-       mask &= (((((W[43]^W[44])>>29)&1)-1) | 
~(DV_I_47_0_bit|DV_I_50_0_bit|DV_I_51_0_bit|DV_II_45_0_bit|DV_II_49_0_bit|DV_II_50_0_bit));
-       mask &= (((((W[42]>>4)^(W[45]>>29))&1)-1) | 
~(DV_I_44_0_bit|DV_I_46_0_bit|DV_I_48_0_bit|DV_I_52_0_bit|DV_II_46_0_bit|DV_II_51_0_bit));
-       mask &= (((((W[41]>>4)^(W[44]>>29))&1)-1) | 
~(DV_I_43_0_bit|DV_I_45_0_bit|DV_I_47_0_bit|DV_I_51_0_bit|DV_II_45_0_bit|DV_II_50_0_bit));
-       mask &= (((((W[40]^W[41])>>29)&1)-1) | 
~(DV_I_44_0_bit|DV_I_47_0_bit|DV_I_48_0_bit|DV_II_46_0_bit|DV_II_47_0_bit|DV_II_56_0_bit));
-       mask &= (((((W[54]^W[55])>>29)&1)-1) | 
~(DV_I_51_0_bit|DV_II_47_0_bit|DV_II_50_0_bit|DV_II_55_0_bit|DV_II_56_0_bit));
-       mask &= (((((W[53]^W[54])>>29)&1)-1) | 
~(DV_I_50_0_bit|DV_II_46_0_bit|DV_II_49_0_bit|DV_II_54_0_bit|DV_II_55_0_bit));
-       mask &= (((((W[52]^W[53])>>29)&1)-1) | 
~(DV_I_49_0_bit|DV_II_45_0_bit|DV_II_48_0_bit|DV_II_53_0_bit|DV_II_54_0_bit));
-       mask &= ((((W[50]^(W[53]>>25))&(1<<4))-(1<<4)) | 
~(DV_I_50_0_bit|DV_I_52_0_bit|DV_II_46_0_bit|DV_II_48_0_bit|DV_II_54_0_bit));
-       mask &= (((((W[50]^W[51])>>29)&1)-1) | 
~(DV_I_47_0_bit|DV_II_46_0_bit|DV_II_51_0_bit|DV_II_52_0_bit|DV_II_56_0_bit));
-       mask &= ((((W[49]^(W[52]>>25))&(1<<4))-(1<<4)) | 
~(DV_I_49_0_bit|DV_I_51_0_bit|DV_II_45_0_bit|DV_II_47_0_bit|DV_II_53_0_bit));
-       mask &= ((((W[48]^(W[51]>>25))&(1<<4))-(1<<4)) | 
~(DV_I_48_0_bit|DV_I_50_0_bit|DV_I_52_0_bit|DV_II_46_0_bit|DV_II_52_0_bit));
-       mask &= (((((W[42]^W[43])>>29)&1)-1) | 
~(DV_I_46_0_bit|DV_I_49_0_bit|DV_I_50_0_bit|DV_II_48_0_bit|DV_II_49_0_bit));
-       mask &= (((((W[41]^W[42])>>29)&1)-1) | 
~(DV_I_45_0_bit|DV_I_48_0_bit|DV_I_49_0_bit|DV_II_47_0_bit|DV_II_48_0_bit));
-       mask &= (((((W[40]>>4)^(W[43]>>29))&1)-1) | 
~(DV_I_44_0_bit|DV_I_46_0_bit|DV_I_50_0_bit|DV_II_49_0_bit|DV_II_56_0_bit));
-       mask &= (((((W[39]>>4)^(W[42]>>29))&1)-1) | 
~(DV_I_43_0_bit|DV_I_45_0_bit|DV_I_49_0_bit|DV_II_48_0_bit|DV_II_55_0_bit));
-       if (mask & 
(DV_I_44_0_bit|DV_I_48_0_bit|DV_II_47_0_bit|DV_II_54_0_bit|DV_II_56_0_bit))
-               mask &= (((((W[38]>>4)^(W[41]>>29))&1)-1) | 
~(DV_I_44_0_bit|DV_I_48_0_bit|DV_II_47_0_bit|DV_II_54_0_bit|DV_II_56_0_bit));
-       mask &= (((((W[37]>>4)^(W[40]>>29))&1)-1) | 
~(DV_I_43_0_bit|DV_I_47_0_bit|DV_II_46_0_bit|DV_II_53_0_bit|DV_II_55_0_bit));
-       if (mask & (DV_I_52_0_bit|DV_II_48_0_bit|DV_II_51_0_bit|DV_II_56_0_bit))
-               mask &= (((((W[55]^W[56])>>29)&1)-1) | 
~(DV_I_52_0_bit|DV_II_48_0_bit|DV_II_51_0_bit|DV_II_56_0_bit));
-       if (mask & (DV_I_52_0_bit|DV_II_48_0_bit|DV_II_50_0_bit|DV_II_56_0_bit))
-               mask &= ((((W[52]^(W[55]>>25))&(1<<4))-(1<<4)) | 
~(DV_I_52_0_bit|DV_II_48_0_bit|DV_II_50_0_bit|DV_II_56_0_bit));
-       if (mask & (DV_I_51_0_bit|DV_II_47_0_bit|DV_II_49_0_bit|DV_II_55_0_bit))
-               mask &= ((((W[51]^(W[54]>>25))&(1<<4))-(1<<4)) | 
~(DV_I_51_0_bit|DV_II_47_0_bit|DV_II_49_0_bit|DV_II_55_0_bit));
-       if (mask & (DV_I_48_0_bit|DV_II_47_0_bit|DV_II_52_0_bit|DV_II_53_0_bit))
-               mask &= (((((W[51]^W[52])>>29)&1)-1) | 
~(DV_I_48_0_bit|DV_II_47_0_bit|DV_II_52_0_bit|DV_II_53_0_bit));
-       if (mask & (DV_I_46_0_bit|DV_I_49_0_bit|DV_II_45_0_bit|DV_II_48_0_bit))
-               mask &= (((((W[36]>>4)^(W[40]>>29))&1)-1) | 
~(DV_I_46_0_bit|DV_I_49_0_bit|DV_II_45_0_bit|DV_II_48_0_bit));
-       if (mask & (DV_I_52_0_bit|DV_II_48_0_bit|DV_II_49_0_bit))
-               mask &= ((0-(((W[53]^W[56])>>29)&1)) | 
~(DV_I_52_0_bit|DV_II_48_0_bit|DV_II_49_0_bit));
-       if (mask & (DV_I_50_0_bit|DV_II_46_0_bit|DV_II_47_0_bit))
-               mask &= ((0-(((W[51]^W[54])>>29)&1)) | 
~(DV_I_50_0_bit|DV_II_46_0_bit|DV_II_47_0_bit));
-       if (mask & (DV_I_49_0_bit|DV_I_51_0_bit|DV_II_45_0_bit))
-               mask &= ((0-(((W[50]^W[52])>>29)&1)) | 
~(DV_I_49_0_bit|DV_I_51_0_bit|DV_II_45_0_bit));
-       if (mask & (DV_I_48_0_bit|DV_I_50_0_bit|DV_I_52_0_bit))
-               mask &= ((0-(((W[49]^W[51])>>29)&1)) | 
~(DV_I_48_0_bit|DV_I_50_0_bit|DV_I_52_0_bit));
-       if (mask & (DV_I_47_0_bit|DV_I_49_0_bit|DV_I_51_0_bit))
-               mask &= ((0-(((W[48]^W[50])>>29)&1)) | 
~(DV_I_47_0_bit|DV_I_49_0_bit|DV_I_51_0_bit));
-       if (mask & (DV_I_46_0_bit|DV_I_48_0_bit|DV_I_50_0_bit))
-               mask &= ((0-(((W[47]^W[49])>>29)&1)) | 
~(DV_I_46_0_bit|DV_I_48_0_bit|DV_I_50_0_bit));
-       if (mask & (DV_I_45_0_bit|DV_I_47_0_bit|DV_I_49_0_bit))
-               mask &= ((0-(((W[46]^W[48])>>29)&1)) | 
~(DV_I_45_0_bit|DV_I_47_0_bit|DV_I_49_0_bit));
-       mask &= ((((W[45]^W[47])&(1<<6))-(1<<6)) | 
~(DV_I_47_2_bit|DV_I_49_2_bit|DV_I_51_2_bit));
-       if (mask & (DV_I_44_0_bit|DV_I_46_0_bit|DV_I_48_0_bit))
-               mask &= ((0-(((W[45]^W[47])>>29)&1)) | 
~(DV_I_44_0_bit|DV_I_46_0_bit|DV_I_48_0_bit));
-       mask &= (((((W[44]^W[46])>>6)&1)-1) | 
~(DV_I_46_2_bit|DV_I_48_2_bit|DV_I_50_2_bit));
-       if (mask & (DV_I_43_0_bit|DV_I_45_0_bit|DV_I_47_0_bit))
-               mask &= ((0-(((W[44]^W[46])>>29)&1)) | 
~(DV_I_43_0_bit|DV_I_45_0_bit|DV_I_47_0_bit));
-       mask &= ((0-((W[41]^(W[42]>>5))&(1<<1))) | 
~(DV_I_48_2_bit|DV_II_46_2_bit|DV_II_51_2_bit));
-       mask &= ((0-((W[40]^(W[41]>>5))&(1<<1))) | 
~(DV_I_47_2_bit|DV_I_51_2_bit|DV_II_50_2_bit));
-       if (mask & (DV_I_44_0_bit|DV_I_46_0_bit|DV_II_56_0_bit))
-               mask &= ((0-(((W[40]^W[42])>>4)&1)) | 
~(DV_I_44_0_bit|DV_I_46_0_bit|DV_II_56_0_bit));
-       mask &= ((0-((W[39]^(W[40]>>5))&(1<<1))) | 
~(DV_I_46_2_bit|DV_I_50_2_bit|DV_II_49_2_bit));
-       if (mask & (DV_I_43_0_bit|DV_I_45_0_bit|DV_II_55_0_bit))
-               mask &= ((0-(((W[39]^W[41])>>4)&1)) | 
~(DV_I_43_0_bit|DV_I_45_0_bit|DV_II_55_0_bit));
-       if (mask & (DV_I_44_0_bit|DV_II_54_0_bit|DV_II_56_0_bit))
-               mask &= ((0-(((W[38]^W[40])>>4)&1)) | 
~(DV_I_44_0_bit|DV_II_54_0_bit|DV_II_56_0_bit));
-       if (mask & (DV_I_43_0_bit|DV_II_53_0_bit|DV_II_55_0_bit))
-               mask &= ((0-(((W[37]^W[39])>>4)&1)) | 
~(DV_I_43_0_bit|DV_II_53_0_bit|DV_II_55_0_bit));
-       mask &= ((0-((W[36]^(W[37]>>5))&(1<<1))) | 
~(DV_I_47_2_bit|DV_I_50_2_bit|DV_II_46_2_bit));
-       if (mask & (DV_I_45_0_bit|DV_I_48_0_bit|DV_II_47_0_bit))
-               mask &= (((((W[35]>>4)^(W[39]>>29))&1)-1) | 
~(DV_I_45_0_bit|DV_I_48_0_bit|DV_II_47_0_bit));
-       if (mask & (DV_I_48_0_bit|DV_II_48_0_bit))
-               mask &= ((0-((W[63]^(W[64]>>5))&(1<<0))) | 
~(DV_I_48_0_bit|DV_II_48_0_bit));
-       if (mask & (DV_I_45_0_bit|DV_II_45_0_bit))
-               mask &= ((0-((W[63]^(W[64]>>5))&(1<<1))) | 
~(DV_I_45_0_bit|DV_II_45_0_bit));
-       if (mask & (DV_I_47_0_bit|DV_II_47_0_bit))
-               mask &= ((0-((W[62]^(W[63]>>5))&(1<<0))) | 
~(DV_I_47_0_bit|DV_II_47_0_bit));
-       if (mask & (DV_I_46_0_bit|DV_II_46_0_bit))
-               mask &= ((0-((W[61]^(W[62]>>5))&(1<<0))) | 
~(DV_I_46_0_bit|DV_II_46_0_bit));
-       mask &= ((0-((W[61]^(W[62]>>5))&(1<<2))) | 
~(DV_I_46_2_bit|DV_II_46_2_bit));
-       if (mask & (DV_I_45_0_bit|DV_II_45_0_bit))
-               mask &= ((0-((W[60]^(W[61]>>5))&(1<<0))) | 
~(DV_I_45_0_bit|DV_II_45_0_bit));
-       if (mask & (DV_II_51_0_bit|DV_II_54_0_bit))
-               mask &= (((((W[58]^W[59])>>29)&1)-1) | 
~(DV_II_51_0_bit|DV_II_54_0_bit));
-       if (mask & (DV_II_50_0_bit|DV_II_53_0_bit))
-               mask &= (((((W[57]^W[58])>>29)&1)-1) | 
~(DV_II_50_0_bit|DV_II_53_0_bit));
-       if (mask & (DV_II_52_0_bit|DV_II_54_0_bit))
-               mask &= ((((W[56]^(W[59]>>25))&(1<<4))-(1<<4)) | 
~(DV_II_52_0_bit|DV_II_54_0_bit));
-       if (mask & (DV_II_51_0_bit|DV_II_52_0_bit))
-               mask &= ((0-(((W[56]^W[59])>>29)&1)) | 
~(DV_II_51_0_bit|DV_II_52_0_bit));
-       if (mask & (DV_II_49_0_bit|DV_II_52_0_bit))
-               mask &= (((((W[56]^W[57])>>29)&1)-1) | 
~(DV_II_49_0_bit|DV_II_52_0_bit));
-       if (mask & (DV_II_51_0_bit|DV_II_53_0_bit))
-               mask &= ((((W[55]^(W[58]>>25))&(1<<4))-(1<<4)) | 
~(DV_II_51_0_bit|DV_II_53_0_bit));
-       if (mask & (DV_II_50_0_bit|DV_II_52_0_bit))
-               mask &= ((((W[54]^(W[57]>>25))&(1<<4))-(1<<4)) | 
~(DV_II_50_0_bit|DV_II_52_0_bit));
-       if (mask & (DV_II_49_0_bit|DV_II_51_0_bit))
-               mask &= ((((W[53]^(W[56]>>25))&(1<<4))-(1<<4)) | 
~(DV_II_49_0_bit|DV_II_51_0_bit));
-       mask &= ((((W[51]^(W[50]>>5))&(1<<1))-(1<<1)) | 
~(DV_I_50_2_bit|DV_II_46_2_bit));
-       mask &= ((((W[48]^W[50])&(1<<6))-(1<<6)) | 
~(DV_I_50_2_bit|DV_II_46_2_bit));
-       if (mask & (DV_I_51_0_bit|DV_I_52_0_bit))
-               mask &= ((0-(((W[48]^W[55])>>29)&1)) | 
~(DV_I_51_0_bit|DV_I_52_0_bit));
-       mask &= ((((W[47]^W[49])&(1<<6))-(1<<6)) | 
~(DV_I_49_2_bit|DV_I_51_2_bit));
-       mask &= ((((W[48]^(W[47]>>5))&(1<<1))-(1<<1)) | 
~(DV_I_47_2_bit|DV_II_51_2_bit));
-       mask &= ((((W[46]^W[48])&(1<<6))-(1<<6)) | 
~(DV_I_48_2_bit|DV_I_50_2_bit));
-       mask &= ((((W[47]^(W[46]>>5))&(1<<1))-(1<<1)) | 
~(DV_I_46_2_bit|DV_II_50_2_bit));
-       mask &= ((0-((W[44]^(W[45]>>5))&(1<<1))) | 
~(DV_I_51_2_bit|DV_II_49_2_bit));
-       mask &= ((((W[43]^W[45])&(1<<6))-(1<<6)) | 
~(DV_I_47_2_bit|DV_I_49_2_bit));
-       mask &= (((((W[42]^W[44])>>6)&1)-1) | ~(DV_I_46_2_bit|DV_I_48_2_bit));
-       mask &= ((((W[43]^(W[42]>>5))&(1<<1))-(1<<1)) | 
~(DV_II_46_2_bit|DV_II_51_2_bit));
-       mask &= ((((W[42]^(W[41]>>5))&(1<<1))-(1<<1)) | 
~(DV_I_51_2_bit|DV_II_50_2_bit));
-       mask &= ((((W[41]^(W[40]>>5))&(1<<1))-(1<<1)) | 
~(DV_I_50_2_bit|DV_II_49_2_bit));
-       if (mask & (DV_I_52_0_bit|DV_II_51_0_bit))
-               mask &= ((((W[39]^(W[43]>>25))&(1<<4))-(1<<4)) | 
~(DV_I_52_0_bit|DV_II_51_0_bit));
-       if (mask & (DV_I_51_0_bit|DV_II_50_0_bit))
-               mask &= ((((W[38]^(W[42]>>25))&(1<<4))-(1<<4)) | 
~(DV_I_51_0_bit|DV_II_50_0_bit));
-       if (mask & (DV_I_48_2_bit|DV_I_51_2_bit))
-               mask &= ((0-((W[37]^(W[38]>>5))&(1<<1))) | 
~(DV_I_48_2_bit|DV_I_51_2_bit));
-       if (mask & (DV_I_50_0_bit|DV_II_49_0_bit))
-               mask &= ((((W[37]^(W[41]>>25))&(1<<4))-(1<<4)) | 
~(DV_I_50_0_bit|DV_II_49_0_bit));
-       if (mask & (DV_II_52_0_bit|DV_II_54_0_bit))
-               mask &= ((0-((W[36]^W[38])&(1<<4))) | 
~(DV_II_52_0_bit|DV_II_54_0_bit));
-       mask &= ((0-((W[35]^(W[36]>>5))&(1<<1))) | 
~(DV_I_46_2_bit|DV_I_49_2_bit));
-       if (mask & (DV_I_51_0_bit|DV_II_47_0_bit))
-               mask &= ((((W[35]^(W[39]>>25))&(1<<3))-(1<<3)) | 
~(DV_I_51_0_bit|DV_II_47_0_bit));
-if (mask) {
-
-       if (mask & DV_I_43_0_bit)
-                if (
-                           !((W[61]^(W[62]>>5)) & (1<<1))
-                        || !(!((W[59]^(W[63]>>25)) & (1<<5)))
-                        || !((W[58]^(W[63]>>30)) & (1<<0))
-                )  mask &= ~DV_I_43_0_bit;
-       if (mask & DV_I_44_0_bit)
-                if (
-                           !((W[62]^(W[63]>>5)) & (1<<1))
-                        || !(!((W[60]^(W[64]>>25)) & (1<<5)))
-                        || !((W[59]^(W[64]>>30)) & (1<<0))
-                )  mask &= ~DV_I_44_0_bit;
-       if (mask & DV_I_46_2_bit)
-               mask &= ((~((W[40]^W[42])>>2)) | ~DV_I_46_2_bit);
-       if (mask & DV_I_47_2_bit)
-                if (
-                           !((W[62]^(W[63]>>5)) & (1<<2))
-                        || !(!((W[41]^W[43]) & (1<<6)))
-                )  mask &= ~DV_I_47_2_bit;
-       if (mask & DV_I_48_2_bit)
-                if (
-                           !((W[63]^(W[64]>>5)) & (1<<2))
-                        || !(!((W[48]^(W[49]<<5)) & (1<<6)))
-                )  mask &= ~DV_I_48_2_bit;
-       if (mask & DV_I_49_2_bit)
-                if (
-                           !(!((W[49]^(W[50]<<5)) & (1<<6)))
-                        || !((W[42]^W[50]) & (1<<1))
-                        || !(!((W[39]^(W[40]<<5)) & (1<<6)))
-                        || !((W[38]^W[40]) & (1<<1))
-                )  mask &= ~DV_I_49_2_bit;
-       if (mask & DV_I_50_0_bit)
-               mask &= ((((W[36]^W[37])<<7)) | ~DV_I_50_0_bit);
-       if (mask & DV_I_50_2_bit)
-               mask &= ((((W[43]^W[51])<<11)) | ~DV_I_50_2_bit);
-       if (mask & DV_I_51_0_bit)
-               mask &= ((((W[37]^W[38])<<9)) | ~DV_I_51_0_bit);
-       if (mask & DV_I_51_2_bit)
-                if (
-                           !(!((W[51]^(W[52]<<5)) & (1<<6)))
-                        || !(!((W[49]^W[51]) & (1<<6)))
-                        || !(!((W[37]^(W[37]>>5)) & (1<<1)))
-                        || !(!((W[35]^(W[39]>>25)) & (1<<5)))
-                )  mask &= ~DV_I_51_2_bit;
-       if (mask & DV_I_52_0_bit)
-               mask &= ((((W[38]^W[39])<<11)) | ~DV_I_52_0_bit);
-       if (mask & DV_II_46_2_bit)
-               mask &= ((((W[47]^W[51])<<17)) | ~DV_II_46_2_bit);
-       if (mask & DV_II_48_0_bit)
-                if (
-                           !(!((W[36]^(W[40]>>25)) & (1<<3)))
-                        || !((W[35]^(W[40]<<2)) & (1<<30))
-                )  mask &= ~DV_II_48_0_bit;
-       if (mask & DV_II_49_0_bit)
-                if (
-                           !(!((W[37]^(W[41]>>25)) & (1<<3)))
-                        || !((W[36]^(W[41]<<2)) & (1<<30))
-                )  mask &= ~DV_II_49_0_bit;
-       if (mask & DV_II_49_2_bit)
-                if (
-                           !(!((W[53]^(W[54]<<5)) & (1<<6)))
-                        || !(!((W[51]^W[53]) & (1<<6)))
-                        || !((W[50]^W[54]) & (1<<1))
-                        || !(!((W[45]^(W[46]<<5)) & (1<<6)))
-                        || !(!((W[37]^(W[41]>>25)) & (1<<5)))
-                        || !((W[36]^(W[41]>>30)) & (1<<0))
-                )  mask &= ~DV_II_49_2_bit;
-       if (mask & DV_II_50_0_bit)
-                if (
-                           !((W[55]^W[58]) & (1<<29))
-                        || !(!((W[38]^(W[42]>>25)) & (1<<3)))
-                        || !((W[37]^(W[42]<<2)) & (1<<30))
-                )  mask &= ~DV_II_50_0_bit;
-       if (mask & DV_II_50_2_bit)
-                if (
-                           !(!((W[54]^(W[55]<<5)) & (1<<6)))
-                        || !(!((W[52]^W[54]) & (1<<6)))
-                        || !((W[51]^W[55]) & (1<<1))
-                        || !((W[45]^W[47]) & (1<<1))
-                        || !(!((W[38]^(W[42]>>25)) & (1<<5)))
-                        || !((W[37]^(W[42]>>30)) & (1<<0))
-                )  mask &= ~DV_II_50_2_bit;
-       if (mask & DV_II_51_0_bit)
-                if (
-                           !(!((W[39]^(W[43]>>25)) & (1<<3)))
-                        || !((W[38]^(W[43]<<2)) & (1<<30))
-                )  mask &= ~DV_II_51_0_bit;
-       if (mask & DV_II_51_2_bit)
-                if (
-                           !(!((W[55]^(W[56]<<5)) & (1<<6)))
-                        || !(!((W[53]^W[55]) & (1<<6)))
-                        || !((W[52]^W[56]) & (1<<1))
-                        || !((W[46]^W[48]) & (1<<1))
-                        || !(!((W[39]^(W[43]>>25)) & (1<<5)))
-                        || !((W[38]^(W[43]>>30)) & (1<<0))
-                )  mask &= ~DV_II_51_2_bit;
-       if (mask & DV_II_52_0_bit)
-                if (
-                           !(!((W[59]^W[60]) & (1<<29)))
-                        || !(!((W[40]^(W[44]>>25)) & (1<<3)))
-                        || !(!((W[40]^(W[44]>>25)) & (1<<4)))
-                        || !((W[39]^(W[44]<<2)) & (1<<30))
-                )  mask &= ~DV_II_52_0_bit;
-       if (mask & DV_II_53_0_bit)
-                if (
-                           !((W[58]^W[61]) & (1<<29))
-                        || !(!((W[57]^(W[61]>>25)) & (1<<4)))
-                        || !(!((W[41]^(W[45]>>25)) & (1<<3)))
-                        || !(!((W[41]^(W[45]>>25)) & (1<<4)))
-                )  mask &= ~DV_II_53_0_bit;
-       if (mask & DV_II_54_0_bit)
-                if (
-                           !(!((W[58]^(W[62]>>25)) & (1<<4)))
-                        || !(!((W[42]^(W[46]>>25)) & (1<<3)))
-                        || !(!((W[42]^(W[46]>>25)) & (1<<4)))
-                )  mask &= ~DV_II_54_0_bit;
-       if (mask & DV_II_55_0_bit)
-                if (
-                           !(!((W[59]^(W[63]>>25)) & (1<<4)))
-                        || !(!((W[57]^(W[59]>>25)) & (1<<4)))
-                        || !(!((W[43]^(W[47]>>25)) & (1<<3)))
-                        || !(!((W[43]^(W[47]>>25)) & (1<<4)))
-                )  mask &= ~DV_II_55_0_bit;
-       if (mask & DV_II_56_0_bit)
-                if (
-                           !(!((W[60]^(W[64]>>25)) & (1<<4)))
-                        || !(!((W[44]^(W[48]>>25)) & (1<<3)))
-                        || !(!((W[44]^(W[48]>>25)) & (1<<4)))
-                )  mask &= ~DV_II_56_0_bit;
-}
-
-       dvmask[0]=mask;
-}
-
-#ifdef SHA1DC_CUSTOM_TRAILING_INCLUDE_UBC_CHECK_C
-#include SHA1DC_CUSTOM_TRAILING_INCLUDE_UBC_CHECK_C
-#endif
diff --git a/sha1dc/ubc_check.h b/sha1dc/ubc_check.h
deleted file mode 100644
index d7e17dc734..0000000000
--- a/sha1dc/ubc_check.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/***
-* Copyright 2017 Marc Stevens <m...@marc-stevens.nl>, Dan Shumow 
<dan...@microsoft.com>
-* Distributed under the MIT Software License.
-* See accompanying file LICENSE.txt or copy at
-* https://opensource.org/licenses/MIT
-***/
-
-/*
-// this file was generated by the 'parse_bitrel' program in the tools section
-// using the data files from directory 'tools/data/3565'
-//
-// sha1_dvs contains a list of SHA-1 Disturbance Vectors (DV) to check
-// dvType, dvK and dvB define the DV: I(K,B) or II(K,B) (see the paper)
-// dm[80] is the expanded message block XOR-difference defined by the DV
-// testt is the step to do the recompression from for collision detection
-// maski and maskb define the bit to check for each DV in the dvmask returned 
by ubc_check
-//
-// ubc_check takes as input an expanded message block and verifies the 
unavoidable bitconditions for all listed DVs
-// it returns a dvmask where each bit belonging to a DV is set if all 
unavoidable bitconditions for that DV have been met
-// thus one needs to do the recompression check for each DV that has its bit 
set
-*/
-
-#ifndef SHA1DC_UBC_CHECK_H
-#define SHA1DC_UBC_CHECK_H
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#ifndef SHA1DC_NO_STANDARD_INCLUDES
-#include <stdint.h>
-#endif
-
-#define DVMASKSIZE 1
-typedef struct { int dvType; int dvK; int dvB; int testt; int maski; int 
maskb; uint32_t dm[80]; } dv_info_t;
-extern dv_info_t sha1_dvs[];
-void ubc_check(const uint32_t W[80], uint32_t dvmask[DVMASKSIZE]);
-
-#define DOSTORESTATE58
-#define DOSTORESTATE65
-
-#define CHECK_DVMASK(_DVMASK) (0 != _DVMASK[0])
-
-#if defined(__cplusplus)
-}
-#endif
-
-#ifdef SHA1DC_CUSTOM_TRAILING_INCLUDE_UBC_CHECK_H
-#include SHA1DC_CUSTOM_TRAILING_INCLUDE_UBC_CHECK_H
-#endif
-
-#endif
-- 
2.13.0.303.g4ebf302169

Reply via email to