From 6519ae6f88fc33b64d76294a7b4efe1d69eea625 Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Thu, 27 Jul 2017 20:48:49 +0200 Subject: [PATCH] part of monstermerge... --- .gitconfig | 3 + client/hardnested/bf_bench_data.bin | Bin 0 -> 80102 bytes client/hardnested/hardnested_bf_core.c | 603 ++++++++++++++++ client/hardnested/hardnested_bf_core.h | 58 ++ client/hardnested/hardnested_bitarray_core.c | 650 ++++++++++++++++++ client/hardnested/hardnested_bitarray_core.h | 69 ++ client/hardnested/hardnested_bruteforce.c | 472 +++++++++++++ client/hardnested/hardnested_bruteforce.h | 36 + client/hardnested/hardnested_tables.c | 592 ++++++++++++++++ .../tables/bitflip_0_001_states.bin.z | Bin 0 -> 21464 bytes .../tables/bitflip_0_003_states.bin.z | Bin 0 -> 11164 bytes .../tables/bitflip_0_005_states.bin.z | Bin 0 -> 25606 bytes .../tables/bitflip_0_007_states.bin.z | Bin 0 -> 11136 bytes .../tables/bitflip_0_009_states.bin.z | Bin 0 -> 11407 bytes .../tables/bitflip_0_00b_states.bin.z | Bin 0 -> 5964 bytes .../tables/bitflip_0_00d_states.bin.z | Bin 0 -> 17232 bytes .../tables/bitflip_0_00f_states.bin.z | Bin 0 -> 7685 bytes .../tables/bitflip_0_010_states.bin.z | Bin 0 -> 17328 bytes .../tables/bitflip_0_014_states.bin.z | Bin 0 -> 21124 bytes .../tables/bitflip_0_01c_states.bin.z | Bin 0 -> 12840 bytes .../tables/bitflip_0_021_states.bin.z | Bin 0 -> 33654 bytes .../tables/bitflip_0_023_states.bin.z | Bin 0 -> 17592 bytes .../tables/bitflip_0_025_states.bin.z | Bin 0 -> 41462 bytes .../tables/bitflip_0_027_states.bin.z | Bin 0 -> 21994 bytes .../tables/bitflip_0_029_states.bin.z | Bin 0 -> 18850 bytes .../tables/bitflip_0_02b_states.bin.z | Bin 0 -> 9230 bytes .../tables/bitflip_0_02d_states.bin.z | Bin 0 -> 27896 bytes .../tables/bitflip_0_02f_states.bin.z | Bin 0 -> 14181 bytes .../tables/bitflip_0_030_states.bin.z | Bin 0 -> 14726 bytes .../tables/bitflip_0_034_states.bin.z | Bin 0 -> 15953 bytes .../tables/bitflip_0_03c_states.bin.z | Bin 0 -> 9693 bytes .../tables/bitflip_0_040_states.bin.z | Bin 0 -> 9770 bytes .../tables/bitflip_0_044_states.bin.z | Bin 0 -> 22156 bytes .../tables/bitflip_0_04c_states.bin.z | Bin 0 -> 14808 bytes .../tables/bitflip_0_051_states.bin.z | Bin 0 -> 18194 bytes .../tables/bitflip_0_053_states.bin.z | Bin 0 -> 9176 bytes .../tables/bitflip_0_055_states.bin.z | Bin 0 -> 27783 bytes .../tables/bitflip_0_057_states.bin.z | Bin 0 -> 14121 bytes .../tables/bitflip_0_059_states.bin.z | Bin 0 -> 11331 bytes .../tables/bitflip_0_05b_states.bin.z | Bin 0 -> 5875 bytes .../tables/bitflip_0_05d_states.bin.z | Bin 0 -> 18417 bytes .../tables/bitflip_0_05f_states.bin.z | Bin 0 -> 9377 bytes .../tables/bitflip_0_064_states.bin.z | Bin 0 -> 16059 bytes .../tables/bitflip_0_06c_states.bin.z | Bin 0 -> 9733 bytes .../tables/bitflip_0_071_states.bin.z | Bin 0 -> 31947 bytes .../tables/bitflip_0_073_states.bin.z | Bin 0 -> 15941 bytes .../tables/bitflip_0_075_states.bin.z | Bin 0 -> 42790 bytes .../tables/bitflip_0_077_states.bin.z | Bin 0 -> 23984 bytes .../tables/bitflip_0_079_states.bin.z | Bin 0 -> 18851 bytes .../tables/bitflip_0_07b_states.bin.z | Bin 0 -> 9229 bytes .../tables/bitflip_0_07f_states.bin.z | Bin 0 -> 16505 bytes .../tables/bitflip_0_081_states.bin.z | Bin 0 -> 28820 bytes .../tables/bitflip_0_083_states.bin.z | Bin 0 -> 15336 bytes .../tables/bitflip_0_085_states.bin.z | Bin 0 -> 19596 bytes .../tables/bitflip_0_087_states.bin.z | Bin 0 -> 9176 bytes .../tables/bitflip_0_089_states.bin.z | Bin 0 -> 18253 bytes .../tables/bitflip_0_08b_states.bin.z | Bin 0 -> 9416 bytes .../tables/bitflip_0_08d_states.bin.z | Bin 0 -> 11330 bytes .../tables/bitflip_0_08f_states.bin.z | Bin 0 -> 5875 bytes .../tables/bitflip_0_090_states.bin.z | Bin 0 -> 15272 bytes .../tables/bitflip_0_094_states.bin.z | Bin 0 -> 27477 bytes .../tables/bitflip_0_09c_states.bin.z | Bin 0 -> 18443 bytes .../tables/bitflip_0_0a1_states.bin.z | Bin 0 -> 43080 bytes .../tables/bitflip_0_0a3_states.bin.z | Bin 0 -> 24297 bytes .../tables/bitflip_0_0a5_states.bin.z | Bin 0 -> 32404 bytes .../tables/bitflip_0_0a7_states.bin.z | Bin 0 -> 15903 bytes .../tables/bitflip_0_0a9_states.bin.z | Bin 0 -> 28223 bytes .../tables/bitflip_0_0ab_states.bin.z | Bin 0 -> 15110 bytes .../tables/bitflip_0_0ad_states.bin.z | Bin 0 -> 18794 bytes .../tables/bitflip_0_0af_states.bin.z | Bin 0 -> 9191 bytes .../tables/bitflip_0_0b0_states.bin.z | Bin 0 -> 12014 bytes .../tables/bitflip_0_0b4_states.bin.z | Bin 0 -> 21106 bytes .../tables/bitflip_0_0bc_states.bin.z | Bin 0 -> 14387 bytes .../tables/bitflip_0_0c0_states.bin.z | Bin 0 -> 9771 bytes .../tables/bitflip_0_0c4_states.bin.z | Bin 0 -> 27220 bytes .../tables/bitflip_0_0cc_states.bin.z | Bin 0 -> 19919 bytes .../tables/bitflip_0_0d1_states.bin.z | Bin 0 -> 28438 bytes .../tables/bitflip_0_0d3_states.bin.z | Bin 0 -> 16025 bytes .../tables/bitflip_0_0d5_states.bin.z | Bin 0 -> 19686 bytes .../tables/bitflip_0_0d7_states.bin.z | Bin 0 -> 9175 bytes .../tables/bitflip_0_0d9_states.bin.z | Bin 0 -> 18323 bytes .../tables/bitflip_0_0db_states.bin.z | Bin 0 -> 9514 bytes .../tables/bitflip_0_0dd_states.bin.z | Bin 0 -> 11481 bytes .../tables/bitflip_0_0df_states.bin.z | Bin 0 -> 5873 bytes .../tables/bitflip_0_0e4_states.bin.z | Bin 0 -> 20539 bytes .../tables/bitflip_0_0ec_states.bin.z | Bin 0 -> 13972 bytes .../tables/bitflip_0_0f1_states.bin.z | Bin 0 -> 43309 bytes .../tables/bitflip_0_0f3_states.bin.z | Bin 0 -> 25591 bytes .../tables/bitflip_0_0f5_states.bin.z | Bin 0 -> 33164 bytes .../tables/bitflip_0_0f7_states.bin.z | Bin 0 -> 17201 bytes .../tables/bitflip_0_0f9_states.bin.z | Bin 0 -> 28243 bytes .../tables/bitflip_0_0fb_states.bin.z | Bin 0 -> 15124 bytes .../tables/bitflip_0_0fd_states.bin.z | Bin 0 -> 20509 bytes .../tables/bitflip_0_0ff_states.bin.z | Bin 0 -> 10894 bytes .../tables/bitflip_0_104_states.bin.z | Bin 0 -> 22230 bytes .../tables/bitflip_0_10c_states.bin.z | Bin 0 -> 14808 bytes .../tables/bitflip_0_111_states.bin.z | Bin 0 -> 18193 bytes .../tables/bitflip_0_113_states.bin.z | Bin 0 -> 9176 bytes .../tables/bitflip_0_115_states.bin.z | Bin 0 -> 27783 bytes .../tables/bitflip_0_117_states.bin.z | Bin 0 -> 14119 bytes .../tables/bitflip_0_119_states.bin.z | Bin 0 -> 11331 bytes .../tables/bitflip_0_11b_states.bin.z | Bin 0 -> 5875 bytes .../tables/bitflip_0_11d_states.bin.z | Bin 0 -> 18417 bytes .../tables/bitflip_0_11f_states.bin.z | Bin 0 -> 9377 bytes .../tables/bitflip_0_124_states.bin.z | Bin 0 -> 16060 bytes .../tables/bitflip_0_12c_states.bin.z | Bin 0 -> 9734 bytes .../tables/bitflip_0_131_states.bin.z | Bin 0 -> 31946 bytes .../tables/bitflip_0_133_states.bin.z | Bin 0 -> 15941 bytes .../tables/bitflip_0_135_states.bin.z | Bin 0 -> 42791 bytes .../tables/bitflip_0_137_states.bin.z | Bin 0 -> 23984 bytes .../tables/bitflip_0_139_states.bin.z | Bin 0 -> 18850 bytes .../tables/bitflip_0_13b_states.bin.z | Bin 0 -> 9228 bytes .../tables/bitflip_0_13d_states.bin.z | Bin 0 -> 29602 bytes .../tables/bitflip_0_13f_states.bin.z | Bin 0 -> 16504 bytes .../tables/bitflip_0_141_states.bin.z | Bin 0 -> 21419 bytes .../tables/bitflip_0_143_states.bin.z | Bin 0 -> 11143 bytes .../tables/bitflip_0_145_states.bin.z | Bin 0 -> 27056 bytes .../tables/bitflip_0_147_states.bin.z | Bin 0 -> 9834 bytes .../tables/bitflip_0_149_states.bin.z | Bin 0 -> 11380 bytes .../tables/bitflip_0_14b_states.bin.z | Bin 0 -> 5946 bytes .../tables/bitflip_0_14d_states.bin.z | Bin 0 -> 12555 bytes .../tables/bitflip_0_14f_states.bin.z | Bin 0 -> 7283 bytes .../tables/bitflip_0_150_states.bin.z | Bin 0 -> 17328 bytes .../tables/bitflip_0_154_states.bin.z | Bin 0 -> 21125 bytes .../tables/bitflip_0_15c_states.bin.z | Bin 0 -> 12840 bytes .../tables/bitflip_0_161_states.bin.z | Bin 0 -> 33424 bytes .../tables/bitflip_0_163_states.bin.z | Bin 0 -> 17490 bytes .../tables/bitflip_0_165_states.bin.z | Bin 0 -> 42672 bytes .../tables/bitflip_0_167_states.bin.z | Bin 0 -> 23886 bytes .../tables/bitflip_0_169_states.bin.z | Bin 0 -> 18794 bytes .../tables/bitflip_0_16b_states.bin.z | Bin 0 -> 9190 bytes .../tables/bitflip_0_16d_states.bin.z | Bin 0 -> 25731 bytes .../tables/bitflip_0_16f_states.bin.z | Bin 0 -> 13553 bytes .../tables/bitflip_0_170_states.bin.z | Bin 0 -> 14725 bytes .../tables/bitflip_0_174_states.bin.z | Bin 0 -> 15952 bytes .../tables/bitflip_0_17c_states.bin.z | Bin 0 -> 9694 bytes .../tables/bitflip_0_184_states.bin.z | Bin 0 -> 27244 bytes .../tables/bitflip_0_18c_states.bin.z | Bin 0 -> 19919 bytes .../tables/bitflip_0_191_states.bin.z | Bin 0 -> 28438 bytes .../tables/bitflip_0_193_states.bin.z | Bin 0 -> 16026 bytes .../tables/bitflip_0_195_states.bin.z | Bin 0 -> 19686 bytes .../tables/bitflip_0_197_states.bin.z | Bin 0 -> 9175 bytes .../tables/bitflip_0_199_states.bin.z | Bin 0 -> 18323 bytes .../tables/bitflip_0_19b_states.bin.z | Bin 0 -> 9515 bytes .../tables/bitflip_0_19d_states.bin.z | Bin 0 -> 11481 bytes .../tables/bitflip_0_19f_states.bin.z | Bin 0 -> 5874 bytes .../tables/bitflip_0_1a4_states.bin.z | Bin 0 -> 20539 bytes .../tables/bitflip_0_1ac_states.bin.z | Bin 0 -> 13972 bytes .../tables/bitflip_0_1b1_states.bin.z | Bin 0 -> 43310 bytes .../tables/bitflip_0_1b3_states.bin.z | Bin 0 -> 25592 bytes .../tables/bitflip_0_1b5_states.bin.z | Bin 0 -> 33164 bytes .../tables/bitflip_0_1b7_states.bin.z | Bin 0 -> 17201 bytes .../tables/bitflip_0_1b9_states.bin.z | Bin 0 -> 28244 bytes .../tables/bitflip_0_1bb_states.bin.z | Bin 0 -> 15124 bytes .../tables/bitflip_0_1bd_states.bin.z | Bin 0 -> 20510 bytes .../tables/bitflip_0_1bf_states.bin.z | Bin 0 -> 10895 bytes .../tables/bitflip_0_1c1_states.bin.z | Bin 0 -> 28780 bytes .../tables/bitflip_0_1c3_states.bin.z | Bin 0 -> 15311 bytes .../tables/bitflip_0_1c5_states.bin.z | Bin 0 -> 11486 bytes .../tables/bitflip_0_1c9_states.bin.z | Bin 0 -> 18237 bytes .../tables/bitflip_0_1cb_states.bin.z | Bin 0 -> 9394 bytes .../tables/bitflip_0_1d0_states.bin.z | Bin 0 -> 15272 bytes .../tables/bitflip_0_1d4_states.bin.z | Bin 0 -> 27477 bytes .../tables/bitflip_0_1dc_states.bin.z | Bin 0 -> 18443 bytes .../tables/bitflip_0_1e1_states.bin.z | Bin 0 -> 42909 bytes .../tables/bitflip_0_1e3_states.bin.z | Bin 0 -> 24210 bytes .../tables/bitflip_0_1e5_states.bin.z | Bin 0 -> 28272 bytes .../tables/bitflip_0_1e7_states.bin.z | Bin 0 -> 10545 bytes .../tables/bitflip_0_1e9_states.bin.z | Bin 0 -> 28161 bytes .../tables/bitflip_0_1eb_states.bin.z | Bin 0 -> 15053 bytes .../tables/bitflip_0_1ed_states.bin.z | Bin 0 -> 10353 bytes .../tables/bitflip_0_1ef_states.bin.z | Bin 0 -> 4125 bytes .../tables/bitflip_0_1f0_states.bin.z | Bin 0 -> 12014 bytes .../tables/bitflip_0_1f4_states.bin.z | Bin 0 -> 21104 bytes .../tables/bitflip_0_1fc_states.bin.z | Bin 0 -> 14387 bytes .../tables/bitflip_0_210_states.bin.z | Bin 0 -> 14979 bytes .../tables/bitflip_0_225_states.bin.z | Bin 0 -> 77058 bytes .../tables/bitflip_0_227_states.bin.z | Bin 0 -> 44320 bytes .../tables/bitflip_0_22d_states.bin.z | Bin 0 -> 46813 bytes .../tables/bitflip_0_22f_states.bin.z | Bin 0 -> 23650 bytes .../tables/bitflip_0_240_states.bin.z | Bin 0 -> 12219 bytes .../tables/bitflip_0_275_states.bin.z | Bin 0 -> 77058 bytes .../tables/bitflip_0_277_states.bin.z | Bin 0 -> 44320 bytes .../tables/bitflip_0_27f_states.bin.z | Bin 0 -> 23650 bytes .../tables/bitflip_0_294_states.bin.z | Bin 0 -> 27553 bytes .../tables/bitflip_0_2a1_states.bin.z | Bin 0 -> 77058 bytes .../tables/bitflip_0_2a3_states.bin.z | Bin 0 -> 44320 bytes .../tables/bitflip_0_2a9_states.bin.z | Bin 0 -> 46813 bytes .../tables/bitflip_0_2ab_states.bin.z | Bin 0 -> 23650 bytes .../tables/bitflip_0_2c4_states.bin.z | Bin 0 -> 27553 bytes .../tables/bitflip_0_2f1_states.bin.z | Bin 0 -> 77058 bytes .../tables/bitflip_0_2f3_states.bin.z | Bin 0 -> 44320 bytes .../tables/bitflip_0_2f9_states.bin.z | Bin 0 -> 46813 bytes .../tables/bitflip_0_2fb_states.bin.z | Bin 0 -> 23650 bytes .../tables/bitflip_0_335_states.bin.z | Bin 0 -> 77058 bytes .../tables/bitflip_0_337_states.bin.z | Bin 0 -> 44320 bytes .../tables/bitflip_0_33d_states.bin.z | Bin 0 -> 46813 bytes .../tables/bitflip_0_33f_states.bin.z | Bin 0 -> 23650 bytes .../tables/bitflip_0_350_states.bin.z | Bin 0 -> 14979 bytes .../tables/bitflip_0_365_states.bin.z | Bin 0 -> 77058 bytes .../tables/bitflip_0_367_states.bin.z | Bin 0 -> 44320 bytes .../tables/bitflip_0_36d_states.bin.z | Bin 0 -> 46813 bytes .../tables/bitflip_0_36f_states.bin.z | Bin 0 -> 23650 bytes .../tables/bitflip_0_384_states.bin.z | Bin 0 -> 27553 bytes .../tables/bitflip_0_3b1_states.bin.z | Bin 0 -> 77058 bytes .../tables/bitflip_0_3b3_states.bin.z | Bin 0 -> 44320 bytes .../tables/bitflip_0_3b9_states.bin.z | Bin 0 -> 46813 bytes .../tables/bitflip_0_3bb_states.bin.z | Bin 0 -> 23650 bytes .../tables/bitflip_0_3d4_states.bin.z | Bin 0 -> 27553 bytes .../tables/bitflip_0_3e1_states.bin.z | Bin 0 -> 77058 bytes .../tables/bitflip_0_3e3_states.bin.z | Bin 0 -> 44320 bytes .../tables/bitflip_0_3e9_states.bin.z | Bin 0 -> 46813 bytes .../tables/bitflip_0_3eb_states.bin.z | Bin 0 -> 23650 bytes .../tables/bitflip_1_002_states.bin.z | Bin 0 -> 34594 bytes .../tables/bitflip_1_008_states.bin.z | Bin 0 -> 27612 bytes .../tables/bitflip_1_00a_states.bin.z | Bin 0 -> 35498 bytes .../tables/bitflip_1_012_states.bin.z | Bin 0 -> 20925 bytes .../tables/bitflip_1_018_states.bin.z | Bin 0 -> 20107 bytes .../tables/bitflip_1_01a_states.bin.z | Bin 0 -> 26647 bytes .../tables/bitflip_1_020_states.bin.z | Bin 0 -> 17327 bytes .../tables/bitflip_1_028_states.bin.z | Bin 0 -> 22552 bytes .../tables/bitflip_1_02a_states.bin.z | Bin 0 -> 30656 bytes .../tables/bitflip_1_02e_states.bin.z | Bin 0 -> 14873 bytes .../tables/bitflip_1_032_states.bin.z | Bin 0 -> 27648 bytes .../tables/bitflip_1_036_states.bin.z | Bin 0 -> 14397 bytes .../tables/bitflip_1_038_states.bin.z | Bin 0 -> 15087 bytes .../tables/bitflip_1_03a_states.bin.z | Bin 0 -> 21014 bytes .../tables/bitflip_1_03e_states.bin.z | Bin 0 -> 10863 bytes .../tables/bitflip_1_040_states.bin.z | Bin 0 -> 9771 bytes .../tables/bitflip_1_042_states.bin.z | Bin 0 -> 34648 bytes .../tables/bitflip_1_046_states.bin.z | Bin 0 -> 18495 bytes .../tables/bitflip_1_048_states.bin.z | Bin 0 -> 26711 bytes .../tables/bitflip_1_04a_states.bin.z | Bin 0 -> 43565 bytes .../tables/bitflip_1_04e_states.bin.z | Bin 0 -> 23874 bytes .../tables/bitflip_1_052_states.bin.z | Bin 0 -> 20931 bytes .../tables/bitflip_1_056_states.bin.z | Bin 0 -> 10868 bytes .../tables/bitflip_1_058_states.bin.z | Bin 0 -> 19459 bytes .../tables/bitflip_1_05a_states.bin.z | Bin 0 -> 29724 bytes .../tables/bitflip_1_05e_states.bin.z | Bin 0 -> 15828 bytes .../tables/bitflip_1_060_states.bin.z | Bin 0 -> 17332 bytes .../tables/bitflip_1_062_states.bin.z | Bin 0 -> 43839 bytes .../tables/bitflip_1_066_states.bin.z | Bin 0 -> 25704 bytes .../tables/bitflip_1_068_states.bin.z | Bin 0 -> 22536 bytes .../tables/bitflip_1_06a_states.bin.z | Bin 0 -> 34536 bytes .../tables/bitflip_1_06e_states.bin.z | Bin 0 -> 17200 bytes .../tables/bitflip_1_072_states.bin.z | Bin 0 -> 29569 bytes .../tables/bitflip_1_076_states.bin.z | Bin 0 -> 16139 bytes .../tables/bitflip_1_078_states.bin.z | Bin 0 -> 15066 bytes .../tables/bitflip_1_07a_states.bin.z | Bin 0 -> 21102 bytes .../tables/bitflip_1_07e_states.bin.z | Bin 0 -> 10895 bytes .../tables/bitflip_1_080_states.bin.z | Bin 0 -> 9770 bytes .../tables/bitflip_1_082_states.bin.z | Bin 0 -> 41837 bytes .../tables/bitflip_1_086_states.bin.z | Bin 0 -> 22500 bytes .../tables/bitflip_1_088_states.bin.z | Bin 0 -> 22467 bytes .../tables/bitflip_1_08a_states.bin.z | Bin 0 -> 26137 bytes .../tables/bitflip_1_08e_states.bin.z | Bin 0 -> 9989 bytes .../tables/bitflip_1_092_states.bin.z | Bin 0 -> 27596 bytes .../tables/bitflip_1_096_states.bin.z | Bin 0 -> 14356 bytes .../tables/bitflip_1_098_states.bin.z | Bin 0 -> 15035 bytes .../tables/bitflip_1_09a_states.bin.z | Bin 0 -> 17264 bytes .../tables/bitflip_1_09e_states.bin.z | Bin 0 -> 8388 bytes .../tables/bitflip_1_0a0_states.bin.z | Bin 0 -> 15177 bytes .../tables/bitflip_1_0a2_states.bin.z | Bin 0 -> 32901 bytes .../tables/bitflip_1_0a6_states.bin.z | Bin 0 -> 17054 bytes .../tables/bitflip_1_0a8_states.bin.z | Bin 0 -> 27841 bytes .../tables/bitflip_1_0aa_states.bin.z | Bin 0 -> 37384 bytes .../tables/bitflip_1_0ae_states.bin.z | Bin 0 -> 19385 bytes .../tables/bitflip_1_0b2_states.bin.z | Bin 0 -> 20919 bytes .../tables/bitflip_1_0b6_states.bin.z | Bin 0 -> 10867 bytes .../tables/bitflip_1_0b8_states.bin.z | Bin 0 -> 20353 bytes .../tables/bitflip_1_0ba_states.bin.z | Bin 0 -> 27768 bytes .../tables/bitflip_1_0be_states.bin.z | Bin 0 -> 14338 bytes .../tables/bitflip_1_0c0_states.bin.z | Bin 0 -> 9771 bytes .../tables/bitflip_1_0c2_states.bin.z | Bin 0 -> 43691 bytes .../tables/bitflip_1_0c6_states.bin.z | Bin 0 -> 24543 bytes .../tables/bitflip_1_0c8_states.bin.z | Bin 0 -> 22541 bytes .../tables/bitflip_1_0ca_states.bin.z | Bin 0 -> 32059 bytes .../tables/bitflip_1_0ce_states.bin.z | Bin 0 -> 15142 bytes .../tables/bitflip_1_0d2_states.bin.z | Bin 0 -> 29524 bytes .../tables/bitflip_1_0d6_states.bin.z | Bin 0 -> 16085 bytes .../tables/bitflip_1_0d8_states.bin.z | Bin 0 -> 15061 bytes .../tables/bitflip_1_0da_states.bin.z | Bin 0 -> 16636 bytes .../tables/bitflip_1_0de_states.bin.z | Bin 0 -> 7526 bytes .../tables/bitflip_1_0e0_states.bin.z | Bin 0 -> 15173 bytes .../tables/bitflip_1_0e8_states.bin.z | Bin 0 -> 26952 bytes .../tables/bitflip_1_0f8_states.bin.z | Bin 0 -> 19601 bytes .../tables/bitflip_1_108_states.bin.z | Bin 0 -> 22550 bytes .../tables/bitflip_1_111_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_113_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_115_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_117_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_118_states.bin.z | Bin 0 -> 15035 bytes .../tables/bitflip_1_11a_states.bin.z | Bin 0 -> 11330 bytes .../tables/bitflip_1_11b_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_120_states.bin.z | Bin 0 -> 15177 bytes .../tables/bitflip_1_122_states.bin.z | Bin 0 -> 32904 bytes .../tables/bitflip_1_128_states.bin.z | Bin 0 -> 27841 bytes .../tables/bitflip_1_131_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_135_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_138_states.bin.z | Bin 0 -> 20356 bytes .../tables/bitflip_1_145_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_147_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_148_states.bin.z | Bin 0 -> 22543 bytes .../tables/bitflip_1_158_states.bin.z | Bin 0 -> 15061 bytes .../tables/bitflip_1_160_states.bin.z | Bin 0 -> 15178 bytes .../tables/bitflip_1_161_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_163_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_165_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_168_states.bin.z | Bin 0 -> 26952 bytes .../tables/bitflip_1_178_states.bin.z | Bin 0 -> 19601 bytes .../tables/bitflip_1_180_states.bin.z | Bin 0 -> 9771 bytes .../tables/bitflip_1_188_states.bin.z | Bin 0 -> 27588 bytes .../tables/bitflip_1_191_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_198_states.bin.z | Bin 0 -> 20107 bytes .../tables/bitflip_1_199_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_19d_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_19f_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_1a0_states.bin.z | Bin 0 -> 17330 bytes .../tables/bitflip_1_1a8_states.bin.z | Bin 0 -> 22553 bytes .../tables/bitflip_1_1b3_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_1b5_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_1b7_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_1b8_states.bin.z | Bin 0 -> 15087 bytes .../tables/bitflip_1_1b9_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_1bd_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_1c1_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_1c3_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_1c8_states.bin.z | Bin 0 -> 26711 bytes .../tables/bitflip_1_1c9_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_1cd_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_1cf_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_1d8_states.bin.z | Bin 0 -> 19459 bytes .../tables/bitflip_1_1e0_states.bin.z | Bin 0 -> 17331 bytes .../tables/bitflip_1_1e1_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_1e5_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_1e7_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_1e8_states.bin.z | Bin 0 -> 22539 bytes .../tables/bitflip_1_1e9_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_1eb_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_1ed_states.bin.z | Bin 0 -> 7078 bytes .../tables/bitflip_1_1f8_states.bin.z | Bin 0 -> 15065 bytes .../tables/bitflip_1_208_states.bin.z | Bin 0 -> 27553 bytes .../tables/bitflip_1_220_states.bin.z | Bin 0 -> 14979 bytes .../tables/bitflip_1_24a_states.bin.z | Bin 0 -> 77058 bytes .../tables/bitflip_1_24e_states.bin.z | Bin 0 -> 44320 bytes .../tables/bitflip_1_25a_states.bin.z | Bin 0 -> 46813 bytes .../tables/bitflip_1_25e_states.bin.z | Bin 0 -> 23650 bytes .../tables/bitflip_1_262_states.bin.z | Bin 0 -> 77058 bytes .../tables/bitflip_1_266_states.bin.z | Bin 0 -> 44320 bytes .../tables/bitflip_1_272_states.bin.z | Bin 0 -> 46813 bytes .../tables/bitflip_1_276_states.bin.z | Bin 0 -> 23650 bytes .../tables/bitflip_1_280_states.bin.z | Bin 0 -> 12219 bytes .../tables/bitflip_1_2a8_states.bin.z | Bin 0 -> 27553 bytes .../tables/bitflip_1_2c2_states.bin.z | Bin 0 -> 77058 bytes .../tables/bitflip_1_2c6_states.bin.z | Bin 0 -> 44320 bytes .../tables/bitflip_1_2d2_states.bin.z | Bin 0 -> 46813 bytes .../tables/bitflip_1_2d6_states.bin.z | Bin 0 -> 23650 bytes .../tables/bitflip_1_328_states.bin.z | Bin 0 -> 27553 bytes .../tables/bitflip_1_388_states.bin.z | Bin 0 -> 27553 bytes .../tables/bitflip_1_3a0_states.bin.z | Bin 0 -> 14979 bytes client/mfkey.c | 96 +++ client/mfkey.h | 24 + client/usb_cmd_h2lua.awk | 15 + client/util_posix.c | 133 ++++ client/util_posix.h | 26 + common/crapto1/crapto1.c | 556 +++++++++++++++ common/crapto1/crapto1.h | 82 +++ common/crapto1/crypto1.c | 119 ++++ common/crapto1/readme | 27 + uart/README.md | 13 + uart/uart.h | 98 +++ uart/uart_posix.c | 337 +++++++++ uart/uart_win32.c | 140 ++++ 373 files changed, 4149 insertions(+) create mode 100644 .gitconfig create mode 100644 client/hardnested/bf_bench_data.bin create mode 100644 client/hardnested/hardnested_bf_core.c create mode 100644 client/hardnested/hardnested_bf_core.h create mode 100644 client/hardnested/hardnested_bitarray_core.c create mode 100644 client/hardnested/hardnested_bitarray_core.h create mode 100644 client/hardnested/hardnested_bruteforce.c create mode 100644 client/hardnested/hardnested_bruteforce.h create mode 100644 client/hardnested/hardnested_tables.c create mode 100644 client/hardnested/tables/bitflip_0_001_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_003_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_005_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_007_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_009_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_00b_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_00d_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_00f_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_010_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_014_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_01c_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_021_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_023_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_025_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_027_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_029_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_02b_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_02d_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_02f_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_030_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_034_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_03c_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_040_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_044_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_04c_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_051_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_053_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_055_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_057_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_059_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_05b_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_05d_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_05f_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_064_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_06c_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_071_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_073_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_075_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_077_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_079_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_07b_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_07f_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_081_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_083_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_085_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_087_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_089_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_08b_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_08d_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_08f_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_090_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_094_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_09c_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0a1_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0a3_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0a5_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0a7_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0a9_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0ab_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0ad_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0af_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0b0_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0b4_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0bc_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0c0_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0c4_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0cc_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0d1_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0d3_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0d5_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0d7_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0d9_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0db_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0dd_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0df_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0e4_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0ec_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0f1_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0f3_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0f5_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0f7_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0f9_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0fb_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0fd_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_0ff_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_104_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_10c_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_111_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_113_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_115_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_117_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_119_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_11b_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_11d_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_11f_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_124_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_12c_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_131_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_133_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_135_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_137_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_139_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_13b_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_13d_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_13f_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_141_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_143_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_145_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_147_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_149_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_14b_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_14d_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_14f_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_150_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_154_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_15c_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_161_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_163_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_165_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_167_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_169_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_16b_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_16d_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_16f_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_170_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_174_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_17c_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_184_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_18c_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_191_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_193_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_195_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_197_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_199_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_19b_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_19d_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_19f_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1a4_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1ac_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1b1_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1b3_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1b5_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1b7_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1b9_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1bb_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1bd_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1bf_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1c1_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1c3_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1c5_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1c9_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1cb_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1d0_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1d4_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1dc_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1e1_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1e3_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1e5_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1e7_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1e9_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1eb_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1ed_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1ef_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1f0_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1f4_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_1fc_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_210_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_225_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_227_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_22d_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_22f_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_240_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_275_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_277_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_27f_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_294_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_2a1_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_2a3_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_2a9_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_2ab_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_2c4_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_2f1_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_2f3_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_2f9_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_2fb_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_335_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_337_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_33d_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_33f_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_350_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_365_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_367_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_36d_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_36f_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_384_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_3b1_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_3b3_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_3b9_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_3bb_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_3d4_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_3e1_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_3e3_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_3e9_states.bin.z create mode 100644 client/hardnested/tables/bitflip_0_3eb_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_002_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_008_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_00a_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_012_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_018_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_01a_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_020_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_028_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_02a_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_02e_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_032_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_036_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_038_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_03a_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_03e_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_040_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_042_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_046_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_048_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_04a_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_04e_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_052_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_056_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_058_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_05a_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_05e_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_060_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_062_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_066_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_068_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_06a_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_06e_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_072_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_076_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_078_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_07a_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_07e_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_080_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_082_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_086_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_088_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_08a_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_08e_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_092_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_096_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_098_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_09a_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_09e_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0a0_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0a2_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0a6_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0a8_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0aa_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0ae_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0b2_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0b6_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0b8_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0ba_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0be_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0c0_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0c2_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0c6_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0c8_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0ca_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0ce_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0d2_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0d6_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0d8_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0da_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0de_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0e0_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0e8_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_0f8_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_108_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_111_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_113_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_115_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_117_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_118_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_11a_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_11b_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_120_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_122_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_128_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_131_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_135_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_138_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_145_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_147_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_148_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_158_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_160_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_161_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_163_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_165_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_168_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_178_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_180_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_188_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_191_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_198_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_199_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_19d_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_19f_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1a0_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1a8_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1b3_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1b5_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1b7_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1b8_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1b9_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1bd_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1c1_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1c3_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1c8_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1c9_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1cd_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1cf_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1d8_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1e0_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1e1_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1e5_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1e7_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1e8_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1e9_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1eb_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1ed_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_1f8_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_208_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_220_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_24a_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_24e_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_25a_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_25e_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_262_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_266_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_272_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_276_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_280_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_2a8_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_2c2_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_2c6_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_2d2_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_2d6_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_328_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_388_states.bin.z create mode 100644 client/hardnested/tables/bitflip_1_3a0_states.bin.z create mode 100644 client/mfkey.c create mode 100644 client/mfkey.h create mode 100644 client/usb_cmd_h2lua.awk create mode 100644 client/util_posix.c create mode 100644 client/util_posix.h create mode 100644 common/crapto1/crapto1.c create mode 100644 common/crapto1/crapto1.h create mode 100644 common/crapto1/crypto1.c create mode 100644 common/crapto1/readme create mode 100644 uart/README.md create mode 100644 uart/uart.h create mode 100644 uart/uart_posix.c create mode 100644 uart/uart_win32.c diff --git a/.gitconfig b/.gitconfig new file mode 100644 index 000000000..83575d662 --- /dev/null +++ b/.gitconfig @@ -0,0 +1,3 @@ +[user] + email = iceman@iuse.se + name = iceman1001 diff --git a/client/hardnested/bf_bench_data.bin b/client/hardnested/bf_bench_data.bin new file mode 100644 index 0000000000000000000000000000000000000000..30734da9329118b1f181b7894578175552f376ab GIT binary patch literal 80102 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 +#include +#include +#ifndef __APPLE__ +#include +#endif +#include +#include +#include "crapto1/crapto1.h" +#include "parity.h" + +// bitslice type +// while AVX supports 256 bit vector floating point operations, we need integer operations for boolean logic +// same for AVX2 and 512 bit vectors +// using larger vectors works but seems to generate more register pressure +#if defined(__AVX512F__) +#define MAX_BITSLICES 512 +#elif defined(__AVX2__) +#define MAX_BITSLICES 256 +#elif defined(__AVX__) +#define MAX_BITSLICES 128 +#elif defined(__SSE2__) +#define MAX_BITSLICES 128 +#else // MMX or SSE or NOSIMD +#define MAX_BITSLICES 64 +#endif + +#define VECTOR_SIZE (MAX_BITSLICES/8) +typedef unsigned int __attribute__((aligned(VECTOR_SIZE))) __attribute__((vector_size(VECTOR_SIZE))) bitslice_value_t; +typedef union { + bitslice_value_t value; + uint64_t bytes64[MAX_BITSLICES/64]; + uint8_t bytes[MAX_BITSLICES/8]; +} bitslice_t; + +// filter function (f20) +// sourced from ``Wirelessly Pickpocketing a Mifare Classic Card'' by Flavio Garcia, Peter van Rossum, Roel Verdult and Ronny Wichers Schreur +#define f20a(a,b,c,d) (((a|b)^(a&d))^(c&((a^b)|d))) +#define f20b(a,b,c,d) (((a&b)|c)^((a^b)&(c|d))) +#define f20c(a,b,c,d,e) ((a|((b|e)&(d^e)))^((a^(b&d))&((c^d)|(b&e)))) + +// bit indexing +#define get_bit(n, word) (((word) >> (n)) & 1) +#define get_vector_bit(slice, value) get_bit((slice)&0x3f, value.bytes64[(slice)>>6]) + +// size of crypto-1 state +#define STATE_SIZE 48 +// size of nonce to be decrypted +#define KEYSTREAM_SIZE 24 + +// endianness conversion +#define rev32(word) ((((word) & 0xff) << 24) | ((((word) >> 8) & 0xff) << 16) | ((((word) >> 16) & 0xff) << 8) | ((((word) >> 24) & 0xff))) + +// this needs to be compiled several times for each instruction set. +// For each instruction set, define a dedicated function name: +#if defined (__AVX512F__) +#define BITSLICE_TEST_NONCES bitslice_test_nonces_AVX512 +#define CRACK_STATES_BITSLICED crack_states_bitsliced_AVX512 +#elif defined (__AVX2__) +#define BITSLICE_TEST_NONCES bitslice_test_nonces_AVX2 +#define CRACK_STATES_BITSLICED crack_states_bitsliced_AVX2 +#elif defined (__AVX__) +#define BITSLICE_TEST_NONCES bitslice_test_nonces_AVX +#define CRACK_STATES_BITSLICED crack_states_bitsliced_AVX +#elif defined (__SSE2__) +#define BITSLICE_TEST_NONCES bitslice_test_nonces_SSE2 +#define CRACK_STATES_BITSLICED crack_states_bitsliced_SSE2 +#elif defined (__MMX__) +#define BITSLICE_TEST_NONCES bitslice_test_nonces_MMX +#define CRACK_STATES_BITSLICED crack_states_bitsliced_MMX +#else +#define BITSLICE_TEST_NONCES bitslice_test_nonces_NOSIMD +#define CRACK_STATES_BITSLICED crack_states_bitsliced_NOSIMD +#endif + +// typedefs and declaration of functions: +typedef const uint64_t crack_states_bitsliced_t(uint32_t, uint8_t*, statelist_t*, uint32_t*, uint64_t*, uint32_t, uint8_t*, noncelist_t*); +crack_states_bitsliced_t crack_states_bitsliced_AVX512; +crack_states_bitsliced_t crack_states_bitsliced_AVX2; +crack_states_bitsliced_t crack_states_bitsliced_AVX; +crack_states_bitsliced_t crack_states_bitsliced_SSE2; +crack_states_bitsliced_t crack_states_bitsliced_MMX; +crack_states_bitsliced_t crack_states_bitsliced_NOSIMD; +crack_states_bitsliced_t crack_states_bitsliced_dispatch; + +typedef void bitslice_test_nonces_t(uint32_t, uint32_t*, uint8_t*); +bitslice_test_nonces_t bitslice_test_nonces_AVX512; +bitslice_test_nonces_t bitslice_test_nonces_AVX2; +bitslice_test_nonces_t bitslice_test_nonces_AVX; +bitslice_test_nonces_t bitslice_test_nonces_SSE2; +bitslice_test_nonces_t bitslice_test_nonces_MMX; +bitslice_test_nonces_t bitslice_test_nonces_NOSIMD; +bitslice_test_nonces_t bitslice_test_nonces_dispatch; + +#if defined (_WIN32) +#define malloc_bitslice(x) __builtin_assume_aligned(_aligned_malloc((x), MAX_BITSLICES/8), MAX_BITSLICES/8) +#define free_bitslice(x) _aligned_free(x) +#elif defined (__APPLE__) +static void *malloc_bitslice(size_t x) { + char *allocated_memory; + if (posix_memalign((void**)&allocated_memory, MAX_BITSLICES/8, x)) { + return NULL; + } else { + return __builtin_assume_aligned(allocated_memory, MAX_BITSLICES/8); + } +} +#define free_bitslice(x) free(x) +#else +#define malloc_bitslice(x) memalign(MAX_BITSLICES/8, (x)) +#define free_bitslice(x) free(x) +#endif + +typedef enum { + EVEN_STATE = 0, + ODD_STATE = 1 +} odd_even_t; + + +// arrays of bitsliced states with identical values in all slices +static bitslice_t bitsliced_encrypted_nonces[256][KEYSTREAM_SIZE]; +static bitslice_t bitsliced_encrypted_parity_bits[256][4]; +// 1 and 0 vectors +static bitslice_t bs_ones; +static bitslice_t bs_zeroes; + + +void BITSLICE_TEST_NONCES(uint32_t nonces_to_bruteforce, uint32_t *bf_test_nonce, uint8_t *bf_test_nonce_par) { + + // initialize 1 and 0 vectors + memset(bs_ones.bytes, 0xff, VECTOR_SIZE); + memset(bs_zeroes.bytes, 0x00, VECTOR_SIZE); + + // bitslice nonces' 2nd to 4th byte + for (uint32_t i = 0; i < nonces_to_bruteforce; i++) { + for(uint32_t bit_idx = 0; bit_idx < KEYSTREAM_SIZE; bit_idx++){ + bool bit = get_bit(KEYSTREAM_SIZE-1-bit_idx, rev32(bf_test_nonce[i] << 8)); + if(bit){ + bitsliced_encrypted_nonces[i][bit_idx].value = bs_ones.value; + } else { + bitsliced_encrypted_nonces[i][bit_idx].value = bs_zeroes.value; + } + } + } + // bitslice nonces' parity (4 bits) + for (uint32_t i = 0; i < nonces_to_bruteforce; i++) { + for(uint32_t bit_idx = 0; bit_idx < 4; bit_idx++){ + bool bit = get_bit(4-1-bit_idx, bf_test_nonce_par[i]); + if(bit){ + bitsliced_encrypted_parity_bits[i][bit_idx].value = bs_ones.value; + } else { + bitsliced_encrypted_parity_bits[i][bit_idx].value = bs_zeroes.value; + } + } + } + +} + + +const uint64_t CRACK_STATES_BITSLICED(uint32_t cuid, uint8_t *best_first_bytes, statelist_t *p, uint32_t *keys_found, uint64_t *num_keys_tested, uint32_t nonces_to_bruteforce, uint8_t *bf_test_nonce_2nd_byte, noncelist_t *nonces){ + + // Unlike aczid's implementation this doesn't roll back at all when performing bitsliced bruteforce. + // We know that the best first byte is already shifted in. Testing with the remaining three bytes of + // the nonces is sufficient to eliminate most of them. The small rest is tested with a simple unsliced + // brute forcing (including roll back). + + bitslice_t states[KEYSTREAM_SIZE+STATE_SIZE]; + bitslice_t * restrict state_p; + uint64_t key = -1; + uint64_t bucket_states_tested = 0; + uint32_t bucket_size[(p->len[EVEN_STATE] - 1)/MAX_BITSLICES + 1]; + uint32_t bitsliced_blocks = 0; + uint32_t const *restrict p_even_end = p->states[EVEN_STATE] + p->len[EVEN_STATE]; +#if defined (DEBUG_BRUTE_FORCE) + uint32_t elimination_step = 0; + #define MAX_ELIMINATION_STEP 32 + uint64_t keys_eliminated[MAX_ELIMINATION_STEP] = {0}; +#endif +#ifdef DEBUG_KEY_ELIMINATION + bool bucket_contains_test_key[(p->len[EVEN_STATE] - 1)/MAX_BITSLICES + 1]; +#endif + + // constant ones/zeroes + bitslice_t bs_ones; + memset(bs_ones.bytes, 0xff, VECTOR_SIZE); + bitslice_t bs_zeroes; + memset(bs_zeroes.bytes, 0x00, VECTOR_SIZE); + + // bitslice all the even states + bitslice_t **restrict bitsliced_even_states = (bitslice_t **)malloc(((p->len[EVEN_STATE] - 1)/MAX_BITSLICES + 1) * sizeof(bitslice_t *)); + if (bitsliced_even_states == NULL) { + printf("Out of memory error in brute_force. Aborting..."); + exit(4); + } + bitslice_value_t *restrict bitsliced_even_feedback = malloc_bitslice(((p->len[EVEN_STATE] - 1)/MAX_BITSLICES + 1) * sizeof(bitslice_value_t)); + if (bitsliced_even_feedback == NULL) { + printf("Out of memory error in brute_force. Aborting..."); + exit(4); + } + for(uint32_t *restrict p_even = p->states[EVEN_STATE]; p_even < p_even_end; p_even += MAX_BITSLICES){ + bitslice_t *restrict lstate_p = malloc_bitslice(STATE_SIZE/2*sizeof(bitslice_t)); + if (lstate_p == NULL) { + printf("Out of memory error in brute_force. Aborting... \n"); + exit(4); + } + memset(lstate_p, 0x00, STATE_SIZE/2*sizeof(bitslice_t)); // zero even bits + // bitslice even half-states + const uint32_t max_slices = (p_even_end-p_even) < MAX_BITSLICES ? p_even_end-p_even : MAX_BITSLICES; + bucket_size[bitsliced_blocks] = max_slices; +#ifdef DEBUG_KEY_ELIMINATION + bucket_contains_test_key[bitsliced_blocks] = false; +#endif + uint32_t slice_idx; + for(slice_idx = 0; slice_idx < max_slices; ++slice_idx){ + uint32_t e = *(p_even+slice_idx); +#ifdef DEBUG_KEY_ELIMINATION + if (known_target_key != -1 && e == test_state[EVEN_STATE]) { + bucket_contains_test_key[bitsliced_blocks] = true; + // printf("bucket %d contains test key even state\n", bitsliced_blocks); + // printf("in slice %d\n", slice_idx); + } +#endif + for(uint32_t bit_idx = 0; bit_idx < STATE_SIZE/2; bit_idx++, e >>= 1){ + // set even bits + if(e&1){ + lstate_p[bit_idx].bytes64[slice_idx>>6] |= 1ull << (slice_idx & 0x3f); + } + } + } + // padding with last even state + for ( ; slice_idx < MAX_BITSLICES; ++slice_idx) { + uint32_t e = *(p_even_end-1); + for(uint32_t bit_idx = 0; bit_idx < STATE_SIZE/2; bit_idx++, e >>= 1){ + // set even bits + if(e&1){ + lstate_p[bit_idx].bytes64[slice_idx>>6] |= 1ull << (slice_idx & 0x3f); + } + } + } + bitsliced_even_states[bitsliced_blocks] = lstate_p; + // bitsliced_even_feedback[bitsliced_blocks] = bs_ones; + bitsliced_even_feedback[bitsliced_blocks] = lstate_p[(47- 0)/2].value ^ + lstate_p[(47-10)/2].value ^ lstate_p[(47-12)/2].value ^ lstate_p[(47-14)/2].value ^ + lstate_p[(47-24)/2].value ^ lstate_p[(47-42)/2].value; + bitsliced_blocks++; + } + // bitslice every odd state to every block of even states + for(uint32_t const *restrict p_odd = p->states[ODD_STATE]; p_odd < p->states[ODD_STATE] + p->len[ODD_STATE]; ++p_odd){ + // early abort + if(*keys_found){ + goto out; + } + + // set odd state bits and pre-compute first keystream bit vector. This is the same for all blocks of even states + + state_p = &states[KEYSTREAM_SIZE]; + uint32_t o = *p_odd; + + // pre-compute the odd feedback bit + bool odd_feedback_bit = evenparity32(o&0x29ce5c); + const bitslice_value_t odd_feedback = odd_feedback_bit ? bs_ones.value : bs_zeroes.value; + + // set odd state bits + for (uint32_t state_idx = 0; state_idx < STATE_SIZE; o >>= 1, state_idx += 2) { + if (o & 1){ + state_p[state_idx] = bs_ones; + } else { + state_p[state_idx] = bs_zeroes; + } + } + + bitslice_value_t crypto1_bs_f20b_2[16]; + bitslice_value_t crypto1_bs_f20b_3[8]; + + crypto1_bs_f20b_2[0] = f20b(state_p[47-25].value, state_p[47-27].value, state_p[47-29].value, state_p[47-31].value); + crypto1_bs_f20b_3[0] = f20b(state_p[47-41].value, state_p[47-43].value, state_p[47-45].value, state_p[47-47].value); + + bitslice_value_t ksb[8]; + ksb[0] = f20c(f20a(state_p[47- 9].value, state_p[47-11].value, state_p[47-13].value, state_p[47-15].value), + f20b(state_p[47-17].value, state_p[47-19].value, state_p[47-21].value, state_p[47-23].value), + crypto1_bs_f20b_2[0], + f20a(state_p[47-33].value, state_p[47-35].value, state_p[47-37].value, state_p[47-39].value), + crypto1_bs_f20b_3[0]); + + uint32_t *restrict p_even = p->states[EVEN_STATE]; + for (uint32_t block_idx = 0; block_idx < bitsliced_blocks; ++block_idx, p_even += MAX_BITSLICES) { + +#ifdef DEBUG_KEY_ELIMINATION + // if (known_target_key != -1 && bucket_contains_test_key[block_idx] && *p_odd == test_state[ODD_STATE]) { + // printf("Now testing known target key.\n"); + // printf("block_idx = %d/%d\n", block_idx, bitsliced_blocks); + // } +#endif + // add the even state bits + const bitslice_t const *restrict bitsliced_even_state = bitsliced_even_states[block_idx]; + for(uint32_t state_idx = 1; state_idx < STATE_SIZE; state_idx += 2) { + state_p[state_idx] = bitsliced_even_state[state_idx/2]; + } + + // pre-compute first feedback bit vector. This is the same for all nonces + bitslice_value_t fbb[8]; + fbb[0] = odd_feedback ^ bitsliced_even_feedback[block_idx]; + + // vector to contain test results (1 = passed, 0 = failed) + bitslice_t results = bs_ones; + + // parity_bits + bitslice_value_t par[8]; + par[0] = bs_zeroes.value; + uint32_t next_common_bits = 0; + + for(uint32_t tests = 0; tests < nonces_to_bruteforce; ++tests){ + // common bits with preceding test nonce + uint32_t common_bits = next_common_bits; //tests ? trailing_zeros(bf_test_nonce_2nd_byte[tests] ^ bf_test_nonce_2nd_byte[tests-1]) : 0; + next_common_bits = tests < nonces_to_bruteforce - 1 ? trailing_zeros(bf_test_nonce_2nd_byte[tests] ^ bf_test_nonce_2nd_byte[tests+1]) : 0; + uint32_t parity_bit_idx = 1; // start checking with the parity of second nonce byte + bitslice_value_t fb_bits = fbb[common_bits]; // start with precomputed feedback bits from previous nonce + bitslice_value_t ks_bits = ksb[common_bits]; // dito for first keystream bits + bitslice_value_t parity_bit_vector = par[common_bits]; // dito for first parity vector + // bitslice_value_t fb_bits = fbb[0]; // start with precomputed feedback bits from previous nonce + // bitslice_value_t ks_bits = ksb[0]; // dito for first keystream bits + // bitslice_value_t parity_bit_vector = par[0]; // dito for first parity vector + state_p -= common_bits; // and reuse the already calculated state bits + // highest bit is transmitted/received first. We start with Bit 23 (highest bit of second nonce byte), + // or the highest bit which differs from the previous nonce + for (int32_t ks_idx = KEYSTREAM_SIZE-1-common_bits; ks_idx >= 0; --ks_idx) { + + // decrypt nonce bits + const bitslice_value_t encrypted_nonce_bit_vector = bitsliced_encrypted_nonces[tests][ks_idx].value; + const bitslice_value_t decrypted_nonce_bit_vector = encrypted_nonce_bit_vector ^ ks_bits; + + // compute real parity bits on the fly + parity_bit_vector ^= decrypted_nonce_bit_vector; + + // update state + state_p--; + state_p[0].value = fb_bits ^ decrypted_nonce_bit_vector; + + // update crypto1 subfunctions + bitslice_value_t f20a_1, f20b_1, f20b_2, f20a_2, f20b_3; + f20a_2 = f20a(state_p[47-33].value, state_p[47-35].value, state_p[47-37].value, state_p[47-39].value); + f20b_3 = f20b(state_p[47-41].value, state_p[47-43].value, state_p[47-45].value, state_p[47-47].value); + if (ks_idx > KEYSTREAM_SIZE - 8) { + f20a_1 = f20a(state_p[47- 9].value, state_p[47-11].value, state_p[47-13].value, state_p[47-15].value); + f20b_1 = f20b(state_p[47-17].value, state_p[47-19].value, state_p[47-21].value, state_p[47-23].value); + f20b_2 = f20b(state_p[47-25].value, state_p[47-27].value, state_p[47-29].value, state_p[47-31].value); + crypto1_bs_f20b_2[KEYSTREAM_SIZE - ks_idx] = f20b_2; + crypto1_bs_f20b_3[KEYSTREAM_SIZE - ks_idx] = f20b_3; + } else if (ks_idx > KEYSTREAM_SIZE - 16) { + f20a_1 = f20a(state_p[47- 9].value, state_p[47-11].value, state_p[47-13].value, state_p[47-15].value); + f20b_1 = crypto1_bs_f20b_2[KEYSTREAM_SIZE - ks_idx - 8]; + f20b_2 = f20b(state_p[47-25].value, state_p[47-27].value, state_p[47-29].value, state_p[47-31].value); + crypto1_bs_f20b_2[KEYSTREAM_SIZE - ks_idx] = f20b_2; + } else if (ks_idx > KEYSTREAM_SIZE - 24){ + f20a_1 = f20a(state_p[47- 9].value, state_p[47-11].value, state_p[47-13].value, state_p[47-15].value); + f20b_1 = crypto1_bs_f20b_2[KEYSTREAM_SIZE - ks_idx - 8]; + f20b_2 = crypto1_bs_f20b_3[KEYSTREAM_SIZE - ks_idx - 16]; + } else { + f20a_1 = f20a(state_p[47- 9].value, state_p[47-11].value, state_p[47-13].value, state_p[47-15].value); + f20b_1 = f20b(state_p[47-17].value, state_p[47-19].value, state_p[47-21].value, state_p[47-23].value); + f20b_2 = f20b(state_p[47-25].value, state_p[47-27].value, state_p[47-29].value, state_p[47-31].value); + } + // update keystream bit + ks_bits = f20c(f20a_1, f20b_1, f20b_2, f20a_2, f20b_3); + + // for each completed byte: + if ((ks_idx & 0x07) == 0) { + // get encrypted parity bits + const bitslice_value_t encrypted_parity_bit_vector = bitsliced_encrypted_parity_bits[tests][parity_bit_idx++].value; + + // decrypt parity bits + const bitslice_value_t decrypted_parity_bit_vector = encrypted_parity_bit_vector ^ ks_bits; + + // compare actual parity bits with decrypted parity bits and take count in results vector + results.value &= ~parity_bit_vector ^ decrypted_parity_bit_vector; + + // make sure we still have a match in our set + // if(memcmp(&results, &bs_zeroes, sizeof(bitslice_t)) == 0){ + + // this is much faster on my gcc, because somehow a memcmp needlessly spills/fills all the xmm registers to/from the stack - ??? + // the short-circuiting also helps + if(results.bytes64[0] == 0 +#if MAX_BITSLICES > 64 + && results.bytes64[1] == 0 +#endif +#if MAX_BITSLICES > 128 + && results.bytes64[2] == 0 + && results.bytes64[3] == 0 +#endif + ) { +#if defined (DEBUG_BRUTE_FORCE) + if (elimination_step < MAX_ELIMINATION_STEP) { + keys_eliminated[elimination_step] += MAX_BITSLICES; + } +#endif +#ifdef DEBUG_KEY_ELIMINATION + if (known_target_key != -1 && bucket_contains_test_key[block_idx] && *p_odd == test_state[ODD_STATE]) { + printf("Known target key eliminated in brute_force.\n"); + printf("block_idx = %d/%d, nonce = %d/%d\n", block_idx, bitsliced_blocks, tests, nonces_to_bruteforce); + } +#endif + goto stop_tests; + } + // prepare for next nonce byte +#if defined (DEBUG_BRUTE_FORCE) + elimination_step++; +#endif + parity_bit_vector = bs_zeroes.value; + } + // update feedback bit vector + if (ks_idx != 0) { + fb_bits = + (state_p[47- 0].value ^ state_p[47- 5].value ^ state_p[47- 9].value ^ + state_p[47-10].value ^ state_p[47-12].value ^ state_p[47-14].value ^ + state_p[47-15].value ^ state_p[47-17].value ^ state_p[47-19].value ^ + state_p[47-24].value ^ state_p[47-25].value ^ state_p[47-27].value ^ + state_p[47-29].value ^ state_p[47-35].value ^ state_p[47-39].value ^ + state_p[47-41].value ^ state_p[47-42].value ^ state_p[47-43].value); + } + // remember feedback and keystream vectors for later use + uint8_t bit = KEYSTREAM_SIZE - ks_idx; + if (bit <= next_common_bits) { // if needed and not yet stored + fbb[bit] = fb_bits; + ksb[bit] = ks_bits; + par[bit] = parity_bit_vector; + } + } + // prepare for next nonce. Revert to initial state + state_p = &states[KEYSTREAM_SIZE]; + } + + // all nonce tests were successful: we've found a possible key in this block! + uint32_t *p_even_test = p_even; + for (uint32_t results_word = 0; results_word < MAX_BITSLICES / 64; ++results_word) { + uint64_t results64 = results.bytes64[results_word]; + for (uint32_t results_bit = 0; results_bit < 64; results_bit++) { + if (results64 & 0x01) { + if (verify_key(cuid, nonces, best_first_bytes, *p_odd, *p_even_test)) { + struct Crypto1State pcs; + pcs.odd = *p_odd; + pcs.even = *p_even_test; + lfsr_rollback_byte(&pcs, (cuid >> 24) ^ best_first_bytes[0], true); + crypto1_get_lfsr(&pcs, &key); + bucket_states_tested += 64 * results_word + results_bit; + goto out; + } +#ifdef DEBUG_KEY_ELIMINATION + if (known_target_key != -1 && *p_even_test == test_state[EVEN_STATE] && *p_odd == test_state[ODD_STATE]) { + printf("Known target key eliminated in brute_force verification.\n"); + printf("block_idx = %d/%d\n", block_idx, bitsliced_blocks); + } +#endif + } +#ifdef DEBUG_KEY_ELIMINATION + if (known_target_key != -1 && *p_even_test == test_state[EVEN_STATE] && *p_odd == test_state[ODD_STATE]) { + printf("Known target key eliminated in brute_force (results_bit == 0).\n"); + printf("block_idx = %d/%d\n", block_idx, bitsliced_blocks); + } +#endif + results64 >>= 1; + p_even_test++; + if (p_even_test == p_even_end) { + goto stop_tests; + } + } + } +stop_tests: +#if defined (DEBUG_BRUTE_FORCE) + elimination_step = 0; +#endif + bucket_states_tested += bucket_size[block_idx]; + // prepare to set new states + state_p = &states[KEYSTREAM_SIZE]; + continue; + } + } +out: + for(uint32_t block_idx = 0; block_idx < bitsliced_blocks; ++block_idx){ + free_bitslice(bitsliced_even_states[block_idx]); + } + free(bitsliced_even_states); + free_bitslice(bitsliced_even_feedback); + __sync_fetch_and_add(num_keys_tested, bucket_states_tested); + +#if defined (DEBUG_BRUTE_FORCE) + for (uint32_t i = 0; i < MAX_ELIMINATION_STEP; i++) { + printf("Eliminated after %2u test_bytes: %5.2f%%\n", i+1, (float)keys_eliminated[i] / bucket_states_tested * 100); + } +#endif + return key; +} + + + +#ifndef __MMX__ + +// pointers to functions: +crack_states_bitsliced_t *crack_states_bitsliced_function_p = &crack_states_bitsliced_dispatch; +bitslice_test_nonces_t *bitslice_test_nonces_function_p = &bitslice_test_nonces_dispatch; + +// determine the available instruction set at runtime and call the correct function +const uint64_t crack_states_bitsliced_dispatch(uint32_t cuid, uint8_t *best_first_bytes, statelist_t *p, uint32_t *keys_found, uint64_t *num_keys_tested, uint32_t nonces_to_bruteforce, uint8_t *bf_test_nonce_2nd_byte, noncelist_t *nonces) { +#if defined (__i386__) || defined (__x86_64__) + #if !defined(__APPLE__) || (defined(__APPLE__) && (__clang_major__ > 8)) + #if (__GNUC__ >= 5) && (__GNUC__ > 5 || __GNUC_MINOR__ > 2) + if (__builtin_cpu_supports("avx512f")) crack_states_bitsliced_function_p = &crack_states_bitsliced_AVX512; + else if (__builtin_cpu_supports("avx2")) crack_states_bitsliced_function_p = &crack_states_bitsliced_AVX2; + #else + if (__builtin_cpu_supports("avx2")) crack_states_bitsliced_function_p = &crack_states_bitsliced_AVX2; + #endif + else if (__builtin_cpu_supports("avx")) crack_states_bitsliced_function_p = &crack_states_bitsliced_AVX; + else if (__builtin_cpu_supports("sse2")) crack_states_bitsliced_function_p = &crack_states_bitsliced_SSE2; + else if (__builtin_cpu_supports("mmx")) crack_states_bitsliced_function_p = &crack_states_bitsliced_MMX; + else + #endif +#endif + crack_states_bitsliced_function_p = &crack_states_bitsliced_NOSIMD; + + // call the most optimized function for this CPU + return (*crack_states_bitsliced_function_p)(cuid, best_first_bytes, p, keys_found, num_keys_tested, nonces_to_bruteforce, bf_test_nonce_2nd_byte, nonces); +} + +void bitslice_test_nonces_dispatch(uint32_t nonces_to_bruteforce, uint32_t *bf_test_nonce, uint8_t *bf_test_nonce_par) { +#if defined (__i386__) || defined (__x86_64__) + #if !defined(__APPLE__) || (defined(__APPLE__) && (__clang_major__ > 8)) + #if (__GNUC__ >= 5) && (__GNUC__ > 5 || __GNUC_MINOR__ > 2) + if (__builtin_cpu_supports("avx512f")) bitslice_test_nonces_function_p = &bitslice_test_nonces_AVX512; + else if (__builtin_cpu_supports("avx2")) bitslice_test_nonces_function_p = &bitslice_test_nonces_AVX2; + #else + if (__builtin_cpu_supports("avx2")) bitslice_test_nonces_function_p = &bitslice_test_nonces_AVX2; + #endif + else if (__builtin_cpu_supports("avx")) bitslice_test_nonces_function_p = &bitslice_test_nonces_AVX; + else if (__builtin_cpu_supports("sse2")) bitslice_test_nonces_function_p = &bitslice_test_nonces_SSE2; + else if (__builtin_cpu_supports("mmx")) bitslice_test_nonces_function_p = &bitslice_test_nonces_MMX; + else + #endif +#endif + bitslice_test_nonces_function_p = &bitslice_test_nonces_NOSIMD; + + // call the most optimized function for this CPU + (*bitslice_test_nonces_function_p)(nonces_to_bruteforce, bf_test_nonce, bf_test_nonce_par); +} + +// Entries to dispatched function calls +const uint64_t crack_states_bitsliced(uint32_t cuid, uint8_t *best_first_bytes, statelist_t *p, uint32_t *keys_found, uint64_t *num_keys_tested, uint32_t nonces_to_bruteforce, uint8_t *bf_test_nonce_2nd_byte, noncelist_t *nonces) { + return (*crack_states_bitsliced_function_p)(cuid, best_first_bytes, p, keys_found, num_keys_tested, nonces_to_bruteforce, bf_test_nonce_2nd_byte, nonces); +} + +void bitslice_test_nonces(uint32_t nonces_to_bruteforce, uint32_t *bf_test_nonce, uint8_t *bf_test_nonce_par) { + (*bitslice_test_nonces_function_p)(nonces_to_bruteforce, bf_test_nonce, bf_test_nonce_par); +} + +#endif diff --git a/client/hardnested/hardnested_bf_core.h b/client/hardnested/hardnested_bf_core.h new file mode 100644 index 000000000..7a445993e --- /dev/null +++ b/client/hardnested/hardnested_bf_core.h @@ -0,0 +1,58 @@ +//----------------------------------------------------------------------------- +// Copyright (C) 2016, 2017 by piwi +// +// This code is licensed to you under the terms of the GNU GPL, version 2 or, +// at your option, any later version. See the LICENSE.txt file for the text of +// the license. +//----------------------------------------------------------------------------- +// Implements a card only attack based on crypto text (encrypted nonces +// received during a nested authentication) only. Unlike other card only +// attacks this doesn't rely on implementation errors but only on the +// inherent weaknesses of the crypto1 cypher. Described in +// Carlo Meijer, Roel Verdult, "Ciphertext-only Cryptanalysis on Hardened +// Mifare Classic Cards" in Proceedings of the 22nd ACM SIGSAC Conference on +// Computer and Communications Security, 2015 +//----------------------------------------------------------------------------- +// +// brute forcing is based on @aczids bitsliced brute forcer +// https://github.com/aczid/crypto1_bs with some modifications. Mainly: +// - don't rollback. Start with 2nd byte of nonce instead +// - reuse results of filter subfunctions +// - reuse results of previous nonces if some first bits are identical +// +//----------------------------------------------------------------------------- +// aczid's Copyright notice: +// +// Bit-sliced Crypto-1 brute-forcing implementation +// Builds on the data structures returned by CraptEV1 craptev1_get_space(nonces, threshold, uid) +/* +Copyright (c) 2015-2016 Aram Verstegen + +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. +*/ + +#ifndef HARDNESTED_BF_CORE_H__ +#define HARDNESTED_BF_CORE_H__ + +#include "hardnested_bruteforce.h" // statelist_t + +extern const uint64_t crack_states_bitsliced(uint32_t cuid, uint8_t *best_first_bytes, statelist_t *p, uint32_t *keys_found, uint64_t *num_keys_tested, uint32_t nonces_to_bruteforce, uint8_t *bf_test_nonces_2nd_byte, noncelist_t *nonces); +extern void bitslice_test_nonces(uint32_t nonces_to_bruteforce, uint32_t *bf_test_nonces, uint8_t *bf_test_nonce_par); + +#endif diff --git a/client/hardnested/hardnested_bitarray_core.c b/client/hardnested/hardnested_bitarray_core.c new file mode 100644 index 000000000..5615d0060 --- /dev/null +++ b/client/hardnested/hardnested_bitarray_core.c @@ -0,0 +1,650 @@ +//----------------------------------------------------------------------------- +// Copyright (C) 2016, 2017 by piwi +// +// This code is licensed to you under the terms of the GNU GPL, version 2 or, +// at your option, any later version. See the LICENSE.txt file for the text of +// the license.ch b +//----------------------------------------------------------------------------- +// Implements a card only attack based on crypto text (encrypted nonces +// received during a nested authentication) only. Unlike other card only +// attacks this doesn't rely on implementation errors but only on the +// inherent weaknesses of the crypto1 cypher. Described in +// Carlo Meijer, Roel Verdult, "Ciphertext-only Cryptanalysis on Hardened +// Mifare Classic Cards" in Proceedings of the 22nd ACM SIGSAC Conference on +// Computer and Communications Security, 2015 +//----------------------------------------------------------------------------- +// some helper functions which can benefit from SIMD instructions or other special instructions +// + +#include "hardnested_bitarray_core.h" + +#include +#include +#include +#ifndef __APPLE__ +#include +#endif + +// this needs to be compiled several times for each instruction set. +// For each instruction set, define a dedicated function name: +#if defined (__AVX512F__) +#define MALLOC_BITARRAY malloc_bitarray_AVX512 +#define FREE_BITARRAY free_bitarray_AVX512 +#define BITCOUNT bitcount_AVX512 +#define COUNT_STATES count_states_AVX512 +#define BITARRAY_AND bitarray_AND_AVX512 +#define BITARRAY_LOW20_AND bitarray_low20_AND_AVX512 +#define COUNT_BITARRAY_AND count_bitarray_AND_AVX512 +#define COUNT_BITARRAY_LOW20_AND count_bitarray_low20_AND_AVX512 +#define BITARRAY_AND4 bitarray_AND4_AVX512 +#define BITARRAY_OR bitarray_OR_AVX512 +#define COUNT_BITARRAY_AND2 count_bitarray_AND2_AVX512 +#define COUNT_BITARRAY_AND3 count_bitarray_AND3_AVX512 +#define COUNT_BITARRAY_AND4 count_bitarray_AND4_AVX512 +#elif defined (__AVX2__) +#define MALLOC_BITARRAY malloc_bitarray_AVX2 +#define FREE_BITARRAY free_bitarray_AVX2 +#define BITCOUNT bitcount_AVX2 +#define COUNT_STATES count_states_AVX2 +#define BITARRAY_AND bitarray_AND_AVX2 +#define BITARRAY_LOW20_AND bitarray_low20_AND_AVX2 +#define COUNT_BITARRAY_AND count_bitarray_AND_AVX2 +#define COUNT_BITARRAY_LOW20_AND count_bitarray_low20_AND_AVX2 +#define BITARRAY_AND4 bitarray_AND4_AVX2 +#define BITARRAY_OR bitarray_OR_AVX2 +#define COUNT_BITARRAY_AND2 count_bitarray_AND2_AVX2 +#define COUNT_BITARRAY_AND3 count_bitarray_AND3_AVX2 +#define COUNT_BITARRAY_AND4 count_bitarray_AND4_AVX2 +#elif defined (__AVX__) +#define MALLOC_BITARRAY malloc_bitarray_AVX +#define FREE_BITARRAY free_bitarray_AVX +#define BITCOUNT bitcount_AVX +#define COUNT_STATES count_states_AVX +#define BITARRAY_AND bitarray_AND_AVX +#define BITARRAY_LOW20_AND bitarray_low20_AND_AVX +#define COUNT_BITARRAY_AND count_bitarray_AND_AVX +#define COUNT_BITARRAY_LOW20_AND count_bitarray_low20_AND_AVX +#define BITARRAY_AND4 bitarray_AND4_AVX +#define BITARRAY_OR bitarray_OR_AVX +#define COUNT_BITARRAY_AND2 count_bitarray_AND2_AVX +#define COUNT_BITARRAY_AND3 count_bitarray_AND3_AVX +#define COUNT_BITARRAY_AND4 count_bitarray_AND4_AVX +#elif defined (__SSE2__) +#define MALLOC_BITARRAY malloc_bitarray_SSE2 +#define FREE_BITARRAY free_bitarray_SSE2 +#define BITCOUNT bitcount_SSE2 +#define COUNT_STATES count_states_SSE2 +#define BITARRAY_AND bitarray_AND_SSE2 +#define BITARRAY_LOW20_AND bitarray_low20_AND_SSE2 +#define COUNT_BITARRAY_AND count_bitarray_AND_SSE2 +#define COUNT_BITARRAY_LOW20_AND count_bitarray_low20_AND_SSE2 +#define BITARRAY_AND4 bitarray_AND4_SSE2 +#define BITARRAY_OR bitarray_OR_SSE2 +#define COUNT_BITARRAY_AND2 count_bitarray_AND2_SSE2 +#define COUNT_BITARRAY_AND3 count_bitarray_AND3_SSE2 +#define COUNT_BITARRAY_AND4 count_bitarray_AND4_SSE2 +#elif defined (__MMX__) +#define MALLOC_BITARRAY malloc_bitarray_MMX +#define FREE_BITARRAY free_bitarray_MMX +#define BITCOUNT bitcount_MMX +#define COUNT_STATES count_states_MMX +#define BITARRAY_AND bitarray_AND_MMX +#define BITARRAY_LOW20_AND bitarray_low20_AND_MMX +#define COUNT_BITARRAY_AND count_bitarray_AND_MMX +#define COUNT_BITARRAY_LOW20_AND count_bitarray_low20_AND_MMX +#define BITARRAY_AND4 bitarray_AND4_MMX +#define BITARRAY_OR bitarray_OR_MMX +#define COUNT_BITARRAY_AND2 count_bitarray_AND2_MMX +#define COUNT_BITARRAY_AND3 count_bitarray_AND3_MMX +#define COUNT_BITARRAY_AND4 count_bitarray_AND4_MMX +#else +#define MALLOC_BITARRAY malloc_bitarray_NOSIMD +#define FREE_BITARRAY free_bitarray_NOSIMD +#define BITCOUNT bitcount_NOSIMD +#define COUNT_STATES count_states_NOSIMD +#define BITARRAY_AND bitarray_AND_NOSIMD +#define BITARRAY_LOW20_AND bitarray_low20_AND_NOSIMD +#define COUNT_BITARRAY_AND count_bitarray_AND_NOSIMD +#define COUNT_BITARRAY_LOW20_AND count_bitarray_low20_AND_NOSIMD +#define BITARRAY_AND4 bitarray_AND4_NOSIMD +#define BITARRAY_OR bitarray_OR_NOSIMD +#define COUNT_BITARRAY_AND2 count_bitarray_AND2_NOSIMD +#define COUNT_BITARRAY_AND3 count_bitarray_AND3_NOSIMD +#define COUNT_BITARRAY_AND4 count_bitarray_AND4_NOSIMD +#endif + + +// typedefs and declaration of functions: +typedef uint32_t* malloc_bitarray_t(uint32_t); +malloc_bitarray_t malloc_bitarray_AVX512, malloc_bitarray_AVX2, malloc_bitarray_AVX, malloc_bitarray_SSE2, malloc_bitarray_MMX, malloc_bitarray_NOSIMD, malloc_bitarray_dispatch; +typedef void free_bitarray_t(uint32_t*); +free_bitarray_t free_bitarray_AVX512, free_bitarray_AVX2, free_bitarray_AVX, free_bitarray_SSE2, free_bitarray_MMX, free_bitarray_NOSIMD, free_bitarray_dispatch; +typedef uint32_t bitcount_t(uint32_t); +bitcount_t bitcount_AVX512, bitcount_AVX2, bitcount_AVX, bitcount_SSE2, bitcount_MMX, bitcount_NOSIMD, bitcount_dispatch; +typedef uint32_t count_states_t(uint32_t*); +count_states_t count_states_AVX512, count_states_AVX2, count_states_AVX, count_states_SSE2, count_states_MMX, count_states_NOSIMD, count_states_dispatch; +typedef void bitarray_AND_t(uint32_t[], uint32_t[]); +bitarray_AND_t bitarray_AND_AVX512, bitarray_AND_AVX2, bitarray_AND_AVX, bitarray_AND_SSE2, bitarray_AND_MMX, bitarray_AND_NOSIMD, bitarray_AND_dispatch; +typedef void bitarray_low20_AND_t(uint32_t*, uint32_t*); +bitarray_low20_AND_t bitarray_low20_AND_AVX512, bitarray_low20_AND_AVX2, bitarray_low20_AND_AVX, bitarray_low20_AND_SSE2, bitarray_low20_AND_MMX, bitarray_low20_AND_NOSIMD, bitarray_low20_AND_dispatch; +typedef uint32_t count_bitarray_AND_t(uint32_t*, uint32_t*); +count_bitarray_AND_t count_bitarray_AND_AVX512, count_bitarray_AND_AVX2, count_bitarray_AND_AVX, count_bitarray_AND_SSE2, count_bitarray_AND_MMX, count_bitarray_AND_NOSIMD, count_bitarray_AND_dispatch; +typedef uint32_t count_bitarray_low20_AND_t(uint32_t*, uint32_t*); +count_bitarray_low20_AND_t count_bitarray_low20_AND_AVX512, count_bitarray_low20_AND_AVX2, count_bitarray_low20_AND_AVX, count_bitarray_low20_AND_SSE2, count_bitarray_low20_AND_MMX, count_bitarray_low20_AND_NOSIMD, count_bitarray_low20_AND_dispatch; +typedef void bitarray_AND4_t(uint32_t*, uint32_t*, uint32_t*, uint32_t*); +bitarray_AND4_t bitarray_AND4_AVX512, bitarray_AND4_AVX2, bitarray_AND4_AVX, bitarray_AND4_SSE2, bitarray_AND4_MMX, bitarray_AND4_NOSIMD, bitarray_AND4_dispatch; +typedef void bitarray_OR_t(uint32_t[], uint32_t[]); +bitarray_OR_t bitarray_OR_AVX512, bitarray_OR_AVX2, bitarray_OR_AVX, bitarray_OR_SSE2, bitarray_OR_MMX, bitarray_OR_NOSIMD, bitarray_OR_dispatch; +typedef uint32_t count_bitarray_AND2_t(uint32_t*, uint32_t*); +count_bitarray_AND2_t count_bitarray_AND2_AVX512, count_bitarray_AND2_AVX2, count_bitarray_AND2_AVX, count_bitarray_AND2_SSE2, count_bitarray_AND2_MMX, count_bitarray_AND2_NOSIMD, count_bitarray_AND2_dispatch; +typedef uint32_t count_bitarray_AND3_t(uint32_t*, uint32_t*, uint32_t*); +count_bitarray_AND3_t count_bitarray_AND3_AVX512, count_bitarray_AND3_AVX2, count_bitarray_AND3_AVX, count_bitarray_AND3_SSE2, count_bitarray_AND3_MMX, count_bitarray_AND3_NOSIMD, count_bitarray_AND3_dispatch; +typedef uint32_t count_bitarray_AND4_t(uint32_t*, uint32_t*, uint32_t*, uint32_t*); +count_bitarray_AND4_t count_bitarray_AND4_AVX512, count_bitarray_AND4_AVX2, count_bitarray_AND4_AVX, count_bitarray_AND4_SSE2, count_bitarray_AND4_MMX, count_bitarray_AND4_NOSIMD, count_bitarray_AND4_dispatch; + + +inline uint32_t *MALLOC_BITARRAY(uint32_t x) +{ +#if defined (_WIN32) + return __builtin_assume_aligned(_aligned_malloc((x), __BIGGEST_ALIGNMENT__), __BIGGEST_ALIGNMENT__); +#elif defined (__APPLE__) + uint32_t *allocated_memory; + if (posix_memalign((void**)&allocated_memory, __BIGGEST_ALIGNMENT__, x)) { + return NULL; + } else { + return __builtin_assume_aligned(allocated_memory, __BIGGEST_ALIGNMENT__); + } +#else + return __builtin_assume_aligned(memalign(__BIGGEST_ALIGNMENT__, (x)), __BIGGEST_ALIGNMENT__); +#endif +} + + +inline void FREE_BITARRAY(uint32_t *x) +{ +#ifdef _WIN32 + _aligned_free(x); +#else + free(x); +#endif +} + + +inline uint32_t BITCOUNT(uint32_t a) +{ + return __builtin_popcountl(a); +} + + +inline uint32_t COUNT_STATES(uint32_t *A) +{ + uint32_t count = 0; + for (uint32_t i = 0; i < (1<<19); i++) { + count += BITCOUNT(A[i]); + } + return count; +} + + +inline void BITARRAY_AND(uint32_t *restrict A, uint32_t *restrict B) +{ + A = __builtin_assume_aligned(A, __BIGGEST_ALIGNMENT__); + B = __builtin_assume_aligned(B, __BIGGEST_ALIGNMENT__); + for (uint32_t i = 0; i < (1<<19); i++) { + A[i] &= B[i]; + } +} + + +inline void BITARRAY_LOW20_AND(uint32_t *restrict A, uint32_t *restrict B) +{ + uint16_t *a = (uint16_t *)__builtin_assume_aligned(A, __BIGGEST_ALIGNMENT__); + uint16_t *b = (uint16_t *)__builtin_assume_aligned(B, __BIGGEST_ALIGNMENT__); + + for (uint32_t i = 0; i < (1<<20); i++) { + if (!b[i]) { + a[i] = 0; + } + } +} + + +inline uint32_t COUNT_BITARRAY_AND(uint32_t *restrict A, uint32_t *restrict B) +{ + A = __builtin_assume_aligned(A, __BIGGEST_ALIGNMENT__); + B = __builtin_assume_aligned(B, __BIGGEST_ALIGNMENT__); + uint32_t count = 0; + for (uint32_t i = 0; i < (1<<19); i++) { + A[i] &= B[i]; + count += BITCOUNT(A[i]); + } + return count; +} + + +inline uint32_t COUNT_BITARRAY_LOW20_AND(uint32_t *restrict A, uint32_t *restrict B) +{ + uint16_t *a = (uint16_t *)__builtin_assume_aligned(A, __BIGGEST_ALIGNMENT__); + uint16_t *b = (uint16_t *)__builtin_assume_aligned(B, __BIGGEST_ALIGNMENT__); + uint32_t count = 0; + + for (uint32_t i = 0; i < (1<<20); i++) { + if (!b[i]) { + a[i] = 0; + } + count += BITCOUNT(a[i]); + } + return count; +} + + +inline void BITARRAY_AND4(uint32_t *restrict A, uint32_t *restrict B, uint32_t *restrict C, uint32_t *restrict D) +{ + A = __builtin_assume_aligned(A, __BIGGEST_ALIGNMENT__); + B = __builtin_assume_aligned(B, __BIGGEST_ALIGNMENT__); + C = __builtin_assume_aligned(C, __BIGGEST_ALIGNMENT__); + D = __builtin_assume_aligned(D, __BIGGEST_ALIGNMENT__); + for (uint32_t i = 0; i < (1<<19); i++) { + A[i] = B[i] & C[i] & D[i]; + } +} + + +inline void BITARRAY_OR(uint32_t *restrict A, uint32_t *restrict B) +{ + A = __builtin_assume_aligned(A, __BIGGEST_ALIGNMENT__); + B = __builtin_assume_aligned(B, __BIGGEST_ALIGNMENT__); + for (uint32_t i = 0; i < (1<<19); i++) { + A[i] |= B[i]; + } +} + + +inline uint32_t COUNT_BITARRAY_AND2(uint32_t *restrict A, uint32_t *restrict B) +{ + A = __builtin_assume_aligned(A, __BIGGEST_ALIGNMENT__); + B = __builtin_assume_aligned(B, __BIGGEST_ALIGNMENT__); + uint32_t count = 0; + for (uint32_t i = 0; i < (1<<19); i++) { + count += BITCOUNT(A[i] & B[i]); + } + return count; +} + + +inline uint32_t COUNT_BITARRAY_AND3(uint32_t *restrict A, uint32_t *restrict B, uint32_t *restrict C) +{ + A = __builtin_assume_aligned(A, __BIGGEST_ALIGNMENT__); + B = __builtin_assume_aligned(B, __BIGGEST_ALIGNMENT__); + C = __builtin_assume_aligned(C, __BIGGEST_ALIGNMENT__); + uint32_t count = 0; + for (uint32_t i = 0; i < (1<<19); i++) { + count += BITCOUNT(A[i] & B[i] & C[i]); + } + return count; +} + + +inline uint32_t COUNT_BITARRAY_AND4(uint32_t *restrict A, uint32_t *restrict B, uint32_t *restrict C, uint32_t *restrict D) +{ + A = __builtin_assume_aligned(A, __BIGGEST_ALIGNMENT__); + B = __builtin_assume_aligned(B, __BIGGEST_ALIGNMENT__); + C = __builtin_assume_aligned(C, __BIGGEST_ALIGNMENT__); + D = __builtin_assume_aligned(D, __BIGGEST_ALIGNMENT__); + uint32_t count = 0; + for (uint32_t i = 0; i < (1<<19); i++) { + count += BITCOUNT(A[i] & B[i] & C[i] & D[i]); + } + return count; +} + + +#ifndef __MMX__ + +// pointers to functions: +malloc_bitarray_t *malloc_bitarray_function_p = &malloc_bitarray_dispatch; +free_bitarray_t *free_bitarray_function_p = &free_bitarray_dispatch; +bitcount_t *bitcount_function_p = &bitcount_dispatch; +count_states_t *count_states_function_p = &count_states_dispatch; +bitarray_AND_t *bitarray_AND_function_p = &bitarray_AND_dispatch; +bitarray_low20_AND_t *bitarray_low20_AND_function_p = &bitarray_low20_AND_dispatch; +count_bitarray_AND_t *count_bitarray_AND_function_p = &count_bitarray_AND_dispatch; +count_bitarray_low20_AND_t *count_bitarray_low20_AND_function_p = &count_bitarray_low20_AND_dispatch; +bitarray_AND4_t *bitarray_AND4_function_p = &bitarray_AND4_dispatch; +bitarray_OR_t *bitarray_OR_function_p = &bitarray_OR_dispatch; +count_bitarray_AND2_t *count_bitarray_AND2_function_p = &count_bitarray_AND2_dispatch; +count_bitarray_AND3_t *count_bitarray_AND3_function_p = &count_bitarray_AND3_dispatch; +count_bitarray_AND4_t *count_bitarray_AND4_function_p = &count_bitarray_AND4_dispatch; + +// determine the available instruction set at runtime and call the correct function +uint32_t *malloc_bitarray_dispatch(uint32_t x) { +#if defined (__i386__) || defined (__x86_64__) + #if !defined(__APPLE__) || (defined(__APPLE__) && (__clang_major__ > 8)) + #if (__GNUC__ >= 5) && (__GNUC__ > 5 || __GNUC_MINOR__ > 2) + if (__builtin_cpu_supports("avx512f")) malloc_bitarray_function_p = &malloc_bitarray_AVX512; + else if (__builtin_cpu_supports("avx2")) malloc_bitarray_function_p = &malloc_bitarray_AVX2; + #else + if (__builtin_cpu_supports("avx2")) malloc_bitarray_function_p = &malloc_bitarray_AVX2; + #endif + else if (__builtin_cpu_supports("avx")) malloc_bitarray_function_p = &malloc_bitarray_AVX; + else if (__builtin_cpu_supports("sse2")) malloc_bitarray_function_p = &malloc_bitarray_SSE2; + else if (__builtin_cpu_supports("mmx")) malloc_bitarray_function_p = &malloc_bitarray_MMX; + else + #endif +#endif + malloc_bitarray_function_p = &malloc_bitarray_NOSIMD; + + // call the most optimized function for this CPU + return (*malloc_bitarray_function_p)(x); +} + +void free_bitarray_dispatch(uint32_t *x) { +#if defined (__i386__) || defined (__x86_64__) + #if !defined(__APPLE__) || (defined(__APPLE__) && (__clang_major__ > 8)) + #if (__GNUC__ >= 5) && (__GNUC__ > 5 || __GNUC_MINOR__ > 2) + if (__builtin_cpu_supports("avx512f")) free_bitarray_function_p = &free_bitarray_AVX512; + else if (__builtin_cpu_supports("avx2")) free_bitarray_function_p = &free_bitarray_AVX2; + #else + if (__builtin_cpu_supports("avx2")) free_bitarray_function_p = &free_bitarray_AVX2; + #endif + else if (__builtin_cpu_supports("avx")) free_bitarray_function_p = &free_bitarray_AVX; + else if (__builtin_cpu_supports("sse2")) free_bitarray_function_p = &free_bitarray_SSE2; + else if (__builtin_cpu_supports("mmx")) free_bitarray_function_p = &free_bitarray_MMX; + else + #endif +#endif + free_bitarray_function_p = &free_bitarray_NOSIMD; + + // call the most optimized function for this CPU + (*free_bitarray_function_p)(x); +} + +uint32_t bitcount_dispatch(uint32_t a) { +#if defined (__i386__) || defined (__x86_64__) + #if !defined(__APPLE__) || (defined(__APPLE__) && (__clang_major__ > 8)) + #if (__GNUC__ >= 5) && (__GNUC__ > 5 || __GNUC_MINOR__ > 2) + if (__builtin_cpu_supports("avx512f")) bitcount_function_p = &bitcount_AVX512; + else if (__builtin_cpu_supports("avx2")) bitcount_function_p = &bitcount_AVX2; + #else + if (__builtin_cpu_supports("avx2")) bitcount_function_p = &bitcount_AVX2; + #endif + else if (__builtin_cpu_supports("avx")) bitcount_function_p = &bitcount_AVX; + else if (__builtin_cpu_supports("sse2")) bitcount_function_p = &bitcount_SSE2; + else if (__builtin_cpu_supports("mmx")) bitcount_function_p = &bitcount_MMX; + else + #endif +#endif + bitcount_function_p = &bitcount_NOSIMD; + + // call the most optimized function for this CPU + return (*bitcount_function_p)(a); +} + +uint32_t count_states_dispatch(uint32_t *bitarray) { +#if defined (__i386__) || defined (__x86_64__) + #if !defined(__APPLE__) || (defined(__APPLE__) && (__clang_major__ > 8)) + #if (__GNUC__ >= 5) && (__GNUC__ > 5 || __GNUC_MINOR__ > 2) + if (__builtin_cpu_supports("avx512f")) count_states_function_p = &count_states_AVX512; + else if (__builtin_cpu_supports("avx2")) count_states_function_p = &count_states_AVX2; + #else + if (__builtin_cpu_supports("avx2")) count_states_function_p = &count_states_AVX2; + #endif + else if (__builtin_cpu_supports("avx")) count_states_function_p = &count_states_AVX; + else if (__builtin_cpu_supports("sse2")) count_states_function_p = &count_states_SSE2; + else if (__builtin_cpu_supports("mmx")) count_states_function_p = &count_states_MMX; + else + #endif +#endif + count_states_function_p = &count_states_NOSIMD; + + // call the most optimized function for this CPU + return (*count_states_function_p)(bitarray); +} + +void bitarray_AND_dispatch(uint32_t *A, uint32_t *B) { +#if defined (__i386__) || defined (__x86_64__) + #if !defined(__APPLE__) || (defined(__APPLE__) && (__clang_major__ > 8)) + #if (__GNUC__ >= 5) && (__GNUC__ > 5 || __GNUC_MINOR__ > 2) + if (__builtin_cpu_supports("avx512f")) bitarray_AND_function_p = &bitarray_AND_AVX512; + else if (__builtin_cpu_supports("avx2")) bitarray_AND_function_p = &bitarray_AND_AVX2; + #else + if (__builtin_cpu_supports("avx2")) bitarray_AND_function_p = &bitarray_AND_AVX2; + #endif + else if (__builtin_cpu_supports("avx")) bitarray_AND_function_p = &bitarray_AND_AVX; + else if (__builtin_cpu_supports("sse2")) bitarray_AND_function_p = &bitarray_AND_SSE2; + else if (__builtin_cpu_supports("mmx")) bitarray_AND_function_p = &bitarray_AND_MMX; + else + #endif +#endif + bitarray_AND_function_p = &bitarray_AND_NOSIMD; + + // call the most optimized function for this CPU + (*bitarray_AND_function_p)(A,B); +} + +void bitarray_low20_AND_dispatch(uint32_t *A, uint32_t *B) { +#if defined (__i386__) || defined (__x86_64__) + #if !defined(__APPLE__) || (defined(__APPLE__) && (__clang_major__ > 8)) + #if (__GNUC__ >= 5) && (__GNUC__ > 5 || __GNUC_MINOR__ > 2) + if (__builtin_cpu_supports("avx512f")) bitarray_low20_AND_function_p = &bitarray_low20_AND_AVX512; + else if (__builtin_cpu_supports("avx2")) bitarray_low20_AND_function_p = &bitarray_low20_AND_AVX2; + #else + if (__builtin_cpu_supports("avx2")) bitarray_low20_AND_function_p = &bitarray_low20_AND_AVX2; + #endif + else if (__builtin_cpu_supports("avx")) bitarray_low20_AND_function_p = &bitarray_low20_AND_AVX; + else if (__builtin_cpu_supports("sse2")) bitarray_low20_AND_function_p = &bitarray_low20_AND_SSE2; + else if (__builtin_cpu_supports("mmx")) bitarray_low20_AND_function_p = &bitarray_low20_AND_MMX; + else + #endif +#endif + bitarray_low20_AND_function_p = &bitarray_low20_AND_NOSIMD; + + // call the most optimized function for this CPU + (*bitarray_low20_AND_function_p)(A, B); +} + +uint32_t count_bitarray_AND_dispatch(uint32_t *A, uint32_t *B) { +#if defined (__i386__) || defined (__x86_64__) + #if !defined(__APPLE__) || (defined(__APPLE__) && (__clang_major__ > 8)) + #if (__GNUC__ >= 5) && (__GNUC__ > 5 || __GNUC_MINOR__ > 2) + if (__builtin_cpu_supports("avx512f")) count_bitarray_AND_function_p = &count_bitarray_AND_AVX512; + else if (__builtin_cpu_supports("avx2")) count_bitarray_AND_function_p = &count_bitarray_AND_AVX2; + #else + if (__builtin_cpu_supports("avx2")) count_bitarray_AND_function_p = &count_bitarray_AND_AVX2; + #endif + else if (__builtin_cpu_supports("avx")) count_bitarray_AND_function_p = &count_bitarray_AND_AVX; + else if (__builtin_cpu_supports("sse2")) count_bitarray_AND_function_p = &count_bitarray_AND_SSE2; + else if (__builtin_cpu_supports("mmx")) count_bitarray_AND_function_p = &count_bitarray_AND_MMX; + else + #endif +#endif + count_bitarray_AND_function_p = &count_bitarray_AND_NOSIMD; + + // call the most optimized function for this CPU + return (*count_bitarray_AND_function_p)(A, B); +} + +uint32_t count_bitarray_low20_AND_dispatch(uint32_t *A, uint32_t *B) { +#if defined (__i386__) || defined (__x86_64__) + #if !defined(__APPLE__) || (defined(__APPLE__) && (__clang_major__ > 8)) + #if (__GNUC__ >= 5) && (__GNUC__ > 5 || __GNUC_MINOR__ > 2) + if (__builtin_cpu_supports("avx512f")) count_bitarray_low20_AND_function_p = &count_bitarray_low20_AND_AVX512; + else if (__builtin_cpu_supports("avx2")) count_bitarray_low20_AND_function_p = &count_bitarray_low20_AND_AVX2; + #else + if (__builtin_cpu_supports("avx2")) count_bitarray_low20_AND_function_p = &count_bitarray_low20_AND_AVX2; + #endif + else if (__builtin_cpu_supports("avx")) count_bitarray_low20_AND_function_p = &count_bitarray_low20_AND_AVX; + else if (__builtin_cpu_supports("sse2")) count_bitarray_low20_AND_function_p = &count_bitarray_low20_AND_SSE2; + else if (__builtin_cpu_supports("mmx")) count_bitarray_low20_AND_function_p = &count_bitarray_low20_AND_MMX; + else + #endif +#endif + count_bitarray_low20_AND_function_p = &count_bitarray_low20_AND_NOSIMD; + + // call the most optimized function for this CPU + return (*count_bitarray_low20_AND_function_p)(A, B); +} + +void bitarray_AND4_dispatch(uint32_t *A, uint32_t *B, uint32_t *C, uint32_t *D) { +#if defined (__i386__) || defined (__x86_64__) + #if !defined(__APPLE__) || (defined(__APPLE__) && (__clang_major__ > 8)) + #if (__GNUC__ >= 5) && (__GNUC__ > 5 || __GNUC_MINOR__ > 2) + if (__builtin_cpu_supports("avx512f")) bitarray_AND4_function_p = &bitarray_AND4_AVX512; + else if (__builtin_cpu_supports("avx2")) bitarray_AND4_function_p = &bitarray_AND4_AVX2; + #else + if (__builtin_cpu_supports("avx2")) bitarray_AND4_function_p = &bitarray_AND4_AVX2; + #endif + else if (__builtin_cpu_supports("avx")) bitarray_AND4_function_p = &bitarray_AND4_AVX; + else if (__builtin_cpu_supports("sse2")) bitarray_AND4_function_p = &bitarray_AND4_SSE2; + else if (__builtin_cpu_supports("mmx")) bitarray_AND4_function_p = &bitarray_AND4_MMX; + else + #endif +#endif + bitarray_AND4_function_p = &bitarray_AND4_NOSIMD; + + // call the most optimized function for this CPU + (*bitarray_AND4_function_p)(A, B, C, D); +} + +void bitarray_OR_dispatch(uint32_t *A, uint32_t *B) { +#if defined (__i386__) || defined (__x86_64__) + #if !defined(__APPLE__) || (defined(__APPLE__) && (__clang_major__ > 8)) + #if (__GNUC__ >= 5) && (__GNUC__ > 5 || __GNUC_MINOR__ > 2) + if (__builtin_cpu_supports("avx512f")) bitarray_OR_function_p = &bitarray_OR_AVX512; + else if (__builtin_cpu_supports("avx2")) bitarray_OR_function_p = &bitarray_OR_AVX2; + #else + if (__builtin_cpu_supports("avx2")) bitarray_OR_function_p = &bitarray_OR_AVX2; + #endif + else if (__builtin_cpu_supports("avx")) bitarray_OR_function_p = &bitarray_OR_AVX; + else if (__builtin_cpu_supports("sse2")) bitarray_OR_function_p = &bitarray_OR_SSE2; + else if (__builtin_cpu_supports("mmx")) bitarray_OR_function_p = &bitarray_OR_MMX; + else + #endif +#endif + bitarray_OR_function_p = &bitarray_OR_NOSIMD; + + // call the most optimized function for this CPU + (*bitarray_OR_function_p)(A,B); +} + +uint32_t count_bitarray_AND2_dispatch(uint32_t *A, uint32_t *B) { +#if defined (__i386__) || defined (__x86_64__) + #if !defined(__APPLE__) || (defined(__APPLE__) && (__clang_major__ > 8)) + #if (__GNUC__ >= 5) && (__GNUC__ > 5 || __GNUC_MINOR__ > 2) + if (__builtin_cpu_supports("avx512f")) count_bitarray_AND2_function_p = &count_bitarray_AND2_AVX512; + else if (__builtin_cpu_supports("avx2")) count_bitarray_AND2_function_p = &count_bitarray_AND2_AVX2; + #else + if (__builtin_cpu_supports("avx2")) count_bitarray_AND2_function_p = &count_bitarray_AND2_AVX2; + #endif + else if (__builtin_cpu_supports("avx")) count_bitarray_AND2_function_p = &count_bitarray_AND2_AVX; + else if (__builtin_cpu_supports("sse2")) count_bitarray_AND2_function_p = &count_bitarray_AND2_SSE2; + else if (__builtin_cpu_supports("mmx")) count_bitarray_AND2_function_p = &count_bitarray_AND2_MMX; + else + #endif +#endif + count_bitarray_AND2_function_p = &count_bitarray_AND2_NOSIMD; + + // call the most optimized function for this CPU + return (*count_bitarray_AND2_function_p)(A, B); +} + +uint32_t count_bitarray_AND3_dispatch(uint32_t *A, uint32_t *B, uint32_t *C) { +#if defined (__i386__) || defined (__x86_64__) + #if !defined(__APPLE__) || (defined(__APPLE__) && (__clang_major__ > 8)) + #if (__GNUC__ >= 5) && (__GNUC__ > 5 || __GNUC_MINOR__ > 2) + if (__builtin_cpu_supports("avx512f")) count_bitarray_AND3_function_p = &count_bitarray_AND3_AVX512; + else if (__builtin_cpu_supports("avx2")) count_bitarray_AND3_function_p = &count_bitarray_AND3_AVX2; + #else + if (__builtin_cpu_supports("avx2")) count_bitarray_AND3_function_p = &count_bitarray_AND3_AVX2; + #endif + else if (__builtin_cpu_supports("avx")) count_bitarray_AND3_function_p = &count_bitarray_AND3_AVX; + else if (__builtin_cpu_supports("sse2")) count_bitarray_AND3_function_p = &count_bitarray_AND3_SSE2; + else if (__builtin_cpu_supports("mmx")) count_bitarray_AND3_function_p = &count_bitarray_AND3_MMX; + else + #endif +#endif + count_bitarray_AND3_function_p = &count_bitarray_AND3_NOSIMD; + + // call the most optimized function for this CPU + return (*count_bitarray_AND3_function_p)(A, B, C); +} + +uint32_t count_bitarray_AND4_dispatch(uint32_t *A, uint32_t *B, uint32_t *C, uint32_t *D) { +#if defined (__i386__) || defined (__x86_64__) + #if !defined(__APPLE__) || (defined(__APPLE__) && (__clang_major__ > 8)) + #if (__GNUC__ >= 5) && (__GNUC__ > 5 || __GNUC_MINOR__ > 2) + if (__builtin_cpu_supports("avx512f")) count_bitarray_AND4_function_p = &count_bitarray_AND4_AVX512; + else if (__builtin_cpu_supports("avx2")) count_bitarray_AND4_function_p = &count_bitarray_AND4_AVX2; + #else + if (__builtin_cpu_supports("avx2")) count_bitarray_AND4_function_p = &count_bitarray_AND4_AVX2; + #endif + else if (__builtin_cpu_supports("avx")) count_bitarray_AND4_function_p = &count_bitarray_AND4_AVX; + else if (__builtin_cpu_supports("sse2")) count_bitarray_AND4_function_p = &count_bitarray_AND4_SSE2; + else if (__builtin_cpu_supports("mmx")) count_bitarray_AND4_function_p = &count_bitarray_AND4_MMX; + else + #endif +#endif + count_bitarray_AND4_function_p = &count_bitarray_AND4_NOSIMD; + + // call the most optimized function for this CPU + return (*count_bitarray_AND4_function_p)(A, B, C, D); +} + + +///////////////////////////////////////////////77 +// Entries to dispatched function calls + +uint32_t *malloc_bitarray(uint32_t x) { + return (*malloc_bitarray_function_p)(x); +} + +void free_bitarray(uint32_t *x) { + (*free_bitarray_function_p)(x); +} + +uint32_t bitcount(uint32_t a) { + return (*bitcount_function_p)(a); +} + +uint32_t count_states(uint32_t *bitarray) { + return (*count_states_function_p)(bitarray); +} + +void bitarray_AND(uint32_t *A, uint32_t *B) { + (*bitarray_AND_function_p)(A, B); +} + +void bitarray_low20_AND(uint32_t *A, uint32_t *B) { + (*bitarray_low20_AND_function_p)(A, B); +} + +uint32_t count_bitarray_AND(uint32_t *A, uint32_t *B) { + return (*count_bitarray_AND_function_p)(A, B); +} + +uint32_t count_bitarray_low20_AND(uint32_t *A, uint32_t *B) { + return (*count_bitarray_low20_AND_function_p)(A, B); +} + +void bitarray_AND4(uint32_t *A, uint32_t *B, uint32_t *C, uint32_t *D) { + (*bitarray_AND4_function_p)(A, B, C, D); +} + +void bitarray_OR(uint32_t *A, uint32_t *B) { + (*bitarray_OR_function_p)(A, B); +} + +uint32_t count_bitarray_AND2(uint32_t *A, uint32_t *B) { + return (*count_bitarray_AND2_function_p)(A, B); +} + +uint32_t count_bitarray_AND3(uint32_t *A, uint32_t *B, uint32_t *C) { + return (*count_bitarray_AND3_function_p)(A, B, C); +} + +uint32_t count_bitarray_AND4(uint32_t *A, uint32_t *B, uint32_t *C, uint32_t *D) { + return (*count_bitarray_AND4_function_p)(A, B, C, D); +} + +#endif + diff --git a/client/hardnested/hardnested_bitarray_core.h b/client/hardnested/hardnested_bitarray_core.h new file mode 100644 index 000000000..0d92d6b9a --- /dev/null +++ b/client/hardnested/hardnested_bitarray_core.h @@ -0,0 +1,69 @@ +//----------------------------------------------------------------------------- +// Copyright (C) 2016, 2017 by piwi +// +// This code is licensed to you under the terms of the GNU GPL, version 2 or, +// at your option, any later version. See the LICENSE.txt file for the text of +// the license. +//----------------------------------------------------------------------------- +// Implements a card only attack based on crypto text (encrypted nonces +// received during a nested authentication) only. Unlike other card only +// attacks this doesn't rely on implementation errors but only on the +// inherent weaknesses of the crypto1 cypher. Described in +// Carlo Meijer, Roel Verdult, "Ciphertext-only Cryptanalysis on Hardened +// Mifare Classic Cards" in Proceedings of the 22nd ACM SIGSAC Conference on +// Computer and Communications Security, 2015 +//----------------------------------------------------------------------------- +// +// brute forcing is based on @aczids bitsliced brute forcer +// https://github.com/aczid/crypto1_bs with some modifications. Mainly: +// - don't rollback. Start with 2nd byte of nonce instead +// - reuse results of filter subfunctions +// - reuse results of previous nonces if some first bits are identical +// +//----------------------------------------------------------------------------- +// aczid's Copyright notice: +// +// Bit-sliced Crypto-1 brute-forcing implementation +// Builds on the data structures returned by CraptEV1 craptev1_get_space(nonces, threshold, uid) +/* +Copyright (c) 2015-2016 Aram Verstegen + +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. +*/ + +#ifndef HARDNESTED_BITARRAY_CORE_H__ +#define HARDNESTED_BITARRAY_CORE_H__ + +#include + +extern uint32_t *malloc_bitarray(uint32_t x); +extern void free_bitarray(uint32_t *x); +extern uint32_t bitcount(uint32_t a); +extern uint32_t count_states(uint32_t *A); +extern void bitarray_AND(uint32_t *A, uint32_t *B); +extern void bitarray_low20_AND(uint32_t *A, uint32_t *B); +extern uint32_t count_bitarray_AND(uint32_t *A, uint32_t *B); +extern uint32_t count_bitarray_low20_AND(uint32_t *A, uint32_t *B); +extern void bitarray_AND4(uint32_t *A, uint32_t *B, uint32_t *C, uint32_t *D); +extern void bitarray_OR(uint32_t *A, uint32_t *B); +extern uint32_t count_bitarray_AND2(uint32_t *A, uint32_t *B); +extern uint32_t count_bitarray_AND3(uint32_t *A, uint32_t *B, uint32_t *C); +extern uint32_t count_bitarray_AND4(uint32_t *A, uint32_t *B, uint32_t *C, uint32_t *D); + +#endif diff --git a/client/hardnested/hardnested_bruteforce.c b/client/hardnested/hardnested_bruteforce.c new file mode 100644 index 000000000..718b7c5d5 --- /dev/null +++ b/client/hardnested/hardnested_bruteforce.c @@ -0,0 +1,472 @@ +//----------------------------------------------------------------------------- +// Copyright (C) 2016, 2017 by piwi +// +// This code is licensed to you under the terms of the GNU GPL, version 2 or, +// at your option, any later version. See the LICENSE.txt file for the text of +// the license. +//----------------------------------------------------------------------------- +// Implements a card only attack based on crypto text (encrypted nonces +// received during a nested authentication) only. Unlike other card only +// attacks this doesn't rely on implementation errors but only on the +// inherent weaknesses of the crypto1 cypher. Described in +// Carlo Meijer, Roel Verdult, "Ciphertext-only Cryptanalysis on Hardened +// Mifare Classic Cards" in Proceedings of the 22nd ACM SIGSAC Conference on +// Computer and Communications Security, 2015 +//----------------------------------------------------------------------------- +// +// brute forcing is based on @aczids bitsliced brute forcer +// https://github.com/aczid/crypto1_bs with some modifications. Mainly: +// - don't rollback. Start with 2nd byte of nonce instead +// - reuse results of filter subfunctions +// - reuse results of previous nonces if some first bits are identical +// +//----------------------------------------------------------------------------- +// aczid's Copyright notice: +// +// Bit-sliced Crypto-1 brute-forcing implementation +// Builds on the data structures returned by CraptEV1 craptev1_get_space(nonces, threshold, uid) +/* +Copyright (c) 2015-2016 Aram Verstegen + +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. +*/ + +#include "hardnested_bruteforce.h" + +#include +#include +#include +#include +#include +#include +#include "proxmark3.h" +#include "cmdhfmfhard.h" +#include "hardnested_bf_core.h" +#include "ui.h" +#include "util.h" +#include "util_posix.h" +#include "crapto1/crapto1.h" +#include "parity.h" + +#define NUM_BRUTE_FORCE_THREADS (num_CPUs()) +#define DEFAULT_BRUTE_FORCE_RATE (120000000.0) // if benchmark doesn't succeed +#define TEST_BENCH_SIZE (6000) // number of odd and even states for brute force benchmark +#define TEST_BENCH_FILENAME "hardnested/bf_bench_data.bin" +//#define WRITE_BENCH_FILE + +// debugging options +#define DEBUG_KEY_ELIMINATION +// #define DEBUG_BRUTE_FORCE + +typedef enum { + EVEN_STATE = 0, + ODD_STATE = 1 +} odd_even_t; + +static uint32_t nonces_to_bruteforce = 0; +static uint32_t bf_test_nonce[256]; +static uint8_t bf_test_nonce_2nd_byte[256]; +static uint8_t bf_test_nonce_par[256]; +static uint32_t bucket_count = 0; +static statelist_t* buckets[128]; +static uint32_t keys_found = 0; +static uint64_t num_keys_tested; + + +uint8_t trailing_zeros(uint8_t byte) +{ + static const uint8_t trailing_zeros_LUT[256] = { + 8, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, + 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, + 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, + 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, + 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, + 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, + 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, + 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, + 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, + 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, + 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, + 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, + 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, + 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, + 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, + 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0 + }; + + return trailing_zeros_LUT[byte]; +} + + +bool verify_key(uint32_t cuid, noncelist_t *nonces, uint8_t *best_first_bytes, uint32_t odd, uint32_t even) +{ + struct Crypto1State pcs; + for (uint16_t test_first_byte = 1; test_first_byte < 256; test_first_byte++) { + noncelistentry_t *test_nonce = nonces[best_first_bytes[test_first_byte]].first; + while (test_nonce != NULL) { + pcs.odd = odd; + pcs.even = even; + lfsr_rollback_byte(&pcs, (cuid >> 24) ^ best_first_bytes[0], true); + for (int8_t byte_pos = 3; byte_pos >= 0; byte_pos--) { + uint8_t test_par_enc_bit = (test_nonce->par_enc >> byte_pos) & 0x01; // the encoded parity bit + uint8_t test_byte_enc = (test_nonce->nonce_enc >> (8*byte_pos)) & 0xff; // the encoded nonce byte + uint8_t test_byte_dec = crypto1_byte(&pcs, test_byte_enc /* ^ (cuid >> (8*byte_pos)) */, true) ^ test_byte_enc; // decode the nonce byte + uint8_t ks_par = filter(pcs.odd); // the keystream bit to encode/decode the parity bit + uint8_t test_par_enc2 = ks_par ^ evenparity8(test_byte_dec); // determine the decoded byte's parity and encode it + if (test_par_enc_bit != test_par_enc2) { + return false; + } + } + test_nonce = test_nonce->next; + } + } + return true; +} + + +static void* crack_states_thread(void* x){ + + struct arg { + bool silent; + int thread_ID; + uint32_t cuid; + uint32_t num_acquired_nonces; + uint64_t maximum_states; + noncelist_t *nonces; + uint8_t* best_first_bytes; + } *thread_arg; + + thread_arg = (struct arg *)x; + const int thread_id = thread_arg->thread_ID; + uint32_t current_bucket = thread_id; + while(current_bucket < bucket_count){ + statelist_t *bucket = buckets[current_bucket]; + if(bucket){ +#if defined (DEBUG_BRUTE_FORCE) + printf("Thread %u starts working on bucket %u\n", thread_id, current_bucket); +#endif + const uint64_t key = crack_states_bitsliced(thread_arg->cuid, thread_arg->best_first_bytes, bucket, &keys_found, &num_keys_tested, nonces_to_bruteforce, bf_test_nonce_2nd_byte, thread_arg->nonces); + if(key != -1){ + __sync_fetch_and_add(&keys_found, 1); + char progress_text[80]; + sprintf(progress_text, "Brute force phase completed. Key found: %012" PRIx64, key); + hardnested_print_progress(thread_arg->num_acquired_nonces, progress_text, 0.0, 0); + break; + } else if(keys_found){ + break; + } else { + if (!thread_arg->silent) { + char progress_text[80]; + sprintf(progress_text, "Brute force phase: %6.02f%%", 100.0*(float)num_keys_tested/(float)(thread_arg->maximum_states)); + float remaining_bruteforce = thread_arg->nonces[thread_arg->best_first_bytes[0]].expected_num_brute_force - (float)num_keys_tested/2; + hardnested_print_progress(thread_arg->num_acquired_nonces, progress_text, remaining_bruteforce, 5000); + } + } + } + current_bucket += NUM_BRUTE_FORCE_THREADS; + } + return NULL; +} + + +void prepare_bf_test_nonces(noncelist_t *nonces, uint8_t best_first_byte) +{ + // we do bitsliced brute forcing with best_first_bytes[0] only. + // Extract the corresponding 2nd bytes + noncelistentry_t *test_nonce = nonces[best_first_byte].first; + uint32_t i = 0; + while (test_nonce != NULL) { + bf_test_nonce[i] = test_nonce->nonce_enc; + bf_test_nonce_par[i] = test_nonce->par_enc; + bf_test_nonce_2nd_byte[i] = (test_nonce->nonce_enc >> 16) & 0xff; + test_nonce = test_nonce->next; + i++; + } + nonces_to_bruteforce = i; + + // printf("Nonces to bruteforce: %d\n", nonces_to_bruteforce); + // printf("Common bits of first 4 2nd nonce bytes (before sorting): %u %u %u\n", + // trailing_zeros(bf_test_nonce_2nd_byte[1] ^ bf_test_nonce_2nd_byte[0]), + // trailing_zeros(bf_test_nonce_2nd_byte[2] ^ bf_test_nonce_2nd_byte[1]), + // trailing_zeros(bf_test_nonce_2nd_byte[3] ^ bf_test_nonce_2nd_byte[2])); + + uint8_t best_4[4] = {0}; + int sum_best = -1; + for (uint16_t n1 = 0; n1 < nonces_to_bruteforce; n1++) { + for (uint16_t n2 = 0; n2 < nonces_to_bruteforce; n2++) { + if (n2 != n1) { + for (uint16_t n3 = 0; n3 < nonces_to_bruteforce; n3++) { + if ((n3 != n2 && n3 != n1) || nonces_to_bruteforce < 3 + // && trailing_zeros(bf_test_nonce_2nd_byte[n1] ^ bf_test_nonce_2nd_byte[n2]) + // > trailing_zeros(bf_test_nonce_2nd_byte[n2] ^ bf_test_nonce_2nd_byte[n3]) + ) { + for (uint16_t n4 = 0; n4 < nonces_to_bruteforce; n4++) { + if ((n4 != n3 && n4 != n2 && n4 != n1) || nonces_to_bruteforce < 4 + // && trailing_zeros(bf_test_nonce_2nd_byte[n2] ^ bf_test_nonce_2nd_byte[n3]) + // > trailing_zeros(bf_test_nonce_2nd_byte[n3] ^ bf_test_nonce_2nd_byte[n4]) + ) { + int sum = nonces_to_bruteforce > 1 ? trailing_zeros(bf_test_nonce_2nd_byte[n1] ^ bf_test_nonce_2nd_byte[n2]) : 0.0 + + nonces_to_bruteforce > 2 ? trailing_zeros(bf_test_nonce_2nd_byte[n2] ^ bf_test_nonce_2nd_byte[n3]) : 0.0 + + nonces_to_bruteforce > 3 ? trailing_zeros(bf_test_nonce_2nd_byte[n3] ^ bf_test_nonce_2nd_byte[n4]) : 0.0; + if (sum > sum_best) { + sum_best = sum; + best_4[0] = n1; + best_4[1] = n2; + best_4[2] = n3; + best_4[3] = n4; + } + } + } + } + } + } + } + } + + uint32_t bf_test_nonce_temp[4]; + uint8_t bf_test_nonce_par_temp[4]; + uint8_t bf_test_nonce_2nd_byte_temp[4]; + for (uint8_t i = 0; i < 4 && i < nonces_to_bruteforce; i++) { + bf_test_nonce_temp[i] = bf_test_nonce[best_4[i]]; + + bf_test_nonce_par_temp[i] = bf_test_nonce_par[best_4[i]]; + bf_test_nonce_2nd_byte_temp[i] = bf_test_nonce_2nd_byte[best_4[i]]; + } + for (uint8_t i = 0; i < 4 && i < nonces_to_bruteforce; i++) { + bf_test_nonce[i] = bf_test_nonce_temp[i]; + bf_test_nonce_par[i] = bf_test_nonce_par_temp[i]; + bf_test_nonce_2nd_byte[i] = bf_test_nonce_2nd_byte_temp[i]; + } +} + + +#if defined (WRITE_BENCH_FILE) +static void write_benchfile(statelist_t *candidates) { + + printf("Writing brute force benchmark data..."); + FILE *benchfile = fopen(TEST_BENCH_FILENAME, "wb"); + fwrite(&nonces_to_bruteforce, 1, sizeof(nonces_to_bruteforce), benchfile); + for (uint32_t i = 0; i < nonces_to_bruteforce; i++) { + fwrite(&(bf_test_nonce[i]), 1, sizeof(bf_test_nonce[i]), benchfile); + fwrite(&(bf_test_nonce_par[i]), 1, sizeof(bf_test_nonce_par[i]), benchfile); + } + uint32_t num_states = MIN(candidates->len[EVEN_STATE], TEST_BENCH_SIZE); + fwrite(&num_states, 1, sizeof(num_states), benchfile); + for (uint32_t i = 0; i < num_states; i++) { + fwrite(&(candidates->states[EVEN_STATE][i]), 1, sizeof(uint32_t), benchfile); + } + num_states = MIN(candidates->len[ODD_STATE], TEST_BENCH_SIZE); + fwrite(&num_states, 1, sizeof(num_states), benchfile); + for (uint32_t i = 0; i < num_states; i++) { + fwrite(&(candidates->states[ODD_STATE][i]), 1, sizeof(uint32_t), benchfile); + } + fclose(benchfile); + printf("done.\n"); +} +#endif + + +bool brute_force_bs(float *bf_rate, statelist_t *candidates, uint32_t cuid, uint32_t num_acquired_nonces, uint64_t maximum_states, noncelist_t *nonces, uint8_t *best_first_bytes) +{ +#if defined (WRITE_BENCH_FILE) + write_benchfile(candidates); +#endif + bool silent = (bf_rate != NULL); + + // if (!silent) { + // PrintAndLog("Brute force phase starting."); + // PrintAndLog("Using %u-bit bitslices", MAX_BITSLICES); + // } + + keys_found = 0; + num_keys_tested = 0; + + bitslice_test_nonces(nonces_to_bruteforce, bf_test_nonce, bf_test_nonce_par); + + // count number of states to go + bucket_count = 0; + for (statelist_t *p = candidates; p != NULL; p = p->next) { + if (p->states[ODD_STATE] != NULL && p->states[EVEN_STATE] != NULL) { + buckets[bucket_count] = p; + bucket_count++; + } + } + + uint64_t start_time = msclock(); + // enumerate states using all hardware threads, each thread handles one bucket + // if (!silent) { + // PrintAndLog("Starting %u cracking threads to search %u buckets containing a total of %" PRIu64" states...\n", NUM_BRUTE_FORCE_THREADS, bucket_count, maximum_states); + // printf("Common bits of first 4 2nd nonce bytes: %u %u %u\n", + // trailing_zeros(bf_test_nonce_2nd_byte[1] ^ bf_test_nonce_2nd_byte[0]), + // trailing_zeros(bf_test_nonce_2nd_byte[2] ^ bf_test_nonce_2nd_byte[1]), + // trailing_zeros(bf_test_nonce_2nd_byte[3] ^ bf_test_nonce_2nd_byte[2])); + // } + + pthread_t threads[NUM_BRUTE_FORCE_THREADS]; + struct args { + bool silent; + int thread_ID; + uint32_t cuid; + uint32_t num_acquired_nonces; + uint64_t maximum_states; + noncelist_t *nonces; + uint8_t *best_first_bytes; + } thread_args[NUM_BRUTE_FORCE_THREADS]; + + for(uint32_t i = 0; i < NUM_BRUTE_FORCE_THREADS; i++){ + thread_args[i].thread_ID = i; + thread_args[i].silent = silent; + thread_args[i].cuid = cuid; + thread_args[i].num_acquired_nonces = num_acquired_nonces; + thread_args[i].maximum_states = maximum_states; + thread_args[i].nonces = nonces; + thread_args[i].best_first_bytes = best_first_bytes; + pthread_create(&threads[i], NULL, crack_states_thread, (void*)&thread_args[i]); + } + for(uint32_t i = 0; i < NUM_BRUTE_FORCE_THREADS; i++){ + pthread_join(threads[i], 0); + } + + uint64_t elapsed_time = msclock() - start_time; + + // if (!silent) { + // printf("Brute force completed after testing %" PRIu64" (2^%1.1f) keys in %1.1f seconds at a rate of %1.0f (2^%1.1f) keys per second.\n", + // num_keys_tested, + // log(num_keys_tested) / log(2.0), + // (float)elapsed_time/1000.0, + // (float)num_keys_tested / ((float)elapsed_time / 1000.0), + // log((float)num_keys_tested / ((float)elapsed_time/1000.0)) / log(2.0)); + // } + + if (bf_rate != NULL) { + *bf_rate = (float)num_keys_tested / ((float)elapsed_time / 1000.0); + } + + return (keys_found != 0); +} + + +static bool read_bench_data(statelist_t *test_candidates) { + + size_t bytes_read = 0; + uint32_t temp = 0; + uint32_t num_states = 0; + uint32_t states_read = 0; + + char bench_file_path[strlen(get_my_executable_directory()) + strlen(TEST_BENCH_FILENAME) + 1]; + strcpy(bench_file_path, get_my_executable_directory()); + strcat(bench_file_path, TEST_BENCH_FILENAME); + + FILE *benchfile = fopen(bench_file_path, "rb"); + if (benchfile == NULL) { + return false; + } + bytes_read = fread(&nonces_to_bruteforce, 1, sizeof(nonces_to_bruteforce), benchfile); + if (bytes_read != sizeof(nonces_to_bruteforce)) { + fclose(benchfile); + return false; + } + for (uint16_t i = 0; i < nonces_to_bruteforce && i < 256; i++) { + bytes_read = fread(&bf_test_nonce[i], 1, sizeof(uint32_t), benchfile); + if (bytes_read != sizeof(uint32_t)) { + fclose(benchfile); + return false; + } + bf_test_nonce_2nd_byte[i] = (bf_test_nonce[i] >> 16) & 0xff; + bytes_read = fread(&bf_test_nonce_par[i], 1, sizeof(uint8_t), benchfile); + if (bytes_read != sizeof(uint8_t)) { + fclose(benchfile); + return false; + } + } + bytes_read = fread(&num_states, 1, sizeof(uint32_t), benchfile); + if (bytes_read != sizeof(uint32_t)) { + fclose(benchfile); + return false; + } + for (states_read = 0; states_read < MIN(num_states, TEST_BENCH_SIZE); states_read++) { + bytes_read = fread(test_candidates->states[EVEN_STATE] + states_read, 1, sizeof(uint32_t), benchfile); + if (bytes_read != sizeof(uint32_t)) { + fclose(benchfile); + return false; + } + } + for (uint32_t i = states_read; i < TEST_BENCH_SIZE; i++) { + test_candidates->states[EVEN_STATE][i] = test_candidates->states[EVEN_STATE][i-states_read]; + } + for (uint32_t i = states_read; i < num_states; i++) { + bytes_read = fread(&temp, 1, sizeof(uint32_t), benchfile); + if (bytes_read != sizeof(uint32_t)) { + fclose(benchfile); + return false; + } + } + for (states_read = 0; states_read < MIN(num_states, TEST_BENCH_SIZE); states_read++) { + bytes_read = fread(test_candidates->states[ODD_STATE] + states_read, 1, sizeof(uint32_t), benchfile); + if (bytes_read != sizeof(uint32_t)) { + fclose(benchfile); + return false; + } + } + for (uint32_t i = states_read; i < TEST_BENCH_SIZE; i++) { + test_candidates->states[ODD_STATE][i] = test_candidates->states[ODD_STATE][i-states_read]; + } + + fclose(benchfile); + return true; +} + + +float brute_force_benchmark() +{ + statelist_t test_candidates[NUM_BRUTE_FORCE_THREADS]; + + test_candidates[0].states[ODD_STATE] = malloc((TEST_BENCH_SIZE+1) * sizeof(uint32_t)); + test_candidates[0].states[EVEN_STATE] = malloc((TEST_BENCH_SIZE+1) * sizeof(uint32_t)); + for (uint8_t i = 0; i < NUM_BRUTE_FORCE_THREADS - 1; i++){ + test_candidates[i].next = test_candidates + i + 1; + test_candidates[i+1].states[ODD_STATE] = test_candidates[0].states[ODD_STATE]; + test_candidates[i+1].states[EVEN_STATE] = test_candidates[0].states[EVEN_STATE]; + } + test_candidates[NUM_BRUTE_FORCE_THREADS-1].next = NULL; + + if (!read_bench_data(test_candidates)) { + PrintAndLog("Couldn't read benchmark data. Assuming brute force rate of %1.0f states per second", DEFAULT_BRUTE_FORCE_RATE); + return DEFAULT_BRUTE_FORCE_RATE; + } + + for (uint8_t i = 0; i < NUM_BRUTE_FORCE_THREADS; i++) { + test_candidates[i].len[ODD_STATE] = TEST_BENCH_SIZE; + test_candidates[i].len[EVEN_STATE] = TEST_BENCH_SIZE; + test_candidates[i].states[ODD_STATE][TEST_BENCH_SIZE] = -1; + test_candidates[i].states[EVEN_STATE][TEST_BENCH_SIZE] = -1; + } + + uint64_t maximum_states = TEST_BENCH_SIZE*TEST_BENCH_SIZE*(uint64_t)NUM_BRUTE_FORCE_THREADS; + + float bf_rate; + brute_force_bs(&bf_rate, test_candidates, 0, 0, maximum_states, NULL, 0); + + free(test_candidates[0].states[ODD_STATE]); + free(test_candidates[0].states[EVEN_STATE]); + + return bf_rate; +} + + diff --git a/client/hardnested/hardnested_bruteforce.h b/client/hardnested/hardnested_bruteforce.h new file mode 100644 index 000000000..d4f6348d0 --- /dev/null +++ b/client/hardnested/hardnested_bruteforce.h @@ -0,0 +1,36 @@ +//----------------------------------------------------------------------------- +// Copyright (C) 2016, 2017 by piwi +// +// This code is licensed to you under the terms of the GNU GPL, version 2 or, +// at your option, any later version. See the LICENSE.txt file for the text of +// the license. +//----------------------------------------------------------------------------- +// Implements a card only attack based on crypto text (encrypted nonces +// received during a nested authentication) only. Unlike other card only +// attacks this doesn't rely on implementation errors but only on the +// inherent weaknesses of the crypto1 cypher. Described in +// Carlo Meijer, Roel Verdult, "Ciphertext-only Cryptanalysis on Hardened +// Mifare Classic Cards" in Proceedings of the 22nd ACM SIGSAC Conference on +// Computer and Communications Security, 2015 +//----------------------------------------------------------------------------- + +#ifndef HARDNESTED_BRUTEFORCE_H__ +#define HARDNESTED_BRUTEFORCE_H__ + +#include +#include +#include "cmdhfmfhard.h" + +typedef struct { + uint32_t *states[2]; + uint32_t len[2]; + void* next; +} statelist_t; + +extern void prepare_bf_test_nonces(noncelist_t *nonces, uint8_t best_first_byte); +extern bool brute_force_bs(float *bf_rate, statelist_t *candidates, uint32_t cuid, uint32_t num_acquired_nonces, uint64_t maximum_states, noncelist_t *nonces, uint8_t *best_first_bytes); +extern float brute_force_benchmark(); +extern uint8_t trailing_zeros(uint8_t byte); +extern bool verify_key(uint32_t cuid, noncelist_t *nonces, uint8_t *best_first_bytes, uint32_t odd, uint32_t even); + +#endif diff --git a/client/hardnested/hardnested_tables.c b/client/hardnested/hardnested_tables.c new file mode 100644 index 000000000..278ed9596 --- /dev/null +++ b/client/hardnested/hardnested_tables.c @@ -0,0 +1,592 @@ +//----------------------------------------------------------------------------- +// Copyright (C) 2015, 2016 by piwi +// +// This code is licensed to you under the terms of the GNU GPL, version 2 or, +// at your option, any later version. See the LICENSE.txt file for the text of +// the license. +//----------------------------------------------------------------------------- +// Implements a card only attack based on crypto text (encrypted nonces +// received during a nested authentication) only. Unlike other card only +// attacks this doesn't rely on implementation errors but only on the +// inherent weaknesses of the crypto1 cypher. Described in +// Carlo Meijer, Roel Verdult, "Ciphertext-only Cryptanalysis on Hardened +// Mifare Classic Cards" in Proceedings of the 22nd ACM SIGSAC Conference on +// Computer and Communications Security, 2015 +//----------------------------------------------------------------------------- +// +// This program calculates tables with possible states for a given +// bitflip property. +// +//----------------------------------------------------------------------------- + +#include +#include +#include +#include +#include +#include +#include "crapto1/crapto1.h" +#include "parity.h" + + +#define NUM_PART_SUMS 9 +#define BITFLIP_2ND_BYTE 0x0200 + +typedef enum { + EVEN_STATE = 0, + ODD_STATE = 1 +} odd_even_t; + + +static uint16_t PartialSumProperty(uint32_t state, odd_even_t odd_even) +{ + uint16_t sum = 0; + for (uint16_t j = 0; j < 16; j++) { + uint32_t st = state; + uint16_t part_sum = 0; + if (odd_even == ODD_STATE) { + for (uint16_t i = 0; i < 5; i++) { + part_sum ^= filter(st); + st = (st << 1) | ((j >> (3-i)) & 0x01) ; + } + part_sum ^= 1; // XOR 1 cancelled out for the other 8 bits + } else { + for (uint16_t i = 0; i < 4; i++) { + st = (st << 1) | ((j >> (3-i)) & 0x01) ; + part_sum ^= filter(st); + } + } + sum += part_sum; + } + return sum; +} + + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// bitarray functions + +#define malloc_bitarray(x) __builtin_assume_aligned(_aligned_malloc(x, __BIGGEST_ALIGNMENT__), __BIGGEST_ALIGNMENT__) +#define free_bitarray(x) _aligned_free(x) + +static inline void clear_bitarray24(uint32_t *bitarray) +{ + memset(bitarray, 0x00, sizeof(uint32_t) * (1<<19)); +} + + +static inline uint32_t test_bit24(uint32_t *bitarray, uint32_t index) +{ + return bitarray[index>>5] & (0x80000000>>(index&0x0000001f)); +} + + +static inline void set_bit24(uint32_t *bitarray, uint32_t index) +{ + bitarray[index>>5] |= 0x80000000>>(index&0x0000001f); +} + + +static inline uint32_t next_state(uint32_t *bitset, uint32_t state) +{ + if (++state == 1<<24) return 1<<24; + uint32_t index = state >> 5; + uint_fast8_t bit = state & 0x1f; + uint32_t line = bitset[index] << bit; + while (bit <= 0x1f) { + if (line & 0x80000000) return state; + state++; + bit++; + line <<= 1; + } + index++; + while (bitset[index] == 0x00000000 && state < 1<<24) { + index++; + state += 0x20; + } + if (state >= 1<<24) return 1<<24; +#if defined __GNUC__ + return state + __builtin_clz(bitset[index]); +#else + bit = 0x00; + line = bitset[index]; + while (bit <= 0x1f) { + if (line & 0x80000000) return state; + state++; + bit++; + line <<= 1; + } + return 1<<24; +#endif +} + + +static inline uint32_t next_not_state(uint32_t *bitset, uint32_t state) +{ + if (++state == 1<<24) return 1<<24; + uint32_t index = state >> 5; + uint_fast8_t bit = state & 0x1f; + uint32_t line = bitset[index] << bit; + while (bit <= 0x1f) { + if ((line & 0x80000000) == 0) return state; + state++; + bit++; + line <<= 1; + } + index++; + while (bitset[index] == 0xffffffff && state < 1<<24) { + index++; + state += 0x20; + } + if (state >= 1<<24) return 1<<24; +#if defined __GNUC__ + return state + __builtin_clz(~bitset[index]); +#else + bit = 0x00; + line = bitset[index]; + while (bit <= 0x1f) { + if ((line & 0x80000000) == 0) return state; + state++; + bit++; + line <<= 1; + } + return 1<<24; +#endif +} + + +static inline uint32_t bitcount(uint32_t a) +{ +#if defined __GNUC__ + return __builtin_popcountl(a); +#else + a = a - ((a >> 1) & 0x55555555); + a = (a & 0x33333333) + ((a >> 2) & 0x33333333); + return (((a + (a >> 4)) & 0x0f0f0f0f) * 0x01010101) >> 24; +#endif +} + + +static inline uint32_t count_states(uint32_t *bitset) +{ + uint32_t count = 0; + for (uint32_t i = 0; i < (1<<19); i++) { + count += bitcount(bitset[i]); + } + return count; +} + + +static void write_bitflips_file(odd_even_t odd_even, uint16_t bitflip, int sum_a0, uint32_t *bitset, uint32_t count) +{ + char filename[80]; + sprintf(filename, "bitflip_%d_%03" PRIx16 "_sum%d_states.bin", odd_even, bitflip, sum_a0); + FILE *outfile = fopen(filename, "wb"); + fwrite(&count, 1, sizeof(count), outfile); + fwrite(bitset, 1, sizeof(uint32_t)*(1<<19), outfile); + fclose(outfile); +} + + +uint32_t *restrict part_sum_a0_bitarrays[2][NUM_PART_SUMS]; + +static void init_part_sum_bitarrays(void) +{ + printf("init_part_sum_bitarrays()..."); + for (odd_even_t odd_even = EVEN_STATE; odd_even <= ODD_STATE; odd_even++) { + for (uint16_t part_sum_a0 = 0; part_sum_a0 < NUM_PART_SUMS; part_sum_a0++) { + part_sum_a0_bitarrays[odd_even][part_sum_a0] = (uint32_t *)malloc_bitarray(sizeof(uint32_t) * (1<<19)); + if (part_sum_a0_bitarrays[odd_even][part_sum_a0] == NULL) { + printf("Out of memory error in init_part_suma0_statelists(). Aborting...\n"); + exit(4); + } + clear_bitarray24(part_sum_a0_bitarrays[odd_even][part_sum_a0]); + } + } + for (odd_even_t odd_even = EVEN_STATE; odd_even <= ODD_STATE; odd_even++) { + //printf("(%d, %" PRIu16 ")...", odd_even, part_sum_a0); + for (uint32_t state = 0; state < (1<<20); state++) { + uint16_t part_sum_a0 = PartialSumProperty(state, odd_even) / 2; + for (uint16_t low_bits = 0; low_bits < 1<<4; low_bits++) { + set_bit24(part_sum_a0_bitarrays[odd_even][part_sum_a0], state<<4 | low_bits); + } + } + } + printf("done.\n"); +} + + +static void free_part_sum_bitarrays(void) +{ + printf("free_part_sum_bitarrays()..."); + for (int16_t part_sum_a0 = (NUM_PART_SUMS-1); part_sum_a0 >= 0; part_sum_a0--) { + free_bitarray(part_sum_a0_bitarrays[ODD_STATE][part_sum_a0]); + } + for (int16_t part_sum_a0 = (NUM_PART_SUMS-1); part_sum_a0 >= 0; part_sum_a0--) { + free_bitarray(part_sum_a0_bitarrays[EVEN_STATE][part_sum_a0]); + } + printf("done.\n"); +} + +uint32_t *restrict sum_a0_bitarray[2]; + +void init_sum_bitarray(uint16_t sum_a0) +{ + printf("init_sum_bitarray()...\n"); + for (odd_even_t odd_even = EVEN_STATE; odd_even <= ODD_STATE; odd_even++) { + sum_a0_bitarray[odd_even] = (uint32_t *)malloc_bitarray(sizeof(uint32_t) * (1<<19)); + if (sum_a0_bitarray[odd_even] == NULL) { + printf("Out of memory error in init_sum_bitarrays(). Aborting...\n"); + exit(4); + } + clear_bitarray24(sum_a0_bitarray[odd_even]); + } + for (uint8_t p = 0; p < NUM_PART_SUMS; p++) { + for (uint8_t q = 0; q < NUM_PART_SUMS; q++) { + if (sum_a0 == 2*p*(16-2*q) + (16-2*p)*2*q) { + for (uint32_t i = 0; i < (1<<19); i++) { + sum_a0_bitarray[EVEN_STATE][i] |= part_sum_a0_bitarrays[EVEN_STATE][q][i]; + sum_a0_bitarray[ODD_STATE][i] |= part_sum_a0_bitarrays[ODD_STATE][p][i]; + } + } + } + } + for (odd_even_t odd_even = EVEN_STATE; odd_even <= ODD_STATE; odd_even++) { + uint32_t count = count_states(sum_a0_bitarray[odd_even]); + printf("sum_a0_bitarray[%s] has %d states (%5.2f%%)\n", odd_even==EVEN_STATE?"even":"odd ", count, (float)count/(1<<24)*100.0); + } + printf("done.\n"); +} + + +static void free_sum_bitarray(void) +{ + printf("free_sum_bitarray()..."); + free_bitarray(sum_a0_bitarray[ODD_STATE]); + free_bitarray(sum_a0_bitarray[EVEN_STATE]); + printf("done.\n"); +} + + +static void precalculate_bit0_bitflip_bitarrays(uint8_t const bitflip, uint16_t const sum_a0) +{ + // #define TEST_RUN + #ifdef TEST_RUN + #define NUM_TEST_STATES (1<<10) + #else + #define NUM_TEST_STATES (1<<23) + #endif + + time_t start_time = time(NULL); + time_t last_check_time = start_time; + + uint32_t *restrict test_bitarray[2]; + uint32_t *restrict test_not_bitarray[2]; + + test_bitarray[EVEN_STATE] = malloc_bitarray(sizeof(uint32_t) * (1<<19)); + clear_bitarray24(test_bitarray[EVEN_STATE]); + test_bitarray[ODD_STATE] = malloc_bitarray(sizeof(uint32_t) * (1<<19)); + clear_bitarray24(test_bitarray[ODD_STATE]); + + test_not_bitarray[EVEN_STATE] = malloc_bitarray(sizeof(uint32_t) * (1<<19)); + clear_bitarray24(test_not_bitarray[EVEN_STATE]); + test_not_bitarray[ODD_STATE] = malloc_bitarray(sizeof(uint32_t) * (1<<19)); + clear_bitarray24(test_not_bitarray[ODD_STATE]); + + uint32_t count[2]; + bool all_odd_states_are_possible_for_notbitflip = false; + + printf("\n\nStarting search for crypto1 states resulting in bitflip property 0x%03x...\n", bitflip); + for (uint32_t even_state = next_state(sum_a0_bitarray[EVEN_STATE], -1); even_state < NUM_TEST_STATES; even_state = next_state(sum_a0_bitarray[EVEN_STATE], even_state)) { + bool even_state_is_possible = false; + time_t time_now = time(NULL); + if (difftime(time_now, last_check_time) > 5*60) { // print status every 5 minutes + float runtime = difftime(time_now, start_time); + float remaining_time = runtime * ((1<<23) - even_state) / even_state; + printf("\n%1.1f hours elapsed, expected completion in %1.1f hours (%1.1f days)", runtime/3600, remaining_time/3600, remaining_time/3600/24); + last_check_time = time_now; + } + for (uint32_t odd_state = next_state(sum_a0_bitarray[ODD_STATE], -1); odd_state < (1<<24); odd_state = next_state(test_bitarray[ODD_STATE], odd_state)) { + if (even_state_is_possible && test_bit24(test_bitarray[ODD_STATE], odd_state)) continue; + // load crypto1 state + struct Crypto1State cs; + cs.odd = odd_state >> 4; + cs.even = even_state >> 4; + + // track flipping bits in state + struct Crypto1DeltaState { + uint_fast8_t odd; + uint_fast8_t even; + } cs_delta; + cs_delta.odd = 0; + cs_delta.even = 0; + + uint_fast16_t keystream = 0; + + // decrypt 9 bits + for (int i = 0; i < 9; i++) { + uint_fast8_t keystream_bit = filter(cs.odd & 0x000fffff) ^ filter((cs.odd & 0x000fffff) ^ cs_delta.odd); + keystream = keystream << 1 | keystream_bit; + uint_fast8_t nt_bit = BIT(bitflip, i) ^ keystream_bit; + uint_fast8_t LSFR_feedback = BIT(cs_delta.odd, 2) ^ BIT(cs_delta.even, 2) ^ BIT(cs_delta.odd, 3); + + cs_delta.even = cs_delta.even << 1 | (LSFR_feedback ^ nt_bit); + uint_fast8_t tmp = cs_delta.odd; + cs_delta.odd = cs_delta.even; + cs_delta.even = tmp; + + cs.even = cs.odd; + if (i & 1) { + cs.odd = odd_state >> (7 - i) / 2; + } else { + cs.odd = even_state >> (7 - i) / 2; + } + } + + if (evenparity32(keystream) == evenparity32(bitflip)) { + // found valid bitflip state + even_state_is_possible = true; + set_bit24(test_bitarray[EVEN_STATE], even_state); + set_bit24(test_bitarray[EVEN_STATE], 1 << 23 | even_state); + set_bit24(test_bitarray[ODD_STATE], odd_state); + } else { + // found valid !bitflip state + set_bit24(test_not_bitarray[EVEN_STATE], even_state); + set_bit24(test_not_bitarray[EVEN_STATE], 1 << 23 | even_state); + set_bit24(test_not_bitarray[ODD_STATE], odd_state); + } + } + if (!even_state_is_possible) { + all_odd_states_are_possible_for_notbitflip = true; + } + } + + printf("\nAnalysis completed. Checking for effective bitflip properties...\n"); + for (odd_even_t odd_even = EVEN_STATE; odd_even <= ODD_STATE; odd_even++) { + count[odd_even] = count_states(test_bitarray[odd_even]); + if (count[odd_even] != 1<<24) { + printf("Writing %d possible %s states for bitflip property %03x (%d (%1.2f%%) states eliminated)\n", + count[odd_even], + odd_even==EVEN_STATE?"even":"odd", + bitflip, (1<<24) - count[odd_even], + (float)((1<<24) - count[odd_even]) / (1<<24) * 100.0); + #ifndef TEST_RUN + write_bitflips_file(odd_even, bitflip, sum_a0, test_bitarray[odd_even], count[odd_even]); + #endif + } else { + printf("All %s states for bitflip property %03x are possible. No file written.\n", odd_even==EVEN_STATE?"even":"odd", bitflip); + } + } + uint32_t *restrict test_bitarray_2nd = malloc_bitarray(sizeof(uint32_t) * (1<<19)); + clear_bitarray24(test_bitarray_2nd); + for (odd_even_t odd_even = EVEN_STATE; odd_even <= ODD_STATE; odd_even++) { + if (count[odd_even] != 1<<24) { + for (uint32_t state = 0; state < (1<<24); state += 1<<4) { + uint32_t line = test_bitarray[odd_even][state>>5]; + uint16_t half_line = state&0x000000010 ? line&0x0000ffff : line>>16; + if (half_line != 0) { + for (uint32_t low_bits = 0; low_bits < (1<<4); low_bits++) { + set_bit24(test_bitarray_2nd, low_bits << 20 | state >> 4); + } + } + } + count[odd_even] = count_states(test_bitarray_2nd); + if (count[odd_even] != 1<<24) { + printf("Writing %d possible %s states for bitflip property %03x (%d (%1.2f%%) states eliminated)\n", + count[odd_even], + odd_even==EVEN_STATE?"even":"odd", + bitflip | BITFLIP_2ND_BYTE, (1<<24) - count[odd_even], + (float)((1<<24) - count[odd_even]) / (1<<24) * 100.0); + #ifndef TEST_RUN + write_bitflips_file(odd_even, bitflip | BITFLIP_2ND_BYTE, sum_a0, test_bitarray_2nd, count[odd_even]); + #endif + } else { + printf("All %s states for bitflip property %03x are possible. No file written.\n", odd_even==EVEN_STATE?"even":"odd", bitflip | BITFLIP_2ND_BYTE); + } + } else { + printf("All %s states for bitflip property %03x are possible. No file written.\n", odd_even==EVEN_STATE?"even":"odd", bitflip | BITFLIP_2ND_BYTE); + } + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // second run for the remaining "not bitflip" states + printf("\n\nStarting search for crypto1 states resulting in bitflip property 0x%03x...", bitflip | 0x100); + start_time = time(NULL); + last_check_time = start_time; + for (uint32_t even_state = next_state(sum_a0_bitarray[EVEN_STATE], -1); even_state < NUM_TEST_STATES; even_state = next_state(sum_a0_bitarray[EVEN_STATE], even_state)) { + bool even_state_is_possible = test_bit24(test_not_bitarray[EVEN_STATE], even_state); + time_t time_now = time(NULL); + if (difftime(time_now, last_check_time) > 5*60) { // print status every 5 minutes + float runtime = difftime(time_now, start_time); + float remaining_time = runtime * ((1<<23) - even_state) / even_state; + printf("\n%1.1f hours elapsed, expected completion in %1.1f hours (%1.1f days)", runtime/3600, remaining_time/3600, remaining_time/3600/24); + last_check_time = time_now; + } + for (uint32_t odd_state = next_state(sum_a0_bitarray[ODD_STATE], -1); odd_state < (1<<24); odd_state = next_state(sum_a0_bitarray[ODD_STATE], odd_state)) { + if (even_state_is_possible) { + if (all_odd_states_are_possible_for_notbitflip) break; + if (test_bit24(test_not_bitarray[ODD_STATE], odd_state)) continue; + } + // load crypto1 state + struct Crypto1State cs; + cs.odd = odd_state >> 4; + cs.even = even_state >> 4; + + // track flipping bits in state + struct Crypto1DeltaState { + uint_fast8_t odd; + uint_fast8_t even; + } cs_delta; + cs_delta.odd = 0; + cs_delta.even = 0; + + uint_fast16_t keystream = 0; + // uint_fast16_t nt = 0; + + // decrypt 9 bits + for (int i = 0; i < 9; i++) { + uint_fast8_t keystream_bit = filter(cs.odd & 0x000fffff) ^ filter((cs.odd & 0x000fffff) ^ cs_delta.odd); + keystream = keystream << 1 | keystream_bit; + uint_fast8_t nt_bit = BIT(bitflip|0x100, i) ^ keystream_bit; + uint_fast8_t LSFR_feedback = BIT(cs_delta.odd, 2) ^ BIT(cs_delta.even, 2) ^ BIT(cs_delta.odd, 3); + + cs_delta.even = cs_delta.even << 1 | (LSFR_feedback ^ nt_bit); + uint_fast8_t tmp = cs_delta.odd; + cs_delta.odd = cs_delta.even; + cs_delta.even = tmp; + + cs.even = cs.odd; + if (i & 1) { + cs.odd = odd_state >> (7 - i) / 2; + } else { + cs.odd = even_state >> (7 - i) / 2; + } + } + + if (evenparity32(keystream) != evenparity32(bitflip)) { + // found valid !bitflip state + even_state_is_possible = true; + set_bit24(test_not_bitarray[EVEN_STATE], even_state); + set_bit24(test_not_bitarray[EVEN_STATE], 1 << 23 | even_state); + set_bit24(test_not_bitarray[ODD_STATE], odd_state); + } + } + } + + printf("\nAnalysis completed. Checking for effective !bitflip properties...\n"); + for (odd_even_t odd_even = EVEN_STATE; odd_even <= ODD_STATE; odd_even++) { + count[odd_even] = count_states(test_not_bitarray[odd_even]); + if (count[odd_even] != 1<<24) { + printf("Writing %d possible %s states for bitflip property %03x (%d (%1.2f%%) states eliminated)\n", + count[odd_even], + odd_even==EVEN_STATE?"even":"odd", + bitflip|0x100, (1<<24) - count[odd_even], + (float)((1<<24) - count[odd_even]) / (1<<24) * 100.0); + #ifndef TEST_RUN + write_bitflips_file(odd_even, bitflip|0x100, sum_a0, test_not_bitarray[odd_even], count[odd_even]); + #endif + } else { + printf("All %s states for bitflip property %03x are possible. No file written.\n", odd_even==EVEN_STATE?"even":"odd", bitflip|0x100); + } + } + + clear_bitarray24(test_bitarray_2nd); + for (odd_even_t odd_even = EVEN_STATE; odd_even <= ODD_STATE; odd_even++) { + if (count[odd_even] != 1<<24) { + for (uint32_t state = 0; state < (1<<24); state += 1<<4) { + uint32_t line = test_not_bitarray[odd_even][state>>5]; + uint16_t half_line = state&0x000000010 ? line&0x0000ffff : line>>16; + if (half_line != 0) { + for (uint32_t low_bits = 0; low_bits < (1<<4); low_bits++) { + set_bit24(test_bitarray_2nd, low_bits << 20 | state >> 4); + } + } + } + count[odd_even] = count_states(test_bitarray_2nd); + if (count[odd_even] != 1<<24) { + printf("Writing %d possible %s states for bitflip property %03x (%d (%1.2f%%) states eliminated)\n", + count[odd_even], + odd_even==EVEN_STATE?"even":"odd", + bitflip | 0x100| BITFLIP_2ND_BYTE, (1<<24) - count[odd_even], + (float)((1<<24) - count[odd_even]) / (1<<24) * 100.0); + #ifndef TEST_RUN + write_bitflips_file(odd_even, bitflip | 0x100 | BITFLIP_2ND_BYTE, sum_a0, test_bitarray_2nd, count[odd_even]); + #endif + } else { + printf("All %s states for bitflip property %03x are possible. No file written.\n", odd_even==EVEN_STATE?"even":"odd", bitflip | 0x100 | BITFLIP_2ND_BYTE); + } + } else { + printf("All %s states for bitflip property %03x are possible. No file written.\n", odd_even==EVEN_STATE?"even":"odd", bitflip | 0x100 | BITFLIP_2ND_BYTE); + } + } + + free_bitarray(test_bitarray_2nd); + free_bitarray(test_not_bitarray[ODD_STATE]); + free_bitarray(test_not_bitarray[EVEN_STATE]); + free_bitarray(test_bitarray[ODD_STATE]); + free_bitarray(test_bitarray[EVEN_STATE]); + + exit(0); +} + + +int main (int argc, char *argv[]) { + + unsigned int bitflip_in; + int sum_a0; + + printf("Create tables required by hardnested attack.\n"); + printf("Expect a runtime in the range of days or weeks.\n"); + printf("Single thread only. If you want to use several threads, start it multiple times :-)\n\n"); + + if (argc != 2 && argc != 3) { + printf(" syntax: %s []\n\n", argv[0]); + printf(" example: %s 1f\n", argv[0]); + return 1; + } + + sscanf(argv[1],"%x", &bitflip_in); + + if (bitflip_in > 255) { + printf("Bitflip property must be less than or equal to 0xff\n\n"); + return 1; + } + + if(argc == 3) { + sscanf(argv[2], "%d", &sum_a0); + } + + switch (sum_a0) { + case 0: + case 32: + case 56: + case 64: + case 80: + case 96: + case 104: + case 112: + case 120: + case 128: + case 136: + case 144: + case 152: + case 160: + case 176: + case 192: + case 200: + case 224: + case 256: break; + default: sum_a0 = -1; + } + + printf("Calculating for bitflip = %02x, sum_a0 = %d\n", bitflip_in, sum_a0); + + init_part_sum_bitarrays(); + init_sum_bitarray(sum_a0); + + precalculate_bit0_bitflip_bitarrays(bitflip_in, sum_a0); + + free_sum_bitarray(); + free_part_sum_bitarrays(); + + return 0; +} \ No newline at end of file diff --git a/client/hardnested/tables/bitflip_0_001_states.bin.z b/client/hardnested/tables/bitflip_0_001_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..d697d83cebf0609ca78e17c5d01bb6738bbe6eb4 GIT binary patch literal 21464 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⪒+)ql_k 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 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_003_states.bin.z b/client/hardnested/tables/bitflip_0_003_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..2973d69cb2127c9a5768fa29dd41b18c2d8f4343 GIT binary patch literal 11164 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 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_005_states.bin.z b/client/hardnested/tables/bitflip_0_005_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..01b274abed8c01a66e25a759c7e353b24f2a8161 GIT binary patch literal 25606 zcmdqJdw5jU-7lUV-@cxn>PszEM8vUDi%42zB!aj%)A;2gBBZOr2 z?FDKvjL0SB5_TmG5ki=a1iy{X9H8VKTF4ul2orF5mTD>p=U;EuKFed93fY@UPeZ>#iGx^X%8}xc(3s z^<{OYQvYZ{o&3>DwHp>b_{rc8e)r<@#&@278C;+faD53Lw|~)lbfYa6QUpKkkX(du zt>5kMRk~YghbQWHZ_s_3W#i|(!Oo}mfGc~`b#D&g+)%>$#2&eiZ06Hkv{_sO-Lg^n zAe;~9wURstb$rU)_#UtadcDvglA49R)*Z0cN$zcSf=@l*3%lel_cdjC0A7Lguzwvd zQvw2aU4))W*mXkMl64~5qL4E`KR~y9KsHAq#+sdux%y;vz1KUT7p{2y?-;!#Nbgoj ziO~f`kmw^J8&^Svu!C^N=_pxdct7VppE`dl6bDLPQQ>e*td5N3PW<{dyf(oFA!ujv z4DNcovmSag@O_R#fX1@tss-&(2Tr`kLeXR3cj3S4;S0itg^Mh#p47pU&`oK`+ThJt zzK_=CakwDQ55UfT;)T7C#a*hPTUf^X@F!@28}X}?oHQJ6LACMAg6=Z*kdTgaOPQ$%jEY`+)RGX2^w~~R&^&=nOWyPUom z3R|G*8hNe_Mn*`AAr~3GTqE(Kpwp)rDeDAFgHX&Zn#8?u>-w>vHCXP3mhrIsB76|B zT%xM20p`@e{rNJt2Ne+tyh)Rb1zz|u}a>6cu43Bjr9pGk+r?;lbNq@Cem9RQ8ZlKvInr#^`{6KmP^ykRS=3 zr=4(}7#77aznKcH`-y{p486o~;U=@gH}IwFf4qjB>FBj(8+CmUGG7iG_*h6t=mCpg zUIVjTVP!fGo9~*C@Z$%zcamw}=MRDMg;58$;g5Rm>mx}wpXXTIm0jS$s|fFU8uyO@ z3wVh6o1FUJ-Ko(&Sg=ee$Nx+Vm*R_uB|ONjc-feFD+vixuYsJy=vzR(9T_nYzrWy* znJwZ-zeL`^w_Vzs2Jmvwj`wc82s5D(ViHLBAPS;~dIeY+}i_ ziy9n(11mqX=Y>hF>ty1`OI*~>9bEJ?MmwBsw8O`S&1mPBsp?PRxvaSv>@`t_yQJVE ztoKmRJ-CA}88j+IsIhLe<}?!BaL=^#fdT=ZH&?GEW??4>U<&sRMAObmFX+M~a4i%2 zNct9`zZC9U38I%=OD1a!FJ-Cxv07P@bE=i&QXUyp#x#@Bn#%#ZnY9wM(_1)Q%9jhS zc9)dKB{yvdNc}qPQLPbS=L!2l(h#-k)=K6CE1#Xr_Z7i4W7v#-1B2f6F%4HtsyX&O zX;4aa$CzFwwpjy6oPz@Y}Hi8ZapEaR9TBJVQyeQ+i1sQY6jrK37qbM1~cI}AsM_^A%-gqdktwC zyqx2OLa<(jDU|OI30-6tT!^}!fz{kdP4U8$`^ad!>+_BUt>i`D{-#SH6At>m?!B;D zRiEqvOgH_J4$O`DAy++2#tgU^_8hDZ34QPkc?o}z%0uua?1I<15Vi10u+A$odMzri zjU-1^K|0Fo7@cqpUcC<{4~NWyyzzdP&XwH}@{obwy?l2x<5?rskhtr9cp2~?tia8O z!(0%#*bz%BWMZM_xJ!XI9dL+aoCZh)iVQNLi9XsS6bCFS#;^Yb$!sMVK}bJ@0p#bd z6#;X1U)a>6ZK`e*9q@%_`(`AR(rZ70TQoqHa@UJO!jG3eE0e}VHn0Vzsg<`vN#HO= zDL6YIjq#-3AUEPsQr!ZTZgDF#UW&z^bpaI2;nxWlI7U1a1PN8m2VM>-1CA_1u40?> z!pbc2M{eH<6T+C6NT<5#BTXdyu?koy_Oj*WeEu?4x;uzTwLD^T`qrE}P~tf0-?10w z`!WqZGhA?bXY{sY74zKQ6~Fh;-$pE#A$2Qx*lTf&ghj7eU`hnm7m$9qrZ|?nxT^+A z*OK{m#nC_pE{V~IyV9UXu+rTQl4`%tTp2G+f{bpN6%3L!kl7KzPUN`UEcC;XV}jBG6UyLQvQB(G@ZWWb+q++#bt6($3H4$Kvb`D&+rLs-*!BiPe zs$^DXNG@*IeXq(brzdR^ne<&$^bfRPGm2+4nCmaRT(D_;U#Cm@DN z^(<+y=LO(O%rz2Lrv!z?+!2#PP*118A`B8gW_%}irBK77l76C+n8+mq7c{=8f=jg; z=1!?GtV0_~caC{^3^_du-ccm~Nt)No58W3|?x5d1st&7el&g$~At7P){@;WO`r&h( zwEaQwYGxizNcc2o*oLQhV~$}P#!?kXKJPkI0&6Mw zxAU!#is5@F_m9OiDuD%G{@}NF`ci4f=E$%9%}o~`5!#bj>b)>cuN?1kty1WVFgz;7 zERdWpsJAEl7+lqKiLm2@zmRu0C4Rg4fe9CGQ;9F^bkdF2FUHc|~cd;!|l^D=J! z_mh8NmUS+OE(WWge2#T^Ij~#lIcQ zc+nsBkCt354`+0FcSSv3{R8>anvQEBaU##q#7s~PS(hc-sabYDVKkhSN7EBM@^b2B z6}hz|)rog3F)Y=*NTtcDTaRVzAW_TF0PTsTzN@w14wHhRlRPTcfD9=*u_ZN>)X z{jT-`gJMrwmf?z7mN#1@AJKMChiM#q%@#Eoj=u)v-a)s}5ELHbTd?i(IN%=5&PP>q zCn2mOgDf2SUNoF{nTeNK#&IUS43%eL+C{8kLXlApnT_Cnfx}&Fb|07(p5MF_3s%-Y z&v_dvb!(f0tRLXRaKR57sr(xWpTWz4P5XNNxkf?6KP>_&y4Vb!=*+A3@__ON*KMBfj%W(in&@ruV4mO^uJQ#Xc$db+cjRxO1rnPuZvNrHm3 z_{Yg>pKVcn(+$9sjALxo?oAdj6LpNs84TmHT`_@eDGf6jy&FD7IoWC@(fj9 zrZn+-S566a2dueGH=s zqT!Nr2L!3|ha~fgtj8Mh-r9r0e7;nM1_)Etl>`PDq|rE(sHU|s%Sz#nwQWTb%+M19 z1y^F1GFTpLxVF@8RL>$!zY}&`gbXKa{P;(F(jB7OI$^EqF6NLEq$*k80(Z{n z=eBzX+o3(1e?QB3$=Jq9*{R%`C1gh{l=VYOueBZAqe1eF$D(M#n9g36w{JWg(+QRb zyjE*4=z)-tm1c~8#Qh$2$b$`Z$CYPR=4a&x1ds4Y7ac$&WyIo=2whkzEoK z4}*0+Z@&7!z=122M@R{`{}!HY6Z?gb3kuvIwZn*NaGZowNBF-FNmDEKYk^zm8#z{Z^ObdFA}tih93o*R~b8zD_0{^l2xe?OOvgd_OG!?=<+be>W&4qMsi(+#jXqaz}N{mG(IWMuoO7c%J z0u2EMkO#a$0fVJ;#u}dctFYye<(?Lj&s^77f6COa2-&Kekn~;XP+`k@&|$ zfWM>&kr#>IlNx_9evO|z&)pdCK{BkK8Y14yFOGc7D?>2QX2MuV!Y*G{$xw;pf>|F0 z-7HOCOy)vF2x)K?H)Tv1RND^2p5%CH83M8Kua#hcprls20daZd&&kWoW`4rdpF=wH z-4l|q;Lv$m6OiqOiBytGNe{v1%3LB3OkW4`GwkZOGCjcL)=WpPG#~`CTJszREdk#? z;gpHu)3;h0938y~@tr=!CA&_s`7~W}cbaMC##d=&CH6LwQb@0P$@Jmm(E)OAG)AF9 zQr@4SAQ-5WNc~vMw~zPlLXJUPW_*7>Jf~ZVJOT`mppv+BF^?Jbiod!e(@$CnA%jUz z_{c84ZuHUTNP9r&fcbhvUa-$!p|&~%rIuddDHNBjt2LsLd*AR0Z^|&!1;N-rI_Pbd zCQz=@_fL=(a&kc6Bp}@gG-6JuS}AIe=F>|}Z%>~O>&jR&n^_#*5f#Vh&6&cBL!?Qo z($pfi_yf$5rIE4zUZL1C@YNG}N*VMRsjAow&#;Vc`jTqNiLQw&^AS{hZPlatMDfBBOYVkD6bUShg^oB@V{_jJgbLKV7AXtc@TGg@0c*%d~Vet zvQ+yY5WkbdD%QZj>^^_Y?*Ve$;045c4qj&Vf6jflYu<|T@15*n| z4>joF;4s|a0W4WDx*hb(*k#2eCN3w19_Sbl!$mY(8xtYN4co`&79ZmhwqGTBC|hKI zQZl1??{Dmb!YbH*z_1R$3RV@EQh21dH*+xOVJ~gg?gM@wd)QIT{`@i*Glj9Ex?|Qi zSaJwvcZ#*DGxNO3tI>KURM!bn@}4nI-{QeOiz{SL5DvJC)Uj23^FG?|bJ(!Cf=)7w z3n9zIynX?R3L92ws*@}kzBdg9>8c2qat2{}FZWK?DhGwrgIv0zkJxnmb0&BVOL5Su zaYt4(v`Z%!1dUd!)_lQz8mzDIjB2p6WWHo4iISrVsXWeycaQ-tYQlDqegH2-$XPB_ zVK22g0u}p!JPX@3GdD=_*4X@e{3aOAdTcWx`7D_~1%BVo6Tu)Y2DC8Jpu=w6k?56f zwiU<|`XIzxy#8u-bckL`(XgtIgt-Gy9Zt53m!l1&NOg3ZrNkStv4GHsF`YS(8l)!- zn!nCudEMkbwyu~!G%;(c^7 zAVFd>FowBbCf`*^ybWd)p!%=;BKRg|jZ^i|&sgAV@?CLU$*$`WDRq4_{1H}LjDnQ_cUnfwJ(HX?tKR&c_fAF4!@ts+n#fig+)X=J$p(D zgGO1uuOydQ?VwEly;QIo$U&nmD8AS$=J6z4Yy>K)P$?jh;=Q8Uuzu%LY^E!Rm>8Xl*~ahsD6z*z!`*Xo#H`m{~R(3%<$v1IRy3|=@l?H zh*^8hs|x-*F4U1<>NHCxEg7uwlx|l4@*vg8HxTsBG8R>_`E1X=UfW{BUk{s4(7uYB zkn_JO@F_T%nF13|_CuRrcpE0^@$^R&g@$Jdx7OH9s&U5ki{1-)+^M>cY1soYY4JV_ zNS|OylJE48Wk`$R)}E3a4Y|JtR-Cv0d_81Q6Dy`22U=*5p`4raAQDQY`G%li`!cI1 z4Mal%|6K+N@(dM&H%58{%pWq7Vn~0`j^w`Nl@+3gnBevu=4zTT1X`4L?stgQ@)}43Rc-vcdtb2kjOzWQ_L%S$2gaEK!XjQ zSSgJ5t{5oyBhGk{j2;R13_w6Hvx{ZXtYDd)>c?x zg>oGNQXqqP2cU|@mSnAJ5sRZ_d^B|&TbU0^G>G`=I#IE#FoNLgBb=kxzrj}v#^BJ6+hz-NVwj!5o z<*B@KEch=&HzY#K4Ztd5<5`#C3L75RGV(}mC*ONUk$xo8hUL)W6zVi<#6ra-1luTg z(nTOqRnZ{D>FAD00bzSko(qjAVfX_eR&uN=V~@e^VCk#yY#sbImc+-v2b8Dx2%0U7 zjUSOQ$Lf2%XfJ8anzeUoOXz!@?>nB0

z(A!j z_=u18U37rd2pKmdr!KBSI%^wbUxX8WdeIA;-7tBOt{BH%X8l6-M{`r2<%NCk!}jyi z{EJYx55{w^K|_vuXhY`JZ%}hZr+^ibxkVS_m~-qD7C9^nj)3M;)qylR95k*1m84+H{rrB zuf$UQ942VeAjrdoQ6xEDJN^JM$&gM59Mgla(<9--AmiD%A!Q?|!Q6=5Acz)BX~PxA zF+F!QD3<6fQsoif1(YK29$nu5Eh^a*N*%rz-r*L!l`l?S*hjhyK{qkjVZ(~;-B45O zgh-4^Izj!$%s&^pVKzQtQu|mMmcUZTnSg%{$r~;{0-Mnxd1HQ%C=0>b3i40cOr78_ z{)ez+bC4jrVCF0@mhvYuLC_ZGz4RkH_@*@p!rF_z+-J$<-aj7W)JK<%GG#w8m^Jv~ zTP-1f5q`Eihk!!~L>#Lv!&BNA|kCoPTP@-o17H~X-CWt{5=LqiQr%v%t{t+ z;!nV(2%YJgt9QA`6_c2JnkSQ0I^6>6s@R-B$rbLp3|XxOn!M993=1$yb8gk5G+0K1 zYJ+VwC8&6nh5l&+C9BXqcNBqR7j1QADIxC;z?Nr?F;?f+^*n{y ziw6*89A|aBZY6f9o8jtK>g^FG!I|$QK~FMd^;mNU@*O`qm(jia8A}1MyV~O>2 zuKLYOsA<5q6v>^=D!JA$Teo zc0%=1CjEE7?|%3I8+jKD$E}v=BvN3<~sR303^6sd-%YdDx6j%j`>4q5v!SA2qi~M1?PxzFl|AZN@Xhl9S zi_I=bY#f&G;m8I>4!?+DMpF5No6zJlJ7B~A@H@KqLTp=1ir3p8+oCWKN$Z5C5_$Yt zcfpb!1Qk3JCOVyQFa7&q%{Ef7Cea-Tv?o@; z2=D@m*-6ESh!6mgUx8kWKk`C6RsXU}Yjh}Yus@uMI0}5J$}AXup1AnH#ZY-0vo^x7 z*;wv`mpwxad6wVSl3F}~)Ugt{mBxcV#?@nifMe08Px8BWK~;`1DF`R_ky5k!{Kbp- z3_C)UeGYZH1<5meD-jlfw1AsQ#k^2sN96#w`P=$zti9y+AZ+1|ozP%zaru|V$i^g= z7GeP9Fr6yEgyDqcPp6=3Rk>)jx-jL6ek(Xb~+|#m974DWTm+J zxx71PjD%zdyv6-5oAl^Bq(_ri7}hC#TVY;Q(4oXIJ~}By($e^24%Z{xbp&4U(z3{; zJC-1OX-nba2z-o*u$6g8TxY#2Brj(N7xsxW-SX)}fE@1<-1K(Yag3h%jtD1zUGoZ% z-dNN9kjOXfjyS!VRCB;Z>;R`C$-F_B&S{FKe}! z1!-9@awTM3g$V&-4`K~-J%UfFH4GIW{jZQ*X36-(-@f}A4Dhpj5g^MSf@@Jg+skf`&rKNUk+f#EKa4DUS7dc*}_) zK|?m~%xBrG_X;X!E13H&mV|IKIsH0)qBhg&82(jy?*mBb@U;g4_F)??EsUbcpbAE9%u$F^NG{w@hQph%oUW2=LqI`?SF{ub zy;$IlUBsfe2{&Wm9?5(0Z&+b3r+N&g!nM1R2JVMTUV`Eenh&}Nx(0ZtlO*pGmW|^( z8eq~wdt>C(n`2UG+IVhRge_UN>3s?e({ERy#Uu2Sz|AX2YmDWIu*aB$YY|5biS;DR z5*rw)Q9`r!R$v;Pj#{DkHykan4H}=WR!k*nIu!K0NBd$>LMxw|mF{_cF-m>IUQqoP z{H|&gKVOf-2H{xlGUMbLBYi8ptk|!kyUS>-`Ax*Kh@3diQ_z7iB5>#=jBkRwq5`wj zLFz}O+D@KBd_BSkn|IQQk$=Pr)Wiz%K^SvGXo!x83k_Wn$WUOWA2J8&ky7E`G2bMr z78bQ+G14K7r|WItQ))tK`gvhLEPCW9-E@6lz}Cd&6cUa#t+233Z!j@pOxpt4Y;yAs z5rh(OofWny^cw#FjX`6&U_r0|9CMf@2NvAJhA@OdObk&7uAQ)F8a5YpY+T2}0K{&A zL6O@HAxg2uF_DS|;uk}490Mo@C*zT!eg_Gv2ic~+O*5n7Vo1y;?D2j|YrdC7v%|c) zBAO-$oIHTqfH5GE^(Tzm68-=st1CKl#sJ{#yGIkfsEc`Zpw|{r2@oVE$rWYg#ldsbqm3 zdMj@pgbV70AxaIpB>z(wo5Ru~xRKvSuxaTs?N)OR@^Sfa z0r3W@Wa*7OX&cC|FcL3gn}>*j{z~ygaIC8$ZWf`>nMguul9z{6+#vqKn_wcxaHj_= zJ2|p^Uymw|3C-G409S8gH^`l5;jz;&3M1yhJ?JHYcl=>71LO@*iU~%-<-=mI{U)+N zKrUW}fo_aF?0%>#G`1CWy}brSoP4v2qS|rEO?Mx3JT)79rrZxo=(b3jUw~r^Ez9-L z6?HuFnO;xinFWq4(>=8Xnlm@oeB{28_r)XNsF1eZIh${uN=DRvm9w4Po(~n@f%;hj zVhis0Blm694y8xtEmloGi3G2xY1wSSJSZ?6&yzQe0xUcYtQ>_Z1GC7FmLz3!Ph5DCM|a3GWOElv^`RZbe);c z6MlTp_VZ-D0%$>AgB?(;C6+Yg^kYusK|AwFWGhtOj~$Q)(tA_4#&r`kDE!Ulg7Fg- z%s0xeq5g_L{LpW`YFS^MITS+Vb=mg;e7tdhwv#HntpIU(q{6&}UmU)$kR0F6JO1X# z`uEg*S6|<9b)VsA4-|Ymy*T9>7-k&N+HAv8TCu;w!sYCyktg(~s zXF0j4kq|)B(8z zH`|eff0RY!ugfCN*NE99V51)ofuSa39ZY~?C0wQEB6nOzvEJqSQ^QY+?^|u8j=!>P@ zHEElnVCXGu)n?Gl<;j$}jm2lz31)ubM8{-=Oq)qP zJ`f}uzn{%h1&TRb0`a}K*6l@W(oRq_ncc5)Pc=T@x>;s8rgPWY}W>;KTXI5f=iazLsMIu01F z*WfRB^Y<{ZOLqmPXKCEKlDY;|Fgk_ePnq$SViU-2aiKm2=?M|Q)O4|OpWGfh{9U#%nc_y32%c=|3?N>tKB)N zdavTm6W(C%kHOF!E$9PuxX`?w+3kpit}$a>7p!BWMni24Y~F`nuf@ysp2&!maLn`~ zq5LMS?etI9P*!>TY&{My!Tnl_nBy6r64-U}zWQXJ;HZ#K(YGwQp@8E)=HDz%P{jM- z&_u{^lQOik&Mc!pL6YM~`$slffN!WF|2@>!?AY)m}%74SjG>UF{KHQee^ z-GSH#1MS7kdHk{YmknTEp#Ej`sssi?pS3;%{g{^^ipYN#;+`UI54pqm zgH8c^FiCZF!D7U@A+&@w0SZ40(#V?~2-K{6YL#6P3*S zJDZ8JC*F4I^eUf%Ca*TylT7^K%H<0n5fn zz%d&f+2$}pE*y&X15OsrS4tx9!F|kKZ!8f>ZXNivv5;d9*?bZ(SB4WbpYe9mi`IME zy#To{!EQn`lf)lj*G+y8{i z^%^H1879A_LqERI+6?aX|HQLCl=;&d#ofYdvw3n4zSva2D^Q13iUwlnbEco0YZ4-; zOu%V)r;1f@SBOb_zE9*Kh(!N{!G)8PhW`~zFCavYc5ff3VS!Zo-H4F>~aR9vNF zPmhTejXom~1;gHewekm$*bTpntKX#|OOzOZ8XZ>d)8RVYK~C&pOlqYoyU5LnTyj1<3pxVo-UX}Y=IvW1#620D0_V$JLwDt%$ppvcO4R;^+;@9-yn(RuWD{ z>)@vAd2ILuq-0GXkjORL$IwF?e8f=P{@ked=J!hRyRZG9jkadPUHHUb|E5B!;26_N z+=GDb0~|^2#EQ!-caxr72>8f6=$H*S?X`pnt8N*tjnq5NF`+bEb;}@?`qzPIiB4}y z-h1wa{;xFe_=3fE+m~-X10ExD8LP^S3Q9Y{sT_*#+%EIuU_tWsLOOT`9GKDp?+gFT z`%W%oxx&Kt`77Tg!{fQ}z2}f875Bx`_NZhK{sQ?|9GoK0Di^V@*~rOp(-}4L%aQc` zSaT2nm!^HVuj^8xQjoDtrTD@002S&S_ht_2VD}TtU?E*{X@&weDZBb@n zsjvr5$6NVHmmO2Kk&1R`h@y33nx+cJh2dmezH39XUvW8CMlZ;|a9UYx_CbTZYuN6+ zcmpL3G(xrIol53n0a?%obS%DGNdZI0!60nB-ofNtujNUnd{$_ot&TQtdNl1IlP_{C zFIO14xnXk6Enk$k+j}yI!)ilL6Ke_hr*pw2WS=8wf)_%n1(l$VTgIrVs=U>kI{$ZM zNf`3oo;B5vwOnZQH~r2WkO<;1W)@F1&hVcghk*7d(HOcU!(pYZm*9tR8P`G|hPV1b z$dU^$t^vu*WAiiadr|lM)hj$HsAoA) z33ZntC(7+B#QVr&qhW3*xyly*zW|B3)ildx_o3q|^*B4n(Yb`f2!C_l`ubA8z#RRe ziRGNHgQU1FIy%}wtM(gBH354Mx%Y*B|DsPbjPwdnu2`n!O>9es{MR6D8iG1lK(?&y za)YZE5(9P*4&w?%nA(4)k^-E%&zu9!4pJ}^mBC8_ieVCuI1m?<1>hb)*b7Vtts4x$-|X4{rLmhUUTL8q{`%ak>q={6a9zwdRG&i3J~`S(^5F&@q+h zfK(=;Q0du6FKcvNJd+K1_{{2pC;}i0uIAjD2ycRa#UEa{Ekc{W z0%8?fu9-%nr3B zILYZeFxcTXN2DsU?jfI1r z!iJsMhlAR%n8HIcA4`PAPj}m0{tbX~MwFK@Me)`QFXsillKZaAFphC~ zn4?03_AYhd9tYF1BxC#l4eOoo>X8Kw*!2Aqd`8r?W?1cVO@vbRG9#&M&s%x{D`-O| zYXppYKrq$ewrH{AO04c{y2h(7h|8ejMq05)oC0ZO6zT5uY-SK1KR%xX_wm^m;dcsY zx)**nq-cC;!I|%6miFlv`G)_&s<&Xeal}D^HpKJwz+SXBnmB12670f$SzU*wip4)& z;>(sbJCa1OgxedjUu@eB4PJuHe}Q87o|*p4iEP0~E?GP-=i=AL161Xr`xzZ(Wo$;& zfT!!Fig);Azbbek%Wpv!%$2w)s-m9w1$%qFO1=^`aOl72@6Ayo7LY%-M~ID8-!n)a z#lG!*sCX56lbCM!CwhdtFi9DYIb8=NWHFPS|1o4(IY16XLnjTI8%Z8B2(=4g4kPBk zQy(O&Xre9Dpjaz;3e7wshxVxLCEale?iWF*j8`s?Sph#BR;66)tnf zHfVG(`8i|!QsbtzzwS}2`=)-1Ym=f<89Oc0O;Q|nPv-u1K2y+gN`zM+xejMYaf=H< zW5)BWQXopxupGM7U+~r^Tt2B=@pKII@-@>@j>g{I`)ZICTg@}e909+hK@84s9d>^g zc3)Y?7Hxrtn#ogu0_l#u#WNciex@)NJgZ$&I|cFiuS|d4XQHX3U%|%gY-Pl806Zb&k5RWyYu`#EIo6;k%v_M zR8B)`&U6U>OWbek-A-E~mYeRE4{t+k-NEo|8v*Az#^ycEw+vbIFny}RI**8Fm7sGe zCvRx#Z)F2bgU?KWfe{ZwG;wZ>*Yu5lX{ED^dDGY*mQ6U=t7rF1V|pEpa4m)snWCjO zK0O=$;*g)<)bZ7c8}?qO62tj03S6xU)`BB_29|-4^C6XhCoqLkIl*_ z-cfPGJfC73Z*ZA);jnrzOA|hVqI@Yv^<%Te}5v zDsfhycl6q?LPHQeNH`x%*YXj4$@#tPxTVhd_x!O-Tk~?ne<1vlWK%=_a1%P;nWIw5 z_Jcxk_vf`d7#1r3aEtv-NH4_m1)b?m}*6dE2+5rDhRCF@lLB7C;y1_D|OvC z1qv?G32<&Z@AA?{pc!l{gwcL)_Gg8#vy-&Pax6aS)?`##i=_9%&Sp4PeR2h9-fL!w z4fG$TZg*fCW)AGfohg~q04HU~MdBO8ti5lEMmdn}xDl&a5E?qwlQc zM4O|D_U__OpNBz%zNMEg%)wtl@cW~;hfa$yQ{abnoHBl!Ldr44;jYOhkm5(KF0QM` zi_y?2Hv6{pd&yohp_I6{z~pW<0PmY6sr_+YfYt`2AODc`ra;R623FQ>NGQg^a}z5P zG*YzHVj(p@@YCB&rK0r$_8r5x|JT^QmdZTRaj+4l4y1Zr)_reY41)pXE{{90o$+0%`sv_CYqbW z=am9j?FJf9hmQWKL$4B!P$F^2H{+rWO&6HNd3^R9C;6wt@LWDlS78jvJO}B=;yA@+ z*8kw3fK%t2<6~^MPNm8T;v|6$=K-Y&SZK~*L310{b|J7%$khEx!Ha{g$s3?H$VQb# zrCg)@FcPc*eNGhBqnzp@12QDy0J_Flz6D0YjB&6sBILd#!2`;|2*Z&apuqypOA^% zV+QJGu=dJFj~E(EX5@!_-Dx}+DQe6-!l(GKPlvbld( z3_aZkiw)YZ(i^A?p$WvG44Kz@7=bNpfGruYa?tC5DL2 zylKSr#6M|;IbyCtLI3Iqd`UIx4&q-!@`mXaym|1}A0CEm)W`NSm~d4*K4dKZk6_6o zFap_yn?sP6@+cGu-R`r&810zNLbFRwcO-}1duKiBgDSq~#7|5G;9QSjvh_uJh-6GPBSnjz?2+hYm2UdQ^r zqC(`xScbVX!$ZQ}6X1(Um2KkPIFXL0M+qgl2Vv!8{wD{|JkCfVyklVv0STglTJ-}$ z^8AsG#ypg}W&3Newnv~mGm1VyUucR3yVX)QHCrGHRcv{lbCP3z*zcuR;kDN3h%(w} zKc3BG0UApkt>$duSs_d@A+)dyoA?!XN9^J&8}Bvo+2*;4KtKh5&h9K;*X6C-4y0WzcjtggpRPyU567gKo!Jhc1pW!q zWfPefTQ(PN-VC0lVwW0|znVLDH(6S|u;ILBRp7+iFdI(*e9>?eYpGdbn<{5E!~0+2 z?0{=|t8^C*a}!O-GLjkoBPuS`Q;l>Jkzi-GHcHmw+|4!ER?SOITh>`<0(;N|K8Ie# z0WOT|IvkhhWy_$j7HkK(fYn$iKW9b(Dw95QBC4AI%17_M>arFKr?8YdaiBp+WC;no z?#hLiTxOUlo$@Vc!eZdNCVsb)Z23TVAIqKz-@{8mUPxy0)I?AGS&Lkpd(#logAsKR znCZ7NkmIkQ^#S6KTD1l_iEY*J;FQYGOx1p?*YZLiVQSS?o|9XwlwQ^{izAL(sATki z1(jR{-vS&)$dc)yX}X|uM>AVCt%E)X6^W$9Ey_VS#cSaKbI4}7fh!|{j591m5l^A@ z%CXKgRkbi-5KuXy3U)ImBRE)dvYXMZL7CBhA!wD1a;Un~Mm|ob?;Y$YrA`Z(o%pI1Ir-(tigT*YM;A@@<7Ydj$Kcn>>LR zK_z0tbEZQf!>F533m^QgG;G2_a*DE?MHj5>pI3&dUW$mo32Kny`r}6OTkOx~8-Xdz z*-mP_Tr1W~mw#qi2lt%q7Q(ZLKUjeN+zapDQ!gHa#eP`%E56q^#Oi!8IPJ?89Pta# zX(s%zj1-3O?x&U@taehI4~29Uchqbh6D~(Fo6a_m96`K035V_sRHb-4RsZO`4#Pt` z8Z8#MZ{v86xK*W9PJ$)Lr&h+#)VlC53hA5%ZFWXa!y-h3pD<;36k59CNySVo_&`uO zaPeW40&;>Z`$5z9v|P2^G^R*TR5#M>4bw9U_U@1}TJ4fQG0&r|&vKEQ^PyfG87HKs zcgi%a5)TN>%Qomy&E3r645aa3P0psZQyE9P_7u*;=K zrTvA;IGRd%Z^g~gZy^p|lh0Y!AHWeDv6(7Y!8(94hrO*4@Hg-e44?51xE^I@GQ@;L>>3F$?8rS+ZSN`)L}k6&GhCgouRuCw9`oZ2fyMl;m07^)bE(N0K%TfyBW7HHtFg>L9w0(gRzP8WTe4cW4~=@K5_ zl^S(KeNlA?C>#T8FxLW`P|$j&V+H z$A8Yh@7?bok(2NJzUO_O=lAZR8$1p#;V zf-~(SvJZsSbf6G;Vv(oVptCF`V&)0|7L+N5pk@hhizgvs=cEgpV>m{U(Uw`Dqep!w zBxycKo9$@SNL=*bJ=DnJcnTjE(>QID0osb= zE-wbB@O55^Z;Sz8o>jimHjKi;cwh;G>`?Bz9~V^jjgSuxBgQ7$*vR zTV_ziB~ySh3g1+?g=mG!&#{5w)(&r4hF$MJ635H|zxpOUJi2z9PW)uFY}&#pVkmO0 zW9U>QV8H+kmIiPI7mV{#8mVTr5DsYB<=}Eu$H2m?4rilc#iU>&fW!d>8egNl>Qi`n zevw{DJ7VPRqbD`)>J=NBs;_5ec%M`i{Z} z{Y+1{he;PthGiisVvs6~I#H31Wm zQ#7#9_xO1WEe5+sVZO&mZu3vn72m)#QaRXKP?{i-hYnW59)edCl+hOzJ`z!75FK|xD|hJMi@cM7H31_gjgCESIAI228gu=TVIZyg3y3N-Bv`BFXh7` z)l5kcUO!nTuz!$$6vRZYoAfUy)>*dYTX3o{ED@${&2stbp%UtUN|XMgibh&x9J3@Q z?Bh0Mz>^iP;DG67%rJg^L0J@{=C!C;*y~4qk{m~0&wZJ}K?}Dix*Y?%^qvl7-HNnG zncYt~?irG%sghXwy*{p_OJw`ZHLMr7GK)*MXs)imZ@Oq_as2LgPvzp`YNk}*6FaavTx*2gHW6h*#yzVwGF*}Kd8to{(-6i}pr3g~=vqo*+ zS$EGucT_xUgiP?C42_Uz4iid^Su&`Ld3PPT?EiV-{D14Nn^u8q>?o~E$>U_ZmqRJS z-O=P z8fYIPT{^##4t(*5DthouS$-W3rFiEg*bXr%j0^@ano`@Zu&0;}c25YbD7D)trx$3d z3)~W*3wGIDZ1jg?V&};Bn_Xt1-HW!fZH>w4jy84KJIu2U)8aLs%uzWVq&4pZ?O zUMyDH3Db0(+~hE!h^l57@w-kkX1{%+-17j^;=eJ>)t;6+A9a}DIvEh`lfhdD>zDdq zTj6A7vwR6UHzBX`&$_bsqR$UABFNcdOc+fdml0ZBFu-HvgWEY>33LMx9V zl9zMQR~qNIS(eSk(&;lz)GlcKUdLAOzb@ULlUx2 zJoeNNK4Oa@D3DR9gd~IoLx>QQCss%xfvlKh7ZS+Wgw0Bp&A2<6-JP%Je(%{JrKjh; z&UL-#{CCb=S9UkMGtbQ2U%%h|yJuZb==@`cdhh$A?eo3~1uN@vP6oU0@yn0j{cp}+ zotyEIWB0Egob|1yp8#-RQh{`9I(1JkFi%U>MjLA-7Gf-E5Joe8cmthMVVbGQMduSFRv&h#+}a<@yxvdG$M0Beuyu8L@$Glkb8=& z72pk~2Lad0gdYBsC~AUA6;2`TQYEW_N;1IvGhO~N@Dn_Bh@6EV!0TM-VK$A`!+@rd z0iwGjG}sIEkPOvCaT*n@n`(jWqFXs2%G;0J(&!q|+}W;h1*_c)87Ij!nMU2tuahjq=-j3pOhINnBa5DvJgK)we7qM=y}_4v)gR-CEO-bYQMmR zOQLQwnOg+oAl0ihXysw%;h=H*5U-Zf7ghL~n0W_m48!r*To@ubEVrnLF=U*2GHA;|QJ7il|q zdM;gLqTyV{#JR95lo!?hEnFYwKMV^Br*p|3a+0N^-`eZ}W8O$)9Xo$kbeQ4{XrJR! zVRgcJ=-K<*;DS-2r7|CEKx-RqPSb&(6P7xFsNpnQ zH9>P9W;w_IDBH?GGN^*F_$m zDDh@2m5l>$%Fr;h6EBQ#_y_k!UX{?5WG8D-daQ(HZ7QdkuWCf$D_N#T%;d;I3@FSR z@J1%W?PPaEUw_Fn5q!f?MjfjLjg z?laxPa3|ad3xYgWvXc3(0NDZ4n7e^ZVLM?B^Jo~yL99nH@`jb5uhzhnLP)ml|1BIi zqX(RYWO1D+uA81|B$K^yblXUb#q8xc zGcHQ@soARw*sJSbiTl_qx5(gta+Mk-_+JgQLAaN$+sdDWW7k_NErnKAqVSin(qknT zoWS+46w5PLPG#-2!>0v>jNuAxFnizWU;}Ju3s)d0v?WFUY9!2x*JQ(HD{Reb;fJ^{ zl)6kja=(=>QEI!uHEVWjsnPB09WqVq+TFqrlZTC52ja}Nd#zi??F>9@_F4yCwQYMJ z%~x{Hp`L2ovCBsy08z6&bH5 zdgKr|O`m2TM7+b0k?n;Z?&)M0R`U+2g1R?84uUSHnp8Y7LX=1lF%IwB>yahy9eCGs zt?gWzt0bLqrdbUPu~5_=K5r5g6MLh7 zzbe>lI4xR2y8eBM$tqD|E5ci*g0PPZrTEnEs$A4S95v02a1^VeLi=MKjPVkwS^{nK zWphTqPOBPWr9XbxFIm<*c%l-c0vx5#2o8jOM2_XXFna)oBuk@PEb~B&WK<{3Vp~!y4k7LgLXQ=yOVg7uy*Zt4fgiyMGCzoGhQISVu@&F6 ztU6CVHNnHJkEQ?l2ET(D6^`I{%gImC#2wKT7_+|$O15rSKqI)$u*kieogN^MnMf5{ zq{A4klqjMY=Z!3SUn)Wi29@cNO0*lHr-T&_N@77M?2aT8zd`j_CxWg*hP7RyV-zU3 zToow>H%~1}j|MgY(#x7wt?*#{#8z6igOLNacnTXw4wMTlD(=qf_IUq!+2#_zN#3TBGG>>3S|`z z4r*oa{%YgeZ6KWp3_=TeorFZqZ3u32L(X2fXyvZWrgK&_J_Wpv{2U5Gd|G=3(%VGI zP3(X#vx06i>98=gz3}iOZi%Jb-YTGpZsU%RE-|`W^P~>>THB>tofAkUJnHjhV-;(* zh~^o%<}I)VE!&k2W=-iM+bWGI`^18Bg_96I`{79=^B0_LJYEqVvga;%ku52_#T#OY5&zgAo~PxAD^r}-2Wo)k&BGLnAg>iK=xu)CE@oHLhj>#uNow34QscV=E{VZ; zzsDE~LXnqfF!0nqS4}#y+Su zHSrwzL5RVH00=F;kETBlAw!10xJV2>JVge%LE0_BOW-)K3c4Hf7t_237Gb5j*M|+> zQK~uSBd?7;XNt1WwvXHn%oL`Wr*86)h#_Q%P9;vFOfZQ_s${+#a*U!dqhbD>DgIFx zEzZjCHr>Z!d^@}rAmx~Z?Fc;Z4UK(Db~-?F`I zCVYJ)QpkJ@lvmLYcMU?sKC3)jd^Br?M2Q~nqed>X!VsUDq-fCjTwQ76Y}1c?ZL z$Q18kFlc_B9OQa*;wL6mNjam7|0C=P+N}mC1>qf|Gv^67z=+SVxNX>JW??LFjcBnN zr6@>|X)K1b=}v5UrQvw)%-`ts0PEM^`8cV7JAlir#r{R6wK|=4RW#P3H!K=p_2)W# z>O~iHBNn>H!x880ay;K7Le>$;Asi@ z;`B@04-3IqB{{02`b5v*o5Wvo6S}RKvA`5je@!8IWwby?(zc(USDWUgr^GR~jhs9T zXW?$_F7n%)z_Tsf+Zn98{Bwpq%@uZ4{Ok^N^qCob5mvIumzw@bc`M}x=;7X4#^9nj4Rh=JfEdrKoXcY08&tY3!S*h}8FcOjBxF1*133g4 zy>QGTXy2U5dM}n26H`8J&KJ+M-&;@=BXjR(2Z`!X9~`Clm-mf6Uv9T8mDaV#A2TzK zG)4arzqgczW;U+a7`q5Er7p~CxO_s#tz8RhQzcR!BB$?rISl!o}|C56#BNVn~R)}Q%615R-3_ICw z=I4%bJ&7zUHid9t?zdfR`R^i=S>7S&mW0pocfY5WB$ww(qOgwygv;xVz72o=-`lXw zTF~MAz{Jd*(e!Q+QG|SOzJsqV1S{T@#X?;UEXDA8MgTwj!r~P2p@Rlp7$|a;PL)yd$4$_bEtWxUH$`d9qm^mC^3&*n z0az@1E(OR3z!FTNn?^I`SUt;OPSatEk-{nxBtv36)1o9O4)A6*(fKGn%Jn-6|A0Io z1RpmsF)p%dL(;6ayA2SMCPJm9>8gXV8DUn7tyGxVQKVgy5NZ3!9y193(e~zwLaUn! z+B(4>t^SH}S$Zm)cSXa|;H&}{*!5}x*TZ zJuuJJg@sbKZU7}q5mf@@gZ*N>K5F1U(Gv9hMkp0kyUZn&(!XO-UTU*_FGLf@9aTjvV_!!(pG>*W}&$8r-{y;>)2n``eTOsaeqQd_D%g;4x2g3 zVPl4q(gcOQ*G1GMb+PU%pJiB*%U*IbOa!E;Fy=Ta$|1fZCEfEeJNy7!T++$1Jm;AZh3cR*BKjd` zRrDorvij*D?Sa$L8HMJb-BysF2E&)63MTD@$*+KG|5RM(w zv0-{4Mjjg`g^bGNohbdGNT!0l9P$}eQgrm#l!I_9ii6~50=&RTPrl6qc_>gKxt*iK ziE{Wy+b_mDv!j=F{LJno^h4`5)Ld=(E!VbL;|oOMMJdM*xt6kAt8Bz)dg3q=b2EJ+ zpnN%QZ4CSzDu{OcgPYY)W9Uly8#sTZ>9(8fL6d6k`A{8@ss%0?0}8nz`MbWmU9311 z&Oepf;y7fGBkUl3GLU)!&dAuWM`MLp9T1kIZVpRitC=}Q6(`05 zjG)C(KB>13CQZqb7>d2JAgmK8!+e$1rqU6^%$=aasUT zf>|Acv03PXOmG8z$_TQ|7}*AIKviNwlW{whxegrF_?BST*#Y+hN*R_!Yf_ye%^YX( z-z|+OtDo5qi!PaReIr-XBRSKyqb$uWG|+9DE(q%-yBE$cVM8HAyk^(zQ;|h5os7lV z%*h6<>FubM1a8A}gymw+BsH_}mpZn%_A5Y9^#V&ua5J5IYKgdRLb&8IBeUpP34&(k zp^DRi!wHR(ufRrK-SdTVmB5==2)Yn6vr5($#js8K>(>0hFm}+d-^&V8e>iP=^#W)C z{PB4(;OP1u)P-#*5Yb|+H?J6zuV{?LL+R(G`wPmS9WlH^GT+^vG)3MJeX^S65jGMl z`C&@xOn9(qmXQmyHmj&!dJG)1;eTG@hq$E{q@dcKkcsyr!nJBB$<`r!Fi$<$SHU=q*AL z&sgcA^R|e6shMCKqf4&qPvR*Kt#)OmPRA7v4^(2~M2Z6C}LJ$j` z<_D+*8&)5O)e`v0T%2K%@?E4^?wM?X%kSO+yF_jeDxal8XosSgW@cQL_MZL!k@j*3 zxMN)RKH}#a*sWoc@9u+xFB;?j8EQ`Ai88PSuCN9{Q&8#nW)MV_7;h=fc=N!|K#`~h z&L3pf%xD8iOn9lKKw8t8(^iE+I)hy#-UJFLnT$-OfuF9fMnh%=^&uSZPBvK&jkkN5 zpVs+=``O!&TTgHry9;F*=7qh;XRKbB^CBK^KF$6}i}&f*YKheE6}VY^eX8c4xR86a=L1+Gfrdg!`u zALVS#ZyxAwPzN^#>`jIC-@YE1LRe>o@@)_O0rYb@D9PCtbwft`DI9olxK2#6&rT6! z`k@P*KM*^I(JE3+vLy2weg{qgFsN!-AeLdiK|&cYQ;sU8ifGiNR~o^FSVphIt8>w1Wl%tY_!5N?3OaN$jNywQ;c z$(^#hDW6@u7~mIFCA?|&((Z!&I0luvRHq^*Wi(lGyJstWRtHacxO>?jpy~pr5~Aa@ z0kX^;d*O7@J>K1hj7o-^O;U%u*R#A%tpw+5DXg0!3;=7MEiYKQ4N~ zV0$Dxo zHbrY@u32NY!<zYa-KAnXr?%bf?tTt1TH-!f1i%Tx$xeVS_=I;5ZpD0b z<+%Cr7%2;GwxlhnjTo($q+Ql?BQJDt52us_#GR(u1&uQO4hpl9r3_ngp0LYsbif|G zRh&pC9;NZZ1^hf(7OEjEWtqkoT3g+#4?g ziQoWqVAW6TAH&NyRDGTzOnfoO$#xug#L&(a!-fZEb6gD7Krd?cmGEwm;MjyWr&JLS z6yj`Jbu9OBr39E~3mbehz~wW~E~&o2;0keejICC;n&Lr1+_VnFc*-zyo-myjXHDs3 zzJA^9htFirgGsm?>m~dyN|&KH=(%9ACdZ7VFI6N>S%9$qEO2LKeoXOo1E<={$+{)# zObAwK4`L9Em$Ak9k!RhkE6{V@S#Q!w5<-uUr-2Fo1>{lW96wqad82cxRq=Cfr=C{! zNtlEfQT49r>29^!WP&Y#lDoHqlJ zU0;7M0fwFKaaJl*ybMzl73O;0tjW6L|XxQP=_gq=n}x0SMXeSD9%$jEmZw^tsY9*8j^7RoAZ&A3 zs>)L2-s7x#^ACLQsvaFn(l#$Ca({K2MTuf8Hm{jSt!6C48Y(%Ppm0DO^A6^0Ni= z-$j7|e!Dv&eC!J5d*KrtT5o_gVg7)D&w^A~!@~DkjCM6I^bfZ8zKA#W#5+xQVt$di z37z@BGK1@Xkj!v7uyzcj{Qz~?=Ei~QPKj&UXY|1v@l-MoBKCfJC^1H9W}dkG^J_V{ z`!r8jx%Vv@s0Wyh63wLavn`0s7l-n%`JdfJ7Vdnt2a ig%xaQ<5+yCwHB^hiw&2>sXx=~v%U-0zCUfn1OFEgS`N$r literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_009_states.bin.z b/client/hardnested/tables/bitflip_0_009_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..f1de49a746fee8866eb0dbee4efc1d65cf89bbe3 GIT binary patch literal 11407 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 UB(@>eh|O{5as@UlS@H3|1Mn*`BLDyZ literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_00b_states.bin.z b/client/hardnested/tables/bitflip_0_00b_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..8c919a282f23238a92eb2b65bfe0d11231e4eed4 GIT binary patch literal 5964 zcmeHJeQXrR6<^0KrmDoLsuBnUUs}|Vio!Xe4Nz>x5{hU`>Ea#ygO@5N{l03_uavUPhqG4>zWBmZ zIo*9l7Y=oO*#3)7GHdNCX2@?Bsd|k3e%`dm%{V}!1aTxkxT?jtcqiw2U zMWe)+J( z_vx^{bbUn40o`4aH$rpvK(v3C{{@vahRjAkXlNMnV3WM%z;Spm%l>=``>Lb)mV)ap z;6aVo5WB=12EU*18eL|@8bG=W2jMN=YBEu`vT!I%5t zZfFkod?pljK`x|(@XKt(VVLj76uA7N8{` zL<3jxR(I*q06YlMnpTS}J*=PAr=Bu|6RWNPGTjIKsT_Cy5)591t{q}Af%WhV*tl9J zv}(A?y*n#wjXVlzbDslrb z1nr_^=QxichQwG3#|02~9)|c}C9~6=7N4yHPTMxBRy0iP1G}*z##-1~BI1o*SVA+* z>APhPjgim~B!|cUwPX}$Fh+7CRLP`gm7lSU+06#_vg#r8)n|oZ` z%rm_>Z&L`;Ve&rQJR;AgM}00jDXx-Dc*~>n7I)iPP0})87Ib2LYQm7mXo#h3`wZtu z-hTOxl?yEnHyaVKv#lqjd=L+LBkiy=aHSnbV#!f#`>*d{^Z)A>d`u->(pzJ;C9qwW zx9r5a7mtl)GZ)t5U06@!+OEUf_7b`ici<|VFdW9GZCOj;%yvu4v=`S@P)Csexx43w z$!Wjt`3HBgB!)9zO#UNwqc?E`8cM#C-JT;W<+-5zlwPrvE- zm>zReS#XN;fN1_Fs8-qkXVt89{dg_MsFD1XXq!xffLO8lGW(I0iLy``x`B`0ou5{Y5> zq-Lf)Kg9op&JN@V_;$U9UTr?`0NgbBaxB<&=Mq>9TTw6D-4U9Al-_vS7-E}9@hX_g zFqHwsmt>=ONn%UM|0@g$u1vPJF%hPhk_JUk0zmZF!Db*1+Ai0Z0o=s(2Jj@aXZ@RO!X=pTE0Pilo*|LA>5*LZ9>0(2>dWCu3fS`|II#)|oYYxMo zQ@V`{iH6sj1!qQcLPH~|9W_wX45>{lY!miQQEzcj)$>>L`+}xoxu%Tnbz1~oxtmr8 zNh}$FHLbR)>(B{l4A&IoF$6t_Rk#RFqBQr_6jD#ZZp*iP1C@L1e+)|tsCoK314hbx6N#y|;G^?{8bP;)u$`^B8fG%WfS7OSb7!`dD}oVFOFyQynJnhehm~2A>9S z2F!2-9l&Z(ax8nke?fDxE{=Q2L?hcJ6s$CCaZpOYQtThC0eMRmyc<|89lZok(m5@z zk}r7wo|VzYd6%ktYtoV@R0~Um1R&MYvM&Nt#yd)5AI>|Cej7Bu1()~U$pR^q(uWq& zgRJs=Z+xzjbzx1e$Mpgf>IPPV#Gk?qG{UlYJY9rKpmHGnnN{i|epEw+I6q1Whq zR{cBJ)yrGV!4Egl9x84%aTMm$3Yadc1O6Om+J{tO^*f$C@%rui=K8&Yu|I>_!skRS zVUIKUyJy9KP*GZOPW6SvMWeeN_#B>Yv{zF{;=2}h%|zMj7@-kYJvRl(5# z-~RH{eR8~jUq%1H{2uw{aWPw?;w z9-hn(_MG71qen5p!zXz7y{x#`nBd{u1P`C!;rH@^o8aLSJbXMFzOD5QJbayQe{%AP G|NIX-`Sh6p literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_00d_states.bin.z b/client/hardnested/tables/bitflip_0_00d_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..214457920b7145ba903c0a6da7a2a1fba9a2addb GIT binary patch literal 17232 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 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_010_states.bin.z b/client/hardnested/tables/bitflip_0_010_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..3b5f8c3d1c4f00f23457f5a3494434d4fd450183 GIT binary patch literal 17328 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 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_014_states.bin.z b/client/hardnested/tables/bitflip_0_014_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..ec220c70416c0d069c429e3b2042cd196aa1a934 GIT binary patch literal 21124 zcmeIadw5jUxj#M}+U8h~=G$70N^#m_ZBzZ+DEr;Z_il>)_t;tEnn0I9AvyI9*Fq?17~&{*d1a}DUZ$B@4@)el+GulqJAm6A zb_msul0bnpPbG3N3}46c)^Gj}xGj)3NR_wi6)s{hT!(9v84VYq>N@>GFHCdN5Y#averEhM)bKvk7Qufp z=d&K7_+UBw2&$;Tu(@69DrnIg&581 zH{yS7_zeC5216%dR!yON>4{DzFuG*!Vi)-LK~9H{S=&NG9I+i_+1fyXO@E+{mJ~KQ zH{>X`jZ%68s|)3XpR9Kmcz$sZpI3~BPPH`dBz<-9b+)s{CuV`8UH5ww`%#+y3=CVH zk#FhtjThlpy744ilL*x=TsO6bUc;SxK^?@LP}_I)3Yx@nvT)+0Ep%5ROx+68SbT-( ztdsp7_!NwA#tFlk?0ZaJd9p4~#piOuARmcou@$d|@+N2#l|r_=zC@=1sD(5T`5#V0 zayO)UX?Cr=4Ql_JHi3fM9a&#e2mMDk`=mbxau=w1{sA^=Vj(_M?70()@Q@p}<4V1u z7p^CXGc|Hb>u1~3M2pax*pWhfZKc6R8rItX>()Tvuq0F6(60mHd#n)O~fk}0N2Uv3hCQbn$SA2`VfIIBqf zVKOg-ZB-!=VhjPY5)!&J*ar78Esfz#bcdqr5^Ffo2pPrm4-ct>cl5U!EFCN@x-2W1 zTyj}5jvRlvNUy=W!hd2;1xzi4Y@ZcR6@7)p;5Bsk0WU&`2FOU-o@Zn4`*+BdT6xuL zXRDSjKGaP=Vq=wV`3ui;_3~hP_ZHZt4H!l9RZ-U#{E3`Qp!+>x=>y$-81f%f#kpY6 zr@$F0Jn(|~U1A=}o^kRO$b|)dIh2oAH$<5939c#LX2%6;*b5G3Ql(R}Dvi6ymf{{z z{xRcO9P~G+cGd`|qU$ASu?8y{b8dti**p-AED7PQ?Z;r85m=wFx70G$Cm zSH*jcmA-ZNZBD|%au8}I8 z(k}ggWt9qZQ45HIR2eGY?nIOe1@-goa}chN+Iog~xpp zC&N4+@Ut1C0 zUKCGqy63ehAL^TTZ;+I%Bs+M*q(~o-#q#QjN1EG#{|HH+=y!t;I*Dq92dOt6f5A&0 z`V{>AlEojgg|%eLb|~V&5KK_jFG7wGyvpK5h;6nnd=+wAaDABcISA#{UbpY47uo{S z5+>m7Zcgf`qbhXbgWDP5e^>{$Rv52H^VI>}B;mRh8z4W|jd%-^@W$*~#*%-cI&XI(HY$r ztfqL!tFUn_(ROFK(&>MwbhJ9tMJ;?sQZI_4JvF4&G_O*2PhY$vJUC2_X-U!!A9$R@ z+95@6I1eksrskAR=YQGhQoXI7_oL@rqCY#3k6jU)uyha?;Ff-rn?no}5}_lrBiFYX zemX$-0ODbwQ~Dw-`F%0x*0A`CwmqG6RUn}dSLGP2!sdeK$b1~WAC$LlLA-!B6uXUx zceUTPKWc6k7nI(oFDw07{C=3P`Hgyv!O%g1(&bs}yXf}~0VzSH5!ufO>SM-^(N$r;MR%3u$SG1A02O8pG#_DF?e6He55u&HqrZa&FG{YfAm(!fdvRb z@X|rf97fN4UK@UrFC+{4mmc~A+;x^rtw$*F$PD;eNo=o& zDPRo=8bTpSlW?nI@$>tlCoOElf|%#lGq9hCT4{@L(gL@Eu^gPG*w~N5Qiz2NecMee z_?4?$bt;MlXJo;tkAgYcAD6v|)g^N?{GbDB?8ecNOr z&g=BHAaR$$9i>>n3v`ZF%y=^mKZA9f;q)5FE2Ri{`y;3$cz%}Gbx6gzn>MV1r5kZG z1CWU|(gW*tqO9ZJ8iRc<06*}WIT-RpAS9kf!?8$tMkHVajzdn1Y#q_fIUsI*eUeJE zI-xmy1g4BAi59ny@y1En0nt5}vBjyOO-gZ%%eIE@77pl>2AF@tui#>DMlrP~gYIz0gz>D#oW4ca`V^bh5EzSwG~bjD{q3;$4judBt0Oz=aasA%xER_lL` zC42_OXYgT>9WduHZ9$HQZp7X(6l%zV`obGkFj5W`c$Z0InftMCFNJ5=!CADx(&$g_ z;BB#A(bJIEqzm0f4yX@#OLNyi3@-ihs#;hPw&G$A!oD1j7hiSjx4Y7@=$%!ig{P$X zN5K|Gpa)0r-X**70AW$P48!1>yNV;j0Fy$p0^RugG9JULoSD#pQEE~O$V=*SU=FNO z=_w-w-FOyKHb5p5eRK=dpR){yIIv~8Rw2mrM!q6zhj=9VD*=p#iJRd^jn+~E4=rKc zh?`D4mG$Utt^FOq3H6QSESAm%w|6_U_&p1D-ePryalI?xCz-#bC$o_xZl#9 zu!$}nk+*n>$-aS^F3?9rmhg1RG_|EZX;(H*(aun9pz0P*=$h*OqA+z;z1 z-vg{+oEAk8KrPjbJ?n)9aWr%O{zmmv@G3p(BNcQVUMMWtDj+#~1FTnIt{tpCI>m`k zR_By>3k|_Um2{0NdR+)ZGWlRovZdYIif89W#d|_Y6UkHIP?89(%F79>iC-IxwQf}h zZSy2s!96u6na$YEekCn9Y-jJxQqj7-;msnm};d9)X1v|e` zUVQKj?M@g0Mrzr?NUQUB;_~n7)WLqE=X!%-67Y%nq&7S(ti=`3n%MRfcn5b%qtkJV z4j}45QW_;QW)n5ch8&f0h$t=zf;?T;X;@_a4WnItxncYZ_Tdl>mCjKMd@J1?y4MdtmCu`a3W86ZGud%Hqs8U z$W?!XL`T@PMxO)uA;|o@en%KFXc7}~-=fET2cn3dBtrTO;gi7PoktejI3Q$noRf}9 z6vt}EE1b#s1wB<^Mi}meCzff_<7|zqQO3$3@78Mqg(L9?BFt|RUPt<o6a>0VY?3BjN@Dp$-qvEl9qq z+-P`Igu7FStIl##u_FUks8^oD27Cr7gc=%J!Q{2)?uVg`q?qGE#O`+BWab|*a2CyM zfwvp!E!xn-_d+q8&`nKlmT?Sz@ef-YGCeG359yLB43go8$jLY9W~>ERy`+HdZW2=X z${K?YKAPOcOhNdZgUSTt$yrCMc z)s4^S@~d!Yu4N^ct5($0r;W{5f7-OtH+~iclqn|`N>8ynbO?gtqc7DVICOu>v}Iji zItzywv$Pczw0r3=T~M{(@+v3o=Ut=pkGd-Sp?uguvP5t1kiCM>AgxK=6nRY?MN4RHaM z8{T-Z_BZ2Klzv9Fj4G;S;{#>6X+1p0n&?w(>c>IxI_%S^)guKF7jgueLZ?Nsk`upu z6usrRJ<}X(Sn#7%QcyzwhO^OgfBw5 ze=(HKUzXF6?KdVqkJ6YW)CW!F3 zozn=XeV)r54$*3`(iR^K@TNK96!%`{ejK062kRBFzt53+5~g~g+peX+g_&}cZ1=G4 zCKwckA&PXoGvgd|9wT0CVv&|r3Pu;ADlA#QR;!Bi>hKzekYA4v71Mf6v#kx%N?fVE ztiH@BKE;fGVg|z>(jc}S`z6>qu^B~JV$g(#PNl=#Q1^2kF(@H+8|!sU}P2xh&%~CM&c87O;#l zYO^M2QlP+ug@6m_<@oS;@*?s#S9shSHB6hsl2(%kK+9=Ws&*hX)H0lOh0nMJS~P(_ zOu`J^FJSJt%WohNr<=!B@TR|tVHN215Eo{VoW8)T5yGR$xSnegL`5WqybUA8hErNb$d;AG8 z_deL><10`FMd1vshH|nELKQEKU!&R&zXf~`$agXAp|wa+r+52MpbpVpXAqjd5Ebk@ z@j;N9lRrcGC?FNEW()pBFVRkS!RNu&xmj%>=;QXhuIw(~foJCiB(G``v)IK*-`n9# zc0I-}_zGKzZrTGoONCKP%1NE16|9R#zUTqlmbJfp?E-6ytFL?Ly) z!Y51zTxYbzWLWDK+sYxs2(3uI55UF%sb?DmJUqx!m7EROWtOp|!*iQoZiFUv?0KC& z1_#HeUh1V-ttCGKa#V9KlI8$hga`TR(QpQcU!mQmNEfccJJGibw<^!yQ6VIB>p4Gg zCarl4D&4Ib)zCnKZDOoyxCd2!^>)8lCU?L^J3Yky)WKoW1@;=*6@^JY*r{{YaR5Rj zqODOcIjZ$LrVG6PSykHJ0R20$!YzALb+gDR&AS)Rc9fB4*UMWJ$qaq>?$O-eMI~}&VsXpq`c8)DHi|*(rt5p%TAB<63#m?rU6cWQ(sf=6{h3E_ zcf-Sd+F47*gmPIc+2Mpmy0L-dmxwuYIO1#xRqS0*Xh1|M;crm}Nq2|HhxGTeP{B?{ z)smoaZogBbpX&M>TDnGm1?%jP?M*}GJ>G}w1HvV+HA`u(i<1Q(ITZt>1UcGnRY#L%qKgN&Z__@ev5 zl}WA_g~%v&0pUJ*TPNG}LjfX1FtF;Qm>*Y4ZEqrcc+wYY-5x5iWk>)<_~{Dv-vmHw^2g}XYF zlLOLo>Xv$3l`EWA@pF`W75=Pd*eh<;k;eU+WulBAoRU7(`oUebbOZ}qksvMii>i=O z_`9I=Zw6J~qLW?tz)VKm81ZvteHCiDH-&o+9v#)XIiUM*S-TQ7rxzyDi;C|XVPfY^ zlsMr4RNK)KGjijFQ$oCPeJ&|FH+Wx46!9(9c$TcOFso1E_@lQ%qG(ZzqW4H+P8I~|$g^^$gmQ%<5%N1OIDE#cUVEf!-keXsGMwzpy1`bE&NjyHNqJiM zbb*33b3SfbaT{{_VeOm&ujhu7aaQ3ocJXo{hlPLf3B~WiT@^-GtKx(mx^XGP8-u_( z_oBe>dyh%z;U<{nYKUxtcUr{#E`$<4DS)q)M1LQ1MqmO01Fp*5Flm#KmQ)8>AxgJq zHpOR}BEet4+6=xvuC%4sacTa_)rILzy;!j6oI2L>>yn4D7$sED6@J>`jNLXsw@Wa{ z!QwBG9~cZjV`eM<1XMTXg`~fzVrKK#n8*9@FM|EQO|W?>e3K%dnJ9U}c?-DYYDnD- zFMFAZlfD|7qBK^WgcYc59Bb=@XRvhls=y)^FeFGB;BL`{geIZrG9+h#O{d(T&I?B1 z2|~mVsVCTm$dE1tK|>rD#@}u{hEbdKy(l$l1mq>Ia^#LDbb>mx8pN|OxEx`nU6Cqa z<}_(Dx(OH!Ie{QkiF`%GiKw=N|J;K3e{co-)l=Fi!jDJMC5U=9gGFJP>2sjVYZsCNQ;zuJ2iRb2EqtKLBe)(Jdydn(Joy>@B%KmZJ>jLjC;U=(D6bTP`^yK>f(dkkT=Y8mjCSnF@~*)DkXp;-#JxYELlVHHcOm%SZ`3lAYlJda{r zjvdfXJu*WRm(k~oAhtzZI8C@Uq=QD_r9RZyg`F-U)X=C-V}=tVFR4Ym>mpj8g=(^N zyZWP1WcL?JdUgq%zoPB>Q44P67O)cOMbxl;la0sz%%pV89*kF(>PA(u*NAWF=)SJ1 zBONjR?=%2EhjMPb%>naKl`hw@!G(=D7-HjC6)nXQ~rOC_E{X0Z4tfjTVV}Xor#WoAY^SZ)_g_vF^poDM>#I`*Iud{ts-ga$_ zUorVKOlQquBOPpy6_Rxbr6q#&bGk6=Z*XS^42c5AjWGN%+AviUeu>t{8Od*M2)K}J z*l)0DGn2N1do3iKVL#9jgFXm$yjqdt4wbkaKNR7~0@HZ)$V-u+O5}hTx2^I?4~X`M z*kq?KuLdIyk*e^dPFK_W(LK5kP6j*~SQ*?GEa_^>R{Vho^S!1a6kS2{ab-NJ=cUbd zHFr|*#0#MBr;l!>uc;FU2(29}JV~llW0}Sl?lP{0es-aQl*ojii)?5h9>-Ja^;Tl{+vS8y}jDLP!k0wXGo;ZlTkA8~o<6?}x^|}V=lVVX* zUdk^&;FeYg=_$o(aW7<7I6$FY%9QveXr{-f+yIl$M8ypeOfEb;eUUu0p)|DK4)5lR z3ulr>&4~(W`=qIc3 zMqFcY-b@&Fh5q=OqZ^qXLbA1p9&PL06rF8ymc?T&;K)d2nO+;lRwRr&{b>E5%wDPg zk6e)~I;4x2Ql$B2{lleQJA7g~I7)B29l4YT1up4w7u7L>X8m}{3<;S2>8q9@Z9{#la}zvI0MiFm*PUcIdx=BSiYTaDeU68DT<;hreW}gGO3eUx3P@RXv%QuHz-%JFI;4^)jRu6@0ZFW zg%Ut8GrwLK0BFPo3RxRQq$=6i}!UDU}NY+;@q+%o*Fg$IL{Vh-ag*b@PJ;Pz7FYUU^4 zgPEvE=I+vSu%I5twaUk@R->B65Eoc=f|)#ybGdgIp`Z4smeEGo7<{0TpyY!8q+T)r z9zU;|dGtgo4aq7E;i6uJd~)yx%l5)na?5es=8aii^w&M&M49aO=?{JA5U&Q3L-ZEu zoBmmEFJpz%FinbBMw3F3kQzLp3A4dfs~C9$;eZ}LjnU9V4|S2XF#JW0r+;{Le}H39~04dbw6{av5lz-H(tJ23Tx57mGE9F}}qm0EG7UWJ*>)^Csg$Z8y(7G3%< zNL}yKwk06=btwRg(d)KF;*cEaWUv!*?kd;~2pw2!^;C#&9bu-aXm-<% zQ>aIh(Ws&MY?c`Rx@-2T)%2XgSD=li@)$KiPX>kIHvBMno4F&?hid=i5c&rHglTW= zM2h-ESRovGOlU!9{>!LfAHWB}4r%-Xnzw?{2`4M?FM5e~L4aQRuEd-@k-in_dzHSt zh4<2SB?Sw0oCD4`+8zM8e27h}eo24L(!s$?esSP5s3n_D+aJn!(wAAOnEeu>kX}1V z%%i7+_U>jVw9;-Q-?i|2Rh&u7ZFqRFF_iCC%hsYWQYU$*tQ}1nIX&Tic)n z`<6vx^xhv0+1Go&oq?NFwklA7;vpw~9h1S0x?>GcD1>20EQt#i{~U&@T1M!;Ef}L+ z^`2=d!`@uVrqeS)bBqygy9{@uStGKgAhm=PJUO_NT$x1IQo!gKoq>hWc$^u}SyEI{ zj;1r5&UtZ((gNj=mKhT-@3O37v3+&(S7>20jeU|9?z3?7HD#3oo1b#1DhuDTcCudH3lmAFw)h)iVxL6Nr?t?|Eir^3-x>)@lQnZ>xa7Bl z2kbfi=&g__T67{QKL%4bN0L*wWP*xRvbDusETCMW$)a&57aU%Jw$DCjJN$GNl{Sm# zOZw1R&s~nen@!b4%epKIV)GOp&g9GX<2# zLy=3N9u59@*r(*|lj)aG>IJ2bD}B>(;U1@IXT7O=c;Y4&oZG5DB;EV9NUc+b_33a| zml1i#|AE|6{0S(B4A+D&b$hXwewBHgf`1Y0|80WJOW^^6d?sIBq*oWA>p_a2ZK4u%}HKn>CuLK;7aD%$KXJRG@ zXEDb!ACaMS6uBqjI6V`cY(()9W+L!JLYTKbPH&p&C8VB4>}R_A3ny%7Mp)_81SdRo zP^dsR0dtc`Z6suy653K+oZv2X=8|#vxtfsAT5OwBDp2E=xBA{7k>H(aYsY z?hWEkoX<=NjBKXgLy7%>m+7OnNfeQMc7&~W9#Me13Te%zfhJ7 zcfMz;W3!Yz%t$xOtx7tMX*g{Us=vOhtXt!Not?By<${$e0MNt9Ea*yreDO#0yA- z+}ZNrWCoHR?)E>aM_PyU3G2Tc@j0!9Z{t z{v88j?^QslDDOfITiF}?#xo!nVD@0Qc9dE5|4Dl65;XIPna?5jvQCb%q)1w4)U>#^J_>6&i}@tY({yV(b(BILquNjr|7( zH7OcY>6xR$@j|QJ`C}Z?P+m^&sS3+CF>;dJVFcT1Iz}goeL(}6$X})e^ zY|LU+#G#%dtfNWOF$aIG@tTLu(1!C6GWAdol7(c>#qje}egM!q2A=ta?A4Lj@5ozY zzl~VbmhG--t_=z&Rno*~HWKJ;4p2x?+jrL}G}G7R-vE=n6B0QAJUq9+fo_BYWlnmc z#$0?zoWthL{@REH8YI5mop2^(pT)I1#O{$qM!bh+M-mxVL&jUQp&y=vE;FVW{$Fmvn{>}>s%R;oLUwnC=QIR2pD(zYuWnZUa5Z{hL34#Ju`RZ z3q`r??5JR+VlRM>K5j=94+@O$Vi`diNt}x;cAn*klk1SYz#hM8^(_CgkJs~@47)76 znc=|DjS&n{?~PeV$hw;7!n5$P2$(*Y9`cEs;Vg_vMGbivnzB4QwMb9HF#qTm`IgcP z@E?>Bz}yrrF0w&kAta51VKq|zX5k}Da>12=u_9^l(=m&$Y9G|g0BUq}V+?>!nI?X~ zM;eOv5+W8~$BD!wBLWv9nej1NT-z*DdHM>Uz;A!qbKqd92X-RF6wot zG4_}d{M+ruzQ>J@Q~Hlieb!;lcN=Rl2!FQ2K3g6173rINVOcO0QVz<8d9%Ke!KL>z z)8`QA)M9x9;cf$d8a_dq5;UHM%?~r4{^8Y;dyNIXbBJWS9=lb1h1&@oO%xXzs{_Hz z>+lgU?<7~`%J3)gT6`Q^E*GYa=mzn#fTTY1%-LoCEN8w!yX1WwP$h}z%P&c9sz;yN z`WL>bK1_c>sAnAK0=ff8!;eadiE#K|!#DpLzWLYi&A*0k;Qz(&&BG!Lzhqgk0Uk+% z(`e%a1TErucXIzM5-S?oNoQfF!g=8e#NrEj?U`jPP5Y*z7+!VKoCGPjpU_JALz!>Doe#kdO#dn?Hwk$ zTNN@1k_vB_Gs&~QbbnD~MIAkN^i+57pVXp;{<(rVG#zJR`` z9ni-}SKO~997<+L8j|g(JD-uXX{qWr_%n|}&a7`nmE5{LVa%_W7gd@04$6;5k|FoLU!T5;tc2dm$5b#}1I79tKPzV$qTJVPh5>rme2P80~YVIiq-Q zo&pC+i<-N_3g2_XyJ*&!@wYHfL(IYVg)5WD$xRp?BRn2toeZ(lq@j|F@1IOJSiob#$KiWv`xvdk*xZj*9hEv)ylVmM}3w)f2&WN(zwbC z|KFz@CfsnaZI5EM@Y#U)p2T(_MtehdGDm&>dEJKWDDy_{J`-^x4%dn(&u>Rfw^z7- zGBQfD0M=#EtXtO3&8GIkMB_sCjWE&B2PIZ_Qa`uEzAF-RAOjtBK3uXR60qm^4HWNy3lB@`TD@?iceW!yxbH3c*OoWA|tD0laHTa7!DPajykOGx%rMO54oF56q@%!HMegKV| zV8YW3$I`YdxshDwb1q2}5$zfK%p+#?F=zN2Pi{>C;WT2F|0vAFtin3DsFh#rc~g(p z$Cd7NTo4Q1Iw42zzljBhceAy^>aRs=eQqc#fZKxBeg?x|p{h6PW4g+msfzSf=Fvp| zMX>+32{tcRSrKLV>Fd1m<)7CPvGpP{xfdqmHh6>hvRDh-ZO zj(PLD{Qz!Hvy~;=a zsChz8=~=t@fX-jIkN^WVL#sB-3IB%dKz^}9`a{nt{0Vb^?gJDZkRK|&bH^05nV(oe za-DB3ng;QK1HDN2GN(Ohb~o2X-=R@OV@l&@(n9TJ%t(7Py0wBX8t^&(rr+z&p*Pc0!Ji2cz6m|QB@zC!Wy7^Kk#!TGs zo5?slkN^Izyw2v+J=O0)EDd9(GJMBYG^>O37|9tLyPD9Ypyi*@$)D`TWRZ{#rAL!; zI>rLDXX9&g%&8CPGkV{1B>oaQeWkzUBQC~K(u{0R?pAD9ZFG)q8pYZ@aJ17~CJe3? zn+y4CvgD$4QIp(x8@1QHuMDMeTVMk4SF>!Db}rsHGp!|fIGnQ#elIYpa;1eA!-G&8 zDAdB}%edgQbPy?FvyWgj({?|^%fi|&eB)W}z`C!5bV}JHeW@`YF1dAF(36WLRh-4U zZqJyM`%BBScJqwctnMSX^u*I-#$PZnmgIy+KDipBFS{7CcN@6tFnch8O@dO(|0F%u z1#|ht%q1A_#@DdHgFG!pgOO7zoIv4?zhEjG5-zc>Gq5HTaIC8i`jF<+ig+o6gCt2T zM2^9$sOCprX;!@S)9HspQjXFe$qvXDSFKBOo5D_!Jlwm2zNJR^bk~=Z~Ao6 z<_K)HO)Ejm`(zWJ4Ahg7Gd!?YUq zdavjm`A%4_%JOA_g6m@~;Q!cEsnB|cvDZ9Yx4BUBXO?lVJW+3T<|e{xVX~U1N+a*| ziN00_HU*M3J}cEH(3^gmpM{=^2hePk}G0LmGh|M3>`B zCw;+Hej(8o4XX6a(cySusdL^tIHaL{TF_G!M!x{YM)7ScB%hS_WoZMjG9(npb!-DS zGtViWHR{H>d}d<{`JBI4P{ddBy|eXy@J_18yWl!zNw`ZA};KG+0VKgiHzA_(T2X?NQ2Vnuu^M)J3``LLQiHztnFyW&_PQGdNjK12(>)Gz669_glynNsOhP2`qdfv{{ z2Ty2&!)~8GA<3?&{I=um+ybo1qjhO)P~EaV2v&1#p_^O8U>JocUAC ze&l{w!IQ-!kc4PbJQ9Sb@kR|_5LAoGsS4(YHv+LC7{ZIk@Sdh>oKPSh=}47{P7J0! z)l7Rk_{3@`;D_k_R9*o6;e5zhNEuCd_dmp!!ae*DjKd|r^C2v3a#W|`MUHnbJP98W z&w>z{geCCh%dp)f2|IMO4-Ub;eiENS5+osb)ch$LpUn@z2Yd(q&a0|v||B!PTHolgK=XSJ8St_31kjQghKMAm*&8sbwtri-W)<8$N!ZEfNvMNHe#In( zy-)}R_u;2Q7EQML!4I0Fm^6urLh+54GEW+W=-X>L9aG$;((S9s2y^C3aMe`m;Quyk z*Gzx8BI{(@^Q^>&A|M$bRbrPxMdz?H^KPF<8vn}p( zW(t?`@b%8`eWQ`~zco1m8-Gv<4{xw9!GM1alYj~33aqCuSBiglW>m4sF~~KE$ZLA( zB|p=S@okiOJ)UvQ^k%HY#1XD7fa`cu?&Da+ZK{#KYg9GFE*f_)1VbNAJST~^qJ^JJPS@^4^uzJ*0Fg&(|VDG4c>J?(zk)KaFZ0$*xU8YNrC;HtANp;#dv;(1j%ZLn*W# zVZ)mmY`58N1s)THTB|ag@Fi&r^A^G{sJH=klPSq*V0-O+N)AI9%jq;-OK@7+DC)?Yb zpQpWb4$PEo@u_sJe&1HssgMrHF=!pK#c3wI@6b7L5Sv3gtV(xoZtzE9Wr|IYf$zH0 zW0T}zjR}=WIzoomu&qH7xbEy>!L!WAKg19u+sXWh5xyCK+dmNiGU4PdcmZl{dR)=S z8>2cfp67{RM@vGLlaKRZD@|>4pG>&u_@4Xj19MX2V+^A&cEmRYl)lG*$8X%r2 zXpuwQmnptfBYwMS_mh8xY9YRebtfcC@La&5g>{u4Ay;T>7TJ9X%+1;eynwZR0CR<< zlA%R0@%J%>m16QAOP&y&Z(pKG=S4>$HgDraN1>5%<7{fxwJ)Z{7t`X;aa!CDAHEOc z9WWiS(K{T$!G_gPRB}jA9(W4KQ!wo$$VJqW5>&Tv7Q5{`_oDNN3!%ITZ-k8F_`#u_ zcPE?zoTGbOptkl`psMYa(A_%0>RoU-Iz+$KO1>N>Mmd{M^+D|9HLt>;-V-Mfvo*`U z%0o$8Su|SlmIi*ET(?hi<9ytEFSJ~y6AWk203aT5`%s}CLS!iNTAb;}UHs~tplckQ zObxuflD&ZlY$mj*LgTo)*fg4CVbkQ!RxVI3ZNXB{3=H7De%DEOU?`Gn}uuJ!gG?zjW|rBD=^ltW&29PmPT+ z$FuM-BS}TLUQN#H^t~XA%W!q>t%H1q?L072tz2UYGv({wy4l0d%qDCTFa0C)yz?vH z_=!gDu=zN38}YAbLa)s(6~R{H9O7Xv7P@z6&6Y^dg_H~@6380q=ff1s6bQ{K_uxS=#xd@>qb}>Vh_eb zLEeJEn|UKagLMx{)Z$8NUK-$~8sCGIGb8f6Jpk<~jNhs;8;0W*cihLDpiv;rJj{Dw zw;r+Nd_)CBQFny6a1Sw|%Q;G*f@xMU6P;Cnz{drebU#cH z{~`~HK_o_BWc));2Q}H@a)L;44Y|uh_MkiL!Wb1KK3-F_FJ-6)w)NwsWM6;{v~$0+ zoV*Z}Hu5IF$aAZLHWul^SDZ$^##xRzc0x(*gnwFL$`~-jqy0B)ye|-{W>M(AI z8yj&dKhOjSWe~ya@N{R)XFiwrV6A|!_FXo~@1Q?S@CpmID_ z^IKRxB__F62NQrHL52f$W`rwNKJ?(7Wbw0d4_}<LB#@gUlxM08$z{%bVP0(;2HjODuN3|xa zJ`3yI-hh=>$^YU%mht6%yh9B=9LAoJ*YNZ&*K05r5T6&U6q;LrzJA@iu=NI-c_5UD z+Y~v^a@}^(QUrH{E-u?g`i??`k+v>Lp>?SW3W)UH)l>souSh%$he2tDDaVgrnjkZc z1Vix#-jJ^IY|1o}e?)p)QwVWhyWVsOXCaiZ(>iR~3zgjeET3}31VISpa$J+@B!-DX z@QrR?!6#unvZTAp)ahL^nc2>d*=BhWoYiR|?0IaaqAOQABo)4N(F*lq$n#FZJqh|7 zXQ-X8VOl$PF@<~NV9A{sb9@N&9S!^ENtgZ0hnBd>hX>Uj#{~!1Q_!K|d1N8KZJ)UhudVU#wbk*D})dli_xVu1NB& zSCc28Md`8xu*sDU7!I1rj({KAQRqlkn`)#BIY$^OVXVolO%Ow3oLK3T|6q3BcmILkcc!pKq7Gc z6r43@WP7;Rqmp97+c>Bg&KQPBbpCE7YdK|mPp47qp&clc?) zS)-Dbuo&V_f$EAHww;h{3~ZGHR}$*TXVzgN3acdH2mDwxfM@D4L8^2asV(_*J*vX)q&RHgSs|}q z(7jc?Q6*7B!XUJO=Q8*t@fJplLd5g@?_n0XRAbddg#_`ugF_4JYRnxWr%Akk&piRU zKGF`OSlf$TWhNdIYX<2*4^jI_FsW~jA@*2woW#tr6on+KV1W%#Vl%Bi-u8ztro|W2 z;?HqfJkNJN1APIQjbh->**utb^%xH{KS??&j&nH9b6x`}5KIVBqGn}kme*-+b0L&4 zE;M5Uoz{s%+q;nOaw&U(3)Fi47G$~7;5B6f_97Qtc85vfI{2&gFsWJtvf7Fb&igfJ zRcl9q4;f0rILlC~rZrs}>R!qfxN7WS+S{YTI_~?B4A?k>S^)7#4Es>!6%mmkN|HFw zvnmMbPA%&57PCsjddT3~T<(*}vOc+fN?R$BiH~QOF(eE^!jW-IYNap`2nGf@?J=p@ z0AsWxhGL_+CoAQmu!}fV`WX!EA|=%{JYM7KQdZ^w$I{H{ZXX&x)Fdo5c^x3~^s6_3 zdOX)t^{fpOlw6$!2UN0_@jeO8uDx}T-<>ooj?JRyY-;P$wZfY{Y=1GgV$P92HqWQu z_3IH>kYs%~rNm@bN^FL@7z$Af${bQjSQrAkqKeOzIGx+oE2y?Xrb|{;6hG8f2ufBx zMM>t=?3ul!s>nr8dm-oN1sAyx748JhMMa1tT?GAFfXh1&mWlS}L6M=nn9nVtnN8X? zVSywVjr-DWN4#V$#LfKX|DSAu$~eZa?UVs+quPRJot02Rcqwz`_jzh4A&H0z0$E?c zJ@25)IYJy+0xCT;)y5I{xM0^#gUKwQyyRY{qLa?+Wy3bbJ|3<%$(}H;yZEd-l?k zE(@>cqe!Q`p7a2{ESgGcI?+X^n*KBn&any&KKOMzS%}t6@MSwvpA210YQbi|);PZ* z5T60Brb31Eb}*Chm`1M;0~Le;t(Xr^LyCT?SJz|M31315J(;wn9~01j@1kPVxv1xgCzS`ah?)+n+D zWv2!7vz`N524kk;(mG_OA+~z7m=)tl_p@xult9`|s^p_Ae|Uh8@#%l`O4;xm(y~Lswts^(v|41^ec9sPuF| zK=Gk7A?|a1ve#hEIJw6RSF&zPsYK+GIb8E%e~&4TSc<8LEblcK6H#D|+=jFeVa-KL zo8*G6&psg}89ECldIa7K+UY!~iw1Fd3%z&-0$=Ch7!e4pw2CK*8xLXC~>YLD2;tGownz z2+UYIyRw!}Rg^?XGq~?Sa#EzyQB{(_Zi_*jmh;>wJiSmiDJ*NHn%RRPqN#@tTfSX}@Y^(MU7ia}TWUbb>pbVcuc2a0ymjnx zaXP$gxbjyJ64#xEK}Lr)*wz8_CS8;DfdDHV*M|G00q9MV|0?&FPf~{uxYQPDMypch zyp7b%wHC8-N|L&4dyKg4l{{ygbu?jaC3Pzc!MKNtA>J6e%H{ib^HZY`Gt0N|9<-Wu z=})(}qo1d}`Fsy*Wb1Qot-d!w8u!5-Hy}EXtk(!CYv-n*8HE@hGk8VX(KQu&2F`U2 zrnq!g&(~mJr~}Ez0BnJcHHq04OPtmHN&68)GH1hwWYFMar3!xiYyiqX8Gv_n@73c> zoP@6v3jeZ0Mtwm*;xmA)JqHNO)F>5GsB1q z1_l-_n$uCa{WI%uJOXV+WQDUvf@jdW*rnF+MJQq(S1j?3K)e=H^l?P}8&L-f@dRl_ zh>)3|`+Lni|K>3ZxXb7SAU=8?NtU_S?--6*bdsl(3_R1EpL@R zBMqU>lTvJ;IaMf2qw7D%rR;u=K&|$BT#}4Ql*ZpPYSy`eqaU`M=im6456g)bNybf= zPj8V7YQ$TupzcLa!&$AsR+e;=^N#%b4ObcQh`Tgnd_-Mjc&iEmJK{A5g*wZaOuRD5 zl(mjr2Zs(yi^i025nMP@+;1UaAmgTlV^TT7TWrUApOIRf;Ic*!2@Ijws260VTvyoj zGvO^Bo&(Ld5r3bz39p8`GwuOqLeXctqx0zUmE_KSnF798 zhEo=66rjH6)^E<$r9R&wk?j?XYpeZoDZaPGqIT zQYb_;1snTQkmQyh?7JdVPD`Bgdrza?)qS7d!zMJJ~sfF^Q=p;y~J#2XWgpb?g#@a(tnTn zz_^49Cl$LisOVNUUPy&e19y&CNMpd)D@Fy1sK7py(YM|6wz`}{WQwbYCP=)3A@Fg1 zsAL*UW&vepmkX_qStLEFXOZzd_rr{@bXOC?Aco;o!k%rzIx6V45P?7!jS@RAD`aC- zkob_x1ffQndY}yTKg-$1WWr}yNS@dUGth5_I|8U&S?*4j=ML05Yw(2L zz<}xQ-QTDYG{>y`JHhu6G%BR8$u-X3$K?O~#(9-rP2<+M36S-z1kjdIa|*li>TTP`V#D;jinND4%LOVYb|B*J@i z>go}=iznLcU6O?d)_FE%LL7JP%7moTZHq_82<|-?XmAwB5PgAbCVkiJ(Mey{CqmZI z3$2+2wd{J@3`p2w@f|r=WH|UBti5jOld5bwi)7TD{R`Htg%4 z`zd+*c7eiNUY)*-XCd=mbad1S&>Zw&n?S+oL~0)2?nTiBA9MTZaK;EsTRL;HmX0Ta zYh0yS2%69wL~6Y^ae`JrpY87*Jsw$eBWq5sWtAO8Vpr|7L?&!OMt=AtQD4Zgo^gQ7;fSf+#>g@9}|q^sARTC^-x;ZL`>ji0Bz_4d9r0$(3; zYxU^?SoQ!egkeBb7DBn;uTDb4jiobPi*GFKC3H7Qt0xe-AApyT?y;mlT>ehlB?LHO%CB-9rO5}y`i z0J&(ti>x?nK%)Pl3T5*KmZNybR;WT9JjZZ5DXp9#eb*vn5(S`~DcBQ{D)rB*!}B4i z2=Mn)-9>N?t&2Ibm(`$%xs@j9KVZ|v6y4AL5JeqKWKmd$5Fx`d7VgsvMye%U992^3 zOh=D!TCad<&Bi`ek9*zm z9;jFRN!qXj4w%w+Zn(;bM^Lr~Z8u48>))z^+%f81N*+vT!_mB9oA#unLfiosYEDsq zfWKQV9dZc+oYw^$leC=q3^VbJ4R_-ftHf);I;`Qwx<9*Rh5PG{Vv$Fgzl5*4myaA2 zRv->_*Pq=(k5aYR9j_Z&4)Z6*>`IQvlkU3#)K7Rlp7&zV0{jiXQ(p(W5;m&+i)wEj zZ5BsMgGaA;_KQ_-FJMiQdh+e?$@Gob#!w0%=Y=>7K27^Zr z#Q~T96>cnTCQ@4BEZ@6_Oi2h2(vOkCzlkLsazj1sC3i_rPcCbPzRVrX9 z$?F`nItW!xk>e7f)B+`x(nculVg{kmNFzO^ZD^O!rlC#Kkfb@Rto6Rn_pB5ho#X!f zuJ51ky1ck93$-U!-uHR#=YH<{=8bmmu31M*#~lhwe`;I(#42waN$UFHD;@JLO@7tW zG!9JneDtT=e=fS44wpM#e(?{#`1hGV0R_MflihH-brx*`TB92K&n_RUs}ciwbHz!C zknHmqjGwY5y>NDUO6G{V2ChXYm`3wj8;j{NX}Mw+idgGdqC~38(rs`R6h(^cuX#*? zY4`q`Yi7^UY&jrH;H=zI1P;BMrC)`Mb4>+sP5i!WJ(i(FM7PdnmC}28bM0=}6;5%H z<1CUaa84ob5wg1=R}RC9ApFsEfR@B+Bhz4)Y*(#QU3PTuM4~MC!+g?D4#8Fji6%lBWPq($+$9Fz=iy2Cttoxb59C>}M_`{ip;IaY z$t)^uDlO_rqRz5H5>j*^LSPzgi08ro((wkw?seH^K~G zl9{PAG>r!#Dv0-ia4{zxKP}+}>ga@u68xYW6W)hM6>)W!ATEa& zskNGAKrJhzI)zI}0DDLDUX_zB!e!3GonpUdcJ(Iw?0lG^>KI8#2*54!$Sq=yn=4-q z2LaJDVMldfi_zFW0x+* zDZFRU=K;mI;dM1fNP8Jpu7$FjeYRFu;?^BDLdGw_e2p&#aRO`K46SekABFNenn(-f zM92<`FDoaXKfY3#ev<63*-XnX_`#$s9!#}MzD@Tr;a0}YqN9uHC->~inf(3k3 zD2X`(uG~5{j2DV)nwaHnO4bL(foP`3Pof~c1f|U^a*#SED2-D$2jGWbP{m3%`XW5} z8Dzys8E|D_QT0E9tCyxe;-*?L%I8*fPH|V~27kUP!(AQe#6M?D3gMf?R3H9v%A~~l z3%}3pEbM49R7db5aRu+)jbtt>mD)|X20QN%6ldjy9rN2 z!u%tQD%&DCm70;_`y%YZ3*rvKwgW@Ll zxy6*vc*j~M;laZi3OQvvgRm3aDyRLakilXqDB@x-UKUahuL2k3YQW84l}qQwqVgh~ zW|@36hHA;-a5DNBD;%k#ju zx*HFQ-`CQ+7w>8p)IuTXWCL5>Pp(NVvTl&;;Z!%?pEt)o;gw1y*tirNKDf+soDoQH ze#s_nTie6<_%*57`_&~4i+l&@E1=?U?&+zInYdm^wyc{Wlg+~7tNOs?ljBnQd@hh_ zs+atl^k1QAn^+=@4eEXZR#D&8a(u2FtKJyo9^>b83u@?ypbozq6C@`b3z2O!Z4Hb~ zNH{hUY_g?0khUGpo}h*uFfs;*>3CotSZj4L{1qnsP#WOd*;Lk1#BYFOLYP!j&)r`H z-;d@ZSK%&ul)jmfUZ2k(mV^VHv9XZVc#iA;+n zG~EijL^vntR`=M0L9k1BayWb>VX_ln7koGYost;lqF_|;?~S!;FWi`L4PJ?nV?MI6 zlk134?qQ1e>4pGjCl}(sOGs$#0Ams)M(|^?%7%sQ17LPSdkt1&f-iNJhqOnqgC#-n zL?C_i&n~BrcKqgtdc!o*U)K<+=~phA+My$?ms&f?t#A^OvZ47lhru5%?kk2f&U}G& zxKER)#E~*aE9oTTIFDP^}?A>OCAgl3UZE-r7ss(Qqp%iY#$w4XUyuG zZs)yxhB*`F*YI1}9Ay}`=1K~_NQvYYkI%P+r5$TVK}865hKtWibHrs*CPa*6=?3Ce zC&fJCA===V)-YWQ=@wt7QnKYeb(#&1EO;4eV>$V>04indB4C&edv>l+L0AS8!2TdP z9}Jr9-M;ErnY}^PV>jLpz7eE>iB;5RJRfn~McM;&8zrTyn|xiN;+ltJtz>sUgq1s% zKvun&sfaXc>lLHSQX!|+Ljl|dNimY;*UOROmKw3yM7%7C6-M!j`N{JxA+$nkFh`)R z0%nH9Tm7(|@jYCOi;11G&|(+AFttl-l!*?KE$bJ;>A}cDjY<+Ci;Aee3Ox1nNk_!e z{2F__-BhCL9S|817m}XKYTk%?mlGDd#mZpPQ~C}BQ&D?+XDP6ytl+E^*qN=aeuEik z9?L2uUK#F|Bg@o$%M>WJaf2iqCWM?JEDhEg7;Waf>(wlAC)eWOve`Tx@t%Vf3_nI6 z(6Ow>8896Wa3YX85-7akg%REGA67x-L^mgsgfBK>v9|LYp&P!JkZ_9G|A@^YG2s`? za}M56gA?TRaSS|Re2ttQPP?qFSln(*7}Ezwg9fh!DqWnKNpCtAzb<&%cQD-*xE4RH zugRi)N9boXKYXxBDewv9+0fV{9)lvcwDK>PAF)6i>>Uf)XWixu8rS5t+`{5hZNONt#fS_5LaST|Is&2y0MDdCRNIYfwfyV=zD`jJ|eI(m<_Y- z1&}?|y~nMGt!Fud@k7??y2vGSi@>Ck2jZ>#9I3fr0JF#*1&4-}yN~NH!ge{bHT*QK zp=rSh53$)HtE*PFaBQ((*ATtQ8#1&r8gzsu59HnN1p5G2aX+GxHfg?Iw1{u7nq;p{ zTPnUz;C3P@O1W#@i-D(4q>7Q?KFUpOg^{fMR)x$0VI>tpQY9qSf^jfS=h}7*Cc1@{ z*ZVwJz2Vy+(+QzvFey<9@wdW5i8ezG;}Tc*Ay^l=bo|EgCNK7=ITKjh8U$)!*_?%i zJ;K}j4Z&yX5Q=hsX!pad)bf}r?uTItY?8~HD_s6U5s$bprwtMlj;uREU+lAV*Is1T z9;PRil-Y_eODTBRh?nDrFRH+%46^JB-DVNEr^J4$I22vaP{s7bCWi7{d^7$e>k(hR zX*m!4dH$QA-MIzgSFcSa`RtdlFxKuTwVxgz@7CA*$>mQ^7G;wMUv)-W&%Sp?<@5aH zwb-q&qX~)#OKJkyZ_ZNre(G3J58b7t78Wa>reJZ+7^5%63u6y)#eP9O3D^c^$wFgi zQ?#nje2E=;P0ccA*~JzmQND@ZMfoW(V~1N1UuTo5p^dSpz~JQspZMn(xk@u)kk?W3 zs5JN#6nb=@Yd3f;EZh$(Be2z_i;$P%J;ffN96rL&F~?8H)`%KuJ1&_EI!WJjmoscWs56Oq=f;v^a9{2Sz(7L2ig)X@eIc2R zDAcYfud%}`#zm+FU(`sTJnYBPk-m|XM#MRCEt_tKwBLhsjdBr6JvhJhLrt}$99P#* z6W_*CPe-37CF?CP0RRwrESiJB!J5A10U!KYfx*BP@WQa!%BwSD zcSg7rXHo??>=0#gc5HPN-lpL7-}H;IL4LZa`JWCCIe$AmoEmWsK2Fi$w@p|Yg5oQN zbP30n8xj(Zz`by=LbW6$;Lo-le0R%Y@#qqG1h)89d%J25k>jd)aSOQZL$$AviqEr6 z1@7)@H(BxIdgG*BD9)T z_g`^y!bOhb7V%HQ18f~atB=?`Q+DXho%V=2!8vzt$oHUpyuo${l*En)_&&0+j!Xmo z4#sUEZedz=FgjC)E57^?UD4$`2Q&yKP!5fSq6pXBD>x#$eOE-`qP-A)%`BXUx$fs2 zeq|X9>k=zfgO!`e8Wb@kyJgEXR;ozX$j4l|Mdz@m#>~%wWijZp#n*v945w*|s`Hc2 z$rTs~x}5?02|7$0&HKsoUg8?$dga@)!P0>@)-LP%Qia$~NMh@Pa7~)6S`V{%g<#uH zecbRPisQjGgd91|@Oy@!erQDBO2NT`dm(UGtqa0Z1-$KW zD2V@4L&(vbcc5GM{Zmu-h27R*;Yl3BJDD|TZ`urx?|=qIPMd<^=#3x!Shj3}gCk_i z2joBToE@ow#)~j7J|f>OTSk+V!`#?*G8eKfpmlL=N>5BU1;KnMti;lD6Ta_;Zm|+4 zY^@4EQ^2^;o)v>IAMrrK?mFo?CYJ7u?NTMtywCI`dkM03!N`EL&?W4;LRK z6)udQ9@ee%i=W|X#g=}Kgh}hry`2s-@cjNHJ|JZv!uy;=?JC>~mMfcDrjAwAdsCDa zA6-0tawWF_X{WKYM4tk4$ynaxY_xW=l0p$$&$lPi?Y%fYpHDxzc0`pid7mrD@>BVj zaF`zUv2Z82BahY~CZ*}0OxxotiopSXMek{n&GHeYeo!A%pCL=@$P(515R(tkJ&*Ky zgT7|YZYj~<1`q5a6T1l?Y%J{}=gFjyJK*xAuX&9v2$DUyk8@L5#A|4lw(5d8IPM#j zD_#0yrq6b-Hkqos_%)`V&EfNDzK5pw5>FtJ3e*w`7l*krI(r)}7+|&l(-(pJD!)Wd z_eE!b+0Q=!v)x2kFRDQic??d2ne!@;`_R~#Y*y?IuJ#tnVLn?)iV2^aZq^ zJchpu-qYpd=ZeazHo^>9ewbP%{`#~0Ihb<;kUYhl#O?sIyfr0e@l3C zt7`6qYxS|N>Ze%ed6Ln=iZ8%3FwF(WO`S2)!T!xd2HA~++#sh73+XN{RAQi&o)of= znY{}yWG&ixjoQm1;sG*-W8<=g&8AVX1*Za)WU1AZwRahEnd3Fs_cNm>z)yl5Ol`ct zol>V`WB!DnZX8R4qrEv5_@KvnuzYy_;d~wn3Z1oGN!5_8I`m!KyYM@$HJ^rHa31+( zwjU0fs+n;LXIjmmO|3FPEBn)`_`q&cxO$k|fdxw=-n7x*zWX})rtytY@(|_LM7S-- z$%zhyj8X7j+}I6UU`PCS2?^1@Sk9!Ok-ZgqTglQBz%Pd^g<&_r!(l0fB@*N~n1LA% zGT2Ohx*&O#5-3||F5bGQoJ*rB=lJ*^(2zyy~H2xEG7{d zkF)0*e?LV??2BNU;%IfXA+2sMBF*frWJSz|c#$n%Tl3Fm`6X&`6YLS0 ztzCaNi~@H#6Fu-7IzyWvyMlG+q;fUUwm6K0dnFR?IXm!B_~E{gu5MHBTviiHj#)_yeu@{WSj zm${ExCc|zoguC>`a77VYdicqpV@RuCh0-(PU3AiT%9k%tXoVs~xhwD?dbgm}D;1yJEadLpq=YJAEke95VfD`G#hPLXf_v)$rW z*Bzs?WrPgA4q|1WpO%ADciOCAt0&oR!-tDb;7jHgDyq|gHmiy2Mb~6!)OSr4VnNk0 z0x>5{3HaKgkwvRnx*01$JIm~|day_45HN2B?g7W{|KU(S(M1~SVax@t`DIp|87}m7 z!~gc!7YAX1M&AGQI(a{~2g^vpshENBEm$uDusXnv0QD)hbsfM7S`d=Lu{d$BP5KE5 zND@Tg6%Sk`NLA{7!LpoKi|`91th@@B)%&l4Kf*iUpgO)tg9xV4U^{OaABf0GhK3D- z@8^goPmozT>NnW@t(0pINH60^sge0=Cg2Q#Ur^yR!Y$5`>B9Jb5EURe0KFgTk|(b! zixyUNmKpsqcX+z^cnm47#YZ360QrMBve67$u~uFmwhRJI4k>DFhSgqhbZzoKWb;p6 z_}-?E6Cu5e%!_RgfHx{XXY{UEq8@yXIo=234#9MXn8FU?f@z9X=WAev+DgF44!?@a zt_Pu|Srr>=o-_6aC)OfyF#S&WsG7}m>P%3AgKzMeN+=Au?^z@rR;NQIJ_Tl^M6`df z0ldMwesP13TXorZhazSM$U$w1+i4u{HkCnK6k(sxG;Xgpw&$cwO%@j_WW*HAd@%I%{1Izk1sCp#b zFGA)_$fQXurI9S`V$vT$N9~oYKrQbu#k)UV8^&tx_HB$7KVD$R(Vf}jTfNDPVV%XE z$}feq(@Z=o^Q+bJP?S@FFVi4^(#$;D=#mjn%HMypD}MXzJf@ z>Z{gG@$CwB4j}-o=j*Bv6Zooyf)b?uees6>7qk%UoQ&@((7OJ03{kthe`ksZo>%cu zRy|T@-n;e(X7eUpzWn-reW`AoWYTxC%t70<_^jCZ=T6hA@Xc@4`j&F{PbY1{AL#6j zv3#XgrrYrI6UO}NPG~s6grzVo7V!#5K+R#rs?Oe>Q-iY>L!LJr)AlSng=4~fFsgX! zqcuVyoRss;rsFb%!oIE~#~Vclqm~S{djec!^rgs!&7bI$osH~6$m(Cg&h!@3G{;~O z(~p9pfNLJ)^8q@sR;XNSHL*XPP#ra3$Y-xX!7|Wyz|unEaf=tRqm7K^|HoIA3bwJ6 zy9GQrA+>($)HdR3;)t*qHYe6O053Pto7uB!fCVFNZM6lgnMzIMU&tu4>-z^d}@Zyw?^D^* z28D2h;4HUyg;&ln(#9Sk|?yKJs)0jG#)G z7@2+gSk)Yc;bF+^((`Zwjz3t})seCeS0OGAU+5OHBZlK>LV|3$7rOj*e1(rk!Q%Yu z5$MQG0r7qK9&@_5Bg^4~T_oEGwec{FH(E`V` zdw(95v;jB_!B_7R)9C7*pfE!-wmN#t7X`_K6MOZmPc8H5J3F@>rN%y}5oxCrQHebt zLd-=M{ya8_i#W?K*%+VfE6;Vi#ZVinfx-WsRn= zE-h4?{9H{Dcw?&~(*E8buFA6Wa@6cq~)SA3VK`%Yh$9V1ZApJi3BQJ{^cW z3MsqQTU=zOjg-L52k@4X#Zh>U?Gmbr$p~%~NPe2iIG=3;o_~j1FE~`gN(;Fhy;>D> z%d$T<8`sdSklRgOQ4RFC%Gk(yVw80`WT{#dA+;=++(|<35f7V$Fh-J!b&dAMI7{(3 zd{D`s0NfHO#VC^XK00dRBosp_A=TUJd z8D{{8U*Y81gr6st7(cy_ma1#EB9>?AF*ZseR4w!g(tc6^Ijta#AexL|Vt3lC0Ng=w za}d9yUdn%cP0JyF5)1$B#BvQTt>^v>!Ml-gM8QEncNL*Oes*PqXdJ^$32ReXN)W2= zMe2EEiN2b<@HVw9M*IkyUZ(~Z_ZVm^5JWau{r^f%ApA=?!JM@X+lxnTCcjat#ixE& z8!qq&L2-=qPl$=Wh+Mc;eT*PQt@vgc-}Q^eMemrFs)FQ+vMf2AvnTwA8gn0xAm@v4 zPbB+LlrZB_PjEUd!G__N8lvul;espstadRCri%M(o>C9K&YE{aPM_W7RQVD%%a81{ z)T~NYeKPx%XGVXX+wGXbirksALlq9u+9_^f)^XY{0_Nk9g4<9D(?+fih+}-XgAg2e z@=FnRpgg7>=^_-EXroT~QhZDq>@;zz2B+KCt_ym__OM})+eQPWE3y@5lkz~w(Yp6lQW@g9 zg={>ys5Ef(lMSv&7tB`dKcrlBaxH8-Ahba7qK~B~!ek;67&~!^2HDz6Y+b5}43eD0 zWn0`EyEpVrk-;HhyGC^`k*yT>eq06n{4dIZNg+)!5LX${sc-mb>-vtSd>@_ql%_fG zp&S8)26^17R4$}x4dSwc)2-`wEi`GI*E!f2uwIh6gBq+I?%~t|XoU|T5*1sf zRO%NY3;Ls2_C+_FG1@O)4oX>*ZY1+$?+E3nz6+Bi*9s5eV*t z*)ndqt^U)&_kpFTl0SJuwLk5kDy(t3T72Z>Fmap*Hx5bJ!YWPlMHTK-cWi^_^$Z&jsN(q?CLN`aq+^wX=i`6`SBC=pp9~l{ds}k7M8OVL` z{T#07yWk$!RG}KQu>eVoYA`Ess1s_bcr13ku56uO4Z;L zP}ShBH1uf{LpKuV=>w`TN6~r2^&xHP(GTY!U*$b_JBL}w?eOok@@g*Z-4d0q$-apL zUOQ~`a3@Yc?||$@@Q#$T6T%OEnwW3=>1TB}zqaiXtfD zIXI(|5fFPz;l|iFPniFfidrUvK3I$z_*~F`?TI))pCv^LH7kU-6Ks?`?}IMJ&r?#~ zgI3kpf`sQK$RCNU*1N>|wCQbu59wLzBox@^xYWeBz~0#%C&8wF;oY|{# zb@uUt!{oabnMZ~q0Z^IdOygGh*}<8}oNtvA-v_5;e$BJs&|13aysZ0pXhVhG9sF)! z_jyTsO#GaUu7)2cB(!e?mzuUh9)01ulHyh*tWDbpocq>NL7$CJa-cz9OK`U!cCye9 zuI8OnPQv++Wr3WzRqz@|rA4>`3H8i#P3pAf&JSVqQ^b(FgL8jK9%iuk2C!kDo1U8t8xx4m#m5D9Q_ z`*QwA>j@NFv`4rhF{Ew><8TEiqt>A({yS9s3_#5$C{U1UJ4fzT46`C&^AeO<7*x@# zp!tBq|CYffXxt9qTYq*S$~^hApPuaE$C+9F4(9Y(W@#5_EOYnjOQPr9q4XT$p~7m? zj2?)Q?ZU@s9MHBcTeTfbx&wygH(xZZoI^$lv1jrQuqMZ^b<7uR83TOjoISpo3ZF|a zEI|@~VJPLDr?2|9cX2z(%P4|&m#dQ;a^|3e%u~{RMDslCR~=i$mdLl25uaVT?a!_v zK~sVh?=~o-iq{Um?RFbkQO_TZ6g_c8c9}VQ|G?0aw# zoJP`u+>pjTuFtG+!|HC{LvvD*L(Gc7(rZMMNr_%6bTh}4$ie*snaw+(#UYMY&2{36 zF3Tk~g`vJVd7@4Cees$+{d(jolV%f&@4L#Buf zTtj>bay86IM*+w0k>yR$#Qdk@JGf7#quAz|$uTlk)1{4!zqUX+ch`i%2BS)ApKdW- zbvy-cCZ3s@BM=MALqWo}Xj-p&@E%aM3(N0@6jp`03O$h;)&ByeYz2TF=pyzIA2u>)8wR@y=pY$Ze6*B##)XG)B zyIyl$Klgfs-x?vKC^rM1v`K4f@pQb0+_?EsP|&q1pkh4(P)R}U2d-~Cvx8i=AZC%z zt+3R|U4-9+ZPvO9Z%%5?-UWRy>M}Go!Jk=iiByT^3WGupgXK?5*9Gk}vLNT%_DRRx zB;+TfAnOvu{j_Z@s2i{Bjaw_Wl*8n$QX!;xx#@#27`qEH518hIu;yLUy=~BZ1T3#H z#}%;t2pfiUfLfndgk`WrZ!Yqnw`0g!5wko7qsvT7V|*DDyQHwDd}@kK_`A!BNbpPa zNKRU%IVXcZM-!zFeU)E+(`uPIwCVUq{>j%i>u1RCKY)s>uP$xE-~hC@C${+W7L)sp zWX>P){|p&-e>7W3^~A^l8o8Q*s>7c^%0+Tr>x~^#Q>|jpgmOy%TlnvBqEjq!7cQI^ z>oglhi&a>0(3P@mbFQN7K3q?9UBv-a@5h$3+Q=p})jUUA#fhe6*^LkOjCFAv)lD(W zlTB!ZeE|MU$=xvA1aHs`*-tYfyQU2%8LNHrnt&9OZ$g=%!nkbNPIV{zwG-bXHdIp- zUWDnfc?*bmkhE067Oj%y4{%F>-$gDo3z0{2pCns-np@+^lVo>z+(lSy&t&2>kk;vp zJ51YRt6aiLMXxEoTcN)l_Qg`)4W*{SONdzZqPSjYDozfiZwB!rY!6xJ4!*{(1E;cg zYxS3+y?&Pfzdp|BYFGO|D0i>>bO+JG&=XZQs9C5`tV8+JEZ}cpIUer}ZKdw)EIQ_} zS?YXsj;3G*R^E{1KT%3zxfBhunTl5v#fz0N4E?~VUeSQyF9S+7VXr2-)P9t>VnX;U z#e}W@rkqBCGPqh@Ld7{$?z;8o;Tc67r|qc_@HG8PvG`X?iA^wkZUtQJv$V%1X}-@l zAAcX3^KCMZW?Yx}5J*!zg^}^-9RtY`A?>Q6gV&epFOYdJ(88Xtx3S_JmWrJ?+YR?Y zqUOrTn1F9B**3`NjJ?WYW$RqW&0%yQ*}lB_c*_x@ z90fe===B)M9d_|=u$jI5c_`r|-7l3TqBpGPJoJoB+Nz{(4RA4FHJ36Md`wBCd_kk3 zf}2CqO*P{E9ZVU7nClX`nR0j9d~x#-Y+bbsYSt&t`~M%s@S<{ctLc(y)nb0V!yHeE zc*7VbX&$Lbutj3H&YS3g$zA%Bnm*-1)pLzeagmS_aOAheW-Bp4LiNyS2g;`x(@dH( zi*cL8+K5ols$`%&zkbPaAPK76YmfAc9g8gYyX(3I@gr9m~em7xE50qRaq6MaW zr3$S$BW@mJnSlt$u%qU6c>F7~$D#Az8dSD4!0xkvm0BBAPz=GQD@!;uIL1X3t?;@X zt_tL+iE)E@KuV&%J3}Z9kB2bq#0xoHRUDMlgjbrXy9;KpS{JN>K(g_|(CSkY<7t-u z_16S7BjLk>CbsZxbi<$rc6KN8_tT&kLP0XZbOsfCaF{|{)aD=wpDbpapCdCFw^ypv zR7$5}mTJgK#ShY)6)VHUca}pP_G!&Sdp(Ci3rt`_m48N*)a-@Rh(6z>H_^Dd`&3x7 zx@y9@ZWta&d4NduQ#(`8#_J-N?zep$Mqq_eNh=iiNikB=wLB*4%62+DG9xRHQ zL0Q`xmudJzgCW+>V6@U5+wE8Htqq^?2+ljWs<{!x{2Km+qK@TcVuyaiK_zjHnAkxndZr)!eYy(kr3pQMs!(ivHuz z8R|1KhIN|Dps}7?ps?ECG5uxnX&{+u#V7<}njAdxJq5ue`nR1uSw{q zZ#gqoDepqL7uHl_;EJ;9WXcuc$9E_5ASqlbI#6xy%~W5LY%rEk{uTx9bdwIhy`>AT z0Xf6c526!Hv1Epe^X_-SJxqv_Y?}5lYZ0f8{_2a`uris z1ww~^?#{puJc)*lvna^C?%6;oXYROC4FnB^iHyN85mt1ql17lv2qofaNI3SwG#D1o z2T(+Xxh;Kg+`B18uff zErMSQ8E%%zmt0t!A0UnuP=c>+1Xe&!c2K-s&I~ficMcEA6{!?`)H4v-#4TF^LG`u5 zmtv`A&(J(f6z@SgY82B&7}?A$-*RV+mp|81C-9mWXMA-@`-zCIfTfW2H}~|-$0-@k z85a#J48Z-I?F+s;_l<>Hn=f`8l0-A)D>Y zU?o#w&d!=9nDa+4)Pn4u2kshQbHuh@%v2rQ09E)0pid%87BWu{X*9!8HRrN=BcU5N zks}urKBb;uZ%?G++hKDf=j#Q2iMScdrzZC50gD?maPYO%rX2A?NWi3^Oy=B)58mb% zk4Ddjhddr@25OPSn0U14z(wsgz@iCdKzVwoi({4T=O$v5h7~G|!1p#K(jci0a-{;>_8%V8gXu;GKCC%`HErZipesOxNuF7;NPk*MBvIlrooL!3 zOCZHAdN$w{7`ps7B%C^m~$B$+8qMZ6S|UF zN;C^nE+0==8tdH^Gb)yz%vaQ+z8qU&kSD6`FG)*^+v2_M!4Nvg(r1x2DiJ%SMxnIpp(6T*37oCj@Gh7F)xwItU~&;m%% zmQ3OfOw8)>CNX;@p!+FjMA#$V$CixPDy*es!~lx@a|o$q*PA@KAfspIx&dR9qY{?* z#NBN|&z{Xt5G7Zjq6@tP{JT*cBK2WN3T7V6vUTYQhBrylQP815|3&3=6Mw#NFTI={ z%Zr%zg(XKgF*}BrVzKt43JDG^JAyS{m731#&K>;8qMGJf@r$`Dq6 z&#DIThuQF2?&5lWXBYhWwY(H3d+EzcU)lOQ*2!Yv3S1c+$tIOR3aExpAlRjMM8#Ic z;@S!4(_sVH!j2NR#!z)451&4lJl(~~d4O$Tdw?shF7dB!)*q+yx}uJ8j@=k$fbAkS zIVP@Rg%8^~g6@Vj8uhS^3GF0VB5#G@3#E1tf+vhCYkIdaorC*OGhNB7>M8IHz*rkM z0H4Ksir`YneQ_V>_83AH+%53w@Q38VJ<`W2e2-3Ykz2kcPZ#xx)mVV*tX_Q@r<#KA zr?aQQe!9wqYV~jw?^c0O#r7cz6(W%?b)jp)fWkL(TYaufZx_FsS?|N5NDc-HX~Ax= zd>^c#@LouFfHk`fjQL_DS00{kx&=#pEbVP%w9=NVd9aV-Z2dL6xlxgVQ85`lBnd<2 z1N5a0tvfDn9Go~nwpJRJf<*v74LS#X*O1qQIIr0wzO5ekr^AC}`dd&k?R|LMoUCeg z+deRy5h`m?D2$Wx3pmxJWqo7r4-iAzY@C5ccgaG9toOhQS#LW8cHw&MQ%I?r1V6>+ zx{4Vze?)=GJsiZh+e1ma#AJpU78P#cn6aJK#x0*8NiQ+6#ffoQ>#kx(&2N}<7kU@% z=u(U00M|Ehz!h?@f75T(>BxWF#~cr%(}RB#E~=Rcul#fijGxMNCWEiKUnM3s#p6fZ zkTAxFh#+Gn*2q&sz#`1$e+v@G6&jnnX(*g&6e|dUFOCLmVVveqYo3ZPJqlN?7FG0U z=3v|=ad!_bkq&d;az|KNq05_uynzcUVQb{hs?kjF6@HW)Dv?%D@4``@>W3~X{Dw%e z`ZaM5cXrpVFf<^YL~BllG$TZVFgwVFRBNY(eXLVqiMWu8A*I+gcvtl7-wsKXFi{gRfe?R_^) z7JPDMW!bMiQbr)R$UK3ihH_nE6Wq52)-dGS(F9P><*#x3HwEC#^`NZ}Kyd?Qk$LGX z#YfIHauy%=#2Lcv6?Cv(kEFW??c!KsIpRcAz#LMs)sa(Vz z7K#V;C5*Q*z8$NzxBxdh=C3T99d5hz8?4-+cBtzm4Z$Sru2pzrg&?Pqa+7iMGt3Q_ z#iD4=LRvlo%(E1UJpATqD60;z{Guy`D-q7){7|bUCSFF!Asx`d5{GgaqA*qg3w6%` z*Ft%V8=Ax5tUx0+r`2qv)}$Z8dG0^o%)=Ezj$4<9WB5s$;}%f1zwTl5Rbk#qPdx7= zz$Zc4v;coE{5PJn7mQH+bqHI4Ph(pbkom{{ddG;gQbePbbTkn;)Em!{Y@Dz)-1^ZE zFm-FX>ncJk#BZV^jVl0G>!Clrj5e%T zt5~1O|CN*yf;nP$1HxN1g1*grcZK9VtZ6eeM01v?!8ywG*BYE|=^)w7r}95za~_4I z=b)yiIK37&!g4e|*d*)V74>)z{L1}D(;KSKDI5^Tay`Fv4fgj6az@?7sZBvwbNh7^j+d}tf(H6hZEV2 zV)*a;5dR}Tgv*WwF3env4MjSAa+&F|$A4vmi14O4xb=Ei^9I-a49H0GEx%P7%SC@z zE;}2Rb?0T@tr2L>L%Je9;tNAji?F&2CX>#W;Z>%KjT|Hcu(blJwBi3Wg-hCuzZ2l- zSJ5n$LGt9Fc&l5Fi4HkSkg;>t07fYl)GS0+nLh_NYN0B9HlR+$knMy|!4bpqc>$j9 zmL?5A#poejL8nPeTpeQUtPen`n^>1ac|CEu$rl^Ts;sYu%ez9g`P z9pd*|;3~c8D$x=o%D`Gjw4|DBhnYP=_0Fp8j+2jER)h>6npIFVu&_OO6rIgR<5VC+ zOEh0w69_%3rHjp+6>D*c%h@C<7w;f%Y7RyAtoU|pe$1WLE-gjsFTDlJN6SB)&pmFg zy0F%;2IVCd{%qW%6*ldI5$T>)7S}{DxvRPPw^W{YN!#ec&iPV4}|tX$7S&$ zmVPIEu|_HC!t_R?6?|tz==iOu6KvH{&)ssC>_0quiDHjrdV7o8g#)@OvQF#b$uQQ6 zX>VNUMa6wPJySC=w8w1;Tgq(ZWSnL(J3wznqTR{jMfPQR?LV948={61m`h7sM5~5fP%eYfWEACdYDq6BA!Pjw`bW=SS<_gP2WI{s0^@U#IB~ zQ^SGlRONWk6a}GrIA&sRg&SFm({h|;*^r*l?H7x;b#i|qQC#P@(VW$R(SHzlyF6@( zQWQYQAXUL~x~(AS&U?h11Lj@OUN8K-`gMHCy11--D^m{2x;u$2x6&_NmbuVh#0FBi z-&Z}L#(i@Y)ZUciK!>A*`-4$Ho;y74e>l`Ht%H5LVBU6e;DTzf_v@tdaC?hj>w)7K zx$w#3*U9_z&#{aoycrTyF)k_qUpJY`CjP3G;x6zI%4vnO&6aC zQk5KX0+m>c@CzjLeF3NCXTN|hpLiJ3fcgA-lg^apX-?`nvqm8cd}3_Q%y@g}pHmP*F0 zUe0wEQQcl#2`K79lraP{Sm{BT6dOxo4eqQBNE{SA#D1AiH&t>fOU1$0y=NKfB<#~q z)-03@m>r)2RbpTg?!6nF?k#QPZi)2&Ss5QD_HK9{HtrG+8NbV2{{Nc09M=upHBO(z zg#*1$@$nqsMJK8KsyRPCE1rC-n)de(``?99v+0?)*-`F4l%o4Wk#J!UB~{4&&;7$g ztY{_Wnpys!&&eSHbwD-9-0t(zS||unRWR zQmx^z|H(8zUmHE2$@Ws^%)pLO&vN0(#q>eII2(0cqd~D8?oFY%XGn3`%2}kQTglph zYJufc{ryVWVgw@KLyVr*vRhZ#w57x$F z#TPhFm*s9vPkBA_F*`N{AufyG#}`ct+qU(3I$`Hfeg?!;p`$G+yBc{%>WLiQSlbaIWFqp+0Oz7;AhsD)@%weEsVD%XvM z)xrz-R;(P0X4QdI*<+RatdUFRb8vVR!HvXGprBxNhquTh6;>pzWxR<+zmGBe0km@wp(w46Xj zoICQL*O`VlDc^}aVcl8ibq$dX0lt*14#Shpq%wK)XiF|NSCbTKM{Hu5!Qg2O6a0%1Ksu_0j2cGJx$44C=2Qzsic0LME?_F|W5?b|NjN@kua53hrbTR{^VfEJpAFh&#&+JPf6U=|JGfE(!9E>_L4}SU8-jNX-gDj9|v*(ywCKXf*mur!6C#l7csFOY$N_dW^v8KzRF^J`Iwx>3D6CIqJ%+tch{}D0K%W5^nZr|6JWg$7$WHilLsO=&!xr{Zjq)PsQ za`>Wy%Jq{ z;=0mvoO3X)G^lHXyKKH%C<+Vr#K;=s2AD91D+NRKW8w$>uoMFw9)T=BIJK8Jr&$vj z7%HL8Y-D*Y|>iw!^G5WO}nb{XiCGi z5$(7I;v^Jy8 zpeHs!b)XAk;rD)x!o)|4nc4fqyQh+oi5&9QXBHtWrpx@ z;c+A-pj;hI8;7IwpwWj<^JGgRC8-;PFL|)*-dPmxkW>|hW|Slx`qu(H#HfHw3D%qe zt3oz}G8fRIsI&(E4=#nUO^Ss z0W%mdg8?%bFoOXz7%+nYGZ-*~0W%mdg9lZQ2Fzf<3{%-h17$Q=#2qfx5- zKT4G#KDw(P2jx=j!MD2jbx&!MUK>e8NY<)C54$Q-EsSFD$D=S|T8|ru7mhQ};&4DW zU(Xk?#pOPNq;vhp+Vy(6${ag1v08I+yUeN>Y+6J4wGF=&t8q9gALzkDe2lmKtmcx4 zzWycf1wzn5al&#WDhzYb5_kJS-#n~LaPvu1_)aonXGg~N?i@z%Xy#@+;(5PMEP8Uz zUKl*czaGxn^G~MZi2-@G8S%&>sHGXMG43o#x|-El1GASG)&?wNMd-lVaMq4@;f zGmr-~oaD`okP`uD6v$|V{Lh85yMk_)d!3(tq{GWMU)gP{WG-jEY8Z+gB)EL+Vwxxj z_Z>~TwX-*ZvuahST5A;g*wbVLepX4*KavVO7**mcg&k((naQPd+dCDa5Da-|p zD;qCZ*)P;Dh9(Xb*m`iglWkMTrt{>UHp+-cJoA?gQEs^#>=&REvs&qp`&i2CegNdl+e)h@gBIRt%jS_@g6G(S<5lGTvoE+}tvQVAotd2wFP|a1BBY87ATICY-|73gTv!jBJQKle?=@c9Fk%{M z6sE_VcmvZ(asm#n&-89JLeGU-RNXH>9pS!86s(}qLZ&~9+SM}TDp>mI-_wG^LP*Oh zm^>RGB34MJDi=S*EWJu5yQyt2AKQ&*%#YyNc;*%=;cAsZAICZRHr`R`&Z3*+$v!jY z#Xq#b9|tA~nr&L_EL z^g2qUsrMwf2XLcztO+lB-|R_FE9MqM={(+qQXlfyVHk-m)$wS^N(^76GFJN3vMzPgaku^Cz$|w6#Eh4c@uk$`aN2M`w6>ZW zF{MLalxh7h@a>!$?mk`{cY0#5S_vb6bswU<_QPWaR2xr;oJ z$cVAFPjCpkn!ckz78>bkL_RkWP|l4nt5`%k$NkaRARmiPM@%rTVSU%3Fnf~PSUCZXe@)d`jbq$O3-kd1^XMA@Rn;I(0L-kwT5jgEDxN z33s*L<#9LcXYz5va4{l1mhd8>_yHNl;ST>RRrL6*)KY;mhMbL@owbQJ&J`@dC+{fM z2y=$mwn$K`j{9^do}@~<&OYLxNZQet5voW+m*3)_k|ZXW{~{*rSEl>xbaRB2nfAt> zsRHkzI9Z?ERA_D&y3>=v=evHtdS!}~$biL1-+(VKv#l{pa`*Y(uc1NO8|8mIZ44uK zlrQs`!W(c9KzR<;?+M2#zHlwOA6h<>O&4$7#*zlriJ!#ZQ>{36I`*v^D@yAw#oMWi z3HxmysQbuyX3#YBP*lIz%p7EY2N^g$5)q)gTIC_SI3w9z!|i4g5I}17**Q$!Ni}qX z6ZKZ+PoPNeaRr6@zgf8?Z8zb&80mnLH26FEm_Jx`zU`HA(^b literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_023_states.bin.z b/client/hardnested/tables/bitflip_0_023_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..db4897a3507b07d0a76f2ac7b603911c19c2bb36 GIT binary patch literal 17592 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 CREK^5 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_025_states.bin.z b/client/hardnested/tables/bitflip_0_025_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..339b9222fd883c3cfa8a0c662748d7414d6d6f44 GIT binary patch literal 41462 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 thTV)fHHGv-Klb8hY+-;N4ZL+0lqBNqOc8yLG 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 EH_6grZvX%Q literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_02b_states.bin.z b/client/hardnested/tables/bitflip_0_02b_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..3cb26a7eec4b823aa3f3e1fc9f6199cf38d41b86 GIT binary patch literal 9230 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 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_02d_states.bin.z b/client/hardnested/tables/bitflip_0_02d_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..84db51d15eb194922e305090978ca5c7a6d6a9c1 GIT binary patch literal 27896 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 benT~Q3GGwea4?U30ZUhcqwS|3e(iq%XD%nn literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_02f_states.bin.z b/client/hardnested/tables/bitflip_0_02f_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..8858e63b4726e50df0f2174cffd24e27fcf6f17d GIT binary patch literal 14181 zcmeHuYjjj)nr=LvGn{p1X3>tLXwy=5GfuQ4T`HrrLb5&WB{rzhrX@gt?TB=M7^)F5 zLP&k|bk87isYVFlVzS$g7!{HdbK{!N=_V8;kZpjZ$OU$Hilj&?l|5BEb=jBid(XQo zL7bjB>&&0C)>*So_F9Bgt=gCG^1RRUyidK;9llbyDs=3Ndtds?FE<9;HOIyY_uiZN z*Awr3^4p2bzZ=>7{?dQ^__;e56tM2o4O1^#KlsTdV1m@+hh)++*7x#+0ubw%(nx7z z+&CbWxd-J6UQ)()4?<8WgQ#exvmt7DtvPgb4yhZZ>sjm-NHm6-I(L1hE?$L`>#t0O z$^*2)DzhqXYat;6hSU{MM-1oXR7onyT;qWKR0h$dMsSpX zC+2-M1aXpE;z&Sg2MIy95P%~gA+7`$!^6ChyO?6o7{1X7)sWwc|2a+iAWAwSz#e~$ zzf#NsLFLDACMp&)a}Bp}2zT_0mVG>BdO_X`BQTF|!!g-w3Sl@BA-~dd;t?-bEb=;& zv-qRnn2aa)Y=Z~DAPk=7Rn9C1{dYKzfF348Zfd1W#4SYDU zel2vkB~t*IU)@XrY-0AHMTNieAdvNbD*TdnN@F(3ql$i$Fz z!O1Q-c{RhSp9JzFyo2wDqd?v;>IsemG08cy6}CYKiHS@tbu${p4|wgHDdT?;gC6&9 zX2iwv68_-TkfAMtdwT9X&hv9fSd&(^N$!3X||S*Uc44(SrOt`{AT4{2KSr2kwYGe-QT%E#fobp(0b|B931! z4&(tCj?Gl6uBjbMXq*iY{|Nd1d3m`>N8~1xt}i1ptk}QTVg zPD9B>)l!dol{LKHviv#>(YWx68RR4);6V>XXlK7*Xi5hOz&YK?r{YwzojB>%B$&)B zwLK^;1mRqw9P(l%^PYglY$jH-yg^G0K<{89WF-tw{A7%nM5SMi@ z;9Qu5IhfP^95)Le+i9Xjv(1TVX=#VNZ?WJoZ&kA3Nb|`i%jJMAmYF?={3<5BpCBb2 zSI9K*ou=(vT*rS@2#RS<(1ph!cMi-9dY=9^nGF5khFj8J<>|aM1Eyv|Ve_c>E$-E6 z+&+I=+Qzk=w5ADsj1=@!25U-F&~OXBbLMtf%Oy+x4%}1j4kGYuvFFephC)V0VkAHp z1%x_?!&$grlZFRpfPJJFfNH@}4dGx!rxA%e?2FX*(Vou7+;45oeUCJ^K#6B3WPGe> z`N>};%YtGHoQo)Lr0~muvm){W$OL~f$J`W0 z>_L3ei0Z;CUN7OfCt* zL96CGF%e-VoP+atY|i8bFS}=-_O!ry-OD_g2#mMm(Rw%BdJe?Xj&i7CJ|kyS42x?- zcUjU*zT;EKg>uMej)!<_BREZC(h$`U;9_th1nqsK4a9U_z+HT7-=*$vQKe6xc%SJj zhjsxHnJ;qh9!_{kzvIT;|LO0})f>3XbZy;}kIF7RtpBJduBx~QBbxdVtURF5XSb+1 z6$XhLL)2?cXoc5h(t4G9J^`-*-66kQjFAo8a|j&L(bM$C*}puo-Q2No75t^R0`PBS0HM!Va0dk1*clhv^9fZ<~{B zj7b|z_`*v*F^nA8UXwF`kwz{n7jqT(GUrlQaO~(gexHALXbmm zOyN+_ieUESrMRH!$_Qk$8Bhj&w9hewcNvu);5J009l8g}h++txSU%5^FpcFfDMtG7 zl^a*Fe?Qb2;j*b21-p77ubADbIKH?9?FqPbU5J`eJ?y>cvi|($2dv4aWFu)y>Lj1L zu{4oaS$eB6@e{-w-R57yZ91T&=buN=!YiX zS-1nIV09~vN%28H|B&T!te(PaSUt4?yhb0~mjWfL!7dQa{qP+{FjaWb@C-g~T20=$ zFz*A%ga4Yk!&eW)#2_pH&-*t1GOSHuhyBKFePRV9>(I21uzlA-}5{okKaf!sTQR{|2!Wij4Eby?aw2RG4RK`P3g- zHzi*prO;l33-rC@P($-7c=lsBWbp%BSQWmY81+%Hh;=8(hTXuB@9hhb4Q*HWvrecs z6^|T|)Us8=OF+XD)-Q#QuAtm^vPO_&%HhJpArc=gn}y3aS}P-umAzvBw`T!mT2+7Q;4Fc}PWE5btNd_lRcs6$Z~`058CV&-fBDMCg@ z_Y-ds>(r#u0h-YU&no2ZLcX)w5>{yz&)7}(c9SvAQs0MqpMn$Iz?Xt}HRgSv zuWXLfkI2Zw5W2!QeTEcT$X5`i2#Y~`gkII0Au<4agHY`wxTv?l7V@(~WDIE=V^<_4 zFg+2xoXkn&*y!ORl)Q9?KahlAwY z9^N6tLkOJX3-4-7>6Gb%nVuFSw>PGC>hv`ucRg3%!&PP%x_jqXWKenowJhqh7@~wZJu*4rlWJcHBnq8;{wuO^$Os*@th3i7$k${OU^5*YOMBpxwnkJZ%U+xzSH0yJ+c@j zy1Fi|*RtJRD%6~Z?s)#kmTNUz9wu>rR}Wn9*VCdpL)_QYPDRb1DZ|hCW=-A-$3KSE z2Mb7n4=R0vr>EDiJ`M}rJfw?b+Nms)XW%%d^RgM-f6U5ubC2P&aPLJNgJtfpG>Y&~ z;z>!vdP(-HGr>D#KAnYJN2jPz7xID{(R2sMpxnU!p81jpxMNmBHwn=`Vh?jfGMtbr zlOQ|}4=+S*4QDhY2)@&hE#VwiGd~2+k|6ERg7e7I^ZCx>%=0!+e5J{mkbhkd8u(G~ zCH^>wART4iD?rFVH|`w2ja;cCv3v}@N^9VQD@5-JIvS7o%OD&eI|wWv^nA|eM!DB} z%=Grd<>ZWR$dJWP!cZ*1z2F;wm4hT`?RYNWO39nFv~zHZzS)l~msaoLrETyi%GfdC z@p+r!??}KAa8+B4Kx(3?(rz#Hb$zrAcEa8OtwiJ!?0PziO7Ctztp@odcUffx)~2|E z)9zTtcV@CNX7hR&F+eCn%L1Qu2EUl%|DVsZijWU@wnt`1yz_M=0#VXDTFi4s&{aVM z!TlP8uOawb;9LiOzaDIyHWKS6T~;v3y9g9rAkWKP!9+>9(b#7xM*7%(%&3MZpv54& zEb(DB0vGuTu-|z1TM)J8=+fhSf3;dAvmdJpp2rlkK3~o>TVS1r# z92^I>K}GXKQq0eEjSoDsE+9D&VWJq6kc7dZmw8?S>itqRJ6iz<570X6naN~asNRdC zW0T~v>0ISxjGW+rc9Ohda<$=DNGjn;cM~izm&8rge1gKvLE+=zux3taMCYYFi{00c zw8nmnMfbqB?;(E;Qaa@M5Q%A#m3S{Eb;;0^XwYFL%eEXSxa}nhcMnMsWPY71Q3G6r z{8hFm@`XeT0g2D*2yNG#s1otg%6e<+Hv#!C6T)%W)Eg5naG{@^w4@#R^(s8uTI-+=MENUBz*?uS)vld%~uWFfR)bdYQDr@WO!#K^>$Xyw=gpF;fk za2VaXTVu9R?S}db_VS{*$Q<_5-S~O8pIh#%P*><6xWgvWqqfBHg@cJt&*vl$29Ul5 zW%ENvV~F!EZSyYFD$=J6^+2PWiz^6^EbwFT>$;{phV`;Uz7iDUQ{cbcIJMT&g!4-t zF$+oGnW(B~M`=FKo&)bPXdi*YaMZ;}sZy`I0E^%l{TB}V$h4N6v&olr(Jmy1gD_@p zJsuz%b!bgiYETFBVeoUFZwXm8b@2(0#1KO@6t1_PCVCu}iSQ#<#HrQDr6MLQw9q99 zog#L{AKQ2K{cS85{ULn#IvmjiBREcyK}N}AQ;C1?=gTLy%Wza6Srb1Q(5KN%ad{7C z?B5o$lmsn>S9NJvcOjPE7K2v+t^9OESUD7Kp^$8~>@;B^)^f((34qreQj;L0` z`h9Ph+GaC9h^p*DilP6mOUp@tx<(5UWcNUR9rNNkVcwIi;0nX_pu;l)HP6G$uqX$G z5YBjeH|&eM;wD_9-*ot#gHUZ%lr+6XX~=i7$)HP&IU|G@LSL8B9(X$(^UxrY?|9zN zC>(zb3VNiyw$oZ!4_zX9e{)1XzuG=TRv6EM`@EQ#1;5wR+XTdjecV@F!>aEA&lH%o zYK=&PR)Ma2gXB{j#-E}~ko4N)m=v!j#Zc6t>w;acHPTEz644dDU?W#ofV4q9hr%Y+ zqMxa^>lPgjLi{2YZSdwcMEHmB_F76|M+Gz>1%CqkmY8zP($cMXUu~g*n{Oz#)Mck{Wpc&dB1o?|lXb1_c>tapB(M@pL$u4XM zjP3{f*jW!nsK*gI@mZB*4&1apo?PT(r>4a{tMdLiaTw~0xmx^zU53Ci#~A6qw}}r0 z1o_X`^>WkT7B`YmPavShv{zSpiDk_kqzHW8_C9lG6-Pd1s2LE6lGjbYsptOZ+Q~P^ z=G`;;jHqxycc7ZrQ)TbwdpH00`NyVaY70i>koV=NRn{G9O!Ch^gIUh&s|)f7*Au^( zA5%1Y?y%kC4v05D`3L3c5c{C%n7`}Yv1DMcB7S@m-!bBuCB&1wGaRSp4srnS7z14je6A&C*A+IJ8>kwzNeF)NTRh< zS>%T0VQBJ~z*Q>BviFCmTW9bxp74oX1B$0-q2D$D=OVr>=%K?{sRg^ka3X@VVN-SmawVxpOEIf}3|W1a{Jr%__rLgYp}4&KnQ zx+incK=nSsseq2Yy{0#;Hg=-YcrC?~Q;OJ${tr^*b0k4B5PG`lIVQzPZ&LW3m2M_; zk(CKw@O%gC!~Pp?UF6lfQX1Lr-tZz01;bcquk6#ii1I4m_4)SX+JpmH5gC%peU8d%7o zlAB^VC>5~#*2%HUx&`v@hLu>kdqH@Nq1hxwC=&+o`A=ibH@rMC8-Wg+fP=aA&CDVH zWI&-s6@7BO4)Q(Cel>qELm)t z*$3gk;ACblUd*vE`4|)2@Olt?rQV%xO^wwk>-qE!Ylf}~*}ebI8!)P@>TAgM^Kdoj zcrGPAlleEqXF1t(oE4#?d$UxRt8=4?m0pxzcBK|d?Mf}$m0CR6ioCt<1uW6ZN*O`B z0OpL9Xy!#0uN=qv7e&@-!U)d@s{Kcs45=6{x=jBMPQoc&yx31o2-T<@=6h=!afACy zNCGG%dO_vbSZf+A;)$s=+Z}wn4R#l~E2omE7COtFc36`(`~vDn=oRyw@&7sgCs`tkfwcjEjw0;&=al z;r)*m-Y*wMl){3^!V{-6n(1pdtYuXfjs{S?)ukFVfNc>ZuhxXLCoOs{CE1h)TRtz- zq=1!Lk^m*DO2x9R;%XhCj&`W!@qL$Dxkos zVi+i}S`nXgihfsi>W}dzoqg6lGkEcxf)&=MqG_CBJlI?U$Yefje3p|XxPoe*)m>M> zzl1cz(~G%xH@^^_RA?32`g#Jk5z$r0o`l$z#5G($ULCJ3fWpJDu4f26Xgy%+yf|Fk zrD9Xj;@CpjQ&B6c#l2|YW}BmByKt%7n&andt%A3#mn~9Zx$c2;75r*M$>=0M6TqeP z48XydBPH-tOEmuzv~W9N!9mstIkrb3&w^GrZ(w9O_?qEanO>thUYdj=o+M3mN9~8* z_*gFtbH|&0c+P}f5Q~z}H0NJkh1x zT)3bKzg6H3+pj@g-b|W>OC*AlbRg-l&u-g$G&XVE`}5CEZ6}-E*>B$Xxpz0R1pQDx z8ct@tDwx(xMa7m<)nmdRz1tIlA_?jycW;ep=F90n;l3dGIPNSq6+hu~eSvISSo^uJ0-cCd{ADZLG62qirwtv8rL5}rh7^IM?eN_LXD-1(bYg4y z#Jiw>+~HGnK<9~EjluGWfacNdXyMHG+Ec}cuW1iho8D)EHn=W-~Bmc*d}jcF>3#HJ|dYh)8t;v)qEx{%Y3hYs0i|`iV zTZD_ZlM~gXO6%N?N(~ikh<3s?8dr=eF8^Df(k@{< zkq|8ANUhNABc1Ua9zw$}s#uPc_g9bX8yhH3A-|i84KSdqAm2*2xzr6}C(T5WFSPzX z5^JbtdaV*l&hlU*s|A+(ae+RwVQtTAjb!RYGS3Y^0Y~H8gD$pE_Z~;tD`d3-@1W#- zOvnnZB9&#($y8r3Dd$VDwGH+~#XQI^qyLBa)iNhkUbH(jcS8>>Wz&`+;zc*P z6oXf8WY9mG1KiQ?QbH}z6%;c`mnQYY z^^j*3WUFKfI~K$G5~rhU!>Xg2mwoISRg2c@jS%P_g(OSI$WzkpMN>jf*7_W?`%0(vNjqAJXVkw4$`k$? z@lp*uBf_WKfEwm)eaL5z`fx4+VhGmx(bsy@1BXZ+x@1n($o(;?f6Wvx2#GxqTLn*b zAcdB&4^_)4H{g0wRP{34v2e~#W>8$z&Co2=HUPrSm&S;!M)sO(-mt0?`lhaDdf@#` z)+Lcgz6W{O+uRhFjZIb=e-{@uHVy5zRe2Nn&~#jb%bM`B=V2&F_Q00$h4+wZxI#g3 zcSZIxmN8-!g>1#0kqJf32(Wgc`}KWxg2@>aueFhW>eB5*7}jN6<=qfLrsu_Q&8B#c zZnsazQ2KtP4QN%M0YB~@-@kd%svae|>Jyu*V+)`W;Au>73E#-aYqM79Su-27; zb=-NdjyNQLoF4ECA?&EQYAk6Q%N<)$v^OBw=KHhTu}u<2T&^g#vn)jW+7k{Pg6${l z+|ps&t2h>&5#S^UjW1vgv2l89pC#xRAnKF4E;^Vl9F)+YabQ~;o)2M(XgzM*@Wtac zyz&+gSY;~)@C`rO-RdjIDg}bJtUMFchxzUJ>J4M@t7q$&Ftvj0dz^g&)e<>mwZa)} zyab7`YOGYhCA_&p-+V%O2gS^v*6Q(;#CV@=x-V6xu~0kgTmBr&S++H4%uXLxgn!4hr0$SIz%IXcp1}(0lKk4IkXZq-A@u?Hr6%YMy1I#slJ%*668#fj z_lc40m4{(X&;MwWH!^YWMUR0+JR9>lo?f2s=DDYs;^Rl^tX(HWhFw;%sp+*1cNYRI zFbZ1c4yvD8V-;E${RH-^up7b}lKz?eLzKuUlKC%^8th93?uaNAksJ*Jm)$jhU7{bO zPRqEAMiNErh(8zn zbI4gH)37)zPgvhugPEJeEYs?8w+<(We}EL4)93QWBksDmV1|ar5&<*E69Ha5R1rk8 z#q~|fcm>Vnko&>l#lqrMGY4E7uTSBoVnV$!^pezL3vCtyMTf~Sk z<}7);>L#VW^%T6pY+BK>vZ%XhpWa-o4>=m9p6N<6@RsqvT ztu+ikn!6G|?ZxTj{t=+UnlSE>kd0iaqqxrAgkKu7{iJP#T4BwT*Bfeuc!Zvzn7q!O z4-a6YD)$QWN68!3*5otNU6I3>S^r5dRprEBs zk^43w)Lt7N8+d}270@b3V&hYjvDZX8@5e|DCc@-S{<;hucK7zTUpvI#!qKrwGUnZi z0NafA4dH->=(M=t%DWPiv&aTPA>I4WS;+nW#;>knjWx2%Pk0PzHKUA}w zY}+op2l7s+4j>XMGkI~dA)~z>F7B~NJ)g=wSU&6}3V#ukld>Tc)T0I%gz1eKN+Dgc z(f||D%}FZP^)hP)V28_<$#28O_B9~?lPO(+r$!9N3Xr073C~%}pZT3h8p5g_QrmUa zvuL5aSIy1k;>nR6P#J zYQ(ITEmXs>aL`^}A}+FjB@Rx#N!)@I8;*4lj6tJX4VsHF8*ynM-Rg+&ps5AfSDv1= z1cvpeTTrXWmpJNyJOR9Q0wfRF#qW)%H8F0rnzgFtEcTEaovw}RmMJ*D!d})OtbScj zSW|UnI(|ceoZ_%N0hgh-k<%8n+iC=bkJEqYa)931U-i26iRHBm_hpTY`IR3;gfA^v zX0_|2n;e3-=3_wJA=%U=;Mi**hU%mfZVAv0;}N`>Ao4trk8{T~9<*R>AN^(k54ZQD z>py^(z97B2gK6U=8G1h4>OH<7^h$y>;isClTd8o?6$0n~wveSHXbbt= z!enjZa2Vb-;4|=^bcYkK0G{ED0g=50-%yvKBaTm-xm=i$%(^vBmc1wpK@&Eq1(&Hj z!OST$S$mu~%)o`{+^9PS**eiN*Sf5ZLH?lkft&-hDmrmbs^EN8$@7~ak2lK5I!2P4 zc#egKKA}&Bf<8~~DN=k|IFDbWC^*isOO$RWKTDXf2D~^v}t(pAi&rsDOQbR%A0%>RBQj&2;olp4VxMT(*SaagZP zfx52Lo5CDzdN=puI^q7S{m>XEqnal>L2^Ha^0+ssNim#p41&C1&M+}uB!1K3D;tG* zZaGUlrYNz%5|N2cc3(n(1`>ILU0;1XZuk@p$+tPJR)NL)p*}1>Z#%8n(i^tDzXRR^ zqAriozbmOEbii9&0e`e^4@!s;FF;_PpQDh=_K+!!M{h*(HF^n$@iTM@tXz8>EhlpS zwYtZ$v%*P5r+osN(cJ>3@mgWn7Uv5A9#e|A*pa~0ju_WS@kf{r@Grt$g)K>`ko_Jb z`JNl0d<-g)X1IpKoU-A)6$ssH_|m%6cUJ7cI(`SmlLa{#3&cXT6WT~?3Ez)OO19FA zOh?#KvHe!eWek_Z@T20VYz;DU%uS2O0rcyZ9DmQS!z+qw6JjeIj=1U|w}QUZ1Bop7pWJgE5f<9?sXI<9r^(UNi12%0 zGwE-E=VX$H6ucY?_*e`My_)iv_n-=^L0PDyhF*kmRD42v8%0l%a!9vBn%PyjSNmWr z`aQh{g$DYh7%Ic;c`8&Uv{>oI##l`5Y&XnAJ&xFk&+4+OzF~dbTN7~i-DzewR{z1g z4BeUku?TWR3jX7)RZvnw+@!>UZi=x2W8Fjl+g|!Ry6^=HG3(%euAO`n*q**-P1YTQ zmIu|ml`4BT-@Ez0`4^eabPT%3{P(ZpbHcH_4P<@?shBi+q`q1}tKrE*hKj*KWCHm) zbSw=#_UV6d{q_nh1?@7TJbss{G_@H1@clNpH6%>)3)qZ9Vnbst{6^I;_Taai##{}| Yb|Rub%7 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_030_states.bin.z b/client/hardnested/tables/bitflip_0_030_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..a9643322a69bd4da814425d85f46580b0a9910f7 GIT binary patch literal 14726 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 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_03c_states.bin.z b/client/hardnested/tables/bitflip_0_03c_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..7ee384996119f001684c76cb729512ebfaaea401 GIT binary patch literal 9693 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 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_040_states.bin.z b/client/hardnested/tables/bitflip_0_040_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..372d2d4ad490b57c710077d9a5bc3e86de1eb2e5 GIT binary patch literal 9770 zcmeHNPiS047=IyXD2fqEiMJJdC{krrgd)biQz_U(4jy{&@G9D)tfG=EX?FG?6q`fQ zs<9MyQ7OF$+gpVEnZ;UaP3w|WNi}9)tZla?O{d9AGTEJ-`TXYn*{;jJmy}%JWtW%C z&dl$d`Tf4%_w5e+wKPAyWB2<%JUgAtK2@w9ocZ?j`f%sdU%asR`_Yjn9(#St+I{)e z-1=*Uk1YPlZw|?Un4E;UYSF0^aR=Um>Yo5iIcu|a=EhZ8<@{77o$H5rlB=YJt!6DE z*YKtBl-mcl^Ejk3PdL7p)hOuyCLo6gzcE_L=w)K*@=(Y$vYtC z#fLTZ2k9r*;kI4xH2x;smR(0+4svj}Kviv#Ii`_^CBiMj6YI3P4-5mx^h3vWSf>?I zThzluy}MW;0(a5jq*RCT0dC(ok00|^T!RVKTN1Kx#k3i{Q!qgrsV7ed7pIWmeklkI8q9akwa~)!D>La692fqswSI zC}TgOxlh%7^B!@7fon0UI1!`>-^tzSe-{*;(52q~B%kcqxj{sI&*7`&m^KW@T+(9r6jUXx4 zx~|Y_mr>NzEcfG;YZ@VxBUkVy(RxV6ef z{ygAub{Tm2@n-1V2ZxDMZh?;he~T!Zh8Dp9wJWSbIK7P1SKt`M8=-nrcn5tI!FMep zt_I@m44zu_tyyQ_YlZqTC9H8cKp1=~^=xj`Q8AIoteW?ki;D_63AY5P32x#X-m=WS zh$W|a?0yI|G-WQMNCfmK`V{zhwbRx6=LWp_t`RJB(&YuP?oNi#T6uWBxCGxAg` zya@0`#`CRO=L2D7;36g~#v>9;3AVt;K&sjcH0LNkj2u=kaLt%-|1y40Ya#81l zs;&BAtsf#&_MivgBm%fRr+tZU6k2TnlNfzOK*Lk9XF=L48@)jjS}1o_oro@j;V z0lvtLer~mEfz!Gg#$;u)hy;^|E$}grs`kc`qr#7ZzC^Ml96TABPU>Is2xNXH_o7@Mi|^>Hav*RK%yR~CY3*GG%)J5(wbbs7@Qcm2R~Gw!r8k0&+LZb@(Q%y|R&u#MDB$ zccn6jT-vzD6(;nu*&YD0iU6YQG5WHu1&!cr zSXmfdPwfIZkmIWGOP(PYw;Op^;RAelP~jQf#KNA!EpB0QRGEkbi(xoPV*N=qsJsFCMd;RAg6sCbe$iIIURMmI27Nfn-8cr~#FKKfO1h(N2j;nh?K z;vr)lr#p6W!)t3D)o6i^8(z&l>bT(*H@xD8SNpFt;)Ykl#l;P;xZxEyyyAveWCJ>G ycm-c8#|Hh#ZlLKJ@ literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_044_states.bin.z b/client/hardnested/tables/bitflip_0_044_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..ea9324375329e75acff6dffbddff51f4578d3c4f GIT binary patch literal 22156 zcmeIadw5jUy*@r1&bRrt9?kb0Yf&jqEwxc8j1?3mAzSOw)KVQ4YLoz5s~8|al8|g z|DEUgJ?BYyo*0unGi$H)e%{afzMr+I$SjJ}{(tu+Z8`;p2nrd&IRv5E?RL*StWTnPw|lN}7<&8@s7z*y zL{-!BjU5y~FM&|}G+t|xW`QWq(JJbpuF4e&x#1gC<_JJvPDwLA7`9Wn+6&^=rNPsJ zesmvKmQRO^HM-&U9}bpX5MQj4M$xC;;LA-Wmb`cJGe;ZzG%`!y5D|m(B34-5CHm6H zv3e1V=FAtXg(fb;=;{_Lr39LBFL)n;$tS_;gk2CmxV^f*wCdzoP5*;IUhhdxDCz=-#`g> zFw;n&1;9Ss&`5%2NTF?3_PMm$Z0h=XmD$@wR~QpZXtU zZXxrVbnA(*psVCdd_$d_$@Ix2XvDV^Z|Wf*7}6fA11*GvhQ@ zKza@y8v`%p(ds0q)vX&jsZ{J{yJLf>sPKY%Kog7o@|%V{mD=!W3{$wccKgv4P~8Td zf?7s*Hdh!Vi0hLM0{h}Lr1rsNKUvl&Z-T}@kv3d%wzjw-xF#6*luHr+7%X0(?G6mK zixbQ6sm7l>q4E!SVGBN{H;m9jB)2I{K2isoo+vc99dOfLJOHiYxr(3%j78wMLoFB) zfb0A)Iw8KV7+Xz`yP{_!Dtcr1GIVwk<(Hh7V;uCdIXD8$Uz9M|`>@$mUrj3ej zzndgc)gszJcf%9Vtjd@56u0;!3^JMaz=soI!M&h>=}TICl~fjjxsN+8z!`8P!w_5* zcEkp3nxw-F&JwR3d>ayi2Nq~0n$VK0uI8Q^6d^h3)T?B-yxMxiXuwx(GW`rze+g47 z;j})~v_!YQLW{@XpD74J8$XGLi7H&xciJl=TN`ZoThxMr1M9u7jRAaCmJ4KHDs&Xz5osg;snEN=%-J1LtQiUX!8Dm#h?QsmGpDcmGu($5KTH8jw>WS z@=aKv1rFk5Tly-|$qQg*YiZvJrpty^6MNw2#0$UqCdAFo?phOgrrMD2@j?!s9b5|B zhV1w?65Wh%jeX+rc#68+2i=fl6R)UT4Yb4Ny+#(@pyRoF4ThBCddHhKeQ0<)b=U#- z7&@V1P{l`wn@Vh;wlv#_f-))xo;f_%RXoDB<@(Z*_4)zHJUCC^Dv>^Y*N~IKV)_$Y zz7qklFTA@F%Jx?$lF|tsfW(Jd48D3pY6-3eZ3r}%%|fG?_YfOv1FX`XmiaO zXBCcZ{(Vz`{1b4WAI}~BEj`)frUAu+Z5I;@C=hBRu%(|Lf z)$J$zg*AL)pHc7wcS_zb#AzB|L_#UES9`ZfXS~n4iRZxM73bX9Ns_8PUL9N;_P_uU@L83C;3kL;7ooQ(&7BJJ^+YuD=R%jrrR&xDsT@`35TlW|QfIcG80@ z5N8U)gPJ^^ia*DVS`DkoWYvl9obBX7IDH823PBaZ@Dli(9*2RZB>^GK>xj4P#8$#; z&PX5;GD4LX&p&)D0DH|KeigjfU{-_XSw+X@@v zYgO-Ms=N?#$Y9J9CF&Ee>cy?%0&`_w&huP)k=Q6I+uN!+YaTriAoI1+5k0jG&$|l` zJ?!$41zK7QzOo)pv%%2lsZW4E>f~|w^iqBxY{#D_6ieffFig;nzNu&E&9sBF6;?{~eYOFasFl{FvN!7`?zN8L(#%v!N=zswEE z(~nDHSk|CV+)o|%asAc3HMVP)L!Hygko2vKFt8~z0~EGzyu587a;)G9Lr^pty}Lc!e&aB4F+8k@F&ZR+19BU9bj1J|#XPz62$DV}3BAr+33& zgPDD*Wd`ht5raW6s7$Ok%(r4OSFR7(S?RC|N+8F9vachM_OOTYX%#w%-9+9~mw6@NcK!DwN)|w@-v+!_rIchh6?S z-TF3khP$~4B3c9KC5F0lJ`6MMgO)~E8nNNyYJnGNn+*}7Mck3+IePt2t<=aRGPwob zmU*Fs)cU4MX5%fm$a#*EMnlF5!%EV!Le8rmkAW-fqYM%v{CF7fCFQS!>th;^FzAH= zH=UCkyA%J8=@j&AV8^Of6Q1LsQk8Y?GT8{fWH8)7Qc9o)4;hw_jnQJ{Mmp2v7V$vh z7yC7Ciree&kXPx&N^wP`D}FM#_I#4KwuY=L66QX2tum28L1%*`x*Y%IudU=d^c3!B zCp5{K7f8ek!@5NuQpOaHjA=?%-9@n8L+T{6=eIE1nDn_ImWtc*GlN-@&z1~2r;)HK zpAMEqaQQ4=I4$ne@s)6a`c$5B>*4)&VZVorf*+THpZEzPzZeh$v9$|$;B!dPEfnEX zrW{fYbCjk;%X=T6hkrxXk=RK^EN%ymeV;>$wBTp@(NLLHM1ce zGL20Y40KfF?-rpAP=^8etP2>X&91p$CPq z{b3*cOo=nSJ4PcfA!zDkDj;oQ%wYgl|HFn@A41yYgD+_sZkz$8FC$i55yV_`lUpBf++Tlx0PWRf0o;#NqPJp6Nhb|ow=R?Dpu!B_|uRQTQ z#GfpCm5YSN7r{)!e3GtAhI$V!Zj4Tm7qnsY@7R55n^4UyoH(VB>_~>GMKFyf)Cle- zIp8Dpa8_1z*skMI8LxWxQSYPp{uNlG3Ii1fb~ID{&?o6>aA6ki0}VI$0mKLVq78;c zV1z0j@5wv|JzsKu+;IKKYW5)ULdf{FR(HgxkF0d?B@DRYIId~1+R!B?r<>Igk@ao=KPOcj(BymF>{>uUO zd{~!M9Dr!?*TrC|Jx?`<#4li(o}rK$7+wR3AgSWIh*y`FwwrN_ZqDoGkUxCO7EJ`R zsV1AIuHfziy+E!cRKZj4(KFwrTNQa@tdisDAF~poebD%@=&XVGi13X>+95-L4{=Qy z447UTK}o4luqWW-aNjXi^T(`|-WJ`zIevDw2iTk^XRpG>BY;Q7n2-wAKi ze>Xiv6CQ%`h4^R2F?F)T&-SR{rcIgUljsAt3h4j8Y>L>DSyyt z@u$|Rwkok!aU6k0iQh$S`SfjP06IM+Xk<1<3i81eh08$V4&le7=pB7&jTjc+)vZvC zXyZgS$~uMZv6AGtKulL@vBBff7ei$8Rn1(M6sU@9c2Vz&5cZmJ39Bu%K}zlQrQ=?pjc(h@WTcPW;{5tMoYt{qIjw^$5q_~=?}W5QSD`p@7m^ou zd_xz^cO5m;v4*#252CCHeAq8n&B<5A=^S8 zFB-&;z>B;=!X1h@-YJI1BZgYbAnu@y&xJLi#izMN)bU64MYnxOgpOOPY)xK;56~is z+R(Doq4VkOp)HCSe0?zAp(GW#bz>Ekl1N5?uPTlR2CL`mdgKm;uchxpeHpgMgQmde zqAvJuZB0*^O_#t$%^~;#idzltOPb=BiuXe={2!C4TXZ@I`)bEqu-d~q`M+s`3g@p= zCe~G4)vXH=2Zs{fybn~}I^U?jtpAYJ?QIRj=6@e{{RhN9ircsN0K^5%xb;)9gR)`+ zrJJ#W;=-imfq;t<-y;UhvFG34!NfSb-pQ$Tu=+HJMUz@JlHCg~{}FJ$FXs;DcSBzR zlRQG_Xm$CCkoSQz`jqaVrtdSGT>DS@-VezeE>kJxy4Dy0B zf?7?;!BOyL+iGB@HZGKTb_LR-acUnedBA`-ax(&33Fl(u{>|uOw%}rxGIBo%90x@# zI)agor6MMpwDIHUVg0RQSG~HdOX1s9TRXX;XYVy8n<3SZ^+E|UtArL9y9Vy)h7mE& zx(=RvgtSc6`Cnp(cSa0YTd?o$$5aNcRw`}*?>qi1S zR%#iq9eX9(w#LxoXD1nmRG_~pS#0p&Z8%w)QKEx3XHP}xCcFO@9Ra6za0Nix^9*vLx0u%O+`6-eczoRQh0JlZl5k{_~FS(@l* zmrW`Ar94hpCoivoru134o2?P`tsyP2elw)+C)krdt0mA>8A~<4$f%@#a`F~w!G1q6 z?Z`zaCwG(yc~q$ib2H&B%1x$U1?F`J(?ZzV4eU5c$;TvljUn8FXOlCTu0m(GxFRgD zhKsw_sx8sufp5O{aIlqFffV%$9puk~(H9QFX%($7hcFgHYwLK+@LBx&SR#W|KRj6t4eZivB5Mi;)SRupmy48F~4@DE04N4H(YR`(!Fq2O0SU=XUPiprFCp@Z>NIEScU57Gb5^TQ~>xa7xQlQIk21j?0g_q4L zt|P7zV|cb8Qan|+e`-v}{coJ?wl}c-J#hXUntECjI}l1c# z!xgpn0E#Urhln8ymN$)Xtx)<5-BxW7Y(kn)!iOqXRD@+DE0dm(?~+ka4IT0c0fYEN z1t|qP*vuVZNLv?)(hLr}TU>O8KbPPcTB>qx_=y_|!L7@`M>Wv#{=nMi{k{nF1ySuUn`w*_$&x6JMuuFle!y8rqWQz?{1XVLu7Dh7 zT!bk-bvLkd5!6wOCZ3Wt@ujd~ODkGD)i^g7vQ9FAd?3;%4*LgeOUX^n3M#W7f%>FJ zSC6Hyjw0Dxa zvwG{a>q{s65<$4~IWrPf^H_1lGGB3#_$+jiIfi8{?ealMkH3Z=UN06%N?b;O9LW%L zxRg55m@@xWuQ;d>CIA!GB>DWYGlxbh$|Pf41^K0+#(zlqRO}$(_nI(^?6%`}x`I$J zt{N938MY$--r{Nu6};UnPovY91zp$*UWG8}CMe!8VY}-4wF7-8iXX+zOwqcoF`APg zY;dC%771awv(#iDxgUwpEN2v7>-$}(UP&B3Hi`e5ZinT>Gvt}6GD6WczJ^}kF z+^BwN<5RJ;M+xuSZh|_?2}ATF3|}UDaJ85r!#E}4ZOqR@0}JH@VH_>HZ}NytL+oCL zg12?@ea}WI$x%jXN2$d!m)|Yt7~9atbUO=}#xT7&@XUOg_yy$F8G#UiOWp%Swr11a5jiB3 zCo@xV3o{j$H*wwZ9=3l^zzI(#T9~(DvDFf#u8u6-mt8|XTxqF-tYNUS+uPtFzknZf zLxW^~YIH<+Lp-t{_(FL65bjSC2KqUj%(`iB|C(l@-NK&| zcj*J*&PFnZMyV_M1sYHCA8v_q*Q_9H!aWiuAu%R?laK{T-i<@$#I}-84RMVjM|w9u zKetgyK^-<|)q44bP!{Wj;Z3)cLz$?6JBQnILsr-aj_crhmZoxOJCd8u$xXYHIT(IU zYiGx*j~3TTFo%wY_^|mpOMN-UQm>MGV#O%Rw^c75NDd`>YICSZlOkomfX=9&_l$!) zIn4FpHih5rF8=AcYn4fU&-fysWU7yC&h7KXkAYeVNoX)MIDq0YR7EoN_ni1W;lo2# zde|+#qse_rO5%AjjZ5uuXX4|RHyADR&?RH$ra7Nx?T@)y)l9zm6?-LClmH3H;!&rbcBNv9&`k&;$RD2MRZ08Fq&;?GdR-)E`V`Qf!EpA-}iMbzU)7 zq0d`Y`v$32T^F)tyEU2aKU-y_VPSA>CT~ zkt5(*exo;fFb`6#LGBy+Ym;e-|K_d;UGrnb-^MtPD_kQMMw{*Zy?iq2J({a z%~fe-sLrufY9s#<7JI_nI`Xefm92sa%-lJTv}iffA`9GE#B3FEAyR7{1^&6ODnrJ( zIcR|QBAKo_5?48B7Ae#JFrRMqXZGo(y(FjFVY24A3 za6%})2R30zviub4z>jFt-`m?eVHB0Nlzt!2yg0jV%OofI|^LVv&kii{og5Io-7`e*+xNe=v2g ze!=zf!Rt$hj(SjiYpV_EqpgT9Jsut}$y=aL{DKzTM*?AZbz!#KzP1a=i@LNl!nKrI zDe2w4F5fa{cL?PivI|-sp{4H3=~LcmUZ-a7r4Pv5YO2RoauFT-I{33s~wmFcz~JHV-LdIOrMeS!;vv%#}ddmBxg9E zpN3SDv(i~XDbp@KLXTH14cW`q!$2<)%0=o^P8$ImKu#;Nqh@;ENE?at2wq7pCmGKJ zcQ-C)hiuJe*@3&SX9xPp(PJKa`0q?a$0{-cE>6#0KsQJ9f^3!?c!CsV5Jx5a0Y($I z0vr74A!2oj$0K5Ol(VL`lRM7vS@%G}X{h6rOk;dm-c9}%i&xk?;Ak7%aX@?;4h)1- zxM!ja!VDPei(B%wo4nwuzL0GHB-*yd(BrptsE}NimBWAIdUEsYC!(!u#pAT;Gl=(F zk5|GlC+y492V<+8SSmNswYS1Z-MjRYVX3Wi)I8yWQnaJ9$Ua?dlhNC`7dPA2fAOVg zVnhBkx^Rbi6%3I0Zd#m78Y8@6EbGFiR=3YI=FyZ{SS7AFulUFe{mDo;MIb)n3A1z& zoOfcn5t$bi_gzaEEL*{$9c(0NU{cIN=SUCQ*gjs#>=`C>kV;(YBUtdAD0vf-M zf|EL`LgK%m&h-vD9GTfnd&z@D)q%bat4n{aT5}^=P!dfRG*hd$gg;VD3vzn5D#9)@ z_@o%rho7yUnK+UwCM?Wx$&h>DCoz&{Zr2w{X2h6fcv6?e97tG?BHMdR$e9X*)EpS} zK?S^Q{L`$#dU&3L1XLY5SpIDTEc-ertC@a$CvO;8S0m`dnwG3*51u8s=q(8@B)OX? zzt>z3*<~VD@ZiX1v2fX3t+7r$G0t7A>ju=t9O(@#*HZ-NpJw{olP?&&_9WKyXHhCC;aa=It4f`}I4DgNBN4Ap zc^}rFL=S@$_@ItyZGTeA(v0rM%8n&~*#m!#I&0+^Yw=iaQoq6+0~DmyXi%>wRhYBT z$6uiTV67d@1e<}vWi;5qWXou;#zB-3WBM?j{gqZY1j`YD6r-Rglpf55?PCDG3e8pl zHBy#JkT4!W`Wr46u#a208eI0rEjjX6e`Sf+tX`!BEh^YG@ni75N(Vb+>{EYBZ*PDS zfm<@WkNYZr!Bn_;kJ^h7qL^E-3=&V#-Y)WkHiBsoMBW%TV@6t?ky3mXCal2LpGm5C zMwwX<5SUxYQjHg31r{sZpc?`0a|ZnA0=qkOt2OF}ufcB&fVaLIxXDW@I96BZfJHLI zNmD{3$+yAo%E10*75d@EeNCjiEIg;WI_aH!`vMKy(=NwM(Q$J1ISfdWBK?5Z%-;=f zy1vp1CZ0vJnBU;F+a%I!q}>*Qufh#oDUe^K2qkd*BFn)Y!5myhjJVmSlN0cFio#lb zo?7{0^=>7;-YuR{%xB?msxnDCnoR8xQB4#;{)9UUIS<2-2AJHAXPJtR!n`-=k?OGc zdn(X%q+2-RX~ygbu1|k1RwvJb`~YNqYTO>dq*%&Lio#ZdGflv3*EtK&5VsDGQQfta(J*Y!SpHb^8n<~eWGdT2#Pbp9oC|!w5QDgJ z#JPu=2AOg7|}4$wy=s zl~nPBO5E@yj2@4_pL0&fFypl#Ry9;(vALNp;7<{dn8FmEt;{MRpk09%k3QxmGU6pj=QRM4k?5Y!B4=VnB)^S1dM=nZnqXzWA`J16E zs~wUB$1E2M-VnA*e(r}lzfc#>aR0(oSr^%bJ|^m7R(b*nSONS{5-?fG%`iIf$Ywve zTg5(FAl>jAqs-qaE_E(HB&N}a$H2?#=*4s*v)9Jev$lEWG0K%2QUwf8gY#bVrYMf) z#|2hjk?K~Eb1J6MK7>w^ZH&%GF2Wd_qc2L?qFCAr2ca4>?;&dWaXvWL7EgJdJ9r5S zeN+q~JYG-g+|+xCsLZyJ{1r(WuCK^I-Qvz_I`ro4nTd!ftl&c36)~>sINvW{PD?Cr=Qs$!~Dsgo*y;<(+ z=1_b@zIGn5pg;oT-^Zq92aN|BgQM4zrpcAzMcnQyfIRqDuLfl2fQguR5HpFOU z(@{vnuNL%>{VX=PViAl4z6noMYzs4^b+sq;2v}xEku%8aQHnK=E}9UCZcuY&IjoOFh4awIf` z?1YeC4NqknL(_EQ{}sX=y_`Is7>3M+v>r3uCXp^9Ei~u%VnN@$c6Ec1nEAU3UAe&Y zf|RmrdO_-JRAlV;Lh84~FD)k_U9p|^q}l)#g8)+u8vg{=QV~hWNvQO5s!kpxhmJ?M z$MA?Km{Ea=G^gQ1&l<3nLA?T3IK{$EbkKi9PN52>Hp@HU{XgSA??(sjD;W6HH;VXY zUrKk7OA_DCqUAB*%#QFnO^M+q=#G>Ax|84DTL^|lqsxP(UIUJ3WVaWpTVZe^be}}k z8Yc`Mq{GvuoPsmhQRb$wb=cypE{YikO=iDQhlfblmm|Kiv?KBOkaKhRxDah4(cBC- zmR>+4<^E!Dn~Xz2PGs8nh#sj#SS^yb)j#IXnAp05&V#)pl|%=;s=x~|7GraR=EXD} zZ7G(TFie*jQ6~^H2b-dvk>E+UGgHwvjhTvDg3`6=1TyDaa>{i$ErZlGFofh5DZ*RM z<$h?XBF@Os1)BM^_*Fy>86tPxB znR6QDhNAKsqCyBgpoaJ^ruBa-^?csNysF4rGCL1`t7zk1Jt;@%y1l(b{o{?^=yx*I zuQse-kbg6oHt9EaMU5fO+xcyb^M9jT|C7-z*6kkPN}Bl+d67|n1c8ez8BqfdXTu=o z)O3qh)%o418lvw7OEbY+sfi0uiSrLf$Ko_N2K?bmOoYV&tq`0Q!$+@ZD5$nRP7k07 zMzhe-%3}Yg-_9lzV{K9;V2{*P0CU)s%_;G5mI%0_iwbOn4LkAo$4;XdW;8dkAmQ?F z>5lLx2VCChCMUv9pG4F=9p%nSRjz>_xVbTKR*hBi3lV!=e;@Q7B=+ivw%Dhljuq@T zW3UdJTvs4f%g(-7{D8)NF5DPB8F1trG$$%Vkh%}~8~P({7)AM4YDuKlcJlzFbF2JZ zJu`O>A}zXtw5S^X%gt;Rb7_9xooB^k8|!l`&#RIcAe(8L+9!YId$w5~PVOp%9s1z0 zEXro++q$5`ZGC(S2(1)7jI|}CGZcT04PTBImqwoVxu>7R9R6~+trF4Z7#++ZV6xsm zBbKosFW|%TlIyMgk3^VLJ>I^@Jh2yQ7X339iz^-r?ri<8eh&+0R}>lDWF`Q1uud>a zgRE{yF(ecLSfm1RhcThjAi4B?Q#*O|Vl;-g)t%~jgkDg}Iyl3!7q(TRrz@_R+^X*0 z776*Y=^G`~n&nvyf;MA2im+VsAdc>_j9ZRA{4YqBQg%L##F2{Vqk zGbSdhS)*Y8UvRVSdsDBa_EPhDaY)y)Hu5FQ*6)<~Lo}7Z<|BrLxC0(wMht(k zNEhxUAF_Npuk(qNrHgPrxRtGY9mM_2)_)Op$Y7P56|7|B?Nfm=~_q$r7n~R2pxpt^? znI~~EX`6{$J;-b@E(7a)LJJC2CJ-uU^E3)PKR7?%cV2ynBe&d7Q0x}xNA6*-C9cWF_@Y~p_^v5 z!O=BvGLVIR>MF7{K)P{CY_MV7$4|a>k9I#qV{XAWaL0b}XhayGnyGlGzl>s<0ONV{ zp?12$-Q^^H{897@*)aG^a}CrQW2wdxx z`;H+o^8^ZkHh(Kr&jU+=!!TR*_6&8RQ7nFjez>?S$a{z9U-Ca{TPJ6sLC z)c1>nIFBYI;NW=Wpp)da?5lL!s|uRMj&`lvsR%jH@MlUMsVI%qih`d_fIJe-!Ocd? zv7fkQH1Vhh-kN}a04CAT>-=5%GXd42=qU;}hbB4bUK{MDnY6|Yqg_%j6jhOB0aAeE zN&x#A`01x&@1xYR8j4A~94Vfy-E=hpyTgI6g{;#s7v0N+j49E0TuB^bUd)_v2R@N|2;>GJ&klo3>6dxrUAiRQp>v?dI3ISoFs zjX!b;QuDxW;Ks2}>g^u|)1aN#C;JTICYgibbr}X>8UaW0@nA>w14LS`B<6WJ0cXK* zUgrxo&(p?lVA+E?R8~n1oV`HYaNj6=n%9F^eqe)b+D+*rSq0O(HF(>C?hCs`J(()e zn7o@TRm_FZuE#jT48t*9kA<$jh9Oy$oP&QOIG&6%O@D`7Et@uF=nLt+-i8yzbPhSaO+ng}i4%SRK z;3d@!VxJZl4aM!0pEf=VE2Es|`Sb+57aQbQd2O!lu^U*rB*b}OKRPYtaNBz_eBs)e z+7LfHMADC;WW(KbSI13bGi-)Z6@BSD4Ek;vGMK1w zv&SBp)EXg|S^`=~C0!yZ|#l?e~FPHNvaczhdO5 zNo3!vP<%9a8l=3(>b%dU2WU>MY7H=9?Yg@s)r)Of`gs8^GanUENjeCP{R6eVa9TWw zSm07PoSL^xEXpI#5WOW&hO?zMZUhUw7fMMqRBTUiip9jRDwyzZN zC)HVFi0530zjvcK@G-0P*|f!c_=TvPfC1i8RI+}9IgTW^x1f)-t7*(Yug9=6%4*Wv zOv(Cy#p78VNxT}d87^2MAgJA#UwVd(-d>wK3G~7MhNU?7k_8qf_zV$INVAxp8lnj^ zS!{4n(!Hh^mNzrx{FA{l7D%zy%*TmA;kZf;tZg=wevXt8ERX@Q=t@>?f$ua2C-)B77XfO%6&w*AITj9CJEUSHKo_J&@Q-DX2awluA-r3p;jBmkks}j zyHumZkTMaj#oM%b-R?H8`SprVh4pJk?}AHW_Zht=AlB=oF2-V~pKFVFQt_^TxVTJ&MH3A-;EvS88KU9xJhq)HO>O7Kn zh(23cFg7+GdeBR!hRAYs9uS?(3+XX86BUl*&N+UQtiYmn{oq>PL;m^bRwg@EDPD4~ z5gV~xg2~uxH@=icS*i&N=0uAT7AA3wrD=!&MHhyZ&J)g&vwWl;>)aw!Qk{soSrZndgnB)O~|1cm=fX0!J)>{ zz`PUrv;iM~d80hGKh6c;xC!2Q5_PqXA%plDi#7uSC773YU;3bLVxs zYK;#Ev$pTn_=?wV^hW1HB=9!e*=xqO=t1%3t|(|oIp4-OpZwqGmN}Y;MSJdlAiBl6 z-5zUqFtvO16jB-+z+bM2ziWkOW7^wz8vbrnEhn4vu=CM;)IP*-ncU09;vAIoLh6X9 z2pi1?V03eDn2L&6wi5PuQ9~_6;kA(YSpANR&_AT<0~XJ5kxMvbWA@w6Vj`gI3B1*S zbHh7bqC(==6WpT9Vz-S&H|ee25vC1HPq^{61-eLA_{OiL_N#IIDG8=XgEmAsU8 zkD}2&$odU@mr>aUNu$Il8)bJ59S%c%{*?QI(@#@tPx|%I6I7}DAXuZzZskbH zF?JCY^IP#kfjvWla89>~NCJ&amEoeawX6*?lgWaJ{wv+Dk6^FAVEmwpJ5IGJ)LueJ++X zU4rcU$cdPT^~_|=tB*!;g9(6(ku;eZ4U+3rco{}URIKkFC8hw962ts`Q##1&jXA0ENG1iMM6FVzN_Qwy@_jGeSRw}^XfH`Gnm+Q410zB9Dtz+%9ZX>mlp z-O1l2LF?@1`p;^$AyaDdz9Zr+g6T+O30E?264sHvBEh0 zc#S)?q!d##EK~ox2>c92o%~`qk&&0dCAj7k)J#$&)e${-HW$U|?f)c2g$&T58+_tKLbCU}Vn1Vum?<*(W|zm zGlwG@Np8XsFET4CD_pYem~{9?vfv0y7LIPzM|fn--3zO)F19KQc9nGVfd|4*|9dsP8b27eB5EAwNs kv=7e2s@gwG8`nQei}sYn5?tThlHl6y2Z(=t=i&qZA0*s;g8%>k literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_04c_states.bin.z b/client/hardnested/tables/bitflip_0_04c_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..2bf23856d4222582b682689bf181daf952f7af5c GIT binary patch literal 14808 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 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_051_states.bin.z b/client/hardnested/tables/bitflip_0_051_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..0b78915aad9061a73fac374c3f78ba836b888c8c GIT binary patch literal 18194 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 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_053_states.bin.z b/client/hardnested/tables/bitflip_0_053_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..700af31b9b53a36ccfd36fd5de5d178e5cde313f GIT binary patch literal 9176 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 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_055_states.bin.z b/client/hardnested/tables/bitflip_0_055_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..307828e6489d175e598ab9ef179c78ebb9442fa0 GIT binary patch literal 27783 zcmeFZeRve*y*Hk7dd}nN(Khw?QxpnYOD$EzsE7z58G97dLM0W%2m$7?h!G;J5HLc> z-kzte(ITwKOXMX?C58wgtPny7A-QdNSs;)xgk(uVGRh{IB%5U1oqd~~nfv?u&IYZv zJ?FZf-+7)te%B>)d0n}Zb>HT`zu(W>_kO)?uw!tucWUCJz2E!ncOU1uFbyV4q9P4)b!P`@YEQf1f#aqx0wx%&(aBPKL9rKno~wgH*A$Jq zeh$w;W{_hmG_5q~a0vKRDn~qhlc0zGvlfvR6`Wy?LUdrt7?I|Mp^bU7uQ9(V%CxWM zJ7!6M4n>{q#6dTK9EoaU2G1(a5U8;UiD#$H-T;L$X)j^bXGL!NVo}^4y$!tZE5qr~ zg{6AmV^lY4tHe6k)l{$ax^mCb={hmA%`#nOEUUCNC41O_l6e_QM9CX%f-W*X05i0D zNQ0~v=#dN+R2Z$08nZg=WQ+9?K!0nJX{@4_WU5eDFD*AK-7IM%x9tKryktqBbiGj} zz$8{xmwIRsnQ(zH!URW{tmz`J0n|p*jV;Dv;J3i+m!Rr5u=TR7gY>bPOfWbj36gdh z^+V8&AHWOsJ}6rPqc4H|9<~8m;W`*xZyHr0KzGArm}inknd}w0B^*FQUU`(v3{#af zz!Z=T!E_pt`~9{sr}Kt&2?j}LLOXeqO$I>|?|>}$oTx%J!yBkW?5a#pWb1@=OlDx{ z6%C|Hs$!y#Tw@{KEl0*cT^~J=zaOH$;(^*V0FAQbgQU@Pr$l zQ+NidPD9EC+Ue$sjS9$a0?!Nv$+6Na@B}o0@#SUfP2*z4*SWlIezYc3vEOQwVM2^v zhzQ>No}j8pz9N>a;g=S*fgB(zw8J?vuGk2bSfCC<}iQxq~ULH!;W&t!uGycuEq#*@Krv_hnm zXHJ6))A*fCXEummrZ5h^172bXPWXp}gdf@Vs!HaE#AS}?Alr2MuZk;adeF?nH=348 zL|GX65hNt^LUEvKz_>@Jl4@_UC0PF+=YF;kfFbA(7UBqaO*7vToHzJm`*NI2RJLzM9c zfo_a#F!0X_3G@EQB9~S91eDeqXBTQ0;%GiiF%S}uZy3rOFD_3O}dc*2q1?uvjvv`F_TZjrphQp{aM zl?shK*3tq}{-9pl*_X5pLT3p`P7jFlVnWy%;=uHp-m;&97^2g~=di#Dq7&c1ODv77 z(6KI9yoh7Yf&W)rt+~`YcV@sg>7=8<9$c!Gk zl`U358=VZjX^`Jbt|@_!N=};K@pMKn%wGS}p*Piarrf8xsssnfN?y=)hHlrvaLDY# zP_%g+l=xlqRkGRy$LLW|E7k-fYdn&!+WrKMVf$*9HCy8cnd`FV+zzK+Z85(iNO_8F zpqgcG)W+fN4wGqSXh4h%K+UK8R2aYo#@vvhaxpD_r+Q&`%og7OTcASbmMI2q8@D=c zriWk6N{uAd*2>1n{3ZdG_8I(H)#dfCy;_p3JC`mzx>EyP1P;hWQoTnI?gcohX4!cB zUFAyFs&O(5k^wTYGMA;9HrdsOzc^2rjd7}gOOTy{9!@dJps<}KyV$u@kW*U7eyG~0 z3p2c2+I2Fand~ek^{}XdrT-4-BaY{q*gJ2*+gNLMc)5Q3p#lPJtLzPUS^}4m9-%V@` zCFYgVS@69pBy&Fr)i~xZj1~Lh-_8!0*p!&??p=)$DflZ=<0Y3&F34H?0JlDah?gs2 zYF+OL$lL?(`(0HIYwthY292SNb^B<#{`z!@cDdy=mB^_+ltXPAe23);{ zcZwIL*15bK4-XV$>yzuq+`KRen|!(6wC*I?$g;E85f^oIL8U2}hCzC`BP49oogf)J zhecsE6zlv%7tDqVom>Mi_EQBufE*uOj^Pia|@yWOl7nSH5Q*hw>| zg4qd~X^?gmg5-XXe#y4=!&@eK4Iend2iYkAqs=+}_+)+Y(rA@OmKZFynORNzI<|kG z;rtX@yQx+R*%}EeY3+Vk5+R528)Y&)MWe71yszmwrr_4OMH^bP+YKwt%rv&5iuZ79BcxH4{%qPde{DBwaGEqa9e(^=;;pc1W`JAF zTv0)V209g905>QGr@5IplNvS+*S$ufyagOs{EBg+mSkAPsLn{jrE#v{oFTuwwTHI! zabc$Rb!43S7}$xC!L&|#(_t;Kwn-X_QXU>DGrp5>?yWl-_#?1bfsMQAfX}Mh2??LI zrF`L!rYnA$5|lc?b{BVByjUL}6M$82dR+y_B7G1ZY7Yu5a0hz_|(V$H9J(w)!pH{sdgc(t7fZ}p!9+vM{G8}p8a+_ z;+9^i3Kn$2XT<6*=W!pz$dEb#@|WtJeM-L3N8)esjcM<~Qj zrbD|%sdsIYLHn*Y^( z=9G4`A+jteXcuB0%96K0MvxpcoI?_Blsme_#XmeNKXu4(G(6DiQ6A4I zB~2i?4N+SkDL1{kAac|#MqbVh)~+^WNA3bo_6BxX_{|}+%(j@RmHFp8Wqui#kvaHI zC^N@QLx>S@Mf~D@Fu?uBOB(&cK(GQq4DFW1*j=6s?g3Kp`CN9$bCdHr48&Zk+01Uf zBQ*JzB{8nXpbs!?FWoQ^LOLH#8feAZb(I*<1J^WrC3}_&x%T?(dzwkuFCJktO*d~_ zqMZ5x57ob`n+>Ed+WbQp%L;ae+;U8)+b5EZSZzaTtdX100=74Oq4cAM^DT-6PK^5K z?^&@_?188$kVvbLwGlQmPg_#{q8!M`fxDJN))koGzwvo~1_RI*gv$2-HnDp{@F@g2 zEb7)pb*Ht^?(aIrT_aO&Nx8zM8X>$ zIg_4k@zDkC&??$GsD=>soKuhuR|i52-vtF5g~y+i-+Ud)CC;Z|%@Hp`ub2&qPe`HC znfhcn9O8>Z%7dppw&lMEX5=&SOUEqpx)*N+S7(2kwS0(up%l(TSvNUqT&ja&EOe@n z%PiEiPn+AWWhh}zW6n2O;Hw`C))Fp^}rMD`iVId$BGGxXsYuqs>8NmuK+CR(Qu3RQsxZyPJ6nP_j3}H3 Cw8Dg$tJmjW@go|wFWr6YZ1vfw&2QTpkdi4E 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 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_05d_states.bin.z b/client/hardnested/tables/bitflip_0_05d_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..2830ce68674c4d7a2548ad10fb6bded69528c6f4 GIT binary patch literal 18417 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 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_064_states.bin.z b/client/hardnested/tables/bitflip_0_064_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..05cd17e54ea29edbd4ba0f2244a43a06dd2a8cd2 GIT binary patch literal 16059 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

xvi0N!-Jpa(7`+G;rZwc-(=2E8*&P5d`KO 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 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_071_states.bin.z b/client/hardnested/tables/bitflip_0_071_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..2d2f4a1c2904dad0f2a351b60b88ab5a3686106c GIT binary patch literal 31947 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 T7_vH%HQm|{06+cy>au?TwRJ2K literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_073_states.bin.z b/client/hardnested/tables/bitflip_0_073_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..552cff66cff82a6a15f9ad6b4136e32beee59d3f GIT binary patch literal 15941 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 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_075_states.bin.z b/client/hardnested/tables/bitflip_0_075_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..e37d90e2a4fdcfd8fea0537b6c9859f014e90648 GIT binary patch literal 42790 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≧(3CC?RhWwo+6Tsi4CrGlS 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 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_079_states.bin.z b/client/hardnested/tables/bitflip_0_079_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..b05646ac516c6d2cbbd052571caeea594f2f08e3 GIT binary patch literal 18851 zcmeHveN+_Zz5jact+y}tk~B$8V&dA`#8_gssTyMx$KJG|)h1Ml5<#6bCPgK!}tbjNPu#B=So84hwW@qO4{=Nfh(%$>K z=Xd|R=ln8rjz@51XJ?-0`~AFq+1TOh`qg^x<8L4QyyIBP`};1+ZgMI z_eQUrcwom1qiJ6OM%q0<_UeCm$)z0;&p@YOi9a%;zCw%(Nt37(yt5_t&jed}3xR_Ckqh*m^< zrl;#%u7Aho!wFRK*U^AES4%v?snE4wjV<3y3b_RC+$tA0zHGL+3$m>=Mdb>#&J*C$ znYez5l@iE21i~Kk+8VK2BYlyiEWu}GCD3^hlp@*{(QN@vCYKaJYv47mf~C|1Yv~JZ z^aOo383s4aNz}R4iHjhz3rbsItu!^YpA?^l`c2EVk`u5nTiX|c)K&ERMXmza34ejh z&;~>0ti&C5GFOc25o7dV%(7Wa(US1AtkEp3Y<_v?YKd$kVXD!nJyuFJdx*b1#3^~u zx|!DMNf)|FHdMc8Eja>fT+9hBMti8p=;Z+MLcWWoL(}l-B@_GMfIt2>w$DRiH|aG` z!k12E4cu;R)ae65o5g9my9oB&3)W?9N29A1wx5N$RXS|eTi;<^vdteeo1SM5AB0xI zdob!eJbg_ZY=fN???x@uinTE6{bl+jn0ic4Vtr&Q{1vtl)7%#UKbb;IL*%^}9ne$o za{HjI)2_9XZs-Qn1X%lPNQ2TGnY%`q5amo;pdK%J^!rc?r(uW-&R`8Zj7wzJK*Qf6 zaSze@V989kUf_zn)ca#zx3@tgyXh*tdP?));;smDJLV1HV=oWWjnJ|(X4hS?h%Hdb zIoC`P1U^}Jgv4_&?q^V8gUzlmIUKxB0_Ff0wBHLW;2!8rVr6wwMzy(%X;VUF7*xwF)#7kHAInrb(?uB-8)W^jv z>-93&NoGkfrM7Be8`m|sDhzG1GrLA1g;@&mDUkUVEN|n|U=na`v4Y3C$pOu=G*EI} zF?*p5tW7N8ci>3{J|5y3d5j5@fUjo-FlNiCfa|yiE|5RDU{fiT`7_+x+U@%;N60;3 zGBGir$p^!5Roqbo|7?nJ0;^u5XY7g!3RkBkv0e*H0_hD%CD%1rp^Hpt3&ZIrpdrSq zkP*f`=L08*3~K6L*C7nY;q?=+5AHveqmt&gI0?o>QB2DsN82UMCi6Q(WKTng<}Hc7BNfn{GH&EQLeqfkat=BR>hfd>3! zCC~+rutc^X2m@S?pzVXW2|t|FQ~%mtcxN+v6(sHnm_?Lkc*^`ZoKq-%Sbh~a7OA2Z zw}mq{M_(<2_91 z3GsvJLZ>HE8IDnv^tXvRx3v^_YO%9r(DkD=YzAQc9F3Qv(H!m2dZm}tL7JQ%%YZB< zE)8BnYE!Ug+C9Ynrii(NyMCYh0GxHUFXWQV=*%7GwVHVKNge(&|5+ z(8C0-G6Ibk6fIZi`dEiHpP;GgGW z)xzRJBlsu>IOAV6!p!iMyLeXf2SP4aq|E&>?A3%$zgNxr4m(BnN`nra_a0vcp2C;0 z;+KUXzK%E~bK60(O#jaC8*Mpy=zel1_!qF2+4D5#dYv>1eWyGnr(uPMY

AWy7M z-?T;|r{TBE4Qc~v0{bpVhhI41wsBrK18;$|R~jk>`#EUY+XNXdus_BQ!)Tq4XDOZV z#}Mq$;ab=zX%p5kX*&DKIjK9&T|h&bo4Wm;#z`bNrsGYrW*e0H$uu^~bnv&3B-ca| z%b}#w9v;2r!VsCP$Fp>1pKUy?Jb1kgK8VnRq&YzJXtM2UFv9`a%Vrd$Lv7pa{XrQ$s}9?~XZ zc`RyJ1%9O}Al5}4*NO8tw)=ERn-t)TQ-VuJVRa{8$Kf7zu|+k(6$R#Ga3;@Dc9Kk8 z-gqe&^oZ4Cm*)sIg+C=Kf6iAVO)u9AYAgrFXLoMO)WpGh0wt2rbB9C7aDw}O$h}Ul zc5=s94>{e8kLEb8*UW2TY7ZCF(s6ayHo`^dC5KtM$Hi8_8(2gaDYMpnckY4c?>B4Z z2{3g!6HjUr^ZlCj=WQ^3C}n;Oeyvn{iD`>ME5Kc>TiKYo5IICL9OMVMUh)3t(L5ME zcjgu7W@CdJV8&^3(Jh42$v9lSOi=maF8KC@6D;W@`0v#z`R2#h82uu`xp%|$uqy{% zDpF{dW>GB_`XsELRb+wEXkSvJk}Hs$%m(2VC|4cc0wGq|!OH9T)%t3u5J608z>Q7%`p3wrZT+wQ!l#aag)Woq=7=aH#?ox`aW{>Q^YvhZIiceppZTVqb|f zZS8~nQ}o0+6~B&~t2v(09G4UrBo&OS0N%|?1#%Z~3rU2$iTfLmEk6j-KQs#ug6O_i zBI_5!S;<~8o$dG1p_l(09;1sc#q|?}5e?iC4U5YJ1{*JJgGswcRErCeHI#a*Cn_Y{ zOWGi#91#Jffv$<7`g@zd;J4tsXfwT? z40Fb>3y}uV!rV@c@8FvB4GHZ@103#aiaYxZy)=usV@bM8iwlrj_+^H77{8q1VInp( zEksWquASuO;CfcQ7jpR3e-6eSfrW4&SW>x0&*v*NDypICGE3Xw%sD(r?jD_ZmGbO8 z1x?&lmge%SvlRCZ*bx)*5k^6ONKSJ(T0zkxelD!3(I=`Hbg1sMhrp{I*JzDfRSR>% zLqcaRMAJTMK)|5x2++fEZK^1_%luZ{LHB^CkCxhq#b;iI9aN$HE*ClA6u2< zg%>0mRyn7tgh+M=lxugYq^wBoA&K6C!7&xx;Cz&&H9-ART$<(wSm$cZat=DeDIy^q zTGnHTMra5!FH>oNX4H{NtuzV?^pqbmQjP#2&a^3%R1wVEM;BJ*1SgUA#~<~>PqFxF zbgI(ys1H^R7VD~q0lGc{iQ`}Z&P2F} zcq|2JH7b7vo@Cvm>~x;#2fmFnzZab~f`L*Jw}c*~a#C#6wL#cU3d$DsIZTTI4NV>`@AOK~3#p zj^=(rVWWENtQf1}&7;>vo^p`Wp)EhP4by z1$>DLJ|U6Hfo+84Sv@C7w^FlfsV5K2`CzTGC~p!lc}NxZX&)W{uxNob_BDX9( zqMIgs#FBK~piYJQSE$p%#gNG3Wu>z*NL22?s`dqv$^m=}8Wo}fA}6fxNcbB^}ZDDXJHrdS^uTZe}IbQL;p(tr|ZKalBPeIj615U}TrZ z8SOR^YLCzm30jS3yfLLQR??Ypj){hpFawgZ9sx%J&}{*+DVFZVr(T~57oXA`yC6TF zy?V2twA1d4Lqq{@z9>Kv&? zRK|{iqSx@F=znnlr8xZ^0XR}rT0!&NId9`rGY_l7xx{wR_RpNuCKCw_IRV6yR z=qu<^rpiw?N7D8}i;eKZx=z{!I1q9eoHmFg1aFdg7ArW(O7esD!*n4D}fy`@#DW{>h560Vbbn9LP!B9fEmP4^3$|1c{pBE+5hu~_gq|U)`%RogJ z6iZ?+*Df9%fbRz_yp2)O&uX`PW<1HFqOCH6Ax{m^s=1AhDKj9p1uS4?_5{fEaPzN0 zszMau<6r@D7wisj9+B%ew#*BBJ`~N!X6dUnx=u;_F?|X~clf~Vb?hF3J;7`@u4|cO zf+KN+7WB|bC8(ex)Mr7|^2gu$4qam%M`r#&z z*$QP+MBk@*&%iHrS0jB|C!v^9Cb|1TV`{{l&2n@0Ed!3}E?yKokOS_;>Y$%nHwbCt zpegozHRRg5Vr;!i_67Jgtg1f}xyUYr%&GvTEKw7_7bcq^{v$|Hnf%xdtmLkNLN*p| z$7-B+QxXDc8#ic&w(aB?TK7n}Yio?3R;g=!u9Lp%r66Tmg>q z^fy6V%q+Wgb1q66?Tv)?m1cP$E%a4wNNI!GX5x#GHCO{7d;&6*$ze!Mh}6UOHcMCB z%LuquXwG-QUdfUehdj46$`?Yp&rt*Hgd)An>SM$Uoqr{+cH({u)+#Bux?+x>Yp`17 zQG^J_xb!CIfjev9`bs^LZw_f=v8L^}JX0rrvl3iUV{31(7m%_>*!Cf94C)oikbj*D z`%mMRe-u~CBoZJoE=hApCpycOxBYekUP8MDkLYe z$_^sRz7Sm;f@x!NMa5pi_TAz`e0#()8$MMg-P5>%-J`-`{jMg+bg{u&L|G~ShF4^M zMMDK9@occT9_#clQ5Nql=DLpzQTBi>M!EO5Mhd6S;B;<~Y(vl!L@8TRi3NfUR) zBri1h1Zk55LDI|rZA3%GN9Td-@JodlV&7ieOepr5>)3|=ySEH!;slBQrHJbS#oi3f ze2q*mjAB!F=<7piH{I9!9;N zuWgveHfgaIELzNtf)eU@)}KQvRzcLc44O7_1mMYl)eEP|sPovkd#%i04Li8ure^{H z>c510rrV}Mc8)H~x!&o6+$4~~YK&d^Bj>kBm1+jKV=rSnd@#+GlvS$3n*q_Qygt33 zPl10Lexv7KUR`glh3s80&HgdV50G?9}ZLSHlGl3;Vor*a?-h~j@f?^OR zdZ3+L@NuW>VqB2xfho#Ny&qP{FbxH^4%CFVVQrlY?l++|OrO`ui@=@K4X(TOJ=nC3 z`?Xvd{WRpU=B5=zvnzuQg7$}sZXvA)`c*UP@TS$5q2-icU+~{B9CA&!^b1)U&#_&C zQ|s`;a`!n83enSD54Xa4IAKHjR$k4lrP_Upll9W`tfY-!!;vZ}jm&9gLb>8^x8=^h zsCmo$hMLBWPf=h+GiTLNr0_cq1sw-a$t0zaW9wSuYKvj%%CMu1V`s^1vg-JPxgU*i zkrNO(2+4nAcn@AqKt-27p1!sNve_C9iC;!coU+TD2s7bVBTP!+kV$of3j&7Iah&8k zw9B6QOW@mu{hUvO+2hxV1oSke=aj3&@!?sKrDRn}o1V@@D`ftm`m5`gj{~O~5aGHa zMNfMr?1Ag*2_JJr!uG=uH6NAn(O_F5<6_RXC=%B_aE=@e(jiVUm%Uo5^$bjwhKe`1Lk$J_5h=AnV!@BLDh-b5L^o#SSljW<&t(_M-^;n}3VYkKs>R z7yN5L7z&l>?P8sQ=OpG{8KM95FK7k~Le*2?7e+mD5-ghTD)*3+`c#qZNoUp>Mt{x3 zUfKeK{Ie*t?e;Ts1TO8Os4)>A^Ts?SH6K=9<^w$l%5wL3U z+zZ&b?trNX8;7N(8LY`pOl>fj=APacOY)KxO@!!)JGuR`!YaEZNJCCN_Xn!TgoD^I zMijpQ-5B7)LLiAD7YT9)WUkytFUch;2Z86;)K@R}hL`#1Z4$;7KM0o^zsT+ox0q#FgoWO}O* zw!KRxg2!Dgm>+-)FzW?xhDU0n$#e$q?dZAjF-M)w=eB;8(sBBH)(15%+5%{VnFfUK zDMCkhtZLU3;eE)rY6iUFAQG9gS5#lR3}q+Grrt}`p14fsgONN4O@V^2Yb`8G3g4mH zabFvNJ!lCvi{&gCpT?7#Ff43+hFZSVURp zRXcG9q3ojgKN7|HYNC6X`Ngo(&ASX9-EokK7j*keL)J`~bWGh^6;+% z(AfyJ$Dr5+K`u@4yK~kZ(Mai6Ip8B=j9yk8I(AT-O&5#8WC~Y{T8PA=;)U1&^$%rH z!%kZqgh$=DG!x%|ihE(cOe^%(h$uV;d(XjhD5jEeVgF3kUl`yYfghvu0{L5k&x9si z8p}aKK&lCUi*WasK~1o@$iU3}P;EoBb3z0mgFyoW(Ob@%$u#1u0so(zwcV-YP>z>x zu7_~#bfUF$hD%ZX*)`S7{Sg!T-uKUfz$Kd8NyE|k zWxOvOud+W$uo8N?YVTB6}&v@839^SEA--XIKH)N{wu%eed&+J`r<|g01N2T?$ zr2&wXiO{-4-_XU~rfcq3!t}gR7;YS~vykYZ`lOp*8`4xkkZXofKUvN?6{|t<5mg9C zd6-0YP=z}26Wypqrn~bcbzVhx3S8aOw=}|EdIS+o2ZYx7rEDu0J{&RR+w5%&G1%oF zlOdJNYvVSn6OS=uwGEPO8APLgy9mXmoGsw@z?3{=;0B zq?t_}=gFaewBiKz0Fj9p5wGFhHJQRmZ)i!GYM!3Rw50RUXmC4?*00cQ4~0p*Z;WZr zkiWb7cL%;AjKdeYJ!Oa%^^q|DvYKR2Jd?`3z#fRjIKxZ$Z_WK*v9BxG|Bebayiz87 zb5l>!r#Hl`ybz~n7&v;^FE;&RK>SQKpMk)^4UFFqGRqqMs}~#fKgd^nk2WjF+qzWc zY9}33R%GsjU&4VS51u!8!SJDQhHCXB9Ox739h`2MFYlsKg{>`CfTTnpBohd}V&s_k zIZH9{Pbo~j3I+4w!CvtSxbwB_QdlW-*f5O_9T2m=6s|G^MBrUKc$hP!)zEQd$UOX_ zk)QY3!xl;Or2_ZNgOA406T5LtfF72Py7;5A*bK$k#{-&xtzahHg;Mzws1TC?&p2G& z=4%M*uS3c%@*+zip%f4$S`)cEUuh;aU4)P9qT#30T;kxSep-Sy1B~}@Z|Vz5*`XL+ zulkh)QlHTrBeAO!L(gT~Tp}VZE*7;fMP4+`pJ#tYu8Fo+N@n}wBKsgzJH=96n9njh z06U(w>af#Ll`etnY}`!I`U>M@wWQJ&o`I+@^E%|?xWheOWxFo~=zla^&OJb?e zlA)$Sx-JB)I{&PW>UR8abYtucRa6*cvmkL943`;c8`o zR>SgR&SW=nrlT>E4q`yG0zVL?A!tPGj{Mp*7Ye zzcAvb1Z`8mK#9KdY?jTCw)ic-q*%A2}V1ZBNpr^%?WX- zAo{0dLrWl7Kv#K{Rn1FSYSGI&D{y&s5Y9D3v-a7B>G@FC*=UKJsqNLWCmEjp?Ah~ zZ$c*=Z7hLWwD-=S)@aw$HQdV1dj&_x_NpppslU!T5=|F$h{a0sDK}?dAvEMe=}Y8( z2dq_Xwq-6jF%~Qt;4Fl^-@$uO1|RLAYtDiF9egmg6>yDS4mnX@LWRY7r+?lOc(tme z9gNkl^ua1LNy;U|vddlqFYAH^&*3uM3i(00wpM8FBZtAs=oB^bu3nI#lQPW_h4v^Z z(#ZWI3RE5E+6{?t*Bp?_STp$n%nc^K`ho~A4I}D$*;S0(kR)zqV^Mg|iA7F^919Ge zO35T$?4Ho{O0;qK>rTi=Yo? zPGx(+s?7q-o@D~=Cp^WE14uP_uL_8a;7phf2l8T7@IVE+N&&ii5Y~9K7UVt>tdXRB zkR6Kpe}U!0Y1QkQlPyyWmW6oZ-;bq&iz;J@kDU9lbTL;qn`HE7;yW8TMA{u+0)6q-!AeNgNc*&R2(GXaX( zd<99G>23@7v>6!cGeN!PLf8v3MHVZjp=f)vWWUuY=T6FYlc%$esFouC{Dws}=))R- zrbs0pZrY_9DVrOP0xAuIa43yLV8Rhb^qSeR4f=+i9}g#kdJRh=0Kq^>hi50kRqHw7 zxPNi)rTCiVnwd04GrDV#%xDsK;yeNBL+5d(I!I&Pq% zi(#zqBgaqXF-%>WO{oo}r1u}X5j-{I2!Rn;Qm_z=y#6-e?t}^iQ)5jiwqtRDtLlvi z7{XV?|6jR_kIJ;(&2gf0c@N7nq74qeYf4mRYm2IAn3TEJ_XidN%BT2f_$eJDjHooh&PFS$46G{p0E*X z3`so$u;e``^116Lo}*V|Y*lj_>v<&~xIRs8gBeU`g+GSW7_sWkm`if|!Y`MB+lG9{ zTdiN?Ji;;fwx8Ue1zAZdvB$Uv2JjxZ+GJq>re{A`q8q_rGOmYy2wnfKyfP%n!blos zFC^Eq(oAv>au9QpFP5;fYW62YO-Q0G>=Bd>JimuLl|Liu;%)FNo^%L$=5WCrB-_?Q{Fd`E?mD9x zL%{C&Y`+SB6Jco@E9vB9yVnC5 zgN)3BO^V z%iI|xmF!4ldoTFPU@EJm)6@@2sJ?gVMEv_uxoOuRcLu#SSXLM_B1fFmrkp-t33_ zyWqK}pe;;(*aFcOv%vgX`7pgAk_$J?fhu(}R;a@Tl1;GmHV*j=pW-Gtl$1X7a0%4ZRORh4tsP z|FsGR_7vXP!Y73KNRSQ!12!z}3u@_8&cBjh)>Cq1I6AHl}2aKou# zVwd=Lz@M?rNM@5hbEVU>}?M2sb;skZ?<`pNil~CuogXvSH=w|3Gc~5d}xFx z(8^YzkFc+x0_c*C&0vb9Cg026_-ZUW7OK{j|CGxn%^{%}lb^>}3M!x<#32CB-8AHn z`5$~`I2qJn#*f$yo}Q%gCY-8ZVjS2IO%G2Yr^;jv@vME(87v1RYjIxL0I z8pK(ZT-)`mi39LN0pRQkw2=)b@RG?)43GG3eZc2;Y5b5;iQa){8aO*oz8aU@c8&KU zAs=Q=*!Mp-6d?f>p>A?Z(6-md^oIr@34O3i3@jgvaUs;Q_ZR~JUs9*}OVGr|Z6GM- zAr1@$>JzN#m^wWV-J~1eQW*!m4%qf1a7JJJTusauS11|6tg9gSo6aq&iJ8k#z+Tfu zG))P5ETpAPZrOWWE1%sS(_I4InwnmLYN-!^(DzNR~aPb0}fOH z*N85MR}oOGe#r-mWpZJF$TY-Hm)&K`SJRKI4I1b^e8%0&CVPc7k!dRCKsysejXPJV z(Xa-O;V$zEXaj*cL!UnmTO3O{5^cFzP+o%Z$6;+5IPy`U<;H<)CpcE%E*t@_sOz}t zcYj0BXL%p;u7Oia49L_FAvYj@8P*`9ByIfAIJbd)Cd&1jt6>o&EqnUy^>72mnoR#gr*_L{A499| zK<;v{mpU%cAXJ|rA1ky)jcX@2-0`e={`JTOs2|E9tDIzn!B-Sk=R5iB(oI<>N!4@9sUk4zFQA}}8l3jb z2&W|jQNBMWEN;a3`#im!HgbcOzF_C>A^#pD{Nl6avdN3Uc^lXZA$xW(L|^GcFci5I zly$aIcDW-`IR0~JJrCJl;a(cUEyFt3gT09CgcnKuF-XHu^D!jm7*QG-O1rGU!2mzp z6zIDF+F6Zpn0Oes3EM(DG~y6k8Say&7>_A}c-@w#3j6E8Uek95oG&7)PI*P^1ovCE z?RP`m0C^6^pJ2l@m}*qP^s+M_9{vDRb>Jc0jXZJ}0|r0YB|bo>okoTR5^>)%l@SI(mVz0451TS<_c*lC#k zuSerl5u51G!x+E96vS;m2XhTK&=GWi-c53w;DBzK1FHs%gnl@NY3=}r-sOUzr44>8 zYH_hI4Y+ngr8I8GP2g0w1JZKVy7h_1NX{Q5^?N_vMSiar#4P#TxpiKLcFY6%)r1IF z)|IukhPfQ|D*A32kz)@RkW;#|NQ`U57 z#&TP~stsZ2XY4E-BZ0~;mjgOmn8QST>b4c?>(apMEa@r9Ofp#2GK_odR}9j};)-G$zT`tM ziS!FCP7+>xNL11X;CMLYVQ?m>Rbvrl@iR3JXI283m^MG!WFL=p+VI=+#zAQ&lw%SJ zgA5xmk2E~$>1x|NCBkhxV611Cf;FHS^42p!CdvJR113315sFMru!DT-@8;hyN>Ynr z-&)*EDE5)NRq@aY(?yxQ_VonZ*AsAGPr!XW0r&L;9DF?i_w@wa|F08px`2cK0rG7T zUOmCoM*C)ln3-G{JE_O|+7(D2an^cnIcuYDIBPojPtID}YW+a4j4XotLL7zc>*}}n zaup|8SVoS12!F8!PETg~;m|~!#Grm99OFx4r0}&GzgC|N&tyVJkEPsJ-su=n#}>io z+RpEy;q{hI+Sr>Os7NP~7f_>$e;u#L{y58?4HJK-T-HVJrg5cpsFnMm-8ujCJ@s7n*_oj$NP3 zRv2>^I4L}Q-eBD?Fe!FJrkV@(9qVeg@s%E8>K0}5gvyzpKMgD5;cO9##}w}SR^XHFf1t)R&F|0&p%t_ zk8gjI*Ryews*5bZ(MLeh5;KneYTb@L9Ap~u?erM_7J?O}+66yMUIN#A_A@bLwMH_i zR}nOHiSXUGN}wM#Z}36Q6DWn(grKAsI*$YEa`wMB_kW}~ zzMkRz-!a2$?1C+K_ip3pxW9_zeJunQJ5PkLd5cO|pPb3Hr-e@j1YeaYNBPjk7klgeym`?M~Q0aCB8Pa=2@Z zK(_Iskz>p8Q+tUsLx;!roW=!u)2-g3*;N5&XHVapojom+x}`X}l42Sn*Ns7zTB6|F Pp?EbL#uWYXKd$~Ccd>A; literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_07b_states.bin.z b/client/hardnested/tables/bitflip_0_07b_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..184354a449c1f7bb26097641d1388fe2a36b0685 GIT binary patch literal 9229 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≶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 Pb^ZtY;oGhDQ=$J2l5!q; literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_081_states.bin.z b/client/hardnested/tables/bitflip_0_081_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..b8f66386b94b3d5f65a1c46a7b3d84a0fe4d0195 GIT binary patch literal 28820 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 z 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

)Kt!YMK8(>Qt%IhMEO%i(kxLYAAmzvEd_+rj-k zU-m^aT$l!qGu-IqkpDmaOY`n;tUWkr2Y!nJ%FQZ%+d~0(-3M!TriU|QQREu_x+|Nk zppN!1Th_~LXdyqHO*{J05KtMDtor!z*dI$*Q?0eRPZJ6vqdI4OR(p;zTGO($+^OyX zBEpf7CU&{gFQeNu_xv>e@#IEONc5}AuQxW_o*)p_rMdkAJesd2`{n2c-sUEz-?R@Aj4?JaE4l4eZc|_xfs4Hx_1@A>lxnOv2fqB~a5Csbk(sDNK^ z7HS+LkZ~SHaEa^^m_-cmy-iyHevPP-7(h|d*lvAo0^X!XfaV~1Xe7psT4c>pYwB zJgswacx@vb7Zrj239~CgEXJvC*BL+cuG)Uc)V*v`%=Nq~4IOeoxQrSzJI-IEY$hqv zb?mP=3TK4x;Y1Art|~vTVm*!ku?7}qV-uA$GB4)ES)?P)n5E=hKQb+bmvlRq3-LC@ zhgX;jxJA!7tkHEaB?y}puJoUNNW0U~PP&pBX_QfT9HeJPMckB}9mGZ9QqW{<@bCI9 zN+9uEKYJ(KnFG0T%akU*`A7Q3I2c&4&)+0vpV#U*M;gW9{gt4%E?-0h;&ibkBd-yc3#L zwpULbItI@k<$m!iXlq9gbS&^w{wDnBuXj;)A30P5PC{1}BVF~M7)OUS)AjV|J(?Ip ztHFq__+b~F1P+Z4q3p01b{g}?YsC*;*n5Wln@8%#El|d8Zqw?6Jy~} zkLY#wQdXTGE3Rq7ROOFCC=i!Gzh7@!lL{ge=;rzS5Hu)K-`2@MtKUw+TtS{a6(-zGqr-b2yGI-Z~WX)VM0%XXUa@g=nABthNW09 z3XwNC!TfpNvgh8Wwf520Y?bOWgup64Ge;P35Z_T0UBHTU&;tk{*sqm!!ZjD509-uu) z?t-lfF=G9*!2Cq7^j>SWfW^!%%P&_EOKJILIPsyI<^; z?W-k%lS<59+0zXB!*g*O#9=ANdT<*`XaX=)e4StO2zC>)VXd=4u$RNE<1(sZ2qFLNXb%k4m|1hxIpv)y4 z5Z&fT=+un5H^w$3co*)p1ulpioLXC{mNX5H+4bGPG1~6PAx`H5dL0Iuu{KES7p@HI z=~r-}#z~UBSc42Swh5TyOt`WJj^I_D2d}$#LygMyL&a{|%t#Cqa3LSeK0crrN6Cp? z$a+u1ln|>HW3XC8J8kQetX4F%lExicUn?}WE8Jl~%F_RVhCydXhZw8ZIEA!}@VXD< zgP3E7WWO+^b~vsg5kN%zFuDuK5dm6<| zSxSQ_^fLXT5!*t7Aq_DXF^CrvA>-;&BRhNisVVv$+K4s#Z zcHUjz6BL&y+>)(sw!S6m#tyew<1XuebX6nBO+ogB=TD%fGv6gk_o;&2yVTl4ipIb; zjx{{Q`K43@2bGf0&}Rylo6M8HVxxpTlfD)!JhImVcllfhApiYMC9^0REkXhPplqWh z$G^8?NF5(jEP~N8&uUVqCS9&-iAU~zHN?W51BoiG`+jfU$IlnosO|rVUeb8VbH4fae zM%%@{;~8uw%{!)D*Mg!tL=#G4;YX^~3P8mKx{{~TPy z+0qyMdeaSWg(_C4wwH9?p`iIN9C3`q8N0M(oCpWSWw>bG!rOJx`FNeK-Z=s7g|Ka& zye7~khNYJYBnX^up;BfS-OKnMuUyll8v53-GFC#OfEA4+F=&bQnJs8cnes-=x|QJa zwBE2&!OO{%5HufLnnds%j~QAXmri`7nU--VsvRB$<3TY4!B5|6#QYq%70AsR+ZN#Q z0DymhHDq~0(^G?EX<$y&ZZPJ-+A%-8jC&8e=k_$nkbMq@d?X4rHY|zwcHA`hDH!gg z!Wg&_z-`h03{o3)QQPccCF|&2tIUL-^LOU?&6c;A%KBbj3~iynbXfNOiTsx=CtTd= zk|d#E0OJLIG_>EtRPW6*s<(wod32;xDIyuvKFpv3!*2#%%rCsv(~v*VV^vYGc2#q$ z=#}@-Bf@wZLMe23VpVEWvak=!wF;~e`-O2Chq*86_8tjA7K-7wJT!W?dg}V-QEjnG zs>u75qSwA*tEE#B02i0uzo7`mGqy<~k8 zYGkf-L~yvzs@>v)v{FyafSl&z$WS>?s0C7MC(OM2YdX^?k8i#6q-sK^5 z%S9@d&`ylYQzD71S77XpF{|^M$Iz^!#|K}ATHW$KP0FM9_CjSDKF;m1z|w*Mf&Gw8 zr65A8i&v8Ddm-s5RU*{&srpW_hW+iJ8TpxRd^79XIE?;73v1fgmBSZ#5n<0k*Xc>_ z90+#Sw6UIzxt%d~A@O%@B7xQ|u*!}J@t&zD!&jc?f^uyxCt{!WZMNqUk5qxyFXe## zVyIbz`E96n;-ay@!;jJ>VaGGK1)VEG0v_OiFsuEqc7II|Np``3u;w{u(Kng8f}V(r z8N}Gba_5uZkUP=Xg$+I88xlm_`j~A0WK7o=eLo?FWCGF--FMxfN=vLn(bR*~&Oc7%xX-1(vEuH1g3O75IY&ReWv=@Y6H)?fc_y8WLylx1p@Er{L;B zlWDtrlMcE%EBaJjb8Ti&vq`5X#X91lt+9bSR%1?^8|Y?z&N}soibcVX(GF=@PMS8* zPB4FXyQ#a~)ZK3CevnOF+hkc&@WOaFP-H9>(^it?pDWH$KASmhvZkki4r>0H+@#P- zJP#>k$($)$@eG1~;>jb=w5qn^$5H<2TCR~kD-PMv<+%nch*^<7IIo&hY6-97fd}Fn z=sqi#`FyOs}@{dE`wzdI+8a4ID}A5sN2aM%`rOa1)Pm|G1pE*C^L*Jh0%JM^nS zy+0>b8i-ttePo-@hF6@+f{`-y9SDnE@PhM3z?2zrQ@f7f_ z*hFttJR4K?;b>W0X3c5=^9O(t`xjKcn=Es}6Q*`Nj;653_2eaZ`1A>Tg=0>Du81#7 zlul_u(x-?SlpV8V%G6^Z@V3!0)YxrYL+c?bX9|qgcYHt*rJK~FAGTFSzxHfaJa>Vg z)Hl@?gpf+Qwz+LQ!Z+#M=HnWfy4QFu6nr@U#tk_kF>Hck&m+ddUNOIwS2R))k6wW0 zcBnUMuSO|?qfZeyr0i@aMV|W{q7l}d!vxfcU&CDSd}xf*7&B*ndol_F8a0L?+$tr9q@BMWftw@ z0m26SX5VxNN+xt;tQhTaFChcGaiP&^!j%B~&z=8f=S@@+m(%`BWSEgdfO=;loreym z#%^@}UZ?964E{34QxQ%RkKr`&lg%@ab$E`59x5Rr#1uVHY_Y6hOwl4=*GAqxjHgfR zt&puwR7}T~`YZJ>IXP7~KZqg_j@;Q1WMPn~8Q9Si@==*POrp2bvNO+G4TI}*fYCx{ zeBSA;;R7fBs2V^1A8<5z*Zge2myN=~oLRrZVa$NaFD^UgeJx#&u!#u#!X~r~o6yhr z*5V73LGmZvxB=?FO9P6I8JrrfsD{imjo(5x?V`1l^f8Ugrys6TY`YLof@8ys1#!^& z9G$4;J0ZOUtJ=_Q`JWpLd<@&PuoZ1KC^HcMiu=19urG*^Y<$BWeb88MWv%FUL;Df3pMs*bn8A5TR^e_oM#;O_uU* literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_083_states.bin.z b/client/hardnested/tables/bitflip_0_083_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..81c4c59f9a1113bc54f27c95652cf791a7f0658c GIT binary patch literal 15336 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 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_085_states.bin.z b/client/hardnested/tables/bitflip_0_085_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..e642accdf9f1a613ba375691cca2c3f9ed9ffa80 GIT binary patch literal 19596 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 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_087_states.bin.z b/client/hardnested/tables/bitflip_0_087_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..1a844e453fc1180d56773314918c336ba2e83408 GIT binary patch literal 9176 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 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_089_states.bin.z b/client/hardnested/tables/bitflip_0_089_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..d02b3c777a1ff3dbcad6fdfba1ba2ba5fb2b172d GIT binary patch literal 18253 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 literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_08b_states.bin.z b/client/hardnested/tables/bitflip_0_08b_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..9c546f94fc3137a76851670f94e39eea61efdc72 GIT binary patch literal 9416 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 Wm@V)=E|r@KZ+7Xic`yB<_rCz82jY?d literal 0 HcmV?d00001 diff --git a/client/hardnested/tables/bitflip_0_08f_states.bin.z b/client/hardnested/tables/bitflip_0_08f_states.bin.z new file mode 100644 index 0000000000000000000000000000000000000000..f5b38b5843d6b093109d6ab223f2a568313037d3 GIT binary patch literal 5875 zcmcIoYgANMmcBF@nXGhMld%&rQ7qF=51rW4l`PvJLAYcxX=c)iWtMG7+QcGF(zKe0 z5w(;@oyyA0n8YYLEE^LEm(|V$e3phb#PB#|A|Qg451>Sa>+mX|pvvM_)vfzFd(N#Y zn!Hv|=Es~`bsy)k?>^`3{q67U9oMJ&U*EJib?%&7jW4{EZ}=qTXnf!|bM9Mo{*LVz z9y;=qCZ|xBHucf^lKoFf7!-kHQCb&!`J9Oa!e#th_xQ7IXv9Lw++S?)8{OAAAdisVnk2y^E9q2+>c7wNgY9Bo1cT}2Az$k1GU`#C<$*X|l zFz&%>2M(Gw-#gDYkaZ3R@I@r8>$J3GJB%#%op|}=7)r|H2;c7+Np_%M!;XqGEIQzZ z%kniZ>mWj5alfBre*pZ&AO1H}!YT!%G2^dF^2fk}ep(r^o34~xlh$wE#*?ZnIVL97y}74ecu(1>Ld@IH7| zWGm3LY?Rp$gg|!mvKkV==0KvBA7mx-6x@KnfoVtEUk>-c6&t&Kdqcg*cEba8Q1&QT zIZIsCpyaqgc-e3emU_^1zQ&&=8`Wbl9~jvBI?_ueZP%}bveR)nn)yZ3Byc6T+Y`qyp)uGx293LMk%s;VA3*|hsTzie z#YbE{g0U4{30uJo7R_{wBm;J0+43C8a$AGY=mCbweo6MDA&aVi%`S7{xZW;gX5r0sQXSc?SLZ;-2dYA9Z$2`r=Fg34 z#T16vtCb1Wa98Ag3|?t7?7I%Vbee9Xhoy3)Y`XCwG?)Sdw}GCjGHNmtg!}I^owEVH-Fl^U6JNOJEPeoHMtFmIDZ8-u$jVr zPy#nJw=AIphdHu z2-Na&DIoETf)vEK=lR#d37~+RLiQlWzEk6mDNl+Pj~mwPZ35{%1=>=7 z?+B!Qe@Ppv6Sf7NT@%WK%=0j>_bvtUcvG;D&M;kOlVs!@^sNKq6ds2-CNK`4f~y|3 z1=U@C?&pMp4`f5fQ94_n;2`A(;Ij0RhJ5muwjj19Ozu&Z+bv0sKtpZTpn>cS2K<)4 zCzo9*C~AkqWNTKbS#Kt%N&G?Bk0|U@um485RgleDN2T9I8)WuF-9a{!xJ=DJG0_}x zcfIZ5GKI~Ee+3b|H*V;0Vy!G?&pL}M&Ti~{eXr@-|ELD>^_z)V5(+*PIc84x=s~6rj2GD+_K?5;S&nJ$Jh(>C{OeSQ3!$J-5{1j}(kmuX&=hDasUsOd7 zQ~WH5xKs^YdcAB$;9g#!JUK3|<+>or!7A408RoMo_$?{%yHJUe8v)L9-vrK5H;hhE z+;m29GY>bN{y~oBf^wuGDmaMT79GdB5OWZE@UT%z(G8N88hFQ86;j23U>rL@w|;BUa=Tzu??p>h9xR>Oxmm`MH#;$JSD7PPJ{2F?&>DCjjqq|lb;C%9OYm1; zu@SXXa16u7u6Z0hnl^gDcf<`n@1j8PA|L5q1G|k6(?3&zjsr7_hG`gqC^D|1?wIM2 zd|v5_dg#L$6>q7FV=ie=)y&!zn}q*;wd7nF8^mbbCOYBfUd19p1q^qG4H@v3#P8UT zD00q1dgeASZpRcUUzvh)w99#Rf;}HqTxJJ%E#y$tv`V-=)E+Dk+J>TWBck-zFFDB9 zbg0Yfif-l@TuKJLOAR~_xyQP9j@atdWHjfwbNTN@dwyMx{+?-|vO2Bh?P!Z?1*LV~ zY^U2t`b6B1PI8c)Dvvwkn6Y}u(xL7WTn0}$Vwf!o+wX%u!$5lS?jG9P@Bg|lI~^fn-u&$vZz4|Pp(l@8e!icOGyuO(;vl6x*>}i z$&iG1D#!^-$sV{L_&!JeYw^!R5JoIuq>5|2luez~E*R-P22B)`_rw-_f(F%^bV%3K zghFa7CL7%cyJp%r?Ngjv+71dhHL4mj)(1})Ev%rNK`&KMmc(XmfVEV7#5^X@sD%d5 z8`N}T1OEKYUcJD5jav*K4q=5)shsU>H(zXmDN>-R_`+o~noHS>#_AqvC#A%qo5j8x zFm40qK;jTPG zZGv{;