summaryrefslogtreecommitdiff
path: root/cesar
diff options
context:
space:
mode:
authorJerome Jutteau2010-10-11 09:53:03 +0200
committerjutteau2010-12-09 16:56:51 +0100
commit16fe294f361f32ffb515f4239315773f7941546a (patch)
tree3f8a0dd2763dea66a11555ff15600f6fd600dfe0 /cesar
parentdfc0f32855b3d93d196a74731540d0106da186f6 (diff)
cesar/ce/rx/bl: compute new tone map using optimisation table, closes #1933
Diffstat (limited to 'cesar')
-rw-r--r--cesar/ce/rx/bitloading/inc/bitloading.h50
-rw-r--r--cesar/ce/rx/bitloading/src/bitloading.c119
-rw-r--r--cesar/ce/rx/bitloading/test/common-define.mk8
-rw-r--r--cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_1_tone_map_input.data1536
-rw-r--r--cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_2_opti_table.data917
-rw-r--r--cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_3_ber_input.data15
-rw-r--r--cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_4_cursor_input.data1
-rw-r--r--cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_OUT_1_tone_map_output.data1536
-rw-r--r--cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_OUT_2_cursor_output.data1
-rw-r--r--cesar/ce/rx/bitloading/test/src/test_bl.c461
10 files changed, 4643 insertions, 1 deletions
diff --git a/cesar/ce/rx/bitloading/inc/bitloading.h b/cesar/ce/rx/bitloading/inc/bitloading.h
index c5fcd2afa0..3c87e63841 100644
--- a/cesar/ce/rx/bitloading/inc/bitloading.h
+++ b/cesar/ce/rx/bitloading/inc/bitloading.h
@@ -221,6 +221,56 @@ ce_rx_bl_tone_map_update_count (ce_rx_bl_tone_map_update_actions_t action,
u64 ber_target,
u64 means[CE_RX_BL_BER_SLIDING_MEAN_NB]);
+/**
+ * This corresponds to the output status of
+ * ce_rx_bl_tone_map_update_compute_new_tonemap.
+ * \see ce_rx_bl_tone_map_update_compute_new_tonemap.
+ */
+typedef enum ce_rx_bl_tone_map_update_status_t
+{
+ /** Successfully updated tone map. */
+ CE_RX_BL_TONE_MAP_UPDATE_STATUS_OK,
+ /** No action to perform, it's ok. */
+ CE_RX_BL_TONE_MAP_UPDATE_STATUS_NOTHING,
+ /** Update ok but minimal limit of optimisation table reached. */
+ CE_RX_BL_TONE_MAP_UPDATE_STATUS_OUT_OF_RANGE_MIN,
+ /** Update ok but maximal limit of optimisation table reached. */
+ CE_RX_BL_TONE_MAP_UPDATE_STATUS_OUT_OF_RANGE_MAX,
+ /** Update ok but we stop at first maximum carriage. */
+ CE_RX_BL_TONE_MAP_UPDATE_STATUS_MAX_CARRIAGE,
+ /** Update ok but we stop at first minimum carriage. */
+ CE_RX_BL_TONE_MAP_UPDATE_STATUS_MIN_CARRIAGE,
+ /** Error, no update done. */
+ CE_RX_BL_TONE_MAP_UPDATE_STATUS_ERROR,
+ /** Tone map update status count. */
+ CE_RX_BL_TONE_MAP_UPDATE_STATUS_NB
+} ce_rx_bl_tone_map_update_status_t;
+
+/**
+ * Create a new tone map based on old one with some adjustments
+ * done using the optimisation table. The new tone map is copied
+ * in new_tonemap depending of the return value. Except if the ERROR status
+ * occurs, the number of shift done in the optimisation table is updated.
+ * \see ce_rx_bl_tone_map_update_status_t).
+ * \param ber_target ber target.
+ * \param means ber sliding means.
+ * \param opti optimisation table (index table).
+ * \param opti_cursor position of the cursor in the optimisation table.
+ * \param tm tone map to update (which stay unedited and is copied to
+ * new_tonemap in case of successful update).
+ * \param tone_en tone enabled count (active but not 0).
+ * \param new_tonemap new tone map pointer if return status is OK.
+ * \return operation status (see ce_rx_bl_tone_map_update_status_t).
+ */
+ce_rx_bl_tone_map_update_status_t
+ce_rx_bl_tone_map_update_compute_new_tonemap (u64 ber_target,
+ u64 means[CE_RX_BL_BER_SLIDING_MEAN_NB],
+ u16 *opti,
+ uint *opti_cursor,
+ tonemap_t *tm,
+ uint tone_en,
+ tonemap_t **new_tonemap);
+
END_DECLS
#endif /* ce_rx_bitloading_inc_bitloading_h */
diff --git a/cesar/ce/rx/bitloading/src/bitloading.c b/cesar/ce/rx/bitloading/src/bitloading.c
index 683f5936a7..14708ebd5e 100644
--- a/cesar/ce/rx/bitloading/src/bitloading.c
+++ b/cesar/ce/rx/bitloading/src/bitloading.c
@@ -14,6 +14,7 @@
#include "ce_rx_bl_fsm_defs.h"
#include "ce/rx/bitloading/inc/ber.h"
#include "ce/rx/bitloading/inc/bitloading.h"
+#include "mac/common/tonemap.h"
#define LIB_HEAPSORT_USER_TYPE ce_rx_bl_ber_impact_t
#define LIB_HEAPSORT_USER_COMP_LESSER ce_rx_bl_ber_impact_compare
@@ -397,3 +398,121 @@ ce_rx_bl_tone_map_update_count (ce_rx_bl_tone_map_update_actions_t action,
/* Return value must be <= PHY_CARRIER_NB (max shift value). */
return (nb > PHY_CARRIER_NB ? PHY_CARRIER_NB : nb);
}
+
+ce_rx_bl_tone_map_update_status_t
+ce_rx_bl_tone_map_update_compute_new_tonemap (u64 ber_target,
+ u64 means
+ [CE_RX_BL_BER_SLIDING_MEAN_NB],
+ u16 *opti,
+ uint *opti_cursor,
+ tonemap_t *tm, uint tone_en,
+ tonemap_t **new_tonemap)
+{
+ /* New generated tone map. */
+ tonemap_t *new_tm = NULL;
+ uint new_opti_cursor = 0;
+ /* Number of tones to shift in the optimisation table. */
+ u16 shift_count = 0;
+ uint cpt = 0;
+ ce_rx_bl_tone_map_update_actions_t action = CE_RX_BL_TONE_MAP_UPDATE_NONE;
+ u32 *tone_word = NULL;
+ s8 mod = -1;
+ /* Output. */
+ ce_rx_bl_tone_map_update_status_t out = CE_RX_BL_TONE_MAP_UPDATE_STATUS_OK;
+
+ /* Check parameters. */
+ dbg_assert (opti);
+ dbg_assert (opti_cursor);
+ dbg_assert (tm);
+ dbg_assert (new_tonemap);
+
+ /* Compute action and shift count. */
+ action = ce_rx_bl_tone_map_update_action (ber_target, means);
+ shift_count = ce_rx_bl_tone_map_update_count (action, ber_target, means);
+
+ /* Check optimisation table limits and action result. */
+ switch (action)
+ {
+ case CE_RX_BL_TONE_MAP_UPDATE_NONE:
+ return CE_RX_BL_TONE_MAP_UPDATE_STATUS_NOTHING;
+ break;
+ case CE_RX_BL_TONE_MAP_UPDATE_MINUS:
+ if (*opti_cursor == 0)
+ return CE_RX_BL_TONE_MAP_UPDATE_STATUS_OUT_OF_RANGE_MIN;
+ if ((int) (*opti_cursor - shift_count) < 0)
+ {
+ out = CE_RX_BL_TONE_MAP_UPDATE_STATUS_OUT_OF_RANGE_MIN;
+ new_opti_cursor = 0;
+ }
+ else
+ new_opti_cursor = *opti_cursor - shift_count;
+ break;
+ case CE_RX_BL_TONE_MAP_UPDATE_PLUS:
+ if (*opti_cursor >= tone_en)
+ return CE_RX_BL_TONE_MAP_UPDATE_STATUS_OUT_OF_RANGE_MAX;
+ if (*opti_cursor + shift_count >= tone_en)
+ {
+ out = CE_RX_BL_TONE_MAP_UPDATE_STATUS_OUT_OF_RANGE_MAX;
+ new_opti_cursor = tone_en - 1;
+ }
+ else
+ new_opti_cursor = *opti_cursor + shift_count;
+ break;
+ default:
+ dbg_assert (action < CE_RX_BL_TONE_MAP_UPDATE_NB);
+ break;
+ }
+
+ /* Create a new tone map. */
+ new_tm = tonemap_alloc ();
+ dbg_assert (new_tm);
+
+ /* Copy current tone map to new tone map. */
+ tonemap_copy (new_tm, tm);
+
+ /*
+ * For each adjusted tones from the optimisation table,
+ * update new tone map.
+ */
+ if (action == CE_RX_BL_TONE_MAP_UPDATE_MINUS)
+ for (cpt = new_opti_cursor;
+ cpt < *opti_cursor;
+ cpt++)
+ {
+ tone_word = NULL;
+ mod = tonemap_get_tone (new_tm, opti[cpt], &tone_word);
+ dbg_assert (tone_word);
+
+ /* Decrease tone. */
+ dbg_check (tonemap_decrease_tone (new_tm, opti[cpt]));
+
+ /* Update bits per symbols. */
+ new_tm->bits_per_symbol -= CE_BIT_PER_MOD[mod];
+ new_tm->bits_per_symbol += CE_BIT_PER_MOD[mod - 1];
+ }
+ if (action == CE_RX_BL_TONE_MAP_UPDATE_PLUS)
+ /* We must start to boost at the cursor position and stop before new
+ * cursor position. */
+ for (cpt = *opti_cursor;
+ cpt != new_opti_cursor;
+ cpt++)
+ {
+ tone_word = NULL;
+ mod = tonemap_get_tone (new_tm, opti[cpt], &tone_word);
+ dbg_assert (tone_word);
+ /* Increase tone. */
+ if (!tonemap_increase_tone (new_tm, opti[cpt]))
+ {
+ out = CE_RX_BL_TONE_MAP_UPDATE_STATUS_MAX_CARRIAGE;
+ break;
+ }
+
+ /* Update bits per symbols. */
+ new_tm->bits_per_symbol -= CE_BIT_PER_MOD[mod];
+ new_tm->bits_per_symbol += CE_BIT_PER_MOD[mod + 1];
+ }
+
+ *new_tonemap = new_tm;
+ *opti_cursor = new_opti_cursor;
+ return out;
+}
diff --git a/cesar/ce/rx/bitloading/test/common-define.mk b/cesar/ce/rx/bitloading/test/common-define.mk
index 8edeabc873..0e8dd22ced 100644
--- a/cesar/ce/rx/bitloading/test/common-define.mk
+++ b/cesar/ce/rx/bitloading/test/common-define.mk
@@ -23,11 +23,17 @@ bl_test_vectors_tns = nsr_on_sound.data mean_on_sound_nsr.data \
tonemap_initial_3db_nsr_margin_0_00_ber_margin.data \
tonemap_initial_3db_nsr_margin_0_01_ber_margin.data \
tonemap_initial_under_ber_0db_nsr_margin_0_00_ber_margin.data \
+ bl_iteratif_tm_update_new_tm_IN_1_tone_map_input.data \
+ bl_iteratif_tm_update_new_tm_OUT_1_tone_map_output.data \
# Test vectors from scilab.
bl_test_vectors_scilab = polynomial_nsr.data polynomial_raw.data
# Test vectors for tone map update.
-bl_test_vectors_tm_update = bl_iteratif_opti_table_shift.data
+bl_test_vectors_tm_update = bl_iteratif_opti_table_shift.data \
+ bl_iteratif_tm_update_new_tm_IN_2_opti_table.data \
+ bl_iteratif_tm_update_new_tm_IN_3_ber_input.data \
+ bl_iteratif_tm_update_new_tm_IN_4_cursor_input.data \
+ bl_iteratif_tm_update_new_tm_OUT_2_cursor_output.data \
# Tools.
bl_test_vector_tools = src/data2c.pl
diff --git a/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_1_tone_map_input.data b/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_1_tone_map_input.data
new file mode 100644
index 0000000000..3e8cf7ee48
--- /dev/null
+++ b/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_1_tone_map_input.data
@@ -0,0 +1,1536 @@
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 8 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 8 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+10 10 10 8 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 8 8 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 10
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 8 8 10 10 10 10 10 10 10 10 10 10 10
+10 10 8 8 8 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+10 10 8 8 8 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+10 10 8 8 8 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 8 8 8 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 8 8 8 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+10 10 8 8 8 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+10 10 8 8 8 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+10 10 8 8 8 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+10 10 8 8 8 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 8 8 8 8 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 10 10 10 10
+10 10 8 8 8 8 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+8 8 6 6 6 6 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 6 6 6 6 6 6 6 8 8 8 8 8 8 8
+8 6 6 6 6 6 6 6 8 8 8 8 8 8 8
+8 8 8 6 8 8 8 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 4 4 4 4 6 6 6 6 6 6 6 6 6
+4 4 4 4 4 4 4 4 4 4 4 4 6 6 6
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 8 8 8
+8 8 6 6 6 6 8 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 8 8 8
+8 8 8 6 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 6 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 6 8 8
+8 8 6 6 6 6 6 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 6 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 6 8 8 8 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 6 8 8 8 8 8 8 8
+8 8 6 6 6 6 6 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 6 6 6 6 6 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 6 6 6 6 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+8 8 6 6 6 6 6 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 6 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+4 4 4 4 4 4 4 4 4 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 6 6 6
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 3 3 3 3 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+1 1 1 1 1 1 1 1 1 1 1 1 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 0 0 0 0 0 0 1 1 1 1 1 1 1 1
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \ No newline at end of file
diff --git a/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_2_opti_table.data b/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_2_opti_table.data
new file mode 100644
index 0000000000..6a6f1179f0
--- /dev/null
+++ b/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_2_opti_table.data
@@ -0,0 +1,917 @@
+1053 1053 1053 1053 1053 1053 1053 1053 1053 1053 1053 1053 1053 1053 1053
+105 105 105 105 105 105 105 105 105 105 105 105 105 105 105
+106 106 106 106 106 106 106 106 106 106 106 106 106 106 106
+108 108 108 108 108 108 108 108 108 108 108 108 108 108 108
+114 114 114 114 114 114 114 114 114 114 114 114 114 114 114
+115 115 115 115 115 115 115 115 115 115 115 115 115 115 115
+170 170 170 170 170 170 170 170 170 170 170 170 170 170 170
+171 171 171 171 171 171 171 171 171 171 171 171 171 171 171
+172 172 172 172 172 172 172 172 172 172 172 172 172 172 172
+180 180 180 180 180 180 180 180 180 180 180 180 180 180 180
+203 203 203 203 203 203 203 203 203 203 203 203 203 203 203
+205 205 205 205 205 205 205 205 205 205 205 205 205 205 205
+206 206 206 206 206 206 206 206 206 206 206 206 206 206 206
+209 209 209 209 209 209 209 209 209 209 209 209 209 209 209
+214 214 214 214 214 214 214 214 214 214 214 214 214 214 214
+237 237 237 237 237 237 237 237 237 237 237 237 237 237 237
+239 239 239 239 239 239 239 239 239 239 239 239 239 239 239
+240 240 240 240 240 240 240 240 240 240 240 240 240 240 240
+242 242 242 242 242 242 242 242 242 242 242 242 242 242 242
+337 337 337 337 337 337 337 337 337 337 337 337 337 337 337
+340 340 340 340 340 340 340 340 340 340 340 340 340 340 340
+622 622 622 622 622 622 622 622 622 622 622 622 622 622 622
+1052 1052 1052 1052 1052 1052 1052 1052 1052 1052 1052 1052 1052 1052 1052
+857 857 857 857 857 857 857 857 857 857 857 857 857 857 857
+609 609 609 609 609 609 609 609 609 609 609 609 609 609 609
+1074 1074 1074 1074 1074 1074 1074 1074 1074 1074 1074 1074 1074 1074 1074
+925 925 925 925 925 925 925 925 925 925 925 925 925 925 925
+928 928 928 928 928 928 928 928 928 928 928 928 928 928 928
+481 481 481 481 481 481 481 481 481 481 481 481 481 481 481
+732 732 732 732 732 732 732 732 732 732 732 732 732 732 732
+570 570 570 570 570 570 570 570 570 570 570 570 570 570 570
+1073 1073 1073 1073 1073 1073 1073 1073 1073 1073 1073 1073 1073 1073 1073
+608 608 608 608 608 608 608 608 608 608 608 608 608 608 608
+621 621 621 621 621 621 621 621 621 621 621 621 621 621 621
+629 629 629 629 629 629 629 629 629 629 629 629 629 629 629
+607 607 607 607 607 607 607 607 607 607 607 607 607 607 607
+542 542 542 542 542 542 542 542 542 542 542 542 542 542 542
+611 611 611 611 611 611 611 611 611 611 611 611 611 611 611
+102 102 102 102 102 102 102 102 102 102 102 102 102 102 102
+103 103 103 103 103 103 103 103 103 103 103 103 103 103 103
+116 116 116 116 116 116 116 116 116 116 116 116 116 116 116
+169 169 169 169 169 169 169 169 169 169 169 169 169 169 169
+179 179 179 179 179 179 179 179 179 179 179 179 179 179 179
+215 215 215 215 215 215 215 215 215 215 215 215 215 215 215
+234 234 234 234 234 234 234 234 234 234 234 234 234 234 234
+236 236 236 236 236 236 236 236 236 236 236 236 236 236 236
+238 238 238 238 238 238 238 238 238 238 238 238 238 238 238
+243 243 243 243 243 243 243 243 243 243 243 243 243 243 243
+245 245 245 245 245 245 245 245 245 245 245 245 245 245 245
+327 327 327 327 327 327 327 327 327 327 327 327 327 327 327
+330 330 330 330 330 330 330 330 330 330 330 330 330 330 330
+333 333 333 333 333 333 333 333 333 333 333 333 333 333 333
+334 334 334 334 334 334 334 334 334 334 334 334 334 334 334
+335 335 335 335 335 335 335 335 335 335 335 335 335 335 335
+339 339 339 339 339 339 339 339 339 339 339 339 339 339 339
+1031 1031 1031 1031 1031 1031 1031 1031 1031 1031 1031 1031 1031 1031 1031
+930 930 930 930 930 930 930 930 930 930 930 930 930 930 930
+512 512 512 512 512 512 512 512 512 512 512 512 512 512 512
+734 734 734 734 734 734 734 734 734 734 734 734 734 734 734
+723 723 723 723 723 723 723 723 723 723 723 723 723 723 723
+724 724 724 724 724 724 724 724 724 724 724 724 724 724 724
+731 731 731 731 731 731 731 731 731 731 731 731 731 731 731
+566 566 566 566 566 566 566 566 566 566 566 566 566 566 566
+567 567 567 567 567 567 567 567 567 567 567 567 567 567 567
+929 929 929 929 929 929 929 929 929 929 929 929 929 929 929
+1093 1093 1093 1093 1093 1093 1093 1093 1093 1093 1093 1093 1093 1093 1093
+1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091
+1030 1030 1030 1030 1030 1030 1030 1030 1030 1030 1030 1030 1030 1030 1030
+726 726 726 726 726 726 726 726 726 726 726 726 726 726 726
+728 728 728 728 728 728 728 728 728 728 728 728 728 728 728
+730 730 730 730 730 730 730 730 730 730 730 730 730 730 730
+540 540 540 540 540 540 540 540 540 540 540 540 540 540 540
+541 541 541 541 541 541 541 541 541 541 541 541 541 541 541
+932 932 932 932 932 932 932 932 932 932 932 932 932 932 932
+101 101 101 101 101 101 101 101 101 101 101 101 101 101 101
+104 104 104 104 104 104 104 104 104 104 104 104 104 104 104
+178 178 178 178 178 178 178 178 178 178 178 178 178 178 178
+232 232 232 232 232 232 232 232 232 232 232 232 232 232 232
+235 235 235 235 235 235 235 235 235 235 235 235 235 235 235
+241 241 241 241 241 241 241 241 241 241 241 241 241 241 241
+244 244 244 244 244 244 244 244 244 244 244 244 244 244 244
+323 323 323 323 323 323 323 323 323 323 323 323 323 323 323
+325 325 325 325 325 325 325 325 325 325 325 325 325 325 325
+332 332 332 332 332 332 332 332 332 332 332 332 332 332 332
+336 336 336 336 336 336 336 336 336 336 336 336 336 336 336
+338 338 338 338 338 338 338 338 338 338 338 338 338 338 338
+341 341 341 341 341 341 341 341 341 341 341 341 341 341 341
+343 343 343 343 343 343 343 343 343 343 343 343 343 343 343
+344 344 344 344 344 344 344 344 344 344 344 344 344 344 344
+504 504 504 504 504 504 504 504 504 504 504 504 504 504 504
+719 719 719 719 719 719 719 719 719 719 719 719 719 719 719
+725 725 725 725 725 725 725 725 725 725 725 725 725 725 725
+729 729 729 729 729 729 729 729 729 729 729 729 729 729 729
+931 931 931 931 931 931 931 931 931 931 931 931 931 931 931
+933 933 933 933 933 933 933 933 933 933 933 933 933 933 933
+594 594 594 594 594 594 594 594 594 594 594 594 594 594 594
+934 934 934 934 934 934 934 934 934 934 934 934 934 934 934
+610 610 610 610 610 610 610 610 610 610 610 610 610 610 610
+1029 1029 1029 1029 1029 1029 1029 1029 1029 1029 1029 1029 1029 1029 1029
+1032 1032 1032 1032 1032 1032 1032 1032 1032 1032 1032 1032 1032 1032 1032
+1075 1075 1075 1075 1075 1075 1075 1075 1075 1075 1075 1075 1075 1075 1075
+505 505 505 505 505 505 505 505 505 505 505 505 505 505 505
+506 506 506 506 506 506 506 506 506 506 506 506 506 506 506
+733 733 733 733 733 733 733 733 733 733 733 733 733 733 733
+502 502 502 502 502 502 502 502 502 502 502 502 502 502 502
+511 511 511 511 511 511 511 511 511 511 511 511 511 511 511
+720 720 720 720 720 720 720 720 720 720 720 720 720 720 720
+721 721 721 721 721 721 721 721 721 721 721 721 721 721 721
+93 93 93 93 93 93 93 93 93 93 93 93 93 93 93
+173 173 173 173 173 173 173 173 173 173 173 173 173 173 173
+174 174 174 174 174 174 174 174 174 174 174 174 174 174 174
+231 231 231 231 231 231 231 231 231 231 231 231 231 231 231
+233 233 233 233 233 233 233 233 233 233 233 233 233 233 233
+248 248 248 248 248 248 248 248 248 248 248 248 248 248 248
+321 321 321 321 321 321 321 321 321 321 321 321 321 321 321
+322 322 322 322 322 322 322 322 322 322 322 322 322 322 322
+324 324 324 324 324 324 324 324 324 324 324 324 324 324 324
+326 326 326 326 326 326 326 326 326 326 326 326 326 326 326
+328 328 328 328 328 328 328 328 328 328 328 328 328 328 328
+329 329 329 329 329 329 329 329 329 329 329 329 329 329 329
+331 331 331 331 331 331 331 331 331 331 331 331 331 331 331
+545 545 545 545 545 545 545 545 545 545 545 545 545 545 545
+1033 1033 1033 1033 1033 1033 1033 1033 1033 1033 1033 1033 1033 1033 1033
+500 500 500 500 500 500 500 500 500 500 500 500 500 500 500
+501 501 501 501 501 501 501 501 501 501 501 501 501 501 501
+503 503 503 503 503 503 503 503 503 503 503 503 503 503 503
+507 507 507 507 507 507 507 507 507 507 507 507 507 507 507
+722 722 722 722 722 722 722 722 722 722 722 722 722 722 722
+1054 1054 1054 1054 1054 1054 1054 1054 1054 1054 1054 1054 1054 1054 1054
+593 593 593 593 593 593 593 593 593 593 593 593 593 593 593
+482 482 482 482 482 482 482 482 482 482 482 482 482 482 482
+508 508 508 508 508 508 508 508 508 508 508 508 508 508 508
+510 510 510 510 510 510 510 510 510 510 510 510 510 510 510
+513 513 513 513 513 513 513 513 513 513 513 513 513 513 513
+735 735 735 735 735 735 735 735 735 735 735 735 735 735 735
+1057 1057 1057 1057 1057 1057 1057 1057 1057 1057 1057 1057 1057 1057 1057
+716 716 716 716 716 716 716 716 716 716 716 716 716 716 716
+718 718 718 718 718 718 718 718 718 718 718 718 718 718 718
+767 767 767 767 767 767 767 767 767 767 767 767 767 767 767
+1036 1036 1036 1036 1036 1036 1036 1036 1036 1036 1036 1036 1036 1036 1036
+91 91 91 91 91 91 91 91 91 91 91 91 91 91 91
+92 92 92 92 92 92 92 92 92 92 92 92 92 92 92
+94 94 94 94 94 94 94 94 94 94 94 94 94 94 94
+95 95 95 95 95 95 95 95 95 95 95 95 95 95 95
+96 96 96 96 96 96 96 96 96 96 96 96 96 96 96
+99 99 99 99 99 99 99 99 99 99 99 99 99 99 99
+100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
+117 117 117 117 117 117 117 117 117 117 117 117 117 117 117
+119 119 119 119 119 119 119 119 119 119 119 119 119 119 119
+175 175 175 175 175 175 175 175 175 175 175 175 175 175 175
+176 176 176 176 176 176 176 176 176 176 176 176 176 176 176
+177 177 177 177 177 177 177 177 177 177 177 177 177 177 177
+229 229 229 229 229 229 229 229 229 229 229 229 229 229 229
+246 246 246 246 246 246 246 246 246 246 246 246 246 246 246
+247 247 247 247 247 247 247 247 247 247 247 247 247 247 247
+320 320 320 320 320 320 320 320 320 320 320 320 320 320 320
+342 342 342 342 342 342 342 342 342 342 342 342 342 342 342
+345 345 345 345 345 345 345 345 345 345 345 345 345 345 345
+936 936 936 936 936 936 936 936 936 936 936 936 936 936 936
+509 509 509 509 509 509 509 509 509 509 509 509 509 509 509
+754 754 754 754 754 754 754 754 754 754 754 754 754 754 754
+772 772 772 772 772 772 772 772 772 772 772 772 772 772 772
+780 780 780 780 780 780 780 780 780 780 780 780 780 780 780
+1034 1034 1034 1034 1034 1034 1034 1034 1034 1034 1034 1034 1034 1034 1034
+543 543 543 543 543 543 543 543 543 543 543 543 543 543 543
+606 606 606 606 606 606 606 606 606 606 606 606 606 606 606
+499 499 499 499 499 499 499 499 499 499 499 499 499 499 499
+515 515 515 515 515 515 515 515 515 515 515 515 515 515 515
+544 544 544 544 544 544 544 544 544 544 544 544 544 544 544
+935 935 935 935 935 935 935 935 935 935 935 935 935 935 935
+1055 1055 1055 1055 1055 1055 1055 1055 1055 1055 1055 1055 1055 1055 1055
+1035 1035 1035 1035 1035 1035 1035 1035 1035 1035 1035 1035 1035 1035 1035
+483 483 483 483 483 483 483 483 483 483 483 483 483 483 483
+714 714 714 714 714 714 714 714 714 714 714 714 714 714 714
+715 715 715 715 715 715 715 715 715 715 715 715 715 715 715
+751 751 751 751 751 751 751 751 751 751 751 751 751 751 751
+752 752 752 752 752 752 752 752 752 752 752 752 752 752 752
+605 605 605 605 605 605 605 605 605 605 605 605 605 605 605
+90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
+98 98 98 98 98 98 98 98 98 98 98 98 98 98 98
+118 118 118 118 118 118 118 118 118 118 118 118 118 118 118
+228 228 228 228 228 228 228 228 228 228 228 228 228 228 228
+230 230 230 230 230 230 230 230 230 230 230 230 230 230 230
+250 250 250 250 250 250 250 250 250 250 250 250 250 250 250
+319 319 319 319 319 319 319 319 319 319 319 319 319 319 319
+348 348 348 348 348 348 348 348 348 348 348 348 348 348 348
+517 517 517 517 517 517 517 517 517 517 517 517 517 517 517
+519 519 519 519 519 519 519 519 519 519 519 519 519 519 519
+710 710 710 710 710 710 710 710 710 710 710 710 710 710 710
+737 737 737 737 737 737 737 737 737 737 737 737 737 737 737
+758 758 758 758 758 758 758 758 758 758 758 758 758 758 758
+759 759 759 759 759 759 759 759 759 759 759 759 759 759 759
+764 764 764 764 764 764 764 764 764 764 764 764 764 764 764
+765 765 765 765 765 765 765 765 765 765 765 765 765 765 765
+1041 1041 1041 1041 1041 1041 1041 1041 1041 1041 1041 1041 1041 1041 1041
+937 937 937 937 937 937 937 937 937 937 937 937 937 937 937
+546 546 546 546 546 546 546 546 546 546 546 546 546 546 546
+547 547 547 547 547 547 547 547 547 547 547 547 547 547 547
+717 717 717 717 717 717 717 717 717 717 717 717 717 717 717
+736 736 736 736 736 736 736 736 736 736 736 736 736 736 736
+756 756 756 756 756 756 756 756 756 756 756 756 756 756 756
+760 760 760 760 760 760 760 760 760 760 760 760 760 760 760
+761 761 761 761 761 761 761 761 761 761 761 761 761 761 761
+775 775 775 775 775 775 775 775 775 775 775 775 775 775 775
+1037 1037 1037 1037 1037 1037 1037 1037 1037 1037 1037 1037 1037 1037 1037
+1100 1100 1100 1100 1100 1100 1100 1100 1100 1100 1100 1100 1100 1100 1100
+549 549 549 549 549 549 549 549 549 549 549 549 549 549 549
+1092 1092 1092 1092 1092 1092 1092 1092 1092 1092 1092 1092 1092 1092 1092
+497 497 497 497 497 497 497 497 497 497 497 497 497 497 497
+498 498 498 498 498 498 498 498 498 498 498 498 498 498 498
+712 712 712 712 712 712 712 712 712 712 712 712 712 712 712
+771 771 771 771 771 771 771 771 771 771 771 771 771 771 771
+774 774 774 774 774 774 774 774 774 774 774 774 774 774 774
+779 779 779 779 779 779 779 779 779 779 779 779 779 779 779
+781 781 781 781 781 781 781 781 781 781 781 781 781 781 781
+1058 1058 1058 1058 1058 1058 1058 1058 1058 1058 1058 1058 1058 1058 1058
+1094 1094 1094 1094 1094 1094 1094 1094 1094 1094 1094 1094 1094 1094 1094
+750 750 750 750 750 750 750 750 750 750 750 750 750 750 750
+763 763 763 763 763 763 763 763 763 763 763 763 763 763 763
+766 766 766 766 766 766 766 766 766 766 766 766 766 766 766
+773 773 773 773 773 773 773 773 773 773 773 773 773 773 773
+604 604 604 604 604 604 604 604 604 604 604 604 604 604 604
+97 97 97 97 97 97 97 97 97 97 97 97 97 97 97
+308 308 308 308 308 308 308 308 308 308 308 308 308 308 308
+314 314 314 314 314 314 314 314 314 314 314 314 314 314 314
+317 317 317 317 317 317 317 317 317 317 317 317 317 317 317
+318 318 318 318 318 318 318 318 318 318 318 318 318 318 318
+346 346 346 346 346 346 346 346 346 346 346 346 346 346 346
+349 349 349 349 349 349 349 349 349 349 349 349 349 349 349
+1042 1042 1042 1042 1042 1042 1042 1042 1042 1042 1042 1042 1042 1042 1042
+1056 1056 1056 1056 1056 1056 1056 1056 1056 1056 1056 1056 1056 1056 1056
+1061 1061 1061 1061 1061 1061 1061 1061 1061 1061 1061 1061 1061 1061 1061
+484 484 484 484 484 484 484 484 484 484 484 484 484 484 484
+514 514 514 514 514 514 514 514 514 514 514 514 514 514 514
+711 711 711 711 711 711 711 711 711 711 711 711 711 711 711
+713 713 713 713 713 713 713 713 713 713 713 713 713 713 713
+762 762 762 762 762 762 762 762 762 762 762 762 762 762 762
+768 768 768 768 768 768 768 768 768 768 768 768 768 768 768
+769 769 769 769 769 769 769 769 769 769 769 769 769 769 769
+1059 1059 1059 1059 1059 1059 1059 1059 1059 1059 1059 1059 1059 1059 1059
+1096 1096 1096 1096 1096 1096 1096 1096 1096 1096 1096 1096 1096 1096 1096
+1077 1077 1077 1077 1077 1077 1077 1077 1077 1077 1077 1077 1077 1077 1077
+1038 1038 1038 1038 1038 1038 1038 1038 1038 1038 1038 1038 1038 1038 1038
+701 701 701 701 701 701 701 701 701 701 701 701 701 701 701
+708 708 708 708 708 708 708 708 708 708 708 708 708 708 708
+548 548 548 548 548 548 548 548 548 548 548 548 548 548 548
+568 568 568 568 568 568 568 568 568 568 568 568 568 568 568
+1097 1097 1097 1097 1097 1097 1097 1097 1097 1097 1097 1097 1097 1097 1097
+1078 1078 1078 1078 1078 1078 1078 1078 1078 1078 1078 1078 1078 1078 1078
+518 518 518 518 518 518 518 518 518 518 518 518 518 518 518
+753 753 753 753 753 753 753 753 753 753 753 753 753 753 753
+755 755 755 755 755 755 755 755 755 755 755 755 755 755 755
+776 776 776 776 776 776 776 776 776 776 776 776 776 776 776
+280 280 280 280 280 280 280 280 280 280 280 280 280 280 280
+313 313 313 313 313 313 313 313 313 313 313 313 313 313 313
+315 315 315 315 315 315 315 315 315 315 315 315 315 315 315
+316 316 316 316 316 316 316 316 316 316 316 316 316 316 316
+347 347 347 347 347 347 347 347 347 347 347 347 347 347 347
+351 351 351 351 351 351 351 351 351 351 351 351 351 351 351
+552 552 552 552 552 552 552 552 552 552 552 552 552 552 552
+1039 1039 1039 1039 1039 1039 1039 1039 1039 1039 1039 1039 1039 1039 1039
+496 496 496 496 496 496 496 496 496 496 496 496 496 496 496
+516 516 516 516 516 516 516 516 516 516 516 516 516 516 516
+660 660 660 660 660 660 660 660 660 660 660 660 660 660 660
+757 757 757 757 757 757 757 757 757 757 757 757 757 757 757
+777 777 777 777 777 777 777 777 777 777 777 777 777 777 777
+782 782 782 782 782 782 782 782 782 782 782 782 782 782 782
+1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044
+486 486 486 486 486 486 486 486 486 486 486 486 486 486 486
+698 698 698 698 698 698 698 698 698 698 698 698 698 698 698
+703 703 703 703 703 703 703 703 703 703 703 703 703 703 703
+784 784 784 784 784 784 784 784 784 784 784 784 784 784 784
+1101 1101 1101 1101 1101 1101 1101 1101 1101 1101 1101 1101 1101 1101 1101
+938 938 938 938 938 938 938 938 938 938 938 938 938 938 938
+1043 1043 1043 1043 1043 1043 1043 1043 1043 1043 1043 1043 1043 1043 1043
+1103 1103 1103 1103 1103 1103 1103 1103 1103 1103 1103 1103 1103 1103 1103
+520 520 520 520 520 520 520 520 520 520 520 520 520 520 520
+521 521 521 521 521 521 521 521 521 521 521 521 521 521 521
+702 702 702 702 702 702 702 702 702 702 702 702 702 702 702
+705 705 705 705 705 705 705 705 705 705 705 705 705 705 705
+709 709 709 709 709 709 709 709 709 709 709 709 709 709 709
+790 790 790 790 790 790 790 790 790 790 790 790 790 790 790
+941 941 941 941 941 941 941 941 941 941 941 941 941 941 941
+939 939 939 939 939 939 939 939 939 939 939 939 939 939 939
+1040 1040 1040 1040 1040 1040 1040 1040 1040 1040 1040 1040 1040 1040 1040
+120 120 120 120 120 120 120 120 120 120 120 120 120 120 120
+249 249 249 249 249 249 249 249 249 249 249 249 249 249 249
+276 276 276 276 276 276 276 276 276 276 276 276 276 276 276
+278 278 278 278 278 278 278 278 278 278 278 278 278 278 278
+281 281 281 281 281 281 281 281 281 281 281 281 281 281 281
+307 307 307 307 307 307 307 307 307 307 307 307 307 307 307
+309 309 309 309 309 309 309 309 309 309 309 309 309 309 309
+310 310 310 310 310 310 310 310 310 310 310 310 310 310 310
+311 311 311 311 311 311 311 311 311 311 311 311 311 311 311
+373 373 373 373 373 373 373 373 373 373 373 373 373 373 373
+374 374 374 374 374 374 374 374 374 374 374 374 374 374 374
+376 376 376 376 376 376 376 376 376 376 376 376 376 376 376
+378 378 378 378 378 378 378 378 378 378 378 378 378 378 378
+381 381 381 381 381 381 381 381 381 381 381 381 381 381 381
+459 459 459 459 459 459 459 459 459 459 459 459 459 459 459
+460 460 460 460 460 460 460 460 460 460 460 460 460 460 460
+522 522 522 522 522 522 522 522 522 522 522 522 522 522 522
+706 706 706 706 706 706 706 706 706 706 706 706 706 706 706
+770 770 770 770 770 770 770 770 770 770 770 770 770 770 770
+785 785 785 785 785 785 785 785 785 785 785 785 785 785 785
+551 551 551 551 551 551 551 551 551 551 551 551 551 551 551
+550 550 550 550 550 550 550 550 550 550 550 550 550 550 550
+663 663 663 663 663 663 663 663 663 663 663 663 663 663 663
+786 786 786 786 786 786 786 786 786 786 786 786 786 786 786
+569 569 569 569 569 569 569 569 569 569 569 569 569 569 569
+787 787 787 787 787 787 787 787 787 787 787 787 787 787 787
+1046 1046 1046 1046 1046 1046 1046 1046 1046 1046 1046 1046 1046 1046 1046
+1079 1079 1079 1079 1079 1079 1079 1079 1079 1079 1079 1079 1079 1079 1079
+1047 1047 1047 1047 1047 1047 1047 1047 1047 1047 1047 1047 1047 1047 1047
+227 227 227 227 227 227 227 227 227 227 227 227 227 227 227
+251 251 251 251 251 251 251 251 251 251 251 251 251 251 251
+252 252 252 252 252 252 252 252 252 252 252 252 252 252 252
+274 274 274 274 274 274 274 274 274 274 274 274 274 274 274
+277 277 277 277 277 277 277 277 277 277 277 277 277 277 277
+279 279 279 279 279 279 279 279 279 279 279 279 279 279 279
+312 312 312 312 312 312 312 312 312 312 312 312 312 312 312
+350 350 350 350 350 350 350 350 350 350 350 350 350 350 350
+371 371 371 371 371 371 371 371 371 371 371 371 371 371 371
+377 377 377 377 377 377 377 377 377 377 377 377 377 377 377
+380 380 380 380 380 380 380 380 380 380 380 380 380 380 380
+382 382 382 382 382 382 382 382 382 382 382 382 382 382 382
+452 452 452 452 452 452 452 452 452 452 452 452 452 452 452
+453 453 453 453 453 453 453 453 453 453 453 453 453 453 453
+454 454 454 454 454 454 454 454 454 454 454 454 454 454 454
+456 456 456 456 456 456 456 456 456 456 456 456 456 456 456
+457 457 457 457 457 457 457 457 457 457 457 457 457 457 457
+458 458 458 458 458 458 458 458 458 458 458 458 458 458 458
+461 461 461 461 461 461 461 461 461 461 461 461 461 461 461
+468 468 468 468 468 468 468 468 468 468 468 468 468 468 468
+485 485 485 485 485 485 485 485 485 485 485 485 485 485 485
+495 495 495 495 495 495 495 495 495 495 495 495 495 495 495
+665 665 665 665 665 665 665 665 665 665 665 665 665 665 665
+778 778 778 778 778 778 778 778 778 778 778 778 778 778 778
+783 783 783 783 783 783 783 783 783 783 783 783 783 783 783
+1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076
+942 942 942 942 942 942 942 942 942 942 942 942 942 942 942
+658 658 658 658 658 658 658 658 658 658 658 658 658 658 658
+659 659 659 659 659 659 659 659 659 659 659 659 659 659 659
+666 666 666 666 666 666 666 666 666 666 666 666 666 666 666
+707 707 707 707 707 707 707 707 707 707 707 707 707 707 707
+788 788 788 788 788 788 788 788 788 788 788 788 788 788 788
+1095 1095 1095 1095 1095 1095 1095 1095 1095 1095 1095 1095 1095 1095 1095
+1081 1081 1081 1081 1081 1081 1081 1081 1081 1081 1081 1081 1081 1081 1081
+603 603 603 603 603 603 603 603 603 603 603 603 603 603 603
+1098 1098 1098 1098 1098 1098 1098 1098 1098 1098 1098 1098 1098 1098 1098
+656 656 656 656 656 656 656 656 656 656 656 656 656 656 656
+657 657 657 657 657 657 657 657 657 657 657 657 657 657 657
+1099 1099 1099 1099 1099 1099 1099 1099 1099 1099 1099 1099 1099 1099 1099
+525 525 525 525 525 525 525 525 525 525 525 525 525 525 525
+667 667 667 667 667 667 667 667 667 667 667 667 667 667 667
+121 121 121 121 121 121 121 121 121 121 121 121 121 121 121
+122 122 122 122 122 122 122 122 122 122 122 122 122 122 122
+272 272 272 272 272 272 272 272 272 272 272 272 272 272 272
+275 275 275 275 275 275 275 275 275 275 275 275 275 275 275
+352 352 352 352 352 352 352 352 352 352 352 352 352 352 352
+353 353 353 353 353 353 353 353 353 353 353 353 353 353 353
+365 365 365 365 365 365 365 365 365 365 365 365 365 365 365
+367 367 367 367 367 367 367 367 367 367 367 367 367 367 367
+372 372 372 372 372 372 372 372 372 372 372 372 372 372 372
+383 383 383 383 383 383 383 383 383 383 383 383 383 383 383
+430 430 430 430 430 430 430 430 430 430 430 430 430 430 430
+443 443 443 443 443 443 443 443 443 443 443 443 443 443 443
+448 448 448 448 448 448 448 448 448 448 448 448 448 448 448
+451 451 451 451 451 451 451 451 451 451 451 451 451 451 451
+455 455 455 455 455 455 455 455 455 455 455 455 455 455 455
+465 465 465 465 465 465 465 465 465 465 465 465 465 465 465
+1045 1045 1045 1045 1045 1045 1045 1045 1045 1045 1045 1045 1045 1045 1045
+553 553 553 553 553 553 553 553 553 553 553 553 553 553 553
+494 494 494 494 494 494 494 494 494 494 494 494 494 494 494
+654 654 654 654 654 654 654 654 654 654 654 654 654 654 654
+789 789 789 789 789 789 789 789 789 789 789 789 789 789 789
+792 792 792 792 792 792 792 792 792 792 792 792 792 792 792
+662 662 662 662 662 662 662 662 662 662 662 662 662 662 662
+700 700 700 700 700 700 700 700 700 700 700 700 700 700 700
+704 704 704 704 704 704 704 704 704 704 704 704 704 704 704
+1104 1104 1104 1104 1104 1104 1104 1104 1104 1104 1104 1104 1104 1104 1104
+523 523 523 523 523 523 523 523 523 523 523 523 523 523 523
+524 524 524 524 524 524 524 524 524 524 524 524 524 524 524
+673 673 673 673 673 673 673 673 673 673 673 673 673 673 673
+699 699 699 699 699 699 699 699 699 699 699 699 699 699 699
+940 940 940 940 940 940 940 940 940 940 940 940 940 940 940
+123 123 123 123 123 123 123 123 123 123 123 123 123 123 123
+273 273 273 273 273 273 273 273 273 273 273 273 273 273 273
+282 282 282 282 282 282 282 282 282 282 282 282 282 282 282
+306 306 306 306 306 306 306 306 306 306 306 306 306 306 306
+370 370 370 370 370 370 370 370 370 370 370 370 370 370 370
+375 375 375 375 375 375 375 375 375 375 375 375 375 375 375
+379 379 379 379 379 379 379 379 379 379 379 379 379 379 379
+384 384 384 384 384 384 384 384 384 384 384 384 384 384 384
+434 434 434 434 434 434 434 434 434 434 434 434 434 434 434
+449 449 449 449 449 449 449 449 449 449 449 449 449 449 449
+464 464 464 464 464 464 464 464 464 464 464 464 464 464 464
+466 466 466 466 466 466 466 466 466 466 466 466 466 466 466
+467 467 467 467 467 467 467 467 467 467 467 467 467 467 467
+492 492 492 492 492 492 492 492 492 492 492 492 492 492 492
+696 696 696 696 696 696 696 696 696 696 696 696 696 696 696
+1102 1102 1102 1102 1102 1102 1102 1102 1102 1102 1102 1102 1102 1102 1102
+554 554 554 554 554 554 554 554 554 554 554 554 554 554 554
+526 526 526 526 526 526 526 526 526 526 526 526 526 526 526
+653 653 653 653 653 653 653 653 653 653 653 653 653 653 653
+655 655 655 655 655 655 655 655 655 655 655 655 655 655 655
+697 697 697 697 697 697 697 697 697 697 697 697 697 697 697
+794 794 794 794 794 794 794 794 794 794 794 794 794 794 794
+602 602 602 602 602 602 602 602 602 602 602 602 602 602 602
+944 944 944 944 944 944 944 944 944 944 944 944 944 944 944
+1080 1080 1080 1080 1080 1080 1080 1080 1080 1080 1080 1080 1080 1080 1080
+661 661 661 661 661 661 661 661 661 661 661 661 661 661 661
+664 664 664 664 664 664 664 664 664 664 664 664 664 664 664
+670 670 670 670 670 670 670 670 670 670 670 670 670 670 670
+793 793 793 793 793 793 793 793 793 793 793 793 793 793 793
+124 124 124 124 124 124 124 124 124 124 124 124 124 124 124
+253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
+269 269 269 269 269 269 269 269 269 269 269 269 269 269 269
+270 270 270 270 270 270 270 270 270 270 270 270 270 270 270
+283 283 283 283 283 283 283 283 283 283 283 283 283 283 283
+354 354 354 354 354 354 354 354 354 354 354 354 354 354 354
+357 357 357 357 357 357 357 357 357 357 357 357 357 357 357
+359 359 359 359 359 359 359 359 359 359 359 359 359 359 359
+362 362 362 362 362 362 362 362 362 362 362 362 362 362 362
+363 363 363 363 363 363 363 363 363 363 363 363 363 363 363
+366 366 366 366 366 366 366 366 366 366 366 366 366 366 366
+385 385 385 385 385 385 385 385 385 385 385 385 385 385 385
+440 440 440 440 440 440 440 440 440 440 440 440 440 440 440
+441 441 441 441 441 441 441 441 441 441 441 441 441 441 441
+450 450 450 450 450 450 450 450 450 450 450 450 450 450 450
+462 462 462 462 462 462 462 462 462 462 462 462 462 462 462
+463 463 463 463 463 463 463 463 463 463 463 463 463 463 463
+556 556 556 556 556 556 556 556 556 556 556 556 556 556 556
+487 487 487 487 487 487 487 487 487 487 487 487 487 487 487
+668 668 668 668 668 668 668 668 668 668 668 668 668 668 668
+671 671 671 671 671 671 671 671 671 671 671 671 671 671 671
+791 791 791 791 791 791 791 791 791 791 791 791 791 791 791
+1060 1060 1060 1060 1060 1060 1060 1060 1060 1060 1060 1060 1060 1060 1060
+689 689 689 689 689 689 689 689 689 689 689 689 689 689 689
+798 798 798 798 798 798 798 798 798 798 798 798 798 798 798
+1048 1048 1048 1048 1048 1048 1048 1048 1048 1048 1048 1048 1048 1048 1048
+1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065
+693 693 693 693 693 693 693 693 693 693 693 693 693 693 693
+1063 1063 1063 1063 1063 1063 1063 1063 1063 1063 1063 1063 1063 1063 1063
+355 355 355 355 355 355 355 355 355 355 355 355 355 355 355
+360 360 360 360 360 360 360 360 360 360 360 360 360 360 360
+368 368 368 368 368 368 368 368 368 368 368 368 368 368 368
+426 426 426 426 426 426 426 426 426 426 426 426 426 426 426
+428 428 428 428 428 428 428 428 428 428 428 428 428 428 428
+432 432 432 432 432 432 432 432 432 432 432 432 432 432 432
+433 433 433 433 433 433 433 433 433 433 433 433 433 433 433
+437 437 437 437 437 437 437 437 437 437 437 437 437 437 437
+439 439 439 439 439 439 439 439 439 439 439 439 439 439 439
+445 445 445 445 445 445 445 445 445 445 445 445 445 445 445
+447 447 447 447 447 447 447 447 447 447 447 447 447 447 447
+469 469 469 469 469 469 469 469 469 469 469 469 469 469 469
+470 470 470 470 470 470 470 470 470 470 470 470 470 470 470
+471 471 471 471 471 471 471 471 471 471 471 471 471 471 471
+472 472 472 472 472 472 472 472 472 472 472 472 472 472 472
+1105 1105 1105 1105 1105 1105 1105 1105 1105 1105 1105 1105 1105 1105 1105
+1050 1050 1050 1050 1050 1050 1050 1050 1050 1050 1050 1050 1050 1050 1050
+1051 1051 1051 1051 1051 1051 1051 1051 1051 1051 1051 1051 1051 1051 1051
+949 949 949 949 949 949 949 949 949 949 949 949 949 949 949
+1083 1083 1083 1083 1083 1083 1083 1083 1083 1083 1083 1083 1083 1083 1083
+488 488 488 488 488 488 488 488 488 488 488 488 488 488 488
+694 694 694 694 694 694 694 694 694 694 694 694 694 694 694
+489 489 489 489 489 489 489 489 489 489 489 489 489 489 489
+493 493 493 493 493 493 493 493 493 493 493 493 493 493 493
+527 527 527 527 527 527 527 527 527 527 527 527 527 527 527
+795 795 795 795 795 795 795 795 795 795 795 795 795 795 795
+1062 1062 1062 1062 1062 1062 1062 1062 1062 1062 1062 1062 1062 1062 1062
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254
+268 268 268 268 268 268 268 268 268 268 268 268 268 268 268
+271 271 271 271 271 271 271 271 271 271 271 271 271 271 271
+356 356 356 356 356 356 356 356 356 356 356 356 356 356 356
+364 364 364 364 364 364 364 364 364 364 364 364 364 364 364
+369 369 369 369 369 369 369 369 369 369 369 369 369 369 369
+387 387 387 387 387 387 387 387 387 387 387 387 387 387 387
+423 423 423 423 423 423 423 423 423 423 423 423 423 423 423
+425 425 425 425 425 425 425 425 425 425 425 425 425 425 425
+427 427 427 427 427 427 427 427 427 427 427 427 427 427 427
+429 429 429 429 429 429 429 429 429 429 429 429 429 429 429
+435 435 435 435 435 435 435 435 435 435 435 435 435 435 435
+438 438 438 438 438 438 438 438 438 438 438 438 438 438 438
+446 446 446 446 446 446 446 446 446 446 446 446 446 446 446
+1066 1066 1066 1066 1066 1066 1066 1066 1066 1066 1066 1066 1066 1066 1066
+491 491 491 491 491 491 491 491 491 491 491 491 491 491 491
+649 649 649 649 649 649 649 649 649 649 649 649 649 649 649
+651 651 651 651 651 651 651 651 651 651 651 651 651 651 651
+943 943 943 943 943 943 943 943 943 943 943 943 943 943 943
+1049 1049 1049 1049 1049 1049 1049 1049 1049 1049 1049 1049 1049 1049 1049
+669 669 669 669 669 669 669 669 669 669 669 669 669 669 669
+691 691 691 691 691 691 691 691 691 691 691 691 691 691 691
+87 87 87 87 87 87 87 87 87 87 87 87 87 87 87
+490 490 490 490 490 490 490 490 490 490 490 490 490 490 490
+674 674 674 674 674 674 674 674 674 674 674 674 674 674 674
+89 89 89 89 89 89 89 89 89 89 89 89 89 89 89
+136 136 136 136 136 136 136 136 136 136 136 136 136 136 136
+255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
+358 358 358 358 358 358 358 358 358 358 358 358 358 358 358
+361 361 361 361 361 361 361 361 361 361 361 361 361 361 361
+424 424 424 424 424 424 424 424 424 424 424 424 424 424 424
+431 431 431 431 431 431 431 431 431 431 431 431 431 431 431
+436 436 436 436 436 436 436 436 436 436 436 436 436 436 436
+442 442 442 442 442 442 442 442 442 442 442 442 442 442 442
+672 672 672 672 672 672 672 672 672 672 672 672 672 672 672
+796 796 796 796 796 796 796 796 796 796 796 796 796 796 796
+797 797 797 797 797 797 797 797 797 797 797 797 797 797 797
+799 799 799 799 799 799 799 799 799 799 799 799 799 799 799
+800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
+802 802 802 802 802 802 802 802 802 802 802 802 802 802 802
+1085 1085 1085 1085 1085 1085 1085 1085 1085 1085 1085 1085 1085 1085 1085
+1109 1109 1109 1109 1109 1109 1109 1109 1109 1109 1109 1109 1109 1109 1109
+805 805 805 805 805 805 805 805 805 805 805 805 805 805 805
+126 126 126 126 126 126 126 126 126 126 126 126 126 126 126
+138 138 138 138 138 138 138 138 138 138 138 138 138 138 138
+386 386 386 386 386 386 386 386 386 386 386 386 386 386 386
+444 444 444 444 444 444 444 444 444 444 444 444 444 444 444
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+528 528 528 528 528 528 528 528 528 528 528 528 528 528 528
+648 648 648 648 648 648 648 648 648 648 648 648 648 648 648
+650 650 650 650 650 650 650 650 650 650 650 650 650 650 650
+652 652 652 652 652 652 652 652 652 652 652 652 652 652 652
+695 695 695 695 695 695 695 695 695 695 695 695 695 695 695
+945 945 945 945 945 945 945 945 945 945 945 945 945 945 945
+530 530 530 530 530 530 530 530 530 530 530 530 530 530 530
+690 690 690 690 690 690 690 690 690 690 690 690 690 690 690
+692 692 692 692 692 692 692 692 692 692 692 692 692 692 692
+1107 1107 1107 1107 1107 1107 1107 1107 1107 1107 1107 1107 1107 1107 1107
+688 688 688 688 688 688 688 688 688 688 688 688 688 688 688
+1082 1082 1082 1082 1082 1082 1082 1082 1082 1082 1082 1082 1082 1082 1082
+125 125 125 125 125 125 125 125 125 125 125 125 125 125 125
+127 127 127 127 127 127 127 127 127 127 127 127 127 127 127
+137 137 137 137 137 137 137 137 137 137 137 137 137 137 137
+305 305 305 305 305 305 305 305 305 305 305 305 305 305 305
+422 422 422 422 422 422 422 422 422 422 422 422 422 422 422
+473 473 473 473 473 473 473 473 473 473 473 473 473 473 473
+474 474 474 474 474 474 474 474 474 474 474 474 474 474 474
+475 475 475 475 475 475 475 475 475 475 475 475 475 475 475
+555 555 555 555 555 555 555 555 555 555 555 555 555 555 555
+1110 1110 1110 1110 1110 1110 1110 1110 1110 1110 1110 1110 1110 1110 1110
+1064 1064 1064 1064 1064 1064 1064 1064 1064 1064 1064 1064 1064 1064 1064
+801 801 801 801 801 801 801 801 801 801 801 801 801 801 801
+951 951 951 951 951 951 951 951 951 951 951 951 951 951 951
+948 948 948 948 948 948 948 948 948 948 948 948 948 948 948
+675 675 675 675 675 675 675 675 675 675 675 675 675 675 675
+1106 1106 1106 1106 1106 1106 1106 1106 1106 1106 1106 1106 1106 1106 1106
+1084 1084 1084 1084 1084 1084 1084 1084 1084 1084 1084 1084 1084 1084 1084
+1108 1108 1108 1108 1108 1108 1108 1108 1108 1108 1108 1108 1108 1108 1108
+676 676 676 676 676 676 676 676 676 676 676 676 676 676 676
+685 685 685 685 685 685 685 685 685 685 685 685 685 685 685
+803 803 803 803 803 803 803 803 803 803 803 803 803 803 803
+601 601 601 601 601 601 601 601 601 601 601 601 601 601 601
+947 947 947 947 947 947 947 947 947 947 947 947 947 947 947
+135 135 135 135 135 135 135 135 135 135 135 135 135 135 135
+256 256 256 256 256 256 256 256 256 256 256 256 256 256 256
+266 266 266 266 266 266 266 266 266 266 266 266 266 266 266
+304 304 304 304 304 304 304 304 304 304 304 304 304 304 304
+421 421 421 421 421 421 421 421 421 421 421 421 421 421 421
+953 953 953 953 953 953 953 953 953 953 953 953 953 953 953
+529 529 529 529 529 529 529 529 529 529 529 529 529 529 529
+677 677 677 677 677 677 677 677 677 677 677 677 677 677 677
+679 679 679 679 679 679 679 679 679 679 679 679 679 679 679
+680 680 680 680 680 680 680 680 680 680 680 680 680 680 680
+950 950 950 950 950 950 950 950 950 950 950 950 950 950 950
+647 647 647 647 647 647 647 647 647 647 647 647 647 647 647
+128 128 128 128 128 128 128 128 128 128 128 128 128 128 128
+139 139 139 139 139 139 139 139 139 139 139 139 139 139 139
+140 140 140 140 140 140 140 140 140 140 140 140 140 140 140
+262 262 262 262 262 262 262 262 262 262 262 262 262 262 262
+267 267 267 267 267 267 267 267 267 267 267 267 267 267 267
+946 946 946 946 946 946 946 946 946 946 946 946 946 946 946
+998 998 998 998 998 998 998 998 998 998 998 998 998 998 998
+1067 1067 1067 1067 1067 1067 1067 1067 1067 1067 1067 1067 1067 1067 1067
+1112 1112 1112 1112 1112 1112 1112 1112 1112 1112 1112 1112 1112 1112 1112
+599 599 599 599 599 599 599 599 599 599 599 599 599 599 599
+531 531 531 531 531 531 531 531 531 531 531 531 531 531 531
+645 645 645 645 645 645 645 645 645 645 645 645 645 645 645
+687 687 687 687 687 687 687 687 687 687 687 687 687 687 687
+682 682 682 682 682 682 682 682 682 682 682 682 682 682 682
+804 804 804 804 804 804 804 804 804 804 804 804 804 804 804
+806 806 806 806 806 806 806 806 806 806 806 806 806 806 806
+1087 1087 1087 1087 1087 1087 1087 1087 1087 1087 1087 1087 1087 1087 1087
+1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111
+683 683 683 683 683 683 683 683 683 683 683 683 683 683 683
+684 684 684 684 684 684 684 684 684 684 684 684 684 684 684
+134 134 134 134 134 134 134 134 134 134 134 134 134 134 134
+265 265 265 265 265 265 265 265 265 265 265 265 265 265 265
+388 388 388 388 388 388 388 388 388 388 388 388 388 388 388
+992 992 992 992 992 992 992 992 992 992 992 992 992 992 992
+646 646 646 646 646 646 646 646 646 646 646 646 646 646 646
+686 686 686 686 686 686 686 686 686 686 686 686 686 686 686
+808 808 808 808 808 808 808 808 808 808 808 808 808 808 808
+993 993 993 993 993 993 993 993 993 993 993 993 993 993 993
+976 976 976 976 976 976 976 976 976 976 976 976 976 976 976
+1068 1068 1068 1068 1068 1068 1068 1068 1068 1068 1068 1068 1068 1068 1068
+133 133 133 133 133 133 133 133 133 133 133 133 133 133 133
+264 264 264 264 264 264 264 264 264 264 264 264 264 264 264
+476 476 476 476 476 476 476 476 476 476 476 476 476 476 476
+973 973 973 973 973 973 973 973 973 973 973 973 973 973 973
+681 681 681 681 681 681 681 681 681 681 681 681 681 681 681
+952 952 952 952 952 952 952 952 952 952 952 952 952 952 952
+644 644 644 644 644 644 644 644 644 644 644 644 644 644 644
+678 678 678 678 678 678 678 678 678 678 678 678 678 678 678
+558 558 558 558 558 558 558 558 558 558 558 558 558 558 558
+985 985 985 985 985 985 985 985 985 985 985 985 985 985 985
+984 984 984 984 984 984 984 984 984 984 984 984 984 984 984
+258 258 258 258 258 258 258 258 258 258 258 258 258 258 258
+259 259 259 259 259 259 259 259 259 259 259 259 259 259 259
+263 263 263 263 263 263 263 263 263 263 263 263 263 263 263
+389 389 389 389 389 389 389 389 389 389 389 389 389 389 389
+974 974 974 974 974 974 974 974 974 974 974 974 974 974 974
+534 534 534 534 534 534 534 534 534 534 534 534 534 534 534
+990 990 990 990 990 990 990 990 990 990 990 990 990 990 990
+557 557 557 557 557 557 557 557 557 557 557 557 557 557 557
+129 129 129 129 129 129 129 129 129 129 129 129 129 129 129
+477 477 477 477 477 477 477 477 477 477 477 477 477 477 477
+1086 1086 1086 1086 1086 1086 1086 1086 1086 1086 1086 1086 1086 1086 1086
+643 643 643 643 643 643 643 643 643 643 643 643 643 643 643
+988 988 988 988 988 988 988 988 988 988 988 988 988 988 988
+991 991 991 991 991 991 991 991 991 991 991 991 991 991 991
+809 809 809 809 809 809 809 809 809 809 809 809 809 809 809
+811 811 811 811 811 811 811 811 811 811 811 811 811 811 811
+975 975 975 975 975 975 975 975 975 975 975 975 975 975 975
+642 642 642 642 642 642 642 642 642 642 642 642 642 642 642
+982 982 982 982 982 982 982 982 982 982 982 982 982 982 982
+1069 1069 1069 1069 1069 1069 1069 1069 1069 1069 1069 1069 1069 1069 1069
+130 130 130 130 130 130 130 130 130 130 130 130 130 130 130
+131 131 131 131 131 131 131 131 131 131 131 131 131 131 131
+257 257 257 257 257 257 257 257 257 257 257 257 257 257 257
+390 390 390 390 390 390 390 390 390 390 390 390 390 390 390
+391 391 391 391 391 391 391 391 391 391 391 391 391 391 391
+410 410 410 410 410 410 410 410 410 410 410 410 410 410 410
+1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000
+532 532 532 532 532 532 532 532 532 532 532 532 532 532 532
+983 983 983 983 983 983 983 983 983 983 983 983 983 983 983
+977 977 977 977 977 977 977 977 977 977 977 977 977 977 977
+989 989 989 989 989 989 989 989 989 989 989 989 989 989 989
+981 981 981 981 981 981 981 981 981 981 981 981 981 981 981
+980 980 980 980 980 980 980 980 980 980 980 980 980 980 980
+260 260 260 260 260 260 260 260 260 260 260 260 260 260 260
+392 392 392 392 392 392 392 392 392 392 392 392 392 392 392
+997 997 997 997 997 997 997 997 997 997 997 997 997 997 997
+533 533 533 533 533 533 533 533 533 533 533 533 533 533 533
+807 807 807 807 807 807 807 807 807 807 807 807 807 807 807
+810 810 810 810 810 810 810 810 810 810 810 810 810 810 810
+978 978 978 978 978 978 978 978 978 978 978 978 978 978 978
+972 972 972 972 972 972 972 972 972 972 972 972 972 972 972
+955 955 955 955 955 955 955 955 955 955 955 955 955 955 955
+261 261 261 261 261 261 261 261 261 261 261 261 261 261 261
+986 986 986 986 986 986 986 986 986 986 986 986 986 986 986
+994 994 994 994 994 994 994 994 994 994 994 994 994 994 994
+535 535 535 535 535 535 535 535 535 535 535 535 535 535 535
+979 979 979 979 979 979 979 979 979 979 979 979 979 979 979
+1089 1089 1089 1089 1089 1089 1089 1089 1089 1089 1089 1089 1089 1089 1089
+409 409 409 409 409 409 409 409 409 409 409 409 409 409 409
+954 954 954 954 954 954 954 954 954 954 954 954 954 954 954
+598 598 598 598 598 598 598 598 598 598 598 598 598 598 598
+813 813 813 813 813 813 813 813 813 813 813 813 813 813 813
+971 971 971 971 971 971 971 971 971 971 971 971 971 971 971
+995 995 995 995 995 995 995 995 995 995 995 995 995 995 995
+132 132 132 132 132 132 132 132 132 132 132 132 132 132 132
+970 970 970 970 970 970 970 970 970 970 970 970 970 970 970
+1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002
+1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001
+812 812 812 812 812 812 812 812 812 812 812 812 812 812 812
+958 958 958 958 958 958 958 958 958 958 958 958 958 958 958
+987 987 987 987 987 987 987 987 987 987 987 987 987 987 987
+536 536 536 536 536 536 536 536 536 536 536 536 536 536 536
+967 967 967 967 967 967 967 967 967 967 967 967 967 967 967
+999 999 999 999 999 999 999 999 999 999 999 999 999 999 999
+406 406 406 406 406 406 406 406 406 406 406 406 406 406 406
+408 408 408 408 408 408 408 408 408 408 408 408 408 408 408
+478 478 478 478 478 478 478 478 478 478 478 478 478 478 478
+886 886 886 886 886 886 886 886 886 886 886 886 886 886 886
+1088 1088 1088 1088 1088 1088 1088 1088 1088 1088 1088 1088 1088 1088 1088
+1113 1113 1113 1113 1113 1113 1113 1113 1113 1113 1113 1113 1113 1113 1113
+913 913 913 913 913 913 913 913 913 913 913 913 913 913 913
+965 965 965 965 965 965 965 965 965 965 965 965 965 965 965
+394 394 394 394 394 394 394 394 394 394 394 394 394 394 394
+405 405 405 405 405 405 405 405 405 405 405 405 405 405 405
+479 479 479 479 479 479 479 479 479 479 479 479 479 479 479
+956 956 956 956 956 956 956 956 956 956 956 956 956 956 956
+960 960 960 960 960 960 960 960 960 960 960 960 960 960 960
+1004 1004 1004 1004 1004 1004 1004 1004 1004 1004 1004 1004 1004 1004 1004
+640 640 640 640 640 640 640 640 640 640 640 640 640 640 640
+843 843 843 843 843 843 843 843 843 843 843 843 843 843 843
+851 851 851 851 851 851 851 851 851 851 851 851 851 851 851
+996 996 996 996 996 996 996 996 996 996 996 996 996 996 996
+919 919 919 919 919 919 919 919 919 919 919 919 919 919 919
+899 899 899 899 899 899 899 899 899 899 899 899 899 899 899
+407 407 407 407 407 407 407 407 407 407 407 407 407 407 407
+1118 1118 1118 1118 1118 1118 1118 1118 1118 1118 1118 1118 1118 1118 1118
+819 819 819 819 819 819 819 819 819 819 819 819 819 819 819
+1070 1070 1070 1070 1070 1070 1070 1070 1070 1070 1070 1070 1070 1070 1070
+559 559 559 559 559 559 559 559 559 559 559 559 559 559 559
+560 560 560 560 560 560 560 560 560 560 560 560 560 560 560
+1090 1090 1090 1090 1090 1090 1090 1090 1090 1090 1090 1090 1090 1090 1090
+827 827 827 827 827 827 827 827 827 827 827 827 827 827 827
+904 904 904 904 904 904 904 904 904 904 904 904 904 904 904
+1115 1115 1115 1115 1115 1115 1115 1115 1115 1115 1115 1115 1115 1115 1115
+815 815 815 815 815 815 815 815 815 815 815 815 815 815 815
+959 959 959 959 959 959 959 959 959 959 959 959 959 959 959
+966 966 966 966 966 966 966 966 966 966 966 966 966 966 966
+404 404 404 404 404 404 404 404 404 404 404 404 404 404 404
+561 561 561 561 561 561 561 561 561 561 561 561 561 561 561
+957 957 957 957 957 957 957 957 957 957 957 957 957 957 957
+969 969 969 969 969 969 969 969 969 969 969 969 969 969 969
+818 818 818 818 818 818 818 818 818 818 818 818 818 818 818
+823 823 823 823 823 823 823 823 823 823 823 823 823 823 823
+907 907 907 907 907 907 907 907 907 907 907 907 907 907 907
+915 915 915 915 915 915 915 915 915 915 915 915 915 915 915
+920 920 920 920 920 920 920 920 920 920 920 920 920 920 920
+641 641 641 641 641 641 641 641 641 641 641 641 641 641 641
+817 817 817 817 817 817 817 817 817 817 817 817 817 817 817
+896 896 896 896 896 896 896 896 896 896 896 896 896 896 896
+597 597 597 597 597 597 597 597 597 597 597 597 597 597 597
+1003 1003 1003 1003 1003 1003 1003 1003 1003 1003 1003 1003 1003 1003 1003
+968 968 968 968 968 968 968 968 968 968 968 968 968 968 968
+839 839 839 839 839 839 839 839 839 839 839 839 839 839 839
+849 849 849 849 849 849 849 849 849 849 849 849 849 849 849
+903 903 903 903 903 903 903 903 903 903 903 903 903 903 903
+912 912 912 912 912 912 912 912 912 912 912 912 912 912 912
+88 88 88 88 88 88 88 88 88 88 88 88 88 88 88
+393 393 393 393 393 393 393 393 393 393 393 393 393 393 393
+395 395 395 395 395 395 395 395 395 395 395 395 395 395 395
+480 480 480 480 480 480 480 480 480 480 480 480 480 480 480
+1009 1009 1009 1009 1009 1009 1009 1009 1009 1009 1009 1009 1009 1009 1009
+1116 1116 1116 1116 1116 1116 1116 1116 1116 1116 1116 1116 1116 1116 1116
+1008 1008 1008 1008 1008 1008 1008 1008 1008 1008 1008 1008 1008 1008 1008
+816 816 816 816 816 816 816 816 816 816 816 816 816 816 816
+846 846 846 846 846 846 846 846 846 846 846 846 846 846 846
+888 888 888 888 888 888 888 888 888 888 888 888 888 888 888
+1007 1007 1007 1007 1007 1007 1007 1007 1007 1007 1007 1007 1007 1007 1007
+820 820 820 820 820 820 820 820 820 820 820 820 820 820 820
+822 822 822 822 822 822 822 822 822 822 822 822 822 822 822
+844 844 844 844 844 844 844 844 844 844 844 844 844 844 844
+847 847 847 847 847 847 847 847 847 847 847 847 847 847 847
+885 885 885 885 885 885 885 885 885 885 885 885 885 885 885
+908 908 908 908 908 908 908 908 908 908 908 908 908 908 908
+396 396 396 396 396 396 396 396 396 396 396 396 396 396 396
+1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005
+850 850 850 850 850 850 850 850 850 850 850 850 850 850 850
+902 902 902 902 902 902 902 902 902 902 902 902 902 902 902
+906 906 906 906 906 906 906 906 906 906 906 906 906 906 906
+909 909 909 909 909 909 909 909 909 909 909 909 909 909 909
+963 963 963 963 963 963 963 963 963 963 963 963 963 963 963
+562 562 562 562 562 562 562 562 562 562 562 562 562 562 562
+828 828 828 828 828 828 828 828 828 828 828 828 828 828 828
+854 854 854 854 854 854 854 854 854 854 854 854 854 854 854
+891 891 891 891 891 891 891 891 891 891 891 891 891 891 891
+911 911 911 911 911 911 911 911 911 911 911 911 911 911 911
+961 961 961 961 961 961 961 961 961 961 961 961 961 961 961
+964 964 964 964 964 964 964 964 964 964 964 964 964 964 964
+856 856 856 856 856 856 856 856 856 856 856 856 856 856 856
+887 887 887 887 887 887 887 887 887 887 887 887 887 887 887
+914 914 914 914 914 914 914 914 914 914 914 914 914 914 914
+398 398 398 398 398 398 398 398 398 398 398 398 398 398 398
+403 403 403 403 403 403 403 403 403 403 403 403 403 403 403
+835 835 835 835 835 835 835 835 835 835 835 835 835 835 835
+840 840 840 840 840 840 840 840 840 840 840 840 840 840 840
+538 538 538 538 538 538 538 538 538 538 538 538 538 538 538
+636 636 636 636 636 636 636 636 636 636 636 636 636 636 636
+637 637 637 637 637 637 637 637 637 637 637 637 637 637 637
+838 838 838 838 838 838 838 838 838 838 838 838 838 838 838
+853 853 853 853 853 853 853 853 853 853 853 853 853 853 853
+897 897 897 897 897 897 897 897 897 897 897 897 897 897 897
+400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
+814 814 814 814 814 814 814 814 814 814 814 814 814 814 814
+834 834 834 834 834 834 834 834 834 834 834 834 834 834 834
+889 889 889 889 889 889 889 889 889 889 889 889 889 889 889
+1012 1012 1012 1012 1012 1012 1012 1012 1012 1012 1012 1012 1012 1012 1012
+962 962 962 962 962 962 962 962 962 962 962 962 962 962 962
+821 821 821 821 821 821 821 821 821 821 821 821 821 821 821
+824 824 824 824 824 824 824 824 824 824 824 824 824 824 824
+831 831 831 831 831 831 831 831 831 831 831 831 831 831 831
+892 892 892 892 892 892 892 892 892 892 892 892 892 892 892
+893 893 893 893 893 893 893 893 893 893 893 893 893 893 893
+895 895 895 895 895 895 895 895 895 895 895 895 895 895 895
+910 910 910 910 910 910 910 910 910 910 910 910 910 910 910
+830 830 830 830 830 830 830 830 830 830 830 830 830 830 830
+837 837 837 837 837 837 837 837 837 837 837 837 837 837 837
+852 852 852 852 852 852 852 852 852 852 852 852 852 852 852
+894 894 894 894 894 894 894 894 894 894 894 894 894 894 894
+397 397 397 397 397 397 397 397 397 397 397 397 397 397 397
+727 727 727 727 727 727 727 727 727 727 727 727 727 727 727
+1011 1011 1011 1011 1011 1011 1011 1011 1011 1011 1011 1011 1011 1011 1011
+841 841 841 841 841 841 841 841 841 841 841 841 841 841 841
+905 905 905 905 905 905 905 905 905 905 905 905 905 905 905
+918 918 918 918 918 918 918 918 918 918 918 918 918 918 918
+923 923 923 923 923 923 923 923 923 923 923 923 923 923 923
+898 898 898 898 898 898 898 898 898 898 898 898 898 898 898
+916 916 916 916 916 916 916 916 916 916 916 916 916 916 916
+399 399 399 399 399 399 399 399 399 399 399 399 399 399 399
+401 401 401 401 401 401 401 401 401 401 401 401 401 401 401
+402 402 402 402 402 402 402 402 402 402 402 402 402 402 402
+845 845 845 845 845 845 845 845 845 845 845 845 845 845 845
+901 901 901 901 901 901 901 901 901 901 901 901 901 901 901
+917 917 917 917 917 917 917 917 917 917 917 917 917 917 917
+638 638 638 638 638 638 638 638 638 638 638 638 638 638 638
+832 832 832 832 832 832 832 832 832 832 832 832 832 832 832
+836 836 836 836 836 836 836 836 836 836 836 836 836 836 836
+890 890 890 890 890 890 890 890 890 890 890 890 890 890 890
+617 617 617 617 617 617 617 617 617 617 617 617 617 617 617
+619 619 619 619 619 619 619 619 619 619 619 619 619 619 619
+639 639 639 639 639 639 639 639 639 639 639 639 639 639 639
+825 825 825 825 825 825 825 825 825 825 825 825 825 825 825
+829 829 829 829 829 829 829 829 829 829 829 829 829 829 829
+884 884 884 884 884 884 884 884 884 884 884 884 884 884 884
+537 537 537 537 537 537 537 537 537 537 537 537 537 537 537
+634 634 634 634 634 634 634 634 634 634 634 634 634 634 634
+833 833 833 833 833 833 833 833 833 833 833 833 833 833 833
+924 924 924 924 924 924 924 924 924 924 924 924 924 924 924
+826 826 826 826 826 826 826 826 826 826 826 826 826 826 826
+618 618 618 618 618 618 618 618 618 618 618 618 618 618 618
+855 855 855 855 855 855 855 855 855 855 855 855 855 855 855
+539 539 539 539 539 539 539 539 539 539 539 539 539 539 539
+615 615 615 615 615 615 615 615 615 615 615 615 615 615 615
+900 900 900 900 900 900 900 900 900 900 900 900 900 900 900
+921 921 921 921 921 921 921 921 921 921 921 921 921 921 921
+1114 1114 1114 1114 1114 1114 1114 1114 1114 1114 1114 1114 1114 1114 1114
+612 612 612 612 612 612 612 612 612 612 612 612 612 612 612
+626 626 626 626 626 626 626 626 626 626 626 626 626 626 626
+635 635 635 635 635 635 635 635 635 635 635 635 635 635 635
+842 842 842 842 842 842 842 842 842 842 842 842 842 842 842
+1010 1010 1010 1010 1010 1010 1010 1010 1010 1010 1010 1010 1010 1010 1010
+1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006
+848 848 848 848 848 848 848 848 848 848 848 848 848 848 848
+926 926 926 926 926 926 926 926 926 926 926 926 926 926 926
+623 623 623 623 623 623 623 623 623 623 623 623 623 623 623
+625 625 625 625 625 625 625 625 625 625 625 625 625 625 625
+624 624 624 624 624 624 624 624 624 624 624 624 624 624 624
+922 922 922 922 922 922 922 922 922 922 922 922 922 922 922
+1072 1072 1072 1072 1072 1072 1072 1072 1072 1072 1072 1072 1072 1072 1072
+1117 1117 1117 1117 1117 1117 1117 1117 1117 1117 1117 1117 1117 1117 1117
+627 627 627 627 627 627 627 627 627 627 627 627 627 627 627
+1071 1071 1071 1071 1071 1071 1071 1071 1071 1071 1071 1071 1071 1071 1071
+563 563 563 563 563 563 563 563 563 563 563 563 563 563 563
+1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014
+631 631 631 631 631 631 631 631 631 631 631 631 631 631 631
+927 927 927 927 927 927 927 927 927 927 927 927 927 927 927
+1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013
+632 632 632 632 632 632 632 632 632 632 632 632 632 632 632
+614 614 614 614 614 614 614 614 614 614 614 614 614 614 614
+633 633 633 633 633 633 633 633 633 633 633 633 633 633 633
+1120 1120 1120 1120 1120 1120 1120 1120 1120 1120 1120 1120 1120 1120 1120
+616 616 616 616 616 616 616 616 616 616 616 616 616 616 616
+620 620 620 620 620 620 620 620 620 620 620 620 620 620 620
+613 613 613 613 613 613 613 613 613 613 613 613 613 613 613
+630 630 630 630 630 630 630 630 630 630 630 630 630 630 630
+628 628 628 628 628 628 628 628 628 628 628 628 628 628 628
+1015 1015 1015 1015 1015 1015 1015 1015 1015 1015 1015 1015 1015 1015 1015
+1119 1119 1119 1119 1119 1119 1119 1119 1119 1119 1119 1119 1119 1119 1119
+1121 1121 1121 1121 1121 1121 1121 1121 1121 1121 1121 1121 1121 1121 1121
+564 564 564 564 564 564 564 564 564 564 564 564 564 564 564
+596 596 596 596 596 596 596 596 596 596 596 596 596 596 596
+1016 1016 1016 1016 1016 1016 1016 1016 1016 1016 1016 1016 1016 1016 1016
+1122 1122 1122 1122 1122 1122 1122 1122 1122 1122 1122 1122 1122 1122 1122
+565 565 565 565 565 565 565 565 565 565 565 565 565 565 565
+595 595 595 595 595 595 595 595 595 595 595 595 595 595 595
+1123 1123 1123 1123 1123 1123 1123 1123 1123 1123 1123 1123 1123 1123 1123
+1124 1124 1124 1124 1124 1124 1124 1124 1124 1124 1124 1124 1124 1124 1124
+1126 1126 1126 1126 1126 1126 1126 1126 1126 1126 1126 1126 1126 1126 1126
+1125 1125 1125 1125 1125 1125 1125 1125 1125 1125 1125 1125 1125 1125 1125
+1127 1127 1127 1127 1127 1127 1127 1127 1127 1127 1127 1127 1127 1127 1127
+1129 1129 1129 1129 1129 1129 1129 1129 1129 1129 1129 1129 1129 1129 1129
+1130 1130 1130 1130 1130 1130 1130 1130 1130 1130 1130 1130 1130 1130 1130
+1128 1128 1128 1128 1128 1128 1128 1128 1128 1128 1128 1128 1128 1128 1128
+1131 1131 1131 1131 1131 1131 1131 1131 1131 1131 1131 1131 1131 1131 1131
+1132 1132 1132 1132 1132 1132 1132 1132 1132 1132 1132 1132 1132 1132 1132
+1133 1133 1133 1133 1133 1133 1133 1133 1133 1133 1133 1133 1133 1133 1133
+1134 1134 1134 1134 1134 1134 1134 1134 1134 1134 1134 1134 1134 1134 1134
+1135 1135 1135 1135 1135 1135 1135 1135 1135 1135 1135 1135 1135 1135 1135
+107 107 107 107 107 107 107 107 107 107 107 107 107 107 107
+109 109 109 109 109 109 109 109 109 109 109 109 109 109 109
+110 110 110 110 110 110 110 110 110 110 110 110 110 110 110
+111 111 111 111 111 111 111 111 111 111 111 111 111 111 111
+112 112 112 112 112 112 112 112 112 112 112 112 112 112 112
+113 113 113 113 113 113 113 113 113 113 113 113 113 113 113
+181 181 181 181 181 181 181 181 181 181 181 181 181 181 181
+182 182 182 182 182 182 182 182 182 182 182 182 182 182 182
+183 183 183 183 183 183 183 183 183 183 183 183 183 183 183
+184 184 184 184 184 184 184 184 184 184 184 184 184 184 184
+185 185 185 185 185 185 185 185 185 185 185 185 185 185 185
+186 186 186 186 186 186 186 186 186 186 186 186 186 186 186
+187 187 187 187 187 187 187 187 187 187 187 187 187 187 187
+188 188 188 188 188 188 188 188 188 188 188 188 188 188 188
+189 189 189 189 189 189 189 189 189 189 189 189 189 189 189
+190 190 190 190 190 190 190 190 190 190 190 190 190 190 190
+191 191 191 191 191 191 191 191 191 191 191 191 191 191 191
+192 192 192 192 192 192 192 192 192 192 192 192 192 192 192
+193 193 193 193 193 193 193 193 193 193 193 193 193 193 193
+194 194 194 194 194 194 194 194 194 194 194 194 194 194 194
+195 195 195 195 195 195 195 195 195 195 195 195 195 195 195
+196 196 196 196 196 196 196 196 196 196 196 196 196 196 196
+197 197 197 197 197 197 197 197 197 197 197 197 197 197 197
+198 198 198 198 198 198 198 198 198 198 198 198 198 198 198
+199 199 199 199 199 199 199 199 199 199 199 199 199 199 199
+200 200 200 200 200 200 200 200 200 200 200 200 200 200 200
+201 201 201 201 201 201 201 201 201 201 201 201 201 201 201
+202 202 202 202 202 202 202 202 202 202 202 202 202 202 202
+204 204 204 204 204 204 204 204 204 204 204 204 204 204 204
+207 207 207 207 207 207 207 207 207 207 207 207 207 207 207
+208 208 208 208 208 208 208 208 208 208 208 208 208 208 208
+210 210 210 210 210 210 210 210 210 210 210 210 210 210 210
+211 211 211 211 211 211 211 211 211 211 211 211 211 211 211
+212 212 212 212 212 212 212 212 212 212 212 212 212 212 212
+213 213 213 213 213 213 213 213 213 213 213 213 213 213 213
+1136 1136 1136 1136 1136 1136 1136 1136 1136 1136 1136 1136 1136 1136 1136
+1137 1137 1137 1137 1137 1137 1137 1137 1137 1137 1137 1137 1137 1137 1137
+1138 1138 1138 1138 1138 1138 1138 1138 1138 1138 1138 1138 1138 1138 1138
+1139 1139 1139 1139 1139 1139 1139 1139 1139 1139 1139 1139 1139 1139 1139
+1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140
+1141 1141 1141 1141 1141 1141 1141 1141 1141 1141 1141 1141 1141 1141 1141
+1142 1142 1142 1142 1142 1142 1142 1142 1142 1142 1142 1142 1142 1142 1142
+1143 1143 1143 1143 1143 1143 1143 1143 1143 1143 1143 1143 1143 1143 1143
+1144 1144 1144 1144 1144 1144 1144 1144 1144 1144 1144 1144 1144 1144 1144 \ No newline at end of file
diff --git a/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_3_ber_input.data b/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_3_ber_input.data
new file mode 100644
index 0000000000..a2e96c03fb
--- /dev/null
+++ b/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_3_ber_input.data
@@ -0,0 +1,15 @@
+119604884989710 117893113146266 119961569424429
+119604884989710 119714728292752 122682051236411
+119604884989710 119199001807203 120828208481139
+138577843235574 115736541071449 114769515685024
+138577843235574 116734584712217 116902715942066
+138577843235574 117720315447369 118691323419582
+138577843235574 118978409481208 120635925520555
+138577843235574 120028056620944 122099518606753
+138577843235574 121204090193594 123657778236324
+138577843235574 121997874162583 124362990942076
+154956632530334 125835009812727 128188261477494
+154956632530334 126892518467610 129374856162538
+154956632530334 128821163608969 132161630933678
+154956632530334 131238471047641 135622491436169
+154956632530334 133648116558829 138730892899880 \ No newline at end of file
diff --git a/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_4_cursor_input.data b/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_4_cursor_input.data
new file mode 100644
index 0000000000..32c60bbffd
--- /dev/null
+++ b/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_4_cursor_input.data
@@ -0,0 +1 @@
+383 380 358 349 360 369 376 381 385 387 388 400 411 419 424 \ No newline at end of file
diff --git a/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_OUT_1_tone_map_output.data b/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_OUT_1_tone_map_output.data
new file mode 100644
index 0000000000..c3b33a8448
--- /dev/null
+++ b/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_OUT_1_tone_map_output.data
@@ -0,0 +1,1536 @@
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 8 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 8 10 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+10 10 8 10 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 8 8 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 10 10
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 8 8 10 10 10 10 10 10 10 10 10 10 10 10
+10 8 8 8 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+10 8 8 8 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 10
+10 8 8 8 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 8 8 8 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 8 8 8 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+10 8 8 8 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+10 8 8 8 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+10 8 8 8 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+10 8 8 8 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 8 8 8 8 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 10 10 10 10 10
+10 8 8 8 8 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 10 10 10 10 10
+10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 8 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+8 6 6 6 6 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 8 8 8 8 8 8 8 8
+8 8 6 8 8 8 8 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 4 4 4 4 6 6 6 6 6 6 6 6 6 6
+4 4 4 4 4 4 4 4 4 4 4 6 6 6 6
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 8 8 8 8
+8 6 6 6 6 8 8 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 8 8 8 8
+8 8 6 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 6 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 8 8 8
+8 6 6 6 6 6 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 6 8 8 8 8 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 8 8 8 8 8 8 8 8
+8 6 6 6 6 6 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 6 6 6 6 6 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+8 6 6 6 6 8 8 8 8 8 8 8 8 8 8
+8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+8 6 6 6 6 6 8 8 8 8 8 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 8 8 8 8
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+4 4 4 4 4 4 4 4 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 6 6 6 6
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 3 3 3 3 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+1 1 1 1 1 1 1 1 1 1 1 2 2 2 2
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
+1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+0 0 0 0 0 0 1 1 1 1 1 1 1 1 1
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \ No newline at end of file
diff --git a/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_OUT_2_cursor_output.data b/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_OUT_2_cursor_output.data
new file mode 100644
index 0000000000..f93014cf23
--- /dev/null
+++ b/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_OUT_2_cursor_output.data
@@ -0,0 +1 @@
+380 358 349 360 369 376 381 385 387 388 400 411 419 424 426 \ No newline at end of file
diff --git a/cesar/ce/rx/bitloading/test/src/test_bl.c b/cesar/ce/rx/bitloading/test/src/test_bl.c
index 90dc04d6f5..f0729b55d8 100644
--- a/cesar/ce/rx/bitloading/test/src/test_bl.c
+++ b/cesar/ce/rx/bitloading/test/src/test_bl.c
@@ -42,6 +42,12 @@
#include "tonemap_initial_3db_nsr_margin_0_01_ber_margin.h"
#include "tonemap_initial_under_ber_0db_nsr_margin_0_00_ber_margin.h"
#include "bl_iteratif_opti_table_shift.h"
+#include "bl_iteratif_tm_update_new_tm_IN_1_tone_map_input.h"
+#include "bl_iteratif_tm_update_new_tm_IN_2_opti_table.h"
+#include "bl_iteratif_tm_update_new_tm_IN_3_ber_input.h"
+#include "bl_iteratif_tm_update_new_tm_IN_4_cursor_input.h"
+#include "bl_iteratif_tm_update_new_tm_OUT_1_tone_map_output.h"
+#include "bl_iteratif_tm_update_new_tm_OUT_2_cursor_output.h"
#include <float.h>
#include <stdio.h>
@@ -1376,6 +1382,7 @@ test_suite_ce_rx_bl_tm_update (test_t t)
}
/* Is this the end ? */
+ cpt2 = 0;
for (cpt = 0; cpt < 9; cpt++)
if (all[cpt] >= test_limit)
cpt2++;
@@ -1387,6 +1394,460 @@ test_suite_ce_rx_bl_tm_update (test_t t)
cpt2 = 0;
}
} test_end;
+
+ /**
+ * Test for creating a new tone map based on old one with some
+ * adjustments done using the optimisation table.
+ * This test verify that we do not compute a new tone map when we
+ * we don't need to.
+ */
+ test_begin (t, "Verify that we don't do any thing when we don't need to")
+ {
+ ce_rx_bl_tone_map_update_status_t out = 0;
+ u64 ber_target = 0;
+ u64 means[CE_RX_BL_BER_SLIDING_MEAN_NB];
+ u16 opti[PHY_CARRIER_NB];
+ uint opti_cursor = 0;
+ uint tone_en = 0;
+ tonemap_t *new_tonemap = NULL;
+ tonemap_t *tm = NULL;
+
+ tm = tonemap_alloc ();
+ ber_target = 100;
+ means[CE_RX_BL_BER_SLIDING_MEAN_FAST] = 99;
+ means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] = 98;
+ opti_cursor = 100;
+ out = ce_rx_bl_tone_map_update_compute_new_tonemap (ber_target,
+ means,
+ opti,
+ &opti_cursor,
+ tm,
+ tone_en,
+ &new_tonemap);
+ test_fail_if (out != CE_RX_BL_TONE_MAP_UPDATE_STATUS_NOTHING);
+ test_fail_if (new_tonemap != NULL);
+ test_fail_if (opti_cursor != 100);
+ tonemap_free (tm);
+ } test_end;
+
+ /**
+ * Test for creating a new tone map based on old one with some
+ * adjustments done using the optimisation table.
+ * This test verify that we correctly compute a new tone when we have
+ * to do a Tone Map +.
+ */
+ test_begin (t, "Verify TM+ in a classic case")
+ {
+ ce_rx_bl_tone_map_update_status_t out = 0;
+ u64 ber_target = 0;
+ u64 means[CE_RX_BL_BER_SLIDING_MEAN_NB];
+ u16 opti[PHY_CARRIER_NB];
+ uint opti_cursor = 0;
+ uint tone_en = 0;
+ tonemap_t *new_tonemap = NULL;
+ tonemap_t *tm = NULL;
+ tonemask_info_t ti;
+
+ uint i = 0;
+ uint old_opti_cursor = 0;
+ uint bits_per_symbol = 0;
+
+ /* Preparing input data and supposed output. */
+ ti.carrier_nb = tonemask_default (ti.tonemask);
+ tm = tonemap_alloc ();
+ tone_en = ti.carrier_nb;
+ uint pos_opti = 0;
+ uint tone_index_real = 0;
+#define TONEMAP_WRITE_OPEN {
+#define TONEMAP_WRITE_CLOSE }
+ TONEMAP_WRITE_BEGIN (tm, ti.tonemask)
+ {
+ opti[pos_opti++] = tone_index_real++;
+ TONEMAP_WRITE_MOD (1);
+ tm->bits_per_symbol += CE_BIT_PER_MOD[1];
+ }
+ TONEMAP_WRITE_CLOSE
+ else
+ TONEMAP_WRITE_OPEN
+ {
+ tone_index_real++;
+ }
+ TONEMAP_WRITE_END;
+#undef TONEMAP_WRITE_OPEN
+#undef TONEMAP_WRITE_CLOSE
+ opti_cursor = tone_en / 2;
+ old_opti_cursor = opti_cursor;
+ /* Produce a TM+ operation. */
+ ber_target = 100;
+ means[CE_RX_BL_BER_SLIDING_MEAN_FAST] = 40;
+ means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] = 30;
+
+ /* Test. */
+ out = ce_rx_bl_tone_map_update_compute_new_tonemap (ber_target,
+ means,
+ opti,
+ &opti_cursor,
+ tm,
+ tone_en,
+ &new_tonemap);
+
+ /* Check basic errors. */
+ if (ce_rx_bl_tone_map_update_count (CE_RX_BL_TONE_MAP_UPDATE_PLUS,
+ ber_target, means) + opti_cursor <= tone_en)
+ {
+ test_fail_if (out != CE_RX_BL_TONE_MAP_UPDATE_STATUS_OK);
+ test_fail_if (opti_cursor != old_opti_cursor
+ + ce_rx_bl_tone_map_update_count (
+ CE_RX_BL_TONE_MAP_UPDATE_PLUS, ber_target, means));
+ }
+ else
+ {
+ test_fail_if (out !=
+ CE_RX_BL_TONE_MAP_UPDATE_STATUS_OUT_OF_RANGE_MAX);
+ test_fail_if (opti_cursor != tone_en - 1);
+ }
+ test_fail_if (new_tonemap == NULL);
+
+ /* Verify updated values in the new tone map */
+ for (i = old_opti_cursor; i < opti_cursor; i++)
+ {
+ u32 *word_ptr_old = NULL;
+ u32 *word_ptr_new = NULL;
+ u8 mod_old = tonemap_get_tone (tm,
+ opti[i],
+ &word_ptr_old);
+ u8 mod_new = tonemap_get_tone (new_tonemap,
+ opti[i],
+ &word_ptr_new);
+ test_fail_if (mod_old != 1);
+ test_fail_if (mod_new != 2);
+
+ bits_per_symbol += CE_BIT_PER_MOD[mod_new];
+ bits_per_symbol -= CE_BIT_PER_MOD[mod_old];
+ }
+
+ /* Check that bits per symbol is ok. */
+ test_fail_if (tm->bits_per_symbol + bits_per_symbol !=
+ new_tonemap->bits_per_symbol);
+
+ /* Cleanup */
+ tonemap_free (tm);
+ tonemap_free (new_tonemap);
+ } test_end;
+
+ /**
+ * Test for creating a new tone map based on old one with some
+ * adjustments done using the optimisation table.
+ * This test verify that we correctly compute a new tone when we have
+ * to do a Tone Map -.
+ */
+ test_begin (t, "Verify TM- in a classic case")
+ {
+ ce_rx_bl_tone_map_update_status_t out = 0;
+ u64 ber_target = 0;
+ u64 means[CE_RX_BL_BER_SLIDING_MEAN_NB];
+ u16 opti[PHY_CARRIER_NB];
+ uint opti_cursor = 0;
+ uint tone_en = 0;
+ tonemap_t *new_tonemap = NULL;
+ tonemap_t *tm = NULL;
+ tonemask_info_t ti;
+
+ uint i = 0;
+ uint old_opti_cursor = 0;
+ uint bits_per_symbol = 0;
+
+ /* Preparing input data and supposed output. */
+ ti.carrier_nb = tonemask_default (ti.tonemask);
+ tm = tonemap_alloc ();
+ tone_en = ti.carrier_nb;
+ uint pos_opti = 0;
+ uint tone_index_real = 0;
+#define TONEMAP_WRITE_OPEN {
+#define TONEMAP_WRITE_CLOSE }
+ TONEMAP_WRITE_BEGIN (tm, ti.tonemask)
+ {
+ opti[pos_opti++] = tone_index_real++;
+ TONEMAP_WRITE_MOD (1);
+ tm->bits_per_symbol += CE_BIT_PER_MOD[1];
+ }
+ TONEMAP_WRITE_CLOSE
+ else
+ TONEMAP_WRITE_OPEN
+ {
+ tone_index_real++;
+ }
+ TONEMAP_WRITE_END;
+#undef TONEMAP_WRITE_OPEN
+#undef TONEMAP_WRITE_CLOSE
+ opti_cursor = tone_en / 2;
+ old_opti_cursor = opti_cursor;
+ /* Produce a TM- operation. */
+ ber_target = 100;
+ means[CE_RX_BL_BER_SLIDING_MEAN_FAST] = 120;
+ means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] = 123;
+
+ /* Test. */
+ out = ce_rx_bl_tone_map_update_compute_new_tonemap (ber_target,
+ means,
+ opti,
+ &opti_cursor,
+ tm,
+ tone_en,
+ &new_tonemap);
+
+ /* Check basic errors. */
+ if ((int) opti_cursor - (int) ce_rx_bl_tone_map_update_count (
+ CE_RX_BL_TONE_MAP_UPDATE_MINUS, ber_target, means) >= 0)
+ {
+ test_fail_if (out != CE_RX_BL_TONE_MAP_UPDATE_STATUS_OK);
+ test_fail_if (opti_cursor != old_opti_cursor -
+ ce_rx_bl_tone_map_update_count (CE_RX_BL_TONE_MAP_UPDATE_MINUS
+ , ber_target, means));
+ }
+ else
+ {
+ test_fail_if (out !=
+ CE_RX_BL_TONE_MAP_UPDATE_STATUS_OUT_OF_RANGE_MIN);
+ test_fail_if (opti_cursor != tone_en - 1);
+ }
+ test_fail_if (new_tonemap == NULL);
+
+ /* Verify updated values in the new tone map */
+ for (i = opti_cursor;
+ i < old_opti_cursor;
+ i++)
+ {
+ u32 *word_ptr_old = NULL;
+ u32 *word_ptr_new = NULL;
+ u8 mod_old = tonemap_get_tone (tm,
+ opti[i],
+ &word_ptr_old);
+ u8 mod_new = tonemap_get_tone (new_tonemap,
+ opti[i],
+ &word_ptr_new);
+
+ test_fail_if (mod_old != 1);
+ test_fail_if (mod_new != 0);
+
+ bits_per_symbol += CE_BIT_PER_MOD[mod_new];
+ bits_per_symbol -= CE_BIT_PER_MOD[mod_old];
+ }
+
+ /* Check that bits per symbol is ok. */
+ test_fail_if (tm->bits_per_symbol + bits_per_symbol !=
+ new_tonemap->bits_per_symbol);
+
+ /* Cleanup */
+ tonemap_free (tm);
+ if (new_tonemap)
+ tonemap_free (new_tonemap);
+ } test_end;
+
+ /*
+ * Test if the computation of a new tone map after a tone map update
+ * operation is correct. Data used here come from vector test.
+ */
+ test_begin (t, "test tone map creation using tone map update (test vector)")
+ {
+ u16 t;
+ u64 i,j;
+ /* Preparing data from test vector. */
+ /* Tone map input from
+ * bl_iteratif_tm_update_new_tm_IN_1_tone_map_input.data. */
+ tonemap_t *tm_in = tonemap_alloc ();
+ /* Optimisation table from
+ * bl_iteratif_tm_update_new_tm_IN_2_opti_table.data. */
+ u16 opti[PHY_CARRIER_NB];
+ /* Ber target (and sliding means) input from
+ * bl_iteratif_tm_update_new_tm_IN_3_ber_input.data. */
+ u64 ber_target;
+ u64 means[CE_RX_BL_BER_SLIDING_MEAN_NB];
+ /* Cursor input position from
+ * bl_iteratif_tm_update_new_tm_IN_4_cursor_input.data. */
+ uint curs_in;
+ /* Tone map output from
+ * bl_iteratif_tm_update_new_tm_OUT_1_tone_map_output.data. */
+ tonemap_t *tm_out = tonemap_alloc ();
+ /* Cursor output position from
+ * bl_iteratif_tm_update_new_tm_OUT_2_cursor_output.data. */
+ uint curs_out;
+ /* Default tonemask. */
+ tonemask_info_t dtmask;
+ tonemask_default (dtmask.tonemask);
+ /* Variables to check sanity of test vectors. */
+ u16 shift_count;
+ ce_rx_bl_tone_map_update_actions_t action;
+ /* Variables to check function output. */
+ tonemap_t *computed_tm;
+ ce_rx_bl_tone_map_update_status_t status;
+ uint test_curs;
+ /* The opposite of CE_BIT_PER_MOD. */
+ uint ce_mod_per_bit[CE_BIT_PER_MOD[CE_MOD_COUNT - 1]];
+ for (i = 0; i < CE_MOD_COUNT; i++)
+ ce_mod_per_bit[CE_BIT_PER_MOD[i]] = i;
+
+ /* For each tone maps, test the computation of the new tone map based
+ * on the optimisation table and ber parameters. */
+ for (t = 0;
+ t < bl_iteratif_tm_update_new_tm_IN_1_tone_map_input_width;
+ t++)
+ {
+ /* Fill with data from test vector. */
+ /* Input tone map. */
+ j = 0;
+#define TONEMAP_WRITE_OPEN {
+#define TONEMAP_WRITE_CLOSE }
+ TONEMAP_WRITE_BEGIN (tm_in, dtmask.tonemask)
+ {
+ TONEMAP_WRITE_MOD (
+ ce_mod_per_bit[
+ bl_iteratif_tm_update_new_tm_IN_1_tone_map_input[j][t]
+ ]);
+ j++;
+ }
+ TONEMAP_WRITE_CLOSE
+ else
+ TONEMAP_WRITE_OPEN
+ {
+ j++;
+ }
+ TONEMAP_WRITE_END;
+#undef TONEMAP_WRITE_OPEN
+#undef TONEMAP_WRITE_CLOSE
+ /* Optimisation table. */
+ for (i = 0;
+ i < bl_iteratif_tm_update_new_tm_IN_2_opti_table_height;
+ i++)
+ /* The first 75 carriers are not considered, look
+ * documentation of tonemask_default in
+ * mac/common/src/tonemask.c. The soustracted value is 75 (and
+ * not 74 because the input data begin at 1 (and not 0). */
+ opti[i] = bl_iteratif_tm_update_new_tm_IN_2_opti_table[i][t]
+ - (PHY_CARRIER_OFFSET + 1);
+ /* Ber target. */
+ ber_target = bl_iteratif_tm_update_new_tm_IN_3_ber_input[t][0];
+ /* Slow mean. */
+ means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] =
+ bl_iteratif_tm_update_new_tm_IN_3_ber_input[t][1];
+ /* Fast Mean. */
+ means[CE_RX_BL_BER_SLIDING_MEAN_FAST] =
+ bl_iteratif_tm_update_new_tm_IN_3_ber_input[t][2];
+ /* Input Cursor. */
+ curs_in = bl_iteratif_tm_update_new_tm_IN_4_cursor_input[0][t];
+ test_curs = curs_in;
+ /* Output tone map. */
+ j = 0;
+#define TONEMAP_WRITE_OPEN {
+#define TONEMAP_WRITE_CLOSE }
+ TONEMAP_WRITE_BEGIN (tm_out, dtmask.tonemask)
+ {
+ TONEMAP_WRITE_MOD (
+ ce_mod_per_bit[
+ bl_iteratif_tm_update_new_tm_OUT_1_tone_map_output[j][t]
+ ]);
+ j++;
+ }
+ TONEMAP_WRITE_CLOSE
+ else
+ TONEMAP_WRITE_OPEN
+ {
+ j++;
+ }
+ TONEMAP_WRITE_END;
+#undef TONEMAP_WRITE_OPEN
+#undef TONEMAP_WRITE_CLOSE
+ /* Output cursor. */
+ curs_out = bl_iteratif_tm_update_new_tm_OUT_2_cursor_output[0][t];
+
+ /* Sanity check: is the shift count is valid ? */
+ action = ce_rx_bl_tone_map_update_action (ber_target,
+ means);
+ shift_count = MAX (curs_in, curs_out) - MIN (curs_in, curs_out);
+ test_fail_if (shift_count !=
+ ce_rx_bl_tone_map_update_count (action,
+ ber_target,
+ means));
+
+ /* Sanity check: is the optimisation table valid ?
+ * At the cursor position and after, tones should be strictly
+ * under a modulation of 10 bits (except the end of the table).
+ * Below the cursor, tones should > 0. */
+ for (i = 0; i < dtmask.carrier_nb; i++)
+ {
+ u32 *word_ptr = NULL;
+ u8 mod = tonemap_get_tone (tm_in,
+ opti[i],
+ &word_ptr);
+ if (i < curs_in)
+ test_fail_if (mod == 0);
+ }
+
+ /* Test function. */
+ status = ce_rx_bl_tone_map_update_compute_new_tonemap (
+ ber_target,
+ means,
+ opti,
+ &test_curs,
+ tm_in,
+ dtmask.carrier_nb,
+ &computed_tm);
+
+ /* Check status. */
+ test_fail_if (status == CE_RX_BL_TONE_MAP_UPDATE_STATUS_ERROR);
+
+ /* Check if the new cursor position is well computed. */
+ test_fail_if (test_curs != curs_out);
+
+ /* Check if the generated tone map is the same. */
+ u32 *word_ptr_out = NULL;
+ u32 *word_ptr_in = NULL;
+ u32 *word_ptr_cpt = NULL;
+ u8 mod_out;
+ u8 mod_in;
+ u8 mod_cpt;
+ for (i = 0; i < dtmask.carrier_nb; i++)
+ {
+ mod_out = tonemap_get_tone (tm_out,
+ opti[i],
+ &word_ptr_out);
+ mod_in = tonemap_get_tone (tm_in,
+ opti[i],
+ &word_ptr_in);
+ mod_cpt = tonemap_get_tone (computed_tm,
+ opti[i],
+ &word_ptr_cpt);
+
+ if (action == CE_RX_BL_TONE_MAP_UPDATE_MINUS)
+ {
+ if (i >= curs_out && i < curs_in)
+ {
+ test_fail_if (mod_out != 0 && mod_out != mod_in - 1);
+ test_fail_if (mod_cpt != mod_out);
+ }
+ else
+ test_fail_if ((mod_out != mod_in)
+ || (mod_out != mod_cpt));
+ }
+ if (action == CE_RX_BL_TONE_MAP_UPDATE_PLUS)
+ {
+ if (i < curs_out && i >= curs_in)
+ {
+ test_fail_if (mod_out != CE_MOD_COUNT - 1
+ && mod_out != mod_in + 1);
+ test_fail_if (mod_cpt != mod_out);
+ }
+ else
+ test_fail_if ((mod_out != mod_in)
+ || (mod_out != mod_cpt));
+ }
+ }
+ /* Clean. */
+ tonemap_free (computed_tm);
+ }
+ tonemap_free (tm_in);
+ tonemap_free (tm_out);
+ } test_end;
}
int