diff --git a/l1-contracts/slither_output.md b/l1-contracts/slither_output.md index 2113b6c1a044..ea176d821e02 100644 --- a/l1-contracts/slither_output.md +++ b/l1-contracts/slither_output.md @@ -258,9 +258,9 @@ solc-0.8.23 is not recommended for deployment Impact: Informational Confidence: Medium - [ ] ID-27 -Variable [Constants.LOGS_HASHES_NUM_BYTES_PER_BASE_ROLLUP](src/core/libraries/ConstantsGen.sol#L130) is too similar to [Constants.NOTE_HASHES_NUM_BYTES_PER_BASE_ROLLUP](src/core/libraries/ConstantsGen.sol#L123) +Variable [Constants.LOGS_HASHES_NUM_BYTES_PER_BASE_ROLLUP](src/core/libraries/ConstantsGen.sol#L132) is too similar to [Constants.NOTE_HASHES_NUM_BYTES_PER_BASE_ROLLUP](src/core/libraries/ConstantsGen.sol#L125) -src/core/libraries/ConstantsGen.sol#L130 +src/core/libraries/ConstantsGen.sol#L132 - [ ] ID-28 diff --git a/l1-contracts/src/core/libraries/ConstantsGen.sol b/l1-contracts/src/core/libraries/ConstantsGen.sol index 444c3de0dedd..ec837e7e6aba 100644 --- a/l1-contracts/src/core/libraries/ConstantsGen.sol +++ b/l1-contracts/src/core/libraries/ConstantsGen.sol @@ -97,7 +97,7 @@ library Constants { uint256 internal constant MAX_NOTES_PER_PAGE = 10; uint256 internal constant VIEW_NOTE_ORACLE_RETURN_LENGTH = 212; uint256 internal constant AZTEC_ADDRESS_LENGTH = 1; - uint256 internal constant CALL_CONTEXT_LENGTH = 7; + uint256 internal constant CALL_CONTEXT_LENGTH = 6; uint256 internal constant CONTENT_COMMITMENT_LENGTH = 7; uint256 internal constant CONTRACT_INSTANCE_LENGTH = 6; uint256 internal constant CONTRACT_STORAGE_READ_LENGTH = 2; @@ -112,9 +112,11 @@ library Constants { uint256 internal constant NULLIFIER_KEY_VALIDATION_REQUEST_LENGTH = 4; uint256 internal constant NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_LENGTH = 5; uint256 internal constant PARTIAL_STATE_REFERENCE_LENGTH = 6; - uint256 internal constant PRIVATE_CALL_STACK_ITEM_LENGTH = 213; - uint256 internal constant PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH = 210; - uint256 internal constant PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH = 202; + uint256 internal constant PRIVATE_CALL_STACK_ITEM_LENGTH = 212; + uint256 internal constant PUBLIC_CALL_STACK_ITEM_LENGTH = 205; + uint256 internal constant PUBLIC_FUNCTION_CALL_RESULT_LENGTH = 16; + uint256 internal constant PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH = 209; + uint256 internal constant PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH = 201; uint256 internal constant STATE_REFERENCE_LENGTH = 8; uint256 internal constant TX_CONTEXT_DATA_LENGTH = 4; uint256 internal constant TX_REQUEST_LENGTH = 8; diff --git a/noir-projects/aztec-nr/aztec/src/context/private_context.nr b/noir-projects/aztec-nr/aztec/src/context/private_context.nr index 99f5580d6207..35ee25adce95 100644 --- a/noir-projects/aztec-nr/aztec/src/context/private_context.nr +++ b/noir-projects/aztec-nr/aztec/src/context/private_context.nr @@ -23,8 +23,9 @@ use dep::protocol_types::{ MAX_NEW_NOTE_HASHES_PER_CALL, MAX_NEW_L2_TO_L1_MSGS_PER_CALL, MAX_NEW_NULLIFIERS_PER_CALL, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_DATA_READS_PER_CALL, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL, - MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL, - MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL, NUM_FIELDS_PER_SHA256, RETURN_VALUES_LENGTH + MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, + MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL, + NUM_FIELDS_PER_SHA256, RETURN_VALUES_LENGTH }, contrakt::{storage_read::StorageRead, storage_update_request::StorageUpdateRequest}, grumpkin_private_key::GrumpkinPrivateKey, hash::hash_args, header::Header, @@ -332,7 +333,6 @@ impl PrivateContext { is_delegate_call ); - assert_eq(item.public_inputs.call_context.side_effect_counter, self.side_effect_counter); assert_eq(item.public_inputs.start_side_effect_counter, self.side_effect_counter); self.side_effect_counter = item.public_inputs.end_side_effect_counter + 1; @@ -441,14 +441,19 @@ impl PrivateContext { let mut reader = Reader::new(fields); - // Note: Not using PublicCirclePublicInputs::deserialize here, because everything below args_hash is 0 and - // there is no more data in fields because there is only ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_SIZE fields! + // Note: _Not_ using PublicCirclePublicInputs::deserialize here + // the data returned by the oracle call is compressed and can't be used with ::deserialize + // read the relevant values manually and fill the rest with 0s let item = PublicCallStackItem { contract_address: AztecAddress::from_field(reader.read()), function_data: reader.read_struct(FunctionData::deserialize), public_inputs: PublicCircuitPublicInputs { call_context: reader.read_struct(CallContext::deserialize), args_hash: reader.read(), + // the counter that enqueued the call + start_side_effect_counter: reader.read() as u32, + // everything below is 0 (see comment above) + end_side_effect_counter: 0, return_values: [0; RETURN_VALUES_LENGTH], nullifier_read_requests: [ReadRequest::empty(); MAX_NULLIFIER_READ_REQUESTS_PER_CALL], nullifier_non_existent_read_requests: [ReadRequest::empty(); MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL], @@ -458,8 +463,6 @@ impl PrivateContext { new_note_hashes: [SideEffect::empty(); MAX_NEW_NOTE_HASHES_PER_CALL], new_nullifiers: [SideEffectLinkedToNoteHash::empty(); MAX_NEW_NULLIFIERS_PER_CALL], new_l2_to_l1_msgs: [L2ToL1Message::empty(); MAX_NEW_L2_TO_L1_MSGS_PER_CALL], - start_side_effect_counter: 0, - end_side_effect_counter: 0, unencrypted_logs_hash: [0; NUM_FIELDS_PER_SHA256], unencrypted_log_preimages_length: 0, historical_header: Header::empty(), @@ -473,7 +476,7 @@ impl PrivateContext { assert(contract_address.eq(item.contract_address)); assert(function_selector.eq(item.function_data.selector)); - assert_eq(item.public_inputs.call_context.side_effect_counter, self.side_effect_counter); + assert_eq(item.public_inputs.start_side_effect_counter, self.side_effect_counter); // We increment the sideffect counter by one, to account for the call itself being a side effect. self.side_effect_counter = self.side_effect_counter + 1; @@ -483,20 +486,6 @@ impl PrivateContext { assert(item.public_inputs.call_context.is_delegate_call == is_delegate_call); assert(item.public_inputs.call_context.is_static_call == is_static_call); - if (is_delegate_call) { - // For delegate calls, we also constrain the execution context address for the nested call to be equal to our address. - assert( - item.public_inputs.call_context.storage_contract_address.eq(self.inputs.call_context.storage_contract_address) - ); - assert(item.public_inputs.call_context.msg_sender.eq(self.inputs.call_context.msg_sender)); - } else { - // For non-delegate calls, we also constrain the execution context address for the nested call to be equal to the address we called. - assert(item.public_inputs.call_context.storage_contract_address.eq(contract_address)); - assert( - item.public_inputs.call_context.msg_sender.eq(self.inputs.call_context.storage_contract_address) - ); - } - self.public_call_stack_hashes.push(item.hash()); } } diff --git a/noir-projects/aztec-nr/aztec/src/context/public_context.nr b/noir-projects/aztec-nr/aztec/src/context/public_context.nr index cc5dc60d90ef..278a288f0bcb 100644 --- a/noir-projects/aztec-nr/aztec/src/context/public_context.nr +++ b/noir-projects/aztec-nr/aztec/src/context/public_context.nr @@ -4,8 +4,8 @@ use crate::{ }; use dep::protocol_types::{ abis::{ - global_variables::GlobalVariables, function_selector::FunctionSelector, - private_circuit_public_inputs::PrivateCircuitPublicInputs, + call_context::CallContext, function_data::FunctionData, global_variables::GlobalVariables, + function_selector::FunctionSelector, private_circuit_public_inputs::PrivateCircuitPublicInputs, public_call_stack_item::PublicCallStackItem, public_circuit_public_inputs::PublicCircuitPublicInputs, read_request::ReadRequest, side_effect::{SideEffect, SideEffectLinkedToNoteHash} @@ -279,17 +279,60 @@ impl PublicContext { is_static_call: bool, is_delegate_call: bool ) -> [Field; RETURN_VALUES_LENGTH] { - let side_effect_counter = self.side_effect_counter; - // TODO get next value from output of `call_public_function_internal` - self.side_effect_counter += 1; - - call_public_function_internal( + let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call; + let fields = call_public_function_internal( contract_address, function_selector, args_hash, - side_effect_counter, + self.side_effect_counter, is_static_call, is_delegate_call - ) + ); + + // TODO send back a fully formed PublicCallStackItem + let mut reader = Reader::new(fields); + let item = PublicCallStackItem { + contract_address: AztecAddress::from_field(reader.read()), + function_data: reader.read_struct(FunctionData::deserialize), + public_inputs: PublicCircuitPublicInputs { + call_context: reader.read_struct(CallContext::deserialize), + args_hash: reader.read(), + start_side_effect_counter: reader.read() as u32, + end_side_effect_counter: reader.read() as u32, + return_values: reader.read_array([0; RETURN_VALUES_LENGTH]), + // everything below is 0 + nullifier_read_requests: [ReadRequest::empty(); MAX_NULLIFIER_READ_REQUESTS_PER_CALL], + nullifier_non_existent_read_requests: [ReadRequest::empty(); MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL], + contract_storage_update_requests: [StorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL], + contract_storage_reads: [StorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL], + public_call_stack_hashes: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL], + new_note_hashes: [SideEffect::empty(); MAX_NEW_NOTE_HASHES_PER_CALL], + new_nullifiers: [SideEffectLinkedToNoteHash::empty(); MAX_NEW_NULLIFIERS_PER_CALL], + new_l2_to_l1_msgs: [L2ToL1Message::empty(); MAX_NEW_L2_TO_L1_MSGS_PER_CALL], + unencrypted_logs_hash: [0; NUM_FIELDS_PER_SHA256], + unencrypted_log_preimages_length: 0, + historical_header: Header::empty(), + prover_address: AztecAddress::zero(), + reverted: false + }, + is_execution_request: false + }; + reader.finish(); + + assert_eq(item.public_inputs.start_side_effect_counter, self.side_effect_counter); + self.side_effect_counter = item.public_inputs.end_side_effect_counter + 1; + + assert(contract_address.eq(item.contract_address)); + assert(function_selector.eq(item.function_data.selector)); + + assert(args_hash == item.public_inputs.args_hash); + + // Assert that the call context of the enqueued call generated by the oracle matches our request. + assert(item.public_inputs.call_context.is_delegate_call == is_delegate_call); + assert(item.public_inputs.call_context.is_static_call == is_static_call); + + // TODO track public call stack item hashes in the context + + item.public_inputs.return_values } } diff --git a/noir-projects/aztec-nr/aztec/src/oracle/public_call.nr b/noir-projects/aztec-nr/aztec/src/oracle/public_call.nr index c12ab74c510e..fc896e1be5bd 100644 --- a/noir-projects/aztec-nr/aztec/src/oracle/public_call.nr +++ b/noir-projects/aztec-nr/aztec/src/oracle/public_call.nr @@ -1,4 +1,7 @@ -use dep::protocol_types::{abis::function_selector::FunctionSelector, address::AztecAddress, constants::RETURN_VALUES_LENGTH}; +use dep::protocol_types::{ + abis::function_selector::FunctionSelector, address::AztecAddress, + abis::public_call_stack_item::PublicCallStackItem, constants::PUBLIC_FUNCTION_CALL_RESULT_LENGTH +}; #[oracle(callPublicFunction)] fn call_public_function_oracle( @@ -8,7 +11,7 @@ fn call_public_function_oracle( _side_effect_counter: u32, _is_static_call: bool, _is_delegate_call: bool -) -> [Field; RETURN_VALUES_LENGTH] {} +) -> [Field; PUBLIC_FUNCTION_CALL_RESULT_LENGTH] {} unconstrained pub fn call_public_function_internal( contract_address: AztecAddress, @@ -17,13 +20,16 @@ unconstrained pub fn call_public_function_internal( side_effect_counter: u32, is_static_call: bool, is_delegate_call: bool -) -> [Field; RETURN_VALUES_LENGTH] { - call_public_function_oracle( +) -> [Field; PUBLIC_FUNCTION_CALL_RESULT_LENGTH] { + let fields = call_public_function_oracle( contract_address, function_selector, args_hash, side_effect_counter, is_static_call, is_delegate_call - ) + ); + + // TODO: this should be a PublicCallStackItem, but it's big and blows up the bytecode size + fields } diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/abis/call_context.nr b/noir-projects/noir-protocol-circuits/crates/types/src/abis/call_context.nr index f68934ddb324..f9ddc85abcf4 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/abis/call_context.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/abis/call_context.nr @@ -14,8 +14,6 @@ struct CallContext { is_delegate_call : bool, is_static_call : bool, - - side_effect_counter : u32, } // docs:end:call-context @@ -28,7 +26,6 @@ impl CallContext { assert(self.function_selector.to_field() == 0); assert(self.is_delegate_call == false); assert(self.is_static_call == false); - assert(self.side_effect_counter == 0); } } @@ -41,7 +38,6 @@ impl Eq for CallContext { & call_context.function_selector.eq(self.function_selector) & (call_context.is_delegate_call == self.is_delegate_call) & (call_context.is_static_call == self.is_static_call) - & (call_context.side_effect_counter == self.side_effect_counter) } } @@ -60,7 +56,6 @@ impl Serialize for CallContext { self.function_selector.to_field(), self.is_delegate_call as Field, self.is_static_call as Field, - self.side_effect_counter as Field, ] } } @@ -74,7 +69,6 @@ impl Deserialize for CallContext { function_selector: FunctionSelector::from_field(serialized[3]), is_delegate_call: serialized[4] as bool, is_static_call: serialized[5] as bool, - side_effect_counter: serialized[6] as u32, } } } diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_call_stack_item.nr b/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_call_stack_item.nr index 58fd5f06ccce..feb03f83fe88 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_call_stack_item.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_call_stack_item.nr @@ -75,6 +75,6 @@ fn empty_hash() { let hash = item.hash(); // Value from private_call_stack_item.test.ts "computes empty item hash" test - let test_data_empty_hash = 0x134b57e317f1554b9c4f547e617338fcc8ff04c6d96a278f1752b26a462c5d25; + let test_data_empty_hash = 0x25dcfe64d56a1575de78bc4474e0093cba37f28a664b81121c38fc89bdf0a8d5; assert_eq(hash, test_data_empty_hash); } diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_circuit_public_inputs.nr b/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_circuit_public_inputs.nr index 240726539eff..624f9a4e08e6 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_circuit_public_inputs.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_circuit_public_inputs.nr @@ -177,6 +177,6 @@ fn empty_hash() { let hash = inputs.hash(); // Value from private_circuit_public_inputs.test.ts "computes empty item hash" test - let test_data_empty_hash = 0x2b5ba01a6b73b68b4f44196e2dea49afd4076333e2dee8eddc9186e080f18201; + let test_data_empty_hash = 0x2745ec62624afeb19b86af3d440db1f8c3432e1d17a074c75cb8f44999fd3fae; assert_eq(hash, test_data_empty_hash); } diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/abis/public_call_stack_item.nr b/noir-projects/noir-protocol-circuits/crates/types/src/abis/public_call_stack_item.nr index 0c6eea6e7c81..039d4c39d089 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/abis/public_call_stack_item.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/abis/public_call_stack_item.nr @@ -1,12 +1,13 @@ use crate::abis::{function_data::FunctionData, public_circuit_public_inputs::PublicCircuitPublicInputs}; use crate::address::AztecAddress; -use crate::constants::GENERATOR_INDEX__CALL_STACK_ITEM; -use crate::traits::Hash; +use crate::constants::{GENERATOR_INDEX__CALL_STACK_ITEM, PUBLIC_CALL_STACK_ITEM_LENGTH}; +use crate::traits::{Hash, Serialize, Deserialize}; +use crate::utils::reader::Reader; struct PublicCallStackItem { contract_address: AztecAddress, - public_inputs: PublicCircuitPublicInputs, function_data: FunctionData, + public_inputs: PublicCircuitPublicInputs, // True if this call stack item represents a request to execute a function rather than a // fulfilled execution. Used when enqueuing calls from private to public functions. is_execution_request: bool, @@ -45,6 +46,44 @@ impl PublicCallStackItem { } } +impl Serialize for PublicCallStackItem { + fn serialize(self) -> [Field; PUBLIC_CALL_STACK_ITEM_LENGTH] { + let mut fields: BoundedVec = BoundedVec::new(); + + fields.push(self.contract_address.to_field()); + fields.extend_from_array(self.function_data.serialize()); + fields.extend_from_array(self.public_inputs.serialize()); + fields.push(self.is_execution_request as Field); + + assert_eq(fields.len(), PUBLIC_CALL_STACK_ITEM_LENGTH); + + fields.storage + } +} + +impl Deserialize for PublicCallStackItem { + fn deserialize(serialized: [Field; PUBLIC_CALL_STACK_ITEM_LENGTH]) -> Self { + let mut reader = Reader::new(serialized); + let item = Self { + contract_address: reader.read_struct(AztecAddress::deserialize), + function_data: reader.read_struct(FunctionData::deserialize), + public_inputs: reader.read_struct(PublicCircuitPublicInputs::deserialize), + is_execution_request: reader.read() as bool, + }; + + item + } +} + +impl Eq for PublicCallStackItem { + fn eq(self, other: Self) -> bool { + self.contract_address.eq(other.contract_address) & + self.function_data.eq(other.function_data) & + self.public_inputs.eq(other.public_inputs) & + self.is_execution_request.eq(other.is_execution_request) + } +} + mod tests { use crate::{ abis::{ @@ -55,6 +94,23 @@ mod tests { address::AztecAddress, constants::GENERATOR_INDEX__CALL_STACK_ITEM, traits::Hash }; + #[test] + fn serialize_smoke() { + let item: PublicCallStackItem = dep::std::unsafe::zeroed(); + let serialized = item.serialize(); + let deserialized = PublicCallStackItem::deserialize(serialized); + assert(item.eq(deserialized)); + } + + #[test] + fn serialize_exec_request_smoke() { + let mut item: PublicCallStackItem = dep::std::unsafe::zeroed(); + item.is_execution_request = true; + let serialized = item.serialize(); + let deserialized = PublicCallStackItem::deserialize(serialized); + assert(item.eq(deserialized)); + } + #[test] fn compute_call_stack_item_request_hash() { let contract_address = AztecAddress::from_field(1); @@ -69,7 +125,7 @@ mod tests { let call_stack_item = PublicCallStackItem { contract_address, public_inputs, is_execution_request: true, function_data }; // Value from public_call_stack_item.test.ts "Computes a callstack item request hash" test - let test_data_call_stack_item_request_hash = 0x02e15f4157b5e2cb0a7ec3dfec18c6812ef16e1da319b364e5a11e337dfca414; + let test_data_call_stack_item_request_hash = 0x0a408fba24eff0b40c9a7d4cb2ff1a8f651fbd7eeaeedc3488b6d2fcfede33e0; assert_eq(call_stack_item.hash(), test_data_call_stack_item_request_hash); } @@ -87,7 +143,7 @@ mod tests { let call_stack_item = PublicCallStackItem { contract_address, public_inputs, is_execution_request: false, function_data }; // Value from public_call_stack_item.test.ts "Computes a callstack item hash" test - let test_data_call_stack_item_hash = 0x0f22ddeca80a2c6f455165f1d2d1950c5e1b772bdc312742d1de089b424f0f5f; + let test_data_call_stack_item_hash = 0x2cd2eb79283cc7c9b22ccfafd6a200f153e8114e3f7d6adf527bfa76db59d26b; assert_eq(call_stack_item.hash(), test_data_call_stack_item_hash); } } diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/abis/public_circuit_public_inputs.nr b/noir-projects/noir-protocol-circuits/crates/types/src/abis/public_circuit_public_inputs.nr index 2d2edbf8b221..edd8f4dc0ec6 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/abis/public_circuit_public_inputs.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/abis/public_circuit_public_inputs.nr @@ -149,6 +149,6 @@ fn empty_hash() { let hash = inputs.hash(); // Value from public_circuit_public_inputs.test.ts "computes empty item hash" test - let test_data_empty_hash = 0x083ac560a513d670a7f50f0a3052d42cb9816b7b643e62025b8278652ad637ab; + let test_data_empty_hash = 0x19de99e09b94a6372bc831be78d7107c0eb9e2836a308f37dc47147a5e11bb2c; assert_eq(hash, test_data_empty_hash); } diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr index 1209bd5d764f..f989cf540de6 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr @@ -146,7 +146,7 @@ global VIEW_NOTE_ORACLE_RETURN_LENGTH: u64 = 212; // LENGTH OF STRUCTS SERIALIZED TO FIELDS global AZTEC_ADDRESS_LENGTH = 1; -global CALL_CONTEXT_LENGTH: u64 = 7; +global CALL_CONTEXT_LENGTH: u64 = 6; global CONTENT_COMMITMENT_LENGTH: u64 = 7; global CONTRACT_INSTANCE_LENGTH: u64 = 6; global CONTRACT_STORAGE_READ_LENGTH: u64 = 2; @@ -161,13 +161,17 @@ global L2_TO_L1_MESSAGE_LENGTH: u64 = 2; global NULLIFIER_KEY_VALIDATION_REQUEST_LENGTH = 4; global NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_LENGTH = 5; global PARTIAL_STATE_REFERENCE_LENGTH: u64 = 6; -global PRIVATE_CALL_STACK_ITEM_LENGTH: u64 = 213; +global PRIVATE_CALL_STACK_ITEM_LENGTH: u64 = 212; +global PUBLIC_CALL_STACK_ITEM_LENGTH: u64 = 205; +// simplified form of a PublicCallStackItem +global PUBLIC_FUNCTION_CALL_RESULT_LENGTH: u64 = 16; + // Change this ONLY if you have changed the PrivateCircuitPublicInputs structure. // In other words, if the structure/size of the public inputs of a function call changes then we should change this // constant as well PRIVATE_CALL_STACK_ITEM_LENGTH -global PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH: u64 = 210; +global PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH: u64 = 209; // Change this ONLY if you have changed the PublicCircuitPublicInputs structure. -global PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH: u64 = 202; +global PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH: u64 = 201; global STATE_REFERENCE_LENGTH: u64 = 8; // 2 for snap + 8 for partial global TX_CONTEXT_DATA_LENGTH: u64 = 4; global TX_REQUEST_LENGTH: u64 = 8; // 2 + TX_CONTEXT_DATA_LENGTH + FUNCTION_DATA_LENGTH diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/tests/private_circuit_public_inputs_builder.nr b/noir-projects/noir-protocol-circuits/crates/types/src/tests/private_circuit_public_inputs_builder.nr index b73d01c659d8..5bb13f6608ae 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/tests/private_circuit_public_inputs_builder.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/tests/private_circuit_public_inputs_builder.nr @@ -66,8 +66,7 @@ impl PrivateCircuitPublicInputsBuilder { portal_contract_address, function_selector: function_data.selector, is_delegate_call: false, - is_static_call: false, - side_effect_counter: 0 + is_static_call: false }; public_inputs.call_context = call_context; public_inputs.args_hash = args_hash; @@ -92,7 +91,7 @@ impl PrivateCircuitPublicInputsBuilder { private_call_stack_hashes: self.private_call_stack_hashes.storage, public_call_stack_hashes: self.public_call_stack_hashes.storage, new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage, - start_side_effect_counter: self.call_context.side_effect_counter, + start_side_effect_counter: 1, end_side_effect_counter: 10, encrypted_logs_hash: self.encrypted_logs_hash, unencrypted_logs_hash: self.unencrypted_logs_hash, diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/tests/public_call_data_builder.nr b/noir-projects/noir-protocol-circuits/crates/types/src/tests/public_call_data_builder.nr index f10579958e5b..21b1f86633f0 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/tests/public_call_data_builder.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/tests/public_call_data_builder.nr @@ -42,7 +42,6 @@ impl PublicCallDataBuilder { function_selector: function_data.selector, is_delegate_call: false, is_static_call: false, - side_effect_counter: 0, // needed? }; PublicCallDataBuilder { diff --git a/yarn-project/circuit-types/src/mocks_to_purge.ts b/yarn-project/circuit-types/src/mocks_to_purge.ts index 98e96552c962..23645b85ec02 100644 --- a/yarn-project/circuit-types/src/mocks_to_purge.ts +++ b/yarn-project/circuit-types/src/mocks_to_purge.ts @@ -200,13 +200,13 @@ export function makePublicCallRequest(seed = 1): PublicCallRequest { functionSelector: makeSelector(seed + 3), isStaticCall: false, isDelegateCall: false, - sideEffectCounter: 0, }); return new PublicCallRequest( makeAztecAddress(seed), new FunctionData(makeSelector(seed + 0x1), false), childCallContext, parentCallContext, + 0, makeTuple(ARGS_LENGTH, fr, seed + 0x10), ); } @@ -225,7 +225,6 @@ export function makeCallContext(seed = 0, storageContractAddress = makeAztecAddr makeSelector(seed + 3), false, false, - 0, ); } diff --git a/yarn-project/circuits.js/src/constants.gen.ts b/yarn-project/circuits.js/src/constants.gen.ts index 7a355ba42fce..3a53f7e6a2ae 100644 --- a/yarn-project/circuits.js/src/constants.gen.ts +++ b/yarn-project/circuits.js/src/constants.gen.ts @@ -82,7 +82,7 @@ export const GET_NOTE_ORACLE_RETURN_LENGTH = 23; export const MAX_NOTES_PER_PAGE = 10; export const VIEW_NOTE_ORACLE_RETURN_LENGTH = 212; export const AZTEC_ADDRESS_LENGTH = 1; -export const CALL_CONTEXT_LENGTH = 7; +export const CALL_CONTEXT_LENGTH = 6; export const CONTENT_COMMITMENT_LENGTH = 7; export const CONTRACT_INSTANCE_LENGTH = 6; export const CONTRACT_STORAGE_READ_LENGTH = 2; @@ -97,9 +97,11 @@ export const L2_TO_L1_MESSAGE_LENGTH = 2; export const NULLIFIER_KEY_VALIDATION_REQUEST_LENGTH = 4; export const NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_LENGTH = 5; export const PARTIAL_STATE_REFERENCE_LENGTH = 6; -export const PRIVATE_CALL_STACK_ITEM_LENGTH = 213; -export const PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH = 210; -export const PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH = 202; +export const PRIVATE_CALL_STACK_ITEM_LENGTH = 212; +export const PUBLIC_CALL_STACK_ITEM_LENGTH = 205; +export const PUBLIC_FUNCTION_CALL_RESULT_LENGTH = 16; +export const PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH = 209; +export const PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH = 201; export const STATE_REFERENCE_LENGTH = 8; export const TX_CONTEXT_DATA_LENGTH = 4; export const TX_REQUEST_LENGTH = 8; diff --git a/yarn-project/circuits.js/src/contract/__snapshots__/contract_class.test.ts.snap b/yarn-project/circuits.js/src/contract/__snapshots__/contract_class.test.ts.snap index 677772fdfe77..71293eed506c 100644 --- a/yarn-project/circuits.js/src/contract/__snapshots__/contract_class.test.ts.snap +++ b/yarn-project/circuits.js/src/contract/__snapshots__/contract_class.test.ts.snap @@ -9,18 +9,18 @@ exports[`ContractClass creates a contract class from a contract compilation arti "selector": { "value": 2381782501 }, - "bytecode": "0x1f8b08000000000000ffed9d779c14c5baf77b6141647645ccd9c5848ae232647681c19c30a38888b02c2b28b0443163961ccc19094ace02028a80184ecec993f4783ce9de7bcef9dc3fee7bef1b7c6fd74c3d777f5b542f3b6bd7f09b9deacfa776aa9fadeee75bbf7eba3a5577fd330882a22033b50cd319c1fe93fc3fa57fcbbfd9d425c67595bbe42cca13ce1679c2d9324f388bf384b3559e70b6ce13ce43f284b34d9e701e1a23a7626b11d49fe2e66deb40d7b8191379a669491e685a9a679a1e96079ab60bf2a38d3a3c4f38dbe709e71179c279649e701e95279c47e709e73179c2796c9e701e97279cc7e709e70979c279629e709e94279c27e709e72979c2796a9e7096e50967873ce13c2d4f384fcf13ce33f284f3cc3ce13c2b46ce4ec0d951ff9ead7fcfd1bfe7ea5f297b9efe3d5fff76d6752cd6f31728ae30a9873449e37f5dc3d42d4cddc3d4c3f85fcf30f50a53ef30f5d1ff2bd3ffab08536598fa86a95f98fa6b0d0684e9c2305d14a68bc37449982e0dd36561ba3c4c5784e9ca305d15a6abc334304cd784e9da305d17a6ebc37443986e0cd34d611a14a69bc3744b980687e9d6300d31586e0bd3d030dd1ea66161ba234cc3c334224c55611a19a6ea308d0a534d98ee0cd3e8308d09d35d61ba3b4c63c3342e4ce3c3541ba609619a18a649619a1ca629619a1aa67bc2342d4cf786e9be30dd6f68f640981e0cd343617ad8e09c1ea647c2f468981e0bd3e3617a224c4f86e9a9303d1da619619a19a659619a1da639619a1ba679619a1fa605615a18a667c2f46c989e0bd3f3617a214c2f86e9a530bd1ca657c2f46a985e0bd3eb617a43b3c88eb0284c6f8669719896846969989685e9ad30bd1da6e5615a11a695615a15a6d5615a13a6b5615a17a6f561da10a68d61da14a6cd617a274c5bc2b4354cdbc2f46e98b6876947987686e9bd30bd1fa65d61fa204cbbc3b4274c7bc3f46198f685e9a3307d1ca64fc2f46998be15a66f87e93b61fa6e98be17a6ef1b9aff204c3f0cd38fc2f4636dfb89fefda92e2bf7ef7e16a69febfc2ff4ef2ff5efaff4ef67c632bf0ed36f0cdb6fc3f43bc3f6fb307daef35fe8df3fe8df2ff5ef1ff5ef57faf74ffaf7cffaf72ffaf7affaf76ffaf75ff4efbfeadf7fd3bf7fd7bfffd0bfff0cd3e60e997c9ba06e4a0531b551dd6ad2cf7e44fc8e41fd4969d152ff4f7ecbb4bd58cfcbaf68d74acfb732ecadf57c6b633d6df47c1bc3de5ecfb737ec47eaf9230dfbd17afe68c37eac9e3fd6b09fa1e7cf007b22807bc3daae6c2db5a9086c12af2dc0d64adb5a82adb5ac0e6c87685b2bb0c9f66d0db643b5ed10b0b5d5b636604b68dba1a265984ab42d15c4152be523d47a4be35eaf7e5e7658fcbc23d57adb39e23d3c7ede516abded1df0aaf83842afeb70889b23b5ad3dd88ed2b623c076b4b61d09b663b4ed28b01dab6d4783ed386d3b066cc76bdbb1603b41db8e03db89da763cd84ed2b613c076b2b69d08b653b4ed24b09daa6d2783ad4cdb4e019b6e728353c1769ab69581ed746deb00b633b4ed34b09da96da783ed2c6d3b036cd2fe9e0936395f3c4bdb54db7168112ca3edd26ea59791361b6ce7487b0db673a5ad065b2769a7c1761ef816dbf9d0d688adb3b649bba5fed747e753415cfb49b246adb722eef5866b56ebed1bff7ad3cf1cfb05755aa7c04f0568d55fe763ecd7d4057d17e9247ec45e0cf92ba1ac94133de4d823ecea1853a9f3fd1b58ae8fb15c2994a9b4d43f15c45bffbe064f5f83b915e4ddc46cd7ae3e661b3d651db383a1ac197b721ed41c637620703888d99e3e661b3d651db33550d68c3d39176e8e317b1b703888d92a37319b2cf7319bb96f1604f6d893eba1e618b3638023fe98edee63b6f153d631fb189435634fae899b63cc4e038ef863b667953f3768f49475cc2e80b266ecc9fd99e618b34f02878398adf1ed6ca3a7ac63f60d286bc69edc2b6c8e31fb2c70c41fb3bd1dc56c571fb341e6196810d8634fee5b37c7985d0c1cf1c7ec487f7fb6f153d631bb03ca9ab127cf509a63ccaed779f59ce127fa39c34960fba9b69d0cbcf1c776757747b19df4b19de91b1204f61895e779cd31b63fd07915c7bf80fe0862fba5b67500dbafb4ed34b07da66da743bd1cec03557e1f68f494f53ef01b286bc6b23c5b6e8efbc08f80c341cc56fb986df49475ccfe0dca9ab127fd1c9a63ccfe1e381cc46c8d8fd9464f59c7ec7f425933f6ced6f9e618b3d2d7549d2f7ca1cf17ce05db1fb4ad13d8bed4b6f3c0f6476d3b1f6c5f695b67b0fd49db2e00db9fb5ad1c6c7fd1b62e60fbabb625c1f6376deb0ab67fd1b66e60fb576deb0eb67fd3b61e60fbbbb6f504db3fb4ad17d8fea96dbdb54d3def92be5772deda06f85341bcdb56fa5dcaba65be4b0e7cb7337cb7cba1eff686eff616df4907be13e043a622633e05f9a45b9ef252e0415fdde2f7d555d5bd6bd0f8ba77039eee0eea9e001f8de1e90e3c3de2e749f7ffed19ff7ad3dbb8aba169027c75857af57250af22f025eb9679f1570a366c5b7b59187bc7cf982c025fb26e99ef0d8c62c3b65edeb992fd471d0f3b16d5f13ad897d2e744e24fbe5b261cddc02e65aee850c7d649b395c0fff1b8d7c3b0398acb745c882f59b7cc8bbf12a84f8fdc33261bcbd8dd6074d54614812f59b7f75db71d248fc77107d73ad6364d7c57e4c0776fc37737c337b69d3235746ceb0dccb15f73ea635b65fceb2dc7eb13b936143f78fe80d77071d5097dcbb5a1f8117b31e4af29aa2b2be5440f6987855dc5b26c4b643797eb652c570a652a2cf54f05f1d6bfd2e0a93498d536b9088e850ef687740c54181c32df0db4ab8cd0ae02b49332678376aedab33e068fccf7001e69c77a028fab6ba2289e5c5c8f1dc8379ec3e2f5b3fc1fcf035c6daf2e06a3ccdbb6576f60b49dab38b89e69f05ca53b308aad0ff07475a459d476ed4ae2db41aca4db23f121e7e6b2fff600bb94e9ad5fa8536de55dd056ba88118c47991a7bcd1bff764aa6afc1bb67c183dbcec175551747f1588ef76fbe0ee28d35b35dea6e6815758fc7555bded5e09179f1e7993db367f6cc9ed9337b66cfec993db367f6cc9ed9337b66cfec993db367f6cc9e999f199f2761bf2d29d78384d1ecffe6ea3e7ffafb877a5db27ef55ce7ff38ed0f962cc7fe31d20fe25ca3cec550a6b4455dd9ff0ffdc1cce754d847b2875bedd2db12fb63a6605efc615f2bdc960cfd9dca62f39d1ce9ea799bfa0698fa8ea6d9f7b387455317fd9f51d3224353ec8f7f9ec1a3e2b4b2651d9b8b677fd93e8b44ad241fe7b3bdd2c01eebf16f9764bd67d62d82faed071e675cf5df91b65a9e975718be8ba1cc892deab68df4ad923186bb1acb61bf1f59b72c732ed82b8d75b7d3cb0a472b63fd3d615929730ab4a97b5ad469e6a0ad4c66db771d9f9bc77f1cce3cc7ef9a054f17e071d1ce383adf28c77d20eee7f866ff34db798c94c1be7d0efa5536d8df49fc7966cfec993db367f6cc9ed9337b66cfec993db367f6cc9ed9337b66cfec993db367e667563ce6b3567cbfb61b09638efa3ea49f67c8b7ca64fde9ef05b7a8f3ebfa399c3c73ea64d419df1dfd678bbab29b75be24d8bfbf43d4b674f57d8aa86d29fef0db33f82cc8c573dd22f025eb4e5ab4907c596cbe33cff15d8c0d21cff1bb1aba76b368ea6a7fc567aca829eeafdd0d1e7c361af56d9fa46173d977282a2ec41fee4b49b0491edf8f76b19df15862f6eb117ff8fcfa3b5adb7681ab6d9f2c77d96ee0775352c1fef18ddf53f921b47d3fd679ecc3817d47beb0fc5fa6869e538b7eaace0ebeaf595e04eb92ed6bfbb6e700608dc977175c57914e030c0d8a21ff798bbab2524eca8ad6c2aef611f9060cb29bcb7537962b8532fd2cf54f05f1d6dffcd66a7f83596d939f419c7d01c77f576d52bf088dce058da48ce36f365afb579afd0ab11d6d6d949165f15b747f85362aaaffa8ed18e0fa3826ebb61dc7cce34263fa79167a3fadff82f622ee7e5aff053184fdb40263fd9d60fdc2d53a883eb64899ff67acdf3c279765b01fd8ffec27f03d97a4ce67734e7eb0aeaf6ce7e4b85c54dd15337e072d152333c604b2e079829469abb5966d5619c1dddbb26c69c4b2a295f9adb092607ffddc7c672db3cff737ea22718ddf20973247425ddc9cb764ce015d7d532e057552f9a4a5ae52e638d8d74ed0f9046c27dc6fcfb1fc5fa686ce01710cf70be3af737afb5e049c29f083be2f06d6987c7741df720e287ec45e0cf9b35bd6959572a287682dec6a1f91f328643797ab30962b8532032cf54f05f1d6ff4283e74283596d939321cece817ee8aedaea01111a75028da40cde53b47d07d476afc3d5fb1b51e752f8fe92797e85c74937e74df6f358f3be9aed1ca193c18fe7083da19d4d58ca9af70be5781967bf617c57a227f8c577255c7dbbb90fe89682793c2f3898be5d7cc756f98b1a33a14f0e7c478d99900bdfed0ddfed73e8db6bee3567d2dcc11804e9f7cff09ba56a6ae8bc14c72590e55a00a38bb11c1241fd6f8f1f8811c77790e55a02a38be343b6df3eef098cb25c3130ba78b714c7df680c237e63188ff3c2e8e05bb15d9afaad58bca7d71a1899ded9c467538700a38bf3e2a6beab87e7f36de0d7d5b8445db3604c02a32c772830bab8378ed7328d61c4eb2259ae2d30ba788695edf84ef8ed79bcb7ec92b1a163bbe3be28c96cefbd54bae569f05c037d3b18d730ad05de673c90167dddf23478ee83be1ddcf74b6b81e30c1e480b7c36e862dcc34450ff39dc8178f0f9a52c770430a61c31f6cf8231058cff73af18180738624c65c1380018c57e14303ab8ff9a661c900523dea794e58e06c68b1c315e9805e345c028cb1d038c2eeea526c06f63182f064659ee5860bcc411e3c559305e028cb2dc71c078a923c64bb260bc141865b9e381f132478c9766c1781930ca722700e3e58e182fcb82f1726094e54e04c62b1c315e9e05e315c028cb9d048c573a62bc220bc62b8151963b1918af72c47865168c5701a32c770a305eed88f1aa2c18af064659ee54601ce888f1ea2c180702a32c57068cd738621c9805e335c028cb7500c66b1d315e9305e3b5c028cb9d068cd73962bc360bc6eb8051963b1d18af77c4785d168cd703a32c770630dee088f1fa2c186f004659ee4c60bcd111e30d5930de088cb2dc59c0789323c61bb360bc09186fb4300e72c47853168c838051963b0f186f8e9f317d2d3d280bc69b81e796f879d29add9c05cf2d6e79d2dfd5bbd9e2ebd6f87da5b7c5e0a0f175bf157886c4cf93de16b766c1230ca5b01c6a765bfc8c69cd8664c1781bf00c8d9f27add96d59f00c05cd6eb368767bfc8c69cd8666c1783bf00c8b9f27add9ed59f00c03cd6eb7687647fc8c69cd8665c17807f00c8f9f27add91d59f00c0fea34bbc3a2d988f819d39a0dcf827104f054c5cf93d66c44163c55a0d9088b6623e3674c6b569505e348e0a98e9f27add9c82c78aa41b39116cd46c5cf98d6ac3a0bc651c053133f4f5ab35159f0d48066a32c9add193f635ab39a2c18ef049ed1f1f3a435bb330b9ed1a0d99d16cdc6c4cf98d66c74168c6380e7aef879d29a8dc982e72ed06c8c45b3bb1d31de9505e3dd169eb8bf937d97c5d73847751f1b34beeec2500acb613f89f18e18c765c1381e186539ec2751eb88717c168cb5c028cb251c3336d44fa2167c4f88df77ba5daa0d1aafcf04b73c0df69340df131d69312168bc1613ddf234d84f027d4f72a4c5c4a0f15a4c029ec90eb448808fc6f00843292c87fd24a638629c9c05e3146094e5b09fc454478c53b2609c0a8cb21cf693b8c711e3d42c18ef0146590efb494c73c4784f168cd3805196c37e12f73a629c9605e3bdc028cb613f89fb1c31de9b05e37dc028cb613f89fb1d31de9705e3fdc028cb613f89071c31de9f05e303c028cb613f89071d313e9005e383c028cb613f89871c313e9805e343c028cb613f89871d313e9405e3c3c028cb613f89e98e181fce82713a30ca72d84fe211478cd3b3607c04186539ec27f1a823c647b2607c141865b9bb1d333674fdf26833f71d75add2dc7d475d973477df3ece7d9c17826f1fe73ece0bc1b78f731fe785e0dbc7b98ff342f0ede3dcc77921f8f671eee3bc107cfb38f771cee4fb3107be13e043a622633e0579612885e5eef68ccd9a1179cae2e329c7baa3afc709eafeb885a7c851ddd1d713047517867c637c2c0f18711ff73a369dd1b18ec9a6322a9e271df13c9105cf93c0f394239e27b3e0790a789e8e9f271d534f65c1230ca5b0dcdd79c0f8581e307a1dbd8e4c8c5ec7c2d1d1337a46cfe8190f06633eb4e19e312fe231d95446c533237e9eb4664f67c133033493e56e71cb986c2aa3e299193f4f5ab31959f0cc04cd66583473c0986c2aa3e299153f4f5ab39959f0cc02cd665a3473c0986c2aa3e2991d3f4f5ab35959f0cc06cd66593473c0986c2aa3e299133f4f5ab3d959f0cc01cd665b3473c0986c2aa3e2991b3f4f5ab33959f0cc05cde6583473c0986c2aa3e299173f4f5ab3b959f0cc03cde65a3473c0986c2aa3e2991f3f4f5ab37959f0cc07cde6593473c0986c2aa3e259103f4f5ab3f959f02c00cde65b346365bc3b0f181fcb0346c73a269bcaa878163ae2599005cf42e079c611cfc22c789e019e67e3e749c7d43359f00843292c77771e303e96078c5e47af2313a3d7b17074f48c9ed13366c7f8781e30fa6ded1959191d5c5f35f80ecd33cddc77d43b34cddd77d43b34cdddb78f731fe785e0dbc7b98ff342f0ede3dcc77921f8f671eee3bc107cfb38f7715e08be7d9cfb382f04df3ece7d9c17826f1fe73ece0bc1b78f731fe785e0dbc7b98ff342f0ede3dcc77921f8f671eee3bc107cfb38f7715e08be7d9cfb382f04df3ece7d9c17826f1fe73ece0bc1b78f731fe785e0dbc7b98ff342f0ede3dcc77921f8f671eee3bc107cfb38f7715e08be7d9cfb382f04df3ece7d9c33f97e2e7edfc96cbf31f31cf0b8f8e68da37a96abf53eafd7f5758cfa29ad5e30b47ac6d0aa14ca3c0ffabde040bf22f02beb9679f1972d7347026647be938785eb3814ea2f3e1e33f450fe5f7454f7a8b6fec566ee3baaad6feebea3dafae6eedbc7b98ff342f0ede3dcc77921f8f671eee39cc537e65b0575e7edf2fd53b58e9774be58cf4bf9c7c12e65261f92f96d17f87dc8856fbf0ff9634521f8f671eee3bc107cfb38f7715e08be7d9cfb382f04df3ece7d9c17826f1fe73ece0bc1b78f731fe785e0dbc7395f9c633c54e6802730788206781690f14c25e3994dc6339a8c672819cfb5643c1791f13c48c6d38d8c670219cf48329e9bc978ae24e3b9808ca71f19cf34329ede643c73c878ee22e3798a8c671819cff5643c9790f13c4cc69324e39944c6338a8ce756329eabc97852643cf791f1f424e339878c671c19cf5c329eb3c9788693f13c4dc6732319cf61643cedc8782e23e379828ce77c329e0a329e47c878e693f14c21e3b9938ce736329e72329e6bc8783a93f15c48c6f300194f77329e79643cb5643c33c878aac8780691f19c4bc67305194f4b329ebe643c0bc978ee21e3e943c633868ca71319cfed643cd791f15c4cc6f310194f57329e89643c33c978aac9780693f15c45c6d39f8ce75e329e5e643c63c9783a92f1dc41c67303194f2ebe679a0d4f09194f2919cfa5643c8f92f14c27e3e942c633998c6716194f0d19cf10329e81643c03c878ee27e3e941c6339e8c670419cf4d643c4f92f11c4ec6d39e8ce772329e22029e44b0ff182609f8ff73606b612cab3efb3aa743ddff5fd6f616b0cc2b3adfd2b2ee97c126df927dc5b22ceaf432d425a5f3e5df6c4aeb84be52302ffe4a80e315129ecbc978da93f11c4ec6f32419cf4d643c23c878c693f1f420e3b99f8c670019cf40329e21643c35643cb3c8782693f17421e3994ec6f32819cfa5643ca5643c25643ccf91f1dc40c67307194f47329eb1643cbdc878ee25e3e94fc6731519cf60329e6a329e99643c13c978ba92f13c44c6733119cf75643cb793f17422e31943c6d3878ce71e329e85643c7dc9785a92f15c41c6732e19cf20329e2a329e19643cb5643cf3c878ba93f13c40c67321194f67329e6bc878cac9786e23e3b9938c670a19cf7c329e47c8782ac878ce27e379828ce732329e76643c8791f1dc48c6f33419cf70329eb3c978e692f18c23e339878ca72719cf7d643c29329eabc9786e25e31945c633898c2749c6f33019cf25643cd793f10c23e3798a8ce72e329e39643cbdc978a691f1f423e3b9808ce74a329e9bc9784692f14c20e3e946c6f32019cf45643cd792f10c25e3194dc6339b8c672a19cf02329e4a0bcf738e78e47d7759b7cc3f47e2dbc1762857eb7dd5519d5ed3eb6aa5d72bfce2af18ca4c6f9bf955cf3f7059e132bf4f80efe6bc061abde6a82eb23d8a8ced83be5f72e4db1c9f4fe65f6ae6bedb19bedb1588eff686eff605e2dbc7b98ff342f0ede3dcc77921f8f671eee39cc9b7836b83247e274da622633e0579bc5e70f17d3947f5ac779df8758cfa29ad5e37b432afad4aa1ccaba0dfeb0ef4b35d7bcabcf8cb96b9230133c64559106f5cbc117f9d92aadfe1a1a0eb1b86be58af458e348d3a862c6ae6bea38e21cddd77d431a4b9fbf671eee3bc107cfb38f7715e08be7d9cfb3867f2fda6cec778dd588e3ed4f345b91e7813fc2ed1f9a218fdaa752dd6eb2ad6eb168e25609732ff1b9e6bfa7ddeeff371f9f6c7361fe785e0dbc7b98ff342f0ede3dcc77921f8f671eee3bc107cfb38f7715e08be99e3dccc4b7ff1b381cd557ffea858ccc5bb0407d377542c3677df51b1d8dc7dfb38f771cee47ba903df09f02153437dfc9602cf62073c8eea997eb6b1cca8d373469d4aa10c1ee39739a86711f89575cbfc32e091a912785cc44163b639f22c20e3994ac6339b8c673419cf50329e6bc9782e22e379908ca71b19cf04329e91643c3793f15c49c67301194f3f329e69643cbdc978e690f1dc45c6f31419cf30329eebc9782e21e379988c2749c633898c671419cfad643c5793f1a4c878ee23e3e949c6730e19cf38329eb9643cc3c9789e26e3b9918ce730329e76643c9791f13c41c6733e194f0519cf23643cf3c978a690f1dc49c6731b194f3919cf22329e6bc8783a93f15c48c6f300194f77329e79643cb5643c33c878aac8780691f19c4bc67305194f4b329ebe643c0bc978ee21e3e943c633868ca71319cfed643cd791f15c4cc6f310194f57329e89643c33c978aac9780693f1bc4ec67315194f7f329e7bc9787a91f18c25e3e948c6730719cf0d643c25643ca5643c9792f13c4ac6339d8ca70b19cf64329e59643c35643c43c8780692f10c20e3b99f8ca70719cf78329e11643c3791f13c49c67338194f7b329ecbc9788a087812c1feeffe27e0ffaf834dde517f0e6c6fe9fc62b0b5b0f868a9f3cbc056acf3b28e43c2f46287fdd78d3ab97a2f1f7da5605efc9500c75b243c9793f1b427e3399c8ce749329e9bc8784690f18c27e3e941c6733f19cf00329e81643c43c8786ac8786691f14c26e3e942c6339d8ce751329e4bc9784ac9784ac8786e20e3b9838ca72319cf58329e5e643cf792f1f427e3b98a8ce775329ec1643cd5643c33c9782692f17425e379888ce762329eebc8786e27e3e944c633868ca70f19cf3d643c0bc978fa92f1b424e3b9828ce75c329e41643c55643c33c8786ac978e691f17427e379808ce742329ece643cd790f12c22e32927e3b98d8ce74e329e29643cf3c9781e21e3a920e3399f8ce709329ecbc878da91f11c46c6732319cfd3643cc3c978e692f18c23e339878ca72719cf7d643c29329eabc9786e25e31945c633898c2749c6f33019cf25643cd793f10c23e3798a8ce72e329e39643cbdc978a691f1f423e3b9808ce74a329e9bc9784692f14c20e3e946c6f32019cf45643cd792f10c25e3194dc6339b8c672a19cf02329ecadcf024d5bbedd2d73a002e9c52905f063c8b1ce8e3a89ee5f85d83af635cafd2ea6d43abd70dad4aa1cc52d0ef6d07fa15815f59b7cc8bbf7c64563c8feabced3b108f92308a6d915b9ef47efb68507f6a68bf7d1b785cb46b8eea99debf961b757ad4a2bb94c1585deea09eb67d47e697c376c83766c5f384ce0b6b02ca3d41c228b6656e79d2fbd71341fda9a1fd6b39f0b8687f1cd533bd7fad30eaf48445772983b1bac2413d6dfb8eccaf80ed906fcc8ae7499d17d604947b9284516c6fbbe5e996803acbd4d0feb502785cb43f8eea99debf561a757ad2a2bb94c1585de9a09eb67d47e657c276f0cc9ed9c6ac78e4d98eb026a0dc53248c625bee94a75b7902ea2c5343edd84ae071d1ce3bd23ddd8ead32eaf49445772983b1baca413d6dfb8eccafb2f82e0be2d5627523b4586de1599d632dc45fb6cc4bf390d9ebec758e62f63a7b9da398bdce5ee72866afb3d7398ad9ebec758e62f63a7b9da398bdce5ee72866afb3d7398ad9ebec758e62f63a7b9da398bdce5ee72866afb3d7398ad9ebec758e62f63a7b9da398bdce5ee72866afb3d7398ad9ebec758e62f63a7b9da398bdce5ee72866afb3d7398a994167c523dfae14d604947b9a84516c2bdcf2a4df0b7a3aa83f1519f329c8af069e950ef47154cf741ff235469d9eb6e82e6570ff5ae3a09eb67d47e6d7c076c88679551e327b9d9bc6ac7866e8bcb026a0dc0c1246b1ad74cb936ec76604f5a786dab135c0e3a29d7754cf743bb6d6a8d30c8bee5206f7afb50eea69db77647e2d6c07cfec996dcc8a67a6ce0b6b02cacd246114db6aa73cc9f4fb8d3383fa5343edd85ae071d1ce3bd23ddd8ead33ea34d3a2bb94c1585de7a09eb67d47e6d7c176c88679551e327b9dbdce51cc5e67af7314b3d7d9eb1cc5ec75f63a47317b9dbdce51cc5e67af7314b3d7d9eb1cc5ec75f63a47317b9dbdce51cc5ee7c2d159f1ccd279614d40b959248c625be394a76bfab9c3aca0fed4d0738775c0b336769ecc730707baa79f3bac37ea34cba2bb94c1fd6bbd837adaf61d995f0fdba1b933afca43661f1bb961f6b1e199a3987d6c78e628661f1b9e398ad9c786678e62f6b1e199a3987d6c78e628661f1b9e398ad9c786678e62f6b1e199a3987d6c78e628661f1b9e398ad9c786678e62f6b1e199a3987d6c78e6286686d8503cb3755e5813506e3609a3d8d6bae5497ff76076507f6aa8dfce7ae059e7401f47f54cf7dbd960d469b645772983fbd70607f5b4ed3b32bf01b68367f6cc3666c53347e7853501e5e690308a6d9d5b9e743b3627a83f35d48e6d001e17edbca37aa6dbb18d469de65874973218ab1b1dd4d3b6efc8fc46d80e9ed933db9815cf5c9d17d604949b4bc228b6f56e79d2edd8dca0fed4503bb611785cb4f38eea996ec73619759a6bd15dca60ac6e72504fdbbe23f39b603b7866cf6c63563cf3745e5813506e1e09a3d836b8e54926a0ce3235d48e6d021e17edbca37aa6dbb1cd469de65974973218ab9b1dd4d3b6efc8fc66d80ef9c6ac78e6ebbcb026a0dc7c1246b16d74cb93debfe607f5a786f6afcdc0e3a2fd7154cff4fef58e51a7f916dda50cc6ea3b0eea69db7764fe1dd80ef9c6ac7816e8bcb026a0dc021246b16d72cb93debf1604f5a786f6af7780c745fbe3a89ee9fd6b8b51a70516dda50cc6ea1607f5b4ed3b32bf05b643be312b9e853a2fac0928b79084516c78bc58e888a7d4e029b56871b07cabf90a9d2fd1bf09f87f0530ba6a0f171a8c328f318ebcae356b67f0b433343b98be55fd2b75fe30fd8bdbab121819b657bb1c68d6dee0696f6876307d2b2dfaeafce1fa17b7575f6064d85eed81c741fbdc2d61f0a8a9a1f38d2d8ef57154cff4f9c6d6c0ae3b1e87a40c1ebbb73aa8a7ed5c42e6b7c276f0cc9ed9c6ac7806e9bcb026a0dc201246b1e175cab6f879ba250c1e3535d48e6d73ac8fa37aa6dbb17703bbeedb40772983b1faae837a16815f59b7ccbf0bdb211be65579c8ec756e1ab3e219acf3c29a8072834918c5b61578b6c7cfd32d61f0a8a9a1766cbb637d1cd533dd8eed08ecba6f07dda50cee5f3b1cd4b308fccaba657e076c876c9857e521b3d7b969cc8a6788ce0b6b02ca0d216114dbbbc0b333769ecc7840c8a3a686dab19d8ef57153cf4c3bf65e60d77d27e82e6570ff7acf413d8bc0afac5be6df83ede0993db367f6cc9ed9337b66cfec993db367f6cc9ed9337b66cfec993db367f6cc9e999b59f10cd579614d40b9a1248c62db013cefc7ce9379ee803c6a6ae8b9c3fb8ef57153cfcc73875d815df7f741772983b1bacb413d8bc0afac5be677c176f0cc9ed9337b66cfec993db367f6cc9ed9337b66cfec993db367f6cc9ed9337b66cfcccdac7886e9bcb026a0dc301246b1bd073c1fc4cfd32d61f0a8a9a1e70e1f38d6c7513dd3cf1d760776dd3f00dda50cc6ea6e07f52c02bfb26e99df0ddb61b767f6cc1666c5335ce7853501e58693308a6d17f0ec899d27f3fc1479d4d4503bb6c7b13e6eea9969c7f60676ddf780ee52066375af837a16815f59b7ccef85ed900df3aa3c64f63a7b9da398bdce5ee72866afb3d7398ad9ebec758e62f63a7b9da398bdce5ee72866afb3d7398ad9ebec758e62f63a7b9da398bdce85a3b3e2a9d279614d40b92a1246b1ed069e0f63e7e95a9e3078d45464cca720ffa1637ddcd433f3dc615f60d7fd43d05dcae0feb5cf413d8bc0afac5be6f7c17668eeccabf290d9c7466e987d6c78e628661f1b9e398ad9c786678e62f6b1e199a3987d6c78e628661f1b9e398ad9c786678e62f6b1e199a3987d6c78e628661f1b9e398ad9c786678e62f6b1e199a3987d6c78e628661f1b9e398a992136144fb5ce0b6b02ca5593308a6d2ff07c143f4fb784c1a3a622633e05f98f1cebe3a89ee97e3b1f0776dd3f02dda50cee5f1f3ba86711f89575cbfcc7b01d3cb367b6312b9e1a9d17d60494ab216114db3ee0f9247e9e64c2e0515343edd8278ef57154cf743bf66960d7fd13d05dca60ac7eeaa09e45e057d62df39fc276c83766c5335ae7853501e54693308aed63e0711077699e528347e63f21f0ade66b75be44ffe2f6aa054686ed559a03cdda193ced0ccd0ea66f55ff093a7f98fec5ed35011819b657bb1c68d6dee0696f6876307d2b2d26eafce1fa17b7d7446064d85eed73a0d9c16c0f0fe6be7d30e3d46b7ef0342f3a889a171d44cd8bbce6549a3b38be24f1581600034e29c87f0a3cdf8e9f277d5feed32c78be0d3cdf8a9fa78ba37a96abf57e07d8e35aafd2eabb86569f1a5a95421964f8ae03fd8ac0afac5be6c59f67f6cc51cc786e2bac0928f70909a3d8be053c2eda0d55f7f3f5ba64fdadc2f4d951757e5d3c2fc17bc5adf47a8543fc154399896575657fa7d94ae0ffb2dd547df6193647ef3077b13db79379f15712e4ecde6d83f792510b17cf9bb23deeefb3f07c1d1f4f39eee7e86bafa3ba67f3ec6faf8527c6ba77897aeeb927febaa7db8fce7a5db27eb58ffefb514e35ef86fb9eb41f9d8d3a17439981657565ff03da0f5b5be17adf94737273df6c11d4b567c255a6ede633a1afb55dca7d04e5b1cda9d0bfb87f56405d5db58b51f798b05d34db6e97da9bcf254ddfa5a0cb47a49ad99e53a08e9516ee4a026e8cc75cee67b26edb33b24a434736cd705b7f64d1b1af85bb2f0137e37eddd7d0914db303edd7832cdc8308b819f7eb41868e6c9a1d68bf1e6ce11e4cc0cdb85f0f367464d3ec40fbf5100bf710026ec6fd7a88a1239b6607daaf875ab887127033eed7430d1dd9343bd07e3dccc23d8c809b71bf1e66e8c8a6d981f6ebe116eee104dc8cfbf5f0a0be8e6c9a1d68bfaeb27057117033eed755868e6c9a1d68bfaeb67057137033eed7d5868e6c9a1d68bfaeb170d7107033eed735868e6c9a1d68bf1e6de11e4dc0cdb85f37b6df3eeb7e5d6be1ae25e066dcaf6b0d1dd9343bd07e3dc1c23d81809b71bf9e60e8c8a6d981f6eb8916ee8904dc8cfbf544434736cd6cfbb5a37709b37eb7f163a7fa64c698fe380b9e0f81c7454c398a837247fd5cd27d53f7185a7d6c68856377ec05fd1cf48569f09b04e2cf337b66cfec993db367f6cc9ed9337b66cfec993db367f6cc9ed9337b66cfec993d333f337e97119faf48b98f4818c586cfa45cdce75775bf40af4bd6df2a4c038fa9f3bb3776bfc9f222c35f0a38c45f319439e1d4bab2d76bb69260ffed866371e3b6dc1d7b1d32dbd28c7f99177f25509f3dc0e3e0fdfc34cf5e8367af450b7cef341edfc9916e344e96abefe31d1ad46de7dd467d50d30f62f75f5fd32243d30f1cfb4e04f5b7a730e094823cf2b87836eca89ee9b66097512753e35228d311eab9cb413d8bc0afac5be677018f4c2d80c7550c06064f60d147a64a329ea9643ca3c978ce20e3194ac6731c19cfb5643c8792f15c44c6f320194f37329e09643c23c9784e25e3b9998ce748329e2bc9782e20e32926e3e947c6338d8ca73719cf5d643c6791f10c23e3398f8ce704329eebc97812643c9790f13c4cc69324e39944c6338a8ca70319cfad643c4793f15c4dc6d39a8c2745c6731f194f4f329e73c878c691f19c4dc6339c8ce724329e1bc9780e23e36947c6731919cf23643c15643ce793f14c21e3b9938ce774329edbc878cac9788e25e3b9868ca73319cf85643c6dc8781e20e3e94ec6534bc65345c6730a19cf20329e73c9788e20e3b9828ca725194f5f329e7bc878fa90f18c21e3e944c6732619cfed643cc793f15c47c6d3968ce762329e3d643c0f91f17425e39948c6534dc6b38f8ca78c8c673019cf51643c5791f1b422e3e94fc6732f194f2f329eb1643c1dc978ee20e339918ce706329e12329e52329e4bc978a693f17421e3994cc65343c6731a19cf10329e63c8780692f11c42c633808ce77e329e1e643ce3c9784690f19c4cc6731319cfe1643cedc9782e27e32922e04904fb7f8b2901ffdf0b36f966d087606b61599f3ca796f2eab8b8b8c3feeb6e6159f7071606d4e97da84b4ae7cbbfd994d6097da5605efc9500c707243c9793f1b427e3399c8ce726329e93c9784690f18c27e3e941c6733f19cf00329e43c8780692f11c43c633848ce734329e1a329ec9643c5dc878a693f15c4ac6534ac65342c6730319cf89643c7790f17424e3194bc6d38b8ce75e329efe643cadc878ae22e3398a8c6730194f1919cf3e329e6a329e89643c5dc9781e22e3d943c67331194f5b329eebc8788e27e3b99d8ce74c329e4e643c63c878fa90f1dc43c6d3978ca72519cf15643c4790f19c4bc633888ce714329e2a329e5a329eee643c0f90f1b421e3b9908ca73319cf35643cc792f19493f1dc46c6733a19cf9d643c53c878ce27e3a920e379848ce732329e76643c8791f1dc48c6731219cf70329eb3c978c691f19c43c6d3938ce73e329e14194f6b329eabc9788e26e3b9958ca70319cf28329e49643c49329e87c9782e21e34990f15c4fc6730219cf79643cc3c878ce22e3b98b8ca73719cf34329e7e643cc5643c1790f15c49c6732419cfcd643ca792f18c24e39940c6d38d8ce741329e8bc8780e25e3b9968ce738329ea1643c6790f18c26e3994ac65349c6d3c2e0c1ffab77c3f6e8bc7c3ba818fe3f49772e6fa7d72565e419b1ba57f19e6153f5dde9a8beef0575530ae677427d85fd3de079cf11cffb068fe9bb04f295a0d90ec3a618b73b62dc6130cafc766014fd7600cf0e473c3b0d1ed37709e4fb8266ef1a36c5b8cd11e3bb06a3cc6f0346d1ef5de079d711cf7683c7f45d02f941a0d956c3a618b73862dc6a30cafc166014fdb602cf56473cdb0c1ed37709e4078366ef1836c5b8d911e33b06a3cc6f0646d1ef1de079c711cf1683c7f45d02f921a0d926c3a618373a62dc6430cafc466014fd3601cf26473c9b0d1ed37709e48782661b0c9b625cef887183c128f3eb8151f4db003c1b1cf16c34784cdf25901f069aad336c8a71ad23c67506a3ccaf0546d16f1df0ac73c4b3dee0317d97407e3868b6c6b029c6d58e18d7188c32bf1a1845bf35c0b3c611cf5a83c7f45d02f92ad06c9561538c2b1d31ae3218657e25308a7eab806795239ed5068fe9bb04f2d5a0d90ac3a618973b625c6130cafc726014fd5600cf0a473c2b0d1ed37709e46b40b3b70d9b627ccb11e3db06a3ccbf058ca2dfdbc0f3b6239ee5068fe9bb04f2a341b365864d312e75c4b8cc6094f9a5c028fa2d039e658e78de32784cdf2590af05cd961836c5b8d811e3128351e61703a3e8b704789638e2596af098be4b203f01347bd3b029c6458e18df3418657e11308a7e6f02cf9b8e78161b3ca6ef12c84f04cdde306c8af175478c6f188c32ff3a308a7e6f00cf1b8e7816193ca6ef12c8df0836e1ed03b6d774be37d85ed5f95e607b45e77b82ed659def01b69774be3bd85ed4f96e607b41e7bb82ed799d4f82ed399def02b66775be1fd89ed1f9fe605ba8f329b02dd0f901609baff317826d9ece5f04b6b93a7f31d8e6e8fc25609badf397826d96ce5f06b6993a7f39d866e8fc15607b5ae7af04db533a7f15d89ed4f9abc1f684ce0f04dbe33a7f0dd81ed3f96bc1f6a8ce5f07b6bb75fe7ab0dda2f33780ed639dbf096c9fe8fccd60fb54e76f05dbb774fe36b07d5be76f07db7774fe0eb07d57e74780ed7b3a3f126cdfd7f95160fb81cedf09b61feafc18b0fd48e7ef02db8f757e2cd87ea2f3e3c0f6539d1f0fb69fe9fc24b0fd5ce72783ed173a3f056cbfd4f9a960fb95cedf03b6cf747e1ad87eadf3f782ed373a7f1fd87eabf3f783ed773aff00d87eaff30f82ed739d7f086c5fe8fcc360fb83ce4f07db973aff08d8fea8f3d2aea976f64f3a5f16c4dbce7e15d44d65e05bfca9327fd6f9d6461959b618ca9ca53b14aa671cea5ba6d20e4bbbac6cd20ebf063669875f059bb4c3af804ddae197c126edf04b609376f845b0493bfc02d8a41d7e1e6cd20e3f073669879f059bb4c3cf802da5f30bc126edf002b0493b3c1f6cd20ecf039bb4c373c126edf01cb0493b3c1b6cd20ecf029bb4c333c126edf00cb0493bfc34d8a41d7e0a6cd20e3f093669879f009bb4c38f834ddae1c7c026edf0a3609376f86eb0493b7c0bd8647ff90a6cd2367f0c36699b3f019bb4cd9f824ddae66f814ddae66f834ddae6ef804ddae6ef824ddae6ef814ddae6ef834ddae61f804ddae61f824ddae61f814ddae61f836d9cceff046cd236ff146cd236ff0c6cd236ff1c6cd236ff026cd236ff126cd236ff0a6cd2367f0636699b7f0d36699b7f0336699b7f0b36699b7f0736699b7f0f36699b3f079bb4cd5f804ddae63f80ed119d97b6ba0dd8e459b19acabfe184e3f0b4005fc2920ae26dfb714a411eeb2e532519cf1c329ed1643c2f91f19c41c633948ce738329e43c978de20e39940c6b3908c671919cf52329ed7c9784e25e3d940c6b39e8ce748329ef7c8787692f15c40c6534cc6338b8ce705329eb3c8788691f19c47c67302194f828c673e19cf12329ec5643caf92f17420e35947c6b3968ce768329e1d643cdbc9785a93f17c45c633838ce71c329ee7c878ce26e3194ec6731219cf61643cedc8782ac878ce27e3994bc6f32619cf22329e97c9784e27e35943c6b39a8ca79c8ce758329e77c978b691f17426e36943c6f314194f2d19cf33643c55643ca790f10c22e339978ce708329e96643c7dc9786e21e3994dc6f322194f27329e33c9785691f1ac24e3f9928ce778329ead643c5bc878da92f1ec21e39948c6b3808ca79a8ce735329e7d643c65643c83c9788e22e36945c6f33119cf4c329ee7c9785690f12c27e339918ce71d329ecd643c25643ca5643cf3c8786ac8785e21e3398d8c670819cf31643c8790f13c4dc6f32c19cfdb643c6f91f19c4cc6b3898c672319cfe1643cedc9787691f1bc4fc65344c093008e006cf2ff966093eff0ec03db173abf076cf20d9f37c0f6b9ce3f02b6872cb616163e61980e367957f60bb0c9fd9987c126ef4c7c0e36396f10ff6a7e6587fdf95bc032e2a7a5851ffd7d6ee1923c6e6f592615c4bbbdd1572ab07ff3aec8603cd83cef93f1ec22e3694fc6733819cf46329e4d643c2793f1bc45c6f33619cfb3643c4f93f11c42c6730c19cf10329ed3c8785e21e3a921e39947c6534ac65342c6b3998ce71d329e13c9789693f1ac20e3799e8c672619cfc7643cadc8788e22e3194cc65346c6b38f8ce735329e6a329e05643c13c978f690f1b425e3d942c6b3958ce778329e2fc9785692f1ac22e339938ca71319cf8b643cb3c9786e21e3e94bc6d3928ce708329e73c9780691f19c42c65345c6f30c194f2d19cf53643c6dc8783a93f16c23e379978ce758329e72329ed5643c6bc8784e27e379998c671119cf9b643c73c978ce27e3a920e36947c6731819cf49643cc3c978ce26e3798e8ce71c329e19643c5f91f1b426e3d94ec6b3838ce768329eb5643cebc8783a90f1bc4ac6b3988c670919cf7c329e0419cf09643ce791f10c23e3398b8ce705329e59643cc5643c1790f1ec24e3798f8ce748329ef5643c1bc8784e25e3799d8c672919cf32329e85643c13c878de20e339948ce738329ea1643c6790f1bc44c6339a8c670e194f25194f0b0bcf3e473cf2ad1859b7ccef6be6be771abe771688efed86efed05e27b9be17b5b81f8de62f8de5220be371bbe371788ef8d86ef8d05e27bbde17b7d81f85e6bf85e5b20be571bbe571788ef9586ef9505e27bb9e17b7981f87ecbf0fd5681f85e6af85e5a20be171bbe171788ef4586ef4505e29bf9fa5b7d274cfa2aefd2bf09f87f0530bee188719fc128f36f00a3d8f07bd4158e78a2aedd2b087c2b2de45e963cf34cc0ff2b81d1554c55188c326f8ba99dc053e98827ea9e4325816fa585bc8b2d7d2a13f07f1c7fd9554c551a8c326f8ba9edc0d3d7114fd4bd92be04be9516f2eeb3bcf39780ffe378ebae62aaafc128f3b698da063c831cf144dde31944e05b6921df0a936fd224e0ff383ea3ab981a6430cabc2da670fcdcc18e78a2ee4d0d26f0adb4906fedca372f13f07f1cbfc9554c0d361865de1653387edc10473c51f7d48610f8565ac8b360f9467b02fe3f14185dc5d4108351e66d3185e3dd0c75c413752f7028816fa5c5309d973e5609f8ff3060741553430d4699b7c5d47ae019e68827ea1ee63002df4a8be13a2fef7024e0ffc381d1554c0d331865de16536b8167b8239ea87bafc3097c2b2daa747e8dfe4dc0ffab80d1554c0d371865de1653ab81a7ca114fd43de32a02df4a8b6a9d976fce25e0ff38fefb70478c5506a3cc0f0746b1ad049e6a473c51f7baab097c2b2de4dbfe2bf46f02fe8fe3b1ba8aa96a8351e66d3185e341d738e289ba475f43e05b69315ae7654c9804fc7f3430ba8aa91a8351e66d3185e3578e76c413f56c6134816fa5857c9b6b99fe4dc0ff6b81d1554c8d361865de16534b81a7d611cf628367b1458b83e55b69217db997e8df04fc7f0230ba8aa95a8351e66d31b518782638e2897a963381c0b7d242beadfda6fe4dc0ff2702a3ab989a6030cabc2da61601cf44473c51cfa026e6c077d4f3945cf88e7a36900bdf51f7b973e13bea9e6d2e7c47dd7fcc85efa87b69b9f01d755f2817bea3ee71e4c277d4f57a2e7c475d7be6c277d475542e7c475d13e4c277d4f96d2e7c479dabe5c277d479876fcf7d7b1eb7ef8379ee50a8edf9c13c861ecc6389bf36f0d706b9f2ed8f25feda2057be0bf5dac0b7e7b96fcfe5faab2888be1e7bcb91efa5866f99c7e72c4b1df95e6cf896797c66b0d891ef45866f99c7fbdf8b1cf92e357ccbfca21cf86e67f86e9743dfed0ddfed2dbe1d6cef6422a87ffd2d0c38a5208f31f0a6032d1cd5b35cad77895ed7d731aed776dfc6dc5f4aa1cc12d0cf75db21eb36db8e7c64c6b8288acf7779027cc877c9944d9e1fbf063669f75f059bf40b78056c726c7a196cf24cea25b0c933ab17c1365ae73f069b3c3bc63efbf2fc7f1bd8aa741efb8a0fd7f92d6093be54d84759fac36d069bf469c4beb1d22f7523d8a46f31f6c994fee1ebc1267dfcb12fa0bca7b1166cf2ae0df64193f7a556836d8fce63df27f90ecd4ab04dd7f91560fb83ce2f07db833a7f0bd87eaff35f81ed773abf086c0fe8fc9b60fbadce2f01dbfd3aff02d87ea3f3cf83ed3e9d7f0e6cf7ea3cbecbf66b9d7f1f6c9fe93cbe43354de77782ed573a8fefeedca3f3dbc1f64b9d7f166c5375fe19b04dd1f98560fb85ce2f00dbcf757e3ed826ebfc3cb0fd4ce7e7826d92cecf01db4f757e36d8c6ebfc2cb0fd44e767826d9ccecf00db589d7f1a6c3fd6f9a7c0f6239dff126c77e9fc62b0b5d0f9a560933123b19f4ab1cebf05b6563a8ffd8fe4fbfe13c17688ce4f005b1b9daf059b7c1b6e34d8643ce81ab02574be1a6c253a5f0536393f1b0e3619ff6418d8e45c6a28d80ed7f9216093f39ec16093f12c07814dbe41da176c47e97c25d8e4dbfa15603b46e7f7814dc61c7b036cf2ddba3d6093b1981f069b7caf7a3ad84ed4f93f804dc66179106c27ebfcefc1768aceff0e6cf20dcf07c056a6f3bf055b079dbf1f6ca7e9fc6fc0266364dd07b63374fe5eb0c9d8c1bf069b7ceff933b075d4f969603b5be77f0536194be41eb0c9f8a0bf045b279d9f0a36f90ef714b09daff3bf009b8cf7f773b0c9378627834dc675fb19d8bae8fc24b02575fea760ebaaf3e3c1d64de77f02b6ee3a3f0e6c3d747e2cd87aeafc8fc1d64be77f04b6de3a2fed8cda9fd57ebe57cfa782f8cecb94bf0f83fa5343d706c2803c719e6b97020ffada1d7bdd93e9f37ad9ef5be8f54a0ced06dfbb62f79db9a6f840afab58af7797e1bb18ca9cad1b07b59c1cf35beae5f618cbe17d2c59b72c7301d8df37d6dd4ed7f70347f5dd65300937ea2065ced34cead8f8039d6f03cbc4c896be3e96580b40439c52901706375a25cbf1bcb7313c1f00cfeed87932d7eb2e6202f7adb8afd7cdfbb866ac9542995da0dffb0ef4c37d5dd62df3e2cf337b66cfec993db367f6cc9ed9337b66cfec993db367f6cc9ed9337b66cfec993d333fb3e2d9abf3f85c59caed256114db6ee071719f1f9fc3cafad5739df74fadf3bb3b76bff59fefb5d2eb2d37ea5c0c65be86674e7b74be04fe2fdb2d6a5b3a784ed8e0b6147f25501f7c16b4d711cf6e8367b7450bc997c5e63b39d28dc6c972d597453d63df63e8bad7a2a9abfd75b75e5791a129eeaf1f1a3cf86cb404783fd2bf0958cf47500707fb78837121fe705fda0d36c97f088c2eb6331e4ba43d90e7e1f86c5acafcca782e1effb64f96bb6c37de833aa582fde3bb18cafc0edabecf751efb86ec05ddfe61f9bf4c0d3da716fd549d77c45fe7f4f6dd0e9c29f083bedf05d6987cd77b87a64827f123f662c8ff1dfa734839d143b416761caf1cd9cde53e34962b85323b2df54f05f1d67f87c1b3c36056dbe44b88b37fc0f1df559bb43342a30b402329b31b34dae38867b7c1231ce24f9591eddfda2823cb164399ff056d94aa8bb4f3524fecdb82c70057c731f125eb9679dbb9f107c068d651c5c7c063ea7877c7ce9b5ffdbf0e29cbfc62bb1e57ff2f59773bbdac7004c6facb61fdc2d53a883eb6fccff62dab5bbfcbfe657b8c3a0b0bea2c65da95657e559c5daaf3d99ceb1facebb6a873fd9d0e781241fd6b6f3535747cc763cc7bf07f2953fecda62e8eea596e3b76bd6fd4a914ca74847a3a388f69f05de01de0dbc536472de41c6a97a1453194e95096f995b6234a47bc56fd202775495acf07cb2d7591321dcbeaead206ec7132b9dc6eef429dd47a775bea2a65ce2babd3a5b3ce27603be17d93be96ffcbd4507b8063f16c8dbfcee9edbb053853e0077dbf03ac31f9aef72d1039df173f622f867c65595d5929277a88d6c2aef61179e70fd9cde57619cb9542996d96faa78278ebbfd5e0d96a30ab6dd2a5ac2e2f71e4b2dddc16a15139682465f0feb11cdbf1bd3bdb717fb723eea8e3fe6e6034db4d3c7771c9b6c76033efa1dace07a50c9e934999abca32bfaa9d4d58ca9af7865ddcc7c4775003a84760d455268c0107d786ddf0da49da29f1d319ecbb755e74ee6c68570c650695657e1d9e775bef5d9ad777784d21dce6be85ef7e0c29abe3c6b11377ebdf12b07da27f1d5da775b3dd33140edb3dc3e16575ecb8ac707d6ca98b798ddc22d8ff9efad74659bcefd6d07266de1c8752e9fb8951cee607af79627b57a34b793932b508ecf70b3e34d88b82fdc7dc94fd0063cebc8fd2d9580fde47a92dcbfc4a9b649655dbfedf8faad347b6a36887ed09c6e487c098d2f9f26f3675b1d55fe6c59f62fcc8a8839bb62bf3be5236f781f7008f8bb6dd511b5d8ec7d836b1adb77795edf8ffa1a1550e9fd75a8ff9e633f736463e1edfc96adbfd279b16bb2c3cae9ea34469b1cbe23b3e2d7a8cb41d3f6c5ae4b2ef439416ef5b7cc7a8450ddef76c488bf72c3c2eee4535a4c57b16dff169d1b3bca1e71aa8c54e0b8fab7b0f515a88bf6c99df27606e63e4e3f1ddadca769fcca6c50e0b8fabebe6282d76587cc7a745971e788fae212db65b78e2bf3fd7b016db2dbee3d3a2576fbc87d79016ef5a785c3dd38dd2e25d8bef18e36294ed5e8e4d8b6d169e6d39d6629bc5778ce7873d6cf7da6c5a6cb5f038b8efdaa0165b2dbe63d46204de776d488b2d169e2d39d6628bc5777c5a5475b7dd13b669f18e85c7d53de1282ddeb1f88e4f8b11bd94efcd8dd062b38567738eb5d86cf11de335543a2e3635428b4d169e4d39d66293c5777c5a54a7cfb53636428b8d169e8d39d662a3c5777c5a94a78fa91b1aa1c5060bcf861c6bb1c1e23bc6b8485f4fae6f8416eb2d3ceb73acc57a8bef188f23e9b858d7082dd65978d6e5588b7516dff1695193beffb4b6115aacb5f0accdb1166b2dbe63bce7928e8b358dd0628d85674d8eb55863f11d9f165dd3c7d4d58dd062b58567758eb5586df11d9f16a3d2cfc45635428b55169e5539d66295c5778ce79de9f6626523b45869e15999632d565a7cc778de99be7fb1a2115aacb0f0acc8b1162b2cbe636c3bd3e79dcb1ba1c5720bcff21c6bb1dce23bc6f3ceb4166f37428bb72d3c6fe7588bb72dbe633cef4c1f47de6a84166f59785c8d8112a5c55b16df31c645baed5cd6082d96597896e5588b6516df31ded74ab79d4b1ba1c5520b8fabf11aa2b4586af11de3f548fa1edf924668b1c4c2b324c75a2cb1f88ef15951fa1c7c7123b4586ce1599c632d1683ef3db1fbcef4e7161fd217eb7c438b6228734a87ccaff4c58ad251d681fdcab02e6fc65e974cbfb24511757913ea2265ce80bab4099c8c51d4cd515dd331f306d449adf7234b5da5cc391dea74e9a4f309d8261f836e7d2cff97a9c8984f415ef453757e2dfe3aa763f555e04c811ff4fd0ab0c6e4bb0bfa2ed249fc88bd18f2bd3bd4959572a287682dec6a1f795de791dd5c6eb1b15c299479dd52ff54106ffd5f33785e3398d3ef3d409c491cb969bb324caf4768743e682465b0cfde478e78cc3e84c221fe5419d9fead8d32d88752ca5c086d14f62b957a2682fdfb4d3a6acbba20bbac5be6c55f29d8f600a35947151f9f41df4f192b42c69150361917a22baca7a7615375ede5a8aee24bd62df3bd8051c6a9e8997bc66463197b188c8aa78f03cd70ec0d991a3a5ef4019ede0e781cd5337d1caa30ead4cba8532994c1771b2b1cd4b308fccaba65be027cbbd8e6a8851c93cf31b4288632c38df3c7281d651d2a7e7b5aead2cf715d64ddd22ef5cb81ef4ac37777c37722a8bf9d83a0e1fdab1298fb3a6056ebed1fff7acbf1bc4d624afc74873a0d000de2aa13ae4bcef30618da16437e2a9ce74939292bc72f6157b12cdb12d9cde5fa18cb9542997e96faa78278ebdfdfe0e96f30ab6d72179cdb39d81fd231d0cfe090f9eea05dff08edfa817652068f7f3d1c69d7d7e091f91ec023e7381560937305e14fc0ffbbe680db6cf72a2cdc62c371e27a5818bbc7cf983ed7e96130ca7c7760145b5fe0a974a499b9adcf31f4c1e3726ba38c2c5b0c6566c1b1316129abf6bb8e4575f56aa9edb1bd3ba6dbf4d60ef4c2711a03d02730340c402fa9672b073c6d83bab11a274fa99d34e2ce51378cca3c7a14b46203137f8b2cd5680136ccb7b4d882a0fe9094c5609321295b81ad85210b0e8529e565483b1772a11eb2ee6283b30db0c4e91b87f394a9a1d03904785c84b20a1d19d25387ce2d93c64c1985f1d1cae06c4aeca8ffb56ca05cd4ba5c6d07739f48c1bc1983c58efcb784faa6605efca96d53aaf313468cbc7bc0a43ba78e1b357eca6414cadcb1315f14d4df00e66f94e0ae763a0c00ac30360ead8c7a618321ff930dd3367ece6e3866aea94d00fe646a0bba1dea4037b57e19fb76e488b163af9b5a3576ccc84ba78e1f39654ced78dc9a6d0ce5a2b6b4fcbf35d86c4d3c965513365bb8ec21169b6dc25186db804d8e5c87824d78da82ad25e4a5bcb9659c846b4758bfec52ea7f4a9c56bae287047521208763d5aeaafd577d3e569d06a9a18ed5d0c66a73aaa18bd51d433534b1fa8a9d1a7a580d35ac86163e21c80c1dac860a3e39c80c05acbe7651166486f63d2dc80cdd7b4690199af72ce0fb36309f1d644ebbd4d0ba9d82ccd0b9ead6a57a755d7de64dbd5baf4edfd56d0175caab2ef1d4e9a73aed549717eaf685ba95a54ee9d4e9b23a1554a76fea72a4bfd67a40982e0cd34561ba384c9784e9d2305d16a6cbc3744598ae0cd35561ba3a4c03c3744d98ae0dd37561ba3e4c3784e9c630dd14648677be39c80cbfae867fbe35c80c0d7d5b901936faf62033a4f41d4166b8e911416628ea91416698ea51416608eb3b83ccf0d66382cc30b9770799a176c70599e17ad570d86a986c357cb61ae6570d09ac861456430dab6189d510c66a08643534f2fd4166c8653564f3434166d8e7e9617a244c8f86e9b1303d1ea627c2f46490191e5c0d1b3e23c80c33ae861f9f1d64862b9f1b64863757c39eabe1d0d530e96af87435acba1ae65d0dffae86857f314c2f85e9e520f348423d8a518f28d4ed7ff5184cdda27e33c8dc3a5f12641e71ab47feaa0b84ea12a2bac8ac08325da8549732d5c54e7539545d30559754d545577559565db8559776d5c55fbdf2a05e0151afc4a85784d42b53ea1532f54a9d7ac550bd26aa5ebb54af11abd7aa770799dbe27b83cca352753b5c3d1a50b7ccd5edfb4fc3f4ad201393df09d377c3f4bd307d3f4c3f08d30f83ccb0c66ab863355cb21a5a590dc3ac866c564339aba1a0d5b0d19f0599a1a7d5d0d5bf0d324362ff3e4c9f87e98b2033bcf69761fa6398be0ad39fc2f4e730fd254c7f0dd3dfc2f42f61fad730fd5b98fe1ea67f84e99f41dd30dbd8909ca05b1f7d05138c983265d4b80953caa6d4968d9b3a76ca980963ef2b9b3666cae8b2da7b464daa195b3b0d17feb65e58c6081f3069d288fbcac68caf1e756f59edd42965b5356555b553c757d73b88ff452f74d2fe1e475457473bfbcf6f42fa7f9be8f450dd2ecae8eb57345cb792964d10e488a62cd4a365d32a34491fc1e452f7c6cc7970d9e4b1b553cacacbc6877fc3036fedb451d59dcbf07f934391274f299b3c65c4a4296535936ac79575e98ceb7db86d132af15f6dddc09c7942d3c4e9a8bfb3d4a410fbe5a94d50e03f4e6d1a69ebb26f40dab6ac694ecbca9a50c3b39ab2d0954d24bca92c5296c953aba64c1a31724af4c2b77e9385ef684a35c737b19a27776882b3d39bb2d0800e4d23bca329ce6666e12cf86f5a25cf6384550600", + "bytecode": "0x1f8b08000000000000ffed9d07741c45baef5bb61c6024dbe40c72209924c9724e6372ce186c638c2ccb011c6519930c26198c2366d9c4c2b26430d13860e320db181b16d85d58968d6c5eeeeeddbde7bcf7cebde7bd77dfe5beaa517dabbfcad5638de81affe5a939a7a4ea6faafbfbd5bfbfaaaeeeaeeef9b7288a8aa2c64f7b957a46bb7fe4fbb4f95ffef53e15096eabdc2767511be16cd74638dbb711cee236c2d9a18d70766c239c9dda0867e70439355bbba8f92769defd3ce89a34e3fe6d4cd3541bd0b4a48d695ada0634ed12b58d3eaa6b1be1ecd646380f68239c07b611ce83da08e7c16d84f39036c279681be13cac8d701ede46388f68239c47b611cea3da08e7d16d84f39836c2796c1be13cae8d7096b511ceee6d84b3471be1ecd946387bb511cee313e4ec0d9c2798ff279aff2799ff279bff52f614f3ff5453b762b37c9a4aa7ab7486e6b2bed337422a55eaa35295f55d5f95faa9d45fa501e6bb32f3dd409506a93458a5212a0d5569984ac38d0623543a53a5b3543a5ba573543a57a5f3543a5fa50b54ba50a58b54ba58a54b54ba54a5cb54ba5ca52b54ba52a5ab54ba5aa56b541aa9d2b52a5d67b18c5269b44a6354ba5ea5b12adda0d238956e54a95aa5f12ad5a83441a55a9526aa3449a5c92a4d51e926956e5669aa4ad3549aaed20c9566aa344ba53a9566ab54afd21c956e5169ae4ab75a9adda6d2ed2adda1d29d16e73c95ee52e96e95e6ab748f4af7aa749f4af7abf4804a0b547a50a587545aa8d2c32a2d5269b14a4b545aaad2329596abf4884a2b547a54a56fa8f4984adf54e95b2a7d5ba5efa8f45d951e57e97b86451ac0132a3da9d2f7557a4aa51fa8f4b44acfa8f4ac4acfa9f4bc4a2fa8f4a24a2fa9f4b24a2b557a45a557557a4da5d7557a43a537555aa5d25b2aad56698d4a6b555aa7d2db2aad5769834aefa8b451a54d2a6d56698b4a0d2a6d55699b4adb557a57a51d2abda7d24e9576a9f4be4a1fa8f443953eb434ff48a58f55fa914a3f36b69f98ff9f98b272ddee53957e6af29f99ff3f33ff3f37ff7f6eadf30b957e69d97ea5d2af2ddb6f54fac2e47f6bfeffcefcffbdf9ff07f3ff8fe6ff9fccff3f9bff7f31ffbf34ffffc5fcffabf9ff37f3ff5fcdffbf9bffff30ffff4da54f7a35e63b474d9f749450df54553b51df4b11f14f889a7fb416edcd77f2bfccd88bcdb2fc17ed3a98e50e96bd9359ee646da79b59ee66d90f34cb075af683cdf2c196fd50b37ca865ef69967b823d15c1b55f63d7b6f6c654043689cb7660eb1035d744db3acae6c0d6296aae85b6c97eec08b6fd8cad13d8f637b6cec6d6d9d8f5271d25b5ffcb07eaed9624bd5d734fa93479def17abb5d3cf1764d9e7782de6e370fbc3a160e30dbea0a7173a0b17503db41c67600d80e36b603c17688b11d04b6438ded60b01d666c8780ed70633b146c4718db61603bd2d80e07db51c67604d88e36b623c1768cb11d05b6638ded68b01d676cc780adccd88e055b77633b0e6c3d8cad0c6c3287a53bd87a195b0fb01d6f6c3dc1267d6a2fb0c9d8ef78e91355ea5804eb18bbf4519975a41f06db49d20783ed64e97fc1d6dbd83a82ed14f02db653a1af91ff034d3e1d25d5262a336d6250d2db555bd6db1d92fc7633f70a87464dbaa6c1cf20d06a98c92738cfa7027d1799247ec45e0cf9f3a0ac94133de43823ecbadf1f6cf2c3b2ac37d05aaf14ca0c76d43f1d255bff2116cf108bb903d8fcc46c9f8a10b32dfee41cb3d740593bf664ccb32fc6ec85c0e12166fb86986df127e798ad81b276ecc9b8775f8cd9eb80c343cc0ef413b395e521661baf7d45913bf6e4dc675f8cd989c0917cccf60d31dbf24fce317b3794b5634fce7ff7c598ad078ee463b6ffc0303668f127e7985d0265edd8936b31fb62ccde0b1c1e627642e8675bfcc939661f87b276ecc975c17d3166970347f2313bd053ccf609311b35dec78c2277ecc935ea7d31669f048ee463b6265c9f6df927e7985d0765edd893fb25fb62ccbe62f2fa7ade4fcc7d86a3c0f689b11d0dbcc9c7f6843e9e62bb32c476e3fc8e2872c7a8dcbbdb17637ba3c9eb38feccc4f17160fb19cc3d10dbe7c6d61d6c3f37b61e502f0f6d606068032dfee4dc067e0165ed5896fbc8fb621bf818383cc4ecf810b32dfee41cb35f42593bf6644ec3be18b3bf060e0f313b21c46c8b3f39c7ecbf43593bf6647ecdbe18b33267548f177e6bc60b2783ed77c6d61b6cbf37b653c0f607633b156c7f34b6d3c0f627633b1d6c7f36b633c0f617632b07db97c65601b67f31b64ab0fdd5d8fa80ed6fc65605b67f35b6be60fbbbb1f503db3f8cad3fd8fecdd806189b9e9327f3acde37b6cec0908e92ddb732c752b62dcb7df2e0bb8be5bb4b1e7d77b37c7773f8aef2e03b053ee453642da7215fe597a7bc1478d057bfe47df5d175ef1bb5bceefd80a7bf87baa7c0474b78fa03cf80e4792abc1cefcb1bf7715f4bd314f8ea0bf5f2302ec8b4b78151734d6559fc95820dfbc7410ec6c1c9335616812fd9b62c0f0646b10d00c6934c5eda8f3e1ef62a6ae2f5d096326322f127eff1128e7e609732137b35b19d64d84ae07b3c760db06c9ee2321317e24bb62dcbe2af04ea3320ff8c952d65ec6f31faea238ac0976c3bf86eda0f92c7e3f8504f3c769f26be87e6c1f760cb773fcb37f69df2c9766cc3f3080fe770159ece4f32fde070b32d3937143f387e48830649d5097d1759db167b31e42f2ada9d41f4907e58d8752c63ecc4ad37c85a0fdfed35d451ff74c2f5b7cf55711feb4f669fc0b1d0437b68767d40b62dcbfd40bb6131da0d05eda4cc89a09daffe2ceebc7a00f0483f3610787c9d13c5f1e4e37c6c4fbe710c2bfb0dcfa5701ce06b7ff5b11865d9b5bf0603a36bace2e17c26eb58a53f308a0d9f4de9eb49b3b8fdda97c4b78758c9f447e243c6e6d27e0780fd9fe764e6e139dd574e82bed2478c603ccaa7a5e7bcc9efa7cacc3978ff1c7870df7938afaaf0148fe578fde6ab28d958b3fba5fe965671d7787cf5e57d2d1e59167f81393007e6c01c980373600ecc81393007e6c01c980373600ecc81393007e6c01c98f999f17e12cedb9272034818edf96fbeaef367de7568b625dbd7f775feb7d7f96095e5383f46e6419c6cd5b918caecdfaea9ecff83f960f67d2a9c2339c0af76997d89f331d3b02cfe70ae15ee4b86f94e6589f9aeacf175bf4dcfb1d6ef5bb4e77e0e7068ea63fe336a5a64698a73ea4fb178749c0e6cdfc4e6e3de5faef722512bc927796faf3472c77af2fba5b2d93deb7651f3fe038f33bee6ef485f2df7cb875abe8ba1cce1ed9af68dccad92dfdced6bad87f37e64dbb2cec9601f666dbbab59d77eee48b63f10d6953247419fbab95d93661efacaca5ce7aee37df3e48fc38df7f1fbe6c0d307787cf4339ec61be5d80692be8f6fcf4f738d63ec67cf7c3ef7658f456539dbb36a81393007e6c01c980373600ecc813930977fbd4f600ecc81393007e6c01c980373600ecc81396166cd63df6bc5e76bfb9130e669ee43e67e86bcab4cb69f795f70bb26bfbeefc3c93da7de569df1d9d17fb46b2afb86c99744bbcf7788db97bede4f11b72fc51fbe7b06ef05f9b8af5b04be64db550e2d245f9698efc6fbf8c96bdc741fbfafa56b3f87a6beda2bde63454db1bdf6b778f0de68dcbb7daa2c9bcfb943717121feb02d55814df2f87cb48ffd8cc7127b5e0fbe7f52caec32da768d7cedfbca729ffd06be37251ded1edff83e958fa0effb91c9e31c0e9c3bf285e37bf964bb4f2dfae93a8f48bece99fd7b2670a6c10ffa3e0b5813f25d81be8b4c123f622f86fc6fda35959572a287682dec25c089ecf67afdadf54aa14cda51ff74c2f51f61f18cb098f53ef904e2ec0b38fefbea93d2915ba39341232983e3205f73f2ec3ed29edf88f3f63a5a6570cc2265fe027d54dcfc51d79c435fc7b1b83987aeb1711f60b4eb68cff32cf4795aff01fd45d2f3b4fe036208e76945d6f67bc3f685ab63147f6c9132ffd7dabe3d269775701e9894f92fe82fce307316731993efadf32bd7981cd78babbb66c6f7a0a51364c69840161c2748994e466bd967c362b8073bd6dd3f665dd1ca7e575849b4bb7e7edeb3d6d8e6475875e90d7ea42e52a61bd4c5cfb8a5710c987c5d9b8f49a41fa872d455ca1c02ef4e3acce453b09fb0dd9ee0f85e3ed9c680a29faef3d9c9d739b37fcf01ce34f841dfe7026b42be2bd0b78c01c58fd88b217f7cfba6b2524ef410ad855db711194721bbbdde506bbd52287396a3fee928d9fa9f6df19c6d31eb7d7224c4d909300fdd575f7d568c46bd41232983d7145def01755debc8d758d17ebf7069b4fb75023c4efa1937b99f13b2afabb9c608bd2d7e1c2354413f9b7294b5af17caf1f2abe4ea558ecf4a0c04bff8ac84af77370f01ddd2b08ce382bde9dbc77b6cb5bfb8df4c189207df71bf99900fdf71bf99900fdf41f3a03993e61e7e8320f3fc19beb3547fb28d4bf1770964bd76c0e8e3b71c5251f3778fef89117fdf41d66b0f8c3e8e0fb9befb7c2030ca7ac5c0e8e3d952fcfd8d9630e23b86f1382f8c1ede155bd1da77c5e235bd8ec0c8f4cc26de9bea048c3ec6c5ad7d560fc7f39de1bfafdf25ea9b03631530ca7afb01a38f6be3782ed312463c2f92f5f6f7cc98edb889f7643d5c9fadccf5b7a5f2f13b1571c771cf735e2a73bdc633cc2f4fd67105fa1eee490bbc9eb9272d86034fda831629f0d1121ec997c27a070063f2d7371b19d33930e2fd4bb11f088c677a621c9103e399c028eb1d048c3eeeb1a6c06f4b18cf024659ef6060f470fd35c378560e8c789d52d63b0418cff1c478760e8ce700a3ac772830fab8969a02bf2d613c171865bdc380f13c4f8ce7e6c0781e30ca7a8703e3f99e18cfcb81f17c6094f58e00c60b3c319e9f03e305c028eb1d098c177a62bc2007c60b8151d63b0a182ff2c478610e8c1701a3ac7734305eec89f1a21c182f064659ef1860bcc413e3c539305e028cb2deb1c078a927c64b7260bc141865bde380f1324f8c97e6c0781930ca7a65c078b927c6cb7260bc1c1865bdeec0788527c6cb7360bc021865bd1ec078a527c62b7260bc121865bd9ec0789527c62b7360bc0a1865bd5ec078b527c6ab7260bc1a1865bde381f11a4f8c57e7c0780d305eed601ce989f19a1c184702a3ac770a305e9b3c63e65c7a640e8cd702cf75c9f36434bb36079eebfcf264de5977adc3d7e8e47d65f6c5a8a8e5751f0d3c6392e7c9ec8bd139f0084329ac879a5d9f3c6346b33139305e0f3c6393e7c968767d0e3c6341b3eb1d9add903c6346b3b13930de003ce392e7c96876430e3ce340b31b1c9add983c6346b3713930de083cd5c9f36434bb31079e6ad0ec468766e39367cc68569d03e378e0a9499e27a3d9f81c786a40b3f10ecd2624cf98d1ac2607c609c0539b3c4f46b30939f0d48266131c9a4d4c9e31a3596d0e8c13816752f23c19cd26e6c03309349be8d06c72f28c19cd26e5c0381978a624cf93d16c720e3c5340b3c90ecd6e4a9e31a3d9941c186f029e9b93e7c96876530e3c3783663739349bea89f1e61c18a73a78929c5f5a0a3ce86bbaa7ba4f8b5a5e77612885f5709ec40c4f8cd373609c018cb21ece9398e98971460e8c338151d6dbdf3363b6791233c1f7ace47d67faa59951cbf599e59727eb3c09f45de7498b5951cbb5a8f3cb93759e04fa9eed498bbaa8e55acc069e7a0f5aa4c0474b7884a114d6c37912733c31d6e7c0380718653d9c27718b27c6393930de028cb21ece9398eb89f1961c18e702a3ac87f3246ef5c4383707c65b8151d6c37912b77962bc3507c6db8051d6c37912b77b62bc2d07c6db8151d6c37912777862bc3d07c63b8051d6c37912777a62bc2307c63b8151d6c37912f33c31de9903e33c6094f5709ec45d9e18e7e5c0781730ca7a384fe26e4f8c77e5c0783730ca7a384f62be27c6bb73609c0f8cb21ece93b8c713e3fc1c18ef0146590fe749dceb89f19e1c18ef0546596faa67c66ce72ff7eee3bee3ce55f675df71e725fbbaef10e721ce0bc17788f310e785e03bc47988f342f01de23cc47921f80e711ee2bc107c87380f715e08be439c873867f27d9f07df29f0219f6cd7f885a114d69b1a18f76946e4294b8ea71ceb8ebeee27a8fbfd0e9e224f75475f0f10d45d18da1ae3d436c0785f1b60f4ac63656b1935cf024f3c0fe4c0b300781ef4c4b320079e0781e7a1e4793231f5600e3cc2500aeb4d6d038cf7b501c6a063d0918931e858383a06c6c0181803e3de606c0b7d78606c13f158d95a46cdb330799e8c660fe5c0b3103493f5aef3cb58d95a46cdf370f23c19cd16e6c0f33068b6d0a19907c6cad6326a9e45c9f364347b38079e45a0d9c30ecd3c3056b69651f32c4e9e27a3d9a21c781683668b1c9a7960ac6c2da3e659923c4f46b3c539f02c01cd163b34f3c058d95a46cdb334799e8c664b72e0590a9a2d7168e681b1b2b58c9a6759f23c19cd96e6c0b30c345bead0cc0363656b1935cff2e479329a2dcb81673968b6cca19907c6cad6326a9e4792e7c968b63c079e4740b3e50ecd5819a7b601c6fbda00a3671d2b5bcba8795678e27924079e15c0f3a8279e1539f03c0a3cdf489e2713538fe6c0230ca5b0ded436c0785f1b600c3a061d9918838e85a363600c8c813137c6fbdb0063d8d7819195d1c3f955d6e7531eddc77dc73d9fb2affb8e7b3e655ff71de23cc47921f80e711ee2bc107c87380f715e08be439c87382f04df21ce439c1782ef10e721ce0bc17788f310e785e03bc47988f342f01de23cc47921f80e711ee2bc107c87380f715e08be439c87382f04df21ce439c1782ef10e721ce0bc17788f310e785e03bc47988f342f01de23cc47921f80e711ee2bc107c87380f715e08be439c87382f04df21ce439c1782ef10e721ce0bc17788f310e74cbe1f4bde7765aeef98790c787cbcf3c6533dcbf576bf69b6f55582fa69adbe6569f5a8a5552994f926e8f72d0ffa15815fd9b62c8bbf5c994f2060f6e4bb52f72ffb41fdc5c77d961edaffb73dd53daeaffff63eee3baeafdfd77dc7f5f5fbbaef10e721ce0bc17788f310e785e03bc479887316df98ef10358ddba79aff7a1bdf31f962b32ce5ef07bb9499dca9f17fd728b4211fbe431b0ac78a42f01de23cc47921f80e711ee2bc107c87380f715e08be439c87382f04df21ce439c1782ef10e721ce0bc1778873be382f85ef67e48127b278a22c3c0bc978c693f15c43c6d39b8ce702329ea1643c2bc8786e21e39942c633968ce772329eb3c978e691f1f427e39945c6733a19cf04329e87c978ae25e339818ce722329ee1643c29329e12329e21643cb792f1dc4cc6730619cf38329e2bc978f2f1fc522e3cf792f19c4bc67337194f5f329ed9643c15643c8bc8782692f18c26e3b9848c6704194f57329e6e643c83c8786e27e3994ec6732a194f3519cfd5643c0bc878ce27e3b9878ca70f19cf23643c95643c73c8781693f19c46c633998ce77a329ecbc878cac978ce22e3b9938c6700194f7b329e99643c35643c23c9782e24e31946c633978c670919cf4d643c0f92f1dc40c6730519cf39643c7791f1f423e3a923e3a925e339898c671419cf89643c1793f1a4c9784ac978ba90f10c26e3b98d8c672919cf34329e87c8786e24e3b98a8ce701329ef3c878e693f15491f12c27e3a927e39944c633868ce752329e33c9784e26e3b9838c672019cf32329e22029e54b4fb6fbca4e0fbc7c0d6ce5a57bf16f7a55e4ddf7fd7d8dbc13a8f9b7c7bc7b6bf0b3679d7eee38e7551a7ef425dd2265ffef53e199dd0571a96c55f09703c4ec2b38c8c672019cf1d643c2793f19c49c6732919cf18329e49643cf5643ccbc978aac878e693f19c47c6f30019cf55643c3792f13c44c6338d8c672919cf6d643c83c978ba90f19492f1a4c9782e26e339918c671419cf49643cb5643c75643cfdc878ee22e339878ce70a329e1bc8781e24e3b9898c670919cf5c329e61643c1792f18c24e3a921e39949c6d39e8c670019cf9d643c6791f19493f15c46c6733d19cf64329ed3c8781693f1cc21e3a924e379848ca70f19cf3d643ce793f12c20e3b99a8ca79a8ce754329ee9643cb793f10c22e3e946c6d3958c670419cf25643ca3c9782692f12c22e3a920e3994dc6d3978ce76e329e73c978ee25e3798c8ce74a329e71643c6790f1dc4cc6732b19cf10329e12329e1419cf70329e8bc8784e20e3b9968ce761329e09643ca793f1cc22e3e94fc6338f8ce76c329ecbc978c692f14c21e3b9858c670519cf50329e0bc8787a93f15c43c6339e8c672119cf0c07cf639e78e47d00b26d597e8cc4b787fd50aeb7fb3d4f757ac26cab83d9aef08bbf6228337fffc6fffafe10ae2b5cf6fb1bf05adc13a0d1139eea22fba3c8da3fe8fb3b9e7ccb3508d9b62c7f671ff7ddc5f2dda5407c77b37c772b10df21ce439c1782ef10e721ce0bc17788f310e74cbe3d9c1b54e27be4e453642da7218fe70b3edebfe7a99ecdce13bf4a503fadd5939656f6b9552994f91ee8f7a407fd5ce79eb22cfe72653e818019e3a22c4a362ebe9f7c9d2a75bfb51fe8fa7d4b5facd7539e348d3b863cb58ffb8e3b86ecebbee38e21fbbaef10e721ce0bc17788f310e785e03bc479887326df3f30f904cf1bcbd187bebf28e7033f00bfcf987c51827ef5b69e36db2a36db168e67c02e65fe13ee6b86361fda7c52bec3b12dc47921f80e711ee2bc107c87380f715e08be439c87382f04df21ce439c17826fe638b7f3325ffc4460f3359f3f2e16f3f12cc1def41d178bfbbaefb858dcd77d87380f71cee4fb590fbe53e0433ed9e6f83d0b3c4f7be0f154cfccbd8de7ac3a3d66d5a914ca3c05f57cce433d8bc0af6c5b969f031ef9cc001e1f71d0927d8e3c0bc978c693f15c43c6d39b8ce702329ea1643c2bc8786e21e39942c633968ce772329eb3c978e691f1f427e39945c6733a19cf04329e87c978ae25e379928ce704329e8bc8788693f1a4c8784ac8788690f1dc4ac6733319cf19643ce3c878ae24e3b9978ce75c329ebbc978fa92f1cc26e3a920e35944c633918c673419cf25643c23c878ba92f17423e31944c6733b19cf74329e53c978aac978ae26e35940c6733e19cf3d643c7dc8781e21e3a924e39943c6b3988ce734329ec9643cd793f15c46c6534ec6731619cf9d643c03c878da93f1cc24e3a921e31949c6732119cf30329eb9643c4bc8786e22e379908ce706329e2bc878ce21e3b98b8ca71f194f1d194f2d19cf49643ca3c8782e26e34993f19492f17421e3194cc6731b19cf52329e69643c0f91f1dc48c6731519cf03643ce791f1cc27e3a922e3594ec6534fc633898c670c19cf53643c9792f19c49c6733219cf1d643c03c9789691f11411f0a4a2dddf8d9082ef9f049b3cc3ff18d89e37f9a7c1d6cee143ee1d3d07b66293976d74526975afddb78d3af97a6f01fa4ac3b2f82b018ee749789691f10c24e3b9838ce764329e33c9782e25e3798a8c670c19cf24329e7a329ee5643c55643cf3c978ce23e379808ce72a329e1bc9781e22e39946c6b3948ce736329ec1643c5dc8784ac978d2643c1793f18c22e339898ca7968ca78e8ca71f19cf5d643ce790f15c41c6730319cf83643c3791f12c21e3994bc6338c8ce742329e91643c35643c33c978da93f10c20e3b9938ce72c329e72329ecbc878ae27e3994cc6731a19cf62329e39643c95643c8f90f1f421e3b9878ce77c329e05643c5793f15493f19c4ac6339d8ce776329e41643cddc878ba92f18c20e3b9848c673419cf44329e45643c15643cb3c978fa92f1dc4dc6732e19cfbd643c5792f18c23e339838ce766329e5bc9788690f19490f1a4c8788693f15c44c6730219cf93643cd792f13c4cc633818ce774329e59643cfdc978e691f19c4dc6733919cf58329e29643cb790f1ac20e3194ac67301194f6f329e6bc878c693f12c24e399911f9e4a7d9ef754d4fc53642da721ff1cf03ce9411f4ff52cc7f73e7c95e076b5562f585a3d6569550a659e05fd5ef0a05f11f8956dcbb2f86b8bcc9a47ae893e65fee37b32ee256114db937e7932edf6dea8f9275bbb7d01787cf46b9eea99695f2f5a75bad7a1bb94c1587dd1433d5d6d47965f84fdd0d69835cf03262fac2928f70009a3d89ef3cb93695f0f44cd3fd9dad78bc0e3a3fff154cf4cfb7ac9aad3030edda50cc6ea4b1eeae96a3bb2fc12ec87b6c6ac791698bcb0a6a0dc021246b1bde097a72a0575964fb6f6f512f0f8e87f3cd533d3be5eb6eab4c0a1bb94c1587dd9433d5d6d47965f86fd109803b38b59f3c8b395c29a82720f92308aed45af3c55e529a8b37cb2f5632f038f8f7ede93ee997e6ca555a7071dba4b198cd5951eeae96a3bb2bcd2e1bb2c4a568b575aa0c52b0e9e57f2ac85f8cb95f9d936c81c740e3ac731079d83ce71cc41e7a0731c73d039e81cc71c740e3ac731079d83ce71cc41e7a0731c73d039e81cc71c740e3ac731079d83ce71cc41e7a0731c73d039e81cc71c740e3ac731079d83ce71cc41e7a0731c73d0393fcc41e7a0731c73d039e81cc71c740e3ac731079d83ce71cc41e7d6316b9e874c5e585350ee211246b1bde49727f35cd04351f34f91b59c86fc2bc0f3b2077d3cd5333387fc55ab4e0f39749732d8be5ef5504f57db91e557613fe4c2bcb20d32079d5bc7ac79e41d1ac29a82720b4918c5f6b25f9e4c3fb6306afec9d68fbd0a3c3efa794ff5ccf463af59755ae8d05dca60fb7acd433d5d6d47965f83fd109803b38b59f33c6cf2c29a82720f93308aed15af3c9599e71b1f8e9a7fb2f563af018f8f7ede93ee997eec75ab4e0f3b74973218abaf7ba8a7abedc8f2ebb01f72615ed9069983ce41e738e6a073d0398e39e81c748e630e3a079de39883ce41e738e6a073d0398e39e81c748e630e3a079de39883ce41e738e6a073e1e8ac791699bcb0a6a0dc221246b1bdea95a74fe6bec3a2a8f927db7d87d781c7c77d194fba67ee3bbc61d5699143772983edeb0d0ff574b51d597e03f6c3becebcb20d3287d8c80f73888dc01cc71c622330c73187d808cc71cc213602731c73888dc01cc71c622330c73187d808cc71cc213602731c73888dc01cc71c622330c73187d808cc71cc213602731c73888dc01cc71c622330c73133c486e6596cf2c29a82728b4918c5f69a5f9ecc7b0f1647cd3fd9e6edbc013caf7bd0c7533d33f376deb4eab4d8a1bb94c1f6f5a6877abada8e2cbf09fb2130076617b3e65962f2c29a82724b4818c5f6ba5f9e4c3fb6246afec9d68fbd093c3efa794ff5ccf463abac3a2d71e82e6530565779a8a7abedc8f22ad80f813930bb9835cf529317d614945b4ac228b637fcf264fab1a551f34fb67e6c15f0f8e8e73dd533d38fbd65d569a943772983b1fa96877abada8e2cbf05fb2130076617b3e65966f2c29a8272cb4818c5f6a65f9eca14d4593ed9fab1b780c7473fefa99e997e6cb555a7650edda50cc6ea6a0ff574b51d595e0dfba1ad316b9ee5262fac2928b79c84516cabfcf264dad7f2a8f9275bfb5a0d3c3efa1f4ff5ccb4af35569d963b74973218ab6b3cd4d3d57664790dec87b6c6ac791e3179614d41b9474818c5f6965f9e4cfb7a246afec9d6bed6008f8ffec7533d33ed6bad55a7471cba4b198cd5b51eeae96a3bb2bc16f6435b63d63c2b4c5e5853506e0509a3d8f078b1c2134f89c553e2d0626ff9d65af431f914fc97effb00a3affe7085c528cb18e3622bc983665d2c9e2e96667bd3b7d66228e4f507f7d7506064d85f5df2a059378ba79ba5d9def4adb51866f25dcd7fdc5fc38091617f75031e0ffd7355cae2d19f6ce38db59ef5f154cfcc78635de4d61d8f4352068fddeb3cd4d3359690e575b01f02736076316b9e91262fac2928379284516c789ef276f23c55298b477fb2f5636f7bd6c7533d33fdd8fac8adfbdba0bb94c1585defa19e45e057b62dcbeb613fe4c2bcb20d32079d5bc7ac794699bcb0a6a0dc281246b1ad039e0dc9f354a52c1efdc9d68f6df0ac8fa77a66fab17722b7ee1b40772983edeb1d0ff52c02bfb26d597e07f6432ecc2bdb2073d0b975cc9a678cc90b6b0aca8d216114db7ae0d998384fe3ef01218ffe64ebc7367ad6c74f3d1bfbb14d915bf78da0bb94c1f6b5c9433d8bc0af6c5b9637c17e08cc81393007e6c01c980373600ecc81393007e6c01c980373600ecc81393007e6c0cccdac79c69abcb0a6a0dc581246b1bd033c9b13e769bcef803cfa93edbec366cffaf8a967e37d872d915bf7cda0bb94c158dde2a19e45e057b62dcb5b603f04e6c01c980373600ecc81393007e6c01c980373600ecc81393007e6c01c98037360e666d63ce34c5e5853506e1c09a3d836014f43f23c55298b477fb2dd7768f0ac8fa77a66ee3b6c8ddcba3780ee52066375ab877a16815fd9b62c8bbfc01c98e398354fb5c90b6b0aca5593308a6d0bf06c4b9ca7f1fe29f2e84fb67e6c9b677dfcd4b3b11fdb1eb975df06ba4b198cd5ed1eea59047e65dbb2bc1df6432ecc2bdb2073d039e81cc71c740e3ac731079d83ce71cc41e7a0731c73d039e81cc71c740e3ac731079d83ce71cc41e7a0731c73d039e81cc71c742e1c9d354f8dc93798ff29285743c228b6adc0f36ee23c7dca53168ffe64bbeff0ae677dfcd4b3f1bec38ec8adfbbba0bb94c1f6b5c3433d8bc0af6c5b9677c07ed8d79957b641e6101bf9610eb11198e398436c04e638e6101b81398e39c446608e630eb11198e398436c04e638e6101b81398e39c446608e630eb11198e398436c04e638e6101b81398e39c446608e630eb11198e398436c04e6386686d8d03cb5262fac2928574bc228b6edc0f35ef23c55298b477fb2cddb79cfb33e9eea9999b7b33372ebfe1ee82e65b07dedf450cf22f02bdb96e59db01f02736076316b9e49262fac2928378984516c3b806757f23c95298b477fb2f563bb3cebe3a99e997eecfdc8adfb2ed05dca60acbeefa19e45e057b62dcbefc37e686bcc9a678ac90b6b0aca4d216114db4ee0f11077199e128b47967711f8d65acc34f914fc97ef670223c3fe2ac983665d2c9e2e96667bd3b7d66216e4f507f7d72c6064d85f5df2a059378ba79ba5d9def4adb5a833f9aee63feeaf3a6064d85fddf2a0d9deec0ff766dbde9b711a34df7b9a17ed45cd8bf6a2e64541732acd3d1c5f2af1581601037ed2907f1f787e983c4fe6badcfb39f0fc10783e489ea7c2533dcbf5763f04f6a4b6abb5fac8d2ea7d4bab5228830c1f79d0af08fccab66559fc05e6c01cc78c635b614d41b95d248c62fb00787cf41bbaeea79a6dc9f63ba8f4e5c14d7e7ddc2fc16bc51dcc768543fc154399a53d9bcafeab612b81ef65bfe9faecb06cba0eef265f870ad77d3b59167f2551deaedd66bd968c5af8b8df94eb717f8783e7abe478cab19da32f1fcfc8e77aef6fbb8327c1ba57c4ddf7dc967cdd33fdc769665bb27ddd46fffb60af9a5761db93fee334abcec550e626e83fda1fd2982f89dc7d85efb6296372bb6db68b9afa33e12a3376fb9ed057c62ee5de83f2d82ff631ff3146fb405d7dbd5323eedebcf82b817abf0b3cbefae95d168fedbb1474d949aa19b6eb5d0e1d873ab8871270633ce6635fdbf7a06ddfa5a0cb2e52cd705fef74e838ccc13d8c809bb15d0fb37464d36c4fed7aa4837b24013763bb1e69e9c8a6d99edaf52807f728026ec6763dcad2914db33db5eb310eee3104dc8ced7a8ca5239b667b6ad7631ddc6309b819dbf5584b4736cdf6d4aec739b8c7117033b6eb71968e6c9aeda95d573bb8ab09b819db75b5a5239b667b6ad7350eee7cbc9fb42db6eb1a4b4736cdf6d4ae6b1ddcb504dc8cedbad6d2914db33db5eb490eee4904dc8ced7a92a5239b667b6ad7531cdc5308b819dbf5144b4736cdf6d4ae673ab867127033b6eb99968e6c9aeda95dcf7270cf22e0666cd7b32c1dd934db53bbae7370d7117033b6eb3a4b4736cd5ceddad33df8ccdc54d44c7fb2cdd3d8e5559fc6df98ce65ce0ccee5f011539ee2a01ce79e2439c7476bb5d5d26a97a5552994d906fa6df5a05f51b4fbefafc8b2f80bcc81393007e6c01c980373600ecc81393007e6c01c980373600ecc81393007e6c0cccf8cefb2c4fb2b526e2709a3d8f09e948febfcbaeea79b6dc9f6f5f396a30ff5e9b732731fe05df0977670144399fe3d9acade60d84aa2ddef43e16f71e7635f8a2fd9b62c8bbf12a80fc6bfaff792c6c5d64e87efb2c47c57d6f8d1b8b25cbf7f67bfa8693f6fb5ea839a3624eebfb9a64596a60d9e7d63bf1401037ed2906f001e5ff71a3dd433d3176cb1ea646b5c0a654e807a6ef150cf22f02bdb96e52dc0239f19c0d3e08927b27822873ef26947c6339e8ce71a329ede643cbdc8782e20e3399c8c672819cf2d643cfb91f14c21e3194bc6733919cf71643c6793f1e4630c9e0bcf3c329efe643c0791f1cc22e32926e3399d8c670219cf0e329e6bc9784e20e3b9888ce748329ee1643c29329e12329e5bc9788690f1dc4cc6730619cf38329e2bc978ba93f19c4bc67337194f5f329e43c8786693f17424e3a920e39948c6339a8ce712329ea3c9784690f1dc4ec633888ca72b194f37329ee9643cd5643ca792f15c4dc6d3938ce77c329e7bc878fa90f11c46c65349c633878ca73319cf64329ed3c878ae27e3b98c8ca79c8ce758329eb3c878ee24e31940c6732019cf4c329ef6643c35643cef91f18c24e3399e8ce742329e53c8788e20e31946c633978c677f329e9bc8786e20e3b9828ca78c8ce71c329ebbc878fa91f11c4cc65347c6d3818ca7968ce724329e51643c2792f15c4cc67314194f9a8ce736329ec1643ca5643c5dc878a691f1dc48c67315194f0f329ef3c878e693f15491f11c4ac6534fc6d3898c671219cf18329e4bc9788e21e339938ce764329e3bc8780692f11c40c65344c0938a767f57550abedf0e3679a7d2bb606be7d89edc8795f2fa38b4b9d7eedb6ee7d87683830175da1c35d5256df2e55fef93d1097da56159fc9500470309cf01643c03c978ee20e339998ce74c329e63c8782e25e31943c633898ca713194f3d19cfa1643c55643cf3c978ce23e3e941c6731519cf8d643cd3c878ba90f19492f10c26e3b98d8c274dc6731419cfc5643c2792f18c22e339898ca7968ca703194f1d19cfc1643cfdc878ee22e339878ca78c8ce70a329e1bc8786e22e3d99f8c672e19cf30329e23c8784e21e3b9908ce778329e91643cef91f1d490f1b427e39949c6732019cf00329e3bc978ce22e339968ca79c8ce732329eebc9784e23e3994cc6d3998c670e194f2519cf61643c7dc878ee21e3399f8ca72719cfd5643ca792f15493f14c27e3e946c6d3958c671019cfed643c23c8788e26e3b9848c673419cf44329e0a329e8e643cb3c9780e21e3e94bc6733719cfb9643cddc978ae24e31947c6730619cfcd643c43c8786e25e32921e34991f10c27e339928ce722329e13c878ae25e3d941c633818ce774329e62329e59643c0791f1f427e39947c6b38d8ce76c329ee3c8782e27e3194bc633858c673f329e5bc8788692f11c4ec67301194f2f329ede643cd790f18c27e36947c633c3e2c1eff5b373323e92772b15c3f78bccc3005dcdb6a48ccc99d1d74e3659365ddf8d9eeabb296afaa4617923d457d83701cf264f3c9b2d1edb7729e8b28554b352b06d76e838d4c13d94801be3311ffb7a8bc563fb2e055d36936a86fb7a8b43c7610eee6104dc8ced7a98a5239b667b6ad7231ddc2309b819dbf5484b4736cdf6d4ae4739b847117033b6eb51968e6c9aeda95d8f71708f21e0666cd7632c1dd934db53bb1eebe01e4bc0cdd8aec75a3ab269b6a7763dcec13d8e809bb15d8fb37464d36c4fedbadac15d4dc0cdd8aeab2d1dd934db53bbae7170d7107033b6eb1a4b4736cdf6d4ae6b1ddcb504dc8cedbad6d2914db33db5eb490eee4904dc8ced7a92a5239b667b6ad7531cdc5308b819dbf5144b4736cdf6d4ae673ab867127033b6eb99968e6c9aeda95dcf7270cf22e0666cd7b32c1dd934db53bbae7370d7117033b6eb3a4b4736cdf6d4aefb7bd63115356f33fa53642da7218fda6e7670cbf75703f746d86e3a19ee72fcdda919e0eb1d0f1a65d3e31dd0433eedc878c693f16c26e3b9868ca737194f2f329e0bc8780e27e3194ac6b3898ce716329efdc878a690f18c25e3b99c8ce738329eb3c978b691f1cc23e3e94fc6731019cf2c329e62329ed3c9782690f1ec20e3b9968ce722329e23c9788693f1a4c8784ac8786e25e31942c6733319cf19643ce3c878ae24e3e94ec6732e19cfdd643c7dc9780e21e3994dc6d3918ca7828c672219cf68329e4bc8788e26e31941c6733b19cf20329eae643cddc878a693f16c21e3a926e339958ce76a329e9e643ce793f1dc43c6d3878ce730329e4a329e39643c9dc9782693f19c46c6733d19cf65643ce5643cc792f19c45c6732719cf00329e03c9786692f1b427e3a921e3798f8c672419cff1643c1792f19c42c6730419cf30329eb9643cfb93f1dc44c6730319cf15643c65643ce790f1dc45c6d38f8ce760329e3a329e0e643cb5643c2791f18c22e339918ce762329ea3c878d2643cb791f10c26e32925e3e942c6338d8ce746329eabc8787a90f19c47c6339f8ca78a8ce750329e7a329e4e643c93c878c690f15c4ac6730c19cf99643c2793f1dc41c633908ce700329e22029e54b4fb7bae52f07d7bb06d30f91d605b6ff2dbc0f6b6c96f02db3a93c777cdad35f98d606be7e013860d609367bfd7834dae5fbd0d367986631dd8e4b828fef5f27bbd76e76fe7a8677b07ffdb8e7aae77ac8bfb5bd64947c9ee6ff4958665f157021ceb49780e20e31948c6730719cfc9643c6792f11c43c6732919cf18329e49643c9dc878eac9780e25e3a922e3994fc6731e194f0f329eabc8786e24e39946c6d3858ca7948c673019cf6d643c69329ea3c8782e26e339918c671419cf49643cb5643c1dc878eac8780e26e3e947c6731719cf39643c65643c5790f1dc40c6731319cffe643c73c9788691f11c41c6730a19cf85643cc793f18c24e3798f8ca7868ca73d19cf4c329e03c9780690f1dc49c6731619cfb1643ce5643c9791f15c4fc6731a19cf64329ece643c73c8782ac9780e23e3e943c6730f19cff9643c3dc978ae26e339958ca79a8c670b19cf74329e6e643c5dc9780691f1dc4ec633828ce768329e4bc8784693f14c24e3a920e3e948c6339b8ce710329ebe643c7793f19c4bc6d39d8ce74a329e71643c6790f1dc4cc633848ce756329e12329e1419cf70329e23c9782e22e3b9968c670719cf04329ed3c9788ac9786691f11c44c6d39f8c671e19cf36329eb3c9788e23e3b99c8c672c19cf14329efdc8786e21e3d944c633948ce770329e0bc8787a91f1f426e3b9868c673319cf78329e76643c331c3c9b3cf1c8fbab64dbb2bc29f8deabbeb724efbb32053ee453642da7218fbf27bcc3831629f0d1129e1d9e79b2ed1b16df1efaa572bddd0d896fb7a25cd749deebd7c16c57f8c55f3194f9867991969e5f83eb0a97fdfe3dbc96f70e68e4e3dd8afa9d1b5b1cbe3678f0952d163604df7bd5f79ae47d57e2bb36e593ad1f5c033c6f79e2599303cf5bc0b33a799e0a4ff5ccf47babccb6be4a70bb5aab372dadd6585a95429955a0df9b1ef42b02bfb26d59167f6d9159f348bb11d61494db40c228b6d5c0e3219eb3f6616f11f8d65ac8f8538ee5b8bf70fccbb0bff01dc232a743c61e7a3cb3f59826deedc9f3566ade77c15f1a38c45f3194f93fdd9bcaee306c25f03dbe9f79ab65d3756848be0e19cdc5976c5b96c55f09d4672bd8248fe7211b9367cce8dc10c328fe703cda31a61e3896fd318c6571ecd800f5933cbee7fa1dcba6ebbc3ef93a57b8c6d7b2bc1e18a58ef918f36eb778b63bb4d8177dc7b50ff4ede19ca6dc536c65da13f693e968f7d82a8632bfb7cefbc42e5c0d262fdb28016da46c3bd8b67c5766ec6f5bbebf8af2b33fe51a9f6b7f6ef5e43b2e8eb706df7bd57743f2be2bf1382e9f6ce7690dc0e3a1ddf74b45cd8fa37be2c1ebdb3edaa2a77a66fa4d191b267ddeb8d6d2aac1d2aa14caac03fdd67ad00fef57c8b66559fc05e6c01c98f72eb3e6b1cf45f07768b69230dae3339fe73671c7e4f504bef13a889c9be3fec2737286fdb51d18e55d3d785fa7ecd8265e0fd741fab9ae83945b6c781de49dee4d657b19b6b8eb200d96cdd335860ad7350659167f781da4016c92c7eb201ece07333a6f8c61147fba8cb4df8e31f52886326718fdbb5a75913e29ae9f5a977cfdb2c6bdf8c3734bec2bc23953b2be3758be37387cfbb836e129b6fae1b841fa283bb68aa1cc7068172d1973e0b53829db0ef2f29d5cdb5803cbe9af59c789e683f7f772d9eec43d7cf09ec4d7e0adb00d11e8d02edafd7e564bbe77955d0debd8f738beb296f56f3bd963c562f8fe6288034fb159e5691cd10fefa748cc0bff5a475dafb062debe17d360e984312f655d315f64ec6f59bebf32767b1b4591b7b1555f6c23096e37a3f51a4b6be15f0d5a4b993196d6783f3f0d5aaf05ad451f6c13ab1dda615b596d696d6f43b4f6306fa2d97144aeb5daf783c3fd8ac2f3dd90b8efc6b96c76fb93f1aef8c3f6377d0fed4fce4570ecef8add86c4ebd2a8a3cd63d7459791b6ddd12ab306ea2b65e658c7315fe75071fb7f2368167ce7df77f2c7bcc63627f38ca4cdd9c79d6228738fd5e65659dcd2e6641b25500729eb5a4fca374019bb6dacb1b6836de341ab6df83a16c6ed27ec4ff6966f1c4b88e66551f6b184dddf9415b07e3edb98cc7d9236b6cada1fc550e69b561bb3e70c4a1b936d94401db2cd3594f20d50c66e63abaced601bfb1e70e17c1b29eb734e59dcbe63f0dd0e74c376d42eda7d2ea7b43b7b7f95993aac4abe0e997bd8180bfa93ed9e31ce3b7d23799eaa54d4bcffdf13cf1bc0e36beeb3877a66ee61bf6eb695f43decd72cad56595a954299d741bfd73ce857047e65dbb22cfe0273608e6376cd794f41b9374918c58673cc3df41b598f396f10f88ebbb72adfe37d3e86fdb51d783cdc3b2dd775afb07ce971dec77eefd956b9eed9da1c78cf765ef7a6b29fb4e29ead8f67feb2ddb3c5b9a82dbd67ebe17e56956b1eb7f8c667cde59a7ac7987a144399dfc48ca5710eb887e793b3b6ef2d04bee3fa16f93e1fcf526cb118ede70a707f61dfe2eb59f638cdfc3ecbde78de2a3e8acd76253eb7805dcafcc3ba06e3abbf90fa17597ab8fa8baba1ecbbc05c16355dfb70f595ffcb9a53216587387c0c069bac3f086cc235106ca2d900b035987c7fb0497fd10f6c723fa92fd8644c520536194bc96fdde0315a6c788e928ef2738c7e1d18656cf706d8243f14b85fb36c9afb554fdcf6f859965f0546a9c36b6093fc30e07ec5b269ee959eb85fb1b8657925304a1d5e019be487830d19c5f6b2c98f00db4b267f26d85e34f9b3c0f682c99f0db6e74dfe1cb03d67f2e782ed59933f0f6ccf98fcf9607bdae42f00db0f4cfe42b03d65f21781edfb267f31d89e34f94bc0f684c95f0ab6ef99fc65607bdce42f07db774dfe0ab07dc7e4af04dbb74dfe2ab07dcbe4af01db374d7ea4f9afe3ed1b964dc7dba3269f8e928d37f125db96e54781f13193ff06d8247f2dd8649d515097472c9baecb724f75115fb26d595e0e8c2b4cfe11b0497e34d8649d315097a5964dd76589a7ba882fd9b62c2f01c66526bf146c92bf1e6cb2ce58a8cb22cba6ebf2b0a7ba882fd9b62c3f0c8c8b4d7e11d8247f03d8649d715097872c9baecb839eea22be64dbb2fc20302e34f987c026f91bc126eb54435d1eb06cba2ef77baa8bf8926dcbf2fdc0b8c0e41f009be4c7834dd6a981badc6bd9745da67aaa8bf8926dcbf25460bccfe4ef059be427804dd6a985baecb46cba2ebb3cd5457cc9b6657917305e67f23bc126f98960937526415d3eb06cba2e3ff45417f125db96e51f02e3fb26ff01d8243f196cb2ce14a8cb47964dd7e5634f75115fb26d59fe18183f34f98fc026f99bc026ebdc0cb61f99fc34b0fdd8e4a783ed27263f036c9f98fccca8499b9f5a36adcd67911f6dc4976c5b963f03c64f4dfea76093fc2ce0fe9965d3dc9f7be2fe99c52dcb9f03a3d4e16760937c1d70ffdcb269ee5f78e2feb9c52dcbbf0046a9c3cfc126f9d9609375eac1f64b939f03b65f99fc2d60fbb5c9cf05db6f4cfe56b07d61f2b781edb7267f3bd87e67f27780edf7267f27d8fe60f2f3c0f64793bf0b6c7f32f9bbc1f667939f0fb6bf98fc3de6bfde77ff62f26551b2fbeecba8e9a3b72df791c59f2ef35793ef689591758ba1ccfde645e0721d52ae6fc8f50e6d93eb1bdbc126d737de059b5cdf78076c727d6313d8e4fa4603d8e4fac63ab0c9f50d7c5e4aae6fac069b9cb7be02b6b4c9af049b9cb7be0c36396f7d096c72defa22d8e4bcf505b0c979ebf36093f3d6e7c026e7adcf824dce5b9f019b9cb73e0d36396ffd01d8e4bcf529b05d6cf2df079b9cb73e0936396f7d026c72defa3db0c979ebe36093f3d6ef824dce5bbf0336396ffd36d8e43adc97609373d96f814dce09bf013639b77a046c728eb2146c32d65f04b61b4dfe21b0c9d8f301b0c918ee5eb0c9586827d8644cf101d8e4d8fc11d8e4d8fc31d8a699fc8fc026c7e61f834d8ecd3f019bf4b93f079bf4b9bf009bf4b9bf049bf4b9bf029bf4b9bf069bf4b9bf019bf4b95f804dfadcdf824dfadcdf814dfadcdf834dfadc3f804dfadc3f824dfadc3f816dbec9ff196cd2e74a1f1c814ddfe76a6ff2f20ecb62f8fe5de8fbb08c5e4fde67f21eac27dfefb4d6c3f7b06c33797cf7a67cff01acd719caca756cfd29ff9a9f22cbb75ede6a96b7815dca7c0c4cf82cc86660db6c6d4f9e3fd80a7629f38955475fef41b3e7b6c9723edec1b6377dbf6ef97ebd407cbf6af97eb5407c3f66f97eac407cafb07caf2810dfcb2cdfcb0ac4f762cbf7e202f1bdd0f2bdb0407c2fb07c2f2810dff759beef2b10dfd759beaf2b10dfef5bbedf2f10df1f5abe3f2c10df9f5abe3f2d10df9f59be3f2b10df9f5bbe3f2f10dfcce7dffaba501f93c7e709e47b9cfbb6d51363dc3bd0b702a3fd5ef4cec096344fdcb97b1f02df5a0b99d72773ff52f03dcef9f315537d2c465976c5143e3333d4134fdc3587a104beb516329f51e63ca6e07b9cebe82ba6865a8cb2ec8aa957816798279eb86b25c3087c6b2d643ea0cc194cc1f73857d0574c0db31865d915538f01cf484f3c71d7784612f8d65ac89cc747cdff147c8ff3217dc5d4488b51965d31b502784679e289bb36358ac0b7d642e675cadccf147c8f733e7dc5d4288b51965d31b50c78c678e289bba63686c0b7d642e6ae2e31ff53f03dce6bf51553632c465976c5d462e019eb8927ee5ae05802df5a0b999f2b737853f03dceddf51553632d465976c5d442e019e78927ee1ae63802df5a8b6a939779ca29f81ee727fb8aa97116a32cbb626a01f0547be289bbf65a4de05b6b21f3ac652e760abec739d8be62aada629465574cdd073c359e78e2ae19d710f8d65ac85cf2a9e67f0abec779e6be62aac6629465574c5d073cb59e78e2ae75d712f8d65ac87cf95de67f0abec7b9f4be62aad6629465574cbd0f3c933cf1c45da39f44e05b6b21cf04c8730329f81e9f17f01553932c465976c5d487c033c5134fdcbd852904beb516f29c823ccb9082eff119065f3135c5629465574c7d0a3c333df1c4dd139949e05b6b21cf67c8331c29f81e9fddf01553332d465976c5d467c033cb134fdcbd9c5904beb516f25c8a3cbb9282eff199155f3135cb629465574c7d0e3c759e78e2ee41d5e5c177dcfd947cf88ebb37900fdf71d7b9f3e13bee9a6d3e7cc75d7fcc87efb86b69f9f01d775d281fbee3ae71e4c377dcf97a3e7cc79d7be6c377dc79543e7cc79d13e4c377dcf8361fbee3c66af9f01d37ee08fd79e8cf93f6bd37c70e85da9fefcd63e8de3c96847383706e902fdfe15812ce0df2e5bb50cf0d427f9efffe5ccebf8aa2f8f3b10f3df9fed4f22dcb789fe5534fbe3fb37ccb32de33f0f51ea6cf2ddfb28cd7bf7dbd4ba9c4f22dcb9fe7c17717cb77973cfaee66f9eee6f0ed617f677e1306cfbf85013f69c8630cfccc83169eea99f90d16b9c794f46fb0d8d76decf6521aedfedeb27cf41db26dbbef688bcc29b06d049b7cbf1d6c9f983cbe375efaec77c026f7f4f1f70ee4b8d20036b99ff42db0c9fd269c472ff70c1f039bdcf7c5f9db72ef7e05d864fe05ce1bae36f96560937950385f55e6b22d069bcc47c4799232a77421d8645e30cecf93b9dd0bc026f3f3715e983c13731fd8b69a3cce479277c25c073679efcc2eb0c9fb71de079bbc77e7db6093f7ef7c09b67b4cfe73b0cd3779bc5729ef0cc2fbcdf26ea1756093f70ead059bbc9f6835d8e45d45abc026ef367a136c7f30797cae49de8bf43ad87e6ff2f83ccdef4cfe55b0c97b965e019bbc8f6925d8e4dd4c2f834ddee5f412d8e4bd4e2f824dde03f502d8e49d50cf834dde1df51cd8e4bd52cf824dde3ff50cd8e45d544f834dde5df503b0c97bac9e029bbcf7eafb60937760fd056cf2aeac6d606b67f29f814dde11857d4eb1c9e37c920e26ff21d83a9afc0fc1d6c9e4f1fd8e9d4d1edf55b99fc9e37b37f737797c4f69cae4f13dac323ec2f7cc969a3cbe4757c632d56093f756e17b9065dc81ef793ec0e4f13dd6079a3cbea7fb2093c7f7901f6cf2f82efc434c1edfeb7fa8c9bf05b6c34c7e2bd80e37f9cd603bc2e43780ed48937f1b6c4799fc7b603bdae47780ed1893bf076ce66720fed9a7689b79c5d53ffb146d2b33f93f81adbbc9df0db61e267f17d87a9afc1fc1d6cbe4e781ed7893ff03d84e30f93bc176a2c9ff1e6c2799fcefc076b2c9df01b6de267f3bd84e31f9df82ed5493bf0d6ca799fc17603bdde46f05db1926ff1bb0959bfcafc126bf6534176c95267f0bd8e499bf5f814dde1339076c7d4dfe976093f74ed6834dde4ff90bb0c97b2ca54fd16d57b741196b609fdf60d974db67fded241c03adb76c9a7b9d27eef516b72caf0346a9c37ab0495e7e7fa608d6b1b7550165e478de31c65f3194596c1aaebcc36e6de21a34feb68e8c27e4b7bb84652d304999e5c084eb0a5783551fd40a7fafae21f1ba34fe3e965d17d1bec151976f5afa7af84dcf2a4f75ad28b2f68fdeee76475da5cce3dd9b7479c2e453b09ff0f7db5e717c2f9f6ce7e69e7f8fb01caf43cafe75fd1622fe066542be9b5d032d8a9affbea5d88b21bfb27b5359fb777c446bfcad2119bf67fbfdcc75d67aa5506695a3fee928d9faefe9b70ef53e790ae24ce2c8e77167558c4615a09194590f1a79f81d44e7f1c4fe1d445d46f67f47ab8cac8bbfffb51afa285d173996e3b9a27decf7d4975520bb6cfb9f9ce67f29d8f05a875d47fc5d4a1cbfe058bbc1b2e97a6df4542ff125db9665f197cbf8e51dcba6b93778e2b67f0f52963700a3d401c762f6efe715c13af6b6caa18cecbf8e31fe8aa1cc07d6f135f9dfc46c1cbf485b906382b0607b92321f5be3177bccd660d507b592b29ef6673f575dca1dfa4a999f5afa7a1823f7f319bbb87ff476b73bea2a657e01c7955fc1f844621bc72f7f737c2f9f6ce317dcbf6b92afb373acbdc6e1fb2d604dc87705fa96f18bf8113b8e8dff0ae317fb1d52a2b5b0eb3622e34c64b7d7db68ad87ef9e5aeba87f3a4ab6fe6b2c9e3516b3de275f409cfd0dc62f0d9e98d6c668540e1a4919fc4dde773df1d8bff12a1ce20f8f391dad32f8fba552e67f5ae3173996e33d14298bc7795fe7fb71c74bfcbd0fb13500a35d471d1f658ef10b5e03dc6ad97cc691f8926d6fb5ea80e397ad60933c8e5f365a369fe3f78d16b76bacd260f23816933c8e5fde89d9d61950c61ebfd8fef098d3d95c24f53d7ec1df6d4847bb5f6fc2df6e2801265c57b8b65af541ada46ce7c8cbfb062b5d7511edb73aea72a0a5efdb1e983cd535ebf805eb2a650eebd1a4cb11268f7d1f8e5f4e727c2f9f6ce317dcbfc95f2b6c1cbfac01ce34f841df38ce48c877b3e3b78c5fc48fd88b217f628fa6b2f6354ad15ad8751b91fe1fd9edf5deb1d62b8532eb1cf54f477ec70a6b2d66bd4f8e86389338f279dc5917a3d119a09194d9081ae56bfc221c387e118e8e56191cbffc731c067d94ae8b1ccbf1da8694c5e3bc87be2cebf152fc9582ad0118ed3aeaf8d87a4c13af8feb61786d4a3ed9faafedd1ee3c49ce95c26b53e82bf9e34365a6afdc66b6d5ce6c57ee41e238774be2be1bfbe906b32d39366db17c17439973a0af94315f7bb3de366b3d5d66b3b56d59e774b06fb6b62dc7f8064ff5dd6231097703d8a5cc05d047fe1dfac86dc9b365e637629f241ae2270d7961f0a35565790a7cb484a701787c8ca37cc504b6ada4e75b6eb6b4b263ad14ca6c01fd367bd02fdbb56bd76fa705e6c01c980373600ecc81393007e6c09c0ecc81393007e6c01c98a3c05cfef53e81393007e6c0ec8559f3c8fd0461c5b9d2db4918c5b615781a92e729c767f164fbfabece2f7b34f9f57d7f4fe642545a752e863247f56c2afb85612b81eff1fd010d96cdd37dc2acfb52fce11cb106e0f1f5fcc4568b67ab430bc99725e6bbb2c68fc695e5fab967fd8ce6364bd7ed0e4d7db557bc778b9a627b7dd7e2c17ba3387770a7f98ff31b77421d1a3cd721b2ea20feb02db9e637be0b8c3ef6331e4ba43f90fbe1786f5acafc87d156ee8b27bfef2bcb7df61b9ba04ee968f7f82e8632ffd9a34997ff32799c1b8273524a7aeefebd7cb2dda716fd3ccd55cdecdf0dc099063fe87b3db026e4bb027dcbdc37f183cf4afc73ee71cfa6b2f6f368a2b56b7e28b2dbebd9cf749542998d8efaa7a364eb1f376f1b9f278be0182b71e4b34fda18a3d1e9a09194c17190af63e7368b4738f0d943e1e8689591758ba1ccc1464399fb26fd3cbed7c8750cf07d1c936dbb8e63f67121e5a8a38e8fd18736f116fafcaf5ed05f243dffab17c410ced38aaced57c2f61b4cbe63147f6c913227c1f67dce2fdb66d559581ac02e654e857ea8c6e47319ebefadf3b6b8b1be8f676ef1bd5cf2c9767cc763cc260f3c9eea59ee3a766db6ea84cf1c9d00f5dc5bcfdcf8dae7a8858ca1b6585ae0b363c3acbe234e473c576dc84b5d2a9de3c14a475da4ccd9563f95fc33b58de37d5ffbcd7ed665aba3ae52e602e8ff2e82f1bceca766c761c7f7f2c9d61fe05c7b0fcf0a66f6ef5ae04c831ff48dcfa424e4bbd9b31e32de173ff8ce17c98f82e3b7fd8cab688defe391670590dd5e6f8bb55e299479db51ff74946cfdede74ad659cc7a9f5c0a71361ac6fbbefacdb76334aa048da44c03d8e4d82ee571dc8cc7fd6d9eb8e3c6cddb80516cd83fd780a6c98f91dde72cf63554d778b0d2e2c7f1e064e867538eb2f6b5615fcfbdec889a7fb2f5659e6320f35e2c3c074c839fd3c06e9f1b9e666987e78675fec7ddce6b97f675533ca710ee064b577cf663ae754e2bfb09af198a6d97f9efe93cadca75cd50385cd70ce759e321fbded54e475d440329db2edabdeff9ca2a8bd7ddb2ad67e77758eb687d7759e55c7e3ac3ba5f4509e95b515e6ef36fb738f1ba77b67b82d20e1aa08c6ccb6e2b786e2c65165b7d925d56effbff3eb8491fd98fa21df6271893be9ea1dc61d55f96c59f667ccfe477004ff27d57e3f34ab95c07de063c3efa764f7d74391e633b27b6dd81e35de7fdef5a5ae5f17eadf3982fcb0d0edfc9695139c175fdc9a5c516078faffb28715a6c71f84e4e8b7e35ae7ecea5453ee73ec469b1d9e13b412d26e275cf6c5a6c72f0f8b816954d8b4d0edfc969d1bf3cdb7d0dd4c2f58e185fd71ee2b4107fb9326f2660ee6ce593f15d35de759dcca5c53b0e1e5fe7cd715abce3f09d9c1615fdf01a5d362d3638787cbdf32e4e8b0d0edfc969316060b67bbaa8c57a078faf7bba715aac77f84e302e6a5dd7725c5abcede0f1f55e8f382dde76f84e707cd8cf75adcda5c53a078faf77b4c569b1cee13b412daaf1ba6b362dd63a783cbc6f29ab166b1dbe93d3627c5fd7356197166b1c3cbeae09c769b1c6e13b392daa0768dfab5ba0c56a078faf7741c569b1dae13bc173a84c5cbcd5022dde72f0f87aaf679c166f397c27a7c584cc586b550bb458e5e05995672d56397c27a74579e698fa660bb478d3c1f3669eb578d3e13bc1b8c89c4fbed1022dde70f078f8dd84ac5abce1f09de071241317afb7408bd71d3cafe7598bd71dbe93d36262e6fad36b2dd0e235078fafdf7488d3e23587ef04afb964e2e2d51668f1aa83e7d53c6bf1aac377725af4c91c535f698116af38785ec9b316af387c27a7456de69ed8ca1668b1d2c1b332cf5aac74f84e70dc99e92f5e6e81162f3b785eceb3162f3b7c2738eecc5cbf78a9055abce4e07929cf5abce4f09d60df991977bed8022d5e74f0bc98672d5e74f84e70dc99d1e2851668f18283e7853c6bf182c37782e3cecc71e4f91668f1bc83e7f93c6bf1bcc377827191e93b9f6b8116cf39789ecbb316cf397c27785d2bd3773edb022d9e75f03c9b672d9e75f84ef07c24738def991668f18c83e7993c6bf18cc37782f78a3263f0a75ba0c5d30e9ea7f3acc5d3e07b5be2be1be7738b0f998b75aaa545319419dcabf1bfccc58ad351b681f3cab02e3f48bc2e8df3ca9e8aa9cb0fa02e526604d4a533d89364f254d74ccc7c1feaa4b7fb9ea3ae52e6dc5e4dba9c6ff229d8273b41b76b1ddfcb27db1ca4a7cc7f5de72792af732656bf079c69f083be1f07d6847c57a06f999b2e7ec45e0cf991bd9aca4a39d143b41676dd469e347964b7d77bda5aaf14ca3ce9a87f3a4ab6fe4f583c4f58cc99e71e20ce248e3ccd1dcb303d19a3d1a9a09194c1397b3b3df1bc67f10887f8c379861dad32b26e319419077d14ce2b957ac6cd917cca53fde2e6488a3f9c5bbc0d18ed3aeaf8f812e67ecaef85cb6f896b9bfc36785fd8ce40cba6eb3ac8535dc5976c5b960701a3fc56f9c0fc3356b6947180c5a8798678d02c057ee593ed78310478067be0f154cfcc7168a855a741569d4aa10c3edb38d4433d8bc0af6c5b9687826f1ffb1cb59063f2499616c550669e357e8cd351b6a1e377a0a32e69cf75916d5741deb7ef6196effe96ef54d47c3f4751f6f6350c98877b60d6db1d91fc7633edeb4cb32d8929f1d31fea74166890549dd0b78cf3c48fd88b21bf02c679524ef490e397b0970027b2dbeb0db1d62b85326947fdd309d77f84c533c262d6fbe44118dba593e728c77d6a6fbb3f68372246bb34682765f0f837d09376c32d9ee1966fcd23639ca16093b182f0a7e0fbbe79e0b6fbbda10e6eb10d0346d7586740f28c59c73a0380516cc381679827cdec7d7d92a50f1e973b5a6564dd6228f3021c1b538eb2baddf52a6aaa577b634fecd931d3a777f4a057cad4153fd98e5dc2d0d9d43b699efd8dc6fa33bb7e465df5a4da2b6b1b6f3d0a5ab18589ff8b1cd5680736ccb777d822e35eaa590cb64e26df016ced2c5952b05d29af5fb7e74b2ed443b65d6c71760696247da7c0877cb2854e27e0f111ca3a744accb64ce85c5b37a5be16e3a383c5d99ad8d1dfb5cf522e6e5bbef683dd26d2b06cc760b127ffeda1be6958167f7adf949afcccea9a9b47d44d9a33ad767afd6c14ca6ed8982f8a9aef00fb7f9ce0be1a1d060056183b870e56bdb0c390ef64c7ec9f386745e659d5ce51f34fb606ba3fe8b65fe23c8d0df440b3ad9aeaa9532f9f337eea949a73e74cafa99f32633aee4da1ee6651db7b5abeef08365717af3fd84d62b785eb7672d85c1f3f7bac31b2f6033f6958167fa9a8f99e129b1c35f7035b3bc7baed212fe5eda8f0d2544e80ed4b73d6dfe91da3778816bd53d4147e3214d07dbaee3bf4ab6bf5104ceff403a2c6503a48257db5f21095f41bf40e53e970958e50e948958e52e96895f42fcb1eabd27151e36b7abbabd4236a7c43a31edd1d0f6cef03ef8951e370ef64957aab744ad478c9f4b4a8f1f572fa676cf573fd1551e3ab3df42984be34a187ddfa34539f12e961b01efeea4b28fa729a1e56ea21bb1e8e0e8f9a4ee5f4a9ab3e953b5ba573543a57a5f3543a5fa50b54ba50a58b54ba58a54b54ba54a5cb54ba5ca52b54ba52a5ab54ba5aa56b541aa9d2b52a5da7d2289546ab3446a5eb551aabd20d2a8d53e94695aa551aaf528d4a1354aa5569a24a93549aacd214956e52e96695a6aa344da5e92acd5069a64ab354aa5369b64af52acd51e91695e6aa74ab4ab7a974bb4a77a874a74af354ba4ba5bb559aafd23d2addabd27d2addafd2032a2d50e941951e5269a14a0fabb448a5c52a2d5169a94acb545aaed2232aad50e95195bea1d2632a7d53a56fa9f46d95bea3d277a3c65b22fa5690be45a26f3fe8db704f458db7e69e8e1a6f29eb5bec7aca819e82a1a7a4bc18354e59d253b8f494363dc54f4f79d45340f594583d45584f99d653c8f5947afd88817ee4423f82a21fc9d18f28e947b6f4236cfa913efd88a37e4c553ff6a91f636e881a1f73df1635be2240dfaad597eaf525797d7b6257d418931fa8f443953e54e923953e56e9472afd58a59fa8f4894a9faaf453953e53e9672a7daed2cf55fa854abf54e9572afd5aa5dfa8f4854abf55e9772afd5ea53fa8f44795fea4d29f55fa8b4a5faaf42f2afd55a5bfa9f4af2afd5da57fa8f46f51d36541ec400e33bd4e77b35c5d5f5f3b6d667d59fd8cb26973a6d64f9939f5b6b2b953ea2797cdb8a5b66ee2d4197371e59d66e523ccf288babaeadbcaa64c9f507b6bd98c39f5653326968d9f3167fa846603873f9b958ededd63f58409f1cefefdeb90fe9f563aed68fac383ccf205d9ebb65ffb5608d2b5352bf569dfba0a4d32474d395dbeaa71ec5d367bea8cfab2f2b2e9eaaf3ad8cf985b3be1f432fc6eb61279767dd9ecfaeabafab2897533a695559c8edbbd7bff5654e2ffeeef07e6d1635a01f3a3635aa7e8ef5ae3ecf4635be76cd8b1ad70769159e928b3ac8773194fb367d7d6d58f9b567debb8f153eac7cd9e727b2dae76796b7c8d6ecd4ad35ab3527d2b259cdf1a670b5ae9ecb1d6387bbc95ce7eddcaf5fe6eada7afe1d4d6954d983221d304ebd4a26e876513aaebab71bdfb8e6b9dbf45dd5bb7deb2eead10f3b1d6acf4562b09df6fe57a1fb506f2d3d6acf43f5a49d8a947ebd64bf56805e401ad59e98c56129e6dd66bd5b8e2df5b437a50cfd691f6ecf935484f6ca5d3a13d5b51c3b35ab3d2a45612ce8a9765f69cf1f575d535f5f12bdff27556beb335d55cd4ca6a0eead50a67e9d6ac7443afd611ded91a67cfe7e02cfaff2b78bbaf19dc0600", "isInternal": false }, { "selector": { "value": 2603445359 }, - "bytecode": "0x1f8b08000000000000ffed9d77741cd775c667d158164b1024c15ea046b3015c2c1a0136b0774a9464f5429004455a24419150b32c4bb224f7debbe516cbbdf758a97612274e1c3b96bbe36e4b2eca3f39ce49cef1c97bb3ef1a1f1e67d658682e78077be79c8b7d73f7eddcdffbe6ce9bd9f766074f054190098a4bb5b18b8273177abfcfbde69fded296e0b6f29c9c99947056a584b33a259c3529e1ac4d09675d4a3827a58473724a38a724c869d9aa82914bd2bc5319744d9a319b324deb53a0692e659a4e4b81a60d413afaa8e929e16c4c09e78c9470ce4c09e7ac947036a58473764a38e7a484736e4a38e7a584737e4a3817a48473614a3817a58473714a3897a484b339259c17a484f3c294705e9412ce8b53c27949829c2b8173a97b7d867b5de65e97bbd715ee953eb3cabdb6b836d6b8f55663ab2d9bb136efbd82b176631dc63abdf7ba8c751b5b63acc7bdd7ecdeeb35b6d6d83a63eb8d6d30b6d1e9b0c9d866635b8c6d35b6cdd876633b8ced34b6cbd86e637b8ced35b6cfd87e63971abbccd80163971bbbc2d895c69e69ec2a63571bbbc6d8b51ecb75c6ae377683b11b8ddd64ec6663078df51b3b64ecb0b123c6068c1d35768bb163c68e1b7b96b15b8d9d3076d2d8296383c64e1bbbcdd81963678d0d19bbddd81dc6ee347697b1bb3dcd9e6dec1e63cf3176afc7f95c63f719bbdfd803c69e67ec41630f197bd8d8f38dbdc0d80b8dbdc8d88b8dbdc4d84b8dbdccd8cb8dbdc2d82b8dbdcad8ab8dbdc6d86b8dbdced8eb8dbdc1d81b8dbdc9d89b8dbdc5d85b8dbdcdb1d081f07663ef30f688b1771a7b97b1771b7b8fb1f71afb0b63ef33f6a8b1f71bfb80b10f1afb90b10f1bfb88b18f1afb98b18f1bfb84b14f1afb94b14f1bfb8cb1cf1afb9cb1cf1bfb82b12f1afb4b635f32f698b1bf32f6d7c6fec6d8df1afb3b637f6feccbc6be62ec1f8cfda3b17f32f65563ff6cec5f8c7dcdd3fc5f8dfd9bb1af1bfb77e7fb867bfda6ab4be362ff61ec5baefcb87bfdb67bfd8e7bfdaef799ef19fbbee7fb81b11f7abe1f19fb4f57feb17bfd897bfda97bfd997bfdb97bfd857bfda57bfd957bfdb57b7dc2bd3ee95e7fe35e7feb5e7fe75e7fef5e9f32765953b13c39185efa8284faa88ea3793ba742e22f0d462e568b6af71ebd363b7f8d5ba757d2aed6add77afe3ab75ee76d67b25b9fecf91bdd7aa3e79fe9d6677afe26b7dee4f9e7b8f5399eff62b77e31f8b3018cb93abff5553b57067c94af55e0ab75be6af0d5d1e6c037c9f96ac147fbb70e7c539c6f12f8a63adf64f0659d6f0a6969acdef9fa82a47225df6fb79b4b7abb6e1e6a5af2bc87ed761b9878a727cf3b60b7dbc8c06bf36386dbd674c89b99ced708be59ce37037cae0bfad331677db39d6f16f8e6385f13f8e63adf6cf0cd73be39e09bef7c73c1b7c0f9e6816fa1f3cd07df22e75b00bec5ceb7107c4b9c6f11f89a9d6f31f82e70be25e0bbd0f99ac147f7b85c00be8b9def42f05de27c17818ffada8bc147d78697389fed272667e033ce4f7d54f819ea9fc1b78cfa66f02da77e197c2ba84f06df4a884dbe55d0af90afc5f9a88fb2eff5ba725f90d43151088f89b5496fd76cd96e777df2db0de7ed3604c35af7419cb5a0d546574ef0dea0368c9d714671c85f03e55d5097ea911e749e21767b3e59e7ca1b4b7caed7fb5c0eeaac8b687f5f906cfbd77b3ceb3de65a683f4fceb617346747bd949db357435d3ff7e89a6722e6ec5ee060c8d92ecdd9512f65e7ec00d4f5738fae7b2762ce5e071c0c39dbcf93b385bce66c718c2c08a2738fbefb4cc49c3d061cc9e76ca7e6ece897b273f601a8ebe71e7dff9d88397b0770249fb3ddfd7a6d30eaa5ec9c7d05d4f5738fc6622662ce3e041c0c393ba0fdeca897b273f66d50d7cf3d1a179c8839fb6ae0483e677b9872b65d733628ce77064174eed118f544ccd9478023f99c3dace3b3a35fcaced9cf435d3ff768be6422e6ec475cd9ce337cc3cd332c04df379d6f11f0269fdb473a9872bba0b95dbc0f2408a27394e6ee26626e3fe6ca368f1f877b0fc8f76de7bb007cdf71be0bc1f75de7bb08dac5700cf4eb3130eaa5ec63e0fb50d7cf659a479e88c7c0d7818321670f6bce8e7a293b679f80ba7eeed13d0d1331677f041c0c393ba0393beaa5ec9cfd03d4f5736f992b4fc49ca5fb4aedf5c28fddf5c20af0fdc4f95682efa7ceb70a7c3f73be16f0fddcf95ac1f70be75b0dbe5f3a5f1e7cbf72be36f0fddaf90ae07bc2f9dac1f7a4f37580ef37ced709bedf3a5f17f87ee77cdde0fbbdf3ad01df53ced7e37c76be8beebdfaaaf3d97d4b1af505c9ee5bbac792b64debabc621768317bb611c63377ab11b2362b730c4ce420c5a32de7a1f945b7879f2b960e4ef3f28d6eae463b5dbb6b706a36ffb6ae0c933b43d0b3146c393079eb6e479c27b7d0bc96f37dcc7ad9ea65988d50aed6a6768570662d1b6699de2e5c087fd777b046347f28c850cc4a26dd37a0730920fcf27745ea7e3c79e0f97668679198ea5f09a88e2d1b3bf886335f8a9ceef670db3ad706cf5f03e9e5bdb3c1f535e867941b168dbb44ef1eaa13d6de3cf58182d63de63e4ea2332108bb6edc7c6e3bd65fc351bd57ecd81ef3cf44985b1f649f5c0361ed72971fb5a4a6c8ef355066250df469a17c04f7566bb1f24d8be6d07f4bb0cc75fa1dceb37ec0f92cfe3421e8febd1f0b4030fc7b1cf74bce6f1bcffc720d95cebf4b46af3b4ca419d0ed0af9341bf52d721144f99955999955999955999955999955999955999955999955999955999955999e533e3fd1738bf49f5560961245f017838c6f9c3e747b96dd1f6edbcce77605e27f9798b421ee72ce91ec3e55e9b6ba0ce9399e1ba3f80f9747f6e10e73457f16a37aafb2cea8373e76239e710e3e681a3e62f9b138b5d38cc35df669fa1629f43d6eae9ba2a425386fb5446689af134c5fb14577a3c364fe7550fb371ccfd953b17895a5139c9b93dbcc78077bf14fb0fca85aa6064ff81e799aec4638f9cc3a4f9f22e2f760dd4f99fccf0bea17b51e9ff1cfaf73cd93adddeb6e933cbc1dfed6dbbc17d96386abdedb7c267a9ceff419ffaf6aae04f9a71dcff81fd72006dc5a50fca386f9efc79b8388fdf5e064f27f070f4334cd71b793c06929ec7eff6b48aba8ea13a5da05f37837e51d7a2b44ef194599995599995599995599995599995599995599995599995599995599995593e33fe569458b350af2084719cee7d08e733e8f92fb47d3baff3d2aae1b8dcf37034e7b4c26b730dd4f95ad570dd57ba727d70eefd0e71fb92613eafe4bea478f5d01e9c0be2fa3d7787c7d311a105959b138b5d9cc74f5ee3e179fc764fd74284a65cc72bceb1a2a678bcb6793c38375a1f9c7b6f4916b6331ef70ec5e505c5c363a9037c54c6df4773ec673c97f8f7f5503c9cbf7ed469db1070edfb429eb3df58036dea0bcecdef1aa8f361e8fb3eeaca780f07de3bf258c4fbb4949aa726fd589e65972fcefbae05ce3e8883b1d7016b42b1db3076c619c5217f0d94bf54355c97ea911ea435b1db63849e0986ecfee7dabccfe5a04e4f44fbfb8264dbdfebf1f47acc769f7c02f2ec3138ff73f5493d311a2d078da80e5e0771dd93e7f791fefd8d78df5e9d5707af59a8ce57a08f8abb7f34ea9e43aef358dc3d8751d7c69dc0e8b7d1bfcfb3d2efd37a1cfa8ba4efd37a1c7208efd30abcedaf80ed13575d107f6ea13adff3b6ef5f93d367f03e30aaf343e82f1adc3d8bf5c1b9d7df78cfd4787cbf8abb4f9ae2e1750d1edb7faeed96790dd4ef4b9019730259f03a81eafccadb67dd31dcab233efb64cc6749ab1657c6ef2fbe7e56871ef84c5f223a148ff95eaf2d94d73dd016aaf35fde3560f2d72dc56bc0e4db3af29a84fa818e88b6529dff8663ed0f708d47fb09bf77d4559ffb3e2da5ae01493fdbe6f17e3e30c696f07ce0daeae1bafe737e49eb729f0fdce57d4ee2f381ff17f2ac0eee43e7eaabd7c568b40234a23af8db203a8fe0b37ca3ce315cf7f6c79d63a29e4189fd7343f5f8b3f9e36a51d70854873e8bd708b31c7383d3d9afeb8f17d2f932c9fb86f1b712ad10177f2bd1caa4671e74eb8375bc2e389fb1f34cb1e39e399d1f87d871cf9c1e8fd88d5eecc6718cad9aabe6923467782672f8fb337c66a95d4a5d9712430e3e579502c6ea1430d6a480b136058c7529609c9402c6c929609c9202c6a92960cc02e3f93cb733e85318ab3e5cfbabd4b506c66e61d2a29cffdfc1fcbf544a5efb606c86ef74a1162dc1e8b5c0ef791ccf7e28f77fbd1003feef821929609c9902c65929606c4a01e3ec1430ce4901e3dc1430ce4b01e3fc14302e4801e3c214302e4a01e3e214302e490163730a182f4801e3852960bc28058c17a780f19214302e55c6441857f23216c6ca687938fee7dfd3f99f630c3cf9a87b4e997e7b52f6ff5b637e3e69db589f1b87f796f0fe4fb8a7f76c3b8e7b47ca7db65da9ffb7cac458182b23d77decf83b9ed1f0e0ef22a37e5bc3c058182b23d7ef5ff0377aa3e1e902cd3a233463602c8c9591eb5eb972efe5c47bfabb223463602c8c9511efab4e9027d4acbb0c9e35a0597784660c8c85b13272dd979c8518a3e1e901cdd64468c6c058182b23d36fdb42cd7acae0c1df80f54468c6c058182ba3e559cba4596f193c6b41b3de08cd2431224fd2cfc9ee8d88c5f19bc172db4e0cc83825058c5353c088f74970f45fa5ee93e8e5d5a730567db8f657a9fb243036c3ef63422df0f7107f4e8bf5bc3c25ef93c0d81b98b4c0dfabfc392d36000fc7ef67b21063343cc49083cfcd4801e3cc1430ce4a0163530a1867a780714e0a18e7a680715e0a18e7a78071410a1817a68071510a1817a78071490a18f1bb2ac3b562c9ef2f1b2678ecb8ef2a133d76dcf792891e5bf35cf3bc12626b9e6b9e57426ccd73cdf34a88ad79ae795e09b135cf35cf2b21b6e6b9e67925c4d63cd73c97143b0d63fcca38f11891a739399e3cb61d63f509687b5f044f86a9ed186b9380b61343da1837a680716d0a1855c7e23d886361b43c9b99783695c1b31978b630f16c2e83670bf06c4d9e27cca92d65f010430e3eb736058c1b53c0a83aaa8e921855c7cad1511995511995f17c30a6a10f57c654e46361ac8c96675bf23ca1665bcbe0d9069ad1e7da78190b6365b43cdb93e70935db5606cf76d06c5b84660c8c85b1325a9e1dc9f3849a6d2f83670768b63d423306c6c258192dcfcee47942cd7694c1b31334db11a119036361ac8c966757f23ca1663bcbe0d9059aed8cd08c81b1305646cbb33b799e50b35d65f0ec06cd764568c6c058182ba3e5d9933c4fa8d9ee3278f68066bb233463602c8c95d1f2ec4d9e27d46c4f193c7b41b33d119a313016c6ca6879f625cf136ab6b70c9e7da0d9de08cda432ae4d01e3c6143032eb58182ba3e5d9cfc4b3af0c9efdc0732913cffe32782e059ecb92e70973ead232788821079f5b9b02c68d2960541d5547498caa63e5e8a88ccaa88ce531f6a58051f7b5324a6564f87e55f23734974ef0d80d5eec860a891df71b9a891e5bf35cf3bc12626b9e6b9e57426ccd73cdf34a88ad79ae795e09b135cf35cf2b21b6e6b9e67925c4d63cd73caf84d89ae79ae795105bf35cf3bc12626b9e6b9e57426ccd73cdf34a88ad79ae795e09b135cf35cf2b21b6e6b9e67925c4d63cd73caf84d89ae79ae795105bf35cf3bc12626b9e6b9e57426ccd73cdf34a88ad79ae795e09b135cf35cf2b21b6e6b9e67925c4d63cd73c9714fb40f2b10be53e63e600f0703cf386a99d79bbddcbddb6fe98a07e56ab2b3cad2ef5b4ca419dcb41bf2b18f4cb405cda36ad53bc72999f2180992976619ad9c614683fc5d8e8e961e35fc9d4f6b8befeca091e3baeaf9fe8b1e3fafa891e5bf35cf3bc12626b9e6b9e57426ccd73cd7329b1b15c1b0c5fb7d3f34fed369ee9ca356e1d59c94f752e9b547c6d08f418e288adc7909e2b2a21b6e6b9e67925c4d63cd73caf84d89ae79ae795105bf35cf3bc12626b9e6b9e57426ccd73cdf34a88ad792e2fcf311faac68127f07882123c1b84f1ec16c6b34318cf1a613c8b85f1740ae3992b8ca7208c6786309eadc278a608e3592e8ca75a18cf26613c79613c7b85f12c11c6b34218cf3c613c3385f14c15c653238c67b3309ed5c278f609e3d9238ca75718cf52613c3dc278b609e3e912c6335f184fbb309e59c278560ae3c90ae36915c6532b8c67a7309e16613ccb84f1ec17c6b34e18cf02613c4dc278ea85f1e484f1d409e3592f8c6797309eedc278ba85f12c14c6d3218c67b6309e55c278a609e36910c6b34518cf24613c8b84f1cc11c6335d184fa3309ec9c278c6e37943e5f06404f06483739f499685f70f80afcafbacedafda9a86dfbfcaf9abe03357bb7275c4b6af021ffd36fcea88cfa24e57415bfa5c39fff49650278cd507eb14af1e38ae16c2734018cf64613c8dc278a60be399238c6791309e49c278b608e36910c6334d18cf2a613cb385f17408e359288ca75b18cf76613cbb84f1ac17c653278c27278ca75e184f93309e05c278d609e3d92f8c6799309e16613c3b85f1d40ae36915c69315c6b35218cf2c613cedc278e60be3e912c6b34d184f8f309ea5c2787a85f1ec11c6b34f18cf6a613c9b85f1d408e3992a8c67a6309e79c2785608e359228c67af309ebc309e4dc278aa85f12c17c6334518cf56613c3384f11484f1cc15c6d3298c67b1309e35c2787608e3d92d8c6783309eaa081e86ff7f19f2d0fd6bb46d5a3f202436c37e08ffefe7354c6dbad66dabd66d97f8295e0dd4b9ce5d18d8fb51f0b3c4e5df6f88f7ce5d0b1a5dcbd416da1f196fff30c72ee07d950130049e3e41040fc7fda84ced1c918709feffd9bcd5ea3a4f2b7fdfe5a0ce35a0df750cfa45e5f69f8e01f79a4666cb43e70e62cd42bd0d4218c977252f4f78dc6e08462ea58edbeb8087a30f636a67787c5defb5694384ee540773f57a8676461d3bb47e3dec87b4315b9e4dae4cac59a8b7490823f9aee5e5098faf4dc1c8a5d4f1753df070f43f4ced0c8faf1bbc366d8ad09dea60aedec0d0cea86387d66f80fd903666cbb3d99589350bf5360b6124df75bc3c1d5968332da58eaf1b8087a3ff616a67787cdde8b5697384ee540773f5468676461d3bb47e23ec076556e62866cb43bf3121d62cd4db2284917cd7b3f274e4b3d0665a4af56337020f473fcfa47bd88fdde4b5694b84ee540773f5268676461d3bb47e5344ece620592d6e1e85163747f0dc3cce5a50bc7299af4921b3eaac3ac731abceaa731cb3eaac3ac731abceaa731cb3eaac3ac731abceaab35d5467d55975569d9360569d55e73866d559758e63569d55e73866d559758e63569d55e73866d559758e63569d55e73866d559758e63569d55e73866d559758e63569d55e73866d559758e6396a0b3e5a167c4106b16ea6d15c248be1b7879c2df056d0d462e196fbd0fca3703cf8d0cfa30b533bc87fca0d7a6ad11ba531d3cbe0e32b433ead8a1f583b01f0e96c17c530a9955e7b1315b1e7a562cb166a1de36218ce4bb919727ecc7b605239752fdd841e0e1e8e799da19f663fd5e9bb645e84e75f0f8ea676867d4b143eb144f9995398ed9f2d0ffb021d62cd4db2e84917c37b3f214c2df376e0f462ea5fab17ee03998384fb11f63d03decc70e796dda1ea13bd5c15c3dc4d0cea86387d60fc17e2887f9a61432abceaa731cb3eaac3ac731abceaa731cb3eaac3ac731abceaa731cb3eaac3ac731abceaa731cb3eaac3ac731abceaa731cb3ea5c393a5b1efadf21c49a857a3b843092ef202b4f7b38efb02318b964bcf53e281f029efec4798af30e0cba87f30e87bd36ed88d09deae0f17598a19d51c70ead1f86fd30d1996f4a21b3e6c6f8306b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7314bc80dcbb3d39589350bf5760a61245f3f2f4ff8dc839dc1c8a5d47d3b8781e710833e4ced0cefdb39e2b5696784ee54078faf230ced8c3a7668fd08ec076556e62866cbb3cb9589350bf576096124df215e9eb01fdb158c5c4af563478087a39f676a67d88f0d786dda15a13bd5c15c1d606867d4b143eb03b01f945999a3982dcf6e5726d62cd4db2d84917c877979c27e6c77307229d58f0d000f473fcfd4ceb01f3beab5697784ee540773f528433ba38e1d5a3f0afb419995398ad9f2ec716562cd42bd3d4218c9778497a7908536d352aa1f3b0a3c1cfd3c533bc37eec16af4d7b2274a73a98abb730b433ead8a1f55b603fa48dd9f2ec756562cd42bdbd4218c937c0cb131e5f7b83914ba9e3eb16e0e1e87f98da191e5fc7bc36ed8dd09dea60ae1e636867d4b143ebc7603fa48dd9f2ec736562cd42bd7d4218c9779497273cbef605239752c7d731e0e1e87f98da191e5fc7bd36ed8bd09dea60ae1e676867d4b143ebc7613fa48dd9f2ec776562cd42bdfd4218c987e78bfd4c3c398f2717a1c5448cdde0c56ea890d88d5eecc60a89ad79ae795e09b135cf35cf2b21b6e6b9e67925c4aed45c53cd2b53f3cc79d43c731e35cfa8e62235ff6372b13bb15fa98258c798da894b1f94717c8e9635c278160be3e914c63357184f4118cf0c613c5384f12c17c6532d8c272f8c6789309e15c278e609e399298c67aa309e1a613cab85f1f40ae3592a8ca747184f97309ef9c278da85f1cc12c6b352184f56184fab309e5a613c2dc2789609e359278c6781309e26613cf5c27872c2780e08e3a913c6b35e184fb7309e85c2783a84f1cc16c6b34a18cf34613c0dc2782609e359248c678e309ee9c2781a85f14c16c69311c0930dcefd3d0afe9ea01a7c747fff7ef03dcb950f80af2a22066de738f868fc94b661fb9b754de73254c1676e8de07a56443c8a736bc467c743778cd507eb14af1e386e15c23359184fa3309ee9c278e608e359248c6792309e06613cd384f1ac12c6335b184f87309e85c278ba85f1ac17c653278ce780309e9c309e7a613c4dc2781608e359278c6799309e16613cb5c2785a85f16485f1ac14c6334b184fbb309ef9c278ba84f1f408e3592a8ca75718cf6a613c35c278a60ae399298c679e309e15c2789608e3c90be3a916c6b35c18cf14613c3384f11484f1cc15c6d3298c67b1309e35c278aa22780e30f1c43d4fe18080d8763d0fbad8250bef8fc7ef000f788cb47e0c18919778f24c3c71cfa0c80b886ddb4fdf25680e2e0befe3efb8b8722aef31d27a544ee17d69ab9978e29edbb15a406cab058d5dd23d0059781f7fb7c09553ab3d465a8fcaa9465e9ef07f4bb404239752f71ae131c7b10f99da99c7e32fc16768443e8bbac5d30a9fa13a1ef7c9c7f507144f9995398ed9f2d0dc05b1e2f96c3c7ef7361ac6a8f32b034fd83fb606239752fde331e0e1387f30b533ecc74e786d6a8dd09dea60ae9e606867d4b143eb2722623707c96a7172145a9c8ce03939ce5a50bc72990fa4905982ce9667952b136b16eaad12c248be3c2f4fd83fae0a462ea5fac793c0c371fe606a67d8279cf2dab42a4277aa83c7d7298676461d3bb47e0af64339cc2752c8ac3a8f8dd9f2d01832b166a15e410823f98eb1f214f25968332da5fab153c0c3d1cf33e91ef663835e9b0a11ba531d3cbe0619da1975ecd0fa20ec076556666556666556666556666556666556666556666556666556666556666596cd6c79e8b78dc49a857aed4218c9779295a738efd01e8c5c4acd3b0c020fc7bc0c93eee1bcc369af4ded11ba531dccd5d30ced8c3a7668fd34ec076556666556666556666556666556666556666556666556666556666556666596cd6c79e899dbc49a857a1d4218c9778a9727fcdd564730722935ef701a7838e66598da19ce3bdce6b5a9234277aa83b97a1b433ba38e1d5abf0df683322b7314b3e5a1675b116b16ea750a6124df202b4f71feb43318b994eac76e031e8e7e9e49f7b01f3be3b5a9334277aa83b97a86a19d51c70ead9f81fd500ef3891432abceaa731cb3eaac3ac731abceaa731cb3eaac3ac731abceaa731cb3eaac3ac731abceaa731cb3eaac3ac731abceaa731cb3ea5c393a5b1efa9f6bc49a857a5d4218c9779a95a73d9c77e80a462ea5e61dce000fc7bc0c93eee1bcc359af4d5d11ba531d3cbece32b433ead8a1f5b3b01f263af38914326b6e8c0fb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb384dcb03cddae4cac59a8d72d84917cb7f1f284cf3de80e462ea5eedb390b3c6718f4616a6778dfce90d7a6ee08dda90e1e5f430ced8c3a76687d08f683322b7314b3e559e3cac49a857a6b843092ef0c2f4f210b6da6a5543f36043c1cfd3c533bc37eec76af4d6b2274a73a98abb733b433ead8a1f5db613fa48dd9f2f4b832b166a15e8f1046f2e179b9878927e7f1e422b4385fb1ed7aaf2bd7bbd72cbcdf0b8c5cfd618fc748eb98e3c84b3cbd4c3c0d1e4f438416e72bb66dff3a579ee65eb3f0fe3a60e4caa95e8f91d6a372aa0178d631f1347a3c8d115a9cafd8568bf5ae3cddbd66e1fdf5c0c89553eb3c465a8fcaa946e059cfc413d727ad1f87d871c7d778c48ecb95f188ad9aabe6aab96acea979e63c6a9e398f9a675473519a335c4785e3bd142300065cfaa08cdf1538ae3d99da998ffa3eb6de6b137e1fc33187f3f57d439995398e9969dca223ebc5267d028f879621662dc673dcb4d76b531ac64d4b319f4821b3ea3c36661bfb8ee4637764bdd8a44fe0f1d07207b3164ced0cfb833b83688d295e0eea609edec9d0ce0cc4a56dd3fa9db01fca613e914266d5796ccc36f65d89c72e3e4f1e63933e81c743cb5dcc5af0b4b3d81fdc1d446b4cf1725007f3f46e867666202e6d9bd6ef86fda0cccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaacccb2996dec67271ebb387e8fb1499fc0e3a1e5d9cc5af0b4b3387e7f4f10ad31c5cb411ddce7f730b433037169dbb47e0fec076556666556666556666556666556666556666556666556666556666556666596cd6c633f27f9d8e1ef713036e913783cb43c87590ba67686e3f7f706d11a53bc1cd4c17d7e2f433b331097b64debf7c27e5066658e62b6b19f9b78ece27c1ec6267d028f8796e7326bc1d3ce627f705f10ad31c5cb411ddce7f731b433037169dbb47e1fec8772984fa4905975569de3985567d5398e5975569de3985567d5398e5975569de3985567d5398e5975569de3985567d5398e5975569de39855e7cad1d9c6be3ff1d8ede1f83dc6267d028f8796fb99b5e0696771fcfe81205a638a97833a98a70f30b433037169dbb44ef12a81f9440a993537c68759734399e398353794398e59734399e398353794398e59734399e398353794398e59734399e398353794398e59734399e398353794398e59734399e398353794398e59734399e398353794398e59426ed8d8cf4b3e76f87b768c4dfa041e0f2dcf63d682a99de1fd2f0f06d11a53bc1cd4c13c7d90a19d19884bdba6f507613f28b3324731dbd80f251fbb90f562933e81c743cb43cc5a30b533ec0f1e0ea235a67839a883fbfc61867666202e6d9bd61f86fd903666dc7f99e46287f76d528c2af76a7dcf77e56af0bdc0956bc0f74257ae05df8b5cb90e7c2f76e549e07b09b48d7c2f75e595e07b992baf07dfcb5d791df85ee1cabde07ba52bf780ef55ae3c04be57bbf2ede07b8d2bdf01bed7baf29de07b9d2bdf05bed7bbf2dde07b832b3f1b7c6f74e57bc0f726577e0ef8deeccaf782ef2daefc5cf0bdd595ef03dfdb5cf97ef0bddd951f00df3b5c7929f81e89f0bdd3959f07be77b9f283e07bb72b1f00df7b5c790af8deebca53c1f71750a6d7f7b9723df81e75e51cf8deefcad3c0f701576e00df075d793af83ee4ca8de0fbb02bcf00df475c7926f83eeacab3c0f731576e02dfc75d7936f83ee1ca73c0f749579e0bbe4fb9f23cf07dda95e783ef33aebc007c9f75e585e0fb9c2b2f02dfe75d7931f8bee0ca4bc0f74557c6fdfb97aefc10f8a85f79187cd4af3c1f7cd4afbc007cd4afbc107cd4afbc087cd4afbc187cd4afbc047c94772f051fe5ddcbc04779f772f051debd027c9477af041fe5ddabc04779f76af051debd067c9477af051fe5ddebc04779f77af051debd017c94776f041fe5dd9bc04779f766f051debd057c94776f051fe5dddbc04779f776f051debd037c94778f808ff2ee9de0a3bc7b17f89a5df9dde0bbc095df03be0b5df9bde0bbc895b19fb9d895df07be4b5cf951f0515ff87ef03dc3953f00be65aefc41f02d77e50f816f852b7f187c2b5df923e05be5ca1f055f8b2b7f0c7cadaefc71f0ad76e54f802fefca9f045f9b2b7f0a7c0557fe34f8da5df933e0eb70e5cf82afd3953f07be2e57fe3cf8ba5df90be05be3ca5f041f9dc7a99fb1c7b33d2e4907d2c8faa8cdad116d21df64684b5f90ec351dc5a26dd37a3b30d23e288c3f6361b48c6d1ea3e5e964d00cf38a9652df993a81a7838187a99de177a62eaf4ded5e9b7250e719d0ce2e867666202e6d9bd6bb2036c73e472d6add7697795ad4601d7742b3e7d3523ad2366cfe1622dad2c3dc16da36f54b3de310bbdb8b9df762637f4c4ba9e3ab1b98d73030dbedf626bfddf0f85aebb645394571f2d0a675a041526dc2d819671487fc35509edf345c97ea911e74fe22769bcbb42f91ddff5ca7f7b91cd4e989687f5f906cfb7b3d9e5e8fd9ee9386a6610e86e321cc811e8f83d6f3a05d6f8c763da01dd5c1f35f0b93766b3c1e5a6f011ebac6e9021f5d2b103f5e67b58e03b7dfef75457093af1b185b22180bc93386d73a2d1e23ad1780917c6b80a79b49337f5f2ff3f4c1f3729d57873e5b037556c3b9311b51d71e774b33c3eda2efe07f0c92edd3eb18f4c2f18100f4093c0d03d08bda59cbc03335181e23383b3478a6ff9681cb07fa8f6400adc6c3c4d74c4433aac087e5ea085f108c1c0ac121591a0ac121d92a4f161c82a1faf6ab946d160d370c9c3c3ef4cc5303a70e9fb9fbf4d0c091bd83b72075ad478fa4712d4052f4d13239181eb4e90b929d8ca9f362954a9ec9f03a09dea73af9a7b7b431b5333ce94df1da54e7b52907756ae1bd290cedcc405cda36ad4f89889d6047146a3175145a4c8de0993ace5ae0c037f9f048a5f771f2a4ca6b0b1ed1d8263fcf136d10055c0adbcf3838fb9e3dd86b5d632605c33b9b7a4f7b456b77821d31b5672d3b226a47406d17644738ed88a63da9d9114b3b42694724ed08a41d71b4238c7644d18e20da11433b42d81c144700ed889f1de1b3237a9700db5781d77eabb667483b226747e0ec889bbdb2b25700f66ac45e7ddb2b453bfa61af10ec374b3bca60cfb6f64ac69ea5ed99d55e29da2b447b456faf70ed2cd506631b9dd69b8c6d36b6c5d85663db8c6d37b6c3d84e63bb8ced36b6c7d85e63fb8ced3776a9b1cb82e2e8fae5c6ae3076a5b1671abbcad8d5c6ae3176adb1eb8c5d6fec0663371abbc9d8cdc60e1aeb3776c8d86163478c0d183b6aec1663c78c1d37f62c63b706c53b744e1a3b656cd0d86963b7193b63ec6c509c31b333647646ccce80d9192f3bc36567b4ec0c969db1b233547646cace40dd1f146798ec4c919d19b2b3027616c08efadb51fe1706c5517c3b6aff92a0382a6f47e1eda8bb1d65b7a3ea7614dd8e9adb51723b2a6e47c1eda8b71de5b6a3da7614db8e5adb516a3b2a6d47a1eda8b31d657e24288e22db51633b4a6c4785ed28b01df5b5a3bc8f06c5515c3b6a6b4769eda8ac1d85b5a3ae7694d58eaada51543b6a6a4749eda8a81d05b5a39e7694d38e6ada514c3b6a694729eda8e4978c3d66ecaf8cfdb5b1bf31f6b7c6feced8df1bfbb2b1af18fb0763ff68ec9f82625efeb3b17f31f63563ff6aecdf8c7dddd8bf1bfb86b16f1afb0f63df32f6b8b16f1bfb8eb1ef1afb9eb1ef1bfb81b11f1afb91b1ff34f663633f31f653633f33f67363bf30f64b63bf32f66b634f187bd2d86f8cfdd6d8ef8cfdded853c1f0ec0676227f702b34d2de3f343470f2f450f3d060f3c9db4f0c1d3f7de2eee63b8f0f1d6b1ebc63e0ccd1138377e287dfe7ba2d9a46d874e64cffddcdc74f1d19b8ab79f0f6a1e6c1a3cd87066f3f75e42c7ee8cbee430bcf8dd87fe4487cb06f553d0dd2ef8e31e82fdde768826657e9b63d3116419e1acb8766568fad4197bab30e7d7bbfa278b5db7cf6c4e05073bef994f9db7fc27c66e0486b33be77d6887c76a8f9ec50ff99a1e6a367064f36b7b5e276af9d328646d4348de143ad4da36f79f0ffd2fd24f2250a0400", + "bytecode": "0x1f8b08000000000000ffed9d67781cc791f76711981620c19c294814cd0862b1c84c02739669c9ca8909a424065024142dcb922ce79c73ce39475db42fd977be7392e39db32507e9cbfbf8bdbb4f7eae7bb6ebf047b3670f0b4d8135d89ae7296c4f6defd4afff53d333db3d3b782a8aa25c545a6a8d5d129dbfd0fb7deeb5f0f496b614b755e0e4cc6584b326239cb519e1accb08677d46382764847362463827a5c869d96aa2e14bdabc9319744d9b714ac634cd6740d3868c69da98014da746d9e8a3a66584b329239cd333c23923239c3333c2392b239cb333c23927239c7333c2392f239cf333c2b920239c0b33c2b928239c8b33c2b924239c176584b339239c176784f3928c702ecd08e7a52972ae02ce65eef519ee75b97b5de15e57ba57facc6ad7b63ab7bec6588bb1b5c65abdf7ac207692a168acdd7bafc358a7b12e63ddeebd66f75e8fb15e63eb8cad37b6c1d846639b8c5de674d86c6c8bb1adc6b619db6e6c87b19dc67619db6d6c8fb1bdc6f619db6fec7263cf3476c0d8b38c5d61ec4a63cf367695b1ab8d5de3b15c6bec3a63d71bbbc1d88dc66e3276b3b15b8c1d3476c8d86163478c1d35d66fec98b1e3c66e35769bb1db8d9d3076d2d82963a78d0d183b63ec0e63678d9d333668ec4e637719bbdbd3ec1e63f71abbcfd8733ccefb8d3dd7d803c69e67ec41630f197bd8d8f38d3d62ec05c65e68ec45c65e6cec25c65e6aec65c65e6eec15c65e69ec55c65e6dec35c65e6bec75c65e6fec0dc6de68ec4dc6de6cec2dc6de6aec6d8e850e80b71b7b87b1771a7b97b1771b7b8fb1f71a7b9fb1f71bfb80b10f1afb90b10f1bfb88b18f1afb98b18f1bfb84b14f1afb94b14f1bfb8cb1cf1afb9cb1cf1bfb82b12f1afb92b12f1bfb8ab1af1a7bd4d85f18fb4b637f65ecaf8dfd8db1bf35f635635f37f677c6feded83f18fb4763ff64ec1bc6be69ec9f3dcdffc5d8b78cfdabb17f73be6fbbd7efb8ba341ef65d63df73e5efbbd7c7dceb0fdceb0fbdcffcc8d88f3ddf4f8cfdd4f3fdbbb1ff70e59fb9d79fbbd75fb8d75fbad75fb9d75fbbd7dfb8d7dfbad7c7ddeb13eef577eef5f7eef50feef58feef549f7fa94b1eed9a5f2a46868e98b52ea9b3afafbed1c0589bf2c1abe582d6add7bf4daecfc756e9d5e49bb7ab75eeff927baf589de769adc7a93e79fe1d66778fe596e7d96e79fe3d6e778fea56e7d29f8f3118ca93abff5d53a570e7c949735e0ab8f866b627d136873e09b180dd7c2fa683f4e00df64e79b08be29ce37c9f92639bf5dfaa2b4f67fa1d76eb721ededbab99ac6f4790fdbed4e65e29d963eef51bbdd26065e9b0bd3ddb6a641decc70be26f0cd74bee9e09be57c33c0e7ba9a6826f8e638df2cf0cd75bed9e09be77c73c037dff9e6826f81f3cd03df42e79b0fbe45ceb7007c8b9d6f21f89638df22f05de47c8bc1d7ec7c4bc077b1f35d04be4b9caf197c4b9def62f05dea7c97808ffacfa5e0a3ebbc4ba9ff33569f83cf383ff547f167a8cf05df72ea6fc1b782fa5af0ad74be09e05b05b1c9b71afa157aed75e5be28adfc2f1eb1db5d97f676cd96ed7637a4bfdd78be6d6334a46b1fc459075a6d72e514ef9569c3d839671487fc7550de0175a91ee941e71462b77dfc7a57de54e673bddee71aa1cefa40fbfba274dbbfc1e3d9e031d77b1ce9e76c7b417376c44bc539fb6ca8ebe71e5ddf8cc79cdd0d1c0c39dba1393be2a5e29c3d0c75fddca36bdcf198b3d7000743cef6f0e46cb1a0395b1ae78aa270eed1f79cf198b3fdc0917ece766ace8e7ca938671f80ba7eeed177ddf198b3e78023fd9cedeed16b83112f15e7eccba1ae9f7b34ee321e73f621e060c8d923dacf8e78a93867df0a75fddca331c0f198b3af028ef473b6972967db3567a3d29c651485738fc6a3c763cebe0338d2cfd9233a3e3bf2a5e29cfd22d4f5738fe646c663ce7ecc95ed78deb7dd3cc342f07dc7f916016ffab97db4c894db45cdedd2bd1c5114ce519aa71b8fb9fda82bdb3cfebecbe38bc0f718dc6740be1f38dfc5e0fba1f35d02ed6238067af41818f152f131f023a8ebe732cd198fc763e05bc0c190b387346747bc549cb38f435d3ff7e8fe85f198b33f050e869c3da2393be2a5e29cfd13d4f5738fee9f1e8f394bf787daeb859fb9eb8595e0fbb9f3ad02df2f9c6f35f87ee97c6bc0f72be76b01dfaf9d6f2df87ee37cade0fbadf315c0f7b8f3b581ef09e72b82ef77ced70ebedf3b5f07f8fee07c9de0fba3f37581ef49e7eb06df53ced7e37cf6fe3bbacfea1bce67f72d69d417a5bb6fe97e4ada36adaf1e83d853bdd853c730769317bb29107b0d43ec3cc4a025e7adf741790d2f4fa1117830d6daf463b5dbb6b744236ffb5ae06965687b1e628c84a715780ae9f3c4f7f5b6a5bfdd781fb7789ae621560bb4abc8d0ae1cc4a26dd33ac56b041ff6dfc500637bfa8cc51cc4a26dd37a3b30920fcf27745ea7e3c79e0f97e68678198ea5f89a88e2d1b3b088632df8a9ce63b386d8963bb606781fcfad05cfc79497715ee00fe3fa609de235407b0a63cf581c2963abc7c8d547e420166ddb8f8dc7fb9ab1d76c44fbb5117c17a04f2a8eb64f6a00b6b1b84e49dad75262739caf721083fa36d2bc0dfc5467a6fbf181eddbb641bfcb70fc152bbd7ec3fe20fd3c2e16f0b81e094f1178388e7da6e3b580e7fd3f47e9e65a87a755c1d3aa11eab4837e1d0cfa95bb0ea178caaccccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaacccca2c9f19efbfc0f94daab75a0823f9da8087639c3f7e5694db166ddfceeb3c06f33ae9cf5b140b386749f718aef0da5c07759ec80dd5fd31cca7fb738338a7b99a57bb11dd67d1109d3f17cb398798340f1c9abf6c4e2d76e9595e1cf36df61e35fbbcaa164fd7d5014d19ee5319a669ced314ef535ce5f1d83c9d533bc4c631f757e95c246a45e534e7f6f01e03defd52ea3f28176aa2e1fd079e673a538f3d7c0e93e6cb3bbdd87550e7ffe786f60ddd8b4afff7cfbfe7c9d6e9f2b64d9f5901fe2e6fdbd3dc6789a3dedb7e0b7c96eafc37f4a96fab89fe57338efb3fb05f8ea0adb8f44119e7cdd33f0f97e6f18b15f074000f473fc374bd51c06320ed79fc2e4fabd0750cd5e904fdba18f40b5d8bd23ac55366655666655666655666655666655666655666655666655666655666655666f9ccf85b5162cd43bd36218c6374ef433c9f41cf7fa1eddb799d97d40cc5e59e87a339a7955e9beba0ce376b86eabec2951ba2f3ef7748da970cf37965f725c56b80f6e05c10d7efb9db3d9ef68016546e4e2d76691e3f7d8d87e6f18b9eae6d014db98e579c63454df1782d783c3837da109d7f6f491eb63316f70e25e505c5c363a91d7c54c6df4773ec673c97f8f7f5503c9cbffe80d3765ac4b5ef8b05ce7ea31bdad4179d9fdf7550e7a3d0f77ddc95f11e0ebc77e4d1c0fbb4949ba726fd6c9b537f965da134efbb0e38fb200ec65e0fac29c56ec3d839671487fc7550fe6acd505daa477a90d6c46e8f117a2618b2fb9f2b789f6b843a3d81f6f745e9b6bfd7e3e9f598ed3ef914e4d9a370fee7ea937aa2b0462b4023aa83d7415ce74efffe4affbe42ec47277875e8b37550e7ebd04725dd3f1a3a07709fc768dba1f3987f5e18c97d9ed57e9fd6f7a0bf48fb3eadef410ee17d5a91b7fd95b07de29a10259f5ba8ce0fbdedfbd7e4f419bc0f8ceafc04fa8b0677cf624374fef537de333516dfaf92ee93a678785d43ef8da4ed96b91beaf7a5c88c39812c789d40757ee3edb3ae04eeb581cf3e91f059d28a9e4385df5f7cfdac0e3df099be5474281df3bd5e5b28af7ba02d54e729ef1a30fdeb96d23560fa6d1d7e4d42fd407ba0ad54e7ffc1b1f627b8c6a3fd84df3b6a6bcf7f9f9672d780a49f6df3583f1f18634b783e704ded505dff39bfa475a5cf07eef43e27f1f9c0ff0579560bf7a173f5d5eb13345a091a511dfc6d109d47f059bea1b18e0bf57d1aafa5b07f6e004db97e77e09ffffc71b5d035c24a4f63bc4698ee98a7399dfdbafe78219d2fd3bc6f187f2bd10271f1b7122d4c7ab6826e7db08ed7051732762b53eca4674eb78e41eca4674e8f45ec262f76d318c656cd5573499a333c1339fefd193eb3d42ee5ae4b89a1113e579301c6da0c30d66580b13e038c1332c03831038c9332c03839038c5380f1429e3719f4298e561faefd55ee3c8eb119fe2f48b1d2ff8dc1fc7f4aca5e57606c86ef4bb1166ba2916b81dfa1389eab50e9ff512106fcbf00d333c03823038c3333c0382b038cb333c03827038c7333c0382f038cf333c0b820038c0b33c0b828038c8b33c0b824038c176580b139038c176780f1920c302ecd00e3a519605ca68ca930aee2652c8e96d1f270fc3fbda7f3ffbc18780aa1fb3999ee4dadf87f99313ffbb36db4cf64c3fb3678ffdfdad37b6e1cc77d19953e37aedcff3265622c8e9691eb3e1bbca767243ca17b6f0abc8cc5d13272fdb6047fff36129e4ed0ac23a019036371b48c5cf7a1557a9f24de2fdf19d08c81b1385a46bc6739459e58b3ae0a78ba41b3ae80660c8cc5d13272ddf39b871823e1e901cdba039a31301647cbc8f4bbb158b39e0a78f0f7553d01cd18188ba365b43ceb9834ebad80671d68d61bd04c1223f2a4fd0ceade402c8edfe355da766240c64919609c9c0146bc4f82a3ff2a779f442faf3ec5d1eac3b5bfcadd2781b1197e7b126b81bf35f8bfb4d8c0cb53f63e098cbd91490bfc2dc8ffa5c546e0e1f86d4a1e628c8487181ae173d333c03823038c3333c0382b038cb333c03827038c7333c0382f038cf333c0b820038c0b33c0b828038c8b33c0b824038cf85d95e15ab1ecf7978de33c76d27795f11e3be97bc9788fad79ae795e0db135cf35cfab21b6e6b9e67935c4d63cd73caf86d89ae79ae7d5105bf35cf3bc1a626b9e6b9e4b8a9d85317e651c7f8cc8d39c1e4f01db8eb12e13d0f6cb023c39a6b663ac3e016da772d618d765807153061899752c8e96d1f26c66e2e9ab806733f06c61e2d95c01cf16e0d99a3e4f9c535b2ae0218646f8dcba0c306eca00a3eaa83a4a62541dab47476554466554c60bc198853e5c1933918fc5d1325a9e6de9f3c49a6dad80671b68469f2bf0321647cb6879b6a7cf136bb6ad029eeda0d9b680660c8cc5d1325a9e1de9f3c49a6daf80670768b63da019036371b48c966767fa3cb1663b2ae0d9099aed0868c6c0581c2da3e5d9953e4facd9ce0a787681663b039a31301647cb687976a7cf136bb6ab029edda0d9ae80660c8cc5d1325a9e3de9f3c49aedae80670f68b63ba019036371b48c96676ffa3cb1667b2ae0d90b9aed0968c6c0581c2da3e5d9973e4facd9de0a78f681667b039a49655c9701c64d196064d6b1385a46cbb39f89675f053cfb81e772269efd15f05c0e3ccf4c9f27cea9cb2be0218646f8dcba0c306eca00a3eaa83a4a62541dab474765544665ac8cf1b20c30eabe5646a98c0cdfafcafe3ee5f2711e7baa177b6a95c44efa7dca788fad79ae795e0db135cf35cfab21b6e6b9e67935c4d63cd73caf86d89ae79ae7d5105bf35cf3bc1a626b9e6b9e57436ccd73cdf36a88ad79ae795e0db135cf35cfab21b6e6b9e67935c4d63cd73caf86d89ae79ae7d5105bf35cf3bc1a626b9e6b9e57436ccd73cdf36a88ad79ae795e0db135cf35cfab21b6e6b9e67935c4d63cd73caf86d89ae79ae7d5105bf35cf3bc1a626b9e6b9e4b8a7d20fdd8c54a9f31730078389e79c3d4ce82ddeeb3dcb6fe9ca27e56ab2b3cad2ef7b46a843acf02fdae60d02f077169dbb44ef12a657e860066a6d845dbbf4c86f6538c4d9e1e36fe954c6d4feaebaf1ce7b193fafaf11e3ba9af1fefb135cf35cfab21b6e6b9e67935c4d63cd73c97121bcbf5d1d0753b3dffd46ee3d9ae5ce7d6a9fe65e0a73adb27965ea7457a0c71c4d66348cf15d5105bf35cf3bc1a626b9e6b9e57436ccd73cdf36a88ad79ae795e0db135cf35cfab21b6e6b9e67935c4d63c9797e78df07ecd18f0441e4f5486679b309eb5c2789608e359298c679e309e5e613c3384f1f408e3992c8ca753184fad309ea2309efdc2785a84f12c13c6b34618cf7c613ceb85f1ec12c6335318cf14613cab84f1d409e3d9228c67bb309ee5c2781608e3d9208c6796309ebc309e06613c5dc278ea85f1b40be3592d8c672c7e8f5709cf46613c0b85f1cc16c6b35b184fa3309ea9c2787608e399208c67ab309e3e613c8b84f1ec15c6334718cf34613c4dc278ba85f14c14c6d3218ca74d18cf66613cadc278160be3d9278c67ae309e3dc278a60be3d9298c6792309e15c278720278f2d1f9cf00cbc3fb07c057e37dd65e0fcc9b3df4fe55ce5f039fb9da956b03dbbe0a7cf45becab039f459dae82b6f4b972e1e92db14e18ab0fd6295e03705c2d846785309e49c278760ae3992e8c678f309eb9c278f609e3592c8ca75518cf66613c6dc2783a84f14c14c6d32d8ca74918cf34613c7384f1ec15c6b348184f9f309eadc2782608e3d9218c67aa309e46613cbb85f1cc16c6b35018cf46613c0784f1ac16c6d32e8ca75e184f97309e06613c79613cb384f16c10c6b34018cf72613cdb85f16c11c653278c6795309e29c278660ae3d9258c67bd309ef9c278d608e359268ca74518cf7e613c45613cb5c2783a85f14c16c6d3238c6786309e5e613cf384f1ac14c6b34418cf5a613cdb84f1d4047818febf63cc43f78bd1b669fd8090d80cfb21febf96d730b5e95ab7ad7ab75de2a778755067b73bf1d9f960fc2c71f9f7f7e1d8f2b5a0d1b54c6da1fd91f3f60f73ec22dec7180143e4e913057838eeff646ae7b03c4cf1ffab16ac56d7795af9fbae11ea5c03fa5dc7a05f28b7699de26591d9f2d0dc13b1e6a1de46218ce4bb9297273e6e3746c39772c7ed75c0c3d18731b5333ebeaef7dab431a03bd5c15cbd9ea19da16387d6af87fd9035e6468847acf968f83e95c048be6b7979e2e3ab2f1abe943bbeae071e8efe87a99df1f17583d7a6be80ee540773f5068676868e1d5abf01f643d6982dcf6678df2e79a8b7590823f9aee3e5e9c8439b6929777cdd003c1cfd0f533be3e3eb46af4d9b03ba531dccd51b19da193a7668fd46d80fcaaccc2166cbb3c59589350ff5b6086124dff5ac3c1d853cb4999672fdd88dc0c3d1cf33e91ef76337796dda12d09dea60aedec4d0ced0b143eb3705623747e96a71f308b4b839c073f3186b41f12a65be2683ccaab3ea9cc4ac3aabce49ccaab3ea9cc4ac3aabce49ccaab3ea9cc4ac3aabce49ccaab3ea9cc4ac3aabce49ccaab3ea9cc4ac3aabce49ccaab3ea9cc4ac3aabce49ccaab3ea9cc4ac3aabce49ccaab3ea9cc4ac3aabce49ccaab3ea9cc4ac3aabce49ccaab3ea9cc4ac3aabce49cc1274b63cf44c6762cd43bdad4218c977032f4ffcbba0add1f025e7adf741f966e0b991411fa676c6f790dfe2b5696b4077aa83c7d72d0ced0c1d3bb47e0bec874a986fca20b3ea3c3a66cb43cf7621d63cd4db2684917c37f2f2c4fdd8b668f852ae1fbb057838fa79a676c6fdd841af4ddb02ba531d3cbe0e32b43374ecd0fa41d80f0795599903cc96879e114cac79a8b75d0823f96e66e529c6bf6fdc1e0d5fcaf563078187a39f67d23deec70e796dda1ed09dea60ae1e626867e8d8a1758a5729f34d1964569d55e72466d559754e62569d55e72466d559754e62569d55e72466d559754e62569d55e72466d559754e62569d55e72466d5b97a74b63cf4bfab89350ff576086124df2dac3cedf1bcc38e68f892f3d6fba07c08780ea6ce539a7760d03d9e7738ecb569474077aa83c7d7618676868e1d5a3f0cfb61bc33df944166cd8db161d6dc50e62466cd0d654e62d6dc50e62466cd0d654e62d6dc50e62466cd0d654e62d6dc50e62466cd0d654e62d6dc50e62466cd0d654e62d6dc50e62466cd0d654e62d6dc50e62466cd0d654e6296901b9667a72b136b1eeaed14c248be83bc3cf1730f7646c3979cb7de07e5c3c07388411fa676c6f7ed1cf1dab433a03bd5c1e3eb08433b43c70ead1f81fda0ccca1c62b63cbb5c9958f3506f971046f21de2e589fbb15dd1f0a55c3f76047838fa79a676c6fdd851af4dbb02ba531dccd5a30ced0c1d3bb47e14f683322b7388d9f2ec766562cd43bddd4218c977989727eec77647c39772fdd851e0e1e8e799da19f763fd5e9b760774a73a98abfd0ced0c1d3bb4de0ffb41999539c46c79f6b832b1e6a1de1e218ce43bc2cb53cc439b6929d78ff5030f473fcfd4ceb81f3be6b5694f4077aa83b97a8ca19da16387d68fc17ec81ab3e5d9ebcac49a877a7b853092ef282f4f7c7ced8d862fe58eaf63c0c3d1ff30b5333ebe8e7b6dda1bd09dea60ae1e676867e8d8a1f5e3b01fb2c66c79f6b932b1e6a1de3e218ce4ebe7e5898faf7dd1f0a5dcf1751c7838fa1fa676c6c7d7ad5e9bf60574a73a98abb732b43374ecd0faadb01fb2c66c79f6bb32b1e6a1de7e218ce4c3f3c57e269e068fa721a0c5788c3dd58b3db54a623779b19baa24b6e6b9e67935c4d63cd73caf86d89ae79ae7d510bb5a734d35af4ecd731750f3dc05d43ca79a8bd4fccfe9c5ee6c8c86961a88c535968b4b1f94717c8e96b5c2789608e359298c679e309e5e613c3384f1f408e3992c8ca753184fad309ea2309e16613c0784f12c13c6b34618cf7c613ceb85f1cc14c6334518cf2a613c75c278960be359208c6783309e59c278f2c2781a84f17409e3a917c6d32e8c67b5309e85c278660be36914c6335518cf04613c8b84f1cc11c6334d184f93309e6e613c1385f17408e36913c6d32a8c67b1309eb9c278a60be399248c6785309e9c009e7c74feef3ff0fefd5af0ddeacafbc1779b2b1f005f4d20066de756f0d1f80e6dc39e1f96ce3e9fa1063e737b80ebb6403c8a737be0b363a13bc6ea83758ad7001cb70be159218c6792309ee9c278e60ae3592c8ca755184f9b309e0e613c1385f1740be36912c6334d18cf1c613c8b84f14c10c63355184fa3309ed9c278160ae3592d8ca75d184fbd309e2e613c0dc278f2c2786609e3d9208c6781309ee5c278ea84f1ac12c6334518cf4c613ceb85f1cc17c6b34618cf32613c0784f1b408e3290ae3a915c6d3298c67b2309e1e613c3384f1f40ae399278c67a5309e25c278d60ae3a909f01c60e2497a5ec00101b1ed3821cd2de5e195de1f8bfb660e788cb48ef719900feff36e65e2497ac642ab80d8568bb550b64b1edec7df6973e554abc748eba19cc2fb62d732f1243d9762ad80d8560bfa6e43734c79781f7f77c795536b3d465a0fe554132f4ffcbf13d644c39772f7f6e031c7b10f99da59c0e32fc56744049fb5bcc6d3aa11ea8cc5ef5e93fa038aa7ccca9cc46c79682c8158f17c3616bf231f0963e8fccac013f78f2dd1f0a55cff781c7838ce1f4ced8cfbb1135e9b5a02ba531dccd5130ced0c1d3bb47e2210bb394a578b9323d0e26480e7e4186b41f12a653e904166093a5b1eba378058f17ee2d54218c9d7cacb13f78faba3e14bb9fef124f0709c3f98da19f709a7bc36ad0ee84e75f0f83ac5d0ced0b143eba7603f54c27c2283ccaaf3e8982d0fdd334cac79a8d72684917cc759798a853cb4999672fdd829e0e1e8e799748ffbb1d35e9bda02ba531d3cbe4e33b43374ecd0fa69d80fcaaccccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaacccca2c9bd9f2d06f4388350ff58a4218c9779295a734ef508c862fe5e61d4e03cfa9d4794af30e0cbac7f30e035e9b8a01dda90ee6ea00433b43c70ead0fc07e5066655666655666655666655666655666655666655666655666655666655666d9cc96879ea14aac79a8d72e84917ca77879e2df6db547c39772f30e03c0c3312fc3d4ce78dee18cd7a6f680ee540773f50c433b43c70ead9f81fda0ccca1c62b63cf4bf1588350ff53a843092ef342b4f69feb4231abe94ebc7ce000f473fcfa47bdc8fdde1b5a923a03bd5c15cbd83a19da16387d6ef80fd5009f3890c32abceaa7312b3eaac3a2731abceaa7312b3eaac3a2731abceaa7312b3eaac3a2731abceaa7312b3eaac3a2731abceaa7312b3ea5c3d3a5b1efa9f35c49a877a9d4218c937c0cad31ecf3b7446c39772f30e77000fc7bc0c93eef1bcc359af4d9d01dda90e1e5f6719da193a7668fd2cec87f1ce7c2283cc9a1b63c3acb9a1cc49cc9a1bca9cc4acb9a1cc49cc9a1bca9cc4acb9a1cc49cc9a1bca9cc4acb9a1cc49cc9a1bca9cc4acb9a1cc49cc9a1bca9cc4acb9a1cc49cc9a1bca9cc4acb9a1cc49cc9a1bca9cc42c21372c4f972b136b1eea75096124df195e9ef8b9075dd1f0a5dc7d3b6781e70e067d98da19dfb773ce6b53574077aa83c7d7398676868e1d5a3f07fb41999539c46c79ba5d9958f350af5b0823f9eee0e529e6a1cdb494ebc7ce010f473fcfd4ceb81f1bf4dad41dd09dea60ae0e32b43374ecd0fa20ec87ac315b9e1e5726d63cd4eb11c2483e3c2ff730f134783c0d012d2e546cab45af2be7e195deef0546aefeb0c763a475cc71f235004f2f13cf548f676a408b0b15db6ab11eca76c9c3fbeb81912ba77a3d465a0fe5d454e059cfc4d3e4f13405b4b850b1ad161b5c799a7bcdc3fb1b80912ba7d67b8cb41ecaa926e0d9c0c493d4276d1883d849c7d758c44eca95b188ad9aabe6aab96acea979ee026a9ebb809ae75473519a335c47c5e3bd142302065cfaa08cdf1538ae3d99da59087d1fdbe0b509bf8fe198c385fabea1ccca9cc4cc346ed191f762933e91c743cb39662dc672dcb4d76b5316c64dcb319fc820b3ea3c3a661bfbcef46377e4bdd8a44fe4f1d07227b3164ced8cfb83bba2b0c614af11ea609edec5d0ce1cc4a56dd3fa5db01f2a613e914166d57974cc36f6dda9c72e3d4f1e63933e91c743cbddcc5af0b4b3d41fdc138535a6788d5007f3f41e8676e6202e6d9bd6ef81fda0cccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaacccb2996dec7b538f5d1abfc7d8a44fe4f1d0722fb3163ced2c8ddfdf178535a6788d5007f7f97d0cedcc415cda36addf07fb41999559999559999559999559999559999559999559999559999559999559996533dbd8cf493f76fc7b1c8c4dfa441e0f2dcf61d682a99df1f8fdfd5158638ad70875709fdfcfd0ce1cc4a56dd3fafdb01f94599943cc36f673538f5d9acfc3d8a44fe4f1d0f25c662d78da59ea0f1e88c21a53bc46a883fbfc018676e6202e6d9bd61f80fd5009f3890c32abceaa7312b3eaac3a2731abceaa7312b3eaac3a2731abceaa7312b3eaac3a2731abceaa7312b3eaac3a2731abceaa7312b3ea5c3d3adbd8cf4b3d767b3c7e8fb1499fc8e3a1e579cc5af0b4b3347eff6014d698e235421dccd30719da9983b8b46d5a7f10f6c383e39cf94406993537c686597343999398353794398959734399939835379439895973439993983537943989597343999398353794398959734399939835379439895973439993983537943989597343999398353794398959426ed8d80fa51f3bfe3d3bc6267d228f87968798b5606a677cffcbc35158638ad70875304f1f6668670ee2d2b669fd61d80fcaaccc21661bfbf9e9c72ee6bdd8a44fe4f1d0f27c662d98da19f7078f44618d295e23d4c17dfe08433b731097b64deb8fc07ec81a33eebf5c7ab1e3fb3629468d7bb5be17b8722df85ee8ca75e07b912bd783efc5ae3c017c2f71e589e07ba92baf02dfcb5c7903f85eeecaebc1f70a57ee05df2b5db9077caf72e573e07bb52b0f82ef35ae7c27f85eebca7781ef75ae7c37f85eefcaf780ef0dae7c2ff8dee8caf781ef4daefc1cf0bdd995ef07df5b5cf9b9e07bab2b3f00beb7b9f2f3c0f776577e107cef70e565e07b67c0f72e577e087cef76e587c1f71e573e00bef7baf224f0bdcf952783effdae3c057c1f8032bd7ed0951bc0f721576e04df875d792af83ee2cad3c0f751576e02dfc75c793af83eeeca33c0f709579e09be4fbaf22cf07dca956783efd3ae3c077c9f71e5b9e0fbac2bcf03dfe75c793ef83eefca0bc0f705575e08be2fbaf222f07dc9951783efcbaebc047c5f7165dcbf5f75e5e7838ffa9047c0477dc80bc0477dc80bc1477dc88bc0477dc88bc1477dc84bc04739f652f0518ebd0c7c94632f071fe5d82bc04739f64af0518ebd0a7c9463af061fe5d86bc04739f65af0518ebd0e7c9463af071fe5d81bc04739f646f0518ebd097c94636f061fe5d85bc04739f656f0518ebd0d7c94636f071fe5d83bc04739f64ef0518ebd0b7c9463ef06df45aefc1ef035bbf27bc177b12bbf0f7c97b8f2fbc1b7d495b14fb9d4953f083eeaf73e04be67b8f287c1b7dc953f02be15aefc51f0ad74e58f818fce751f07df6a57fe04f8d6b8f227c1d7e2ca9f02df5a57fe34f85a5df933e02bb8f267c1d7e6ca9f035fd1953f0fbe7657fe02f83a5cf98be0eb74e52f81afcb95bf0cbe6e57fe0af8e89c4d7d8a3d76ed31483a9046d6476d6e09b4857c93a02d7d51bad76a148bb64deb4560a47dd036f68cc59132163c46cbd3c1a019e6152de5be0b75004f3b030f533be3ef429d5e9b8a5e9b1aa1ce33a09d9d0cedcc415cda36ad77426c8e7d8e5ad4bbed2ef7b4a8833a4fba139a3d7796d391b661f3b72dd0961ee6b6d0b6a95fea1983d85d5eec562f36f6c7b4943bbeba80b99b81d96eb737fdedc6c7d73ab72dca298ad30a6d5a0f1aa4d5268c9d734671c85f8775660fd5a57aa4079dbf88dde632ed4b64f73fd7e17dae11eaf404dadf17a5dbfe5e8fa7d763b6fbe43f670d71301c0f710ef4781cb4de0adaf52668d703da511d3cff1598b4ebf67868bd003c748dd3093eba56207ebcce6a19036ebfdfeb0c7093af0b180b01c6d6f419e36b9d82c748ebadc048be6ee0e962d2ccdfd7cb3d7df0bc3cc1ab439fad833a735c5f322d1afefd83eadae36e696ea85df47dfbcf51ba7dfa0406bd702c20027d224fc308f4a276d633f04c8986c603ce0d0e9c3d74bcff8afe4347738056e761e26b2ed08c1af061b936e08ba2e1c31e38d44ac31e38d45ae3c982c32d54df7e95b2cda2a185fe53b70d5e75bafff491b3f79e19ec3fba6fe03852d77bf4489ad40224451f2d93a2a1019abe28dd4996095eac72c933095e27a6cfd3c6d4cef8a437d96bd304af4d8d50a71ede9bccd0ce1cc4a56dd3fae440ec143ba2588b2923d0624a8067ca186b8103dae4c32395dec749911aaf2d7844639bfc3c4fb5411470196c3fe7e0ec7bf660af778d99180ded6cea3ded15addd097674d49eb5ece8a71dedb45d901dcdb41789f6a4664727ed68a41d7db4a38d7674d18e26dad1433b5a684707ed686073541aedb3a37b7634ef52e0fa06b0da6fd4f6ec6847e3ece89b1d6db35755f6db9abd12b157def6aac05e0dd8ab3efbadd28e30d833adbd8ab167687b56b55789f6ead05ecddbab5b3b1bb5d1d826639739ad371bdb626cabb16dc6b61bdb616ca7b15dc6761bdb636cafb17dc6f61bbbdcd833a3d228fab38c5d61ec4a63cf367695b1ab8d5d63ec5a63d719bbded80dc66e347693b19b8ddd62eca0b143c60e1b3b62eca8b17e63c78c1d3776abb1db8cdd1e95eeba3969ec94b1d3c6068c9d317687b1b3516966ccce84d9992f3bd36567b6ec4c969db9b233557666cace44d999273bd36467961e8c4a33427606c88efedbd17e3bba6f47f3ede8fd8ba3d2e8bc1d8d7f59541a6db7a3eb7634dd8e9edbd1723b3a6e47c3ede8b71dedb6a3db7634db8e5edbd16a3b3a6d47a3ede8b31d6db6a3cb7634d98e1ebf3b2a8d0edbd1603bfa6b477bede8ae1dcdb5a3b71f8e4aa3b37634d68ebedad1563bba6a4753ede8a91d2db5a3a37634d48e7edad14e3bba694733ede8a51dadb4a3937634f251637f61ec2f8dfd95b1bf36f637c6fed6d8d78c7dddd8df19fb7b63ff60ec1f8dfd5354cacb6f1afb6763ff62ec5bc6fed5d8bf19fbb6b1ef18fbaeb1ef19fbbeb1c78cfdc0d80f8dfdc8d88f8dfdc4d84f8dfdbbb1ff30f633633f37f60b63bf34f62b63bf36f61b63bf35f6b8b1278cfdced8ef8dfdc1d81f8d3d69eca9686806033b8f3fb9151a4d3f3438d87feacc60f3e040f3a93b4f0ede76e6e4bdcd77df36786bf3c05dfd678f9d1cb81b3ffc7ed75dd154c1e6b3670fdddb7cdbe9a3fdf7340fdc39d83c70acf9f0c09da78f9ec30f7dcd7d68d1f9110f1d3d9a1cecbb354f83f407a30cfa6bf7399a84d95dbe6d8f8f46902747f3a1a6dad135689b3bdbd00cfb95a5abdce6732707069b0bcda7cddf4327cd67fa8fae6dc6f7ce1991cf0d369f1b3c7476b0f9d8d98153cd6d6b71bbbb268fa2117f9c358a0fcd9e3df29647ff0357412cce7d050400", "isInternal": false } ], - "packedBytecode": "0x000000028df71de500000047d81f8b08000000000000ffed9d779c14c5baf77b6141647645ccd9c5848ae232647681c19c30a38888b02c2b28b0443163961ccc19094ace02028a80184ecec993f4783ce9de7bcef9dc3fee7bef1b7c6fd74c3d777f5b542f3b6bd7f09b9deacfa776aa9fadeee75bbf7eba3a5577fd330882a22033b50cd319c1fe93fc3fa57fcbbfd9d425c67595bbe42cca13ce1679c2d9324f388bf384b3559e70b6ce13ce43f284b34d9e701e1a23a7626b11d49fe2e66deb40d7b8191379a669491e685a9a679a1e96079ab60bf2a38d3a3c4f38dbe709e71179c279649e701e95279c47e709e73179c2796c9e701e97279cc7e709e70979c279629e709e94279c27e709e72979c2796a9e7096e50967873ce13c2d4f384fcf13ce33f284f3cc3ce13c2b46ce4ec0d951ff9ead7fcfd1bfe7ea5f297b9efe3d5fff76d6752cd6f31728ae30a9873449e37f5dc3d42d4cddc3d4c3f85fcf30f50a53ef30f5d1ff2bd3ffab08536598fa86a95f98fa6b0d0684e9c2305d14a68bc37449982e0dd36561ba3c4c5784e9ca305d15a6abc334304cd784e9da305d17a6ebc37443986e0cd34d611a14a69bc3744b980687e9d6300d31586e0bd3d030dd1ea66161ba234cc3c334224c55611a19a6ea308d0a534d98ee0cd3e8308d09d35d61ba3b4c63c3342e4ce3c3541ba609619a18a649619a1ca629619a1aa67bc2342d4cf786e9be30dd6f68f640981e0cd343617ad8e09c1ea647c2f468981e0bd3e3617a224c4f86e9a9303d1da619619a19a659619a1da639619a1ba679619a1fa605615a18a667c2f46c989e0bd3f3617a214c2f86e9a530bd1ca657c2f46a985e0bd3eb617a43b3c88eb0284c6f8669719896846969989685e9ad30bd1da6e5615a11a695615a15a6d5615a13a6b5615a17a6f561da10a68d61da14a6cd617a274c5bc2b4354cdbc2f46e98b6876947987686e9bd30bd1fa65d61fa204cbbc3b4274c7bc3f46198f685e9a3307d1ca64fc2f46998be15a66f87e93b61fa6e98be17a6ef1b9aff204c3f0cd38fc2f4636dfb89fefda92e2bf7ef7e16a69febfc2ff4ef2ff5efaff4ef67c632bf0ed36f0cdb6fc3f43bc3f6fb307daef35fe8df3fe8df2ff5ef1ff5ef57faf74ffaf7cffaf72ffaf7affaf76ffaf75ff4efbfeadf7fd3bf7fd7bfffd0bfff0cd3e60e997c9ba06e4a0531b551dd6ad2cf7e44fc8e41fd4969d152ff4f7ecbb4bd58cfcbaf68d74acfb732ecadf57c6b633d6df47c1bc3de5ecfb737ec47eaf9230dfbd17afe68c37eac9e3fd6b09fa1e7cf007b22807bc3daae6c2db5a9086c12af2dc0d64adb5a82adb5ac0e6c87685b2bb0c9f66d0db643b5ed10b0b5d5b636604b68dba1a265984ab42d15c4152be523d47a4be35eaf7e5e7658fcbc23d57adb39e23d3c7ede516abded1df0aaf83842afeb70889b23b5ad3dd88ed2b623c076b4b61d09b663b4ed28b01dab6d4783ed386d3b066cc76bdbb1603b41db8e03db89da763cd84ed2b613c076b2b69d08b653b4ed24b09daa6d2783ad4cdb4e019b6e728353c1769ab69581ed746deb00b633b4ed34b09da96da783ed2c6d3b036cd2fe9e0936395f3c4bdb54db7168112ca3edd26ea59791361b6ce7487b0db673a5ad065b2769a7c1761ef816dbf9d0d688adb3b649bba5fed747e753415cfb49b246adb722eef5866b56ebed1bff7ad3cf1cfb05755aa7c04f0568d55fe763ecd7d4057d17e9247ec45e0cf92ba1ac94133de4d823ecea1853a9f3fd1b58ae8fb15c2994a9b4d43f15c45bffbe064f5f83b915e4ddc46cd7ae3e661b3d651db383a1ac197b721ed41c637620703888d99e3e661b3d651db33550d68c3d39176e8e317b1b703888d92a37319b2cf7319bb96f1604f6d893eba1e618b3638023fe98edee63b6f153d631fb189435634fae899b63cc4e038ef863b667953f3768f49475cc2e80b266ecc9fd99e618b34f02878398adf1ed6ca3a7ac63f60d286bc69edc2b6c8e31fb2c70c41fb3bd1dc56c571fb341e6196810d8634fee5b37c7985d0c1cf1c7ec487f7fb6f153d631bb03ca9ab127cf509a63ccaed779f59ce127fa39c34960fba9b69d0cbcf1c776757747b19df4b19de91b1204f61895e779cd31b63fd07915c7bf80fe0862fba5b67500dbafb4ed34b07da66da743bd1cec03557e1f68f494f53ef01b286bc6b23c5b6e8efbc08f80c341cc56fb986df49475ccfe0dca9ab127fd1c9a63ccfe1e381cc46c8d8fd9464f59c7ec7f425933f6ced6f9e618b3d2d7549d2f7ca1cf17ce05db1fb4ad13d8bed4b6f3c0f6476d3b1f6c5f695b67b0fd49db2e00db9fb5ad1c6c7fd1b62e60fbabb625c1f6376deb0ab67fd1b66e60fb576deb0eb67fd3b61e60fbbbb6f504db3fb4ad17d8fea96dbdb54d3def92be5772deda06f85341bcdb56fa5dcaba65be4b0e7cb7337cb7cba1eff686eff616df4907be13e043a622633e05f9a45b9ef252e0415fdde2f7d555d5bd6bd0f8ba77039eee0eea9e001f8de1e90e3c3de2e749f7ffed19ff7ad3dbb8aba169027c75857af57250af22f025eb9679f1570a366c5b7b59187bc7cf982c025fb26e99ef0d8c62c3b65edeb992fd471d0f3b16d5f13ad897d2e744e24fbe5b261cddc02e65aee850c7d649b395c0fff1b8d7c3b0398acb745c882f59b7cc8bbf12a84f8fdc33261bcbd8dd6074d54614812f59b7f75db71d248fc77107d73ad6364d7c57e4c0776fc37737c337b69d3235746ceb0dccb15f73ea635b65fceb2dc7eb13b936143f78fe80d77071d5097dcbb5a1f8117b31e4af29aa2b2be5440f6987855dc5b26c4b643797eb652c570a652a2cf54f05f1d6bfd2e0a93498d536b9088e850ef687740c54181c32df0db4ab8cd0ae02b49332678376aedab33e068fccf7001e69c77a028fab6ba2289e5c5c8f1dc8379ec3e2f5b3fc1fcf035c6daf2e06a3ccdbb6576f60b49dab38b89e69f05ca53b308aad0ff07475a459d476ed4ae2db41aca4db23f121e7e6b2fff600bb94e9ad5fa8536de55dd056ba88118c47991a7bcd1bff764aa6afc1bb67c183dbcec175551747f1588ef76fbe0ee28d35b35dea6e6815758fc7555bded5e09179f1e7993db367f6cc9ed9337b66cfec993db367f6cc9ed9337b66cfec993db367f6cc9e999f199f2761bf2d29d78384d1ecffe6ea3e7ffafb877a5db27ef55ce7ff38ed0f962cc7fe31d20fe25ca3cec550a6b4455dd9ff0ffdc1cce754d847b2875bedd2db12fb63a6605efc615f2bdc960cfd9dca62f39d1ce9ea799bfa0698fa8ea6d9f7b387455317fd9f51d3224353ec8f7f9ec1a3e2b4b2651d9b8b677fd93e8b44ad241fe7b3bdd2c01eebf16f9764bd67d62d82faed071e675cf5df91b65a9e975718be8ba1cc892deab68df4ad923186bb1acb61bf1f59b72c732ed82b8d75b7d3cb0a472b63fd3d615929730ab4a97b5ad469e6a0ad4c66db771d9f9bc77f1cce3cc7ef9a054f17e071d1ce383adf28c77d20eee7f866ff34db798c94c1be7d0efa5536d8df49fc7966cfec993db367f6cc9ed9337b66cfec993db367f6cc9ed9337b66cfec993db367e667563ce6b3567cbfb61b09638efa3ea49f67c8b7ca64fde9ef05b7a8f3ebfa399c3c73ea64d419df1dfd678bbab29b75be24d8bfbf43d4b674f57d8aa86d29fef0db33f82cc8c573dd22f025eb4e5ab4907c596cbe33cff15d8c0d21cff1bb1aba76b368ea6a7fc567aca829eeafdd0d1e7c361af56d9fa46173d977282a2ec41fee4b49b0491edf8f76b19df15862f6eb117ff8fcfa3b5adb7681ab6d9f2c77d96ee0775352c1fef18ddf53f921b47d3fd679ecc3817d47beb0fc5fa6869e538b7eaace0ebeaf595e04eb92ed6bfbb6e700608dc977175c57914e030c0d8a21ff798bbab2524eca8ad6c2aef611f9060cb29bcb7537962b8532fd2cf54f05f1d6dffcd66a7f83596d939f419c7d01c77f576d52bf088dce058da48ce36f365afb579afd0ab11d6d6d949165f15b747f85362aaaffa8ed18e0fa3826ebb61dc7cce34263fa79167a3fadff82f622ee7e5aff053184fdb40263fd9d60fdc2d53a883eb64899ff67acdf3c279765b01fd8ffec27f03d97a4ce67734e7eb0aeaf6ce7e4b85c54dd15337e072d152333c604b2e079829469abb5966d5619c1dddbb26c69c4b2a295f9adb092607ffddc7c672db3cff737ea22718ddf20973247425ddc9cb764ce015d7d532e057552f9a4a5ae52e638d8d74ed0f9046c27dc6fcfb1fc5fa686ce01710cf70be3af737afb5e049c29f083be2f06d6987c7741df720e287ec45e0cf9b35bd6959572a287682dec6a1f91f328643797ab30962b8532032cf54f05f1d6ff4283e74283596d939321cece817ee8aedaea01111a75028da40cde53b47d07d476afc3d5fb1b51e752f8fe92797e85c74937e74df6f358f3be9aed1ca193c18fe7083da19d4d58ca9af70be5781967bf617c57a227f8c577255c7dbbb90fe89682793c2f3898be5d7cc756f98b1a33a14f0e7c478d99900bdfed0ddfed73e8db6bee3567d2dcc11804e9f7cff09ba56a6ae8bc14c72590e55a00a38bb11c1241fd6f8f1f8811c77790e55a02a38be343b6df3eef098cb25c3130ba78b714c7df680c237e63188ff3c2e8e05bb15d9afaad58bca7d71a1899ded9c467538700a38bf3e2a6beab87e7f36de0d7d5b8445db3604c02a32c772830bab8378ed7328d61c4eb2259ae2d30ba788695edf84ef8ed79bcb7ec92b1a163bbe3be28c96cefbd54bae569f05c037d3b18d730ad05de673c90167dddf23478ee83be1ddcf74b6b81e30c1e480b7c36e862dcc34450ff39dc8178f0f9a52c770430a61c31f6cf8231058cff73af18180738624c65c1380018c57e14303ab8ff9a661c900523dea794e58e06c68b1c315e9805e345c028cb1d038c2eeea526c06f63182f064659ee5860bcc411e3c559305e028cb2dc71c078a923c64bb260bc141865b9e381f132478c9766c1781930ca722700e3e58e182fcb82f1726094e54e04c62b1c315e9e05e315c028cb9d048c573a62bc220bc62b8151963b1918af72c47865168c5701a32c770a305eed88f1aa2c18af064659ee54601ce888f1ea2c180702a32c57068cd738621c9805e335c028cb7500c66b1d315e9305e3b5c028cb9d068cd73962bc360bc6eb8051963b1d18af77c4785d168cd703a32c770630dee088f1fa2c186f004659ee4c60bcd111e30d5930de088cb2dc59c0789323c61bb360bc09186fb4300e72c47853168c838051963b0f186f8e9f317d2d3d280bc69b81e796f879d29add9c05cf2d6e79d2dfd5bbd9e2ebd6f87da5b7c5e0a0f175bf157886c4cf93de16b766c1230ca5b01c6a765bfc8c69cd8664c1781bf00c8d9f27add96d59f00c05cd6eb368767bfc8c69cd8666c1783bf00c8b9f27add9ed59f00c03cd6eb7687647fc8c69cd8665c17807f00c8f9f27add91d59f00c0fea34bbc3a2d988f819d39a0dcf827104f054c5cf93d66c44163c55a0d9088b6623e3674c6b569505e348e0a98e9f27add9c82c78aa41b39116cd46c5cf98d6ac3a0bc651c053133f4f5ab35159f0d48066a32c9add193f635ab39a2c18ef049ed1f1f3a435bb330b9ed1a0d99d16cdc6c4cf98d66c74168c6380e7aef879d29a8dc982e72ed06c8c45b3bb1d31de9505e3dd169eb8bf937d97c5d73847751f1b34beeec2500acb613f89f18e18c765c1381e186539ec2751eb88717c168cb5c028cb251c3336d44fa2167c4f88df77ba5daa0d1aafcf04b73c0df69340df131d69312168bc1613ddf234d84f027d4f72a4c5c4a0f15a4c029ec90eb448808fc6f00843292c87fd24a638629c9c05e3146094e5b09fc454478c53b2609c0a8cb21cf693b8c711e3d42c18ef0146590efb494c73c4784f168cd3805196c37e12f73a629c9605e3bdc028cb613f89fb1c31de9b05e37dc028cb613f89fb1d31de9705e3fdc028cb613f89071c31de9f05e303c028cb613f89071d313e9005e383c028cb613f89871c313e9805e343c028cb613f89871d313e9405e3c3c028cb613f89e98e181fce82713a30ca72d84fe211478cd3b3607c04186539ec27f1a823c647b2607c141865b9bb1d333674fdf26833f71d75add2dc7d475d973477df3ece7d9c17826f1fe73ece0bc1b78f731fe785e0dbc7b98ff342f0ede3dcc77921f8f671eee3bc107cfb38f771cee4fb3107be13e043a622633e0579612885e5eef68ccd9a1179cae2e329c7baa3afc709eafeb885a7c851ddd1d713047517867c637c2c0f18711ff73a369dd1b18ec9a6322a9e271df13c9105cf93c0f394239e27b3e0790a789e8e9f271d534f65c1230ca5b0dcdd79c0f8581e307a1dbd8e4c8c5ec7c2d1d1337a46cfe8190f06633eb4e19e312fe231d95446c533237e9eb4664f67c133033493e56e71cb986c2aa3e299193f4f5ab31959f0cc04cd66583473c0986c2aa3e299153f4f5ab39959f0cc02cd665a3473c0986c2aa3e2991d3f4f5ab35959f0cc06cd66593473c0986c2aa3e299133f4f5ab3d959f0cc01cd665b3473c0986c2aa3e2991b3f4f5ab33959f0cc05cde6583473c0986c2aa3e299173f4f5ab3b959f0cc03cde65a3473c0986c2aa3e2991f3f4f5ab37959f0cc07cde6593473c0986c2aa3e259103f4f5ab3f959f02c00cde65b346365bc3b0f181fcb0346c73a269bcaa878163ae2599005cf42e079c611cfc22c789e019e67e3e749c7d43359f00843292c77771e303e96078c5e47af2313a3d7b17074f48c9ed13366c7f8781e30fa6ded1959191d5c5f35f80ecd33cddc77d43b34cddd77d43b34cdddb78f731fe785e0dbc7b98ff342f0ede3dcc77921f8f671eee3bc107cfb38f7715e08be7d9cfb382f04df3ece7d9c17826f1fe73ece0bc1b78f731fe785e0dbc7b98ff342f0ede3dcc77921f8f671eee3bc107cfb38f7715e08be7d9cfb382f04df3ece7d9c17826f1fe73ece0bc1b78f731fe785e0dbc7b98ff342f0ede3dcc77921f8f671eee3bc107cfb38f7715e08be7d9cfb382f04df3ece7d9c33f97e2e7edfc96cbf31f31cf0b8f8e68da37a96abf53eafd7f5758cfa29ad5e30b47ac6d0aa14ca3c0ffabde040bf22f02beb9679f1972d7347026647be938785eb3814ea2f3e1e33f450fe5f7454f7a8b6fec566ee3baaad6feebea3dafae6eedbc7b98ff342f0ede3dcc77921f8f671eee39cc537e65b0575e7edf2fd53b58e9774be58cf4bf9c7c12e65261f92f96d17f87dc8856fbf0ff9634521f8f671eee3bc107cfb38f7715e08be7d9cfb382f04df3ece7d9c17826f1fe73ece0bc1b78f731fe785e0dbc7395f9c633c54e6802730788206781690f14c25e3994dc6339a8c672819cfb5643c1791f13c48c6d38d8c670219cf48329e9bc978ae24e3b9808ca71f19cf34329ede643c73c878ee22e3798a8c671819cff5643c9790f13c4cc69324e39944c6338a8ce756329eabc97852643cf791f1f424e339878c671c19cf5c329eb3c9788693f13c4dc6732319cf61643cedc8782e23e379828ce77c329e0a329e47c878e693f14c21e3b9938ce736329e72329e6bc8783a93f15c48c6f300194f77329e79643cb5643c33c878aac8780691f19c4bc67305194f4b329ebe643c0bc978ee21e3e943c633868ca71319cfed643cd791f15c4cc6f310194f57329e89643c33c978aac9780693f15c45c6d39f8ce75e329e5e643c63c9783a92f1dc41c67303194f2ebe679a0d4f09194f2919cfa5643c8f92f14c27e3e942c633998c6716194f0d19cf10329e81643c03c878ee27e3e941c6339e8c670419cf4d643c4f92f11c4ec6d39e8ce772329e22029e44b0ff182609f8ff73606b612cab3efb3aa743ddff5fd6f616b0cc2b3adfd2b2ee97c126df927dc5b22ceaf432d425a5f3e5df6c4aeb84be52302ffe4a80e315129ecbc978da93f11c4ec6f32419cf4d643c23c878c693f1f420e3b99f8c670019cf40329e21643c35643cb3c8782693f17421e3994ec6f32819cfa5643ca5643c25643ccf91f1dc40c67307194f47329eb1643cbdc878ee25e3e94fc6731519cf60329e6a329e99643c13c978ba92f13c44c6733119cf75643cb793f17422e31943c6d3878ce71e329e85643c7dc9785a92f15c41c6732e19cf20329e2a329e19643cb5643cf3c878ba93f13c40c67321194f67329e6bc878cac9786e23e3b9938c670a19cf7c329e47c8782ac878ce27e379828ce732329e76643c8791f1dc48c6f33419cf70329eb3c978e692f18c23e339878ca72719cf7d643c29329eabc9786e25e31945c633898c2749c6f33019cf25643cd793f10c23e3798a8ce72e329e39643cbdc978a691f1f423e3b9808ce74a329e9bc9784692f14c20e3e946c6f32019cf45643cd792f10c25e3194dc6339b8c672a19cf02329e4a0bcf738e78e47d7759b7cc3f47e2dbc1762857eb7dd5519d5ed3eb6aa5d72bfce2af18ca4c6f9bf955cf3f7059e132bf4f80efe6bc061abde6a82eb23d8a8ced83be5f72e4db1c9f4fe65f6ae6bedb19bedb1588eff686eff605e2dbc7b98ff342f0ede3dcc77921f8f671eee39cc9b7836b83247e274da622633e0579bc5e70f17d3947f5ac779df8758cfa29ad5e37b432afad4aa1ccaba0dfeb0ef4b35d7bcabcf8cb96b9230133c64559106f5cbc117f9d92aadfe1a1a0eb1b86be58af458e348d3a862c6ae6bea38e21cddd77d431a4b9fbf671eee3bc107cfb38f7715e08be7d9cfb3867f2fda6cec778dd588e3ed4f345b91e7813fc2ed1f9a218fdaa752dd6eb2ad6eb168e25609732ff1b9e6bfa7ddeeff371f9f6c7361fe785e0dbc7b98ff342f0ede3dcc77921f8f671eee3bc107cfb38f7715e08be99e3dccc4b7ff1b381cd557ffea858ccc5bb0407d377542c3677df51b1d8dc7dfb38f771cee47ba903df09f02153437dfc9602cf62073c8eea997eb6b1cca8d373469d4aa10c1ee39739a86711f89575cbfc32e091a912785cc44163b639f22c20e3994ac6339b8c673419cf50329e6bc9782e22e379908ca71b19cf04329e91643c3793f15c49c67301194f3f329e69643cbdc978e690f1dc45c6f31419cf30329eebc9782e21e379988c2749c633898c671419cfad643c5793f1a4c878ee23e3e949c6730e19cf38329eb9643cc3c9789e26e3b9918ce730329e76643c9791f13c41c6733e194f0519cf23643cf3c978a690f1dc49c6731b194f3919cf22329e6bc8783a93f15c48c6f300194f77329e79643cb5643c33c878aac8780691f19c4bc67305194f4b329ebe643c0bc978ee21e3e943c633868ca71319cfed643cd791f15c4cc6f310194f57329e89643c33c978aac9780693f1bc4ec67315194f7f329e7bc9787a91f18c25e3e948c6730719cf0d643c25643ca5643c9792f13c4ac6339d8ca70b19cf64329e59643c35643c43c8780692f10c20e3b99f8ca70719cf78329e11643c3791f13c49c67338194f7b329ecbc9788a087812c1feeffe27e0ffaf834dde517f0e6c6fe9fc62b0b5b0f868a9f3cbc056acf3b28e43c2f46287fdd78d3ab97a2f1f7da5605efc9500c75b243c9793f1b427e3399c8ce749329e9bc8784690f18c27e3e941c6733f19cf00329e81643c43c8786ac8786691f14c26e3e942c6339d8ce751329e4bc9784ac9784ac8786e20e3b9838ca72319cf58329e5e643cf792f1f427e3b98a8ce775329ec1643cd5643c33c9782692f17425e379888ce762329eebc8786e27e3e944c633868ca70f19cf3d643c0bc978fa92f1b424e3b9828ce75c329e41643c55643c33c8786ac978e691f17427e379808ce742329ece643cd790f12c22e32927e3b98d8ce74e329e29643cf3c9781e21e3a920e3399f8ce709329ecbc878da91f11c46c6732319cfd3643cc3c978e692f18c23e339878ca72719cf7d643c29329eabc9786e25e31945c633898c2749c6f33019cf25643cd793f10c23e3798a8ce72e329e39643cbdc978a691f1f423e3b9808ce74a329e9bc9784692f14c20e3e946c6f32019cf45643cd792f10c25e3194dc6339b8c672a19cf02329ecadcf024d5bbedd2d73a002e9c52905f063c8b1ce8e3a89ee5f85d83af635cafd2ea6d43abd70dad4aa1cc52d0ef6d07fa15815f59b7cc8bbf7c64563c8feabced3b108f92308a6d915b9ef47efb68507f6a68bf7d1b785cb46b8eea99debf961b757ad4a2bb94c1585deea09eb67d47e697c376c83766c5f384ce0b6b02ca3d41c228b6656e79d2fbd71341fda9a1fd6b39f0b8687f1cd533bd7fad30eaf48445772983b1bac2413d6dfb8eccaf80ed906fcc8ae7499d17d604947b9284516c6fbbe5e996803acbd4d0feb502785cb43f8eea99debf561a757ad2a2bb94c1585de9a09eb67d47e657c276f0cc9ed9c6ac78e4d98eb026a0dc53248c625bee94a75b7902ea2c5343edd84ae071d1ce3bd23ddd8ead32eaf49445772983b1baca413d6dfb8eccafb2f82e0be2d5627523b4586de1599d632dc45fb6cc4bf390d9ebec758e62f63a7b9da398bdce5ee72866afb3d7398ad9ebec758e62f63a7b9da398bdce5ee72866afb3d7398ad9ebec758e62f63a7b9da398bdce5ee72866afb3d7398ad9ebec758e62f63a7b9da398bdce5ee72866afb3d7398ad9ebec758e62f63a7b9da398bdce5ee72866afb3d7398a994167c523dfae14d604947b9a84516c2bdcf2a4df0b7a3aa83f1519f329c8af069e950ef47154cf741ff235469d9eb6e82e6570ff5ae3a09eb67d47e6d7c076c88679551e327b9d9bc6ac7866e8bcb026a0dc0c1246b1ad74cb936ec76604f5a786dab135c0e3a29d7754cf743bb6d6a8d30c8bee5206f7afb50eea69db77647e2d6c07cfec996dcc8a67a6ce0b6b02cacd246114db6aa73cc9f4fb8d3383fa5343edd85ae071d1ce3bd23ddd8ead33ea34d3a2bb94c1585de7a09eb67d47e6d7c176c88679551e327b9dbdce51cc5e67af7314b3d7d9eb1cc5ec75f63a47317b9dbdce51cc5e67af7314b3d7d9eb1cc5ec75f63a47317b9dbdce51cc5ee7c2d159f1ccd279614d40b959248c625be394a76bfab9c3aca0fed4d0738775c0b336769ecc730707baa79f3bac37ea34cba2bb94c1fd6bbd837adaf61d995f0fdba1b933afca43661f1bb961f6b1e199a3987d6c78e628661f1b9e398ad9c786678e62f6b1e199a3987d6c78e628661f1b9e398ad9c786678e62f6b1e199a3987d6c78e628661f1b9e398ad9c786678e62f6b1e199a3987d6c78e6286686d8503cb3755e5813506e3609a3d8d6bae5497ff76076507f6aa8dfce7ae059e7401f47f54cf7dbd960d469b645772983fbd70607f5b4ed3b32bf01b68367f6cc3666c53347e7853501e5e690308a6d9d5b9e743b3627a83f35d48e6d001e17edbca37aa6dbb18d469de65874973218ab1b1dd4d3b6efc8fc46d80e9ed933db9815cf5c9d17d604949b4bc228b6f56e79d2edd8dca0fed4503bb611785cb4f38eea996ec73619759a6bd15dca60ac6e72504fdbbe23f39b603b7866cf6c63563cf3745e5813506e1e09a3d836b8e54926a0ce3235d48e6d021e17edbca37aa6dbb1cd469de65974973218ab9b1dd4d3b6efc8fc66d80ef9c6ac78e6ebbcb026a0dc7c1246b16d74cb93debfe607f5a786f6afcdc0e3a2fd7154cff4fef58e51a7f916dda50cc6ea3b0eea69db7764fe1dd80ef9c6ac7816e8bcb026a0dc021246b16d72cb93debf1604f5a786f6af7780c745fbe3a89ee9fd6b8b51a70516dda50cc6ea1607f5b4ed3b32bf05b643be312b9e853a2fac0928b79084516c78bc58e888a7d4e029b56871b07cabf90a9d2fd1bf09f87f0530ba6a0f171a8c328f318ebcae356b67f0b433343b98be55fd2b75fe30fd8bdbab121819b657bb1c68d6dee0696f6876307d2b2dfaeafce1fa17b7575f6064d85eed81c741fbdc2d61f0a8a9a1f38d2d8ef57154cff4f9c6d6c0ae3b1e87a40c1ebbb73aa8a7ed5c42e6b7c276f0cc9ed9c6ac7806e9bcb026a0dc201246b1e175cab6f879ba250c1e3535d48e6d73ac8fa37aa6dbb17703bbeedb40772983b1faae837a16815f59b7ccbf0bdb211be65579c8ec756e1ab3e219acf3c29a8072834918c5b61578b6c7cfd32d61f0a8a9a1766cbb637d1cd533dd8eed08ecba6f07dda50cee5f3b1cd4b308fccaba657e076c876c9857e521b3d7b969cc8a6788ce0b6b02ca0d216114dbbbc0b333769ecc7840c8a3a686dab19d8ef57153cf4c3bf65e60d77d27e82e6570ff7acf413d8bc0afac5be6df83ede0993db367f6cc9ed9337b66cfec993db367f6cc9ed9337b66cfec993db367f6cc9e999b59f10cd579614d40b9a1248c62db013cefc7ce9379ee803c6a6ae8b9c3fb8ef57153cfcc73875d815df7f741772983b1bacb413d8bc0afac5be677c176f0cc9ed9337b66cfec993db367f6cc9ed9337b66cfec993db367f6cc9ed9337b66cfcccdac7886e9bcb026a0dc301246b1bd073c1fc4cfd32d61f0a8a9a1e70e1f38d6c7513dd3cf1d760776dd3f00dda50cc6ea6e07f52c02bfb26e99df0ddb61b767f6cc1666c5335ce7853501e58693308a6d17f0ec899d27f3fc1479d4d4503bb6c7b13e6eea9969c7f60676ddf780ee52066375af837a16815f59b7ccef85ed900df3aa3c64f63a7b9da398bdce5ee72866afb3d7398ad9ebec758e62f63a7b9da398bdce5ee72866afb3d7398ad9ebec758e62f63a7b9da398bdce85a3b3e2a9d279614d40b92a1246b1ed069e0f63e7e95a9e3078d45464cca720ffa1637ddcd433f3dc615f60d7fd43d05dcae0feb5cf413d8bc0afac5be6f7c17668eeccabf290d9c7466e987d6c78e628661f1b9e398ad9c786678e62f6b1e199a3987d6c78e628661f1b9e398ad9c786678e62f6b1e199a3987d6c78e628661f1b9e398ad9c786678e62f6b1e199a3987d6c78e628661f1b9e398a992136144fb5ce0b6b02ca5593308a6d2ff07c143f4fb784c1a3a622633e05f98f1cebe3a89ee97e3b1f0776dd3f02dda50cee5f1f3ba86711f89575cbfcc7b01d3cb367b6312b9e1a9d17d60494ab216114db3ee0f9247e9e64c2e0515343edd8278ef57154cf743bf66960d7fd13d05dca60ac7eeaa09e45e057d62df39fc276c83766c5335ae7853501e54693308aed63e0711077699e528347e63f21f0ade66b75be44ffe2f6aa054686ed559a03cdda193ced0ccd0ea66f55ff093a7f98fec5ed35011819b657bb1c68d6dee0696f6876307d2b2d26eafce1fa17b7d7446064d85eed73a0d9c16c0f0fe6be7d30e3d46b7ef0342f3a889a171d44cd8bbce6549a3b38be24f1581600034e29c87f0a3cdf8e9f277d5feed32c78be0d3cdf8a9fa78ba37a96abf57e07d8e35aafd2eabb86569f1a5a95421964f8ae03fd8ac0afac5be6c59f67f6cc51cc786e2bac0928f70909a3d8be053c2eda0d55f7f3f5ba64fdadc2f4d951757e5d3c2fc17bc5adf47a8543fc154399896575657fa7d94ae0ffb2dd547df6193647ef3077b13db79379f15712e4ecde6d83f792510b17cf9bb23deeefb3f07c1d1f4f39eee7e86bafa3ba67f3ec6faf8527c6ba77897aeeb927febaa7db8fce7a5db27eb58ffefb514e35ef86fb9eb41f9d8d3a17439981657565ff03da0f5b5be17adf94737273df6c11d4b567c255a6ede633a1afb55dca7d04e5b1cda9d0bfb87f56405d5db58b51f798b05d34db6e97da9bcf254ddfa5a0cb47a49ad99e53a08e9516ee4a026e8cc75cee67b26edb33b24a434736cd705b7f64d1b1af85bb2f0137e37eddd7d0914db303edd7832cdc8308b819f7eb41868e6c9a1d68bf1e6ce11e4cc0cdb85f0f367464d3ec40fbf5100bf710026ec6fd7a88a1239b6607daaf875ab887127033eed7430d1dd9343bd07e3dccc23d8c809b71bf1e66e8c8a6d981f6ebe116eee104dc8cfbf5f0a0be8e6c9a1d68bfaeb27057117033eed755868e6c9a1d68bfaeb67057137033eed7d5868e6c9a1d68bfaeb170d7107033eed735868e6c9a1d68bf1e6de11e4dc0cdb85f37b6df3eeb7e5d6be1ae25e066dcaf6b0d1dd9343bd07e3dc1c23d81809b71bf9e60e8c8a6d981f6eb8916ee8904dc8cfbf544434736cd6cfbb5a37709b37eb7f163a7fa64c698fe380b9e0f81c7454c398a837247fd5cd27d53f7185a7d6c68856377ec05fd1cf48569f09b04e2cf337b66cfec993db367f6cc9ed9337b66cfec993db367f6cc9ed9337b66cfec993d333f337e97119faf48b98f4818c586cfa45cdce75775bf40af4bd6df2a4c038fa9f3bb3776bfc9f222c35f0a38c45f319439e1d4bab2d76bb69260ffed866371e3b6dc1d7b1d32dbd28c7f99177f25509f3dc0e3e0fdfc34cf5e8367af450b7cef341edfc9916e344e96abefe31d1ad46de7dd467d50d30f62f75f5fd32243d30f1cfb4e04f5b7a730e094823cf2b87836eca89ee9b66097512753e35228d311eab9cb413d8bc0afac5be677018f4c2d80c7550c06064f60d147a64a329ea9643ca3c978ce20e3194ac6731c19cfb5643c8792f15c44c6f320194f37329e09643c23c9784e25e3b9998ce748329e2bc9782e20e32926e3e947c6338d8ca73719cf5d643c6791f10c23e3398f8ce704329eebc97812643c9790f13c4cc69324e39944c6338a8ca70319cfad643c4793f15c4dc6d39a8c2745c6731f194f4f329e73c878c691f19c4dc6339c8ce724329e1bc9780e23e36947c6731919cf23643c15643ce793f14c21e3b9938ce774329edbc878cac9788e25e3b9868ca73319cf85643c6dc8781e20e3e94ec6534bc65345c6730a19cf20329e73c9788e20e3b9828ca725194f5f329e7bc878fa90f18c21e3e944c6732619cfed643cc793f15c47c6d3968ce762329e3d643c0f91f17425e39948c6534dc6b38f8ca78c8c673019cf51643c5791f1b422e3e94fc6732f194f2f329eb1643c1dc978ee20e339918ce706329e12329e52329e4bc978a693f17421e3994cc65343c6731a19cf10329e63c8780692f11c42c633808ce77e329e1e643ce3c9784690f19c4cc6731319cfe1643cedc9782e27e32922e04904fb7f8b2901ffdf0b36f966d087606b61599f3ca796f2eab8b8b8c3feeb6e6159f7071606d4e97da84b4ae7cbbfd994d6097da5605efc9500c707243c9793f1b427e3399c8ce726329e93c9784690f18c27e3e941c6733f19cf00329e43c8780692f11c43c633848ce734329e1a329ec9643c5dc878a693f15c4ac6534ac65342c6730319cf89643c7790f17424e3194bc6d38b8ce75e329efe643cadc878ae22e3398a8c6730194f1919cf3e329e6a329e89643c5dc9781e22e3d943c67331194f5b329eebc8788e27e3b99d8ce74c329e4e643c63c878fa90f1dc43c6d3978ca72519cf15643c4790f19c4bc633888ce714329e2a329e5a329eee643c0f90f1b421e3b9908ca73319cf35643cc792f19493f1dc46c6733a19cf9d643c53c878ce27e3a920e379848ce732329e76643c8791f1dc48c6731219cf70329eb3c978c691f19c43c6d3938ce73e329e14194f6b329eabc9788e26e3b9958ca70319cf28329e49643c49329e87c9782e21e34990f15c4fc6730219cf79643cc3c878ce22e3b98b8ca73719cf34329e7e643cc5643c1790f15c49c6732419cfcd643ca792f18c24e39940c6d38d8ce741329e8bc8780e25e3b9968ce738329ea1643c6790f18c26e3994ac65349c6d3c2e0c1ffab77c3f6e8bc7c3ba818fe3f49772e6fa7d72565e419b1ba57f19e6153f5dde9a8beef0575530ae677427d85fd3de079cf11cffb068fe9bb04f295a0d90ec3a618b73b62dc6130cafc766014fd7600cf0e473c3b0d1ed37709e4fb8266ef1a36c5b8cd11e3bb06a3cc6f0346d1ef5de079d711cf7683c7f45d02f941a0d956c3a618b73862dc6a30cafc166014fdb602cf56473cdb0c1ed37709e4078366ef1836c5b8d911e33b06a3cc6f0646d1ef1de079c711cf1683c7f45d02f921a0d926c3a618373a62dc6430cafc466014fd3601cf26473c9b0d1ed37709e48782661b0c9b625cef887183c128f3eb8151f4db003c1b1cf16c34784cdf25901f069aad336c8a71ad23c67506a3ccaf0546d16f1df0ac73c4b3dee0317d97407e3868b6c6b029c6d58e18d7188c32bf1a1845bf35c0b3c611cf5a83c7f45d02f92ad06c9561538c2b1d31ae3218657e25308a7eab806795239ed5068fe9bb04f2d5a0d90ac3a618973b625c6130cafc726014fd5600cf0a473c2b0d1ed37709e46b40b3b70d9b627ccb11e3db06a3ccbf058ca2dfdbc0f3b6239ee5068fe9bb04f2a341b365864d312e75c4b8cc6094f9a5c028fa2d039e658e78de32784cdf2590af05cd961836c5b8d811e3128351e61703a3e8b704789638e2596af098be4b203f01347bd3b029c6458e18df3418657e11308a7e6f02cf9b8e78161b3ca6ef12c84f04cdde306c8af175478c6f188c32ff3a308a7e6f00cf1b8e7816193ca6ef12c8df0836e1ed03b6d774be37d85ed5f95e607b45e77b82ed659def01b69774be3bd85ed4f96e607b41e7bb82ed799d4f82ed399def02b66775be1fd89ed1f9fe605ba8f329b02dd0f901609baff317826d9ece5f04b6b93a7f31d8e6e8fc25609badf397826d96ce5f06b6993a7f39d866e8fc15607b5ae7af04db533a7f15d89ed4f9abc1f684ce0f04dbe33a7f0dd81ed3f96bc1f6a8ce5f07b6bb75fe7ab0dda2f33780ed639dbf096c9fe8fccd60fb54e76f05dbb774fe36b07d5be76f07db7774fe0eb07d57e74780ed7b3a3f126cdfd7f95160fb81cedf09b61feafc18b0fd48e7ef02db8f757e2cd87ea2f3e3c0f6539d1f0fb69fe9fc24b0fd5ce72783ed173a3f056cbfd4f9a960fb95cedf03b6cf747e1ad87eadf3f782ed373a7f1fd87eabf3f783ed773aff00d87eaff30f82ed739d7f086c5fe8fcc360fb83ce4f07db973aff08d8fea8f3d2aea976f64f3a5f16c4dbce7e15d44d65e05bfca9327fd6f9d6461959b618ca9ca53b14aa671cea5ba6d20e4bbbac6cd20ebf063669875f059bb4c3af804ddae197c126edf04b609376f845b0493bfc02d8a41d7e1e6cd20e3f073669879f059bb4c3cf802da5f30bc126edf002b0493b3c1f6cd20ecf039bb4c373c126edf01cb0493b3c1b6cd20ecf029bb4c333c126edf00cb0493bfc34d8a41d7e0a6cd20e3f093669879f009bb4c38f834ddae1c7c026edf0a3609376f86eb0493b7c0bd8647ff90a6cd2367f0c36699b3f019bb4cd9f824ddae66f814ddae66f834ddae6ef804ddae6ef824ddae6ef814ddae6ef834ddae61f804ddae61f824ddae61f814ddae61f836d9cceff046cd236ff146cd236ff0c6cd236ff1c6cd236ff026cd236ff126cd236ff0a6cd2367f0636699b7f0d36699b7f0336699b7f0b36699b7f0736699b7f0f36699b3f079bb4cd5f804ddae63f80ed119d97b6ba0dd8e459b19acabfe184e3f0b4005fc2920ae26dfb714a411eeb2e532519cf1c329ed1643c2f91f19c41c633948ce738329e43c978de20e39940c6b3908c671919cf52329ed7c9784e25e3d940c6b39e8ce748329ef7c8787692f15c40c6534cc6338b8ce705329eb3c8788691f19c47c67302194f828c673e19cf12329ec5643caf92f17420e35947c6b3968ce768329e1d643cdbc9785a93f17c45c633838ce71c329ee7c878ce26e3194ec6731219cf61643cedc8782ac878ce27e3994bc6f32619cf22329e97c9784e27e35943c6b39a8ca79c8ce758329e77c978b691f17426e36943c6f314194f2d19cf33643c55643ca790f10c22e339978ce708329e96643c7dc9786e21e3994dc6f322194f27329e33c9785691f1ac24e3f9928ce778329ead643c5bc878da92f1ec21e39948c6b3808ca79a8ce735329e7d643c65643c83c9788e22e36945c6f33119cf4c329ee7c9785690f12c27e339918ce71d329ecd643c25643ca5643cf3c8786ac8785e21e3398d8c670819cf31643c8790f13c4dc6f32c19cfdb643c6f91f19c4cc6b3898c672319cfe1643cedc9787691f1bc4fc65344c093008e006cf2ff966093eff0ec03db173abf076cf20d9f37c0f6b9ce3f02b6872cb616163e61980e367957f60bb0c9fd9987c126ef4c7c0e36396f10ff6a7e6587fdf95bc032e2a7a5851ffd7d6ee1923c6e6f592615c4bbbdd1572ab07ff3aec8603cd83cef93f1ec22e3694fc6733819cf46329e4d643c2793f1bc45c6f33619cfb3643c4f93f11c42c6730c19cf10329ed3c8785e21e3a921e39947c6534ac65342c6b3998ce71d329e13c9789693f1ac20e3799e8c672619cfc7643cadc8788e22e3194cc65346c6b38f8ce735329e6a329e05643c13c978f690f1b425e3d942c6b3958ce778329e2fc9785692f1ac22e339938ca71319cf8b643cb3c9786e21e3e94bc6d3928ce708329e73c9780691f19c42c65345c6f30c194f2d19cf53643c6dc8783a93f16c23e379978ce758329e72329ed5643c6bc8784e27e379998c671119cf9b643c73c978ce27e3a920e36947c6731819cf49643cc3c978ce26e3798e8ce71c329e19643c5f91f1b426e3d94ec6b3838ce768329eb5643cebc8783a90f1bc4ac6b3988c670919cf7c329e0419cf09643ce791f10c23e3398b8ce705329e59643cc5643c1790f1ec24e3798f8ce748329ef5643c1bc8784e25e3799d8c672919cf32329e85643c13c878de20e339948ce738329ea1643c6790f1bc44c6339a8c670e194f25194f0b0bcf3e473cf2ad1859b7ccef6be6be771abe771688efed86efed05e27b9be17b5b81f8de62f8de5220be371bbe371788ef8d86ef8d05e27bbde17b7d81f85e6bf85e5b20be571bbe571788ef9586ef9505e27bb9e17b7981f87ecbf0fd5681f85e6af85e5a20be171bbe171788ef4586ef4505e29bf9fa5b7d274cfa2aefd2bf09f87f0530bee188719fc128f36f00a3d8f07bd4158e78a2aedd2b087c2b2de45e963cf34cc0ff2b81d1554c55188c326f8ba99dc053e98827ea9e4325816fa585bc8b2d7d2a13f07f1c7fd9554c551a8c326f8ba9edc0d3d7114fd4bd92be04be9516f2eeb3bcf39780ffe378ebae62aaafc128f3b698da063c831cf144dde31944e05b6921df0a936fd224e0ff383ea3ab981a6430cabc2da670fcdcc18e78a2ee4d0d26f0adb4906fedca372f13f07f1cbfc9554c0d361865de1653387edc10473c51f7d48610f8565ac8b360f9467b02fe3f14185dc5d4108351e66d3185e3dd0c75c413752f7028816fa5c5309d973e5609f8ff3060741553430d4699b7c5d47ae019e68827ea1ee63002df4a8be13a2fef7024e0ffc381d1554c0d331865de16536b8167b8239ea87bafc3097c2b2daa747e8dfe4dc0ffab80d1554c0d371865de1653ab81a7ca114fd43de32a02df4a8b6a9d976fce25e0ff38fefb70478c5506a3cc0f0746b1ad049e6a473c51f7baab097c2b2de4dbfe2bf46f02fe8fe3b1ba8aa96a8351e66d3185e341d738e289ba475f43e05b69315ae7654c9804fc7f3430ba8aa91a8351e66d3185e3578e76c413f56c6134816fa5857c9b6b99fe4dc0ff6b81d1554c8d361865de16534b81a7d611cf628367b1458b83e55b69217db997e8df04fc7f0230ba8aa95a8351e66d31b518782638e2897a963381c0b7d242beadfda6fe4dc0ff2702a3ab989a6030cabc2da61601cf44473c51cfa026e6c077d4f3945cf88e7a36900bdf51f7b973e13bea9e6d2e7c47dd7fcc85efa87b69b9f01d755f2817bea3ee71e4c277d4f57a2e7c475d7be6c277d475542e7c475d13e4c277d4f96d2e7c479dabe5c277d479876fcf7d7b1eb7ef8379ee50a8edf9c13c861ecc6389bf36f0d706b9f2ed8f25feda2057be0bf5dac0b7e7b96fcfe5faab2888be1e7bcb91efa5866f99c7e72c4b1df95e6cf896797c66b0d891ef45866f99c7fbdf8b1cf92e357ccbfca21cf86e67f86e9743dfed0ddfed2dbe1d6cef6422a87ffd2d0c38a5208f31f0a6032d1cd5b35cad77895ed7d731aed776dfc6dc5f4aa1cc12d0cf75db21eb36db8e7c64c6b8288acf7779027cc877c9944d9e1fbf063669f75f059bf40b78056c726c7a196cf24cea25b0c933ab17c1365ae73f069b3c3bc63efbf2fc7f1bd8aa741efb8a0fd7f92d6093be54d84759fac36d069bf469c4beb1d22f7523d8a46f31f6c994fee1ebc1267dfcb12fa0bca7b1166cf2ae0df64193f7a556836d8fce63df27f90ecd4ab04dd7f91560fb83ce2f07db833a7f0bd87eaff35f81ed773abf086c0fe8fc9b60fbadce2f01dbfd3aff02d87ea3f3cf83ed3e9d7f0e6cf7ea3cbecbf66b9d7f1f6c9fe93cbe43354de77782ed573a8fefeedca3f3dbc1f64b9d7f166c5375fe19b04dd1f98560fb85ce2f00dbcf757e3ed826ebfc3cb0fd4ce7e7826d92cecf01db4f757e36d8c6ebfc2cb0fd44e767826d9ccecf00db589d7f1a6c3fd6f9a7c0f6239dff126c77e9fc62b0b5d0f9a560933123b19f4ab1cebf05b6563a8ffd8fe4fbfe13c17688ce4f005b1b9daf059b7c1b6e34d8643ce81ab02574be1a6c253a5f0536393f1b0e3619ff6418d8e45c6a28d80ed7f9216093f39ec16093f12c07814dbe41da176c47e97c25d8e4dbfa15603b46e7f7814dc61c7b036cf2ddba3d6093b1981f069b7caf7a3ad84ed4f93f804dc66179106c27ebfcefc1768aceff0e6cf20dcf07c056a6f3bf055b079dbf1f6ca7e9fc6fc0266364dd07b63374fe5eb0c9d8c1bf069b7ceff933b075d4f969603b5be77f0536194be41eb0c9f8a0bf045b279d9f0a36f90ef714b09daff3bf009b8cf7f773b0c9378627834dc675fb19d8bae8fc24b02575fea760ebaaf3e3c1d64de77f02b6ee3a3f0e6c3d747e2cd87aeafc8fc1d64be77f04b6de3a2fed8cda9fd57ebe57cfa782f8cecb94bf0f83fa5343d706c2803c719e6b97020ffada1d7bdd93e9f37ad9ef5be8f54a0ced06dfbb62f79db9a6f840afab58af7797e1bb18ca9cad1b07b59c1cf35beae5f618cbe17d2c59b72c7301d8df37d6dd4ed7f70347f5dd65300937ea2065ced34cead8f8039d6f03cbc4c896be3e96580b40439c52901706375a25cbf1bcb7313c1f00cfeed87932d7eb2e6202f7adb8afd7cdfbb866ac9542995da0dffb0ef4c37d5dd62df3e2cf337b66cfec993db367f6cc9ed9337b66cfec993db367f6cc9ed9337b66cfec993d333fb3e2d9abf3f85c59caed256114db6ee071719f1f9fc3cafad5739df74fadf3bb3b76bff59fefb5d2eb2d37ea5c0c65be86674e7b74be04fe2fdb2d6a5b3a784ed8e0b6147f25501f7c16b4d711cf6e8367b7450bc997c5e63b39d28dc6c972d597453d63df63e8bad7a2a9abfd75b75e5791a129eeaf1f1a3cf86cb404783fd2bf0958cf47500707fb78837121fe705fda0d36c97f088c2eb6331e4ba43d90e7e1f86c5acafcca782e1effb64f96bb6c37de833aa582fde3bb18cafc0edabecf751efb86ec05ddfe61f9bf4c0d3da716fd549d77c45fe7f4f6dd0e9c29f083bedf05d6987cd77b87a64827f123f662c8ff1dfa734839d143b416761caf1cd9cde53e34962b85323b2df54f05f1d67f87c1b3c36056dbe44b88b37fc0f1df559bb43342a30b402329b31b34dae38867b7c1231ce24f9591eddfda2823cb164399ff056d94aa8bb4f3524fecdb82c70057c731f125eb9679dbb9f107c068d651c5c7c063ea7877c7ce9b5ffdbf0e29cbfc62bb1e57ff2f59773bbdac7004c6facb61fdc2d53a883eb6fccff62dab5bbfcbfe657b8c3a0b0bea2c65da95657e559c5daaf3d99ceb1facebb6a873fd9d0e781241fd6b6f3535747cc763cc7bf07f2953fecda62e8eea596e3b76bd6fd4a914ca74847a3a388f69f05de01de0dbc536472de41c6a97a1453194e95096f995b6234a47bc56fd202775495acf07cb2d7591321dcbeaead206ec7132b9dc6eef429dd47a775bea2a65ce2babd3a5b3ce27603be17d93be96ffcbd4507b8063f16c8dbfcee9edbb053853e0077dbf03ac31f9aef72d1039df173f622f867c65595d5929277a88d6c2aef61179e70fd9cde57619cb9542996d96faa78278ebbfd5e0d96a30ab6dd2a5ac2e2f71e4b2dddc16a15139682465f0feb11cdbf1bd3bdb717fb723eea8e3fe6e6034db4d3c7771c9b6c76033efa1dace07a50c9e934999abca32bfaa9d4d58ca9af7865ddcc7c4775003a84760d455268c0107d786ddf0da49da29f1d319ecbb755e74ee6c68570c650695657e1d9e775bef5d9ad777784d21dce6be85ef7e0c29abe3c6b11377ebdf12b07da27f1d5da775b3dd33140edb3dc3e16575ecb8ac707d6ca98b798ddc22d8ff9efad74659bcefd6d07266de1c8752e9fb8951cee607af79627b57a34b793932b508ecf70b3e34d88b82fdc7dc94fd0063cebc8fd2d9580fde47a92dcbfc4a9b649655dbfedf8faad347b6a36887ed09c6e487c098d2f9f26f3675b1d55fe6c59f62fcc8a8839bb62bf3be5236f781f7008f8bb6dd511b5d8ec7d836b1adb77795edf8ffa1a1550e9fd75a8ff9e633f736463e1edfc96adbfd279b16bb2c3cae9ea34469b1cbe23b3e2d7a8cb41d3f6c5ae4b2ef439416ef5b7cc7a8450ddef76c488bf72c3c2eee4535a4c57b16dff169d1b3bca1e71aa8c54e0b8fab7b0f515a88bf6c99df27606e63e4e3f1ddadca769fcca6c50e0b8fabebe6282d76587cc7a745971e788fae212db65b78e2bf3fd7b016db2dbee3d3a2576fbc87d79016ef5a785c3dd38dd2e25d8bef18e36294ed5e8e4d8b6d169e6d39d6629bc5778ce7873d6cf7da6c5a6cb5f038b8efdaa0165b2dbe63d46204de776d488b2d169e2d39d6628bc5777c5a5475b7dd13b669f18e85c7d53de1282ddeb1f88e4f8b11bd94efcd8dd062b38567738eb5d86cf11de335543a2e3635428b4d169e4d39d66293c5777c5a54a7cfb53636428b8d169e8d39d662a3c5777c5a94a78fa91b1aa1c5060bcf861c6bb1c1e23bc6b8485f4fae6f8416eb2d3ceb73acc57a8bef188f23e9b858d7082dd65978d6e5588b7516dff1695193beffb4b6115aacb5f0accdb1166b2dbe63bce7928e8b358dd0628d85674d8eb55863f11d9f165dd3c7d4d58dd062b58567758eb5586df11d9f16a3d2cfc45635428b55169e5539d66295c5778ce79de9f6626523b45869e15999632d565a7cc778de99be7fb1a2115aacb0f0acc8b1162b2cbe636c3bd3e79dcb1ba1c5720bcff21c6bb1dce23bc6f3ceb4166f37428bb72d3c6fe7588bb72dbe633cef4c1f47de6a84166f59785c8d8112a5c55b16df31c645baed5cd6082d96597896e5588b6516df31ded74ab79d4b1ba1c5520b8fabf11aa2b4586af11de3f548fa1edf924668b1c4c2b324c75a2cb1f88ef15951fa1c7c7123b4586ce1599c632d1683ef3db1fbcef4e7161fd217eb7c438b6228734a87ccaff4c58ad251d681fdcab02e6fc65e974cbfb24511757913ea2265ce80bab4099c8c51d4cd515dd331f306d449adf7234b5da5cc391dea74e9a4f309d8261f836e7d2cff97a9c8984f415ef453757e2dfe3aa763f555e04c811ff4fd0ab0c6e4bb0bfa2ed249fc88bd18f2bd3bd4959572a287682dec6a1f795de791dd5c6eb1b15c299479dd52ff54106ffd5f33785e3398d3ef3d409c491cb969bb324caf4768743e682465b0cfde478e78cc3e84c221fe5419d9fead8d32d88752ca5c086d14f62b957a2682fdfb4d3a6acbba20bbac5be6c55f29d8f600a35947151f9f41df4f192b42c69150361917a22baca7a7615375ede5a8aee24bd62df3bd8051c6a9e8997bc66463197b188c8aa78f03cd70ec0d991a3a5ef4019ede0e781cd5337d1caa30ead4cba8532994c1771b2b1cd4b308fccaba65be027cbbd8e6a8851c93cf31b4288632c38df3c7281d651d2a7e7b5aead2cf715d64ddd22ef5cb81ef4ac37777c37722a8bf9d83a0e1fdab1298fb3a6056ebed1fff7acbf1bc4d624afc74873a0d000de2aa13ae4bcef30618da16437e2a9ce74939292bc72f6157b12cdb12d9cde5fa18cb9542997e96faa78278ebdfdfe0e96f30ab6d72179cdb39d81fd231d0cfe090f9eea05dff08edfa817652068f7f3d1c69d7d7e091f91ec023e7381560937305e14fc0ffbbe680db6cf72a2cdc62c371e27a5818bbc7cf983ed7e96130ca7c7760145b5fe0a974a499b9adcf31f4c1e3726ba38c2c5b0c6566c1b1316129abf6bb8e4575f56aa9edb1bd3ba6dbf4d60ef4c2711a03d02730340c402fa9672b073c6d83bab11a274fa99d34e2ce51378cca3c7a14b46203137f8b2cd5680136ccb7b4d882a0fe9094c5609321295b81ad85210b0e8529e565483b1772a11eb2ee6283b30db0c4e91b87f394a9a1d03904785c84b20a1d19d25387ce2d93c64c1985f1d1cae06c4aeca8ffb56ca05cd4ba5c6d07739f48c1bc1983c58efcb784faa6605efca96d53aaf313468cbc7bc0a43ba78e1b357eca6414cadcb1315f14d4df00e66f94e0ae763a0c00ac30360ead8c7a618321ff930dd3367ece6e3866aea94d00fe646a0bba1dea4037b57e19fb76e488b163af9b5a3576ccc84ba78e1f39654ced78dc9a6d0ce5a2b6b4fcbf35d86c4d3c965513365bb8ec21169b6dc25186db804d8e5c87824d78da82ad25e4a5bcb9659c846b4758bfec52ea7f4a9c56bae287047521208763d5aeaafd577d3e569d06a9a18ed5d0c66a73aaa18bd51d433534b1fa8a9d1a7a580d35ac86163e21c80c1dac860a3e39c80c05acbe7651166486f63d2dc80cdd7b4690199af72ce0fb36309f1d644ebbd4d0ba9d82ccd0b9ead6a57a755d7de64dbd5baf4edfd56d0175caab2ef1d4e9a73aed549717eaf685ba95a54ee9d4e9b23a1554a76fea72a4bfd67a40982e0cd34561ba384c9784e9d2305d16a6cbc3744598ae0cd35561ba3a4c03c3744d98ae0dd37561ba3e4c3784e9c630dd14648677be39c80cbfae867fbe35c80c0d7d5b901936faf62033a4f41d4166b8e911416628ea91416698ea51416608eb3b83ccf0d66382cc30b9770799a176c70599e17ad570d86a986c357cb61ae6570d09ac861456430dab6189d510c66a08643534f2fd4166c8653564f3434166d8e7e9617a244c8f86e9b1303d1ea627c2f46490191e5c0d1b3e23c80c33ae861f9f1d64862b9f1b64863757c39eabe1d0d530e96af87435acba1ae65d0dffae86857f314c2f85e9e520f348423d8a518f28d4ed7ff5184cdda27e33c8dc3a5f12641e71ab47feaa0b84ea12a2bac8ac08325da8549732d5c54e7539545d30559754d545577559565db8559776d5c55fbdf2a05e0151afc4a85784d42b53ea1532f54a9d7ac550bd26aa5ebb54af11abd7aa770799dbe27b83cca352753b5c3d1a50b7ccd5edfb4fc3f4ad201393df09d377c3f4bd307d3f4c3f08d30f83ccb0c66ab863355cb21a5a590dc3ac866c564339aba1a0d5b0d19f0599a1a7d5d0d5bf0d324362ff3e4c9f87e98b2033bcf69761fa6398be0ad39fc2f4e730fd254c7f0dd3dfc2f42f61fad730fd5b98fe1ea67f84e99f41dd30dbd8909ca05b1f7d05138c983265d4b80953caa6d4968d9b3a76ca980963ef2b9b3666cae8b2da7b464daa195b3b0d17feb65e58c6081f3069d288fbcac68caf1e756f59edd42965b5356555b553c757d73b88ff452f74d2fe1e475457473bfbcf6f42fa7f9be8f450dd2ecae8eb57345cb792964d10e488a62cd4a365d32a34491fc1e452f7c6cc7970d9e4b1b553cacacbc6877fc3036fedb451d59dcbf07f934391274f299b3c65c4a4296535936ac79575e98ceb7db86d132af15f6dddc09c7942d3c4e9a8bfb3d4a410fbe5a94d50e03f4e6d1a69ebb26f40dab6ac694ecbca9a50c3b39ab2d0954d24bca92c5296c953aba64c1a31724af4c2b77e9385ef684a35c737b19a27776882b3d39bb2d0800e4d23bca329ce6666e12cf86f5a25cf63845506009b2d6c6f00000028461f8b08000000000000ffed9d77741cd775c667d158164b1024c15ea046b3015c2c1a0136b0774a9464f5429004455a24419150b32c4bb224f7debbe516cbbdf758a97612274e1c3b96bbe36e4b2eca3f39ce49cef1c97bb3ef1a1f1e67d658682e78077be79c8b7d73f7eddcdffbe6ce9bd9f766074f054190098a4bb5b18b8273177abfcfbde69fded296e0b6f29c9c99947056a584b33a259c3529e1ac4d09675d4a3827a58473724a38a724c869d9aa82914bd2bc5319744d9a319b324deb53a0692e659a4e4b81a60d413afaa8e929e16c4c09e78c9470ce4c09e7ac947036a58473764a38e7a484736e4a38e7a584737e4a3817a48473614a3817a58473714a3897a484b339259c17a484f3c294705e9412ce8b53c27949829c2b8173a97b7d867b5de65e97bbd715ee953eb3cabdb6b836d6b8f55663ab2d9bb136efbd82b176631dc63abdf7ba8c751b5b63acc7bdd7ecdeeb35b6d6d83a63eb8d6d30b6d1e9b0c9d866635b8c6d35b6cdd876633b8ced34b6cbd86e637b8ced35b6cfd87e63971abbccd80163971bbbc2d895c69e69ec2a63571bbbc6d8b51ecb75c6ae377683b11b8ddd64ec6663078df51b3b64ecb0b123c6068c1d35768bb163c68e1b7b96b15b8d9d3076d2d8296383c64e1bbbcdd81963678d0d19bbddd81dc6ee347697b1bb3dcd9e6dec1e63cf3176afc7f95c63f719bbdfd803c69e67ec41630f197bd8d8f38dbdc0d80b8dbdc8d88b8dbdc4d84b8dbdccd8cb8dbdc2d82b8dbdcad8ab8dbdc6d86b8dbdced8eb8dbdc1d81b8dbdc9d89b8dbdc5d85b8dbdcdb1d081f07663ef30f688b1771a7b97b1771b7b8fb1f71afb0b63ef33f6a8b1f71bfb80b10f1afb90b10f1bfb88b18f1afb98b18f1bfb84b14f1afb94b14f1bfb8cb1cf1afb9cb1cf1bfb82b12f1afb4b635f32f698b1bf32f6d7c6fec6d8df1afb3b637f6feccbc6be62ec1f8cfda3b17f32f65563ff6cec5f8c7dcdd3fc5f8dfd9bb1af1bfb77e7fb867bfda6ab4be362ff61ec5baefcb87bfdb67bfd8e7bfdaef799ef19fbbee7fb81b11f7abe1f19fb4f57feb17bfd897bfda97bfd997bfdb97bfd857bfda57bfd957bfdb57b7dc2bd3ee95e7fe35e7feb5e7fe75e7fef5e9f32765953b13c39185efa8284faa88ea3793ba742e22f0d462e568b6af71ebd363b7f8d5ba757d2aed6add77afe3ab75ee76d67b25b9fecf91bdd7aa3e79fe9d6677afe26b7dee4f9e7b8f5399eff62b77e31f8b3018cb93abff5553b57067c94af55e0ab75be6af0d5d1e6c037c9f96ac147fbb70e7c539c6f12f8a63adf64f0659d6f0a6969acdef9fa82a47225df6fb79b4b7abb6e1e6a5af2bc87ed761b9878a727cf3b60b7dbc8c06bf36386dbd674c89b99ced708be59ce37037cae0bfad331677db39d6f16f8e6385f13f8e63adf6cf0cd73be39e09bef7c73c1b7c0f9e6816fa1f3cd07df22e75b00bec5ceb7107c4b9c6f11f89a9d6f31f82e70be25e0bbd0f99ac147f7b85c00be8b9def42f05de27c17818ffada8bc147d78697389fed272667e033ce4f7d54f819ea9fc1b78cfa66f02da77e197c2ba84f06df4a884dbe55d0af90afc5f9a88fb2eff5ba725f90d43151088f89b5496fd76cd96e777df2db0de7ed3604c35af7419cb5a0d546574ef0dea0368c9d714671c85f03e55d5097ea911e749e21767b3e59e7ca1b4b7caed7fb5c0eeaac8b687f5f906cfbd77b3ceb3de65a683f4fceb617346747bd949db357435d3ff7e89a6722e6ec5ee060c8d92ecdd9512f65e7ec00d4f5738fae7b2762ce5e071c0c39dbcf93b385bce66c718c2c08a2738fbefb4cc49c3d061cc9e76ca7e6ece897b273f601a8ebe71e7dff9d88397b0770249fb3ddfd7a6d30eaa5ec9c7d05d4f5738fc6622662ce3e041c0c393ba0fdeca897b273f66d50d7cf3d1a179c8839fb6ae0483e677b9872b65d733628ce77064174eed118f544ccd9478023f99c3dace3b3a35fcaced9cf435d3ff768be6422e6ec475cd9ce337cc3cd332c04df379d6f11f0269fdb473a9872bba0b95dbc0f2408a27394e6ee26626e3fe6ca368f1f877b0fc8f76de7bb007cdf71be0bc1f75de7bb08dac5700cf4eb3130eaa5ec63e0fb50d7cf659a479e88c7c0d7818321670f6bce8e7a293b679f80ba7eeed13d0d1331677f041c0c393ba0393beaa5ec9cfd03d4f5736f992b4fc49ca5fb4aedf5c28fddf5c20af0fdc4f95682efa7ceb70a7c3f73be16f0fddcf95ac1f70be75b0dbe5f3a5f1e7cbf72be36f0fddaf90ae07bc2f9dac1f7a4f37580ef37ced709bedf3a5f17f87ee77cdde0fbbdf3ad01df53ced7e37c76be8beebdfaaaf3d97d4b1af505c9ee5bbac792b64debabc621768317bb611c63377ab11b2362b730c4ce420c5a32de7a1f945b7879f2b960e4ef3f28d6eae463b5dbb6b706a36ffb6ae0c933b43d0b3146c393079eb6e479c27b7d0bc96f37dcc7ad9ea65988d50aed6a6768570662d1b6699de2e5c087fd777b046347f28c850cc4a26dd37a0730920fcf27745ea7e3c79e0f97668679198ea5f09a88e2d1b3bf886335f8a9ceef670db3ad706cf5f03e9e5bdb3c1f535e867941b168dbb44ef1eaa13d6de3cf58182d63de63e4ea2332108bb6edc7c6e3bd65fc351bd57ecd81ef3cf44985b1f649f5c0361ed72971fb5a4a6c8ef355066250df469a17c04f7566bb1f24d8be6d07f4bb0cc75fa1dceb37ec0f92cfe3421e8febd1f0b4030fc7b1cf74bce6f1bcffc720d95cebf4b46af3b4ca419d0ed0af9341bf52d721144f99955999955999955999955999955999955999955999955999955999955999e533e3fd1738bf49f5560961245f017838c6f9c3e747b96dd1f6edbcce77605e27f9798b421ee72ce91ec3e55e9b6ba0ce9399e1ba3f80f9747f6e10e73457f16a37aafb2cea8373e76239e710e3e681a3e62f9b138b5d38cc35df669fa1629f43d6eae9ba2a425386fb5446689af134c5fb14577a3c364fe7550fb371ccfd953b17895a5139c9b93dbcc78077bf14fb0fca85aa6064ff81e799aec4638f9cc3a4f9f22e2f760dd4f99fccf0bea17b51e9ff1cfaf73cd93adddeb6e933cbc1dfed6dbbc17d96386abdedb7c267a9ceff419ffaf6aae04f9a71dcff81fd72006dc5a50fca386f9efc79b8388fdf5e064f27f070f4334cd71b793c06929ec7eff6b48aba8ea13a5da05f37837e51d7a2b44ef194599995599995599995599995599995599995599995599995599995599995593e33fe569458b350af2084719cee7d08e733e8f92fb47d3baff3d2aae1b8dcf37034e7b4c26b730dd4f95ad570dd57ba727d70eefd0e71fb92613eafe4bea478f5d01e9c0be2fa3d7787c7d311a105959b138b5d9cc74f5ee3e179fc764fd74284a65cc72bceb1a2a678bcb6793c38375a1f9c7b6f4916b6331ef70ec5e505c5c363a9037c54c6df4773ec673c97f8f7f5503c9cbf7ed469db1070edfb429eb3df58036dea0bcecdef1aa8f361e8fb3eeaca780f07de3bf258c4fbb4949aa726fd589e65972fcefbae05ce3e8883b1d7016b42b1db3076c619c5217f0d94bf54355c97ea911ea435b1db63849e0986ecfee7dabccfe5a04e4f44fbfb8264dbdfebf1f47acc769f7c02f2ec3138ff73f5493d311a2d078da80e5e0771dd93e7f791fefd8d78df5e9d5707af59a8ce57a08f8abb7f34ea9e43aef358dc3d8751d7c69dc0e8b7d1bfcfb3d2efd37a1cfa8ba4efd37a1c7208efd30abcedaf80ed13575d107f6ea13adff3b6ef5f93d367f03e30aaf343e82f1adc3d8bf5c1b9d7df78cfd4787cbf8abb4f9ae2e1750d1edb7faeed96790dd4ef4b9019730259f03a81eafccadb67dd31dcab233efb64cc6749ab1657c6ef2fbe7e56871ef84c5f223a148ff95eaf2d94d73dd016aaf35fde3560f2d72dc56bc0e4db3af29a84fa818e88b6529dff8663ed0f708d47fb09bf77d4559ffb3e2da5ae01493fdbe6f17e3e30c696f07ce0daeae1bafe737e49eb729f0fdce57d4ee2f381ff17f2ac0eee43e7eaabd7c568b40234a23af8db203a8fe0b37ca3ce315cf7f6c79d63a29e4189fd7343f5f8b3f9e36a51d70854873e8bd708b31c7383d3d9afeb8f17d2f932c9fb86f1b712ad10177f2bd1caa4671e74eb8375bc2e389fb1f34cb1e39e399d1f87d871cf9c1e8fd88d5eecc6718cad9aabe6923467782672f8fb337c66a95d4a5d9712430e3e579502c6ea1430d6a480b136058c7529609c9402c6c929609c9202c6a92960cc02e3f93cb733e85318ab3e5cfbabd4b506c66e61d2a29cffdfc1fcbf544a5efb606c86ef74a1162dc1e8b5c0ef791ccf7e28f77fbd1003feef821929609c9902c65929606c4a01e3ec1430ce4901e3dc1430ce4b01e3fc14302e4801e3c214302e4a01e3e214302e490163730a182f4801e3852960bc28058c17a780f19214302e55c6441857f23216c6ca687938fee7dfd3f99f630c3cf9a87b4e997e7b52f6ff5b637e3e69db589f1b87f796f0fe4fb8a7f76c3b8e7b47ca7db65da9ffb7cac458182b23d77decf83b9ed1f0e0ef22a37e5bc3c058182b23d7ef5ff0377aa3e1e902cd3a233463602c8c9591eb5eb972efe5c47bfabb223463602c8c9511efab4e9027d4acbb0c9e35a0597784660c8c85b13272dd979c8518a3e1e901cdd64468c6c058182b23d36fdb42cd7acae0c1df80f54468c6c058182ba3e559cba4596f193c6b41b3de08cd2431224fd2cfc9ee8d88c5f19bc172db4e0cc83825058c5353c088f74970f45fa5ee93e8e5d5a730567db8f657a9fb243036c3ef63422df0f7107f4e8bf5bc3c25ef93c0d81b98b4c0dfabfc392d36000fc7ef67b21063343cc49083cfcd4801e3cc1430ce4a0163530a1867a780714e0a18e7a680715e0a18e7a78071410a1817a68071510a1817a78071490a18f1bb2ac3b562c9ef2f1b2678ecb8ef2a133d76dcf792891e5bf35cf3bc12626b9e6b9e57426ccd73cdf34a88ad79ae795e09b135cf35cf2b21b6e6b9e67925c4d63cd73c97143b0d63fcca38f11891a739399e3cb61d63f509687b5f044f86a9ed186b9380b61343da1837a680716d0a1855c7e23d886361b43c9b99783695c1b31978b630f16c2e83670bf06c4d9e27cca92d65f010430e3eb736058c1b53c0a83aaa8e921855c7cad1511995511995f17c30a6a10f57c654e46361ac8c96675bf23ca1665bcbe0d9069ad1e7da78190b6365b43cdb93e70935db5606cf76d06c5b84660c8c85b1325a9e1dc9f3849a6d2f83670768b63d423306c6c258192dcfcee47942cd7694c1b31334db11a119036361ac8c966757f23ca1663bcbe0d9059aed8cd08c81b1305646cbb33b799e50b35d65f0ec06cd764568c6c058182ba3e5d9933c4fa8d9ee3278f68066bb233463602c8c95d1f2ec4d9e27d46c4f193c7b41b33d119a313016c6ca6879f625cf136ab6b70c9e7da0d9de08cda432ae4d01e3c6143032eb58182ba3e5d9cfc4b3af0c9efdc0732913cffe32782e059ecb92e70973ead232788821079f5b9b02c68d2960541d5547498caa63e5e8a88ccaa88ce531f6a58051f7b5324a6564f87e55f23734974ef0d80d5eec860a891df71b9a891e5bf35cf3bc12626b9e6b9e57426ccd73cdf34a88ad79ae795e09b135cf35cf2b21b6e6b9e67925c4d63cd73caf84d89ae79ae795105bf35cf3bc12626b9e6b9e57426ccd73cdf34a88ad79ae795e09b135cf35cf2b21b6e6b9e67925c4d63cd73caf84d89ae79ae795105bf35cf3bc12626b9e6b9e57426ccd73cdf34a88ad79ae795e09b135cf35cf2b21b6e6b9e67925c4d63cd73c9714fb40f2b10be53e63e600f0703cf386a99d79bbddcbddb6fe98a07e56ab2b3cad2ef5b4ca419dcb41bf2b18f4cb405cda36ad53bc72999f2180992976619ad9c614683fc5d8e8e961e35fc9d4f6b8befeca091e3baeaf9fe8b1e3fafa891e5bf35cf3bc12626b9e6b9e57426ccd73cd7329b1b15c1b0c5fb7d3f34fed369ee9ca356e1d59c94f752e9b547c6d08f418e288adc7909e2b2a21b6e6b9e67925c4d63cd73caf84d89ae79ae795105bf35cf3bc12626b9e6b9e57426ccd73cdf34a88ad792e2fcf311faac68127f07882123c1b84f1ec16c6b34318cf1a613c8b85f1740ae3992b8ca7208c6786309eadc278a608e3592e8ca75a18cf26613c79613c7b85f12c11c6b34218cf3c613c3385f14c15c653238c67b3309ed5c278f609e3d9238ca75718cf52613c3dc278b609e3e912c6335f184fbb309e59c278560ae3c90ae36915c6532b8c67a7309e16613ccb84f1ec17c6b34e18cf02613c4dc278ea85f1e484f1d409e3592f8c6797309eedc278ba85f12c14c6d3218c67b6309e55c278a609e36910c6b34518cf24613c8b84f1cc11c6335d184fa3309ec9c278c6e37943e5f06404f06483739f499685f70f80afcafbacedafda9a86dfbfcaf9abe03357bb7275c4b6af021ffd36fcea88cfa24e57415bfa5c39fff49650278cd507eb14af1e38ae16c2734018cf64613c8dc278a60be399238c6791309e49c278b608e36910c6334d18cf2a613cb385f17408e359288ca75b18cf76613cbb84f1ac17c653278c27278ca75e184f93309e05c278d609e3d92f8c6799309e16613c3b85f1d40ae36915c69315c6b35218cf2c613cedc278e60be3e912c6b34d184f8f309ea5c2787a85f1ec11c6b34f18cf6a613c9b85f1d408e3992a8c67a6309e79c2785608e359228c67af309ebc309e4dc278aa85f12c17c6334518cf56613c3384f11484f1cc15c6d3298c67b1309e35c2787608e3d92d8c6783309eaa081e86ff7f19f2d0fd6bb46d5a3f202436c37e08ffefe7354c6dbad66dabd66d97f8295e0dd4b9ce5d18d8fb51f0b3c4e5df6f88f7ce5d0b1a5dcbd416da1f196fff30c72ee07d950130049e3e41040fc7fda84ced1c918709feffd9bcd5ea3a4f2b7fdfe5a0ce35a0df750cfa45e5f69f8e01f79a4666cb43e70e62cd42bd0d4218c977252f4f78dc6e08462ea58edbeb8087a30f636a67787c5defb5694384ee540773f57a8676461d3bb47e3dec87b4315b9e4dae4cac59a8b7490823f9aee5e5098faf4dc1c8a5d4f1753df070f43f4ced0c8faf1bbc366d8ad09dea60aedec0d0cea86387d66f80fd903666cbb3d99589350bf5360b6124df75bc3c1d5968332da58eaf1b8087a3ff616a67787cdde8b5697384ee540773f5468676461d3bb47e23ec076556e62866cb43bf3121d62cd4db2284917cd7b3f274e4b3d0665a4af56337020f473fcfa47bd88fdde4b5694b84ee540773f5268676461d3bb47e5344ece620592d6e1e85163747f0dc3cce5a50bc7299af4921b3eaac3ac731abceaa731cb3eaac3ac731abceaa731cb3eaac3ac731abceaab35d5467d55975569d9360569d55e73866d559758e63569d55e73866d559758e63569d55e73866d559758e63569d55e73866d559758e63569d55e73866d559758e63569d55e73866d559758e6396a0b3e5a167c4106b16ea6d15c248be1b7879c2df056d0d462e196fbd0fca3703cf8d0cfa30b533bc87fca0d7a6ad11ba531d3cbe0e32b433ead8a1f583b01f0e96c17c530a9955e7b1315b1e7a562cb166a1de36218ce4bb919727ecc7b605239752fdd841e0e1e8e799da19f663fd5e9bb645e84e75f0f8ea676867d4b143eb144f9995398ed9f2d0ffb021d62cd4db2e84917c37b3f214c2df376e0f462ea5fab17ee03998384fb11f63d03decc70e796dda1ea13bd5c15c3dc4d0cea86387d60fc17e2887f9a61432abceaa731cb3eaac3ac731abceaa731cb3eaac3ac731abceaa731cb3eaac3ac731abceaa731cb3eaac3ac731abceaa731cb3ea5c393a5b1efadf21c49a857a3b843092ef202b4f7b38efb02318b964bcf53e281f029efec4798af30e0cba87f30e87bd36ed88d09deae0f17598a19d51c70ead1f86fd30d1996f4a21b3e6c6f8306b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7314bc80dcbb3d39589350bf5760a61245f3f2f4ff8dc839dc1c8a5d47d3b8781e710833e4ced0cefdb39e2b5696784ee54078faf230ced8c3a7668fd08ec076556e62866cbb3cb9589350bf576096124df215e9eb01fdb158c5c4af563478087a39f676a67d88f0d786dda15a13bd5c15c1d606867d4b143eb03b01f945999a3982dcf6e5726d62cd4db2d84917c877979c27e6c77307229d58f0d000f473fcfd4ceb01f3beab5697784ee540773f528433ba38e1d5a3f0afb419995398ad9f2ec716562cd42bd3d4218c9778497a7908536d352aa1f3b0a3c1cfd3c533bc37eec16af4d7b2274a73a98abb730b433ead8a1f55b603fa48dd9f2ec756562cd42bdbd4218c937c0cb131e5f7b83914ba9e3eb16e0e1e87f98da191e5fc7bc36ed8dd09dea60ae1e636867d4b143ebc7603fa48dd9f2ec736562cd42bd7d4218c9779497273cbef605239752c7d731e0e1e87f98da191e5fc7bd36ed8bd09dea60ae1e676867d4b143ebc7613fa48dd9f2ec776562cd42bdfd4218c987e78bfd4c3c398f2717a1c5448cdde0c56ea890d88d5eecc60a89ad79ae795e09b135cf35cf2b21b6e6b9e67925c4aed45c53cd2b53f3cc79d43c731e35cfa8e62235ff6372b13bb15fa98258c798da894b1f94717c8e9635c278160be3e914c63357184f4118cf0c613c5384f12c17c6532d8c272f8c6789309e15c278e609e399298c67aa309e1a613cab85f1f40ae3592a8ca747184f97309ef9c278da85f1cc12c6b352184f56184fab309e5a613c2dc2789609e359278c6781309e26613cf5c27872c2780e08e3a913c6b35e184fb7309e85c2783a84f1cc16c6b34a18cf34613c0dc2782609e359248c678e309ee9c2781a85f14c16c69311c0930dcefd3d0afe9ea01a7c747fff7ef03dcb950f80af2a22066de738f868fc94b661fb9b754de73254c1676e8de07a56443c8a736bc467c743778cd507eb14af1e386e15c23359184fa3309ee9c278e608e359248c6792309e06613cd384f1ac12c6335b184f87309e85c278ba85f1ac17c653278ce780309e9c309e7a613c4dc2781608e359278c6799309e16613cb5c2785a85f16485f1ac14c6334b184fbb309ef9c278ba84f1f408e3592a8ca75718cf6a613c35c278a60ae399298c679e309e15c2789608e3c90be3a916c6b35c18cf14613c3384f11484f1cc15c6d3298c67b1309e35c278aa22780e30f1c43d4fe18080d8763d0fbad8250bef8fc7ef000f788cb47e0c18919778f24c3c71cfa0c80b886ddb4fdf25680e2e0befe3efb8b8722aef31d27a544ee17d69ab9978e29edbb15a406cab058d5dd23d0059781f7fb7c09553ab3d465a8fcaa9465e9ef07f4bb404239752f71ae131c7b10f99da99c7e32fc16768443e8bbac5d30a9fa13a1ef7c9c7f507144f9995398ed9f2d0dc05b1e2f96c3c7ef7361ac6a8f32b034fd83fb606239752fde331e0e1387f30b533ecc74e786d6a8dd09dea60ae9e606867d4b143eb2722623707c96a7172145a9c8ce03939ce5a50bc72990fa4905982ce9667952b136b16eaad12c248be3c2f4fd83fae0a462ea5fac793c0c371fe606a67d8279cf2dab42a4277aa83c7d7298676461d3bb47e0af64339cc2752c8ac3a8f8dd9f2d01832b166a15e410823f98eb1f214f25968332da5fab153c0c3d1cf33e91ef663835e9b0a11ba531d3cbe0619da1975ecd0fa20ec076556666556666556666556666556666556666556666556666556666556666596cd6c79e8b78dc49a857aed4218c9779295a738efd01e8c5c4acd3b0c020fc7bc0c93eee1bcc369af4ded11ba531dccd5d30ced8c3a7668fd34ec076556666556666556666556666556666556666556666556666556666556666596cd6c79e899dbc49a857a1d4218c9778a9727fcdd564730722935ef701a7838e66598da19ce3bdce6b5a9234277aa83b97a1b433ba38e1d5abf0df683322b7314b3e5a1675b116b16ea750a6124df202b4f71feb43318b994eac76e031e8e7e9e49f7b01f3be3b5a9334277aa83b97a86a19d51c70ead9f81fd500ef3891432abceaa731cb3eaac3ac731abceaa731cb3eaac3ac731abceaa731cb3eaac3ac731abceaa731cb3eaac3ac731abceaa731cb3ea5c393a5b1efa9f6bc49a857a5d4218c9779a95a73d9c77e80a462ea5e61dce000fc7bc0c93eee1bcc359af4d5d11ba531d3cbece32b433ead8a1f5b3b01f263af38914326b6e8c0fb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb3e68632c7316b6e28731cb384dcb03cddae4cac59a8d72d84917cb7f1f284cf3de80e462ea5eedb390b3c6718f4616a6778dfce90d7a6ee08dda90e1e5f430ced8c3a76687d08f683322b7314b3e559e3cac49a857a6b843092ef0c2f4f210b6da6a5543f36043c1cfd3c533bc37eec76af4d6b2274a73a98abb733b433ead8a1f5db613fa48dd9f2f4b832b166a15e8f1046f2e179b9878927e7f1e422b4385fb1ed7aaf2bd7bbd72cbcdf0b8c5cfd618fc748eb98e3c84b3cbd4c3c0d1e4f438416e72bb66dff3a579ee65eb3f0fe3a60e4caa95e8f91d6a372aa0178d631f1347a3c8d115a9cafd8568bf5ae3cddbd66e1fdf5c0c89553eb3c465a8fcaa946e059cfc413d727ad1f87d871c7d778c48ecb95f188ad9aabe6aab96acea979e63c6a9e398f9a675473519a335c4785e3bd142300065cfaa08cdf1538ae3d99da998ffa3eb6de6b137e1fc33187f3f57d439995398e9969dca223ebc5267d028f879621662dc673dcb4d76b531ac64d4b319f4821b3ea3c36661bfb8ee4637764bdd8a44fe0f1d07207b3164ced0cfb833b83688d295e0eea609edec9d0ce0cc4a56dd3fa9db01fca613e914266d5796ccc36f65d89c72e3e4f1e63933e81c743cb5dcc5af0b4b3d81fdc1d446b4cf1725007f3f46e867666202e6d9bd6ef86fda0cccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaacccb2996dec67271ebb387e8fb1499fc0e3a1e5d9cc5af0b4b3387e7f4f10ad31c5cb411ddce7f730b433037169dbb47e0fec076556666556666556666556666556666556666556666556666556666556666596cd6c633f27f9d8e1ef713036e913783cb43c87590ba67686e3f7f706d11a53bc1cd4c17d7e2f433b331097b64debf7c27e5066658e62b6b19f9b78ece27c1ec6267d028f8796e7326bc1d3ce627f705f10ad31c5cb411ddce7f731b433037169dbb47e1fec8772984fa4905975569de3985567d5398e5975569de3985567d5398e5975569de3985567d5398e5975569de3985567d5398e5975569de39855e7cad1d9c6be3ff1d8ede1f83dc6267d028f8796fb99b5e0696771fcfe81205a638a97833a98a70f30b433037169dbb44ef12a81f9440a993537c68759734399e398353794398e59734399e398353794398e59734399e398353794398e59734399e398353794398e59734399e398353794398e59734399e398353794398e59734399e398353794398e59426ed8d8cf4b3e76f87b768c4dfa041e0f2dcf63d682a99de1fd2f0f06d11a53bc1cd4c13c7d90a19d19884bdba6f507613f28b3324731dbd80f251fbb90f562933e81c743cb43cc5a30b533ec0f1e0ea235a67839a883fbfc61867666202e6d9bd61f86fd903666dc7f99e46287f76d528c2af76a7dcf77e56af0bdc0956bc0f74257ae05df8b5cb90e7c2f76e549e07b09b48d7c2f75e595e07b992baf07dfcb5d791df85ee1cabde07ba52bf780ef55ae3c04be57bbf2ede07b8d2bdf01bed7baf29de07b9d2bdf05bed7bbf2dde07b832b3f1b7c6f74e57bc0f726577e0ef8deeccaf782ef2daefc5cf0bdd595ef03dfdb5cf97ef0bddd951f00df3b5c7929f81e89f0bdd3959f07be77b9f283e07bb72b1f00df7b5c790af8deebca53c1f71750a6d7f7b9723df81e75e51cf8deefcad3c0f701576e00df075d793af83ee4ca8de0fbb02bcf00df475c7926f83eeacab3c0f731576e02dfc75d7936f83ee1ca73c0f749579e0bbe4fb9f23cf07dda95e783ef33aebc007c9f75e585e0fb9c2b2f02dfe75d7931f8bee0ca4bc0f74557c6fdfb97aefc10f8a85f79187cd4af3c1f7cd4afbc007cd4afbc107cd4afbc087cd4afbc187cd4afbc047c94772f051fe5ddcbc04779f772f051debd027c9477af041fe5ddabc04779f76af051debd067c9477af051fe5ddebc04779f77af051debd017c94776f041fe5dd9bc04779f766f051debd057c94776f051fe5dddbc04779f776f051debd037c94778f808ff2ee9de0a3bc7b17f89a5df9dde0bbc095df03be0b5df9bde0bbc895b19fb9d895df07be4b5cf951f0515ff87ef03dc3953f00be65aefc41f02d77e50f816f852b7f187c2b5df923e05be5ca1f055f8b2b7f0c7cadaefc71f0ad76e54f802fefca9f045f9b2b7f0a7c0557fe34f8da5df933e0eb70e5cf82afd3953f07be2e57fe3cf8ba5df90be05be3ca5f041f9dc7a99fb1c7b33d2e4907d2c8faa8cdad116d21df64684b5f90ec351dc5a26dd37a3b30d23e288c3f6361b48c6d1ea3e5e964d00cf38a9652df993a81a7838187a99de177a62eaf4ded5e9b7250e719d0ce2e867666202e6d9bd6bb2036c73e472d6add7697795ad4601d7742b3e7d3523ad2366cfe1622dad2c3dc16da36f54b3de310bbdb8b9df762637f4c4ba9e3ab1b98d73030dbedf626bfddf0f85aebb645394571f2d0a675a041526dc2d819671487fc35509edf345c97ea911e74fe22769bcbb42f91ddff5ca7f7b91cd4e989687f5f906cfb7b3d9e5e8fd9ee9386a6610e86e321cc811e8f83d6f3a05d6f8c763da01dd5c1f35f0b93766b3c1e5a6f011ebac6e9021f5d2b103f5e67b58e03b7dfef75457093af1b185b22180bc93386d73a2d1e23ad1780917c6b80a79b49337f5f2ff3f4c1f3729d57873e5b037556c3b9311b51d71e774b33c3eda2efe07f0c92edd3eb18f4c2f18100f4093c0d03d08bda59cbc03335181e23383b3478a6ff9681cb07fa8f6400adc6c3c4d74c4433aac087e5ea085f108c1c0ac121591a0ac121d92a4f161c82a1faf6ab946d160d370c9c3c3ef4cc5303a70e9fb9fbf4d0c091bd83b72075ad478fa4712d4052f4d13239181eb4e90b929d8ca9f362954a9ec9f03a09dea73af9a7b7b431b5333ce94df1da54e7b52907756ae1bd290cedcc405cda36ad4f89889d6047146a3175145a4c8de0993ace5ae0c037f9f048a5f771f2a4ca6b0b1ed1d8263fcf136d10055c0adbcf3838fb9e3dd86b5d632605c33b9b7a4f7b456b77821d31b5672d3b226a47406d17644738ed88a63da9d9114b3b42694724ed08a41d71b4238c7644d18e20da11433b42d81c144700ed889f1de1b3237a9700db5781d77eabb667483b226747e0ec889bbdb2b25700f66ac45e7ddb2b453bfa61af10ec374b3bca60cfb6f64ac69ea5ed99d55e29da2b447b456faf70ed2cd506631b9dd69b8c6d36b6c5d85663db8c6d37b6c3d84e63bb8ced36b6c7d85e63fb8ced3776a9b1cb82e2e8fae5c6ae3076a5b1671abbcad8d5c6ae3176adb1eb8c5d6fec0663371abbc9d8cdc60e1aeb3776c8d86163478c0d183b6aec1663c78c1d37f62c63b706c53b744e1a3b656cd0d86963b7193b63ec6c509c31b333647646ccce80d9192f3bc36567b4ec0c969db1b233547646cace40dd1f146798ec4c919d19b2b3027616c08efadb51fe1706c5517c3b6aff92a0382a6f47e1eda8bb1d65b7a3ea7614dd8e9adb51723b2a6e47c1eda8b71de5b6a3da7614db8e5adb516a3b2a6d47a1eda8b31d657e24288e22db51633b4a6c4785ed28b01df5b5a3bc8f06c5515c3b6a6b4769eda8ac1d85b5a3ae7694d58eaada51543b6a6a4749eda8a81d05b5a39e7694d38e6ada514c3b6a694729eda8e4978c3d66ecaf8cfdb5b1bf31f6b7c6feced8df1bfbb2b1af18fb0763ff68ec9f82625efeb3b17f31f63563ff6aecdf8c7dddd8bf1bfb86b16f1afb0f63df32f6b8b16f1bfb8eb1ef1afb9eb1ef1bfb81b11f1afb91b1ff34f663633f31f653633f33f67363bf30f64b63bf32f66b634f187bd2d86f8cfdd6d8ef8cfdded853c1f0ec0676227f702b34d2de3f343470f2f450f3d060f3c9db4f0c1d3f7de2eee63b8f0f1d6b1ebc63e0ccd1138377e287dfe7ba2d9a46d874e64cffddcdc74f1d19b8ab79f0f6a1e6c1a3cd87066f3f75e42c7ee8cbee430bcf8dd87fe4487cb06f553d0dd2ef8e31e82fdde768826657e9b63d3116419e1acb8766568fad4197bab30e7d7bbfa278b5db7cf6c4e05073bef994f9db7fc27c66e0486b33be77d6887c76a8f9ec50ff99a1e6a367064f36b7b5e276af9d328646d4348de143ad4da36f79f0ffd2fd24f2250a0400", + "packedBytecode": "0x000000028df71de500000051df1f8b08000000000000ffed9d07741c45baef5bb61c6024dbe40c72209924c9724e6372ce186c638c2ccb011c6519930c26198c2366d9c4c2b26430d13860e320db181b16d85d58968d6c5eeeeeddbde7bcf7cebde7bd77dfe5beaa517dabbfcad5638de81affe5a939a7a4ea6faafbfbd5bfbfaaaeeeaeeef9b7288a8aa2c64f7b957a46bb7fe4fbb4f95ffef53e15096eabdc2767511be16cd74638dbb711cee236c2d9a18d70766c239c9dda0867e70439355bbba8f92769defd3ce89a34e3fe6d4cd3541bd0b4a48d695ada0634ed12b58d3eaa6b1be1ecd646380f68239c07b611ce83da08e7c16d84f39036c279681be13cac8d701ede46388f68239c47b611cea3da08e7d16d84f39836c2796c1be13cae8d7096b511ceee6d84b3471be1ecd946387bb511cee313e4ec0d9c2798ff279aff2799ff279bff52f614f3ff5453b762b37c9a4aa7ab7486e6b2bed337422a55eaa35295f55d5f95faa9d45fa501e6bb32f3dd409506a93458a5212a0d5569984ac38d0623543a53a5b3543a5ba573543a57a5f3543a5fa50b54ba50a58b54ba58a54b54ba54a5cb54ba5ca52b54ba52a5ab54ba5aa56b541aa9d2b52a5d67b18c5269b44a6354ba5ea5b12adda0d238956e54a95aa5f12ad5a83441a55a9526aa3449a5c92a4d51e926956e5669aa4ad3549aaed20c9566aa344ba53a9566ab54afd21c956e5169ae4ab75a9adda6d2ed2adda1d29d16e73c95ee52e96e95e6ab748f4af7aa749f4af7abf4804a0b547a50a587545aa8d2c32a2d5269b14a4b545aaad2329596abf4884a2b547a54a56fa8f4984adf54e95b2a7d5ba5efa8f45d951e57e97b86451ac0132a3da9d2f7557a4aa51fa8f4b44acfa8f4ac4acfa9f4bc4a2fa8f4a24a2fa9f4b24a2b557a45a557557a4da5d7557a43a537555aa5d25b2aad56698d4a6b555aa7d2db2aad5769834aefa8b451a54d2a6d56698b4a0d2a6d55699b4adb557a57a51d2abda7d24e9576a9f4be4a1fa8f443953eb434ff48a58f55fa914a3f36b69f98ff9f98b272ddee53957e6af29f99ff3f33ff3f37ff7f6eadf30b957e69d97ea5d2af2ddb6f54fac2e47f6bfeffcefcffbdf9ff07f3ff8fe6ff9fccff3f9bff7f31ffbf34ffffc5fcffabf9ff37f3ff5fcdffbf9bffff30ffff4da54f7a35e63b474d9f749450df54553b51df4b11f14f889a7fb416edcd77f2bfccd88bcdb2fc17ed3a98e50e96bd9359ee646da79b59ee66d90f34cb075af683cdf2c196fd50b37ca865ef69967b823d15c1b55f63d7b6f6c654043689cb7660eb1035d744db3acae6c0d6296aae85b6c97eec08b6fd8cad13d8f637b6cec6d6d9d8f5271d25b5ffcb07eaed9624bd5d734fa93479def17abb5d3cf1764d9e7782de6e370fbc3a160e30dbea0a7173a0b17503db41c67600d80e36b603c17688b11d04b6438ded60b01d666c8780ed70633b146c4718db61603bd2d80e07db51c67604d88e36b623c1768cb11d05b6638ded68b01d676cc780adccd88e055b77633b0e6c3d8cad0c6c3287a53bd87a195b0fb01d6f6c3dc1267d6a2fb0c9d8ef78e91355ea5804eb18bbf4519975a41f06db49d20783ed64e97fc1d6dbd83a82ed14f02db653a1af91ff034d3e1d25d5262a336d6250d2db555bd6db1d92fc7633f70a87464dbaa6c1cf20d06a98c92738cfa7027d1799247ec45e0cf9f3a0ac94133de43823ecbadf1f6cf2c3b2ac37d05aaf14ca0c76d43f1d255bff2116cf108bb903d8fcc46c9f8a10b32dfee41cb3d740593bf664ccb32fc6ec85c0e12166fb86986df127e798ad81b276ecc9b8775f8cd9eb80c343cc0ef413b395e521661baf7d45913bf6e4dc675f8cd989c0917cccf60d31dbf24fce317b3794b5634fce7ff7c598ad078ee463b6ffc0303668f127e7985d0265edd8936b31fb62ccde0b1c1e627642e8675bfcc939661f87b276ecc975c17d3166970347f2313bd053ccf609311b35dec78c2277ecc935ea7d31669f048ee463b6265c9f6df927e7985d0765edd893fb25fb62ccbe62f2fa7ade4fcc7d86a3c0f689b11d0dbcc9c7f6843e9e62bb32c476e3fc8e2872c7a8dcbbdb17637ba3c9eb38feccc4f17160fb19cc3d10dbe7c6d61d6c3f37b61e502f0f6d606068032dfee4dc067e0165ed5896fbc8fb621bf818383cc4ecf810b32dfee41cb35f42593bf6644ec3be18b3bf060e0f313b21c46c8b3f39c7ecbf43593bf6647ecdbe18b33267548f177e6bc60b2783ed77c6d61b6cbf37b653c0f607633b156c7f34b6d3c0f627633b1d6c7f36b633c0f617632b07db97c65601b67f31b64ab0fdd5d8fa80ed6fc65605b67f35b6be60fbbbb1f503db3f8cad3fd8fecdd806189b9e9327f3acde37b6cec0908e92ddb732c752b62dcb7df2e0bb8be5bb4b1e7d77b37c7773f8aef2e03b053ee453642da7215fe597a7bc1478d057bfe47df5d175ef1bb5bceefd80a7bf87baa7c0474b78fa03cf80e4792abc1cefcb1bf7715f4bd314f8ea0bf5f2302ec8b4b78151734d6559fc95820dfbc7410ec6c1c9335616812fd9b62c0f0646b10d00c6934c5eda8f3e1ef62a6ae2f5d096326322f127eff1128e7e609732137b35b19d64d84ae07b3c760db06c9ee2321317e24bb62dcbe2af04ea3320ff8c952d65ec6f31faea238ac0976c3bf86eda0f92c7e3f8504f3c769f26be87e6c1f760cb773fcb37f69df2c9766cc3f3080fe770159ece4f32fde070b32d3937143f387e48830649d5097d1759db167b31e42f2ada9d41f4907e58d8752c63ecc4ad37c85a0fdfed35d451ff74c2f5b7cf55711feb4f669fc0b1d0437b68767d40b62dcbfd40bb6131da0d05eda4cc89a09daffe2ceebc7a00f0483f3610787c9d13c5f1e4e37c6c4fbe710c2bfb0dcfa5701ce06b7ff5b11865d9b5bf0603a36bace2e17c26eb58a53f308a0d9f4de9eb49b3b8fdda97c4b78758c9f447e243c6e6d27e0780fd9fe764e6e139dd574e82bed2478c603ccaa7a5e7bcc9efa7cacc3978ff1c7870df7938afaaf0148fe578fde6ab28d958b3fba5fe965671d7787cf5e57d2d1e59167f81393007e6c01c980373600ecc81393007e6c01c980373600ecc81393007e6c01c98f999f17e12cedb9272034818edf96fbeaef367de7568b625dbd7f775feb7d7f96095e5383f46e6419c6cd5b918caecdfaea9ecff83f960f67d2a9c2339c0af76997d89f331d3b02cfe70ae15ee4b86f94e6589f9aeacf175bf4dcfb1d6ef5bb4e77e0e7068ea63fe336a5a64698a73ea4fb178749c0e6cdfc4e6e3de5faef722512bc927796faf3472c77af2fba5b2d93deb7651f3fe038f33bee6ef485f2df7cb875abe8ba1cce1ed9af68dccad92dfdced6bad87f37e64dbb2cec9601f666dbbab59d77eee48b63f10d6953247419fbab95d93661efacaca5ce7aee37df3e48fc38df7f1fbe6c0d307787cf4339ec61be5d80692be8f6fcf4f738d63ec67cf7c3ef7658f456539dbb36a81393007e6c01c980373600ecc813930977fbd4f600ecc81393007e6c01c980373600ecc81396166cd63df6bc5e76bfb9130e669ee43e67e86bcab4cb69f795f70bb26bfbeefc3c93da7de569df1d9d17fb46b2afb86c99744bbcf7788db97bede4f11b72fc51fbe7b06ef05f9b8af5b04be64db550e2d245f9698efc6fbf8c96bdc741fbfafa56b3f87a6beda2bde63454db1bdf6b778f0de68dcbb7daa2c9bcfb943717121feb02d55814df2f87cb48ffd8cc7127b5e0fbe7f52caec32da768d7cedfbca729ffd06be37251ded1edff83e958fa0effb91c9e31c0e9c3bf285e37bf964bb4f2dfae93a8f48bece99fd7b2670a6c10ffa3e0b5813f25d81be8b4c123f622f86fc6fda35959572a287682dec25c089ecf67afdadf54aa14cda51ff74c2f51f61f18cb098f53ef904e2ec0b38fefbea93d2915ba39341232983e3205f73f2ec3ed29edf88f3f63a5a6570cc2265fe027d54dcfc51d79c435fc7b1b83987aeb1711f60b4eb68cff32cf4795aff01fd45d2f3b4fe036208e76945d6f67bc3f685ab63147f6c9132ffd7dabe3d269775701e9894f92fe82fce307316731993efadf32bd7981cd78babbb66c6f7a0a51364c69840161c2748994e466bd967c362b8073bd6dd3f665dd1ca7e575849b4bb7e7edeb3d6d8e6475875e90d7ea42e52a61bd4c5cfb8a5710c987c5d9b8f49a41fa872d455ca1c02ef4e3acce453b09fb0dd9ee0f85e3ed9c680a29faef3d9c9d739b37fcf01ce34f841dfe7026b42be2bd0b78c01c58fd88b217f7cfba6b2524ef410ad855db711194721bbbdde506bbd52287396a3fee928d9fa9f6df19c6d31eb7d7224c4d909300fdd575f7d568c46bd41232983d7145def01755debc8d758d17ebf7069b4fb75023c4efa1937b99f13b2afabb9c608bd2d7e1c2354413f9b7294b5af17caf1f2abe4ea558ecf4a0c04bff8ac84af77370f01ddd2b08ce382bde9dbc77b6cb5bfb8df4c189207df71bf99900fdf71bf99900fdf41f3a03993e61e7e8320f3fc19beb3547fb28d4bf1770964bd76c0e8e3b71c5251f3778fef89117fdf41d66b0f8c3e8e0fb9befb7c2030ca7ac5c0e8e3d952fcfd8d9630e23b86f1382f8c1ede155bd1da77c5e235bd8ec0c8f4cc26de9bea048c3ec6c5ad7d560fc7f39de1bfafdf25ea9b03631530ca7afb01a38f6be3782ed312463c2f92f5f6f7cc98edb889f7643d5c9fadccf5b7a5f2f13b1571c771cf735e2a73bdc633cc2f4fd67105fa1eee490bbc9eb9272d86034fda831629f0d1121ec997c27a070063f2d7371b19d33930e2fd4bb11f088c677a621c9103e399c028eb1d048c3eeeb1a6c06f4b18cf024659ef6060f470fd35c378560e8c789d52d63b0418cff1c478760e8ce700a3ac772830fab8969a02bf2d613c171865bdc380f13c4f8ce7e6c0781e30ca7a8703e3f99e18cfcb81f17c6094f58e00c60b3c319e9f03e305c028eb1d098c177a62bc2007c60b8151d63b0a182ff2c478610e8c1701a3ac7734305eec89f1a21c182f064659ef1860bcc413e3c539305e028cb2deb1c078a927c64b7260bc141865bde380f1324f8c97e6c0781930ca7a65c078b927c6cb7260bc1c1865bdeec0788527c6cb7360bc021865bd1ec078a527c62b7260bc121865bd9ec0789527c62b7360bc0a1865bd5ec078b527c6ab7260bc1a1865bde381f11a4f8c57e7c0780d305eed601ce989f19a1c184702a3ac770a305e9b3c63e65c7a640e8cd702cf75c9f36434bb36079eebfcf264de5977adc3d7e8e47d65f6c5a8a8e5751f0d3c6392e7c9ec8bd139f0084329ac879a5d9f3c6346b33139305e0f3c6393e7c968767d0e3c6341b3eb1d9add903c6346b3b13930de003ce392e7c96876430e3ce340b31b1c9add983c6346b3713930de083cd5c9f36434bb31079e6ad0ec468766e39367cc68569d03e378e0a9499e27a3d9f81c786a40b3f10ecd2624cf98d1ac2607c609c0539b3c4f46b30939f0d48266131c9a4d4c9e31a3596d0e8c13816752f23c19cd26e6c03309349be8d06c72f28c19cd26e5c0381978a624cf93d16c720e3c5340b3c90ecd6e4a9e31a3d9941c186f029e9b93e7c96876530e3c3783663739349bea89f1e61c18a73a78929c5f5a0a3ce86bbaa7ba4f8b5a5e77612885f5709ec40c4f8cd373609c018cb21ece9398e98971460e8c338151d6dbdf3363b6791233c1f7ace47d67faa59951cbf599e59727eb3c09f45de7498b5951cbb5a8f3cb93759e04fa9eed498bbaa8e55acc069e7a0f5aa4c0474b7884a114d6c37912733c31d6e7c0380718653d9c27718b27c6393930de028cb21ece9398eb89f1961c18e702a3ac87f3246ef5c4383707c65b8151d6c37912b77962bc3507c6db8051d6c37912b77b62bc2d07c6db8151d6c37912777862bc3d07c63b8051d6c37912777a62bc2307c63b8151d6c37912f33c31de9903e33c6094f5709ec45d9e18e7e5c0781730ca7a384fe26e4f8c77e5c0783730ca7a384f62be27c6bb73609c0f8cb21ece93b8c713e3fc1c18ef0146590fe749dceb89f19e1c18ef0546596faa67c66ce72ff7eee3bee3ce55f675df71e725fbbaef10e721ce0bc17788f310e785e03bc47988f342f01de23cc47921f80e711ee2bc107c87380f715e08be439c873867f27d9f07df29f0219f6cd7f885a114d69b1a18f76946e4294b8ea71ceb8ebeee27a8fbfd0e9e224f75475f0f10d45d18da1ae3d436c0785f1b60f4ac63656b1935cf024f3c0fe4c0b300781ef4c4b320079e0781e7a1e4793231f5600e3cc2500aeb4d6d038cf7b501c6a063d0918931e858383a06c6c0181803e3de606c0b7d78606c13f158d95a46cdb330799e8c660fe5c0b3103493f5aef3cb58d95a46cdf370f23c19cd16e6c0f33068b6d0a19907c6cad6326a9e45c9f364347b38079e45a0d9c30ecd3c3056b69651f32c4e9e27a3d9a21c781683668b1c9a7960ac6c2da3e659923c4f46b3c539f02c01cd163b34f3c058d95a46cdb334799e8c664b72e0590a9a2d7168e681b1b2b58c9a6759f23c19cd96e6c0b30c345bead0cc0363656b1935cff2e479329a2dcb81673968b6cca19907c6cad6326a9e4792e7c968b63c079e4740b3e50ecd5819a7b601c6fbda00a3671d2b5bcba8795678e27924079e15c0f3a8279e1539f03c0a3cdf489e2713538fe6c0230ca5b0ded436c0785f1b600c3a061d9918838e85a363600c8c813137c6fbdb0063d8d7819195d1c3f955d6e7531eddc77dc73d9fb2affb8e7b3e655ff71de23cc47921f80e711ee2bc107c87380f715e08be439c87382f04df21ce439c1782ef10e721ce0bc17788f310e785e03bc47988f342f01de23cc47921f80e711ee2bc107c87380f715e08be439c87382f04df21ce439c1782ef10e721ce0bc17788f310e785e03bc47988f342f01de23cc47921f80e711ee2bc107c87380f715e08be439c87382f04df21ce439c1782ef10e721ce0bc17788f310e74cbe1f4bde7765aeef98790c787cbcf3c6533dcbf576bf69b6f55582fa69adbe6569f5a8a5552994f926e8f72d0ffa15815fd9b62c8bbf5c994f2060f6e4bb52f72ffb41fdc5c77d961edaffb73dd53daeaffff63eee3baeafdfd77dc7f5f5fbbaef10e721ce0bc17788f310e785e03bc479887316df98ef10358ddba79aff7a1bdf31f962b32ce5ef07bb9499dca9f17fd728b4211fbe431b0ac78a42f01de23cc47921f80e711ee2bc107c87380f715e08be439c87382f04df21ce439c1782ef10e721ce0bc1778873be382f85ef67e48127b278a22c3c0bc978c693f15c43c6d39b8ce702329ea1643c2bc8786e21e39942c633968ce772329eb3c978e691f1f427e39945c6733a19cf04329e87c978ae25e339818ce722329ee1643c29329e12329e21643cb792f1dc4cc6730619cf38329e2bc978f2f1fc522e3cf792f19c4bc67337194f5f329ed9643c15643c8bc8782692f18c26e3b9848c6704194f57329e6e643c83c8786e27e3994ec6732a194f3519cfd5643c0bc878ce27e3b9878ca70f19cf23643c95643c73c8781693f19c46c633998ce77a329ecbc878cac978ce22e3b9938c6700194f7b329e99643c35643c23c9782e24e31946c633978c670919cf4d643c0f92f1dc40c6730519cf39643c7791f1f423e3a923e3a925e339898c671419cf89643c1793f1a4c9784ac978ba90f10c26e3b98d8c672919cf34329e87c8786e24e3b98a8ce701329ef3c878e693f15491f12c27e3a927e39944c633868ce752329e33c9784e26e3b9838c672019cf32329e22029e54b4fb6fbca4e0fbc7c0d6ce5a57bf16f7a55e4ddf7fd7d8dbc13a8f9b7c7bc7b6bf0b3679d7eee38e7551a7ef425dd2265ffef53e199dd0571a96c55f09703c4ec2b38c8c672019cf1d643c2793f19c49c6732919cf18329e49643cf5643ccbc978aac878e693f19c47c6f30019cf55643c3792f13c44c6338d8c672919cf6d643c83c978ba90f19492f1a4c9782e26e339918c671419cf49643cb5643c75643cfdc878ee22e339878ce70a329e1bc8781e24e3b9898c670919cf5c329e61643c1792f18c24e3a921e39949c6d39e8c670019cf9d643c6791f19493f15c46c6733d19cf64329ed3c8781693f1cc21e3a924e379848ca70f19cf3d643ce793f12c20e3b99a8ca79a8ce754329ee9643cb793f10c22e3e946c6d3958c670419cf25643ca3c9782692f12c22e3a920e3994dc6d3978ce76e329e73c978ee25e3798c8ce74a329e71643c6790f1dc4cc6732b19cf10329e12329e1419cf70329e8bc8784e20e3b9968ce761329e09643ca793f1cc22e3e94fc6338f8ce76c329ecbc978c692f14c21e3b9858c670519cf50329e0bc8787a93f15c43c6339e8c672119cf0c07cf639e78e47d00b26d597e8cc4b787fd50aeb7fb3d4f757ac26cab83d9aef08bbf6228337fffc6fffafe10ae2b5cf6fb1bf05adc13a0d1139eea22fba3c8da3fe8fb3b9e7ccb3508d9b62c7f671ff7ddc5f2dda5407c77b37c772b10df21ce439c1782ef10e721ce0bc17788f310e74cbe3d9c1b54e27be4e453642da7218fe70b3edebfe7a99ecdce13bf4a503fadd5939656f6b9552994f91ee8f7a407fd5ce79eb22cfe72653e818019e3a22c4a362ebe9f7c9d2a75bfb51fe8fa7d4b5facd7539e348d3b863cb58ffb8e3b86ecebbee38e21fbbaef10e721ce0bc17788f310e785e03bc479887326df3f30f904cf1bcbd187bebf28e7033f00bfcf987c51827ef5b69e36db2a36db168e67c02e65fe13ee6b86361fda7c52bec3b12dc47921f80e711ee2bc107c87380f715e08be439c87382f04df21ce439c17826fe638b7f3325ffc4460f3359f3f2e16f3f12cc1def41d178bfbbaefb858dcd77d87380f71cee4fb590fbe53e0433ed9e6f83d0b3c4f7be0f154cfccbd8de7ac3a3d66d5a914ca3c05f57cce433d8bc0af6c5b969f031ef9cc001e1f71d0927d8e3c0bc978c693f15c43c6d39b8ce702329ea1643c2bc8786e21e39942c633968ce772329eb3c978e691f1f427e39945c6733a19cf04329e87c978ae25e379928ce704329e8bc8788693f1a4c8784ac8788690f1dc4ac6733319cf19643ce3c878ae24e3b9978ce75c329ebbc978fa92f1cc26e3a920e35944c633918c673419cf25643c23c878ba92f17423e31944c6733b19cf74329e53c978aac978ae26e35940c6733e19cf3d643c7dc8781e21e3a924e39943c6b3988ce734329ec9643cd793f15c46c6534ec6731619cf9d643c03c878da93f1cc24e3a921e31949c6732119cf30329eb9643c4bc8786e22e379908ce706329e2bc878ce21e3b98b8ca71f194f1d194f2d19cf49643ca3c8782e26e34993f19492f17421e3194cc6731b19cf52329e69643c0f91f1dc48c6731519cf03643ce791f1cc27e3a922e3594ec6534fc633898c670c19cf53643c9792f19c49c6733219cf1d643c03c9789691f11411f0a4a2dddf8d9082ef9f049b3cc3ff18d89e37f9a7c1d6cee143ee1d3d07b66293976d74526975afddb78d3af97a6f01fa4ac3b2f82b018ee749789691f10c24e3b9838ce764329e33c9782e25e3798a8c670c19cf24329e7a329ee5643c55643cf3c978ce23e379808ce72a329e1bc9781e22e39946c6b3948ce736329ec1643c5dc8784ac978d2643c1793f18c22e339898ca7968ca78e8ca71f19cf5d643ce790f15c41c6730319cf83643c3791f12c21e3994bc6338c8ce742329e91643c35643c33c978da93f10c20e3b9938ce72c329e72329ecbc878ae27e3994cc6731a19cf62329e39643c95643c8f90f1f421e3b9878ce77c329e05643c5793f15493f19c4ac6339d8ce776329e41643cddc878ba92f18c20e3b9848c673419cf44329e45643c15643cb3c978fa92f1dc4dc6732e19cfbd643c5792f18c23e339838ce766329e5bc9788690f19490f1a4c8788693f15c44c6730219cf93643cd792f13c4cc633818ce774329e59643cfdc978e691f19c4dc6733919cf58329e29643cb790f1ac20e3194ac67301194f6f329e6bc878c693f12c24e399911f9e4a7d9ef754d4fc53642da721ff1cf03ce9411f4ff52cc7f73e7c95e076b5562f585a3d6569550a659e05fd5ef0a05f11f8956dcbb2f86b8bcc9a47ae893e65fee37b32ee256114db937e7932edf6dea8f9275bbb7d01787cf46b9eea99695f2f5a75bad7a1bb94c1587dd1433d5d6d47965f84fdd0d69835cf03262fac2928f70009a3d89ef3cb93695f0f44cd3fd9dad78bc0e3a3fff154cf4cfb7ac9aad3030edda50cc6ea4b1eeae96a3bb2fc12ec87b6c6ac791698bcb0a6a0dc021246b1bde097a72a0575964fb6f6f512f0f8e87f3cd533d3be5eb6eab4c0a1bb94c1587dd9433d5d6d47965f86fd109803b38b59f3c8b395c29a82720f92308aed45af3c55e529a8b37cb2f5632f038f8f7ede93ee997e6ca555a7071dba4b198cd5951eeae96a3bb2bcd2e1bb2c4a568b575aa0c52b0e9e57f2ac85f8cb95f9d936c81c740e3ac731079d83ce71cc41e7a0731c73d039e81cc71c740e3ac731079d83ce71cc41e7a0731c73d039e81cc71c740e3ac731079d83ce71cc41e7a0731c73d039e81cc71c740e3ac731079d83ce71cc41e7a0731c73d0393fcc41e7a0731c73d039e81cc71c740e3ac731079d83ce71cc41e7d6316b9e874c5e585350ee211246b1bde49727f35cd04351f34f91b59c86fc2bc0f3b2077d3cd5333387fc55ab4e0f39749732d8be5ef5504f57db91e557613fe4c2bcb20d32079d5bc7ac79e41d1ac29a82720b4918c5f6b25f9e4c3fb6306afec9d68fbd0a3c3efa794ff5ccf463af59755ae8d05dca60fb7acd433d5d6d47965f83fd109803b38b59f33c6cf2c29a82720f93308aed15af3c9599e71b1f8e9a7fb2f563af018f8f7ede93ee997eec75ab4e0f3b74973218abaf7ba8a7abedc8f2ebb01f72615ed9069983ce41e738e6a073d0398e39e81c748e630e3a079de39883ce41e738e6a073d0398e39e81c748e630e3a079de39883ce41e738e6a073e1e8ac791699bcb0a6a0dc221246b1bdea95a74fe6bec3a2a8f927db7d87d781c7c77d194fba67ee3bbc61d5699143772983edeb0d0ff574b51d597e03f6c3becebcb20d3287d8c80f73888dc01cc71c622330c73187d808cc71cc213602731c73888dc01cc71c622330c73187d808cc71cc213602731c73888dc01cc71c622330c73187d808cc71cc213602731c73888dc01cc71c622330c73133c486e6596cf2c29a82728b4918c5f69a5f9ecc7b0f1647cd3fd9e6edbc013caf7bd0c7533d33f376deb4eab4d8a1bb94c1f6f5a6877abada8e2cbf09fb2130076617b3e65962f2c29a82724b4818c5f6ba5f9e4c3fb6246afec9d68fbd093c3efa794ff5ccf463abac3a2d71e82e6530565779a8a7abedc8f22ad80f813930bb9835cf529317d614945b4ac228b637fcf264fab1a551f34fb67e6c15f0f8e8e73dd533d38fbd65d569a943772983b1fa96877abada8e2cbf05fb2130076617b3e65966f2c29a8272cb4818c5f6a65f9eca14d4593ed9fab1b780c7473fefa99e997e6cb555a7650edda50cc6ea6a0ff574b51d595e0dfba1ad316b9ee5262fac2928b79c84516cabfcf264dad7f2a8f9275bfb5a0d3c3efa1f4ff5ccb4af35569d963b74973218ab6b3cd4d3d57664790dec87b6c6ac791e3179614d41b9474818c5f6965f9e4cfb7a246afec9d6bed6008f8ffec7533d33ed6bad55a7471cba4b198cd5b51eeae96a3bb2bc16f6435b63d63c2b4c5e5853506e0509a3d8f078b1c2134f89c553e2d0626ff9d65af431f914fc97effb00a3affe7085c528cb18e3622bc983665d2c9e2e96667bd3b7d66228e4f507f7d7506064d85f5df2a059378ba79ba5d9def4adb51866f25dcd7fdc5fc38091617f75031e0ffd7355cae2d19f6ce38db59ef5f154cfcc78635de4d61d8f4352068fddeb3cd4d3359690e575b01f02736076316b9e91262fac2928379284516c789ef276f23c55298b477fb2f5636f7bd6c7533d33fdd8fac8adfbdba0bb94c1585defa19e45e057b62dcbeb613fe4c2bcb20d32079d5bc7ac794699bcb0a6a0dc281246b1ad039e0dc9f354a52c1efdc9d68f6df0ac8fa77a66fab17722b7ee1b40772983edeb1d0ff52c02bfb26d597e07f6432ecc2bdb2073d0b975cc9a678cc90b6b0aca8d216114db7ae0d998384fe3ef01218ffe64ebc7367ad6c74f3d1bfbb14d915bf78da0bb94c1f6b5c9433d8bc0af6c5b9637c17e08cc81393007e6c01c980373600ecc81393007e6c01c980373600ecc81393007e6c0cccdac79c69abcb0a6a0dc581246b1bd033c9b13e769bcef803cfa93edbec366cffaf8a967e37d872d915bf7cda0bb94c158dde2a19e45e057b62dcb5b603f04e6c01c980373600ecc81393007e6c01c980373600ecc81393007e6c01c98037360e666d63ce34c5e5853506e1c09a3d836014f43f23c55298b477fb2dd7768f0ac8fa77a66ee3b6c8ddcba3780ee52066375ab877a16815fd9b62c8bbfc01c98e398354fb5c90b6b0aca5593308a6d0bf06c4b9ca7f1fe29f2e84fb67e6c9b677dfcd4b3b11fdb1eb975df06ba4b198cd5ed1eea59047e65dbb2bc1df6432ecc2bdb2073d039e81cc71c740e3ac731079d83ce71cc41e7a0731c73d039e81cc71c740e3ac731079d83ce71cc41e7a0731c73d039e81cc71c742e1c9d354f8dc93798ff29285743c228b6adc0f36ee23c7dca53168ffe64bbeff0ae677dfcd4b3f1bec38ec8adfbbba0bb94c1f6b5c3433d8bc0af6c5b9677c07ed8d79957b641e6101bf9610eb11198e398436c04e638e6101b81398e39c446608e630eb11198e398436c04e638e6101b81398e39c446608e630eb11198e398436c04e638e6101b81398e39c446608e630eb11198e398436c04e6386686d8d03cb5262fac2928574bc228b6edc0f35ef23c55298b477fb2cddb79cfb33e9eea9999b7b33372ebfe1ee82e65b07dedf450cf22f02bdb96e59db01f02736076316b9e49262fac2928378984516c3b806757f23c95298b477fb2f563bb3cebe3a99e997eecfdc8adfb2ed05dca60acbeefa19e45e057b62dcbefc37e686bcc9a678ac90b6b0aca4d216114db4ee0f11077199e128b47967711f8d65acc34f914fc97ef670223c3fe2ac983665d2c9e2e96667bd3b7d66216e4f507f7d72c6064d85f5df2a059378ba79ba5d9def4adb5a833f9aee63feeaf3a6064d85fddf2a0d9deec0ff766dbde9b711a34df7b9a17ed45cd8bf6a2e64541732acd3d1c5f2af1581601037ed2907f1f787e983c4fe6badcfb39f0fc10783e489ea7c2533dcbf5763f04f6a4b6abb5fac8d2ea7d4bab5228830c1f79d0af08fccab66559fc05e6c01cc78c635b614d41b95d248c62fb00787cf41bbaeea79a6dc9f63ba8f4e5c14d7e7ddc2fc16bc51dcc768543fc154399a53d9bcafeab612b81ef65bfe9faecb06cba0eef265f870ad77d3b59167f2551deaedd66bd968c5af8b8df94eb717f8783e7abe478cab19da32f1fcfc8e77aef6fbb8327c1ba57c4ddf7dc967cdd33fdc769665bb27ddd46fffb60af9a5761db93fee334abcec550e626e83fda1fd2982f89dc7d85efb6296372bb6db68b9afa33e12a3376fb9ed057c62ee5de83f2d82ff631ff3146fb405d7dbd5323eedebcf82b817abf0b3cbefae95d168fedbb1474d949aa19b6eb5d0e1d873ab8871270633ce6635fdbf7a06ddfa5a0cb2e52cd705fef74e838ccc13d8c809bb15d0fb37464d36c4fed7aa4837b24013763bb1e69e9c8a6d99edaf52807f728026ec6763dcad2914db33db5eb310eee3104dc8ced7a8ca5239b667b6ad7631ddc6309b819dbf5584b4736cdf6d4aec739b8c7117033b6eb71968e6c9aeda95d573bb8ab09b819db75b5a5239b667b6ad7350eee7cbc9fb42db6eb1a4b4736cdf6d4ae6b1ddcb504dc8cedbad6d2914db33db5eb490eee4904dc8ced7a92a5239b667b6ad7531cdc5308b819dbf5144b4736cdf6d4ae673ab867127033b6eb99968e6c9aeda95dcf7270cf22e0666cd7b32c1dd934db53bbae7370d7117033b6eb3a4b4736cd5ceddad33df8ccdc54d44c7fb2cdd3d8e5559fc6df98ce65ce0ccee5f011539ee2a01ce79e2439c7476bb5d5d26a97a5552994d906fa6df5a05f51b4fbefafc8b2f80bcc81393007e6c01c980373600ecc81393007e6c01c980373600ecc81393007e6c0cccf8cefb2c4fb2b526e2709a3d8f09e948febfcbaeea79b6dc9f6f5f396a30ff5e9b732731fe05df0977670144399fe3d9acade60d84aa2ddef43e16f71e7635f8a2fd9b62c8bbf12a80fc6bfaff792c6c5d64e87efb2c47c57d6f8d1b8b25cbf7f67bfa8693f6fb5ea839a3624eebfb9a64596a60d9e7d63bf1401037ed2906f001e5ff71a3dd433d3176cb1ea646b5c0a654e807a6ef150cf22f02bdb96e52dc0239f19c0d3e08927b27822873ef26947c6339e8ce71a329ede643cbdc8782e20e3399c8c672819cf2d643cfb91f14c21e3194bc6733919cf71643c6793f1e4630c9e0bcf3c329efe643c0791f1cc22e32926e3399d8c670219cf0e329e6bc9784e20e3b9888ce748329ee1643c29329e12329e5bc9788690f1dc4cc6730619cf38329e2bc978ba93f19c4bc67337194f5f329e43c8786693f17424e3a920e39948c6339a8ce712329ea3c9784690f1dc4ec633888ca72b194f37329ee9643cd5643ca792f15c4dc6d3938ce77c329e7bc878fa90f11c46c65349c633878ca73319cf64329ed3c878ae27e3b98c8ca79c8ce758329eb3c878ee24e31940c6732019cf4c329ef6643c35643cef91f18c24e3399e8ce742329e53c8788e20e31946c633978c677f329e9bc8786e20e3b9828ca78c8ce71c329ebbc878fa91f11c4cc65347c6d3818ca7968ce724329e51643c2792f15c4cc67314194f9a8ce736329ec1643ca5643c5dc878a691f1dc48c67315194f0f329ef3c878e693f15491f11c4ac6534fc6d3898c671219cf18329e4bc9788e21e339938ce764329e3bc8780692f11c40c65344c0938a767f57550abedf0e3679a7d2bb606be7d89edc8795f2fa38b4b9d7eedb6ee7d87683830175da1c35d5256df2e55fef93d1097da56159fc9500470309cf01643c03c978ee20e339998ce74c329e63c8782e25e31943c633898ca713194f3d19cfa1643c55643cf3c978ce23e3e941c6731519cf8d643cd3c878ba90f19492f10c26e3b98d8c274dc6731419cfc5643c2792f18c22e339898ca7968ca703194f1d19cfc1643cfdc878ee22e339878ca78c8ce70a329e1bc8786e22e3d99f8c672e19cf30329e23c8784e21e3b9908ce778329e91643cef91f1d490f1b427e39949c6732019cf00329e3bc978ce22e339968ca79c8ce732329eebc9784e23e3994cc6d3998c670e194f2519cf61643c7dc878ee21e3399f8ca72719cfd5643ca792f15493f14c27e3e946c6d3958c671019cfed643c23c8788e26e3b9848c673419cf44329e0a329e8e643cb3c9780e21e3e94bc6733719cfb9643cddc978ae24e31947c6730619cfcd643c43c8786e25e32921e34991f10c27e339928ce722329e13c878ae25e3d941c633818ce774329e62329e59643c0791f1f427e39947c6b38d8ce76c329ee3c8782e27e3194bc633858c673f329e5bc8788692f11c4ec67301194f2f329ede643cd790f18c27e36947c633c3e2c1eff5b373323e92772b15c3f78bccc3005dcdb6a48ccc99d1d74e3659365ddf8d9eeabb296afaa4617923d457d83701cf264f3c9b2d1edb7729e8b28554b352b06d76e838d4c13d94801be3311ffb7a8bc563fb2e055d36936a86fb7a8b43c7610eee6104dc8ced7a98a5239b667b6ad7231ddc2309b819dbf5484b4736cdf6d4ae4739b847117033b6eb51968e6c9aeda95d8f71708f21e0666cd7632c1dd934db53bb1eebe01e4bc0cdd8aec75a3ab269b6a7763dcec13d8e809bb15d8fb37464d36c4fedbadac15d4dc0cdd8aeab2d1dd934db53bbae7170d7107033b6eb1a4b4736cdf6d4ae6b1ddcb504dc8cedbad6d2914db33db5eb490eee4904dc8ced7a92a5239b667b6ad7531cdc5308b819dbf5144b4736cdf6d4ae673ab867127033b6eb99968e6c9aeda95dcf7270cf22e0666cd7b32c1dd934db53bbae7370d7117033b6eb3a4b4736cdf6d4aefb7bd63115356f33fa53642da7218fda6e7670cbf75703f746d86e3a19ee72fcdda919e0eb1d0f1a65d3e31dd0433eedc878c693f16c26e3b9868ca737194f2f329e0bc8780e27e3194ac6b3898ce716329efdc878a690f18c25e3b99c8ce738329eb3c978b691f1cc23e3e94fc6731019cf2c329e62329ed3c9782690f1ec20e3b9968ce722329e23c9788693f1a4c8784ac8786e25e31942c6733319cf19643ce3c878ae24e3e94ec6732e19cfdd643c7dc9780e21e3994dc6d3918ca7828c672219cf68329e4bc8788e26e31941c6733b19cf20329eae643cddc878a693f16c21e3a926e339958ce76a329e9e643ce793f1dc43c6d3878ce730329e4a329e39643c9dc9782693f19c46c6733d19cf65643ce5643cc792f19c45c6732719cf00329e03c9786692f1b427e3a921e3798f8c672419cff1643c1792f19c42c6730419cf30329eb9643cfb93f1dc44c6730319cf15643c65643ce790f1dc45c6d38f8ce760329e3a329e0e643cb5643c2791f18c22e339918ce762329ea3c878d2643cb791f10c26e32925e3e942c6338d8ce746329eabc8787a90f19c47c6339f8ca78a8ce750329e7a329e4e643c93c878c690f15c4ac6730c19cf99643c2793f1dc41c633908ce700329e22029e54b4fb7bae52f07d7bb06d30f91d605b6ff2dbc0f6b6c96f02db3a93c777cdad35f98d606be7e013860d609367bfd7834dae5fbd0d367986631dd8e4b828fef5f27bbd76e76fe7a8677b07ffdb8e7aae77ac8bfb5bd64947c9ee6ff4958665f157021ceb49780e20e31948c6730719cfc9643c6792f11c43c6732919cf18329e49643c9dc878eac9780e25e3a922e3994fc6731e194f0f329eabc8786e24e39946c6d3858ca7948c673019cf6d643c69329ea3c8782e26e339918c671419cf49643cb5643c1dc878eac8780e26e3e947c6731719cf39643c65643c5790f1dc40c6731319cffe643c73c9788691f11c41c6730a19cf85643cc793f18c24e3798f8ca7868ca73d19cf4c329e03c9780690f1dc49c6731619cfb1643ce5643c9791f15c4fc6731a19cf64329ece643c73c8782ac9780e23e3e943c6730f19cff9643c3dc978ae26e339958ca79a8c670b19cf74329e6e643c5dc9780691f1dc4ec633828ce768329e4bc8784693f14c24e3a920e3e948c6339b8ce710329ebe643c7793f19c4bc6d39d8ce74a329e71643c6790f1dc4cc633848ce756329e12329e1419cf70329e23c9782e22e3b9968c670719cf04329ed3c9788ac9786691f11c44c6d39f8c671e19cf36329eb3c9788e23e3b99c8c672c19cf14329efdc8786e21e3d944c633948ce770329e0bc8787a91f1f426e3b9868c673319cf78329e76643c331c3c9b3cf1c8fbab64dbb2bc29f8deabbeb724efbb32053ee453642da7218fbf27bcc3831629f0d1129e1d9e79b2ed1b16df1efaa572bddd0d896fb7a25cd749deebd7c16c57f8c55f3194f9867991969e5f83eb0a97fdfe3dbc96f70e68e4e3dd8afa9d1b5b1cbe3678f0952d163604df7bd5f79ae47d57e2bb36e593ad1f5c033c6f79e2599303cf5bc0b33a799e0a4ff5ccf47babccb6be4a70bb5aab372dadd6585a95429955a0df9b1ef42b02bfb26d59167f6d9159f348bb11d61494db40c228b6d5c0e3219eb3f6616f11f8d65ac8f8538ee5b8bf70fccbb0bff01dc232a743c61e7a3cb3f59826deedc9f3566ade77c15f1a38c45f3194f93fdd9bcaee306c25f03dbe9f79ab65d3756848be0e19cdc5976c5b96c55f09d4672bd8248fe7211b9367cce8dc10c328fe703cda31a61e3896fd318c6571ecd800f5933cbee7fa1dcba6ebbc3ef93a57b8c6d7b2bc1e18a58ef918f36eb778b63bb4d8177dc7b50ff4ede19ca6dc536c65da13f693e968f7d82a8632bfb7cefbc42e5c0d262fdb28016da46c3bd8b67c5766ec6f5bbebf8af2b33fe51a9f6b7f6ef5e43b2e8eb706df7bd57743f2be2bf1382e9f6ce7690dc0e3a1ddf74b45cd8fa37be2c1ebdb3edaa2a77a66fa4d191b267ddeb8d6d2aac1d2aa14caac03fdd67ad00fef57c8b66559fc05e6c01c98f72eb3e6b1cf45f07768b69230dae3339fe73671c7e4f504bef13a889c9be3fec2737286fdb51d18e55d3d785fa7ecd8265e0fd741fab9ae83945b6c781de49dee4d657b19b6b8eb200d96cdd335860ad7350659167f781da4016c92c7eb201ece07333a6f8c61147fba8cb4df8e31f52886326718fdbb5a75913e29ae9f5a977cfdb2c6bdf8c3734bec2bc23953b2be3758be37387cfbb836e129b6fae1b841fa283bb68aa1cc7068172d1973e0b53829db0ef2f29d5cdb5803cbe9af59c789e683f7f772d9eec43d7cf09ec4d7e0adb00d11e8d02edafd7e564bbe77955d0debd8f738beb296f56f3bd963c562f8fe6288034fb159e5691cd10fefa748cc0bff5a475dafb062debe17d360e984312f655d315f64ec6f59bebf32767b1b4591b7b1555f6c23096e37a3f51a4b6be15f0d5a4b993196d6783f3f0d5aaf05ad451f6c13ab1dda615b596d696d6f43b4f6306fa2d97144aeb5daf783c3fd8ac2f3dd90b8efc6b96c76fb93f1aef8c3f6377d0fed4fce4570ecef8add86c4ebd2a8a3cd63d7459791b6ddd12ab306ea2b65e658c7315fe75071fb7f2368167ce7df77f2c7bcc63627f38ca4cdd9c79d6228738fd5e65659dcd2e6641b25500729eb5a4fca374019bb6dacb1b6836de341ab6df83a16c6ed27ec4ff6966f1c4b88e66551f6b184dddf9415b07e3edb98cc7d9236b6cada1fc550e69b561bb3e70c4a1b936d94401db2cd3594f20d50c66e63abaced601bfb1e70e17c1b29eb734e59dcbe63f0dd0e74c376d42eda7d2ea7b43b7b7f95993aac4abe0e997bd8180bfa93ed9e31ce3b7d23799eaa54d4bcffdf13cf1bc0e36beeb3877a66ee61bf6eb695f43decd72cad56595a954299d741bfd73ce857047e65dbb22cfe0273608e6376cd794f41b9374918c58673cc3df41b598f396f10f88ebbb72adfe37d3e86fdb51d783cdc3b2dd775afb07ce971dec77eefd956b9eed9da1c78cf765ef7a6b29fb4e29ead8f67feb2ddb3c5b9a82dbd67ebe17e56956b1eb7f8c667cde59a7ac7987a144399dfc48ca5710eb887e793b3b6ef2d04bee3fa16f93e1fcf526cb118ede70a707f61dfe2eb59f638cdfc3ecbde78de2a3e8acd76253eb7805dcafcc3ba06e3abbf90fa17597ab8fa8baba1ecbbc05c16355dfb70f595ffcb9a53216587387c0c069bac3f086cc235106ca2d900b035987c7fb0497fd10f6c723fa92fd8644c520536194bc96fdde0315a6c788e928ef2738c7e1d18656cf706d8243f14b85fb36c9afb554fdcf6f859965f0546a9c36b6093fc30e07ec5b269ee959eb85fb1b8657925304a1d5e019be487830d19c5f6b2c98f00db4b267f26d85e34f9b3c0f682c99f0db6e74dfe1cb03d67f2e782ed59933f0f6ccf98fcf9607bdae42f00db0f4cfe42b03d65f21781edfb267f31d89e34f94bc0f684c95f0ab6ef99fc65607bdce42f07db774dfe0ab07dc7e4af04dbb74dfe2ab07dcbe4af01db374d7ea4f9afe3ed1b964dc7dba3269f8e928d37f125db96e54781f13193ff06d8247f2dd8649d515097472c9baecb724f75115fb26d595e0e8c2b4cfe11b0497e34d8649d315097a5964dd76589a7ba882fd9b62c2f01c66526bf146c92bf1e6cb2ce58a8cb22cba6ebf2b0a7ba882fd9b62c3f0c8c8b4d7e11d8247f03d8649d715097872c9baecb839eea22be64dbb2fc20302e34f987c026f91bc126eb54435d1eb06cba2ef77baa8bf8926dcbf2fdc0b8c0e41f009be4c7834dd6a981badc6bd9745da67aaa8bf8926dcbf25460bccfe4ef059be427804dd6a985baecb46cba2ebb3cd5457cc9b6657917305e67f23bc126f98960937526415d3eb06cba2e3ff45417f125db96e51f02e3fb26ff01d8243f196cb2ce14a8cb47964dd7e5634f75115fb26d59fe18183f34f98fc026f99bc026ebdc0cb61f99fc34b0fdd8e4a783ed27263f036c9f98fccca8499b9f5a36adcd67911f6dc4976c5b963f03c64f4dfea76093fc2ce0fe9965d3dc9f7be2fe99c52dcb9f03a3d4e16760937c1d70ffdcb269ee5f78e2feb9c52dcbbf0046a9c3cfc126f9d9609375eac1f64b939f03b65f99fc2d60fbb5c9cf05db6f4cfe56b07d61f2b781edb7267f3bd87e67f27780edf7267f27d8fe60f2f3c0f64793bf0b6c7f32f9bbc1f667939f0fb6bf98fc3de6bfde77ff62f26551b2fbeecba8e9a3b72df791c59f2ef35793ef689591758ba1ccfde645e0721d52ae6fc8f50e6d93eb1bdbc126d737de059b5cdf78076c727d6313d8e4fa4603d8e4fac63ab0c9f50d7c5e4aae6fac069b9cb7be02b6b4c9af049b9cb7be0c36396f7d096c72defa22d8e4bcf505b0c979ebf36093f3d6e7c026e7adcf824dce5b9f019b9cb73e0d36396ffd01d8e4bcf529b05d6cf2df079b9cb73e0936396f7d026c72defa3db0c979ebe36093f3d6ef824dce5bbf0336396ffd36d8e43adc97609373d96f814dce09bf013639b77a046c728eb2146c32d65f04b61b4dfe21b0c9d8f301b0c918ee5eb0c9586827d8644cf101d8e4d8fc11d8e4d8fc31d8a699fc8fc026c7e61f834d8ecd3f019bf4b93f079bf4b9bf009bf4b9bf049bf4b9bf029bf4b9bf069bf4b9bf019bf4b95f804dfadcdf824dfadcdf814dfadcdf834dfadc3f804dfadc3f824dfadc3f816dbec9ff196cd2e74a1f1c814ddfe76a6ff2f20ecb62f8fe5de8fbb08c5e4fde67f21eac27dfefb4d6c3f7b06c33797cf7a67cff01acd719caca756cfd29ff9a9f22cbb75ede6a96b7815dca7c0c4cf82cc86660db6c6d4f9e3fd80a7629f38955475fef41b3e7b6c9723edec1b6377dbf6ef97ebd407cbf6af97eb5407c3f66f97eac407cafb07caf2810dfcb2cdfcb0ac4f762cbf7e202f1bdd0f2bdb0407c2fb07c2f2810dff759beef2b10dfd759beaf2b10dfef5bbedf2f10df1f5abe3f2c10df9f5abe3f2d10df9f59be3f2b10df9f5bbe3f2f10dfcce7dffaba501f93c7e709e47b9cfbb6d51363dc3bd0b702a3fd5ef4cec096344fdcb97b1f02df5a0b99d72773ff52f03dcef9f315537d2c465976c5143e3333d4134fdc3587a104beb516329f51e63ca6e07b9cebe82ba6865a8cb2ec8aa957816798279eb86b25c3087c6b2d643ea0cc194cc1f73857d0574c0db31865d915538f01cf484f3c71d7784612f8d65ac89cc747cdff147c8ff3217dc5d4488b51965d31b502784679e289bb36358ac0b7d642e675cadccf147c8f733e7dc5d4288b51965d31b50c78c678e289bba63686c0b7d642e6ae2e31ff53f03dce6bf51553632c465976c5d462e019eb8927ee5ae05802df5a0b999f2b737853f03dceddf51553632d465976c5d442e019e78927ee1ae63802df5a8b6a939779ca29f81ee727fb8aa97116a32cbb626a01f0547be289bbf65a4de05b6b21f3ac652e760abec739d8be62aada629465574cdd073c359e78e2ae19d710f8d65ac85cf2a9e67f0abec779e6be62aac6629465574c5d073cb59e78e2ae75d712f8d65ac87cf95de67f0abec7b9f4be62aad6629465574cbd0f3c933cf1c45da39f44e05b6b21cf04c8730329f81e9f17f01553932c465976c5d487c033c5134fdcbd852904beb516f29c823ccb9082eff119065f3135c5629465574c7d0a3c333df1c4dd139949e05b6b21cf67c8331c29f81e9fddf01553332d465976c5d467c033cb134fdcbd9c5904beb516f25c8a3cbb9282eff199155f3135cb629465574c7d0e3c759e78e2ee41d5e5c177dcfd947cf88ebb37900fdf71d7b9f3e13bee9a6d3e7cc75d7fcc87efb86b69f9f01d775d281fbee3ae71e4c377dcf97a3e7cc79d7be6c377dc79543e7cc79d13e4c377dcf8361fbee3c66af9f01d37ee08fd79e8cf93f6bd37c70e85da9fefcd63e8de3c96847383706e902fdfe15812ce0df2e5bb50cf0d427f9efffe5ccebf8aa2f8f3b10f3df9fed4f22dcb789fe5534fbe3fb37ccb32de33f0f51ea6cf2ddfb28cd7bf7dbd4ba9c4f22dcb9fe7c17717cb77973cfaee66f9eee6f0ed617f677e1306cfbf85013f69c8630cfccc83169eea99f90d16b9c794f46fb0d8d76decf6521aedfedeb27cf41db26dbbef688bcc29b06d049b7cbf1d6c9f983cbe375efaec77c026f7f4f1f70ee4b8d20036b99ff42db0c9fd269c472ff70c1f039bdcf7c5f9db72ef7e05d864fe05ce1bae36f96560937950385f55e6b22d069bcc47c4799232a77421d8645e30cecf93b9dd0bc026f3f3715e983c13731fd8b69a3cce479277c25c073679efcc2eb0c9fb71de079bbc77e7db6093f7ef7c09b67b4cfe73b0cd3779bc5729ef0cc2fbcdf26ea1756093f70ead059bbc9f6835d8e45d45abc026ef367a136c7f30797cae49de8bf43ad87e6ff2f83ccdef4cfe55b0c97b965e019bbc8f6925d8e4dd4c2f834ddee5f412d8e4bd4e2f824dde03f502d8e49d50cf834dde1df51cd8e4bd52cf824dde3ff50cd8e45d544f834dde5df503b0c97bac9e029bbcf7eafb60937760fd056cf2aeac6d606b67f29f814dde11857d4eb1c9e37c920e26ff21d83a9afc0fc1d6c9e4f1fd8e9d4d1edf55b99fc9e37b37f737797c4f69cae4f13dac323ec2f7cc969a3cbe4757c632d56093f756e17b9065dc81ef793ec0e4f13dd6079a3cbea7fb2093c7f7901f6cf2f82efc434c1edfeb7fa8c9bf05b6c34c7e2bd80e37f9cd603bc2e43780ed48937f1b6c4799fc7b603bdae47780ed1893bf076ce66720fed9a7689b79c5d53ffb146d2b33f93f81adbbc9df0db61e267f17d87a9afc1fc1d6cbe4e781ed7893ff03d84e30f93bc176a2c9ff1e6c2799fcefc076b2c9df01b6de267f3bd84e31f9df82ed5493bf0d6ca799fc17603bdde46f05db1926ff1bb0959bfcafc126bf6534176c95267f0bd8e499bf5f814dde1339076c7d4dfe976093f74ed6834dde4ff90bb0c97b2ca54fd16d57b741196b609fdf60d974db67fded241c03adb76c9a7b9d27eef516b72caf0346a9c37ab0495e7e7fa608d6b1b7550165e478de31c65f3194596c1aaebcc36e6de21a34feb68e8c27e4b7bb84652d304999e5c084eb0a5783551fd40a7fafae21f1ba34fe3e965d17d1bec151976f5afa7af84dcf2a4f75ad28b2f68fdeee76475da5cce3dd9b7479c2e453b09ff0f7db5e717c2f9f6ce7e69e7f8fb01caf43cafe75fd1622fe066542be9b5d032d8a9affbea5d88b21bfb27b5359fb777c446bfcad2119bf67fbfdcc75d67aa5506695a3fee928d9faefe9b70ef53e790ae24ce2c8e77167558c4615a09194590f1a79f81d44e7f1c4fe1d445d46f67f47ab8cac8bbfffb51afa285d173996e3b9a27decf7d4975520bb6cfb9f9ce67f29d8f05a875d47fc5d4a1cbfe058bbc1b2e97a6df4542ff125db9665f197cbf8e51dcba6b93778e2b67f0f52963700a3d401c762f6efe715c13af6b6caa18cecbf8e31fe8aa1cc07d6f135f9dfc46c1cbf485b906382b0607b92321f5be3177bccd660d507b592b29ef6673f575dca1dfa4a999f5afa7a1823f7f319bbb87ff476b73bea2a657e01c7955fc1f844621bc72f7f737c2f9f6ce317dcbf6b92afb373acbdc6e1fb2d604dc87705fa96f18bf8113b8e8dff0ae317fb1d52a2b5b0eb3622e34c64b7d7db68ad87ef9e5aeba87f3a4ab6fe6b2c9e3516b3de275f409cfd0dc62f0d9e98d6c668540e1a4919fc4dde773df1d8bff12a1ce20f8f391dad32f8fba552e67f5ae3173996e33d14298bc7795fe7fb71c74bfcbd0fb13500a35d471d1f658ef10b5e03dc6ad97cc691f8926d6fb5ea80e397ad60933c8e5f365a369fe3f78d16b76bacd260f23816933c8e5fde89d9d61950c61ebfd8fef098d3d95c24f53d7ec1df6d4847bb5f6fc2df6e2801265c57b8b65af541ada46ce7c8cbfb062b5d7511edb73aea72a0a5efdb1e983cd535ebf805eb2a650eebd1a4cb11268f7d1f8e5f4e727c2f9f6ce317dcbfc95f2b6c1cbfac01ce34f841df38ce48c877b3e3b78c5fc48fd88b217f628fa6b2f6354ad15ad8751b91fe1fd9edf5deb1d62b8532eb1cf54f477ec70a6b2d66bd4f8e86389338f279dc5917a3d119a09194d9081ae56bfc221c387e118e8e56191cbffc731c067d94ae8b1ccbf1da8694c5e3bc87be2cebf152fc9582ad0118ed3aeaf8d87a4c13af8feb61786d4a3ed9faafedd1ee3c49ce95c26b53e82bf9e34365a6afdc66b6d5ce6c57ee41e238774be2be1bfbe906b32d39366db17c17439973a0af94315f7bb3de366b3d5d66b3b56d59e774b06fb6b62dc7f8064ff5dd6231097703d8a5cc05d047fe1dfac86dc9b365e637629f241ae2270d7961f0a35565790a7cb484a701787c8ca37cc504b6ada4e75b6eb6b4b263ad14ca6c01fd367bd02fdbb56bd76fa705e6c01c980373600ecc81393007e6c09c0ecc81393007e6c01c98a3c05cfef53e81393007e6c0ec8559f3c8fd0461c5b9d2db4918c5b615781a92e729c767f164fbfabece2f7b34f9f57d7f4fe642545a752e863247f56c2afb85612b81eff1fd010d96cdd37dc2acfb52fce11cb106e0f1f5fcc4568b67ab430bc99725e6bbb2c68fc695e5fab967fd8ce6364bd7ed0e4d7db557bc778b9a627b7dd7e2c17ba3387770a7f98ff31b77421d1a3cd721b2ea20feb02db9e637be0b8c3ef6331e4ba43f90fbe1786f5acafc87d156ee8b27bfef2bcb7df61b9ba04ee968f7f82e8632ffd9a34997ff32799c1b8273524a7aeefebd7cb2dda716fd3ccd55cdecdf0dc099063fe87b3db026e4bb027dcbdc37f183cf4afc73ee71cfa6b2f6f368a2b56b7e28b2dbebd9cf749542998d8efaa7a364eb1f376f1b9f278be0182b71e4b34fda18a3d1e9a09194c17190af63e7368b4738f0d943e1e8689591758ba1ccc1464399fb26fd3cbed7c8750cf07d1c936dbb8e63f67121e5a8a38e8fd18736f116fafcaf5ed05f243dffab17c410ced38aaced57c2f61b4cbe63147f6c913227c1f67dce2fdb66d559581ac02e654e857ea8c6e47319ebefadf3b6b8b1be8f676ef1bd5cf2c9767cc763cc260f3c9eea59ee3a766db6ea84cf1c9d00f5dc5bcfdcf8dae7a8858ca1b6585ae0b363c3acbe234e473c576dc84b5d2a9de3c14a475da4ccd9563f95fc33b58de37d5ffbcd7ed665aba3ae52e602e8ff2e82f1bceca766c761c7f7f2c9d61fe05c7b0fcf0a66f6ef5ae04c831ff48dcfa424e4bbd9b31e32de173ff8ce17c98f82e3b7fd8cab688defe391670590dd5e6f8bb55e299479db51ff74946cfdede74ad659cc7a9f5c0a71361ac6fbbefacdb76334aa048da44c03d8e4d82ee571dc8cc7fd6d9eb8e3c6cddb80516cd83fd780a6c98f91dde72cf63554d778b0d2e2c7f1e064e867538eb2f6b5615fcfbdec889a7fb2f5659e6320f35e2c3c074c839fd3c06e9f1b9e666987e78675fec7ddce6b97f675533ca710ee064b577cf663ae754e2bfb09af198a6d97f9efe93cadca75cd50385cd70ce759e321fbded54e475d440329db2edabdeff9ca2a8bd7ddb2ad67e77758eb687d7759e55c7e3ac3ba5f4509e95b515e6ef36fb738f1ba77b67b82d20e1aa08c6ccb6e2b786e2c65165b7d925d56effbff3eb8491fd98fa21df6271893be9ea1dc61d55f96c59f667ccfe477004ff27d57e3f34ab95c07de063c3efa764f7d74391e633b27b6dd81e35de7fdef5a5ae5f17eadf3982fcb0d0edfc9695139c175fdc9a5c516078faffb28715a6c71f84e4e8b7e35ae7ecea5453ee73ec469b1d9e13b412d26e275cf6c5a6c72f0f8b816954d8b4d0edfc969d1bf3cdb7d0dd4c2f58e185fd71ee2b4107fb9326f2660ee6ce593f15d35de759dcca5c53b0e1e5fe7cd715abce3f09d9c1615fdf01a5d362d3638787cbdf32e4e8b0d0edfc969316060b67bbaa8c57a078faf7bba715aac77f84e302e6a5dd7725c5abcede0f1f55e8f382dde76f84e707cd8cf75adcda5c53a078faf77b4c569b1cee13b412daaf1ba6b362dd63a783cbc6f29ab166b1dbe93d3627c5fd7356197166b1c3cbeae09c769b1c6e13b392daa0768dfab5ba0c56a078faf7741c569b1dae13bc173a84c5cbcd5022dde72f0f87aaf679c166f397c27a7c584cc586b550bb458e5e05995672d56397c27a74579e698fa660bb478d3c1f3669eb578d3e13bc1b8c89c4fbed1022dde70f078f8dd84ac5abce1f09de071241317afb7408bd71d3cafe7598bd71dbe93d36262e6fad36b2dd0e235078fafdf7488d3e23587ef04afb964e2e2d51668f1aa83e7d53c6bf1aac377725af4c91c535f698116af38785ec9b316af387c27a7456de69ed8ca1668b1d2c1b332cf5aac74f84e70dc99e92f5e6e81162f3b785eceb3162f3b7c2738eecc5cbf78a9055abce4e07929cf5abce4f09d60df991977bed8022d5e74f0bc98672d5e74f84e70dc99d1e2851668f18283e7853c6bf182c37782e3cecc71e4f91668f1bc83e7f93c6bf1bcc377827191e93b9f6b8116cf39789ecbb316cf397c27785d2bd3773edb022d9e75f03c9b672d9e75f84ef07c24738def991668f18c83e7993c6bf18cc37782f78a3263f0a75ba0c5d30e9ea7f3acc5d3e07b5be2be1be7738b0f998b75aaa545319419dcabf1bfccc58ad351b681f3cab02e3f48bc2e8df3ca9e8aa9cb0fa02e526604d4a533d89364f254d74ccc7c1feaa4b7fb9ea3ae52e6dc5e4dba9c6ff229d8273b41b76b1ddfcb27db1ca4a7cc7f5de72792af732656bf079c69f083be1f07d6847c57a06f999b2e7ec45e0cf991bd9aca4a39d143b41676dd469e347964b7d77bda5aaf14ca3ce9a87f3a4ab6fe4f583c4f58cc99e71e20ce248e3ccd1dcb303d19a3d1a9a09194c1397b3b3df1bc67f10887f8c379861dad32b26e319419077d14ce2b957ac6cd917cca53fde2e6488a3f9c5bbc0d18ed3aeaf8f812e67ecaef85cb6f896b9bfc36785fd8ce40cba6eb3ac8535dc5976c5b960701a3fc56f9c0fc3356b6947180c5a8798678d02c057ee593ed78310478067be0f154cfcc7168a855a741569d4aa10c3edb38d4433d8bc0af6c5b9687826f1ffb1cb59063f2499616c550669e357e8cd351b6a1e377a0a32e69cf75916d5741deb7ef6196effe96ef54d47c3f4751f6f6350c98877b60d6db1d91fc7633edeb4cb32d8929f1d31fea74166890549dd0b78cf3c48fd88b21bf02c679524ef490e397b0970027b2dbeb0db1d62b85326947fdd309d77f84c533c262d6fbe44118dba593e728c77d6a6fbb3f68372246bb34682765f0f837d09376c32d9ee1966fcd23639ca16093b182f0a7e0fbbe79e0b6fbbda10e6eb10d0346d7586740f28c59c73a0380516cc381679827cdec7d7d92a50f1e973b5a6564dd6228f3021c1b538eb2baddf52a6aaa577b634fecd931d3a777f4a057cad4153fd98e5dc2d0d9d43b699efd8dc6fa33bb7e465df5a4da2b6b1b6f3d0a5ab18589ff8b1cd5680736ccb777d822e35eaa590cb64e26df016ced2c5952b05d29af5fb7e74b2ed443b65d6c71760696247da7c0877cb2854e27e0f111ca3a744accb64ce85c5b37a5be16e3a383c5d99ad8d1dfb5cf522e6e5bbef683dd26d2b06cc760b127ffeda1be6958167f7adf949afcccea9a9b47d44d9a33ad767afd6c14ca6ed8982f8a9aef00fb7f9ce0be1a1d060056183b870e56bdb0c390ef64c7ec9f386745e659d5ce51f34fb606ba3fe8b65fe23c8d0df440b3ad9aeaa9532f9f337eea949a73e74cafa99f32633aee4da1ee6651db7b5abeef08365717af3fd84d62b785eb7672d85c1f3f7bac31b2f6033f6958167fa9a8f99e129b1c35f7035b3bc7baed212fe5eda8f0d2544e80ed4b73d6dfe91da3778816bd53d4147e3214d07dbaee3bf4ab6bf5104ceff403a2c6503a48257db5f21095f41bf40e53e970958e50e948958e52e96895f42fcb1eabd27151e36b7abbabd4236a7c43a31edd1d0f6cef03ef8951e370ef64957aab744ad478c9f4b4a8f1f572fa676cf573fd1551e3ab3df42984be34a187ddfa34539f12e961b01efeea4b28fa729a1e56ea21bb1e8e0e8f9a4ee5f4a9ab3e953b5ba573543a57a5f3543a5fa50b54ba50a58b54ba58a54b54ba54a5cb54ba5ca52b54ba52a5ab54ba5aa56b541aa9d2b52a5da7d2289546ab3446a5eb551aabd20d2a8d53e94695aa551aaf528d4a1354aa5569a24a93549aacd214956e52e96695a6aa344da5e92acd5069a64ab354aa5369b64af52acd51e91695e6aa74ab4ab7a974bb4a77a874a74af354ba4ba5bb559aafd23d2addabd27d2addafd2032a2d50e941951e5269a14a0fabb448a5c52a2d5169a94acb545aaed2232aad50e95195bea1d2632a7d53a56fa9f46d95bea3d277a3c65b22fa5690be45a26f3fe8db704f458db7e69e8e1a6f29eb5bec7aca819e82a1a7a4bc18354e59d253b8f494363dc54f4f79d45340f594583d45584f99d653c8f5947afd88817ee4423f82a21fc9d18f28e947b6f4236cfa913efd88a37e4c553ff6a91f636e881a1f73df1635be2240dfaad597eaf525797d7b6257d418931fa8f443953e54e923953e56e9472afd58a59fa8f4894a9faaf453953e53e9672a7daed2cf55fa854abf54e9572afd5aa5dfa8f4854abf55e9772afd5ea53fa8f44795fea4d29f55fa8b4a5faaf42f2afd55a5bfa9f4af2afd5da57fa8f46f51d36541ec400e33bd4e77b35c5d5f5f3b6d667d59fd8cb26973a6d64f9939f5b6b2b953ea2797cdb8a5b66ee2d4197371e59d66e523ccf288babaeadbcaa64c9f507b6bd98c39f5653326968d9f3167fa846603873f9b958ededd63f58409f1cefefdeb90fe9f563aed68fac383ccf205d9ebb65ffb5608d2b5352bf569dfba0a4d32474d395dbeaa71ec5d367bea8cfab2f2b2e9eaaf3ad8cf985b3be1f432fc6eb61279767dd9ecfaeabafab2897533a695559c8edbbd7bff5654e2ffeeef07e6d1635a01f3a3635aa7e8ef5ae3ecf4635be76cd8b1ad70769159e928b3ac8773194fb367d7d6d58f9b567debb8f153eac7cd9e727b2dae76796b7c8d6ecd4ad35ab3527d2b259cdf1a670b5ae9ecb1d6387bbc95ce7eddcaf5fe6eada7afe1d4d6954d983221d304ebd4a26e876513aaebab71bdfb8e6b9dbf45dd5bb7deb2eead10f3b1d6acf4562b09df6fe57a1fb506f2d3d6acf43f5a49d8a947ebd64bf56805e401ad59e98c56129e6dd66bd5b8e2df5b437a50cfd691f6ecf935484f6ca5d3a13d5b51c3b35ab3d2a45612ce8a9765f69cf1f575d535f5f12bdff27556beb335d55cd4ca6a0eead50a67e9d6ac7443afd611ded91a67cfe7e02cfaff2b78bbaf19dc06009b2d6c6f000000280a1f8b08000000000000ffed9d67781cc791f76711981620c19c294814cd0862b1c84c02739669c9ca8909a424065024142dcb922ce79c73ce39475db42fd977be7392e39db32507e9cbfbf8bdbb4f7eae7bb6ebf047b3670f0b4d8135d89ae7296c4f6defd4afff53d333db3d3b782a8aa25c545a6a8d5d129dbfd0fb7deeb5f0f496b614b755e0e4cc6584b326239cb519e1accb08677d46382764847362463827a5c869d96aa2e14bdabc9319744d9b714ac634cd6740d3868c69da98014da746d9e8a3a66584b329239cd333c23923239c3333c2392b239cb333c23927239c7333c2392f239cf333c2b920239c0b33c2b928239c8b33c2b924239c176584b339239c176784f3928c702ecd08e7a52972ae02ce65eef519ee75b97b5de15e57ba57facc6ad7b63ab7bec6588bb1b5c65abdf7ac207692a168acdd7bafc358a7b12e63ddeebd66f75e8fb15e63eb8cad37b6c1d846639b8c5de674d86c6c8bb1adc6b619db6e6c87b19dc67619db6d6c8fb1bdc6f619db6fec7263cf3476c0d8b38c5d61ec4a63cf367695b1ab8d5de3b15c6bec3a63d71bbbc1d88dc66e3276b3b15b8c1d3476c8d86163478c1d35d66fec98b1e3c66e35769bb1db8d9d3076d2d82963a78d0d183b63ec0e63678d9d333668ec4e637719bbdbd3ec1e63f71abbcfd8733ccefb8d3dd7d803c69e67ec41630f197bd8d8f38d3d62ec05c65e68ec45c65e6cec25c65e6aec65c65e6eec15c65e69ec55c65e6dec35c65e6bec75c65e6fec0dc6de68ec4dc6de6cec2dc6de6aec6d8e850e80b71b7b87b1771a7b97b1771b7b8fb1f71a7b9fb1f71bfb80b10f1afb90b10f1bfb88b18f1afb98b18f1bfb84b14f1afb94b14f1bfb8cb1cf1afb9cb1cf1bfb82b12f1afb92b12f1bfb8ab1af1a7bd4d85f18fb4b637f65ecaf8dfd8db1bf35f635635f37f677c6feded83f18fb4763ff64ec1bc6be69ec9f3dcdffc5d8b78cfdabb17f73be6fbbd7efb8ba341ef65d63df73e5efbbd7c7dceb0fdceb0fbdcffcc8d88f3ddf4f8cfdd4f3fdbbb1ff70e59fb9d79fbbd75fb8d75fbad75fb9d75fbbd7dfb8d7dfbad7c7ddeb13eef577eef5f7eef50feef58feef549f7fa94b1eed9a5f2a46868e98b52ea9b3afafbed1c0589bf2c1abe582d6add7bf4daecfc756e9d5e49bb7ab75eeff927baf589de769adc7a93e79fe1d66778fe596e7d96e79fe3d6e778fea56e7d29f8f3118ca93abff5d53a570e7c949735e0ab8f866b627d136873e09b180dd7c2fa683f4e00df64e79b08be29ce37c9f92639bf5dfaa2b4f67fa1d76eb721ededbab99ac6f4790fdbed4e65e29d963eef51bbdd26065e9b0bd3ddb6a641decc70be26f0cd74bee9e09be57c33c0e7ba9a6826f8e638df2cf0cd75bed9e09be77c73c037dff9e6826f81f3cd03df42e79b0fbe45ceb7007c8b9d6f21f89638df22f05de47c8bc1d7ec7c4bc077b1f35d04be4b9caf197c4b9def62f05dea7c97808ffacfa5e0a3ebbc4ba9ff33569f83cf383ff547f167a8cf05df72ea6fc1b782fa5af0ad74be09e05b05b1c9b71afa157aed75e5be28adfc2f1eb1db5d97f676cd96ed7637a4bfdd78be6d6334a46b1fc459075a6d72e514ef9569c3d839671487fc7550de0175a91ee941e71462b77dfc7a57de54e673bddee71aa1cefa40fbfba274dbbfc1e3d9e031d77b1ce9e76c7b417376c44bc539fb6ca8ebe71e5ddf8cc79cdd0d1c0c39dba1393be2a5e29c3d0c75fddca36bdcf198b3d7000743cef6f0e46cb1a0395b1ae78aa270eed1f79cf198b3fdc0917ece766ace8e7ca938671f80ba7eeed177ddf198b3e78023fd9cedeed16b83112f15e7eccba1ae9f7b34ee321e73f621e060c8d923dacf8e78a93867df0a75fddca331c0f198b3af028ef473b6972967db3567a3d29c651485738fc6a3c763cebe0338d2cfd9233a3e3bf2a5e29cfd22d4f5738fe646c663ce7ecc95ed78deb7dd3cc342f07dc7f916016ffab97db4c894db45cdedd2bd1c5114ce519aa71b8fb9fda82bdb3cfebecbe38bc0f718dc6740be1f38dfc5e0fba1f35d02ed6238067af41818f152f131f023a8ebe732cd198fc763e05bc0c190b387346747bc549cb38f435d3ff7e8fe85f198b33f050e869c3da2393be2a5e29cfd13d4f5738fee9f1e8f394bf787daeb859fb9eb8595e0fbb9f3ad02df2f9c6f35f87ee97c6bc0f72be76b01dfaf9d6f2df87ee37cade0fbadf315c0f7b8f3b581ef09e72b82ef77ced70ebedf3b5f07f8fee07c9de0fba3f37581ef49e7eb06df53ced7e37cf6fe3bbacfea1bce67f72d69d417a5bb6fe97e4ada36adaf1e83d853bdd853c730769317bb29107b0d43ec3cc4a025e7adf741790d2f4fa1117830d6daf463b5dbb6b744236ffb5ae06965687b1e628c84a715780ae9f3c4f7f5b6a5bfdd781fb7789ae621560bb4abc8d0ae1cc4a26dd33ac56b041ff6dfc500637bfa8cc51cc4a26dd37a3b30920fcf27745ea7e3c79e0f97e68678198ea5f89a88e2d1b3b088632df8a9ce63b386d8963bb606781fcfad05cfc79497715ee00fe3fa609de235407b0a63cf581c2963abc7c8d547e420166ddb8f8dc7fb9ab1d76c44fbb5117c17a04f2a8eb64f6a00b6b1b84e49dad75262739caf721083fa36d2bc0dfc5467a6fbf181eddbb641bfcb70fc152bbd7ec3fe20fd3c2e16f0b81e094f1178388e7da6e3b580e7fd3f47e9e65a87a755c1d3aa11eab4837e1d0cfa95bb0ea178caaccccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaacccca2c9f19efbfc0f94daab75a0823f9da8087639c3f7e5694db166ddfceeb3c06f33ae9cf5b140b386749f718aef0da5c07759ec80dd5fd31cca7fb738338a7b99a57bb11dd67d1109d3f17cb398798340f1c9abf6c4e2d76e9595e1cf36df61e35fbbcaa164fd7d5014d19ee5319a669ced314ef535ce5f1d83c9d533bc4c631f757e95c246a45e534e7f6f01e03defd52ea3f28176aa2e1fd079e673a538f3d7c0e93e6cb3bbdd87550e7ffe786f60ddd8b4afff7cfbfe7c9d6e9f2b64d9f5901fe2e6fdbd3dc6789a3dedb7e0b7c96eafc37f4a96fab89fe57338efb3fb05f8ea0adb8f44119e7cdd33f0f97e6f18b15f074000f473fc374bd51c06320ed79fc2e4fabd0750cd5e904fdba18f40b5d8bd23ac55366655666655666655666655666655666655666655666655666655666655666f9ccf85b5162cd43bd36218c6374ef433c9f41cf7fa1eddb799d97d40cc5e59e87a339a7955e9beba0ce376b86eabec2951ba2f3ef7748da970cf37965f725c56b80f6e05c10d7efb9db3d9ef68016546e4e2d76691e3f7d8d87e6f18b9eae6d014db98e579c63454df1782d783c3837da109d7f6f491eb63316f70e25e505c5c363a91d7c54c6df4773ec673c97f8f7f5503c9cbffe80d3765ac4b5ef8b05ce7ea31bdad4179d9fdf7550e7a3d0f77ddc95f11e0ebc77e4d1c0fbb4949ba726fd6c9b537f965da134efbb0e38fb200ec65e0fac29c56ec3d839671487fc7550fe6acd505daa477a90d6c46e8f117a2618b2fb9f2b789f6b843a3d81f6f745e9b6bfd7e3e9f598ed3ef914e4d9a370fee7ea937aa2b0462b4023aa83d7415ce74efffe4affbe42ec47277875e8b37550e7ebd04725dd3f1a3a07709fc768dba1f3987f5e18c97d9ed57e9fd6f7a0bf48fb3eadef410ee17d5a91b7fd95b07de29a10259f5ba8ce0fbdedfbd7e4f419bc0f8ceafc04fa8b0677cf624374fef537de333516dfaf92ee93a678785d43ef8da4ed96b91beaf7a5c88c39812c789d40757ee3edb3ae04eeb581cf3e91f059d28a9e4385df5f7cfdac0e3df099be5474281df3bd5e5b28af7ba02d54e729ef1a30fdeb96d23560fa6d1d7e4d42fd407ba0ad54e7ffc1b1f627b8c6a3fd84df3b6a6bcf7f9f9672d780a49f6df3583f1f18634b783e704ded505dff39bfa475a5cf07eef43e27f1f9c0ff0579560bf7a173f5d5eb13345a091a511dfc6d109d47f059bea1b18e0bf57d1aafa5b07f6e004db97e77e09ffffc71b5d035c24a4f63bc4698ee98a7399dfdbafe78219d2fd3bc6f187f2bd10271f1b7122d4c7ab6826e7db08ed7051732762b53eca4674eb78e41eca4674e8f45ec262f76d318c656cd5573499a333c1339fefd193eb3d42ee5ae4b89a1113e579301c6da0c30d66580b13e038c1332c03831038c9332c03839038c5380f1429e3719f4298e561faefd55ee3c8eb119fe2f48b1d2ff8dc1fc7f4aca5e57606c86ef4bb1166ba2916b81dfa1389eab50e9ff512106fcbf00d333c03823038c3333c0382b038cb333c03827038c7333c0382f038cf333c0b820038c0b33c0b828038c8b33c0b824038c176580b139038c176780f1920c302ecd00e3a519605ca68ca930aee2652c8e96d1f270fc3fbda7f3ffbc18780aa1fb3999ee4dadf87f99313ffbb36db4cf64c3fb3678ffdfdad37b6e1cc77d19953e37aedcff3265622c8e9691eb3e1bbca767243ca17b6f0abc8cc5d13272fdb6047fff36129e4ed0ac23a019036371b48c5cf7a1557a9f24de2fdf19d08c81b1385a46bc6739459e58b3ae0a78ba41b3ae80660c8cc5d13272ddf39b871823e1e901cdba039a31301647cbc8f4bbb158b39e0a78f0f7553d01cd18188ba365b43ceb9834ebad80671d68d61bd04c1223f2a4fd0ceade402c8edfe355da766240c64919609c9c0146bc4f82a3ff2a779f442faf3ec5d1eac3b5bfcadd2781b1197e7b126b81bf35f8bfb4d8c0cb53f63e098cbd91490bfc2dc8ffa5c546e0e1f86d4a1e628c8487181ae173d333c03823038c3333c0382b038cb333c03827038c7333c0382f038cf333c0b820038c0b33c0b828038c8b33c0b824038cf85d95e15ab1ecf7978de33c76d27795f11e3be97bc9788fad79ae795e0db135cf35cfab21b6e6b9e67935c4d63cd73caf86d89ae79ae7d5105bf35cf3bc1a626b9e6b9e4b8a9d85317e651c7f8cc8d39c1e4f01db8eb12e13d0f6cb023c39a6b663ac3e016da772d618d765807153061899752c8e96d1f26c66e2e9ab806733f06c61e2d95c01cf16e0d99a3e4f9c535b2ae0218646f8dcba0c306eca00a3eaa83a4a62541dab47476554466554c60bc198853e5c1933918fc5d1325a9e6de9f3c49a6dad80671b68469f2bf0321647cb6879b6a7cf136bb6ad029eeda0d9b680660c8cc5d1325a9e1de9f3c49a6daf80670768b63da019036371b48c966767fa3cb1663b2ae0d9099aed0868c6c0581c2da3e5d9953e4facd9ce0a787681663b039a31301647cb687976a7cf136bb6ab029edda0d9ae80660c8cc5d1325a9e3de9f3c49aedae80670f68b63ba019036371b48c96676ffa3cb1667b2ae0d90b9aed0968c6c0581c2da3e5d9973e4facd9de0a78f681667b039a49655c9701c64d196064d6b1385a46cbb39f89675f053cfb81e772269efd15f05c0e3ccf4c9f27cea9cb2be0218646f8dcba0c306eca00a3eaa83a4a62541dab474765544665ac8cf1b20c30eabe5646a98c0cdfafcafe3ee5f2711e7baa177b6a95c44efa7dca788fad79ae795e0db135cf35cfab21b6e6b9e67935c4d63cd73caf86d89ae79ae7d5105bf35cf3bc1a626b9e6b9e57436ccd73cdf36a88ad79ae795e0db135cf35cfab21b6e6b9e67935c4d63cd73caf86d89ae79ae7d5105bf35cf3bc1a626b9e6b9e57436ccd73cdf36a88ad79ae795e0db135cf35cfab21b6e6b9e67935c4d63cd73caf86d89ae79ae7d5105bf35cf3bc1a626b9e6b9e4b8a7d20fdd8c54a9f31730078389e79c3d4ce82ddeeb3dcb6fe9ca27e56ab2b3cad2ef7b46a843acf02fdae60d02f077169dbb44ef12a657e860066a6d845dbbf4c86f6538c4d9e1e36fe954c6d4feaebaf1ce7b193fafaf11e3ba9af1fefb135cf35cfab21b6e6b9e67935c4d63cd73c97121bcbf5d1d0753b3dffd46ee3d9ae5ce7d6a9fe65e0a73adb27965ea7457a0c71c4d66348cf15d5105bf35cf3bc1a626b9e6b9e57436ccd73cdf36a88ad79ae795e0db135cf35cfab21b6e6b9e67935c4d63c9797e78df07ecd18f0441e4f5486679b309eb5c2789608e359298c679e309e5e613c3384f1f408e3992c8ca753184fad309ea2309efdc2785a84f12c13c6b34618cf7c613ceb85f1ec12c6335318cf14613cab84f1d409e3d9228c67bb309ee5c2781608e3d9208c6796309ebc309e06613c5dc278ea85f1b40be3592d8c672c7e8f5709cf46613c0b85f1cc16c6b35b184fa3309ea9c2787608e399208c67ab309e3e613c8b84f1ec15c6334718cf34613c4dc278ba85f14c14c6d3218ca74d18cf66613cadc278160be3d9278c67ae309e3dc278a60be3d9298c6792309e15c278720278f2d1f9cf00cbc3fb07c057e37dd65e0fcc9b3df4fe55ce5f039fb9da956b03dbbe0a7cf45becab039f459dae82b6f4b972e1e92db14e18ab0fd6295e03705c2d846785309e49c278760ae3992e8c678f309eb9c278f609e3592c8ca75518cf66613c6dc2783a84f14c14c6d32d8ca74918cf34613c7384f1ec15c6b348184f9f309eadc2782608e3d9218c67aa309e46613cbb85f1cc16c6b35018cf46613c0784f1ac16c6d32e8ca75e184f97309e06613c79613cb384f16c10c6b34018cf72613cdb85f16c11c653278c6795309e29c278660ae3d9258c67bd309ef9c278d608e359268ca74518cf7e613c45613cb5c2783a85f14c16c6d3238c6786309e5e613cf384f1ac14c6b34418cf5a613cdb84f1d4047818febf63cc43f78bd1b669fd8090d80cfb21febf96d730b5e95ab7ad7ab75de2a778755067b73bf1d9f960fc2c71f9f7f7e1d8f2b5a0d1b54c6da1fd91f3f60f73ec22dec7180143e4e913057838eeff646ae7b03c4cf1ffab16ac56d7795af9fbae11ea5c03fa5dc7a05f28b7699de26591d9f2d0dc13b1e6a1de46218ce4bb9297273e6e3746c39772c7ed75c0c3d18731b5333ebeaef7dab431a03bd5c15cbd9ea19da16387d6af87fd9035e6468847acf968f83e95c048be6b7979e2e3ab2f1abe943bbeae071e8efe87a99df1f17583d7a6be80ee540773f5068676868e1d5abf01f643d6982dcf6678df2e79a8b7590823f9aee3e5e9c8439b6929777cdd003c1cfd0f533be3e3eb46af4d9b03ba531dccd51b19da193a7668fd46d80fcaaccc2166cbb3c59589350ff5b6086124dff5ac3c1d853cb4999672fdd88dc0c3d1cf33e91ef76337796dda12d09dea60aedec4d0ced0b143eb3705623747e96a71f308b4b839c073f3186b41f12a65be2683ccaab3ea9cc4ac3aabce49ccaab3ea9cc4ac3aabce49ccaab3ea9cc4ac3aabce49ccaab3ea9cc4ac3aabce49ccaab3ea9cc4ac3aabce49ccaab3ea9cc4ac3aabce49ccaab3ea9cc4ac3aabce49ccaab3ea9cc4ac3aabce49ccaab3ea9cc4ac3aabce49ccaab3ea9cc4ac3aabce49cc1274b63cf44c6762cd43bdad4218c977032f4ffcbba0add1f025e7adf741f966e0b991411fa676c6f790dfe2b5696b4077aa83c7d72d0ced0c1d3bb47e0bec874a986fca20b3ea3c3a66cb43cf7621d63cd4db2684917c37f2f2c4fdd8b668f852ae1fbb057838fa79a676c6fdd841af4ddb02ba531d3cbe0e32b43374ecd0fa41d80f0795599903cc96879e114cac79a8b75d0823f96e66e529c6bf6fdc1e0d5fcaf563078187a39f67d23deec70e796dda1ed09dea60ae1e626867e8d8a1758a5729f34d1964569d55e72466d559754e62569d55e72466d559754e62569d55e72466d559754e62569d55e72466d559754e62569d55e72466d5b97a74b63cf4bfab89350ff576086124df2dac3cedf1bcc38e68f892f3d6fba07c08780ea6ce539a7760d03d9e7738ecb569474077aa83c7d7618676868e1d5a3f0cfb61bc33df944166cd8db161d6dc50e62466cd0d654e62d6dc50e62466cd0d654e62d6dc50e62466cd0d654e62d6dc50e62466cd0d654e62d6dc50e62466cd0d654e62d6dc50e62466cd0d654e62d6dc50e62466cd0d654e6296901b9667a72b136b1eeaed14c248be83bc3cf1730f7646c3979cb7de07e5c3c07388411fa676c6f7ed1cf1dab433a03bd5c1e3eb08433b43c70ead1f81fda0ccca1c62b63cbb5c9958f3506f971046f21de2e589fbb15dd1f0a55c3f76047838fa79a676c6fdd851af4dbb02ba531dccd5a30ced0c1d3bb47e14f683322b7388d9f2ec766562cd43bddd4218c977989727eec77647c39772fdd851e0e1e8e799da19f763fd5e9b760774a73a98abfd0ced0c1d3bb4de0ffb41999539c46c79f6b832b1e6a1de1e218ce43bc2cb53cc439b6929d78ff5030f473fcfd4ceb81f3be6b5694f4077aa83b97a8ca19da16387d68fc17ec81ab3e5d9ebcac49a877a7b853092ef282f4f7c7ced8d862fe58eaf63c0c3d1ff30b5333ebe8e7b6dda1bd09dea60ae1e676867e8d8a1f5e3b01fb2c66c79f6b932b1e6a1de3e218ce4ebe7e5898faf7dd1f0a5dcf1751c7838fa1fa676c6c7d7ad5e9bf60574a73a98abb732b43374ecd0faadb01fb2c66c79f6bb32b1e6a1de7e218ce4c3f3c57e269e068fa721a0c5788c3dd58b3db54a623779b19baa24b6e6b9e67935c4d63cd73caf86d89ae79ae7d510bb5a734d35af4ecd731750f3dc05d43ca79a8bd4fccfe9c5ee6c8c86961a88c535968b4b1f94717c8e96b5c2789608e359298c679e309e5e613c3384f1f408e3992c8ca753184fad309ea2309e16613c0784f12c13c6b34618cf7c613ceb85f1cc14c6334518cf2a613c75c278960be359208c6783309e59c278f2c2781a84f17409e3a917c6d32e8c67b5309e85c278660be36914c6335518cf04613c8b84f1cc11c6334d184f93309e6e613c1385f17408e36913c6d32a8c67b1309eb9c278a60be399248c6785309e9c009e7c74feef3ff0fefd5af0ddeacafbc1779b2b1f005f4d20066de756f0d1f80e6dc39e1f96ce3e9fa1063e737b80ebb6403c8a737be0b363a13bc6ea83758ad7001cb70be159218c6792309ee9c278e60ae3592c8ca755184f9b309e0e613c1385f1740be36912c6334d18cf1c613c8b84f14c10c63355184fa3309ed9c278160ae3592d8ca75d184fbd309e2e613c0dc278f2c2786609e3d9208c6781309ee5c278ea84f1ac12c6334518cf4c613ceb85f1cc17c6b34618cf32613c0784f1b408e3290ae3a915c6d3298c67b2309e1e613c3384f1f40ae399278c67a5309e25c278d60ae3a909f01c60e2497a5ec00101b1ed3821cd2de5e195de1f8bfb660e788cb48ef719900feff36e65e2497ac642ab80d8568bb550b64b1edec7df6973e554abc748eba19cc2fb62d732f1243d9762ad80d8560bfa6e43734c79781f7f77c795536b3d465a0fe554132f4ffcbf13d644c39772f7f6e031c7b10f99da59c0e32fc56744049fb5bcc6d3aa11ea8cc5ef5e93fa038aa7ccca9cc46c79682c8158f17c3616bf231f0963e8fccac013f78f2dd1f0a55cff781c7838ce1f4ced8cfbb1135e9b5a02ba531dccd5130ced0c1d3bb47e2210bb394a578b9323d0e26480e7e4186b41f12a653e904166093a5b1eba378058f17ee2d54218c9d7cacb13f78faba3e14bb9fef124f0709c3f98da19f709a7bc36ad0ee84e75f0f83ac5d0ced0b143eba7603f54c27c2283ccaaf3e8982d0fdd334cac79a8d72684917cc759798a853cb4999672fdd829e0e1e8e799748ffbb1d35e9bda02ba531d3cbe4e33b43374ecd0fa69d80fcaaccccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaacccca2c9bd9f2d06f4388350ff58a4218c9779295a734ef508c862fe5e61d4e03cfa9d4794af30e0cbac7f30e035e9b8a01dda90ee6ea00433b43c70ead0fc07e5066655666655666655666655666655666655666655666655666655666655666d9cc96879ea14aac79a8d72e84917ca77879e2df6db547c39772f30e03c0c3312fc3d4ce78dee18cd7a6f680ee540773f50c433b43c70ead9f81fda0ccca1c62b63cf4bf1588350ff53a843092ef342b4f69feb4231abe94ebc7ce000f473fcfa47bdc8fdde1b5a923a03bd5c15cbd83a19da16387d6ef80fd5009f3890c32abceaa7312b3eaac3a2731abceaa7312b3eaac3a2731abceaa7312b3eaac3a2731abceaa7312b3eaac3a2731abceaa7312b3ea5c3d3a5b1efa9f35c49a877a9d4218c937c0cad31ecf3b7446c39772f30e77000fc7bc0c93eef1bcc359af4d9d01dda90e1e5f6719da193a7668fd2cec87f1ce7c2283cc9a1b63c3acb9a1cc49cc9a1bca9cc4acb9a1cc49cc9a1bca9cc4acb9a1cc49cc9a1bca9cc4acb9a1cc49cc9a1bca9cc4acb9a1cc49cc9a1bca9cc4acb9a1cc49cc9a1bca9cc4acb9a1cc49cc9a1bca9cc42c21372c4f972b136b1eea75096124df195e9ef8b9075dd1f0a5dc7d3b6781e70e067d98da19dfb773ce6b53574077aa83c7d7398676868e1d5a3f07fb41999539c46c79ba5d9958f350af5b0823f9eee0e529e6a1cdb494ebc7ce010f473fcfd4ceb81f1bf4dad41dd09dea60ae0e32b43374ecd0fa20ec87ac315b9e1e5726d63cd4eb11c2483e3c2ff730f134783c0d012d2e546cab45af2be7e195deef0546aefeb0c763a475cc71f235004f2f13cf548f676a408b0b15db6ab11eca76c9c3fbeb81912ba77a3d465a0fe5d454e059cfc4d3e4f13405b4b850b1ad161b5c799a7bcdc3fb1b80912ba7d67b8cb41ecaa926e0d9c0c493d4276d1883d849c7d758c44eca95b188ad9aabe6aab96acea979ee026a9ebb809ae75473519a335c47c5e3bd142302065cfaa08cdf1538ae3d99da59087d1fdbe0b509bf8fe198c385fabea1ccca9cc4cc346ed191f762933e91c743cb39662dc672dcb4d76b5316c64dcb319fc820b3ea3c3a661bfbcef46377e4bdd8a44fe4f1d07227b3164ced8cfb83bba2b0c614af11ea609edec5d0ce1cc4a56dd3fa5db01f2a613e914166d57974cc36f6dda9c72e3d4f1e63933e91c743cbddcc5af0b4b3d41fdc138535a6788d5007f3f41e8676e6202e6d9bd6ef81fda0cccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaaccccaacccb2996dec7b538f5d1abfc7d8a44fe4f1d0722fb3163ced2c8ddfdf178535a6788d5007f7f97d0cedcc415cda36addf07fb41999559999559999559999559999559999559999559999559999559999559996533dbd8cf493f76fc7b1c8c4dfa441e0f2dcf61d682a99df1f8fdfd5158638ad70875709fdfcfd0ce1cc4a56dd3fafdb01f94599943cc36f673538f5d9acfc3d8a44fe4f1d0f25c662d78da59ea0f1e88c21a53bc46a883fbfc018676e6202e6d9bd61f80fd5009f3890c32abceaa7312b3eaac3a2731abceaa7312b3eaac3a2731abceaa7312b3eaac3a2731abceaa7312b3eaac3a2731abceaa7312b3ea5c3d3adbd8cf4b3d767b3c7e8fb1499fc8e3a1e579cc5af0b4b3347eff6014d698e235421dccd30719da9983b8b46d5a7f10f6c383e39cf94406993537c686597343999398353794398959734399939835379439895973439993983537943989597343999398353794398959734399939835379439895973439993983537943989597343999398353794398959426ed8d80fa51f3bfe3d3bc6267d228f87968798b5606a677cffcbc35158638ad70875304f1f6668670ee2d2b669fd61d80fcaaccc21661bfbf9e9c72ee6bdd8a44fe4f1d0f27c662d98da19f7078f44618d295e23d4c17dfe08433b731097b64deb8fc07ec81a33eebf5c7ab1e3fb3629468d7bb5be17b8722df85ee8ca75e07b912bd783efc5ae3c017c2f71e589e07ba92baf02dfcb5c7903f85eeecaebc1f70a57ee05df2b5db9077caf72e573e07bb52b0f82ef35ae7c27f85eebca7781ef75ae7c37f85eefcaf780ef0dae7c2ff8dee8caf781ef4daefc1cf0bdd995ef07df5b5cf9b9e07bab2b3f00beb7b9f2f3c0f776577e107cef70e565e07b67c0f72e577e087cef76e587c1f71e573e00bef7baf224f0bdcf952783effdae3c057c1f8032bd7ed0951bc0f721576e04df875d792af83ee2cad3c0f751576e02dfc75c793af83eeeca33c0f709579e09be4fbaf22cf07dca956783efd3ae3c077c9f71e5b9e0fbac2bcf03dfe75c793ef83eefca0bc0f705575e08be2fbaf222f07dc9951783efcbaebc047c5f7165dcbf5f75e5e7838ffa9047c0477dc80bc0477dc80bc1477dc88bc0477dc88bc1477dc84bc04739f652f0518ebd0c7c94632f071fe5d82bc04739f64af0518ebd0a7c9463af061fe5d86bc04739f65af0518ebd0e7c9463af071fe5d81bc04739f646f0518ebd097c94636f061fe5d85bc04739f656f0518ebd0d7c94636f071fe5d83bc04739f64ef0518ebd0b7c9463ef06df45aefc1ef035bbf27bc177b12bbf0f7c97b8f2fbc1b7d495b14fb9d4953f083eeaf73e04be67b8f287c1b7dc953f02be15aefc51f0ad74e58f818fce751f07df6a57fe04f8d6b8f227c1d7e2ca9f02df5a57fe34f85a5df933e02bb8f267c1d7e6ca9f035fd1953f0fbe7657fe02f83a5cf98be0eb74e52f81afcb95bf0cbe6e57fe0af8e89c4d7d8a3d76ed31483a9046d6476d6e09b4857c93a02d7d51bad76a148bb64deb4560a47dd036f68cc59132163c46cbd3c1a019e6152de5be0b75004f3b030f533be3ef429d5e9b8a5e9b1aa1ce33a09d9d0cedcc415cda36ad77426c8e7d8e5ad4bbed2ef7b4a8833a4fba139a3d7796d391b661f3b72dd0961ee6b6d0b6a95fea1983d85d5eec562f36f6c7b4943bbeba80b99b81d96eb737fdedc6c7d73ab72dca298ad30a6d5a0f1aa4d5268c9d734671c85f8775660fd5a57aa4079dbf88dde632ed4b64f73fd7e17dae11eaf404dadf17a5dbfe5e8fa7d763b6fbe43f670d71301c0f710ef4781cb4de0adaf52668d703da511d3cff1598b4ebf67868bd003c748dd3093eba56207ebcce6a19036ebfdfeb0c7093af0b180b01c6d6f419e36b9d82c748ebadc048be6ee0e962d2ccdfd7cb3d7df0bc3cc1ab439fad833a735c5f322d1afefd83eadae36e696ea85df47dfbcf51ba7dfa0406bd702c20027d224fc308f4a276d633f04c8986c603ce0d0e9c3d74bcff8afe4347738056e761e26b2ed08c1af061b936e08ba2e1c31e38d44ac31e38d45ae3c982c32d54df7e95b2cda2a185fe53b70d5e75bafff491b3f79e19ec3fba6fe03852d77bf4489ad40224451f2d93a2a1019abe28dd4996095eac72c933095e27a6cfd3c6d4cef8a437d96bd304af4d8d50a71ede9bccd0ce1cc4a56dd3fae440ec143ba2588b2923d0624a8067ca186b8103dae4c32395dec749911aaf2d7844639bfc3c4fb5411470196c3fe7e0ec7bf660af778d99180ded6cea3ded15addd097674d49eb5ece8a71dedb45d901dcdb41789f6a4664727ed68a41d7db4a38d7674d18e26dad1433b5a684707ed686073541aedb3a37b7634ef52e0fa06b0da6fd4f6ec6847e3ece89b1d6db35755f6db9abd12b157def6aac05e0dd8ab3efbadd28e30d833adbd8ab167687b56b55789f6ead05ecddbab5b3b1bb5d1d826639739ad371bdb626cabb16dc6b61bdb616ca7b15dc6761bdb636cafb17dc6f61bbbdcd833a3d228fab38c5d61ec4a63cf367695b1ab8d5d63ec5a63d719bbded80dc66e347693b19b8ddd62eca0b143c60e1b3b62eca8b17e63c78c1d3776abb1db8cdd1e95eeba3969ec94b1d3c6068c9d317687b1b3516966ccce84d9992f3bd36567b6ec4c969db9b233557666cace44d999273bd36467961e8c4a33427606c88efedbd17e3bba6f47f3ede8fd8ba3d2e8bc1d8d7f59541a6db7a3eb7634dd8e9edbd1723b3a6e47c3ede8b71dedb6a3db7634db8e5edbd16a3b3a6d47a3ede8b31d6db6a3cb7634d98e1ebf3b2a8d0edbd1603bfa6b477bede8ae1dcdb5a3b71f8e4aa3b37634d68ebedad1563bba6a4753ede8a91d2db5a3a37634d48e7edad14e3bba694733ede8a51dadb4a3937634f251637f61ec2f8dfd95b1bf36f637c6fed6d8d78c7dddd8df19fb7b63ff60ec1f8dfd5354cacb6f1afb6763ff62ec5bc6fed5d8bf19fbb6b1ef18fbaeb1ef19fbbeb1c78cfdc0d80f8dfdc8d88f8dfdc4d84f8dfdbbb1ff30f633633f37f60b63bf34f62b63bf36f61b63bf35f6b8b1278cfdced8ef8dfdc1d81f8d3d69eca9686806033b8f3fb9151a4d3f3438d87feacc60f3e040f3a93b4f0ede76e6e4bdcd77df36786bf3c05dfd678f9d1cb81b3ffc7ed75dd154c1e6b3670fdddb7cdbe9a3fdf7340fdc39d83c70acf9f0c09da78f9ec30f7dcd7d68d1f9110f1d3d9a1cecbb354f83f407a30cfa6bf7399a84d95dbe6d8f8f46902747f3a1a6dad135689b3bdbd00cfb95a5abdce6732707069b0bcda7cddf4327cd67fa8fae6dc6f7ce1991cf0d369f1b3c7476b0f9d8d98153cd6d6b71bbbb268fa2117f9c358a0fcd9e3df29647ff0357412cce7d050400", "privateFunctions": [ { "selector": { @@ -37,8 +37,8 @@ exports[`ContractClass creates a contract class from a contract compilation arti "isInternal": false } ], - "id": "0x13d35e4219fbca20acd2fe6e4d4077b2dfd7d61da6262e9fb0c4e60f2f7928e3", + "id": "0x28a461f412b3abe8b3acf86e5c2a93795f3c51c28d714e5caa4b95731c04b32b", "privateFunctionsRoot": "0x2dc1f38d7be98a8e72227d6f8aec393c60db813a1819c9c86b02a00cc18f6687", - "publicBytecodeCommitment": "0x1340525ead90736bb961f723384e234d2a74e81e37f6e1a6959cc750fbb27ec3" + "publicBytecodeCommitment": "0x28cc7729ae5dd5e073ef59889165d4d2120ec3103a75e7eab6081fe82c68b255" }" `; diff --git a/yarn-project/circuits.js/src/structs/__snapshots__/private_call_stack_item.test.ts.snap b/yarn-project/circuits.js/src/structs/__snapshots__/private_call_stack_item.test.ts.snap index 1855459d99ea..9231cada38de 100644 --- a/yarn-project/circuits.js/src/structs/__snapshots__/private_call_stack_item.test.ts.snap +++ b/yarn-project/circuits.js/src/structs/__snapshots__/private_call_stack_item.test.ts.snap @@ -1,5 +1,5 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`PrivateCallStackItem computes empty item hash 1`] = `Fr<0x134b57e317f1554b9c4f547e617338fcc8ff04c6d96a278f1752b26a462c5d25>`; +exports[`PrivateCallStackItem computes empty item hash 1`] = `Fr<0x25dcfe64d56a1575de78bc4474e0093cba37f28a664b81121c38fc89bdf0a8d5>`; -exports[`PrivateCallStackItem computes hash 1`] = `Fr<0x0827f66d5441052dd5a2ce06f346816f02173bd4ed0dc3eb9071e840de06a11d>`; +exports[`PrivateCallStackItem computes hash 1`] = `Fr<0x2d8b2e91dad7ae3d4b6e16eaf280a9f3ef050e42f107c6872c0678b9c574a111>`; diff --git a/yarn-project/circuits.js/src/structs/__snapshots__/private_circuit_public_inputs.test.ts.snap b/yarn-project/circuits.js/src/structs/__snapshots__/private_circuit_public_inputs.test.ts.snap index f99bdd2000a2..431fd56fb63b 100644 --- a/yarn-project/circuits.js/src/structs/__snapshots__/private_circuit_public_inputs.test.ts.snap +++ b/yarn-project/circuits.js/src/structs/__snapshots__/private_circuit_public_inputs.test.ts.snap @@ -1,5 +1,5 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`PrivateCircuitPublicInputs computes empty inputs hash 1`] = `Fr<0x2b5ba01a6b73b68b4f44196e2dea49afd4076333e2dee8eddc9186e080f18201>`; +exports[`PrivateCircuitPublicInputs computes empty inputs hash 1`] = `Fr<0x2745ec62624afeb19b86af3d440db1f8c3432e1d17a074c75cb8f44999fd3fae>`; -exports[`PrivateCircuitPublicInputs hash matches snapshot 1`] = `Fr<0x25f066a8adb3889b9ebf162d7af91352a77200965cbc7900831b745e31342fb4>`; +exports[`PrivateCircuitPublicInputs hash matches snapshot 1`] = `Fr<0x1e6f8641f913ffbb50d7ee1ff9a397611141c91b03bd4a3f7f6d5b12530d31ab>`; diff --git a/yarn-project/circuits.js/src/structs/__snapshots__/public_call_stack_item.test.ts.snap b/yarn-project/circuits.js/src/structs/__snapshots__/public_call_stack_item.test.ts.snap index c7aa3aa0744d..6cbdc272501f 100644 --- a/yarn-project/circuits.js/src/structs/__snapshots__/public_call_stack_item.test.ts.snap +++ b/yarn-project/circuits.js/src/structs/__snapshots__/public_call_stack_item.test.ts.snap @@ -1,7 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`PublicCallStackItem Computes a callstack item hash 1`] = `"0x0f22ddeca80a2c6f455165f1d2d1950c5e1b772bdc312742d1de089b424f0f5f"`; +exports[`PublicCallStackItem Computes a callstack item hash 1`] = `"0x2cd2eb79283cc7c9b22ccfafd6a200f153e8114e3f7d6adf527bfa76db59d26b"`; -exports[`PublicCallStackItem Computes a callstack item request hash 1`] = `"0x02e15f4157b5e2cb0a7ec3dfec18c6812ef16e1da319b364e5a11e337dfca414"`; +exports[`PublicCallStackItem Computes a callstack item request hash 1`] = `"0x0a408fba24eff0b40c9a7d4cb2ff1a8f651fbd7eeaeedc3488b6d2fcfede33e0"`; -exports[`PublicCallStackItem computes hash 1`] = `Fr<0x279f5bc054922565defcae4895f4c782fad47012f36dae267fd9f8d35ab5cc95>`; +exports[`PublicCallStackItem computes hash 1`] = `Fr<0x0eee8784b7a2c079bbd06e177ffd2203c6b4e56a939a11eab95d94c393205eed>`; diff --git a/yarn-project/circuits.js/src/structs/__snapshots__/public_circuit_public_inputs.test.ts.snap b/yarn-project/circuits.js/src/structs/__snapshots__/public_circuit_public_inputs.test.ts.snap index 9c07ecf42ea3..70063814daa6 100644 --- a/yarn-project/circuits.js/src/structs/__snapshots__/public_circuit_public_inputs.test.ts.snap +++ b/yarn-project/circuits.js/src/structs/__snapshots__/public_circuit_public_inputs.test.ts.snap @@ -1,5 +1,5 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`PublicCircuitPublicInputs computes empty item hash 1`] = `Fr<0x083ac560a513d670a7f50f0a3052d42cb9816b7b643e62025b8278652ad637ab>`; +exports[`PublicCircuitPublicInputs computes empty item hash 1`] = `Fr<0x19de99e09b94a6372bc831be78d7107c0eb9e2836a308f37dc47147a5e11bb2c>`; -exports[`PublicCircuitPublicInputs hash matches snapshot 1`] = `Fr<0x26612d7a1afd04b2023d9a766f7c44042ebdfbd606e4b347fd4c201040c53658>`; +exports[`PublicCircuitPublicInputs hash matches snapshot 1`] = `Fr<0x1e2d03a45cfea358f9772703e2973fc915355a827bf8b00a954e0a70cf3a371c>`; diff --git a/yarn-project/circuits.js/src/structs/call_context.ts b/yarn-project/circuits.js/src/structs/call_context.ts index 17438a431a74..9b8723fef817 100644 --- a/yarn-project/circuits.js/src/structs/call_context.ts +++ b/yarn-project/circuits.js/src/structs/call_context.ts @@ -38,10 +38,6 @@ export class CallContext { * Determines whether the call is modifying state. */ public isStaticCall: boolean, - /** - * The start side effect counter for this call context. - */ - public sideEffectCounter: number, ) {} /** @@ -56,7 +52,6 @@ export class CallContext { FunctionSelector.empty(), false, false, - 0, ); } @@ -82,7 +77,6 @@ export class CallContext { fields.functionSelector, fields.isDelegateCall, fields.isStaticCall, - fields.sideEffectCounter, ] as const; } @@ -118,7 +112,6 @@ export class CallContext { reader.readObject(FunctionSelector), reader.readBoolean(), reader.readBoolean(), - reader.readNumber(), ); } @@ -131,7 +124,6 @@ export class CallContext { reader.readObject(FunctionSelector), reader.readBoolean(), reader.readBoolean(), - reader.readU32(), ); } @@ -142,8 +134,7 @@ export class CallContext { callContext.portalContractAddress.equals(this.portalContractAddress) && callContext.functionSelector.equals(this.functionSelector) && callContext.isDelegateCall === this.isDelegateCall && - callContext.isStaticCall === this.isStaticCall && - callContext.sideEffectCounter === this.sideEffectCounter + callContext.isStaticCall === this.isStaticCall ); } } diff --git a/yarn-project/circuits.js/src/structs/private_call_stack_item.ts b/yarn-project/circuits.js/src/structs/private_call_stack_item.ts index d92883b57d81..c6e4d8fac636 100644 --- a/yarn-project/circuits.js/src/structs/private_call_stack_item.ts +++ b/yarn-project/circuits.js/src/structs/private_call_stack_item.ts @@ -114,7 +114,7 @@ export class PrivateCallStackItem { this.hash(), parentCallContext.storageContractAddress, callerContext, - new Fr(this.publicInputs.callContext.sideEffectCounter), + this.publicInputs.startSideEffectCounter, this.publicInputs.endSideEffectCounter, ); } diff --git a/yarn-project/circuits.js/src/structs/public_call_request.ts b/yarn-project/circuits.js/src/structs/public_call_request.ts index 30f4faf8f8b6..b654f647aafa 100644 --- a/yarn-project/circuits.js/src/structs/public_call_request.ts +++ b/yarn-project/circuits.js/src/structs/public_call_request.ts @@ -36,6 +36,10 @@ export class PublicCallRequest { * TODO(#3417): Check if all fields of CallContext are actually needed. */ public parentCallContext: CallContext, + /** + * The side effect counter this call was enqueued at. + */ + public counter: number, /** * Function arguments. */ @@ -52,6 +56,7 @@ export class PublicCallRequest { this.functionData, this.callContext, this.parentCallContext, + this.counter, new Vector(this.args), ); } @@ -68,6 +73,7 @@ export class PublicCallRequest { FunctionData.fromBuffer(reader), CallContext.fromBuffer(reader), CallContext.fromBuffer(reader), + reader.readNumber(), reader.readVector(Fr), ); } @@ -92,6 +98,7 @@ export class PublicCallRequest { fields.functionData, fields.callContext, fields.parentCallContext, + fields.counter, fields.args, ] as const; } @@ -120,7 +127,7 @@ export class PublicCallRequest { item.hash(), this.parentCallContext.storageContractAddress, callerContext, - new Fr(this.callContext.sideEffectCounter), + new Fr(this.counter), Fr.ZERO, ); } @@ -132,4 +139,14 @@ export class PublicCallRequest { getArgsHash() { return computeVarArgsHash(this.args); } + + static cmpByCounterDesc(a: PublicCallRequest, b: PublicCallRequest): -1 | 0 | 1 { + if (a.counter < b.counter) { + return 1; + } else if (a.counter > b.counter) { + return -1; + } else { + return 0; + } + } } diff --git a/yarn-project/circuits.js/src/structs/public_call_stack_item.test.ts b/yarn-project/circuits.js/src/structs/public_call_stack_item.test.ts index a7d87aabb79b..d9ed3e62a1e9 100644 --- a/yarn-project/circuits.js/src/structs/public_call_stack_item.test.ts +++ b/yarn-project/circuits.js/src/structs/public_call_stack_item.test.ts @@ -14,6 +14,14 @@ describe('PublicCallStackItem', () => { expect(res).toEqual(expected); }); + it('serializes to fields and deserializes it back', () => { + const randomInt = Math.floor(Math.random() * 1000); + const expected = makePublicCallStackItem(randomInt); + const fields = expected.toFields(); + const res = PublicCallStackItem.fromFields(fields); + expect(res).toEqual(expected); + }); + it('computes hash', () => { const seed = 9870243; const item = makePublicCallStackItem(seed); diff --git a/yarn-project/circuits.js/src/structs/public_call_stack_item.ts b/yarn-project/circuits.js/src/structs/public_call_stack_item.ts index 5f9f98d2caea..b96d0d65fd3f 100644 --- a/yarn-project/circuits.js/src/structs/public_call_stack_item.ts +++ b/yarn-project/circuits.js/src/structs/public_call_stack_item.ts @@ -1,10 +1,10 @@ import { AztecAddress } from '@aztec/foundation/aztec-address'; import { pedersenHash } from '@aztec/foundation/crypto'; import { Fr } from '@aztec/foundation/fields'; -import { BufferReader, FieldReader, serializeToBuffer } from '@aztec/foundation/serialize'; +import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize'; import { FieldsOf } from '@aztec/foundation/types'; -import { GeneratorIndex } from '../constants.gen.js'; +import { GeneratorIndex, PUBLIC_CALL_STACK_ITEM_LENGTH } from '../constants.gen.js'; import { CallContext } from './call_context.js'; import { CallRequest, CallerContext } from './call_request.js'; import { FunctionData } from './function_data.js'; @@ -118,4 +118,18 @@ export class PublicCallStackItem { // todo: populate side effect counters correctly return new CallRequest(this.hash(), parentCallContext.storageContractAddress, callerContext, Fr.ZERO, Fr.ZERO); } + + /** + * Serializes this call stack item to an array of field elements. + * @returns An array of field elements. + */ + public toFields(): Fr[] { + const fields = serializeToFields(...PublicCallStackItem.getFields(this)); + if (fields.length !== PUBLIC_CALL_STACK_ITEM_LENGTH) { + throw new Error( + `Invalid number of fields for PublicCallStackItem. Expected ${PUBLIC_CALL_STACK_ITEM_LENGTH}, got ${fields.length}`, + ); + } + return fields; + } } diff --git a/yarn-project/circuits.js/src/tests/factories.ts b/yarn-project/circuits.js/src/tests/factories.ts index 75ea5e922ae0..dc88abefd6a5 100644 --- a/yarn-project/circuits.js/src/tests/factories.ts +++ b/yarn-project/circuits.js/src/tests/factories.ts @@ -392,7 +392,6 @@ export function makeCallContext(seed = 0, storageContractAddress = makeAztecAddr makeSelector(seed + 3), false, false, - 0, ); } @@ -518,13 +517,13 @@ export function makePublicCallRequest(seed = 1): PublicCallRequest { functionSelector: makeSelector(seed + 3), isStaticCall: false, isDelegateCall: false, - sideEffectCounter: 0, }); return new PublicCallRequest( makeAztecAddress(seed), new FunctionData(makeSelector(seed + 0x1), false), childCallContext, parentCallContext, + 0, makeTuple(ARGS_LENGTH, fr, seed + 0x10), ); } @@ -851,7 +850,6 @@ export function makePrivateCircuitPublicInputs(seed = 0): PrivateCircuitPublicIn makeSelector(seed + 4), true, true, - 0, ), argsHash: fr(seed + 0x100), returnValues: makeTuple(RETURN_VALUES_LENGTH, fr, seed + 0x200), diff --git a/yarn-project/noir-protocol-circuits-types/src/__snapshots__/index.test.ts.snap b/yarn-project/noir-protocol-circuits-types/src/__snapshots__/index.test.ts.snap index efd43487cae3..90a7cd0f1395 100644 --- a/yarn-project/noir-protocol-circuits-types/src/__snapshots__/index.test.ts.snap +++ b/yarn-project/noir-protocol-circuits-types/src/__snapshots__/index.test.ts.snap @@ -38,19 +38,19 @@ PrivateKernelInnerCircuitPublicInputs { "inHash": Buffer<0x536d98837f2dd165a55d5eeae91485954472d56f246df256bf3cae19352a123c>, "outHash": Buffer<0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71>, "txTreeHeight": Fr<0x0000000000000000000000000000000000000000000000000000000000000001>, - "txsEffectsHash": Buffer<0xd9930573f96732cde19427173b66e90796be2171061c863395bb2dd54161af85>, + "txsEffectsHash": Buffer<0x231048b877a94e0b4bc6e704726a92418ceafb077b8b8040e00321701184f79e>, }, "globalVariables": { "blockNumber": "0x0000000000000000000000000000000000000000000000000000000000000003", "chainId": "0x0000000000000000000000000000000000000000000000000000000000007a69", "coinbase": "0x0000000000000000000000000000000000000000", "feeRecipient": "0x0000000000000000000000000000000000000000000000000000000000000000", - "timestamp": "0x0000000000000000000000000000000000000000000000000000000065f45330", + "timestamp": "0x0000000000000000000000000000000000000000000000000000000065f8a2e7", "version": "0x0000000000000000000000000000000000000000000000000000000000000001", }, "lastArchive": AppendOnlyTreeSnapshot { "nextAvailableLeafIndex": 3, - "root": Fr<0x0d3b9aa21878073ad184798fd398a6e0d5ef3ad7f6417498536c4d0afa55dc8c>, + "root": Fr<0x148453c546aaf6a95d9b74805f869bbdca72e7e29d5a42c341e759a2066484d5>, }, "state": StateReference { "l1ToL2MessageTree": AppendOnlyTreeSnapshot { @@ -60,11 +60,11 @@ PrivateKernelInnerCircuitPublicInputs { "partial": PartialStateReference { "noteHashTree": AppendOnlyTreeSnapshot { "nextAvailableLeafIndex": 384, - "root": Fr<0x3029b724279c5ea7f1ba55e5f788ebad8c384d4470fa844679aadc1c22f8e4a6>, + "root": Fr<0x1afe0d71ce0792cd5978a9079ef3898abd56dabbbdb902a201944977ba4b7e6a>, }, "nullifierTree": AppendOnlyTreeSnapshot { "nextAvailableLeafIndex": 512, - "root": Fr<0x1fccf1d9dea62d5f8f47fdede728ec9ee83a014aaea876382ca253be2e498220>, + "root": Fr<0x09eb99de01179244e6f0d95c463472c956804d0100a34c2518df82616531992d>, }, "publicDataTree": AppendOnlyTreeSnapshot { "nextAvailableLeafIndex": 256, @@ -352,7 +352,7 @@ PrivateKernelInnerCircuitPublicInputs { SideEffectLinkedToNoteHash { "counter": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, "noteHash": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, - "value": Fr<0x04e0065afe5cd141449781dbb77fbe880320e31ddd61678c7830611241f2c413>, + "value": Fr<0x0b6423ff19ac80f60a0e094c1ec8d0137a3e3d1e82d67b2f7905aa2071a80e96>, }, SideEffectLinkedToNoteHash { "counter": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, @@ -1890,8 +1890,8 @@ PrivateKernelTailCircuitPublicInputs { "end": PrivateAccumulatedRevertibleData { "encryptedLogPreimagesLength": Fr<0x0000000000000000000000000000000000000000000000000000000000000138>, "encryptedLogsHash": [ - Fr<0x000000000000000000000000000000001f1c6663105f27cc8111128a8a1de60f>, - Fr<0x0000000000000000000000000000000006b2f841d2a8ba7c5ae633186f2c359a>, + Fr<0x000000000000000000000000000000000d5c7ae797ed1154e39aa99fb2e8a6cf>, + Fr<0x0000000000000000000000000000000066cda2e90cc1bc585a81178d4a2a8075>, ], "newL2ToL1Msgs": [ Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, @@ -1900,7 +1900,7 @@ PrivateKernelTailCircuitPublicInputs { "newNoteHashes": [ SideEffect { "counter": Fr<0x0000000000000000000000000000000000000000000000000000000000000002>, - "value": Fr<0x12e2d142afbbc0a9ecc56160154211092e6a64f038861ec93548c95ae456d457>, + "value": Fr<0x2c1ea05acaed0aa908ba33081e705e205060c2c6d34834729728e866bcf62e77>, }, SideEffect { "counter": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, @@ -2127,12 +2127,12 @@ PrivateKernelTailCircuitPublicInputs { SideEffectLinkedToNoteHash { "counter": Fr<0x0000000000000000000000000000000000000000000000000000000000000001>, "noteHash": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, - "value": Fr<0x1fec8b4d9e3275a8a8a4b98023924244146b78f69919f2963b225967f54a2a22>, + "value": Fr<0x09ebf2b4bf03c6e622bf36ad35379385cbf0f42b00d4b0663393740e4f69a6d0>, }, SideEffectLinkedToNoteHash { "counter": Fr<0x0000000000000000000000000000000000000000000000000000000000000003>, "noteHash": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, - "value": Fr<0x1df6f14dcd6423ffe380dc26fdd437fd88be29559aecefe1601a21ddf4a77089>, + "value": Fr<0x0dcd331d347442319f6fd9ea4d8d9328db937938e5c7eecd2bc5ef4c5f0f9d8b>, }, SideEffectLinkedToNoteHash { "counter": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, @@ -2584,7 +2584,7 @@ PrivateKernelTailCircuitPublicInputs { SideEffectLinkedToNoteHash { "counter": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, "noteHash": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, - "value": Fr<0x24e73437a259f5752d3f4115f312e9f0540020a432a087048038f1d835f08730>, + "value": Fr<0x0c8248e669f713d761188be987bf1f261a9c0f58489b53e106cf92cd9e2d86d9>, }, SideEffectLinkedToNoteHash { "counter": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, diff --git a/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-init.hex b/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-init.hex index 15cba7a875f0..090d8ac18f57 100644 --- a/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-init.hex +++ b/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-init.hex @@ -1 +1 @@ -06e3d385d72effa07bc3c5e86975b1bff708bad3bc7092034734cc630440ca83af9f8c44011d895dbb6b510e21d7aadad3413d7617aab017c45856dda87a1aa94aa51b755f00000000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000106e3d385d72effa07bc3c5e86975b1bff708bad3bc7092034734cc630440ca83af9f8c4401000000000000000000000000000000000000000000000000000000000000000006e3d385d72effa07bc3c5e86975b1bff708bad3bc7092034734cc630440ca830000000000000000000000000000000000000000af9f8c440000000000011d895dbb6b510e21d7aadad3413d7617aab017c45856dda87a1aa94aa51b755f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c1e567b2b27fc008edb9df6834bc8608e2152433fee876680b9ed477e4037ab000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003579f468b2283611cc4d7adfbb93b8a4815d93ac0b1e1d11dace012cf73c7aa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000106e3d385d72effa07bc3c5e86975b1bff708bad3bc7092034734cc630440ca83000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000ed803c4aa36e2c8c39cf6f588fcc44580000000000000000000000000000000017986827df8f5e615c97194c63dc450c00000000000000000000000000000000e3b0c44298fc1c149afbf4c8996fb9240000000000000000000000000000000027ae41e4649b934ca495991b7852b8550000000000000000000000000000000000000000000000000000000000000138000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000000016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000000000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000000800572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f1371c1aa479d7cd2801b0f2203b6889a051b10f7c1195df845cc1985c12039b62db5e1a628fbe61ffbf422a2297dd437b5bd857dc89cc0bfa6d50238277086f42b0b346c71bf33525d169c2bd204e347043bceae18629274928d7a9ff54bb1900fbd7fa48a8befe3389da3c96d4b33f6eb1c15f7360522ca8238a80853ce177800000000000000000000000000000000000000000000000000000000000000022b09ad2b1765e61b2203cd359f9b833c9c611271e5c80df92c35ef522d3731e42706fc59cda1c448173c4a7739dca4fd4325c970e6f035ed9929fd84719533bb0bcd1f91cf7bdd471d0a30c58c4706f3fdab3807a954b8f5b5e3bfec87d001bb06e62084ee7b602fe9abc15632dda3269f56fb0c6e12519a2eb2ec897091919d03c9e2e67178ac638746f068907e6677b4cc7a9592ef234ab6ab518f17efffa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file +0bea087c28b9c0cc6ac62a775e787c1ef6eedb8922943a21925d60c206c76041af9f8c44010d31c80cb184bd8e82c7a6361521240a8303b017579c1e95db58fd9e387b89e300000000000000000000000000000000000000000000000000000000000000007a6900000000000000000000000000000000000000000000000000000000000000010bea087c28b9c0cc6ac62a775e787c1ef6eedb8922943a21925d60c206c76041af9f8c440100000000000000000000000000000000000000000000000000000000000000000bea087c28b9c0cc6ac62a775e787c1ef6eedb8922943a21925d60c206c760410000000000000000000000000000000000000000af9f8c4400000d31c80cb184bd8e82c7a6361521240a8303b017579c1e95db58fd9e387b89e30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000507a7f2d58da1a328ce8db9cc95e76b3a2f4524bc5aa9ce4c8f988ad5eb4c0d000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003579f468b2283611cc4d7adfbb93b8a4815d93ac0b1e1d11dace012cf73c7aa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010bea087c28b9c0cc6ac62a775e787c1ef6eedb8922943a21925d60c206c760410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000002f15be66dbec8d6e82499a56f41f8b51000000000000000000000000000000003ca5b07d932c444e6bdfffd2f4bb49d300000000000000000000000000000000e3b0c44298fc1c149afbf4c8996fb9240000000000000000000000000000000027ae41e4649b934ca495991b7852b8550000000000000000000000000000000000000000000000000000000000000138000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000000016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000000000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000000800572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f1371c1aa479d7cd2801b0f2203b6889a051b10f7c1195df845cc1985c12039b622490d55a33ad540676933e6c99c8020ea10320e9149499b204a90d3bddd26a10f4cab4e38acf12dbd155f5a4b14b430331ba83f76af41c5081276821b25bb9c02cbbdf700c751ffeb86df8f9885af1875a94a1dc866cdb5a8986475a5e5980d00000000000000000000000000000000000000000000000000000000000000022b09ad2b1765e61b2203cd359f9b833c9c611271e5c80df92c35ef522d3731e42706fc59cda1c448173c4a7739dca4fd4325c970e6f035ed9929fd84719533bb0bcd1f91cf7bdd471d0a30c58c4706f3fdab3807a954b8f5b5e3bfec87d001bb06e62084ee7b602fe9abc15632dda3269f56fb0c6e12519a2eb2ec897091919d03c9e2e67178ac638746f068907e6677b4cc7a9592ef234ab6ab518f17efffa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-inner.hex b/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-inner.hex index 31518fcc162b..19c2dbd5fac9 100644 --- a/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-inner.hex +++ b/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-inner.hex @@ -1 +1 @@ -0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000001000000bd300000bd400000bd500000bd600000bd700000bd800000bd900000bda00000bdb00000bdc00000bdd00000bde00000bdf00000be000000be100000be200000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e0065afe5cd141449781dbb77fbe880320e31ddd61678c7830611241f2c4130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008b58423b046b1777d40586ed6ea026b227d5ffd153f1f3bccd2c0ec70218cff13631088624b91f823073441c8ed048993b802d0671dfab04ab84cc9d7f1702d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d3735899d9fa7162447ca631f0ba2cd500000000000000000000000000000000eb57d0965a756d78291da33072610eb200000000000000000000000000000000d3735899d9fa7162447ca631f0ba2cd500000000000000000000000000000000eb57d0965a756d78291da33072610eb20000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d3b9aa21878073ad184798fd398a6e0d5ef3ad7f6417498536c4d0afa55dc8c000000030000000000000000000000000000000000000000000000000000000000000001d9930573f96732cde19427173b66e90796be2171061c863395bb2dd54161af85536d98837f2dd165a55d5eeae91485954472d56f246df256bf3cae19352a123cdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d711864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000303029b724279c5ea7f1ba55e5f788ebad8c384d4470fa844679aadc1c22f8e4a6000001801fccf1d9dea62d5f8f47fdede728ec9ee83a014aaea876382ca253be2e498220000002000572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b000001000000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000065f453300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000101000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f0000000021842ee41ef3cc9d5d71d59b309c0febb52769432acc5a8a927575f39adc12b40780372c406e0a7059819b2d54c99d70e316d87cc167022760d9e8c074a4f7b00fcab17dfc11270aa421d3885e7ddee474511703faa0e61c0c462b64438bdb5229a69cbac24ea87dd9d0bdcf9af3ee863ee30d764fe88c3acfc3643ef42247030906bca10113631088624b91f823073441c8ed048993b802d0671dfab04ab84cc9d7f1702d29a69cbac24ea87dd9d0bdcf9af3ee863ee30d764fe88c3acfc3643ef422470300000000000000000000000000000000000000000906bca1000000000003173812cb2d7243dc1f635ed13d44b8e073ca8d9471192fa4b324986ebe9595100000000000000000000000000000000000000000000000000000000000007a6a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000e3b0c44298fc1c149afbf4c8996fb9240000000000000000000000000000000027ae41e4649b934ca495991b7852b85500000000000000000000000000000000e3b0c44298fc1c149afbf4c8996fb9240000000000000000000000000000000027ae41e4649b934ca495991b7852b855000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040d3b9aa21878073ad184798fd398a6e0d5ef3ad7f6417498536c4d0afa55dc8c000000030000000000000000000000000000000000000000000000000000000000000001d9930573f96732cde19427173b66e90796be2171061c863395bb2dd54161af85536d98837f2dd165a55d5eeae91485954472d56f246df256bf3cae19352a123cdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d711864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000303029b724279c5ea7f1ba55e5f788ebad8c384d4470fa844679aadc1c22f8e4a6000001801fccf1d9dea62d5f8f47fdede728ec9ee83a014aaea876382ca253be2e498220000002000572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b000001000000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000065f45330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f1206bd4ea8b05184c189fb035fd34a62f1b0bff732fe4bf0f2b0a1b75330c6f5032c29bc2355f5f918020cd7b85e3d0e1d342e10b88aa517d81f0fcd7a70eb5727b1d0839a5b23baf12a8d195b18ac288fcf401afb2f70b8a4b529ede5fa9fed0e25536ea3176294ec3eb805655f2b462425906f27100ed37421ccff5ae8995200000000000000000000000000000000000000000000000000000000000000001e53e2a4a2ea07593ada9539cab59e6f37d7a01d7d402c51c3d2eb337a960dec006328febf3e7b2ff8d83c9f4f899571298aa72648945851ab77b1d7c6ee7e9e0bcd1f91cf7bdd471d0a30c58c4706f3fdab3807a954b8f5b5e3bfec87d001bb06e62084ee7b602fe9abc15632dda3269f56fb0c6e12519a2eb2ec897091919d03c9e2e67178ac638746f068907e6677b4cc7a9592ef234ab6ab518f17efffa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file +0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000001000000bd300000bd400000bd500000bd600000bd700000bd800000bd900000bda00000bdb00000bdc00000bdd00000bde00000bdf00000be000000be100000be20000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b6423ff19ac80f60a0e094c1ec8d0137a3e3d1e82d67b2f7905aa2071a80e960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030282eef9fbbbea54bbed7bfc83caea5015827794e3039ae0765d9bb0c39176727a040aa7c62cb2d113bb104479d315717387c80e84dec49f1319aece217a7b600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d3735899d9fa7162447ca631f0ba2cd500000000000000000000000000000000eb57d0965a756d78291da33072610eb200000000000000000000000000000000d3735899d9fa7162447ca631f0ba2cd500000000000000000000000000000000eb57d0965a756d78291da33072610eb2000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000148453c546aaf6a95d9b74805f869bbdca72e7e29d5a42c341e759a2066484d5000000030000000000000000000000000000000000000000000000000000000000000001231048b877a94e0b4bc6e704726a92418ceafb077b8b8040e00321701184f79e536d98837f2dd165a55d5eeae91485954472d56f246df256bf3cae19352a123cdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d711864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000301afe0d71ce0792cd5978a9079ef3898abd56dabbbdb902a201944977ba4b7e6a0000018009eb99de01179244e6f0d95c463472c956804d0100a34c2518df82616531992d000002000572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b000001000000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000065f8a2e70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000101000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f00000000055c03ef54482116a298d4bdfb42fc2e411793310ab93b17b13f5cc1c50832732f02c344a17058f894fc81bcc78eaba8667700d836da71c22b2c72451c7db7a925da0bb742fd3b34a007ef3fe34315a30f08c3df944a97428782da023a1855901c38a96fd9fda7557636ed3aca2acd1f327f635138a83a8e9fdf3c74e144a1d60906bca10127a040aa7c62cb2d113bb104479d315717387c80e84dec49f1319aece217a7b61c38a96fd9fda7557636ed3aca2acd1f327f635138a83a8e9fdf3c74e144a1d600000000000000000000000000000000000000000906bca10000173812cb2d7243dc1f635ed13d44b8e073ca8d9471192fa4b324986ebe9595100000000000000000000000000000000000000000000000000000000000007a6a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000e3b0c44298fc1c149afbf4c8996fb9240000000000000000000000000000000027ae41e4649b934ca495991b7852b85500000000000000000000000000000000e3b0c44298fc1c149afbf4c8996fb9240000000000000000000000000000000027ae41e4649b934ca495991b7852b85500000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004148453c546aaf6a95d9b74805f869bbdca72e7e29d5a42c341e759a2066484d5000000030000000000000000000000000000000000000000000000000000000000000001231048b877a94e0b4bc6e704726a92418ceafb077b8b8040e00321701184f79e536d98837f2dd165a55d5eeae91485954472d56f246df256bf3cae19352a123cdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d711864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000301afe0d71ce0792cd5978a9079ef3898abd56dabbbdb902a201944977ba4b7e6a0000018009eb99de01179244e6f0d95c463472c956804d0100a34c2518df82616531992d000002000572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b000001000000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000065f8a2e7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f1206bd4ea8b05184c189fb035fd34a62f1b0bff732fe4bf0f2b0a1b75330c6f513f0d5463d4ff0e5f12037268876f06c8e06cad13d77277091e5a4bdd9ad559d27b1d0839a5b23baf12a8d195b18ac288fcf401afb2f70b8a4b529ede5fa9fed1df21e91d3c8cec3f002a35fad93bab748ae0dfe9ece4ef8d729399d72c43afb00000000000000000000000000000000000000000000000000000000000000001e53e2a4a2ea07593ada9539cab59e6f37d7a01d7d402c51c3d2eb337a960dec006328febf3e7b2ff8d83c9f4f899571298aa72648945851ab77b1d7c6ee7e9e0bcd1f91cf7bdd471d0a30c58c4706f3fdab3807a954b8f5b5e3bfec87d001bb06e62084ee7b602fe9abc15632dda3269f56fb0c6e12519a2eb2ec897091919d03c9e2e67178ac638746f068907e6677b4cc7a9592ef234ab6ab518f17efffa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-ordering.hex b/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-ordering.hex index 9b2595b220cf..1d061009fd97 100644 --- a/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-ordering.hex +++ b/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-ordering.hex @@ -1 +1 @@ -0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000001000000bd300000bd400000bd500000bd600000bd700000bd800000bd900000bda00000bdb00000bdc00000bdd00000bde00000bdf00000be000000be100000be20000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000142c985210b2352fec818842b9e29e1775b64babf515d3ad7cda390612a6d4d4000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024e73437a259f5752d3f4115f312e9f0540020a432a087048038f1d835f08730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fec8b4d9e3275a8a8a4b98023924244146b78f69919f2963b225967f54a2a22000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011df6f14dcd6423ffe380dc26fdd437fd88be29559aecefe1601a21ddf4a770890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f1c6663105f27cc8111128a8a1de60f0000000000000000000000000000000006b2f841d2a8ba7c5ae633186f2c359a000000000000000000000000000000001c9ecec90e28d2461650418635878a5c0000000000000000000000000000000091e49f47586ecf75f2b0cbb94e89711200000000000000000000000000000000000000000000000000000000000001380000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000000016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000000000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000000800572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b0000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000101000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f0000000020f7a4d1271d60e00186af1dd51e5d607247514d51e88b02f1993a9b6f4924fd0c6ff7fc626c578192f3ee6d3252acd0301192a356a12a5161260a438d9aa1cf17202d4614b12e4eadde90c9f3b3e2b45f34edf453f00796b4cc8e328ffb3841142c985210b2352fec818842b9e29e1775b64babf515d3ad7cda390612a6d4d40000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024e73437a259f5752d3f4115f312e9f0540020a432a087048038f1d835f08730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fec8b4d9e3275a8a8a4b98023924244146b78f69919f2963b225967f54a2a22000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011df6f14dcd6423ffe380dc26fdd437fd88be29559aecefe1601a21ddf4a7708900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000800000000000000080000000000000008000000000000000800000000000000080000000000000008000000000000000800000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file +0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000001000000bd300000bd400000bd500000bd600000bd700000bd800000bd900000bda00000bdb00000bdc00000bdd00000bde00000bdf00000be000000be100000be2000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e5d4b341e6e3122dc8b77a4463a5034ed41f3027e4527550f28839036742b600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c8248e669f713d761188be987bf1f261a9c0f58489b53e106cf92cd9e2d86d90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009ebf2b4bf03c6e622bf36ad35379385cbf0f42b00d4b0663393740e4f69a6d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010dcd331d347442319f6fd9ea4d8d9328db937938e5c7eecd2bc5ef4c5f0f9d8b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d5c7ae797ed1154e39aa99fb2e8a6cf0000000000000000000000000000000066cda2e90cc1bc585a81178d4a2a8075000000000000000000000000000000001c9ecec90e28d2461650418635878a5c0000000000000000000000000000000091e49f47586ecf75f2b0cbb94e89711200000000000000000000000000000000000000000000000000000000000001380000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000000016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000000000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000000800572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b0000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000101000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000000601d4b38a8138131565d79a608edfe9a561ca76ffb7eafe98e84ef01ca9302309001274262750cdc6c6c6c11b0e14fa351df95410c1b3bccf7c2f145d7ec3890c23b0f9cd3f05b20bd17b6110a3da538b1a9ec47920eab193799c3b6cdcd07a03e5d4b341e6e3122dc8b77a4463a5034ed41f3027e4527550f28839036742b60000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c8248e669f713d761188be987bf1f261a9c0f58489b53e106cf92cd9e2d86d90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009ebf2b4bf03c6e622bf36ad35379385cbf0f42b00d4b0663393740e4f69a6d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010dcd331d347442319f6fd9ea4d8d9328db937938e5c7eecd2bc5ef4c5f0f9d8b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000800000000000000080000000000000008000000000000000800000000000000080000000000000008000000000000000800000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/yarn-project/noir-protocol-circuits-types/src/type_conversion.ts b/yarn-project/noir-protocol-circuits-types/src/type_conversion.ts index 1c165f6b4379..4813a4b678a6 100644 --- a/yarn-project/noir-protocol-circuits-types/src/type_conversion.ts +++ b/yarn-project/noir-protocol-circuits-types/src/type_conversion.ts @@ -425,7 +425,6 @@ export function mapCallContextFromNoir(callContext: CallContextNoir): CallContex mapFunctionSelectorFromNoir(callContext.function_selector), callContext.is_delegate_call, callContext.is_static_call, - mapNumberFromNoir(callContext.side_effect_counter), ); } @@ -442,7 +441,6 @@ export function mapCallContextToNoir(callContext: CallContext): CallContextNoir function_selector: mapFunctionSelectorToNoir(callContext.functionSelector), is_delegate_call: callContext.isDelegateCall, is_static_call: callContext.isStaticCall, - side_effect_counter: mapNumberToNoir(callContext.sideEffectCounter), }; } diff --git a/yarn-project/protocol-contracts/src/gas-token/__snapshots__/index.test.ts.snap b/yarn-project/protocol-contracts/src/gas-token/__snapshots__/index.test.ts.snap index 8107be7d43ce..b83c340c4d44 100644 --- a/yarn-project/protocol-contracts/src/gas-token/__snapshots__/index.test.ts.snap +++ b/yarn-project/protocol-contracts/src/gas-token/__snapshots__/index.test.ts.snap @@ -2,10 +2,10 @@ exports[`GasToken returns canonical protocol contract 1`] = ` { - "address": AztecAddress<0x1d331783f36e24c4c692b4fa48ef8722797087a860641691baa70f4714f59905>, + "address": AztecAddress<0x073adb5a830de901a76ca794308b3a416d854683ccfb30f848cbb1402693b3b8>, "instance": { - "address": AztecAddress<0x1d331783f36e24c4c692b4fa48ef8722797087a860641691baa70f4714f59905>, - "contractClassId": Fr<0x0e4083b228e62201ad0460ca654736a259f51c64a26bf64e7e1fae0b6f0d2301>, + "address": AztecAddress<0x073adb5a830de901a76ca794308b3a416d854683ccfb30f848cbb1402693b3b8>, + "contractClassId": Fr<0x1d3d757848dac39a02316649a052a6390c5147233bbee1bc1d42b2f18af01cab>, "deployer": AztecAddress<0x0000000000000000000000000000000000000000000000000000000000000000>, "initializationHash": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, "portalContractAddress": EthAddress<0x0000000000000000000000000000000000000000>, @@ -19,10 +19,10 @@ exports[`GasToken returns canonical protocol contract 1`] = ` exports[`GasToken returns canonical protocol contract 2`] = ` { "artifactHash": Fr<0x18af4bb0ca6fe07d0ae6da493b2c7b1af038ee904721dbba9b6e571e6d495726>, - "id": Fr<0x0e4083b228e62201ad0460ca654736a259f51c64a26bf64e7e1fae0b6f0d2301>, + "id": Fr<0x1d3d757848dac39a02316649a052a6390c5147233bbee1bc1d42b2f18af01cab>, "privateFunctions": [], "privateFunctionsRoot": Fr<0x15d28cad4c0736decea8997cb324cf0a0e0602f4d74472cd977bce2c8dd9923f>, - "publicBytecodeCommitment": Fr<0x01cbb57f7449ea71aabbf6b5b69d9d5ab7d82c640c751cf13ce9e850db32a66b>, + "publicBytecodeCommitment": Fr<0x0afa12bbf89960c8164a43b021b243e155d3806704651720a90555368c10608f>, "version": 1, } `; diff --git a/yarn-project/sequencer-client/src/sequencer/public_processor.test.ts b/yarn-project/sequencer-client/src/sequencer/public_processor.test.ts index 9cd28abe36a7..1db41712fe3e 100644 --- a/yarn-project/sequencer-client/src/sequencer/public_processor.test.ts +++ b/yarn-project/sequencer-client/src/sequencer/public_processor.test.ts @@ -28,11 +28,14 @@ import { PublicAccumulatedNonRevertibleData, PublicAccumulatedRevertibleData, PublicCallRequest, + PublicCallStackItem, + PublicCircuitPublicInputs, PublicKernelCircuitPublicInputs, + RETURN_VALUES_LENGTH, ValidationRequests, makeEmptyProof, } from '@aztec/circuits.js'; -import { computePublicDataTreeLeafSlot } from '@aztec/circuits.js/hash'; +import { computePublicDataTreeLeafSlot, computeVarArgsHash } from '@aztec/circuits.js/hash'; import { fr, makeAztecAddress, @@ -293,9 +296,9 @@ describe('public_processor', () => { baseContractAddressSeed, baseContractAddressSeed, ].map(makePublicCallRequest); - callRequests[0].callContext.sideEffectCounter = 2; - callRequests[1].callContext.sideEffectCounter = 3; - callRequests[2].callContext.sideEffectCounter = 4; + callRequests[0].counter = 2; + callRequests[1].counter = 3; + callRequests[2].counter = 4; const kernelOutput = makePrivateKernelTailCircuitPublicInputs(0x10); kernelOutput.end.unencryptedLogsHash = [Fr.ZERO, Fr.ZERO]; @@ -409,9 +412,9 @@ describe('public_processor', () => { baseContractAddressSeed, baseContractAddressSeed, ].map(makePublicCallRequest); - callRequests[0].callContext.sideEffectCounter = 2; - callRequests[1].callContext.sideEffectCounter = 3; - callRequests[2].callContext.sideEffectCounter = 4; + callRequests[0].counter = 2; + callRequests[1].counter = 3; + callRequests[2].counter = 4; const kernelOutput = makePrivateKernelTailCircuitPublicInputs(0x10); kernelOutput.end.unencryptedLogsHash = [Fr.ZERO, Fr.ZERO]; @@ -513,9 +516,9 @@ describe('public_processor', () => { baseContractAddressSeed, baseContractAddressSeed, ].map(makePublicCallRequest); - callRequests[0].callContext.sideEffectCounter = 2; - callRequests[1].callContext.sideEffectCounter = 3; - callRequests[2].callContext.sideEffectCounter = 4; + callRequests[0].counter = 2; + callRequests[1].counter = 3; + callRequests[2].counter = 4; const kernelOutput = makePrivateKernelTailCircuitPublicInputs(0x10); kernelOutput.end.unencryptedLogsHash = [Fr.ZERO, Fr.ZERO]; @@ -616,9 +619,9 @@ describe('public_processor', () => { baseContractAddressSeed, baseContractAddressSeed, ].map(makePublicCallRequest); - callRequests[0].callContext.sideEffectCounter = 2; - callRequests[1].callContext.sideEffectCounter = 3; - callRequests[2].callContext.sideEffectCounter = 4; + callRequests[0].counter = 2; + callRequests[1].counter = 3; + callRequests[2].counter = 4; const kernelOutput = makePrivateKernelTailCircuitPublicInputs(0x10); @@ -770,7 +773,7 @@ class PublicExecutionResultBuilder { revertReason?: SimulationError; }) { const builder = new PublicExecutionResultBuilder({ - callContext: new CallContext(from, tx.to, EthAddress.ZERO, tx.functionData.selector, false, false, 0), + callContext: new CallContext(from, tx.to, EthAddress.ZERO, tx.functionData.selector, false, false), contractAddress: tx.to, functionData: tx.functionData, args: tx.args, @@ -808,8 +811,21 @@ class PublicExecutionResultBuilder { } build(): PublicExecutionResult { + const publicInputs = PublicCircuitPublicInputs.empty(); + publicInputs.callContext = this._execution.callContext; + publicInputs.argsHash = computeVarArgsHash(this._execution.args); + publicInputs.returnValues = padArrayEnd(this._returnValues, Fr.ZERO, RETURN_VALUES_LENGTH); + publicInputs.reverted = this._reverted; + + const callStackItem = new PublicCallStackItem( + this._execution.contractAddress, + this._execution.functionData, + publicInputs, + false, + ); return { execution: this._execution, + callStackItem, nestedExecutions: this._nestedExecutions, nullifierReadRequests: [], nullifierNonExistentReadRequests: [], diff --git a/yarn-project/simulator/src/acvm/oracle/oracle.ts b/yarn-project/simulator/src/acvm/oracle/oracle.ts index 356691b00ce1..c4bd490a46f8 100644 --- a/yarn-project/simulator/src/acvm/oracle/oracle.ts +++ b/yarn-project/simulator/src/acvm/oracle/oracle.ts @@ -1,14 +1,12 @@ import { MerkleTreeId, UnencryptedL2Log } from '@aztec/circuit-types'; -import { RETURN_VALUES_LENGTH } from '@aztec/circuits.js'; import { EventSelector, FunctionSelector } from '@aztec/foundation/abi'; import { AztecAddress } from '@aztec/foundation/aztec-address'; -import { padArrayEnd } from '@aztec/foundation/collection'; import { Fr, Point } from '@aztec/foundation/fields'; import { createDebugLogger } from '@aztec/foundation/log'; import { ACVMField } from '../acvm_types.js'; import { frToBoolean, frToNumber, fromACVMField } from '../deserialize.js'; -import { toACVMField, toAcvmEnqueuePublicFunctionResult } from '../serialize.js'; +import { toACVMField, toAcvmEnqueuePublicFunctionResult, toAcvmPublicFunctionResult } from '../serialize.js'; import { acvmFieldMessageToString, oracleDebugCallToFormattedStr } from './debug.js'; import { TypedOracle } from './typed_oracle.js'; @@ -325,7 +323,7 @@ export class Oracle { [isStaticCall]: ACVMField[], [isDelegateCall]: ACVMField[], ): Promise { - const returnValues = await this.typedOracle.callPublicFunction( + const callStackItem = await this.typedOracle.callPublicFunction( AztecAddress.fromField(fromACVMField(contractAddress)), FunctionSelector.fromField(fromACVMField(functionSelector)), fromACVMField(argsHash), @@ -333,7 +331,7 @@ export class Oracle { frToBoolean(fromACVMField(isStaticCall)), frToBoolean(fromACVMField(isDelegateCall)), ); - return padArrayEnd(returnValues, Fr.ZERO, RETURN_VALUES_LENGTH).map(toACVMField); + return toAcvmPublicFunctionResult(callStackItem); } async enqueuePublicFunctionCall( diff --git a/yarn-project/simulator/src/acvm/oracle/typed_oracle.ts b/yarn-project/simulator/src/acvm/oracle/typed_oracle.ts index a9f867113914..3c826fbefd5e 100644 --- a/yarn-project/simulator/src/acvm/oracle/typed_oracle.ts +++ b/yarn-project/simulator/src/acvm/oracle/typed_oracle.ts @@ -15,6 +15,7 @@ import { L1_TO_L2_MSG_TREE_HEIGHT, PrivateCallStackItem, PublicCallRequest, + PublicCallStackItem, } from '@aztec/circuits.js'; import { FunctionSelector } from '@aztec/foundation/abi'; import { AztecAddress } from '@aztec/foundation/aztec-address'; @@ -215,7 +216,7 @@ export abstract class TypedOracle { _sideEffectCounter: number, _isStaticCall: boolean, _isDelegateCall: boolean, - ): Promise { + ): Promise { throw new OracleMethodNotAvailableError('callPublicFunction'); } diff --git a/yarn-project/simulator/src/acvm/serialize.ts b/yarn-project/simulator/src/acvm/serialize.ts index c35f16545b1b..f5ed651221e8 100644 --- a/yarn-project/simulator/src/acvm/serialize.ts +++ b/yarn-project/simulator/src/acvm/serialize.ts @@ -1,4 +1,9 @@ -import { ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH, PublicCallRequest } from '@aztec/circuits.js'; +import { + ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH, + PUBLIC_FUNCTION_CALL_RESULT_LENGTH, + PublicCallRequest, + PublicCallStackItem, +} from '@aztec/circuits.js'; import { AztecAddress } from '@aztec/foundation/aztec-address'; import { EthAddress } from '@aztec/foundation/eth-address'; import { Fr } from '@aztec/foundation/fields'; @@ -58,6 +63,7 @@ export function toAcvmEnqueuePublicFunctionResult(item: PublicCallRequest): ACVM ...item.functionData.toFields(), ...item.callContext.toFields(), item.getArgsHash(), + item.counter, ]; if (fields.length !== ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH) { throw new Error( @@ -67,6 +73,29 @@ export function toAcvmEnqueuePublicFunctionResult(item: PublicCallRequest): ACVM return fields.map(toACVMField); } +/** + * Something + */ +export function toAcvmPublicFunctionResult(item: PublicCallStackItem): ACVMField[] { + const fields = [ + item.contractAddress.toField(), + ...item.functionData.toFields(), + ...item.publicInputs.callContext.toFields(), + item.publicInputs.argsHash, + item.publicInputs.startSideEffectCounter, + item.publicInputs.endSideEffectCounter, + ...item.publicInputs.returnValues, + ]; + + if (fields.length !== PUBLIC_FUNCTION_CALL_RESULT_LENGTH) { + throw new Error( + `Invalid length for PublicFunctionResult (got ${fields.length} expected ${PUBLIC_FUNCTION_CALL_RESULT_LENGTH})`, + ); + } + + return fields.map(toACVMField); +} + /** * Inserts a list of ACVM fields to a witness. * @param witnessStartIndex - The index where to start inserting the fields. diff --git a/yarn-project/simulator/src/avm/temporary_executor_migration.ts b/yarn-project/simulator/src/avm/temporary_executor_migration.ts index 6591fe216535..d506b3fefb4b 100644 --- a/yarn-project/simulator/src/avm/temporary_executor_migration.ts +++ b/yarn-project/simulator/src/avm/temporary_executor_migration.ts @@ -5,6 +5,8 @@ import { ContractStorageUpdateRequest, GlobalVariables, L2ToL1Message, + PublicCallStackItem, + PublicCircuitPublicInputs, ReadRequest, SideEffect, SideEffectLinkedToNoteHash, @@ -102,8 +104,17 @@ export function temporaryConvertAvmResults( const startSideEffectCounter = Fr.ZERO; const endSideEffectCounter = Fr.ZERO; + // TODO pass publicInputs + const callStackItem = new PublicCallStackItem( + execution.contractAddress, + execution.functionData, + PublicCircuitPublicInputs.empty(), + false, + ); + return { execution, + callStackItem, nullifierReadRequests, nullifierNonExistentReadRequests, newNoteHashes, diff --git a/yarn-project/simulator/src/client/client_execution_context.ts b/yarn-project/simulator/src/client/client_execution_context.ts index cfb3db3139d5..6b4697e2d00f 100644 --- a/yarn-project/simulator/src/client/client_execution_context.ts +++ b/yarn-project/simulator/src/client/client_execution_context.ts @@ -352,7 +352,6 @@ export class ClientExecutionContext extends ViewDataOracle { const derivedCallContext = await this.deriveCallContext( targetContractAddress, targetArtifact, - sideEffectCounter, isDelegateCall, isStaticCall, ); @@ -413,7 +412,6 @@ export class ClientExecutionContext extends ViewDataOracle { const derivedCallContext = await this.deriveCallContext( targetContractAddress, targetArtifact, - sideEffectCounter, isDelegateCall, isStaticCall, ); @@ -424,6 +422,7 @@ export class ClientExecutionContext extends ViewDataOracle { parentCallContext: this.callContext, functionData: FunctionData.fromAbi(targetArtifact), contractAddress: targetContractAddress, + counter: sideEffectCounter, }); // TODO($846): if enqueued public calls are associated with global @@ -451,7 +450,6 @@ export class ClientExecutionContext extends ViewDataOracle { private async deriveCallContext( targetContractAddress: AztecAddress, targetArtifact: FunctionArtifact, - startSideEffectCounter: number, isDelegateCall = false, isStaticCall = false, ) { @@ -463,7 +461,6 @@ export class ClientExecutionContext extends ViewDataOracle { FunctionSelector.fromNameAndParameters(targetArtifact.name, targetArtifact.parameters), isDelegateCall, isStaticCall, - startSideEffectCounter, ); } diff --git a/yarn-project/simulator/src/client/execution_result.ts b/yarn-project/simulator/src/client/execution_result.ts index 355f4d8abbe8..121aaf17764e 100644 --- a/yarn-project/simulator/src/client/execution_result.ts +++ b/yarn-project/simulator/src/client/execution_result.ts @@ -85,5 +85,5 @@ export function collectEnqueuedPublicFunctionCalls(execResult: ExecutionResult): return [ ...execResult.enqueuedPublicFunctionCalls, ...[...execResult.nestedExecutions].flatMap(collectEnqueuedPublicFunctionCalls), - ].sort((a, b) => b.callContext.sideEffectCounter - a.callContext.sideEffectCounter); + ].sort(PublicCallRequest.cmpByCounterDesc); } diff --git a/yarn-project/simulator/src/client/private_execution.test.ts b/yarn-project/simulator/src/client/private_execution.test.ts index 2abe169627f5..13cfaad0754f 100644 --- a/yarn-project/simulator/src/client/private_execution.test.ts +++ b/yarn-project/simulator/src/client/private_execution.test.ts @@ -799,6 +799,7 @@ describe('Private Execution test suite', () => { contractAddress: childAddress, functionData: functionData, args: [new Fr(42n)], + counter: 1, callContext: CallContext.from({ msgSender: parentAddress, storageContractAddress: childAddress, @@ -806,7 +807,6 @@ describe('Private Execution test suite', () => { functionSelector: childSelector, isDelegateCall: false, isStaticCall: false, - sideEffectCounter: 1, }), parentCallContext: CallContext.from({ msgSender: parentAddress, @@ -815,7 +815,6 @@ describe('Private Execution test suite', () => { functionSelector: FunctionSelector.fromNameAndParameters(parentArtifact.name, parentArtifact.parameters), isDelegateCall: false, isStaticCall: false, - sideEffectCounter: 1, }), }); diff --git a/yarn-project/simulator/src/client/simulator.ts b/yarn-project/simulator/src/client/simulator.ts index 4c1e829c8e63..9335227593cf 100644 --- a/yarn-project/simulator/src/client/simulator.ts +++ b/yarn-project/simulator/src/client/simulator.ts @@ -96,7 +96,6 @@ export class AcirSimulator { FunctionSelector.fromNameAndParameters(entryPointArtifact.name, entryPointArtifact.parameters), false, false, - startSideEffectCounter, ); const context = new ClientExecutionContext( contractAddress, diff --git a/yarn-project/simulator/src/public/avm_executor.test.ts b/yarn-project/simulator/src/public/avm_executor.test.ts index 0954b5fe975f..6fc2fb9c1487 100644 --- a/yarn-project/simulator/src/public/avm_executor.test.ts +++ b/yarn-project/simulator/src/public/avm_executor.test.ts @@ -23,7 +23,6 @@ describe('AVM WitGen and Proof Generation', () => { functionSelector: FunctionSelector.empty(), isDelegateCall: false, isStaticCall: false, - sideEffectCounter: 0, }); const contractAddress = AztecAddress.random(); diff --git a/yarn-project/simulator/src/public/execution.ts b/yarn-project/simulator/src/public/execution.ts index e66a313bbe11..a9f669d2315e 100644 --- a/yarn-project/simulator/src/public/execution.ts +++ b/yarn-project/simulator/src/public/execution.ts @@ -6,6 +6,7 @@ import { Fr, L2ToL1Message, PublicCallRequest, + PublicCallStackItem, PublicDataRead, PublicDataUpdateRequest, ReadRequest, @@ -20,6 +21,8 @@ import { computePublicDataTreeLeafSlot, computePublicDataTreeValue } from '@azte export interface PublicExecutionResult { /** The execution that triggered this result. */ execution: PublicExecution; + /** The call stack item. */ + callStackItem: PublicCallStackItem; /** The return values of the function. */ returnValues: Fr[]; /** The new note hashes to be inserted into the note hashes tree. */ diff --git a/yarn-project/simulator/src/public/executor.ts b/yarn-project/simulator/src/public/executor.ts index f78fe90dc1dc..8b8f7a625a69 100644 --- a/yarn-project/simulator/src/public/executor.ts +++ b/yarn-project/simulator/src/public/executor.ts @@ -1,5 +1,5 @@ import { FunctionL2Logs } from '@aztec/circuit-types'; -import { Fr, GlobalVariables, Header, PublicCircuitPublicInputs } from '@aztec/circuits.js'; +import { Fr, GlobalVariables, Header, PublicCallStackItem, PublicCircuitPublicInputs } from '@aztec/circuits.js'; import { createDebugLogger } from '@aztec/foundation/log'; import { spawn } from 'child_process'; @@ -78,8 +78,16 @@ export async function executePublicFunction( throw new Error('Reverted but no revert reason'); } + const callStackItem = new PublicCallStackItem( + contractAddress, + functionData, + PublicCircuitPublicInputs.empty(), + false, + ); + return { execution, + callStackItem, returnValues: [], newNoteHashes: [], newL2ToL1Messages: [], @@ -103,6 +111,7 @@ export async function executePublicFunction( } const returnWitness = extractReturnWitness(acir, partialWitness); + const publicInputs = PublicCircuitPublicInputs.fromFields(returnWitness); const { returnValues, nullifierReadRequests: nullifierReadRequestsPadded, @@ -112,7 +121,7 @@ export async function executePublicFunction( newNullifiers: newNullifiersPadded, startSideEffectCounter, endSideEffectCounter, - } = PublicCircuitPublicInputs.fromFields(returnWitness); + } = publicInputs; const nullifierReadRequests = nullifierReadRequestsPadded.filter(v => !v.isEmpty()); const nullifierNonExistentReadRequests = nullifierNonExistentReadRequestsPadded.filter(v => !v.isEmpty()); @@ -136,8 +145,11 @@ export async function executePublicFunction( const nestedExecutions = context.getNestedExecutions(); const unencryptedLogs = context.getUnencryptedLogs(); + const callStackItem = new PublicCallStackItem(contractAddress, functionData, publicInputs, false); + return { execution, + callStackItem, newNoteHashes, newL2ToL1Messages, newNullifiers, diff --git a/yarn-project/simulator/src/public/index.test.ts b/yarn-project/simulator/src/public/index.test.ts index 01a2cbe946a3..23ddf32b4ddb 100644 --- a/yarn-project/simulator/src/public/index.test.ts +++ b/yarn-project/simulator/src/public/index.test.ts @@ -109,7 +109,6 @@ describe('ACIR public execution simulator', () => { functionSelector: FunctionSelector.empty(), isDelegateCall: false, isStaticCall: false, - sideEffectCounter: 0, }); publicContracts.getBytecode.mockResolvedValue(Buffer.from(mintArtifact.bytecode, 'base64')); @@ -182,7 +181,6 @@ describe('ACIR public execution simulator', () => { functionSelector: FunctionSelector.empty(), isDelegateCall: false, isStaticCall: false, - sideEffectCounter: 0, }); recipientStorageSlot = computeSlotForMapping(new Fr(6n), recipient); @@ -269,7 +267,6 @@ describe('ACIR public execution simulator', () => { functionSelector: FunctionSelector.empty(), isDelegateCall: false, isStaticCall: false, - sideEffectCounter: 0, }); // eslint-disable-next-line require-await @@ -334,7 +331,6 @@ describe('ACIR public execution simulator', () => { functionSelector: FunctionSelector.empty(), isDelegateCall: false, isStaticCall: false, - sideEffectCounter: 0, }); publicContracts.getBytecode.mockResolvedValue(Buffer.from(shieldArtifact.bytecode, 'base64')); @@ -368,7 +364,6 @@ describe('ACIR public execution simulator', () => { functionSelector: FunctionSelector.empty(), isDelegateCall: false, isStaticCall: false, - sideEffectCounter: 0, }); publicContracts.getBytecode.mockResolvedValue(Buffer.from(createL2ToL1MessagePublicArtifact.bytecode, 'base64')); @@ -398,7 +393,6 @@ describe('ACIR public execution simulator', () => { functionSelector: FunctionSelector.empty(), isDelegateCall: false, isStaticCall: false, - sideEffectCounter: 0, }); publicContracts.getBytecode.mockResolvedValue(Buffer.from(createNullifierPublicArtifact.bytecode, 'base64')); @@ -455,7 +449,6 @@ describe('ACIR public execution simulator', () => { functionSelector: FunctionSelector.empty(), isDelegateCall: false, isStaticCall: false, - sideEffectCounter: 0, }); const computeGlobalVariables = () => @@ -654,7 +647,6 @@ describe('ACIR public execution simulator', () => { functionSelector: FunctionSelector.empty(), isDelegateCall: false, isStaticCall: false, - sideEffectCounter: 0, }); assertGlobalVarsArtifact = TestContractArtifact.functions.find(f => f.name === 'assert_public_global_vars')!; functionData = FunctionData.fromAbi(assertGlobalVarsArtifact); @@ -737,7 +729,6 @@ describe('ACIR public execution simulator', () => { functionSelector: FunctionSelector.empty(), isDelegateCall: false, isStaticCall: false, - sideEffectCounter: 0, }); assertHeaderPublicArtifact = TestContractArtifact.functions.find(f => f.name === 'assert_header_public')!; functionData = FunctionData.fromAbi(assertHeaderPublicArtifact); diff --git a/yarn-project/simulator/src/public/public_execution_context.ts b/yarn-project/simulator/src/public/public_execution_context.ts index dffd03f579a7..7c7693cb6141 100644 --- a/yarn-project/simulator/src/public/public_execution_context.ts +++ b/yarn-project/simulator/src/public/public_execution_context.ts @@ -1,5 +1,12 @@ import { FunctionL2Logs, NullifierMembershipWitness, UnencryptedL2Log } from '@aztec/circuit-types'; -import { CallContext, FunctionData, FunctionSelector, GlobalVariables, Header } from '@aztec/circuits.js'; +import { + CallContext, + FunctionData, + FunctionSelector, + GlobalVariables, + Header, + PublicCallStackItem, +} from '@aztec/circuits.js'; import { AztecAddress } from '@aztec/foundation/aztec-address'; import { EthAddress } from '@aztec/foundation/eth-address'; import { Fr } from '@aztec/foundation/fields'; @@ -29,7 +36,7 @@ export class PublicExecutionContext extends TypedOracle { private readonly header: Header, private readonly globalVariables: GlobalVariables, private readonly packedArgsCache: PackedArgsCache, - private readonly sideEffectCounter: SideEffectCounter, + private sideEffectCounter: SideEffectCounter, private readonly stateDb: PublicStateDB, private readonly contractsDb: PublicContractsDB, private readonly commitmentsDb: CommitmentsDB, @@ -170,7 +177,7 @@ export class PublicExecutionContext extends TypedOracle { sideEffectCounter: number, isStaticCall: boolean, isDelegateCall: boolean, - ) { + ): Promise { isStaticCall = isStaticCall || this.execution.callContext.isStaticCall; const args = this.packedArgsCache.unpack(argsHash); @@ -192,7 +199,6 @@ export class PublicExecutionContext extends TypedOracle { functionSelector, isDelegateCall, isStaticCall, - sideEffectCounter, }); const nestedExecution: PublicExecution = { @@ -207,7 +213,7 @@ export class PublicExecutionContext extends TypedOracle { this.header, this.globalVariables, this.packedArgsCache, - this.sideEffectCounter, + new SideEffectCounter(sideEffectCounter), this.stateDb, this.contractsDb, this.commitmentsDb, @@ -226,10 +232,17 @@ export class PublicExecutionContext extends TypedOracle { ); } + // TODO remove this once public reads/writes are tracked by the context this.nestedExecutions.push(childExecutionResult); this.log(`Returning from nested call: ret=${childExecutionResult.returnValues.join(', ')}`); - return childExecutionResult.returnValues; + // TODO remove this once storage reads/writes are tracked by the context + // this is needed because side effect counters for storage reads/writes are tracked in this class + // calling a public function advances the side effect counter + // we need to update our own counter so that future side effects don't end up overlapping + this.sideEffectCounter = new SideEffectCounter(childExecutionResult.endSideEffectCounter.toNumber() + 1); + + return childExecutionResult.callStackItem; } public async getNullifierMembershipWitness(