diff --git a/crates/daphne/benches/pine.rs b/crates/daphne/benches/pine.rs index f013785ed..bb22aa074 100644 --- a/crates/daphne/benches/pine.rs +++ b/crates/daphne/benches/pine.rs @@ -10,14 +10,13 @@ use prio::{ }; fn pine(c: &mut Criterion) { - for (dimension, chunk_len) in [ + for (dimension, chunk_len_sq_norm_equal) in [ // dimension, sqrt(dimension) * some multiplier (1_000, 32 * 8), (10_000, 100 * 2), (100_000, 320 * 6), - (1_000_000, 1_000 * 8), ] { - let pine = Pine::new_64(1 << 15, dimension, 15, chunk_len).unwrap(); + let pine = Pine::new_64(1 << 15, dimension, 15, 150, chunk_len_sq_norm_equal).unwrap(); let measurement = vec![0.0; dimension]; let wr_joint_rand_seed = Seed::generate().unwrap(); let nonce = [0; 16]; @@ -35,36 +34,44 @@ fn pine(c: &mut Criterion) { }, ); - let (mut input, wr_test_results) = pine - .flp - .encode_with_wr_joint_rand(measurement.iter().copied(), &wr_joint_rand_seed) - .unwrap(); - input.extend_from_slice(&wr_test_results); - let joint_rand = random_vector(pine.flp.joint_rand_len()).unwrap(); - let prove_rand = random_vector(pine.flp.prove_rand_len()).unwrap(); + { + let (mut input, wr_test_results) = pine + .flp + .encode_with_wr_joint_rand(measurement.iter().copied(), &wr_joint_rand_seed) + .unwrap(); + input.extend_from_slice(&wr_test_results); + let prove_rand = random_vector(pine.flp_sq_norm_equal.prove_rand_len()).unwrap(); - c.bench_with_input( - BenchmarkId::new("pine/prove", dimension), - &dimension, - |b, &_d| { - b.iter(|| pine.flp.prove(&input, &prove_rand, &joint_rand).unwrap()); - }, - ); + c.bench_with_input( + BenchmarkId::new("pine/prove", dimension), + &dimension, + |b, &_d| { + b.iter(|| { + pine.flp_sq_norm_equal + .prove(&input, &prove_rand, &[]) + .unwrap() + }); + }, + ); - let query_rand = random_vector(pine.flp.query_rand_len()).unwrap(); - let proof = pine.flp.prove(&input, &prove_rand, &joint_rand).unwrap(); + let query_rand = random_vector(pine.flp_sq_norm_equal.query_rand_len()).unwrap(); + let proof = pine + .flp_sq_norm_equal + .prove(&input, &prove_rand, &[]) + .unwrap(); - c.bench_with_input( - BenchmarkId::new("pine/query", dimension), - &dimension, - |b, &_d| { - b.iter(|| { - pine.flp - .query(&input, &proof, &query_rand, &joint_rand, 1) - .unwrap() - }); - }, - ); + c.bench_with_input( + BenchmarkId::new("pine/query", dimension), + &dimension, + |b, &_d| { + b.iter(|| { + pine.flp_sq_norm_equal + .query(&input, &proof, &query_rand, &[], 1) + .unwrap() + }); + }, + ); + } c.bench_with_input( BenchmarkId::new("pine/shard", dimension), diff --git a/crates/daphne/src/pine/flp.rs b/crates/daphne/src/pine/flp.rs index a79a41ab0..138629da1 100644 --- a/crates/daphne/src/pine/flp.rs +++ b/crates/daphne/src/pine/flp.rs @@ -1,19 +1,34 @@ // Copyright (c) 2024 Cloudflare, Inc. // SPDX-License-Identifier: BSD-3-Clause -//! The circuit for the PINE FLP. +//! Circuits for defining validity of PINE measurements. //! -//! The goal of this circuit is to recognize gradients with bounded L2-norm (hereafter "norm"). -//! This is accomplished by computing the squared norm of the gradient and checking that its value -//! is in the desired range. We also need to ensure the squared norm is not so large that it wraps -//! around the field modulus. Otherwise, a squared norm that is too large (or too small) may appear -//! to be in range when in fact it is not. +//! A PINE measurement is a vector of `f64`s with a bounded "L2-norm", hereafter "norm". To check +//! if a given measurement is valid, we compute the squared norm and check that it falls in the +//! range we expect. We also need to ensure the squared norm is not so large that it wraps around +//! the field modulus. Otherwise, a squared norm that is too large may appear to be in range when +//! in fact it is not. //! //! Wraparound enforcement is accomplished by a sequence of probabilistic tests devised by //! [[ROCT23]]. A successful wraparound test indicates, w.h.p., that the squared norm of the //! gradient, as it is represented in the field, is a value between 0 and an upper bound that //! depends on the circuit parameters. //! +//! This functionality is split into two circuits: +//! +//! * [`PineTypeSquaredNormEqual`] computes the squared norm of the gradient and checks that +//! it is equal to the value claimed by the client. +//! +//! * [`PineType`] checks that the squared norm claimed by the client is in range and checks if the +//! wraparound checks succeeded. This type also implements the functionality for encoding the +//! gradient and the wraparound test results. +//! +//! The functionality is split into two circuits for performance reasons: +//! [`PineTypeSquaredNormEqual`] does not require joint randomness, which means we can usually get +//! away with generating one proof for it; [`PineType`] needs joint randomness, which means we must +//! usually generate more than one proof in order to compensate for offline attacks, especially for +//! smaller field sizes. +//! //! [ROCT23]: https://arxiv.org/abs/2311.10237 use prio::{ @@ -34,7 +49,14 @@ use super::{ USAGE_WR_JOINT_RAND, }; -/// The PINE FLP used to check each measurement's validity. +/// The main FLP used to check each measurement's validity. +/// +/// The circuit checks that the claimed squared norm is in range and that the wraparound tests +/// succeeded. This type also implements encoding of the measurement, including running the +/// wraparound tests. +/// +/// To ensure a gradient is valid, it is also necessary to run [`PineTypeSquaredNormEqual`] on the +/// encoded measurement. #[derive(Clone, Debug, Eq, PartialEq)] pub struct PineType { pub(crate) cfg: PineConfig, @@ -232,7 +254,7 @@ impl PineType { /// /// (2) The number of reported successes is equal to the expected number of successes. /// - /// See [ROCT23], Figure 2 for details. + /// See [[ROCT23]], Figure 2 for details. /// /// A test is only successful if the reported result is in the specified range. The range is /// chosen so that it is sufficient to bit-check the reported result. See [ROCT23], Remark @@ -240,6 +262,8 @@ impl PineType { /// /// These checks are only valid if the bit checks were successful (i.e., the output of /// `eval_bit_checks()` was `0`). + /// + /// [ROCT23]: https://arxiv.org/abs/2311.10237 fn eval_wr_checks( &self, buf: &mut Vec, @@ -303,54 +327,24 @@ impl PineType { )) } - /// Check that (1) the reported squared was computed correctly and (2) the squared norm is in - /// range. The result is only valid if the bit checks and the wraparound tests were successful - /// (i.e., `eval_bit_checks()` and `eval_wr_checks()` each output `0`). - fn eval_norm_check( + /// Check that the reported squared norm is in range. The result is only valid if the bit + /// checks and the wraparound tests were successful, i.e., `eval_bit_checks()` and + /// `eval_wr_checks()` each output `0`. + fn eval_norm_range_check( &self, - buf: &mut Vec, - gadget: &mut [Box>], - encoded_gradient: &[F], sq_norm_v_bits: &[F], sq_norm_u_bits: &[F], shares_inv: F, - ) -> Result<(F, F), FlpError> { - debug_assert_eq!(encoded_gradient.len(), self.cfg.dimension); + ) -> Result { debug_assert_eq!(sq_norm_v_bits.len(), self.cfg.sq_norm_bits); debug_assert_eq!(sq_norm_u_bits.len(), self.cfg.sq_norm_bits); - debug_assert_eq!(buf.capacity(), self.cfg.chunk_len * 2); - buf.clear(); - - // Compute the squared norm of the gradient. - // - // This corresponds to the third call to `parallel_sum()` in the validity circuit of the - // reference implementation. - let sq_norm = encoded_gradient - .chunks(self.cfg.chunk_len) - .map(|chunk| { - for x in chunk { - buf.push(*x); - buf.push(*x); - } - for _ in buf.len()..buf.capacity() { - buf.push(F::zero()); - } - - let y = gadget[0].call(buf); - buf.clear(); - y - }) - .try_fold(F::zero(), |x, y| Ok::<_, FlpError>(x + y?))?; - let sq_norm_v = F::decode_bitvector(sq_norm_v_bits)?; let sq_norm_u = F::decode_bitvector(sq_norm_u_bits)?; - Ok(( - // The reported squared norm equals the computed squared norm - sq_norm_v - sq_norm, + Ok( // The reported squared norm is in range (see [ROCT223], Figure 1). sq_norm_v + sq_norm_u - self.cfg.sq_norm_bound * shares_inv, - )) + ) } } @@ -360,10 +354,8 @@ impl Type for PineType { type Field = F; fn encode_measurement(&self, _measurement: &()) -> Result, FlpError> { - // Pine can't use this feature of `Type` because the encoding takes an input called the - // "wraparound joint randomness" that is derived from secret shares of an intermediate - // representation of the input. - unreachable!() + // PINE uses a randomized encoding, where the randomness is derived by the protocol. + unimplemented!("use encode_with_wr_joint_rand() instead") } fn decode_result(&self, data: &[F], _num_measurements: usize) -> Result, FlpError> { @@ -394,7 +386,8 @@ impl Type for PineType { // Unpack the encoded measurement. It is composed of the following components: // - // * The gradient `encoded_gradient`. + // * The gradient `encoded_gradient`, not used by this circuit. It is used by + // [`PineTypeSquaredNormEqual`] instead. // // * A pair `(sq_norm_v_bits, sq_norm_u_bits)`, the bit-encoded, range-checked, squared // norm of the gradient. @@ -404,7 +397,7 @@ impl Type for PineType { // whether the test succeeded (i.e., the result is in the specified range). // // * For each wraparound test, the result `wr_test_result`. - let (encoded_gradient, rest) = meas.split_at(self.cfg.dimension); + let (_encoded_gradient, rest) = meas.split_at(self.cfg.dimension); let (bit_checked, rest) = rest.split_at(self.cfg.bit_checked_len); let (wr_test_results, rest) = rest.split_at(NUM_WR_TESTS); assert!(rest.is_empty()); @@ -431,19 +424,11 @@ impl Type for PineType { shares_inv, )?; - let (sq_norm_equality_check_result, sq_norm_range_check_result) = self.eval_norm_check( - &mut buf, - gadget, - encoded_gradient, - sq_norm_v_bits, - sq_norm_u_bits, - shares_inv, - )?; + let sq_norm_range_check_result = + self.eval_norm_range_check(sq_norm_v_bits, sq_norm_u_bits, shares_inv)?; let mut result = bit_check_result; let mut r_power = r_final; - result += r_power * sq_norm_equality_check_result; - r_power *= r_final; result += r_power * sq_norm_range_check_result; r_power *= r_final; result += r_power * wr_tests_result; @@ -458,7 +443,7 @@ impl Type for PineType { } fn input_len(&self) -> usize { - self.cfg.encoded_input_len + NUM_WR_TESTS + self.cfg.input_len() } fn proof_len(&self) -> usize { @@ -486,6 +471,106 @@ impl Type for PineType { } } +/// FLP used to check that the squared norm of the gradient is equal to the claimed value. +/// +/// To ensure a gradient is valid, it is also necessary to run [`PineType`] on the encoded +/// measurement. +#[derive(Clone, Debug, Eq, PartialEq)] +pub struct PineTypeSquaredNormEqual { + pub(crate) cfg: PineConfig, +} + +impl Type for PineTypeSquaredNormEqual { + type Measurement = (); // Not used by this type. + type AggregateResult = (); // Not used by this type. + type Field = F; + + fn encode_measurement(&self, _measurement: &()) -> Result, FlpError> { + unimplemented!("use PineType to encode the measurement") + } + + fn decode_result(&self, _data: &[F], _num_measurements: usize) -> Result<(), FlpError> { + unimplemented!("use PineType to decode the aggregate result") + } + + fn truncate(&self, _input: Vec) -> Result, FlpError> { + unimplemented!("use PineType to truncate the input") + } + + fn output_len(&self) -> usize { + unimplemented!("use PineType to truncate the input") + } + + fn gadget(&self) -> Vec>> { + vec![Box::new(ParallelSum::new( + Mul::new(self.cfg.gadget_calls_sq_norm_equal), + self.cfg.chunk_len_sq_norm_equal, + ))] + } + + fn valid( + &self, + gadget: &mut Vec>>, + meas: &[F], + _joint_rand: &[F], + _num_shares: usize, + ) -> Result { + let mut buf = Vec::with_capacity(self.cfg.chunk_len_sq_norm_equal * 2); + let (encoded_gradient, rest) = meas.split_at(self.cfg.dimension); + let (sq_norm_v_bits, _rest) = rest.split_at(self.cfg.sq_norm_bits); + + // Compute the squared norm of the gradient. + // + // This corresponds to the third call to `parallel_sum()` in the validity circuit of the + // reference implementation. + let sq_norm = encoded_gradient + .chunks(self.cfg.chunk_len_sq_norm_equal) + .map(|chunk| { + for x in chunk { + buf.push(*x); + buf.push(*x); + } + for _ in buf.len()..buf.capacity() { + buf.push(F::zero()); + } + + let y = gadget[0].call(&buf); + buf.clear(); + y + }) + .try_fold(F::zero(), |x, y| Ok::<_, FlpError>(x + y?))?; + + let sq_norm_v = F::decode_bitvector(sq_norm_v_bits)?; + Ok(sq_norm_v - sq_norm) + } + + fn input_len(&self) -> usize { + self.cfg.input_len() + } + + fn proof_len(&self) -> usize { + 2 * self.cfg.chunk_len_sq_norm_equal + + 2 * ((1 + self.cfg.gadget_calls_sq_norm_equal).next_power_of_two() - 1) + + 1 + } + + fn verifier_len(&self) -> usize { + 2 * self.cfg.chunk_len_sq_norm_equal + 2 + } + + fn joint_rand_len(&self) -> usize { + 0 + } + + fn prove_rand_len(&self) -> usize { + self.cfg.chunk_len_sq_norm_equal * 2 + } + + fn query_rand_len(&self) -> usize { + 1 + } +} + fn range_checked(x: F, lower_bound: F, upper_bound: F) -> (bool, F, F) { let v = x - lower_bound; let u = upper_bound - x; @@ -511,7 +596,7 @@ mod tests { let dimension = 10; let frac_bits = 4; let norm_bound = norm_bound_f64_to_u64(100.0, frac_bits); - let pine = Pine::new_128(norm_bound, dimension, frac_bits, 4).unwrap(); + let pine = Pine::new_128(norm_bound, dimension, frac_bits, 4, 5).unwrap(); // We use whole numbers here so that we can test gradient decoding without losing any // precision. @@ -553,7 +638,7 @@ mod tests { fn encode_wr_tests() { let mut rng = thread_rng(); let norm_bound = norm_bound_f64_to_u64(10.0, 15); - let pine = Pine::new_128(norm_bound, 10, 15, 4).unwrap(); + let pine = Pine::new_128(norm_bound, 10, 15, 4, 5).unwrap(); let gradient = iter::repeat_with(|| rng.gen_range(-0.1..0.1)).take(10); let (input, wr_test_results) = pine @@ -593,6 +678,7 @@ mod tests { input.extend_from_slice(&wr_test_results); FlpTest::expect_valid_no_output::<2>(&self.flp, &input); + FlpTest::expect_valid_no_output::<3>(&self.flp_sq_norm_equal, &input); } } @@ -600,7 +686,7 @@ mod tests { fn valid() { const DIM: usize = 1000; let norm_bound = norm_bound_f64_to_u64(1000.0, 15); - let pine = Pine::new_128(norm_bound, DIM, 15, 27).unwrap(); + let pine = Pine::new_128(norm_bound, DIM, 15, 27, 100).unwrap(); pine.run_valid_test_case((0..DIM).map(|i| i as f64 * 0.01)); } @@ -608,7 +694,7 @@ mod tests { fn valid_small_dimension() { const DIM: usize = 1; let norm_bound = norm_bound_f64_to_u64(1.0, 15); - let pine = Pine::new_128(norm_bound, DIM, 15, 4).unwrap(); + let pine = Pine::new_128(norm_bound, DIM, 15, 4, 1).unwrap(); pine.run_valid_test_case([0.75].into_iter()); } @@ -616,7 +702,7 @@ mod tests { fn valid_negative_values() { const DIM: usize = 1337; let norm_bound = norm_bound_f64_to_u64(1000.0, 15); - let pine = Pine::new_128(norm_bound, DIM, 15, 4).unwrap(); + let pine = Pine::new_128(norm_bound, DIM, 15, 4, 30).unwrap(); pine.run_valid_test_case((0..DIM).map(|i| i as f64 * -0.01)); } @@ -624,7 +710,7 @@ mod tests { fn valid_random_values() { const DIM: usize = 1000; let norm_bound = norm_bound_f64_to_u64(100.0, 15); - let pine = Pine::new_128(norm_bound, DIM, 15, 99).unwrap(); + let pine = Pine::new_128(norm_bound, DIM, 15, 4, 99).unwrap(); let mut rng = thread_rng(); pine.run_valid_test_case(iter::repeat_with(|| rng.gen_range(-0.1..0.1)).take(DIM)); } @@ -633,7 +719,7 @@ mod tests { fn invalid_mutated_gradient() { const DIM: usize = 10; let norm_bound = norm_bound_f64_to_u64(100.0, 15); - let pine = Pine::new_128(norm_bound, DIM, 15, 4).unwrap(); + let pine = Pine::new_128(norm_bound, DIM, 15, 4, 5).unwrap(); let (mut input, wr_test_results) = pine .flp .encode_with_wr_joint_rand([0.0; DIM].into_iter(), &Seed::generate().unwrap()) @@ -643,14 +729,17 @@ mod tests { // Tweak the last coordinate of the gradient. input[DIM - 1] += Field128::from(1); - FlpTest::expect_invalid::<2>(&pine.flp, &input); + FlpTest::expect_invalid::<2>( + &pine.flp_sq_norm_equal, + &input[..pine.flp_sq_norm_equal.input_len()], + ); } #[test] fn invalid_mutated_sq_norm() { const DIM: usize = 10; let norm_bound = norm_bound_f64_to_u64(100.0, 15); - let pine = Pine::new_128(norm_bound, DIM, 15, 4).unwrap(); + let pine = Pine::new_128(norm_bound, DIM, 15, 4, 5).unwrap(); let (mut input, wr_test_results) = pine .flp .encode_with_wr_joint_rand([0.0; DIM].into_iter(), &Seed::generate().unwrap()) @@ -671,7 +760,7 @@ mod tests { fn invalid_mutated_wr_result() { const DIM: usize = 10; let norm_bound = norm_bound_f64_to_u64(100.0, 15); - let pine = Pine::new_128(norm_bound, DIM, 15, 4).unwrap(); + let pine = Pine::new_128(norm_bound, DIM, 15, 4, 5).unwrap(); let (mut input, wr_test_results) = pine .flp .encode_with_wr_joint_rand([0.0; DIM].into_iter(), &Seed::generate().unwrap()) @@ -693,7 +782,7 @@ mod tests { fn invalid_mutated_success_bit() { const DIM: usize = 10; let norm_bound = norm_bound_f64_to_u64(100.0, 15); - let pine = Pine::new_128(norm_bound, DIM, 15, 4).unwrap(); + let pine = Pine::new_128(norm_bound, DIM, 15, 4, 5).unwrap(); let (mut input, wr_test_results) = pine .flp .encode_with_wr_joint_rand([0.0; DIM].into_iter(), &Seed::generate().unwrap()) @@ -716,7 +805,7 @@ mod tests { fn invalid_dot_prod_mismatch() { const DIM: usize = 10; let norm_bound = norm_bound_f64_to_u64(100.0, 15); - let pine = Pine::new_128(norm_bound, DIM, 15, 4).unwrap(); + let pine = Pine::new_128(norm_bound, DIM, 15, 4, 5).unwrap(); let (mut input, wr_test_results) = pine .flp .encode_with_wr_joint_rand([0.1; DIM].into_iter(), &Seed::generate().unwrap()) diff --git a/crates/daphne/src/pine/mod.rs b/crates/daphne/src/pine/mod.rs index 568c0cee5..c1de539e0 100644 --- a/crates/daphne/src/pine/mod.rs +++ b/crates/daphne/src/pine/mod.rs @@ -18,7 +18,7 @@ use prio::{ vdaf::VdafError, }; -use self::flp::PineType; +use flp::{PineType, PineTypeSquaredNormEqual}; const ALPHA: f64 = 8.7; const NUM_WR_TESTS: usize = 100; @@ -41,6 +41,7 @@ const USAGE_WR_JOINT_RAND_PART: u16 = 10; #[derive(Clone, Debug, Eq, PartialEq)] pub struct Pine { pub flp: PineType, + pub flp_sq_norm_equal: PineTypeSquaredNormEqual, } pub type Pine128 = Pine; @@ -52,8 +53,17 @@ impl Pine128 { dimension: usize, frac_bits: usize, chunk_len: usize, + chunk_len_sq_norm_equal: usize, ) -> Result { - Self::new(norm_bound, dimension, frac_bits, chunk_len, 1, 0xffff_ffff) + Self::new( + norm_bound, + dimension, + frac_bits, + chunk_len, + chunk_len_sq_norm_equal, + 1, + 0xffff_ffff, + ) } } @@ -66,8 +76,17 @@ impl Pine64 { dimension: usize, frac_bits: usize, chunk_len: usize, + chunk_len_sq_norm_equal: usize, ) -> Result { - Self::new(norm_bound, dimension, frac_bits, chunk_len, 2, 0xffff_ffff) + Self::new( + norm_bound, + dimension, + frac_bits, + chunk_len, + chunk_len_sq_norm_equal, + 2, + 0xffff_ffff, + ) } } @@ -83,12 +102,16 @@ pub(crate) struct PineConfig { num_proofs: u8, algorithm_id: u32, - // FLP parameters + // FLP parameters for the main circuit chunk_len: usize, bit_checked_len: usize, encoded_gradient_len: usize, encoded_input_len: usize, gadget_calls: usize, + + // FLP parameters for the squared-norm equality check + chunk_len_sq_norm_equal: usize, + gadget_calls_sq_norm_equal: usize, } impl PineConfig { @@ -99,6 +122,10 @@ impl PineConfig { dst[5..].copy_from_slice(&usage.to_be_bytes()); // usage dst } + + pub(crate) fn input_len(&self) -> usize { + self.encoded_input_len + NUM_WR_TESTS + } } impl Pine { @@ -115,8 +142,9 @@ impl Pine { /// * `frac_bits`: Number of bits of precision used to encode the fractional component of each /// gradient coordinate /// - /// * `chunk_len`: FLP parameter used to for proof generation. Any positive integer can be - /// used. The optimal value depends on the other parameters. + /// * `chunk_len`: Chunk length for the main FLP circuit. + /// + /// * `chunk_len_sq_norm_equal`: Chunk length for the squared-norm equality check circuit. /// /// * `num_proofs`: The number of FLP proofs to generate. /// @@ -126,6 +154,7 @@ impl Pine { dimension: usize, frac_bits: usize, chunk_len: usize, + chunk_len_sq_norm_equal: usize, num_proofs: u8, algorithm_id: u32, ) -> Result { @@ -222,28 +251,31 @@ impl Pine { // Number of gadget calls. The gadget is used for the bit checks, wraparound tests, and // squared norm computation. - let gadget_calls = chunk_count(chunk_len, bit_checked_len) - + chunk_count(chunk_len, dimension) - + chunk_count(chunk_len, NUM_WR_TESTS); + let gadget_calls = + chunk_count(chunk_len, bit_checked_len) + chunk_count(chunk_len, NUM_WR_TESTS); + let gadget_calls_sq_norm_equal = chunk_count(chunk_len_sq_norm_equal, dimension); + + let cfg = PineConfig { + dimension, + frac_bits, + sq_norm_bound, + sq_norm_bits, + wr_test_bound, + wr_test_bits, + num_proofs, + algorithm_id, + chunk_len, + bit_checked_len, + encoded_gradient_len, + encoded_input_len, + gadget_calls, + chunk_len_sq_norm_equal, + gadget_calls_sq_norm_equal, + }; Ok(Self { - flp: PineType { - cfg: PineConfig { - dimension, - frac_bits, - sq_norm_bound, - sq_norm_bits, - wr_test_bound, - wr_test_bits, - num_proofs, - algorithm_id, - chunk_len, - bit_checked_len, - encoded_gradient_len, - encoded_input_len, - gadget_calls, - }, - }, + flp: PineType { cfg: cfg.clone() }, + flp_sq_norm_equal: PineTypeSquaredNormEqual { cfg }, }) } } @@ -552,6 +584,7 @@ mod tests { 10, // not used by test t.frac_bits, 1, // not used by tests + 1, // not used by tests ) .unwrap(); diff --git a/crates/daphne/src/pine/msg.rs b/crates/daphne/src/pine/msg.rs index f8f14a400..60b16c057 100644 --- a/crates/daphne/src/pine/msg.rs +++ b/crates/daphne/src/pine/msg.rs @@ -150,7 +150,10 @@ impl ParameterizedDecode<(&Pine, usize)> for Inpu .take(pine.flp.cfg.encoded_input_len) .collect::, _>>()?, proofs_share: iter::repeat_with(|| F::decode(bytes)) - .take(pine.flp.proof_len() * usize::from(pine.flp.cfg.num_proofs)) + .take( + pine.flp_sq_norm_equal.proof_len() + + pine.flp.proof_len() * usize::from(pine.flp.cfg.num_proofs), + ) .collect::, _>>()?, wr_blind: Seed::decode(bytes)?, vf_blind: Seed::decode(bytes)?, diff --git a/crates/daphne/src/pine/test_vec/01/Pine128_0.json b/crates/daphne/src/pine/test_vec/01/Pine128_0.json new file mode 100644 index 000000000..2cb3ee3cd --- /dev/null +++ b/crates/daphne/src/pine/test_vec/01/Pine128_0.json @@ -0,0 +1,215 @@ +{ + "agg_param": null, + "agg_result": [ + 1.0, + 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 + ], + "agg_shares": [ + "826cdee58e144108c1420ba4f05977979009ee78d3f7326b97f9f1533fc032b60f9042a65278741449995969d04874f63a17cc513050f4fc0a9ad26b84b2b5420ac4a0509248af5f313705a906623719e2abb7f1489e4f83b99516eac5ffc1d6eac0fb09bdb98e935eb3fdd990af42efc76a5b7dd218059239aa077fe4bc4bf2fc9c7111f6906ba37f2936a989f95d33a7a5b1d19a1d28e5cb532979db3437b3e18c9b192c3c4d06664aeb38fb8f85825438c806dac98c719f0bb12f063f137db4ab38ebf1c1c38f3744e4913c0eb69d83bd07d6e636ad11e6c0b96e4c3c2cc2bcd9bd8c0b409191277d094a757227db84dad070454561686c43a53721ab78533c8a753aa28d25c47c28b0e29c5696f083545e3bd51cacdaae07afc41c1ed5a69905b0e97ad16830d25710af7ed69f08213240d87c3cf478b4f6fac1701c52ec", + "8f93211a71ebbef722bdf45b0fa6886881f611872c08cd944c060eacc03fcd49f26fbd59ad878beb9a66a6962fb78b09c7e833aecfaf0b03d9652d947b4d4abdf73b5faf6db750a0b2c8fa56f99dc8e61f54480eb761b07c2a6ae9153a003e29173f04f64246716c854c02266f50bd103a95a4822de7fa6daa55f8801b43b40d05638eee096f945c64d6c9567606a2cc5a5a4e2e65e2d71a18acd68624cbc84c207364e6d3c3b2f97db514c704707a7dadc737f92536738e44f44ed0f9c0ec824d54c7140e3e3c70acbb1b6ec3f149627e42f82919c952eefd3e4691b3c3d33d45264273f4bf6e6ebc82f6b58a8dd8247d252f8fbaba9e9777bc5ac8de5487acc5758ac55d72da3b67d74f1d63a9690f7eaba1c42ae3532535f8503be3e12a5968fa4f16852e97cf11a8ef50812960f7e0cdbf2783c30b872f09053e8fe3ad13" + ], + "alpha": 8.7, + "chunk_length": 150, + "chunk_length_norm_equality": 4, + "dimension": 20, + "field": "Field128", + "l2_norm_bound": 16, + "num_frac_bits": 4, + "num_wr_checks": 100, + "num_wr_successes": 100, + "prep": [ + { + "input_shares": [ + "4936ef72478a208460a10552f8acbb4bc00477bce97b99b5cbfcf8a91f60195b08482153293c3a8a96ccac3468243afb9d0be62818287a7e054de93542d95a210562502849a4d7af989b825403b19b0cf1d5db7824cfa7c1dc4a0bf5e2ff606b75e0fd84de5cc749afd9fe6cc857a17764b5ad3e698c02c90ed5833f72de25f97eceb8087bc8b5d1bf149bd4c4fcae19d4d2d868cd0e94f2d7a994bc6d9a9bd971c6cd0c169e260325a5759cfdc742c12a1c6403ed64c6b8cf85d817839f893eda559cf5f8e0e1c71b22f2481e07db4ec2de036b739bd60865e05c37261e16e1deec5ec605a0c8c893be04a53ab9936d426d68b8a2a23034b6a1d29b9055bc291ec53a1dd1c612623e1458714e2b4b78422aaf9d6a0e566dc98357620e8f6ad3cd02d874bd683418db2b88573feb4f841119206c3e1e7a3c4c7bfd60380e29f64644052e4998066a005ed95a9d87a2b7202ea22e18ac8068c77d5e5af81a9923bdd73559abe107f2bb9d1214db56a96ef1ee007882b302719e60490a4002b93c6ec7a98d4f695ec69bb0abf6473cdc99629299a3d94412cff9a185241f04d1b99ac97a1f5d61631dad679b295384860f0c8f8552da65eefb0c58df5e0608b89ac6f81606764d86320c4578c40ddb06c743d96d5b8f09313cae8550832caa47bafc478e4a009b8dd6f0da7d7740a0819bc50c17501a2bea0a4177b42818c73024eb8757c5d9808eadf68f01a126bf1abe3b2a1a3b22022e8ad84823587747a01494f30cc5576557c236db583b29fb480567c320feb1ecf2776ea69b5633b0e2aca81b911de34abfe401a3c332d8fe1b1d8b3513551e11c3b58badb1bd0c16dc80d31dd19098a1c730913999e05be450b535a9e9f90cbac29e36eccfda15c38e35d93c7558da44169cb9281d9cee1773517f3665565a3c9309e26097fd72694370c4187529c9eecfad7ea8ba4edd783e73cdf107269ea7a0393a6220aa510d7969ee9f4f224e905202d3decfb4e5d24563a04caf3f7122bb09f24f4372de5cd1f777d15fe50614a3d38ed46c9e89b003e485fca5a190e85cb939865a77a641fc19b03522f092e698fceabca95405018a109b2e8fb4072bdd87aa79b5c9f9fd7c6464d086193758a4ff147e107e17a61e6ecdb0aaa99cb94a832a8a5a1cfca10adec3c91994160f460c40a15e009c83f458a0e43e4ece5d96c6234555090b26ae8c1a2295ffa69580a8451e73d92dd7cb548c5e252de1998d6326a7d382c3bd6f69fc4a7f54892a22e703d18b13d0176840dd28cb84739611e96fc24b82899a47b2867ba6f15fce17ce06af84c3e3c6e85c132b87403ce066cff3931b8a67e12c7b2d077b5930e0a74cc1f6689685be11ef099deee9ab2e4e1bfc09ad2a3e65784c4b5a1936420b811347b336af3268d157c04e9d2e65fcf1ebeb58a04718b40f31fa2eec98908dc55d72dec498c44ee13fd3d9eb8edaf1d14eed0f8412c145e76d70605aa9227ad28f6399c1454ebba65b0e94a1dba4b447d453bd4ae30857653d87d1af5bc0fbc7dc5723214e765bcc9d1ba110581c3025035ef2b6b6cbac3bedb15ad2d752c624c02718366c61f0c7f268868fc13438d121ffd7b800065ec676d028feeb5f3c1f220224e43e3d259b6010bdf264ccaa0f97097b1eb087442aced71132aa662e5300615efd3e61d475212ae36ab3b440f05a7e25bcf36781a3d3d83dfd88aff8d5226cf067fe6ce9da0a7bef15c366317d23b9a00d717b1bb4ed8acd071bc47e833a4f7b8b0495db9e3fe61a06c0be49f8edd427df8ddd1f7fa9b4d8a46312d204557f150b71545b5f89afcf5d88c41cf69d7564b567bd769b46748a085c4a589d50685c34d326c365ed5d7e33c462e71d6eee59bff0ede8ef156c5a42739b10a8ddb75e6d96fd716fcf3f4207a4272b9987ddb7d1e90c0297cc0d4ccb01e268dd3037233820a05e8d9011385ded6a888b3a9a787dddd9d788003395643f6178d5d8c68fe9a8cb361be9a47e83bf47b2b13d3a7170021dbcc04a112c2caffa69873a5beef2388df9e0adc57cb5d76302c91c00bb1d78d688dace13f15f91ef9fb729ec1e799054d4849f59297e11491517ba981e02ce85f8263733a9f826249842cb03a47470bec34f2320a7b5af55e770ddddbc48b08f3469817c18704292ce8d05f99b5522e4f1add50e3bd7b990a0e58c076a52475dcf53521ebbeb5e36ef7497772bf7b87ff7f5ea82002b6783bbb6b9fec42b016cff9d4c70c253e809c600c78954dafa65d8acb0c689283a56c14a196cf49b54e1e08fc91c2657e4c066915e9147854b14cd989c61aea44f2a0b33d416a5c026f657c82aec9a4d874db68e5a73d8d7efff67d6b16d223f738ffa32638316666b88cc12cd053a1f2da17a87c34990d2f9e40809b8a0f2e07ae8ee2fe0536a0674f6b03ca1d558fd9e43e6522337646ebb7279a741f599e7f0a14eb26d63a3fa9d97a5ccb9aa01c780f9157c9ff5f7c150d145d05f66fba3e1fa9afa12a4d94bcb95016b8872fd5c0a05639027167bdf1e47af715a0873d2b70cfaa7fc7141bb41abcaeadae26c5e18ebf09a8503b3434ebf173f7273a10bee856e5b41878621699cef2c6cfa14a41f42b8f6b259888a85d42aaa138ffd948e2c4eede87767139284c31c69172b240dbab0e8640402f596a2c482cda3bb6706aaf18cac30e6e1922a7053360e10d4eda7ac6fdf3d4cef6d74bc3a3b3742c7fbbbb8d8bcaad50636573ac67338a1a562796833a795b9e6a97edd308e575f04d5cc4f95437ae993af2d26c0934b236d6671e6570c6d2802c494ddb95e91d747f84121ecff4f64891a3f7d71ff0fd47ab798ee2b2ad6f83bac0ab474cfbcc550a899f15dd3066506ce1ee3d46382a35b51333906fb20186e646a8880322311a50064094f0212bc3391577e2decb710d556081351d2d90891b2f3482cbbb2374a71a970664621e1cfbca4fa87d981f7a33698921271b0b62890b3ddda06a5deade800c5d6f268d916190e56a150cc46240f82fd7175e7df933a14fa367f0d80eea00963a62fb67de4fcb6f2dd1a8c99f72458997f6b0a73dea689f736aaf26c09276b71275c8fd097f792fa8808030ab98f04a921e39100f20c7ba9596fb1c64a85f9452ceb343404ce493a8c49c7677f3ae33a0d03df1a4e980289d2f538c2dff5387948761016240a31deb446b8a32d82f8200f1b6ae7719d5c840f8c68a240c0c1b0937818ff806ab5b89fb27d2516446929f4de7c034e441b6a2f2fef28d13410244d8320c54962463c8679006691f0be93af33c066dac6ff99cfbe7eafeae71414d10516e1b0fc1b18059b22f540a83a7575c39c1c5ecdc69b5ad73bd1a8ac136dcc48d9f3e58cfd3863f10421500fbeb79739bc1795cf4864ff6c5c7c05b5256858e74a416b8adff14a878bc76e2c113f2909871dbebf1723d6e66e688a19a04e82fe8c0f21a6cae3fcc029ef385a382b5366d14edddfdef0593b42a1f50f2bb9356f764f6b382b2511fe0fc60b0873d3dccc762d2a324b12ca4ba2774e25a26b317f7f254690451ed9857563176e5ddd62855547ce5c01bbdb54845799245ca6b19f2b8b1573b1fa3eb41fcf1d4d5736a73d0ea585cc2124c0b1952d1837913364bf746638509cadd433119bc80dc93a1f30049d22acf066c1248cabc3f2e45e94d2328226c9af79b5f66259e9f15d91be00cc9b8aa3b64a443b6f6a4a5649838a1c01535aa5b8aeee7f762c4bac5c7c1340e2b5e156a666f983dddc5cb4a9568661a11c20f7f04f105d5577c379b42a051b80a97c8d1822eb4af5d4e550b66214784c205cb65eef40127daddd9b0534e61533e52856f9c27f9a8dc0eb5850bfdd46fdd04febb0c2c6c3153ffe2aa2d4348355af665efb71ed192ed35ad0c568354b1279749cfdda99e5fd300d164d69494a2bd75530d8fbde4c19cdcd66aec07eedb4082b8879aa188345a5075f7e731c349d3341847f321d6f5197e2a42497dd5a9af97c1788fcf501c3c400f5e7c8c4d04410270ca7655641953766242c36aacaadc9037119afc7363232738906916748e5c333d820b925d95cbb4f10a0ef60c478c6c9df08e2429231b7b5c9b95ceddbdb6349009682fc1502fa6f6c3ca1919aacf100b1b4ccf58944b4bd8d55b67db7dd4696eff495a6f4008109c1da5b1db72dd9112c1c2e339fe1e4b957b519d06238ae23c4f4c6ba3d2a055aca3d8eef963d526ef716434bb3056245c7e2337ade86633a7f0fd7944086f5a00d106422992b646f261de602d5879cfefd9379ac5140b09989962dab4cb8b61b97f9d222cfce532aaca0e270b38a2d80501901cb0f2c2e068cb146f775e7d4d9186a4b8aaa882aa83b2e63ae20c646e728c1f80871c265ed152a81453a179536685161f0233980e5aee86c3d1fb627bbccd443a0e2ed5ee72e0f2824f22f6d9b14e36191d1aaa2103e5286800222c17757717370922b9f89b554786cd92e84b50d8f614c4a6a266219979ed73c8a0f118376a9ef3dad28e858ebcfc0dde43c606ad31c357d81477206def935310ac1f75b421997c4a55680b8a9ec76cab08600a65d1c67f32aa470684e3684f703d2f7088bb67f6701c048f5826a7814acd41c023a9f55e9c01529cd8a746a435353f69c549373c423213247b44ae0ac9bafe09324af21149066bfb7ef8c280d9482090277534586da989fd7243d765b271365922848515ae800f197e8e4a68f4556b1bb2a8b02e48fd0d0a87e83c3bc031b4f5e83039c869ed212c68cc33b994d0dbf346b5e4bb9ac7dbbe2c27aa5b97d48ec48973a9e0bf5a071aaf5a02609c146aac830edb3ee877e4a3bf50c29313cdeaed96dd898a9f4d201a60631e2dbdeba087942b818ad4abddef5e9054f10cbba0ac70ca356122e2cb5f827a46d8c597dbad1172e227c9aa8236fb4f7797a346483f291ce31e7312803c88e827992ad8701abbf256119349ede4b868b4312d67d3d70998a53f92c61cd7c4e0777a8725b2ccc0281a09acfc2d9e646116d5d1d02499339268cd9ae59fb0f9777d6eb8684d9282f00ac2cfc34927961cbdb8186a98d83d0accb9859f35060c2bce83301fbea83ad17831adbe113e7ef6a86a957149bb73d2af02721cd3107f081ca03070f719f8dd7dd7670aff412c756e86b86005808337e6f295d268589a3e4944f5b5088771914852f805bb0190db3b40d05d84f44ee7abdb4633f3dbc258095ac10ccd9f050b7869822eb3b92f0a73041eb577a97ba8e1a9dc4a92862d4f599467f8f95ce3334f12e92ab7cdef1402abb589dbe829adb143fac5800fadc7f7dcc8c23c02c2649b7e754a9448a1b6f72d2ce526394463adf30d0dd4c5640e24b21bb52e97254e96d283e5ee44e86fd520f2d78c4b85d50be887ba27b30da683769c55dd743cf37faf5e4cb02329d7c105d6673eb11e476032d6ba9df0cb1b1ad2a8c75befcea3cd16fa50887c31e19007e7fb330af7ac42039b094c7cc0202b332338c14bccd1d7aaa0b0c0aa92e82d4387a3d7a0a374bb3f37b1448d4e24234f3bdd1bfc9d735a8482c60e3442644df843084403baaa3c96d1057dc7a66cfaf56d93780a3b4d47b1658f482557ef0deb0bb2022234229ffb5b59d16a44ea8f7ed20a7f170e1523f693cc32189ea7e7373931778b133ab3630b3157e63429cc1718792fe7c48aac6a6f6f54f2a90e8939f027594d4e963105408825e726b1cdff77f3e2643623b14c4482b78b89d6b49a99dfaa3aca4b58a01da7617f2d280a81ade2b538f3958f19a43b1a62f7140b585a85f2ca45d2b0bc60558dc54e8a7563116ace8969d24dce2ee3c31f3d43d03e63e0d2e7e61e7c6dfe464fed31ed1fc17897588bd744d38e0be9d367f718dadbbd6f4e4d3a29cba001d7edaba0fa799dc2b861a96aa580e70578217667b88353bb5c00f25fef58fc275ba307671e0afa1730e1d8643175ff40f6f3a85a354260857b87ad6280084d2395fc59067cbedf88ff1dbdfb348e9c011a3718386bc3a9fb9d515dc9d9cba761203da316296bb42bcbb7c35c49f5683352681de9c97c7ad8b375bfde2bceb38bda15ba4de0909ba0c48271d8d6851b5e4c9c3d4bbfd9ca71bd49e5002c67d76c52560ca22230c9a2aec73775ef27a1868867ce6b56939d4a3697fbd3b8980393a83510b58449e3c6acf27d03a847fa80b1fa10f5d9464b6f2e79c364be84b4d3a657e4e87a5bb027420b621bd11001f07a520089d836226de5e8f00eabdaa98d3a20028d1e1b1f09e9662cd95856f0d2783d0821f2fceb6988f81a9d4398fbf914ad338505f3702fa3f29cfcd352657b996a463919887672f826fa199e33cc69f30d83912a585567ccd27255bf82a51e0a83c0fb107c8258d1479d9eca1e87d6d6d3ec18c6bf29efb71778211406bb74dc4a1845bd637b08034818d0ff7277d0c977558ae43ff38f17b2ca30e9c1faeadd38b332d6b08e28fec4e10423d1636cb4caacf48896addc7beb06059f846648ce0dbfbd162228a9b374e976af516984d9bdbabc4ae10399245704ecdfb25f4523cf25a449029c08fe4b6b9d022d60e6d5376a50d1a7fdd0e1fdbc9e0a047baf4254d48aaa167f17862f1506c334b19dabd02c58f89af5e6e8e27c546a2cad606d25920b7f59ff83f5c2f6321aeb3ddb7c56c281b4088d15b4dbe59aee2a05b7e6347b668d15ab66d4eee0499eb7fbdf55a4e2aacd9c05b48c350b35d08fbaad43d5d2a04b8d8fe7211f04a0d5dc23c03a189ea946ce0c886dce4c5d818e7c41071e006eff220508eb6d736d38f8615da49a8e75e2a4ace26ffc6785bf8b453a8d5ed89d2c286fb71505754c1c57e2451d678d132ba1e1907ef9ae17bd2441f88739643ed80b296bb6a62bea5b59a0fc69bfa8e032d08e1c4be9e65569dc3b36e9b9a10019d14d41010ce38c1d2c25e32f7b9eac3f60ddb60691260af6ae2a68c636e08453ac7f83157f21a7d18c95dae6266e6974ec876fa9d5df613bf2ad1efad4d993fc1537b1ef387ebc0ca52ed70fed06574a4f45f5a4cc290a11c7662d77e8dc17002d4d6df6bd28f628464d8e5aed302d3747192dec4e4f2e2143522251e7d29179e05adb9c24c9b12b994ebaa16e8155d45ebe762a43159b72ea3d3606fb338c58f5b1b7dc6450126288661902f498ddb8e7d8dffd4ca64624d8a3ff5fd8d2672528d38ae0d17cb560f5c764159f2f9a4f3cdece5ce8a78d51c5afff16b0ddb43e7f28058bf10b4106534e61c53e5435571727657e03294e77e88716dfbb91c8c16d90a1e4df221083b871b4734c03d0a2d15402a3b6facb64717596afcbd469eb5eaf19e3b46e3214f5cf43ad5172c33ded7a948676ce85cb5668412eb8367fa2a04634fe40a061e80b08f9b810e30d7a9aff866f2e42566b6c0440e8665f3437a6fa90856da6fc4cf090f262f2d7663f91dc3a8aa520359b74736fe236ceeb046629cac06b8545bee12ef6c3f8547e292d78f7a9c186d7be0ae776b319ac3eaad8064c2f5e5ca1d2de508e7f0becb8a5b968e09b3acd8887ca860223090837e8b75b3d866a71af57f28bb5f9144e23c868c039e9f2bc031976ce77e5f778f910e93ceed7f44fe128afb5c38fa6bcf0414eb6d813572269eaa4b8a77a3178c39fe3d06015ca2d91d4e8a60d02401ad83626baccdd2f04fe0fe031d6662751a31d41169a2ce7f0925ad400c70a6d515cdc6e1873c01e507ded180af9211071ba73398da8798840a88d8efba84e0e81b32f8d69dac4a560e12ec82c48288111e0f5870cd20fe65a1aa3afa613012e09a0e65a457ed0c0d906a8f9ad4bd499cf8c9072fc59b8b159c4003717f9c89b8aa7df10854f2fce165508a7977fec32a13c7193c7e7dfcf9aad466415503f7f240b6fdb7ebf7de037c4a2173b5cfe31904fc2971b6e2d67f16c714ab206b50b975590bd107698f45c29ec1d4640611e5d410099bb0898a0db9ebe2ccdd37642e6068bb71e9eae397689f9115403a6ba4d3721ecd08cb0ea8b21b898870838a4682f3b6d0d6226c1afee9ff6d960c6ca0a41a86ab7deb5efb86bd5bf3fa98b5a5818feab0b13eec5ca965836d1dad0e315d96b133708f79cd3f57e85187c247399da51ba812a6f08388bcc4436f93b5c4a5b9d7eb240280d47320f8c57b90f7aa9c7b6ec88c3985f2a27b365afacc1de6394f7c82339a29f2d64e86681182fc23807fa8341dc54694b73afe7244297f0bb1c582775ccaa11e555eae48355fc490e2f813cf15ff69ea4ae67af14a4636888a7f8be0ad4127ef9b2583b238cf5f5eca4a8776adfc8b426d4f26e8eda622c494138b881ac6dfdb32876bf8d6394e89ab7f61d917c7cdc381de501bf258ba1cd677bc79e0bc8c76b1fecc918f66ff3de339fb6c650ff8294ce943077e870fc151290de1b31969d9338aa1f72ed22493bc0f229e051b4c5918d3617998c6255565851bde5bbcc3020feb751361da92aace7e2acc7425f61a778322dce2605c9a047f5e911f2c197d9113f76b8adf28b9dca5958568b68dc36b95b51af4fd1cd042bf3ff68ef56862bd8e5003078e51bb25a1379b32af863dfa5d91bd0565f132d72f5cd9a13e3403bdac55ee41a264ea16d5d1f2f502723a367f9e15324f225195e6df700b6d93ebc82010a32a753edefc2dbf904d99f638addbeb84a2c809f190ff3ceea0733bfe3cbc582657d3233dda2d544c3eb897c79bdd7c52008a0e51fb3342579e7974cb0d88f318ec0834b97b4187fffb7b1574e0a29fcef393c1b61e66dbe9f72ebfcf3bd0d98b0d2f3f580c281c1a30218261a085b2c0ce043870604ece6d06704d2c7ac689e696e647058c2a1ebeebb9e50db10eb816f16e625ec69dae3cec371f42e0dd73043aa85a2f68304ee6237f468b6571dbc9bc1147e675f93aa4f63e945506f46d579bef1f2bbb9f6f25291b4d77c91858767ab5bca4ef2bcb63d96f7e83c4e0f94c1287f972041d05205e18294e7d70fea7869c9b06cee744d650d09c35679baa50d305408a8db53671c1d22b10743bc66d56c7629f44e39e41dc6c4e271f1a3d4c27b10c617b80f18579f70f0691263fd6b8cc7560af19b6432cf5f784dcccfb4f28a5f4b9bfcfb2f1f9775dca0dc8067c5ce7faf148a3d468aef3e961779dd65e54034d118283453825ae744b5b7004f431294657cb306c43c6377f858b5a7693eed5b138f8976936bab73863a90b0270c61593e09aff7015cc371d5f70f4ce792a07cea63697651fa39ea7d7de711027674c6e652514fdae88b2ba306a5d81052315bac587bc80ae093dc016000ac57df65ce686d8d2295a3811b0f3e30ecc4b6e9ac2444bba14ec91e75a4a851799dd3e6d29c16ad1ee2bf11ab22cc47d49f0b06685beb8ad6ec368eb354c516a39f7cc8194d522b39d233b65996bf422d848ae04daa16836a52df8ad5161ac999a149b06b3f9b1b27be77b2a13762ce8b0501bb988ca82299c1d8d458d9acf664e706981ac1a214c369d12381ed5352af5127509d75f29c8f138ffcc75f4140e1382d7d23a8dcda547dfdf314dc66d60898571b4fffe5b5cb55289ac68f355ca0bf85c596262a95039af939ea9438907e02fa987084da43f4bdcb9105f1674e7656c5a7f025b0b69123e706f53e7c541dadbe6caa7a9198be64ac4b8cd96140facd8f8d4bbddd5e17520bee3dc324888a784578539a89128f3af546ed034be638b33b36bd199a7aea205c62079e6cf524be216d17dfd8b66b4b36de3fa06af2058bb1b416d7ce13f92fa3663957242773b376770c093ffc9eace506e3adb6d2ed1bb7ef78208773e11ffd0d14a3ffcb8f0cdaab48f59b96ab30084ccf21a2207c93aec89789dd0f75e90bf0a2e9ac2cfcac8e5fe18b2100dc119e53e34fd8bb4e184b84fe5cc56b745d0e7dc6480f2d9793e86a58c91a773160863b136e89c22c009e5d61ed0b08f4e568546dd083d314da7dd5de35286da5838bcb1c49457cc962efd1241f5d5781f451c9b1512da4ba638abf7f9067247f4773f455548d4015ec3ff72f467de7b1ddad2ab74b78d56bfce5e0c550a54e1357bcf43c2cd7d1ee701a20584d29c6499fae965310ea3caee1a31ab9fb4dcf4496e99e638c2609b9ca72604765d9ce99ef38283dcaa78dbc362aed327aa6046731e76c7997e675777a5f62200c6e9ef17b9817867025d08bec2d215c70933f07e8cc476410c204202141c801e6d083ee573d61aabecd5aca9a38e60d4d8760943aabefa8d63bd1d35402e81f0d260f8ed9f8a78289b511a0092d68005ecfd87ee71555f4a2dcf269a45e946ec37952c14cdebe3f71c29b7e3275d9607151f3ef14ec9c13f13d8f9b870c7f2676ce7d46a60d66b2fc3caf7cbf1562b9ec78671d5fa0a939a6c6b8e316d897d9e15441027bda7f17b92fbed06176da32c75541d366a497b4d83879654c518408bf4cdeeee03d0fb7232a98310a75370da9056c22c5b98de826c9b254afc30567aaac73d243241040ec0f3f887ca78b3469a4f6fb5ac7d9e0b588a88a5699c6fcd66b71c42212ab25e0e1cfdfbf99b4f624da370ec294a567ae58fe4fb9f5f02036a232c3e050595ad5e2625e0c1bcd522b32b5e4036eb952659bc5edc2a9904f17be55357066b76742b359c2e79c30e1e073f67b1b052d005c0ad72f853bea44122899ae9dc80d449e38bfc1f78be08ed717577a749eeaa1f14f1075d4d79203783bcb84fc5cb16ef1b5f004179647b63346b2cd66b8ea366f682d187dff14ca473174af7b7ea1c011f03242f304fabb6f770a462f34ac7df3f77453fa692e80273d3874e0694ad73b0cc03c938a1e690fddf0ab07bf76c651ee5b73abd75fe1b1fd42f3f30fde8ec6fb3eb295f6b1634f183fb0a6ddc6ba39c5638c73d806cf15bda34b560295a797ccebbecbf67bdc2a7eccce5fec9aa624f765f2d4a936c627bfcc8f6f538957b6b0e6f32247568a945a3bf4b82e6973200ba9a0aeef4bd1d47f7e56540b1f92a929d92a727d5fe7f6c39a6b5d1a77e97f612e5cffc28ee65182ab2df4119e9527bf3ca27719f3aa0505c3088e4e671e50c26bacc97ef259cd43e3ac44599eb894cda9d388f5df8bd81b44c39ccd4749ade6b2c311d82c5564bf849a1f4e70bc2f0f21978fb4f8da97143c2a500b2c39739f29ca979b9e6a0fa6b544fe768d0b0b9b79f9c4aaca92ac19d07ef79b73a8b7a26829b7495caad7f5c4e92f12176c3e6fa2acde0bdb6d08a8b7358cd5dc1f77a6d49cc0955df022254a8d3c4ef01c39bf7b673f07b66ebdc610080c1d2f7e275365f9e3ff3b958f05aebc79feba98ebfff67b15fa988927fb08b2d5321d9aae7a3dd71ad983b135d71fa47e833aa13da6cbe451771f2afe5ff43e014aed9e0f529ff6fb253aa3e9f04e94b02c1ce8ea5bfb5b2a84b05dabc7a92cf80a96b2e0f457275419d007756e2516eb360a888c35e4c0b6e857993ad5af780c749783f36a8ed46cc1fb80de127d052567b78472f17bf5ddbd5641facdbf3e56a7255f47b703410b49ed1a2cc7a353c6e7d5273da79fb5443c9bb203621d92b588994fd2aae16f3e8b338e47da4d1d61ecfbcebfec4961d750f5fb3d5aef03b10b7e249b53801fb6fe87f42466360de2c3a19a4b6e32fc2e7ef91740361e6f3aedddcb0daff1757d683ce65a97750c8a4b619025e546d5511b07905dfd9917f6522731df43888ee04d60c7bd7363ec4a160ce88b0695c3b414213b2abf39653d0d4bd3a29bdcc3d73d08d1666a41718d1f1646633ad4e6ca7712340a00a5bb44a26edfb6f894b20d2ef80469f22b261b25434958d6268ce66ab8fe28c548e6072cccbfdaa7f72d6b98eb2aef73d7084e0f0e2c3325d4edcb3f47c719a75339d7d8047a1fc4c7be21aecfa0d4ad8c46aec6bc2309fbdf855873a50a37c1c5db6449f325f6b11d1211475466ab9946a59e3f22a4cad9cafd21af787d2fe1893e7def5f53a8a21e00ef3d5d19007b60c446d893d45c4107da9c1b15cf2467ea0fb50a6e6b3e5fd51faf480eba15f007054c83a8c764e8d8a55ed7f35e4b1986b4106055467de3fe19f4dcefa4b22a1743606f1a6048556adf509ce0b359e5f0fab837de6d548051cc72b732052689ea55fec0ca3f08de7ca805863dfb1dd0f3c55338dd0c5338154d66436b0711ef040b052fdf94958adb562f7a5f55130c060a68578b48eea8dd00c90fc7673ca79cc43ce1ae42eeaf6fef27df3b1e94fb0ab7a278fbde2dcb61d5886657a0262b32f1a266a53c5c928d06becd89a0c47b8488f78874259dc2057657ee2b5d7198a176d8d657a5e04237e5c0313368edf9b3ed07683bad610a5a90596bfb4506df6111bfdc84b589decfffd7e0ae55241a0bc4abf4e7f26b60fcc830e147c409b33544ec57e793c66c5372c97dae34d00cd164c3c56538535ced84795f362e6b420636fd16617c4996ae38c313f53dad37beff49029797d9faf2ee5bcee58d4c236a533d84cd9bcf35121ee45ea235f0a9f4de12d41e330193d0b15b7275327cc69389abb5fc8f7bd412883f1039ef5aa3d485dfc7e9fc5613c6ace68ce1a2c223a84a44615ae296dfce03521bb83e9a03f3b117933d9078e32cfb4c83283365473925fa691fb4411b47c10d3bf76e55a26f4038f7185e726741b593d8681c48cb482f29a6a121e76cca5c26b6b5d83305f42141415574ec2b5f5181618a493e82bdd223ac8b13bebc284c9f6f2adcb2dc4edcb74d019dc9a139ef227d7a40369b2031a27fbeed928c3e367d2a3cc958455920d261130931dafcb4ff376f69f05b40ca991719d12619546415651ce869bd6a583f2b0322b128c43bb0fc40eb5e48170534606b8d00328413983dd0ce03a5001711b50403413ba3b65b00951aa6f15d5da78cbc6138a330408c4d37cf795d02fed858cfffea04f37000bfc18164fa01289b6f594bcb3782b09c83664b84931e4627e69ad171a9acb4fb15d40b90280daf576e9f7a7b8c10cc46a38d34f3fb9ef6682db68bd193dc4ec416d09e0a25c62583742b7bd9854270688249ae251c4a3d8ea6505be9e82bfdf3b2eaa350bb3686f419e65cb1600c74cd872af987d63e6cea4851e1194ad386a5e266e3ad0124ab23614fa2c9d052bc06a881ae1c4c9c27fa4294c8923c4b4d0e37a5f27c5f6efc246fc4a9944488e23398c2bb5fd4c30391faeb0ce944b997f934fbda51b465350f872b7a3ed60cf13e7373e3aaa4b4d9dff1c5691ddca92f8883b566f087ca67e39d724fbb125d45338cd0c5ace877c866827d1097bd18d7f470b78548c984636443362dc8a78bed41f3e42a602388ef5eaa83a7774e51998e3c274c9177427b061e74b2347b2a24c28d41c4c11b52c68ded95d1526a4c08b4627dbeb475dbb1e90769584cdf2d815fd5e3951ee5ba098c0345a572ce82caa464d5d1b616a7e8e7da44b9ea02973773aaa7bbbe3cc5b2937b9d3638004fbda2b2fa6911ca96f71bf4485fcccb7588ab6cc3c3846c5f635738e52a377edab43474117b47354159c091e9ff87cd8cfd7fc49b68014bbbac931c4639fc8963bb1acab0f87b96dff66b6db5f90e9d53077940b8bc05c2fd33bb459762abd49bed5a2e28ba5ccdba5bcc7e5cf1e5119a25e1dbe5bc361ce0faf69db13ea8b35082ee1a47d7c44457c11cb0cc5699be7dee12866c0854399ebb7d702c071e041775b1f658bd1e32b895369963b453ab09463aa18cc73aa9d7a5d247de42b7e2dbc382e3ffe25bb7eba166aef5ba61a776a39e2e9b72e06dd608da5f3a1933d0443b986ade478842d921f0d49e5e40da872409d544b5ccb37f3f96409c689d99d9e5727b1d251ddf542c9ac9d0a05d4ae8b2569afb60e9b45c1a1b507e124bd13758f428afb646370c449cad3a4cc820f8250eadbad786ca1991692fd42c583beb1c0f8b6d2f27f77e2035a43053ec7765e9ab7fb99f4759464479db2b8d8d3cfaf7695ed127411ac5fc1b29aeb99a74518fca3cd2d05575eff40365c61b26d353e1fc6d5dca77e49cca7d5e9816ed249ce9854461cd6d898962a4e2a07bec8ea5a4d7c59482f574d1bec52d9adcf5d5755bf857d9d2f8a762ca1668c880f7904e2713d663147c52cb7fca0ad771533009716cf117f5c339fb88863bb5acf82642d2bff8589d7a743efbb73bd48a00c7f29660b3d2c7e607e28565b6361c24d9592e6a97c114f058b5b9df7ecf321a478b8305dad03aad204dcef75a873c9e67f8c466db687ac596fa88efd48e70a4a69accd086b106bb877098de390e5b3ec92465f5a7a50f7a1fe37e776f5c30bb3bffc22d3eaf4c7658052cf4d0308e0a68d8eeaee37e75ae9ff5dea898a9448d51c84953790d33c9bb0b8a186b603984ad04276c69c1509804585f28c442bca832017a62bcbf0588a6ab5648c0b62b338b23c01ad05ea940c10f45fd0d065c8bc8497fba0bc1f7061fd80c8108caf9e542029e357640308fcacff0221b1d92e001f1481f1967cb3bbb6fc41b12b32b47dc77502c6893ac7ea961a3bf751c087e975aa2220e865a7ce7a502c72725a4e0566410b16f31e11e0d8ca79ba4b6fa080c35eb3c1f07a5ab5522b76a85d25f1febe84e68f1438d128729659d99ed11a50dfc76eaff1106897ea35001efb26643ab6e428cdf0918bbd97bc6b29fad070ee841774e1c711800455a21faa18ea72b1569d4005202503c80128e2c0c070adff40e95a2dc242b13cc6d6d4959da902fffe4191f39aca737f7005c174a18382f9ffc1fbb0e792d6086a4a240582682392928025bec8cb59b586f6ec5bc6cc90915079337e8f01a2bf747a5c074a7f21029a6efac40a487dd7dfcd5146ee647a1dc4bc334d0ec6247d6e3cd876ab0d229e8aaa9c260f06d182fbcdd2ffbcb3416065cf15d440747487f157caaa9f6347fd951453213ca35f6c86fad7439d4b091196d2177fa9a821e049181ab7f4daea2867d78630de94d32308069cc62fc7f7dbf27118cd86fca2471afc41e70eea57e805a40e10bb964873d7e99de555cac07ee4e54a6f018be100da576ed8e4987360045f39a312ade8b1ffbbdecd05628bfb40384754079836790e36a6793d50de31594d095f288d5b59662d3393b1a588f3f38439b6804cbd584265a7806adb0c3a5c9a0f35f7fa2bc4c46b4e4d4e78fa76aa416b926de8d58d2ee71aba32df3ac558470076875729cb0aa3b36539083d44818352fbdad7c66624d0a568dc88525e92bc5a55b7a7d3250228f92b684aa4f3c366c82d3b9ed9641208285d3b808fd73225a306379e7976dce974488c264fc14e5a244396dcc5d45f536bee47ef2aae0f1a098bf0f82d4f8912d86ae326398774d23ca5e3303b8081abb6a608990febe541d4316c6a311faefaf7a92fe5a03906a329f2a648265fbf6f52b430d248c7ea5af83bf70d8da58e3d2e0ea6111fc6ba3509de2dedd6fbf2cd944e3ceb85f01edcee77f4294f096da6457ed744dbaf3220f6f36d248a2ba6156b4fb03d4825966a1aa547eab37312e63fda06b46bd68df14e694eadebf93c0127b4eceda331beedfd89ff92dd6033dfd7de8c9d3a444a1013248969ef0912e142287284b893b4d3900d1ab979a55e51f96e53f282cd66c8a3166ac556fa9c1c13e06fec84b2aa61fa5bdf96e4683281574250b8c3e9ac577f4733292a5381f26c7d7d3ac92ca46c0551250e09797df236a74b5806122bbae0aff2db8d08333efce22256fabeff0f46f537feb8a79b46cbfeeff128fe01507febe1e77c1a36163f14d79775cf1235be261469237a1f3569891b40be874fd151a37f3c6f416e4c9707bb5a09a0b59edc384311903c54d3a9393a187453b3bd2a117c6e439db3811819a5315a5c74184cb90cb367714ff57fa36c8370404d7196a287ce4e00f968da7d63de4ea05bff5da8eb542bccf820e5e675e3edc3d3869c7117b2f46c27404f19f6a6c789526d018e3a01e3ab60a92cf945f4f9b0f639019040753a18bf795ff4a2f23c796edfb531f498979f94deffb29417bc2086e266c1d10746b64436fd5f693f3987a7cb706160efabc07a28f2b6777659fe2b37f1e9744e68c2d802b42c9811b725c4e68400a137c70647ed53546363ae89526beca9e82acbca85c154ed7caf626d5f406143edca6f9d8c809cd4a88297fdbee6d92f7c80b02d3245d1626a00ae1d3e8701e521215b95764fef11360f2167b6d50aa0c28f595512fa46693617e16a802097092c22c46c698b13622b0a9e1f04f34468707e2c49065d5cff1de113dc3050956d33d10d4bd5a4bfea22b83c295646f0acb5ba18540f050b98044586699e5ce08b5611a1f48a18054b7eb73dc4b878e05fbe762c6e416c011c2b3dfc789f4f23ba849c6b5ed8972f0046223d64798182895333d8b35e334d87b8b2518e4f4575a864870f2e78eb40ed4f8ffa94e5a63d67dfcfafb43ffc4ccf34ed819b8507adb11a2bb87157101386b732d0a1ff699156fe6b0aafd3be8768ca583aa001aa930b09444759b55b6a0f3aa67a2f58a1604e71727aef96e1f0ada05ba6d7dc7811807964de5b13fb8d91efb87b5fb79883083b7d3712dbb5a4c3a0e68668fd9063699acb018cb3735742a896f028a44a4e4d103b34a6177c122652f526faeb046dfde5b8b197afe5cc9a4c991c20625fbc6422d1bbadf6222e300b774a7df34435f4316b7e2642b1ce2617cc4e4671c716122ac3e4bd0076439c156f72378b137ac3bb82a0bfe5305972d4f03bec8daaf0e75288e0138b3ac516067062959b534c44d213dbf549714f8ab5139cc24472728dcccf790f7a8e175295a34850476a9ba42e43bd629ac5ac462f1d3818cdc961e8574ff015a66e4dde83b3530ed5901e4f6c72060e6ec72c3af5cb19aae57f7e972c3a4d5bcc19ef945381bcf8a0411cd1be0f455fdfd5fa6cd43b7dfaaf4c5e0e3252e5664ff7aa6106b371ebb35183d497308e3dd0c2a59035af07e133617d479b806e7ff8140d8280ef254e8c744d86ad581e2c0861b9a57a9428e69b320adce4fa8b06537e486a7daa7bf476534502f610a102ab400aed6bf1e09b2a04a4c63f4e5990cd7b27db36ce77abf2e7866b816b4f836b34c4944511f7105daa1d91b30037f69cddbbdfec3da18eeb50501b365be074e4cd9137f31c93f0c895ec3f4033c8df22f94081925aeeb73a3c3b9fd0cacba5b24e7eb81a171393cc88a1a3a712d7bbe329997d0036090af15a5e7b0abae49bbeb2ca370bdc5a9515501567f60ea2868a9f9486d094e897544cef2f49f0c09b06ef5b1f761d6a64310d9c621c28f1d4c66d0597dab1af7b75985c515b5c54a209130c96042ed1a19bdcf212f5cba3c7c1477f8ca82f88a0f7462b9277f87f8ae3aecb4b6201b968612900ec21a9c45ada8d00782ebffe5c089471230079df5b0c2570429b6882dc0ca259fbad070fbf44a96a154a21d0450d414551ef9609b9e9a914af926a2bc0cd2c078e63b1b23427a4ada6d0f902cc272614d26c81b4a5d9f89902be25ef9055c9d87e27dca9f3ea64462214a496e0c0796c83049ee9f9700ae6f7f3a20a150de5f262caf51d71fcf6e7df3c4a07ad33298c94c9acc430df554883618507a4e37c8db752f34c94411e0e3f9b092b8a1dcd22e4990349658431e4c3a1c0a26158aa8cd8fa3aaf9931e928b32237699fe2a82e10b96cff2da1ae8f22b60aeed2aaff445a83511e15f8c4998e86907ad065a145dc1400391145732154ff5b93975d6c8f344851ba447fdb9f45b33cef413c27d52365d58919d974df5889b877540e7de60980c999ea89bdf57924ca38aa783fd381282b445f028f41a9df9340002430708671252a4ea180679b74c760ba244435aeb94cfef4f02b3236eabd5163bd2a72cb2b21adf466c78e33ec70c02f62b2c922e0af9bebeddeb4c802da18d27630f7cb63fa9345e7a7020a1065ccd6af6631abc54aa5e58c7e8c5f35985f1a65f1493abc9da70ddb26965694619a6d3953f079d6517d28a856a8756364f569b7c46cf72c3b5aa831d1c869e44d907a2b6797414f99aefd32e2e859216408685351fe4f9d03b4e933c54f6a39155e843c113900c7840bf45ea31972f3040b49c97ff74ff612e6f7e479e36599fbace93afcb86c41a341b143533f75824dd98ae33ac4db1ff661de7c788d6c0ee0b70354061eef8e17ef00348aadd751f550b0aca639a8fa794f30711cf2fcfee58f78f19a2d665c740929254fd01cac84bf5c409d25595608f92e5f185a715a7883991c648bee595548656c82c4712b0d07ec55b99fb527f8a2820bf6d3b4c7199d222d44ead686a5646feabede098d452e856c60c1aa26c9e914a2082c5ef1d8236cb2a7896dfd9002570387f912cebd66e15bc644115764e15d007c0977ebbf4d447e0accad273d6657c45456e83c05566f996e50cbc406ed257ad013d2ed92767df18445ef8226ec0189d07975a9dffc2d48d1cb9357228749b395475d391b5d2d9870a96477f518bec087aa24a5d8b5ec676292db0d12c3dadabbfb6987add464e2e453ecc178a0cd8b27efcf0e6592045e2353c0a7e750d0cec4a2eda44b54cd04f0d60566153bead1045deda8b3bf9717a1ec29a635e864432182cd585b1d73733a6ed2e4ff43b16dbb391bd337f81fa59063cec8382a0aa65fc770ed328fd7d828ee11145f23ddc8ec97fe9cc54c296d305f79c5d3c75db6c6212baaab784e2eac56654bff0b26ae1170529470216d4d3bc5e4dc580a77e904ed520b0b344a19e176a7c17ba3eb8759e6fa7e53e6b99e586b389a10b48046b217770710053dbece38570837f9afa7b0f121f286609389871add45c1e5e57c377c6f05c1e76795b3c6c2b5527e948bd09f46788111a927594c67cbb157bb6a3cbef1678d85478e10d42ea7d8e75004f6dcbc9e7fd0ecd6f8a470dad17f1321b04f66ea801e13cf7fbe6b70ff89255eca5579cf8714ba8f9ea703aa152846f0e28655f7976db7e03041eeb0c0f5888852ea67bc97178419f81c10dc7b1d411dfe1071cb6f5d42a735d67df4fa64e523dc8a964e583349b61e49cd46e6285a9ef819a73ae8e91d0e0375fe68292c3f1845352142adb36ce346107c1d8520d3d9edabcbe8a84230c7b658384f125aff428434a84fd1c6c2de5d1e03889cb17b1286f5d5ca6e96e69b6bda3b686e3d96568b433e807c6a0605db081917f10b3cd5815286b799802037a3aafa60599f01fa7f5fcb3bd147a3f0692606ad7b1440f5975de6f50d5b39fa5a6665db3d1ead5b1221a699983b78dfbcf1429b3b76244e578495f2cd0f38185c36b8498a56c40948ff0777bd3fd0c5011102770c3fc1ead2152142943076a9b9767c6e4e23c06f0e98cf7ebe4a2fd2e461afc9306b6688590095900637717943fd5b9dbc500d7c5b5e410b24f27e7fdb17cd9880b7b726a310124c99ebe46ff71de29457900ae812d04a80e2dcac24be2de0ed863b896983b6c905bb80d70c581b8d548c5f8d561242261623902cfd6a6c5d424572f6bd4350996169b46387ba49e4d9c4f80e6fa9f48ef9bd593b6dfadf7637a7ca47edabf72c786c58d4c48882e2ca87575664a2b71b12af3e4cc78cce4b43ee6421fe8a6bc930755a8929243887014a8e17ca52edfc1af9c50baa1b8384bb0069db25e8f817364cb292ea13360084dfe2dc0aa74b3375ab449a049101371a391a76546c96b63906f9b4bf2c373fba690e9687f6d7f289267fede0ca9aa6befb5e8789041654cc6d76f05dca459619a3abcfa9afc9360be6e701e1a39825deb795c675a7d943c5f1fe0acf195c4e258357eb0c339ab549daa5a0992b7755926cd8238c1a4e19a5e3ed49ba2cc5f724dca9a6548ac3f4e8d2e5f2236278f8cbb2457283225dcfeac9b74d83d364fa49688d2c6c8d7e6773cba3014b5ad603e1e0a321d947790c890a327213aa862987284c95f35a63ad73194f5b83506b01cfd9fc4e73002b0c7d08e79262c5c9d9a743fe6066d6bd4b28c8256c32cbbb5a5f2139a56e7b1267936e6db1ba1d18ab18114dbf3d4e1494ca70563ef33970dfe5d0465d72df80ce0b18eecab82f38fc88703fadd205d4d02f065807e8b8b29fef7b52b9aaff44e9d9ec1a00ad62909271c3e41f13a80af7892ea44d479ceead8c29ed518ead68f5c2f9e2a90f3b6647275b892aba04c4b01bbd346de58976905108c33b89aa22d52112af491d5d41c8d1a181b40a2c515871010e5c6ba6320d5d2091c91f8db8dda753fa6a26f2bac7b3d2459a2ed3d34b2d3baeefa4f3dceeac3992e9cea65b9fa5e987d2c823b17f7cd71cba5f6f1eece0623184f2c9e105716665190015403ebcc68c46379b1b8a48679f9276f2391e44ad16664e75e8651b6decfd4bc95f0728cd211d62160b322d215a5ede8057d716dca5bf94d6d3d1de890c27d716b9f81dd45941368c9629440186cb22e8ef9268fd72df8c5a3d995f76f2c26146e151060b568bfc7fcee326fb1683d36661f619a540a4feca6f029ecb37e8f4ca15e4e114c6059d492602b3c1102740201956c262ceb366d262defc13570237d9bd83c13b4c7f56e6f8af1a9c0ce7e55b8b3700f1868ead02c867fc931552ef9263459da73dbbea644312b7b824a38d88e814ca4812a8b2c71a20ecdc28c3bb515712a1344528d56ccfde5922aa3a6746c40b3a9953739974872a941836af753b191483c88cb6906e00d6d5b17cec5c19f425051fa602a2e3873e2af509e81d92eb967e28c7e29dadf3a7ab7b30220dc42196b601ce855fc463ce0c65470b9cf73d5ff1267cf6758c520d96ef0ae83a2d974092c6ddee613c7f1bca0b97612d77504b7853d690ce0d25f6a8cde54f6751baae6d325fe4367983321a2948cab03914d981579318b5a0818f1c637cd40ca4d310d0a1d5747e838789bc9effb859d635eb3a9108355378b192ec0e7ca07be56bbc8d8f3a893fec976c29570e5cb2a229635d333b1f41404f24911a6b0c5a990b6694d01508bbe1435f507e3c9ec0be6c0fa8c719ccb22d450be4c60b0af46dc3efd4de75058b900ced182226118c1a3b9628d96eb2ccbcc225a6e55e09249b159ffc157306ae70cdd91bd7978dcf1f1c057b117b8a58fe7048f3a96b2ce3a155a2667e2fe4fc56343ac9be25069cb1049196774b4b4573995944fd622d626819ed95de2f9147297476f440a8f87b45325e3688f4b088267446f1adc54e8e7c68b6e97f601adf0c846197e10566b33112ac3ff9c2526c8b7ddc56fbbffd1106069588b9e98550f89ec8ddd838fc6d554279ef3958ed255dff7b55858e3f288d0d331c42c8e52f4c21fbe39a1d11eff187700d431e367ef64d1f93d16e1f1b3a67823dfe2be60aee96ff6dae5b82c2102b6dfe188ce7b3e604cdbfc5f54e6050245c4019824be8c38d77d15158081f972b7d08357de19b889fc1971560846b446d3ecb0e5b60417bfe53a50cd2b3c1e75d2e9ddac45cd79efa4925b1c5025fb298c7aad85e0229231b697756d861e5e35b07967e6fc48e0587633713245baef9ddb0ec23fe5ac0f84317a03521cb2a61754110c5cc61ecb03ce017162185029d2cc97e9a1ea4d623fe65e536cb9743ce16631b2905d4418183a146a3a397896e4165a341500d1ff20bda928879585e64bb4395c7fc4a811670796657df3fa54b8031fd01955dbcd77fe9fb9fd068b8a0f5f0c61d39d10f4a3c604c89583f6fe6eca37fb2d926912d87a2bc37a3afb804892e6c78138e9bf2882c394b5037cda6d096e0e6cfe352c33d3ef67f0a93d16d1c706db43de5932d152612b4cb82bff59d3602e5124d1f3d07a0e629d0f7e61eb9e3e0bb2910640201e07e7c78363f61bf6c96c325ea27b43c1dc2042a32fa041cbaf1fbdc7b980301162fc0bdd1f86385fba2f61fbf83f135aae9db2c9d43682efbe00e451d8852e6513882ce6c9beec3134514b2cb5a72bb590d7482712c27e511effb409079ccf151902d566ae0d1b8eb6a56a6a36729505a0055ec0f1cb8d3bfa91f897731287c9f6678cc58eb3e0cd263cb6b73948f1fd64210b29b249c6236d5f9a43f66f5aa03cfa4133dfe7cd0abab43213d9fff2a3a7f54298790b5a581e44a745b9d69c781faea8ed9c69eda5ef6dc042a8d708ca4bf6967ae67afb30cf360f930c88651ef18068503d196b8bb79ac032ac74e4932d95e6da75d334d3f0ec5f7059480d377065c8bac3638cec46389de45b0e1d8bced1ee41cddee4cebbb81888a3c35dd4c76b2891f3435481c8520e4517b8273061b46b09b3d67fc3183fa5a38565654910f86cc59f61785c1521d3c59661d3ecc712dd565626e93b8ec65038de39112e74c06dabbf1929ebf321269ece79952710d7bf6b4e55912f95abfb22f21891f3ce151792a2072fb87e95be8a318afbbf7ff26239c70707e7b8374557cb6e4182d4f9b430bf68a486bd114e9eefa6dadc6bb71a9ed83599fe3f311537ac7ffbe6523b87f5e1f70255868801b0ae46c6187ba5c890336ef8752b61f767a1cffef82145d6e154c201601d7f6942af2fe63223561b1ed39c7e57bc243c7ae9f4d1e413fcc60b69b0df362e2dd7fd398c35b38c2430c89775593ec82d61f659823cbfb66700effadceddd7b5afb465f22367435bbf7c1220b14beb016507defb6f3f15be9b3bc84d6498197819e775be246d0959d5cd164162fe6ac5458182df7ce5d1b612102b98a76d8dee2cd47c60543a7e74e6680ad641cde2112817c4c3d2a40f044e4e6916b4f2c753ca7eb60ff6be98119e8409c8df656e7196b89fe1e55439c97a52b2c28ba05f1a59f093431bb513ade48d940d885de9b3b5d5c79d813e70c177119573457c481710a2af7e79e109d208ae354bc913015cac90cb52ae0522f94a64dbcf69419762c17738acbdd9c5890cc4264e0497e609a886e399ebbd86678fedc9ae343edc9fdd1933853787479e5dac9c481b47e1f9e6b67304eb8bb05b7d602e22c194a15de33e9bfb5b275296d47d975ef5e7df3f1b1f7eb44a1177b6d293eefe4f18bc549a94d6f23506b810f8f575f7e5eb54bdac9b12ae3522411ee49d04958dd9942bed193325af9d5ee18324a3f251a1b9b3faf9290ba338529646590e1b9fa9721f0723f014131f12cd4302fb3d0925f8549a7263d88e6b839c4ae0050c26acd9bc17c1d633d03be4feb4fe7bc9ba56c248095c2895a3afe861bdeaf6bd10ef0f81d39a4ed09c424450be9458e586b0a741b5f1685bb6f40a2a1f550ac6debaa9dbe08ce995dee4979b1b51cb271b0a751e368b72ebb71180c87e2837fa205e2a3e7e0de6e46b6afeb8fb1275a6c96de8db888bbe69dc1f2cf26259a6062f18b6643ec8524b0584d4c45d5d1d18c44fbac1c86903c0f9eb6fbbdbe14c9a29624760144570d201ae62451b4841279297554f8c48785e9970be0bc67c91d939f10cd35695de310f17c517a83785b45cadc80db29579cdfb5119c89c39aacaaf985beb173c00827282da45f11b84450f8235e9aa3dbe174598444091cf0f508484816e82f2b4e20785a86792f1ab8308379a47e6783fac5693e9cdcc0b6b8ff846fe1da67460cfdfd936139cd5997614469038ba06c8679821940605710d6f1925f6b1c94b2383fb4d6dbc7496d8fb985553b67446d43e9ea46875a937d68aa8c04c47a706528806973ebc0b1063805290992717ecbb5037db7fc2c5a00b8db416e6ce80ef788ce6873847ef99c7c8aec61a805b147eb84f78d14345c82b5fadc6d7c656dea0877b8f005b1d8a7b2f4f7441ed6029443c9f0cced42d27595209b2f18a37104a2b47e4f8d579ef54647d8aa0f82df4a7dbb9a1a4b36d076e9f133934bfeeee0158303d48982523f13267cd0df6facb7f870dfab08cb7333f070aa0c3041bafac11d76e9633c438fdf7a0be72a3b108ca6754c0081871aa14f21378ddb6bd3ebcfc087897146617cdb32fccfab2a7f996a283c45d05a9c7a26421f6d4c3cc058c6c56ade6fec539caaf9f4df76bd0ca2afaa0b33a0052e0b8b475f036ef20b7a85e0f40d82df22e2bb45122550a7042ff1f036932da4233ab63a4d01afa1fdff4c5e1a6b5912f406cf106f227e1a46c645647ba68da38cbc0efe1826032b6ef6ec87d4ad1bdfdba66dc948399167a6f2616ac8e5c55e4f89a8b75a6f2ac0dc5ec59d16a2a10251d0ae4fef5b1004b1bfbac5a75f66878e7fe47bd84ad7e80b840ab9c4024de5dd21c605e8096e96774aedda2d2c58d0d557492da864a5a123befdf38f1f40a0c51de6abdcf11aaeaf8ae73877f13f88fab4ce615f9188c1030a0b7a09000e7f5e6eceb6d0dd6f457bfec428b901c208aee0d941a76777c4fe173c7dc9cc540f6074904b852a2ef51b6d27837f58342055a53b4d088e223d869507cbd27840f762c61e878e2da401ff66e3de1bee01f9ddef02251bae9d46e723c48e12c66e01115a970795502cc0e3fe2bf82bff6457551239bb85b1fbf4228ed2c25bc495fefd78e5d03a577f1ecdef377cd85c720b0c98c35e1c6505308fe393294bfc14c913c0ea8e5f706e96313d7518647161ca03e22979590f5f02f44282cc6abddbaadc3ae284b62212c11936c9a0a427b4e72d88f37b8e886915eb25b531661b453c40a959bd169c878a498fd861090a073d5d7f889b4c0c958e6bf72dfdaa9753ac4753a84149e45c0b36eebfe612ea0ab8f05d1c43dc18a706b09d254ea03080c7e0b765b8f0a6994a7d9bd210a4de150beaccadf8a49e80d1003bb7261988d2c0b1eade2ba9c42bd4eabd8972eb653397a488ad6231e33d59cd20ea275e6db22511a40d8e6fa64b3ad131948eaa02d5ee9b1bc9d2962d5fbe7b982e88930064073155d74653c0c3c79e652b4ca0ca2424b65bf7e645208095992634fe1f5adaf65676a7bae2823a258b223cf97931da8f69e0c136f2cab6256e081473139c6dfedceab6e25b5c8616a89a244180827ed7170211eba5726ad46ff3502578ecf8611b2eba7481f36195e5bed62df6adb796ea2306dd65a847dccc303900c5be7b651a0aac244e4cf9d310f49b520fc4a792207fb4af5b00a363e143cf924415c54d0ffdea92a47c33d7ed9d35c83bddaa7715b89f6d720560cb12c605211f77a9f9434005c00fe47cc31908e3a8973ec19edc8a8e9bdae2d453d45b955f5555a8ccdd16d11453d7a88cdd10551c1add1612077c3722c51570a130b3a5be00b5aee19b17d2332d9073f8fcd3ed7a46abb6471d02791bd3665d341299aa7a27d4ebafb834406c755f88e3977169f9adb6097bc1963c41b1ba35f58c13b6b6d03da68b6f8866df0a6c89951e9ffb2229a9862ae7d9e69b2de12a70e4d1b101d8bb7c141b95a1164d6da849552b700c2c39dc2d0bd220b29c2efe475b0d6c3ca48af1d6dab1ff8303a4075c2848651a41c3706ad13db1041f0ecd5bfe303781d4514f5fdf0c7e8b87bcea724dc67da7c21a7ee1d9d360bce2cbfe3d05328986196763641404513f8218bab8487012b2247344ece8869e0dbac5d8c1958b477143364bd4c07571176a904bded81566cc21baa914b2750b2fc5121e090c31c4912761be344cefb5c4c2bd976e18cbea766e861d9dab9e26dab5939ac86aed992b218728215c06a381e49af62dc2c55e888326ba33fd3889eb6828eccbf50f7f2831b2d360bcf957bb7c4c24f348fa0eeaa13f8c51e38bdc95fa5c94965ce789409de0ff3103a6b2e207acaa25d6e3e4d51be176dca881aca5cbaf0c5a86adf9a140ae66ec013de86ac3f88c4dbeea0924089fc3734d6f385c8815b45b2f4aef4c9006747cbf19706d24d87af8e7ee00f924e2b2a7428dbb6eafe14de506925bdf50e00e46ffff67a888e279fcb6d1d183081e58297860ff3a4b912ff5bfe07d09673be531f25eea743c95c403e4416c4c2da2d67002c1df46f107cac0ad84bded4e5f720df0355a5599696862a3639bc5bf7c1bb6fdad724b5a9cf24291eeb4bb6744732df6d6f866f2ff71a1f954c299ff8a3fc26e8b5c57be50b5de8fe259d0c789d0cafda321ddfd57d21f73197edd207303b11003b85b1836c01d8cb2335313107c39a26266d5b553a23e2fdfd04aefa4a5b131b2c50a70ad424bd03be4d83ab72ab91090826ee942b1ab3554504458253d03312e96ce539fe056dd253fa2148517459b0cf089df35a65f90c844a5b32e52eca9ff0acd18213b19d41c87d3a1f02ebdc4ad546c78715d7eda2ef8495dbef8f603a04b063e88dbbdc3f1cadd5d124002f8de7fe61566bd47a295cad91bcb7f10e8f04a7f5550fcf7d3673e8914b12212a036bb9788e294bd1293652a54ed7597f4dbf2e63569504ddc6da36d8f887858ac7794a6dc3018938070e78bbfa1b9331b34ed70b627e57cdbcddb74d967babd5f6e3bfc06ff40268e75305080b2469ee1454ad2500a2945a0bd08186a33adfc35ee573b556738d31b021000545b802884686298efd077574a39b694390ad20eda49529385e51e1fdcce300a8d8587679f6d61b3b49ef262e1e5e606b9b5c1a17db367703688f481a7810c7984c0f124f364bc6d9273e73e8902e352876364b0324a7a138d49aef1c469686435aa737d788cf3e610456af93b80af9e211d5e04fea464ae6de113a8365fd9e67003af4f406c01687f75842db081e469f79a430fc5307971f98c6bfd3c91dee8c3af6127cebf35f263254d8db5a426b77befcc92f89da6f6a555060686ce933b088d120ebdb29370498089d6d30202b751206f8f15863354078cc220878bc773e411cb47774da89ee50394f06a0de18dd5f5cdc0836ff107f935ff59202c9b171518dbc72595ccfd8bbf90804a72c35f446c25153d0fe92e24816b596f48133f3f4905a88cc3ea7cd2637e40e452a1e22300206ad39c8184e2bc51093fedf29d8a9c1b2b71d21ad7724c33f6d9b5007e26c1757f145987f5410c90a89ba7b98e803c0acc32280c17789a2e6083d9960b4ab82411e590b60213dde2f7fde284610b6321575a3a3d64b75f77a8f3d4afbc55a879814b5316acac242ae011b2466828569810ba0ea0c95b74a368a4940541a75280d4019e1dc7775622f462c9054b50f4cdd5b982a113f9931fde62e742ffcc76e28bd92fd51906b1655ce469894d7fd78f930047ccbeb246418f18f36a6fbcc5c93e1077363464aeb9109020bc9df796d594d1cb5772bc356b8c64f751da2e62cf5e88362a5d5dc6f4c652bb6a2083468344887c42c54c7713f57c0766b802dfd78d2954365461ca4e62b7a1256bef04f94f97611d0cf88e69adc164cf623cafdb9f2d14ade3da5926725c71150c084007504c746507cc933b6a03a56312dc80c620d2c1c65d3480f9bda8e56e7c7a822efc3f881453b8351a8ce8d7da812c21959e79f9ee75b1d52afe8fe5bde6b1648c84007abe267384b3d9b23ec16a61aa3b1075b025b098078af142af1f7c08fe151cbb67eafd990b4616ae9ce4d08f5f7ff2ebbd65dff7bd3cb622f80514f3e6881d21f73a5d5551be8b607fc920aca3e309770d6489c5924b3296ce0dfd3a00ad274b85250bf4d449d5cb7b93c36bc4a1fd54bc861ac15e475949cdd6f94226e7b790c2cd84bce663e4f802dbe18f3af3550bf65cd045d0d5c27002536e1473c30e4fdbd1728ecbd868c531b35a2510cf4e2e2566a8b4520922393a1abfb172fca242eedec7458b9b14bcb11a79ff50e8eb2c4999540515e89b7e409569c2b56d2e6387bc2733c28b13bee780187e080be8eff379aa92c8016ae876b5b8a72585bf24d19e67fba93e3369ee61ee9e9a1fab0e955f5d94ce4da5d21bb31ae3417a1c2ba78dcc6f08428b5667162f294b4f48d34309ac28261456db57bb4ae62f2c156bf0c752b76c1cd5751cb6937ddf6e3ec0924aad5a3f79b01c848133b4a40616757149da1e0c8dc4cf9f89bf2adcbd90ec882163e219de0e0187dab43d5c35bf6277028cab610e291718d76b213a382ec0bc8890202f362c609bfb9de5e6a46cce9786ac2cd4810de5f9217eb9b25d08bcdf16769febd644a52f9cf12c49c81d36860b12502545fdbb01a7c11b2ca8b4b607399dafcaf9ed7dadc8332c3bb2a49ec611cd2276ecb9de9a3d7f0efb373ed3dde04864cc782a7b81ecab999af57992cc93df77b2889d28d97d44ac54145bcf16c15d93cac62078dc694c4d34c018b579c09e1642c8164626fe7b0019c1abae48d2db7a45baa72309521f4a7910a2c4e769a64f137eec95af8dd03216a70d1399e37bb8e7740859871fc1b3b365237c33fd67c4a29094efd21fca775a13f9117b6f095287128f9d2a7889897e5637ba7c27f0be8127e6c5312e66a07b55983644d4766e498b286052fdcc2349004dc8eba24219103ebdebd5763ec4f4bca8a53153d5f8e5076ed5c8c07959ecdf387001863b376ae43ebe022ae1460ceaad2a99312ab3fc71e33167e200eb9a75bd1877975daadcf1b3d931f09264d21d7b00ec60934208f289d5612b5beb305bb7b34f85a6611747eadac4cf000d155cfa3ba0eece065edf1218e60c60261a72de56695cfe4347541c66882cf44e4824afa30b23bf9512f347cbe9291b5e257280a26fe0a17cca998560a53184040d65fa68664c5cb2edfcec39c72992ac596ad5a8383e73d685ec2fb403f48272586a668bbcc311052c716b9ad5b2f1bfd2860d27e2bb85db4a7c552bd28f4c2bb3f8422687e95eeec515be42293eb95c3e1fcb787fbc47abf57dcfefe52e0f4981e7e6ab5f857fe6912c09bb8fbe86e6ef3c7519fe6fca9975adfded0fadcf073cff9c033d6f3afa7eba6f548054bf8c9c7b43e1a71d33a50f1c4f33f99b17ad18f533a20380179d63653f7f1b2646681fb223779a2c9adceb7afe8dd8f63b2f794a48c3eabe441539a55c709650fc6f6c62d74b55be05a30d997e9c8d085c04e9bee63e6e0755b13e8b69081f1b648b880b43a931ca3b70f337a3dfe79baaaeb87dd577695f7ebd471bd6035d2f61f094416d901035bf2c2f93a1b4e860a92386d8236bdbd0a35589fde7fa60fd0aa9678c6c0ec18c28c634c068094ddc66f805888abae05eef67c12c911fa40a7eaddeadfc9faa31f5a2d13c820af4b15d1664c3bf1c0629b9f5c22df8b2e6614beaa81de8ac6c4a397e4fa8dbb46e2cb43ab2275f4e33993306f518ec2b19bffe011ab37b06d93f7cb9f45a528c87f09725a4e3d9140a83e4beb4c92992019b32a9660b3e1ca361d3837b99796853780d2a36982788c45f39372d2a5d1caeedce8ca8e2c12c919b6a11285dcba0ee6380969b042a9531a54c252ebbb5787c07bcc6ca0456999e044b3ae7a8089265a30f98f0584979fba67e4a522cc64dda9391bb5315aed3bdab5a23adf90b5fcc773f2017ff6b366ce845c48cae3997767e695191177432454e2796d9df95c5803b3eed588cd327e5d7b4caf0731b16fcdc6328d07c8c209bde8b5408996ed984e1a4d945f46895746bf0acde0d2c5c6313a2891a5dbac0aae326aa1d1b9d32883c054d9cbbbb9ef3114840cf9f71e26de30146f6dec953a2cb4cc3e830c9108c63b0f67154e79aac1403c69292b3c7ed8e306a409724a7501a7acdb76692acef922c16a09582d6e8e113fde74bfca471a1145d102f766dcf2c10263c1ed76ecf02d5bdebee3ce19f70ce5bf4ba32996eae2ab5a6747dc07fc4290960bc4e7a8c892c42ac811c1dd957c7eb41d0b93980b2fa7c9e47a7762929e690cadd4c04504af792265df48812b37d6f28cbc19679361f8e51fc2dea257c2e4965cd4857e7d449049297dae5ee4040137807dbd6ecfa3b2e087dcb946ba72f934f446438d3edcc100fe7b58d0d93ac045072ee163fc463f52fa0aff53404e8d10506d1466d00c736720f64e7abc4d42075295a7ee64393c76c1279a2f03697c79d89a451f97b7bde327f56244b9d8ee959902b32d37fc4a74a939256c3410497717c7d76bfcca9be30d0096b643974e8f9c183161e2d8ad2a6acd98c0bf7aabf19d4644bef3d3e1ee8883d1bedde38d783274d4833b44def14f67373064d798d195feb7ff4796d37661647ee7fc9647ddb3f01adc158c0cf120a537428b7c2b20e61c1e6951ec83489f6ac45377cdbe0811cab3e1497a269beeec012fca53949af235d5aa49e5738bb30aa133759f1db822d645c47b3da30661424f8aa5b6041d72b29e9f75f4950784f3bfc4db644bce7ca7de7414c544c23a8e6a0f94919fbe4aa35ccdf3ca3168e5d0f148764f0258544c7bd0344cb9dc37798e9de8684c1411ba00e0f82cefa0f9eb4abcee7b010cbdf4d55d9ccb952b2083b46fe74fe023ecb9766cde42947443253f7eaf10b35b399e4c4dcceea38e95a152b8c1c951c640adad66cc9415bbc096ae5931bb54e88536ae1036c3aa7672707a4215a3355ebac575c100319b736fb3a633aecdaf4f529c96e60f107fecba3ec9c3f7f4c1365e2f76e6aebc6a83b037872b44b03820a84f24337d80664a3ed24e1ff7a7db43cc37366383566a7f222ac442478e8b6a0a3e684da16a555375cec262c33b0671005060d69672b28efc54eff0556e5811841790731dc15699adbd9fcfc9e001cf3eaba1b880995d1f3b2041de61368396e2007abb891fde4298506bdc4d89217210a970e2af5bf02890d168fc76e1300eeb84aed1fb08ea762b03b2514a0c02fdfe0de1b28e01b136ce9b618da67c0083058ae51838949e62e95d58da1173a8d1c4d010e7c939324d80162db4c524a442a2f428d3c18ac9d250fda54f6abff43c4880e76eb666959e43653cb7547a362b8b8757b0fed0981331679743df90d6a682376d0e9c9a12909063c3719a2908884d0f020dcf91a8b10bc70675fa8a2d599351ba7131f613716d552760c9efb6f8832469daa3cfe04c3f9f4c9f9af1df01bd9cdd958a2fc092dae2710fdf754d6e36a7749bb11bb3c528e2aefefc19669837264ea0f9f341dadd903e1306ac05f7157cfbc1836421cfe66b5a1473226062878baa0217ddd1058c60cf913fcf82c3485d0f5796febb7ea10ba908072165c3a2df09b6d80cbffb19b952fedea41de76cfa0401de23bfcd60c62c22560983c8423701c26edaeab02e83dbb730752102981c92f5a7878ec8502ceb6df56f08e1895e719623514fdc1548f07b8876fefb50ff05f59afa92caf2ebef010a006ed7d4bc792c4225eb8039cebc1c3130b25992ba7f8ea6ad05eb5537748d556c6708c0b09af613999c5a6309c518036bb50ee1b8f0843e1535b9446fb24c6ec113e87d216a3f83cec59ec2cc9b7fff941d9b7aa9380d6cbcf6f03563b8edf3c08d72981a1344ffcec823f29cd395664969551903fb68a075dc8b494543e00fbe0d0bd36db9961721f7cdf8da99bcd578fa6dc96d85b506ede7b57c4ed26361389f178cfbe3763ef87e002d49ba1a90119044ccf61fd8aabed19919a8660595974f103ec9de101f5a19a90745a60b814d010873d0404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f", + "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f" + ], + "measurement": [ + 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 + ], + "nonce": "000102030405060708090a0b0c0d0e0f", + "out_shares": [ + [ + "4936ef72478a208460a10552f8acbb4b", + "c00477bce97b99b5cbfcf8a91f60195b", + "08482153293c3a8a96ccac3468243afb", + "9d0be62818287a7e054de93542d95a21", + "0562502849a4d7af989b825403b19b0c", + "f1d5db7824cfa7c1dc4a0bf5e2ff606b", + "75e0fd84de5cc749afd9fe6cc857a177", + "64b5ad3e698c02c90ed5833f72de25f9", + "7eceb8087bc8b5d1bf149bd4c4fcae19", + "d4d2d868cd0e94f2d7a994bc6d9a9bd9", + "71c6cd0c169e260325a5759cfdc742c1", + "2a1c6403ed64c6b8cf85d817839f893e", + "da559cf5f8e0e1c71b22f2481e07db4e", + "c2de036b739bd60865e05c37261e16e1", + "deec5ec605a0c8c893be04a53ab9936d", + "426d68b8a2a23034b6a1d29b9055bc29", + "1ec53a1dd1c612623e1458714e2b4b78", + "422aaf9d6a0e566dc98357620e8f6ad3", + "cd02d874bd683418db2b88573feb4f84", + "1119206c3e1e7a3c4c7bfd60380e29f6" + ], + [ + "c8c9108db875df7b835efaad075344b4", + "41fb88431684664a18030756e09fe6a4", + "f9b7deacd6c3c5754d3353cb97dbc504", + "64f419d7e7d78581deb216cabd26a5de", + "fc9dafd7b65b28504b647dabfc4e64f3", + "102a2487db30583e07b5f40a1d009f94", + "8c1f027b21a338b63426019337a85e88", + "9d4a52c19673fd36d52a7cc08d21da06", + "833147f784374a2e24eb642b3b0351e6", + "2d2d279732f16b0d0c566b4392656426", + "903932f3e961d9fcbe5a8a630238bd3e", + "d7e39bfc129b3947147a27e87c6076c1", + "27aa630a071f1e38c8dd0db7e1f824b1", + "3f21fc948c6429f77e1fa3c8d9e1e91e", + "2313a139fa5f37375041fb5ac5466c92", + "bf9297475d5dcfcb2d5e2d646faa43d6", + "e33ac5e22e39ed9da5eba78eb1d4b487", + "bfd5506295f1a9921a7ca89df170952c", + "34fd278b4297cbe708d477a8c014b07b", + "f0e6df93c1e185c39784029fc7f1d609" + ] + ], + "prep_messages": [ + "0553a5e833d6f423333ca9582979e22a50f407ca5e90505df55a6366cd7f6ec8" + ], + "prep_shares": [ + [ + "619f618e16756f2323725b4430227c83da3b84f7b691c2e4a194c93bb8cda393f3a0679893cd59c38914ef2790b637214beef530bced7b88297a7f1cb528f1d9444aa6b87dda5d3e15730e863b7315b3c74f9a49319b71aa0b1c39b70dbcbc216121c5777d3c0504b7d7ce46aa677a1fc9b3ba92930700f0b7e162c2b1bc2240436f8ec90ebd20f4d37f348dec1e088380b8ecf235f6dc8ea685eb7a83512d64181a89f8469914a0baa58c1b0f26f3ff90b389bc9a8fcdc09fd7f1ebd87aa52ea3d7dbcabb912ec159c80e36f42cf3311451b8b9cf21b4358f95259fad85f41874f26ba0d42fd1e51a250d71714e5e7472d365e7b9887eee1649af09fe32548ad6c866e6655277d508e8b9201eb9bf9f03d5b12904b0140d1f33f2b32cc4a7aeae6a4b3f58288eb5918637327d7bd3a7098b66e709b4d0ffaae55c564d3049068234f4e5a5e3b4c223bb80104eeb37bb04ca21a7ca3b0fe5437d5232e6a4c503c91f7ce023080258eb21d4fac8f52cce692f3ede42f8041723878fda1b1726f021a1e15c1abe6b42dd878b6a664da533b9e31ffe119468a31ad8a08b93e5cd002838dd02830e153bca98f9aeb2b9ca2f66d3ec37f24e16878ccce91c5d79210dc3af99520cd7222200367b2cc44230798286de70db869de9734714f6240262f977fd272a3413aa6f321a82382e1a9eef1eef932ed8bbc8e58a8513ec7a5481f5558c078ca373f0e49b6bfbe5e2df0496686493ae48fa7e91cc311ac1c0a267d94fdc51891b3e52920c572c1c964c3a94f4785e5e4f306dac3a43c4622dda7d25aa1c82b94e51bf1ef68b170d9a8271d3de43fc83b7c26f65839cfcbcb3f76e10390c5bea96e8e5dfcb60bf0a24ee2e86f496895790460b37000b0b8a2cf4f7fecf22f215ae3fba7f93987d475b00848b7057f630b502fc191b1fafbb56b4fa6231a16a5e51807a1455782c444dc4bbc9cdba61a5aa611261e9dc4fa19ddf095b9a8fec5efe114d33576e65f728440803bdf05a4fef4254bfc371c2a654b1bf98bde5494a66fdc0f02b4903d5cc9bd14958962959369fd85fa0f6facae8123de70266afd02c68618ac91162f8edf6450000f92e603de8bb4cf54ff5db92c643cf75e05acaa1598b971177915f73b811cdc35035006c357b3db084491db652641b6c352cb8fd8753e19ee2095cb5c812b24831aea342d80a2f37f2f3ebf5be90fea2265f797ebaa830bb7be2e3e34b5b4a490cdb63ed7cbb033b7ad26ceaa542f83e6cc844489ce0710d88dd16c10fae65ab35a73557ab6808d894edf4a33348b1ce8acc8454c25b23068c333d59a309d53a5e6e31773781dce9c9928eeaee43528dcee89ca92f7de8824593a750e3606ee542b2b561d09fef72510b0936c9e11eebb0d45308f6cacb336bb00913f44bfed5eb762913c590bf34164ff01cceb20f20b4df51bda78c74382ae0de465e5409a35dd92db745786850bf36bc0481abcb5a87a8a771529ee18039b8ec249001cd519a9535db7997baa276717968d88b8ebfa53464f86172ea497787858234636f191be7b8d43c1711344966eb08f89a735a7dc8616be04d863f82e18327ea1006aca34cb25c141af910a40e7c0778a17adb7160ea6c4905857c09f1cd084660aaf2f10932489dcb393ea514a00bff6d90fcbd97c77d5426294b22218c016b6545573ea2396063fa4bf38a020d568cb5cb9c647fd79aa1fdbe7efaf672a7bfa1fee740463b803e9a37c4c9c88e3475656edd367546ae5ca7d60c6131d49d65e6f1f53e6e58045843fde4b522fde78e5975d4918d4df58c241b2f4fa6c506fbd178677ff9771bf5a98536b383fa59ac9713640f82cbb9ee5b2c9ee04c503b66d01648bb04090aa16f88da982df19f76ba8ffae00685267cbcdd6da023b09bdcb1080acba49d0da69ad1bd73ff1be86f01daa3c3aa45d9ccef77865a8f2e1c7f36a4276ac66c6f9ef9523c85af5a4c236e3efecdc30c67f70b0bde9d904a7f50696a193671db87836ad564f48606d9d0de53ad9ea2ac9d6a1d8e1c65812288d635440abe383bde44e2a28815c8ce7449a82458005519057326df6457d9669da73ceef09a1f282dfb9368ea3c7399fc59e309cf03d528d66ad6727385020f21f8a350f83648cb53efb4271b86d8c511ad8f9428a2cc2c96dae865c9a83f2c01c0c1a47506be097f3965a22bdfe334ce12bbd014b53dff28f60209986bc54a3ba82b9ae97300f6ef050addfd7cd0982ba84332be77d571b673b277f8d1df8797315559ac83710804a532c32f904616ff7c896a9dec33705cdd25dc9c0f8de81feaa5779dd25919432f72e9d4653acc593af8616d8798f0ee62e32d3028e556312a14a2d9cf4354607cfa70d3f8b5c4ced410a6a0b0cd086ac7cc7756744b61eb22dbea7b66e4852b61fd2a48f2d542ffdae50c17cfd46424d9ee46c46f217636cd2cd9941d8c7ea038d72262b2aeef1de3295c3944d421e2a787e2e953e8622f4ef2aebd667b75cc9a8e23ade76561b065fcadaa3eebdc98d28e41359833674aeb818545cf465ecd8532a14cca679e28cfb90c53df5294fc64e3847734f8d45e60ca64887dea6061de17675be8b16ef45a8121d4c74e5dd9eb7c4fdd87fda3905877951241998872e04c99c8cc483b70b7a71fd15e88d22334171e0d351c37dcc2f4c07259edf43583cb7c52755a61ed5f738adc579380445cc1eb7f80f0eb985545c19879329e8a6f74ad02d241768436fd9989094834e55bcaf702a3f3fb5cb9204254bafc71b7cf7820fe7932b49f8b6a84e140f003feb0cdb6d0768e6c6dce34a7819cc856948653d4494d0f8cbf3adab65422a9be29ae2d55529fcf46c15468957e6fa8e57feff6b83bb6e33ed36fe2c41259def858fd2bbf5b3272b88a625042d950e31670cb2959164032c64eb9d0ec5f5edf3623e5943ea1f4f6de1d068fd12eef938f27d7259573434975c79f958b8980a7fec4084b0557ab2f71c34d2f2f4b3c27f68c201bec2528913526cd3aec2d1fd515d9625328ac307eec8c47e2e12bb5c7f3e3010c3648bab9f0dfcf5b4b99a7e0344de616a33ccb6df74378544e3509116062840ecae596d83cd0e9c4085216baa2ea9928b47908b0396aa36e764d1a6685ed2d2bae5fea096d02274ff39c22686caf976153a5e51a702ff1e947dc258d7d9976f92a797d72e8b025f75cdc7133c12908c37503cad02fec46591e55136448b7bb83fcec58620b05c18cd91459089d29bac1c7f335a7b50b031c20721271837892cca2e57ff9cc5099208d43c0960b24eeb0d39ad8fc1e3b29d3bac6c5f771319116adba345d0bbf81e02e80e87c52f0e813077e5f1f2b1761b21d23688d4816ff36d8b7bb8cca1a381fa30e90b3e96aa40c2dddb2b37225cbaf525389cc16c9bbea78a9f47ba4107a2256c31341b06e0a11cd58b1d4147d433c5be5b2a34bbd6e6f45ce2a9c4b2bc6213c3f6159a4689b0de931585584cb0cbf69f9825ee6f3895d23edf76ae0e440c9c62e32b7b8a8b2aef29ad89d87d011adcaa09263af87799fc579ab93702b23fb7597fea53863a9d1cc23dbc7e5538c44ea20093750f82d5cf981ea18d8605cf41261f13db1efd0214115fa4d858c2c85bf75464cf5101933fb2654075872758885aada9e769b4775fc379007f397ed7088babb38699a98d34d537380d3f3498b272bb0d96ce4be9bf78415f0d3aa7f8502d79a2001a155e927b9f685861614fafbc1514a01a226586b64b4ad1ea5860f49e0e75ce612d6ddaca870b0aeff49014cf0350ef2af6d03241ba4a7c5e5e9d6888157500df599d37618d034bed9880058b1fd5fcf023dd9abb02cbf7b2b220eca9b968c7760d10ef3a8591e5ffd47eb2545ca1282bc6fbbaede8951b072fb25ace5ae300423520fde0f75b52f353e4d92bbad85aa33c753d95549d293c2cd4060406a2eb447e488d2d69acba92e13a01be497430d6310fcba3eb44900da8d3a315080aa59b2fc0c2e54e4332cd971e6692ffc914d33cdb32ced19d48bf88edd68e36b9d3a290eaa26f5a06604cb5c667d162ae169d09bfd66ae2b9e59a8966648bd33f2f659c61e8b6b163ca0154324820797eff6c52a2de838f40703d0a86b779a4a422e733a2f2d73a32afcff2b3f24e45ca60d335baf24ea4ed94bf0a1cda507df5539df2b2d56f8582d869eaeb77ce2ff26e08852e77eb83c8116a9acde1f00a4ba06d276522d58cbe8cd0c2e001e098091d47f3c4acb0c88aa3f034333feccbb34d53a9adfcb1645765418746c6800935cf42e5471bcb654c972e24b2f3ce70988b8b00af7e38071e4a38051b8f643c26a33753a6a2f44bfd119bb8b184378d858aabc8138b48aa0536dff390e586290d7e4a6157bd90833555c33ded63ed54d16b5956c00f5d2bc7ae6f097776cd6ad8abd473e142a0b1c67fafd7ab7f55daeaff7f76d223f8713dbd547094f10d5d8febc6e20753fe9d1609e1046e082eca79e80467ef33c3e0e86a084dc2f10b2a8431ffa9aa802d7a9cccafac0d348bd323e81b8ca8b0f801ef6ea83942087dc60dd27a505d5bdd3dbf4511adb1ec9d0229cd4694bcbb00e2ba99d181d08643785f63137cc6ba7c404448a9773a47ff2ce6f484a6514c447b345fad7fe12e4e69604d2dde94813a2338b0ed4082cd0b3ea4ee5f72589eedb224ddc56b392a698f5a5a57d778faa1a47e9f9be474c61f6df76afe42fb54878526e261a83737dd29f24e7a847c809ff94e6768e6296abb6404957da136c2aa867f65fb8504c46555ebf6d52d6c0de5d6122468176fb7c3f0395aa89c1ed96890960c97186eaa07045b9c168f8738a5231f7b454860075c84834f00769a1e31250543232767e0d767c7b2130d30ebd95f4bff7418310390137ac8788f1e5b2ec78d1340fdc8a91edd9a6c30b542f5a605c0f2d3325945acb6e05a81041874b4b6fd95fd62ce53b6ff955478cfd43d889d23361c3ffd541e826153803efa80b6754de01173218f239ad41924e7ba4f865b8b96e39b6f8ca303d154262b356dad98a76f946ffd4f0df0d2674ef51282cc7f066df42655cdf0d8ecf51169ba4ee9988f148fb941bacd8400c6225a9cbde8341c1355446d4e5106f983b545eff5ab4977c70c0328935de200360853efa3619ef3b1ec177de9acfabda9b9ab9da48a8e6a8d57fb2181f88f06f997e204dd83b555ffc6f2bcbd8fe735ca920331ea6e67879fdaa3f2d07015c9128dcf46830659fe2f3c3aa788ad5ce183b73611390e693518ee274d0307446c5fea5de4d4c5996d01c5b2fbb8d26d5a2fc543f3d8b5b13193a0c23725462147670523a3dbe785e093d7a7236e7accb5a7d2f1b15f9260a92acef85746928e271a10221629fb15a549d2d89eba61cd892d1285231078960a9863b8ae9565a6e60206ae6e6f69a1d8b6af646fcd94f1c1a8a05ae42f2de34a4631aa7bcb0ff4e721644f79e4426cf3c7bad3b1bc2068bbf91ed53021daa89894e13b30be50362dded2da81bfd6dfc644c6ae5f7854541b6d298973ddd72fad36af55f6c1b2029801821f534e61b683341305e99f5e1d58faeca3a6205fe614bc86c2ae1ad58ffeb492b5d5561e80e6165edea061abd6abecefa4b368e59ee928ebbef152813d8add9b7e3c73b4fdb80517cb0771f1cf39adaa2da95aa21d428d10cadcc18b25adc2639b3111ceee925b0b874fd406bf0eba3638260ba6f6a08c7cd4e986d1f7ad3a2b7c152f61358d0c65a2189b97f23c30fd684f799219f8a6d78a66937914690aa7afa36af2b52fc90d756606bc01979d00011085a950896400c8fe81e1d11b26d51aab6dd079cc7625444584072f08a1f1bb89c8c6ca0c1fd97a4b0003d835f8534328aa91a19177e2f57d85cb125159ad8c9da6cf419cb307278b5eb9e0fc303d735c8281fce0e678da1f5b6d094d67f474940a325f9b8f3c585824565fe2a1e0eb394266096b2050237c06829d4d8e4771247fb9267794ca4c29ad8f5182a44ad12da50e0bc6166714293bcf32316c79a99c0e74b09c44d24eb51c318ddc8b105b7b186ba9db199fe005ec456cea350a9877a3628cb421e71a3ba9e251e842dd137252ff67f8244ab26a337912f79564ae1b6ee96947d1414ce355140270f5cb6891157868523e07809dbc2b47b521856c5abb5e43a1d7f21be7f3a285c3fb83b628154e9a01729079172cef40e03c5ed7f02c5aec02d964f7a1342027425c4011368bb4f18191d92ca7e3d23e164b0733a324fd1104391ccef9d1db482d4e15a57e1afd773bf054633ba21a04d7ef19e3a96e7664e88a2361f6ecf9acc456fa68390caf26d85856c171770b26f966f80c0d80dbca28a7823dde102a5f95c625410964b19af82eceddf497c254f493800b20c5e99cd392ed1e816c3e44f4c22c00e030993afb80a8d149d1b35e4422644066527ea41ce4bbd4289aebea7692419c90913f7a234cd644d6f3e4be47341f4073f6d9ffcabd056ff0becb389c47072311edeaf6251c93fc288bc399bda53bf941951b05ec3d5b122fad7d8cf80e9e0b2df7c0a8dc7cae9fcb1c85395599b5c404f820f2083d4eb9fa5c4ddbe83d7235ea31f94628de3a2ae7c6a39f324c317f1b245ab38cc3d91413a43861e6104c678826fc757edbbca55e531d18961008d3aeddfa685b4d0d363fb6e774d284bfd07a5bc22e7bdad9ba96be55146acbb387f7b2d5ba7e4402e5761a61ff8c06ea68f75e895fbd86b2c37ed05cf93cc3f19ec33c71947e56f186eefda98c325f352b49d2a724a252ef0497967a4463eb7ee660dce2271242d3a71e7131c0d3927c05cf171d81584335111b579d1375055e0201519ed55ce1a2a1b5712c177492ca4936b5699d089ae234805e2ffec6a61c2743d27bf01721b133f983f2e0f66cabafbd77e81e1fb96da185cd66d18e7238713949419afcd31b168a7057d3a50d4f40b1b27d9a0d7c48cb23f4e9feffe6a9527f34786411a1cf7b21f4196dfe1aeab5b756a67c54214e17e9579b5d6be4784d49c88683263ab588a1fc67342ed4ee6ca17a3074c906a7197adba556a0f01a3561e021f82b7ac342d7eda", + "a0609e71e98a90dcc08da4bbcfdd837c270151064d651e77972a2f59769baebf04aeee8a0f13dc34f5165cfa20604fccdaa1e4485083f0b4734b0aad3605f0072d8f96a1bdc026749b4417e084a785cc399b331da1259fa2b95d8dc9b9a328eff08e3430b1c367665273838726e0a46d2125980a4bacb33f4193bfd09e39cb9f3f00ed456fbba6565080eea324d2da16641325f85ea3a75534e24e58a8b013eee9e57607b966eb5f295a73e4f0d90c0096e311ce8ab3afe02ec6841f5eab0a5156302749229a869c82bff80d2bff66e57ca0f50a4d0ffff8030e0621868c2086d01a16275e42161153a8dbdc93622537478c80f6f8511e33a326aca32db0b5f184880baac10955a9543a27653a151c9db57f259c6dfc2f8153baac69819781b23b039899b4dee1aa59af734c776e1c937427264fd5447d2616d3764592ffb1b2c039ab3924f95c8b31abdfa43be6b3252abef8987cea3fc5b58de6dc8e42d95829f62d345cadd0ca8bc5e34e7755593c8408ae1d07d8fcf6fa01350f31639e1249240b40a22b779e0faa1bc4b4f7a04a7b4d2fa1c34e841527bc420baf321be6ef43430f10a1e06240a0e089df42efb209e51859667486fc0fb92d95a3e8c6643b5627d5290c39e7bb39fc27a07d82b0d6888af6bbb668277076cbcb18928a69940b758a0e46761f836bc98b6486b0e9e9c0ddbcf51f4b44b249694e3661ea6d0f61a9323ca7c29a27584d4fd51afb6592bdb300e62d9fd5cf2f07601bc67735e62b4292e3a15e89d4ba5895515cb7cb0fccb68ff6156a4f2cde87b05d4e0bcbb21a62bdd87f27f84d7bb638077eefe8d2005af4630d2d18abcc50527efb3281e95d12331a93c60029d93557275b1c3d749c9b753f4fa5f28645ae469735b6001144a98a8be3b39f442b88e4867e79340a458940dd97bf01988d50bf45e3c41912f964775a61652d35e4b9bc17850d74486d8c70590a0dcd8a2b46ed29f11a05080c6b4e896762097aaae91176becab93a2fb346600ab0f921ab231d76969e31a25686b0b59afdd2025b49a21e3e391e6254cbdffef9fbec1dbfde69e935124e802fe49fd6ece8d79a2eb1cf517a1be809cdaa7e2abc75f197ef7cecbbca5ef343212c4d36a781c1ffe9bbf6140d2cc21103e76cd911038612ff731b70e2b1a7fb22bfaece6e4f35eace08d5af56a59c2fbe03d4d2411d45a8c72513a41e127a213379d846ba3ca5cbcdd624b1be07fc98c152273f3d1cd6056aa4df3a374c2c19d07f89e68d9ebf488f295f8847ebb9728c84e59093d391a451fb55ff8440b191c9ad8ebd0c051ee0f19e5f71880fc976150cca643e0798d6ec46835b815932b248781f093ccf10bf6f6b1edf4c6cf7db7a0a943ad7a4f1732a4d740eb268c2bd9053181d3e4dc20ef664a92c90a5ba8139f36f038d4c9dd7301d47fdc5aecb18bab1daa2c5fdd366dd071ec56efc4334f09f8e77f3d2f9857cc4992b8d1af4010de66b67fce192f6f1b452f6886554764979c5941e0932a4c3ffd055bea65590504e83ea1f79d03f420067940077d925db2a84300838d2fe4122d986c9a90cadab89eba72e471cce3d32a770e4088ad4952c54c9212f15f447c453ae322ee69b9a0a01bd7c1ac03f8dc465575b24a7d2b047802daaf0df982fcc8d90ebbfae9a68443de332957bac97b525ca4afd4b94f2b3c4d55c0b3f37d941862285d4701f53bf456106644a89928536fd6e19f6fe6336b5b5401e151a5a3c9d8160fe033274691d561c89c8ab65f9f3fbda3220a3dfdfbe9952750dc57931450254f10d653ce5be011e7c689b17e440770e773dcfff5bfb7048ea786222d9179ff3c648a61f25ce85d2b545ca5f877247acf5717a6a5913c9262d45063636f2628ce517b474e191ff738068dd11e0ac5127ea1bc7c0b5b98a075cad7ee0fce980e3beaa694022c19663d63117164763f6722f1d288880975caf5634914d081c8166b65613c9093efbd2a2aaf007f4880fe5295bf7bb3af4008b980d273a31f4be2acff125bec3394aa028cf94f4530f7f1ad386a5f756aa3e826896ed54874b7369f11ed1334074c0d69183e2609c41589148b2f10f410c8c68d142db12d796c6c11c7384c37a336a654ae468a8806dce27ccf2b8ff2588efb7a8c0e29c104a2974beefedb4ae690939b4a22e5fff2940600470349d569676d7437958c774db46f2c795346a843691787c86fd21e9a6c1d1acdf52bb657742242287b3620a7b04aa77bcfe31ccea9ce6e419dc57a5b1360cb84ac1cc3c4d9dc5284403337b981c5ae6b88f64b3314c46bf852507b48e2a14222c1ca23d4db5a068402f09c1876e4dcb6707692541ddba1960d01996cfe777b9e64510584f45c763fbcb4ad842df6455fcb3a708e0bf9144d434d14be8f66a836eaa3d9c5033fcedb438871268be8ea0c16be66eee706a5c7421dce97a908f2b9c3e74ce9fb95a31689726534dff5e284f86dea9e732f0c0cf9262e9a00c4012c1e575b3f0ed2b78140b078f33bf816ceeafcc9fa14be29819665f6c757410e99b84cbcaa1e2e9516fa33e94f7641ed1ac183cfb0f55256c61a5b0cab50e5eded671425ec7dd434845a5ae4186d9a4879f28c7f35bf685526da490d8899b110d6ce7bd78dc84908f32398f40ae1370a360fd9bcddda1fb823508089c97b3b72ffb24d5a9e6a152c0d255ef7546cdea4be4819be95241a81602bc37872c18c4f61d09ff5e4cfa1c5284930c8c412215f6af2b0c6e194c7ee867d13d09e490b189fbef039f4639eeb2b1b48ebdf1ac2b4da188df77e33c03904abdebaa41c0adec6e977779d01c2c9927792c058ce4e9cee8b8d5434241d2111e4fe7531f84ea79ef8a9dd7d64785e6872a0a7b041847c5b4f4b11f0164449c3a3cf1b8aed058378a5ba44fca53764a69a5aa2cb2ac1c99088b746b339e7a35ca7990347503347f2bb95e10b30f50d16b5fdc59eff2cab001dbf115cdcff3d76a7a50aee2cf51fe2b83ef183183fc48f63f14e60ad6797ea5f7bd5a2fc36548daaa4670fed6b11de3f1f138561fab9b2d642abf883036ebc822a5d9f66ea57bb3d2fd52b7a8afe024754cd5b484dc90ad6c05bd0be75a1126ea6e9e4d0f5b96603de6cb7cc1517dedd96531d230533097301e4f14df2d038cf4dfc68dfd2f0154f95cad8937121d6fd4523b4582f5b8ad80942462269595f4997945e3c1e76a4a8d16938ccea33a5b1e21b7e563bd3826a988c29955cbe913031e96f7a2a3c8ea887eae13f644aeb8d43ecfc06d7b04ddb4302e6f5f29b5a5775e5f78e3cf214b3b0b0ecd17023415940c28b77e0bf5c8f68a819c71b326a8ee04492689a91941bb8ba8ea1719e1b154df6fd9f0d9760e74c672afe7c977b3ac384cc1e3f3da1147a7551fef35439d727df64dd2a99a5cb0424731b815dc0a9c445fec05ac6829dd3fe39bc651aafb23db715c4456644259051950e6a51d50de68b9a7a02815208534d44c439b73dd55e1c9349d79d0c03dc35b8ea95148fc3e11b3ea5bc1399d13bedb65048e7628b214cd1874ebc0ecbf988e7d28fc106063d3a79d4725b4b9ef783b327b4d7cf8bbce329f408ba0998f1cc2ac5d6a99ab2f7ac510f92a90e1dad0dc98c6c53dc837cab2b811ad588dc0b29aca6de6612f839b027f05224062581eda49bed05f3dfb7c5c51c66306b3de6d2f3a965aa74d1c8945fb898c3afe20143c3600a04dbf70f2bc062af3e02e08013fc1737fe882992623b656819314f0662d5d9af828ef556a1c1bcf0bd76df704a50c6c3083cf9d8db1924ff245a59656924ed491b09b089928120de45712013eb3f2b56dcf1403d1ee07991d3f6254c332d7e342cf2f90faf058b2094c215347ef7a6dac147a1e59a5b69c61b84ca1a2b78d7ae8b1711175df02e6222625afa40818e29f56345f2f9359bf6c7e3573a40dc20d11fac4163263dd49eaf9c9b25ad147bf39279725f818ab02e23536adcfd448c510d9e9a2b320f66c186e0b06bf3aa88b1f591a0308fde826cdca2fe2c13f4cf4d9bb2b9634bc6ecf22740376d37edffa18fc39594deb2b969dc6a9796facc551419365e66a2d4a62d6eb122f8c43c2b20f9b414da590b37af2aa61bb7491fefb77446561c6995a19fc9ef9c4f98aa50ed62ebb1caf1725b1683dcdad09ae0f52cf82e308c68ff20596631b2da7e8c46fe853b358e407800f55119b4e80bb3a18267ee99bd0925378f4a530c63ad94d5e163ab279cebbafa729c4bae11e4bac27ea678dda97d0dbe637e7716b80673054a56e40ddb353c13a8109e4fb26b03033c39e70c7a4f4aa710488070b02fed01ca28c0e309af5eb5046f389afa145c5e0e25aaf5e7b14eba7a3345e24d12f12a6da0bcd7d58ad9846a0f7970a759702fc057608afc9b300ec4f1984e6d2aa8954b5b18eeea3aaf3a2a99d1de83c189db700a804e46b0d74e9fedae0a6b3dae6a4d5aae4bcd4238df524bab0502f44a284857dc7bc87c5f13bf5799ad0362f0d72330a37e3ec125295ef7b84d2cdee78f3115fb2341b630ea95e752e5d35cca95afd034901b143fa72cbca3c9f27a171f5d188b6163a7618d4ff005bac6e9a758e79dfeeb7e2bf023e812f3c99da629cee9401dc54c86059a4d5553dab3e3e852c4705135e19a242b3f424b95b0a87173fae276599c1009ecabd6965e380424fe335c41e75920fea2c801959298095d748e4d156598efcb8ed69087da123388b608f65ec27da8b46e99e0f8e7a978e361e90d97c3e6688aaf63fe087a21b1831d104c4b10cf0aff5ff3e7d33f0ee9705d1a10f583d905c5d10f63aea0a8d52ebaf89c723f167270608dca259f1d6f7b765c5ca4f2eb152eb37af9b5036cd3577c17651d419fb78ecb1d3b5a30d71def19bdfcf9eaf00d51017cf5122c3b01b9338d514a42bba19084c06eb70f2c33be34f6cb9b2f4d3b056b98a49e227478f775f29353729e33184820660851f8d753fc782bb38a2b0386cd18d5f167f82cc11f4a017ab9faf8f88d34657f1fdd0e3f100838c747866d218a41c793649235d7f764470b11bde26d214afdf35b3e879572dc3dbef00157e364d6ce2c3f85da912f35eb39d86bc5e75a11ec4f094d791b01fbfc6c58aa62047b6a652f2d01fd17ac457ec015f1cc2c999852bf4e17a3bcb0b0abe628b2ecc05b1759962a0cd46eff4f1591c7f589f1ec61152060fd0f32c2f085d05d8be205d08f27c6443b2bf66cd30a6ad07bf5981995fe98a9b99c5e215a37d8ccf1949b49cd4d5b36b17dff55c6533ae44ab68908d633662f572ef28c3408ced3658ea5fa80285de5cb7eadde78ac890db38c96bee351e24283a14b847d8d6711c756443010633f1e9738ccb39a97f43f042d5b81584b3ea819a40e1fec058f2d50c1c40ff009d920417bef51b418f969fbe1fb0f67d93d004aed0d45a2bba6d416ed5d85516050d59dfec1eff77cb9e5a9878c0b86491f6cd2253b637e158755a8aad2f4e724f2ced368d2a01690b18f7046c54071b1299f43c959804f60f92aba9f9df10b65c8374ad9f8b35c306b7ee37d6e065301f0481ffeeb9e47ba5ff577f0bb8739a4fc17a667a46f68b3c9c17bdb0e0e9fa5eb91151eb20b8fbc1be07517c26b6f24ccb32c7dfe03823fdc05f156dd2245f3633dcfe343551490440c56202382c816c64497ce39a81bb1c6735d8d123a154a2cbe9cc3af82779ae55417c3864b62cf5521aad6268817e816fa01dcb3e638d7a18da208bf7124cb0ddf5a1561e076c315c323c774920cd9be70f2d570c8b42d52abfc7f041495a4fdbdb8638f012605ba2d86e76cc2aebaf4fdc2c0eb31cd8ae6641708c52716e6dc2a593a27abdbc2ab1e8ce434ef5c49aa9076d9330991c459376c502e3a4ab08014d7ef4b4e53bbb62b1f5d40cc9601cb4e0d9249791ee991287d1e37250272636d2cc4c35a648d65ba401ec36901fb4ec629aaf7c01d016fda9e57d73819cd785adde104f3848088d5081e8190f730dfac57f8c3c5a502aa423aeda5c0d03e2d39b79a323c3fae66a7169e9a0c19a8f987a2ece2a68b57d7a97c831ffabe21ac6250a6bfdcbacdf532114c99141a529a9ff2d76123fbb008476ab868bdff1793b9e0912eea599f58e359e6ed82f9a0a2bac68c76aa9550cde6f9e4425004390b621c49ee3c65a19f36d2fe2364adfcb35a22295d79af7bc0914deebec4d70a1c40d503d377b808d39b94775116d6878e97e360ff665741019b64ad0115b5b779d46a6d969a847406011d3259812fc4ec330a860cf7ec2e9c0beae04db95bce334ed3116e92eb5d404507fe743faffd3215531d819e43e42d995b620429131d7d65f9fb49c5f79b88e80d435230e0bc39e7810d618cf439771eccf457730f242bf886e6b4d8599d2854e861bb9c5c1bc4d00bf959c820b5083b04c40a0ea0d63670556d75c4ea5fead34db630e7f2125deec2ab318932a7a5bbabb3b973116541c599a12cb0b5053df9eb07e06377965ea2036a0c80096611a433fa413a7fd16f3e86fb23a27f756dddc24d2aa273e9e62a1e6d87f2b1136e17aa05759a4b90b1aa65faf6530d2cb128006e09659a4d20051da4247d605c340ae30f37776281e67b67ca3c5c602a721c1f621258a28173ac2607623ea7c9395856782e755156499908992b40bc0b1bd57884505555b8235432dd4f39874ebeb2916cb0e7c73ce1c893f1da4f96c94a92bed6d1b3dc243e38909537a7dd58ddf5c7185def62ebe94a55d48294306c526a5f965c40bfdf5d4e6380c10de94cf1d49f116671a7fa54a71f4495e6ce4dd7af6e342dd4effcf827602c91f3c346c67e86fba2a6ca0625ac29e96a762f86e01e76fc550fd8ed94f169ea2dd4b5f2846b6114259894f145553c9686208fea0aa99f03e247194f2adc6fe30ecc6bb4e714a770faf25ed01947ade2d598ad63c4af221946de8f4bf827f6a8008d7bd658c050015e6198f534db8f4c53a92ae5f2657d00afbff30c8dca9e81ea9ece29d178096152630ddb4cdec1437251e2548fd764599bc04d9c46acfcffb6c26de4f5687fbdece1cfc38b9fa1ca56c2d43de691200cb7559bbf132" + ] + ], + "public_share": "7342ed4ee6ca17a3074c906a7197adbacfcffb6c26de4f5687fbdece1cfc38b9556a0f01a3561e021f82b7ac342d7edafa1ca56c2d43de691200cb7559bbf132", + "rand": "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f" + }, + { + "input_shares": [ + "3936ef72478a208460a10552f8acbb4bd00477bce97b99b5cbfcf8a91f60195b08482153293c3a8a96ccac3468243afb9d0be62818287a7e054de93542d95a210562502849a4d7af989b825403b19b0cf1d5db7824cfa7c1dc4a0bf5e2ff606b75e0fd84de5cc749afd9fe6cc857a17764b5ad3e698c02c90ed5833f72de25f97eceb8087bc8b5d1bf149bd4c4fcae19d4d2d868cd0e94f2d7a994bc6d9a9bd971c6cd0c169e260325a5759cfdc742c12a1c6403ed64c6b8cf85d817839f893eda559cf5f8e0e1c71b22f2481e07db4ec2de036b739bd60865e05c37261e16e1deec5ec605a0c8c893be04a53ab9936d426d68b8a2a23034b6a1d29b9055bc291ec53a1dd1c612623e1458714e2b4b78422aaf9d6a0e566dc98357620e8f6ad3cd02d874bd683418db2b88573feb4f841119206c3e1e7a3c4c7bfd60380e29f64644052e4998066a005ed95a9d87a2b7202ea22e18ac8068c77d5e5af81a9923bdd73559abe107f2bb9d1214db56a96ef1ee007882b302719e60490a4002b93c6ec7a98d4f695ec69bb0abf6473cdc99629299a3d94412cff9a185241f04d1b99ac97a1f5d61631dad679b295384860f0c8f8552da65eefb0c58df5e0608b89ac6f81606764d86320c4578c40ddb06c743d96d5b8f09313cae8550832caa47bafc478e4a009b8dd6f0da7d7740a0819bc50c17501a2bea0a4177b42818c73024eb8757c5d9808eadf68f01a126bf1abe3b2a1a3b22022e8ad84823587747a01494f30cc5576557c236db583b29fb480567c320feb1ecf2776ea69b5633b0e2aca81b911de34abfe401a3c332d8fe1b1d8b3513551e11c3b58badb1bd0c16dc80d31dd19098a1c730913999e05be450b535a9e9f90cbac29e36eccfda15c38e35d93c7558da44169cb9281d9cee1773517f3665565a3c9309e26097fd72694370c5187529c9eecfad7ea8ba4edd783e73cdf107269ea7a0393a6220aa510d7969ee9f4f224e905202d3decfb4e5d24563a04caf3f7122bb09f24f4372de5cd1f777d15fe50614a3d38ed46c9e89b003e485fca5a190e85cb939865a77a641fc19b03522f092e698fceabca95405018a109b2e8fb4072bdd87aa79b5c9f9fd7c6464d086193758a4ff147e107e17a61e6ecdb0aaa99cb94a832a8a5a1cfca10adec2c91994160f460c40a15e009c83f4589fe43e4ece5d96c6234555090b26ae8c192295ffa69580a8451e73d92dd7cb548b5e252de1998d6326a7d382c3bd6f69fd4a7f54892a22e703d18b13d0176840dd28cb84739611e96fc24b82899a47b2867ba6f15fce17ce06af84c3e3c6e85c132b87403ce066cff3931b8a67e12c7b2d077b5930e0a74cc1f6689685be11ef099deee9ab2e4e1bfc09ad2a3e65784c4b5a1936420b811347b336af3268d157c04e9d2e65fcf1ebeb58a04718b40f31fa2eec98908dc55d72dec498c44ee13fd3d9eb8edaf1d14eed0f8412c145e76d70605aa9227ad28f6399c1454ebba65b0e94a1dba4b447d453bd4ae30857653d87d1af5bc0fbc7dc5723214e765bcc9d1ba110581c3025035ef2b6b6cbac3bedb15ad2d752c624c02718366c61f0c7f268868fc13438d121ffd7b800065ec676d128feeb5f3c1f220224e43e3d259b6010bdf264ccaa0f97097b1eb087442aced71132aa662e5300615efd3e61d475212ae36ab3b440f05a7e25bcf36781a3d3d83dfd88aff8d5226cf067fe6ce9da0a7bef15c366317d23b9a00d717b1bb4ed8acd071bc47e833a4f7b8b0495db9e3fe61a06c0be49f8edd427df8ddd1f7fa9b4d8a46312d204557f150b71545b5f89afcf5d88c41cf69d7564b567bd769b46748a085c4a589d50685c34d326c365ed5d7e33c462e71d6eee59bff0ede8ef156c5a42739b10a8ddb75e6d96fd716fcf3f4207a4272b9987ddb7d1e90c0297cc0d4ccb01e268dd3037233820a05e8d9011385ded6a888b3a9a787dddd9d788003395643f6178d5d8c68fe9a8cb361be9a47e83bf47b2b13d3a7170021dbcc04a112c2caffa69873a5beef2388df9e0adc57cb5d76302c91c00bb1d78d688dace13f15f91ef9fb729ec1e799054d4849f59297e11491517ba981e02ce85f8263733a9f826249842cb03a47470bec34f2320a7b5af55e770ddddbc48b08f3469817c18704292ce8d05f99b5522e4f1add50e3bd7b990a0e58c076a52475dcf53521ebbeb5e36ef7497772bf7b87ff7f5ea82002b6783bbb6b9fec42b016cff9d4c70c253e809c600c78954dafa65d8acb0c689283a56c14a196cf49b54e1e08fc91d2657e4c066915e9147854b14cd989c62aea44f2a0b33d416a5c026f657c82aed9a4d874db68e5a73d8d7efff67d6b16e223f738ffa32638316666b88cc12cd043a1f2da17a87c34990d2f9e40809b8a0f2e07ae8ee2fe0536a0674f6b03ca1d558fd9e43e6522337646ebb7279a741f599e7f0a14eb26d63a3fa9d97a5ccb9aa01c780f9157c9ff5f7c150d145d05f66fba3e1fa9afa12a4d94bcb95016b8873fd5c0a05639027167bdf1e47af715a0873d2b70cfaa7fc7141bb41abcaeadae26c5e18ebf09a8503b3434ebf173f7273a10bee856e5b41878621699cef2c6cfa14a41f42b8f6b259888a85d42aaa138ffd948e2c4eede87767139284c31c69172b240dbab0e8640402f596a2c482cda3bb6706aaf18cac30e6e1922a7053360e10d4eda7ac6fdf3d4cef6d74bc3a3b3742c7fbbbb8d8bcaad50636573ac67338a1a562796833a795b9e6a97edd308e585f04d5cc4f95437ae993af2d26c0934c236d6671e6570c6d2802c494ddb95e92d747f84121ecff4f64891a3f7d71ff0ed47ab798ee2b2ad6f83bac0ab474cfbcc550a899f15dd3066506ce1ee3d46382a35b51333906fb20186e646a8880322311a50064094f0212bc3391577e2decb710d556081351d2d90891b2f3482cbbb2374a71a970664621e1cfbca4fa87d981f7a33698921271b0b62890b3ddda06a5deade800c5d6f268d916190e56a150cc46240f82fd7175e7df933a14fa367f0d80eea00963a62fb67de4fcb6f2dd1a8c99f72458997f6b0a73dea689f736aaf26c09276b71275c8fd097f792fa8808030ab98f04a921e39100f20c7ba9596fb1c64a85f9452ceb343404ce493a8c49c7677f3ae33a0d03df1a4e980289d2f538c2dff5387948761016240a31deb446b9a32d82f8200f1b6ae7719d5c840f8c68a240c0c1b0937818ff806ab5b89fb27d2516446929f4de7c034e441b6a2f2fef28d13410244d8320c54962463c8679006691f0be93af33c066dac6ff99cfbe7eafeae71414d10516e1b0fc1b18059b22f540a83a7575c39c1c5ecdc69b5ad73bd1a8ac136dcc48d9f3e58cfd3863f10421500fbeb79739bc1795cf4864ff6c5c7c05b5256858e74a416b8adff14a878bc76e2c113f2909871dbebf1723d6e66e688a19a04e82fe8c0f21a6cae3fcc029ef385a382b5366d14edddfdef0593b42a1f50f2bb9356f764f6b382b2511fe0fc60b0873d3dccc762d2a324b12ca4ba2774e25a26b317f7f254690451ed9857563176e5ddd62855547ce5c01bbdb54845799245ca6b19f2b8b1573b1fa3eb41fcf1d4d5736a73d0ea585cc2124c0b1952d1837913364bf746638509cadd433119bc80dc93a1f30049d22acf066c1248babc3f2e45e94d2328226c9af79b5f66159e9f15d91be00cc9b8aa3b64a443b6e6a4a5649838a1c01535aa5b8aeee7f772c4bac5c7c1340e2b5e156a666f983dddc5cb4a9568661a11c20f7f04f105d5577c379b42a051b80a97c8d1822eb4af5d4e550b66214784c205cb65eef40127daddd9b0534e61533e52856f9c27f9a8dc0eb5850bfdd46fdd04febb0c2c6c3153ffe2aa2d4348355af665efb71ed192dd35ad0c568354b1279749cfdda99e5fc300d164d69494a2bd75530d8fbde4c18cdcd66aec07eedb4082b8879aa188346a5075f7e731c349d3341847f321d6f5197e2a42497dd5a9af97c1788fcf501c3c400f5e7c8c4d04410270ca7655641953766242c36aacaadc9037119afc7363232738906916748e5c333d820b925d95cbb4f10a0ef60c478c6c9df08e2429231b7b5c9b95ceddbdb6349009682fc1502fa6f6c3ca1919aacf100b1b4ccf58944b4bd8d55b67db7dd4696eff495a6f4008109c1da5b1db72dd9112c1c2e339fe1e4b957b519d06238ae23c4f4c6ba3d2a055aca3d8eef963d526ef716434bb3056245c7e2337ade86633a7f0fd7944086f5a00d106422992b646f261de602d5879cfefd9379ac5140b09989962dab4cb8b61b97f9d222cfce532aaca0e270b38b2d80501901cb0f2c2e068cb146f775e8d4d9186a4b8aaa882aa83b2e63ae20c746e728c1f80871c265ed152a81453a189536685161f0233980e5aee86c3d1fb527bbccd443a0e2ed5ee72e0f2824f22f6d9b14e36191d1aaa2103e5286800222c17757717370922b9f89b554786cd92e84b50d8f614c4a6a266219979ed73c8a0f118376a9ef3dad28e858ebcfc0dde43c606ad31c357d81477206def935310ac1f75b421997c4a55680b8a9ec76cab08600a65d1c67f32aa470684e3684f703d2f7088bb67f6701c048f5826a7814acd41c023a9f55e9c01529cd8a746a435353f69c549373c423213247b44ae0ac9bafe09324af21149066bfb7ef8c280d9482090277534586da989fd7243d765b271365922848515ae800f197e8e4a68f4556b1bb2a8b02e48fd0d0a87e83c3bc031b4f5e83039c869ed212c68cc33b994c0dbf346b5e4bb9ac7dbbe2c27aa5b97d48ec48973a9e0bf5a071aaf5a02609c146aac830edb3ee877e4a3bf50c29313cdeaed96dd898a9f4d201a60631e2dbdeba087942b818ad4abddef5e9054f10cbba0ac70ca356122e2cb5f827a46d8c597dbad1172e227c9aa8236fb4f7797a346483f291ce31e7312803c88e827992ad8701abbf256119349ede4b868b4312d67d3d70998a53f92c61cd7c4e0777a8725b2ccc0281a09acfc2d9e646116d5d1d02499339268cd9ae59fb0f9777d6eb8684d9282f00ac2cfc34927961cbdb8186a98d83d0accb9859f35060c2bce83301fbea83ad17831adbe113e7ef6a86a957149bb73d2af02721cd3107f081ca03070f719f8dd7dd7670aff412c756e86b86005808337e6f295d268589a3e4944f5b5088771914852f805bb0190db3b40d05d84f44ee7abdb4633f3dbc258095ac0fccd9f050b7869822eb3b92f0a73041ea577a97ba8e1a9dc4a92862d4f599467e8f95ce3334f12e92ab7cdef1402abb579dbe829adb143fac5800fadc7f7dcc8d23c02c2649b7e754a9448a1b6f72d2ce526394463adf30d0dd4c5640e24b21bb52e97254e96d283e5ee44e86fd520f2d78c4b85d50be887ba27b30da683769c55dd743cf37faf5e4cb02329d7c105d6673eb11e476032d6ba9df0cb1b1ad2a8c75befcea3cd16fa50887c31e19007e7fb330af7ac42039b094c7cc0202b332338c14bccd1d7aaa0b0c0aa92e82d4387a3d7a0a374bb3f37b1448d4e24234f3bdd1bfc9d735a8482c60e3442644df843084403baaa3c96d1057dc7a66cfaf56d93780a3b4d47b1658f482557ef0deb0bb2022234229ffb5b59d16a44ea8f7ed20a7f170e1523f693cc32189ea7e7373931778b133ab3630b3157e63429cc1718892fe7c48aac6a6f6f54f2a90e8939f027594d4e963105408825e726b1cdff77f3e2643623b14c4482b78b89d6b49a99dfaa3aca4b58a01da7617f2d280a81ade2b538f3958f19a43b1a62f7140b585a85f2ca45d2b0bc60558dc54e8a7563116ace8969d24dce2ee3c31f3d43d03e63e0d2e7e61e7c6dfe464fed31ed1fc17897588bd744d38e0be9d367f718dadbbd6f4e4d3a29cba001d7edaba0fa799dc2a861a96aa580e70578217667b88353bb5c00f25fef58fc275ba307671e0afa1730e1d8643175ff40f6f3a85a354260857b87ad6280084d2395fc59067cbedf88ff1dbdfb348e9c011a3718386bc3a9fb9d515dc9d9cba761203da316296bb42bcbb7c35c49f5683352681de9c97c7ad8b375bfde2bceb38bda15ba4de0909ba0c48271d8d6851b5e4c9c3d4bbfd9ca71bd49e5002c67d76c52560ca22230c9a2aec73775ef27a1868867ce6b56939d4a3697fbd3b8980393a83510b58449e3c6acf27d03a847fa80b1fa10f5d9464b6f2e79c364be84b4d3a657e4e87a5bb027420b621bd11001f07a520089d836226de5e8f00eabdaa98d3a20028d1e1b1f09e9662cd95856f0d2783d0821f2fceb6988f81a9d4398fbf914ad338505f3702fa3f29cfcd352657b996a463919887672f826fa199e33cc69f30d83912a585567dcd27255bf82a51e0a83c0fb107c8258d1479d9eca1e87d6d6d3ec18c6bf29efb71778211406bb74dc4a1845bd637b08034818d0ff7277d0c977558ae43ff38f17b2ca30e9c1faeadd38b332d6b08e28fec4e10423d1636cb4caacf48896addc7beb06059f846648ce0dbfbd162228a9b374e976af516984d9bdbabc4ae10399245704ecdfb25f4523cf25a449029c08fe4b6b9d022d60e6d5376a50d1a7fdd0f1fdbc9e0a047baf4254d48aaa167f17862f1506c334b19dabd02c58f89af5e6e8e27c546a2cad606d25920b7f59ff83f5c2f6321aeb3ddb7c56c281b4088d15b4dbe59aee2a05b7e6347b668d15ab66d4eee0499eb7fbdf55a4e2aacd9c05b48c350b35d08fbaad43d5d2a04b8d8fe7211f04a0d5dc23c03a189ea946ce0c886dce4c5d818e7c41071e006eff220508eb6d736d38f8615da49a8e75e2a4ace27ffc6785bf8b453a8d5ed89d2c286fb72505754c1c57e2451d678d132ba1e1908ef9ae17bd2441f88739643ed80b296bc6a62bea5b59a0fc69bfa8e032d08e1c3be9e65569dc3b36e9b9a10019d14d41010ce38c1d2c25e32f7b9eac3f60ddb60691260af6ae2a68c636e08453ac7f83157f21a7d18c95dae6266e6974ec876fa9d5df613bf2ad1efad4d993fc1537b1ef387ebc0ca52ed70fed06574a4f45f5a4cc290a11c7662d77e8dc17002d4d6de6bd28f628464d8e5aed302d3747192ddc4e4f2e2143522251e7d29179e05adb8c24c9b12b994ebaa16e8155d45ebe763a43159b72ea3d3606fb338c58f5b1b7dc6450126288661902f498ddb8e7d8dffd4ca64624d8a3ff5fd8d2672528d38ae0d17cb560f5c764159f2f9a4f3cdece5ce8a78d51c5afff16b0ddb43e7f28058bf10b4106534e61c53e5435571727657e03294e77e88716dfbb91c8c16d90a1e4df221083b871b4734c03d0a2d15402a3b6facb64717596afcbd469eb5eaf19e3b46e3214f5cf43ad5172c33ded7a948676ce85cb5668412eb8367fa2a04634fe40a061e80b08f9b810e30d7a9aff866f2e42566b6c0440e8665f3437a6fa90856da6fc4cf090f262f2d7663f91dc3a8aa520359b74736fe236ceeb046629cac06b8545bee12ef6c3f8547e292d78f7a9c186d7be0ae776b319ac3eaad8064c3f5e5ca1d2de508e7f0becb8a5b968e0ab3acd8887ca860223090837e8b75b3d966a71af57f28bb5f9144e23c868c039d9f2bc031976ce77e5f778f910e93ceed7f44fe128afb5c38fa6bcf0414eb6d813572269eaa4b8a77a3178c39fe3d06015ca2d91d4e8a60d02401ad83626baccdd2f04fe0fe031d6662751a31d41169a2ce7f0925ad400c70a6d515cdc6e1873c01e507ded180af9211071ba73398da8798840a88d8efba84e0e81b32f8d69dac4a560e12ec82c48288111e0f5870cd20fe65a1aa3afa613012e09a0e65a457ed0c0d906a8f9ad4bd499cf8c9072fc59b8b159c4003717f9c89b8aa7df10854f2fce165508a7977fec32a13c7193c7e7dfcf9aad466415503f7f240b6fdb7ebf7de037c4a2173b5cfe31904fc2971b6e2d67f16c714ab206b50b975590bd107698f45c29ec1d4640611e5d410099bb08a8a0db9ebe2ccdd37642e6068bb71e9ebe397689f9115403a6ba4d3721ecd08cc0ea8b21b898870838a4682f3b6d0d6216c1afee9ff6d960c6ca0a41a86ab7deb5efb86bd5bf3fa98b5a5818feab0b13eec5ca965836d1dad0e315d96b133708f79cd3f57e85187c247399da51ba812a6f08388bcc4436f93b5c4a5b9d7eb240280d47320f8c57b90f7aa9c7b6ec88c3885f2a27b365afacc1de6394f7c82339929f2d64e86681182fc23807fa8341dc44694b73afe7244297f0bb1c582775cc9a11e555eae48355fc490e2f813cf15006aea4ae67af14a4636888a7f8be0ad4127ef9b2583b238cf5f5eca4a8776adfc8b426d4f26e8eda622c494138b881ac6dfdb32876bf8d6394e89ab7f61d917c7cdc381de501bf258ba1cd677bc79e0bc8c76b1fecc918f66ff3de339fb6c650ef8294ce943077e870fc151290de1b31869d9338aa1f72ed22493bc0f229e051a4c5918d3617998c6255565851bde5bbbc3020feb751361da92aace7e2acc7426f61a778322dce2605c9a047f5e911f2c197d9113f76b8adf28b9dca5958568b68dc36b95b51af4fd1cd042bf3ff68ef56862bd8e5003078e51bb25a1379b32af863dfa5d91bd0565f132d72f5cd9a13e3403bdac55ee41a264ea16d5d1f2f503723a367f9e15324f225195e6df700b6d93ebc82010a32a753edefc2dbf904d99f638addbeb84a2c809f190ff3ceea0733bfe3cbc582657d3233dda2d544c3eb897c79bdd7c52008a0e51fb3342579e7974cb0d88f318ec0834b97b4187fffb7b1574e0a29fcef393c1b61e66dbe9f72ebfcf3bd0d98b0d2f3f580c281c1a30218261a085b2c0ce043870604ece6d06704d2c7ac689e696e647058c2a1ebeebb9e50db10eb816f16e625ec69dae3cec371f42e0dd73043aa85a2f68304ee6237f468b6571dbc9bc1147e675f93aa4f63e945506f46d579bef1f2bbb9f6f25291b4d77c91858767ab5bca4ef2bcb63d96f7e83c4e0f94c1287f972041d05205e18294e7d70fea7869c9b06cee744d650d09c35679baa50d305408a8db53671c1d22b10743bc66d56c7629f44e39e41dc6c4e271f1a3d4c27b10c617b80f18579f80f0691263fd6b8cc7560af19b6432cf6f784dcccfb4f28a5f4b9bfcfb2f1f9785dca0dc8067c5ce7faf148a3d468aef4e961779dd65e54034d118283453825ad744b5b7004f431294657cb306c43c6377f858b5a7693eed5b138f8976936bab73863a90b0270c61593e09aff7015cc371d5f70f4ce792a07cea63697651fa39ea7d7de711027674c6e652514fdae88b2ba306a5d81052315bac587bc80ae093ec016000ac57df65ce686d8d2295a3812b0f3e30ecc4b6e9ac2444bba14ec91e85a4a851799dd3e6d29c16ad1ee2bf11bb22cc47d49f0b06685beb8ad6ec368ea354c516a39f7cc8194d522b39d233b65996bf422d848ae04daa16836a52df8ad5161ac999a149b06b3f9b1b27be77b2a13762ce8b0501bb988ca82299c1d8d458d9acf664e706981ac1a214c369d12381ed5352af5127509d75f29c8f138ffcd75f4140e1382d7d23a8dcda547dfdf324dc66d60898571b4fffe5b5cb55289ad68f355ca0bf85c596262a95039af939fa9438907e02fa987084da43f4bdcb90f5f1674e7656c5a7f025b0b69123e706f53e7c541dadbe6caa7a9198be64ac4b8cd96140facd8f8d4bbddd5e17520bee3dc324888a784578539a89128f3af546ed034be638b33b36bd199a7aea205c62079e6cf524be216d17dfd8b66b4b36de4fa06af2058bb1b416d7ce13f92fa3663957242773b376770c093ffc9eace506e3adb6d2ed1bb7ef78208773e11ffd0d14a3ffcb8f0cdaab48f59b96ab30084ccf21a2207c93aec89789dd0f75e90bf0a2e9ac2cfcac8e5fe18b2100dc119e53e34fd8bb4e184b84fe5cc56b745d0e7dc6480f2d9793e86a58c91a773160863b136e89c22c009e5d61ed0b08f4e568546dd083d314da7dd5de35286da5838bcb2c49457cc962efd1241f5d5781f451c9c1512da4ba638abf7f9067247f4773f465548d4015ec3ff72f467de7b1ddad2ac74b78d56bfce5e0c550a54e1357bcf42c2cd7d1ee701a20584d29c6499fae965310ea3caee1a31ab9fb4dcf4496e99e638c2609b9ca72604765d9ce99ef38283dcaa78dbc362aed327aa6046731e76c7997e675777a5f62200c6e9ef17b9817867025d08bec2d215c70933f07e8cc475410c204202141c801e6d083ee573d619abecd5aca9a38e60d4d8760943aabef98d63bd1d35402e81f0d260f8ed9f8a77289b511a0092d68005ecfd87ee7155604a2dcf269a45e946ec37952c14cdebe3f71c29b7e3275d9607151f3ef14ec9c13f13d8f9b870c7f2676ce7d46a60d66b2fc3caf7cbf1562b9ec78671d5fa0a939a6c6b8e316d897d9e15441027bda7f17b92fbed06176da32c75541d366a497c4d83879654c518408bf4cdeeee03d0fc7232a98310a75370da9056c22c5b98df826c9b254afc30567aaac73d243241050ec0f3f887ca78b3469a4f6fb5ac7d9d0b588a88a5699c6fcd66b71c42212ab25e0e1cfdfbf99b4f624da370ec294a567ae58fe4fb9f5f02036a232c3e050595ad5e2625e0c1bcd522b32b5e4036eb952659bc5edc2a9904f17be55357066b76742b359c2e79c30e1e073f67b1b052cf05c0ad72f853bea44122899ae9dc80d349e38bfc1f78be08ed717577a749eea91f14f1075d4d79203783bcb84fc5cb15ef1b5f004179647b63346b2cd66b8ea466f682d187dff14ca473174af7b7ea1c011f03242f304fabb6f770a462f34ac7df3f77453fa692e80273d3874e0694ad73b0cc03c938a1e690fddf0ab07bf76c651ee5b73abd75fe1b1fd42f3f30fde8ec6fb3eb295f6b1634f183fb0a6ddc6aa39c5638c73d806cf15bda34b5602959797ccebbecbf67bdc2a7eccce5fec9a9624f765f2d4a936c627bfcc8f6f538947b6b0e6f32247568a945a3bf4b82e6983200ba9a0aeef4bd1d47f7e56540b1f92a929d92a727d5fe7f6c39a6b5d1a77e97f612e5cffc28ee65182ab2df4119e9527bf3ca27719f3aa0505c3088e4e671e50c26bacc97ef259cd43e3ac44599eb894cda9d388f5df8bd81b44c39ccd4749ade6b2c311d82c5564bf849a1f4e70bc2f0f21978fb4f8da97143c2a500b2c39739f29ca979b9e6a0fa6b544fe768d0b0b9b79f9c4aaca92ac19d07ef79b73a8b7a26829b7495caad7f5c4e92f12176c3e6fa2acde0bdb6d08a8b7358cd5dc1f77a6d49cc0955df022254a8d3c4ef01c39bf7b673f07b66ebdc610080c1d2f7e275365f9e3ff3b958f05aebc79feba98ebfff67b15fa988927fb08b2d5321d9aae7a3dd71ad983b135d71fa47e833aa13da6cbe451771f2afe5ff43e014aed9e0f529ff6fb253aa3e9f04e94b02c1ce8ea5bfb5b2a84b05dabc7a92cf80a96b2e0f457275419d007756e2516eb360a888c35e4c0b6e857993ad5af780c749783f36a8ed46cc1fb80de127d052567b78472f17bf5ddbd5641facdbf3e56a7255f47b703410b49ed1a2cc7a353c6e7d5273da79fb5443c9bb203621d92b588993fd2aae16f3e8b338e47da4d1d61ecfbbebfec4961d750f5fb3d5aef03b10b7e149b53801fb6fe87f42466360de2c3a18a4b6e32fc2e7ef91740361e6f3aeddddb0daff1757d683ce65a97750c8a4b619025e546d5511b07905dfd9917f6522731df43888ee04d60c7bd7363ec4a160ce88b0695c3b414213b2abf39653d0d4bd3a29bdcc3d73d08d1666a41718d1f1646633ad4e6ca7712340a00a5bb44a26ecfb6f894b20d2ef80469f22b261b25434958d6268ce66ab8fe28c548e6072cccbfdaa7f72d6b98eb2aef73d7084e0f0e2c3325d4edcb3f47c719a75339d7d8047a1fc4c7be21aecfa0d4ad8c46aec6bc2309fbdf855873a50a37c1c5db6449f325f6b11d1211475466ab9946a59e3f22a4cad9cafd21af787d2fe1893e7def5f53a8a21e00ef3d5d19007b60c446d893d45c4107da9c1b15cf2467ea0fb50a6e5b3e5fd51faf480eba15f007054c83a8c764e8d8a55ed7f35e4b1986b4106055467de3fe19f4dcefa4b22a1743606f1a6048556adf509ce0b359e5f0fab837de6d548051cc72b732052689ea55fec0ca3f08de7ca805863dfb1dd0f3c55338dd0c5338154d66436b0711ef040b052fdf94958adb562f7a5f55130c060a68578b48eea8dd00c90fc7673ca79cc43ce1ae42eeaf6fef27df3b1e94fb0ab7a278fbce2dcb61d5886657a0262b32f1a266a53c5c928d06becd89a0c47b8488f78874259dc2057657ee2b5d7198a176d8d657a5e04237e5c0313368edf9b3ed07683bad610a5a90596bfb4506df6111bfdc84b589decfffd7e0ae55241a0bc4abf4e7f26b60fcc830e147c409b33544ec57e793c66c5372c97dae34d00cd164c3c56538535ced84795f362e6b420636fd16617c4996ae38c313f53dad37beff49029797d9faf2ee5bcee58d4c236a533d84cdabcf35121ee45ea235f0a9f4de12d41e430193d0b15b7275327cc69389abb5fc9f7bd412883f1039ef5aa3d485dfc7e9ec5613c6ace68ce1a2c223a84a44615ae296dfce03521bb83e9a03f3b117933d9078e32cfb4c83283365473925fa691fb4411b47c10d3bf76e55a26f4038f7185e726741b593d8681c48cb482f29a6a121e76cca5c26b6b5d83305f42141415574ec2b5f5181618a493e82bdd223ac8b13bebc284c9f6f2adcb2dc4edcb74d019dc9a139ef227d7a40369b2031a27fbeed928c3e367d2a3cc958455920d261130931dafcb4ff376f69f05b40ca991719d12619546415651ce869bd6a583f2b0322b128c43bb0fc40eb5e48170534606b8d00328413983dd0ce03a5001711b50403413ba3b65b00951aa6f15d5da78cbc6138a330408c4d37cf795d02fed858c00ffa04f37000bfc18164fa01289b6f594bcb3782b09c83664b84931e4627e69ad171a9acb4fb15d40b90280daf576e9f7a7b8c10cc46a38d34f3fb9ef6682db68bd193dc4ec416d09e0a25c62583742b7bd9854270688249ae251c4a3d8ea6505be9e82bfdf3b2eaa350bb3686f419e65cb1600c74cd872af987d63e6cea4851e1194ad386a5e266e3ad0124ab23614fa2c9d052bc06a881ae1c4c9c27fa4294d8923c4b4d0e37a5f27c5f6efc246fc4b9944488e23398c2bb5fd4c30391faeb1ce944b997f934fbda51b465350f872b8a3ed60cf13e7373e3aaa4b4d9dff1c5591ddca92f8883b566f087ca67e39d724fbb125d45338cd0c5ace877c866827d1097bd18d7f470b78548c984636443362dc8a78bed41f3e42a602388ef5eaa83a7774e51998e3c274c9177427b061e74b2347b2a24c28d41c4c11b52c68ded95c1526a4c08b4627dbeb475dbb1e90769584cdf2d815fd5e3951ee5ba098c0345a572ce82caa464d5d1b616a7e8e7da44b9ea02973773aaa7bbbe3cc5b2937b9d3638004fbda2b2fa6911ca96f71bf4485fcccb7588ab6cc3c3846c5f635738e52a377edab43474117b47354159c091e9ff87cd8cfd7fc49b68014bbbac931c4639fc8963bb1acab0f87b96dff66b6db5f90e9d53077940b8bc05c2fd33bb459762abd49bed5a2e28ba5ccdba5bcc7e5cf1e5119a25e1dbe5bc361ce0faf69db13ea8b35082ee1a47d7c44457c11cb0cc5699be7dee12866c0854399ebb7d702c071e041775b1f658bd1e32b895369963b453ab09463aa18cc73aa9d7a5d247de42b7e2dbc382e3ffe25bb7eba166aef5ba61a776a39e2e9b72e06dd608da5f3a1933d0443b986ade478842d921f0d49e5e40da872409d544b5ccb37f3f96409c689d99d9e5727b1d251ddf542c9ac9d0a05d4ae8b2569afb60e9b45c1a1b507e124bd13758f428afb646370c449cad3a4cc820f8250eadbad786ca1991692fd42c583beb1c0f8b6d2f27f77e2035a43053ec7765e9ab7fb99f4759464479db2b8d8d3cfaf7695ed127411ac5fc1b29aeb99a74518fca3cd2d05575eff40365c61b26d353e1fc6d5dca77e49cca7d5e9816ed249ce9854461cd6d898962a4e2a07bec8ea5a4d7c59482f574d1bec52d9adcf5d5755bf857d9d2f8a762ca1668c880f7904e2713d663147c52cb7fca0ad771533009716cf117f5c339fb88863bb5acf82642d2bff8589d7a743efbb73bd48a00c7f29660b3d2c7e607e28565b6361c24d9592e6a97c114f058b5b9df7ecf321a478b8305dad03aad204dcef75a873c9e67f8c466db687ac596fa88efd48e70a4a69accd086b106bb877098de390e5b3ec92465f5a7a50f7a1fe37e776f5c30bb3bffc22d3eaf4c7658052cf4d0308e0a68d8eeaee37e75ae9ff5dea898a9448d51c84953790d33c9bb0b8a186b603984ad04276c69c1509804585f28c442bca832017a62bcbf0588a6ab5648c0b62b338b23c01ad05ea940c10f45fd0d065c8bc8497fba0bc1f7061fd80c8108caf9e542029e357640308fcacff0221b1d92e001f1481f1967cb3bbb6fc41b12b32b47dc77502c6893ac7ea961a3bf751c087e975aa2220e865a7ce7a502c72725a4e0566410b16f31e11e0d8ca79ba4b6fa080c35eb3c1f07a5ab5522b76a85d25f1febe84e68f1438d128729659d99ed11a50dfc76eaff1106897ea35001efb26643ab6e428cdf0918bbd97bc6b29fad070ee841774e1c711800455a21faa18ea72b1569d4005202503c80128e2c0c070adff40e95a2dc242b13cc6d6d4959da902fffe4191f39aca737f7005c174a18382f9ffc1fbb0e792d6086a4a240582682392928025bec8cb59b586f6ec5bc6cc90915079337e8f01a2bf747a5c074a7f21029a6efac40a487dd7dfcd5146ee647a1dc4bc334d0ec6247d6e3cd876ab0d229e8aaa9c260f06d182fbcdd2ffbcb3416065cf15d440747487f157caaa9f6347fd951453213ca35f6c86fad7439d4b091196d2177fa9a821e049181ab7f4daea2867d78630de94d32308069cc62fc6f7dbf27118cd86fca2471afc41e70ee957e805a40e10bb964873d7e99de555c9c07ee4e54a6f018be100da576ed8e4997360045f39a312ade8b1ffbbdecd05628bfb40384754079836790e36a6793d50de31594d095f288d5b59662d3393b1a588f3f38439b6804cbd584265a7806adb0c3a5c9a0f35f7fa2bc4c46b4e4d4e78fa76aa416b926de8d58d2ee71aba32e03ac558470076875729cb0aa3b36539093d44818352fbdad7c66624d0a568dc89525e92bc5a55b7a7d3250228f92b684ba4f3c366c82d3b9ed9641208285d3b7f8fd73225a306379e7976dce974488c264fc14e5a244396dcc5d45f536bee47ef2aae0f1a098bf0f82d4f8912d86ae326398774d23ca5e3303b8081abb6a608990febe541d4316c6a311faefaf7a92fe5a03906a329f2a648265fbf6f52b430d348c7ea5af83bf70d8da58e3d2e0ea6111fc6ba3509de2dedd6fbf2cd944e3ceb85f01edcee77f4294f096da6457ed744dbaf3220f6f36d248a2ba6156b4fb03d4825966a1aa547eab37312e63fda06b46bd68df14e694eadebf93c0127b4eceda331beedfd89ff92dd6033dfd7de8c9d3a444a1013248969ef0912e142287284b893b4d3900d1ab979a55e51f96e53f282cd66c8a3166ac556fa9c1c13e06fec84b2aa61fa5bdf96e4683281574250b8c3e9ac577f4733292a5381f26c7d7d3ac92ca46c0551250e09797df236a74b5806122bbae0aff2db8d08333efce22256fabeff0f46f537feb8a79b46cbfeeff128fe01507febe1e77c1a36163f14d79775cf1235be261469237a1f3569891b40be874fd151a37f3c6f416e4c9707bb5a09a0b59edc384311903c54d3a9393a187453b3bd2a117c6e439db3811819a5325a5c74184cb90cb367714ff57fa36c8470404d7196a287ce4e00f968da7d63df4ea05bff5da8eb542bccf820e5e675e4edc3d3869c7117b2f46c27404f19f6a5c789526d018e3a01e3ab60a92cf945f4f9b0f639019040753a18bf795ff4a2f23c796edfb531f498979f94deffb29417bc2086e266c1d10746b64436fd5f693f3987a7cb706160efabc07a28f2b6777659fe2b37f1e9744e68c2d802b42c9811b725c4e68400a137c70647ed53546363ae89526beca9e82acbca85c154ed7caf626d5f406143edca6f9d8c809cd4a88297fdbee6d92f7c80b02d3245d1626a00ae1d3e8701e521215b95764fef11360f2167b6d50aa0c28f595512fa46693617e16a802097092c22c46c698b13622b0a9e1f04f34468707e2c49065d5cff1de113dc3050956d33d10d4bd5a4bfea22b83c295646f0acb5ba18540f050b98044686699e5ce08b5611a1f48a18054b7eb73dc4b878e05fbe762c6e416c011c2b3dfc789f4f23ba849c6b5ed8972f0046223d64798182895333d8b35e334d87b8b2518e4f4575a864870f2e78eb40ed4f8ffa94e5a63d67dfcfafb43ffc4ccf34ed819b8507adb11a2bb87157101386b732d0a1ff699156fe6b0aafd3be8768ca583aa001aa930b09444759b55b6a0f3aa67a2f58a1604e71727aef96e1f0ada05ba6d7dc7811807964de5b13fb8d91efb87b5fb79883083b7d3712dbb5a4c3a0e68668fd9063699acb018cb3735742a896f028a44a4e4d103b34a6177c122652f526faeb046dfde5b8b197afe5cc9a4c991c20625fbc6422d1bbadf6222e300b774a7df34435f4316b7e2642b1ce2617cc4e4671c716122ac3e4bd0076439c156f72378b137ac3bb82a0bfe5305972d4f03bec8daaf0e75288e0138b3ac516067062959b534c44d213dbf549714f8ab5139cc24472728dcccf790f7a8e175295a34850476a9ba42e43bd629ac5ac462f1d3818cdc961e8574ff015a66e4dde83b3530ed5901e4f6c72060e6ec72c3af5cb19aae57f7e972c3a4d5bcc19ef945381bcf8a0411cd1be0f455fdfd5fa6cd43b7dfaaf4c5e0e3252e5664ff7aa6106b371ebb35183d497308e3dd0c2a59035af07e133617d479b806e7ff8140d8280f0254e8c744d86ad581e2c0861b9a57a9528e69b320adce4fa8b06537e486a7dab7bf476534502f610a102ab400aed6bf2e09b2a04a4c63f4e5990cd7b27db36cd77abf2e7866b816b4f836b34c4944511f7105daa1d91b30037f69cddbbdfec3da18eeb50501b365be074e4cd9137f31c93f0c895ec3f4033c8df22f94081925aeeb73a3c3b9fd0cacba5b24e7eb81a171393cc88a1a3a712d7bbe329997d0037090af15a5e7b0abae49bbeb2ca370bdc5a9515501567f60ea2868a9f9486d094e897544cef2f49f0c09b06ef5b1f761d6a64310d9c621c28f1d4c66d0597dab1af7b75985c515b5c54a209130c96042ed1a19bdcf212f5cba3c7c1477f8ca82f88a0f7462b9277f87f8ae3aecb4b6201b968612900ec21a9c45ada8d00782ebffe5c089471230079df5b0c2570429b6882dc0ca259fbad070fbf44a96a154a21d0450d414551ef9609b9e9a914af926a2bc0cd2c078e63b1b23427a4ada6d0f902cc272614d26c81b4a5d9f89902be25ef9055c9d87e27dca9f3ea64462214a496e0c0796c83049ee9f9700ae6f7f3a20a150de5f262caf51d71fcf6e7df3c4a07ad33298c94c9acc430df554883618507a4e37c8db752f34c94411e0e3f9b092b8a1dcd22e4990349658431e4c3a1c0a26158aa8cd8fa3aaf9931e928b32237699fe2a82e10b96cff2da1ae8f22b609eed2aaff445a83511e15f8c4998e868f7ad065a145dc1400391145732154ff5a93975d6c8f344851ba447fdb9f45b33def413c27d52365d58919d974df5889b877540e7de60980c999ea89bdf57924ca38aa783fd381282b445f028f41a9df9340002430708671252a4ea180679b74c760ba244435aeb94cfef4f02b3236eabd5163bd2a72cb2b21adf466c78e33ec70c02f62b2c922e0af9bebeddeb4c802db18d27630f7cb63fa9345e7a7020a1066ccd6af6631abc54aa5e58c7e8c5f35995f1a65f1493abc9da70ddb26965694609a6d3953f079d6517d28a856a8756364f569b7c46cf72c3b5aa831d1c869e44d907a2b6797414f99aefd32e2e859216408685351fe4f9d03b4e933c54f6a39155e843c113900c7840bf45ea31972f3040b49c97ff74ff612e6f7e479e36599fcace93afcb86c41a341b143533f75824dd98ae33ac4db1ff661de7c788d6c0ee0b70354061eef8e17ef00348aadd751f550b0aca639a8fa794f30711cf2fcfee58f78f19a2d665c740929254fd01cac84bf5c409d25595608f92e5f185a715a7883991c648bee595548656c82c4712b0d07ec55b99fb527f8a2820bf6d3b4c7199d222d44ead686a5646feabede098d452e856c60c1aa26c9e914a2082c5ef1d9236cb2a7896dfd9002570387f912cebd66e15bc644115764e15d007c0977ebbf4d447e0accad273d6657c45456e83c05566f996e50cbc406ed257ad013d2ed92767df18445ef8226ec0189d07975a9dffc2d48d1cb9357228749b395475d391b5d2d9870a96477f518bec087aa24a5d8b5ec676292db0d12c3dadabbfb6987add464e2e453ecc178a0cd8b27efcf0e6592045e2353c0a7e750d0cec4a2eda44b54cd04f0d60566153bead1045deda8b3bf9717a1ec29a635e864432182cd585b1d73733a6ed2e4ff43b16dbb391bd337f81fa59063cec8382a0aa65fc770ed328fd7d828ee11145f23ddc8ec97fe9cc54c296d305f79c5d3c75db6c6212baaab784e2eac56654bff0b26ae1170529470216d4d3bc5e4dc580a77e904ed520b0b344a19e176a7c17ba3eb8759e6fa7e53e6b99e586b389a10b48046b217770710053dbece38570837f9afa7b0f121f285609389871add45c1e5e57c377c6f05c0e76795b3c6c2b5527e948bd09f46788011a927594c67cbb157bb6a3cbef1678e85478e10d42ea7d8e75004f6dcbc9e7fd0ecd6f8a470dad17f1321b04f66ea801e13cf7fbe6b70ff89255eca5579cf8714ba8f9ea703aa152846f0e28655f7976db7e03041eeb0c0f5888852ea67bc97178419f81c10dc7b1d411dfe1071cb6e5d42a735d67df4fa64e523dc8a964e573349b61e49cd46e6285a9ef819a73ae7e91d0e0375fe68292c3f1845352142acb36ce346107c1d8520d3d9edabcbe8a94230c7b658384f125aff428434a84fd1c6c2de5d1e03889cb17b1286f5d5ca6e96e69b6bda3b686e3d96568b433e807c6a0605db081917f10b3cd5815286b799802037a3aafa60599f01fa7f5fcb3bd147a3f0692606ad7b1440f5975de6f50d5b39fa5a6665db3d1ead5b1221a699973b78dfbcf1429b3b76244e578495f2cc0f38185c36b8498a56c40948ff0777bc3fd0c5011102770c3fc1ead2152142953076a9b9767c6e4e23c06f0e98cf7ebe4a2fd2e461afc9306b6688590095900637717943fd5b9dbc500d7c5b5e410b24f27e7fdb17cd9880b7b726a310124c99ebe46ff71de29457900ae812d04a80e2dcac24be2de0ed863b896983b6c905bb80d70c581b8d548c5f8d561242261623902cfd6a6c5d424572f6bd4350996169b46387ba49e4d9c4f80e6fa9f48ef9bd593b6dfadf7637a7ca47edabf72c786c58d4c48882e2ca87575664a2b71b12af3e4cc78cce4b43ee6421fe8a6bc930755a8929243887014a8e17ca52edfc1af9c50baa1b8384bb0069db25e8f817364cb292ea13360084dfe2dc0aa74b3375ab449a049101371a391a76546c96b63907f9b4bf2c373fba690e9687f6d7f289267fede0ca9aa6befb5e8789041654cc6d76f05dca459619a3abcfa9afc9360be6e701e1a39825deb795c675a7d943c5f1fe0acf195c4e258357eb0c339ab549daa5a0992b7755926cd8238c1a4e19a5e3ed49ba2cc5f724dca9a6548ac3f4e8d2e5f2236278f8cbb2457283225dcfeac9b74d83d364fa49688d2c6c8d7e6773cba3014b5ad603e1e0a321d947790c890b327213aa862987284c95f35a63ad73194f5b83506b01cfd9fc4e73002b0c7d08e79262c5c9d9a743fe6066d6bd4b28c8256c32cbbb5a5f2139a56e7b1267936e6db1ba1d18ab18114dbf3d4e1494ca70563ef33970dfe5d0465d72df80ce0b18eecab82f38fc88703fadd205d4d02f065807e8b8b29fef7b52b9aaff44e9d9ec1a00ad62909271c3e41f13a80af7892ea44d479ceead8c29ed518ead68f5c2f9e2a90f3b6647275b892aba04c4b01bbc346de58976905108c33b89aa22d52111af491d5d41c8d1a181b40a2c515871000e5c6ba6320d5d2091c91f8db8dda754fa6a26f2bac7b3d2459a2ed3d34b2d3baeefa4f3dceeac3992e9cea65b9fa5e987d2c823b17f7cd71cba5f6f1eece0623184f2c9e105716665190015403ebcc68c46379b1b8a48679f9276f2391e44ad16664e75e8651b6decfd4bc95f0728cc211d62160b322d215a5ede8057d716dba5bf94d6d3d1de890c27d716b9f81dd35941368c9629440186cb22e8ef9268fc72df8c5a3d995f76f2c26146e151060c568bfc7fcee326fb1683d36661f619a540a4feca6f029ecb37e8f4ca15e4e114c6059d492602b3c1102740201956c262ceb366d262defc13570237d9bd83c13b4c7f56e6f8af1a9c0ce7e55b8b3700f1868ead02c867fc931552ef9263459da63dbbea644312b7b824a38d88e814ca4812a8b2c71a20ecdc28c3bb515712a1344528d56ccfde5922aa3a6746c40b3a9953739974872a941836af753b191483c88cb6906e00d6d5b17cec5c19f425051fa602a2e3873e2af509e81d92eb967e28c7e29dadf3a7ab7b30220dc42196b601ce855fc463ce0c65470b9cf73d5ff1267cf6758c520d96ef0ae83a2d974092c6ddee613c7f1bca0b97612d77504b7853d690ce0d25f6a8cde54f6751baae6d315fe4367983321a2948cab03914d981569318b5a0818f1c637cd40ca4d310d0a0d5747e838789bc9effb859d635eb3a9208355378b192ec0e7ca07be56bbc8d8f3a893fec976c29570e5cb2a229635d333b1f41404f24911a6b0c5a990b6694d01508bbe1435f507e3c9ec0be6c0fa8c719ccb22d450be4c60b0af46dc3efd4de75058b900ced182226118c1a3b9628d96eb2ccbcc225a6e55e09249b159ffc157306ae70cdd91bd7978dcf1f1c057b117b8a58fe7048f3a96b2ce3a155a2667e2fe4fc56343ac9be25069cb1049196774b4b4573995944fd622d626819ed95de2f9147297476f440a8f87b45325e3688f4b088267446f1adc54e8e7c68b6e97f601adf0c846197e10566b33112ac3ff9c2526c8b7ddc56fbbffd1106069588b9e98550f89ec8ddd838fc6d554279ef3a58ed255dff7b55858e3f288d0d331c43c8e52f4c21fbe39a1d11eff187700d441e367ef64d1f93d16e1f1b3a67823dff2be60aee96ff6dae5b82c2102b6dfe178ce7b3e604cdbfc5f54e6050245c4019824be8c38d77d15158081f972b7d08357de19b889fc1971560846b446d3ecb0e5b60417bfe53a50cd2b3c1e75d2e9ddac45cd79efa4925b1c5025fb298c7aad85e0229231b697756d861e5e35b07967f6fc48e0587633713245baef9ddb0ec24fe5ac0f84317a03521cb2a61754110c6cc61ecb03ce017162185029d2cc97e9b1ea4d623fe65e536cb9743ce16631b2805d4418183a146a3a397896e4165a341500d1ff20bda928879585e64bb4395c7fc4a811670796657df3fa54b8031fd01955dbcd77fe9fb9fd068b8a0f5f0c61d39d10f4a3c604c89583f6fe6eca37fb2d926912d87a2bc37a3afb804892e6c78138e9bf2882c394b5037cda6d096e0e6cfe352c33d3ef67f0a93d16d1c706db43de5932d152612b4cb82bff59d3602e5124d1f3d07a0e629d0f7e61eb9e3e0bb2910640201e07e7c78363f61bf6c96c325ea27b43c1dc2042a32fa041cbaf1fbdc7b980301162fc0bdd1f86385fba2f61fbf83f135aae9db2c9d43682efbe00e451d8852e6513882ce6c9beec3134514b2cb5a72bb590d7482712c27e511effc409079ccf151902d566ae0d1b8eb6a57a6a36729505a0055ec0f1cb8d3bfa920897731287c9f6678cc58eb3e0cd263cc6b73948f1fd64210b29b249c6236d5f8a43f66f5aa03cfa4133dfe7cd0abab43213d9fff2a3a7f54298790b5a581e44a745b9d69c781faea8ed9c69eda5ef6dc042a8d708ca4bf6967ae67afb30cf360f930c88651ef18068503d196b8bb79ac032ac74e4932d95e6da75d334d3f0ec4f7059480d377065c8bac3638cec46389de45b0e1d8bced1ee41cddee4cebbb81888a3c35dd4c76b2891f3435481c8520e4517b8273061b46b09b3d67fc3183fa5a38565654910f86cc59f61785c1521d3c59661d3ecc712dd565626e93b8ec65038de39112e74c06dabbf1929ebf321269ece79952710d7bf6b4e55912f95abfb22f21891f3ce151792a2072fb87e95be8a318afbbf7ff26239c70707e7b8374557cb6e4182d4f9b430bf68a486bd114e9eefa6dadc6bb71a9ed83599fe3f311537ac7ffbe6523b87f5e1f70255868801b0ae46c6187ba5c890336ef8752b61f767a1cffef82145d6e154c201601d7f6942af2fe63223561b1ed39c7e57bc243c7ae9f4d1e413fcc60b69b0df362e2dd7fd398c35b38c2430c89775593ec82d61f659823cbfb66700effadceddd7b5afb465f22367435bbf7c1220b14beb016507defb6f3f15be9b3bc84d6498197818e775be246d0959d5cd164162fe6ac5448182df7ce5d1b612102b98a76d8dee2bd47c60543a7e74e6680ad641cde2112917c4c3d2a40f044e4e6916b4f2c753ca7eb60ff6be98119e8409c8df656e7196b89fe1e55439c97a52b2c28ba05f1a59f093431bb513ade48d940d885de9b3b5d5c79d813e70c177119573457c481710a2af7e79e109d208ae354bc913015cac90cb52ae0522f94a64dbcf69419762c17738acbdd9c5890cc4264e0497e609a886e399ebbd86678fedc9ae343edc9fdd1933853787479e5dac9c481b47e1f9e6b67304eb8bb05b7d602e22c194a15de33e9bfb5b275296d47d975ef5e7df3f1b1f7eb44a1177b6d293eefe4f18bc549a94d6f23506b810f8f575f7e5eb54bdac9b12ae3522411ee49d04958dd9942bed193325af9d5ee18324a3f251a1b9b3f9f9290ba338529646590e1b9fa9721f0623f014131f12cd4302fb3d0925f854997263d88e6b839c4ae0050c26acd9bc16c1d633d03be4feb4fe7bc9ba56c2480a5c2895a3afe861bdeaf6bd10ef0f81d39a4ed09c424450be9458e586b0a741b5f1685bb6f40a2a1f550ac6debaa9dbe08ce995dee4979b1b51cb271b0a751e368b72ebb71180c87e2837fa205e2a3e7e0de6e46b6afeb8fb1275a6c96de8db878bbe69dc1f2cf26259a6062f18b6643dc8524b0584d4c45d5d1d18c44fbac1c76903c0f9eb6fbbdbe14c9a29624760134570d201ae62451b4841279297554f8d48785e9970be0bc67c91d939f10cd35695de310f17c517a83785b45cadc80db29579cdfb5119c89c39aacaaf985beb173c00827282da45f11b84450f8235e9aa3dbe174598444091cf0f508484816e82f2b4e20785a86792f1ab8308379a47e6783fac5693e9cdcc0b6b8ff846fe1da67460cfdfd936139cd5997614469038ba06c8679821940605710d6f1925f6b1c94b2383fb4d6dbc7496d8fb985553b61da98f40a5ebdd9b8e4483428812a705ebe5f921ce64373e4a87f31caed87f5c320f8530411a2ccdb849289eaf8d8a738cc10600460f181844e6c3ec36158725be83502aa8b83beeb4077bcb55c3e9ad1ed186611349e7a9335fe7b67b7ac75d51d808d0f454019b8fca38659689b98b37104a2b47e4f8d579ef54647d8aa0f88391ecd9b25a2f8da4fac0e733e7d900aa0f5abe686f4f16e7ab60960b8527c1dfa8b6a703bb0482c48a22f60e291f600fdd1e9e77e7b6626fec00d4187006fe4e99f7f5fb7f9e6d016bc5856b7bcbcff44bd62271beb0c56b42612c03c67442b64ad20e2e7c2a3f4724c351941e0dc3cc058c6c56ade6fec539caaf9f4df76bd0ca2afaa0b33a0052e0b8b475f036ef20b7a85e0f40d82df22e2bb45122550a7042ff1f036932da4233ab63a4d01afa1fdff4c5e1a6b5912f406cf106f227e1a46c645647ba68da38cbc0efe1826032b6ef6ec87d4ad1bdfdba66dc948399167a6f2616ac8e5c55e4f89a8b75a6f2ac0dc5ec59d16a2a10251d0ae4fef5b1004b1bfbac5a75f66878e7fe47bd84ad7e80b840ab9c4024de5dd21c605e8096e96774aedda2d2c58d0d557492da864a5a123befdf38f1f40a0c51de6abdcf11aaeaf8ae73877f13f88fab4ce615f9188c1030a0b7a09000e7f5e6eceb6d0dd6f457bfec428b901c208aee0d941a76777c4fe173c7dc9cc540f6074904b852a2ef51b6d27837f58342055a53b4d088e223d869507cbd27840f762c61e878e2da401ff66e3de1bee01f9ddef02251bae9d46e723c48e12c66e01115a970795502cc0e3fe2bf82bff6457551239bb85b1fbf4228ed2c25bc495fefd78e5d03a577f1ecdef377cd85c720b0c98c35e1c6505308fe393294bfc14c913c0ea8e5f706e96313d7518647161ca03e22979590f5f02f44282cc6abddbaadc3ae284b62212c11936c9a0a427b4e72d88f37b8e886915eb25b531661b453c40a959bd169c878a498fd861090a073d5d7f889b4c0c958e6bf72dfdaa9753ac4753a84149e45c0b36eebfe612ea0ab8f05d1c43dc18a706b09d254ea03080c7e0b765b8f0a6994a7d9bd210a4de150beaccadf8a49e80d1003bb7261988d2c0b1eade2ba9c42bd4eabd8972eb653397a488ad6231e33d59cd20ea275e6db22511a40d8e6fa64b3ad131948eaa02d5ee9b1bc9d2962d5fbe7b982e88930064073155d74653c0c3c79e652b4ca0ca2424b65bf7e645208095992634fe1f5adaf65676a7bae2823a258b223cf97931da8f69e0c136f2cab6256e081473139c6dfedceab6e25b5c8616a89a244180827ed7170211eba5726ad46ff3502578ecf8611b2eba7481f36195e5bed62df6adb796ea2306dd65a847dccc303900c5be7b651a0aac244e4cf9d310f49b520fc4a792207fb4af5b00a363e143cf924415c54d0ffdea92a47c33d7ed9d35c83bddaa7715b89f6d720560cb12c605211f77a9f9434005c00fe47cc31908e3a8973ec19edc8a8e9bdae2d453d45b955f5555a8ccdd16d11453d7a88cdd10551c1add1612077c3722c51570a130b3a5be00b5aee19b17d2332d9073f8fcd3ed7a46abb6471d02791bd3665d341299aa7a27d4ebafb834406c755f88e3977169f9adb6097bc1963c41b1ba35f58c13b6b6d03da68b6f8866df0a6c89951e9ffb2229a9862ae7d9e69b2de12a70e4d1b101d8bb7c141b95a1164d6da849552b700c2c39dc2d0bd220b29c2efe475b0d6c3ca48af1d6dab1ff8303a4075c2848651a41c3706ad13db1041f0ecd5bfe303781d4514f5fdf0c7e8b87bcea724dc67da7c21a7ee1d9d360bce2cbfe3d05328986196763641404513f8218bab8487012b2247344ece8869e0dbac5d8c1958b477143364bd4c07571176a904bded81566cc21baa914b2750b2fc5121e090c31c4912761be344cefb5c4c2bd976e18cbea766e861d9dab9e26dab5939ac86aed992b218728215c06a381e49af62dc2c55e888326ba33fd3889eb6828eccbf50f7f2831b2d360bcf957bb7c4c24f348fa0eeaa13f8c51e38bdc95fa5c94965ce789409de0ff3103a6b2e207acaa25d6e3e4d51be176dca881aca5cbaf0c5a86adf9a140ae66ec013de86ac3f88c4dbeea0924089fc3734d6f385c8815b45b2f4aef4c9006747cbf19706d24d87af8e7ee00f924e2b2a7428dbb6eafe14de506925bdf50e00e46ffff67a888e279fcb6d1d183081e58297860ff3a4b912ff5bfe07d09673be531f25eea743c95c403e4416c4c2da2d67002c1df46f107cac0ad84bded4e5f720df0355a5599696862a3639bc5bf7c1bb6fdad724b5a9cf24291eeb4bb6744732df6d6f866f2ff71a1f954c299ff8a3fc26e8b5c57be50b5de8fe259d0c789d0cafda321ddfd57d21f73197edd207303b11003b85b1836c01d8cb2335313107c39a26266d5b553a23e2fdfd04aefa4a5b131b2c50a70ad424bd03be4d83ab72ab91090826ee942b1ab3554504458253d03312e96ce539fe056dd253fa2148517459b0cf089df35a65f90c844a5b32e52eca9ff0acd18213b19d41c87d3a1f02ebdc4ad546c78715d7eda2ef8495dbef8f603a04b063e88dbbdc3f1cadd5d124002f8de7fe61566bd47a295cad91bcb7f10e8f04a7f5550fcf7d3673e8914b12212a036bb9788e294bd1293652a54ed7597f4dbf2e63569504ddc6da36d8f887858ac7794a6dc3018938070e78bbfa1b9331b34ed70b627e57cdbcddb74d967babd5f6e3bfc06ff40268e75305080b2469ee1454ad2500a2945a0bd08186a33adfc35ee573b556738d31b021000545b802884686298efd077574a39b694390ad20eda49529385e51e1fdcce300a8d8587679f6d61b3b49ef262e1e5e606b9b5c1a17db367703688f481a7810c7984c0f124f364bc6d9273e73e8902e352876364b0324a7a138d49aef1c469686435aa737d788cf3e610456af93b80af9e211d5e04fea464ae6de113a8365fd9e67003af4f406c01687f75842db081e469f79a430fc5307971f98c6bfd3c91dee8c3af6127cebf35f263254d8db5a426b77befcc92f89da6f6a555060686ce933b088d120ebdb29370498089d6d30202b751206f8f15863354078cc220878bc773e411cb47774da89ee50394f06a0de18dd5f5cdc0836ff107f935ff59202c9b171518dbc72595ccfd8bbf90804a72c35f446c25153d0fe92e24816b596f48133f3f4905a88cc3ea7cd2637e40e452a1e22300206ad39c8184e2bc51093fedf29d8a9c1b2b71d21ad7724c33f6d9b5007e26c1757f145987f5410c90a89ba7b98e803c0acc32280c17789a2e6083d9960b4ab82411e590b60213dde2f7fde284610b6321575a3a3d64b75f77a8f3d4afbc55a879814b5316acac242ae011b2466828569810ba0ea0c95b74a368a4940541a75280d4019e1dc7775622f462c9054b50f4cdd5b982a113f9931fde62e742ffcc76e28bd92fd51906b1655ce469894d7fd78f930047ccbeb246418f18f36a6fbcc5c93e1077363464aeb9109020bc9df796d594d1cb5772bc356b8c64f751da2e62cf5e88362a5d5dc6f4c652bb6a2083468344887c42c54c7713f57c0766b802dfd78d2954365461ca4e62b7a1256bef04f94f97611d0cf88e69adc164cf623cafdb9f2d14ade3da5926725c71150c084007504c746507cc933b6a03a56312dc80c620d2c1c65d3480f9bda8e56e7c7a822efc3f881453b8351a8ce8d7da812c21959e79f9ee75b1d52afe8fe5bde6b1648c84007abe267384b3d9b23ec16a61aa3b1075b025b098078af142af1f7c08fe151cbb67eafd990b4616ae9ce4d08f5f7ff2ebbd65dff7bd3cb622f80514f3e6881d21f73a5d5551be8b607fc920aca3e309770d6489c5924b3296ce0dfd3a00ad274b85250bf4d449d5cb7b93c36bc4a1fd54bc861ac15e475949cdd6f94226e7b790c2cd84bce663e4f802dbe18f3af3550bf65cd045d0d5c27002536e1473c30e4fdbd1728ecbd868c531b35a2510cf4e2e2566a8b4520922393a1abfb172fca242eedec7458b9b14bcb11a79ff50e8eb2c4999540515e89b7e409569c2b56d2e6387bc2733c28b13bee780187e080be8eff379aa92c8016ae876b5b8a72585bf24d19e67fba93e3369ee61ee9e9a1fab0e955f5d94ce4da5d21bb31ae3417a1c2ba78dcc6f08428b5667162f294b4f48d34309ac28261456db57bb4ae62f2c156bf0c752b76c1cd5751cb6937ddf6e3ec0924aad5a3f79b01c848133b4a40616757149da1e0c8dc4cf9f89bf2adcbd90ec882163e219de0e0187dab43d5c35bf6277028cab610e291718d76b213a382ec0bc8890202f362c609bfb9de5e6a46cce9786ac2cd4810de5f9217eb9b25d08bcdf16769febd644a52f9cf12c49c81d36860b12502545fdbb01a7c11b2ca8b4b607399dafcaf9ed7dadc8332c3bb2a49ec611cd2276ecb9de9a3d7f0efb373ed3dde04864cc782a7b81ecab999af57992cc93df77b2889d28d97d44ac54145bcf16c15d93cac62078dc694c4d34c018b579c09e1642c8164626fe7b0019c1abae48d2db7a45baa72309521f4a7910a2c4e769a64f137eec95af8dd03216a70d1399e37bb8e7740859871fc1b3b365237c33fd67c4a29094efd21fca775a13f9117b6f095287128f9d2a7889897e5637ba7c27f0be8127e6c5312e66a07b55983644d4766e498b286052fdcc2349004dc8eba24219103ebdebd5763ec4f4bca8a53153d5f8e5076ed5c8c07959ecdf387001863b376ae43ebe022ae1460ceaad2a99312ab3fc71e33167e200eb9a75bd1877975daadcf1b3d931f09264d21d7b00ec60934208f289d5612b5beb305bb7b34f85a6611747eadac4cf000d155cfa3ba0eece065edf1218e60c60261a72de56695cfe4347541c66882cf44e4824afa30b23bf9512f347cbe9291b5e257280a26fe0a17cca998560a53184040d65fa68664c5cb2edfcec39c72992ac596ad5a8383e73d685ec2fb403f48272586a668bbcc311052c716b9ad5b2f1bfd2860d27e2bb85db4a7c552bd28f4c2bb3f8422687e95eeec515be42293eb95c3e1fcb787fbc47abf57dcfefe52e0f4981e7e6ab5f857fe6912c09bb8fbe86e6ef3c7519fe6fca9975adfded0fadcf073cff9c033d6f3afa7eba6f548054bf8c9c7b43e1a71d33a50f1c4f33f99b17ad18f533a20380179d63653f7f1b2646681fb223779a2c9adceb7afe8dd8f63b2f794a48c3eabe441539a55c709650fc6f6c62d74b55be05a30d997e9c8d085c04e9bee63e6e0755b13e8b69081f1b648b880b43a931ca3b70f337a3dfe79baaaeb87dd577695f7ebd471bd6035d2f61f094416d901035bf2c2f93a1b4e860a92386d8236bdbd0a35589fde7fa60fd0aa9678c6c0ec18c28c634c068094ddc66f805888abae05eef67c12c911fa40a7eaddeadfc9faa31f5a2d13c820af4b15d1664c3bf1c0629b9f5c22df8b2e6614beaa81de8ac6c4a397e4fa8dbb46e2cb43ab2275f4e33993306f518ec2b19bffe011ab37b06d93f7cb9f45a528c87f09725a4e3d9140a83e4beb4c92992019b32a9660b3e1ca361d3837b99796853780d2a36982788c45f39372d2a5d1caeedce8ca8e2c12c919b6a11285dcba0ee6380969b042a9531a54c252ebbb5787c07bcc6ca0456999e044b3ae7a8089265a30f98f0584979fba67e4a522cc64dda9391bb5315aed3bdab5a23adf90b5fcc773f2017ff6b366ce845c48cae3997767e695191177432454e2796d9df95c5803b3eed588cd327e5d7b4caf0731b16fcdc6328d07c8c209bde8b5408996ed984e1a4d945f46895746bf0acde0d2c5c6313a2891a5dbac0aae326aa1d1b9d32883c054d9cbbbb9ef3114840cf9f71e26de30146f6dec953a2cb4cc3e830c9108c63b0f67154e79aac1403c69292b3c7ed8e306a409724a7501a7acdb76692acef922c16a09582d6e8e113fde74bfca471a1145d102f766dcf2c10263c1ed76ecf02d5bdebee3ce19f70ce5bf4ba32996eae2ab5a6747dc07fc4290960bc4e7a8c892c42ac811c1dd957c7eb41d0b93980b2fa7c9e47a7762929e690cadd4c04504af792265df48812b37d6f28cbc19679361f8e51fc2dea257c2e4965cd4857e7d449049297dae5ee4040137807dbd6ecfa3b2e087dcb946ba72f934f446438d3edcc100fe7b58d0d93ac045072ee163fc463f52fa0aff53404e8d10506d1466d00c736720f64e7abc4d42075295a7ee64393c76c1279a2f03697c79d89a451f97b7bde327f56244b9d8ee959902b32d37fc4a74a939256c3410497717c7d76bfcca9be30d0096b643974e8f9c183161e2d8ad2a6acd98c0bf7aabf19d4644bef3d3e1ee8883d1bedde38d783274d4833b44def14f67373064d798d195feb7ff4796d37661647ee7fc9647ddb3f01adc158c0cf120a537428b7c2b20e61c1e6951ec83489f6ac45377cdbe0811cab3e1497a269beeec012fca53949af235d5aa49e5738bb30aa133759f1db822d645c47b3da30661424f8aa5b6041d72b29e9f75f4950784f3bfc4db644bce7ca7de7414c544c23a8e6a0f94919fbe4aa35ccdf3ca3168e5d0f148764f0258544c7bd0344cb9dc37798e9de8684c1411ba00e0f82cefa0f9eb4abcee7b010cbdf4d55d9ccb952b2083b46fe74fe023ecb9766cde42947443253f7eaf10b35b399e4c4dcceea38e95a152b8c1c951c640adad66cc9415bbc096ae5931bb54e88536ae1036c3aa7672707a4215a3355ebac575c100319b736fb3a633aecdaf4f529c96e60f107fecba3ec9c3f7f4c1365e2f76e6aebc6a83b037872b44b03820a84f24337d80664a3ed24e1ff7a7db43cc37366383566a7f222ac442478e8b6a0a3e684da16a555375cec262c33b0671005060d69672b28efc54eff0556e5811841790731dc15699adbd9fcfc9e001cf3eaba1b880995d1f3b2041de61368396e2007abb891fde4298506bdc4d89217210a970e2af5bf02890d168fc76e1300eeb84aed1fb08ea762b03b2514a0c02fdfe0de1b28e01b136ce9b618da67c0083058ae51838949e62e95d58da1173a8d1c4d010e7c939324d80162db4c524a442a2f428d3c18ac9d250fda54f6abff43c488095678afa36da1bf71c0a9866a1d2f79686cbf3f2e682023d31e30fb3fe1eacbd9857e2c6322a731ad2fcfd57941caa69edab5d6a5b42ebbaa0e3be19211c079506b16cbfac6bca5d4bff37447d8ad2647888e824d826e30c9e8b48c80e352927a5601891f4c160e54392ae06932c5373f8653c3f72dc6b90322e6f1f555934b05387672b0f535188518cea81d54d0d5bb1809807b731cb94c61da81fe7ce26a453222f95925914ecd82c81439152e80059ab7ec8e34b67cb44cbef65ea08a18508f7070484018c33b51496fe50b8600a25c7de5ed45648b336de385fa41c42cd8f248710dab6e60829eeaac4e0780b7c92f5a7878ec8502ceb6df56f08e1895ec39d4fbdada03db60f29458a9354e4efd6d9a5d8445b21165662d9dd455fab364ee3fbf8cae65617ae91cd0126c5356094ef17d5525a7643da1e91dd73454c6d4eb7d8cf03600601a1799416ef7c9278e1d6f9bf3ddfa0016160c0eae4b41197a274f56c916f3ccac9fc2f04d8dc5dddb542e19837daf2b418be81bb9eb19b900e5d9197fbaa7ea5c01c827399fe212445aa8bd24629651cd7d6dac0869e33551077ff68367a704f90219404ecde29ca3a611e23c0e8b68e52a178f319d28d55e3350f01bafabace7304d9b75c73d8e6fe11aa83bc1032bb5c49b2412ebc3e3350ae06242aa34fbf58d506fe4191ff70404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f", + "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f" + ], + "measurement": [ + 0.0, + 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 + ], + "nonce": "000102030405060708090a0b0c0d0e0f", + "out_shares": [ + [ + "3936ef72478a208460a10552f8acbb4b", + "d00477bce97b99b5cbfcf8a91f60195b", + "08482153293c3a8a96ccac3468243afb", + "9d0be62818287a7e054de93542d95a21", + "0562502849a4d7af989b825403b19b0c", + "f1d5db7824cfa7c1dc4a0bf5e2ff606b", + "75e0fd84de5cc749afd9fe6cc857a177", + "64b5ad3e698c02c90ed5833f72de25f9", + "7eceb8087bc8b5d1bf149bd4c4fcae19", + "d4d2d868cd0e94f2d7a994bc6d9a9bd9", + "71c6cd0c169e260325a5759cfdc742c1", + "2a1c6403ed64c6b8cf85d817839f893e", + "da559cf5f8e0e1c71b22f2481e07db4e", + "c2de036b739bd60865e05c37261e16e1", + "deec5ec605a0c8c893be04a53ab9936d", + "426d68b8a2a23034b6a1d29b9055bc29", + "1ec53a1dd1c612623e1458714e2b4b78", + "422aaf9d6a0e566dc98357620e8f6ad3", + "cd02d874bd683418db2b88573feb4f84", + "1119206c3e1e7a3c4c7bfd60380e29f6" + ], + [ + "c8c9108db875df7b835efaad075344b4", + "41fb88431684664a18030756e09fe6a4", + "f9b7deacd6c3c5754d3353cb97dbc504", + "64f419d7e7d78581deb216cabd26a5de", + "fc9dafd7b65b28504b647dabfc4e64f3", + "102a2487db30583e07b5f40a1d009f94", + "8c1f027b21a338b63426019337a85e88", + "9d4a52c19673fd36d52a7cc08d21da06", + "833147f784374a2e24eb642b3b0351e6", + "2d2d279732f16b0d0c566b4392656426", + "903932f3e961d9fcbe5a8a630238bd3e", + "d7e39bfc129b3947147a27e87c6076c1", + "27aa630a071f1e38c8dd0db7e1f824b1", + "3f21fc948c6429f77e1fa3c8d9e1e91e", + "2313a139fa5f37375041fb5ac5466c92", + "bf9297475d5dcfcb2d5e2d646faa43d6", + "e33ac5e22e39ed9da5eba78eb1d4b487", + "bfd5506295f1a9921a7ca89df170952c", + "34fd278b4297cbe708d477a8c014b07b", + "f0e6df93c1e185c39784029fc7f1d609" + ] + ], + "prep_messages": [ + "ddae8205fffeb50f2450fc95727dfc41d71dcb841757f478ab77e02e4545a1ab" + ], + "prep_shares": [ + [ + "619f618e16756f2323725b4430227c83ea1efc2cc1a04330815f2cec7a888b560484dfcd9ddcda0e4ddf51d852711fe43a0b7efbb1defa3c66af1c6cf26d091734672e8373cbdcf235a8abd578b82df0c74f9a49319b71aa0b1c39b70dbcbc216121c5777d3c0504b7d7ce46aa677a1fc9b3ba92930700f0b7e162c2b1bc2240436f8ec90ebd20f4d37f348dec1e0883162c027bb8ea39e4f4ca7e709c1ad296abe0c55d890457071eb83e6628ef66e12b851abe7d213ee047ee07f821052179a3d7dbcabb912ec159c80e36f42cf331dfac22e094afdd49e3e1cd6bcb67b96374f26ba0d42fd1e51a250d71714e5e74691b1170bca01db282011ac022c05c92e3e3c317b48b0da5d624fedc94de26ca4361464c7b0f4e4b05703a9871c0a9271cdda27e09b4b3edfae0342504c1a83494f3246ca68816537e23859da648f3c3f0a64b25576fdafa8c157e03d5300d4887cb5a71bd3c4d224c54670f8d37bbfe3792d31fd5932790547cd1ed4f3b025b2b936144c5eeebe7ddda77774f97f3e8b32e8a1d6932460a742d8e77df07d0a635018dfd77619c3f8998c4886c33cccf2838dd02830e153bca98f9aeb2b9ca2fef59540309a1c5dda1b91313115416f9c3af99520cd7222200367b2cc44230791432ac061d429660636e46400ea3e7a177fd272a3413aa6f321a82382e1a9eefea60362cbf5c3461cdc2ffaf69912aea558c078ca373f0e49b6bfbe5e2df04969000df5af00a548f3c2d18a9161b06734fdc51891b3e52920c572c1c964c3a94734daff69d4249757a6cf03d6b792e64b737dfea9c8a55eec3c85bc910a8d8fda6d9d86ba5a0e7a7e41ea08c7b4eac25e4677f3f80c84490bf3412be85d996242534cbfb15eae3bf8c631e9f3891bfb57a7e166b971f1930876cd0fabcebeb29347a145afabb28281fb269e23c3d7a81dcfc8eb33a60d9c4484c7ff7aeaf2368ff6c774b803f857c044d6df4f874aebaef33c8091532ee82639a1244c758a0642665ef6f460376b200cb5d40b06b554bbde5494a66fdc0f02b4903d5cc9bd149ac2dbc5b3b94339e9d97ed89b015380e0266afd02c68618ac91162f8edf64500849331eb9ebc1cc399492ec39b6e52fc75e05acaa1598b971177915f73b811cdea430174d456ef82c821255d8a1f084f6c352cb8fd8753e19ee2095cb5c812b2012a15ab38197e5ec9b1af7b0413ba4ba2265f797ebaa830bb7be2e3e34b5b4a533adf72821803eaf420fca94a7d0c372ee76faddc389e3d3fdd87704cc7222cd8a79ff65d6b38655af55c6e3f7580e758239e50e5e111ac00ed73d0f35a613acd1d95dccb2905b9916300704568e7bf1867ba683a4f337161a6d33aeb9ab8d38b9c6b9f4922e26412dd6ede1e79ad697549a61f991581542eccf09cadaba3638d5f8a6243e25ab2536e64451f43a3f0961b0e862c88d6eb3dc99f4baca6fca33f10bd77e9ea394d9c7e8ae1e7de4a855a87a8a771529ee18039b8ec249001cd77f46e971ca7f371832397a2875b1bc1bfa53464f86172ea497787858234636f14fc2021dd1e741adf6f6503b57ce8835a7dc8616be04d863f82e18327ea1006d140fb509960a1bb36e0ec08b5e9304edb7160ea6c4905857c09f1cd084660aa82955405edbbee6f1d87a64081e61a17fcbd97c77d5426294b22218c016b65459e81df978a307916b16cc3336b0b3fc056f40b192cfcd5bb1039729d2fb2e06c7f7ec1befceb1f3726855cf467c4607c3607c9abda5d48b4a836bbf5101e26d4eb29844f3eb016530655dd0ca1ee79e82d62e1b2218ec5f8ca2430e779b3115bea297d5147e110723ccb708bc145613abedfd530e6effc091eb6d671ae1e10f984ead6de9260e370e0d95ad11173975aa110b31ffa7a1b00d2ca998e28247226f3e3c0b5b47f02f6ce071a25c8e16036a3c3aa45d9ccef77865a8f2e1c7f36a40dd856d3c1c9ef5b7ce193b0c401c17ffecdc30c67f70b0bde9d904a7f50696a5ec819d090cee606d65c848543d2e656ad9ea2ac9d6a1d8e1c65812288d63544b2f4f8025b90fdf003649c1f7c48c62758005519057326df6457d9669da73cee3cc71553b0a696bb9134a6b13ea8d077cf03d528d66ad6727385020f21f8a350805a7ebb99f1e3d63a140ee525dee0871846bf26419725fdd59e13191632f28c8e1743ba4a048a96cf70779ff4e1745e404c24cfcc5d2856b6888cbde8a8c685bfe812d1fadcc2472306528f98b123f9ea0ebc415adbd7c416efa6fa4432f0443877637da7ce9221df5a30713efea99ac9831a4000454b29bb2c545bcdea4063c07780a94a583f0b25442726b7ebe1bd41f0b1204bfbbde0110b1ee4832979b66bd6b4db7db8c1ee6fda355d231469b9a0b0cd086ac7cc7756744b61eb22dbea7146a847782ff2642c01d3bb5225be1a17cfd46424d9ee46c46f217636cd2cd96f6bcbbbe9fd0e1cae0a8717e5a0c75d3944d421e2a787e2e953e8622f4ef2ae0fbb50241468c847864f3320985958bbaa3eebdc98d28e41359833674aeb8185d7669d25eb3ae3a159e363e548743bee53df5294fc64e3847734f8d45e60ca648e056efa64b0040715db8dc6d5d055511e4a004a408c9471cd5ef7a8b9315c7f624389bf6d8144e640ccb527319098a2bcf33a1745ac4b3c7e5c6eeff29e8f57a2db3dd78601ca07f837409185b5371dc7ec45c565d4f509f1a742a4af31e0577f939410e05da71d000af231c84eb7c3759efa7806d4fe1558ca45b47395bbd849a283e29aaffc1bbdd4ef28a7cfddb2f5ab3dbfdc3899987b4f3cb456f299108ad397c43980917846c223b1e49c416b5422a9be29ae2d55529fcf46c15468953e36029c16f911a702428580e7c08c0a1259def858fd2bbf5b3272b88a625042169aa11942b8a90b6ecf2e183afdaa3d5f5edf3623e5943ea1f4f6de1d068fd1bc15405359b3ad695921efceb63f75328980a7fec4084b0557ab2f71c34d2f2f4811ff74876ae3d771fcd533b4120a6a2d1fd515d9625328ac307eec8c47e2e15b31f626a2421669d5370a298836fe5fe89daed5a843ad5d5545e83394e2f5198331a62e72d8d3c2f4ec23c4237f7b8ae8ef4ab5ee51526b48da549748de72e09cefee44c6451b9caa11d95846c698c632fcf87eb34f8b0a74b7bfcd0d2ceeb1b24c122883dbd3563d5678840a41d9f2724bc4d32dc0ec2cd29b758dca815d88d0e0e8b9b99c67ffee72e6942482f9c87f7f778a25029810096402582dc817b6c402a9d786f5a4904332b387ea646e6943c0960b24eeb0d39ad8fc1e3b29d3ba5c6f9a0c7a93b7375517f1dcd688eeed80e87c52f0e813077e5f1f2b1761b21d26c46514b22c2f59bb72c8626d6972460e90b3e96aa40c2dddb2b37225cbaf52a90291496eb6b681fe01162e0e3c6ab8c31341b06e0a11cd58b1d4147d433c5bd90a08e40d5a6595f77d1378c6accd8e3f6159a4689b0de931585584cb0cbf69adbd8759d0d2e5f6f7cfe78dd0b4d8dd4e5d4810037affd00a97e8799c5f4e2d1e344ac2cdc5dc1de4b7c87b25139d43aa0eda5e6f378cdbc55cce1ba9b47e221c6009b444bca560638e294a35944769750172d7fb5edc4f9b7b54bbe154bff7b6c4c13646a4bb82cb2e22622de355fabeead29ca7d52f0bbe110e29ed15abc0a203e72638e633e6a82bad23b0ce1fbc18a0a546d830e1e8e293e99d55574bca84dd515b690e44f11dc37cfd77e8d491c1514a01a226586b64b4ad1ea5860f49371231051e6b5452ae494ed9830a059df0350ef2af6d03241ba4a7c5e5e9d688ffc4b0dd904697ea576ddeab78fe8214b1fd5fcf023dd9abb02cbf7b2b220eca9df599f6bc2e8416e809c0eafc21c5dd45ca1282bc6fbbaede8951b072fb25ac28185a3c83cb9f41162e002ff692aabcbbad85aa33c753d95549d293c2cd40602fbb0977b5aee779d94955019627668a9524fff80ca74ac956f68bb2b5771f67b844b18ec57674e09b8dcd1a0eae0fb748d51e3cfe0ab6e258be91eec29b030f7df243593b0b1e82b458abe2c73f9cf030036e589bd9ff1cfecf5bbc72a38cee10dfdf0a9d637a698ecf0437e052393220707ce590682f9ea498c5659ab5911d09af9338779f7ec5570d075155e0a0accb83191f681dad6e7eaa1be92595a7ffec8353d09e281c4e868d5e8d60013a7fe2ff26e08852e77eb83c8116a9acde1f7576aba1c4b334ef38dbbc3a09b894ce098091d47f3c4acb0c88aa3f034333fe469c1ef136f34e45b3bf62e5979c22c400935cf42e5471bcb654c972e24b2f3c46ee8031a294ecd6894e4423def6872443c26a33753a6a2f44bfd119bb8b1843a540a8d0bd19a259e79d947e176a35eb6290d7e4a6157bd90833555c33ded63e6705bd10f5f29a619bb4f968b2d43652347a1c1ec66fded8a4f47073b8022b8c44e0789ae370660afaacb4816893d815600992bafd3883116de7685fa6e3a6bea58528067a526055461764e97701a68d3dd9d61c89b3b6d45abfd48b905e9a849e16d3aa8af46019710142a80bb7226b66917025341ee38f73f1fc12b078e504172d980a7c50698751d8953c40c23ae6ac546334a8b35dd540ef3bc901d6dd432e7e1ba2c32148e15223b496683abb5ee69604d2dde94813a2338b0ed4082cd077fd1047a46712e630798d8a643e731998f5a5a57d778faa1a47e9f9be474c6108c9b38b0292c4064501c81e50f6aa18d29f24e7a847c809ff94e6768e6296ab7b0d485a408121741a17da6543abd0f8555ebf6d52d6c0de5d6122468176fb7c2b96cfe934b5d83b6fea096ef87baa867045b9c168f8738a5231f7b45486007540d301b2511854e671c3de545e1b10651663fe4ceb054f2128230d5ec667df45369fc94aa2796e590ad0ffeb615ff463aa6a7959fd83aa20ccb1958deba7e1ef2ef7194411f93bd126a1092c032ad5232c8a28dd7d2dbf9ef527bac17b8223d77a2994235e8319affa8d2672ff0e5be8f53d142840ab1fbfed0d40cff138466084bb03096b5c34aefc0d30c8fb6efab0227d53defd21ad655b9be07e8ae20e4a4041f374a63d71b70a1bfd757234f330d8400c6225a9cbde8341c1355446d4e5696c185d569dadf0c40099e2420ba38fde200360853efa3619ef3b1ec177de9acc52c79cdc116e0842d899ea16d3d88288f06f997e204dd83b555ffc6f2bcbd834bb38e80f9745292ac5b2ad377460b5015c9128dcf46830659fe2f3c3aa788ab9c27f7d39e33db98d9ae18f747713387446c5fea5de4d4c5996d01c5b2fbb8dd4554b8e7ae83b09fda1c9b4e0ce2c5d2adeb84bfa89abc9963243f341bd35bfd673cc9032242b1764722e2bcbc73dc2fb54b2911f10ec8f1aeb2af03d7128ad0ffab14788fb632238589733bb205ec22de1a01087d570e703ae61bd062f39e09f59d7480342ca4e8cb5ea161cc51730d2c1b20661e628358f5f13cebd2358c8440910bf8e145389e1454d742514eda630ef9cfd10b9910c056c8ef959fdba7fed53fadad6fb5494e0640f610eb716792029801821f534e61b683341305e99f5af3f654900cb8cfba26aeaa8dd50102558ffeb492b5d5561e80e6165edea061a58bcf03204106c61c944a5feca883a9f13d8add9b7e3c73b4fdb80517cb0771f52392f36fb0763760cf16a44ef759c5ab25adc2639b3111ceee925b0b874fd406d9df4634e4312a9930da084ddfd98d41f7ad3a2b7c152f61358d0c65a2189b9273de94aae89c20ad7549915e3fa31e9f99ac5635711b9dce5c60d77f6dea6c8912e106fc819e581268822a50fd7074cbc517991ec507fbe1133d6593f0a59b4cd84e366fbf2d166d0b6bcf2f9aeb1fbdcc326a9cfd8528a24b025751a1dd9d0bf3e430697e5d0d1b9f394f25771485e3c508a2772dc900945651d5e7867f62ab8e2b7421c99f0c0aafab0ff916b548fc7bd63fa720ccc453affa30e1771bff45327021879e6829897cfe983ea9fbdfcf5182a44ad12da50e0bc6166714293bcf5cc27da033c869bb5c3252b964504e218ddc8b105b7b186ba9db199fe005ec42644dff1e6a47600a65a61b0aeecf388251e842dd137252ff67f8244ab26a3378f06f868e37f22732931c9cc0f1d3b4640270f5cb6891157868523e07809dbc20fbbe26421ef0abcc50752634cfc1f7e285c3fb83b628154e9a01729079172ceac3b3284f2059eaac8340dcf3bcadae65fdd4c64a2170800353eeef2fbc92d0be9457475460b7f9206884c749b06cc1812ecfb81fb5b81f4a09994dbaf3269ef7542b7ce01c82f4dd0ec8c795ef3d371f7356d0f4788300fd8935a5bd616c63d2ad605b63f1dac5958d4c8b5f63748cd02638402f5143690fed457c257dff849de6185355eac3c9959bcff8bc2414b8187e624821f0a63c4ad89e3342315ee4d45dc15df3a73f9938cabb15c981bafb6bea7692419c90913f7a234cd644d6f3efca96175f95b4da9c7b66f4fd71a7a22b389c47072311edeaf6251c93fc288bc208da42d7583b9c6eeaab229509d8543d8cf80e9e0b2df7c0a8dc7cae9fcb1c88f0c7ee7df9977fe16411e339357a025ddbe83d7235ea31f94628de3a2ae7c6aa5914a2f9c502cb42ef65b2a5283a641861e6104c678826fc757edbbca55e5314b22148ded19aee7511133f5fb4a1ac76be1d2d2b367d04d7488412dbaf6715c09c513de33825d82abf061db52fe4b40da1f0fe235e3a52eb1ee1bc4af0f9b4ade63d99e0f3789ee415396e9cef39c5153eb7366e207ce708d3d6886732227ac594809d1bccea8284eaf15583dd624fcd734879a4fb021b8f308c78bd4e962bee9eec92254a9667152970ca224c76e590650fbb814403b107edd4656a06f579d4282b663878ce0041db3a526aab72d1a2e0f66cabafbd77e81e1fb96da185cd699dc3a298e45beb7c28d5d832f5153ba7d3a50d4f40b1b27d9a0d7c48cb23f4e0185ed6152e4e5866859adf0dca96b8296dfe1aeab5b756a67c54214e17e9579709e702307377ee80d9c5c3d64bb3978e06ed5080d8f3a2977d9be2ec50e0972b71b63c5d70214a545ecf88e84cd30af", + "a0609e71e98a90dcc08da4bbcfdd837c270151064d651e77972a2f59769baebf04aeee8a0f13dc34f5165cfa20604fccdaa1e4485083f0b4734b0aad3605f0072d8f96a1bdc026749b4417e084a785cc399b331da1259fa2b95d8dc9b9a328eff08e3430b1c367665273838726e0a46d2125980a4bacb33f4193bfd09e39cb9f3f00ed456fbba6565080eea324d2da16641325f85ea3a75534e24e58a8b013ee561f3aa276fba8f8c547c199d710991e6c000bc39276d3662595ab0f2560feff56302749229a869c82bff80d2bff66e56cb135e71b1eb36d9158e3e341d5be4fd01a16275e42161153a8dbdc936225379556030e8f1b0d51b6fed0dc25e6308684880baac10955a9543a27653a151c9d4110931cac9cb4afd992f155c8d76b6d3b039899b4dee1aa59af734c776e1c930611374bd3d6fea37ad709e5852bfd86c039ab3924f95c8b31abdfa43be6b325b3d56e4cb5308af80f7ee7a04abae78829f62d345cadd0ca8bc5e34e7755593c4a37b1da44e516280f016669eed4e3d849240b40a22b779e0faa1bc4b4f7a04acfbcd4e63752aba6197fa32fc2cee779ef43430f10a1e06240a0e089df42efb2d3f50307c605967b06583cf1f2fa9b463b5627d5290c39e7bb39fc27a07d82b006ad538f9311da1409ac05f8e22a843a940b758a0e46761f836bc98b6486b0e98ec1fa33468135147543a42308affdfa0f61a9323ca7c29a27584d4fd51afb657994b16bacf055d95b06ba70914befc1e62b4292e3a15e89d4ba5895515cb7cb17747e8e9ca277101261bcc5403c1e53b21a62bdd87f27f84d7bb638077eefe8139bf177c21a545fc5d638a094874ca6e95d12331a93c60029d93557275b1c3da9f1eda2a0bc7d50fff9a9598c0f32181144a98a8be3b39f442b88e4867e7934525734dd7fcb669d354b434b19db5fe712f964775a61652d35e4b9bc17850d74f16c9f4bf24b255131d2cee403a7b415080c6b4e896762097aaae91176becab9341e8d6e7969c4b113418a9b8509f2b8a25686b0b59afdd2025b49a21e3e391e0bb41f1ec5f32f72771c5e98d9fe1e87802fe49fd6ece8d79a2eb1cf517a1be80d312e305114181c4c3523bdaecc285b43212c4d36a781c1ffe9bbf6140d2cc293c5c92b444127381bb3dfb1f5f75714fb22bfaece6e4f35eace08d5af56a59ce502e24157f7774953c41dc6b7b950af213379d846ba3ca5cbcdd624b1be07fc0b3701b8e1e45878ef2c64d0eace2cce19d07f89e68d9ebf488f295f8847ebb9ba566bd3baabe4a0da0df3ff7a991be191c9ad8ebd0c051ee0f19e5f71880fc902907e69e7a93e1249ffc814ece3aa11b248781f093ccf10bf6f6b1edf4c6cf7818013fdf6796f7c4e0ea6363a57071dbd9053181d3e4dc20ef664a92c90a5ba1a5264b02dea2156daca5c111d11552c18bab1daa2c5fdd366dd071ec56efc4398f62498c651038ba307dbec6b8d0ce9010de66b67fce192f6f1b452f68865541d572eb8b22f1466345788de87b358db90504e83ea1f79d03f420067940077d940a5b2be581474a295f9d463d9c4ff13adab89eba72e471cce3d32a770e4088a22198ab5963cc7de78b7c8015b1b8aa99b9a0a01bd7c1ac03f8dc465575b24a7deb8e70fb86521645f9708b614a039e39a68443de332957bac97b525ca4afd4b618456e0848e2db90263ab7151e6b8101f53bf456106644a89928536fd6e19f638cbd0b63390896a86b0b74c275deb253274691d561c89c8ab65f9f3fbda3220ecc488c85e8cb16cc8922adc8a4df453653ce5be011e7c689b17e440770e773df76730ec5e556dba4bd2176f1867ab6ca61f25ce85d2b545ca5f877247acf5710b51c5a95ecf52a3e15b8492af010a0eb474e191ff738068dd11e0ac5127ea1bd39640b9c06ac6f76d64362b138c837f694022c19663d63117164763f6722f1d22cb18ff70f9238f221523821b24c28b13c9093efbd2a2aaf007f4880fe5295bb24e5547f872f56eace1458fe21e175125bec3394aa028cf94f4530f7f1ad386411c98649a5fd2714cd865487d7136f2d1334074c0d69183e2609c41589148b21481223b2d98bebc6405c4a59f5e320984c37a336a654ae468a8806dce27ccf2fdb97f785b8a8e924ab7c612b19b887aedb4ae690939b4a22e5fff2940600470410e2a08021f473ec9fac66a725f98cd346a843691787c86fd21e9a6c1d1acdf66d913619b2402b827c79b431fc23d03fe31ccea9ce6e419dc57a5b1360cb84acc52a719428db7472934ae76a0c4ff2b8f64b3314c46bf852507b48e2a14222cbcdba00a20ce2cec32e4f317c41ee25e07692541ddba1960d01996cfe777b9e66c47940430903223bd06bfcf79249e49b3a708e0bf9144d434d14be8f66a836e17f6373b9d4b9cf3a50c7c7c4c7787576be66eee706a5c7421dce97a908f2b9cc4c59674f4ba0294960e914e14d9af2686dea9e732f0c0cf9262e9a00c4012c1146007c1d9aacd8def8f6efc691231f5afcc9fa14be29819665f6c757410e99b8cc5ecc2bb71b69730e1d1b23ca0e63d183cfb0f55256c61a5b0cab50e5eded698b3fc9e7015e885748c70725d36ef7028c7f35bf685526da490d8899b110d6c360a9ac0b467f22db809b6162f43a0b6fd9bcddda1fb823508089c97b3b72ffb3d23d8ad0d70548c86498084d3a9e097819be95241a81602bc37872c18c4f61dd72d03f2ccd18131daf04642d17429722b0c6e194c7ee867d13d09e490b189fbd1dcdf5dcccd7c74841c99850a4b1e7988df77e33c03904abdebaa41c0adec6eff05ff752b7e91271fbe3a1c7fcb3bb4b8d5434241d2111e4fe7531f84ea79ef7797ac20ef7b27db473aff8a7c274a94f4b11f0164449c3a3cf1b8aed058378ab03aced7f8f1d61fe5fc5b685895860c8b746b339e7a35ca7990347503347f2b0d4f918e6248581915b79d509861dbabdbf115cdcff3d76a7a50aee2cf51fe2bfdc956f1b207d38eb6631277d9d0322ff7bd5a2fc36548daaa4670fed6b11de3caabfe3ccd31c677de4e043a2c6874bd22a5d9f66ea57bb3d2fd52b7a8afe0242ea989867c297384817d90712f40f07dea6e9e4d0f5b96603de6cb7cc1517ded6f613d5c7ab93e30c3a32f549a5002b3f4dfc68dfd2f0154f95cad8937121d6f4ea0ebff35533d708cf47e0cda15b24a997945e3c1e76a4a8d16938ccea33a5b06ad98fd1b196743dfe4775cb484a510031e96f7a2a3c8ea887eae13f644aeb8f6d051fe9ebcef61f8b43e6c3efb7900775e5f78e3cf214b3b0b0ecd17023415467599be6683a529141f255c2c2ef65fee04492689a91941bb8ba8ea1719e1b15f24c7e5f7c6a0acb64aa6a7e3f2c58cac384cc1e3f3da1147a7551fef35439de950d384577b583c33d4030c0ef574e19c445fec05ac6829dd3fe39bc651aafb3464d8aa5e9e1ae57cf3c155f6b66610de68b9a7a02815208534d44c439b73dd6b605fe0736e1632f905fb2d74bedd403e11b3ea5bc1399d13bedb65048e7628c36acc20be45322b5df053a4bd1fb94363d3a79d4725b4b9ef783b327b4d7cf8897aed7a71b342bde458867fb51ee0832f7ac510f92a90e1dad0dc98c6c53dc812c88677ed330d8a1d0f788a94ab4033839b027f05224062581eda49bed05f3d324672333b6b28f77ee8e024e039c3af1c8945fb898c3afe20143c3600a04dbf9342a557c29af74aae4b397b4b17da92992623b656819314f0662d5d9af828effcf88fb58f9af1de179f68492e1ab5c69d8db1924ff245a59656924ed491b09b12bc033760defd86820ae23d19b30dad03d1ee07991d3f6254c332d7e342cf2f3789b6cc97d663927c863251b6d80a9b1e59a5b69c61b84ca1a2b78d7ae8b171d94137190d42ed184983692e18285f115f2f9359bf6c7e3573a40dc20d11fac4de9fc51c5fb8f3aad265e53df54684e125f818ab02e23536adcfd448c510d9e99d59024bbdf880acb1aae934dbc8f6e70308fde826cdca2fe2c13f4cf4d9bb2b4cfe135c914302fa39f546b527ebde60594deb2b969dc6a9796facc551419365eee85fdcd525de2f5faa2fbaa0a161054da590b37af2aa61bb7491fefb774465117d639b90372dd0456994ce3fc41b4d1caf1725b1683dcdad09ae0f52cf82e30442c90fc3ecfb28306cd45a9dc8ae7658e407800f55119b4e80bb3a18267ee972ab83512772df0a5be7080dc26c8e9479cebbafa729c4bae11e4bac27ea678da20f344800adec9e80e0b75741911d11ddb353c13a8109e4fb26b03033c39e70a8684b36f87de4846ae6d87039d5fcc2309af5eb5046f389afa145c5e0e25aaf4ef4d64c00c5da0fbeebcd4a6a8be3487d58ad9846a0f7970a759702fc0576086724b68927883e0b15cb772541c1b53aeea3aaf3a2a99d1de83c189db700a8045c01fb1d83980f154ed64343c60a561cbcd4238df524bab0502f44a284857dc7acf6346b840306164fc841bcfd585474e3ec125295ef7b84d2cdee78f3115fb2a7cd224b7710d491e514bc72334326e101b143fa72cbca3c9f27a171f5d188b69488ed7b98da9a2c4d9a2cc87164278db7e2bf023e812f3c99da629cee9401dc138c9d57861c845eb6c16504a6d179c95e19a242b3f424b95b0a87173fae2765dbcebd6b555086bbf580b15cdb2a27e275920fea2c801959298095d748e4d1561b8608024d3878388e3cb37412f3def827da8b46e99e0f8e7a978e361e90d97cc4194d475b8ef366a5ba60bf14e52bc90cf0aff5ff3e7d33f0ee9705d1a10f58070839bccc10c6454f81dca58d21b9f3f167270608dca259f1d6f7b765c5ca4fd17a34cc276888d38c89f8d2959072c319fb78ecb1d3b5a30d71def19bdfcf9e8cc28e6f2a60b1b5fb0369fe36730adc2bba19084c06eb70f2c33be34f6cb9b24a84590846e13162db9500ac62701ad429e33184820660851f8d753fc782bb3875c2e59f6d2ce6c7af6d88b2ef2800329faf8f88d34657f1fdd0e3f100838c7445a20c3b3ae5db83b639f50bdc783dcb1bde26d214afdf35b3e879572dc3dbefc824ff3ddc3ba4418298f5447e836e9a86bc5e75a11ec4f094d791b01fbfc6c5df13ee0c9a215b18c8b58ab65af6d0f95f1cc2c999852bf4e17a3bcb0b0abe625b899f16149ce0c3632add25c309d0b27f589f1ec61152060fd0f32c2f085d0581135b2450ad9d0a90edd77996c65ce207bf5981995fe98a9b99c5e215a37d8c10c9590e1ecf35f3615fb3696ff9f48a44ab68908d633662f572ef28c3408cedc84eb50175075467634ac559bc325374db38c96bee351e24283a14b847d8d6715e8b43966d8d38742a41b3d2534ef054f042d5b81584b3ea819a40e1fec058f21957c7973dfcc0d14003a39e26948d599fbe1fb0f67d93d004aed0d45a2bba6da153441e2fa53d7a64ebea7bf19279e85a9878c0b86491f6cd2253b637e158750ccace04b692bc363ee1f9c328f720f0f7046c54071b1299f43c959804f60f927f0212cc71bb5c26780e0bf270d4274dee37d6e065301f0481ffeeb9e47ba5ff30bfb66bb3cc711d4ea8637c0d11296017bdb0e0e9fa5eb91151eb20b8fbc1bebd724b9c46ace8c110c217cc4d7b18c05f156dd2245f3633dcfe343551490440b491c522d53d1128d2793ece73a5abc135d8d123a154a2cbe9cc3af82779ae559db1a29c9e71cdd8d5efba07d185ba4ca01dcb3e638d7a18da208bf7124cb0ddc6f93ab2c8b4015f911bee3ced36fa790f2d570c8b42d52abfc7f041495a4fdbcba388941d126c620c0e06f2fb9662b8dc2c0eb31cd8ae6641708c52716e6dc29e6203829c6d4168e55622bc984f3d60076d9330991c459376c502e3a4ab080110f5cf0687790cfec568130a343d25c2e0d9249791ee991287d1e372502726368e6bae648ee5a5a18ae37bef27c6c1ae629aaf7c01d016fda9e57d73819cd78514e96f0d184bfd56ca36a7833055b98ac57f8c3c5a502aa423aeda5c0d03e2d32e1a64308fdec6e6169eb1f5b9a00b9c7a2ece2a68b57d7a97c831ffabe21ac6345b7f0edcc051ada9d2e404321e26a2ff2d76123fbb008476ab868bdff1793b7d161768f865937af879adac4bdc01eaac68c76aa9550cde6f9e4425004390b62a0bd90f5c880ecf835c293524219647a22295d79af7bc0914deebec4d70a1c41d3593b264ab07ecc9aacb31c7ecceae7e360ff665741019b64ad0115b5b779d35ad0839908d04407fb82dac3bd4848930a860cf7ec2e9c0beae04db95bce3348679f6020977cbb37a855567763260c05531d819e43e42d995b620429131d7d6320b137e24e98598852f6015d184eaf77810d618cf439771eccf457730f242bfdac283e6ec4788bf4d4458b9dd27985700bf959c820b5083b04c40a0ea0d6367cd2a1d5bf04e2c81558e56bb8a6f3a32ec2ab318932a7a5bbabb3b973116541cd139194c66e44aa544a274eae610a2612036a0c80096611a433fa413a7fd16f3fd86ebdd297ec977e8eb42c9ca1dec86a1e6d87f2b1136e17aa05759a4b90b1a4e602736374eb0166f6bcf766eaed3c151da4247d605c340ae30f37776281e67405b0ab2e720b318b13801bf3f8a42d9c2607623ea7c9395856782e755156499f7879c3bc69bba12afa5042b2d01c057432dd4f39874ebeb2916cb0e7c73ce1c5880745064142a2185b240068508f1928909537a7dd58ddf5c7185def62ebe94ab15eafa06f5f3d4f73229d681570b21e6380c10de94cf1d49f116671a7fa54a6b8b6bd801bfe29235128af7e8bd457f7602c91f3c346c67e86fba2a6ca0625a94c811b01f4d2fc539c7e60e8f5bc65a169ea2dd4b5f2846b6114259894f14556da4a65d0d6a79b93edd0375a4b0735bc6fe30ecc6bb4e714a770faf25ed01942fc0ff4fbb93d9000bad716f577f6b937f6a8008d7bd658c050015e6198f534d587c41259fb39bb31b5d4f69b854e64fa9e81ea9ece29d178096152630ddb4cdec1437251e2548fd764599bc04d9c46acfcffb6c26de4f5687fbdece1cfc38b9fa1ca56c2d43de691200cb7559bbf132" + ] + ], + "public_share": "e06ed5080d8f3a2977d9be2ec50e0972cfcffb6c26de4f5687fbdece1cfc38b9b71b63c5d70214a545ecf88e84cd30affa1ca56c2d43de691200cb7559bbf132", + "rand": "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f" + } + ], + "proofs": 1, + "shares": 2, + "verify_key": "000102030405060708090a0b0c0d0e0f" +} diff --git a/crates/daphne/src/pine/test_vec/01/Pine64_0.json b/crates/daphne/src/pine/test_vec/01/Pine64_0.json new file mode 100644 index 000000000..0f01afdd8 --- /dev/null +++ b/crates/daphne/src/pine/test_vec/01/Pine64_0.json @@ -0,0 +1,215 @@ +{ + "agg_param": null, + "agg_result": [ + 1.0, + 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 + ], + "agg_shares": [ + "816cdee58d1441080c430ba4ee5977977f09ee78d2f7326bd2f9f1533dc032b60f9042a65178741467995969cf4874f63a17cc512e50f4fc469ad26b82b2b54209c4a0509148af5f6c3705a904623719e1abb7f1479e4f83f49516eac3ffc1d6eac0fb09bbb98e939ab3fdd98eaf42efc76a5b7dd118059257aa077fe3bc4bf2fb9c7111f5906ba3ba2936a987f95d33a7a5b1d1991d28e5e9532979da3437b3", + "9093211a71ebbef705bdf45b10a6886882f611872c08cd942f060eacc13fcd49f26fbd59ad878beb9a66a6962fb78b09c7e833aed0af0b03bb652d947c4d4abdf83b5faf6db750a095c8fa56fa9dc8e62054480eb761b07c0d6ae9153b003e29173f04f64346716c674c02267050bd103a95a4822de7fa6daa55f8801b43b40d06638eee096f945c47d6c9567706a2cc5a5a4e2e65e2d71a18acd68624cbc84c" + ], + "alpha": 8.7, + "chunk_length": 150, + "chunk_length_norm_equality": 4, + "dimension": 20, + "field": "Field64", + "l2_norm_bound": 16, + "num_frac_bits": 4, + "num_wr_checks": 100, + "num_wr_successes": 100, + "prep": [ + { + "input_shares": [ + "4936ef72468a20847ea10552f7acbb4bc00477bce87b99b5e9fcf8a91e60195b08482153283c3a8ab4ccac3467243afb9d0be62817287a7e234de93541d95a210562502848a4d7afb69b825402b19b0cf1d5db7823cfa7c1fa4a0bf5e1ff606b75e0fd84dd5cc749cdd9fe6cc757a17764b5ad3e688c02c92cd5833f71de25f97eceb8087ac8b5d1dd149bd4c3fcae19d4d2d868cc0e94f2f5a994bc6c9a9bd971c6cd0c159e260343a5759cfcc742c12a1c6403ec64c6b8ed85d817829f893eda559cf5f7e0e1c73922f2481d07db4ec2de036b729bd60883e05c37251e16e1dfec5ec604a0c8c8b1be04a539b9936d426d68b8a1a23034d4a1d29b8f55bc291ec53a1dd0c612625c1458714d2b4b78422aaf9d690e566de78357620d8f6ad3cd02d874bc683418f92b88573eeb4f841219206c3d1e7a3c6b7bfd60370e29f64744052e4898066a1f5ed95a9c87a2b7202ea22e17ac8068e57d5e5af71a9923bdd73559aae107f2d99d1214da56a96ef2ee007881b30271bd60490a3f02b93c6fc7a98d4e695ec6bab0abf6463cdc99639299a3d84412cf18a285241e04d1b99bc97a1f5c61631dcc679b295284860f0d8f8552d965eefb2b58df5e0508b89ac5f81606754d86322b4578c40cdb06c744d96d5b8e09313ccd8550832baa47bafd478e4aff9a8dd60fdb7d773fa0819bc50c1750192bea0a5f77b42817c73024eb8757c5d8808ead149001a125bf1abe3c2a1a3b21022e8af74823587647a01495f30cc5566557c255db583b28fb480568c320feb0ecf2778da69b5632b0e2aca81b911de24abfe41fa3c332d7fe1b1d8b3513551d11c3b5a9adb1bd0b16dc80d31dd19097a1c730b03999e05ae450b535a9e9f90bbac29e55eccfda14c38e35d93c7558d944169cd8281d9ced1773517e366556593c9309016197fd71694370c5187529c8eecfad9da8ba4edc783e73ccf107269da7a039596220aa500d7969ee9f4f224d905202f2decfb4e4d24563a04caf3f7022bb0911504372dd5cd1f777d15fe50514a3d3add46c9e88b003e485fca5a18fe85cb958865a77a541fc19af3522f091e698fc09bda95404018a109b2e8fb4062bdd87c979b5c9f8fd7c6464d086193658a4ff337e107e16a61e6eccb0aaa99bb94a83488a5a1cfba10adec2c91994150f460c5ea15e009b83f458a0e43e4ecd5d96c6424555090a26ae8c1a2295ffa59580a8641e73d92cd7cb548c5e252de0998d6345a7d382c2bd6f69fc4a7f54882a22e722d18b13cf176840dd28cb84729611e98ec24b82889a47b2857ba6f15ece17ce25af84c3e2c6e85c132b87403be066cf12941b8a66e12c7b2d077b592fe0a74ce0f6689684be11ef089deee9aa2e4e1b1a0aad2a3d65784c4b5a1936410b811365b336af3168d157c04e9d2e64fcf1eb0a59a04717b40f31fa2eec988f8dc55d91dec498c34ee13fd3d9eb8ed9f1d14e0c108412c045e76d70605aa9217ad28f8299c1454dbba65b0e94a1dba3b447d472bd4ae30757653d86d1af5bbffbc7dc7623214e755bcc9d1ba110581b3025037df2b6b6caac3bedb15ad2d751c624c04618366c60f0c7f267868fc13338d1211dd8b800055ec676d028feeb5e3c1f222024e43e3c259b6010bdf264cbaa0f97287b1eb086442aced71132aa652e5300805efd3e60d475212ae36ab3b340f05a9d25bcf36681a3d3d93dfd88aef8d5228bf067fe6be9da0a7bef15c365317d23d8a00d717a1bb4ed89cd071bc37e833a6e7b8b0494db9e3fe61a06c0bd49f8edf327df8ddc1f7fa9b4d8a46311d204559e150b71535b5f89afcf5d88c31cf69d9464b567bc769b46748a085c49589d50875c34d325c365ed5c7e33c461e71d6e0d5abff0ece8ef156c5a42739a10a8ddd65e6d96fc716fcf3f4207a4262b9987fcb7d1e90b0297cc0d4ccb01e168dd30562338209f5e8d9011385ded69888b3ab9787dddd8d788003295643f6078d5d8e58fe9a8ca361be9a47e83bf46b2b13d597170021cbcc04a112c2caff969873a7aeef2388cf9e0adc47cb5d76202c91c1ebb1d78d588dace12f15f91ee9fb7290a1f799053d4849f59297e11481517bab71e02ce84f8263733a9f826239842cb22a47470bdc34f2320a7b5af54e770ddfcbc48b08e3469817c18704291ce8d05179c5522e3f1add50d3bd7b98fa0e58c256a52475ccf53521ebbeb5e35ef7497962bf7b87ef7f5ea82002b6782bbb6b91dc52b016bff9d4c70c253e808c600c7a854dafa64d8acb0c589283a55c14a198bf49b54e0e08fc91d2657e4bf66915eb047854b13cd989c61aea44f290b33d435a5c026f557c82aed9a4d874cb68e5a92d8d7effe67d6b16e223f738efa3263a216666b87cc12cd053a1f2da07a87c36890d2f9e30809b8a0f2e07ae7ee2fe0726a0674f5b03ca1d458fd9e42e6522356646ebb7179a741f599e7f0a04eb26d82a3fa9d96a5ccb9aa01c780f8157c9f14f8c150d045d05f66fba3e1f99afa12c3d94bcb94016b8873fd5c0a04639027357bdf1e46af715a0773d2b70bfaa7fc9041bb41aacaeadae26c5e18eaf09a8522b3434ebe173f7273a10bee846e5b41a68621699bef2c6cfa14a41f41b8f6b277888a85d32aaa138efd948e2b4eede89567139283c31c69172b240db9b0e8642302f596a1c482cda3bb6706a9f18cac4fe6e192297053360e10d4eda6ac6fdf5c4cef6d73bc3a3b3642c7fbbab8d8bcc8d50636563ac67338a1a562786833a7b3b9e6a97ddd308e585f04d5cb4f954399e993af2c26c0934c236d6670e6570c8c2802c493ddb95e92d747f84021ecff6e64891a3e7d71ff0ed47ab797ee2b2af5f83bac09b474cfbcc550a898f15dd3256506ce1de3d46381a35b51323906fb3f186e64698880322311a50063094f0231bc3391567e2decb710d556071351d2f80891b2f2482cbbb1374a71a870664640e1cfbca3fa87d981f7a33697921271cfb62890b2ddda06a4deade8ffc4d6f287d916190d56a150cc46240f81fd717506e0933a13fa367f0d80eea00863a62fd57de4fcb5f2dd1a8c99f72457997f6b2973dea688f736aaf26c09276a71275caed097f791fa8808020ab98f03a921e3b000f20c7aa9596fb1c64a85f8452ceb533404ce483a8c49c7677f3ae23a0d03fe1a4e980189d2f538c2dff5377948762f16240a30deb446b9a32d82f7200f1b89e7719d5b840f8c67a240c0c0b0937837ff806ab4b89fb27d2516446829f4de9b034e441a6a2f2fef28d1340f244d833fc54962453c8679006691f0bd93af33df66dac6fe99cfbe7eafeae71314d10535e1b0fc1a18059b21f540a8397575c3bb1c5ecdc59b5ad73bd1a8ac126dcc48f8f3e58cfc3863f10421500fbdb79739db1795cf4764ff6c5c7c05b5246858e769416b8adef14a878bc76e2c103f2909a61dbebf1623d6e66d688a199f4e82feab0f21a6c9e3fcc029ef385a372b5366f04edddfddf0593b42a1f50f2ab9356f954f6b382a2511fe0fc60b0872d3dccc952d2a324a12ca4ba2774e25a16b317f9e254690441ed9857463176e5cdd62857447ce5c00bbdb54845799245ba6b19f4a8b1573b0fa3eb41fcf1d4d5636a73d2da585cc2024c0b1952d1837903364bf936638509badd433129bc80dc83a1f30239d22acef66c1248babc3f2e35e94d2518226c9ae79b5f66259e9f15c91be00eb9b8aa3b54a443b6f6a4a5648838a1c20535aa5b7aeee7f762c4bac5b7c134001b6e156a566f983dddc5cb4a8568661c01c20f7ef4f105d5477c379b32a051b9fa97c8d1722eb4af5d4e550b56214786b205cb65def40127daddd9b0434e61552e52856f8c27f9a8cc0eb584fbfdd461cd14febafc2c6c3163ffe2aa1d4348374af665efa71ed192dd35ad0c468354b3179749cfcda99e5fd300d164c69494a4ad75530d7fbde4c19cdcd66adc07eedd3082b8878aa188346a5075f7d731c34bc3341847e321d6f5197e2a42397dd5ab9f97c1787fcf501c2c400f5e6c8c4d06310270ca6655641953766242b36aacaccc9037118afc736323273890591674804c433d81fb925d95cbb4f109fef60c497c6c9df07e2429232b7b5c9b85ceddbfa6349009582fc1501fa6f6c3ba1919acbf100b1b3ccf58944b4bd8d54b67db7fc4696eff395a6f4008109c1d95b1db74cd9112c1b2e339fe1e4b957b419d06256ae23c4f3c6ba3d29055aca3c8eef965b526ef715434bb3056245c7e1337adea5633a7f0ed7944086f5a00d0f6422994a646f261ce602d5879cfefd9279ac515fb09989952dab4cb7b61b97f8d222cfec532aac9fe270b38a2d80501801cb0f4a2e068cb046f775e8d4d918694b8aaaa72aa83b2d63ae20c746e728c0f80871e165ed152981453a189536685061f0235880e5aee76c3d1fb527bbccd343a0e20c5fe72e0e2824f22f6d9b14e26191d1c9a2103e5186800221c17757707370924a9f89b553786cd92e84b50d8e614c4a89266219969ed73c8a0f118375a9ef3dcc28e858eacfc0dde43c606ad21c357da0477206ddf935310ac1f75b411997c4c45680b8a8ec76caaf8600a65c1c67f349a470684d3684f703d2f7088ab67f6720c048f5816a7814acd41c02399f55e9df1529cd89746a435353f69c539373c442213247b34ae0ac9bafe09323af2114af66bfb7ee8c280d9382090276534586f9989fd7233d765b271365922748515a0701f197e7e4a68f4556b1bb298b02e4aed0d0a87d83c3bc031b4f5e82039c86bdd212c68bc33b994d0dbf346a5e4bb9cb7dbbe2c17aa5b97c48ec48963a9e0b14a171aaf4a02609c146aac82fedb3eea67e4a3bf40c29313cdeaed96cd898a913d301a60531e2dbdeba087941b818ad68bddef5e8054f10caba0ac70ba356124c2cb5f826a46d8c597dbad1162e227cb9a8236fb3f7797a346483f290ce31e7502803c88d827992ad8701abbe256119539ede4b858b4312d67d3d70988a53f94b61cd7c4d0777a8735b2ccc0181a09aeec2d9e645116d5d1d02499338268cd9cd59fb0f9677d6eb8784d9282e00ac2c1b35927960cbdb8187a98d83cfaccb9878f35060c1bce83300fbea83ac17831afae113e7ee6a86a957149bb73c2af02740cd3107ef81ca03060f719f8cd7dd768faff412c656e86b86005808327e6f297c268589a2e4944f5b5088771814852f9f5bb0190cb3b40d05d84f44ed7abdb4823f3dbc248095ac10ccd9f04fb7869841eb3b92efa73041ea577a97b98e1a9de3a92862d3f599467f8f95ce3234f12eb1ab7cdef0402abb589dbe8299db143fcb5800fadb7f7dcc8c23c02c2549b7e773a9448a1a6f72d2ce526394453adf30efdd4c563fe24b21ba52e97253e96d285d5ee44e85fd520f2d78c4b85c50be889aa27b30d9683769c55dd743ce37faf503cc02329c7c105d6573eb11e376032d89a9df0cb0b1ad2a8c75befce93cd16fc30887c31d19007e7fb330af79c42039cf94c7cc0102b332338c14bccc1d7aaa2a0c0aa92d82d4387a3d7a0a364bb3f39a1448d4e14234f3bdd1bfc9d635a8484b60e3442544df843084403ba9a3c96d2f57dc7a65cfaf56d83780a3b3d47b1677f482557df0deb0bb2022234129ffb5d49d16a44da8f7ed20a7f170e0523f695bc32189e97e7373921778b132ab3630d1157e63419cc1718792fe7c47aac6a614f64f2a8fe8939f027594d4e863105427825e726a1cdff77f3e2643613b14c4672b78b89c6b49a99dfaa3aca3b58a01f97617f2d180a81ade2b538f3858f19a61b1a62f7040b585a75f2ca45c2b0bc62358dc54e7a7563116ace8969c24dce20d3d31f3d33d03e63e0d2e7e60e7c6df0365fed31dd1fc17897588bd734d38e0dd9d367f708dadbbd6f4e4d3a19cba003c7edaba0ea799dc2b861a96a9580e70768217667a88353bb4c00f25fdf58fc294ba307670e0afa1730e1d8642175ff42e6f3a85a254260857b87ad6270084d2585fc59066cbedf88ff1dbdfb248e9c030a3718385bc3a9fb9d515dc9c9cba763103da316196bb42bbbb7c35c39f5683542681de9b97c7ad8b375bfde1bceb38dca15ba4dd0909ba0c48271d8c6851b503cac3d4bafd9ca71bd49e5001c67d76e42560ca21230c9a2aec73775df27a1887867ce6b46939d4a2697fbd3a8980395983510b57449e3c6acf27d039847fa82a1fa10f5c9464b6f2e79c364ae84b4d59657e4e86a5bb027520b621bc11001f26a520089c836226de5e8f00e9bdaa98f2a20028d0e1b1f09d9662cd94856f0d4683d0821e2fceb6988f81a9d3398fbfb04ad3384f5f3702fa3f29cfcc352657d896a463909887672e826fa198e33cc6bd30d83911a585567ccd27255af82a51fea83c0fb007c8258d1479d9eba1e87d8c6d3ec18b6bf29efb71778210406bb76cc4a1845ad637b08034818d0ef7277d2b977558ad43ff38f17b2ca30d9c1faecbd38b332c6b08e28eec4e10413d1636e94caacf47896addc7beb06058f84664abe0dbfbd062228a9b374e9769f516986c9bdbabc3ae10399245704eccfb25f4713cf25a439029c08fe4b6b9cf22d60e8c5376a50c1a7fdd0f1fdbc9dfa047ba13264d48a9a167f17762f1506b334b19f9bd02c58e89af5e6e8e27c545a2cad625d25920b6f59ff83f5c2f6320aeb3ddd6c56c281a4088d15b4dbe59ade2a05b9d6347b667d15ab66d4eee0498eb7fbd145b4e2aabd9c05b47c350b35c08fbaaf33d5d2a03b8d8fe7211f04a0c5dc23c22a189ea936ce0c886dce4c5d718e7c42f71e006eef220508db6d736d28f8615f849a8e75d2a4ace26ffc6785af8b453c6d5ed89d1c286fb72505754c0c57e2470d678d131ba1e1908ef9ae17ad2441fa7739643ec80b296bc6a62bea4b59a0fe59bfa8e022d08e1c4be9e65559dc3b38d9b9a10009d14d41010ce38c0d2c25e51f7b9eac2f60ddb5f691260ae6ae2a6ab636e08443ac7f83157f21a7c18c95dcd6266e6964ec876fa9d5df612bf2ad10eae4d993ec1537b1df387ebbfca52ed8efed06573a4f45f5a4cc290a01c7662f57e8dc16f02d4d6df6bd28f618464d804afd302d2747192dec4e4f2e1143522441e7d29169e05adb9c24c9b11b994ebc916e8155c45ebe762a43159b62ea3d37f6fb338c48f5b1b7dc6450125288661af2f498dda8e7d8dfed4ca64614d8a3f14fe8d2671528d38ae0d17cb550f5c766059f2f9a3f3cdece5ce8a78d41c5aff106c0ddb42e7f28057bf10b40f6534e63a53e5435471727656e03294e67e88718bfbb91c8b16d90a1e4df221073b871b6634c03d092d15402a3b6facb547175989fcbd469db5eaf19e3b46e3204f5cf459d5172c32ded7a949676ce85bb5668431eb8367f92a04634fe40a061d80b08fba810e30d6a9aff865f2e42565b6c0442d8665f3427a6fa90856da6fc3cf090f452f2d7662f91dc3a8aa520358b747361d246ceeaf46629cab06b8545aee12ef8a3f8547e192d78f7a9c186d7ae0ae7789319ac3e9ad8064c3f5e5ca1c2de50806f1becb895b968e0ab3acd8877ca860413090837d8b75b3d966a71af47f28bb7e9144e23b868c039d9f2bc030976ce79c5f778f900e93ceec7f44fe118afb5c56fa6bcf0314eb6d813572269daa4b8a96a3178c38fe3d06015ca2d91c4e8a60ef2401ad82626baccdd2f04fdffe031d8562751a30d41169a2ce7f0924ad400c8fa6d515ccc6e1873d01e507ddd180afb111071ba63398da8698840a87d8efbaa3e0e81b31f8d69dac4a560e11ec82c4a188111e0e5870cd20fe65a1a93afa614f12e09a0d65a457ee0c0d90698f9ad4dc499cf8c8072fc59b8b159c3f03717fbb89b8aa7cf10854f1fce1654f8a79771dc42a13c6193c7e7dfcf9aad366415522f7f240b5fdb7ebf7de037c492173b5eee31904fb2971b6e1d67f16c614ab208950b975580bd107698f45c29dc1d4642411e5d40f099bb08a8a0db9eae2ccdd56642e6067bb71e9ebe397689e911540596ba4d3711ecd08cc0ea8b21a898870a28a4682f2b6d0d6216c1afee8ff6d962a6ca0a41986ab7dea5efb86bc5bf3fab6b5a5818eeab0b13eec5ca964836d1dcc0e315d95b133708f79cd3f56e85187e147399da41ba812a6f08388bbc4436fb2b5c4a5b8d7eb240280d4731ff8c57baff7aa9c7a6ec88c3985f2a27a365afaeb1de6394e7c82339929f2d64d866811a1fc23807ea8341dc54694b739fe7244487f0bb1c482775ccaa11e555dae48357ec490e2f713cf15006aea4ae57af14a6536888a7e8be0ad4127ef9b2483b238ee5f5eca498776adfb8b426d4e26e8edc522c494128b881ac6dfdb32866bf8d6584e89ab7e61d917c7cdc381dd501bf277ba1cd676bc79e0bc8c76b1fdcc918f85ff3de338fb6c650ff8294ce843077ea60fc151280de1b31869d93389a1f72ef12493bc0e229e051b4c5918d2617998e5255565841bde5bbcc3020fea751361f992aace7d2acc7426f61a778222dce27f5c9a047e5e911f2c197d9112f76b8afe28b9dca4958568b58dc36b94b51af41c1dd042be3ff68ef56862bd8d500307ad51bb25a0379b32af863dfa5c91bd0584f132d72e5cd9a13d3403bdab55ee41c064ea16d4d1f2f502723a367e9e15326d225195e5df700b6d93ebc81f10a32a943edefc2cbf904d99f638addaeb84a2e709f190fe3ceea0733bfe3cbb582657f2233dda2c544c3eb897c79bdc7c5200a90e51fb3242579e7974cb0d87f318ec2734b97b4087fffb7a1574e0a19fcef3b2c1b61e65dbe9f72ebfcf3bcfd98b0d4e3f580c271c1a30218261a084b2c0ce233870604dce6d066f4d2c7ac589e6960548058c291ebeebbae50db10db816f18d625ec69cae3cec361f42e0dc73043ac75a2f682f4ee6237f468b6570dbc9bc3047e675f83aa4f63e945506f36d579b0e202bbb9e6f25291c4d77c91758767ad4bca4ef2acb63d96f7e83c4dff94c12a6f972041c05205e17294e7d6ffea786bb9b06cee644d650d09c35679aaa50d324408a8db43671c1d22b10743ac66d56e6629f44e29e41dc6c4e271f193d4c27d00c617b7ff18579f80f0691253fd6b8eb7560af18b6432cf5f784dccbfb4f28c4f4b9bfceb2f1f9785dca0dc7067c5c06fbf148a2d468aef4e961779cd65e54224d118282453825ad744b5b6f04f431474657cb2f6c43c6367f858b597693eef3b138f8966936bab73863a90a0270c63493e09afe7015cc371d5f70f3ce792a26cea63696651fa39ea7d7de701027676b6e652513fdae88b2ba306a5c81052334bac587bb80ae093ec0160009c57df67be686d8d1295a3811b0f3e30dcc4b6eb9c2444bb914ec91e85a4a851699dd3e8c29c16ad0ee2bf11bb22cc47c49f0b08585beb8ac6ec368eb354c516939f7cca094d522b29d233b65996bf421d848ae23daa16835a52df8ac5161ac989a149b25b3f9b1b17be77b2a13762ce7b0501bd888ca82289c1d8d458d9acf654e7069a0ac1a214b369d12371ed53529f5127527d75f29c7f138ffcc75f4140d1382d7f03a8dcda447dfdf324dc66d5f898571d3fffe5b5bb55289ad68f355c90bf85c786262a94f39af939fa9438906e02fa9a6084da43e4bdcb9105f1674e6656c5a9e025b0b68123e706f53e7c540dadbe6e9a7a9198ae64ac4b7cd96140eacd8f8f3bbddd5e07520bee3dc324887a78457a439a89127f3af546ed034be628b33b38ad199a7ada205c61f79e6cf514be216ef7dfd8b65b4b36de3fa06af1f58bb1b5f6d7ce13e92fa3663957242763b37678fc093ffc8eace506e3adb6d2dd1bb7e168308773d11ffd0d14a3ffcb7f0cdaad38f59b969b30084ccf21a2206c93aeca8789dd0f65e90bf0a2e9ac2cecac8e51d19b2100cc119e53d34fd8bb3e184b86ee5cc56b645d0e7dc6480f2d8793e86c48c91a772160863b136e89c21c009e5f51ed0b08e4e568546dd083d304da7dd7ce35286d95838bcb2c49457cb962efd3141f5d5771f451c9b1512da4aa638ab16fa067246f4773f465548d4005ec3ff91f467de7a1ddad2ac74b78d55bfce5e2b550a54e0357bcf42c2cd7d1de701a22384d29c6399fae964310ea3c9ee1a31c99fb4dcf3496e99e638c2609a9ca72623765d9ce89ef38283dcaa78dac362aef227aa6045731e76c7997e675677a5f64100c6e9ee17b9817767025d07bec2d234c70933ef7e8cc476410c204102141c9f1e6d083de573d619abecd5aba9a38e7fd4d8760843aabefa8d63bd1c35402ea0f0d260f7ed9f8a78289b51190092d69f05ecfd86ee71555f4a2dcf259a45e965ec37952b14cdebe3f71c29b6e3275db507151f3df14ec9c03f13d8f8b870c711686ce7d36a60d66b2fc3caf6cbf1564a9ec78670d5fa0a939a6c6b8d316d899c9e15440f27bda7f17b92fbec06176dc22c75541c366a497c4d83879554c5185f8bf4cdedee03d0fb7232a98210a7538fda9056c12c5b98df826c9b244afc30757aaac73c243241050ec0f3f787ca78d2469a4f6eb5ac7d9d0b588a87a5699c8ecd66b71b42212ab25e0e1cfcfbf99b6e624da36fec294a557ae58fe3fb9f5f21036a232b3e050595ad5e2624e0c1bcf422b32b5d4036eb952659bc5ddc2a9923f17be55257066b75742b359b2e79c32d1e073f66b1b052d005c0ad71f853bec341228999e9dc80d349e38bfb1f78be27ed717576a749eeaa1f14f1065d4d793f3783bcb74fc5cb16ef1b5fff4079649a63346b2bd66b8ea466f682d087dff16ba4731749f7b7ea1c011f03232f304fcab6f770a362f34ac6df3f77443fa692070373d3864e0694ad73b0cc02c938a10591fddf09b07bf76c651ee5b63abd751d1c1fd42e3f30fde8ec6fb3ea295f6b3534f183fa0a6ddc6ba39c5637c73d808bf15bda33b5602959797ccebaecbf67dcc2a7eccbe5fec9aa624f765e2d4a938b627bfcc7f6f538957b6b0e6e32247587a945a3be4b82e6983200ba990aeef4dc1d47f7e46540b1f92a929d91a727d51d806c39a5b5d1a77d97f612e4cffc280d66182ab1df4119e9527bf3c927719f59a0505c2f88e4e671e50c26b9cc97ef449cd43e39c44599eb894cda9c388f5d17be81b44b39ccd4759ade6b2b311d82e4564bf848a1f4e70bc2f0f21878fb4faca97143c1a500b2c49739f29ba979b905a1fa6b534fe768d1b0b9b79e9c4aacc82ac19d06ef79b7398b7a26819b7495e9ad7f5c4d92f12176c3e6fa29cde0bdd5d08a8b7258cd5dc0f77a6d48cc0955fe022254a7d3c4ef01c39bf7b573f07b85ebdc61ff7fc1d2f7e275365e9e3ff3d858f05aeac79feba98ebfff66b15fa9a7927fb08a2d5321daaae7a3dc71ad985a135d71f947e833aa13da6cbd45177111b0e5ff42e014aedae0f529fe6fb253c93e9f04e84b02c1cf8ea5bfb4b2a84b24dabc7a91cf80a96a2e0f457175419d1f7756e2506eb360a888c35e4b0b6e859893ad5af680c749773f36a8ec46cc1fd70de127cf52567b78472f17be5ddbd5831facdbf2e56a7255f47b703310b49ef0a2cc7a343c6e7d5273da79fa5443c9da203621d82b588994fd2aae15f3e8b357e47da4d0d61ecfbbebfec4951d750f7eb3d5aeef3b10b7e249b53800fb6fe89e4246635fde2c3a19a4b6e32ec2e7efb0740361e5f3aeddddb0daff1657d683ed65a9774fc8a4b619025e546c5511b09805dfd9907f6522721df43887ee04d62b7bd7363dc4a16099918e4c06530c5f251b131961df13cd0066f07d0361661ff691f68af685f5a50e77768d96183859e84399c54434d93ee3e6e12c3914a8a50f056412f5820c6e82bb7ed03d3b3e70947e719217dc5b46bafd1d74e9a88eca0275c18bb3cb49831606824fa73f9bce806b34cfef10aa39ddf4ca875b71e3df772977711aa7b0b36e7c315ca581d25e90afc6581c1294f1d8315c2e33f6163b7eadbfbe28180722e0abf64160f59a01c2f2a6364516f8d1da1be4414b532c4070ec39653a42165890a25d00731927ec21c57305f49ab647fcc0c2ede90569073814260d5568d66f568123878a38a01089c9c547b78ee9e005a6226010788f0b92786e4bc800f6c71647f12aa64218456025a1b37c165eb8229a4d38d875f02ec59250fcfeff520d99c24242e0d6dc818eb79a6e050446b563a39c4899ff51de6532d39351840e886fc7d34867bf6b1527f1e66c8ca29671333b39c2fc4403b65aab85029a39dc7b9810d13ccfd4d45137bbf59c7224b08fa85da952d3c9d00ee181a8a155e810a078008168fa20f3e018fe560b74a5069f87a377520fce03211eec91b2512ba65af9a7e95ad99facca18342352aaac8de7ead38c2942d112db03db70b4e3bac7ae6a1fface05ff8725657e02861ec7b1600ad1f7e6ef7ebbb35f0f1364bc09995f6c17191afd1114ffbfb0fd622e954f90ee50ccafd5cb42bf32d09a1b975beced95abafd145bac61a9f2c283174131e9d384fbfd40f7c74bb03cecba86b24ef5e6cfc280c29d4910fcebe8c252234bea14ee5a3eac3c315635bb0bc6f7aa1eae53bdc82a5336762fde82ab7263a431e9850e9fc12403144abfe8e6c96c369b64581fc67169a8d89609530b96c8b92f40027b5603f1bdf38615c895d9c6987b65776da5312e457dc37c762ecbeac0d4aed881646a5f2db92b5bd3f0b9ba570f8cf4470de2daaf6bc21f49cfff5836313feb728b532f9fceff18e24e0bf1a22c8f900aec2878715247fb5316fe4cb1c35b31d37a3e48762b4aebceb30a3265486c25ed416d881802b38db39a1c8c517a1e43b7b63e74f4d031e6ea739e7fca6f752245a6b6d90d4abf294234dc41ece81c2979c7a840e289efb8c3072e6a1048a5b284e489827374154f0ec99111aa2f485b23ab0d76f174221d9e3ee0cf1388167f9cd786013a7266d480ec19091b00db7192c0efab5dae9cb73c4d764e5af98b7e858794f85cfc6ba201855d5ad56721c37dd343961724e3687925ef1e7c0bd4211c34d9793aec2e730dbf82c7f8dbd42c35845aa3f120d32a5f238a16a61ba497dd5456c8a53028f5c5056cd0e6fc435c2a0c10dd52a49fe729362e8d89dcdad77c069af7fc180be047ca417b7fea6aaeb9a2d8b3d5cc767255265fb76c3eb8bb040e80aeef68e45f28cd02a022fe22844fa6673152d4fd51e63a0ab7b5a42808e983162214df398c091fb731c7f054cdeac500a168ebb9fe9042d0c854dab7ac5412df2ec94fb60d29a31598ff07ce4875b96ea4a099754aea878fbef3e2c10d4fdbceab4ce2c9693536c60a1e544b602a4ac680ce5328f252c28e00ca66f36bc23261ac1f0acc7bd925559edf06883ad6491ba76498423c6b9b8b2fa703e3cd6df494afd110336df8d4a74d20a2e6dd58fbc8b1ef34ec03dbe00c5fa9b794d062fa4e934944e66cdfc2c30b0815802378173f009e4b912febf8cf71a0de4ff41fe981f024c62697fbe629d885441ff1df8c088255df1237446b6f7ac917c8d83935114196dd659c712558806d24c7fed843e483ce6c3423573f7197ae4e2c9217eab190756ac37bbce26a1474b69ffdbba2e7f4d7e4bbf9b1952b14fd6036b478557138c027104421672f08632bd6d389c235a35f8efe6768f727a76de25dd7c7524c52522ff0d7f3922bd61adf849b0765016689b8e2250cea936fc0ba6680c35b04dafd976ab2cbfa299ff5fbb772146594e8c66b6ae6389d250e5395f6881864cdfa6bc5273e20a7fac6e41b75e1add06f9be978046db8f2b0f555797a75e00ab0f31a97990d82893ffc7fcb09a68fa699da1cbe71616129217a90df8a39ae233f3ed702baef500ea7dceb423e759d98f67bf370612ed1f3609ee15f81e2462a826212da4a7479c446d74b0e3ebba3c01e15d22891caebe004bc6ab6f3f3aaad93db3a63e9f500c5ba65c1ae73621e2d6d694cc443910494f8e985323d811dd63c9f51d1c2a19b4b7903f45123c4eb7faa0f2f1f01e5e85bfaa8bde159c6a468e5955846631c2013bfcf7c9c25cab42a8f7be1914ea8e09d9f88c62f70212b0bcfe495b19021c8c506284ae74ef9323dedc2f76cf7c8396d5ab7f0cf354d132736e6960a982b216f0797ba6797461711d64a5f800818ab5b9498035b6df462c97b45628a7ddfafafa38501816b665b1119e9eb080c66bdbb2ec48e9b72cf5e1f4b55fbdf37b5ab387a9aa068851858f118e8c129807b202979c706e0ef9af6e9c5888f481372ce2b4b493d1b182e5745db41308c3bf8ad64ec91b5fd300471c1b0c1d6cbc11c2c9babe768e54116e0459c01ec204a6eb77561b7ceec978109a01e57eee4309b6d673d949e7b50f94cf247b9f1ea21f8343d2b7b6f66fe4e02ae8e08a6c2a1ab6ea978ba3b7c68e0e7ea78b823ffc6c5dd9c85e11563d0508a41312051aa1ea6cbea8a8216ac9f3d615e9849397c9d028aeccf6f12b989ffbeeef832b08875f29588c3f89e6716c3c654b366978ddb314580dbb2355fa89bd9a226b2b9318723c0767d0ebd1558fd262fa4f73f36c4a49df929ef11bd06212aad32fe73ad47006d20e6c8d0f3f132abbe548b3cf2e50f4f696629e7faed31143583e08e6410eaac3339a0c2919544e660797b6eb6dca611a3a4bc09732ae33ec6c99a9a5072061fc528f48f8254d0709d85c02e3d88a6649534a9ef8d4294b00195604c07fb0a69d4d33d8ca4335b73dd47eaf38fae90a807f468c1fed456adadaf24587d1d10838cc1b63ce8c043f7d9433c015625dec95e05474c5f4b4da500bdb4dfdfa4b03378e98ab26a4b909ccb92e3c982ecf43554b29f4ce0c580e0857aaad1998166432d13706acd27f66929d109e4468cb1c2b675e99c5a7e2b7bcd487e57d764cc2173964a5cfcc2be8b1b648bae6cdcf6aecd5e40acc614b02322a4d2620216dd4adf1d44a72595b8bf16d6158641f1e0de89f0f7bb99bc4759c38587bee79a6d9cdedc6d02ed2d6acf1bd77bee50bf2d90fb6457f621a0349642be3a71ba4827a658b7d2e05ef85ba5dc03f03da35b909fcb4e0ce3c8827fa2d336de3c8e81b22c94fe5ec7d2cdc5f0c02ea866fe0afc79457713cce044db721f15e4c54d1ad50e1a89d20e41f9bd01a191fad38c48de8aafd428f8d400da427cc5524991c0ceee2f3b7443c24e7130c4c02d35b133111ae89e84fe6772d6e88e391bcfa1e7a82ba66a28989b879ef83f58cfb3b46e30c5d56957510a80e720b5c2c029652fc686650c6c5e1092502d43d2a43db51bd5ed9c802b2a990bd4e78b4661025847af7c2f026a32cd9266b054954530fa92e1fde91d52eacbd5b2bf1413cf8337eea7a95c9fcdff888add4b6e4faae34343836a57945be7bd88fbe66fc6720505e324856c7a833796fcf0ff8cc7a65fbc5c70181dcaa03a7f91c98060082ad23c01976cef1c9bc2ccb72c75893e039ca3f00e1c70dfc708821d2ca5ec359d067448746279896390f4d957ad3a7739b2c6c864c3ad81c5e8b0cea47ee41e6612a14597326bb4abb5f0933a6769f8ea7af1f29f633fff067c25971cb3659839239169d9263ce7abfa5768c137272090ec0dd91d89aa3c1f8e211fba50ffebadce28cc6b04fce5da55c9e12d8b6efa4e0362c9306c91117fb2f8b572f5b33ae14a52db91ebdcc2e1ce21f85f80a58ec73f09f8fa2e1fab2a9b00381439b4dba1a5960d8d6f818366db561674f226939d7c10dfcfb04258096a2f0fe4693a273b830f7b8962cae67a872612d52ac1e4e9ca75abd418115e61cf10527cf7681b8067a7babd5d4a48418bfb8ee2ef5c0e1f2244272c2697b33dfb55afe9a3714aa11311c8e67d7aa251d90ec40f89a9b4214211d787aeae5dd7a09a7a50cf4bb622e45251617bd8203917f70e66e1fa253822fd596dd33db12e50573f9b276ada1545448bd851b15931d9362ce3caa7ba0c1175a8849eb76054bdab078e841099d0e108e6fd24c119abf2e9204e85a19e0074e7a2eafab389a7d9f68a312ce4ddab98c9e9ffc13201c0e87e36216c189f01c174a36c531eb9aa1618dc3968b44a1590e9b40526e0846f7552c8c0ea39437b71e2fa8b000c14fbea5bcea7dbc88c3c040978e6023c6f524eedcaab299c6ff679b9364314da8d66addfa8db6eeb4b575ccd0a66bd5cd5732b951cea874e44e868f3bba02eeaaf6ab802af380ddec585f9ca007e82085d2d0d2142e0b979755442a077a872af4dc99fd43063b7263031fbbb5323232a0a7e059bd69b7e6681a9db513436af27b9c7128b827d42d9f6dee76106fbe63c7687ed73850ff0fc962a0f1cf4d325a3fb78ae54499496880e2ae0d5e37b6e1925c4a4fb50d990f342e43322fa968ed2861ab6f4b2293007953861c760f47ac2e9e0871d08ab4a3969122f00f3f6217f43ac24f2c2614af963ebad3dc5708c71c2c1510f83109a3456c94ab89fca42c670c9941867ee2ac25f676b6d4549a46259f03f8ef353d0dbc1652253ea703e9c674b86298990eb41be04c10be5768de89191ce848a3c06a53eaa8d3f6a9afbcbb8681676c2b864db249be03b847b24b490090d6976d49e60b0690f8fcd7789a5436c8519c9a0847ae00fb3446643beb8b734ce85681f11654bd6339387f6de215520030064f273e93eebb2fc24cdce21e4d920133d73aeb8d7022da10f029668da129ec8419f8d9225aa84bed87f21f8d275df5c27654cf7f9c510ffca3a497eeebfb2bd6de1bb0426673163ebbfb4c940bc9d2e43df48f69017435b800ab2c9071cfd3fc6473ca0f071aec79888ee1a1de4cda5ca26dc93fba0e27240a8328292d792eb7313bd1d1ecd4999fc3342a118871d7e9aad98b4c010d8a1c2f936ce7f105875b91cba459eb0868fb80b2941b19f3c7f7b22a97c992c65da235599f15fb3547cf4a6afbfdcc86642557d45cff25e0f8365f32184612e6e8b13496ece55612f18216f044828cb3ce8b0eb4909bbe7920f73314157d37be31f8584c1988211bdd73e8fea2893f0cc19d952514322cca54cb078da399798a813aca4f9b76f1d864790932cb22df17a847733921c3e694ba06d9ea25bf9034a377f0c8ebb627f390c992b4bb446aabdc22bf54981ae54e3cbbdb41f43959ade87e625c75d95f205c9c580797a0319909fbc78de65c7ffb9dc53e8308e3e79ce61cdd56e8148631121286744152d456035dcd5f6b4c68e769a1d06b0cad0850aabf4d4e09d59acfa1068b6c66eb69a4b2e5a1fcab38ec75f51a0b3017ffed6a984ccd2ff720519f32bb1b099e9e88d8b3c1a937e0f4e3a6f8d9723506fc9118857b13dcd0423b647aaa77b9d892b44aebe8268e51720449cbaf7cebe69ba72de7a48d1e078f220a018f84e81d62d85906cc93155a9dae50a02bfae540935670df765f8b4d9065607948c8dbd8b8c8c18a11acaa129e13935d05b17099bb1dbb3cc21b239d1a2174a8227af9597575afaef51d9c8855d9284724bf2e9ec3d32c1e3659d667b9ee69db4208bce2b68384ae8808691997ff1b21a43eda51c7e142bd0fc9267a98fb4a3fd791d3dd0a0403e989b270094bf8c1070f1df2b5ea49622cb63c50eb625d074ba441ef3279010cfdf3421ec23f2783be608473b4a7158cd4dca3ff4c89c5a837bfe27129960c7e368e5fcc32003273b1ab4146b3c7a78a27182bb7ff05aacebc2cad6e55f8d688e5f10d013707de149f391bc4e9cb191e83277692ffbb8bedd230845350a7965f019fd3225db585e10ff9cbe2c229abbc91d3501194524887038f4afee0f5c125396091ad27c16b7b7a306ef94de0a34e8804609d521ea73077f7aa51d8ec47f51efcb9b7b256ff0ad5313216b0f16a94800eb1d88e699f8298367df786cc8a36b1f54fc884dc4525f18afc5716999e66abc27573a53ad7eafb1f2db0b3a83fdbadaf1e09cb361b37159d0c256931ffb426e8fdf0c9fbd89adcffe056027fe41574d984beb186b8f550c47bdae592957e45d0e163bee036eacf1f5470e8f6cf9e7e5210b2fc0e157572a416182f16f472c3931d3995d5de1f805971e1337509db1d3b5d8c7124114c0f91340ba74463d5fbd6742a50315d5628b75b2a4a2a1b15d8940ac5eb6a2fdc57c9ab560cf7e71b4bec8ab286e926b218970f36750fb6672896d7d9dd6a79fa693432f1ae5ef6cc31c4f94edd4b6035f470f56a326913706cc3f9439b3c1fcb05c01415dc0b345403def00132d827cd93736043ba366acc7a38ecff45de663d7e3133ad539ae3cb92578c7dde4e6a4a320b83ab50e83a32189bf7d2ea4f415f0409bc4650e7e057422bb0dcbebd707252c05886c7c2bfe898e0e596889b95c9a48a13dcae8bb7513afa941b057de28f4b4974ff8b7ac98c6d4a9054149b377f9e6a9964d8f2c5c258e7a1d74d29ef2b178c1c2df602c2e9c94c861050a90f08c21bdd57b4d4179b2738aee9582b50c61ec6f557fd1be788bf8d33669ecdc320fa2cc15f05e4db617df58e169204f039b269be4614e34b0d806467541635eee1671f974c9fce9f12da0e3307a3aebc53faf2ab044cf5bfe64e644d3ef2b873c0c456447a3aa105e03693f085d5a0afea8b53273aa8d0e21571499a45f2428120a25db2077fac8bb71090dc7d43bc259927f30ed30f976d0c3e7991c33fd7569c159f75e516485d6ed34a398c4bea1011c4549f1bdd76cfe91822cc0c332d01f8f7f263f5b46714cc3d60b7b2bdafd09bbdae1ffe79363e23ee8242234ac891ae2dce89bb5028ef38355b225c1c9dd78ac0475cbee533ad82362e2d3bbcd4f19105e024233adb2e5896fdda2b3bf5377e7088f165512aca0c65f3ac0e0892baa8b4c7844cc028d7e6b33a6fcb84d712f5357486668ef6a078e7eda84c868bd6cc02ab642fdc3a24b4d0ad225c73b12675182af191d88d9f0c336a6491bfec639dae14be4a972cc6a61ab71e7da58d70165ab13bb34296a73be1a855ad3f5e13895e3095186dc7001e46b3299456c2df3eee56e4f0ea7738afe34f911cb603103a08a8966d51243a3762aaa3c92ddc4b2f4d96133a6934f082f3fc2595905fcfe5edfed85e97dd8edda60b3c5a018fce6a62c3bf964ed1dd90e1d536c276d4a914ce0d57f029be68212d3ab6e010b4deb193e140f327f028becb015a95279ba0607117727b0990d4bd0484c758186dd67473dc6a38220737c318ffc74c9a05ba55e7744b3fe288d3e2642f6be41ce44878c360c941e153a39ee7980408d1835cc3ddc83a8dd69b2638cf95a814e0fdd97c1668d0a4566d4c04a71f7e49ead6607f4c67f898f7c37d6c03addc58f7cbcf96dfd3eec106c0269de9b8fc1bdb912bb4a91d3dde9532791e737f81fcebec1c9e10f69a04ca170a7b779c7a767b85e4c36f0c8729cba76edfb96105f0a21d4b669af0420f5ff5a0201b11b02afc5754a49dd5a3b6c4f25342b33d25d69ef6557938880f8c75bb9b711bf6458f6a1f474a77804776162f673b6215b088a1a9d16bb8807120689510cae571cb404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f", + "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f" + ], + "measurement": [ + 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 + ], + "nonce": "000102030405060708090a0b0c0d0e0f", + "out_shares": [ + [ + "4936ef72468a2084", + "7ea10552f7acbb4b", + "c00477bce87b99b5", + "e9fcf8a91e60195b", + "08482153283c3a8a", + "b4ccac3467243afb", + "9d0be62817287a7e", + "234de93541d95a21", + "0562502848a4d7af", + "b69b825402b19b0c", + "f1d5db7823cfa7c1", + "fa4a0bf5e1ff606b", + "75e0fd84dd5cc749", + "cdd9fe6cc757a177", + "64b5ad3e688c02c9", + "2cd5833f71de25f9", + "7eceb8087ac8b5d1", + "dd149bd4c3fcae19", + "d4d2d868cc0e94f2", + "f5a994bc6c9a9bd9" + ], + [ + "c8c9108db875df7b", + "835efaad075344b4", + "41fb88431684664a", + "18030756e09fe6a4", + "f9b7deacd6c3c575", + "4d3353cb97dbc504", + "64f419d7e7d78581", + "deb216cabd26a5de", + "fc9dafd7b65b2850", + "4b647dabfc4e64f3", + "102a2487db30583e", + "07b5f40a1d009f94", + "8c1f027b21a338b6", + "3426019337a85e88", + "9d4a52c19673fd36", + "d52a7cc08d21da06", + "833147f784374a2e", + "24eb642b3b0351e6", + "2d2d279732f16b0d", + "0c566b4392656426" + ] + ], + "prep_messages": [ + "babb48d0b55924bb3009765bfffa61d4e7ce54e452674f5e4b55d7ce504ea067" + ], + "prep_shares": [ + [ + "fdf4df7a6649c6fbab1c2518377f9d74d4a155a7ca0559df2b16113d1c5021253e748085f5266ffeacb195968a631042680638e835197ad3147a9be3fbc6c450cd7d394cc3ee54cc9d05c7b76c71f1c537b56335ac19cf5f3df682b76756757c6bb8ab710c978820ad52297bf2191c7c4601da47b8d579ea7be8ba28fa0a13407cf4f953ee4293e6dc88f0c4b37ed7d156783ff53bec5e724bd04fc3f841b5c5dd8acf35c04af9d17491e21dbc296ff1e084e386d7aa399161ba162fa3cbfed7c9133a12e8fa5cdfff1e9507c1b1952316f0908f6461ca6be282daab76c8f1cbfcfc4044b43f041c676c82cc38584ee62c84b377434e731d7937763f8b964915395d4085eb90fba9349fbbefdee2b779f0bdd65a38765d5a7f5d3fb940e18361baa67370f30530171ab3808b1b6b98788e31dd733db1e1c3f840d42311be44040e72d19772d16dbb8d5aff06ad17acfb80dff393309e20b08b74c3398eab1c732fedb2b38e66dfc6b7940da541a2c62927812f72570c3aa46572fc3b3ac24836666d7e827c089e7a5488920354714394e55048d5fa460865d8f629615780f53994e4d79c982de2ab2aa96ef850bb64331adad3919fc0826c67cb58c1a8549948a1d02ea078f76ea61c2d81848da29fde7953ce059f21f261f8b34ce87434c51598ea22138caf16fe93382a6c3868a64ee1091dedb8b5fe854f2c3ce35965e562a124475128879ae3de8107a74d311d1a1985345f93bcc6813c25c5316b46499d57e91e19411edba9f436ccdc7173dfedd4daf505e1321283fa113ef773a500dee15c9cf5fb49c7002250303e8e641e50bc8dd85d3f614f77c674f79b135cc358061fbc9d4f9f68f4eae14f364356dde729d802ef599e2fb98f870d6a320f8e2c68f1b9fb20d4f5fbb5fe19f4036f0ad65d29aa87e96eff1289d1c5a5180cbc25ad92d72bb95c74e8817b54e8d49cd84ef805837f5b270c3056e2dfc4ce30afd12829b7e18750b0350b67a457a0d1c3cace5936cfeaa0274deb63640b0dd29a8b617f08ac8be1579447ceec57e622761ff7d8cad3ef2c98aecea99caa55e04f25fc4f68eeeef7b355456ddb1ea5a3c9c0b3ead9518d6de7fb0b27bbad67250d4df0fecbc52ecad83e7c663c05da9ca0defda78957d79c449802594df1b97e9e5917568ad6b1c6cf6192bfc7be0436472098b38389904b6ff1e336eadbcd24066fdbd9fcb650cd25d1cb6339feeebecc1dbb569c7066b91afa1dca7252e0be30c229162a6962f8b5175ed20ad85784342c89fdfcd45bc58661f134e1cafed8d5825c550b0282cb52742de73d1281fe2e6a109605c624ef5581415ba9740c3625212c4e06dd52643af8a31a37d1e72913150970d721429f2697d2707d905ba431f86bcbec3f4dc62db78ed924330cd373f7e0a16a629e866d0fe0907b9a61670f7454ed16ba3351b19208cb0323fe4b305b62c817b6ec5602cb8de36944495841f71a496153687ba9321c6a4a3844777a7e55854ed28b1f3321272bdcb44afa000543e461812f5eb4245d72dae9658a2237935c033f88a6f0eff6e7b173192f25607e4e9a005acdd1d4f7e4396a99de6f35e756b4026e4aba2b9ad46a98eb342e391443e8b6d726c641925c8619371b5766ed7c036f926a82652c8be628b3f1bc5f2bc2cb83e6c78fe54ec0ce298cc4353c9d47288ed96a49af6ea42cf3b8de12d517d91f70be60c189a30670bf7796702cad6ceedff1688e3f5a0d681d6b83b496cbd7514eedccfc728e6576a9c3035afe8497c944fb997fa44411414c32b5938cfec0782738cec33774323bfcc3076cd79d7d8235b9c3a35388dd0b1edea12df8faa06859921955b3f1b293d9762bfc518632a617707d578d7b6b5ee74a6f150592ae06f0a28951c21752672e74b48dd58ce1b169bdc56b896a78a878df58bcf0a00aaf102c2cf2419a74836d5a86e25b0ac6fdfed8e5fe699a0a59677d9575d0fb97f031e839eee506ab07daca26f17dd0bbc393aa5b1bd6835dd8ec37148cc9feaf21569c0e59da21ca16056c52cec9d901d5a44fa5fb277e3cb072d3fe4e5d4cc1ea6f6987e554e433bdb4c02d702e53ce9c59ce5f61ae597b4a9017bf7f0beaf2a20d4e8ec243660c2a64ad1f120fb0b01fd34b57b3926a43f871b5b3956f981784dd62e422bcbbb2639d412cf9578197f0a40f3c5b2db037e94f4f1187d9d1f4dcb650398d9eb61120f312076ff88d7116d996329d96296bc1367b6f476bedcf5a9e91def9d7e78a475b5455351ca2a91fc98783b89078fecc3b96d6f7efde09f88947d14c279cf2ce013b9b87c6d5fcd36a399badb310d1df0b6b562f73259feb5855f3a501180ce3e71be94cc3104838c79f30935d5d5f5c1c6be250641a1458cb41d7bc0f003203b2722c3f8c4a5978c6cbd3c74ea9b0ecbbabdecafa2d6255572086dc48b3f5f3264d42dcfa48444c7eceaf0015977c2fc93dc40d00d9230c70bd39fc94c0ff4247b1f74b91e76a85ca2f8867d2110227691f39eb7e86ed3d3942299abbfc78cdb70f924ebd25dfe06bb498259e33f0ca9145604c3a70170913a850014c9805101bda1ed6c4e2dc6cccc177c582ecb38960b9bbee4096613569f7004bef3ebcf3314ef4dc4ccaab424659d9d95e7a3c257ae82d55b919f5f2854b3391c0ab0d1984cb1f03a48d5a46103653b14a2a08ce819b313aa5de78da62b69b0b44c02c8bf3146dcb940ff28c7469834744894b370c75a706deb95eaf75e07949558660c4463f82bb9d642aa756fe03f6b4e17c47e7164c679361198e8c74d797bdd9fcf26c60e2f3cdf275c5f6f2980099bed586dd2298c88082b093a6cc5d07d54e31bfacacd128289a59942db1d679b3c5fdc1c09a0061e99d7d757bd75bbf4099dcb274f547b7bf1117a047a8738ce0f891e1eb60b92b0090504d94c1c617fb6e5d92ebae2cb0e2ce4d188a967aaf9256dea53e2f948529b0f214b861bbc0edd43dc32b06af77b947afd8c0bd9580b9967d0a91fa01b3d77a9ecbfe2b3e3c629a6b1a763869ee0dac7db58949bf1ab5cd12ba3084102dcb32b54018dec0677aac96cba14c406907890115033d4d81e353e6deb052256fdff645e485e3d996feca4b7f439f458578655913b33020d6a087532cfb2195c304507afd9c0c3cd659be569dee1ea7c2ea4fc8299bc71a34251a9a9e40ded3ca2cc801667a7178c327793899519378cb9a8b1cea0c2187948177e3c016776ef8a1685d68de222946d8bc7ad7c2c4e455d9e6d5f3d65a3eb655934bb4d5645a72f60cedebcf0836cd14a2aa8bf467be721c51e0338f0cea8f730d3817e54f67ba9a8413733f68c5032db98006e9fc4fdb14fdf03057a177c3b2ec5e9d335dbc73d29a369c13cb28377046a66a2989e247e0ac5674d63fe945f2f0ac8c4dd889b3695dcd847444d22a5216317b28c396599e3586a2d43bfbaa83d15ab65dc515763ce0a2ab5f083d775a98a8b770c1832032e6e3fa2599c03b6a1ac2c6f546e197ed08a982312221fe695678ac9be76de9d39cb8a655bac03804c6d943a099d508db4c28bbefcce9899e60209fd78e99cdaef51ef2608c00e4c06a6102fb7bf8a34f36f5d6f3e46e8cee8ce3670cc6e67621fbbd85380d48854dc18a56cad9541392dccefbe6ee18b21f04c1d6351b2c1278408573a0a1278d618a6ab06253e1f91c9b9b6fce0ba566e8099594fde7f97c3ff15edf184ec5ab3b0f81de2b129c53a5d6d38d90af7586e0f13a72cd1a5224555aecd35e1a83cbf5ec51f48be171b3b959e64e20ee0d480c378518f82c097ea322ea0abc5a8c2fb4d434326e06d8ee9ee93d550a88a73213a8df87e0406bc7b978a02c6172fbfed9b3e0fd3315f33583352fdb35bf3839669d5cd6d2a07f1f8a904a848661ea1fc79bd16f2cf1cb87c6e005577056b806623d7520a9b121afc925ad17cb1e5fda0643e1ed9e7f64645200d7be5ae206f5252aa196b0e722c98375d313e63b6f7205343858236d97f6f63c470343d27d406a43a168cc30e3de45d99fa7e992a72898026400b0b2e07177c5fb62dcf1128c244659238811224dcd433bc6160fd4eabbb39aa0b1c25d896d2ed461ba1455aaba9388e6ee5d53a3268ec4d21048f58f9324da32ccce7dbd43e0d6e75ea66351fa696306c5bf1e1bdea30be7d3b7b500a773bfdf08735c43338bad4b6883b05023abeb5af6a09c68f0fcc280c7413f77fce4281529fb968605151f60539a4557ca160c6f9fcee0f68ac5d11e652655820a7cd0311148db5dafb2e1bbf161919a705a8960d5de0260e6ff1dd88bc5d7e98fae38ccc8291036cf5cbb66184f62cc9def0b123be6c84fb2a715a4041e0188bbf6cec1b40ee39db1a3892ed90a02e7a5bb07692cf405692679cd437d72547462831a626fb3dfccbe98d46e892f35e4c14462a2aa30a31e24f74c3dd0b955ae38f152b9f4a7e4a158170c84e1af7e839f9fab15fff87f1672a0726b10c65b8db4595351c1c0eb9c82fbe8ec95946e9cefb8e015d6af69e1debb0265ffa735a41239d9167b0732f530d369575fb2c13004d482718554469c9b32ebd055bb9faee92214d4977e51a54dfeff6b13fee5489620a358730ecbf2217455e94b2dc801649766189df94d1a31b0ce6f67348aa23542549e14f7331292ae680b43b3d70280eeb5e72d5b293b85433c4a632d03260f4fe0e344b8d5e6a3d707bff2464503fe328fcc42eaad2c459894f1c48d5ff71bb0269d818278dd007567712a4cb1ea215ee27c83891c0932acfb5be2aa9e742ae7106b7103708b9a9ce37cd605a4e6152d93519f7ff01cec0af7d0fb4f58cbb39e334868307530d5fe4d69f4ccf6bb091ed69af6902b132e02f28d9e14d6e3e969a6ee7201ea25d4a4ab33f787cc77e497308a38fd15400f16657b9e8d541193010b3b1bafc472a7cadbf2eb24c9ac644527713c0310690626bdb9148811108c515ea832294322b0b3c91826f6a9838f9187a917ad7a3afa3e3ae185023f07dca95e8fdeef0e5fbc780115cf0e2aa6d534327fe671d3d4c5da853e08998375ed1465264f19ed58d0ecb87e8eb1b863152a6b2af3c8b3240ced96ba2868b5e55dd32e24249aba9450d3b839e7646ac151e3b53934467e7afd8cd110cccd3a5825decc5254ba958e2b48556fd38f548f2dd139a88803fe5053b02e1125d9080f7b2cf804823774b99cfa317d4502717d8e12bed5a8571e73015dd81c7b83b10d240addc105ac13b13375303a4500945f370355ded46a20f1718641cdb00debea31eb4ced8ce22fdbdbb4929a33ea98c053bb94c0c21a26bcf9216e1de6bb89c177ddba071273313a6ff03482018ecc7f35ca9b203e8ceeb60de695bf54e81fdc5151f996b4d7fd9b3ae66abeea332d10f6b83f80e35d72320f9d7ee1fced81bb6ab0d19bf4f812c8ed935e94d756cc3ee95a8813500226d927baa56aa4b31a5892c92ca453b362d0205f131ccbad066d8312d6e6875695d276daabe3f732d5e698eea5672c418277acb2c6c6855d79bfab8b04295f7044453fa19c292f139fc61c250a8d41d3f5eeacc330af47ae2b12a5d1a7e9b55dc886c5512050a0895ef068c8a790e1e3de14a503a9deee4c5086acecad73daf92e496f42a07a84d2400ee519781575a5bfdcd197e350d072013c1eaaafe2986160e21d1036c330ce35c7e4187fbe596c3c5ec77fa788c8aa1061e0d93d3438843f6d28a97f7ad41c55741679bbf55c0c9bc53122c2f0febae320435ee9831f02a66c337a354e7bf8b4a0572e60ca26cbe7f85b4519467f95c74577a3a5e16facc78278b441e8639865896bbcd4958d09064cbdb62e097b538ed2a6b35317712925f3a2009f8c69d9baebb5a393d3a82ea4d61912d1bd2e7c53fc1edba272ee0e44398204779c99150d1d7edb32f651b87be5a88f31107e323ac322b3d6032b0754a12fed18149c52f84defb6a0ea5bedc11dfcb96130323f6bb586a4df72001c95b9353002d1b928ad1339bcb76eb3946c708b3c9e58230a3bfe64f827e868fed18072d77bbf8d3684da1fb7e7f7915310853d7e5de610b840c288d5e61e25c4ba5e20f2de09e31912b4a43ab4000e064700605c0f1c861c04e6c65be9a9db18c0735304b6553651182ed1ec5e8c8743b2655d51aa0f583b54275abae43bc05041e0466c84869fa46b0d07518eb3cd1dfdbe3b19e368cc450a5a1bcf57ae0d3780ec5aa8e0fadb85cd43d39a4fbf22f1581d6195cf70d7cb7f9df31c2bb6c5f99f7a20e36fe46c8d2ef1fb1c845e6da7a62adc463be26917e6b89b3f686119d55626510a4bfb1871f1805e6fbffa028ef52e76028121f2776002ce2e0ebf55c04d36ddecdf275693639531675fccd44eea69ea7c744486aa4544d39048d53d1959c6697d483bef2a5b1bfbae2d484f1c4a7ccac162552e1aea7894422e38f46fd9ddcd802a3cbf71e6381171ef4e307bffd49c8af22c1abb377edfadd2292290e3eefb88ba22ed433f1bdae4948c05d46c7fc57c0cbc638765a87944fa6083e6d2b642c944d94470af1b2dc2448fb46ec19943e077f35d354c2c406934b2dafabd399b437cad72c7cdc4f8c61bd86241e6f9ef0f65b04054b24f9d533b1f6afa73ed9399fee1760d8d0ac9dd8347030961e08ebc09789fa704e3aca7702d84ce324ea47f389d6179e23ecb8255ade3e9e7ecbaf6a684123cce2a6daa148cb60cb809799c311eae223cec369939a7d31604a5294ebdd59dab850be9d9c5f7f18fda8edff1c3ed5b438e2d4cf7dd1b8ef6a6471ae5cde689958bff69d66ae2b6eb740ed596e14931582af7c1c159b6b751e8bd72b827da1f5ec5d568fd7a5b2010775c7b1fba6f10737f7f77e5a35479ff8b83a67866637a3668785ef642b9f4dc4a6f620748b622a8885a53db4a1854b93eb9627b894437f23940e7af19b738bd7794f21dc91155d7db4566c34670e2b952fffb", + "040b208598b63904120c98db34c24bca6c8f25553aef685a934a2cae583930c7437331fddd284f37d0363001ed323908ca19b62deebb02e6aa4ccb31e35f029da39e589c8c38f5e0a0b1eeeb99e24067ca4a9cca52e630a02b98e18b0721142b1072149715bf8687260f8cdbf56a416400273486d8ab8df37e62226b0224049e00e67e123bc33184be793ec2eaa844d0751d08d01979bdd0538b42b7d2ec524e7d3cd41d9c2c0950bd5cd54edfbccb2836805b2a64512592c00041b70e868da6f3692a9ad05cc63fd2c7532218e5254bd498e5316623c2c65f861e30945453f55127ea6d292ba3869d87f0d979c6f88c745f0fe6003912395ade25a3d3d6cb70a8dc1e73cde68eddb411499ce2dcd149f68fa1cfb7d6f8e6563ceeecf19ee366f724f74ad2bf68b6bb9bac92a49db0b2ccd1e5ac75ab0063300c462cffdd62b977c4893135c6f3bde8ee436a35845e31c61bf2344c43029efd1a3f82acd1887ca494bb093a685c02a1442bc3719d8b7542cb3e67138b6f70c581012fc0b160d6cb4b218bf1037bdb9c873c9b30b486d764e3e82f2c8e1c3fbc9abfaa170551392e6be64aa44a3708532300e330c9b338f807caf5b9a0fad588c6332d2bbb53572411bcbea6767110881f18340b615484218773fa28d6e6f435abb3d15005ed9c75ff9d4d0b3fd6c6bf0e620bab7c97609e11772ea6ede65c76aaeb9a62dd47bde86ef824ee4fd34cb52c64679165e8fe6871e16ea4ce88a39bd83de5aa832ef0397167ac8c5ce5852499f4c697cec77ff570e23fc3feda7afd73bb78f9cd87f1f041f9544c11267824b14d7a3ccf47378af3361611484694b754ca3f25e0785568f2420f3ef038b9bfcf500a0b71365422e0097e00ec6ff2a556a61b9a8b756b88ad37648c6490908257ff9aba31c0ee35e64113927f1569998ebd1f67c8497d44916c067b545b19b541106e9916bc5c4c9ca8f0eaf3be6766da97c3071ee1e9fbbffa6ab2171645d506f8cc36dccb200c9485540c92442c985d1201bd22d68f83dfd5facc21d2e879d182c3145b50ef97d5cf55de7ba4c106941b98c3836511b3fc23868c9eb46a1ad9bafa9b8a602abd23ca2674054942a6abece4d30ec0680e1c534a62464b53d1b64ea28576be9d4ca87c0cb6e0701d6d8523c7e737c12126e25a9d0f6097d71df329816b07affa814a76ce5ab144e30ecae4974f5b0a8f34901ddb027e01cf21d8b7236aad1b6f087e98c301fdab0e242f873214d52b71f9afde835833bd9e6f6f2ddebe700120e8dfea58d283524dbec44c7f30cfc6ea9122a9164643d8d600d0278a8012e28bb3c21a68f727dcb8ace8ced73b9fe3b5f3f2c62c59db0716e3145cef55ef4ac21aa5bdabac063552e32c41c4311a8319b999c813c3795b480bc41f008fc1dd0ab27d6ed2ced1a4f86f18ea91f9b9268a06d0834dd46aed04ff66a21d132e575548003c829a365b9e44f853889c4cfbdbdc912d5431effdc273a1e9a364322502beb5d9cc8e2dae840a9b4d0d6390c55a756ddeafb05b994067301fec45eb1f266c49e7e9282a8d0aceb74895ff022ea197036b399c9929bf261d56615ff03acbc823da2af23b2076597ed4654cc1ad8be70f91089f8042e91211026e2b13823ddd8909acf117e1e7551f848ba664282b0c9d86c36cbd3e7e78e0376afe0304d1fd96128ce5ae6a6a70be2141a1d9285feb0ee9c09318b6233fd0ff0ece8e49e8f7d405aa824a1f81050189a3ca674da65a1d9978ab9bf5fc2eb207bc6d6ad671b4b2939ee090ed24c38247dfbc3eafc6b2ffab0fc1b912957516678d9690ea7416f57fa8758957ff0b16c0f8d27b66197640790b06bd6028cc7fee2ec45a0fa868f66dc0748fb44ba93a50954f8a03127171cd95098b34d1106724f21d755683b51b75ee3a216147c3838aa687db221b9ba1523c99297af6a46c18163ba932a019a992471ba7c9bea13ee459a194a5d511c25b354561477cb45e4fa328746908986b4d242de392b5953caacb70f0e0ef3028af3225a9012e33be41cf8dc8020278c6478678ede1184722610844e34ee4d403b0d57b8861ae0bd17e74e3e31f85d8e7c3dc549ec8085ffa90338c63dfe0a51cc7495198b799c778b26f4c47904579409c37a89f12b628803172eb1168ec8bbdc07192a1dcb747e7697eea9cbb0e9714df53319cc7bb84cb0e569434a937801a00f4e980b9fa868843b564b3d49fd77282c939614f255107aa70a5d4c8d151738c18412dcdeab1150e6a929a84fe7ea82ae98e9afd533c211b72a910146b6e67c96120941475b7f2ebf530bc89f0bbfcd0a9483c1b1f3be95950c57ee156d2f7ad0959d51dafc185ddee4a7ce67b4e1371b15a37086237cf97ab30447340b46f3936257ed00353541c1328878cf4d52ef0ec1d5549cde2ecf383c4eda7847b2f380d636cdaa66bfd1a719d3682c24230f52f0bd2c767076ebb46f6f68506bc5b9ce89e26ddb8879b4134001d1bab52751a40ea19d778c33c72e52c78113521443a721eedfba34ffa11c2f61802be9076d3634a7fd64b6adcbb720ee929947ec1036c87b8924f8545657c546fb54aae5d4c02230abe7079a5f775d3e4a638f0b1baa00535ff8776d7261e390c706da55891e657740b2f0a11a87d7a7b45f046c6bcf94244fa7898a173bc925d64593d4a3a9f13b1d375d04c9c2c8936a11ecac31e816823becb19ba5bcb729e028f24573632b59bec2868e48baa96e1d25b5f47570c89c61cede8347cd159f8cbf05d9d9662d0f0f40219e22ee78fa04f92138ae7ae9c15613570bc17c25d9843570b1955d8e6091df4fef118b1f8858af3bbfc1c71d406a381186da643dd5f94b965d19f48265ff1154098a90663cb139426017c04bc66ce877ad214a0b2542e046dbb44e4275dc64474c0e6b6d1db07e41595132722692fcfb9aa26f7a7fc63169efe81e0ce18042e245388ff82142df978241de044dc921cf09fd09ed627d6f735044722d3414a2c13fafa0b1a24c710d2e3dd845505271aff6f5fb073c676757d7e59e6d4e91a7f5c93ebbf3e52a1ed768e5d33db1a20d888b3ecbec0302aa46b1220f42538ac7375e104c67d0122b8b1093a13329b244d2664e713d6f9aa2ba3c60659b920b5f98a08264208da8d30f7b326cf63cf13619581e1c9f84882dfec48e0ad85d28cb1b18e6786cd8419a08a683c6c5b1819a4dda4c00b12c9b46dbf3754ad541d239dbadb0911fa7898f4030f58109bb8f490a7dff03a2700a0e69243aa621bb16e858470c773ce6f5e489030c53e3f8268976b7bcc23aab6a3369aa0f20cf91577ea2adfa618e8e84513a497866dfd7db33191b58bda5990d73a2a5e517940ef2887816b511a945d691cdea805beba100d73166fb0a88ab4be91836ac96548a183e5e7f51cbc77a58098942fc7757e280d91c10db87a1dad7b04e6278f9677b03cdb20566f61ee12b4bbc15b1448ee42299a92911f787859a3252e14b42522f2cdf66af43071c08efc82f9567dcedcde0196b43322ddfb84b866fe2fe957cbb407858f3969f0f345c2ff9182c172fe238fe6688dec0b3801a953a05fcc6d5b0ca22023ee6ed1fbe70e6d4ebd8f592ef672368e2aa4c6b8efced94a6dbb653394c17b0316872b89dad75ac732dbb4c0bdac7f45818b3a3a26902250841f7cafc3859040c8b88b557000789d58720ea8c1e83209d807b48515d814712373abcf349615eb5e64deba62085e1e11161c1b61da5573413536e7fb4e65a4ae149c2c49b355cfd9fd468548dd8c816ebc9c41e94709d1a69382a36bca3a7c7a7d425fba773852ee26d19f92c3a41c11860f59337bcf56dd36b3e1552167e537be973cefb110e414c7a6e4bb6fed83b736de813e53413dd2eec8158cb3c83f3472881ea00035b75270725761da395e3b197bb2615bd62d227bc9eae7e990958d83a1beef2049ab75d61b6d4671a91e88846a315d5fb6f0cf49f3ad29c72f4dc5712c215e8f83e7d311e2dd11fde5752a425eed109763c116e46b0d3bff8efb85dbe4a414b89e0e8bdd4a125aa70c3ee36eb93bed78d09ba16d0c8e9194a728638860ab2bf0bdf6f1f5ba223bea20cd717338fbad75d3725032c25494da073a65d283b940e3e297fda256c406631f9a8ccdb9e8a56e591f990bb23c83ad91600070d864e46762401ab505f2b4ecf955ba8568b292be9c4c64d7b039eeed7f04cde1ce62e63c39e3b61b274e388e0a9c2ef0ccd9df95a19b94b5026d33b626fa2b548fa8ba2cb62af29c0e17e6ce69cacf87b9c1044a3ab52059a9789a81160f5dad08ca3eece625d7c2389ab8e6585cb62dde8b18fe4c1dff67bb270fb7b6cb3b1c77b8b222820ef5c82098ab258d9e87bf182f39709790f2222dce3bbb2edb4e273f382498185b2f54b4136bdaf00b360a804d19dbfea502138aa54fbb007d727559b531dbffb20499dceab8c1261aee9f78586e1bb341cf03701e882fe036f7b6a101b9db6f0502b925ec75d23801d1da7ba697e4c00d69292ff71c49c65058ca0dc07f03160bade186dd13c176a0d3cf387fc1ed6c5dbd9262fe0a9bca06d4c465a86e206f33f5510fed1a895c8a0683662fbed298f129f9fc8c8cb41c6c0cc865562fffa1bc5808413474b6709d14724a0cac3c598a0da065bd496ed7a95532acb446da77f36e984189bb157f03f7370fad0ffb19a53b9cf4b0210a6d33a714d919b607208ee1c72dc85428d2a7159e6c84cd47fca65fb899ba9d680d4811bf1caf19abd049d52e2c6be614df41154ee1a2e206ec2c292ec51a739171b32e9e3c14ce24f83ff4f2e0be668e873fc98be4d1afb6a0e0505993987211bfd6d70debf78ac8324706e6a36d39bab744c8a6003685fea2c5716b6029cff737f724d251ca7171b273e4cd25c9af1db67da7bf15d95866b40a16e9e94effbe3b82d9d0d07099f580cdecf1bbb4518008aef4e4ef1f5e7acef7203ae1dca032c1e789c7a62e238e05a1008595a2d4aa64dbd4e487c93a0107e9457901d571fb2cfbc51abd54654a88e59a94c32cdf9543ed955b89b323b658bf35ae6e64e4e4d3a9a4428f37f0cbaf01c5d0f5d7a7c4870cfa2c3cef10352989f9283ea69b2a8abc654f189c7c3f220983091d32a56341400eb5de9a0b6831f1f888c6fd64f9c06af35338375a3a02625fecd89a0dafcd202b3200a69bf4cce2ab84f7d1e52edc2a083b12b1d192007026f237bdf7b0eda5db3598173131f78b40a74d118284c912e44ba52bbf12c0d69617595fbc3abfe164701aad5153eb57cd2fc9aec1efab60e9d4e569c1aad9d02f173235f276abf860a74d2b31b792fad0cacfb55e046586ed78f9edffb7c69dd396cd53f82de605bc30bc60b10a722368e49544364c0688419a5d91c60ac2afe5630cf9486c470e4d9cfc997fa6602176ae6899be732314bb3c2547b259b70a73d56624531a90d2dc4f3e7db34c701bbf0f0c1d5c3991d72c19e855b03630c2cff403edcfc53a0fa93729a46e00eced5520dd5a91844c6156a59ce7479e186c52c5372b8c0ee84bd100d7bddaa42796a62b2e86216d433a527705bc92688119c5d01fe337ce82ee39a2e1d152151c66b1010d431fe0602867c24f015deabb07d03c048ae9a3680c831921bdc774574fcd6bb17c4ebb651794beccee59b375eaf2eb3e31df31ad750ef3a6974e1935a90e967e9d64a0fb543f6b05b583d3db1bbb2e12aa01bf9e4c06c18f5cb4413499a9b3fc43851a2237a32f2ce739de29b0cb82637bdddaa386b05a4c30e2fc0800abe46ee3e8ac563126d570eddca0ce38ad0abf3ae9739076e858a20fbb655d40644a02dea2c03cd4e111e4605ab347d4704da9643dfc47b305483e2dbcffa04f95610cd05add1a63bb0e3f2113f00f26e4b457a11c9d24d15a445a4a21bc855458b3c9adc5bd4d30920683770d43d6b635dcd7938340cf478f6ca92e48f13127a9176bfb6cba04983f9cf91c5aeb67e0fbb1976f25af8c5010f759221fa214a404945948e3163c1ffaf536dca8556f46fc1fd0d02ca8b72b8ba4dbcfabb67205b2d1b2f5e473332d276e4c5ce804a41f9543402fcdd850d4dbbe1c55cecb11ae054a64780fcd51371d61c74c477bea46930fe532d0b1f6eebed8f6f372fc4ca8dc73b21f555711cbab18b1bc279ef5576eb032f4e4f7628419ebd4db3f1e94483dc5753bd73d99ad7d2da21b2b896c4306a03b275322706ed266c83f504f1704870287dae720931cb89b3e1f50abfb798356c76fe390ef842c8b4e1fcc46e6050243f6c5a36d06815bd83a5f4246a789c865899b7f342639bc5c0978363aa5a769151e696b3ce027d881a0ae5e5959855a1f11ac867b6777289c30c54f02ced98184b956f3edecf76319f37336edf74eb30e6c6041a3eb1daa7e6975c86a93b8f23f79b2bc4aa2428bdc5c7e4e8053d39a8e30ee9f065dc4058570091ae9748a84c5ad040979cf7312549437e6c2aa772ab71dd56e3d46b6542a03d75363ab80ea669c076c424c073cee5d421926d7c1c75cac0f8b9a3446717ed4f0d99cf472a2285bb6ac725204e75d1bd9b5ed48163aeb4e667921e2daf065b26129ef37832ed15ed62d5b8edc9fea2882f862b6c03f0c21fd697314a1d8f53e582e9a5d4a66e090e06017f286108304fe3332fe7dd157174ccb6ee0fad45c0f303dc6563197763bd48edd58f03ba528840a4c6ffc59f9e5357ea0e8b910bc11a439e8887640ed7411dbef8bce0ac2a28bf4cd1e88df16e36e6b75224fada99566336f1169b45b5a4265140aac48b9743dedb6c14c90a9842749fe376d5a45dd63aa8ea81cc6987acbab1d26a859494a694acd79d0589a808c0f45d3d9d02c9a41d1cef1ff53f997ea08e6cc22cbc64085e67ef5ea227323413500c179795ffa6da004ee4cbe70df6efbc5bc9f935f9f0167eda54592f38d15301e5fcf8d91f29e7da15526ce480c54f67523" + ] + ], + "public_share": "7b894437f23940e7af19b738bd7794f29f935f9f0167eda54592f38d15301e5f1dc91155d7db4566c34670e2b952fffbcf8d91f29e7da15526ce480c54f67523", + "rand": "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f" + }, + { + "input_shares": [ + "3936ef72468a20848ea10552f7acbb4bc00477bce87b99b5e9fcf8a91e60195b08482153283c3a8ab4ccac3467243afb9d0be62817287a7e234de93541d95a210562502848a4d7afb69b825402b19b0cf1d5db7823cfa7c1fa4a0bf5e1ff606b75e0fd84dd5cc749cdd9fe6cc757a17764b5ad3e688c02c92cd5833f71de25f97eceb8087ac8b5d1dd149bd4c3fcae19d4d2d868cc0e94f2f5a994bc6c9a9bd971c6cd0c159e260343a5759cfcc742c12a1c6403ec64c6b8ed85d817829f893eda559cf5f7e0e1c73922f2481d07db4ec2de036b729bd60883e05c37251e16e1dfec5ec604a0c8c8b1be04a539b9936d426d68b8a1a23034d4a1d29b8f55bc291ec53a1dd0c612625c1458714d2b4b78422aaf9d690e566de78357620d8f6ad3cd02d874bc683418f92b88573eeb4f841219206c3d1e7a3c6b7bfd60370e29f64744052e4898066a1f5ed95a9c87a2b7212ea22e17ac8068e67d5e5af71a9923bed73559aae107f2da9d1214da56a96ef1ee007881b30271bd60490a3f02b93c6fc7a98d4e695ec6bab0abf6463cdc99639299a3d84412cf18a285241e04d1b99bc97a1f5c61631dcc679b295284860f0d8f8552d965eefb2b58df5e0508b89ac5f81606754d86322b4578c40cdb06c744d96d5b8e09313ccd8550832baa47bafd478e4aff9a8dd60fdb7d773fa0819bc60c1750192bea0a6077b42817c73024ec8757c5d8808ead159001a125bf1abe3b2a1a3b21022e8af74823587647a01495f30cc5566557c255db583b28fb480568c320feb0ecf2778da69b5632b0e2aca81b911de24abfe420a3c332d7fe1b1d8c3513551d11c3b5aaadb1bd0b16dc80d21dd19097a1c730b03999e05ae450b535a9e9f90bbac29e55eccfda14c38e35d93c7558d944169cd8281d9ced1773517f366556593c9309016197fd71694370c5187529c8eecfad9da8ba4edc783e73ccf107269da7a039596220aa500d7969ee9f4f224d905202f2decfb4e4d24563a04caf3f7022bb0911504372dd5cd1f778d15fe50514a3d3add46c9e88b003e485fca5a18fe85cb958865a77a541fc19af3522f091e698fc09bda95404018a109b2e8fb4062bdd87c979b5c9f8fd7c6464d086193658a4ff337e107e16a61e6eccb0aaa99bb94a83488a5a1cfba10adec2c91994150f460c5ea15e009b83f458a0e43e4ecd5d96c6424555090a26ae8c1a2295ffa59580a8641e73d92cd7cb548c5e252de0998d6345a7d382c2bd6f69fd4a7f54882a22e722d18b13cf176840dd28cb84729611e98ec24b82889a47b2857ba6f15ece17ce25af84c3e2c6e85c132b87403be066cf12941b8a66e12c7b2d077b592fe0a74ce0f6689684be11ef099deee9aa2e4e1b1b0aad2a3d65784c4c5a1936410b811366b336af3168d157bf4e9d2e64fcf1eb0a59a04717b40f31fa2eec988f8dc55d91dec498c34ee13fd3d9eb8ed9f1d14e0c108412c045e76d71605aa9217ad28f8299c1454dbba65b0e94a1dba3b447d472bd4ae30757653d86d1af5bbffbc7dc7623214e755bcc9d1ba110581b3025037df2b6b6caac3bedb15ad2d751c624c04618366c60f0c7f267868fc13338d1211dd8b800055ec676d028feeb5e3c1f222024e43e3c259b6010bdf264cbaa0f97287b1eb086442aced71132aa652e5300805efd3e60d475212ae36ab3b340f05a9d25bcf36681a3d3d83dfd88aef8d5228bf067fe6be9da0a7bef15c365317d23d8a00d717a1bb4ed89cd071bc37e833a6e7b8b0494db9e3fe61a06c0bd49f8edf327df8ddc1f7fa9b4d8a46311d204559e150b71535b5f89afcf5d88c31cf69d9464b567bc769b46748a085c49589d50875c34d325c365ed5c7e33c461e71d6e0d5abff0ece8ef156c5a42739a10a8ddd65e6d96fc716fcf3f4207a4262b9987fcb7d1e90b0297cc0d4ccb01e168dd30562338209f5e8d9011385ded69888b3ab9787dddd8d788003295643f6078d5d8e58fe9a8ca361be9a47e83bf46b2b13d597170021cbcc04a112c2caff969873a7aeef2388cf9e0adc57cb5d76202c91c1fbb1d78d588dace13f15f91ee9fb7290b1f799053d4849f58297e11481517bab71e02ce84f8263733a9f826239842cb22a47470bdc34f2320a7b5af54e770ddfcbc48b08e3469817c18704291ce8d05179c5522e3f1add50d3bd7b98fa0e58c256a52475ccf53521ebbeb5e35ef7497962bf7b87ef7f5ea82002b6782bbb6b91dc52b016bff9d4c70c253e808c600c7a854dafa64d8acb0c589283a55c14a198bf49b54e0e08fc91d2657e4bf66915eb047854b13cd989c61aea44f290b33d435a5c026f557c82aed9a4d874cb68e5a92d8d7effe67d6b16e223f738efa3263a216666b87cc12cd043a1f2da07a87c36890d2f9e30809b8a0f2e07ae7ee2fe0726a0674f5b03ca1d458fd9e42e6522356646ebb7179a741f599e7f0a04eb26d82a3fa9d96a5ccb9aa01c780f8157c9f14f8c150d045d05f65fba3e1f99afa12c2d94bcb94016b8872fd5c0a04639027347bdf1e46af715a0873d2b70bfaa7fc9041bb41aacaeadae26c5e18eaf09a8522b3434ebe173f7273a10bee846e5b41a68621699bef2c6cfb14a41f41b8f6b278888a85d32aaa138ffd948e2b4eede89667139283c31c69162b240db9b0e8642302f596a1c482cda3bb6706a9f18cac4fe6e192297053360e10d4eda6ac6fdf5c4cef6d73bc3a3b3742c7fbbab8d8bcc9d50636563ac67339a1a562786833a7b4b9e6a97ddd308e575f04d5cb4f954399e993af2c26c0934c236d6670e6570c8c2802c493ddb95e92d747f84021ecff6e64891a3e7d71ff0ed47ab797ee2b2af5f83bac09b474cfbcc550a898f15dd3256506ce1de3d46381a35b51323906fb3f186e64698880322311a50063094f0231bc3391567e2decb710d556071351d2f80891b2f2482cbbb2374a71a870664640e1cfbca3fa87d981f7a33697921271cfb62890b2ddda06a4deade8ffc4d6f287d916190d56a150cc46240f81fd717506e0933a13fa367f0d80eea00863a62fd57de4fcb5f2dd1a8d99f72457997f6b2973dea688f736aaf26c09276a71275caed097f791fa8808020ab98f03a921e3b000f20c7aa9596fb1c64a85f8452ceb533404ce483a8c49c7677f3ae23a0d03fe1a4e980189d2f538c2dff5377948762f16240a30deb446b9a32d82f7200f1b89e7719d5b840f8c67a240c0c0b0937837ff806ab4b89fb27d2516446829f4de9b034e441a6a2f2fef28d1340f244d833fc54962453c8679006691f0bd93af33df66dac6fe99cfbe7eafeae71314d10535e1b0fc1a18059b21f540a8397575c3bb1c5ecdc59b5ad73bd1a8ac126dcc48f8f3e58cfc3863f10421500fbdb79739db1795cf4764ff6c5b7c05b5246858e768416b8adef14a878ac76e2c103f2909a51dbebf1623d6e66e688a199f4e82feab0f21a6c9e3fcc029ef385a372b5366f04edddfddf0593b42a1f50f2ab9356f954f6b382a2511fe10c60b0872d3dccc952d2a324a12ca4ba2774e25a16b317f9e254690441ed9857463176e5cdd62857447ce5c00bbdb54845799245ba6b19f4a8b1573b0fa3eb41fcf1d4d5636a73d2da585cc2024c0b1952d1837903364bf936638509badd433129bc80dc83a1f30239d22acef66c1248babc3f2e35e94d2518226c9ae79b5f66259e9f15c91be00eb9b8aa3b54a443b6f6a4a5648838a1c20535aa5b7aeee7f762c4bac5b7c134001b6e156a566f983dddc5cb4a8568661c01c20f7ef4f105d5477c379b32a051b9fa97c8d1722eb4af5d4e550b56214786b205cb65def40127daddd9b0434e61552e52856f8c27f9a8dc0eb584fbfdd461cd14febafc2c6c3163ffe2aa1d4348374af665efa71ed192dd35ad0c468354b3179749cfcda99e5fd300d164c69494a4ad75530d7fbde4c19cdcd66adc07eedd3082b8878aa188345a5075f7d731c34bc3341847e321d6f5197e2a42397dd5ab9f97c1787fcf501c2c400f5e6c8c4d06310270ca6655641953766242b36aacaccc9037118afc736323273890591674804c433d81fb925d95cbb4f109fef60c497c6c9df07e2429232b7b5c9b85ceddbfa6349009582fc1501fa6f6c3ba1919acbf100b1b3ccf58944b4bd8d54b67db7fc4696eff395a6f4008109c1d95b1db74cd9112c1b2e339fe2e4b957b419d06257ae23c4f3c6ba3d2a055aca3c8eef965c526ef715434bb3046245c7e1337adea5633a7f0ed7944086f5a00d0f6422994a646f261ce602d5879cfefd9279ac515fb09989952dab4cb8b61b97f8d222cfed532aac9fe270b38b2d80501801cb0f4b2e068cb046f775e7d4d918694b8aaaa72aa83b2d63ae20c746e728c0f80871e165ed152981453a189536685061f0235880e5aee76c3d1fb627bbccd343a0e20c5fe72e0e2824f22f6d9b14e26191d1c9a2103e5186800221c17757707370924a9f89b553786cd92e84b50d8e614c4a89266219969ed73c8a0f118375a9ef3dcc28e858eacfc0dde43c606ad21c357da0477206ddf935310ac1f75b411997c4c45680b8a8ec76caaf8600a65c1c67f349a470684d3684f703d2f7088ab67f6720c048f5816a7814acd41c02399f55e9df1529cd89746a435353f69c539373c442213247b34ae0ac9bafe09323af2114af66bfb7ee8c280d9382090276534586f9989fd7233d765b271365922748515a0701f197e7e4a68f4556b1bb298b02e4aed0d0a87d83c3bc031b4f5e82039c86bdd212c68bc33b994d0dbf346a5e4bb9cb7dbbe2c17aa5b97c48ec48963a9e0b14a171aaf4a02609c146aac82fedb3eea67e4a3bf40c29313cdeaed96cd898a913d301a60531e2dbdfba087941b818ad69bddef5e8054f10cbba0ac70ba356124d2cb5f826a46d8c587dbad1162e227cb9a8236fb3f7797a346483f290ce31e7502803c88d827992ad8701abbe256119539ede4b858b4312d57d3d70988a53f94b61cd7c4d0777a8735b2ccc0181a09aeec2d9e645116d5d1d02499338268cd9cd59fb0f9677d6eb8784d9282e00ac2c1b35927960cbdb8187a98d83cfaccb9878f35060c1bce83300fbea83ac17831af9e113e7ee6a86a956149bb73c2af0273fcd3107ef81ca03070f719f8cd7dd768faff412c656e86b86005808327e6f297c268589a2e4944f5b5088771814852f9f5bb0190cb3b40d04d84f44ed7abdb4813f3dbc248095ac0fccd9f04fb7869840eb3b92efa73041eb577a97b98e1a9de3a92862d3f599467f8f95ce3234f12eb1ab7cdef0402abb589dbe8299db143fcb5800fadb7f7dcc8d23c02c2549b7e773a9448a1a6f72d2ce526394453adf30efdd4c563fe24b21ba52e97253e96d285d5ee44e85fd520f2d78c4b85c50be889aa27b30d9683769c55dd743ce37faf503cc02329c7c105d6573eb11e376032d89a9df0cb0b1ad2a8c75befce93cd16fc30887c31d19007e7fb330af79c42039cf94c7cc0102b332338c14bccc1d7aaa2a0c0aa92d82d4387a3d7a0a364bb3f39a1448d4e14234f3bdd1bfc9d635a8484a60e3442544df842f84403ba9a3c96d2e57dc7a65cfaf56d93780a3b3d47b1677f482557df0deb0bb2022234129ffb5d49d16a44da8f7ed20a7f170e0523f695bc32189e97e7373931778b132ab3630d2157e63419cc1718892fe7c47aac6a615f64f2a8fe8939f017594d4e863105427825e726a1cdff77f3e2643613b14c4672b78b89c6b49a99dfaa3aca3b58a01f97617f2d180a81adf2b538f3858f19a62b1a62f7040b585a85f2ca45c2b0bc62458dc54e7a7563115ace8969c24dce20d3d31f3d33d03e63e0d2e7e60e7c6df0365fed31dd1fc17897588bd734d38e0dd9d367f708dadbbd5f4e4d3a19cba003c7edaba0ea799dc2b861a96a9580e70768217667a88353bb4c00f25fdf58fc294ba307670e0afa1730e1d8642175ff42e6f3a85a254260857b87ad6270084d2585fc59066cbedf890f1dbdfb248e9c030a3718385bc3a9fb9d515dc9c9cba763103da316196bb42bbbb7c35c39f5683542681de9b97c7ad8b375bfde1bceb38dca15ba4dd0909ba0c48271d8c6851b503cac3d4bafd9ca71ad49e5001c67d76e42560ca21230c9a2aec73775df27a1887867ce6b46939d4a2697fbd3a8980395983510b57449e3c6acf27d039847fa82a1fa10f5c9464b6f2e79c364ae84b4d59657e4e86a5bb027520b621bc11001f26a520089c836226de5e8f00e9bdaa98f2a20028d0e1b1f09d9662cd94856f0d4683d0821e2fceb6988f81a9d3398fbfb04ad3384f5f3702fa3f29cfcc352657d896a463909887672f826fa198e33cc6be30d83911a585567dcd27255af82a51ffa83c0fb007c8258c1479d9eba1e87d8c6d3ec18b6bf29efb71778210406bb76cc4a1845ad637b08034818d0ef7277d2b977558ad43ff38f27b2ca30d9c1faeccd38b332c6b08e28fec4e10413d1636ea4caacf47896addc6beb06058f84664abe0dbfbd062228a9b374e9769f516986c9bdbabc3ae10399245704eccfb25f4713cf25a439029c08fe4b6b9cf22d60e8c5376a50c1a7fdd0f1fdbc9dfa047ba13264d48a9a167f17762f1506b334b19f9bd02c58e89af5e6e8e27c545a2cad625d25920b6f59ff83f5c2f6320aeb3ddd6c56c281a4088d15b4dbe59ade2a05b9d6347b667d15ab66d4eee0498eb7fbd145b4e2aabd9c05b47c350b35c08fbaaf33d5d2a03b8d8fe7211f04a0c5dc23c22a189ea936ce0c886dce4c5d718e7c42f71e006eef220508eb6d736d28f8615f949a8e75d2a4ace27ffc6785af8b453c7d5ed89d1c286fb71505754c0c57e2470d678d131ba1e1908ef9ae17ad2441fa7739643ec80b296bc6a62bea4b59a0fe59bfa8e022d08e1c4be9e65559dc3b38d9b9a10009d14d41010ce38c0d2c25e51f7b9eac2f60ddb5f691260ae6ae2a6ab636e08443ac7f83157f21a7c18c95dcd6266e6964ec876fa9d5df612bf2ad10eae4d993ec1537b1df387ebbfca52ed8efed06573a4f45f5a4cc290a01c7662f57e8dc16f02d4d6df6bd28f618464d804afd302d2747192dec4e4f2e1143522441e7d29169e05adb9c24c9b11b994ebc916e8155c45ebe762a43159b62ea3d37e6fb338c48f5b1b7cc6450125288661ae2f498dda8e7d8dffd4ca64614d8a3f14fe8d2671528d38ae0d17cb550f5c766059f2f9a3f3cdece5ce8a78d41c5aff106c0ddb42e7f28057bf10b40f6534e63a53e5435471727656e03294e67e88718bfbb91c8b16d90a1e4df221073b871b6634c03d092d15402a3b6facb547175989fcbd469db5eaf19e3b46e3204f5cf459d5172c32ded7a949676ce85bb5668431eb8367f92a04634fe40a061d80b08fba810e30d6a9aff865f2e42565b6c0442d8665f3427a6fa90856da6fc3cf090f452f2d7662f91dc3a8aa520358b747361d246ceeaf46629cac06b8545aee12ef8b3f8547e192d78f7b9c186d7ae0ae778a319ac3e9ad8064c2f5e5ca1c2de50806f1becb895b968e0ab3acd8877ca860413090837d8b75b3d966a71af47f28bb7e9144e23b868c039e9f2bc030976ce79d5f778f900e93ceed7f44fe118afb5c57fa6bcf0314eb6d803572269daa4b8a96a3178c38fe3d06015ca2d91c4e8a60ef2401ad82626baccdd2f04fdffe031d8562751a30d41169a2ce7f0924ad400c8fa6d515ccc6e1873d01e507ddd180afb111071ba63398da8698840a87d8efbaa3e0e81b31f8d69dac4a560e11ec82c4a188111e0e5870cd20fe65a1a93afa614f12e09a0d65a457ee0c0d90698f9ad4dc499cf8c8072fc59b8b159c3f03717fbb89b8aa7cf10854f1fce1654f8a79771dc42a13c6193c7e7dfcf9aad366415522f7f240b5fdb7ebf7de037c492173b5eee31904fb2971b6e2d67f16c614ab208a50b975580bd1076a8f45c29dc1d4642511e5d40f099bb0898a0db9eae2ccdd56642e6067bb71e9ebe397689e911540596ba4d3711ecd08cc0ea8b21a898870a28a4682f2b6d0d6226c1afee8ff6d962b6ca0a41986ab7deb5efb86bc5bf3fab7b5a5818eeab0b13dec5ca964836d1dcc0e315d95b133708f79cd3f56e85187e147399da41ba812a6f08388bbc4436fb2b5c4a5b8d7eb240280d4731ff8c57baff7aa9c7a6ec88c3985f2a27a365afaeb1de6394e7c82339929f2d64d866811a1fc23807ea8341dc54694b739fe7244487f0bb1c482775ccaa11e555dae48357ec490e2f713cf15006aea4ae57af14a6536888a7e8be0ad4127ef9b2483b238ee5f5eca498776adfb8b426d4e26e8edc522c494128b881ac6dfdb32866bf8d6584e89ab7e61d917c7cdc381dd501bf277ba1cd676bc79e0bb8c76b1fdcc918f84ff3de338fb6c650ef8294ce843077ea50fc151280de1b31969d93389a1f72ef12493bc0e229e051b4c5918d2617998e5255565841bde5bbcc3020fea751361f992aace7d2acc7426f61a778222dce27f5c9a047e5e911f2c197d9112f76b8afe28b9dca4958568b58dc36b94b51af41c1dd042be3ff68ef56862bd8d500307ad51bb25a0379b32af863dfa5c91bd0584f132d72e5cd9a13e3403bdab55ee41c164ea16d4d1f2f503723a367e9e15326e225195e5df700b6c93ebc81f10a32a943edefc2cbf904d99f638addaeb84a2e709f190fe3ceea0733bfe3cbb582657f2233dda2c544c3eb897c79bdc7c5200a90e51fb3242579e7974cb0d87f318ec2734b97b4087fffb7a1574e0a19fcef3b2c1b61e65dbe9f72ebfcf3bcfd98b0d4e3f580c271c1a30218261a084b2c0ce233870604dce6d066f4d2c7ac589e6960548058c291ebeebbae50db10db816f18d625ec69cae3cec361f42e0dc73043ac75a2f682f4ee6237f468b6570dbc9bc3047e675f83aa4f63e945506f36d579b0e202bbb9e6f25291b4d77c91758767ad3bca4ef2acb63d96e7e83c4dff94c12a5f972041c05205e18294e7d6ffea786bb9b06cee644d650d09c35679aaa50d324408a8db43671c1d22b10743ac66d56e6629f44e29e41dc6b4e271f193d4c27cf0c617b7ff18579f70f0691253fd6b8ea7560af18b6432cf6f784dccbfb4f28c4f4b9bfceb2f1f9785dca0dc7067c5c06fbf148a2d468aef4e961779cd65e54224d118282453825ae744b5b6f04f431484657cb2f6c43c6377f858b597693eef4b138f8966936bab63863a90a0270c63493e09afe7015cc371d5f70f3ce792a26cea63696651fa39ea7d7de701027676b6e652513fdae88b2ba306a5c81052334bac587bb80ae093ec0160009c57df67be686d8d1295a3811b0f3e30dcc4b6eb9c2444bb914ec91e85a4a851699dd3e8c29c16ad0ee2bf11bb22cc47c49f0b08585beb8ac6ec368eb354c516939f7cca094d522b29d233b65996bf421d848ae23daa16835a52df8ac5161ac989a149b25b3f9b1b17be77b2a13762ce7b0501bd888ca82289c1d8d458d9acf654e7069a0ac1a214b369d12381ed53529f5127528d75f29c7f138ffcd75f4140d1382d7f13a8dcda447dfdf314dc66d5f898571d3fffe5b5bb55289ad68f355c90bf85c786262a94f39af939fa9438906e02fa9a6084da43e4bdcb9105f1674e6656c5a9e025b0b68123e706f53e7c540dadbe6e9a7a9198ae64ac4b7cd96140eacd8f8f3bbddd5e07520bee3dc324887a78457a439a89127f3af546ed034be628b33b38ad199a7ada205c62079e6cf514be216f07dfd8b65b4b36de4fa06af1f58bb1b606d7ce13e92fa3662957242763b37678fc093ffc8eace506e3adb6d2dd1bb7e168308773d11ffd0d14a3ffcb7f0cdaad38f59b969b30084cdf21a2206c93aeca8789dd0f65e90bf0a2e9ac2cecac8e51d19b2100cc119e53d34fd8bb3e184b86ee5cc56b645d0e7dc6480f2d8793e86c48c91a772160863b136e89c21c009e5f51ed0b08e4e568545dd083d304da7dd7be35286d95838bcb1c49457cb962efd3041f5d5771f451c9c1512da4aa638ab16fa067246f4773f465548d4005ec3ff91f467de7a1ddad2ac74b78d55bfce5e2b550a54e0357bcf42c2cd7d1de701a22384d29c6399fae964310ea3c9ee1a31c99fb4dcf3496e99e638c2609a9ca72623765d9ce89ef38283dcaa78dac362aef227aa6045731e76c7997e675677a5f64100c6e9ee17b9817767025d07bec2d233c70933ef7e8cc475410c204102141c9e1e6d083de573d61aabecd5aba9a38e7fd4d8760843aabefa8d63bd1c35402ea0f0d260f7ed9f8a78289b51190092d69f05ecfd86ee7155604a2dcf259a45e965ec37952b14cdebe3f71c29b6e3275db507151f3df14ec9c03f13d8f8b870c711686ce7d36a60d66b2fc3caf6cbf1564a9ec78670d5fa0a939a6c6b8d316d899c9e15440f27bda7f17b92fbec06176dc22c75541c366a497c4d83879554c5185f8bf4cdedee03d0fb7232a98210a7538fda9056c12c5b98df826c9b244afc30757aaac73c243241050ec0f3f787ca78d2469a4f6eb5ac7d9d0b588a87a5699c8dcd66b71b42212ab15e0e1cfcfbf99b6d624da36fec294a567ae58fe3fb9f5f21036a232b3e050595ad5e2624e0c1bcf422b32b5d4036eb952659bc5ddc2a9923f17be55257066b76742b359b2e79c32d1e073f66b1b052d005c0ad71f853bec341228999e9dc80d349e38bfb1f78be27ed717576a749eeaa1f14f1065d4d793f3783bcb74fc5cb16ef1b5fff4079649a63346b2bd66b8ea366f682d087dff16aa4731749f7b7ea1b011f03232f304fc9b6f770a362f34ac7df3f77443fa692070373d3864e0694ad73b0cc02c938a10591fddf09b07bf76c651ee5b63abd751d1c1fd42e3f30fde8ec6fb3ea295f6b3534f183fa0a6ddc6ba39c5637c73d808bf15bda33b5602959797ccebaecbf67dcc2a7eccbe5fec9aa624f765e2d4a938b627bfcc7f6f538957b6b0e6e32247587a945a3be4b82e6983200ba990aeef4dc1d47f7e46540b1f92a929d91a727d51d806c39a5b5d1a77d97f612e4cffc280d66182ab1df4119e9527bf3c927719f59a0505c2f88e4e671e50c26b9cc97ef449cd43e39c44599ea894cda9c388f5d17be81b44b39ccd4759ade6b2b311d82e4564bf848a1f4e70bc2f0f21878fb4faca97143c1a500b2c49739f29ba979b905a1fa6b534fe768d1b0b9b79e9c4aacc82ac19d06ef79b73a8b7a26819b7495e9ad7f5c4d92f12176c3e6fa29cde0bdd5d08a8b7258cd5dc0f77a6d48cc0955fe022254a7d3c4ef01c39bf7b573f07b85ebdc61ff7fc1d2f7e275365e9e3ff3d858f05aeac79feba88ebfff66b15fa9a7927fb08a2d5321daaae7a3dc71ad985a135d71f947e833aa13da6cbd45177111b0e5ff42e014aedae0f529fe6fb253c93e9f04e84b02c1cf8ea5bfb4b2a84b24dabc7a91cf80a96b2e0f457175419d1f7756e2506eb360a888c35e4b0b6e859893ad5af680c749773f36a8ec46cc1fd70de127cf52567b78472f17be5ddbd5831facdbf2e56a7255f47b703310b49ef0a2cc7a343c6e7d5173da79fa5443c9da203621d82b588994fd2aae15f3e8b357e47da4d0d61ecfbbebfec4951d750f7eb3d5aeef3b10b7e249b53800fb6fe89e4246635fde2c3a19a4b6e32ec2e7efb0740361e5f3aedddcb0daff1657d683ed65a9774fc8a4b619025e546c5511b09805dfd9907f6522721df43887ee04d62b7bd7363dc4a16099918e4c06530c5f251b131961df13cd0066f07d0361661ff691f68af685f5a50e77768d96183859e84399c54434d93ee3e6e12c3914a8a50f056412f5820c6e1c8a20c77454b715387c2b6ea88fa38d78970e69d965052aa7950c1b8ba35c1921582be847fe34bf828ec58235357588c37b2522448c7f16772977711aa7b0b3d4ad8f656e6859b9ecb10c7d8b5e4caa1a986b394339a0dbd98c742f5140f48bd5594da9bf360111c0cf1583fff12c83f39489a76338900970ec39653a42165890a25d00731927ec21c57305f49ab647fcc0c2ede90569073814260d5568d66f568123878a38a01089c9c547b78ee9e005a6226010788f0b92786e4bc800f6c71647f12aa64218456025a1b37c165eb8229a4d38d875f02ec59250fcfeff520d99c24242e0d6dc818eb79a6e050446b563a39c4899ff51de6532d39351840e886fc7d34867bf6b1527f1e66c8ca29671333b39c2fc4403b65aab85029a39dc7b9810d13ccfd4d45137bbf59c7224b08fa85da952d3c9d00ee181a8a155e810a078008168fa20f3e018fe560b74a5069f87a377520fce03211eec91b2512ba65af9a7e95ad99facca18342352aaac8de7ead38c2942d112db03db70b4e3bac7ae6a1fface05ff8725657e02861ec7b1600ad1f7e6ef7ebbb35f0f1364bc09995f6c17191afd1114ffbfb0fd622e954f90ee50ccafd5cb42bf32d09a1b975beced95abafd145bac61a9f2c283174131e9d384fbfd40f7c74bb03cecba86b24ef5e6cfc280c29d4910fcebe8c252234bea14ee5a3eac3c315635bb0bc6f7aa1eae53bdc82a5336762fde82ab7263a431e9850e9fc12403144abfe8e6c96c369b64581fc67169a8d89609530b96c8b92f40027b5603f1bdf38615c895d9c6987b65776da5312e457dc37c762ecbeac0d4aed881646a5f2db92b5bd3f0b9ba570f8cf4470de2daaf6bc21f49cfff5836313feb728b532f9fceff18e24e0bf1a22c8f900aec2878715247fb5316fe4cb1c35b31d37a3e48762b4aebceb30a3265486c25ed416d881802b38db39a1c8c517a1e43b7b63e74f4d031e6ea739e7fca6f752245a6b6d90d4abf294234dc41ece81c2979c7a840e289efb8c3072e6a1048a5b284e489827374154f0ec99111aa2f485b23ab0d76f174221d9e3ee0cf1388167f9cd786013a7266d480ec19091b00db7192c0efab5dae9cb73c4d764e5af98b7e858794f85cfc6ba201855d5ad56721c37dd343961724e3687925ef1e7c0bd4211c34d9793aec2e730dbf82c7f8dbd42c35845aa3f120d32a5f238a16a61ba497dd5456c8a53028f5c5056cd0e6fc435c2a0c10dd52a49fe729362e8d89dcdad77c069af7fc180be047ca417b7fea6aaeb9a2d8b3d5cc767255265fb76c3eb8bb040e80aeef68e45f28cd02a022fe22844fa6673152d4fd51e63a0ab7b5a42808e983162214df398c091fb731c7f054cdeac500a168ebb9fe9042d0c854dab7ac5412df2ec94fb60d29a31598ff07ce4875b96ea4a099754aea878fbef3e2c10d4fdbceab4ce2c9693536c60a1e544b602a4ac680ce5328f252c28e00ca66f36bc23261ac1f0acc7bd925559edf06883ad6491ba76498423c6b9b8b2fa703e3cd6df494afd110336df8d4a74d20a2e6dd58fbc8b1ef34ec03dbe00c5fa9b794d062fa4e934944e66cdfc2c30b0815802378173f009e4b912febf8cf71a0de4ff41fe981f024c62697fbe629d885441ff1df8c088255df1237446b6f7ac917c8d83935114196dd659c712558806d24c7fed843e483ce6c3423573f7197ae4e2c9217eab190756ac37bbce26a1474b69ffdbba2e7f4d7e4bbf9b1952b14fd6036b478557138c027104421672f08632bd6d389c235a35f8efe6768f727a76de25dd7c7524c52522ff0d7f3922bd61adf849b0765016689b8e2250cea936fc0ba6680c35b04dafd976ab2cbfa299ff5fbb772146594e8c66b6ae6389d250e5395f6881864cdfa6bc5273e20a7fac6e41b75e1add06f9be978046db8f2b0f555797a75e00ab0f31a97990d82893ffc7fcb09a68fa699da1cbe71616129217a90df8a39ae233f3ed702baef500ea7dceb423e759d98f67bf370612ed1f3609ee15f81e2462a826212da4a7479c446d74b0e3ebba3c01e15d22891caebe004bc6ab6f3f3aaad93db3a63e9f500c5ba65c1ae73621e2d6d694cc443910494f8e985323d811dd63c9f51d1c2a19b4b7903f45123c4eb7faa0f2f1f01e5e85bfaa8bde159c6a468e5955846631c2013bfcf7c9c25cab42a8f7be1914ea8e09d9f88c62f70212b0bcfe495b19021c8c506284ae74ef9323dedc2f76cf7c8396d5ab7f0cf354d132736e6960a982b216f0797ba6797461711d64a5f800818ab5b9498035b6df462c97b45628a7ddfafafa38501816b665b1119e9eb080c66bdbb2ec48e9b72cf5e1f4b55fbdf37b5ab387a9aa068851858f118e8c129807b202979c706e0ef9af6e9c5888f481372ce2b4b493d1b182e5745db41308c3bf8ad64ec91b5fd300471c1b0c1d6cbc11c2c9babe768e54116e0459c01ec204a6eb77561b7ceec978109a01e57eee4309b6d673d949e7b50f94cf247b9f1ea21f8343d2b7b6f66fe4e02ae8e08a6c2a1ab6ea978ba3b7c68e0e7ea78b823ffc6c5dd9c85e11563d0508a41312051aa1ea6cbea8a8216ac9f3d615e9849397c9d028aeccf6f12b989ffbeeef832b08875f29588c3f89e6716c3c654b366978ddb314580dbb2355fa89bd9a226b2b9318723c0767d0ebd1558fd262fa4f73f36c4a49df929ef11bd06212aad32fe73ad47006d20e6c8d0f3f132abbe548b3cf2e50f4f696629e7faed31143583e08e6410eaac3339a0c2919544e660797b6eb6dca611a3a4bc09732ae33ec6c99a9a5072061fc528f48f8254d0709d85c02e3d88a6649534a9ef8d4294b00195604c07fb0a69d4d33d8ca4335b73dd47eaf38fae90a807f468c1fed456adadaf24587d1d10838cc1b63ce8c043f7d9433c015625dec95e05474c5f4b4da500bdb4dfdfa4b03378e98ab26a4b909ccb92e3c982ecf43554b29f4ce0c580e0857aaad1998166432d13706acd27f66929d109e4468cb1c2b675e99c5a7e2b7bcd487e57d764cc2173964a5cfcc2be8b1b648bae6cdcf6aecd5e40acc614b02322a4d2620216dd4adf1d44a72595b8bf16d6158641f1e0de89f0f7bb99bc4759c38587bee79a6d9cdedc6d02ed2d6acf1bd77bee50bf2d90fb6457f621a0349642be3a71ba4827a658b7d2e05ef85ba5dc03f03da35b909fcb4e0ce3c8827fa2d336de3c8e81b22c94fe5ec7d2cdc5f0c02ea866fe0afc79457713cce044db721f15e4c54d1ad50e1a89d20e41f9bd01a191fad38c48de8aafd428f8d400da427cc5524991c0ceee2f3b7443c24e7130c4c02d35b133111ae89e84fe6772d6e88e391bcfa1e7a82ba66a28989b879ef83f58cfb3b46e30c5d56957510a80e720b5c2c029652fc686650c6c5e1092502d43d2a43db51bd5ed9c802b2a990bd4e78b4661025847af7c2f026a32cd9266b054954530fa92e1fde91d52eacbd5b2bf1413cf8337eea7a95c9fcdff888add4b6e4faae34343836a57945be7bd88fbe66fc6720505e324856c7a833796fcf0ff8cc7a65fbc5c726db6e15b63b142caaa27ec967b077391e1fdd3d305a2ef8e11b8bbd38222ea78a6d51723e98d8b32aa8b13972999ffada7e0fdd36345d429ab9d9290006a9b32a0cf86f3581e2232349333b0c8be7df1533f19931859cbcc6d0bdd1e2412c18a8fddaa7f2624aefdd3d3fdc7d81cd7575785affbc69af91137272090ec0dd91b3401157464ef7eb93737f732256d5a609ffe2e9302f3b8dbff3f7c7e0de3dec5d23cea02d20d475cf1145ce7273d2458a6555e81ebd0fd8d82426360f176362c30fdb5fd3ba2d4767405c6570f88c5135ece2e6f58fcedd2ec84af69c2f010d493b49c90b020081348cbc1acde83fe0b31722e3aaae282852ac1e4e9ca75abd418115e61cf10527cf7681b8067a7babd5d4a48418bfb8ee2ef5c0e1f2244272c2697b33dfb55afe9a3714aa11311c8e67d7aa251d90ec40f89a9b4214211d787aeae5dd7a09a7a50cf4bb622e45251617bd8203917f70e66e1fa253822fd596dd33db12e50573f9b276ada1545448bd851b15931d9362ce3caa7ba0c1175a8849eb76054bdab078e841099d0e108e6fd24c119abf2e9204e85a19e0074e7a2eafab389a7d9f68a312ce4ddab98c9e9ffc13201c0e87e36216c189f01c174a36c531eb9aa1618dc3968b44a1590e9b40526e0846f7552c8c0ea39437b71e2fa8b000c14fbea5bcea7dbc88c3c040978e6023c6f524eedcaab299c6ff679b9364314da8d66addfa8db6eeb4b575ccd0a66bd5cd5732b951cea874e44e868f3bba02eeaaf6ab802af380ddec585f9ca007e82085d2d0d2142e0b979755442a077a872af4dc99fd43063b7263031fbbb5323232a0a7e059bd69b7e6681a9db513436af27b9c7128b827d42d9f6dee76106fbe63c7687ed73850ff0fc962a0f1cf4d325a3fb78ae54499496880e2ae0d5e37b6e1925c4a4fb50d990f342e43322fa968ed2861ab6f4b2293007953861c760f47ac2e9e0871d08ab4a3969122f00f3f6217f43ac24f2c2614af963ebad3dc5708c71c2c1510f83109a3456c94ab89fca42c670c9941867ee2ac25f676b6d4549a46259f03f8ef353d0dbc1652253ea703e9c674b86298990eb41be04c10be5768de89191ce848a3c06a53eaa8d3f6a9afbcbb8681676c2b864db249be03b847b24b490090d6976d49e60b0690f8fcd7789a5436c8519c9a0847ae00fb3446643beb8b734ce85681f11654bd6339387f6de215520030064f273e93eebb2fc24cdce21e4d920133d73aeb8d7022da10f029668da129ec8419f8d9225aa84bed87f21f8d275df5c27654cf7f9c510ffca3a497eeebfb2bd6de1bb0426673163ebbfb4c940bc9d2e43df48f69017435b800ab2c9071cfd3fc6473ca0f071aec79888ee1a1de4cda5ca26dc93fba0e27240a8328292d792eb7313bd1d1ecd4999fc3342a118871d7e9aad98b4c010d8a1c2f936ce7f105875b91cba459eb0868fb80b2941b19f3c7f7b22a97c992c65da235599f15fb3547cf4a6afbfdcc86642557d45cff25e0f8365f32184612e6e8b13496ece55612f18216f044828cb3ce8b0eb4909bbe7920f73314157d37be31f8584c1988211bdd73e8fea2893f0cc19d952514322cca54cb078da399798a813aca4f9b76f1d864790932cb22df17a847733921c3e694ba06d9ea25bf9034a377f0c8ebb627f390c992b4bb446aabdc22bf54981ae54e3cbbdb41f43959ade87e625c75d95f205c9c580797a0319909fbc78de65c7ffb9dc53e8308e3e79ce61cdd56e8148631121286744152d456035dcd5f6b4c68e769a1d06b0cad0850aabf4d4e09d59acfa1068b6c66eb69a4b2e5a1fcab38ec75f51a0b3017ffed6a984ccd2ff720519f32bb1b099e9e88d8b3c1a937e0f4e3a6f8d9723506fc9118857b13dcd0423b647aaa77b9d892b44aebe8268e51720449cbaf7cebe69ba72de7a48d1e078f220a018f84e81d62d85906cc93155a9dae50a02bfae540935670df765f8b4d9065607948c8dbd8b8c8c18a11acaa129e13935d05b17099bb1dbb3cc21b239d1a2174a8227af9597575afaef51d9c8855d9284724bf2e9ec3d32c1e3659d667b9ee69db4208bce2b68384ae8808691997ff1b21a43eda51c7e142bd0fc9267a98fb4a3fd791d3dd0a0403e989b270094bf8c1070f1df2b5ea49622cb63c50eb625d074ba441ef3279010cfdf3421ec23f2783be608473b4a7158cd4dca3ff4c89c5a837bfe27129960c7e368e5fcc32003273b1ab4146b3c7a78a27182bb7ff05aacebc2cad6e55f8d688e5f10d013707de149f391bc4e9cb191e83277692ffbb8bedd230845350a7965f019fd3225db585e10ff9cbe2c229abbc91d3501194524887038f4afee0f5c125396091ad27c16b7b7a306ef94de0a34e8804609d521ea73077f7aa51d8ec47f51efcb9b7b256ff0ad5313216b0f16a94800eb1d88e699f8298367df786cc8a36b1f54fc884dc4525f18afc5716999e66abc27573a53ad7eafb1f2db0b3a83fdbadaf1e09cb361b37159d0c256931ffb426e8fdf0c9fbd89adcffe056027fe41574d984beb186b8f550c47bdae592957e45d0e163bee036eacf1f5470e8f6cf9e7e5210b2fc0e157572a416182f16f472c3931d3995d5de1f805971e1337509db1d3b5d8c7124114c0f91340ba74463d5fbd6742a50315d5628b75b2a4a2a1b15d8940ac5eb6a2fdc57c9ab560cf7e71b4bec8ab286e926b218970f36750fb6672896d7d9dd6a79fa693432f1ae5ef6cc31c4f94edd4b6035f470f56a326913706cc3f9439b3c1fcb05c01415dc0b345403def00132d827cd93736043ba366acc7a38ecff45de663d7e3133ad539ae3cb92578c7dde4e6a4a320b83ab50e83a32189bf7d2ea4f415f0409bc4650e7e057422bb0dcbebd707252c05886c7c2bfe898e0e596889b95c9a48a13dcae8bb7513afa941b057de28f4b4974ff8b7ac98c6d4a9054149b377f9e6a9964d8f2c5c258e7a1d74d29ef2b178c1c2df602c2e9c94c861050a90f08c21bdd57b4d4179b2738aee9582b50c61ec6f557fd1be788bf8d33669ecdc320fa2cc15f05e4db617df58e169204f039b269be4614e34b0d806467541635eee1671f974c9fce9f12da0e3307a3aebc53faf2ab044cf5bfe64e644d3ef2b873c0c456447a3aa105e03693f085d5a0afea8b53273aa8d0e21571499a45f2428120a25db2077fac8bb71090dc7d43bc259927f30ed30f976d0c3e7991c33fd7569c159f75e516485d6ed34a398c4bea1011c4549f1bdd76cfe91822cc0c332d01f8f7f263f5b46714cc3d60b7b2bdafd09bbdae1ffe79363e23ee8242234ac891ae2dce89bb5028ef38355b225c1c9dd78ac0475cbee533ad82362e2d3bbcd4f19105e024233adb2e5896fdda2b3bf5377e7088f165512aca0c65f3ac0e0892baa8b4c7844cc028d7e6b33a6fcb84d712f5357486668ef6a078e7eda84c868bd6cc02ab642fdc3a24b4d0ad225c73b12675182af191d88d9f0c336a6491bfec639dae14be4a972cc6a61ab71e7da58d70165ab13bb34296a73be1a855ad3f5e13895e3095186dc7001e46b3299456c2df3eee56e4f0ea7738afe34f911cb603103a08a8966d51243a3762aaa3c92ddc4b2f4d96133a6934f082f3fc2595905fcfe5edfed85e97dd8edda60b3c5a018fce6a62c3bf964ed1dd90e1d536c276d4a914ce0d57f029be68212d3ab6e010b4deb193e140f327f028becb015a95279ba060711772ca8c69737c1ab5c304c592c2fbba698a461fdbebd67338abc58257f298f92ce5f344d5b60539061ee642f446f58efb14b3814198fdf4d113ea13b30bf08b73a78b88240d9ee8ccf99288efcdfd16ea6b1a1b9e66beab0eeea9cafe070b7f9841791abceeccb043e155001143fd221015c3ff61a0546acfc21bdb912bb4a91d3d8f1259da5f5d4e85503fc73017c9687bf6cc4355671c6397fe9233ac7f5d54ed75685b8bbce58a52ee7c0d4de9ce55f79dbe07acc10dd8a048b928a577ef2a37b9126a6ddb9906d458f60462f837067417b18a81b61607d62f8af79fbe444ffe95f336f6dab47eab8a98645e0675444b1d6ff39613655b05404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f", + "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f" + ], + "measurement": [ + 0.0, + 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 + ], + "nonce": "000102030405060708090a0b0c0d0e0f", + "out_shares": [ + [ + "3936ef72468a2084", + "8ea10552f7acbb4b", + "c00477bce87b99b5", + "e9fcf8a91e60195b", + "08482153283c3a8a", + "b4ccac3467243afb", + "9d0be62817287a7e", + "234de93541d95a21", + "0562502848a4d7af", + "b69b825402b19b0c", + "f1d5db7823cfa7c1", + "fa4a0bf5e1ff606b", + "75e0fd84dd5cc749", + "cdd9fe6cc757a177", + "64b5ad3e688c02c9", + "2cd5833f71de25f9", + "7eceb8087ac8b5d1", + "dd149bd4c3fcae19", + "d4d2d868cc0e94f2", + "f5a994bc6c9a9bd9" + ], + [ + "c8c9108db875df7b", + "835efaad075344b4", + "41fb88431684664a", + "18030756e09fe6a4", + "f9b7deacd6c3c575", + "4d3353cb97dbc504", + "64f419d7e7d78581", + "deb216cabd26a5de", + "fc9dafd7b65b2850", + "4b647dabfc4e64f3", + "102a2487db30583e", + "07b5f40a1d009f94", + "8c1f027b21a338b6", + "3426019337a85e88", + "9d4a52c19673fd36", + "d52a7cc08d21da06", + "833147f784374a2e", + "24eb642b3b0351e6", + "2d2d279732f16b0d", + "0c566b4392656426" + ] + ], + "prep_messages": [ + "44eb2da26bca007b9183530fef076cc962c131b1acee354193956336633f4eea" + ], + "prep_shares": [ + [ + "fdf4df7a6649c6fb86adcf72a036b257af32000234bd6dc2508566e2b2980c4262e3d52a8d6f5a1bacb195968a631042680638e835197ad3147a9be3fbc6c450cd7d394cc3ee54ccf73a4a4058da30a2ad765185981288d7799d111bd9c460826bb8ab710c9788200d6ac7bbadb1faa24601da47b8d579ea31db26f00921bb90c5d8b2829e5023fa715644381eac0e2d56783ff53bec5e72c5898c597c070d9add8acf35c04af9d11f5a718601e35338e084e386d7aa399163bdc67d24e413e9c9133a12e8fa5cdff14e4a9c3afa26a316f0908f6461ca6be9b3f0341e7fb630fcfc4044b43f041c3fa1e1e414c817892c84b377434e731d1f7aad2c445c8976395d4085eb90fba9624846194e2f28f7f0bdd65a38765d5a0e32cbe28ed7e77af413b8a30c85cb04365ea94bb7e81044259524fe8c8597ad9777eacf8b3f7330a5d51822c2a523a5176ce7cc766971fe17433b1e8072d699ca4ebb31fee2dac798896b293f9229dd362197d73600991427812f72570c3aa4036085ec1f2822b5666d7e827c089e7ac154cc1bf6703119e55048d5fa460865346ebfbbf4e37d8e94e4d79c982de2ab311b421dcde9818d1adad3919fc0826c2872bb67c4c32e1c0cf72d7d7ba8298d729b2852f1396a62e8378ca46f0613c15e04d9eeea25c55d06cfe0b15d94375d8e9cdd7e18e4144c50eeda8b899a1fe5dd384a2dc4666315324089b257a27984fe242efface95c391985345f93bcc68194ca6a361d4c318e57e91e19411edba9ca483290628b4d93d4daf505e13212838899cb7738c8b493e15c9cf5fb49c700c18509c98eb75eabbc8dd85d3f614f778cda4c133eb77433461e0d90ba4d0d1aa428ef77041f3e815536e5445bf0770834b3ba16267496af944f9c5122263e4b569177d12018d4488a878cdde9c04762ba3e5659b6d763788034f5d5b80a2c99db1e78df3adf306bf805837f5b270c30e800088ca88beb592829b7e18750b0352fd3779cf2a60ff3ce5936cfeaa0274d7dfaf6802d905222617f08ac8be157940a401662d75e3c99f7d8cad3ef2c98aee38e224f5ffb848647a9180e6f4a9c9b92f411d171852d8237b1cea4273f6b2f59f5563854e697e475c5c018c89b5c72f5b2013c08e681b6826e7eaa706ec8cba2e17625c8c383ff928f958318f54b2e9a12fab4d3d880a298b38389904b6ff18724ab3ab3dc7a86dbd9fcb650cd25d1e63b053675f29736bb569c7066b91afa9fb929cc4a82fabc29162a6962f8b517f52cf974a432f9a989fdfcd45bc586618f9b1f997cfc6f1fa06da5002e724a56497c42402c2ed9a0a9e2aeedc6367063e2d916dd43aa4d83c59aaf04f5ab54da08c2e722701ad2f4a2bc8049e4e64079518290bae788cda5d27e4318ab7e13d52be5b4f1c24cc0a9e0a16a629e866d0f93638c99da6b1ed554ed16ba3351b19296ce1e97d6f3116862c817b6ec5602cb64937e1af6fe74ce1a496153687ba932682b96ee89c37ad355854ed28b1f3321f5be0198ef897d82f7e54f95e906b0f156c37d5d4f70cecab828d9d538c92f07aa12a1b64e414b9ba41a709709f010ece824ddf5400e324e0d238a991d6df942ff95c315565b1b67ee7612202804872a4fb9e66471bba4b0ed7c036f926a8265fe4a7762214571172bc2cb83e6c78fe58df8cea20c2c54419d47288ed96a49af8e4163484c026d7717d91f70be60c189a314fb14c9bd8f91ad6ceedff1688e3f7731543e17f086dfd0959b89e2308627ee7d91779efec450128ceda4d9b9fc0b79cca1ce70326c598db59c8715ee409fc7b884077918a2e92c72a69596e320bbc6686ee01b299dcf6bac44f9b4f9d74b918899280a1894fa8632a617707d578d506dfbaa4e0c12af92ae06f0a28951c24f387f5c47d198d58ce1b169bdc56b8929a40cbd49d84351a00aaf102c2cf24110f3c393376f46da0ac6fdfed8e5fe69cb4c4ed71c428a2b0ea4ff82dcae0755ded61e68ac258245abc6c99089eb9a8fbecc08ed22470a75d9ba27537b9ed8938c0103c03360ccb1b50cdba12d357be1ed256c96b38ad41d71b6e4728af7659bd537b0663316a5af53ce9c59ce5f61aec8dbdfdb39600195eaf2a20d4e8ec243729ed7c98385fcdab0b01fd34b57b392da2713f1921dc7e0981784dd62e422bcf704fd1a7a026d2a8197f0a40f3c5b2dc4e9fd7f2d4ec0ad57270de9eea4120a823f42aaa6f20bb706e8b431ea708edde229246c390855756546f9f6e51ceb1eefbf49b40a0e76dc1b20be21dbc1a9d7bd2cebe95ddbd20466935931f3925be041e15789d05302f6d5fcd36a399badb3e12fb7f3b1346371259feb5855f3a50193201c9d0ada0a2b104838c79f30935d168abbc2e955da161a1458cb41d7bc0fa428eaebc5347e0d4a5978c6cbd3c74e48d604faeed6f954498c9134092c16661612b3ec73a4e7e59d785ba7c450231569b892040ba9dce42e581b99b3da1e95088027c1e196f45d3c9f94f325298ad259208289cda49a4931b92e104c8877bb49ebe834cf53654225dfe06bb498259eedb06ba947bf6db870170913a850014c10d04845ff08f641e2dc6cccc177c582887439c00be5ced996613569f7004befcbc0aa5686a99517caab424659d9d95e326756568b26432df41d040b79ae7f12147b0d3c5dd877a52532f846075673fa05cf84a476bbf63e76508c99879ecdf3c90e3e9151934d6aa7c93eab3a8609f469f883032839e8882287fd3e0e7787a5fbe76c4dc3a4e7fd642aa756fe03f6b4e701b216acfd065461198e8c74d797bda1c1f0e23d61ec6af275c5f6f2980099d0dbef7620497ad982b093a6cc5d07d5023ee5be67c4f7319a59942db1d679b3b7a036ef422b3011d613de1a62289c5d023d9cd4e1b3845d350c9a4acae30c271afe9e72c287836ab4454797e33698410321ae0da0092f19f342128db7ea2fd9c08bb181e4cb7ee18bfd1ab5404b40a7911ae0b03fb616e447afd8c0bd9580b95208963c80eb515e7a9ecbfe2b3e3c62397d19e4f9d01e9cac7db58949bf1ab580fbd2c60518540832b54018dec0677a65b79915e7b3b054890115033d4d81e359bb92404728030af86c028735d5f837914c8d2405cc84ed33ea161e6d6a4523c19f7e3a3336b5db1f0b0108488645dc9cd92830c29345c61e592d060365a3a77b1900c863b579a8fa70620f352e54a5f95a16a3e2396c4c8b1cea0c218794817f6ee094e5a54ece685d68de222946d899b369f4fe5334f2e6d5f3d65a3eb655b345c64567e456fe0cedebcf0836cd1485dedd636511010d51e0338f0cea8f73514b74eefa63e0b102b40b398ed15c24f35923d273d3a05fec9ca5f0e9639f42dfe307d3a4fb917b89e210ad13151300167f1a0b7676901f9b02e96f88d521823f72b4321f23f4616e2110dbfbe54ec234f21a0dda843a8e3586a2d43bfbaa83d5e2d797c4dfa1cce0a2ab5f083d775ab837d141035a36d6e6e3fa2599c03b6a79f0c97f692dbd30d6015773a88393ea9090f29ecafc56a49cb8a655bac03804a32d592fc51978604c28bbefcce9899e15ddf27ae5d59caa4224754aa49292642af9c9337ed5f17536f5d6f3e46e8cee095ddb1862c2a25bfbbd85380d48854d101b1f64dc3b5263dccefbe6ee18b21fe6958bcd37391c6f408573a0a1278d61cee59d74b55922c49b9b6fce0ba566e851788eee21b7bcbcf15edf184ec5ab3b1d9ef9775270c3f6d6d38d90af7586e0b8cfc6da0c7acacc5aecd35e1a83cbf55724359aa31a06aa59e64e20ee0d480cff308db2d51de077f5404415b4ec66cf99e953ca23040178a88136de689eec7d82ed25ec75306de736e40d3554f2b844f617a69342dc6cf8f472bc09a02ff3d050a89e7c5f7ec0fbd106a3b280f3655c40f92887c228a5c7e005577056b80662674e751820ecbb4425ad17cb1e5fda0664c71caf4cab063a00d7be5ae206f5256d2167572e7839de75d313e63b6f7205a168418bd840d3593c470343d27d406a9bde83a86ca534258318b42797b6b82e6ba4c03fc400b9d2de3bd62d7901a6965193b79b41d38b395b7b396897c2042ea518ed1b9af2b28d4614d50b9d43c42c92694d2f2799292675845fbfc0067621e315736f2bf94a03e0d6e75ea66351fae4461ce127ddd3e1a30be7d3b7b500a7f91d0282cbd9f4da8bad4b6883b05023a12052e13b0d5cb5fcc280c7413f77fcc7b3d6e509bfaf30151f60539a4557ca779635d124c9f58ccc038a90eadc5bd4ad820169852dd28a1de330ab14f61276304e1d0a0a5ef0416a1f4d45783c629595bc4e4b99f03d56c7bcdbd101c744a3a3fe60974ff853dc3c142f4b6b9c0fb65b02a4bc0d5118f8a3892ed90a02e7a574a7f2ab848f353e79cd437d725474627eaf3144950cf69c98d46e892f35e4c1e40345b8cc24f53ef74c3dd0b955ae38680dcbf4ed84cf8b170c84e1af7e839f261fbc0e59db919aba55fa6101be3c70904bcf0af8c36ea7e822b540293183c669a08ebfd5cd8293a93c2daa3bf88ae9585c8517fb8fb73ac1a31f0a468417db9272ed3b68d6f56544b108ab27ddc712604a5f42c3758103feff6b13fee548960e81df61a8bfe6d47455e94b2dc80164db7ac066913013f4b0ce6f67348aa2356935621bcda1da69ae680b43b3d70280e0c9a0f5a30a61ed433c4a632d03260f9082e20e85caf108502a584ec5e710e665d272740c3328aec7a10500b190891692e251b9d9d19ac5a47485656fe27c1c94438cb8d563417fdb08701dcecf0625fc12e65d609de5f96dd6689be272541b0f09fdc8e6da18360af7d0fb4f58cbb36a5fe0740e01e5fdfe4d69f4ccf6bb0954c199439314066f02f28d9e14d6e3e9dba2d92c4789d428a4ab33f787cc77e49d925935dc3bf65916657b9e8d541193913cb21abc0adbf3d888a43d9ae3de882576572705c910265ee3fcfbce4ee6e216c0ce9d36dd43cfebef5b0d3de759e6d65c35cbbf444e627560246d4a7cdd32f75239df7cf03bb540dbd1e7c7eccf7eaa0971327f54ca26da853e08998375ed9d14107b7dc05634ecb87e8eb1b8631594fedc044db056bfed96ba2868b5e55d5bf7b0e8e0e8f73bd3b839e7646ac151db4638b662919cf88cd110cccd3a5825865308a93ee90cdb7e5f35f7b029c3edfc452802a71bb34b86254c3920e553efa3cac3dbf0beb9dbcf28b8594a4dc2022a0b809a49d0432633cf578fca8d529848efa23761aed8f1a039ff30b8b71ac3bf9fa85a722ad89c8641cdb00debea3166c1b376e6f0e596b4929a33ea98c0539b534745e05ffd14216e1de6bb89c177690df38a7155cd1cf03482018ecc7f35edabe31128f20e25e695bf54e81fdc5121ab0299c9464e203ab6fd85bf333c1cfd67c4661a9fad30d22d2d0def3910d65fe1d02e336dee52c70de0e7588493540e6fd65ba7b0203bef54b6b4b4d2acfd9ddb67c66325efff2a64d0baac4e1818a6a9c6e2ace37559daabe3f732d5e69853ff4e26dd844456b2c6c6855d79bfabc0f0c06a89cb217ca19c292f139fc61c23b3a90f98f6162fc330af47ae2b12a54521494030257791512050a0895ef0682a6109b6e849e47ca39dec67b124cde30ff476fcaf186118c6f44a39da061f4dfdeaca97d838ed971c38218579c74c865453a42d7464ce7b948a93e5d5fbd74cbd84f35f02623e67fa52b813a44a5078beffa64bf4b1e40ca97f7ad41c557416e4fa16d00508ccf522c2f0febae32043dd78fd67b38fa2557a354e7bf8b4a05742e10b659b5b07a44519467f95c745771c098a25ca3ca3ebb441e8639865896b3ff17baa40a8b93e62acb2f9c84773e8e876fe098f77d32bb68907497e4970c8a9a43238e985a36dc8bb380e21e28031550656ca0c39d9d4ba611779ba9ba1902d2b36267e1cd21ad946959e8dab3e10770bbd170352183ded18149c52f84defb1cd979b7d0dc851b96130323f6bb586058edbdc0dade4613002d1b928ad1339cf4483df41173b453c9e58230a3bfe64c7ac31462f3833acd77bbf8d3684da1f435675da93092ff1690eda64ceec0095acc370824d6ef12a540e12b619734587ab8960ff87bf3117be3e24591c6577a9158912d5819f577966e55d095179bfb3c74c917b1368670def7a07853bf39577161c6a814dff197a6c84869fa46b0d07eb35cd44da3e8c5919e368cc450a5a1b7f087fdc1aa09521a8e0fadb85cd43d360bf494b375ec87795cf70d7cb7f9df36c342a262573a942e36fe46c8d2ef1fbcf1817d021107edcadbc8ccb2751c5f431117e22762ccc97d69baf086f392cf310ae98693b2d9732cdd1d5e176a8ad62cb644095cebddca3b830dc4591ab40c62c4174bcbd8abf3fb0239096acfd983e14d44f811f789b7b7d483bef2a5b1bfb8070ac4139ae1e9fc162552e1aea7894d6f44031a4439969802a3cbf71e63811d1912166d9b37e0b8af22c1abb377edf42f26c98a53dc63588ba22ed433f1bda66cdc8d8b20319318ed50dfeb79a4993fc3c326cd80c84bbdc83178c5288e620e112febb2bb919b1f3b631a51725f7332385a96d6d3031fe56bbebb9a9a68fecbab5a453c52b3eacfc2572f971d984a9e0c0fb62c2d7079899fee1760d8d0ac98bf0874b321012d6bc09789fa704e3ac0dbe340c3a5b82057f389d6179e23ecbf74fd631471d24cff6a684123cce2a6d15c098f3a9aa223d9c311eae223cec36ab1ebc13f1dced57f3935234073d068d75059aeb27cc9e3cc1a32fde5669e37bdd1e4792aa966a0fb5ad280ca966b599fe457cc3d1d8d63d66c18bb36b05adf100d61aa7f04f6228e847989d4aea1f397434e44bf68e6eb91fba6f10737f7f773cd03a088023ae8c7866637a3668785e474bca3731d808410748b622a8885a53414f02cda896c9be7bf2e9f8aa157ccb7a193f7a605eb61364c78b8ef4827e91abef2dc4c59b8898", + "040b208598b63904120c98db34c24bca6c8f25553aef685a934a2cae583930c7437331fddd284f37d0363001ed323908ca19b62deebb02e6aa4ccb31e35f029da39e589c8c38f5e0a0b1eeeb99e240675489ae7a66ed7728e8ff5fc1d13c95b51072149715bf8687f2bbf739d5f0265500273486d8ab8df3d10a559f5c5f742300e67e123bc331840fcdcdb6af60abb4751d08d01979bdd026ffb74ece21e61c7d3cd41d9c2c09501e0b497b26ebb46036805b2a645125928e2c36dc561b42a3f3692a9ad05cc63fd8c86092feeca12bd498e5316623c2c66c91a82461796c9c5127ea6d292ba38617c524735bbce3c8745f0fe60039123982cdce32b5b4f599a8dc1e73cde68edd7fee6c267aba1202f68fa1cfb7d6f8e647a1175c63e6be61f724f74ad2bf68b6f55e910c5d014c15ccd1e5ac75ab0063811c6b37ac492a3077c4893135c6f3bd38043004922ab607c61bf2344c43029ebf2bf8602b00fddca494bb093a685c02f0a88b5ae7e3c5fd42cb3e67138b6f706e313c4aa9ef295ccb4b218bf1037bdb6b99eb3d0fc6f74464e3e82f2c8e1c3f861fcf28becb19732e6be64aa44a37080cf507cb741e2897f807caf5b9a0fad5e701f97493c4f8752411bcbea6767110b1586ea5bb3fbbf9218773fa28d6e6f4dbdb0dd1c2f49b9875ff9d4d0b3fd6c671f368f9708705509e11772ea6ede65c54e951258b4f9a4be86ef824ee4fd34c7adc4f2d6618eefb6871e16ea4ce88a33f4d451491a0b4df397167ac8c5ce585a130abf40b1c65c4f570e23fc3feda7a7f04cfc64f4ac1faf041f9544c11267817f332436e6bc7368af33616114846941098b70805cedd8368f2420f3ef038b9a62ece021975a75a22e0097e00ec6ff2774ce91bfd53d4a488ad37648c649090da46145c38a0c06c35e64113927f1569b07d3d7821fd9fb644916c067b545b193549749b627ee4184c9ca8f0eaf3be67c5d33ceac3843b96fbbffa6ab217164533e814c9c3e5692e0c9485540c92442ccd30d2405b465eec83dfd5facc21d2e898b6bd082977de6797d5cf55de7ba4c14220315dc0317329b3fc23868c9eb46a634b93087790ded8bd23ca267405494288e3901b60d063890e1c534a62464b534bc44802ff7c8e594ca87c0cb6e0701d687cf7a77f12201f26e25a9d0f6097d7114c2cd5c8a289ab814a76ce5ab144e3068dcdecde4afcb534901ddb027e01cf9262a05698b7a7f8087e98c301fdab0e903304f3e9dd43dcf9afde835833bd9e46a73e18d665eef2e8dfea58d283524d0b998855784e21e99122a9164643d8d62512ef9cf3f0ec7cb3c21a68f727dcb8c8f9f9fe6621cc9df3f2c62c59db0716b5f27afbd04c1d851aa5bdabac063552747bf94a77b5a162b999c813c3795b4882c7471979be6390b27d6ed2ced1a4f87ae2f039ae30f68d06d0834dd46aed04de099ce534cf231048003c829a365b9eea34b68c077fab95dc912d5431effdc2706f2e5182f9d3d9beb5d9cc8e2dae849a47a5642118f0d3756ddeafb05b99401073a7ead38104f76c49e7e9282a8d0a157f4599fc64073297036b399c9929bff90e2412dcebd0a6c823da2af23b2076ed84c153762948f0e70f91089f8042e9e411fd0a88357920dd8909acf117e1e7615877fe097171040c9d86c36cbd3e7e7316fcf59853fccafd96128ce5ae6a6a6e6a9f0a1b194140eb0ee9c09318b6237d73339d094aec3ff7d405aa824a1f81d1f784538ae546eb5a1d9978ab9bf5fc5479e39088fd29c4b4b2939ee090ed24dca229f15550a922b2ffab0fc1b91295f9173ce133162e2e16f57fa8758957ffa98049cbe88d0ce37640790b06bd6028b2799309d4a1dba368f66dc0748fb44b25c0cca21670c1d47171cd95098b34d1dc0c03ba70328506b51b75ee3a2161474f5ee82c6c00bfd19ba1523c99297af6f23dcacb830de26419a992471ba7c9bef3c8247ed7b08dda11c25b354561477c87e3bb42736143f7986b4d242de392b5821e23a9a0332e253028af3225a9012ed9fcaf4c75001d8d78c6478678ede118361771cecca32bb1d403b0d57b8861ae5a6a4b76c215bc4fd8e7c3dc549ec8087b0d0c74360050d8a51cc7495198b799491ecb4c0d96dea279409c37a89f12b666c55f2dfe05c98d8bbdc07192a1dcb72c1f255ffdb3e8799714df53319cc7bbcf6767ce8c50ad85801a00f4e980b9fa7c3a365f423fca90d77282c939614f25c8bec84eff5c17f551738c18412dcdea86480e472c02ecac7ea82ae98e9afd530e54948ef8079d7f6e67c96120941475c6e2efcd147ceaafbbfcd0a9483c1b1fb07369c26109057ad2f7ad0959d51dafa8faa58ca33f585b4e1371b15a370862ecc129320c0d879fb46f3936257ed003be893a92ce37af6ad52ef0ec1d5549cd1cb3d3c244aeb0d97b2f380d636cdaa6b198f74c5770a0f54230f52f0bd2c767b9b5948ccf4cc706bc5b9ce89e26ddb859e1fc619721b94b52751a40ea19d778467da9ee9ed867f621443a721eedfba3e6e7bc2a86e06afc9076d3634a7fd64b4a8c4abe5fa08c587ec1036c87b8924fb1bb532ac0516ecdae5d4c02230abe70dfb0f5e80460a385f0b1baa00535ff872ebe9c08a6ba977fa55891e657740b2fc65f138ee20582bd46c6bcf94244fa7805675265be4905af3d4a3a9f13b1d3756bb1509c0ac96834cac31e816823becbf9c64c9c2474e7e524573632b59bec283782051d71640b2c5f47570c89c61ced1db798cdbe78c9545d9d9662d0f0f4028d9fb9924cca336b138ae7ae9c15613503d4c896f08f47920b1955d8e6091df4f472f46b6105a724bbfc1c71d406a38169268380a35e2bf165d19f48265ff115713a7834ae2a7d3b26017c04bc66ce8786fc77972c93476c6dbb44e4275dc64472e1e6e3c6e32f311595132722692fcf15b064f9d45deed89efe81e0ce18042e7c562bbc49afa76278241de044dc921c4863c1219c60174e35044722d3414a2c5af1fa9f0abb4444d2e3dd845505271a52c508127edf09ed7d7e59e6d4e91a7f3fc4fe27b0cc7522768e5d33db1a20d869c70d2b3319f95f6b1220f42538ac738197658eea9e0905b1093a13329b244ddc0e61c89ed7a35ca3c60659b920b5f9e4edbec3d1654576f7b326cf63cf1361d9d1079196117868ec48e0ad85d28cb1f04bc44205e950538a683c6c5b1819a44a902f21f9c6ebb0bf3754ad541d239d42902aa75d2952f6030f58109bb8f490ba88af99b592d6c69243aa621bb16e855f6371a59efa1d8b9030c53e3f82689717223d945a40c5339aa0f20cf91577ea00b81724269537b3a497866dfd7db3317594692bc7135df82a5e517940ef2887a4e2f3aa2491397adea805beba100d7351c527085ffb28f8836ac96548a183e523d9f5e02c6b5a15942fc7757e280d912b32a875ba2801abe6278f9677b03cdb3f8ee88aefbcb16ec15b1448ee42299a055eb8900f36023e2e14b42522f2cdf66af43071c08efc822bfea88c567c6c15da8a565cd82e5c28fe2fe957cbb40785e42e56193d72f9499182c172fe238fe607346eb96fe4e0eba05fcc6d5b0ca220cde85db57638b0134ebd8f592ef67236f5f06d4a1ffe70ef4a6dbb653394c17b02046db0cc6ddd02c732dbb4c0bdac7fe28e30546bde9db650841f7cafc385906e067e2c2a959cf59d58720ea8c1e832f48c5d7043ee0065712373abcf349615e85c468029bb932e1e11161c1b61da55e6eb31760de79201a4ae149c2c49b35558445dd243cbfde9816ebc9c41e94709617808012850af557c7a7d425fba7738a4c143615fd99a951c11860f59337bcf3e5e61992e6c3274e537be973cefb110657b6052f0ea715183b736de813e53416dad831c0579071a3f3472881ea0003552713b1fe6070de95e3b197bb2615bd6fe47dda943034043958d83a1beef20493c55a8708dbca7a91e88846a315d5fb66e54254aff31d5784dc5712c215e8f83a89d4a2a883e2d7b752a425eed10976312d33e8842706466fb85dbe4a414b89e137433f19d2675083ee36eb93bed78d058e216708ab24da728638860ab2bf0bd8d2ae8d87279b639cd717338fbad75d38639e18cb16cff723a65d283b940e3e28ae250768980be729a8ccdb9e8a56e59a05c36d184db9e65600070d864e467628acfcce695f6587455ba8568b292be9cddaa63f314f71fe504cde1ce62e63c398c8697522e9339bf9c2ef0ccd9df95a11a85b47832d37b0efa2b548fa8ba2cb6124b5a2078ce3909cacf87b9c1044a3a3c82ccb1d8d435190f5dad08ca3eece692919fac986875125cb62dde8b18fe4c110869eef2dc245acb3b1c77b8b222821b2e988ad54275879e87bf182f397097b7d9c90344dbf579db4e273f382498186f1908f20f5155230b360a804d19dbfe938ba65bfd94b5d07d727559b531dbffdf071aea547296dc1aee9f78586e1bb38cb08eeabe09b9b136f7b6a101b9db6f418f58db16dd55b401d1da7ba697e4c020c9ea604932af985058ca0dc07f031647619a3d6a80e83fa0d3cf387fc1ed6c28dd638946748b1806d4c465a86e206ff98344174a88e3dc8a0683662fbed298080c0da048812f576c0cc865562fffa1cfa90429d3f183919d14724a0cac3c59b052b5edbd9bb069a95532acb446da77b3a2c287ff915dcc03f7370fad0ffb193f5581846671001133a714d919b607209e4f62a9b305ebb3a7159e6c84cd47fcf7f2f3fe1a10c2ad4811bf1caf19abd01df0c4008cf24c6841154ee1a2e206ecbc1ca9d2041974c5b32e9e3c14ce24f8b0698955055c0f163fc98be4d1afb6a00dbe5bb7c1226544d6d70debf78ac832eded71a13dcb5f5d44c8a6003685fea2505585c6c774fab5f724d251ca7171b2491392ebc1fdf6a57da7bf15d95866b49b4d3169c367751382d9d0d07099f580d1931a323cdc0682aef4e4ef1f5e7ace2f759a8298073be7e789c7a62e238e0557a80ec3786de41edbd4e487c93a0107d5cd6da4fb8bd14afbc51abd54654a88972e46558d42a48ded955b89b323b658b32591a8ea31a60fa9a4428f37f0cbaf17fd2dcaa200e9cd0cfa2c3cef103529ae3c08f2bb2f78a1bc654f189c7c3f22c4a0aad54474449b400eb5de9a0b683147ab4cf2af2f9bd36af35338375a3a0247d8afbdac3c00c3202b3200a69bf4ccf175b160a881082f2a083b12b1d1920072bc735968fc1686a5db3598173131f78aa1089edbabec7e12e44ba52bbf12c0ce8a49fb58b3c9bbe164701aad5153eb298b753c3f22dee360e9d4e569c1aad9850656a448737b31f860a74d2b31b7926b15d54a9590a96086ed78f9edffb7c65b255bc6d6009dbf05bc30bc60b10a721b75e10719d46cdb88419a5d91c60ac2b2345d734e0a84820e4d9cfc997fa660165138f16d5af60d14bb3c2547b259b77cb0460e8285cc9cd2dc4f3e7db34c7003ab2c3771bcf987d72c19e855b0363058f728aece0b259a0fa93729a46e00ecbf4a865b5e3177b46156a59ce7479e188b5d272e692a31914bd100d7bddaa427c41f779d51cc787b3a527705bc9268814001728597b1008fee39a2e1d152151cc82b2022f36502a82867c24f015deabb92b6734744cb32c70c831921bdc77457119fc267cfc1c3cc1794beccee59b375e9b8fd1ce02ce67d750ef3a6974e1935948baf2f6c110c22543f6b05b583d3db43d884c284d2db1f4c06c18f5cb441343ccfb946aeb0d6b237a32f2ce739de29e20a212cfce2734386b05a4c30e2fc086e2344a147f26f923126d570eddca0cea1ca77dd43b4cd8876e858a20fbb655d61f6d85390e3e923d4e111e4605ab34740d3f4086a0efd5db305483e2dbcffa0a7a39121ae6d395b63bb0e3f2113f00f8e53b949d0ebfdfbd15a445a4a21bc857cec4dc293f0850830920683770d43d6938790b6705b2306478f6ca92e48f131ae3642d62b4213b8983f9cf91c5aeb67d47d29ed9b29907f5010f759221fa214fbc6b7757f761adc1ffaf536dca8556fd64227e403d3799c2b8ba4dbcfabb672587f633f5576c6d02d276e4c5ce804a4a136a72660bbbce7d4dbbe1c55cecb11f71ba92f1519df67371d61c74c477bea4dff7782e04f8c85eebed8f6f372fc4ca90c48ed7a9dfd0ccbab18b1bc279ef50eb434f18b1b15f28419ebd4db3f1e94f3c583108fc59547ad7d2da21b2b896caf9563784fa0c6876ed266c83f504f17bed45aafc37035ed1cb89b3e1f50abfbaae9aa6ab20459fb842c8b4e1fcc46e61b4378a3fa7f0f92815bd83a5f4246a77d404ce00a44db8539bc5c0978363aa5c824d7f7ec3a57de27d881a0ae5e59595a848fbaf10ea9a477289c30c54f02cee1544480f59d1cb1f76319f37336edf71040ead87e1ce35c1daa7e6975c86a93180f405bcc2bdb93428bdc5c7e4e80535dd350a9b6a2b7fcc4058570091ae974d8f5539e4c8993ce7312549437e6c2aac8fd9525a8f2f943b6542a03d75363ab338ec64e78219e4b073cee5d421926d7d44938bcbf963d1446717ed4f0d99cf4cedfbe7c0639237704e75d1bd9b5ed482c1535e5a1a0f7dedaf065b26129ef370851d42cbc9f4533dc9fea2882f862b6e2a891471c323749a1d8f53e582e9a5df8089a2c566bce3a86108304fe3332fe5c5f2e8e4430e65afad45c0f303dc656615a244422209f97f03ba528840a4c6f0bc8fd6220b96bb6b910bc11a439e88824ad8e807d2dd3ecce0ac2a28bf4cd1e3ae27596b285131a4fada99566336f1173cc403663fa10bdac48b9743dedb6c18f91d9f1583497a16d5a45dd63aa8ea85b2807757ae981a4a859494a694acd79141b2188b24b6a89d9d02c9a41d1cef138e2f7c287ee787722cbc64085e67ef5fa371ee789fe884379795ffa6da004ee4cbe70df6efbc5bc9f935f9f0167eda54592f38d15301e5fcf8d91f29e7da15526ce480c54f67523" + ] + ], + "public_share": "7bf2e9f8aa157ccb7a193f7a605eb6139f935f9f0167eda54592f38d15301e5f64c78b8ef4827e91abef2dc4c59b8898cf8d91f29e7da15526ce480c54f67523", + "rand": "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f" + } + ], + "proofs": 2, + "shares": 2, + "verify_key": "000102030405060708090a0b0c0d0e0f" +} diff --git a/crates/daphne/src/pine/test_vec/01/Pine_Field128.json b/crates/daphne/src/pine/test_vec/01/Pine_Field128.json deleted file mode 100644 index de82105fa..000000000 --- a/crates/daphne/src/pine/test_vec/01/Pine_Field128.json +++ /dev/null @@ -1,214 +0,0 @@ -{ - "agg_param": null, - "agg_result": [ - 1.0, - 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 - ], - "agg_shares": [ - "826cdee58e144108c1420ba4f05977979009ee78d3f7326b97f9f1533fc032b60f9042a65278741449995969d04874f63a17cc513050f4fc0a9ad26b84b2b5420ac4a0509248af5f313705a906623719e2abb7f1489e4f83b99516eac5ffc1d6eac0fb09bdb98e935eb3fdd990af42efc76a5b7dd218059239aa077fe4bc4bf2fc9c7111f6906ba37f2936a989f95d33a7a5b1d19a1d28e5cb532979db3437b3e18c9b192c3c4d06664aeb38fb8f85825438c806dac98c719f0bb12f063f137db4ab38ebf1c1c38f3744e4913c0eb69d83bd07d6e636ad11e6c0b96e4c3c2cc2bcd9bd8c0b409191277d094a757227db84dad070454561686c43a53721ab78533c8a753aa28d25c47c28b0e29c5696f083545e3bd51cacdaae07afc41c1ed5a69905b0e97ad16830d25710af7ed69f08213240d87c3cf478b4f6fac1701c52ec", - "8f93211a71ebbef722bdf45b0fa6886881f611872c08cd944c060eacc03fcd49f26fbd59ad878beb9a66a6962fb78b09c7e833aecfaf0b03d9652d947b4d4abdf73b5faf6db750a0b2c8fa56f99dc8e61f54480eb761b07c2a6ae9153a003e29173f04f64246716c854c02266f50bd103a95a4822de7fa6daa55f8801b43b40d05638eee096f945c64d6c9567606a2cc5a5a4e2e65e2d71a18acd68624cbc84c207364e6d3c3b2f97db514c704707a7dadc737f92536738e44f44ed0f9c0ec824d54c7140e3e3c70acbb1b6ec3f149627e42f82919c952eefd3e4691b3c3d33d45264273f4bf6e6ebc82f6b58a8dd8247d252f8fbaba9e9777bc5ac8de5487acc5758ac55d72da3b67d74f1d63a9690f7eaba1c42ae3532535f8503be3e12a5968fa4f16852e97cf11a8ef50812960f7e0cdbf2783c30b872f09053e8fe3ad13" - ], - "alpha": 8.7, - "chunk_length": 150, - "dimension": 20, - "field": "Field128", - "l2_norm_bound": 65536, - "num_frac_bits": 4, - "num_wr_checks": 100, - "num_wr_successes": 100, - "prep": [ - { - "input_shares": [ - "4936ef72478a208460a10552f8acbb4bc00477bce97b99b5cbfcf8a91f60195b08482153293c3a8a96ccac3468243afb9d0be62818287a7e054de93542d95a210562502849a4d7af989b825403b19b0cf1d5db7824cfa7c1dc4a0bf5e2ff606b75e0fd84de5cc749afd9fe6cc857a17764b5ad3e698c02c90ed5833f72de25f97eceb8087bc8b5d1bf149bd4c4fcae19d4d2d868cd0e94f2d7a994bc6d9a9bd971c6cd0c169e260325a5759cfdc742c12a1c6403ed64c6b8cf85d817839f893eda559cf5f8e0e1c71b22f2481e07db4ec2de036b739bd60865e05c37261e16e1deec5ec605a0c8c893be04a53ab9936d426d68b8a2a23034b6a1d29b9055bc291ec53a1dd1c612623e1458714e2b4b78422aaf9d6a0e566dc98357620e8f6ad3cd02d874bd683418db2b88573feb4f841119206c3e1e7a3c4c7bfd60380e29f64644052e4998066a005ed95a9d87a2b7202ea22e18ac8068c77d5e5af81a9923bdd73559abe107f2bb9d1214db56a96ef1ee007882b302719e60490a4002b93c6ec7a98d4f695ec69bb0abf6473cdc99629299a3d94412cff9a185241f04d1b99ac97a1f5d61631dad679b295384860f0c8f8552da65eefb0c58df5e0608b89ac6f81606764d86320c4578c40ddb06c743d96d5b8f09313cae8550832caa47bafc478e4a009b8dd6f0da7d7740a0819bc50c17501a2bea0a4177b42818c73024eb8757c5d9808eadf68f01a126bf1abe3b2a1a3b22022e8ad84823587747a01494f30cc5576557c236db583b29fb480567c320feb1ecf2776ea69b5633b0e2aca81b911de34abfe401a3c332d8fe1b1d8b3513551e11c3b58badb1bd0c16dc80d21dd19098a1c730913999e05be450b534a9e9f90cbac29e36eccfda15c38e35d83c7558da44169cb9281d9cee1773517e3665565a3c9309e26097fd72694370c4187529c9eecfad7ea8ba4edd783e73ccf107269ea7a0393a6220aa510d7969ed9f4f224e905202d3decfb4e5d245639f4caf3f7122bb09f24f4372de5cd1f777d15fe50614a3d38ed46c9e89b003e484fca5a190e85cb939865a77a641fc19af3522f092e698fceabca95405018a109a2e8fb4072bdd87aa79b5c9f9fd7c6463d086193758a4ff147e107e17a61e6eccb0aaa99cb94a832a8a5a1cfca10adec2c91994160f460c40a15e009c83f4589fe43e4ece5d96c6234555090b26ae8c192295ffa69580a8451e73d92dd7cb548b5e252de1998d6326a7d382c3bd6f69fc4a7f54892a22e703d18b13d0176840dc28cb84739611e96fc24b82899a47b2857ba6f15fce17ce06af84c3e3c6e85c122b87403ce066cff3931b8a67e12c7b2c077b5930e0a74cc1f6689685be11ef099deee9ab2e4e1bfc09ad2a3e65784c4c5a1936420b811347b336af3268d157c04e9d2e65fcf1ebeb58a04718b40f31fa2eec98908dc55d72dec498c44ee13fd3d9eb8edaf1d14eed0f8412c145e76d71605aa9227ad28f6399c1454ebba65b0e94a1dba4b447d453bd4ae30857653d87d1af5bc0fbc7dc5723214e765bcc9d1ba110581c3025035ef2b6b6cbac3bedb15ad2d752c624c02718366c61f0c7f268868fc13438d121ffd7b800065ec676d128feeb5f3c1f220224e43e3d259b6010bdf264ccaa0f97097b1eb087442aced71132aa662e5300615efd3e61d475212ae36ab3b440f05a7e25bcf36781a3d3d93dfd88aff8d5226cf067fe6ce9da0a7bef15c366317d23b9a00d717b1bb4ed8acd071bc47e833a4f7b8b0495db9e3fe61a06c0be49f8edd427df8ddd1f7fa9b4d8a46312d204557f150b71545b5f89afcf5d88c41cf69d7564b567bd769b46748a085c4a589d50685c34d326c365ed5d7e33c462e71d6eee59bff0ede8ef156c5a42739b10a8ddb75e6d96fd716fcf3e4207a4272b9987ddb7d1e90c0297cc0e4ccb01e268dd3037233820a05e8d9011385ded6a888b3a9a787dddd9d788003395643f6178d5d8c68fe9a8cb361be9a47e83bf47b2b13d3a7170021dbcc04a102c2caffa69873a5beef2388df9e0adc47cb5d76302c91c00bb1d78d688dace12f15f91ef9fb729ec1e799054d4849f58297e11491517ba981e02ce85f8263732a9f826249842cb03a47470bec34f231fa7b5af55e770ddddbc48b08f3469817c18704292ce8d05f99b5522e4f1add50d3bd7b990a0e58c076a52475dcf53521dbbeb5e36ef7497772bf7b87ff7f5ea81002b6783bbb6b9fec42b016cff9d4c6fc253e809c600c78954dafa65d8acb0c589283a56c14a196cf49b54e1e08fc91c2657e4c066915e9147854b14cd989c61aea44f2a0b33d416a5c026f657c82aec9a4d874db68e5a73d8d7efff67d6b16d223f738ffa32638316666b88cc12cd053a1f2da17a87c34990d2f9e40809b8a0f2e07ae8ee2fe0536a0674f6b03ca1d558fd9e43e6522337646ebb7279a741f599e7f0a14eb26d63a3fa9d97a5ccb9aa01c780f9157c9ff5f7c150d145d05f66fba3e1fa9afa12a4d94bcb95016b8873fd5c0a05639027167bdf1e47af715a0873d2b70cfaa7fc7141bb41abcaeadae26c5e18ebf09a8503b3434ebf173f7273a10bee856e5b41878621699cef2c6cfb14a41f42b8f6b259888a85d42aaa138ffd948e2c4eede87767139284c31c69172b240dbab0e8640402f596a2c482cda3bb6706aaf18cac30e6e1922a7053360e10d4eda7ac6fdf3d4cef6d74bc3a3b3742c7fbbbb8d8bcaad50636573ac67339a1a562796833a795b9e6a97edd308e585f04d5cc4f95437ae993af2d26c0934c236d6671e6570c6d2802c494ddb95e92d747f84121ecff4f64891a3f7d71ff0fd47ab798ee2b2ad6f83bac0ab474cfbcc550a899f15dd3066506ce1ee3d46381a35b51333906fb20186e646a8880322311a50064094f0212bc3391577e2decb710d556081351d2d90891b2f3482cbbb2374a71a970664621e1cfbca4fa87d981f7a33698921271b0b62890b3ddda06a5deade800c5d6f268d916190e56a150cb46240f82fd7175e7df933a14fa367f0d80eea00963a62fb67de4fcb6f2dd1a8d99f72458997f6b0a73dea689f736aaf26c09276b71275c8fd097f792fa8808030ab98f04a921e39100f20c7ba9596fb1c64a85f9452ceb343404ce493a8c49c7677f3ae33a0d03df1a4e980289d2f538c2dff5387948761016240a31deb446b9a32d82f8200f1b6ae7719d5c840f8c68a240c0c1b0937818ff806ab5b89fb27d2516446929f4de7c034e441b6a2f2fef28d13410244d8320c54962463c8679016691f0be93af33c066dac6ff99cfbe7eafeae71414d10516e1b0fc1b18059b22f540a83a7575c39c1c5ecdc69b5ad73bd1a8ac136dcc48d9f3e58cfd3863f10321500fbeb79739bc1795cf4864ff6c5c7c05b5256858e74a416b8adff14a878bc76e2c113f2909871dbebf1723d6e66e688a19a04e82fe8c0f21a6cae3fcc029ef385a382b5366d14edddfdef0593b42a1f50f2bb9356f764f6b382b2511fe0fc60b0873d3dccc762d2a324b12ca4ba2774e25a26b317f7f254690451ed9857563176e5ddd62855547ce5c01bbdb54845799245ca6b19f2b8b1573b1fa3eb41fcf1d4d5736a73d0ea585cc2124c0b1952d1837913364bf746638509cadd433129bc80dc93a1f30049d22acf066c1248cabc3f2e45e94d2328226c9af79b5f66259e9f15d91be00cc9b8aa3b64a443b6f6a4a5649838a1c01535aa5b8aeee7f772c4bac5c7c1340e2b5e156a666f983dddc5cb4a9568661a11c20f7f04f105d5577c379b42a051b80a97c8d1822eb4af5d4e550b66214784c205cb65eef40127daddd9b0534e61533e52856f9c27f9a8dc0eb5850bfdd46fdd04febb0c2c6c3153ffe2aa2d4348355af665efb71ed192ed35ad0c568354b1279749cfdda99e5fd300d164d69494a2bd75530d8fbde4c19cdcd66aec07eedb4082b8879aa188346a5075f7e731c349d3341847f321d6f5197e2a42497dd5a9af97c1788fcf501c3c400f5e7c8c4d04410270ca7655641953766242c36aacaadc9037119afc7363232738906916748e5c333d820b925d95cbb4f10a0ef60c478c6c9df08e2429232b7b5c9b95ceddbdb6349009682fc1502fa6f6c3ca1919aacf100b1b4ccf58944b4bd8d55b67db7dd4696eff495a6f4008109c1da5b1db72dd9112c1c2e339fe2e4b957b519d06238ae23c4f4c6ba3d2a055aca3d8eef963d526ef716434bb3056245c7e2337ade86633a7f0fd7944086f5a00d106422992b646f261de602d5879cfefd9379ac5140b09989962dab4cb8b61b97f9d222cfce532aaca0e270b38b2d80501901cb0f2c2e068cb146f775e8d4d9186a4b8aaa882aa83b2e63ae20c646e728c1f80871c265ed152a81453a189536685161f0233980e5aee86c3d1fb627bbccd443a0e2ed5ee72e0f2824f22f6d9b14e36191d1aaa2103e5286800222c17757717370922b9f89b554786cd92e84b50d8f614c4a6a266219979ed73c890f118376a9ef3dad28e858ebcfc0dde43c606ad31c357d81477206def935310ac1f75b421997c4a55680b8a9ec76cab08600a65d1c67f32aa470684e3684f703d2f7088bb67f6701c048f5826a7814acd41c023a9f55e9c01529cd8a746a435453f69c549373c423213247b44ae0ac9bafe09324af21149066bfb7ef8c280d9482090277534586da989fd7243d765b271365922848515ae800f197e8e4a68f4556b1bb2a8b02e48fd0d0a87e83c3bc031b4f5e83039c869ed212c68cc33b994d0dbf346b5e4bb9ac7dbbe2c27aa5b97d48ec48973a9e0bf5a071aaf5a02609c146aac830edb3ee877e4a3bf50c29313cdeaed96dd898a9f4d201a60631e2dbdeba087942b818ad4abddef5e9054f10cbba0ac70ca356122e2cb5f827a46d8c597dbad1172e227c9aa8236fb4f7797a346483f291ce31e7312803c88e827992ad8701abbf256119349ede4b868b4312d67d3d70998a53f92c61cd7c4e0777a8735b2ccc0281a09acfc2d9e646116d5d1e02499339268cd9ae59fb0f9777d6eb8784d9282f00ac2cfc34927961cbdb8187a98d83d0accb9859f35060c2bce83301fbea83ad17831adbe113e7ef6a86a957149bb73d2af02721cd3107f081ca03070f719f8dd7dd7670aff412c756e86b86005808337e6f295d268589a3e4944f5b5088771914852f805bb0190db3b40d05d84f44ee7abdb4633f3dbc258095ac10ccd9f050b7869822eb3b92f0a73041eb577a97ba8e1a9dc4a92862d4f599467f8f95ce3334f12e92ab7cdef1402abb589dbe829adb143fac5800fadc7f7dcc8d23c02c2649b7e754a9448a1b6f72d2ce526394463adf30d0dd4c5640e24b21ba52e97254e96d283e5ee44e86fd520f2d78c4b85d50be887ba27b30da683769c55dd743cf37faf5e4cb02329d7c105d6673eb11e476032d6ba9df0cb1b1ad2a8d75befcea3cd16fa50887c31e19007e7fb330af7ac42039b094c7cc0202b332328c14bccd1d7aaa0b0c0aa92e82d438793d7a0a374bb3f37b1448d4e24234f3bdd1bfc9d735a8482c60e3442644df842f84403baaa3c96d1057dc7a66cfaf56d83780a3b4d47b1658f482557ef0deb0ba2022234229ffb5b59d16a44ea8f7ed1fa7f170e1523f693cc32189ea7e7373921778b133ab3630b3157e63429cc1718792fe7c48aac6a6f6f54f2a90e8939f017594d4e963105408825e726b1cdff77e3e2643623b14c4482b78b89d6b49a99cfaa3aca4b58a01da7617f2d280a81ade2b538f3958f19a43b1a62f7140b585a75f2ca45d2b0bc60558dc54e8a7563115ace8969d24dce2ee3c31f3d43d03e63d0d2e7e61e7c6dfe464fed31ed1fc17897588bd744d38e0be9d367f718dadbbd6f4e4d3a29cba001d7edaba0fa799dc2b861a96aa580e70578217667b88353bb5c00f25fef58fc275ba307671e0afa1730e1d8643175ff40f6f3a85a354260857b87ad6280084d2395fc59067cbedf890f1dbdfb348e9c011a3718386bc3a9fb9d515dc9d9cba761203da316296bb42bcbb7c35c49f5683352681de9c97c7ad8b375bfde2bceb38bda15ba4de0909ba0c48271d8d6851b5e4c9c3d4bbfd9ca71bd49e5002c67d76c52560ca22230c9a2aec73775ef27a1868867ce6b56939d4a3697fbd3b8980393a83510b58449e3c6acf27d03a847fa80b1fa10f5d9464b6f2e79c364be84b4d3a657e4e87a5bb027520b621bd11001f07a520089d836226de5e8f00eabdaa98d3a20028d1e1b1f09e9662cd95856f0d2783d0821f2fceb6988f81a9d4398fbf914ad338505f3702fa3f29cfcd352657b996a463919887672f826fa199e33cc69f30d83912a585567ccd27255bf82a51e0a83c0fb107c8258d1479d9eca1e87d6d6d3ec18c6bf29efb71778211406bb74dc4a1845bd637b08034818d0ff7277d0c977558ae43ff38f27b2ca30e9c1faeadd38b332d6b08e28fec4e10423d1636cb4caacf48896addc7beb06059f846648ce0dbfbd162228a9b374e976af516984d9bdbabc4ae10399245704ecdfb25f4523cf25a449029c08fe4b6b9d022d60e6d5376a50d1a7fdd0f1fdbc9e0a047baf4254d48aaa167f17862f1506c334b19dabd02c58f89af5e6e8e27c546a2cad606d25920b7f59ff83f5c2f6321aeb3ddb7c56c281b4088d15c4dbe59aee2a05b7e6347b668d15ab66d4eee0499eb7fbdf55a4e2aacd9c05b48c350b35d08fbaad43d5d2a04b8d8fe7211f04a0d5dc23c03a189ea946ce0c886dce4c5d818e7c41071e006eff220508eb6d736d38f8615da49a8e75e2a4ace27ffc6785bf8b453a8d5ed89d2c286fb72505754c1c57e2451d678d132ba1e1907ef9ae17bd2441f88739643ed80b296bc6a62bea5b59a0fc69bfa8e032d08e1c4be9e65569dc3b36e9b9a10019d14d41010ce38c1d2c25e32f7b9eac3f60ddb60691260af6ae2a68c636e08453ac7f83157f21a7d18c95dae6266e6974ec876fa9d5df613bf2ad1efad4d993fc1537b1ef387ebc0ca52ed70fed06574a4f45f5b4cc290a11c7662d77e8dc17002d4d6df6bd28f628464d8e5aed302d3747192dec4e4f2e2143522251e7d29179e05adb9c24c9b12b994ebaa16e8155d45ebe763a43159b72ea3d3606fb338c58f5b1b7dc6450126288661902f498ddb8e7d8dffd4ca64624d8a3ff5fd8d2672528d38ae0d17cb560f5c764159f2f9a4f3cdece5ce8a78d51c5afff16b0ddb43e7f28058bf10b4106534e61c53e5435571727657e03294e77e88716dfbb91c8c16d90a1e4df221083b871b4734c03d0a2d15402a3b6facb64717596afcbd469eb5eaf19e3b46e3214f5cf43ad5172c33ded7a948676ce85cb5668412eb8367fa2a04634fe40a061e80b08f9b810e30d7a9aff866f2e42566b6c0440e8665f3437a6fa90856da6fc4cf090f262f2d7663f91dc3a8aa520359b74736fe236ceeb046629cac06b8545bee12ef6c3f8547e292d78f7b9c186d7be0ae776b319ac3eaad8064c3f5e5ca1d2de508e7f0becb8a5b968e0ab3acd8887ca860223090837e8b75b3d966a71af57f28bb5f9144e23c868c039e9f2bc031976ce77e5f778f910e93ceed7f44fe128afb5c38fa6bcf0414eb6d813572269eaa4b8a77a3178c39fe3d06015ca2d91d4e8a60d02401ad83626baccdd2f04fe0fe031d6662751a31d41169a2ce7f0925ad400c70a6d515cdc6e1873d01e507ded180af9211071ba73398da8798840a88d8efba84e0e81b32f8d69dac4a560e12ec82c48288111e0f5870cd20fe65a1aa3afa613012e09a0e65a457ee0c0d906a8f9ad4bd499cf8c9072fc59b8b159c4003717f9c89b8aa7df10854f1fce165508a7977fec32a13c7193c7e7dfcf9aad466415503f7f240b6fdb7ebf7de037c4a2173b5cfe31904fc2971b6e2d67f16c714ab206b50b975590bd1076a8f45c29ec1d4640611e5d410099bb08a8a0db9ebe2ccdd37642e6068bb71e9eae397689f9115403a6ba4d3721ecd08cc0ea8b21b898870838a4682f3b6d0d6226c1afee9ff6d960c6ca0a41a86ab7deb5efb86bd5bf3fa98b5a5818feab0b13eec5ca965836d1dad0e315d96b133708f79cd3f57e85187c247399da51ba812a6f08388bcc4436f93b5c4a5b9d7eb240280d47320f8c57b90f7aa9c7b6ec88c3985f2a27b365afacc1de6394f7c82339a29f2d64e86681182fc23807fa8341dc54694b73afe7244297f0bb1c582775ccaa11e555eae48355fc490e2f813cf15006aea4ae67af14a4636888a7f8be0ad4127ef9b2583b238cf5f5eca4a8776adfc8b426d4f26e8eda622c494138b881ac6dfdb32876bf8d6394e89ab7f61d917c6cdc381de501bf258ba1cd677bc79e0bc8c76b1fecc918f66ff3de339fb6c650ff8294ce943077e870fc151290de1b31969d9338aa1f72ed22493bc0f229e051b4c5918d3617998c6255565851bde5bbcc3020feb751361da92aace7e2acc7426f61a778322dce2605c9a047f5e911f2c197d9113f76b8adf28b9dca5958568b68dc36b95b51af4fd1cd042bf3ff68ef56862bd8e5003078e51bb25a1379b32af863dfa5d91bd0565f132d72f5cd9a13e3403bdac55ee41a264ea16d5d1f2f503723a367f9e15324f225195e6df700b6d93ebc82010a32a753edefc2dbf904d99f638addbeb84a2c809f190ff3ceea0733bfe3cbc582657d3233dda2d544c3eb997c79bdd7c52008a0e51fb3342579e7974cb0d88f318ec0834b97b4187fffb7b1574e0a29fcef393c1b61e66dbe9f72ebfcf3bd0d98b0d2f3f580c281c1a30218261a085b2c0ce043870604ece6d06704d2c7ac689e696e647058c2a1ebeebb9e50db10eb816f16e625ec69dae3cec371f42e0dd73043aa85a2f68304ee6237f468b6571dbc9bc1147e675f93aa4f63e945506f46d579bef1f2bbb9f6f25291c4d77c91858767ab5bca4ef2bcb63d96f7e83c4e0f94c1287f972041d05205e17294e7d70fea7869c9b06cee744d650cf9c35679baa50d305408a8db53671c1d12b10743bc66d56c7629f44e39e41dc6b4e271f1a3d4c27b10c617b80f18579f70f0691263fd6b8cc7560af19b6432cf5f784dcccfb4f28a5f4b9bfcfb2f1f9775dca0dc8067c5ce7faf148a3d468aef3e961779dd65e54034d118283453825ad744b5b7004f431294657cb306c43c6367f858b5a7693eed5b138f8976936bab63863a90b0270c61593e09aff7015cc361d5f70f4ce792a07cea63697651fa39da7d7de711027674c6e652514fdae88b1ba306a5d81052315bac587bc80ae093dc016000ac57df65ce686d8d2295a3811b0f3e30ecc4b6e9ac2444bba14ec91e85a4a851799dd3e6d29c16ad1ee2bf11bb22cc47d49f0b06685beb8ad6ec368eb354c516a39f7cc8194d522b39d233b65996bf422d848ae04daa16836a52df8ad5161ac999a149b06b3f9b1b27be77b2a13762ce8b0501bb988ca82299c1d8d458d9acf664e706981ac1a214c369d12381ed5352af5127509d75f29c8f138ffcd75f4140e1382d7d23a8dcda547dfdf324dc66d60898571b4fffe5b5cb55289ad68f355ca0bf85c596262a95039af939fa9438907e02fa987084da43f4bdcb9105f1674e7656c5a7f025b0b69123e706f53e7c541dadbe6caa7a9198be64ac4b8cd96140facd8f8d4bbddd5e17520bee3dc324888a784578539a89128f3af546ed034be638b33b36bd199a7aea205c62079e6cf524be216d17dfd8b66b4b36de4fa06af2058bb1b416d7ce13f92fa3663957242773b376770c093ffc9eace506e3adb6d2ed1bb7ef78208773e11ffd0d14a3ffcb8f0cdaab48f59b96ab30084ccf21a2207c93aec89789dd0f75e90bf0a2e9ac2cfcac8e5fe18b2100dc119e53e34fd8bb4e184b84fe5cc56b745d0e7dc6480f2d9793e86a58c91a773160863b136e89c22c009e5d61ed0b08f4e568546dd083d314da7dd5de35286da5838bcb1c49457cc962efd1241f5d5781f451c9c1512da4ba638abf7f9067247f4773f465548d4015ec3ff72f467de7b1ddad2ac74b78d56bfce5e0c550a54e1357bcf43c2cd7d1ee701a20584d29c6499fae965310ea3caee1a31ab9fb4dcf4496e99e638c2609b9ca72604765d9ce99ef38283dcaa78dbc362aed327aa6046731e76c7997e675777a5f62200c6e9ef17b9817867025d08bec2d215c70933f07e8cc476410c204202141c801e6d083ee573d61aabecd5aca9a38e60d4d8760943aabefa8d63bd1d35402e81f0d260f8ed9f8a78289b511a0092d68005ecfd87ee7155604a2dcf269a45e946ec37952c14cdebe3f71c29b7e3275d9607151f3ef14ec9c03f13d8f9b870c7f2676ce7d46a60d66b2fc3caf7cbf1562b9ec78671d5fa0a939a6c6b8e316d897d9e15441027bda7f17b92fbed06176da32c75541d366a497c4d83879654c518408bf4cdeeee03d0fc7232a98310a75370da9056c22c5b98de826c9b254afc30567aaac73d243241040ec0f3f887ca78b3469a4f6fb5ac7d9d0b588a88a5699c6fcd66b71c42212ab15e0e1cfdfbf99b4f624da370ec294a557ae58fe4fb9f5f02036a232c3e050594ad5e2625e0c1bcd522b32b5e4036eb942659bc5edc2a9904f17be55357066b75742b359c2e79c30e1e073f67b1b052cf05c0ad72f853bea44122899ae9dc80d349e38bfc1f78be08ed717577a749eea91f14f1075d4d79203783bcb84fc5cb15ef1b5f004179647b63346b2cd66b8ea366f682d187dff14ca473174af7b7ea1b011f03242f304fabb6f770a462f34ac6df3f77453fa692e80273d3874e0694ac73b0cc03c938a1e690fddf0ab07bf76c651ee5b73abd75fe1b1fd42f3f30fde8ec6fb3eb295f6b1634f183fb0a6ddc6ba39c5638c73d806cf15bda34b560295a797ccebbecbf67bdc2a7eccce5fec9aa624f765f2d4a936c627bfcc8f6f538957b6b0e6f32247568a945a3bf4b82e6983200ba9a0aeef4bd1d47f7e56540b1f92a929d92a727d5fe7f6c39a6b5d1a77e97f612e5cffc28ee65182ab2df4119e9527bf3ca27719f3aa0505c3088e4e671e50c26bacc97ef259cd43e3ac44599eb894cda9d388f5df8bd81b44c39ccd4759ade6b2c311d82c5564bf849a1f4e70cc2f0f21978fb4f8da97143c2a500b2c49739f29ca979b9e6a0fa6b544fe768d1b0b9b79f9c4aaca92ac19d07ef79b73a8b7a26829b7495caad7f5c4e92f12176c3e6fa2acde0bdb6d08a8b7358cd5dc1f77a6d49cc0955df022254a8d3c4ef01c39bf7b673f07b66ebdc610080c1d2f7e275365f9e3ff3b958f05aebc79feba98ebfff67b15fa988927fb08b2d5321d9aae7a3dd71ad983b135d71fa47e833ab13da6cbe451771f2afe5ff43e014aedae0f529ff6fb253aa3e9f04e94b02c1cf8ea5bfb5b2a84b05dabc7a92cf80a96b2e0f457275419d007756e2516eb360a888c35e4c0b6e857993ad5af780c749773f36a8ed46cc1fb80de127d052567b78472f17bf5ddbd5641facdbf3e56a7255f47b703410b49ed1a2cc7a353c6e7d5273da79fb5443c9bb203621d92b588994fd2aae16f3e8b338e47da4d1d61ecfbcebfec4961d750f5fb3d5aef03b10b7e249b53801fb6fe87f42466360de2c3a19a4b6e32fc2e7ef91740361e6f3aeddddb0daff1757d683ce65a97750c8a4b619025e546d5511b07905dfd9917f6522731df43888ee04d60c7bd7363ec4a160ce88b0695c3b414213b2abf39653d0d4bd3a29bdcc3d73d08d1666a41718d1f1646633ad4e6ca7712340a00a5bb44a26edfb6f894b20d2ef80469f22b261b25434958d6268ce66ab8fe28c548e6072cccafdaa7f72d6b98eb2aef73d7084e0f0e2c3325d4edcb3f47c719a75339d7d8048a1fc4c7be21aecfa0d4ad8c46aec6bc2309fbdf855873a50a37c1c5db6449f325f6b11d1211475466ab9946a59e3f22a4cad9cafd21af787d2fe1893e7def5f43a8a21e00ef3d5d19007b60c446d893d45c4107da9c1b15cf2467ea0fb50a6e6b3e5fd51faf480eba15f007054c83a8c764e8d8a55ed7f35e4b1986b4106055467de3fe19f4dcefa4b22a1743606f1a6048556adf509ce0b359e5f0fab837de7d548051cc72b732052689ea55fec0ca3f08de7ca805863dfb1dd0f3c55338dd0c5338154d66436b0711ef040b052fdf94958adb562f7a5f55130c060a68578b48eea8dd00c90fc7673ca79cc43ce1ae42eeaf6fef27df3b1e94fb0ab7a278fbde2dcb61d5886657a0262b32f1a266a53c5c928d06becd89a0c47b8488f78874259dc2057657ee2b5d7198a176d8d657a5e04237e5c0313368edf9b3ed07683bad610a5a90596bfb4506df6111bfdc84b589decfffd7e0ae55241a0bc4abf4e7f26b60fcc830e147c409b33544ec57e793c66c5372c97dae34d00cd164c3c56538535ced84795f362e6b420636fd16617c4996ae38c313f53dad37beff49029797d9faf2ee5bcee58d4c236a533d84cdabcf35121ee45ea235f0a9f4de12d41e430193d0b15b7275327cc69389abb5fc9f7bd412883f1039ef5aa3d485dfc7e9fc5613c6ace68ce1a2c223a84a44615ae296dfce03521bb83e9a03f3b117933d9078e32cfb4c83283365473925fa691fb4411b47c10d3bf76e55a26f4038f7185e726741b593d8681c48cb482f29a6a121e76cca5c26b6b5d83305f42141415574ec2b5f5181618a493e82bdd223ac8b13bebc284c9f6f2adcb2dc4edcb74d019dc9a139ef227d7a40369b2031a27fbeed928c3e367d2a3cc958455920d261131931dafcb4ff376f69f05b40ca991719d12619546415651ce869bd6a583f2b0312b128c43bb0fc40eb5e48170534606b8d00328413983dd0ce03a5001711b50403413ba3b65b00951aa6f15d5da78cbc6138a330408c4d37cf795d02fed858c00ffa04f37000bfc18164fa01289b6f594bcb3782b09c83664b84931e4627e69ac171a9acb4fb15d40b90280daf576e9f6a7b8c10cc46a38d34f3fb9ef6682db68bd193dc4ec416d09e0a25c62583742b6bd9854270688249ae251c4a3d8ea6504be9e82bfdf3b2eaa350bb3686f419e64cb1600c74cd872af987d63e6cea4851d1194ad386a5e266e3ad0124ab23614f92c9d052bc06a881ae1c4c9c27fa4294c8923c4b4d0e37a5f27c5f6efc246fc4a9944488e23398c2bb5fd4c30391faeb0ce944b997f934fbda51b465350f872b7a3ed60cf13e7373e3aaa4b4d9dff1c5591ddca92f8883b566f087ca67e39d723fbb125d45338cd0c5ace877c866827d0097bd18d7f470b78548c984636443361dc8a78bed41f3e42a602388ef5eaa83a7774e51998e3c274c9177427b061e74b2347b2a24c28d41c4c11b52c68ded95d1526a4c08b4627dbeb475dbb1e90769584cdf2d815fd5e3951ee5ba098c0345a572ce82caa464d5d1b616a7e8e7da44b9ea02973773aaa7bbbe3cc5b2937b9d3638004fbda2b2fa6911ca96f71bf4485fcccb7588ab6cc3c3846c5f635738e52a377edab43474117b47354159c091e9ff87cd8cfd7fc49b68014bbbac931c4639fc8963bb1acab0f87b96dff66b6db5f90e9d53077940b8bc05c2fd33bb459772abd49bed5a2e28ba5ccdba5bcc7e5d01e5119a25e1dbe5bc361ce0faf69db14ea8b35082ee1a47d7c44457c11cb0cc6699be7dee12866c0854399ebb7d702c071e041775b1f658bd1e32b895369963b453ab09463aa18cc73aa9d7a5d247de42b7e2dbc382e3ffe25bb7eba166aef5ba61a776a39e2e9b72e06dd608da5f3a1933d0443b986ade478842d921f0d49e5e40da872409d544b5ccb37f3f96409c589d99d9e5727b1d251ddf542c9ac9d0a05d4ae8b2569afb60e9b45c1a1b507e124bd13758f428afb646370c449cad3a4cc820f8250eadbad786ca1991692fd43c583beb1c0f8b6d2f27f77e2035a43053ec7765e9ab7fb99f4759464479db2b8d8d3cfaf7695ed127411ac5fc1b29aeb99a74518fca3cd2d05575eff40365c61b26d353e1fc6d5dca77e49cca7d5e9816ed249ce9854461cd6d898962a4e2a08bec8ea5a4d7c59482f574d1bec52d9aecf5d5755bf857d9d2f8a762ca1668c890f7904e2713d663147c52cb7fca0ad781533009716cf117f5c339fb88863bb5acf82642d2bff8589d7a743efbb73bd48a00c7f29660b3d2c7e607e28565b6361c24d9592e6a97c114f058b5b9df7ecf321a478b8305dad03aad204dcef75a873c9e67f8c466db687ac596fa88efd48e70a4a69accd086b106bb877098de390e5b3ec92465f5a7a50f7a1fe37e776f5c30bb3bffc22d3eaf4c7658052cf4d0307e0a68d8eeaee37e75ae9ff5dea898a9448d51c84953790d33c9bb0b8a186b604984ad04276c69c1509804585f28c442bca832017a62bcbf0588a6ab5648c0b62b338b23c01ad05ea940c10f45fd0d065c8bc8497fba0bc1f7061fd80c8108caf9e542029e357640308fcacff0221b1d92e001f1481f1967cb3bbb6fc41b12b33b47dc77502c6893ac7ea961a3bf751c187e975aa2220e865a7ce7a502c72725b4e0566410b16f31e11e0d8ca79ba4b70a080c35eb3c1f07a5ab5522b76a85d25f1febe84e68f1438d128729659d99ed11a50dfc76eaff1106897ea35001efb26643ab6e428cdf0918bbd97bc6b29fad070ee841774e1c711800455a21faa18ea72b1569d4005202503c80128e2c0c070adff40e95a2dc242b13cc6d6d4959da902fffe4191f39aca737f7005c174a18382f9ffc1fbb0e792d6086a4a240582682392928025bec8cb59b586f6ec5bc6cc90915079337e8f01a2bf747a5c074a7f21029a6efac40a487dd7dfcd5146ee647a1dc4bc334d0ec6247d6e3cd876ab0d229e8aaa9c260f06d182fbcdd2ffbcb3416065cf15d440747487f157caaa9f6347fd951453213ca35f6c86fad7439d4b091196d2177fa9a821e049181ab7f4dbea2867d78630de94d32308069cc62fc7f7dbf27118cd86fca2471afc41e70eea57e805a40e10bb964873d7e99de555cac07ee4e54a6f018be100da576ed8e4997360045f39a312ade8b1ffbbdecd05628bfb40384754079836790e36a6793d50de31594d095f288d5b59662d3393b1a588f3f38439b6804cbd584265a7806adb0c3a5c9a0f35f7fa2bc4c46b4e4d4e78fa76aa416b926de8d58d2ee71aba32e03ac558470076875729cb0aa3b36539093d44818352fbdad7c66624d0a568dc89525e92bc5a55b7a7d3250228f92b684ba4f3c366c82d3b9ed9641208285d3b808fd73225a306379e7976dce974488c264fc14e5a244396dcc5d45f536bee47ee2aae0f1a098bf0f82d4f8912d86ae326398774d23ca5e3303b8081abb6a608990febe541d4316c6a311faefaf7a92fe5a03906a329f2a648265fbf6f52b430d348c7ea5af83bf70d8da58e3d2e0ea6111fc6ba3509de2dedd6fbf2cd944e3ceb85f01edcee77f4294f096da6457ed744dbaf3220f6f36d248a2ba6156b4fb03e4825966a1aa547eab37312e63fda06b46bd68df14e694eadebf93c0127b4eceda331beedfd89ff92dd6033dfd7de8c9d3a444a1013248969ef0912e142287284b893b4d3900d1ab979a55e51f96e53f282cd66c8a3166ac556fa9c1c13e06fec84b2aa61fa5bdf96e4683281574250b8c3e9ac577f4733292a5381f26c7d7d3ac92ca46c0551250e09797df236a74b5806122bbae0aff2db8d08333efce22257fabeff0f46f537feb8a79b46cbfeeff128fe01507febe1e77c1a36163f14d79775cf1235be261469237a1f3569891b40be874fd151a37f3c6f416e4c9707bb5909a0b59edc384311903c54d3a9393a187453b3bd2a117c6e439db3811819a5325a5c74184cb90cb367714ff57fa36c8470404d7196a287ce4e00f968da7d63df4ea05bff5da8eb542bccf820e5e675e4edc3d3869c7117b2f46c27404f19f6a6c789526d018e3a01e3ab60a92cf945f4f9b0f639019040753a18bf795ff4a2f23c796edfb531f498979f94deffb29417bc2086e266c1d10746b64436fd5f693f3987a7cb706160efabc07a28f2b6777659fe2b37f1e9744e68c2d802b42c9811b725c4e68400a137c70647ed53546363ae89526beca9e82acbca85c154ed7caf626d5f406143edca6f9d8c809cd4a88297fdbee6d92f7c80b02d3245d1626a01ae1d3e8701e521215b95764fef11360f2167b6d50aa0c28f595512fa46693617e16a802097092c22c46c698b13622b0a9e1f04f34468707e2c49065d5cff1de113dc3050956d33d10d4bd5a4bfea22b83c295646f0acb5ba18540f050b98044586699e5ce08b5611a1f48a18054b7eb73dc4b878e05fbe762c6e416c011c2b3dfc789f4f23ba849c6b5ed8972f0046223d64798182895333d8b35e334d87b8b3518e4f4575a864870f2e78eb40ed4f8ffa94e5a63d67dfcfafb43ffc4ccf34ed819b8507adb11a2bb87157101386b732d0a1ff699156fe6b0aafd3be8768ca583aa001aa930b09444759b55b6a0f3aa67a2f58a1604e71727aef96e1f0ada05ba6d7dc7811807964de5b13fb8d91efb87b5fb79883083b7d3712dbb5a4c3a0e68668fd9063699acb018cb3735742a896f028a44a4e4d103b34a6177c122652f626faeb046dfde5b8b197afe5cc9a4c991c20625fbc6422d1bbadf6222e300b774a7df34435f4316b7e2642b1ce2617cc4e4671c716122ac3e4bd0076439c156f72378b137ac3bb82a0bfe5305972d4f03bec8daaf0e75288e0138b3ac516067162959b534c44d213dbf549714f8ab5149cc24472728dcccf790f7a8e175295a34850476a9ba42e43bd629ac5ac462f1e3818cdc961e8574ff015a66e4dde83b3530ed5901e4f6c72060e6ec72c3af5cb19aae57f7e972c3a4d5bcc19ef945381bcf8a0411cd1be0f455fdfd5fa6cd43b7dfaaf4c5e0e3252e5664ff7aa6106b271ebb35183d497308e3dd0c2a59035ae07e133617d479b806e7ff8140d8280ef254e8c744d86ad581e2c0861b9a57a9428e69b320adce4fa8b06537e486a7daa7bf476534502f610a102ab400aed6bf1e09b2a04a4c63f4e5990cd7b27db36cd77abf2e7866b816b4f836b34c4944510f7105daa1d91b30037f69cddbbdfec3ca18eeb50501b365be074e4cd9137f31b93f0c895ec3f4033c8df22f940819259eeb73a3c3b9fd0cacba5b24e7eb81a161393cc88a1a3a712d7bbe329997d0036090af15a5e7b0abae49bbeb2ca370bdb5a9515501567f60ea2868a9f9486d093e897544cef2f49f0c09b06ef5b1f761c6a64310d9c621c28f1d4c66d0597dab2af7b75985c515b5c54a209130c96042ed1a19bdcf212f5cba3c7c1477f8ca82f88a0f7462b9277f87f8ae3aecb4b6201b968612900ec21a9c45ada8d00782ebffe5c089471230079df5b0c2570429b6882dc0ca259fbad070fbf44a96a154a20d0450d414551ef9609b9e9a914af926a2bc0cd2c078e63b1b23427a4ada6d0f902cc272614d26c81b4a5d9f89902be25ef9055c9d87e27dca9f3ea64462214a596e0c0796c83049ee9f9700ae6f7f3a20a150de5f262caf51d71fcf6e7df3c4a07ad33298c94c9acc430df554883618507a4e37c8db752f34c94411e0e3f9b092b8a1dcd22e4990349658431e4c3a1c0a26158aa8cd8fa3aaf9931e928b32238699fe2a82e10b96cff2da1ae8f22b60aeed2aaff445a83511e15f8c4998e86907ad065a145dc1400391145732154ff5b93975d6c8f344851ba447fdb9f45b33def413c27d52365d58919d974df5889b877540e7de60980c999ea89bdf57924c938aa783fd381282b445f028f41a9df9340002430708671252a4ea180679b74c760ba244435aeb94cfef4f02b3236eabd5163bd2a72cb2b21adf466c78e33ec71c02f62b2c922e0af9bebeddeb4c802db18d27630f7cb63fa9345e7a7020a1066ccd6af6631abc54aa5e58c7e8c5f35995f1a65f1493abc9da70ddb26965694619a6d3953f079d6517d28a856a8756364f569b7c46cf72c3b5aa831d1c869e44d907a2b6797414f99aefd32e2e859216408685351fe4f9d03b4e933c54f6a39155e843c113900c7840bf45ea31972f3040b49c97ff74ff612e6f7e479e36599fcace93afcb86c41a341b143533f75824dd98ae33ac4db1ff661de7c788d6c0ee0b70354061eef8e17ef00348aadd751f550b0aca639a8fa794f30711cf2fcfee68f78f19a2d665c740929254fd01cac84bf5c409d25595608f92e5f185a715a7883991c648bee595548656c82c4712b0d07ec55b99fb527f8a2820bf6d3b4c7189d222d44ead686a5646feabede098d452e856c60c1aa26c9e914a2082c5ef1d9236cb2a7896dfd9002570387f912cebd66e15bc644115764e15d007c0977ebbf4d447e0accad273d6657c45456e83c05566f996e50cbc406ed257ad013d2ed93767df18445ef8226ec0189d07975a9dffc2d48d1cb9357228749b395475d391b5d2d9870a96477f518bec087aa24a5d8b5ec676292db0d12c3dadabbfb6987add464e2e453ecc178a0cd8b27efcf0e6592045e2353c0a7e750d0cec4a2eda44b54cd04f0d60566153bead1045deda8b3bf9717a1ec29a635e864432182cd585b1d73733a6ed2e4ff43b16dbb391bd337f81fa59063cec8382a0aa65fc770ed338fd7d828ee11145f23ddc8ec97fe9cc54c296d305f79c5d3c75db6c6212baaab784e2eac56654bff0b26ae1170529470216d4d3bc5e4dc580a77e904ed520b0b344a19e176a7c17ba3eb8759e6fa7e53e6b99e586b389a10b48046b217770710053dbece38570837f9afa7b0f121f286609389871add45c1e5e57c377c6f05c1e76795b3c6c2b5527e948bd09f46788111a927594c67cbb157bb6a3cbef1678e85478e10d42ea7d8e75004f6dcbc9e7fd0ecd6f8a470dad17f1321b04f66ea7f1e13cf7fbe6b70ff89255eca5579cf8614ba8f9ea703aa152846f0e28655f7966db7e03041eeb0c0f5888852ea67bc96178419f81c10dc7b1d411dfe1071cb6e5d42a735d67df4fa64e523dc8a964e573349b61e49cd46e6285a9ef819a73ae7e91d0e0375fe68292c3f1845352142acb36ce346107c1d8520d3d9edabcbe8a84230c7b658384f125aff428434a84fd0c6c2de5d1e03889cb17b1286f5d5ca6d96e69b6bda3b686e3d96568b433e807b6a0605db081917f10b3cd5815286b798802037a3aafa60599f01fa7f5fcb3bd047a3f0692606ad7b1440f5975de6f50d5b39fa5a6665db3d1ead5b1221a699973b78dfbcf1429b3b76244e578495f2cd0f38185c36b8498a56c40948ff0777bd3fd0c5011102770c3fc1ead2152142953076a9b9767c6e4e23c06f0e98cf7ebe4a2fd2e461afc9306b6688590095900637717943fd5b9dbc500d7c5b5e410b24f27e7fdb17cd9880b7b726a310124c98ebe46ff71de29457900ae812d04a80e1dcac24be2de0ed863b896983b6c905ba80d70c581b8d548c5f8d561242261622902cfd6a6c5d424572f6bd4350996168b46387ba49e4d9c4f80e6fa9f48ef9bc593b6dfadf7637a7ca47edabf72c786c58d4c48882e2ca87575664a2b71b12ae3e4cc78cce4b43ee6421fe8a6bc930745a8929243887014a8e17ca52edfc1af8c50baa1b8384bb0069db25e8f817364bb292ea13360084dfe2dc0aa74b3375aa449a049101371a391a76546c96b63906f9b4bf2c373fba690e9687f6d7f289257fede0ca9aa6befb5e8789041654cc6c76f05dca459619a3abcfa9afc9360be5e701e1a39825deb795c675a7d943c5f2fe0acf195c4e258357eb0c339ab549daa5a0992b7755926cd8238c1a4e19a5e3ed49ba2cc5f724dca9a6548ac3f4e8d2e5f2236278f8cbb2457283225dcfeac9b74d83d364fa49688d2c6c8d7e6773cba3014b5ad603e1e0a321d947790c890a327213aa862987284c95f35a63ad73194f5b83506b01cfd9fc4e73002b0c7d08e79262c5c9d9a743fe6066d6bd4b28c8256c32cbbb5a5f2139a56e7b1267936f6db1ba1d18ab18114dbf3d4e1494ca70563ef33970dfe5d0465d72df80ce0b18eecab82f38fc88703fadd205d4d02f065807e8b8b29fef7b52b9aaff44e9d9ec1a00ad62909271c3e41f13a80af7892ea44d479ceead8c29ed518ead68f5c2fae2a90f3b6647275b892aba04c4b01bbd346de58976905108c33b89aa22d52112af491d5d41c8d1a181b40a2c515871010e5c6ba6320d5d2091c91f8db8dda754fa6a26f2bac7b3d2459a2ed3d34b2d3baeefa4f3dceeac3992e9cea65b9fa5e887d2c823b17f7cd71cba5f6f1eece0623184f2c9e105716665190015403ebcc68c46379b1b8a48679f9276f2391e44ad16664e75e8651b6decfd4bc95f0728cd211d62160b322d215a5ede8057d716dca5bf94d6d3d1de890c27d716b9f81dd35941368c9629440186cb22e8ef9268fc72df8c5a3d995f76f2c26146e151060b568bfc7fcee326fb1683d36661f619a440a4feca6f029ecb37e8f4ca15e4e113c6059d492602b3c1102740201956c261ceb366d262defc13570237d9bd83c13a4c7f56e6f8af1a9c0ce7e55b8b3700f0868ead02c867fc931552ef9263459da63dbbea644312b7b824a38d88e814ca4712a8b2c71a20ecdc28c3bb515712a1334528d56ccfde5922aa3a6746c40b3a9853739974872a941836af753b191483c88cb6906e00d6d5b17cec5c19f425051ea602a2e3873e2af509e81d92eb967e27c7e29dadf3a7ab7b30220dc42196b600ce855fc463ce0c65470b9cf73d5ff1267cf6758c520d96ef0ae83a2d974092c6ddee613c7f1bca0b97612d77504b7854d690ce0d25f6a8cde54f6751baae6d325fe4367983321a2948cab03914d981579318b5a0818f1c637cd40ca4d310d0a1d5747e838789bc9effb859d635eb3a9108355378b192ec0e7ca07be56bbc8d8f3a893fec976c29570e5cb2a229635d333b1f41404f24911a6b0c5a990b6694d01508bbe1435f507e3c9ec0be6c0fa8c719ccb22d450be4c60b0af46dc3efd4de75058b900ced182226118c1a3b9628d96eb2ccbcc225a6e55e09249b159ffc157306ae70cdd91bd7978dcf1f1c057b117b8a58fe7048f3a96b2ce3a155a2667e2fe4fc56343ac9be25069cb1049196784b4b4573995944fd622d626819ed95de2f9147297476f440a8f87b45325e3688f4b088267446f1adc54e8e7c68b6e97f601adf0c846197e10566b33112ac3ff9c2526c8b7ddc56fbbffd1106069588b9e98550f89ec8ddd838fc6d554279ef3958ed255dff7b55858e3f288d0d331c43c8e52f4c21fbe39a1d11eff187700d441e367ef64d1f93d16e1f1b3a67823dff2be60aee96ff6dae5b82c2102b6dfe188ce7b3e604cdbfc5f54e6050245c4019824be8c38d77d15158081f972b7d08357de19b889fc1971560846b446d3ecb0e5b60417bfe53a50cd2b3c1e75d2e9ddac45cd79efa4925b1c5025fb298c7aad85e0229231b697756d861e5e35b07967f6fc48e0587633713245baef9ddb0ec24fe5ac0f84317a03521cb2a61754110c6cc61ecb03ce017162185029d2cc97e9b1ea4d623fe65e536cb9743ce16631b2905d4418183a146a3a397896e4165a341500d1ff20bda928879585e64bb4395c7fc4a811670796657df3fa54b8031fd01955dbcd77fe9fb9fd068b8a0f5f0c61d39d10f4a3c604c89583f6fe6eca37fb2d926912d87a2bc37a3afb804892e6c78138e9bf2882c394b5037cda6d096e0e6cfe352c33d3ef67f0a93d16d1c706db33de5932d152612b4cb82bff59d3602e5124d1f3d07a0e629d0f7e61eb9e3e0bc2910640201e07e7c78363f61bf6c96c325ea27b43c1dc2042a32fa041cbaf1fbdc7b980301162fc0bdd1f86385fba2f61fbf83f135aae9db2c9d43682efbe00d451d8852e6513882ce6c9beec3134513b2cb5a72bb590d7482712c27e511effb409079ccf151902d566ae0d1b8eb6a56a6a36729505a0055ec0f1cb8d3bfa91f897731287c9f6678cc58eb3e0cd263cb6b73948f1fd64210b29b249c6236d5f8a43f66f5aa03cfa4133dfe7cd0abab42213d9fff2a3a7f54298790b5a581e449745b9d69c781faea8ed9c69eda5ef6db042a8d708ca4bf6967ae67afb30cf35ff930c88651ef18068503d196b8bb79ab032ac74e4932d95e6da75d334d3f0ec4f7059480d377065c8bac3638cec46388de45b0e1d8bced1ee41cddee4cebbb80888a3c35dd4c76b2891f3435481c851fe4517b8273061b46b09b3d67fc3183fb5a38565654910f86cc59f61785c1521d3c59661d3ecc712dd565626e93b8ec65038de39112e74c06dabbf1929ebf321269ece79952710d7bf6b4e55912f95abfb22f21891f3ce151792a2072fb87e95be8a318afbbf7ff26239c70707e7b8374557cb6e4182d4f9b430bf68a486bd114e9eefa6dadc6bb71a9ed83599fe3f311537ac7ffbe6523b87f5e1f70255868801b0ae46c6187ba5c890336ef8752b620767a1cffef82145d6e154c201601d7f6942af2fe63223561b1ed39c7e57bc243c7ae9f4d1e413fcc60b69b0df362e2dd7fd398c35b38c2430c89775593ec82d61f659823cbfb66700effadceddd7b5afb465f22367435bbf7c1220b14beb016607defb6f3f15be9b3bc84d6498197819e775be246d0959d5cd164162fe6ac5458182df7ce5d1b612102b98a76d8dee2cd47c60543a7e74e6680ad641cde2112917c4c3d2a40f044e4e6916b4f2c753ca7eb60ff6be98119e8409c8df656e7195b89fe1e55439c97a52b2c28ba05f1a59f093431bb513ade48d940d885de9b3b5d5c79d813e70c177119573457c481710a2af7e79e109d208ae354bc913015cac90cb52ae0522f94a64dbcf69419762c17738acbdd9c5890cc4264e0497e609a786e399ebbd86678fedc9ae343edc9fdd1933853787479e5dac9c481b47e1f9e7b67304eb8bb05b7d602e22c194a15de33e9bfb5b275296d47d975ef5e7df3f1b1f7eb44a1177b6d293eefe4f18bc549a94d6f23506b810f8f575f7e5eb54bdac9b12ae3522411ee49d04958dd9942bed193325af9d5ee18324a3f251a1b9b3faf9290ba338529646590e1b9fa9721f0723f014131f12cd4302fb3d0925f8549a7263d88e6b839c4ae0050c26acd9bc17c1d633d03be4feb4fe7bc9ba56c2480a5c2895a3afe861bdeaf6bd10ef0f81d39a4ed09c424450be9458e586b0a741b5f1685bb6f40a2a1f550ac6debaa9dbe08ce995dee4979b1b51cb271b0a751e358b72ebb71180c87e2837fa205e2a3e7e0de6e46b6afeb8fb1275a6c96de8db888bbe69dc1f2cf26259a6062f18b6643ec8524b0584d4c45d5d1d18c44fbac1c86903c0f9eb6fbbdbe14c9a29624760144570d201ae62451b4841279297554f8d48785e9970be0bc67c91d939f10cd35695de310f17c517a83785b45cadc80d4fb7ec040fbe5c47dad6df472030d691f42e94880f32d2bf88195261aa9e2e5af006c4ec92c01410d11b06fa506db5af275afc02a0cc6118317c573133b34d4ff1a6664ab401c63cd519cf62b6cb213e71dafcef73cdbae54b0c46203d43030e16a18b261813a283094a869277343343d59e2da32653d4685fc670dde2ed5408ad1910b9c2bd647b899b25118dda838b547261504e2558fe87a9279d5fe227212eb00a9c6fc7d85bbac5037e34d2130c641fb6d5fa9b0bea6680cca1ef65e04526520453157e978fa3f3d679a24954056aeb39e7521380adacf33b3b8eb843b0129bbe3ce4f8a7f748a5600e526adfa1952fcb1a9286426f24d3b11b92a7efcb593d8e46852fec90d76d3105881b3228ac68aefbe6e8be2d1744684337590646bffd51cb4abf27efae3f815f8b294474cc11d639db21b7e06877a5a4664727cff5792f9198d567d6d0f52ecf398e5ef0868824d926fd8d39ec8b4e965a67b1370eb605631410f2a7a5bdc07588080972d5a314a96f80bc64b08001f46b55a58005e292bd9cc8d18a524a407bba23955fcac07fec209436c9ac42da0844ab96256efe04eb7f1fe44b7b604ca8bf163e2ae478dbfc07a2606733faf5a7db5c4aa4cd4a5838ad3a08d052c8878f15f037d54e1bab207aa28cd872477898d6c4435dd4d939b2a2b8ed3117044f0b06e78541b783a2a1ee230345f9f96294db1b99b8310a3e653d16a587bb11bfd22ba6bffba7e6610d039f4a9b2773fc149ea921de2aa4478a26f91351c3076ed1e350c6ddba7615c12b5f2af571434d465067610a707bf4efa452c055e06fa5661bd542a66380830cfa6e34c0cbabe9a043c8c4253ef8c1f49c9b05c0a69e7794acd288ada7aebf4a65e2b7c6a6d77ece21b96fa4b263b519f27e5a816c366d383fe9335d26621b46ad510c05c2dd9915e160a203df0a3a51c4e724618493d464cf70063a11b5de76e905aef34b9a2b1f21649f03110930b7adec263544b2818d2a0ba6fbe9cca9afcff3ccad215937c65ef1162d4aead5f3c66a8d44df9766b9aeea53dd37beb27614e4a72d75e41aa23b4ed2ec44702c5e3133b6d6359b033e46c099683d1342c344a65dfd8aae087d592bccee217eca95393bdb7de0e7e08f3ee11fd7d20c720dcc35c3f77efd959de4ef6e888b230be3f25b8c23ae6d2829d8e78676851a6375904f7ea1cbfd1a0e8e2bca406161e56bb3a0e8c65266de76c33deb0ac7e6089583cc475d1316f8aa19adc349a6eabc18e7433a8dd18c99006c482f15f9f9c693a989181f96a96c32489dc870ccd101597b5b70b3faeb23eb5b174e359ed64e3849679884eaf85dd77d1225533c745675c63c577eb2d5413c8668f2c7214083723fd8035ee73365b0c50e0e406a06a78e1ddb3efae69133665e5ee96ed6c24581e91bdb8dacdf1330bfcaedc89589f883bba5d5560e3737128f5c904c06865875ea9b63513b844cb8046a5f8217b4b2d5aad79171caa94c151cbff6e08a9ad8737efe9293fcd34dc120cea8c83c83e10310984d87c050a6e3981d92fd4220704ad21cd8ab5fec17b93c59dcc1bfe7f2e77e4234090595217832e79cb34d6780af68b22265c141d86b8faaa6f7d76d3a837c2320fd6c46cee8011a346f9164e81592bebdade564680cbb882bdc6fe1b66b2f35dcc2df69feea2fd636c13d813fa17a6c552bbfcc1a78b8565dac3317e8ef9a69c8cf8d0f8e30d3bad67f7d35ded109a0964e6f393ec796d642e9c68f345865d524e7a5bbd1df551a2742a68689f5e1e5d99e9066aeb61c08f348537bcedd80e31295d782cbadec4c52a3bea34f50b2581f3b879d52de3be3627c8a355eb34477b2e1f51eb83729bdd0dc96c28591b1f4b2eb389b29ff6d2ac92c06dfaa9a3dada27091dd1ad30a7590032ffada1304bc56f665340eba17f64142c76c8c484ec8327f205873195507dd541717b52fde2da511d5d3c1bf0d0fb95eb7472110a46366a843362836bfbfe08c9452ee024c6fae9c27eb436788f911e41f4b96a95504ffe7f97f40212a87b49027c2073eae135d99ffad166218bcbdda3e2eadaad75494a0cccaa7e82dfc64e4992dbbc9d3279b2794100c02cf1c0828a49e9bb79dcef98911abeb158f59d71513b1d2a5aa1fd8a8e01747b0c64ca9a60d535a5bb82fa96efe5d8dee5700c198b4734a6589ff9142587167e8649257f5d187c81cda4f511ba8001078e8c1469dd2e5d0da50c3ef722a381d86bc4d1ecb8957e35feafe803998204896a19baf891467384c3abeb0aecb95e957c821b7156bb9971614e3a4936d5bd6f76c0ec901ff7606a235f6844313f5e968d655e7c6aa54e8fb4adcb876918b94c12122a00558ef6c4053a6331b8240612dabfe91a2f3ae20d6a5ffa0d79b6f8a8eb0534ae3b7af7c6be8fce4b4e9d8ee772c2317b76d25110a1f559a7585e835829b1036f7410ee322bcd892c71cf4fb2842cb620afe5d8db03aaf0cf316c8dcfb5da8ec1dcb85853e04dc2a3b10ea8c89d498d3cc5b4848a2fb9ad9ed84c55a396ecc6b76eb59fdeea2279aac4ab74079fac8c73961e3cd4094e357a28d7a87045166c57029f39e60ca9652d4f7fa6a70e2dcbfe1bee48a19b90f85c85fb3ec2d93f11250baa0f3e086609dc8ad712a2de8cd30b24ffa6437b649b2ea30e5ee44dc8c5ef723e6e6a40945976cb062c4aa3e1f7c1c23d88f11d0105cc9608a0625b398affbecd926992f62409ddbe56b2c6909540bbbf30c60cae42a7314c572fdc871f20b050c2a1468022b7edbdb10100e59415c0b834d5b1f43252604be356eb22d4e696979d028bc1a6b2e8c7857637086ad48cb3780612c67c1b7ded366b93549ec7dd1146cc117f6fb798c023e69e8a448e485fa376095f43afa8f13ed9f3d42d4259c68438cee704b13a84c4922edca816c29476938bf41a326cc98e8771287112efb2c016630a3dc9b4907e10298cc16ddafefd9f97626c5fd73ff5e9517532469726aafd4b000c4bd6004de872b922406e0a76c2d4d13eec7b48039502c20b4cc768a0eb2a321121573aeb8f9e4bf534d4cc52cbcf368c50863eeca59e14499300ee9bdcbd77e58013514df782124c7c9f89ec2b4bf61db4fbface39504d7a1feedac3b39514f69a23fb68447e6742f505f4b89e3b30ab17b00f3c036e40f7fbea085427fab52c45947180ab6a2ca3e10c20fa87eb9e95801c6d616cd2ae885d29bc96d550dd52497fbbbaaea7925190861d48034204ba210666a34bdf84042273d59e59df0be005736354d4c9ba2035a302580eb1e30d463f6dbe92c77e048161722618d239d274505bbdf39fbdbd5ac7952e9382f113f90fcbd4b1b20de2589430c2c3a4808cac1ef6178104904515d3dc37c1e2c2fbdb1093907521c2fa018cb0a5114e406fbe48b404e00bb56f1af6f182626dea1ea996dbab92a97c3515854010a44ac8229522f22be5eafc8f26d949a04d4c56c392ec2e6b8809e8c027cac64d1b107fe10ff61733594cac9e99de06238cd85f83286c51da94f1dd3df213d45774717f3cd438219139b953e64af33fb1fb425fec7d8bb647b2c714939ca5a7bd91edf11eeade7184141100c30f87d149272298c72d9a03115562ac8ef4c8551a9f60e3aaefe65b403eacf2d0acd3372aef9f92715d12e6ff5d57175886a7403a639f6f2b8793e976635dd60aa22d91f0ca08bee25d3058655a59687d749772ade8d68a3aed57e208abd62c7e10beb5d22cd29cd05dd2a3d8917698f6807685561b38940d7b14a70b7328e3038e4adc045ff9007899e0866fcb206bbd99c7132733eabba4bbb26675870e9c33e6b5aaa040ef6c213b15b9962d8ad7e90f74ae47acbbe02afd6efc3c0166e2fe0e0a255122498c5fb5e9caa392080011bfe86a4a29ed84e6c6b7f196880c703e4191f8433d1210f1a13299cb536050abee1e02a96c3db6b783f907de36464f08e1e9fba44a671e2f233c6b685a32f86a5b8fd0d05b1d060a3f3e778509154d9cd41d62545bee949e5df8496c025864e050c60d8d05a331706dac77e060997c8645f6659aa2472a1e28ad1e7ced888f478d0ca76cbf807599d238bf59442b13145907ed4aa4b8985019fda37da15f3021167fedd97fbd09f76458f480dd0bcdba21c5a2f4526167d8c5cbee2027c8b68331f821811d27472e206dd4615ade96e0afff47e7f03b24982c93168ad5766662dc49ab9d724645ab7ce719ad5fa0886e3dbf81c66a662ba5aae16d069352446d6c9fbad6577c2caadd726eb16e3d7d360e1d0b76d298363267997ce979b819b23512d146e1cd326893c2a6bb67e8b88afc23291e811a3aabd6f84ce6f82d39a1a6aaffe9b23d8790335cadbcedf547de778b430e3bc0fe4a0361f0abb5472da34b79d21f42c9e64758b3a7b3ba0b541bcee279b5921ff0c7532d99aff9211a9ba352ef2bc2a57e0ff552c2bb54a323d62b7591ba4fb7593c14296ca3c1ae3eae8a86b16ce6879400c36d165d8849d9c6954ca28630826f8d620173e5a6e729afa26b2090ca85aeebc323b667b4a22646893007818720f351b3d14ca433fce99a6ea3492bc5ac3894beb8f5e80f3e8dc75eb342c8526c5c62f75e99cdae45641aa61ee5f45afafe16ca0e92e52a2ea2fd47e356a8eb3f68c362a9cfd4f77cbe039c9b4cb0c31d21ce80b5f8a3bea836bedde41473b08482a4e4b448f7824a469569dee36f8b01bdeaff61e26a78892416163824ae9d99b14769a65dd24d721771a7beeef382bb99907ce0425f4f5bb874c298a5c348ca2527cdfb752dee9ef950acda3c399d1b4c9aa0965e1a6df7ad2b84a44e4648bf8f0788ea392ef23d6cce7fe7a9a35cb5306e65c82dde43fdcd9bc1cefc7790503cadca738a48013cc5ebdca703c6c25a9cb0b78bcbd39cb8404bf71c1781b4e91a797563c5de4897b537a996a88368988f316ad006e9cf5e6493b69aa000619b3a9e7c326b55c4a0b5652d79cf7ad4a0869be09bd2ea94e97f3480ec7f2b07ec32cb63f755a50ab9a1f92cda45c4d2d800eb74474c1051c4928b105f8892c240cc3c6b4356e6bb85c3544918bc70f06e2409dab52c5b7dcf0a25270030ed25ede75268c38ff658151db43029f802a7a8dc0a7cca8c9bcd4cb0a570953b108e8a7dbc4a0546220ee4c93d35ce748b6c631f235522c9931473b52f0c4e08a04ea4ffb8781d7358f3e1399018ec658c64b7bff7db8f43d373d4cb0de08e632be9bae6d47a66185fe79f2a852d606658c309cbf7ca0d9b64b86d7f6ee6e693a703f4ad969aa044994886038d251b42e25bd7200896bb276d6d20db1cd1fc1d03674fc3f76b866b5a4e5f09d097c3cd5dfb91c6cf87714dd53b259404c29208f10bcf0e00551216d65fa376b32923780611aa827259a9ac7be12d150621a343f1e4e951767dccc1d6f877b68375046ae306926ad44ab30aacbb5df7e12230e30c9b7777a9ed0a4fe4e36e843a51455f281c0721a1e152814a6c2d7ed759585531d3e04f3b2442cfe27905a353eda57d2309b5370be9c8e9f66a3bd34b382fbdb6b0ded5de4eba40f11320258a569d5b9ef8b9878edaf3ed89476b9d11f697e8691a77445dd74db85fa46218926b47f7cf2868277b712e06dbaf23c0fc2a5ded978fa86cebddeb52eb1e8f187f5f30fa3ce0a0c148208fc0372e0257558930db2c9438a42cd02c0c1e3a379c40af31286eb7c45d2093b5d7fc431e3f132ade9330a7884730450deff68698c8886a9206ad7bb00dc608871db294e455c1f84d9676f699c382cac6c5c8653c9f33b93fe89992afe289ffd9b3d401d80f1e103159234d85fee67724484b74bdd5dde305694f16b52555babff9c654f2053abb3dc96e9b154004b4453414472d467bb8ddfa0f541ca2235df12451aa34d64ac322ecc6c7915b30c078a7c0da2ebe45e8c1b9edac9d4d3b643ec266e32d62e47098ac179959ae79272fd11f40b193a23f90dbba472f9e712a7101d3c61283131ef28809d13f8af47904978f12f775b5607469e8332d358896f5ddce2dda04bc33c4ecef2272d6aa8c728ee3e977f2202af18c89552e7cb8b49a1503ae871b2770bf61911516db59002e590f50002042df218302e051f25be06e15ea5326aebb746167084d31bd54f892ab421964bc9c2dad731741bafa133e39b70a9cfcad86d63ddac0418d1bb1fed10ae837da6916743f2512ca93f3f81d80a414d1c1b148ee956d7f39e5d92294605e6a02836b80239548c4700326ba15a23222d0a47cb34b17b492df1fcf45f6c6f946034714a842a91c7d74709315cceedde082cc089148b334eb95f5bb0f3a7e4364276291e125de3f2ae7eda02f37ac92abd322b20ab07b0b29ceaa45b0cb8b0918abcd8f1fe51f6e4ceede307e48e831ed1789f7837cff4b3191ffe92f7245cf4c31e5bd686dc2791c8f3c61cc3467c779808955f23b9dd5b2116871200ab7fbbf7271b37873dadf63cbe0fb6e50c7b2eca174619522f0f8f8a0a35ae16a6e6451f5bfd829e5b7fc82f8a57db55dcae600b4b3fbc2162ca35dbc456200d5705746f9fbbf2830bef739306f00ee0d8dcc94d369b0e65b7ca8bee1056bd81535a61b9cb681862cd9db396fbe7b8545196be2fe078b8ca4cfdd0b7a7c31eb3ba59efddd849695cc192017b07da2711eefb74989c972b760439f6824df31bf35ec94874f90ceaf7e4c8ab70b14d92a69e5c6bdd880cc42385850c354240e40b32b04b3f80980670f88ba52462a2053470a74aaaf1501a77b2f98f24065466bfdeca2ebb1f0a03b3fc9390111e9a45b3f42c45c2a860d61ba3805acb36ad5143294153cdbe035be5a830eacec2a21d559cddfecc2e88836d9655d2b599d990d6c990dbcfba3c43727a1a9a65191861b52e6ecef6d7046b7a27113ad0f873609952629a3b075ae9edd1a877d55a3213c576131a407ffad62af4cd1cbc141e6a2b7a095c8e72697e6de8cfa5000945a1925fdbb0a9d7316534c4a142455a4a2de8372c0077c30f2f7917c9650edd7d9dd23540c27976c8f4114fec0ae9e5e54ff72c38de30e13f293b88f34216042a2f05bc1b256643e48dec1e2c56c4501a7c1ba8c86b86e255cf7f54605e54c0ad0acd782451e37ee76bf2fdb6603ddcfd840de58877dc0152a4eb183489e265e893e57426ef7784c56b90a25df478045aa6c28eb068ba90d2201530cc582986649a2afec14c0c354f6e43bf5e177518f838a5a0705d16c41fed8b31c350d36fcbcaf9ddc4cd814e13c8343d883fead77dc8ab81d86be83b33afa40e3acc95bb5bd6290824a5d36d5eb0199330a321bd03ffaa70a31c23c4fc55571abd9902f86b953b1003075e0eb6647ac3a932f8c59b8dce96a2b3ca629765984cf17b60fcf42b330aa3fab6a70f4dbc0272912f35f58c2ce0167cd53986131be17b516ac3fab71b7b08347141278c8617c58e6db40c1ec710b1716ba6d796e3e245d39d54a29ea764ea8e66be5ea9a753f826ed2f6b36198fc552c08c3b31e8c78ff48b5249fc1b33bea89c00bf74cb84a4433d304033d795e846fb8b769a9615dd766e46344cd2b4a50cd2c9a80e567a0bfb0ae164769e3a910f2df473a47ecb23c8a8a6181e3adc816a68cdb6a8bfae694cf2c32add0ee84c03461b101cf9ae348a9adddefefeee68bb9dca929c792d1a141edc3d8331df74e76002278b5637add251e2cbcbf104ab7e58e65d9da32495564cf1f424a6b27edabf5d3f073df43481159d9527fa1b82d78901ce93098c5bb90ea020a14f3c1a5836baf9f8eb0f0b6c886b41c2d81dbaa378e1d81f57ee98e2dfcf76b9082a5d837d20817edd7ed4c1fa8721ee86c934f365053fdfa86debc39fd14c5b3b84778f5bbacd9d304bfc599bc891a0cae1c0cc3a6bbe26481f67be3d01fde011e4a31884826b2cf3fc14af88b161d78e5297fe75ac6fb8a5ac516a62738a171260485746fd539563daef5a5e5eacfc20fdccc3dc7d92127eacd92ff6a1578306bbde207d57eec1c9f78e10151364042cba1eb5246295e34c0692e965437c5b3a853f913925c3bef9955c669f5acb754dd4d324fdd82df335e585556e43e96d7956ea70e517d8864c08e106ce011da8bd2afd9eac811d9d44c660d2fec9be829dd4bbcd1105ffb77cf8c6e1847f017bc53f9e222d602beef8ae109f093cde1ead24a73b473ba8a51c737d5de71b9568f0f17e6990710b9251441c8d67411ed3b0f1b7b14b39435e0fe6588d76fba783447f68fd24cc801e8c9aeae448798e969a0e8ec138fd2df9d2a6414730aa3ba92451fca03ece3b1f8908c2da9dc5a3da6429bb88069b0b13ad8649ba88d83f415b4b579ed460872d46efc9e8b2aed9da89b8f34ba3f090f1b7f5db58b59cad2dbcbdc4e9e93f518c793af617c8c0f05dce73380d7a7821ef80bec38e9139776b96e1144e5f9467e4331d870b6139dac10a8afa74c4aa189ff3b62f2e2248f587fbc9c7c5bc4f4dc3ab7879e471485a078af92de82c6873a4a8a47604095e558d8fa0a25000191e51ab4a7598563869ded8e1936b04e2092741a448533f8bdea731afaebe64be027d7b697f034e10ae7bbde257e68d1d57b77de4340d5645394d2678cc2fd723829723e025a86e5a8926dc5ab64e002f2812b496a29127bcafc61dc179ec177dc2ad8733859dea4ef76fb5ee7cc081e65d74be32497eb2f685915df0226d8c78a8c0f82b1367b09d0fbe3776db0ac5c361aa4864230d7a79c49da20a79bf62436da3f5b8d7b0a171c30fd34730c4c794ecc16aa530ae7c62eab69307c49c8526478ec3f7842841da62a1ce25709743721e090642d22b5640540ebb748f2dade76f2435781e48faae83d5c347ce226f64c421d5f107411414a851339c164b7f6ee1ecdd280257f05cfd734bffc4b1e2b099e52e05e31d0bfbc0255d4eb8452270269a3d8ff91c4294738b8085555e1b4e4f5bc20bc96a06baf46738bb87ec4a43a75ada7ebae920c2cc814d42a2f91150f052f3dd667547505ff7ddf1c69d643ce478146caa2e5980521df762e9ddcd81cd77c9f1ce427ae5be2e5e8bccd54ac144084c3116cd4284929b3f669f71a1a9ec0269ff85a5bcaeaac32b3fd2746be8ff19b4c29579316d6cea9136166860f577d19cd4eaeb610c065266a8cdcb943511370be29b15cb7414de7d5cf8b2581d8b3921ce0c27e1eeb02b9f52f44ed0e37062d75cdc2d0aef4e6a4a880b5539519a0c70911bd5f28528d6c2086bc9913c936380ffb2e3c68a7297a8e71a2dbf9d908b42e8de02479c797d687f01fe403c43e8f38a1af22095830466005e17f4a049a18e6fb6cecc71e593e905ed6c1079f49fef34a6100a7be92721b371528b6b610d3010555eaf1dd5bff76afc724f2e8dd0a8f99bbdbab3e64d4242ebb7783296b305f9d7d43d4c4068f394608ffc1f93fd167fa1a39d2c1b337086a976ebf7e59f27f95dae4869a3db30db7bc6b559103f0e3849d3039d4d0c0509bd28a8165524d29dc3f6e24c7342992e0c37ba8602565cd722c5f1e12e4b6106cfa4f127eedcbf85d205c0753841260801439636ab2bf628a32ef0fe29ec1d3105c9d41bdaa746e55835018571458dbec85067eb7aa1f65600f37516fcb712628389ea72c6fbc266805f457bc29c1bb7775ba8493a4609af8781935f8c6d2da657a2aada3ad23022958bc02f55528663cd9f78c806b64a0e94de40483deab1714300049a4d385094b3313a827e422351cf7a4371ab5ad668cd6c1315cc6c31ea4929e92a0ebf6bacc0274e58722a20bd15267d24e81bd0d9027fec51df7374d4f9db10290368be7ed4bbf264abd7129695908f495263a5c29bd64d5fba6eea9d810ef1d3ca75177c575db5a0008a905cccd12eefe4dafaf36773a60b64daf72ea97de22a6259153438604ffbbaf08978360e225586871466dc3cc93c362a442ff37ff5e1afa955ea28ebb91f2844ec6f9dff94190cf14c3eeb0032a5bfe4bfa5dd242f7fbc7f4fad1e30b969ce80dd897a69254cd17becf49ee26a486a259a3e5042e4d418785639b3681fb8023093c5fa281856dd8475dddc07439d0bc67b6843fa238da94fdea6420c461ff14a291aed2de5eaee74524a7457a3d57b703ea08c6bd5b07a29b4c915ef1853287636e6d0930e6da051c0284ce37b7eff12372b816a9ce0555390e22d72ffcfdb8f1942ad5f61e49f09de5c54fff2aeba94cfe1e047dc4eeabff56301f0a21d153c8cf2d2817a36e3ebeab049049138572115165b8a871c83c437ddc3a69cfa4069a7c6c876fd5a86d14feaa7680966386b71d1488a020d4b676411aa4c9d48e0418f71f96568d38f226bf1280b0568bf7aa443062fe02999c6ccf53c5bc604fa28c6987b1dbf245662c84678d608c6b4fe5fe53298f22c54327953d1d8309fd1af28e262d223745225c2a8ee0a5616a291f7789cf6488bc521134d70dce207415a6a2fb6a08eb8fc81b36feac64f038d27ba3aaeb7fe4ca6dde76596497e9db7ee67cdce73dfcd5ea71f1fe2a17251304b070fcde55962c746dddf2866d9d56156369445be730e0da623ee30944e57f11fea9f7b29bfc3a1f95b892f74c96f153f0f70919d7fe8d68a54f3951cc7a2975b6ddddbfe66afeea6cacdf65ec390aaecb3ba4dc68ba0ba17f6a44e2c08e87edaee70b62f1a157d428b565d8bafab1c0f86f09047629ac6e77d9c212a71be52c0b245bb392416f9e7f83eaf68556dd40e0a96f00d021e953a5d6d198d6986fc44d8ed20197d800eaa22aa7aa5a503f6225d40313a7c55ff14240a06d1d2fbacf6e0a776dba3428fd8f4adddc40e61d7165439305a8a91a8fec56f6eafb2ee535e69946ae30ef03a2aca43f593743d84eadd4056b244af1ff1ddb248cb45acd8df318f55346e3bea416a5464b7099f885c6883ba41590b7519d549e8390a8ae0c4843a982cad16d684419f86496ff3e1dcfa8154140d4e1353f4aa76d6ee982845316efc2ee4ccdfd29eb74dee15a2d768ac9b5776519a9aac895e2457f5bdafee50bc708f29f80713d34b4af43a173ae52f9a3899b1d650c25c830529a1b5263ab9f6866230408d968a94d099b760687b82836793bd82be19a3df3b880df260cabd3b193ed49463c5650ff389d86649419858b7d68c2b627b6c363bc33817b0afe3c3bb36e63b7a91b56b2933a78b207e32f0684b824edc6b8350313c591f56e43f0fec0b099551b72364b46a30902927a396deaca99568090ecc28977decbc33f815b5102dfa238b8b6f8446de3cb8caea4392dc583bbc6237b0018af8ccd54c8f3d4b911ef35c956d42ce01345edc685fd638d356f9d12821a0e37255bd9c576852027bd12b694690f76bc8e7b500bd7d2f954e185b33155158b061436a4463a162db4f90e1f94609d9a3244a07b3777e47c1cb9972c65c29ac8ce3e06b2e04a64a5bc9ca7d47811a94eca879283088945189fba171fde82c9f5bdea6652f7c956cc0a16cd6fd70499f548dcbe00af04f8664ea44255fa7eb7e0e4925bbbdf650753296d6f88763af106a5b9b7f55dd189bbcb80ea63749a27e3d59e7e3eb28e247e780ce7ada1f9b5923c3d4054dc24e79d4ae08c6824e597d94828e63ccfb9dad594a93cdc5ead4374e1fde11f58db4ec6476c783b68108550853c9f1ac4f0fee7632a69eddcb42d45fe2722ab8467e29663588666193986327e57fcc30d8ab33a011f8d9a58fa1221d0387d1700920b679fd8a231603cd5384b501ecc2d97b3c69c5f8fdfc87ea413621386d40699ea86e1782207bcfbcd6a5c42eaea2556401019f86e2a14d7329d3ede8d579f84f138ee778955f1a53f6b4f30b40b15083e64eb20abdb636de5089b0b2646998e7b352f1b64da9527fd5725433b5052a3115541b73636cdcbfe5acae5afa13f27f81bf16da60f51feb3a36972c967f2de19dfdbb6137d0a30ef26a014e47a1025ab9b933ec36df1af1a41d6c60f723ca5872a9d6670c2cad0709b5a1786a5b6d5b295450999c08e5b6fb12444223a9c03bb85e0338c5494822aa24256154eaa9b46f3e440ba15708e92b6f0e3f32de3a1ea8e9c316be9fb4e1c805455b49d5d8eee9bf0e319e16f078eae6ac0746b31bfdef7d0a778f94c1c8ad63e59a0a87c24fedf715381571257a15040fc85fca1b1849d063a48af592d8826660e2f94c74ddab0a80ed0103a4b877efeb6a26717e557c277b0449a442bca887f2ffadc68731b8e76844dd617884df4e410e43cfc58ec715ce672d1aa3ca655a886aa2bee987777886a841e6e8f7f21a178d6f728d94ba4d0704585fb0c7844418e353adb6ca2c301b39c8276b8ac328040f1236f195852a1cb729f077aab5adfab64575585f14ff4b2931dfb72fa36464a1f0a76b6c7d4ab0368d25fba62b71aa2a32312f7e315e2fb263212c0671e8f6c3d46a832d1305786853b57e73f0f1c774d5e7956aa8cdbd07077fe5bdfe5df2364f2a9bbe86bf585039079802ee70c68cbaf4528da7c83ba8672de29fb94d77a1797a54fd36acb1bf1b9de00423b6e0f0e396ffff14c6a5d31875554bd7a2ef2aa2823cbb756c81a145759fe8e6fcc802c9c0493d50a2d33e2e026d8287c110c87f3db95e9732cdfe834d6f942640e7f0bbce04aa391f8f3aa603956a01d5200764799289bdc448a3a5631957d3411f0789ba85c2700eaae3f954100eef56aa3f5985ead689c42ab15e081f3594200bf1148a786b6898f8a0125b4688c447c2643b4eab2f491493e1ae8da21c0b4de5a0871d58bd4d3854092a3f6db3d042fdd6885c62fc9d3bbee6feab42333d2ccba916a99d1b9ac132683542cd2aa27a7fada6f5a41675e6e1b4768267beb86e2d9495532500d0046cd723fc13dc714705bde1dce93e95511b7b4e6b38dfe193bde9e27fee53cd49ad2ab64248dd30e1571190aae8ef4b3afa67cd40087a60d150b1ad199e4ad89f575cd334a368ebc82936a51282c4c27534c06aee2a839cd5991f7ec6cff43a94db2a302377d424eaa5c45e0e7ea018b95bc05c26a724368a3013374403d7aa11eab24db41636cf938e57bb57079e5a79f9e2590244f8e465408f637f16ae4795dbe1c2ac1d1dd14d21d81f699b6c051672b1c6801976ce5079f69b53d42bffcceb837c0b84fa7f2268259c07528490974f6a4b4ac4baff0521bf534b7f652badb87bdbf5f9ee15f7b3c47eedadfbe5b6f07aac7b1dcf2a3644b61025403a41ff769a02922a4d247c1d589878d063dde8c8a039d8cd12a2396dc40ae5047881ba583c5134f137b927759842207dc78d6d481e95d11a3eb68422fe7fbea60068ce76dd619cf89223724f925f4c523c2b7fee3fc0d3fca187ffe8c2af4751095daa9e107efe242a64f18e24e5683ac7a9cb17189b01c7b71b6194084d4dbdd50c79d7707392cd341fe84f2f0e95e47cb5b932d94fb1e0e347c3cac77fe14aeaa3f642b2be7722b1a78e18117c5af1f3bea43e139dfa916f8489a24699698a992e4ea5654a3e355535e82fccf36c35bc295d638b7dd92f4dd34a5cb0614a480ce0ae007db8c3101a8c8a7014a5bd570a70b2b2b0cfbcd588978f625feb8d052e1d301e116ae84db9f6fcf14216e424a624b15abfbf5b40d13ffd86e4de5ee41b9f75c97a17d3eadea7106d6a6dac117534f7f82db997bd626bc25c6a4c157ec8365bcdc5feea0926029ecad36efa15766a98161c945b2ecc7da1bbbc1022f804261a1870b6f8e1bd9de29d9895bdcf3910fe103ad88f2ac32a06a22e8445b9e1167d8be5bb80d892a2422b31410f63a287516094858bb58db90ccd9f75b05f070cd1302615d0d1858424d34f48d0ac86736334237922575a5c5c02c0cccb1f21a28545fd5e52098ea1dc4250daf2bfb0eecdc1c66f2d46e634477cd8cdf152cdad64a34264d3b520a526b912d4e09aa3f0b3990482a8023f038674b5b145416481cc2d1ed71a0f049b93a40fc3b66fb7842319c780234e71cb43a5e22c9533bcddcebe47a32678e53ed301c2f5720eda779d687dc7995a31fd6dde11f35e68735780a90b05a3fe24a321ca66b6e8b25f8dcb4c8d87a8b854b74951b81f17df415bc8cf8a3339ec5a89b7a69889aa8395e573d3f35f3845b4bebec4f9bc589aa23ec2beb0feb1dbc0abfd29de2e3b7cd8e1421899509b8e61828e261300232f1e12a30a278940a53103648ca0e6c81c626fe6365c01eba1e8b8a8ba39046918b54914c0d95e6aec8dacddb1e3abd4ae69cfaf8a3fa22dbd1d54c010ec06ad6e7e5d8d1ee9eddaafaef0bff7e3fd54660b9dbb927b2df422c0e44b39d18d768e38f389bfe575778394c9b83047f9053a21db5a57ab29e012d5666cc585de6079fc71d280c6b07f8d32393e2617be7a1686391a6a29105e857d4c4302c769560f09c213baf4456ba403efa28530f72ae06e8cd960bfcfc6507d1b3f3d9963e184fb2de1a20b6869eb33bd6abeb3bc502c407ae386e7a046682f20db584cd726b278703421c4f86b7fb0b4b468aa2fbb6ca3601ba00f4d6bbadf26e3f6dba4bc0e60a7f79efb34c5f41a2015bf403393cdd0c2baa7fd1ca576656d349853ba0ea4be8a0e04c0614f818c16b8ceb60f0507ea2b959f13d7090d44af8ba5d75b5f6e71eab2186a0a9aa02ecf99f282fb1656984904d6641b642d462b5c53b557ee5fd8748874e7e912c5abc801aecab03ac5a39cd38737deee3aaf7a0c3c98492facd9c407c2ef44ed85d068720188ed07e70f71a0a309059b79446239bed7f9663ae2f1899565b29b14ec1551035ae1fc32064287481f88af5abc9c622917bb084d56ef901966bbc512127e76431512c9c4fc7ef8c99913b16d15d96f97bad234766dc186b9066ac716000440325787df1be86923d8ffb525f3f7260e1939ef5ff2591153ff4afc78b8c18f8e7ff88d17eea71685b159b4528930ff71fe84c5c9cc119a69982c958f2040b0845337afc73535f90065b94ac3c69d8af3417206bb3e89240a98249d0144a8884bc1b3fb3ff4e4267326bb0735e67d025cdcbd7d73a6da9498a2799d77e1a9b299b49f48045b93a57bf89f17009db6b62355c2977ba2d2ede5bf2f88d9ac0154df55463d7a9e575aefbcea004e597036581d07c3eb2f4971c3bcf0edefa52bc94192e483c36157be42fb498b0243dc3ae85defde1b1b0e1d6b28d49450855d79a0af6cefae7629586a5f9f4507cd88e1288fba1614690eebd85b3dfa6092c0ccb224da4bf1437dc59db07d0ac3aca474efdb6877cc0e8354e4d65be30c1657afa0d356f87ff387aaeff1bdc67942833ef76485733c9e8f14c343df6c20541c580e3e33392fea3086b70f321851742d06f9a4ddbbfde5215152ae9efa0250f4a7c7bd2c8d86a0e2d11958634a1cdc7634d7b9b7f72cdbea5c5ab19ffe9721b905582caf6393d19fb579a9921abf19a2405d1c665202c1725608718fff8cde0d586b3265865ca489a01f5b87574bcccf4388251d5ea0a504f7cc363eb878f7b4f5b69c7761b579eb90515278717e4d38153191b65f52c00e375ce291dfceafcd3ff2efab6c5762ae51fa7cb8228c9dd11bf2bdbfd7a007dac3abc30e866980eb7443cd1212909335d636c03f8c1378b586c0f9967a1df9f94ce9bf5df8780bcfd2c8432c3fa6cd000ac4bb3e1863c3218d18199b25902302e46dd694c2ac69dbe6eada3a90f105c9a66eb8bb1b879257a835737e2597fba450ca1dc6c7c35c21bc1ff622e2a9bcfc533ca91e566ae3448e368119e9bfdf02f148931583f4f2b9b35a8bb04a2c426e169a6b0f9b82813a51eee83bd2a85cbab645c2b804a28b4b2e446003fa956c39f280fbe3ba6b4d5eddc6584545e4820cec347046978ccefa4950f0e6bebf290f8de72c9dd1dc73c83d11c4da5a1f16fab1ff6a8f98db8ac889bdc50241e674cf36f38d05561e75466e492224f895a0583e4630e8d654d65fd45e263b55e036e314c9c633b0686756729a26a3eccb20142b5c5d48c40e7989effcc98a8cebba4d823e6147d6cad284c2cff526acbf3facfb807892c0341c8ebd3aed54dbb8e56911408a5466ffc9f69e438fda18d6e052caa651487fce162bc95c80b5158015ffdc8e89714c24d409ba9f18f06032738e962897f9b5a91f08de2d5b56a5e50b6369cd7b7702ca689c3b017ff974ed9832849f1d55bc796cff72acda235b2e3b029a3b9a62751c0e04f15ad84674cfc90b3421a48fa04e25c53f60ec69b28b3d5ee5d77b22354341131b03c5c6de5b63f20e9cfae3f9074c86cdc12d3e336dd63563e9ab3ccd82b268456259b35f55676d24352489b3a61cd6a0d580818a0f677f76c0839a74d2e17dc0686284e3d8814b2926d1e2e62d06f245ef4f1dd73e31d4d2c51cad70237cc1756093e50a93a0eb2919c34a2241b7fd3c4b0931ff80ead9c2cc28ca36b3321f52637c6cfface8b20cffb88c5425ddbb0b60422387085da16dd6d4e4539b91380003b2c2110d7ee1e37e2f979325fde0b2916678928af3a3dd96ae00edc9f3444bd32b02a9d661ed618fe0945c36d75fd495add3aa5ae436ad93494f4705c9a8682c03bd87c7a8f9ef22a675b29bb5c6d8fa7ff6566d34d8618e055ace1e8bc5e2b9096b4cb88166cbb5ecddd0b7ad112e691a6df81dd8966c494255a1835b9d6e1443e23f8ec0aab2a5f1ed1eaa554a717c40b4b118ef88a3fd58e3de461e9898048c6d16c12c18abad5737183438c8ca862091e2cfadc54ec21d5f514834a27b9a3a4c7e237022f278b8e3d0803e876c000f10a5347d791929b649ec011598706ceab2bc494871098ee074c8ed89dcdc4a62fdd1489da18150050faabf84e43aa2d9f91c9b408acdcde2a52c619ede9f5492ab39fc089ddeb1194ff669a2d8f33219413b30e8953afd0da9cb699143e7584f5daadff51463ca960f8a9a5faa1b18aa836a6c6d4bf064f6411f24be6cb191288033b68bb666c1b421bde705549de81bb6678269721329bc7524c7e39dc00ec936be12ed5ccc94ab09891b142ccd1c400f5934395e2cff36d0c5468b950d2fecfa7907e38e9fe7f3e083bef6bd450a733f045937a46216d49ea5f9c5c2246527d3ba1fd1967369b3d00771f59fa7319e2354ca4709a713625db365eda216344f2e65ec6d34e55caab96e66810e8ff44c14d683ea9bea91d9aaaa42e17f766320914a2241d04c5950aee8c39e461b2e0d031467562d0462943cf081ab26ddde976eea8d58437d8ebfaddc94f718b1607e5c3779d467d45d9200d8f6c25c350ebefc021e4515999fad77d9b98399b9a81d7a0c02cc4a65ed1b4dc58e434862d61f4f85f30c02bea7f5d55122fee9767987bb84690ba3761f3214cf2a98883f0a9486b0c75b5b163ab9c7c75910e97918ef4ce6f77b8ab96cdceef8f4bd9b078babee0ab2bd258af283472e6a8d8375354584629a3a4576b446baa8365fa6fbf0dac91c488ea933f5eaf48745cb6b618b57fb2f96aadd6ed6140cefa68381d59da1096e3a1a2c672761c75b5bf23a00f2712fbe63fa3f4d18ecfa6dfbc8cdb9f2b1341e28e079dc93ca7d29d93ce6d5f1b8d7026e34de1a5616b11a24c7fa8e7533d1c974c6933de0baefba3715be5a824fc0e1cbf544e85588a4107221d4255d050c239be1d9b526d9e9655c954312626028ac1dbc0bcd1349877fc54f1d46bf3eb3a499a8c009f4a6e3be73cdb7e0bf3ebcca05dbe0bf74503a12ae066e0f33f3436c9d6fa6fd58f4a89d27207ba5804318f4398aad92f508aa856f446b3f7761edd8469a8f6451860c2725421edd208bdee36e96bf50c44f1f85592de5a842df8a986ef2e2960c1a43712d57bc207ac3b69c5f5338633aef422eb44fb7d0f29ae231761381103e442b9547efbc29096cdeb983e413730855c80980065309042c8b4a81101cf6711187df66a855ddc3e51d33728b9b265433c9bf71ac1a3724110fb7ca76d347da48716e4f08ab95278501bf67f081fde62b7cc87da2e52740952f50bd8fd2f4ec86edc310b2a4379db28b181d8557875f5ddede8336e0aa56b4a01744137a550763317c0ca8f4fb739fcbe143f813b3a7cce1bd8d97986b9fa67d485a389ea0d2f063c9822f0b8e9a2eea8303aa94620f48a0aeb836921bc2f74f84ba3c0be200d8da9f92d95771124993a1c36652c844d4da3b9b1dde462ec30dc8d4766fb5eb4a9b79cdc13e876620e35fd7d87f3d7a6bc94f3d921b3b27d3bfe98f8d4f47f27b5aa1750e6323d1ded4b287597fb593a439afd07eff400792dafe71a128fb7badae671a31a73f7c2abc9e56560a2b9b40cd072300b34f08f467c97e2bffef744e38c74b9befaad2d2b9869ad3d841d70f7799ad50974dc480fe5839d212df9fdf17fbbcbc647fe13b49107f837aa7bde35e19aa569e8fc4ebaaaf5aae07e441bbfa83d6687d0e6de27b608cd7eb41fb63f10ed99bf086274f81a4aaa210f2e5d9a3d2d3e5ec42d905b4c12d542ae295d12dc09540c78cce196b63f0cae59c74a5f5d34bdc931cd2e9a59c503422a0d20c7130e7007d4fd8018f9f9a51ead3a88688627c955f3e170328b4a675af842b573e4731b689088c6a23809061890f504ef6f5a65779abac0c7b1ca1a4f0cc402b0c41f8f29c4a7d35d8e1d85dda7d3f95e3879bf6212c887784dee71c7c99988113c8783f3908ebf0149ce17a3ff65cf02156d263020d191dd5fb18f44f9fafdbf33ef74f7a16393ffcd71a4c58641d0e529cc0dbf59942406271b9bfc84ccd1315d7682041767e246c119df4ef7530f0cfa07552a764c9c5c7532ee7d6428447c52d244795abcb015d11313602c5c04ea5b8cf815b10fa7d0ed72b16848898da51c3ca8de6e61a8e65ef267af6e3933e773dea9adf42230598ba9db35af61d9cccd13b4ae2563c406e9b204e1fd9eb988600e93fd44b9f7cc7a16e19a965cb1f38ed5145c26672766c4300c7dafc6bb7fd596ed00372a35b61b01518c1c9cda8ade031c272b2082b9f535b7e30c115e77cd85a1ac7b57d88573e19fb56164ef23cb943ffd7393701d15d1ce36422e91d205d77569c566a3429c0f533f03c7fcef5e6ebd7c631bcea98372461fff7bd544bbd7fa5d9c1df03cff8c6adf2373e2c434239c12724cf658ee1ae0deb12e320c1f5008edfed25ed74b344b6e419123daf4a5fdedaa4984e28eb7125375f08f060044347a06522dfda3b840cd97c81da16f0105221c0eb7f8b176f4bf28fa8f07a189392eff6b59ca72aca3762d509e6df78eef22e64fa008cd03d8cf157551f4eed59e124be39e38d1ef3af4496aa6d9a9a7baf076ecbbbfb7f73e2410dcee472058ab305b76164598767b05e58bb5fc07eab2ed364b4e00957697db3f8b10787d4aa9463634561ab86a5120c16514f962e807f13869c3246e2b7229f1d6ace2ad6bf4130c40620cc816634bf53111666d22df7b62cd886d8a87b6a877343be36c0ccfd27ea78d9ac06b0532db0df2f6a8fd5ac9670965b5f409cee9c9d5711de7e72b544d2a21c0de513cc6d713624551aa36fec072bb3cd1e508ba9455f6189f383f96cb522979be477b50c693a68607e299e528d7c8ef02d558c281470cbf545b316b80f9dc1f5bafab6c6428e27bbd272b73a4b0b855c4327e5aec95cf825a79d2d35ae0b6fe1aa702cf2f81c7a6b1ffd4c85ee36aea89a17401695e695328c9ce21a927cbfe51970a18ee6c01e63e698b9ccb743ca365ec3f8fff0103eb3caa143df33c8af50b5078aa1dbe77f1db35c051e2ad768e134c0f4f1ca092998c5d82737bbb6db3a884e590568e63f57c4d290db6633b31f07afcd8c27efaa7061235e470b2e72284944fa3adf18c7a17009e4d0aa651f2b516a2df5f4a476b8d36c747f7d3fbc8cad549cab9b381525583f3bde07238b43628cd43408a236d78b6dce12ab9019f7dcf99c10f6f4c029f6be2fdfc71c386e86ab794a530cd3f3cd4a0a00b4934542259c69e80560b4100a5d43f3d8f10c89b81e72b39502f94038a61d8ccccd6b865cfe3e36fde7a47c093bc4e5df752832b6a11ddb1f9be3d952d0b1bda815e8493125abd903533312eb31a2f2709f23bd9254d3584a09bc0406f38ac6a5e4c51d9ac8a184236a41b0675be816f20a472086c3fe035cb03fec5ec68d496e5e2f47149ee87375500e8d47660155ee21329f74c30d20b82b2ad4ef6ef980bad865430e5d8b8cf2294b18a650e3c24153ead233b7eb9b5f9fd8e82494edccc2300dc5aaeedcb85d8db8fe97f48058d034cec0348fa6833ccf592910e4696f19b04a1457fa00e6304db599a7ddccc21aa21116500283555f9ec1c32e4779d9a5cec1411cf7a077100993aaaa8448ddb344c3e53eed9e2a8cf2dcb99c1aa0ed1fc6de5fab3d7ee87d73b6f22d2b89d3d8bbcc2e5b6a2ccf9a8d0f4711f673dcfb55db376a3f78ea9079fdb69f379806c55bfd98fe889eda43497033fe74de2521a926ab83e0c8ba35b2a0a400c7b8738ca43b6aa5b4c67903a8174bf44cab5b3224ddbca0c629399ebbd6618117ffd7dcd4a423451bf2a2bc4db0366fd4d9cd1de29e6c30c036f31c7043d3a3fdaa1743240562815f96eeb87e6d4f2b83234f90782009f18e10595c0e433ab773dbf11a88e094e6075da4795dc1677ad203c8da235dc3a355aeecee8e18cbe84fd8b87f783c4a542bfa0578f366a0ed42ec8c99cae3aa0ddd0a6e4c1147e6c42e2c7d76188d645b8fc4c8248295812ebf7a113fe0f3d367b8c6ec2a584bb12c0d50900ad47285a62f3278e9955f1130a313ac765e4b6dfb3feada1f57af72f2c6bb6573416e06e68e7a4ef6424a8f1a7e7ba9c1bab1afb4a53072ec80b4c2ae0dd7d8b0ac8511b2fba4bcf35a8653d2a6d32048b73a67a5637b18dfd7205c7d2d0270fc2b5d2546151d8ea7cb7aa0a7b22a5b2973b7f2d32b612a96aa28c88e4b52aae49e013353331c69b83e7e4d9e3c5bee23e44db1e3db61521cb0e4d7f4ce0d2fdb6a5bc2ae8e3e41c40be4845674a14a26e085dac974cb1c9162b7ab6fb7a05da2b5854ce8737b29c37f862e70d1edaca7071f0f4096a5467a6cc0bbe7020fdb296170e806612f5d1fa081f4012d43e773f5683a201c625fc4d58a25f1d7800fbaf8558c80c64786da7023ffadf0a6553aa6c1ed4b81e0e0510e442cb6e0b5dafadb009e6dc6bafff63fe949c6143d2b34cfe9c3b374dddc3dce25b13f13e86185197c945944474f1634aaecabdb3880c8024b066f9aa77e5e8b57c2aa16c1cfc3a8a4ebc4690c9cc7716ff574b915d609cfe6b63a3e0478661d17d12ff706cd64d39ae6841e7346349773a623864c84fcc43cdddde048eb44839122358b5b88238ebd56443369aed19e0495a7145a12237c8d8563980fac18994c5265b8e2d938187c8968c30d0f7a548f14dc95cdf7d5de0c5cd2606b81ca131146a6839bd9297d00f31f974743c7086ba82cd3e0d8317ff19ef0e6ef097c88f8ee762913d83c04d65d91911ec47c681aef9bceea906d34a8972f99a912493d80e17de7218d88126caebffdabb7c904236decf3d54e6d5c30fa80c2261aa645eb037a80732237c6bc10b885a86a93119b01126adffa3309eaa88736df92b619c549dc4dca881f63e50bb63034cc0b2e129a075215562fed06ccfec16b00188ba51f89b5cf5cd2ce05f7a25710eaf8f218d6a741df4e8bce386cd3485d8d3a20d0909530840b231ab7d52463af9ec854bc756f1ab8628cf31065a7bef2232ecd5a7a075f465e7ad869532b69c318aa8535cf5bd8294684bbfc361960f66fc25a43a98a914c81f4361d9a6cac3df7532d0540fb29d88998e801bca825b34e84860419f17113567c73cbb0e5b2a44527b462f8e3450a9a9cae109e6923e62a8c6116e1b070f9eb4c8d47cd3ab94fd037a03561e7c4be0d5a84dde183800c0094594ce8e9b61b5b0c25d54262e13159afa0d871dd7cebae22ab5fd6b355386f7be6b392f638395d00556ba29caaa8c6067673af3726ad84e4bb82622d9d589d63d056cad2d919adeec83b7409943d37543f0fb0ee7ed594cfd0ac60830ff30a330c954da27f321f5df2798ce035638f67cc90095f16a3bdb0c8cf2efef6fc5d0afcc514ea9599ecf30460c3b58e6d38d5aa93fa8d40f3fbaf9d278a7a3efcd5e3070ec42f87defa30dc07ac841bc6b2791713c5dfc4799de21da5fe20ad46b969bf396b7556d38cbd4c451873d0a4e15e16ec1bcd5c3ba7e02b9f4997ce801c61ea4886e8626160ce7f2deaea7ec315215c5384c9ecf7f0871f022e18c456b182d341ff8159b460c2c9b5fd215bff8361cc5a8be33267e36534a05d9c10abc84afdf8556eedff9206b168a70d9d6d6ea53e06abde4d7cc5ce4ceb38559aeec895476a82414afcb88e6c1dc41c4670527647ad7917568b0545e73a972be251dc29672bcd8af23f0214c4142c2492dca893df0fd73cf2c1e8e28df0d9ebe48cfe3b26b1b4f3ad386beac28b3ee6d657828cf475e129088d616e185c949cede54b26edfc308de99fb8f4ea50956113e8182c78c60ab94a24283312226cf84226e8a580d40d80679e3ad091875a4eb641a58c6600720fed77e637d3d8fbdef93e1d116a97d5db2af61fff855f701d1faedddc552d44f5af33b8596dba4f185239870612a4b22973b5927415d54cf0d887b2a0b7dd37219cfea6dec50753ff7ecc36e73feb6c53b68c06945eb0f0cb9c511d6c8deb638943abc3a010dcc04e9cf6ea3dd218674fb9cb198ab41b1a3ea4539c68459cf623185a6f54ccf673973de946442b2c615509ca8e112f0cc129ce9e2d15ce4697f2a87d9608c5e4f8bfa556bcd40f390006f1378295d846d23be74e5742ca70240391a872b45a5dcf6e78e118c7f50057f1b9110c82a70d7051ab66a6c97bfd18db5a08aa5730e5e3d5a1485bad118acb77e201eabf3dfb524766c98dbe0f58acd4dcbe04ad6d93974a07ddd7616e1b5b02b65f5bfa6f864cbb0f2e55bcbd8f1b3f9f068ef8cb0ab36039f812d606babfec795fc8387432c57f976986a39c385bdbe5bab1044bb223d14b457ba2057b216c2ac7e03db80c3d675b82b06bb34e38e2294ced5dd6e3b865bee9715619d2fbd4baf9c6d1a2dccdf0fb3ab5a483e1056c0aa74bf1ca8a0bdd46ae14ec10766af5c79422347f77e0f68a6710e17053158a0ce259c6f465bac78371663e35ec770dabac22bc255d3db60e8583682afff800dfbdc9ed415dd0494a9ee995b236a84c3d75448600273a26675e5a2006833e9486486f489ea73639e43a2cefea2500d570119b5d13742762953cf5e224d09bc3a46f68125a6c1cffd427f477cef3621f9b810620f7b1183b0ade59b899a155663b3a9ca5d187d1cf30066c7331396c5b73414fad586bab99c01ee4175d1bc5bb6f721fa25d3d88ede3d785973aceac48f82bb666d2ce19f3d2bf3b0c402e1f759bf6fd9a5f9ddff1e481a1f23e552c4ecb50f171b98895daafd27575ee780d56f958e7cf5418c912be229fc821d469cf856e631c0ff3f62dea8448f7f18965df42a6d1a6e9c3f14dad4bff207bc8b577de62aa034d7b488b859376154e45fa7fab1330f2de17bf5eda8d96c5c2ad9f4f2257abf647c2396acb16af6898b78432e5f755d646e7482a0b92b44f8325f7a61ea62015dd06a2bd65da9c8899c67427aaeb365afebd6c6f6f96e450cd812ff1e315c81cf6456c9a964ec631dcd98c6989aa32757f28991d86ad50bc89f55166184a8a9b5b4a5c18123e95f1600862444dc5b027998f21601378032dd0d602ba68636e24b5b36c65105d69cbe69e1c60f458cdc4e3a15302ee628db2765172bc03e8353061f366287b437885a5f9f66a34b40ee1996b300e9d724cffa9b6b09374e85db3c0dd346f6e224d2fa1aa3da3a36a260834fd385ae8e00aca8f35a3a73be32af3429fda812499f1bf05404c187be75152706da85337a7bf9484a540d1d6839677cdc281a8058f9d697205ac512608947c66df069222053fcdd714978f5cb74bac9b6ab777932721e9c9177d68afbe19fc2b0cff4ccc712c2f0cde9db970d8002af09d910afda1240f296571bd1d93525c2dac1fd916abbb47234bb09f8c3ff205876c19a67d28e2a1add7c4175400fdbf3d91734480ce187fe7f34be5c42c841b5aee11a0b94e590a1ef7fabf19a360352e1cab4fc62114bf60777de0ac05c7e080163beba7f18236b401e9e12f1f871c6a20c3fd9bf2822031ec024e03bb278512f690cf762ab9df027a8207c4d5bb8a24ad4030c83f5da042482e7a0ee83cd9a4f787c7acb331b957d0e159250e38d5f0518d57428ccfbbd1bb6eac017925a48ac3c9fceb7440b64fcae9858ee34dce5aff69b4588ceae74b420f4811746af1f808e87fc130991fe166f79806ab1bbdc3f3b782c3da5ee4fc5d5cd099b87882f667ee97855f6df676fdce0861bacdf1ea78678f738020ebe50c26e12bfed2e2b840ea6f7af5fcfb1ff4a906712c4b8fef1f6ed85751282373beac16e739a0e2397fa4b5cbf6e5b5c3e9fb1452142d4c12cfc4a927f8904cc52cf808a4fdecbf01b98ed28de2d6997b9ed15fa41a1d2392ab42299686a33faab271df343d1aac4f81ed89e8b14910a48cbeaf3f4231dd18dd70a504a13082fa78ee914f5b200d82845fe65563c96f4c8906d9ad4f30040380c3e8278c7e3bc084c99a54651be00fac4cd54dd44054f125f1899e75d8c17d5a2bd35f2c104cc2bdc476d731942bcdcfc0d90a8241676b8002c5182ce641a2c17fa2dca11d7d62d4e1837f0740f24186c6d8d1f0ecadf15bc11578c3af46662748fb9a5b0d4e043991fb6e40ffc9946f7eab9cdc778e1dacb5e217637608d0c0c9adaa963545ca5e9b62a72edce8b3e1406dfa4f0779358c8d94ac284f0d932065f970ab23ba452cdbe6397b524b07a906ce69231e46cbffea39c39c9e543a840fc2a134f499f83264c421890ba8250a975bc059d6875f000e469266f7e5d05a6a80279b9b2ddb9d6176759ce0eb5595d34590a77da03e7634ce84746b88ac8133b0438859058ca7bf6b308d10f55b4ad9bdc75e394d5091350c7d4bbd942d8e47c63f196a486489e4730cacf54cda9255fc5b7c0d24ff4811f94f688c76d4df4068350e0e0d9b4a3f2a395bfac6ab549775d7bd7f02d804e3042c2c377c4e3b6c1596af8284f7d6ac3844e9d95dee4d8e19591ee533fa7ab88c78cf5a856d3ddd423883652848c13001100ae1528775997e1f7f619baa7d6852f84dca305345b674618e57d677a94c0ac533b045423a926bf8a81d3d83a1455a5bc2d8c8171a9651dcdb4ade9aa7a4eed2dd7e7e041660b1e587f21b1b829c3025a1e91fa8bd83ff0d541f8c560eb3080d3b59defed1a2c1913f6cadad75162a7bbe62db2ec178c88297289f9f06575a39851eb379e9dbef536506d4f57fe3ad2065cb5cf0765085f8fc9544fdc999e20dd1826b65b4857377d496d0692efa7f990de270f80851f478f28f6fffa5dc477fbe04fec6404a94c408dadd86a4b99f68e981d70d6e952314843078edcce08d6e7f076c62b9ba2422d2d311b179d0444dd56e139d5898f5eff8a8e1b03aa80df5e2a03719443f3e588fbef755fa0e1d424f2006ba9f466784f0e49268c57c330d30010d2f466a10efcfcbe65e3ad62671812785b401738d6ac61add8fbce95cdf0622ef97ebe0b428be555cfa386dd0eecb9e1fcc777db2687f897efbb8c3c429b26551807a251d6b402ccbc04804f5eae504d6078905de53acb8d275bb5a8dd520f2e7f302c8f2085832ee3e6cdc15ac3aaa24639af8ea079205c4ff6fe56f07e19f2d7674a2e45e1f085245df1451bdc86ece4acfc1222c6a8b358eceaa23950a71b8be90079dfd22c749231fc317d841ef617e4423e80de931ac5616749d5e8ac44a94972171e7f802e33a96394de8391a333149ce316de6ca8a9a9a92131fca53692d9b11892a4fa2b28ba8ce45289bedf54466619530a1e9c673b95a93c11349c016d9b88978b429dcc2686154553dd4d1e7ea8e88c8b8eb4dd1487ae5b8070d123ef7c414aee06b55c4ae48b4edb51b79a9b696238b90bbe4602bf6545e9bdce469fdb20a9507ef06e8e41edd261772a15f1e8547f7b70ef1305fe57e70f9a78213ac98cd8229781f69a64bd9cf954578a34ba6ae589e3ce5f67450f3d45db8a94d1dd524813056521409c1a983d28521da77fdfdf9252e31774032ecafd44b7df1e5924b8a42360b0b100ec62533ad18ad66a5ec5debde7fab7e0badcd138d9753d2f0b1f9681ddadf81250abaf262601c130a31cd53d089aff7061a03537714fe7a4f61fce29cc7376944aba8ad404787d295670c26f94880c94826d40c4de024b67f4edd3019eaa026d309efa068862f380f3981ba70cfac8d76e8d2fd3a88423e5d2af47d38f66de54f77fce8c3c47ea9c30cc00fe53d648b3ac1dd0f5dfb0bf847e1a2c9591b0b7146016137ae527c85d8172c656e43d21b72156ac4c33dd3539bc7e2423c9d775260b760bf0e04d3a4f1d382c47c10b7418202d013ac53eb0439786b93c68f4d61f1b76978a241b639e2d7887b55d6472cddcb22e5359f0a949509e9ef6a8e347d5e926947fb2650e5175c2925451b67b35d5e75865d6ff5329b80dd05ed24c7c0a14573d0969be007d09ec5635a2e8816e3c2206d6e270756c64210e375e2cc127760d9d36dbbdd5cb6adaa0b5dd8be41afa9553578e40e0617d401aae0ba2ef7ce726b0a0dde1c3326b4a7c0e50bd1f341c83a026018d20753ec1a87355f2f9a5935926f083a3e75929cd2b7c88a9bb297f786ea3677813cbd6713d15f6d7ff310ee5a177631b8190925eb4553ed7d81cbbf655aeeaf5beabaeed320c9fb7148fe46289cfa9722715cf6ff51398b9b820eb8b3688dc802736ef81aeb3895439e76a970c0ff8595ebe73d0303e28c01aa2428e815d781fb0ad2ce54d810176b51477f039af97fe1123016bcad1655a8353166f8b34232c6be1c721e8f0995a989dce36bd7ef2926036e07acbfc964a5aaecbcb456c2236c6835922495486064c84e1e8850243466e1fa1dd1357fb6fd757a0564ffbf5de7b5ca14bab750239f8187cc462ed77a24f8219c308f537c748770e4c7f4d6063233c8bde45ef285719b0543fd9ce7c023e150e99e0395ac9839bcc88441eb42b65eb6847e257d5b8b8d7c875b26ff10d9ff864f236c1302c1af5d2079056c890664e38fcb8c4afcbdb7842c6f9d4bb731d55e3496c3838690c206cc0ad15561a583efa27b89a8874ec3e0398b3f480925637f62cad16efeb883a8f6b4e825f3844058f47fd8f5d73298ff143d0ce7aedd42b0e331c4e2f41ca489290e6a1b00078254b9186efc575498ba17f838737819769ee0e817d5b976235c8f657fb23d92a82589fc7a7e3232c5f3cee8de953e0fd7a198720795b471f9cbcf2acfc7cacfe82ad154d6c8ef3e8221e1d2d877f4a3a69264f7cfe1aa8d76518d53dbf5f47ad20804d2882984d78dc982238b253e16fb84a3bd19dd61ee63af61d5dfe10b69a4e913d6c6d7807d007d269390cb4df94ac81bda9fc11d8b3935143ca2b482d7c72ecf7be59aa473126908248e48a557ee6fc0f8b465a590e5fb6025d3a7c49af0fa59d7a80d20e86dd6b8328f759c503830a3584900f9858e87cbbbb9a10a60fbe4fed91f6fcdb4e521590369df06c1994476d832dcbb97cf2debc5704a18d27952eae98fedefde3980e8b295120b2fb638f8378b1568763c9c862d01b6737d2386533524c9adbe820dfede8719aa7df015b2b3fe3933f2718620daa872a8d702b68a951f2168eace2ee6f79c6fe3ea352f756bf2ed09a7dd6a452801f6f2ad767f16bb31a82fcbae375d79fbcba199dd1c2e591f350f5f32242276d641b41d2c48e0b534cab90bfe46d5e15f0adf0d7168faa9c3d2b01c2e52afac5536459899e3f070a249864ae5c7974406742d2717597df1f0d747657b664906f10b9e2984eb82336b32db2a4992637b491bbb424c54d9118b27d62ccefaeed7f64212681e0976948bce91f26cf70145c3c9e2e75444f6ad93059bf91596df0fc28f3a70c783e35a6a59936ff70b60dadbcfa07d409914210a014b82aaff60f8956877acbf36c8a808c756fe3746e1bb994a05a0b4092f6af269d309f5c5db39784f1776f818f4a76b3d1bc2fceaf67a4034c736a6f8a7c59b6eb40d7e001018971d1cb29579cdfb5119c89c39aacaaf985beb173c00827282da45f11b84450f8235e9aa3dbe174598444091cf0f508484816e82f2b4e20785a86792f1ab8308379a47e6783fac5693e9cdcc0b6b8ff846fe1da67460cfdfd936139cd5997614469038ba06c8679821940605710d6f1925f6b1c94b2383fb4d6dbc7496d8fb985553b646498bb914cef9b672e84424aef9bf221cc12dbfb375bef70a4fcf076c1ce64bb43680a9f220e3cfe80a0b7d668f9e0f82d17547d4dae0980e1cb5b0c81571e458876ae8941bb4d2e0cfd35702bf5e0b445a276ac5b4db000c8154291c19bbf14cc75d7c12d09daef5835dc09e63f1e8aed26fb043d22a767966b2fb50dbe7fda50a4e1e37c99d6de8a9a7f88087687a2e72b47e491168321c2672f29affd35650a8bbad70fb9ba839f27759830364e7d2c38cefc8b6cf0811f3169b630b00d64e1c1e8c5c1f38c104169f7502a38503500360825a5ffe31a811e17225ddff6267cea452104445b94cf474a694c6f36e135ea2bb2861c52ac2335968c718aad110bb86422e89cf1586e71add79b9f67977ae0d032f39b7a13de6ea0e23811925246ecdbd955e588fef8afceee9d2f9041477e1a9ea847b1a511a0739fcd9a2b6911a8f2a972d405df1b13b4a605b94a3268868f3bedf7ed28a04c3d6fe1ab4170d9b9c7e50f3c6e71da2d6da87415705315da00bc99e16dd5ed7a6d57918e3377ed938fbe21f38daf51979dff60d0a240a2f2785ecb1f2b1a12d530dd3ce2f94632452985423734c5c6c5173b6801aa49e5badc481e25f89b2ab6e9cd27ccc1ce8297777abe5174b0c79d487a061084ca16d13136c2d970455cb1f2f96ca4b38facc678ba6af1f7dd463cf6b33d70a00e57b83f3cb1fde71b8ae3259312180c97a6e88f161adcf99c356e9b6efb648e03c63bc94c248f66bfa778e7068be2c4ee4076da0f6c0e484c8ed551f615fd1296bb77290bf98cd3bfbcb78fc954bb94fcf95310ec63390f02dbd5d65dff2cad76a12534283f455d2eed2a1ba4da483306c90de0073ead0b2a974121b73a078d8f3761e41d627ac0847ed03e3bdd4495793b5507b2e80c1378c8bf4f6710d0bfc0520cf7f938b7e617b176e1f67e4488594299f56939a03d84d4ddf22a8678b9a6dd42740fd02c1f1d0923010cd1661cffe3a685bbd3c4961d7dbfc306431a2a8fcce00b0586b11660e9bf67700c5409d2a6ef0dbedd0d1bbe34d39d7989a4880afc142c57c130d7d64cb30bb52071a5f230696bfa8c2b3ed83f749614df89e050f2e30a14a6a2f8b6b357bc8ac05b8a85a9ff6eff4e37e25f456c373597699e054127a1c0d1f389c87472666ba5087cce413161000ecff8d817ffb37aaf1a22500cc090fb3649739a2aad0fde70c1f901fc069498513f09ab13539f17229ee1eb5377a02dc9e93382ea1ce987da3a8046f94c4276ad41d60a955a72c567fa903723739d67139513b192a886dbf0f61ce46adf0f5074eb81c02fea021bd5e66f7c9401191a9ed7d25cc3003f7cf8864dfac3214e202e1abd6e01ddd12f3ea89bc22be043689c4dfcbac3031543940a7cdc6afdf582a91634375a4e7891c04a4c2f6a80c09aa5a1c35ab35c89fe1b77f765b7865a63943b6697cb35c3ca740d59534b8c8c3fe4718c3cc31f3b92f652c9a6fe782cc831d8ce6c13fe92ab1597c1b9fd3d8ef862bdd0441046cc7d46d1a07c2b3c5d351904412ccf89e4d4cc4cf99889a03d25327a1d8834b65660ae896fe1de46b898fa2616fcde9f8e65eea8be83fa7729bbf7aeeeab9170f28dcaa394bf85fd39b193b0f626bbd07b91bdb734b7359cba933b29062368b5d22c06f421ee9fb463f04d6ffe9639e6acadf82221c06f99191db306a9c4e48387fb5fb12e8f330a69aed907e3f2cdb998a9608be912eb8a83862fd7ec76a34359e606599566d1f39f63aa1195df5bf2eb40f2ebc8cd11afda53e398ac62924243fae295c78641c7c3f64f970c304a266b0496ab8d6ae60eb5f9a575fe65eab3c3b79d93d66f1616912acd32154c55243a19dde9cdea0bf29bacdfa3a5e1789d3b37608cd3aefa1af92a9c600f3019727571697cadd54ce4f8a2dda438e5c20d4ac87e9c909ef10e3804fbf9646be33a3884771e831332b7f3ec1e61094e03d397461f52a0f7330f47bcd7990bccdb60a1f36bfb2148fe658d9fd99dd560fb84ae395c5a177571aa6a5afe0a2deead62ddb4bf4ead436742bdc8a29dc72908c9e40a957397c05316c13842aa59027f48361f914910cfc5e833d2a44dbd31caee242276e55ab621385a7746a083ff5b41ae7c1d7678ecf381e9ce9ed91dd8f7c6b45e7d2bedc8d253f5211de3ab1e6c276c40b017cc0b1327ef449684d6c59370d02c79ecefdd1b94c97ec4713ac03667e66b2158068808d15e9ad83c069f5859a9d45adca51d8b158475774070663df8139bd60b68677db282f7ea0d377f8b9ca4a3f5648ef036a0e0618134b170df939dc612e7d117af019b2c3a9a462a06f9ecca4cefd7b87c3327b554a16564e6e2878143fde2ba492bd906e87675852c4df4322e5bc65c1776f21ea3b7a84cf254b0e8696d70ad7bd48666000c1a7f3e757cf97657cca9469dbf86f734888c301feb5f2299a33492b70d5fe5cf4fe05a6e85ab79c84debc1d4d18f53d250836dbc007f7812a3dc3a92998bd00c87044f0332c93c2b388095f513b1a5484151154b6a3a2fa8592ec4bd5122a4a6db157a041836fb8ddd2ad0e05767f11063153ed21eece5f499b90aed173c5d423f2de5fbed5bb5413aa5b21e9ae3639dff7dad212f2fc84fcbfc3c3e807e33a8b5d02c73063e355a2ddbaaf29e107ad9d2a0fc6be6353cec14676b83d75678dfc6a30d7054c075da275a2c7e9c451c3f74afb2350b2b594ca2fbe10013ffab7559eef2080e57fa739bcc1c1c29a6062e23254859eb3d29f4fafabcd9cd369efde3ae4c70748ff021a7655a9c23c98da0c230200df20ab1f8a46aec9aa521c84b6009c2606bc2e91ca9eb6faaec0c7af7c333a8042d5c2c185cf3631d564d62b7575ca93f636d23cf7ec45a72c8706f80fa227258a702f3c3dbe70dfb7bde6ed0dc36f7f65e9df10db6f4498076a37a794e625a31f6f29c418c046c43698151232cb76df901326739b11f7c2ab971567b57a60f2f587d5c84fa6b884b62a89e9843405cccb8e827affeef7f605722bbd14d6878918d6941cde5b3e1c2ae3e235f30dd8180f51bea22fec9272fc50a33171e5fc05be85b21bcecb3f58a56388b03bc74f8157cca2b751eb81c5b20189ffd9fdfa32f167f8a9d4d150b8e2b6d2e0f2e2bd715b4970fec067d84b76e77ccee7c8b18b68f7a922c0cdbcd7494550507e2b4be32cbc17f9dcca288dcc2d4cd82cd61edde35868416b1bc25822721d683ab0dc5f2b48382cf6e72d6bf64bc05adcbf6d5eab0cc9fd2e345be555029010ef559b2dffcd70dd3501625661f7b02d95170b28b536206282fda76472e7024871b4ef7d7e3013c2b432f0331427de885e62352955b5052ca1c88e5d20805f579a952416609ddbb9a69b4ce17ec79577d4888f8e0b3f77e583e27be2f0a6822e60294416bf69b06ae907543b4372f7dd9f19674a3f0e846c0bfbfe22bac4db5da6c3653df98c032e3f0161dff04a130a9189b05b266ed597e8a5fb26efacc62e9a09fc5597752be95f5deb9adc72c4ed7f2e93fa5eb34f6e0e83cd0b4e0dab0e357a48f3226e177d414703d5a24421c94e8aa192461eeb441cdb3b684f971baf9d3884a5dbe9c20adf589a79a711e7e5d4612371d56c249ec89b69ba6fefa2f1320c2b43a2ff04d80ad5d4a57ab1e1c4b6938a5937a5098bbd7c11c2bed13af2fbfe4d50d67252e193186e2bfb41c595dc4bab97f8ff70d0d44721b88ed8c604f1f6ac0d1731dbb9dff1cef2ed386ab9122490aeefeeff4390cfcecd0523948af2143f41bd649b93241116562175ec1000d47fc3c0326a262d6f3cf7b83445e6c1246109693090ba82a02ee3bbcb4102bdca4b5c9a36541d5c0af9d81c3a07738de5636e0bdf2c8d69d2a38da75b6263e941ce9deaa6ae2e96153615a394e0b1308b5d85fafe7f82c53cb5c410d90870f51645facf161df59a97d4b8b4c84c2319c31d8e577c8a3aeb280480602a5c9b8b68da1bf3c10ac34cbcd420f6b57da5612510faf18bb7f9dde700f6fb8a33324b99265c01ea081bcb7773afa8fb4a80ec2e1fa7d7e1a694cd1de4c64f724a2e57a3ca8e6c5410e92dfece7f1890aae727bd96400bdac067a8402042282c7c2a34c4f4067430a95e855ab2574e5620923d208a5fad4650107a9a289131d79380e57ed4785dea728c7be0cd9a90c646cd399c724c3e4408371464cd43bafced755fd2f15a01aa77c1135d4c65749e260b77f6cc384027d4133ffa840d7f2dc1349b2b820c2f12817ff0cf592208e11adf9239c1acdbe193ea6348d88cc9339cb3970e9a482a7c1700bc903e0b45ce059355c6f6e0b64e1ea2726682dcd20916625b84f81771f4741fd220e5345cee6bffb9056ef10a2df7e482f23122af16c1aff1d3376380a6f05dfe503a6fcfc9219eb4fd71279c08f3d5b3d29715401e01974bbc3af9f92153ae61644cd9142d760041bf2df5c1c8375d21487780f3efe1619615c98b37684d0397e35b79ad2559c31a5420faa95ea89af2eedc65b027ee0f2db7b92752ea6aa1e48704451887b219181a8ff0e3419120c25cbfb1d03cef71f0c2ff0e2f6abc871ebeb0ccd6c25a18c3b0f74dc79f7fcf5fa4bd7fed188d533bd2ac9f810957dde3eda545aa19476b82fc0a32ad14c7f28b600fe121411e52fa3abd06cef29970fed1d1ca001e80501cb1d4cdfaa4797c6dd5f24e95d490ba8eac96316b7723331d1344672cda49f53693b9e0d29f3ccbdcf0b093aaf8c1fe956fd9dca8a5778f17ecdaadfb7ce040610fbda36e65c7ed781075278cbc35f7ff3e7361f1028240fddb6137549130c8503efa136197f2525abb152704695f526c49008a7b5beabc834c2134efc2f6ee4723b8a7e3ccd877b0fd088fe330468e84ed80b10dd7dd913414cfe3514fd3eaa1f620bf8afe11eb4807e37458fb3cd5ca2724589cda3d3922bd38a6a1c06dbf72ad3a40beda24558f85e934a0c17c03abeb32e7235735d9b930c2a03f9a38bcc4e850508d9c23aacf3967feb699bf730c297074a6fdc58d0ea8ab803050c109127bb260da895d85d0735ee1e2437046c3a714b025697d7e800b86c13198a077f8d0fb3d15293bf6dd5b882e648917efb9ae1c51d22a8ac6a54e9b0b49372d086635fa4ea05142eb04ca9aaac95c16602804e262a3cb6b5264f1f36e3a363461f54b5e8254355420858694e25d48b08bd15f4bf5172861d2a3b29a6e97f44975d7b6b168d2e49b9f62dc0fdc6fc89b5a953e40b65f0b4ace2272b9101910a0c16f8ab00fbd1d7cccd75f266791a55b6f75bc474dc4407244749bc8f81bff0c29bf897338d44bb160ff9cdc80e2fa0ff50d86dbd5aa613948674969c5b538724782f730752f475031c8e1bca09c427d89015f798bc793a5a5c474e0a017a5480885213266862ad40b1a0bab4b8a220235e33e8f3830d2a09910bc865d4eca46f51e91ef6417f820794d5677567cb6f9c24a50360e3b0f12203d5590399337749c828c57eddf760d5291cc482e62e9779fd25e06ec1d242f59e37f150d5dd6437cfcff10c8e7c76ab1fe3829baffbed3dc6b8bd027cd42d80b623033c9c5332342e3626a9617601882b631da8c1a5907cd875332527de3869b708c7177e17e878147bc74c3d1bf1a00c7bfae05b92cdd709a1cf5855abbc53e48ec6a9fd1236888d5ec183b313b0c405ab821504d1b4f3094c8fb60f3172b76b2e5082ca9891ba5ceb8079703bcb742f6a56194ea8905c09fb8d5de0d10b3367631d7f49c319b22b8ec1a0e43746e7382f88f147fcbb11d5c82cffbb0dace34ba2b190734885c7bc348216b2fa399cfff0dcb92cb04dd80742fdfdf9bb5f1813934e4d21ec26c934d1e18b8c6160a6b34d96f9f134173619a8991cdb2fb9d0970c6a37cf6298f3e6b3e8409f1e4bc2d68b5d437e45f87e5f29b4e2ed107a8a53249824a480b7b2346a6abad229d5343323722e9c7dc697bee1d905c91bbc3dae71a2086098097e72eb5fff57717bb4a7a0a9ac823f3c01ac6875c94366aaada4f3450fc69a5c8703618a3dea887d85bb54e3afba67c879b8868f991540cbd2a17d87ecb5dce32b0f59bd407c376acd8738f4ea1d53984cb39293120303d92dc5ebf8333733f54ddd8c38873bdb8f859376b692603988c995721124bcf41136ad16ca9670187442b91fded950937d67505ce3fa005f3c495d47c6730104f2404879de415ffb21ec59c34215fafc723d11b63afad7f573318f097691135b16eb46ac534335652c15e48f6c1b042a7603115e742df40d4bd32d43176f702f618a7adbf6a20c6974a26a1e8c096d0039a753dec09732e69e7da8fa302264c314283805b7e235313dab653c87747dbe1b3dd750fccf9f118675e8f2b266255fe9fbb88beb6f15fe30ab242085d18013b6e3a306e635a98c4e8be88453819a1e09c047ec0a548a491c27836bdfbcfdb5c77181fff0f8a8d79e2a40a88ec069abaf5b132ed9109dd09d5a80c59c3410362754265b7be145078c678fb12905fb59e38bcc3fedab84ed4a283ed33066aa03b2f15516a794aad315ab9891868e3ff1fafc74265fd5d9c8ff2d5101a9580e94cc9a4ff76962bfecb2cb57eb76452516b0f5ce3b4ef294ebd8aceca38891b2d9741203b438bfd1425ce8ca37387e9169c7be7cde72ae9d2dd9d03016c5977a3b2b3e34d06bd05daf2e02684908495375ba7d82c859f50a7666d40f4afdeb03e6dd05772b888f951ffac0ae202e4da71d96fa01113a3c8f16add9f2978a2c2201ad3ed5a0498c3212f6d6d768795023ae1d53376012eb9ae5120f79a9142d68e30a69454181f82505030501ba58dab3ad3f47936c022c8705fd9d84663b16c8bb0473600f5b9eb8e9f802a194b72a88b7b90ab0f4e1569e8409f125e2ed0ee80044449e4d2e7f2b59adbd75a28fac762dc30ff95187aca8be909045eb3598af434232df774672061f897ae44b1ac537b4b436f6af938a4904bf8705bc6acc2e0fcf3724f28a43539b6596ad815a450edfdc10e14060b4508895d11493bf22c6f620a8deb043c8cf102af606532c19ed25987244e490949a506db9dd6a322c2ba89c390e07936f2a300fe94c34b72e603f792a676695846bb7097f2bf6d57f3dcd6737a30c9fe395e9918b473a18d54cfbf6e9b7b776c95b69d925a307b646ac4d9575c23423b47d932fc6bfc8d518e3caf4ed4cea39c7d9ff080f18fad653720ddad027252593fcb239f8c53f5befc563d4dd1e74f44c897bca3f12e63a3f8f7f3eba9c5c3629e7611765c02f46a08645ea0b46960402bfae1564c2203cb67898c939d21c82002a9b1907468b145cab4433f5ee9bd0874ec14a241146ea8559c7af14d4243500cf73ce4cf084da24e2fb8f6b2be89b02074ebb87e93b9ef1c088b052f1c659761522655bf8fd3db153cb9bc9df36987ae2068c2e5b48bcb163f3d31931e655a81ce209afa10d31d9617ac4a6400089e954d26ded925150a79333cb6378d1e5c4f6427343a3383ca62616103c6fd8f1a30978ae17c67d68cf7e7826a457a1cca3f27d40bb2548705e7ce07c42246b1cf2ebabb5026a33aa5decebbdfdac415f1c05be13a6791cd43ddad1bbcc3e623f9b6e85a398857b68cd8fe81ba793422ab178d1b599d3015d6e18dde4b2e5a3ef27efc46f613d6ad2a58be1a31341ae632b490250ad948155ca9df4acdaf3cbdfe70f74e3c47eb57c7cc35e7bf4d1d04ba6f5d4393dcc44349b8f012d17da7b47528c5099c0904fc2eb1f1f6a6718c084ba8bf26d927e3b523d0aabc7fe69672173ad301ba04bf990d58fa6cf639d3a2f3c9546172408eded1ac73a042a05fb64102ae35e306de613fc2eea7d3367beb9fda44a65e8a425a743f2ed5e119c9fc619cd2e0b49bcabdca363224e89ea53615cd21ecc368a63e0020f3f4fa25342e719242d94f7d3120491bc47beffb98948f0bf356d683c7be3f2acd86ff264b0ecca18863021bf4a2da34adaca20f46f1a0462660911be50c4e8f4926357b3363404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f", - "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f" - ], - "measurement": [ - 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 - ], - "nonce": "000102030405060708090a0b0c0d0e0f", - "out_shares": [ - [ - "4936ef72478a208460a10552f8acbb4b", - "c00477bce97b99b5cbfcf8a91f60195b", - "08482153293c3a8a96ccac3468243afb", - "9d0be62818287a7e054de93542d95a21", - "0562502849a4d7af989b825403b19b0c", - "f1d5db7824cfa7c1dc4a0bf5e2ff606b", - "75e0fd84de5cc749afd9fe6cc857a177", - "64b5ad3e698c02c90ed5833f72de25f9", - "7eceb8087bc8b5d1bf149bd4c4fcae19", - "d4d2d868cd0e94f2d7a994bc6d9a9bd9", - "71c6cd0c169e260325a5759cfdc742c1", - "2a1c6403ed64c6b8cf85d817839f893e", - "da559cf5f8e0e1c71b22f2481e07db4e", - "c2de036b739bd60865e05c37261e16e1", - "deec5ec605a0c8c893be04a53ab9936d", - "426d68b8a2a23034b6a1d29b9055bc29", - "1ec53a1dd1c612623e1458714e2b4b78", - "422aaf9d6a0e566dc98357620e8f6ad3", - "cd02d874bd683418db2b88573feb4f84", - "1119206c3e1e7a3c4c7bfd60380e29f6" - ], - [ - "c8c9108db875df7b835efaad075344b4", - "41fb88431684664a18030756e09fe6a4", - "f9b7deacd6c3c5754d3353cb97dbc504", - "64f419d7e7d78581deb216cabd26a5de", - "fc9dafd7b65b28504b647dabfc4e64f3", - "102a2487db30583e07b5f40a1d009f94", - "8c1f027b21a338b63426019337a85e88", - "9d4a52c19673fd36d52a7cc08d21da06", - "833147f784374a2e24eb642b3b0351e6", - "2d2d279732f16b0d0c566b4392656426", - "903932f3e961d9fcbe5a8a630238bd3e", - "d7e39bfc129b3947147a27e87c6076c1", - "27aa630a071f1e38c8dd0db7e1f824b1", - "3f21fc948c6429f77e1fa3c8d9e1e91e", - "2313a139fa5f37375041fb5ac5466c92", - "bf9297475d5dcfcb2d5e2d646faa43d6", - "e33ac5e22e39ed9da5eba78eb1d4b487", - "bfd5506295f1a9921a7ca89df170952c", - "34fd278b4297cbe708d477a8c014b07b", - "f0e6df93c1e185c39784029fc7f1d609" - ] - ], - "prep_messages": [ - "962c297d1fb26b2bb43a4e889845e9d34a5fc94343baa91588490e0530566b62" - ], - "prep_shares": [ - [ - "3693510cbca8199b7d0ebad774667a63f7ac8ddb946a8996c68771ae06841abb9d87804a6091fc9bc73bf6d201efc4d1417b0ab6f7a516b4fac7cdf1ec7917819a7742bfdc18ef3d7c09b251f209f463c1a0555b2f9283198e5c0058fbceed6f992b08d1f135a4156ce88c692f810cee87523660522cd530ee5b743c72ed48a6448472ccc684b87da1427959ef1d6c5acbb72d7b2a6e7fd9df7c50d5a01e17c11253339096be490f12a55796dc55281de6323cc0bcca8cfe0b5e616251b568a7f32859851140496edb9c17ce85a28d29cedd193b104b2cad4fae3b52c5bab3a31e8174ca52662dd546efebabe7e8521bbb4f22d4872de8be3476cd1d5508a896ba9d7d9682b76baf16a8628c253028a03c5b81c143ade05b97d2d8f45d8b1c2fb662b982cc49d506afc27ee070e46294036a48919e836de3fec0d9858b4bad917ce6654c2a5fc88df564c9af52ee1c38ca3755ade50e71fb1e075df78072e204ce2061349d6a4946828e9dd2272711d98764c14a0c02848b58e4d2da227e6be4eef3ce482a82814216dd8850e5edc545e8f7e31a0f02537fc8ced845c5f52894ec92bd453750afdb587d8f4a8613c855d10a22dee51ab5a700ac2eb8c8a6ed7cd0372283b77cb3fb9b5ac51862d1210ebc5e6f561ce73ea94af6c821f538d25400cc462ba3fb45ec34021dba12eb9701dacd0c1dac1790b38564b45ee9d5b054e2453c7013736e3ae8c36a96aab11fcd0c3df2e5305a4b2c7b5a4518215e229b819e75f78b23c18a4648f5f72a8eb5f61bdc4103e1c705fa18e97c310d137ae5a2544268fc9abd88303087497df3030168f4de4b299e08445403019d7793277e2edbb4dcfdb843277731e30d3d9eb946c98d1a98de620a7fbb5891e5f557266fba987fcd517da4988c3c0ce01ccf376364989c9a820ef7085ed2dd8bf7231c2f377777ab1c86c09bfb369fec0cd1eb19552b3e845d4e7e3e17fb820c29087b81979802f45ad818aadc9b2e84ae5b60de43a57a64d044e9af586b89abc2e5959ec3f71c92987f60c81d52616d8c9fc014746ebebdc591d795f39f3d5a7505ef4912120f43b3dc9ea91e5a6a14dff8f1d01890ded9af5f274974912775e0c642d36d1a009973aec6aef44f597b2829dd054370f10f2a1ad210c409837bd5f0c765b13af52462065da4b59df64a8edb4c1ff1c7087c05da59eb0f3ac4d69d5739ce6024ad8e6b14d560708001ddae30e4bf8d3c92f6f38920396108920b7cef84c31a56b8f44aa5437c0b856a6352a926918cebf9321cdb0e99e633d4ff1eeb2dd524a56254f458db0b3da63e3b79d6fb57af9ab3f816f00b6677ca5a558d042cba75ce0979feb17850e692b40415df0df3f58532b434f10632a8cfc1b345848eeae783167932431306f28dc97f66287b3970eac70f0ce1935570080c981f69d0402fbadf2e4b1a2050f84bb4e12fe3046ba8985bdffd8973ee015a44fc962cf5db04f58ffcded36a42dbd02457431313d509f1b49e0ecb3b6486b93fa6e2b09dd55e89bea6bd026c7f822512cd8d303b3ccd545943120c2018aa8b42a20526c58d17ea65f4ea0478b705c658cf4b95f15710b48123e0528cdfcc0bc2ac14bd585c8564b1a27f8ba52d043e28ef109e571e00cc1f1b238e5a08eb35d734ae11cb332e2eda71b2e6883e8008e5fb1d729423421b202209761afb344882b853ea1ebb436a8899d41ebba213c0a623e1c70f3bed6cacc2e9820cb1514e10d21c7a625269dbdf254275ee41f295a83af2f5a219505b5948f8a1caf921aa747e1cf46d6b92656c60c56b4eef1eb2b8c4b27a65b4086d38aa68929d2571b60524da81f20ffda9485450be256e5e204bcbb8e30cb5604c5d768bb54c671091b5ce9b6c48bdb7388f3a0504b4b110e5b9d41009f868b31c792995431286a44c43316cc6c06713387ab55d8fd15453c056e2e07a9f4f257b9f3dc6becdf3366448265e1bff22434134de2d64e0ec8761b7baf7c91d2e7c5ac7651b11d0c1bcabe7e7ba2345848fbf3d15d45ac06255165a34bbdcf9558c805ce14c58c759aa4d5b1bbb08d2683dea0396d7a6aca07bd1203f5ed5b8959407e3403cbecba486ec96d9cea04f64a9a953bdbf22899b21ecd6b49a4849090841fb0406cbfcc87e782d79245d2f73b33a7adbe815246165bd6df03d1cca4f4a6bee85f9833c3ec18de0cf41d72e54fa595bcaa41cf4f49c12889e49331e1b5f407bdd4ee3ce376cda84f7510a602bcb83075483ffff4a8d347310ef762f145c4b626b0249e69b6a37f2337e65c6e90a51bf80021f4ece09d9a8f955047828f09e7ed97653428314cef99071856759999bd9365212d20dc8c7328d39cc46b247cd1734de50c7f228ff12e0c436e756818cb2330b8a6f3924bb5a60d05b30add91a091eaa1f066ca0e181954fb502b1e19f6772ea0a2a11e47831944c06e002ace39afe292de5922e43ee744f94420fd4ee5cdf60660091aa151c0047999eae55da78b9f3175cf933cc15382242159d65b8dbd8d508bb6710ddbaa55fd3e7e3fd72a816e01737055c0e0db310f8085547ac9875aa820b0c3036f518f941570ed1f94465df4903cca348aef9d8076dc7605b79db4695f3c11766945c1f4c099c00c06cd6fbae236d287319130d6d6a5c2cdce09fc233ff694b43caec82d760cac254dd502790d03573d087ca86edb0ae82ce5e7c629b9e71fd20896ca35686092e1a00c8ea0bec53a9034903e9f98b59dd7904b142c2b2119f90db7a681303569d29e3f1dfb6fc3838a7866053fb3f8091462915ce6fefa39fc34e62c36ec3e903ed7a883d5737c89728003ee4b942f5fd17dab4c403eaf58829e7311bae27a453878b23cffe369c9668eb2c709b681506d9b7f5cd63e98433dbe81fedbf746a84f3a5017c9116a9bf2d3747db6c1c7eab1eb361d81017b9510f70209b7e9f3f4a3ae7e3addd80112c4f1a231a91a255971d4ae693375b089fad81feaffa9abaea37909dbf10b1d4e727e4ff58188ed028178dd771d389aedbf7e742c904ec916f4fde4041c03f0c2413526661f2ee236d74f1873b4aefa2a6f6481b2d3393fdfbfa1cad6f47799a4065099ec1bb37deceada03ceb4c59b577516d37a968fbe8f87525387b9c13cfe758c3b2f8ad27b5ec9867c120ffe7306b7723424e6e60c7d2f7f14b376509dce0ba8c666bbb019a6a441ba44f33c92b74996882d5898ddd9521df1e32511143be129177933fc152e18241d8087feaffbe94c05695d88c4ff22f644c2f6d41b1e7f7b31c29a35796b0f63883bb6241a925e443e0abb792327a81f4488dda0cc4aead76753827131ccef7caae3463f8d45b91021c0ae954052c9c8fe14b221c5be9bb7d07b4d24767d787770cd6ee0fcc9d9c331c8c13782e26869a8c833167eb01e622a3e8e346579051d2a5367ae171e2f068fdddf269c5b079ff274927413d36fbe594e99a2a19b54c6b714179ce5a24443e7edb3e7f97ae98d1ac2475c7ad4e31712e84844b00e897bad1c0cb77a3d64ffaa5db32edac443fbef7eca3748b1a5e366d6a844041056a70651e471509a2b8fac10404470391e95a94cba34337903d0a615672d73e254e5fc2c74773cdf8c27e59aa23a3b4a103189d7f3d1b664b4e72d175267a735ca4b0fd7c9c7abf81f558b6ff3099a4bd822c03fe97d35d0a74b56348fc0d1b4fd6a3aa31f1b859295462a6f040dfde92357101d99c3241f833f8038dbea0bb0e1ef576e618ca4d7afac8889a48fa03b16c0d9087e7804d02ad9f3450a56ebe4efd4f0948eb53286da9776c79fd89cbcf1222ea4c98303933815a8301655c8d09c6b23f0ec60043a7e424e06a298626c4e34f4ae68098f793f6c9a78e0c56c848023086a704f45f0543d254e9c5ff370b5211d0c3dc30aeeb0fd4a452198c3b954da3742133ec968f8e7ccaef360e70a318dea84ce10abf43618f63634c2d311862d6ed919fa8bec408d159d80bb7b45578b69985d1c8083cd1ebb550669518ccd6e724430edeb90851e269078733e4c5f8c3526220fae344cdede63ba50dd3bbe97864dc307ed3e9ecbbdf0e8762d6e64e2d7e3c233b5f1373db40d67319c3a68e78c4682726726275d3836051b0cb9d126c6321ff8f0151643e2567f34ed910215f631f4745df588d38956c3902cc9ba65a99fc96a291c4734aacca57cb67a07bb4aa37ab71486930ebb93a630a8eb9ca442d3aa516b9f69cc59dd687c4f78ae7b97c16c1b1feec4546420315dabbc35a18b5f56e395e5ce914ce49de7ff3745df73a4d6952dfee3e380a9f21a13bc0c8210f81e7ba991b019107b8b21f1ca72bbeb443c5b9bb6c0a0d51ccae2099c3cf544e7ec8ca33d65cf6ee27fcefe1f3e3ef5589a12a8fadfb94b4df7451d612a36823eefc0008960606c5624ba86de83653f3c5bbe2e4f140e6c9faa7583083329b5f1aeaf9c6bb4cd65d0f3173a669e2a4701fb60dea856f860ee7ca20f3747e2f1d0c6dba3150dc615b719f46148574ad3a80507de3f5abd6751c04cf7785474eafb4b0d9691144cb7345fee19a23511528d25314a1d83e67eb52179fe6e9a8c663a2998651ce77c6caac6e01701c290df1399927291507ca4bc4465074eba7d18ac2c45dbe4b7a62af9d9d1d3914e046c2a3655ac4b4ddde54fb3f21bd6f42def5cb3f6506dd1378d3c1187ea0e6e3197a83cd65b68cb3e0c9d6d2faf6a04468f3c87542b476cff993d7c384bd55c3e106c090dfff228750e53363f2446a71f539df01e72629d25f7ece0d13ac9a8055e5e7e1d192c72f1729115668548039e76eaa81555e2bec4845d344334a4608de07f19480027f584922e607a0d0a96f23c75c8f03ae3be994145eb331595a930a038a3e3931861e91cea65ed05f59ad987da128f5bc06c42a57a19e93ad270771180ecb3ff4b7ad1a9c3f6b2ed9652070b2fe818ef0ca1e525de539748022ec7f100f353839d34078a4ab64906f0f6161cd246254d2111a802504237513ad7b5e976db19bd6dd2bad20e4489bfcb82db957120d59231c1c63237ecc3b2b7691c2cb481896ce324a548ef8690f449094489a112b36bfa46bee6560ee78bad103d36a153591886bdca8b23a947596ceb1c6dd2b82161f6bffb027a8dec2a2f2a5f9f39e87a7f299f3ffa39224f6b2b31430b47fde7a280f3bce43abed5d17c4f26f9b5f524f4836aa7f8144b606ab97ad0967f45e817b3796df9e9ec9d2f94c6692da285d9c52668de773f5923898b2576a995dc4e707b08df257dd1691242f48d63957fcc847116af1a15f00316c1c9e31ee91d11b7e6381ea8356833e43ef45038ca845692e0d18ca2f2cb9cc0bce461193e46ee3ee8c56460fa68853a72d3c71187554acfa03ffb462c83bc22dd72a32dae6f1557634472ab10007cb5ef8cdd726f895f55c02712f27afc3236ae3c09c89a91fd685a74786d8bfa1d09670e8f10f7f5db13fde2090acefccd730d41be65e4bad93f602f688d4a1dc3820649ad0ea7c39e40e9e56fbbe53d0abf802bd4a72c217711d668fd9b6c31c1cffbf3982e3f7b46be2557e59c1969b7bc6d28306eebde39e7e0988f9cb155e1f5d47e8756201697012556bcbcbfc1bd088456ef2a69f1b90a689b23f058b25e31a76b31b5e9520c21690978d92a3bcc5a99403895f0bbae889ede56bded2826e0a3f1c6f96cc22d117aca5f90a0fdceed9b45e612a49d7eaa7d09acb3d39d3bb05509436a0de4c9276509b391a2e328d5152f0364a685b64f3278cc93f2177a0a4a4a4e24bd2128c7aa8b439922d844c3f2687e684f27140ae74fa2dd7e584d8d69b1400ce919e80e3e39aa559e356d8e931d3b34e98ed75a41d62fbde59a334fc4131b243bef98011e1bfb8adfce07e2d0e6e79a8d0b05d1f5ba6ff1b45e3a2af13122352ddbbb48f945d2a3c2207e2ca1bafea2446a32736c82df9ee31783c7d22f3709f6805ff2aeb2be58594770003ae4458ddb850ac0f821fd72b4935a89377a81f2e77d50226acd8de41666894e8bede7521c183ac6364ac5fa2e2ecc85e3d06c68bae689f9a3f02f06dce31597546aa1857a252fef3b487890ebf61ee5999eb4d86df7fbf39cb40ab97e95241b67c318e0a551656ef417292327b610ed8f96f2162db3740da50f70e037e32c34ac961928a6ad7faf7010978978f8e23fbdec026497bf13656ba3377479eae5e2ca2803082c15db9968a1b4fe1f42239e6c5a50fff57b4db604a88edfdf985964e3d7fa6a6c506aad2fc94140a76f12069656ce2639561a2fb19a49ad095e717838c611b345e428341bce53adb93891b42fa5929a428d6074d710ffe7a2d4128723dbde3664937a9318d540adb9ea1d319587b3931cb4c82936f85898cd665e7a7d4b45969741b3ad7b71f5121c2c3f6246ef886129b2f116c2b2d05734ee5ab138d871d357ab160176c0e95179393a0816bf88286ad0e3870cf418e7401edd2ee01a6030f7265d5df55e780ab88236ace81b514afada75b1991221195c52d35de54fe45f22870e26a8121c471db0b4c4762e4e3e84867a4502bd0dae2571955ab49fc84cc91db1bb67eb8cb0eb387caa277e9c7261312e03c652bd8cf6ab003bdd149cd86bd3610097d014842727509fd83daf681845a385fcbfbf11859792ce1b1c928b85d86b427dfc4afdffedcf6f78ffcf277d1c35565feb01f6f7f5ec4603e4fcfeae58752ec9654bbde24f6a8f61ee4a6e94d89e2024473e61f32b48d481b52560f1e4939647b971b5062c420950d78fc5321f5d0e630d8af73d946204eae54922cf4b7e2e5cb5d68a6b4af4817d8d378e4d40165ec7f95a7c4a538c1cbb9fe182d4f1d105d48f206254064500e", - "cb6caef34357e66466f145288b99859c06309a53939a9027cc7a31fbd8e352e98243203765beaa9e7f7e6ad7e5ea2844fb6fb8323a0f9248c0da99941b91d5a5a7a5269fe9a579d9957b10a94d6c320115cae5304866551011ee345a827b8ff39d7f9f79b916072e59363e76ae01d092ca283a4bf9e36a3cfc7029e930135561103b3427c56d2e71c4f1589d77a05cecec31ec6f3f8d2f00935f8db0bf8e7045a4c795549235b7442590becef0191dbdbc8874272dd398b6c6ee1e6b0a83b85f589498f95a1bef51bf078a96befdcf2f1aa0fcde90f16fb26d6ef1077420714e18e35a44eac7a7f63821803c807cec8b51cbfd8066fa79a8c2246718c6ed5af68ce0a8e39c87c5cffd53df74d2e9a1962585dce66d37671fb3f1b05e0eb6481790c691a5eb5fbb2e49860f04574a23816b1ab7692b4e4a14147c6dedd0a394e30acb4e6d21801565f6db1a138ed244d410e6c563a971d61011e8b1132ff069bc6d6dffbcec7618a0f32bfe1d92f714205525317ae962dafc60e93ac7fae044c31f821a4cd1dc4be876d7ce72e945be54d140c94700ed1f9ae4a96ea2da222ce33b2bf0bdb25022c87d4f30a5778ee7b8a9aaecc6205e6a47b524251f58a846abd4c585e86cd651959d168f6364aecbf726e387fc9ee3585bbd141992130831f59e4ab3b4d77988e4ea995afb35dcc3dee27e00778fdff5d0d4cbae72523fa6d3a51d0f046c2fb8c1a07e3b64cc9705f8b37fc02e072bb06df2d7944fb8964064c4f8c460fcb33f3a1b9755d4f3d0113590f739fe65a4b6b94de259a9979a6c846bcaa554160eb4c730d4763f5e62ac7861d7a21058f9ac4c99059c8c2ed0228a1704072db854841ba4e9630cac3444fba600d87f4b66fe41aed5e10096aee48d3f033d03f196e4fab1270d69c1c5a3b5dcbf2cb44217705b94c7849368d25f0f05502c922500356fe331c321e63522da9e2785f1008a6f55016b0f83fa2a04829d23aa4550eafb99b0192b8aaad3fb93e5eb1cb37d22a5a4562f4e79281bd9507fe9606cd23a0b80e462e761575429ffcf94de5bcacd885c884ed9a9d61dcbdeba94ff0ce867bd4eb457dc0c8f9fb668fff5ee0678cd6304c9d107fd3088060f4d295cec3569f0dc4cda05b43efe6e1661046b6f292798c986768f37af01b56e17da3db2b9ce3908f15e5b52ce21bd314ef422511a631e216e289e9c80c34ff719a2bd20512802236ca9edf87863c0fed08aacaf2fa1f5451ddc300b7ff7567590e26e784cbd024c388d8b1a77e70c73972e672c3172eb8788b0201b16b6e5ab1150b95c44e263097ee968ee94047cba90dd91a993093b62e08cb8fc7e782f892b98a0f54589e31d4b3cfd7a99569ce357009248ed839f666c86ef2b05747de186abb1fb5ce0518822c38734f169fbe0a1dd7f096dc6cc45221322dca13dd4c68e80d36e001dd15702021c6baa9622ffa0efeb6dbcee5484460848a5b5226188e4d6f397638e4f19e86a01648033ca692965c0b2cc53f261d4fe63ccc740244a565848336dad8f5c101b3e11abaf8f2623b90af6c47c5822ab6fbd53cf4b35ed9800690160ae495559fd0683beac3c7a0730f0d3038a8016c8f1a9294ffaeec94f395d02236f2348c950cd6e20cb4aacb3571fc6db92ad4dff18ef7140717e30fbfca60faba4f2222a5dd028413fc51ad772e42cd3f6c2575b1fcd3cd30b7cbe133a95968e8c936cc1018672368e946beef45e582dfc437f26664e0e728156cc3993681337cb2cc7d7c69ca875aee3333c08d5aa21fcf37cfdbfb1a847cda38038d7f2bf6287bbdbaf37f0ebda09c4bdc310fb8ffb96ab6764b704b1e994047db4f86b87a5b4cd4620a2c09148e6418daa76c8107555a79be3ad36cc4122b9964d87d871b5b5984982d7cb96bae5d73ae9ee750bb840031e8efc256613bc1077e2aeff38a37ac2378b2b64fb08fd24c0c09d8da0e973cae619aeb290a4555dbebd0a51b724141ead5a9068802dce9bf24d6a15c9de8543b4ee9edd7c4aa059bc8ad6d656e57514f485e81c7942cb8b47c2b0579770bf8f1395f9d909d8cb5b176abc2896efa57210b569e11fca343fb6c05220f54ca16a98eb37df3a9a0646903d0198464759a873e1f443001594dc990436c84ff0cc431ef5f43fd2de37718125653239cd841f5e11ddb06b0b7bb8fc817b7fe6181f46fbb7dcd92df6a7644caac593a27e8c29043283a70c776299ace0559a81d826f73c1ce625fa4cd0653034d294da697f432ff1686cc30e11c8c628b2a12e067282abf87b032d5e9895a50605c01bc13f4b3288657d34a29e7fd7b6c67f469560fd01803173acb31868b1660a194826aaa283e7e0941110b7455c310962767e5b9d76f27ad4e841f10093023343990b1a99cd72e56a695080bd5b2f1fdb3b286ea9170ecd8d8ae8a3fd571df881913a19660f009af3db961301b4dbd19acaa3f89dee1b40aee826df0569eb9ebd3b30017423eca4922659ba8643507c0cd513b0d225c79e71e707fb88cb55ca27296f6b50b79f74b32632e220e891faddba369dc78eb3ebe82f49b4fa0023001156f293635d04cff34f92fddd359cf448fb0b45ff6f873cb82ba89068ee2a1485f4cd75517122de0d50829a8cc7f1a67bf6c8ca2044ddfb746a13b8d83927f0a5452ae84e5f7341b2b81da283c533e9322aab0f1ff4d1e0be28b7ef7c0c0334da3983b33e76197afd89ea2ee938b725ef34ed9a72b1169cbc7c74c9c1caacba3316616e08ebeb83740ebf123702fc4f86bd2b64189c630b822883f748cc9a6f3a2b8e82ff5878a2548aea9e66c73cfb1f2ef5eba4e9933fa2f24cf4549dbd3a1bf89444970b379131957048c8f6bc7864cbed563a72daf393b14b8a83ee8c5e4cf26ec2461d9e7302d1baf9a12fe208c62fabbb37bc2843170426ebc513eef86674e4c92f74ea56780439d0d1e597bde5e4a673c1063d0f4a9305dfd8b24307fbe5d109814371b9598152badcceb8bec002cba08a8c5a41928f10e06748fa19dab041a39f8014ce116e4e73c518a7c1b9e85f8e957379a7aa42fc20aea021ca8428c3db37a12dbcfc3405e04a20fc308cb4498992a4a46e8556d778ce4d941979a4a15efa6f01bab4be36f4b324d9edebf2291067f93a30a99b2cbc8744aca41757e9f887449ba95cbba02e989b0a3e96909b212024469f003847daeae4114e68311bd857073279478cc60d64f4fe5aa638ee425ca93e211edfc7e0fbd57fbff09102a1a108cb3e8d34c49b39db1093f8f9603cbd2f5b59f8bd4f914ca393a493c60126404ecd8502795072df4a8b3455ce67695ad309c34533e6098d744a57819a301a9f95614a443fd2a7907bfc889488f8fb6a8a17a4303fe03fd4739582f8ba75c6510a882e66685cef78b292a82b4503eb4a3b578e63c6fa7025dcfe6f2245aa622eb32a75595ab8bd998b96fc50ac4ac8b67cb5fba9db5fa358d6089d8f4e2c1597879f920e3502e71a6e84b4369267b64571d68da862b05e9e73b2bf8afca69cb2e5cb71d6429846fb2bab2ba21d26db09513f7395007eb152f81e09b545a14c44eb186fb3da1f296e01dc4d6daa532749a475cf6d526c06ef24caa49309bc9b580a4a7eff8f83c84ef4a179f292fe42c39973bf972036d993d8dee9d9f93bbfb8c382123a64eb1db387d4b94cc640b4bc8f59c5b0422b3177c00ebb4205e529a81db83bfe6eabea64a7bccea33498fc25a6792a4413d917106835e0831108752e8470a119cf1dbad2274dbbec112f24782ec168b57af62b205421396a6bf2eeeef07959eb297a83f03209ebcb52dfbc3f600cdd37addf167d8ae130edc3e3691c8b96a7146aa1f16c914ebeae19e141242cd92b930977bdc4da3dc90c20c0d91a907af065f364b6571b7fca5e8404e92c0601da58b6092859420881e15340f9413152ba04bb2de740b256e163260ca99127ffbcbc4a08386dd2897bb59f01cb8ad03cd718a8f0306a105a079fd15acdc99e39aff3f86b8ea6bdeff2bf614a9beea1175de366f8606a6c2cb8520e9c98886b7e1f11221f099661752eb6e88640d634bb8885b9bd196e63a8a8c714b23e88d5f18238a72feb6bd2e7f611a1264058f1976bffcedc0162d0461fbc63cac1630745576d6eda7516b9d63bea2c94b46a82a05f34f9fbe699f3c0313bbfe6ece55ec38f45c74899ad5b722849753a7d4e079fe6323095a4f24e7fd7e6458c63b64543a7213be3c94432b404188acd057b0eb601a2193641a0474a5b04fb3962f1844c5bc89ae138681c00f94321c9b114f7e953a57896b0bdead014a87d6a502ea50c0d8b5526a98977f0d3022857ee8aa58358bdc2908dc1eecc2b5c80ea1065b7fad0aca1e3683efa0213ebd55194a00335012e7c1d0281bfbb983fdd217b3db4b6a9b08b7c017265daf6bc86e0f4af3004a32f114a3eac9b1a6c9d95cb8b6960ba83275ddf1d415ab835fed65a496c057f13e2694ed828f76400ae251f7b5cd6b5d5dd4715b4f96c9dfa453f5256c7284ec4d7cd1c2ee9cd7e867d6ae3c4787d92edc0a0a91fc42638f88c8ea188ab76bc149bbc83afef53ab0616a211dd1aea1ec306da3cb191adb46ee7b9435d8ced1f5fbe4ddf6e6de670368232005ec4c01f08262f6f2097e07db4df12cbb0fe808641ec956bf5ba37a40f80117058ea58c3f11f004f75eed2ffab6ff45526353c2114b3435bb52037c85753a4daf75669c632427cf08ba43c1e3d267fb2cdcf0e6a4f343c89df365c7d43def16c1fab35f3c91c4d900add1e0da71387f66de637013a8bc070c6bc24a8f55bb913eab83791a0974ae6be51e4e337867d64340d28c16bc574bcc45efcdd80688f6eea99008e726831ce791690215cd7111cd715d7f72bcd049cfb9830e01114a8e8ce710fa2b6438747aacf411635797d362966d0604e7ebfa3d3fac4827ad9b84b0e407cb278f13bd5fa76ba93955bfa924bfaddbb77538a50b9ea0478b79afccbfaa9ecf1bceeea627f82ea6de6404aee9f9c70cc8db01ad78969c5c10f9973b85f053562dfbc56ea337427027c5a33a3936b2b8e52982d896a4f06e34f2158356d08b417510889b59aa0141d335351c01e37784508a7ab05f3bbb01c4e4e23718b36cad76931d3863849da5e9ad0b515fd61bdc00d40b803b56bd3af6e4217e4f684bc077ba7986d0bccadd461d51f4f488d0314a8605382428c844d7689336a5d768fd1005c37dd9eb2fee9f856956d5a57166a67da03da5da09c9c79332dca9dd426b7c3e8e8342335ff3dc6192ea0580c4827f9d3bab62918d4da3f2004d941188b7b4d673a600c5294c0047ba757e856d3d4346c626c02f39d0008db9de75b4e4e34650e991e93c08245f53521250a961a1653683d54e62e76d3d085c3d728f1d0e567fae127f8bd05c0764a341392ba10c7f8598f470fad9ba00526c9cd1b1687c35303c4ff1a6ba1375228df92f0e440736e086fa56a7afe129da981dc9774bac0d5bae08f9055f04fc884e7c24583f5a9ef6dae18c1958564124992dc9e968720a662d26647bef5963b35d94b6e5a3bed5021932b2e3fc9f5570e9dab812d60de57af844c6813ac2b3aec205e8ce0b63cc82ebe8055d8b48d696b51b3e41c5318b2382e1b3b1f8b00bcd2f16a06f8e0ab43b5323e03e7aac63148b94ccdf69cc43d1e58d97700f26dc4f503dfa5bc24d521c23adda98cf0a75d2e7a1841a239117787077ca43564d907501651311c549f9bfb4071c13fab9029da9652d5a2f7610c4e15bbd2fcf1fbf85864494304de67227775218f42faeefa67c8c0a081f7dc9a144775bc0e8f9d0c9b33717e6335ae4500034e61743a3fdcff595fd8f883c087adddf7b03adcd04ad6d864acf47cc14e28caac2edc074f99075c78ae0322610e008f4c8f12a0f71397d6e470ba97a9f9ef7cf642a831cb5df96dc2e898b49fefe06c3f1cd0f0070ccd7b782879b59a12b8087576d00eb58b9fa0ec0d1742867af05ec285371c7b2c1db7fa07d6f26291d7c8437678f24c1347ca97958c484f1320d0fe9e203bc3c928058d59d6e502673a4e92aaaa01b391e5734a411be17765578b354b62120d34baf91cfcc909d755f14478a3f0e65d8b3e599cf254035d11786e9c9cd007b0f7cd28d32621830b2ba77814c1dde1fe31d312fa3f4ba415dbb2f372eccdeba86272751ee3494a5025e8b343e7ebcb0ffa0d6f3c63b00d590c78a3b22685ef3173e1fe3ffb82cc30339b95dd0e2f0217881b4bd084e9dcf5de731913f3d663ac7b48c771511e3cf4fa24919484bf3ee04e79beb0b24d2b621b0241698022e42b34a69902e00a2f35d988af8a2cf921c2b9466196a34f2d5121e8693f7165b5c484722d9c02e659ce10605d31893c1925bb48a542f5e17ce8972ad0680b7638c9ec813497c98c9f10707852b1b9248a2d1fbce82d79c2a003cc7cde0ba3bea98f89a240d6d975d2f25333529aaf11aee91f0b5b199106f61797bab7de8c3977dd6fb48d5af4e859d270100232c8ce1bfe6b6c3cb7dd1bcf52631630162e341b34eab282740f13905f42b7231da4a359ed1968aba7b9879ebd81c073888a567993d88294a51d59dbf8c77697500c42fdf3e56632e97c2614103f8c8c17c523726736fe765f01a82e97d1b604aa293f48f8ae4f54df9de3c84dc1faea19af39b4b58d1fd178ac62c4b1320901f3e2d5907a2caefe8c8fd464244de257bf6b7abd7f8ab8e4ae9ef649169d5478601b5beeb4cb9b010c6ce73c42117fdc6f746f64be8a7fdb5b9294e701b3e9d79ca1aa575636c2967cbda4b24a0fa1c349a903979f776efed9d0cbfb32e89343fc2c4f3a2b3333bb7cfccab3f827db74671f4f42" - ] - ], - "public_share": "d8d378e4d40165ec7f95a7c4a538c1cb9f776efed9d0cbfb32e89343fc2c4f3ab9fe182d4f1d105d48f206254064500e2b3333bb7cfccab3f827db74671f4f42", - "rand": "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f" - }, - { - "input_shares": [ - "3936ef72478a208460a10552f8acbb4bd00477bce97b99b5cbfcf8a91f60195b08482153293c3a8a96ccac3468243afb9d0be62818287a7e054de93542d95a210562502849a4d7af989b825403b19b0cf1d5db7824cfa7c1dc4a0bf5e2ff606b75e0fd84de5cc749afd9fe6cc857a17764b5ad3e698c02c90ed5833f72de25f97eceb8087bc8b5d1bf149bd4c4fcae19d4d2d868cd0e94f2d7a994bc6d9a9bd971c6cd0c169e260325a5759cfdc742c12a1c6403ed64c6b8cf85d817839f893eda559cf5f8e0e1c71b22f2481e07db4ec2de036b739bd60865e05c37261e16e1deec5ec605a0c8c893be04a53ab9936d426d68b8a2a23034b6a1d29b9055bc291ec53a1dd1c612623e1458714e2b4b78422aaf9d6a0e566dc98357620e8f6ad3cd02d874bd683418db2b88573feb4f841119206c3e1e7a3c4c7bfd60380e29f64644052e4998066a005ed95a9d87a2b7202ea22e18ac8068c77d5e5af81a9923bdd73559abe107f2bb9d1214db56a96ef1ee007882b302719e60490a4002b93c6ec7a98d4f695ec69bb0abf6473cdc99629299a3d94412cff9a185241f04d1b99ac97a1f5d61631dad679b295384860f0c8f8552da65eefb0c58df5e0608b89ac6f81606764d86320c4578c40ddb06c743d96d5b8f09313cae8550832caa47bafc478e4a009b8dd6f0da7d7740a0819bc50c17501a2bea0a4177b42818c73024eb8757c5d9808eadf68f01a126bf1abe3b2a1a3b22022e8ad84823587747a01494f30cc5576557c236db583b29fb480567c320feb1ecf2776ea69b5633b0e2aca81b911de34abfe401a3c332d8fe1b1d8b3513551e11c3b58badb1bd0c16dc80d21dd19098a1c730913999e05be450b534a9e9f90cbac29e36eccfda15c38e35d83c7558da44169cb9281d9cee1773517e3665565a3c9309e26097fd72694370c4187529c9eecfad7ea8ba4edd783e73ccf107269ea7a0393a6220aa510d7969ed9f4f224e905202d3decfb4e5d245639f4caf3f7122bb09f24f4372de5cd1f777d15fe50614a3d38ed46c9e89b003e484fca5a190e85cb939865a77a641fc19af3522f092e698fceabca95405018a109a2e8fb4072bdd87aa79b5c9f9fd7c6463d086193758a4ff147e107e17a61e6eccb0aaa99cb94a832a8a5a1cfca10adec2c91994160f460c40a15e009c83f4589fe43e4ece5d96c6234555090b26ae8c192295ffa69580a8451e73d92dd7cb548b5e252de1998d6326a7d382c3bd6f69fc4a7f54892a22e703d18b13d0176840dc28cb84739611e96fc24b82899a47b2857ba6f15fce17ce06af84c3e3c6e85c122b87403ce066cff3931b8a67e12c7b2c077b5930e0a74cc1f6689685be11ef099deee9ab2e4e1bfc09ad2a3e65784c4c5a1936420b811347b336af3268d157c04e9d2e65fcf1ebeb58a04718b40f31fa2eec98908dc55d72dec498c44ee13fd3d9eb8edaf1d14eed0f8412c145e76d71605aa9227ad28f6399c1454ebba65b0e94a1dba4b447d453bd4ae30857653d87d1af5bc0fbc7dc5723214e765bcc9d1ba110581c3025035ef2b6b6cbac3bedb15ad2d752c624c02718366c61f0c7f268868fc13438d121ffd7b800065ec676d128feeb5f3c1f220224e43e3d259b6010bdf264ccaa0f97097b1eb087442aced71132aa662e5300615efd3e61d475212ae36ab3b440f05a7e25bcf36781a3d3d93dfd88aff8d5226cf067fe6ce9da0a7bef15c366317d23b9a00d717b1bb4ed8acd071bc47e833a4f7b8b0495db9e3fe61a06c0be49f8edd427df8ddd1f7fa9b4d8a46312d204557f150b71545b5f89afcf5d88c41cf69d7564b567bd769b46748a085c4a589d50685c34d326c365ed5d7e33c462e71d6eee59bff0ede8ef156c5a42739b10a8ddb75e6d96fd716fcf3e4207a4272b9987ddb7d1e90c0297cc0e4ccb01e268dd3037233820a05e8d9011385ded6a888b3a9a787dddd9d788003395643f6178d5d8c68fe9a8cb361be9a47e83bf47b2b13d3a7170021dbcc04a112c2caffa69873a5beef2388df9e0adc57cb5d76302c91c00bb1d78d688dace13f15f91ef9fb729ec1e799054d4849f59297e11491517ba981e02ce85f8263733a9f826249842cb03a47470bec34f2320a7b5af55e770ddddbc48b08f3469817d18704292ce8d05f99b5522e4f1add50e3bd7b990a0e58c076a52475dcf53521ebbeb5e36ef7497772bf7b87ff7f5ea82002b6783bbb6b9fec42b016cff9d4c70c253e809c600c78954dafa65d8acb0c689283a56c14a196cf49b54e1e08fc91d2657e4c066915e9147854b14cd989c62aea44f2a0b33d416a5c026f657c82aed9a4d874db68e5a73d8d7efff67d6b16e223f738ffa32638316666b88cc12cd043a1f2da17a87c34990d2f9e40809b8a0f2e07ae8ee2fe0536a0674f6b03ca1d558fd9e43e6522337646ebb7279a741f599e7f0a14eb26d63a3fa9d97a5ccb9aa01c780f9157c9ff5f7c150d145d05f66fba3e1fa9afa12a4d94bcb95016b8873fd5c0a05639027167bdf1e47af715a0873d2b70cfaa7fc7141bb41abcaeadae26c5e18ebf09a8503b3434ebf173f7273a10bee856e5b41878621699cef2c6cfb14a41f42b8f6b259888a85d42aaa138ffd948e2c4eede87767139284c31c69172b240dbab0e8640402f596a2c482cda3bb6706aaf18cac30e6e1922a7053360e10d4eda7ac6fdf3d4cef6d74bc3a3b3742c7fbbbb8d8bcaad50636573ac67339a1a562796833a795b9e6a97edd308e585f04d5cc4f95437ae993af2d26c0934c236d6671e6570c6d2802c494ddb95e92d747f84121ecff4f64891a3f7d71ff0fd47ab798ee2b2ad6f83bac0ab474cfbcc550a899f15dd3066506ce1ee3d46381a35b51333906fb20186e646a8880322311a50064094f0212bc3391577e2decb710d556081351d2d90891b2f3482cbbb2374a71a970664621e1cfbca4fa87d981f7a33698921271b0b62890b3ddda06a5deade800c5d6f268d916190e56a150cb46240f82fd7175e7df933a14fa367f0c80eea00963a62fb67de4fcb6f2dd1a8c99f72458997f6b0a73dea689f736aaf16c09276b71275c8fd097f792fa8808020ab98f04a921e39100f20c7ba9596fb0c64a85f9452ceb343404ce493a8c49c6677f3ae33a0d03df1a4e980289d2f537c2dff5387948761016240a31deb446b8a32d82f8200f1b6ae7719d5c840f8c67a240c0c1b0937818ff806ab5b89fb27c2516446929f4de7c034e441b6a2f2fee28d13410244d8320c54962463c8679006691f0be93af33c066dac6ff99cfbe7dafeae71414d10516e1b0fc1b18059b21f540a83a7575c39c1c5ecdc69b5ad73ad1a8ac136dcc48d9f3e58cfd3863f10421500fbeb79739bc1795cf4864ff6c5c7c05b5256858e74a416b8adff14a878bc76e2c113f2909871dbebf1723d6e66e688a19a04e82fe8c0f21a6cae3fcc029ef385a382b5366d14edddfdef0593b42a1f50f2bb9356f764f6b382b2511fe0fc60b0873d3dccc762d2a324b12ca4ba2774e25a26b317f7f254690451ed9857563176e5ddd62855547ce5c01bbdb54845799245ca6b19f2b8b1573b1fa3eb41fcf1d4d5736a73d0ea585cc2124c0b1952d1837913364bf746638509cadd433129bc80dc93a1f30049d22acf066c1248cabc3f2e45e94d2328226c9af79b5f66259e9f15d91be00cc9b8aa3b64a443b6f6a4a5649838a1c01535aa5b8aeee7f772c4bac5c7c1340e2b5e156a666f983dddc5cb4a9568661a11c20f7f04f105d5577c379b42a051b80a97c8d1822eb4af5d4e550b66214784c205cb65eef40127daddd9b0534e61533e52856f9c27f9a8dc0eb5850bfdd46fdd04febb0c2c6c3153ffe2aa2d4348355af665efb71ed192ed35ad0c568354b1279749cfdda99e5fd300d164d69494a2bd75530d8fbde4c19cdcd66aec07eedb4082b8879aa188346a5075f7e731c349d3341847f321d6f5197e2a42497dd5a9af97c1788fcf501c3c400f5e7c8c4d04410270ca7655641953766242c36aacaadc9037119afc7363232738906916748e5c333d820b925d95cbb4f10a0ef60c478c6c9df08e2429232b7b5c9b95ceddbdb6349009682fc1502fa6f6c3ca1919aacf100b1b4ccf58944b4bd8d55b67db7dd4696eff495a6f4008109c1da5b1db72dd9112c1c2e339fe2e4b957b519d06238ae23c4f4c6ba3d2a055aca3d8eef963d526ef716434bb3056245c7e2337ade86633a7f0fd7944086f5a00d106422992b646f261de602d5879cfefd9379ac5140b09989962dab4cb8b61b97f9d222cfce532aaca0e270b38b2d80501901cb0f2c2e068cb146f775e8d4d9186a4b8aaa882aa83b2e63ae20c646e728c1f80871c265ed152a81453a189536685161f0233980e5aee86c3d1fb627bbccd443a0e2ed5ee72e0f2824f22f6d9b14e36191d1aaa2103e5286800222c17757717370922b9f89b554786cd92e84b50d8f614c4a6a266219979ed73c890f118376a9ef3dad28e858ebcfc0dde43c606ad31c357d81477206def935310ac1f75b421997c4a55680b8a9ec76cab08600a65d1c67f32aa470684e3684f703d2f7088bb67f6701c048f5826a7814acd41c023a9f55e9c01529cd8a746a435453f69c549373c423213247b44ae0ac9bafe09324af21149066bfb7ef8c280d9482090277534586da989fd7243d765b271365922848515ae800f197e8e4a68f4556b1bb2a8b02e48fd0d0a87e83c3bc031b4f5e83039c869ed212c68cc33b994d0dbf346b5e4bb9ac7dbbe2c27aa5b97d48ec48973a9e0bf5a071aaf5a02609c146aac830edb3ee877e4a3bf50c29313cdeaed96dd898a9f4d201a60631e2dbdeba087942b818ad4abddef5e9054f10cbba0ac70ca356122e2cb5f827a46d8c597dbad1172e227c9aa8236fb4f7797a346483f291ce31e7312803c88e827992ad8701abbf256119349ede4b868b4312d67d3d70998a53f92c61cd7c4e0777a8725b2ccc0281a09acfc2d9e646116d5d1d02499339268cd9ae59fb0f9777d6eb8684d9282f00ac2cfc34927961cbdb8186a98d83d0accb9859f35060c2bce83300fbea83ad17831adbe113e7ef6a86a956149bb73d2af02721cd3107f081ca03060f719f8dd7dd7670aff412c756e86b85005808337e6f295d268589a3e4944f5a5088771914852f805bb0190db3b40d04d84f44ee7abdb4633f3dbc258095ac0fccd9f050b7869822eb3b92f0a73041ea577a97ba8e1a9dc4a92862d4f599467e8f95ce3334f12e92ab7cdef1402abb579dbe829adb143fac5800fadc7f7dcc8c23c02c2649b7e754a9448a1b6f72d2cd526394463adf30d0dd4c5640e24b21bb52e97254e96d283e5ee44e86fd520f2d78c4b85d50be887ba27b30da683769c55dd743cf37faf5e4cb02329d7c105d6673eb11e476032d6ba9df0cb1b1ad2a8d75befcea3cd16fa50887c31e19007e7fb330af7ac42039b094c7cc0202b332328c14bccd1d7aaa0b0c0aa92e82d438793d7a0a374bb3f37b1448d4e24234f3bdd1bfc9d735a8482c60e3442644df842f84403baaa3c96d1057dc7a66cfaf56d83780a3b4d47b1658f482557ef0deb0ba2022234229ffb5b59d16a44ea8f7ed1fa7f170e1523f693cc32189ea7e7373921778b133ab3630b3157e63429cc1718792fe7c48aac6a6f6f54f2a90e8939f017594d4e963105408825e726b1cdff77e3e2643623b14c4482b78b89d6b49a99cfaa3aca4b58a01da7617f2d280a81ade2b538f3958f19a43b1a62f7140b585a75f2ca45d2b0bc60558dc54e8a7563115ace8969d24dce2ee3c31f3d43d03e63d0d2e7e61e7c6dfe464fed31ed1fc17897588bd744d38e0be9d367f718dadbbd6f4e4d3a29cba001d7edaba0fa799dc2b861a96aa580e70578217667b88353bb5c00f25fef58fc275ba307671e0afa1730e1d8643175ff40f6f3a85a354260857b87ad6280084d2395fc59067cbedf88ff1dbdfb348e9c011a3718386bc3a9fb9d515dc9d9cba761203da316296bb42bcbb7c35c49f5683352681de9c97c7ad8b375bfde2bceb38bda15ba4de0909ba0c48271d8d6851b5e4c9c3d4bbfd9ca71bd49e5002c67d76c52560ca22230c9a2aec73775ef27a1868867ce6b56939d4a3697fbd3b8980393a83510b58449e3c6acf27d03a847fa80b1fa10f5d9464b6f2e79c364be84b4d3a657e4e87a5bb027520b621bd11001f07a520089d836226de5e8f00eabdaa98d3a20028d1e1b1f09e9662cd95856f0d2783d0821f2fceb6988f81a9d4398fbf914ad338505f3702fa3f29cfcd352657b996a463919887672f826fa199e33cc69f30d83912a585567ccd27255bf82a51e0a83c0fb107c8258d1479d9eca1e87d6d6d3ec18c6bf29efb71778211406bb74dc4a1845bd637b08034818d0ff7277d0c977558ae43ff38f27b2ca30e9c1faeadd38b332d6b08e28fec4e10423d1636cb4caacf48896addc6beb06059f846648ce0dbfbd162228a9a374e976af516984d9bdbabc4ae10399145704ecdfb25f4523cf25a449029c08ee4b6b9d022d60e6d5376a50d1a7fdd0e1fdbc9e0a047baf4254d48aaa167f17762f1506c334b19dabd02c58f89af5e6d8e27c546a2cad606d25920b7f59ff83e5c2f6321aeb3ddb7c56c281b4088d15b4dbe59aee2a05b7e6347b668d15ab66c4eee0499eb7fbdf55a4e2aacd9c05b47c350b35d08fbaad43d5d2a04b8d8fe7111f04a0d5dc23c03a189ea946ce0c885dce4c5d818e7c41071e006eff220508db6d736d38f8615da49a8e75e2a4ace26ffc6785bf8b453a8d5ed89d2c286fb71505754c1c57e2451d678d132ba1e1908ef9ae17bd2441f88739643ed80b296bc6a62bea5b59a0fc69bfa8e032d08e1c4be9e65569dc3b36e9b9a10019d14d41010ce38c1d2c25e32f7b9eac3f60ddb60691260af6ae2a68c636e08453ac7f83157f21a7d18c95dae6266e6974ec876f99d5df613bf2ad1efad4d993fc1537b1ef387ebc0ca52ed70fed06574a4f45f5b4cc290a11c7662d77e8dc17002d4d6df6bd28f628464d8e5aed302d3747192dec4e4f2e2143522251e7d29179e05adb9c24c9b12b994ebaa16e8155d45ebe763a43159b72ea3d3606fb338c58f5b1b7dc6450126288661902f498ddb8e7d8dffd4ca64624d8a3ff5fd8d2672528d38ae0d17cb560f5c764159f2f9a4f3cdece5ce8a78d51c5afff16b0ddb43e7f28058bf10b4106534e61c53e5435571727657e03294e77e88716dfbb91c8c16d90a1e4df221083b871b4734c03d0a2d15402a3b6facb64717596afcbd469eb5eaf19e3b46e3214f5cf43ad5172c33ded7a948676ce85cb5668412eb8367fa2a04634fe40a061e80b08f9b810e30d7a9aff866f2e42566b6c0440e8665f3437a6fa90856da6fc4cf090f262f2d7663f91dc3a8aa520359b74736fe236ceeb046629cac06b8545bee12ef6c3f8547e292d78f7a9c186d7be0ae776b319ac3eaad8064c2f5e5ca1d2de508e7f0becb8a5b968e09b3acd8887ca860223090837e8b75b3d866a71af57f28bb5f9144e23c868c039d9f2bc031976ce77e5f778f910e93ceec7f44fe128afb5c38fa6bcf0414eb6d803572269eaa4b8a77a3178c39fe3d06005ca2d91d4e8a60d02401ad83626bacccd2f04fe0fe031d6662751a31d41169a1ce7f0925ad400c70a6d515cdc6e1873c01e507ded180af9211071ba73398da8698840a88d8efba84e0e81b32f8d69dab4a560e12ec82c48288111e0f5870cd1ffe65a1aa3afa613012e09a0e65a457ed0c0d906a8f9ad4bd499cf8c9072fc59a8b159c4003717f9c89b8aa7df10854f2fce165508a7977fec32a13c7193c7e7dfcf9aad466415503f7f240b6fdb7ebf7de037c4a2173b5cfe31904fc2971b6e2d67f16c714ab206b50b975590bd1076a8f45c29ec1d4640611e5d410099bb08a8a0db9ebe2ccdd37642e6068bb71e9ebe397689f9115403a6ba4d3721ecd08cc0ea8b21b898870838a4682f3b6d0d6226c1afee9ff6d960c6ca0a41a86ab7deb5efb86bd5bf3fa98b5a5818feab0b13eec5ca965836d1dad0e315d96b133708f79cd3f57e85187c247399da51ba812a6f08388bcc4436f93b5c4a5b9d7eb240280d47320f8c57b90f7aa9c7b6ec88c3985f2a27b365afacc1de6394f7c82339a29f2d64e86681182fc23807fa8341dc54694b73afe7244297f0bb1c582775ccaa11e555eae48355fc490e2f813cf15006aea4ae67af14a4636888a7f8be0ad4127ef9b2583b238cf5f5eca4a8776adfc8b426d4f26e8eda622c494138b881ac6dfdb32876bf8d6394e89ab7f61d917c6cdc381de501bf258ba1cd677bc79e0bc8c76b1fecc918f66ff3de339fb6c650ff8294ce943077e870fc151290de1b31969d9338aa1f72ed22493bc0f229e051b4c5918d3617998c6255565851bde5bbcc3020feb751361da92aace7e2acc7425f61a778322dce2605c9a047f5e911f2b197d9113f76b8adf28b9dca5958568b58dc36b95b51af4fd1cd042bf3ff68ef46862bd8e5003078e51bb25a1379b32ae863dfa5d91bd0565f132d72f5cd9a13d3403bdac55ee41a264ea16d5d1f2f502723a367f9e15324f225195e6df700b6c93ebc82010a32a753edefc2dbf904d98f638addbeb84a2c809f190ff3ceea0723bfe3cbc582657d3233dda2d544c3eb897c79bdd7c52008a0e51fb3342579e7874cb0d88f318ec0834b97b4187fffb7a1574e0a29fcef393c1b61e66dbe9f72dbfcf3bd0d98b0d2f3f580c281c1a30208261a085b2c0ce043870604ece6d066f4d2c7ac689e696e647058c2a1ebeebbae50db10eb816f16e625ec69dae3cec371f42e0dd73043aa85a2f68304ee6237f468b6571dbc9bc1147e675f93aa4f63e945506f46d579bef1f2bbb9f6f25291c4d77c91858767ab5bca4ef2bcb63d96f7e83c4e0f94c1287f972041d05205e18294e7d70fea7869c9b06cee744d650d09c35679baa50d305408a8db53671c1d22b10743bc66d56c7629f44e39e41dc6c4e271f1a3d4c27b10c617b80f18579f80f0691263fd6b8cc7560af19b6432cf6f784dcccfb4f28a5f4b9bfcfb2f1f9785dca0dc8067c5ce7faf148a3d468aef4e961779dd65e54034d118283453825ae744b5b7004f431294657cb306c43c6377f858b5a7693eed5b138f8976936bab73863a90b0270c61593e09aff7015cc371d5f70f4ce792a07cea63697651fa39ea7d7de711027674c6e652514fdae88b2ba306a5d81052315bac587bc80ae093ec016000ac57df65ce686d8d2295a3812b0f3e30ecc4b6e9ac2444bba14ec91e75a4a851799dd3e6d29c16ad1ee2bf11bb22cc47d49f0b06685beb8ad6ec368eb354c516a39f7cc8194d522b39d233b65996bf422d848ae04daa16836a52df8ad5161ac999a149b06b3f9b1b27be77b2a13762ce8b0501bb988ca82299c1d8d448d9acf664e706981ac1a214c369d12381ed5352af5127509d75f29c8f138ffcd75f4140e1382d7d23a8dcda547dfdf324dc66d60898571b4fffe5b5cb55289ad68f355ca0bf85c596262a95039af939fa9438907e02fa987084da43f4bdcb9105f1674e7656c5a7f025b0b69123e706f53e7c541dadbe6caa7a9198be64ac4b8cd96140facd8f8d4bbddd5e17520bee3dc324888a784578539a89128f3af546ed034be638b33b36bd199a7aea205c62079e6cf524be216d17dfd8b66b4b36de4fa06af2058bb1b416d7ce13f92fa3663957242773b376770c093ffc9eace506e3adb6d2ed1bb7ef78208773e11ffd0d14a3ffcb8f0cdaab48f59b96ab30084ccf21a2207c93aec89789dd0f75e90bf0a2e9ac2cfcac8e5fe18b2100dc119e53e34fd8bb4e184b84fe5cc56b745d0e7dc6480f2d9793e86a58c91a773160863b136e89c22c009e5d61ed0b08f4e568546dd083d314da7dd5de35286da5838bcb2c49457cc962efd1241f5d5781f451c9c1512da4ba638abf7f9067247f4773f465548d4015ec3ff72f467de7b1ddad2ac74b78d56bfce5e0c550a54e1357bcf43c2cd7d1ee701a20584d29c6499fae965310ea3caee1a31ab9fb4dcf4496e99e638c2609b9ca72604765d9ce99ef38283dcaa78dbc362aed327aa6046731e76c7997e675777a5f62200c6e9ef17b9817867025d08bec2d215c70933f07e8cc476410c204202141c801e6d083ee573d61aabecd5aca9a38e60d4d8760943aabefa8d63bd1d35402e81f0d260f8ed9f8a78289b511a0092d68005ecfd87ee7155604a2dcf269a45e946ec37952c14cdebe3f71c29b7e3275d9607151f3ef14ec9c03f13d8f9b870c7f2676ce7d46a60d66b2fc3caf7cbf1562b9ec78671d5fa0a939a6c6b8e316d897d9e15441027bda7f17b92fbed06176da32c75541d366a497c4d83879654c518408bf4cdeeee03d0fc7232a98310a75370da9056c22c5b98de826c9b254afc30567aaac73d243241040ec0f3f887ca78b3469a4f6fb5ac7d9d0b588a88a5699c6fcd66b71c42212ab15e0e1cfdfbf99b4f624da370ec294a557ae58fe4fb9f5f02036a232c3e050594ad5e2625e0c1bcd522b32b5e4036eb942659bc5edc2a9904f17be55357066b75742b359c2e79c30e1e073f67b1b052cf05c0ad72f853bea44122899ae9dc80d349e38bfc1f78be08ed717577a749eea91f14f1075d4d79203783bcb84fc5cb15ef1b5f004179647b63346b2cd66b8ea366f682d187dff14ca473174af7b7ea1b011f03242f304fabb6f770a462f34ac6df3f77453fa692e80273d3874e0694ac73b0cc03c938a1e690fddf0ab07bf76c651ee5b73abd75fe1b1fd42f3f30fde8ec6fb3eb295f6b1634f183fb0a6ddc6ba39c5638c73d806cf15bda34b560295a797ccebbecbf67bdc2a7eccce5fec9aa624f765f2d4a936c627bfcc8f6f538957b6b0e6f32247568a945a3bf4b82e6983200ba9a0aeef4bd1d47f7e56540b1f92a929d92a727d5fe7f6c39a6b5d1a77e97f612e5cffc28ee65182ab2df4119e9527bf3ca27719f3aa0505c3088e4e671e50c26bacc97ef259cd43e3ac44599eb894cda9d388f5df8bd81b44c39ccd4759ade6b2c311d82c5564bf849a1f4e70cc2f0f21978fb4f8da97143c2a500b2c49739f29ca979b9e6a0fa6b544fe768d1b0b9b79f9c4aaca92ac19d07ef79b73a8b7a26829b7495caad7f5c4e92f12176c3e6fa2acde0bdb6d08a8b7358cd5dc1f77a6d49cc0955df022254a8d3c4ef01c39bf7b673f07b66ebdc610080c1d2f7e275365f9e3ff3b958f05aebc79feba98ebfff67b15fa988927fb08b2d5321d9aae7a3dd71ad983b135d71fa47e833ab13da6cbe451771f2afe5ff43e014aedae0f529ff6fb253aa3e9f04e94b02c1cf8ea5bfb5b2a84b05dabc7a92cf80a96b2e0f457275419d007756e2516eb360a888c35e4c0b6e857993ad5af780c749783f36a8ed46cc1fb80de127d052567b78472f17bf5ddbd5641facdbf3e56a7255f47b703410b49ed1a2cc7a353c6e7d5273da79fb5443c9bb203621d92b588994fd2aae16f3e8b338e47da4d1d61ecfbcebfec4961d750f5fb3d5aef03b10b7e249b53801fb6fe87f42466360de2c3a19a4b6e32fc2e7ef91740361e6f3aeddddb0daff1757d683ce65a97750c8a4b619025e546d5511b07905dfd9917f6522731df43888ee04d60c7bd7363ec4a160ce88b0695c3b414213b2abf39653d0d4bd3a29bdcc3d73d08d1666a41718d1f1646633ad4e6ca7712340a00a5bb44a26edfb6f894b20d2ef80469f22b261b25434958d6268ce66ab8fe28c548e6072cccafdaa7f72d6b98eb2aef73d7084e0f0e2c3325d4edcb3f47c719a75339d7d8048a1fc4c7be21aecfa0d4ad8c46aec6bc2309fbdf855873a50a37c1c5db6449f325f6b11d1211475466ab9946a59e3f22a4cad9cafd21af787d2fe1893e7def5f43a8a21e00ef3d5d19007b60c446d893d45c4107da9c1b15cf2467ea0fb50a6e6b3e5fd51faf480eba15f007054c83a8c764e8d8a55ed7f35e4b1986b4106055467de3fe19f4dcefa4b22a1743606f1a6048556adf509ce0b359e5f0fab837de7d548051cc72b732052689ea55fec0ca3f08de7ca805863dfb1dd0f3c55338dd0c5338154d66436b0711ef040b052fdf94958adb562f7a5f55130c060a68578b48eea8dd00c90fc7673ca79cc43ce1ae42eeaf6fef27df3b1e94fb0ab7a278fbde2dcb61d5886657a0262b32f1a266a53c5c928d06becd89a0c47b8488f78874259dc2057657ee2b5d7198a176d8d657a5e04237e5c0313368edf9b3ed07683bad610a5a90596bfb4506df6111bfdc84b589decfffd7e0ae55241a0bc4abf4e7f26b60fcc830e147c409b33544ec57e793c66c5372c97dae34d00cd164c3c56538535ced84795f362e6b420636fd16617c4996ae38c313f53dad37beff49029797d9faf2ee5bcee58d4c236a533d84cdabcf35121ee45ea235f0a9f4de12d41e430193d0b15b7275327cc69389abb5fc9f7bd412883f1039ef5aa3d485dfc7e9fc5613c6ace68ce1a2c223a84a44615ae296dfce03521bb83e9a03f3b117933d9078e32cfb4c83283365473925fa691fb4411b47c10d3bf76e55a26f4038f7185e726741b593d8681c48cb482f29a6a121e76cca5c26b6b5d83305f42141415574ec2b5f5181618a493e82bdd223ac8b13bebc284c9f6f2adcb2dc4edcb74d019dc9a139ef227d7a40369b2031a27fbeed928c3e367d2a3cc958455920d261131931dafcb4ff376f69f05b40ca991719d12619546415651ce869bd6a583f2b0312b128c43bb0fc40eb5e48170534606b8d00328413983dd0ce03a5001711b50403413ba3b65b00951aa6f15d5da78cbc6138a330408c4d37cf795d02fed858c00ffa04f37000bfc18164fa01289b6f594bcb3782b09c83664b84931e4627e69ad171a9acb4fb15d40b90280daf576e9f7a7b8c10cc46a38d34f3fb9ef6682db69bd193dc4ec416d09e0a25c62583742b7bd9854270688249ae251c4a3d8ea6505be9e82bfdf3b2eaa350bb3686f419e65cb1600c74cd872af987d63e6cea4851e1194ad386a5e266e3ad0124ab23614fa2c9d052bc06a881ae1c4c9c27fa4294d8923c4b4d0e37a5f27c5f6efc246fc4b9944488e23398c2bb5fd4c30391faeb1ce944b997f934fbda51b465350f872b8a3ed60cf13e7373e3aaa4b4d9dff1c5691ddca92f8883b566f087ca67e39d724fbb125d45338cd0c5ace877c866827d1097bd18d7f470b78548c984636443362dc8a78bed41f3e42a602388ef5eaa8397774e51998e3c274c9177427b061e74b2347b2a24c28d41c4c11b52c68ded95d1526a4c08b4627dbeb475dbb1e90769584cdf2d815fd5e3951ee5ba098c0345a572ce82caa464d5d1b616a7e8e7da44b9ea02973773aaa7bbbe3cc5b2937b9d3638004fbda2b2fa6911ca96f71bf4485fcccb7588ab6cc3c3846c5f635738e52a377edab43474117b47354159c091e9ff87cd8cfd7fc49b68014bbbac931c4639fc8963bb1acab0f87b96dff66b6db5f90e9d53077940b8bc05c2fd33bb459772abd49bed5a2e28ba5ccdba5bcc7e5d01e5119a25e1dbe5bc361ce0faf69db14ea8b35082ee1a47d7c44457c11cb0cc6699be7dee12866c0854399ebb7d702c071e041775b1f658bd1e32b895369963b453ab09463aa18cc73aa9d7a5d247de42b7e2dbc382e3ffe25bb7eba166aef5ba61a776a39e2e9b72e06dd608da5f3a1933d0443b986ade478842d921f0d49e5e40da872409d544b5ccb37f3f96409c589d99d9e5727b1d251ddf542c9ac9d0a05d4ae8b2569afb60e9b45c1a1b507e124bd13758f428afb646370c449cad3a4cc820f8250eadbad786ca1991692fd43c583beb1c0f8b6d2f27f77e2035a43053ec7765e9ab7fb99f4759464479db2b7d8d3cfaf7695ed127411ac5fc1b29aea99a74518fca3cd2d05575eff40365c60b26d353e1fc6d5dca77e49cca7d5e9806ed249ce9854461cd6d898962a4e2a07bec8ea5a4d7c59482f574d1bec52d9adcf5d5755bf857d9d2f8a762ca1668c880f7904e2713d663147c52cb7fca0ad771533009716cf117f5c339fb88863bb59cf82642d2bff8589d7a743efbb73bd47a00c7f29660b3d2c7e607e28565b6360c24d9592e6a97c114f058b5b9df7ecf221a478b8305dad03aad204dcef75a872c9e67f8c466db687ac596fa88efd48e60a4a69accd086b106bb877098de390e4b3ec92465f5a7a50f7a1fe37e776f5c20bb3bffc22d3eaf4c7658052cf4d0308e0a68d8eeaee37e75ae9ff5dea898a9448d51c84953790d33c9bb0b8a186b604984ad04276c69c1509804585f28c442bca832017a62bcbf0588a6ab5648c0b62b338b23c01ad05ea940c10f45fd0d065c8bc8497fba0bc1f7061fd80c8108cae9e542029e357640308fcacff0221b1d82e001f1481f1967cb3bbb6fc41b12b32b47dc77502c6893ac7ea961a3bf751c087e975aa2220e865a7ce7a502c72725a4e0566410b16f31e11e0d8ca79ba4b6fa080c35eb3c1f07a5ab5522b76a85d24f1febe84e68f1438d128729659d99ed01a50dfc76eaff1106897ea35001efb25643ab6e428cdf0918bbd97bc6b29facf70ee841774e1c711800455a21faa18e972b1569d4005202503c80128e2c0c06fadff40e95a2dc242b13cc6d6d4959da802fffe4191f39aca737f7005c174a18282f9ffc1fbb0e792d6086a4a240582672392928025bec8cb59b586f6ec5bc6cb90915079337e8f01a2bf747a5c074a8021029a6efac40a487dd7dfcd5146ee647a1dc4bc334d0ec6247d6e3cd876ab0d229e8aaa9c260f06d182fbcdd2ffbcb3416065cf15d440747487f157caaa9f6347fd951453213ca35f6c86fad7439d4b091196d2177fa9a821e049181ab7f4dbea2867d78630de94d32308069cc62fc7f7dbf27118cd86fca2471afc41e70eea57e805a40e10bb964873d7e99de555cac07ee4e54a6f018be100da576ed8e4997360045f39a312ade8b1ffbbdecd05628bfb40384754079836790e36a6793d50de31594d095f288d5b59662d3393b1a588f3f38439b6804cbd584265a7806adb0c3a5c9a0f35f7fa2bc4c46b4e4d4e78fa76aa416b926de8d58d2ee71aba32e03ac558470076875729cb0aa3b36539093d44818352fbdad7c66624d0a568dc89525e92bc5a55b7a7d3250228f92b684ba4f3c366c82d3b9ed9641208285d3b808fd73225a306379e7976dce974488c264fc14e5a244396dcc5d45f536bee47ee2aae0f1a098bf0f82d4f8912d86ae326398774d23ca5e3303b8081abb6a608990febe541d4316c6a311faefaf7a92fe5a03906a329f2a648265fbf6f52b430d348c7ea5af83bf70d8da58e3d2e0ea6111fc6ba3509de2dedd6fbf2cd944e3cea85f01edcee77f4294f096da6457ed744dbaf3220f6f36d248a2ba6156b4fb03e4825966a1aa547eab37312e63fda06b46bd68df14e694eadebf93c0127b4eceda331beedfd89ff92dd6033dfd7de8c9d3a444a1013248969ef0912e142287284b893b4d3900d1ab979a55e51f96e53f282cd66c8a3166ac556fa9c1c13e06fec84b2aa61fa5bdf96e4683281574250b8c3e9ac577f4733292a5381f26c7d7d3ac92ca46c0551250e09797df236a74b5806122bbae0aff2db8d08333efce22257fabeff0f46f537feb8a79b46cbfeeff128fe01507febe1e77c1a36163f14d79775cf1235be261469237a1f3569891b40be874fd151a37f3c6f416e4c9707bb5909a0b59edc384311903c54d3a9393a187453b3bd2a117c6e439db3811819a5325a5c74184cb90cb367714ff57fa36c8470404d7196a287ce4e00f968da7d63df4ea05bff5da8eb542bccf820e5e675e4edc3d3869c7117b2f46c27404f19f6a6c789526d018e3a01e3ab60a92cf945f4f9b0f639019040753a18bf795ff4a2f23c796edfb531f498979f94deffb29417bc2086e266c1d10746b64436fd5f693f3987a7cb706160efabc07a28f2b6777659fe2b37f1e9744e68c2d802b42c9811b725c4e68400a137c70647ed53546363ae89526beca9e82acbca85c154ed7caf626d5f406143edca6f9d8c809cd4a88297fdbee6d92f7c80b02d3245d1626a01ae1d3e8701e521215b95764fef11360f2167b6d50aa0c28f595512fa46693617e16a802097092c22c46c698b13622b0a9e1f04f34468707e2c49065d5cff1de113dc3050956d33d10d4bd5a4bfea22b83c295646f0acb5ba18540f050b98044586699e5ce08b5611a1f48a18054b7eb73dc4b878e05fbe762c6e416c011c2b3dfc789f4f23ba849c6b5ed8972f0046223d64798182895333d8b35e334d87b8b3518e4f4575a864870f2e78eb40ed4f8ffa94e5a63d67dfcfafb43ffc4ccf34ed819b8507adb11a2bb87157101386b732d0a1ff699156fe6b0aafd3be8768ca583aa001aa930b09444759b55b6a0f3aa67a2f58a1604e71727aef96e1f0ada05ba6d7dc7811807964de5b13fb8d91efb87b5fb79883083b7d3712dbb5a4c3a0e68668fd9063699acb018cb3735742a896f028a44a4e4d103b34a6177c122652f626faeb046dfde5b8b197afe5cc9a4c991c20625fbc6422d1bbadf6222e300b774a7df34435f4316b7e2642b1ce2617cc4e4671c716122ac3e4bd0076439c156f72378b137ac3bb82a0bfe5305972d4f03bec8daaf0e75288e0138b3ac516067162959b534c44d213dbf549714f8ab5149cc24472728dcccf790f7a8e175295a34850476a9ba42e43bd629ac5ac462f1e3818cdc961e8574ff015a66e4dde83b3530ed5901e4f6c72060e6ec72c3af5cb19aae57f7e972c3a4d5bcc19ef945381bcf8a0411cd1be0f455fdfd5fa6cd43b7dfaaf4c5e0e3252e5664ff7aa6106b371ebb35183d497308e3dd0c2a59035af07e133617d479b806e7ff8140d8280f0254e8c744d86ad581e2c0861b9a57a9528e69b320adce4fa8b06537e486a7dab7bf476534502f610a102ab400aed6bf2e09b2a04a4c63f4e5990cd7b27db36ce77abf2e7866b816b4f836b34c4944511f7105daa1d91b30037f69cddbbdfec3da18eeb50501b365be074e4cd9137f31c93f0c895ec3f4033c8df22f94081925aeeb73a3c3b9fd0cacba5b24e7eb81a171393cc88a1a3a712d7bbe329997d0037090af15a5e7b0abae49bbeb2ca370bdc5a9515501567f60ea2868a9f9486d094e897544cef2f49f0c09b06ef5b1f761d6a64310d9c621c28f1d4c66d0597dab1af7b75985c515b5c54a209130c96042ed1a19bdcf212f5cba3c7c1477f8ca82f88a0f7462b9277f87f8ae3aecb4b6201b968612900ec21a9c45ada8d00782ebffe5c089471230079df5b0c2570429b6882dc0ca259fbad070fbf44a96a154a21d0450d414551ef9609b9e9a914af926a2bc0cd2c078e63b1b23427a4ada6d0f902cc272614d26c81b4a5d9f89902be25ef9055c9d87e27dca9f3ea64462214a596e0c0796c83049ee9f9700ae6f7f3a20a150de5f262caf51d71fcf6e7df3c4a07ad33298c94c9acc430df554883618507a4e37c8db752f34c94411e0e3f9b092b8a1dcd22e4990349658431e4c3a1c0a26158aa8cd8fa3aaf9931e928b32238699fe2a82e10b96cff2da1ae8f22b60aeed2aaff445a83511e15f8c4998e86907ad065a145dc1400391145732154ff5b93975d6c8f344851ba447fdb9f45b33def413c27d52365d58919d974df5889b877540e7de60980c999ea89bdf57924c938aa783fd381282b445f028f41a9df9340002430708671252a4ea180679b74c760ba244435aeb94cfef4f02b3236eabd5163bd2a72cb2b21adf466c78e33ec71c02f62b2c922e0af9bebeddeb4c802db18d27630f7cb63fa9345e7a7020a1066ccd6af6631abc54aa5e58c7e8c5f35995f1a65f1493abc9da70ddb26965694619a6d3953f079d6517d28a856a8756364f569b7c46cf72c3b5aa831d1c869e44d907a2b6797414f99aefd32e2e859216408685351fe4f9d03b4e933c54f6a39155e843c113900c7840bf45ea31972f3040b49c97ff74ff612e6f7e479e36599fcace93afcb86c41a341b143533f75824dd98ae33ac4db1ff661de7c788d6c0ee0b70354061eef8e17ef00348aadd751f550b0aca639a8fa794f30711cf2fcfee68f78f19a2d665c740929254fd01cac84bf5c409d25595608f92e5f185a715a7883991c648bee595548656c82c4712b0d07ec55b99fb527f8a2820bf6d3b4c7189d222d44ead686a5646feabede098d452e856c60c1aa26c9e914a2082c5ef1d9236cb2a7896dfd9002570387f912cebd66e15bc644115764e15d007c0977ebbf4d447e0accad273d6657c45456e83c05566f996e50cbc406ed257ad013d2ed93767df18445ef8226ec0189d07975a9dffc2d48d1cb9357228749b395475d391b5d2d9870a96477f518bec087aa24a5d8b5ec676292db0d12c3dadabbfb6987add464e2e453ecc178a0cd8b27efcf0e6592045e2353c0a7e750d0cec4a2eda44b54cd04f0d60566153bead1045deda8b3bf9717a1ec29a635e864432182cd585b1d73733a6ed2e4ff43b16dbb391bd337f81fa59063cec8382a0aa65fc770ed338fd7d828ee11145f23ddc8ec97fe9cc54c296d305f79c5d3c75db6c6212baaab784e2eac56654bff0b26ae1170529470216d4d3bc5e4dc580a77e904ed520b0b344a19e176a7c17ba3eb8759e6fa7e53e6b99e586b389a10b48046b217770710053dbece38570837f9afa7b0f121f286609389871add45c1e5e57c377c6f05c1e76795b3c6c2b5527e948bd09f46788111a927594c67cbb157bb6a3cbef1678e85478e10d42ea7d8e75004f6dcbc9e7fd0ecd6f8a470dad17f1321b04f66ea801e13cf7fbe6b70ff89255eca5579cf8714ba8f9ea703aa152846f0e28655f7976db7e03041eeb0c0f5888852ea67bc97178419f81c10dc7b1d411dfe1071cb6f5d42a735d67df4fa64e523dc8a964e583349b61e49cd46e6285a9ef819a73ae8e91d0e0375fe68292c3f1845352142adb36ce346107c1d8520d3d9edabcbe8a94230c7b658384f125aff428434a84fd1c6c2de5d1e03889cb17b1286f5d5ca6e96e69b6bda3b686e3d96568b433e807c6a0605db081917f10b3cd5815286b799802037a3aafa60599f01fa7f5fcb3bd147a3f0692606ad7b1440f5975de6f50e5b39fa5a6665db3d1ead5b1221a699983b78dfbcf1429b3b76244e578495f2cc0f38185c36b8498a56c40948ff0777bd3fd0c5011102770c3fc1ead2152142953076a9b9767c6e4e23c06f0e98cf7ebe4a2fd2e461afc9306b6688590095900637717943fd5b9dbc500d7c5b5e410b24f27e7fdb17cd9880b7b726a310124c99ebe46ff71de29457900ae812d04a80e2dcac24be2de0ed863b896983b6c905bb80d70c581b8d548c5f8d561242261623902cfd6a6c5d424572f6bd4350996169b46387ba49e4d9c4f80e6fa9f48ef9bd593b6dfadf7637a7ca47edabf72c786d58d4c48882e2ca87575664a2b71b12af3e4cc78cce4b43ee6421fe8a6bc930755a8929243887014a8e17ca52edfc1af9c50baa1b8384bb0069db25e8f817364cb292ea13360084dfe2dc0aa74b3375ab449a049101371a391a76546c96b63907f9b4bf2c373fba690e9687f6d7f289267fede0ca9aa6befb5e8789041654cc6d76f05dca459619a3abcfa9afc9360be6e701e1a39825deb795c675a7d943c5f1fe0acf195c4e258357eb0c339ab549daa5a0992b7755926cd8238c1a4e19a5e3ed49ba2cc5f724dca9a6548ac3f4e8d2e5f2236278f8cbb2457283225dcfeac9b74d83d364fa49688d2c6c8d7e6773cba3014b5ad603e1e0a321d947790c890b327213aa862987284c95f35a63ad73194f5b83506b01cfd9fc4e73002b0c7d08e79262c5c9d9a743fe6066d6bd4b28c8256c32cbbb5a5f2139a56e7b1267936f6db1ba1d18ab18114dbf3d4e1494ca70563ef33970dfe5d0465d72df80ce0b18eecab82f38fc88703fadd205d4d02f065807e8b8b29fef7b52b9aaff44e9d9ec1a00ad62909271c3e41f13a80af7892ea44d479ceead8c29ed518ead68f5c2fae2a90f3b6647275b892aba04c4b01bbd346de58976905108c33b89aa22d52112af491d5d41c8d1a181b40a2c515871010e5c6ba6320d5d2091c91f8db8dda754fa6a26f2bac7b3d2459a2ed3d34b2d3baeefa4f3dceeac3992e9cea65b9fa5e887d2c823b17f7cd71cba5f6f1eece0623184f2c9e105716665190015403ebcc68c46379b1b8a48679f9276f2391e44ad16664e75e8651b6decfd4bc95f0728cd211d62160b322d215a5ede8057d716dca5bf94d6d3d1de890c27d716b9f81dd35941368c9629440186cb22e8ef9268fd72df8c5a3d995f76f2c26146e151060c568bfc7fcee326fb1683d36661f619a540a4feca6f029ecb37e8f4ca15e4e114c6059d492602b3c1102740201956c262ceb366d262defc13570237d9bd83c13b4c7f56e6f8af1a9c0ce7e55b8b3700f1868ead02c867fc931552ef9263459da73dbbea644312b7b824a38d88e814ca4812a8b2c71a20ecdc28c3bb515712a1344528d56ccfde5922aa3a6746c40b3a9953739974872a941836af753b191483c98cb6906e00d6d5b17cec5c19f425051fa602a2e3873e2af509e81d92eb967e28c7e29dadf3a7ab7b30220dc42196b601ce855fc463ce0c65470b9cf73d5ff1257cf6758c520d96ef0ae83a2d974092c6ddee613c7f1bca0b97612d77504b7854d690ce0d25f6a8cde54f6751baae6d325fe4367983321a2948cab03914d981579318b5a0818f1c637cd40ca4d310d0a1d5747e838789bc9effb859d635eb3a9108355378b192ec0e7ca07be56bbc8d8f3a893fec976c29570e5cb2a229635d333b1f41404f24911a6b0c5a990b6694d01508bbe1435f507e3c9ec0be6c0fa8c719ccb22d450be4c60b0af46dc3efd4de75058b900ced182226118c1a3b9628d96eb2ccbcc225a6e55e09249b159ffc157306ae70cdd91bd7978dcf1f1c057b117b8a58fe7048f3a96b2ce3a155a2667e2fe4fc56343ac9be25069cb1049196784b4b4573995944fd622d626819ed95de2f9147297476f440a8f87b45325e3688f4b088267446f1adc54e8e7c68b6e97f601adf0c846197e10566b33112ac3ff9c2526c8b7ddc56fbbffd1106069588b9e98550f89ec8ddd838fc6d554279ef3958ed255dff7b55858e3f288d0d331c43c8e52f4c21fbe39a1d11eff187700d441e367ef64d1f93d16e1f1b3a67823dff2be60aee96ff6dae5b82c2102b6dfe188ce7b3e604cdbfc5f54e6050245c4019824be8c38d77d15158081f972b7d08357de19b889fc1971560846b446d3ecb0e5b60417bfe53a50cd2b3c1e75d2e9ddac45cd79efa4925b1c5025fb298c7aad85e0229231b697756d861e5e35b07967f6fc48e0587633713245baef9ddb0ec24fe5ac0f84317a03521cb2a61754110c6cc61ecb03ce017162185029d2cc97e9b1ea4d623fe65e536cb9743ce16631b2905d4418183a146a3a397896e4165a341500d1ff20bda928879585e64bb4395c7fc4a811670796657df3fa54b8031fd01955dbcd77fe9fb9fd068b8a0f5f0c61d39d10f4a3c604c89583f6fe6eca37fb2d926912d87a2bc37a3afb804892e6c78138e9bf2882c394b5037cda6d096e0e6cfe352c33d3ef67f0a93d16d1c706db33de5932d152612b4cb82bff59d3602e5124d1f3d07a0e629d0f7e61eb9e3e0bc2910640201e07e7c78363f61bf6c96c325ea27b43c1dc2042a32fa041cbaf1fbdc7b980301162fc0bdd1f86385fba2f61fbf83f135aae9db2c9d43682efbe00e451d8852e6513882ce6c9beec3134514b2cb5a72bb590d7482712c27e511effc409079ccf151902d566ae0d1b8eb6a57a6a36729505a0055ec0f1cb8d3bfa920897731287c9f6678cc58eb3e0cd263cc6b73948f1fd64210b29b249c6236d5f9a43f66f5aa03cfa4133dfe7cd0abab43213d9fff2a3a7f54298790b5a581e44a745b9d69c781faea8ed9c69eda5ef6dc042a8d708ca4bf6967ae67afb30cf360f930c88651ef18068503d196b8bb79ac032ac74e4932d95e6da75d334d3f0ec5f7059480d377065c8bac3638cec46389de45b0e1d8bced1ee41cddee4cebbb81888a3c35dd4c76b2891f3435481c8520e4517b8273061b46b09b3d67fc3183fa5a38565654910f86cc59f61785c1521d3c59661d3ecc712dd565626e93b8ec65038de39112e74c06dabbf1929ebf321269ece79952710d7bf6b4e55912f95abfb22f21891f3ce151792a2072fb87e95be8a318afbbf7ff26239c70707e7b8374557cb6e4182d4f9b430bf68a486bd114e9eefa6dadc6bb71a9ed83599fe3f311537ac7ffbe6523b87f5e1f70255868801b0ae46c6187ba5c890336ef8752b620767a1cffef82145d6e154c201601d7f6942af2fe63223561b1ed39c7e57bc243c7ae9f4d1e413fcc60b69b0df362e2dd7fd398c35b38c2430c89775593ec82d61f659823cbfb66700effadceddd7b5afb465f22367435bbf7c1220b14beb016607defb6f3f15be9b3bc84d6498197819e775be246d0959d5cd164162fe6ac5458182df7ce5d1b612102b98a76d8dee2cd47c60543a7e74e6680ad641cde2112917c4c3d2a40f044e4e6916b4f2c753ca7eb60ff6be98119e8409c8df656e7195b89fe1e55439c97a52b2c28ba05f1a59f093431bb513ade48d940d885de9b3b5d5c79d813e70c177119573457c481710a2af7e79e109d208ae354bc913015cac90cb52ae0522f94a64dbcf69419762c17738acbdd9c5890cc4264e0497e609a886e399ebbd86678fedc9ae343edc9fdd1933853787479e5dac9c481b47e1f9e7b67304eb8bb05b7d602e22c194a15de33e9bfb5b275296d47d975ef5e7df3f1b1f7eb44a1177b6d293eefe4f18bc549a94d6f23506b810f8f575f7e5eb54bdac9b12ae3522411ee49d04958dd9942bed193325af9d5ee18324a3f251a1b9b3faf9290ba338529646590e1b9fa9721f0723f014131f12cd4302fb3d0925f8549a7263d88e6b839c4ae0050c26acd9bc17c1d633d03be4feb4fe7bc9ba56c2480a5c2895a3afe861bdeaf6bd10ef0f81d39a4ed09c424450be9458e586b0a741b5f1685bb6f40a2a1f550ac6debaa9dbe08ce995dee4979b1b51cb271b0a751e358b72ebb71180c87e2837fa205e2a3e7e0de6e46b6afeb8fb1275a6c96de8db888bbe69dc1f2cf26259a6062f18b6643ec8524b0584d4c45d5d1d18c44fbac1c86903c0f9eb6fbbdbe14c9a29624760144570d201ae62451b4841279297554f8d48785e9970be0bc67c91d939f10cd35695de310f17c517a83785b45cadc80d4fb7ec040fbe5c47dad6df472030d691f42e94880f32d2bf88195261aa9e2e5af006c4ec92c01410d11b06fa506db5af275afc02a0cc6118317c573133b34d4ff1a6664ab401c63cd519cf62b6cb213e71dafcef73cdbae54b0c46203d43030e16a18b261813a283094a869277343343d59e2da32653d4685fc670dde2ed5408ad1910b9c2bd647b899b25118dda838b547261504e2558fe87a9279d5fe227212eb00a9c6fc7d85bbac5037e34d2130c641fb6d5fa9b0bea6680cca1ef65e04526520453157e978fa3f3d679a24954056aeb39e7521380adacf33b3b8eb843b0129bbe3ce4f8a7f748a5600e526adfa1952fcb1a9286426f24d3b11b92a7efcb593d8e46852fec90d76d3105881b3228ac68aefbe6e8be2d1744684337590646bffd51cb4abf27efae3f815f8b294474cc11d639db21b7e06877a5a4664727cff5792f9198d567d6d0f52ecf398e5ef0858824d926fd8d39ec8b4e965a67b1370db605631410f2a7a5bdc07588080972d4a314a96f80bc64b08001f46b55a58004e292bd9cc8d18a524a407bba23955fc9c07fec209436c9ac42da0844ab96256dfe04eb7f1fe44b7b604ca8bf163e2ae378dbfc07a2606733faf5a7db5c4aa4cc4a5838ad3a08d052c8878f15f037d54d1bab207aa28cd872477898d6c4435dd3d939b2a2b8ed3117044f0b06e78541b683a2a1ee230345f9f96294db1b99b8300a3e653d16a587bb11bfd22ba6bffba6e6610d039f4a9b2773fc149ea921de29a4478a26f91351c3076ed1e350c6ddb97615c12b5f2af571434d465067610a717bf4efa452c055e06fa5661bd542a66380830cfa6e34c0cbabe9a043c8c4253ef8c1f49c9b05c0a69e7794acd288ada7aebf4a65e2b7c6a6d77ece21b96fa4b263b519f27e5a816c366d383fe9335d26621b46ad510c05c2dd9915e160a203df0a3a51c4e724618493d464cf70063a11b5de76e905aef34b9a2b1f21649f03110930b7adec263544b2818d2a0ba6fbe9cca9afcff3ccad215937c65ef1162d4aead5f3c66a8d44df9766b9aeea53dd37beb27614e4a72d75e41aa23b4ed2ec44702c5e3133b6d6359b033e46c099683d1342c344a65dfd8aae087d592bccee217eca95393bdb7de0e7e08f3ee11fd7d20c720dcc35c3f77efd959de4ef6e888b230be3f25b8c23ae6d2829d8e78676851a6375904f7ea1cbfd1a0e8e2bca406161e56bb3a0e8c65266de76c33deb0ac7e6089583cc475d1316f8aa19adc349a6eabc18e7433a8dd18c99006c482f15f9f9c693a989181f96a96c32489dc870ccd101597b5b70b3faeb23eb5b174e359ed64e3849679884eaf85dd77d1225533c745675c63c577eb2d5413c8668f2c7214083723fd8035ee73365b0c50e0e406a06a78e1ddb3efae69133665e5ee96ed6c24581e91bdb8dacdf1330bfcaedc89589f883bba5d5560e3737128f5c904c07865875ea9b63513b844cb8046a5f8218b4b2d5aad79171caa94c151cbff6e08b9ad8737efe9293fcd34dc120cea8c83d83e10310984d87c050a6e3981d92fd4320704ad21cd8ab5fec17b93c59dcc1c0e7f2e77e4234090595217832e79cb34e6780af68b22265c141d86b8faaa6f7d86d3a837c2320fd6c46cee8011a346f9264e81592bebdade564680cbb882bdc70e1b66b2f35dcc2df69feea2fd636c13e813fa17a6c552bbfcc1a78b8565dac3417e8ef9a69c8cf8d0f8e30d3bad67f7e35ded109a0964e6f393ec796d642e9c78f345865d524e7a5bbd1df551a2742a78689f5e1e5d99e9066aeb61c08f348527bcedd80e31295d782cbadec4c52a3bea34f50b2581f3b879d52de3be3627c8a355eb34477b2e1f51eb83729bdd0dc96c28591b1f4b2eb389b29ff6d2ac92c06dfaa9a3dada27091dd1ad30a7590032ffada1304bc56f665340eba17f64142c76c8c484ec8327f205873195507dd541817b52fde2da511d5d3c1bf0d0fb95eb8472110a46366a843362836bfbfe08c9552ee024c6fae9c27eb436788f911e4204b96a95504ffe7f97f40212a87b49028c2073eae135d99ffad166218bcbdda3f2eadaad75494a0cccaa7e82dfc64e49a2dbbc9d3279b2794100c02cf1c0828a59e9bb79dcef98911abeb158f59d71514b1d2a5aa1fd8a8e01747b0c64ca9a60e535a5bb82fa96efe5d8dee5700c198b5734a6589ff9142587167e8649257f5d287c81cda4f511ba8001078e8c1469dd3e5d0da50c3ef722a381d86bc4d1ecb8a57e35feafe803998204896a19baf891567384c3abeb0aecb95e957c821b7156ab9971614e3a4936d5bd6f76c0ec901ff7606a235f6844313f5e968d655e7c6aa54e8fb4adcb876918b94c12122a00558ef6c4053a6331b8240612dabfe91a2f3ae20d6a5ffa0d79b6f8a8eb0534ae3b7af7c6be8fce4b4e9d8ee772c2317b76e25110a1f559a7585e835829b1036f7410ee322bcd892c71cf4fb2842cb620afe5d8db03aaf0cf316c8dcfb5da8ec1dcb85853e04dc2a3b10ea8c89d498d3cc5b4848a2fb9ad9ed84c55a396ecc6b76eb59fdeea2279aac4ab74079fac8c73961e3cd4094e357a28d7a87045166c57029f39e60ca9652d4f7fa6a70e2dcbfe1bee48a19b90f85c85fb3ec2d93f11250baa0f3e086609dc8ad712a2de8cd30b24ffa6437b649b2ea30e5ee44dc8c5ef723e6e6a40945976cb062c4aa3e1f7c1c23d88f11d0105cc9608a0625b398affbecd926992f62409ddbe56b2c6909540bbbf30c60cae42a7314c572fdc871f20b050c2a1468022b7edbdb10100e59415c0b834d5b1f43252604be356eb22d4e696979d028bc1a6b2e8c7857637086ad48cb3780612c67c1b7ded366b93549ec7dd1146cc117f6fb798c023e69e8a448e485fa376095f43afa8f13ed9f3d42d4259c68438cee704b13a84c4922edca816c28476938bf41a326cc98e8771287112efa2c016630a3dc9b4907e10298cc16ddaeefd9f97626c5fd73ff5e9517532469716aafd4b000c4bd6004de872b922406dfa76c2d4d13eec7b48039502c20b4cc758a0eb2a321121573aeb8f9e4bf534d4bc52cbcf368c50863eeca59e14499300de9bdcbd77e58013514df782124c7c9f79ec2b4bf61db4fbface39504d7a1feecac3b39514f69a23fb68447e6742f505e4b89e3b30ab17b00f3c036e40f7fbe9f85427fab52c45947180ab6a2ca3e10c10fa87eb9e95801c6d616cd2ae885d29ac96d550dd52497fbbbaaea7925190860d48034204ba210666a34bdf84042273c59e59df0be005736354d4c9ba2035a312580eb1e30d463f6dbe92c77e048161722618d239d274505bbdf39fbdbd5ac7952e9382f113f90fcbd4b1b20de2589430c2c3a4808cac1ef6178104904515d3dc37c1e2c2fbdb1093907521c2fa018cb0a5114e406fbe48b404e00bb56f1af6e182626dea1ea996dbab92a97c3515854010a44ac8229522f22be5eafc8f26d949a04d4c56c392ec2e6b8809e8c027cac64d1b107fe10ff61733594cac9e99de06238cd85f83286c51da94f1dd3df213d45774717f3cd438219139b953e64af33fb1fb425fec7d8bb647b2c714939ca5a7bd91edf11eeade7184141100c30f87d149272298c72d9a03115562ac8ef4c8551a9f60e3aaefe65b403eacf2d0acd3372aef9f92715d12e6ff5d57175886a7403a639f6f2b8793e976635dd60aa22d91f0ca08bee25d3058655a59687d749772ade8d68a3aed57e208abd62c7e10beb5d22cd29cd05dd2a3d8917698f6807685561b38940d7b14a70b7328e3038e4adc045ff9007899e0866fcb206bbd99c7132733eabba4bbb26675870e9c33e6b5aaa040ef6c213b15b9962d8ad7e90f74ae47acbbe02afd6efc3c0166e2fe0e0a255122498c5fb5e9caa392080011bfe86a4a29ed84e6c6b7f196880c703e4191e8433d1210f1a13299cb536050abee1df2a96c3db6b783f907de36464f08e1e9eba44a671e2f233c6b685a32f86a5b8fc0d05b1d060a3f3e778509154d9cd41d52545bee949e5df8496c025864e050c5fd8d05a331706dac77e060997c8645f6559aa2472a1e28ad1e7ced888f478d0c976cbf807599d238bf59442b13145907dd4aa4b8985019fda37da15f3021167fddd97fbd09f76458f480dd0bcdba21c592f4526167d8c5cbee2027c8b68331f811811d27472e206dd4615ade96e0afff37e7f03b24982c93168ad5766662dc499b9d724645ab7ce719ad5fa0886e3dbf71c66a662ba5aae16d069352446d6c9faad6577c2caadd726eb16e3d7d360e1d1b76d298363267997ce979b819b23512d146e1cd326893c2a6bb67e8b88afc23291e811a3aabd6f84ce6f82d39a1a6aaffe9b23d8790335cadbcedf547de778b430e3bc0fe4a0361f0abb5472da34b79d21f42c9e64758b3a7b3ba0b541bcee279b5921ff0c7532d99aff9211a9ba352ef2bc2a57e0ff552c2bb54a323d62b7591ba4fb7593c14296ca3c1ae3eae8a86b16ce6879400c36d165d8849d9c6954ca28630826f8d620173e5a6e729afa26b2090ca85aeebc323b667b4a22646893007818720f351b3d14ca433fce99a6ea3492bc5ac3894beb8f5e80f3e8dc75eb342c8526c5c62f75e99cdae45641aa61ee5f45afafe16ca0e92e52a2ea2fd47e356a8eb3f68c362a9cfd4f77cbe039c9b4cb0c31d21ce80b5f8a3bea836bedde41473b08482a4e4b448f7824a469569dee36f8b01bdeaff61e26a78892416163824ae9d99b14769a65dd24d721771a7beeef382bb99907ce0425f4f5bb874c298a5c348ca2527cdfb752dee9ef950acda3c399d1b4c9aa0965e1a6df7ad2b84a44e4648bf8f0788ea392ef23d6cce7fe7a9a35cb5306e65c82dde43fdcd9bc1cefc7790503cadca738a48013cc5ebdca703c6c25a9cb0b78bcbd39cb8404bf71c1781b4e91a797563c5de4897b537a996a88368988f316ad006e9cf5e6493b69aa000619b3a9e7c326b55c4a0b5652d79cf7ad4a0869be09bd2ea94e97f3480ec7f2b07ec32cb63f755a50ab9a1f92cda45c4d2d800eb74474c1051c4928b105f8892c240cc3c6b4356e6bb85c3544918bc70f06e2409dab52c5b7dcf0a25270030ed25ede75268c38ff658151db43029f802a7a8dc0a7cca8c9bcd4cb0a570953b108e8a7dbc4a0546220ee4c93d35ce748b6c631f235522c9931473b52f0c4e08a04ea4ffb8781d7358f3e1399018ec658c64b7bff7db8f43d373d4cb0de08e632be9bae6d47a66185fe79f2a852d606658c309cbf7ca0d9b64b86d7f6ee6e693a703f4ad969aa044994886038d251b42e25bd7200896bb276d6d20db1cd1fc1d03674fc3f76b866b5a4e5f09d097c3cd5dfb91c6cf87714dd53b259404c29208f10bcf0e00551216d65fa376b32923780611aa827259a9ac7be12d150621a343f1e4e951767dccc1d6f877b68375046ae306926ad44ab30aacbb5df7e12230e30c9b7777a9ed0a4fe4e36e843a51455f281c0721a1e152814a6c2d7ed759585531d3e04f3b2442cfe27905a353eda57d2309b5370be9c8e9f66a3bd34b382fbdb6b0ded5de4eba40f11320258a569d5b9ef8b9878edaf3ed89476b9d11f697e8691a77445dd74db85fa46218926b47f7cf2868277b712e06dbaf23c0fc2a5ded978fa86cebddeb52eb1e8f187f5f30fa3ce0a0c148208fc0372e0257558930db2c9438a42cd02c0c1e3a379c40af31286eb7c45d2093b5d7fc431e3f132ade9330a7884730450deff68698c8886a9206ad7bb00dc608871db294e455c1f84d9676f699c382cac6c5c8653c9f33b93fe89992afe289ffd9b3d401d80f1e103159234d85fee67724484b74bdd5dde305694f16b52555babff9c654f2053abb3dc96e9b154004b4453414472d467bb8ddfa0f541ca2235df12451aa34d64ac322ecc6c7915b30c078a7c0da2ebe45e8c1b9edac9d4d3b643ec266e32d62e47098ac179959ae79272fd11f40b193a23f90dbba472f9e712a7101d3c61283131ef28809d13f8af47904978f12f775b5607469e8332d358896f5ddce2dda04bc33c4ecef2272d6aa8c728ee3e977f2202af18c89552e7cb8b49a1503ae871b2770bf61911516db59002e590f50002042df218302e051f25be06e15ea5326aebb746167084d31bd54f892ab421964bc9c2dad731741bafa133e39b70a9cfcad86d63ddac0418d1bb1fed10ae837da6916743f2512ca93f3f81d80a414d1c1b148ee956d7f39e5d92294605e6a02836b80239548c4700326ba15a23222d0a47cb34b17b492df1fcf45f6c6f946034714a842a91c7d74709315cceedde082cc089148b334eb95f5bb0f3a7e4364276291e125de3f2ae7eda02f37ac92abd322b20ab07b0b29ceaa45b0cb8b0918abcd8f1fe51f6e4ceede307e48e831ed1789f7837cff4b3191ffe92f7245cf4c31e5bd686dc2791c8f3c61cc3467c779808955f23b9dd5b2116871200ab7fbbf7271b37873dadf63cbe0fb6e50c7b2eca174619522f0f8f8a0a35ae16a6e6451f5bfd829e5b7fc82f8a57db55dcae600b4b3fbc2162ca35dbc456200d5705746f9fbbf2830bef739306f00ee0d8dcc94d369b0e65b7ca8bee1056bd81535a61b9cb681862cd9db396fbe7b8545196be2fe078b8ca4cfdd0b7a7c31eb3ba59efddd849695cc192017b07da2711eefb74989c972b760439f6824df31bf35ec94874f90ceaf7e4c8ab70b14d92a69e5c6bdd880cc42385850c354240e40b32b04b3f80980670f88ba52462a2053470a74aaaf1501a77b2f98f24065466bfdeca2ebb1f0a03b3fc9390111e9a45b3f42c45c2a860d61ba3805acb36ad5143294153cdbe035be5a830eacec2a21d559cddfecc2e88836d9655d2b599d990d6c990dbcfba3c43727a1a9a65191861b52e6ecef6d7046b7a27113ad0f873609952629a3b075ae9edd1a877d55a3213c576131a407ffad62af4cd1cbc141e6a2b7a095c8e72697e6de8cfa5000945a1925fdbb0a9d7316534c4a142455a4a2de8372c0077c30f2f7917c9650edd7d9dd23540c27976c8f4114fec0ae9e5e54ff72c38de30e13f293b88f34216042a2f05bc1b256643e48dec1e2c56c4501a7c1ba8c86b86e255cf7f54605e54c0ad0acd782451e37ee76bf2fdb6603ddcfd840de58877dc0152a4eb183489e265e893e57426ef7784c56b90a25df478045aa6c28eb068ba90d2201530cc582986649a2afec14c0c354f6e43bf5e177518f838a5a0705d16c41fed8b31c350d36fcbcaf9ddc4cd814e13c8343d883fead77dc8ab81d86be83b33afa40e3acc95bb5bd6290824a5d36d5eb0199330a321bd03ffaa70a31c23c4fc55571abd9902f86b953b1003075e0eb6647ac3a932f8c59b8dce96a2b3ca629765984cf17b60fcf42b330aa3fab6a70f4dbc0272912f35f58c2ce0167cd53986131be17b516ac3fab71b7b08347141278c8617c58e6db40c1ec710b1716ba6d796e3e245d39d54a29ea764ea8e66be5ea9a753f826ed2f6b36198fc552c08c3b31e8c78ff48b5249fc1b33bea89c00bf74cb84a4433d304033d795e846fb8b769a9615dd766e46344cd2b4a50cd2c9a80e567a0bfb0ae164769e3a910f2df473a47ecb23c8a8a6181e3adc816a68cdb6a8bfae694cf2c32add0ee84c03461b101cf9ae348a9adddefefeee68bb9dca929c792d1a141edc3d8331df74e76002278b5637add251e2cbcbf104ab7e58e65d9da32495564cf1f424a6b27edabf5d3f073df43481159d9527fa1b82d78901ce93098c5bb90ea020a14f3c1a5836baf9f8eb0f0b6c886b41c2d81dbaa378e1d81f57ee98e2dfcf76b9082a5d837d20817edd7ed4c1fa8721ee86c934f365053fdfa86debc39fd14c5b3b84778f5bbacd9d304bfc599bc891a0cae1c0cc3a6bbe26481f67be3d01fde011e4a31884826b2cf3fc14af88b161d78e5297fe75ac6fb8a5ac516a62738a171260485746fd539563daef5a5e5eacfc20fdccc3dc7d92127eacd92ff6a1578306bbde207d57eec1c9f78e10151364042cba1eb5246295e34c0692e965437c5b3a853f913925c3bef9955c669f5acb754dd4d324fdd82df335e585556e43e96d7956ea70e517d8864c08e106ce011da8bd2afd9eac811d9d44c660d2fec9be829dd4bbcd1105ffb77cf8c6e1847f017bc53f9e222d602beef8ae109f093cde1ead24a73b473ba8a51c737d5de71b9568f0f17e6990710b9251441c8d67411ed3b0f1b7b14b39435e0fe6588d76fba783447f68fd24cc801e8c9aeae448798e969a0e8ec138fd2df9d2a6414730aa3ba92451fca03ece3b1f8908c2da9dc5a3da6429bb88069b0b13ad8649ba88d83f415b4b579ed460872d46efc9e8b2aed9da89b8f34ba3f090f1b7f5db58b59cad2dbcbdc4e9e93f518c793af617c8c0f05dce73380d7a7821ef80bec48e9139776b96e1144e5f9467e4331d880b6139dac10a8afa74c4aa189ff3b6302e2248f587fbc9c7c5bc4f4dc3ab787ae471485a078af92de82c6873a4a8a47704095e558d8fa0a25000191e51ab4a7698563869ded8e1936b04e2092741a449533f8bdea731afaebe64be027d7b6980034e10ae7bbde257e68d1d57b77de4350d5645394d2678cc2fd723829723e026a86e5a8926dc5ab64e002f2812b496a39127bcafc61dc179ec177dc2ad8733869dea4ef76fb5ee7cc081e65d74be324a7eb2f685915df0226d8c78a8c0f82b1467b09d0fbe3776db0ac5c361aa4864240d7a79c49da20a79bf62436da3f5b8d6b0a171c30fd34730c4c794ecc16aa530ae7c62eab69307c49c8526478ec3f7842841da62a1ce25709743721e090642d22b5640540ebb748f2dade76f2435781e48faae83d5c347ce226f64c421d5f107411414a851339c164b7f6ee1ecdd280157f05cfd734bffc4b1e2b099e52e05e21d0bfbc0255d4eb8452270269a3d8ff81c4294738b8085555e1b4e4f5bc20bc86a06baf46738bb87ec4a43a75ada7eb9e920c2cc814d42a2f91150f052f3dd657547505ff7ddf1c69d643ce478146ca92e5980521df762e9ddcd81cd77c9f1cd427ae5be2e5e8bccd54ac144084c3115cd4284929b3f669f71a1a9ec0269ff84a5bcaeaac32b3fd2746be8ff19b4c29479316d6cea9136166860f577d19cd4e9eb610c065266a8cdcb943511370be29a15cb7414de7d5cf8b2581d8b3921ce0b27e1eeb02b9f52f44ed0e37062d75cdb2d0aef4e6a4a880b5539519a0c70911ad5f28528d6c2086bc9913c936380ffb3e3c68a7297a8e71a2dbf9d908b42e8de02479c797d687f01fe403c43e8f38a1af22095830466005e17f4a049a18e6fb6cecc71e593e905ed6c1079f49fef34a6100a7be92721b371528b6b610d3010555eaf1dd5bff76afc724f2e8dd0a8f99bbdbab3e64d4242ebb7783296b305f9d7d43d4c4068f394608ffc1f93fd167fa1a39d2c1b337086a976ebf7e59f27f95dae4869a3db30db7bc6b559103f0e3849d3039d4d0c0509bd28a8165524d29dc3f6e24c7342992e0c37ba8602565cd722c5f1e12e4b6106cfa4f127eedcbf85d205c0753841260801439636ab2bf628a32ef0fe29ec1d3105c9d41bdaa746e55835018571458dbec85067eb7aa1f65600f37516fcb712628389ea72c6fbc266805f457bc29c1bb7775ba8493a4609af8781935f8c6d2da657a2aada3ad23022958bc02f55528663cd9f78c806b64a0e94de40483deab1714300049a4d385094b3313a827e422351cf7a4371ab5ad668cd6c1315cc6c31ea4929e92a0ebf6bacc0274e58722a20bd15267d24e81bd0d9027fec51df7374d4f9db10290368be7ed4bbf264abd7129695908f495263a5c29bd64d5fba6eea9d810ef1d3ca75177c575db5a0008a905cccd12eefe4dafaf36773a60b64daf72ea97de22a6259153438604ffbbaf08978360e225586871466dc3cc93c362a442ff37ff5e1afa955ea28ebb91f2844ec6f9dff94190cf14c3eeb0032a5bfe4bfa5dd242f7fbc7f4fad1e30b969ce80dd897a69254cd17becf49ee26a486a259a3e5042e4d418785639b3681fb8023093c5fa281856dd8475dddc07439d0bc67b6843fa238da94fdea6420c461ff14a291aed2de5eaee74524a7457a3d57b703ea08c6bd5b07a29b4c915ef1853287636e6d0930e6da051c0284ce37b7eff12372b816a9ce0555390e22d72ffcfdb8f1942ad5f61e49f09de5c54fff2aeba94cfe1e047dc4eeabff56301f0a21d153c8cf2d2817a36e3ebeab049049138572115165b8a871c83c437ddc3a69cfa4069a7c6c876fd5a86d14feaa7680966386b71d1488a020d4b676411aa4c9d48e0418f71f96568d38f226bf1280b0568bf7aa443062fe02999c6ccf53c5bc604fa28c6987b1dbf245662c84679d608c6b4fe5fe53298f22c54327953d1d8309fd1af28e262d223745225c2a8ee0a5616a291f7789cf6488bc521134d70dce207415a6a2fb6a08eb8fc81b36feac64f038d27ba3aaeb7fe4ca6dde76596497e9db7ee67cdce73dfcd5ea71f1fe2a17251304b070fcde55962c746dddf2866d9d56156369445be730e0da623ee30944e57f11fea9f7b29bfc3a1f95b892f74c96f153f0f70919d7fe8d68a54f3951cc7a2975b6ddddbfe66afeea6cacdf65ec390aaecb3ba4dc68ba0ba17f6a44e2c08e87edaee70b62f1a157d428b565d8bafab1c0f86f09047629ac6e77d9c212a71be52c0b245bb392416f9e7f83eaf68556dd40e0a96f00d021e953a5d6d198d6986fc44d8ed20197d800eaa22aa7aa5a503f6225d40313a7c55ff14240a06d1d2fbacf6e0a776dba3428fd8f4adddc40e61d7165439305a8a91a8fec56f6eafb2ee535e69946ae30ef03a2aca43f593743d84eadd4056b244af1ff1ddb247cb45acd8df318f55346e3bea416a5464b7099f885c6883ba41590b7519d549e8390a8ae0c4843a982cad16d684419f86496ff3e1dcfa8154140d4e1353f4aa76d6ee982845316efc2ee4ccdfd29eb74dee15a2d768ac9b5776519a9aac895e2457f5bdafee50bc708f29f80713d34b4af43a173ae52f9a3899b1d650c25c830529a1b5263ab9f6866230408d968a94d099b760687b82836793bd82be19a3df3b880df260cabd3b193ed49463c5650ff389d86649419858b7d68c2b627b6c363bc33817b0afe3c3bb36e63b7a91b56b2933a78b207e32f0684b824edc6b8350313c591f56e43f0fec0b099551b72364b46a30902927a396deaca99568090ecc28977decbc33f815b5102dfa238b8b6f8446de3cb8caea4392dc583bbc6237b0018af8ccd54c8f3d4b911ef35c956d42ce01345edc685fd638d356f9d12821a0e37255bd9c576852027bd12b694690f76bc8e7b500bd7d2f954e185b33155158b161436a4463a162db4f90e1f94609d9a4244a07b3777e47c1cb9972c65c29ac8de3e06b2e04a64a5bc9ca7d47811a94eda879283088945189fba171fde82c9f5cdea6652f7c956cc0a16cd6fd70499f558dcbe00af04f8664ea44255fa7eb7e0f4925bbbdf650753296d6f88763af106b5b9b7f55dd189bbcb80ea63749a27e3e59e7e3eb28e247e780ce7ada1f9b5924c3d4054dc24e79d4ae08c6824e597d95828e63ccfb9dad594a93cdc5ead4374f1fde11f58db4ec6476c783b68108550953c9f1ac4f0fee7632a69eddcb42d460e2722ab8467e29663588666193986328e57fcc30d8ab33a011f8d9a58fa1221e0387d1700920b679fd8a231603cd5383b501ecc2d97b3c69c5f8fdfc87ea413621386d40699ea86e1782207bcfbcd6a5c42eaea2556401019f86e2a14d7329d3ede8d579f84f138ee778955f1a53f6b4f30b40b15083e64eb20abdb636de5089b0b2646998e7b352f1b64da9527fd5715433b5052a3115541b73636cdcbfe5acae5afa13f27f81bf16da60f51feb3a36972c967f2de19dfdbb6137d0a30ef26a014e47a1025ab9b933ec36df1af1a41d6c60f723ca5872a9d6670c2cad0709b5a1786a5b6d5b295450999c08e5b6fb12444223a9c03bb85e0338c5494822aa24256154eaa9b46f3e440ba15708e92b6f0e3f32de3a1ea8e9c316be9fb4e1c805455b49d5d8eee9bf0e319e16f078eae6ac0746b31bfdef7d0a778f94c1c8ad63e59a0a87c24fedf715381571257a15040fc85fca1b1849d063a48af592d8826660e2f94c74ddab0a80ed0103a4b877efeb6a26717e557c277b0449a442bca887f2ffadc68731b8e76844dd617884df4e410e43cfc58ec715ce672d1aa3ca655a886aa2bee987777886a841e6e8f7f21a178d6f728d94ba4d0704585fb0c7844418e353adb6ca2c301b39c8276b8ac328040f1236f195852a1cb729f077aab5adfab64575585f14ff4b2931dfb72fa36364a1f0a76b6c7d4ab0368d25fba62b71aa2a32312f7e315e2fb263212c0671e8f6c3d46a832d1305786853b57e73f0f1c774d5e7956aa8cdbd07077fe5bdfe5df2364f2a9bbe86bf585039079802ee70c68cbaf4528da7c83ba8672de29fb94d77a1797a54fd36acb1bf1b9de00423b6e0f0e396ffff14c6a5d31875554bd7a2ef2aa2823cbb756c81a145759fe8e6fcc802c9c0493d50a2d33e2e026d8287c110c87f3db95e9732cdfe834d6f942640e7f0bbce04aa391f8f3aa603956a01d5200764799289bdc448a3a5631957d3411f0789ba85c2700eaae3f954100eef56aa3f5985ead689c42ab15e081f3594200bf1148a786b6898f8a0125b4688c447c2643b4eab2f491493e1ae8da21c0b4de5a0871d58bd4d3854092a3f6db3d042fdd6885c62fc9d3bbee6feab42333d2ccba916a99d1b9ac132683542cd2aa27a7fada6f5a41675e6e1b4768267beb86e2d9495532500d0046cd723fc13dc714605bde1dce93e95511b7b4e6b38dfe193bde9e27fee53cd49ad2ab64248dd30e1571190aae8ef4b3afa67cd40087a60d150b1ad199e4ad89f575cd334a368ebc82936a51282c4c27534c06aee2a839cd5991f7ec6cff43a94db2a302377d424eaa5c45e0e7ea018b95bc05c26a724368a3013374403d7aa11eab24db41636cf938e57bb57079e5a79f9e2590244f8e465408f637f16ae4795dbe1c2ac1d1dd14d21d81f699b6c051672b1c6801976ce5079f69b53d42bffcceb837c0b84fa7f2268259c07528490974f6a4b4ac4baff0521bf534b7f652badb87bdbf5f9ee15f7b3c47eedadfbe5b6f07aac7b1dcf2a3644b61025403a41ff769a02922a4d247c1d589878d063dde8c8a039d8cd12a2396dc40ae5047881ba583c5134f137b927759842207dc78d6d481e95d11a3eb68422fe7fbea60068ce76dd619cf89223724f925f4c523c2b7fee3fc0d3fca187ffe8c2af4751095daa9e107efe242a64f08e24e5683ac7a9cb17189b01c7b71b6194084d4dbdd50c79d7707392cd341fe84f2f0e95e47cb5b932d94fb1e0e347c3cac77fe14aeaa3f642b2be7722b1a78e18117c5af1f3bea43e139dfa916f8489a24699698a992e4ea5654a3e355535e82fccf36c35bc295d638b7dd92f4dd34a5cb0614a480ce0ae007db8c3101a8c8a7014a5bd570a70b2b2b0cfbcd588978f625feb8d052e1d301e116ae84db9f6fcf14216e424a624b15abfbf5b40d13ffd86e4de5ee41b9f75c97a17d3eadea7106d6a6dac117534f7f82db997bd626bc25c6a4c157ec8365bcdc5feea0926029ecad36efa15766a98161c945b2ecc7da1bbbc1022f804261a1870b6f8e1bd9de29d9895bdcf3910fe103ad88f2ac32a06a22e8445b9e1167d8be5bb80d892a2422b31410f63a287516094858bb58db90ccd9f75b05f070cd1302615d0d1858424d34f48d0ac86736334237922575a5c5c02c0cccb1f21a28545fd5e52098ea1dc4250daf2bfb0eecdc1c66f2d46e634477cd8cdf152cdad64a34264d3b520a526b912d4e09aa3f0b3990482a8023f038674b5b145416481cc2d1ed71a0f049b93a40fc3b66fb7842319c780234e71cb43a5e22c9533bcddcebe47a32678e53ed301c2f5720eda779d687dc7995a31fd6dde11f35e68735780a90b05a3fe24a321ca66b6e8b25f8dcb4c8d87a8b854b74951b81f17df415bc8cf8a3339ec5a89b7a69889aa8395e573d3f35f3845b4bebec4f9bc589aa23ec2beb0feb1dbc0abfd29de2e3b7cd8e1421899509b8e61828e261300232f1e12a30a278940a53103648ca0e6c81c626fe6365c01eba1e8b8a8ba39046918b54914c0d95e6aec8dacddb1e3abd4ae69cfaf8a3fa22dbd1d54c010ec06ad6e7e5d8d1ee9eddaafaef0bff7e3fd54660b9dbb927b2df422c0e44b39d18d768e38f389bfe575778394c9b83047f9053a21db5a57ab29e012d5666cc585de6079fc71d280c6b07f8d32393e2617be7a1686391a6a29105e857d4c4302c769560f09c213baf4456ba403efa28530f72ae06e8cd960bfcfc6507d1b3f3d9963e184fb2de1a20b6869eb33bd6abeb3bc502c407ae386e7a046682f20db584cd726b278703421c4f86b7fb0b4b468aa2fbb6ca3601ba00f4d6bbadf26e3f6dba4bc0e60a7f79efb34c5f41a2015bf403393cdd0c2baa7fd1ca576656d349853ba0ea4be8a0e04c0614f818c16b8ceb60f0507ea2b959f13d7090d44af8ba5d75b5f6e71eab2186a0a9aa02ecf99f282fb1656984904d6641b642d462b5c53b557ee5fd8748874e7e912c5abc801aecab03ac5a39cd38737deee3aaf7a0c3c98492facd9c407c2ef44ed85d068720188ed07e70f71a0a309059b79446239bed7f9663ae2f1899565b29b14ec1551035ae1fc32064287481f88af5abc9c622917bb084d56ef901966bbc512127e76431512c9c4fc7ef8c99913b16d15d96f97bad234766dc186b9066ac716000441325787df1be86923d8ffb525f3f7260e1939ef5ff2591153ff4afc78b8c18f8e7ff88d17eea71685b159b4528930ff71fe84c5c9cc119a69982c958f2040b0845337afc73535f90065b94ac3c69d8af3417206bb3e89240a98249d0144a8884bc1b3fb3ff4e4267326bb0735e67d025cdcbd7d73a6da9498a2799d77e1a9b299b49f48045b93a57bf89f17009db6b62355c2977ba2d2ede5bf2f88d9ac0154df55463d7a9e575aefbcea004e597036581d07c3eb2f4971c3bcf0edefa52bc94192e483c36157be42fb498b0243dc3ae85defde1b1b0e1d6b28d49450855d79a0af6cefae7629586a5f9f4507cd88e1288fba1614690eebd85b3dfa6092c0ccb224da4bf1437dc59db07d0ac3aca474efdb6877cc0e8354e4d65be30c1657afa0d356f87ff387aaeff1bdc67942833ef76485733c9e8f14c343df6c20541c580e3e33392fea3086b70f321851742d06f9a4ddbbfde5215152ae9efa0250f4a7c7bd2c8d86a0e2d11958634a1cdc7634d7b9b7f72cdbea5c5ab19ffe9721b905582caf6393d19fb579a9921abf19a2405d1c665202c1725608718fff8cde0d586b3265865ca489a01f5b87574bcccf4388251d5ea0a504f7cc363eb878f7b4f5b69c7761b579eb90515278717e4d38153191b65f52c00e375ce291dfceafcd3ff2efab6c5762ae51fa7cb8228c9dd11bf2bdbfd7a007dac3abc30e866980eb7443cd1212909335d636c03f8c1378b586c0f9967a1df9f94ce9bf5df8780bcfd2c8432c3fa6cd000ac4bb3e1863c3218d18199b25902302e46dd694c2ac69dbe6eada3a90f105c9a66eb8bb1b879257a835737e2597fba450ca1dc6c7c35c21bc1ff622e2a9bcfc533ca91e566ae3448e368119e9bfdf02f148931583f4f2b9b35a8bb04a2c426e169a6b0f9b82813a51eee83bd2a85cbab645c2b804a28b4b2e446003fa956c39f280fbe3ba6b4d5eddc6584545e4820cec347046978ccefa4950f0e6bebf290f8de72c9dd1dc73c83d11c4da5a1f16fab1ff6a8f98db8ac889bdc50241e674cf36f38d05561e75466e492224f895a0583e4630e8d654d65fd45e263b55e036e314c9c633b0686756729a26a3eccb20142b5c5d48c40e7989effcc98a8cebba4d823e6147d6cad284c2cff526acbf3facfb807892c0341c8ebd3aed54dbb8e56911408a5466ffc9f69e438fda18d6e052caa651487fce162bc95c80b5158015ffdc8e89714c24d409ba9f18f06032738e962897f9b5a91f08de2d5b56a5e50b6369cd7b7702ca689c3b017ff974ed9832849f1d55bc796cff72acda235b2e3b029a3b9a62751c0e04f15ad84674cfc90b3421a48fa04e25c53f60ec69b28b3d5ee5d77b22354341131b03c5c6de5b63f20e9cfae3f9074c86cdc12d3e336dd63563e9ab3ccd82b268456259b35f55676d24352489b3a61cd6a0d580818a0f677f76c0839a74d2e17dc0686284e3d8814b2926d1e2e62d06f245ef4f1dd73e31d4d2c51cad70237cc1756093e50a93a0eb2919c34a2241b7fd3c4b0931ff80ead9c2cc28ca36b3321f52637c6cfface8b20cffb88c5425ddbb0b60422387085da16dd6d4e4539b91380003b2c2110d7ee1e37e2f979325fde0b2916678928af3a3dd96ae00edc9f3444bd32b02a9d661ed618fe0945c36d75fd495add3aa5ae436ad93494f4705c9a8682c03bd87c7a8f9ef22a675b29bb5c6d8fa7ff6566d34d8618e055ace1e8bc5e2b9096b4cb88166cbb5ecddd0b7ad112e691a6df81dd8966c494255a1835b9d6e1443e23f8ec0aab2a5f1ed1eaa554a717c40b4b118ef88a3fd58e3de461e9898048c6d16c12c18abad5737183438c8ca862091e2cfadc54ec21d5f514834a27b9a3a4c7e237022f278b8e3d0803e876c000f10a5347d791929b649ec011598706ceab2bc494871098ee074c8ed89dcdc4a62fdd1489da18150050faabf84e43aa2d9f91c9b408acdcde2a52c619ede9f5592ab39fc089ddeb1194ff669a2d8f33319413b30e8953afd0da9cb699143e7594f5daadff51463ca960f8a9a5faa1b19aa836a6c6d4bf064f6411f24be6cb192288033b68bb666c1b421bde705549de91bb6678269721329bc7524c7e39dc00fc936be12ed5ccc94ab09891b142ccd1d400f5934395e2cff36d0c5468b950d30ecfa7907e38e9fe7f3e083bef6bd450b733f045937a46216d49ea5f9c5c2246627d3ba1fd1967369b3d00771f59fa7329e2354ca4709a713625db365eda216354f2e65ec6d34e55caab96e66810e8ff54c14d683ea9bea91d9aaaa42e17f766420914a2241d04c5950aee8c39e461b2f0d031467562d0462943cf081ab26dddd976eea8d58437d8ebfaddc94f718b1607e5c3779d467d45d9200d8f6c25c350ebefc021e4515999fad77d9b98399b9a81d7a0c02cc4a65ed1b4dc58e434862d61f4f85f30c02bea7f5d55122fee9767987bb84690ba3761f3214cf2a98883f0b9486b0c75b5b163ab9c7c75910e97919ef4ce6f77b8ab96cdceef8f4bd9b078cabee0ab2bd258af283472e6a8d8375364584629a3a4576b446baa8365fa6fbf1dac91c488ea933f5eaf48745cb6b618c57fb2f96aadd6ed6140cefa68381d59ea1096e3a1a2c672761c75b5bf23a00f3712fbe63fa3f4d18ecfa6dfbc8cdb9f3b1341e28e079dc93ca7d29d93ce6d5f2b8d7026e34de1a5616b11a24c7fa8e7633d1c974c6933de0baefba3715be5a834fc0e1cbf544e85588a4107221d4255e050c239be1d9b526d9e9655c954312636028ac1dbc0bcd1349877fc54f1d46c03eb3a499a8c009f4a6e3be73cdb7e0c03ebcca05dbe0bf74503a12ae066e0f32f3436c9d6fa6fd58f4a89d27207ba5804318f4398aad92f508aa856f446b3f7761edd8469a8f6451860c2725421edd208bdee36e96bf50c44f1f85592de5a842df8a986ef2e2960c1a43712d57bc207ac3b69c5f5338633aef422eb44fb7d0f29ae231761381103e442b9547efbc29096cdeb983e413730855c80980065309042c8b4a81101cf6711187df66a855ddc3e51d33728b9b265433c9bf71ac1a3724110fb7ca76d347da48716e4f08ab95278501bf67f081fde62b7cc87da2e52740952f50bd8fd2f4ec86edc310b2a4379db28b181d8557875f5ddede8336e0aa56b4a01744137a550763317c0ca8f4fb739fcbe143f813b3a7cce1bd8d97986b9fa67d485a389ea0d2f063c9822f0b8e9a2eea8303aa94620f48a0aeb836921bc2f74f84ba3c0be200d8da9f92d95771124993a1c36652c844d4da3b9b1dde462ec30dc8d4766fb5eb4a9b79cdc13e876620e35fd7d87f3d7a6bc94f3d921b3b27d3bfe98f8d4f47f27b5aa1750e6323d1ded4b287597fb593a439afd07eff400792dafe71a128fb7badae671a31a73f7c2abc9e56560a2b9b40cd072300b34f08f467c97e2bffef744e38c74b9befaad2d2b9869ad3d841d70f7799ad50974dc480fe5839d212df9fdf17fbbcbc647fe23b49107f837aa7bde35e19aa569e8fc5ebaaaf5aae07e441bbfa83d6687d0e6ee27b608cd7eb41fb63f10ed99bf086284f81a4aaa210f2e5d9a3d2d3e5ec42da05b4c12d542ae295d12dc09540c78ccf196b63f0cae59c74a5f5d34bdc931cd3e9a59c503422a0d20c7130e7007d4fd9018f9f9a51ead3a88688627c955f3e180328b4a675af842b573e4731b689088d6a23809061890f504ef6f5a65779abad0c7b1ca1a4f0cc402b0c41f8f29c4a7e35d8e1d85dda7d3f95e3879bf6212c897784dee71c7c99988113c8783f3908ecf0149ce17a3ff65cf02156d263020d1a1dd5fb18f44f9fafdbf33ef74f7a16383ffcd71a4c58641d0e529cc0dbf59942406271b9bfc84ccd1315d7682041767e246c119df4ef7530f0cfa07552a764c9c5c7532ee7d6428447c52d244795abcb015d11313602c5c04ea5b8cf815b10fa7d0ed72b16848898da51c3ca8de6e61b8e65ef267af6e3933e773dea9adf42240598ba9db35af61d9cccd13b4ae2563d406e9b204e1fd9eb988600e93fd44ba07cc7a16e19a965cb1f38ed5145c26673766c4300c7dafc6bb7fd596ed00372a45b61b01518c1c9cda8ade031c272b2092b9f535b7e30c115e77cd85a1ac7b57e88573e19fb56164ef23cb943ffd7393801d15d1ce36422e91d205d77569c566b3429c0f533f03c7fcef5e6ebd7c631bdea98372461fff7bd544bbd7fa5d9c1e003cff8c6adf2373e2c434239c12724d0658ee1ae0deb12e320c1f5008edfed26ed74b344b6e419123daf4a5fdedaa4994e28eb7125375f08f060044347a06523dfda3b840cd97c81da16f0105221c0ea7f8b176f4bf28fa8f07a189392eff6b59ca72aca3762d509e6df78eef22e64fa008cd03d8cf157551f4eed59e124be39e38d1ef3af4496aa6d9a9a7baf076ecbbbfb7f73e2410dcee472058ab305b76164598767b05e58bb5fc07eab2ed364b5e00957697db3f8b10787d4aa9463634561ab86a5120c16514f962e807f13869c3246e2b7229f1d6ace2ad6bf4130c40620cc816634bf53111666d22df7b62cd886d8a87b6a877343be36c0ccfd27ea78d9ac06b0532db0df2f6a8fd5ac9670965b5f409cee9c9d5711de7e72b544d2a21c0de513cc6d713624551aa36fec072bb3cd1e508ba9455f6189f383f96cb522979be477b50c693a68607e299e528d7c8ef02d558c281470cbf545b316b80f9dc1f5bafab6c6428e27bbd272b73a4b0b855c4327e5aec95cf825a79d2d35ae0b6fe1aa702cf2f81c7a6b1ffd4c85ee36aea89a17401695e695328c9ce21a927cbfe51970a18ee6c01e63e698b9ccb743ca365ec3f8fff0103eb3caa143df33c8af50b5078aa1dbe77f1db35c051e2ad768e134c0f4f1ca092998c5d82737bbb6db3a884e590568e63f57c4d290db6633b31f07afcd8c27efaa7061235e470b2e72284944fa3adf18c7a17009e4d0aa641f2b516a2df5f4a476b8d36c747f7d3ebc8cad549cab9b381525583f3bde07228b43628cd43408a236d78b6dce12ab8f19f7dcf99c10f6f4c029f6be2fdfc71b386e86ab794a530cd3f3cd4a0a00b4924542259c69e80560b4100a5d43f3d8f00c89b81e72b39502f94038a61d8ccccc6b865cfe3e36fde7a47c093bc4e5df742832b6a11ddb1f9be3d952d0b1bda814e8493125abd903533312eb31a2f2709e23bd9254d3584a09bc0406f38ac6a5e3c51d9ac8a184236a41b0675be816f209472086c3fe035cb03fec5ec68d496e5d2f47149ee87375500e8d47660155ee20329f74c30d20b82b2ad4ef6ef980bad765430e5d8b8cf2294b18a650e3c24154ead233b7eb9b5f9fd8e82494edccc2300dc5aaeedcb85d8db8fe97f48058d034cec0348fa6833ccf592910e4696f19b04a1457fa00e6304db599a7ddccc21aa21116500283555f9ec1c32e4779d9a5cec1411cf7a077100993aaaa8448ddb344c3e53eed9e2a8cf2dcb99c1aa0ed1fc6de5fab3d7ee87d73b6f22d2b89d3d8bbcc2e5b6a2ccf9a8d0f4711f673dcfb55db376a3f78ea9079fdb69f379806c55bfd98fe889eda43497033fe74de2521a926ab83e0c8ba35b2a0a400c7b8738ca43b6aa5b4c67903a8174bf44cab5b3224ddbca0c629399ebbd6618117ffd7dcd4a423451bf2a2bc4db0366fd4d9cd1de29e6c30c036f31c7043d3a3fdaa1743240562815f96eeb87e6d4f2b83234f90782009f18e10595c0e433ab773dbf11a88e094e6075da4795dc1677ad203c8da235dc3a355aeecee8e18cbe84fd8b87f783c4a542bfa0578f366a0ed42ec8c99cae3aa0ddd0a6e4c1147e6c42e2c7d76188d645b8fc4c8248295812ebf7a113fe0f3d367b8c6ec2a584bb12c0d50900ad47285a62f3278e9955f1130a313ac765e4b6dfb3feada1f57af72f2c6bb6573416e06e68e7a4ef6424a8f1a7e7ba9c1bab1afb4a53072ec80b4c2ae0dd7d8b0ac8511b2fba4bcf35a8653d2a6d32048b73a67a5637b18dfd7205c7d2d0270fc2b5d2546151d8ea7cb7aa0a7b22a5b2973b7f2d32b612a96aa28c88e4b52aae49e013353331c69b83e7e4d9e3c5bee23e44db1e3db61521cb0e4d7f4ce0d2fdb6a5bc2ae8e3e41c40be4845674a14a26e085dac974cb1c9162b7ab6fb7a05da2b5854ce8737b29c37f862e70d1edaca7071f0f4096a5467a6cc0bbe7020fdb296170e806612f5d1fa081f4012d43e773f5683a201c625fc4d58a25f1d7800fbaf8558c80c64786da7023ffadf0a6553aa6c1ed4b81e0e0510e442cb6e0b5dafadb009e6dc6bafff63fe949c6143d2b34cfe9c3b374dddc3dce25b13f13e86185197c945944474f1634aaecabdb3880c8024b066f9aa77e5e8b57c2aa16c1cfc3a8a4ebc4690c9cc7716ff574b915d609cfe6b63a3e0478661d17d12ff706cd64d39ae6841e7346349773a623864c84fcc43cdddde048eb44839122358b5b88238fbd56443369aed19e0495a7145a12237c8d8563980fac18994c5265b8e2d938187c8968c30d0f7a548f14dc95cdf7d5de0c5cd2606b81ca131146a6839bd9297d00f31f974743c7086ba82cd3e0d8317ff19ef0e6ef097c88f8ee762913d83c04d65d91911ec47c681aef9bceea906d34a8972f99a912493d80e17de7218d88126caebffdabb7c904236decf3d54e6d5c30fa80c2261aa645eb037a80732237c6bc10b885a86a93119b01126adffa3309eaa88736df92b619c549dc4dca881f63e50bb63034cc0b2e129a075215562fed06ccfec16b00188ba51f89b5cf5cd2ce05f7a25710eaf8f218d6a741df4e8bce386cd3485d8d3a20d0909530840b231ab7d52463af9ec854bc756f1ab8628cf31065a7bef2232ecd5a7a075f465e7ad869532b69c318aa8535cf5bd8294684bbfc361960f66fc25a43a98a914c81f4361d9a6cac3df7532d0540fb29d88998e801bca825b34e84860419f17113567c74cbb0e5b2a44527b462f8e3450a9a9caf109e6923e62a8c6116e1b070f9eb4c8e47cd3ab94fd037a03561e7c4be0d5a85dde183800c0094594ce8e9b61b5b0c26d54262e13159afa0d871dd7cebae22ac5fd6b355386f7be6b392f638395d00566ba29caaa8c6067673af3726ad84e4bc82622d9d589d63d056cad2d919adeec93b7409943d37543f0fb0ee7ed594cfd1ac60830ff30a330c954da27f321f5df3798ce035638f67cc90095f16a3bdb0c9cf2efef6fc5d0afcc514ea9599ecf30560c3b58e6d38d5aa93fa8d40f3fbaf9e278a7a3efcd5e3070ec42f87defa30dd07ac841bc6b2791713c5dfc4799de21ea5fe20ad46b969bf396b7556d38cbd4b451873d0a4e15e16ec1bcd5c3ba7e02b9f4997ce801c61ea4886e8626160ce7f2deaea7ec315215c5384c9ecf7f0871f022e18c456b182d341ff8159b460c2c9b5fd215bff8361cc5a8be33267e36534a05d9c10abc84afdf8556eedff9206b168a70d9d6d6ea53e06abde4d7cc5ce4ceb38559aeec895476a82414afcb88e6c1dc41c4670527647ad7917568b0545e73a972be251dc29672bcd8af23f0214c4142c2492dca893df0fd73cf2c1e8e28df0d9ebe48cfe3b26b1b4f3ad386beac28b3ee6d657828cf475e129088d616e185c949cede54b26edfc308de99fb8f4ea50956113e8182c78c60ab94a24283312226cf84226e8a580d40d80679e3ad091875a4eb641a58c6600720fed77e637d3d8fbdef93e1d116a97d5db2af61fff855f701d1faedddc552d44f5af33b8596dba4f185239870612a4b22973b5927415d54cf0d887b2a0b7dd37219cfea6dec50753ff7ecc36e73feb6c53b68c06945eb0f0cb9c511d6c8deb638943abc3a010dcc04e9cf6ea3dd218674fb9cb198ab41b1a3ea4539c68459cf623185a6f54ccf673973de946442b2c615509ca8e112f0cc129ce9e2d15ce4697f2a87d9608c5e4f8bfa556bcd40f390006f1378295d846d23be74e5742ca70240391a872b45a5dcf6e78e118c7f50057f1b9110c82a70d7051ab66a6c97bfd18db5a08aa5730e5e3d5a1485bad118acb77e201eabf3dfb524766c98dbe0f58acd4dcbe04ad6d93974a07ddd7616e1b5b02b65f5bfa6f864cbb0f2e55bcbd8f1b3f9f068ef8cb0ab36039f812d606babfec795fc8387432c57f976986a39c385bdbe5bab1044bb223d14b457ba2057b216c2ac7e03db80c3d675b82b06bb34e38e2294ced5dd6e3b865bee9715619d2fbd4baf9c6d1a2dccdf0fb3ab5a483e1056c0aa74bf1ca8a0bdd46ae14ec10766af5c79422347f77e0f68a6710e17053158a0ce259c6f465bac78371663e35ec770dabac22bc255d3db60e8583682afff800dfbdc9ed415dd0494a9ee995b236a84c3d75448600273a26675e5a2006833e9486486f489ea73639e43a2cefea2500d570119b5d13742762953cf5e224d09bc3a46f68125a6c1cffd427f477cef3621f9b810620f7b1183b0ade59b899a155663b3a9ca5d187d1cf30066c7331396c5b73414fad586bab99c01ee4175d1bc5bb6f721fa25d3d88ede3d785973aceac48f82bb666d2ce19f3d2bf3b0c402e1f759bf6fd9a5f9ddff1e481a1f23e552c4ecb50f171b98895daafd27575ee780d56f958e7cf5418c912be229fc821d469cf856e631c0ff3f62dea8448f7f18965df42a6d1a6e9c3f14dad4bff207bc8b577de62aa034d7b488b859376154e45fa7fab1330f2de17bf5eda8d96c5c2ad9f4f2257abf647c2396acb16af6898b78432e5f755d646e7482a0b92b44f8325f7a61ea62015dd06a2bd65da9c8899c67427aaeb365afebd6c6f6f96e450cd812ff1e315c81cf6456c9a964ec631dcd98c6989aa32757f28991d86ad50bc89f55166184a8a9b5b4a5c18123e95f1600862444dc5b027998f21601378032dd0d602ba68636e24b5b36c65105d69cbe69e1c60f458cdc4e3a15302ee628db2765172bc03e8353061f366287b437885a5f9f66a34b40ee1996b300e9d724cffa9b6b09374e85db3c0dd346f6e224d2fa1aa3da3a36a260834fd385ae8e00aca8f35a3a73be32af3429fda812499f1bf05404c187be75152706da85337a7bf9484a540d1d6839677cdc281a8058f9d697205ac512608947c66df069222053fcdd714978f5cb74bac9b6ab777932721e9c9177d68afbe19fc2b0cff4ccc712c2f0cde9db970d8002af09d910afda1240f296571bd1d93525c2dac1fd916abbb47234bb09f8c3ff205876c19a67d28e2a1add7c4175400fdbf3d91734480ce187fe7f34be5c42c841b5aee11a0b94e590a1ef7fabf19a360352e1cab4fc62114bf60777de0ac05c7e080163beba7f18236b401e9e12f1f871c6a20c3fd9bf2822031ec024e03bb278512f690cf762ab9df027a8207c4d5bb8a24ad4030c83f5da042482e7a0ee83cd9a4f787c7acb331b957d0e159250e38d5f0518d57428ccfbbd1bb6eac017925a489c3c9fceb7440b64fcae9858ee34dce59ff69b4588ceae74b420f4811746af1f708e87fc130991fe166f79806ab1bbdc2f3b782c3da5ee4fc5d5cd099b87882f567ee97855f6df676fdce0861bacdf1e978678f738020ebe50c26e12bfed2e2b740ea6f7af5fcfb1ff4a906712c4b8fee1f6ed85751282373beac16e739a0e2387fa4b5cbf6e5b5c3e9fb1452142d4c11cfc4a927f8904cc52cf808a4fdecbf00b98ed28de2d6997b9ed15fa41a1d2391ab42299686a33faab271df343d1aac4e81ed89e8b14910a48cbeaf3f4231dd17dd70a504a13082fa78ee914f5b200d81845fe65563c96f4c8906d9ad4f30040280c3e8278c7e3bc084c99a54651be010ac4cd54dd44054f125f1899e75d8c17d5a2bd35f2c104cc2bdc476d731942bcdcfc0d90a8241676b8002c5182ce641a2c17fa2dca11d7d62d4e1837f0740f24186c6d8d1f0ecadf15bc11578c3af46662748fb9a5b0d4e043991fb6e40ffc9946f7eab9cdc778e1dacb5e217637608d0c0c9adaa963545ca5e9b62a72edce8b3e1406dfa4f0779358c8d94ac284f0d932065f970ab23ba452cdbe6397b524b07a906ce69231e46cbffea39c39c9e543a840fc2a134f499f83264c421890ba8250a975bc059d6875f000e469266f7e5d05a6a80279b9b2ddb9d6176759ce0eb5595d34590a77da03e7634ce84746b88ac8133b0438859058ca7bf6b308d10f55b4ad9bdc75e394d5091350c7d4bbd942d8e47c63f196a486489e4730cacf54cda9255fc5b7c0d24ff4811f94f688c76d4df4068350e0e0d9b4a3f2a395bfac6ab549775d7bd7f02d804e3042c2c377c4e3b6c1596af8284f7d6ac3844e9d95dee4d8e19591ee533fa7ab88c78cf5a856d3ddd423883652848c13001100ae1528775997e1f7f619baa7d6852f84dca305345b674618e57d677a94c0ac533b045423a926bf8a81d3d83a1455a5bc2d8c8171a9651dcdb4ade9aa7a4eed2dd7e7e041660b1e587f21b1b829c3025a1e91fa8bd83ff0d541f8c560eb3080d3b59defed1a2c1913f6cadad75162a7bbe62db2ec178c88297289f9f06575a39851eb379e9dbef536506d4f57fe3ad2065cb5cf0765085f8fc9544fdc999e20dd1826b65b4857377d496d0692efa7f990de270f80851f478f28f6fffa5dc477fbe04fec6404a94c408dadd86a4b99f68e981d70d6e952314843078edcce08d6e7f076c62b9ba2422d2d311b179d0444dd56e139d5898f5eff8a8e1b03aa80df5e2a03719443f3e588fbef755fa0e1d424f2006ba9f466784f0e49268c57c330d30010d2f466a10efcfcbe65e3ad62671812785b401738d6ac61add8fbce95cdf0622ef97ebe0b428be555cfa386dd0eecb9e1fcc777db2687f897efbb8c3c429b26551807a251d6b402ccbc04804f5eae504d6078905de53acb8d275bb5a8dd520f2e7f302c8f2085832ee3e6cdc15ac3aaa24639af8ea079205c4ff6fe56f07e19f2d7674a2e45e1f085245df1451bdc86ece49cfc1222c6a8b358eceaa23950a71b8bd90079dfd22c749231fc317d841ef617d4423e80de931ac5616749d5e8ac44a93972171e7f802e33a96394de8391a333049ce316de6ca8a9a9a92131fca53692c9b11892a4fa2b28ba8ce45289bedf54366619530a1e9c673b95a93c11349c015d9b88978b429dcc2686154553dd4d1e6ea8e88c8b8eb4dd1487ae5b8070d123df7c414aee06b55c4ae48b4edb51b79a8b696238b90bbe4602bf6545e9bdce468fdb20a9507ef06e8e41edd261772a15e1e8547f7b70ef1305fe57e70f9a78212ac98cd8229781f69a64bd9cf954578a24ba6ae589e3ce5f67450f3d45db8a94e1dd524813056521409c1a983d28521da77fdfdf9252e31774032ecafd44b7df1e5924b8a42360b0b100ec62533ad18ad66a5ec5debde7fab7e0badcd138d9753d2f0b1f9681ddadf81250abaf262601c130a31cd53d089aff7061a03537714fd7a4f61fce29cc7376944aba8ad404786d295670c26f94880c94826d40c4de023b67f4edd3019eaa026d309efa068862e380f3981ba70cfac8d76e8d2fd3a88413e5d2af47d38f66de54f77fce8c3c47da9c30cc00fe53d648b3ac1dd0f5dfb0af847e1a2c9591b0b7146016137ae527b85d8172c656e43d21b72156ac4c33dd2539bc7e2423c9d775260b760bf0e04d2a4f1d382c47c10b7418202d013ac53ea0439786b93c68f4d61f1b76978a241b539e2d7887b55d6472cddcb22e5359f09949509e9ef6a8e347d5e926947fb264fe5175c2925451b67b35d5e75865d6ff4329b80dd05ed24c7c0a14573d0969bdf07d09ec5635a2e8816e3c2206d6e270856c64210e375e2cc127760d9d36dbbdd5cb6adaa0b5dd8be41afa9553578e40e0617d401aae0ba2ef7ce726b0a0dde1c3326b4a7c0e50bd1f341c83a026018d20753ec1a87355f2f9a5935926f083a3e75929cd2b7c88a9bb297f786ea3677823cbd6713d15f6d7ff310ee5a177631b8190925eb4553ed7d81cbbf655aeeaf5beabaeed320c9fb7148fe46289cfa9722715cf6ff51398b9b820eb8b3688dc802736ef81aeb3895439e76a970c0ff8595ebe73d0303e28c01aa2428e815d781fb0ad2ce54d810176b51477f039af97fe1123016bcad1655a8353166f8b34232c6be1c721e8f0995a989dce36bd7ef2926036e07acbfc964a5aaecbcb456c2236c6835922495486064c84e1e8850243466e1fa1dd1357fb6fd757a0564ffbf5de7b5ca14bab750239f8187cc462ed77a24f8219c308f537c748770e4c7f4d6063233c8bde45ef285719b0543fd9ce7c023e150e99e0395ac9839bcc88441eb42b65eb6847e257d5b8b8d7c875b26ff10d9ff864f236c1302c1af5d2079056c890664e38fcb8c4afcbdb7842c6f9d4bb731d55e3496c3838690c206cc0ad15561a583efa27b89a8874ec3e0398b3f480925637f62cad16efeb883a8f6b4e825f3844058f47fd8f5d73298ff143d0ce7aedc42b0e331c4e2f41ca489290e6a1b00068254b9186efc575498ba17f838737818769ee0e817d5b976235c8f657fb23d91a82589fc7a7e3232c5f3cee8de953e0ed7a198720795b471f9cbcf2acfc7cacee82ad154d6c8ef3e8221e1d2d877f4a2a69264f7cfe1aa8d76518d53dbf5f479d20804d2882984d78dc982238b253e15fb84a3bd19dd61ee63af61d5dfe10b68a4e913d6c6d7807d007d269390cb4df84ac81bda9fc11d8b3935143ca2b482d6c72ecf7be59aa473126908248e48a556ee6fc0f8b465a590e5fb6025d3a7c499f0fa59d7a80d20e86dd6b8328f759c4f3830a3584900f9858e87cbbbb9a10a61fbe4fed91f6fcdb4e521590369df06c1994476d832dcbb97cf2debc5704a18d27952eae98fedefde3980e8b295120b2fb638f8378b1568763c9c862d01b6737d2386533524c9adbe820dfede8719aa7df015b2b3fe3933f2718620daa872a8d802b68a951f2168eace2ee6f79c6fe3ea352f756bf2ed09a7dd6a452801f6f2ad767f16bb31a82fcbae375d79fbcba199dd1c2e591f350f5f32242276d641b41d2c48e0b534cab90bfe46d5e15f0adf0d7168faa9c3d2b01c2e52afac5536459899e3f070a249864ae5c7974406742d2717597df1f0d747657b664906f10b9e2984eb82336b32db2a4992637b491bbb424c54d9118b27d62ccefaeed7f64212681e0976948bce91f26cf70145c3c9e2e75444f6ad93059bf91596df0fc28f3a70c783e35a6a59936ff70b60dadbcfa07d409914210a014b82aaff60f8956877acbf36c8a808c756fe3746e1bb994a05a0b4092f6af269d309f5c5db39784f1776f818f4a76b3d1bc2fceaf67a4034c736a6f8a7c59b6eb40d7e001018971d1cb29579cdfb5119c89c39aacaaf985beb173c00827282da45f11b84450f8235e9aa3dbe174598444091cf0f508484816e82f2b4e20785a86792f1ab8308379a47e6783fac5693e9cdcc0b6b8ff846fe1da67460cfdfd936139cd5997614469038ba06c8679821940605710d6f1925f6b1c94b2383fb4d6dbc7496d8fb985553b646498bb914cef9b672e84424aef9bf221cc12dbfb375bef70a4fcf076c1ce64bb43680a9f220e3cfe80a0b7d668f9e0f82d17547d4dae0980e1cb5b0c81571e458876ae8941bb4d2e0cfd35702bf5e0b445a276ac5b4db000c8154291c19bbf14cc75d7c12d09daef5835dc09e63f1e8aed26fb043d22a767966b2fb50dbe7fda50a4e1e37c99d6de8a9a7f88087687a2e72b47e491168321c2672f29affd35650a8bbad70fb9ba839f27759830364e7d2c38cefc8b6cf0811f3169b630b00d64e1c1e8c5c1f38c104169f7502a38503500360825a5ffe31a811e17225ddff6267cea452104445b94cf474a694c6f36e135ea2bb2861c52ac2335968c718aad110bb86422e89cf1586e71add79b9f67977ae0d032f39b7a13de6ea0e23811925246ecdbd955e588fef8afceee9d2f9041477e1a9ea847b1a511a0739fcd9a2b6911a8f2a972d405df1b13b4a605b94a3268868f3bedf7ed28a04c3d6fe1ab4170d9b9c7e50f3c6e71da2d6da87415705315da00bc99e16dd5ed7a6d57918e3377ed938fbe21f38daf51979dff60d0a240a2f2785ecb1f2b1a12d530dd3ce2f94632452985423734c5c6c5173b6801aa49e5badc481e25f89b2ab6e9cd27ccc1ce8297777abe5174b0c79d487a061084ca16d13136c2d970455cb1f2f96ca4b38facc678ba6af1f7dd463cf6b33d70a00e57b83f3cb1fde71b8ae3259312180c97a6e88f161adcf99c356e9b6efb648e03c63bc94c248f66bfa778e7068be2c4ee4076da0f6c0e484c8ed551f615fd1296bb77290bf98cd3bfbcb78fc954bb94fcf95310ec63390f02dbd5d65dff2cad76a12534283f455d2eed2a1ba4da483306c90de0073ead0b2a974121b73a078d8f3761e41d627ac0847ed03e3bdd4495793b5507b2e80c1378c8bf4f6710d0bfc0520cf7f938b7e617b176e1f67e4488594299f56939a03d84d4ddf22a8678b9a6dd42740fd02c1f1d0923010cd1661cffe3a685bbd3c4961d7dbfc306431a2a8fcce00b0586b11660e9bf67700c5409d2a6ef0dbedd0d1bbe34d39d7989a4880afc142c57c130d7d64cb30bb52071a5f230696bfa8c2b3ed83f749614df89e050f2e30a14a6a2f8b6b357bc8ac05b8a85a9ff6eff4e37e25f456c373597699e054127a1c0d1f389c87472666ba5087cce413161000ecff8d817ffb37aaf1a22500cc090fb3649739a2aad0fde70c1f901fc069498513f09ab13539f17229ee1eb5377a02dc9e93382ea1ce987da3a8046f94c4276ad41d60a955a72c567fa903723739d67139513b192a886dbf0f61ce46adf0f5074eb81c02fea021bd5e66f7c9401191a9ed7d25cc3003f7cf8864dfac3214e202e1abd6e01ddd12f3ea89bc22be043689c4dfcbac3031543940a7cdc6afdf582a91634375a4e7891c04a4c2f6a80c09aa5a1c35ab35c89fe1b77f765b7865a63943b6697cb35c3ca740d59534b8c8c3fe4718c3cc31f3b92f652c9a6fe782cc831d8ce6c13fe92ab1597c1b9fd3d8ef862bdd0441046cc7d46d1a07c2b3c5d351904412ccf89e4d4cc4cf99889a03d25327a1d8834b65660ae896fe1de46b898fa2616fcde9f8e65eea8be83fa7729bbf7aeeeab9170f28dcaa394bf85fd39b193b0f626bbd07b91bdb734b7359cba933b29062368b5d22c06f421ee9fb463f04d6ffe9639e6acadf82221c06f99191db306a9c4e48387fb5fb12e8f330a69aed907e3f2cdb998a9608be912eb8a83862fd7ec76a34359e606599566d1f39f63aa1195df5bf2eb40f2ebc8cd11afda53e398ac62924243fae295c78641c7c3f64f970c304a266b0496ab8d6ae60eb5f9a575fe65eab3c3b79d93d66f1616912acd32154c55243a19dde9cdea0bf29bacdfa3a5e1789d3b37608cd3aefa1af92a9c600f3019727571697cadd54ce4f8a2dda438e5c20d4ac87e9c909ef10e3804fbf9646be33a3884771e831332b7f3ec1e61094e03d397461f52a0f7330f47bcd7990bccdb60a1f36bfb2148fe658d9fd99dd560fb84ae395c5a177571aa6a5afe0a2deead62ddb4bf4ead436742bdc8a29dc72908c9e40a957397c05316c13842aa59027f48361f914910cfc5e833d2a44dbd31caee242276e55ab621385a7746a083ff5b41ae7c1d7678ecf381e9ce9ed91dd8f7c6b45e7d2bedc8d253f5211de3ab1e6c276c40b017cc0b1327ef449684d6c59370d02c79ecefdd1b94c97ec4713ac03667e66b2158068808d15e9ad83c069f5859a9d45adca51d8b158475774070663df8139bd60b68677db282f7ea0d377f8b9ca4a3f5648ef036a0e0618134b170df939dc612e7d117af019b2c3a9a462a06f9ecca4cefd7b87c3327b554a16564e6e2878143fde2ba492bd906e87675852c4df4322e5bc65c1776f21ea3b7a84cf254b0e8696d70ad7bd48666000c1a7f3e757cf97657cca9469dbf86f734888c301feb5f2299a33492b70d5fe5cf4fe05a6e85ab79c84debc1d4d18f53d250836dbc007f7812a3dc3a92998bd00c87044f0332c93c2b388095f513b1a5484151154b6a3a2fa8592ec4bd5122a4a6db157a041836fb8ddd2ad0e05767f11063153ed21eece5f499b90aed173c5d423f2de5fbed5bb5413aa5b21e9ae3639dff7dad212f2fc84fcbfc3c3e807e33a8b5d02c73063e355a2ddbaaf29e107ad9d2a0fc6be6353cec14676b83d75678dfc6a30d7054c075da275a2c7e9c451c3f74afb2350b2b594ca2fbe10013ffab7559eef2080e57fa739bcc1c1c29a6062e23254859eb3d29f4fafabcd9cd369efde3ae4c70748ff021a7655a9c23c98da0c230200df20ab1f8a46aec9aa521c84b6009c2606bc2e91ca9eb6faaec0c7af7c333a8042d5c2c185cf3631d564d62b7575ca93f636d23cf7ec45a72c8706f80fa227258a702f3c3dbe70dfb7bde6ed0dc36f7f65e9df10db6f4498076a37a794e625a31f6f29c418c046c43698151232cb76df901326739b11f7c2ab971567b57a60f2f587d5c84fa6b884b62a89e9843405cccb8e827affeef7f605722bbd14d6878918d6941cde5b3e1c2ae3e235f30dd8180f51bea22fec9272fc50a33171e5fc05be85b21bcecb3f58a56388b03bc74f8157cca2b751eb81c5b20189ffd9fdfa32f167f8a9d4d150b8e2b6d2e0f2e2bd715b4970fec067d84b76e77ccee7c8b18b68f7a922c0cdbcd7494550507e2b4be32cbc17f9dcca288dcc2d4cd82cd61edde35868416b1bc25822721d683ab0dc5f2b48382cf6e72d6bf64bc05adcbf6d5eab0cc9fd2e345be555029010ef559b2dffcd70dd3501625661f7b02d95170b28b536206282fda76472e7024871b4ef7d7e3013c2b432f0331427de885e62352955b5052ca1c88e5d20805f579a952416609ddbb9a69b4ce17ec79577d4888f8e0b3f77e583e27be2f0a6822e60294416bf69b06ae907543b4372f7dd9f19674a3f0e846c0bfbfe22bac4db5da6c3653df98c032e3f0161dff04a130a9189b05b266ed597e8a5fb26efacc62e9a09fc5597752be95f5deb9adc72c4ed7f2e93fa5eb34f6e0e83cd0b4e0dab0e357a48f3226e177d414703d5a24421c94e8aa192461eeb441cdb3b684f971baf9d3884a5dbe9c20adf589a79a711e7e5d4612371d56c249ec89b69ba6fefa2f1320c2b43a2ff04d80ad5d4a57ab1e1c4b6938a5937a5098bbd7c11c2bed13af2fbfe4d50d67252e193186e2bfb41c595dc4bab97f8ff70d0d44721b88ed8c604f1f6ac0d1731dbb9dff1cef2ed386ab9122490aeefeeff4390cfcecd0523948af2143f41bd649b93241116562175ec1000d47fc3c0326a262d6f3cf7b83445e6c1246109693090ba82a02ee3bbcb4102bdca4b5c9a36541d5c0af9d81c3a07738de5636e0bdf2c8d69d2a38da75b6263e941ce9deaa6ae2e96153615a394e0b1308b5d85fafe7f82c53cb5c410d90870f51645facf161df59a97d4b8b4c84c2319c31d8e577c8a3aeb280480602a5c9b8b68da1bf3c10ac34cbcd420f6b57da5612510faf18bb7f9dde700f6fb8a33324b99265c01ea081bcb7773afa8fb4a80ec2e1fa7d7e1a694cd1de4c64f724a2e57a3ca8e6c5410e92dfece7f1890aae727bd96400bdac067a8402042282c7c2a34c4f4067430a95e855ab2574e5620923d208a5fad4650107a9a289131d79380e57ed4785dea728c7be0cd9a90c646cd399c724c3e4408371464cd43bafced755fd2f15a01aa77c1135d4c65749e260b77f6cc384027d4133ffa840d7f2dc1349b2b820c2f12817ff0cf592208e11adf9239c1acdbe193ea6348d88cc9339cb3970e9a482a7c1700bc903e0b45ce059355c6f6e0b64e1ea2726682dcd20916625b84f81771f4741fd220e5345cee6bffb9056ef10a2df7e482f23122af16c1aff1d3376380a6f05dfe503a6fcfc9219eb4fd71279c08f3d5b3d29715401e01974bbc3af9f92153ae61644cd9142d760041bf2df5c1c8375d21487780f3efe1619615c98b37684d0397e35b79ad2559c31a5420faa95ea89af2eedc65b027ee0f2db7b92752ea6aa1e48704451887b219181a8ff0e3419120c25cbfb1d03cef71f0c2ff0e2f6abc871ebeb0ccd6c25a18c3b0f74dc79f7fcf5fa4bd7fed188d533bd2ac9f810957dde3eda545aa19476b82fc0a32ad14c7f28b600fe121411e52fa3abd06cef29970fed1d1ca001e80501cb1d4cdfaa4797c6dd5f24e95d490ba8eac96316b7723331d1344672cda49f53693b9e0d29f3ccbdcf0b093aaf8c1fe956fd9dca8a5778f17ecdaadfb7ce040610fbda36e65c7ed781075278cbc35f7ff3e7361f1028240fddb6137549130c8503efa136197f2525abb152704695f526c49008a7b5beabc834c2134efc2f6ee4723b8a7e3ccd877b0fd088fe330468e84ed80b10dd7dd913414cfe3514fd3eaa1f620bf8afe11eb4807e37458fb3cd5ca2724589cda3d3922bd38a6a1c06dbf72ad3a40beda24558f85e934a0c17c03abeb32e7235735d9b930c2a03f9a38bcc4e850508d9c23aacf3967feb699bf730c297074a6fdc58d0ea8ab803050c109127bb260da895d85d0735ee1e2437046c3a714b025697d7e800b86c13198a077f8d0fb3d15293bf6dd5b882e648917efb9ae1c51d22a8ac6a54e9b0b49372d086635fa4ea05142eb04ca9aaac95c16602804e262a3cb6b5264f1f36e3a363461f54b5e8254355420858694e25d48b08bd15f4bf5172861d2a3b29a6e97f44975d7b6b168d2e49b9f62dc0fdc6fc89b5a953e40b65f0b4ace2272b9101910a0c16f8ab00fbd1d7cccd75f266791a55b6f75bc474dc4407244749bc8f81bff0c29bf897338d44bb160ff9cdc80e2fa0ff50d86dbd5aa613948674969c5b538724782f730752f475031c8e1bca09c427d89015f798bc793a5a5c474e0a017a5480885213266862ad40b1a0bab4b8a220235e33e8f3830d2a09910bc865d4eca46f51e91ef6417f820794d5677567cb6f9c24a50360e3b0f12203d5590399337749c828c57eddf760d5291cc482e62e9779fd25e06ec1d242f59e37f150d5dd6437cfcff10c8e7c76ab1fe3829baffbed3dc6b8bd027cd42d80b623033c9c5332342e3626a9617601882b631da8c1a5907cd875332527de3869b708c7177e17e878147bc74c3d1bf1a00c7bfae05b92cdd709a1cf5855abbc53e48ec6a9fd1236888d5ec183b313b0c405ab821504d1b4f3094c8fb60f3172b76b2e5082ca9891ba5ceb8079703bcb742f6a56194ea8905c09fb8d5de0d10b3367631d7f49c319b22b8ec1a0e43746e7382f88f147fcbb11d5c82cffbb0dace34ba2b190734885c7bc348216b2fa399cfff0dcb92cb04dd80742fdfdf9bb5f1813934e4d21ec26c934d1e18b8c6160a6b34d96f9f134173619a8991cdb2fb9d0970c6a37cf6298f3e6b3e8409f1e4bc2d68b5d437e45f87e5f29b4e2ed107a8a53249824a480b7b2346a6abad229d5343323722e9c7dc697bee1d905c91bbc3dae71a2086098097e72eb5fff57717bb4a7a0a9ac823f3c01ac6875c94366aaada4f3450fc69a5c8703618a3dea887d85bb54e3afba67c879b8868f991540cbd2a17d87ecb5dce32b0f59bd407c376acd8738f4ea1d53984cb39293120303d92dc5ebf8333733f54ddd8c38873bdb8f859376b692603988c995721124bcf41136ad16ca9670187442b91fded950937d67505ce3fa005f3c495d47c6730104f2404879de415ffb21ec59c34215fafc723d11b63afad7f573318f097691135b16eb46ac534335652c15e48f6c1b042a7603115e742df40d4bd32d43176f702f618a7adbf6a20c6974a26a1e8c096d0039a753dec09732e69e7da8fa302264c314283805b7e235313dab653c87747dbe1b3dd750fccf9f118675e8f2b266255fe9fbb88beb6f15fe30ab242085d18013b6e3a306e635a98c4e8be88453819a1e09c047ec0a548a491c27836bdfbcfdb5c77181fff0f8a8d79e2a40a88ec069abaf5b132ed9109dd09d5a80c59c3410362754265b7be145078c678fb12905fb59e38bcc3fedab84ed4a283ed33066aa03b2f15516a794aad315ab9891868e3ff1fafc74265fd5d9c8ff2d5101a9580e94cc9a4ff763c4b5c3b9187a01860a2bce369311d74252c151a8043d668a85c1a5abaea9588d8eb5e8cb50205499aa0b4799c17d06b17d2e270af9652ccc78ee781d4d67b533753165c9b92d529bee9aad006db941cb125038e8d3afe5e4b39b90131631b01bef81ed15ade333cb9b79e9d9ce08307711a63a74aabaa2dd67435c3f6caf27139a59f82fa608b0178fba76fc9bd50803b8305e4f531302a1554a2f44403433d3278deab1cb320a981e195852d5fed03ba9d4dfc58e05ac545809201e7857bb0f747e8e2a8c9cdc069ce0bf38a583d35f54d208a1cab06e6a65a78c3759452cff1b156baf71775e940d2040e85f511b071e30dfb0173a78fe585c2f2ed7361aeb31ab60dc6cdf019910a22604709768915592fa7e20802f65c5f0a2b8a480c6397a6fff211a24540c518c2dc183590e8f56b9791f700ab643a670072f3ce7818c9b4dcfbbe1192b56aee007d566dc502be1e1051144ff5ca36f19fb604e2fb9c2134ed64c0b6afc453bbebef87735712566e1251213c246fe7e95185cb03eac8c6ea02ea47ffdc8401f2b5f4e19b64a5fd301229385dea14efdd45b3712c0ae856f744452bf44424ed449355ee6956e696a56be677a6d9140a51d599c1941cee5f5d3721246ded060934ff96a585ecdf808f75650a47b5689990753af6408be75720b88c1a851fc28ea2af49c33ea8e1402bfae1564c2203cb67898c939d21c87ae24a422ca246504a7a49cbe488affed37125b8accc083e6d14afb77883e7fd021eadd5fc59a777ab9791dad582bc05c3376458a7eb41598105c4bbe43bee171d1416bd9a533e3aa2c1c8435d9b8bd274d9c440a2ebaadc7a8ec4a8d087751c2482014fec26bf9948b9eae71d248e13d143dce970cea45fbac61e93925af5b0bb6de6d3a6461e09e869f3d20f3c23110e6640f80b42d23d9e79d4becbd68bf7b64999781f4f4f832db173558b3d8f6d3759dd1ed11e8fd810cbc76a408b495ab364029e12c8dc574cb72da4c116b93c19d2b011bcefaefeb56c07c3882ec625a258ecfb3c5d165473d7ebacf737dea6fb657a35fea48cd19e5cf05c66edaface5b93b10dcb99cac93f23836c915312d22bc58f351af4428fb2f0cb9297860c9c8fe9606dba457190cf01b347a572bd28c013601021aa2d2ca7660e7bd2ffff4be7fd42dc976b6327a807c99b09d1fb9626468b78053a072f9281540b5e8b77f07880bfdaf1ea2650cd88ba74dd37e0d43da565559bd7960afcb79f97badc1ebd729a0552f3fd97600a247a06e19e0ced10077550f99102424c3b04acecebe90fb1cb6d994e05da848699c4e5b90aceb786a76e358c8e7b888010fbfdb69eef88aed865951a32dadd9f2242da772467e90daaaba9bc56d9de49c2f66987880cdacc4e4e4ecf2c73e0ef5fd3a12f1f4e1404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f", - "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f" - ], - "measurement": [ - 0.0, - 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 - ], - "nonce": "000102030405060708090a0b0c0d0e0f", - "out_shares": [ - [ - "3936ef72478a208460a10552f8acbb4b", - "d00477bce97b99b5cbfcf8a91f60195b", - "08482153293c3a8a96ccac3468243afb", - "9d0be62818287a7e054de93542d95a21", - "0562502849a4d7af989b825403b19b0c", - "f1d5db7824cfa7c1dc4a0bf5e2ff606b", - "75e0fd84de5cc749afd9fe6cc857a177", - "64b5ad3e698c02c90ed5833f72de25f9", - "7eceb8087bc8b5d1bf149bd4c4fcae19", - "d4d2d868cd0e94f2d7a994bc6d9a9bd9", - "71c6cd0c169e260325a5759cfdc742c1", - "2a1c6403ed64c6b8cf85d817839f893e", - "da559cf5f8e0e1c71b22f2481e07db4e", - "c2de036b739bd60865e05c37261e16e1", - "deec5ec605a0c8c893be04a53ab9936d", - "426d68b8a2a23034b6a1d29b9055bc29", - "1ec53a1dd1c612623e1458714e2b4b78", - "422aaf9d6a0e566dc98357620e8f6ad3", - "cd02d874bd683418db2b88573feb4f84", - "1119206c3e1e7a3c4c7bfd60380e29f6" - ], - [ - "c8c9108db875df7b835efaad075344b4", - "41fb88431684664a18030756e09fe6a4", - "f9b7deacd6c3c5754d3353cb97dbc504", - "64f419d7e7d78581deb216cabd26a5de", - "fc9dafd7b65b28504b647dabfc4e64f3", - "102a2487db30583e07b5f40a1d009f94", - "8c1f027b21a338b63426019337a85e88", - "9d4a52c19673fd36d52a7cc08d21da06", - "833147f784374a2e24eb642b3b0351e6", - "2d2d279732f16b0d0c566b4392656426", - "903932f3e961d9fcbe5a8a630238bd3e", - "d7e39bfc129b3947147a27e87c6076c1", - "27aa630a071f1e38c8dd0db7e1f824b1", - "3f21fc948c6429f77e1fa3c8d9e1e91e", - "2313a139fa5f37375041fb5ac5466c92", - "bf9297475d5dcfcb2d5e2d646faa43d6", - "e33ac5e22e39ed9da5eba78eb1d4b487", - "bfd5506295f1a9921a7ca89df170952c", - "34fd278b4297cbe708d477a8c014b07b", - "f0e6df93c1e185c39784029fc7f1d609" - ] - ], - "prep_messages": [ - "52550fe5d66bc940e58d5f106ca89720217ea3a9296cdd7ac3618e7553d48874" - ], - "prep_shares": [ - [ - "0bccb32e821febc40b1ff5a54989b74c5aa0d20c0eea9b5379d8bc1b4431588f992395bd44b13b1bb9c8c5f9b2c845e4177e1bf85f90966744d1fcb0097966c8ed45d2148c9c9803feab1510fe7f707c6a928944de9eedba089b9fbd87723392f696839cf96570dd42d7045a54a24bbe8c0b58b101d80a4902786bcb7455a964c8a7cafe99cc62916fedab219cf1b76cebfbd7989857c787c8eea3df16b96e973859ed3ac16be4e73d0cf644ef926139e4078e78f68679f38047e39c0963ea84c83de27390ba6b64d8258089e52ad0402e798e0dd69da7a4a562c5d1ca9ce15bf395fdb8d1e04fcb4378546747719532874c41681e01192f9b47857084303c258fb2068501328ea51331cb4785b86ab7317819e02951d5eeff3a194749fdb06bb20327ebb2acf142c7a84abd0a1128952788f29d31aae8189d82b7210aaf344a6541e1f7dccde726729ce37bcfc820c4295f378880ab1fac3b7a57b301a4a177f9c27812f4fedf0557f3d59963c808ba063ae3ab3949d84bfafde1196467aab37872980daf83dcee3e2b329ac1ab437cc79ba9e45012138de71ee25f8e70f19fea52013f4f250d6a6580d5dce0b5e89366922bb812d608dbad4c7b5436c66efe17f0093b8a33316c1df6724c4106649a2360518b88727d5f1740821d68ade80e33879b596caf0d046501785a39a4de209e957342dc95ec6a80c8ecc5d31d92d29e7f5a63612891fe5c116f80ad28e4225a036329d94cc26fd431a6b1b9105c0c3dd893ead9d8e34ebb95f9e12d057a4c9d9701aefb6b4cf17b9adbf8c20f27225f8e605b4a50e04c897d8b33806ac856e45191a3d592ae071561e968fc0fc4faeb14d3cf4b6e66ebcf7ee7f73f157e9c00c72b2dc1e0adfebf1aad508f80222d77d29dc09f32c75ce58910ca1f46fcb8a84ab61f3420d815a14d4c009d0bfb9a7e2f5f63ef3c3e0c7dd24c20ec052ea69d469f2509d93e9569d25bda85859a94dd50eaab2d8f961a7a37dcb78d90a26af0239d0ba2f121a669da38b694c9788d798e4a722e39816a64a1ab93d4170e7f6f9ea454ad777c78842a771c493df314c7a83c234996bf4b81a9b43a27713f3b10c6cb419262023eabef764a540b005323b12d790968e7503b9fa3a170a12a7072a9f356cd03af2cb3dce0b36d32d6c267d12205f8bf7d46fcec4071d6539a89864d43ee91a3d252e7dec1e3730de40465f1fcdcbb5f09ab963c338cd5021a9a2f9fd6e33da90f6cae2e26d1721a6aa4d0ece5d4e05e641e52d4b4899a2174fbb91b26dddf95c6ebe306ad89dd638ba160c8534eeea7b625d25a808dbb60c0167e1e0e43ef82d78d660e8e6abac0ba846d2b196646b6762ef094fa405ae096070b292a9c81ab93b749a91ef9c21fb4b8e0e025667a4711e4df8f0fbcab29044e8331cabd65efe3df43b8bfa6b1f26a0fba510a1b3f45b9366bec40680613917acef4654d1dd492d91e8034fa23c07da48f8cbae8d2fe03294e71b1dd19439fe4b78cb5a957cc0c018be326963a1abd843a121a4f5d607d4824a4d4461715be507939044817c13356581581b8459c7e83ee40ffea81cb46dabd5eafbd4d708ec84043803fc63c92d33209891fedf5017919f5688c64079714152483c715f0b8e4152b8aca7ecdec4c9ac570b2f0c01650aec1fed18d5fc4cc3f52ed406a48fa7c886c224d21516d0356f4e525e9af9ea24d7c76be349951ddfb5758b2095cf3cad5d1c6edbcb7095208a9b8af2a8ff1d1c941aec22969254dabe6e9b03f0ecb9523c81e66272ce94b70339d673b07f9542c99145d62e341f85d96cd6072cb3d66bc13072a789b4b8cc25bf1aaeeee49de97ddf050ed3519779d0460677834e5661b375127594ccc3d15ff16dbbbeb1b3ee81b1cc0698f0d2ba9a3effeb36131da0302e8e2305a8ca8fe0267566995a425441b073bc21a2bceeb7e8c0c84d3d8c01515d5b1b3e3aa0ddf1e8f1a7d3979ea7424c16392ef39662020ede49a22579f605eab329c9540bb3e3001b42b639a2751c4847275e376aa2821f36bf5f127e99a4247b101cdcbeb3f047fa1923be1036dcd901b3c32061a30905669012ef206fca8682d5a3050bf7bb74d407531e67bb617aa44cc60ac03b06d7f4a1b447c84cdd25e6b23de37df3f23698b55a875cd52e3eb61a17ae2d178dd5cd04f4600c6b398d38d88fa91b670ea981e46d2ad72f71f6bd8051cc2a052760b98f5f366878054b65958934d656503e69d97fa7b0b193b481e903146d971762cfd4dec6e85617a60532b043e1f6596fbcafeec4b96576c443a2c4bd3e261fb5376141090470c0efb9cf423344fbf24c2bfa0cf1fe09dbeba31c15c3740ab51766873453d83bbf4c461d22f64fa0b27e3f008aedba3b35d05d7b58d7102997d680d1577fda2b2a37164e1f1e1a46c5e713b578489451471ba15950e2cda3c3b3f419121adf8b7e8bea6566af72f9f21c7014a034eac06c0af820b6a025a1fd829ad8bb46ba465e96b3ae3e2ea2316f28f3ef82ff8a2e87a5f382c3f3513b47dfe4557a3abde30245c814026e10a7a20c7cdfada39d35b4971b6bf46dc9a416ffb862c791de006d87ffe372b7ce4364c8df100a4237209a836a5236d2ac1ba79bb58368b302dcf43c823dffcb687d29adc8d461e64b2d5289e699f0b3669ee56f1e89916885b1124467efa89ad3dcd21153a7a162ed62c1b1c463f73d5708434b068ba95ad9a16d470d2748a35317f5007d02a38516a87c6c17a1f9ae91026a402777f522ae7978a5f8941ce86be6ef41248037f0e71996f98c5d8b4ea8f96c0e6e07aca70d0cb15fd13f2d6f0cee3a888f8881df1416f9164dc07357f710a4c5e22ef0174cb66e55e14c6501988051121d57eb06a8c7852421d11957e00b5fd5f10c113c1919f65f45367b1fb0af048674b1176ebeda716074ea04307e1fb7f905a4b90699dfdf1c775bb58c73d2b760fdce523631b0997d40dd768f08320d0f8ee834ee7e1740c969b5040851ed58e4238c855f14a4fcbd8f2a2947d74bc077da6873202b84214c5d645e532f0ce59d8c67de5ca32707a7f3dd744855cd6699dbeaa154a13ba693db0deaaddbe75e66739c9510579e1d98939f0e372fef535b9a91a83fb6d2550fd01806345449fb80141caae4ec72d73c266614f9e107b943986ca2a377125ae16a3d5f020b07f868680f519787b9c0bbaafe8877014275c2493ebae87caff4fb959ba99f5cd3b15c867efb1c152643b11a04d060acba035b25a5eb27d41765cec19ca4d527c5553646915758c3fba3bcc64647f1bec39ea2c106fa3fa78633f9022cf6fdd25590fb8d943c75d3395767c832b35f5dbc8e4ef35d04b81a158f7174dace1bb9fa578ef6960bd0b92304144e078e7a7db8f8e6780e3a4a7c5131150f340b5c895b1983480f46bceac56d0837a2d4cde786b445617a45596613bbdffad57591c4881aa6e0dd65493c90f04ea3488a3ba6a18a37f86131d968d8a99f817672e11333b9df06f08e7d1a4503ababf8930b0bdefb9763d017993f351e73c39a1cd830f4d9719fbaa7b1484dd311b72281ef73f318ab48beee2ea72069f8b61932923d81fbfff88b4a3439d666625460a0bef932eba1795b0fae5644b49867f43547630edec8f09fa4f3be59dbc7681bf5ff685b7ecf1f10508dc54d5337500fd2b991cd56c4509f72e136590ee692e74b434205f4bfbe1f617228f3c6e7f8d1310a95ca1ca6dfa6d536292ae126de156490a0104dbd246413cc309f55fa0f148398b19bb6c6c3977120193eef1c773b81b94dbf689812a20f152d171df8ce77170f804fda658102bf675fad3b5ad79bdd8c67c150017b9fe2462bab6b1c0ee1dd34459cc36a2cdf47116847d74695837267756014150a0863dd28437032295eab2d2a4bb4fe19e8e49d68ca42091895181acf189c8d7af8d0abf221a2c724dd1f12e9bc6947c288faa08afba046ae171574ae7bfa43df275b178b405b6c04201be6b546a022c13a979b8eafe9a35f05fc3dcb05a39b20f3ce9e905eecb49e515ff57541aad3cdb802723e45d8c0c58bce81ffce4882878ac2c24d69bba80c73dbbb0c92f309d2d85030535b3b34a5029ee8457ebf3cb8e07736884474853e1e25749dd9dcd81ac9c1869ef1d4631efdf0da4c4e10b31a0135bba845d076d5dc9ae022d6c83d894592cc1a8ada08636f871d02df2aee3c4e184c2467015b0f174be70ab6ddaa1e9cc66e59d970c8c08d78710e475c43e4daa36927475014db13f4e62530000d80d38e8dec76969021f51d1f50e97075c36a2a277b19a596c0bb02a06c9be5fba20f4b3cebf718aae3352413b654ed6094676479da7203b7191da214c71c4641f9ba92f2b94c67b1b7f7b8912be32c3cee671529e139050de92bccb485a64c7216eb8091970205b28732811c9854e6e9c741312d243aac410c7b3fae14fcd1293698ef30fb0925ce5667afef2ce0bec24c10b47975651da078df276994fefcab1f8decc02940dcb9f17090627b5cf11e6aae19ccb30e4b78cb92141cb5e34cf0670bcbd840268e125f8a8bee0360bf27a0a1b2760f5e362cb900aa30837c03d2494453bd5a8a47fffcdc24ed1faee6cd98089df4c2d578e68e3f4526078e3aebaf753dd78eb9c36399f2c1b04968e43ee89c0d81d7665e4a801af2bee01a2dbaf6bd394baac6e3a0c570c830f886619f0fe9b6bf7af4ab5786371839997ad97ff2b7be0b249b34e8ec52858ab18e823b8644feac350cb16a4b805bc1f2a14d07a29b33c73bd57e8b38a7e166298e0b5ef2acdf9bfb542a9d931bc87ca91bd9b856968f6ed7f2c6bbf7cc6ab968e98190a3f8fb30ac0c8977440731d3feb9e44b43c2711725cab782a1040640c7a2dc2dd5d59863108c8adc3e695fd8494769d8edb82de7fde78ec9025c4f0123d5f51672bf2928f8174a21efd475029cb04948939b8c37c1d73d19f1dc55a0b827ae4c4335e8cf11730c7baca3e2aee523c573bee4f43ed898f82387c60d4cbedbf1b5dbd2d2df1c6feaca66c6450228862fb1ced1d2c27b6c876e2d8fe3d6917beeda01dab9170ec267739f35c04ae7897f42237e08b653eb2e0670e04b7579f8e9f0e491995d3ede924a3c579ba9ebfc2ba148a3b6d258dd5c5340001d41544c635937dd67a5a56cf820f045859e6acabe6ed0c992f960e992b2f8ed395c106841566cacccf40c8b8317d7849d6f8cf475aafb543656bfa3dde7a324104b56084b88616cb256b636ba7f65b6b2f67d64189a32cd90cde4720c0be916fa3e1552f95904435936337921fd8a9c59167e03edd585ee42aae56e1bdebe3c0ec813c0f4369d2014cffd6613ae8ec0fa7a1a1a09156ed610bd5d9ba27b0191d8ec6962ec4d78c1742c822d6faa219e09382975b5a214fd285e99685b91628a0cf0ff92c365251fec9295f371909a4fc8874fbc68b98db8db7c02944c027c45f66869123c7ea499e0831d0e30c6e6c32028e64ca1f4f0f49f81c2abc74a32317f4177789fb541caccb56451fc40b91c8fc9a131318d6bcff8419455bda362944ba7c86ccd5ae34ec1f62bd3a26949b91bc355a99f4ddae1f3a4f4da0c2489b9b23a47a2410252955177bd59728466481c78020266b7d94c65e92becf8dee962fdbf57e5f3ce7effbb770f6e86a34cee8ba5fbf434fd17d84f9ece997f641cf66dd0480974a536867d79926a60928d41dfb9d40e8f9beb786568a15a96e09d97807c6de1f409377862d389ee41e7d449a80404016883bee3939bef05c5b676b9a3a84cfcb420472269c7de1ebec334352721fc12756cc076e6a146ae87a697621dadea8980391c7bf766a4bae6c1eed5a6fd03888d586b3a2036d3cf9e7366386217966044e838df5f8afcf3565ab7157ce389be60778ab2e4733fbc77ce58d0b92ed8309889f268151e6f05d38c3a65a78eb9ea5a98ba7a20fac4e93c4af6aa1036af922613046d249dc4b5ac4e0b517562cda5f9ee139e559dd5de7795ef9afd36df4ff0d2a02a43a7031edc0612dac8d37b6e2d5f7bcda6b1823aed70457e7660a6977373b2e0c0435be1827770396d84815556359e46d17c82bd2d5dffef85827ece941ef48343e76ab5391a1f8d2465778920ddd1b64061dca3950481c65b266d7097562ae4b0dc22215219d5384dc36aa49da1ff028d61a216ed76f71bffd70fb361eb27b4ae34574f8881e2733ab72bf32e95ce95916ac2355bc58279cc01506c7722832a6ba7d96c06294c2b141239dc69420cb31f681a8f5822b8cd96ddca0968ed504421cffca9b45fa4babfbd900259ec77e088847b81cfd755ac5ab4230804a166283047aa8c38c869393afb543e40212e6a64d7f4f1592dc90f7b4be04a75a25fba59c0c080aa10b525f340f81858d88d79c99c6ed909bd3c837054c4f3a681d5aa4a8fd49f953fe9d1234a231b5e24d5ab584395f7ef13ab342d7719707cc8e6363c221757828a1452c1e3ffb60765b690679260cf38a7ec270dd592d1d968206c81f0abab7e78f9e4df507b03cd58ea6447f52cf1db2f1bac67ec2462cdcb3f5de9d4bd56f41baa484867ded4c4e8b3dcada2de432b7d5f89029fe326637b1e2f134fae683b5ad58130a3773153b46af0608b1f051a597dd0b750cae39a41dbf98791e7878df4978e00c8cce53617ee4ce4aaef0d448ca0ed4dcce07280ba2cbe2a038c1eaf1a092d35697798513196fa3c8c7aed04260d114b6b084bec32e2dfece20abd26931c1d3c68ac3424c3b4ea7c119f31db36722168f63551b126903467e390632e326b4ca829c1b9f0788ced6a999e48db2e9a503581615847ac7d54e3c15b7be46a85c9f866f7a42ecb5e07e777408", - "f6334cd17de0143bd8e00a5ab67648b311613b5800b28e6bc29a236075b48adc8243203765beaa9e7f7e6ad7e5ea2844695c34513780b9c61956b9e2e8837ff2a7a5269fe9a579d9957b10a94d6c320112f95c8a228e12d05ba6b6b19dd3997e9d7f9f79b916072e59363e76ae01d09294eba481d11fa436c309ca6d7cd64f24103b3427c56d2e71c4f1589d77a05cece98c5eb90f34692b55d0c675e3ccc6e8a4c795549235b7442590becef0191dbd04895743c41eb95cd0f9f86f94097e00589498f95a1bef51bf078a96befdcf2fa39f325b520bfee3e5bc6d22e4fac73118e35a44eac7a7f63821803c807cec8b98a619b6a25a3d24cb69fda994b092b58ce0a8e39c87c5cffd53df74d2e9a196f4a80546efeb3f14d4fca7daca81de8b90c691a5eb5fbb2e49860f04574a2381f6dec048bed3419465f4e52dee0912290acb4e6d21801565f6db1a138ed244d4e8c6c7e7bf68c57855ee6c248ecc07226d6dffbcec7618a0f32bfe1d92f7142056e426fab379d0a5b0366fdd1ecbb1831f821a4cd1dc4be876d7ce72e945be5459efa6aad960c8928006a4af7ad3622e3b2bf0bdb25022c87d4f30a5778ee7b8eeab76ccaaa52a82b4873ebfc39dc614d4c585e86cd651959d168f6364aecbf7278551637816f30598474bcb616fd9f69e4ab3b4d77988e4ea995afb35dcc3ded5b9dd3ec2853ed2de22289b208d5cafa51d0f046c2fb8c1a07e3b64cc9705f8f86c8aa2499024b271f3192f1c8478c4c4f8c460fcb33f3a1b9755d4f3d01135394f65605dd2645126144be5d5eebc5d6bcaa554160eb4c730d4763f5e62ac781f12e97f35d0b242a40a93853719779a1704072db854841ba4e9630cac3444fbb5253e2acb757512e45f5c580e3bfea03f033d03f196e4fab1270d69c1c5a3b5cebb925414bf9722d67ee70a0b0d556805502c922500356fe331c321e63522da756756ec5ac4a66f9c01c11fa6c1b5a19d23aa4550eafb99b0192b8aaad3fb93d6010403dcd7e2e03c21c06880588d1a7fe9606cd23a0b80e462e761575429ffb04ce0c42cebff9a150dbb2582dc4a55ba94ff0ce867bd4eb457dc0c8f9fb6683cb11608c623a8ef18bbb10c6e75756c4d295cec3569f0dc4cda05b43efe6e1634f549577984977f133b8d2b5c3783c417da3db2b9ce3908f15e5b52ce21bd313e5a4673aa290e08a5f0c15224941c9519a2bd20512802236ca9edf87863c0feb25f2778bfab1e6b160ff03c522839d090e26e784cbd024c388d8b1a77e70c73d76ff7e408086248f7cd3b575df7e0551150b95c44e263097ee968ee94047cbacff1ba8006b507fc5ac03c5881836c262b98a0f54589e31d4b3cfd7a99569ce3ad4220479eceaf607ccb10988474b41b86abb1fb5ce0518822c38734f169fbe09ec30251dd92346541bb7346971c8bc18e80d36e001dd15702021c6baa9622ff9fd88e806dd59928aad1e66c758a5d4ce4d6f397638e4f19e86a01648033ca6943ce430c2992893d1318109f0b1593a2565848336dad8f5c101b3e11abaf8f26319676df979d7921aa21fad9fd0fb8f79800690160ae495559fd0683beac3c7a8655e34ef3650cd5639a4210b40a50cb4f395d02236f2348c950cd6e20cb4aacbb11cf27b0a5c1b537bd55bb509b9a1bfbfca60faba4f2222a5dd028413fc51ab0623d0c0409a77fa815676302e3a0a3133a95968e8c936cc1018672368e946bc3d9d3b636ad8e7b88e455dfe39c12a13993681337cb2cc7d7c69ca875aee333bea2492000c95cab1e621537d812008038d7f2bf6287bbdbaf37f0ebda09c4bdebb2e98d982d8a7aa6ba49dfdbbd55a4b4f86b87a5b4cd4620a2c09148e6418ded70ce2d863feb57c7316ab689a45ea84d87d871b5b5984982d7cb96bae5d73a5f387769b7b8142b26ef62b63d362d57e2aeff38a37ac2378b2b64fb08fd24c0e10a344b0b7b18b4bad054b3fc8e9ebcbd0a51b724141ead5a9068802dce9bf2be24c88c4cab38fdd68b5300b3ab222c8ad6d656e57514f485e81c7942cb8b47069e68879e655ae52dfefde330a576466abc2896efa57210b569e11fca343fb65f2bdb3d8fcd18e3487f8bc1f70947313d0198464759a873e1f443001594dc992aca935b3345c9078511a4bb913bc51b25653239cd841f5e11ddb06b0b7bb8fc43da0fc5cc7259a2803437e062e3bea6aac593a27e8c29043283a70c776299aced22bb1ec710e3fabdf5329ab9baf09134d294da697f432ff1686cc30e11c8c63b2df7e66beec7b9ad619bf45d2c183e0605c01bc13f4b3288657d34a29e7fd71c39027e8a5e99701f11884a41989f1f660a194826aaa283e7e0941110b7455c2970269b94b2c22126a6669d41547c00023343990b1a99cd72e56a695080bd5b1c8ccd663fc1a1601c1a118d1b55c1db1df881913a19660f009af3db961301b45bba449338ab59a2bdd1fbb359519de3eb9ebd3b30017423eca4922659ba8643d4d8024084a99ea8d10766c81dc7c3ec55ca27296f6b50b79f74b32632e220e8ad9b895ef09aae8f7c85ffab21e48ac523001156f293635d04cff34f92fddd355627d3d512ee55dda1fe30f0d8c513102a1485f4cd75517122de0d50829a8cc745870f3ecfbd1eb277276e2467e912ed27f0a5452ae84e5f7341b2b81da283c5d94105e1a721f8fe1d0a0372b3956da40334da3983b33e76197afd89ea2ee938b9e54aa5b4ec885c81b67869af0ad917acba3316616e08ebeb83740ebf1237027f51718304221de80e459823b79574819a6f3a2b8e82ff5878a2548aea9e66c760beeb5256f3a38d31f3d0b4a670cd52bd3a1bf89444970b379131957048c8f6b98492e3cdb7d0e9ff801f0a5fa0dafb8c5e4cf26ec2461d9e7302d1baf9a12fa30e75a4aa8f067bae19ee8bed1e3c3eeef86674e4c92f74ea56780439d0d1e51b2421cd4888c6a3ca362e7078aac0934307fbe5d109814371b9598152badcce2c11399c0a0bf30dd8f3646e7614fafafa19dab041a39f8014ce116e4e73c518d0fab42521482b0f63a940559b2391bb21ca8428c3db37a12dbcfc3405e04a2046f1c1df3b01f9f87efc073903b8f586941979a4a15efa6f01bab4be36f4b32460f0bb3d8176ac06424b5f6293cda514aca41757e9f887449ba95cbba02e989bd82c24c9543265bc462eac0a0dd193fb114e68311bd857073279478cc60d64f4a86aa04b9d050cd93cd8e0a1653403457fbff09102a1a108cb3e8d34c49b39db3599eec2b260a231eebd688f2b0a07da93a493c60126404ecd8502795072df4a74d5845d05bd030a2324873bfea581764a57819a301a9f95614a443fd2a7907b09beca140528554ce34aa730840278f89582f8ba75c6510a882e66685cef78b22f7e36026f31da89afb9c7aac7193d38fe6f2245aa622eb32a75595ab8bd998b34e51c6d0892bf270be9d2fb2f61030c089d8f4e2c1597879f920e3502e71a6eeb6041be855e7da6e58b94d2ce269f25b2bf8afca69cb2e5cb71d6429846fb2b09506d5074a458ad275e167e6a103c2a1e09b545a14c44eb186fb3da1f296e01620887e15a65aa2ca95dee1da8f98d64caa49309bc9b580a4a7eff8f83c84ef4ccbe7c239420226df0413d535f8dda4ddee9d9f93bbfb8c382123a64eb1db387f5c1bfadf716fe1541b4d7db3fae6bc50ebb4205e529a81db83bfe6eabea64a773076fa1891ae85ef49bf1265cd9966335e0831108752e8470a119cf1dbad227d96cbf6313826315feb6585c00aed4e021396a6bf2eeeef07959eb297a83f032c12ef2bb3cbbdd179deb2819173f50a9e130edc3e3691c8b96a7146aa1f16c910b878a1062252e667f5b5ed061ffb7d63dc90c20c0d91a907af065f364b6571b8771c4d3a53743cf7a5804a3409ba1cf0881e15340f9413152ba04bb2de740b2948ee8e8f127fe588f9e6639b8de9e1d897bb59f01cb8ad03cd718a8f0306a103079ed952633dc9c266c7d40ba2b76f2eff2bf614a9beea1175de366f8606a6cd3c4c23b96cf6d2af59213bb98a234d8752eb6e88640d634bb8885b9bd196e63d039a01be42b16cf6495e37c3809fa78e7f611a1264058f1976bffcedc0162d0408e7cfb447cd762f9da305099d350a2d63bea2c94b46a82a05f34f9fbe699f3c6340b109757ba9db9747380f3f7bb0f722849753a7d4e079fe6323095a4f24e0056bef39743fbf57dd8b6b96ecbc82cb404188acd057b0eb601a2193641a0477d7d89c53e36c956e07919941c79b7a600f94321c9b114f7e953a57896b0bdea779db5ccd3444a2e89b99c30c12a053ff0d3022857ee8aa58358bdc2908dc1eee8505a5e368c7b5b8fab20ab5d2db7db0213ebd55194a00335012e7c1d0281bf98ea8f4fd6c315b87aa0e3e2423f3643daf6bc86e0f4af3004a32f114a3eac9bb3b59201669edf14647d2b1aad0a8a66b835fed65a496c057f13e2694ed828f75df83d115871439178a03e4b5082ffb99dfa453f5256c7284ec4d7cd1c2ee9cd98414a4f46d0e1bbeca744628885310a38f88c8ea188ab76bc149bbc83afef5348f5e26aa631ab2044d3f118c8191292b46ee7b9435d8ced1f5fbe4ddf6e6de68a9fb33a979e8ad337b348cd911342e97db4df12cbb0fe808641ec956bf5ba378a8ec62c5a8bb1b082fd900a41d4e32effab6ff45526353c2114b3435bb520371d10b591f7b3bb852bdbfaf0ec613ef11e3d267fb2cdcf0e6a4f343c89df365c2b5430b04cbbdb47e524debc4dbe79e80da71387f66de637013a8bc070c6bc24eda7dc0580881fe7092031a39bc6b520e337867d64340d28c16bc574bcc45efceaefcd1225dad811fbb68b29a57d74ac215cd7111cd715d7f72bcd049cfb98305a2a0a5943f0cb1b1914f23b3ff810601635797d362966d0604e7ebfa3d3fac4936c197108f9510487fea48196d3b85a93955bfa924bfaddbb77538a50b9ea04276bcd2dec30f1dd534721c67596d2d56de6404aee9f9c70cc8db01ad78969c54198c69badcf5dadca6721cfe778b213027c5a33a3936b2b8e52982d896a4f06b7f00cbdd636e8f52bd18ff8da94d0b31d335351c01e37784508a7ab05f3bbb0b62f269e043c037690b733ab69f3e3025e9ad0b515fd61bdc00d40b803b56bd3bb3647a6523b00cd0baf2e51f6bccc69d461d51f4f488d0314a8605382428c846159fa1a43eea6e649f6fa47e17b799ce9f856956d5a57166a67da03da5da09cf09ae3f1d242a67a0dd39292e3a769eb3dc6192ea0580c4827f9d3bab62918d4ca3f8bf79112780c9dcd42545ac8cc4dc0047ba757e856d3d4346c626c02f39d72be4aeb292a5a61941facceadd01c7845f53521250a961a1653683d54e62e76e933d114ca74aa49ecb183e0882f4fd1c0764a341392ba10c7f8598f470fad9b00c2e5dbb2cd4134137eaae092ae32a1375228df92f0e440736e086fa56a7afe6c5756408d47e972f359734b3353aad74fc884e7c24583f5a9ef6dae18c19585e9c006ce977c3778e32a392f075035bc963b35d94b6e5a3bed5021932b2e3fc92a651e608fc096048dce09725b6eff612b3aec205e8ce0b63cc82ebe8055d8b4dd5f55c95dd5045ff5e2f783bb3d2ccf00bcd2f16a06f8e0ab43b5323e03e7aa46e1ad31a5b2ea3cf4c1da594244d6ab6dc4f503dfa5bc24d521c23adda98cf067b4002253c80482dc9183383cb329bed907501651311c549f9bfb4071c13fabfa91e532ee9c27f5c569b956e138a991fbf85864494304de67227775218f42fab2525128c652d22f973411be4ccdba099d0c9b33717e6335ae4500034e61743a63013a59ad170af3889764b54b741778d04ad6d864acf47cc14e28caac2edc078cb938e9615d05c577534a993a1668e8f71397d6e470ba97a9f9ef7cf642a831779c6327b9f888ff92f3be75969015a5070ccd7b782879b59a12b8087576d00e9fddc4d9b8451f52b9bfaf622be645987b2c1db7fa07d6f26291d7c8437678f28fa9ebc2a6adfa2c1e5bcfd41bc8bc41c3c928058d59d6e502673a4e92aaaa014d0cc787246aab61f90ea8ffb978f0970d34baf91cfcc909d755f14478a3f0e61ab20dd4b069daa4a1a7d940c8cc584db0f7cd28d32621830b2ba77814c1dde131acee431215accdb28abd8dc336ffaea86272751ee3494a5025e8b343e7ebcbb998f769c63881148b6a3337388b2e083173e1fe3ffb82cc30339b95dd0e2f02622b78eeefbe6eefea341fc289fd061eac7b48c771511e3cf4fa24919484bf3ed8cb5345b36aeb00ad28fe6a8bf9f8d12b34a69902e00a2f35d988af8a2cf9218681e874619951c419ae8be344956f09c484722d9c02e659ce10605d31893c19f0b652da8fc78713bd328329791daa12c9ec813497c98c9f10707852b1b9248abe27dcec48834491ddbfef2437906a8c8f89a240d6d975d2f25333529aaf11aebe9031254498a04cef04fce830ae0783dd6fb48d5af4e859d270100232c8ce1b9369b27b9b6017b932f2f242e9d399fe34eab282740f13905f42b7231da4a3598d0f8a070382956e77fcc76dcf65e58593d88294a51d59dbf8c77697500c42fd29b42a581b2a2be9abbbcd37fc7246ed6736fe765f01a82e97d1b604aa293f4813018681b7c4550a19d1408b0b05958bb58d1fd178ac62c4b1320901f3e2d5909818eef07dde47eae5ab1429a204f66e7f8ab8e4ae9ef649169d5478601b5beef75d50bbc5c8bb749c9be360e13c0651be8a7fdb5b9294e701b3e9d79ca1aa575636c2967cbda4b24a0fa1c349a903979f776efed9d0cbfb32e89343fc2c4f3a2b3333bb7cfccab3f827db74671f4f42" - ] - ], - "public_share": "8db2e9a503581615847ac7d54e3c15b79f776efed9d0cbfb32e89343fc2c4f3abe46a85c9f866f7a42ecb5e07e7774082b3333bb7cfccab3f827db74671f4f42", - "rand": "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f" - } - ], - "proofs": 1, - "shares": 2, - "verify_key": "000102030405060708090a0b0c0d0e0f" -} diff --git a/crates/daphne/src/pine/test_vec/01/Pine_Field64.json b/crates/daphne/src/pine/test_vec/01/Pine_Field64.json deleted file mode 100644 index ccdbb09ae..000000000 --- a/crates/daphne/src/pine/test_vec/01/Pine_Field64.json +++ /dev/null @@ -1,214 +0,0 @@ -{ - "agg_param": null, - "agg_result": [ - 1.0, - 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 - ], - "agg_shares": [ - "816cdee58d1441080c430ba4ee5977977f09ee78d2f7326bd2f9f1533dc032b60f9042a65178741467995969cf4874f63a17cc512e50f4fc469ad26b82b2b54209c4a0509148af5f6c3705a904623719e1abb7f1479e4f83f49516eac3ffc1d6eac0fb09bbb98e939ab3fdd98eaf42efc76a5b7dd118059257aa077fe3bc4bf2fb9c7111f5906ba3ba2936a987f95d33a7a5b1d1991d28e5e9532979da3437b3", - "9093211a71ebbef705bdf45b10a6886882f611872c08cd942f060eacc13fcd49f26fbd59ad878beb9a66a6962fb78b09c7e833aed0af0b03bb652d947c4d4abdf83b5faf6db750a095c8fa56fa9dc8e62054480eb761b07c0d6ae9153b003e29173f04f64346716c674c02267050bd103a95a4822de7fa6daa55f8801b43b40d06638eee096f945c47d6c9567706a2cc5a5a4e2e65e2d71a18acd68624cbc84c" - ], - "alpha": 8.7, - "chunk_length": 150, - "dimension": 20, - "field": "Field64", - "l2_norm_bound": 65536, - "num_frac_bits": 4, - "num_wr_checks": 100, - "num_wr_successes": 100, - "prep": [ - { - "input_shares": [ - "4936ef72468a20847ea10552f7acbb4bc00477bce87b99b5e9fcf8a91e60195b08482153283c3a8ab4ccac3467243afb9d0be62817287a7e234de93541d95a210562502848a4d7afb69b825402b19b0cf1d5db7823cfa7c1fa4a0bf5e1ff606b75e0fd84dd5cc749cdd9fe6cc757a17764b5ad3e688c02c92cd5833f71de25f97eceb8087ac8b5d1dd149bd4c3fcae19d4d2d868cc0e94f2f5a994bc6c9a9bd971c6cd0c159e260343a5759cfcc742c12a1c6403ec64c6b8ed85d817829f893eda559cf5f7e0e1c73922f2481d07db4ec2de036b729bd60883e05c37251e16e1dfec5ec604a0c8c8b1be04a539b9936d426d68b8a1a23034d4a1d29b8f55bc291ec53a1dd0c612625c1458714d2b4b78422aaf9d690e566de78357620d8f6ad3cd02d874bc683418f92b88573eeb4f841119206c3d1e7a3c6a7bfd60370e29f64644052e4898066a1e5ed95a9c87a2b7202ea22e17ac8068e57d5e5af71a9923bdd73559aae107f2d99d1214da56a96ef1ee007881b30271bc60490a3f02b93c6ec7a98d4e695ec6b9b0abf6463cdc99629299a3d84412cf17a285241e04d1b99ac97a1f5c61631dcb679b295284860f0c8f8552d965eefb2a58df5e0508b89ac5f81606754d86322a4578c40cdb06c743d96d5b8e09313ccc8550832baa47bafc478e4aff9a8dd60fdb7d773fa0819bc60c1750192bea0a6077b42817c73024ec8757c5d8808ead159001a125bf1abe3c2a1a3b21022e8af74823587647a01495f30cc5566557c255db583b28fb480568c320feb0ecf2778da69b5632b0e2aca91b911de24abfe420a3c332d7fe1b1d8c3513551d11c3b5aaadb1bd0b16dc80d31dd19097a1c730b03999e05ae450b535a9e9f90bbac29e55eccfda14c38e35d93c7558d944169cd8281d9ced1773517f366556593c9309016197fd71694370c5187529c8eecfad9ca8ba4edc783e73cdf107269da7a039596220aa500d7969ee9f4f224d905202f2decfb4e4d24563a04caf3f7022bb0911504372dd5cd1f778d15fe50514a3d3add46c9e88b003e485fca5a18fe85cb958865a77a541fc19b03522f091e698fc09bda95404018a109b2e8fb4062bdd87c979b5c9f8fd7c6464d086193658a4ff337e107e16a61e6ecdb0aaa99bb94a83498a5a1cfba10adec3c91994150f460c5fa15e009b83f4589fe43e4ecd5d96c6424555090a26ae8c1a2295ffa59580a8641e73d92cd7cb548c5e252de0998d6345a7d382c2bd6f69fc4a7f54882a22e722d18b13cf176840dd28cb84729611e98ec24b82889a47b2867ba6f15ece17ce25af84c3e2c6e85c132b87403be066cf12941b8a66e12c7b2d077b592fe0a74ce0f6689684be11ef099deee9aa2e4e1b1b0aad2a3d65784c4c5a1936410b811366b336af3168d157c04e9d2e64fcf1eb0a59a04717b40f31f92eec988f8dc55d91dec498c34ee13fd3d9eb8ed9f1d14e0c108412c045e76d71605aa9217ad28f8299c1454dbba65b0d94a1dba3b447d472bd4ae30757653d87d1af5bbffbc7dc7623214e755bcc9d1ba110581b3025037df2b6b6caac3bedb15ad2d751c624c04618366c60f0c7f268868fc13338d1211ed8b800055ec676d128feeb5e3c1f222124e43e3c259b6010bdf264cbaa0f97287b1eb086442aced71132aa652e5300805efd3e60d4752129e36ab3b340f05a9d25bcf36681a3d3d93dfd88aef8d5228bf067fe6be9da0a7bef15c365317d23d8a00d717a1bb4ed89cd071bc37e833a6d7b8b0494db9e3fe51a06c0bd49f8edf227df8ddc1f7fa9b3d8a46311d204559d150b71535b5f89aecf5d88c31cf69d9364b567bc769b46738a085c49589d50865c34d325c365ed5c7e33c461e71d6e0c5abff0ece8ef156b5a42739a10a8ddd55e6d96fc716fcf3e4207a4262b9987fbb7d1e90b0297cc0e4ccb01e168dd30562338209f5e8d9011385ded69888b3ab9787dddd8d788003395643f6078d5d8e58fe9a8ca361be9a47e83bf46b2b13d597170021cbcc04a112c2caff969873a7aeef2388cf9e0adc57cb5d76202c91c1fbb1d78d588dace13f15f91ee9fb7290b1f799053d4849f59297e11481517bab71e02ce84f8263733a9f826239842cb22a47470bdc34f2320a7b5af54e770ddfcbc48b08e3469817d18704291ce8d05189c5522e3f1add50d3bd7b98fa0e58c266a52475ccf53521ebbeb5e35ef7497962bf7b87ef7f5ea82002b6782bbb6b91dc52b016bff9d4c70c253e808c600c7a854dafa64d8acb0c689283a55c14a198bf49b54e0e08fc91d2657e4bf66915eb047854b13cd989c62aea44f290b33d435a5c026f557c82aed9a4d874cb68e5a92d8d7effe67d6b16e223f738efa3263a216666b87cc12cd053a1f2da07a87c36890d2f9e30809b8a0f2e07ae7ee2fe0726a0674f5b03ca1d458fd9e42e6522356646ebb7179a741f599e7f0a04eb26d82a3fa9d96a5ccb9aa01c780f8157c9f14f8c150d045d05f65fba3e1f99afa12c2d94bcb94016b8872fd5c0a04639027347bdf1e46af715a0773d2b70bfaa7fc8f41bb41aacaeadae16c5e18eaf09a8521b3434ebe173f7272a10bee846e5b41a58621699bef2c6cfa14a41f41b8f6b277888a85d32aaa138efd948e2b4eede89567139283c31c69162b240db9b0e8642202f596a1c482cda3bb6706a9f18cac4fe6e192297053360e10d4eda6ac6fdf5c4cef6d73bc3a3b3742c7fbbab8d8bcc9d50636563ac67339a1a562786833a7b4b9e6a97ddd308e585f04d5cb4f954399e993af2c26c0934c236d6670e6570c8c2802c493ddb95e92d747f84021ecff6e64891a3e7d71ff0fd47ab797ee2b2af5f83bac09b474cfbcc550a898f15dd3256506ce1de3d46382a35b51323906fb3f186e64698880322311a50063094f0231bc3391567e2decb610d556071351d2f80891b2f2482cbbb2374a71a870664640e1cfbca3fa87d981f7a33697921271cfb62890b2ddda06a5deade8ffc4d6f287d916190d56a150cc46240f81fd717506e0933a13fa367f0d80eea00863a62fd57de4fcb5f2dd1a8d99f72457997f6b2973dea688f736aaf26c09276a71275caed097f791fa8808030ab98f03a921e3b000f20c7aa9596fb1c64a85f8452ceb533404ce483a8c49c7677f3ae23a0d03fe1a4e980189d2f537c2dff5377948762f16240a30deb446b9a32d82f7200f1b89e7719d5b840f8c68a240c0c0b0937837ff806ab4b89fb27c2516446829f4de9b034e441a6a2f2fef28d1340f244d833fc54962453c8679016691f0bd93af33df66dac6fe99cfbe7eafeae71314d10535e1b0fc1a18059b22f540a8397575c3bb1c5ecdc59b5ad73bd1a8ac126dcc48f8f3e58cfc3863f10421500fbdb79739db1795cf4764ff6c5c7c05b5246858e769416b8adef14a878ac76e2c103f2909a61dbebf1623d6e66e688a199f4e82feab0f21a6c9e3fcc029ef385a372b5366f04edddfddf0593b41a1f50f2ab9356f954f6b382a2511fe10c60b0872d3dccc952d2a324a12ca4ba2774e25a16b317f9e254690441ed9857563176e5cdd62857447ce5c00bbdb54845799245ba6b19f4a8b1573b0fa3eb41fcf1d4d5636a73d2da585cc2024c0b1952d1837903364bf936638509badd433129bc80dc83a1f30239d22acef66c1248babc3f2e35e94d2518226c9ae79b5f66259e9f15c91be00eb9b8aa3b54a443b6f6a4a5648838a1c20535aa5b7aeee7f772c4bac5b7c134001b6e156a566f983dddc5cb4a8568661c01c20f7ef4f105d5577c379b32a051b9fa97c8d1722eb4af5d4e550b56214786b205cb65def40127daddd9b0434e61552e52856f8c27f9a8dc0eb584fbfdd461cd14febafc2c6c3163ffe2aa1d4348374af665efa71ed192ed35ad0c468354b3179749cfcda99e5fc300d164c69494a4ad75530d7fbde4c19cdcd66adc07eedd3082b8878aa188346a5075f7d731c34bc3341847e321d6f5097e2a42397dd5ab9f97c1787fcf501c3c400f5e6c8c4d06310270ca6655641953766242b36aacaccc9037118afc736323273890591674804c433d81fb925d95cbb4f109fef60c497c6c9df07e2429232b7b5c9b85ceddbfa6349009582fc1502fa6f6c3ba1919acbf100b1b3ccf58944b4bd8d54b67db7fc4696eff395a6f4ff8009c1d95b1db74cd9112c1b2e339fe2e4b957b419d06257ae23c4f3c6ba3d2a055aca3c8eef965c526ef715434bb3046245c7e1337adea5633a7f0ed7944086f5a00d0f6422994a646f261ce602d5879cfefd9279ac515fb09989952dab4cb8b61b97f8d222cfed532aac9fe270b38b2d80501801cb0f4b2e068cb046f775e8d4d918694b8aaaa72aa83b2d63ae20c746e728c0f80871e165ed152981453a189536685061f0235880e5aee76c3d1fb527bbccd343a0e20c5fe72e0e2824f22f6d9b14e26191d1c9a2103e5186800222c17757707370924a9f89b553786cd92d84b50d8e614c4a89266219969ed73c8a0f118375a9ef3dcc28e858eacfc0dde43c606ad21c357da0477206ddf935310ac1f75b411997c4c45680b8a8ec76cab08600a65c1c67f349a470684d3684f703d2f7088ab67f6720c048f5816a7814acd41c02399f55e9df1529cd89746a435453f69c539373c442213247b34ae0ac9aafe09323af2114af66bfb7ee8c280d9482090276534586f9989fd7233d765b271365922748515a0701f197e7e4a68f4556b1bb298b02e4aed0d0a87d83c3bc031b4f5e82039c86bdd212c68bc33b994d0dbf346a5e4bb9cb7dbbe2c17aa5b97d48ec48963a9e0b14a171aaf4a02609c146aac82fedb3eea67e4a3bf40c29313cdeaed96cd898a913d301a60531e2dbdfba087941b818ad69bddef5e8054f10cbba0ac70ba356124d2cb5f826a46d8c587dbad1162e227cb9a8236fb3f7797a346483f290ce31e7502803c88d827992ad8701abbe256119539ede4b858b4312d57d3d70988a53f94a61cd7c4d0777a8725b2ccc0181a09aedc2d9e645116d5d1d02499338268cd9cc59fb0f9677d6eb8684d9282e00ac2c1a35927960cbdb8186a98d83cfaccb9877f35060c1bce83300fbea83ac17831af9e113e7ee6a86a956149bb73c2af0273fcd3107ef81ca03060f719f8cd7dd768eaff412c656e86b86005808327e6f297c268589a2e4944f5b5088771814852f9f5bb0190cb3b40d05d84f44ed7abdb4823f3dbc248095ac0fccd9f04fb7869841eb3b92efa73041eb577a97b98e1a9de3a92862d3f599467f8f95ce3234f12eb1ab7cdef0402abb589dbe8299db143fcb5800fadb7f7dcc8d23c02c2549b7e773a9448a1a6f72d2ce526394453adf30efdd4c563fe24b21bb52e97253e96d285d5ee44e85fd520f2d78c4b85c50be889aa27b30d9683769c45dd743ce37faf503cc02329c7c105d6673eb11e376032d8aa9df0cb0b1ad2a8d75befce93cd16fc40887c31d19007e7eb330af79c42039ce94c7cc0102b332328c14bccc1d7aaa290c0aa92d82d438793d7a0a364bb3f3991448d4e14234f3bdd1bfc9d635a8484a60e3442544df842f84403ba9a3c96d2e57dc7a65cfaf56d83780a3b3d47b1676f482557df0deb0ba2022234129ffb5d39d16a44da8f7ed1fa7f170e0523f695ac32189e97e7373931778b132ab3630d2157e63419cc1718892fe7c47aac6a615f64f2a8fe8939f027594d4e863105427825e726a1cdff77e3e2643613b14c4662b78b89c6b49a99cfaa3aca3b58a01f87617f2d180a81ade2b538f3858f19a61b1a62f7040b585a75f2ca45c2b0bc62358dc54e7a7563115ace8969c24dce20c3d31f3d33d03e63d0d2e7e60e7c6df0265fed31dd1fc17887588bd734d38e0dc9d367f708dadbbd5f4e4d3a19cba003b7edaba0ea799dc2b861a96a9580e70768217667a88353bb5c00f25fdf58fc294ba307670e0afa1730e1d8642175ff42e6f3a85a254260857b87ad6270084d2585fc59066cbedf890f1dbdfb248e9c030a3718385bc3a9fb9d515dc9c9cba763103da316196bb42bcbb7c35c39f5683542681de9b97c7ad8b375bfde1bceb38dca15ba4dd0909ba0c48271d8c6851b503cac3d4bafd9ca71bd49e5001c67d76e42560ca21230c9a2aec73775df27a1887867ce6b46939d4a2697fbd3a8980395983510b57449e3c6acf27d039847fa82a1fa10f5c9464b6f2e79c364ae84b4d59657e4e86a5bb027420b621bc11001f25a520089c836226dd5e8f00e9bdaa98f1a20028d0e1b1f09d9662cd94856f0d4583d0821e2fceb6978f81a9d3398fbfaf4ad3384f5f3702f93f29cfcc352657d796a463909887672e826fa198e33cc6bd30d83911a585567ccd27255af82a51fea83c0fb007c8258c1479d9eba1e87d8b6d3ec18b6bf29efb71778210406bb76cc4a1845ad637b08034818d0ef7277d2b977558ad43ff38f27b2ca30d9c1faeccd38b332c6b08e28fec4e10413d1636ea4caacf47896addc7beb06058f84664abe0dbfbd062228a9b374e9769f516986c9bdbabc3ae10399245704eccfb25f4713cf25a439029c08fe4b6b9cf22d60e8c5376a50c1a7fdd0f1fdbc9dfa047ba13264d48a9a167f17862f1506b334b19f9bd02c58e89af5e6e8e27c545a2cad625d25920b6f59ff83e5c2f6320aeb3ddd6c56c281a4088d15c4dbe59ade2a05b9d6347b667d15ab66d4eee0498eb7fbd145b4e2aabd9c05b48c350b35c08fbaaf33d5d2a03b8d8fe7211f04a0c5dc23c22a189ea936ce0c886dce4c5d718e7c42f71e006eef220508eb6d736d28f8615f949a8e75d2a4ace27ffc6785af8b453c7d5ed89d1c286fb72505754c0c57e2470d678d131ba1e1908ef9ae17ad2441fa7739643ec80b296bc6a62bea4b59a0fe59bfa8e022d08e1c3be9e65559dc3b38d9b9a10009d14d41010ce38c0d2c25e51f7b9eac2f60ddb60691260ae6ae2a6ab636e08443ac7f83157f21a7c18c95dcd6266e6964ec876fa9d5df612bf2ad10eae4d993ec1537b1ef387ebbfca52ed8ffed06573a4f45f5b4cc290a01c7662f67e8dc16f02d4d6df6bd28f618464d804afd302d2747192dec4e4f2e1143522441e7d29169e05adb9c24c9b11b994ebc916e8155c45ebe763a43159b62ea3d37f6fb338c48f5b1b7cc6450125288661af2f498dda8e7d8dffd4ca64614d8a3f14fe8d2671528d38ae0d17cb550f5c766059f2f9a3f3cdece5ce8a78d41c5aff106c0ddb42e7f28058bf10b40f6534e63b53e5435471727657e03294e67e88718cfbb91c8b16d90a1e4df221073b871b6634c03d092d15402a3b6facb547175989fcbd469db5eaf19e3b46e3204f5cf459d5172c32ded7a949676ce85bb5668431eb8367f92a04634fe40a061d80b08fba810e30d6a9aff865f2e42565b6c0442d8665f3427a6fa90856da6fc3cf090f452f2d7662f91dc3a8aa520358b747361d246ceeaf46629cac06b8545aee12ef8b3f8547e192d78f7b9c186d7ae0ae778a319ac3e9ad8064c3f5e5ca1c2de50806f1becb895b968e0ab3acd8877ca860413090837d8b75b3d966a71af47f28bb7e9144e23b868c039e9f2bc030976ce79d5f778f900e93ceed7f44fe118afb5c57fa6bcf0314eb6d813572269daa4b8a96a3178c38fe3d06005ca2d91c4e8a60ef2401ad82626baccdd2f04fdffe031d8562751a30d41169a2ce7f0924ad400c8fa6d515ccc6e1873c01e507ddd180afb111071ba63398da8798840a87d8efbaa3e0e81b31f8d69dac4a560e11ec82c4a188111e0e5870cd20fe65a1a93afa614f12e09a0d65a457ee0c0d90698f9ad4dc499cf8c8072fc59b8b159c3f03717fbb89b8aa7cf10854f2fce1654f8a79771dc42a13c6193c7e7dfcf9aad366415522f7f240b5fdb7ebf6de037c492173b5eee31904fb2971b6e2d67f16c614ab208a50b975580bd1076a8f45c29dc1d4642511e5d40f099bb0898a0db9eae2ccdd55642e6067bb71e9eae397689e911540586ba4d3711ecd08cb0ea8b21a898870a18a4682f2b6d0d6216c1afee8ff6d962a6ca0a41986ab7dea5efb86bc5bf3fab6b5a5818eeab0b13dec5ca964836d1dcb0e315d95b133708e79cd3f56e85187e047399da41ba812a5f08388bbc4436fb1b5c4a5b8d7eb240280d4731ff8c57baff7aa9c7a6ec88c3985f2a27a365afaeb1de6394e7c82339a29f2d64d866811a1fc23807ea8341dc44694b739fe7244487f0bb1c482775ccaa11e555dae48357ec490e2f713cf15006aea4ae57af14a6536888a7e8be0ad4127ef9b2483b238ee5f5eca498776adfc8b426d4e26e8edc522c494128b881ac6dfdb32866bf8d6584e89ab7e61d917c7cdc381dd501bf277ba1cd676bc79e0bc8c76b1fdcc918f85ff3de338fb6c650ef8294ce843077ea60fc151280de1b31969d93389a1f72ef12493bc0e229e051b4c5918d2617998e5255565841bde5bbbc3020fea751361f892aace7d2acc7425f61a778222dce27e5c9a047e5e911f2b197d9112f76b8afd28b9dca4958568b58dc36b94b51af41b1dd042be3ff68ef46862bd8d500307ac51bb25a0379b32ae863dfa5c91bd0583f132d72e5cd9a13d3403bdab55ee41c064ea16d4d1f2f502723a367e9e15326d225195e5df700b6d93ebc81f10a32a943edefc2cbf904d99f638addaeb84a2e709f190fe3ceea0733bfe3cbb582657f2233dda2c544c3eb897c79bdc7c5200a90e51fb3242579e7974cb0d87f318ec2734b97b4087fffb7b1574e0a19fcef3b2c1b61e65dbe9f72ebfcf3bcfd98b0d4e3f580c271c1a30218261a084b2c0ce233870604dce6d06704d2c7ac589e6960548058c291ebeebbae50db10db816f18d625ec69cae3cec371f42e0dc73043ac75a2f682f4ee6237e468b6570dbc9bc3047e675f83aa4f63e945506f36d579b0e202bbb9e6f25291c4d77c91758767ad4bca4ef2acb63d96f7e83c4dff94c12a6f972041c05205e18294e7d6ffea786bb9b06cee644d650d09c35679aaa50d324408a8db43671c1d22b10743ac66d56e6629f44e29e41dc6c4e271f193d4c27d00c617b7ff18579f80f0691253fd6b8eb7560af18b6432cf6f784dccbfb4f28c4f4b9bfceb2f1f9785dca0dc7067c5c06fbf148a2d468aef3e961779cd65e54224d118282453825ae744b5b6f04f431484657cb2f6c43c6377f858b597693eef4b138f8966936bab63863a90a0270c63493e09afe7015cc371d5f70f3ce792a26cea63696651fa39ea7d7de701027676b6e652513fdae88b2ba306a5c81052334bac587bb80ae093ec0160009c57df67be686d8d1295a3812b0f3e30dcc4b6eb9c2444bb914ec91e85a4a851699dd3e8c29c16ad0ee2bf11bb22cc47c49f0b08585beb8ac6ec368ea354c516939f7cca094d522b29d233b65996bf421d848ae23daa16835a52df8ad5161ac989a149b25b3f9b1b17be77b2913762ce7b0501bd888ca82289c1d8d458d9acf654e7069a0ac1a214b369d12381ed53529f5127528d75f29c7f138ffcd75f4140d1382d7f13a8dcda447dfdf324dc66d5f898571d3fffe5b5bb55289ad68f355c90bf85c786262a94f39af939fa9438906e02fa9a6084da43e4bdcb9105f1674e6656c5a9e025b0b68123e706e53e7c540dadbe6e9a7a9198ae64ac4b8cd96140eacd8f8f3bbddd5e07520bee3dc324887a78457a439a89127f3af546dd034be628b33b389d199a7ada205c61f79e6cf514be216ef7dfd8b65b4b36de3fa06af1f58bb1b5f6d7ce13e92fa3662957242763b37678ec093ffc8eace506d3adb6d2dd1bb7e158308773d11ffd0d04a3ffcb7f0cdaad28f59b969b30084ccf21a2206c93aeca7789dd0f65e90bf092e9ac2cecac8e51c19b2100cc119e53e34fd8bb3e184b86ee5cc56b645d0e7dc6480f2d8793e86c48c91a772160863b136e89c21c009e5f51ed0b08e4e568545dd083d304da7dd7be35286d95838bcb1c49457cb962efd3041f5d5771f451c9b1512da4aa638ab15fa067246f4773f455548d4005ec3ff90f467de7a1ddad2ab74b78d55bfce5e2a550a54e0357bcf42c2cd7d1de701a22384d29c6399fae964310ea3c9ee1a31c99fb4dcf3496e99e538c2609a9ca72622765d9ce89ef38283dcaa78dac362aef227aa6045731e76c7997e675677a5f64100c6e9ee17b9817867025d07bec2d234c70933ef7e8cc475410c204102141c9f1e6d083de573d61aabecd5aba9a38e7fd4d8760843aabefa8d63bd1c35402ea0f0d260f7ed9f8a78289b51190092d69f05ecfd86ee7155604a2dcf259a45e965ec37952b14cdebe3f71c29b6e3275db507151f3df14ec9c13f13d8f8b870c711686ce7d36a60d66b2fc3caf6cbf1564a9ec78670d5fa0a929a6c6b8d316d899c9e15440f27bda7f17b92fbec06176dc22c75541c366a497c4d83879554c5185f8bf4cdedee03d0fb7232a98210a7538fda9056c12c5b98df826c9b244afc30757aaac73c243241050ec0f3f787ca78d2469a4f6eb5ac7d9e0b588a87a5699c8ecd66b71b42212ab25e0e1cfcfbf99b6e624da36fec294a567ae58fe3fb9f5f21036a232b3e050595ad5e2624e0c1bcf422b32b5d4036eb952659bc5ddc2a9923f17be55257066b75742b359b2e79c32d1e073f66b1b052d005c0ad71f853bec341228999e9dc80d449e38bfb1f78be27ed717576a749eea91f14f1065d4d793f3783bcb74fc5cb16ef1b5fff4079649a63346b2bd66b8ea466f682d087dff16ba4731749f7b7ea1c011f03232f304fcab6f770a362f34ac7df3f77443fa692070373d3864e0694ad73b0cc02c938a10591fddf09b07bf76c651ee5b63abd751d1c1fd42e3f30fde8ec6fb3ea295f6b3534f183fa0a6ddc6aa39c5637c73d808bf15bda33b560295a797ccebaecbf67dcc2a7eccbe5fec9aa624f765e2d4a938b627bfcc7f6f538947b6b0e6e32247587a945a3be4b82e6983200ba990aeef4dc1d47f7e46540b1f92a929d91a727d51d806c39a5b5d1a77e97f612e4cffc280d66182ab1df4119e9527bf3c927719f59a0505c2f88e4e671e50c26b9cc97ef449cd43e39c44599eb894cda9c388f5d17be81b44b39ccd4759ade6b2b311d82e4564bf848a1f4e70bc2f0f21878fb4faca97143c1a500b2c49739f29ba979b905a1fa6b534fe768d1b0b9b79e9c4aacc82ac19d06ef79b73a8b7a26819b7495e9ad7f5c4d92f12176c3e6fa29cde0bdd5d08a8b7258cd5dc1f77a6d48cc0955fe022254a7d3c4ef01c39bf7b573f07b85ebdc61ff7fc1d2f7e275365e9e3ff3d858f05aeac79feba98ebfff66b15fa9a7927fb08a2d5321daaae7a3dc71ad985a135d71f947e833ab13da6cbd45177111b0e5ff42e014aed9e0f529fe6fb253c93e9f04e84b02c1cf8ea5bfb4b2a84b24dabc7a91cf80a96b2e0f457175419d1f7756e2506eb360a788c35e4b0b6e859793ad5af680c749773f36a8ec46cc1fd60de127cf52567b77472f17be5ddbd5821facdbf2e56a7254f47b703310b49eefa2cc7a343c6e7d5173da79fa5443c9d9203621d82b588993fd2aae15f3e8b356e47da4d0d61ecfbbebfec4951d750f7db3d5aeef3b10b7e149b53800fb6fe89d4246635fde2c3a19a4b6e32ec2e7efb0740361e5f3aeddddb0daff1657d683ed65a9774fc8a4b619025e546c5511b09805dfd9907f6522731df43887ee04d62b7bd7363dc4a160ce88b0695b3b414232b2abf39553d0d4bd3a29bdcb3d73d0ac1666a41618d1f1646633ad4d6ca7714240a00a5ab44a26edfb6f894a20d2ef9f469f22b161b25434958d6267ce66abaee28c548d6072cccbfdaa7f71d6b98ed1aef73d6f84e0f0e2c3325d4ddcb3f49b719a75329d7d8047a1fc4c7ae21aec190e4ad8c36aec6bc2309fbdf755873a6fa37c1c5cb6449f325f6b11d0211475656ab9946959e3f2294cad9caed21af7a5d2fe1892e7def5f43a8a21df0ef3d5ef9007b60b446d893c45c4107ca9c1b17af2467e9ffb50a6e5b3e5fd50faf48009a25f006f54c83a8b764e8d8955ed7f53e4b1986a4106055367de3fe09f4dce184c22a1733606f1a5048556acf509ce29359e5f0eab837de6d548051bc72b733e52689ea45fec0ca3f08de7c9805863feb1dd0f3b55338dd0c5338153d66436cf711ef03fb052fdf94958adb462f7a5145230c05fa68578b48eea8dcf0c90fc9573ca79cb43ce1ae42eeaf6fdf27df3d0e94fb0aa7a278fbde2dcb61c588665990262b32e1a266a53c5c928cf6becd8b90c47b8478f78874259dc2056657ee2d4d7198a166d8d657a5e04237d5c0313558edf9b3dd07683bbd610a5a80596bfd3506df6101bfdc84b589decfefd7e0a045341a0bb4abf4e7e26b60fcb830e149b409b33534ec57e793c66c5362c97da024e00cd154c3c56538535ced74795f381e6b420626fd16616c4996ae28c313f71dad37beef49029797d9faf2de5bcee76d4c236a433d84cd9bcf35120ee45ea415f0a9f4ce12d41e330193d0a15b7277127cc69379abb5fc8f7bd412783f103bcf5aa3d475dfc7e9ec5613c69ce68ce382c223a83a44615ad296dfcdf3521bba1e9a03f3a117933d8078e32ceb4c832a1365473915fa691fb4411b47b10d3bf95e55a26f3038f7185e726741a593d86a0c48cb481f29a6a121e76cca4c26b6b7c83305f41141415574ec2b5f4181618c393e82bdc223ac8b13bebc283c9f6f2cccb2dc4eccb74d019dc9a139df227d7c30369b2021a27fbeed928c3e267d2a3eb958455910d261131931dafca4ff37615a005b40ba991719d12619545415651ed869bd6a483f2b0322b128c42bb0fc42db5e4816f534606b8d00328403983dd2be03a5000711b503f3413ba3a65b00970aa6f15d4da78cbc6138a330308c4d39bf795d02eed858c00ffa04f36000bfc37164fa01189b6f594bcb3782a09c83683b84931e3627e69ad171a9aca4fb15d5fb90280d9f576e9f7a7b8c10bc46a38f24f3fb9ee6682db69bd193dc3ec416d28e0a25c61583742b7bd985426068824b9e251c4a2d8ea6505be9e82bedf3b2ec9350bb3676f419e65cb1600c64cd872ce987d63e5cea4851e1194ad376a5e268d3ad01249b23614f92c9d052ac06a8839e1c4c9c17fa4294d8923c4b3d0e37a7e27c5f6eec246fc4b9944488d23398c4ab5fd4c2f391faeb0ce944b987f934fdca51b465250f872b8a3ed60ce13e7375d3aaa4b4c9dff1c5691ddca91f8883b756f087ca57e39d724fbb125d35338cd2b5ace877b866827d1097bd18c7f470b97548c984536443362dc8a78bdd41f3e61a602388df5eaa83a7774e51898e3c293c9177426b061e74b2347b2a14c28d43b4c11b52b68ded95c1526a4bf8b4627faeb475dba1e90769584cdf2d715fd5e5851ee5b9f98c0345a572ce82baa464d7c1b616a7d8e7da44a9ea02972773aaa99bbe3cc5a2937b9d3638004fada2b2fc4911ca96e71bf4484fcccb7578ab6cc5a3846c5f535738e51a377edaa43474135b47354149c091e9ef87cd8ced7fc49d48014bbb9c931c4629fc8963ab1acab2d87b96dfe66b6db5e90e9d52f77940ba9c05c2fd23bb459762abd49bdd5a2e2a9a5ccdba4bcc7e5d01e5119a15e1dbe7ac361ce0eaf69db14ea8b35072ee1a49c7c44457b11cb0cc6699be7dde12866df854399eab7d702bf71e041765b1f65aad1e32b885369963b453ab09363aa18eb73aa9d795d247de42b7e2dbb382e3f1d26bb7eb9166aef5ba61a776939e2e9d62e06dd5f8da5f3a1933d0442b986ad0379842d911f0d49e5e40da871409d546a5ccb37f2f96409c689d99d9d5727b1f151ddf541c9ac9d0a05d4ae8a2569afd50e9b45c0a1b507e024bd13748f428a1a656370c349cad3a4cc820f8150eadbcc786ca1981692fd43c583beb0c0f8b6f1f27f77e1035a43053ec7765d9ab7fbb8f4759463479db2b8d8d3cfae7695ed317411ac5ec1b29aeb99a74517fca3cd4c05575efe40365c61b26d353d1fc6d5fba77e49cba7d5e9816ed249cd9854463bd6d898952a4e2a08bec8ea594d7c59672f574d1aec52d9aecf5d5754bf857dbc2f8a762ba1668c890f7904e1713d665047c52cb6fca0ad771533009616cf119e5c339fb78863bb5acf82642c2bff85a8d7a743eebb73bd48a00c7f28660b3d4b7e607e27565b6361c24d9591e6a97c304f058b5a9df7ecf321a478b7305dad22aad204dbef75a873c9e67f8b466db6a6ac596fa78efd48e70a4a69abcd086b2f6bb877088de390e5b3ec92455f5a7a6ff7a1fe36e776f5c30bb3bffb22d3ea13c8658051cf4d0308e0a68d8deaee37065be9ff5cea898a9448d51c83953790f23c9bb0b7a186b603984ad04176c69c3409804584f28c442bca832016a62bcb0f598a6ab4648c0b62b338b23b01ad0509950c10f35fd0d064c8bc8496fba0bc3e7061fd7fc8108caf9e542028e357642208fcacfe0221b1d92e001f1381f1969bb3bbb6fb41b12b33b47dc77402c68959c7ea96193bf751c187e975a92220e884a7ce7a4f2c72725b4e0566400b16f33d11e0d8c979ba4b70a080c35db3c1f0995ab5522a76a85d25f1febe83e68f1457d128729559d99ed01a50dfc66eaff12f6897ea34001efb26643ab6e328cdf0b08bbd97bb6b29fad070ee841674e1c730800455a11faa18ea72b1569c4005204403c80127e2c0c070adff40e85a2dc261b13cc6d5d4959da902fffe4091f39ae9737f7004c174a18382f9ffc0fbb0e7b1d6086a49240582682392927f25bec8ea59b586f5ec5bc6cc90915078337e8f20a2bf74795c074a8021029a6dfac40a677dd7dfcc5146ee647a1dc4bb334d0ee5247d6e3bd876ab0c229e8aa99c260f25d182fbccd2ffbcb3416065ce15d440937487f156caaa9f6347fd951353213cc25f6c86f9d7439d4a091196d1177fa9c621e049171ab7f4daea2867d68630deb2d32308059cc62fc6f7dbf27018cd861aa3471afb41e70ee957e805a30e10bbb44873d7e89de555c9c07ee4e44a6f01a9e100da566ed8e4987360045e39a312cbe8b1ffbadecd05618bfb4037475407b636790e35a6793d4fde31594c095f28ab5b59662c3393b1a588f3f38339b6806bbd584264a7806adb0c3a5c990f35f7192cc4c46a4e4d4e78fa76aa406b926d07d68d2ee61aba32e03ac558460076877629cb0aa2b36539093d44818252fbdaf6c66624cfa568dc89525e92bb5a55b7c6d3250227f92b684ba4f3c365c82d3bbdd9641207285d3b808fd73224a30637bd7976dce874488c264fc14e59244396fbc5d45f526bee47ef2aae0f19098bf0172e4f8911d86ae326398774d13ca5e34f3b8081aab6a608980febe540d4316c89311faef9f7a92fe5a03906a229f2a667265fbf6e52b430d348c7ea59f83bf72c8da58e3c2e0ea6111fc6ba3409de2d0cd7fbf2cc944e3ceb85f01edbee77f4484f096da5457ed744dbaf321ff6f36d438a2ba6146b4fb03e482596691aa54709b47312e53fda06b46bd68df04e694eccebf93c0027b4eceda331beecfd89ffb1dd6033ded7de8c9d3a444a0f13248988ef0912e042287284b893b4d2900d1ad879a55e50f96e53f182cd66c7a3166ae456fa9c1b13e06fec84b2aa60fa5bdfb5e4683280574250b8c3e9ac567f4733482a5381f16c7d7d39c92ca46b0551252c09797df136a74b5706122bb9e0aff2f98d08333dfce22256fabeff0e46f5371cb9a79b45cbfeeff028fe014f7febe1057d1a36153f14d79675cf1234be261487237a1f3469891b3fbe874fd051a37f5a6f416e4b9707bb5909a0b59ddc38432f903c54d2a9393a177453b3bc2a117c8c439db3801819a5325a5c74174cb90cd267714ff47fa36c8470404d7096a287ed4e00f967da7d63df4ea05bfe5da8eb732bccf81fe5e675e4edc3d3859c7117d1f46c273f4f19f6a6c789526c018e3a20e3ab60a82cf945f4f9b0f638019040943a18bf785ff4a2f23c796edeb531f4b7979f94ddffb29417bc2086e166c1d12646b64435fd5f693f3987a7ca7061600eacc07a27f2b6777659fe2b36f1e9746d68c2d801b42c9811b725c4e58400a156c70647ec53546362ae89526aeca9e849cbca85c054ed7caf626d5f3f6143ede96f9d8c7f9cd4a88297fdbee5d92f7c9fb02d3244d1626a01ae1d3e8601e521405b95764eef11360f2167b6d40aa0c2ae595512f946693617e16a801f97092c41c46c698a13622b0a9e1f04f24468709d2c49065c5cff1de113dc304f956d33f00d4bd5a3bfea22b83c295645f0acb5d918540f040b98044686699e5be08b5630a1f48a17054b7eb73dc4b877e05fbe952c6e416b011c2b3cfc789f4e23ba84bb6b5ed8962f0046223d64798082895352d8b35e324d87b8b3518e4f4475a864a60f2e78ea40ed4f8ffa94e5a53d67dfeeafb43ffb4ccf34ed819b8506adb11a4ab871570f1386b732d0a1ff689156fe8a0aafd3bd8768ca583aa001a9930b09634759b55a6a0f3aa67a2f58a0604e71917aef96e0f0ada05ba6d7dc7711807983de5b13fa8d91efb87b5fb79783083b9c3712dbb4a4c3a0e68668fd8f63699aea018cb3725742a895f028a4494e4d105a34a6177b122652f626faeb036dfde5d7b197afe4cc9a4c991c20625ebc6422f0bbadf6212e300b774a7df34335f4318a7e2642b0ce2617cc4e4671c616122ae2e4bd0075439c156f72378b127ac3bba1a0bfe52f5972d4f03bec8da9f0e752a7e0138b39c516067162959b524c44d232dbf549704f8ab5149cc24471728dccee790f7a8d175295a4485047699ba42e62bd629ac4ac462f1e3818cdc861e8576ef015a66d4dde83b2530ed58f1e4f6c91060e6ec62c3af5cb19aae57e7e972c594d5bcc18ef945381bcf8a0401cd1be2e455fdfd4fa6cd43a7dfaaf4b5e0e3271e5664ff6aa6106b371ebb35083d4974f8e3dd0c1a59035af07e133607d479b9f6e7ff8130d8280f0254e8c734d86ad771e2c0860b9a57a9528e69b310adce4198c06537d486a7dab7bf476524502f62fa102ab3f0aed6bf2e09b2a03a4c63f6d5990cd7a27db36ce77abf2e6866b818a4f836b33c4944510f7105da91d91b31f37f69cdcbbdfec3da18eeb4f501b367ae074e4cc9137f31c93f0c894ec3f4052c8df22f840819259eeb73a3b3b9fd0e8cba5b24d7eb81a161393cc87a1a3a730d7bbe328997d0036090af1595e7b0ad8e49bbeb1ca370bdb5a95154f1567f62ca2868a9e9486d093e897544bef2f490ec19b06ee5b1f761c6a64310c9c621c46f1d4c66c0597dab1af7b75975c515b7a54a209120c96042dd1a19bdbf212f5e9a3c7c1467f8ca82f88a0f7452b927717808ae3adcb4b6201b968612800ec21c8c45ada8c00782ebffe5c089371230098df5b0c2470429b6882dc0ca159fbad260fbf44a86a154a21d0450d404551efb509b9e9a814af926a2bc0cd2b078e63d0b23427a3ada6d0f902cc272514d26ca0b4a5d9f79902be25ef9055c8d87e27fba9f3ea63462214a596e0c0786c8304bde9f97009e6f7f3a20a150de4f262ca141e71fcf5e7df3c4a07ad33288c94c9cbc430df544883618407a4e37b8db752124d94411d0e3f9b092b8a1dcc22e4992249658430e4c3a1c0a26158a98cd8fa59af9931e828b32238699fe2a72e10b98bff2da1ad8f22b60aeed2aafe445a83701e15f8c3998e86907ad065a045dc141f391145722154ff5b93975d6b8f344870ba447fda9f45b33def413c26d52365f48919d973df5889b877540e7ce60980e899ea89bcf57924ca38aa783ed381284a445f028e41a9df934000242f708671442a4ea17f679b74c660ba244335aeb96bfef4f02a3236eabd5163bd2972cb2b40adf466c68e33ec71c02f62b1c922e0ce9bebedddb4c802db18d2762ff7cb63199445e7a6020a1066ccd6af6531abc569a5e58c7d8c5f35995f1a65f0493abcbca70ddb25965694619a6d3952f079d6707d28a855a8756364f569b7c36cf72c5a5aa831d0c869e44d907a2b6697414fb8aefd32e1e859216408685350fe4f9d22b4e933c44f6a39155e843c103900c7a30bf45ea21972f3030b49c97ef74ff631e6f7e478e36599fcace93afbb86c41c241b143523f75824dd98ae339c4db1f1562de7c778d6c0edfb70354051eef8e36ef003489add751f550b0aca539a8fa984f30711bf2fcfee68f78f1992d665c930929254ed01cac84bf5c409c25595627f92e5f175a715a7883991c638bee597448656c81c4712b0d07ec55b89fb52717a3820bf5d3b4c7199d222d43ead686c4646feabdde098d452e856c5fc1aa26e8e914a2072c5ef1d8236cb2a6896dfdaf02570386f912cebd66e15bc544115783e15d007b0977ebbf4d447e09ccad275c6657c45356e83c05566f996d50cbc425ed257acf13d2ed93767df18345ef8245ec0189cf7975a9dffc2d48d0cb9357418749b394475d391b5d2d986fa964771419bec086aa24a5d8b5ec676192db0d31c3dadabafb6987add464e2e353ecc197a0cd8b26efcf0e6592045e2253c0a70651d0cec3a2eda44b54cd04efd60566343bead1035deda8b2bf9717a0ec29a654e864432082cd585b1d7373396ed2e41e44b16dba391bd337f81fa58f63cec8572a0aa65ec770ed328fd7d827ee11147e23ddc8eb97fe9cc54c296d2f5f79c5f2c75db6c5212baaab784e2eab56654b1e0c26ae1070529470216d4d3ac5e4dc770a77e903ed520b0b344a19e076a7c19aa3eb8758e6fa7e53e6b99e576b389a2fb48046b117770711053dbecd38570856f9afa7aff121f286609389861add45e0e5e57c367c6f05c0e76795b2c6c2b5717e948bcf9f46788111a927584c67cbd057bb6a3bbef1678e85478e0fd42ea7f7e75004f5dcbc9e7fd0ecd6f7a470daf07f1321af4f66ea801e13cf7ebe6b701e8a255ec95579cf8714ba8f9da703aa342846f0e18655f7976db7e02f41eeb0dff5888851ea67bc97178419f71c10dc9a1d411dfd1071cb6f5d42a734d67df41965e523db8a964e583349b61d49cd4605295a9ef719a73ae8e91d0e0275fe68482c3f1844352142acb36ce345107c1da420d3d9ecabcbe8a94230c7b558384f315aff428334a84fd1c6c2de5c1e0388bbb17b1285f5d5ca6e96e69b6ada3b688d3d96568a433e807c6a0605da081917100c3cd5805286b799802037a2aafa60789f01fa7e5fcb3bd147a3f0682606ad9a1440f5965de6f50e5b39fa596665db5c1ead5b1121a699983b78dfbbf1429b5a76244e568495f2cd0f38185b36b849a956c40947ff0777bd3fd0c5001102772b3fc1ead1152142943076a9b8767c6e6d23c06f0d98cf7ebe4a2fd2e361afc94f6b6688580095900637717942fd5b9ddb500d7c5a5e410b23f27e7fda17cd989fb7b726a210124c99ebe46ff61de29476900ae811d04a80e2dcac24bd2de0eda53b896982b6c905bb80d70c571b8d54ab5f8d561142261623902cfd696c5d426472f6bd4250996169b46387b949e4d9e3f80e6fa8f48ef9bd593b6df9df7637c6ca47edaaf72c786d58d4c48782e2caa6575664a1b71b12ae3e4cc78bce4b430d6521fe896bc930755a892923388701698e17ca51edfc1af9c50baa1a8384bb1f69db25e7f817364bb292ea12360084fde2dc0aa64b3375aa449a049001371a571a76546b96b63906f9b4bf2b373fba870e9687f5d7f289257fede0c99aa6be195f8789031654cc6c76f05dc9459619c1abcfa9aec9360be5e701e1a29825ded595c675a6d943c5f1fe0acf185c4e25a157eb0c329ab549d9a5a0992a7755928ad8238c194e19a5e3ed49ba2bc5f724fba9a65489c3f4e8d2e5f2236178f8cbd1457283215dcfeac9b74d83d264fa49878d2c6c8c7e6773caa3014b59d603e1fea321d946790c890a327213a9862987464c95f35963ad73184f5b834f6b01cff7fc4e73ff2a0c7d07e79262c4c9d9a761fe6066d5bd4b28c7256c32cabb5a5f3f39a56e7a1267936e6db1ba1c18ab182f4dbf3d4d1494ca6f563ef33870dfe5ee465d72de80ce0b17eecab82e38fc888e3fadd204d4d02f065807e8b7b29fef9a52b9aafe44e9d9ec1a00ad61909271e2e41f13a70af7892ea44d479beead8c48ed518eac68f5c2f9e2a90f3a6647277a892aba03c4b01bbd346de58876905127c33b89a922d52112af491d5c41c8d1c081b40a2b515871010e5c6ba5320d5d3f91c91f8cb8dda754fa6a26f1bac7b3f1459a2ed2d34b2d3baeefa4f2dceeac5892e9cea55b9fa5e987d2c822b17f7cf61cba5f6e1eece0623184f2c8e105718565190014403ebcc58c46379a1b8a48869f9276f1391e44ad16664e74e8651b8cecfd4bc85f0728cd211d62150b322d405a5ede7f57d716dca5bf94d5d3d1dea80c27d715b9f81dd45941368b9629442086cb22e7ef9268fd72df8c593d995f95f2c26145e151060c568bfc7ecee3261a1783d36561f619a540a4fec96f029eea37e8f4c915e4e114c6059d482602b3e01027401f1956c262ceb366d162defc32570237d8bd83c13b4c7f56e5f8af1abb0ce7e55a8b3700f0868ead01c867fcb21552ef9163459da73dbbea634312b7d724a38d87e814ca4812a8b2c61a20ecfb28c3bb505712a1334528d56bcfde5941aa3a6745c40b3a9953739973872a943736af753a191483c98cb6906d00d6d5d07cec5c18f425051fa602a2e2873e2a140ae81d91eb967e28c7e29dacf3a7ab9a30220dc32196b601ce855fc363ce0c84470b9cf63d5ff1267cf6758b520d960e0be83a2c974092c6ddee613b7f1bca2a97612d76504b7853d690ce0c25f6a8ece54f6750baae6d325fe4367883321a4848cab03814d981579318b59f818f1c827cd40ca3d310d0a1d5747e828789bcbdffb859d535eb3a9208355377b192ec2d7ca07be46bbc8d8f3a893feb976c29760e5cb2a129635d333b1f413f4f2491396b0c5a980b6694d01508bbe0435f509d3c9ec0bd6c0fa8c719ccb22c450be4e50b0af46cc3efd4de75058b8f0ced184126118c193b9628d96eb2ccbbc225a6045f09249a159ffc147306ae6fcdd91bf6978dcf1e1c057b117b8a58fd7048f3c86b2ce3a055a2667e2fe4fc55343ac9dd25069cb0049196774b4b45729959441b632d626719ed95dd2f9147287476f45ea8f87b44325e3687f4b088257446f1cbc54e8e7b68b6e97e601adf0b846197ff0566b33012ac3ff8c2526c8a7ddc5619c0fd1105069588b8e98550f79ec8ddf638fc6d544279ef3958ed255cff7b55a38e3f288c0d331c42c8e52f4b21fbe3b81d11eff087700d441e367ef54d1f93f06e1f1b3967823dff2be60aed96ff6dcd5b82c20f2b6dfe188ce7b3e504cdbfe4f54e604f245c4019824be8c28d77d17058081f962b7d08357de19b879fc1973460846b436d3ecb0e5b60417afe53a52bd2b3c1e65d2e9ddac45cd79dfa4925d0c5025fb198c7aad85e0229221b697775d861e5e25b07967f6fc48e0487633732245baef8ddb0ec24fe5ac0f74317a05421cb2a60754110c6cc61ecaf3ce017352185029c2cc97e9a1ea4d622fe65e555cb9743cd16631b2905d4418083a146c2a397896d4165a341500d1ff10bda92a779585e63bb4395c7fc4a811570796676df3fa54a8031fd01955dbcd67fe9fbbed068b89ff5f0c61d39d10f493c604ca8583f6fe5eca37fb2d926912c87a2bc56a3afb803892e6c78138e9bf1882c396a5037cda5d096e0e6cfe352c23d3ef69e0a93d16c1c706db43de5932c152612d3cb82bff49d3602e5124d1f3c07a0e648d0f7e61db9e3e0bb2910640101e07e9b78363f60bf6c96c325ea27b33c1dc2232a32fa031cbaf1fbdc7b980201162fdfbdd1f86285fba2f61fbf83f035aae9fa2c9d43672efbe00e451d8851e65138a1ce6c9bedc3134514b2cb5a71bb590d9382712c26e511effc409079cbf151904c566ae0d0b8eb6a57a6a36728505a0074ec0f1cb7d3bfa920897731277c9f6697cc58eb3d0cd263cc6b73948e1fd6422fb29b249b6236d5f9a43f66f4aa03cfc3133dfe7bd0abab42213d9ffe2a3a7f73298790b4a581e44a745b9d68c781fa098fd9c69dda5ef6dc042a8d6f8ca4bf8867ae67aeb30cf35ff930c88551ef18248503d195b8bb79ab032ac74d4932d97c6da75d324d3f0ec4f705947fd377067a8bac3637cec46388de45b0e0d8bced3ce41cdded4cebbb80888a3c34dd4c76d0891f3434481c851fe4517b8173061b64b09b3d66fc3183fa5a38565554910fa4cc59f61685c1521c3c59661c3ecc714bd565626d93b8ec65038de39012e74c25dabbf1919ebf321269ece79852710d9af6b4e55812f95abfb22f21881f3ce170792a2071fb87e95be8a318aebbf7ff45239c706f7e7b8374557cb6e3182d4fba430bf689486bd114e9eefa6cadc6bb90a9ed83589fe3f311537ac7febe6523d77f5e1f6f255868801b0ae46b6187ba7b890336ee8752b620767a1cfeef82147c6e154c1f1601d7f6942af2fd63223580b1ed39c6e57bc243c7ae9f4c1e413feb60b69b0cf362e2dc7fd398c25b38c2620c89775493ec82d61f659822cbfb668f0effadcdddd7b5afb465f22267435bde7c1220b04beb016507defb6e3f15beb93bc84d6398197818e775be236d0959f3cd164161fe6ac5448182df7be5d1b630102b98a66d8dee2bd47c60533a7e7404690ad640cde2112817c4c3d1a40f046c4e6916b3f2c753c97eb60ff5be9811bc8409c8de656e7195b89fe1e45439c99852b2c28aa05f1a58f093431ab513ad028e940d875de9b3b5d5c79d803e70c196119573447c481710a2af7e78e109d227ae354bc813015cac90cb52ad0522f96964dbcf68419762c17738acbcd9c5892bc4264e0397e609a886e399eabd8667aeedc9ae333edc9fdd1933853687479e7cac9c481a47e1f9e7b67304ea8bb05b9c602e22c094a15de33e9bfb5a275296f37d975ef4e7df3f1b1f7eb4491177b6f193eefe4e18bc549a94d6f23406b81017f675f7e4eb54bdac9b12ae3422411e039e04958cd9942bec193325ae9d5ee1a224a3f250a1b9b3faf9290ba238529665590e1b9ea9721f0723f014121f12cd6202fb3d0825f8549a7263d88d6b839c69e0050c25acd9bc17c1d633cf3be4fed3fe7bc9b956c2480a5c2895a2afe861dceaf6bd0fef0f81d39a4ed09b424450dd9458e585b0a741b5f1685bb5f40a2a3e550ac6ddbaa9dbe08ce995dde4979b3a51cb271a0a751e368b72ebb61180c89d2837fa1f5e2a3e7e0de6e46a6afeb81a1375a6c86de8db878bbe69db1f2cf28159a6062e18b6643ec8524b0484d4c47c5d1d18c34fbac1c86903c0f8eb6fbbfae14c9a28624760134570d200ae6245394841279197554f8c48785e9870be0be47c91d938f10cd35595de310e17c517c63785b45badc80d4eb7ec040ebe5c47f8d6df471f30d691f32e94880e32d2bfa6195261a99e2e5aef06c4ec91c01410ef1b06fa4f6db5af265afc029fcc61184f7c573132b34d4ff0a6664ab301c63cf319cf62b5cb213e71dafcef72cdbae56a0c46203c43030e16a18b261713a283284a869276343343d59e2da32553d4687ec670dde1ed5408ac1910b9c1bd647ba79b25118cda838b537261504d2558fea5a9279d5ee227212db00a9c6ec7d85bd8c5037e33d2130c631fb6d5f99b0bea8480cca1ee65e04525520453147e978fc1f3d679a149540569eb39e7511380adcaf33b3b8db843b0129bbe3ce3f8a7f766a5600e516adfa1942fcb1a9186426f42d3b11b91a7efcb593d8e46842fec90f66d3105871b3228ac68aefbe5e8be2d3644684336590646bffd51cb49bf27efcd3f815f8a294474cc11d639da21b7e08777a5a4654727cff6792f9197d567d6eff52ecf388e5ef0868824d925fd8d390b8c4e965967b1370eb605631310f2a7c4bdc07587080972d5a314a96e80bc64cf8001f46a55a58005e292bd9bc8d18a714a407bb923955fcac07fec1f9436c9cb42da0843ab96256efe04eb7e1fe44b9a604ca8be163e2ae378dbfc06a2606752faf5a7da5c4aa4cd4a5838ac3a08d071c8878f14f037d54e1bab2079a28cd891477898d5c4435dd4d939b2a1b8ed3136044f0b05e78541b783a2a1ed23034518fa6294da1b99b8310a3e653c16a587da11bfd22aa6bffba7e6610d029f4a9b4673fc149da921de2aa4478a25f91351e2076ed1e250c6ddba7615c12a5f2af590434d464f67610a717bf4efa352c055ff6fa5661ad542a66380830cf96e34c0eaabe9a042c8c4253df8c1f49b9b05c0c59e7794abd288ada7aebf4a64e2b7c6c5d77ece20b96fa4b263b519f17e5a818b366d383ee9335d25621b46ac510c05e1dd9915e060a203df0a3a51c3e72461a393d464ce70063a11b5de76e805aef36a9a2b1f20649f03110930b7acec263563b2818d290ba6fbe9cca9afcef3ccad405937c65df1162d4aead5f3c56a8d44fe9766b9adea53dd37beb27613e4a72d94e41aa23a4ed2ec44702c5e3033b6d6549b033e45c099683c1342c343a65dfda9ae087d582bccee217eca95383bdb7dffe7e08f3de11fd7d20c720dcb35c3f79dfd959de3ef6e888a230be3f15b8c23cd6d2829d7e78676851a63758f4f7ea1eafd1a0e8d2bca406161e56bb2a0e8c67166de76c23deb0ac7e6089582cc475d3216f8aa18adc349a6eabc18e6433a8df08c99006b482f15f9f9c693a889181fb5a96c32479dc870cdd101597a5b70b319ec23eb5a174e359ed64e384867988409f95dd77c1225533b745675c53c577ed1d5413c8568f2c7214083723ed8035e063465b0c40e0e406a06a78e1cdb3efa059233665d5ee96ed5c24581e81bdb8dcadf1330becaedc89589f883baa5d5562c3737128e5c904c06865875e99b635159844cb8036a5f8217b4b2d5a9d79171e8a94c151bbff6e08a9ad8737dfe92931ad44dc11fcea8c83c83e1030f984d87de50a6e3971d92fd4220704ad11cd8ab7dec17b93b59dcc1bfe7f2e77d4234092395217831e79cb34e6780af67b22265e041d86b8eaaa6f7d86d3a837b2320fd8b46cee8001a346f9264e81591bebdad0465680cba882bdc70e1b66b2e35dcc2fe69feea2ed636c13e813fa1796c552bdecc1a78b7565dac3417e8ef9969c8cfac0f8e30d2bad67f7e35ded108a0964e8e393ec795d642e9c78f345864d524e7c4bbd1df541a2742a78689f5e0e5d99eaf66aeb61b08f348537bcedd7fe31295f682cbadeb4c52a3bea34f50b1581f3ba69d52de3ae3627c89355eb34377b2e1141fb83728bdd0dc96c28591b0f4b2eb579b29ff6c2ac92c06dfaa9a3cada270b0dd1ad3097590032efada1303bc56f683340eba16f64142c76c8c484dc8327f3e5873195407dd541717b52fdd2da511f3d3c1bf0c0fb95eb7472110a36366a861362836bebfe08c9452ee024b6fae9c45eb436787f911e41f4b96a95404ffe7178040212987b49027c2073ead135d991dae166217bcbdda3e2eadaad65494a0eacaa7e82cfc64e49a2dbbc9d2279b27b3100c02ce1c0828a59e9bb79ccef98930abeb158e59d71514b1d2a5a91fd8a8ff1747b0c54ca9a60e535a5bb72fa96e1d5e8dee5600c198b5734a6588ff9142777167e8639257f5d287c81cd94f511bc7001078e7c1469dd3e5d0da4fc3ef7249381d86bb4d1ecb8a57e35fe9fe8039b7204896a09baf891567384c39beb0aeea95e957c721b7156bb9971613e3a4938c5bd6f76b0ec901ff7606a234f6844332f5e968d555e7c6a954e8fb49dcb876b08b94c12022a00599918e4c06530c5f251b131961df13cd0066f07d0361661ff691f68af685f5a50e77768d96183859e84399c54434d93ee3e6e12c3914a8a50f056412f5820c6ee76b3cd2cbb59a561cc52619c9efc5794735de95c5b56af0de6c4e0553b0381b24184d45d64a46048d76be5cf51e06fb9b06ad0feb838f0fa1fb2eaad0db776e2e1458bb3f690979d36d773c16690929a11e97075f1d9741adcda4f4981b89c6958c73afa708eb1a31da59b44a5d06e50933dae8cb2c442eaeb0570fc0dbf68b2ac96c4871bf212174110f2341bbd5b5a2436f61ff91cd9f083dbf62a5f04dda70f66b5c0b4e4f76b9a4f4068c9bf9acc7f04097bcf98a097a44bd5a5cc723963ad6e0ef5f9f81bcd87e81e142a6711925a5111138edb366e22ec7be5d300a96dd110208316fc21e36919394ef55d913d1f3f87a304b4776a20f5256d4ef1752b4605421717440e04b62fcd7875e4ddab209a8b3ca78f4f24351fe26c50fdb232172ac4ddc67f4817efd6646898d927c0249fc8d2d534e6215d990fcf0de77afb3d0a8e9b2ee9e449fa7bcff9c3dc539c38ce569f3df4e47e5ead0522c4787be90f45ced35f3bfd03335338d01412efd61ea197cea1cefbf334ef05df12b23fedba20f7c3babb2636bb99e519c0855aba255328c77030e31a9336dfe4827b90263f31945f248f28f46a12e5a45b892a8ef9b38e361ebd2361f2e8f5b4dce0329c68d41d450e02b73e789c41087f605350498f36c3e66eaa5e5ca3a7b81db700bd83df73c328c7f61926468a60e99519c01ce0cce15c1fcd80a2f03ff8340c4e0a8566b94e44d373e80ef7d3518d5e8d3c0ab6b359fc73c9f5a613a2c230ad0669ecffe0cc616e131493a4726afe65abf08c87264b002ef9a96d2a7285f2f918f7725b8f339e2704eee70042d90d740eef53beeb10284b229a26cbdc24ebf7df3c4a0928913c41f7dc3319efbbbe7dbad06e1c10d9ef0b121a5111a6fabc8e55160ddb7f094e0aba7730c8c2cdc56b6128afbf566e85382db835de49618b1c3685b9d2e1957dabb6bb9592d6a017b3b9a27f6253fe525cf9e1e9ac038980991897d6485e09d570560bc1afcd06b225c6c0946ea7c658bbc881279b9311f6ff50e10dc030bd8cda89e54fcf93121bcff441eed9a31ffb23ea201bbafb6a73a055e694d1fc724b19f7a8e9642c868b1d40c366659f4d1c3015632f52f178e7ebb5a489c4b254d46a2c7fc519729d343fdcafb196a60ffcdc18cdd1fc1099a2893a156ac7122d0300b108dfa097d20a52190ea1a983a37a160e41e1e084d015fdd874310f995643cc780bd15403a155d2e6769d5ef029fccd6b81cecf922cc10e1c1e5a264103fcc111a636d0e840a07995bd2bcea80d9135f5a3267d10d23ead5df9f0f13916efe4113ae38c9ef6988d634c653a3be145f1d362f7eae642856190bb53902989cf982619ff613d304d6f789f5a4a9969efdcabd7203cb728726a9eafb089e81f10840242e3a3e05ab17448f2728eb463b058f47bd2f075f09f8d854a3c276d6ad55ccd313bc8eb509cf05fa2ee5a068d737dcec474244ac18ddfdebfe009d4252afa7d7243fc3314533ecb1506eaa5b226531fab517c4e1cff341bcb365f88b2cbaa71383ccf31fa9bf3dc5fe3ef8beab8c84ccfc0476537edea94d744866f01d326de76865c4deb5b99401134ba4cf7da80e900ccbc0171a1b35334341cb5e3b0ff18eb6268ac5c762d7954d5534edb5f63513a243e1fe36d05849bfd5a25a5d2c483f25d04cfc44e7f1bad39e4a0c5b5c1734dba1e315756aa09577a939e48e0c598e596f5cc03d11b9700f33a29cfed9d3cad2e357e9ec0d29d911d9bb7cfb1a1aa09583b9c254b8cdb46fdface9fa8ce56e709a1900be46d961b72216a20720ed3d9aeb2345b7f32b01e93df5fae4c537a477e070bea63c4bb155183958af19eabc2e585716aec024d2b1d9ae57005b4da99b57121a020cae502fdee72a213abeb9bda18b3d8ff8eb06028ea3e630122e1a36a0872e1b0ad66e99872f4a5784cbc5382f25c0c81d0563d0155cda789fb19a6904b1500bd4b27b798c27e63646e1a688cc7319fa5cd12b54dfafb0186271d1ca8d3a54d696fe9a9cb1cf072695d678cab5f02250f2c126950e368c02ecc71d8f3c2ed17c0776981d0a23d469f734cef1bae0fab20e56c1da7223cebbff1452b1db0bdb0e3ca763b9145a5685ceb5ae41f0a350fbb195600d848cbc42fdce5c351df3de3e113f1c7e9f6d2062c86c31369a80496971128adb205f21c7197e390d5d5b1a0c9b62f6497f63028eba60e87a7bde1e7a9ce6ae2737d9686782c30babda8880028c25c6aee28e58083de7c8f859519470e773024a9cd882d30af28ff34bb98598fba5e993a22e920c7b8fa736a93d5bfac24261e92c440830afe672958ee9f1d16d6b6169bfc4d0a4f09aed19125b3b89d2e68b8a275fa57d73a2d9ebd8dc4024b81c2b4b5c717672cb4b047d40a5dd389a681cfd85d4f68a397e51932be86fa27612223f619dca3d6100c3f54153f0d29f43ba093668afb51d7a213e7039c85a4b8c7f3db043ba4f529dcf45412b86b5bbcf0a08c71d15b18f006ad7bda38d29c763c601a5a65c124c4e708be83106cd33cca21514552452f843b6b68544af9ad466175166cde922ad5099ae23aa6da361f278afc711a23e55ac0f9989e7805c4aeb222cc2235c980e8e751d0c669f1a9e8c23f9d4e54f6573639264933f28313bd2847062654847616e2d351c0e798ffd4cc941c362163fb319af82de9914a9dd7f90e9571cf0404db3123228ed97c9aa597bfee6896d4525d22b84214f0fe818d30494a20672ee1bb9c962ba49b2a47db953eb4fc609a68208a56595bd211e5c489ee34d2ca8043fcd64f21030c36cad455de3b9a23b163df8a1fe64158ed02c1450efc37da3b064bfe617fe37deffbaf1843255fefde247309bb75fc81065b095d772998c6e33d5bad01200878b676db91192d1f5c55fd88bc8096a535c8f3c150a972390359aacf5c3fe6bd908fee83e2cb564f8f17c4c9d170e6b3160313ffd1c7b95de48b3d08018c4b44a7942de32b15baae76baff812b61d0e2bca1a610e15ad99f8deef0ab3e15763907222786dc62bbedd082805298d05077149da0bcfe82a3a25ba9f61c114b8c01c407e587abb1aefdcbd5a6b63a0ec859aeda5497c09d9e2a4efc3697d6b391fa8403ad15398fc5cd80a9d4474fdac4392113e1933bc7faea34b29a07bed2f2a7e672098e7d0af689b19ccc37f5c3d611e8a5661867217174ec25c3b01dfd24a837aaca52ce5f373fd4a4d631c4a4503a9fff01ce24812f62151acaf410408958d757d2f63cfdcc16b4fb2d2e7a017c998451dfb95b8cba66131eb1a150fe5a72822a1aab96c25af7a747f39c3192d450b3e47d527ff40c9736b4ece9c64b12f97e60f38f9cd48671f10f672cda42f0ecab11e49631840229d04fbaaff307d25c5be7fe0e8544c94980dbdca96baa8d18c74528daaddda4eb24aeecdc8795903ba28a503af2038fce46e03b417ac574d0ee908f4dd8134c19603c195e0cd45af5338435b204f348baeeaa3261bf031f95b1887208ced760b75f652d0442df61512c23ca62176772bd8cf1367bc0d9d79a890026f269911b489c0e5c8ebfb3f12b6b65c9610fc328300129266cbae7f95ea2ecfa574fe94e280dac0ac02852f78f42dd1e156abc3d6adbb0e847a5ec5dacbc661044b7e400186962a4187af380a74e1cfb10f2580a42a16ffeb45ef5e6256d174da9704ca952bce67763c29d9dd952d66d4dd9af2d2f115fdecb9bbfe7a6f55f0d37f9dd5fac6bcca34f4fddc521d89f801af34d73d7a2c4589b7efd086e95f170fe74bad0c592fa8b16f6a6a33421b1147429f7fa401a2ae448125c4f3c619bc6808a38ecff9d10ec78e70731e9e390c5d85a3111df5510f24cd00f9c5b0c170150a3173a5e16c77b13b60d525bc6a252eab1cfeb8fa5ca5a6a07c7cca4209cb94261a78461c6e9b8b207842d76f112418aa4d41d2a23fcc4af145014048d30a7e2493d733bdb02a3166abfe217d50becb484ef3726851f32522f822f4b40a60662537f9601e82c684e4e1a3cbf8c4fd00db17ff0bcf7a2badf404d7c5957881840ec47787c3bf707ec45927c278ea9f559bad637eb9b24a8cbf21d32921647a23612a67204ffd62a99160c861c5fd7b8f6c9b7ca1d5114274dc7f318694243288cf14cac4a909fd62ccae0d9cdde954d04c660ffe384ad272bd50eeb8dd5eb4743bd1e9512b98a9c4208284164235044b15304a27ad7cc118e661262d1e6bfb11ff7d7179f510eb5a09907fc0f92556c02be4180124cf432535c791106a2a3d157c3545ee90ace16c5ffbd396e869c74c350da6e51bfc1c0d450af49b6862d6473b57a0bf1609fd8c50753794a3bece418297f4cf040f736269259fc3779dcc7ec6998b62a28393f9a295f81dafe1654fbf97153ed74d33a57fe536cdf9c0ab15756f0bc530cb56ad6f91bcbec387d6ec93db8519470624f913b036fd1b022ef289e9eb9e6a2f8a6536de3450f5a4e96651ceaaf1e415d59b09cc7002c155ecb3601724d5608c7f08684f1ebe5b766230870bf203b90c20de7fc23f1f6fb5b9d5ffe84dd4c000cba18c8a5b919719053bcaed84034ce0031f104ca43d6fa2643494f130d2a79a8a9c77ab83f11079f2401004791e65954d3c0bd37db8fd5f42d394ab11e58d247b580d6b5f75aabaa975f47c1397be91e809365df779cb4023f8168a9c404006b083ec105ea5274097e088b904e872e31b80e7b3af8fad589686c2fb3cee8ed99edd08c5bd1d4773e16e042336f12c0c8c60a8cf09f647a20e91c9756ea999dd7ee0375ff95f8263d7298e1d36bae235963084e1824d41ec320fb1fda6eebec6f71b5c80014a49ba955e66c3f6fc09db9f1e273e8a6e12ecd09171060e348d141788a7f078eea0e08e2742f8d5c469aacc802a07da3e65a1cd6da75aa852921d13ea006a9378a9a6729f09328b649436e0c117fb6513d51b439490c205de74858a5a553293a77c2317f91cdc91794963ba2354cb9ad2edb29170c35568e492fd54e7b3453f68bc3963eec07ab63159b5a7836c26ab1bed9020d9c08282f5cab438e02b1dd87e4b62da719939469bcc3b3606628f9d6261fd2dd127b9223b18ef2b51357de70a41560efced2d1c8c82b41726d66b100091cdbf31f8fd821178413a54cf1337a2192f3a3b42394b792c32656df37fabf9ea95e6eb73c3d10fd3f6c50e3c6891641137d4befa05e635b0a40e0b76df362ebae0f023f4b377240f1223c1b621fe7eb03a1e0a7b0787816df417e8aa4015efba113d93ff9d55a77451b27493cd6fd5e5d0205950c3fea20e29898c148e9db6b06a1483e0c5b307e99c617d1bf99e259585d8b078b94c7d37183ade8219c3da3f412294233cf5f64cc5207533bb5b0295ccbd14e80aa00403957171f8a14895a4b837b0f80d76525d8f99ad251d4f16efdeea437d25e47bfdc2de7432675467f4b2129471cca29d89cf9b1e586ce3b991cdfd0f2c9f1a426ea06b4c8b5552f6854dcd6325da6851cb62e54ee070a6d5a34ba826d32a4f9580a93da3ad1724d15c2837987c235010c76b37deb7a0ba16d65b424e908659e0f50b0fe0a58ea57ea171795b7e17f86749ca4919844d9f2921046d04ea36ba336f33d7e4e85956fb45bb04d286c74e06bf14307bc5177e6be3aba9d1e887bdf04bf3610ab048d1ae2f6888b47c2556387f77aa9f028e3a95c483dfe290cb046dde939043d5dc47656b74437fdaa04697a91737cdc98c9c564d1644ac61c72f996b80daba4418352521880b7e5b0eb445596fdf088303f62479b7103ee62638e1ee3bc15b892f3ac851d09d8fc2247f5457a378da0c9e8def09bed0dcbc4c5460348bb017e93c7483f6e590c7b98803e8873607fcdf452e7439f897d84e842e5db45346b6983539118a939243fe9471aaa7afb5ced03784a3a5ce80fde3bd07be101c7639f90bddc0c00d56d742ed30cc1cd4be9ef50cba4e1a97f247e5f8b88aa5be2dbdd146d5e8a21ff993be4e8db4afd6b878b522dbd4e69ff2ed2d6bee580f89fdf202fc017e31274265f92301e65654cf6d5f11218590191a6edfa1ef8dbb2c31851f5c499a8114f9472e60de6c59377d911d5134e33f546ef0e07e22e80ef6f9a607247a3dc9407e908f11abc15b022e050b746f43f019d465e8c3edb01d875e65bdfd7949c3d4416e3e93066cc2a45c1d1a482bc5e5269c4aa3f0d962e2038a04c1b4ab8d69e09e70e0684fd6a4ed091caf3e45a4f77d2a19b46bfdd2d4d76ddb8a158601aca876e0132cf06124bf9f61050fca7dff48ad16554b78df2243a91ccf3732b6b6242e539e3c7186aa6a62c5f084afa0414ad1b27b3c0750c0844412c289b036fa98910c4cd3b76bf2f4226b9074d1b2d82d346d155a93dc0d92cb619c38d1eacbdc437c1f964de5385614dfbb4071acebdf20f53121a5f2ab58d26f1537777ae24ca29ee6b378a945504f36432e36b24e9ce5995263659386c8350b329a106b8785218a681b8ded44a3638e9b0077a794115d606b22b33d3d1cf4c3fd05b10e90fed3b97100a888970e5e16264e6d9c0b0ad04827b77358b3be5656614e06be1b3cbdd021489e740b0f9b5aa67acbb90a0380827b7bde356b8bd63fad7b041454d04a426c2632b59ed5e963ab8843ab0cfb416ccf4049877d6aa3f670ad594440e3d44e5d4ac95d118b880510e5b9ffe3bbcd6bc0a51f85b118f540e6fb240736c6a860be456843c21bc649fede62f212756b942c297959ed88589cf898449aa3f47710a5034e1b4d084156860c0b76b91c8e3a4c7d359d20978da50997fdd7e0e56dfb8ff40450268afd9c28d14cccca7a40bece80d377a97a20e6f1d9b8d206eddef4943da0865f3ac99a912a4ea000d22aa4a7e5351579d96ad47352ec82bbd446fd5c8bd11d889ad746f412aa53083683411c2a138a123be52b2768c0216899baef0b3055b1bb8e9206a0d618a7b290176325c74bae14a532099680ab32231449e52e8fc87f17d9e47ac8bd671fe838f5bc550edbd9bb0783495fcb5dac69f9f1eda52a845098f6d767fc1fd7886efdcb967de301ee3f268525155306456c1abeb20f170c1112bcfcb35656ee73832bf920f279025a1339ad98b96e9c5f9e7f8d58085c9e1e789d2a8ba84dc99ab5d536ff327d6d3721445e445a7b29caa16bad78c82ae78f8197604c148483599fdb165a7ea78a6ca0d0e0e59cdeccd6b3a4827c0a82c5fcfefb0e1ee01939fef2863cfc6989589dffaafb996efa1d435c2b5e1dd29a57b2649debe93c3a53530831835095d19c3698d1619f713cbf56b7ab1765a0b51f2a4fb3c5f90ebc341251753c2a9c41b6db8933534608ba795c410fa3cf964cf2be7e179446d3c007c50cc18bfcf1774cb56f8edef38c0c5b62f263a25d56cd6d0f714ad0b05e3ea11e82722fbba76e823d15a0ecd98cdee36a550ac9a2b4e4e586906e545b5216c38278e1405f6737e768b13bc969f30b497f19f79b9e676e22b84b9a996cdf8200b7adc681770464d4d50e0ef63d0fcf98ab9209e450ce2eb0ff6a14e198aa1559aeb2d099075933add7a4c6ff2d8e57c8c43422cae781a286131b724fc3f8d4aa5f2f3a46634e9e843c73ea3c6a98455a4ee4ad402ab053c3812d61c8d7f9de2186bd9164684730c6ccb9360cab69e982cdbb7b8ee4ccb88578e6d95901c4b6f3f2648c9d39156cd234caf68cb4a2cdc72320b0313ab517d2817fa9c429f9b2cdb09281e4b99cdc57ebf6ccdb0a435460954cb6952a78764f21301b4b31b9701014772c02cb7d5d846fe8adcc3c4666c44c74ff00cc589181c84efd79feb5f0cb11a190598b11677ef5fbd90fe3f2c234e792bcd220d04a64c2753abe067cb50dba1a95e453824a3f3ba20102b258af76d7f7db9cdfa919665e378e413dadcfe635e070d7a35daa57e856dcc68869f54f9fa655a7bdb534c3589be3be94532cdb5b04add97d9eeaf5ce37238a04e73cfe5c453a1e8d8b2fa49d532a05b7d06416ae34e4e87f7040c91627c7adbfa2409a07abff8f6b3f6b5c8d3ec2c56a68e9d556aa049cd9b825e76fe910c8705b7e31b8b5681aabb7a36d1e0490485e4c2626a6a82d7c0b40ef404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f", - "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f" - ], - "measurement": [ - 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 - ], - "nonce": "000102030405060708090a0b0c0d0e0f", - "out_shares": [ - [ - "4936ef72468a2084", - "7ea10552f7acbb4b", - "c00477bce87b99b5", - "e9fcf8a91e60195b", - "08482153283c3a8a", - "b4ccac3467243afb", - "9d0be62817287a7e", - "234de93541d95a21", - "0562502848a4d7af", - "b69b825402b19b0c", - "f1d5db7823cfa7c1", - "fa4a0bf5e1ff606b", - "75e0fd84dd5cc749", - "cdd9fe6cc757a177", - "64b5ad3e688c02c9", - "2cd5833f71de25f9", - "7eceb8087ac8b5d1", - "dd149bd4c3fcae19", - "d4d2d868cc0e94f2", - "f5a994bc6c9a9bd9" - ], - [ - "c8c9108db875df7b", - "835efaad075344b4", - "41fb88431684664a", - "18030756e09fe6a4", - "f9b7deacd6c3c575", - "4d3353cb97dbc504", - "64f419d7e7d78581", - "deb216cabd26a5de", - "fc9dafd7b65b2850", - "4b647dabfc4e64f3", - "102a2487db30583e", - "07b5f40a1d009f94", - "8c1f027b21a338b6", - "3426019337a85e88", - "9d4a52c19673fd36", - "d52a7cc08d21da06", - "833147f784374a2e", - "24eb642b3b0351e6", - "2d2d279732f16b0d", - "0c566b4392656426" - ] - ], - "prep_messages": [ - "a8465fd8d7707903d9c7bc028464c3d88affab7446eabc7a64eeeaec05c7bf46" - ], - "prep_shares": [ - [ - "1d3d6d23dca71aace6932318e12d06f3a75761a8d204be2fd29596a532be0d7d142c48a535a64290407a17e055c0caa83f26e0c858af2c86c0d7b29f3c4f5ec05a296739e9ea948ec3c7dca00a4a90475e4938ad0dbc66ed805ecb5a0fc8e767168d7e720c2cac03c7059cd180cc769865376e3bbb08c324f12bd180e2c170bd136deb9e1b4189d5a662d67950351a994a479fba7fe131692fb22dc888e30abbe3719aec42475bc87afa9df4f275da3e68210025c9377ab55f6a9aa64c835084424538e60574399222f645c60d66894e936eda9baab3bdbc15edae356e8816d36febf67491ecfd477c73510081aa71b67460d242619af6ccdf1aabdf418f830ba667e8a6a295e20c2f5d6627ba8c794d718dcbcc5bbfc31ef59c0c2f5a51e991fd3aba34fcf343159eb484daaada9ee5a12d7d6c6e684563b2bd87b06b0241d361d68a382c973c8e6bc71a713499f50320c820c77b184eb0fcdbb9e626adec82db50d8a2842ceb628c02028b4923a692efa17ec982f5a89dac6ecb70b043ca08300010187105f46e9760d2e1415aaa9d83d5ffd1c902cdfb9e5cf9dad4073bbf9fb9ee3175c4826d6ac2f4f0ce152fb51697059202425213a14e41ad155f34a94cef9a8eb41a9896cf67012f4095fc3c332155501125dcab5ea516e6e80e26dfda90e6169731bffcf41a66d4da24a989ef3530ab1ce2028aad91aaa74292a5799bd9bbee15cb1beda8377e2337dc206100ade262181bba1509da01e9986110e28b16b479d724d2665b74455f124256f123735eb692e9530bb54efd64c4f3513f834bc325ac06d1996dcf405142bfaf664030e6dad414bd41cf8f8c449dfa20f5356aa25c3ac4e2f63ee429bbd730c1f234ec8886d7125ff1619c71c45c2773b079081f62b37c2767cd023618ee2036cd7e43b17019ad4a6d9fd9a843bb37ded9596786069fe6268cff48d7399653cdaffce146cab1f6cea11b69d731070fe65b00010187ab891e30ed1e045a58447d4756f0671d0dd43e5b61732fabb401e678cb453cb8d6b25cca4159c08c098188483c90c65ce011313c37ec8aae38e1447d98b7b61828ab238a1c5e9fa738ad0e363288ab497438634dc6ff33d59f3683fadb00ff0823bc4a6161d7b638bba00d347abff96bc50c94c8e4a3a4b640da3f868a7f8e0d89aec85d8596f0be7b34758053ebefeeb2db6db45a4ae265cb44476879dd62e0ed9cf90462abec882dc5e1d29087934e8e0dbf42136d9788f7bdcafad66aa83cf52e41805fefab0ee019189f4a60cac20af52908d96de493a1e5cde3ded1912e6bd6711f8664db18bec478ec57c6fb2efbc17ae8e4cc25bb7c048f8ac8eadf32aacb23f8869e5ddd6b89386bd012abc74ce3a99ef9401d268c9e376ad08666ac8c5fbafaaf671ce0cbe67119128d7e2b8c00b97dcfdb26af4014e50a3d47460d9681a0eb329236806b4c6f23cc5daf66f417e966ad03dbce8ab79cb4c3ab546be014d6854e4ae30c465fc3042b4121d6333baec7935fa6aa3752ee9e6d617513dedd9fb6a6465b68d02def8e980e9df74f579013bf1f49007dbe0761e89a6e81fab74eae687f4b4707907cc4149fe5c31fb6bcbc5f125b9e28a687ab83f353c308d314310407a8e161e83109e3a96cdeba51e19166eb0bb7f14a6cd7d3d29772cbd780518d92333cf372b622586bcc84e5f2101cc1dd40092a1201904206410b1f295a13844283861f958c022c96b03763ebc0411b0f57ed7c285fe075273fff6a4619159b96abb06caae920819b2b0bd408cc29406504615a8dbb726544b63ca0b8794dc3e7f71a632b61cad76c4e3c5f975725eb9e097c4e339620bc01952fa92ded6abe9b0d47bb7a3f3a290bf43acb0825b367fd4671fc9b9d6da7129b8ec710d28ff73244fd63c780e085218acef8cd9de51af76d62b099152e5f10872bab48c371467ab3fee0aa448f2d3ab5618ba3ad516d13e20def58c680c0fa6af7dc9bad011ad5b16d92c5b1438439798d4dfe1e7838aaf15d3a54f46d8095fee306e9790fea363e3ab59b33a4d00c0c138a4dfc7100c428ebf38667bc24e9521947309b3b0c54da0ea0f2f2a647e5eb20e4ecea96d1f1c1be71fb82b89cb6042f4c7136821014a2ab5dc7cb8c6c7f497d02dde40c25a8b88436f6ab701cb3f66061bfee69c7d7beff07f70081bac130a777aedfe9d02274c2e29acfcad368932dd15b74e3718b9cd2150d364cfb356c3e4b2f1b1f91acc01f974958034d08f90c9197cee3c72f856d94c9ddf5976ccf137a34efce55b2c9c60fcbd6421264ea3d388a6934de2ee37899a81c1fb45f161cbfea28481f4f3e003e5169dfae49607c251a9f4d421f1af6cc6ef06a3fe6217527bb2371bd72c7d0cb34191c929adeecdb50855fe930583743dc6b8ffc800acf75cdb5c824d875674bc39edfc2555127cd2198c41d0b6ed5c621fbe691572ae143b8ae135c67fb569d3d3fa0b496021ddbaa6ee40cf7cf29d9fa0dadc51f8bf64a5c0aabcf1bbf797b4d01ccb5c4ebb7a8f44049d7daf008aa98d6e47b03f33bbe49828187511a8911bdf727c1db572ec995b05d6f21fb35552db2bfcfbba583d0e509693fb6adfbd136fcabeb445261676e0812eda87b4ad385ac3a9a5a56d3afebae1e8ec5e9d82cf7c1619ff9f7997e9e7ac5250b54e03915ef1b102caac5f04f4eee3cf280fc77b45d9e1cda1d928a93129e069ed9db7452929f375fa13f1e98acda3889dd901baeb742df7efce23098e3c3672d70791cc4734d42eab3794c51dbd62b307e83721efc627d5bbfc8e0ac66f200a3c684c1a337a9c8d7a10cc42dff436deaa189a2d6df46fd577abc453dfc7e0cc8c7a349d96d2b8e8553a1fb12f9c434ddd20cf39660852a50e0b3a164bf52d4094072c4b09025f09aefe7ef34ba6c7f2c80055b9007c78b4ce9756425924ae8a2e9f04411f0395566835b1dfab77206e48facbb541684f91379dcbc27fedef6ec19ad6eca770f1efe356a5dbb2fc10d74762c775cf2fcdcc7742548636191275a63cb435cb1fd920357b99bdef581b736a3aa39a48d91a5ceed9e7be03e2b16ea40a323850ca83f98a2c38b541d20913ccb2041e6b7912e803b7b42172963d69d87d4ae07ac1d055eabe6745d6177cdeaa3ba676b2fa32421cc671bfcdb76f7de8854fd6dd77cf8436880dace887ffd68a03b0d2fe081ae0fc6eeb6001b9e34ca776a0c1779acd677dd456689efcd4e175a94cf2c47c3141405f9375f47cd6fc38dd408888d040c80ae6d5b78b8c564b3d6692b2b95a5919ded41d6cf9c344980876c5b7e8e758b1f13a121133b34e3c739d85dd29267302f132c45bebe5a19541a058be9ed52ab202e828cc9913da901268b3e97016efbf9dd197dd5cff902862e29da26cde94d00aa684f6c12005354078219bbfc2908e850ab35e6eb0e17afc84221e095ffb04f49e95ad72f6ac92fbea10f3870293da42dfd45abc435944ff479cdfd93fbcaea281c0b3a8d82c37914057c4688d30413ec0434f7cec8e0c4444b69e5b50642d5bd96a143fddd706cf9e2373592661849b4ab761c61c6a4a26c8268e244060e9c2066bbb447f9b76edb3fb793986112a9b1ad2e34f8c1c3428fb39bf8630774246a809bb047845575d288ddb3b63fd2f3b325cb28b2c4327ff1eb8d5b9ac573fab447c1185402b4edcee8cec4a409a64369a1eeab5796d44c0311b1863bf18ec68990a4cc4a973075c1ce0535814ed9fe119af974b9ff42adda92e10c305f72841a00afa77b2e8bffff075c80084636869949024ebf8fca77c07874043f24157591e5260a6cdf66ee585eb436fa823549497c4762a0a4ff54ee39d8691c7054a4a0a4b2f837ed18a78cbe585d0f2384906db0958ac83624ef7fceb94b1d61b6088ed85b01e7991e0fe8c4f058e3243adf1b5eb1b0dc64ed8e61f5b976a2193ce6c9eb5c80cf9969ac9e33b4e89a7e469ec70c5e5098427bb2388c411145fb458ffe017063ec64005fbb05e948a281c4ffc7e09b0044037cd8495d43c3101cb689400b6061b817383c84fa9001b58280fb15befe62d4098f7ac101e98bbd542be5178768f8d9ea1816e545358c8ad722df5254713e49fb1c147dde965d5f0ef6134db5f094d432556badf6edc3c4f05237ef0e0adf5246bb587588dec767671524961b7c77675aa72d65dac7bc22be1e7579c84701a3652dbd949c35617aa8707b67085eaf76c01f538cba8759e550baad8ee42366c32db27e7702931df786889db6c5787fde99212d749e053db570d899145356b0a58a6bae9dc2aebe61b6420ee19ff41dc89f5a8aa28e5e6097006e662d947eac4734fd09efa4c9c0f51cf148e979baae5f242ce933c25e8f699904071cef714b2319d9c978a54e713b2afdcb55fd267c44939d939398e3b1358b62a6ecbda67efc41ba7e5660e67ea452c645da7bc3b67c883ce04dae466c6cd6c428caea2a7eb2f5f8b36d128f52b1b5ba27d54c6e1771f6abac6a40f3ad45f63029312edec8f9b11d4d181a49991659744dbc44e253a633986c25d1aedbef1176bd4980c11decf666746e84a08126cc7bad9d090ed9b6935cad415452b109793d681d94fab8dd358a855d00b4564d241bed6ffa6c37ca018fd60d609cfd152951ec379292845df819e8136a9d21d0ee6869fcda4f52df10e788ccf988814a730a5beaaa2ff62a069eb30b2377f85a86157e63a52123a91ccd8af9920701305b72adc01d2ce4e1d68da485fc0c551bec0bdf57919b34a66e7ffe705cd7646357011f096990779b3083989450830a79d84ba9231b00aa23c21ab76a4bc5265e7a8168bb09bf76a213308728beecbf5dc4cc9891544b30c58a2bc405d3359008dc00eb11a7ce66fc20c13e800660d31004a942f99e955857b9c222f38ff910c97d15e3f894d199d0072810a5aa17c978f9b96846eca295bfba6eb07baac034e7fb10f71708cd0c457d8dbfef83bf3ff70da0e97afa6e66c59950469329c4904bbae81a84dddd48136799f8c85204aec58b9693e955a4405a86efa8b3dc3c805b97684bb075a036d4ce3349391d2f5f4209009fa5a73fe0a444e8c57e6a8addd09aa88472886f820752e2d179677ad655236de1045c3b128815844a73707e9434b0672a9558f1af919e90f69cd423fbb6d8a4d71e075261b85ce002a4cc9a39e6d8918d3c659dcaa26260935cf602cc9805a7cfe60b7feac7e92f67214c154fe0758981b6d22610492bc3604545dc4e24b95623f12166fdfd8c4edad6c76b11c4c486f1cf27d9a9bfb660d089e3373aee5e960cb11fe64f6515899e6d8b5331c6fc5811cb0d5ad132f9cdb20c912dfbecb968d998d8dfaab58493786da7953c21885897412755e2ce719052e3f8fa7f99e1f87709a6b1e58d5c6767ae7aa28c7554b0beefe9829e5522e0212f76bc497a6d2186c7fbeabeb734d8f50083d4327f9ea54fa754518ae73faaa9c000f01afdc9e8f315cb15563a1d72a305817fdc490b197d3630a5eefc4873fc3a90054c09f8c0a9aa169bf5d74bbeaf6e44de5a901db340a3f689915a64a4e5de3e0cb1fae73203d6a3a7feb4b92af712e74a718bb6595432f7bb9fd78e2035f5231fd735fcafdbf067841a6e7ce1c2b608b36c9e4a9ef40f50113fbd688983d57ad76e0295d005e678c1d7b65aef41fad012dfb400cbac9ee8385e9644d42b14704661946c5f06c3606aa3539c68dde3ae1a9c2561410d58851c6f00604892783df802ea32f67224ee0956390f3016e28bebb3362544a99eebebc638b8f161d8c87f6e213731c48b6bed88992893c4479897894b531c13853587b66f8e0faca141de6f9d388ebe22bd3ce9ef2a2128b6fe6a2c9fc8304a008b2f84c00990c3aac82bb66879deaf3b19bd487ce99b19d70c07b2b18e718c12992a4914df241c6c96131027382fed3aec619fc1229264ba15fe147df7ef1dc383731eb5e74ad2d76f841f86e04a372f7849d4f9ef0e63157ded212bb0c0b1a4f68cdfb47598df8c6242627323a5d4536dcd2a006a8da4ec72183654f23c8a6a4f13c21e17266d32157844913c29f39a5e1fedf50ca4ee7d5625f045d2911cc5bb2020d494822dd47c609e2ae37064ccab5eb3d11543ffe9b0ddec1521c06ca7a49ec48cf28e99f06ee8a553a75e8220f4ba303ebf06b63087792412ab78cea47a4b4ea46d208a6adc2ed187aca76c0e6b15502b111f42bcdee3062b1261be24ccc56a632f154ce781531bf44140f2b58c35e4f5a402192d31ed7b3d69154524f7a69df751f9a347b1a5b0f205ca5c6c92e8c967c1a468fb25ddef8dd25c0686c87fc909f725b58ba900d13c934f74e8a1982e9196c8052ab65226ab9323bdb936e4301c3f249b9f9b29c5b0df456b4aef615a7752ebadc93cadf65d98e8592627fda5baf41f4628e4f44b10e451dc348c69104f44fdc20a2331b6a66d3aeff73338783939e91654846e1280f5486143718fea50cac5fe892a5cb360535f68d6f84d34b608a98fa066168190ce594cb9f91e86a465ee9ad58479bdb5f7c98b4e252c7372b8ac0ba3360955957f5c3f020b1ad24072022e5b631b47f5fe931d3427264ffdf7c4b36cdb64e1e981d60ca09e7dcc5834e2ef9e83f5a03debb00e702451ea35e8fcade7cdd85b4c360c04e409deaa8cca89d860bec98be9a4c3da97382f6fcd38ce0e1172c33d4ef2c39d1f9b7d2f3a8b25e7db198091a3494ac2abdb530c7e7a18568947279a0b81ca8172a21c6806a84ff34ca7492b1f40f15f747b45be68af309ab11d3324c6b12ecbb92f6b24c54aecb30ebd940190f8bc1165203c04299d6610caea2baf6bc60da9e4b41d10dd902d482a152ce385af", - "e4c292dc2258e553bf2b98a7ae92d0e239c741c97daafba3bb481a58a9c4386d75edcc74448983c09053fa7e02c6fde78e9b0f5c733ec55da74a70c12e5ac5b5b3a6707e191d9d67ecfa77fb5cc700d342ef8d7b0cdab7d977f0843f008e5bcf0688c250216360c86399ab4747f75831358c4e26b6e51828593f7f497fe67ffe998c14144cb5012bbaf4060ee6e1b878bb4990ce62f9fa025d5b5502c52f41bbd0ba0cd98c909cffd7f87ad735077f30daff11540b4139920496db3867605ec63d1e6a818bc6acd752cf30f82defede46683988b89f7ed01717b044c6b84a65a30572d01b53a4867922fe6aac4a65f36b5a54de84a3401a3a4643c8545031d78fd67cea9185ea7de2594cc26cde2331390a427ae890a3409ef6b5bd8c2772579134b7c279b9f7f18711feaa974127253e5518b2ee3118bd4a9319ca814084293a14d3b7eb61e9146fe9ab9a521413fe13fb6373f692253f668974f5a83a9501eb430b7ed92fc52b7e7028311ff73161c4be491511674ca2dcfd5c884042b8bfe0c8834386762e28113948682b64e3995b19bfa144711be4ce974036e0c3ec0591d9e0601cb2796850a820b03016f1acd7d1c763b61c8511bd792d92d587a45d1e721bed43d1bb45b9ef3e532945b713f648b9a5fb435ffc29f19ac392755f88a7b6f049b7d487873b06aed100cfb2edb17d0f7591a2621011c543d339b536c2d4e7d46ed2a446bc945a9e888d25bc0f6bf5eaa31e2038bb90eca8c1cd25da844eb58478192ce89da5716aee5b70eb11a1c4425e95ec63d40a086d418db58a7e66fc74b5812a1708c8e663e4a28fefc341dc81404a031b93a0df571230275f3613a5716c9319c42e74b238ecb82635f73c6079472ed25a6c15aad097a449eee692c5ba2a3f9ba0ff826aacf056d9564fe1346a74b893c79841471b83819a559a57c7c76bdc574a6a9ff2c4a6e4be6bfa4271b3696b551df5b561da42b92da6e4223cf18899b9b792402e4c6ba034e3c4351acca61b3f01450db66c8154099a96e875bdd51a29cb25216ea6c3497f74a5b8a3b37ba8f3ae503d21da393f5d8f448de2e635bfd0210bc078ad35233479b5080534b71257b50291ed33f2a4ef5b6cadf8fd4735cbdbc4bc02f867b31fa3445cb2d00d4f1cf230c78f4ce269129af5d93a3840f72ed281c82a8a31f48ad0ec4c9d77ecb46361f9bf90a00483784625223273ec9860216f63ed4b6647a2b442d1411e58edf791b3edeed5765c0ecf3ab14b599fb45489cef4e560a01adf603719e5601a33718b87c3f45532706902eafd4a60a5f86c45ff7c55f04974b62ec783d83e80774540d160c17e2edd384bc241757f00edb09c6cfa2a2976c123011a6137136945cabb00dde812c237d3f69f9fb8475aac84bc7fb9de44d4fb95de6314aa9d54cd58288a53ce0f6d28153acbc9f8079e94b679ec83fb02d803f59019c478ab8f6602ea10ed3b990385c98eac1c26134404cff842b370ec1b4c5606d69465e4be576d5474467a00b77aa07d0621a546c59f893e7e4ad294532998a221f97a724f4d122e769f738422d57803f512e6d0ea149e48490c63d373a38dab7a7459cf83d3a80868a56995aa75000ac1c216a07272aef7bee31a2916987425518f72a1dcdcc02b8b6f348fe03ae430f471164dd5f17855e3a3fa04cdac00920266eab0a79be80dfe5fcbe7f2368bdeacd07db34d1d42986b318e3d9f7e86933d3c60d643400943309dca327d4de4f07ac57572998064ef055ce734e531c96e1a905dd7fad1e72bce10d703906b7436e5279bb69e7789c79a9e2cc5753a54bbd58d4eb4698bfc8ab83e24dd591caac0f13cb7040aa929e06ce6a630f33bd49f68df7ae744586c29eeb3ff8167780a29aafc3209f7136325804079f3016ef294416e35ae9634d5a3155faf8efa15e070ce2a8072d0114d784d6d51445ee8bbca3ccf80cc0ea926cbc08c0e8ce0055e16c9a94fccc6af9961600fbefbb996d7699fd94093507a1bd31bccd5f4d3114273f31f4b06446eaed64a1520c020d77db74c4e68424f87c3d82d010a867aee4896a30b30d1416f447f3aee484d2a6e493ef5242e87dcf8ac6b1573e9a329f7fadced3082e84942c34ed68e3dd800ba08ef4abea03f60247f533a8bb2d7b78995088da2c98c07e217a79196443c1d93550db5ffac1798f76a8a5a89e7c223f738e6e6387d1d4b1ca167afd152c31cff473922e5cbf5a400d304465823aea92b174bc21a603239cd27bd1dc85ba9146c2164a56f3edb792a4997046485e4d17820cf6f263b54578213efcdaa61d606aaa84a32027aaf860d3b0de32591a079b043afe34cbdaef927899203efdb23d39df00158c868a54ffccaa062fa4bcf52e6f9711ccdee55777cf45b4cfd3c1af9daaf0f956a3be88e20d15ce256a9bd61ce4fcfa9ff4c546229ae8e368ef12c187849c06a31e81752f9b3827f8c5ad457997f43cfc8dba652b2dc1012f232fdb331870fffb48e5e8792a800faa9daf9085122d9b1c8ce2ecc4299948df73a9fe29ebac76b603d3d3189278cda950b4a5cd5df9013e30a72e6567b88f0f2d0a0037df38f99f2a10746e2d9318309a3ff8b5789fc2475951bd838b86f959e77c6b26aef7b006fd03850f3a7c922cbea7049142216fef36bacb3eebeb72093079d5b6ae0407bc2c061b1c525056b1de663c8294f4e576dd0ea9c675d68fbe31bd384688c6bf730e5431536c8cd9f17ca5033791774be1eae60b608de437187826fd9bb7b78ea6ea4d5190310207c675eb501f45f9d4bb2efb2a3b09ec4702aef7821958476c2ed0221db6ca1377d986b00d04bbc63f520ca6428b160396e6ecf3aee189ff32cbcd1acfc4acf0b4465961dc66126027b8eeda0c8e2a305369499fce64095d02869cbe639818b663b0ac531064f49ed9feaa0acdf7cc5e74fe4ab4930393c341d0e1c7576047c314ab314428aeaad5238ee7da94b295e71695c12fcc309e97cb7d607da3205cfb3405a72e815f3cadd87108ca84bd62de771ba6c61c1bfacc2ab1b4f47d913ebdb72724a0cf03e2ad1abf3b083a10bdc6377a75d65afd6d02ee7a976338ba698e5d7e755bd7a53e588e8d002a758e4d0595dedcae168ace0a811bdcadca64782ec1d64b1f69bd332b39a71cc383d3c0d2950c29d1f7e49f4f4efb27b20b2a467ef87dbf83ec65456ff7bf9bcc59780d5fa05a49a7e0de7343ad9d3b4a5961755857d3e5a9147420643a6a71088bee67deb54116d38afaca252ee0faede63a961661239ed2d38a81a95ebc21584658c13805799eb99a46ad8a75c70e0e4c1ca8e3837fe88b6d1a0c1bdb38151b8eb267446856839e533ab6ab9675da16889ec57d7fac380a8632432c6c72abc785fddd7bc261af45d08b8ab1f1e9b4ff5597af93edff9e96abe6e0abeddea1dda7d597b07151d9aef473a3457629b5dda4001001aed0e5f0159c3d88283b020ef83de0e34475e1de9c233d2b6324cc86a78e4e98c7491cc4fbd77f50da1acb007466e47c75b48002db335b1fee7e692aada74b019ac0278e9757fb0104a2110af6abe46908193f443006d5632bdbe38f7b5ba31a4eb4ba3763acd5ffa8d8dbd9f23aa1a3b55e308c2673a8eec1c55c34784a04ac32aa3fa338e1b006a398e9e22975cb963a2867bc04ded9c3f22dd0a6af7db3d74a3bad9407e00f93f1f60b83298131fbee7e4bbf0fa8be4cc4ad172356c07645c314c356cf1f3f9ba1a7525d42b869c0def0cbf0bd8b2daac756d737ae3bcb8210ddec8d88c44e9384889e839c7cbe730d2cc17da63d841d3f799b2b24119a83a551b2f520bd31c226999ec61e58cd8bf06ae6c9a19e1fee810969f6774c4bc0d7fba25175a8577945cac5e824ab9eba234da5efd6ed5f1795d19e6ee73c860d87e5b3801f47e0a80b893b6fa369e772f0ec5290d3901dc86c8d3868250f28e58396fb0caf06fc5bd0b9b8d6e913f3a6cb431b419125ca587c219039b2d0041a6e16cf2a1bcc49a86dd43ab9a171103bb0070734bd17904e4ee5287fe4aeb5286ab04c2cae633bdf498ccc7ebef1691d2aa149d4a1f723ba1c3fe31c7a4d5602dd164533ace8a7c01b95eaa6e29d402a323efd412ae9ff4b43aa322e713c08a6a0d94ea5fb52a0df0646739ee502804df516405a40e1243c3203784bee595c0eadb331ec44354635383ef8beab48b4d44c82ffd6bd0721305e34baab205b7558671076f938aa45eeac53af7fe356be23caccf6ed04ce5fdec72691a632668c5e58a3bef2361940e803491d559ae26ff84c5547fa245bd7ad4c0554ddc8f67c8751cc013b6378d31f5803461e41df707f7480db6258784bf76b345d1e312ea96d1e641565754820d9d61cef9b1b5625b004e4a75a2b06253a77b64602912da951391c30b94b1ce8b4956757c46924ca4459011e6f7afc7af3d9bb77a1ab2dd7e073a897d3da15af9bc8f5773fc2bac9f5a8624abc615ddebaf4af1f536ffdd6fa1e4c0f754e94580f936805fec71a503102adaca15b7c235e3c22a6cbfa898323b87c6ee3ac507120631a6b7794733e9b2554a3031c62059f884631ebc4823cd0a2a8654b2d70baa3efa1124a70baaa83456a875d32883d2f6491d0b73f57c8b1031f7b2a967c784b3e09063a6742378ee740ad626fbc53b051a530e07d95a7f1713de67dc5e9b11404291f0034bebe6dc6696d6fe039b58a5fb2e21ae808bbe708becd925dca91733fe84ed6c4359b083037ae87c5c7f82b0f2563bc9a61968e7965544007cdd33707d317cdf03634f414047f892bb0d3c55e67d59674485a6665c4ce5db55b061f1f33e4354d28d09f9a1b8de50709f6a96c66256fb95936ce5ed85e6d59048a97454f228a6673f6456279461c6dd4099028954c1fc221f1eecc1418ef0993371db3ed71dafb0c38fa6ee403bd545a820f382b11432492c66e629a51e65bb962ab85c70ec4a06db2a8d0dcf4e08ecb00d149470ca0ea1ae69f6e3f088e87ed81d8b9ff4a8ee8de5e44fcd43d4217e4908873ecd389ccbb8d6711a68cd35a436acf0dcbb93a634d13dd07ce5233dc0ee146fa3bf3a3ff7d58b5d3ef80fefd3d4f20b249dfa88c16d41d8821dc80750f288df65e503e947663400a07f4998e97b5202f5ae1b38bb15563091ebaab475abfcdb5b6600a27d7cb348e220a11a836646babedf2927e30fb2ed18365da1d23994b69d39e99040757dcd21396c773a70c6390b4f996d1f2943fc13463c908bb9cfd94bdb4c4b7194c21982cc07be648cd4c13598babc1f87f6a1743b4b113e115b7d6e294de18376daeb1f256e33d8cf399dd2bef2a5c72783ac3dcf099ffb8dd9d1f5b679c3a8b4c63e310f378e8034469793f296a7261af76c77f13f25cbeb49477f8bb26b6d819e9472db32acc0c9525dab54f68cb3f98491c96a6926ad56448234ca44f3bd26b3788a43d6da6c1aeba215d31bfd7e1bfbe634b1e1c5b7ed4abb817a1b1adc8beb0e84315c74d6182f15270537330c8f832372fb1251bfbed92178d22df731316dd3a0944dc4ee7327164c91cb420d1274af31836d4f58cc9813d9a1127ce06fe638ed2cd2e8e27ae08cd7a29c68d66fcf1ec487fcbb66c6e5d9ec3e8934be4f6a0cb4e6d976e227b1a4e9290aa1657d8f50774633962f96a19aee401bc16d9e1c548b221700dbe11ff8a3034ac0f9dad6adb4ec3c5cac7d25eed2f7462c786b15d9cef19fabe13c83016a04838289a8e434a5deb63469507d6341cada2586ef3a73e2071f9e3580c0615c3cf0d786914415db62b6bf1d09a9d2497eb66d24086a5a4111a57aec533ece62b73104a80c5cba978c0721640a0d9398f823256cc246058575496363c89c25e17624f909d26b859f0e57969d465c4cf78d63ef3affc9c991c1c4804a8d9ce023c4019f9b0147b99b3c0b739fa7ca17f49739bc4f0b08489cd39b7f04582d91bc0a38d2ccb8dc8dfe519175c8e0b9201db4f315af7c35edccedba6478ceedafe321a3278d361cad6396927cf1bcf3cdc5197d965a206c0432ad295f998a4758e057257910efd62dd18d22fce9e7eade00a7977fc7a94202f91eab619d279347db24b41499d7015635a204e8d810cd3854cad477efb786aa81520bd7c70d932392a663c3d27d7d0d12808e2343428182b179852cb9bea3aeca6b0f3821efcdfcae663d82d955fa678d99f1215993ec2b4d7f92582231a55c658ceb2e01d6bb63f9e123af36b16d50694b918c393d033df6528b8f3995764479a2a9257b2705bf661062bb05138e7b3f447efd633ed9342a9065137cbc71b75e830a6197d505b8ac914ccbac9801c751a1cdcd6299e12b0118c00bc624e8bb7ec9a3021c9997cdf6cd5a07f4f60a7ba12c095c69079aa394aead14068d2d202ecc1bb4f9b1ff99f141afab3e29eff5559f048ffe788dc9aa97caaa4652263c522bd1fe4fd130ef3a1fa27532da753900a8f48a0b9bb79abdb39afb43b49adefa1af685f1eedf5f9aaa907b624d363b99cdfb3cb550dd3ed9c0528a85afb0c72e88effc401566eb0e3c4ebd79a190db792dbf0a06e87ff94f78efb36ec3b1a85042f959c9c88586dfbc0c3e56e89dd5ffd8264e7d7f1147811c3bc881d7db90cd6dd3e86b319ea507184664df1d0b0fc1c822626dc31a296f1d4d1169969d4478e706556035de1791bd00f351f84938680913170d4205f13f254de685c50741296b85724c9e8bf930cddec2ba83c10984b6493fd72428493cf9280b4a0624242af7b30bb756ac8aee0833817e97bf1e3cad55dfd1bfb355c93d3a4280ffbc982dafd95da3dac147922bbd2eaf2a6531de0e064c8aba012c1c304af25cc25b56d4953d6ca74fe826379" - ] - ], - "public_share": "bc1165203c04299d6610caea2baf6bc6bbd2eaf2a6531de0e064c8aba012c1c30da9e4b41d10dd902d482a152ce385af04af25cc25b56d4953d6ca74fe826379", - "rand": "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f" - }, - { - "input_shares": [ - "3936ef72468a20848ea10552f7acbb4bc00477bce87b99b5e9fcf8a91e60195b08482153283c3a8ab4ccac3467243afb9d0be62817287a7e234de93541d95a210562502848a4d7afb69b825402b19b0cf1d5db7823cfa7c1fa4a0bf5e1ff606b75e0fd84dd5cc749cdd9fe6cc757a17764b5ad3e688c02c92cd5833f71de25f97eceb8087ac8b5d1dd149bd4c3fcae19d4d2d868cc0e94f2f5a994bc6c9a9bd971c6cd0c159e260343a5759cfcc742c12a1c6403ec64c6b8ed85d817829f893eda559cf5f7e0e1c73922f2481d07db4ec2de036b729bd60883e05c37251e16e1dfec5ec604a0c8c8b1be04a539b9936d426d68b8a1a23034d4a1d29b8f55bc291ec53a1dd0c612625c1458714d2b4b78422aaf9d690e566de78357620d8f6ad3cd02d874bc683418f92b88573eeb4f841119206c3d1e7a3c6a7bfd60370e29f64644052e4898066a1e5ed95a9c87a2b7202ea22e17ac8068e57d5e5af71a9923bdd73559aae107f2d99d1214da56a96ef1ee007881b30271bc60490a3f02b93c6ec7a98d4e695ec6b9b0abf6463cdc99629299a3d84412cf17a285241e04d1b99ac97a1f5c61631dcb679b295284860f0c8f8552d965eefb2a58df5e0508b89ac5f81606754d86322a4578c40cdb06c743d96d5b8e09313ccc8550832baa47bafc478e4aff9a8dd60fdb7d773fa0819bc60c1750192bea0a6077b42817c73024ec8757c5d8808ead159001a125bf1abe3c2a1a3b21022e8af74823587647a01495f30cc5566557c255db583b28fb480568c320feb0ecf2778da69b5632b0e2aca91b911de24abfe420a3c332d7fe1b1d8c3513551d11c3b5aaadb1bd0b16dc80d31dd19097a1c730b03999e05ae450b535a9e9f90bbac29e55eccfda14c38e35d93c7558d944169cd8281d9ced1773517f366556593c9309016197fd71694370c5187529c8eecfad9ca8ba4edc783e73cdf107269da7a039596220aa500d7969ee9f4f224d905202f2decfb4e4d245639f4caf3f7022bb0911504372dd5cd1f778d15fe50514a3d3add46c9e88b003e485fca5a18fe85cb958865a77a541fc19b03522f091e698fc09bda95404018a109b2e8fb4062bdd87c979b5c9f8fd7c6464d086193658a4ff337e107e16a61e6ecdb0aaa99bb94a83498a5a1cfba10adec3c91994150f460c5fa15e009b83f4589fe43e4ecd5d96c6424555090a26ae8c1a2295ffa59580a8641e73d92cd7cb548c5e252de0998d6345a7d382c2bd6f69fc4a7f54882a22e721d18b13cf176840dc28cb84729611e98dc24b82889a47b2857ba6f15ece17ce24af84c3e2c6e85c122b87403be066cf11941b8a66e12c7b2c077b592fe0a74cdff6689684be11ef089deee9aa2e4e1b1a0aad2a3d65784c4b5a1936410b811365b336af3168d157bf4e9d2e64fcf1eb0959a04717b40f31fa2eec988f8dc55d91dec498c34ee13fd3d9eb8ed9f1d14e0c108412c045e76d71605aa9217ad28f8299c1454dbba65b0e94a1dba3b447d472bd4ae30757653d87d1af5bbffbc7dc7623214e755bcc9d1ba110581b3025037df2b6b6caac3bedb15ad2d751c624c04618366c60f0c7f268868fc13338d1211ed8b800055ec676d128feeb5e3c1f222124e43e3c259b6010bdf264cbaa0f97287b1eb086442aced71132aa652e5300805efd3e60d4752129e36ab3b340f05a9d25bcf36681a3d3d93dfd88aef8d5228bf067fe6be9da0a7bef15c365317d23d8a00d717a1bb4ed89cd071bc37e833a6d7b8b0494db9e3fe51a06c0bd49f8edf227df8ddc1f7fa9b3d8a46311d204559d150b71535b5f89aecf5d88c31cf69d9364b567bc769b46738a085c49589d50865c34d325c365ed5c7e33c461e71d6e0c5abff0ece8ef156b5a42739a10a8ddd55e6d96fc716fcf3e4207a4262b9987fbb7d1e90b0297cc0e4ccb01e168dd30562338209f5e8d9011385ded69888b3ab9787dddd8d788003395643f6078d5d8e58fe9a8ca361be9a37e83bf46b2b13d587170021cbcc04a102c2caff969873a79eef2388cf9e0adc47cb5d76202c91c1ebb1d78d588dace12f15f91ee9fb7290a1f799053d4849f58297e11481517bab61e02ce84f8263732a9f826239842cb21a47470bdc34f231fa7b5af54e770ddfbbc48b08e3469817c18704291ce8d05179c5522e3f1add50e3bd7b98fa0e58c266a52475ccf53521ebbeb5e35ef7497962bf7b87ef7f5ea82002b6782bbb6b91dc52b016bff9d4c6fc253e808c600c7a754dafa64d8acb0c589283a55c14a198af49b54e0e08fc91c2657e4bf66915eaf47854b13cd989c61aea44f290b33d434a5c026f557c82aec9a4d874cb68e5a91d8d7effe67d6b16d223f738efa3263a116666b87cc12cd043a1f2da07a87c36790d2f9e30809b89ff2e07ae7ee2fe0716a0674f5b03ca1d558fd9e42e6522356646ebb7179a741f599e7f0a04eb26d82a3fa9d96a5ccb9aa01c780f8157c9f14f8c150d045d05f66fba3e1f99afa12c3d94bcb94016b8873fd5c0a04639027357bdf1e46af715a0873d2b70bfaa7fc9041bb41aacaeadae26c5e18eaf09a8522b3434ebe173f7273a10bee846e5b41a68621699bef2c6cfb14a41f41b8f6b278888a85d32aaa138ffd948e2b4eede89667139283c31c69172b240db9b0e8642302f596a1c482cda2bb6706a9f18cac4fe6e192297053360e10d4eda6ac6fdf5c4cef6d73bc3a3b3742c7fbbab8d8bcc9d50636563ac67339a1a562786833a7b4b9e6a97ddd308e585f04d5cb4f954399e993af2c26c0934c236d6670e6570c8c2802c493ddb95e92d747f84021ecff6e64891a3e7d71ff0fd47ab797ee2b2af5f83bac09b474cfbcc550a898f15dd3256506ce1de3d46382a35b51323906fb3f186e64698880322311a50063094f0231bc3391567e2decb610d556071351d2f80891b2f2482cbbb2374a71a870664640e1cfbca3fa87d981f7a33697921271cfb62890b2ddda06a5deade8ffc4d6f287d916190d56a150cc46240f81fd717506e0933a13fa367f0d80eea00863a62fd57de4fcb5f2dd1a8d99f72457997f6b2973dea688f736aaf26c09276a71275caed097f791fa8808030ab98f03a921e3b000f20c7aa9596fb1c64a85f8452ceb533404ce483a8c49c7677f3ae23a0d03fe1a4e980189d2f537c2dff5377948762f16240a30deb446b9a32d82f7200f1b89e7719d5b840f8c68a240c0c0b0937837ff806ab4b89fb27d2516446829f4de9b034e441a6a2f2fef28d1340f244d833fc54962453c8679016691f0bd93af33df66dac6fe99cfbe7eafeae71314d10535e1b0fc1a18059b22f540a8397575c3bb1c5ecdc59b5ad73bd1a8ac126dcc48f8f3e58cfc3863f10421500fbdb79739db1795cf4764ff6c5c7c05b5246858e769416b8adef14a878ac76e2c103f2909a61dbebf1623d6e66e688a199f4e82feab0f21a6c9e3fcc029ef385a372b5366f04edddfddf0593b42a1f50f2ab9356f954f6b382a2511fe10c60b0872d3dccc952d2a324a12ca4ba2774e25a16b317f9e254690441ed9857563176e5cdd62857447ce5c00bbdb54845799245ba6b19f4a8b1573b0fa3eb41fcf1d4d5636a73d2da585cc2024c0b1952d1837903364bf936638509badd433129bc80dc83a1f30239d22acef66c1248babc3f2e35e94d2518226c9ae79b5f66259e9f15c91be00eb9b8aa3b54a443b6f6a4a5648838a1c20535aa5b7aeee7f772c4bac5b7c134001b6e156a566f983dddc5cb4a8568661c01c20f7ef4f105d5577c379b32a051b9fa97c8d1722eb4af5d4e550b56214786b205cb65def40127daddd9b0434e61552e52856f8c27f9a8dc0eb584fbfdd461cd14febafc2c6c3163ffe2aa1d4348374af665efa71ed192ed35ad0c468354b3179749cfcda99e5fc300d164c69494a4ad75530d7fbde4c19cdcd66adc07eedd3082b8878aa188346a5075f7d731c34bc3341847e321d6f5197e2a42397dd5ab9f97c1787fcf501c3c400f5e6c8c4d06310270ca6655641953766242b36aacaccc9037118afc736323273890591674804c433d81fb925d95cbb4f109fef60c497c6c9df07e2429232b7b5c9b85ceddbfa6349009582fc1502fa6f6c3ba1919acbf100b1b3ccf58944b4bd8d54b67db7fc4696eff395a6f4ff8009c1d95b1db74cd9112c1b2e339fe2e4b957b419d06257ae23c4f3c6ba3d2a055aca3c8eef965c526ef715434bb3056245c7e1337adea5633a7f0ed7944086f5a00d0f6422994a646f261ce602d5879cfefd9279ac515fb09989952dab4cb8b61b97f8d222cfed532aac9fe270b38b2d80501801cb0f4b2e068cb046f775e8d4d918694b8aaaa72aa83b2d63ae20c746e728c0f80871e165ed152981453a189536685061f0235880e5aee76c3d1fb527bbccd343a0e20c5fe72e0e2824f22f6d9b14e26191d1c9a2103e5186800222c17757707370924a9f89b553786cd92d84b50d8e614c4a89266219969ed73c8a0f118375a9ef3dcc28e858eacfc0dde43c606ad21c357da0477206ddf935310ac1f75b411997c4c45680b8a8ec76cab08600a65c1c67f349a470684d3684f703d2f7088ab67f6720c048f5816a7814acd41c02399f55e9df1529cd89746a435453f69c539373c442213247b34ae0ac9aafe09323af2114af66bfb7ee8c280d9482090276534586f9989fd7233d765b271365922748515a0701f197e7e4a68f4456b1bb298b02e4aed0d0a87d83c3bc031b4f5e82039c86bdd212c68bc33b994d0dbf346a5e4bb9cb7dbbe2c17aa5b97d48ec48963a9e0b14a171aaf4a02609c146aac82fedb3eea67e4a3bf40c29313cdeaed96cd898a913d301a60531e2dbdfba087941b818ad69bddef5e8054f10cbba0ac70ba356124d2cb5f826a46d8c587dbad1162e227cb9a8236fb3f7797a346483f290ce31e7502803c88d827992ad8701abbe256119539ede4b858b4312d67d3d70988a53f94b61cd7c4d0777a8735b2ccc0181a09aeec2d9e645116d5d1e02499338268cd9cd59fb0f9677d6eb8784d9282e00ac2c1b35927960cbdb8187a98d83cfaccb9878f35060c1bce83301fbea83ac17831afae113e7ee6a86a957149bb73c2af02740cd3107ef81ca03070f719f8cd7dd768faff412c656e86b85005808327e6f297c268589a2e4944f5b5088771814852f9f5bb0190cb3b40d05d84f44ed7abdb4823f3dbc248095ac10ccd9f04fb7869841eb3b92efa73041eb577a97b98e1a9de3a92862d3f599467f8f95ce3234f12eb1ab7cdef0402abb589dbe8299db143fcb5800fadb7f7dcc8d23c02c2549b7e773a9448a1a6f72d2ce526394453adf30efdd4c563fe24b21bb52e97253e96d285d5ee44e85fd520f2d78c4b85c50be889aa27b30d9683769c45dd743ce37faf503cc02329c7c105d6673eb11e376032d8aa9df0cb0b1ad2a8d75befce93cd16fc40887c31d19007e7fb330af79c42039cf94c7cc0102b332338c14bccc1d7aaa2a0c0aa92d82d4387a3d7a0a364bb3f39a1448d4e14234f3bed1bfc9d635a8484b60e3442544df843084403ba9a3c96d2f57dc7a65cfaf56d93780a3b3d47b1677f482557df0deb0bb2022234129ffb5d49d16a44da8f7ed20a7f170e0523f695bc32189e97e7373921778b132ab3630d2157e63419cc1718892fe7c47aac6a615f64f2a8fe8939f027594d4e863105427825e726a1cdff77e3e2643613b14c4662b78b89c6b49a99cfaa3aca3b58a01f87617f2d180a81ade2b538f3858f19a61b1a62f7040b585a75f2ca45c2b0bc62358dc54e7a7563115ace8969c24dce20c3d31f3d33d03e63d0d2e7e60e7c6df0265fed31dd1fc17887588bd734d38e0dc9d367f708dadbbd5f4e4d3a19cba003b7edaba0ea799dc2b861a96a9580e70768217667a88353bb5c00f25fdf58fc294ba307670e0afa1730e1d8642175ff42e6f3a85a254260857b87ad6270084d2585fc59066cbedf890f1dbdfb248e9c030a3718385bc3a9fb9d515dc9c9cba763103da316196bb42bcbb7c35c39f5683542681de9b97c7ad8b375bfde1bceb38dca15ba4dd0909ba0c48271d8c6851b503cac3d4bafd9ca71bd49e5001c67d76e42560ca21230c9a2aec73775df27a1887867ce6b46939d4a2697fbd3a8980395983510b57449e3c6acf27d039847fa82a1fa10f5c9464b6f2e79c364ae84b4d59657e4e86a5bb027520b621bc11001f26a520089c836226de5e8f00e9bdaa98f2a20028d0e1b1f09e9662cd94856f0d4683d0821e2fceb6988f81a9d3398fbfb04ad3384f5f3702fa3f29cfcc352657d896a463909887672f826fa198e33cc6be30d83911a585567dcd27255af82a51ffa83c0fb007c8258d1479d9eba1e87d8c6d3ec18b6bf29efa71778210406bb76cc4a1845ad637b08034818d0ef7277d2b977558ad43ff38f27b2ca30d9c1faeccd38b332c6b08e28fec4e10413d1636ea4caacf47896addc7beb06058f84664abe0dbfbd062228a9b374e9769f516986c9bdbabc3ae10399245704eccfb25f4713cf25a439029c08fe4b6b9cf22d60e8c5376a50c1a7fdd0f1fdbc9dfa047ba13264d48a9a167f17862f1506b334b19f9bd02c58e89af5e6e8e27c545a2cad625d25920b6f59ff83e5c2f6320aeb3ddd6c56c281a4088d15c4dbe59ade2a05b9d6347b667d15ab66d4eee0498eb7fbd145b4e2aabd9c05b48c350b35c08fbaaf33d5d2a03b8d8fe7211f04a0c5dc23c22a189ea936ce0c886dce4c5d718e7c42f71e006eef220508eb6d736d28f8615f949a8e75d2a4ace27ffc6785af8b453c7d5ed89d1c286fb72505754c0c57e2470d678d131ba1e1908ef9ae17ad2441fa7739643ec80b296bc6a62bea4b59a0fe59bfa8e022d08e1c3be9e65559dc3b38d9b9a10009d14d41010ce38c0d2c25e51f7b9eac2f60ddb60691260ae6ae2a6ab636e08443ac7f83057f21a7c18c95dcd6266e6964ec876fa9d5df612bf2ad10eae4d993ec1537b1ef387ebbfca52ed8ffed06573a4f45f5b4cc290a01c7662f67e8dc16f02d4d6df6bd28f618464d804afd302d2747192dec4e4f2e1143522441e7d29169e05adb9c24c9b11b994ebc916e8155c45ebe763a43159b62ea3d37f6fb338c48f5b1b7cc6450125288661af2f498dda8e7d8dffd4ca64614d8a3f14fe8d2671528d38ae0d17cb550f5c766059f2f9a3f3cdece4ce8a78d41c5aff106c0ddb42e7f28058bf10b40f6534e63b53e5435471727657e03294e67e88718cfbb91c8b16d90a1e4df221073b871b6634c03d092d15402a3b6facb547175989fcbd469db5eaf19e3b46e3204f5cf459d5172c32ded7a949676ce85bb5668431eb8367f92a04634fe40a061d80b08fba810e30d6a9aff865f2e42565b6c0442d8665f3427a6fa90856da6fc3cf090f452f2d7662f91dc3a8aa520358b747361d246ceeaf46629cab06b8545aee12ef8a3f8547e192d78f7a9c186d7ae0ae7789319ac3e9ad8064c2f5e5ca1c2de50805f1becb895b968e09b3acd8877ca860403090837d8b75b3d866a71af47f28bb7d9144e23b868c039d9f2bc030976ce79c5f778f900e93ceec7f44fe118afb5c56fa6bcf0314eb6d803572269daa4b8a95a3178c38fe3d06015ca2d91c4e8a60ef2401ad82626baccdd2f04fdffe031d8562751a30d41169a2ce7f0924ad400c8fa6d515ccc6e1873d01e507ddd180afb111071ba63398da8798840a87d8efbaa3e0e81b31f8d69dac4a560e11ec82c4a188111e0e5870cd20fe65a1a93afa614f12e09a0d65a457ee0c0d90698f9ad4dc499cf8c8072fc59b8b159c3f03717fbb89b8aa7cf10854f2fce1654f8a79771dc42a13c6193c7e7dfcf9aad366415522f7f240b5fdb7ebf6de037c492173b5eee31904fb2971b6e2d67f16c614ab208a50b975580bd1076a8f45c29dc1d4642511e5d40f099bb0898a0db9eae2ccdd55642e6067bb71e9eae397689e911540586ba4d3711ecd08cb0ea8b21a898870a18a4682f2b6d0d6216c1afee8ff6d962a6ca0a41986ab7dea5efb86bc5bf3fab6b5a5818eeab0b13dec5ca964836d1dcb0e315d95b133708e79cd3f56e85187e047399da41ba812a5f08388bbc4436fb1b5c4a5b8d7eb240280d4731ff8c57baff7aa9c7a6ec88c3985f2a27a365afaeb1de6394e7c82339a29f2d64d866811a1fc23807ea8341dc44694b739fe7244487f0bb1c482775ccaa11e555dae48357ec490e2f713cf15006aea4ae57af14a6536888a7e8be0ad4127ef9b2483b238ee5f5eca498776adfc8b426d4e26e8edc522c494128b881ac6dfdb32866bf8d6584e89ab7e61d917c7cdc381dd501bf277ba1cd676bc79e0bc8c76b1fdcc918f85ff3de338fb6c650ef8294ce843077ea60fc151280de1b31969d93389a1f72ef12493bc0e229e051b4c5918d2617998e5255565841bde5bbbc3020fea751361f892aace7d2acc7425f61a778222dce27e5c9a047e5e911f2b197d9112f76b8afd28b9dca4958568b58dc36b94b51af41b1dd042be3ff68ef46862bd8d500307ac51bb25a0379b32ae863dfa5c91bd0583f132d72e5cd9a13d3403bdab55ee41c064ea16d4d1f2f502723a367e9e15326d225195e5df700b6d93ebc81f10a32a943edefc2cbf904d99f638addaeb84a2e709f190fe3ceea0733bfe3cbb582657f2233dda2c544c3eb997c79bdc7c5200a90e51fb3242579e7974cb0d87f318ec2734b97b4087fffb7b1574e0a19fcef3b2c1b61e65dbe9f72ebfcf3bcfd98b0d4e3f580c271c1a30218261a084b2c0ce233870604dce6d06704d2c7ac589e6960548058c291ebeebbae50db10db816f18d625ec69cae3cec371f42e0dc73043ac75a2f682f4ee6237e468b6570dbc9bc3047e675f83aa4f63e945506f36d579b0e202bbb9e6f25291c4d77c91758767ad4bca4ef2acb63d96e7e83c4dff94c12a5f972041c05205e17294e7d6ffea786ba9b06cee644d650cf9c35679aaa50d323408a8db43671c1d12b10743ac66d56e5629f44e29e41dc6b4e271f193d4c27cf0c617b7ff18579f70f0691253fd6b8ea7560af18b6432cf5f784dccbfb4f28c3f4b9bfceb2f1f9775dca0dc7067c5c05fbf148a2d468aef4e961779cd65e54224d118282453825ae744b5b6f04f431484657cb2f6c43c6377f858b597693eef4b138f8966936bab73863a90a0270c63493e09afe7015cc371d5f70f3ce792a26cea63696651fa39ea7d7de701027676b6e652513fdae88b2ba306a5c81052334bac587bb80ae093ec0160009c57df67be686d8d1295a3812b0f3e30dcc4b6eb9c2444bb914ec91e85a4a851699dd3e8c29c16ad0ee2bf11bb22cc47c49f0b08585beb8ac6ec368ea354c516939f7cca094d522b29d233b65996bf421d848ae23daa16835a52df8ad5161ac989a149b25b3f9b1b17be77b2913762ce7b0501bd788ca82289c1d8d448d9acf654e70699fac1a214b369d12371ed53529f5127527d75f29c7f138ffcc75f4140d1382d7f03a8dcda447dfdf314dc66d5f898571d2fffe5b5bb55289ac68f355c90bf85c776262a94f39af939ea9438906e02fa9a5084da43e4bdcb90f5f1674e6656c5a9d025b0b68123e706f53e7c540dadbe6e9a7a9198ae64ac4b8cd96140eacd8f8f3bbddd5e07520bee3dc324887a78457a439a89127f3af546ed034be628b33b38ad199a7ada205c62079e6cf514be216f07dfd8b65b4b36de4fa06af1f58bb1b606d7ce13e92fa3663957242763b37678fc093ffc8eace506e3adb6d2dd1bb7e168308773d11ffd0d14a3ffcb7f0cdaad38f59b969b30084cdf21a2206c93aeca8789dd0f65e90bf0a2e9ac2cecac8e51d19b2100cc119e53d34fd8bb3e184b86ee5cc56b645d0e7dc6480f2d8793e86c48c91a772160863b136e89c21c009e5f51ed0b08e4e568546dd083d304da7dd7ce35286d95838bcb2c49457cb962efd3141f5d5771f451c9c1512da4aa638ab16fa067246f4773f465548d4005ec3ff91f467de7a1ddad2ac74b78d55bfce5e2b550a54e0357bcf43c2cd7d1de701a22484d29c6399fae965310ea3c9ee1a31ca9fb4dcf3496e99e638c2609a9ca72623765d9ce89ef38282dcaa78dac362aef227aa6045731e76c7997e675677a5f64100c6e9ee17b9817867025d07bec2d234c70933ef7e8cc476410c204102141c9f1e6d083de573d61aabecd5aba9a38e7fd4d8760843aabefa8d63bd1c35402ea0f0d260f7ed9f8a78289b51190092d69f05ecfd86ee7155604a2dcf259a45e965ec37952b14cdebe3f71c29b6e3275db507151f3df14ec9c13f13d8f8b870c711686ce7d36a60d66b2fc3caf6cbf1564a9ec78670d5fa0a929a6c6b8d316d899c9e15440f27bda7f17b92fbec06176dc22c75541c366a497c4d83879554c5185f8bf4cdedee03d0fb7232a98210a7538eda9056c12c5b98de826c9b244afc30747aaac73c243241040ec0f3f787ca78d1469a4f6eb5ac7d9d0b588a87a5699c8dcd66b71b42212ab15e0e1cfcfbf99b6d624da36fec294a557ae58fe3fb9f5f20036a232b3e050594ad5e2624e0c1bcf322b32b5d4036eb942659bc5ddc2a9922f17be55257066b76742b359b2e79c32d1e073f66b1b052d005c0ad71f853bec341228999e9dc80d449e38bfb1f78be27ed717576a749eea91f14f1065d4d793e3783bcb74fc5cb15ef1b5fff4079649963346b2bd66b8ea366f682d087dff16aa4731749f7b7ea1b011f03232f304fc9b6f770a362f34ac6df3f77443fa692060373d3864e0694ac73b0cc02c938a10491fddf09b07bf76b651ee5b63abd751c1c1fd42e3f30fde7ec6fb3ea295f6b3434f183fa0a6ddc6ba39c5637c73d808bf15bda33b560295a797ccebaecbf67dcc2a7eccbe5fec9aa624f765e2d4a938b627bfcc7f6f538947b6b0e6e32247587a945a3be4b82e6983200ba990aeef4dc1d47f7e46540b1f92a929d91a727d51d806c39a5b5d1a77e97f612e4cffc280d66182ab1df4119e9527bf3c927719f59a0505c2f88e4e671e50c26b9cc97ef449cd43e39c44599eb894cda9c388f5d17be81b44b39ccd4759ade6b2b311d82e4564bf848a1f4e70bc2f0f21878fb4faca97143c1a500b2c49739f29ba979b905a1fa6b534fe768d1b0b9b79e9c4aacc82ac19d06ef79b73a8b7a26819b7495e9ad7f5c4d92f12176c3e6fa29cde0bdd5d08a8b7258cd5dc1f77a6d48cc0955fe022254a7d3c4ef01c39bf7b573f07b85ebdc61ff7fc1d2f7e275365e9e3ff3d858f05aeac79feba98ebfff66b15fa9a7927fb08a2d5321daaae7a3dc71ad985a135d71f947e833ab13da6cbd45177111b0e5ff42e014aed9e0f529fe6fb253c93e9f04e84b02c1cf8ea5bfb4b2a84b24dabc7a91cf80a96b2e0f457175419d1f7756e2506eb360a788c35e4b0b6e859793ad5af680c749773f36a8ec46cc1fd60de127cf52567b77472f17be5ddbd5821facdbf2e56a7254f47b703310b49eefa2cc7a343c6e7d5173da79fa5443c9d9203621d82b588993fd2aae15f3e8b356e47da4d0d61ecfbbebfec4951d750f7db3d5aeef3b10b7e149b53800fb6fe89d4246635fde2c3a19a4b6e32ec2e7efb0740361e5f3aeddddb0daff1657d683ed65a9774fc8a4b619025e546c5511b09805dfd9907f6522721df43887ee04d62a7bd7363dc4a160cd88b0695b3b414231b2abf39553d0d4bc3a29bdcb3d73d0ab1666a41618d1f1636633ad4d6ca7714140a00a5ab44a26ecfb6f894a20d2ef9e469f22b161b25433958d6267ce66abade28c548d6072cccafdaa7f71d6b98ed0aef73d6f84e0f0e1c3325d4ddcb3f49a719a75329d7d8048a1fc4c7ae21aec190e4ad8c36aec6bc2309fbdf755873a6fa37c1c5cb6449f325f6b11d0211475656ab9946959e3f22a4cad9caed21af7a6d2fe1892e7def5f53a8a21df0ef3d5f09007b60b446d893d45c4107ca9c1b17bf2467e9ffb50a6e6b3e5fd50faf4800aa25f006f54c83a8c764e8d8955ed7f54e4b1986a4106055467de3fe09f4dce194c22a1733606f1a6048556acf509ce2a359e5f0eab837de7d548051bc72b733f52689ea45fec0ca2f08de7c9805863feb1dd0f3b55338dd0c5338153d66436cf711ef03fb052fdf94958adb462f7a5145230c05fa68578b38eea8dcf0c90fc9573ca79cb43ce1ae42eeaf6fdf27df3d0e94fb0aa7a278fbde2dcb61c588665990262b32e1a266a53c5c928cf6becd8b90c47b8478f78874259dc2056657ee2d4d7198a166d8d657a5e04237d5c0313558edf9b3dd07683bbd610a5a80596bfd3506df6101bfdc84b589decfefd7e0a045341a0bb4abf4e7e26b60fcb830e149b409b33534ec57e793c66c5362c97da024e00cd154c3c56538535ced74795f381e6b420626fd16617c4996ae28c313f72dad37beef490297a7d9faf2de5bcee77d4c236a433d84cdabcf35120ee45ea425f0a9f4ce12d41e430193d0a15b7277227cc69379abb5fc9f7bd412783f103bdf5aa3d475dfc7e9fc5613c69ce68ce392c223a83a44615ae296dfcdf3521bba2e9a03f3a117933d9078e32ceb4c832a2365473915fa691fa4411b47b10d3bf95e55a26f3038f7185e726741a593d86a0c48cb481f29a6a121e76cca4c26b6b7c83305f41141415564ec2b5f4181618c393e82bdc223ac8b13bebc283c9f6f2cccb2dc4eccb74d019dc9a139df227d7c30369b2021a27fbeed928c3e267d2a3eb958455910d261131931dafca4ff37615a005b40ba991719d12619545415651ed869bd6a483f2b0322b128c42bb0fc42db5e4816f534606b8d00328403983dd2be03a5000711b503f3413ba3a65b00970aa6f15d4da78cbc6138a330308c4d39bf795d02eed858c00ffa04f36000bfc37164fa01189b6f594bcb3782a09c83683b84931e3627e69ad171a9aca4fb15d5fb90280d9f576e9f7a7b8c10bc46a38f24f3fb9ee6682db69bd193dc3ec416d28e0a25c61583742b7bd985426068824b9e251c4a2d8ea6505be9e82bedf3b2ec9350bb3676f419e65cb1600c64cd872ce987d63e5cea4851e1194ad376a5e268d3ad01249b23614f92c9d052ac06a8839e1c4c9c17fa4294d8923c4b3d0e37a7e27c5f6eec246fc4b9944488d23398c4ab5fd4c2f391faeb0ce944b987f934fdba51b465250f872b7a3ed60ce13e7375c3aaa4b4c9dff1c5591ddca91f8883b746f087ca57e39d723fbb125d35338cd2a5ace877b866827d0097bd18c7f470b96548c984536443361dc8a78bdd41f3e60a602388df5eaa8397774e51898e3c292c9177426b061e74a2347b2a14c28d43a4c11b52b68ded95d1526a4bf8b4627faeb475dba1e90769584cdf2d715fd5e5851ee5b9f98c0345a572ce82baa464d7c1b616a7d8e7da44a9ea02972773aaa99bbe3cc5a2937b9d3638004fada2b2fc4911ca96e71bf4484fcccb7578ab6cc5a3846c5f535738e51a377edaa43474135b47354149c091e9ef87cd8ced7fc49d48014bbb9c931c4629fc8963ab1acab2d87b96dfe66b6db5e90e9d52f77940ba9c05c2fd23bb459762abd49bdd5a2e2a9a5ccdba4bcc7e5d01e5119a15e1dbe7ac361ce0eaf69db14ea8b35072ee1a49c7c44457b11cb0cc6699be7dde12866df854399eab7d702c071e041765b1f65aad1e32b885369963b453ab09363aa18eb73aa9d795d247de42b7e2dbb382e3f1d26bb7eb9166aef5ba61a776939e2e9d62e06dd5f8da5f3a1933d0442b986ad0379842d911f0d49e5e40da871409d546a5ccb37f2f96409c689d99d9d5727b1f151ddf541c9ac9d0a05d4ae8a2569afd50e9b45c0a1b507e024bd13748f428a1a656370c349cad3a4cc820f8150eadbcc786ca1981692fd43c583beb0c0f8b6f1f27f77e1035a43053ec7765d9ab7fbb8f4759463479db2b8d8d3cfae7695ed317411ac5ec1b29aeb99a74517fca3cd4c05575efe40365c61b26d353d1fc6d5fba77e49cba7d5e9816ed249cd9854463bd6d898952a4e2a08bec8ea594d7c59672f574d1aec52d9aecf5d5754bf857dbc2f8a762ba1668c890f7904e1713d665047c52cb6fca0ad771533009616cf119e5c339fb78863bb5acf82642c2bff85a8d7a743eebb73bd48a00c7f28660b3d4b7e607e27565b6360c24d9591e6a97c2f4f058b5a9df7ecf221a478b7305dad21aad204dbef75a872c9e67f8b466db6a5ac596fa78efd48e60a4a69abcd086b2e6bb877088de390e4b3ec92455f5a7a6ef7a1fe36e776f5c20bb3bffb22d3ea12c8658051cf4d0307e0a68d8deaee37055be9ff5cea898a9348d51c83953790f13c9bb0b7a186b604984ad04176c69c3409804584f28c442bca832016a62bcb0f598a6ab4648c0b62b338b23b01ad0509950c10f35fd0d065c8bc8496fba0bc3e7061fd7fc8108caf9e542028e357642208fcacfe0221b1d92e001f1381f1969bb3bbb6fb41b12b33b47dc77402c68959c7ea96193bf751c187e975a92220e884a7ce7a4f2c72725b4e0566400b16f33d11e0d8c979ba4b70a080c35db3c1f0995ab5522a76a85d25f1febe83e68f1457d128729559d99ed01a50dfc66eaff12f6897ea34001efb26643ab6e328cdf0b08bbd97bb6b29fad070ee841674e1c730800455a11faa18e972b1569c4005204403c80127e2c0c070adff40e85a2dc261b13cc6d5d4959da902fffe4091f39ae9737f7004c174a18382f9ffc0fbb0e7b1d6086a49240582682392927f25bec8ea59b586f5ec5bc6cc90915078337e8f20a2bf74795c074a8021029a6dfac40a677dd7dfcc5146ee647a1dc4bb334d0ee5247d6e3bd876ab0c229e8aa99c260f25d182fbccd2ffbcb3416065ce15d440937487f156caaa9f6347fd951353213cc25f6c86f9d7439d4a091196d1177fa9c721e049171ab7f4dbea2867d68630deb3d32308059cc62fc7f7dbf27018cd861ba3471afb41e70eea57e805a30e10bbb54873d7e89de555cac07ee4e44a6f01aae100da566ed8e4997360045e39a312cce8b1ffbadecd05628bfb4037475407b736790e35a6793d50de31594c095f28ac5b59662c3393b1a488f3f38339b6806bbd584264a7806adb0c3a5c990f35f7192cc4c46a4e4d4e78fa76aa406b926d07d68d2ee61aba32df3ac558460076877529cb0aa2b36539083d44818252fbdaf5c66624cfa568dc88525e92bb5a55b7c5d3250227f92b684aa4f3c365c82d3bbcd9641207285d3b7f8fd73224a30637bc7976dce874488c254fc14e59244396fac5d45f526bee47ee2aae0f19098bf0162e4f8911d86ae325398774d13ca5e34e3b8081aab6a608990febe540d4316c89311faef9f7a92fe5a03906a229f2a667265fbf6e52b430d348c7ea59f83bf72c8da58e3c2e0ea6111fc6ba3409de2d0cd7fbf2cc944e3ceb85f01edbee77f4484f096da5457ed744dbaf321ff6f36d438a2ba6146b4fb03e482596691aa54709b47312e53fda06b46bd68df04e694eccebf93c0027b4eceda331beecfd89ffb1dd6033ded7de8c9d3a444a0f13248988ef0912e042287284b893b4d2900d1ad879a55e50f96e53f182cd66c7a3166ae456fa9c1b13e06fec84b2aa60fa5bdfb5e4683280574250b8c3e9ac567f4733482a5381f16c7d7d3ac92ca46b0551252d09797df136a74b5806122bb9e0aff2fa8d08333dfce22257fabeff0e46f5371db9a79b45cbfeeff128fe014f7febe1067d1a36153f14d79775cf1234be261488237a1f3469891b40be874fd051a37f5b6f416e4b9707bb5a09a0b59ddc384330903c54d2a9393a187453b3bc2a117c8d439db3801819a5315a5c74174cb90cd267714ff47fa36c8470404d7096a287ed4e00f967da7d63df4ea05bfe5da8eb732bccf81fe5e675e3edc3d3859c7117d1f46c273f4f19f6a6c789526c018e3a20e3ab60a82cf945f4f9b0f638019040943a18bf785ff4a2f23c796edeb531f4b7979f94ddffb29417bc2086e166c1d12646b64435fd5f693f3987a7ca7061600eacc07a27f2b6777659fe2b36f1e9746d68c2d801b42c9811b725c4e58400a156c70647ec53546362ae89526aeca9e849cbca85c054ed7caf626d5f3f6143ede96f9d8c7f9cd4a88297fdbee5d92f7c9fb02d3244d1626a00ae1d3e8601e521405b95764eef11360f2167b6d40aa0c2ae595512f946693617e16a801f97092c41c46c698a13622b0a9e1f04f24468709d2c49065c5cff1de113dc304f956d33f00d4bd5a3bfea22b83c295645f0acb5d918540f040b98044686699e5be08b5630a1f48a17054b7eb73dc4b877e05fbe952c6e416b011c2b3cfc789f4e23ba84bb6b5ed8962f0046223d64798082895352d8b35e324d87b8b3518e4f4475a864a60f2e78ea40ed4f8efa94e5a53d67dfedafb43ffb4ccf34ec819b8506adb11a49b871570f1386b731d0a1ff689156fe890aafd3bd8768ca573aa001a9930b09624759b55a6a0f3aa57a2f58a0604e71907aef96e0f0ada05aa6d7dc7711807982de5b13fa8d91efb77b5fb79783083b9b3712dbb4a4c3a0e58668fd8f63699ae9018cb3725742a896f028a4494e4d105a34a6177b122652f626faeb036dfde5d7b197afe4cc9a4c991c20625ebc6422f0bbadf6212e300b774a7df34335f4318a7e2642b0ce2617cc4e4671c616122ae2e4bd0075439c156f72378b127ac3bba1a0bfe52f5972d4f03bec8da9f0e752a7e0138b39c516067162959b524c44d232dbf549704f8ab5149cc24471728dccee790f7a8d175295a4485047699ba42e62bd629ac4ac462f1e3818cdc861e8576ef015a66d4dde83b2530ed58f1e4f6c91060e6ec62c3af5cb19aae57e7e972c594d5bcc18ef945381bcf8a0401cd1be2e455fdfd4fa6cd43b7dfaaf4b5e0e3271e5664ff6aa6106b371ebb35083d4974f8e3dd0c1a59035af07e133607d479b9f6e7ff8130d8280f0254e8c734d86ad771e2c0860b9a57a9528e69b310adce4198c06537d486a7dab7bf476524502f62fa102ab3f0aed6bf2e09b2a03a4c63f6d5990cd7a27db36ce77abf2e6866b818a4f836b33c4944510f7105da91d91b31f37f69cdcbbdfec3da18eeb4f501b367ae074e4cc9137f31c93f0c894ec3f4052c8df22f840819259eeb73a3b3b9fd0e8cba5b24d7eb81a161393cc87a1a3a730d7bbe328997d0036090af1595e7b0ad8e49bbeb1ca370bdb5a95154f1567f62ca2868a9e9486d093e897544bef2f490ec19b06ee5b1f761c6a64310c9c621c46f1d4c66c0597dab1af7b75975c515b7a54a209120c96042dd1a19bdbf212f5e9a3c7c1467f8ca82f88a0f7452b927717808ae3adcb4b6201b968612800ec21c8c45ada8c00782ebffe5c089371230098df5b0c2470429b6882dc0ca159fbad260fbf44a86a154a21d0450d404551efb509b9e9a814af926a2bc0cd2b078e63d0b23427a3ada6d0f902cc272514d26ca0b4a5d9f79902be25ef9055c8d87e27fba9f3ea63462214a596e0c0786c8304bde9f97009e6f7f3a20a150de4f262ca141e71fcf5e7df3c4a07ad33288c94c9cbc430df544883618407a4e37b8db752124d94411d0e3f9b092b8a1dcc22e4992249658430e4c3a1c0a26158a98cd8fa59af9931e828b32238699fe2a72e10b98bff2da1ad8f22b60aeed2aafe445a83701e15f8c3998e86907ad065a045dc141f391145722154ff5b93975d6b8f344870ba447fda9f45b33def413c26d52365f48919d973df5889b877540e7ce60980e899ea89bcf57924ca38aa783ed381284a445f028e41a9df934000242f708671442a4ea17f679b74c660ba244335aeb96bfef4f02a3236eabd5163bd2972cb2b40adf466c68e33ec71c02f62b1c922e0ce9bebedddb4c802db18d2762ff7cb63199445e7a6020a1066ccd6af6531abc569a5e58c7d8c5f35995f1a65f0493abcbca70ddb25965694619a6d3952f079d6707d28a855a8756364f569b7c36cf72c5a5aa831d0c869e44d907a2b6697414fb8aefd32e1e859216408685350fe4f9d22b4e933c44f6a39155e843c103900c7a30bf45ea21972f3030b49c97ef74ff631e6f7e478e36599fcace93afbb86c41c241b143523f75824dd98ae339c4db1f1562de7c778d6c0edfb70354051eef8e35ef003489add751f450b0aca539a8fa974f30711bf2fcfee58f78f1992d665c920929254ed01cac83bf5c409c25595626f92e5f175a715a7783991c638bee597348656c81c4712b0c07ec55b89fb52716a3820bf5d3b4c7189d222d43ead686c3646feabdde098d442e856c5fc1aa26e7e914a2072c5ef1d9236cb2a6896dfdaf02570386f912cebd66e15bc544115783e15d007b0977ebbf4d447e09ccad275c6657c45356e83c05566f996d50cbc425ed257acf13d2ed93767df18345ef8245ec0189cf7975a9dffc2d48d0cb9357418749b394475d391b5d2d986fa964771419bec086aa24a5d8b5ec676192db0d31c3dadabafb6987add464e2e353ecc197a0cd8b26efcf0e6592045e2253c0a70651d0cec3a2eda44b54cd04efd60566343bead1035deda8b2bf9717a0ec29a654e864432082cd585b1d7373396ed2e41e44b16dba391bd337f81fa58f63cec8572a0aa65ec770ed338fd7d827ee11147e23ddc8eb97fe9cc54c296d2f5f79c5f2c75db6c5212baaab784e2eab56654b1e0c26ae1070529470216d4d3ac5e4dc770a77e903ed520b0b344a19e076a7c19aa3eb8758e6fa7e53e6b99e576b389a2fb48046b117770711053dbecd38570856f9afa7aff121f286609389861add45e0e5e57c367c6f05c0e76795b2c6c2b5717e948bcf9f46788111a927584c67cbd057bb6a3bbef1678e85478e0fd42ea7f7e75004f5dcbc9e7ed0ecd6f7a470daef7f1321af4f66ea7f1e13cf7ebe6b701d8a255ec95579cf8614ba8f9da703aa332846f0e18655f7966db7e02f41eeb0def5888851ea67bc96178419f71c10dc991d411dfd1071cb6e5d42a734d67df41865e523db8a964e573349b61d49cd4604295a9ef719a73ae7e91d0e0275fe68472c3f1844352142adb36ce345107c1da420d3d9ecabcbe8a94230c7b558384f315aff428334a84fd1c6c2de5c1e0388bbb17b1285f5d5ca6d96e69b6ada3b688c3d96568a433e807b6a0605da0819170f0c3cd5805286b798802037a2aafa60779f01fa7e5fcb3bd047a3f0682606ad991440f5965de6f50d5b39fa596665db5b1ead5b1121a699973b78dfbbf1429b5976244e568495f2cc0f38185b36b849a856c40947ff0777bc3fd0c5001102772a3fc1ead1152142953076a9b8767c6e6d23c06f0d98cf7ebe4a2fd2e361afc94f6b6688580095900637717942fd5b9ddb500d7c5a5e410b23f27e7fda17cd989fb7b726a210124c99ebe46ff61de29476900ae811d04a80e2dcac24bd2de0eda53b896982b6c905bb80d70c571b8d54ab5f8d561142261623902cfd696c5d426472f6bd4250996169b46387b949e4d9e3f80e6fa8f48ef9bd593b6df9df7637c6ca47edaaf72c786d58d4c48782e2caa6575664a1b71b12ae3e4cc78bce4b430d6521fe896bc930755a892923388701698e17ca51edfc1af9c50baa1a8384bb1f69db25e7f817364cb292ea12360084fee2dc0aa64b3375ab449a049001371a581a76546b96b63907f9b4bf2b373fba880e9687f5d7f289267fede0c99aa6be1a5f8789031654cc6d76f05dc9459619c2abcfa9aec9360be6e701e1a29825ded695c675a6d943c5f2fe0acf185c4e25a257eb0c329ab549daa5a0992a7755928bd8238c194e19a5e2ed49ba2bc5f724fba9a65489c3f4e8d2e5f2236178f8cbd1457283215dcfeac9b74d83d264fa49878d2c6c8c7e6773cba3014b59d603e1ffa321d946790c890b327213a9862987474c95f35963ad73194f5b834f6b01cff8fc4e73ff2a0c7d08e79262c4c9d9a762fe6066d5bd4b28c8256c32cabb5a5f4039a56e7a1267936f6db1ba1c18ab18304dbf3d4d1494ca70563ef33870dfe5ef465d72de80ce0b18eecab82e38fc888f3fadd204d4d02f055807e8b7b29fef9a52b9aafe44e9d9ec1a00ad61909271e2e41f13a70af7892ea44d479beead8c48ed518eac68f5c2f9e2a90f3a6647277a892aba03c4b01bbd346de58876905127c33b89a922d52112af491d5c41c8d1c081b40a2b515871010e5c6ba5320d5d3f91c91f8cb8dda754fa6a26f1bac7b3f1459a2ed2d34b2d3baeefa4f2dceeac5892e9cea55b9fa5e987d2c822b17f7cf61cba5f6e1eece0623184f2c8e105718565190014403ebcc58c46379a1b8a48869f9276f1391e44ad16664e74e8651b8cecfd4bc85f0728cd211d62150b322d405a5ede7f57d716dba5bf94d5d3d1dea80c27d715b9f81dd45941368b9629442086cb22e7ef9268fd72df8c593d995f95f2c26145e151060c568bfc7ecee3261a1783d36561f619a540a4fec96f029eea37e8f4c915e4e114c6059d482602b3e01027401f1956c262ceb366d162defc32570237d8bd83c13b4c7f56e5f8af1abb0ce7e55a8b3700f0868ead01c867fcb21552ef9163459da73dbbea634312b7d724a38d87e814ca4812a8b2c61a20ecfb28c3bb505712a1344528d56bcfde5941aa3a6745c40b3a9953739973872a943736af753a191483c98cb6906d00d6d5d07cec5c18f425051fa602a2e2873e2a140ae81d91eb967e28c7e29dacf3a7ab9a30220dc32196b601ce855fc363ce0c84470b9cf63d5ff1267cf6758b520d960e0be83a2c974092c6ddee613b7f1bca2a97612d76504b7853d690ce0c25f6a8ece54f6750baae6d325fe4367883321a4848cab03814d981579318b59f818f1c827cd40ca3d310d0a0d5747e828789bcbdffb859d535eb3a9208355377b192ec2d7ca07be46bbc8d8f3a893feb976c29760e5cb2a129635d333b1f413f4f2491396b0c5a980b6694d01508bbe0435f509d3c9ec0bd6c0fa8c719ccb22c450be4e50b0af46cc3efd4de75058b8f0ced184126118c193b9628d96eb2ccbbc225a6045f09249a159ffc147306ae6fcdd91bf6978dcf1e1c057b117b8a58fd7048f3c86b2ce3a055a2667e2fe4fc55343ac9dd25069cb0049196784b4b45729959441c632d626719ed95de2f9147287476f45fa8f87b44325e3688f4b088257446f1ccc54e8e7b68b6e97f601adf0b846197000666b33012ac3ff9c2526c8a7ddc561ac0fd1105069588b9e98550f79ec8ddf738fc6d544279ef3a58ed255cff7b55a48e3f288c0d331c43c8e52f4b21fbe3b91d11eff087700d431e367ef54d1f93f06e1f1b3967823dff2be60aed96ff6dcd5b82c20f2b6dfe188ce7b3e504cdbfe4f54e604f245c4018824be8c28d77d17058081f962b7d08357de19b879fc1973460846b436d3ecb0e5b60417afe53a52bd2b3c1e65d2e9ddac45cd79dfa4925d0c5025fb198c7aad85e0229221b697775d861e5e25b07967f6fc48e0487633732245baef8ddb0ec24fe5ac0f74317a05421cb2a60754110c6cc61ecaf3ce017352185029c2cc97e9a1ea4d622fe65e555cb9743cd16631b2905d4418083a146c2a397896d4165a341500d1ff10bda92a779585e63bb4395c6fc4a811570796676df3fa54a8031fd01955dbcd67fe9fbbed068b89ff5f0c61d39d10f493c604ca8583f6fe5eca37fb2d926912c87a2bc56a3afb803892e6c78138e9bf1882c396a5037cda5d096e0e6cfe352c23d3ef69e0a93d16c1c706db43de5932c152612d3cb82bff49d3602e5124d1f3c07a0e648d0f7e61db9e3e0bb2910640101e07e9b78363f60bf6c96c325ea27b33c1dc2232a32fa031cbaf1fbdc7b980201162fdfbdd1f86285fba2f51fbf83f035aae9f92c9d43672efbe00d451d8851e65138a0ce6c9bedc3134513b2cb5a71bb590d9282712c26e511effb409079cbf151904b566ae0d0b8eb6a56a6a36728505a0073ec0f1cb7d3bfa91f897731277c9f6696cc58eb3d0cd263cb6b73948e1fd6422eb29b249b6236d5f8a43f66f4aa03cfc2133dfe7bd0abab43213d9ffe2a3a7f73298790b4a581e44a745b9d68c781fa098fd9c69dda5ef6dc042a8d6f8ca4bf8867ae67aeb30cf360f930c88551ef18258503d195b8bb79ac032ac74d4932d97d6da75d324d3f0ec5f705947fd377067b8bac3637cec46389de45b0e0d8bced3de41cdded4cebbb81888a3c34dd4c76d1891f3434481c8520e4517b8173061b65b09b3d66fc3183fb5a38565554910fa5cc59f61685c1521d3c59661c3ecc714cd565626d93b8ec64038de39012e74c25dabbf1919ebf321269ece79852710d9af6b4e55812f95abfb22f21881f3ce170792a2071fb87e95ae8a318aebbf7ff44239c706f7e7b8373557cb6e3182d4fb9430bf689486bd113e9eefa6cadc6bb8fa9ed83589fe3f310537ac7febe6523d67f5e1f6f2558687f1b0ae46b6187ba7a890336ee8752b61f767a1cfeef82147b6e154c1f1601d7f5942af2fd6322357fb1ed39c6e57bc242c7ae9f4c1e413fea60b69b0cf362e2dd7fd398c25b38c2620c89775493ec82d61f659822cbfb668f0effadcdddd7b5afb465f22267435bde7c1220b04beb016507defb6e3f15beba3bc84d6398197819e775be236d0959f4cd164161fe6ac5458182df7be5d1b631102b98a66d8dee2cd47c60533a7e7405690ad640cde2112917c4c3d1a40f046d4e6916b3f2c753ca7eb60ff5be9811bd8409c8de656e7196b89fe1e45439c99952b2c28aa05f1a59f093431ab513ad038e940d875de9b3b4d5c79d803e70c196119573447c481710a2af7e78e109d227ae354bc813015cac90cb52ad0522f96964dbcf68419762c17738acbcd9c5892bc4264e0397e609a886e399eabd8667aeedc9ae333edc9fdd1933853687479e7cac9c481a47e1f9e7b67304ea8bb05b9c602e22c094a15de33e9bfb5a275296f37d975ef4e7df3f1b1f7eb4491177b6f193eefe4e18bc549a94d6f23406b81017f675f7e4eb54bdac9b12ae3422411e039e04958cd9942bec193325ae9d5ee1a224a3f250a1b9b3faf9290ba238529665590e1b9ea9721f0723f014121f12cd6202fb3d0825f8549a7263d88d6b839c69e0050c25acd9bc17c1d633cf3be4fed3fe7bc9b956c2480a5c2895a2afe861dceaf6bd0fef0f81d39a4ed09b424450dd9458e585b0a741b5f1685bb5f40a2a3e550ac6ddbaa9dbe08ce995dde4979b3a51cb271a0a751e368b72ebb61180c89d2837fa1f5e2a3e7e0de6e46a6afeb81a1375a6c86de8db878bbe69db1f2cf28159a6062e18b6643ec8524b0484d4c47c5d1d18c34fbac1c86903c0f8eb6fbbfae14c9a28624760144570d200ae62453a4841279197554f8d48785e9870be0be57c91d938f10cd35695de310e17c517c73785b45badc80d4fb7ec040ebe5c47f9d6df471f30d691f42e94880e32d2bfa7195261a99e2e5af006c4ec91c01410f01b06fa4f6db5af275afc029fcc6118507c573132b34d4ff1a6664ab301c63cf419cf62b5cb213e70dafcef72cdbae56a0c46203c43030e16a18b261713a283284a869276343343d59e2da32553d4687ec670dde1ed5408ad1910b9c1bd647ba89b25118cda838b547261504d2558fea6a9279d5ee227212eb00a9c6ec7d85bd9c5037e33d2130c641fb6d5f99b0bea8580cca1ee65e04526520453147e978fc2f3d679a14954056aeb39e7511380adcbf33b3b8db843b0139bbe3ce3f8a7f767a5600e516adfa1952fcb1a9186426f43d3b11b91a7efcb583d8e46842fec90f66d3105871b3228ac68aefbe5e8be2d3644684336590646bffd51cb49bf27efcd3f815f8a294474cc11d639da21b7e08777a5a4654727cff6792f9197d567d6eff52ecf388e5ef0868824d925fd8d390b8c4e965967b1370eb605631310f2a7c4bdc07587080972d5a314a96e80bc64cf8001f46a55a58005e292bd9bc8d18a714a407bb923955fcac07fec1f9436c9cb42da0843ab96256efe04eb7e1fe44b9a604ca8be163e2ae378dbfc06a2606752faf5a7da5c4aa4cd4a5838ac3a08d071c8878f14f037d54e1bab2079a28cd891477898d5c4435dd4d939b2a1b8ed3136044f0b05e78541b783a2a1ed23034518fa6294da1b99b8310a3e653c16a587da11bfd22aa6bffba7e6610d029f4a9b4673fc149da921de2aa4478a25f91351e2076ed1e250c6ddba7615c12a5f2af590434d464f67610a717bf4efa352c055ff6fa5661ad542a66380830cf96e34c0eaabe9a042c8c4253df8c1f49b9b05c0c59e7794abd288ada7aebf4a64e2b7c6c5d77ece20b96fa4b263b519f17e5a818b366d383ee9335d26621b46ac510c05e1dd9915e060a203df0a3a51c3e72461a393d464ce70063a11b5de76e805aef36a9a2b1f20649f03110930b7acec263563b2818d290ba6fbe9cca9afcef3ccad405937c65df1162d4aead5f3c56a8d44fe9766b9adea53dd37beb27613e4a72d94e41aa23a4ed2ec44702c5e3033b6d6549b033e45c099683c1342c343a65dfda9ae087d582bccee217eca95383bdb7dffe7e08f3de11fd7d20c720dcb35c3f79dfd959de3ef6e888b230be3f15b8c23cd6d2829d7e78676851a63758f4f7ea1eafd1a0e8d2bca406161e56bb2a0e8c67166de76c23deb0ac7e6089582cc475d3216f8aa18adc349a6eabc18e6433a8df08c99006b482f15f9f9c693a889181fb5a96c32479dc870cdd101597a5b70b319ec23eb5a174e359ed64e384867988409f95dd77c1225533b745675c53c577ed1d5413c8568f2c7214083723ed8035e063465b0c40e0e406a06a78e1cdb3efa059233665d5ee96ed5c24581e81bdb8dcadf1330becaedc89589f883baa5d5562c3737128e5c904c06865875e99b635159844cb8036a5f8217b4b2d5a9d79171e8a94c151bbff6e08a9ad8737dfe92931ad44dc11fcea8c83c83e1030f984d87de50a6e3971d92fd4220704ad11cd8ab7dec17b93b59dcc1bfe7f2e77d4234092395217831e79cb34e6780af67b22265e041d86b8eaaa6f7d86d3a837b2320fd8b46cee8001a346f9264e81591bebdad0465680cba882bdc70e1b66b2e35dcc2fe69feea2ed636c13e813fa1796c552bdecc1a78b7565dac3417e8ef9969c8cfac0f8e30d2bad67f7e35ded108a0964e8e393ec795d642e9c78f345864d524e7c4bbd1df541a2742a78689f5e0e5d99eaf66aeb61b08f348537bcedd7fe31295f682cbadeb4c52a3bea34f50b1581f3ba69d52de3ae3627c89355eb34377b2e1141fb83728bdd0dc96c28591b0f4b2eb579b29ff6c2ac92c06dfaa9a3cada270b0dd1ad3097590032efada1303bc56f684340eba16f64142c86c8c484dc8327f3f5873195407dd541817b52fdd2da511f4d3c1bf0c0fb95eb8472110a36366a862362836bebfe08c9552ee024b6fae9c46eb436787f911e4204b96a95404ffe7188040212987b49028c2073ead135d991eae166217bcbdda3f2eadaad65494a0ebcaa7e82cfc64e4992dbbc9d2279b27b3100c02ce1c0828a59e9bb79ccef98930abeb158e59d71514b1d2a5a91fd8a8ff1747b0c54ca9a60e535a5bb72fa96e1d5e8dee5600c198b5734a6588ff9142777167e8639257f5d287c81cd94f511bc7001078e7c1469dd3e5d0da4fc3ef7249381d86bb4d1ecb8a57e35fe9fe8039b7204896a09baf891567384c39beb0aeea95e957c721b7156bb9971613e3a4938c5bd6f76b0ec901ff7606a234f6844332f5e968d555e7c6a954e8fb49dcb876b08b94c12022a00599918e4c06530c5f251b131961df13cd0066f07d0361661ff691f68af685f5a50e77768d96183859e84399c54434d93ee3e6e12c3914a8a50f056412f5820c6ee76b3cd2cbb59a561cc52619c9efc5794735de95c5b56af0de6c4e0553b0381b24184d45d64a46048d76be5cf51e06fb9b06ad0feb838f0fa1fb2eaad0db776e2e1458bb3f690979d36d773c16690929a11e97075f1d9741adcda4f4981b89c6958c73afa708eb1a31da59b44a5d06e50933dae8cb2c442eaeb0570fc0dbf68b2ac96c4871bf212174110f2341bbd5b5a2436f61ff91cd9f083dbf62a5f04dda70f66b5c0b4e4f76b9a4f4068c9bf9acc7f04097bcf98a097a44bd5a5cc723963ad6e0ef5f9f81bcd87e81e142a6711925a5111138edb366e22ec7be5d300a96dd110208316fc21e36919394ef55d913d1f3f87a304b4776a20f5256d4ef1752b4605421717440e04b62fcd7875e4ddab209a8b3ca78f4f24351fe26c50fdb232172ac4ddc67f4817efd6646898d927c0249fc8d2d534e6215d990fcf0de77afb3d0a8e9b2ee9e449fa7bcff9c3dc539c38ce569f3df4e47e5ead0522c4787be90f45ced35f3bfd03335338d01412efd61ea197cea1cefbf334ef05df12b23fedba20f7c3babb2636bb99e519c0855aba255328c77030e31a9336dfe4827b90263f31945f248f28f46a12e5a45b892a8ef9b38e361ebd2361f2e8f5b4dce0329c68d41d450e02b73e789c41087f605350498f36c3e66eaa5e5ca3a7b81db700bd83df73c328c7f61926468a60e99519c01ce0cce15c1fcd80a2f03ff8340c4e0a8566b94e44d373e80ef7d3518d5e8d3c0ab6b359fc73c9f5a613a2c230ad0669ecffe0cc616e131493a4726afe65abf08c87264b002ef9a96d2a7285f2f918f7725b8f339e2704eee70042d90d740eef53beeb10284b229a26cbdc24ebf7df3c4a0928913c41f7dc3319efbbbe7dbad06e1c10d9ef0b121a5111a6fabc8e55160ddb7f094e0aba7730c8c2cdc56b6128afbf566e85382db835de49618b1c3685b9d2e1957dabb6bb9592d6a017b3b9a27f6253fe525cf9e1e9ac038980991897d6485e09d570560bc1afcd06b225c6c0946ea7c658bbc881279b9311f6ff50e10dc030bd8cda89e54fcf93121bcff441eed9a31ffb23ea201bbafb6a73a055e694d1fc724b19f7a8e9642c868b1d40c366659f4d1c3015632f52f178e7ebb5a489c4b254d46a2c7fc519729d343fdcafb196a60ffcdc18cdd1fc1099a2893a156ac7122d0300b108dfa097d20a52190ea1a983a37a160e41e1e084d015fdd874310f995643cc780bd15403a155d2e6769d5ef029fccd6b81cecf922cc10e1c1e5a264103fcc111a636d0e840a07995bd2bcea80d9135f5a3267d10d23ead5df9f0f13916efe4113ae38c9ef6988d634c653a3be145f1d362f7eae642856190bb53902989cf982619ff613d304d6f789f5a4a9969efdcabd7203cb728726a9eafb089e81f10840242e3a3e05ab17448f2728eb463b058f47bd2f075f09f8d854a3c276d6ad55ccd313bc8eb509cf05fa2ee5a068d737dcec474244ac18ddfdebfe009d4252afa7d7243fc3314533ecb1506eaa5b226531fab517c4e1cff341bcb365f88b2cbaa71383ccf31fa9bf3dc5fe3ef8beab8c84ccfc0476537edea94d744866f01d326de76865c4deb5b99401134ba4cf7da80e900ccbc0171a1b35334341cb5e3b0ff18eb6268ac5c762d7954d5534edb5f63513a243e1fe36d05849bfd5a25a5d2c483f25d04cfc44e7f1bad39e4a0c5b5c1734dba1e315756aa09577a939e48e0c598e596f5cc03d11b9700f33a29cfed9d3cad2e357e9ec0d29d911d9bb7cfb1a1aa09583b9c254b8cdb46fdface9fa8ce56e709a1900be46d961b72216a20720ed3d9aeb2345b7f32b01e93df5fae4c537a477e070bea63c4bb155183958af19eabc2e585716aec024d2b1d9ae57005b4da99b57121a020cae502fdee72a213abeb9bda18b3d8ff8eb06028ea3e630122e1a36a0872e1b0ad66e99872f4a5784cbc5382f25c0c81d0563d0155cda789fb19a6904b1500bd4b27b798c27e63646e1a688cc7319fa5cd12b54dfafb0186271d1ca8d3a54d696fe9a9cb1cf072695d678cab5f02250f2c126950e368c02ecc71d8f3c2ed17c0776981d0a23d469f734cef1bae0fab20e56c1da7223cebbff1452b1db0bdb0e3ca763b9145a5685ceb5ae41f0a350fbb195600d848cbc42fdce5c351df3de3e113f1c7e9f6d2062c86c31369a80496971128adb205f21c7197e390d5d5b1a0c9b62f6497f63028eba60e87a7bde1e7a9ce6ae2737d9686782c30babda8880028c25c6aee28e58083de7c8f859519470e773024a9cd882d30af28ff34bb98598fba5e993a22e920c7b8fa736a93d5bfac24261e92c440830afe672958ee9f1d16d6b6169bfc4d0a4f09aed19125b3b89d2e68b8a275fa57d73a2d9ebd8dc4024b81c2b4b5c717672cb4b047d40a5dd389a681cfd85d4f68a397e51932be86fa27612223f619dca3d6100c3f54153f0d29f43ba093668afb51d7a213e7039c85a4b8c7f3db043ba4f529dcf45412b86b5bbcf0a08c71d15b18f006ad7bda38d29c763c601a5a65c124c4e708be83106cd33cca21514552452f843b6b68544af9ad466175166cde922ad5099ae23aa6da361f278afc711a23e55ac0f9989e7805c4aeb222cc2235c980e8e751d0c669f1a9e8c23f9d4e54f6573639264933f28313bd2847062654847616e2d351c0e798ffd4cc941c362163fb319af82de9914a9dd7f90e9571cf0404db3123228ed97c9aa597bfee6896d4525d22b84214f0fe818d30494a20672ee1bb9c962ba49b2a47db953eb4fc609a68208a56595bd211e5c489ee34d2ca8043fcd64f21030c36cad455de3b9a23b163df8a1fe64158ed02c1450efc37da3b064bfe617fe37deffbaf1843255fefde247309bb75fc81065b095d772998c6e33d5bad01200878b676db91192d1f5c55fd88bc8096a535c8f3c150a972390359aacf5c3fe6bd908fee83e2cb564f8f17c4c9d170e6b3160313ffd1c7b95de48b3d08018c4b44a7942de32b15baae76baff812b61d0e2bca1a610e15ad99f8deef0ab3e15763907222786dc62bbedd082805298d05077149da0bcfe82a3a25ba9f61c114b8c01c407e587abb1aefdcbd5a6b63a0ec859aeda5497c09d9e2a4efc3697d6b391fa8403ad15398fc5cd80a9d4474fdac4392113e1933bc7faea34b29a07bed2f2a7e672098e7d0af689b19ccc37f5c3d611e8a5661867217174ec25c3b01dfd24a837aaca52ce5f373fd4a4d631c4a4503a9fff01ce24812f62151acaf410408958d757d2f63cfdcc16b4fb2d2e7a017c998451dfb95b8e374b01807f7cf2240ae20c21523a1cce87eac477fd838d6e8325c83734cb6c8fef8e51a6e8e4fa8140abf365247bb105d469894d27ba5fe2d3c3f9493cf8637f9de2e53b8c325488584547d20e9a7163b386066c055f26225d9135c2fa825de1f80d1fc75fdeeb4ea6460d14ae155e206fb21d54edb3df1027478b7efc1760e3510a74d509d18d7621af8d5f6e855b43f0f058bf696963082a37497620b6ef3886f9f7f4700895f99eafe1992880269803c1843be2faefc8b2bc7f65121310fa2861cda70cf07e355f3fc0e7e96c784df682ff67396632d8259deb5a729b5f59c9986d98cdb480c86195a9b8f41421b7489fc66ae495fd0c5dacbc661044b7e283337af0e65cc9bde037c415a3928c5bdd4f842ff4cd032a374058c4863093b0d66b91e47b689e575036edd24c51b58ddf3789120e4e161004dfa727b4d5c7e1c3e356e0d1ccee6d4f38dca57f9ef72e799b2d342fe5b47537f62783af46b4b68db397d2082492fdad19b726a699bddb2a5c43b621d5be018cd5c4bd69a6f168d80e9877fbf566756b3f99b58cf4f3e06999eb1bcb351c0a81b9842952a282b6141b7e38281f72d3251cf12d04bca29f6a7bae9f9ddae8d8e1824a37be21ba4e7738954108504912cf628b90218f3c494ec735bea1a59c7fe7b544c32fae39bce7cb7b15f022024a78017e3ff6b5dde42c019a653603d8622f4b40a60662537f9601e82c684e4e1a3cbf8c4fd00db17ff0bcf7a2badf404d7c5957881840ec47787c3bf707ec45927c278ea9f559bad637eb9b24a8cbf21d32921647a23612a67204ffd62a99160c861c5fd7b8f6c9b7ca1d5114274dc7f318694243288cf14cac4a909fd62ccae0d9cdde954d04c660ffe384ad272bd50eeb8dd5eb4743bd1e9512b98a9c4208284164235044b15304a27ad7cc118e661262d1e6bfb11ff7d7179f510eb5a09907fc0f92556c02be4180124cf432535c791106a2a3d157c3545ee90ace16c5ffbd396e869c74c350da6e51bfc1c0d450af49b6862d6473b57a0bf1609fd8c50753794a3bece418297f4cf040f736269259fc3779dcc7ec6998b62a28393f9a295f81dafe1654fbf97153ed74d33a57fe536cdf9c0ab15756f0bc530cb56ad6f91bcbec387d6ec93db8519470624f913b036fd1b022ef289e9eb9e6a2f8a6536de3450f5a4e96651ceaaf1e415d59b09cc7002c155ecb3601724d5608c7f08684f1ebe5b766230870bf203b90c20de7fc23f1f6fb5b9d5ffe84dd4c000cba18c8a5b919719053bcaed84034ce0031f104ca43d6fa2643494f130d2a79a8a9c77ab83f11079f2401004791e65954d3c0bd37db8fd5f42d394ab11e58d247b580d6b5f75aabaa975f47c1397be91e809365df779cb4023f8168a9c404006b083ec105ea5274097e088b904e872e31b80e7b3af8fad589686c2fb3cee8ed99edd08c5bd1d4773e16e042336f12c0c8c60a8cf09f647a20e91c9756ea999dd7ee0375ff95f8263d7298e1d36bae235963084e1824d41ec320fb1fda6eebec6f71b5c80014a49ba955e66c3f6fc09db9f1e273e8a6e12ecd09171060e348d141788a7f078eea0e08e2742f8d5c469aacc802a07da3e65a1cd6da75aa852921d13ea006a9378a9a6729f09328b649436e0c117fb6513d51b439490c205de74858a5a553293a77c2317f91cdc91794963ba2354cb9ad2edb29170c35568e492fd54e7b3453f68bc3963eec07ab63159b5a7836c26ab1bed9020d9c08282f5cab438e02b1dd87e4b62da719939469bcc3b3606628f9d6261fd2dd127b9223b18ef2b51357de70a41560efced2d1c8c82b41726d66b100091cdbf31f8fd821178413a54cf1337a2192f3a3b42394b792c32656df37fabf9ea95e6eb73c3d10fd3f6c50e3c6891641137d4befa05e635b0a40e0b76df362ebae0f023f4b377240f1223c1b621fe7eb03a1e0a7b0787816df417e8aa4015efba113d93ff9d55a77451b27493cd6fd5e5d0205950c3fea20e29898c148e9db6b06a1483e0c5b307e99c617d1bf99e259585d8b078b94c7d37183ade8219c3da3f412294233cf5f64cc5207533bb5b0295ccbd14e80aa00403957171f8a14895a4b837b0f80d76525d8f99ad251d4f16efdeea437d25e47bfdc2de7432675467f4b2129471cca29d89cf9b1e586ce3b991cdfd0f2c9f1a426ea06b4c8b5552f6854dcd6325da6851cb62e54ee070a6d5a34ba826d32a4f9580a93da3ad1724d15c2837987c235010c76b37deb7a0ba16d65b424e908659e0f50b0fe0a58ea57ea171795b7e17f86749ca4919844d9f2921046d04ea36ba336f33d7e4e85956fb45bb04d286c74e06bf14307bc5177e6be3aba9d1e887bdf04bf3610ab048d1ae2f6888b47c2556387f77aa9f028e3a95c483dfe290cb046dde939043d5dc47656b74437fdaa04697a91737cdc98c9c564d1644ac61c72f996b80daba4418352521880b7e5b0eb445596fdf088303f62479b7103ee62638e1ee3bc15b892f3ac851d09d8fc2247f5457a378da0c9e8def09bed0dcbc4c5460348bb017e93c7483f6e590c7b98803e8873607fcdf452e7439f897d84e842e5db45346b6983539118a939243fe9471aaa7afb5ced03784a3a5ce80fde3bd07be101c7639f90bddc0c00d56d742ed30cc1cd4be9ef50cba4e1a97f247e5f8b88aa5be2dbdd146d5e8a21ff993be4e8db4afd6b878b522dbd4e69ff2ed2d6bee580f89fdf202fc017e31274265f92301e65654cf6d5f11218590191a6edfa1ef8dbb2c31851f5c499a8114f9472e60de6c59377d911d5134e33f546ef0e07e22e80ef6f9a607247a3dc9407e908f11abc15b022e050b746f43f019d465e8c3edb01d875e65bdfd7949c3d4416e3e93066cc2a45c1d1a482bc5e5269c4aa3f0d962e2038a04c1b4ab8d69e09e70e0684fd6a4ed091caf3e45a4f77d2a19b46bfdd2d4d76ddb8a158601aca876e0132cf06124bf9f61050fca7dff48ad16554b78df2243a91ccf3732b6b6242e539e3c7186aa6a62c5f084afa0414ad1b27b3c0750c0844412c289b036fa98910c4cd3b76bf2f4226b9074d1b2d82d346d155a93dc0d92cb619c38d1eacbdc437c1f964de5385614dfbb4071acebdf20f53121a5f2ab58d26f1537777ae24ca29ee6b378a945504f36432e36b24e9ce5995263659386c8350b329a106b8785218a681b8ded44a3638e9b0077a794115d606b22b33d3d1cf4c3fd05b10e90fed3b97100a888970e5e16264e6d9c0b0ad04827b77358b3be5656614e06be1b3cbdd021489e740b0f9b5aa67acbb90a0380827b7bde356b8bd63fad7b041454d04a426c2632b59ed5e963ab8843ab0cfb416ccf4049877d6aa3f670ad594440e3d44e5d4ac95d118b880510e5b9ffe3bbcd6bc0a51f85b118f540e6fb240736c6a860be456843c21bc649fede62f212756b942c297959ed88589cf898449aa3f47710a5034e1b4d084156860c0b76b91c8e3a4c7d359d20978da50997fdd7e0e56dfb8ff40450268afd9c28d14cccca7a40bece80d377a97a20e6f1d9b8d206eddef4943da0865f3ac99a912a4ea000d22aa4a7e5351579d96ad47352ec82bbd446fd5c8bd11d889ad746f412aa53083683411c2a138a123be52b2768c0216899baef0b3055b1bb8e9206a0d618a7b290176325c74bae14a532099680ab32231449e52e8fc87f17d9e47ac8bd671fe838f5bc550edbd9bb0783495fcb5dac69f9f1eda52a845098f6d767fc1fd7886efdcb967de301ee3f268525155306456c1abeb20f170c1112bcfcb35656ee73832bf920f279025a1339ad98b96e9c5f9e7f8d58085c9e1e789d2a8ba84dc99ab5d536ff327d6d3721445e445a7b29caa16bad78c82ae78f8197604c148483599fdb165a7ea78a6ca0d0e0e59cdeccd6b3a4827c0a82c5fcfefb0e1ee01939fef2863cfc6989589dffaafb996efa1d435c2b5e1dd29a57b2649debe93c3a53530831835095d19c3698d1619f713cbf56b7ab1765a0b51f2a4fb3c5f90ebc341251753c2a9c41b6db8933534608ba795c410fa3cf964cf2be7e179446d3c007c50cc18bfcf1774cb56f8edef38c0caf9a504f26add024854b1e04561a3579cb9029090d2df7aeed8e1b1c1029b0e2edfd7904c4dadb98c9841595b4e5381549db95b81f92a8a66c568a00b58d3392a5b0e90c4006de13d6848869a4c6188aa792be4abd41257f9e0066a71dd90b2b65d544395291428fc07d9ed83ca58ecc4e367630bca1faa7f5343b1b77d882aba5687685fbeba6e4cc954c4dbea33ca21679c1a58ce31aea86885900679163e458fc1bd3ebfad045fa714d38cc4c404879fc80219e08ff57daf20268a863be7146ba4231f40276aacca2c2def61bf7edc387d19bcac79261c3a353dff3b4d4f6e00d6e7bf759ddc6b7b3442ae38de221184429efa4f7ebd957ebf6ccdb0a43540b5deeca12dbfd1e37e58261c5c7e235e6a1cf9524592e1d191ee231a9ed2262bab94f05069431dd9dcac9d61974cff146b983b97958d0f7f907231524bfb23cd8b5c2a62eb959a5b0f5386bb3ac42ae66de0911a989612f74104b68db165c53aaad45ac2d9f35b956e003cae530c918f1ad1c11b509bc350f8bc0874fde74a173fb64f274b990f27dd6690850b40f5f6f42724193fdd19ef482510d5fdd1b9e00af0d1573bc6a3d6dad335301428afbbe377154afdfb818b5f0dd9511074eb8d61a244a2a4d9679156362bd285035b205c23df56e4b3b30f60060286170295519ce679d538b8ff488ec3e0f2afa62b7db1212c0bbcdf0f1404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f", - "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f" - ], - "measurement": [ - 0.0, - 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 - ], - "nonce": "000102030405060708090a0b0c0d0e0f", - "out_shares": [ - [ - "3936ef72468a2084", - "8ea10552f7acbb4b", - "c00477bce87b99b5", - "e9fcf8a91e60195b", - "08482153283c3a8a", - "b4ccac3467243afb", - "9d0be62817287a7e", - "234de93541d95a21", - "0562502848a4d7af", - "b69b825402b19b0c", - "f1d5db7823cfa7c1", - "fa4a0bf5e1ff606b", - "75e0fd84dd5cc749", - "cdd9fe6cc757a177", - "64b5ad3e688c02c9", - "2cd5833f71de25f9", - "7eceb8087ac8b5d1", - "dd149bd4c3fcae19", - "d4d2d868cc0e94f2", - "f5a994bc6c9a9bd9" - ], - [ - "c8c9108db875df7b", - "835efaad075344b4", - "41fb88431684664a", - "18030756e09fe6a4", - "f9b7deacd6c3c575", - "4d3353cb97dbc504", - "64f419d7e7d78581", - "deb216cabd26a5de", - "fc9dafd7b65b2850", - "4b647dabfc4e64f3", - "102a2487db30583e", - "07b5f40a1d009f94", - "8c1f027b21a338b6", - "3426019337a85e88", - "9d4a52c19673fd36", - "d52a7cc08d21da06", - "833147f784374a2e", - "24eb642b3b0351e6", - "2d2d279732f16b0d", - "0c566b4392656426" - ] - ], - "prep_messages": [ - "fba7cbfe708ef79b96e78a688a9dfe0b19432ba8423ec44beb76bd3a2f85fdc0" - ], - "prep_shares": [ - [ - "4165c536e606719c70b5f1c31a46197360045aa480f1e0b294619e393e7b076c05296c68bd233c7a45b26fd924d800b944c29c2771d5fccd3aef9e3b977fe0ea2f7ef518042023c53c36b3f4ae9cacca4035adb5fb45bb94eb7c1da9febf532ed84ae2d81edac4abae8be71b37a6d4ed3bef929ee29447618aa4e241faa6142f2dba9b61f54b9189a86bd2cfb972f0282aa618d3effe16405a5bf53222cc479ee7726bae3c1b0e4c731c6cc57ca47d6d8d50e2889de76838974a6cf78cac5aae464609a8ff47ec15544fb3dcc8372cb4a1ec0bdcae76a60a299403a3b09d94837e6928b594afe695031f7597ac8d8f7d82de0383655ddf1a9123180412d0c605b5e519e7a558cb5ac9c8cb6337c0f39497aad37390dbf8da53f57abbe2fb417f2358c2db301079d1b4ae7577e2ed62dcd24a81803182d023bb13e9e83cd84caf92f38e4cefb0c74ebe4584b99d664018cff440efd2c174b31be144560c6c734a413318d229a927b16ed238d8f0b5e986b75fe63cb09672684da3d345c15b169347d063695a14777b9140f4db46306b5c95f6e3a5768eb857afa14b019f161f849c8ef304411919998867e292361f1ab4dfa6ce49eb3337b158e63e3ab342d13e14ff63469e0c7d346c650359216f0432e7365d0be63855b56a3e52a69a31782ce6353b2e33a227124b42943851d8a1b70a31fd6a61d2e31ba8386597b85a5a2392323105d1042fd2765307cbbeabadb7a999990995c6f81ea30ea710d15c6dac4ba2418785295dde7e4fa91e8b90fbe58f8a686dc56ec321798e9beb7ec645032c5af447c31ed0421360310ebdcb09c65e7bd88617e46de481efcb9faa7b6b9852b594087e939399095078094751a2008e8b3295fe81cf33035ae8f36d30afa29653110ef74bd809c57c2c371c1fd69bef1c04aeca60292e656e1be9d98eaee4a6f9a631e0a619406cf5c5737d3a833ec783830987465d988190e6bb06635b8297dd01ab9d76fb98f00272dc44e3e8954fa8908587e5a840179f53fbf2cdc11d131051fe0c3280f1cc2476316b97a409e039c823d4ef40d50f75d015a1e5a1e4f6cdaa5f3e619ce1c78d0b991de9e696d2fac1d43fa653a35c6c092595e61bf05a4504f2134effb767fcf2a304e9a1940dfebf51cb7cb4b3856ff5e6cbc813f91341f474842fb37ed7c04273388ba95ee5dd5a9aac6e7c65fcd718d3ec9fd6cb800c8f1513e7b9af0849649b8b20e2c8b8e4d0258e33bbec13437e247769b02fdc99d4711b79012b0597bea76aaf0b9a151b6b7bcfba7a5a0f4e0c5db3c7a952e500be63902032ca0064cfa64d640c41bfae1d1f57c1174b952d114e3d051555b994678a014cab7b02b115152ff92094ff10ea818603f1c105a76f74c401499ec130ee03e4df417e39bd4d02922fe31bf8360a165583eafc6f58b0d4a98ea76e2ef1cd64ed01286fdb7a34a7e21a7882a98292e07bce37c3d5c0506c01e119a4b455dcc237955d09ad3dfcd5795f5fb31ceba82d8bbb354b1500bba58e27214d5e0bfd6a355e273ab3171b59fa623163a76415a0f8d608904a406ed9f99bd459b8534002fdc60c9ddf06cf9e9aed83e1f51767ad73bfbb1879cf33818025d4438871615fed4484ad0693899b6b2ae5c1e7277a7aa0c3500efdcc40372244cbbad850a50eb049f0cd195413028cc2a2dd818b31ca531b4e4583bdd7c82b52617247844ea7039bc98f0e62c5407cbd5ccd3114bed3475d30bedee6ec6a712b40bc7aa54c9b4fb8889152d1e5f081d3f4ee861939a7b87a3ba6f5f95ef2da3b8fcd6ac2c3d8842ae9c9a6b874be3d80b12850271d6270c0789b83c992cd9b2bbfb2c17fa2cb8d9f5ce716cbcc2113e9da874428d83de2d3e09d4ebb529686db5e1cc22f7f91dedb8d7adf7d346d986d0958f4ccce627d7d87ee177c2bfcd37f76869e749d4032076b69766fbe9fc7edf11d031454404d9cf22d6d0890b09ada6251cb9945f180f7a36b0c47346842d65e268fd85387f15915e299ea73b5a8b4b274f778a60c276ba65c7a5b643b6a31fc087737e2baa7c06ad06a7d19a17890a427cb1329c164a3099af3fe4ee18477db9d22d5fde3e4c20a834c635c5a8e55fbde54a18a3fbbdee54dc03706dd20f1a43b256acf8d704a94d86e5951d7f5154659d49d7c71d02c9e3557973d194f4821e9964e0e6170d25c626dc077093c87bded8b53193e40c923af4c959317e093839886e2448156ea310ead1c38ca15e1b8da0f82b958a9876d4000a0cbea75117c70a3ddb23703b573c20f1bf2d30f4ba016d7604678d28828cb5d2a775d46d35d0a795c725659e9e7de4e6b2f5742d1dab5ff09fb2c9361acea5e09a74efe3f964cb71d22c89db5c44776add6f0a7a841647616ac6ece715c19e7e943443229b082806e7b526d0c0960e07942734f58a6db768af029c2512d6d8009b8f1af8546e2230c6a1296f3c1e112b5d17e9c67edb5560bf2b67fe0c21f8b78c94ec21e908968947a90ee915ee6c6df39e9257a44835839db514c2a95841dff9f853a1162144ebf10555f7018ce5cf7433c75000546949775476abc46aaf13dc59775d80c2c83202d0b4ebd98d7286c4aac8c3ab0109dd25ed82db9625fa0ac363c8797f4d7aff40f2547822e429bb14d8428cc63e7a916516d0c46c41ea5d87b65ecc5b8993cb0bc5641531e18d255d2a5b11aa7c0bfd58f98cda8db9dc14d9782f8a6c107da5a134661ad75da0fdb61a8a72056b9827a6ee973adacc36cb24cef3da1a25d9ff4398524f3feb39af0396bc6f9471eda6545d4b84e8acf4c0fb4121c07f58d991ee9a1c886d41a322ee71db2fe757bce9ec1514a96d155ced591a4af0aeaf25fcc9a36006cce9bde66db514010a92639ebdeab885d54c9a7deabe1ef57e8bdaba78d4e694921c5bb839e7584e805b76aa0b9ee4d2de5afd05d2927324b292d34ba53d406020bd8003aa25f0895c009d7674955a72f51447753db4c01ffc22bf3e860f852c1d9bf3f3626231a2774ff6c0959c075fdfab48c9b20bbca2cc3c30948ba80b4fc355dc866517df7a29a5e116e7a901fc40aa2e46e26c1ab8a5aa17672f3994dd53709783345c604bcc6579a1fc86ce6faf4d9e2f7eaf87e844ef0aecd23f032babef17174a3b9969a540b879f58766ee593ce9d95b2fe24a4f27b64f3f9d22bca646779aef344cad737b578af39ca547c534f4e366fcd77a3e3070441d1b963e96c40af5a9b665dfa0d84a15fc171f23ac0de3fe99e4250cd53035d57df69b5cfc17ec5782fa0613fc5d01ee9a9ba90ab154616961530fa4b8f67186bcf19dceeb345121a02f4b3300aadbd7acfa4ff99376ccc1f19ba50cefc9822cd1394144cbee08ef5fdc3a70d773787459a9238b1480bcded7362b6a96cf004b7b4077565096c1f3774e7de233815bb2a675da64c9a381124d701c6f93cb06cd5c8e18a7af6458e7ef15f1833ac2f491ff4f55c39116a74fe75c11cd8a22701cf73f1dbbe470596eb3a5abd2c419e4094e569a237e432e5575c3d5665a2f9f07138b77021a7ca35d50ba7d14d89cb3a549b98672bbfb270826894830590aaa7f16e4dc1f13741bcbfd3652cf04b23b6fd8c7d56f9b7f983c5472b26bfcad6441cead162aaa716f6e823b33ccd366531d0b2bb30857dd4be34f0b3a796841044f234998712b494a2bca2ba52ba7c91b0721fd946be91289e8c623c9bc9c61098f53fc8fcde84295cf23a54e3877cc3e32dc8d15187f391a46a43da256560db7db3d03706bab5c00364ba4ae238a2ad980ab90c73645a8a9f8d1c2f0ea95f7477f9b0a8972007da4caf80845b1fa88f12b722c5b8031a519194a930730cca4c31127aed239ab19960c8d8fd6090f83a8faa5c19fd0ef38b3b5d0dc2894ddfc7aba2b61a6dacdc5960771ace4719bbc0cc7509df77cef96d9aa98d09f5a3143c80fe544dc8e458fecfd5206bc978ec7948db7376ff31b060618ad26502d170a87e6edcd5d20174cdb4e00b6cb9c48e7de5b256bb5e954f586d47e4a986712070d73ccfe522f6c36c52f7b10bc1cdd8d52d4038cc9fc62b5f4f555c794c5979a1c3e20d5c40bb779b7e76f19038e040241d221f15aaf2f65079050b34dec6bc14c5b374f48914e22de74ceb913c6e51f4e447c5f2d1f332f39b6717207b6b2d03fe89d58a5d90a86f8c457d8985f8f91dce15f7c72f07d1814a8f4b5a208ffb6ea3c0b60baf24ff23d52f6413cb9073d3d745feaa988e29cce08770572d8e3ef8a435268ceea744383c7d6d68fbab2d9e8dd95c4b8a7fac293ae92945d0f377945ea650666a462e3e73024183d665a50bb842da1b815cf383644e432a9c144a06e277d46376e0577414a8a47a6ed05f8122e21cf92460cc1130e26f934ed2df2f037b070e3a877178c3c61fc5f5be08cc0552630d6ffc5070dc2344d1af647c9c1a73eeab317b3d120c0966a56e9f5d5b7fa8f6695cd2259c456affd6b25e6810d7b2b7121b1fc2354e8a9d102e73ef636b7d117dc79521ec22a031bd725b099d21bd1d4f2cbe62f04ded651168fb1771969b17572eb95cb30ba3adc63458fe74615435fae95b4d5027b662831a867244ef239e122be4a8d780e3809efb72da58b6fb103cc21573dee47e677f4aa75d8979df571888c5715254484983c31e5b8003789d1ca53088ed210ce987951e71e362773d888cd77d4ddf6cba4f4e348087b08c04e7760152f9c1c60d7d39760ab228c15241f06f3b7575383d2bf1e91bf0a89981a53a4396c919e5f8bce6e718f137810bafed2c2c8c5bfdd48f8545570de7634d2fa0b8131d54ec8d7a264f9397a3392b985dfab3bc803c1e4d488f7a1a6953bb68ea3eb5e5eadcd5be68e6f3cba051c48db6a533fa93c9728f8b5cae9d45fd22b335674714131653bd33740f5db29d22a970a8c062006b7a8fc6f6d7825523700043a4af153736fc84005ddbf7733ceef32dfe5422c7066fabf35bdc26cc52ffd6275d33e85327e677beab97df642b4e551d7768079541a1fd3e448b14da28bd2bfd4044e8e0c3b77d7e01100eabe0834bfa36be305d65fc3ce11b4ecc4434797d98e08ea688fb418e4049caaf18bdeadf67b7910e032238b0a88c697db176d83194127277cb52d99ac204cb66aabf682e4bb07b0064f0ec339204a534e86cf2dcaa61a2be4fdf68e4144725aad522103bf6ca8cc4a00a107f778b2966ea64bae1d8eab14bc1da6377c0f2a62eb669aa6ba4c310c8035fce8e31770d979ab8c4f7befde7ee0fdcb8f090d8bcb021dc0c894bae0a81a986209da17b9e0932f7ed805754b0dfbc8492a39fc91f78204045305a5dc3747865b6d8cf6e06a75c7197d7982db44e4c4338aeaa5962ec1cd7a133ce51d51480b0e5b58507156ad4e3b8abca5e101393f7780e996796288d2a9fef9a17d8d89f443134959a05b55a31b30cccad690bafffd3c29d72cb52b3910e8978822bc8afc1cdfe9e57f9adf6357dff3c4e7ea5d673acd1ea05c9cb3febec5d6cf0bce4f2454a0f122b682f1e9357e6482503267c4c7ad31a400b3f112a50c637c1853ef7a00f45a0ec255f90ec8273552ee093f1e43d2f9ccedb61e4e083480804a3c398979f7d7a919d400dc59d37324a9956cac3b5b038e1b9924d33ea088d6626721098b67c2f3ed1fe657ea801f565ec4955100405f2a4ee255fb3ecfad4e6042d8adec9dce267b1ff353109890da48d3d38acaafc16381d3e17389eadbf6f3a017f41172a2fc9bc99e44a4a5387a3957587d58340839b477778024c3ad92836deca8d6fde00cde48dc25c75c5a260c66e83fdf955fdfb0892047e7748af7b78710336707e18b4f62b4bc090f3aab78abfa1424f2a2ec248fa4cfde28a91e38cfa22560a32f1df11c2490a64b4a6df2f2cb8b5dce76bf3ab02dce63a3414e0c721321779245bdc8c959b4763874a36756560099873a22f5ad82f0f6742a3befadbd7d7caa0a5c17edf8a28d33679743fe45ec0b2b88a6c6e9eaa5e548a998cb830159b43c1789c562757e178e75d68dae0c93226fad9668fc3148799766a7719e94903ce7236960207c7b8939fe58916df6ccab99fe6f5f26bf688719a0e9be0ec838b67deb40f963023208a31e937707d4740eaa15d77848f7228652a2a492b5a218d4f09850b0d5c103ede7946b5dc26dee880c6132b5dfaae60deb54cbd12409eee0cbf998b8d0fdefe47a615bf99e3af1d6792b870befe80a37ecaeb8caf3c4b43156575770ab15fd70f8b5b0642b2c300f7cd35a29059342a7ef5ccbf435f22a61a6332e82f9682e99ec2cc9254cf2b6d7e7ef0bf3f35e64e7b37d70ab153c12e175710b4fec4336a9fae35eeebf260a939c4d6bda0e407b3704381f0769b005ed7d69cd7459a296101fcfe19d2aeb8f151b364f658220b0d666788620d7ab5a05c4630d988f683504eb861893d4534d22039ba9050afe7b3438039917936088379f93458670b4d32b81be92e9f7051155b17c17fb4cb4d0dfca9066f889b3660e589c5f760855e1d2ea478caf20b5c88c320d6d0c411152e2e84f49bb42d6066d69072744c102cb85d1f58e55252492a0789acf9aaee2eab78c9b90a44bdaef66c73e67ab6e5918f366ef7f7ec7ed650fec462f2512aaa5dd64bb0651db407aaedf425625a442ddfa1a79a2f8014ec19f9b7a25a1f1ba3c30772f1f66aed27c02f48a2f5efd1e578dd3839b42dd553cc89808d05207b6c9d69790f9171c40cd80ec5350b8a91ec5c3040d8ecf9f16a8c8b5cd04cfd56bbe5c88de83efb904af899ea449aaa4050a677cd26a9b89465e6412b577c3fb72bdd8211fc9258f45cdc9adde33f73cb851136eddced560caa2d9455f28ac370", - "c09a3ac918f98e63a682c5369c474a1139c741c97daafba3e4fa0f03bb32894d75edcc74448983c09dd8126936a856568e9b0f5c733ec55d5ceec982e7ef8f90b3a6707e191d9d67f4856fa4cc178f3842ef8d7b0cdab7d9388319ce2610e3280688c250216360c8035fbf670b5da9cc358c4e26b6e5182802062a94c767fa25998c14144cb5012b2cd8bf8bd032179bbb4990ce62f9fa021cf8b855b43890fed0ba0cd98c909cff516558bdd4f4470fdaff11540b41399232d138b73358c1b23d1e6a818bc6acd71f8b121dc32ff45b6683988b89f7ed0181b9d33f99b4f9cd30572d01b53a4867e21a668e2b7293ebb5a54de84a3401a3b6a1bc7dd3b66185fd67cea9185ea7ded76d6493c9bed62a90a427ae890a340912af0cbc1c878e81134b7c279b9f7f184511ca26e6ab531ae5518b2ee3118bd4b1f684a082488573a14d3b7eb61e914640830f54f9c314a63fb6373f692253f64a2b0897113fe2d7b430b7ed92fc52b7ec2c61bcbf68b23f4be491511674ca2dae823451e93bd51a0c8834386762e2813b15baa29bbdebd2b19bfa144711be4cc724f1270761a9441d9e0601cb279685995a16d769e47e2f7d1c763b61c8511b7c22f84ab4bd1da4e721bed43d1bb45b5739fad4fb97dff8648b9a5fb435ffc2e0f90d99843acedf7b6f049b7d4878730ff8b1354d5672a317d0f7591a2621017ee8f8fb02885aa24e7d46ed2a446bc92dd91fdd6369997fbf5eaa31e2038bb96274eab70d5cebdceb58478192ce89daa1a3b1a6837276c61c4425e95ec63d40ae29c1e7c1636f306fc74b5812a1708c57f5a2d6c1a561851dc81404a031b93a30023d22dfa179483a5716c9319c42e7e55433f276711b81c6079472ed25a6c14cbd0025134f14ef2c5ba2a3f9ba0ff8bf78c0fee61285aa1346a74b893c7984b61ce2b9b69d6dde7c7c76bdc574a6a950c8d47f01e11765271b3696b551df5b25738b7bbd7d0d3b23cf18899b9b792452a18e953b4bbdf151acca61b3f014504dba32851a34aae6875bdd51a29cb2520d6523ecbff81d608a3b37ba8f3ae5036f4a6eae8730f2f2de2e635bfd0210bc330c1f12c9cfe15880534b71257b5029f4399c6a8acce984df8fd4735cbdbc4bc86efe2bd5aeb5a9cb2d00d4f1cf230cbe1defbe9331ab6493a3840f72ed281cc11c4747290122cbc9d77ecb46361f9bdce3a90b3415a98a23273ec9860216f6eae9ba928920125f1411e58edf791b3edba6b7b5f06c537e14b599fb45489cef67c623fe185503029e5601a33718b87c640918333cdc1ef0d4a60a5f86c45ff7ba77f1a4b7f7103a3d83e80774540d16b9588b8b938788d51757f00edb09c6cf786534eb649a3c2c137136945cabb00da340b25002ba8742fb8475aac84bc7fb71af81d3f98896974aa9d54cd58288a522fe2c1c5fabcc3b9f8079e94b679ec868c712352e3a66d9478ab8f6602ea10edd583d103f37d882c26134404cff842b4fda42e194bd4c59465e4be576d54744466b8b4050e2883a1a546c59f893e7e42b7faa429bdf900897a724f4d122e7690afc298631d6f5fe2e6d0ea149e48490a7b77e13c52210a4459cf83d3a80868a9ea73ed3c64dc655216a07272aef7bee6c32c066410a6fc2f72a1dcdcc02b8b6d40f2c7c6dd0a58d1164dd5f17855e3ab5772d5ccce427106eab0a79be80dfe5ac5c2a77f3e6156707db34d1d42986b3b9a6f2873307fb21c60d64340094330930771a6089960b7657572998064ef0555605c51a2b29dbbd05dd7fad1e72bce17d17029547fa9ae679bb69e7789c79a9c3ed2679c6f8f2b6d4eb4698bfc8ab83d75f76d7dfaa9802cb7040aa929e06ce1fb88e041348a1c5f7ae744586c29eeb6abadd7229a4a07bc3209f7136325804ef5c79229e45a2cae35ae9634d5a31557cd83a12a0f19715a8072d0114d784d6805aa48358cff504f80cc0ea926cbc08ef4b94766df4164394fccc6af996160092b5684ce4d9c86f94093507a1bd31bc64ed3be9ff825d41f4b06446eaed64a1ed5d6f7514028951e68424f87c3d82d0a628a706729a1787b30d1416f447f3ae9c1da9b07d26410742e87dcf8ac6b157da31d269d7b92952082e84942c34ed6851a52c7bedbcdf01ea03f60247f533a841a51362cb01da262c98c07e217a791939ae08949eba996afac1798f76a8a5a8e30c24dec26cd16f87d1d4b1ca167afdd4c918b523af5ff65cbf5a400d3044651ff3053ae1e85359a603239cd27bd1dc8f72acdbd80b0c26f3edb792a4997046164fc4e7e215184a63b54578213efcdaac36e5e1cbc6760f27aaf860d3b0de3297d172835fb7b10bcbdaef927899203e2becd29d8ca58fa3868a54ffccaa062f88f2cac2a3f60485dee55777cf45b4cf2df0ec391fa559b5a3be88e20d15ce25b1e29b6208d24577f4c546229ae8e36827cff256bd7afedf1e81752f9b3827f814769da85cfc09d38dba652b2dc1012f5a7a6c7a1decb7ca48e5e8792a800faa2a56a5ee2ffd7df68ce2ecc4299948df0e617cbf95c2f61c03d3d3189278cda9383c4f2993c824d030a72e6567b88f0fc4b151c068dd6cdc2a10746e2d931830f0456fb3cbf6c8855951bd838b86f95915d6463edec3682cfd03850f3a7c922c72964aaefb3f0e4836bacb3eebeb7209d55437632a4f390e2c061b1c525056b18e29c7d831f719e2dd0ea9c675d68fbecfa83a9b3767e1c20e5431536c8cd9f1a9c661c73a090285eae60b608de43718cb9444cd50e72964ea4d5190310207c61944cfe8172b93c12efb2a3b09ec47021e9db2bd4b6c3085d0221db6ca1377d9c7f87678e2931dc80ca6428b160396e6d2437ada1174eb2fcd1acfc4acf0b446f67aed987a9a77cdeeda0c8e2a3053696de2bc5e1a0761ed9cbe639818b663b075a5080e0807a41eaa0acdf7cc5e74fe6b201bd9e65327d2e1c7576047c314ab0baf2557b54739e9e7da94b295e71695c9c2bd9f8fde8ca5607da3205cfb34059f575f6af9fe213808ca84bd62de771b8f9a3b1ea4b3b67ab4f47d913ebdb7277c5cf0969b1e8ab93b083a10bdc6377a3954839abf4ff7d5976338ba698e5d7ed27ab19d19b685bd002a758e4d0595de883bd5734be0fd6cdcadca64782ec1d65202956987f72d091cc383d3c0d2950c7601dec9b9867b2e27b20b2a467ef87dff99ce35ec06ac5b9bcc59780d5fa05a8e82ce9bf4d9e3113b4a5961755857d350d05fe2960762fe71088bee67deb5414ea74ca0f0c51fd0faede63a96166123c8e3be0457379eb321584658c1380579f64cef0de0716c7d0e0e4c1ca8e3837f0a8719db110c0d6b151b8eb2674468569df5485bd23bf6c8da16889ec57d7facc6565dae3ce4d2f7abc785fddd7bc261af45d08b8ab1f1e9fd484bf8899af693197b5e86f7cac4c2a1dda7d597b07151edb3328c5786ba89b5dda4001001aed0cc38e8a0bd9bc9e2020ef83de0e34475055fd0bd5e7dcda7cc86a78e4e98c74983275eb0e9ecba0bcb007466e47c75b4b14e4d18444f8caf692aada74b019ac0e13c89f5e6c52117110af6abe46908199a014058aa654823e38f7b5ba31a4eb4ef36fa8d6a0b112cdbd9f23aa1a3b55eb2ff4c667790310d5c34784a04ac32aa72e20c77fce364e1e9e22975cb963a28af3a0710aa180f70d0a6af7db3d74a3b62603ed2aa60fc970b83298131fbee7e09f08b840b6014cb172356c07645c314606c98e5421e43b7525d42b869c0def0519e0b012dd02522d737ae3bcb8210ddfb52f302f008b11b9e839c7cbe730d2cd02b95f40383b8a69b2b24119a83a55163603a6d61f7f4409ec61e58cd8bf06a541618e37426e28d69f6774c4bc0d7fb00fd0ceae9b57fb7c5e824ab9eba234d2b25e871ab2139d09e6ee73c860d87e527b5c90c0e90dfa63b6fa369e772f0ec6933a2adabc70aab3868250f28e5839607434177bffe5049b8d6e913f3a6cb4378ef1d9a614883099039b2d0041a6e16d4645747ce8202ad3ab9a171103bb0077f59eb69fa511f90287fe4aeb5286ab0de1d1504c8dd6b38cc7ebef1691d2aa113c57b2140c5fa9fe31c7a4d5602dd167134fd0b2e88059aeaa6e29d402a323e3c0d06f2f4b1f362322e713c08a6a0d93c14e196c0bd3d1d739ee502804df51628931256dcaa4ff7784bee595c0eadb3056556bc3903f1e1f8beab48b4d44c82d7ef83fc47663fe9baab205b75586710302db43ef8b27845af7fe356be23cacc8900d36e015a8e0191a632668c5e58a36942bd1d08a3da231d559ae26ff84c55c6a6c9e0abe01e5754ddc8f67c8751cc4cc253f70cbf0c9e461e41df707f74805cd928d2fe4890ac5d1e312ea96d1e6471d3a46b32814474ef9b1b5625b004e4e0bbb43950843b924602912da951391c3aac11a643a7f95657c46924ca445901c98ed806621503b377a1ab2dd7e073a8db00cb8a3d3a8f5b773fc2bac9f5a8626cdb4bde9d5884731f536ffdd6fa1e4c2492771aa9ff465c05fec71a503102ad248235e072014026a6cbfa898323b87cda214867cd5ecc136b7794733e9b2554f50985d54d2827c631ebc4823cd0a2a898a3e1f63818362c124a70baaa83456a5a5be2b6a05d8e12d0b73f57c8b1031f0a4e4b219fdec8f7063a6742378ee740b534f1040821670b30e07d95a7f1713d6d6efeae8605d0c31f0034bebe6dc66904f95907a347ded5e21ae808bbe708becc086daf820f01814ed6c4359b0830378d8e2384ddf0f17263bc9a61968e7965c036aa34e9dbe99817cdf03634f414047993e067636042bbd59674485a6665c46fb8af26f8a530eae4354d28d09f9a1b109b3e9866e4a63e256fb95936ce5ed82557293b8e51bb12228a6673f64562796192f6140d26dac94c1fc221f1eecc14628b7a4af1cef38771dafb0c38fa6ee428efe6d9f656262111432492c66e629a07bf4c8573054e700ec4a06db2a8d0dcfe994bbcb6ad0d6a0ca0ea1ae69f6e3f8ea3bcdd1503592f4a8ee8de5e44fcd45d0f79171752c3fdd389ccbb8d6711a6a4ea5c239ec23896b93a634d13dd07cef2532b4b5734398df3a3ff7d58b5d3ef439d763bc46b7959dfa88c16d41d882131e920878e73a46e503e947663400a07f40319a22a4c67cde1b38bb15563091ec7e9066020b9764f600a27d7cb348e2254b11aa4d2648ccef2927e30fb2ed183f3ffdab4e0270e999e99040757dcd213f331be3cf28c8e08f996d1f2943fc13461ebe1473c696f9bb4c4b7194c21982cf44a14d3f20c7e918babc1f87f6a17436ae2a00a5e05274d94de18376daeb1f2d627936e56bb055fef2a5c72783ac3dc88e070202618dc75679c3a8b4c63e310a1e03c46ea264901296a7261af76c77f3cc788b7cc624a9bbb26b6d819e9472dc9f263ce24d13fcd4f68cb3f98491c96032c386205190a43a44f3bd26b3788a4c6c702686a8141c631bfd7e1bfbe634b9657d15aa51edf6ba1b1adc8beb0e8438ebc114fde8ddf5e537330c8f832372fbf5b40d92759b64d22df731316dd3a09c1d41ae007f49b6d1cb420d1274af318200c4fb29b6ff8eb1127ce06fe638ed21c9db3f4194c8cd729c68d66fcf1ec48408c9148449ad178e8934be4f6a0cb4e74a148c8aedb807190aa1657d8f50774201d9d03e79bc50601bc16d9e1c548b20e7e0fbf0fd8915834ac0f9dad6adb4ec43592f78fb89de07462c786b15d9cef7f43bac6caea23804838289a8e434a5dd1ab41f7c3ebd82cada2586ef3a73e20d7d5edbe2399e147cf0d786914415db6dc7328180549e21aeb66d24086a5a41182cdf063493d8abe73104a80c5cba9786b5d0fb315ee5a1a823256cc24605857881c6811c8731ecd624f909d26b859f018f43a8e8e31b7afd63ef3affc9c991c1cc0e8bf44b6d3934019f9b0147b99b35332f96e0d189f51739bc4f0b08489cdc7ddd0fe5bb8a5a9a38d2ccb8dc8dfe5a6427aec04b12d7b4f315af7c35edccec611680a2a709ae51a3278d361cad639dcfcc9bcf021581897d965a206c0432aff5898f9b1bc044b7257910efd62dd18f7cadebdcb2d1dc67977fc7a94202f915328aa8f576e29544b41499d7015635ad62dc4f0288bb36aad477efb786aa815903089ba742eacd4663c3d27d7d0d1285f63ba55be87b5419852cb9bea3aeca6750dfa04b2e5582163d82d955fa678d9ddb386dac1c30fb2f92582231a55c658ee2b6c57c063e2ca123af36b16d50694e230e3b178190ae128b8f3995764479a1934b3af0b189490062bb05138e7b3f41da38ce74bb05b87065137cbc71b75e8354a4746db2b11e914ccbac9801c751af2cade68cb36ca578c00bc624e8bb7ec4ad6863e28673b05d5a07f4f60a7ba128203400bf0dd140bead14068d2d202ec82c9cd73a15e4cc61afab3e29eff5559740743b09ace55b17caaa4652263c522705d3f62fb9b392dfa27532da753900a892fe6920d80e66239afb43b49adefa1f151783738a7117ba907b624d363b99c52adf3a0fc108e6e0528a85afb0c72e8dd9685592d58317fc4ebd79a190db7922126947ac0813f938efb36ec3b1a85042693c00da5dcee33c0c3e56e89dd5ffd432313a2f8ec7490c3bc881d7db90cd6d474ad69aeb702f384664df1d0b0fc1c39fdc8b2358a5db4d4d1169969d4478efc9b2d5091495909d00f351f849386804db67e529eb803b154de685c507412963975662604eda8f9ddec2ba83c10984b0bb95c7f37d325fb9280b4a0624242af3d18c95c05a7d289833817e97bf1e3ca81cb39b7a082a152d3a4280ffbc982dafd95da3dac147922bbd2eaf2a6531de0e064c8aba012c1c304af25cc25b56d4953d6ca74fe826379" - ] - ], - "public_share": "2bdd8211fc9258f45cdc9adde33f73cbbbd2eaf2a6531de0e064c8aba012c1c3851136eddced560caa2d9455f28ac37004af25cc25b56d4953d6ca74fe826379", - "rand": "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f" - } - ], - "proofs": 2, - "shares": 2, - "verify_key": "000102030405060708090a0b0c0d0e0f" -} diff --git a/crates/daphne/src/pine/test_vec/mod.rs b/crates/daphne/src/pine/test_vec/mod.rs index 127120c54..bc98e1e7e 100644 --- a/crates/daphne/src/pine/test_vec/mod.rs +++ b/crates/daphne/src/pine/test_vec/mod.rs @@ -42,6 +42,7 @@ struct TestVec { l2_norm_bound: u64, num_frac_bits: usize, chunk_length: usize, + chunk_length_norm_equality: usize, shares: usize, proofs: usize, @@ -180,13 +181,13 @@ mod tests { #[test] fn run_64() { - let test_vec = - serde_json::from_str::(include_str!("01/Pine_Field64.json")).unwrap(); + let test_vec = serde_json::from_str::(include_str!("01/Pine64_0.json")).unwrap(); Pine::new_64( test_vec.l2_norm_bound, test_vec.dimension, test_vec.num_frac_bits, test_vec.chunk_length, + test_vec.chunk_length_norm_equality, ) .unwrap() .run_test_vec(&test_vec); @@ -194,13 +195,13 @@ mod tests { #[test] fn run_128() { - let test_vec = - serde_json::from_str::(include_str!("01/Pine_Field128.json")).unwrap(); + let test_vec = serde_json::from_str::(include_str!("01/Pine128_0.json")).unwrap(); Pine::new_128( test_vec.l2_norm_bound, test_vec.dimension, test_vec.num_frac_bits, test_vec.chunk_length, + test_vec.chunk_length_norm_equality, ) .unwrap() .run_test_vec(&test_vec); diff --git a/crates/daphne/src/pine/vdaf.rs b/crates/daphne/src/pine/vdaf.rs index 39519e631..f46e80339 100644 --- a/crates/daphne/src/pine/vdaf.rs +++ b/crates/daphne/src/pine/vdaf.rs @@ -131,8 +131,10 @@ impl Pine { fn helper_proof_share(&self, seed: &[u8; 16]) -> Vec { let mut xof = XofTurboShake128::init(seed, &self.flp.cfg.dst(USAGE_PROOF_SHARE)); xof.update(&[self.flp.cfg.num_proofs, 1]); // num_proofs, agg_id - xof.into_seed_stream() - .into_field_vec(self.flp.proof_len() * usize::from(self.flp.cfg.num_proofs)) + xof.into_seed_stream().into_field_vec( + self.flp_sq_norm_equal.proof_len() + + self.flp.proof_len() * usize::from(self.flp.cfg.num_proofs), + ) } } @@ -246,13 +248,21 @@ impl Pine { XofTurboShake128::init(&prove_seed, &self.flp.cfg.dst(USAGE_PROVE_RAND)); xof.update(&[self.flp.cfg.num_proofs]); xof.into_seed_stream().into_field_vec( - self.flp.prove_rand_len() * usize::from(self.flp.cfg.num_proofs), + self.flp_sq_norm_equal.prove_rand_len() + + self.flp.prove_rand_len() * usize::from(self.flp.cfg.num_proofs), ) }; + let (pr_sq_norm_equal, pr) = + prove_rands.split_at(self.flp_sq_norm_equal.prove_rand_len()); + + let mut proofs = Vec::with_capacity( + self.flp_sq_norm_equal.proof_len() + + self.flp.proof_len() * usize::from(self.flp.cfg.num_proofs), + ); + + proofs.append(&mut self.flp_sq_norm_equal.prove(&meas, pr_sq_norm_equal, &[])?); - let mut proofs = - Vec::with_capacity(self.flp.proof_len() * usize::from(self.flp.cfg.num_proofs)); - for (prove_rand, vf_joint_rand) in prove_rands + for (prove_rand, vf_joint_rand) in pr .chunks(self.flp.prove_rand_len()) .zip(vf_joint_rands.chunks(self.flp.joint_rand_len())) { @@ -369,6 +379,7 @@ impl Aggregator<16, 16> for Pine { ))) } }; + let (ps_sq_norm_equal, ps) = proofs_share.split_at(self.flp_sq_norm_equal.proof_len()); let wr_joint_rand_part = self.joint_rand_part( agg_id.try_into().unwrap(), @@ -425,19 +436,30 @@ impl Aggregator<16, 16> for Pine { xof.update(&[self.flp.cfg.num_proofs]); xof.update(nonce); xof.into_seed_stream().into_field_vec( - self.flp.query_rand_len() * usize::from(self.flp.cfg.num_proofs), + self.flp_sq_norm_equal.query_rand_len() + + self.flp.query_rand_len() * usize::from(self.flp.cfg.num_proofs), ) }; + let (qr_sq_norm_equal, qr) = + query_rands.split_at(self.flp_sq_norm_equal.query_rand_len()); - let mut verifiers_share = - Vec::with_capacity(self.flp.verifier_len() * usize::from(self.flp.cfg.num_proofs)); - for (proof_share, (vf_joint_rand, query_rand)) in - proofs_share.chunks(self.flp.proof_len()).zip( - corrected_vf_joint_rands - .chunks(self.flp.joint_rand_len()) - .zip(query_rands.chunks(self.flp.query_rand_len())), - ) - { + let mut verifiers_share = Vec::with_capacity( + self.flp_sq_norm_equal.verifier_len() + + self.flp.verifier_len() * usize::from(self.flp.cfg.num_proofs), + ); + + verifiers_share.append(&mut self.flp_sq_norm_equal.query( + &meas_share, + ps_sq_norm_equal, + qr_sq_norm_equal, + &[], + 2, + )?); + for (proof_share, (vf_joint_rand, query_rand)) in ps.chunks(self.flp.proof_len()).zip( + corrected_vf_joint_rands + .chunks(self.flp.joint_rand_len()) + .zip(qr.chunks(self.flp.query_rand_len())), + ) { verifiers_share.append(&mut self.flp.query( &meas_share, proof_share, @@ -495,9 +517,16 @@ impl Aggregator<16, 16> for Pine { *v += s1; } - for verifier in verifiers.chunks(self.flp.verifier_len()) { + let (v_sq_norm_equal, v) = verifiers.split_at(self.flp_sq_norm_equal.verifier_len()); + if !self.flp_sq_norm_equal.decide(v_sq_norm_equal)? { + return Err(VdafError::Uncategorized( + "squared norm equality proof check failed".into(), + )); + } + + for verifier in v.chunks(self.flp.verifier_len()) { if !self.flp.decide(verifier)? { - return Err(VdafError::Uncategorized("proof check failed".into())); + return Err(VdafError::Uncategorized("main proof check failed".into())); } } } @@ -602,7 +631,7 @@ mod tests { fn run_128() { let dimension = 100; let norm_bound = norm_bound_f64_to_u64(1000.0, 15); - let pine = Pine::new_128(norm_bound, dimension, 15, 4).unwrap(); + let pine = Pine::new_128(norm_bound, dimension, 15, 4, 10).unwrap(); let result = run_vdaf( &pine, &(), @@ -622,7 +651,7 @@ mod tests { fn run_64() { let dimension = 100; let norm_bound = norm_bound_f64_to_u64(1000.0, 15); - let pine = Pine::new_64(norm_bound, dimension, 15, 100).unwrap(); + let pine = Pine::new_64(norm_bound, dimension, 15, 4, 100).unwrap(); let result = run_vdaf( &pine, &(), @@ -644,7 +673,7 @@ mod tests { let dimension = 100; let reports = 5; let norm_bound = norm_bound_f64_to_u64(1000.0, 15); - let pine = Pine::new_128(norm_bound, dimension, 15, 100).unwrap(); + let pine = Pine::new_128(norm_bound, dimension, 15, 4, 100).unwrap(); let mut out_shares_0 = Vec::new(); let mut out_shares_1 = Vec::new(); @@ -678,7 +707,7 @@ mod tests { fn prep_failure_mutated_pub_share_wr_joint_rand() { let dimension = 100; let norm_bound = norm_bound_f64_to_u64(1000.0, 15); - let pine = Pine::new_128(norm_bound, dimension, 15, 4).unwrap(); + let pine = Pine::new_128(norm_bound, dimension, 15, 4, 5).unwrap(); let nonce = [0; 16]; let (mut public_share, input_shares) = pine.shard(&vec![1.0; dimension], &nonce).unwrap(); @@ -698,7 +727,7 @@ mod tests { fn prep_failure_mutated_pub_share_vf_joint_rand() { let dimension = 100; let norm_bound = norm_bound_f64_to_u64(1000.0, 15); - let pine = Pine::new_128(norm_bound, dimension, 15, 4).unwrap(); + let pine = Pine::new_128(norm_bound, dimension, 15, 4, 5).unwrap(); let nonce = [0; 16]; let (mut public_share, input_shares) = pine.shard(&vec![1.0; dimension], &nonce).unwrap(); @@ -718,7 +747,7 @@ mod tests { fn prep_failure_mutated_input_share_proof() { let dimension = 100; let norm_bound = norm_bound_f64_to_u64(1000.0, 15); - let pine = Pine::new_128(norm_bound, dimension, 15, 4).unwrap(); + let pine = Pine::new_128(norm_bound, dimension, 15, 4, 5).unwrap(); let nonce = [0; 16]; let (public_share, mut input_shares) = pine.shard(&vec![1.0; dimension], &nonce).unwrap(); @@ -738,7 +767,7 @@ mod tests { fn prep_failure_mutated_input_share_meas() { let dimension = 100; let norm_bound = norm_bound_f64_to_u64(1000.0, 15); - let pine = Pine::new_128(norm_bound, dimension, 15, 4).unwrap(); + let pine = Pine::new_128(norm_bound, dimension, 15, 4, 4).unwrap(); let nonce = [0; 16]; let (public_share, mut input_shares) = pine.shard(&vec![1.0; dimension], &nonce).unwrap(); diff --git a/crates/daphne/src/vdaf/pine.rs b/crates/daphne/src/vdaf/pine.rs index 6a02afa00..1882464d2 100644 --- a/crates/daphne/src/vdaf/pine.rs +++ b/crates/daphne/src/vdaf/pine.rs @@ -23,6 +23,7 @@ pub struct PineConfig { pub dimension: usize, pub frac_bits: usize, pub chunk_len: usize, + pub chunk_len_sq_norm_equal: usize, pub var: PineVariant, } @@ -33,6 +34,7 @@ impl std::fmt::Display for PineConfig { dimension, frac_bits, chunk_len, + chunk_len_sq_norm_equal, var, } = self; @@ -42,7 +44,7 @@ impl std::fmt::Display for PineConfig { write!( f, - "Pine{var_suffix}({norm_bound},{dimension},{frac_bits},{chunk_len})" + "Pine{var_suffix}({norm_bound},{dimension},{frac_bits},{chunk_len},{chunk_len_sq_norm_equal})" ) } } @@ -65,6 +67,7 @@ impl PineConfig { dimension, frac_bits, chunk_len, + chunk_len_sq_norm_equal, var, } = self; @@ -76,8 +79,14 @@ impl PineConfig { match var { PineVariant::Field128 => { - let vdaf = Pine::new_128(*norm_bound, *dimension, *frac_bits, *chunk_len) - .map_err(|e| VdafError::Dap(fatal_error!(err = ?e)))?; + let vdaf = Pine::new_128( + *norm_bound, + *dimension, + *frac_bits, + *chunk_len, + *chunk_len_sq_norm_equal, + ) + .map_err(|e| VdafError::Dap(fatal_error!(err = ?e)))?; shard_then_encode(&vdaf, gradient, nonce) } } @@ -96,13 +105,20 @@ impl PineConfig { dimension, frac_bits, chunk_len, + chunk_len_sq_norm_equal, var, } = self; match (var, verify_key) { (PineVariant::Field128, VdafVerifyKey::L16(verify_key)) => { - let vdaf = Pine::new_128(*norm_bound, *dimension, *frac_bits, *chunk_len) - .map_err(|e| VdafError::Dap(fatal_error!(err = ?e)))?; + let vdaf = Pine::new_128( + *norm_bound, + *dimension, + *frac_bits, + *chunk_len, + *chunk_len_sq_norm_equal, + ) + .map_err(|e| VdafError::Dap(fatal_error!(err = ?e)))?; let (state, share) = prep_init( vdaf, verify_key, @@ -134,6 +150,7 @@ impl PineConfig { dimension, frac_bits, chunk_len, + chunk_len_sq_norm_equal, var, } = self; @@ -143,8 +160,14 @@ impl PineConfig { VdafPrepState::Pine128(state), VdafPrepMessage::Pine128Share(share), ) => { - let vdaf = Pine::new_128(*norm_bound, *dimension, *frac_bits, *chunk_len) - .map_err(|e| VdafError::Dap(fatal_error!(err = ?e)))?; + let vdaf = Pine::new_128( + *norm_bound, + *dimension, + *frac_bits, + *chunk_len, + *chunk_len_sq_norm_equal, + ) + .map_err(|e| VdafError::Dap(fatal_error!(err = ?e)))?; let (out_share, outbound) = prep_finish_from_shares(&vdaf, agg_id, state, share, peer_share_data)?; let agg_share = VdafAggregateShare::Field128(prio::vdaf::AggregateShare::from( @@ -168,13 +191,20 @@ impl PineConfig { dimension, frac_bits, chunk_len, + chunk_len_sq_norm_equal, var, } = self; match (var, host_state) { (PineVariant::Field128, VdafPrepState::Pine128(state)) => { - let vdaf = Pine::new_128(*norm_bound, *dimension, *frac_bits, *chunk_len) - .map_err(|e| VdafError::Dap(fatal_error!(err = ?e)))?; + let vdaf = Pine::new_128( + *norm_bound, + *dimension, + *frac_bits, + *chunk_len, + *chunk_len_sq_norm_equal, + ) + .map_err(|e| VdafError::Dap(fatal_error!(err = ?e)))?; let out_share = prep_finish(&vdaf, state, peer_message_data)?; let agg_share = VdafAggregateShare::Field128(prio::vdaf::AggregateShare::from( prio::vdaf::OutputShare::from(out_share.0), @@ -197,13 +227,20 @@ impl PineConfig { dimension, frac_bits, chunk_len, + chunk_len_sq_norm_equal, var, } = self; match var { PineVariant::Field128 => { - let vdaf = Pine::new_128(*norm_bound, *dimension, *frac_bits, *chunk_len) - .map_err(|e| VdafError::Dap(fatal_error!(err = ?e)))?; + let vdaf = Pine::new_128( + *norm_bound, + *dimension, + *frac_bits, + *chunk_len, + *chunk_len_sq_norm_equal, + ) + .map_err(|e| VdafError::Dap(fatal_error!(err = ?e)))?; let agg_res = unshard(&vdaf, num_measurements, agg_shares)?; Ok(DapAggregateResult::F64Vec(agg_res)) } @@ -244,7 +281,8 @@ mod test { norm_bound: 32_000, dimension: 1_000, frac_bits: 20, - chunk_len: 50, + chunk_len: 10, + chunk_len_sq_norm_equal: 50, var: PineVariant::Field128, }), HpkeKemId::X25519HkdfSha256,