From 2c4cb494806ce4a607fdc16af75452898fc2e74d Mon Sep 17 00:00:00 2001 From: Lin Huang Date: Fri, 29 Mar 2024 16:28:12 -0400 Subject: [PATCH 1/9] Provide finality_data for Transition blocks --- libraries/chain/controller.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libraries/chain/controller.cpp b/libraries/chain/controller.cpp index a5ead00337..26408502ad 100644 --- a/libraries/chain/controller.cpp +++ b/libraries/chain/controller.cpp @@ -4301,7 +4301,15 @@ struct controller_impl { } std::optional head_finality_data() const { - return apply_s>(chain_head, [](const block_state_ptr& head) { return head->get_finality_data(); }); + if (fork_db.version_in_use() == fork_database::in_use_t::both) { + // During transition to Savanna, need to fetch the head from fork_db which + // contains Savanna information for finality_data + return fork_db.apply_s>([&](const auto& forkdb) { + return forkdb.head()->get_finality_data(); }); + } else { + // Returns finality_data from chain_head if in Savanna + return apply_s>(chain_head, [](const block_state_ptr& head) { return head->get_finality_data(); }); + } } uint32_t earliest_available_block_num() const { From 753af58dde54ffc78f71897559cfd83cb25d3a5e Mon Sep 17 00:00:00 2001 From: Lin Huang Date: Tue, 2 Apr 2024 21:57:34 -0400 Subject: [PATCH 2/9] Re-implement getting finality_data for Savanna Transition Blocks --- libraries/chain/controller.cpp | 72 ++++++++++++++++++++++++++++++---- 1 file changed, 64 insertions(+), 8 deletions(-) diff --git a/libraries/chain/controller.cpp b/libraries/chain/controller.cpp index 26408502ad..3676eb7ee2 100644 --- a/libraries/chain/controller.cpp +++ b/libraries/chain/controller.cpp @@ -4300,16 +4300,72 @@ struct controller_impl { } } - std::optional head_finality_data() const { - if (fork_db.version_in_use() == fork_database::in_use_t::both) { - // During transition to Savanna, need to fetch the head from fork_db which - // contains Savanna information for finality_data - return fork_db.apply_s>([&](const auto& forkdb) { - return forkdb.head()->get_finality_data(); }); + // This is only used during Savanna transition, which is a one-time occurrance + // and the number of Transition block is small. + // It is OK to calculate from Savanna Genesis block for each Transition block. + std::optional get_transition_block_finality_data(const block_state_legacy_ptr& head) const { + fork_database_legacy_t::branch_t legacy_branch; + block_state_legacy_ptr legacy_root; + fork_db.apply_l([&](const auto& forkdb) { + legacy_root = forkdb.root(); + legacy_branch = forkdb.fetch_branch(head->id()); + }); + + block_state_ptr prev; + auto bitr = legacy_branch.rbegin(); + + // search for the first block having instant_finality_extension + // and create the Savanna Genesis Block + if (legacy_root->header.contains_header_extension(instant_finality_extension::extension_id())) { + prev = block_state::create_if_genesis_block(*legacy_root); } else { - // Returns finality_data from chain_head if in Savanna - return apply_s>(chain_head, [](const block_state_ptr& head) { return head->get_finality_data(); }); + for (; bitr != legacy_branch.rend(); ++bitr) { + if ((*bitr)->header.contains_header_extension(instant_finality_extension::extension_id())) { + prev = block_state::create_if_genesis_block(*(*bitr)); + ++bitr; + break; + } + } + } + + assert(prev); + const bool skip_validate_signee = true; // validated already + + for (; bitr != legacy_branch.rend(); ++bitr) { + auto new_bsp = std::make_shared( + *prev, + (*bitr)->block, + protocol_features.get_protocol_feature_set(), + validator_t{}, skip_validate_signee); + + assert((*bitr)->action_receipt_digests_savanna); + auto digests = *((*bitr)->action_receipt_digests_savanna); + new_bsp->action_mroot = calculate_merkle(std::move(digests)); // required by finality_data + + prev = new_bsp; } + + assert(prev); + return prev->get_finality_data(); + } + + std::optional head_finality_data() const { + return apply>(chain_head, overloaded{ + [&](const block_state_legacy_ptr& head) -> std::optional { + // When in Legacy, if it is during transition to Savana, we need to + // build finality_data for the corresponding Savanna block + if (head->header.contains_header_extension(instant_finality_extension::extension_id())) { + // during transition + return get_transition_block_finality_data(head); + } else { + // pre transition + return {}; + } + }, + [](const block_state_ptr& head) { + // Returns finality_data from chain_head because we are in Savanna + return head->get_finality_data(); + }}); } uint32_t earliest_available_block_num() const { From da5f812b2e2edae3814d8d6cf3d74a3fbd9537cb Mon Sep 17 00:00:00 2001 From: Lin Huang Date: Wed, 3 Apr 2024 08:55:36 -0400 Subject: [PATCH 3/9] Add a comment explaining why both forkdb root and legacy branch are searched for the Savanna Genesis Block --- libraries/chain/controller.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libraries/chain/controller.cpp b/libraries/chain/controller.cpp index 26cc58acbe..f9039f08aa 100644 --- a/libraries/chain/controller.cpp +++ b/libraries/chain/controller.cpp @@ -4330,8 +4330,13 @@ struct controller_impl { block_state_ptr prev; auto bitr = legacy_branch.rbegin(); - // search for the first block having instant_finality_extension - // and create the Savanna Genesis Block + // get_transition_block_finality_data is called by SHiP as a result + // of receiving accepted_block signal. That is before + // the call to log_irreversible where root() is updated. + // Search both root and legacy_branch for the first block having + // instant_finality_extension -- the the Savanna Genesis Block. + // Then start from the Savanna Genesis Block to create corresponding + // Savanna blocks. if (legacy_root->header.contains_header_extension(instant_finality_extension::extension_id())) { prev = block_state::create_if_genesis_block(*legacy_root); } else { From 68148eb9e8869a5663680852ff50f9874e207080 Mon Sep 17 00:00:00 2001 From: Lin Huang Date: Wed, 3 Apr 2024 17:38:42 -0400 Subject: [PATCH 4/9] Cache action_mroot_savanna instead of action_receipt_digests_savanna in block_state_legacy --- libraries/chain/block_state.cpp | 10 +++----- libraries/chain/block_state_legacy.cpp | 2 +- libraries/chain/controller.cpp | 24 ++++++++----------- .../eosio/chain/block_state_legacy.hpp | 4 ++-- 4 files changed, 16 insertions(+), 24 deletions(-) diff --git a/libraries/chain/block_state.cpp b/libraries/chain/block_state.cpp index bae2ea5d43..27af97a9f0 100644 --- a/libraries/chain/block_state.cpp +++ b/libraries/chain/block_state.cpp @@ -55,7 +55,7 @@ block_state::block_state(const block_header_state& bhs, // Used for transition from dpos to Savanna. block_state_ptr block_state::create_if_genesis_block(const block_state_legacy& bsp) { - assert(bsp.action_receipt_digests_savanna); + assert(bsp.action_mroot_savanna); auto result_ptr = std::make_shared(); auto &result = *result_ptr; @@ -87,15 +87,11 @@ block_state_ptr block_state::create_if_genesis_block(const block_state_legacy& b result.pending_qc = pending_quorum_certificate{result.active_finalizer_policy->finalizers.size(), result.active_finalizer_policy->threshold, result.active_finalizer_policy->max_weak_sum_before_weak_final()}; result.valid_qc = {}; // best qc received from the network inside block extension, empty until first savanna proper IF block - // Calculate Merkle tree root in Savanna way so that it is stored in Leaf Node when building block_state. - const auto& digests = *bsp.action_receipt_digests_savanna; - auto action_mroot_svnn = calculate_merkle(digests); - // build leaf_node and validation_tree valid_t::finality_leaf_node_t leaf_node { .block_num = bsp.block_num(), .finality_digest = result.strong_digest, - .action_mroot = action_mroot_svnn + .action_mroot = *bsp.action_mroot_savanna }; // construct valid structure incremental_merkle_tree validation_tree; @@ -108,7 +104,7 @@ block_state_ptr block_state::create_if_genesis_block(const block_state_legacy& b result.validated = bsp.is_valid(); result.pub_keys_recovered = bsp._pub_keys_recovered; result.cached_trxs = bsp._cached_trxs; - result.action_mroot = action_mroot_svnn; + result.action_mroot = *bsp.action_mroot_savanna; result.base_digest = {}; // calculated on demand in get_finality_data() return result_ptr; diff --git a/libraries/chain/block_state_legacy.cpp b/libraries/chain/block_state_legacy.cpp index b9fe1e266a..824cfa8157 100644 --- a/libraries/chain/block_state_legacy.cpp +++ b/libraries/chain/block_state_legacy.cpp @@ -75,7 +75,7 @@ namespace eosio::chain { ,block( std::move(b) ) ,_pub_keys_recovered( true ) // called by produce_block so signature recovery of trxs must have been done ,_cached_trxs( std::move(trx_metas) ) - ,action_receipt_digests_savanna( std::move(action_receipt_digests_savanna) ) + ,action_mroot_savanna( action_receipt_digests_savanna ? calculate_merkle(*action_receipt_digests_savanna) : digest_type {} ) {} block_state_legacy::block_state_legacy(snapshot_detail::snapshot_block_state_legacy_v7&& sbs) diff --git a/libraries/chain/controller.cpp b/libraries/chain/controller.cpp index f9039f08aa..0c73e4fa22 100644 --- a/libraries/chain/controller.cpp +++ b/libraries/chain/controller.cpp @@ -1291,7 +1291,7 @@ struct controller_impl { fc::scoped_exit> e([&]{fork_db.switch_to(fork_database::in_use_t::both);}); apply_block(br, legacy, controller::block_status::complete, trx_meta_cache_lookup{}); // irreversible apply was just done, calculate new_valid here instead of in transition_to_savanna() - assert(legacy->action_receipt_digests_savanna); + assert(legacy->action_mroot_savanna); block_state_ptr prev = forkdb.get_block(legacy->previous(), include_root_t::yes); assert(prev); transition_add_to_savanna_fork_db(forkdb, legacy, bsp, prev); @@ -1305,12 +1305,10 @@ struct controller_impl { const block_state_ptr& prev) { // legacy_branch is from head, all will be validated unless irreversible_mode(), // IRREVERSIBLE applies (validates) blocks when irreversible, new_valid will be done after apply in log_irreversible - assert(read_mode == db_read_mode::IRREVERSIBLE || legacy->action_receipt_digests_savanna); - if (legacy->action_receipt_digests_savanna) { - const auto& digests = *legacy->action_receipt_digests_savanna; - auto action_mroot = calculate_merkle(digests); + assert(read_mode == db_read_mode::IRREVERSIBLE || legacy->action_mroot_savanna); + if (legacy->action_mroot_savanna) { // Create the valid structure for producing - new_bsp->valid = prev->new_valid(*new_bsp, action_mroot, new_bsp->strong_digest); + new_bsp->valid = prev->new_valid(*new_bsp, *legacy->action_mroot_savanna, new_bsp->strong_digest); } forkdb.add(new_bsp, legacy->is_valid() ? mark_valid_t::yes : mark_valid_t::no, ignore_duplicate_t::yes); } @@ -1520,11 +1518,9 @@ struct controller_impl { protocol_features.get_protocol_feature_set(), validator_t{}, skip_validate_signee); // legacy_branch is from head, all should be validated - assert(bspl->action_receipt_digests_savanna); - const auto& digests = *bspl->action_receipt_digests_savanna; - auto action_mroot = calculate_merkle(digests); + assert(bspl->action_mroot_savanna); // Create the valid structure for producing - new_bsp->valid = prev->new_valid(*new_bsp, action_mroot, new_bsp->strong_digest); + new_bsp->valid = prev->new_valid(*new_bsp, *bspl->action_mroot_savanna, new_bsp->strong_digest); prev = new_bsp; } } @@ -3434,7 +3430,8 @@ struct controller_impl { auto& ab = std::get(pending->_block_stage); ab.apply_legacy([&](assembled_block::assembled_block_legacy& abl) { assert(abl.action_receipt_digests_savanna); - bsp->action_receipt_digests_savanna = std::move(*abl.action_receipt_digests_savanna); + const auto& digests = *abl.action_receipt_digests_savanna; + bsp->action_mroot_savanna = calculate_merkle(digests); }); } auto& ab = std::get(pending->_block_stage); @@ -4359,9 +4356,8 @@ struct controller_impl { protocol_features.get_protocol_feature_set(), validator_t{}, skip_validate_signee); - assert((*bitr)->action_receipt_digests_savanna); - auto digests = *((*bitr)->action_receipt_digests_savanna); - new_bsp->action_mroot = calculate_merkle(std::move(digests)); // required by finality_data + assert((*bitr)->action_mroot_savanna); + new_bsp->action_mroot = *((*bitr)->action_mroot_savanna); // required by finality_data prev = new_bsp; } diff --git a/libraries/chain/include/eosio/chain/block_state_legacy.hpp b/libraries/chain/include/eosio/chain/block_state_legacy.hpp index 7b7df646cc..4625b0045d 100644 --- a/libraries/chain/include/eosio/chain/block_state_legacy.hpp +++ b/libraries/chain/include/eosio/chain/block_state_legacy.hpp @@ -85,11 +85,11 @@ namespace eosio::chain { // to be used during Legacy to Savanna transistion where action_mroot // needs to be converted from Legacy merkle to Savanna merkle - std::optional action_receipt_digests_savanna; + std::optional action_mroot_savanna; }; using block_state_legacy_ptr = std::shared_ptr; } /// namespace eosio::chain -FC_REFLECT_DERIVED( eosio::chain::block_state_legacy, (eosio::chain::block_header_state_legacy), (block)(validated)(action_receipt_digests_savanna) ) +FC_REFLECT_DERIVED( eosio::chain::block_state_legacy, (eosio::chain::block_header_state_legacy), (block)(validated)(action_mroot_savanna) ) From 78c6de198a47349a4c80ca87db07032300c0d35e Mon Sep 17 00:00:00 2001 From: Lin Huang Date: Wed, 3 Apr 2024 17:43:16 -0400 Subject: [PATCH 5/9] Correct comments --- libraries/chain/controller.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/chain/controller.cpp b/libraries/chain/controller.cpp index 0c73e4fa22..3a7a2c51c6 100644 --- a/libraries/chain/controller.cpp +++ b/libraries/chain/controller.cpp @@ -4313,8 +4313,8 @@ struct controller_impl { } } - // This is only used during Savanna transition, which is a one-time occurrance - // and the number of Transition block is small. + // This is only used during Savanna transition, which is a one-time occurrence, + // and it is only used by SHiP.. // It is OK to calculate from Savanna Genesis block for each Transition block. std::optional get_transition_block_finality_data(const block_state_legacy_ptr& head) const { fork_database_legacy_t::branch_t legacy_branch; @@ -4331,7 +4331,7 @@ struct controller_impl { // of receiving accepted_block signal. That is before // the call to log_irreversible where root() is updated. // Search both root and legacy_branch for the first block having - // instant_finality_extension -- the the Savanna Genesis Block. + // instant_finality_extension -- the Savanna Genesis Block. // Then start from the Savanna Genesis Block to create corresponding // Savanna blocks. if (legacy_root->header.contains_header_extension(instant_finality_extension::extension_id())) { From 773577b94cd1fd9b122e3929339abdda55e5c929 Mon Sep 17 00:00:00 2001 From: Lin Huang Date: Wed, 3 Apr 2024 21:55:38 -0400 Subject: [PATCH 6/9] update deep-mind.log --- unittests/deep-mind/deep-mind.log | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/unittests/deep-mind/deep-mind.log b/unittests/deep-mind/deep-mind.log index 4df811bbdc..ae0819ecaa 100644 --- a/unittests/deep-mind/deep-mind.log +++ b/unittests/deep-mind/deep-mind.log @@ -29,7 +29,7 @@ DMLOG TRX_OP CREATE onblock ef240e45433c433de4061120632aa06e32ec3e77048abf55c62e DMLOG APPLIED_TRANSACTION 2 ef240e45433c433de4061120632aa06e32ec3e77048abf55c62e0612c22548ed02000000013b3d4b010000000213588be25132b4167ced6df22b5439e376d5a20284190bb94a43e3e801006400000000000000000000000000000000000000000001010000010000000000ea305506d4766d9dbedb630ad9546f583a9809539cf09d38fd1554b4216503113ff4e501000000000000000100000000000000010000000000ea3055010000000000000000000000000000ea30550000000000ea305500000000221acfa4010000000000ea305500000000a8ed323274003b3d4b000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044423079ed372a4dda0bf89c3a594df409eaa8c1535451b7d5ca6a3d7a37691200000000000000000000000000000000ef240e45433c433de4061120632aa06e32ec3e77048abf55c62e0612c22548ed02000000013b3d4b010000000213588be25132b4167ced6df22b5439e376d5a20284190bb94a43e3e80000000000000000 DMLOG RLIMIT_OP STATE UPD {"average_block_net_usage":{"last_ordinal":0,"value_ex":0,"consumed":0},"average_block_cpu_usage":{"last_ordinal":0,"value_ex":0,"consumed":0},"pending_net_usage":0,"pending_cpu_usage":100,"total_net_weight":0,"total_cpu_weight":0,"total_ram_bytes":0,"virtual_net_limit":1048576,"virtual_cpu_limit":200000} DMLOG RLIMIT_OP STATE UPD {"average_block_net_usage":{"last_ordinal":2,"value_ex":0,"consumed":0},"average_block_cpu_usage":{"last_ordinal":2,"value_ex":833334,"consumed":100},"pending_net_usage":0,"pending_cpu_usage":0,"total_net_weight":0,"total_cpu_weight":0,"total_ram_bytes":0,"virtual_net_limit":1049625,"virtual_cpu_limit":200200} -DMLOG ACCEPTED_BLOCK 2 02000000020000000000000000000000010000000000ea3055000100000001000240e54a7b27e042b80a810153bec1dd166eef95fa69f6c9886ae283363bc2add8010001000000015ab65a885a31e441ac485ebd2aeba87bf7ee6e7bcc40bf3a24506ba10100000000000000010000000000ea305502000000010000000000ea305500000000000100000001000240e54a7b27e042b80a810153bec1dd166eef95fa69f6c9886ae283363bc2add80100000000000213588be25132b4167ced6df22b5439e376d5a20284190bb94a43e3e8013b3d4b0000000000ea30550000000000015ab65a885a31e441ac485ebd2aeba87bf7ee6e7bcc40bf3a24506ba1000000000000000000000000000000000000000000000000000000000000000062267e8b11d7d8f28e1f991a4de2b08cf92500861af2795765bdc9263cd6f4cd000000000001000021010ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd0020701fd1d2d6fbca71ad1df5bd09a987d6863f301b93acfc1c34857e4b2f53821a0b4ca8483cf594f845f3f4fc155dbbc98009cb9c7b7b60d449f922dc00abcb0f0000000029807708239aa7de914d3ed61e9009ab2280bfbc50f1d9769f27f8341ef26198000000000001010ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd0001013b3d4b0000000000ea30550000000000015ab65a885a31e441ac485ebd2aeba87bf7ee6e7bcc40bf3a24506ba1000000000000000000000000000000000000000000000000000000000000000062267e8b11d7d8f28e1f991a4de2b08cf92500861af2795765bdc9263cd6f4cd000000000001000021010ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd0020701fd1d2d6fbca71ad1df5bd09a987d6863f301b93acfc1c34857e4b2f53821a0b4ca8483cf594f845f3f4fc155dbbc98009cb9c7b7b60d449f922dc00abcb0f000001010110d8a6645b8237d61a3afd21b78548f9ba8d319c021dc836487afb96a92676c1 +DMLOG ACCEPTED_BLOCK 2 02000000020000000000000000000000010000000000ea3055000100000001000240e54a7b27e042b80a810153bec1dd166eef95fa69f6c9886ae283363bc2add8010001000000015ab65a885a31e441ac485ebd2aeba87bf7ee6e7bcc40bf3a24506ba10100000000000000010000000000ea305502000000010000000000ea305500000000000100000001000240e54a7b27e042b80a810153bec1dd166eef95fa69f6c9886ae283363bc2add80100000000000213588be25132b4167ced6df22b5439e376d5a20284190bb94a43e3e8013b3d4b0000000000ea30550000000000015ab65a885a31e441ac485ebd2aeba87bf7ee6e7bcc40bf3a24506ba1000000000000000000000000000000000000000000000000000000000000000062267e8b11d7d8f28e1f991a4de2b08cf92500861af2795765bdc9263cd6f4cd000000000001000021010ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd0020701fd1d2d6fbca71ad1df5bd09a987d6863f301b93acfc1c34857e4b2f53821a0b4ca8483cf594f845f3f4fc155dbbc98009cb9c7b7b60d449f922dc00abcb0f0000000029807708239aa7de914d3ed61e9009ab2280bfbc50f1d9769f27f8341ef26198000000000001010ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd0001013b3d4b0000000000ea30550000000000015ab65a885a31e441ac485ebd2aeba87bf7ee6e7bcc40bf3a24506ba1000000000000000000000000000000000000000000000000000000000000000062267e8b11d7d8f28e1f991a4de2b08cf92500861af2795765bdc9263cd6f4cd000000000001000021010ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd0020701fd1d2d6fbca71ad1df5bd09a987d6863f301b93acfc1c34857e4b2f53821a0b4ca8483cf594f845f3f4fc155dbbc98009cb9c7b7b60d449f922dc00abcb0f0000010110d8a6645b8237d61a3afd21b78548f9ba8d319c021dc836487afb96a92676c1 DMLOG START_BLOCK 3 DMLOG CREATION_OP ROOT 0 DMLOG RLIMIT_OP ACCOUNT_USAGE UPD {"owner":"eosio","net_usage":{"last_ordinal":1262304002,"value_ex":0,"consumed":0},"cpu_usage":{"last_ordinal":1262304002,"value_ex":1157,"consumed":101},"ram_usage":2724} @@ -137,7 +137,7 @@ DMLOG RLIMIT_OP ACCOUNT_USAGE UPD {"owner":"eosio","net_usage":{"last_ordinal":1 DMLOG APPLIED_TRANSACTION 3 280cc3aadfeaefd2d0684756bc38781ef59daf38a1d6243f34ac6c615b3dc05403000000023b3d4b0100000003c7b6f0c37ffe5e12561dcbf5632e864d5d34c363c41e4c941ff2405c0100d007000010000000000000000080000000000000000001010000010000000000ea305515e0016f47aca153485160c1ed66d8e7e0cc611789e3b37c81ac9c9679aca0ee1a000000000000001a00000000000000010000000000ea30551a0000000000000001010000000000ea30550000000000ea30550000002a9bed3232010000000000ea305500000000a8ed32322018b790108f5e277cf7141dc626a98f7edeb776912278e4cd14a50b763d1d639000000000000000000000280cc3aadfeaefd2d0684756bc38781ef59daf38a1d6243f34ac6c615b3dc05403000000023b3d4b0100000003c7b6f0c37ffe5e12561dcbf5632e864d5d34c363c41e4c941ff2405c0000000000000000 DMLOG RLIMIT_OP STATE UPD {"average_block_net_usage":{"last_ordinal":2,"value_ex":0,"consumed":0},"average_block_cpu_usage":{"last_ordinal":2,"value_ex":833334,"consumed":100},"pending_net_usage":9952,"pending_cpu_usage":48100,"total_net_weight":0,"total_cpu_weight":0,"total_ram_bytes":0,"virtual_net_limit":1049625,"virtual_cpu_limit":200200} DMLOG RLIMIT_OP STATE UPD {"average_block_net_usage":{"last_ordinal":3,"value_ex":82933334,"consumed":9952},"average_block_cpu_usage":{"last_ordinal":3,"value_ex":401659723,"consumed":48101},"pending_net_usage":0,"pending_cpu_usage":0,"total_net_weight":0,"total_cpu_weight":0,"total_ram_bytes":0,"virtual_net_limit":1050675,"virtual_cpu_limit":200400} -DMLOG ACCEPTED_BLOCK 3 03000000030000000200000000000000010000000000ea3055000100000001000240e54a7b27e042b80a810153bec1dd166eef95fa69f6c9886ae283363bc2add80100012d5b1b639d6ae94fcdd0536b224644931573d1ccb2a0c548613cd1feea18888b0200000000000000010000000000ea305503000000010000000000ea305502000000000100000001000240e54a7b27e042b80a810153bec1dd166eef95fa69f6c9886ae283363bc2add801000000000003c7b6f0c37ffe5e12561dcbf5632e864d5d34c363c41e4c941ff2405c023b3d4b0000000000ea305500000000000213588be25132b4167ced6df22b5439e376d5a20284190bb94a43e3e80f70f21e77b7c902392950756201912a2d1f719663cae19edcb4cc1b12fe7bdd82aeb196b752844f91a8052ae8f5e5ff87c0af0c6f0b7b2ebf387fc81062e95f00000000000000204cb0fb597bad84486310c5cd290d8c20b23b1b8c968404eabcc6c8b381cc6ed47da83963564b00fb712ee06740861ba3d4615809027275066cf05bbff785fa150000000029807708239aa7de914d3ed61e9009ab2280bfbc50f1d9769f27f8341ef26198000000000001010ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd0001023b3d4b0000000000ea305500000000000213588be25132b4167ced6df22b5439e376d5a20284190bb94a43e3e80f70f21e77b7c902392950756201912a2d1f719663cae19edcb4cc1b12fe7bdd82aeb196b752844f91a8052ae8f5e5ff87c0af0c6f0b7b2ebf387fc81062e95f00000000000000204cb0fb597bad84486310c5cd290d8c20b23b1b8c968404eabcc6c8b381cc6ed47da83963564b00fb712ee06740861ba3d4615809027275066cf05bbff785fa151800d0070000fb05010100203b7de491b51d3d74624078bc2c5dc4420985f0350afb6923a5585b5621750c9f126d7cff0efeade2068c7b618fc754b2abb5bff8cdb9bd0ecb4432b72ae1ed380100a82f78daed5c7b8c5ce755ff1ef7357b67e3ebc6d94c3609f9e662d0b8a4659bb8eb2575dbbddbc476694b9cca2dfea3b0bbd99d647776bdbb9e1da70e0adead081045158a7894b6405524a4d21424545aa8cacb0d0815a94891fa20414284ff2a025511a245ad54737ee77cf7ceeccb71f09a87545b9e7be77b9cef7ce79cef3cbf71f44fe94f1bf5d03d9f1951f447e343fdf3d87be873f2879efef473830dea77fff59e7bbef7f440d3bfd197d9f57368d1bfa54767949ab11b9736d48cd9b8840f7a0b372ed11f35136cf0436fe80dfac0b80dbc2afa67f84d6306e6063201ad97a8ff9234d00880f033d54c84469e48cd68b03c8b3ea54dd0909531c1fc52d0b0ed95c70e2dae4f3fd29eed5de8b6a767e77a8b8fcdf6daf32a42d7cd6bdd76d9548e51317aeaedd5f5c5d5e9d9f5f576b7a72c9aa273ed73ebed9e4af025c3b4d595e9f9d9deecf4fae2cfb4558d9b09defcf4409f1a2aa7cead3d2e53ebddf6f90b8b40e6426f41a568ba89e04eaf75171f5b5c6e3f4ac8d519393476dbebab17ba73ede9e5c5738bbd75358c9e70f6e155c24ae17d44a6aeaeadaeb7e7f1327f61aedd5d5737a1d3a1f3e1e5d5b9a5b985d9c595e9b5d9eeecb9768ffae9756e8956e29db9475f6918efa23e77a1db6daff4a67b8be7daea00d316339982ed81b579743afff0f4238b2bf3d38be347558696da34d17361b9b778af3a88ef0707693c3db73adf56868958aed36dcfb5097257d61a2280580ef09890d1fac2ec3d6f1c57af61e4a877bdb74a6445ffcd681aa6a60b6bf3e02dda0ed993275414abb8369444511c0f0d594b9f517c8b1e31237624a07ff4371cd123d60e51efd0adb7da86ff63ab8f46725b10ea353d34145aad7434623774b17959a51baaf8d45f568fb8a6c3d9b5b5e5c7d5eb6a07b42a745a7bfdd83d47c727ee7bd39b87fe66539f0854767bbaa9b5dd3093f2d7a9078655417f5be683f4a5c81ecb752737e3f44d5a9f9cccad539d22ee1417cfe76a9c1a9c29b29e53ef1ad64e4faa62e3c4b0a9dbb45007e81ff5e90e663b4d2fe83d39aca9bdf8cdcb2a33ce1e489d4d8d4ac7b5def8415a6e29a755c64d9d66d262f59651832ba175dc6cd2f3ad0a40313352c533b4f3ffd03ada2854d3601718b7043ccf3b757258611fef0076d96d07d2ecce62649cc0127ae5968b8d4e1e38ddc96ecbb17da75c405b74f67c6e4ed034553cd1c92da19207457c3ed70f0c1b0c21ac685a71b19387d4d78c9c75da192c1c776901daf9131d02648088f62d173b2e62184ec68434c5f29bca465367881c84970c54f4d1c22c80549d0a2430a126fe9ede4b742b469a9637a28be0ed843e6191fd00d024d49de6bd366d0a5a6777d2dc74429b0dde36f5df9e6bec7a5859225a9339fce1c9dc60ae39a894d39e26292146a426345d7a93f272c2484b6b9e2e1154e1a0398c01a6a8778011febd839629d7b3d95d34d54c62415e4c31a2584ca6381a31acea26051d200bf4245168a23feb1ca6d5d2043cd2d9e1eda8f8f61f4e43950da9f42744a85e22fae9c3a08b2e5e0021137ecde82da8ded0adb2d78ef257a75be822622d65756a7949d1bae92fd774c0846b1104fa0872b354c43fcee7e5eb2cceaa08c0b2a62194695a9245a3dc961b6c411509c9112f456fcd80799088f838bb54d8415018cf5c23410b00c783082a10f50e84dded3abb44840118013088481f4a76fd881cda17441ad78fc81dfb8288bb7e440eef0b22adeb47e4ee7d4164ecfa1139ba2f884c5c3f22c7f70591cb6a174cf45e9898014c4c05e33982a10750d17ba2a2050223a0592d1118361ae9778cd51be612eb3957aa3975c4aadc4cb9a78eab14d660aa456f43fc36466f357e9ba03728426c01e32d8f870db33cdef01bc66b7ec378b62d9fc883fbd4017a0b8ae4b1fbd44dfc96d1db30bf35e8ad8e193c2eaec645d5b8b01a17f0fa0d5edf1c57b70aee99c7e5f60a97d10a97db2a5c1abc0b8cbbb9dae36baa3d1eacf69809ce8a9118e10581c42db234bd1d1264d57dea2e2107b5fd4035eece6adc1d6459c844b286602bf4adefd3fe7f92f6da533efd522076fd194daed5619535e0fa38f56e78155bff121a57aefcf1b77ee7d73ffde2d44f929380af57ae7cf6db5fc35720b9b9b9f9fca7fff04f3e72cf43c356be5efe95ef50ef43c3817cddfc230c7ef770e22c7c910f12ba05b9544fd1d3d923f6297dccb263414ecb8f8ed693d42f71e55b1f7e71ea3dbcc4339f7cf1c57ff8e047bef6f98d3ed0bfffbddfa0efef1e8e05ea3c3dc8c59e119833c76c4b409205c8de305a8f539ef639d94705e5437ffbf257805a244096e9419a6541802c1cb3ce03719decded17a94fab537bffde13e10c0fc28808402e4494c08c8c5f6fbdba4fd251e4ed2c9de385a0f531979861ee1b8392de34e1fb3137ed844273b365a0ffcb01e3da271b326c3d68ed9861fd6e8643f365ab77ed83be9118f9b5332ecd4313be98791a20538e3c73d013cc6cd451977f198cdfcb8ac931d1fad6b3fec7df4a88d9bb332ecec313be6878d75b2b78c52f891dd415f9ed190a6d7283eb3194e0bf99b27b324fdb2d131046c8ce4ab19389231e8eea0198a568f24ccc8823c7e4064cec5c507d8f58eb3db9a86d1a0a6039d62ed3cbbc37007e32c240f3f2848d65b2e98526010b5769ab010ae038f30f1b0e277b025f8f92fc012a09310635fd260540df077b6d2bce4647f5eea12572b34fae9bc53d4007b414c1f3719351cc2e45a47da98c714f14094031716fa8220d5eabc4ea926751db1ae09479bbacec3d7e6082462fb1461abca25c5157dde4507b51a2086c978c36344650a3d2378e671fa73468757a36d79743d753d30ed296b52d09ec5612f0283b22d4fd91dd44c795b25e102f218997a4c0750d45614c9842289d0ac0145dae9d3e6886dbd0245a283666f5a0cf7652e3b927edb50e84a24f9b8b911f2f6450ad6157d667654f6725c1e13781095c6095c40a756866653a3bc550e555cd032934211daf1045303a7069d09efb9ea4c8ed96760595ee05e97205a1662d29e4bb22a1c7fa6ae9359cfe89cb9c55d2f6881ee71268c99452f700b562d5b1a1523aec20199181db4bb70e1e346d870f3e0d1c79cac96feaa3511197562c7a6be91227a4a1e93f2382d8fb3c29aa3f218ab38045e819050a478bb8c2816e738036dbe496c7b2b734d58365171658c8f34c2d75d5846ebcdc8eced1c6b0d722c138e3564d24cae847bf4581304060ec559728fe871baa9f138454a891e93cda1abf069c8c125c2790976e1d4a6de7960ee4ebf6775c207e6867108142639236748b4227fcf8884fefb560ebe02cf66fa3cdbd4b229614a764ab856bb1ad78840bb706d53ced910b85613ae65c0d8d5ae81718cc54bb2c31a2ca4eaaf98418892b289d978cc2ec8db647f6dac54cd430309821d9c450e083949b2b45f31bbb673bbb9f7b9f5d2f05e4e35e586844ea48239adfc6095dd46019b2246227596a5a3900f24d5c897ec33dbed18927e2e14b3ff4db5b71e8e2b5d9c94ba38f1eb267d5d9c6c93aaa4b4fd7071f6949a44a4060a93c5252b46af76aa9f17f9a8ed38d5a72be161d1b986537d7a40386604cfb395626a99fbd91010518ab173cd9a77ad2db8572bbef6ec575ffbe030ab7ea44c3397c7d43ab6ec7d8b182e223fcef421e535c0d2a77032e9f85b56ebe8815339b682d93966a4d726348cef82e03b431009d0e9a53c06b221840833428f28fca9af13a231231a6e4174461ef38209a000d1b08f682888f2bc15993a2f324be42e6596e6cd88d6f1d0e22c4fa5fdf440fb99b23d19907119c6f957efacdd4fed792a6a1ab27f2015ce672d957a25426f3763619dfd083b3a2f3e074727ad952a33fd4598347de34ddae92d7af1ecdede06fb1ba52dfb22f46243ccbad8b2c957f040763767c99ee6ec2a0ec8cc80ffb1b6c5b5d8d59c5d456f95562cbc8a15bb8c8481bec479f2cb8a83576477103b2134297833766a03e859f16345c3e5014e2ce144f8fbe347e87338f7d17ff9cc37de40bccf5038390595c4d11069b50772d522cd826f2758303e7b993d600b7e247ed49492c8ee0436d4cac3615d2f87d4113d31a3127ecb3a651878d20f7e6058a7a20b8abb3b790492d3493b816202e9da850e1020c1715cd2e19ac0034c1412e8900b3329c7b818a4a038c326b5442e947a482ee11feb6eff967ecc4af4b0a93df57212ab2306e25629e6b054cca1e742d857cce136e90dbd62862e15511a70ca4eeda2a343d6d1c66ba3ad815acb1c45be8e75370825dac2727c717440afb364676ff3ca3de21e7a1b14e6ad2e40eca2bd1db718648f2a151f5d9be326fa1af179c04a964f23407ad373ff00fdbc66e20a9868a6e24b34d070054ab45329e15f30da6e38613b54129f42944b2cca25c1d2568a599fe40cc08a40086639cbca8bf9c04cb15c21c6dd3f90287bec23b44687a34186a6010df5a3dc6e83a6fb395d55ca871ec8e932b4f4dff50d2261b00709d51e2095b84c7b8084d0ecdfa6bf6e593346bcf1a069a6147c3bae9271dabb19d2f18e2ca7f470d0d4db7989efc2d471029d4b6e48579071e69a73cee2097b75459d7711f21379d4fbfd27096e54c49d664487980c1249ee79d2435ea9f20e12d9526d891c083a7af613b97950aaaa2e5ecadeeb7bcb8de5c949d699d0facebc0b03a983cc81613726c1eee85b728274a564f0835229d2eeb4f5cbd2495adaa14e7857b52a5bc14dd007466aba21a8e469a2b7d124d84a934068120dd224649a18a189014d42170dd0049ed95b0cb248f5bedcb868a9703bd0447291c8da1c40b3e93940be207c54a4a6b886bc7b117510e2401155977b7f1545d441506511065af8da8aa8bb2162b13bfbaa8ba8af0e9143fb8248e3fa11b9635f1071d78fc8e17d41a475fd88dcbd2f888c5d3f2247f7059189eb47e4f8be20b27b11752f4caeb188ba072aba84b05b11f5b7c52f0ff7d1fa243badcfa0a68d5cb2cdfa88ed89c5ba180a3b617822313ce4122f650f55db492aa32ac3c5b925e55d591f52c61c4103346f04d4499660a128307e701712259ca6a0686e2bb738620389fe53f74397cc27502417c677740825f24bab6b48755e104ec1521e88c7b8f1ce61d6e6e46052e81dba402e3489b3cf8fa03f5130266727d7127d87f065450042870b65e4efa896783641cea40b386e534211cd496d89d4789ce65d6a7642602ea55261d877e1a00417a5b0469efa6b46c81821b6fe0b6b62899edd12a79ce47a13416de4108f3b1855443db8d34456556e6d69dc1c433585c2a0f0a4bfcf147074c48d4027e4ea1c9132aceea269dcb2cb0ee54c30d0ed0301b22bf0edfa910ba49183f2e21b12d20588700a0d3bcc63b343a374ba98ce0a914bc8ac629a6cad8684a5810d61c3622925253cf062a7b86bcbd8d82585e3b1a0d551445308dce98108b526112af5d4ab6b75779010321fe9dd61c70f725aa32665158d143697eb10a2b01cc41c82e32d92405471e94a3e90612401c97eca45083c25b8268fb4d1d41e0ce8076632174bd2a67fa5ad2106a2649c079c11d2888b9504c57fc69b03ba4896dcfc1037be2c3b66998e24f0e18f983d667203d9e6e771760b4d8c789c4cfcd873c20fe2dfe94e19df97c5a6b314ac09050981a3ac1d5bd9ad0c0195f7337251b13375c94553fa09faf8d9f7de4e6c232e51b0fa5d4d7e93d4cd82c39c1c3a46b84cf2da25da4ffb1217d21d874a0a071c1712754422ac5c05e864ef1b958188092d5f02909091a01ecd43cf46f60724b28fd9aa7b26c6583e41264cea100a706249b344b44b6622b49296b48eeb94c50a30904f218e9b5c4f844a75c8b130982d4c948a59fa211b0a0b858d14ae8b0ae228c9ee0c4228a4b96bb72004210dc270e5d930600b1c3026c54f683635ab00d6fa688af860cb443a244c1583c0389a4a7e01d9bc3728f5641e4c4d3cf524498b2e363ad80cf5b1f9206340d0ab2081149a08de95e7fc098c40c9b084430c670cf840c2c30f80c1001c72a3194cc61aa744850e3d04b1b03d3ab8d9413ec822bd068f000b0550d7b21ea77848e6d0820405be34e44ba3c3bb979b21d294f9a6ac6c324898105f3eef85321bd08c03a944affa37399518f854a264b612a46b78e9665837e93605c7df919d97b17e9c682fbe3dbc5d7dd9d216f910179773b795c36d3596d57b7a3f85d95244a87095c41ae3ab3cbe7a2fd4522e197c1fc80d02f26553a9bb6d92b5975c9529ea3da1226175581e8e9d003afca4be5a223c8d1dd6b1ca4d86d089879b7c07a5515d1e6079e220f730fc4f674e6e99ea7c4a6fcbec5b315b97b3f59eb3ab0923db26f00ea026b3fed1701dc9cabe6d5492748924e97c0ed7882d6435fae7b86830703b4af160f1a12cd9b407799af2ae171cad3c821f620a5c698a59f511d988b0c5f7a8016e3f291dc2ab0777d1456fbf1dd503b80a996be23700e23d231d6c71ef05b7b3011d3bf7fefb062960728e82342d8b6b900cc5e50dbec311c38292e1586a4afa350f91f328e15902d5b4151ce636bcf6509cd8a85526bf902f5e62d5e00b4f7cc58ebdddca313462bd02c9e921b5ca387a6374204d9fd7261057f07f5de10d68ba6d6a8ec28b4a668ed804fecbeb540c5394c5d81d5f712a95e0a70ced28d8eedc5edb8e1a7e478d6bd851c38f7ba51d855e77e73bb7c585403f322b4766db062503831a25811a7bd801efdd8148311e194556f468346b4cab1ae221176535ef4aa65ff6d6eed590ea1a69b4cfc4317b11a74ca76571b9a9bfb6b2295454fcae08e7607b2565b3aaa404a2baab4a4a807d04be9262717acec8035703032e989c159d754a640147f079ae90f81a37d0872a65dff3ac04ce72a710f181af81841c78579d196a20b6ac8184acb2b8936f32c9302e78707dade56f56a20632263d6b825352ba0e16c569cb65eec0578e41c4c1dab154bf387e0dfaa5635b2e17c0a3adc0700c2faa861597e8700e1ffad5e320f5fa3b9b280b2c81e86e0616488598c1f5dbefe7769ac8451714c7a02d898f57d1edb4a36dea1dc96dafe17d65bcf82a3dd99b868e47bf293ef9d5676f19d0f2b401d6f296b53c59956552f441a5e80df39698a53c4dfd83ec68f9e6aab746f596f937291396399eb1dd6d848574f66d44c0587438c5cd2ca9ec036cf37f0b0de3ebb0c8d80d9a1672b079a95dac8b45a2e2f439ee36e2e48b8db192b550550564771bc377292cdb98a735bb4ffca3a5fdf47ccec8e3b4f77ce450ca314cf8d69fe8047a3f22878e20fcdaff19f79e7434a3c746ebefac0dca7bf7dfbc36328542a6edb820b046600432719855c908c5604614532916a51dc32363fdba353d22d40c25b264e141fc88e82de6f851fa0349af1889da620490914b38808c3880440e860248c3c16513f65ae35786fd00d2ec08206309203d9c12f92a808ca6b80254c19100d29401a447c5226ea72f6500697d00197b3be92355e5d713a3238999b16dc1a2646ac606e245d6be134c3ebc8d41b32bcfd0ec6ed1e3c48a97becfd8ffff8cf51750b65c46aa38fcb211ed36e06ddc30edc657387689ea5ae68c04575f54db8239f95583c21d259e3d51a9c80984574c3ab62bd2debfb351fa2b49df5f09d88a559dc9167f25e0247f69659ca9fc9586f82b6ec05f69f5fd9506dfb13c25f8bc593c83898168ef7819edb16790fea93656c29531b92dc3e9b631e7adb35c01e3727499d6e15008d849b3385d64ef9638319907d92dcef6af04245d64f6d8be210d990cdc472248b8432a9797f8f46523e3e668992de55ca7de35d729a1aa53e9b3b8ea53ba3241e5b634cec1ad82dbf229f257908c2c9ec50b0e635956966141f1157268c47b09e0bdc470e7254625ff212e1ae2bd9832f41c702bb4fca25bfb4b4174e61acb79826461243f15364c32fc34462ea121730a88b0635c868d7c0e5c2e0918c13f3ec1ee2049d102d7fe49ea16fc85002be94fc0ae8acafc3b702f455adcf7b5f2e46906e10294915cc077a9785d5d9574627f8904bb8a21f13edb8a7ed9063b20a15ccd22152117b762a0148b24c4e5c5ad7e469696ab344d799b2b4dffd1a6fc93fef49d8fcc2e2eb7e75d6fd5cd2e2fafcecdf6da6e6df6d1f6ba5a7db8d39eebd197f575e95fecb5bbb3bdd5ee34ded7ddca6acf2daeb87317967b8bd38b2bf3ed8b8a7f0c99def9fe2e0d55ed6e77b5ebf07f5b2cae3c5a4d567cacd310ed8a33e0e9bd73b32b0036476db4baacbb0ed8bdd98797a9e111374bfd0bedae9b5b5de97567e77a8aeb00e9eb77e0786e757ef191c7f744efe581e5fcd06b5cee63cfa9f44df21f4350bb47786176e551225777f1dc6cf771b7d47edcbd7fa1bde22163d7b32b1ebe62cd9ae66bddd5deeadceab2f3ff71488969ffff18e132651a3cdac61cb22ce9dd1756da17d70806ed50684aa83eb278b13d3ffdf0e3bdf63ab05cef752fcc097569ee1f349552ff05ee7357f400d00700008101010100204b21f3cba072cc493e70861540df4677b498b0505a8b8e2a346b85a0c2dd2fc4263c4a7d8629026c4eb594ad96fac2bfe5f8ffebb9c841c353920b7b8ec11abc0100d90778da8d563b8f1c4510eedbf7e37cf209d9e60808402496c0dcdaac4e8ece01090112afe83043ef74ed4e6b677a86ee9edd5b3b2121b049888d842c84c0c1456702eb20b036424242c2e00408800c24fe03d53db3f33a58e860b6bbeaebeaeaaaafaab7f55bff9d1a796df0e5798263c37cc89f2fbe657e1eb8c7cb92e0de5f83c1eded95e4fded2d08150faf5ea5237e69f7855db2d3c199e351e5915a339c0b900d4103681849dff5c09daa3818bc34ec5057f319d54036b6c640752cc1617c024a17515d1a6b2f945c2f48a3ab3d09ca0b7dd68ab9d097078d292cd4267e9c39f089a70faea351378c85563b11c8802bf44c383eccc0cf20cd39e55a9d31df4c766ee487eed4f528174e4425baab412ab2fd44400f1dab73046827567402f6ece195a73495139455b44ee4ead4bb1db3594b2a94b929fa51367179f0f4882adc00722dea6c6edb0798d3452a7fd60d858643ed8c2598c8297bf18227220efe2f948148a1851bbb515c72a47ce34cbbeec655133b0106781de0c9aa059f8f41f3200b19833148090c41870e1c465c528b9b73c1c2798a3a57b5c2c0cfe276de28b9f0b90027552b7e6375c085d35a0691f6ac7a7768c39351b2a4eabb54b8e0dba3486d2b597131b1f0b3553ab68cff9c15a9dec3adc83b0327b5764a645b3bbd7c77b2ce294f6a755cf4a278e473d7c1692b91a74e75d083a9b5d828596cb8218364a6175132eb4b782fe61202581d2b906ec926dcee4a2cd2302de6ec9354785ea52d5bd5900bda21ea652849adab4030243b676debdc60af83126d32d91c2d34a85341c20682e6d233ab41b8f02f154e6a05e4e9b897c2b319c990c52e3a859123b533d932bbdf76c276c527c2e4b21ceb4d8cd8aa8bb1b56dac6d90260d1b8db10c036bbaa54063abace4ba8ea2241c3da3f77980ddaa92bd2e7628c7629ab617f54c2527174b05a6ae8a8236da3229af186acd0293fea689c65e7716ccb0eb61a892b5e548eeca2475a55ec7d3d32658c78357533c329d62a2b5eda28a6cb492c93f3758e35524f9ac128236578e11276e742c286468aca330a42cf661ab98b783ebbd58643cafff27cf7b71c4685a678db575669c5f1543c3e0735af70bef07a975ec4a819b769132cbcc6379f1637c36f3278f7c7debe2cb1f7c7eadd434c8feb73fdd3bfaf4956223c0f1fcb4fec587792193fd4fee3cc31edc2956278e5f1fdd7cfc59566c1fbd39fc19d8d14999a138ee42707492b171f5c0afa848c877af9e78c7cb22f570ec3f77fb789951c882be4940930cf4f0d1db6fdc5f16528fe3ddaf0eee2fb324e3d8fb1e057942cd851ffef1fb8fc5fcd920f8af3f2e66c9fcffb84b7ff865b7ce875708c9ff60d8f137aa5a1fa900d00700001001010020742877c36a520b152b1337ea1ecd37b0c98ad07289c32fec392e7eebab9f0ac71f7bc8c718cfa75317b2e15702372a9222c4616783ee7b3f0ec6358f8c328eea00005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed3232201a99a59d87e06e09ec5b028a9cbb7749b4a5ad8819004365d02dc4379a8b72410000d00700001001010020058e23368b919493d6ac61d27f66b829a53893e88ddde857d3b82d913960960d22fa36f397752b98c295e3b31927f740127c0a99e76f8bfeea88f44466b8fbfd00005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed323220ef43112c6543b88db2283a2e077278c315ae2c84719a8b25f25cc88565fbea990000d0070000100101001f43fe868e263d8134cf705aa85e26ce78ebb058edd558865fa3d240f5cb9e50c2389e9c8276eac800b7233a552045b2e79124c97e5156a0649849cc7f5d09eee600005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed3232204a90c00d55454dc5b059055ca213579c6ea856967712a56017487886a4d4cc0f0000d0070000100101001f29e82b08ccf15e2187f29fea11ee3f4974f41b51e45b19f353348d8848b86fb71cadd88630456b7a1c60803c7b402487d41fbf18f0b0a13b4cca1f740447938300005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed323220e0fb64b1085cc5538970158d05a009c24e276fb94e1a0bf6a528b48fbc4ff5260000d0070000100101002047a8b784c3765b5c63ac52e3d8461b80bc2d3e3f62434f8accb277d9f2487cfd3c0728fcd26b5119a11288e5db46bc5b547877e220971609d1cef8cba443340800005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed32322068dcaa34c0517d19666e6b33add67351d8c5f69e999ca1e37931bc410a2974280000d007000010010100203e701fbafd4149bc95b55a6bfc3b78246f5c2668ccc05ed4059a36ceb38f140b31e3b69e15f2579571e5bde39e034947271599c200e540b3949112bef163074c00005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed323220ad9e3d8f650687709fd68f4b90b41f7d825a365b02c23a636cef88ac2ac00c430000d0070000100101001f0cc7352e60f4f8476783d6d1b48766a111c56fee2c1a552e76a75c92bc17de172f994ffc854c09717c904054819ca7a17379ddecaf531c439b35337ba099b81300005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed3232208ba52fe7a3956c5cd3a656a3174b931d3bb2abb45578befc59f283ecd816a4050000d0070000100101002040965063a83be2d53b36c8d7e0775f503c2caa1407e586314562aace52c272fe60659e196413a6c9db4168470bcabb9a5851121c10c7b665f363f6cd4d1e4bda00005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed3232202652f5f96006294109b3dd0bbde63693f55324af452b799ee137a81a905eed250000d0070000100101002074ea7468b2a031c4cd53bf10ec3ac66b0c4b5c8779e045f1ef8d9c7b116be649217ff340107d0163397b99918ee2ce822b66cd6fce7b385af97a04671136e2ee00005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed323220f0af56d2c5a48d60a4a5b5c903edfb7db3a736a94ed589d0b797df33ff9d3e1d0000d007000010010100204dfb21ca5140582379bc026792c16b4cf97827143a4a9cd99ae70b3e6016cd6316bcbb9f1cb1233f12a0bbcd9debafa64724d0459b5c8d3cb67ceddfb2e3962500005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed3232204e7bf348da00a945489b2a681749eb56f5de00b900014e137ddae39f48f69d670000d0070000100101002033446a3a94ade71dff3edb786259679487ab701bbc147490b1d4159fecf545fa22fee0698db16bf616465e5cebb985bfc4d9ed1ec4a55e38997dd4b4bbc427eb00005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed3232204fca8bd82bbd181e714e283f83e1b45d95ca5af40fb89ad3977b653c448f78c20000d0070000100101001f3f67edd35bf731a07f40c638e8812112cd7d1baa39ec7dac4a1b2f0c83ac8bd53689b56dba69a7386e3860a6f8976695ac0bc2b5dacae91080f1d54df2dac0c000005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed323220299dcb6af692324b899b39f16d5a530a33062804e41f09dc97e9f156b44767070000d0070000100101001f1e030564013603d54f9e983b63cd940f8ff09ae038b14813f4021bb0c09ebb640d90cb4f8d57be2809f492a51737b671a5f549d4efa8e7efdaeaa9663c09d1ad00005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed323220c3a6138c5061cf291310887c0b5c71fcaffeab90d5deb50d3b9e687cead450710000d007000010010100205cea642eecf05568ce8c5564e63349eea3b816108914ba2ab5efffbb8ea467265f0b6d474f03ed02a3bf529fd6e55a595cbf8dd1adf4311cb9c51e862f8a535400005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed3232205443fcf88330c586bc0e5f3dee10e7f63c76c00249c87fe4fbf7f38c082006b40000d0070000100101001f4556076cc86e0840bf69664f1ef8fcd4d91abda313d08e7840d24ba45cb429cf12b7d3a1f64250c19d1b975e7b107853beff70ebfc4c27c44f825dc05cdc9cd600005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed323220bcd2a26394b36614fd4894241d3c451ab0f6fd110958c3423073621a70826e990000d0070000100101001f354d903ad0f2c6cc9d9a377d681ffaa00475d1e559e48074b4c8cce3111d5c172903b2f179ad4d736dda4e7d1b6a859baeab9dde5e5e495ce09733ec4650634400005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed323220d528b9f6e9693f45ed277af93474fd473ce7d831dae2180cca35d907bd10cb400000d0070000100101001f1766fa716a828da244c9ce52919b7a19acb38dbd110d1bb0039bb2477c17e4465dceecb8330ed5ee9de1330930dfcfa1a5e8149ce8536a82c0093642adf7328200005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed3232206bcb40a24e49c26d0a60513b6aeb8551d264e4717f306b81a37a5afb3b47cedc0000d00700001001010020488923db1c78fa430a3a9eab75f4ee467c7b9a3d3b4eb3bd08e183c82ef79b9102a4d2a7d1ec79c96b404911ae1b10f579bd82a660011c1ca2b872b30ef7dcac00005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed32322035c2186cc36f7bb4aeaf4487b36e57039ccf45a9136aa856a5d569ecca55ef2b0000d0070000100101001f61ee60b366c2f3623012648000835e6089f9e9594a113acad200ae8a87bd05274acede23160e2e187d9921ea2ff6f37e3bd10ffd624ffceb511455c42f1c9ee200005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed32322063320dd4a58212e4d32d1f58926b73ca33a247326c2a5e9fd39268d2384e011a0000d0070000100101001f184aad2b65730f7485957642fa1688c66e8ece7827ee2e8e01f8bc904cedd8ec5462c12a1e3c6cd41f4a15a350ec8575bb05e9597f4316ff73a4e1066aeab3d500005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed323220fce57d2331667353a0eac6b4209b67b843a7262a848af0a49a6e2fa9f6584eb40000d0070000100101002041c996b52c4bdbbc4fbdaf707dd01e74c46c51ce2c8e10e174e12502cb6be3f23e2d44e8e8802e970bc5ccfc4d056e400c92a56667183c37e0f79fbe77540a0000005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed32322009e86cb0accf8d81c9e85d34bea4b925ae936626d00c984e4691186891f5bc160000d0070000100101001f559c038cf4880a42f0e9fe85898105f1fe00e13f9d332448a6dfc2012ae6f3ee2f868de75894443c82b89a2d1ed3ea14ed8da702d92e4e4c633a40d3dfb5e59400005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed32322018b790108f5e277cf7141dc626a98f7edeb776912278e4cd14a50b763d1d639000000101191071b24a3430c0239b280476120546172b2508ef7afb47c15e388e083a4f05bc33fc52933cab5a0fdef46a0be9daa07d9aa4ad6640bb323e5e18a9fbbf4f8e7399c2de1d0758c131b6011042f2c6f8faec421d0e9a3847965dad85125173f840426224a7798762c8270132a72c311b0d6a163b2f14f8d7861b42bd387f57ecfe1787e60840331224baba2313a1c9e6cc22b7b3bd2c16b551ba5fcc5341d984c7b2b98720102b6ac03e710fe0412cc41dae8cba8523af417a16247acef40ed9bad4384cb73e058cc0e64e6c7280b7796e5ac1c61720485bb87ac34648f028aecc1426e7e3a4f894b7a2f9415bee66f0408406f2167b9e279c055dd2773dd27f7ad371e2990f789dbefebfdc4e20955c8a3ef1e3c82db992637225c1256162d2d34125a5bbdf44d361f3362c90ca357fbc413cdff01c5c10689d60736d208610fb69981cf30459e5331397b5a0642804edd7e23261de1959cd03f04018d6ed922c72ada1bdcd56de655be43d25432b477b44b5172ab0c8dd667969d2980243e0256384d209c0c671e982668314e3c4549f1a8dc7b5f38339bc12a3ded30c0ca385ab2de3f7de9e3236baa35886e08e399d507f9530e69cbfd2f5bb5896239a8435ef39f6d18de0e71fb8cb0e160f9cf493dccab285ffb57f41ad4e6f1af811e1c232443a2544e6c0656daa7345b60bb7c9112988946dfb39e1de1124083024e44b553fc20f5d3c9c60bf4350f2fe1b3cba2fdec43d10d1595212e246008bf3418fe32ad2060422b1378e00b24ac64f4a0d23af2e38b5804c4feb3bfa10475b02c3a1ed1408b033b2a68951dbe46db837a1e3765fe05b8992e06b8f823e8a4f9c14e92f4d95112c85fc80a3c8b4225aad8fcbba5cf00a3a94544009580adaf4b84e89004735690993c35aa9038b0aa7db2d4475045802423959cda01399e98cb35dbb0ff95a4803b4af2fa7b0143609c971be281397fdedeb2415f90d9a798455caa39b8f1c5a760594b7d8b575e30cf2e3a7e828dd9f2f1f4d047ffa53443393cbd0c47556d66376cae3cfbf93e283c3362b352599e0f5467f042ba0c977bb262c10ee28f0c1c33f4530d209d9ce7000cef0d338e85cb52e13a21ec7b12d00de83 +DMLOG ACCEPTED_BLOCK 3 03000000030000000200000000000000010000000000ea3055000100000001000240e54a7b27e042b80a810153bec1dd166eef95fa69f6c9886ae283363bc2add80100012d5b1b639d6ae94fcdd0536b224644931573d1ccb2a0c548613cd1feea18888b0200000000000000010000000000ea305503000000010000000000ea305502000000000100000001000240e54a7b27e042b80a810153bec1dd166eef95fa69f6c9886ae283363bc2add801000000000003c7b6f0c37ffe5e12561dcbf5632e864d5d34c363c41e4c941ff2405c023b3d4b0000000000ea305500000000000213588be25132b4167ced6df22b5439e376d5a20284190bb94a43e3e80f70f21e77b7c902392950756201912a2d1f719663cae19edcb4cc1b12fe7bdd82aeb196b752844f91a8052ae8f5e5ff87c0af0c6f0b7b2ebf387fc81062e95f00000000000000204cb0fb597bad84486310c5cd290d8c20b23b1b8c968404eabcc6c8b381cc6ed47da83963564b00fb712ee06740861ba3d4615809027275066cf05bbff785fa150000000029807708239aa7de914d3ed61e9009ab2280bfbc50f1d9769f27f8341ef26198000000000001010ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd0001023b3d4b0000000000ea305500000000000213588be25132b4167ced6df22b5439e376d5a20284190bb94a43e3e80f70f21e77b7c902392950756201912a2d1f719663cae19edcb4cc1b12fe7bdd82aeb196b752844f91a8052ae8f5e5ff87c0af0c6f0b7b2ebf387fc81062e95f00000000000000204cb0fb597bad84486310c5cd290d8c20b23b1b8c968404eabcc6c8b381cc6ed47da83963564b00fb712ee06740861ba3d4615809027275066cf05bbff785fa151800d0070000fb05010100203b7de491b51d3d74624078bc2c5dc4420985f0350afb6923a5585b5621750c9f126d7cff0efeade2068c7b618fc754b2abb5bff8cdb9bd0ecb4432b72ae1ed380100a82f78daed5c7b8c5ce755ff1ef7357b67e3ebc6d94c3609f9e662d0b8a4659bb8eb2575dbbddbc476694b9cca2dfea3b0bbd99d647776bdbb9e1da70e0adead081045158a7894b6405524a4d21424545aa8cacb0d0815a94891fa20414284ff2a025511a245ad54737ee77cf7ceeccb71f09a87545b9e7be77b9cef7ce79cef3cbf71f44fe94f1bf5d03d9f1951f447e343fdf3d87be873f2879efef473830dea77fff59e7bbef7f440d3bfd197d9f57368d1bfa54767949ab11b9736d48cd9b8840f7a0b372ed11f35136cf0436fe80dfac0b80dbc2afa67f84d6306e6063201ad97a8ff9234d00880f033d54c84469e48cd68b03c8b3ea54dd0909531c1fc52d0b0ed95c70e2dae4f3fd29eed5de8b6a767e77a8b8fcdf6daf32a42d7cd6bdd76d9548e51317aeaedd5f5c5d5e9d9f5f576b7a72c9aa273ed73ebed9e4af025c3b4d595e9f9d9deecf4fae2cfb4558d9b09defcf4409f1a2aa7cead3d2e53ebddf6f90b8b40e6426f41a568ba89e04eaf75171f5b5c6e3f4ac8d519393476dbebab17ba73ede9e5c5738bbd75358c9e70f6e155c24ae17d44a6aeaeadaeb7e7f1327f61aedd5d5737a1d3a1f3e1e5d5b9a5b985d9c595e9b5d9eeecb9768ffae9756e8956e29db9475f6918efa23e77a1db6daff4a67b8be7daea00d316339982ed81b579743afff0f4238b2bf3d38be347558696da34d17361b9b778af3a88ef0707693c3db73adf56868958aed36dcfb5097257d61a2280580ef09890d1fac2ec3d6f1c57af61e4a877bdb74a6445ffcd681aa6a60b6bf3e02dda0ed993275414abb8369444511c0f0d594b9f517c8b1e31237624a07ff4371cd123d60e51efd0adb7da86ff63ab8f46725b10ea353d34145aad7434623774b17959a51baaf8d45f568fb8a6c3d9b5b5e5c7d5eb6a07b42a745a7bfdd83d47c727ee7bd39b87fe66539f0854767bbaa9b5dd3093f2d7a9078655417f5be683f4a5c81ecb752737e3f44d5a9f9cccad539d22ee1417cfe76a9c1a9c29b29e53ef1ad64e4faa62e3c4b0a9dbb45007e81ff5e90e663b4d2fe83d39aca9bdf8cdcb2a33ce1e489d4d8d4ac7b5def8415a6e29a755c64d9d66d262f59651832ba175dc6cd2f3ad0a40313352c533b4f3ffd03ada2854d3601718b7043ccf3b757258611fef0076d96d07d2ecce62649cc0127ae5968b8d4e1e38ddc96ecbb17da75c405b74f67c6e4ed034553cd1c92da19207457c3ed70f0c1b0c21ac685a71b19387d4d78c9c75da192c1c776901daf9131d02648088f62d173b2e62184ec68434c5f29bca465367881c84970c54f4d1c22c80549d0a2430a126fe9ede4b742b469a9637a28be0ed843e6191fd00d024d49de6bd366d0a5a6777d2dc74429b0dde36f5df9e6bec7a5859225a9339fce1c9dc60ae39a894d39e26292146a426345d7a93f272c2484b6b9e2e1154e1a0398c01a6a8778011febd839629d7b3d95d34d54c62415e4c31a2584ca6381a31acea26051d200bf4245168a23feb1ca6d5d2043cd2d9e1eda8f8f61f4e43950da9f42744a85e22fae9c3a08b2e5e0021137ecde82da8ded0adb2d78ef257a75be822622d65756a7949d1bae92fd774c0846b1104fa0872b354c43fcee7e5eb2cceaa08c0b2a62194695a9245a3dc961b6c411509c9112f456fcd80799088f838bb54d8415018cf5c23410b00c783082a10f50e84dded3abb44840118013088481f4a76fd881cda17441ad78fc81dfb8288bb7e440eef0b22adeb47e4ee7d4164ecfa1139ba2f884c5c3f22c7f70591cb6a174cf45e9898014c4c05e33982a10750d17ba2a2050223a0592d1118361ae9778cd51be612eb3957aa3975c4aadc4cb9a78eab14d660aa456f43fc36466f357e9ba03728426c01e32d8f870db33cdef01bc66b7ec378b62d9fc883fbd4017a0b8ae4b1fbd44dfc96d1db30bf35e8ad8e193c2eaec645d5b8b01a17f0fa0d5edf1c57b70aee99c7e5f60a97d10a97db2a5c1abc0b8cbbb9dae36baa3d1eacf69809ce8a9118e10581c42db234bd1d1264d57dea2e2107b5fd4035eece6adc1d6459c844b286602bf4adefd3fe7f92f6da533efd522076fd194daed5619535e0fa38f56e78155bff121a57aefcf1b77ee7d73ffde2d44f929380af57ae7cf6db5fc35720b9b9b9f9fca7fff04f3e72cf43c356be5efe95ef50ef43c3817cddfc230c7ef770e22c7c910f12ba05b9544fd1d3d923f6297dccb263414ecb8f8ed693d42f71e55b1f7e71ea3dbcc4339f7cf1c57ff8e047bef6f98d3ed0bfffbddfa0efef1e8e05ea3c3dc8c59e119833c76c4b409205c8de305a8f539ef639d94705e5437ffbf257805a244096e9419a6541802c1cb3ce03719decded17a94fab537bffde13e10c0fc28808402e4494c08c8c5f6fbdba4fd251e4ed2c9de385a0f531979861ee1b8392de34e1fb3137ed844273b365a0ffcb01e3da271b326c3d68ed9861fd6e8643f365ab77ed83be9118f9b5332ecd4313be98791a20538e3c73d013cc6cd451977f198cdfcb8ac931d1fad6b3fec7df4a88d9bb332ecec313be6878d75b2b78c52f891dd415f9ed190a6d7283eb3194e0bf99b27b324fdb2d131046c8ce4ab19389231e8eea0198a568f24ccc8823c7e4064cec5c507d8f58eb3db9a86d1a0a6039d62ed3cbbc37007e32c240f3f2848d65b2e98526010b5769ab010ae038f30f1b0e277b025f8f92fc012a09310635fd260540df077b6d2bce4647f5eea12572b34fae9bc53d4007b414c1f3719351cc2e45a47da98c714f14094031716fa8220d5eabc4ea926751db1ae09479bbacec3d7e6082462fb1461abca25c5157dde4507b51a2086c978c36344650a3d2378e671fa73468757a36d79743d753d30ed296b52d09ec5612f0283b22d4fd91dd44c795b25e102f218997a4c0750d45614c9842289d0ac0145dae9d3e6886dbd0245a283666f5a0cf7652e3b927edb50e84a24f9b8b911f2f6450ad6157d667654f6725c1e13781095c6095c40a756866653a3bc550e555cd032934211daf1045303a7069d09efb9ea4c8ed96760595ee05e97205a1662d29e4bb22a1c7fa6ae9359cfe89cb9c55d2f6881ee71268c99452f700b562d5b1a1523aec20199181db4bb70e1e346d870f3e0d1c79cac96feaa3511197562c7a6be91227a4a1e93f2382d8fb3c29aa3f218ab38045e819050a478bb8c2816e738036dbe496c7b2b734d58365171658c8f34c2d75d5846ebcdc8eced1c6b0d722c138e3564d24cae847bf4581304060ec559728fe871baa9f138454a891e93cda1abf069c8c125c2790976e1d4a6de7960ee4ebf6775c207e6867108142639236748b4227fcf8884fefb560ebe02cf66fa3cdbd4b229614a764ab856bb1ad78840bb706d53ced910b85613ae65c0d8d5ae81718cc54bb2c31a2ca4eaaf98418892b289d978cc2ec8db647f6dac54cd430309821d9c450e083949b2b45f31bbb673bbb9f7b9f5d2f05e4e35e586844ea48239adfc6095dd46019b2246227596a5a3900f24d5c897ec33dbed18927e2e14b3ff4db5b71e8e2b5d9c94ba38f1eb267d5d9c6c93aaa4b4fd7071f6949a44a4060a93c5252b46af76aa9f17f9a8ed38d5a72be161d1b986537d7a40386604cfb395626a99fbd91010518ab173cd9a77ad2db8572bbef6ec575ffbe030ab7ea44c3397c7d43ab6ec7d8b182e223fcef421e535c0d2a77032e9f85b56ebe8815339b682d93966a4d726348cef82e03b431009d0e9a53c06b221840833428f28fca9af13a231231a6e4174461ef38209a000d1b08f682888f2bc15993a2f324be42e6596e6cd88d6f1d0e22c4fa5fdf440fb99b23d19907119c6f957efacdd4fed792a6a1ab27f2015ce672d957a25426f3763619dfd083b3a2f3e074727ad952a33fd4598347de34ddae92d7af1ecdede06fb1ba52dfb22f46243ccbad8b2c957f040763767c99ee6ec2a0ec8cc80ffb1b6c5b5d8d59c5d456f95562cbc8a15bb8c8481bec479f2cb8a83576477103b2134297833766a03e859f16345c3e5014e2ce144f8fbe347e87338f7d17ff9cc37de40bccf5038390595c4d11069b50772d522cd826f2758303e7b993d600b7e247ed49492c8ee0436d4cac3615d2f87d4113d31a3127ecb3a651878d20f7e6058a7a20b8abb3b790492d3493b816202e9da850e1020c1715cd2e19ac0034c1412e8900b3329c7b818a4a038c326b5442e947a482ee11feb6eff967ecc4af4b0a93df57212ab2306e25629e6b054cca1e742d857cce136e90dbd62862e15511a70ca4eeda2a343d6d1c66ba3ad815acb1c45be8e75370825dac2727c717440afb364676ff3ca3de21e7a1b14e6ad2e40eca2bd1db718648f2a151f5d9be326fa1af179c04a964f23407ad373ff00fdbc66e20a9868a6e24b34d070054ab45329e15f30da6e38613b54129f42944b2cca25c1d2568a599fe40cc08a40086639cbca8bf9c04cb15c21c6dd3f90287bec23b44687a34186a6010df5a3dc6e83a6fb395d55ca871ec8e932b4f4dff50d2261b00709d51e2095b84c7b8084d0ecdfa6bf6e593346bcf1a069a6147c3bae9271dabb19d2f18e2ca7f470d0d4db7989efc2d471029d4b6e48579071e69a73cee2097b75459d7711f21379d4fbfd27096e54c49d664487980c1249ee79d2435ea9f20e12d9526d891c083a7af613b97950aaaa2e5ecadeeb7bcb8de5c949d699d0facebc0b03a983cc81613726c1eee85b728274a564f0835229d2eeb4f5cbd2495adaa14e7857b52a5bc14dd007466aba21a8e469a2b7d124d84a934068120dd224649a18a189014d42170dd0049ed95b0cb248f5bedcb868a9703bd0447291c8da1c40b3e93940be207c54a4a6b886bc7b117510e2401155977b7f1545d441506511065af8da8aa8bb2162b13bfbaa8ba8af0e9143fb8248e3fa11b9635f1071d78fc8e17d41a475fd88dcbd2f888c5d3f2247f7059189eb47e4f8be20b27b11752f4caeb188ba072aba84b05b11f5b7c52f0ff7d1fa243badcfa0a68d5cb2cdfa88ed89c5ba180a3b617822313ce4122f650f55db492aa32ac3c5b925e55d591f52c61c4103346f04d4499660a128307e701712259ca6a0686e2bb738620389fe53f74397cc27502417c677740825f24bab6b48755e104ec1521e88c7b8f1ce61d6e6e46052e81dba402e3489b3cf8fa03f5130266727d7127d87f065450042870b65e4efa896783641cea40b386e534211cd496d89d4789ce65d6a7642602ea55261d877e1a00417a5b0469efa6b46c81821b6fe0b6b62899edd12a79ce47a13416de4108f3b1855443db8d34456556e6d69dc1c433585c2a0f0a4bfcf147074c48d4027e4ea1c9132aceea269dcb2cb0ee54c30d0ed0301b22bf0edfa910ba49183f2e21b12d20588700a0d3bcc63b343a374ba98ce0a914bc8ac629a6cad8684a5810d61c3622925253cf062a7b86bcbd8d82585e3b1a0d551445308dce98108b526112af5d4ab6b75779010321fe9dd61c70f725aa32665158d143697eb10a2b01cc41c82e32d92405471e94a3e90612401c97eca45083c25b8268fb4d1d41e0ce8076632174bd2a67fa5ad2106a2649c079c11d2888b9504c57fc69b03ba4896dcfc1037be2c3b66998e24f0e18f983d667203d9e6e771760b4d8c789c4cfcd873c20fe2dfe94e19df97c5a6b314ac09050981a3ac1d5bd9ad0c0195f7337251b13375c94553fa09faf8d9f7de4e6c232e51b0fa5d4d7e93d4cd82c39c1c3a46b84cf2da25da4ffb1217d21d874a0a071c1712754422ac5c05e864ef1b958188092d5f02909091a01ecd43cf46f60724b28fd9aa7b26c6583e41264cea100a706249b344b44b6622b49296b48eeb94c50a30904f218e9b5c4f844a75c8b130982d4c948a59fa211b0a0b858d14ae8b0ae228c9ee0c4228a4b96bb72004210dc270e5d930600b1c3026c54f683635ab00d6fa688af860cb443a244c1583c0389a4a7e01d9bc3728f5641e4c4d3cf524498b2e363ad80cf5b1f9206340d0ab2081149a08de95e7fc098c40c9b084430c670cf840c2c30f80c1001c72a3194cc61aa744850e3d04b1b03d3ab8d9413ec822bd068f000b0550d7b21ea77848e6d0820405be34e44ba3c3bb979b21d294f9a6ac6c324898105f3eef85321bd08c03a944affa37399518f854a264b612a46b78e9665837e93605c7df919d97b17e9c682fbe3dbc5d7dd9d216f910179773b795c36d3596d57b7a3f85d95244a87095c41ae3ab3cbe7a2fd4522e197c1fc80d02f26553a9bb6d92b5975c9529ea3da1226175581e8e9d003afca4be5a223c8d1dd6b1ca4d86d089879b7c07a5515d1e6079e220f730fc4f674e6e99ea7c4a6fcbec5b315b97b3f59eb3ab0923db26f00ea026b3fed1701dc9cabe6d5492748924e97c0ed7882d6435fae7b86830703b4af160f1a12cd9b407799af2ae171cad3c821f620a5c698a59f511d988b0c5f7a8016e3f291dc2ab0777d1456fbf1dd503b80a996be23700e23d231d6c71ef05b7b3011d3bf7fefb062960728e82342d8b6b900cc5e50dbec311c38292e1586a4afa350f91f328e15902d5b4151ce636bcf6509cd8a85526bf902f5e62d5e00b4f7cc58ebdddca313462bd02c9e921b5ca387a6374204d9fd7261057f07f5de10d68ba6d6a8ec28b4a668ed804fecbeb540c5394c5d81d5f712a95e0a70ced28d8eedc5edb8e1a7e478d6bd851c38f7ba51d855e77e73bb7c585403f322b4766db062503831a25811a7bd801efdd8148311e194556f468346b4cab1ae221176535ef4aa65ff6d6eed590ea1a69b4cfc4317b11a74ca76571b9a9bfb6b2295454fcae08e7607b2565b3aaa404a2baab4a4a807d04be9262717acec8035703032e989c159d754a640147f079ae90f81a37d0872a65dff3ac04ce72a710f181af81841c78579d196a20b6ac8184acb2b8936f32c9302e78707dade56f56a20632263d6b825352ba0e16c569cb65eec0578e41c4c1dab154bf387e0dfaa5635b2e17c0a3adc0700c2faa861597e8700e1ffad5e320f5fa3b9b280b2c81e86e0616488598c1f5dbefe7769ac8451714c7a02d898f57d1edb4a36dea1dc96dafe17d65bcf82a3dd99b868e47bf293ef9d5676f19d0f2b401d6f296b53c59956552f441a5e80df39698a53c4dfd83ec68f9e6aab746f596f937291396399eb1dd6d848574f66d44c0587438c5cd2ca9ec036cf37f0b0de3ebb0c8d80d9a1672b079a95dac8b45a2e2f439ee36e2e48b8db192b550550564771bc377292cdb98a735bb4ffca3a5fdf47ccec8e3b4f77ce450ca314cf8d69fe8047a3f22878e20fcdaff19f79e7434a3c746ebefac0dca7bf7dfbc36328542a6edb820b046600432719855c908c5604614532916a51dc32363fdba353d22d40c25b264e141fc88e82de6f851fa0349af1889da620490914b38808c3880440e860248c3c16513f65ae35786fd00d2ec08206309203d9c12f92a808ca6b80254c19100d29401a447c5226ea72f6500697d00197b3be92355e5d713a3238999b16dc1a2646ac606e245d6be134c3ebc8d41b32bcfd0ec6ed1e3c48a97becfd8ffff8cf51750b65c46aa38fcb211ed36e06ddc30edc657387689ea5ae68c04575f54db8239f95583c21d259e3d51a9c80984574c3ab62bd2debfb351fa2b49df5f09d88a559dc9167f25e0247f69659ca9fc9586f82b6ec05f69f5fd9506dfb13c25f8bc593c83898168ef7819edb16790fea93656c29531b92dc3e9b631e7adb35c01e3727499d6e15008d849b3385d64ef9638319907d92dcef6af04245d64f6d8be210d990cdc472248b8432a9797f8f46523e3e668992de55ca7de35d729a1aa53e9b3b8ea53ba3241e5b634cec1ad82dbf229f257908c2c9ec50b0e635956966141f1157268c47b09e0bdc470e7254625ff212e1ae2bd9832f41c702bb4fca25bfb4b4174e61acb79826461243f15364c32fc34462ea121730a88b0635c868d7c0e5c2e0918c13f3ec1ee2049d102d7fe49ea16fc85002be94fc0ae8acafc3b702f455adcf7b5f2e46906e10294915cc077a9785d5d9574627f8904bb8a21f13edb8a7ed9063b20a15ccd22152117b762a0148b24c4e5c5ad7e469696ab344d799b2b4dffd1a6fc93fef49d8fcc2e2eb7e75d6fd5cd2e2fafcecdf6da6e6df6d1f6ba5a7db8d39eebd197f575e95fecb5bbb3bdd5ee34ded7ddca6acf2daeb87317967b8bd38b2bf3ed8b8a7f0c99def9fe2e0d55ed6e77b5ebf07f5b2cae3c5a4d567cacd310ed8a33e0e9bd73b32b0036476db4baacbb0ed8bdd98797a9e111374bfd0bedae9b5b5de97567e77a8aeb00e9eb77e0786e757ef191c7f744efe581e5fcd06b5cee63cfa9f44df21f4350bb47786176e551225777f1dc6cf771b7d47edcbd7fa1bde22163d7b32b1ebe62cd9ae66bddd5deeadceab2f3ff71488969ffff18e132651a3cdac61cb22ce9dd1756da17d70806ed50684aa83eb278b13d3ffdf0e3bdf63ab05cef752fcc097569ee1f349552ff05ee7357f400d00700008101010100204b21f3cba072cc493e70861540df4677b498b0505a8b8e2a346b85a0c2dd2fc4263c4a7d8629026c4eb594ad96fac2bfe5f8ffebb9c841c353920b7b8ec11abc0100d90778da8d563b8f1c4510eedbf7e37cf209d9e60808402496c0dcdaac4e8ece01090112afe83043ef74ed4e6b677a86ee9edd5b3b2121b049888d842c84c0c1456702eb20b036424242c2e00408800c24fe03d53db3f33a58e860b6bbeaebeaeaaaafaab7f55bff9d1a796df0e5798263c37cc89f2fbe657e1eb8c7cb92e0de5f83c1eded95e4fded2d08150faf5ea5237e69f7855db2d3c199e351e5915a339c0b900d4103681849dff5c09daa3818bc34ec5057f319d54036b6c640752cc1617c024a17515d1a6b2f945c2f48a3ab3d09ca0b7dd68ab9d097078d292cd4267e9c39f089a70faea351378c85563b11c8802bf44c383eccc0cf20cd39e55a9d31df4c766ee487eed4f528174e4425baab412ab2fd44400f1dab73046827567402f6ece195a73495139455b44ee4ead4bb1db3594b2a94b929fa51367179f0f4882adc00722dea6c6edb0798d3452a7fd60d858643ed8c2598c8297bf18227220efe2f948148a1851bbb515c72a47ce34cbbeec655133b0106781de0c9aa059f8f41f3200b19833148090c41870e1c465c528b9b73c1c2798a3a57b5c2c0cfe276de28b9f0b90027552b7e6375c085d35a0691f6ac7a7768c39351b2a4eabb54b8e0dba3486d2b597131b1f0b3553ab68cff9c15a9dec3adc83b0327b5764a645b3bbd7c77b2ce294f6a755cf4a278e473d7c1692b91a74e75d083a9b5d828596cb8218364a6175132eb4b782fe61202581d2b906ec926dcee4a2cd2302de6ec9354785ea52d5bd5900bda21ea652849adab4030243b676debdc60af83126d32d91c2d34a85341c20682e6d233ab41b8f02f154e6a05e4e9b897c2b319c990c52e3a859123b533d932bbdf76c276c527c2e4b21ceb4d8cd8aa8bb1b56dac6d90260d1b8db10c036bbaa54063abace4ba8ea2241c3da3f77980ddaa92bd2e7628c7629ab617f54c2527174b05a6ae8a8236da3229af186acd0293fea689c65e7716ccb0eb61a892b5e548eeca2475a55ec7d3d32658c78357533c329d62a2b5eda28a6cb492c93f3758e35524f9ac128236578e11276e742c286468aca330a42cf661ab98b783ebbd58643cafff27cf7b71c4685a678db575669c5f1543c3e0735af70bef07a975ec4a819b769132cbcc6379f1637c36f3278f7c7debe2cb1f7c7eadd434c8feb73fdd3bfaf4956223c0f1fcb4fec587792193fd4fee3cc31edc2956278e5f1fdd7cfc59566c1fbd39fc19d8d14999a138ee42707492b171f5c0afa848c877af9e78c7cb22f570ec3f77fb789951c882be4940930cf4f0d1db6fdc5f16528fe3ddaf0eee2fb324e3d8fb1e057942cd851ffef1fb8fc5fcd920f8af3f2e66c9fcffb84b7ff865b7ce875708c9ff60d8f137aa5a1fa900d00700001001010020742877c36a520b152b1337ea1ecd37b0c98ad07289c32fec392e7eebab9f0ac71f7bc8c718cfa75317b2e15702372a9222c4616783ee7b3f0ec6358f8c328eea00005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed3232201a99a59d87e06e09ec5b028a9cbb7749b4a5ad8819004365d02dc4379a8b72410000d00700001001010020058e23368b919493d6ac61d27f66b829a53893e88ddde857d3b82d913960960d22fa36f397752b98c295e3b31927f740127c0a99e76f8bfeea88f44466b8fbfd00005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed323220ef43112c6543b88db2283a2e077278c315ae2c84719a8b25f25cc88565fbea990000d0070000100101001f43fe868e263d8134cf705aa85e26ce78ebb058edd558865fa3d240f5cb9e50c2389e9c8276eac800b7233a552045b2e79124c97e5156a0649849cc7f5d09eee600005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed3232204a90c00d55454dc5b059055ca213579c6ea856967712a56017487886a4d4cc0f0000d0070000100101001f29e82b08ccf15e2187f29fea11ee3f4974f41b51e45b19f353348d8848b86fb71cadd88630456b7a1c60803c7b402487d41fbf18f0b0a13b4cca1f740447938300005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed323220e0fb64b1085cc5538970158d05a009c24e276fb94e1a0bf6a528b48fbc4ff5260000d0070000100101002047a8b784c3765b5c63ac52e3d8461b80bc2d3e3f62434f8accb277d9f2487cfd3c0728fcd26b5119a11288e5db46bc5b547877e220971609d1cef8cba443340800005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed32322068dcaa34c0517d19666e6b33add67351d8c5f69e999ca1e37931bc410a2974280000d007000010010100203e701fbafd4149bc95b55a6bfc3b78246f5c2668ccc05ed4059a36ceb38f140b31e3b69e15f2579571e5bde39e034947271599c200e540b3949112bef163074c00005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed323220ad9e3d8f650687709fd68f4b90b41f7d825a365b02c23a636cef88ac2ac00c430000d0070000100101001f0cc7352e60f4f8476783d6d1b48766a111c56fee2c1a552e76a75c92bc17de172f994ffc854c09717c904054819ca7a17379ddecaf531c439b35337ba099b81300005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed3232208ba52fe7a3956c5cd3a656a3174b931d3bb2abb45578befc59f283ecd816a4050000d0070000100101002040965063a83be2d53b36c8d7e0775f503c2caa1407e586314562aace52c272fe60659e196413a6c9db4168470bcabb9a5851121c10c7b665f363f6cd4d1e4bda00005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed3232202652f5f96006294109b3dd0bbde63693f55324af452b799ee137a81a905eed250000d0070000100101002074ea7468b2a031c4cd53bf10ec3ac66b0c4b5c8779e045f1ef8d9c7b116be649217ff340107d0163397b99918ee2ce822b66cd6fce7b385af97a04671136e2ee00005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed323220f0af56d2c5a48d60a4a5b5c903edfb7db3a736a94ed589d0b797df33ff9d3e1d0000d007000010010100204dfb21ca5140582379bc026792c16b4cf97827143a4a9cd99ae70b3e6016cd6316bcbb9f1cb1233f12a0bbcd9debafa64724d0459b5c8d3cb67ceddfb2e3962500005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed3232204e7bf348da00a945489b2a681749eb56f5de00b900014e137ddae39f48f69d670000d0070000100101002033446a3a94ade71dff3edb786259679487ab701bbc147490b1d4159fecf545fa22fee0698db16bf616465e5cebb985bfc4d9ed1ec4a55e38997dd4b4bbc427eb00005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed3232204fca8bd82bbd181e714e283f83e1b45d95ca5af40fb89ad3977b653c448f78c20000d0070000100101001f3f67edd35bf731a07f40c638e8812112cd7d1baa39ec7dac4a1b2f0c83ac8bd53689b56dba69a7386e3860a6f8976695ac0bc2b5dacae91080f1d54df2dac0c000005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed323220299dcb6af692324b899b39f16d5a530a33062804e41f09dc97e9f156b44767070000d0070000100101001f1e030564013603d54f9e983b63cd940f8ff09ae038b14813f4021bb0c09ebb640d90cb4f8d57be2809f492a51737b671a5f549d4efa8e7efdaeaa9663c09d1ad00005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed323220c3a6138c5061cf291310887c0b5c71fcaffeab90d5deb50d3b9e687cead450710000d007000010010100205cea642eecf05568ce8c5564e63349eea3b816108914ba2ab5efffbb8ea467265f0b6d474f03ed02a3bf529fd6e55a595cbf8dd1adf4311cb9c51e862f8a535400005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed3232205443fcf88330c586bc0e5f3dee10e7f63c76c00249c87fe4fbf7f38c082006b40000d0070000100101001f4556076cc86e0840bf69664f1ef8fcd4d91abda313d08e7840d24ba45cb429cf12b7d3a1f64250c19d1b975e7b107853beff70ebfc4c27c44f825dc05cdc9cd600005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed323220bcd2a26394b36614fd4894241d3c451ab0f6fd110958c3423073621a70826e990000d0070000100101001f354d903ad0f2c6cc9d9a377d681ffaa00475d1e559e48074b4c8cce3111d5c172903b2f179ad4d736dda4e7d1b6a859baeab9dde5e5e495ce09733ec4650634400005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed323220d528b9f6e9693f45ed277af93474fd473ce7d831dae2180cca35d907bd10cb400000d0070000100101001f1766fa716a828da244c9ce52919b7a19acb38dbd110d1bb0039bb2477c17e4465dceecb8330ed5ee9de1330930dfcfa1a5e8149ce8536a82c0093642adf7328200005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed3232206bcb40a24e49c26d0a60513b6aeb8551d264e4717f306b81a37a5afb3b47cedc0000d00700001001010020488923db1c78fa430a3a9eab75f4ee467c7b9a3d3b4eb3bd08e183c82ef79b9102a4d2a7d1ec79c96b404911ae1b10f579bd82a660011c1ca2b872b30ef7dcac00005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed32322035c2186cc36f7bb4aeaf4487b36e57039ccf45a9136aa856a5d569ecca55ef2b0000d0070000100101001f61ee60b366c2f3623012648000835e6089f9e9594a113acad200ae8a87bd05274acede23160e2e187d9921ea2ff6f37e3bd10ffd624ffceb511455c42f1c9ee200005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed32322063320dd4a58212e4d32d1f58926b73ca33a247326c2a5e9fd39268d2384e011a0000d0070000100101001f184aad2b65730f7485957642fa1688c66e8ece7827ee2e8e01f8bc904cedd8ec5462c12a1e3c6cd41f4a15a350ec8575bb05e9597f4316ff73a4e1066aeab3d500005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed323220fce57d2331667353a0eac6b4209b67b843a7262a848af0a49a6e2fa9f6584eb40000d0070000100101002041c996b52c4bdbbc4fbdaf707dd01e74c46c51ce2c8e10e174e12502cb6be3f23e2d44e8e8802e970bc5ccfc4d056e400c92a56667183c37e0f79fbe77540a0000005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed32322009e86cb0accf8d81c9e85d34bea4b925ae936626d00c984e4691186891f5bc160000d0070000100101001f559c038cf4880a42f0e9fe85898105f1fe00e13f9d332448a6dfc2012ae6f3ee2f868de75894443c82b89a2d1ed3ea14ed8da702d92e4e4c633a40d3dfb5e59400005206e10b5e02005132b41600000000010000000000ea30550000002a9bed3232010000000000ea305500000000a8ed32322018b790108f5e277cf7141dc626a98f7edeb776912278e4cd14a50b763d1d6390000001016f5987d65b93798fed86dbb47909c3ee914651cbf35da5c65ec57032b69c6de5 DMLOG START_BLOCK 4 DMLOG FEATURE_OP ACTIVATE 1a99a59d87e06e09ec5b028a9cbb7749b4a5ad8819004365d02dc4379a8b7241 {"feature_digest":"1a99a59d87e06e09ec5b028a9cbb7749b4a5ad8819004365d02dc4379a8b7241","subjective_restrictions":{"enabled":true,"preactivation_required":true,"earliest_allowed_activation_time":"1970-01-01T00:00:00.000"},"description_digest":"f3c3d91c4603cde2397268bfed4e662465293aab10cd9416db0d442b8cec2949","dependencies":[],"protocol_feature_type":"builtin","specification":[{"name":"builtin_feature_codename","value":"ONLY_LINK_TO_EXISTING_PERMISSION"}]} DMLOG FEATURE_OP ACTIVATE ef43112c6543b88db2283a2e077278c315ae2c84719a8b25f25cc88565fbea99 {"feature_digest":"ef43112c6543b88db2283a2e077278c315ae2c84719a8b25f25cc88565fbea99","subjective_restrictions":{"enabled":true,"preactivation_required":true,"earliest_allowed_activation_time":"1970-01-01T00:00:00.000"},"description_digest":"9908b3f8413c8474ab2a6be149d3f4f6d0421d37886033f27d4759c47a26d944","dependencies":[],"protocol_feature_type":"builtin","specification":[{"name":"builtin_feature_codename","value":"REPLACE_DEFERRED"}]} @@ -176,7 +176,7 @@ DMLOG RLIMIT_OP ACCOUNT_USAGE UPD {"owner":"eosio","net_usage":{"last_ordinal":1 DMLOG APPLIED_TRANSACTION 4 8da953b51a2c5b2ecf7e2f1d4bc2c929f2d92e83090e48e78f46ee3143a8015c04000000033b3d4b01000000041fa25bbe71dbc993529c7492969157cd6769334517fb381c2518038b0100d00700008c01000000000000000060040000000000000001010000010000000000ea3055c843ae0bfe7bfb9d664537bcb46ba4ffa14d4a4238f7c9b9e0183ffb6959b3441d000000000000001d00000000000000010000000000ea30551d0000000000000002020000000000ea30550000000000ea305500000000b863b2c2010000000000ea305500000000a8ed3232f3130000000000ea3055e9130e656f73696f3a3a6162692f312e320117626c6f636b5f7369676e696e675f617574686f726974792276617269616e745f626c6f636b5f7369676e696e675f617574686f726974795f76301c086162695f686173680002056f776e6572046e616d6504686173680b636865636b73756d32353608616374697661746500010e666561747572655f6469676573740b636865636b73756d32353609617574686f726974790004097468726573686f6c640675696e743332046b6579730c6b65795f7765696768745b5d086163636f756e7473197065726d697373696f6e5f6c6576656c5f7765696768745b5d0577616974730d776169745f7765696768745b5d1a626c6f636b5f7369676e696e675f617574686f726974795f76300002097468726573686f6c640675696e743332046b6579730c6b65795f7765696768745b5d15626c6f636b636861696e5f706172616d65746572730011136d61785f626c6f636b5f6e65745f75736167650675696e7436341a7461726765745f626c6f636b5f6e65745f75736167655f7063740675696e743332196d61785f7472616e73616374696f6e5f6e65745f75736167650675696e7433321e626173655f7065725f7472616e73616374696f6e5f6e65745f75736167650675696e743332106e65745f75736167655f6c65657761790675696e74333223636f6e746578745f667265655f646973636f756e745f6e65745f75736167655f6e756d0675696e74333223636f6e746578745f667265655f646973636f756e745f6e65745f75736167655f64656e0675696e743332136d61785f626c6f636b5f6370755f75736167650675696e7433321a7461726765745f626c6f636b5f6370755f75736167655f7063740675696e743332196d61785f7472616e73616374696f6e5f6370755f75736167650675696e743332196d696e5f7472616e73616374696f6e5f6370755f75736167650675696e743332186d61785f7472616e73616374696f6e5f6c69666574696d650675696e7433321e64656665727265645f7472785f65787069726174696f6e5f77696e646f770675696e743332156d61785f7472616e73616374696f6e5f64656c61790675696e743332166d61785f696e6c696e655f616374696f6e5f73697a650675696e743332176d61785f696e6c696e655f616374696f6e5f64657074680675696e743136136d61785f617574686f726974795f64657074680675696e7431360b63616e63656c64656c617900020e63616e63656c696e675f61757468107065726d697373696f6e5f6c6576656c067472785f69640b636865636b73756d3235360a64656c657465617574680002076163636f756e74046e616d650a7065726d697373696f6e046e616d651366696e616c697a65725f617574686f7269747900040b6465736372697074696f6e06737472696e67067765696768740675696e7436340a7075626c69635f6b657906737472696e6703706f7006737472696e671066696e616c697a65725f706f6c6963790002097468726573686f6c640675696e7436340a66696e616c697a6572731566696e616c697a65725f617574686f726974795b5d0a6b65795f7765696768740002036b65790a7075626c69635f6b6579067765696768740675696e743136086c696e6b617574680004076163636f756e74046e616d6504636f6465046e616d650474797065046e616d650b726571756972656d656e74046e616d650a6e65776163636f756e7400040763726561746f72046e616d65046e616d65046e616d65056f776e657209617574686f726974790661637469766509617574686f72697479076f6e6572726f7200020973656e6465725f69640775696e743132380873656e745f747278056279746573107065726d697373696f6e5f6c6576656c0002056163746f72046e616d650a7065726d697373696f6e046e616d65177065726d697373696f6e5f6c6576656c5f77656967687400020a7065726d697373696f6e107065726d697373696f6e5f6c6576656c067765696768740675696e7431361270726f64756365725f617574686f7269747900020d70726f64756365725f6e616d65046e616d6509617574686f7269747917626c6f636b5f7369676e696e675f617574686f726974790c72657161637469766174656400010e666561747572655f6469676573740b636865636b73756d323536077265716175746800010466726f6d046e616d65067365746162690002076163636f756e74046e616d65036162690562797465730a736574616c696d6974730004076163636f756e74046e616d650972616d5f627974657305696e7436340a6e65745f77656967687405696e7436340a6370755f77656967687405696e74363407736574636f64650004076163636f756e74046e616d6506766d747970650575696e743809766d76657273696f6e0575696e743804636f64650562797465730c73657466696e616c697a657200011066696e616c697a65725f706f6c6963791066696e616c697a65725f706f6c69637909736574706172616d73000106706172616d7315626c6f636b636861696e5f706172616d657465727307736574707269760002076163636f756e74046e616d650769735f707269760575696e74380873657470726f64730001087363686564756c651470726f64756365725f617574686f726974795b5d0a756e6c696e6b617574680003076163636f756e74046e616d6504636f6465046e616d650474797065046e616d650a757064617465617574680004076163636f756e74046e616d650a7065726d697373696f6e046e616d6506706172656e74046e616d65046175746809617574686f726974790b776169745f776569676874000208776169745f7365630675696e743332067765696768740675696e743136110000002a9bed32320861637469766174650000bc892a4585a6410b63616e63656c64656c6179000040cbdaa8aca24a0a64656c65746561757468000000002d6b03a78b086c696e6b617574680000409e9a2264b89a0a6e65776163636f756e7400000000e0d27bd5a4076f6e6572726f7200905436db6564acba0c72657161637469766174656400000000a0656dacba07726571617574680000000000b863b2c206736574616269000000ce4eba68b2c20a736574616c696d6974730000000040258ab2c207736574636f64650070d577d14cb7b2c20c73657466696e616c697a6572000000c0d25c53b3c209736574706172616d730000000060bb5bb3c207736574707269760000000038d15bb3c20873657470726f6473000040cbdac0e9e2d40a756e6c696e6b61757468000040cbdaa86c52d50a757064617465617574680001000000a061d3dc31036936340000086162695f68617368000000012276617269616e745f626c6f636b5f7369676e696e675f617574686f726974795f7630011a626c6f636b5f7369676e696e675f617574686f726974795f763000000000000000000000008da953b51a2c5b2ecf7e2f1d4bc2c929f2d92e83090e48e78f46ee3143a8015c04000000033b3d4b01000000041fa25bbe71dbc993529c7492969157cd6769334517fb381c2518038b010000000000ea3055690100000000000000000000000000 DMLOG RLIMIT_OP STATE UPD {"average_block_net_usage":{"last_ordinal":3,"value_ex":82933334,"consumed":9952},"average_block_cpu_usage":{"last_ordinal":3,"value_ex":401659723,"consumed":48101},"pending_net_usage":17800,"pending_cpu_usage":4100,"total_net_weight":0,"total_cpu_weight":0,"total_ram_bytes":0,"virtual_net_limit":1050675,"virtual_cpu_limit":200400} DMLOG RLIMIT_OP STATE UPD {"average_block_net_usage":{"last_ordinal":4,"value_ex":230575556,"consumed":17883},"average_block_cpu_usage":{"last_ordinal":4,"value_ex":432479225,"consumed":4499},"pending_net_usage":0,"pending_cpu_usage":0,"total_net_weight":0,"total_cpu_weight":0,"total_ram_bytes":0,"virtual_net_limit":1051726,"virtual_cpu_limit":200600} -DMLOG ACCEPTED_BLOCK 4 04000000040000000300000000000000010000000000ea3055000100000001000240e54a7b27e042b80a810153bec1dd166eef95fa69f6c9886ae283363bc2add801000300000003c7b6f0c37ffe5e12561dcbf5632e864d5d34c363c41e4c941ff2405c2d5b1b639d6ae94fcdd0536b224644931573d1ccb2a0c548613cd1feea18888b220cd08b8b04e606d8bece507e2cf86239f534f1f75f7d231de54a83ef11f5270300000000000000010000000000ea305504000000010000000000ea305503000000000100000001000240e54a7b27e042b80a810153bec1dd166eef95fa69f6c9886ae283363bc2add8010000000000041fa25bbe71dbc993529c7492969157cd6769334517fb381c2518038b033b3d4b0000000000ea3055000000000003c7b6f0c37ffe5e12561dcbf5632e864d5d34c363c41e4c941ff2405c098ab5b4fa3ae6d0e17739b6e5fbcb7f54e605eb094b2e7c5f523734661c791b46b69a63382c85627f8fafa15bb601dda980ba3edcad5043ab2f6d7610f278310000000000010000c105161a99a59d87e06e09ec5b028a9cbb7749b4a5ad8819004365d02dc4379a8b7241ef43112c6543b88db2283a2e077278c315ae2c84719a8b25f25cc88565fbea994a90c00d55454dc5b059055ca213579c6ea856967712a56017487886a4d4cc0fe0fb64b1085cc5538970158d05a009c24e276fb94e1a0bf6a528b48fbc4ff52668dcaa34c0517d19666e6b33add67351d8c5f69e999ca1e37931bc410a297428ad9e3d8f650687709fd68f4b90b41f7d825a365b02c23a636cef88ac2ac00c438ba52fe7a3956c5cd3a656a3174b931d3bb2abb45578befc59f283ecd816a4052652f5f96006294109b3dd0bbde63693f55324af452b799ee137a81a905eed25f0af56d2c5a48d60a4a5b5c903edfb7db3a736a94ed589d0b797df33ff9d3e1d4e7bf348da00a945489b2a681749eb56f5de00b900014e137ddae39f48f69d674fca8bd82bbd181e714e283f83e1b45d95ca5af40fb89ad3977b653c448f78c2299dcb6af692324b899b39f16d5a530a33062804e41f09dc97e9f156b4476707c3a6138c5061cf291310887c0b5c71fcaffeab90d5deb50d3b9e687cead450715443fcf88330c586bc0e5f3dee10e7f63c76c00249c87fe4fbf7f38c082006b4bcd2a26394b36614fd4894241d3c451ab0f6fd110958c3423073621a70826e99d528b9f6e9693f45ed277af93474fd473ce7d831dae2180cca35d907bd10cb406bcb40a24e49c26d0a60513b6aeb8551d264e4717f306b81a37a5afb3b47cedc35c2186cc36f7bb4aeaf4487b36e57039ccf45a9136aa856a5d569ecca55ef2b63320dd4a58212e4d32d1f58926b73ca33a247326c2a5e9fd39268d2384e011afce57d2331667353a0eac6b4209b67b843a7262a848af0a49a6e2fa9f6584eb409e86cb0accf8d81c9e85d34bea4b925ae936626d00c984e4691186891f5bc1618b790108f5e277cf7141dc626a98f7edeb776912278e4cd14a50b763d1d63900020163e67fdaf8cc1d45374d696b46c0cc44b2b9a45eaacf726ec78eba55faf2e6d2ad4a24d5fbc0fd07c0dca3637b0f29efa2d0a345fcae866f02861b9c8dcd9170000000029807708239aa7de914d3ed61e9009ab2280bfbc50f1d9769f27f8341ef261980000000000011709e86cb0accf8d81c9e85d34bea4b925ae936626d00c984e4691186891f5bc160ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd18b790108f5e277cf7141dc626a98f7edeb776912278e4cd14a50b763d1d63901a99a59d87e06e09ec5b028a9cbb7749b4a5ad8819004365d02dc4379a8b72412652f5f96006294109b3dd0bbde63693f55324af452b799ee137a81a905eed25299dcb6af692324b899b39f16d5a530a33062804e41f09dc97e9f156b447670735c2186cc36f7bb4aeaf4487b36e57039ccf45a9136aa856a5d569ecca55ef2b4a90c00d55454dc5b059055ca213579c6ea856967712a56017487886a4d4cc0f4e7bf348da00a945489b2a681749eb56f5de00b900014e137ddae39f48f69d674fca8bd82bbd181e714e283f83e1b45d95ca5af40fb89ad3977b653c448f78c25443fcf88330c586bc0e5f3dee10e7f63c76c00249c87fe4fbf7f38c082006b463320dd4a58212e4d32d1f58926b73ca33a247326c2a5e9fd39268d2384e011a68dcaa34c0517d19666e6b33add67351d8c5f69e999ca1e37931bc410a2974286bcb40a24e49c26d0a60513b6aeb8551d264e4717f306b81a37a5afb3b47cedc8ba52fe7a3956c5cd3a656a3174b931d3bb2abb45578befc59f283ecd816a405ad9e3d8f650687709fd68f4b90b41f7d825a365b02c23a636cef88ac2ac00c43bcd2a26394b36614fd4894241d3c451ab0f6fd110958c3423073621a70826e99c3a6138c5061cf291310887c0b5c71fcaffeab90d5deb50d3b9e687cead45071d528b9f6e9693f45ed277af93474fd473ce7d831dae2180cca35d907bd10cb40e0fb64b1085cc5538970158d05a009c24e276fb94e1a0bf6a528b48fbc4ff526ef43112c6543b88db2283a2e077278c315ae2c84719a8b25f25cc88565fbea99f0af56d2c5a48d60a4a5b5c903edfb7db3a736a94ed589d0b797df33ff9d3e1dfce57d2331667353a0eac6b4209b67b843a7262a848af0a49a6e2fa9f6584eb40001033b3d4b0000000000ea3055000000000003c7b6f0c37ffe5e12561dcbf5632e864d5d34c363c41e4c941ff2405c098ab5b4fa3ae6d0e17739b6e5fbcb7f54e605eb094b2e7c5f523734661c791b46b69a63382c85627f8fafa15bb601dda980ba3edcad5043ab2f6d7610f278310000000000010000c105161a99a59d87e06e09ec5b028a9cbb7749b4a5ad8819004365d02dc4379a8b7241ef43112c6543b88db2283a2e077278c315ae2c84719a8b25f25cc88565fbea994a90c00d55454dc5b059055ca213579c6ea856967712a56017487886a4d4cc0fe0fb64b1085cc5538970158d05a009c24e276fb94e1a0bf6a528b48fbc4ff52668dcaa34c0517d19666e6b33add67351d8c5f69e999ca1e37931bc410a297428ad9e3d8f650687709fd68f4b90b41f7d825a365b02c23a636cef88ac2ac00c438ba52fe7a3956c5cd3a656a3174b931d3bb2abb45578befc59f283ecd816a4052652f5f96006294109b3dd0bbde63693f55324af452b799ee137a81a905eed25f0af56d2c5a48d60a4a5b5c903edfb7db3a736a94ed589d0b797df33ff9d3e1d4e7bf348da00a945489b2a681749eb56f5de00b900014e137ddae39f48f69d674fca8bd82bbd181e714e283f83e1b45d95ca5af40fb89ad3977b653c448f78c2299dcb6af692324b899b39f16d5a530a33062804e41f09dc97e9f156b4476707c3a6138c5061cf291310887c0b5c71fcaffeab90d5deb50d3b9e687cead450715443fcf88330c586bc0e5f3dee10e7f63c76c00249c87fe4fbf7f38c082006b4bcd2a26394b36614fd4894241d3c451ab0f6fd110958c3423073621a70826e99d528b9f6e9693f45ed277af93474fd473ce7d831dae2180cca35d907bd10cb406bcb40a24e49c26d0a60513b6aeb8551d264e4717f306b81a37a5afb3b47cedc35c2186cc36f7bb4aeaf4487b36e57039ccf45a9136aa856a5d569ecca55ef2b63320dd4a58212e4d32d1f58926b73ca33a247326c2a5e9fd39268d2384e011afce57d2331667353a0eac6b4209b67b843a7262a848af0a49a6e2fa9f6584eb409e86cb0accf8d81c9e85d34bea4b925ae936626d00c984e4691186891f5bc1618b790108f5e277cf7141dc626a98f7edeb776912278e4cd14a50b763d1d63900020163e67fdaf8cc1d45374d696b46c0cc44b2b9a45eaacf726ec78eba55faf2e6d2ad4a24d5fbc0fd07c0dca3637b0f29efa2d0a345fcae866f02861b9c8dcd9170200d0070000a5100101001f69076f2aa780105fc742ccd9527398f328419cb1ca99e1545a39285a640abed50d26f4989f29bae9a87bd0ab1e82f3810164b94ad25ba4ada6bc031b922ae1f70100fe810178daed7d0b7c5d5595f7d9e771ef4d4ed29c3e094d8173af51526c2149d3348d283d1d69a1055a7938383ed2d05cdadca479dcdca42d962640612aa2160479f9e0a52daf914ff01b153e0ca888885aa1607518edf70d3fa733e25867fccda032f45bffb5f639f7dc246d8a51c76f3ed39e7bf6d9673fd65a7bedb5d75e7bed7d92ffdbfd80650cbffe811906fd29fc18ff5c7f11fd2e7bf3b55f78321e61ecf97963e3d33f318b518fd243fbc0262452fb95bfce30d699c3c3c63a6b38fc55c3ebec61b92786877528391c05ededf44777436da784dbb75336277c6746bfdb75a4b12e81f41cafb6536548cf45506ddb39a1a21835cc25222fbda062191a4e95d2555344320aa9cbd5e52178009b4b950793329923c90556b667c869bfa4375f300c842bb2bd039dbd6ded0303598a52884a6cca6e1ac8160c0b0f497ad8d43b949527bc5adfb7551e527df9ce9ec2405bb7642bbfa47ba0edd2beb64dbd1d861d456c686cdbd4de571ad1ded16138887011d1d7de49e56c30121cd37149dba59d3d1d6d9dcd4d461231defac17c3edb5368cb67d7673b87b2792385e84a81b86d60637be3e266c3e4ccc5b8068989a55adcd028719e8ecb77f66537753434d74b74225e52591b51646377a17391518667bb5864225e56d998425c029288956febca6e35ca11e31325db2ee9ee5ddfb57e637b670f619b6fdf942d64f3407c7d57b64388e76f982c998b6473505a5fbeb7af7720db8140c7e07a4a6354705386942a746eca0a9566a1d8f6f505a25b2c3517352324430ce24a2e869a60a0d09bcf721b4ce3a87cb67fb09362da070b1b8d2a444d0324d452eddd9d97a14c154512570c7576673710cc1e226722329f1de81dccafcfb675776eea2c0c18d3f1e6f889b169cb6e316670cebe7c96816f2f64db2ecdb61706f35963263782b09e3cccea1c08dfb685c93b8c59d2d6f4dcdbd3d6d15e686f1b20488dd91c4de576b4c5de0949a6c7fb42dbfade8eac31872b2889df941d1868df9095062f276281c62015778a4a8a18eceb00c4883baed85136125acaba6cab513d6b963bd3983593fe2ccb7567bae5c7cf5596ab6ccb5233ab66baa65933cb346616ffcd9b39d33cc135dd139532e91ffdcd5427c99fabf44d9de4d23f0ad19fe1d2b3c2457fa6aba844936eb6a3fad4cc998ea50c9598630dab6064d470878de0aefdd12d59a69cf6bebeeeadc6c2b25a6504ca9d71c1457ff99ef7beff7a7583fab8ba497d42ddac6e51b7aadbd467d41dea4e55fec4e3e656cff01abdf3bd0bbd777b177b7fe5bdcffdb565f886b7ca5be01bbe7a97bd6cf9c8c8aff7ddbbe3d6976e1bf64d7a46b4977728fac1173f72d3edf75e548c1d0863effffe334631ba80e891835ff8f9e8f31f8e9531a8537fe92bbfbcb0183b44b1af7e6edf737bee7cfe8958199bb98c917d5fbfeb87cb8bb15b2476e43f6e89c77e5062ffe6373ffee77b62f56d93e8fff91f2fc6135f8ed82ffdfb3d37df168fddce69473ffe9b92b4c3cef243f7fde4c3dff9a707e3b157294efc89effc6c5f3cfa6a891ef9d103b7bff89518187f2df17bbff0f0a3b73616a37752f4ae7b7ff8c3bfbfeed692e41f528e6f0896a35fb9e505e37c7b59c0cf3f7cfee19f5ff90bc33bd91df7e7c4d2876d58420f2ae18ad21202c35be23ea29435ec1b69652ec33fdf08acfe332b0d84161a4625f1856f7455b914af7269652df3152750bea2d769931e552e63a5956f9e596956102b53ccb630a59dcba83ad3c898c1f0806f0687fff3b79b73fdc1c81557eed8824a5caa8562553f55a3b81ae45a68a892722b8d0a938ab582e15cdaa23b2574f3043440ac3402a38a10098c3af33a00ef0d65289fd94c4f12bb63598672e482aa5cd0d79f319a29826bf50abeb11ad929ac7248cf55a6158052cb8c607825de06bb460d4f51adeeb54aea2440bb336a4cc50a159b047049c5845558b1ad2bb650b12d155b61c580206d3235c6565c44d24716e599737da29be1362b35fc26c2b72b43f1cd6605bda44a2b88da4554479621163507c61906aa72172973186de91b356872d0db3b2d6354aac04833d82341c644f39ad30d839bd37013100e0d6e99818ccd5437870c84e8ff9da04bb0e309c35b6c2e637204198b40bef109236d057ca79a0317dc85d7bb828c1df82bc162c10ec2dcabe7e4c369879a99a0b0892e5c0a950f222173c0d5ed0af0dea1489b29b72b2066b003b340740f76a89c0fe028b79df3193806aad977dcb30121410302336f5bc2dd199bb938e3ac043f73eb0b9f832986898d34ebd9bed3c5ace7fe9a0434335e70f8891f9cb65af8d67b1b5a87e2469efcc1693dc4ecb87777a13e49faf19fbd64495a33a8cfb51a5447daa8506e60a6255215823bbe464c6a7af65c1745e6324064d7778d9e8c0a0e1fb6fa83970d941c4f48259b39cefeb2d1dd8557af2361fc3d51c222c4a89ceeae7841d6d8821228c83a7241a99cfb234b5057c1c7be8b9ec3c17f884265ab5956284190c9c85451e361ae828c002c1980dec3eda2827f4c4a0956ac04c6ad6f6c0996946c4d480deb68d4e09a4155dd362af8ea8eb787187ce623891208a8914cb0a449d2686c6d15222682c30ffc1f3bcc146ba61806d611db27b0a87c25341addf1f69e09d0b1c6a11fd82428288b090e51c22393b4ede464711dc3330cf751190a961b4b4c83db9c3041473259281336fdd2c4f34d4e01199dca91c041af2301856475a64d99fad680d9ebcc949099e5ad7b76257a9527d2d05b84aee6939cb67deece792e043d38253401af874494d145a1671039751f317381c109aa5c00ff0da5ec12e023d00926ddcd0335e4d34f7f265193717c1310d1ad8bc21605acb36b887845d8931a764b60b734ec2982ddf1593001f65404bb13c16ec561a7821976c74fb28cf113353e9a96d1a097a568bc2aa34cd0e3ab2e8650648890ffcc4a16f2a9b4d483d2536ed09b2e635efce9e1c387d18702375dc6dd2e538e36a256a45b392157da08e932d72f235c4cca6ca364d34ff936a0a288844490fc48fa091d4734eaa2b1d4eeca24a3b7243752b83b9450275341f90a7a9df29a5c69e11428422931068262659a6228807117cc9fd598f71e15f36484791298a7c6629e12cccb8a98978dc73ce5faa952cc9311e6c012385a711c931a47ab14c764098e9a13049bfda64a8ab4044345a8408487c8e0617b3f6b3578b4d33670a30443693b28a7f1867e1c8048cc4ed7ea1aeae58c86123490d30134c4442b741d4e500eed41a1481029a1a946a31ff30c717f8e304f482e482e6a69d63cc642874c540c5dc8889b263b06525777ea28b59d5602fcebaa1f0868f1c84da0007382686886243e53d38ec2292ec04f0809358700ca9098221ed09d5ca1ecd3c22721c816fab31d925413d411982cc064011e0bb414a8096fe12f96291c6547383b117b39d2392168202649eee4c030635892255889c042b6986802369c196c6541b501677a6740affa2e8b2ce59d1a2bf8ff657c7697b60cd803aa9db0b449104bc945b46c41cb7445d282a57c7b25c3416d4e4c6f43f1f362202a1a907dab32029006b748d01a11dc396623e06f84632510c088a380d2274c227c11501b803a1127339436774357ba1f1197a0e74e33a66112d206099218347e609408dbc089da2011b5414297a7256802228a1b85c606cf9a4bd853d84469745b4dc304687f6e0d467ca4c57b24230d996837beedeca8edc21ec345c5db2ec199fd4417c080764ddc80b693ae358d8760aac6f44ef5ce749f5425642ae14c5b588b99510b21c5325b6bd8255c3886020e28408d8bd626ce25f1dc25e53241148fed248f0953d40bc51ba3b4e656eb68ac9a08593542e99bc041e64966ad28db4ece6b65f9a87504ad34b0ecc75b02a628b44912af0e1932a68f088b8842e06865a628bc62ca8c4c713174ace09ee0109f5a3c8924d4509e9e7688bcce18c4fd3c85e67718af6a3522a2a295634a642cb10ebed33d4f2680070cd2fe183315ec377290a38a4708401386649a72ce5c7ed41a113171973787620e1854897b574acf6cea2089598feb0a92ab782a7ae8eb34150dfbaae87dac3a7214eb895c19855897e72228b735716e9aa0c572db51ee8a29e5f6a6947bd69472574f29f7bc29e5f6a794bb764ab9eba6947bc19472d74f2977d39472b74c29f7e953ca3d6a94665747ca6ec6b29b51f62729bb9a3cbb1a939d459bfb1b65a961733bcb9d7a529145a0f2ccc8f3961ba4b67a6918924c0a3b161bbb72d033127ab22d33aee5a96b48ee271a0c6347c65edeb27307a9370a83298df8f48ec75fd11e57306cf78a058e722eb1584994bc4b2c03d5c1e6473215b5a35656a031718585498af156e8093e576fc19a03236621d892f3a6138ca9dc7ccbc0340d379b87cf2596a1eb73d91a507b74dc67fd89e13eebf78cfb67a3415478e731aae3b821186e832b86617c9bb34a0f97a40f9e4580d37c8c74c3211ae44d1aac4d8c3e7f6118231fbca1c5ac805207f3da2a4c83839191916dbe35d82fa69058ba140f9cc679541a0cd95b380182af59505050c5e1643feb46e6e3ace7b92f4e5309adaf04cf2bcc07eba9491efa06358ab58c995a0d11b0b017a24741fda8c3407d76c6ae81c51926e601586cec1a1878a9607acdf57291dbd688353c784ef5641cfaedce24bad252c9a1a77ef74a90b92b30075931302827226057a19927a9cdb3d0ddb9680bb8e045860060b5545428d5bda252b1dd932a7e4ca1f1097f36c153853d3467d7492d9d1450965362946285a558d1ab0a02bd2793800ca144f29e14c7e8bd17bdb7277c3f6392fc7326c93f2f7a9f98f0fd8993945f3b49feba49ea3f6592f24f9d247fd324f5b74ef2fef449ea27197ef4029e322681f06963922abe3b5915cf4d56c5fec94a38504c909a30c1cb9355f1d3c9b0f8e7c94a7865b2120e4d56c2ab9361f1fa6474b8524d52c54e354909d7aa49b0f8e86455dc3859159f98ac8a4f4e56c25d9325f8dc6440ee990c8607262be10b93c1f0c864557c65b2121e9f0c86d1c9aaf8fa64253c3559097b8b0948cab3ec270580ade89c8ee798814c6561220dea5764cc9a341bc37332b2d1949dd260c6e99beedf26695ca5e1df67b527b2d5b0b1dfaed46b81293d8d96d1124600aabe5acfb02d7a65793ecfab4d9e7aead9bc2d16cdd2a9b485a9f42c5862792aed61dc6a36ab59a5125b82a5a7e39e58e5551eb9f82daf0cb0311756536dfbb0ea287702d8267d6ba1e16578110003305ecdf27961801eedd024066b84a5573dca571417076dac0adab22ac84bc1e68a4a99c243d559814cc82d8b0d6c2256be539ce543b3b639319a804181d6a6b4058cd726987004af862d27e6a804bd13d36a0e25d97e32cdd617e898b09753ed5dde4a98f5182146129a082aeecfa89a66d2bb2ca143d2c7630a8ff3ad94687ba4b679efe25c6265e3945e9358780ca6bdb420d7481382a1c0eaf6026949588465b95fd1bb3595989d24d9fa4e11a0e04334dc0849460d59db7e215cdb36e3ef1363de4b6d09d288087b9baaeccf07d585a07ad07ba7e8b45c1ddb9c288c1252c1f9392aa68a0ddbd33c71228cfe1457999abcbea1a0aa1f5516a2faa034c76ab3343ee70349aecd9ca8362a2b51e06506e78844904ad9c6aaeb72b5e3846f9f5dc9f64b6a272f5cd512860f97dd90db6713914c444e37e092f0d0335430faeec3a1413630161afb57f1025ec0ddf4d955b2a4be6f55f0ef04c6a919035db3e803c2bdd2d0bd5261ad443c09f6ae0a9899a95ba208d8e0f6ad8262ced2847a24c57ee719f88518bce865a278dfe0b52e136e18062fac52e523546dcbdc803d0af6af72abdce059029b1038de10789f5d25bd01ce00fb56794d6e293a07e3e8bca4d179795570fb37de003a078ae8bca4d179b9041d8afdfb1274a8f871e89863d039c8e8bc548ace4b31745e1e8fceab71745ed1e8fc6a55f0da336f009d4345745ed1e8fcaa041d8afd79093a54fc3874ac31e8bccae8bc528ace2b31747e351e9d4756c7d0d9b35ad0796875f0a56fbf01741e581da1832280ce43abe3e850ecbddf8ea343c58f43c71e83ce23ab81ce9e6f97a0b36775119d8756039d8f011d6d5f356a75b243abf52278f0ab6fe3956763ce0f1c5fd638be823bbd580483cbcb1aea837c87c68b045afbc5623ed7476ff90ddd9d31b01e5a0dbbb918684f546a583c685e5e9d510c2b86c583ab7d057887d87c0b200f9ca3691f8cda04077af93942d0fd7ca768aaeda573b4d86627a5c8144da3c6a88c4e0400c8c786ec1ce74d8c81eec0396e0caa7de7c4a0da7f8e40f50fc7a9d340c511ab2b93a81553042c04743b8946e3e0f019109e4e701876283f193843e91449cd57cd1cc61b12e2c1a162f0603178a018dc5f0cee8d82b83d6dca7d145a0f8dc25f25b64a97513242f671c4117eff8bef416a2853de6a3c460fc14e2ae3fe873ff6daf5773f7ce8ef74b9231477f89e2feffcc6f53fbaf2f661897b55e596ffeb4f1ffd87bb77ffe7eecf4adcf27f7c76f7de17f7feece147e9f99092da0f2ad448c422eaa6e1bf94b4b05e94e455aa037879070d9bc99c5f46d4c652521dc51265789490b75e1bb285c550e6c47c2a76f988bd0dc5634c7329f90a4e3e4a83a28b81863075a12ab8d461c245d723d46cca52c4ef54b9f65d63ef3c2cf6b9ee845594ffcee54f549afa7d96161c0df72395845adc7095cf4ebbbe932e3b0275dda950579ad02f0375cb8e485d2756feb1c1efea04ebf0a2ce3c04b0aa875a8d5da644fc4a655c8eb85147bcaa32e51c718b8e784d652a38e2933a62c4cc5472c41d3a62879999c611f7e8889d26694bd543992a92dc3aea3a3363719a0710413a0c051f44d0e4e0bd084e836fa5d76a7c160f957898de6adc89870a3ccc68353e8587723ccc6c356ec5838b8759adc64d26138c1ea87b5d2f75a4a8e0bf913a10bc4fea201130bbd5f89cd4410f735a8dbba40e7a38aed5f8b4d4410fd5adc66d52073d1cdf6a7c42eaa087b9adc60d5c47abf179aea0d5b89f4b6f35767359adc667b89856e3762ea1d5b89933b71a1fe78a5b8dbb21830ed1d8e56ba12c4fd54579484f5e5ccc6d915b9fb85248029a1051390b49e4a56b88c1e6d175025d27d275125d3e5d69ba3274bd89ae5abade4cd75be83a99ae3abae6d3750a5d6fa56b015d0be93a95aed3e8aaa7ab81ae46ba16d1d5044f1166ff063f39d06a0c50a8d19f4ba13c8516f96514eaa7501360da650ea031fae879a1efd29bcd143ad53f9e4243143acd9f45a1410ad523f58d263d15e869be5f4ea10f52e814bf9a429751e8adfe4c0a6da5d002a4bd0569891cfe9bfd0a0a0d53e82dfe7114da4ea193fd1914ba9c427548fb49a4dd464f69bf924257a18764fc3914bc12c137f9d329780582f3fc2a0aee44f0047f1a05ff1ac113fdd914bc06c1937c8f825723588ba2ef40d12378f4f1780f1e77700f5c687c48e1f75e447d48475dcb51f721ea5a1df5618eba1f5108829f76e957d7f1ab07f0ea3a1df5118e7a10511fd1511fe5a8bf41d44775d4c738eaf38842b0648cdb48cff1f18da442c9d876f198b16dadb0dc5945d9451a40da8d09400ec5c7b46545b9179779cb44309d2572e92c19cb7c5e2a9f78183b82c0d5f595c8da63acf2283256975a532cb258e0110a4b842275ad96a87df278a196a70579bc3853c68f5be4f17d5ab86e93c7755ab43213d1738796ac3bf4f3462d5877eae7ee4c153f334754b1e4644e98c64166b44a0e329356709079bb9c83e814651cdaaa45a774c02487fab94c48ca8f2a2d2935a75672f01aa5a5a4ee3ae51cdcce652274991695d2bd931c8258a8124684706426afd43dab5c7a6e99747657e44352844a05f7542b700a992414fc75391178bef2935d44f09306fd643f894ef1704ac9b28882831df1fe4e959e87fb1e335d85fb5fabf409b8ef36d3d370bf46a54fc4fd73667a36ee57abf449b87fd64c7bb8ef5069eed057a9741af7bbcd7425ee57aa7406f7bbccf41cdcaf50e937e17ea7999e8efb884ab35c184ebf19b7cf98e90adcb7a7df82dba7cdf471b85f9e3e19b74f99e919b86f4bb398fa607a3e6eb79be972dc2f4b9f82db6d66ba1af7ade9b7e276ab999e89fb96348bc1cde985b8dd6c1253d37d287d2a6e9f30d3c7e33e983e0db79bccf42cdc0b6916b303e906dc3e6ea2972c34f2e946dc6e30d37371ef4f2fc2ed7a13eaf342a32fddc43b034831b63033d963ab6a56f24d7645c122289c04d9cd85d451f68d86bd2d57c75e44d5050cc2856064e4b5647f9e07e460e475ab1ff6c2a13cfbce60e52c0d6f1cac7b4b9f83eaac4d87b62e99ca1aa5b6c786815a1844601c69e1f5313ba8dc0cd79da101faadda8cf5362a0a6fac60da667ab0e88d151c4f6fd83c99b6a3ba94aecba609d04bb2dae6c08d126b057848b223e4417928a36631b050810797da95276b78a8249e32b00882872a622023d8270fd3a9810dc88799e95984889799edcfc8ccc9fbb33266bf3fdb9f432431831337d3cfcccdd834530ef0ede0e05e5913845593712dcf1ce74fcb6035b1dfafc854fb567f1e68ce057ab33703bd2472a6729969396aeb69584d9ce6cf265c8e2314aa09728b009e43a081e5d8c5c0a62694b99f9ff48f23d274c35dd7afa6d0460ab9be45a10e0a55fad328b48e9d016753e87d14aaf2e750e8620a4df7e13070218566fab328b49666583485224e39a84c9aa56e17bf8265bc532718d1dabc7a30632d57db96b72c1fc5f4b0e5ec9a8cfd57e23dc80e52cb87aff6ed6dc2564189ebd4f2e16d94d5381fb25b5c1ba8682a00137512d49809b7f0be197a91e6d574834436af833f48394f37ce008f92f8c66d796ae7e9c63b38e451e8ed1caaa6d0e91cf229f4360ed551a89543f5145acaa1160ab5a052f7cb70a7a23e7147427c05ace00e3b475460e741f6aa602773319ab277ba213669f1ce32c422ed7d2038834ddba34afcc674413e1b568b9e8fec4340380f8b5d393860e5a827483e0accb7585d94f8fa30bebe34be2e8caf2b8df7c378bf34be3a8caf2e8df7c278af343e15c6a7a278583647d512eb80a5d38c22f10880f4127383c3c61bc1fd8cff36b8a3238200faf980a1338f2a2f89c89f383976350151b0b78df9473ac470b88589d849c4669c22135163224a4c448589283011f613615e8ab571a406a7e06712ff9d509ba819a509a53939e063d0f15288bd23012179b363a961b59d3d6e0e19a1f8f0e34b69588f19e6f51888321aefe01d64b1ef8eac5ff9366fffbced9547fea5c1575e391ca0cfaa141f57c35b9f210154cf2ea930e9bd20eb10b054d6e33d93ceeb90953cdb73dfc5c99ee16484166c8ab21a64c095c291b9a84110661261b83a9749ea3036cad4c3882894a396815b4d26859beda7babc73e1514ef1459a27e439a27712b46dd1a5cdb7ea05734e53c763933c6044e20a0cf14fd54952790c5a164666b6327bd9b9524e2a4e234d485daa372fe3349b4d4c4a2cbf5c8855b9e5db89ac6a1bfd5cfeee1a8281f7a272a5512b807e9471813843d599f332266efe1a9ed13858cc347d69ad80b39abeb42a710186d979b2e4c62c78c01026a69f0539ef521705ad4b1b614e83bda06517052f183aa1e335d74b4333662a0ebbc5b363d1c61c9a9dcde5e1de285ea635b18bc5f17597a292e04dc568cce3f2a9c2436c81de91b0ca42173898c54da868b57a730b20c0b8354f54a6157a9ba5136c11b505bab84d8f0405000bf755ae60f3ef46a4e1a5dde2ea32bbfecfcf38c1b0b8283e0cfe933d2c57d867f38e2aef34dea4c23b5b88bab2f195e601ac83a6b0149ca444f3e70ad3268469358f264078d27d63a6153f0ad5498817ee78639111dcfa03ee253c83017325e1ed6c9b826170524922f03f5b9abd1cd42cd152039fb22da76972e0c1e10e8ebb5093e1b957c1fe829c2a97aed44bc1ecb157018741d7af648741971d062be81d6f0971e130e84a2f754287c17f17084cbf024c668679c561d0618f7276517451adab57a3236749277418d4d543be5111a8b2e833c8dd92c0400f4abba8cb05d5a44ad72fc70b1f31e52c22e75b75f2502db2b6d8cdcb45acfab19e9ec0e24113b68b359b3e6ee85754fc32f1019817f21a754f9638c4366b78179f42d7720089ee5a3e3d25f4c6bc62d72ae3fa34b12d6256ea57e12ea4a4d7c0fcef73f348118877a40ff02a8c9f706f312d93c4b30a3d22b061b9566f34243927cdf09f2fc80237c908880691a0f7bfc86da3c4e5d21639c83f091186090843f8a751bb4454828b373b4844cf44485b2fdd2b8498add903de94dd15518d3f7e512f31afcdf13062f30888d57f1b62d9e0ddc1ccce36b735dc7c092e4848c2a6693938a0ce3b854b35b41834480c3a10834e24066d5e84769fb38a2eb2beecb730195c3422a9d9c7e92da32c2b5993862ba7cd9ab4c92168d2ecbfc19a34b28bc63d13a1dd240b603c98c37d1da689d91c82e563163251825623c971489788d239513ab8ca28a9bfe51a547d8d1c9b30327ad8b86a074554eb8803675cc51eb9fc74e8a4ab76e0656a271e5fadc2ab6a845f4b72a63a0abf6e5dc560efd8b1437a1e55e3fd81aba966028168d3390442cee010c8e795ece6505dc14922481fdd17f97ab3cbadc99229f4f5f699094c6e51df706fb394331caed4d6c9b62aa25e5750bd095e34f0b6b8ff85fb5e402f0cee4340b6cd4ac592cc0ef6ddf7c229ec92c16e3b99243695d2f42e0970d87d847d5c924175b7b7085ec83ccbc7ba1c8f8d1835aabb33a99cb8c418e8e90435f33d36bb242411b2e7d89dba5aef7bb43332ddca2465f049e568a011b7580c43f0cb4dc393c8900d32dc21c09ff4ba8f66a6517f83934d71a7b3e2427c3bcdbb4679d0e42a3549935c2561846ddaded9f436298ed58e6c714cc82e2125033095c05e43043d4194444e1ab4a2adcb103f5847057a2bf5f496774ad9585cfd7275c2264954c1d2c8bc1c16980ae9769039de093c8a56f0782c5b9a33565750bf29b862049e25c4092f3f0b4e908ddab855a47914a05e2f1e2a377d67fc7bf82b9b5a17357981d3d47d8a745f38931d30a11a4317f0b93a6f2345eee5c858aebda63055f0c877228f0063628f00388559a228ed33b927c323602f82d464fb4d19fdc52300b15c99ca638b17bb0558a843bb0558a15b00257bba048d51022878ec8d00f3f52230a31a98a74b80412c16644b81796c4260d8b1bdd9fc12c6e68440f49029f73da66e3c6e023033b4c5d1648e67c62984cb31bd80ca61067b98d2a4764455a3c95e956045913a95c5d869a8933dd7ace276420bc2e00a5318e5ebdf11ad0239583dcd54c1a3a18e1b6421513dc3060be4adf1abbc77cc95cd9c75e66bfcfe55799ff13845c6a9c94c9f3873c6a881d24aeff69b7e25ce28616584a2a651cf9e7e66257cec9d8598fbd3cfca4a33b40138b2d3de8329c023edd222bd643a1f6352678e58fe34dfa98161ca5b8a4620845efd4ed101edd5701f33a7456f0bf1accd6566089e5f6750474bf09c71ac788ecf5cc4f369a868313c2ba68467c5583c3ff9dda3e08906c720359374e2e1ab2fe696de870c1c9d9e294e8955a1714a5c3a59bf4fcb8c14a17087f110c555e98dc6d4b7147cda0caf93f76a3c8dc594d1a4a6abf02ebb68122404d54dcf7ff3c74e37d5514dd419d08fc1be673ffd9bc400c556c662e9b10a8f692fdc305c673e6016a73e4e67a05667aa08528fd5e4fef474c0e7a5a723e26c89ef4b4fe7bd1dd4b1a663a3060b4839f3a88aa723a45ec3346be817a61efb32553ed463bfca9fd5ef4f5f5969b9e292c708c2a367a9b4482cab2acd8a1a048c2a8051e5d29d0a32c715a4cf520a0ef26cbbe41d9fd921fb567d8fc7ea53486ca46703a347602c7d383da7b80379b6ef3c7ca33fe7fd811aa894fdff70a6b4cea6d661fa04c6ca7c3e5dc519e6f8b36ff2d66466630bce9af7fbb81bc63a6ef7d9f7322169a89e8e0351702cc174829da0a771bc8a271f8c5b15ca047ac21755dedae2367569aaaa73d9a6bb073bc8bd1ccfe7fc2ae8f05504557a56d8a88f980f0b62c70211679a8532d0fc749f8ee98b0a4875a6e0706e435741f8603ac1436d3f1dd833e8baee081eb7c8524c9f4c1563e37bc248f496f807393ccd58c24d45660c792a53050ef064a3729df99029275ec00bcea4f2ca9b4d7d068487fd511e34074fd3a958afe757f5a73d5d4fc4bc5ec8bc1e2a92f7068a108f504f0e3f42c7d30cd14c372655f09a160754cf8cd26e5d1775eb05e3baf58ca85ba7a45777e931c780e5ca9cab7b34bcbcf413deb19f9a7670f38d2eeeee48c7c52023459495b0353ce49acdc7924599f1250ecfb7be94e41926bcf6fc94d7aeab10db19d53c6205a61ece466daf6c2efbe8e249dcd21888fde70088a5eca1165cff3db665b19f9e31060616fddedbe7f2308e4d2aa4b8dd6289f5e6463df4efc29ddd72ad9d56d8f4af98196eeb43a66c1423b85f35c56f779e98c9421f5e018e94242f3c3d479cacb98fdc6849dfa6e02e0bb198e7e2e9167ee1857d9f8adf6961e6c74ac2ab20802110061a42dc1972068e277eafb082620b045eb754c2c24f10bbd10a4d4a130e8c34526c4b8b758ed4116822bc10c8aa06dc2945bde05062b9da29dbfda11bfa897733e11ff85e381e115b687a11ddacd0755edb8fd882820dead40032a1fecc3e6da4649ba3de261f8e27a4727a9b643091226938a6c63e51ea41648420de6804d12bf98d96d769c6ddb7d00ba478f4323e0b8c32eee151206673e321bd48a0a7cd287a6f2c7abf19d57630364e85ec5262a363fcfb6499922b0a0a393d4de78366828bf5d65f0ac4ce7d08d6210b1b29780f87b552ef5d3c68b2be0ec67d45d086a25981a9fad72de5c677fb1bd8ed5fb7c95745c55705fff8ecad8bd684c73dc05250d70df75c6c3dccb101c3f23917cd01eb68ea9594914e97c7063fe5a7bad2657a3138e95b58efbb389729f753082b845d7d9a141b8bdce234cb24e433e5d269783e56218c5f4e7014c24415385f8792457936e6787ea6a76e66b005cf5b726c6591c9db3aadf4bb5274540347c23c443009056d9ff1c2611ba69e2e6b3ea1b91d6f8d4962451ae75344b3bba4ccee4c3d7ff323c656ba61d9e20a0c7c1911d028a0039b6e5449c3aa62c39abc2bc614ae67de0047b8df2f33ed6173fb9b2087f5de1c88babdab68cecd1ef47ce4552621875e916aa8d5f983cf51678aa5484b0a1cad87dc72ee8912c77bb8f343abb4e1445b130ad09dcf876b06922556181745236b97ece151be93933d3c222f619e7b48c9d289ec3a61070e9a6e3ca230ff7848c54b51de59583e517ab505be6d46f00455be02c6a062bbeaf6b37c07ec648d50add2b056b02bcc8c52be4759ffe2a85977c5b292f4c7b00010ee084bd9a518d88dfab5ca03e875b2a3c8acc1ab0ed94f64d678cb8f5ad31db19a5a74e9a8e65f2685b1a59871af0155faac705b081705202ed6ef04beb571f82e3c46f83c5d0bf3c2cb2287650b91de7415db4ba56a623ba9548d57e7ca6cd28bed68d2330e82a618797114d9528c5c1645dea18ab17b5414bdae18bb318adc154b7b4b31ed482c7a6731baaf18bb8523259ab82f96fe4b0ac7f38033f5912fccba8479c6e17ddee169a1c136d8a69c2ee9ddbc8fceb3e6eaad3dbc1de03ce1ffea4c527b10d0e8a93d0810120f0284c483c012128be534c55956c3a189b3ace210b29ccd2164390b99d9fe7906ef9b83fdf31d1c82fdf3ed1c82fdf374dd0f098e966b0042a961325962984c961a269331c3643266984c4686c96468985c26c20f6c6d8722e3b7cfeba19fc91c27b2d8d7471506a6fb1c3e372d1c83440e02067b0d6fc3330bd81f128dd7a1a48d64a298d66c0c39d857a787763e652f3c1c941d8be4744f3e8d2a856693f380f08a8f8092da3bc1dc984fd8bcfedcaf8f869213cde8d6c796bd3a765832c3b1dad4e3376f5f5c8ded8e7c5094b52c5c9b23494ac2580ebab2f4f102a1cd14b34fb39049cab9b98c549a59d0c0e60a539ed067536ca994492747cbf109a6b833d198cf1648581178394e1740e37131df99a2e4700a6473048024069d502f8d221837572347d35cdb75a34608cd95b1464094ad87492bc43b2367446185a2af382d2ca1438c060942921e709460295ae8873c0365b2a42222812c493f159185a34b2890020562498e4081c4580a2426a0807bc4e1f7801e7e5f9a74f87d6982e1f7407cf87d99b79f4d36fc1e58152becbfd9f03baafe3cfcf2a6f03f0fbfbfebf04b2cf4e7e1f71887df9fda16445a62fc929fccf42cf117d033c3e0a77487288e1d284589cce00b3f7df678193771341f6c69be0d6b1b2ff839811caa4334a9c3829fe9ea335fe6f3aa9f2d7d0ba70cd39452e927b8a5d8b222c8ab9e9899d120985ca2d7ec32180cd265b2708f2143b1b8f3703c2db240e6fb65fc8aeaf2137280b1c313579a8ee2283357e6af1525f3d78aae74652067fba4e474848bb1b6558130cf5f2d3d7fb5437fb0702cc1fc55e3e260925a16ae66c6e6af65327fb5a33ca5f357279abf3ae3e6af96141dd5c09158d42198c48917f0a653253357b3b82aa9e41ce97299b7bafa30e370de6a8e9db73ad1bcd56148a379ab73b479abc3674e38e1d265e46ee4be6c5a4ee8e3a68f662c394522e0154776b189d6301d59064b80c71ee46d94dab73fb93cb913ee66e7b3130befc970645535c1068907971b705b37a809485696d7105ba1a178c38adefc112f02b9aa33d4b57152f1905f5ed3e527b45b535917119498ac4bea4f41b34b95667661f2b0d8870823bff62627b624d676654b8224e19dfdde65a17585db27016d8457884d59d6e655c514bbed25a2e3181fdda75d91b4ef06b68c89ef064ebeb856cdd50747bacf9b961dbaaa08958348610b291d0e3b729a072fbd93f21038830f42678db64f00c5844691810acd444eb8826d6a0f120c8b38ca91dd6e78f5fda82591f0469e6430bca252afa24acfacc8791f5173e50c2e14e6e7b4d2ac154f7d266e52be1a00a182b3a1bd8f2acd04169cbfba32c973e578763fd925c4d6b66d8a58a3470b78b5dbda5066cb8dad85543ce884f36d3f5624eae72d5389d6e7c717db7fcfae2e46e4ea6244ae2e46dcd5c510571723727531225717e3ff3f5717922a9960cf5ec37b1335565ff0350e89138bfbc952b724392cd5d06d65a2ad144ffeb8e9745b295d051fd8a6db4ae9caf8e03fdd5614da4de3a1b415ce8791b64248da4aa1316db415e2a4adc2744e94ce0efd4f2d10d11a4b44ab8488562911ad1811ad1811ad888856b1adb81aef0f5c4d351348da0a21692b84a4ad54e07b6f65bf366a9ddd7f761afb53731a33bd5a1e67beb1577b7d70437d39769272d1f197660b6fe643a0d82f3dc59bb4787075b45d83389cdd8d68643a2daddd63ecd053970ae167ef2d7375013a332549ae161706ed530bdf55f1ea5eae6dfb29319adbc196fe20b532ee7f6b45694564bf938ff200d8026e7442f5b181e6c2c1f3cf854c50c8b74ce189fa129e108e088cc8b6f5060a85a9a7566ef0ffc50718b0005ba7f73d7059718f6c4c61eac444560b8d967de7c3d66726c1412cb5e280b0f268f98e433e15e65347c9a733cc199381010fd83d31e2655fe604ded6b962af4ac91c95f1ab90d51f7dc6ea61a5777de85378978bd2685b722c3ea657623dfada0f4a8eeac51e69471f7b9f61d511cad261a39f08855d9766e1c11d6cf14c42974ec086168ce07c18b778889b236a9fd985f3d168b8e24fa0c0e7b02bd44f139c30ede8b3dbd85dd3b7cf956f1ae936b2dd701a98e8d2df555913239c94c30a2e4d1f228753b64fe170e15bcc124fd394386fda19ab8bad86ac41cab62f715455fcb52d5b6fff0a3f1216faa7022738a70e9f53a9e4ac58fdc91f131ff73083d77144adf8a4f214d582868d0fc030e35ae114d592f9290ee64ff3d04093355eccd4b068a5368401c6e1e2945951455dbc4780aa384b4cc6f2f5055643d96d437ff8427f4cc6664d3cf4faacd273b52f98a645ac01ff4ef57bed6817ca6dadee68d8bdc99c7bd684ddec4261fba78d311d8ccb91cdf09cbb456c5f6c7f20c61753234f8e61114bc932a8cc13eaf532285b45d6661cd9c6a49658e8fbb2cf092711d7e92d31d8b5c9a55e22bda925d69b4e0f7bd3081b32ce99a27883c5e47b8c38457e4f99b634c07ff5e0171bf5c60c7941b2288eb0312301434f12db98696e02c76b63a577523820de671242763887391242d51aa1eadf15a16a9d7932841c3d8c67c66385b3f1c2945e98d21b9328154b541dd2a7fa082a01765f2484464971744cb16d305dc6a42aa3793fbe79e4eba3f5dcbbe02a5132c6412c33a58a6e879a2ad891648fd98d64d7b2587074b7d3475bda629417f1572dfd2715ea368cb6e58dd0a41320c930e2f52ce76ee863931a0d4224c7bcb41e567cf97e06175bcbcee1e1f24822b629cc26f19ee0e32b1848b86410c5d7e5e0b20ffacb820b26e2306775e7326528a11c25eb2f11c158e5b280f5cb65d66f076745ed27a6ec4c859460c9be95b3727e05ceb47efa07bc7f7dba622fa16136221177968b89c42fe38939cc27e5917d2925c90468de9ac367945b6221b16383e77316efc9298b9b93d8acc207b3f381ecb2f571a251d4e29338c11422cf655881f707465187475107a328362224f9835e6ce0193b8a2663c6934c02330b4b0652d86ebc2b940ca14939ced33a57f659f161166cc9d4fb003256d82216285a16b588851629e78306d0222e7f8fc662cf185e92f2dd157a943c2ba7df69c361a6524a30450a538b548e6d1147489d20c45c4dee726d90aa807110479e34f11929d22229fd9d12580c6d3f258761298143636206a698538ca2212b3212550830a677a5624641b6d0a7cb939d279f4958e5d4a656b14d8baa817c300bdb509cc1503bc096a98cee40b6be452725c13a1bf62ded3fa777bbc857c9e24a44b4faac87f1b041717c2c96a24779b30be90f67e87562f9301a25825671927c4e1026467b90bf7293c449063c4cf3b2344cb076588e85b083356d4b4eb52566803c22f6025b94f159171136d5b923e3055cd2764c13610a950b0a09d8d6127e79179f408745d132a8326c5a4e489b962302bc279bfb14ef4709cf595897c3e63e4333558ca5d87c3d4ddbe8c1a05542de69cc99da685d25bc3b2db26163a91ce671a56340ac8d61ea845f29a9a4202e1b72c12128325a5810ac10d7a299b232555961696d893db312e94a57ecd9b1cf8a9589759b2ad0d661917e89507a254ba5dfb4d02f5cbe8e2bd2af4aa49f11937e2acccf02d789f535967eced8be6609c1559af7013142d3b43e58259d85976492ba4bfa95d2312a0149a538f1f120fe6dc56aa1b6ec47fd0f0ab8a57bc75815ce4edb326287fba3e5fb3dfa7359b63e6025a342d9e9443310de7c52223b555c76cab72843d989bd99c519880dd9c93a0018d46203b4c84e9e3c38bbbddb95fb452b54b1623aee5407da0be5b6361a682f16fd35b6933ed459c76df5158d17c30d9674238ad991c21baab898deed5013abb976a4e6da31353731919a9b28aab9d07037c890bd2c63c606f077e29469de38a20770e6bc426cedc50eb6e9b5177eb5b1e4555fb82c63076bc3417b6d498a8b8b0b3776b870c360c8b84b02fd9de1b82b6a365bef20a4a7326b35c7cf5a6d99b56a9e31279cb5eac58a04369961a17877c65ca327a44e97778fe6505bb6189832de62b657dfcd2b09d169ddbf2b01cda311d084b6107a6c2a595970b467074f808a006049ec6e85913a054f14deaa59c2898edeaa69f2c7bb84131d8ed57dd761bd970aa17b2dee73f943c319f99a1e7fc3f9dad871b67fe019a4ee19d42dae8914587a581deea13ec2a7c6568fb51598b239f5d83e3536516e3e40ea983e35f6c6727b53ca3d6b4ab9aba7947bde9472fb53ca5d3ba5dc7553cabd604ab9eba794bb694ab95ba694fbf429e51ef7a9b123653fc64f8d1da9874ff4a9b11bff54561be65b299660ac725d673b360f777a51fdd011a4e984e03863c0716af9e3aa2c4d79d7af159e3b127869f9b258a4e747a7fec0318ccb2d3d71c4c1c921492d7b1dd9d08f2573cc25c0bf65faa491729e20ee959346c2aff8f2511fe5386924e1bb7cd248824f1a29673f599c248b934612facb1e634e1a29f3cb41c8b2306f087e19c46419f042b5e34e1a31c39346ccf0d364343dc19715c67c9aac5c1b6c5051029490fadcd0436bccc9419a6863ce0fb2f4f941d51292f383584da30292a2a3bd4c344969ff3b39d347e1e053d6cfd646839a97f37aa3f3709eb6d859ea4f8b134a5880dbded16d9f8cb77d2adef64969fb54aced93c7d2f68e9f44db3b61de1060874d75baed93c7d4f6c909da3e19b5bd236d2ff54dbdedf567fbfaa396bcdad46a6cec4bb1d14752d9dd28fc443768b81b07e9500b2477f2b18334834e16447bcdb71a55b1c32f8c71076ed8b2f98eda5dc5849ed2568884fe6c5fe4ed64c30d2dd4121defc30aae62297c51cece8cf107e248d02ac1e40f4f75b18b5a229fa391f3ae53100d38b84b269f3193cb7f2a36a399e3c8a03fff3bc45fdfad7930fc703316426ca1860d6ad847a6863511352c193ec653c32aa5868620724cce246ab4435a748462a286e7f1ba2edf396fc2ba2658798aa1ff9c3a0a17fc715940672fd64fcd9d198f149735d1725a84d38bcab24a5dc084af2c2995206c21ee76f48a94fe8a4f1aaed1849aa3ddb4c2e34ae438346dfaa833eb338907d99874e43ca1f92f11ba77996c0564e3087fd92738b82fb48cf8facbdaf0ac9443605be06a6995326995b878c9e7900f1fadc5d887edbfaadf26a27eabcb4c4e5ca633667e137e439a264cbbd4dcd0ed2d01b741fd71f2921efb93f13d36dcadb9d8f4c47af847e8a05e680db4c5ae1096684d5ca21aa3706aa4bd1b232fbba89d8f13a690336c983dd2f0173c62fc90a9429b984cb3b124116472196d7aaccb2d368de506044a2d6419cb307db846c419e29a181ec25367d671f2e207b56af84b273e7fd7946b756fb38a67368e67c4963fee0012b262323e84f8c9c566bd2c5d1fb5fa69c752fdb423571ff6f824e4833dbedb2779af54f0ab62b74f628ae494d803ece8c3c4e3fbcb98c906579c84a8488e1dcf340b7528314f09b3f0bc233a9eda9233fcc229ca78844dfdcdb6526cc562c51d214873a57f944aee577f845a88c3d3a5f3be2314658d294a1f6c050bd487d55c97ba05fd9fcb5d483a9b38872fd02632f7f3da79a8f85941dfe475ae597117f70a31acdaf92276a1c968e2e9ac1cb0309180b1bd4faab9a5028bbd5ff8903fbd013ba58fcbd20ee4060cfcbcf31f067e9b07e27039ae3ac7af65188b1bf86db1dc9bf24545a16934dde58de2b2ed5b3ec017ae757872f698fed89b9cd77120d4e97925fa43b2ca69ff97ae726a5fa124a4daf855ce4f69abab53b2ca8989690befd7d0647540564b1f9e99497081b17513bca63e3d86ac7aa10a7bfd52a156102d403ab105c8b0ed7ccbfb343778916b1213992112a0701337e4384b048cf128728ca67ca7a32a4a1726c72f4db66c2a2e4dd6cbd26471c3862d333c335ad633a3653d335ad63365592fdc6c165fb86c9960e132b660c96dc30b969fbde15bb56b2a55700fdd63eb95486105d77feb9e1970824203a9c284ab95d8f04a8d575ca1a486d42b9468d2e20ae5ef84142813865a4ad62fa3ed47e11a261f9531d1929e18f8f5daa6e2b54d9666c5b54dac79ebc54c2ab41caf99f12ac62e8e2785f578797c9f663d5e83ab287e6f711bf8735bee3465bc4de14c7c85c2953e365fa0d33b3a34907ab30283a50d0cb1957a3b5ca967e6d5eb8fa62cd31b63bb80127c50ba13daf68b67940a77865e6307e49c522bf45d999ab4488e971696480b4ba44572acb4806410673ad91c922b4ed0922bc776c1a4fee84ae9d8941c3b36e95356f1d50369b3ba1c2f3c8e25939c0e6968c95a2f67a8c28f393a4d9cbd44c5746044673c7ac5e7949c5324cf72c21255e4ddc5cb30f52204cee1c5a6f986ce72a42a8c31551863aae0e7df6f615b941ae6e24cbd32af8bd34c5b2c2e7c1f16173e87c585cf0bf0bc4096b8e5b44c2abb768959cba70f858eaf867bd09665a6512336a8f3667b96bbf23ccd34947650902390b92fa4d82e15e981e6ca0906772774711ba3bf680353098f446e332d39dee0318e4778f495cf48443cc2ba4629d939aa945338aa9459f4eaafe617534694981ab3e00f852e15353faef94d548e3dae1c919e38ec2b83c5c7b96f8c68cc127c5a7cc863b525e48bb3598c7ce678f299e3c957e4b7702fe5185d68944d7677e060dad89e11bd33541f4ccfdccc5ed7e1714bb3f0e365ac2e7195334b8f2335f4b7a9b5a9b69c3fe9ab3f32cdabd4795169c20f5527683ce459b5deabc7a780ea23de537cec02cb4f64d647366a4fe1f00bd2f06791f1c8d4df99e60f8b92bc22caf1590ed49aa1fb8dd1ac4d60a1124defbc26ed221389bb78c78d08f77b295f9c13652bae3eccca13b599119e150e3fbe9e76917e7bbae1ee7754d9f004eedc41fda6a24737567463866ddd5b62df9bae8bd49f5067304b14a1fa09dcc075ab47cee0e220c0fee02fdef7c22970df7a81ee318f70a430837b5fb86ff631f88407f5dd915b38bc09d2b27d087e0529996187ae66e381b722c5c82a9af463ce69f5a5eee44cb2b2921dc9655de9f2f88e64b82090b257263b9229ec68a99dd07eb1a163159c9dd8972b3ad8f862dd059c5005db0812a5640f72269635e13bd150d03736534192b25f173c78a31dd0be1d65daa6336945112b3d6bdfd03ee564899ffc44fb940b255b90635e1caac48b4315bd38402d9e85a8122f0e55f4e2b078ff7268818c762fbb8fcd4918c1ae51c31dbab4bdb33bdbe1177afdf6eeeedef5ed85acdfd7be213b600cf664b7f465d717e865369fefcdfb9d3dfea59d5bb21d6d976c2d6407fcf5bd3d0385fce0fa426fdec8f6acef1dec2964f394b8a7b767e125ed03d9e6267ffdc6f67c3b959037d65eb4bc6df93917b4451f170f3ef235c3fdb4698cffabafaf6fa86fac5f54df54bfb8beb97e497d4bfdd286fa868686c686450d4d0d8b1b9a1b9634b4342c6dac6f6c686c6c5cd4d8d4b8b8b1b97149634be3d245f58b1a16352e5ab4a869d1e245cd8b962c6a59b4b4a9bea9a1a9b169515353d3e2a6e6a6254d2d4d4b17d72f6e58dcb878d1e2a6c58b17372f5eb2b865f1d2e6fae686e6c6e645cd4dcd8b9b9b9b9734b7342f5d52bfa46149e392454b9a962c5ed2bc64c99296254b5bea5b1a5a1a5b16b534b52c6e696e59d2d2d2b2742981b894aa5f4a452fa56c4b292ac4a7a3bdd04e84cab66ff2db0b85eca6be82907b73be93693d50f00b1bb37eb6a7c3b8e0ec9563a874ff370cf7734ef40c7a5974212649974b57255dd3e99a49d771749d40d74974bd992ed2a68cb7d2751a5d8be97a1b5d6fa70bc790aea4eb6cbad6d075015defa1ab9dae2c5d1be8eaa26b135dfd740dd375155d1fa2ebc374dd44d7cd747d8aaebbe9da4dd783743d4cd717e9fa2a5d4fd0f50dbabe49d7f3f89cfc1f11dead13c0fcb123c07def18d81f9d00feefd3b5ecd8ffde41ffce685adcbca46569ebdb4e7fbb8e359469d94e22992a2b772b2aa75579d367cc9c357bce71d5c7e3ed19cbe6d6cc3be1c493fc74e64db56f7ecbc975f34f79eb8285a79e56dfd0b868d99fc2dfe67c6fcf061f3dbd83189838ba931e073a2fcb16b9f5fbcf18ee1529e3d8ffc0ec9ae909cd9686958d6d179ffbced60bce0a16362e6e6ebbe082bfbca8edfc356de75d744edb8479d7ae593b595e241997f7d1a7327f577ea8f5b7bf987bd9afcf387851f7c50fd41c7746eb79773a5f2edcbce6ba8d5fab7ae0de35d7adbfe92d37fee0e686ddcffff2b8679e5cfae5175fbaf0c19ac16f4ffb4a4bef79cdcb1f78e6852f5f74e9b7925f3ce117b92b36fc6bfad4ef3d3d74f97d7bce7ce1a28d279c3b7d6c7d3d839b2ec9e6fdde4b4982f6b47713d1f2037e76cbfa6cb663807bffa6f62d9d9b0637b10cde9ced30f2d9fec1ce7c962486df9d8588e8edc916f386e2341418c68af08ddf911d589fefec2b74f6f6f81b48e890f0a50ada7b504358bab45adfe025dd9debfdaeec567f6063ef209ab43d5ff037771636fa61f97df95e8299fef7f50e0c64070650ea40e7869ef6c22001876cdd25f94278060815cab539dbb9616381868af641caed0f76f6149a9bda0899a16cfe5202c5e818ec231878cc89a099b05219a58c8802f48e926f25d4f2590283a0d8344854ba245b8af4c6f66e2e0924d63021a8e1321026c2f2e846e3142a5adfded3d3cb05ad276a11ad3aa819d617bab71a976605eb8e4e1a1d0b9c7e886aea68f58d72c05ce85ddfdbed87a93a077c9413a5328c5b4ebb76f9f5ef5cd2ffbddf8e7ef1b37ff7c57f7aef93ef5efacbe9bf7ccf3d579e71c30b1f9877ff2df725f7abf75e35e3f1ab1b6abf7679c54585f73f9e7ffd7ffc786477e2a5db0bbfbcfd89273a6f7ff99a958fffe2a94f3d51f5ec9d15b5bd0bfe69e17d3b0aab5ebaf7a1f7fd68e7af87ce7fd73b6ed9f454c39ea74fb61efae6f07bbefa6fee81a7565ebffb8577ad7f26b161fefc595797ffedc92de99a535fdbb4e0dc99952d175c38509e7db43c3774eab79ebce2ea05f91bee3cf8d5bb565f3a774fdf87573f79f7bbbabf79fcc11bbe5f9bb8f5c5ab174ffb55df1d396fce13f71c9fea5e72e2399bcf3af98b8f3dd4f470c5bca5abeedb7fde9a673ef9de7feb3d75e3bf5cf93122c167b7ccda6204cf3d67b87b9da777a4cc6f5ef79bc38feffa59f7da7bfee3ee5f3ffeaf5bfa9f0a2588d611c07f44ac426f2ff8295f30747c98acb0b52f1b36ee06a820f9de4da47be4a9ddfb7a7b3a2084faf259524c8c8eac164dc420a46275f466077a4e2e10e317d66ff4455561ae95d76f25ed24bbbe0b5c614421e28f62c29202e2dd6563fb80dfee8b3ce4aef406867819b72123cbe82ad76362055dbd97e488d1907a407253de7c3b69576d080b3b11fe9b06bb0b9d6d9d3d1dd92d86702ed5cb6408d31b9a87d7734ff0a5dc01e42db45fd29d0592edf47e237512d2e10ad0d0c657bea9b7a3f3d2ad47a85757a0d31c5305837d1ddc2d43d8a8776e20d2e43b37b5e7b73255376fccf6e822810df55e29f888d405dea5c4dd902d887e318dae2aba3cad6bcca0abb367886447873fd49eef6cef014e40e58d68b9348972edba0554d6ff05317960a700d00700008c010101002054ef1d43bf08fa5fc98e2abd54d4b861ba92e2e6e1a8aa4376b5bd177ca49fad081e3efbd969cfed9a0d7de17c2de54b7cbb57c06c74563cebbe8583baaf0d630100b10878da8d563d8c1b45141efffbeccbe992e3382e4214413491809c13ac53aaa3a04188829fea4896f1ceb33df2eeec32336b9fa1a0a2001aea20a108214871d5a5203a2822b74848095c03144017242a7ac49bddf5fe39676e0a7bf7bd376fdecff7be9dc61fed9b15f2e1bf372f105c25f343febaf2b6f9bb671fcd72823b7f773aff6ccc258f36d6c053dcbb7e9df6f88b3b2f744a5b3dc7b34796e203c1c5c0a2811e7a92ebe9a531959c0a6d9da2b7c6579e6ea2136b48d590946bde4480ac0aea42d548daf610ec910adcce4bdd26b5351f530da4b4d607aa030916e303503a6bb592b826d5153d94a0869ec3ea0117fa6aa73a82a95ac51f6b027c30d4fb37d0a9ed0542ab6d1fa4cb1526252c07c6e02426b509e55a9d33bf89ece2e9e990f2198edd0cf7db43ca85e55389e96a908a9cdf70e9415c2a01da0a141d40e8a47beda2a67200baa8b57c5bc7c76c9bcd5a52a14ca5308fbc8bab9d677a54e106904badd653df0ec0844e63f9b3b627341c68ab2fc1545e8585cb442202f7aca60c446c9ac9d8f6835c20f98c13edb28c8b2eb65d2cf03283a78a1e1cde07cddda4640cfa202530343ab0e0c0e7928676132e983789ad368b5e183849dd9e344a2e1c2ec08ad58abf3f3f606b51cbc0d7c350bdd30dcb93c22bab6adb54d8e0844791f25af43647e37a11ce75133f67d95169e156c49d3127e5463c08e1ecb5d2dde1fb469f0bea60d0d2ca8c579b81b225f74dd075a5259e5d8f001e43b6e5073d87db16223fd6577ccf8f1fd7539fbe8756d385c14107898dda7c4c08fb375ae9509172055fb2476662d9e936b134a330d56a2ed5aaed31889ef4d48f9eda12de0bb80417e6f5103807d126dc6e4b641f2f66a9e427a2ae947eea215d412a6878a8979ec43c1508868970d60883ebec3651a20dc46abda906b5d03d644674179f59ecced629d445ca19cb4540e4ca73c1971e0bec5c83cbe7126192659ace698cbf8ac59b33355b4ad50d63693a52aaf6a5e786feeb0a347e0e0a78aca028aa4ccbe81dee2223171ab9822c6a8536b5083b866da21c638199fdaca081be4cf70b8eea63d720a1660ab3bb3276c7883eac5af41ec2250a6515b727a024a5053c2f08b0ed3a247b454af5e8e1f1df0113982ff9b850850657961147913443238fa1b3a6c2aab2c0812716bb8833128804fb95ffc57e2bf0198d49a1ba94144c0af301a91afb141bedccc792949be19b023ba6bc3cf2cee395e2f2e778bd48bfefe4fb8f2fbff2d1d72fe7188eecfdf0cb9dc32f5fcdb216aee747956f3e4d879bec7d71eb12bb772b3bb1b87e7ff8c1c957c9007ef656f7576087c779a8e2ba0deee17102cbf945688e49427e7cfd787834cb6210d7de739f1ccd122cf9279307af7d7b34cba38390fb0fdf79f3ee2c03015cef7eb77f7796341bd7ee0314a48d3529df7ff4e7cfd90e866570de38c9f6c9dcd46ed39f7edba9f0ee3542d2fb14deeace70012b2dbbcd90ff00c6a7af7900010103387dce5364805762a0e32f9cf9979096c993870d4e81aa29555749028e6eed060080d57fa11e14aa296a190087982bb96ec4ee61407e342367eed3e7ae7ff76ebe3f3f3f414975d1784fcfaa2070c6d381eb26075546524eab99cc3bf7664157 +DMLOG ACCEPTED_BLOCK 4 04000000040000000300000000000000010000000000ea3055000100000001000240e54a7b27e042b80a810153bec1dd166eef95fa69f6c9886ae283363bc2add801000300000003c7b6f0c37ffe5e12561dcbf5632e864d5d34c363c41e4c941ff2405c2d5b1b639d6ae94fcdd0536b224644931573d1ccb2a0c548613cd1feea18888b220cd08b8b04e606d8bece507e2cf86239f534f1f75f7d231de54a83ef11f5270300000000000000010000000000ea305504000000010000000000ea305503000000000100000001000240e54a7b27e042b80a810153bec1dd166eef95fa69f6c9886ae283363bc2add8010000000000041fa25bbe71dbc993529c7492969157cd6769334517fb381c2518038b033b3d4b0000000000ea3055000000000003c7b6f0c37ffe5e12561dcbf5632e864d5d34c363c41e4c941ff2405c098ab5b4fa3ae6d0e17739b6e5fbcb7f54e605eb094b2e7c5f523734661c791b46b69a63382c85627f8fafa15bb601dda980ba3edcad5043ab2f6d7610f278310000000000010000c105161a99a59d87e06e09ec5b028a9cbb7749b4a5ad8819004365d02dc4379a8b7241ef43112c6543b88db2283a2e077278c315ae2c84719a8b25f25cc88565fbea994a90c00d55454dc5b059055ca213579c6ea856967712a56017487886a4d4cc0fe0fb64b1085cc5538970158d05a009c24e276fb94e1a0bf6a528b48fbc4ff52668dcaa34c0517d19666e6b33add67351d8c5f69e999ca1e37931bc410a297428ad9e3d8f650687709fd68f4b90b41f7d825a365b02c23a636cef88ac2ac00c438ba52fe7a3956c5cd3a656a3174b931d3bb2abb45578befc59f283ecd816a4052652f5f96006294109b3dd0bbde63693f55324af452b799ee137a81a905eed25f0af56d2c5a48d60a4a5b5c903edfb7db3a736a94ed589d0b797df33ff9d3e1d4e7bf348da00a945489b2a681749eb56f5de00b900014e137ddae39f48f69d674fca8bd82bbd181e714e283f83e1b45d95ca5af40fb89ad3977b653c448f78c2299dcb6af692324b899b39f16d5a530a33062804e41f09dc97e9f156b4476707c3a6138c5061cf291310887c0b5c71fcaffeab90d5deb50d3b9e687cead450715443fcf88330c586bc0e5f3dee10e7f63c76c00249c87fe4fbf7f38c082006b4bcd2a26394b36614fd4894241d3c451ab0f6fd110958c3423073621a70826e99d528b9f6e9693f45ed277af93474fd473ce7d831dae2180cca35d907bd10cb406bcb40a24e49c26d0a60513b6aeb8551d264e4717f306b81a37a5afb3b47cedc35c2186cc36f7bb4aeaf4487b36e57039ccf45a9136aa856a5d569ecca55ef2b63320dd4a58212e4d32d1f58926b73ca33a247326c2a5e9fd39268d2384e011afce57d2331667353a0eac6b4209b67b843a7262a848af0a49a6e2fa9f6584eb409e86cb0accf8d81c9e85d34bea4b925ae936626d00c984e4691186891f5bc1618b790108f5e277cf7141dc626a98f7edeb776912278e4cd14a50b763d1d63900020163e67fdaf8cc1d45374d696b46c0cc44b2b9a45eaacf726ec78eba55faf2e6d2ad4a24d5fbc0fd07c0dca3637b0f29efa2d0a345fcae866f02861b9c8dcd9170000000029807708239aa7de914d3ed61e9009ab2280bfbc50f1d9769f27f8341ef261980000000000011709e86cb0accf8d81c9e85d34bea4b925ae936626d00c984e4691186891f5bc160ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd18b790108f5e277cf7141dc626a98f7edeb776912278e4cd14a50b763d1d63901a99a59d87e06e09ec5b028a9cbb7749b4a5ad8819004365d02dc4379a8b72412652f5f96006294109b3dd0bbde63693f55324af452b799ee137a81a905eed25299dcb6af692324b899b39f16d5a530a33062804e41f09dc97e9f156b447670735c2186cc36f7bb4aeaf4487b36e57039ccf45a9136aa856a5d569ecca55ef2b4a90c00d55454dc5b059055ca213579c6ea856967712a56017487886a4d4cc0f4e7bf348da00a945489b2a681749eb56f5de00b900014e137ddae39f48f69d674fca8bd82bbd181e714e283f83e1b45d95ca5af40fb89ad3977b653c448f78c25443fcf88330c586bc0e5f3dee10e7f63c76c00249c87fe4fbf7f38c082006b463320dd4a58212e4d32d1f58926b73ca33a247326c2a5e9fd39268d2384e011a68dcaa34c0517d19666e6b33add67351d8c5f69e999ca1e37931bc410a2974286bcb40a24e49c26d0a60513b6aeb8551d264e4717f306b81a37a5afb3b47cedc8ba52fe7a3956c5cd3a656a3174b931d3bb2abb45578befc59f283ecd816a405ad9e3d8f650687709fd68f4b90b41f7d825a365b02c23a636cef88ac2ac00c43bcd2a26394b36614fd4894241d3c451ab0f6fd110958c3423073621a70826e99c3a6138c5061cf291310887c0b5c71fcaffeab90d5deb50d3b9e687cead45071d528b9f6e9693f45ed277af93474fd473ce7d831dae2180cca35d907bd10cb40e0fb64b1085cc5538970158d05a009c24e276fb94e1a0bf6a528b48fbc4ff526ef43112c6543b88db2283a2e077278c315ae2c84719a8b25f25cc88565fbea99f0af56d2c5a48d60a4a5b5c903edfb7db3a736a94ed589d0b797df33ff9d3e1dfce57d2331667353a0eac6b4209b67b843a7262a848af0a49a6e2fa9f6584eb40001033b3d4b0000000000ea3055000000000003c7b6f0c37ffe5e12561dcbf5632e864d5d34c363c41e4c941ff2405c098ab5b4fa3ae6d0e17739b6e5fbcb7f54e605eb094b2e7c5f523734661c791b46b69a63382c85627f8fafa15bb601dda980ba3edcad5043ab2f6d7610f278310000000000010000c105161a99a59d87e06e09ec5b028a9cbb7749b4a5ad8819004365d02dc4379a8b7241ef43112c6543b88db2283a2e077278c315ae2c84719a8b25f25cc88565fbea994a90c00d55454dc5b059055ca213579c6ea856967712a56017487886a4d4cc0fe0fb64b1085cc5538970158d05a009c24e276fb94e1a0bf6a528b48fbc4ff52668dcaa34c0517d19666e6b33add67351d8c5f69e999ca1e37931bc410a297428ad9e3d8f650687709fd68f4b90b41f7d825a365b02c23a636cef88ac2ac00c438ba52fe7a3956c5cd3a656a3174b931d3bb2abb45578befc59f283ecd816a4052652f5f96006294109b3dd0bbde63693f55324af452b799ee137a81a905eed25f0af56d2c5a48d60a4a5b5c903edfb7db3a736a94ed589d0b797df33ff9d3e1d4e7bf348da00a945489b2a681749eb56f5de00b900014e137ddae39f48f69d674fca8bd82bbd181e714e283f83e1b45d95ca5af40fb89ad3977b653c448f78c2299dcb6af692324b899b39f16d5a530a33062804e41f09dc97e9f156b4476707c3a6138c5061cf291310887c0b5c71fcaffeab90d5deb50d3b9e687cead450715443fcf88330c586bc0e5f3dee10e7f63c76c00249c87fe4fbf7f38c082006b4bcd2a26394b36614fd4894241d3c451ab0f6fd110958c3423073621a70826e99d528b9f6e9693f45ed277af93474fd473ce7d831dae2180cca35d907bd10cb406bcb40a24e49c26d0a60513b6aeb8551d264e4717f306b81a37a5afb3b47cedc35c2186cc36f7bb4aeaf4487b36e57039ccf45a9136aa856a5d569ecca55ef2b63320dd4a58212e4d32d1f58926b73ca33a247326c2a5e9fd39268d2384e011afce57d2331667353a0eac6b4209b67b843a7262a848af0a49a6e2fa9f6584eb409e86cb0accf8d81c9e85d34bea4b925ae936626d00c984e4691186891f5bc1618b790108f5e277cf7141dc626a98f7edeb776912278e4cd14a50b763d1d63900020163e67fdaf8cc1d45374d696b46c0cc44b2b9a45eaacf726ec78eba55faf2e6d2ad4a24d5fbc0fd07c0dca3637b0f29efa2d0a345fcae866f02861b9c8dcd9170200d0070000a5100101001f69076f2aa780105fc742ccd9527398f328419cb1ca99e1545a39285a640abed50d26f4989f29bae9a87bd0ab1e82f3810164b94ad25ba4ada6bc031b922ae1f70100fe810178daed7d0b7c5d5595f7d9e771ef4d4ed29c3e094d8173af51526c2149d3348d283d1d69a1055a7938383ed2d05cdadca479dcdca42d962640612aa2160479f9e0a52daf914ff01b153e0ca888885aa1607518edf70d3fa733e25867fccda032f45bffb5f639f7dc246d8a51c76f3ed39e7bf6d9673fd65a7bedb5d75e7bed7d92ffdbfd80650cbffe811906fd29fc18ff5c7f11fd2e7bf3b55f78321e61ecf97963e3d33f318b518fd243fbc0262452fb95bfce30d699c3c3c63a6b38fc55c3ebec61b92786877528391c05ededf44777436da784dbb75336277c6746bfdb75a4b12e81f41cafb6536548cf45506ddb39a1a21835cc25222fbda062191a4e95d2555344320aa9cbd5e52178009b4b950793329923c90556b667c869bfa4375f300c842bb2bd039dbd6ded0303598a52884a6cca6e1ac8160c0b0f497ad8d43b949527bc5adfb7551e527df9ce9ec2405bb7642bbfa47ba0edd2beb64dbd1d861d456c686cdbd4de571ad1ded16138887011d1d7de49e56c30121cd37149dba59d3d1d6d9dcd4d461231defac17c3edb5368cb67d7673b87b2792385e84a81b86d60637be3e266c3e4ccc5b8068989a55adcd028719e8ecb77f66537753434d74b74225e52591b51646377a17391518667bb5864225e56d998425c029288956febca6e35ca11e31325db2ee9ee5ddfb57e637b670f619b6fdf942d64f3407c7d57b64388e76f982c998b6473505a5fbeb7af7720db8140c7e07a4a6354705386942a746eca0a9566a1d8f6f505a25b2c3517352324430ce24a2e869a60a0d09bcf721b4ce3a87cb67fb09362da070b1b8d2a444d0324d452eddd9d97a14c154512570c7576673710cc1e226722329f1de81dccafcfb675776eea2c0c18d3f1e6f889b169cb6e316670cebe7c96816f2f64db2ecdb61706f35963263782b09e3cccea1c08dfb685c93b8c59d2d6f4dcdbd3d6d15e686f1b20488dd91c4de576b4c5de0949a6c7fb42dbfade8eac31872b2889df941d1868df9095062f276281c62015778a4a8a18eceb00c4883baed85136125acaba6cab513d6b963bd3983593fe2ccb7567bae5c7cf5596ab6ccb5233ab66baa65933cb346616ffcd9b39d33cc135dd139532e91ffdcd5427c99fabf44d9de4d23f0ad19fe1d2b3c2457fa6aba844936eb6a3fad4cc998ea50c9598630dab6064d470878de0aefdd12d59a69cf6bebeeeadc6c2b25a6504ca9d71c1457ff99ef7beff7a7583fab8ba497d42ddac6e51b7aadbd467d41dea4e55fec4e3e656cff01abdf3bd0bbd777b177b7fe5bdcffdb565f886b7ca5be01bbe7a97bd6cf9c8c8aff7ddbbe3d6976e1bf64d7a46b4977728fac1173f72d3edf75e548c1d0863effffe334631ba80e891835ff8f9e8f31f8e9531a8537fe92bbfbcb0183b44b1af7e6edf737bee7cfe8958199bb98c917d5fbfeb87cb8bb15b2476e43f6e89c77e5062ffe6373ffee77b62f56d93e8fff91f2fc6135f8ed82ffdfb3d37df168fddce69473ffe9b92b4c3cef243f7fde4c3dff9a707e3b157294efc89effc6c5f3cfa6a891ef9d103b7bff89518187f2df17bbff0f0a3b73616a37752f4ae7b7ff8c3bfbfeed692e41f528e6f0896a35fb9e505e37c7b59c0cf3f7cfee19f5ff90bc33bd91df7e7c4d2876d58420f2ae18ad21202c35be23ea29435ec1b69652ec33fdf08acfe332b0d84161a4625f1856f7455b914af7269652df3152750bea2d769931e552e63a5956f9e596956102b53ccb630a59dcba83ad3c898c1f0806f0687fff3b79b73fdc1c81557eed8824a5caa8562553f55a3b81ae45a68a892722b8d0a938ab582e15cdaa23b2574f3043440ac3402a38a10098c3af33a00ef0d65289fd94c4f12bb63598672e482aa5cd0d79f319a29826bf50abeb11ad929ac7248cf55a6158052cb8c607825de06bb460d4f51adeeb54aea2440bb336a4cc50a159b047049c5845558b1ad2bb650b12d155b61c580206d3235c6565c44d24716e599737da29be1362b35fc26c2b72b43f1cd6605bda44a2b88da4554479621163507c61906aa72172973186de91b356872d0db3b2d6354aac04833d82341c644f39ad30d839bd37013100e0d6e99818ccd5437870c84e8ff9da04bb0e309c35b6c2e637204198b40bef109236d057ca79a0317dc85d7bb828c1df82bc162c10ec2dcabe7e4c369879a99a0b0892e5c0a950f222173c0d5ed0af0dea1489b29b72b2066b003b340740f76a89c0fe028b79df3193806aad977dcb30121410302336f5bc2dd199bb938e3ac043f73eb0b9f832986898d34ebd9bed3c5ace7fe9a0434335e70f8891f9cb65af8d67b1b5a87e2469efcc1693dc4ecb87777a13e49faf19fbd64495a33a8cfb51a5447daa8506e60a6255215823bbe464c6a7af65c1745e6324064d7778d9e8c0a0e1fb6fa83970d941c4f48259b39cefeb2d1dd8557af2361fc3d51c222c4a89ceeae7841d6d8821228c83a7241a99cfb234b5057c1c7be8b9ec3c17f884265ab5956284190c9c85451e361ae828c002c1980dec3eda2827f4c4a0956ac04c6ad6f6c0996946c4d480deb68d4e09a4155dd362af8ea8eb787187ce623891208a8914cb0a449d2686c6d15222682c30ffc1f3bcc146ba61806d611db27b0a87c25341addf1f69e09d0b1c6a11fd82428288b090e51c22393b4ede464711dc3330cf751190a961b4b4c83db9c3041473259281336fdd2c4f34d4e01199dca91c041af2301856475a64d99fad680d9ebcc949099e5ad7b76257a9527d2d05b84aee6939cb67deece792e043d38253401af874494d145a1671039751f317381c109aa5c00ff0da5ec12e023d00926ddcd0335e4d34f7f265193717c1310d1ad8bc21605acb36b887845d8931a764b60b734ec2982ddf1593001f65404bb13c16ec561a7821976c74fb28cf113353e9a96d1a097a568bc2aa34cd0e3ab2e8650648890ffcc4a16f2a9b4d483d2536ed09b2e635efce9e1c387d18702375dc6dd2e538e36a256a45b392157da08e932d72f235c4cca6ca364d34ff936a0a288844490fc48fa091d4734eaa2b1d4eeca24a3b7243752b83b9450275341f90a7a9df29a5c69e11428422931068262659a6228807117cc9fd598f71e15f36484791298a7c6629e12cccb8a98978dc73ce5faa952cc9311e6c012385a711c931a47ab14c764098e9a13049bfda64a8ab4044345a8408487c8e0617b3f6b3578b4d33670a30443693b28a7f1867e1c8048cc4ed7ea1aeae58c86123490d30134c4442b741d4e500eed41a1481029a1a946a31ff30c717f8e304f482e482e6a69d63cc642874c540c5dc8889b263b06525777ea28b59d5602fcebaa1f0868f1c84da0007382686886243e53d38ec2292ec04f0809358700ca9098221ed09d5ca1ecd3c22721c816fab31d925413d411982cc064011e0bb414a8096fe12f96291c6547383b117b39d2392168202649eee4c030635892255889c042b6986802369c196c6541b501677a6740affa2e8b2ce59d1a2bf8ff657c7697b60cd803aa9db0b449104bc945b46c41cb7445d282a57c7b25c3416d4e4c6f43f1f362202a1a907dab32029006b748d01a11dc396623e06f84632510c088a380d2274c227c11501b803a1127339436774357ba1f1197a0e74e33a66112d206099218347e609408dbc089da2011b5414297a7256802228a1b85c606cf9a4bd853d84469745b4dc304687f6e0d467ca4c57b24230d996837beedeca8edc21ec345c5db2ec199fd4417c080764ddc80b693ae358d8760aac6f44ef5ce749f5425642ae14c5b588b99510b21c5325b6bd8255c3886020e28408d8bd626ce25f1dc25e53241148fed248f0953d40bc51ba3b4e656eb68ac9a08593542e99bc041e64966ad28db4ece6b65f9a87504ad34b0ecc75b02a628b44912af0e1932a68f088b8842e06865a628bc62ca8c4c713174ace09ee0109f5a3c8924d4509e9e7688bcce18c4fd3c85e67718af6a3522a2a295634a642cb10ebed33d4f2680070cd2fe183315ec377290a38a4708401386649a72ce5c7ed41a113171973787620e1854897b574acf6cea2089598feb0a92ab782a7ae8eb34150dfbaae87dac3a7214eb895c19855897e72228b735716e9aa0c572db51ee8a29e5f6a6947bd69472574f29f7bc29e5f6a794bb764ab9eba6947bc19472d74f2977d39472b74c29f7e953ca3d6a94665747ca6ec6b29b51f62729bb9a3cbb1a939d459bfb1b65a961733bcb9d7a529145a0f2ccc8f3961ba4b67a6918924c0a3b161bbb72d033127ab22d33aee5a96b48ee271a0c6347c65edeb27307a9370a83298df8f48ec75fd11e57306cf78a058e722eb1584994bc4b2c03d5c1e6473215b5a35656a031718585498af156e8093e576fc19a03236621d892f3a6138ca9dc7ccbc0340d379b87cf2596a1eb73d91a507b74dc67fd89e13eebf78cfb67a3415478e731aae3b821186e832b86617c9bb34a0f97a40f9e4580d37c8c74c3211ae44d1aac4d8c3e7f6118231fbca1c5ac805207f3da2a4c83839191916dbe35d82fa69058ba140f9cc679541a0cd95b380182af59505050c5e1643feb46e6e3ace7b92f4e5309adaf04cf2bcc07eba9491efa06358ab58c995a0d11b0b017a24741fda8c3407d76c6ae81c51926e601586cec1a1878a9607acdf57291dbd688353c784ef5641cfaedce24bad252c9a1a77ef74a90b92b30075931302827226057a19927a9cdb3d0ddb9680bb8e045860060b5545428d5bda252b1dd932a7e4ca1f1097f36c153853d3467d7492d9d1450965362946285a558d1ab0a02bd2793800ca144f29e14c7e8bd17bdb7277c3f6392fc7326c93f2f7a9f98f0fd8993945f3b49feba49ea3f6592f24f9d247fd324f5b74ef2fef449ea27197ef4029e322681f06963922abe3b5915cf4d56c5fec94a38504c909a30c1cb9355f1d3c9b0f8e7c94a7865b2120e4d56c2ab9361f1fa6474b8524d52c54e354909d7aa49b0f8e86455dc3859159f98ac8a4f4e56c25d9325f8dc6440ee990c8607262be10b93c1f0c864557c65b2121e9f0c86d1c9aaf8fa64253c3559097b8b0948cab3ec270580ade89c8ee798814c6561220dea5764cc9a341bc37332b2d1949dd260c6e99beedf26695ca5e1df67b527b2d5b0b1dfaed46b81293d8d96d1124600aabe5acfb02d7a65793ecfab4d9e7aead9bc2d16cdd2a9b485a9f42c5862792aed61dc6a36ab59a5125b82a5a7e39e58e5551eb9f82daf0cb0311756536dfbb0ea287702d8267d6ba1e16578110003305ecdf27961801eedd024066b84a5573dca571417076dac0adab22ac84bc1e68a4a99c243d559814cc82d8b0d6c2256be539ce543b3b639319a804181d6a6b4058cd726987004af862d27e6a804bd13d36a0e25d97e32cdd617e898b09753ed5dde4a98f5182146129a082aeecfa89a66d2bb2ca143d2c7630a8ff3ad94687ba4b679efe25c6265e3945e9358780ca6bdb420d7481382a1c0eaf6026949588465b95fd1bb3595989d24d9fa4e11a0e04334dc0849460d59db7e215cdb36e3ef1363de4b6d09d288087b9baaeccf07d585a07ad07ba7e8b45c1ddb9c288c1252c1f9392aa68a0ddbd33c71228cfe1457999abcbea1a0aa1f5516a2faa034c76ab3343ee70349aecd9ca8362a2b51e06506e78844904ad9c6aaeb72b5e3846f9f5dc9f64b6a272f5cd512860f97dd90db6713914c444e37e092f0d0335430faeec3a1413630161afb57f1025ec0ddf4d955b2a4be6f55f0ef04c6a919035db3e803c2bdd2d0bd5261ad443c09f6ae0a9899a95ba208d8e0f6ad8262ced2847a24c57ee719f88518bce865a278dfe0b52e136e18062fac52e523546dcbdc803d0af6af72abdce059029b1038de10789f5d25bd01ce00fb56794d6e293a07e3e8bca4d179795570fb37de003a078ae8bca4d179b9041d8afdfb1274a8f871e89863d039c8e8bc548ace4b31745e1e8fceab71745ed1e8fc6a55f0da336f009d4345745ed1e8fcaa041d8afd79093a54fc3874ac31e8bccae8bc528ace2b31747e351e9d4756c7d0d9b35ad0796875f0a56fbf01741e581da1832280ce43abe3e850ecbddf8ea343c58f43c71e83ce23ab81ce9e6f97a0b36775119d8756039d8f011d6d5f356a75b243abf52278f0ab6fe3956763ce0f1c5fd638be823bbd580483cbcb1aea837c87c68b045afbc5623ed7476ff90ddd9d31b01e5a0dbbb918684f546a583c685e5e9d510c2b86c583ab7d057887d87c0b200f9ca3691f8cda04077af93942d0fd7ca768aaeda573b4d86627a5c8144da3c6a88c4e0400c8c786ec1ce74d8c81eec0396e0caa7de7c4a0da7f8e40f50fc7a9d340c511ab2b93a81553042c04743b8946e3e0f019109e4e701876283f193843e91449cd57cd1cc61b12e2c1a162f0603178a018dc5f0cee8d82b83d6dca7d145a0f8dc25f25b64a97513242f671c4117eff8bef416a2853de6a3c460fc14e2ae3fe873ff6daf5773f7ce8ef74b9231477f89e2feffcc6f53fbaf2f661897b55e596ffeb4f1ffd87bb77ffe7eecf4adcf27f7c76f7de17f7feece147e9f99092da0f2ad448c422eaa6e1bf94b4b05e94e455aa037879070d9bc99c5f46d4c652521dc51265789490b75e1bb285c550e6c47c2a76f988bd0dc5634c7329f90a4e3e4a83a28b81863075a12ab8d461c245d723d46cca52c4ef54b9f65d63ef3c2cf6b9ee845594ffcee54f549afa7d96161c0df72395845adc7095cf4ebbbe932e3b0275dda950579ad02f0375cb8e485d2756feb1c1efea04ebf0a2ce3c04b0aa875a8d5da644fc4a655c8eb85147bcaa32e51c718b8e784d652a38e2933a62c4cc5472c41d3a62879999c611f7e8889d26694bd543992a92dc3aea3a3363719a0710413a0c051f44d0e4e0bd084e836fa5d76a7c160f957898de6adc89870a3ccc68353e8587723ccc6c356ec5838b8759adc64d26138c1ea87b5d2f75a4a8e0bf913a10bc4fea201130bbd5f89cd4410f735a8dbba40e7a38aed5f8b4d4410fd5adc66d52073d1cdf6a7c42eaa087b9adc60d5c47abf179aea0d5b89f4b6f35767359adc667b89856e3762ea1d5b89933b71a1fe78a5b8dbb21830ed1d8e56ba12c4fd54579484f5e5ccc6d915b9fb85248029a1051390b49e4a56b88c1e6d175025d27d275125d3e5d69ba3274bd89ae5abade4cd75be83a99ae3abae6d3750a5d6fa56b015d0be93a95aed3e8aaa7ab81ae46ba16d1d5044f1166ff063f39d06a0c50a8d19f4ba13c8516f96514eaa7501360da650ea031fae879a1efd29bcd143ad53f9e4243143acd9f45a1410ad523f58d263d15e869be5f4ea10f52e814bf9a429751e8adfe4c0a6da5d002a4bd0569891cfe9bfd0a0a0d53e82dfe7114da4ea193fd1914ba9c427548fb49a4dd464f69bf924257a18764fc3914bc12c137f9d329780582f3fc2a0aee44f0047f1a05ff1ac113fdd914bc06c1937c8f825723588ba2ef40d12378f4f1780f1e77700f5c687c48e1f75e447d48475dcb51f721ea5a1df5618eba1f5108829f76e957d7f1ab07f0ea3a1df5118e7a10511fd1511fe5a8bf41d44775d4c738eaf38842b0648cdb48cff1f18da442c9d876f198b16dadb0dc5945d9451a40da8d09400ec5c7b46545b9179779cb44309d2572e92c19cb7c5e2a9f78183b82c0d5f595c8da63acf2283256975a532cb258e0110a4b842275ad96a87df278a196a70579bc3853c68f5be4f17d5ab86e93c7755ab43213d1738796ac3bf4f3462d5877eae7ee4c153f334754b1e4644e98c64166b44a0e329356709079bb9c83e814651cdaaa45a774c02487fab94c48ca8f2a2d2935a75672f01aa5a5a4ee3ae51cdcce652274991695d2bd931c8258a8124684706426afd43dab5c7a6e99747657e44352844a05f7542b700a992414fc75391178bef2935d44f09306fd643f894ef1704ac9b28882831df1fe4e959e87fb1e335d85fb5fabf409b8ef36d3d370bf46a54fc4fd73667a36ee57abf449b87fd64c7bb8ef5069eed057a9741af7bbcd7425ee57aa7406f7bbccf41cdcaf50e937e17ea7999e8efb884ab35c184ebf19b7cf98e90adcb7a7df82dba7cdf471b85f9e3e19b74f99e919b86f4bb398fa607a3e6eb79be972dc2f4b9f82db6d66ba1af7ade9b7e276ab999e89fb96348bc1cde985b8dd6c1253d37d287d2a6e9f30d3c7e33e983e0db79bccf42cdc0b6916b303e906dc3e6ea2972c34f2e946dc6e30d37371ef4f2fc2ed7a13eaf342a32fddc43b034831b63033d963ab6a56f24d7645c122289c04d9cd85d451f68d86bd2d57c75e44d5050cc2856064e4b5647f9e07e460e475ab1ff6c2a13cfbce60e52c0d6f1cac7b4b9f83eaac4d87b62e99ca1aa5b6c786815a1844601c69e1f5313ba8dc0cd79da101faadda8cf5362a0a6fac60da667ab0e88d151c4f6fd83c99b6a3ba94aecba609d04bb2dae6c08d126b057848b223e4417928a36631b050810797da95276b78a8249e32b00882872a622023d8270fd3a9810dc88799e95984889799edcfc8ccc9fbb33266bf3fdb9f432431831337d3cfcccdd834530ef0ede0e05e5913845593712dcf1ce74fcb6035b1dfafc854fb567f1e68ce057ab33703bd2472a6729969396aeb69584d9ce6cf265c8e2314aa09728b009e43a081e5d8c5c0a62694b99f9ff48f23d274c35dd7afa6d0460ab9be45a10e0a55fad328b48e9d016753e87d14aaf2e750e8620a4df7e13070218566fab328b49666583485224e39a84c9aa56e17bf8265bc532718d1dabc7a30632d57db96b72c1fc5f4b0e5ec9a8cfd57e23dc80e52cb87aff6ed6dc2564189ebd4f2e16d94d5381fb25b5c1ba8682a00137512d49809b7f0be197a91e6d574834436af833f48394f37ce008f92f8c66d796ae7e9c63b38e451e8ed1caaa6d0e91cf229f4360ed551a89543f5145acaa1160ab5a052f7cb70a7a23e7147427c05ace00e3b475460e741f6aa602773319ab277ba213669f1ce32c422ed7d2038834ddba34afcc674413e1b568b9e8fec4340380f8b5d393860e5a827483e0accb7585d94f8fa30bebe34be2e8caf2b8df7c378bf34be3a8caf2e8df7c278af343e15c6a7a278583647d512eb80a5d38c22f10880f4127383c3c61bc1fd8cff36b8a3238200faf980a1338f2a2f89c89f383976350151b0b78df9473ac470b88589d849c4669c22135163224a4c448589283011f613615e8ab571a406a7e06712ff9d509ba819a509a53939e063d0f15288bd23012179b363a961b59d3d6e0e19a1f8f0e34b69588f19e6f51888321aefe01d64b1ef8eac5ff9366fffbced9547fea5c1575e391ca0cfaa141f57c35b9f210154cf2ea930e9bd20eb10b054d6e33d93ceeb90953cdb73dfc5c99ee16484166c8ab21a64c095c291b9a84110661261b83a9749ea3036cad4c3882894a396815b4d26859beda7babc73e1514ef1459a27e439a27712b46dd1a5cdb7ea05734e53c763933c6044e20a0cf14fd54952790c5a164666b6327bd9b9524e2a4e234d485daa372fe3349b4d4c4a2cbf5c8855b9e5db89ac6a1bfd5cfeee1a8281f7a272a5512b807e9471813843d599f332266efe1a9ed13858cc347d69ad80b39abeb42a710186d979b2e4c62c78c01026a69f0539ef521705ad4b1b614e83bda06517052f183aa1e335d74b4333662a0ebbc5b363d1c61c9a9dcde5e1de285ea635b18bc5f17597a292e04dc568cce3f2a9c2436c81de91b0ca42173898c54da868b57a730b20c0b8354f54a6157a9ba5136c11b505bab84d8f0405000bf755ae60f3ef46a4e1a5dde2ea32bbfecfcf38c1b0b8283e0cfe933d2c57d867f38e2aef34dea4c23b5b88bab2f195e601ac83a6b0149ca444f3e70ad3268469358f264078d27d63a6153f0ad5498817ee78639111dcfa03ee253c83017325e1ed6c9b826170524922f03f5b9abd1cd42cd152039fb22da76972e0c1e10e8ebb5093e1b957c1fe829c2a97aed44bc1ecb157018741d7af648741971d062be81d6f0971e130e84a2f754287c17f17084cbf024c668679c561d0618f7276517451adab57a3236749277418d4d543be5111a8b2e833c8dd92c0400f4abba8cb05d5a44ad72fc70b1f31e52c22e75b75f2502db2b6d8cdcb45acfab19e9ec0e24113b68b359b3e6ee85754fc32f1019817f21a754f9638c4366b78179f42d7720089ee5a3e3d25f4c6bc62d72ae3fa34b12d6256ea57e12ea4a4d7c0fcef73f348118877a40ff02a8c9f706f312d93c4b30a3d22b061b9566f34243927cdf09f2fc80237c908880691a0f7bfc86da3c4e5d21639c83f091186090843f8a751bb4454828b373b4844cf44485b2fdd2b8498add903de94dd15518d3f7e512f31afcdf13062f30888d57f1b62d9e0ddc1ccce36b735dc7c092e4848c2a6693938a0ce3b854b35b41834480c3a10834e24066d5e84769fb38a2eb2beecb730195c3422a9d9c7e92da32c2b5993862ba7cd9ab4c92168d2ecbfc19a34b28bc63d13a1dd240b603c98c37d1da689d91c82e563163251825623c971489788d239513ab8ca28a9bfe51a547d8d1c9b30327ad8b86a074554eb8803675cc51eb9fc74e8a4ab76e0656a271e5fadc2ab6a845f4b72a63a0abf6e5dc560efd8b1437a1e55e3fd81aba966028168d3390442cee010c8e795ece6505dc14922481fdd17f97ab3cbadc99229f4f5f699094c6e51df706fb394331caed4d6c9b62aa25e5750bd095e34f0b6b8ff85fb5e402f0cee4340b6cd4ac592cc0ef6ddf7c229ec92c16e3b99243695d2f42e0970d87d847d5c924175b7b7085ec83ccbc7ba1c8f8d1835aabb33a99cb8c418e8e90435f33d36bb242411b2e7d89dba5aef7bb43332ddca2465f049e568a011b7580c43f0cb4dc393c8900d32dc21c09ff4ba8f66a6517f83934d71a7b3e2427c3bcdbb4679d0e42a3549935c2561846ddaded9f436298ed58e6c714cc82e2125033095c05e43043d4194444e1ab4a2adcb103f5847057a2bf5f496774ad9585cfd7275c2264954c1d2c8bc1c16980ae9769039de093c8a56f0782c5b9a33565750bf29b862049e25c4092f3f0b4e908ddab855a47914a05e2f1e2a377d67fc7bf82b9b5a17357981d3d47d8a745f38931d30a11a4317f0b93a6f2345eee5c858aebda63055f0c877228f0063628f00388559a228ed33b927c323602f82d464fb4d19fdc52300b15c99ca638b17bb0558a843bb0558a15b00257bba048d51022878ec8d00f3f52230a31a98a74b80412c16644b81796c4260d8b1bdd9fc12c6e68440f49029f73da66e3c6e023033b4c5d1648e67c62984cb31bd80ca61067b98d2a4764455a3c95e956045913a95c5d869a8933dd7ace276420bc2e00a5318e5ebdf11ad0239583dcd54c1a3a18e1b6421513dc3060be4adf1abbc77cc95cd9c75e66bfcfe55799ff13845c6a9c94c9f3873c6a881d24aeff69b7e25ce28616584a2a651cf9e7e66257cec9d8598fbd3cfca4a33b40138b2d3de8329c023edd222bd643a1f6352678e58fe34dfa98161ca5b8a4620845efd4ed101edd5701f33a7456f0bf1accd6566089e5f6750474bf09c71ac788ecf5cc4f369a868313c2ba68467c5583c3ff9dda3e08906c720359374e2e1ab2fe696de870c1c9d9e294e8955a1714a5c3a59bf4fcb8c14a17087f110c555e98dc6d4b7147cda0caf93f76a3c8dc594d1a4a6abf02ebb68122404d54dcf7ff3c74e37d5514dd419d08fc1be673ffd9bc400c556c662e9b10a8f692fdc305c673e6016a73e4e67a05667aa08528fd5e4fef474c0e7a5a723e26c89ef4b4fe7bd1dd4b1a663a3060b4839f3a88aa723a45ec3346be817a61efb32553ed463bfca9fd5ef4f5f5969b9e292c708c2a367a9b4482cab2acd8a1a048c2a8051e5d29d0a32c715a4cf520a0ef26cbbe41d9fd921fb567d8fc7ea53486ca46703a347602c7d383da7b80379b6ef3c7ca33fe7fd811aa894fdff70a6b4cea6d661fa04c6ca7c3e5dc519e6f8b36ff2d66466630bce9af7fbb81bc63a6ef7d9f7322169a89e8e0351702cc174829da0a771bc8a271f8c5b15ca047ac21755dedae2367569aaaa73d9a6bb073bc8bd1ccfe7fc2ae8f05504557a56d8a88f980f0b62c70211679a8532d0fc749f8ee98b0a4875a6e0706e435741f8603ac1436d3f1dd833e8baee081eb7c8524c9f4c1563e37bc248f496f807393ccd58c24d45660c792a53050ef064a3729df99029275ec00bcea4f2ca9b4d7d068487fd511e34074fd3a958afe757f5a73d5d4fc4bc5ec8bc1e2a92f7068a108f504f0e3f42c7d30cd14c372655f09a160754cf8cd26e5d1775eb05e3baf58ca85ba7a45777e931c780e5ca9cab7b34bcbcf413deb19f9a7670f38d2eeeee48c7c52023459495b0353ce49acdc7924599f1250ecfb7be94e41926bcf6fc94d7aeab10db19d53c6205a61ece466daf6c2efbe8e249dcd21888fde70088a5eca1165cff3db665b19f9e31060616fddedbe7f2308e4d2aa4b8dd6289f5e6463df4efc29ddd72ad9d56d8f4af98196eeb43a66c1423b85f35c56f779e98c9421f5e018e94242f3c3d479cacb98fdc6849dfa6e02e0bb198e7e2e9167ee1857d9f8adf6961e6c74ac2ab20802110061a42dc1972068e277eafb082620b045eb754c2c24f10bbd10a4d4a130e8c34526c4b8b758ed4116822bc10c8aa06dc2945bde05062b9da29dbfda11bfa897733e11ff85e381e115b687a11ddacd0755edb8fd882820dead40032a1fecc3e6da4649ba3de261f8e27a4727a9b643091226938a6c63e51ea41648420de6804d12bf98d96d769c6ddb7d00ba478f4323e0b8c32eee151206673e321bd48a0a7cd287a6f2c7abf19d57630364e85ec5262a363fcfb6499922b0a0a393d4de78366828bf5d65f0ac4ce7d08d6210b1b29780f87b552ef5d3c68b2be0ec67d45d086a25981a9fad72de5c677fb1bd8ed5fb7c95745c55705fff8ecad8bd684c73dc05250d70df75c6c3dccb101c3f23917cd01eb68ea9594914e97c7063fe5a7bad2657a3138e95b58efbb389729f753082b845d7d9a141b8bdce234cb24e433e5d269783e56218c5f4e7014c24415385f8792457936e6787ea6a76e66b005cf5b726c6591c9db3aadf4bb5274540347c23c443009056d9ff1c2611ba69e2e6b3ea1b91d6f8d4962451ae75344b3bba4ccee4c3d7ff323c656ba61d9e20a0c7c1911d028a0039b6e5449c3aa62c39abc2bc614ae67de0047b8df2f33ed6173fb9b2087f5de1c88babdab68cecd1ef47ce4552621875e916aa8d5f983cf51678aa5484b0a1cad87dc72ee8912c77bb8f343abb4e1445b130ad09dcf876b06922556181745236b97ece151be93933d3c222f619e7b48c9d289ec3a61070e9a6e3ca230ff7848c54b51de59583e517ab505be6d46f00455be02c6a062bbeaf6b37c07ec648d50add2b056b02bcc8c52be4759ffe2a85977c5b292f4c7b00010ee084bd9a518d88dfab5ca03e875b2a3c8acc1ab0ed94f64d678cb8f5ad31db19a5a74e9a8e65f2685b1a59871af0155faac705b081705202ed6ef04beb571f82e3c46f83c5d0bf3c2cb2287650b91de7415db4ba56a623ba9548d57e7ca6cd28bed68d2330e82a618797114d9528c5c1645dea18ab17b5414bdae18bb318adc154b7b4b31ed482c7a6731baaf18bb8523259ab82f96fe4b0ac7f38033f5912fccba8479c6e17ddee169a1c136d8a69c2ee9ddbc8fceb3e6eaad3dbc1de03ce1ffea4c527b10d0e8a93d0810120f0284c483c012128be534c55956c3a189b3ace210b29ccd2164390b99d9fe7906ef9b83fdf31d1c82fdf3ed1c82fdf374dd0f098e966b0042a961325962984c961a269331c3643266984c4686c96468985c26c20f6c6d8722e3b7cfeba19fc91c27b2d8d7471506a6fb1c3e372d1c83440e02067b0d6fc3330bd81f128dd7a1a48d64a298d66c0c39d857a787763e652f3c1c941d8be4744f3e8d2a856693f380f08a8f8092da3bc1dc984fd8bcfedcaf8f869213cde8d6c796bd3a765832c3b1dad4e3376f5f5c8ded8e7c5094b52c5c9b23494ac2580ebab2f4f102a1cd14b34fb39049cab9b98c549a59d0c0e60a539ed067536ca994492747cbf109a6b833d198cf1648581178394e1740e37131df99a2e4700a6473048024069d502f8d221837572347d35cdb75a34608cd95b1464094ad87492bc43b2367446185a2af382d2ca1438c060942921e709460295ae8873c0365b2a42222812c493f159185a34b2890020562498e4081c4580a2426a0807bc4e1f7801e7e5f9a74f87d6982e1f7407cf87d99b79f4d36fc1e58152becbfd9f03baafe3cfcf2a6f03f0fbfbfebf04b2cf4e7e1f71887df9fda16445a62fc929fccf42cf117d033c3e0a77487288e1d284589cce00b3f7df678193771341f6c69be0d6b1b2ff839811caa4334a9c3829fe9ea335fe6f3aa9f2d7d0ba70cd39452e927b8a5d8b222c8ab9e9899d120985ca2d7ec32180cd265b2708f2143b1b8f3703c2db240e6fb65fc8aeaf2137280b1c313579a8ee2283357e6af1525f3d78aae74652067fba4e474848bb1b6558130cf5f2d3d7fb5437fb0702cc1fc55e3e260925a16ae66c6e6af65327fb5a33ca5f357279abf3ae3e6af96141dd5c09158d42198c48917f0a653253357b3b82aa9e41ce97299b7bafa30e370de6a8e9db73ad1bcd56148a379ab73b479abc3674e38e1d265e46ee4be6c5a4ee8e3a68f662c394522e0154776b189d6301d59064b80c71ee46d94dab73fb93cb913ee66e7b3130befc970645535c1068907971b705b37a809485696d7105ba1a178c38adefc112f02b9aa33d4b57152f1905f5ed3e527b45b535917119498ac4bea4f41b34b95667661f2b0d8870823bff62627b624d676654b8224e19dfdde65a17585db27016d8457884d59d6e655c514bbed25a2e3181fdda75d91b4ef06b68c89ef064ebeb856cdd50747bacf9b961dbaaa08958348610b291d0e3b729a072fbd93f21038830f42678db64f00c5844691810acd444eb8826d6a0f120c8b38ca91dd6e78f5fda82591f0469e6430bca252afa24acfacc8791f5173e50c2e14e6e7b4d2ac154f7d266e52be1a00a182b3a1bd8f2acd04169cbfba32c973e578763fd925c4d6b66d8a58a3470b78b5dbda5066cb8dad85543ce884f36d3f5624eae72d5389d6e7c717db7fcfae2e46e4ea6244ae2e46dcd5c510571723727531225717e3ff3f5717922a9960cf5ec37b1335565ff0350e89138bfbc952b724392cd5d06d65a2ad144ffeb8e9745b295d051fd8a6db4ae9caf8e03fdd5614da4de3a1b415ce8791b64248da4aa1316db415e2a4adc2744e94ce0efd4f2d10d11a4b44ab8488562911ad1811ad1811ad888856b1adb81aef0f5c4d351348da0a21692b84a4ad54e07b6f65bf366a9ddd7f761afb53731a33bd5a1e67beb1577b7d70437d39769272d1f197660b6fe643a0d82f3dc59bb4787075b45d83389cdd8d68643a2daddd63ecd053970ae167ef2d7375013a332549ae161706ed530bdf55f1ea5eae6dfb29319adbc196fe20b532ee7f6b45694564bf938ff200d8026e7442f5b181e6c2c1f3cf854c50c8b74ce189fa129e108e088cc8b6f5060a85a9a7566ef0ffc50718b0005ba7f73d7059718f6c4c61eac444560b8d967de7c3d66726c1412cb5e280b0f268f98e433e15e65347c9a733cc199381010fd83d31e2655fe604ded6b962af4ac91c95f1ab90d51f7dc6ea61a5777de85378978bd2685b722c3ea657623dfada0f4a8eeac51e69471f7b9f61d511cad261a39f08855d9766e1c11d6cf14c42974ec086168ce07c18b778889b236a9fd985f3d168b8e24fa0c0e7b02bd44f139c30ede8b3dbd85dd3b7cf956f1ae936b2dd701a98e8d2df555913239c94c30a2e4d1f228753b64fe170e15bcc124fd394386fda19ab8bad86ac41cab62f715455fcb52d5b6fff0a3f1216faa7022738a70e9f53a9e4ac58fdc91f131ff73083d77144adf8a4f214d582868d0fc030e35ae114d592f9290ee64ff3d04093355eccd4b068a5368401c6e1e2945951455dbc4780aa384b4cc6f2f5055643d96d437ff8427f4cc6664d3cf4faacd273b52f98a645ac01ff4ef57bed6817ca6dadee68d8bdc99c7bd684ddec4261fba78d311d8ccb91cdf09cbb456c5f6c7f20c61753234f8e61114bc932a8cc13eaf532285b45d6661cd9c6a49658e8fbb2cf092711d7e92d31d8b5c9a55e22bda925d69b4e0f7bd3081b32ce99a27883c5e47b8c38457e4f99b634c07ff5e0171bf5c60c7941b2288eb0312301434f12db98696e02c76b63a577523820de671242763887391242d51aa1eadf15a16a9d7932841c3d8c67c66385b3f1c2945e98d21b9328154b541dd2a7fa082a01765f2484464971744cb16d305dc6a42aa3793fbe79e4eba3f5dcbbe02a5132c6412c33a58a6e879a2ad891648fd98d64d7b2587074b7d3475bda629417f1572dfd2715ea368cb6e58dd0a41320c930e2f52ce76ee863931a0d4224c7bcb41e567cf97e06175bcbcee1e1f24822b629cc26f19ee0e32b1848b86410c5d7e5e0b20ffacb820b26e2306775e7326528a11c25eb2f11c158e5b280f5cb65d66f076745ed27a6ec4c859460c9be95b3727e05ceb47efa07bc7f7dba622fa16136221177968b89c42fe38939cc27e5917d2925c90468de9ac367945b6221b16383e77316efc9298b9b93d8acc207b3f381ecb2f571a251d4e29338c11422cf655881f707465187475107a328362224f9835e6ce0193b8a2663c6934c02330b4b0652d86ebc2b940ca14939ced33a57f659f161166cc9d4fb003256d82216285a16b588851629e78306d0222e7f8fc662cf185e92f2dd157a943c2ba7df69c361a6524a30450a538b548e6d1147489d20c45c4dee726d90aa807110479e34f11929d22229fd9d12580c6d3f258761298143636206a698538ca2212b3212550830a677a5624641b6d0a7cb939d279f4958e5d4a656b14d8baa817c300bdb509cc1503bc096a98cee40b6be452725c13a1bf62ded3fa777bbc857c9e24a44b4faac87f1b041717c2c96a24779b30be90f67e87562f9301a25825671927c4e1026467b90bf7293c449063c4cf3b2344cb076588e85b083356d4b4eb52566803c22f6025b94f159171136d5b923e3055cd2764c13610a950b0a09d8d6127e79179f408745d132a8326c5a4e489b962302bc279bfb14ef4709cf595897c3e63e4333558ca5d87c3d4ddbe8c1a05542de69cc99da685d25bc3b2db26163a91ce671a56340ac8d61ea845f29a9a4202e1b72c12128325a5810ac10d7a299b232555961696d893db312e94a57ecd9b1cf8a9589759b2ad0d661917e89507a254ba5dfb4d02f5cbe8e2bd2af4aa49f11937e2acccf02d789f535967eced8be6609c1559af7013142d3b43e58259d85976492ba4bfa95d2312a0149a538f1f120fe6dc56aa1b6ec47fd0f0ab8a57bc75815ce4edb326287fba3e5fb3dfa7359b63e6025a342d9e9443310de7c52223b555c76cab72843d989bd99c519880dd9c93a0018d46203b4c84e9e3c38bbbddb95fb452b54b1623aee5407da0be5b6361a682f16fd35b6933ed459c76df5158d17c30d9674238ad991c21baab898deed5013abb976a4e6da31353731919a9b28aab9d07037c890bd2c63c606f077e29469de38a20770e6bc426cedc50eb6e9b5177eb5b1e4555fb82c63076bc3417b6d498a8b8b0b3776b870c360c8b84b02fd9de1b82b6a365bef20a4a7326b35c7cf5a6d99b56a9e31279cb5eac58a04369961a17877c65ca327a44e97778fe6505bb6189832de62b657dfcd2b09d169ddbf2b01cda311d084b6107a6c2a595970b467074f808a006049ec6e85913a054f14deaa59c2898edeaa69f2c7bb84131d8ed57dd761bd970aa17b2dee73f943c319f99a1e7fc3f9dad871b67fe019a4ee19d42dae8914587a581deea13ec2a7c6568fb51598b239f5d83e3536516e3e40ea983e35f6c6727b53ca3d6b4ab9aba7947bde9472fb53ca5d3ba5dc7553cabd604ab9eba794bb694ab95ba694fbf429e51ef7a9b123653fc64f8d1da9874ff4a9b11bff54561be65b299660ac725d673b360f777a51fdd011a4e984e03863c0716af9e3aa2c4d79d7af159e3b127869f9b258a4e747a7fec0318ccb2d3d71c4c1c921492d7b1dd9d08f2573cc25c0bf65faa491729e20ee959346c2aff8f2511fe5386924e1bb7cd248824f1a29673f599c248b934612facb1e634e1a29f3cb41c8b2306f087e19c46419f042b5e34e1a31c39346ccf0d364343dc19715c67c9aac5c1b6c5051029490fadcd0436bccc9419a6863ce0fb2f4f941d51292f383584da30292a2a3bd4c344969ff3b39d347e1e053d6cfd646839a97f37aa3f3709eb6d859ea4f8b134a5880dbded16d9f8cb77d2adef64969fb54aced93c7d2f68e9f44db3b61de1060874d75baed93c7d4f6c909da3e19b5bd236d2ff54dbdedf567fbfaa396bcdad46a6cec4bb1d14752d9dd28fc443768b81b07e9500b2477f2b18334834e16447bcdb71a55b1c32f8c71076ed8b2f98eda5dc5849ed2568884fe6c5fe4ed64c30d2dd4121defc30aae62297c51cece8cf107e248d02ac1e40f4f75b18b5a229fa391f3ae53100d38b84b269f3193cb7f2a36a399e3c8a03fff3bc45fdfad7930fc703316426ca1860d6ad847a6863511352c193ec653c32aa5868620724cce246ab4435a748462a286e7f1ba2edf396fc2ba2658798aa1ff9c3a0a17fc715940672fd64fcd9d198f149735d1725a84d38bcab24a5dc084af2c2995206c21ee76f48a94fe8a4f1aaed1849aa3ddb4c2e34ae438346dfaa833eb338907d99874e43ca1f92f11ba77996c0564e3087fd92738b82fb48cf8facbdaf0ac9443605be06a6995326995b878c9e7900f1fadc5d887edbfaadf26a27eabcb4c4e5ca633667e137e439a264cbbd4dcd0ed2d01b741fd71f2921efb93f13d36dcadb9d8f4c47af847e8a05e680db4c5ae1096684d5ca21aa3706aa4bd1b232fbba89d8f13a690336c983dd2f0173c62fc90a9429b984cb3b124116472196d7aaccb2d368de506044a2d6419cb307db846c419e29a181ec25367d671f2e207b56af84b273e7fd7946b756fb38a67368e67c4963fee0012b262323e84f8c9c566bd2c5d1fb5fa69c752fdb423571ff6f824e4833dbedb2779af54f0ab62b74f628ae494d803ece8c3c4e3fbcb98c906579c84a8488e1dcf340b7528314f09b3f0bc233a9eda9233fcc229ca78844dfdcdb6526cc562c51d214873a57f944aee577f845a88c3d3a5f3be2314658d294a1f6c050bd487d55c97ba05fd9fcb5d483a9b38872fd02632f7f3da79a8f85941dfe475ae597117f70a31acdaf92276a1c968e2e9ac1cb0309180b1bd4faab9a5028bbd5ff8903fbd013ba58fcbd20ee4060cfcbcf31f067e9b07e27039ae3ac7af65188b1bf86db1dc9bf24545a16934dde58de2b2ed5b3ec017ae757872f698fed89b9cd77120d4e97925fa43b2ca69ff97ae726a5fa124a4daf855ce4f69abab53b2ca8989690befd7d0647540564b1f9e99497081b17513bca63e3d86ac7aa10a7bfd52a156102d403ab105c8b0ed7ccbfb343778916b1213992112a0701337e4384b048cf128728ca67ca7a32a4a1726c72f4db66c2a2e4dd6cbd26471c3862d333c335ad633a3653d335ad63365592fdc6c165fb86c9960e132b660c96dc30b969fbde15bb56b2a55700fdd63eb95486105d77feb9e1970824203a9c284ab95d8f04a8d575ca1a486d42b9468d2e20ae5ef84142813865a4ad62fa3ed47e11a261f9531d1929e18f8f5daa6e2b54d9666c5b54dac79ebc54c2ab41caf99f12ac62e8e2785f578797c9f663d5e83ab287e6f711bf8735bee3465bc4de14c7c85c2953e365fa0d33b3a34907ab30283a50d0cb1957a3b5ca967e6d5eb8fa62cd31b63bb80127c50ba13daf68b67940a77865e6307e49c522bf45d999ab4488e971696480b4ba44572acb4806410673ad91c922b4ed0922bc776c1a4fee84ae9d8941c3b36e95356f1d50369b3ba1c2f3c8e25939c0e6968c95a2f67a8c28f393a4d9cbd44c5746044673c7ac5e7949c5324cf72c21255e4ddc5cb30f52204cee1c5a6f986ce72a42a8c31551863aae0e7df6f615b941ae6e24cbd32af8bd34c5b2c2e7c1f16173e87c585cf0bf0bc4096b8e5b44c2abb768959cba70f858eaf867bd09665a6512336a8f3667b96bbf23ccd34947650902390b92fa4d82e15e981e6ca0906772774711ba3bf680353098f446e332d39dee0318e4778f495cf48443cc2ba4629d939aa945338aa9459f4eaafe617534694981ab3e00f852e15353faef94d548e3dae1c919e38ec2b83c5c7b96f8c68cc127c5a7cc863b525e48bb3598c7ce678f299e3c957e4b7702fe5185d68944d7677e060dad89e11bd33541f4ccfdccc5ed7e1714bb3f0e365ac2e7195334b8f2335f4b7a9b5a9b69c3fe9ab3f32cdabd4795169c20f5527683ce459b5deabc7a780ea23de537cec02cb4f64d647366a4fe1f00bd2f06791f1c8d4df99e60f8b92bc22caf1590ed49aa1fb8dd1ac4d60a1124defbc26ed221389bb78c78d08f77b295f9c13652bae3eccca13b599119e150e3fbe9e76917e7bbae1ee7754d9f004eedc41fda6a24737567463866ddd5b62df9bae8bd49f5067304b14a1fa09dcc075ab47cee0e220c0fee02fdef7c22970df7a81ee318f70a430837b5fb86ff631f88407f5dd915b38bc09d2b27d087e0529996187ae66e381b722c5c82a9af463ce69f5a5eee44cb2b2921dc9655de9f2f88e64b82090b257263b9229ec68a99dd07eb1a163159c9dd8972b3ad8f862dd059c5005db0812a5640f72269635e13bd150d03736534192b25f173c78a31dd0be1d65daa6336945112b3d6bdfd03ee564899ffc44fb940b255b90635e1caac48b4315bd38402d9e85a8122f0e55f4e2b078ff7268818c762fbb8fcd4918c1ae51c31dbab4bdb33bdbe1177afdf6eeeedef5ed85acdfd7be213b600cf664b7f465d717e865369fefcdfb9d3dfea59d5bb21d6d976c2d6407fcf5bd3d0385fce0fa426fdec8f6acef1dec2964f394b8a7b767e125ed03d9e6267ffdc6f67c3b959037d65eb4bc6df93917b4451f170f3ef235c3fdb4698cffabafaf6fa86fac5f54df54bfb8beb97e497d4bfdd286fa868686c686450d4d0d8b1b9a1b9634b4342c6dac6f6c686c6c5cd4d8d4b8b8b1b97149634be3d245f58b1a16352e5ab4a869d1e245cd8b962c6a59b4b4a9bea9a1a9b169515353d3e2a6e6a6254d2d4d4b17d72f6e58dcb878d1e2a6c58b17372f5eb2b865f1d2e6fae686e6c6e645cd4dcd8b9b9b9b9734b7342f5d52bfa46149e392454b9a962c5ed2bc64c99296254b5bea5b1a5a1a5b16b534b52c6e696e59d2d2d2b2742981b894aa5f4a452fa56c4b292ac4a7a3bdd04e84cab66ff2db0b85eca6be82907b73be93693d50f00b1bb37eb6a7c3b8e0ec9563a874ff370cf7734ef40c7a5974212649974b57255dd3e99a49d771749d40d74974bd992ed2a68cb7d2751a5d8be97a1b5d6fa70bc790aea4eb6cbad6d075015defa1ab9dae2c5d1be8eaa26b135dfd740dd375155d1fa2ebc374dd44d7cd747d8aaebbe9da4dd783743d4cd717e9fa2a5d4fd0f50dbabe49d7f3f89cfc1f11dead13c0fcb123c07def18d81f9d00feefd3b5ecd8ffde41ffce685adcbca46569ebdb4e7fbb8e359469d94e22992a2b772b2aa75579d367cc9c357bce71d5c7e3ed19cbe6d6cc3be1c493fc74e64db56f7ecbc975f34f79eb8285a79e56dfd0b868d99fc2dfe67c6fcf061f3dbd83189838ba931e073a2fcb16b9f5fbcf18ee1529e3d8ffc0ec9ae909cd9686958d6d179ffbced60bce0a16362e6e6ebbe082bfbca8edfc356de75d744edb8479d7ae593b595e241997f7d1a7327f577ea8f5b7bf987bd9afcf387851f7c50fd41c7746eb79773a5f2edcbce6ba8d5fab7ae0de35d7adbfe92d37fee0e686ddcffff2b8679e5cfae5175fbaf0c19ac16f4ffb4a4bef79cdcb1f78e6852f5f74e9b7925f3ce117b92b36fc6bfad4ef3d3d74f97d7bce7ce1a28d279c3b7d6c7d3d839b2ec9e6fdde4b4982f6b47713d1f2037e76cbfa6cb663807bffa6f62d9d9b0637b10cde9ced30f2d9fec1ce7c962486df9d8588e8edc916f386e2341418c68af08ddf911d589fefec2b74f6f6f81b48e890f0a50ada7b504358bab45adfe025dd9debfdaeec567f6063ef209ab43d5ff037771636fa61f97df95e8299fef7f50e0c64070650ea40e7869ef6c22001876cdd25f94278060815cab539dbb9616381868af641caed0f76f6149a9bda0899a16cfe5202c5e818ec231878cc89a099b05219a58c8802f48e926f25d4f2590283a0d8344854ba245b8af4c6f66e2e0924d63021a8e1321026c2f2e846e3142a5adfded3d3cb05ad276a11ad3aa819d617bab71a976605eb8e4e1a1d0b9c7e886aea68f58d72c05ce85ddfdbed87a93a077c9413a5328c5b4ebb76f9f5ef5cd2ffbddf8e7ef1b37ff7c57f7aef93ef5efacbe9bf7ccf3d579e71c30b1f9877ff2df725f7abf75e35e3f1ab1b6abf7679c54585f73f9e7ffd7ffc786477e2a5db0bbfbcfd89273a6f7ff99a958fffe2a94f3d51f5ec9d15b5bd0bfe69e17d3b0aab5ebaf7a1f7fd68e7af87ce7fd73b6ed9f454c39ea74fb61efae6f07bbefa6fee81a7565ebffb8577ad7f26b161fefc595797ffedc92de99a535fdbb4e0dc99952d175c38509e7db43c3774eab79ebce2ea05f91bee3cf8d5bb565f3a774fdf87573f79f7bbbabf79fcc11bbe5f9bb8f5c5ab174ffb55df1d396fce13f71c9fea5e72e2399bcf3af98b8f3dd4f470c5bca5abeedb7fde9a673ef9de7feb3d75e3bf5cf93122c167b7ccda6204cf3d67b87b9da777a4cc6f5ef79bc38feffa59f7da7bfee3ee5f3ffeaf5bfa9f0a2588d611c07f44ac426f2ff8295f30747c98acb0b52f1b36ee06a820f9de4da47be4a9ddfb7a7b3a2084faf259524c8c8eac164dc420a46275f466077a4e2e10e317d66ff4455561ae95d76f25ed24bbbe0b5c614421e28f62c29202e2dd6563fb80dfee8b3ce4aef406867819b72123cbe82ad76362055dbd97e488d1907a407253de7c3b69576d080b3b11fe9b06bb0b9d6d9d3d1dd92d86702ed5cb6408d31b9a87d7734ff0a5dc01e42db45fd29d0592edf47e237512d2e10ad0d0c657bea9b7a3f3d2ad47a85757a0d31c5305837d1ddc2d43d8a8776e20d2e43b37b5e7b73255376fccf6e822810df55e29f888d405dea5c4dd902d887e318dae2aba3cad6bcca0abb367886447873fd49eef6cef014e40e58d68b9348972edba0554d6ff05317960a700d00700008c010101002054ef1d43bf08fa5fc98e2abd54d4b861ba92e2e6e1a8aa4376b5bd177ca49fad081e3efbd969cfed9a0d7de17c2de54b7cbb57c06c74563cebbe8583baaf0d630100b10878da8d563d8c1b45141efffbeccbe992e3382e4214413491809c13ac53aaa3a04188829fea4896f1ceb33df2eeec32336b9fa1a0a2001aea20a108214871d5a5203a2822b74848095c03144017242a7ac49bddf5fe39676e0a7bf7bd376fdecff7be9dc61fed9b15f2e1bf372f105c25f343febaf2b6f9bb671fcd72823b7f773aff6ccc258f36d6c053dcbb7e9df6f88b3b2f744a5b3dc7b34796e203c1c5c0a2811e7a92ebe9a531959c0a6d9da2b7c6579e6ea2136b48d590946bde4480ac0aea42d548daf610ec910adcce4bdd26b5351f530da4b4d607aa030916e303503a6bb592b826d5153d94a0869ec3ea0117fa6aa73a82a95ac51f6b027c30d4fb37d0a9ed0542ab6d1fa4cb1526252c07c6e02426b509e55a9d33bf89ece2e9e990f2198edd0cf7db43ca85e55389e96a908a9cdf70e9415c2a01da0a141d40e8a47beda2a67200baa8b57c5bc7c76c9bcd5a52a14ca5308fbc8bab9d677a54e106904badd653df0ec0844e63f9b3b627341c68ab2fc1545e8585cb442202f7aca60c446c9ac9d8f6835c20f98c13edb28c8b2eb65d2cf03283a78a1e1cde07cddda4640cfa202530343ab0e0c0e7928676132e983789ad368b5e183849dd9e344a2e1c2ec08ad58abf3f3f606b51cbc0d7c350bdd30dcb93c22bab6adb54d8e0844791f25af43647e37a11ce75133f67d95169e156c49d3127e5463c08e1ecb5d2dde1fb469f0bea60d0d2ca8c579b81b225f74dd075a5259e5d8f001e43b6e5073d87db16223fd6577ccf8f1fd7539fbe8756d385c14107898dda7c4c08fb375ae9509172055fb2476662d9e936b134a330d56a2ed5aaed31889ef4d48f9eda12de0bb80417e6f5103807d126dc6e4b641f2f66a9e427a2ae947eea215d412a6878a8979ec43c1508868970d60883ebec3651a20dc46abda906b5d03d644674179f59ecced629d445ca19cb4540e4ca73c1971e0bec5c83cbe7126192659ace698cbf8ac59b33355b4ad50d63693a52aaf6a5e786feeb0a347e0e0a78aca028aa4ccbe81dee2223171ab9822c6a8536b5083b866da21c638199fdaca081be4cf70b8eea63d720a1660ab3bb3276c7883eac5af41ec2250a6515b727a024a5053c2f08b0ed3a247b454af5e8e1f1df0113982ff9b850850657961147913443238fa1b3a6c2aab2c0812716bb8833128804fb95ffc57e2bf0198d49a1ba94144c0af301a91afb141bedccc792949be19b023ba6bc3cf2cee395e2f2e778bd48bfefe4fb8f2fbff2d1d72fe7188eecfdf0cb9dc32f5fcdb216aee747956f3e4d879bec7d71eb12bb772b3bb1b87e7ff8c1c957c9007ef656f7576087c779a8e2ba0deee17102cbf945688e49427e7cfd787834cb6210d7de739f1ccd122cf9279307af7d7b34cba38390fb0fdf79f3ee2c03015cef7eb77f7796341bd7ee0314a48d3529df7ff4e7cfd90e866570de38c9f6c9dcd46ed39f7edba9f0ee3542d2fb14deeace70012b2dbbcd90ff00c6a7af7900010169de0a4bf1da68c633312273e9de4a2661682be9a3abcd44b70002f3fe6c6f38 DMLOG START_BLOCK 5 DMLOG CREATION_OP ROOT 0 DMLOG RLIMIT_OP ACCOUNT_USAGE UPD {"owner":"eosio","net_usage":{"last_ordinal":1262304004,"value_ex":160608,"consumed":1},"cpu_usage":{"last_ordinal":1262304004,"value_ex":303261,"consumed":101},"ram_usage":453263} @@ -197,4 +197,4 @@ DMLOG RLIMIT_OP ACCOUNT_USAGE UPD {"owner":"alice","net_usage":{"last_ordinal":1 DMLOG APPLIED_TRANSACTION 5 a5da917661cfe1fd15ea07da73e09f9e2675f29e3609394b8fb57b522694022005000000043b3d4b0100000005061c1447694382f67c35c70ed92deadb9350a3f72f9cb9fa5542702b0100d007000012000000000000000090000000000000000001010000010000000000ea3055f3d881d2f7fbf2f7cb6081aff84e7aca1dd3914a0948ef4fc9422e734e8d4d5720000000000000002000000000000000010000000000855c34010000000000000002020000000000ea30550000000000ea30550040cbdaa86c52d5010000000000855c3400000000a8ed3232310000000000855c34000000008090b1ca00000000a8ed32320100000000010000000000ea305500000000a8ed323201000000000000000000000000a5da917661cfe1fd15ea07da73e09f9e2675f29e3609394b8fb57b522694022005000000043b3d4b0100000005061c1447694382f67c35c70ed92deadb9350a3f72f9cb9fa5542702b010000000000855c34400100000000000000000000000000 DMLOG RLIMIT_OP STATE UPD {"average_block_net_usage":{"last_ordinal":4,"value_ex":230575556,"consumed":17883},"average_block_cpu_usage":{"last_ordinal":4,"value_ex":432479225,"consumed":4499},"pending_net_usage":376,"pending_cpu_usage":4100,"total_net_weight":0,"total_cpu_weight":0,"total_ram_bytes":0,"virtual_net_limit":1051726,"virtual_cpu_limit":200600} DMLOG RLIMIT_OP STATE UPD {"average_block_net_usage":{"last_ordinal":5,"value_ex":231787427,"consumed":605},"average_block_cpu_usage":{"last_ordinal":5,"value_ex":463041898,"consumed":4529},"pending_net_usage":0,"pending_cpu_usage":0,"total_net_weight":0,"total_cpu_weight":0,"total_ram_bytes":0,"virtual_net_limit":1052778,"virtual_cpu_limit":200800} -DMLOG ACCEPTED_BLOCK 5 05000000050000000400000000000000010000000000ea3055000100000001000240e54a7b27e042b80a810153bec1dd166eef95fa69f6c9886ae283363bc2add8010001ac65c5394281653b4b4ef83ce55bbc235296a3d4d53d227b6cf7023f92543b620400000000000000010000000000ea305505000000010000000000ea305504000000000100000001000240e54a7b27e042b80a810153bec1dd166eef95fa69f6c9886ae283363bc2add801000000000005061c1447694382f67c35c70ed92deadb9350a3f72f9cb9fa5542702b043b3d4b0000000000ea30550000000000041fa25bbe71dbc993529c7492969157cd6769334517fb381c2518038b6a6382d7021a0b4267ccfb7b44da5e2fbd57fb1ea60ee71bd3b9f8b416837762b3d88bf26dff797ee7ac7d53958e15db3fe5e9a6091984126007e376fb8440fb000000000000001f0e193512b825eabbd33482ea2e83d27dc93cac16e065f9ba8ceae6e2813d6d0a4b43ea89522b5dae8f7f88e614d14209418c28a6afc19282cdf1f9cf94d39c250000000029807708239aa7de914d3ed61e9009ab2280bfbc50f1d9769f27f8341ef261980000000000011709e86cb0accf8d81c9e85d34bea4b925ae936626d00c984e4691186891f5bc160ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd18b790108f5e277cf7141dc626a98f7edeb776912278e4cd14a50b763d1d63901a99a59d87e06e09ec5b028a9cbb7749b4a5ad8819004365d02dc4379a8b72412652f5f96006294109b3dd0bbde63693f55324af452b799ee137a81a905eed25299dcb6af692324b899b39f16d5a530a33062804e41f09dc97e9f156b447670735c2186cc36f7bb4aeaf4487b36e57039ccf45a9136aa856a5d569ecca55ef2b4a90c00d55454dc5b059055ca213579c6ea856967712a56017487886a4d4cc0f4e7bf348da00a945489b2a681749eb56f5de00b900014e137ddae39f48f69d674fca8bd82bbd181e714e283f83e1b45d95ca5af40fb89ad3977b653c448f78c25443fcf88330c586bc0e5f3dee10e7f63c76c00249c87fe4fbf7f38c082006b463320dd4a58212e4d32d1f58926b73ca33a247326c2a5e9fd39268d2384e011a68dcaa34c0517d19666e6b33add67351d8c5f69e999ca1e37931bc410a2974286bcb40a24e49c26d0a60513b6aeb8551d264e4717f306b81a37a5afb3b47cedc8ba52fe7a3956c5cd3a656a3174b931d3bb2abb45578befc59f283ecd816a405ad9e3d8f650687709fd68f4b90b41f7d825a365b02c23a636cef88ac2ac00c43bcd2a26394b36614fd4894241d3c451ab0f6fd110958c3423073621a70826e99c3a6138c5061cf291310887c0b5c71fcaffeab90d5deb50d3b9e687cead45071d528b9f6e9693f45ed277af93474fd473ce7d831dae2180cca35d907bd10cb40e0fb64b1085cc5538970158d05a009c24e276fb94e1a0bf6a528b48fbc4ff526ef43112c6543b88db2283a2e077278c315ae2c84719a8b25f25cc88565fbea99f0af56d2c5a48d60a4a5b5c903edfb7db3a736a94ed589d0b797df33ff9d3e1dfce57d2331667353a0eac6b4209b67b843a7262a848af0a49a6e2fa9f6584eb40001043b3d4b0000000000ea30550000000000041fa25bbe71dbc993529c7492969157cd6769334517fb381c2518038b6a6382d7021a0b4267ccfb7b44da5e2fbd57fb1ea60ee71bd3b9f8b416837762b3d88bf26dff797ee7ac7d53958e15db3fe5e9a6091984126007e376fb8440fb000000000000001f0e193512b825eabbd33482ea2e83d27dc93cac16e065f9ba8ceae6e2813d6d0a4b43ea89522b5dae8f7f88e614d14209418c28a6afc19282cdf1f9cf94d39c250200d00700001d01010020438dac40a541d483f964d534967669f59a9b256256fb9e659517014be363a16863863aef6ed65590301e5cb107d8ef3341cb27a0019825dbd40475a565fcc6f70000bd0107e10b5e040071dbc99300000000010000000000ea305500409e9a2264b89a010000000000ea305500000000a8ed32328a010000000000ea30550000000000855c3401000000010002bb30f6894f29bb6fca635b1df728ad77e48fdd6123ce5e4455b0f71e072e7df80100010000000000855c3400804a1401ea305501000001000000010003ebcf44b45a71d4f225768f602d1e2e2b25ef779ee9897fe744bf1a16e85423d50100010000000000855c3400804a1401ea30550100000000d007000012010100206b469b0116de366510ae560294198f79cabb08ac61f4a9b754e59f750bee02bb13347317613e627ca4ed9d9da4095887739f470e2240752c1856890c7d334d9200006307e10b5e040071dbc99300000000010000000000ea30550040cbdaa86c52d5010000000000855c3400000000a8ed3232310000000000855c34000000008090b1ca00000000a8ed32320100000000010000000000ea305500000000a8ed323201000000000101039cfd26139b14c543b9aa61679c8c63175ccf1cb049df7370c45d5747b78d597b14cca4b096a950cac2508ef027892981e64bb9070de407550f1f3ace5f938940c9c09ddf86de45155139a38f0dd563118b4fe4e393d0125e0b64259a3a704ef1 +DMLOG ACCEPTED_BLOCK 5 05000000050000000400000000000000010000000000ea3055000100000001000240e54a7b27e042b80a810153bec1dd166eef95fa69f6c9886ae283363bc2add8010001ac65c5394281653b4b4ef83ce55bbc235296a3d4d53d227b6cf7023f92543b620400000000000000010000000000ea305505000000010000000000ea305504000000000100000001000240e54a7b27e042b80a810153bec1dd166eef95fa69f6c9886ae283363bc2add801000000000005061c1447694382f67c35c70ed92deadb9350a3f72f9cb9fa5542702b043b3d4b0000000000ea30550000000000041fa25bbe71dbc993529c7492969157cd6769334517fb381c2518038b6a6382d7021a0b4267ccfb7b44da5e2fbd57fb1ea60ee71bd3b9f8b416837762b3d88bf26dff797ee7ac7d53958e15db3fe5e9a6091984126007e376fb8440fb000000000000001f0e193512b825eabbd33482ea2e83d27dc93cac16e065f9ba8ceae6e2813d6d0a4b43ea89522b5dae8f7f88e614d14209418c28a6afc19282cdf1f9cf94d39c250000000029807708239aa7de914d3ed61e9009ab2280bfbc50f1d9769f27f8341ef261980000000000011709e86cb0accf8d81c9e85d34bea4b925ae936626d00c984e4691186891f5bc160ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd18b790108f5e277cf7141dc626a98f7edeb776912278e4cd14a50b763d1d63901a99a59d87e06e09ec5b028a9cbb7749b4a5ad8819004365d02dc4379a8b72412652f5f96006294109b3dd0bbde63693f55324af452b799ee137a81a905eed25299dcb6af692324b899b39f16d5a530a33062804e41f09dc97e9f156b447670735c2186cc36f7bb4aeaf4487b36e57039ccf45a9136aa856a5d569ecca55ef2b4a90c00d55454dc5b059055ca213579c6ea856967712a56017487886a4d4cc0f4e7bf348da00a945489b2a681749eb56f5de00b900014e137ddae39f48f69d674fca8bd82bbd181e714e283f83e1b45d95ca5af40fb89ad3977b653c448f78c25443fcf88330c586bc0e5f3dee10e7f63c76c00249c87fe4fbf7f38c082006b463320dd4a58212e4d32d1f58926b73ca33a247326c2a5e9fd39268d2384e011a68dcaa34c0517d19666e6b33add67351d8c5f69e999ca1e37931bc410a2974286bcb40a24e49c26d0a60513b6aeb8551d264e4717f306b81a37a5afb3b47cedc8ba52fe7a3956c5cd3a656a3174b931d3bb2abb45578befc59f283ecd816a405ad9e3d8f650687709fd68f4b90b41f7d825a365b02c23a636cef88ac2ac00c43bcd2a26394b36614fd4894241d3c451ab0f6fd110958c3423073621a70826e99c3a6138c5061cf291310887c0b5c71fcaffeab90d5deb50d3b9e687cead45071d528b9f6e9693f45ed277af93474fd473ce7d831dae2180cca35d907bd10cb40e0fb64b1085cc5538970158d05a009c24e276fb94e1a0bf6a528b48fbc4ff526ef43112c6543b88db2283a2e077278c315ae2c84719a8b25f25cc88565fbea99f0af56d2c5a48d60a4a5b5c903edfb7db3a736a94ed589d0b797df33ff9d3e1dfce57d2331667353a0eac6b4209b67b843a7262a848af0a49a6e2fa9f6584eb40001043b3d4b0000000000ea30550000000000041fa25bbe71dbc993529c7492969157cd6769334517fb381c2518038b6a6382d7021a0b4267ccfb7b44da5e2fbd57fb1ea60ee71bd3b9f8b416837762b3d88bf26dff797ee7ac7d53958e15db3fe5e9a6091984126007e376fb8440fb000000000000001f0e193512b825eabbd33482ea2e83d27dc93cac16e065f9ba8ceae6e2813d6d0a4b43ea89522b5dae8f7f88e614d14209418c28a6afc19282cdf1f9cf94d39c250200d00700001d01010020438dac40a541d483f964d534967669f59a9b256256fb9e659517014be363a16863863aef6ed65590301e5cb107d8ef3341cb27a0019825dbd40475a565fcc6f70000bd0107e10b5e040071dbc99300000000010000000000ea305500409e9a2264b89a010000000000ea305500000000a8ed32328a010000000000ea30550000000000855c3401000000010002bb30f6894f29bb6fca635b1df728ad77e48fdd6123ce5e4455b0f71e072e7df80100010000000000855c3400804a1401ea305501000001000000010003ebcf44b45a71d4f225768f602d1e2e2b25ef779ee9897fe744bf1a16e85423d50100010000000000855c3400804a1401ea30550100000000d007000012010100206b469b0116de366510ae560294198f79cabb08ac61f4a9b754e59f750bee02bb13347317613e627ca4ed9d9da4095887739f470e2240752c1856890c7d334d9200006307e10b5e040071dbc99300000000010000000000ea30550040cbdaa86c52d5010000000000855c3400000000a8ed3232310000000000855c34000000008090b1ca00000000a8ed32320100000000010000000000ea305500000000a8ed3232010000000001013eefa22bab3d9803251f84f37e54dbc00c9f99040eebbd82d53308ca700db1b9 From 486fed3f7fe71a70785e39d4176ff2b9e45a3f3e Mon Sep 17 00:00:00 2001 From: Lin Huang Date: Thu, 4 Apr 2024 09:30:09 -0400 Subject: [PATCH 7/9] make it clear action_mroot_savanna constructed as a std::optional --- libraries/chain/block_state_legacy.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/chain/block_state_legacy.cpp b/libraries/chain/block_state_legacy.cpp index 824cfa8157..2291e2f658 100644 --- a/libraries/chain/block_state_legacy.cpp +++ b/libraries/chain/block_state_legacy.cpp @@ -75,7 +75,7 @@ namespace eosio::chain { ,block( std::move(b) ) ,_pub_keys_recovered( true ) // called by produce_block so signature recovery of trxs must have been done ,_cached_trxs( std::move(trx_metas) ) - ,action_mroot_savanna( action_receipt_digests_savanna ? calculate_merkle(*action_receipt_digests_savanna) : digest_type {} ) + ,action_mroot_savanna( action_receipt_digests_savanna ? std::optional(calculate_merkle(*action_receipt_digests_savanna)) : std::nullopt ) {} block_state_legacy::block_state_legacy(snapshot_detail::snapshot_block_state_legacy_v7&& sbs) From 3465884ddb63aec2308298bf9b65611573ddc1e1 Mon Sep 17 00:00:00 2001 From: Lin Huang Date: Thu, 4 Apr 2024 11:18:55 -0400 Subject: [PATCH 8/9] Make action_receipt_digests_savanna as const& to parameter to block_state_legacy --- libraries/chain/block_state_legacy.cpp | 2 +- libraries/chain/controller.cpp | 2 +- libraries/chain/include/eosio/chain/block_state_legacy.hpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/chain/block_state_legacy.cpp b/libraries/chain/block_state_legacy.cpp index 2291e2f658..28a7735ca6 100644 --- a/libraries/chain/block_state_legacy.cpp +++ b/libraries/chain/block_state_legacy.cpp @@ -66,7 +66,7 @@ namespace eosio::chain { block_state_legacy::block_state_legacy( pending_block_header_state_legacy&& cur, signed_block_ptr&& b, deque&& trx_metas, - std::optional&& action_receipt_digests_savanna, + const std::optional& action_receipt_digests_savanna, const protocol_feature_set& pfs, const validator_t& validator, const signer_callback_type& signer diff --git a/libraries/chain/controller.cpp b/libraries/chain/controller.cpp index 3a7a2c51c6..d9c9c1a458 100644 --- a/libraries/chain/controller.cpp +++ b/libraries/chain/controller.cpp @@ -360,7 +360,7 @@ struct assembled_block { return std::visit(overloaded{[&](assembled_block_legacy& ab) { auto bsp = std::make_shared( std::move(ab.pending_block_header_state), std::move(ab.unsigned_block), - std::move(ab.trx_metas), std::move(ab.action_receipt_digests_savanna), pfs, validator, signer); + std::move(ab.trx_metas), ab.action_receipt_digests_savanna, pfs, validator, signer); return completed_block{block_handle{std::move(bsp)}}; }, [&](assembled_block_if& ab) { diff --git a/libraries/chain/include/eosio/chain/block_state_legacy.hpp b/libraries/chain/include/eosio/chain/block_state_legacy.hpp index 4625b0045d..bdc0fb645d 100644 --- a/libraries/chain/include/eosio/chain/block_state_legacy.hpp +++ b/libraries/chain/include/eosio/chain/block_state_legacy.hpp @@ -27,7 +27,7 @@ namespace eosio::chain { block_state_legacy( pending_block_header_state_legacy&& cur, signed_block_ptr&& b, // unsigned block deque&& trx_metas, - std::optional&& action_receipt_digests_savanna, + const std::optional& action_receipt_digests_savanna, const protocol_feature_set& pfs, const validator_t& validator, const signer_callback_type& signer From 93163ec5ed63b5623d6534415fef187ce99ba764 Mon Sep 17 00:00:00 2001 From: Lin Huang Date: Thu, 4 Apr 2024 13:34:05 -0400 Subject: [PATCH 9/9] store action_mroot only for the last block in the process of constructing temporary savanna block --- libraries/chain/controller.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libraries/chain/controller.cpp b/libraries/chain/controller.cpp index d9c9c1a458..5645b2b6b3 100644 --- a/libraries/chain/controller.cpp +++ b/libraries/chain/controller.cpp @@ -4334,6 +4334,7 @@ struct controller_impl { // instant_finality_extension -- the Savanna Genesis Block. // Then start from the Savanna Genesis Block to create corresponding // Savanna blocks. + // genesis_block already contains all information for finality_data. if (legacy_root->header.contains_header_extension(instant_finality_extension::extension_id())) { prev = block_state::create_if_genesis_block(*legacy_root); } else { @@ -4356,8 +4357,11 @@ struct controller_impl { protocol_features.get_protocol_feature_set(), validator_t{}, skip_validate_signee); - assert((*bitr)->action_mroot_savanna); - new_bsp->action_mroot = *((*bitr)->action_mroot_savanna); // required by finality_data + // We only need action_mroot of the last block for finality_data + if ((bitr + 1) == legacy_branch.rend()) { + assert((*bitr)->action_mroot_savanna); + new_bsp->action_mroot = *((*bitr)->action_mroot_savanna); + } prev = new_bsp; }