diff --git a/Cargo.lock b/Cargo.lock index 7f5363db2..97ab1a660 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -155,16 +155,6 @@ dependencies = [ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "bincode" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "bit-set" version = "0.4.0" @@ -984,49 +974,6 @@ dependencies = [ "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "ethcore-light" -version = "1.12.0" -dependencies = [ - "bincode 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "common-types 0.1.0", - "error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", - "ethcore 1.12.0", - "ethcore-blockchain 0.1.0", - "ethcore-db 0.1.0", - "ethcore-io 1.12.0", - "ethcore-network 1.12.0", - "ethereum-types 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "failsafe 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "fastmap 0.1.0", - "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "hash-db 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "heapsize 0.4.2 (git+https://github.com/cheme/heapsize.git?branch=ec-macfix)", - "itertools 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", - "journaldb 0.2.0", - "keccak-hash 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "keccak-hasher 0.1.1", - "kvdb 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "memory-cache 0.1.0", - "memory-db 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-bytes 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "patricia-trie-ethereum 0.1.0", - "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "rlp 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rlp_derive 0.1.0", - "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "stats 0.1.0", - "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", - "trie-db 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "triehash-ethereum 0.2.0", - "vm 0.1.0", -] - [[package]] name = "ethcore-logger" version = "1.12.0" @@ -1255,7 +1202,6 @@ dependencies = [ "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)", "ethcore 1.12.0", "ethcore-io 1.12.0", - "ethcore-light 1.12.0", "ethcore-network 1.12.0", "ethcore-network-devp2p 1.12.0", "ethcore-private-tx 1.0.0", @@ -1434,16 +1380,6 @@ dependencies = [ "vm 0.1.0", ] -[[package]] -name = "failsafe" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "failure" version = "0.1.6" @@ -2675,7 +2611,6 @@ dependencies = [ "ethcore-call-contract 0.1.0", "ethcore-db 0.1.0", "ethcore-io 1.12.0", - "ethcore-light 1.12.0", "ethcore-logger 1.12.0", "ethcore-miner 1.12.0", "ethcore-network 1.12.0", @@ -2826,7 +2761,6 @@ dependencies = [ "ethcore 1.12.0", "ethcore-accounts 0.1.0", "ethcore-io 1.12.0", - "ethcore-light 1.12.0", "ethcore-logger 1.12.0", "ethcore-miner 1.12.0", "ethcore-network 1.12.0", @@ -2837,7 +2771,6 @@ dependencies = [ "ethkey 0.3.0", "ethstore 0.2.1", "fake-fetch 0.0.1", - "fastmap 0.1.0", "fetch 0.1.0", "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", "itertools 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4843,7 +4776,6 @@ dependencies = [ "checksum base-x 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "1b20b618342cf9891c292c4f5ac2cde7287cc5c87e87e9c769d617793607dec1" "checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" "checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" -"checksum bincode 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e103c8b299b28a9c6990458b7013dc4a8356a9b854c51b9883241f5866fac36e" "checksum bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d9bf6104718e80d7b26a68fdbacff3481cfc05df670821affc7e9cbc1884400c" "checksum bit-vec 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "02b4ff8b16e6076c3e14220b39fbc1fabb6737522281a388998046859400895f" "checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d" @@ -4905,7 +4837,6 @@ dependencies = [ "checksum ethbloom 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a93a43ce2e9f09071449da36bfa7a1b20b950ee344b6904ff23de493b03b386" "checksum ethereum-types 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6e742184dc63a01c8ea0637369f8faa27c40f537949908a237f95c05e68d2c96" "checksum ethereum-types-serialize 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1873d77b32bc1891a79dad925f2acbc318ee942b38b9110f9dbc5fbeffcea350" -"checksum failsafe 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf04c6ffd217a68c73fdf40eb3331c484fd7a9fa4fd1028fcf74456ef889ca12" "checksum failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f8273f13c977665c5db7eb2b99ae520952fe5ac831ae4cd09d80c4c7042b5ed9" "checksum failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0bc225b78e0391e4b8683440bf2e63c2deeeb2ce5189eab46e2b68c6d3725d08" "checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" diff --git a/Cargo.toml b/Cargo.toml index 8f069c884..419508769 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -38,7 +38,6 @@ ethcore-blockchain = { path = "ethcore/blockchain" } ethcore-call-contract = { path = "ethcore/call-contract"} ethcore-db = { path = "ethcore/db" } ethcore-io = { path = "util/io" } -ethcore-light = { path = "ethcore/light" } ethcore-logger = { path = "parity/logger" } ethcore-miner = { path = "miner" } ethcore-network = { path = "util/network" } diff --git a/ethcore/db/src/db.rs b/ethcore/db/src/db.rs index 290a22255..5eeb4e0c9 100644 --- a/ethcore/db/src/db.rs +++ b/ethcore/db/src/db.rs @@ -37,8 +37,6 @@ pub const COL_TRACE: Option = Some(4); pub const COL_ACCOUNT_BLOOM: Option = Some(5); /// Column for general information from the local node which can persist. pub const COL_NODE_INFO: Option = Some(6); -/// Column for the light client chain. -pub const COL_LIGHT_CHAIN: Option = Some(7); /// Number of columns in DB pub const NUM_COLUMNS: Option = Some(8); diff --git a/ethcore/light/Cargo.toml b/ethcore/light/Cargo.toml deleted file mode 100644 index bf5866846..000000000 --- a/ethcore/light/Cargo.toml +++ /dev/null @@ -1,52 +0,0 @@ -[package] -description = "Parity Ethereum (EthCore) Light Client Implementation (Block Import IO Service, Blockchain Data Fetching, Light Client Header Chain Storage, Parity Light Protocol (PLP) Provider, Light Transaction Queue, CHT Definitions, Light Client Data Cache), Parity Light Protocol (PLP) Implementation, P2P Network I/O and Event Context Generalization, Peer Error Handling & Punishment, Request Load Timer & Distribution Manager, Pending Request Set Storage, Request Credit Management, Light Client Request Types, Request Chain Builder Utility, On-demand Chain Request Service over LES (for RPCs), ResponseGuard Implementation)" -homepage = "http://parity.io" -license = "GPL-3.0" -name = "ethcore-light" -version = "1.12.0" -authors = ["Parity Technologies "] - -[dependencies] -log = "0.4" -parity-bytes = "0.1" -common-types = { path = "../types" } -ethcore = { path = ".."} -ethcore-db = { path = "../db" } -ethcore-blockchain = { path = "../blockchain" } -ethereum-types = "0.4" -memory-db = "0.11.0" -trie-db = "0.11.0" -patricia-trie-ethereum = { path = "../../util/patricia-trie-ethereum" } -ethcore-network = { path = "../../util/network" } -ethcore-io = { path = "../../util/io" } -hash-db = "0.11.0" -heapsize = "0.4" -vm = { path = "../vm" } -fastmap = { path = "../../util/fastmap" } -failsafe = { version = "0.3.0", default-features = false, features = ["parking_lot_mutex"] } -rlp = { version = "0.3.0", features = ["ethereum"] } -rlp_derive = { path = "../../util/rlp-derive" } -smallvec = "0.6" -futures = "0.1" -rand = "0.4" -itertools = "0.5" -bincode = "0.8.0" -serde = "1.0" -serde_derive = "1.0" -parking_lot = "0.7" -stats = { path = "../../util/stats" } -keccak-hash = "0.1" -keccak-hasher = { path = "../../util/keccak-hasher" } -triehash-ethereum = { version = "0.2", path = "../../util/triehash-ethereum" } -kvdb = "0.1" -memory-cache = { path = "../../util/memory-cache" } -error-chain = { version = "0.12", default-features = false } -journaldb = { path = "../../util/journaldb" } - -[dev-dependencies] -ethcore = { path = "..", features = ["test-helpers"] } -kvdb-memorydb = "0.1" -tempdir = "0.3" - -[features] -default = [] diff --git a/ethcore/light/src/cache.rs b/ethcore/light/src/cache.rs deleted file mode 100644 index 8d131c748..000000000 --- a/ethcore/light/src/cache.rs +++ /dev/null @@ -1,192 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Cache for data fetched from the network. -//! -//! Stores ancient block headers, bodies, receipts, and total difficulties. -//! Furthermore, stores a "gas price corpus" of relative recency, which is a sorted -//! vector of all gas prices from a recent range of blocks. - -use std::time::{Duration, Instant}; - -use common_types::{encoded, receipt::Receipt, BlockNumber}; -use ethereum_types::{H256, U256}; -use heapsize::HeapSizeOf; -use memory_cache::MemoryLruCache; -use stats::Corpus; - -/// Configuration for how much data to cache. -#[derive(Copy, Clone, Debug, PartialEq, Eq)] -pub struct CacheSizes { - /// Maximum size, in bytes, of cached headers. - pub headers: usize, - /// Maximum size, in bytes, of cached canonical hashes. - pub canon_hashes: usize, - /// Maximum size, in bytes, of cached block bodies. - pub bodies: usize, - /// Maximum size, in bytes, of cached block receipts. - pub receipts: usize, - /// Maximum size, in bytes, of cached chain score for the block. - pub chain_score: usize, -} - -impl Default for CacheSizes { - fn default() -> Self { - const MB: usize = 1024 * 1024; - CacheSizes { - headers: 10 * MB, - canon_hashes: 3 * MB, - bodies: 20 * MB, - receipts: 10 * MB, - chain_score: 7 * MB, - } - } -} - -/// The light client data cache. -/// -/// Note that almost all getter methods take `&mut self` due to the necessity to update -/// the underlying LRU-caches on read. -/// [LRU-cache](https://en.wikipedia.org/wiki/Cache_replacement_policies#Least_Recently_Used_.28LRU.29) -pub struct Cache { - headers: MemoryLruCache, - canon_hashes: MemoryLruCache, - bodies: MemoryLruCache, - receipts: MemoryLruCache>, - chain_score: MemoryLruCache, - corpus: Option<(Corpus, Instant)>, - corpus_expiration: Duration, -} - -impl Cache { - /// Create a new data cache with the given sizes and gas price corpus expiration time. - pub fn new(sizes: CacheSizes, corpus_expiration: Duration) -> Self { - Cache { - headers: MemoryLruCache::new(sizes.headers), - canon_hashes: MemoryLruCache::new(sizes.canon_hashes), - bodies: MemoryLruCache::new(sizes.bodies), - receipts: MemoryLruCache::new(sizes.receipts), - chain_score: MemoryLruCache::new(sizes.chain_score), - corpus: None, - corpus_expiration, - } - } - - /// Query header by hash. - pub fn block_header(&mut self, hash: &H256) -> Option { - self.headers.get_mut(hash).cloned() - } - - /// Query hash by number. - pub fn block_hash(&mut self, num: BlockNumber) -> Option { - self.canon_hashes.get_mut(&num).map(|h| *h) - } - - /// Query block body by block hash. - pub fn block_body(&mut self, hash: &H256) -> Option { - self.bodies.get_mut(hash).cloned() - } - - /// Query block receipts by block hash. - pub fn block_receipts(&mut self, hash: &H256) -> Option> { - self.receipts.get_mut(hash).cloned() - } - - /// Query chain score by block hash. - pub fn chain_score(&mut self, hash: &H256) -> Option { - self.chain_score.get_mut(hash).map(|h| *h) - } - - /// Cache the given header. - pub fn insert_block_header(&mut self, hash: H256, hdr: encoded::Header) { - self.headers.insert(hash, hdr); - } - - /// Cache the given canonical block hash. - pub fn insert_block_hash(&mut self, num: BlockNumber, hash: H256) { - self.canon_hashes.insert(num, hash); - } - - /// Cache the given block body. - pub fn insert_block_body(&mut self, hash: H256, body: encoded::Body) { - self.bodies.insert(hash, body); - } - - /// Cache the given block receipts. - pub fn insert_block_receipts(&mut self, hash: H256, receipts: Vec) { - self.receipts.insert(hash, receipts); - } - - /// Cache the given chain scoring. - pub fn insert_chain_score(&mut self, hash: H256, score: U256) { - self.chain_score.insert(hash, score); - } - - /// Get gas price corpus, if recent enough. - pub fn gas_price_corpus(&self) -> Option> { - let now = Instant::now(); - - self.corpus.as_ref().and_then(|&(ref corpus, ref tm)| { - if *tm + self.corpus_expiration >= now { - Some(corpus.clone()) - } else { - None - } - }) - } - - /// Set the cached gas price corpus. - pub fn set_gas_price_corpus(&mut self, corpus: Corpus) { - self.corpus = Some((corpus, Instant::now())) - } - - /// Get the memory used. - pub fn mem_used(&self) -> usize { - self.heap_size_of_children() - } -} - -impl HeapSizeOf for Cache { - fn heap_size_of_children(&self) -> usize { - self.headers.current_size() - + self.canon_hashes.current_size() - + self.bodies.current_size() - + self.receipts.current_size() - + self.chain_score.current_size() - // TODO: + corpus - } -} - -#[cfg(test)] -mod tests { - use super::Cache; - use std::time::Duration; - - #[test] - fn corpus_inaccessible() { - let duration = Duration::from_secs(20); - let mut cache = Cache::new(Default::default(), duration.clone()); - - cache.set_gas_price_corpus(vec![].into()); - assert_eq!(cache.gas_price_corpus(), Some(vec![].into())); - - { - let corpus_time = &mut cache.corpus.as_mut().unwrap().1; - *corpus_time = *corpus_time - duration; - } - assert!(cache.gas_price_corpus().is_none()); - } -} diff --git a/ethcore/light/src/cht.rs b/ethcore/light/src/cht.rs deleted file mode 100644 index 3d11c4aa2..000000000 --- a/ethcore/light/src/cht.rs +++ /dev/null @@ -1,227 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Canonical hash trie definitions and helper functions. -//! -//! Each CHT is a trie mapping block numbers to canonical hashes and total difficulty. -//! One is generated for every `SIZE` blocks, allowing us to discard those blocks in -//! favor of the trie root. When the "ancient" blocks need to be accessed, we simply -//! request an inclusion proof of a specific block number against the trie with the -//! root has. A correct proof implies that the claimed block is identical to the one -//! we discarded. - -use bytes::Bytes; -use common_types::ids::BlockId; -use ethereum_types::{H256, U256}; -use ethtrie::{self, TrieDB, TrieDBMut}; -use hash_db::HashDB; -use journaldb::new_memory_db; -use keccak_hasher::KeccakHasher; -use kvdb::DBValue; -use memory_db::MemoryDB; -use rlp::{Rlp, RlpStream}; -use trie::{Recorder, Trie, TrieMut}; - -// encode a key. -macro_rules! key { - ($num: expr) => { - ::rlp::encode(&$num) - }; -} - -macro_rules! val { - ($hash: expr, $td: expr) => {{ - let mut stream = RlpStream::new_list(2); - stream.append(&$hash).append(&$td); - stream.drain() - }}; -} - -/// The size of each CHT. -pub const SIZE: u64 = 2048; - -/// A canonical hash trie. This is generic over any database it can query. -/// See module docs for more details. -#[derive(Debug, Clone)] -pub struct CHT> { - db: DB, - root: H256, // the root of this CHT. - number: u64, -} - -impl> CHT { - /// Query the root of the CHT. - pub fn root(&self) -> H256 { - self.root - } - - /// Query the number of the CHT. - pub fn number(&self) -> u64 { - self.number - } - - /// Generate an inclusion proof for the entry at a specific block. - /// Nodes before level `from_level` will be omitted. - /// Returns an error on an incomplete trie, and `Ok(None)` on an unprovable request. - pub fn prove(&self, num: u64, from_level: u32) -> ethtrie::Result>> { - if block_to_cht_number(num) != Some(self.number) { - return Ok(None); - } - - let mut recorder = Recorder::with_depth(from_level); - let db: &dyn HashDB<_, _> = &self.db; - let t = TrieDB::new(&db, &self.root)?; - t.get_with(&key!(num), &mut recorder)?; - - Ok(Some(recorder.drain().into_iter().map(|x| x.data).collect())) - } -} - -/// Block information necessary to build a CHT. -pub struct BlockInfo { - /// The block's hash. - pub hash: H256, - /// The block's parent's hash. - pub parent_hash: H256, - /// The block's total difficulty. - pub total_difficulty: U256, -} - -/// Build an in-memory CHT from a closure which provides necessary information -/// about blocks. If the fetcher ever fails to provide the info, the CHT -/// will not be generated. -pub fn build(cht_num: u64, mut fetcher: F) -> Option>> -where - F: FnMut(BlockId) -> Option, -{ - let mut db = new_memory_db(); - - // start from the last block by number and work backwards. - let last_num = start_number(cht_num + 1) - 1; - let mut id = BlockId::Number(last_num); - - let mut root = H256::default(); - - { - let mut t = TrieDBMut::new(&mut db, &mut root); - for blk_num in (0..SIZE).map(|n| last_num - n) { - let info = match fetcher(id) { - Some(info) => info, - None => return None, - }; - - id = BlockId::Hash(info.parent_hash); - t.insert(&key!(blk_num), &val!(info.hash, info.total_difficulty)) - .expect("fresh in-memory database is infallible; qed"); - } - } - - Some(CHT { - db, - root, - number: cht_num, - }) -} - -/// Compute a CHT root from an iterator of (hash, td) pairs. Fails if shorter than -/// SIZE items. The items are assumed to proceed sequentially from `start_number(cht_num)`. -/// Discards the trie's nodes. -pub fn compute_root(cht_num: u64, iterable: I) -> Option -where - I: IntoIterator, -{ - let mut v = Vec::with_capacity(SIZE as usize); - let start_num = start_number(cht_num) as usize; - - for (i, (h, td)) in iterable.into_iter().take(SIZE as usize).enumerate() { - v.push((key!(i + start_num), val!(h, td))) - } - - if v.len() == SIZE as usize { - Some(::triehash::trie_root(v)) - } else { - None - } -} - -/// Check a proof for a CHT. -/// Given a set of a trie nodes, a number to query, and a trie root, -/// verify the given trie branch and extract the canonical hash and total difficulty. -// TODO: better support for partially-checked queries. -pub fn check_proof(proof: &[Bytes], num: u64, root: H256) -> Option<(H256, U256)> { - let mut db = new_memory_db(); - - for node in proof { - db.insert(&node[..]); - } - let res = match TrieDB::new(&db, &root) { - Err(_) => return None, - Ok(trie) => trie.get_with(&key!(num), |val: &[u8]| { - let rlp = Rlp::new(val); - rlp.val_at::(0) - .and_then(|h| rlp.val_at::(1).map(|td| (h, td))) - .ok() - }), - }; - - match res { - Ok(Some(Some((hash, td)))) => Some((hash, td)), - _ => None, - } -} - -/// Convert a block number to a CHT number. -/// Returns `None` for `block_num` == 0, `Some` otherwise. -pub fn block_to_cht_number(block_num: u64) -> Option { - match block_num { - 0 => None, - n => Some((n - 1) / SIZE), - } -} - -/// Get the starting block of a given CHT. -/// CHT 0 includes block 1...SIZE, -/// CHT 1 includes block SIZE + 1 ... 2*SIZE -/// More generally: CHT N includes block (1 + N*SIZE)...((N+1)*SIZE). -/// This is because the genesis hash is assumed to be known -/// and including it would be redundant. -pub fn start_number(cht_num: u64) -> u64 { - (cht_num * SIZE) + 1 -} - -#[cfg(test)] -mod tests { - #[test] - fn size_is_lt_usize() { - // to ensure safe casting on the target platform. - assert!(::cht::SIZE < usize::max_value() as u64) - } - - #[test] - fn block_to_cht_number() { - assert!(::cht::block_to_cht_number(0).is_none()); - assert_eq!(::cht::block_to_cht_number(1).unwrap(), 0); - assert_eq!(::cht::block_to_cht_number(::cht::SIZE + 1).unwrap(), 1); - assert_eq!(::cht::block_to_cht_number(::cht::SIZE).unwrap(), 0); - } - - #[test] - fn start_number() { - assert_eq!(::cht::start_number(0), 1); - assert_eq!(::cht::start_number(1), ::cht::SIZE + 1); - assert_eq!(::cht::start_number(2), ::cht::SIZE * 2 + 1); - } -} diff --git a/ethcore/light/src/client/fetch.rs b/ethcore/light/src/client/fetch.rs deleted file mode 100644 index b9cb261c9..000000000 --- a/ethcore/light/src/client/fetch.rs +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Trait for fetching chain data. - -use std::sync::Arc; - -use common_types::{encoded, header::Header, receipt::Receipt}; -use ethcore::{ - engines::{EthEngine, StateDependentProof}, - machine::EthereumMachine, -}; -use ethereum_types::H256; -use futures::future::IntoFuture; - -/// Provides full chain data. -pub trait ChainDataFetcher: Send + Sync + 'static { - /// Error type when data unavailable. - type Error: ::std::fmt::Debug; - - /// Future for fetching block body. - type Body: IntoFuture; - /// Future for fetching block receipts. - type Receipts: IntoFuture, Error = Self::Error>; - /// Future for fetching epoch transition - type Transition: IntoFuture, Error = Self::Error>; - - /// Fetch a block body. - fn block_body(&self, header: &Header) -> Self::Body; - - /// Fetch block receipts. - fn block_receipts(&self, header: &Header) -> Self::Receipts; - - /// Fetch epoch transition proof at given header. - fn epoch_transition( - &self, - _hash: H256, - _engine: Arc, - _checker: Arc>, - ) -> Self::Transition; -} - -/// Fetcher implementation which cannot fetch anything. -pub struct Unavailable; - -/// Create a fetcher which has all data unavailable. -pub fn unavailable() -> Unavailable { - Unavailable -} - -impl ChainDataFetcher for Unavailable { - type Error = &'static str; - - type Body = Result; - type Receipts = Result, &'static str>; - type Transition = Result, &'static str>; - - fn block_body(&self, _header: &Header) -> Self::Body { - Err("fetching block bodies unavailable") - } - - fn block_receipts(&self, _header: &Header) -> Self::Receipts { - Err("fetching block receipts unavailable") - } - - fn epoch_transition( - &self, - _hash: H256, - _engine: Arc, - _checker: Arc>, - ) -> Self::Transition { - Err("fetching epoch transition proofs unavailable") - } -} diff --git a/ethcore/light/src/client/header_chain.rs b/ethcore/light/src/client/header_chain.rs deleted file mode 100644 index a9699aa74..000000000 --- a/ethcore/light/src/client/header_chain.rs +++ /dev/null @@ -1,1347 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Light client header chain. -//! -//! Unlike a full node's `BlockChain` this doesn't store much in the database. -//! It stores candidates for the last 2048-4096 blocks as well as CHT roots for -//! historical blocks all the way to the genesis. If the engine makes use -//! of epoch transitions, those are stored as well. -//! -//! This is separate from the `BlockChain` for two reasons: -//! - It stores only headers (and a pruned subset of them) -//! - To allow for flexibility in the database layout.. - -use std::{collections::BTreeMap, sync::Arc}; - -use cache::Cache; -use cht; -use common_types::{block_status::BlockStatus, encoded, header::Header, ids::BlockId}; -use ethcore::{ - engines::epoch::{PendingTransition as PendingEpochTransition, Transition as EpochTransition}, - error::{BlockError, Error, ErrorKind as EthcoreErrorKind, EthcoreResult}, - spec::{Spec, SpecHardcodedSync}, -}; -use ethereum_types::{H256, H264, U256}; -use fastmap::H256FastMap; -use heapsize::HeapSizeOf; -use kvdb::{DBTransaction, KeyValueDB}; -use parking_lot::{Mutex, RwLock}; -use rlp::{Decodable, DecoderError, Encodable, Rlp, RlpStream}; -use smallvec::SmallVec; - -/// Store at least this many candidate headers at all times. -/// Also functions as the delay for computing CHTs as they aren't -/// relevant to any blocks we've got in memory. -const HISTORY: u64 = 2048; - -/// The best block key. Maps to an RLP list: [best_era, last_era] -const CURRENT_KEY: &[u8] = &*b"best_and_latest"; - -/// Key storing the last canonical epoch transition. -const LAST_CANONICAL_TRANSITION: &[u8] = &*b"canonical_transition"; - -/// Information about a block. -#[derive(Debug, Clone)] -pub struct BlockDescriptor { - /// The block's hash - pub hash: H256, - /// The block's number - pub number: u64, - /// The block's total difficulty. - pub total_difficulty: U256, -} - -// best block data -#[derive(RlpEncodable, RlpDecodable)] -struct BestAndLatest { - best_num: u64, - latest_num: u64, -} - -impl BestAndLatest { - fn new(best_num: u64, latest_num: u64) -> Self { - BestAndLatest { - best_num, - latest_num, - } - } -} - -// candidate block description. -struct Candidate { - hash: H256, - parent_hash: H256, - total_difficulty: U256, -} - -struct Entry { - candidates: SmallVec<[Candidate; 3]>, // 3 arbitrarily chosen - canonical_hash: H256, -} - -impl HeapSizeOf for Entry { - fn heap_size_of_children(&self) -> usize { - if self.candidates.spilled() { - self.candidates.capacity() * ::std::mem::size_of::() - } else { - 0 - } - } -} - -impl Encodable for Entry { - fn rlp_append(&self, s: &mut RlpStream) { - s.begin_list(self.candidates.len()); - - for candidate in &self.candidates { - s.begin_list(3) - .append(&candidate.hash) - .append(&candidate.parent_hash) - .append(&candidate.total_difficulty); - } - } -} - -impl Decodable for Entry { - fn decode(rlp: &Rlp) -> Result { - let mut candidates = SmallVec::<[Candidate; 3]>::new(); - - for item in rlp.iter() { - candidates.push(Candidate { - hash: item.val_at(0)?, - parent_hash: item.val_at(1)?, - total_difficulty: item.val_at(2)?, - }) - } - - if candidates.is_empty() { - return Err(DecoderError::Custom("Empty candidates vector submitted.")); - } - - // rely on the invariant that the canonical entry is always first. - let canon_hash = candidates[0].hash; - Ok(Entry { - candidates, - canonical_hash: canon_hash, - }) - } -} - -fn cht_key(number: u64) -> String { - format!("{:08x}_canonical", number) -} - -fn era_key(number: u64) -> String { - format!("candidates_{}", number) -} - -fn pending_transition_key(block_hash: H256) -> H264 { - const LEADING: u8 = 1; - - let mut key = H264::default(); - - key[0] = LEADING; - key.0[1..].copy_from_slice(&block_hash.0[..]); - - key -} - -fn transition_key(block_hash: H256) -> H264 { - const LEADING: u8 = 2; - - let mut key = H264::default(); - - key[0] = LEADING; - key.0[1..].copy_from_slice(&block_hash.0[..]); - - key -} - -// encode last canonical transition entry: header and proof. -fn encode_canonical_transition(header: &Header, proof: &[u8]) -> Vec { - let mut stream = RlpStream::new_list(2); - stream.append(header).append(&proof); - stream.out() -} - -// decode last canonical transition entry. -fn decode_canonical_transition(t: &[u8]) -> Result<(Header, &[u8]), DecoderError> { - let rlp = Rlp::new(t); - - Ok((rlp.val_at(0)?, rlp.at(1)?.data()?)) -} - -/// Pending changes from `insert` to be applied after the database write has finished. -pub struct PendingChanges { - best_block: Option, // new best block. -} - -/// Whether or not the hardcoded sync feature is allowed. -pub enum HardcodedSync { - Allow, - Deny, -} - -/// Header chain. See module docs for more details. -pub struct HeaderChain { - genesis_header: encoded::Header, // special-case the genesis. - candidates: RwLock>, - best_block: RwLock, - live_epoch_proofs: RwLock>, - db: Arc, - col: Option, - cache: Arc>, -} - -impl HeaderChain { - /// Create a new header chain given this genesis block and database to read from. - pub fn new( - db: Arc, - col: Option, - spec: &Spec, - cache: Arc>, - allow_hs: HardcodedSync, - ) -> Result { - let mut live_epoch_proofs = ::std::collections::HashMap::default(); - - let genesis = ::rlp::encode(&spec.genesis_header()); - let decoded_header = spec.genesis_header(); - - let chain = if let Some(current) = db.get(col, CURRENT_KEY)? { - let curr: BestAndLatest = ::rlp::decode(¤t).expect("decoding db value failed"); - - let mut cur_number = curr.latest_num; - let mut candidates = BTreeMap::new(); - - // load all era entries, referenced headers within them, - // and live epoch proofs. - while let Some(entry) = db.get(col, era_key(cur_number).as_bytes())? { - let entry: Entry = ::rlp::decode(&entry).expect("decoding db value failed"); - trace!(target: "chain", "loaded header chain entry for era {} with {} candidates", - cur_number, entry.candidates.len()); - - for c in &entry.candidates { - let key = transition_key(c.hash); - - if let Some(proof) = db.get(col, &*key)? { - live_epoch_proofs.insert( - c.hash, - EpochTransition { - block_hash: c.hash, - block_number: cur_number, - proof: proof.into_vec(), - }, - ); - } - } - candidates.insert(cur_number, entry); - - cur_number -= 1; - } - - // fill best block block descriptor. - let best_block = { - let era = match candidates.get(&curr.best_num) { - Some(era) => era, - None => bail!("Database corrupt: highest block referenced but no data."), - }; - - let best = &era.candidates[0]; - BlockDescriptor { - hash: best.hash, - number: curr.best_num, - total_difficulty: best.total_difficulty, - } - }; - - HeaderChain { - genesis_header: encoded::Header::new(genesis), - best_block: RwLock::new(best_block), - candidates: RwLock::new(candidates), - live_epoch_proofs: RwLock::new(live_epoch_proofs), - db, - col, - cache, - } - } else { - let chain = HeaderChain { - genesis_header: encoded::Header::new(genesis), - best_block: RwLock::new(BlockDescriptor { - hash: decoded_header.hash(), - number: 0, - total_difficulty: *decoded_header.difficulty(), - }), - candidates: RwLock::new(BTreeMap::new()), - live_epoch_proofs: RwLock::new(live_epoch_proofs), - db: db.clone(), - col, - cache, - }; - - // insert the hardcoded sync into the database. - if let (&Some(ref hardcoded_sync), HardcodedSync::Allow) = - (&spec.hardcoded_sync, allow_hs) - { - let mut batch = db.transaction(); - - // insert the hardcoded CHT roots into the database. - for (cht_num, cht_root) in hardcoded_sync.chts.iter().enumerate() { - batch.put( - col, - cht_key(cht_num as u64).as_bytes(), - &::rlp::encode(cht_root), - ); - } - - let decoded_header = hardcoded_sync.header.decode()?; - let decoded_header_num = decoded_header.number(); - - // write the block in the DB. - info!(target: "chain", "Inserting hardcoded block #{} in chain", decoded_header_num); - let pending = chain.insert_with_td( - &mut batch, - &decoded_header, - hardcoded_sync.total_difficulty, - None, - )?; - - // check that we have enough hardcoded CHT roots. avoids panicking later. - let cht_num = cht::block_to_cht_number(decoded_header_num - 1) - .expect("specs provided a hardcoded block with height 0"); - if cht_num >= hardcoded_sync.chts.len() as u64 { - warn!(target: "chain", "specs didn't provide enough CHT roots for its \ - hardcoded block ; falling back to non-hardcoded sync \ - mode"); - } else { - db.write_buffered(batch); - chain.apply_pending(pending); - } - } - - chain - }; - - // instantiate genesis epoch data if it doesn't exist. - if chain.db.get(col, LAST_CANONICAL_TRANSITION)?.is_none() { - let genesis_data = spec.genesis_epoch_data()?; - - { - let mut batch = chain.db.transaction(); - let data = encode_canonical_transition(&decoded_header, &genesis_data); - batch.put_vec(col, LAST_CANONICAL_TRANSITION, data); - chain.db.write(batch)?; - } - } - - Ok(chain) - } - - /// Insert a pre-verified header. - /// - /// This blindly trusts that the data given to it is sensible. - /// Returns a set of pending changes to be applied with `apply_pending` - /// before the next call to insert and after the transaction has been written. - /// - /// If the block is an epoch transition, provide the transition along with - /// the header. - pub fn insert( - &self, - transaction: &mut DBTransaction, - header: &Header, - transition_proof: Option>, - ) -> EthcoreResult { - self.insert_inner(transaction, header, None, transition_proof) - } - - /// Insert a pre-verified header, with a known total difficulty. Similary to `insert`. - /// - /// This blindly trusts that the data given to it is sensible. - pub fn insert_with_td( - &self, - transaction: &mut DBTransaction, - header: &Header, - total_difficulty: U256, - transition_proof: Option>, - ) -> EthcoreResult { - self.insert_inner( - transaction, - header, - Some(total_difficulty), - transition_proof, - ) - } - - fn insert_inner( - &self, - transaction: &mut DBTransaction, - header: &Header, - total_difficulty: Option, - transition_proof: Option>, - ) -> EthcoreResult { - let hash = header.hash(); - let number = header.number(); - let parent_hash = *header.parent_hash(); - let transition = transition_proof.map(|proof| EpochTransition { - block_hash: hash, - block_number: number, - proof, - }); - - let mut pending = PendingChanges { best_block: None }; - - // hold candidates the whole time to guard import order. - let mut candidates = self.candidates.write(); - - // find total difficulty. - let total_difficulty = match total_difficulty { - Some(td) => td, - None => { - let parent_td = if number == 1 { - self.genesis_header.difficulty() - } else { - candidates - .get(&(number - 1)) - .and_then(|entry| entry.candidates.iter().find(|c| c.hash == parent_hash)) - .map(|c| c.total_difficulty) - .ok_or_else(|| BlockError::UnknownParent(parent_hash)) - .map_err(EthcoreErrorKind::Block)? - }; - - parent_td + *header.difficulty() - } - }; - - // insert headers and candidates entries and write era to disk. - { - let cur_era = candidates.entry(number).or_insert_with(|| Entry { - candidates: SmallVec::new(), - canonical_hash: hash, - }); - cur_era.candidates.push(Candidate { - hash, - parent_hash, - total_difficulty, - }); - - // fix ordering of era before writing. - if total_difficulty > cur_era.candidates[0].total_difficulty { - let cur_pos = cur_era.candidates.len() - 1; - cur_era.candidates.swap(cur_pos, 0); - cur_era.canonical_hash = hash; - } - - transaction.put( - self.col, - era_key(number).as_bytes(), - &::rlp::encode(&*cur_era), - ) - } - - if let Some(transition) = transition { - transaction.put(self.col, &*transition_key(hash), &transition.proof); - self.live_epoch_proofs.write().insert(hash, transition); - } - - let raw = header.encoded().into_inner(); - transaction.put_vec(self.col, &hash[..], raw); - - // TODO: For engines when required, use cryptoeconomic guarantees. - let (best_num, is_new_best) = { - let cur_best = self.best_block.read(); - if cur_best.total_difficulty < total_difficulty { - (number, true) - } else { - (cur_best.number, false) - } - }; - - // reorganize ancestors so canonical entries are first in their - // respective candidates vectors. - if is_new_best { - let mut canon_hash = hash; - for (&height, entry) in candidates - .iter_mut() - .rev() - .skip_while(|&(height, _)| *height > number) - { - if height != number && entry.canonical_hash == canon_hash { - break; - } - - trace!(target: "chain", "Setting new canonical block {} for block height {}", - canon_hash, height); - - let canon_pos = entry.candidates.iter().position(|x| x.hash == canon_hash) - .expect("blocks are only inserted if parent is present; or this is the block we just added; qed"); - - // move the new canonical entry to the front and set the - // era's canonical hash. - entry.candidates.swap(0, canon_pos); - entry.canonical_hash = canon_hash; - - // what about reorgs > cht::SIZE + HISTORY? - // resetting to the last block of a given CHT should be possible. - canon_hash = entry.candidates[0].parent_hash; - - // write altered era to disk - if height != number { - let rlp_era = ::rlp::encode(&*entry); - transaction.put(self.col, era_key(height).as_bytes(), &rlp_era); - } - } - - trace!(target: "chain", "New best block: ({}, {}), TD {}", number, hash, total_difficulty); - pending.best_block = Some(BlockDescriptor { - hash, - number, - total_difficulty, - }); - - // produce next CHT root if it's time. - let earliest_era = *candidates - .keys() - .next() - .expect("at least one era just created; qed"); - if earliest_era + HISTORY + cht::SIZE <= number { - let cht_num = cht::block_to_cht_number(earliest_era) - .expect("fails only for number == 0; genesis never imported; qed"); - - let mut last_canonical_transition = None; - let cht_root = { - let mut i = earliest_era; - let mut live_epoch_proofs = self.live_epoch_proofs.write(); - - // iterable function which removes the candidates as it goes - // along. this will only be called until the CHT is complete. - let iter = || { - let era_entry = candidates - .remove(&i) - .expect("all eras are sequential with no gaps; qed"); - transaction.delete(self.col, era_key(i).as_bytes()); - - i += 1; - - // prune old blocks and epoch proofs. - for ancient in &era_entry.candidates { - let maybe_transition = live_epoch_proofs.remove(&ancient.hash); - if let Some(epoch_transition) = maybe_transition { - transaction.delete(self.col, &*transition_key(ancient.hash)); - - if ancient.hash == era_entry.canonical_hash { - last_canonical_transition = match self.db.get(self.col, &ancient.hash) { - Err(e) => { - warn!(target: "chain", "Error reading from DB: {}\n - ", e); - None - } - Ok(None) => panic!("stored candidates always have corresponding headers; qed"), - Ok(Some(header)) => Some(( - epoch_transition, - ::rlp::decode(&header).expect("decoding value from db failed") - )), - }; - } - } - - transaction.delete(self.col, &ancient.hash); - } - - let canon = &era_entry.candidates[0]; - (canon.hash, canon.total_difficulty) - }; - cht::compute_root(cht_num, ::itertools::repeat_call(iter)) - .expect("fails only when too few items; this is checked; qed") - }; - - // write the CHT root to the database. - debug!(target: "chain", "Produced CHT {} root: {:?}", cht_num, cht_root); - transaction.put( - self.col, - cht_key(cht_num).as_bytes(), - &::rlp::encode(&cht_root), - ); - - // update the last canonical transition proof - if let Some((epoch_transition, header)) = last_canonical_transition { - let x = encode_canonical_transition(&header, &epoch_transition.proof); - transaction.put_vec(self.col, LAST_CANONICAL_TRANSITION, x); - } - } - } - - // write the best and latest eras to the database. - { - let latest_num = *candidates - .iter() - .rev() - .next() - .expect("at least one era just inserted; qed") - .0; - let curr = BestAndLatest::new(best_num, latest_num); - transaction.put(self.col, CURRENT_KEY, &::rlp::encode(&curr)) - } - Ok(pending) - } - - /// Generates the specifications for hardcoded sync. This is typically only called manually - /// from time to time by a Parity developer in order to update the chain specifications. - /// - /// Returns `None` if we are at the genesis block, or if an error happens . - pub fn read_hardcoded_sync(&self) -> Result, Error> { - let mut chts = Vec::new(); - let mut cht_num = 0; - - loop { - let cht = match self.cht_root(cht_num) { - Some(cht) => cht, - None if cht_num != 0 => { - // end of the iteration - let h_num = 1 + cht_num as u64 * cht::SIZE; - let header = if let Some(header) = self.block_header(BlockId::Number(h_num)) { - header - } else { - let msg = format!( - "header of block #{} not found in DB ; database in an \ - inconsistent state", - h_num - ); - bail!(msg); - }; - - let decoded = header.decode().expect("decoding db value failed"); - - let entry: Entry = { - let bytes = self - .db - .get(self.col, era_key(h_num).as_bytes())? - .ok_or_else(|| { - format!( - "entry for era #{} not found in DB ; database \ - in an inconsistent state", - h_num - ) - })?; - ::rlp::decode(&bytes).expect("decoding db value failed") - }; - - let total_difficulty = entry - .candidates - .iter() - .find(|c| c.hash == decoded.hash()) - .ok_or_else(|| { - "no candidate matching block found in DB ; database in an \ - inconsistent state" - })? - .total_difficulty; - - break Ok(Some(SpecHardcodedSync { - header, - total_difficulty, - chts, - })); - } - None => { - break Ok(None); - } - }; - - chts.push(cht); - cht_num += 1; - } - } - - /// Apply pending changes from a previous `insert` operation. - /// Must be done before the next `insert` call. - pub fn apply_pending(&self, pending: PendingChanges) { - if let Some(best_block) = pending.best_block { - *self.best_block.write() = best_block; - } - } - - /// Get a block's hash by ID. In the case of query by number, only canonical results - /// will be returned. - pub fn block_hash(&self, id: BlockId) -> Option { - match id { - BlockId::Earliest | BlockId::Number(0) => Some(self.genesis_hash()), - BlockId::Hash(hash) => Some(hash), - BlockId::Number(num) => { - if self.best_block.read().number < num { - return None; - } - self.candidates - .read() - .get(&num) - .map(|entry| entry.canonical_hash) - } - BlockId::Latest => Some(self.best_block.read().hash), - } - } - - /// Get a block header. In the case of query by number, only canonical blocks - /// will be returned. - pub fn block_header(&self, id: BlockId) -> Option { - let load_from_db = |hash: H256| { - let mut cache = self.cache.lock(); - - match cache.block_header(&hash) { - Some(header) => Some(header), - None => match self.db.get(self.col, &hash) { - Ok(db_value) => db_value - .map(|x| x.into_vec()) - .map(encoded::Header::new) - .and_then(|header| { - cache.insert_block_header(hash, header.clone()); - Some(header) - }), - Err(e) => { - warn!(target: "chain", "Failed to read from database: {}", e); - None - } - }, - } - }; - - match id { - BlockId::Earliest | BlockId::Number(0) => Some(self.genesis_header.clone()), - BlockId::Hash(hash) if hash == self.genesis_hash() => Some(self.genesis_header.clone()), - BlockId::Hash(hash) => load_from_db(hash), - BlockId::Number(num) => { - if self.best_block.read().number < num { - return None; - } - - self.candidates - .read() - .get(&num) - .map(|entry| entry.canonical_hash) - .and_then(load_from_db) - } - BlockId::Latest => { - // hold candidates hear to prevent deletion of the header - // as we read it. - let _candidates = self.candidates.read(); - let hash = { - let best = self.best_block.read(); - if best.number == 0 { - return Some(self.genesis_header.clone()); - } - - best.hash - }; - - load_from_db(hash) - } - } - } - - /// Get a block's chain score. - /// Returns nothing for non-canonical blocks. - pub fn score(&self, id: BlockId) -> Option { - let genesis_hash = self.genesis_hash(); - match id { - BlockId::Earliest | BlockId::Number(0) => Some(self.genesis_header.difficulty()), - BlockId::Hash(hash) if hash == genesis_hash => Some(self.genesis_header.difficulty()), - BlockId::Hash(hash) => match self.block_header(BlockId::Hash(hash)) { - Some(header) => self - .candidates - .read() - .get(&header.number()) - .and_then(|era| era.candidates.iter().find(|e| e.hash == hash)) - .map(|c| c.total_difficulty), - None => None, - }, - BlockId::Number(num) => { - let candidates = self.candidates.read(); - if self.best_block.read().number < num { - return None; - } - candidates - .get(&num) - .map(|era| era.candidates[0].total_difficulty) - } - BlockId::Latest => Some(self.best_block.read().total_difficulty), - } - } - - /// Get the best block's header. - pub fn best_header(&self) -> encoded::Header { - self.block_header(BlockId::Latest) - .expect("Header for best block always stored; qed") - } - - /// Get an iterator over a block and its ancestry. - pub fn ancestry_iter(&self, start: BlockId) -> AncestryIter { - AncestryIter { - next: self.block_header(start), - chain: self, - } - } - - /// Get the nth CHT root, if it's been computed. - /// - /// CHT root 0 is from block `1..2048`. - /// CHT root 1 is from block `2049..4096` - /// and so on. - /// - /// This is because it's assumed that the genesis hash is known, - /// so including it within a CHT would be redundant. - pub fn cht_root(&self, n: usize) -> Option { - match self.db.get(self.col, cht_key(n as u64).as_bytes()) { - Ok(db_fetch) => { - db_fetch.map(|bytes| ::rlp::decode(&bytes).expect("decoding value from db failed")) - } - Err(e) => { - warn!(target: "chain", "Error reading from database: {}", e); - None - } - } - } - - /// Get the genesis hash. - pub fn genesis_hash(&self) -> H256 { - self.genesis_header.hash() - } - - /// Get the best block's data. - pub fn best_block(&self) -> BlockDescriptor { - self.best_block.read().clone() - } - - /// If there is a gap between the genesis and the rest - /// of the stored blocks, return the first post-gap block. - pub fn first_block(&self) -> Option { - let candidates = self.candidates.read(); - match candidates.iter().next() { - None | Some((&1, _)) => None, - Some((&height, entry)) => Some(BlockDescriptor { - number: height, - hash: entry.canonical_hash, - total_difficulty: entry - .candidates - .iter() - .find(|x| x.hash == entry.canonical_hash) - .expect("entry always stores canonical candidate; qed") - .total_difficulty, - }), - } - } - - /// Get block status. - pub fn status(&self, hash: &H256) -> BlockStatus { - if self - .db - .get(self.col, hash) - .ok() - .map_or(false, |x| x.is_some()) - { - BlockStatus::InChain - } else { - BlockStatus::Unknown - } - } - - /// Insert a pending transition. - pub fn insert_pending_transition( - &self, - batch: &mut DBTransaction, - hash: H256, - t: &PendingEpochTransition, - ) { - let key = pending_transition_key(hash); - batch.put(self.col, &*key, &*::rlp::encode(t)); - } - - /// Get pending transition for a specific block hash. - pub fn pending_transition(&self, hash: H256) -> Option { - let key = pending_transition_key(hash); - match self.db.get(self.col, &*key) { - Ok(db_fetch) => { - db_fetch.map(|bytes| ::rlp::decode(&bytes).expect("decoding value from db failed")) - } - Err(e) => { - warn!(target: "chain", "Error reading from database: {}", e); - None - } - } - } - - /// Get the transition to the epoch the given parent hash is part of - /// or transitions to. - /// This will give the epoch that any children of this parent belong to. - /// - /// The header corresponding the the parent hash must be stored already. - pub fn epoch_transition_for(&self, parent_hash: H256) -> Option<(Header, Vec)> { - // slow path: loop back block by block - let live_proofs = self.live_epoch_proofs.read(); - - for hdr in self.ancestry_iter(BlockId::Hash(parent_hash)) { - if let Some(transition) = live_proofs.get(&hdr.hash()).cloned() { - return hdr - .decode() - .map(|decoded_hdr| (decoded_hdr, transition.proof)) - .ok(); - } - } - - // any blocks left must be descendants of the last canonical transition block. - match self.db.get(self.col, LAST_CANONICAL_TRANSITION) { - Ok(x) => { - let x = x.expect("last canonical transition always instantiated; qed"); - - let (hdr, proof) = decode_canonical_transition(&x) - .expect("last canonical transition always encoded correctly; qed"); - - Some((hdr, proof.to_vec())) - } - Err(e) => { - warn!("Error reading from DB: {}", e); - None - } - } - } -} - -impl HeapSizeOf for HeaderChain { - fn heap_size_of_children(&self) -> usize { - self.candidates.read().heap_size_of_children() - } -} - -/// Iterator over a block's ancestry. -pub struct AncestryIter<'a> { - next: Option, - chain: &'a HeaderChain, -} - -impl<'a> Iterator for AncestryIter<'a> { - type Item = encoded::Header; - - fn next(&mut self) -> Option { - let next = self.next.take(); - if let Some(p_hash) = next.as_ref().map(|hdr| hdr.parent_hash()) { - self.next = self.chain.block_header(BlockId::Hash(p_hash)); - } - - next - } -} - -#[cfg(test)] -mod tests { - use super::{HardcodedSync, HeaderChain}; - use std::sync::Arc; - - use cache::Cache; - use common_types::{header::Header, ids::BlockId}; - use ethcore::spec::Spec; - use ethereum_types::U256; - use kvdb::KeyValueDB; - use kvdb_memorydb; - - use parking_lot::Mutex; - use std::time::Duration; - - fn make_db() -> Arc { - Arc::new(kvdb_memorydb::create(0)) - } - - #[test] - fn basic_chain() { - let spec = Spec::new_test(); - let genesis_header = spec.genesis_header(); - let db = make_db(); - - let cache = Arc::new(Mutex::new(Cache::new( - Default::default(), - Duration::from_secs(6 * 3600), - ))); - - let chain = HeaderChain::new(db.clone(), None, &spec, cache, HardcodedSync::Allow).unwrap(); - - let mut parent_hash = genesis_header.hash(); - let mut rolling_timestamp = genesis_header.timestamp(); - for i in 1..10000 { - let mut header = Header::new(); - header.set_parent_hash(parent_hash); - header.set_number(i); - header.set_timestamp(rolling_timestamp); - header.set_difficulty(*genesis_header.difficulty() * i as u32); - parent_hash = header.hash(); - - let mut tx = db.transaction(); - let pending = chain.insert(&mut tx, &header, None).unwrap(); - db.write(tx).unwrap(); - chain.apply_pending(pending); - - rolling_timestamp += 10; - } - - assert!(chain.block_header(BlockId::Number(10)).is_none()); - assert!(chain.block_header(BlockId::Number(9000)).is_some()); - assert!(chain.cht_root(2).is_some()); - assert!(chain.cht_root(3).is_none()); - } - - #[test] - fn reorganize() { - let spec = Spec::new_test(); - let genesis_header = spec.genesis_header(); - let db = make_db(); - let cache = Arc::new(Mutex::new(Cache::new( - Default::default(), - Duration::from_secs(6 * 3600), - ))); - - let chain = HeaderChain::new(db.clone(), None, &spec, cache, HardcodedSync::Allow).unwrap(); - - let mut parent_hash = genesis_header.hash(); - let mut rolling_timestamp = genesis_header.timestamp(); - for i in 1..6 { - let mut header = Header::new(); - header.set_parent_hash(parent_hash); - header.set_number(i); - header.set_timestamp(rolling_timestamp); - header.set_difficulty(*genesis_header.difficulty() * i as u32); - parent_hash = header.hash(); - - let mut tx = db.transaction(); - let pending = chain.insert(&mut tx, &header, None).unwrap(); - db.write(tx).unwrap(); - chain.apply_pending(pending); - - rolling_timestamp += 10; - } - - { - let mut rolling_timestamp = rolling_timestamp; - let mut parent_hash = parent_hash; - for i in 6..16 { - let mut header = Header::new(); - header.set_parent_hash(parent_hash); - header.set_number(i); - header.set_timestamp(rolling_timestamp); - header.set_difficulty(*genesis_header.difficulty() * i as u32); - parent_hash = header.hash(); - - let mut tx = db.transaction(); - let pending = chain.insert(&mut tx, &header, None).unwrap(); - db.write(tx).unwrap(); - chain.apply_pending(pending); - - rolling_timestamp += 10; - } - } - - assert_eq!(chain.best_block().number, 15); - - { - let mut rolling_timestamp = rolling_timestamp; - let mut parent_hash = parent_hash; - - // import a shorter chain which has better TD. - for i in 6..13 { - let mut header = Header::new(); - header.set_parent_hash(parent_hash); - header.set_number(i); - header.set_timestamp(rolling_timestamp); - header.set_difficulty(*genesis_header.difficulty() * U256::from(i * i)); - parent_hash = header.hash(); - - let mut tx = db.transaction(); - let pending = chain.insert(&mut tx, &header, None).unwrap(); - db.write(tx).unwrap(); - chain.apply_pending(pending); - - rolling_timestamp += 11; - } - } - - let (mut num, mut canon_hash) = (chain.best_block().number, chain.best_block().hash); - assert_eq!(num, 12); - - while num > 0 { - let header = chain.block_header(BlockId::Number(num)).unwrap(); - assert_eq!(header.hash(), canon_hash); - - canon_hash = header.parent_hash(); - num -= 1; - } - } - - #[test] - fn earliest_is_latest() { - let spec = Spec::new_test(); - let db = make_db(); - let cache = Arc::new(Mutex::new(Cache::new( - Default::default(), - Duration::from_secs(6 * 3600), - ))); - - let chain = HeaderChain::new(db.clone(), None, &spec, cache, HardcodedSync::Allow).unwrap(); - - assert!(chain.block_header(BlockId::Earliest).is_some()); - assert!(chain.block_header(BlockId::Latest).is_some()); - } - - #[test] - fn restore_from_db() { - let spec = Spec::new_test(); - let genesis_header = spec.genesis_header(); - let db = make_db(); - let cache = Arc::new(Mutex::new(Cache::new( - Default::default(), - Duration::from_secs(6 * 3600), - ))); - - { - let chain = - HeaderChain::new(db.clone(), None, &spec, cache.clone(), HardcodedSync::Allow) - .unwrap(); - let mut parent_hash = genesis_header.hash(); - let mut rolling_timestamp = genesis_header.timestamp(); - for i in 1..10000 { - let mut header = Header::new(); - header.set_parent_hash(parent_hash); - header.set_number(i); - header.set_timestamp(rolling_timestamp); - header.set_difficulty(*genesis_header.difficulty() * i as u32); - parent_hash = header.hash(); - - let mut tx = db.transaction(); - let pending = chain.insert(&mut tx, &header, None).unwrap(); - db.write(tx).unwrap(); - chain.apply_pending(pending); - - rolling_timestamp += 10; - } - } - - let chain = - HeaderChain::new(db.clone(), None, &spec, cache.clone(), HardcodedSync::Allow).unwrap(); - assert!(chain.block_header(BlockId::Number(10)).is_none()); - assert!(chain.block_header(BlockId::Number(9000)).is_some()); - assert!(chain.cht_root(2).is_some()); - assert!(chain.cht_root(3).is_none()); - assert_eq!(chain.block_header(BlockId::Latest).unwrap().number(), 9999); - } - - #[test] - fn restore_higher_non_canonical() { - let spec = Spec::new_test(); - let genesis_header = spec.genesis_header(); - let db = make_db(); - let cache = Arc::new(Mutex::new(Cache::new( - Default::default(), - Duration::from_secs(6 * 3600), - ))); - - { - let chain = - HeaderChain::new(db.clone(), None, &spec, cache.clone(), HardcodedSync::Allow) - .unwrap(); - let mut parent_hash = genesis_header.hash(); - let mut rolling_timestamp = genesis_header.timestamp(); - - // push 100 low-difficulty blocks. - for i in 1..101 { - let mut header = Header::new(); - header.set_parent_hash(parent_hash); - header.set_number(i); - header.set_timestamp(rolling_timestamp); - header.set_difficulty(*genesis_header.difficulty() * i as u32); - parent_hash = header.hash(); - - let mut tx = db.transaction(); - let pending = chain.insert(&mut tx, &header, None).unwrap(); - db.write(tx).unwrap(); - chain.apply_pending(pending); - - rolling_timestamp += 10; - } - - // push fewer high-difficulty blocks. - for i in 1..11 { - let mut header = Header::new(); - header.set_parent_hash(parent_hash); - header.set_number(i); - header.set_timestamp(rolling_timestamp); - header - .set_difficulty(*genesis_header.difficulty() * U256::from(i as u32 * 1000u32)); - parent_hash = header.hash(); - - let mut tx = db.transaction(); - let pending = chain.insert(&mut tx, &header, None).unwrap(); - db.write(tx).unwrap(); - chain.apply_pending(pending); - - rolling_timestamp += 10; - } - - assert_eq!(chain.block_header(BlockId::Latest).unwrap().number(), 10); - } - - // after restoration, non-canonical eras should still be loaded. - let chain = - HeaderChain::new(db.clone(), None, &spec, cache.clone(), HardcodedSync::Allow).unwrap(); - assert_eq!(chain.block_header(BlockId::Latest).unwrap().number(), 10); - assert!(chain.candidates.read().get(&100).is_some()) - } - - #[test] - fn genesis_header_available() { - let spec = Spec::new_test(); - let genesis_header = spec.genesis_header(); - let db = make_db(); - let cache = Arc::new(Mutex::new(Cache::new( - Default::default(), - Duration::from_secs(6 * 3600), - ))); - - let chain = - HeaderChain::new(db.clone(), None, &spec, cache.clone(), HardcodedSync::Allow).unwrap(); - - assert!(chain.block_header(BlockId::Earliest).is_some()); - assert!(chain.block_header(BlockId::Number(0)).is_some()); - assert!(chain - .block_header(BlockId::Hash(genesis_header.hash())) - .is_some()); - } - - #[test] - fn epoch_transitions_available_after_cht() { - let spec = Spec::new_test(); - let genesis_header = spec.genesis_header(); - let db = make_db(); - let cache = Arc::new(Mutex::new(Cache::new( - Default::default(), - Duration::from_secs(6 * 3600), - ))); - - let chain = HeaderChain::new(db.clone(), None, &spec, cache, HardcodedSync::Allow).unwrap(); - - let mut parent_hash = genesis_header.hash(); - let mut rolling_timestamp = genesis_header.timestamp(); - for i in 1..6 { - let mut header = Header::new(); - header.set_parent_hash(parent_hash); - header.set_number(i); - header.set_timestamp(rolling_timestamp); - header.set_difficulty(*genesis_header.difficulty() * i as u32); - parent_hash = header.hash(); - - let mut tx = db.transaction(); - let epoch_proof = if i == 3 { Some(vec![1, 2, 3, 4]) } else { None }; - - let pending = chain.insert(&mut tx, &header, epoch_proof).unwrap(); - db.write(tx).unwrap(); - chain.apply_pending(pending); - - rolling_timestamp += 10; - } - - // these 3 should end up falling back to the genesis epoch proof in DB - for i in 0..3 { - let hash = chain.block_hash(BlockId::Number(i)).unwrap(); - assert_eq!( - chain.epoch_transition_for(hash).unwrap().1, - Vec::::new() - ); - } - - // these are live. - for i in 3..6 { - let hash = chain.block_hash(BlockId::Number(i)).unwrap(); - assert_eq!( - chain.epoch_transition_for(hash).unwrap().1, - vec![1, 2, 3, 4] - ); - } - - for i in 6..10000 { - let mut header = Header::new(); - header.set_parent_hash(parent_hash); - header.set_number(i); - header.set_timestamp(rolling_timestamp); - header.set_difficulty(*genesis_header.difficulty() * i as u32); - parent_hash = header.hash(); - - let mut tx = db.transaction(); - let pending = chain.insert(&mut tx, &header, None).unwrap(); - db.write(tx).unwrap(); - chain.apply_pending(pending); - - rolling_timestamp += 10; - } - - // no live blocks have associated epoch proofs -- make sure we aren't leaking memory. - assert!(chain.live_epoch_proofs.read().is_empty()); - assert_eq!( - chain.epoch_transition_for(parent_hash).unwrap().1, - vec![1, 2, 3, 4] - ); - } - - #[test] - fn hardcoded_sync_gen() { - let spec = Spec::new_test(); - let genesis_header = spec.genesis_header(); - let db = make_db(); - - let cache = Arc::new(Mutex::new(Cache::new( - Default::default(), - Duration::from_secs(6 * 3600), - ))); - - let chain = HeaderChain::new(db.clone(), None, &spec, cache, HardcodedSync::Allow) - .expect("failed to instantiate a new HeaderChain"); - - let mut parent_hash = genesis_header.hash(); - let mut rolling_timestamp = genesis_header.timestamp(); - let mut total_difficulty = *genesis_header.difficulty(); - let h_num = 3 * ::cht::SIZE + 1; - for i in 1..10000 { - let mut header = Header::new(); - header.set_parent_hash(parent_hash); - header.set_number(i); - header.set_timestamp(rolling_timestamp); - let diff = *genesis_header.difficulty() * i as u32; - header.set_difficulty(diff); - if i <= h_num { - total_difficulty = total_difficulty + diff; - } - parent_hash = header.hash(); - - let mut tx = db.transaction(); - let pending = chain - .insert(&mut tx, &header, None) - .expect("failed inserting a transaction"); - db.write(tx).unwrap(); - chain.apply_pending(pending); - - rolling_timestamp += 10; - } - - let hardcoded_sync = chain - .read_hardcoded_sync() - .expect("failed reading hardcoded sync") - .expect("failed unwrapping hardcoded sync"); - assert_eq!(hardcoded_sync.chts.len(), 3); - assert_eq!(hardcoded_sync.total_difficulty, total_difficulty); - let decoded: Header = hardcoded_sync.header.decode().expect("decoding failed"); - assert_eq!(decoded.number(), h_num); - } -} diff --git a/ethcore/light/src/client/mod.rs b/ethcore/light/src/client/mod.rs deleted file mode 100644 index 0cc898ac8..000000000 --- a/ethcore/light/src/client/mod.rs +++ /dev/null @@ -1,688 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Light client implementation. Stores data from light sync - -use std::sync::{Arc, Weak}; - -use common_types::{ - block_status::BlockStatus, blockchain_info::BlockChainInfo, encoded, header::Header, - ids::BlockId, BlockNumber, -}; -use ethcore::{ - client::{traits::ForceUpdateSealing, ClientIoMessage, ClientReport, EnvInfo}, - engines::{epoch, EpochChange, EpochTransition, EthEngine, Proof}, - error::{Error, EthcoreResult}, - machine::EthereumMachine, - spec::{Spec, SpecHardcodedSync}, - verification::queue::{self, HeaderQueue}, -}; -use ethereum_types::{H256, U256}; -use futures::{Future, IntoFuture}; -use io::IoChannel; -use parking_lot::{Mutex, RwLock}; - -use kvdb::KeyValueDB; - -use self::{ - fetch::ChainDataFetcher, - header_chain::{AncestryIter, HardcodedSync, HeaderChain}, -}; - -use cache::Cache; - -pub use self::service::Service; - -mod header_chain; -mod service; - -pub mod fetch; - -/// Configuration for the light client. -#[derive(Debug, Clone)] -pub struct Config { - /// Verification queue config. - pub queue: queue::Config, - /// Chain column in database. - pub chain_column: Option, - /// Should it do full verification of blocks? - pub verify_full: bool, - /// Should it check the seal of blocks? - pub check_seal: bool, - /// Disable hardcoded sync. - pub no_hardcoded_sync: bool, -} - -impl Default for Config { - fn default() -> Config { - Config { - queue: Default::default(), - chain_column: None, - verify_full: true, - check_seal: true, - no_hardcoded_sync: false, - } - } -} - -/// Trait for interacting with the header chain abstractly. -pub trait LightChainClient: Send + Sync { - /// Adds a new `LightChainNotify` listener. - fn add_listener(&self, listener: Weak); - - /// Get chain info. - fn chain_info(&self) -> BlockChainInfo; - - /// Queue header to be verified. Required that all headers queued have their - /// parent queued prior. - fn queue_header(&self, header: Header) -> EthcoreResult; - - /// Attempt to get a block hash by block id. - fn block_hash(&self, id: BlockId) -> Option; - - /// Attempt to get block header by block id. - fn block_header(&self, id: BlockId) -> Option; - - /// Get the best block header. - fn best_block_header(&self) -> encoded::Header; - - /// Get a block's chain score by ID. - fn score(&self, id: BlockId) -> Option; - - /// Get an iterator over a block and its ancestry. - fn ancestry_iter<'a>( - &'a self, - start: BlockId, - ) -> Box + 'a>; - - /// Get the signing chain ID. - fn signing_chain_id(&self) -> Option; - - /// Get environment info for execution at a given block. - /// Fails if that block's header is not stored. - fn env_info(&self, id: BlockId) -> Option; - - /// Get a handle to the consensus engine. - fn engine(&self) -> &Arc; - - /// Query whether a block is known. - fn is_known(&self, hash: &H256) -> bool; - - /// Set the chain via a spec name. - fn set_spec_name(&self, new_spec_name: String) -> Result<(), ()>; - - /// Clear the queue. - fn clear_queue(&self); - - /// Flush the queue. - fn flush_queue(&self); - - /// Get queue info. - fn queue_info(&self) -> queue::QueueInfo; - - /// Get the `i`th CHT root. - fn cht_root(&self, i: usize) -> Option; - - /// Get a report of import activity since the last call. - fn report(&self) -> ClientReport; -} - -/// An actor listening to light chain events. -pub trait LightChainNotify: Send + Sync { - /// Notifies about imported headers. - fn new_headers(&self, good: &[H256]); -} - -/// Something which can be treated as a `LightChainClient`. -pub trait AsLightClient { - /// The kind of light client this can be treated as. - type Client: LightChainClient; - - /// Access the underlying light client. - fn as_light_client(&self) -> &Self::Client; -} - -impl AsLightClient for T { - type Client = Self; - - fn as_light_client(&self) -> &Self { - self - } -} - -/// Light client implementation. -pub struct Client { - queue: HeaderQueue, - engine: Arc, - chain: HeaderChain, - report: RwLock, - import_lock: Mutex<()>, - db: Arc, - listeners: RwLock>>, - fetcher: T, - verify_full: bool, - /// A closure to call when we want to restart the client - exit_handler: Mutex>>, -} - -impl Client { - /// Create a new `Client`. - pub fn new( - config: Config, - db: Arc, - chain_col: Option, - spec: &Spec, - fetcher: T, - io_channel: IoChannel, - cache: Arc>, - ) -> Result { - Ok(Self { - queue: HeaderQueue::new( - config.queue, - spec.engine.clone(), - io_channel, - config.check_seal, - ), - engine: spec.engine.clone(), - chain: { - let hs_cfg = if config.no_hardcoded_sync { - HardcodedSync::Deny - } else { - HardcodedSync::Allow - }; - HeaderChain::new(db.clone(), chain_col, &spec, cache, hs_cfg)? - }, - report: RwLock::new(ClientReport::default()), - import_lock: Mutex::new(()), - db, - listeners: RwLock::new(vec![]), - fetcher, - verify_full: config.verify_full, - exit_handler: Mutex::new(None), - }) - } - - /// Generates the specifications for hardcoded sync. This is typically only called manually - /// from time to time by a Parity developer in order to update the chain specifications. - /// - /// Returns `None` if we are at the genesis block. - pub fn read_hardcoded_sync(&self) -> Result, Error> { - self.chain.read_hardcoded_sync() - } - - /// Adds a new `LightChainNotify` listener. - pub fn add_listener(&self, listener: Weak) { - self.listeners.write().push(listener); - } - - /// Import a header to the queue for additional verification. - pub fn import_header(&self, header: Header) -> EthcoreResult { - self.queue.import(header).map_err(|(_, e)| e) - } - - /// Inquire about the status of a given header. - pub fn status(&self, hash: &H256) -> BlockStatus { - match self.queue.status(hash) { - queue::Status::Unknown => self.chain.status(hash), - other => other.into(), - } - } - - /// Get the chain info. - pub fn chain_info(&self) -> BlockChainInfo { - let best_hdr = self.chain.best_header(); - let best_td = self.chain.best_block().total_difficulty; - - let first_block = self.chain.first_block(); - let genesis_hash = self.chain.genesis_hash(); - - BlockChainInfo { - total_difficulty: best_td, - pending_total_difficulty: best_td + self.queue.total_difficulty(), - genesis_hash, - best_block_hash: best_hdr.hash(), - best_block_number: best_hdr.number(), - best_block_timestamp: best_hdr.timestamp(), - ancient_block_hash: if first_block.is_some() { - Some(genesis_hash) - } else { - None - }, - ancient_block_number: if first_block.is_some() { Some(0) } else { None }, - first_block_hash: first_block.as_ref().map(|first| first.hash), - first_block_number: first_block.as_ref().map(|first| first.number), - } - } - - /// Get the header queue info. - pub fn queue_info(&self) -> queue::QueueInfo { - self.queue.queue_info() - } - - /// Attempt to get a block hash by block id. - pub fn block_hash(&self, id: BlockId) -> Option { - self.chain.block_hash(id) - } - - /// Get a block header by Id. - pub fn block_header(&self, id: BlockId) -> Option { - self.chain.block_header(id) - } - - /// Get the best block header. - pub fn best_block_header(&self) -> encoded::Header { - self.chain.best_header() - } - - /// Get a block's chain score. - pub fn score(&self, id: BlockId) -> Option { - self.chain.score(id) - } - - /// Get an iterator over a block and its ancestry. - pub fn ancestry_iter(&self, start: BlockId) -> AncestryIter { - self.chain.ancestry_iter(start) - } - - /// Get the signing chain id. - pub fn signing_chain_id(&self) -> Option { - self.engine.signing_chain_id(&self.latest_env_info()) - } - - /// Flush the header queue. - pub fn flush_queue(&self) { - self.queue.flush() - } - - /// Get the `i`th CHT root. - pub fn cht_root(&self, i: usize) -> Option { - self.chain.cht_root(i) - } - - /// Import a set of pre-verified headers from the queue. - pub fn import_verified(&self) { - const MAX: usize = 256; - - let _lock = self.import_lock.lock(); - - let mut bad = Vec::new(); - let mut good = Vec::new(); - for verified_header in self.queue.drain(MAX) { - let (num, hash) = (verified_header.number(), verified_header.hash()); - trace!(target: "client", "importing block {}", num); - - if self.verify_full && !self.check_header(&mut bad, &verified_header) { - continue; - } - - let write_proof_result = match self.check_epoch_signal(&verified_header) { - Ok(Some(proof)) => self.write_pending_proof(&verified_header, proof), - Ok(None) => Ok(()), - Err(e) => panic!("Unable to fetch epoch transition proof: {:?}", e), - }; - - if let Err(e) = write_proof_result { - warn!(target: "client", "Error writing pending transition proof to DB: {:?} \ - The node may not be able to synchronize further.", e); - } - - let epoch_proof = self.engine.is_epoch_end_light( - &verified_header, - &|h| { - self.chain - .block_header(BlockId::Hash(h)) - .and_then(|hdr| hdr.decode().ok()) - }, - &|h| self.chain.pending_transition(h), - ); - - let mut tx = self.db.transaction(); - let pending = match self.chain.insert(&mut tx, &verified_header, epoch_proof) { - Ok(pending) => { - good.push(hash); - self.report.write().blocks_imported += 1; - pending - } - Err(e) => { - debug!(target: "client", "Error importing header {:?}: {:?}", (num, hash), e); - bad.push(hash); - continue; - } - }; - - self.db.write_buffered(tx); - self.chain.apply_pending(pending); - } - - if let Err(e) = self.db.flush() { - panic!("Database flush failed: {}. Check disk health and space.", e); - } - - self.queue.mark_as_bad(&bad); - self.queue.mark_as_good(&good); - - self.notify(|listener| listener.new_headers(&good)); - } - - /// Get a report about blocks imported. - pub fn report(&self) -> ClientReport { - self.report.read().clone() - } - - /// Get blockchain mem usage in bytes. - pub fn chain_mem_used(&self) -> usize { - use heapsize::HeapSizeOf; - - self.chain.heap_size_of_children() - } - - /// Set a closure to call when the client wants to be restarted. - /// - /// The parameter passed to the callback is the name of the new chain spec to use after - /// the restart. - pub fn set_exit_handler(&self, f: F) - where - F: Fn(String) + 'static + Send, - { - *self.exit_handler.lock() = Some(Box::new(f)); - } - - /// Get a handle to the verification engine. - pub fn engine(&self) -> &Arc { - &self.engine - } - - /// Get the latest environment info. - pub fn latest_env_info(&self) -> EnvInfo { - self.env_info(BlockId::Latest) - .expect("Best block header and recent hashes always stored; qed") - } - - /// Get environment info for a given block. - pub fn env_info(&self, id: BlockId) -> Option { - let header = match self.block_header(id) { - Some(hdr) => hdr, - None => return None, - }; - - Some(EnvInfo { - number: header.number(), - author: header.author(), - timestamp: header.timestamp(), - difficulty: header.difficulty(), - last_hashes: self.build_last_hashes(header.parent_hash()), - gas_used: Default::default(), - gas_limit: header.gas_limit(), - }) - } - - fn build_last_hashes(&self, mut parent_hash: H256) -> Arc> { - let mut v = Vec::with_capacity(256); - for _ in 0..255 { - v.push(parent_hash); - match self.block_header(BlockId::Hash(parent_hash)) { - Some(header) => parent_hash = header.hash(), - None => break, - } - } - - Arc::new(v) - } - - fn notify(&self, f: F) { - for listener in &*self.listeners.read() { - if let Some(listener) = listener.upgrade() { - f(&*listener) - } - } - } - - // return false if should skip, true otherwise. may push onto bad if - // should skip. - fn check_header(&self, bad: &mut Vec, verified_header: &Header) -> bool { - let hash = verified_header.hash(); - let parent_header = match self - .chain - .block_header(BlockId::Hash(*verified_header.parent_hash())) - { - Some(header) => header, - None => { - trace!(target: "client", "No parent for block ({}, {})", - verified_header.number(), hash); - return false; // skip import of block with missing parent. - } - }; - - // Verify Block Family - - let verify_family_result = { - parent_header - .decode() - .map_err(|dec_err| dec_err.into()) - .and_then(|decoded| self.engine.verify_block_family(&verified_header, &decoded)) - }; - if let Err(e) = verify_family_result { - warn!(target: "client", "Stage 3 block verification failed for #{} ({})\nError: {:?}", - verified_header.number(), verified_header.hash(), e); - bad.push(hash); - return false; - }; - - // "external" verification. - let verify_external_result = self.engine.verify_block_external(&verified_header); - if let Err(e) = verify_external_result { - warn!(target: "client", "Stage 4 block verification failed for #{} ({})\nError: {:?}", - verified_header.number(), verified_header.hash(), e); - - bad.push(hash); - return false; - }; - - true - } - - fn check_epoch_signal( - &self, - verified_header: &Header, - ) -> Result>, T::Error> { - use ethcore::machine::{AuxiliaryData, AuxiliaryRequest}; - - let mut block: Option> = None; - let mut receipts: Option> = None; - - loop { - let is_signal = { - let auxiliary = AuxiliaryData { - bytes: block.as_ref().map(|x| &x[..]), - receipts: receipts.as_ref().map(|x| &x[..]), - }; - - self.engine.signals_epoch_end(verified_header, auxiliary) - }; - - // check with any auxiliary data fetched so far - match is_signal { - EpochChange::No => return Ok(None), - EpochChange::Yes(proof) => return Ok(Some(proof)), - EpochChange::Unsure(unsure) => { - let (b, r) = match unsure { - AuxiliaryRequest::Body => { - (Some(self.fetcher.block_body(verified_header)), None) - } - AuxiliaryRequest::Receipts => { - (None, Some(self.fetcher.block_receipts(verified_header))) - } - AuxiliaryRequest::Both => ( - Some(self.fetcher.block_body(verified_header)), - Some(self.fetcher.block_receipts(verified_header)), - ), - }; - - if let Some(b) = b { - block = Some(b.into_future().wait()?.into_inner()); - } - - if let Some(r) = r { - receipts = Some(r.into_future().wait()?); - } - } - } - } - } - - // attempts to fetch the epoch proof from the network until successful. - fn write_pending_proof( - &self, - header: &Header, - proof: Proof, - ) -> Result<(), T::Error> { - let proof = match proof { - Proof::Known(known) => known, - Proof::WithState(state_dependent) => self - .fetcher - .epoch_transition(header.hash(), self.engine.clone(), state_dependent) - .into_future() - .wait()?, - }; - - let mut batch = self.db.transaction(); - self.chain.insert_pending_transition( - &mut batch, - header.hash(), - &epoch::PendingTransition { proof }, - ); - self.db.write_buffered(batch); - Ok(()) - } -} - -impl LightChainClient for Client { - fn add_listener(&self, listener: Weak) { - Client::add_listener(self, listener) - } - - fn chain_info(&self) -> BlockChainInfo { - Client::chain_info(self) - } - - fn queue_header(&self, header: Header) -> EthcoreResult { - self.import_header(header) - } - - fn block_hash(&self, id: BlockId) -> Option { - Client::block_hash(self, id) - } - - fn block_header(&self, id: BlockId) -> Option { - Client::block_header(self, id) - } - - fn best_block_header(&self) -> encoded::Header { - Client::best_block_header(self) - } - - fn score(&self, id: BlockId) -> Option { - Client::score(self, id) - } - - fn ancestry_iter<'a>( - &'a self, - start: BlockId, - ) -> Box + 'a> { - Box::new(Client::ancestry_iter(self, start)) - } - - fn signing_chain_id(&self) -> Option { - Client::signing_chain_id(self) - } - - fn env_info(&self, id: BlockId) -> Option { - Client::env_info(self, id) - } - - fn engine(&self) -> &Arc { - Client::engine(self) - } - - fn set_spec_name(&self, new_spec_name: String) -> Result<(), ()> { - trace!(target: "mode", "Client::set_spec_name({:?})", new_spec_name); - if let Some(ref h) = *self.exit_handler.lock() { - (*h)(new_spec_name); - Ok(()) - } else { - warn!("Not hypervised; cannot change chain."); - Err(()) - } - } - - fn is_known(&self, hash: &H256) -> bool { - self.status(hash) == BlockStatus::InChain - } - - fn clear_queue(&self) { - self.queue.clear() - } - - fn flush_queue(&self) { - Client::flush_queue(self); - } - - fn queue_info(&self) -> queue::QueueInfo { - self.queue.queue_info() - } - - fn cht_root(&self, i: usize) -> Option { - Client::cht_root(self, i) - } - - fn report(&self) -> ClientReport { - Client::report(self) - } -} - -impl ::ethcore::client::ChainInfo for Client { - fn chain_info(&self) -> BlockChainInfo { - Client::chain_info(self) - } -} - -impl ::ethcore::client::EngineClient for Client { - fn update_sealing(&self, _force: ForceUpdateSealing) {} - fn submit_seal(&self, _block_hash: H256, _seal: Vec>) {} - fn broadcast_consensus_message(&self, _message: Vec) {} - - fn epoch_transition_for(&self, parent_hash: H256) -> Option { - self.chain - .epoch_transition_for(parent_hash) - .map(|(hdr, proof)| EpochTransition { - block_hash: hdr.hash(), - block_number: hdr.number(), - proof, - }) - } - - fn as_full_client(&self) -> Option<&dyn crate::ethcore::client::BlockChainClient> { - None - } - - fn block_number(&self, id: BlockId) -> Option { - self.block_header(id).map(|hdr| hdr.number()) - } - - fn block_header(&self, id: BlockId) -> Option { - Client::block_header(self, id) - } -} diff --git a/ethcore/light/src/client/service.rs b/ethcore/light/src/client/service.rs deleted file mode 100644 index 94edd2dda..000000000 --- a/ethcore/light/src/client/service.rs +++ /dev/null @@ -1,142 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Minimal IO service for light client. -//! Just handles block import messages and passes them to the client. - -use std::{fmt, sync::Arc}; - -use ethcore::{client::ClientIoMessage, error::Error as CoreError, spec::Spec}; -use ethcore_blockchain::BlockChainDB; -use ethcore_db as db; -use io::{IoContext, IoError, IoHandler, IoService}; - -use cache::Cache; -use parking_lot::Mutex; - -use super::{ChainDataFetcher, Client, Config as ClientConfig, LightChainNotify}; - -/// Errors on service initialization. -#[derive(Debug)] -pub enum Error { - /// Core error. - Core(CoreError), - /// I/O service error. - Io(IoError), -} - -impl From for Error { - #[inline] - fn from(err: CoreError) -> Error { - Error::Core(err) - } -} - -impl fmt::Display for Error { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - match *self { - Error::Core(ref msg) => write!(f, "Core error: {}", msg), - Error::Io(ref err) => write!(f, "I/O service error: {}", err), - } - } -} - -/// Light client service. -pub struct Service { - client: Arc>, - io_service: IoService, -} - -impl Service { - /// Start the service: initialize I/O workers and client itself. - pub fn start( - config: ClientConfig, - spec: &Spec, - fetcher: T, - db: Arc, - cache: Arc>, - ) -> Result { - let io_service = IoService::::start().map_err(Error::Io)?; - let client = Arc::new(Client::new( - config, - db.key_value().clone(), - db::COL_LIGHT_CHAIN, - spec, - fetcher, - io_service.channel(), - cache, - )?); - - io_service - .register_handler(Arc::new(ImportBlocks(client.clone()))) - .map_err(Error::Io)?; - spec.engine.register_client(Arc::downgrade(&client) as _); - - Ok(Service { client, io_service }) - } - - /// Set the actor to be notified on certain chain events - pub fn add_notify(&self, notify: Arc) { - self.client.add_listener(Arc::downgrade(¬ify)); - } - - /// Register an I/O handler on the service. - pub fn register_handler( - &self, - handler: Arc + Send>, - ) -> Result<(), IoError> { - self.io_service.register_handler(handler) - } - - /// Get a handle to the client. - pub fn client(&self) -> &Arc> { - &self.client - } -} - -struct ImportBlocks(Arc>); - -impl IoHandler for ImportBlocks { - fn message(&self, _io: &IoContext, message: &ClientIoMessage) { - if let ClientIoMessage::BlockVerified = *message { - self.0.import_verified(); - } - } -} - -#[cfg(test)] -mod tests { - use super::Service; - use ethcore::spec::Spec; - - use cache::Cache; - use client::fetch; - use ethcore::test_helpers; - use parking_lot::Mutex; - use std::{sync::Arc, time::Duration}; - - #[test] - fn it_works() { - let db = test_helpers::new_db(); - let spec = Spec::new_test(); - let cache = Arc::new(Mutex::new(Cache::new( - Default::default(), - Duration::from_secs(6 * 3600), - ))); - - Service::start(Default::default(), &spec, fetch::unavailable(), db, cache).unwrap(); - } -} diff --git a/ethcore/light/src/lib.rs b/ethcore/light/src/lib.rs deleted file mode 100644 index 2ebd6d98f..000000000 --- a/ethcore/light/src/lib.rs +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Light client logic and implementation. -//! -//! A "light" client stores very little chain-related data locally -//! unlike a full node, which stores all blocks, headers, receipts, and more. -//! -//! This enables the client to have a much lower resource footprint in -//! exchange for the cost of having to ask the network for state data -//! while responding to queries. This makes a light client unsuitable for -//! low-latency applications, but perfectly suitable for simple everyday -//! use-cases like sending transactions from a personal account. -//! -//! The light client performs a header-only sync, doing verification and pruning -//! historical blocks. Upon pruning, batches of 2048 blocks have a number => (hash, TD) -//! mapping sealed into "canonical hash tries" which can later be used to verify -//! historical block queries from peers. - -#![deny(missing_docs)] - -pub mod cache; -pub mod cht; -pub mod client; -pub mod net; -pub mod on_demand; -pub mod provider; -pub mod transaction_queue; - -mod types; - -pub use self::{ - cache::Cache, - provider::{Provider, MAX_HEADERS_PER_REQUEST}, - transaction_queue::TransactionQueue, -}; -pub use types::request; - -#[macro_use] -extern crate serde_derive; - -#[macro_use] -extern crate log; - -extern crate bincode; -extern crate common_types; -extern crate ethcore; -extern crate ethcore_blockchain; -extern crate ethcore_db; -extern crate ethcore_io as io; -extern crate ethcore_network as network; -extern crate ethereum_types; -extern crate failsafe; -extern crate fastmap; -extern crate futures; -extern crate hash_db; -extern crate heapsize; -extern crate itertools; -extern crate keccak_hasher; -extern crate memory_db; -extern crate parity_bytes as bytes; -extern crate parking_lot; -extern crate patricia_trie_ethereum as ethtrie; -extern crate rand; -extern crate rlp; -extern crate trie_db as trie; -#[macro_use] -extern crate rlp_derive; -extern crate keccak_hash as hash; -extern crate kvdb; -extern crate memory_cache; -extern crate serde; -extern crate smallvec; -extern crate stats; -extern crate triehash_ethereum as triehash; -extern crate vm; -#[macro_use] -extern crate error_chain; - -extern crate journaldb; -#[cfg(test)] -extern crate kvdb_memorydb; -#[cfg(test)] -extern crate tempdir; diff --git a/ethcore/light/src/net/context.rs b/ethcore/light/src/net/context.rs deleted file mode 100644 index 57a6c67b3..000000000 --- a/ethcore/light/src/net/context.rs +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! I/O and event context generalizations. - -use network::{NetworkContext, NodeId, PeerId}; - -use super::{error::Error, Announcement, LightProtocol, ReqId}; -use request::NetworkRequests as Requests; - -/// An I/O context which allows sending and receiving packets as well as -/// disconnecting peers. This is used as a generalization of the portions -/// of a p2p network which the light protocol structure makes use of. -pub trait IoContext { - /// Send a packet to a specific peer. - fn send(&self, peer: PeerId, packet_id: u8, packet_body: Vec); - - /// Respond to a peer's message. Only works if this context is a byproduct - /// of a packet handler. - fn respond(&self, packet_id: u8, packet_body: Vec); - - /// Disconnect a peer. - fn disconnect_peer(&self, peer: PeerId); - - /// Disable a peer -- this is a disconnect + a time-out. - fn disable_peer(&self, peer: PeerId); - - /// Get a peer's protocol version. - fn protocol_version(&self, peer: PeerId) -> Option; - - /// Persistent peer id - fn persistent_peer_id(&self, peer: PeerId) -> Option; - - /// Whether given peer id is reserved peer - fn is_reserved_peer(&self, peer: PeerId) -> bool; -} - -impl IoContext for T -where - T: ?Sized + NetworkContext, -{ - fn send(&self, peer: PeerId, packet_id: u8, packet_body: Vec) { - if let Err(e) = self.send(peer, packet_id, packet_body) { - debug!(target: "pip", "Error sending packet to peer {}: {}", peer, e); - } - } - - fn respond(&self, packet_id: u8, packet_body: Vec) { - if let Err(e) = self.respond(packet_id, packet_body) { - debug!(target: "pip", "Error responding to peer message: {}", e); - } - } - - fn disconnect_peer(&self, peer: PeerId) { - trace!(target: "pip", "Initiating disconnect of peer {}", peer); - NetworkContext::disconnect_peer(self, peer); - } - - fn disable_peer(&self, peer: PeerId) { - trace!(target: "pip", "Initiating disable of peer {}", peer); - NetworkContext::disable_peer(self, peer); - } - - fn protocol_version(&self, peer: PeerId) -> Option { - self.protocol_version(self.subprotocol_name(), peer) - } - - fn persistent_peer_id(&self, peer: PeerId) -> Option { - self.session_info(peer).and_then(|info| info.id) - } - - fn is_reserved_peer(&self, peer: PeerId) -> bool { - NetworkContext::is_reserved_peer(self, peer) - } -} - -/// Basic context for the protocol. -pub trait BasicContext { - /// Returns the relevant's peer persistent Id (aka NodeId). - fn persistent_peer_id(&self, peer: PeerId) -> Option; - - /// Make a request from a peer. - /// - /// Fails on: nonexistent peer, network error, peer not server, - /// insufficient credits. Does not check capabilities before sending. - /// On success, returns a request id which can later be coordinated - /// with an event. - fn request_from(&self, peer: PeerId, request: Requests) -> Result; - - /// Make an announcement of new capabilities to the rest of the peers. - // TODO: maybe just put this on a timer in LightProtocol? - fn make_announcement(&self, announcement: Announcement); - - /// Disconnect a peer. - fn disconnect_peer(&self, peer: PeerId); - - /// Disable a peer. - fn disable_peer(&self, peer: PeerId); -} - -/// Context for a protocol event which has a peer ID attached. -pub trait EventContext: BasicContext { - /// Get the peer relevant to the event e.g. message sender, - /// disconnected/connected peer. - fn peer(&self) -> PeerId; - - /// Treat the event context as a basic context. - fn as_basic(&self) -> &dyn BasicContext; -} - -/// Basic context. -pub struct TickCtx<'a> { - /// Io context to enable dispatch. - pub io: &'a dyn IoContext, - /// Protocol implementation. - pub proto: &'a LightProtocol, -} - -impl<'a> BasicContext for TickCtx<'a> { - fn persistent_peer_id(&self, id: PeerId) -> Option { - self.io.persistent_peer_id(id) - } - - fn request_from(&self, peer: PeerId, requests: Requests) -> Result { - self.proto.request_from(self.io, peer, requests) - } - - fn make_announcement(&self, announcement: Announcement) { - self.proto.make_announcement(self.io, announcement); - } - - fn disconnect_peer(&self, peer: PeerId) { - self.io.disconnect_peer(peer); - } - - fn disable_peer(&self, peer: PeerId) { - self.io.disable_peer(peer); - } -} - -/// Concrete implementation of `EventContext` over the light protocol struct and -/// an io context. -pub struct Ctx<'a> { - /// Io context to enable immediate response to events. - pub io: &'a dyn IoContext, - /// Protocol implementation. - pub proto: &'a LightProtocol, - /// Relevant peer for event. - pub peer: PeerId, -} - -impl<'a> BasicContext for Ctx<'a> { - fn persistent_peer_id(&self, id: PeerId) -> Option { - self.io.persistent_peer_id(id) - } - - fn request_from(&self, peer: PeerId, requests: Requests) -> Result { - self.proto.request_from(self.io, peer, requests) - } - - fn make_announcement(&self, announcement: Announcement) { - self.proto.make_announcement(self.io, announcement); - } - - fn disconnect_peer(&self, peer: PeerId) { - self.io.disconnect_peer(peer); - } - - fn disable_peer(&self, peer: PeerId) { - self.io.disable_peer(peer); - } -} - -impl<'a> EventContext for Ctx<'a> { - fn peer(&self) -> PeerId { - self.peer - } - - fn as_basic(&self) -> &dyn BasicContext { - &*self - } -} diff --git a/ethcore/light/src/net/error.rs b/ethcore/light/src/net/error.rs deleted file mode 100644 index 614287e79..000000000 --- a/ethcore/light/src/net/error.rs +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Defines error types and levels of punishment to use upon -//! encountering. - -use network; -use rlp; -use std::fmt; - -/// Levels of punishment. -/// -/// Currently just encompasses two different kinds of disconnect and -/// no punishment, but this is where reputation systems might come into play. -// In ascending order -#[derive(Debug, PartialEq, Eq)] -pub enum Punishment { - /// Perform no punishment. - None, - /// Disconnect the peer, but don't prevent them from reconnecting. - Disconnect, - /// Disconnect the peer and prevent them from reconnecting. - Disable, -} - -/// Kinds of errors which can be encountered in the course of LES. -#[derive(Debug)] -pub enum Error { - /// An RLP decoding error. - Rlp(rlp::DecoderError), - /// A network error. - Network(network::Error), - /// Out of credits. - NoCredits, - /// Unrecognized packet code. - UnrecognizedPacket(u8), - /// Unexpected handshake. - UnexpectedHandshake, - /// Peer on wrong network (wrong NetworkId or genesis hash) - WrongNetwork, - /// Unknown peer. - UnknownPeer, - /// Unsolicited response. - UnsolicitedResponse, - /// Bad back-reference in request. - BadBackReference, - /// Not a server. - NotServer, - /// Unsupported protocol version. - UnsupportedProtocolVersion(u8), - /// Bad protocol version. - BadProtocolVersion, - /// Peer is overburdened. - Overburdened, - /// No handler kept the peer. - RejectedByHandlers, -} - -impl Error { - /// What level of punishment does this error warrant? - pub fn punishment(&self) -> Punishment { - match *self { - Error::Rlp(_) => Punishment::Disable, - Error::Network(_) => Punishment::None, - Error::NoCredits => Punishment::Disable, - Error::UnrecognizedPacket(_) => Punishment::Disconnect, - Error::UnexpectedHandshake => Punishment::Disconnect, - Error::WrongNetwork => Punishment::Disable, - Error::UnknownPeer => Punishment::Disconnect, - Error::UnsolicitedResponse => Punishment::Disable, - Error::BadBackReference => Punishment::Disable, - Error::NotServer => Punishment::Disable, - Error::UnsupportedProtocolVersion(_) => Punishment::Disable, - Error::BadProtocolVersion => Punishment::Disable, - Error::Overburdened => Punishment::None, - Error::RejectedByHandlers => Punishment::Disconnect, - } - } -} - -impl From for Error { - fn from(err: rlp::DecoderError) -> Self { - Error::Rlp(err) - } -} - -impl From for Error { - fn from(err: network::Error) -> Self { - Error::Network(err) - } -} - -impl fmt::Display for Error { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - match *self { - Error::Rlp(ref err) => err.fmt(f), - Error::Network(ref err) => err.fmt(f), - Error::NoCredits => write!(f, "Out of request credits"), - Error::UnrecognizedPacket(code) => write!(f, "Unrecognized packet: 0x{:x}", code), - Error::UnexpectedHandshake => write!(f, "Unexpected handshake"), - Error::WrongNetwork => write!(f, "Wrong network"), - Error::UnknownPeer => write!(f, "Unknown peer"), - Error::UnsolicitedResponse => write!(f, "Peer provided unsolicited data"), - Error::BadBackReference => write!(f, "Bad back-reference in request."), - Error::NotServer => write!(f, "Peer not a server."), - Error::UnsupportedProtocolVersion(pv) => { - write!(f, "Unsupported protocol version: {}", pv) - } - Error::BadProtocolVersion => write!(f, "Bad protocol version in handshake"), - Error::Overburdened => write!(f, "Peer overburdened"), - Error::RejectedByHandlers => write!(f, "No handler kept this peer"), - } - } -} diff --git a/ethcore/light/src/net/load_timer.rs b/ethcore/light/src/net/load_timer.rs deleted file mode 100644 index f8c638a37..000000000 --- a/ethcore/light/src/net/load_timer.rs +++ /dev/null @@ -1,305 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Request load timer and distribution manager. -//! -//! This uses empirical samples of the length of time taken to respond -//! to requests in order to inform request credit costs. -//! -//! The average request time is determined by an exponential moving average -//! of the mean request times during the last `MOVING_SAMPLE_SIZE` time periods of -//! length `TIME_PERIOD_MS`, with the exception that time periods where no data is -//! gathered are excluded. - -use std::{ - collections::{HashMap, VecDeque}, - fs::File, - path::PathBuf, - time::{Duration, Instant}, -}; - -use request::{CompleteRequest, Kind}; - -use bincode; -use parking_lot::{Mutex, RwLock}; - -/// Number of time periods samples should be kept for. -pub const MOVING_SAMPLE_SIZE: usize = 256; - -/// Stores rolling load timer samples. -// TODO: switch to bigint if possible (FP casts aren't available) -pub trait SampleStore: Send + Sync { - /// Load samples. - fn load(&self) -> HashMap>; - - /// Store all samples. - fn store(&self, samples: &HashMap>); -} - -// get a hardcoded, arbitrarily determined (but intended overestimate) -// of the time it takes to serve a request of the given kind. -// -// TODO: seed this with empirical data. -fn hardcoded_serve_time(kind: Kind) -> Duration { - Duration::new( - 0, - match kind { - Kind::Headers => 500_000, - Kind::HeaderProof => 500_000, - Kind::TransactionIndex => 500_000, - Kind::Receipts => 1_000_000, - Kind::Body => 1_000_000, - Kind::Account => 1_500_000, - Kind::Storage => 2_000_000, - Kind::Code => 1_500_000, - Kind::Execution => 250, // per gas. - Kind::Signal => 500_000, - }, - ) -} - -/// A no-op store. -pub struct NullStore; - -impl SampleStore for NullStore { - fn load(&self) -> HashMap> { - HashMap::new() - } - fn store(&self, _samples: &HashMap>) {} -} - -/// Request load distributions. -pub struct LoadDistribution { - active_period: RwLock>>, - samples: RwLock>>, -} - -impl LoadDistribution { - /// Load rolling samples from the given store. - pub fn load(store: &dyn SampleStore) -> Self { - let mut samples = store.load(); - - for kind_samples in samples.values_mut() { - while kind_samples.len() > MOVING_SAMPLE_SIZE { - kind_samples.pop_front(); - } - } - - LoadDistribution { - active_period: RwLock::new(HashMap::new()), - samples: RwLock::new(samples), - } - } - - /// Begin a timer. - pub fn begin_timer<'a>(&'a self, req: &CompleteRequest) -> LoadTimer<'a> { - let kind = req.kind(); - let n = match *req { - CompleteRequest::Headers(ref req) => req.max, - CompleteRequest::Execution(ref req) => req.gas.low_u64(), - _ => 1, - }; - - LoadTimer { - start: Instant::now(), - n, - dist: self, - kind, - } - } - - /// Calculate EMA of load for a specific request kind. - /// If there is no data for the given request kind, no EMA will be calculated, - /// but a hardcoded time will be returned. - pub fn expected_time(&self, kind: Kind) -> Duration { - let samples = self.samples.read(); - samples - .get(&kind) - .and_then(|s| { - if s.is_empty() { - return None; - } - - let alpha: f64 = 1_f64 / s.len() as f64; - let start = *s.front().expect("length known to be non-zero; qed") as f64; - let ema = s - .iter() - .skip(1) - .fold(start, |a, &c| (alpha * c as f64) + ((1.0 - alpha) * a)); - - Some(Duration::from_nanos(ema as u64)) - }) - .unwrap_or_else(move || hardcoded_serve_time(kind)) - } - - /// End the current time period. Provide a store to - pub fn end_period(&self, store: &dyn SampleStore) { - let active_period = self.active_period.read(); - let mut samples = self.samples.write(); - - for (&kind, set) in active_period.iter() { - let (elapsed, n) = ::std::mem::replace(&mut *set.lock(), (0, 0)); - if n == 0 { - continue; - } - - let kind_samples = samples - .entry(kind) - .or_insert_with(|| VecDeque::with_capacity(MOVING_SAMPLE_SIZE)); - - if kind_samples.len() == MOVING_SAMPLE_SIZE { - kind_samples.pop_front(); - } - kind_samples.push_back(elapsed / n); - } - - store.store(&*samples); - } - - fn update(&self, kind: Kind, elapsed: Duration, n: u64) { - macro_rules! update_counters { - ($counters: expr) => { - $counters.0 = $counters.0.saturating_add({ - elapsed.as_secs() * 1_000_000_000 + elapsed.subsec_nanos() as u64 - }); - $counters.1 = $counters.1.saturating_add(n); - }; - }; - - { - let set = self.active_period.read(); - if let Some(counters) = set.get(&kind) { - let mut counters = counters.lock(); - update_counters!(counters); - return; - } - } - - let mut set = self.active_period.write(); - let counters = set.entry(kind).or_insert_with(|| Mutex::new((0, 0))); - - update_counters!(counters.get_mut()); - } -} - -/// A timer for a single request. -/// On drop, this will update the distribution. -pub struct LoadTimer<'a> { - start: Instant, - n: u64, - dist: &'a LoadDistribution, - kind: Kind, -} - -impl<'a> Drop for LoadTimer<'a> { - fn drop(&mut self) { - let elapsed = self.start.elapsed(); - self.dist.update(self.kind, elapsed, self.n); - } -} - -/// A store which writes directly to a file. -pub struct FileStore(pub PathBuf); - -impl SampleStore for FileStore { - fn load(&self) -> HashMap> { - File::open(&self.0) - .map_err(|e| Box::new(bincode::ErrorKind::IoError(e))) - .and_then(|mut file| bincode::deserialize_from(&mut file, bincode::Infinite)) - .unwrap_or_else(|_| HashMap::new()) - } - - fn store(&self, samples: &HashMap>) { - let res = File::create(&self.0) - .map_err(|e| Box::new(bincode::ErrorKind::IoError(e))) - .and_then(|mut file| bincode::serialize_into(&mut file, samples, bincode::Infinite)); - - if let Err(e) = res { - warn!(target: "pip", "Error writing light request timing samples to file: {}", e); - } - } -} - -#[cfg(test)] -mod tests { - use super::*; - use request::Kind; - - #[test] - fn hardcoded_before_data() { - let dist = LoadDistribution::load(&NullStore); - assert_eq!( - dist.expected_time(Kind::Headers), - hardcoded_serve_time(Kind::Headers) - ); - - dist.update(Kind::Headers, Duration::new(0, 100_000), 100); - dist.end_period(&NullStore); - - assert_eq!(dist.expected_time(Kind::Headers), Duration::new(0, 1000)); - } - - #[test] - fn moving_average() { - let dist = LoadDistribution::load(&NullStore); - - let mut sum = 0; - - for (i, x) in (0..10).map(|x| x * 10_000).enumerate() { - dist.update(Kind::Headers, Duration::new(0, x), 1); - dist.end_period(&NullStore); - - sum += x; - if i == 0 { - continue; - } - - let moving_average = dist.expected_time(Kind::Headers); - - // should be weighted below the maximum entry. - let arith_average = (sum as f64 / (i + 1) as f64) as u32; - assert!(moving_average < Duration::new(0, x)); - - // when there are only 2 entries, they should be equal due to choice of - // ALPHA = 1/N. - // otherwise, the weight should be below the arithmetic mean because the much - // smaller previous values are discounted less. - if i == 1 { - assert_eq!(moving_average, Duration::new(0, arith_average)); - } else { - assert!(moving_average < Duration::new(0, arith_average)) - } - } - } - - #[test] - fn file_store() { - let tempdir = ::tempdir::TempDir::new("").unwrap(); - let path = tempdir.path().join("file"); - let store = FileStore(path); - - let mut samples = store.load(); - assert!(samples.is_empty()); - samples.insert(Kind::Headers, vec![5, 2, 7, 2, 2, 4].into()); - samples.insert(Kind::Execution, vec![1, 1, 100, 250].into()); - - store.store(&samples); - - let dup = store.load(); - - assert_eq!(samples, dup); - } -} diff --git a/ethcore/light/src/net/mod.rs b/ethcore/light/src/net/mod.rs deleted file mode 100644 index fea8b8ae5..000000000 --- a/ethcore/light/src/net/mod.rs +++ /dev/null @@ -1,1309 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! PLP Protocol Version 1 implementation. -//! -//! This uses a "Provider" to answer requests. - -use common_types::transaction::UnverifiedTransaction; -use ethereum_types::{H256, U256}; -use io::TimerToken; -use kvdb::DBValue; -use network::{NetworkContext, NetworkProtocolHandler, PeerId}; -use parking_lot::{Mutex, RwLock}; -use provider::Provider; -use request::{NetworkRequests as Requests, Request, Response}; -use rlp::{Rlp, RlpStream}; -use std::{ - collections::{HashMap, HashSet, VecDeque}, - fmt, - ops::{BitAnd, BitOr, Not}, - sync::{ - atomic::{AtomicUsize, Ordering}, - Arc, - }, - time::{Duration, Instant}, -}; - -use self::{ - context::{Ctx, TickCtx}, - error::Punishment, - id_guard::IdGuard, - load_timer::{LoadDistribution, NullStore, MOVING_SAMPLE_SIZE}, - request_credits::{Credits, FlowParams}, - request_set::RequestSet, -}; - -mod context; -mod error; -mod load_timer; -mod request_set; -mod status; - -#[cfg(test)] -mod tests; - -pub mod request_credits; - -pub use self::{ - context::{BasicContext, EventContext, IoContext}, - error::Error, - load_timer::{FileStore, SampleStore}, - status::{Announcement, Capabilities, Status}, -}; - -const TIMEOUT: TimerToken = 0; -const TIMEOUT_INTERVAL: Duration = Duration::from_secs(1); - -const TICK_TIMEOUT: TimerToken = 1; -const TICK_TIMEOUT_INTERVAL: Duration = Duration::from_secs(5); - -const PROPAGATE_TIMEOUT: TimerToken = 2; -const PROPAGATE_TIMEOUT_INTERVAL: Duration = Duration::from_secs(5); - -const RECALCULATE_COSTS_TIMEOUT: TimerToken = 3; -const RECALCULATE_COSTS_INTERVAL: Duration = Duration::from_secs(60 * 60); - -const STATISTICS_TIMEOUT: TimerToken = 4; -const STATISTICS_INTERVAL: Duration = Duration::from_secs(15); - -/// Maximum load share for the light server -pub const MAX_LIGHTSERV_LOAD: f64 = 0.5; - -/// Factor to multiply leecher count to cater for -/// extra sudden connections (should be >= 1.0) -pub const LEECHER_COUNT_FACTOR: f64 = 1.25; - -// minimum interval between updates. -const UPDATE_INTERVAL: Duration = Duration::from_millis(5000); - -/// Packet count for PIP. -const PACKET_COUNT_V1: u8 = 9; - -/// Supported protocol versions. -pub const PROTOCOL_VERSIONS: &[(u8, u8)] = &[(1, PACKET_COUNT_V1)]; - -/// Max protocol version. -pub const MAX_PROTOCOL_VERSION: u8 = 1; - -// packet ID definitions. -mod packet { - // the status packet. - pub const STATUS: u8 = 0x00; - - // announcement of new block hashes or capabilities. - pub const ANNOUNCE: u8 = 0x01; - - // request and response. - pub const REQUEST: u8 = 0x02; - pub const RESPONSE: u8 = 0x03; - - // request credits update and acknowledgement. - pub const UPDATE_CREDITS: u8 = 0x04; - pub const ACKNOWLEDGE_UPDATE: u8 = 0x05; - - // relay transactions to peers. - pub const SEND_TRANSACTIONS: u8 = 0x06; - - // two packets were previously meant to be reserved for epoch proofs. - // these have since been moved to requests. -} - -// timeouts for different kinds of requests. all values are in milliseconds. -mod timeout { - use std::time::Duration; - - pub const HANDSHAKE: Duration = Duration::from_millis(4_000); - pub const ACKNOWLEDGE_UPDATE: Duration = Duration::from_millis(5_000); - pub const BASE: u64 = 2_500; // base timeout for packet. - - // timeouts per request within packet. - pub const HEADERS: u64 = 250; // per header? - pub const TRANSACTION_INDEX: u64 = 100; - pub const BODY: u64 = 50; - pub const RECEIPT: u64 = 50; - pub const PROOF: u64 = 100; // state proof - pub const CONTRACT_CODE: u64 = 100; - pub const HEADER_PROOF: u64 = 100; - pub const TRANSACTION_PROOF: u64 = 1000; // per gas? - pub const EPOCH_SIGNAL: u64 = 200; -} - -/// A request id. -#[cfg(not(test))] -#[derive(Debug, Clone, Copy, PartialEq, Eq, Ord, PartialOrd, Hash)] -pub struct ReqId(usize); - -#[cfg(test)] -#[derive(Debug, Clone, Copy, PartialEq, Eq, Ord, PartialOrd, Hash)] -pub struct ReqId(pub usize); - -impl fmt::Display for ReqId { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "Request #{}", self.0) - } -} - -// A pending peer: one we've sent our status to but -// may not have received one for. -struct PendingPeer { - sent_head: H256, - last_update: Instant, -} - -/// Relevant data to each peer. Not accessible publicly, only `pub` due to -/// limitations of the privacy system. -pub struct Peer { - local_credits: Credits, // their credits relative to us - status: Status, - capabilities: Capabilities, - remote_flow: Option<(Credits, FlowParams)>, - sent_head: H256, // last chain head we've given them. - last_update: Instant, - pending_requests: RequestSet, - failed_requests: Vec, - propagated_transactions: HashSet, - skip_update: bool, - local_flow: Arc, - awaiting_acknowledge: Option<(Instant, Arc)>, -} - -/// Whether or not a peer was kept by a handler -#[derive(Debug, Clone, Copy, PartialEq, Eq)] -pub enum PeerStatus { - /// The peer was kept - Kept, - /// The peer was not kept - Unkept, -} - -impl Not for PeerStatus { - type Output = Self; - - fn not(self) -> Self { - use self::PeerStatus::*; - - match self { - Kept => Unkept, - Unkept => Kept, - } - } -} - -impl BitAnd for PeerStatus { - type Output = Self; - - fn bitand(self, other: Self) -> Self { - use self::PeerStatus::*; - - match (self, other) { - (Kept, Kept) => Kept, - _ => Unkept, - } - } -} - -impl BitOr for PeerStatus { - type Output = Self; - - fn bitor(self, other: Self) -> Self { - use self::PeerStatus::*; - - match (self, other) { - (_, Kept) | (Kept, _) => Kept, - _ => Unkept, - } - } -} - -/// A light protocol event handler. -/// -/// Each handler function takes a context which describes the relevant peer -/// and gives references to the IO layer and protocol structure so new messages -/// can be dispatched immediately. -/// -/// Request responses are not guaranteed to be complete or valid, but passed IDs will be correct. -/// Response handlers are not given a copy of the original request; it is assumed -/// that relevant data will be stored by interested handlers. -pub trait Handler: Send + Sync { - /// Called when a peer connects. - fn on_connect( - &self, - _ctx: &dyn EventContext, - _status: &Status, - _capabilities: &Capabilities, - ) -> PeerStatus { - PeerStatus::Kept - } - /// Called when a peer disconnects, with a list of unfulfilled request IDs as - /// of yet. - fn on_disconnect(&self, _ctx: &dyn EventContext, _unfulfilled: &[ReqId]) {} - /// Called when a peer makes an announcement. - fn on_announcement(&self, _ctx: &dyn EventContext, _announcement: &Announcement) {} - /// Called when a peer requests relay of some transactions. - fn on_transactions(&self, _ctx: &dyn EventContext, _relay: &[UnverifiedTransaction]) {} - /// Called when a peer responds to requests. - /// Responses not guaranteed to contain valid data and are not yet checked against - /// the requests they correspond to. - fn on_responses(&self, _ctx: &dyn EventContext, _req_id: ReqId, _responses: &[Response]) {} - /// Called when a peer responds with a transaction proof. Each proof is a vector of state items. - fn on_transaction_proof( - &self, - _ctx: &dyn EventContext, - _req_id: ReqId, - _state_items: &[DBValue], - ) { - } - /// Called to "tick" the handler periodically. - fn tick(&self, _ctx: &dyn BasicContext) {} - /// Called on abort. This signals to handlers that they should clean up - /// and ignore peers. - // TODO: coreresponding `on_activate`? - fn on_abort(&self) {} -} - -/// Configuration. -pub struct Config { - /// How many stored seconds of credits peers should be able to accumulate. - pub max_stored_seconds: u64, - /// The network config median peers (used as default peer count) - pub median_peers: f64, -} - -impl Default for Config { - fn default() -> Self { - const MEDIAN_PEERS: f64 = 25.0; - const MAX_ACCUMULATED: u64 = 60 * 5; // only charge for 5 minutes. - - Config { - max_stored_seconds: MAX_ACCUMULATED, - median_peers: MEDIAN_PEERS, - } - } -} - -/// Protocol initialization parameters. -pub struct Params { - /// Network id. - pub network_id: u64, - /// Config. - pub config: Config, - /// Initial capabilities. - pub capabilities: Capabilities, - /// The sample store (`None` if data shouldn't persist between runs). - pub sample_store: Option>, -} - -/// Type alias for convenience. -pub type PeerMap = HashMap>; - -mod id_guard { - - use network::PeerId; - use parking_lot::RwLockReadGuard; - - use super::{PeerMap, ReqId}; - - // Guards success or failure of given request. - // On drop, inserts the req_id into the "failed requests" - // set for the peer unless defused. In separate module to enforce correct usage. - pub struct IdGuard<'a> { - peers: RwLockReadGuard<'a, PeerMap>, - peer_id: PeerId, - req_id: ReqId, - active: bool, - } - - impl<'a> IdGuard<'a> { - /// Create a new `IdGuard`, which will prevent access of the inner ReqId - /// (for forming responses, triggering handlers) until defused - pub fn new(peers: RwLockReadGuard<'a, PeerMap>, peer_id: PeerId, req_id: ReqId) -> Self { - IdGuard { - peers, - peer_id, - req_id, - active: true, - } - } - - /// Defuse the guard, signalling that the request has been successfully decoded. - pub fn defuse(mut self) -> ReqId { - // can't use the mem::forget trick here since we need the - // read guard to drop. - self.active = false; - self.req_id - } - } - - impl<'a> Drop for IdGuard<'a> { - fn drop(&mut self) { - if !self.active { - return; - } - if let Some(p) = self.peers.get(&self.peer_id) { - p.lock().failed_requests.push(self.req_id); - } - } - } -} - -/// Provides various statistics that could -/// be used to compute costs -pub struct Statistics { - /// Samples of peer count - peer_counts: VecDeque, -} - -impl Statistics { - /// Create a new Statistics instance - pub fn new() -> Self { - Statistics { - peer_counts: VecDeque::with_capacity(MOVING_SAMPLE_SIZE), - } - } - - /// Add a new peer_count sample - pub fn add_peer_count(&mut self, peer_count: usize) { - while self.peer_counts.len() >= MOVING_SAMPLE_SIZE { - self.peer_counts.pop_front(); - } - self.peer_counts.push_back(peer_count); - } - - /// Get the average peer count from previous samples. Is always >= 1.0 - pub fn avg_peer_count(&self) -> f64 { - let len = self.peer_counts.len(); - if len == 0 { - return 1.0; - } - let avg = self - .peer_counts - .iter() - .fold(0, |sum: u32, &v| sum.saturating_add(v as u32)) as f64 - / len as f64; - avg.max(1.0) - } -} - -/// This is an implementation of the light ethereum network protocol, abstracted -/// over a `Provider` of data and a p2p network. -/// -/// This is simply designed for request-response purposes. Higher level uses -/// of the protocol, such as synchronization, will function as wrappers around -/// this system. -// -// LOCK ORDER: -// Locks must be acquired in the order declared, and when holding a read lock -// on the peers, only one peer may be held at a time. -pub struct LightProtocol { - provider: Arc, - config: Config, - genesis_hash: H256, - network_id: u64, - pending_peers: RwLock>, - peers: RwLock, - capabilities: RwLock, - flow_params: RwLock>, - free_flow_params: Arc, - handlers: Vec>, - req_id: AtomicUsize, - sample_store: Box, - load_distribution: LoadDistribution, - statistics: RwLock, -} - -impl LightProtocol { - /// Create a new instance of the protocol manager. - pub fn new(provider: Arc, params: Params) -> Self { - debug!(target: "pip", "Initializing light protocol handler"); - - let genesis_hash = provider.chain_info().genesis_hash; - let sample_store = params.sample_store.unwrap_or_else(|| Box::new(NullStore)); - let load_distribution = LoadDistribution::load(&*sample_store); - // Default load share relative to median peers - let load_share = MAX_LIGHTSERV_LOAD / params.config.median_peers; - let flow_params = FlowParams::from_request_times( - |kind| load_distribution.expected_time(kind), - load_share, - Duration::from_secs(params.config.max_stored_seconds), - ); - - LightProtocol { - provider, - config: params.config, - genesis_hash, - network_id: params.network_id, - pending_peers: RwLock::new(HashMap::new()), - peers: RwLock::new(HashMap::new()), - capabilities: RwLock::new(params.capabilities), - flow_params: RwLock::new(Arc::new(flow_params)), - free_flow_params: Arc::new(FlowParams::free()), - handlers: Vec::new(), - req_id: AtomicUsize::new(0), - sample_store, - load_distribution, - statistics: RwLock::new(Statistics::new()), - } - } - - /// Attempt to get peer status. - pub fn peer_status(&self, peer: PeerId) -> Option { - self.peers - .read() - .get(&peer) - .map(|peer| peer.lock().status.clone()) - } - - /// Get number of (connected, active) peers. - pub fn peer_count(&self) -> (usize, usize) { - let num_pending = self.pending_peers.read().len(); - let peers = self.peers.read(); - ( - num_pending + peers.len(), - peers - .values() - .filter(|p| !p.lock().pending_requests.is_empty()) - .count(), - ) - } - - /// Get the number of active light peers downloading from the - /// node - pub fn leecher_count(&self) -> usize { - let credit_limit = *self.flow_params.read().limit(); - // Count the number of peers that used some credit - self.peers - .read() - .iter() - .filter(|(_, p)| p.lock().local_credits.current() < credit_limit) - .count() - } - - /// Make a request to a peer. - /// - /// Fails on: nonexistent peer, network error, peer not server, - /// insufficient credits. Does not check capabilities before sending. - /// On success, returns a request id which can later be coordinated - /// with an event. - pub fn request_from( - &self, - io: &dyn IoContext, - peer_id: PeerId, - requests: Requests, - ) -> Result { - let peers = self.peers.read(); - let peer = match peers.get(&peer_id) { - Some(peer) => peer, - None => return Err(Error::UnknownPeer), - }; - - let mut peer = peer.lock(); - let peer = &mut *peer; - match peer.remote_flow { - None => Err(Error::NotServer), - Some((ref mut creds, ref params)) => { - // apply recharge to credits if there's no pending requests. - if peer.pending_requests.is_empty() { - params.recharge(creds); - } - - // compute and deduct cost. - let pre_creds = creds.current(); - let cost = match params.compute_cost_multi(requests.requests()) { - Some(cost) => cost, - None => return Err(Error::NotServer), - }; - - creds.deduct_cost(cost)?; - - trace!(target: "pip", "requesting from peer {}. Cost: {}; Available: {}", - peer_id, cost, pre_creds); - - let req_id = ReqId(self.req_id.fetch_add(1, Ordering::SeqCst)); - io.send(peer_id, packet::REQUEST, { - let mut stream = RlpStream::new_list(2); - stream.append(&req_id.0).append_list(&requests.requests()); - stream.out() - }); - - // begin timeout. - peer.pending_requests - .insert(req_id, requests, cost, Instant::now()); - Ok(req_id) - } - } - } - - /// Make an announcement of new chain head and capabilities to all peers. - /// The announcement is expected to be valid. - pub fn make_announcement(&self, io: &dyn IoContext, mut announcement: Announcement) { - let mut reorgs_map = HashMap::new(); - let now = Instant::now(); - - // update stored capabilities - self.capabilities.write().update_from(&announcement); - - // calculate reorg info and send packets - for (peer_id, peer_info) in self.peers.read().iter() { - let mut peer_info = peer_info.lock(); - - // TODO: "urgent" announcements like new blocks? - // the timer approach will skip 1 (possibly 2) in rare occasions. - if peer_info.sent_head == announcement.head_hash || - peer_info.status.head_num >= announcement.head_num || - // fix for underflow reported in - // https://github.com/paritytech/parity-ethereum/issues/10419 - now < peer_info.last_update || - now - peer_info.last_update < UPDATE_INTERVAL - { - continue; - } - - peer_info.last_update = now; - - let reorg_depth = reorgs_map.entry(peer_info.sent_head) - .or_insert_with(|| { - match self.provider.reorg_depth(&announcement.head_hash, &peer_info.sent_head) { - Some(depth) => depth, - None => { - // both values will always originate locally -- this means something - // has gone really wrong - debug!(target: "pip", "couldn't compute reorganization depth between {:?} and {:?}", - &announcement.head_hash, &peer_info.sent_head); - 0 - } - } - }); - - peer_info.sent_head = announcement.head_hash; - announcement.reorg_depth = *reorg_depth; - - io.send( - *peer_id, - packet::ANNOUNCE, - status::write_announcement(&announcement), - ); - } - } - - /// Add an event handler. - /// - /// These are intended to be added when the protocol structure - /// is initialized as a means of customizing its behavior, - /// and dispatching requests immediately upon events. - pub fn add_handler(&mut self, handler: Arc) { - self.handlers.push(handler); - } - - /// Signal to handlers that network activity is being aborted - /// and clear peer data. - pub fn abort(&self) { - for handler in &self.handlers { - handler.on_abort(); - } - - // acquire in order and hold. - let mut pending_peers = self.pending_peers.write(); - let mut peers = self.peers.write(); - - pending_peers.clear(); - peers.clear(); - } - - // Does the common pre-verification of responses before the response itself - // is actually decoded: - // - check whether peer exists - // - check whether request was made - // - check whether request kinds match - fn pre_verify_response(&self, peer: PeerId, raw: &Rlp) -> Result { - let req_id = ReqId(raw.val_at(0)?); - let cur_credits: U256 = raw.val_at(1)?; - - trace!(target: "pip", "pre-verifying response for {} from peer {}", req_id, peer); - - let peers = self.peers.read(); - let res = match peers.get(&peer) { - Some(peer_info) => { - let mut peer_info = peer_info.lock(); - let peer_info: &mut Peer = &mut *peer_info; - let req_info = peer_info.pending_requests.remove(req_id, Instant::now()); - let last_batched = peer_info.pending_requests.is_empty(); - let flow_info = peer_info.remote_flow.as_mut(); - - match (req_info, flow_info) { - (Some(_), Some(flow_info)) => { - let &mut (ref mut c, ref mut flow) = flow_info; - - // only update if the cumulative cost of the request set is zero. - // and this response wasn't from before request costs were updated. - if !peer_info.skip_update && last_batched { - let actual_credits = ::std::cmp::min(cur_credits, *flow.limit()); - c.update_to(actual_credits); - } - - if last_batched { - peer_info.skip_update = false - } - - Ok(()) - } - (None, _) => Err(Error::UnsolicitedResponse), - (_, None) => Err(Error::NotServer), // really should be impossible. - } - } - None => Err(Error::UnknownPeer), // probably only occurs in a race of some kind. - }; - - res.map(|_| IdGuard::new(peers, peer, req_id)) - } - - /// Handle a packet using the given io context. - /// Packet data is _untrusted_, which means that invalid data won't lead to - /// issues. - pub fn handle_packet(&self, io: &dyn IoContext, peer: PeerId, packet_id: u8, data: &[u8]) { - let rlp = Rlp::new(data); - - trace!(target: "pip", "Incoming packet {} from peer {}", packet_id, peer); - - // handle the packet - let res = match packet_id { - packet::STATUS => self.status(peer, io, &rlp), - packet::ANNOUNCE => self.announcement(peer, io, &rlp), - - packet::REQUEST => self.request(peer, io, &rlp), - packet::RESPONSE => self.response(peer, io, &rlp), - - packet::UPDATE_CREDITS => self.update_credits(peer, io, &rlp), - packet::ACKNOWLEDGE_UPDATE => self.acknowledge_update(peer, io, &rlp), - - packet::SEND_TRANSACTIONS => self.relay_transactions(peer, io, &rlp), - - other => Err(Error::UnrecognizedPacket(other)), - }; - - if let Err(e) = res { - punish(peer, io, &e); - } - } - - // check timeouts and punish peers. - fn timeout_check(&self, io: &dyn IoContext) { - let now = Instant::now(); - - // handshake timeout - { - let mut pending = self.pending_peers.write(); - let slowpokes: Vec<_> = pending - .iter() - .filter(|&(_, ref peer)| peer.last_update + timeout::HANDSHAKE <= now) - .map(|(&p, _)| p) - .collect(); - - for slowpoke in slowpokes { - debug!(target: "pip", "Peer {} handshake timed out", slowpoke); - pending.remove(&slowpoke); - io.disconnect_peer(slowpoke); - } - } - - // request and update ack timeouts - let ack_duration = timeout::ACKNOWLEDGE_UPDATE; - { - for (peer_id, peer) in self.peers.read().iter() { - let peer = peer.lock(); - if peer.pending_requests.check_timeout(now) { - debug!(target: "pip", "Peer {} request timeout", peer_id); - io.disconnect_peer(*peer_id); - } - - if let Some((ref start, _)) = peer.awaiting_acknowledge { - if *start + ack_duration <= now { - debug!(target: "pip", "Peer {} update acknowledgement timeout", peer_id); - io.disconnect_peer(*peer_id); - } - } - } - } - } - - // propagate transactions to relay peers. - // if we aren't on the mainnet, we just propagate to all relay peers - fn propagate_transactions(&self, io: &dyn IoContext) { - if self.capabilities.read().tx_relay { - return; - } - - let ready_transactions = self.provider.transactions_to_propagate(); - if ready_transactions.is_empty() { - return; - } - - trace!(target: "pip", "propagate transactions: {} ready", ready_transactions.len()); - - let all_transaction_hashes: HashSet<_> = - ready_transactions.iter().map(|tx| tx.hash()).collect(); - let mut buf = Vec::new(); - - let peers = self.peers.read(); - for (peer_id, peer_info) in peers.iter() { - let mut peer_info = peer_info.lock(); - if !peer_info.capabilities.tx_relay { - continue; - } - - let prop_filter = &mut peer_info.propagated_transactions; - *prop_filter = &*prop_filter & &all_transaction_hashes; - - // fill the buffer with all non-propagated transactions. - let to_propagate = ready_transactions - .iter() - .filter(|tx| prop_filter.insert(tx.hash())) - .map(|tx| &tx.transaction); - - buf.extend(to_propagate); - - // propagate to the given peer. - if buf.is_empty() { - continue; - } - io.send(*peer_id, packet::SEND_TRANSACTIONS, { - let mut stream = RlpStream::new_list(buf.len()); - for pending_tx in buf.drain(..) { - stream.append(pending_tx); - } - - stream.out() - }) - } - } - - /// called when a peer connects. - pub fn on_connect(&self, peer: PeerId, io: &dyn IoContext) { - let proto_version = match io.protocol_version(peer).ok_or(Error::WrongNetwork) { - Ok(pv) => pv, - Err(e) => { - punish(peer, io, &e); - return; - } - }; - - if PROTOCOL_VERSIONS - .iter() - .find(|x| x.0 == proto_version) - .is_none() - { - punish(peer, io, &Error::UnsupportedProtocolVersion(proto_version)); - return; - } - - let chain_info = self.provider.chain_info(); - - let status = Status { - head_td: chain_info.total_difficulty, - head_hash: chain_info.best_block_hash, - head_num: chain_info.best_block_number, - genesis_hash: chain_info.genesis_hash, - protocol_version: proto_version as u32, // match peer proto version - network_id: self.network_id, - last_head: None, - }; - - let capabilities = self.capabilities.read(); - let cost_local_flow = self.flow_params.read(); - let local_flow = if io.is_reserved_peer(peer) { - &*self.free_flow_params - } else { - &**cost_local_flow - }; - let status_packet = status::write_handshake(&status, &capabilities, Some(local_flow)); - - self.pending_peers.write().insert( - peer, - PendingPeer { - sent_head: chain_info.best_block_hash, - last_update: Instant::now(), - }, - ); - - trace!(target: "pip", "Sending status to peer {}", peer); - io.send(peer, packet::STATUS, status_packet); - } - - /// called when a peer disconnects. - pub fn on_disconnect(&self, peer: PeerId, io: &dyn IoContext) { - trace!(target: "pip", "Peer {} disconnecting", peer); - - self.pending_peers.write().remove(&peer); - let unfulfilled = match self.peers.write().remove(&peer) { - None => return, - Some(peer_info) => { - let peer_info = peer_info.into_inner(); - let mut unfulfilled: Vec<_> = peer_info.pending_requests.collect_ids(); - unfulfilled.extend(peer_info.failed_requests); - - unfulfilled - } - }; - - for handler in &self.handlers { - handler.on_disconnect( - &Ctx { - peer, - io, - proto: self, - }, - &unfulfilled, - ) - } - } - - /// Execute the given closure with a basic context derived from the I/O context. - pub fn with_context(&self, io: &dyn IoContext, f: F) -> T - where - F: FnOnce(&dyn BasicContext) -> T, - { - f(&TickCtx { io, proto: self }) - } - - fn tick_handlers(&self, io: &dyn IoContext) { - for handler in &self.handlers { - handler.tick(&TickCtx { io, proto: self }) - } - } - - fn begin_new_cost_period(&self, io: &dyn IoContext) { - self.load_distribution.end_period(&*self.sample_store); - - let avg_peer_count = self.statistics.read().avg_peer_count(); - // Load share relative to average peer count +LEECHER_COUNT_FACTOR% - let load_share = MAX_LIGHTSERV_LOAD / (avg_peer_count * LEECHER_COUNT_FACTOR); - let new_params = Arc::new(FlowParams::from_request_times( - |kind| self.load_distribution.expected_time(kind), - load_share, - Duration::from_secs(self.config.max_stored_seconds), - )); - *self.flow_params.write() = new_params.clone(); - trace!(target: "pip", "New cost period: avg_peers={} ; cost_table:{:?}", avg_peer_count, new_params.cost_table()); - - let peers = self.peers.read(); - let now = Instant::now(); - - let packet_body = { - let mut stream = RlpStream::new_list(3); - stream - .append(new_params.limit()) - .append(new_params.recharge_rate()) - .append(new_params.cost_table()); - stream.out() - }; - - for (peer_id, peer_info) in peers.iter() { - let mut peer_info = peer_info.lock(); - - io.send(*peer_id, packet::UPDATE_CREDITS, packet_body.clone()); - peer_info.awaiting_acknowledge = Some((now, new_params.clone())); - } - } - - fn tick_statistics(&self) { - let leecher_count = self.leecher_count(); - self.statistics.write().add_peer_count(leecher_count); - } -} - -impl LightProtocol { - // Handle status message from peer. - fn status(&self, peer: PeerId, io: &dyn IoContext, data: &Rlp) -> Result<(), Error> { - let pending = match self.pending_peers.write().remove(&peer) { - Some(pending) => pending, - None => { - return Err(Error::UnexpectedHandshake); - } - }; - - let (status, capabilities, flow_params) = status::parse_handshake(data)?; - - trace!(target: "pip", "Connected peer with chain head {:?}", (status.head_hash, status.head_num)); - - if (status.network_id, status.genesis_hash) != (self.network_id, self.genesis_hash) { - trace!(target: "pip", "peer {} wrong network: network_id is {} vs our {}, gh is {} vs our {}", - peer, status.network_id, self.network_id, status.genesis_hash, self.genesis_hash); - - return Err(Error::WrongNetwork); - } - - if Some(status.protocol_version as u8) != io.protocol_version(peer) { - return Err(Error::BadProtocolVersion); - } - - let remote_flow = flow_params.map(|params| (params.create_credits(), params)); - let local_flow = if io.is_reserved_peer(peer) { - self.free_flow_params.clone() - } else { - self.flow_params.read().clone() - }; - - self.peers.write().insert( - peer, - Mutex::new(Peer { - local_credits: local_flow.create_credits(), - status: status.clone(), - capabilities, - remote_flow, - sent_head: pending.sent_head, - last_update: pending.last_update, - pending_requests: RequestSet::default(), - failed_requests: Vec::new(), - propagated_transactions: HashSet::new(), - skip_update: false, - local_flow, - awaiting_acknowledge: None, - }), - ); - - let any_kept = self - .handlers - .iter() - .map(|handler| { - handler.on_connect( - &Ctx { - peer, - io, - proto: self, - }, - &status, - &capabilities, - ) - }) - .fold(PeerStatus::Kept, PeerStatus::bitor); - - if any_kept == PeerStatus::Unkept { - Err(Error::RejectedByHandlers) - } else { - Ok(()) - } - } - - // Handle an announcement. - fn announcement(&self, peer: PeerId, io: &dyn IoContext, data: &Rlp) -> Result<(), Error> { - if !self.peers.read().contains_key(&peer) { - debug!(target: "pip", "Ignoring announcement from unknown peer"); - return Ok(()); - } - - let announcement = status::parse_announcement(data)?; - - // scope to ensure locks are dropped before moving into handler-space. - { - let peers = self.peers.read(); - let peer_info = match peers.get(&peer) { - Some(info) => info, - None => return Ok(()), - }; - - let mut peer_info = peer_info.lock(); - - // update status. - { - // TODO: punish peer if they've moved backwards. - let status = &mut peer_info.status; - let last_head = status.head_hash; - status.head_hash = announcement.head_hash; - status.head_td = announcement.head_td; - status.head_num = announcement.head_num; - status.last_head = Some((last_head, announcement.reorg_depth)); - } - - // update capabilities. - peer_info.capabilities.update_from(&announcement); - } - - for handler in &self.handlers { - handler.on_announcement( - &Ctx { - peer, - io, - proto: self, - }, - &announcement, - ); - } - - Ok(()) - } - - // Receive requests from a peer. - fn request(&self, peer_id: PeerId, io: &dyn IoContext, raw: &Rlp) -> Result<(), Error> { - // the maximum amount of requests we'll fill in a single packet. - const MAX_REQUESTS: usize = 256; - - use request::{Builder, CompleteRequest}; - - let peers = self.peers.read(); - let peer = match peers.get(&peer_id) { - Some(peer) => peer, - None => { - debug!(target: "pip", "Ignoring request from unknown peer"); - return Ok(()); - } - }; - let mut peer = peer.lock(); - let peer: &mut Peer = &mut *peer; - - let req_id: u64 = raw.val_at(0)?; - let mut request_builder = Builder::default(); - - trace!(target: "pip", "Received requests (id: {}) from peer {}", req_id, peer_id); - - // deserialize requests, check costs and request validity. - peer.local_flow.recharge(&mut peer.local_credits); - - peer.local_credits - .deduct_cost(peer.local_flow.base_cost())?; - for request_rlp in raw.at(1)?.iter().take(MAX_REQUESTS) { - let request: Request = request_rlp.as_val()?; - let cost = peer - .local_flow - .compute_cost(&request) - .ok_or(Error::NotServer)?; - peer.local_credits.deduct_cost(cost)?; - request_builder - .push(request) - .map_err(|_| Error::BadBackReference)?; - } - - let requests = request_builder.build(); - let num_requests = requests.requests().len(); - trace!(target: "pip", "Beginning to respond to requests (id: {}) from peer {}", req_id, peer_id); - - // respond to all requests until one fails. - let responses = requests.respond_to_all(|complete_req| { - let _timer = self.load_distribution.begin_timer(&complete_req); - match complete_req { - CompleteRequest::Headers(req) => { - self.provider.block_headers(req).map(Response::Headers) - } - CompleteRequest::HeaderProof(req) => { - self.provider.header_proof(req).map(Response::HeaderProof) - } - CompleteRequest::TransactionIndex(req) => self - .provider - .transaction_index(req) - .map(Response::TransactionIndex), - CompleteRequest::Body(req) => self.provider.block_body(req).map(Response::Body), - CompleteRequest::Receipts(req) => { - self.provider.block_receipts(req).map(Response::Receipts) - } - CompleteRequest::Account(req) => { - self.provider.account_proof(req).map(Response::Account) - } - CompleteRequest::Storage(req) => { - self.provider.storage_proof(req).map(Response::Storage) - } - CompleteRequest::Code(req) => self.provider.contract_code(req).map(Response::Code), - CompleteRequest::Execution(req) => self - .provider - .transaction_proof(req) - .map(Response::Execution), - CompleteRequest::Signal(req) => { - self.provider.epoch_signal(req).map(Response::Signal) - } - } - }); - - trace!(target: "pip", "Responded to {}/{} requests in packet {}", responses.len(), num_requests, req_id); - trace!(target: "pip", "Peer {} has {} credits remaining.", peer_id, peer.local_credits.current()); - - io.respond(packet::RESPONSE, { - let mut stream = RlpStream::new_list(3); - let cur_credits = peer.local_credits.current(); - stream - .append(&req_id) - .append(&cur_credits) - .append_list(&responses); - stream.out() - }); - Ok(()) - } - - // handle a packet with responses. - fn response(&self, peer: PeerId, io: &dyn IoContext, raw: &Rlp) -> Result<(), Error> { - let (req_id, responses) = { - let id_guard = self.pre_verify_response(peer, &raw)?; - let responses: Vec = raw.list_at(2)?; - (id_guard.defuse(), responses) - }; - - for handler in &self.handlers { - handler.on_responses( - &Ctx { - io, - proto: self, - peer, - }, - req_id, - &responses, - ); - } - - Ok(()) - } - - // handle an update of request credits parameters. - fn update_credits(&self, peer_id: PeerId, io: &dyn IoContext, raw: &Rlp) -> Result<(), Error> { - let peers = self.peers.read(); - - let peer = peers.get(&peer_id).ok_or(Error::UnknownPeer)?; - let mut peer = peer.lock(); - - trace!(target: "pip", "Received an update to request credit params from peer {}", peer_id); - - { - let &mut (ref mut credits, ref mut old_params) = - peer.remote_flow.as_mut().ok_or(Error::NotServer)?; - old_params.recharge(credits); - - let new_params = FlowParams::new( - raw.val_at(0)?, // limit - raw.val_at(2)?, // cost table - raw.val_at(1)?, // recharge. - ); - - // preserve ratio of current : limit when updating params. - credits.maintain_ratio(*old_params.limit(), *new_params.limit()); - *old_params = new_params; - } - - // set flag to true when there is an in-flight request - // corresponding to old flow params. - if !peer.pending_requests.is_empty() { - peer.skip_update = true; - } - - // let peer know we've acknowledged the update. - io.respond(packet::ACKNOWLEDGE_UPDATE, Vec::new()); - Ok(()) - } - - // handle an acknowledgement of request credits update. - fn acknowledge_update( - &self, - peer_id: PeerId, - _io: &dyn IoContext, - _raw: &Rlp, - ) -> Result<(), Error> { - let peers = self.peers.read(); - let peer = peers.get(&peer_id).ok_or(Error::UnknownPeer)?; - let mut peer = peer.lock(); - - trace!(target: "pip", "Received an acknowledgement for new request credit params from peer {}", peer_id); - - let (_, new_params) = match peer.awaiting_acknowledge.take() { - Some(x) => x, - None => return Err(Error::UnsolicitedResponse), - }; - - let old_limit = *peer.local_flow.limit(); - peer.local_credits - .maintain_ratio(old_limit, *new_params.limit()); - peer.local_flow = new_params; - Ok(()) - } - - // Receive a set of transactions to relay. - fn relay_transactions( - &self, - peer: PeerId, - io: &dyn IoContext, - data: &Rlp, - ) -> Result<(), Error> { - const MAX_TRANSACTIONS: usize = 256; - - let txs: Vec<_> = data - .iter() - .take(MAX_TRANSACTIONS) - .map(|x| x.as_val::()) - .collect::>()?; - - debug!(target: "pip", "Received {} transactions to relay from peer {}", txs.len(), peer); - - for handler in &self.handlers { - handler.on_transactions( - &Ctx { - peer, - io, - proto: self, - }, - &txs, - ); - } - - Ok(()) - } -} - -// if something went wrong, figure out how much to punish the peer. -fn punish(peer: PeerId, io: &dyn IoContext, e: &Error) { - match e.punishment() { - Punishment::None => {} - Punishment::Disconnect => { - debug!(target: "pip", "Disconnecting peer {}: {}", peer, e); - io.disconnect_peer(peer) - } - Punishment::Disable => { - debug!(target: "pip", "Disabling peer {}: {}", peer, e); - io.disable_peer(peer) - } - } -} - -impl NetworkProtocolHandler for LightProtocol { - fn initialize(&self, io: &dyn NetworkContext) { - io.register_timer(TIMEOUT, TIMEOUT_INTERVAL) - .expect("Error registering sync timer."); - io.register_timer(TICK_TIMEOUT, TICK_TIMEOUT_INTERVAL) - .expect("Error registering sync timer."); - io.register_timer(PROPAGATE_TIMEOUT, PROPAGATE_TIMEOUT_INTERVAL) - .expect("Error registering sync timer."); - io.register_timer(RECALCULATE_COSTS_TIMEOUT, RECALCULATE_COSTS_INTERVAL) - .expect("Error registering request timer interval token."); - io.register_timer(STATISTICS_TIMEOUT, STATISTICS_INTERVAL) - .expect("Error registering statistics timer."); - } - - fn read(&self, io: &dyn NetworkContext, peer: &PeerId, packet_id: u8, data: &[u8]) { - self.handle_packet(&io, *peer, packet_id, data); - } - - fn connected(&self, io: &dyn NetworkContext, peer: &PeerId) { - self.on_connect(*peer, &io); - } - - fn disconnected(&self, io: &dyn NetworkContext, peer: &PeerId) { - self.on_disconnect(*peer, &io); - } - - fn timeout(&self, io: &dyn NetworkContext, timer: TimerToken) { - match timer { - TIMEOUT => self.timeout_check(&io), - TICK_TIMEOUT => self.tick_handlers(&io), - PROPAGATE_TIMEOUT => self.propagate_transactions(&io), - RECALCULATE_COSTS_TIMEOUT => self.begin_new_cost_period(&io), - STATISTICS_TIMEOUT => self.tick_statistics(), - _ => warn!(target: "pip", "received timeout on unknown token {}", timer), - } - } -} diff --git a/ethcore/light/src/net/request_credits.rs b/ethcore/light/src/net/request_credits.rs deleted file mode 100644 index 01abb8fe3..000000000 --- a/ethcore/light/src/net/request_credits.rs +++ /dev/null @@ -1,473 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Request credit management. -//! -//! Every request in the light protocol leads to a reduction -//! of the requester's amount of credits as a rate-limiting mechanism. -//! The amount of credits will recharge at a set rate. -//! -//! This module provides an interface for configuration of -//! costs and recharge rates of request credits. -//! -//! Current default costs are picked completely arbitrarily, not based -//! on any empirical timings or mathematical models. - -use super::error::Error; -use request::{self, Request}; - -use ethereum_types::U256; -use rlp::{Decodable, DecoderError, Encodable, Rlp, RlpStream}; -use std::time::{Duration, Instant}; - -/// Credits value. -/// -/// Produced and recharged using `FlowParams`. -/// Definitive updates can be made as well -- these will reset the recharge -/// point to the time of the update. -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct Credits { - estimate: U256, - recharge_point: Instant, -} - -impl Credits { - /// Get the current amount of credits.. - pub fn current(&self) -> U256 { - self.estimate - } - - /// Make a definitive update. - /// This will be the value obtained after receiving - /// a response to a request. - pub fn update_to(&mut self, value: U256) { - self.estimate = value; - self.recharge_point = Instant::now(); - } - - /// Maintain ratio to current limit against an old limit. - pub fn maintain_ratio(&mut self, old_limit: U256, new_limit: U256) { - self.estimate = (new_limit * self.estimate) / old_limit; - } - - /// Attempt to apply the given cost to the amount of credits. - /// - /// If successful, the cost will be deducted successfully. - /// - /// If unsuccessful, the structure will be unaltered an an - /// error will be produced. - pub fn deduct_cost(&mut self, cost: U256) -> Result<(), Error> { - if cost > self.estimate { - Err(Error::NoCredits) - } else { - self.estimate = self.estimate - cost; - Ok(()) - } - } -} - -/// A cost table, mapping requests to base and per-request costs. -/// Costs themselves may be missing. -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct CostTable { - base: U256, // cost per packet. - headers: Option, // cost per header - transaction_index: Option, - body: Option, - receipts: Option, - account: Option, - storage: Option, - code: Option, - header_proof: Option, - transaction_proof: Option, // cost per gas. - epoch_signal: Option, -} - -impl CostTable { - fn costs_set(&self) -> usize { - let mut num_set = 0; - - { - let mut incr_if_set = |cost: &Option<_>| { - if cost.is_some() { - num_set += 1 - } - }; - incr_if_set(&self.headers); - incr_if_set(&self.transaction_index); - incr_if_set(&self.body); - incr_if_set(&self.receipts); - incr_if_set(&self.account); - incr_if_set(&self.storage); - incr_if_set(&self.code); - incr_if_set(&self.header_proof); - incr_if_set(&self.transaction_proof); - incr_if_set(&self.epoch_signal); - } - - num_set - } -} - -impl Default for CostTable { - fn default() -> Self { - // arbitrarily chosen constants. - CostTable { - base: 100_000.into(), - headers: Some(10000.into()), - transaction_index: Some(10000.into()), - body: Some(15000.into()), - receipts: Some(5000.into()), - account: Some(25000.into()), - storage: Some(25000.into()), - code: Some(20000.into()), - header_proof: Some(15000.into()), - transaction_proof: Some(2.into()), - epoch_signal: Some(10000.into()), - } - } -} - -impl Encodable for CostTable { - fn rlp_append(&self, s: &mut RlpStream) { - fn append_cost(s: &mut RlpStream, cost: &Option, kind: request::Kind) { - if let Some(ref cost) = *cost { - s.begin_list(2); - // hack around https://github.com/paritytech/parity-ethereum/issues/4356 - Encodable::rlp_append(&kind, s); - s.append(cost); - } - } - - s.begin_list(1 + self.costs_set()).append(&self.base); - append_cost(s, &self.headers, request::Kind::Headers); - append_cost(s, &self.transaction_index, request::Kind::TransactionIndex); - append_cost(s, &self.body, request::Kind::Body); - append_cost(s, &self.receipts, request::Kind::Receipts); - append_cost(s, &self.account, request::Kind::Account); - append_cost(s, &self.storage, request::Kind::Storage); - append_cost(s, &self.code, request::Kind::Code); - append_cost(s, &self.header_proof, request::Kind::HeaderProof); - append_cost(s, &self.transaction_proof, request::Kind::Execution); - append_cost(s, &self.epoch_signal, request::Kind::Signal); - } -} - -impl Decodable for CostTable { - fn decode(rlp: &Rlp) -> Result { - let base = rlp.val_at(0)?; - - let mut headers = None; - let mut transaction_index = None; - let mut body = None; - let mut receipts = None; - let mut account = None; - let mut storage = None; - let mut code = None; - let mut header_proof = None; - let mut transaction_proof = None; - let mut epoch_signal = None; - - for cost_list in rlp.iter().skip(1) { - let cost = cost_list.val_at(1)?; - match cost_list.val_at(0)? { - request::Kind::Headers => headers = Some(cost), - request::Kind::TransactionIndex => transaction_index = Some(cost), - request::Kind::Body => body = Some(cost), - request::Kind::Receipts => receipts = Some(cost), - request::Kind::Account => account = Some(cost), - request::Kind::Storage => storage = Some(cost), - request::Kind::Code => code = Some(cost), - request::Kind::HeaderProof => header_proof = Some(cost), - request::Kind::Execution => transaction_proof = Some(cost), - request::Kind::Signal => epoch_signal = Some(cost), - } - } - - let table = CostTable { - base, - headers, - transaction_index, - body, - receipts, - account, - storage, - code, - header_proof, - transaction_proof, - epoch_signal, - }; - - if table.costs_set() == 0 { - Err(DecoderError::Custom("no cost types set.")) - } else { - Ok(table) - } - } -} - -/// Handles costs, recharge, limits of request credits. -#[derive(Debug, Clone, PartialEq)] -pub struct FlowParams { - costs: CostTable, - limit: U256, - recharge: U256, -} - -impl FlowParams { - /// Create new flow parameters from a request cost table, - /// credit limit, and (minimum) rate of recharge. - pub fn new(limit: U256, costs: CostTable, recharge: U256) -> Self { - FlowParams { - costs, - limit, - recharge, - } - } - - /// Create new flow parameters from , - /// proportion of total capacity which should be given to a peer, - /// and stored capacity a peer can accumulate. - pub fn from_request_times Duration>( - request_time: F, - load_share: f64, - max_stored: Duration, - ) -> Self { - use request::Kind; - - let load_share = load_share.abs(); - - let recharge: u64 = 100_000_000; - let max = { - let sec = max_stored.as_secs().saturating_mul(recharge); - let nanos = (max_stored.subsec_nanos() as u64).saturating_mul(recharge) / 1_000_000_000; - sec + nanos - }; - - let cost_for_kind = |kind| { - // how many requests we can handle per second - let rq_dur = request_time(kind); - let second_duration = { - let as_ns = - rq_dur.as_secs() as f64 * 1_000_000_000f64 + rq_dur.subsec_nanos() as f64; - 1_000_000_000f64 / as_ns - }; - - // scale by share of the load given to this peer. - let serve_per_second = second_duration * load_share; - let serve_per_second = serve_per_second.max(1.0 / 10_000.0); - - // as a percentage of the recharge per second. - Some(U256::from((recharge as f64 / serve_per_second) as u64)) - }; - - let costs = CostTable { - base: 0.into(), - headers: cost_for_kind(Kind::Headers), - transaction_index: cost_for_kind(Kind::TransactionIndex), - body: cost_for_kind(Kind::Body), - receipts: cost_for_kind(Kind::Receipts), - account: cost_for_kind(Kind::Account), - storage: cost_for_kind(Kind::Storage), - code: cost_for_kind(Kind::Code), - header_proof: cost_for_kind(Kind::HeaderProof), - transaction_proof: cost_for_kind(Kind::Execution), - epoch_signal: cost_for_kind(Kind::Signal), - }; - - FlowParams { - costs, - limit: max.into(), - recharge: recharge.into(), - } - } - - /// Create effectively infinite flow params. - pub fn free() -> Self { - let free_cost: Option = Some(0.into()); - FlowParams { - limit: (!0_u64).into(), - recharge: 1.into(), - costs: CostTable { - base: 0.into(), - headers: free_cost, - transaction_index: free_cost, - body: free_cost, - receipts: free_cost, - account: free_cost, - storage: free_cost, - code: free_cost, - header_proof: free_cost, - transaction_proof: free_cost, - epoch_signal: free_cost, - }, - } - } - - /// Get a reference to the credit limit. - pub fn limit(&self) -> &U256 { - &self.limit - } - - /// Get a reference to the cost table. - pub fn cost_table(&self) -> &CostTable { - &self.costs - } - - /// Get the base cost of a request. - pub fn base_cost(&self) -> U256 { - self.costs.base - } - - /// Get a reference to the recharge rate. - pub fn recharge_rate(&self) -> &U256 { - &self.recharge - } - - /// Compute the actual cost of a request, given the kind of request - /// and number of requests made. - pub fn compute_cost(&self, request: &Request) -> Option { - match *request { - Request::Headers(ref req) => self.costs.headers.map(|c| c * U256::from(req.max)), - Request::HeaderProof(_) => self.costs.header_proof, - Request::TransactionIndex(_) => self.costs.transaction_index, - Request::Body(_) => self.costs.body, - Request::Receipts(_) => self.costs.receipts, - Request::Account(_) => self.costs.account, - Request::Storage(_) => self.costs.storage, - Request::Code(_) => self.costs.code, - Request::Execution(ref req) => self.costs.transaction_proof.map(|c| c * req.gas), - Request::Signal(_) => self.costs.epoch_signal, - } - } - - /// Compute the cost of a set of requests. - /// This is the base cost plus the cost of each individual request. - pub fn compute_cost_multi(&self, requests: &[Request]) -> Option { - let mut cost = self.costs.base; - for request in requests { - match self.compute_cost(request) { - Some(c) => cost = cost + c, - None => return None, - } - } - - Some(cost) - } - - /// Create initial credits. - pub fn create_credits(&self) -> Credits { - Credits { - estimate: self.limit, - recharge_point: Instant::now(), - } - } - - /// Recharge the given credits based on time passed since last - /// update. - pub fn recharge(&self, credits: &mut Credits) { - let now = Instant::now(); - - // recompute and update only in terms of full seconds elapsed - // in order to keep the estimate as an underestimate. - let elapsed = (now - credits.recharge_point).as_secs(); - credits.recharge_point += Duration::from_secs(elapsed); - - let elapsed: U256 = elapsed.into(); - - credits.estimate = - ::std::cmp::min(self.limit, credits.estimate + (elapsed * self.recharge)); - } - - /// Refund some credits which were previously deducted. - /// Does not update the recharge timestamp. - pub fn refund(&self, credits: &mut Credits, refund_amount: U256) { - credits.estimate = credits.estimate + refund_amount; - - if credits.estimate > self.limit { - credits.estimate = self.limit - } - } -} - -impl Default for FlowParams { - fn default() -> Self { - FlowParams { - limit: 50_000_000.into(), - costs: CostTable::default(), - recharge: 100_000.into(), - } - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn should_serialize_cost_table() { - let costs = CostTable::default(); - let serialized = ::rlp::encode(&costs); - - let new_costs: CostTable = ::rlp::decode(&*serialized).unwrap(); - - assert_eq!(costs, new_costs); - } - - #[test] - fn credits_mechanism() { - use std::{thread, time::Duration}; - - let flow_params = FlowParams::new(100.into(), Default::default(), 20.into()); - let mut credits = flow_params.create_credits(); - - assert!(credits.deduct_cost(101.into()).is_err()); - assert!(credits.deduct_cost(10.into()).is_ok()); - - thread::sleep(Duration::from_secs(1)); - - flow_params.recharge(&mut credits); - - assert_eq!(credits.estimate, 100.into()); - } - - #[test] - fn scale_by_load_share_and_time() { - let flow_params = FlowParams::from_request_times( - |_| Duration::new(0, 10_000), - 0.05, - Duration::from_secs(60), - ); - - let flow_params2 = FlowParams::from_request_times( - |_| Duration::new(0, 10_000), - 0.1, - Duration::from_secs(60), - ); - - let flow_params3 = FlowParams::from_request_times( - |_| Duration::new(0, 5_000), - 0.05, - Duration::from_secs(60), - ); - - assert_eq!(flow_params2.costs, flow_params3.costs); - assert_eq!( - flow_params.costs.headers.unwrap(), - flow_params2.costs.headers.unwrap() * 2u32 - ); - } -} diff --git a/ethcore/light/src/net/request_set.rs b/ethcore/light/src/net/request_set.rs deleted file mode 100644 index f12a4d878..000000000 --- a/ethcore/light/src/net/request_set.rs +++ /dev/null @@ -1,211 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Pending request set. -//! -//! Stores pending requests and does timeout computation according to the rule -//! that only the earliest submitted request within the structure may time out. -//! -//! Whenever a request becomes the earliest, its timeout period begins at that moment. - -use std::{ - collections::{BTreeMap, HashMap}, - iter::FromIterator, - time::{Duration, Instant}, -}; - -use ethereum_types::U256; -use net::{timeout, ReqId}; -use request::{NetworkRequests as Requests, Request}; - -// Request set entry: requests + cost. -#[derive(Debug)] -struct Entry(Requests, U256); - -/// Request set. -#[derive(Debug)] -pub struct RequestSet { - counter: u64, - cumulative_cost: U256, - base: Option, - ids: HashMap, - reqs: BTreeMap, -} - -impl Default for RequestSet { - fn default() -> Self { - RequestSet { - counter: 0, - cumulative_cost: 0.into(), - base: None, - ids: HashMap::new(), - reqs: BTreeMap::new(), - } - } -} - -impl RequestSet { - /// Push requests onto the stack. - pub fn insert(&mut self, req_id: ReqId, req: Requests, cost: U256, now: Instant) { - let counter = self.counter; - self.cumulative_cost = self.cumulative_cost + cost; - - self.ids.insert(req_id, counter); - self.reqs.insert(counter, Entry(req, cost)); - - if self.reqs.keys().next().map_or(true, |x| *x == counter) { - self.base = Some(now); - } - - self.counter += 1; - } - - /// Remove a set of requests from the stack. - pub fn remove(&mut self, req_id: ReqId, now: Instant) -> Option { - let id = match self.ids.remove(&req_id) { - Some(id) => id, - None => return None, - }; - - let Entry(req, cost) = self - .reqs - .remove(&id) - .expect("entry in `ids` implies entry in `reqs`; qed"); - - match self.reqs.keys().next() { - Some(k) if *k > id => self.base = Some(now), - None => self.base = None, - _ => {} - } - - self.cumulative_cost = self.cumulative_cost - cost; - Some(req) - } - - /// Check for timeout against the given time. Returns true if - /// has timed out, false otherwise. - pub fn check_timeout(&self, now: Instant) -> bool { - let base = match self.base.as_ref().cloned() { - Some(base) => base, - None => return false, - }; - - let first_req = self - .reqs - .values() - .next() - .expect("base existing implies `reqs` non-empty; qed"); - - base + compute_timeout(&first_req.0) <= now - } - - /// Collect all pending request ids. - pub fn collect_ids(&self) -> F - where - F: FromIterator, - { - self.ids.keys().cloned().collect() - } - - /// Number of requests in the set. - pub fn len(&self) -> usize { - self.ids.len() - } - - /// Whether the set is empty. - pub fn is_empty(&self) -> bool { - self.len() == 0 - } - - /// The cumulative cost of all requests in the set. - // this may be useful later for load balancing. - #[allow(dead_code)] - pub fn cumulative_cost(&self) -> U256 { - self.cumulative_cost - } -} - -// helper to calculate timeout for a specific set of requests. -// it's a base amount + some amount per request. -fn compute_timeout(reqs: &Requests) -> Duration { - Duration::from_millis(reqs.requests().iter().fold(timeout::BASE, |tm, req| { - tm + match *req { - Request::Headers(_) => timeout::HEADERS, - Request::HeaderProof(_) => timeout::HEADER_PROOF, - Request::TransactionIndex(_) => timeout::TRANSACTION_INDEX, - Request::Receipts(_) => timeout::RECEIPT, - Request::Body(_) => timeout::BODY, - Request::Account(_) => timeout::PROOF, - Request::Storage(_) => timeout::PROOF, - Request::Code(_) => timeout::CONTRACT_CODE, - Request::Execution(_) => timeout::TRANSACTION_PROOF, - Request::Signal(_) => timeout::EPOCH_SIGNAL, - } - })) -} - -#[cfg(test)] -mod tests { - use super::{compute_timeout, RequestSet}; - use net::ReqId; - use request::Builder; - use std::time::{Duration, Instant}; - - #[test] - fn multi_timeout() { - let test_begin = Instant::now(); - let mut req_set = RequestSet::default(); - - let the_req = Builder::default().build(); - let req_time = compute_timeout(&the_req); - req_set.insert(ReqId(0), the_req.clone(), 0.into(), test_begin); - req_set.insert( - ReqId(1), - the_req, - 0.into(), - test_begin + Duration::from_secs(1), - ); - - assert_eq!(req_set.base, Some(test_begin)); - - let test_end = test_begin + req_time; - assert!(req_set.check_timeout(test_end)); - - req_set - .remove(ReqId(0), test_begin + Duration::from_secs(1)) - .unwrap(); - assert!(!req_set.check_timeout(test_end)); - assert!(req_set.check_timeout(test_end + Duration::from_secs(1))); - } - - #[test] - fn cumulative_cost() { - let the_req = Builder::default().build(); - let test_begin = Instant::now(); - let test_end = test_begin + Duration::from_secs(1); - let mut req_set = RequestSet::default(); - - for i in 0..5 { - req_set.insert(ReqId(i), the_req.clone(), 1.into(), test_begin); - assert_eq!(req_set.cumulative_cost, (i + 1).into()); - } - - for i in (0..5).rev() { - assert!(req_set.remove(ReqId(i), test_end).is_some()); - assert_eq!(req_set.cumulative_cost, i.into()); - } - } -} diff --git a/ethcore/light/src/net/status.rs b/ethcore/light/src/net/status.rs deleted file mode 100644 index 4f79938f7..000000000 --- a/ethcore/light/src/net/status.rs +++ /dev/null @@ -1,569 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Peer status and capabilities. - -use ethereum_types::{H256, U256}; -use rlp::{Decodable, DecoderError, Encodable, Rlp, RlpStream}; - -use super::request_credits::FlowParams; - -// recognized handshake/announcement keys. -// unknown keys are to be skipped, known keys have a defined order. -// their string values are defined in the LES spec. -#[derive(Debug, Clone, Copy, PartialEq, Eq, Ord, PartialOrd)] -enum Key { - ProtocolVersion, - NetworkId, - HeadTD, - HeadHash, - HeadNum, - GenesisHash, - ServeHeaders, - ServeChainSince, - ServeStateSince, - TxRelay, - BufferLimit, - BufferCostTable, - BufferRechargeRate, -} - -impl Key { - // get the string value of this key. - fn as_str(self) -> &'static str { - match self { - Key::ProtocolVersion => "protocolVersion", - Key::NetworkId => "networkId", - Key::HeadTD => "headTd", - Key::HeadHash => "headHash", - Key::HeadNum => "headNum", - Key::GenesisHash => "genesisHash", - Key::ServeHeaders => "serveHeaders", - Key::ServeChainSince => "serveChainSince", - Key::ServeStateSince => "serveStateSince", - Key::TxRelay => "txRelay", - Key::BufferLimit => "flowControl/BL", - Key::BufferCostTable => "flowControl/MRC", - Key::BufferRechargeRate => "flowControl/MRR", - } - } - - // try to parse the key value from a string. - fn from_str(s: &str) -> Option { - match s { - "protocolVersion" => Some(Key::ProtocolVersion), - "networkId" => Some(Key::NetworkId), - "headTd" => Some(Key::HeadTD), - "headHash" => Some(Key::HeadHash), - "headNum" => Some(Key::HeadNum), - "genesisHash" => Some(Key::GenesisHash), - "serveHeaders" => Some(Key::ServeHeaders), - "serveChainSince" => Some(Key::ServeChainSince), - "serveStateSince" => Some(Key::ServeStateSince), - "txRelay" => Some(Key::TxRelay), - "flowControl/BL" => Some(Key::BufferLimit), - "flowControl/MRC" => Some(Key::BufferCostTable), - "flowControl/MRR" => Some(Key::BufferRechargeRate), - _ => None, - } - } -} - -// helper for decoding key-value pairs in the handshake or an announcement. -struct Parser<'a> { - pos: usize, - rlp: &'a Rlp<'a>, -} - -impl<'a> Parser<'a> { - // expect a specific next key, and decode the value. - // error on unexpected key or invalid value. - fn expect(&mut self, key: Key) -> Result { - self.expect_raw(key).and_then(|item| item.as_val()) - } - - // expect a specific next key, and get the value's RLP. - // if the key isn't found, the position isn't advanced. - fn expect_raw(&mut self, key: Key) -> Result, DecoderError> { - trace!(target: "les", "Expecting key {}", key.as_str()); - let pre_pos = self.pos; - if let Some((k, val)) = self.get_next()? { - if k == key { - return Ok(val); - } - } - - self.pos = pre_pos; - Err(DecoderError::Custom("Missing expected key")) - } - - // get the next key and value RLP. - fn get_next(&mut self) -> Result)>, DecoderError> { - while self.pos < self.rlp.item_count()? { - let pair = self.rlp.at(self.pos)?; - let k: String = pair.val_at(0)?; - - self.pos += 1; - match Key::from_str(&k) { - Some(key) => return Ok(Some((key, pair.at(1)?))), - None => continue, - } - } - - Ok(None) - } -} - -// Helper for encoding a key-value pair -fn encode_pair(key: Key, val: &T) -> Vec { - let mut s = RlpStream::new_list(2); - s.append(&key.as_str()).append(val); - s.out() -} - -// Helper for encoding a flag. -fn encode_flag(key: Key) -> Vec { - let mut s = RlpStream::new_list(2); - s.append(&key.as_str()).append_empty_data(); - s.out() -} - -/// A peer status message. -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct Status { - /// Protocol version. - pub protocol_version: u32, - /// Network id of this peer. - pub network_id: u64, - /// Total difficulty of the head of the chain. - pub head_td: U256, - /// Hash of the best block. - pub head_hash: H256, - /// Number of the best block. - pub head_num: u64, - /// Genesis hash - pub genesis_hash: H256, - /// Last announced chain head and reorg depth to common ancestor. - pub last_head: Option<(H256, u64)>, -} - -impl Status { - /// Update the status from an announcement. - pub fn update_from(&mut self, announcement: &Announcement) { - self.last_head = Some((self.head_hash, announcement.reorg_depth)); - self.head_td = announcement.head_td; - self.head_hash = announcement.head_hash; - self.head_num = announcement.head_num; - } -} - -/// Peer capabilities. -#[derive(Debug, Clone, Copy, PartialEq, Eq)] -pub struct Capabilities { - /// Whether this peer can serve headers - pub serve_headers: bool, - /// Earliest block number it can serve block/receipt requests for. - /// `None` means no requests will be servable. - pub serve_chain_since: Option, - /// Earliest block number it can serve state requests for. - /// `None` means no requests will be servable. - pub serve_state_since: Option, - /// Whether it can relay transactions to the eth network. - pub tx_relay: bool, -} - -impl Default for Capabilities { - fn default() -> Self { - Capabilities { - serve_headers: true, - serve_chain_since: None, - serve_state_since: None, - tx_relay: false, - } - } -} - -impl Capabilities { - /// Update the capabilities from an announcement. - pub fn update_from(&mut self, announcement: &Announcement) { - self.serve_headers = self.serve_headers || announcement.serve_headers; - self.serve_state_since = self.serve_state_since.or(announcement.serve_state_since); - self.serve_chain_since = self.serve_chain_since.or(announcement.serve_chain_since); - self.tx_relay = self.tx_relay || announcement.tx_relay; - } -} - -/// Attempt to parse a handshake message into its three parts: -/// - chain status -/// - serving capabilities -/// - request credit parameters -pub fn parse_handshake( - rlp: &Rlp, -) -> Result<(Status, Capabilities, Option), DecoderError> { - let mut parser = Parser { pos: 0, rlp }; - - let status = Status { - protocol_version: parser.expect(Key::ProtocolVersion)?, - network_id: parser.expect(Key::NetworkId)?, - head_td: parser.expect(Key::HeadTD)?, - head_hash: parser.expect(Key::HeadHash)?, - head_num: parser.expect(Key::HeadNum)?, - genesis_hash: parser.expect(Key::GenesisHash)?, - last_head: None, - }; - - let capabilities = Capabilities { - serve_headers: parser.expect_raw(Key::ServeHeaders).is_ok(), - serve_chain_since: parser.expect(Key::ServeChainSince).ok(), - serve_state_since: parser.expect(Key::ServeStateSince).ok(), - tx_relay: parser.expect_raw(Key::TxRelay).is_ok(), - }; - - let flow_params = match ( - parser.expect(Key::BufferLimit), - parser.expect(Key::BufferCostTable), - parser.expect(Key::BufferRechargeRate), - ) { - (Ok(bl), Ok(bct), Ok(brr)) => Some(FlowParams::new(bl, bct, brr)), - _ => None, - }; - - Ok((status, capabilities, flow_params)) -} - -/// Write a handshake, given status, capabilities, and flow parameters. -pub fn write_handshake( - status: &Status, - capabilities: &Capabilities, - flow_params: Option<&FlowParams>, -) -> Vec { - let mut pairs = Vec::new(); - pairs.push(encode_pair(Key::ProtocolVersion, &status.protocol_version)); - pairs.push(encode_pair(Key::NetworkId, &(status.network_id as u64))); - pairs.push(encode_pair(Key::HeadTD, &status.head_td)); - pairs.push(encode_pair(Key::HeadHash, &status.head_hash)); - pairs.push(encode_pair(Key::HeadNum, &status.head_num)); - pairs.push(encode_pair(Key::GenesisHash, &status.genesis_hash)); - - if capabilities.serve_headers { - pairs.push(encode_flag(Key::ServeHeaders)); - } - if let Some(ref serve_chain_since) = capabilities.serve_chain_since { - pairs.push(encode_pair(Key::ServeChainSince, serve_chain_since)); - } - if let Some(ref serve_state_since) = capabilities.serve_state_since { - pairs.push(encode_pair(Key::ServeStateSince, serve_state_since)); - } - if capabilities.tx_relay { - pairs.push(encode_flag(Key::TxRelay)); - } - - if let Some(flow_params) = flow_params { - pairs.push(encode_pair(Key::BufferLimit, flow_params.limit())); - pairs.push(encode_pair(Key::BufferCostTable, flow_params.cost_table())); - pairs.push(encode_pair( - Key::BufferRechargeRate, - flow_params.recharge_rate(), - )); - } - - let mut stream = RlpStream::new_list(pairs.len()); - - for pair in pairs { - stream.append_raw(&pair, 1); - } - - stream.out() -} - -/// An announcement of new chain head or capabilities made by a peer. -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct Announcement { - /// Hash of the best block. - pub head_hash: H256, - /// Number of the best block. - pub head_num: u64, - /// Head total difficulty - pub head_td: U256, - /// reorg depth to common ancestor of last announced head. - pub reorg_depth: u64, - /// optional new header-serving capability. false means "no change" - pub serve_headers: bool, - /// optional new state-serving capability - pub serve_state_since: Option, - /// optional new chain-serving capability - pub serve_chain_since: Option, - /// optional new transaction-relay capability. false means "no change" - pub tx_relay: bool, - // TODO: changes in request credits. -} - -/// Parse an announcement. -pub fn parse_announcement(rlp: &Rlp) -> Result { - let mut last_key = None; - - let mut announcement = Announcement { - head_hash: rlp.val_at(0)?, - head_num: rlp.val_at(1)?, - head_td: rlp.val_at(2)?, - reorg_depth: rlp.val_at(3)?, - serve_headers: false, - serve_state_since: None, - serve_chain_since: None, - tx_relay: false, - }; - - let mut parser = Parser { pos: 4, rlp }; - - while let Some((key, item)) = parser.get_next()? { - if Some(key) <= last_key { - return Err(DecoderError::Custom("Invalid announcement key ordering")); - } - last_key = Some(key); - - match key { - Key::ServeHeaders => announcement.serve_headers = true, - Key::ServeStateSince => announcement.serve_state_since = Some(item.as_val()?), - Key::ServeChainSince => announcement.serve_chain_since = Some(item.as_val()?), - Key::TxRelay => announcement.tx_relay = true, - _ => return Err(DecoderError::Custom("Nonsensical key in announcement")), - } - } - - Ok(announcement) -} - -/// Write an announcement out. -pub fn write_announcement(announcement: &Announcement) -> Vec { - let mut pairs = Vec::new(); - if announcement.serve_headers { - pairs.push(encode_flag(Key::ServeHeaders)); - } - if let Some(ref serve_chain_since) = announcement.serve_chain_since { - pairs.push(encode_pair(Key::ServeChainSince, serve_chain_since)); - } - if let Some(ref serve_state_since) = announcement.serve_state_since { - pairs.push(encode_pair(Key::ServeStateSince, serve_state_since)); - } - if announcement.tx_relay { - pairs.push(encode_flag(Key::TxRelay)); - } - - let mut stream = RlpStream::new_list(4 + pairs.len()); - stream - .append(&announcement.head_hash) - .append(&announcement.head_num) - .append(&announcement.head_td) - .append(&announcement.reorg_depth); - - for item in pairs { - stream.append_raw(&item, 1); - } - - stream.out() -} - -#[cfg(test)] -mod tests { - use super::{super::request_credits::FlowParams, *}; - use ethereum_types::{H256, U256}; - use rlp::{Rlp, RlpStream}; - - #[test] - fn full_handshake() { - let status = Status { - protocol_version: 1, - network_id: 1, - head_td: U256::default(), - head_hash: H256::default(), - head_num: 10, - genesis_hash: H256::zero(), - last_head: None, - }; - - let capabilities = Capabilities { - serve_headers: true, - serve_chain_since: Some(5), - serve_state_since: Some(8), - tx_relay: true, - }; - - let flow_params = FlowParams::new(1_000_000.into(), Default::default(), 1000.into()); - - let handshake = write_handshake(&status, &capabilities, Some(&flow_params)); - - let (read_status, read_capabilities, read_flow) = - parse_handshake(&Rlp::new(&handshake)).unwrap(); - - assert_eq!(read_status, status); - assert_eq!(read_capabilities, capabilities); - assert_eq!(read_flow.unwrap(), flow_params); - } - - #[test] - fn partial_handshake() { - let status = Status { - protocol_version: 1, - network_id: 1, - head_td: U256::default(), - head_hash: H256::default(), - head_num: 10, - genesis_hash: H256::zero(), - last_head: None, - }; - - let capabilities = Capabilities { - serve_headers: false, - serve_chain_since: Some(5), - serve_state_since: None, - tx_relay: true, - }; - - let flow_params = FlowParams::new(1_000_000.into(), Default::default(), 1000.into()); - - let handshake = write_handshake(&status, &capabilities, Some(&flow_params)); - - let (read_status, read_capabilities, read_flow) = - parse_handshake(&Rlp::new(&handshake)).unwrap(); - - assert_eq!(read_status, status); - assert_eq!(read_capabilities, capabilities); - assert_eq!(read_flow.unwrap(), flow_params); - } - - #[test] - fn skip_unknown_keys() { - let status = Status { - protocol_version: 1, - network_id: 1, - head_td: U256::default(), - head_hash: H256::default(), - head_num: 10, - genesis_hash: H256::zero(), - last_head: None, - }; - - let capabilities = Capabilities { - serve_headers: false, - serve_chain_since: Some(5), - serve_state_since: None, - tx_relay: true, - }; - - let flow_params = FlowParams::new(1_000_000.into(), Default::default(), 1000.into()); - - let handshake = write_handshake(&status, &capabilities, Some(&flow_params)); - let interleaved = { - let handshake = Rlp::new(&handshake); - let mut stream = RlpStream::new_list(handshake.item_count().unwrap_or(0) * 3); - - for item in handshake.iter() { - stream.append_raw(item.as_raw(), 1); - let (mut s1, mut s2) = (RlpStream::new_list(2), RlpStream::new_list(2)); - s1.append(&"foo").append_empty_data(); - s2.append(&"bar").append_empty_data(); - stream.append_raw(&s1.out(), 1); - stream.append_raw(&s2.out(), 1); - } - - stream.out() - }; - - let (read_status, read_capabilities, read_flow) = - parse_handshake(&Rlp::new(&interleaved)).unwrap(); - - assert_eq!(read_status, status); - assert_eq!(read_capabilities, capabilities); - assert_eq!(read_flow.unwrap(), flow_params); - } - - #[test] - fn announcement_roundtrip() { - let announcement = Announcement { - head_hash: H256::random(), - head_num: 100_000, - head_td: 1_000_000.into(), - reorg_depth: 4, - serve_headers: false, - serve_state_since: Some(99_000), - serve_chain_since: Some(1), - tx_relay: true, - }; - - let serialized = write_announcement(&announcement); - let read = parse_announcement(&Rlp::new(&serialized)).unwrap(); - - assert_eq!(read, announcement); - } - - #[test] - fn keys_out_of_order() { - use super::{encode_flag, encode_pair, Key}; - - let mut stream = RlpStream::new_list(6); - stream - .append(&H256::zero()) - .append(&10_u64) - .append(&100_000_u64) - .append(&2_u64) - .append_raw(&encode_pair(Key::ServeStateSince, &44_u64), 1) - .append_raw(&encode_flag(Key::ServeHeaders), 1); - - let out = stream.drain(); - assert!(parse_announcement(&Rlp::new(&out)).is_err()); - - let mut stream = RlpStream::new_list(6); - stream - .append(&H256::zero()) - .append(&10_u64) - .append(&100_000_u64) - .append(&2_u64) - .append_raw(&encode_flag(Key::ServeHeaders), 1) - .append_raw(&encode_pair(Key::ServeStateSince, &44_u64), 1); - - let out = stream.drain(); - assert!(parse_announcement(&Rlp::new(&out)).is_ok()); - } - - #[test] - fn optional_flow() { - let status = Status { - protocol_version: 1, - network_id: 1, - head_td: U256::default(), - head_hash: H256::default(), - head_num: 10, - genesis_hash: H256::zero(), - last_head: None, - }; - - let capabilities = Capabilities { - serve_headers: true, - serve_chain_since: Some(5), - serve_state_since: Some(8), - tx_relay: true, - }; - - let handshake = write_handshake(&status, &capabilities, None); - - let (read_status, read_capabilities, read_flow) = - parse_handshake(&Rlp::new(&handshake)).unwrap(); - - assert_eq!(read_status, status); - assert_eq!(read_capabilities, capabilities); - assert!(read_flow.is_none()); - } -} diff --git a/ethcore/light/src/net/tests/mod.rs b/ethcore/light/src/net/tests/mod.rs deleted file mode 100644 index fc1f3d017..000000000 --- a/ethcore/light/src/net/tests/mod.rs +++ /dev/null @@ -1,927 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Tests for the `LightProtocol` implementation. -//! These don't test of the higher level logic on top of - -use common_types::{ - blockchain_info::BlockChainInfo, - encoded, - ids::BlockId, - transaction::{Action, PendingTransaction}, -}; -use ethcore::client::{EachBlockWith, TestBlockChainClient}; -use ethereum_types::{Address, H256, U256}; -use net::{ - context::IoContext, - load_timer::MOVING_SAMPLE_SIZE, - packet, - status::{Capabilities, Status}, - LightProtocol, Params, Peer, Statistics, -}; -use network::{NodeId, PeerId}; -use provider::Provider; -use request::{self, *}; -use rlp::{Rlp, RlpStream}; - -use std::{sync::Arc, time::Instant}; - -// helper for encoding a single request into a packet. -// panics on bad backreference. -fn encode_single(request: Request) -> NetworkRequests { - let mut builder = Builder::default(); - builder.push(request).unwrap(); - builder.build() -} - -// helper for making a packet out of `Requests`. -fn make_packet(req_id: usize, requests: &NetworkRequests) -> Vec { - let mut stream = RlpStream::new_list(2); - stream.append(&req_id).append_list(&requests.requests()); - stream.out() -} - -// expected result from a call. -#[derive(Debug, PartialEq, Eq)] -enum Expect { - /// Expect to have message sent to peer. - Send(PeerId, u8, Vec), - /// Expect this response. - Respond(u8, Vec), - /// Expect a punishment (disconnect/disable) - Punish(PeerId), - /// Expect nothing. - Nothing, -} - -impl IoContext for Expect { - fn send(&self, peer: PeerId, packet_id: u8, packet_body: Vec) { - assert_eq!(self, &Expect::Send(peer, packet_id, packet_body)); - } - - fn respond(&self, packet_id: u8, packet_body: Vec) { - assert_eq!(self, &Expect::Respond(packet_id, packet_body)); - } - - fn disconnect_peer(&self, peer: PeerId) { - assert_eq!(self, &Expect::Punish(peer)); - } - - fn disable_peer(&self, peer: PeerId) { - assert_eq!(self, &Expect::Punish(peer)); - } - - fn protocol_version(&self, _peer: PeerId) -> Option { - Some(super::MAX_PROTOCOL_VERSION) - } - - fn persistent_peer_id(&self, _peer: PeerId) -> Option { - None - } - - fn is_reserved_peer(&self, peer: PeerId) -> bool { - peer == 0xff - } -} - -// can't implement directly for Arc due to cross-crate orphan rules. -struct TestProvider(Arc); - -struct TestProviderInner { - client: TestBlockChainClient, -} - -impl Provider for TestProvider { - fn chain_info(&self) -> BlockChainInfo { - self.0.client.chain_info() - } - - fn reorg_depth(&self, a: &H256, b: &H256) -> Option { - self.0.client.reorg_depth(a, b) - } - - fn earliest_state(&self) -> Option { - None - } - - fn block_header(&self, id: BlockId) -> Option { - self.0.client.block_header(id) - } - - fn transaction_index( - &self, - req: request::CompleteTransactionIndexRequest, - ) -> Option { - Some(request::TransactionIndexResponse { - num: 100, - hash: req.hash, - index: 55, - }) - } - - fn block_body(&self, req: request::CompleteBodyRequest) -> Option { - self.0.client.block_body(req) - } - - fn block_receipts( - &self, - req: request::CompleteReceiptsRequest, - ) -> Option { - self.0.client.block_receipts(req) - } - - fn account_proof( - &self, - req: request::CompleteAccountRequest, - ) -> Option { - // sort of a leaf node - let mut stream = RlpStream::new_list(2); - stream.append(&req.address_hash).append_empty_data(); - Some(AccountResponse { - proof: vec![stream.out()], - balance: 10.into(), - nonce: 100.into(), - code_hash: Default::default(), - storage_root: Default::default(), - }) - } - - fn storage_proof( - &self, - req: request::CompleteStorageRequest, - ) -> Option { - Some(StorageResponse { - proof: vec![::rlp::encode(&req.key_hash)], - value: req.key_hash | req.address_hash, - }) - } - - fn contract_code(&self, req: request::CompleteCodeRequest) -> Option { - Some(CodeResponse { - code: req - .block_hash - .iter() - .chain(req.code_hash.iter()) - .cloned() - .collect(), - }) - } - - fn header_proof( - &self, - _req: request::CompleteHeaderProofRequest, - ) -> Option { - None - } - - fn transaction_proof( - &self, - _req: request::CompleteExecutionRequest, - ) -> Option { - None - } - - fn epoch_signal( - &self, - _req: request::CompleteSignalRequest, - ) -> Option { - Some(request::SignalResponse { - signal: vec![1, 2, 3, 4], - }) - } - - fn transactions_to_propagate(&self) -> Vec { - self.0.client.transactions_to_propagate() - } -} - -fn capabilities() -> Capabilities { - Capabilities { - serve_headers: true, - serve_chain_since: Some(1), - serve_state_since: Some(1), - tx_relay: true, - } -} - -fn write_handshake(status: &Status, capabilities: &Capabilities, proto: &LightProtocol) -> Vec { - let flow_params = proto.flow_params.read().clone(); - ::net::status::write_handshake(status, capabilities, Some(&*flow_params)) -} - -fn write_free_handshake( - status: &Status, - capabilities: &Capabilities, - proto: &LightProtocol, -) -> Vec { - ::net::status::write_handshake(status, capabilities, Some(&proto.free_flow_params)) -} - -// helper for setting up the protocol handler and provider. -fn setup(capabilities: Capabilities) -> (Arc, LightProtocol) { - let provider = Arc::new(TestProviderInner { - client: TestBlockChainClient::new(), - }); - - let proto = LightProtocol::new( - Arc::new(TestProvider(provider.clone())), - Params { - network_id: 2, - config: Default::default(), - capabilities: capabilities, - sample_store: None, - }, - ); - - (provider, proto) -} - -fn status(chain_info: BlockChainInfo) -> Status { - Status { - protocol_version: 1, - network_id: 2, - head_td: chain_info.total_difficulty, - head_hash: chain_info.best_block_hash, - head_num: chain_info.best_block_number, - genesis_hash: chain_info.genesis_hash, - last_head: None, - } -} - -#[test] -fn handshake_expected() { - let capabilities = capabilities(); - - let (provider, proto) = setup(capabilities); - - let status = status(provider.client.chain_info()); - - let packet_body = write_handshake(&status, &capabilities, &proto); - - proto.on_connect(1, &Expect::Send(1, packet::STATUS, packet_body)); -} - -#[test] -fn reserved_handshake_expected() { - let capabilities = capabilities(); - - let (provider, proto) = setup(capabilities); - - let status = status(provider.client.chain_info()); - - let packet_body = write_free_handshake(&status, &capabilities, &proto); - - proto.on_connect(0xff, &Expect::Send(0xff, packet::STATUS, packet_body)); -} - -#[test] -#[should_panic] -fn genesis_mismatch() { - let capabilities = capabilities(); - - let (provider, proto) = setup(capabilities); - - let mut status = status(provider.client.chain_info()); - status.genesis_hash = H256::default(); - - let packet_body = write_handshake(&status, &capabilities, &proto); - - proto.on_connect(1, &Expect::Send(1, packet::STATUS, packet_body)); -} - -#[test] -fn credit_overflow() { - let capabilities = capabilities(); - - let (provider, proto) = setup(capabilities); - - let status = status(provider.client.chain_info()); - - { - let packet_body = write_handshake(&status, &capabilities, &proto); - proto.on_connect(1, &Expect::Send(1, packet::STATUS, packet_body)); - } - - { - let my_status = write_handshake(&status, &capabilities, &proto); - proto.handle_packet(&Expect::Nothing, 1, packet::STATUS, &my_status); - } - - // 1 billion requests is far too many for the default flow params. - let requests = encode_single(Request::Headers(IncompleteHeadersRequest { - start: HashOrNumber::Number(1).into(), - max: 1_000_000_000, - skip: 0, - reverse: false, - })); - let request = make_packet(111, &requests); - - proto.handle_packet(&Expect::Punish(1), 1, packet::REQUEST, &request); -} - -// test the basic request types -- these just make sure that requests are parsed -// and sent to the provider correctly as well as testing response formatting. - -#[test] -fn get_block_headers() { - let capabilities = capabilities(); - - let (provider, proto) = setup(capabilities); - let flow_params = proto.flow_params.read().clone(); - - let cur_status = status(provider.client.chain_info()); - let my_status = write_handshake(&cur_status, &capabilities, &proto); - - provider.client.add_blocks(100, EachBlockWith::Nothing); - - let cur_status = status(provider.client.chain_info()); - - { - let packet_body = write_handshake(&cur_status, &capabilities, &proto); - proto.on_connect(1, &Expect::Send(1, packet::STATUS, packet_body)); - proto.handle_packet(&Expect::Nothing, 1, packet::STATUS, &my_status); - } - - let request = Request::Headers(IncompleteHeadersRequest { - start: HashOrNumber::Number(1).into(), - max: 10, - skip: 0, - reverse: false, - }); - - let req_id = 111; - - let requests = encode_single(request.clone()); - let request_body = make_packet(req_id, &requests); - - let response = { - let headers: Vec<_> = (0..10) - .map(|i| { - provider - .client - .block_header(BlockId::Number(i + 1)) - .unwrap() - }) - .collect(); - assert_eq!(headers.len(), 10); - - let new_creds = - *flow_params.limit() - flow_params.compute_cost_multi(requests.requests()).unwrap(); - - let response = vec![Response::Headers(HeadersResponse { headers })]; - - let mut stream = RlpStream::new_list(3); - stream - .append(&req_id) - .append(&new_creds) - .append_list(&response); - - stream.out() - }; - - let expected = Expect::Respond(packet::RESPONSE, response); - proto.handle_packet(&expected, 1, packet::REQUEST, &request_body); -} - -#[test] -fn get_block_bodies() { - let capabilities = capabilities(); - - let (provider, proto) = setup(capabilities); - let flow_params = proto.flow_params.read().clone(); - - let cur_status = status(provider.client.chain_info()); - let my_status = write_handshake(&cur_status, &capabilities, &proto); - - provider.client.add_blocks(100, EachBlockWith::Nothing); - - let cur_status = status(provider.client.chain_info()); - - { - let packet_body = write_handshake(&cur_status, &capabilities, &proto); - proto.on_connect(1, &Expect::Send(1, packet::STATUS, packet_body)); - proto.handle_packet(&Expect::Nothing, 1, packet::STATUS, &my_status); - } - - let mut builder = Builder::default(); - let mut bodies = Vec::new(); - - for i in 0..10 { - let hash = provider - .client - .block_header(BlockId::Number(i)) - .unwrap() - .hash(); - builder - .push(Request::Body(IncompleteBodyRequest { hash: hash.into() })) - .unwrap(); - bodies.push(Response::Body( - provider - .client - .block_body(CompleteBodyRequest { hash: hash }) - .unwrap(), - )); - } - let req_id = 111; - let requests = builder.build(); - let request_body = make_packet(req_id, &requests); - - let response = { - let new_creds = - *flow_params.limit() - flow_params.compute_cost_multi(requests.requests()).unwrap(); - - let mut response_stream = RlpStream::new_list(3); - response_stream - .append(&req_id) - .append(&new_creds) - .append_list(&bodies); - response_stream.out() - }; - - let expected = Expect::Respond(packet::RESPONSE, response); - proto.handle_packet(&expected, 1, packet::REQUEST, &request_body); -} - -#[test] -fn get_block_receipts() { - let capabilities = capabilities(); - - let (provider, proto) = setup(capabilities); - let flow_params = proto.flow_params.read().clone(); - - let cur_status = status(provider.client.chain_info()); - let my_status = write_handshake(&cur_status, &capabilities, &proto); - - provider.client.add_blocks(1000, EachBlockWith::Nothing); - - let cur_status = status(provider.client.chain_info()); - - { - let packet_body = write_handshake(&cur_status, &capabilities, &proto); - proto.on_connect(1, &Expect::Send(1, packet::STATUS, packet_body)); - proto.handle_packet(&Expect::Nothing, 1, packet::STATUS, &my_status); - } - - // find the first 10 block hashes starting with `f` because receipts are only provided - // by the test client in that case. - let block_hashes: Vec = (0..1000) - .map(|i| { - provider - .client - .block_header(BlockId::Number(i)) - .unwrap() - .hash() - }) - .filter(|hash| format!("{}", hash).starts_with("0xf")) - .take(10) - .collect(); - - let mut builder = Builder::default(); - let mut receipts = Vec::new(); - for hash in block_hashes.iter().cloned() { - builder - .push(Request::Receipts(IncompleteReceiptsRequest { - hash: hash.into(), - })) - .unwrap(); - receipts.push(Response::Receipts( - provider - .client - .block_receipts(CompleteReceiptsRequest { hash: hash }) - .unwrap(), - )); - } - - let req_id = 111; - let requests = builder.build(); - let request_body = make_packet(req_id, &requests); - - let response = { - assert_eq!(receipts.len(), 10); - - let new_creds = - *flow_params.limit() - flow_params.compute_cost_multi(requests.requests()).unwrap(); - - let mut response_stream = RlpStream::new_list(3); - response_stream - .append(&req_id) - .append(&new_creds) - .append_list(&receipts); - response_stream.out() - }; - - let expected = Expect::Respond(packet::RESPONSE, response); - proto.handle_packet(&expected, 1, packet::REQUEST, &request_body); -} - -#[test] -fn get_state_proofs() { - let capabilities = capabilities(); - - let (provider, proto) = setup(capabilities); - let flow_params = proto.flow_params.read().clone(); - - let provider = TestProvider(provider); - - let cur_status = status(provider.0.client.chain_info()); - - { - let packet_body = write_handshake(&cur_status, &capabilities, &proto); - proto.on_connect(1, &Expect::Send(1, packet::STATUS, packet_body.clone())); - proto.handle_packet(&Expect::Nothing, 1, packet::STATUS, &packet_body); - } - - let req_id = 112; - let key1: H256 = U256::from(11223344).into(); - let key2: H256 = U256::from(99988887).into(); - - let mut builder = Builder::default(); - builder - .push(Request::Account(IncompleteAccountRequest { - block_hash: H256::default().into(), - address_hash: key1.into(), - })) - .unwrap(); - builder - .push(Request::Storage(IncompleteStorageRequest { - block_hash: H256::default().into(), - address_hash: key1.into(), - key_hash: key2.into(), - })) - .unwrap(); - - let requests = builder.build(); - - let request_body = make_packet(req_id, &requests); - let response = { - let responses = vec![ - Response::Account( - provider - .account_proof(CompleteAccountRequest { - block_hash: H256::default(), - address_hash: key1, - }) - .unwrap(), - ), - Response::Storage( - provider - .storage_proof(CompleteStorageRequest { - block_hash: H256::default(), - address_hash: key1, - key_hash: key2, - }) - .unwrap(), - ), - ]; - - let new_creds = - *flow_params.limit() - flow_params.compute_cost_multi(requests.requests()).unwrap(); - - let mut response_stream = RlpStream::new_list(3); - response_stream - .append(&req_id) - .append(&new_creds) - .append_list(&responses); - response_stream.out() - }; - - let expected = Expect::Respond(packet::RESPONSE, response); - proto.handle_packet(&expected, 1, packet::REQUEST, &request_body); -} - -#[test] -fn get_contract_code() { - let capabilities = capabilities(); - - let (provider, proto) = setup(capabilities); - let flow_params = proto.flow_params.read().clone(); - - let cur_status = status(provider.client.chain_info()); - - { - let packet_body = write_handshake(&cur_status, &capabilities, &proto); - proto.on_connect(1, &Expect::Send(1, packet::STATUS, packet_body.clone())); - proto.handle_packet(&Expect::Nothing, 1, packet::STATUS, &packet_body); - } - - let req_id = 112; - let key1: H256 = U256::from(11223344).into(); - let key2: H256 = U256::from(99988887).into(); - - let request = Request::Code(IncompleteCodeRequest { - block_hash: key1.into(), - code_hash: key2.into(), - }); - - let requests = encode_single(request.clone()); - let request_body = make_packet(req_id, &requests); - let response = { - let response = vec![Response::Code(CodeResponse { - code: key1.iter().chain(key2.iter()).cloned().collect(), - })]; - - let new_creds = - *flow_params.limit() - flow_params.compute_cost_multi(requests.requests()).unwrap(); - - let mut response_stream = RlpStream::new_list(3); - - response_stream - .append(&req_id) - .append(&new_creds) - .append_list(&response); - response_stream.out() - }; - - let expected = Expect::Respond(packet::RESPONSE, response); - proto.handle_packet(&expected, 1, packet::REQUEST, &request_body); -} - -#[test] -fn epoch_signal() { - let capabilities = capabilities(); - - let (provider, proto) = setup(capabilities); - let flow_params = proto.flow_params.read().clone(); - - let cur_status = status(provider.client.chain_info()); - - { - let packet_body = write_handshake(&cur_status, &capabilities, &proto); - proto.on_connect(1, &Expect::Send(1, packet::STATUS, packet_body.clone())); - proto.handle_packet(&Expect::Nothing, 1, packet::STATUS, &packet_body); - } - - let req_id = 112; - let request = Request::Signal(request::IncompleteSignalRequest { - block_hash: H256([1; 32]).into(), - }); - - let requests = encode_single(request.clone()); - let request_body = make_packet(req_id, &requests); - - let response = { - let response = vec![Response::Signal(SignalResponse { - signal: vec![1, 2, 3, 4], - })]; - - let limit = *flow_params.limit(); - let cost = flow_params.compute_cost_multi(requests.requests()).unwrap(); - - let new_creds = limit - cost; - - let mut response_stream = RlpStream::new_list(3); - response_stream - .append(&req_id) - .append(&new_creds) - .append_list(&response); - - response_stream.out() - }; - - let expected = Expect::Respond(packet::RESPONSE, response); - proto.handle_packet(&expected, 1, packet::REQUEST, &request_body); -} - -#[test] -fn proof_of_execution() { - let capabilities = capabilities(); - - let (provider, proto) = setup(capabilities); - let flow_params = proto.flow_params.read().clone(); - - let cur_status = status(provider.client.chain_info()); - - { - let packet_body = write_handshake(&cur_status, &capabilities, &proto); - proto.on_connect(1, &Expect::Send(1, packet::STATUS, packet_body.clone())); - proto.handle_packet(&Expect::Nothing, 1, packet::STATUS, &packet_body); - } - - let req_id = 112; - let mut request = Request::Execution(request::IncompleteExecutionRequest { - block_hash: H256::default().into(), - from: Address::default(), - action: Action::Call(Address::default()), - gas: 100.into(), - gas_price: 0.into(), - value: 0.into(), - data: Vec::new(), - }); - - // first: a valid amount to request execution of. - let requests = encode_single(request.clone()); - let request_body = make_packet(req_id, &requests); - - let response = { - let limit = *flow_params.limit(); - let cost = flow_params.compute_cost_multi(requests.requests()).unwrap(); - - let new_creds = limit - cost; - - let mut response_stream = RlpStream::new_list(3); - response_stream - .append(&req_id) - .append(&new_creds) - .begin_list(0); - - response_stream.out() - }; - - let expected = Expect::Respond(packet::RESPONSE, response); - proto.handle_packet(&expected, 1, packet::REQUEST, &request_body); - - // next: way too much requested gas. - if let Request::Execution(ref mut req) = request { - req.gas = 100_000_000.into(); - } - let req_id = 113; - let requests = encode_single(request.clone()); - let request_body = make_packet(req_id, &requests); - - let expected = Expect::Punish(1); - proto.handle_packet(&expected, 1, packet::REQUEST, &request_body); -} - -#[test] -fn id_guard() { - use super::{request_set::RequestSet, ReqId}; - - let capabilities = capabilities(); - - let (provider, proto) = setup(capabilities); - let flow_params = proto.flow_params.read().clone(); - - let req_id_1 = ReqId(5143); - let req_id_2 = ReqId(1111); - - let req = encode_single(Request::Headers(IncompleteHeadersRequest { - start: HashOrNumber::Number(5u64).into(), - max: 100, - skip: 0, - reverse: false, - })); - - let peer_id = 9876; - - let mut pending_requests = RequestSet::default(); - - pending_requests.insert(req_id_1, req.clone(), 0.into(), Instant::now()); - pending_requests.insert(req_id_2, req, 1.into(), Instant::now()); - - proto.peers.write().insert( - peer_id, - ::parking_lot::Mutex::new(Peer { - local_credits: flow_params.create_credits(), - status: status(provider.client.chain_info()), - capabilities, - remote_flow: Some((flow_params.create_credits(), (&*flow_params).clone())), - sent_head: provider.client.chain_info().best_block_hash, - last_update: Instant::now(), - pending_requests: pending_requests, - failed_requests: Vec::new(), - propagated_transactions: Default::default(), - skip_update: false, - local_flow: flow_params, - awaiting_acknowledge: None, - }), - ); - - // first, malformed responses. - { - let mut stream = RlpStream::new_list(3); - stream.append(&req_id_1.0); - stream.append(&4_000_000_usize); - stream.begin_list(2).append(&125_usize).append(&3_usize); - - let packet = stream.out(); - assert!(proto - .response(peer_id, &Expect::Nothing, &Rlp::new(&packet)) - .is_err()); - } - - // next, do an unexpected response. - { - let mut stream = RlpStream::new_list(3); - stream.append(&10000_usize); - stream.append(&3_000_000_usize); - stream.begin_list(0); - - let packet = stream.out(); - assert!(proto - .response(peer_id, &Expect::Nothing, &Rlp::new(&packet)) - .is_err()); - } - - // lastly, do a valid (but empty) response. - { - let mut stream = RlpStream::new_list(3); - stream.append(&req_id_2.0); - stream.append(&3_000_000_usize); - stream.begin_list(0); - - let packet = stream.out(); - assert!(proto - .response(peer_id, &Expect::Nothing, &Rlp::new(&packet)) - .is_ok()); - } - - let peers = proto.peers.read(); - if let Some(ref peer_info) = peers.get(&peer_id) { - let peer_info = peer_info.lock(); - assert!(peer_info - .pending_requests - .collect_ids::>() - .is_empty()); - assert_eq!(peer_info.failed_requests, &[req_id_1]); - } -} - -#[test] -fn get_transaction_index() { - let capabilities = capabilities(); - - let (provider, proto) = setup(capabilities); - let flow_params = proto.flow_params.read().clone(); - - let cur_status = status(provider.client.chain_info()); - - { - let packet_body = write_handshake(&cur_status, &capabilities, &proto); - proto.on_connect(1, &Expect::Send(1, packet::STATUS, packet_body.clone())); - proto.handle_packet(&Expect::Nothing, 1, packet::STATUS, &packet_body); - } - - let req_id = 112; - let key1: H256 = U256::from(11223344).into(); - - let request = - Request::TransactionIndex(IncompleteTransactionIndexRequest { hash: key1.into() }); - - let requests = encode_single(request.clone()); - let request_body = make_packet(req_id, &requests); - let response = { - let response = vec![Response::TransactionIndex(TransactionIndexResponse { - num: 100, - hash: key1, - index: 55, - })]; - - let new_creds = - *flow_params.limit() - flow_params.compute_cost_multi(requests.requests()).unwrap(); - - let mut response_stream = RlpStream::new_list(3); - - response_stream - .append(&req_id) - .append(&new_creds) - .append_list(&response); - response_stream.out() - }; - - let expected = Expect::Respond(packet::RESPONSE, response); - proto.handle_packet(&expected, 1, packet::REQUEST, &request_body); -} - -#[test] -fn sync_statistics() { - let mut stats = Statistics::new(); - - // Empty set should return 1.0 - assert_eq!(stats.avg_peer_count(), 1.0); - - // Average < 1.0 should return 1.0 - stats.add_peer_count(0); - assert_eq!(stats.avg_peer_count(), 1.0); - - stats = Statistics::new(); - - const N: f64 = 50.0; - - for i in 1..(N as usize + 1) { - stats.add_peer_count(i); - } - - // Compute the average for the sum 1..N - assert_eq!(stats.avg_peer_count(), N * (N + 1.0) / 2.0 / N); - - for _ in 1..(MOVING_SAMPLE_SIZE + 1) { - stats.add_peer_count(40); - } - - // Test that it returns the average of the last - // `MOVING_SAMPLE_SIZE` values - assert_eq!(stats.avg_peer_count(), 40.0); -} diff --git a/ethcore/light/src/on_demand/mod.rs b/ethcore/light/src/on_demand/mod.rs deleted file mode 100644 index 82ed06ca5..000000000 --- a/ethcore/light/src/on_demand/mod.rs +++ /dev/null @@ -1,719 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! On-demand chain requests over LES. This is a major building block for RPCs. -//! The request service is implemented using Futures. Higher level request handlers -//! will take the raw data received here and extract meaningful results from it. - -use std::{cmp, collections::HashMap, marker::PhantomData, sync::Arc, time::Duration}; - -use futures::{ - sync::oneshot::{self, Receiver}, - Async, Future, Poll, -}; -use network::PeerId; -use parking_lot::{Mutex, RwLock}; -use rand::{self, Rng}; - -use net::{ - Announcement, BasicContext, Capabilities, EventContext, Handler, PeerStatus, ReqId, Status, -}; - -use self::request::CheckedRequest; -use cache::Cache; -use request::{self as basic_request, Request as NetworkRequest}; - -pub use self::{ - request::{Error as ValidityError, HeaderRef, Request, Response}, - request_guard::{Error as RequestError, RequestGuard}, - response_guard::{Error as ResponseGuardError, Inner as ResponseGuardInner, ResponseGuard}, -}; -pub use ethcore::executed::ExecutionResult; -pub use types::request::ResponseError; - -#[cfg(test)] -mod tests; - -pub mod request; -mod request_guard; -mod response_guard; - -/// The initial backoff interval for OnDemand queries -pub const DEFAULT_REQUEST_MIN_BACKOFF_DURATION: Duration = Duration::from_secs(10); -/// The maximum request interval for OnDemand queries -pub const DEFAULT_REQUEST_MAX_BACKOFF_DURATION: Duration = Duration::from_secs(100); -/// The default window length a response is evaluated -pub const DEFAULT_RESPONSE_TIME_TO_LIVE: Duration = Duration::from_secs(10); -/// The default number of maximum backoff iterations -pub const DEFAULT_MAX_REQUEST_BACKOFF_ROUNDS: usize = 10; -/// The default number failed request to be regarded as failure -pub const DEFAULT_NUM_CONSECUTIVE_FAILED_REQUESTS: usize = 1; - -/// OnDemand related errors -pub mod error { - // Silence: `use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting` - // https://github.com/paritytech/parity-ethereum/issues/10302 - #![allow(deprecated)] - - use futures::sync::oneshot::Canceled; - - error_chain! { - - foreign_links { - ChannelCanceled(Canceled) #[doc = "Canceled oneshot channel"]; - } - - errors { - #[doc = "Timeout bad response"] - BadResponse(err: String) { - description("Max response evaluation time exceeded") - display("{}", err) - } - - #[doc = "OnDemand requests limit exceeded"] - RequestLimit { - description("OnDemand request maximum backoff iterations exceeded") - display("OnDemand request maximum backoff iterations exceeded") - } - } - } -} - -/// Public interface for performing network requests `OnDemand` -pub trait OnDemandRequester: Send + Sync { - /// Submit a strongly-typed batch of requests. - /// - /// Fails if back-reference are not coherent. - fn request( - &self, - ctx: &dyn BasicContext, - requests: T, - ) -> Result, basic_request::NoSuchOutput> - where - T: request::RequestAdapter; - - /// Submit a vector of requests to be processed together. - /// - /// Fails if back-references are not coherent. - /// The returned vector of responses will correspond to the requests exactly. - fn request_raw( - &self, - ctx: &dyn BasicContext, - requests: Vec, - ) -> Result, basic_request::NoSuchOutput>; -} - -// relevant peer info. -#[derive(Debug, Clone, PartialEq, Eq)] -struct Peer { - status: Status, - capabilities: Capabilities, -} - -impl Peer { - // whether this peer can fulfill the necessary capabilities for the given - // request. - fn can_fulfill(&self, request: &Capabilities) -> bool { - let local_caps = &self.capabilities; - let can_serve_since = |req, local| match (req, local) { - (Some(request_block), Some(serve_since)) => request_block >= serve_since, - (Some(_), None) => false, - (None, _) => true, - }; - - local_caps.serve_headers >= request.serve_headers - && can_serve_since(request.serve_chain_since, local_caps.serve_chain_since) - && can_serve_since(request.serve_state_since, local_caps.serve_state_since) - } -} - -/// Either an array of responses or a single error. -type PendingResponse = self::error::Result>; - -// Attempted request info and sender to put received value. -struct Pending { - requests: basic_request::Batch, - net_requests: basic_request::Batch, - required_capabilities: Capabilities, - responses: Vec, - sender: oneshot::Sender, - request_guard: RequestGuard, - response_guard: ResponseGuard, -} - -impl Pending { - // answer as many of the given requests from the supplied cache as possible. - // TODO: support re-shuffling. - fn answer_from_cache(&mut self, cache: &Mutex) { - while !self.requests.is_complete() { - let idx = self.requests.num_answered(); - match self.requests[idx].respond_local(cache) { - Some(response) => { - self.requests.supply_response_unchecked(&response); - - // update header and back-references after each from-cache - // response to ensure that the requests are left in a consistent - // state and increase the likelihood of being able to answer - // the next request from cache. - self.update_header_refs(idx, &response); - self.fill_unanswered(); - - self.responses.push(response); - } - None => break, - } - } - } - - // update header refs if the given response contains a header future requests require for - // verification. - // `idx` is the index of the request the response corresponds to. - fn update_header_refs(&mut self, idx: usize, response: &Response) { - if let Response::HeaderByHash(ref hdr) = *response { - // fill the header for all requests waiting on this one. - // TODO: could be faster if we stored a map usize => Vec - // but typical use just has one header request that others - // depend on. - for r in self.requests.iter_mut().skip(idx + 1) { - if r.needs_header().map_or(false, |(i, _)| i == idx) { - r.provide_header(hdr.clone()) - } - } - } - } - - // supply a response. - fn supply_response( - &mut self, - cache: &Mutex, - response: &basic_request::Response, - ) -> Result<(), basic_request::ResponseError> { - match self.requests.supply_response(&cache, response) { - Ok(response) => { - let idx = self.responses.len(); - self.update_header_refs(idx, &response); - self.responses.push(response); - Ok(()) - } - Err(e) => Err(e), - } - } - - // if the requests are complete, send the result and consume self. - fn try_complete(self) -> Option { - if self.requests.is_complete() { - if self.sender.send(Ok(self.responses)).is_err() { - debug!(target: "on_demand", "Dropped oneshot channel receiver on request"); - } - None - } else { - Some(self) - } - } - - fn fill_unanswered(&mut self) { - self.requests.fill_unanswered(); - } - - // update the cached network requests. - fn update_net_requests(&mut self) { - use request::IncompleteRequest; - - let mut builder = basic_request::Builder::default(); - let num_answered = self.requests.num_answered(); - let mut mapping = move |idx| idx - num_answered; - - for request in self.requests.iter().skip(num_answered) { - let mut net_req = request.clone().into_net_request(); - - // all back-references with request index less than `num_answered` have - // been filled by now. all remaining requests point to nothing earlier - // than the next unanswered request. - net_req.adjust_refs(&mut mapping); - builder - .push(net_req) - .expect("all back-references to answered requests have been filled; qed"); - } - - // update pending fields. - let capabilities = guess_capabilities(&self.requests[num_answered..]); - self.net_requests = builder.build(); - self.required_capabilities = capabilities; - } - - // received too many empty responses, may be away to indicate a faulty request - fn bad_response(self, response_err: ResponseGuardError) { - let reqs: Vec<&str> = self - .requests - .requests() - .iter() - .map(|req| match req { - CheckedRequest::HeaderProof(_, _) => "HeaderProof", - CheckedRequest::HeaderByHash(_, _) => "HeaderByHash", - CheckedRequest::HeaderWithAncestors(_, _) => "HeaderWithAncestors", - CheckedRequest::TransactionIndex(_, _) => "TransactionIndex", - CheckedRequest::Receipts(_, _) => "Receipts", - CheckedRequest::Body(_, _) => "Body", - CheckedRequest::Account(_, _) => "Account", - CheckedRequest::Code(_, _) => "Code", - CheckedRequest::Execution(_, _) => "Execution", - CheckedRequest::Signal(_, _) => "Signal", - }) - .collect(); - - let err = format!( - "Bad response on {}: [ {} ]. {}", - if reqs.len() > 1 { - "requests" - } else { - "request" - }, - reqs.join(", "), - response_err - ); - - let err = self::error::ErrorKind::BadResponse(err); - if self.sender.send(Err(err.into())).is_err() { - debug!(target: "on_demand", "Dropped oneshot channel receiver on no response"); - } - } - - // returning a peer discovery timeout during query attempts - fn request_limit_reached(self) { - let err = self::error::ErrorKind::RequestLimit; - if self.sender.send(Err(err.into())).is_err() { - debug!(target: "on_demand", "Dropped oneshot channel receiver on time out"); - } - } -} - -// helper to guess capabilities required for a given batch of network requests. -fn guess_capabilities(requests: &[CheckedRequest]) -> Capabilities { - let mut caps = Capabilities { - serve_headers: false, - serve_chain_since: None, - serve_state_since: None, - tx_relay: false, - }; - - let update_since = |current: &mut Option, new| { - *current = match *current { - Some(x) => Some(::std::cmp::min(x, new)), - None => Some(new), - } - }; - - for request in requests { - match *request { - // TODO: might be worth returning a required block number for this also. - CheckedRequest::HeaderProof(_, _) => caps.serve_headers = true, - CheckedRequest::HeaderByHash(_, _) => caps.serve_headers = true, - CheckedRequest::HeaderWithAncestors(_, _) => caps.serve_headers = true, - CheckedRequest::TransactionIndex(_, _) => {} // hashes yield no info. - CheckedRequest::Signal(_, _) => caps.serve_headers = true, - CheckedRequest::Body(ref req, _) => { - if let Ok(ref hdr) = req.0.as_ref() { - update_since(&mut caps.serve_chain_since, hdr.number()); - } - } - CheckedRequest::Receipts(ref req, _) => { - if let Ok(ref hdr) = req.0.as_ref() { - update_since(&mut caps.serve_chain_since, hdr.number()); - } - } - CheckedRequest::Account(ref req, _) => { - if let Ok(ref hdr) = req.header.as_ref() { - update_since(&mut caps.serve_state_since, hdr.number()); - } - } - CheckedRequest::Code(ref req, _) => { - if let Ok(ref hdr) = req.header.as_ref() { - update_since(&mut caps.serve_state_since, hdr.number()); - } - } - CheckedRequest::Execution(ref req, _) => { - if let Ok(ref hdr) = req.header.as_ref() { - update_since(&mut caps.serve_state_since, hdr.number()); - } - } - } - } - - caps -} - -/// A future extracting the concrete output type of the generic adapter -/// from a vector of responses. -pub struct OnResponses { - receiver: Receiver, - _marker: PhantomData, -} - -impl Future for OnResponses { - type Item = T::Out; - type Error = self::error::Error; - - fn poll(&mut self) -> Poll { - match self.receiver.poll() { - Ok(Async::Ready(Ok(v))) => Ok(Async::Ready(T::extract_from(v))), - Ok(Async::Ready(Err(e))) => Err(e), - Ok(Async::NotReady) => Ok(Async::NotReady), - Err(e) => Err(e.into()), - } - } -} - -/// On demand request service. See module docs for more details. -/// Accumulates info about all peers' capabilities and dispatches -/// requests to them accordingly. -// lock in declaration order. -pub struct OnDemand { - pending: RwLock>, - peers: RwLock>, - in_transit: RwLock>, - cache: Arc>, - no_immediate_dispatch: bool, - response_time_window: Duration, - request_backoff_start: Duration, - request_backoff_max: Duration, - request_backoff_rounds_max: usize, - request_number_of_consecutive_errors: usize, -} - -impl OnDemandRequester for OnDemand { - fn request_raw( - &self, - ctx: &dyn BasicContext, - requests: Vec, - ) -> Result, basic_request::NoSuchOutput> { - let (sender, receiver) = oneshot::channel(); - if requests.is_empty() { - assert!( - sender.send(Ok(Vec::new())).is_ok(), - "receiver still in scope; qed" - ); - return Ok(receiver); - } - - let mut builder = basic_request::Builder::default(); - - let responses = Vec::with_capacity(requests.len()); - - let mut header_producers = HashMap::new(); - for (i, request) in requests.into_iter().enumerate() { - let request = CheckedRequest::from(request); - - // ensure that all requests needing headers will get them. - if let Some((idx, field)) = request.needs_header() { - // a request chain with a header back-reference is valid only if it both - // points to a request that returns a header and has the same back-reference - // for the block hash. - match header_producers.get(&idx) { - Some(ref f) if &field == *f => {} - _ => return Err(basic_request::NoSuchOutput), - } - } - if let CheckedRequest::HeaderByHash(ref req, _) = request { - header_producers.insert(i, req.0); - } - - builder.push(request)?; - } - - let requests = builder.build(); - let net_requests = requests.clone().map_requests(|req| req.into_net_request()); - let capabilities = guess_capabilities(requests.requests()); - - self.submit_pending( - ctx, - Pending { - requests, - net_requests, - required_capabilities: capabilities, - responses, - sender, - request_guard: RequestGuard::new( - self.request_number_of_consecutive_errors as u32, - self.request_backoff_rounds_max, - self.request_backoff_start, - self.request_backoff_max, - ), - response_guard: ResponseGuard::new(self.response_time_window), - }, - ); - - Ok(receiver) - } - - fn request( - &self, - ctx: &dyn BasicContext, - requests: T, - ) -> Result, basic_request::NoSuchOutput> - where - T: request::RequestAdapter, - { - self.request_raw(ctx, requests.make_requests()) - .map(|recv| OnResponses { - receiver: recv, - _marker: PhantomData, - }) - } -} - -impl OnDemand { - /// Create a new `OnDemand` service with the given cache. - pub fn new( - cache: Arc>, - response_time_window: Duration, - request_backoff_start: Duration, - request_backoff_max: Duration, - request_backoff_rounds_max: usize, - request_number_of_consecutive_errors: usize, - ) -> Self { - Self { - pending: RwLock::new(Vec::new()), - peers: RwLock::new(HashMap::new()), - in_transit: RwLock::new(HashMap::new()), - cache, - no_immediate_dispatch: false, - response_time_window: Self::sanitize_circuit_breaker_input( - response_time_window, - "Response time window", - ), - request_backoff_start: Self::sanitize_circuit_breaker_input( - request_backoff_start, - "Request initial backoff time window", - ), - request_backoff_max: Self::sanitize_circuit_breaker_input( - request_backoff_max, - "Request maximum backoff time window", - ), - request_backoff_rounds_max, - request_number_of_consecutive_errors, - } - } - - fn sanitize_circuit_breaker_input(dur: Duration, name: &'static str) -> Duration { - if dur.as_secs() < 1 { - warn!(target: "on_demand", - "{} is too short must be at least 1 second, configuring it to 1 second", name); - Duration::from_secs(1) - } else { - dur - } - } - - // make a test version: this doesn't dispatch pending requests - // until you trigger it manually. - #[cfg(test)] - fn new_test( - cache: Arc>, - request_ttl: Duration, - request_backoff_start: Duration, - request_backoff_max: Duration, - request_backoff_rounds_max: usize, - request_number_of_consecutive_errors: usize, - ) -> Self { - let mut me = OnDemand::new( - cache, - request_ttl, - request_backoff_start, - request_backoff_max, - request_backoff_rounds_max, - request_number_of_consecutive_errors, - ); - me.no_immediate_dispatch = true; - - me - } - - // maybe dispatch pending requests. - // sometimes - fn attempt_dispatch(&self, ctx: &dyn BasicContext) { - if !self.no_immediate_dispatch { - self.dispatch_pending(ctx) - } - } - - // dispatch pending requests, and discard those for which the corresponding - // receiver has been dropped. - fn dispatch_pending(&self, ctx: &dyn BasicContext) { - if self.pending.read().is_empty() { - return; - } - - let mut pending = self.pending.write(); - - // iterate over all pending requests, and check them for hang-up. - // then, try and find a peer who can serve it. - let peers = self.peers.read(); - - *pending = ::std::mem::replace(&mut *pending, Vec::new()) - .into_iter() - .filter(|pending| !pending.sender.is_canceled()) - .filter_map(|mut pending| { - - let num_peers = peers.len(); - // The first peer to dispatch the request is chosen at random - let rand = rand::thread_rng().gen_range(0, cmp::max(1, num_peers)); - - for (peer_id, peer) in peers - .iter() - .cycle() - .skip(rand) - .take(num_peers) - { - - if !peer.can_fulfill(&pending.required_capabilities) { - trace!(target: "on_demand", "Peer {} without required capabilities, skipping", peer_id); - continue - } - - if pending.request_guard.is_call_permitted() { - if let Ok(req_id) = ctx.request_from(*peer_id, pending.net_requests.clone()) { - self.in_transit.write().insert(req_id, pending); - return None; - } - } - } - - // Register that the request round failed - if let RequestError::ReachedLimit = pending.request_guard.register_error() { - pending.request_limit_reached(); - None - } else { - Some(pending) - } - }) - .collect(); // `pending` now contains all requests we couldn't dispatch - - trace!(target: "on_demand", "Was unable to dispatch {} requests.", pending.len()); - } - - // submit a pending request set. attempts to answer from cache before - // going to the network. if complete, sends response and consumes the struct. - fn submit_pending(&self, ctx: &dyn BasicContext, mut pending: Pending) { - // answer as many requests from cache as we can, and schedule for dispatch - // if incomplete. - - pending.answer_from_cache(&*self.cache); - if let Some(mut pending) = pending.try_complete() { - // update cached requests - pending.update_net_requests(); - // push into `pending` buffer - self.pending.write().push(pending); - // try to dispatch - self.attempt_dispatch(ctx); - } - } -} - -impl Handler for OnDemand { - fn on_connect( - &self, - ctx: &dyn EventContext, - status: &Status, - capabilities: &Capabilities, - ) -> PeerStatus { - self.peers.write().insert( - ctx.peer(), - Peer { - status: status.clone(), - capabilities: *capabilities, - }, - ); - self.attempt_dispatch(ctx.as_basic()); - PeerStatus::Kept - } - - fn on_disconnect(&self, ctx: &dyn EventContext, unfulfilled: &[ReqId]) { - self.peers.write().remove(&ctx.peer()); - let ctx = ctx.as_basic(); - - { - let mut pending = self.pending.write(); - for unfulfilled in unfulfilled { - if let Some(unfulfilled) = self.in_transit.write().remove(unfulfilled) { - trace!(target: "on_demand", "Attempting to reassign dropped request"); - pending.push(unfulfilled); - } - } - } - - self.attempt_dispatch(ctx); - } - - fn on_announcement(&self, ctx: &dyn EventContext, announcement: &Announcement) { - { - let mut peers = self.peers.write(); - if let Some(ref mut peer) = peers.get_mut(&ctx.peer()) { - peer.status.update_from(&announcement); - peer.capabilities.update_from(&announcement); - } - } - - self.attempt_dispatch(ctx.as_basic()); - } - - fn on_responses( - &self, - ctx: &dyn EventContext, - req_id: ReqId, - responses: &[basic_request::Response], - ) { - let mut pending = match self.in_transit.write().remove(&req_id) { - Some(req) => req, - None => return, - }; - - if responses.is_empty() { - // Max number of `bad` responses reached, drop the request - if let Err(e) = pending - .response_guard - .register_error(&ResponseError::Validity(ValidityError::Empty)) - { - pending.bad_response(e); - return; - } - } - - // for each incoming response - // 1. ensure verification data filled. - // 2. pending.requests.supply_response - // 3. if extracted on-demand response, keep it for later. - for response in responses { - if let Err(e) = pending.supply_response(&*self.cache, response) { - let peer = ctx.peer(); - debug!(target: "on_demand", "Peer {} gave bad response: {:?}", peer, e); - ctx.disable_peer(peer); - - // Max number of `bad` responses reached, drop the request - if let Err(err) = pending.response_guard.register_error(&e) { - pending.bad_response(err); - return; - } - } - } - - pending.fill_unanswered(); - self.submit_pending(ctx.as_basic(), pending); - } - - fn tick(&self, ctx: &dyn BasicContext) { - self.attempt_dispatch(ctx) - } -} diff --git a/ethcore/light/src/on_demand/request.rs b/ethcore/light/src/on_demand/request.rs deleted file mode 100644 index 5c74bfd7e..000000000 --- a/ethcore/light/src/on_demand/request.rs +++ /dev/null @@ -1,1487 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Request types, verification, and verification errors. - -use std::{cmp, sync::Arc}; - -use bytes::Bytes; -use common_types::{ - basic_account::BasicAccount, encoded, receipt::Receipt, transaction::SignedTransaction, -}; -use ethcore::{ - engines::{EthEngine, StateDependentProof}, - machine::EthereumMachine, - state::{self, ProvedExecution}, -}; -use ethereum_types::{Address, H256, U256}; -use ethtrie::{TrieDB, TrieError}; -use hash::{keccak, KECCAK_EMPTY, KECCAK_EMPTY_LIST_RLP, KECCAK_NULL_RLP}; -use hash_db::HashDB; -use kvdb::DBValue; -use parking_lot::Mutex; -use request::{self as net_request, CompleteRequest, Field, IncompleteRequest, Output, OutputKind}; -use rlp::{Rlp, RlpStream}; -use trie::Trie; -use vm::EnvInfo; - -const SUPPLIED_MATCHES: &str = - "supplied responses always match produced requests; enforced by `check_response`; qed"; - -/// Core unit of the API: submit batches of these to be answered with `Response`s. -#[derive(Clone)] -pub enum Request { - /// A request for a header proof. - HeaderProof(HeaderProof), - /// A request for a header by hash. - HeaderByHash(HeaderByHash), - /// A request for a header by hash with a range of its ancestors. - HeaderWithAncestors(HeaderWithAncestors), - /// A request for the index of a transaction. - TransactionIndex(TransactionIndex), - /// A request for block receipts. - Receipts(BlockReceipts), - /// A request for a block body. - Body(Body), - /// A request for an account. - Account(Account), - /// A request for a contract's code. - Code(Code), - /// A request for proof of execution. - Execution(TransactionProof), - /// A request for epoch change signal. - Signal(Signal), -} - -/// A request argument. -pub trait RequestArg { - /// the response type. - type Out; - - /// Create the request type. - /// `extract` must not fail when presented with the corresponding - /// `Response`. - fn make(self) -> Request; - - /// May not panic if the response corresponds with the request - /// from `make`. - /// Is free to panic otherwise. - fn extract(r: Response) -> Self::Out; -} - -/// An adapter can be thought of as a grouping of request argument types. -/// This is implemented for various tuples and convenient types. -pub trait RequestAdapter { - /// The output type. - type Out; - - /// Infallibly produce requests. When `extract_from` is presented - /// with the corresponding response vector, it may not fail. - fn make_requests(self) -> Vec; - - /// Extract the output type from the given responses. - /// If they are the corresponding responses to the requests - /// made by `make_requests`, do not panic. - fn extract_from(Vec) -> Self::Out; -} - -impl RequestAdapter for Vec { - type Out = Vec; - - fn make_requests(self) -> Vec { - self.into_iter().map(RequestArg::make).collect() - } - - fn extract_from(r: Vec) -> Self::Out { - r.into_iter().map(T::extract).collect() - } -} - -// helper to implement `RequestArg` and `From` for a single request kind. -macro_rules! impl_single { - ($variant: ident, $me: ty, $out: ty) => { - impl RequestArg for $me { - type Out = $out; - - fn make(self) -> Request { - Request::$variant(self) - } - - fn extract(r: Response) -> $out { - match r { - Response::$variant(x) => x, - _ => panic!(SUPPLIED_MATCHES), - } - } - } - - impl From<$me> for Request { - fn from(me: $me) -> Request { - Request::$variant(me) - } - } - }; -} - -// implement traits for each kind of request. -impl_single!(HeaderProof, HeaderProof, (H256, U256)); -impl_single!(HeaderByHash, HeaderByHash, encoded::Header); -impl_single!( - HeaderWithAncestors, - HeaderWithAncestors, - Vec -); -impl_single!( - TransactionIndex, - TransactionIndex, - net_request::TransactionIndexResponse -); -impl_single!(Receipts, BlockReceipts, Vec); -impl_single!(Body, Body, encoded::Block); -impl_single!(Account, Account, Option); -impl_single!(Code, Code, Bytes); -impl_single!(Execution, TransactionProof, super::ExecutionResult); -impl_single!(Signal, Signal, Vec); - -macro_rules! impl_args { - () => { - impl RequestAdapter for T { - type Out = T::Out; - - fn make_requests(self) -> Vec { - vec![self.make()] - } - - fn extract_from(mut responses: Vec) -> Self::Out { - T::extract(responses.pop().expect(SUPPLIED_MATCHES)) - } - } - }; - ($first: ident, $($next: ident,)*) => { - impl< - $first: RequestArg, - $($next: RequestArg,)* - > - RequestAdapter for ($first, $($next,)*) { - type Out = ($first::Out, $($next::Out,)*); - - fn make_requests(self) -> Vec { - let ($first, $($next,)*) = self; - - vec![ - $first.make(), - $($next.make(),)* - ] - } - - fn extract_from(responses: Vec) -> Self::Out { - let mut iter = responses.into_iter(); - ( - $first::extract(iter.next().expect(SUPPLIED_MATCHES)), - $($next::extract(iter.next().expect(SUPPLIED_MATCHES)),)* - ) - } - } - impl_args!($($next,)*); - } -} - -mod impls { - #![allow(non_snake_case)] - - use super::{Request, RequestAdapter, RequestArg, Response, SUPPLIED_MATCHES}; - - impl_args!(A, B, C, D, E, F, G, H, I, J, K, L,); -} - -/// A block header to be used for verification. -/// May be stored or an unresolved output of a prior request. -#[derive(Debug, Clone, PartialEq, Eq)] -pub enum HeaderRef { - /// A stored header. - Stored(encoded::Header), - /// An unresolved header. The first item here is the index of the request which - /// will return the header. The second is a back-reference pointing to a block hash - /// which can be used to make requests until that header is resolved. - Unresolved(usize, Field), -} - -impl HeaderRef { - /// Attempt to inspect the header. - pub fn as_ref(&self) -> Result<&encoded::Header, Error> { - match *self { - HeaderRef::Stored(ref hdr) => Ok(hdr), - HeaderRef::Unresolved(idx, _) => Err(Error::UnresolvedHeader(idx)), - } - } - - // get the blockhash field to be used in requests. - fn field(&self) -> Field { - match *self { - HeaderRef::Stored(ref hdr) => Field::Scalar(hdr.hash()), - HeaderRef::Unresolved(_, field) => field, - } - } - - // yield the index of the request which will produce the header. - fn needs_header(&self) -> Option<(usize, Field)> { - match *self { - HeaderRef::Stored(_) => None, - HeaderRef::Unresolved(idx, field) => Some((idx, field)), - } - } -} - -impl From for HeaderRef { - fn from(header: encoded::Header) -> Self { - HeaderRef::Stored(header) - } -} - -/// Requests coupled with their required data for verification. -/// This is used internally but not part of the public API. -#[derive(Clone)] -#[allow(missing_docs)] -pub enum CheckedRequest { - HeaderProof(HeaderProof, net_request::IncompleteHeaderProofRequest), - HeaderByHash(HeaderByHash, net_request::IncompleteHeadersRequest), - HeaderWithAncestors(HeaderWithAncestors, net_request::IncompleteHeadersRequest), - TransactionIndex( - TransactionIndex, - net_request::IncompleteTransactionIndexRequest, - ), - Receipts(BlockReceipts, net_request::IncompleteReceiptsRequest), - Body(Body, net_request::IncompleteBodyRequest), - Account(Account, net_request::IncompleteAccountRequest), - Code(Code, net_request::IncompleteCodeRequest), - Execution(TransactionProof, net_request::IncompleteExecutionRequest), - Signal(Signal, net_request::IncompleteSignalRequest), -} - -impl From for CheckedRequest { - fn from(req: Request) -> Self { - match req { - Request::HeaderByHash(req) => { - let net_req = net_request::IncompleteHeadersRequest { - start: req.0.map(Into::into), - skip: 0, - max: 1, - reverse: false, - }; - trace!(target: "on_demand", "HeaderByHash Request, {:?}", net_req); - CheckedRequest::HeaderByHash(req, net_req) - } - Request::HeaderWithAncestors(req) => { - let net_req = net_request::IncompleteHeadersRequest { - start: req.block_hash.map(Into::into), - skip: 0, - max: req.ancestor_count + 1, - reverse: true, - }; - trace!(target: "on_demand", "HeaderWithAncestors Request, {:?}", net_req); - CheckedRequest::HeaderWithAncestors(req, net_req) - } - Request::HeaderProof(req) => { - let net_req = net_request::IncompleteHeaderProofRequest { - num: req.num().into(), - }; - trace!(target: "on_demand", "HeaderProof Request, {:?}", net_req); - CheckedRequest::HeaderProof(req, net_req) - } - Request::TransactionIndex(req) => { - let net_req = net_request::IncompleteTransactionIndexRequest { hash: req.0 }; - trace!(target: "on_demand", "TransactionIndex Request, {:?}", net_req); - CheckedRequest::TransactionIndex(req, net_req) - } - Request::Body(req) => { - let net_req = net_request::IncompleteBodyRequest { - hash: req.0.field(), - }; - trace!(target: "on_demand", "Body Request, {:?}", net_req); - CheckedRequest::Body(req, net_req) - } - Request::Receipts(req) => { - let net_req = net_request::IncompleteReceiptsRequest { - hash: req.0.field(), - }; - trace!(target: "on_demand", "Receipt Request, {:?}", net_req); - CheckedRequest::Receipts(req, net_req) - } - Request::Account(req) => { - let net_req = net_request::IncompleteAccountRequest { - block_hash: req.header.field(), - address_hash: ::hash::keccak(&req.address).into(), - }; - trace!(target: "on_demand", "Account Request, {:?}", net_req); - CheckedRequest::Account(req, net_req) - } - Request::Code(req) => { - let net_req = net_request::IncompleteCodeRequest { - block_hash: req.header.field(), - code_hash: req.code_hash, - }; - trace!(target: "on_demand", "Code Request, {:?}", net_req); - CheckedRequest::Code(req, net_req) - } - Request::Execution(req) => { - let net_req = net_request::IncompleteExecutionRequest { - block_hash: req.header.field(), - from: req.tx.sender(), - gas: req.tx.gas, - gas_price: req.tx.gas_price, - action: req.tx.action.clone(), - value: req.tx.value, - data: req.tx.data.clone(), - }; - trace!(target: "on_demand", "Execution request, {:?}", net_req); - CheckedRequest::Execution(req, net_req) - } - Request::Signal(req) => { - let net_req = net_request::IncompleteSignalRequest { - block_hash: req.hash.into(), - }; - trace!(target: "on_demand", "Signal Request, {:?}", net_req); - CheckedRequest::Signal(req, net_req) - } - } - } -} - -impl CheckedRequest { - /// Convert this into a network request. - pub fn into_net_request(self) -> net_request::Request { - use request::Request as NetRequest; - - match self { - CheckedRequest::HeaderProof(_, req) => NetRequest::HeaderProof(req), - CheckedRequest::HeaderByHash(_, req) => NetRequest::Headers(req), - CheckedRequest::HeaderWithAncestors(_, req) => NetRequest::Headers(req), - CheckedRequest::TransactionIndex(_, req) => NetRequest::TransactionIndex(req), - CheckedRequest::Receipts(_, req) => NetRequest::Receipts(req), - CheckedRequest::Body(_, req) => NetRequest::Body(req), - CheckedRequest::Account(_, req) => NetRequest::Account(req), - CheckedRequest::Code(_, req) => NetRequest::Code(req), - CheckedRequest::Execution(_, req) => NetRequest::Execution(req), - CheckedRequest::Signal(_, req) => NetRequest::Signal(req), - } - } - - /// Whether this needs a header from a prior request. - /// Returns `Some` with the index of the request returning the header - /// and the field giving the hash - /// if so, `None` otherwise. - pub fn needs_header(&self) -> Option<(usize, Field)> { - match *self { - CheckedRequest::Receipts(ref x, _) => x.0.needs_header(), - CheckedRequest::Body(ref x, _) => x.0.needs_header(), - CheckedRequest::Account(ref x, _) => x.header.needs_header(), - CheckedRequest::Code(ref x, _) => x.header.needs_header(), - CheckedRequest::Execution(ref x, _) => x.header.needs_header(), - _ => None, - } - } - - /// Provide a header where one was needed. Should only be called if `needs_header` - /// returns `Some`, and for correctness, only use the header yielded by the correct - /// request. - pub fn provide_header(&mut self, header: encoded::Header) { - match *self { - CheckedRequest::Receipts(ref mut x, _) => x.0 = HeaderRef::Stored(header), - CheckedRequest::Body(ref mut x, _) => x.0 = HeaderRef::Stored(header), - CheckedRequest::Account(ref mut x, _) => x.header = HeaderRef::Stored(header), - CheckedRequest::Code(ref mut x, _) => x.header = HeaderRef::Stored(header), - CheckedRequest::Execution(ref mut x, _) => x.header = HeaderRef::Stored(header), - _ => {} - } - } - - /// Attempt to complete the request based on data in the cache. - pub fn respond_local(&self, cache: &Mutex<::cache::Cache>) -> Option { - match *self { - CheckedRequest::HeaderProof(ref check, _) => { - let mut cache = cache.lock(); - cache - .block_hash(check.num) - .and_then(|h| cache.chain_score(&h).map(|s| (h, s))) - .map(|(h, s)| Response::HeaderProof((h, s))) - } - CheckedRequest::HeaderByHash(_, ref req) => { - if let Some(&net_request::HashOrNumber::Hash(ref h)) = req.start.as_ref() { - return cache.lock().block_header(h).map(Response::HeaderByHash); - } - - None - } - CheckedRequest::HeaderWithAncestors(_, ref req) => { - if req.skip != 1 || !req.reverse { - return None; - } - - if let Some(&net_request::HashOrNumber::Hash(start)) = req.start.as_ref() { - let mut result = Vec::with_capacity(req.max as usize); - let mut hash = start; - let mut cache = cache.lock(); - for _ in 0..req.max { - match cache.block_header(&hash) { - Some(header) => { - hash = header.parent_hash(); - result.push(header); - } - None => return None, - } - } - Some(Response::HeaderWithAncestors(result)) - } else { - None - } - } - CheckedRequest::Receipts(ref check, ref req) => { - // empty transactions -> no receipts - if check - .0 - .as_ref() - .ok() - .map_or(false, |hdr| hdr.receipts_root() == KECCAK_NULL_RLP) - { - return Some(Response::Receipts(Vec::new())); - } - - req.hash - .as_ref() - .and_then(|hash| cache.lock().block_receipts(hash)) - .map(Response::Receipts) - } - CheckedRequest::Body(ref check, ref req) => { - // check for empty body. - if let Ok(hdr) = check.0.as_ref() { - if hdr.transactions_root() == KECCAK_NULL_RLP - && hdr.uncles_hash() == KECCAK_EMPTY_LIST_RLP - { - let mut stream = RlpStream::new_list(3); - stream.append_raw(hdr.rlp().as_raw(), 1); - stream.begin_list(0); - stream.begin_list(0); - - return Some(Response::Body(encoded::Block::new(stream.out()))); - } - } - - // otherwise, check for cached body and header. - let block_hash = req - .hash - .as_ref() - .cloned() - .or_else(|| check.0.as_ref().ok().map(|hdr| hdr.hash())); - let block_hash = match block_hash { - Some(hash) => hash, - None => return None, - }; - - let mut cache = cache.lock(); - let cached_header; - - // can't use as_ref here although it seems like you would be able to: - // it complains about uninitialized `cached_header`. - let block_header = match check.0.as_ref().ok() { - Some(hdr) => Some(hdr), - None => { - cached_header = cache.block_header(&block_hash); - cached_header.as_ref() - } - }; - - block_header - .and_then(|hdr| cache.block_body(&block_hash).map(|b| (hdr, b))) - .map(|(hdr, body)| { - Response::Body(encoded::Block::new_from_header_and_body( - &hdr.view(), - &body.view(), - )) - }) - } - CheckedRequest::Code(_, ref req) => { - if req.code_hash.as_ref().map_or(false, |&h| h == KECCAK_EMPTY) { - Some(Response::Code(Vec::new())) - } else { - None - } - } - _ => None, - } - } -} - -macro_rules! match_me { - ($me: expr, ($check: pat, $req: pat) => $e: expr) => { - match $me { - CheckedRequest::HeaderProof($check, $req) => $e, - CheckedRequest::HeaderByHash($check, $req) => $e, - CheckedRequest::HeaderWithAncestors($check, $req) => $e, - CheckedRequest::TransactionIndex($check, $req) => $e, - CheckedRequest::Receipts($check, $req) => $e, - CheckedRequest::Body($check, $req) => $e, - CheckedRequest::Account($check, $req) => $e, - CheckedRequest::Code($check, $req) => $e, - CheckedRequest::Execution($check, $req) => $e, - CheckedRequest::Signal($check, $req) => $e, - } - }; -} - -impl IncompleteRequest for CheckedRequest { - type Complete = CompleteRequest; - type Response = net_request::Response; - - fn check_outputs(&self, mut f: F) -> Result<(), net_request::NoSuchOutput> - where - F: FnMut(usize, usize, OutputKind) -> Result<(), net_request::NoSuchOutput>, - { - match *self { - CheckedRequest::HeaderProof(_, ref req) => req.check_outputs(f), - CheckedRequest::HeaderByHash(ref check, ref req) => { - req.check_outputs(&mut f)?; - - // make sure the output given is definitively a hash. - match check.0 { - Field::BackReference(r, idx) => f(r, idx, OutputKind::Hash), - _ => Ok(()), - } - } - CheckedRequest::HeaderWithAncestors(ref check, ref req) => { - req.check_outputs(&mut f)?; - - // make sure the output given is definitively a hash. - match check.block_hash { - Field::BackReference(r, idx) => f(r, idx, OutputKind::Hash), - _ => Ok(()), - } - } - CheckedRequest::TransactionIndex(_, ref req) => req.check_outputs(f), - CheckedRequest::Receipts(_, ref req) => req.check_outputs(f), - CheckedRequest::Body(_, ref req) => req.check_outputs(f), - CheckedRequest::Account(_, ref req) => req.check_outputs(f), - CheckedRequest::Code(_, ref req) => req.check_outputs(f), - CheckedRequest::Execution(_, ref req) => req.check_outputs(f), - CheckedRequest::Signal(_, ref req) => req.check_outputs(f), - } - } - - fn note_outputs(&self, f: F) - where - F: FnMut(usize, OutputKind), - { - match_me!(*self, (_, ref req) => req.note_outputs(f)) - } - - fn fill(&mut self, f: F) - where - F: Fn(usize, usize) -> Result, - { - match_me!(*self, (_, ref mut req) => req.fill(f)) - } - - fn complete(self) -> Result { - match self { - CheckedRequest::HeaderProof(_, req) => { - trace!(target: "on_demand", "HeaderProof request completed {:?}", req); - req.complete().map(CompleteRequest::HeaderProof) - } - CheckedRequest::HeaderByHash(_, req) => { - trace!(target: "on_demand", "HeaderByHash request completed {:?}", req); - req.complete().map(CompleteRequest::Headers) - } - CheckedRequest::HeaderWithAncestors(_, req) => { - trace!(target: "on_demand", "HeaderWithAncestors request completed {:?}", req); - req.complete().map(CompleteRequest::Headers) - } - CheckedRequest::TransactionIndex(_, req) => { - trace!(target: "on_demand", "TransactionIndex request completed {:?}", req); - req.complete().map(CompleteRequest::TransactionIndex) - } - CheckedRequest::Receipts(_, req) => { - trace!(target: "on_demand", "Receipt request completed {:?}", req); - req.complete().map(CompleteRequest::Receipts) - } - CheckedRequest::Body(_, req) => { - trace!(target: "on_demand", "Block request completed {:?}", req); - req.complete().map(CompleteRequest::Body) - } - CheckedRequest::Account(_, req) => { - trace!(target: "on_demand", "Account request completed {:?}", req); - req.complete().map(CompleteRequest::Account) - } - CheckedRequest::Code(_, req) => { - trace!(target: "on_demand", "Code request completed {:?}", req); - req.complete().map(CompleteRequest::Code) - } - CheckedRequest::Execution(_, req) => { - trace!(target: "on_demand", "Execution request completed {:?}", req); - req.complete().map(CompleteRequest::Execution) - } - CheckedRequest::Signal(_, req) => { - trace!(target: "on_demand", "Signal request completed {:?}", req); - req.complete().map(CompleteRequest::Signal) - } - } - } - - fn adjust_refs(&mut self, mapping: F) - where - F: FnMut(usize) -> usize, - { - match_me!(*self, (_, ref mut req) => req.adjust_refs(mapping)) - } -} - -impl net_request::CheckedRequest for CheckedRequest { - type Extract = Response; - type Error = Error; - type Environment = Mutex<::cache::Cache>; - - /// Check whether the response matches (beyond the type). - fn check_response( - &self, - complete: &Self::Complete, - cache: &Mutex<::cache::Cache>, - response: &Self::Response, - ) -> Result { - use request::Response as NetResponse; - - // helper for expecting a specific response for a given request. - macro_rules! expect { - ($res: pat => $e: expr) => {{ - match (response, complete) { - $res => $e, - _ => Err(Error::WrongKind), - } - }}; - } - - // check response against contained prover. - match *self { - CheckedRequest::HeaderProof(ref prover, _) => { - expect!((&NetResponse::HeaderProof(ref res), _) => - prover.check_response(cache, &res.proof).map(Response::HeaderProof)) - } - CheckedRequest::HeaderByHash(ref prover, _) => { - expect!((&NetResponse::Headers(ref res), &CompleteRequest::Headers(ref req)) => - prover.check_response(cache, &req.start, &res.headers).map(Response::HeaderByHash)) - } - CheckedRequest::HeaderWithAncestors(ref prover, _) => { - expect!((&NetResponse::Headers(ref res), &CompleteRequest::Headers(ref req)) => - prover.check_response(cache, &req.start, &res.headers).map(Response::HeaderWithAncestors)) - } - CheckedRequest::TransactionIndex(ref prover, _) => { - expect!((&NetResponse::TransactionIndex(ref res), _) => - prover.check_response(cache, res).map(Response::TransactionIndex)) - } - CheckedRequest::Receipts(ref prover, _) => { - expect!((&NetResponse::Receipts(ref res), _) => - prover.check_response(cache, &res.receipts).map(Response::Receipts)) - } - CheckedRequest::Body(ref prover, _) => expect!((&NetResponse::Body(ref res), _) => - prover.check_response(cache, &res.body).map(Response::Body)), - CheckedRequest::Account(ref prover, _) => { - expect!((&NetResponse::Account(ref res), _) => - prover.check_response(cache, &res.proof).map(Response::Account)) - } - CheckedRequest::Code(ref prover, _) => { - expect!((&NetResponse::Code(ref res), &CompleteRequest::Code(ref req)) => - prover.check_response(cache, &req.code_hash, &res.code).map(Response::Code)) - } - CheckedRequest::Execution(ref prover, _) => { - expect!((&NetResponse::Execution(ref res), _) => - prover.check_response(cache, &res.items).map(Response::Execution)) - } - CheckedRequest::Signal(ref prover, _) => expect!((&NetResponse::Signal(ref res), _) => - prover.check_response(cache, &res.signal).map(Response::Signal)), - } - } -} - -/// Responses to on-demand requests. -/// All of these are checked. -pub enum Response { - /// Response to a header proof request. - /// Returns the hash and chain score. - HeaderProof((H256, U256)), - /// Response to a header-by-hash request. - HeaderByHash(encoded::Header), - /// Response to a header-by-hash with ancestors request. - HeaderWithAncestors(Vec), - /// Response to a transaction-index request. - TransactionIndex(net_request::TransactionIndexResponse), - /// Response to a receipts request. - Receipts(Vec), - /// Response to a block body request. - Body(encoded::Block), - /// Response to an Account request. - // TODO: `unwrap_or(engine_defaults)` - Account(Option), - /// Response to a request for code. - Code(Vec), - /// Response to a request for proved execution. - Execution(super::ExecutionResult), - /// Response to a request for epoch change signal. - Signal(Vec), -} - -impl net_request::ResponseLike for Response { - fn fill_outputs(&self, mut f: F) - where - F: FnMut(usize, Output), - { - match *self { - Response::HeaderProof((ref hash, _)) => f(0, Output::Hash(*hash)), - Response::Account(None) => { - f(0, Output::Hash(KECCAK_EMPTY)); // code hash - f(1, Output::Hash(KECCAK_NULL_RLP)); // storage root. - } - Response::Account(Some(ref acc)) => { - f(0, Output::Hash(acc.code_hash)); - f(1, Output::Hash(acc.storage_root)); - } - _ => {} - } - } -} - -/// Errors in verification. -#[derive(Debug, PartialEq)] -pub enum Error { - /// RLP decoder error. - Decoder(::rlp::DecoderError), - /// Empty response. - Empty, - /// Response data length exceeds request max. - TooManyResults(u64, u64), - /// Response data is incomplete. - TooFewResults(u64, u64), - /// Trie lookup error (result of bad proof) - Trie(TrieError), - /// Bad inclusion proof - BadProof, - /// Header by number instead of hash. - HeaderByNumber, - /// Unresolved header reference. - UnresolvedHeader(usize), - /// Wrong header number. - WrongNumber(u64, u64), - /// Wrong hash. - WrongHash(H256, H256), - /// Wrong trie root. - WrongTrieRoot(H256, H256), - /// Wrong response kind. - WrongKind, - /// Wrong sequence of headers. - WrongHeaderSequence, -} - -impl From<::rlp::DecoderError> for Error { - fn from(err: ::rlp::DecoderError) -> Self { - Error::Decoder(err) - } -} - -impl From> for Error { - fn from(err: Box) -> Self { - Error::Trie(*err) - } -} - -/// Request for header proof by number -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct HeaderProof { - /// The header's number. - num: u64, - /// The cht number for the given block number. - cht_num: u64, - /// The root of the CHT containing this header. - cht_root: H256, -} - -impl HeaderProof { - /// Construct a new header-by-number request. Fails if the given number is 0. - /// Provide the expected CHT root to compare against. - pub fn new(num: u64, cht_root: H256) -> Option { - ::cht::block_to_cht_number(num).map(|cht_num| HeaderProof { - num, - cht_num, - cht_root, - }) - } - - /// Access the requested block number. - pub fn num(&self) -> u64 { - self.num - } - - /// Access the CHT number. - pub fn cht_num(&self) -> u64 { - self.cht_num - } - - /// Access the expected CHT root. - pub fn cht_root(&self) -> H256 { - self.cht_root - } - - /// Check a response with a CHT proof, get a hash and total difficulty back. - pub fn check_response( - &self, - cache: &Mutex<::cache::Cache>, - proof: &[Bytes], - ) -> Result<(H256, U256), Error> { - match ::cht::check_proof(proof, self.num, self.cht_root) { - Some((expected_hash, td)) => { - let mut cache = cache.lock(); - cache.insert_block_hash(self.num, expected_hash); - cache.insert_chain_score(expected_hash, td); - - Ok((expected_hash, td)) - } - None => Err(Error::BadProof), - } - } -} - -/// Request for a header by hash with a range of ancestors. -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct HeaderWithAncestors { - /// Hash of the last block in the range to fetch. - pub block_hash: Field, - /// Number of headers before the last block to fetch in addition. - pub ancestor_count: u64, -} - -impl HeaderWithAncestors { - /// Check a response for the headers. - pub fn check_response( - &self, - cache: &Mutex<::cache::Cache>, - start: &net_request::HashOrNumber, - headers: &[encoded::Header], - ) -> Result, Error> { - let expected_hash = match (self.block_hash, start) { - (Field::Scalar(h), &net_request::HashOrNumber::Hash(h2)) => { - if h != h2 { - return Err(Error::WrongHash(h, h2)); - } - h - } - (_, &net_request::HashOrNumber::Hash(h2)) => h2, - _ => return Err(Error::HeaderByNumber), - }; - - let start_header = headers.first().ok_or(Error::Empty)?; - let start_hash = start_header.hash(); - if start_hash != expected_hash { - return Err(Error::WrongHash(expected_hash, start_hash)); - } - - let expected_len = 1 + cmp::min(self.ancestor_count, start_header.number()); - let actual_len = headers.len() as u64; - match actual_len.cmp(&expected_len) { - cmp::Ordering::Less => return Err(Error::TooFewResults(expected_len, actual_len)), - cmp::Ordering::Greater => return Err(Error::TooManyResults(expected_len, actual_len)), - cmp::Ordering::Equal => (), - }; - - for (header, prev_header) in headers.iter().zip(headers[1..].iter()) { - if header.number() != prev_header.number() + 1 - || header.parent_hash() != prev_header.hash() - { - return Err(Error::WrongHeaderSequence); - } - } - - let mut cache = cache.lock(); - for header in headers { - cache.insert_block_header(header.hash(), header.clone()); - } - - Ok(headers.to_vec()) - } -} - -/// Request for a header by hash. -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct HeaderByHash(pub Field); - -impl HeaderByHash { - /// Check a response for the header. - pub fn check_response( - &self, - cache: &Mutex<::cache::Cache>, - start: &net_request::HashOrNumber, - headers: &[encoded::Header], - ) -> Result { - let expected_hash = match (self.0, start) { - (Field::Scalar(h), &net_request::HashOrNumber::Hash(h2)) => { - if h != h2 { - return Err(Error::WrongHash(h, h2)); - } - h - } - (_, &net_request::HashOrNumber::Hash(h2)) => h2, - _ => return Err(Error::HeaderByNumber), - }; - - let header = headers.get(0).ok_or(Error::Empty)?; - let hash = header.hash(); - if hash == expected_hash { - cache.lock().insert_block_header(hash, header.clone()); - Ok(header.clone()) - } else { - Err(Error::WrongHash(expected_hash, hash)) - } - } -} - -/// Request for a transaction index. -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct TransactionIndex(pub Field); - -impl TransactionIndex { - /// Check a response for the transaction index. - // - // TODO: proper checking involves looking at canonicality of the - // hash w.r.t. the current best block header. - // - // unlike all other forms of request, we don't know the header to check - // until we make this request. - // - // This would require lookups in the database or perhaps CHT requests, - // which aren't currently possible. - // - // Also, returning a result that is not locally canonical doesn't necessarily - // indicate misbehavior, so the punishment scheme would need to be revised. - pub fn check_response( - &self, - _cache: &Mutex<::cache::Cache>, - res: &net_request::TransactionIndexResponse, - ) -> Result { - Ok(res.clone()) - } -} - -/// Request for a block, with header for verification. -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct Body(pub HeaderRef); - -impl Body { - /// Check a response for this block body. - pub fn check_response( - &self, - cache: &Mutex<::cache::Cache>, - body: &encoded::Body, - ) -> Result { - // check the integrity of the the body against the header - let header = self.0.as_ref()?; - let tx_root = - ::triehash::ordered_trie_root(body.transactions_rlp().iter().map(|r| r.as_raw())); - if tx_root != header.transactions_root() { - trace!(target: "on_demand", "Body Response: \"WrongTrieRoot\" tx_root: {:?} header_root: {:?}", tx_root, header.transactions_root()); - return Err(Error::WrongTrieRoot(header.transactions_root(), tx_root)); - } - - let uncles_hash = keccak(body.uncles_rlp().as_raw()); - if uncles_hash != header.uncles_hash() { - trace!(target: "on_demand", "Body Response: \"WrongHash\" tx_root: {:?} header_root: {:?}", uncles_hash, header.uncles_hash()); - return Err(Error::WrongHash(header.uncles_hash(), uncles_hash)); - } - - // concatenate the header and the body. - let block = encoded::Block::new_from_header_and_body(&header.view(), &body.view()); - - cache.lock().insert_block_body(header.hash(), body.clone()); - Ok(block) - } -} - -/// Request for a block's receipts with header for verification. -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct BlockReceipts(pub HeaderRef); - -impl BlockReceipts { - /// Check a response with receipts against the stored header. - pub fn check_response( - &self, - cache: &Mutex<::cache::Cache>, - receipts: &[Receipt], - ) -> Result, Error> { - let receipts_root = self.0.as_ref()?.receipts_root(); - let found_root = ::triehash::ordered_trie_root(receipts.iter().map(|r| ::rlp::encode(r))); - - if receipts_root == found_root { - cache - .lock() - .insert_block_receipts(receipts_root, receipts.to_vec()); - Ok(receipts.to_vec()) - } else { - trace!(target: "on_demand", "Receipt Reponse: \"WrongTrieRoot\" receipts_root: {:?} found_root: {:?}", receipts_root, found_root); - Err(Error::WrongTrieRoot(receipts_root, found_root)) - } - } -} - -/// Request for an account structure. -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct Account { - /// Header for verification. - pub header: HeaderRef, - /// Address requested. - pub address: Address, -} - -impl Account { - /// Check a response with an account against the stored header. - pub fn check_response( - &self, - _: &Mutex<::cache::Cache>, - proof: &[Bytes], - ) -> Result, Error> { - let header = self.header.as_ref()?; - let state_root = header.state_root(); - - let mut db = journaldb::new_memory_db(); - for node in proof { - db.insert(&node[..]); - } - - match TrieDB::new(&db, &state_root).and_then(|t| t.get(&keccak(&self.address)))? { - Some(val) => { - let rlp = Rlp::new(&val); - Ok(Some(BasicAccount { - nonce: rlp.val_at(0)?, - balance: rlp.val_at(1)?, - storage_root: rlp.val_at(2)?, - code_hash: rlp.val_at(3)?, - })) - } - None => { - trace!(target: "on_demand", "Account {:?} not found", self.address); - Ok(None) - } - } - } -} - -/// Request for account code. -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct Code { - /// Header reference. - pub header: HeaderRef, - /// Account's code hash. - pub code_hash: Field, -} - -impl Code { - /// Check a response with code against the code hash. - pub fn check_response( - &self, - _: &Mutex<::cache::Cache>, - code_hash: &H256, - code: &[u8], - ) -> Result, Error> { - let found_hash = keccak(code); - if &found_hash == code_hash { - Ok(code.to_vec()) - } else { - Err(Error::WrongHash(*code_hash, found_hash)) - } - } -} - -/// Request for transaction execution, along with the parts necessary to verify the proof. -#[derive(Clone)] -pub struct TransactionProof { - /// The transaction to request proof of. - pub tx: SignedTransaction, - /// Block header. - pub header: HeaderRef, - /// Transaction environment info. - // TODO: it's not really possible to provide this if the header is unknown. - pub env_info: EnvInfo, - /// Consensus engine. - pub engine: Arc, -} - -impl TransactionProof { - /// Check the proof, returning the proved execution or indicate that the proof was bad. - pub fn check_response( - &self, - _: &Mutex<::cache::Cache>, - state_items: &[DBValue], - ) -> Result { - let root = self.header.as_ref()?.state_root(); - - let mut env_info = self.env_info.clone(); - env_info.gas_limit = self.tx.gas; - - let proved_execution = state::check_proof( - state_items, - root, - &self.tx, - self.engine.machine(), - &self.env_info, - ); - - match proved_execution { - ProvedExecution::BadProof => { - trace!(target: "on_demand", "BadExecution Proof"); - Err(Error::BadProof) - } - ProvedExecution::Failed(e) => { - trace!(target: "on_demand", "Execution Proof failed: {:?}", e); - Ok(Err(e)) - } - ProvedExecution::Complete(e) => { - trace!(target: "on_demand", "Execution successful: {:?}", e); - Ok(Ok(e)) - } - } - } -} - -/// Request for epoch signal. -/// Provide engine and state-dependent proof checker. -#[derive(Clone)] -pub struct Signal { - /// Block hash and number to fetch proof for. - pub hash: H256, - /// Consensus engine, used to check the proof. - pub engine: Arc, - /// Special checker for the proof. - pub proof_check: Arc>, -} - -impl Signal { - /// Check the signal, returning the signal or indicate that it's bad. - pub fn check_response( - &self, - _: &Mutex<::cache::Cache>, - signal: &[u8], - ) -> Result, Error> { - self.proof_check - .check_proof(self.engine.machine(), signal) - .map(|_| signal.to_owned()) - .map_err(|_| Error::BadProof) - } -} - -#[cfg(test)] -mod tests { - use super::*; - use ethereum_types::{Address, H256}; - use ethtrie::{SecTrieDB, SecTrieDBMut}; - use hash::keccak; - use parking_lot::Mutex; - use std::time::Duration; - use trie::{Recorder, Trie, TrieMut}; - - use common_types::{ - encoded, - header::Header, - receipt::{Receipt, TransactionOutcome}, - }; - use ethcore::client::{BlockChainClient, BlockInfo, EachBlockWith, TestBlockChainClient}; - - fn make_cache() -> ::cache::Cache { - ::cache::Cache::new(Default::default(), Duration::from_secs(1)) - } - - #[test] - fn no_invalid_header_by_number() { - assert!(HeaderProof::new(0, Default::default()).is_none()) - } - - #[test] - fn check_header_proof() { - use cht; - - let test_client = TestBlockChainClient::new(); - test_client.add_blocks(10500, EachBlockWith::Nothing); - - let cht = { - let fetcher = |id| { - let hdr = test_client.block_header(id).unwrap(); - let td = test_client.block_total_difficulty(id).unwrap(); - Some(cht::BlockInfo { - hash: hdr.hash(), - parent_hash: hdr.parent_hash(), - total_difficulty: td, - }) - }; - - cht::build(cht::block_to_cht_number(10_000).unwrap(), fetcher).unwrap() - }; - - let proof = cht.prove(10_000, 0).unwrap().unwrap(); - let req = HeaderProof::new(10_000, cht.root()).unwrap(); - - let cache = Mutex::new(make_cache()); - assert!(req.check_response(&cache, &proof[..]).is_ok()); - } - - #[test] - fn check_header_by_hash() { - let mut header = Header::new(); - header.set_number(10_000); - header.set_extra_data(b"test_header".to_vec()); - let hash = header.hash(); - let raw_header = encoded::Header::new(::rlp::encode(&header)); - - let cache = Mutex::new(make_cache()); - assert!(HeaderByHash(hash.into()) - .check_response(&cache, &hash.into(), &[raw_header]) - .is_ok()) - } - - #[test] - fn check_header_with_ancestors() { - let mut last_header_hash = H256::default(); - let mut headers = (0..11) - .map(|num| { - let mut header = Header::new(); - header.set_number(num); - header.set_parent_hash(last_header_hash); - - last_header_hash = header.hash(); - header - }) - .collect::>(); - - headers.reverse(); // because responses are in reverse order - - let raw_headers = headers - .iter() - .map(|hdr| encoded::Header::new(::rlp::encode(hdr))) - .collect::>(); - - let mut invalid_successor = Header::new(); - invalid_successor.set_number(11); - invalid_successor.set_parent_hash(headers[1].hash()); - - let raw_invalid_successor = encoded::Header::new(::rlp::encode(&invalid_successor)); - - let cache = Mutex::new(make_cache()); - - let header_with_ancestors = |hash, count| HeaderWithAncestors { - block_hash: hash, - ancestor_count: count, - }; - - // Correct responses - assert!(header_with_ancestors(headers[0].hash().into(), 0) - .check_response(&cache, &headers[0].hash().into(), &raw_headers[0..1]) - .is_ok()); - assert!(header_with_ancestors(headers[0].hash().into(), 2) - .check_response(&cache, &headers[0].hash().into(), &raw_headers[0..3]) - .is_ok()); - assert!(header_with_ancestors(headers[0].hash().into(), 10) - .check_response(&cache, &headers[0].hash().into(), &raw_headers[0..11]) - .is_ok()); - assert!(header_with_ancestors(headers[2].hash().into(), 2) - .check_response(&cache, &headers[2].hash().into(), &raw_headers[2..5]) - .is_ok()); - assert!(header_with_ancestors(headers[2].hash().into(), 10) - .check_response(&cache, &headers[2].hash().into(), &raw_headers[2..11]) - .is_ok()); - assert!(header_with_ancestors(invalid_successor.hash().into(), 0) - .check_response( - &cache, - &invalid_successor.hash().into(), - &[raw_invalid_successor.clone()] - ) - .is_ok()); - - // Incorrect responses - assert_eq!( - header_with_ancestors(invalid_successor.hash().into(), 0).check_response( - &cache, - &headers[0].hash().into(), - &raw_headers[0..1] - ), - Err(Error::WrongHash( - invalid_successor.hash(), - headers[0].hash() - )) - ); - assert_eq!( - header_with_ancestors(headers[0].hash().into(), 0).check_response( - &cache, - &headers[0].hash().into(), - &[] - ), - Err(Error::Empty) - ); - assert_eq!( - header_with_ancestors(headers[0].hash().into(), 10).check_response( - &cache, - &headers[0].hash().into(), - &raw_headers[0..10] - ), - Err(Error::TooFewResults(11, 10)) - ); - assert_eq!( - header_with_ancestors(headers[0].hash().into(), 9).check_response( - &cache, - &headers[0].hash().into(), - &raw_headers[0..11] - ), - Err(Error::TooManyResults(10, 11)) - ); - - let response = &[raw_headers[0].clone(), raw_headers[2].clone()]; - assert_eq!( - header_with_ancestors(headers[0].hash().into(), 1).check_response( - &cache, - &headers[0].hash().into(), - response - ), - Err(Error::WrongHeaderSequence) - ); - - let response = &[raw_invalid_successor.clone(), raw_headers[0].clone()]; - assert_eq!( - header_with_ancestors(invalid_successor.hash().into(), 1).check_response( - &cache, - &invalid_successor.hash().into(), - response - ), - Err(Error::WrongHeaderSequence) - ); - - let response = &[raw_invalid_successor.clone(), raw_headers[1].clone()]; - assert_eq!( - header_with_ancestors(invalid_successor.hash().into(), 1).check_response( - &cache, - &invalid_successor.hash().into(), - response - ), - Err(Error::WrongHeaderSequence) - ); - } - - #[test] - fn check_body() { - use rlp::RlpStream; - - let header = Header::new(); - let mut body_stream = RlpStream::new_list(2); - body_stream.begin_list(0).begin_list(0); - - let req = Body(encoded::Header::new(::rlp::encode(&header)).into()); - - let cache = Mutex::new(make_cache()); - let response = encoded::Body::new(body_stream.drain()); - assert!(req.check_response(&cache, &response).is_ok()) - } - - #[test] - fn check_receipts() { - let receipts = (0..5) - .map(|_| Receipt { - outcome: TransactionOutcome::StateRoot(H256::random()), - gas_used: 21_000u64.into(), - log_bloom: Default::default(), - logs: Vec::new(), - }) - .collect::>(); - - let mut header = Header::new(); - let receipts_root = - ::triehash::ordered_trie_root(receipts.iter().map(|x| ::rlp::encode(x))); - - header.set_receipts_root(receipts_root); - - let req = BlockReceipts(encoded::Header::new(::rlp::encode(&header)).into()); - - let cache = Mutex::new(make_cache()); - assert!(req.check_response(&cache, &receipts).is_ok()) - } - - #[test] - fn check_state_proof() { - use rlp::RlpStream; - - let mut root = H256::default(); - let mut db = journaldb::new_memory_db(); - let mut header = Header::new(); - header.set_number(123_456); - header.set_extra_data(b"test_header".to_vec()); - - let addr = Address::random(); - let rand_acc = || { - let mut stream = RlpStream::new_list(4); - stream - .append(&2u64) - .append(&100_000_000u64) - .append(&H256::random()) - .append(&H256::random()); - - stream.out() - }; - { - let mut trie = SecTrieDBMut::new(&mut db, &mut root); - for _ in 0..100 { - let address = Address::random(); - trie.insert(&*address, &rand_acc()).unwrap(); - } - - trie.insert(&*addr, &rand_acc()).unwrap(); - } - - let proof = { - let trie = SecTrieDB::new(&db, &root).unwrap(); - let mut recorder = Recorder::new(); - - trie.get_with(&*addr, &mut recorder).unwrap().unwrap(); - - recorder - .drain() - .into_iter() - .map(|r| r.data) - .collect::>() - }; - - header.set_state_root(root.clone()); - - let req = Account { - header: encoded::Header::new(::rlp::encode(&header)).into(), - address: addr, - }; - - let cache = Mutex::new(make_cache()); - assert!(req.check_response(&cache, &proof[..]).is_ok()); - } - - #[test] - fn check_code() { - let code = vec![1u8; 256]; - let code_hash = keccak(&code); - let header = Header::new(); - let req = Code { - header: encoded::Header::new(::rlp::encode(&header)).into(), - code_hash: code_hash.into(), - }; - - let cache = Mutex::new(make_cache()); - assert!(req.check_response(&cache, &code_hash, &code).is_ok()); - assert!(req.check_response(&cache, &code_hash, &[]).is_err()); - } -} diff --git a/ethcore/light/src/on_demand/request_guard.rs b/ethcore/light/src/on_demand/request_guard.rs deleted file mode 100644 index 6dbdb6f24..000000000 --- a/ethcore/light/src/on_demand/request_guard.rs +++ /dev/null @@ -1,133 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -use failsafe; -use std::time::Duration; - -type RequestPolicy = failsafe::failure_policy::ConsecutiveFailures; - -/// Error wrapped on-top of `FailsafeError` -#[derive(Debug, PartialEq)] -pub enum Error { - /// The call is let through - LetThrough, - /// The call rejected by the guard - Rejected, - /// The request reached the maximum of backoff iterations - ReachedLimit, -} - -/// Handle and register requests that can fail -#[derive(Debug)] -pub struct RequestGuard { - backoff_round: usize, - max_backoff_rounds: usize, - state: failsafe::StateMachine, -} - -impl RequestGuard { - /// Constructor - pub fn new( - consecutive_failures: u32, - max_backoff_rounds: usize, - start_backoff: Duration, - max_backoff: Duration, - ) -> Self { - let backoff = failsafe::backoff::exponential(start_backoff, max_backoff); - // success_rate not used because only errors are registered - let policy = - failsafe::failure_policy::consecutive_failures(consecutive_failures as u32, backoff); - - Self { - backoff_round: 0, - max_backoff_rounds, - state: failsafe::StateMachine::new(policy, ()), - } - } - - /// Update the state after a `faulty` call - pub fn register_error(&mut self) -> Error { - trace!(target: "circuit_breaker", "RequestGuard; backoff_round: {}/{}, state {:?}", - self.backoff_round, self.max_backoff_rounds, self.state); - - if self.backoff_round >= self.max_backoff_rounds { - Error::ReachedLimit - } else if self.state.is_call_permitted() { - self.state.on_error(); - if self.state.is_call_permitted() { - Error::LetThrough - } else { - self.backoff_round += 1; - Error::Rejected - } - } else { - Error::Rejected - } - } - - /// Poll the circuit breaker, to check if the call is permitted - pub fn is_call_permitted(&self) -> bool { - self.state.is_call_permitted() - } -} - -#[cfg(test)] -mod tests { - use super::*; - use std::{iter, time::Instant}; - - #[test] - fn one_consecutive_failure_with_10_backoffs() { - // 1, 2, 4, 5, 5 .... 5 - let binary_exp_backoff = vec![1_u64, 2, 4] - .into_iter() - .chain(iter::repeat(5_u64).take(7)); - let mut guard = RequestGuard::new(1, 10, Duration::from_secs(1), Duration::from_secs(5)); - for backoff in binary_exp_backoff { - assert_eq!(guard.register_error(), Error::Rejected); - let now = Instant::now(); - while now.elapsed() <= Duration::from_secs(backoff) {} - } - assert_eq!( - guard.register_error(), - Error::ReachedLimit, - "10 backoffs should be error" - ); - } - - #[test] - fn five_consecutive_failures_with_3_backoffs() { - let mut guard = RequestGuard::new(5, 3, Duration::from_secs(1), Duration::from_secs(30)); - - // register five errors - for _ in 0..4 { - assert_eq!(guard.register_error(), Error::LetThrough); - } - - let binary_exp_backoff = [1, 2, 4]; - for backoff in &binary_exp_backoff { - assert_eq!(guard.register_error(), Error::Rejected); - let now = Instant::now(); - while now.elapsed() <= Duration::from_secs(*backoff) {} - } - - assert_eq!( - guard.register_error(), - Error::ReachedLimit, - "3 backoffs should be an error" - ); - } -} diff --git a/ethcore/light/src/on_demand/response_guard.rs b/ethcore/light/src/on_demand/response_guard.rs deleted file mode 100644 index c862d13ae..000000000 --- a/ethcore/light/src/on_demand/response_guard.rs +++ /dev/null @@ -1,199 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! ResponseGuard implementation. -//! It is responsible for the receiving end of `Pending Request` (see `OnDemand` module docs for more information) -//! The major functionality is the following: -//! 1) Register non-successful responses which will reported back if it fails -//! 2) A timeout mechanism that will wait for successful response at most t seconds - -use std::{ - collections::HashMap, - fmt, - time::{Duration, Instant}, -}; - -use super::{ResponseError, ValidityError}; - -/// Response guard error type -#[derive(Debug, Eq, PartialEq)] -pub enum Error { - /// No majority, the error reason can't be determined - NoMajority(usize), - /// Majority, with the error reason - Majority(Inner, usize, usize), -} - -impl fmt::Display for Error { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - match self { - Error::Majority(err, majority, total) => write!( - f, - "Error cause was {:?}, (majority count: {} / total: {})", - err, majority, total - ), - Error::NoMajority(total) => write!( - f, - "Error cause couldn't be determined, the total number of responses was {}", - total - ), - } - } -} - -/// Dummy type to convert a generic type with no trait bounds -#[derive(Copy, Clone, Debug, Hash, Eq, PartialEq, PartialOrd, Ord)] -pub enum Inner { - /// Bad execution proof - BadProof, - /// RLP decoding - Decoder, - /// Empty response - EmptyResponse, - /// Wrong header sequence - HeaderByNumber, - /// Too few results - TooFewResults, - /// Too many results - TooManyResults, - /// Trie error - Trie, - /// Unresolved header - UnresolvedHeader, - /// No responses expected. - Unexpected, - /// Wrong hash - WrongHash, - /// Wrong Header sequence - WrongHeaderSequence, - /// Wrong response kind - WrongKind, - /// Wrong number - WrongNumber, - /// Wrong Trie Root - WrongTrieRoot, -} - -/// Handle and register responses that can fail -#[derive(Debug)] -pub struct ResponseGuard { - request_start: Instant, - time_to_live: Duration, - responses: HashMap, - number_responses: usize, -} - -impl ResponseGuard { - /// Constructor - pub fn new(time_to_live: Duration) -> Self { - Self { - request_start: Instant::now(), - time_to_live, - responses: HashMap::new(), - number_responses: 0, - } - } - - fn into_reason(&self, err: &ResponseError) -> Inner { - match err { - ResponseError::Unexpected => Inner::Unexpected, - ResponseError::Validity(ValidityError::BadProof) => Inner::BadProof, - ResponseError::Validity(ValidityError::Decoder(_)) => Inner::Decoder, - ResponseError::Validity(ValidityError::Empty) => Inner::EmptyResponse, - ResponseError::Validity(ValidityError::HeaderByNumber) => Inner::HeaderByNumber, - ResponseError::Validity(ValidityError::TooFewResults(_, _)) => Inner::TooFewResults, - ResponseError::Validity(ValidityError::TooManyResults(_, _)) => Inner::TooManyResults, - ResponseError::Validity(ValidityError::Trie(_)) => Inner::Trie, - ResponseError::Validity(ValidityError::UnresolvedHeader(_)) => Inner::UnresolvedHeader, - ResponseError::Validity(ValidityError::WrongHash(_, _)) => Inner::WrongHash, - ResponseError::Validity(ValidityError::WrongHeaderSequence) => { - Inner::WrongHeaderSequence - } - ResponseError::Validity(ValidityError::WrongKind) => Inner::WrongKind, - ResponseError::Validity(ValidityError::WrongNumber(_, _)) => Inner::WrongNumber, - ResponseError::Validity(ValidityError::WrongTrieRoot(_, _)) => Inner::WrongTrieRoot, - } - } - - /// Update the state after a `faulty` call - pub fn register_error( - &mut self, - err: &ResponseError, - ) -> Result<(), Error> { - let err = self.into_reason(err); - *self.responses.entry(err).or_insert(0) += 1; - self.number_responses = self.number_responses.saturating_add(1); - trace!(target: "circuit_breaker", "ResponseGuard: {:?}", self.responses); - // The request has exceeded its timeout - if self.request_start.elapsed() >= self.time_to_live { - let (&err, &max_count) = self - .responses - .iter() - .max_by_key(|(_k, v)| *v) - .expect("got at least one element; qed"); - let majority = self.responses.values().filter(|v| **v == max_count).count() == 1; - if majority { - Err(Error::Majority(err, max_count, self.number_responses)) - } else { - Err(Error::NoMajority(self.number_responses)) - } - } else { - Ok(()) - } - } -} - -#[cfg(test)] -mod tests { - use super::*; - use std::thread; - - #[test] - fn test_basic_by_majority() { - let mut guard = ResponseGuard::new(Duration::from_secs(5)); - guard - .register_error(&ResponseError::Validity(ValidityError::Empty)) - .unwrap(); - guard.register_error(&ResponseError::Unexpected).unwrap(); - guard.register_error(&ResponseError::Unexpected).unwrap(); - guard.register_error(&ResponseError::Unexpected).unwrap(); - thread::sleep(Duration::from_secs(5)); - - assert_eq!( - guard.register_error(&ResponseError::Validity(ValidityError::WrongKind)), - Err(Error::Majority(Inner::Unexpected, 3, 5)) - ); - } - - #[test] - fn test_no_majority() { - let mut guard = ResponseGuard::new(Duration::from_secs(5)); - guard - .register_error(&ResponseError::Validity(ValidityError::Empty)) - .unwrap(); - guard - .register_error(&ResponseError::Validity(ValidityError::Empty)) - .unwrap(); - guard.register_error(&ResponseError::Unexpected).unwrap(); - guard.register_error(&ResponseError::Unexpected).unwrap(); - thread::sleep(Duration::from_secs(5)); - - assert_eq!( - guard.register_error(&ResponseError::Validity(ValidityError::WrongKind)), - Err(Error::NoMajority(5)) - ); - } -} diff --git a/ethcore/light/src/on_demand/tests.rs b/ethcore/light/src/on_demand/tests.rs deleted file mode 100644 index a173ee5de..000000000 --- a/ethcore/light/src/on_demand/tests.rs +++ /dev/null @@ -1,716 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Tests for the on-demand service. - -use cache::Cache; -use common_types::header::Header; -use ethereum_types::H256; -use futures::Future; -use net::*; -use network::{NodeId, PeerId}; -use parking_lot::Mutex; -use request::{self as basic_request, Response}; - -use std::{ - sync::Arc, - thread, - time::{Duration, Instant}, -}; - -use super::{request, HeaderRef, OnDemand, OnDemandRequester, Peer}; - -// useful contexts to give the service. -enum Context { - NoOp, - WithPeer(PeerId), - RequestFrom(PeerId, ReqId), - Punish(PeerId), - FaultyRequest, -} - -impl EventContext for Context { - fn peer(&self) -> PeerId { - match *self { - Context::WithPeer(id) | Context::RequestFrom(id, _) | Context::Punish(id) => id, - Context::FaultyRequest => 0, - _ => panic!("didn't expect to have peer queried."), - } - } - - fn as_basic(&self) -> &dyn BasicContext { - self - } -} - -impl BasicContext for Context { - /// Returns the relevant's peer persistent Id (aka NodeId). - fn persistent_peer_id(&self, _: PeerId) -> Option { - panic!("didn't expect to provide persistent ID") - } - - fn request_from(&self, peer_id: PeerId, _: ::request::NetworkRequests) -> Result { - match *self { - Context::RequestFrom(id, req_id) => { - if peer_id == id { - Ok(req_id) - } else { - Err(Error::NoCredits) - } - } - Context::FaultyRequest => Err(Error::NoCredits), - _ => panic!("didn't expect to have requests dispatched."), - } - } - - fn make_announcement(&self, _: Announcement) { - panic!("didn't expect to make announcement") - } - - fn disconnect_peer(&self, id: PeerId) { - self.disable_peer(id) - } - - fn disable_peer(&self, peer_id: PeerId) { - match *self { - Context::Punish(id) if id == peer_id => {} - _ => panic!("Unexpectedly punished peer."), - } - } -} - -// test harness. -struct Harness { - service: OnDemand, -} - -impl Harness { - fn create() -> Self { - let cache = Arc::new(Mutex::new(Cache::new( - Default::default(), - Duration::from_secs(60), - ))); - Harness { - service: OnDemand::new_test( - cache, - // Response `time_to_live` - Duration::from_secs(5), - // Request start backoff - Duration::from_secs(1), - // Request max backoff - Duration::from_secs(20), - super::DEFAULT_MAX_REQUEST_BACKOFF_ROUNDS, - super::DEFAULT_NUM_CONSECUTIVE_FAILED_REQUESTS, - ), - } - } - - fn inject_peer(&self, id: PeerId, peer: Peer) { - self.service.peers.write().insert(id, peer); - } -} - -fn dummy_status() -> Status { - Status { - protocol_version: 1, - network_id: 999, - head_td: 1.into(), - head_hash: H256::default(), - head_num: 1359, - genesis_hash: H256::default(), - last_head: None, - } -} - -fn dummy_capabilities() -> Capabilities { - Capabilities { - serve_headers: true, - serve_chain_since: Some(1), - serve_state_since: Some(1), - tx_relay: true, - } -} - -#[test] -fn detects_hangup() { - let on_demand = Harness::create().service; - let result = on_demand.request_raw( - &Context::NoOp, - vec![request::HeaderByHash(H256::default().into()).into()], - ); - - assert_eq!(on_demand.pending.read().len(), 1); - drop(result); - - on_demand.dispatch_pending(&Context::NoOp); - assert!(on_demand.pending.read().is_empty()); -} - -#[test] -fn single_request() { - let harness = Harness::create(); - - let peer_id = 10101; - let req_id = ReqId(14426); - - harness.inject_peer( - peer_id, - Peer { - status: dummy_status(), - capabilities: dummy_capabilities(), - }, - ); - - let header = Header::default(); - let encoded = header.encoded(); - - let recv = harness - .service - .request_raw( - &Context::NoOp, - vec![request::HeaderByHash(header.hash().into()).into()], - ) - .unwrap(); - - assert_eq!(harness.service.pending.read().len(), 1); - - harness - .service - .dispatch_pending(&Context::RequestFrom(peer_id, req_id)); - - assert_eq!(harness.service.pending.read().len(), 0); - - harness.service.on_responses( - &Context::WithPeer(peer_id), - req_id, - &[Response::Headers(basic_request::HeadersResponse { - headers: vec![encoded], - })], - ); - - assert!(recv.wait().is_ok()); -} - -#[test] -fn no_capabilities() { - let harness = Harness::create(); - - let peer_id = 10101; - - let mut capabilities = dummy_capabilities(); - capabilities.serve_headers = false; - - harness.inject_peer( - peer_id, - Peer { - status: dummy_status(), - capabilities: capabilities, - }, - ); - - let _recv = harness - .service - .request_raw( - &Context::NoOp, - vec![request::HeaderByHash(H256::default().into()).into()], - ) - .unwrap(); - - assert_eq!(harness.service.pending.read().len(), 1); - - harness.service.dispatch_pending(&Context::NoOp); - - assert_eq!(harness.service.pending.read().len(), 1); -} - -#[test] -fn reassign() { - let harness = Harness::create(); - - let peer_ids = (10101, 12345); - let req_ids = (ReqId(14426), ReqId(555)); - - harness.inject_peer( - peer_ids.0, - Peer { - status: dummy_status(), - capabilities: dummy_capabilities(), - }, - ); - - let header = Header::default(); - let encoded = header.encoded(); - - let recv = harness - .service - .request_raw( - &Context::NoOp, - vec![request::HeaderByHash(header.hash().into()).into()], - ) - .unwrap(); - - assert_eq!(harness.service.pending.read().len(), 1); - - harness - .service - .dispatch_pending(&Context::RequestFrom(peer_ids.0, req_ids.0)); - assert_eq!(harness.service.pending.read().len(), 0); - - harness - .service - .on_disconnect(&Context::WithPeer(peer_ids.0), &[req_ids.0]); - assert_eq!(harness.service.pending.read().len(), 1); - - harness.inject_peer( - peer_ids.1, - Peer { - status: dummy_status(), - capabilities: dummy_capabilities(), - }, - ); - - harness - .service - .dispatch_pending(&Context::RequestFrom(peer_ids.1, req_ids.1)); - assert_eq!(harness.service.pending.read().len(), 0); - - harness.service.on_responses( - &Context::WithPeer(peer_ids.1), - req_ids.1, - &[Response::Headers(basic_request::HeadersResponse { - headers: vec![encoded], - })], - ); - - assert!(recv.wait().is_ok()); -} - -#[test] -fn partial_response() { - let harness = Harness::create(); - - let peer_id = 111; - let req_ids = (ReqId(14426), ReqId(555)); - - harness.inject_peer( - peer_id, - Peer { - status: dummy_status(), - capabilities: dummy_capabilities(), - }, - ); - - let make = |num| { - let mut hdr = Header::default(); - hdr.set_number(num); - - let encoded = hdr.encoded(); - (hdr, encoded) - }; - - let (header1, encoded1) = make(5); - let (header2, encoded2) = make(23452); - - // request two headers. - let recv = harness - .service - .request_raw( - &Context::NoOp, - vec![ - request::HeaderByHash(header1.hash().into()).into(), - request::HeaderByHash(header2.hash().into()).into(), - ], - ) - .unwrap(); - - assert_eq!(harness.service.pending.read().len(), 1); - - harness - .service - .dispatch_pending(&Context::RequestFrom(peer_id, req_ids.0)); - assert_eq!(harness.service.pending.read().len(), 0); - - // supply only the first one. - harness.service.on_responses( - &Context::WithPeer(peer_id), - req_ids.0, - &[Response::Headers(basic_request::HeadersResponse { - headers: vec![encoded1], - })], - ); - - assert_eq!(harness.service.pending.read().len(), 1); - - harness - .service - .dispatch_pending(&Context::RequestFrom(peer_id, req_ids.1)); - assert_eq!(harness.service.pending.read().len(), 0); - - // supply the next one. - harness.service.on_responses( - &Context::WithPeer(peer_id), - req_ids.1, - &[Response::Headers(basic_request::HeadersResponse { - headers: vec![encoded2], - })], - ); - - assert!(recv.wait().is_ok()); -} - -#[test] -fn part_bad_part_good() { - let harness = Harness::create(); - - let peer_id = 111; - let req_ids = (ReqId(14426), ReqId(555)); - - harness.inject_peer( - peer_id, - Peer { - status: dummy_status(), - capabilities: dummy_capabilities(), - }, - ); - - let make = |num| { - let mut hdr = Header::default(); - hdr.set_number(num); - - let encoded = hdr.encoded(); - (hdr, encoded) - }; - - let (header1, encoded1) = make(5); - let (header2, encoded2) = make(23452); - - // request two headers. - let recv = harness - .service - .request_raw( - &Context::NoOp, - vec![ - request::HeaderByHash(header1.hash().into()).into(), - request::HeaderByHash(header2.hash().into()).into(), - ], - ) - .unwrap(); - - assert_eq!(harness.service.pending.read().len(), 1); - - harness - .service - .dispatch_pending(&Context::RequestFrom(peer_id, req_ids.0)); - assert_eq!(harness.service.pending.read().len(), 0); - - // supply only the first one, but followed by the wrong kind of response. - // the first header should be processed. - harness.service.on_responses( - &Context::Punish(peer_id), - req_ids.0, - &[ - Response::Headers(basic_request::HeadersResponse { - headers: vec![encoded1], - }), - Response::Receipts(basic_request::ReceiptsResponse { receipts: vec![] }), - ], - ); - - assert_eq!(harness.service.pending.read().len(), 1); - - harness.inject_peer( - peer_id, - Peer { - status: dummy_status(), - capabilities: dummy_capabilities(), - }, - ); - - harness - .service - .dispatch_pending(&Context::RequestFrom(peer_id, req_ids.1)); - assert_eq!(harness.service.pending.read().len(), 0); - - // supply the next one. - harness.service.on_responses( - &Context::WithPeer(peer_id), - req_ids.1, - &[Response::Headers(basic_request::HeadersResponse { - headers: vec![encoded2], - })], - ); - - assert!(recv.wait().is_ok()); -} - -#[test] -fn wrong_kind() { - let harness = Harness::create(); - - let peer_id = 10101; - let req_id = ReqId(14426); - - harness.inject_peer( - peer_id, - Peer { - status: dummy_status(), - capabilities: dummy_capabilities(), - }, - ); - - let _recv = harness - .service - .request_raw( - &Context::NoOp, - vec![request::HeaderByHash(H256::default().into()).into()], - ) - .unwrap(); - - assert_eq!(harness.service.pending.read().len(), 1); - - harness - .service - .dispatch_pending(&Context::RequestFrom(peer_id, req_id)); - - assert_eq!(harness.service.pending.read().len(), 0); - - harness.service.on_responses( - &Context::Punish(peer_id), - req_id, - &[Response::Receipts(basic_request::ReceiptsResponse { - receipts: vec![], - })], - ); - - assert_eq!(harness.service.pending.read().len(), 1); -} - -#[test] -fn back_references() { - let harness = Harness::create(); - - let peer_id = 10101; - let req_id = ReqId(14426); - - harness.inject_peer( - peer_id, - Peer { - status: dummy_status(), - capabilities: dummy_capabilities(), - }, - ); - - let header = Header::default(); - let encoded = header.encoded(); - - let recv = harness - .service - .request_raw( - &Context::NoOp, - vec![ - request::HeaderByHash(header.hash().into()).into(), - request::BlockReceipts(HeaderRef::Unresolved(0, header.hash().into())).into(), - ], - ) - .unwrap(); - - assert_eq!(harness.service.pending.read().len(), 1); - - harness - .service - .dispatch_pending(&Context::RequestFrom(peer_id, req_id)); - - assert_eq!(harness.service.pending.read().len(), 0); - - harness.service.on_responses( - &Context::WithPeer(peer_id), - req_id, - &[ - Response::Headers(basic_request::HeadersResponse { - headers: vec![encoded], - }), - Response::Receipts(basic_request::ReceiptsResponse { receipts: vec![] }), - ], - ); - - assert!(recv.wait().is_ok()); -} - -#[test] -#[should_panic] -fn bad_back_reference() { - let harness = Harness::create(); - - let header = Header::default(); - - let _ = harness - .service - .request_raw( - &Context::NoOp, - vec![ - request::HeaderByHash(header.hash().into()).into(), - request::BlockReceipts(HeaderRef::Unresolved(1, header.hash().into())).into(), - ], - ) - .unwrap(); -} - -#[test] -fn fill_from_cache() { - let harness = Harness::create(); - - let peer_id = 10101; - let req_id = ReqId(14426); - - harness.inject_peer( - peer_id, - Peer { - status: dummy_status(), - capabilities: dummy_capabilities(), - }, - ); - - let header = Header::default(); - let encoded = header.encoded(); - - let recv = harness - .service - .request_raw( - &Context::NoOp, - vec![ - request::HeaderByHash(header.hash().into()).into(), - request::BlockReceipts(HeaderRef::Unresolved(0, header.hash().into())).into(), - ], - ) - .unwrap(); - - assert_eq!(harness.service.pending.read().len(), 1); - - harness - .service - .dispatch_pending(&Context::RequestFrom(peer_id, req_id)); - - assert_eq!(harness.service.pending.read().len(), 0); - - harness.service.on_responses( - &Context::WithPeer(peer_id), - req_id, - &[Response::Headers(basic_request::HeadersResponse { - headers: vec![encoded], - })], - ); - - assert!(recv.wait().is_ok()); -} - -#[test] -fn request_without_response_should_backoff_and_then_be_dropped() { - let harness = Harness::create(); - let peer_id = 0; - let req_id = ReqId(13); - - harness.inject_peer( - peer_id, - Peer { - status: dummy_status(), - capabilities: dummy_capabilities(), - }, - ); - - let binary_exp_backoff: Vec = vec![1, 2, 4, 8, 16, 20, 20, 20, 20, 20]; - - let _recv = harness - .service - .request_raw( - &Context::RequestFrom(peer_id, req_id), - vec![request::HeaderByHash(Header::default().encoded().hash().into()).into()], - ) - .unwrap(); - assert_eq!(harness.service.pending.read().len(), 1); - - for backoff in &binary_exp_backoff { - harness.service.dispatch_pending(&Context::FaultyRequest); - assert_eq!( - harness.service.pending.read().len(), - 1, - "Request should not be dropped" - ); - let now = Instant::now(); - while now.elapsed() < Duration::from_secs(*backoff) {} - } - - harness.service.dispatch_pending(&Context::FaultyRequest); - assert_eq!( - harness.service.pending.read().len(), - 0, - "Request exceeded the 10 backoff rounds should be dropped" - ); -} - -#[test] -fn empty_responses_exceeds_limit_should_be_dropped() { - let harness = Harness::create(); - let peer_id = 0; - let req_id = ReqId(13); - - harness.inject_peer( - peer_id, - Peer { - status: dummy_status(), - capabilities: dummy_capabilities(), - }, - ); - - let _recv = harness - .service - .request_raw( - &Context::RequestFrom(peer_id, req_id), - vec![request::HeaderByHash(Header::default().encoded().hash().into()).into()], - ) - .unwrap(); - - harness - .service - .dispatch_pending(&Context::RequestFrom(peer_id, req_id)); - - assert_eq!(harness.service.pending.read().len(), 0); - assert_eq!(harness.service.in_transit.read().len(), 1); - - let now = Instant::now(); - - // Send `empty responses` in the current time window - // Use only half of the `time_window` because we can't be sure exactly - // when the window started and the clock accurancy - while now.elapsed() < harness.service.response_time_window / 2 { - harness - .service - .on_responses(&Context::RequestFrom(13, req_id), req_id, &[]); - assert!(harness.service.pending.read().len() != 0); - let pending = harness.service.pending.write().remove(0); - harness.service.in_transit.write().insert(req_id, pending); - } - - // Make sure we passed the first `time window` - thread::sleep(Duration::from_secs(5)); - - // Now, response is in failure state but need another response to be `polled` - harness - .service - .on_responses(&Context::RequestFrom(13, req_id), req_id, &[]); - - assert!(harness.service.in_transit.read().is_empty()); - assert!(harness.service.pending.read().is_empty()); -} diff --git a/ethcore/light/src/provider.rs b/ethcore/light/src/provider.rs deleted file mode 100644 index 20d736857..000000000 --- a/ethcore/light/src/provider.rs +++ /dev/null @@ -1,478 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! A provider for the PIP protocol. This is typically a full node, who can -//! give as much data as necessary to its peers. - -use std::sync::Arc; - -use common_types::{ - blockchain_info::BlockChainInfo, encoded, ids::BlockId, transaction::PendingTransaction, -}; -use ethcore::client::{ - BlockChainClient, BlockInfo as ClientBlockInfo, ChainInfo, ProvingBlockChainClient, -}; -use ethereum_types::H256; -use parking_lot::RwLock; - -use cht::{self, BlockInfo}; -use client::{AsLightClient, LightChainClient}; -use transaction_queue::TransactionQueue; - -use request; - -/// Maximum allowed size of a headers request. -pub const MAX_HEADERS_PER_REQUEST: u64 = 512; - -/// Defines the operations that a provider for the light subprotocol must fulfill. -pub trait Provider: Send + Sync { - /// Provide current blockchain info. - fn chain_info(&self) -> BlockChainInfo; - - /// Find the depth of a common ancestor between two blocks. - /// If either block is unknown or an ancestor can't be found - /// then return `None`. - fn reorg_depth(&self, a: &H256, b: &H256) -> Option; - - /// Earliest block where state queries are available. - /// If `None`, no state queries are servable. - fn earliest_state(&self) -> Option; - - /// Provide a list of headers starting at the requested block, - /// possibly in reverse and skipping `skip` at a time. - /// - /// The returned vector may have any length in the range [0, `max`], but the - /// results within must adhere to the `skip` and `reverse` parameters. - fn block_headers( - &self, - req: request::CompleteHeadersRequest, - ) -> Option { - use request::HashOrNumber; - - if req.max == 0 { - return None; - } - - let best_num = self.chain_info().best_block_number; - let start_num = match req.start { - HashOrNumber::Number(start_num) => start_num, - HashOrNumber::Hash(hash) => match self.block_header(BlockId::Hash(hash)) { - None => { - trace!(target: "pip_provider", "Unknown block hash {} requested", hash); - return None; - } - Some(header) => { - let num = header.number(); - let canon_hash = self.block_header(BlockId::Number(num)).map(|h| h.hash()); - - if req.max == 1 || canon_hash != Some(hash) { - // Non-canonical header or single header requested. - return Some(::request::HeadersResponse { - headers: vec![header], - }); - } - - num - } - }, - }; - - let max = ::std::cmp::min(MAX_HEADERS_PER_REQUEST, req.max); - - let headers: Vec<_> = (0_u64..max) - .map(|x: u64| x.saturating_mul(req.skip.saturating_add(1))) - .take_while(|&x| { - if req.reverse { - x < start_num - } else { - best_num.saturating_sub(start_num) >= x - } - }) - .map(|x| { - if req.reverse { - start_num.saturating_sub(x) - } else { - start_num.saturating_add(x) - } - }) - .map(|x| self.block_header(BlockId::Number(x))) - .take_while(|x| x.is_some()) - .flat_map(|x| x) - .collect(); - - if headers.is_empty() { - None - } else { - Some(::request::HeadersResponse { headers }) - } - } - - /// Get a block header by id. - fn block_header(&self, id: BlockId) -> Option; - - /// Get a transaction index by hash. - fn transaction_index( - &self, - req: request::CompleteTransactionIndexRequest, - ) -> Option; - - /// Fulfill a block body request. - fn block_body(&self, req: request::CompleteBodyRequest) -> Option; - - /// Fulfill a request for block receipts. - fn block_receipts( - &self, - req: request::CompleteReceiptsRequest, - ) -> Option; - - /// Get an account proof. - fn account_proof( - &self, - req: request::CompleteAccountRequest, - ) -> Option; - - /// Get a storage proof. - fn storage_proof( - &self, - req: request::CompleteStorageRequest, - ) -> Option; - - /// Provide contract code for the specified (block_hash, code_hash) pair. - fn contract_code(&self, req: request::CompleteCodeRequest) -> Option; - - /// Provide a header proof from a given Canonical Hash Trie as well as the - /// corresponding header. - fn header_proof( - &self, - req: request::CompleteHeaderProofRequest, - ) -> Option; - - /// Provide pending transactions. - fn transactions_to_propagate(&self) -> Vec; - - /// Provide a proof-of-execution for the given transaction proof request. - /// Returns a vector of all state items necessary to execute the transaction. - fn transaction_proof( - &self, - req: request::CompleteExecutionRequest, - ) -> Option; - - /// Provide epoch signal data at given block hash. This should be just the - fn epoch_signal(&self, req: request::CompleteSignalRequest) -> Option; -} - -// Implementation of a light client data provider for a client. -impl Provider for T { - fn chain_info(&self) -> BlockChainInfo { - ChainInfo::chain_info(self) - } - - fn reorg_depth(&self, a: &H256, b: &H256) -> Option { - self.tree_route(a, b).map(|route| route.index as u64) - } - - fn earliest_state(&self) -> Option { - Some(self.pruning_info().earliest_state) - } - - fn block_header(&self, id: BlockId) -> Option { - ClientBlockInfo::block_header(self, id) - } - - fn transaction_index( - &self, - req: request::CompleteTransactionIndexRequest, - ) -> Option { - use common_types::ids::TransactionId; - - self.transaction_receipt(TransactionId::Hash(req.hash)) - .map(|receipt| request::TransactionIndexResponse { - num: receipt.block_number, - hash: receipt.block_hash, - index: receipt.transaction_index as u64, - }) - } - - fn block_body(&self, req: request::CompleteBodyRequest) -> Option { - BlockChainClient::block_body(self, BlockId::Hash(req.hash)) - .map(|body| ::request::BodyResponse { body }) - } - - fn block_receipts( - &self, - req: request::CompleteReceiptsRequest, - ) -> Option { - BlockChainClient::block_receipts(self, &req.hash).map(|x| ::request::ReceiptsResponse { - receipts: x.receipts, - }) - } - - fn account_proof( - &self, - req: request::CompleteAccountRequest, - ) -> Option { - self.prove_account(req.address_hash, BlockId::Hash(req.block_hash)) - .map(|(proof, acc)| ::request::AccountResponse { - proof, - nonce: acc.nonce, - balance: acc.balance, - code_hash: acc.code_hash, - storage_root: acc.storage_root, - }) - } - - fn storage_proof( - &self, - req: request::CompleteStorageRequest, - ) -> Option { - self.prove_storage( - req.address_hash, - req.key_hash, - BlockId::Hash(req.block_hash), - ) - .map(|(proof, item)| ::request::StorageResponse { proof, value: item }) - } - - fn contract_code(&self, req: request::CompleteCodeRequest) -> Option { - self.state_data(&req.code_hash) - .map(|code| ::request::CodeResponse { code }) - } - - fn header_proof( - &self, - req: request::CompleteHeaderProofRequest, - ) -> Option { - let cht_number = match cht::block_to_cht_number(req.num) { - Some(cht_num) => cht_num, - None => { - debug!(target: "pip_provider", "Requested CHT proof with invalid block number"); - return None; - } - }; - - let mut needed = None; - - // build the CHT, caching the requested header as we pass through it. - let cht = { - let block_info = |id| { - let hdr = self.block_header(id); - let td = self.block_total_difficulty(id); - - match (hdr, td) { - (Some(hdr), Some(td)) => { - let info = BlockInfo { - hash: hdr.hash(), - parent_hash: hdr.parent_hash(), - total_difficulty: td, - }; - - if hdr.number() == req.num { - needed = Some((hdr, td)); - } - - Some(info) - } - _ => None, - } - }; - - match cht::build(cht_number, block_info) { - Some(cht) => cht, - None => return None, // incomplete CHT. - } - }; - - let (needed_hdr, needed_td) = - needed.expect("`needed` always set in loop, number checked before; qed"); - - // prove our result. - match cht.prove(req.num, 0) { - Ok(Some(proof)) => Some(::request::HeaderProofResponse { - proof, - hash: needed_hdr.hash(), - td: needed_td, - }), - Ok(None) => None, - Err(e) => { - debug!(target: "pip_provider", "Error looking up number in freshly-created CHT: {}", e); - None - } - } - } - - fn transaction_proof( - &self, - req: request::CompleteExecutionRequest, - ) -> Option { - use common_types::transaction::Transaction; - - let id = BlockId::Hash(req.block_hash); - let nonce = match self.nonce(&req.from, id) { - Some(nonce) => nonce, - None => return None, - }; - let transaction = Transaction { - nonce, - gas: req.gas, - gas_price: req.gas_price, - action: req.action, - value: req.value, - data: req.data, - } - .fake_sign(req.from); - - self.prove_transaction(transaction, id) - .map(|(_, proof)| ::request::ExecutionResponse { items: proof }) - } - - fn transactions_to_propagate(&self) -> Vec { - BlockChainClient::transactions_to_propagate(self) - .into_iter() - .map(|tx| tx.pending().clone()) - .collect() - } - - fn epoch_signal(&self, req: request::CompleteSignalRequest) -> Option { - self.epoch_signal(req.block_hash) - .map(|signal| request::SignalResponse { signal }) - } -} - -/// The light client "provider" implementation. This wraps a `LightClient` and -/// a light transaction queue. -pub struct LightProvider { - client: Arc, - txqueue: Arc>, -} - -impl LightProvider { - /// Create a new `LightProvider` from the given client and transaction queue. - pub fn new(client: Arc, txqueue: Arc>) -> Self { - LightProvider { client, txqueue } - } -} - -// TODO: draw from cache (shared between this and the RPC layer) -impl Provider for LightProvider { - fn chain_info(&self) -> BlockChainInfo { - self.client.as_light_client().chain_info() - } - - fn reorg_depth(&self, _a: &H256, _b: &H256) -> Option { - None - } - - fn earliest_state(&self) -> Option { - None - } - - fn block_header(&self, id: BlockId) -> Option { - self.client.as_light_client().block_header(id) - } - - fn transaction_index( - &self, - _req: request::CompleteTransactionIndexRequest, - ) -> Option { - None - } - - fn block_body(&self, _req: request::CompleteBodyRequest) -> Option { - None - } - - fn block_receipts( - &self, - _req: request::CompleteReceiptsRequest, - ) -> Option { - None - } - - fn account_proof( - &self, - _req: request::CompleteAccountRequest, - ) -> Option { - None - } - - fn storage_proof( - &self, - _req: request::CompleteStorageRequest, - ) -> Option { - None - } - - fn contract_code(&self, _req: request::CompleteCodeRequest) -> Option { - None - } - - fn header_proof( - &self, - _req: request::CompleteHeaderProofRequest, - ) -> Option { - None - } - - fn transaction_proof( - &self, - _req: request::CompleteExecutionRequest, - ) -> Option { - None - } - - fn epoch_signal( - &self, - _req: request::CompleteSignalRequest, - ) -> Option { - None - } - - fn transactions_to_propagate(&self) -> Vec { - let chain_info = self.chain_info(); - self.txqueue.read().ready_transactions( - chain_info.best_block_number, - chain_info.best_block_timestamp, - ) - } -} - -impl AsLightClient for LightProvider { - type Client = L::Client; - - fn as_light_client(&self) -> &L::Client { - self.client.as_light_client() - } -} - -#[cfg(test)] -mod tests { - use super::Provider; - use ethcore::client::{EachBlockWith, TestBlockChainClient}; - - #[test] - fn cht_proof() { - let client = TestBlockChainClient::new(); - client.add_blocks(2000, EachBlockWith::Nothing); - - let req = ::request::CompleteHeaderProofRequest { num: 1500 }; - - assert!(client.header_proof(req.clone()).is_none()); - - client.add_blocks(48, EachBlockWith::Nothing); - - assert!(client.header_proof(req.clone()).is_some()); - } -} diff --git a/ethcore/light/src/transaction_queue.rs b/ethcore/light/src/transaction_queue.rs deleted file mode 100644 index 579169396..000000000 --- a/ethcore/light/src/transaction_queue.rs +++ /dev/null @@ -1,597 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Light Transaction Queue. -//! -//! Manages local transactions, -//! but stores all local transactions, removing only on invalidated nonce. -//! -//! Under the assumption that light nodes will have a relatively limited set of -//! accounts for which they create transactions, this queue is structured in an -//! address-wise manner. - -use std::{ - collections::{hash_map::Entry, BTreeMap, HashMap}, - fmt, -}; - -use common_types::transaction::{self, Condition, PendingTransaction, SignedTransaction}; -use ethereum_types::{Address, H256, U256}; -use fastmap::H256FastMap; - -// Knowledge of an account's current nonce. -#[derive(Debug, Clone, PartialEq, Eq)] -enum CurrentNonce { - // Assumed current nonce. - Assumed(U256), - // Known current nonce. - Known(U256), -} - -impl CurrentNonce { - // whether this nonce is assumed - fn is_assumed(&self) -> bool { - match *self { - CurrentNonce::Assumed(_) => true, - CurrentNonce::Known(_) => false, - } - } - - // whether this nonce is known for certain from an external source. - fn is_known(&self) -> bool { - !self.is_assumed() - } - - // the current nonce's value. - fn value(&self) -> &U256 { - match *self { - CurrentNonce::Assumed(ref val) => val, - CurrentNonce::Known(ref val) => val, - } - } -} - -#[derive(Debug, Clone, PartialEq, Eq)] -struct TransactionInfo { - hash: H256, - nonce: U256, - condition: Option, -} - -impl<'a> From<&'a PendingTransaction> for TransactionInfo { - fn from(tx: &'a PendingTransaction) -> Self { - TransactionInfo { - hash: tx.hash(), - nonce: tx.nonce, - condition: tx.condition.clone(), - } - } -} - -// transactions associated with a specific account. -#[derive(Debug, Clone, PartialEq, Eq)] -struct AccountTransactions { - // believed current nonce (gotten from initial given TX or `cull` calls). - cur_nonce: CurrentNonce, - current: Vec, // ordered "current" transactions (cur_nonce onwards) - future: BTreeMap, // "future" transactions. -} - -impl AccountTransactions { - fn is_empty(&self) -> bool { - self.current.is_empty() && self.future.is_empty() - } - - fn next_nonce(&self) -> U256 { - self.current - .last() - .map(|last| last.nonce.saturating_add(1.into())) - .unwrap_or_else(|| *self.cur_nonce.value()) - } - - // attempt to move transactions from the future queue into the current queue. - fn adjust_future(&mut self) -> Vec { - let mut promoted = Vec::new(); - let mut next_nonce = self.next_nonce(); - - while let Some(tx) = self.future.remove(&next_nonce) { - promoted.push(tx.hash); - self.current.push(tx); - next_nonce = next_nonce.saturating_add(1.into()); - } - - promoted - } -} - -/// Transaction import result. -pub enum ImportDestination { - /// Transaction has been imported to the current queue. - /// - /// It's going to be propagated to peers. - Current, - /// Transaction has been imported to future queue. - /// - /// It means it won't be propagated until the gap is filled. - Future, -} - -type Listener = Box; - -/// Light transaction queue. See module docs for more details. -#[derive(Default)] -pub struct TransactionQueue { - by_account: HashMap, - by_hash: H256FastMap, - listeners: Vec, -} - -impl fmt::Debug for TransactionQueue { - fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { - fmt.debug_struct("TransactionQueue") - .field("by_account", &self.by_account) - .field("by_hash", &self.by_hash) - .field("listeners", &self.listeners.len()) - .finish() - } -} - -impl TransactionQueue { - /// Import a pending transaction to be queued. - pub fn import( - &mut self, - tx: PendingTransaction, - ) -> Result { - let sender = tx.sender(); - let hash = tx.hash(); - let nonce = tx.nonce; - let tx_info = TransactionInfo::from(&tx); - - if self.by_hash.contains_key(&hash) { - return Err(transaction::Error::AlreadyImported); - } - - let (res, promoted) = match self.by_account.entry(sender) { - Entry::Vacant(entry) => { - entry.insert(AccountTransactions { - cur_nonce: CurrentNonce::Assumed(nonce), - current: vec![tx_info], - future: BTreeMap::new(), - }); - - (ImportDestination::Current, vec![hash]) - } - Entry::Occupied(mut entry) => { - let acct_txs = entry.get_mut(); - if nonce < *acct_txs.cur_nonce.value() { - // don't accept txs from before known current nonce. - if acct_txs.cur_nonce.is_known() { - return Err(transaction::Error::Old); - } - - // lower our assumption until corrected later. - acct_txs.cur_nonce = CurrentNonce::Assumed(nonce); - } - - match acct_txs.current.binary_search_by(|x| x.nonce.cmp(&nonce)) { - Ok(idx) => { - trace!(target: "txqueue", "Replacing existing transaction from {} with nonce {}", - sender, nonce); - - let old = ::std::mem::replace(&mut acct_txs.current[idx], tx_info); - self.by_hash.remove(&old.hash); - - (ImportDestination::Current, vec![hash]) - } - Err(idx) => { - let cur_len = acct_txs.current.len(); - let incr_nonce = nonce + 1; - - // current is sorted with one tx per nonce, - // so if a tx with given nonce wasn't found that means it is either - // earlier in nonce than all other "current" transactions or later. - assert!(idx == 0 || idx == cur_len); - - if idx == 0 - && acct_txs - .current - .first() - .map_or(false, |f| f.nonce != incr_nonce) - { - let old_cur = ::std::mem::replace(&mut acct_txs.current, vec![tx_info]); - - trace!(target: "txqueue", "Moving {} transactions with nonce > {} to future", - old_cur.len(), incr_nonce); - - for future in old_cur { - let future_nonce = future.nonce; - acct_txs.future.insert(future_nonce, future); - } - - (ImportDestination::Current, vec![hash]) - } else if idx == cur_len - && acct_txs - .current - .last() - .map_or(false, |f| f.nonce + 1 != nonce) - { - trace!(target: "txqueue", "Queued future transaction for {}, nonce={}", sender, nonce); - let future_nonce = nonce; - acct_txs.future.insert(future_nonce, tx_info); - - (ImportDestination::Future, vec![]) - } else { - trace!(target: "txqueue", "Queued current transaction for {}, nonce={}", sender, nonce); - - // insert, then check if we've filled any gaps. - acct_txs.current.insert(idx, tx_info); - let mut promoted = acct_txs.adjust_future(); - promoted.insert(0, hash); - - (ImportDestination::Current, promoted) - } - } - } - } - }; - - self.by_hash.insert(hash, tx); - self.notify(&promoted); - Ok(res) - } - - /// Get pending transaction by hash. - pub fn transaction(&self, hash: &H256) -> Option { - self.by_hash.get(hash).map(|tx| (&**tx).clone()) - } - - /// Get the next nonce for a given address based on what's within the queue. - /// If the address has no queued transactions, then `None` will be returned - /// and the next nonce will have to be deduced via other means. - pub fn next_nonce(&self, address: &Address) -> Option { - self.by_account - .get(address) - .map(AccountTransactions::next_nonce) - } - - /// Get all transactions ready to be propagated. - /// `best_block_number` and `best_block_timestamp` are used to filter out conditionally - /// propagated transactions. - /// - /// Returned transactions are batched by sender, in order of ascending nonce. - pub fn ready_transactions( - &self, - best_block_number: u64, - best_block_timestamp: u64, - ) -> Vec { - self.by_account.values() - .flat_map(|acct_txs| { - acct_txs.current.iter().take_while(|tx| match tx.condition { - None => true, - Some(Condition::Number(blk_num)) => blk_num <= best_block_number, - Some(Condition::Timestamp(time)) => time <= best_block_timestamp, - }).map(|info| info.hash) - }) - .filter_map(|hash| match self.by_hash.get(&hash) { - Some(tx) => Some(tx.clone()), - None => { - warn!(target: "txqueue", "Inconsistency detected between `by_hash` and `by_account`: {} not stored.", - hash); - None - } - }) - .collect() - } - - /// Get all transactions not ready to be propagated. - /// `best_block_number` and `best_block_timestamp` are used to filter out conditionally - /// propagated transactions. - /// - /// Returned transactions are batched by sender, in order of ascending nonce. - pub fn future_transactions( - &self, - best_block_number: u64, - best_block_timestamp: u64, - ) -> Vec { - self.by_account.values() - .flat_map(|acct_txs| { - acct_txs.current.iter().skip_while(|tx| match tx.condition { - None => true, - Some(Condition::Number(blk_num)) => blk_num <= best_block_number, - Some(Condition::Timestamp(time)) => time <= best_block_timestamp, - }).chain(acct_txs.future.values()).map(|info| info.hash) - }) - .filter_map(|hash| match self.by_hash.get(&hash) { - Some(tx) => Some(tx.clone()), - None => { - warn!(target: "txqueue", "Inconsistency detected between `by_hash` and `by_account`: {} not stored.", - hash); - None - } - }) - .collect() - } - - /// Addresses for which we store transactions. - pub fn queued_senders(&self) -> Vec
{ - self.by_account.keys().cloned().collect() - } - - /// Cull out all transactions by the given address which are invalidated by the given nonce. - pub fn cull(&mut self, address: Address, cur_nonce: U256) { - let mut removed_hashes = vec![]; - if let Entry::Occupied(mut entry) = self.by_account.entry(address) { - { - let acct_txs = entry.get_mut(); - acct_txs.cur_nonce = CurrentNonce::Known(cur_nonce); - - // cull old "future" keys. - let old_future: Vec<_> = acct_txs - .future - .keys() - .take_while(|&&k| k < cur_nonce) - .cloned() - .collect(); - - for old in old_future { - let hash = acct_txs - .future - .remove(&old) - .expect("key extracted from keys iterator; known to exist; qed") - .hash; - removed_hashes.push(hash); - } - - // then cull from "current". - let valid_pos = acct_txs.current.iter().position(|tx| tx.nonce >= cur_nonce); - match valid_pos { - None => removed_hashes.extend(acct_txs.current.drain(..).map(|tx| tx.hash)), - Some(valid) => { - removed_hashes.extend(acct_txs.current.drain(..valid).map(|tx| tx.hash)) - } - } - - // now try and move stuff out of future into current. - acct_txs.adjust_future(); - } - - if entry.get_mut().is_empty() { - trace!(target: "txqueue", "No more queued transactions for {} after nonce {}", - address, cur_nonce); - entry.remove(); - } - } - - trace!(target: "txqueue", "Culled {} old transactions from sender {} (nonce={})", - removed_hashes.len(), address, cur_nonce); - - for hash in removed_hashes { - self.by_hash.remove(&hash); - } - } - - /// Get a transaction by hash. - pub fn get(&self, hash: &H256) -> Option<&PendingTransaction> { - self.by_hash.get(&hash) - } - - /// Add a transaction queue listener. - pub fn add_listener(&mut self, f: Listener) { - self.listeners.push(f); - } - - /// Notifies all listeners about new pending transaction. - fn notify(&self, hashes: &[H256]) { - for listener in &self.listeners { - listener(hashes) - } - } -} - -#[cfg(test)] -mod tests { - use super::TransactionQueue; - use common_types::transaction::{Condition, PendingTransaction, Transaction}; - use ethereum_types::Address; - - #[test] - fn queued_senders() { - let sender = Address::default(); - let mut txq = TransactionQueue::default(); - let tx = Transaction::default().fake_sign(sender); - - txq.import(tx.into()).unwrap(); - - assert_eq!(txq.queued_senders(), vec![sender]); - - txq.cull(sender, 1.into()); - - assert_eq!(txq.queued_senders(), vec![]); - assert!(txq.by_hash.is_empty()); - } - - #[test] - fn next_nonce() { - let sender = Address::default(); - let mut txq = TransactionQueue::default(); - - for i in (0..5).chain(10..15) { - let mut tx = Transaction::default(); - tx.nonce = i.into(); - - let tx = tx.fake_sign(sender); - - txq.import(tx.into()).unwrap(); - } - - // current: 0..5, future: 10..15 - assert_eq!(txq.ready_transactions(0, 0).len(), 5); - assert_eq!(txq.next_nonce(&sender).unwrap(), 5.into()); - - txq.cull(sender, 8.into()); - - // current: empty, future: 10..15 - assert_eq!(txq.ready_transactions(0, 0).len(), 0); - assert_eq!(txq.next_nonce(&sender).unwrap(), 8.into()); - - txq.cull(sender, 10.into()); - - // current: 10..15, future: empty - assert_eq!(txq.ready_transactions(0, 0).len(), 5); - assert_eq!(txq.next_nonce(&sender).unwrap(), 15.into()); - } - - #[test] - fn current_to_future() { - let sender = Address::default(); - let mut txq = TransactionQueue::default(); - - for i in 5..10 { - let mut tx = Transaction::default(); - tx.nonce = i.into(); - - let tx = tx.fake_sign(sender); - - txq.import(tx.into()).unwrap(); - } - - assert_eq!(txq.ready_transactions(0, 0).len(), 5); - assert_eq!(txq.next_nonce(&sender).unwrap(), 10.into()); - - for i in 0..3 { - let mut tx = Transaction::default(); - tx.nonce = i.into(); - - let tx = tx.fake_sign(sender); - - txq.import(tx.into()).unwrap(); - } - - assert_eq!(txq.ready_transactions(0, 0).len(), 3); - assert_eq!(txq.next_nonce(&sender).unwrap(), 3.into()); - - for i in 3..5 { - let mut tx = Transaction::default(); - tx.nonce = i.into(); - - let tx = tx.fake_sign(sender); - - txq.import(tx.into()).unwrap(); - } - - assert_eq!(txq.ready_transactions(0, 0).len(), 10); - assert_eq!(txq.next_nonce(&sender).unwrap(), 10.into()); - } - - #[test] - fn conditional() { - let mut txq = TransactionQueue::default(); - let sender = Address::default(); - - for i in 0..5 { - let mut tx = Transaction::default(); - tx.nonce = i.into(); - let tx = tx.fake_sign(sender); - - txq.import(match i { - 3 => PendingTransaction::new(tx, Some(Condition::Number(100))), - 4 => PendingTransaction::new(tx, Some(Condition::Timestamp(1234))), - _ => tx.into(), - }) - .unwrap(); - } - - assert_eq!(txq.ready_transactions(0, 0).len(), 3); - assert_eq!(txq.ready_transactions(0, 1234).len(), 3); - assert_eq!(txq.ready_transactions(100, 0).len(), 4); - assert_eq!(txq.ready_transactions(100, 1234).len(), 5); - } - - #[test] - fn cull_from_future() { - let sender = Address::default(); - let mut txq = TransactionQueue::default(); - - for i in (0..1).chain(3..10) { - let mut tx = Transaction::default(); - tx.nonce = i.into(); - - let tx = tx.fake_sign(sender); - - txq.import(tx.into()).unwrap(); - } - - txq.cull(sender, 6.into()); - - assert_eq!(txq.ready_transactions(0, 0).len(), 4); - assert_eq!(txq.next_nonce(&sender).unwrap(), 10.into()); - } - - #[test] - fn import_old() { - let sender = Address::default(); - let mut txq = TransactionQueue::default(); - - let mut tx_a = Transaction::default(); - tx_a.nonce = 3.into(); - - let mut tx_b = Transaction::default(); - tx_b.nonce = 2.into(); - - txq.import(tx_a.fake_sign(sender).into()).unwrap(); - txq.cull(sender, 3.into()); - - assert!(txq.import(tx_b.fake_sign(sender).into()).is_err()) - } - - #[test] - fn replace_is_removed() { - let sender = Address::default(); - let mut txq = TransactionQueue::default(); - - let tx_b: PendingTransaction = Transaction::default().fake_sign(sender).into(); - let tx_a: PendingTransaction = { - let mut tx_a = Transaction::default(); - tx_a.gas_price = tx_b.gas_price + 1; - tx_a.fake_sign(sender).into() - }; - - let hash = tx_a.hash(); - - txq.import(tx_a).unwrap(); - txq.import(tx_b).unwrap(); - - assert!(txq.transaction(&hash).is_none()); - } - - #[test] - fn future_transactions() { - let sender = Address::default(); - let mut txq = TransactionQueue::default(); - - for i in (0..1).chain(3..10) { - let mut tx = Transaction::default(); - tx.nonce = i.into(); - - let tx = tx.fake_sign(sender); - - txq.import(tx.into()).unwrap(); - } - - assert_eq!(txq.future_transactions(0, 0).len(), 7); - assert_eq!(txq.next_nonce(&sender).unwrap(), 1.into()); - } -} diff --git a/ethcore/light/src/types/mod.rs b/ethcore/light/src/types/mod.rs deleted file mode 100644 index 702654b7f..000000000 --- a/ethcore/light/src/types/mod.rs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -pub mod request; diff --git a/ethcore/light/src/types/request/batch.rs b/ethcore/light/src/types/request/batch.rs deleted file mode 100644 index 739d67a2a..000000000 --- a/ethcore/light/src/types/request/batch.rs +++ /dev/null @@ -1,375 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Request chain builder utility. -//! Push requests with `push`. Back-references and data required to verify responses must be -//! supplied as well. - -use request::{IncompleteRequest, NoSuchOutput, Output, OutputKind, ResponseError, ResponseLike}; -use std::{ - collections::HashMap, - ops::{Deref, DerefMut}, -}; - -/// Build chained requests. Push them onto the series with `push`, -/// and produce a `Batch` object with `build`. Outputs are checked for consistency. -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct Builder { - output_kinds: HashMap<(usize, usize), OutputKind>, - requests: Vec, -} - -impl Default for Builder { - fn default() -> Self { - Builder { - output_kinds: HashMap::new(), - requests: Vec::new(), - } - } -} - -impl Builder { - /// Attempt to push a request onto the request chain. Fails if the request - /// references a non-existent output of a prior request. - pub fn push(&mut self, request: T) -> Result<(), NoSuchOutput> { - request.check_outputs(|req, idx, kind| match self.output_kinds.get(&(req, idx)) { - Some(k) if k == &kind => Ok(()), - _ => Err(NoSuchOutput), - })?; - let req_idx = self.requests.len(); - request.note_outputs(|idx, kind| { - self.output_kinds.insert((req_idx, idx), kind); - }); - self.requests.push(request); - Ok(()) - } - - /// Get a reference to the output kinds map. - pub fn output_kinds(&self) -> &HashMap<(usize, usize), OutputKind> { - &self.output_kinds - } - - /// Convert this into a "batch" object. - pub fn build(self) -> Batch { - Batch { - outputs: HashMap::new(), - requests: self.requests, - answered: 0, - } - } -} - -/// Requests pending responses. -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct Batch { - outputs: HashMap<(usize, usize), Output>, - requests: Vec, - answered: usize, -} - -impl Batch { - /// Get access to the underlying slice of requests. - // TODO: unimplemented -> Vec, // do we _have to_ allocate? - pub fn requests(&self) -> &[T] { - &self.requests - } - - /// Get the number of answered requests. - pub fn num_answered(&self) -> usize { - self.answered - } - - /// Whether the batch is complete. - pub fn is_complete(&self) -> bool { - self.answered == self.requests.len() - } - - /// Map requests from one type into another. - pub fn map_requests(self, f: F) -> Batch - where - F: FnMut(T) -> U, - U: IncompleteRequest, - { - Batch { - outputs: self.outputs, - requests: self.requests.into_iter().map(f).collect(), - answered: self.answered, - } - } -} - -impl Batch { - /// Get the next request as a filled request. Returns `None` when all requests answered. - pub fn next_complete(&self) -> Option { - if self.is_complete() { - None - } else { - Some( - self.requests[self.answered] - .clone() - .complete() - .expect("All outputs checked as invariant of `Batch` object; qed"), - ) - } - } - - /// Sweep through all unanswered requests, filling them as necessary. - pub fn fill_unanswered(&mut self) { - let outputs = &mut self.outputs; - - for req in self.requests.iter_mut().skip(self.answered) { - req.fill(|req_idx, out_idx| { - outputs - .get(&(req_idx, out_idx)) - .cloned() - .ok_or(NoSuchOutput) - }) - } - } - - /// Supply a response, asserting its correctness. - /// Fill outputs based upon it. - pub fn supply_response_unchecked(&mut self, response: &R) { - if self.is_complete() { - return; - } - - let outputs = &mut self.outputs; - let idx = self.answered; - response.fill_outputs(|out_idx, output| { - // we don't need to check output kinds here because all back-references - // are validated in the builder. - // TODO: optimization for only storing outputs we "care about"? - outputs.insert((idx, out_idx), output); - }); - - self.answered += 1; - - // fill as much of the next request as we can. - if let Some(ref mut req) = self.requests.get_mut(self.answered) { - req.fill(|req_idx, out_idx| { - outputs - .get(&(req_idx, out_idx)) - .cloned() - .ok_or(NoSuchOutput) - }) - } - } -} - -impl Batch { - /// Supply a response for the next request. - /// Fails on: wrong request kind, all requests answered already. - pub fn supply_response( - &mut self, - env: &T::Environment, - response: &T::Response, - ) -> Result> { - let idx = self.answered; - - // check validity. - if idx == self.requests.len() { - return Err(ResponseError::Unexpected); - } - let completed = self.next_complete().expect( - "only fails when all requests have been answered; this just checked against; qed", - ); - - let extracted = self.requests[idx] - .check_response(&completed, env, response) - .map_err(ResponseError::Validity)?; - - self.supply_response_unchecked(response); - Ok(extracted) - } -} - -impl Batch { - /// For each request, produce a response. - /// The responses vector produced goes up to the point where the responder - /// first returns `None`, an invalid response, or until all requests have been responded to. - pub fn respond_to_all(mut self, responder: F) -> Vec - where - F: Fn(super::CompleteRequest) -> Option, - { - let mut responses = Vec::new(); - - while let Some(response) = self.next_complete().and_then(&responder) { - match self.supply_response(&(), &response) { - Ok(()) => responses.push(response), - Err(e) => { - debug!(target: "pip", "produced bad response to request: {:?}", e); - return responses; - } - } - } - - responses - } -} - -impl Deref for Batch { - type Target = [T]; - - fn deref(&self) -> &[T] { - &self.requests[..] - } -} - -impl DerefMut for Batch { - fn deref_mut(&mut self) -> &mut [T] { - &mut self.requests[..] - } -} - -#[cfg(test)] -mod tests { - use super::Builder; - use ethereum_types::H256; - use request::*; - - #[test] - fn all_scalar() { - let mut builder = Builder::default(); - builder - .push(Request::HeaderProof(IncompleteHeaderProofRequest { - num: 100.into(), - })) - .unwrap(); - builder - .push(Request::Receipts(IncompleteReceiptsRequest { - hash: H256::default().into(), - })) - .unwrap(); - } - - #[test] - #[should_panic] - fn missing_backref() { - let mut builder = Builder::default(); - builder - .push(Request::HeaderProof(IncompleteHeaderProofRequest { - num: Field::BackReference(100, 3), - })) - .unwrap(); - } - - #[test] - #[should_panic] - fn wrong_kind() { - let mut builder = Builder::default(); - assert!(builder - .push(Request::HeaderProof(IncompleteHeaderProofRequest { - num: 100.into(), - })) - .is_ok()); - builder - .push(Request::HeaderProof(IncompleteHeaderProofRequest { - num: Field::BackReference(0, 0), - })) - .unwrap(); - } - - #[test] - fn good_backreference() { - let mut builder = Builder::default(); - builder - .push(Request::HeaderProof(IncompleteHeaderProofRequest { - num: 100.into(), // header proof puts hash at output 0. - })) - .unwrap(); - builder - .push(Request::Receipts(IncompleteReceiptsRequest { - hash: Field::BackReference(0, 0), - })) - .unwrap(); - } - - #[test] - fn batch_tx_index_backreference() { - let mut builder = Builder::default(); - builder - .push(Request::HeaderProof(IncompleteHeaderProofRequest { - num: 100.into(), // header proof puts hash at output 0. - })) - .unwrap(); - builder - .push(Request::TransactionIndex( - IncompleteTransactionIndexRequest { - hash: Field::BackReference(0, 0), - }, - )) - .unwrap(); - - let mut batch = builder.build(); - batch.requests[1].fill(|_req_idx, _out_idx| Ok(Output::Hash(42.into()))); - - assert!(batch.next_complete().is_some()); - batch.answered += 1; - assert!(batch.next_complete().is_some()); - } - - #[test] - fn batch_tx_index_backreference_public_api() { - let mut builder = Builder::default(); - builder - .push(Request::HeaderProof(IncompleteHeaderProofRequest { - num: 100.into(), // header proof puts hash at output 0. - })) - .unwrap(); - builder - .push(Request::TransactionIndex( - IncompleteTransactionIndexRequest { - hash: Field::BackReference(0, 0), - }, - )) - .unwrap(); - - let mut batch = builder.build(); - - assert!(batch.next_complete().is_some()); - let hdr_proof_res = header_proof::Response { - proof: vec![], - hash: 12.into(), - td: 21.into(), - }; - batch.supply_response_unchecked(&hdr_proof_res); - - assert!(batch.next_complete().is_some()); - } - - #[test] - fn batch_receipts_backreference() { - let mut builder = Builder::default(); - builder - .push(Request::HeaderProof(IncompleteHeaderProofRequest { - num: 100.into(), // header proof puts hash at output 0. - })) - .unwrap(); - builder - .push(Request::Receipts(IncompleteReceiptsRequest { - hash: Field::BackReference(0, 0), - })) - .unwrap(); - - let mut batch = builder.build(); - batch.requests[1].fill(|_req_idx, _out_idx| Ok(Output::Hash(42.into()))); - - assert!(batch.next_complete().is_some()); - batch.answered += 1; - assert!(batch.next_complete().is_some()); - } -} diff --git a/ethcore/light/src/types/request/mod.rs b/ethcore/light/src/types/request/mod.rs deleted file mode 100644 index 2aa7de027..000000000 --- a/ethcore/light/src/types/request/mod.rs +++ /dev/null @@ -1,2135 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Light protocol request types. - -use ethereum_types::H256; -use rlp::{Decodable, DecoderError, Encodable, Rlp, RlpStream}; - -mod batch; - -// re-exports of request types. -pub use self::{ - account::{ - Complete as CompleteAccountRequest, Incomplete as IncompleteAccountRequest, - Response as AccountResponse, - }, - block_body::{ - Complete as CompleteBodyRequest, Incomplete as IncompleteBodyRequest, - Response as BodyResponse, - }, - block_receipts::{ - Complete as CompleteReceiptsRequest, Incomplete as IncompleteReceiptsRequest, - Response as ReceiptsResponse, - }, - contract_code::{ - Complete as CompleteCodeRequest, Incomplete as IncompleteCodeRequest, - Response as CodeResponse, - }, - epoch_signal::{ - Complete as CompleteSignalRequest, Incomplete as IncompleteSignalRequest, - Response as SignalResponse, - }, - execution::{ - Complete as CompleteExecutionRequest, Incomplete as IncompleteExecutionRequest, - Response as ExecutionResponse, - }, - header::{ - Complete as CompleteHeadersRequest, Incomplete as IncompleteHeadersRequest, - Response as HeadersResponse, - }, - header_proof::{ - Complete as CompleteHeaderProofRequest, Incomplete as IncompleteHeaderProofRequest, - Response as HeaderProofResponse, - }, - storage::{ - Complete as CompleteStorageRequest, Incomplete as IncompleteStorageRequest, - Response as StorageResponse, - }, - transaction_index::{ - Complete as CompleteTransactionIndexRequest, - Incomplete as IncompleteTransactionIndexRequest, Response as TransactionIndexResponse, - }, -}; - -pub use self::batch::{Batch, Builder}; - -/// Error indicating a reference to a non-existent or wrongly-typed output. -#[derive(Debug, Clone, Copy, PartialEq, Eq)] -pub struct NoSuchOutput; - -/// Wrong kind of response corresponding to request. -#[derive(Debug, Clone, Copy, PartialEq, Eq)] -pub struct WrongKind; - -/// Error on processing a response. -#[derive(Debug, Clone, PartialEq, Eq)] -pub enum ResponseError { - /// Error in validity. - Validity(T), - /// No responses expected. - Unexpected, -} - -/// An input to a request. -#[derive(Debug, Clone, Copy, PartialEq, Eq)] -pub enum Field { - /// A pre-specified input. - Scalar(T), - /// An input which can be resolved later on. - /// (Request index, output index) - BackReference(usize, usize), -} - -impl Field { - /// Helper for creating a new back-reference field. - pub fn back_ref(idx: usize, req: usize) -> Self { - Field::BackReference(idx, req) - } - - /// map a scalar into some other item. - pub fn map(self, f: F) -> Field - where - F: FnOnce(T) -> U, - { - match self { - Field::Scalar(x) => Field::Scalar(f(x)), - Field::BackReference(req, idx) => Field::BackReference(req, idx), - } - } - - /// Attempt to get a reference to the inner scalar. - pub fn as_ref(&self) -> Option<&T> { - match *self { - Field::Scalar(ref x) => Some(x), - Field::BackReference(_, _) => None, - } - } - - // attempt conversion into scalar value. - fn into_scalar(self) -> Result { - match self { - Field::Scalar(val) => Ok(val), - _ => Err(NoSuchOutput), - } - } - - fn adjust_req(&mut self, mut mapping: F) - where - F: FnMut(usize) -> usize, - { - if let Field::BackReference(ref mut req_idx, _) = *self { - *req_idx = mapping(*req_idx) - } - } -} - -impl From for Field { - fn from(val: T) -> Self { - Field::Scalar(val) - } -} - -impl Decodable for Field { - fn decode(rlp: &Rlp) -> Result { - match rlp.val_at::(0)? { - 0 => Ok(Field::Scalar(rlp.val_at::(1)?)), - 1 => Ok({ - let inner_rlp = rlp.at(1)?; - Field::BackReference(inner_rlp.val_at(0)?, inner_rlp.val_at(1)?) - }), - _ => Err(DecoderError::Custom("Unknown discriminant for PIP field.")), - } - } -} - -impl Encodable for Field { - fn rlp_append(&self, s: &mut RlpStream) { - s.begin_list(2); - match *self { - Field::Scalar(ref data) => { - s.append(&0u8).append(data); - } - Field::BackReference(ref req, ref idx) => { - s.append(&1u8).begin_list(2).append(req).append(idx); - } - } - } -} - -/// Request outputs which can be reused as inputs. -#[derive(Debug, Clone, PartialEq, Eq)] -pub enum Output { - /// A 32-byte hash output. - Hash(H256), - /// An unsigned-integer output. - Number(u64), -} - -impl Output { - /// Get the output kind. - pub fn kind(&self) -> OutputKind { - match *self { - Output::Hash(_) => OutputKind::Hash, - Output::Number(_) => OutputKind::Number, - } - } -} - -/// Response output kinds which can be used as back-references. -#[derive(Debug, Clone, PartialEq, Eq)] -pub enum OutputKind { - /// A 32-byte hash output. - Hash, - /// An unsigned-integer output. - Number, -} - -/// Either a hash or a number. -#[derive(Debug, Clone, PartialEq, Eq)] -pub enum HashOrNumber { - /// Block hash variant. - Hash(H256), - /// Block number variant. - Number(u64), -} - -impl From for HashOrNumber { - fn from(hash: H256) -> Self { - HashOrNumber::Hash(hash) - } -} - -impl From for HashOrNumber { - fn from(num: u64) -> Self { - HashOrNumber::Number(num) - } -} - -impl Decodable for HashOrNumber { - fn decode(rlp: &Rlp) -> Result { - rlp.as_val::() - .map(HashOrNumber::Hash) - .or_else(|_| rlp.as_val().map(HashOrNumber::Number)) - } -} - -impl Encodable for HashOrNumber { - fn rlp_append(&self, s: &mut RlpStream) { - match *self { - HashOrNumber::Hash(ref hash) => s.append(hash), - HashOrNumber::Number(ref num) => s.append(num), - }; - } -} - -/// Type alias for "network requests". -pub type NetworkRequests = Batch; - -/// All request types, as they're sent over the network. -/// They may be incomplete, with back-references to outputs -/// of prior requests. -#[derive(Debug, Clone, PartialEq, Eq)] -pub enum Request { - /// A request for block headers. - Headers(IncompleteHeadersRequest), - /// A request for a header proof (from a CHT) - HeaderProof(IncompleteHeaderProofRequest), - /// A request for a transaction index by hash. - TransactionIndex(IncompleteTransactionIndexRequest), - /// A request for a block's receipts. - Receipts(IncompleteReceiptsRequest), - /// A request for a block body. - Body(IncompleteBodyRequest), - /// A request for a merkle proof of an account. - Account(IncompleteAccountRequest), - /// A request for a merkle proof of contract storage. - Storage(IncompleteStorageRequest), - /// A request for contract code. - Code(IncompleteCodeRequest), - /// A request for proof of execution, - Execution(IncompleteExecutionRequest), - /// A request for an epoch signal. - Signal(IncompleteSignalRequest), -} - -/// All request types, in an answerable state. -#[derive(Debug, Clone, PartialEq, Eq)] -pub enum CompleteRequest { - /// A request for block headers. - Headers(CompleteHeadersRequest), - /// A request for a header proof (from a CHT) - HeaderProof(CompleteHeaderProofRequest), - /// A request for a transaction index by hash. - TransactionIndex(CompleteTransactionIndexRequest), - /// A request for a block's receipts. - Receipts(CompleteReceiptsRequest), - /// A request for a block body. - Body(CompleteBodyRequest), - /// A request for a merkle proof of an account. - Account(CompleteAccountRequest), - /// A request for a merkle proof of contract storage. - Storage(CompleteStorageRequest), - /// A request for contract code. - Code(CompleteCodeRequest), - /// A request for proof of execution, - Execution(CompleteExecutionRequest), - /// A request for an epoch signal. - Signal(CompleteSignalRequest), -} - -impl CompleteRequest { - /// Inspect the kind of this response. - pub fn kind(&self) -> Kind { - match *self { - CompleteRequest::Headers(_) => Kind::Headers, - CompleteRequest::HeaderProof(_) => Kind::HeaderProof, - CompleteRequest::TransactionIndex(_) => Kind::TransactionIndex, - CompleteRequest::Receipts(_) => Kind::Receipts, - CompleteRequest::Body(_) => Kind::Body, - CompleteRequest::Account(_) => Kind::Account, - CompleteRequest::Storage(_) => Kind::Storage, - CompleteRequest::Code(_) => Kind::Code, - CompleteRequest::Execution(_) => Kind::Execution, - CompleteRequest::Signal(_) => Kind::Signal, - } - } -} - -impl Request { - /// Get the request kind. - pub fn kind(&self) -> Kind { - match *self { - Request::Headers(_) => Kind::Headers, - Request::HeaderProof(_) => Kind::HeaderProof, - Request::TransactionIndex(_) => Kind::TransactionIndex, - Request::Receipts(_) => Kind::Receipts, - Request::Body(_) => Kind::Body, - Request::Account(_) => Kind::Account, - Request::Storage(_) => Kind::Storage, - Request::Code(_) => Kind::Code, - Request::Execution(_) => Kind::Execution, - Request::Signal(_) => Kind::Signal, - } - } -} - -impl Decodable for Request { - fn decode(rlp: &Rlp) -> Result { - match rlp.val_at::(0)? { - Kind::Headers => Ok(Request::Headers(rlp.val_at(1)?)), - Kind::HeaderProof => Ok(Request::HeaderProof(rlp.val_at(1)?)), - Kind::TransactionIndex => Ok(Request::TransactionIndex(rlp.val_at(1)?)), - Kind::Receipts => Ok(Request::Receipts(rlp.val_at(1)?)), - Kind::Body => Ok(Request::Body(rlp.val_at(1)?)), - Kind::Account => Ok(Request::Account(rlp.val_at(1)?)), - Kind::Storage => Ok(Request::Storage(rlp.val_at(1)?)), - Kind::Code => Ok(Request::Code(rlp.val_at(1)?)), - Kind::Execution => Ok(Request::Execution(rlp.val_at(1)?)), - Kind::Signal => Ok(Request::Signal(rlp.val_at(1)?)), - } - } -} - -impl Encodable for Request { - fn rlp_append(&self, s: &mut RlpStream) { - s.begin_list(2); - - // hack around https://github.com/paritytech/parity-ethereum/issues/4356 - Encodable::rlp_append(&self.kind(), s); - - match *self { - Request::Headers(ref req) => s.append(req), - Request::HeaderProof(ref req) => s.append(req), - Request::TransactionIndex(ref req) => s.append(req), - Request::Receipts(ref req) => s.append(req), - Request::Body(ref req) => s.append(req), - Request::Account(ref req) => s.append(req), - Request::Storage(ref req) => s.append(req), - Request::Code(ref req) => s.append(req), - Request::Execution(ref req) => s.append(req), - Request::Signal(ref req) => s.append(req), - }; - } -} - -impl IncompleteRequest for Request { - type Complete = CompleteRequest; - type Response = Response; - - fn check_outputs(&self, f: F) -> Result<(), NoSuchOutput> - where - F: FnMut(usize, usize, OutputKind) -> Result<(), NoSuchOutput>, - { - match *self { - Request::Headers(ref req) => req.check_outputs(f), - Request::HeaderProof(ref req) => req.check_outputs(f), - Request::TransactionIndex(ref req) => req.check_outputs(f), - Request::Receipts(ref req) => req.check_outputs(f), - Request::Body(ref req) => req.check_outputs(f), - Request::Account(ref req) => req.check_outputs(f), - Request::Storage(ref req) => req.check_outputs(f), - Request::Code(ref req) => req.check_outputs(f), - Request::Execution(ref req) => req.check_outputs(f), - Request::Signal(ref req) => req.check_outputs(f), - } - } - - fn note_outputs(&self, f: F) - where - F: FnMut(usize, OutputKind), - { - match *self { - Request::Headers(ref req) => req.note_outputs(f), - Request::HeaderProof(ref req) => req.note_outputs(f), - Request::TransactionIndex(ref req) => req.note_outputs(f), - Request::Receipts(ref req) => req.note_outputs(f), - Request::Body(ref req) => req.note_outputs(f), - Request::Account(ref req) => req.note_outputs(f), - Request::Storage(ref req) => req.note_outputs(f), - Request::Code(ref req) => req.note_outputs(f), - Request::Execution(ref req) => req.note_outputs(f), - Request::Signal(ref req) => req.note_outputs(f), - } - } - - fn fill(&mut self, oracle: F) - where - F: Fn(usize, usize) -> Result, - { - match *self { - Request::Headers(ref mut req) => req.fill(oracle), - Request::HeaderProof(ref mut req) => req.fill(oracle), - Request::TransactionIndex(ref mut req) => req.fill(oracle), - Request::Receipts(ref mut req) => req.fill(oracle), - Request::Body(ref mut req) => req.fill(oracle), - Request::Account(ref mut req) => req.fill(oracle), - Request::Storage(ref mut req) => req.fill(oracle), - Request::Code(ref mut req) => req.fill(oracle), - Request::Execution(ref mut req) => req.fill(oracle), - Request::Signal(ref mut req) => req.fill(oracle), - } - } - - fn complete(self) -> Result { - match self { - Request::Headers(req) => req.complete().map(CompleteRequest::Headers), - Request::HeaderProof(req) => req.complete().map(CompleteRequest::HeaderProof), - Request::TransactionIndex(req) => req.complete().map(CompleteRequest::TransactionIndex), - Request::Receipts(req) => req.complete().map(CompleteRequest::Receipts), - Request::Body(req) => req.complete().map(CompleteRequest::Body), - Request::Account(req) => req.complete().map(CompleteRequest::Account), - Request::Storage(req) => req.complete().map(CompleteRequest::Storage), - Request::Code(req) => req.complete().map(CompleteRequest::Code), - Request::Execution(req) => req.complete().map(CompleteRequest::Execution), - Request::Signal(req) => req.complete().map(CompleteRequest::Signal), - } - } - - fn adjust_refs(&mut self, mapping: F) - where - F: FnMut(usize) -> usize, - { - match *self { - Request::Headers(ref mut req) => req.adjust_refs(mapping), - Request::HeaderProof(ref mut req) => req.adjust_refs(mapping), - Request::TransactionIndex(ref mut req) => req.adjust_refs(mapping), - Request::Receipts(ref mut req) => req.adjust_refs(mapping), - Request::Body(ref mut req) => req.adjust_refs(mapping), - Request::Account(ref mut req) => req.adjust_refs(mapping), - Request::Storage(ref mut req) => req.adjust_refs(mapping), - Request::Code(ref mut req) => req.adjust_refs(mapping), - Request::Execution(ref mut req) => req.adjust_refs(mapping), - Request::Signal(ref mut req) => req.adjust_refs(mapping), - } - } -} - -impl CheckedRequest for Request { - type Extract = (); - type Error = WrongKind; - type Environment = (); - - fn check_response( - &self, - _: &Self::Complete, - _: &(), - response: &Response, - ) -> Result<(), WrongKind> { - if self.kind() == response.kind() { - Ok(()) - } else { - Err(WrongKind) - } - } -} - -/// Kinds of requests. -/// Doubles as the "ID" field of the request. -#[repr(u8)] -#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq, Serialize, Deserialize)] -pub enum Kind { - /// A request for headers. - Headers = 0, - /// A request for a header proof. - HeaderProof = 1, - /// A request for a transaction index. - TransactionIndex = 2, - /// A request for block receipts. - Receipts = 3, - /// A request for a block body. - Body = 4, - /// A request for an account + merkle proof. - Account = 5, - /// A request for contract storage + merkle proof - Storage = 6, - /// A request for contract. - Code = 7, - /// A request for transaction execution + state proof. - Execution = 8, - /// A request for epoch transition signal. - Signal = 9, -} - -impl Decodable for Kind { - fn decode(rlp: &Rlp) -> Result { - match rlp.as_val::()? { - 0 => Ok(Kind::Headers), - 1 => Ok(Kind::HeaderProof), - 2 => Ok(Kind::TransactionIndex), - 3 => Ok(Kind::Receipts), - 4 => Ok(Kind::Body), - 5 => Ok(Kind::Account), - 6 => Ok(Kind::Storage), - 7 => Ok(Kind::Code), - 8 => Ok(Kind::Execution), - 9 => Ok(Kind::Signal), - _ => Err(DecoderError::Custom("Unknown PIP request ID.")), - } - } -} - -impl Encodable for Kind { - fn rlp_append(&self, s: &mut RlpStream) { - s.append(&(*self as u8)); - } -} - -/// All response types. -#[derive(Debug, Clone, PartialEq, Eq)] -pub enum Response { - /// A response for block headers. - Headers(HeadersResponse), - /// A response for a header proof (from a CHT) - HeaderProof(HeaderProofResponse), - /// A response for a transaction index. - TransactionIndex(TransactionIndexResponse), - /// A response for a block's receipts. - Receipts(ReceiptsResponse), - /// A response for a block body. - Body(BodyResponse), - /// A response for a merkle proof of an account. - Account(AccountResponse), - /// A response for a merkle proof of contract storage. - Storage(StorageResponse), - /// A response for contract code. - Code(CodeResponse), - /// A response for proof of execution, - Execution(ExecutionResponse), - /// A response for epoch change signal. - Signal(SignalResponse), -} - -impl ResponseLike for Response { - /// Fill reusable outputs by writing them into the function. - fn fill_outputs(&self, f: F) - where - F: FnMut(usize, Output), - { - match *self { - Response::Headers(ref res) => res.fill_outputs(f), - Response::HeaderProof(ref res) => res.fill_outputs(f), - Response::TransactionIndex(ref res) => res.fill_outputs(f), - Response::Receipts(ref res) => res.fill_outputs(f), - Response::Body(ref res) => res.fill_outputs(f), - Response::Account(ref res) => res.fill_outputs(f), - Response::Storage(ref res) => res.fill_outputs(f), - Response::Code(ref res) => res.fill_outputs(f), - Response::Execution(ref res) => res.fill_outputs(f), - Response::Signal(ref res) => res.fill_outputs(f), - } - } -} - -impl Response { - /// Inspect the kind of this response. - pub fn kind(&self) -> Kind { - match *self { - Response::Headers(_) => Kind::Headers, - Response::HeaderProof(_) => Kind::HeaderProof, - Response::TransactionIndex(_) => Kind::TransactionIndex, - Response::Receipts(_) => Kind::Receipts, - Response::Body(_) => Kind::Body, - Response::Account(_) => Kind::Account, - Response::Storage(_) => Kind::Storage, - Response::Code(_) => Kind::Code, - Response::Execution(_) => Kind::Execution, - Response::Signal(_) => Kind::Signal, - } - } -} - -impl Decodable for Response { - fn decode(rlp: &Rlp) -> Result { - match rlp.val_at::(0)? { - Kind::Headers => Ok(Response::Headers(rlp.val_at(1)?)), - Kind::HeaderProof => Ok(Response::HeaderProof(rlp.val_at(1)?)), - Kind::TransactionIndex => Ok(Response::TransactionIndex(rlp.val_at(1)?)), - Kind::Receipts => Ok(Response::Receipts(rlp.val_at(1)?)), - Kind::Body => Ok(Response::Body(rlp.val_at(1)?)), - Kind::Account => Ok(Response::Account(rlp.val_at(1)?)), - Kind::Storage => Ok(Response::Storage(rlp.val_at(1)?)), - Kind::Code => Ok(Response::Code(rlp.val_at(1)?)), - Kind::Execution => Ok(Response::Execution(rlp.val_at(1)?)), - Kind::Signal => Ok(Response::Signal(rlp.val_at(1)?)), - } - } -} - -impl Encodable for Response { - fn rlp_append(&self, s: &mut RlpStream) { - s.begin_list(2); - - // hack around https://github.com/paritytech/parity-ethereum/issues/4356 - Encodable::rlp_append(&self.kind(), s); - - match *self { - Response::Headers(ref res) => s.append(res), - Response::HeaderProof(ref res) => s.append(res), - Response::TransactionIndex(ref res) => s.append(res), - Response::Receipts(ref res) => s.append(res), - Response::Body(ref res) => s.append(res), - Response::Account(ref res) => s.append(res), - Response::Storage(ref res) => s.append(res), - Response::Code(ref res) => s.append(res), - Response::Execution(ref res) => s.append(res), - Response::Signal(ref res) => s.append(res), - }; - } -} - -/// A potentially incomplete request. -pub trait IncompleteRequest: Sized { - /// The complete variant of this request. - type Complete; - /// The response to this request. - type Response: ResponseLike; - - /// Check prior outputs against the needed inputs. - /// - /// This is called to ensure consistency of this request with - /// others in the same packet. - fn check_outputs(&self, f: F) -> Result<(), NoSuchOutput> - where - F: FnMut(usize, usize, OutputKind) -> Result<(), NoSuchOutput>; - - /// Note that this request will produce the following outputs. - fn note_outputs(&self, f: F) - where - F: FnMut(usize, OutputKind); - - /// Fill fields of the request. - /// - /// This function is provided an "output oracle" which allows fetching of - /// prior request outputs. - /// Only outputs previously checked with `check_outputs` may be available. - fn fill(&mut self, oracle: F) - where - F: Fn(usize, usize) -> Result; - - /// Attempt to convert this request into its complete variant. - /// Will succeed if all fields have been filled, will fail otherwise. - fn complete(self) -> Result; - - /// Adjust back-reference request indices. - fn adjust_refs(&mut self, mapping: F) - where - F: FnMut(usize) -> usize; -} - -/// A request which can be checked against its response for more validity. -pub trait CheckedRequest: IncompleteRequest { - /// Data extracted during the check. - type Extract; - /// Error encountered during the check. - type Error; - /// Environment passed to response check. - type Environment; - - /// Check whether the response matches (beyond the type). - fn check_response( - &self, - &Self::Complete, - &Self::Environment, - &Self::Response, - ) -> Result; -} - -/// A response-like object. -/// -/// These contain re-usable outputs. -pub trait ResponseLike { - /// Write all re-usable outputs into the provided function. - fn fill_outputs(&self, output_store: F) - where - F: FnMut(usize, Output); -} - -/// Header request. -pub mod header { - use super::{Field, HashOrNumber, NoSuchOutput, Output, OutputKind}; - use common_types::encoded; - use rlp::{Decodable, DecoderError, Encodable, Rlp, RlpStream}; - - /// Potentially incomplete headers request. - #[derive(Debug, Clone, PartialEq, Eq, RlpEncodable, RlpDecodable)] - pub struct Incomplete { - /// Start block. - pub start: Field, - /// Skip between. - pub skip: u64, - /// Maximum to return. - pub max: u64, - /// Whether to reverse from start. - pub reverse: bool, - } - - impl super::IncompleteRequest for Incomplete { - type Complete = Complete; - type Response = Response; - - fn check_outputs(&self, mut f: F) -> Result<(), NoSuchOutput> - where - F: FnMut(usize, usize, OutputKind) -> Result<(), NoSuchOutput>, - { - match self.start { - Field::Scalar(_) => Ok(()), - Field::BackReference(req, idx) => { - f(req, idx, OutputKind::Hash).or_else(|_| f(req, idx, OutputKind::Number)) - } - } - } - - fn note_outputs(&self, _: F) - where - F: FnMut(usize, OutputKind), - { - } - - fn fill(&mut self, oracle: F) - where - F: Fn(usize, usize) -> Result, - { - if let Field::BackReference(req, idx) = self.start { - self.start = match oracle(req, idx) { - Ok(Output::Hash(hash)) => Field::Scalar(hash.into()), - Ok(Output::Number(num)) => Field::Scalar(num.into()), - Err(_) => Field::BackReference(req, idx), - } - } - } - - fn complete(self) -> Result { - Ok(Complete { - start: self.start.into_scalar()?, - skip: self.skip, - max: self.max, - reverse: self.reverse, - }) - } - - fn adjust_refs(&mut self, mapping: F) - where - F: FnMut(usize) -> usize, - { - self.start.adjust_req(mapping) - } - } - - /// A complete header request. - #[derive(Debug, Clone, PartialEq, Eq)] - pub struct Complete { - /// Start block. - pub start: HashOrNumber, - /// Skip between. - pub skip: u64, - /// Maximum to return. - pub max: u64, - /// Whether to reverse from start. - pub reverse: bool, - } - - /// The output of a request for headers. - #[derive(Debug, Clone, PartialEq, Eq)] - pub struct Response { - /// The headers requested. - pub headers: Vec, - } - - impl super::ResponseLike for Response { - /// Fill reusable outputs by writing them into the function. - fn fill_outputs(&self, _: F) - where - F: FnMut(usize, Output), - { - } - } - - impl Decodable for Response { - fn decode(rlp: &Rlp) -> Result { - use common_types::header::Header as FullHeader; - - let mut headers = Vec::new(); - - for item in rlp.iter() { - // check that it's a valid encoding. - // TODO: just return full headers here? - let _: FullHeader = item.as_val()?; - headers.push(encoded::Header::new(item.as_raw().to_owned())); - } - - Ok(Response { headers }) - } - } - - impl Encodable for Response { - fn rlp_append(&self, s: &mut RlpStream) { - s.begin_list(self.headers.len()); - for header in &self.headers { - s.append_raw(header.rlp().as_raw(), 1); - } - } - } -} - -/// Request and response for header proofs. -pub mod header_proof { - use super::{Field, NoSuchOutput, Output, OutputKind}; - use bytes::Bytes; - use ethereum_types::{H256, U256}; - use rlp::{Decodable, DecoderError, Encodable, Rlp, RlpStream}; - - /// Potentially incomplete header proof request. - #[derive(Debug, Clone, PartialEq, Eq, RlpEncodable, RlpDecodable)] - pub struct Incomplete { - /// Block number. - pub num: Field, - } - - impl super::IncompleteRequest for Incomplete { - type Complete = Complete; - type Response = Response; - - fn check_outputs(&self, mut f: F) -> Result<(), NoSuchOutput> - where - F: FnMut(usize, usize, OutputKind) -> Result<(), NoSuchOutput>, - { - match self.num { - Field::Scalar(_) => Ok(()), - Field::BackReference(req, idx) => f(req, idx, OutputKind::Number), - } - } - - fn note_outputs(&self, mut note: F) - where - F: FnMut(usize, OutputKind), - { - note(0, OutputKind::Hash); - } - - fn fill(&mut self, oracle: F) - where - F: Fn(usize, usize) -> Result, - { - if let Field::BackReference(req, idx) = self.num { - self.num = match oracle(req, idx) { - Ok(Output::Number(num)) => Field::Scalar(num), - _ => Field::BackReference(req, idx), - } - } - } - - fn complete(self) -> Result { - Ok(Complete { - num: self.num.into_scalar()?, - }) - } - - fn adjust_refs(&mut self, mapping: F) - where - F: FnMut(usize) -> usize, - { - self.num.adjust_req(mapping) - } - } - - /// A complete header proof request. - #[derive(Debug, Clone, PartialEq, Eq)] - pub struct Complete { - /// The number to get a header proof for. - pub num: u64, - } - - /// The output of a request for a header proof. - #[derive(Debug, Clone, PartialEq, Eq)] - pub struct Response { - /// Inclusion proof of the header and total difficulty in the CHT. - pub proof: Vec, - /// The proved header's hash. - pub hash: H256, - /// The proved header's total difficulty. - pub td: U256, - } - - impl super::ResponseLike for Response { - /// Fill reusable outputs by providing them to the function. - fn fill_outputs(&self, mut f: F) - where - F: FnMut(usize, Output), - { - f(0, Output::Hash(self.hash)); - } - } - - impl Decodable for Response { - fn decode(rlp: &Rlp) -> Result { - Ok(Response { - proof: rlp.list_at(0)?, - hash: rlp.val_at(1)?, - td: rlp.val_at(2)?, - }) - } - } - - impl Encodable for Response { - fn rlp_append(&self, s: &mut RlpStream) { - s.begin_list(3) - .append_list::, _>(&self.proof[..]) - .append(&self.hash) - .append(&self.td); - } - } -} - -/// Request and response for transaction index. -pub mod transaction_index { - use super::{Field, NoSuchOutput, Output, OutputKind}; - use ethereum_types::H256; - - /// Potentially incomplete transaction index request. - #[derive(Debug, Clone, PartialEq, Eq, RlpEncodable, RlpDecodable)] - pub struct Incomplete { - /// Transaction hash to get index for. - pub hash: Field, - } - - impl super::IncompleteRequest for Incomplete { - type Complete = Complete; - type Response = Response; - - fn check_outputs(&self, mut f: F) -> Result<(), NoSuchOutput> - where - F: FnMut(usize, usize, OutputKind) -> Result<(), NoSuchOutput>, - { - match self.hash { - Field::Scalar(_) => Ok(()), - Field::BackReference(req, idx) => f(req, idx, OutputKind::Hash), - } - } - - fn note_outputs(&self, mut f: F) - where - F: FnMut(usize, OutputKind), - { - f(0, OutputKind::Number); - f(1, OutputKind::Hash); - } - - fn fill(&mut self, oracle: F) - where - F: Fn(usize, usize) -> Result, - { - if let Field::BackReference(req, idx) = self.hash { - self.hash = match oracle(req, idx) { - Ok(Output::Hash(hash)) => Field::Scalar(hash.into()), - _ => Field::BackReference(req, idx), - } - } - } - - fn complete(self) -> Result { - Ok(Complete { - hash: self.hash.into_scalar()?, - }) - } - - fn adjust_refs(&mut self, mapping: F) - where - F: FnMut(usize) -> usize, - { - self.hash.adjust_req(mapping) - } - } - - /// A complete transaction index request. - #[derive(Debug, Clone, PartialEq, Eq)] - pub struct Complete { - /// The transaction hash to get index for. - pub hash: H256, - } - - /// The output of a request for transaction index. - #[derive(Debug, Clone, PartialEq, Eq, RlpEncodable, RlpDecodable)] - pub struct Response { - /// Block number. - pub num: u64, - /// Block hash - pub hash: H256, - /// Index in block. - pub index: u64, - } - - impl super::ResponseLike for Response { - /// Fill reusable outputs by providing them to the function. - fn fill_outputs(&self, mut f: F) - where - F: FnMut(usize, Output), - { - f(0, Output::Number(self.num)); - f(1, Output::Hash(self.hash)); - } - } -} - -/// Request and response for block receipts -pub mod block_receipts { - use super::{Field, NoSuchOutput, Output, OutputKind}; - use common_types::receipt::Receipt; - use ethereum_types::H256; - - /// Potentially incomplete block receipts request. - #[derive(Debug, Clone, PartialEq, Eq, RlpEncodable, RlpDecodable)] - pub struct Incomplete { - /// Block hash to get receipts for. - pub hash: Field, - } - - impl super::IncompleteRequest for Incomplete { - type Complete = Complete; - type Response = Response; - - fn check_outputs(&self, mut f: F) -> Result<(), NoSuchOutput> - where - F: FnMut(usize, usize, OutputKind) -> Result<(), NoSuchOutput>, - { - match self.hash { - Field::Scalar(_) => Ok(()), - Field::BackReference(req, idx) => f(req, idx, OutputKind::Hash), - } - } - - fn note_outputs(&self, _: F) - where - F: FnMut(usize, OutputKind), - { - } - - fn fill(&mut self, oracle: F) - where - F: Fn(usize, usize) -> Result, - { - if let Field::BackReference(req, idx) = self.hash { - self.hash = match oracle(req, idx) { - Ok(Output::Hash(hash)) => Field::Scalar(hash.into()), - _ => Field::BackReference(req, idx), - } - } - } - - fn complete(self) -> Result { - Ok(Complete { - hash: self.hash.into_scalar()?, - }) - } - - fn adjust_refs(&mut self, mapping: F) - where - F: FnMut(usize) -> usize, - { - self.hash.adjust_req(mapping) - } - } - - /// A complete block receipts request. - #[derive(Debug, Clone, PartialEq, Eq)] - pub struct Complete { - /// The number to get block receipts for. - pub hash: H256, - } - - /// The output of a request for block receipts. - #[derive(Debug, Clone, PartialEq, Eq, RlpEncodableWrapper, RlpDecodableWrapper)] - pub struct Response { - /// The block receipts. - pub receipts: Vec, - } - - impl super::ResponseLike for Response { - /// Fill reusable outputs by providing them to the function. - fn fill_outputs(&self, _: F) - where - F: FnMut(usize, Output), - { - } - } -} - -/// Request and response for a block body -pub mod block_body { - use super::{Field, NoSuchOutput, Output, OutputKind}; - use common_types::encoded; - use ethereum_types::H256; - use rlp::{Decodable, DecoderError, Encodable, Rlp, RlpStream}; - - /// Potentially incomplete block body request. - #[derive(Debug, Clone, PartialEq, Eq, RlpEncodable, RlpDecodable)] - pub struct Incomplete { - /// Block hash to get receipts for. - pub hash: Field, - } - - impl super::IncompleteRequest for Incomplete { - type Complete = Complete; - type Response = Response; - - fn check_outputs(&self, mut f: F) -> Result<(), NoSuchOutput> - where - F: FnMut(usize, usize, OutputKind) -> Result<(), NoSuchOutput>, - { - match self.hash { - Field::Scalar(_) => Ok(()), - Field::BackReference(req, idx) => f(req, idx, OutputKind::Hash), - } - } - - fn note_outputs(&self, _: F) - where - F: FnMut(usize, OutputKind), - { - } - - fn fill(&mut self, oracle: F) - where - F: Fn(usize, usize) -> Result, - { - if let Field::BackReference(req, idx) = self.hash { - self.hash = match oracle(req, idx) { - Ok(Output::Hash(hash)) => Field::Scalar(hash), - _ => Field::BackReference(req, idx), - } - } - } - - fn complete(self) -> Result { - Ok(Complete { - hash: self.hash.into_scalar()?, - }) - } - - fn adjust_refs(&mut self, mapping: F) - where - F: FnMut(usize) -> usize, - { - self.hash.adjust_req(mapping) - } - } - - /// A complete block body request. - #[derive(Debug, Clone, PartialEq, Eq)] - pub struct Complete { - /// The hash to get a block body for. - pub hash: H256, - } - - /// The output of a request for block body. - #[derive(Debug, Clone, PartialEq, Eq)] - pub struct Response { - /// The block body. - pub body: encoded::Body, - } - - impl super::ResponseLike for Response { - /// Fill reusable outputs by providing them to the function. - fn fill_outputs(&self, _: F) - where - F: FnMut(usize, Output), - { - } - } - - impl Decodable for Response { - fn decode(rlp: &Rlp) -> Result { - use common_types::{header::Header as FullHeader, transaction::UnverifiedTransaction}; - - // check body validity. - let _: Vec = rlp.list_at(0)?; - let _: Vec = rlp.list_at(1)?; - - Ok(Response { - body: encoded::Body::new(rlp.as_raw().to_owned()), - }) - } - } - - impl Encodable for Response { - fn rlp_append(&self, s: &mut RlpStream) { - s.append_raw(&self.body.rlp().as_raw(), 1); - } - } -} - -/// A request for an account proof. -pub mod account { - use super::{Field, NoSuchOutput, Output, OutputKind}; - use bytes::Bytes; - use ethereum_types::{H256, U256}; - - /// Potentially incomplete request for an account proof. - #[derive(Debug, Clone, PartialEq, Eq, RlpEncodable, RlpDecodable)] - pub struct Incomplete { - /// Block hash to request state proof for. - pub block_hash: Field, - /// Hash of the account's address. - pub address_hash: Field, - } - - impl super::IncompleteRequest for Incomplete { - type Complete = Complete; - type Response = Response; - - fn check_outputs(&self, mut f: F) -> Result<(), NoSuchOutput> - where - F: FnMut(usize, usize, OutputKind) -> Result<(), NoSuchOutput>, - { - if let Field::BackReference(req, idx) = self.block_hash { - f(req, idx, OutputKind::Hash)? - } - - if let Field::BackReference(req, idx) = self.address_hash { - f(req, idx, OutputKind::Hash)? - } - - Ok(()) - } - - fn note_outputs(&self, mut f: F) - where - F: FnMut(usize, OutputKind), - { - f(0, OutputKind::Hash); - f(1, OutputKind::Hash); - } - - fn fill(&mut self, oracle: F) - where - F: Fn(usize, usize) -> Result, - { - if let Field::BackReference(req, idx) = self.block_hash { - self.block_hash = match oracle(req, idx) { - Ok(Output::Hash(block_hash)) => Field::Scalar(block_hash), - _ => Field::BackReference(req, idx), - } - } - - if let Field::BackReference(req, idx) = self.address_hash { - self.address_hash = match oracle(req, idx) { - Ok(Output::Hash(address_hash)) => Field::Scalar(address_hash), - _ => Field::BackReference(req, idx), - } - } - } - - fn complete(self) -> Result { - Ok(Complete { - block_hash: self.block_hash.into_scalar()?, - address_hash: self.address_hash.into_scalar()?, - }) - } - - fn adjust_refs(&mut self, mut mapping: F) - where - F: FnMut(usize) -> usize, - { - self.block_hash.adjust_req(&mut mapping); - self.address_hash.adjust_req(&mut mapping); - } - } - - /// A complete request for an account. - #[derive(Debug, Clone, PartialEq, Eq)] - pub struct Complete { - /// Block hash to request state proof for. - pub block_hash: H256, - /// Hash of the account's address. - pub address_hash: H256, - } - - /// The output of a request for an account state proof. - #[derive(Debug, Clone, PartialEq, Eq, RlpEncodable, RlpDecodable)] - pub struct Response { - /// Inclusion/exclusion proof - pub proof: Vec, - /// Account nonce. - pub nonce: U256, - /// Account balance. - pub balance: U256, - /// Account's code hash. - pub code_hash: H256, - /// Account's storage trie root. - pub storage_root: H256, - } - - impl super::ResponseLike for Response { - /// Fill reusable outputs by providing them to the function. - fn fill_outputs(&self, mut f: F) - where - F: FnMut(usize, Output), - { - f(0, Output::Hash(self.code_hash)); - f(1, Output::Hash(self.storage_root)); - } - } -} - -/// A request for a storage proof. -pub mod storage { - use super::{Field, NoSuchOutput, Output, OutputKind}; - use bytes::Bytes; - use ethereum_types::H256; - - /// Potentially incomplete request for an storage proof. - #[derive(Debug, Clone, PartialEq, Eq, RlpEncodable, RlpDecodable)] - pub struct Incomplete { - /// Block hash to request state proof for. - pub block_hash: Field, - /// Hash of the account's address. - pub address_hash: Field, - /// Hash of the storage key. - pub key_hash: Field, - } - - impl super::IncompleteRequest for Incomplete { - type Complete = Complete; - type Response = Response; - - fn check_outputs(&self, mut f: F) -> Result<(), NoSuchOutput> - where - F: FnMut(usize, usize, OutputKind) -> Result<(), NoSuchOutput>, - { - if let Field::BackReference(req, idx) = self.block_hash { - f(req, idx, OutputKind::Hash)? - } - - if let Field::BackReference(req, idx) = self.address_hash { - f(req, idx, OutputKind::Hash)? - } - - if let Field::BackReference(req, idx) = self.key_hash { - f(req, idx, OutputKind::Hash)? - } - - Ok(()) - } - - fn note_outputs(&self, mut f: F) - where - F: FnMut(usize, OutputKind), - { - f(0, OutputKind::Hash); - } - - fn fill(&mut self, oracle: F) - where - F: Fn(usize, usize) -> Result, - { - if let Field::BackReference(req, idx) = self.block_hash { - self.block_hash = match oracle(req, idx) { - Ok(Output::Hash(block_hash)) => Field::Scalar(block_hash), - _ => Field::BackReference(req, idx), - } - } - - if let Field::BackReference(req, idx) = self.address_hash { - self.address_hash = match oracle(req, idx) { - Ok(Output::Hash(address_hash)) => Field::Scalar(address_hash), - _ => Field::BackReference(req, idx), - } - } - - if let Field::BackReference(req, idx) = self.key_hash { - self.key_hash = match oracle(req, idx) { - Ok(Output::Hash(key_hash)) => Field::Scalar(key_hash), - _ => Field::BackReference(req, idx), - } - } - } - - fn complete(self) -> Result { - Ok(Complete { - block_hash: self.block_hash.into_scalar()?, - address_hash: self.address_hash.into_scalar()?, - key_hash: self.key_hash.into_scalar()?, - }) - } - - fn adjust_refs(&mut self, mut mapping: F) - where - F: FnMut(usize) -> usize, - { - self.block_hash.adjust_req(&mut mapping); - self.address_hash.adjust_req(&mut mapping); - self.key_hash.adjust_req(&mut mapping); - } - } - - /// A complete request for a storage proof. - #[derive(Debug, Clone, PartialEq, Eq)] - pub struct Complete { - /// Block hash to request state proof for. - pub block_hash: H256, - /// Hash of the account's address. - pub address_hash: H256, - /// Storage key hash. - pub key_hash: H256, - } - - /// The output of a request for an account state proof. - #[derive(Debug, Clone, PartialEq, Eq, RlpEncodable, RlpDecodable)] - pub struct Response { - /// Inclusion/exclusion proof - pub proof: Vec, - /// Storage value. - pub value: H256, - } - - impl super::ResponseLike for Response { - /// Fill reusable outputs by providing them to the function. - fn fill_outputs(&self, mut f: F) - where - F: FnMut(usize, Output), - { - f(0, Output::Hash(self.value)); - } - } -} - -/// A request for contract code. -pub mod contract_code { - use super::{Field, NoSuchOutput, Output, OutputKind}; - use bytes::Bytes; - use ethereum_types::H256; - - /// Potentially incomplete contract code request. - #[derive(Debug, Clone, PartialEq, Eq, RlpEncodable, RlpDecodable)] - pub struct Incomplete { - /// The block hash to request the state for. - pub block_hash: Field, - /// The code hash. - pub code_hash: Field, - } - - impl super::IncompleteRequest for Incomplete { - type Complete = Complete; - type Response = Response; - - fn check_outputs(&self, mut f: F) -> Result<(), NoSuchOutput> - where - F: FnMut(usize, usize, OutputKind) -> Result<(), NoSuchOutput>, - { - if let Field::BackReference(req, idx) = self.block_hash { - f(req, idx, OutputKind::Hash)?; - } - if let Field::BackReference(req, idx) = self.code_hash { - f(req, idx, OutputKind::Hash)?; - } - - Ok(()) - } - - fn note_outputs(&self, _: F) - where - F: FnMut(usize, OutputKind), - { - } - - fn fill(&mut self, oracle: F) - where - F: Fn(usize, usize) -> Result, - { - if let Field::BackReference(req, idx) = self.block_hash { - self.block_hash = match oracle(req, idx) { - Ok(Output::Hash(block_hash)) => Field::Scalar(block_hash), - _ => Field::BackReference(req, idx), - } - } - - if let Field::BackReference(req, idx) = self.code_hash { - self.code_hash = match oracle(req, idx) { - Ok(Output::Hash(code_hash)) => Field::Scalar(code_hash), - _ => Field::BackReference(req, idx), - } - } - } - - fn complete(self) -> Result { - Ok(Complete { - block_hash: self.block_hash.into_scalar()?, - code_hash: self.code_hash.into_scalar()?, - }) - } - - fn adjust_refs(&mut self, mut mapping: F) - where - F: FnMut(usize) -> usize, - { - self.block_hash.adjust_req(&mut mapping); - self.code_hash.adjust_req(&mut mapping); - } - } - - /// A complete request. - #[derive(Debug, Clone, PartialEq, Eq)] - pub struct Complete { - /// The block hash to request the state for. - pub block_hash: H256, - /// The code hash. - pub code_hash: H256, - } - - /// The output of a request for - #[derive(Debug, Clone, PartialEq, Eq, RlpEncodableWrapper, RlpDecodableWrapper)] - pub struct Response { - /// The requested code. - pub code: Bytes, - } - - impl super::ResponseLike for Response { - /// Fill reusable outputs by providing them to the function. - fn fill_outputs(&self, _: F) - where - F: FnMut(usize, Output), - { - } - } -} - -/// A request for proof of execution. -pub mod execution { - use super::{Field, NoSuchOutput, Output, OutputKind}; - use bytes::Bytes; - use common_types::transaction::Action; - use ethereum_types::{Address, H256, U256}; - use kvdb::DBValue; - use rlp::{Decodable, DecoderError, Encodable, Rlp, RlpStream}; - - /// Potentially incomplete execution proof request. - #[derive(Debug, Clone, PartialEq, Eq, RlpEncodable, RlpDecodable)] - pub struct Incomplete { - /// The block hash to request the state for. - pub block_hash: Field, - /// The address the transaction should be from. - pub from: Address, - /// The action of the transaction. - pub action: Action, - /// The amount of gas to prove. - pub gas: U256, - /// The gas price. - pub gas_price: U256, - /// The value to transfer. - pub value: U256, - /// Call data. - pub data: Bytes, - } - - impl super::IncompleteRequest for Incomplete { - type Complete = Complete; - type Response = Response; - - fn check_outputs(&self, mut f: F) -> Result<(), NoSuchOutput> - where - F: FnMut(usize, usize, OutputKind) -> Result<(), NoSuchOutput>, - { - if let Field::BackReference(req, idx) = self.block_hash { - f(req, idx, OutputKind::Hash)?; - } - - Ok(()) - } - - fn note_outputs(&self, _: F) - where - F: FnMut(usize, OutputKind), - { - } - - fn fill(&mut self, oracle: F) - where - F: Fn(usize, usize) -> Result, - { - if let Field::BackReference(req, idx) = self.block_hash { - self.block_hash = match oracle(req, idx) { - Ok(Output::Hash(block_hash)) => Field::Scalar(block_hash), - _ => Field::BackReference(req, idx), - } - } - } - fn complete(self) -> Result { - Ok(Complete { - block_hash: self.block_hash.into_scalar()?, - from: self.from, - action: self.action, - gas: self.gas, - gas_price: self.gas_price, - value: self.value, - data: self.data, - }) - } - - fn adjust_refs(&mut self, mapping: F) - where - F: FnMut(usize) -> usize, - { - self.block_hash.adjust_req(mapping); - } - } - - /// A complete request. - #[derive(Debug, Clone, PartialEq, Eq)] - pub struct Complete { - /// The block hash to request the state for. - pub block_hash: H256, - /// The address the transaction should be from. - pub from: Address, - /// The action of the transaction. - pub action: Action, - /// The amount of gas to prove. - pub gas: U256, - /// The gas price. - pub gas_price: U256, - /// The value to transfer. - pub value: U256, - /// Call data. - pub data: Bytes, - } - - /// The output of a request for proof of execution - #[derive(Debug, Clone, PartialEq, Eq)] - pub struct Response { - /// All state items (trie nodes, code) necessary to re-prove the transaction. - pub items: Vec, - } - - impl super::ResponseLike for Response { - /// Fill reusable outputs by providing them to the function. - fn fill_outputs(&self, _: F) - where - F: FnMut(usize, Output), - { - } - } - - impl Decodable for Response { - fn decode(rlp: &Rlp) -> Result { - let mut items = Vec::new(); - for raw_item in rlp.iter() { - let mut item = DBValue::new(); - item.append_slice(raw_item.data()?); - items.push(item); - } - - Ok(Response { items }) - } - } - - impl Encodable for Response { - fn rlp_append(&self, s: &mut RlpStream) { - s.begin_list(self.items.len()); - - for item in &self.items { - s.append(&&**item); - } - } - } -} - -/// A request for epoch signal data. -pub mod epoch_signal { - use super::{Field, NoSuchOutput, Output, OutputKind}; - use bytes::Bytes; - use ethereum_types::H256; - use rlp::{Decodable, DecoderError, Encodable, Rlp, RlpStream}; - - /// Potentially incomplete epoch signal request. - #[derive(Debug, Clone, PartialEq, Eq)] - pub struct Incomplete { - /// The block hash to request the signal for. - pub block_hash: Field, - } - - impl Decodable for Incomplete { - fn decode(rlp: &Rlp) -> Result { - Ok(Incomplete { - block_hash: rlp.val_at(0)?, - }) - } - } - - impl Encodable for Incomplete { - fn rlp_append(&self, s: &mut RlpStream) { - s.begin_list(1).append(&self.block_hash); - } - } - - impl super::IncompleteRequest for Incomplete { - type Complete = Complete; - type Response = Response; - - fn check_outputs(&self, mut f: F) -> Result<(), NoSuchOutput> - where - F: FnMut(usize, usize, OutputKind) -> Result<(), NoSuchOutput>, - { - if let Field::BackReference(req, idx) = self.block_hash { - f(req, idx, OutputKind::Hash)?; - } - - Ok(()) - } - - fn note_outputs(&self, _: F) - where - F: FnMut(usize, OutputKind), - { - } - - fn fill(&mut self, oracle: F) - where - F: Fn(usize, usize) -> Result, - { - if let Field::BackReference(req, idx) = self.block_hash { - self.block_hash = match oracle(req, idx) { - Ok(Output::Hash(block_hash)) => Field::Scalar(block_hash), - _ => Field::BackReference(req, idx), - } - } - } - - fn complete(self) -> Result { - Ok(Complete { - block_hash: self.block_hash.into_scalar()?, - }) - } - - fn adjust_refs(&mut self, mut mapping: F) - where - F: FnMut(usize) -> usize, - { - self.block_hash.adjust_req(&mut mapping); - } - } - - /// A complete request. - #[derive(Debug, Clone, PartialEq, Eq)] - pub struct Complete { - /// The block hash to request the epoch signal for. - pub block_hash: H256, - } - - /// The output of a request for an epoch signal. - #[derive(Debug, Clone, PartialEq, Eq)] - pub struct Response { - /// The requested epoch signal. - pub signal: Bytes, - } - - impl super::ResponseLike for Response { - /// Fill reusable outputs by providing them to the function. - fn fill_outputs(&self, _: F) - where - F: FnMut(usize, Output), - { - } - } - - impl Decodable for Response { - fn decode(rlp: &Rlp) -> Result { - Ok(Response { - signal: rlp.as_val()?, - }) - } - } - - impl Encodable for Response { - fn rlp_append(&self, s: &mut RlpStream) { - s.append(&self.signal); - } - } -} - -#[cfg(test)] -mod tests { - use super::*; - use common_types::header::Header; - - fn check_roundtrip(val: T) - where - T: ::rlp::Encodable + ::rlp::Decodable + PartialEq + ::std::fmt::Debug, - { - // check as single value. - let bytes = ::rlp::encode(&val); - let new_val: T = ::rlp::decode(&bytes).unwrap(); - assert_eq!(val, new_val); - - // check as list containing single value. - let list = [val]; - let bytes = ::rlp::encode_list(&list); - let new_list: Vec = ::rlp::decode_list(&bytes); - assert_eq!(&list, &new_list[..]); - } - - #[test] - fn hash_or_number_roundtrip() { - let hash = HashOrNumber::Hash(H256::default()); - let number = HashOrNumber::Number(5); - - check_roundtrip(hash); - check_roundtrip(number); - } - - #[test] - fn field_roundtrip() { - let field_scalar = Field::Scalar(5usize); - let field_back: Field = Field::BackReference(1, 2); - - check_roundtrip(field_scalar); - check_roundtrip(field_back); - } - - #[test] - fn headers_roundtrip() { - let req = IncompleteHeadersRequest { - start: Field::Scalar(5u64.into()), - skip: 0, - max: 100, - reverse: false, - }; - - let full_req = Request::Headers(req.clone()); - let res = HeadersResponse { - headers: vec![::common_types::encoded::Header::new(::rlp::encode( - &Header::default(), - ))], - }; - let full_res = Response::Headers(res.clone()); - - check_roundtrip(req); - check_roundtrip(full_req); - check_roundtrip(res); - check_roundtrip(full_res); - } - - #[test] - fn header_proof_roundtrip() { - let req = IncompleteHeaderProofRequest { - num: Field::BackReference(1, 234), - }; - - let full_req = Request::HeaderProof(req.clone()); - let res = HeaderProofResponse { - proof: vec![vec![1, 2, 3], vec![4, 5, 6]], - hash: Default::default(), - td: 100.into(), - }; - let full_res = Response::HeaderProof(res.clone()); - - check_roundtrip(req); - check_roundtrip(full_req); - check_roundtrip(res); - check_roundtrip(full_res); - } - - #[test] - fn transaction_index_roundtrip() { - let req = IncompleteTransactionIndexRequest { - hash: Field::Scalar(Default::default()), - }; - - let full_req = Request::TransactionIndex(req.clone()); - let res = TransactionIndexResponse { - num: 1000, - hash: ::ethereum_types::H256::random(), - index: 4, - }; - let full_res = Response::TransactionIndex(res.clone()); - - check_roundtrip(req); - check_roundtrip(full_req); - check_roundtrip(res); - check_roundtrip(full_res); - } - - #[test] - fn receipts_roundtrip() { - use common_types::receipt::{Receipt, TransactionOutcome}; - let req = IncompleteReceiptsRequest { - hash: Field::Scalar(Default::default()), - }; - - let full_req = Request::Receipts(req.clone()); - let receipt = Receipt::new(TransactionOutcome::Unknown, Default::default(), Vec::new()); - let res = ReceiptsResponse { - receipts: vec![receipt.clone(), receipt], - }; - let full_res = Response::Receipts(res.clone()); - - check_roundtrip(req); - check_roundtrip(full_req); - check_roundtrip(res); - check_roundtrip(full_res); - } - - #[test] - fn body_roundtrip() { - use common_types::transaction::{Transaction, UnverifiedTransaction}; - let req = IncompleteBodyRequest { - hash: Field::Scalar(Default::default()), - }; - - let full_req = Request::Body(req.clone()); - let res = BodyResponse { - body: { - let header = ::common_types::header::Header::default(); - let tx = UnverifiedTransaction::from( - Transaction::default().fake_sign(Default::default()), - ); - let mut stream = RlpStream::new_list(2); - stream - .begin_list(2) - .append(&tx) - .append(&tx) - .begin_list(1) - .append(&header); - - ::common_types::encoded::Body::new(stream.out()) - }, - }; - let full_res = Response::Body(res.clone()); - - check_roundtrip(req); - check_roundtrip(full_req); - check_roundtrip(res); - check_roundtrip(full_res); - } - - #[test] - fn account_roundtrip() { - let req = IncompleteAccountRequest { - block_hash: Field::Scalar(Default::default()), - address_hash: Field::BackReference(1, 2), - }; - - let full_req = Request::Account(req.clone()); - let res = AccountResponse { - proof: vec![vec![1, 2, 3], vec![4, 5, 6]], - nonce: 100.into(), - balance: 123456.into(), - code_hash: Default::default(), - storage_root: Default::default(), - }; - let full_res = Response::Account(res.clone()); - - check_roundtrip(req); - check_roundtrip(full_req); - check_roundtrip(res); - check_roundtrip(full_res); - } - - #[test] - fn storage_roundtrip() { - let req = IncompleteStorageRequest { - block_hash: Field::Scalar(Default::default()), - address_hash: Field::BackReference(1, 2), - key_hash: Field::BackReference(3, 2), - }; - - let full_req = Request::Storage(req.clone()); - let res = StorageResponse { - proof: vec![vec![1, 2, 3], vec![4, 5, 6]], - value: H256::default(), - }; - let full_res = Response::Storage(res.clone()); - - check_roundtrip(req); - check_roundtrip(full_req); - check_roundtrip(res); - check_roundtrip(full_res); - } - - #[test] - fn code_roundtrip() { - let req = IncompleteCodeRequest { - block_hash: Field::Scalar(Default::default()), - code_hash: Field::BackReference(3, 2), - }; - - let full_req = Request::Code(req.clone()); - let res = CodeResponse { - code: vec![1, 2, 3, 4, 5, 6, 7, 6, 5, 4], - }; - let full_res = Response::Code(res.clone()); - - check_roundtrip(req); - check_roundtrip(full_req); - check_roundtrip(res); - check_roundtrip(full_res); - } - - #[test] - fn execution_roundtrip() { - use kvdb::DBValue; - - let req = IncompleteExecutionRequest { - block_hash: Field::Scalar(Default::default()), - from: Default::default(), - action: ::common_types::transaction::Action::Create, - gas: 100_000.into(), - gas_price: 0.into(), - value: 100_000_001.into(), - data: vec![1, 2, 3, 2, 1], - }; - - let full_req = Request::Execution(req.clone()); - let res = ExecutionResponse { - items: vec![DBValue::new(), { - let mut value = DBValue::new(); - value.append_slice(&[1, 1, 1, 2, 3]); - value - }], - }; - let full_res = Response::Execution(res.clone()); - - check_roundtrip(req); - check_roundtrip(full_req); - check_roundtrip(res); - check_roundtrip(full_res); - } - - #[test] - fn vec_test() { - use rlp::*; - - let reqs: Vec<_> = (0..10) - .map(|_| IncompleteExecutionRequest { - block_hash: Field::Scalar(Default::default()), - from: Default::default(), - action: ::common_types::transaction::Action::Create, - gas: 100_000.into(), - gas_price: 0.into(), - value: 100_000_001.into(), - data: vec![1, 2, 3, 2, 1], - }) - .map(Request::Execution) - .collect(); - - let mut stream = RlpStream::new_list(2); - stream.append(&100usize).append_list(&reqs); - let out = stream.out(); - - let rlp = Rlp::new(&out); - assert_eq!(rlp.val_at::(0).unwrap(), 100usize); - assert_eq!(rlp.list_at::(1).unwrap(), reqs); - } - - #[test] - fn responses_vec() { - use common_types::receipt::{Receipt, TransactionOutcome}; - let mut stream = RlpStream::new_list(2); - stream.begin_list(0).begin_list(0); - - let body = ::common_types::encoded::Body::new(stream.out()); - let reqs = vec![ - Response::Headers(HeadersResponse { headers: vec![] }), - Response::HeaderProof(HeaderProofResponse { - proof: vec![], - hash: Default::default(), - td: 100.into(), - }), - Response::Receipts(ReceiptsResponse { - receipts: vec![Receipt::new( - TransactionOutcome::Unknown, - Default::default(), - Vec::new(), - )], - }), - Response::Body(BodyResponse { body: body }), - Response::Account(AccountResponse { - proof: vec![], - nonce: 100.into(), - balance: 123.into(), - code_hash: Default::default(), - storage_root: Default::default(), - }), - Response::Storage(StorageResponse { - proof: vec![], - value: H256::default(), - }), - Response::Code(CodeResponse { - code: vec![1, 2, 3, 4, 5], - }), - Response::Execution(ExecutionResponse { items: vec![] }), - ]; - - let raw = ::rlp::encode_list(&reqs); - assert_eq!(::rlp::decode_list::(&raw), reqs); - } - - #[test] - fn epoch_signal_roundtrip() { - let req = IncompleteSignalRequest { - block_hash: Field::Scalar(Default::default()), - }; - - let full_req = Request::Signal(req.clone()); - let res = SignalResponse { - signal: vec![1, 2, 3, 4, 5, 6, 7, 6, 5, 4], - }; - let full_res = Response::Signal(res.clone()); - - check_roundtrip(req); - check_roundtrip(full_req); - check_roundtrip(res); - check_roundtrip(full_res); - } -} diff --git a/ethcore/res/ethereum/classic.json b/ethcore/res/ethereum/classic.json index d598a4ec9..71e5a6f97 100644 --- a/ethcore/res/ethereum/classic.json +++ b/ethcore/res/ethereum/classic.json @@ -57,3795 +57,6 @@ "gasLimit": "0x1388", "stateRoot": "0xd7f8974fb5ac78d9ac099b9ad5018bedc2ce0a72dad1827a1709da30580f0544" }, - "hardcodedSync": { - "header": "f9021ba0a281d23475d3d5ff03df8636c9f528cdd91498af274a3b2f8989bbd51bfeb809a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d4934794004730417cd2b1d19f6be2679906ded4fa8a64e2a0d5fdd62e7e29dc3da1cd3fe5ad549e000260bfdb55f523fde008f26390220d23a0370ff78457d6c7469ff333a13165f4bb8057d00cfa68365cb4d1a8c8a1da46d5a0dea37365a20f5bb5ad3766a24a9fe7b04b946e35aaba74f862467a7c5cdb7d67b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000004000000000040000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000100000000000000000000000080000000000000000020000000000000000000000000000000000000000000000000000000000000000000000020000000000001000000000000000000000000000000080010000000000000008000000000000000866fc181925a9783763801837a121d830c317c845c9d1efe9b457468657265756d436c6173736963534f4c4f2f326d696e657273a0bb6e626c7ee3d827da18e1b303d9552ba17e92cefcedfc58bdfc5bac6a8ebabe882d8c26402344c24b", - "totalDifficulty": "598584828374329723203", - "CHTs": [ - "0x0eb474b7721727204978e92e27d31cddff56471911e424a4c8271c35f9c982cc", - "0xe10e94515fb5ffb7ffa9bf50db4a959b3f50c2ff75e0b8bd5f5e038749e52a11", - "0x816e7463af7b5d2fcb804ba55f09e8452182b0ba6c995a34e144245d76333d55", - "0x3793af64c1ddc07ab61b2ba120034d91c02183ff788f07d3120fd4e6a48305b5", - "0x14c6106a17e041032210bfa0ca80d11860a1c6d95175d55eff39f97b8d8acded", - "0x396f832bfa3a9c494e9245471f0e65552613d87b6fe62128103590d95de72c2d", - "0xb060979f095c170a776b2b50a1e2ab0ffea80f6e522753fa36ad6f106ee32e9f", - "0x8f452e7cbd8a333ed04d819a143a8d3a75fe8c58418e7fc420bb2a717c0d4d2f", - "0x37fe1b0cf156bfc07571569af210540be753777903a308d5707538fffed75b59", - "0x6f0561d017cfc123b3f0d37b044e4f7231516b8731a1cab89afb569238643c33", - "0x3c1740c410a88c60fe8ccdc44e0ef2cf7f7314818dbf1648c01d0d94fbffc211", - "0xfb98115a7d6df8aaa40115f883014fe97300869bc016648e918fbf2df9608d41", - "0xef1099ab5ca4b79369048678d3ba78122fc081b00b6fd0f6907302a260d58266", - "0x969575f411dd78fdc5b4def0331fc93702029cc3c78851331a0f47dd0faae70b", - "0x9e53053e362be51c0fd25eaafd9e7c5c969d9f2ce8db4b3d4d830cbff347b0c8", - "0xf9de29944954d2b71a93532fc26916ae12fee72d42a79adaf940b0bf75d0ef89", - "0x28b2ce6635e60e06d643750798779023b2a807d9d089ae9ef7f223eebc15a71e", - "0x5295c06cbaff06f42bd8f5d9cbe94a840885caed02f9c9ba6da44a888ef796de", - "0x576eae673a4cbba4c7c7a56b47835ea64ae5989d67d119ebc8e568df40d908a9", - "0x891c0d38bc5e55620615da42ed77ab33806a042512034bcee134279dde1054be", - "0xbab05999d657426a11a902eb4c85ac52e2b72dd1cf38584cf2baeb2c3727bb44", - "0x3bd7e5a966f6dd2dc456948a8efca5584f5a4e0033f3037843a42073dda1f71b", - "0xc4f773ab1e34290f9a3d9ac6ede4749c5dec547353dddea494169d86f71107a3", - "0x993bf037ea9dd58b52027fb6f39332dab867c1e72af34a49d58a5a12f26bcca3", - "0x48b2d8d506eb8fc9dc0402fef26952111449aca0f90d0079f0526435d4e3183b", - "0xfef8f61df240e956f43759d2f481938421e064a9bd6a3be7a53b1213cc9588bb", - "0x5abf01f5066cf1091acdd1f99fbd5fd963633feafc42f9047534a3c1522004a5", - "0xa0f6205842260988161183b51bc36fae458fa184dd61844617d5c5d26fa78346", - "0x77309182fdc26d15dd8d9dd05040d7dc623412785708d8aac39eedee63931944", - "0x661c93311b94b7d4cdcbc0973225c794e71898a2b906922a6c1e8f7e9e289dc3", - "0x9d5d329ee8d9fffaee0111688d31a308dfaac922dcd61f818edd5303d0955be0", - "0x716ca25b184b64ba273b978de098f9946413f6fcc95bfba5cf1169e7e03dd611", - "0xa2e8d5cefa5804894fb42a106340b00de3286fee0992b5887b2cf471539d74a9", - "0xf846e05c9e9e9cb4cd2b7cbae7ae183a43a59ab02251954db632e538adacc357", - "0xbc01b4e23ea082a193e4c1012b1da91f3b4cb762009ca320bc8ed294af874e79", - "0x9218114a32da3ecf660d4d51b101bb51bb17c771561c1946c099be082f0a96b3", - "0x3b4edf03dfd53081cf40c0b90b35c1ccf7c7fe96cf131172eef5eec62f620ea8", - "0xb15758944263c67bdf528d4d7fe05737fbdbf7ffedce5f891a4ddf76177d2609", - "0x1f119374c385240f7b4ba1ec3d502be2c12c159411d5393ff2bd38cf87033625", - "0x8a8d5a93f3475813926b13a4d53f21b28dc79ade2b50830c0b9043e9fcd81576", - "0xcc22f7e2bb9c06c15ca3d82df852ed9097a2ddc687ee389e662de000db0c84fc", - "0xc2047e0dab711db791aadb642f8102abaacf7231b8dbdbe1f60573b0be015a31", - "0x1b4088ceee7783e4563945f162bd5da67020ca377a18d615923e8564d6709f85", - "0xd73450686e33bbda9eef53a95a86e5a0514156b98a5b7dfc6fdc0adb0b83cbcf", - "0xb374076ec961360e38d3486a31c3f72225440984c4c47ca790b4961d94152159", - "0x4f723f4fbd31d63a5421390e68aba0aff97249875688a7d9ab9a339d9aac7bc1", - "0x5fe51ff982edcad6c0052fcdf9a70e8f325c8140ab75848c5d7b0d670bd7edc2", - "0xc3ad483c7cc23bf8d6ae3e3e829bf126d5eeea9c53b566a6da95bef573b9c779", - "0x3c9e50ed9eb57cc055fd9a65a6cdaba2030d8b41f81348f296d7410c1d24ced0", - "0x0c6dfc1f626ff9e85ff072c154152bb3f122a2c1a45bc2d9e7da9b2d5278149a", - "0x92f4452dbdb4fe70e84ecd47af4b1af90975219797cebd451beceb6997ab024d", - "0x9a3d00686736b5b838308da4b8f0aa9edccfaba64621ce2988cea6ea2a267efd", - "0x8d602d0bef069177102726d5ccd93d19805fb5771a350a41e32755ce740b9047", - "0x6681e4097667a22ad3713acc27b6f87abd54583230581933bed9245c2c457ac3", - "0x53077caeabcd926466319a3ee5c51c32e01e1812a65313f113f814d53e9f1dd9", - "0x4dd4c33e99d86ba84f976c639333fc072e262c0b76dfdf2f589300af54048c0a", - "0xbc3b9837a6fa54616dcdb8088080e276e2e99a23c8e7de4109504293703d524e", - "0x24316b344cecd5e601cc0acc91ff94f481ca3fa26d8478644a9d8bcaeb0359b3", - "0xa7bafd3c5f4e3f6b5c078d50eb318d91e867b0e1c966027e3e7458eb104ccd63", - "0xc8da46b7d778980d120357c8de2bba336f5a2ac7a9f4183a0ee1f7597ed47d25", - "0x7469fc5d8c9c648cd10e538710e0f126542e59a82484e7fe56b73f4ec52c36c7", - "0x993bb7c0487ff61c97e4f1533446ae35b6346642e1230f2441da8b354111d597", - "0x90e3944732f86a2254dc4f30650f8438dfd0b777561fb02a8ab1c60438569c24", - "0x4e8472483679b54bdc600010fdd164f54771d7a99fa9272c683b610fff72507b", - "0xf72a861a2ebc232c25529c0f94c59996e64c59c36a1326a183cf171bddf2a75c", - "0x7f222999ba9113e2a64fd026a8f7244e6d2ae8f2a7e7d8d2d6fbde6fdf0b629f", - "0x3304e769f730522c1c5aa745c448075df026b8f82a4dece84fd70d0457050985", - "0x9ee5e3ccaaf94461dff9df8c4805ca831f58a1586af4ece3cab14a45f3b784db", - "0x21e4364859063e20153d2d06eae4d2c9e99354bf97fbff68406d8825d18dbce3", - "0x4805355b72b1b61b07814059f80b4da0351291cc932292f23069197a74127726", - "0x14474f45f38d7ea51418e5f03751c8bfbfb9b3e2957d3051e862aa3c57a63c43", - "0x69372cee3e2807d10ecb72d404a033568a159a5b15d2007537ed9a758164b29f", - "0x147223b51001166a4e65372c9c706f011f1ae94f4bdc9ba6e8960017e8898703", - "0x11a1e48a5c1d7088c0ccb8177d54db9e9f91a99aa7c24f702cd93f4646f181ee", - "0x809c902b2f4b8760c3d2e820c93d6df69a5d184a43a6c654ebe7067e7212137d", - "0x749367027756c27215b2f57168ef15d3b39062c9f79b3777f7fa19e8073de775", - "0x6a9fae37364f97e36e56df97acb1b7d066a608d8366d7e008854756dd28fe748", - "0xdc2f1b7a8aeda15e6bf4f5f424bc54828cc8520e2e7ba27bd8e28ba2b543aae7", - "0xe0fabc892d5c8b4342ff488b76a0400425ea70774f207c546fbf2f9f5b105dcb", - "0x151fb5e02d8eb3c3192cb8c039bcb4c121c4ebeea5e7f98927b85a730a24bbf9", - "0xfeb2f2ea368d0bd4c0b0bd97b444c365bdc0ac9ce2862b0d0162387727edd236", - "0x1eaf828231ebbae54737111bf3c7181fe3d7e9070def1313470d3f81c89f01c7", - "0x8a1b0565013cff488bbe3f35df86fb41c7aedf4d911130802c473f4ddb74d6d6", - "0xce9158b5c903312fa636e074e3efe413184652581a4877d40a0085965dc0bf9a", - "0x1cf602c6306affe2916fa09d3c8c018f23fc44dec8af8e83fa0008c98b4dda72", - "0x189dc4569e96cab937265ecaea76a0880ec97d5b84ac1fbd0cd2d2b36a8c34c3", - "0xd698bd07e485767c1da30bb218265e1304f6eaf426749ccba67478817af84bd4", - "0x47d7e101de73bb0ca97a0bb70094e81b82c63e519a6b2aa5fe10ca7351232870", - "0xb0d441b6c41072889c4a982306c9a40dff77b43425ecc4d771c22f3199eb7708", - "0x7893071deba67f2fc8e1b18bedcac4dbc05a020f37c764c555eadc42dd9d29d3", - "0x3c6d636db3621757d60b2d0e1804e19528ce60c9feed1ead93731820ff19b11c", - "0xde87aaa462b461c4a33e0739ef4cf56d442b7967ac7c5280816a959046b128b6", - "0xb237b17650adcbcf580b64b500ecaa7ca36921a11ad92c1e8992c57cc1a7f618", - "0xec379725db43fefe61f2495f7f7e0531d852e21f896ae806144c4d9b4b986e96", - "0x65ac5548988825831f0887b9ff0f2c13b7f3b49e4a67c39b1694e76414249f6d", - "0x76053b72ec9e6fcf0a28ef273d3e1b0842c3c2c0e905f5b5a3535ffab216c8db", - "0x2ab1e87489eb1daeaf8882c6baa0a8726aeac522e9c4eb4df71e35af2d22cc10", - "0x8c9c6adcabe253b311f6a9b8165ff9c5e26e4cf41f1acd80837e77fc15526a86", - "0xf143155230223a3f126c757b85e193a9129f1bdf97c0ce1f2785f14d40911f30", - "0x8c510d9dca593534f3ed316f240ffb9343d1e3cd6d005df6a75a1b354da0b36e", - "0x3440975cf818a718beff35a85d19bcbbd67e1b16ca9d78af34dcde31a28b3288", - "0xf56ef9c57109f9cb7a925bbb6d453efc19e8a45b331f76153d20a87d86a8b0d8", - "0x19a360772872003f08508a28a362c6e05650b385c24a928ddad4d562bfccf412", - "0x643720694b3773ecf20437d54a6be701810feff233f435dc701dbe88c9a6a13c", - "0xf8c0babe99aa26ecbfc91b304d9cd54ccfb37354c4fdbeb3207bb6d4647fabd6", - "0x481ccc7213d0188e817c071c4cc3a71c96befb9aa98cab964012fd7a8267834a", - "0x02d83ca8d92e0fe6ce7643ae93af60e38ab5659a84c04beba678ceef654aec12", - "0x24e6b4bcd0d97df196f2371532771593fe17be8fcb89f1e1164bcce8616088b9", - "0x3dc91775c50c04812f755f3b48d3d6a0cc599c586ce9d105e2cf4f3e4527b515", - "0xcdc215f05398ea3942d3a38078a3602cbe8ac549d4bf0e4a54191ceb2aff8f76", - "0xee02874e444b784f4265cc60b86a17382d277d03c8bce8a33241460ea8950699", - "0x35c34bc84736fdcbc4d4e2e089f30bcd186a052b2f6dcb639fc45a0aeb6969f8", - "0xbbb3ff849c36659bf2c00feaad9f7b3a342b5cfcf3555b7c2e467a0dc84e90e8", - "0x0584bc60fbe3fae9088c214fb519030646c3240f77180a0bedecd3e9c9f47f89", - "0x9d18a665d89439ad2c97427bdab3e598f5bc0da6a0ede2378f95c5bc31f10d12", - "0xe8a5bdd0ffd33a6fd03cf003c6d2afbe8493e0f0cb69e6366e22b4d1ff985101", - "0x7ca955f4e01eef756b680d09c25626cf50013faa20a12b0a334fd048a04e7b91", - "0x064254551457bd5e7a260a41ed3643746202d503813ceaf42660f9bd1983be34", - "0x1191044e354ea1e3daa25ed2175a6517659e96733d9065d81492ffe4472fb96f", - "0xc823514cf3566b1bb2e19a35e0ef0980bc483fa820d13ae2cfdbf15fd426c272", - "0x413f941f192d0ab77bac68268f45e2c9adbee23a3324d4ae8748d09735355a2d", - "0xa66c94b9603b3058b730baeba1b79d52f548ceeb5bac487903f92481060f6804", - "0xa84d4a8860bdff1fdae6bcefcdcf700fab7857444ef1e76d8259b005872a4636", - "0x9fa64d44edd9c097458d3901612a4b6f655a1421ebb68541cb1a4bdbbe24911e", - "0x402027770edb387510241a68a235723c6c5c95aed54dab058c43d21a6bb48c41", - "0x776281b7e341a66491603b7ae8ed7cc82b99febac43f94cb1c4dda73b17aab63", - "0xfecbaf0fc5a02dcf49095514ce26df927def3cf51f37e04471545aae2364f936", - "0xc477d9293f0ace7243f8b9c89f01210b8f96b4affc9d3332147ea2e2b693c99e", - "0x4a8b9afb9d9097831b2497296b0fd0fae76ab8a596213daed35cf87e6bbefaed", - "0x594c4e9851eddbb4a6c2ac72aaa244ff35d67262efb20935360360d39f7c7ecc", - "0x14b7ef22c46ba8400979b6c06f3b3023607145a5cc6b5b793daae758cb655245", - "0x3a9d233553d1ca4d9862a70ef133a5fb2df75276fb24297b0bd2927a39459450", - "0x22c5e227d5fa7616603bbf36c5e4ee7dbf285fb0cf403a3ae982da70c825cad0", - "0xc2c8d439c7bd884665da56e3b680a5e58ad1e98627fdbec6fa67d7bbfad33a9b", - "0x7d5682cd9f28493ba4b87be141ec99701bbcd1aaadf9840b81de1fc07d4ffb18", - "0x8845f626c5f78d1bea281f892727437f9de8f976e4c4fec6060b2115f1862db5", - "0x769fdf0bcdbaec1ffe98cd3500ce8341b4d7ea2dad5fadb0258212306ccc75f9", - "0x185569d1980147fcdfcd0e0068ab380f0cfa58a690334a558bc1fd0d07897e96", - "0x0ed70ccff752df46f981043c5279ac3f13e7f62c2bdb9a0a9817a1c119ef6402", - "0xbe121e28349e80d601ab997af844aa03ea6492e88d75d3d46517d8f835e3c3fd", - "0xa7aa5f0bb95566292d22891faa75b7ff2020b69fecc8a22d796cc3a60953d98f", - "0xa2611b092b00f78fe639c4fba0274ae474fa448b3f2e4b8aa4d06c654720d478", - "0x8e425115b98f5e41c8b5d03a9e17d56d30050d85dd06cfff12f002c546a256ba", - "0x988b449fbd8c35855154fb4eb22ba6b7b7095be26203d137f484c67facd40dc5", - "0x567c43ac5dabeff01d6997543ec7abf7998088a355a6ba8e70f41a243dd1343a", - "0x6f560cb650142aed532f17de763d61d021cdec2716b0d2cb27b3a64052abb874", - "0x7e4ce5fab8f4f1fd41f9e5f10204032ae7e0e38093b1d07699318975b33910ec", - "0x91a0820eec5390916bf464b1d16c00b5d94386c4c9f4cdf7e0b3cbe40747fbc9", - "0x9c59451a9a242123efa72c5fbd1564b7bcc0067ea9d025336d228ed26b9ba6c0", - "0x1043a5ab3f5a3bced84faaae0e783abb3b81c2b967bbd976042cb5d897d28146", - "0xfc37b3b3c0be392ad2a5e36c120eace1d14e637ac806e79a750b9a6be3c742a7", - "0xce2ccbada44a8db5144073e69914b322dc015273a75b85ea43fd9e21037c760c", - "0x6cf8336b5a410e10604f93351242cb3a6929968212abdf85b4ca9321115b8fdf", - "0xabbe9781950362be1e206d91ea1bdd6f32ea2c6df65b277cb89050ca1deb9296", - "0x922a6b85add6839494c3edff389aa1b054409c330b4a4e2a6c0e4f9bc85b36a9", - "0xc26dcdfa135a09b7eef1e99b445fb66aefb8bceb6ea715b81d78ba87cd56ed8d", - "0x87d647fa7dcde81a0e133aa949d574befefbceab24a42ae4f3809d2bb52a2d9b", - "0x85ee37fa7154568b9dee8a539340f99c7f1bbc7b9be1f2055636ed9dfc074e4d", - "0x8b0114dc9e249f1de4bb3d055790e4bf18aa28a938f39e8a457ab4a43b0dd613", - "0x3be36db134f4c00fc9e1bc376213c7073389c993b0b0744cba619688d6c037d1", - "0xfaf987eb2e066ad8871c489c23102ec5c58add2d13e62d56f2821cc1f4d66d84", - "0x678478da2955e6876ac49c5146e9f7c376dbf2f170f6404054ae4385e72f3f19", - "0x85d8d9dd6c2a8f6b6a1c0fc0cb55ca870d9a7aae1621c143c3176a3a81fcc29c", - "0x76f4dfa4c3387408c823a75aeb872ff39af3820375ff52f7aecb41c96e4faf2a", - "0x6e530647f2e4232063de2fa8f673989d7834d8cdf529791032888f2833880b80", - "0x64422b4dfff6cba0eb6deaeb4593eefc40a357469a7f7c3be078f80c66161333", - "0x5c7ab740510a4183832bd78e6d6105b0f9f928611f7d62ef96aa8dd8da48a72d", - "0x0bbf405e29f015d24e64f063d50ec6c616af64622b1a4132cde86f926e93850f", - "0xd9ba81ea0790f1f8adccd0bd203c7adeec2b490381b822d6b15293cac2f26206", - "0x4f78619baa34f2278022c509671a38d29366936d6860e79ab540ea46b66ba782", - "0x00c1f10211d7604e59a327239f00dc6d036a93416b7871cb214e8eaa52571834", - "0x1b6636708f97485675c0e5b21eb749ee4a5fd0dd886e6690090856bcc5178ec0", - "0x71366e853968c1bbbbf8e3d6e13100dd589521f8db9e561dd20ff8709b5c1a96", - "0x0d2c35a01646cb09e2b56b5792ac03047848bef7415ae26f787cd54ef8f327da", - "0x1c5b71047f99db30453e502c9acdf422d3bf97b0d42b9223ea1b8b9924bb0cb1", - "0x9988eb36e4a669638e3242e5ada3e6596c5e4ef36a83ed2d3348d35fbed4d3d0", - "0x8f00020f98f02af0749df39fb2f534d356e3dbe809bdb3f435c4a575d661d6db", - "0xf70a509c0d1c60afcafc7cc492c5ad575fdcadf6ca8e0e5f184c62dd52021129", - "0x72cdb6544dd469ab42e270e51d136b314c27ed0d6682f914cf3e0398399d2d5d", - "0xd5584896e649b618ab8257859e42ef7798c37cc85103a8019cec10b1524519f3", - "0xd70636cf5cbe78ba86b8de902f83f9c550a8ee31a019da6fcb0b1ab0a02bd31f", - "0x79a506d61c89cb7b1aef845484956389d5f6077fd10f8d1ede1e92474eac15cf", - "0xa66c0575cfea08bc6abbba03b0d10be7bdcfe6c5da9058cb34c22af2c8f3f1d9", - "0xfde316523b6b41fedcf11d776a53bd27fe3058c3912059197cda083a14410689", - "0x6774beba5e02630a7e4379fed7175f0f3d9f8fb5333451f25d5b044521ed38ed", - "0xb513ee7cf03529c88633176792a6b08585ff6163fe174f68e285d6315ffe33aa", - "0x4482f3d82f65f0fdf71fdf669403e0b835b5458e567dbd295b4f51d22f01650c", - "0x1cf0c0859b1839ebfb872a570e0c17886d8d7f26067bcd16af7f9f0415001aa0", - "0x231be14cb1cec949a4e806a7b3aebdb074d58e5a1c48b85c35138d5d3e967e0b", - "0xe8f0a0ef68efb2ea1bfb5d47e3c9446900329ff89a3ab7eccde41e09ec3e79b9", - "0x16348cb5e49e61010da09a5ad3cef83ab369ee3d0f28079584c23749cfa30238", - "0x6d33bc7f502436bfd0d574c3f6b1155c69f8a80e55c42c353e9e68abb46d932e", - "0x0e5d40ed7351b59846ca3dd8cc9c0eb71d4659e0add0dbfb0bb7f518bf45c821", - "0xb1ba4509de4c0f1212b2b07d949740f15ef8df9af8e7e9d765e6b407a0c5d717", - "0xa99615bb15371a15b92c119f8632f1ad7c29d6eb9a69e0ccf33a9dd268cffd54", - "0xfc3601e7f85e4b8e996bddcf1b34cb6c20462e21c715782da12d8e08a01cd21b", - "0x872b0f4f3ef00cc5cc6fdd71091de96c02f5898826fda4f837832f302497b51a", - "0xb34656439e4474e075d8ef523f6f74ef292a22281e6dc0b8fabdfd2339389919", - "0x048d4dc500031aa56d89e799499a86d6dacddea795ddc4571669fa55d694345f", - "0x684b8762b97a9d650f0f0e5edee73b60a29f6e75573bd6244518b11c4a571533", - "0x5d20bbacb93f7b03d92ae0ce8296bfd113a808ab3a8bd7703838d7e8356b6714", - "0x25efac3c3bc3d4f10ed9918fd9581d68eaa18fb72d3ce7ca8e36525d8cdcae73", - "0x48b593a335aa2699a5bb5a60394845c7e4c78046e050aee1c7f8831249f75b26", - "0x6db7243073caa6e5c0442f2f3926885fae0385e0238a69784ea8a00c854ef8c0", - "0x3a104e4932193c644e2135008d78c5153a9331e6d9dde878357c250a3b42b5e7", - "0x74b3b4666fa9811702d4eebf9680053043160be3a6c31a0105c703e07d530710", - "0x179f67ff0710067d3180ec03d664fb3d9936e8777603b051ebad4cbd0aad7763", - "0x38d5fd43ca73f66127a0166ae074324471b1a92e6f4bf99fde235ac408b35562", - "0x1f43748a027e7731c2fe5343ba7b61d7c6c6933ea45466b439a43eee1a3ad398", - "0x6b130b75bc42dbbf76ad97287a3a130ea29122ce7e48c5a8bd1e80a5f3121364", - "0xcd17f77d87174ab6ad6f2dc60d37144aed40b3620a9e6c9ac3e328aeae3097de", - "0x3b7fe9ef499348315c1a2877bd7fa44b622fcabc588687a6de4d2f75aad3f642", - "0x6c73525865791a7ca8410363d634f6babfaba581d7a0252c7f57dc8c8cec583d", - "0xdb16b0220e129be4c929888a8a46d21d422a352ac7b0360711d786eacb56598e", - "0x44fb22efd89e585079bca47bde1073dc052f8ddbad2c27cd8e2839bd4350b18a", - "0x1e6f1395d417a94162117b9371abf3f781a4b05d787f6a38fb0101bc36e548da", - "0x3eddd0764196fe15d7ac7069c04c4bf23070e57931493e9a0127fc521187b698", - "0xec104582dffc06da3cc1af1c8dc7522d26ab2408dc0f62051da2ebae1ec1cbf3", - "0x3616cc0faf8a5f5c19cbeb482be2ea8de01b2a3e81f067366c715607cf29078c", - "0xd37ca9cd5dc7c3c4e2d2f1b3c8db2a016b52444f1c088680c8544b6cea30cfe3", - "0xc3d85c7899da428a305d941e3637e33eb4981f071ee07c1ee1c82aba7c248167", - "0x62975f10a20de37466b1822859f11774efa4f37fb701f6cc0695d206bbb51582", - "0xd940124857e67e220e3d4dc27eb75ff048aadd9b7fb29b680cc3743b3ab6365b", - "0xc89ac3aa4725191e56fbc87d41caac2c692dd5adae638bf741f0ded040ca66e4", - "0x97454878805915bcb60c9915af0fe0558987dabe5d506e03898dede96544dec1", - "0x6ce55ffc54eec31d980ece5204876a3f366f3148a4b8c10cd190153cfc96defd", - "0xa4e923671f4ff6dfde2f11cca452ed4208808e93e1131de4ce0804cbe2e0d3ad", - "0x772d1c2a0e70fe37ac0ea8d7b4a789f92997bd654809f20f0ff7ad76a6d975c3", - "0x8d5de87bc2484465a4876b462ebc1339bc13b8229e6df4f1a9e9b458f5e9adcd", - "0xdb33cbb2dad0eb38613d69392951c6062eb669035691882fdafc526133d15d21", - "0xb22b8c0887f71de2da3d81a5fec2213ccb8a32060211077e2ed1613cf7962e94", - "0xffbc5a82fe0c2b3f3f34343ba6823f35884c8b1dd80fbaa68fd5f33a960034ce", - "0x9640ded5be08a8a7a2e6291a91bdd58bd108205f4cef5209ddd338ad764fa9b9", - "0xaea7f934206d00a592502b8b85159e64b56def4c72db3a790ab46ca81c75d672", - "0xb99ace258fe4e6be541c6e3468913f4f32ef9e9d1375c889e17ceea0c606e729", - "0xc54ae75381803d00b52ea6fa620766662e6f7946d550208743fa64d3aaf22c54", - "0x4e773cd4fb2347b796595cc67eb2b5c7be6409bd8b1944f4cafecb6fc5a60a0b", - "0x263f3826196c238c24d4c792c3c45fc913d4cb94c2d3871827ba43faecbf4d94", - "0x7ae1714256e21b9b45778795cdedfad1160d571004f5ea6debc16406bc2161f6", - "0x0c271dc055d8fb1ba9bf133f3c85628ac3c2b588091768380a881a6183514b51", - "0xa5f41cb430b02fb1027d8e99cd94dd6666516c785d7f618a0894f38f811bdeed", - "0xbf6665cbf1037e0085808897d8b04932a6ced6755fa52555ac00737e8029c7b5", - "0xaaca2ffc61693a6f379e54af473802770b3971f6accef49e5a2e8fc122e0a490", - "0x7a3eb7782e2c02776aa29964689cb1b880201e1b81c8cef39738d7f7235fb022", - "0x7bf417dda75c46efba6a8344775915d2b69f954afd66d8f52576e106d7a7eee2", - "0x3a324507874480d0f4e8466ed6602c99fcaa7907b61e9f2b3f100740f7866fe0", - "0x3589941fb7bfda9bf50ad93cfed18cfdf199a6468074416aa513cf83cc00dd2a", - "0x66b0965611bba105667a3990de5acdbd398d8d6e2cd0276b83814c4647bfe461", - "0x703258ca6154ec4cb1b9162678e3bb546ca6f9e626702f5f62dda98fdc0fcf26", - "0x2a9a8e3537b714cb3e158f7ecc816239786ea3787b1a3bd40482f02eb0b21595", - "0x46104b558f57296b0775d63ee4da42a716c234f3dbd7479204f35b31f4b3d55c", - "0xe7d9d0a86cc8b76526acb8e260de17508874d1db6ad19a4a84210a010212d43b", - "0x04af6e8bd51cf4c4307b2381b2e0c54cd991ca3c7f49b8cdcaff3aead70efe48", - "0xab8fe05db68e486bf2be0c507b834b6e496c1d1fe560cd3210ed7fbf0e9b867a", - "0x0e6b5f226d0bcfbd1f0a2f61189592d8974b16376fef3d0a67f757b796ad6854", - "0xaab68c29b061f8f72d9f3c6f2e318a7125a01010fb0c547835fa31e72d8eeabe", - "0x0446f90437150e4ec6246be5c718e5054d62cbf5878479457d522948c6e87f83", - "0xd1b4669e21c0b175589c0942d4423cd2b438de6665f0bca10818eb6246a07749", - "0xc20d1a68c015d886ef8fc3dede0d116199480164238617667280f833a4dcbb3c", - "0xe67504ba38aee984e9118960827ddce0eaae3d8797bfc87afd4638cb1867e41c", - "0xd3e985af3bf3e3ad0dbcdbed9ff1b04037bd1ff2e71886db3842a29f0ee8c4b6", - "0x8b809d1ae7a835f318f471ce227f7e7ff563a15d1e2463e8fce5852c9a3f9ce4", - "0xc232b56170a5796aa4333d29ad8ba43dab2233e0cf7b48d100aeaa4b2491d6da", - "0x9c338ecb25290e91a83978df4f5b7076b299ba5d87074c36ec96da0b3aa9351d", - "0x616a6134eee1221e531fc6d6b5861f5ced64e9b56505b169da67ca3c47cb54ad", - "0x4afd1e60cbeb40301c2ccc7129042f9a944f4a383a4f34b8acd7aa454fcd0e7e", - "0xd52d1be650ed156ba12b0d6be4b7fda1fe89927bd7626ec0ae45663848144e7d", - "0xa212644d968f7d3d89c6f12c3c3077184943d986dd9cd391d48f8f98eb1bc6a2", - "0x8e3374acfb9d1724fd7f84c22fda25f91737efde3d667f607b364e51beabecee", - "0xd77eb30cd87046093b27be1a09d93cfa5261b780b99116a79d6c16be7db838ec", - "0x05093b9e39e2d9f4fa95ff386cb2af67861359ea6228242be6b323c1eed5c7c3", - "0x8bb25606225d3451a981af24506a549e2bf62a362149e4c77ac72eef6316e691", - "0xd2749fc4a37792b3716634e3dfb8a80ba3e30fd73bc119069d507bfe7efd8a1a", - "0x3b58bef2d77a04b3281e6cf80f984b9067290bfe02a596b2295ccad38e887a33", - "0x2f69797f1800e5da4a4086909058ec857695a220644e61788b24ccfaf7e77137", - "0xd81872c67fbbd1a69d4805cce578b9f36bfd768d3fcbc2fd610182a7696e23b2", - "0x2d3bc9fd303c12ed1ca7efe27d85c7b5ffb8e079e59c86977a113bbbf863549a", - "0xbaef802512a7ea5006cf816c51c35fdae44a86daaeb6e9dd8fd0c37b4f744875", - "0x2e7fb70924e6f0b74541f2f4cb13f49bb3bd577f5bfe1bc29d805b0e7e1a3df1", - "0xe3918602d83478eb416dcf80103b09a051d5cffc71b0cb21461c5031d38befb7", - "0x87dae7dbb38501d6e84f738c11615dd9eda5f7b77e096a765caebea6a8c691c2", - "0xa19f74ad3f4e218fcfb15e4af95713cfff4f5f58169b789167e2b62617023697", - "0x744930fd0046b3f7de0ecf721e3b36e4b36c0f49eb98bb0c9ed33d40e76a2017", - "0x5bc7194687200989382831785b43f7f5efb23105ee2dd7a620a61622a2afec44", - "0x3672af2176d897cb8f64f2decfd924d74581bd85916be85e53f2542a54a24b94", - "0xe2e2dd1875e9265072d96bda4640ec6beefdfa9a91241ae078cec4c2a1c9b8b3", - "0x5866de65d88610e6123b7a57e28e196afac484045261d1a16b83fa232ba267bf", - "0x7224db0ae652be5fe9017454dd40c744c75e513841b5cd11d5fcaff598265c7d", - "0x04438fdfb56d125bb13f6b8bdaced6946299f8a32610205fabf4a8db9c06af60", - "0x9e9af6a569b87a4717b94d8253a0078409bbce7bc08874e091163b621a75b999", - "0xc8a39c68a74f23d615ad49d9d175086bf4e1047a750165bb071e3cdb70e1d639", - "0x10515734fb6d38cbb9a7ef33ec7831646636f845ac40cb24b08c432422763466", - "0x1604dce1fd615791c66246a7cd82edbfe860a5ac48d000cac1984faebc00cafe", - "0x56311f68cc563946e251d8c0ea74adeee6ed8dd7aba8f6ea85367defd5dbdc41", - "0x3fc81adf318fa6db1c4e7ff5424b235943667f2f3dce5119618e0273eb23c93b", - "0x38576704f6ca62083130dca418a9b68e374944d63521fc3f4b7039754d62f63f", - "0x56e2a402baabf470d0f9c3496d75e2c26c26ac159b996c370b118a313a9e9464", - "0x501af705914bfccf4ad29c38eee21641590cd8d334dce9055d90bff57b8fa556", - "0xa734b7f045d2a23ce602b032357a66763714c6e4785768f07d55c22d2f1de372", - "0xc80e2c739a3d142a4018bfe2074da8da33c471b93f5e7b44bb150b9eb63e956b", - "0x7a0b1355d05b1bf4c634651bbb2b6d65cb0a9772c30e4024f5e781e5d404376c", - "0x73827f7c7a15db5c17a986f31dd92de05579b0bb8def065e5f1cee472d00281d", - "0xcd64ee4b2a912d48e6beb06e7d6c9c236b5815434c0ee21cca0a13ff23dfb85f", - "0x768d2fa63c53689ed899f47c6f78844ace885fa18a36da427428f4af46a9e1d9", - "0x643c26723d5a4831d3d07f8692a6dc4456bb6190ce2abf1abf69159942d5d548", - "0x03e20a75c4546d5f54bbd7fd3e54c795c180b880563bf78ec55530a89188a9a6", - "0xa0ea4095dd9fc6f817c656913f8cde4044e2806488be48770de5574c0b5d5f8a", - "0xeead5fac8f3c83c5a10df161d95bcf1d27184c9fb9fbd813ec5f61347c11280e", - "0x5afba4426fcae0f1769e581fa6af97b5ef8fd417771f10405e1c9d09a74357d6", - "0x087f65be7fc2a14f216d7ce418a03fcf1e6169e8620db65c11d1ed6c0afed240", - "0xf9a7e93c40788db39b241e03afe329b6336187fbafa40c97ac405fefc1eccfc1", - "0xb02450b58c5afdd0907ee745263aa6beef662646b96b9ed28b0dbcea4f358667", - "0x5029f1169c92671ecaad7239f40fd93adf3ec07ce2ed0c4cac38b0cc8034def7", - "0xc8465a93a1ba7ec3296d98e0b01ad27bdbf16a347c5517b450905d3c3668d505", - "0xb85cd82c551bcb30a747b2258327dccb04094f918e36c3f120f55fc35abf59d9", - "0x1721b2fb8963696cdf32385fe87e8ec2c2d7fa34e099bb65498e4a030e20a1c3", - "0x6b6dab262c1a32a67353409d2f8b791b1799ee6a8e3c880877af0bc5cc5b812a", - "0xa634110e4766d3451718061efb890238796370da3c4a53a91faa96c8944d2423", - "0x91ec6c6f807285599e0a179d0d246caf10152e733acf3bb967bae35fb36561ec", - "0xc3b2012d5cc8d796d1890d39e2b1730dd53df0b98274bbfef8c93bd969912852", - "0xd036b9b29589cc551bf27ab95b6366d772e7d692d8fba48f473a2fc2d023dbe2", - "0xc51229a0306e56a53bdab1fda497281e23aba6ab17301c2eef3ce3d01f56989a", - "0x2652cb79e0c18dfdf545562b8569cc2775a1b0b1b465cbdc5880b40ffff22676", - "0xf24e0d6c03961043cb41638596c4ca02e2a2522a3e828dc4613a72ce5a535a67", - "0x01725e03a7cbfe2d6c5623829e4d419bbeecd1c7f925dbf1667979bb4da6650a", - "0x3b0c9824b726b2b556c6c46af48b84f856154490a51d775ba06aad48055bcbd7", - "0x2be2f1cb826d7575e53bc5e14f1882d73bfe145ed91b2ff56a885f66e136db46", - "0xd16752cc862f33b14f5976049dadc4f15f147f2fa76c50bafb38a7cb25c8f881", - "0x66b3ba188143bd421009c082031696bfd6d29fe7b9c3345e7e70bf6a470a05ec", - "0x83e017e8701b533c9fd22e30d63c3781b0ac9ec1dff4433fe7fb5c8f6f4e67ba", - "0xe4782b025953c5980653abd26eb95de1bee0524c14a74b970ec5615f98ed6768", - "0xeda29e9b36262e7c79ef9c0b60fddc66bae542b19caeddcdedf439573f773cf9", - "0xbc02ac1f023993253394ca965f4394bb40f9c7822ed6b2cbdd249e4b72f9b637", - "0x8e1bde0f2541d20b7f7e8179014e0f6b98eee5c1e0278ff1de38f4c13fdb4161", - "0x7b762d3d64aded9ff99e3423d7e676dd307b765ca6f1295e079ac53d5a4788b1", - "0x1027bb44ade6a1f82f11e9f298fd3957a9636bfbb97457c319e3d57ce72146b3", - "0x963864b3164578d4a7e58de16593273067a641de752b6df2c9b8bfaf970392f1", - "0x16bdf92929fe3629a57f737d83328d034c36bbdcd006301f28dcf52e1d1cb542", - "0x69952e47225f1aa86d952afb0fa8c668ae710a10cb6a94477d518c8f771f5c30", - "0xe68895f4ae2e4a35fb7e0730a5ef9c3e3030f6351ff6381f77e6311912ced98b", - "0xf28d799eeec538dcb2f371cfc6aa16f4a6808ddef0e6fd0cf72fde291d94f8ad", - "0x5a404922a9bfe57eb85deb66d8d83c869ddf96eae17e7fdfafef19c19efa1eec", - "0x96b735672e85aa95c2f8b4bd5ac80942923cff64a24991b3103e4ee39fb9a8d1", - "0x83d922f50174810fc45daa5a607a9b4fce69d8ab86f428ac57ffdcd9c2ff2908", - "0x3b0ce5a62116eafbf445afff0674112f01e1dca0e2af2b72d0cbbdc452177d65", - "0xe86cc93417c7dbcd4b5f051f4dca1394d272dcc2101a9e94a140b20f5e4c8b59", - "0x99b3e1d593b682e1b6454675593ed6828f8f4c5888b965981e3a7c602d89d031", - "0x81e0eafc2a2adf3d94938c413cd9f588e7525b91f39a689dfc3d0ce6aeb812a0", - "0x699e692ff89a918eee6d19a63caeb07832dabf1eb28d04ec97150c87045d9129", - "0x90ff00b66a14d821b05f692ee6d100dd61abef3234fd29e94bc84574439ed2e0", - "0x2de5779a122ccd84a88c3adc4edf7c1c03dd1d3e89ab45657885aadaa087e833", - "0x775a5587a907aa5ff13bafed032dd96c312b19dcda1b0e74e8a4bd327fe90e50", - "0x4fa48215f975442e6b9ea0629d308667242a7fe89f0cd0eae55ef1d35a3d6ab6", - "0x2e24c24731902f1b9e4042eae9e946b9d884dfa9f733ea5d4f7e778b68daed9b", - "0xf23a4a6061f45b1ff2095adf02ded238b37a0ffa9653fa9c1b0069e37e8552be", - "0x62b94eeb74bca8d9ea91aaeec5c13a05dae022806df28b92ecee99b47de999c7", - "0xbe6c1797cad2d5d9ddac3b3adcbf1622241e2560e3407139e24dde3fd8d3e435", - "0x7df0788058bea0911f2e30133c835515bd777f7aa9cab6bcd27eb3c0a6e360ea", - "0xd87066a4721ce567f44abf179184381d81c1c487158a6c57b5f2455472209a5e", - "0x0aec7d3081c3ee7d61f36e8c7e62ab74e41f00b664b690a341b9ff7feb5adce6", - "0x16345b31779e80499dc01f9ccaa0e9981b2b336500f33cb1f2943b66ccbf74d9", - "0x9ed6c6685dfa2b65903db0b234f4539906121330c5d55e6b2a2fd30549b2dc23", - "0x6539602958d9166335a7a0396ad72be611661bdd40c786cf9b0f382039c6b46a", - "0x72bbb4a201de75b9a4b5cf7381308953234c62f295df08b919c12535febf6fea", - "0x2d37293863f6b90f43979ba5944bec302008957e07b7c7f2292074a0a3934674", - "0x22677859ad20cf8b924d516b9f979652ac91a27459a4eba5455beac7f5f23128", - "0x704c898c04ead58c2fdb2c753359d10934e66b326f104be28ca7a32ef05a2bc1", - "0xca2b1ac29937067b761b57b58ae4069eecc799dbe089342bea274e56fde3d1bf", - "0x4a9773e6a2e75dcf1ff46c8f9931b8170a3609023f47c0ea9c4af000798bbc22", - "0x7e4dcb6c256eca2cbe9d168cc78c2702c373fd6e69c210d0713e2766baba148a", - "0x399ea7dbb66b95bae693402eec304f9cb6f4c6ab729d90ca569fcc2bb24d6442", - "0x49d0e561773458f834c96e8fb9496d4cdf83f2cfab75824cb1eabf8e8962c18d", - "0x80a0a209e41d0c3ff07ffe6a7f1af67997662494a327fa7f3bcb7209340974ed", - "0x2bdd6d6e7ae3f4386fc655817e92563e80f46e1b277be22f81a689de7637ea1f", - "0xb77f32374161e54c50dbc38822760874d966f9e098a2ea7aedf650adf25cc0ad", - "0xb49b1decd65a998a3dae2e4725eaff56276af3f0c50b2a3a35b6e94738d32808", - "0x319f78ae885011458f47ff1a110881cb4ac6a78c7d4d7a2656ddca73a88b58e2", - "0xd9fa2f47bedc0b405df34c98582b553dde76a46d38ac86d9d357ea0aca60ec2b", - "0x4283ac57e82bd08970ada71f4617728bcc467eeebb19c3aa20208a82b18fb508", - "0xf2ea3a5ac3bc77ff64f7c686305044cfe539856fb2833cbefcb283317012062c", - "0x840a9b8c756c3c3de7170c3597bbd085747b97419c01bbe484fc4cc7924736ce", - "0xa88682b957deb995307ed875c4044246d779e3f8c584cad75162fee119613806", - "0x7b9195c23833f65832a44d097290d8573b43e6f3e47dcb8c3826ef9a52fb4ff7", - "0x57bb0076c87f2e7187ea92f9f7643eb5b4b823b8eae9f6e74c8b676dd86b81a2", - "0x68593a8268b245a5c7506a05860755cce1be795994a7d736aba41ead4c025a68", - "0x90e21d5927d39329874688312eeb5296677ecccbbb9c6bdd4400c50c9bda09c4", - "0x773c0cde2d1f44575c89106a01881eb5d9593bc762a40be03ba979496ad7d229", - "0xc1dd843534e9844bcf406cc03b277e71d4e73026635412e25f3555d099f26a55", - "0xdf3f794bbd98096cbfa17e168c0de845383abf52fea618937ed81d31cfdd88db", - "0x1b05b1f316013609fbf813cae674f193a9bd8a75631b55278bbd37513b85641b", - "0x429321ddb251fadec6b6f794acdd8cc9d93512b98af23d20749d93c3c9fdbc36", - "0x6cac90b28ed13c907d094bad45574aabe2355e13e6a9504b6001e5fbb9c25235", - "0x89b43a3f63a2ce4f67071a121f447d7e843948395616116ddeb57a8714becd3e", - "0x6de560c95a0483d51410f66f38884947dfc787e1c61d14421129773010b46e0d", - "0xa0ba45049971dd4b906e73f917fd16312646d53c0cdfdc3eefe53628a58973e8", - "0x3d4a4f7155eac18fb5a126dcae2035155a140a84718f33bb20d2f1461e8cedb7", - "0x1cc19669bd91087d2046770cdc34e8f995cbdf2a0cc62bda70d6074ed58acefb", - "0x7c1c4aa1817de27c62f35d66927d924376798c954d65ba3ba02c0528d11d748d", - "0xf0d67a8f3c5306165cffd44476249c254898bcb26c937f10e8ae244edab1b972", - "0xcc20c5ecb1d3e83bd56e9213761f8320bd40982ab5fb669bed774b4490637932", - "0x7935073eb3e5c37ed1135cb22bfeb0e21727d170d106465fc35de75e8d56cf41", - "0x7d968e74212c501d0bc26ebb816b57a37a8cd2720caddb5bf66f489e13a61bc7", - "0x2c134dcc35d50c63a13bd8868137e0240280f049d7e392b97ff5f76d00aa1296", - "0xfd046f06c1d46d9125a119f786acdd76a85fc596f21cb15f367933b717ba7d83", - "0x9f5f067e4af3c8e92d2d54dd061620f0a13a66006b162a1eab4b1707499597df", - "0x8a6e1fb6205a423ec2920d448a376b95cac7233d5312287bd850471fb49e4f8b", - "0x2a6ea987659383f9885d24c935fe56de39d45caa89e60ba1768189318974ed7e", - "0xc2df6c8a4eae77eeaf11d7e5e2198ec4a33f19f5995caab4db6577fc1ce7b957", - "0x1e2ae8a42eb937749284820e50f11dfbfb606ddac3efb201e0b2664dd0196d63", - "0x4d63bb91f9f8a9965c460326f0604a27ecb0fc56f2126c6b3519b08a895747b7", - "0x9a46c2ec5dcef6f5c5b76d4b08b9d5085709182243cb8308a2863cca8cba13dd", - "0xea57019cc85f7cece4cea7eadda96dc9e464df2689957ebfe8d817b6996b2e43", - "0xb40e930b31dc1508480ffba351b102c8cab53c6603a0dd88bfed1b0da5347153", - "0xf51ceb070d8e7cb998cf4979ac985b4850949b4456980f523d8b9d72604a43da", - "0xddd28627f5c7bd213149bc4886bf4bcb8304f86068694fc743ac81ed749aec3c", - "0x9ef2b3df587caf086f4a9838a829491d1ef45db132ea71c6bc96a4a40d833e92", - "0xc9f7d4e19501c48dda5b0012cd93564898ad080a653e29f3563ecd40d36de84b", - "0x0565db36e6fb7b881eae309fef6fcdcace7c92a7ff148476b627c012aaefe4b9", - "0x08912abab10f16b92ddaa3663375f6e2b656e4ed89f2285aab6e410fc59e650a", - "0xefe9e68ca3bea929722bcccb5150884eb23c32153b14644b1c7f4e033dc3f718", - "0x4b33e0e078056d9efd857f909d1e409516f23da68105463167e23d71c90f6366", - "0x63cd4d1c69c4168798a3d9f15388207ea10ee4dc6be3681b0c7dbce5649d8f90", - "0xc8e7c25854d49022e9a0ae2eda8e7835a6db9ef7d612312e9deae23621ba240f", - "0x22c05e50f27e8bdaf4abb0a045d0639bd7f80057dfea638df6a7184ac49b738b", - "0x4a34356b5a447591ac66c51370fb6539bdf50fda9600082dadd91d33713a74e1", - "0x7147d53533ae40e886f6bc1c3b65c51570d72398f46e3266f2eba7b707b46b3b", - "0x1e49f75a30695e9bef14b036bd1c0f2b322042b2a02ca56604484e913b284c1b", - "0xf2445d48e823bfa77776234356ae0d3c1a850db236b3d2a95e5b00c4d7e687af", - "0x7034246c6342c26f5ae974576358f993d0e5e3c577e6aecdcc182c78082ab181", - "0x965067896ebcb2628ff10127508df1c811087f45ae258a0d8179d576c21e4891", - "0x384ebc34021ebdaf95e1bf0d8d61777b96a1ae65163cd3bd9b4311970a7918b7", - "0x1ca6e203cf1e058f20f5a8b1e33464801bcbbe04c79a7201ad6036bb8aa54101", - "0xf5aaa21a85fa9d502ef278262acf71789a3755d36dd8b3794becab7fb2d338e7", - "0xdeb7dec7ec133b6ac05c3bc0fea3b0002c8ffe58b135f4ae85b71fe0350dc7ce", - "0xd5773586ddb40d4c772541f743f7a4b08e9b419fe5b5b3536afa0b3b888725bc", - "0xeaff5bc016770c7cce7be21952cd8759a8d0eeb1bd849732c15dbbb82c613a74", - "0xb1a6a6acd39b4428accf9120a46d74cca6451ea4a182206425a8a64c6d6be5b2", - "0xfff27e5023fa1fc365db1e79cf3283bee2f51333059bfff47df39f12875e5fc0", - "0xadf1ce203b0acd4cdaf1d9a91cc158a21c823dcfb0740f089ce0830102b1cdef", - "0xcf20c92fcfa22d6fe7a60d1aab2d5a942db39d447d4ba1e9e76888a64694f1e7", - "0x210a684182ea379b50d641aed1baae3bf3752fd84feac4b3dd4e110c5cfc4ce7", - "0x220c5460803cc8db7a2b645dd5a4525b0703182cce173324d20e1c865a157811", - "0xba87b487bfae148239b44f3ad7663fd66cde8e21aac9e1a50bbca7bb7334aeff", - "0x2728161f9f040b4d92ba838d841404604d4d838157fc66f20d6c4c61034fdbda", - "0x3f8a6c7198528e5084b3e8d52d3101c27c5bed8721beb831ff921eaaca4c4282", - "0x2cc2574320b3c7252404db7c67b462fbc8d87bdbeb782ab1bbd257ee634a35c2", - "0x13aae0ecdc6a70d85412178ec12e971b2c4476d5e624938ca0284ccfa611d11f", - "0x6af7161831c3442db94cbe28ee9385fe79339d533b9c0fd3266213c2a5024a14", - "0x06185136927e5bc26ecfbf2299a0fc13cb447df6ca4a60e968be8c2b7ba1c2e3", - "0x70ccc84931d910a2489d50becf82383a836309bb90dddb21026d9e4e4368c85a", - "0x400ae9e4da0f847dcd4bb65e8f9f661a3b0deb78346b4f1f84fc712fd34410f0", - "0x57aacedf503300888fcd8db2138badbfcd663c63c3cf5b3e35979dad635c24d9", - "0x8fea6cc2da76b7cc7062af870cfacf4952b81f09c3c15d31145fbbfe1c0806c1", - "0x5125434cc5d4137ee31b51ed8306b4d665b8dc66504661b46c227e62a9ef1abf", - "0x254bc0b61211e0a57755d73ac618012938472912f855972b7ce62677f5d0e64d", - "0x2d231389c849ea459a7530ac1bdffa4d84908e2c61125a70bfcda932cc8e5efd", - "0x671ae73d4739bcd4841fdff266803117c5684c61031fff16e831a3bffb4bae4e", - "0x64c4db66cae82a96f29296b481619d79a739e2dfce0ac1f659d45f526ae58ee5", - "0x3f2f08ce2f21253f8c9a3fd650a885ca0e77f720a21ad5b4c0867150a0274efe", - "0x98c48268710592ee4c26620375968f2b8730a1bd1777239e6ffb9f116c6e1284", - "0xdc7a5c095c255e1984b4a5fa75c7a1d95d98097fc4eba898e644ff66951d8dcb", - "0xeee7579812ef09ae31068e8087536362a967b2893b709a458822449ea89a48fa", - "0x296e707796c0b9f9a2f55ad06c42d03625dab94af71c2e1c7016a7ef6645bf5a", - "0xd9a3eb363d4a36300dc4d1903a83447c89ec286f8d219f1156335da283992d60", - "0x039adf5a0cfbc394847d8014d64700ac4b6e78b531a1e0328bab256f7c407116", - "0xf9a92c6b1f0b0b3d7ae33cf5ddfddad516bfd7b21842d76098737533efd4f7a8", - "0x5a5d1fa3b8e05a81173e627f14e689c166776b93df401593db8035a65fba58f5", - "0x34f7fda3053b9d06e217223ee06fd194e2962c4a381482429e596df1fe319686", - "0xb4cfd9a71a98ad52c7705d55e96f04cb9064b1c32d3c346be51370b56ebb0f8e", - "0xd46a93765af68d238b776b240afd464a24d8c8bc869280ad618fd0fb6360e878", - "0xf3c622a4ee05d1ce27d59e7b9b3748547f4efdb1d6ff72a58fa93dccb7b76de1", - "0x6cb017c4bd8bb5186590cc4559fd9600399485ca917b10556b98cd7fb61441dd", - "0x7188f59c892b8754845d73f534587f27b7da67f42dcc1c73390fe2970bf0ad28", - "0xb4b17c93af08b9f587963e42703379c5e4f760502870b8096917b09b3950ee35", - "0x03165bf9bc20c87412a41209901d2bf3c8bc03a8586a1706fe1499641cbc4775", - "0x9ef57b2126a38c2dc456c13c272de53366dd1bf1fe768185a93f3562d064fa8d", - "0xbc3660089065220589409f7063dde34aa080179b3f22464fd9df9eed98d88b0f", - "0xbf1cf6eed0e0270d6be602040a97600ca7e1279db4279a9fb7ee643345a264b3", - "0x4cc471987bfae3b32179aac7018ba574c0315b9832915b5d0b804b38e9def6c8", - "0x51351557582b1d821adfdad36536b59b28f9a1f1243115486ce44d4b22d3952e", - "0x66d6b02183b9def37dce37b66ba4e9939241732b49dbc8addd147a89dd9e0517", - "0x47261859ce169e56d4e7dd75c5e2648597c7906f9264710c7e4dff74f353f739", - "0x38edbf1db358c82d0c945a7fc024f7fdc1165331cc19caf6b8943d3ce76b721a", - "0x5231560201678a39175187469f7e36c1c729ae060225012ff4f679f3fabb8237", - "0x763bfbeeab624de07a6e758368f8f61c0fcfc8cda088d2dfcbeb47a5eea9648a", - "0xce910446cce07477d424f791a71a375830ac26a2543b8bd1343e0d775d161e5f", - "0x950ba34133aea3c2947a5e5fc1836375e81c042ee999b60dd4a27e6492fb41fe", - "0xdc24f20fda563bf74ff7540a06f3631af8ab3b3722874a6b383714f463f5fb43", - "0xf2250ef512d3a11144370747f2c86efc73abaa81152bc6083f87aa217d16ee67", - "0x8760d0bc8f28eb2504f3bde3e429a47f0aed1dc2c7abbaf01c68033c07ad368e", - "0x7ef1c11b1f025f7e2aca2624aa9a11781cd860f24ce3fb525e7196e590fc5ff0", - "0x7c4e717fe77c8f9e742e312081d51418614031745b182746c7ceb4ff54deab6e", - "0x56c82f80b8d52128275529fffb3ccf7376f411d7cf9464a15fdecf617b4e7571", - "0x46f7d3ecd09c29d36a62a1a65bd3c59a14c82687b5466c9c130df14c286c2a95", - "0x1d04deaadcfdc7a1e5e612df6eb836f55caafb4f9bf4f1200fdfef4f14229f26", - "0xa0f5e65e99a22e14ebafc71f093dadc96c68883609a7460f904eb15360e3dd6d", - "0x8ea6c444466d4b6916a1b6dadafb87d75e2fa1ddd1836425dbaaad6e99f4d68a", - "0xd53d052bb709813e6dfe218dc4bd99c5ae83b6f5993b182c36a386502713c7b6", - "0x2e0cc1dfae87825d1a1d8946e021dc514dea384241e0a6cb66d5daee570c72fc", - "0xa419612e2bca19a3a8dc7fac4da86c2df4edcc2989e10d3e9050323011676b1d", - "0xe41649d9af504bd273b9da0fde578dc126afb55feb8b3c31a0d4eeaa9c7b83f9", - "0x0121be707b5666d5a78949b2ee263bbfbd013b69caa9566864711bda4c7ed0f5", - "0x788538d654618bcef0a63e31576e19a0872a92733ef7930ef50f8afd6caf110e", - "0x7777a3a4930828cc158f696e6ddcb87696115f473f219ac5582d8a38e0645430", - "0xe15a9f42ce5964358f862fa7a40bff0c8e8d7429a5ca923c9f0d4d0d574378a5", - "0x187bd59945e1cc6a877fb324b1d7ebdf661383ae7e22c56913f2e920de73dd68", - "0x938f100308d20611bd14372b16da0dcbc888868f8bd183d667064dfa8e67a161", - "0x5e61540787c83bfacbb58967280163f55f5ed00e733d6295099588557ef2dcec", - "0xe6625082f4039ef9dccdbeb9488baedf75fcec616ed9d5009deb4eba95cc680f", - "0xd01542aefe234567f106a4f057173b4f6eb5733e0ab9537af2db309edf38763c", - "0xee0174f3f9218a3418b8dd2bcd4132821eb91b31391b7c2c6e5a84d067d21497", - "0xbe26c679aafdea135aa493bab8ee348b255f50bc69592bbe017dd96b0da58b1c", - "0x297e6634c06193ed4725942cec32ccc9b4e77b5d02fce2ec9fbf580e3dfce248", - "0x820d98bcfbc008480ea32b162d15701357f094b1d7c99a1ff92fc0afd9708a06", - "0x82bce2be0a2d468b2fe0d3ba4ec1e5e8eac2d83f8b2e402b3043119a59cafd51", - "0x63ff3569d9a5661b6773a1a5fc10a522ea12a22399cd337ffef75a0d36735ab1", - "0x8431746d8239126bedde7d5c58aaf7f733dd1542c942d415d876ebf8a062f032", - "0x6bfdf119b93ef4da6f48265f4c526f0837a10c8db9c518d0dfe1edf40ae5fcdc", - "0x55aaba1f40c9089c65623f67eef8cdb827282a39cd0778f26e2f73106d3eee3e", - "0x0022a0b29d8188251bf5c6f37c76368dc9c7ed9e00376901162d1fff111273b6", - "0xf4bda8d3cb5b7ad50dfcf2668253e44b98e87d563ce17720dd1eb1a4e1c32628", - "0x994315a889329452a3e08ef029e7d902308022b74aa5a4eb2178929425c90a84", - "0x86a962d1d436f43f6fcad5b61b615f2bd32f10fe8c62428854ce98f4289707b6", - "0x3ce476498f26fd1d0b276ea639d438d7efd3c10451949efee1c91f279ef15ed9", - "0x199b2fef89c1edbe547e8c0b666b7b138d6f94fcfb2f09f26edc429ac163b127", - "0xdf3fd62e7dd0133ffa23a0da13d720373b57e85c28ee97890c355c44323ad592", - "0x92e0cc3bc262330ed8a1f42ad40a2db6c4e75e2d39e24a6ed5eac0855c12dd05", - "0x5b46f058c21b9447f8faaf78b2549f7f1459fa5ddb4211150bc26dd718f8361d", - "0x316b4f0e5b50cea376307236de36f3a1ebad3c59ae28dcf7838339d8711047e6", - "0x2b72ece0cbeaf94140b99cd9312eb891a1264a4d31fd839017e22cd4cdef058a", - "0x0c86b9b2da38f00150d49ac53ccb43a88a44181c90b492e886c54b0d6a93de22", - "0xba5a671174dfd7f877bffd7fb3179b1f3f8444ab14eaa9a0488207141bda26e8", - "0xecf73cee14b1a8fa5c2de5d78c058bd04772666ff455ca4225ac419606041f2c", - "0x1947b6adf9abeeeb55a66cad4afd016f6522faa641c4e14af94cf6e610959ad0", - "0x5467aaeb96dbe111a0d36fa66a71f489fb33ab8d95692695c09f4680086daff2", - "0xa21fd9195eaf856bd048bdb258507351e9a2c168920fd0c550a2340b5176ba26", - "0x9b0cf5690d3c3764f5c102fe1d5139202a1f982bd5afc8967eddaa6bcfb3af42", - "0x32bb410896733f9f6080a5b574b07c0af3e5ecaf69e995751e392c3905c11d20", - "0x5e98b3dbf58bf5adc0ccc9269aa10f9921afd44283837e7cb419ac4fb89f6164", - "0x051cd6e01ef3ebac9f27e1d473b0abc00d870a78cf894cfa8222d00976948b39", - "0x500edc8298fb83a103f5bf779d1df507644e054ef27ae61ccf31d883d85c2a0c", - "0x80c8fd7e50aaa14da3af3ec622adcf89eea9760ddbd5232a49ba55837be5805a", - "0xbb828dd031299bfd428c22110ff5d9f5612447e346e98401ab4a01278834e476", - "0xe2c5f408029af25cb9c130fc8fb5118660d08da399dbec0fa1709d1c0583de57", - "0x1be80d06b4ec5ef612e16bd8d842484039ca5663234174441f0722ca521958ee", - "0x21d755042a542493e44e92b4355af2f06f161c0e2583aaf6862730be7e9976b2", - "0x49b993b77606eb939ae485e82243e530e392af6d68be4ece5ace66a675a7a70e", - "0x954823b80bea8f2007503ebda5a6ae4610f94cc2c9a6ca22088a52468a960524", - "0x2693662c6c0961a92566deaa4a59204a0c436aadc0581b799e6255fe97d26331", - "0x4e80abe082c0b8ae0602c232ab0f766aefa702e744ff142cb9e101a6050acfbd", - "0x9c47c762c73836210a6bd78e5ddf9f2e817951d52b9fea0c823596c3df2a1fc0", - "0xe86094c8da0212cb0cd96f54c9f1b22c11feadc5599f6aa63285971651f11278", - "0x3031451f37f3e0288d61580e5b20e008a2ef5975e5d12345056949dca2c1d421", - "0xbdf90347d794ab3b41da6fb75b5d8d1f426ca2c4923216393e055dcbc89f3cba", - "0x4f7a0c9ebaa4833e7fd0ae0f3ac8dbecf3d97d0036a41ef30230e634142247e0", - "0xd1cdfbbf34bfcabe4a0eb90fb4d8592738203d245d68b753d418c4bfab8ae4e4", - "0xaa56db3fe5b2edc2ed277656deb51e15f86182de49836b4dfe2636de5488a86f", - "0xf67b05c233797d61eaff641e5bd35ee830bc1a8440e06f85e034902bd1023ede", - "0x49bb9be0064ff46c4b7820e7dd08002f3914fbf9250c96873bb3dcc7bddbe3de", - "0x594efbc23c0a371e3e5478c599466ff3a8d985444583b70f275afda13cc05c9b", - "0xd1dc59771492ee0881398f87a7c90db42874d720812c1e105b1512531d9fb1f3", - "0x7462bfbf8457d1df1288cbaf339861dc91c02d772f3c1ff8c215965e555d6905", - "0xee62a752465879dd62d08d7a15a54af1e813a1bbf2035384289bd634e2e99524", - "0xc7c66334011807d017e0df794df5f2f36c4cf496ce0a3589465662f8aa5433c7", - "0x839af48e65e3e1fd3d177d90f1dafcbb0209b107bf882cfe2fd514be625c1396", - "0xfb4eeb8514ede5bc952beee0e7e78c6d7ae544e6c4d935a6c92375b224e40c3d", - "0x38576e990356b7c44eb1dd531fe28420d01d80130e0ef0a42b9a8b01d2687822", - "0x434bb4312789b8cd93c5f930f4305760f86c54ab225b35bec70954aaf2fb4c2d", - "0x19ae08dadbf2f7da90ce777913d59e74592cacf6f385600f7d50cbbf7c4137a9", - "0xfc9a8ba8d7eff3a582725f8fd1539c4f77a87ecf23505de8a321ec6d568cab5f", - "0x20fb269b1a7908ccae92532424cc94604ca9a0908bd7c5e446a687cb3be9e0d1", - "0x9fe0a0e3511056762698573eee8ee2b0b87a8b6daad2141a9ad00c5b159521f4", - "0x3630751af37fd3ae22e78198868341e86735b03432879fb159628937c6bc28da", - "0x427789cffa2250d89b99d50969d8dd9917b5f4c721ed9de79cf81dc59f94d81f", - "0x5ad7e16bd42e35671230458f8f97c18baa5a1f81b675df259c9d2d7cbb09fb77", - "0x3d58c8ee704a934f6de776ef8373c653140e089b85aedd53219dc0b46ff03b58", - "0xa5a0719b16d8771b34e050660ba965b0ebfaa06bad1973033cbe2fd69fac5886", - "0xcd66e1ce23416fb4662d2b29dd72d9f8f981c66098820058451441213f2947aa", - "0xc7eb6f1df45136c9adeacb03eada4557326aa0a22f9ac0d73df25e21beb6bc0e", - "0x890eb4c610c7036e1494514e1f7ff72f414c51143fbf13cf2cd03d8d37a03662", - "0xa54328a1d2ffd9aa3f38a9e6a0539ad2517c4f6129f01768891acc0a2b2a721f", - "0x147644decd98b450b284d05d7332629e3c6444846f7c71dbcc892d3191f2efdb", - "0x1a19c1a8fc7f9d838cbd736243e66b1f637f49b1d8734c2af417227a11623b30", - "0xa8c14722a6f7e7efe695be4e6a21f2d1c8b8d71e2cf69e7645ecc5cdc7b6355a", - "0x8eb33cc1490499aba376f581b68766c4fd40e7d6027f223eb46e27199acc8d67", - "0x1b6a906a5321b057f453624693d4ae6abe79a5b8fcd63a777dffb8b2ea4184ab", - "0x7185ec1f19e7a84c9f914dd223b382ff56464b01a1b88dabda415a01e1d0a1c8", - "0xa172df0cb06617eeb95d362bb36d5e5ac52cbdb2e5f3c2cf3d9b78ef28fad82b", - "0xa11941ce1c866d077fdc995acf3ff2ee0ea0481eddd142f9b343c8403ed606a2", - "0x1958ac9a77c5b9825c401b204001dea8ee2520983fb3e738a467980a7bf9defb", - "0x6b24d043eab24359787ed7e93543967c9f9b7ccf99894c1ee7768f6235cb0cfe", - "0x6ab8c28ddda71b937d1a6feaa67b071f78ff7ead3a192ae63dac34ff24b8d929", - "0xf101e3da7546249b5b6d4dbe960c713cf152627a7482fc3377aa31f430c54530", - "0x22628e903ea9eb3eda9c93ac92d77b1b8a5ee62706dc5ddbcd079c57d5b721eb", - "0x0050467a543fbf0a232c8ce9f66eaec6c38c3c31b8ce3d590d1b07586374c1ed", - "0x4235a1330a45838b2d2aa9873dfbd59cfc0f0cd16e13ca9292f8342eec255fa3", - "0x2049ff9cebd379b51308220449b3568c6d7843f5b49f61b85808287f3d60441c", - "0x50c2ef0e832df29297dc524fcf3af4cd0988fbfea71987f3ac5cba8d4ec34102", - "0xe7260880b2d822d18c9ac2224d09fa18f5c324fb421470aad5af6c2605b40985", - "0xdf51e1b441b9809b26cd7cbdc4df27eb9c7fbb3bf764971684aab6c63e282a75", - "0x597b5c48840a25294feb135e0318ba6d6ca09aac476b1041748738963136a0a4", - "0xc710bd4b45a991f7f1387c25db70a1964ca4fbab32b738424d35a6e06e2483b3", - "0xd67460a50ec79c90a97e25d4cebdeafed6c897593fe8b24afe47a71c818a55b5", - "0x0ac1f2282e4491fdc8d28f1697026b7fa88f46204610cbaf8811d38dc84539f2", - "0xc3352ebc532273e4224dc0e94ec4cbb83afc2b5c364d71534344793032441006", - "0x42f3d39c81e118a7d515d82b6880104909a7915aeaca8ad64fe74d9fe88a7f45", - "0xac6fa42771e9cd6ba31dcff2455d2234c53c282251ca2399c727fd5521eeff0a", - "0x83ae44822213f59d34543a6d4fcf76b4e22cbe5a90674755072613550d348551", - "0x99cdb65200f9d1c602c5c2ded67a8cf2722cd7c1ae3f11d29a2c1b702923df93", - "0x2adda7cfa12bf5ecbc74ed4f4ea419ad7cd3e7cd03a0e2b32e924aa2ab98ec42", - "0x3da7434a58c60b7fc7fee8e30b3073ff4d3c381288fe6ba791f68d74d24ed19a", - "0x9dbe78f9121e6c0d99fa6d441f6aedf54be14fb39a277cbb5f19fd0b846305c3", - "0x2ded5acc49e2e1fcb57a66a81f59405febb50edb6b41d0fa8e445477028f422c", - "0xa46310f11937ce81ebe8d4c60de1a5c8787a1aac35ff3b6e2f0cc793112b7df2", - "0xfa693856fd1867458c335c6e903e5745a950ddf8a43cd9ee76ce8d0b3070bcbd", - "0xb374a194d9edb55d2946d40a16ac4617e4d0674630c6a970f58db17f21d22c12", - "0x651032646288a0b6fb5322626bbbc5b6b87dc5a5d59f5f39073f2f9574646c41", - "0x7f4346336c95c7fcfc1f849cfa63afd46dde8e346ae0801aaaffa9069f989e99", - "0x8bedf8e9f5095b4275635525fea6169c5afedff2ae434e42c5cde973de77ae3f", - "0xf92ac4f6fdd7801f15c8e0ee163241542d1359372d2189d8cd2a33f925933cd5", - "0x806d437ddf966fc6631a8f81a54eb82080fb2ade64a2b715872d8f648d23b57d", - "0x2151451d68f912b58bb510002407943ef6f2cc87a992e6df0765a4c239e63779", - "0x6a02bab7734d8549be10373e6395c368492b8518df793821962a940d5cf93654", - "0x4de627f1d096c86c1c1dcde2a314ba65700b1ac47b9db95e9ae68f8d28f52b16", - "0xeae202c747b699171115bb56652ed534d9ca6de0e8c3d947d63c6d60b5d658de", - "0x7bddba4a7c160445653f62d27c1622323c784461d52aba5a6f19964194a063c5", - "0xddfcf0c5ff899f19c4ed0604e7b4cc645ce5bdb7b7c7d6bcecfe7f2cfa3bdc0b", - "0x7d27d279f52b83afc9a115c71910d06a054fdc2e20625cd05fe35ecb03734f5b", - "0x415f6bcb216ad524eebd7bf177bce80cc3d5fb3e920ed65a8ba6c02f59fa88ba", - "0x570daa81ed1b593529a07396784c2996d5703f4124f941e99e8f9cf6b608b1f5", - "0xb9da28526fe8300989e16c83c4bfe418c74878be1bf3af12ff3b9a098a4c92b0", - "0x691938f83dd63e39be2fb03422682ee8dae8e0a95bf4d09b4727f8162b2da11a", - "0xde168c58358db826c9c953895b7a0419066e65eec0b7fa479c328719cf70df6b", - "0x65a7b2207932e96c427a6c01efd0c3f01a37e02e7dd98b18ea559c2a6c83c8d2", - "0xfe54ee65b1b8e21292fde2eed9ddda163036cd6745254bc7cb9f3dea737832fd", - "0x543d64c2a6b763cabbdc1a9316f37115fd572d96b5c75184c155e68532fdc8a2", - "0x31b41a4f481a786bcf4029b19e84729c699a8d742fef50040221ddf6785d7335", - "0xa383494d908727fc6198035c24afb3f352a16b29b0c1639062e7169618bcb38e", - "0x3da745966ebad677a703f5db94777fdc307f6e3e66a7c3c5ca24f35cff3f43bd", - "0x32fbcb24d42beb2128d95055706b767f7df7ce16c1613e3195342db84dc9955e", - "0x1723ae6147425f5b01b68de9847d79b918ca0f85a800d981029dcb5e3c62eb8d", - "0x997f18b9977469cbeeddaa1bb31472be3806c03ae77973c857e32d6fe2c4d740", - "0x6c27575f33b1d85fdf9643c9ddd27085f4241518cbd5b776e0d2bce19b152ef0", - "0xacb86fb3209fbf57c42eb86d2617eb631e0ba36da7de5b2c7ed63f168a7b112b", - "0xae02559f4868fbe4f114eb320ff0f3a38086f364a2ee537e6051cedfcee76d6a", - "0xc96e439aaa996d4ea4c276d1592fcc06e829d5f3cebf163aeb75f590896a2648", - "0x87debf5b6912717ec3c0846fcfb5b459a15254660cd5064180c0c514b4b15f59", - "0x37587d340df2b40b3f14746b72c5a72c5f51963d208b02c9671d6c623079b584", - "0xdff2805c029c4e3c249de3aa9f5cb3b48daae4f4496deefc91ebe3251c18629d", - "0xa84f66a457869dfc95d625d40496250ff33894be23a43e53ec892481f1eb4fa5", - "0xf8fb34bf78ad6d52be6fbb5472f13322b506f594ad3b585c04f56ed8d0d9afa1", - "0x546937b89a4d3b59817377b9c2ffe9579d4650cce71aa26bf2c76c571ec495b3", - "0x5ac921894e98005d03aa42e8fbde7ad0af0401e350c8ba98c01543a93b37dda9", - "0x3cc76dc057c73f0e0fdff28d484a092747ca42bc10989c599d0f597ead6024d9", - "0x1992cd7e94e9ecfaaebbd08d91519d6b67857db87e2e67c546371738ae0d2d0a", - "0x3604be694574c05c63d69cbfbbddbafe3cb425d75a13e69d61b50fd8d9c947a7", - "0xd1c82e40206d2a89e3a1a40c4a1b63c62ea6fa0847ddc2b25f63cb9bbb4a55b5", - "0x66ba114d5bf45d50e9ab9beaa879ce18d02a8b4f989c29ea7e9ae604593e860a", - "0x94f74c09ce5fd1c8fcb9cbbcc476af20fcfd9cf01c7ea65c14917da7b9560ffb", - "0xa4e154ebf83215c3843ecbff1dc8f646f221505c21d2a76f47d55466d895f1a9", - "0x28c20a0e95e23a023678443d7bf5b2421975b827dbd617239dcf26bf6db9b255", - "0x55d8ddf586d61e137482e3f4bfc1904ce4e04d21c6e7ac4d8c7d29b1483c8c0a", - "0xa9e1aed191a7a1a92bc99604e3b24c02356ea378b16de109362aefa2fa978451", - "0xd543ad635db78b2518681654f98a32d227fa6a1fa9b7043ad12cf58c91e8f729", - "0x102fb87da8b57948fcb763d7b797233f21523545f78388d8d05c6d7f2a4b388d", - "0x4e7273e2a92e897590988f38f8b899879aa1aea754fd5165364e8b98a66e0d62", - "0x5a06544527f88d9fbbc5905742863d873367d99e574d75496c59caa041e2b612", - "0x6a8957954db14594746daa61f907e4694e2a749ff53ea6b1dbe77d7d1f378d22", - "0x0debcd48486aa0d33a783caec0d6fb1256ffcca39071041fed7f047eecde8640", - "0x9d0a9b13dab1888bf0eedda217c501d76f587ee9a8765bb455cebcca0b705599", - "0x30693bf8c9bcb6bb4187606f98e138700e999d8824cada72d3d07f8c104fd263", - "0x494ef870dff64d1d65b4ae4b49ff13c145a6058876eb657751d58c06f62b5032", - "0xee4150e64f9ead8124d50d56fa4b6e6d185fe8ac385bd2a9db7ee991f6e34c02", - "0xb859d7db7abe48cbb9420d008d94e8d47753cc78962e5dabdded9438bed56b1b", - "0xf8b1fb734c345111704d73fe6944d0a274964a347d7dc5c7cb8677104829f5ce", - "0x5dc002623d9b3b872900b0b313ae8520009de730577b6eb2e2de18ae5cd4ac94", - "0x4d63e346ce7e654db6f067e8348c539ccf622d84020812724b936c19ff4f86af", - "0x2ed43f4e5d6889f5379e42d4a06de7c343080da74ff353960e4cf980f750fb90", - "0xfc61d0c90ecb073c022c87098045b6ca3f2b66c94f3723c679d81ac652b16f72", - "0x7e69914b56984b8c7cc9db1732c3d2d32969a58d6662509846e6faeb1305586c", - "0x0ec9b1b68efc96fc7d831ac7316e0ac0d908bac31be330d905f87b136556c241", - "0x32fdf6c25f6c741dfe468289cd7f019ec3a40c5d8fe882ef662b798491c0dc34", - "0x1ffbc6b29826aa58595d1a412fb90050f2bc3cf0ebc5462f308d4c8d85a1eb59", - "0xf0fc93cc2868cb9828ce16463e4cbd59637672d5815dff03aec7f3e1424eb204", - "0xe404321694894ab375f5a65c339f2cd2a53fb5a10f312082ce019681f6ed64e5", - "0x81ab1f93747c4804a85f56b0c6eb61491b958504ef7b898fb1362eda9b394e1e", - "0x1535d439d0043d1436de963e3eba47335bd7afcabeac4d3fc3f342396d3538be", - "0x42da1b95481bfab6cfec59884bb1ac7572636c8f489df2768fe2140cd2702766", - "0xbc3fd861f6e09efac1782d9d383c4ddb9b4268216fbdf3c25689162628e36cec", - "0xcc74c3d8b44a8cd23676babb4efb0e67871582cd5686fde9de6a052c5bf91ad2", - "0xbcd7fe80e95bbbb5ac93b1df5ff0b8e921e7ebc4960877acc1a95c478c65d64c", - "0x045e5918fa69606b9546f5fe83cd9212000828c54f9cab856f85d3a22536a751", - "0xc0f74dbb5a42bf1656698c37aeb904a33e969099f215a7efeeae0024c3a409d4", - "0x36d537998634f2dcab43b387edb63119c0f4cc68b1979a2ceb373089c531ecf9", - "0x87c20426fccdd225bd3b961c7adc1de3f9ac9640f6d26bd183f6e528089922fa", - "0x195ee1daad5c3d0052d6d633eda1c9f7160d488d4bc54f4ac3babdbb678eeec9", - "0xf9a5e6735f9c5577283e8cd717b56f69dc8306b23781755f2e513d15e6738cea", - "0x3e5bc3e78ae33367ce7450c5da7436f1faf3b1a62d238208df207307762688be", - "0x123e7b4f7e6b9338df2827a238a266376a20a1fd065e9f8a4446fcac4c6c92fa", - "0xf4eb14bfd197d49c42daa919322f18228d2d9ae2dac6dd7113c5e7d12d2ef866", - "0x78836678c20a40fbe09849fe190a9e74ee070f2056d7bef85d0f124676a93130", - "0x7986f7321971519933aa5dd507074c7b007328a7dadb8734eb4aecf732703fed", - "0x14485d24b7e90fc39d91ad6051b7f596d320b1f88f54fee132e032753e59a766", - "0xa80a9a5db758bfacf831a54022c85a838e30c8611ab4b17bda0641994302b59f", - "0xedf1814fb78abf675f3c5671c3618e5e51105647997d6dea6a0cfd1f0330bf6d", - "0xa91e9fcdc4f2b5e029abdc6b2523079bb4a2f5346d8a5a674e3d5582b8871d1e", - "0x3dbe468159a8c068285c92360cab488a4c1ec37487dd54cdc0b70e6d7cf074dd", - "0x69877439effb3388639ef6e1cfa132bc605bd8a0da053bcca23d82aa453d0040", - "0x6751d32ee3a1244532e6698ce57cdd0a59f99130e1e7e004c2751bc49d10b355", - "0xd1760a4f6e5a7967985125d2deae8bc783e47b1b85e19fc273e33eb2ef88d271", - "0xfa934c087923cc16f636615657477c48c082623d7cdd35508571655dc14efe57", - "0xb6b1e4387e04c4ddf88ada0aaa162345cd43e54482fddb4297e1eb6f8ba1ce74", - "0x3988089edd46b57c0bc83b1bfeb0050b503cbefdca83e96f1c12e7ea80688a79", - "0xedcb1bd8b522ba5155965cf18c25a090be2f8d7871ce60f0f371cd033d5a31d2", - "0x2f887b56b317e9896698ec9059d36aad63d54d95a01d389aa196ae12e562ca2e", - "0xe6d6b89e1d851fd24cf54f6b60c6c93a8b014ae30906c156374d73605aab3028", - "0x177928968fef8c6da017b177f6be85851616775be043b64f72925e6b8a4eeab2", - "0x71a3de323d9a600e15c25a5a6e05089d849defc3830fd69738f548fa4c57aff2", - "0x8e7d92f316f96b491e4831f52a799846810dd032bd720dc891195739192f3955", - "0x12a3433e8cadc005ac35da334d557c8cdad63576613f07df8c3ec9f528e846d9", - "0x1406da1f5efe9d3de6a829f1219f731f3ac875c7795f72b5a9ad25a57970b9d8", - "0x15a849a0ea56a777e00325b4af4d9996747486cc9893c08b0773210306193521", - "0x6178e69be88e7e93878b731d062b29a34bf2951082b947f35f60fba2c8de62b7", - "0xc4142d4fe01091e82626178b66c13243c9b35de0f07a49e3c5f2ddc15b39feb6", - "0x8abda6239557236af27a2cdfbb4fb91a6b136931c53067739578ed13e1b0a2ff", - "0xf85615d9337092e25080430cfa0b7a24c97effd422a1947a4c07239d5221418c", - "0xf9534d7db3b5fc1bcd7033ade59fd66bbb94a5bae91c4acebbb1540fc8bd3b67", - "0x5ed0f8035d3920d6e94b881cafac324ce5688f8c97668715733e0d00733b0fe7", - "0xeb6c474a0adfd84c79b86090c793697c0bb39d6cb007c725c2ae7afdc98df5a6", - "0xfbfce3e019b0b29ad03fd9146fa368f9965050b40733ce297bce6acefc4668fe", - "0xeda9ed65fbb1c7fcccc91de519f69933ae66c8ed59fb65f64751ca8aa06030c8", - "0x359ea9df33d466b5dc210ef0e99f3b4416ce03a5439f49b4cc4c1b98b22a21b8", - "0x14b2e8729b70abac62120541229182264b78c7ba1a1a379ac8a582aa0bb0d739", - "0xcec0dbdb55f92191974c2c8ed716578c5ba04c4584a0770fc0d7d5cfbdcb2717", - "0x07334b05a08cab079354cc1f7a945caa3c633de89a89c18244de81ed56da850b", - "0xc58e0bb71287fe92564d00b5094ce36b7899c346679011e52b73eae45bace19a", - "0x9dbef45ce9abb762bb9b30b61456a90b74b0b6f5b41af9500699542d933f9535", - "0x3cf848f770e15e7f682075c77f7e980da6750d3d4cb038479983e341eea3c354", - "0x608a4c5958ef3b0a324a7cdeebcc3abae89c1371c949d6b269b2d3936d9fbdb2", - "0x66422fbb9044305317d900702c2f99702317a8a83ccae0911a2832f623356c8f", - "0xe977f86ae4c5b350b350a3d6af7fffdc9baa96d9a7cb24834e5dc4797fe39fa8", - "0x6f56fc66544e099797cc3b0879dd20b21796ace01a0029e0d8464a3764d1e858", - "0xcaef7878c703facf29fde1467dcd08b03761872f598f42f5c56b4cb367b97255", - "0x9055cc0c11cbbe8477c7dd35b37a57e7994248c6bde9ac05e85717cebd2b970d", - "0xd7b08c0ca8abb9f07e3df1c4ebdcb03b0ac2018a905d1c78e6825d2bb5ea1ffc", - "0x0184cb109267e58d5bc0193a04548f0c2b87286ab6b03a1ff7b6d88a725662ef", - "0x3005e0af1ac0c5fd6d58328c06cc7f5d89c8c4ad173106fee1a7e37c9f2dcb95", - "0x8f7f8800d29c66b4fb12334b622fabe1cc4ef06e4ded44e4315efc381987cd56", - "0xdf74e3be6d22159e0e02ce3b8f0b405e6469557ecbd12e4432d52f4ae4637bfe", - "0x2fa9a889f958ddc41bae5916657f946273447add502464674658bcc257f1af15", - "0xbfbdf04ab62a35b2f7b038b02d8c37ee946cfee18e10ef8a4cd5409a5fe81d19", - "0xc4e834510182950161a75a843352b5b46e246a05b7c7e47240b6cdf7e18b4de7", - "0x2534be362fcc238c530f2ce8f64a3366d4003a21e6f32493a082b7efa1d413d3", - "0x628e5f76af96e64ff34c52cc5d07562e72c53e7bd4b7585cbc83b7c9951d0d2f", - "0x41687c81b22f67e4ab6ba0163da6d58c81d94c5db20569b4a42fb58b7321a442", - "0x50f55f58cd9768b611fce3ff13e8da9195b1eef5d0a618fd27f7052f88c8fd84", - "0x1b64cdcbfc12c42e9dbc7a62a1f8eeb0baaab8ccc867f7a7308c88e4968eb9a9", - "0x77e9fd9a5d64b66cb901c5795b9f66424638b24e457024b5e71ffbb79ed8a863", - "0x35644de61c2108bf9d49efef164414cd2594ad4cca6bc421699458c9bace5491", - "0x172ded87912492ee521f79c1ef22e42b1d22f17c3286575a5d419fc00d928199", - "0x3c8fdc337338b107ff5879b3e95cf285b5128ae395c4b89ccfd05a3d942887d3", - "0xf4b22643ebb6d46cf292531792543f9699a99674978045b0c911818211be6017", - "0x783fdc538e4505d4187a0f341b066007caff8030c3bcc4bf49ebd31a8f6b4794", - "0x38e11f176844f680e75b65d5225533639eb522f39495b9ee426135097e5e8fab", - "0xc5e0da94d4dd6e29c8bf3684177a62051e7555ee87007fb07581c885be598edd", - "0x317dc456dd095f9eef53781c214806beb31351cf78cb1854be257b4039324b8c", - "0x5bbf954741e453e3157dada0a69bafb9ebc63c3dbfc0cf6e3fc937a1b14b7356", - "0x56a5354de5acff2b904c5b6b976c473277ac2364571c54583bd682e76bb3f43d", - "0xc37f17385f4e6015cdc8083fc750499ec8c9063544102eb0e3e3b7e0b5046946", - "0xd616c205adf0ecf00c7563fda837e94a4f48be8560ddd15d93988cfd3242b40f", - "0x1ecefd5cb0c61b120c227274dd60b42e6d25229517b20dc3e37a7c3b436f0e92", - "0xcd447982c518db12b8aeba63b68d8caf1eda6bcc44400c9d83c4e4d64b4e949a", - "0x3763ef2d96a89a302260ea66e22e3255001ba2f003770c03905d4f39d8ef6501", - "0x2fcc41e9b574af5402cdce8dc66d79488cbd5cf960209918863ac9526bcb6a70", - "0x17b71848876a6e0a8857f1e5d04762734678ed1a8addb7e378915a7c3f37c981", - "0xcac9e4641f50d52d77e0e77b1a1b5fdd25cae239864367b3d99026d3fb973610", - "0x55eabf50cf101f65e51dd3a54321c1897a67c50512c534ee9398a716a790ffba", - "0x49101d5719e4de5e4e88645de3c22cb3ab794df815555d4f22d54ac6a59f73f5", - "0x509cd8530c28cc098b0aa80d3006a8f71ac7ad56101b880288658917173b8c8d", - "0xdc0e15e6d321519f34d40c6b2cf5f6955c15af815dbe02d84606ed76a01fdbb8", - "0x0b8e107e7abcf80e85b3288786dd79f949449225315c9125730d7d42f0ab9cb6", - "0x07ba997ea28711f221ba26d724a09a52b2737b8aa8532e890490ad811ffa792c", - "0x713775500194ec8691fb540d63e99a70cd443e5539b5f8e2a993266bb58266ef", - "0x3b2ccbf35ac833e845f00329c1f8d130a3f804c55aa83c35421adb83749213bc", - "0xee82c15eb18a075b00de8fd610621683dcad88a19c1c507351b5be0de0c6c4bb", - "0xf874298782be23045971092d8305c469a309a1a33f6cfde7604e6499d2384cdc", - "0x1a9d88cd641f6468fceb32eced3710569d511848f393c2114ae33d7f36c12f3d", - "0x5b2b8c2ba5d3aa8a0503d14e759154d1f2f46d819b363025a77d4cf5e3d83586", - "0x0082bad01acd43bc2c504f66ae28056ce352257b7ba7e2c27dd36d256c079561", - "0x9c6e4e01a831348ce64da4e4bf04cad5f58749573e54f1062b0e2921bacafe74", - "0x600e1b0101161721066952d71401f8fe6e689b66b26e2e74cc924f5e914e8eec", - "0x8720d215255e4d5e2a688096506d5b25c3a79c511d8c0b3dd7ad3ccf542e9abb", - "0x48baaec9724cadc4f7cb8f10549b8daf87b2572151cdf9308b3e96f02b048f23", - "0x2adf0f56fb9bcdbae394025ae949e694e01599887e50c355c90c3ee5ff32eac2", - "0xcf78410476d781bae1567f3d763af732d2ecf56e741cffd1bd3906af83de1f2f", - "0x4e7e223f6881065ee722d6ff9603f1786e4e99292e9caaa75b7b1fe9aef00109", - "0xfdf0b390b0395f007b1b342065096e0a8da957b26ed4cdcaba432a202ec12b65", - "0xcd40d2df140abc1228b2e1f45b5d65a0f3e2ab8b7e740dfb5376b036f63c1c2c", - "0xa491347f128d31f68cd1ae536d8f982fbfa5b58d855a95219f104db741d3d2ad", - "0xaa91fef9cecb842de4df61fd1650267420c8336758fa450f87ee867ff1520905", - "0x75d1574bf7b23319a7c8ff6a0a7cae649313aca8893ccd223f1f77fd71c9b8e1", - "0xc72491916b25756e3f505081b7f63e32f3289b86cbe0181ac9d33d29f666b9e4", - "0xd446465131b34f091673736f70fa0508ee7065c4011359c302a603b6159cb52d", - "0x1380689a50696e1cf0c19869b9773528f01cdf20b8f8a6c6a7165fda31ea49af", - "0x01cac6d9deb56473681c02dc753351feda402a1a1cc2b4cc8beeb23884f40760", - "0x3f622e134dc529c5cfbf58a3ce91d57850578f45b77c4683b2dfe4530ba0826c", - "0x016c95fc875baa0a5d1ae22c8772eaf574a6c918510875f1000d65f3a779dd04", - "0x86e5f579f42ea54a96e622f4a6becdc5ae85e0d0af87997fae87b6707abc8d28", - "0x53d403f0d0f1f30d919ad7212cc5e2e73cb4870c4fb4e6d260d2573e9bc5575e", - "0x961cad0d17fbec30a8f614ff3565d12698af096e61836cbf1f0ea125ae3ed72d", - "0xc9dcfe7844bb4ea845125bc3674f326c0f178c5cba4349b9461e40bd6ec68c3d", - "0x894243ff80e90c4c4676583b4e428f13e077008d225790a234ae215dc53d33a4", - "0xe5fddd80d3cdbafb53e0cf3c095d33904ac8db83bdeef9816111d20384aed444", - "0x5c7ce294d82fe6502045664f7d13d02063ef24f0f4960e4fb62bb6abf08c63eb", - "0xb33a5699ac121a51c0074b4783545a86a428fb239b4307f1e45108c85af88617", - "0x37168f3f0220f50ba3cad0a558cd8b01a7a435b6c3c5cde98b420ba3b54a1cbb", - "0xd50928e60d00c23adfc916e7f9a5363fc8c94c8edb3aef41ac1dc719041f92be", - "0xa08b27f437ade4d527d883194f79927053ac55a3293487a65060aeaf4c4e5147", - "0x326e2d1f45438741b63d346f0da55066dfe0284382f1b4ee54b1d5552c4f7d83", - "0xbd96baee5835d9d6007b0b5957e452d71d1ee31aa6fde99796cce59b17dab703", - "0x1cbe90df49f8929ce1052049bde7d6169efe0b289ad4e05414a8e7bd61788900", - "0xa0b914df37895be6f5341f3f4013ce5c61f108203dbac4ff205d5f1a581712cc", - "0x1582e61974c0bb5f9f2622d70e772f3e9ce145be97eaf5a87ad794268cf352ab", - "0xe946dda774c96c7878a0daa686e4a22e0d9d36a88dd9c93b1776432adbfd68a1", - "0xf88a07db8c0fd2a1354c38617c16b4d2e4f8bb43d9049321ce47a8c03c8430d9", - "0x2adb489b34c480267927daf3ba3ca7567d542edb83fa82e8040ec57e25e3e6d7", - "0xf1c28c6daa3e97466d50d9780bd3335f3dd096c3389b906bcc12426ae4862a99", - "0x4457a8686a3839b7d3b592a1751c25b216bc64e9d0b8a81eec55601ab8d8a98d", - "0x0ea5d5606c5e81f92d31b49b2e54ce6c6314b13ac223c83094280d0196e003b1", - "0x33a91da49deed50914d998615077c5192be56e482ab230bdb3d480d283502e2b", - "0x5385496abf2e351c0cbd7f6fcb5bf5b5345783b4e512bdfa23b9736e77ea43f7", - "0x98f808b18e5778a1bbdefa3f19991a3d008c27e9976db0ce77ddf9e4e21a0feb", - "0x5381dab139fbb0ad6b61afa35c541aba559e2ac25c4ab1cf8a756c2f27c6bba8", - "0xf4bea5f3ab0bc9ba3ad00ad79402d1d62da125d311884f225ad8abe9fc36d56c", - "0x6018a9f7edb5ee7ada70c3e85f22ac88924d06031cff3f61104ef52bf0baa2f1", - "0x01cc4300f1cd2bb4948329d42e17a277c7da52696d46a60442b6f5600d869faf", - "0x330240c95bec1ac1a476cd202aa74e85db562750f860a9fbd76e813f16cbb639", - "0x0809c487d45161c3b85cda014603ba7efd6b67a8c7aaf314cf20c880ec623a7f", - "0x653f53065726f9a7c1b96ce7d836acca515f563a47c9d7d47aa8c5c030a9fe6f", - "0x37b8dd7b2a844e519f9eadab305efa5d112266cbbc76bcd5afc119e0dd337ae5", - "0x385b7031eafc345ed353d9b35dc53010496db172cd906f8e0b7b891b84a65e4b", - "0x38259038fbf1ab3f0ffac98e6b312457f6b2631f68ae477b9302fe740cfb8e50", - "0x5a963aaeadd708291b41bd419cf2ce0585e162e0d46635902b58ee85e317adc3", - "0x881004f4fabe3e7642c8cb5e99dc3909da28451ec442a299f331790c8065e049", - "0x3c721f828959782052312d30d8256c9351a141923a9c2e2ca5b605f3a92cb27a", - "0x3429b149f860e963ed3819ddf19164977d637489eae313331c71165c7eb8f824", - "0x44e291345b79ff4116797899da20baf28fb9d4d2a5d6b1661a0c83b8952e481c", - "0x00078c007b6c0b3b6603b0838b03ee9e8944fe16f99f0a35eda286a288594806", - "0xbcd3506338253f0df5abf0c2866cdd319fe75bad7ac6f18d1f8201164e0b9986", - "0xc047f5f06cc54e4bb54c8e3bf22245d68c18b4787a01d324deb2139d7405814a", - "0x77ec49a04762af36eb63e2bb5c5cbbf15b580020117639ed5546749e34285195", - "0xfce516ae95eaee4067e95a5752494974ebdd182fa47deab70fadc5afb5ea8648", - "0x2ee54548e56d2cecc3e6cff4e60a7664e55d9b1c1c9a61be74bfff7635078cb3", - "0xa79dce8f10567e060638cb2f09ead0b191e59d972c532a7e91b33d27151cc23e", - "0x436b4cf10f5cdbde72be02ca16602190a56c77f1686533e643c885351d4657e1", - "0x9070c78384138f5e17cc9e6148c7cb7591eb9864f042b82ad38ee263383496c6", - "0x12a8d5285c871a0b05e370a337834458ae2159b5d8cb4bc93b6cc83bf7351b68", - "0x3c07d35ea209492f4aa811c51202f081a3bfd6e31705ffec497d70bd59b7a6f2", - "0xc0a99b851e0fc4655cb3cb43547f4ae6c36c350aa71626b61ed3ad3492f04600", - "0x064404380c5969d8e43d759ef990658d7cf5bcb7b4f8512fe58a7e994e199707", - "0x3d3a61c95ffdd3c7f05b3574370bf4cf0eec605ca27cde051b5d77e062315f36", - "0x9259e0113f1e009fad7454eebb238e0c7f4b7aee8118b63b6c05aaa2f0bc39df", - "0x76ff9818e62b25fbd698ea021e200ac9314090b801e000ecddb71bf4829aec8a", - "0xdf0031d6e1c55717102ca1b3a0bd389cc0d227f0f804396d4b84b5dd26abb1ea", - "0xd0220e77632c2353d51b92b1638e909c1f41a7ab0e6801b65e344ab594f48881", - "0xb15fccf30f298101d5ca0034cb8585cf14ddd76d58f3a8ca71a60aff0d0438f8", - "0x5dcb3817ae05b8c8490e197cfdd3f0b701e61d83b8f6423b3f24f27ba0f4c668", - "0xf3bbdc6651a4ba011443f6c6542b3f45b8aa2ba8bc719e7220578d6362cc441d", - "0x1edc95bab3c88a66246393058ad1a9557b371e726adaf261a5faa535cb8fab76", - "0xe02975b5ecb9fb8abecab35298704ecc476d2e6205c2df900312359d5aebdf9d", - "0x2a5c9b033738fe9e7ba6949df526b5a735753464b746e7d1faa29491a8e5f57b", - "0x46ac373df276af8af25aa1407659a8e85ae12b51ea6ae0150ee2b80a76ea6d9a", - "0xe85513a38b54114f4b6cda2bc81a4dcedbec22749cab6676c061d95c7f38258d", - "0xacfba9967af17aa94f0bf73c3b1cfff113e14625742a7398a25a01aa29bf02e3", - "0xd589df920ebfb3c3c1660a16f74213dd6d487ee577bdaf18f6279eefb9252c57", - "0xb2b66c26bd139976ffc2471f8ec71e353108828bad5094a324d1e4762f5547e5", - "0xeac126eb94bb1ba443373fb2556753d95804891d4763a2cdd1d297f1eba0fe6b", - "0xfcb52c727793003a70941fb01bf6c184890a691b70c0aac3b11feb3987de8628", - "0x1c1b6aeaea826ed0cc776a322454663ef555adb0d3c6f50480957ac4ab7f0672", - "0x187affcea64fb6195ee27cdca1096142898be0fb8f216f10913a744f2005f7ab", - "0xb4e42e3a4c94477a6d5d7f3de429edee7d92cff93b647c71d7a20c1e07a35117", - "0xf960751197118967fcea65f10b51d9568c184a8bc968c609d093a0f6c15a71b5", - "0x0bb9ca3521abf8fe971d371749e5c2258b1fd4c681ded047d6dc7820d303fa9b", - "0x52354e8e99ecb5c2dcc1214c08901d715ba62a7463d56c76a6bd1287a74f5c38", - "0x8768dc0cb22a0ea9fde00170783fe3741501d958c186e2c636d03fdf8a995129", - "0xb4204eddcc9c75372de503645bddaffd3f71e8554c3bca09ec700d928a9664aa", - "0x97c94c63bd30754d51abf48aa830bac3724cf77e366965e9f61a100cd0136714", - "0x60dff72f08506ac9ddabe3f957f88a1ef4935f187b6c536643500d65512fd393", - "0xa94f4c353581e474a091655c78c491c38315e93e287f848c17843d807aae3527", - "0x09d90469c97087fd45cf1a2c5471c6e81e0ec1e7850dd76b0d0cfa9fd49aa13b", - "0x298d03c60b8dfca9ecac182b5c0f6818a4c3d84e55314c083f8913a8746fe335", - "0xbfa7ba8daa97bc681bc6ce413494b85ccfbc10e2bc96e148713e0325e21b3b60", - "0xe61dde9cf0c1c6fb0a37993df24dec2f221f97bdd34f607de13fb1f947e7f284", - "0x91e9a9e65d5076819146b246647b9698954bcf55e7f059db32854f93b325d35a", - "0x7bb2fb25b881772f318a10b6ce8896712c93cc85ce9c7c371337020e86817a3f", - "0xbfdda2258ccd28dfc81f83ad7cba81967120257392279c7412f0bb116605a21e", - "0x0a626f29328872380ebf6a10468307abda5a02c3a7b9e04763c0c8c83f903df7", - "0xaa8ee86e9446a125356a96f8ed47c3821da54b003558f68c823c4ac1ab966c81", - "0xe26f3cbd95e0a26683c26adfb71b6d4fc82b034171f29836cb9bf391cf172376", - "0x7cb80eb383da7d8c1120fbe79cf3bff3e5bf19b9f57aebe11f79ee23dd82e611", - "0xc9b85149830b7a2dcc1f613f40ae232bf5cce7770780bfa7c77ecd25ae0bca6e", - "0x859dc28f93d2f3b17e176aa8248d6720be498fc85017491c68d6af5f4798b437", - "0xdcc4dc79cf88601caf6e038bea275a98208d221ac8d3efdd5db3d2181c14c947", - "0xe1bd63a920d45b05efe5d2fb99437a26bb7049ea5b183e99866d6dae947ff724", - "0x4aa94bfe1501f4d37b0c55d77add7bee9bc7f24d444a3ed1c6cf27d67026bb62", - "0x10931498b823a9784c4aa3ece5e88b477050927fe4016e4b10de7e2e0eadbdb9", - "0x7f30cca2119b5a4107cddca59a88f10ad95cfaa879d97bd1e50ae6a347e71b1d", - "0xcd8a0dd7a4fa9b97641d5288375105273c9025a2c9f3d7d9d04179fe3f55143b", - "0x6c8ec850db640544b7e5b22c19253dd1595899a7663d40c4fe13de4258cd60ca", - "0x06ec895b6dd7f299edab3e2e3a65322fb7f8fa8c9a6182b7af4f0fa25acdc45f", - "0x45f6d74f05f7b366770428b49630e836c2fbcc72133ef03a1bcf9953209e693f", - "0x3d868a3921aede543f2bd8ccbe3b51468e7a87f8278e4601c4a8e740e8c339cb", - "0xc808c8fa7b02023e5c64999a141edf6e0ce0239e37656e0fa7c5156443f555c0", - "0x82c273cc2afd955663515932357f19d657eaaed2824551814706ae3843fa1739", - "0x5785f16929a6a73b4621e75d31958e2e9b00dcbf3a6b38bf3ed59672918b68b7", - "0xc8f84b888e55070682103999cfc315ea3d157d0771f0f035cf2ba03f6fe1b1f1", - "0x343a05e1a5e75e09528f194394caf6ca8caf94904d54d89c9d22abd5cae0d83e", - "0xddca7f95c2d9cfdc9efd9158d29045ba92a71d45488c40d28b257425c1c56bfa", - "0x008a2b681c4691d7e0de476180c969aa511467f27755d0d498eb22c9b5333835", - "0xe33fb40ffd6253b5701d24c59a4e217197f9eb7caf7c2223722734f4c74fca4b", - "0x650e8f1c6c4dbc76ace7d6c29b9a659d520af9b291b389bfe3812c1ccbd07c58", - "0xf88c36b8042df77734f99395eb68aa9f4b67a21891c42350e4d5e3e6d8fdf168", - "0x882c68aaa8d1f6acf005ce2ad3a6fef7ec1212ce610dfb8a7bea9417d87431fb", - "0xda73d75513895d5bd5174814da25cddac9a633507960e78ae6884b92e48ee699", - "0xf07d98594c0ecb16cfed18adb9f7b5b1055630b43444c70e6357cd18ebc09392", - "0xd70c5886426c55dda997d615d325b5cb5b652f5673601a045a113d94a17715c1", - "0x3e8dbda1f53c55fa4de65efc7d294a02d78c69a98d59049dcfcdfff6b7eaa521", - "0x67b14249f9c987298fb00e0bf560a976dcaa7fc0d02e816f84c3bf7a4e7c6901", - "0x4f8affa83492afa72e95a36f23356b46e58a0a19ecfff6960d4d6e5b9877b1d9", - "0x09cd2a17655988d2d8cd5fbe44965a6c15c3f123b75e1229621b9ab74d030e53", - "0x30693dcabd19e89bdefff4753cbc64d00c65a4af98f782e6e67b4e84f6b015a9", - "0xf67db822aaef8bdf7967c0dbe25015ff6cf88ce21e8bdd25feb764828ee64951", - "0x9a587510721ee914cf8b9c863859629ca0c8ed22b0aa023e9efb0756d3f9ee5a", - "0x5d00c0a840b96a19679736a7ba555f3e9bc5263b4b8437d6c3779191eda0a7c4", - "0x3e01cf22757510938a5aeb2ec6cf5046b7d3c186bafad7d57b81c7d2a99415db", - "0x0ff2d3ed3c5acfa5db9f9820a1a314865e266a823ab42f40bef6b0276af0a108", - "0xd3207e322207667c614e50be784f6b4d9c3f48362dbb65b17c62f5f33e631ce8", - "0x2c3330fc9f6394c0b8eaea0d156f2b9e2d2da0ddc8837e0a28d373aa779df9d8", - "0x56c8542686730adabbae6717ed8cc8f0b974037842ea5d1c80901f7c85eef3fa", - "0xc51d8a382df91e9f1fb0dd72d416a7d094aa3b8ca4f90561e82fdbb9b78c28c4", - "0x6507fec75b170f930df2e28dc75ef3dd7313834c8a8a2ec837d4ac27fdc906d6", - "0xea23428fd27ff3e5c6681b0640264ff22964c49ab0aa41f592280ae25d380c83", - "0x8e2a629fee2ba03e333bcf7fa0261dadff518dfb0e386b21cac0cdb2c7c514cb", - "0x4b00742b5349bc9892f2d36abe2c723a30c4a20ea5b899a7fee8fd759f066fbf", - "0x5b8d880357c44a79c0d04b5d347dc7c012f2f5cd7679c4d4131e5c481b45f1af", - "0x65d2859128eac961e29c063fd918c7a2b485bf72743cabb0fae8bb288f155dfc", - "0x3db9720d20d90d7d1ea448488d02015f4b1c36f556d704749723ae1c3a35aab5", - "0xd9676bad19db9f6896b2170e6cba496f5714ff9a70252fa1d4c82029435871a7", - "0xa36e49e6be40418bef884caac3b30e63fdaa1b8f622c70ede69e6d7c9c6f4539", - "0xefb40f7d197a63927f761d99596439b7b69cb7a39214258b372450fd471ebd88", - "0x7420e77f7230c7458f728f7ae5f63f0bb9182fd11ccb9a82bfcad17a8d1b4f76", - "0x7ce9551cd4cc5009d28a6048701049a5decbcf7e11904c588107da90f57149ed", - "0xafdbfc0bd5252cec1654dd24c375bf9f4af647cadad403923d6aa525fa44aa85", - "0xef0a4ef158ab6b06863969c24dc7ce5fabbd36181e9eb6d1662ce227b38f8e61", - "0x4e6d1c00feeb4218a0590fe046705fa35929767430f2c33b2176afb45f26a71a", - "0x604a1bef767235afcb7f84a20ef59d39618593def34034c67cdabec8f9436ea1", - "0x5c91553855f3a32f708dfd76c83a7d7f23aa80e5a6d2a7e9d83e82a333c9e267", - "0x48e35d198e8194ef83496392e05e3e14cc9c7ea1f324fb259c08a0f8385b422b", - "0x9df1a27224c2a20b229cc8686d95efb1570e822402c9df4db0b47f190c33dbee", - "0x020eb0cf345413cf0324f7561031eef27f188de5dc41bf38471547aec4e716ed", - "0xe9f7708c2cc8ee4785ed54a0c153730103fd92c42bb71eb4f86a93111ae11018", - "0xe7b3a27e3f5ff6fcf2925db134ee5db522a008db4d54627b729d5502f3968d08", - "0xc9c4b33c131365224675a89e4e6833181ae50661b114da50b14b0669d6ab7155", - "0x8986fba93ce8e336542d3a640d156029ea1cd99c2cc4e946de6d46e040e52bed", - "0x53b6ba779e5b91b5abe44eacd354f6f9b5b2343e66d60bcf5083ddd1a5147d21", - "0x854e090d7d5cacd3e52fed513055b51ae884965bf1146a629825269506f97371", - "0xcaae36c05b0992f80bfcc8f1c5d3a771feb88aa67f2c87b770637fa24000d84e", - "0x6992bffeb071ba81b30b8a6b19e9335f8eaa2da4361844bfd57f08488dab5975", - "0xdb63608d8eefa64871fa9fba1da1776a67d0c0495502c8eb4005eea4a0089563", - "0x57071fc1829365707d66abfb8e388478cf61a14f34af2c864b7299f6bfc2322c", - "0xe077cb6b750e158f666ea79aebd5e19e25b9d3694ac7a44efee1fe58f2bff202", - "0xc8180f9a9292284d2ba09dc40f89595ae6b554e6eb0c96aff578725076881102", - "0x89eb01b1cfe4089ded962a36ddfce84eb0c4337780446cdd88738e7241257c30", - "0xd1bfe1dbb1c9b6a06a1c18472ed66a82ca5c7ea1fdb5dcb9af1347e6ed97697b", - "0x33695a8c53e9e16e1a2255055eb069d9fc59436ce0ed698aa7323cd7e078cd96", - "0xa1c746d3df0eb28100b84c6c91da402c5c0d6a8aaee66bc05095820764cbdefb", - "0x3dd355f33c841eab61323ebfbe4a608b3dc9779a291651b885383ff70b8418dc", - "0x206c8095f502a995777d4756949d8fa7deeac36a106721d6bd1c536994fc8adb", - "0x95a9ffc34a966a157c5e797e3a1d0029bbb86999f1716cbdcca9bdcc5e77a5d5", - "0xb2c4e8a21c25d7cdaeed3a42b8670602580bc99ae5e85d4e36771e5cc2b7e0ff", - "0xc34e130d5fa9ae3df02c54a5eecf210d8420db5342af4041d77b8ade44d2c67d", - "0x5d733448fdde29b3f3749e70addbf4fcde659aeea24f90dab23997a696db5daf", - "0x8d63fe21beb60523466595253d20fe518dda259cb44fab5945943550b4e960ad", - "0x98e584f6dc76ddf7ab116d2e9244d0a0ecd99d180b1916957054f8440623f727", - "0xeb66965a23c4413fc5adbf4925ec5d133d2579c1f7764d6199eb4f7a5548aacc", - "0xc95df33729fa401a40bb0ca23731b61d5225f3ac6d159f243e1585440e16d529", - "0x2052d0e9ec0a62dcc0d0c892e7e704ed0ce03ef8a8e9c898a3691a571abc5c30", - "0x1f8567628ffc96390df8b7b32ce8ca70f6d8bf57b2ea0bd9e724c521ecd4747e", - "0xf2b48a4fef4c6c6127f7194ac76c57167cbbd65b9cff702daae1ae21dbc2896b", - "0x38dcef1bcf7600494424ae0b24956deaf664b92f3dd60b7a941ea144d789dd99", - "0x267d1afa22f77c5fb78434d822ee1c3fd24740d6a30f3ee4fdac95949ba8c044", - "0x0c01005442f62fd12a49115bfee0faf89d2da7572dca5b0e8eee445a0de8ddf7", - "0xa8d05f61408ed491620865b2cef9548d88182f37784e190b46c36bb09dd2d7e3", - "0x655eba047145af7d76cedf34e144040619d2d416367b57c7b7d9362a9375889a", - "0x5233ac6cb0ff6a892fa475b0074f4b6abd8e244f2a665e6649232e528bfa17f7", - "0xea8b2976e790ed22d708bca311a5b26c113e8c0ea4cae30607d94eb232ccb0f9", - "0x159dafbf20b2e624d22018f214cbbfbbd83de406e9bbaaf53ba46041fc3968c9", - "0x4d34b229e010a2ef72dec76c1449cce6f61d9cb17701803560af6b2072850ef9", - "0x32e7064197d2f739695788a00113452e03306a4f73f80ca62fc5e3ec223aa176", - "0xd1604bdf1cf9253b7b0ae8c92d09a2edec43221394c258d29707ba850004615d", - "0x07e0048d3913db33c6a9b45a1b232a2088341441d398b09319b455f57c18628f", - "0xf6492cd50378901ae238c91685319405d9779a1b78f22bf36129fd31fe709cbb", - "0xecaad91132667d0b1a283da22cdac651a4036224bd0efc79bb747d0c5e64b1d7", - "0x20565b022a8a8429a79a56aadbe2e32db24748238fab33eb2b0be5d83d1343bc", - "0x25e6d936a7b526d45ce1430744f5f4b41cf694d2cc50753cc88330e3e2a0bff2", - "0x7130e4b84c6efae0653dad6e16ec677bee7060a8da8ac607bde7a2b01b7511f0", - "0x93a8bf0a86793725e09b480d9098a43fc30a8420c5c2c2bd01ba8afa837c2371", - "0x2690922d4bf86c9a35e982b10f723edae97bb2a842f362036337396c7d9f9d16", - "0xd26efd262c6605d3be1ccdb03b96318613cf2d5b80350eea826758b9fd8bc28c", - "0xd3b2c89961d6cce736a9994f8707f78068a9806044cc2c96004d659f82753690", - "0x0fecacd3eb8c415a8db644b4dfc0ebf04a27f9b5e53bdac80fb927f40da4a8e5", - "0xd5600a3afd0eaedc221893214d629260cea97d7d5335e361d43183b4dc678360", - "0x340558e8951e1af701e95a963221109154f12c5870e9c9b9c4d7f9975d18ff89", - "0xb2ec154d6a59610822ee2318e3f279e249067893f806b129f4f0497b42aecff8", - "0xcf13e6343d50af1b2ff792e5a694531077e67858d76b39262ad19d6194e62df1", - "0x39db02f0b3f062645478457da8145fec8fbbc8a0981be9183365fbdc11a622a9", - "0xade17860c7f456c0b8014490f3cd15cb5f080e7112b789028f1e86ef428c06ca", - "0x1ab544445bb5d499c541c4fa02c5f850b9d18988e94ac6992525e2ad372d4936", - "0x2c3b4b33a865fce54d1ba1909924b0c6cf9a14a8cc4e3a42e1b4eeaaf86fc50d", - "0x857bb3e657f86c864407a7caf0c6b71e42427302adb85c853f330d00433ba077", - "0x79e42bfeb2cd1191783b7b2bea5e0e2693d9d15ce8d230e03dfbeac2c90451f2", - "0x5ec96430d6d1c1e9395a214e1a685e92c3780a78ca94a173d0e38fa6bca96461", - "0x544858c87e845b1f80043fb44f54a2449d31a0018025f1b41309a745415b1e7b", - "0xa26f04bcd6a580b99e9b81ed739ece117ad357facf1ecea246f891ce740029d8", - "0x857eb2767e67873c3f1ee4659c778feebb69b248950068a828d65750002cec36", - "0x7d6ad830b628a38b1753a33e5df98269d351b42d5bd60329e4c205ee5f30584e", - "0x6cbbf7d83f87bba0d4b4997bf336ac52934866cdd77e7dead51de84bfb717fa2", - "0xea77b839435e70cac6a89e891b8d1c495b39d8d6db38c352e10931e70502ec20", - "0x4d6a29a4487600b0e05ebfca7418dd6b43746ce96a41d4f17e25cd6aa1a2b733", - "0x3e8223ea6ca4ff147b59b025237a2a477495e746e7a551045374b27798ece58a", - "0xbf880aea05a3e440f31777f109995f2a1967272eebd9ff0fac241bee8747a8da", - "0x028cbf04056dc0f407496cfa901a4491c659173083ad73f84d457f016e0431f6", - "0x68548e63888fe0f203a333f5a5c950b36aa35e083a0161304a2b80aa626358b9", - "0x385546df2f083f4781a8b9d5b645516f5a77883eb7dc8d5e399f4f563e8956f6", - "0x358a0c7c14057fef517c38de9e2af33ab44f68c5c99157f9429db596e822c842", - "0x5f89b867c11d5258618595e2afd3f783e8db81dad073d8871a33d179f537cfb8", - "0xfd7328d25120390f5982919333df927ba3c63331321678906256c1ac02af9a45", - "0x406a9797947503dc57776a5c2ed6cad71ed975c05e15ef191b310088049c11d4", - "0x6e719945fb48d4db24d57a92e4d6da5cebc1a3db4a64792dad68b06f92c69c87", - "0xe2e7b80879a7ffc1e4e3f901ac99d252c1625b6824000ffd468b2d09d2cffa25", - "0x179979b54792b23d1f1940550d7c961a1373f6dda048817d087ed6d731af73eb", - "0x10b1ca5637aee0b063bf3a2fe5cc1729929b9932cecad392d7da6d567ca82d65", - "0x89edc6ecf4b7f292dc26c29515ffc3367850e5a8dcd95979244f5c57f81003d7", - "0x2cbdbde44b43c5dc078433925dd423ea51886e880b04e90b156957dd6a057d1f", - "0x6953ef4d3aa2abeac14fa44a0be4979bde0e579cc591370b08774f4e65f95d05", - "0x0735cc7c85194d5abf6ca0dec712db94b6b009c9ed74ff6781b7940064cd4626", - "0xc3f9b62bea678c0683ed688b77767b3fe3e4fc86456bbaa8c0172240321242a5", - "0x3640c7a7a1c2b62492098e0b5b9f4c482add16a86c0f88f8a60eafbf28347ccc", - "0x73820554bf239c8e1b92304f3df8290d18aaf765b45c8820f618d05eeb80fd66", - "0x8b948d61bbdf95e634d5c3827c66266e3ee42b49dc0a29100efe0f7028d100d8", - "0x8c422f252ce4e7c981b93c24db0984962019394f50ef5b62cd34e32ba7602026", - "0xd250921e7c17e016360e0b79d61d6c19ca40ca2d84c9a7c8d9da04ae4676c29f", - "0x4e71a2075113014494b5cf8504d48cefcacf14ca6be5d99f945ddafed4b58079", - "0x40d0dd35a9c91dbb1de1df4202a50df1745b2a5e80b256c3542bc0cdd5a2c524", - "0xf77e21f9edcadcf7753c1daa00720e024f56250766ac6c31a89e8afde10c9056", - "0xc70a38751d11c4240f2e94698c0a13a62d0b3cd825527c1dcc5e653186034f07", - "0x0f4f7881dcee934f71ab555428e89e26112ef6e99935761f3d4f314bb5504a20", - "0x82febe35f996dc229d6f6e89ab4c15f5659860505d64d454f625c95284a307b1", - "0xc557d10c1d19c90ccb9a504d31b0d91bedfe9a82388824fe901e8325a9996dd6", - "0xa241dbe076d02feb2b67d606b8592c970d193b84309196191b19087dd74b5eb1", - "0x4f687e1fdd09e68deac949de2738583e0dc2bf245790b5185e2f4e00f5e8da67", - "0x076b44af8dbdd16f859d9604f91e8809f929024eeaa6eb457c30db2657c03430", - "0x1bf2736aed60997b49084afc7a3d2b429d8b8836183c9ba71fd61afbcd1b5f0f", - "0x18ef59174edf670a07ed5eeae04eaaa08345d384d33cba45abf2a08af2415a5b", - "0x30f123870658c6cb69ad9314e6260a5ece2d5eeb4964601d4243aa1b56f4e021", - "0x36ac3e3193b6fa52a7134b9e4c7db6ce746619bd7f4d07201362062a3f98be0d", - "0x6a9250440bff309071b1493b2db2b4134c725ae364fc8a8add7e108f7434de4e", - "0x557876702f5bc2bbe17f13c76d0cdecfa68b0fe281f084b2f343d130405bb80e", - "0x5bb14f5bb4abe8e79909035a11109385ea2fa77c4208946841b61f1dc8a5366d", - "0xe7602f83ef13f3755b1f99c740fc46211f7ade9088a1942b8ecbd5a33482c093", - "0x30b8ee6c04d787ab137e7bd6cad1073e4e77a74db657798cc74c79676de337f3", - "0x01067e41f6b5fe5a26009378b7ea4b0515aac9449eef2730de5efc22554ed10d", - "0x73dc8e186c096c752f8dc2a69805e1b24eb5edc7553be26d36698b25829ebfb6", - "0x23eb0c950ea1467134caced1d86eb89d4addda6f8ebdbcb85d9127a5ce0427eb", - "0xbd0f1080cc7c2adc0874fc6d89207221155bf414e1cfa3f9360fdc98c820627c", - "0x0bdad5419ef94ee6aa76e4971981e54f7d6560f3faa3531f5fede35cb2e211bd", - "0x8a339a58e2ffda5cc2ef1e18a078fa09c3aec4b2a8cf9b6094ff620fb88860dd", - "0xc9a633a65b909af3133befda06a57b3058d625d816ac978f01894fdd7b3295e0", - "0x6dea631bfde98ab2b7db165e29ea75316ea50137d15a30a9a3b444d50d419e10", - "0x0a74031d338957b9564500f28f0e45aa571f48e4c85cdc52d6ac8d472fb66661", - "0x5f9e646f342e665b2fe387bdcabbb381a71e54f766afe9a5ca6c2cf999b50e4c", - "0xa8691691561a9e3236c0a26593f1c49b42f03c94ac3124b16b4aaf07fffb14f5", - "0xe806b7ac21b2e7d80f0e4583dec620b2b3399f4c1adc82a246bc77c847024310", - "0xd588437c72ddaff5ad3a154915700ade8da4023421008956b1b3d1bf164705e4", - "0x2f12257a5c3c0097b274697e648df08c31a3f8cf0833e45e45fe76091c7e22da", - "0x88eb766b8fc471e455e50a183b728e6e7fd3b5a152440bad5d1c7f49e173dafb", - "0xeee35cb04632e48f5b4c94aae1a40c372eacf5ca773c9dfc2fb3378803a6fd2c", - "0xcf9d9bbdb883ac7d171f808738dc5ad4e632d91f45737be4de2f9a2605141f81", - "0x94ace01f0f2f127e2cb47dc05a491df26fff49f68cd4f382c12e7f332032bc09", - "0x8f261b4ff772d1c675fe16f0764ae644d198231daf66a600d56526c1288144bb", - "0x95062df2fc6e23916b7ec403eb5dfdfd8f0aff49ca15e0b743e5a3294552d619", - "0x9626d392247cabfdf89c0254dee12f5d82118b5449059b78b4fdf7ed62ffd688", - "0xc7b341b1a1464207bc1996364debec53e55a3212a2e18211a994d2c8e864e234", - "0xa5d247c7e7511015cf63aee2909dc9ea7bf56b9c2e15f1603b229dc7ed11a6b3", - "0x551f57a199b684836b3b5d6e6cea2c7cd58f830e870d1689936ceb93c652ad8b", - "0x0f0a17a40f9cafa38559a7b8a1b3848514f4b5dad4c4565f8915d04163f1b51a", - "0xd4ffba1b3fbb46554137cb0114feb898c9a1a689c0fcb4dbdea49a313c593aef", - "0xe72848f46d7f041226ed0cb38549fad946e14ca379fbba4cd52a3bc3d6b94c55", - "0xe34036fa757a07055a5ba89f39f90066237152468c6c3fd8e60484000dee38d7", - "0x0984ba7640b44fefc22e2b53463b91b6686b909d038a29039a6e5f84e25e1257", - "0x2fd4072edee29b9b611c38972835d3cc985befaeea149311fad80dd0a8bab088", - "0xc64954228a4067748447b768bdb34d5a434cfdfe01acf86a11d8a278ee7d7433", - "0x7b10e8fb7d81fe90362c7d3af0c153460ed3df92c1c50b6f9a993fc81e0f29a0", - "0x0c33f7aefb88bb9f6cb9061adcb5fc535b2a3841a6ad94b8a4adce1954bc6f25", - "0x21460cc4c2bd2d828027b9c04b047c06b1eaa83f47640639463cbcf603e4b7d9", - "0x9ea560bd5c0c6a0fa9cf2e0e14ddde39cca6c24b11e02b635bfd4ba7ec826e0f", - "0x47c9dc525e0e1f71e159ac75943a32d541596c9b479639e0e8f00a171a29057e", - "0x6f32319d8d958c89295e38c41c2a6106d9f6bd86ea19ee6cd3df34931a2701a6", - "0xf90b80919f035eaa3cd56d1c54f9c69e60ab2445a4995c7969a4826a28220398", - "0xb9ba6d207d1d7866e6205d540abc36bc3198b072aa5d52378a1148f6a61210c5", - "0x2f494b0db620ec08b2961a12d79585de2f6939bbe679a8ae1a580535437bb0e0", - "0x65ecc619942b4fc71b4477dc5929244161cffe2933c84ef8e2d5eb443394e0dd", - "0x12f573e148bbef501d4325a52b737580d413c8f999cc86cd0e497d9201a006e9", - "0x709c2a2f2276d712070a10d20baeb7d1acc602e6cd0d27438950707175f68faf", - "0x472db00ea142b38a076569205123d2ae53f42c1ff86d38100742039440fef89f", - "0x536a68e966effeda6883266a1f6f00b42dbd874d83956a3312ac30e430607bbf", - "0xfda5031fc6bef618ec55de146ed9834dac41afcb0d0521b34e141cbc0617d14f", - "0xae912c6ae86e69a59c61a3fb95c9a60b37c17c3ce2b6e9ae4930dea5fb5454a9", - "0x426c6889a4d6f3896c5209b662d9caa421adfa1f1770f33262807a3c89983364", - "0x6e72f8cb2b6cd35fb0c090f8be71b1ba790cf2163d0cc18dc0bf62fcb0658fdc", - "0x7259d06d38028ec544eeab2e264f2d4ff975f245c3697ea8e141ebd59733a2db", - "0x37729ab26688e0399334fa3cd2748818425b3fc41304fca56881658dee0b90c6", - "0xcbb02add11c0edd8105b440cd44a041b6f55a94712ed12ffeffd1817ae8a8044", - "0x156e069b3b63fb302693018293bcc0ab60b2ee2cc8aab43e1cca3774e0b743b4", - "0xb3a7a06a4f2c1034ef5a2fa5fde7554f239b0193093c74db11ebb5d9b1a18f03", - "0x323b6d191477aac18e4761baf8ff9ce70b1274a995aad02fd582f87285f8a0fe", - "0x7e4d202c5dc858e3a3c45a5f43b0804a4ff5ed53bce625ced7eb65db74e908fb", - "0x75446e5cc0142cf4b0f26f560995f257f87023312697b3574fe0e1f558bcda05", - "0xf53cfce4dcf415ea49360d84188b33a1b6e3c686c6e59f1a7385f68f3e160a7e", - "0x43ee5e27e64e778f31d641050b5c975fdd9788f2d5821bc8e3c188a91a86ba9d", - "0x6a3a73772d1ed7ebeb82eff2419e05583049939493e4ff396fbbce7e2012ef05", - "0xf976ee31f6b27e1e0f359e1f96b5900f34c49c89e81bc753456599d2e5f4a097", - "0x00ec8886d567bd489582441964bda82f3e297801ab0c5d3e58a3df29f9004a4d", - "0x9bd7ecb0d91d576640cdd3022ff0bfa64838f057e55cf35ca945d47f98d8d107", - "0x1868b1c9dcce55407f81879269ef1296c5eeff32ef4f7770bcddca4bf972df14", - "0x24856220dafd06f20fd0914d4468713654f6d9a8a8472a3cba537c6db45c1981", - "0xa05130241c7260630ce231a427081969d4428d33dcaeec08287e7aa80541384f", - "0x4812c23621b2399a68e81d9dd6fe59b0f0953b279104a69047d0df3678c8b628", - "0x4c00bb65a14a1b995a38afe285ff4594c51c8b10c137e73376da3f2660f00044", - "0x3cb2cc9dc9b1c997b8e73ee151de0cc23f5bc0d7dd27d0402b6d79e1b50ef441", - "0x25c0bda0d092dff16a5cb70ac082a0e3c17a42d74191c9c90d46deaf34c85ad5", - "0x8a75c8a0ff4aa70a0f1389f5ddeb0a1b7aca04b94af03e7c2f3986a6a9e8f8b4", - "0x9d9c63e3b449623e45de0542b1ee4d102204137a2ac36a25442f3797668058df", - "0x932b4ab5c339c9654cc1c5e343aef426dbfee3a98b7835efdba1bb583238aaec", - "0x8001e5592beaa70277723223f033b9f830a23d4dbc64fc42efbb80bfbd7e2a22", - "0x1b84fbbecdf3add7f514e0cda2b1c88b21a65d82da4264d06b332ab216179230", - "0x79cb6fe9cd675e096bc92d449093e78e59c6c4c813b550c25a76c2cdf125e582", - "0x4fad1261fa7d06941dc436c1d38188e3660b300dff7f2001a7efa7b8678bdaea", - "0xbf81d3c1b1e781a706c6acdaa23c12f5e900fc3f191d6edcd1636beb3d29a6b7", - "0x36cc017579e8daaefb5592bb0c5b2d2fb7df5afba9fbf02d0c750287c2353b78", - "0x0cf0b82b4a102f35a06f590481b72f93d570e929bc43fc188e829e01fdf0bf9c", - "0xc0b67d7c6100b042bd39d0b4747e854a0672fa2769dff0dfaea01e05621a368b", - "0xb8c49cfa2147f651bbd73f97f02b694a5cc3cf9fd79d47bf34857804206296f9", - "0xd3836371f2d0071e45176aa82ecb05b5185e06e79043f69fff184121380e1093", - "0xaf9e77ff0a9c1bdb16afd7c1d725263ad04394e4b73f013829e63da9600bb35b", - "0x43082e5b9b11362b6b5cef0c5614848ff4c8cc9dbbc7e2b179330b46e7b3652e", - "0x6cb6fd2e7bd5550dbe63b9875814764e64036a921be1e5413ab1355d771cffd1", - "0x1631a928685b0fe688899b105aefa54fe61e564a4c9d8dec99a34f5140e6655f", - "0x095addeb9c0d14bc7e18f547259a68ea3dc982e5256f4a97e3f627c3b2140be2", - "0x520f53d82a67e09c157f3480b4f504dde53d947b9e2238f814f5832f84b8eedf", - "0x433777fbf6cded05adad6e5877ce0ea3e34342af6f65042c6141b4f4201103ba", - "0x077878ad6fd501074b5c713905aa3caeda3237a1b58087e6275328d9482b0577", - "0x6037000d2014c601b14bab5bbf758098b300e68fd3d6f2a0d5e6ced1657cd6d0", - "0x481b8e11fe6ca5cdc881bb6c3d7a0d96e8cd2aca705f950ac542c089d7ca0cc8", - "0x2b070c54b2af6cea0e0ee76d37a92ab3f4e9e04f3b581f41ef2bd5d2631b8b87", - "0x01ead0aee81e4611b5ff7cd64037ec0039a05bf0d02b18b92da6acbf45d4e6b1", - "0xfdcd33327deab31927db501945c15a82f278f34a09112b2d7f74219e9a364555", - "0x0fbf377a65289b1decfc2fef4614b1e5b3404e0a0c9c7d0d147cd86bed55f23d", - "0x8cef4b3d09f838d4acb5e21f777fbd906358a2759d24b055756e9d154b177ab5", - "0xcced9e5d45e86423eddcdcae5fb2080622279ff6f08a0ee47012b33af58f820f", - "0xb1e6b5dceef79d8ebd0b84a8990f724fd645be2434a0a8339e78fe61c2ad3186", - "0x24a11c3547f5fd5e5eabda12369f90b8f5c8ddb82568631b6e704c2ab5c94ec4", - "0xd6cc197005e41f553308ebed885a4df650a2022d0d40d25f37bfc74a94e5b04f", - "0xcac28ad9ef5e3f9b0d2184fb3427dad0838122a44538bb1e0ad15baf08ed7312", - "0x8070860a9337d8e6e016e0ba5953968bf410100bcfe5e567d7562e74b95b5d0d", - "0x8ab5cf8538537e591e95fb1dcb9522067ab5ac783bfd622e6c9bb131d3288ea0", - "0x345a12de03af922ae9e6651cdd4c4249f75bc2aef1f1651692dee6d27a490813", - "0xe9cbfb97fea7afed66cb3551d9b5f6ba697a4476a5dcb3ecf25bf9a41e54bd85", - "0x4028a3855c3b656c1de109e250412d9596cb6fc4aed22b8bfca6d2a60b1454c3", - "0x85591c0037f549f6d807c91b929fb0290c1b53f23e9305bbf4feed86d5483cf7", - "0xe3178cd8d8b7d9c71d9614744a937add2ae6c21f6eddf508fdec243c6408b647", - "0xcf40b5e2f93922022aaba8558b17b193c50f6440359826dc78b58e9b9e34074f", - "0xaa30846598de0f132d8c18084859e6c67189f9489a2b8019936a151e7d0812d5", - "0xb908ee8113c1e60abe60fcd0d7fedfef07ff0efa562673d0ab86f6399812a8cb", - "0x8f9d9102f709fc1b4308b677e515173a1db857b4989b1de2961b801aa8b39db2", - "0xd74e36d71447b437a4a4405dda388a9779347fe41152b7c5515e02edb567b5ae", - "0x5aca44d35187500d73b544e71ea8a12100cf011c219fd8b83e44b4792204edd8", - "0x7196cd91ee48f598c11527924c83431dec39ed7cd67a225b64a9d04ad23211b0", - "0x52584327a0b33be95ebc7040c0dd9b60d2bd0d42d1247b8d2ee06b0d6aae9f58", - "0xe2517f4a4218e9741b501cd6fdbc7e2080cc8827bea231d829d1717d24ce4e3c", - "0xc94771be6c7b5e858823a03e620670cc604cdba8092da13e429c76c2077eb2af", - "0x3f7f556817b418fccb808f7ede824ff17b119e7fb02ec1a4239a71835af5ac5b", - "0xd611cd2fcdea70eafce698fe405f361ca95b67d5631a9930d858f4a7cca46358", - "0x5f2aa6ad1fed0ce4db64bff6de7bfa68e060d357ddf20414fe5f10b4211bcf7c", - "0xe8b5d5fae7903602ab3699ff27f159367e2fbd8fbdb4f45e7b1628b563081940", - "0x31cef735663de763db98bbb0846d5a1127adf45ce41837aa77dd5e4008718711", - "0x58f0b43df5b6c2527dc3e22f2f76cdf7817e23d7c3b9a9732fb91e6da9a537bc", - "0xd13734d21521985e4c6c14bcdc34139efccf1f0a9ab92a72e0b9e639321dce70", - "0x99b982d744b14279defa1771bb358ab55f4f3730a8feed9e14023b39c44f2777", - "0x827078f5ddff2088e6d16039c439492140337ea661cb361fe87e0bb7fc785bc2", - "0xb1f7f5fcb807c343ebc587314a28ac008f849c24753383c3e40c9a12826c9f5c", - "0xd60f786c664eadca5ba1af303f8d8e88d781ec3611b9f781cffd5b17610c19b0", - "0xc514f1487e061262e2be76dd593300b8402df6812700c41a2611ff5aeeddfe45", - "0xac6350441c04277a76c019215cbec0fdab8f6e46087704ef0b75cad0356dfc32", - "0x724a5ff7c13fe6d21249b47f47082797b2470159b298ea281f9616d6b5c5269e", - "0x70dba710ff65ecb7c9fef28b366f5b175e12a63bd1f7530ec18da36027033497", - "0x014f4aad56ae3ececae45610e6d28475e588fd39897127d20675c1ce18479939", - "0xdeffd38ba5e4e685603ea1da27571d48830018be17755ef7c08db7f6dae63647", - "0x1e6e324967609029e28e768443d11cd5d99ca713a88c9ff47144d0b16b9cefc1", - "0xb2a2a5d5583ba070ab2b8adc6f5eca48b621b5244433a5e491784ccdac2e64c8", - "0xdbb937edd70b36b566e397fa369a5a3a0b45e606ed012277c64234eff00f2157", - "0xf043662cdf2a84618401c619fd8aea26a54519add9f72e43a520fc8129c02000", - "0x9b84dae2d1a0d7e23073c558e13e16ddf3a28daab3569c89271e0f780f134be2", - "0x93c7258e9e78238eec47497c842a643b339ef9ce4f236ac2c0541872a427a1be", - "0x8a8fea29216df1683fedc14a7a066226f9299d1be50021d3d2aa4c0585b29f47", - "0x85bde8bc039cd1820bc1b1262545bbefc07b03de47090008becd1417ad3b997c", - "0xa7758356e4555d213a19f5c343de9cbb986509aade6d8237baf1fc6e07084b9c", - "0x546bb118d2a1176ffc967f90bc342edbab4350f28294ad6aa29eec2b0c9159ef", - "0xcb50bf5a5a25b95962b6caf51b5e23fe60f6449f69b4df5d6b6d7fda2463d5bc", - "0x1730541314d8595b13f01281189321299fc3d2e9d0b9aa354099d6d83538570a", - "0x5b57218719bb9816f4341ee1938263fe92cb95e798193cc2b24fdc3836abac02", - "0xe0860d86c780d3bd7375ef6a0d75eaced9fbd90283f8ca8335205ac3d3a3dbfc", - "0xcd65eab452ceadb388b945eab3342dee7542c76bc912dd738e86bfeea1588f96", - "0xc15efc0c25c4c019937ad27026225024ee6992780b9ba02d3c70101a73b354a1", - "0x30e8665a5ac3f3eb1b9c2e67d61dc2dce761e4123ed801c1a6f207aa3828804f", - "0x6c3b5d4f836b7d349a089280c1f4488de60461c7c1a7a5fb3ddcc69c1366195a", - "0xdca4d348f2b9806cef16e320e0b21a539769746679c1a45a6145f2298db496df", - "0xe8fcbceae567fde12d871fe54233ece0d74ba8508fbfbafac0f154806a9462aa", - "0xd79328e9ca262b6a91652efb67dac1fa5e8c3282dbcda58d4b93b8874d226966", - "0xe0fd3af4b67510c68e8968a5e25e741e1ef71c9347e18b8de6139f918a62f6c4", - "0x70731ec895bdb4914a76b97ddda78a8805a39a56987aefe32556b93e2c085d97", - "0xb387f307e22829ce20c5d7906037a5bc202950197bdd75ba59999c2a09778864", - "0xde1ec63948e3c4aaa005630545cf73bf9d20722a1c35b8176cf44d80f4cb7f0f", - "0xf9156bb506ad9a12b3b2357450c443572a3e3399e97f68cc0166ea22155c9277", - "0x3d5c1ac62e043661edf67446ac9f96b1c887d07ebcffc2faeb317b5c3ab596e8", - "0x70e9f96a6d21fa71ec310b99db848e5dde82ac9410ce8c6d24af115421527223", - "0x366fa3d63bfdfd2fc10ce44522f36ca6b8f815629bd36a26c0a5fcd6f95fc5f1", - "0x34b6b13187d684972edbc097949de7ed4f7ad2658f9889e1798e955845f0de36", - "0x1ebf9da97a23393f6dc5cda5c54718f273eda8ac6d1977981a0e1570863d9833", - "0xcf8888cc905df1ee1127f59c8ea7f9243c4688daba7890908949b027f4af92e1", - "0xea4ba26d5fdff1daaa42625fd88aabf7f91cd400829268b9beee5fc09875c630", - "0x639faea36eb1a652b024df696454c856be53c3667e88c7af5299c050c1092bf2", - "0x1e67283656def3ee933332600071fde44127ea3caa9c42f992ed16e33d1122c3", - "0xa4f53ce6159cae14ebc60a69e9c446a2abdb4f4f5cded75b1c5814a84c487528", - "0xf2840725ecbeb6e7396551fe034d21e75a5d34b4cbf8b3b18dc5ffa06a3e2d85", - "0xed7396b51a1b0d93b2288a4bf60ad49d236bc14b0cfeb40dbbdb6e9682d3fcff", - "0x9de490ca8067c84f922547ab496e57b3e1fc4685b744de22f1cac7dff687b930", - "0x3c3f7c57fa9ef833accca168540766407bbdd2c418f13adac42838f205199462", - "0x14257d1a35fa99b3cdab74c8445bed9bbfd25d1604e1b9123fb5c5bf88cb3a29", - "0xac74953d33cdefa9037a415336672144c53310ff50f75d865272ead5e0460799", - "0xa94b857f4dab303c1d4a5213c7bb8b91a441ee8279e69fa92057718f3aa40a4a", - "0xe7c67bb2e440f1062f95e28f0924d0b29bd789103521cc13d13a95673cc49179", - "0xe90ea613252541d3c5237a27d4d23780b579cfda48c057b7304ac14751166031", - "0xd85a4fd06114870b3fe19cba9924405de1e14e026372e84b24b4ab39e7879545", - "0x7d65651c6e789a3b6113f589f696ac6595f279bddba74a17e955ae6ff93a1846", - "0x5e44df731c9b0905ccc33ed49669b78834d065fe3fedcbd0fbb7df95f706c51c", - "0xc90d3dc4bff702b9f17930d27b039bfcb1b7879076bd82a5650177252a526dd0", - "0xb5d0f4ea7136a5f10e47f6a802b46ba0c7dbcd4ee10b4be65ccd55fd4c940bdf", - "0x4f7647e2529b477aded041ed2f4c8e01d5219839950aca43723993c2432105de", - "0xddf89de514a09c21918af718834060348ad0bfd3b86e0953c247834634eb841b", - "0x325b15b05b3c863822647b25ddb970cf9cb52ecd32cf58e6c5e8cecb1beb9c89", - "0x3cae2ef569b1e74770ed80bc31da2addeeadd59d8605eac8edf3dad0fa9b0c37", - "0xd7409a715ae5f091fad14187121bad8263caa2f60ea0d0bd7c524065defb564b", - "0x5cefbb199b507e3b64008e5d639cac8f623e9ace1292fca190bed4b7aa214899", - "0x2c2919f07eecf553b473f98d06171449838bb03c0a468d8a7cfd8062a574df1a", - "0x5c122d8416b78e0e7328881efaa7fcf61be6851a5b7572ec5c341693fcb9c734", - "0xbb81898e64769f0a6f1c20a2472a5128e969f737d1cba5be885372453ec18d1d", - "0xbe203e6f7c0c86ba994fde55d0daae0f066814938debc3b5a44884dda70e3ac3", - "0x73c7842f2480e3d742aed1a1b7682ca1f322d4d2555cb7fa402313024c2a13f9", - "0x5b95cde26a2c2be298a03252ce36514dfd3c9e84f5c5ffb75a050bb5752b6247", - "0x9c7cfa9294869c1c42db3cab3bfb737696b8f81500742bfeeaf29145e2b5c79c", - "0x6cffe595d85a32ad1656c81c87d476e6e7f602609fac052a0a3e3a951d11eafc", - "0xe2ab30bf8127106a4507034cf6b3589ea3dd19bb10c765434fd3f3f7d75c1a4f", - "0x01d7bfcc2d4c6fccf5e0599f9985af838cdc0281c9c8cdd7006b3b0abc775cbe", - "0x004114dfe63995fd66e6932c62cd7b3f40108e5e2f6916d19dc436cf016392d5", - "0x068c036ea74e85ae8d8897589a8dc775c8516e38bd619ed584ffd51021393fbf", - "0x682f4444c85c46d28f5858a91874e0c903e97def4e2a4302ca90ab69b54b4f49", - "0x3fda79ec159c2878e9ce65c575157daaa9561f17a14a0003d95c0c4264985707", - "0xb41874256b5cd3ef80af1536a45a8016cbade06b4a06b1dc0942c27124d934b2", - "0x0eac150f30020a7651a006324da1ae240d4fe623f077c061a954122b0e17b0a9", - "0x0b174907572651a2453a14e0326e7ba836781dbd939c2d75db84d9b481391824", - "0x082beb1974f7201be32469b9df42d9c30a520f4dfa696fcd991ef20367cb6eb3", - "0xf3c3ebe6040e1ce5c5ad1f6e08965ef387adb6633581ce3fdd1858f1da4547c9", - "0x6ba341211e75ea7346853a3f63ad5502f83aeefeac98a479aae546a70141af99", - "0x3962cc5bb73ab7f48d98bf65f3f7f41a8f3c52b4d7d2f12a0a89cd876f875bcf", - "0x5b49809641f72f5c96bba6b27e0331ce7fc7dd3ef18a4463c93d1f685b7a29b9", - "0xd2b2e8eec102c4b68d94d8bacf71755386bc3008d15d6090772a4739eb763300", - "0x704bf1701cee4f631f4de0e330873b1621490faad46203fab288cbd0892da567", - "0x2f7d29943c2b3ed9f59a66ad175d298f1e4761218e3fc52b9a67b4ca7107e93e", - "0x2b370002b007d4df272104b77c1224c24eae67de3e12aa599968b190e8d58c19", - "0x1f25435148cd815f4549de1f21ec227d42f360d207aa2f7de5466c4d28afdd0f", - "0x86d745be32470f409b5d77f92f2412aee084fc523a7ff7e57b53f39b11cba2b6", - "0x86d57512687518e3db56834f819bed57ca4f2e3845ef6affb15f29d1e166c333", - "0x9ec0e54aa6361293f68c14b7ee9dd32abc52d9649522b0d62637ac25d3a978f5", - "0xc2dcddcdd616160a196f1336e9f11c7685c5eaa4d3f5ca7c35d7eb14199d21c4", - "0x03a14db3cd22bffc91ce24e510421d60431db71bd68b8b040c89f85f7664967f", - "0x3cfa17c8017ee8692c5f440e6ff825b2bbfbf18d01466234bf69ec85c3c793e4", - "0xeb12362e925a0b082268e0e006165720dfa72ec2628dcddb6cbee4a4a0ab7bcd", - "0xb8c68067329a16ccc14fa3a5bb373d8281c79a20e1a15f74dab053efb881d13b", - "0x282be7cff399ee51b3b8ba7d9ce73daf0427cb11151b9a81ee0f6efd837c6f6a", - "0x357989e62c038a11c75120f990adee58fcba6e7fd49cde265296b2ee0c7f6db4", - "0x3ca8e01da313e17c3a089b8b99ee118d10140a497aca58d62c25452f1361f0c0", - "0x9778186733b0e642156d6af17ffd8161608a2ad791cef0dc5d6f31e5ed4ccee1", - "0xc309f7651776d4510a9696c89aa82e8720ebb2c41c208e7ba8ccdf1d26dcfea6", - "0xbe30023b89befe4495b15daf4578f415e8cf25087428bb25b1af06b43b04b114", - "0xe7246483ab7e0afa2a6ebe69819744cbdbc588a5294c1c59cf04232782d89c1f", - "0x54e18aa712987567ad36173ccaf070b127277ad6e9db2bfd1831b7868f56c660", - "0xe5c6a4c0f07bcf3dab39def282e3af9f7dce84a7b2bc71c9bc3bcaf35bc6bdea", - "0x5d78d891bdbb232e7d90370b5108ee03ceb0c5abbd5bc1c49c53431a94fa2309", - "0x91f3efceb05e5c6114ce0fa2477d8e2a6d9979ab1d3cef4d964d7d804399ac50", - "0x29830ce8ede37d875e7203bfca97b104b002aa474fa9aa9fccc11b2baf665f83", - "0x93a0646400cf92d5e7490638b12408ee9fd7696f15005287d23238ee5fdba9bd", - "0x47273e8e24cd886a25e278d327bc0b07e4c3a6b27634fc17705f46a019ec042e", - "0x3469aeb8bb2312fba8a530a002d75b75bce0a4b0e7f48d3e92d595dbec818594", - "0xfa8abfdb2535d9f04933e924e967d97c248b62900ee645fc991a47d5ecde87d0", - "0xe9fc29b24fa7b2a6cff23170d96faa84aba582f68792dba4962e7fb53922c568", - "0x506d80c18b5cd845e0277be32d0553130549a976f781c315c674545b1087516e", - "0x676bec126c59b4f69ddb2ac8141d9e90b78a2aa1b5e55e6458cd479fc7f98a10", - "0x4a99d2f7be333ced3b6faa2aaf15f792e00717da5cf15ba2e9b5b7dc02bb1bc9", - "0x776f5be74f05d1200273ea3c9b1919637fc911c76d1a9c3e1e3accbb9ffe6e37", - "0x09b9f219a053c0c3c56581e32ac15fc6bfb4fe69208a5291dd4860cfee263d19", - "0x65c9e06136563c4648b76cb1e7c5d46bb7501773825a10c610f2b63bfd5ddbdc", - "0x2e31a4c4d6670c2155b3ba877cbc6f086c18059b2903ebfcf2cbeb6f73e67bd9", - "0xdeeccdd2dbb206be5fe2bd4e122d6cfa556d00ca0021384138dd914fa3aa2413", - "0x0c24527744343d79639a382412ad22e5ef2e610151e1a19f09f725dfce287ed4", - "0x4fdcebad349c83d27457ec443a5103b375f26b6da958227ff00916cb900643b0", - "0x4b06063a48575a6f89ae7fb8deeb316c30e6ecd080898c47f24d9e7d4f6db960", - "0x463b0fa1bb74f1473673a2760a7e447def169426f9f7cb57ae4c6d417f58d829", - "0x01050ce1aeb140cc812f24c6629f9a171ddf4891b9150b43312fb052ecb29de1", - "0xa9e4bffd5ca3834b5a80dd84bad6ba4dd71138f02cd386668aa8b73f437f3e0d", - "0x379e501e6acdd0f94195bc851c50e7674e103ce8563bc61d7b0e6ccdadc18def", - "0x8d93115aaaa77767f70287e025a445cf6a4c7f455a67615f38c42e827c95912b", - "0xde2d4d8337849ad10a32b1731a0c281eedad191a09b26764568e7cd9769200df", - "0x575de523f7dde0e52b68c15646d22a31e245a037d1218edf86e295fba9b201bc", - "0xa545dd5a5e5dca568a5a28bd387417bf3743e184189106670b03b423b9e5bb08", - "0x044d13ecdf9cd6989d3e5a1d8354d4f5a7d29439a5da0c57505496fee7b6d054", - "0x4d99efa30d95ba2f0002565ccdc0ade2bc3f21d3153c638fe8ad9977f1da8360", - "0xc72982c95de4754f8b0ac62113a71af4c760c3c63f18d230f1fdbbe3c0b379c9", - "0x7a2dc8e509b0901646afbc1a6f9b5b27ff69f2fdaf4377ba027be555acd128ea", - "0xa3656ace4d66ddbf55477ce61954f2e1f165f570b5c7d028d1653e9f879cd080", - "0x47e4e4bbbc704f65e3979494487b0dd51cc56a928f26f97d6e29d76db80ac14c", - "0x5cec964b6d806da75f96c67c1db66d7c539593c476c69a2207be25934443c82f", - "0x685e812268ffe51415ef5e540bd4d2d65c2f34977ffbd54be14c895e4f004abe", - "0x991b2344ae224901f5ef89be9ed8313ad2c217e3727ed8d24f3a35fb71df3982", - "0x1293f5ce59c36d3189ac40e05bd8c0fb4b69008d8d457b224df1ef1e0285b553", - "0x3d41f27e644e2f7de5173dfe7004e32d6dbc8cb56871f578c3b2b943210a4c47", - "0x2decc2a4e91de0ae9a5584cfb03f6a7a4e0a867e397dc74df8f185bf241cbd96", - "0x0aab7f05bcd3b3633184b45c81dffd70b3f1b1b23f28d46747ecaf54fde443b4", - "0x8bbf3aa92fb9ebba36c5a2756dd394adf505cb753f8d3809393e1d967f78e075", - "0x13544a2979e57f73bebdc7cd1b2a1c9cf8911b8f24868aa1e775c8c53d0e2572", - "0xa7497c9f04590c706fe0a3909bd4af5bccc7ac31d7162b2b856d3a36bccfcef8", - "0xb80de8392864c859aa8e9ca078c258a6992bd848de129350ba29548db6aa4afb", - "0xf334d02277f55288c189e6ce79942ced25ffb9ea7bd5aa5ae562a985eca6e57c", - "0x83a563681180ecc7a1fbc6e47e0ba03f5004a87167fdd451d559a573df30533e", - "0xa648f1462985ba8ff73c7aa4d19153843e6a9a454d976533b08f7a14d2fa8902", - "0xede4ba72831451bfc8651419aedc62e221bd8acfd8d4ebe426d5b84d862d3b71", - "0x2ab8f2dc9b620b637aa27f9303068abfba56bb3438905d29c9a6faba4ad014c2", - "0x225e5b7232c6edb127a71ea313501e49dd86f4df0a037b9c97dd5fffa8c08cd7", - "0x85606456efed98380428d075ac4791140c9595b83707a397b274805c8fdac4ba", - "0xe298a5939a283d03311d1a19f83805f63c83efd2d7affa7586be8868284be900", - "0xfedc0db97df763328cd9a8c8bf1de73c420ca33dc3391acd6e4e847eda793d7f", - "0xbefdc3c7e7ad41deb07ec2821d0b84893440f797fb1603863e274368008b8e74", - "0xba3b21ae193db8215fa341504fc5ca46b58df994c473340bbee3f3fe90d72497", - "0xc45fc6625b0f784ae2039747aa93495b05243c00dc5c2bf46dc372c62beccf4d", - "0x32d182e51018fd1e19b576670ec68d59810c4bbfd406e2bd162e1f17a0555f67", - "0xa8886b1a9d7bba27219fe7f563ac0b592b82a1411392ea71a4a5bb288a98d6a8", - "0x396bac50aadd2dfc853c144091324a12ab8661590fbc738d3cab77910aa2d2a2", - "0x50e35af52bf6eac228c5fbf6fe5dec85989b76f44811099f2e8f4950e4ab86e2", - "0x9ba2aebd73945b6dcb9f5171155c0fff29db8cf40baf83b1689a7ad1004912f4", - "0xfb1cb1ff78859e3d5f0db0656821e12b8d247ab3896e6670426dce2055f1ff8b", - "0x230a6f6567f066e76413b72e7650f7cba9315090abc1bc7f93b861d85aaf0c68", - "0x4dbcac91377ca858927a01f5a5e8659b4e718ceca20d4962c43fc1688c4d7574", - "0xb13061dfac0e8f22dba518fd46ea95024cb97ef825c970cd5e452ccb3d7fc6df", - "0xc5af27a85235fd0e1da29b5afe6955d72fc2245c5709a0f29bebcc7c49eb4a0f", - "0x7937707d20bed2c7b68dcae39ebcd93b84bca9f471250e20f86f8ba58bb10fcd", - "0xe1398b71406488244a0c205db9c793be090349bafd87fb147c1aafb9d7d7deaf", - "0xb383706e1aaf7149b1ac3d258f6628e8e6d40be0dc096647b4bb82a08585b707", - "0x2c07639c073fd57cd719e5c67371e5c8db30f34855ffe0d985070b4b36e27cdd", - "0x7b264ea13f78fdba57d1097be39b6b2dbc614ae36cfea1f99d44b9966b3db035", - "0x04d942f60d32a80d93d12fb7c8ef95439e0da5c8358df2c01e7547596461ad79", - "0x71c93b0ec1e403906ce7e5a38d168b72b14cbb7cd0e832c2a7e73f485c7d6567", - "0xf7060c7f697a68824bbc178e02dcd6b12ca204da9bbf2a17b69ca858e2ea9574", - "0xb3b616f183145bbc77d8e3610504189e00c0aac3e15975e4e01f1b2b25c5b5b8", - "0x137f77c2fa4e911b6915c5a84588bfe78bf54ce39d09ab07e495da9283966d19", - "0x5949274e5465952855c28d70a4089644200927b54faa67d5aebbc4eb2b891aa8", - "0x1c695bcec5602b15de8099c550a3b738aba98acc46377cff7a5e58bd7f402ce1", - "0x8d1ffe39767f285d7f164018cf2fa4ec6509194c086c33af7ec8132e3572fc9a", - "0x31331d50f79ace5444f242b279be905e076d675fe4d4e1d32de728e2654a08a3", - "0xce9c3e8fb9a75e284c81925c6ef742c4f34e6f0bef11578a61be5325692a3a60", - "0xa4cac76b0729c42927d1ffb0c870983830ea66636e9abc6138b943301c59b96e", - "0xbcc505e608198cc3546899012cb59a3da60839c9060d2952f8ecc178be4bfd82", - "0x1b5ab87cc34a38f4be26c5e3e05903538e8e3af350f6e2e1258b0cf344ad9f39", - "0x85849c1cadc5d3bb555b88b1e5720110a1d4f7b79f634427a1f8d7e88c2e043c", - "0xee63ee939a6dbc6678415a1af9969526083bbb754a8c55e97cdefbd2f02900dd", - "0x50c63ebc1248164b057854b8ab8bdee0510a97f75e864e1d83feaf59541a64bd", - "0x58daea24885faf1556b3111c06351fa506b40b9f1ed365633a2246165abf3819", - "0x0357ff6bf4ef1b1bab206c3c3efe770c6493cd85d0540fa29492428d0a878c6d", - "0x52963cc6bf51a64c1f8ccc21c520ed95d5ecd0e43a86b85defd7b0113082e9d5", - "0x5cb8353b62e27e59824ee43a4bbdd384a2af41b52f9ea5444a1a180482ae7856", - "0x2815152239935641536e549578cd0d33c74a377ba350a36ef04b038e5fc49142", - "0xe6df1f1b9949e17e0a683b6fb7ec9ede2b49ca3d479202226ab4180445f86d51", - "0x3af2498e3ae79447c4b6b3f025a37c790622e2979462dee5913fda778882e5dd", - "0xd498a21e50c930d1f0fe0afa65c6f977ab8da037175f34f4478e52f4c1631d01", - "0x12478043148cd0413f56918565cc2fb0fb9802dab776f0a055093ee8ac131da3", - "0x9acd35608a37ac8e309e884b88609957ed24ffcb5816477788e08a874e6c5a61", - "0x53ecc517c7158fb6e99863c54795107258b61399279ecf74f443d49533a104b5", - "0xc74f9359d1b15de475fdeb56497a5745a93c741e5f2c370656b2e7c269c06511", - "0x8afdda4ce115a19309597eee883cfd257182db46070c7cb1f24955d9c872c8f7", - "0xc4036bef9a9e692ebe72c946161b3ce5c588f4421b7d6555b5d65f3311a5b0fb", - "0x4b64a608ae22b5a655cba7ef78624eb69f9f8e2b2f7aad8c04cc6ee95386e9ec", - "0x4b5506aa505815e519b5008fa8d23488b642a1f347f6cdbf53975636a677a6df", - "0xc251b21563070f1b3895bb4512bdac4395440217c5ce01fd85e89399dad72b53", - "0x07a7bc11d48537654d24eddee78d35e4510f22b755f1f36c3b81e98087a1ce68", - "0x66a0e9bf542363d8660cf7817ccfa3f4262e4817fba45d2871d0154b6fa7e969", - "0xb2493d6e033e1c29f62a409342beb82f692e565638736fd088d80acf7666b9ca", - "0x4c55f2a4ceb60544682cded4ae8b23bf217ce7d87ae90abeba156d9b1005f397", - "0x32b3cd5438edac8902527ac353356e99effb1dde5209fbe1015673778f7c5685", - "0x4066c6ad2c7170b434bbf3e7ca0fd678803351c3dcf1c56e84bd6c14ac2f7712", - "0xe74fa1fa353cfe643ad94f6a609726fd3c4b06f9dd7503431f84b13bfd87b06a", - "0xc46c3e5bc3c3cbc604513909999f1523d704578cf5f025a33f1a5273ff6cb81b", - "0x261b489751092cbd70d6d3010b5c5dd68c9041063c3f998b742e81060107e17e", - "0x37992c7e208c0b09309ece681e02e957f6310c6f42401702b31f752646fe738b", - "0x2b09e6bae0a34cc6c8c83e97c3369bc847ef6410551494af91a3a39929e7d949", - "0xebc85167d3a2fb3ecdc5b07d78b6ba3a0d8294901f75d687087449ed78b305a1", - "0x8fc0dda2085f4e515491cf0d5a525f10d50c58a0a86a58954b07264425bf1e16", - "0x5acaad0dd003649ef9705e73232b4f9598c3fa14cbfafa1691d0f987639b914d", - "0x41cb16b9f5120095aacbde94f52b635a1ea9f347af8f4092660e84a1b87f8535", - "0xa5f2fb17e7fb322069fe66bf093b99f54ffd9949fa4cc983d2266013d2dac2ec", - "0x014582ecf0cc003d21b02662531b8c0422d499d8b74069533ee24b9774c1b7ff", - "0xda9554b8c2b3fde14390f91282a91a9eded5473cf58dd2f5a6e6168cb4d24d3e", - "0x55fb7a99e9e6e3d9fafd8c9f65dbfe821598f2b5a63435204c063cb4477b1d2e", - "0xe54e3c51b6eea19c23875beccb7e18094e4db26f3c94431df1dec26e6db98773", - "0xa7c04b495735a1a829c64f06b94c486c0880a7c54461defb31a420fe0104e1fd", - "0xc7299bcf0202163a946ddd5d8ceaa209a1d81e28a27e5f8fc660c00505df769c", - "0x2526f9fcfb45966a26370e08b26cbe29fd5aeb568b0f945399a6ace1778ebb57", - "0x59b3d302dbf5e3919550c0c1b75bf111d513f2d0d948ca8cab6c44fc38459b3a", - "0xa73fc3b85209e722b88374b2ef3fa3df240ef81c9f9e0d4e7e422ddd124a5ae5", - "0x0dfe2812db18ec7836f8d2227e35263eb98fd2046f597c203f2b499b538a308b", - "0x1f7c6caf872ae90f4cbd92c7adc49ee2ddce61baaff37186111ba7d5347bb4bf", - "0xd67aa89ad3f03b9d801d3f1cb1ef58a5d9f6b8e4cd9d6fe9b862b697f60951d5", - "0x9d760e7ea703028be2d197a0ce28d4057bd8fd7638781e9846cf5d5886ef6611", - "0xe9bfd8ff1dfb81f4f5e5c3a3f821384f98d7c6b753ad356952fd10527e08ced6", - "0x95b6333df70dee92ff0d880239c2ec7a4016c6192391c08e797fe24e06bfcd0a", - "0x56651120494e23767700b82c6718a9c1abe469da49c38937582d08220330cee2", - "0x70d3bae96dfe1a093bf9233d9f8f4c149fe4079c5f40087dd49c6e524cdd96d5", - "0xd29445a1ef099b0ce227c88efef59677abe47763149e034c3dc96d999b66cad1", - "0x7e2fc31ca7a02f965757f118797ae5093cc95a89fabac7e25a22193f2346ca57", - "0x3b7ceebb659eacad955fe0e95a6f141eb4f59f4fa70e52da5c85d7a9467b9298", - "0xdabfe5efdd2d7a44022fac35b13c8acc8c3c1d69ff360d45d997887feedffa93", - "0xc883f0d5c38f40861f9466fdc84170f7605e9af5ea4d6f9aa5088c6c9e482b7e", - "0xd5b14197d738e2635f7294eb8993b01db1ec02de38a545fae881a3f11f3917a6", - "0x5d2b9e3f7a490660bc2592cdd4e04fc9f5e32de1de4c9a8c223b177627708bf6", - "0x2e94c911c88a1cd80e94acfc9f27bb5675a6ca79dab6f70f38a4df99f84f7bbe", - "0x23fbe80ce230e0cbf881279ff259642d6ddb579f0711c5f66e93db3896ebd835", - "0xf1eab3ddc0e2c231cc78d123e20f4195808a88f79c21b9ec2149e3ffb9b1d5cc", - "0x5156b02d5fb9cc38a14e3b4cef86fd99d01db773f681404889e6f7b76a6b2d51", - "0x4bef16dfae5442b8d2451abc13f610acb565fde8400ab2ce52c44f54f68308ad", - "0xa726272620270e5649309798d90fc52ab80b779fa03fe639fc8ef14256d5b1ee", - "0x7f327dd9c23774439a2c080274d3111e0487e1e9c848a9e11c14b2e5a9b307ed", - "0x711fde0a0f1474e0ababf802d8cc8da401d1bc4f836868f117f8ad3756179296", - "0xedb4b7af3699fa441ab53a6afaf380b5760fb86c6b5a0f2d73075fd9da23c8ae", - "0xd7062907f805b2b54e9573104b7248cda283ff1af3d86b7d77b4f9a94d420200", - "0x540b2ade8a4d3571094a14e7e337cb4ff66a86e3cc9fa5da85e93c21edfb69bc", - "0x3c06c59332db001ac1cc72e9b07adfe31155df74c920d7a897592fba0d265a48", - "0xe24179dbc1457c23d05b307e0b42c1ab276db666e49b48cd3e1b3dc82e285de3", - "0x70675363d1a4a6db8b803e3876b171c4ad70b25a56790ac7e4cf011ded4c9c9d", - "0x80dc30723f933aee8e126815fbc226186c07d724cb13c60bdd55cb470f159c4c", - "0x9be135832d600074ed784053d80ad3fdefde87db55088a545a1f8403429d86f0", - "0xac742c9ddd3e59c3467473ede8a794a8b5d1c8299a471c7510cca0b11259ffec", - "0x3089d8ef215e1cf33020d6f2dd005c96d9e7c8bacd2e272c788b79e3fe016caf", - "0x7b22b3b82634041abaa917ce6ac8738e1ad5ada1038bd1a583c84f2765640e0b", - "0x5812d6270239d7566288bdf58df80a2f692731062d3a0aca56d3df972616b553", - "0x0cbac8f96a15a1f57b3ea657e5888598f7350466f40fd46735f7a8229ae7c528", - "0xac6d9f1c216f28da4b97cf2f78f4a7d6ab38636e57fd9a4db71bff191a8007e4", - "0x8dace71e1c1a12a57dbb4794cc92d3e6641201ee75a8304b28b670719cd9a179", - "0x03d497bdc46d7189b30bdcea32a7d93ae17aba1851da4b5b7baa241f0348649c", - "0x9b2316358a104fd1a93cbc388c1419b1db9043aff711d20510f012bd135a1309", - "0x88d613d910c664cee5d50fe1733340853900df4000225698ce32816f457c30b6", - "0xcd9d22a2cb07552bf921cddcb89d879e49ac840a5cbca91da3324427d7d2b80d", - "0xe7d213479605f340cf3714234eeebbcdb63805c5e9479dc56d4a4b2733997bfa", - "0xd899fb4bf3a918a9cfd46d23152fb1d5e54f97b86bf270ffe28e6e55e924e391", - "0x14a971dc6aed1e7dfd4dc3ba613548b8966495628182ce99c4fde9124ccd04af", - "0x89800cc5cfd0ecfb45bbd253dad288617123b3690098e41b38c0d51cfc10234c", - "0xedfe6f669b7b9dce540683400260000ee191c3481577aac6efc163afd7af6154", - "0x70b50725e51c7a5fd4818be7286bd1cc9b15ec2ed4ab6c1bf7e7203c4fa8f25e", - "0x22d02fe95c6f959f72ef4c96329dfb31be8ddce701e0c3ecfc8398119bedf656", - "0xd7877a10f7f883975c5498cfcb07f044400a09d906cb94c8cd29f7a4b93e4b5d", - "0x2e47d9590efa111e19419df7cec6b157f4e06dbea4e64108b7101017bd0cbec0", - "0xbbaf38881063dfcece265083468830bebdbdbb833a57bd7844044ea0c57d1e44", - "0x9269c959dfb4540e3d6c815aa0135b945acb7f50b38fff49f6e34425477ef553", - "0xab47e57f72ee8c8d8857247f84d3419edf43fdf6470c9ab070d8733cd8ad617a", - "0x2be450e3b77d2d3377218412be18390e984fefa2df07d02edc07ebb2d64a9312", - "0x6cc64bc8709eb51b5321b25453e77f871f364a8b277ffe51afde4b8c7a181338", - "0xda70fdeebaa9502e8d0af2350824ee0807e31cdd55ce4195f32a639f47f399cc", - "0x2dac4b30d219640aa01a2d7c69528c8d31636711c915827a64a9219524f2885d", - "0x50932f0dbacb5af5785065dae19245148270f1d0d3515b8d7e191c5702047b6a", - "0xd919cd9f3f6bf7ff66340bab7c562bf53eb969b3e00fc950d1d3b0d9d815e351", - "0x76a276f09fc452ac94cac15d5226ccf3110080d2bdbcb01e8ad86597a03f21bf", - "0x83bd36f26e7d087ca641848f5bda2313903ca64f8b61cdac127ec56efbfc6ccb", - "0x6a65903a006c6759aba3191ce06fd45b0702f127d822d9c889df12b2d52c7bdd", - "0x8e440f04254f81737b00d3857d1a95bf8709f1475bc0ed15d7347c94e57cc7df", - "0x20929894b05fe04fe12b11d336bbdf33ef983eaf6c501846d48813a97ee4b5f3", - "0xfc727f2888aa9f47d486f93b266c6d09b09b949821b63bf86aaea830c16388f4", - "0xb9035314e27d890b6362db7cbb0953e953b57163be0d80e5ed36759500f3160a", - "0x6d2ba56b3c06326a0fae498467f439b47bce1174862817b5c703019e8d448c4a", - "0x6b92e2415eb7349014bdc3e705a2170a5cc09796930d94e861868f77c45d5802", - "0x83a57de8623aa9742b33b3c8b3737bfb198f738111e437d9bab12baa0660cecb", - "0x979d381266e5105773f922d3172dd020a6010b9e435f3bad16ce6065b537f384", - "0x3fdaa18e7a2ab12c5705b17ae33e96d8df9ab3be631bb9c46d31052ad423a4be", - "0x439e461837340e67edf1c7b7fcf633d5c3d8636174335dd80023dfd61f66c67e", - "0x3ba40c7198d6c75a1ecd79218edb9608b7cecae9f779b37d26873d040d29b308", - "0x66ca7e3c8f892bea4be87afee3db3c9352641139ea4b8d459417180c2df8ac5f", - "0xd55c6d521f3a145379a1daeadfede8f837928315c9c2f1c2642ed0e1a7e87674", - "0xb848560abba9f0e19af44219c2c1a5011ca43eff4ff6471555b3c1c235c40119", - "0x1fa19a85d008e7af8585eb7cbbcc8d61ed6248708429d0f458f1b497ebb190a6", - "0x72a4e2f8b7fe422eeec318f1127b4b4e4fb03e40a028d45f5444c9b287a4a764", - "0xed88ca02a5918d6f621fa1e945bb1533e33ea5c1d41f7915672e3c4e4dce78de", - "0x60ef0df2f7f5c6de3dd7c02fb202c9b3a13f48102f317b54b25b2f0f1f49b6e1", - "0xc49153808e765883dd21e1b58b5725aa1d242f920ff0ffe0c6089a5e00719c82", - "0x0c8581a354376bbb53379f45c92e914e46676b68305e8fcf16eb069c65e87cd1", - "0xb562721b9433cb712b3969d193e132132786434bde1d45916bd7423194c84678", - "0x060cfe84bbb7842e0a49bcf9f8753635d9fcd694de3b8d5827239606269f0cd1", - "0x84306039a875a723780ec685c34474d35ac3431d6ac8d43b2b6d1bba8572eb9b", - "0xfeaec570403a0190c889e5d2ecf96a9a6c720b3944e4b703049c81a35b56d820", - "0xae002e7d8e1279513b037ad09695e93f80868c60d2d8b0ffe6efc8e0ca8a51fe", - "0x20e1f3248ebde32f2fca51a576abfd0db3fcfe359df399f1c3102ed2183b027c", - "0xdf77e0510d24818676727c9d56b58b2495ad63902cedb04e2f3729b58374c942", - "0xc33b4b53e7eac8725f5b3c27a9431dd6e4f966b1289e3b2a1e158474f4a47f4a", - "0x6466f3aecc922abbe6f995a3ede8ae650be7f1c08679c5f6355e32ae95a4412c", - "0x56322467df2291a50bea2baf66169caf34eddd525655cecf6d14fd2295b2a438", - "0xbd81e7bf5e30f4bc1b87c57a4eda09293cf6be979bd2bb02650ce5bcab8da996", - "0x3d611638ca06abfde10ce7f02152069aa30d97949dabe3dafe8980699d49ca0b", - "0x12723caf905e0c044344c83d085f3d89c2eaa695c9d70c0a831d487b050ed453", - "0x473f61c421d202e15d4a62d4513bd48313d253004feb09d9b6e0502c6ba276b1", - "0x9583746c372cd042a46ada64048ac44b30d3b055b6e22ca3cef5404e57a99f0d", - "0x8decffeda7b7de072da8268776c4b9969cbf3e7ae9433334aa7e1e7c93567f55", - "0x543f5b6b686035462d17ef969fa09e0af3e7cd24d13650c2d3597516e62f9909", - "0x5381b2412f6383d057bab3fefd23d08384f345960cc2fb80d7311a63be5080a0", - "0xd96b7933fd9308f7aac9fc42e8feb9f2f4b586400fdee23798cad69611320461", - "0x0982300c344d44c2f63e1c1fb5fffdb44c23749204a0e012733317cde6efaa83", - "0x6048706531d18c5f9a257448b2826fbcf7a72bd08d5d4feb2928acdaeee61768", - "0x2bb89086896edfbe79407ea2bc8535c6be143be6c64ddb1190e626e091c7e802", - "0xd1d6697db021746970393fc0151bef8aca67d202b0e54f4f2702a5f86c2fbe2c", - "0x5c1e1a43ba2578bf4a302e18f37bbc4f1a67441fe6a71ee856662739a5821db3", - "0x1ed663708c0709027c702ad5ce0eca6d3e0f22d6a01d4517adab0a3d25f5eb26", - "0x6ca247d5ec5ae33cbecf8fe88c1aa64745f7a8d299bfd356bacf764141d410be", - "0xfc020b5ae74507a1475ef8e2c0bb516b67bf79aaa2b61bdbc472ba2d75ef5db3", - "0x1ef0990b9051937ff1fa02880131aed9787e6d7d41a598ce7b5094eea1daea80", - "0x9e9e9a83fd6907dc5407c49ea34bd1745919d9ddced756433f374440fa8c704f", - "0xbb3687f8723712f39a8e9f8865543100e048acdcbe2045803ad5a40b61c4a36b", - "0xe60d8a60edc3d7e31ceb356e493a28fbc845f302ae2a8d1e7cb80f53112900b0", - "0x294039b994a3ff53cbba7718280dc827fd582ae789736a026eee1d39284b35e7", - "0xcf87c0d2ee79a0d2506a3d557880f3ee9a20ff51bb44c20caae0849a85055408", - "0x0d6bb688dcf3430e46de1512ebc9e411db3380590bc72dbaaabc52a5320216ad", - "0x9f2cd8a43695c78c7a8fb1352d581c82dd9dd0ff04e3485d5bbdd5e3942f9c4c", - "0xcb32930f407012e479eaa7b4844107167f519deea6c7fc0351cecb93c500d63e", - "0x17e759d815596e0b89a3dc4ba12b9d10ec59988fb0550e1518a8b1cc4f331190", - "0xfb3b36940c6675249451c4c857f6742bb0e1fd3eb126e370eb4deefe238d7d75", - "0x47d619d7d8a9510290dc0b8b2518af2862ff6f761ff09786dced91e39d8afeb7", - "0xe8f40bd7a7bb8f7dffbc63addf31a27e0a987a27c00525c833f6ea8f508537e5", - "0xca372409bc160e5eb7fa70e2bbfe8daac9763b374c7bdea0cadcc933450443e8", - "0x6e234961784273f80136dbdfe0f5618fce6c0d63c2fbbb5d7fd6823632c0ab6c", - "0x2a6cb327e669de9f9783300ef6b2cdba5585236e286ba94dca114de92728ebc7", - "0x0e91e6a11ea59f840d9bc47f251043e10159880276bf69beb075557e38715fbf", - "0xd452ed733b985db558b960ed14310215abce589d4149952a3ebfc7604082079b", - "0x7fc984fb9d191984b5141a9dc7ed1c9657742c63e7958c7652bd896bc6c9f985", - "0x2ce2f74343ae9e37153b5c071c4ba13adcf67676ed7789379c364107d76e32cf", - "0x0bb95a7856e5f61bbe47d56aae9d7f42b994fc4640b50ae80200ed8a678dfd51", - "0x2ab80f2546564ff01e812a39341ae227b69ccc1b38c7f28e61c31925cf622811", - "0x1b24ab582f306305400947e9e7e43a49de6cfd62819517a8ddd904972bd8eee7", - "0x852b65355f93035fdf4358ffc3566d57dd97c9d59a1e545706bc6a13690025a6", - "0x6a44f88a6097b5e3c822abcf1823c98362b26b0bf3753b6fafaafabe9591a07a", - "0x4e7c0a92561e904eed52f2a2b906293411b97795bb194d9c92e335cf9e4ab200", - "0x6ac01d96e58002f8881cea4e177ec7606c69e21d252d863787e5cca65a839792", - "0x4d95bfeb96b7a7978c890842544e8e780f531512c182cf22a73a71b55f1679db", - "0x84de4313a7d87fd748e9872db1164ad3ff9d48993ba429b74dad497dcda5a3b1", - "0xb5ba8e71bc844413cc3eee7325a949af1e0ea81405a3371512fddbef87e4e9f8", - "0x2378cad3d3f0558c0df47cd179791604af7df805f805f7d1ec67b52b2c330d6a", - "0x260d00d98b976fe3aaed233aa9e1b8fddec1092595c91336a5b884fc07e51a30", - "0x7e3e9859270e3a7bb7c5f6d7170e98a8a0a681216e21567c303fbc9e755a4739", - "0xf9aa5450b6036bc61ea2113fb163997ede1bb212f343ae5df0b55561ff32797b", - "0x465cbec75cc303fed26bed3e2701372f9bfefabfcd54096a9189d73994e7aa17", - "0xa86195c2696fa647cd5971d47587212d48957f3faf69721683c158a1372eccfb", - "0xdd104c0ccaebf94bc3c0a6abae1852a71f9b1eee974d5e622f5386ffe0949b7e", - "0x005f5108714efe19e512aa83608e9cac46976b0afcc7a010bfd682965af39d43", - "0x60289c653af2f12a58b10c0f81ed6072b3112eb270b350facd79d0363be2bc8f", - "0x8e22bcefff3aea2767ad9b118be1253d1aedf1e1da502a4855f6ae7eee54c335", - "0x3ec7f166314a0c594eb8138b75a050082884556f7664702333c096bc93b67820", - "0x605398473b453589bc31312579ef3b5ce0b74e3ccb95b680f8beb30d2fba34f6", - "0x51dfca1880e15660901b5f755530c3fa4d652050c134a769b6ab2e1645755cc5", - "0xb24e9463fccdeb2178e520fec46eaa8f2d1da5380d48815a2fe1816f71b79b8d", - "0x97bd624937de7bb8915d7e396c31cdb4afb739bfd4eb6d96f8773ddd0e4f4933", - "0xbe17101284e09bcaa9eb5cd150983b05248b620465244b603b598bbaf9bf312d", - "0xd3c2ce415ee6bc3908cdfada4fcc76b5e0e9fa4f1c6ab43a3710b2ce81f150b8", - "0x8d4918cfe78489e146c071c149a7271ea81dee2ab0615394ecc35827193e737d", - "0x6a7e51675ea6214d36acc7fb193911d2608e41a2df747e328afc6f5a465261c0", - "0xf012c5f418c7e265bce72f9f4e2900084216c9187900927d9aafc899616ea9e6", - "0x934c51d4f2051bb7aa555b3f44bef81ff782b690e29f7cc0a9411ad03ac74a3e", - "0x9ebbecb11efe195d2ef7681c8f1f8af3b501f7c65a0f9ea916f7ffc9a6bafd74", - "0xe28247949b99de84e721641d5e3b638dde927478df0ed0f53b8970b4febbfeaa", - "0x6491ca6bae8781055660837b72622f19daecc7407aa58d24088b45f5725691f2", - "0x3a56f6fdf34d6a4d742451c1f5b6e575685f9a6703541315df1cb8aafe531f7e", - "0xc204b9d22b7cbdcc9132539ea475792f4ea231cb246747c485632be8df4ff5c2", - "0x6188cd2938f72d2dd5e16525574f240b458316d42daafed892faee9189caeba7", - "0xa272f3ccaa93e016333dbc904183db6309e31d06720da1d18addb7560b9bb427", - "0xdce0b5f11909a90c1c6b8fd2bdb3113a035e7784103e05ffc972364530ac36ed", - "0x6bcf3461ce1447e80bd3da2d91dc4530bb649b98333304fe3e0045743c0b96ff", - "0x523496ab97b10356b5bfa8e17b4927b8f0f507368391e24250f218cc00be4bda", - "0x6dfa5889c65ed8413d6633bffc9c3e648621d38eb70e57ada781b3f4dd62374c", - "0xaf1a300f73429dec7f12d0ebe9706cd113e15e1dee6cab37ff11503a836cb3ff", - "0xbb8aa95b40671760e1d131cb269c2d156f29d89911604db04ee7f87511283b56", - "0x93ca5bec69be4ef613260e2dc850668d5a1c839e511322d95ec25203d74673ff", - "0xd7cd3a14db02b6c705bb6cdb03140b50b6b989ab82d733df84f990a9c4d6b292", - "0x9136b9484831f1417ecc2d5ec93fe31b25e79b35513cf5187e50e3b95f862269", - "0x1519b8a6581123491bd0df07cfa3a40b0d098e5cc6ea981368fd073f7c927ff5", - "0x08ad5c68577e9e09e5b00035c65835b404437b792ff327950d07ef227aed6a84", - "0x4e989dc2f09df3e9fef7e50e7b7a9da85c091c11796665602a0f8294dcfcb2d6", - "0xe4a311a951e3743c0d3d05db87cc5d62ab0ebbe6b2e85e035c6452b0803c4be5", - "0x4a64e0fd19dd4b2dd7be3810f870cfca0cb4303d44204ae329f3ef1cd0a78420", - "0xd13981c9f5bfc2efe70eba25bb4f3d3f7bf13d454527df015e951bd79c649c50", - "0x57af6009a040d74b628416de645cb13a58e16fbd63035c6a6d8c8a0bed102ccf", - "0xfbb76c69f42039da5d672776f9e67fe1fd3d7eb0d7f5353852fa64558a91cf88", - "0x07808058eb2b620907baae2b053ef2c5786deb73df750a1b715bb1e0dbc0e14c", - "0x24f1e75fb9fd88b2628285f3e49233ea6f59b474ca05f5823810a8b49ae4cde8", - "0x5cc1e13c706a5c18aa40d8e5db49bcc87c38a07655a814b2179a35b1a8ca79bd", - "0x8ce52067eb546774ae3796de7cbb58f33395438a7976eef1f191cca9c6f59f76", - "0x094311f783939ded904c263a92d5db558e60352a392d3ba77045ff82114978e0", - "0x399ecdbb06d1421fd3651cd625376cea22cce333c6dc200b9e572a001b794a3d", - "0x6a94f126de560108bdb47dcfa8eaa5e9895b3bb9bdf7e7e3078fb725a1ca18a3", - "0xc0c7a71a8e3547cb067a73a984cdf283f6480524578ff611902eb9ef947c4c80", - "0x8593b4417b4d497d0f1d68c21b5f27433be956b6e8f94d0e6efe983492647fa6", - "0x616dacbbf17052280e093ece29a151df4c78027d652ff2ec3887a48daa916d31", - "0xbf17d700c78628de624a49125b764c1240f3d59b85fe376a64cc02f44fd3f46b", - "0x89f0b2b0b4b0eff45499231c9c5fdb53e95f72c589e7ed04c734b4d07df32a69", - "0xd4399b262ddaeec84cb56417cb84d2065664d79a51750ee566217487f420d8d5", - "0x89874f2ef4e0b53e96afe703f4f9e5d5c7da81a621acf00df29f821098142898", - "0x84a9a966381053a4e933c1ebae4fec74d3452ae5feb2b1c90ed59c92fa0f5250", - "0x748adbe8f803c86ef6f20ef7f178123f46d6c45dcfa332827918f4cfa9417663", - "0x0c78bcfbe149b1b2de2253d443011aefb4e5ea0c7a48e2e13156cd5276437557", - "0xa8d86c719b15c328e5117fcc0f4b381df4b8bab346d522df49aae19820ee128a", - "0x3bce6f3055593daacc3ae11b67d5dcc20475e8eaa91eb3153f83bfca6f2e7c8c", - "0x8af84754ff63a68b7b8ba3948e255fc172c53610aa90fc2f5f633bd8ce1ef7c5", - "0xcacfe2b9181c60d0c3d7b48403b18ee184e7c7032f81eebded3f19078c01d7d7", - "0xde4bc2b17855522804fdd6352f36eec477baafd69823908506b949c017aaf4ee", - "0xcbc7689bc06c9f4f04414835a89650a845884a2d102b6900f3abd4d4c8f8dc3b", - "0xb9779ac13bc739d5bc40bdb927c3543310ff114a83bbe35192c250a5f772d441", - "0x1239fa2d0cbb2255d32b82177a976ed5c9f70f0661a5d5267c60f456b9a7f44c", - "0x3e81ff86adae141c75c8b1a91d47db7c6b196ab00cc883fb2fba7655fdd6dca3", - "0x551e92e6d774825a2a48555268c86ee52e1b613e63c8a6e14275ae877dfa80f9", - "0x27a7d2faa486508c7fa20b818d6aa130a914da688d5bc8c60a3547c241937aa0", - "0xd10995979320d9d9d64051e4f721644579b4984a4337de86901b03fc2c042e21", - "0x6f9308ec6c4eb211b8c2323b68c4670db6a8116ac4a370801ddab1da0066df58", - "0x17d3526dec54f66815d8e4358028b0aa91d3a134d843d2945a47dd5aa56ba788", - "0x3a673e5904cc61906f6806b634ae6375de45f4f0d63713555d13a1e274e1bbf8", - "0x39dc807657774ec32abcf299b9c7f03371bfb51a864d11800199ccc7eaafbb4b", - "0xe2bcb8da657b830794b6d9f1e7471663e31996c1bb08456f4d8802448deb8565", - "0x38c7998e73b21038659140e5ae8539cd8cf993686c90148b38d6308a3e3b92cf", - "0x4b6d2986964aac5d5101ded91aaa4ff78a319dc04ab18e550589ef09b638495c", - "0xd8c4da66b5525427cafd152c365f99a255ce2e78af3e3f3dc408de0dd16fee99", - "0x444dbcafda5c0c74092577141df9fc8fb1822ef3375ef0d43eb876fe29c262f3", - "0xc030bec71e90264bacb7c09f9de3a5e282684f9f1d45a2b177c8f19f9c7180d4", - "0xd529e4c2687c7b40d1bda81201770838320b1183da1e18c59c83cc4772296921", - "0xa1ca4f57cfc4ec4522a42cda37df9aa74406d8aa8dc4b56aa62fc78c70d02379", - "0xdd30dc03a60b0fc21dc4b75629124e8190daff2e3504222fd6fb772531bdda85", - "0x2d9d4a9b9b2a27cf863a292a7fd112c81b0deae05457073fa0d5bf7e0dd755d4", - "0x19815e0f25090a9494cf5bea69edb70e7a56e6bf56bd19ddb1856198f54399e0", - "0xa7fa776c8227838d27496a3c659f3da3f5acce22da70701dfd62953edfa2bb09", - "0xe55efa9386b2e0fbd38af545106f197868361f2dc44051cb4a1ad540396283a8", - "0xc6c313738c3c75d434da4083962f8e8355bb8832e17c7104d037b131682b28d3", - "0x756a6309e8c0a374b99b2b2534a851496bc74db36e5bf1c950c0549914f0d0a4", - "0x36f64ed32258a3d2dc849f4abe98db30d8b04df28420c56215e29190e8a447bd", - "0x5273c4accf93338826feb5bd75117a7a0ab5a01225972532ff4ac1d29b289d8c", - "0x6146cf6b830f0222a8bf9353ea26deb973a85c5c4a005136061ab0fb48fe56a8", - "0x97b07c22662079a3a448b373fcb73320fed4a0877125228b4e9a5b74c0bbf703", - "0x68d28adf72884756b688377fac36d371325a01c65f5b70fcd7ac16a2dcd21444", - "0x2c27150b4cd8aea85723c4d264b8799c2e92bd4430719da6bdd3a0290c024a21", - "0x6b553b884acac18804cd52c7139e4a245f2d263b6d014fb6c28e31d7ea08e63b", - "0x64bc2ff8936395f794702b110041a88c1acc9cba50e12c2c5c9730976e667ae9", - "0xc45b2a7e308777811b6c099ffa3287970e003001dfbfe448a2600edf995513b8", - "0xa89c093a0b77cf4ad1ad7ffee799872a66ee38c3989ad39fb90069ab70b1fb4c", - "0xe8d0823460eba540c0c86016014127c7b77b0afdd199fc7bf8145a556a7c523e", - "0xcb2ce7a29b4c67956c439195a84b53f5c54e273c20b6cada43aa68ca7b1b59d1", - "0xcee4cb506d3b0cd84b763f405cd68e2bdf9ec1741778a004eaac9910d17cb67f", - "0x357376e9a49b6c7dab7c5cc95d4a90cc27516f1b7f56c33c4c0125516153819e", - "0x77090e31db86c2f2b031cec1a6dbfa3c3b2f464db7e8444b5def6468c03f5308", - "0xf2b0dee21d7b016c0c9e1a02a970835f934f66c552d653c9d5fcfd20aaf397f6", - "0xfd662e1a27c14d5e8b1e9bf6fca699a3ed7c5bb883cc626d54f53a721c570557", - "0x86194d492a5adc474f114f9cb7b0f6f6795d7680614b29bdbf25e969513a3276", - "0x2bf3ae6993adb5d85fe62bce02a836beb598779ddd37cc2db1f44b1cbea616ab", - "0x4321e3a94d12161ebdbc1b5c0f9223a7f1dc9050792589ce95771c7951b2f176", - "0x79154a76904f2a3c59e7151fff7cd448a3f74c003b866b9faba330481c6895c5", - "0x9c9e7e1d3753804e3644da89248505116009585c6e6d42071cbc532de20749b9", - "0x4dc1441b23210778e4df8417be9f654619527b5b42247bd7a8490a4a5f50dc49", - "0x79fd11e85b307098e827168a157ef45b0af5f4bc073a2920f42c6ff332392a58", - "0x446e8650a156bbb1b96d22e0d09619f90b8baeed34f8b63ba7bf3da3b764e219", - "0xa86cdf11cf5586d8b0449085e7c153a0dd55aaaf930960f3f31f80d099011d70", - "0x4d30e55035eec495badfd3cb8a2174295b2d2cfbee4e669e61bc148d09ff2342", - "0x2f8f3bc3c59975caf160d4a5581cab3499b84a524cb7977e4977de10a74ab875", - "0xe08b4473276f706c7399f584797cf07d33a91c91272ad79e0a5004c00a0d3cbc", - "0x1e27eb957ea54f1806115824c61d78e265cb75807f68d508da5ace6c7dbcd9f2", - "0x8304bbb4592daf4cc754c67dd78a2e2008b1abd8d966521a2291d170c9551e9b", - "0x8298d1605af17c8f47afe0b34b84bba22441a064a3d5311a2ea7e45f76565c8f", - "0xdc8014aead4dcb61449918deef31c64ad8555939347bf04f543d6a1158eb1771", - "0xca91e9581535b11cef0ebcd2e68dc00c3a18844fb4d6f05acf26eb3cd15f1047", - "0x2b26282d94df586bc7d4bc0cfab8ffe1844800c7045621527b9f9f0d5004949c", - "0x9a92f43c5a697a097e39ad12fcd9279b8fb3c3076ea1d910ff871c5ab3342a47", - "0xe33707e3e852b3b6a5cd375d981810399de6a3f96015bff7a4e5065f9c8713db", - "0x132ddae1f0244abf072e6d8115470ad4afb24748169891be0a4b952271599333", - "0x2c1236a98f16a294a9de1c24ea59739fcd6b5932b3f2535c8d131bb2f92c1dd5", - "0x989b0a915bb07ef5e3673a99ee796639722b9e4cf5086433cf8072fa3264f4e0", - "0xbd871c039e619de1514cb6f9223299c44d0555b5eb88570f79fd0d593953c197", - "0x7fcb1ab57bca2410a274f6339927bc12ea6843c106816fe10fc9576b6c7f7cea", - "0x5692b49ef3c3ffab97ab9ab1bcc10017e6d0527e1fab5b257210633dc4d2658c", - "0xe105a92cb6817fe6fdd585068363e0ffd45686fb6dc3658504c70e2057b165c5", - "0x97e65f3bb842f242f51e9ce978320a90720858dc9c535c1d66bd1c269dda0286", - "0xe5ba47b574c389d060e0c5f99f69829d7b6dd8b3bf6e64c315c28521a329c392", - "0xe971dd283f7ed3ca0e28a73d614c490a959c36f44bc30dc7fd79bda064f23aa0", - "0x0c786961cb4df57adc1011891b90813943a13a06032dcb2b7f9ac38dc8b3458a", - "0x3736f1ec97fdfecd7c2e6139fc7ef236586bd9507f65a99913a23bafdd5f069d", - "0x5c6cefd0c6c9c825668f99d1d595f6fa55a45e6a43e23323e901900e02a32f40", - "0x00373765ace6950b4728871a0165aeff55ea61fa8ee07d51d7b8bb8114c20380", - "0x49abb5d78311bf743008c2401f074e4b190d9b29c59cf6328831decd83068172", - "0x0bc28d7480d5a56588b937a530d026a94becf9ced1fe71c6dd1ae0d2922bde50", - "0x45e4ffdd3b6d480ee76f0ee7f6acd7c039ef564d77e5a91546e8269d5468ff99", - "0x09600f167ac2e81cb9164e048908a5b410cef5b48f92eb9a801cf84104430172", - "0x00ddfefc3d36282e9aa8e163d54df86f10737416d9dcf33e786d1713ab54052f", - "0x5b9e3159e4394f03d05ed8b8127ceed638ebe147beda7b7097b6dfbd8342df53", - "0x85d2ae2bfa381b7f5c1b0305f8e252f703d295edbd7c05908e6ae564d05443fb", - "0x5d93339013a78b3344b994bb474fd714bf5495dbcee84346a30219b214f1ed27", - "0x509921ed07765eff19b5c5b7885c4eeb30a8329417d1d819f3428e278364a192", - "0xe004d5f07b3986916f8cca4ba84f9357d4550c26d408f79fb49dee47c5afc100", - "0xcd0f7446313d80026c33427aad00e4689ef0c9966dc5faff93dd1ad258a032be", - "0x0bf64f9c84ef26104cc0d0bc61594bdc0d22f9bf25b436170df1c47351fc8746", - "0xb2e605741fe4b42abeea0ad054727950485ac432754ac2f98db695988c515d1b", - "0x9b6ef4b72c4c5b8159c308fe0395c8f74119bfc495a64e0529209967a1efab7b", - "0xf682c4da2d193bdc8e23cbd2a35d2d2eefff9281bb053f86c84841a3c88e4517", - "0x19cda96cd533527a9a93fe8c38184778cc79ee8ce389c181e67d79971c82fa6e", - "0xddcf6596740ea21e3c5135e32166e5e7944ab1a37ca60c57d9d005f83015865d", - "0x4932d76141f9f33ea5193e58e1767f67b5017ffc277c41fb8b9cb020304b923e", - "0xcab96730ff161fdecb5c0118b34b2a8c6ca2e53cc38ef76b8702284fd64d862f", - "0xe042dd86029d97b89ed789847c9651d49b2790d68b475f194c63c89974704b95", - "0x548200b226d36c3092fb9d721b74b829564bae7f39a63c2be0a78ecac5c69694", - "0x26a162476b85f3f6e366b3b767eb39227ce358a4c78dcbe6c8e3710c6ae05c1d", - "0x6f388c498dcc8b1e986c17332c8df84af7e8af9fca5c5a59600dda14f74e125f", - "0xa342f25dc1194e225f4c8b4d89b8992bf59517cffee52a1f2c2a0cc4727f909e", - "0x5e0d21aaffd603c4f5d73e5eae97e14988b03e45beb15bc44776e2db9ce20fb4", - "0xebbbed03150c85b1a7c7e7e6a6a67fe0483fc7176bdfe4f94bdb094ffce5bb2b", - "0x40e530eaa7fc24685d8cd9cd94a3f4b01aff4cbea49aafd448cd1f7ab4b0c186", - "0xecb1cc861f12d2be9b1f39bf56363937e6bdd5eee6d7e5e90426e7d29bd75e65", - "0xc0bc404c877856648f5793792aba95c9fcf2768eac65028e0a930c57ff9d158d", - "0x3e50fea97445730cf5c3fe8f05c1d03c2298fcd52a7d9be911d1c989f29fe204", - "0xb512ff3c024347545bc2843bc84f6006c0b1a91f49a7549558ac5d8d331c1fce", - "0xc0fd2941f49fe9ec9ca375d0745803539dd3a9750f1bc46380cad3ce29c76264", - "0x7f37105755852886e86d113ada4b4f1f68ebf0aa36dfa36291584dfe28e773eb", - "0xf0942db3af7cd949ae31d1f690f832c6e4f8a3b9744ef9bbf8e7a90b04a0ebff", - "0x6a9cee1f0f3ae40d63dab9547ea6bf342efb99176fd30d0ed2d8de02f1be6c31", - "0x2c2092ec0adfe352c46ade57b3c115783b7d4a92fb63bd1effef32e162d4b34a", - "0x4aae695ff67508f2d03f8674282d58e4f1038cd0d4c2a6a841ce425433e305a5", - "0x543665bfaeb5c10c0dd4d180475c9aa18a9edc313e52405f1c5fdc151538744f", - "0x7473934014d90b821ca0076d132c716728c19927f5680482b69163e8ca5d79a1", - "0xf3f4efa6bc4e493b5e09f32cab59a9cfc28b5a180a59640270a79927058a4f43", - "0xbfea0aeb82cd88ffa0269c56eedfebe83759a4af9345ebcd2156ec234d99633a", - "0x827eef18a3c2e24021dacda3c00187b8cc87e071ed1e2e9246be0066135fc284", - "0xd567403ba1bcccad81978857599647c0a7008cd3ab1a3bbbffec1217da92b060", - "0x74c8805b9b589e9493ee02bc73131431256d18b79de4fc3820ae5220bb5498b3", - "0x32afddf7ebc9d7efe51e045446a61fef4b156a3379212517b0971a91252e1b2c", - "0x4d050a932e5f971f33353a23c5b3382d163319321f55368598bcc3cd8c67f91b", - "0x9c01431659ec8c4db0cffc566ed9da3d04d5db610c6d6fbae260ce3011fb68fd", - "0x0814da2cbf76f83196ccd5342638df799d881eab6a526eab325c06d75b7f8e01", - "0xe669b4a2569397b901dad843884668d52ce85919ac6703671963d55c0923df5f", - "0x44762f71591afce826580a50fb4af763d7ceddc75d6e74d4f40deb3ec4c6ad13", - "0xd3231536bc6b897a24e7925909da660e7bc2c5154e529be0dc590770b5573023", - "0x8934b9858529b0bfa879142e0242f1dbe68143ac2ab347517be826e2cd8ab087", - "0xe833f8513f4e71ec56adc114106d5a8ae19b1aaf95d91a5ce18398f316253102", - "0x0a5d3578d418e0eacc2be66f8eb365a7cff71e6b287459e25a921befc7c55e79", - "0xc11db91e90bca5f39221330704193e670815920a5319eb06676b5d74e1d7d776", - "0x04f1e0808c62821a8f088ca0172820f469d327dd336db66d9595932826fb73dc", - "0x1861241e353c68afcba164f24f650eb3892f219d984e376336f401902b4038fa", - "0x142c7d1eb631e40562c24d2a271f0fa21be1ae76d6c7d98491599dc0d0580d27", - "0x203231cb071fccadc815f222900beca55777075f7d42563529682e6449138a17", - "0x304bcbcc7b6dfee9437b8f6b255accfd789ed115461b41e933140730a46675e7", - "0xc9f2359de838acb06278d7967f2ffdfd3bda5f46300b21939a760914a7e00568", - "0x1b470dceebbda583263a9373a4ddde80e2523b3837ed3c20b111e6fb9aa99a60", - "0x765ebffc2d48b2fe92c3fb14b301cb2338984f7760d514373b01fb34de466b33", - "0xbe814242513e1ef6903600ffd517b8f678cf306e057e01f3971eac7514b72ba1", - "0xf313f2b3c05a1dac53de10ddcbc4cc38b38be85f89640aafa4502631c0e3511e", - "0xdfb72e306c68cf4b22f62e9bca906ef3ac627b2286d2a261489e2c922d700dae", - "0x0783bc2129066d953ef7aca86ecf53ec3ff2bfcf8920f6079ad0a4dd703fe331", - "0x71f1fbfc2a9a232e2674e3e36547ee874806ab37b22728d8c30ecdb7ed2ad539", - "0xbb098368fb1529222eb83277af668535a1173a78825c7e3ef86f4f45429cb838", - "0xc49eea0b1171263bd8df058e6279092d59d1e8a4f108d1b4004333733bc6e7a3", - "0x6f95c83060775d579005c4731e05eda62753bcd0f95295b395b1de22b21f3b0a", - "0x9869e93ab6e4ea9da4cd12c279580e211b4c870a7e7dca098058897795804e76", - "0x816a76e3c912b639ae1e4b5eecadbb8cc173c3aadd796815a9ccdbf9226d58ee", - "0x29f33d9d30c64af6b372e922414c85004655782d024916909834b95643fd6096", - "0x30a9763617e8337203196a11f3e4b81b82d9642f0cf26b2c654c8504d289a17d", - "0x21eb2108b1ad465397ed3aa8016c09a52000c60aaaf42e13d95c271cf394c074", - "0x59d8b8fe9dd951d5ec540bf46808f01c9ec2a5e9dd0247b34b2622c48bfa498d", - "0x71b8061902f451c6fbd95c29ff960353afaea2b0410ee11cb993ce0ccb8af446", - "0xe69938e7da23b9d7ca611326dacaff95009cb5898abf1858593060ccb5aff4f9", - "0x0aacb29673ba3a0dce850ac772455c2b092b1a0fe61ed34965e4cdf723d659d1", - "0x18bf2fb69dc62ea39c195a702b8e9514be4b9d5eba18af13974a63f74febccc6", - "0x560b7fa0d15ec6bc0add83b6125133b97672b39477092cddcd5e2936f49c51d6", - "0xc8b0d3b55acae88939bc9426181dcc7d965bb5f85cc506d26f966c60a66e4ac6", - "0xaa9c3dea2f0184de1774c47923fb7f6ead25bcdea96c70b30127ad61a6bf67ca", - "0xfa90b6e07511736519ec741ca85d23d2912b509ec608a5d319c2369aa358a82e", - "0x0ab8709a1c9ac4e9e516736b4836febf938a0055d5b4cde960ba651e986f2caf", - "0x03e28cb08abb6912d3a25cb45868d699b89bdbc180eba67590b2cf13718c967d", - "0x1617f5fb8c39fac172251ac4bb1a9b8e20f9c36cc6a47e7e0545ee38fa55a6f6", - "0xf8cbfbad5d5e66d95dbd5e83b2968d08b6eb41d28efed0f1d9205b2297168dbb", - "0x4adf7de19d0498164921d4aa39bb070c6183e8511c9f987bc91d89cb54d8affd", - "0x7b5b34085f3267297b40770c0f27095735fa286ade7521e81f500005ab63d253", - "0xc2943d2b12e44ff193ad957440620e43fd9e8da22d74bd7e4b18846eb93fe67e", - "0xa461d24d7d4cc4fdb8016476b3d5e44017bc27609b7fd09136c3a884915c9761", - "0xdcbd32d171d8cd8702ec3093dc2f149c31542a7a35a01fa63043facfbf7ddea4", - "0xe7c4e881bd4df86737497ae6e3fd65fe9d953b8e1c45ef1cbba2d291be860dec", - "0x1fc56bf433f10fe704662c0f9e69a878f243d8832fe723852215f4d2ce51f9d5", - "0x5d22da26a003567829f9e2fcf0c2be4d0f791d44400936ff1132a0dc367c316e", - "0x985c40c0bda98d02e3bbf9e33d13be1ab4b1b917c94e06255a0d60de8a547513", - "0x5aacaa6e4aa6ec649fa272c1ae2cd0376270a0252c39d1bfdd973f03cacecef0", - "0xf2992b858c902441bd44cfe0e2b3057615b7ef6a7d129bf8402e4270b711b126", - "0x690eccebda6832cdab7adc9a56b5d8ad7842aba0d7dfa0aa073347d835e72703", - "0x41f48f7975d1aff8070e4d787b3bc127613fe74cc0207e6355d80c930577348a", - "0x42286416ff16e06c1b8088e484e1687ccb93c134a880e06ebc621cfd1fecfbd4", - "0x241f3e48bbd35c8743856e8020a2def871ffef7ba897c72464286419a8e67e28", - "0x3ba5d479584f036f4b4f99942a5bc2f51cc9c4af24527dc9ced5c66178fbec00", - "0xecef4c63d3679889106352d9e56b56b7aff5e1f1408e3dbe86e35dfe6ea6c97b", - "0x2a55f99801b5437fa85f91046e933d5cb898ee3150c6a068f658e0091a303576", - "0x0103857974871ee986d9d5d430b5c3533c0b1187353300d25dbecc2aef14cfac", - "0xe2721431cf8bcc77d5652b519e879d0cde2524972d74b6ce3e6a78eb0bdc5c80", - "0xb577b9c2b3348feb5bd8e283940c524d940268a3f90c11e35dc9de3438ff038f", - "0x5bf29a628a6ae340206e02f33eab362240f99ce0e3cd8d440d002ed4495252f4", - "0x5b087ac28a0e6555830f6510fd275bf464ee4d50e6848b251dac4b823de6b995", - "0xd6ca4c3a14090c0204fe4b9ac487debafbf0f984c289cded1de950f2e655abd5", - "0x61e776419693248d8a6b8bb2ef9b9663882b57e60650ea7fa22f1251e201befd", - "0x84d0ee42adb4c9b0e127535cf76a00a0d8129396f861d5d41dea599dbbff3d0b", - "0x509683f63b390fdfcbb699a8a30340abfb5425b257e86015170d7b7296b33548", - "0xe18de77507e00ff5a9097ae81007e793ca9abf2c11f65172c1cb54a189032d3c", - "0x38a8a3c1c0c110f674a7e69039258593e15a9194b1e77ebe6176ef5caf09c6f4", - "0x7e55232c46a25bc79bf9390c2b105d0fb342015cb526cf0decdb9db23d1be43a", - "0xb745498c642fb70abdc71c707bb1e4baabd534c5bc503e35545a6395cdb48918", - "0xa4b968ff3f3760b1fa4b352ca6eb8cc883f4c902f8e7baa2644d5a7726694031", - "0xee106b785aa0d24e57532819d4cb34b5795ab0af3080b38c73168ad565103b2c", - "0x1535e68531fad8e1edcfc2621747620ab962ad38a033ba25d1d6f5947381d03d", - "0x98c83d74aa9e52a7eae636a0fb54475173fddddbb56ca42dc314998c5099c649", - "0xdae0dbf33fc395f96a4dc1a8da5af3285b8dbabe5b34639e47c70b0938a9f64d", - "0x91348b33bec70e0e68756023f1432346ca2aebbb6a43df28b7388f6f9f19bc7e", - "0x575859a6c8463bacb07ff4902b06fe1c31ceb9552bd781003d4ea2e15dc81e4c", - "0xef1a187b7033a67ff5dc0cdfe353f81d8286c533669ed4b0c0ed5168f018cb19", - "0xc671086723929e889340d42392545c10126be24c357d509ff1c6c1a5f9a57d4d", - "0xf4f1fdaf74870f153ea8375391b3c446bc3cb9b428a3426164320c720d755daf", - "0x32caf4a46065b4094869812b25138ebed9b9fe17e27bed2f1e1f18485e29a5e4", - "0xb62d0e1a873015ebd2696616378f4f3f39c5e9396ddeb750110b7ef04f189222", - "0x410c675d1f6583e8364939108dc46223cd9835623473ca18dc333a4b86e69390", - "0xffd66aabe2768327036556eee6fde0c9bcfda2b13280decc37d82798075a0b75", - "0x3acda6ba4917e64e977f4135e8c74e9091499c212e6345c58c399b4dd31d6fd3", - "0xacccfad59b3f59f16431348a3078c1dc0b662876754c1f373351d0725dc1df84", - "0x3a74d9e98aff2b6445b9776cdc21c0dafba808326d917f47d57250f150891bc2", - "0xdd4e0bb3b84db7b6e16783870f7c9bc563cb1576834eb9175721eb9cf75f748d", - "0x35e9a92581c9d402a83a7baa67bb72fcd0d9b3f3d7b1b7a143234fdadd2e67d6", - "0x64ead38ff01f1fb408829012a033eb847aa6ce3e9b99dc5e866338aa9c355b4f", - "0x78607406421e95ff55b3b952d2b4846c8b2224b2a6b46d231482ccec5de407e0", - "0x04fb332ad235e8ec13b07cf30b1c1cb6ba8aba4031f932868fc1da5d82c03dfe", - "0x4fcbf75d2beff58cf1645f74c2ea804c29e1abb6ed8d33eb6da0f2f7939b3cc7", - "0xf58b87be3dde47b6a9615315d2eeda6771fa3b31bdc369ea706f7769bd857af8", - "0x7aa5b0a30ab24a79a54080b1b56befc3c88719219ca5cb004cd45d4ca1334dc4", - "0xd2f1129f7a6a0743995aea48e9c3cfdc5efde47398e6a67a634c1c9865b15366", - "0xca65cece85c379cfdd49b9ffc5ed7e9b8a623e06f99bbec608fc3725e4a1429e", - "0x2e6942d93dc94555d948f3358d7ffef3774889455de4da3565ff883a96a590ea", - "0x063dc2dab7f0c558eda8bf9baf3901e1626416f517352760180557bd45014f06", - "0xc633fc9bad22bf62c85d4ce1c064f3ec161014456c4eff5ee9ee197230aea32e", - "0xabab885f2c04a640062289106e7bef857389db6db0a499468b45f5e8147c5f14", - "0x96eb606a5d165dc66e5c293fa139a9e8e28fb1ddc8515279705afe7a57e318e9", - "0xacb239d8e12502e378326dad3b338700d359095129411ace179e5b921c07e731", - "0x8cf7148ce70d71a754bc04049ae797e930a9b16bf4962dd3eea2f13ac6f75776", - "0xf39d2ae39131332c16508e09eb9d507f4c6bdaa284d1f4a9315af8f6122186d0", - "0xcce4df2d5f9484177965c2440bc54d1fbd0429060e82bb76c3b90f444b5246c6", - "0xbe77cc749e5f436a3b76360998ba7e6e263d39fcf792a6dcd7cc4ea18c836990", - "0xcde5a6e02589515ebcc307e20dcbf163ec85e5692ad9542bab23b43de55c487a", - "0xe7977eaf5cd7cb8c7f4e86a2c3813d52943a12baecc76f2b9d1eeda569c29d85", - "0x1011e0ba87c36df65ecf37d2360f98e0d7351f27ed9199fd7df166806332c139", - "0x9e481944f0e07b91eefc66693b69ea71c852552cf8cdafb1bc93336b971d6989", - "0x2b4d369db84d19be84a7af630b0c8a4ce0974418f407463cad8a8223b208a82b", - "0x7cf34185f5e8229b657c57c3c775987128434e909d72d06956515440678e6a25", - "0x5956c7ee723b161a0e7d74c69e57c96ad28261e9d7358bf25bbc16560a8292a5", - "0xd9a932e6f59d547de8699965c4e5964e0f663b9fd5bb9f6dedb4417d356f234c", - "0x59f2fae38f9ae4b74ba9abc5f06d4354fb9eef65983b1c8b1b025720d1b47d51", - "0x1c418c58dd888b1a546a1245021b52e83b1bd3fcbdcd0fe9bd643fe05fde502b", - "0x0db806610e23383046de4a35f8098597f1889e4dde4bf40a244e4995324b29d7", - "0xed51baa16beffad522b677c19935f07d7182b0a4bdb04330146bba3d8e8f80c4", - "0x2ecce838cf6ac5d0589fea00bab4dc9c7b107ed7c70886ea6519807785096f23", - "0x8df70aa241b84fd616047258f87b04249fe23219808a6e14f3d9fd0181c2f352", - "0xddb9d88567f42cea65b5913369c9791522b4dc4a23b0afab2003dcba337a5595", - "0x2e276865fbc34e7035cd50dab4b9b72c980abf8f7dec50988b86995ec57ae497", - "0xe82487c950c00a1e4a9ac6d2c3d0b80584b44dc27d28d6352dcef8786da3a7b4", - "0x724b23460aeb403ae7f9b3512a1e222a63fe721a2ffa4e2f4f3062da8bb5c224", - "0xe27ede30590638e194e91a392993fd9a9a1f168e32e3b9144d71d46e507d716c", - "0xd29403c683d5b1ff60839587e60eea5a6054588903e7c2c0b6f9bf030bd0d659", - "0x4e9464c5a51b3f2c6a829137b67e266ea6381c069e1701f0bce7ae7742e9e49a", - "0x0b107abcfda0ec094a6946c6057564f60eea9e6a55b2c762d4af5a7ab7899c65", - "0x5f908c956864addc2b57f01074c567155bee41412da6d63ba72971ff2eb8114e", - "0x9c00e148df00d9fb2d5847bef0726a48507871baf12be51373a7bed2a0c43f70", - "0x63a2fc58db6de3a2de3bac57255503791c4204941fcf15549a7839ca8ce26efb", - "0xefd321eb79658c3706f6f2a18663361b3adda792fe9064de3785acd101535223", - "0xa73176de8f5b3a5bfe87273711cc35a042c191aa998dc5a67498b0287e54be82", - "0xb8e2f03d134651957c31c47fff8cee2998738a603267a12f665f577a450746f1", - "0x3276e6d7618e898d6a8e1f014ccf9e06000f7cbb279dc9d078dee38f93231d3a", - "0xd23b5d1399be075454bc8f3613377113a7b65b29c1bc1a515f9bbfcc30b88174", - "0xa577feae921d39efcafe8102252452202fca0532681c2967c06eb63d00d83294", - "0xbb2231f4d795b6ea3894d802ad5f303c19edd2a25dde9c3a21ed1b578726b51b", - "0x81700c9bee6a014df24ac76eeaa2a378ce7febde11903e62a3d223ef1eec39fb", - "0xa1e05fe31cd3a58a3c11cbe47fed738e0add5039a8f97275572c7f66431f3d6f", - "0x8b5d0ea77b923d4faca65b07c9621467f2c891a925ef07009353b9e7ed854760", - "0x3566b43040f753d8a18edf7b3c89d44a2a3565aa0280ec673718ee81b82df24e", - "0xdf0672dd1e1bdaba83c0abd1d7c41d420ecdcab0019cb89b3dc310bab32bc8b6", - "0x2ef7e245c518654108cbea643f8b050257b9d3c4927493671a3a094b1dd0674e", - "0x993a3c5fe23e9636f525a4e5ee514949c5113f3b4db21ffc993a8b6bc3a55332", - "0xa023919b4e8c34cd2a1c7dd1768eb8e856ad2a1f5b101c8fed88257fdede3804", - "0x247fa5256cd95b9cc4431fe13466483f0db6707bd2453b6374934e1edd034b18", - "0xe63370f2acf5893c39f3728b66907ddc78d9dc9947db14ed6a7b5a6a876c69d6", - "0x397eb84160515d8b2beb3d37d7dfe167fb907f8a1a6cfd7457b646b95a18e9df", - "0xd236e18de82fddf7cb7f6df91a4d08fc98d9aba622e50cda7499261d01d9bb9a", - "0x76a526408c824b6c9e8afc5a0d5e5492a71f30cee5d70b4306c2298d348f0caa", - "0x00525d5481988d4c4836dadc936aff84036d99aa42722057b35ebd933c61ef3c", - "0x94e54fe2e05dd7d7e4026c0048d5e64e5314f235607e568cea8c26bd31dc3f51", - "0xab1e0c92b35d49b687188518a7af63584cfb13a74c3a9ad800fd8e1a4541faa7", - "0x5e65f148c1a914b300aea241f07de5c43709c38d279ed118bcb40ab9a3a09226", - "0x9fc8a8843a0eef62d8c16d49c70cbf2f3fe84cc155cb741d647f17e2a664e7d1", - "0x8257ba8acf906e46b7cd0de0d7463ee96c62ccb7dcdbe0fff5fbb6bc0da28d74", - "0x2a57b487f4281cc28a5b107a643944796ef2416d7989ce879d06bfd6d4caffa9", - "0x0bdf8efb30c449b26d5c574000646ac316aff27fa49d6e20420a08e441ed5f96", - "0x5d3b67c6a6324936305f405067ae70a35146759278f77793e3f7c4b90ac0c7fc", - "0x156f094425a09a09f394075d02f5b5d5aa6794bb5cf62d824ece1c57d58ea993", - "0xe31782172a116b92ac0ea9de1cadb81c1586e05d5b3993f10f8f695469ff9e81", - "0xd8f85113147a72b1950948000d75d6005ae183997c798fbbf2dadc5c439be9aa", - "0x9bed32bbf1f626012985392906016db1c993fd8ef351f8c72e2ae832a2efdd66", - "0x1c6f7b17c8bd64e03d21ca9b6dc2df278cf0b8c8f6f60c60741659fe5b34af81", - "0xe41e4494cdfc0e92f16fe6ec78e19b9d8cc3db73700a1bb02fc7670c92e4df2e", - "0xca1032438230b4faea930fc0689dd966604487a8d3abbaf21554b3e078547fe2", - "0x2bb999d1acc6cc7449dc0cb965c3bdff42e49b8ddb09cde885174c45730bc2b6", - "0x4601be8295359bb23f6f09d7f053c637ab2ce7942b762ac55b1da6d312a765c9", - "0x13fcff0af19f7f11af35b360a0199bfe610a09864dd1d42b0a6570bac17803d1", - "0x31b567fe7d9e6a9a3c15c449e9aa0ab8f83a453beb2784132f25b0919abfb428", - "0xbd4af1360219156ba336fba9cababad31ee78e1393061e3ff62f7ac785c41f19", - "0x2e15f44010ce7a966dfd3fea57c5124c120cb60d80a635910c0b2feec59fa977", - "0x68ed80af93e72f7fd9198d036d8b995e5baeb0f97c6f2734379116a5814b601f", - "0x6aeaf5d0decd1a5c8eef52435bdad2a60cf1cc5f79e23b90b7afc0110d830a3d", - "0x349b95da9a3c65e1d34533bd08f8c95c934c49b7c20e6c7e38ce4db60239c94b", - "0x2a0053d5a61602e26d932534d5e9a753f75642edf1410b3ffd61076d27d5ec97", - "0xca53c9d106169cd3a7a870efd2c2c7118ff953b8aea5c5b9896dc2ff9b2c5d59", - "0xd227181ff80d67f95f4fa11f86b1bb5dfcf37385262d82d6025bdeecc6bf00bd", - "0xefa99cf897198be702eda71b3fecf4cc12a27e7c90a258c4230aa847b03e16a6", - "0x0788c17ea693a049784eec30b17c49e66e7a71175893a064db7bc6e85a0b536e", - "0xcf2bdf91c2f44cae1148ae027688f70ae27ee65b8c1159cbca3e41ab7755e5c0", - "0x32882f2cf31033d40d5069e68c799f3e3297a9915287fb317bcf657e078fe6d3", - "0x3401436cb69ba8552d4731fb2f734a9a659cb10ac666f374318420d3e299b98a", - "0x988943c9b35e50f6ab03dc275de1dc770aa32574cf9a90dd0c13e7263b46c129", - "0xc282d894a7e4346a492fe495319c5cc9abf0c7f95e28bdf985710f692c770520", - "0xd7f8e14bbf8c6061a0927e107f53123f78448b878b9562cb8113b5d93d2d9142", - "0xe2c995419467eb379ee043399d89bb13a7d316b9a680f9667dc9defc7fcab80b", - "0x567357333aa3c5cf6b1ba20a3514ad0e21eef11f5a5c4ec999048abb78c5ab7f", - "0xb9f31c6c771e610048dcb0f4553629481b6d243980e1ca9ec3d1400a56ef452e", - "0x924533f9da72137f96ba97b39a95c2c369dba0bb09658aea3a387f3141b5a34d", - "0x2f17e624e0f3213c2d953107e72aca40b5f764f4b31278c8ee32a000119aa3ed", - "0x8d301cf22181c65bd6db20ca01df6e3bf13864f88958fc04861c295a31b9a86f", - "0x3bdb760c302d348d16e634c07f437f793b888bc15fcae52c371675b7eec2e241", - "0xaa20ff689413c62b1d9854ed1c59b1629e9fcd9f99512bee40933e722e4d143f", - "0xd9d0f8cb5b86492abc172c0460cbd819d13c05f055cc1306af6285459223373b", - "0xe0ec50a77f89631ac2a1c38448a3e5d8ee739f1cbcb542b23116005ff0726679", - "0x90238eec2af4ab1e1445ab94f422f90c862afbfa8cd6bec154d2f6f40721a615", - "0x5c2350ae9bd5f2e2355c97b0340e96621bccd43e9a7e4e867ba1523f5a5178dc", - "0x896a7844bc430b330fc094554ef21c162e2c5c890b4525720a612c9f16bd80ac", - "0xc2aac353dfdf9d7ce52240f6b84e8fec9e66d4acbd77402fe7218f55fb76e834", - "0x840ca0ec7af88f0e26d3b9e54473fdfd038d5395165b22a935e941187d529136", - "0x5e1274869d1d7f072dcf83d631844ea7e750f90a6183262622f2db72eefbebc9", - "0xc217f1324e0ba4e36cbc896c2dd4418ca5bfa880cc64bfa913d6212cbcfe8a95", - "0xbd7893a4798b0838629ecbf21a8cea963df8920a792f5282604b59c536ca91bc", - "0x85b22d6088f30f1b262369f869a72e1354036363f70c8778b1560658abf75902", - "0x829935ff52d7148a3c5548bcfc72b736b184e4f4661b251e660313895432d66d", - "0x4b0d3238882111cc0065b1e2c9a71eeccb34876b4ddbcba989a47faff0f505f0", - "0xa619fdf363c41d69d2cd4c8063e3abedb18066b8cb6ed4fcddd99686d684f450", - "0x2dad790e3f5f6be580f97dd37b22a1e80a6555f41726bff0639aef54f0bc47e8", - "0xfe2064175fd61af4c646ff0745a79ad689d9be2969bcca0939393603865ccaa5", - "0x8a18e5e22dd996798181fdf8ae77cbc7929e5bffa0145996b00d83c5e7829c6f", - "0xa7adb5fc7ccbb132a8e22a861cb5e3e1940a4ec7c5add1bc767ecc668d1a84fc", - "0x7ea8e25d742691f53294dbfdac087b07d688cc40a4a2de28fb398b2516de4bfd", - "0xc162edab705ae176b26b495f7ef7205552319a72d56c5ded30be9770860d6530", - "0x5406de06f5e2e819ec8a7efda23e19cde88bf8ea9969e3e3393f1235c4be67ee", - "0xe5a6b4f946655b32549531601ba3571fbcc45bf58a7b18ea24b5f4677fd58815", - "0x5bf157c76ea5a10ca8240c44a72450537678bc949f57cb9a748b445907180d8f", - "0x4f2f7c966d440ab36a1ebf61ecb1a9b1ea4ea6227c29e4fc1214a8c63cee7d05", - "0x81dc3a0dcd5ae99dc7bcda8b30cfe89aee00094258891d445425e8e304a71f08", - "0x915c3f6e8b37680ccfa5dfa941ad2147fce2f99842646a7835e2d45e50e4d991", - "0xe616568cf1a281f42a32686b65dd712e2fd003a84dccbaec32b890440dd206ba", - "0x70526aaeb8a25dbdf93b3a7cf9cc638292f2502b7bf78125e88df90335e594a8", - "0x6b3e974c6a004beea5b38dea401870dd2a68c2902ea8b3ad5a8358e10f04eaf9", - "0x99b17fa583f9f80f81edae98fc54bd5552ad44aeeb6123e99670696541cd0442", - "0xcb13a1b63fb6f0b511876a699ac017aade97d8dec84249680e7e36b3729d9744", - "0x2bc84717485fb9eedb00647c8da26e201fcf05a0b5c42e2e03072ca130d1e3c5", - "0x7bd8ffc908159c25a28a3dd97064ee7a76bfa40628ac54066f83e904596562e5", - "0xb9d16b733cdefe95eed9fb024d5737f90723bdc46260f0aebe2adf23712ebb05", - "0x0d6a943a7bbad9fdbd107c4a1df726f7aa61de4bcf1e1c50c8a32d56828e8c72", - "0x7a264f356294d00e55ef0dd56e8ba793550c4366347d60c7cd31176d79dc8486", - "0xf52baa383738251b1085fd6aebdd0da48414bb993fd3bc427b2a07a6ace8d39f", - "0xe2958f9d5bc0f1b23b5a3923d87567a58dfa31cbc0a63715b76c501bcd022f65", - "0xa760fb572f3a44ac43c0cfb75becf5bec1d7dab5e33222050b95a6cb8938b146", - "0x004437e7463a43de8edcd074a4c2f03ce72e4716f88f03567a50b6440b69ef2f", - "0xd7268e9610100bddb2188bdb0f80ffbc479b67bda2ecbc5aaf18f947667f3ecb", - "0x176ac5d88148cdfd9049d3eca742750edf975c32e649be8372b15e43ce162d77", - "0x118df9c7631bfd903fb46cfa867c8ef861d9e828e6f57de585f17ad351819e25", - "0xea084c972d69e9ffb61665a27fa4f2d0006f0e220007c0b2e4760a95d68c6c01", - "0xd6e2a8f3df290a204efcadd3a34bf57eea6a3980fbb68749029660e661282f2b", - "0xc538e4c7b704fa8c1c123f8baca05bca5fda28df7ad7fec099638a4a7dd4fd18", - "0x419823e612d6a0055fe460ec9593b4fc0298ea94e0ce838fb302ff1ae033bf40", - "0x304e214664a6703ad14fa493ed333cd12f6db8f4f6af1223bf00a348fa3223e0", - "0x4de744c5af198cf5a0048c4a3c9ba578ea3478deae31531b87eba2a0e65b6fe6", - "0x523694986a7277170342c7a53bb710b86a432b0a7a3d96e141fbbbc113ac2e88", - "0xb81dcd531f4ea6eca82860d7f45063ca7de742a2fb41d7b6c1d62202fc1af17c", - "0x205a95c1d7e7d2cd684bb666dbaebd2533f4af28837a6fd2f6a7d4aa68816dbc", - "0x7c48dd0273a7207ceb5a8a1e3b33352f6d438e2a7b45d4c082dd85135e21e5e3", - "0x0e3edf65e5a7502793a8f139a69f3946d567a959ec411088af96da979047675c", - "0xa0b8886550aad717f1b5d57519a4bd82bdfa30e3c8ba4ff81a64be341d828aee", - "0x399f2cd7012257b4991343f191aa688915b4375899ca9519630b5ec6c62a8b49", - "0x56068dc17a965fad007ec7f23dec7d396dff33b0a60c4e9b8d0f75fb26178f05", - "0xbb62f47822b394fa87d70cce239c9e57464157fe2012c2c37e8f6b69515d6112", - "0xd6a068fdc6d4cd90203209a07363ee1eba047703e50ce9b06dab471e0dd1a037", - "0xe5a62c74d81ad110ea0ec13847fe64e4c3e8e48b1eb053f1e381abc0caff7bad", - "0x8ca95a015ea27a649b0bee134eb170f01b5c03cc45a8bb2c40557c1598c3892a", - "0xb124e101738d541ac61b5666c0fa19375417d946a2344ca40baf308fe8449a98", - "0x1b9543937289ca48720675ffd354464fecacd8b251a3f267f42906b7188f184d", - "0x0b48dd3eec04741e0f78cf61937b2f263446d4ba269e8c7d4aff9c00a2fafced", - "0xf72ffe4699fea49e7e67f96fb5688247746c9bf25fb58e41f02b0dde4a8003f9", - "0x08328b322ac26a02e89401565b91a3dd9abee62fe991744e2ecb2458c6c26460", - "0xe9dc223fdf695c9b5480de56cc91fa640a4b73a8cfeff30ecf4db4d36727fe21", - "0xa83123655348b15b947d83c14a241d8e303242614b25c45044fd1a1ee28d928e", - "0x14ac46b1f556ab33fd4199e5a46e0584d00bbcb2592ebfd4d4f66efffe31bfa3", - "0x71ad4b7b5605aebe1059ee484b5ec791e9018b50f92ad2f8d4f3c1548a99411b", - "0xcdde5fea3fec154058e16f7ef877c70404b577cd74f98f7dc45600cb7b598b04", - "0x330f9d20ddac508dcf0e08a4c1eddb55cb5d7f645c13f50b3683a41bced9e244", - "0x76de024aee0b03e96765dc6d7c71acbf253e962b4f3892b94196487821381ade", - "0x1c37a50f5e3c774d9ea4438a629d497705c3bae728e8e89608ee68d7cd2b53b5", - "0xe16a37be64f82bfe54595c9c51625ce3b69413b70e0b119a04e79c5b8d593c22", - "0x525afdc902879df4c23b996f34a5387fac6e41300e1a7cc9e24c630a1a140653", - "0x845164906086e678bfdafbf4719cf8f80d988bca007aece4b031c3ca5df08db6", - "0xa4d4bca2c51e8118d16a4b8ed33d41a73c275bef73072a6674005b9ee7bbb793", - "0xd0759f637aab37f4981b927e688f3e51f17cf90660931ab8bdfa40363a6931df", - "0xf54986144fa83bc3953c4a1c91eebd6a4abb185ab7b188cf7492a7ca430b9130", - "0xa31de426ecf5f98c1381c844e2fb7c959ad8adac39484d71e3bd07d3b1094118", - "0xf64fb1f4de6f01317e242b1198802191a6cdd39e1580d356b9e5442adb69c8ab", - "0xb97a74c8e47d37b3ce7c12ba09b53811f23dcaf4a8d260dd370f45e9ccbacc3a", - "0xf118ce791474d987b9a8d3290be077e8316a6fa3bfcda3600e6c2698264db37b", - "0x547fe45b0ca517f898e6a5fd22929cf533911f505e15de083a5685c8eb1ccd0b", - "0xd74d307e3b5a166a64056f07eb85f60fda1d9c17368a96afc6f8141141f85c86", - "0xa315936672e2737800c6d51fc22b56d918126ec329fa7e1ba5e31af36ea4f87f", - "0xe928505d97d673588a68a08ba6e2a4bc25843592598988c1d168d5c938e230cd", - "0xa6bbd3b96bd66597eb68c4059203275421a529c61471a69cdc1d2d9211aee400", - "0xa46efc7ab47e7a0f57a54203a039a4339d992207b31bc707eac98ade8e8f6fab", - "0x46e903455140f009d1f7e9d224ede2e29d1fb3f72cebeb60dfa64ff059b7ff40", - "0x1eeba50e5530be85464456af3ea0ee38855276ba79bebfe305e49fdebd0dc97c", - "0x30e149bba2c3c0db9038c39871325392bcb41169106131469b6ea7994c5d8d03", - "0x9503edfe4cfb20c38ba2efef043ad824f2b17f39e2ace445fd9ce73caec93c75", - "0x608f294da5e0df707b97c4949b775f64ef76c055459c26b651010888cb888037", - "0x8eb5960dc8e49951c41505ce34160bbd588bceb74468a7dc0898c6744d75138a", - "0xb020dd8cccb6beff1e7d996a740b876609a55ce2041ec0e9f09f683bfb22466c", - "0x9e8333dc01746341ff7181ae95ddb75748cf3efbbed24f3b16885efd0aa19da3", - "0x2a97bcddd5f0a7245c520bbabd77e48432c39f3cb17a0241be9c62ab5d185a1a", - "0xa81cdce57af311f79ae16dfad6808b40e8ece16115978131dde0f3edb29aabfa", - "0x8f321249562fcb94c94a80679adf69aa701f0719515753932548a89a28cdc7da", - "0xda37eaec19bd44bb1892d12d842a77ab7dc5ea43ca0a1a92aaa3ffed0ba9d90a", - "0xab8c920add1f9e922890da5d92ff199b384a5f042f5eb4e3fbe565f5ca50ffa8", - "0x9f52ff4d39142c046effbe6e552500886200c9c3154dc68abe0f9e4bdfa9078d", - "0x1eebaf84ba1e6667e825716be63ddc71a963688f47227e0d17d78144c820e17d", - "0xd2c2c19eacb26695c89b51b75fd616de5c769d0c7169794057575e1dff3800f8", - "0xc5ad683c4beaeb409a68cbaf81532e4edce6f64b60853725e493ffdd93e69f7d", - "0x768303ceca362b8a3996a4823c4d64ea4a4ca5892e91ab0433f2917b96486806", - "0x88e25c3ba8ac976c0382344f4a8fa310bcfc7f51e09efab4faaf222cf6dc5d67", - "0xe05f9dc2db75ce9b0fb59cf1ce12581cd10910dc5b91d744791f564bbb87e176", - "0xd75fad017be9f908c431987b10f25526a9c9d346118901d7e0b84e74a44724ff", - "0x83cd50c6634e2edf21044fe789e82850667862be407faeaa90f9bc3b0c60f9ed", - "0xdf6b6b1134dbe14a48678610c630ba5927f3d75d45d01e56534204b87ed575e5", - "0x3e486fed8ba04ace837ba81d61086b3443ec22a803cffaca18e10e0e0f1cf679", - "0x6b7c8f5e560ce6b6eb94ff8e4f811b06f2ba91048ebc2440e25f2c44eff4e637", - "0xa7a92f9396380b5ce01e3666acf035dc80a297448e1b95530b9a8bd9eb19496b", - "0x7df4150c891991e89a5938c12bcb4e4ca1a3bb3ed17e1d14930e78a3b7287cd6", - "0x9cff0374f59c5c0a8b6b8db636387e0d032922e34049356ab00ffa3f2cac8f23", - "0x85a5ca8ea29b19babb6aa45861de2cd9e44e31ff13f7161ead44139e6b2de019", - "0xe418e0eba34f07d10ba270bf4316b78b15c49d2a920f3370b403dc584cf2bccf", - "0x8500b89c737ce038eb99a443d4ed6dd02e00ab06c836b8f03de3e713e485e99e", - "0x0f324429900c3bb11cf6a0c4099148af93d8953b748fa8974c7cc5d942f6f36d", - "0xaffe95fb50dab84128becf268413fbf2c8ccbc2fde2b6f6d8bdad23cc4ed9312", - "0xcb93bb3ee92074161da7d6345022f415accea11b20c412cbac48247c64d099ae", - "0xb5044dbe63680e5fb8479f899caf746b778524a6c6ef3f56614d3b9832cf0006", - "0x1d9eb2e2fd6d8c78a5a4125733cbe69ff25b95cba736f63627bfab166f736c18", - "0x4bcdb35310f9e23c6b952933f3adb4adcf6b43dd88dcbf80dc2d9ed4f8cea505", - "0xf934917c926b2c975bb0cf0ee0eec66727da942e06c65ecb1e168c015f957a65", - "0x7375ee9c763fddfbbf6fe47b1db34faded65f5123dd92ff469d03a41f1fc47d4", - "0x6b4e2a1c3ad70f07688662e228faa861496294b068e21f040edf90cf9d0230bf", - "0xa64458a7d295ff66658de59d0f166a55dec1f9e9e2be6fc2a8ecdcb77b72509f", - "0x4e50f8712edd21e913834cbf4f8d6baf9b371f0d4592a0c6a11f70a8e95ccd26", - "0xa132bb777e81aa07f8d5a6696e3ec6c800a1c0743a946618d04df4b0668f1c8f", - "0xa552543fb7ce61cdaba1d077338aa31a6b69cbc7e6af69cb5443e2d4e1393cf8", - "0x05c451fa47938025e4fb6835d09e9a92f2db33cc99e21b44b98a1f3b0c6071c5", - "0xac9628c769038d220a38801a43aa1449c24b2277df287b04ebbb4082d1763f7b", - "0x6d188b8c97ecb2e45ff51e573fedeb95083b40c8ae15042289753ae65caeb681", - "0x0de60d18d4f052a11a584be1c4595430ea8f5c943dea397da9af2d27518e2646", - "0x02c7e9849aeadc3011c2d36d4f645aa0d3f23a27d19a8b7eec61e2ee723dc675", - "0x2c974900dc848a8a0eea1e248aa0e2469037038bf9c0768e6e46d2781530ac4a", - "0xbb4b7b7d9ae81c7784f6a8e7c309f30a9794f0240562ab889d4113bb1e775697", - "0x463ece715ed0458cdd0f12cec6ab023fb3a3cbf6eda4b55f3b4115921d20df52", - "0xd535c260190be6f755d84d8812697c8ad8801533b939dc95e2072e2f39066564", - "0x7f3a0e061e646047bab6b8dfa88b092ab003c0e84240dd82f6e7d407bd5a3bd8", - "0xaf4803ac72aa8419999b383e5765544cd61b5ca0071f7dce952d7c24d89ff8af", - "0x1c53d5aa090bb88a8302fefb12080eba29c2f9f198b08b073587049159cf4245", - "0xf71ee084795fb52661d5cb7957c7e710e6171683aa691412d5c816a764f61f64", - "0x9eb207ab5d1bc7d1a44afcb2790f32d7c41f1c54a17b277dedcd8ba1e63eaac5", - "0x2ba6c0454e857b17903fbe79d6396a472216ddd825b81d70c696074291e71b1f", - "0x899f295af86c53f6c27e75e6cb98cf428a5da102be6dd8a8e2e59b446a086a18", - "0xcda6ada90684f614c967b6fa4c37e6159522e2dee2fc8663b6a8478be5238165", - "0xa59f5518f36b97d9fd077f736de67de7856d515f5146d5b1ab1b2a36112c6400", - "0xe7265df96658699ef8781fba631750ab18dc9d62c0b24820e0538809d046a2f9", - "0x4d9fe46ea3b33b6e73cddbadbf8bee4aa31aa830c4a1abbba4567f21f78a014f", - "0xf5d3147fbe7420f7c55f6b06e045ee7d2b2e0ac7f2040ebc8183ef24108ad70e", - "0xc8dfe6d026040fedb27da79dcf77aaf83fdb008792c6366256d5988e356eeb94", - "0xeca183cd9a46eddf04e02e0a82fa295b1f56322e5552a7c7f0aad090d209b9d5", - "0x8e26a0ad84d0c8b5e64b8a57eebf3bb86bdd02e24f24ac95c6222959638a3037", - "0x5b1cdf956d672b244ecc6bd5a828cec7b80867a4ea2a547cf7240e39793cb5c1", - "0x48c8d0fa40f9f6a49fc6378152972b85cb984ec221384484148231ef88cc3a97", - "0xccf14e2b03037c17bd6d47ba41460aa54c826e945c0132692d08140f156fd115", - "0x331791c82f8717e22f27aa77b7530acc83beaaf9536cc74ddb90533327c5072e", - "0x6c621acf6c972322182e5431049874a5e78bbaaf1a3f49219fae2c8425d6b5b1", - "0x5bd86b4984df838b2ced1dd0f3e37ae19d52ab1002a8bea859065f8cdaf6bc38", - "0x3143ad07e92a4b2a24b6482b5502ce98d50df46923ace4845ca35e0948090363", - "0x66e2d61040285db2e895e1aac42b69b41f556e6fa82116c1e84b49e67478abbe", - "0xe4f3a6c6761a3e17a5a978c69d0a6688439d4d6de3bbafd2b830b5066d809e0b", - "0x034280d368d7bcbe1f1cc63bd551c3ac2406f612f8f04801d24f98d89e75c444", - "0x2b9ed64e419ea19e5dea807dbfc08b8d21bc13903e8888aaa15741c6c0481440", - "0x72630a380871aa5ec67bd06bd672fb0128b95499582be5d34a4073645d15eb6f", - "0x9ee6618d35b3fffd4abeee984f1e9f3fbd200e5f60c562cb0ae3200b8963f522", - "0xbb40172754ef37505f4ce8077382eed0c45b0f96c882ac26b7d209b951d7cfd1", - "0x76e973e45252e97e2cb31bb8b79424e5391c3e76893cc7be0c1c1101bbafb57b", - "0xa4218614e301d35b94bc536160007b9b88acb5c9987a44a27c514f6456b28be6", - "0x0227fa09131444917185f2cc802ed389687a4f968f99bb221148ab7effd5fd5e", - "0x0a93fa4f9590996785fd599bf2669b290e8eca7f02ca06aee9582357293a8493", - "0xe1a277823bc99e602027fd18db67550f0d5e60045b94bd2655e49531bb152f0c", - "0xfe8ac01e4e478b4019dad76813449f8155de23b4ba2a6e2091f4c8ba82508bba", - "0xb194b4f530b832a2ecdc88c1bf40580474847b91c300751c810bc5cc408095fc", - "0xf1de598992e61dcc7bc9e1f1490d80d10024c6319954aadae6a4df4ac54ea564", - "0x38138e224065ad8ed4af813bcbb35535bea444f99613d686f0ef4ff00c5a3fe8", - "0x13e6a7016f28c856d777e1a7f54bce788a3e21b129cc1b57d8e5ec21e6522d3c", - "0x1c5d57d845f18557e61b1b3761d9452eb26aed8041a4a3073097259546e2045b", - "0x536848934654d65ec83f7cf9a0f69adec6ae974b8e5944127ca819a30a20b012", - "0x1653d5a4610454d67236e8049dcee0b1a531e25d5c7f0bbce913a6a524a60db6", - "0x7bb7bd63c5985b492c4897d59223335537ed0f8928c5c7383b5ca7a6fa3c3cb2", - "0xe4b8e08d3444b8e14e390e219684a6085fa335d11c1c77c530582e2c3c4c8e55", - "0x5fb6b09c1ac68c1ad0fd2041c27f1fad5a83906d4aea5af0f965cf36bc3cca3b", - "0x40034a02507258439d490a5a282956f9ae304b4ea4730ad6386005c767eab5cf", - "0xec6ae08d9c0033901514ef409a7cf68e1a682a202dc97c5c467259c7b6022e2b", - "0x9082855abacd99a2b634ad1f50d8517b0f1b091cf5c649ba377aa3ad2eccb65e", - "0xf76c0b9744305baeee70b1e274f7eaaf3670b2217fff6655bf69968b5acac517", - "0x917198a97cb8f704471f6500aef3e6f014b09e8da719ee03e87f45c95605f2ae", - "0xfe1a48d29d6ddaec284dc0bca96cc874ecefbbb91b74c8ea6030a9bf80470c73", - "0x9ba5c60cee1a7d901f9832e3024ceb9db24460c6636b98df81d008d1678073c7", - "0x7cba18b1ee4fb25f1536708ad3f4c95c43d60930f67dc2cfaaffaee2f91fe1d8", - "0xbd2b278edd0e75c6a39aa2f43b334d8cbb52900c152b2b8e3ccf7f27221c0643", - "0x65c3a4efdb5a189b46db8b8ab60968f6c16c1b56f9f2311b3380c275b7914383", - "0x45de07d3860d9be6f7b90dfa928cdf0da9592c2054b00b774ba7608f3d99324f", - "0x91a4389a9bd65f3dbaf092a5a49f0dc2333bc5ec7b59c3a48cffe97ba52213c0", - "0xff9342e526815c132251c3202d20acaf0012be44ac7c47f7640f27fb6f2d249a", - "0x48854fe3580cd19aee63f0eda576f1af518f3ebfa9f87d24da87a89ba227acad", - "0x8d292c2072d5ef4f3ab12cefaa60e9b54433a0eb7303ee253408c19394345a4f", - "0x48007c06be01f79cda41ea5791e3ef4bb4e946d7af262b52cc74eb3e20e98a1a", - "0x36a39e5a3035ed57c8227571b2d57317ace61cb9c66dddde57a566d34eb7d894", - "0xca4446f6cfc51f82ded4f4c798da29fde3a3bfa1f30de6cd721ab459e570dcb2", - "0x82812417102865e04fcad17c1682c7608cfcb855267b4ecb8c1e0666537e6a9f", - "0x81ef7d9794f8bec6b04ab899cdfbf3ff735eaad06610258ef7f90c77c83d5387", - "0x4810726311224ee42f1969465daac6f12516fcbbfb26e9febf221fd8d1cfb41d", - "0xb39a309cdf26f5f2011a83a0c1840b61cc5bebfda385a479a6a20d872bd082bc", - "0xe5002eba07d8b69ba9470514d286ab800d28b443531349d641d9df57c3cc1399", - "0x662dc062bcbcf4f45759c85e8a0ff833564beea1ff3894d7c5286133b3615a9a", - "0xb2cca2f7a62870673c70313efe23bfdb57ff9e6bfbb9e73948288fa15a8a2f49", - "0xd9e38758784261f67700452e23a59ab25cf22dcead205a50685d5cb03442c81b", - "0x039acba436cc8d99337c16969a076577a50d609cb2986f42702199e3c2dfd8e1", - "0x7141bec6010aa3d5ad1d543f91a8b10ba3bdab7625fec8a7d404238c09893e48", - "0xe0a2f776956dd92600ed94088b7da0aa416ee83cef35d37063d3df2d3442173c", - "0x7e099f882fa8909a3f67cd5950346a00a20bd0678e7ccfaa03395bbe1a7bdb6b", - "0xb52e8fb670f5386581c89d4b01b0bec691b9e828c9fd8916708287b6c1d49f26", - "0x16b599c31ea0a2c2c23e2845cea74c73fc892f16a2b34091ad9ffc5d03e7f609", - "0x4c04bcbce2e30cb9fa64e6c776c8be2a4cea04512c9d70e2a5d8a377aa77ba76", - "0xad1f20b7e161337e3d7aba00d9dc3585569cd8ca932329b3df13fe5f23574f70", - "0x2961a4a19bee2dee47d9eef2f875e03fb75bbfc30473604c902e76c76620507d", - "0x666c0d915622aba83912b23cf5e48ac57219a8e592f09f9e224af94ed35cac7a", - "0xfa6e99ccb3460635ebbb7ba53b332825f9d5185dd10bc1e2eff5fb6de4fba746", - "0xd3bc3b194941ea52e2b31ac5ea1c789233dea804e24c15000332d41f8bb4a8c6", - "0x07281b9f1ab9e962d46f05c76f29b4f4ff3db35baa777c37c5dac6cd33d49a90", - "0x5bf61ee56f75630605881d34c11fc029f7c2eb96dae86c7dde18af8e34aa6c77", - "0x972d651e4903b97eabbe5a58440bd248eb2ab16a536da686a707770b88612d00", - "0xc953d9cf8cd4a68d7a2d9dfdc3bdad8bd0d511f63cbb2144af7227ba49084a71", - "0x9a90ca2c4dad5386cd71110de906f6d96f80934661afba440ce194e44e5a6036", - "0x8dd2c27d9b327b1a6e2216f561c09c276c9db44c3a87e6f8fe381d7a906c9769", - "0x17362077544107f34233c1fad77f12c9140d0f0f0a5206dd887bb9cf627a20dd", - "0x52afd7ffe299cbfe5f418612ecf625ab1c6debcfebc6bad2569c3b83aa1f9f55", - "0x6597cfda3deb8371e447690b5f90df042b72095551d347eb77b2ee55868634bd", - "0x97a7278a76d38714f16a5b3bae0910b18d2851b2519ef5dff0a791f471cff90e", - "0x0f4124bc20c9553612a8e78b90c80c1341a3a290054c75326753be6a103dae22", - "0xa42039e0a42da736e91ffbea82e58beaef7fa7d88263764611b73ed4775e222f", - "0x13f6c5b099ba6a2ed4701a8b3edd76c2645b68d9c2cf9af924da39bbaa2c18c1", - "0x939ddea54fc48f8c8dcc1ca6c04ff2cd70fd8da9e93abd3ed062da56b75a1110", - "0x3e66eecafa70c79675f26d259fa6718c646ce3828e80652134b792f0366f0c68", - "0xcf507596184c9c4a14286412216f771f0495ea5780bc372d12ba6e8445c67d69", - "0xee64dc03e5fa815ea5e9e3e4d2c87126c8e4c0ff56f1152c349e3f9327fbd5f7", - "0x3b6ba90d23473ab15afa76d95b23b2a86309b0d6e2edd3492c374020e544c820", - "0x51ffa382078573a9bb41ad67b775074ae41f9968e2b38341ae9a64a9f1f74815", - "0x6c3a7ec03f93b7d4b73d8b194ab38a23b512a236731b5e54b8b5bcf44aa05608", - "0x0082c925bab49c6ab52f9b996986123039fec2cd6641dcae3e3ea7d60bd7a2e6", - "0x85185f7d346260f24bad3c767a04bfdfb3356f61138b9fbafd7af0f813e1ddc1", - "0xeb5a6ef56f2926a533d3858eee37cbfb5b37e8fb5bd181cf61448e36d8b48dce", - "0x700da1f1e9339d6d55c54c62cc5523c30901162216c2f182f5f2ea66dcaf9620", - "0x84161dc26196b99ceeea8d64f6ef3d127982b934f49678f6a512c07534e8ab54", - "0xca3f434ced785e9b5922b625e1d2457b156372e4917b9d6c8f4f6a995182a176", - "0xaf62ff81c29e9102077eae515015286765592d454c8e15b0a302adefe22e998b", - "0xafa0ed60bf7417e6f74fa7a9c10ab7c7b0b1e94b699569b0e3f70ab01b234ebe", - "0xd2cdc3211869e030c3e291f4fe2f163ef54b24d7ff0bb4489d73a5159ceb461c", - "0xd74c2a92d3c506bcbc11c1bec086cc419fec1d0bca34d50b74b28f89e86cf864", - "0xcc25ec627504ed9f00af661c72990a36a2f9ee4c4507e5fa4def89303456d7eb", - "0x8edd1c1dcd064b7c693c978152209761cd6c92e449e9444e9dee807fd9f9f420", - "0x660e691453e374d0a584b184a5fdb85894290e1ccc68964a8292db53ca096505", - "0x9cc340e9d997cc319fdf2e00c75d80b80953a90049af766b1a499846c5e08bc4", - "0x58e650852eda00e55bc2d9e024a49b3b7a5d6d5092d837407114120ff143b75f", - "0x5426eb6b6b8965e80dab787befc815c6c430e80231e91fee5511062bb21c3e4f", - "0x4bb9b4512664884f7b63bf27ecc75e0a69e32cf2b980a8b9135e410871ce45ae", - "0x22438f10926c874196f8c65e274d018960cedb55ca43787e18adcb54631df7ce", - "0x68aca6a2e6a51c8543939fd10be02784b1149923652da3f07f91999b75be995a", - "0x12a77edd8cc051f6f991cd3912f5f4afa1e797f5daf010ab17b3925220b12e88", - "0x0d3b929dc2733de2865dab86cf42684e8430c2ed47d19606637f932caf8d2d13", - "0x69f8d5c233a251c35851354b8546d89c7c54012736440c8965c256cc9db7dce7", - "0x6757e97aa449d7878cbbddeec490fd0636b2c51d5b00bb61eb4836685d005d2e", - "0xe1029b22f6ded11ab5ce46aa2594ca90006a04e8848f4152fc40c27735217ac3", - "0xadc4af259ba86cfc93384f3c0eea61a4b661f015209064254bc6ecbcfdb74f5e", - "0x02ff4bd0ca8008db90a121deab0c36e45bfc7acdaccaeae04acf3aaf51716607", - "0x9df6ebb38ba3e1d0a3a82f871bacaf81152bce32265c0eaebd9d9e6026665b43", - "0xc25503a6058ef394c48d1153ee2e70a3d8e86e0a46b29ddd0217906d694a71d8", - "0x83698b68d762e75476caa87411797ebc0050f9296ec35664bcfd3aeffd01d8c6", - "0xb185832a5b8fb209b9a6772673cebb3dcdf3d915886282d6adc47376a48fb578", - "0x32ec2d0710f9681d75819f1e2c28e135b3272dbf1da08e4d64ab2e6ae1064cbc", - "0x13c8aa9abf04b6ec2553b171b58356a1c256563406ced1ff3c84a3ffdfb5c1d9", - "0x80aaed5609e1b594b3c54403ce9977dc558ad292ec472ac73c8d7f39243e116b", - "0x8cbee772d46586087fbbc9b4fe2f54ce2405d2483572bda3c2314e79ca0d8deb", - "0xfbfe6a938e7bb9b05d889f8182e8963344df0ac7b9022302b451b036da261f9b", - "0x39131379b64eb550fa0a2574d504bf7de0219d50e6d55cc82998ac8d2684df84", - "0x5fefe2fe1d509eae61cab218f1bd03196b1e631f5c416e5f2c0e9e54a3d44d98", - "0x5839c1c6580a4c04aa09dfde45ce4616b6f30d1ee794dd12fc745b96b2d48c84", - "0xa75d2328c4e63acdda579000e6df9be72d9348c2001e1927264b1a8c303fd292", - "0x7331a0cbfdfdc200cbbd1723bcad1f1ca6e0591c1ee025bf1842d91e4625c8c8", - "0xe9153c020aedc51102bb9b22a2493db4616364fce9b61681287dabeee881130a", - "0x53b7aad781bea92a14b670dfbf5acd8a55d2721a6146f099b904bbc176771b91", - "0x0de55190007ddb76fcb57cebee9b1ec60d52d150ac83beb66b088a86a234f9d9", - "0xc703435d06a2e1c5e52789daa3587b920cc2aeed658907bb7d6442693c65902d", - "0x6d21f9a28fd36d865af468e2c06ef5f41167f3014251a53aa1d2ea55896ca1e5", - "0x6b24cd5b8a48fd9dbe7e8ea6c492b57f3146009daaa108ae5d1199261cfc3914", - "0x40e49643d669f497785df1e601cb1bedc24ca348f86354d4032b1d4a4c6776b1", - "0xc56f0ff0aa22fa1e19d8785aac33805f7a7a01b48e953ebb126a4728cf502518", - "0xdce90cab31ee9f5a345d03464c69cc5dba71ee601bc22ccc8aae1eb442f3b29d", - "0xa551b514490e45b6669024b539f7bb37e6883ec97ff79744cf1f1c2ba1d21ec7", - "0xbadc6d33cd58aaeabb8b62396e102cdcb6b1ce9dbbf7051f937a890a3f69c2c6", - "0xe544b08143014287bb8d917f66e8f22f2a6deaf6ad4a3996426e2186b8bb56e0", - "0x6ed9b64beac26a5fbbd15c09c7eff96652b710670c2ce52a6856cd998521a27c", - "0x48c14f31b1fcbe0deb7816771f962cacbb7c2c219518f3ce52661a89e9928228", - "0x425fc1308118e8ade59df07136948a210786f8b2b6b0e51ea01ab06653822693", - "0xee9b2ef0dc1dd873a3ccdd77046969a4ae938e5ff39695b891c85921883c3277", - "0x25066a1abffdd64dab20529436c3d9a44e6e837d70b19847e355f63b5140c5c1", - "0x7441baf6efba832751b31b93c9b000d8bf552d0328415937d0a3c78595961ee0", - "0xd9219e7f07c0808d2596cb57e26793c1162ea9efe58305e3a26da6fdd57091cf", - "0x1b42d745a54c5e3c48a4911a27c263bbe42c8f038c826975749c1619c2e21cc9", - "0xc5abf3dcbcee854b06836237de3a461d86a8b76e8081926ca3078531e25556f4", - "0x7eafa90a352f95c8eaa914cfba0aa90db5ab1275d966da5fa445d9dd6ac6e0e3", - "0x4230ac1a58e4d9903022416041d5119991f911b41702d43c1caf0723cccb1d05", - "0xd50f2cae10a5cb3084c9f5ed1f9acfce8fdf3d920d89ef41165aa2522b97582a", - "0x6eabcebb9040f7d6791a0a560b987288d8246db9140b5f188c34a6be7fa17552", - "0xbbcb3c36f228d2589cd7097111ecd708e419bbe034ee6d9aa691d483590750d3", - "0x72eded80c21baaefddc61ecb70ab76cfc68ec8509b4f8786fcf25d037d75385f", - "0x2a01f9310e3116bf3527cf90de19bdc78d9cc677ef5c9bba94f3ec321d700a7f", - "0xfa401d300fed7092c91232a2bd8b0173ddb62b12e8e96a5076172abcd44ef858", - "0x984001b77e32ee2ac8d5678f77e6c425e6ab9fb2ea3f4978b6594b4499f893aa", - "0xfce80ebf8039984ced85b45b5ee5c240df0a6aab809d6bc0974a5b1007c77d4f", - "0x0a964a69795de761278c68843100ee547edea07d790d2efe64d975b65d415159", - "0x5ab1dee36283fc991e00fb52079c232f2d9bfa97377addd05c50fb06a09c11ab", - "0x47676449956192bbed4235f3162d06ba3095aecb9f57d9c8a273052278582fc2", - "0x4e43d79f07711fd4d4a8dfc576f08d954b5d6829dbbb59ae4386b34221472966", - "0x8f5cce2a573190694302db226a2b22a89f4487a4f509ec1a759646d0d5face7b", - "0xe10a0419bb270359d2c190014afc1fe52f8df9454f7a8e0fe205309e5a3b33e7", - "0x4626c976a572110230c540dcedce33a5bbb97919867aaf0520128ceec2e9d8f3", - "0x057b497c49e4b2ba614280de64dd91118172ae4b4646c3031a93fce200c8a234", - "0x8350ba4e211602c38812276000b1caec40dc4376176afcac43eaa96d7af30d1f", - "0x9e93fd7b9b9ca98f26945dd5716ee2a6274f8586d14f05854a0f7f25c80541ce", - "0x9f11403407548c359164f3f93265f12ee390ff3b3631ec7b90b98922dfda2343", - "0x714cca7ddeaeaf302fc0ebf50fd072c89f063061ea329e67c809d62ea9f5fed2", - "0x9c088fa9b25f7a5ca635db39b3c95da6859a5941eb1ae3e4f4717013fe740cba", - "0x634542af50119e4adb4d72bec5d0e3b095df21e76865f683346e1bd544922f69", - "0x2a1fdccea29581063da7db3f2aeca7087ec646b11f1d47e6d48d1dea0122fdb6", - "0x156e283ab987a5da12710b459097b5fe3d79db296551fa289632c0d3f9b33ba8", - "0x3eaa070ffd835043d4b2b25d5e7280f030c615b2bbdcaf3ee12a2b2b4c620747", - "0x863d5bddbffaa9f0ef9f696ac5a7f91191b5cb52383e1d0c0e0d5a60332c8728", - "0x4e29095ca17d15099abb1c6c1eb43cdd6dfed160a7d11731f4d1115beaacc7b1", - "0xa46f6ce03354ca96ddfbfa9e1406dc7ab99b0b4ff1ca5e0346f3ce91338bafa7", - "0x9f19f494df488b250ba31e243c9098fbb7db5801a3f76b219d866bec32d009d5", - "0x763dfe2f87eb816d1bad1ba95448619041cdb3cfb1171063c043d1e02d9f6ca6", - "0xf8ed4dc0fc0c03b964eede54ede5e96a940cc85e1ef2191c11465f2f1e3f6f0d", - "0x04f0d8ff18d26b490f137f23144c1ca0e475e74a7f1599fd2f6a4972a3d1c215", - "0x012ead673926ef6b3d2cbc5332a7bbe5dac977ada6065313e90975360dfaff3e", - "0x773ccf0a297a22c43b29f1bad214ac9e3685a5d0bf1df7d49fd4b92065ee7b04", - "0x10b7f56b8cc84f4be7533ec00ae46c7ba852f8d093c889b7edd46d36c819abae", - "0xd70605a437bfc6a4cc3468f0eb6d59b293d4ebbcd7979eda36f02baa48e68d25", - "0x68a93b7685277a1ca51a341517d10ec1f03c3018dc4d99da00624d4eeb3db229", - "0xef8aef04d3b7771e8519952b4e067503abe6b2698411299edbe7dc22a79c39b7", - "0x8e72feb3f31eb9f13645a089efd4eaf6871bec26a9ee91452db0464a7e6bc5e6", - "0x3189fb0be615c0f2e2758400050e2657e3197546a15039e595b091cefc9e0d7b", - "0xfe444b821fdfb12248cbf371192783e4e0ea0a938f5ac7b205e15cac991b6c98", - "0x0329c441b6c6c56d76de552ad43596760d37262011d97bd91e595dd559e53de2", - "0xbecff3658ca19ed610e826a68621e7b5cf2ece293ff13fe3f0c57c3390954af8", - "0x695b87703e7299f3e862740bbf47ebf026e5330171509fa0927c361935ff612b", - "0xf90373fabdb83b403f67cc50d79aa37fc26d73ce8fda798e96c4a4b17440e2cc", - "0x536eee69a1cf54af816f4eb5d08ccaacfbbaaa165451d0a5e8b93b2e872c59ec", - "0x17b56635255ddc2278cbb7e7139cf7a8f6e2e55581c451cf53b5b53aa89f985b", - "0xb4a14da295a0cc51076c48032fc1cdbaefff2380a428eb03f6b068aee99a8fcf", - "0xd3cb3797197a398711299f816f34b7c98aafc8a845298287b4522cb0fd645b01", - "0x55aea7b1fd7bf0864b577e38a89c153ae8653da26c72f53a05d164b9da327a67", - "0xd4eb63ebc06549dd7419012d4bae13890716430efb843175a9270a6c517ea612", - "0x6958093bd81e477479a53443b0c95c11d8791b282d028bd9a6204af0c1f738f4", - "0x505f55a445b93a2ba8d5ac5531370e2bf760db44509f15d2f243175b12a7016c", - "0x4608a060b7bf832310eb73a157d285ad824b07d78bb471ea89ebf421d735d566", - "0x68c88d220d8ac23e19459d650594dde939aedcd75325ca2314b7a9419b938c37", - "0x891a1154ddc1e3239b1100840e1303e0627a53ad501996e56891839b54becc93", - "0x8b943abf7a572dd64da3c4e58c1f34f6f7a905fe7ce652a044ab8983ac45fced", - "0x06b07efee0be55002f485ec0526336fec4a7f825ff7eda3f954e8cc7068207f8", - "0xcafe52ca4b5198fb4e4e24f4c04ad12eb8c9f3ebf9a35ebc0014e25dd7bf5970", - "0xe0ed792746b780ba8e19ebedfd3922ca937fd5b8c28b03e0fb91789cedc0fafa", - "0xfd7ea98fb764223ca3c587820eda0a0d68301979313ea9cf0113508a05fba7d6", - "0xa874e6edabaf6da36996b6387bda14d12c3eafa026b1ca6ad5f1f4cae67855ac", - "0x29d7c85005517eaf1165be4921deea5afdae1f66b670d7de0981c4e502acbf1d", - "0x949318f8059937f207ea564672c86943c2c9bb86ca81a3b0a9523e7bee00a5b5", - "0x200dc199c37d16b25e207165c5576596266ce8b62aa8a9c6cd66d69d52c1a67d", - "0xd29108a106a8a5a87b5282467a0e8d37f74c2ae53e6dc11ad63005f3f3f878c4", - "0x44ebfaad5b4ce81fda3d4194c87b46e9e31fbdbf0ad28fe00cffa73f78d3957b", - "0x6843e2f6d3d56b55251ef7ceeb635226940dfdd698215f5d5a4c3e88ede5c0a4", - "0xb84d57422889adc19626aad033b38b6968aafbf4c6d0881a0ef5fb5932c6ab44", - "0x842626b82b93a54a3a1765ef6257a0c74e1ad2981d8da41fd8305adbac99bc76", - "0xeb347385fa0bb37b8d5d17ab60e6c2ed4bfd19210503d61beb88b71d8bf9adda", - "0x509a54bd689b7011504e835081bb9d3cbddd8592ad80da399689bc9172b48a27", - "0xafc5c51176c7222097b12310a3ee5513a7660491682ff1fcae5d168d2c19c3aa", - "0x406e9fa3f6687fa6519067e213377a5ff7875f6f0a3080880536ed395555ad30", - "0x2624c181d4ee1775bf687b522a36a7b9bb754ff6e40ef12363c7d675b60f3d04", - "0xd5c32eb980158772133a99d0af96e056726ed89be84289cb5fc1d083d48cc407", - "0x7b1c5cfee09aba12ae0742d9bc1cc2630bf8c1e141033b18724a524c2c1b7c2c", - "0x77b4b55b236cb7d27c77063a280eabbeba0d7171759fbf851f40b6ddbf7171df", - "0xa04791b79cad41718cd8a0bf604b0e956aa85230381070f842667d88760c0de7", - "0xb1558e574944d9e8910da9c34ed51d89caabbf6541f077a55ef2ae3c513a1e02", - "0x3ef8620edf05514c4e90c1eeb0a896ef30573f963a7507ee90eb76e4334412b3", - "0xfff99365402379af3e56fc9b999d316cea7a1f388623433cbcfef0ddcb6f9d4a", - "0x99fca466439472d08ea602bafc67d1d097e486b5e41b5a059818021f612e889e", - "0x094436d10026f1c57f04846690a0444646b762eef1fc0420c6e3f5cf5b845e14", - "0xc57923978a9dffe0812618f2f6420f30ee927658f9f1615ef7cad4519b90eda1", - "0x3a20d5e138cac29e3fa031847086bc62e5f90a5e363a70fd52e2602545faf9ec", - "0xf3b0bd1d597eb2b6ad98fbdcec7dec2639b92bc83c33db4fced5d23e6ddb64a2", - "0x0d5bbdf1dc7d52fddbb3e81e2d757b848f9e79b6847ee8d30352d4b01ba927f2", - "0xf8f51ff9cfdf6b2ad5609a68433c012c92cabeb3053335d784b1baac087516b8", - "0x5777236f251506c22a92f371e4ad3c78bedae22c4527ed5e796727512bc2b8e6", - "0x228bea6da7246c2dc862d9de97bbf824df6396cec583a4db71667306c5f6a02b", - "0x67ccfda86cfccbb139d77d8d2acf0d4bd980b507acd9bfdda6b5af6e10493df7", - "0xfd8f9ab200dd111c04803f62145fd82e6a79221776904be20a90c1c6328cfdaf", - "0xcd8ce973cbfa8a91a55ec09ac9acad4cfdd050b598349b996d252ecb3935d277", - "0xfe8067acaad74db589275d3122d84f04f717cfda870d444872824300ea10f969", - "0x4112ee457d4108c37121ef4ff0ceb1a4c7db3a9e3776d647225bf0838153356a", - "0xadb045193cb85002f2868c1ffd672bb93e60ed2841ad368bc8399e92c996229e", - "0x4243b3645b99ab1468bc421309220529d8ab204542c6901ce618ceb32b93becc", - "0x434e3c4da46b052402d465220e27d0e243bb5b116967d4baffc9325e326c9900", - "0xceeadbd91caca5832cace1624baa5f67b0d18f725627702cbd7e19ae3c691712", - "0xac54af2cdd95c862b3d9115c9550231f75ca8d6f6e607038850892daf1dd6643", - "0xc4ff21314ba2cac393c67982362a39b7ec96192fe37c316bdd4cbc692f729ffd", - "0xc84746b891e6dd8aac32b2ed0b373172df4ef375afe7e4ab826532b6b3fa9680", - "0x0b0e01ec97c12e488829d13dc1fd420c08475dc95d1fcd72c066d76220af055f", - "0xf0b54fcb4a3e075f391bfe937dd6b4f7481877182ddd4413e8b70efc63aa7f40", - "0x1a78c5cca33184c9e404a05f61cc56968b924d9d34b7ca6d573563eb250fc691", - "0x37ca206f795c02f45abc34380d67b15aa48122444fc444d4b307ab2f7f30a9e1", - "0xe03c444efd29f8d7c89b480ffbcb996a642ac6205ae43bdbb815ba1968051e36", - "0x2fcaf6ef7c22cebd36ccfdb037e66d9113d0965f3b5b89d597d91b490019471f", - "0x11a06d63b3395d09a048aee4d4291c0a6ab2d5f07a7667362890ce647153c2d2", - "0xc33a74c178ef5460b53a9a81aee02d3b42612acea7adb853ef74cd6b65f36efe", - "0xcce38b309fd919a930d38c7c7a7bc828e5039c22a7f3f858fd99c5d44b8cdb2d", - "0xc470e1078c305a5eaf7311d7ff652e24c9dbed83c3572a1c2ec7f6fce5788b0b", - "0xa29b6d0bf49a64182aebecc190a9a0b06931096d9984e7e6da9800ce17f7cea9", - "0xab0821217488504e1c255343939d109353c79298b04c69ff65152dd0e934022f", - "0x40c7bf4dd5a2d39c0dff9fb3bec5c8247093cc1bd55a8087d83f5fa7c8a35b31", - "0x3387ef8b199a2656c39407d503b9bd1571714e178d1dc7b1a74bc43cf88ca201", - "0xa5b2b8b2d708d97666281684641b611efc792f7c0cb27e053eb06752661b35f3", - "0xb604a4b7c3661098d4644239295cb9f6e456854651a5b289a2f4b65e33964232", - "0x4bf93500c257f054e6a6f993f344917215c9c943589644474f5cf98950b8fa46", - "0xa9ae0b7679a65498eeb2b460fe678c3452043bafc344eeb393ff1d930dd8751c", - "0xf21e50f55d7be256d14dba4f8909879cdaa3926b03da9ffa0c63ec3c9df34c48", - "0x88e1e824c968441ebf88b31f7a24fa5cd4e8985ec82fce5eeb13b3a30845e146", - "0x85d5206b3136bee840dbbf8d3d2302694dca2d5397aadcc34e1c1d6accac0354", - "0x00f68e845a2331a0704037d75361831d5a0079af3c6186ecaf256bf1da923c27", - "0x64c594c02b35bd5f69beb236ccc08140838c30b67a1576d2780123e29e073849", - "0x93f6540af637f1a630a8aaeaa86d046e09348320ca5103ebe2222f747a5acfc6", - "0xf9b4b9461b765b449191c7ee1acaad88d4dd7260e2b826c75d506a908fe71e6b", - "0x86aff1c986fbad8da2ca9de6315222459e9c47c58fd7f1a543e6719c566af5e3", - "0x68629388371ceb2a08bf7e335cde88a1bad7127990b44135058d62dfac258107", - "0x9b81d6745d5ab0a3459d26b97ab8f19fb38bd38c758a0ef106a025d091f6f9ba", - "0x2b42455bb30c387315cdf205a8a178ae4bd2d2e221fbfe4be55f5b364fe9a7bb", - "0x555e4dafa7d5d3f209d70a5c954da144ef231638f4a63715152bbfa4fbf82b4c", - "0x5d779a8f08d68794723fb5e95bafd7004685ec21d2cbae0e5ea728b36418dc36", - "0x7e5163ea9b1c0494aa997997422b02404a13b690257757f87f69bb42f81ba28e", - "0x3814efbbbfd4001641da7d5c93483f96467d55aa8b5b2aa6f980bb12a0dab6cc", - "0x431b7452a8157e3a6cf89a5a85d22127a1282877750519a8cf95e172c654c3cc", - "0x77ad2749e61c96fa868c7764ea626baef8a1bba56d3a3106e981869f9736ca76", - "0x7c069d14a86017ac36cb9007fc9bfe75ca92cd2522dcfd7bbf9d85c5133ed8c4", - "0x21dd48139667872fa67c98430f68e8d38c2948f19fff534ab2a5b8e0b92a4d51", - "0xcbc2dad5151367e6533963061712ee325f08e7df3cc7fa73eb5220cb32a2ec4b", - "0x398fa6f8d2b76d482a0c312bbf48ba8dbe9fb8ae06245da60ac68ce50f42638c", - "0x4ca92096314fe1d2d8e07aae3df39a6237e718c1396e88f3c0b73fb3124c89b6", - "0x3ae030ef952e2da7b29aacb08fc41776a44fa5a6c42e745d8b7991ff82566730", - "0xb4ef4b02dc130cea24a71a6053639238db2db30d4752dd3fcab1d98442fc3f94", - "0xa6256dc24acc6de428f47aab0b65a1f36855c7f0834a3e730d10a3c0c8d2bc49", - "0x9d8c8bfedbcf9552ba9eaa08a61846c52e240ceff531e7b19415ca148781ebcf", - "0xc6737357b53db7d2a14d7e7d4130fe6a516fce1dd0c7716be6137d93e21ceae3", - "0xafa9d3182fe6246f6c8d7b96852bc5dc200e8c3a97ce7d262a18c2fdaf5bf2b7", - "0x8064a1ee1eb4ddbf301fc983a03fa2983bc3743602bbb96d7fa6ef85780ba79b", - "0xc4616fb2fd5381efb37719cd9998c5051966b254abbdbe12228b2210c6f79116", - "0x05c30fff77a3d751853e3ae4c11678755c0afea16480a94bd99d61ac894300e6", - "0x47757d0104771c7e288f383bbbab1eeca2fc752d11989674305898e047a71bae", - "0xcc0f857a7617c16da7d35363cfc0af0ecccd9b1870ffdf1a2b2e2224ef81f876", - "0xab3a1b65f93df60eaff5df9e0bc1d91152d34d3428961c207f36ac3a94f61257", - "0xd0cd178507f1c3bdcfb7b528933f2d6227933bee2614636f3add19a66cc089e0", - "0x6379b65e140eed64020f496a95c36b3c27ea10387f78e0faccc5b4018f8f73fe", - "0x3b6977a571ac8d59bde2e851fec4384fea35a8d3905735fc8b8f2a8cfa6adcbe", - "0x2f193712529ecc908ee0a61172ec7839a9168cb424d8f108e7d7cc356bf20cf6", - "0xfa3e48832d13748aba9128bf6bfc76652cac371e49945fc33c941a9b294f7033", - "0x7086c7711a91271d7e38998715b4a142d7ec107accecf29f4518efe9f3333c4e", - "0x05c126586f4a2c1dc5814d07f158513d42282726918f71bcd1b4e0b67ee944b6", - "0xb7cc1efbf6880a60abe6b20f80bfe2ff3aa59de805ad964f8a7c5ed3bcefdcc9", - "0x64189964cba347ac35018ed9169ae64b78c3d0430145017cce83d78667b648d6", - "0xf6b1d09181b9fd18a0efa47c15631a6aa0eb01613a5fd1068834c4079e1a95e3", - "0xe760b5c16aaf587bee263f348f9adff4e04628b94ef27c828cc7155ebd3ac902", - "0x523a2c0fae8b2408ffe1c3b43e0aa7991b82336ed136e84c3f7d458d31143fe3", - "0xcc6d742b22b4fe3f41cf783a2f6f8dfc97a4b33866cd4bdfb27b05bc2ed39162", - "0x4d4ae86d282ec414a574370458c99e189062a3a48dc59a8e8e2a44790ce9b841", - "0x6fcba6a9469de1db92468f2b58b3b82c5080698aca4403ba8ecd1cfebd12b657", - "0xe7b584b0bcca0a5a119c8b2cddcc7a73c94f6f6a58503ddba7b0335815302f11", - "0xb1edda9625ea65b96a4485e10c798c707f6926e4ac2b51340a6f9d212a71a737", - "0xd8e2a94d4c0937a2033dc3b70b50934cb5b2ab54f57336cd6a8882af9f14b8cd", - "0x93ec08aaf09bd453c2b53cc7d9aff059681e0c23044f99569d0ea649cc7b885c", - "0x8ea82c1ca6be16616b62a8dbd88c75217470092063e0494419a6a926279230c1", - "0x175d030004e718f39b3986daa3beaf2e1a523583e529d6e90d117cbc844c647c", - "0x34cfcabda8b4f51cce74befb08f6a2e9ce884175f33fab59f26c60085ea73a92", - "0xd0570fbc17dc030bf6e7e3619d56ad2e866868939e4e5b23258adb191997b4f1", - "0x83245688ccb6e6f1b541930a3134d3141ef01a5f9b3f55f0321039b9d4a3cc1a", - "0xd782158768560d84ebc21d8e4f270f30055203b2d83c46ccf53ff8890e833fad", - "0xdaf31d5afb20a502b28329ecf1aadfdd16b4fd9118b10f9bebfe6f986a902dc1", - "0x0e24b26cdfc345d98a6d6dc3f4e3aa2629aab6fb2ca3820a78d58b10b09deb72", - "0x895f7a9b16ef1d1933c009b38a35a41632d00735a906b035f7fbdcaff1665295", - "0x70ee8681968778cb7da20dd794b75f08eda6b4b6e4aa653464436ff3685c6186", - "0x569f51cf2b92bde98085c2c167b773fbb9917a35844059696a1a97e378b5b577", - "0x4ee20277fbe5d2e616dc0b170e40d5b62cd8dd9f058c648e8e0d636316be7e00", - "0x1224d7eb3ae847458af472b19d3b0ddb90ce822f3389619487e68f3ce08cf6d7", - "0x57fb6d2ad5a75648449c99a46d92570b1dd74757dc1c0c11fe4923748eeb1711", - "0xa4ebbd26ed7dce135ce61bea0da82b8262d4a5319a7ab9c94527a7c670752b67", - "0x1533f0c29bd8a7b8d90c4c0755fc0b018439291566dc33bc816c8ca21269c63c", - "0x9cb5a5d41061a2168c0a8175d2712cd82d27cc777a015158c2fab0751e192d25", - "0x479f0a41aa04509beacb2eace213d9375393f583d384dd4e69b5b921c681c845", - "0x5791638640c821778349fc3064f6c5215f973f2b4f098ab38fc2138f6a8700b4", - "0xaeb1dc9ba82aa0c9ef266d1beaeeb5c756fb497607ee680c0a161b89cec21d26", - "0xb13f56956bc48a6b0760639488463cf403ed47f6d94c7b6e5a6de1d3d35800c8", - "0xfeccfb58d300594be16cbc9b5502ce851de36e15d62164317ef6e3dd9d72015f", - "0x3b218812b3219e243f99c6d23f24ba2b70e91b6a1e9bd27a5d3c83622c176b2e", - "0xfc8f86579345c5fba8e86d1263b3e9d01dafacd0c7347fff348c9a661925180d", - "0x50c6d100a8c0977d24c78bb58021df17c880a36f1ed118a0806d1aab347e3b42", - "0xd18166f82e90410a556744042badaebf3282c65d3c1fd81cf7e599695436b2d6", - "0x8f47f418fa13eee50b9a97781a02cc6a8b6818389f1b1f9b94aac17897ef1bb4", - "0xa4b3f32d84a547f66ca91ec35deacb2d5cb4da741059c01419b60b8d526d8a15", - "0x3187128246074cff2e8c0928dfc6b29294b0ad3f2ab839e7ba6d0b72f4f078ea", - "0x213988ced1828cfe0021da680b166b7d830b66a795613953589604d09b58bd5e", - "0x343c1581b9d75f1f72a787a29dba31a73384364672f0a06ec6d675bbc5b81beb", - "0x59a9da5a92994baba7e27688505df673c7131f4de43e6d174389124463eaa0b9", - "0x15c6b483253806002ed293f89d86d66314e55fdc32633f3e15dbd73dacdbde1b", - "0x01c22d029f765b941eb772991d3ef50458319d49ecd1e237ae0d61a05b7ff0cc", - "0x62f5ede9e4ac720b4fb34c239953b3289cb77e4e7bfb5268925727f5d21f0c75", - "0xe330297f6aceac790b3f4741efcaa4e58fbe1c61dd52c1d9bf99220803132553", - "0x47073de2812458f45fb789cb1a6d57f9ae772a38deb7dfd4c8c21c383cae3cb4", - "0x9e5dfc6bfe32b5f56c9799aad47fe1a01746fc9edc5d8583dbd1c0a1f7f81246", - "0x1d9a6fd76fc6a6f359fd917582f6a1af617b0b21984fe7038c323802660fe1fd", - "0x6f50b828af00200b81d65e14f07f8c34a5d485056b017146699fb8ac4ebc39ea", - "0xa8b15957d1dea63b64c56d3e40dffcbeacc5c9b8e35d27cd66f61f5c293def93", - "0x0ec32ee93cc52258a0de9eb53f48132b7101abd3de242b9319e791bc4205f57d", - "0x4405dae679f464fda0959884464e47f7d21e21d69288b66c35878560deefd6b6", - "0x1e490b1858da4d82632f376234e04ef4cae529c3307f3dcc5f5b893e38a418b6", - "0x4683e9dde5e2d66da4c288452eb653e2e6ee3a611f36cf2c80e5870c187c28e4", - "0xa657cd63ffa0cc282221e70ee3dc8a7f2e9eed9b8544f25467208b1954bc1f4b", - "0xd8ce555f85b979a26f207bc1e86d1463ab77f8c7e5f5b3c7db6d79785e388662", - "0xf604274a19dbc99c4c079ac4caed9fafd49c123226c3c223a53aff7f7b253b9c", - "0x4edf0d0aa873fedea6dbe3ad1dfa8a2b5e312e2c2b51c464c9af60a5a5c588c3", - "0x5ee990ce5c4e5eda4d80885409624af7b8075bf7349f386a40e03ae64b578707", - "0x3d34e4bb3284428153db9216319a83c3940ee95d0a47d963dd079a46d14ca105", - "0x7503687ea102d05d92bbcd2397eaa1edb42f757a0ceffd3abc871d2d895214db", - "0x7e7201b9fc6176b6ef993dea53732f335efb98abfa3d92462231bb6a5186bf16", - "0x1ab3a0afd0338ee34e047c60cb2c766521b3085658ae2e019c0688c2397bcfc8", - "0x68b5df43d045043400e3583c4ed125ef0df6f1617e30693525f68fede915349b", - "0x201fe9c6fe4cefb948972c644fb9d67634e30529589b4de597f9335bbd6dc8ba", - "0xdc09d73232f082162df780069a77f180bb30d8b736457b0c746c3e0a29d7dbf6", - "0x7c33f90910049812c0a87aa8321c97320ca8953f654f8ff7b6e3982b13e2cc32", - "0x5658b211c7a5a9d8d66be179b8d6039c6fcb5b5c9d232d4655e536e21fade31e", - "0xebfa63617d9055c50466157b9d8d0c16ae58f02df12f4e23f4bc09304701391e", - "0xb29f737d036e5d7164786e62b14d1f9c427792fc4faba265efc59360129aeba9", - "0xa1271a340258127b442c103959fd8d5f6369487c16575d90f9f1267fc3f78456", - "0x1d5e62fc56da958eaced4c2e6a58ad4acd3e978eeeb0f417e4a4078c6014a8de", - "0x4357d167c61da7d4d0b3f1646508a859d8270842cbf1f1f9f082d8f713da3904", - "0xd9556c35934ffc3ad2970a448d8caacc43e452b509f2cce4cf755b19d888b674", - "0x248efe4782d57127bdeb94420062b742031a4bd51c41d36375a9671b279b1e09", - "0x94d06fff869c9923ce5f524c3ccff9d9609b0b36562f47c65c7f8568d3f9207f", - "0xdea7e81ac2b15c4b145dfe132a1dd41300fae3a86eee16f936f46df16f33c686", - "0x733fb7f221502d0f10a13a5ab0473d50746afc5ed442dd69b4f9378abd304e87", - "0xc680bee47e540c3d706cf461399fcc1d7a6749b4b9f6808afa099c52d28cc6b1", - "0xadf685a187510063c7cf4b3ef6ae478705af7b4dd6c3c4080239ddcb6b069b3c", - "0x4ec68b78bfaa971ad03296b71dca45e36852f04f0cf6d0e8ea681c4d32ef6d64", - "0x407017242e04da4a1d4b16d59c59526a172e18d1d7abd4a343ac28ac883298b1", - "0xc92af4b5d045a6b02f2df7cf5a23173d969c447d7c006457a5be7f0251446488", - "0xfb8367fe9396d369332684b2fa3fad1603c7b572dbc00377bfcef0021192a52f", - "0x1d73c88199bc153c932ba313175344b436b28e5e0b39c3353d076c7e26fe843d", - "0x253fc1aca7544fb93d493684be03d3667628b5a0f3f516d7981e3a01e6656440", - "0xb8fb006c1de093ae15658b7be4b6625d5c6d14a5c4dd2623ac9a31e2479d32dc", - "0xb46abb8860cdd8ae411231d897af8269057060cb43880e52e63254f698af82e2", - "0xefb736142ceab502aeccd9df17018719d1004b554154edc5ac62ec45830a0d30", - "0xd9ce776c58f4e1eaf1ca20f61232d3063e98fee3ba0b078e5ba34736a16a7e35", - "0xb63a06ab391813bcf830a53febcf9553f292e097f127ab610745742f12ff7a02", - "0x225004609e0edef06ede2d08f490ef3616b1c5976027dd03f329605bfbf8a916", - "0x748f462a0fceb4743d8b03de6ecad430fbf35d957483b04e04609e9527fa37bf", - "0xf13227684614cb92591a4c0381ebb87b0e52bd21cfa265b501e231d8c3a0e504", - "0xdb56e9aa8ede4b7b042f32190ea90757dd9268457d43231d1a384bc6da5d6396", - "0xb4880cd0f5e5ef6e30e5c015fad427e418ae0efc70d084b7b6d342e1cb71ed2b", - "0x8a59bdfc0413acf03c39f473bd09b34223b109556c4e0fe976a30bdb1b944c52", - "0xfc2f062e32c3fce97a5f3922d3bb5c0842ea02a71775d6852e256ed0143ccb51", - "0xdc3ba03348f62599f9928101c65a8f13e2eabc09a377ed461636e48cc9e0a5a7", - "0xc5b2ac69eb80b3f2ee751ad4aa8e2eb2cc939e81586088986cf9d6e420330de4", - "0xd6d389727a18def7ce0bcaf65417e3d7543b1381b1b49c6f128f3e13f7d3eb74", - "0x02f48b5d43397b1f22bc7617ffd4d93254744b7fb872c051ef8a02698ebddc5e", - "0x90f674e478cf1dd60cccaa750363efe18cb4ed54415db0ea917a09d3d78a1778", - "0x98bc38a5b90450f89255564e3fb825c53d5fcb5eb9dfd9c07485ed6c42aa3f87", - "0x5b70c7cd74a8a92567686c5785657688f3f864b10d2ed8d9f21f004af2d0a3c5", - "0xb153280a3c86e119b7a03dfc4c8cedf79bdd41ee6128b3f5fda20cc83daa39a6", - "0xea4c28d38762dafc3c6716a760883e33666560cd05173d3844e7e280a6d8188a", - "0x8b498049e107092deee810a68bf8914e00d6759a7e62c8d6fda1c5b1531ff72d", - "0xcbcba70e0a5bb3ddb84e1b115432f025a71f2824061cceba494cb917c689f452", - "0x5906b23bc6b56c4e91706c5204d8873d17252c0291585fe4cad030ab6171e710", - "0xce634ca362c4acf53cf9fc68f0e7c8b199b7f3a1f5a2f9cc1c58a31f9650bea8", - "0x840f429289a783b9b4f8e0f575d1bbf0d2f4b00e09ca6dc83abd17d9718ad688", - "0xace326fc69d8ff3746bfede0d167206d3df6093315f3e3cfca8d41a857c20b52", - "0x905d81ceddb8f4301e62a871e29f1f08769336d7c0b94821b12668354af31fa9", - "0x8decc0ea30a4102baac7ccb3e50e15d50102f05f4a3102ee01a0a275d2c51ccd", - "0x56b67da5e38cfc995831754a64f0ce636f060d51c11b746aefac13638bafddb4", - "0x6672660064846341aa343879a40c5b29f10ebd8120c59bc76af66bd86b96cdf1", - "0x3600a734f1b1df6fe6dfd1cf49d8072bab86717bc5f2d276668c1a482e62acce", - "0x28e4ff2dbfe40b374a103ef1bb9e577c0f2cf1186ba3db324286ec490fd02fab", - "0xcc814edcf5ea3fa138fa7d5e387747334c3ad2095ff08465d7e533250430e25a", - "0x1aa1447a8db11875dc7ff7aa49d6927bc31f3b63cd88d2d937f53b1d85e448ac", - "0xa78c6871cc93ff6db876cff3755a59f8fac71e06c89ffc1200de6da08f56dfb5", - "0xf3c259454de9dd21788084bcbcf1cf0953bf7710bd797295fdfecfebd584d4bb", - "0xf86c0f1dbfb94dbce7368211fd3b19875fc831a422989340bce63102a2af3ac6", - "0xbd192dc3426a9b2fa33e2808a258e9bc27e1f14906b9ba9ec973ce604d9ea8ff", - "0xabd37b505d353f7042ef2ea28168f9d6be1a229bcd5ecdd4d69a96663a169446", - "0xf0f05dba6971b57e32e017285fecd48094e6044584889690dd6e0d70c62c3f67", - "0x15a8053e0694262c4954d8110c505ca101898fb5a5814ae8bcd35b8f24d6f90c", - "0x3f8c3d5b5a03f514d0b2f79fcdf7ea58eca2f85651932220362ec9ab50448aac", - "0xdadb41f6e17beff092dbb9a6dd57d3d0951a188fd041f60e455d63755134fc48", - "0x4017f006a6eec8c71840f7051e91dbcb6b18e52fa43529df1121980670f77350", - "0x358dee5f49761fbfe7e6694144a2de8e33614669da6b773fbfa2e330668f4e90", - "0x080216884b389a463ab63c12640f82f442fca56803b2bd7be45ed789db6c7371", - "0x5eb35f253d864713fbe058df986d8af27badce432ebfda59810f096b4e5126d2", - "0xa18c044fdebbe991e181140df95076de9cc5a70c2656ae99ef68e3c1532d7a14", - "0x69af193591c3eb53b00e9fadb149172df458a9e99f403352fcf866bf1456c6b7", - "0xf3a769187ea83cb9d2a96293ec8c9f2074e8231356d3cabe7669aba13f9509f9", - "0x5f26f2aab6b2a0b0f64312d243b7e3dc80621e134fe08f8189b135cfe7d9b2bc", - "0xd3edb5f8556c1a4983450a7d5ecc26a3dbdd332882dd63822e7c8cfb3712b828", - "0x6fd2e87efa3e7d4fb943852a358a515037af5c5eb9da73c3e3dbceb63106d2db", - "0xe574ee1110f966de904fb61d82995be95f3092511eee8195150099cf69fc7129", - "0x6d9c9b7b400d1f5c07aab8f4d23233d26e19feca2279f814729f122c01189c03", - "0xf0756f64317e10b276c71a678b5b62ca94e354c9b8d1ed7019a022be23fa6645", - "0x106402792c6b9f57f4b471736376a153d12ebab21e4bf034b6732324a1fa4561", - "0x33f10f38b702a617e0598cb20bd5df0067ac5ff155cd6b445f1abe46ee3d625f", - "0xffbfbf3aba272f7b978c9815e9e17972786c24fdee8f9167a47e85e9be60a613", - "0x9ed9567c8720d1450b2b0e45195c5a836484a18746e5d5a0bcbffe0b511ad075", - "0xa6ca434a876c017f522aa24937cd4dc1534da3fab47ec57e22ea7d2ad555fb60", - "0x2aec2650b00fa5886b61b1d7c4390dd4e5fd39097e9ed5b1714b741c7b0d4cff", - "0x0cab7259658221598aa39b98d9bd40e18c777ac3b11f6bc7799615c99858efd1", - "0xd76a13ba9212ef2ba4374b265d0405e41ef7016cd14197a2f7a9071e6d4e0a5c", - "0x2802a2d30f42fcb2c953ac6a83212c23711988998eb7f537f9807751b42652bd", - "0xb971ad9aee88adae769dad238a7044c996ee35596cc1b2a7f6e876eaeb4aa80c", - "0x524520c4c947c57827359ffc5a23c4926262c002e6c92d024ea7926a7e0a8fd6", - "0x0de58ec745307c9a36d5f3e97108f666ac58d86b85ce31e73b69579e913d300c", - "0xc0cd603660568434bfa04f6a06342e5fd78c6d916fb8dd77dbfe060cbaf02aef", - "0xde928fdfb8515d944a26630fdafeaf4b3a17dc40b08418097a465fc2009c2938", - "0x11dcbdd72f1b46be2a24dfa6a3cbd8024b6e05f8fe5cacb35618429d9918dec6", - "0xbac41ac48726fc1708a5fff1a06e674a64b8c3a906ec9beb7ff9a444903798c6", - "0x16142a81797daae5fa1914a473f0b89465b0078c5c042f6e1accab6d3ea77376", - "0x6535db5ab7dadf1187ab7c6f0e0a56fdb47a6e6c8f45627ab993b88eb09e7d1d", - "0xa476955c4d2810e17add2ac9604869e9067998fdce26685fd6cf422f861687dd", - "0x4b2ad0b366c96bdba812d3dad76f432dce8f0e8be1943ed92ee4478e9496d8a3", - "0x74bf0384fd4b8afa1bbc0fb0cb6543442a6bb041911a817b55bfa60fb9039733", - "0x5c3da2ac9d4284456d13270fe7d160178cdf61be8bbcbe8a8536da815ee70107", - "0x62da3f7efe7d1de45be7d134d290f9b3dd50e45e751290d870a4b232496ee71d", - "0xd130203c98355022ffd5389a6e84cdd8fa0c570ac887d80ccff892c168a49c4b", - "0xfe129ea286e85269736b508aca4471e643c4d84864809d031dffd660243e2f4d", - "0x69a60dbee253142008ed0cbde35b425e4a2d07545571d2646a5d2a03f36cbf51", - "0x1e2355fe638bd71688579e07145f147384ae18220c8324f95c54ba994b033cde", - "0x391020697dd4cf20f8afb4b76b25f2e08b5f77be696c2406ee45d0d8499adcfd", - "0xbac11283e3e355ef3466ca3dc7d604ca002e26a98b76caf134ea86efb1523eeb", - "0x328b03bf254908db475888105015b638e7b16a4743bb235b85b160e430feee28", - "0xe9450fb3b361bac3eefe1cbe97a096218c40ccf4530a669ff9e10207c69b26ff", - "0xa574c9dc2d563152d012a1931352ec3b9116f949197efad0868a53fe79a2afc9", - "0x629d3aa0c10926f4bf5d250b44fa6959e534444d9f0e8fcf5b206a78ab5974db", - "0xe1e7bfc1e38f36cc8a094038ffa44ad0ff7432c508516e7a8b3520d71714c608", - "0x13ac2b375558ac0582ec61c4edfbdaebb268efb3dd736b6483530db77b266c2a", - "0xa2ec61b999d453a53aa33105a90d310a5afd6f9df76966c53fe524100515da05", - "0xac58616f19436e53d5eed7b50162713711a3f9a76266ede35da4411008de1b4b", - "0xbe8d7a38169e1a92a1ffa712af5173d5cc18948a477a4db917a7f8cd7013d6de", - "0xfc6997785c292450bdc3dfcf9d0609efaa2eb780a6cb33fbc911efc18325c1bc", - "0xb0d71a0c1c3b2f1a746f8cb70fcb99695950ea488216f83854cb267f88c993bc", - "0xa41cb69cbb562b104aefb77c9f0b0b2a7b43b92c7e1bb40c6e781f3667e78c3a", - "0xc3dbaa1d46c2bfadf7b69d5930e00b3d2ee2f0e459310eb9414be6e7d8fdfbf2", - "0xabf64b834999a679f71fa66acc622afa69a45bdf0befe5c8e0224ee12cd3214d", - "0xf788f916838793b4efc5cc80d9f29f717b9a84e877773dd4791fd6a0c1cdfc56", - "0x289de39a57b30662c600ef8056dd354c67722e1fe198ec2bb749c2af77a27643", - "0x580829bdf1584a58d7da444d360dd552818dd1cfd5f7ff4323d21a0c13506b5f", - "0xba51c5ed86b5303e52a3b618f78614bc1640b1b145e87fe625b51ed80d31017a", - "0xeef60ce9f49954e62854e938873e556386b5045a57980bab45e6fbe6a6e9c657", - "0x655bfa2d02761722b8792ee69367dbf3103d16ed0d07f7f8ff6725dcb8f2d955", - "0xc7a54faf2898c69f76123fe1910bef9be9ecd77509ac74714218c9bb8b4204f0", - "0xf59ca122bb48dc6c0c577b04449bb64d7a1ff5661a016bf50e32005f3295b223", - "0xd96401f3f5031c1aceb13d9a3a0525b5bcb7afe47424a5b76e8381732e789a4d", - "0xc74fb4d8533d438c78710932c95500923716fdfa6625154320625465ee32f07d", - "0x63ba1efd6ee8de3b07dd2863eda5d46070f7eb02d35cf670f7b132e16a958bcb", - "0x61eea2352d91b206a674c4c2af59d8a2a0fa70479d77447e3ee9b7db85d353a8", - "0x04b60e8ed3b12a7fab29bb6a74ab7c9a33d403662c47e72227e7eab515f33618", - "0x9c229a533ba459b852dbce6d96bb72c03f9829b9a984119cc4e1c852992bd2f9", - "0x54695b023a34947fae5230256ba2b0905d3e28a28f02c2764f70495d71441a63", - "0x2c47d3759d9df5b9330e6836835939107269d70a7d465be651a3845e4a1903e1", - "0x5fb3708137f2cd39aefe87c67a6c4f9cb60a9945cfb769ea71d0dbb7f3ee8cba", - "0xacba51629f86d56e806aac1561bec11a697a05f6dd182ebdaa906ff77aee7abc", - "0x30ef858593f9a35889c8c036eda78d012e298cde4a3e7e603282b7f8130a4595", - "0x1c11971b18e9c870e513d099e5a49615e409a255725a61083001313a1d929658", - "0x9c6e3731ca9cee43af8c299c02eb49760141e74e1f781d1ba49b6815565f3ce4", - "0xb59c0d2e7c5ca751b9abf8b7740d8d5c8a6fb1799dd1d5a5e9f0ba75769fb2a0", - "0xafbe8a18d07a30f3ecdb907eb4cc05fdd8df2f9e4e91e61f88ab87dbcca25249", - "0x5233d2380755af7c385b5b50d79c5cd9b1255f0145a36245cc6dab7a86c0cbce", - "0x54520d2d08116f06e38d1a316e7e4080f3bd8c4e52b06f3ec20c3a5327f88adc", - "0xd36158eb493e04911fe79cdf4c48dd43a42aa3a23568c7a6b06afafd3ceb51fa", - "0x88a509ee3b2bcebe15ede2063f8fc9a04fe103a84551f279b6ce8d4d36d3b259", - "0xb1b80927c19a8cd540d126e07c52aec2206eaa37a13f2ab4726649d34357879e", - "0x83b1534ad48437dfc54412e49357b13528f0f80dcc32555a2b6f2391cedecbd9", - "0x13d00415b9888e8f64bd3110b04bd47125a96abfe52e0b6ec004c96e142eca1c", - "0x9e3b31cc2715b383eac51b52a3d912e22d3c1f23fa883028ace6a1e80b1c02c1", - "0xcbd325f1c10db1289d1c46feadabc59b24ffbeefbc4f242cecc3dc0dbe5c2e8d", - "0x7627582f663394f8284a6636bf024683547863409f38cb6ec4f67224eaeaa2b4", - "0xa4a44ba1e2badbb513cdd55fafbe2f5741caf2132dd46c602172711c110e41bd", - "0xc7612fd67e5d4bfcd14eb631181977f5b6737855721aa42bf4e9252dec190a53", - "0xbe3030a24be5db7244f04c43dbf419db3c7fde7e7a2f87951cc74df9b88a4071", - "0xab77045cc03cfb77d55f118f15b3416f8f118327e78ae4cc8a074b3c8550f992", - "0x0fccd266f83598b42b88c40c54670e3f2ab3a4c8bbcc0b4effec5ba92e0f26e1", - "0x5285dfd8a25356ebc198835359f53cb86608d1058a90b20980748eaf5efa2ac7", - "0x182bd336222d0cfa5fa9a0d8f4ca769e2d45829af50bc3a454193628e073b44c", - "0xf1a20eabf959a3c1135943378f31a69c049529785e0556a45450174237d8a2ff", - "0x69387452eb76800b6cb66231cf58dc180bae7aed04ab182dcc3845cb1abfee73", - "0x5136ee55850f0aacbc26fe7bcb58a74ea738ae6edc56bdced078297e8ae44087", - "0x37eb930540d64aaf250e003ad0c2274cd047eae6c28bb861bd880cb53aa972e1", - "0x82d64719d65ec1c1dcb0d269222b1acfe77326ee7d901c8bbc542b7696d98de0", - "0xfbbef382c42f25021b7b5787fe6ee0feb1e589310c615cf26642ae507f2e8e07", - "0xa2da021c8e8ac265fd7c181ca94b372375b3c297aab51811494c07a96536d4e1", - "0x7ca0d6023b41793f7a4dad7aa65428e43332f9fe40efb62c1e74253bf64a28f2", - "0xfbe923af0120629c5dc3c118350d1ae310844e0df4cb8ed48decd520fa7b38bc", - "0x3c7efb35e8c27c90cfc06a18160b34b772a5818cb79a1bf62b107ce93cdee33c", - "0xf59c8f80367b98738620c50a44cad556d73ce17a5cc1f403528d72a52fde5375", - "0x7173aafc1f35fc4eaaabb61d26f908a8d0d834252b951f5607a8cda0c97cd79d", - "0x7ccf293b0d2ab799ce9fc487187d61eef099801d8731fa21300bc1b166c11788", - "0x6ed0dde1a0e7bb58435bb525d897d1a9abaf03f235cceee32f3987e1863d94a5", - "0x5a5d21f5ae95355ccf41cbaad953150d3f1231de6df6650cc712cc57f77fb7d5", - "0x7731f59f98388e028b194d16478c9315050555889c30242a836e84e5f27aff60", - "0xfa682bb7f35f7a75c9490c074b1ef4c99afc50f1e32d829c057c765deb899638", - "0x10403d6937901a289c468f7eedfd69d38fea6c6b468f63bd7cb17cd8db4a22d6", - "0xc5ede1b02d3841558bd8ab6f51e14f5a4e6b00daa31f982874f0bad7132465a6", - "0xbf01b8033add1db5cd02633cf114492800816bf01ad4c7e060ae4c9ffe92c13c", - "0x72d22a8029386eb9c26dc3277e08676609385cc2f9addd4095fc1de0ca6bbb17", - "0xbb77dd7851cc4cc50551914a62c71f8b8e2ad7fcb700469a6b893810b7d71a69", - "0x6ffbe73f30d4dc914a859911afea236c9540920e5fc6ea35a5b15baced0c8d7b", - "0x2d06f3ac10ce2d780f52e9f8dcfeed80bed8c4fb628e8169290bf35b59fce156", - "0x1f6c2f6010356f6a37b0217433d7a1f5a2e0cf51c41b6ae6de4afb236fe4b5eb", - "0x011c13ffb7e71e32bbd4517b994856f6d21b7ecf43d117b8642cfaac37b9a8d7", - "0xe2613913bc4cd8dc69550d32163b251cb1e6ab37d65eb71b3aacd05713158157", - "0x54247c638b2b1fe4efaeb4eb101d5177c84c975c759ddb1ac20207341818c6f1", - "0x34fa5ed94aec05a24c812403ad050ccc96d7a052b0d9509cbbdf83503589e3f1", - "0xd4c86048683eecb1e595cf76988e76be819488421c56b96a6dd4641efddf4de3", - "0x541b476f9a0273fba6340f7185c2ce43333de04bdf3c1a7ed022edf4372b2d0d", - "0x65319f2394a1b531beb788f72246a6035539816c618867b0e1d0fa3baf318d38", - "0xcc6b6ebd1eb606210f5d03e191f303c1c4a438b9fd7b81f61c38da76a6bf9fe2", - "0x66c0dd3e062f95edbf9b26189a302e46ceb5cfedbbd50e43139bdbcfe9fa2b54", - "0x728f5ccd05bef6a64b639ff86642f71078719f442915496c430dcd17b437139e", - "0x85a856f40e911384e7a7a42fc5d9197e063bbb890a81382b4ca6ce2e78af2c77", - "0xc80aed20cda1826d775271f2160b6040682095e51d7deaad7405a2f1c801f980", - "0x95576e4497c07a1738d07bd468e65d251f9876c957d7efab7ab7ed0a6eb2c9b4", - "0xc30785c899138565d799884aa7bc486f1a803901b6b8b8b66eb6d97ca597d8bf", - "0x3990fd6682fee93631fa80ce6cfc68fa57e25850860d4d982d0945f72ad37f38", - "0xa136539e69b53ffb451c817c40776af735c95f3392d24d906b22c0e6c6114be5", - "0x8fdb4d50398d776ef876ce77547d4d9e1a4609be5432121ca1dba983ba07a28c", - "0xc7a547ac0db666820263a76b9f9adac876b972b22d6c8bac407ad6fa5c839987", - "0x87aa61ed60484044960beec4d9c45c9112e6e4a70cfec894d5a9f93f94060acb", - "0x50b05f8c5a72944787041204b8a8acb39faf179838116e04ee7bad4d6f21d4c6", - "0x8b90f04539dfb2aec48e0f7a47a1ec601af5414f3284074911eca3a3afc36e3b", - "0x3f9b8f28853028fbd3cb0bebf22a723907600bc2c616ac5251fff33b2df5e9b9", - "0xcd7153ad8c35638d23fb26282ab9361361fd23385ebb9693d8d628a75aec6c07", - "0x370788f25ab289cbd7f9a4b238bd35efb41917b771d8d59493a05aa7bcb3fa4d", - "0x942223044ff0bb9ae56f259006787e5ae6f21f46a3a2bf11c0e977fa60b50b7e", - "0x7dc0e910fa0a6d722dc78f17644842792e619d7e7c044ad47a5fa32583686e9a", - "0x669d80d664251cffc5c7289ae2195a0cbc6fcc732c2af1bf429a4aa98c889520", - "0xd6d24bd4d8a639ac36b14c6d8599ee8ef5d84ab71dd7e6ab829b730d930ce924", - "0xba692b11b9febad8099415d1c0761f2a339328e598d9e04533103afac8c04dbe", - "0x8e9f7d1c6c2674b3139ff88faffe8339e45d72212234b4531654accd66ee3d4e", - "0x2589b94b36fec67b5862871758f86c2773a963197b0d7ba9984427da3b4d6042", - "0xb7d1c1c35718c23dd4498571bb0f4727f3ebb0e1cd02d8094f4713fc0e858894", - "0xe222068e575041014f38e20a85ef1e989e9bb05279281c59569a627769b9d7f8", - "0xb0746c8dbf22e4fcf025fe5383fba7865fd02f79a4403d89753052bb9118e3ed", - "0xbccfcf626a8e36b6eecbadad1870358088b3e584ce79741bf5167380e97f5e9c", - "0x6215dd20373041734291e4dcac34b207235a5d19c3bd24359168d75778b6dd5d", - "0x025f64d258d97752e9b648e956d114c8defccb80c8810113a3522a77ef3f7d35", - "0xc00ffb03dc524d1ea1984eecfb8d26d860791cdde35c8b262faab927891e3fef", - "0x4ec39fa070e38fb24c41af52ae2ac640a859c61c96661d24e53c817228863abb", - "0x7d943dbec346b6bf55c226cae23ee23086185d9377fad511103bfdda3d677ddb", - "0xbfb16c7a87172cc804008bced344dd6c1105a7f0e925f3b7335b6b4d7c8def25", - "0x359acc4a540fb3b54fe22d81f1e3c1b969a99129e130e9e4e24481d024cc81fd", - "0x33091ed3e9f0e50c8c9aa100d9615e8523d594a99095e83863a58cf54332edc6", - "0x5eeb88207a02fe01699c8796b66ad3a0827432559690bf42e76ce1c7f23c0b30", - "0xf5a521239d0f969c8b5c372b84f739af314645de36efd1190f92973c0a2f9098", - "0x1a634f2d829a24589a25a01a22b139b8342c7aad990a14b5e30715d2a83074ce", - "0xc5f62552f5e25ce475af7eea51eba85991c59b73da75eaaccc3e5571b58a6372", - "0x9fb29bce2aff82c7d3eceb134cb1d5c6e6b309b8a9be5d239e6c6dbe231fca32", - "0xac3e3a2edae826437228f39859aea596a84253070a5e442e04adfd5504b9a108", - "0x717d4b6b147ee5eb42baed2a926241dbaed7e6426aae40972488c08430659d20", - "0xe18c4e7cec87f2e53f1e10683835563bb05e182596fd5252017efdf7d29411cd", - "0x6ddc0db9f04fe0b7f8417507afe16b59479303b5473563723b390149a5f09b2c", - "0xfbb88e97efd86e451817b13e55fe3d310edcb302607127808ffb350799631ccf", - "0x5f61ece4f330c3eb3647d2cf9ceb4f3cf238a324bfff628257ac4aa1de7f1663", - "0xa2a3bd77e36c3ede311ef3fe330e4a2b22dd41313ff4ff6347f629777a88377e", - "0xbed3c97e0d2dc6e56006bcbdeb007c8b63e060d80f46b691d38485b03c17c791", - "0xa4e4b8d8922741c5a767d9c4dd71f9d850231d298a5b5ae741397fd065600a52", - "0x0f49e95e5812f573c00dcab19683c391996beacf61442e52a9c240f08f8ab92c", - "0x3701c4ca890dba3cd43fa3b506cb3d9ce540e87c493c6cb9e80bfe05ec5cd255", - "0x785e2c2e4652a9dbc413c4b7bd54dc8c103f6c933eb9ec41ca44e609cf7e0bd5", - "0x7859e4bfa55b11274bb0e91f608c6d840b7de4385ce8158cc08b38449a61213f", - "0x64221410a8e57fa61ee9d1ea1b5ac161face63a493dc7b0da0f398c0d18b6174", - "0xabeeb213fab38140a8e66b41664626f3ffd831b91e83f3cb7d4f2f09a0b73e5a", - "0x8bc1b2eebc3481e54df34a5f0229a54264ac518dd36f994bbd162442fe1190c4", - "0xeb0753b5fe8706efe7224f354cd92381960212ce4d448d3ba554450a66bb5e7c", - "0x30f73d3082f6ce7f9ece8dc9d6c78610babeb05854415279d615eb24d0d10962", - "0x4bdbb7c38040b9f623b67409d8890070fd5d6f89f023556f2bbee1f40f55056c", - "0x18ff647cfbae0ee093bf85bbbe218802afecd7f45bde5dc29c0c76420311f5de", - "0xdf91143a55752eec775c6c02464a781e16c8e93a4270ebe1bf2127658adeb5a4", - "0x64ba37e403fe57a42440bd2fddc1e301297846f69df5990c2d664d3734f902c2", - "0x2f70192df5b8359e851856351ebe2b0888b1c51ce802766f16ea2cf8b723004d", - "0xa5ebf72bbf06ea040306715900f6bd06564887b52e4692333f880e38acc40b0e", - "0x3b86d989319b0c910e74a79b2177efa068d8601b9889b5e3d17d57c59c6a2238", - "0x1e416fb3c47d77206efcabafdfd3fbd0919e7e6d158ccfddf1d0a2a7cff6a37c", - "0x3db2b1eb730ce08d44e27585207b39d5f8dffe7425949fce9e6e1a4f296c6e75", - "0xf703aca3c59fb4e102018a6b156a83af6c93baaa96c54d9a44485a5b90ff6679", - "0xa103f504db51472ce4d6735684bbf46259e04224d42fbbb87548eeb01aabcaec", - "0x282e099b561c70a9a1a3ff6a4518970deac9a096563e15c01151c0c37f78f737", - "0x87bf6fc28f774c2f6bc83f32751e0d509a2e009e2e3dcbce44db2697dab33520", - "0x97d109285466d0d40ed47f6e1c8e11259e69b90b02731a4c25efff829e9c7e71", - "0x18232c1bca21707fe7b74896e3b1568f88094adcc51b4ad9a29a4c76ca33063f", - "0xc230723357dbd10e7e57ab187d1a1f72a27a53c45b650020cffe672fa8e156ca", - "0x6984c028091bbcf3e40bdb8da39d81d2c9f8a73801276ce3644fcf57cfd3e8d0", - "0x8b66e1d6d3d60f03098f29d9f9857a29ae48a5a34d43786a8fe64e6227ee2da6", - "0x353c9a58633a1fc28b5acf9a0f40e69fdd48252c689a9b8db7610c3d003d5441", - "0x1e020c7d1997e15baddb02742e8846228e4eecb6bb1beafc81a759b95783e238", - "0x50e9738978bafa44eff6b9ad9d344efdf40f7ace0dcb146e2c758cb7b3ca05e7", - "0xec6ca85b0c27f1735eb0822dfe5a0d4e642776e2945a9a22e104b9caed098f11", - "0x94f749840d03dfc1d1cc7f31070a1019cceb1eb36a09f520129457057885fb48", - "0xd29d8d19a1dceb08208369498527ccb0fd4aae41077d4c01c715e6989d5f828e", - "0x40b5cc4710284f1175ce67c1a0f134288428d8ea28f64f41fd061a3a4b139242", - "0x7ea68209ad947c37eb3ff8c779ba7f5f3efaad2d61edca2ae5efef666d7c1f5c", - "0x0af74db9e9195f27f1a04acc3150d6d6200a5f50be63a6dc2fa9acb953759517", - "0xd7a6b221519266e935b12a864c84c6d7daf4e4c8c812a93515ea8325e94f2644", - "0x041fd7dff3672a07a2922226bb0526daf0817fcc61cbde7fd3e1f8efa8dd6c76", - "0x79fe74fe4e56514072881413ba7157cc125051476d42fc9361a58021268ff0d0", - "0x01cfb41ca5887931cb98c347c25d6c03eb5e992fd661085307245dc77cfccc42", - "0xa1e93426afb5ef56a564ebfacfc52149e293c25dd36dcc2319d1ee50057eba41", - "0x6a8e8e62cd387ea56c621a5e085daaeb51003e86fc3c252d115ad417e2e79242", - "0x18e5d5dad6f00c36be4ea9c7898645611887a3c3310b97363699178136989527", - "0x6701bc914e70bced06487f22a16792fe3dff4f1fd15ab87ad42dc91de3cc951e", - "0x75161e0ea68a78e4377837bab6162f1b6d53cc5dd76c423acba9bde4f3ff356e", - "0x9d9ea2b7caf0b67dd97b62f0e25d172f78c984baf97ae3851e52e26c5af87770", - "0x4257fe5a910db425844b2edc8badb4977c819a3c40e356d260b93fd2f9170bc3", - "0xf2c878a894811bd844c30441bf38cfe79f3ede5b0574721f32a24755c40aeaaf", - "0xd45e12f2f3a025090fa81bd95e555c8787c26849410f96aa172d3dd153b40a67", - "0x6204243276bb752e5e2d77fc43cf7c5cc92078c283c4d489b7310ea2753ed71e", - "0x806a0a9e0f4e744b02b5091f72f57377a4d7bbbb27829789070967d35fbee325", - "0x13489b922a69fe05869130674253f90b4f883b199f01cd03c85df0a000e1717f", - "0x4fa87d7ead2b1789c72908523c5aa6ef83b7d9559f5c5edb506b4c2f681b617c", - "0x4bad3e31f50fd2dc570c31bd547d278b92e5c93a7d971c38035c09ec5a1dad84", - "0xa0f547806d376b76b33266d94e7d2ef86584a234b540e74f79756e0331405c61", - "0x4bab9342aed359dbce241e580b46043b160a01e44eb62bc29ee5ac413b8a7ad8", - "0xc7ff1b8f8557acccfaf4dd37d13a12e3f9d0e3612398c3d8b1d675467fca56de", - "0xb412685d085b0d52c72ca3d9987cc188f930f759022f060d5f2f368e77a7767e", - "0x0775a447ddac0050f5cb29e08fca1e7d016b42c882ee15bfbae3de5dd99b6705", - "0x1d33342e6115ca2919ad6d31fcea9f4a9fda5dfadfdb4e206e464ac44e59e178", - "0x26dd97156aa189d9f3c799e943f50ad13c2d0cc8018b054af65eb37f5caa76c1", - "0xc4daf50db81c04055bfeba3534a48af718695e2789aead7c3fea58b064bc86d7", - "0x87e2b037cdf4370ece9a2e4a54329d3e1be0b910af6da8c3850ac75d6ba34920", - "0x1b8fd79a76b40690a3bd1bde5cd3b68b36148eb951f45b798958777527a876d4", - "0x63ef67d88acd91fa005706dc9912991ecaa81cc7334ec367340a2c12147cbfad", - "0xe20cf7a6540722b3062b9f49dde601f210aa8cddb5b5ea65eb7bf44f53ce9d5c", - "0x05b5daade0670fddf401298414b70656294b8c5d3203ef7e21536ab2696195c0", - "0x678791e0898a0fd0dff39cdf16d298162200ab1d93beb96ecbf9e9a664362b9c", - "0x77698208c576cf9f2696280872c6f2938595ae522b37c2b8dc5b60b83ce7a9cc", - "0xe9453e5ae3e39110b65b03dca160f930f39e933ecca604f7b1d9db0f3d4e3915", - "0xf3d84caea9ee5dffd395c7da7131456174cba99f905eb734c0df1e070c16d359", - "0x3b56c6cb8308bfe1d9339e14c713eebd5830cd0c538b196d18743bfb729878d2", - "0xd0a1ed8e3bba6cd1ab36ae3e60952e6ae56cf2157039ef2f7136e09999393650", - "0x206a0bc96ac96836c5230d024aab5c7733e4c769b7cfa9fe4c52ec9ccc2c9ecc", - "0x322a0aae92f406bc6c08dfda0b60f625716af5dadfec8d014c6f863eb33c2edc", - "0x701f25bc99f297ac9e8a8e5d8c376f9a363ba277ec87d2eefe30833035657e23", - "0x98ee55ecb672b58e5d02ac83f716013b2e5ad57894383e792cf1bd82cb47b20f", - "0xd7c63ead8a31b5b188fbf0663e4bca087035291834ee1380da270bc26bd19186", - "0xce3824ed345e2101fe30f43287f428c2cdab4a9ee2b4a047d4c6ba1b46a05c98", - "0x853eb9e976bc0fb95caf99b60c978056b0423f2455e5433f3b9d6d28e8ddaec9", - "0x2fefc2d9f5d26e0e9893b98d6546f593dec46105109fbec9c0efb298dd18e534", - "0x255bfda7bb1a2df1a36e7ebc4414338928d59474d9b33f478dab6066275896bc", - "0x678516c205b1f93ddc8d3558e86ccc9ed5dc317387f4a7849ef158e7759234e5", - "0x58d0e9d13bb841286dc4c579c11cfd659b70e84aab4550a75d1d8f01d31c0b64", - "0xb132975005aac90edeba73c75a8533cb9099a5a7f6e9e31755a22b44289bd950", - "0x77ba37c64ec1db20a6dfad1462bc4cb5d49cae6e3c801a99e223e6062dda2598", - "0xe3a4d6edfccad2c55d2a729e6531cc9c20d668dd057c3a8bce78dc7789384d9f", - "0xf419bd76337344144a1e3f1e7a8d3f768fa97f4f1be87757e3f2e50c78c7ab14", - "0xac248be7b1b0f85f35415e09025f379bfbb02776e854d682bfc93caba3a0cbb3", - "0xd853df355a1b6f7b6921870bc5a00a615d5fbdbd9c5214e57e0461a00af92711", - "0x3696d847c84ecdbe2902eb3200013d332d364c0be47f67cc122bd7d4d644f08b", - "0x843a93026d2075704e731fec65fbef6a234eb6d2368f7da29e8e2d3cae45fc3a", - "0x923e0d97b13c9ff4e051cc43daa92960ec646236d1b02faf28902c5067cf83ef", - "0x4a700c31d34448662af972353f9cb471fd155b6c7b5c0afec7acc09e58ee85f6", - "0x2cf612c948d6d8a6ea9886270d5de1e131c2dfd4012f1811849c332716ca650a", - "0xd9acf143ada3cb5e1eb8c3d14b4c188bfce9efc13d317822dc406e08cb5ad9de", - "0x55b3ab14f3d1c8c7b8660a136c98cb4dbd90f8ee329c1fd08edd612a5b866428", - "0xd07432a9b77607da1fe30c98226a224c171cfabf96a1510849255a58f7040595", - "0xe12a4928faffabff9d4835598e103b6079f359061175ccd18159a6dfa7ece183", - "0xa223cb9afb71fbe269c1f721c22fcb13addb8ec06286f9d5b7e337a262c99104", - "0xc133b48eb3f4946ffec9fa143a85d2e009a3b8a99a68ed1d0121c7e9fa616fb9", - "0xcd63f76df5da2994fd87c43f743cd7d35d94cb8dc973cb7a120cb677db9cd5b0", - "0xde86817e4351951cf1b6402036bea2c75901b6aa7a6dff62b9862fe4783e801a", - "0x2872145a9ea250731bbfdbda0b66367300d88f2d9934c6b1d12960067d717bd3", - "0x86e0674ddc6c584cec7931847ec5283675445d337a89d19047817e46e9047d22", - "0x4aac4bdc309bbbcd210b87b0f50d55fe86f5db69b83e201f156bc9ad25347966", - "0x1c0e32260f903386af7e4cf14ef819fb1245d269d2713faa729f05b019445243", - "0x919711d6689630bb81d59ad2c75ace09b462625180ee8fb8fa2d3ac5aa15540b", - "0x231f8566ebd8ac13f2d6cd5a91566aba9074ffd235c762c26280e52feb5ee4c3", - "0xd5df310c108bbf4dcd5f876e0290c5d9c9c2cf20f4f979bc74d962d7da99a777", - "0x45e6ea115a13d30d8dec6f480a9d0b17cb9288f3d2590af02a40bf3dedf3f1ae", - "0xd9930c2a8d4dfd36b70207175e3ec5386fe91371e4b7fb484022e64b5aa8388b", - "0x529278e0e137a319d3a7516b41bcf4be1390e5646fd74fa8c6ece03b9e734deb", - "0x471c07b4e2c5760ad10759fc0889fafda85c2367f2a9147667ad61b687a52fe9", - "0x39332fd9e3c9c89f6b51e4a5fc43d8da10191d07e71c35383e5bafb997c651fe", - "0x72b4753dfe94ecc08b1ca90329dae352e677b64d3e28281b88765cb2e7e3e428", - "0x9a3d06d9134005224fd1f71f14bdda085f18824b9c86b3ec6254b213d8e349fe", - "0x9e8a68163e7e0d096cb822d73c420324ac7416731b27407d74059903c05f2862", - "0x292c607845fdbec84efa2321bdbda9864c3e7e543890fbedf1b85fa4b7ea6b7e", - "0x31be5706424ae91ed9695b2f8f7cb0a81b7623e02da8595f0affd2411170ea11", - "0x9331ce0a7339609a1a4ab7d82e41f432c430685dc6aae81c50ce18aa0592b465", - "0x37dfd9817be661b6f7310ae6c90b3b97fb5f63e0e622618ecedca0d609c39e35", - "0xa350f656a9cf101ba47b0fa109409f1113ae33405ed766d0308740d5497237cf", - "0x272d62080e7b1c27f7134c60ac9f0dd9c903528b1a32338ddc8fc199d9ff2bd6", - "0x8903ab21a203161e433cbfaf719a95b1fae95e029ee19f0c94fa7f1a68f3a1fc", - "0xd3ba92c896627745c0afbbbc9e3d8b5a1511057b24817d7070e08308812f7ce3", - "0x703ec0121dc8e020de0dce30459da694fb8b7ead68bf5b052320c97b0edff1dc", - "0x0491cb350e466467a1078436a1100a70ed6198122f299b4bcbcf8dbac4b1cbe3", - "0x826cc32fd3097689638c8701164358719b6c8645270b70abfc0b07e103d5403d", - "0x351679f35e52895312c8524262a6e420544b443ca3eee81cc11a11c4e40b195d", - "0x0fb18a66d08f29e90c1a71a648d1b36c2dd3fb84bd2e4b8ac24959233cb7a244", - "0xec7fad9848cdb994996bb9fb63cae6e913fe90c9727ba49ab8c9d293b692237b", - "0xd76f7d686c80c1ef3387ff50925bcb540084d3e8d750a862e76e9dce7a443d40", - "0xfa237f1a2b3dd6e4c646d7c77982558af1633cb8662e1d107d5ad5140ec86024", - "0xe7b5e487328a3398b8716043d3e6bcfb39a996405daa98be49493e46e9a46555", - "0x306c41368e9d1a13d4d20256602c4d4182e45b2b69549be7c7133e01dc930057", - "0x9551a36f384e66ad7c5a7d43f510480448f59fc2b3414cb2dafa8d71314ea4fb", - "0x72c3b4a7c21c0ead562b66abb8e6ac42ab96fc5d01c8a5f934df2393b03b738c", - "0x849f7030b271894fd605067a59e373d903a6a52e9fded2357c05340138d3de1b", - "0x5be66687e522cce14e119c9d4b3b3853fef6cadaff6f6c5c2eaef9b6769b1fef", - "0xe063a6dcd767abe2a9e37d3f18b67e2a2efd68ad4d96b4215eb75e4b23295afc", - "0xa8f6fbac9f159d5a5db1e8d614dbd3302bd5737eeae692ae44155d26637ceb4e", - "0xed37085b1ea6b01638a3a145297f390b63b307479e88c55908fcb46afa1e5960", - "0xd963204f34b83d30e97b458148d7e3cd0143495ff67d893b512d7beb7b225035", - "0xdcf4fdc30c4e90b82c2894b12cf27c2c9ca9e4e5ee88d6052d3526a96b93c55c", - "0x48ae98a481df3d2ec8a9c90d0a838125a5237d5716617d4be50d09b2f1f2f592", - "0xf85cea1c73ca422200a9b41a19fec626d13d70e0ae20dbf8c5db66977091e2f8", - "0xbaa3273782c55be478f5e44af8d6d32771bf837002231621eb82fd5b8c07b519", - "0x1dc0a7713568a6fcad865704e07a405a44c2b0096354115f07af09b760eb9a09", - "0xfa70563c38634999282cde0e088e97953e2d8a81180f5c9b2e99ad74493cebf8", - "0x58c7a37a105fe671a833f01f6c189c6f3204d462a0e119b494b6b0c8bd97501d", - "0x9ad437c83bbe3a45191b5c9fca239d1993960a8316e3c52978c266cbfb4d0ed8", - "0x0e8ce8c69bda4ff65d9bd614bb827def7d0f6bce5d550ed72bd5d91c8c1e33ce", - "0x74e04e71ea4c189be803be1116781a66cdfcc50a067387af6d1d468733185b14", - "0x9d1eeeaa2b39e1e0cc9717e921507d34f35faea1450727825d147ecefcf70464", - "0x6758482ad61721f92137d015d4d07bb238b0976bf14a3c548adbbdbba6b73f00", - "0x794c1b2f6ae68389c51761edde1c96b8bd44904769e85a8d7d0035e76be9f13d", - "0xaafd63d0587a40d5b73ba230c976ca80c46a09e3b7f7df136f8eb0b04b60f5de", - "0x67d184707f6e0b9af49aedbfca464946b4f54321c4eaf3263d4ce52de31f8767", - "0xd2af9a84d73ef353c42517a6c5c0667b1f811ce2bb327e3702b49a178fb94179", - "0x2832ef9283d9ffedb03743b454894472eb31740487ce89ef016a00819ff30c2a", - "0x82ea0cb0f3eb68ead50a1d8106278f464e0126c0d7589e6d4c16142d80989194", - "0xfbdc8b5fbb0109cfb3a3b03e01c90c37cb4ee7781563026c338f455ea708058f", - "0xcc34701c30d0ced752f863fbe56d47abfec0c9f8012d1fccacf3814e5bb824af", - "0xb0cdfcf55823aa634004387d1dbc34246921ca0459cf4b9f751377e3a78ee041", - "0x313e6f0cc985a8a0eb2fcb8d3901fcfecbb7d29e98ef8145996e4cea804420c1", - "0xa64f1d4794cd286788c281b14adaa6c0890f9782ec0d80448b8fef906ed7bbc9", - "0x619d70b2e48cc3b295add6bfbb8fc60f38a01e61f4dfb4872b58c1ce7046efb0", - "0xdb35cea33ddc36b0b91b0dcd84155e214a738cc81c8805127c47fb7312257299", - "0xe101f36ff5b89d028618d46138aed3d6b3269605cbf4f83d68c9bbf233f63d81", - "0xe5925c839b60da70be28b38b2081701e3bb0be98cf763539114609b309c5f97f", - "0xb594135c1794da9f7b7af1366d56b4527223c0471ee3780d65cc03cd70fe2391", - "0xd6a8a3b4c6d33bca9b02b8207aa680835266d9c9d4808e2d57f28f92936b7d01", - "0x640a50f666edfa0c4cc55b6c945a09108fdd53af5ca55ae92de4245d56d5e436", - "0x8dc9acbbf2b71953327924fc2cc711574fb1e82a6746a3606a71071369e77601", - "0xd764b84ee9d6a552e34252322f7a939ae546281136a217f5f7f34e41997e677f", - "0x3ec87053d8ec66bf2449a17989721644050b2341adf9036df6843a414a9a1de0", - "0xdca7784726ae438b274f4a3c5892da0bc69ea694791c1ffb5398683952bdea75", - "0x29114fc2dc70ec997d34e3937c2e54136fd1de4ba7fce8353e19af65aef490b1", - "0xf1407df809e1bb932c725821347954eecc9e5e226cd37b6058b45ef9f4fbd377", - "0x873826f03bea4b73698a17d2b0044f1c689daa17925302edb0f815dbf50c7fec", - "0x3e98eaefd07ff2f1f4d6c67aa7ee3cabffd701aa0150f572521a17772bfd8d01", - "0xf44be55471f0b66b065a2465a04f6f47efb35a9ede93a9d8b22aa26d3c6637e0", - "0xb114c762f1f60a913fa570cdb207c279d20abdfd789d7fa62de06e38c44d650e", - "0x6f300baf19fff0f5af714e63ec81314d7de839d4f5900979cc9761e0ac325956", - "0x94d99e9025cec968ce5a80d82965bf72db62250c49131b14c0329b0aaa462b79", - "0xf1ad3dc366363b5a7c2a238e693600ced352984673cc4d0a07ba0ddc2b25c815", - "0xa48dc388a5dcbbd81e38b3e77178a4248232ffeb23acd7869375323f1aba0529", - "0xe995c7008184fe2d5b39eb0b1229caceccc8e86ef5caaa720f15e133e79a2efa", - "0x8bc6d112254905a89fdc319bc231f4d2c52a22d60baea4a499da91119a6872d4", - "0x16cceba4d6c7ccffe424c9331a78bc3748aa7b629f0fefe88c43dad9324a1fc4", - "0x564aceef2d2c0d4b8d6f73c10c234dd82570a9caeb572dfdf023024b61365f4c", - "0x5630bfb3fbd9625f2204846fc81b98774e95191dc8f7995ef33df915f77ce2d5", - "0x23d02e3cb1729ee715fe84775b969989d11c4ccd470910921b75c63c4e9e24b1", - "0x5984c5d4ed0af67154b12c73e38909b45e46e161d85d66e286d33b5ced150a75", - "0xddfc15bdbbd16b80d442f9a0587da4e304d3d7951ada0dc3d041f5a1df85a9ae", - "0x924c83566150cfdd60410c400078830bb4742b7286a6f8badd3e848a5afd0220", - "0x82847029234edd5c2f1538a71ff2eccf1de43e94f651557ba73caab59ef9faf3", - "0x15949ae538f10280406ebf73fd79fe0e77e937f82cd9d0c623e700ff04fa0a7e", - "0xd93edfcb2fb0c16e18b5c42acb751ff197ebee6ef13e01690b08f8e38e777e08", - "0xcb33ce0679bc3b417095cdecd66cbdd4cf5bfd288037d57e93cb6a542613c06b", - "0xa678db01074492af055c36dcee385b37166ad08a4481309945d227640ece520b", - "0x30b123bd31dab5f0dc65766e2b6067e5caee8a53af647b0c7d35d16ab85b2ee3", - "0xfc3faacebfc2c0ed22820eb332bb2f3d9634abc98d26fd42438276541f2beb86", - "0xa0d90324e7577ab7ab5f9667f9d7a0731d223f8edae77dcc9e38225b0206ba29", - "0x75e3bd20d6378133c8a4f9d0ad1121c485130d65340b0596258466fbc733d61b", - "0xbaef6a6c8b335cd317631b907f692cccdd730c82213755988ff7fb78d08fa754", - "0x03c32b933280b801ee17ade93600bed888caf283e0a058bfc0c73f47072f2459", - "0xabc98360fccd9567e9d555924bd815557cd5612836de1b38b63828db742ac297", - "0xdc6770ceead9f41fe0fabf046cfaf0be83f6c27bf28616a97d58c43e3f591ea3", - "0x4f9a91b13c9af1523071f1d4741ead5b6c7a9e72bc2881ede8309040b8ab686c", - "0x175c7e494c7f0347ffed5ce74eafcede61403cd0829d71a9df99e914774ff33d", - "0xe408f526449bec877c0d5ed25e677e8623ea68b797818b93e443179c9ed4d334", - "0x8f3346b57ad4a5de31df1b0b5fb5cac40ef0152fb5360d50ddc84752beae5965", - "0x4b2398450d192781d3ad48ed398fe7cf9e5e8a417b29661894c6dd43e83e2248", - "0xe94177ce0fc04293688209ff52cf53c548ac5b7022e7e60ee739f5c1711099a0", - "0xee6e5c8a30380746df8d9d3f3de53439fe0d864dab6ab5c349012d384284fac5", - "0x9fc9e919898303f537988a6695329143a77e965802be3566396f7a581962c3de", - "0x5277cff2542cb90c1698c7e673b7ceafd16cf4d0750272ebb51e3aa3fb02f3f4", - "0xea07718095d00493c662b21d0dff8bf747783c93897f6f2421571e2c7e3e8955", - "0xa8bfbfcb73a903d2937025226b38aefcfccbb3f9d3fcb0563ede2d9f1cd8ed84", - "0x795af85d146f9e00cfc5d12c97efa5073f19977afeae31c636cb3a6c9771ba14", - "0x60d169884296b60a45cc87beb366a513a6bb7ac34e6acf6066d9abbb1bb3844e", - "0xd256c59553a03c8069aa3dab431c2868c6dee246fcdaa9683b0284d462ad3fb0", - "0x1a399a1ffe8e7f5eb5fa69e70a620e1b15087988934a754a468ff47a7c2f8add", - "0x25cfa588df60eb1127c4057ba949004ef8f7f2681e435fba925f4bf8ce0eb54a", - "0x282d5589c98668c7a9baf871dbd48a3a8c263ea55452086ebdb3b4db440fb9fc", - "0xdd3cfdffe34633d189d9bea7513b890b6d54c2c0d12067d8f45ae72c258c77b4", - "0xc81f96420ae777252b04116d14bb80762c5169b73abad2e1fb23e8bb9334c2bf", - "0x88bf1fb814490289ecdd3d411134d42155a483b7225a496f24ef29d84df164ea", - "0xc6f0b78237824d0b240b8dcf1e31e75e93b4608a495fb7d47ed47ac70caa5aa3", - "0x10f4272adf03ae39311b049b460dce8579b424d3c169101a80aff74efc018846", - "0x52a6ed4acdf0766fc0a63b221d113e3dc7f9e22435d734972e3facdfb3447a8e", - "0xeb75f393b00cbceeace53bff0725e0fa3382e367450fc1c7f0005bb859467d62", - "0xd58b7c94861e7822f924356cf808c0b6ba19c100e49cd8a1fe2ca8a537bb20b5", - "0xd355030bcb4e35157543fafe7f204040ef0e0ecbd60bfbdb897add425112be2f", - "0xbe3ca964fb22fdb9c6c74f07381dabca0e932310cb88676144cd78cb374416c6", - "0x6417c82c4fa9ec681e767a8b3a26640d72c61ea72b1857bd61930187a54f08c5", - "0x0501ac461bf7f2e813ff8b58fb9ba936abe7eb0dc6ef0072f98c52f83458765b", - "0x6ed677008e96476990029e1ac8a86e4d9af83f812dc73d9b876c772c2beb5a77", - "0x9c35dd84c1d73d78dd3277d96ce4c76beac8c6bab498a8a5853970a03026b2c6", - "0xbb0b70d3be3239ac17b3689d67571c12318b51bc6811dea5e8908393d9a567e8", - "0xbfcc8fb9be4c41f8b26214e8462320e79c2fc126abd6e129f701b27b9ac96711", - "0x18bbf70cfc61152ffc64fa6bd21011e446f9d8d1798076e8841cecdbb2e25ccd", - "0x6ec57e3b3b13f8e3fc9298760ea47907c9e08b89bb7599c5cc50c83157a5b12d", - "0x1e681fa5a5d2d63ac23f45cc30720c5b33a3417ef0adccb10b9d9299f5dfdd15", - "0x63397c3ea42e3ea7dabaec5f3aa3cf7e15a4ff94ec745228c0b099928c2a5f1f", - "0xc8d14199fa6b134b84c48a44b9ef1962a9d08b34dbe78713f84ebc0d307c38fe", - "0x4dc0102f265b0e29cb403b258cfee5c73afb843b0805c9218bea86cc12a08503", - "0x4acb64d573cef699cb2d9036488a28bdb3d68a0d294d04c92cd198d42bb48098", - "0x872df3af6d40c5beadf565ea8f6cc502edcde941c43cd3024c812b2cbc33eaf0", - "0xaa24ebf00a407b1ee7e126cb5f396a1b4489577f160a7ec735e0e47fbf077abf", - "0x15e6c3ebacccecb59426bcab8f5845a60a584a18d5f6875431181a816d5dc0e1", - "0x3ae0bd8b42433be46a280335444e8e2d35c1afec926cd2c1d5ea537992c506f1", - "0x1e423a88a245221c826586cc67ea45dfea247c3e9a36c81ae9f0c0b5d5d3e5d8", - "0x5401f93723132c737589b457216dbf231a753c4c4619444af4eae9bc6153ee40", - "0x70d9a2787990c3dd8166357ab21985abc81a55eb0d50af7e19ec20454b314d4d", - "0x4ab7adbe2f74ac269840ae607a17824e8ec74054fae9d9b3998dfb162962e1a0", - "0x91fabfea828408eb161ac781a0896155ccf7d9cbefc3483cde52b35ec67883e9", - "0xaff4547e50acac2e3851620e541e96d7645682f225400793ebc0b959c6a09a01", - "0x0937506d4c9e37d57560bac5851795d6559e51df255ea2c64f2e119b88cc7511", - "0x88d66c613582fcf6df46773a1456304c4c0eddc212612b2dddab065b6051c8cf", - "0x2d6315542c9b30c8984ca951ab488906c78e6c84aec2090397d4a61ef26375b9", - "0x8ca8d613a382711420966787bf7bd541f517733d21ac4f893c282dd930f69b5e", - "0x1751120f6735feecee772482da8121e9e57d930d23e69cdd5bc039f43520b9b7", - "0xe161051a099cf4b605fc773734e68f46253efcd52fc9c7d7a207f956c407c606", - "0x3742dfd43498b7159cef3dfdb520d34583ac955cf8abb3a453835f3132877d76", - "0x1cb6bf586b0d422a986d235cd2cfccab6aae1ff580434bc9d1eed944d0c54d0a", - "0x3028e937857f2ac53e1d988fe8aac0f18616fb221560c69530c4399bc49db96c", - "0xf5ba682318437ed7770cab6098d356ee63c41cbb8d7a114ae094aba333f78416", - "0x9ff54c1d56a1977d406ef680e80850a4eae13e2f5b0012c0961a87426881088c", - "0xed99d4a9efedd66d3902ea4bf332bbc3649eb84e6a32a239c6fa712019f4158f", - "0xf9fb0e5082e82b4e3fde779d9f42870319e30e01b43f88a89f651c6994f1c513", - "0x69467611b658799b1ed8369ce39b66b5479f9601ee796a93bf57e94c4a840db5", - "0x8e1d27af1e1eef4038af7c34a142ebefc75269fe0991575f06f658afd96b293e", - "0x3a03db5ce3be82a8b47d34e271a7f126509d0f0402ee067395b4a6d7963d178a", - "0x641e2f3a93b6867ff70d8acf1dfe8a82e151c84d7561341107528f58e69df814", - "0x8b33c66fdefed9127a548e2ea61a30188d7a2b16b6bbf5c52d5bccdf860a47a2", - "0xd62cef231735d396b265e3241d51d08a90f6ec82267442ed151fe6484fd2f2b6", - "0xf52f27645bee7eb4c8f9c11e61aa11658240bcec7b6bef9c56149a3dae1d9374", - "0xbe6de14b25ace5ce862be24755393abdd07b3f4c50985062815139073e4c39bb", - "0x60e06bca41e0d1b136a7ef2476c0b495dd3443089f19f2e8c306611e40d5caae", - "0xa9c739fd18f5962d8b71215ca05f129153968e12634ddc7a19d54136de335247", - "0xecb51e8baa0e733048627977d8ec736cea38e501cb9256d7b5b4f264c4851055", - "0x634a99ea3bd706001327f1eb6fb79a9c0aa49a6517e78c1135095160152e3273", - "0xb9846ba9630ef1607061ca5cd2c70c48b632f285bd18fa2db6b4ade2720538d8", - "0x8ca68b47412dc13adfc72489a0371f5f2f0cfd5942d5ffae08a57a79b9c70ec9", - "0x13c9d7b77677291c415253af2508e66ae8fc09b547e66bd0372bfc7371b3379e", - "0xcf3d8c54e42a98852364dfc2a22a9029b944bea2361208262c149dca5fe1717e", - "0x752a1d54477a8120a7df54691c70c21dd399e9d84a576717cfcdbe9320a10686", - "0xfaa8c3a9658b4f096aa4c89aed1fd305062608aa73fb9d734c9d9205d2055760", - "0x96839db4f4ebcbff566b96dcec7c57de674b8075c07e6a17a4120b225618f6eb", - "0xd7accc2bae2cccacfb7b7bca6fa9659bac4bcc7f47fd05b459f8eb271725e676", - "0x37cd77dbc69588fc060a696827004b1d1f48e46b317cb82dc8329b65c4f2ea5b", - "0x83682e40a4dc120e5019eddcf84be4e42563904d1f06bae96cc5c513790762f0", - "0x4c519f5d6664f4441baa7cb15053d7a385c7c31ffaa52044fb48195d9edce9e4", - "0x28e1f389b7b0338f7ae494af7b4f239fe703ac53cb8648c24ed201eb3d0fa366", - "0x65d0b0371e3ab2d49d30ec178921d8410de8223ef4fdc4721d0a3aa1d1fd2676", - "0xe7779ddea50b161ecf429a3d382b7eb564306ad7c050da244a6ea2ec4336a85e", - "0x42ed7b3277a97be9aff896f3bcbb1a3ca9a1abcda194185f40aecff40dd05c9f", - "0x16151d4334d8e9555e2df32d6a58ba3caedc4cee88906391fead30cf7b6c1492", - "0x22454deb333cf072d9a19f52c64c232f4e232100e4097dcefc552c66cd037174", - "0xc77ea7b5df0d670d6828243b057169f25c1dd3a55ee23706aa16859254119d74", - "0x297b0d48dd676057449e91ec41a35ff23ca7101062c92c0dfb10f989be59b5f6", - "0x74b963f879f86a4bfe0233082129bc19095888f0d9ff99e09d835d8214de6e31", - "0x09b537b0d42a9c3a1a191c9295611c1ad9fa5f8002a2ffb990131ef3afdf2cc4", - "0x71b3dd8b8b917826609084149140de5e0b34f71e2baae4685d8be00784231499", - "0xa2666cdcd63be625dd08c7298d6bc06dce126e6a294240a4db43aa3aa0b3428c", - "0x3860cc7900f214952e4b797bc5ae198d59385d8fa747076b497a5b4a2c51df66", - "0xa53b70488cc1e45c1e11460c66ee94c46dae564c5a1cb7e3eb6796796943d880", - "0x06c7f6905ed8d559f757a6d823b876850002ea38697373a77bd9447ac9d34f60", - "0xeca8100c89ce9478abf32238bdad1505f3e1299915b6b67d1f5260ee3d494c09", - "0x06187fc14bd288ff503e878d0300b088dd2f9fa7c4da3193f321fceb4702a841", - "0x4b8d46ce312100e848366f8283558873f17fae5719f7f33f9a73df885fa12828", - "0x1d68bc807568d3d971d36d08f06c2e6d70cfd02ba03d322d7cf144dfc53c3044", - "0x0635b0924e22d1b03d1ae8bf9cd51a6b3479cf9e15e9c341ab97c9578ecfbebb", - "0xd181293e935a777d4b4905e7eda21cf0a6d48842b28228a9ab4e480cee7abfe9", - "0xcd1e363a1e2bf26e5f3c98a7a426e7528e4a24155bfa2a1a968a971d129af069", - "0x32ba79240b478b0b82d06adabfff6caa596987c07d73fec3907f4bb21aab169d", - "0xc4c7b178c63ef2f10860a346acd8d43be342ad103c41cafacff07bf748b6c262", - "0xf7c42fe2f081334fd729629f766de6919c41084dc143999abd637dde580895b0", - "0x2b3c788d5492557137bcbde36a3c77bcad3fbf46e93dc83c43801c13debe4a3c", - "0xfb2fd5480e25e6d50f22bf422edb888194e510ee40d112d21210958bc47d919b", - "0xfbc6dbeb8b5687e5360da7e241bdac501a6ed768e6c9694dab686adde5776cb9", - "0xac01b85031a280013440e18402e378d16e8b8cf582923597d4937bd9502a7951", - "0x6de81b17804834c0390ca350d4027b7a0824ddfb38bdb01f2922e240594a26b8", - "0x18ba82983465250c42294ad5c3fb634d372df537b67c1bd735aef7b3d045a9bd", - "0xdaf21a1151c73bedabb678497324ab939a9ab1dc3ac506e395b164a2daede36a", - "0xda42e99c8b304a39bf2ed10d88bcbf9ff527c1e3b9a5932400f331e9bc51a88c", - "0x563e2b38354aa19dd91ec0914f95852810f3f605e828a727ec0a69f54278be61", - "0xc64bc37db96aeaef1d1b9f5da5b50964690022e0c78015811a8034f2e10be4a8", - "0x96958617222852f4f6dad6bc4cbc79657170d2f9c4ea0a5cdbaf3ae723460a0b", - "0x0abac5a8433b40108cfbd385a3bb0298c069ea4660349927c64945eb409da78b", - "0xe5d5f48418141703f119222ec582abae55448128570da3ddacd758f112e67472", - "0x2491021cbfeee20e3a578b9f0508c85eaed8232d3ae1e6f074f43410ee373a57", - "0x353a4b80cc69d701510ba8711543f1b5677916ecad829c76740f21bbf7b1658a", - "0x74397d86b849a792c4ae5e8e65750a932310d1496a0ccd3f5f4170dccd707d3a", - "0xef520df7a1258440507525a8b1be9e60016a95a7da4eab82dc85d8aeeea3a929", - "0x0182f92a90d14a09e6ad6595d86dae389d297766dcb8d1d7a685bdaad733d2d5", - "0xe2b947deda76a4cc65948c3a40dc7ae7bfecc285f8881856bc55d4d8834f5ec8", - "0xb56dd5d67c8d49b5220cb8901a67525e00cde18ca52a5b26d09974c430b1c304", - "0xd5aaccc68b4fe4694c9cf7bde2d3c27a4c8c5df40232df1b875195404a762977", - "0xba7681f4f365a69625ec74bb1d114124bdb156767992c778ae5b49c4390438d4", - "0x838d298d84516b49a77b86ae27e300b1ad52beef517df8dd4b87d43960e51839", - "0x931e8b07cc0df6eb35d54d24d180e2b98e0ad3bec2525793511bbbb218063853", - "0x94db666ca733d8fa4954091dcc53e24fd1fc7e6135479b803ba45fde46753b74", - "0x4e311786ff11cb12e929f2509b5c7e94a87739f4475a213adf546dfe288966da", - "0x5a7be45e660da5079427166c854a81f2d4bbe2e326d0ae1f1d0ad067120c6c73", - "0xdb863b5b5109bd3f6fb7af19bd608c5a8836e2c0d8512cc438aee184ba97708c", - "0x8e21743089dd75ae94a2970874ccf87d8c57f2bd90c701d9c30fa922ab600f67", - "0xde96e7f8eb356b706754151805417b690e9ea613cb0886df7424f07f90b9f35e", - "0xd9af1f5dfa685f1b0e0b4bacdee2e24cb2448b9c990a21cd32ea85628bf00553", - "0xe61ae40a63d3cc113a9df987512cc6f94cb69caf36ddf68baf7b77089fd8842e", - "0xd32d2de4b6de7d3b9a8b75fe004b1829006473daa4507ad3c2bd74bb5473f2f5", - "0x5032a547596c291d8e0f20797dbe1b52896deb1b13a930b9ead43ca93ffab7f7", - "0xdf75524819354c93547474a730c86e285852736e3aa6a93a1397cbeb8574be5b", - "0x2ad84a52217a7b78ef30fe6ce5b36fac975f8eb996d89423e35d4de57dda944f", - "0x24273629f43c888b4ae4ce0e98babbb86aebdc304ecf7565e8f5cee13713e109", - "0xe340a7207222fbcd3a18df2e95aba462efff7806fd0ab5c79f163a9ad277239f", - "0x14b19088ed16354ec0d508d91100fa39f1c50c5b153edde1c7fe12b6325c3269", - "0x8ad8cf08a5d25b9798457a32ad4b559ceefd8086aa662e210abef814d8dc5c84", - "0x002ca4fd98f15c2f1c8eb360e3cd38eb102d6f93082e3f1bd43220309d53bca7", - "0x5c3df07ac15d8f1e16662b5ed8821e43f45b8adeff87282ba92b1a53434bfa83", - "0x75d277049869aeb977bbd1d7c371b6a9d84c3714834d1a16a32af5286acfed23", - "0x0bad0d61579e2555d6fe7f4cc514b674c67b589ebe5e7c5cc451bacbdd5c1318", - "0x92f15acffbdc999e32e763c32ae7a6f373f4864b2807de08e7af49c70f64c659", - "0x9443fe858cda8b2788eae50b66fd1d44280c58f022471d8c6696716f0322d8cd", - "0x9c3bfc75fbe747bf2c0f1015472e67fcb8ec91f40e9b509429ebd91954b32d25", - "0xd112736eda168795236314f0de72558fcfb104e2f692d952b16533446ba75ed8", - "0xf0671d0460f40c687b9d7d7a5a46812897f3e8289aa7913b3eeeddcf902ad907", - "0xbd8dff979715487464394682bece79900bce98196542df4479086aa7a28d00f0", - "0x615d56554914d61bc4da030292a1056d18f71728de4941d0bcfe8dd123253f84", - "0x826a5d357b7f2a007804bbe75fb89ac6f7ef3011f408a07470b031e476d49758", - "0xceebf085d7d36747965b6a2ea80d1a1e47c71a27f28584ac89e35535d2da35ec", - "0xd4fa150d101967f3d7eb60c23b9993bf9a93ef36bda6bb75e17c3f8e992a7620", - "0x8672059e26d3c2605d82c219d2ead47d94446c8dc1351b109149a0514d618f64", - "0x38064f1f84a646320bcbc7778596c25e9aae2e356548b4559aa447b6bb8d79ac", - "0x6f195e60a921fc96202810a55c4ba9a042685f20761fedf15a22b28198fb0497", - "0x8dc83f591d7eaecdf50fe1e92e0480d1f174007f5b7a351f377ea651ecfe76ab", - "0x6bd195f328b200ec4ebc57f94ddb36be5b77aa16e633b9ea8aea5c8a3f1f1b1a", - "0xdc1f7643b1ac9c9703e5caa148001f2e2cb7168775ad3c6c95c675d6adf85e6d", - "0xdb2aab4822e191e5fbab62ccf4d8b8e548f62d50fd2b0e1008e834edb91762d5", - "0x7100363198ee3bfa9317ef4e8455bcac54276b3a55b8c01873a54f1604e7b24f", - "0x9de02048489d873a3b3c22cf74d275696aa699ec103b4aff251a2f22ebe20b80", - "0x2a3cc09ec20941ee8b04bd89e38b7cdd9e9f0dea006111d0b1a61a47f77e45d9", - "0x082317557cce01fb189870585aaf7e9af411e7c8cf38b4ef7f101c96b0549b50", - "0x64f53c41e32b0b9b2fb925222bec9676a21ea39b558e2bec0132fd045aca03b4", - "0xe407abd21dc0cb6a76932ac56f7b018bb3a1e9aedbc38d59aca4c8776260cacf", - "0xa6686c4193a6b61439b55658605f9429082ead789e70629860260706a62151c2", - "0x190dad8ee494cd10a5fc87d5b33cad2b401fa8e9e60ddc3152182cb15dc4bf37", - "0xbd81f8a9a639cf29aae2534b2e7e9de0ca54329360fd6b5263b27d8c9c3320c8", - "0x60923c3f36a0cdd88877ab46cbfc471eb43313059ec3fc814bfc40710efe24b4", - "0x7bed716f7a843c885688ed7af46771588f563b63507f0862e822ebd8077978f1", - "0xdd4a6184be0103d67fcab1ed07b91257b7c337ccf5dfd651967a9bf51de0ad7a", - "0xb675cafb5bedda4ebd58031ea37b88d6a5cdc6c70d2302ef2c8bbca1a941a434", - "0x1e84b7b0320b305d21864238c1d5309029d6f236705e86ba557ac4ab3286306c", - "0x07fb4aee552ed17b6633df226091a7440c6e8fcef8defba0b74dc26e3f63bd70", - "0xaa2af0c4c0e3b5e10c6bd02f9834ea38650d21ee6267f31f59a94b65211ce71c", - "0x0ffd43f9155d4d98d28bc491a351e354a1597aa54180f5a7525800f366205d0a", - "0x47a3c45224065eebf34ac0c544487b07bc81e977380845ca3599af1c9ad1fbde", - "0x582a6e56abeb12b0904f5e72f292ec8eb7087a9ec904f704bbf4fb4b626c761a", - "0x961aa84e2f69cf7cc86af84bc5eebfa47f16f69f31eab4ddbb6e34b4ad78f368", - "0x2fcc76736c384389f7bcf80af928b1b2d5f2a666ca7c7233855a38e2f5fa7a16", - "0xa5f51bfee955689e2cfefec36f6fa11c8c39191a93d55003414649089dafedc0", - "0xc33e8750e8c0c9be14b844b61a6c1c6a05c762935a28811a1fb61b9ce613b8bb", - "0x75db0ee106632fdce0d6dbb847f756344f044ef0783563c41c2212a47e140d1e", - "0xfd48e7fd4bb7e075dec1c506cf23ce165151bdaf95902a4d33e174658c5fa872", - "0xc06795ff7239caed1d216e9c715b56b180c131cd8e7303518c8bdffda6a9a293", - "0x6aa82ce836cf55ca0180fefb94631376ca40e8d0b8929a75a011de0b617ae2f2", - "0xb9b8a68c9c52fee3911f56dcc301138864c45af8157568df0a25f1c4bbdd3985", - "0x6bf761d69df953d56be46933bc155b6d5cef72fb502470a02dd4f376f6642152", - "0x5a1282a8d75bdd8bfe98800b202b31eb8d00e05a7233bd3b94ebb724ccc78902", - "0xf7ba12d853026203a0ffdeea4b2a7f2c765552bc218006802f2fc3fae24718fc", - "0x20cc11d68ba309de6ddcfebf6af9f3dabc109e4f80b37a553652e3860e4e718c", - "0x1a348abe945c24781cc3130841d9bd7cd3f65a4ded62f03ca43e1edf0a3d5d3e", - "0xe49ee1bc38403dbd29dd9f1d9a0c30658766d190a99d88055beb8ebb3bf68255", - "0x8d11133a1e20b7c98a820626c3c7165b99290814807450582a75fb66cbdcc4a8", - "0x82de0eb96093abd04ea54056408859c5df792f9b9fae157912bc1612e946cbc0", - "0x09a05827e3d8ba4ef391d3a59499d3f4f0368725fdfe606b2037c0da1fddd04f", - "0x27afaeb9233d09de28c35d425a826c1f8ed5d9aeaff974e30bc8267119f181da", - "0x8c20e9a837f4ff4791d535285e97e0db6fbbb6f90650ad599ee8cb539fbc6fdc", - "0x145c283aa63d68999c2cf54b3a1db63e7e1c5cdc513f151620b7601af93c43a4", - "0x33a610d432ac33a5afd2d4f45cbc7d2d38c3b2306cf951354e8caaa6c80078d0", - "0x26b9f9916168a3a3824ec188e9fbb4740e38f2f01571cf6f5c5f797515420a6a", - "0x02b0b674e9b1bee1606e1b04d74cb568d257eae593e53291e02e3c63a5a50a62", - "0xad6a8970d964768a29ae2c0a69870ebb86257043282e901a08c83347f2f576d5", - "0xb3432872f6e00304d0c7f697e4d5bc84fbcb0db519b0b2d10bfc59fb7a66d0dd", - "0x801b0b76518a3871d99475a87ffa410966ba140ab06ba70bf1e0f986a75ea99d", - "0xe30da2b86208f67afe68b136fbad8baa2dc2085798178be34793e4fd28276ed7", - "0x56d15e4935bcd3441337544b0dfb1be964594dd15ede8920c8aea890c0f5f3d3", - "0xf2cd6dd6bde075ed422413aa2a4dcf7ea831e9c0b05e72a11284702ff4648695", - "0x8d0d6a0e37eea6274b66eda85cb955a480744eaa0ccbbf6c53a2138c2ee7f6f3", - "0xde0e7560fafd1f6145705ce76500d117e916a549c331466eefb672d5d1bb683c", - "0x378f9c77586f4204fb0eb4dbde4c1cd5212dff3dd00f78ffe4d0a7fa993b4420", - "0x38d96f59c01f5677a8f0ae74c85ab92f403d3e0d458dff74bbe30cf0bba9bb82", - "0xa167bb791f78123df4933c7ce81adead29863c93383fad587e0736eb9f62f96c", - "0x1e2eee0b810ff2e3647d4241f0ae3c10de6ab1a81783b141929ce29f50f1b611", - "0xb3da422014ba7a2b692577d4831ee8a2fa0e93075c6e3022b9fe87e589b03ab3", - "0x36bc055c7f7b0082ed73b69ddcfee537ad59dcb2f79f11f32302c781a44c1138", - "0x7824e636dc9b3c3082dc8d7dbf90b75a6694a149d1451070cee9234d3d1442c3", - "0x3a7cdb84f95330c17cefdc3618f67d67930923ccbc1a9233a303aeb06c900908", - "0xfd200a9779e710a0474fdaa7c2bf426748bc17fe8da08699c0fa863d0dde4252", - "0x0bb5f63f4fa916b3aa8e92537a98a9741dbd0191e8ebfdd1bdedefee6a03ed27", - "0x58d261dd02d2d38c4d9d64834659bd223a694780f8b0cd287694299099f0bb9a", - "0x246c86e5fcb56893162362ac404d498193ffe74b43516848c73e3d2d2f1ec680", - "0xe5094d30072956be53f7be3d77e4bac8ddcd8a73781cefd6731af1ebdcc3b9f2", - "0xfb3c6d47d72af2421fcabc66965595841a373214d33e5ae4decca29928f9b8eb", - "0x8c88883b7846c76de5512b190be454046d88c529ba80800db53fb6bdc9f5c480", - "0xe3d7ba4090d3273ae1d0a79a999b256d888d1893cdaf0f9bd046b01a2d35149f", - "0xd832fbf93a01f4f99da4c824161dac8fb5ba379d7a62bbb11630fa059eba4bc5", - "0x2743d2076ecb58f172ee8f2a7c1dcd3284a86f4b38346898c9a0e30cd1c016fc", - "0x375ba23cdd92078d0c1eb959a84e83f973821b7c5148c78c2b5c911ed89d4a33", - "0x22037d3589911f11598fbee2ceea39758667a6316b6a05dbe016c8f27c0ef556", - "0x077901299ce69ce115289009bbd864d5bc412b227c9d45b0a258b1249d1aec64", - "0x0f3356271576310287a00a52bddc9da2865ee028b30319aa238018d1dacac7cb", - "0x4a3d3a133af48e90299cdc0ce8360a1374c3ba7697def7d71ee7113172244351", - "0x32734db80d04af59061f913484a2fc22f0b13778ef049e02e8f9fb30e1da9d39", - "0xa3a472ea8349299a3378e0ff14369ee28337f73a475ddbf508e74259b998067d", - "0xbf358991d9c5ec46243f526f8c322c70f8eb6e5fd99954cb8dda31406cf492fc", - "0xcdd3269fc0abeebb8e44e74b5990413755665b3f7ea6ec763dc19091eae902d9", - "0xb2347bc4742f37f82069ad24608916ccb17e0b23097b6f50c6ffa672f9d7798f", - "0xc950786f85a20e53d496a7f6f539dc93ed4db152ff3fa07ec9ff545f93b98a2b", - "0x5524afc5be48482b279a86994b227152a9070e998c7a8beb8164024213cbe865", - "0xabc025567a68660848fd0063a75564b9fb1483d038cd5a191fc9bbde69c91374", - "0xec61a7238f379549a2b267fce0884513fcae479bce9aef046298cfd35225301c", - "0x0646761899d9bd075b892cb4b8ba2444fa83a8674013022b784e91808241624d", - "0xbbda1dec49e56ce2d3554dcad78a37693eb6437a5e21cbf05a357c2663f6e144", - "0xe218e9d37ba3f4544dfdc31e3332eff0c8a9b6d3bb10188531d4e2de4eacc3bc", - "0xf708a6e77a00c47a72d9f019165044d827a26d9adf51ea53cccb6693063313e7", - "0x3c9f9d34166dc61e2e7c0e15f0e61b0ca46462f7e136f0705c49524019cee3e4", - "0x0c4616a6f0f847fee88f1b914118c3acd207f7e2d84260db50137d1daa6e891d", - "0x5e34ae26c1072f07b7815190fdd67f5cb2605c849300bf28e9ea6c3eee400f77", - "0x15ae51496b44825cd74fc5d34c964b9e2764115d287e47bac9744eda09f6204a", - "0xcd6a8ea1da8d5eeba387281ae5e3cc2edb14b8c8ebdd87ee604bc09befd0fd6e", - "0xea39450403c2fefde5f54cba19b8fb2845c282d9076bbddcd89c4d030a7d786b", - "0x51a9808cfb305f3d1d2dcb5cd8355ad295ffd193f503313d0c23b631d70c85fd", - "0x94473e8d272904770c25c158fbb2ff05d41de0a1cfd1f0780b99e0c70e6da313", - "0x3b78c5f500f3723cdcd7225a83749aa6a1e1d6678162ea667df496a9a59fe822", - "0x3c02d338e7ab6b10a91e311dd0d7fe83bc62f4fb90559535e15f01a6a94f8908", - "0x254613902cb39d43f8fd4efdbee4ae29ee1f73df829239eca702c4c6b76a8056", - "0xf5a59c3ee350c1b5360a790f713b054bf34370f18e7fb3e68d5d1544dc142b9a", - "0x7d8c61e608461215a5190422cb8cda548f67de7d396c610a7043a12c38797f26", - "0x21f61007950ed1ff63140a6533b5caa66d6afeb768190870a0bfa56bff4ba249", - "0x35221c26f511f1d356dbc6cd33354ab04270417796b29c26cfc208fcc22a1926", - "0x7493f5f0d913201df01cf514d9209fc689be68f3759cf7487a0d9c942a4f0eb9", - "0xa28f9fd0a06f07196bc4cd235f86781811d26ce87ba510e9d089ff0ac48dfa09", - "0x296f7a79477fc94384c240d103d3899a0979bc7680ae6b0c77dba5b40236c5f6", - "0x4f610acedd15c3df59a079a3edf02ba8c3cb1375cb54a86f9b8b7aadd3bacd4a", - "0x78e6df69fbd9a8a51dcc14a9faa99e591f6b65cd7aecdced5e898c3207c88433", - "0xb1c4470ea0cae862dd84e77be0aea69d045149193ee2ede2280aec5fe2bf9290", - "0x2906203e1e907396b983b5ddc8f53c026fd8d278a7d580d770edacd560abf9f4", - "0x172486825d1472fb99a53996de84a6e58e9d1c25ccc9eff81ff660728fd35200", - "0x0d85f1ac03ed46541c171dc9e521d58e50c1059ed14591f3ac01870b0ce6f4fe", - "0xa327265260bf6252279cb97e7dbf25a423cf979d347251e2cd548f902aaa5333", - "0xd2465f53b0d477871e9979b56e1c4de2fb81f5ea6657d26d9142ba450f60f9d8", - "0x11c5da85c8ef6bc2afb51fb8c85d3e15e4dded355a55bcca7ab03fb9addfd9bc", - "0x8ae739acf676fefc410ffacb01d9e588fd94df577eb88c86b29bc9b97fd0b39f", - "0x9b626245152f0c1fe45650dbea9edf10cd7a4f4a9b9f472a4f5f58365b736b7b", - "0x2ad3f303486ec33231a94fe6899f8a6881c6273556afb9d43df10557ecaa2625", - "0x815535b3b87aa7cdb45dfb6e08248f73d50d2e97b3919b7c6d4be0db82ba736c", - "0xc5b2ee3ef00a78ddd19411529d9df0415b598d8bf8b0e9be14e0db3abf75b538", - "0x4a43c2151e9bc477dcd23bb690f59f764d1b4f40b434d0bbd229c2fa33187793", - "0xc98e003d7f67589e42dde11b6e5c4337e56ba5379ed36ba64e328140b66809b3", - "0x548d00d6d57076dad3ba99c12446fd704459ae26efb2f32f31ed8cc002d70472", - "0x220074ab3e4ab2b1478ea4e671da8f4a29cb63820cf444b8b8c80dbf55dc7ef7", - "0xa605579bdd11648f0569166a6b6b9fff1c5f5314e4a4443fb45e779b6ea67f23", - "0xbbd91c03ba7a25c5ed6d2c3efaadb9beac37bc41371d1627061bbd1b07bba2cf", - "0xe5a0b22f3733c62c253ec1d438a162bb523d600078b137ab64a68acbabbfd591", - "0xd62697c4e5a86182930e5f03370ee5ae429897299b0a089942d0affad839c396", - "0x441bd17de05582bccadff86e92e1093066042c74ee6dcd2a3d372fef2464a25f", - "0xa1c7340ef8700794a780d623c61611ec782a28e89744f2b438cccd582111ad84", - "0x8325267cbc3f24ec1ca175420d0a1efe55f32bba8856cd5649a06c1c2dda7d6b", - "0xa10890568036a3d81ead9346e8b5d272ea5e30425351baf87fbc87c85caf12ed", - "0xf99feda98b47b71aa95ee45df084689e805639fa816c19726e8a3a7bd4fa714e", - "0xafde69e66a08f8d67df3328ffa50bbff36e596342becb1b30de9d63c7ddbe779", - "0xe6b92570ceedb890e38cc820fde3a63f08ad816fe36690a8e0e3d590d2fd767d", - "0x8d8127ae7b04e1c40e690b67e6b0ec7f84ca3048579826f66e6c2f931d0e158c", - "0xbcc4f1260c39444a096c6ad54fdf3b83ace0c5b88d1ed08a2fc36539b50ee6e0", - "0x186074682f41df28b76a245dc37378308fe996b6b1c033daf582bdfdf6a99593", - "0x62d93c7126ac1ae0d815460a87ce1b7a2bacabdd7ce02fe34d4d8c1a62960a9a", - "0x5b6a7a8fce8f9f7181806ab5a3c84a5f60a7bc4ead1247735a43b08d225195fe", - "0xc848fb9925e445d3595c338197ac7d31296d9247f43f2a604494bd63e3ce78df", - "0xf40966a6c7666339a4c136186fd753079739732c2bb724cdcb6047a5e5d2ef1b", - "0x6d8c1765efdff94ab61b3b4872c1acae846e8a98c763fc7924cbb27865295deb", - "0xdda74969fd0e49dc1e9bbc04f8e3dd952ce0e9a98041c7599058bf481b57da8a", - "0x72ff550e2a8f2bc45918e8fc1deb14e4309eb8cf03629ec83217f06e457dabb0", - "0xe03fa58b28a8e1b601846bfccfdec6a290accdc467898caf0be38acf0cbe8e30", - "0x75c3bfbfe321a63b96c376fd1cd3dff0d06308c1749c5544ea7bc36b0dd223f5", - "0x75880a9c922a15652b74b9114bba464ac49626fe1df76d3aff3e6def1f8a9ff4", - "0xec8655c4f3280725ef24930f547a23988f57b407ca7962477921c65aa8d582d4", - "0xaf3830d825b5ba849d7a7fd8de3d74683191ca71eee0c5dc13fcd45892ae739c", - "0xacc6f31736270b88b54c0b51afc6c3d4388769a9a76befc1fe2f8c72e4e62c56", - "0xa534247fc228dab8d5d42a2d8aae86d854deb257a81c7ff19131656a3f1aceee", - "0xe2895527939deb6f2e6367642c0b6b13caa8a9888338ede14c60bf12bb5a54da", - "0xe59ac0c8184eb0936d6f5eaab44aefb441e5e2d1fe69e290868245b04935d924", - "0x48d2dd98705594a63855f3c4ebe02695f6f67b89703c3abeabdc11691d6aa10d", - "0x7e58bdf9588e2449e7ea947d05ea19c698450df9cd188882a23f5007aaca9e7d", - "0xa0974b5f82e5c03e874a4edb97557450a5280904c35d863b5f14eb1860caa681", - "0x4ddd9abaa7c78129efcbd0a47611b735c69d876626e7b13a5c6b6cde4ef6b744", - "0x065e3d364e47bd0f98ba30a89411954ea051e38b487d4344beb6fe59f5bb191d", - "0x4732727e9fd520893173d2a334a0fe55ac63dd9b49956eb13b2fd89a6e686f82", - "0xceb1f7c0b101f66014a7bb3483828026af59328c0a192eaf6e7c04eec97c4077", - "0x87d17806635d4f607567d24f1267b4a55156b92d4021d22dcc312af69a9f4e4f", - "0x1a865d70134d23472644fc40d4ba988f5e9ce3d24c43c39eff3fbdf80ad6a2e4", - "0x757160e251b8c79293c218ea60e6d3b453bcfe8176993a35ab69b067c5e9e2f2", - "0x1590a6f60eb7ade8bf7ff3d1f00bde5e06e1333b1c9c7ab3aacfb7b0d2ccb535", - "0x4262d42ffe1b9b0036b63a4c70df1d9bf0dad17cc646cab635757e9bb97804f8", - "0xdd1e6c9526efe954559d889158c5a0acc6ec7b9184b4323bfdd3205a25863424", - "0x3d713007089684f50ac3bbd9bb4b88dc17652ba2ad0e1e4e980e25ecaee6c63e", - "0xe031bc30250931e60bd8a220659fc868c8b966c34c94c65d981ea99867baf8ce", - "0x646d9776e8465e4cbad03ec86c25704d39f2dee031dff68d8fe4675da0f3a3c3", - "0x73130be5f9c034f7cef8e297497e6d3905ad9ca28ddc6ae4606b2900269204bd", - "0x76e319544cf0c7c037d7e7dfc5a22cbe8e0f08390f93b985942953c1c695ad4d", - "0xf5e6b2572536543da031afe3d1a085191cb363405b2290c95ea2b58a2777502e", - "0x07c89313a0f9582709438509df2eff3dd71d063cbd7465e5e704915583b105af", - "0x4bb2017c31178ebf59a614f3fabf7c3c4a0b52fc560be65a9ca018dd10fafd20", - "0x1aa73d4ca741cbee068e178e9457806cee040aeac414f407ec03be19c57d1427", - "0xc6f1b04e3b6d58a01a3f08a5adbbc29d531301e152b9e952268624472c4e53bd", - "0x99fc97c755b1307b937fec8fe4a90f874f62a734a19761976ed178dd1f66a6b7", - "0x1f60601cfebff679cd55ea8d164984a902aee16f9409916e30f12b83d9d8ddb9", - "0x2777d5ed02d18c45209d28adde18152b50565fccffcbf792fa9ad08092ba4f5f", - "0x081ad560b5fe6c1102d728e35b89294da36e6f2abfa7487b069824ce07e31067", - "0x4348d38b71aac331b929c1db4e33a7e3ee650dc7d7c7944b24b9c815709864f0", - "0x6522d302c92d109bb7a481ff1ecc01b9f9415ea1e447e91721959f5cfc64b6d2", - "0xe6e8719ed1687434dc226626d83e6a8cd317418e3b8feb41b677087e9c848658", - "0xe05f788540f52a58df08bb86344e1a0b8bff2c29cb4cca07b277e729ae20be35", - "0xc939ff4b5cae98c9b65bae38a2a9f0ecf7fab9dffd9d89f4c3c43a645b6b0ef9", - "0x3da552ed48e9cdf2325e58320e79083cd45c6c891e1ca95f30bd9a6cd74dca79", - "0x46543e616a4fecf94cd4d92ec83a836e072d6e075272ab3626927f661647bb42", - "0x10fb4585c8ac92719b0dcf6d735fcf3cfdd3fbd5a56acd53be227a3f96df61a0", - "0xeb58e384a7f55adcc5269da55ef4bde232dd9b4179757619f75a8bdba729877b", - "0x1bc53b776541a38ddf5aa1e21137a94fdba7a76f76b511b767474bcc8d6ede98", - "0x8d7b8db0737d9ee9612f232bdcd1c35be0a8536dd2bea3b4cdf79813391903e7", - "0x36a2279bdc7e5d17c8ba0479b563a5d3304f6e2ff472d534ee698315706cd4e5", - "0x49c45d4b2e3d01230ce8072d8b55f25b715b87a0f8b6c82cf420429435e98133", - "0xa62973c2b8c9e0bbfd28137a2622256e5094dd6b69003a84cb13ec22c57cd41c", - "0x0c9552fc3306720151bef2a6b13a24560b932e0d3db36b1b167d1afd8aa7e341", - "0xd40c221db7809051f8204e132793a7998f7c1b285c3a2f52a1de9d0a0262b703", - "0x77bd0c7abfb7ba1178d75537eef04a618a61e0285a1f4913d414dc1191fec41f", - "0x6d865ddc6512a32b54671ff7c9732326e967aa0deea9ecfbe811be8a66247c6b", - "0x64e4787de14840b123064911dcf83727683f4b59a1a60b2dbd2301aa50e150b1", - "0x1726f22f71e69d3e919702809f5be7b4a855f127427164211bbb83712899bb60", - "0x7a0ce836320b43e8fdb8b1789af8a856f97ed401167309c8b0eb7a99f73bf41b", - "0xcff5ec573970e3984409dd50d911dae041fc3a51d2035c481985f2d36a40a018", - "0xe308ccfd734d243298f65be9dedcf0320e5fc6ffe28bc18a4abf7cf30869fbb9", - "0x6465d11dfd96a8c36c86265748197b9ed81056189467520d048e320da8addedb", - "0x6da91a602c5b73550abac25299b46a2f8727c5f156c1a7ef6912cc30ac60247f", - "0xdf85ef603adbe64ad1d06d903bec6d0a136ec88bf4788acb4b1d6ef256c4f342", - "0xfbf21ccc3a80affb14aa36fc08caf0cc6babb271becbf5d7f8778fc2e8e2cac1", - "0xc9f2bcb111dcbc477ae94b7ad5cdb7747aed186c8336dac2f04c41efb8d9bc68", - "0x54eeadf4dc7b7d9aca271a0e1b86b1a2cec0edb59da9a267d2254a635bb888b4", - "0xcab9c1cb0ed4ee12496d612fede759e40ca4937d21a370cddfca557933795f5e", - "0xaa53a4d43024db7d7d55581b7c690d2894661b137dec89a667ee60a0066df278", - "0xe947f3e7cb27ee9acb3e21771fee420b1b8d95e8deead159fae0cf3d3bceaafe", - "0x9111f637e6470bc6b200fa0af8314fbc2a649432f665fe505ed6c35782941cc7", - "0xe07f2cddcc582df384760910f1e3b01d25c4fb76110dfdcc565e89c179317484", - "0xfe9f06aea3dddcdf1baab052506a89a671354e36ad00b0838414927e2cf7fcc3", - "0x84c6fe378564403f23d29c3d15dd1b15e6d376fcb9a95dcf6bbddbb32e18f154", - "0xd31439e688f850e75895edcd6af76c55a2d9288bca689c6955e3f83e621ab750", - "0xdcc931be9f3ceeb04edb4052abe56b79fbddd84eca955392801c527923178d6e", - "0x72c462d90b888f78410307496dd042aa6aada8de17e2b112bb10f245adb89f88", - "0x3bb25b18d8fcba475e66562b6a685a18b1ddfde6c8bd16bce45e0dfbc3a54467", - "0xe4678a3925c238589fbc5dd61fa3b22f8b6893b206291c5982ac9ad395f45724", - "0x1d493abec856ba109aa3e21afb621510c1abd38875ef1decb5d790f303d8322d", - "0xc8b1820789f1aadc67b6cc5f7f9a0b9018bb4aa274708621c036cf670db899a6", - "0x116d77b470c6d37dafbe4d2dc110d2dd92420891f18c2f5b8f43ed9341304502", - "0xa9b47217de308165e87d8a2df2778469b4304c39cd1d743bebdefc7eae435832", - "0xbb1e6776f78c94e0c37119952ab925acfd70cd9c9b5ec8d2286cceaad547d537", - "0xfbcaac553ac391cfc5578cfde41837465a132606fdde27e93706c64e4024b4bf", - "0xb39f16fc4baf58a30a6cc625bba7a6ef7427541fd3f44ec158463bd74494f8cf", - "0xf4a3704d5217afba230999e16a8af8c0df77a236eae8fc250aae3b0ef10c704b", - "0xb1a8cdad34ec1ef934bdf49dbc910b4f23346fd6fec4ab15617c77b539b9dfec", - "0xe773a6a957a4594421c4b682748df2ce0924c8299caf31e821d7f2da89ef1b0d", - "0x80703bf02ae8c47b20cdf35017460945d31d43c9004307a0f68fe15a79ff4422", - "0x000aac49cfcf7479f54da63f6cfb15c358e58cc50dcd4f178c1d48c7cfc70ac6", - "0x37359a207f2d1a5d483485e175a25ef1dbd1597593489e03da0855d5b73978f7", - "0x36649fa2d11c71a4e009fb10e118d00e6bcfb4947c7da998042766aa65509e2e", - "0xdd367d7be52578d809f2117f011bbfab36e9f10025248764f65b49c3e4c6f2e2", - "0x1100529aba908d0134d124c320ecc5ae5f68e55e2c83d81e153b9b84730e0348", - "0x12b9176f9dfacc4c0e07b233a0eeac51661c9ca7bd8534bb324c72dae99b8869", - "0x141374e0e24f1d70dfb9fcd8f49f42de1208cb7268d18bf11dbdf60047a4373d", - "0x5bc84c71853b2f6ec0e7733d7b12cdf644af07746881174157d25046a3cb0c15", - "0xc0b190e2f49eb4a8496985ac98feeecb61f8f103110cbf4b0f404f086eb90dc3", - "0x1baed721a6b29aaf434b0de72486e92c5dac340f846d0db2533aa74ab58c2fe6", - "0x7bf7d41ee40b8a20bf80ab71b9674ff474a9c0b2b0b3b768f4d177b118f55021", - "0x461bbf7146e4e95ea95add280d7b7199a5dabe4bf369dd0bbb6d74eb363eb399", - "0x38728b104efd235331b7e0e2cd519adcb8333682fd48e404dab19b5a0fdc1eba", - "0x841b6488a00830c28b4b1517134f01a071015124a6202abd48d7440b5f6464ce", - "0x00b07f0c3e6fe366d115950cace606137c284c418e6353adca18df07b4224183", - "0x09bf2e8d2d2ba69603ee2aadc58f87dee12a0a07e091c7cb98e18c00242bfe98", - "0xa94a6b1b9cfc8c6efd37e74635630eb2a5f4dbe1a6cea2d2f0b9ada691f49534", - "0x995162698367b47f8eafb9f2de2e8261ef17ebd9ff4565d6578dd32021b4b49c", - "0x51728725af93c6fab7f955cae9158aa0cae132b7977efb080320bd5540d4a246", - "0x7a901c710bb225aeb851f1f5b92fcf3dd1526018f34bf94cfbf0081b9e2bc252", - "0xff8057f4427717a343ac8a056043fc6f80ace0a9166d263a8d12c52c7d985148", - "0x3f2a6a04434fa68093777e69a0648da8ba8ae27b6264ae26f91a0322ae6b4273", - "0x875175a87bddd42be4f2115630976f143b7804da25737dde75f373a9da7db767", - "0x0ef0d47ca0cb90186b0db9b7f69438dd7d416414833b993d1facea8c190a2cfe", - "0xe70920e1e8f41cc04d34b2381747674d64dd87c892dca35cce6be3c21c5ff74c", - "0xf6bf1b5438ad9b45d88310b11340fd5f961e0c3f97d25cdab298466485ff70af", - "0xa86b8867cca790d03b4508e46425705b5755071f6b196a484edb26eb77d669a2", - "0xb2462de4b1149fe1c462cd4a944c5800209426be3196d28432d22d928a6e3b56", - "0xdde87562cd130db3a4cbdeb300e7eef5ecd884751b9692b3530253da3b426d3a", - "0xef6f3bcf6cd610dce1327131251c1febcfb2c8be013a2cdeeeea1d7ed2145279", - "0x49c449580aebe61fdbbe7b659956cdff5d34a3d7078f2d531e1dbf9e78fc707f", - "0xa7d87aa0df5d0f8c84f0a11ee2c5d00acf63cdbf98be9244ab37ee5c705c1991", - "0xa8ebb8e6ad2015dace964ede93c8014d4fa3439aab2cdca09100c337be0c87f7", - "0xa5e855d01efd43ce43dbf196eb94199ca4206ae95fa293d2d43dc58ab69eb5dc", - "0xde56b2630dd3988a67d4c1a8bbfcbbcd90c99f0162ce697df8ba5a2fafb38681", - "0xd1d6195544c51fb80f41bc2ee4ee73e44536d8b2d2f478d719d72f0b7880c09e", - "0x2691de4f1ef0d2451f07454d5419abeb80502f4460bf365984d46a7343d47239", - "0x3eed848da0595777b65d377857ef1097d7c0e9d812bc0b1c334e94a3cddcadf2", - "0x82b5df95601fcd73e1aca3706974e9aa9f704d02715ebd750fd0603522850e72", - "0xd4597a1d9e91391da18fa148006db4f439ed269360a8415b35ef74eb3e767f5a", - "0x3fa8dfbe6d64ba346d07559d4698263e63d8bd456f114eae1416bb993d99e64f", - "0x4336ba517815c335dec9a08e7d1857fd3e668a12dc8abb0085193cc6dfb60463", - "0x10939a82565c112b767fa5d4c5628a670c5623f1c417a175d09becb077aba66a", - "0xf3211211715089b537ae8c270d7bc0952bc26994d070ae4692f1aa4c850f1747", - "0x719010b1fea904cb96f56b5a16c730839f030fe8f967595a2647b57b67a7ffb5", - "0xf6c883fc56e57a70259f1c1b56e94581efbc18115a13e7a83560e32458a78c6d", - "0xaea535f44b812fae7f3a7e216d695c4b709cfce4869ee4b0470c6df99a6abb06", - "0x9e659a2d3d72b13a65fea0396623edd3c2491d309ab195ddfde6e83832bf6764", - "0x35047f5b4aa180f07d47273ab0d9ea3dac5bcaf5ff3a80ae713427a3aaba2f1e", - "0xbb35cec8f1b8fc9707994df6b93dba18342156add6290dc6f906c8c06988b080", - "0xce5aae3a026f15cddd8bcb904ae984b27364c85a1db01669eb437a1d2ec116db", - "0x5b80480132259b9f159917b9af112113ff6ab2c9cd3587080c4b45118c9f5912", - "0x20ee0b82e04f86a6936971893aae1dd6c9f4a03b78d0ca6e5af1d195d8779b7c", - "0xa4a90b7855d6fe80b403c5cdc32405ef1156ab83015d8a1634560b4046aae931", - "0x32e97984751c36a6ab0f651b4675d70c8b4ee461afa7daae6bbc65760ec7029d", - "0xc1c17b3f900bbbaf392ba82c480c90b706079ae1c559f5edbe9e8cd56b0f41f2", - "0x4314478c7404a573d1e17600f07209b331917459c6756de910a81071f4e468b6", - "0x6256928f29827180db86269ec33ca31e510b8c2bc287aec00281bb4599cffda1", - "0x91ce6107d89e783bfd9887e9f2cf180e029c86886287357cc36cfc29fdfad94c", - "0xd5937778af97763ed36c35a9955b1f840c5bab2032b3418c11537f896596af75", - "0xbc3580fb9dccc7f6a214e4bd3c0c09e2e9a8b8a8e2de20c841082465e9fd64a5", - "0x3a1936cb41e17890be0e162ea95ab908f0612c20fec62c22c2bd7ff1947d0482", - "0xfc4c9e86ee1f824fb446a966073bff965fd116b1618904e9a8397cd586bc7107", - "0x6c66246c94ad6c8e2b8b7bc90690775338c238cdf431e53f4382244256a5bb8e", - "0x3e56991487b66b41f209ee749d817dfcdc1aea634ffb0b2125d4a086053f9a5d", - "0x6bcfbd7381295875e2d7a2f1d35a96320b0d222ce8187987b9ce693d1ce0a5e2", - "0x4580fecc6d2f4f9e68053b3067b931b252e5140598120fc3d593ae2add79da85", - "0x69afbc59d9d5f2aea003558cfc32bc0f59fbb28bcbf048e83e67dacb2f051a9e", - "0x6f20a07738f02c250baf47779acab06b31ed2713891621cbdbc3a33cb1a0f1bb", - "0xec3ae039172c3f35b12d185048c7ae3e9ebaa9afe3b01fbe9af9eaa8d132ab41", - "0xf8953caf4a7078796d54a797424db24f42e22a1257110f429de39365f87eb167", - "0xf83d0408a57377c2ef00481c15f0fa35ff5bbc53913456f2ffdd074614b728d2", - "0x120474940e643c946c9b1d0411ebe85441681cf7674dafc7f437085b78a26fae", - "0x7639039a138a51df89c0c06c08353ff3baa86bb5f4846860b62727ac9e98b75a", - "0x0c334c25b7bc1d64748cf6b1a21b64ca859762c239b2bb63aa66f0192bbe9e82", - "0x91bc6284b38b103e31cf20d99b8f94a5f2a8714e05ac021b8139e51ed97034f7", - "0xa119da5d5daf11ec238315f7eb7153c980b7df420896759b05d6e0cb9c15b099", - "0x478774c200ade9d6bcd6ee55006191dcd262829396f5d1a33c5104838fe6a998", - "0x72fdd84d4358dfb09c172e0e91f57ef0706337e9e9e6de1faf28a5ad1993cbaa", - "0x40d5695aa29352d0b03f4e367f03d50996a7091f5210774bea024421b4ea2efc", - "0x5ad627cc00bc5fca0ad8ddf5a09d4e310948c41c54d8650da28817efa05fd8d3", - "0x090a72d69f2255810ac423e447d0118afe8fd4d656d198f9af6fcf16725c2cb6", - "0x16ab98a77e42ca0084d5b6f0962c8d9729569a3ee5468f404b31046d710be31f", - "0x40f3eed9711a132dc483b6a1f911d386228e67b12d23d9b30c4f476bc7869290", - "0xa92722e58027878eec3a115f41467b420af8c4ec901f8fd8b2cda0208e526deb", - "0x1f341f622cba201761ace6fc164b5ffa90c32cca3379a9bcdb0b215d347b2c1e", - "0xff49ac00c27cbbf5da17956b19371e5ae8a288fd6ff7562b7f8f55d6bb356bdb", - "0x6a856bf3855f801748f3c259465a30574eb720db4e4547feaf9a6a3c8fba9b66", - "0x4367b7f1597bfac50a191888271edb84e9ccbe98340a3e896abc1410f6c2fd49", - "0x3a5dffd2b7db4b4437983e21126581c6f0e5b2b2fd7a62e3b51caaf415a7488b", - "0xb96ba50acd12ffd0e253514b8a9d9f8a2387a35f6eda3a63666e7a0bb5a74536", - "0xedc56a3af991603540ab6d8ac47c383e5429213abe2bcfa6e48ff9b7ac4df978", - "0xd9248991faddf6a9e2939921f8129a2b88ed785c0f0e41a11c16ff2ecc76945e", - "0x788ffda4f94d6cd932b41956dc6d48c04b17e75a019ddc66a452ee0be582d324", - "0xf755360190f6621f8d319a0a3169b62d0ad47561474b705cda88ba44b4ff7f22", - "0x412e8de38edabd1156e6c9f948c9f9aa0c896499f77aa5332b000cc70053d868", - "0x8ed82eae843f37e7b41dad6a309b6e2deb3e7ba09ecda1083e3896e593bf38ac", - "0x450ee983d78f5da457d1d44e83c2994194bf0f88d16365385da07a6475dc278a", - "0x068f39349ae7b94ba18f55e5c56a4d0f4fee5f3d6506c91dfa486956b886cef3", - "0x1e0ba420bf0a554523d73b0d7dde4ce1fe813feb445dad74913fc0d60a2fcdde", - "0x51dc8f1fe4e01e1ab6577a8e82506dad9f0269dcb4fd3f355edcea3565c2759c", - "0xb1dab28ba4711c54adf76b9606b6d7dcf2b9c6e2b5957e9e97350e5ba703a3b4", - "0x51234eb88a707e5d6844d09c1549a2381335d49cdd03dfa92506713724c25591", - "0xfdae48e9ed96dcb8eb3ccc35c84a342e9e5314a8bb04e5e9dde16e9281cb918a", - "0xf9bc67cfc4401b08c467a61590909fff1442eca8f0be2780f28a5a9116a08655", - "0x53212f1b630a1e52f27d7698ba7bc9af6b94178a7e57ff8861a8c9d0ca9924aa", - "0xad4b53eac401436504a3768f2784fb72ad48ec2ae1fd6f80e842a3fe26836be3", - "0x11eca84857ac81b5085dd50a4a10c8f032150c215ab8229ef4335fa8c6340465", - "0x41c288fdc4d9a9406e987d90b11a3728ed3c9a77e20bb7e5ce34d62ca5166b7f", - "0xa73bd71d818dafe4633209ef735c6d58b086b8c805442bb57fc46ceba9a7517d", - "0x80cf0b2ca45900bd5705c14c025c53e1cd4f180130060e8fa8f7112074300c1f", - "0x5795c53dbb9fe7e3a9b3998fc213a4961d6716d58e2c9727d3aa2d5ff7758cc6", - "0x18d7ea60dfd5e763aeddd204fd2654b52cce96a4737e665e67a952d7f9d40a32", - "0x88955311540d5b5333c728f976f4bfce14a07839fd3c4d9d8488a12cf99c38d0", - "0xf818504defde32f54d398b607eceaa073e33f161eb48f606cdcc203c38490577", - "0x845a911cadbadd8800dad80b820fe953953df4d0e2d5cae24bcc2027a6ddc08a", - "0x35a1001cda605ea277494b223a6835667b8ecfe4b5f733444bfafc760efc2d12", - "0xbdfed38c959847df8ac6f43a301355fc1ee46ce0906da434a4db7d05ecf1688b", - "0x5f1d4b9dd2efbb6bd0649c23f214b055a14f02643bb75b14754cc2af4901825a", - "0x6a8d121588d21dfe2e94a38bf6aae3de47e513917a61f5b2d75fb5ffd391610a", - "0x0dc0cfebad3445a400760669f16d711dad869a4e87bf579d0745e6307b1203c4", - "0xee23bf9111193c3cfa4173a224752c6e8c52e2b87327d6aa6164cea231d29b6e", - "0x37a2e1540239c7ccfa424d72f2092601873e8d0ade78e4c5b422a7a3e5ad3bb9", - "0xcd9b85e253cf016c1e1d8a6479387c1d6e460bed771e6283462064c377aade65", - "0xa1e924b638bd740dc0a8710c188d3b266e3e40fd1b1711dc3f30234051d1c552", - "0x6cf65402fc320eb643b795fcf3878732799389d54f59ca521c9d265f93b5ca9d", - "0x88c6a984e2d74c2d6ed90de3e7341764e2c03e640226c36d895254458f18799c", - "0xb8947441ed6817ddb0206da8ce4eedfaa41adcc461f13dd260559f92cac0507f", - "0x92f4e68423c159cee14f2feaeff830ffd973c386bb9e09a8620024a36814d858", - "0x673d7a32c6c60c83431915bb032bb0e41f26bb0175ecae230041070c62a09042", - "0x7229d4e3eae51188ccd8cd1c65dcef8cfcfd42ecf39edbaafdc6ec49b43a8afe", - "0xc1087cfd4fcf9f1447f22ccaff5acf35148162f06957002f0a49e85cb703c1bb", - "0x08c0e8cefeec470ed1c4de8117a55c9ba975e3ea485a284b4944adde16a69c5f", - "0x3c3311722c540c28ff86b1ba17c830c537b5eb8fb60f3957404c3da7746768d4", - "0x2db506655cdd06836d09a478ca79cee997f3dbc58bffd49d89b91f449b7b04a1", - "0x9b648bebb498ff6c37d4101cd78f1b3982c54dbcf9fe2c29ebfd2f9b7e04f099", - "0x82c680a2a3eac1238adddb76f6f18bd28bb4818fb30cde24863dc197dc8ec13e", - "0xcc8ed40abb13449df851c4694088283228a9eebc5d3e30bfb251abc02076bc9b", - "0x6b7b737c5a012fcebc781999145113a89e44f1275938201ebbaaed865b78fbac", - "0x795483f3990d7056e6557356e0ebcd0c1a305534b9ad22c40977a471ff765008", - "0xd50325af06de4c2dd53c51a1b68a57b23a1dc9ba1a1ab01299bf3da48e0263c7", - "0x481ddc79fd4eafaa1405c85748602a4012a3ce668021399a309ad7530f17d1df", - "0x776e02940d65eda493f5925362bbecb2e19b088fd51a044c5b5091bc0908edd5", - "0x89dcec4b0df855daa6ee38c26228d1f0f83e3efbcdb8c9f743ee544559f880ed", - "0xd888802df592a2c8779432354f50abbfd89e826795bc3ad204a8329031e0f612", - "0xf148daf80df025a45bd6767db4f260685ea2c8efca1f4f2e1f07a1b46eaaebb2", - "0x42f87796c2eae0d78af26581f92960e76582636705fa747d52f94b5ff9dd672c", - "0x5a7c25f42a4821d4c2a8621c8fddbb0818df1507fceb2f9bce29b737864e69e5", - "0x7f339843b3a45076d4bbac3edce392ce978318ce4fe363a1a5e8a851229fea4c", - "0x66d1bfef48f6b3c695bcce0e1c406bfb413cec8358c62e718880e9531a2e1188", - "0x1672dc0afd5f480fafa3d5d76632e9fd24bcf2f791c03d4b79ce26f2a6b43c40", - "0xc00de487ae1557f6dec118421611a654c3b6e9315f807e18e9285ab698d62de4", - "0x3fd80e20d89463b793ee947515aaf2478bfaf3b76c476b57c80f594b3601a4c3", - "0xeb5dc70e6d66098fe7f431ec8438c3c0ef664fc449d228fb3717cd643b0662ea", - "0xc95e9fc217820b220a1dfc8d80555f3abde3f7811f7719084d5d1439a65b8cb1", - "0xe80d667231fec8e334dd88133150bc6e5aef23d4dee2b15ff9815c191ce30b5c", - "0xb35c99fbd6e410abd0496238bf7e66d68b2c452848d852a46ebbfece862c6f46", - "0xd434d46f3e94dad8a411881bcae2db9cb99506ac8a0354c50586cc81c1867f66", - "0x360bb1940475abbe7168c9de22e43e1e711883e9fb614419dfc23ee3b301c1d1", - "0x8cbea95b1ddf914937d23916db6083e6044b8c52617a71ed140cbf884dca696a", - "0x3cfc521239386fdb6c7c02dbf20960672c5118b5273bf51890df9ad31a388c99", - "0x6e73b52562133ec4a8cd389a352af64705c2a1318ae99b2dfc78dcff1d72319d", - "0x86e6f9bd9edcca335b9169738198aef3a541a6b41bf58274429a29cd0b3924a8", - "0x9668e3aa0d09467be183c811485203df5e10f4e332b2f033f4cda7369d90aa3f", - "0x4b5e3df053f882204387151c1e7120c0f7086a9edba0d3c2c3a505c0d61802c5", - "0x634c9245fe89685be14edb30de2543a878c97fd7506a9b186df5e064b286165c", - "0x10719cf7fb4a7eb4b70192a8494dc071ffec3fd37a17b7ceb10bbacc4cd3c132", - "0x36766864b6d50c50ac2b75e2b335a2b143a1954d61f57e7827cc205c33dacb8b", - "0x4160390fedc6faa039c11711fc2b9fddb40968b534b370ceed6e37e37a0fa437", - "0xe1a28cfb5ae74d7adc0e0e0dacf0f0e197af1ab27626de8b5a56f4dae938a8e6", - "0xc2251525dcd1a93c21f4911f525f8ccfc36a6e4f90b4e275c8bb788522607618", - "0xad403b7913b7d705db6628354f8621dacdd4c91b6bb60b747e6ba6080e37e7e8", - "0x2f67cb9ecf5c4678d1d27779730833825f0bba23ddb3b3c2090e22ad7deef26d", - "0x07df980ce9fb75bf368e179a5cb7b4af1c695aebb0342f25d00e421016281687", - "0x8a56b31e9b9d3c6b2b153a32c99ef4ef65ac34911da645a4556d5813d6505283", - "0xc49d0910f95d400041dcbc98d8e2d95261c2cc9054c8c36a94cd18042794268b", - "0x2030bbd6de4e34c41df9a5471601df5980773ffd594fb8a80c2619aa20a7d427", - "0xfb1ef5d538b7db8c1b712fbd6002357fe95aa9009ddde8df604eccbd66b57a0d", - "0x7a623749e4bc69d3c1ab3670dfc992e263278714c8876515a99a06ffd91f63a0", - "0xceb9b81c22f6808affbfd3a9e049d7e3890f2b54da827d91a1de11e790272c3b", - "0xd68fc65ea61dcf560631c3ef0f5c078086fd6c7b6b4c0d0ebb231e2a07a4a230", - "0x36dc7267df912c83c92ed9f53ead40bc2ef241bdfc62f0d7a4c24e9aa8568c2a", - "0x3abd8e1e1950b65ca1198bef4bd671546ba59600f017a63ecc656070f77624e9", - "0xcf65057e90df4030c8d37724fe2a81f00728774c9965302aa90f8cea36cfabc6", - "0x7c96f5fee074c4cccb1db5b3b396623a28e41a430ed4c5aa51175f274e65d1ce", - "0xde71773646c63b3a68ed6d6ff26f1760b68e497d1579d0de51e372ce74d6db98", - "0xf0fc0c493d23d02a7822ca306c739608929b4be780125f8be038b3314f57de3e", - "0x6230ecdc6b41bb4e2cdceb84f474c0845a1762aa5a3bbaa6ee11813be6f1c9f0", - "0xb201eb0d085a065c6371973c2c9b13bb783bff3fa888f7f06e7760f8ea31e4c2", - "0x1b2055c094924aa007c23f8970029dd6a4e4042efbd1cb5876092de0abae3af8", - "0xf4adf2731dd675c33673e0a2a0e964f14fc9c26081e7a3d9dc9567b61f194a9a", - "0xa1b61107f1a84d5c629a6126eda275fbc2eb34ed171129d432654345cc5a368a", - "0xbaaab04bce4baa421f76a029729617d0ad72de8926632aeb5e8050deb16c3cb7", - "0xf2555f067f8855d2381b298fd78a308262fe8bfc0fe6807a5cb923dab9a0f519", - "0x86dd603d29b186cbdef1cf6958e9d37ad8f8092aeef7f19f5539853fa26b58d3", - "0xa23cb2599d49f0e93608835c375386936678ac58ae14d87c112b86f0694b5596", - "0xd358582a0445ad0cf49dcf89e5945fba4f62aa42311b2a31eaac068817f555ce", - "0x860ecd3efc5d8dbc40e5cc6786859ca07c85fe40ca959523739b62b0e4e0fee1", - "0xc772b9adacbaaefecdf5ae2ecddcb9a6c2cdc141a211875465d3bd29b00e14fb", - "0xafb210d709cb8b0ba068a9f8fccc5d138e1f84d03d26a6b3d854addab236ec95", - "0xbdc3cb79641e51c9f707d159c9d88c2026258b6f73e65471c0c25527969035bc", - "0x5c13fae2b3043759ccaf48d9f12545ea32c27bf7bb66e6f619eae2f417bf821b", - "0x68a007f921b6e70f29a1d6d16f9656f07476f371fbf9a1c1a7acb5c2b609bb30", - "0x183850e4f92d307db4ae75ba4695f24bef26eba825b4a51575f51fab0e1a6f27", - "0xfff3b9a3742d7ef534f50a079cbcc55833faef098818277d6ca6371ca3d753a9", - "0x78ef8ce32497df07a7bec9add4b07eb81b42590f02597249538075e41ab6dd2c", - "0xe58fa1651c0f44e0926bed37c52a60665d732128a34db9703830cf95df0e7e67", - "0x6b7b688c0b98a58621392de01a9bff28e86115cb9a4f884326d29a2d21667bd1", - "0xb5df489fba833ac4828f5b3283289eb327feb115de64e7b71b9d3128762be589", - "0xd12a2a88f3b740960fc2155dcd81bea7e8ed81a4d02a78ba18e98aec67161783", - "0x0b22142f3c76af00919230cbc5b00d7d263c5e85647d2de8a3e6352ba02cad64", - "0x6b4e299b6771ffa71a09f9b43bb7d573b3b76df27abbb167f3e5ac711ffa751e", - "0x19a3415b944a837037f7efa5fbba4b005b9d4b91b9d8b6365da23e54cb8140a8", - "0x0255c4c289bb1520a8f771e95d3863d9e3542eb626d8448391cd8e9aa2823855", - "0xe304bf675403603fc39c4160e20b47624cfccbea2a371d7613e36e47c8251038", - "0xc2c138a736de8ef11dcc3317ddd89dfeefddbb20f8cbe9b26e6d58f0fa0fbb3b", - "0x00c0f43ab18e8ae57cd4cb88ca1074ba08dfc3e7a493caff5d02321f17d3f96c", - "0x3840eb9a35e137d7104c7bc4e62a2d1445021aa136363e0fb463d0a8ccc24cbb", - "0x6bdcec67ee09dd0cba8a0fb3eee93bbb18f947607b8a0b9c8553ebcd6d63eb16", - "0xf63940a931f3171b375c2f55d0ddfeb17f34e4b37e671591748326e72a5d39b2", - "0x45e659968306110b827b48998208ba102a8c28ccf08da317e34c8951eeb18f8a", - "0x2f6ca4bee975b058f62fc48bc7b17eb8631c4ce36b3f7f1f6f7958811b7a34c0", - "0xc1daa62e5add1fe79f3883cd53f3cfd53ee29d8934a0d49f8c339347cd276739", - "0x90b542089fed6c8240d9367e60357bf7c685775744c57b079867e0a724644184", - "0x62e290067d8abb0e1fe21a488cf54471d6421cda07c80b01ab750d3d352186c8", - "0x3d42eb2d8d2639fd63038f69895b00ab04d92b1ab0a0b7772775615fe2a8424f", - "0x4caec53a8c0977a0f38813cd37458c783709da6d386dbe0a0358be87482aad15", - "0xbd8f3c60b0b998d72cdfdbad6fefd2ab3762583f4efc8606f62657d9c05cabe1", - "0xb6ec64aa2f81f1d5cefef4e819dbf54e8ed9f018faeb99e16c2560ceb3d82533", - "0x0acab9585bf5d17fffb1c0e479646c8a138670f181a1bc9b5fee71a396b24564", - "0xd9ea8713827ed39e9d0a8c308f20c567cda99c591b9777ed40a5b878e2454451", - "0xe7991c113e4fe09610a4061dff84bda3205bdcb49ec137340f596e03c4a961d1", - "0x4e19826671fdd3c0028c4820776eeae96ef435ed23f07c54b2393a517caa968d", - "0x4ff24d17dd4b18d0ca4167c6769d20aac8285779da23cf8f56a12cdd9806933f", - "0x6a2431fc40b88341209023b8898c7e8e8f28b6c0d83225d597bd445382b6fd55", - "0xd8be9caf486a1b8f3ed5b637882d2449a9e89dffd582a5fd55bffc4fb4f85418", - "0x54d6060edbbb771b06997b4dfc6fadac4b76fab74908a169b06201a13a0a22ca", - "0x8b461cd45b90b3c062c801349d4f723274cce36ec256c44e2d749897da891627", - "0x46fa69a77abdce3a0298effcc823f9e69dd22869ba26b4c1d01541bf2de7937b", - "0x13279e1b1ff0c1527e09aa8cd610c1aa54328f88c4dffcebfe41281c53a10aa9", - "0xd1ad1dece0824c9bb0b7e09269f813a1a75e4efa1eb6cb93ab1dd42119223f06", - "0x46243b104f4399a3404db73fecc1767b3308f4d51df8e10c306c648901a064b3", - "0xfce2eb01ca4594199347b46eab5c889371e7d3add681da4d36595976c5f7fc58", - "0x8af66d1c12db728f09018d3839a320f82c7b27b97000f9212989699c78e6c26c", - "0x545d857048fedaa6de9e10d59aea4f3369ae1ea2cfd4d990292c15bd7f37e182", - "0x63c4467f63fdf41ba4bdce830189c6421d6c67f3db531ce357e317123412245d", - "0x6f4305c01be3eae45809e6caf06360fd9690cc39c305ba5a64dd47811882a16a", - "0x751d6be0d942d718f44cd70f10d1611db0c4c89124b76b732b7decc1218959a4", - "0x7db5bfdec57bdc3b74e47bdcb41cfcaa642927e5eb436c0c76e36a43a02b62b2", - "0xa75bbf12e95613fdf3cdaa4badf1d340af7c6251fa2f649737fb19399720e7ab", - "0xb6cdaa8b0737001af40740abe099a51857a35aef0f209e859db01480a2f23816", - "0x1b8f7551cee4eb0e92ce6a9f0b1a4e4d943acef65e2ac65f2466e4fc2272aca6", - "0x164c76393945a764479fede040f13455768aa3ac44071acfff7f96b59f8332d1", - "0x561400d0ca3d1f322296b635e7b58d7266d65739e0d4fdfae898a9c49ce364b3", - "0x56892960f0c37d7513b88b7f99540aa49bc92e8bc7256bc1c2fc990a6c84344c", - "0x493500d343bbc38b73f289a74204d9186b34f477705f9ab32dd92892209f011b", - "0xbb713e726c6c4b3a8206a5a05e3c4b8b2f27aad052fbfaf385f16ae562573309", - "0x5eb20169a44963f8c1011a5940cefaff81139426fa200e6427bc028d8cbbbcdd", - "0xcead0359164f39fd00200de825cecc63bccc8cb76bca930262f5ee625efd234b", - "0x4aea59dbe3908afc1ec06f6d891236e906f135efcd28347c766a2315ee662640", - "0x0fd5dcb637ea55c9ed20147153e7ff1bb578832452c3b56e661c7594f141f712", - "0x3904bbb37b1f292628ca91fcb546e947f7cc52e827487819116449b739aee8df", - "0xbfe3767fca8cabd6d18d4d3c4aff79174a373082d6b6d4a63f2d03d0a64126d3", - "0x3793ae1a9b7887b8cb1f2ca995098b73bed8865c47f02d5ddd4e5b968a404ae8", - "0xfbcccfc208701b5ef22e6390f91b37e1f3d8f7a8ffe47951e5ae9cfcb4f28e5f", - "0xc5bdca16693d60334353a58233521bb12bf80e4312e63618f08400bd51be7876", - "0xd6896c40cb689153480778c4a46edffa531739573f08e3f3d0c9013e9f4532fb", - "0xe4c31595f204a44aeafe75779dca0ca894185b3e2627cc4e932e432054e58057", - "0x1ab27949919c75168ec496faca66141917449e1cc292702b52f165f3c224f5b2", - "0xdcd8131d8a1e98342029c3ae4fd1045d0a3b3a038e7dbd8e13fe3ecab30d13f1", - "0x373636000f911dd05c0c412ef69fd5c71888aced86d721ca6f6d3a097fb6243a", - "0xfbfa33ec677bcf4ad9b9f9404cf6945a2f2d0cb4544436d97b0615dee48e9ad0", - "0x4cee41306c387e673b6ae31295a331ec122ac2dcbc1664fbf4634c55c8f3df19", - "0x0df90b24ac4280df5a90a40bf1e1f6b895d790d7ad36ab863e80ee1923d71c81", - "0xce57e7edcdcfaa1d4d020f955e3c7c84746ba8a77a2dca69914331ae6a588c93", - "0x2857b09b2507973040e63fe5147f8c0722bb31b494f122187bd9ec3a119868b2", - "0x5edd2c25d12dbcb1b0083ee471f3c8d3562f8e812c7368afd39bccc5a8a475a8", - "0x0eb3fc45bed06182648ebc82fce9c599973616c2dff37791c014d81b72bf7ebc", - "0xf0daf44cc73cc1875444b8f97cbf96923ecb1d2406e6afdf30be1ebd67170a8b", - "0xe6cf543cebd12913b99e51f454690b2e6fb54d885e06269c7dd1dc940fae79f9", - "0x9b46655d15c4c8e06d28f97f8655a1211c97b32cbe932a1167040168ed757017", - "0xb48a7111ee89b664c7b3fc3552fa3ce288598880e3c63c86ba2b40d0f1de47be", - "0x733d13d1ecf3101ff428d49e3cd50ec300ada80429f46ec9621d308920e313f8", - "0x02bc80564388ece34922f531ace4b429925990d68c42226303ec2393ac4c8d72", - "0xabb2831b72888718eddc4575d79c31d5075f7687c9e6f7df9c5b1e3f672735bb", - "0x017650f52c51f3cf2e7d82ed8b757206873eb71508161210b4f7320089875b16", - "0x97d26f102797f52ab80bcc786c683b3768f54dad05b0cf5d2f7c69f7c5e4b477", - "0x8e01eb81eadd76e276e853bfd3f052d9a9d05de552985a74f4c51ca7c702cd32", - "0xaa9dc013b931a332f294dc074707216440270a27774c7928882cec0124a84f45", - "0x4d49d26f98115d18353e7c15cfbeda5cbb0dc3757a152fc486079565ec05f744", - "0x6dd93f797d1983445c06e551ab46dde6096110dc602aabf520959cbddaa98e0d", - "0x5af113b1aed1076edb16781bc9116dc2d347a178ed6c1ccab4d89d66a2801dbd", - "0x193c02baefae0ffd3e3a7afea1e7e1ddebd7799eb511fc7c62628fc31866c6bc", - "0xf4b7f803d7e61cbe2a08a4ec9b814fc3d70fa9da89a8eb58e93868ba95fd4f71", - "0x99a2cde1e1b08a6559bd4679df647911294be7a73cec0f8c6bdeb0adbd914073", - "0x3ef3b1292bba31f20b5759d0ae2aedd24facd710f837d5373460ce1be08249f9", - "0xe158ef6d40a5b798a181d561f8494c83157478b09eab7c08b438c55498297d76", - "0x466b6c92326aa974a81f77b3b365d590f5ff3387cf6946d9b26a97e8c6c07599", - "0x71144f5a9b95b05102d1ac52c332de9f3ee054937a0fb6cacec61c230818abe2", - "0x43857db3249a1efb81a8aaa934631ffaf6087d7d95e99b8b7e3a307088babdf2", - "0xd76ab08fcae444fef658d002d0ba8f0fb10ca37e2190aa848fa765db9bf938c6", - "0xbc372c482f74e1c5d04a565ee4ffbb470c376da174ea317d7abd6de7f24cf9c5", - "0x9033c56c26ccb9a08332d0a89eb22560607964e29aff9161f6736f12f7473d3d", - "0x082d2acfa4df63deb929cb4514cde04faa0d4a06d53fdb1a58de3ec3fdf4fe15", - "0x2ea6011771c74d920c395caf9c70650afb4deeacf9d496007d03baff837a689e", - "0xdac8c9829f362a81e7a88306123986375d2c83b4cba0dcf1998e44e4692c256f", - "0x1d3fc9c51b3ccf0ec3620736d22ba7123441a2dc334bf925c75ac395cce6d74c", - "0x4881784250b53fa771634929fc34fa26bff9666701bfea61dcfc1a8b6ad012c8", - "0x8a33423f7fc2f11af8ee8beedc8b7e21cc2cd515a6c5ac1a55918dd5e2b16e99", - "0x3fc7e4707e24b5af35c4659da17186f4ce36d526fa91a121f4b9c2f3084263b9", - "0xe104a42b2766455416e0ee8736c1b3191822bed35fe36c01b5e3436f83157ee5", - "0xb9f270344e24eada673b5edff6f07e6fdcab6dfa89ff5f9197115cfca40428f9", - "0xe10df92ac34ed8b77c25d1f5c3f7e4dfb9785464e80b5752d641d986d86ec718", - "0x5baf89908afca6661198fa8bd6af1a08ad0c055abbc724801deb2f5772532c70", - "0x234c4085cfd920d8a76610df100a57e2c798d7c28481e4ee0dea38429691b061", - "0xfbcd104ca8ab7ffaade1ac59a4d9f62969035ea2fb40b54a0207292eae753e89", - "0xfa617eee82fc7887f71bbe0d38ec6535f58c14194441680de7ed91e6156e338a", - "0xd1e2a7c1b81a765293272287e9cdffc50d36b01bf884b1912f4ef37cc08fd7fe", - "0xd9ff3c03d42cecc78087cde6c9b3c4f699c3f1691adf0d3bef421361cb47c794", - "0xc8dd84e4ddac7535547b103be4023f54f74ec0c24e6140314232e1a65d2b4b67", - "0x80e188b2d5f02e63498e455bcd45b00a97915971c7901f666428e8d17c5071aa", - "0xa3378ec252a08d59233803847d8bd8ad275b78bb64224998b4ae308559ca3937", - "0x362ca494021482f0d9dea4abd844ca11b71fbeb0a98e7db7bfb3bb6f864eb58c", - "0x09ec27c856f50888e4634ffaca66f8185fd13e0bb2bbf522ce6209886502c7a5", - "0x24996d2f96618887c1c5e61d5d7ce6948853ca35811d48f72155a4778308e255", - "0x4f199a8efc8615c623902b5c279dd995ac1df4654a07aab0423e070d14bd24d0", - "0xe6875990cef0d2ce1f9d100654cdf522bbe345a462ebca769b1e288128c13201", - "0x36c141d47991e557f7226d8b1fe791c334f046f867d7865d663f99e2a337d915", - "0x337e59da56cde8e3f9e90fafff54d4fa240ba01aec855fd55626e4b3a45a9767", - "0x67672d3a29c49e3545d25422b6015a1eebe86596f55d4c9b8772e89c99ac9f8b", - "0x6d6e167641bcd2e5241ac2710951f7f0c47fb311e32e998831e6fe38f5bebb25", - "0x6dc4fa5ae3f281a90619216491284d951151f37be648694d1952314f43ffe05d", - "0x3c865ccee7900b39d671c43ae15df71fad294781d74815537de94d02b48dd8a0", - "0x10ba37d2ff46db181ff8a15f38bfeecfd9c21e28bf63cb5ab975a2d7c74c0aef", - "0xba265a598f3af5bf4c2b87bd8d28a55f963cfbd09108aaccd5b00294f662e8b9", - "0xaab422eb98f7b0ab9a01558069a3666efa2be2510097b0054bd5c8fceb1023df", - "0xdbff3ce1e6fb0388029f95bd091c95b88c6539fabfe6f1de8e44c47dab064ff8", - "0xb1aa0c7254f3aaa61b58c9d973f3d89f5f4dc6bfee011ad4c4a3e3ae76aaf7df", - "0x055e36325029db9e089808ca01b0ee3eae53703f3e91ee51e587e7b7dcaa8a3d", - "0x00ec5a25517cf0c0a1bf892e5209fd0185ff1ffc6b2523642bf86f6a3d0c10f3", - "0x7bc6a8d5017760f12ace9ebfcdf5a91abcfd6e4f4131df5c4dbe84d2d6a6add9", - "0xeb5da64c8d0cc93a44da96ee9c3c0a22054a2a2e87a7491a5618ade1f59a1b96", - "0xc0a937729678bb6aca27ae16c662ccd2dd0b53346c610d6e5d5b1655762fa4b3", - "0x55c732917d3894ffeb9844fcb1c690d0956c4e2a8eccb6552cdde4ea90c99db2", - "0xf1dfd2205daf748da9e8e98bc4ee94cd6b2db5560e4cead28910e14c576337aa", - "0x60a271fb20c017f90d99c57783ebb8b1a3233398c49f89d73db14b09adf2893b", - "0x8fbd97d55dc64f2124c79054765515f49d79a05f2962b17875f12b353c33f564", - "0x5afd5951c5e834fbf22071047f72619496e9a9dbc6073b661c44741b67fabf03", - "0x2d05a19223820f92e385d2c942b70cca32804546f3aa7058381ca3f6c1ecde11", - "0x267dab323804f2e7bdcc80dde83ccbff56d1aa0fffd0edc7c02ffd4a24bbe027", - "0xf4e9e580bbcc5a9be1f942c12d4b34eb1a4c07feffd0b95abe27ddff57a6cc8f", - "0x3f146ceffcd100ca9fc1af743fad74acd03a289f4038413acfcfd0eb87d14a56", - "0xef98171ed6b269c0ebd6bdbb1d98694316b639bae6a3ad01f4964c3d2eb3d2cf", - "0x510013a35d5c71863b3385176c794ad90e17af1fd271b933f9f7ab980311b27c", - "0x5eb181d22f30ed203c4d3fad610d31c2338dae6a88eee250af19ae0f58319ad1", - "0x50a28d65b51ff086dcf2110feca7d990db95f078394c56bfb850a3b8cfd7f1a2", - "0x4148b8f2136b84773b7ff71d73aa8ffb98f0f3952939849f324c28b9173efd70", - "0xa980bc7fa736bf6d6d794ffa5e035664c45117c21e40da7ba76de7c2ff8164d0", - "0x794a8ef17e48986df700d6e68799a50695086702d6224ae9a71663fd03f8a55e", - "0xf354c82e1c75d7d758099dcd4d0592363eef81e85cba773aa6d6b30e1900582a", - "0xbb4c8b990add1c4e43ddebf742eb605028ae2daa8b61db7d237386d81e4c3413", - "0x61470a53ef9757fa7c452bdbe26d448dd8bf6590fc11420ebeddf441fe56f381", - "0x603558b2f72405e9625ac561d62c2bbcdda84d8ef4b5510d06bdac0553025bf2", - "0xf52d9ba6ba149d0e4266a8d05b73e4a445e9583560024e0185d4b8b12bd55640", - "0x26ef211f77b4a67ddb0a24c4e63f7d247d6ce8635dd9862894bdc067633ff395", - "0xed4ce5eb08b63534c5de241513a996322d168f6b8bf5c75167e79dd7ca1cc817", - "0x9d5f39f494a36d17db609b7a7a62734ca7222426c3556132bf1e2241d6c45cd2", - "0xe664772da4521e1140cc2c5db744010f57c15374dfb78a97701904787846a8f6", - "0x93faea0d197923b1578ac190fe608203f637fe4991ad4954c15ea94e17ee948b", - "0x2b028c1aaae5217cabb97c46c20541c93e55a868f78e82740f9fb9a0a033d662", - "0x529103419484990ad11c05e0c4c696826f67fbcd491e19aaac461cc340747ec4", - "0xc1e773415513b7bf47340d7b0a29e5d49d1a88bb3d0ee2a79726169d32012378", - "0xf97c43bb4ae25524b180e59cb6cac75858d4a8a0772fcf4f3bd24dfad42169da", - "0x19fa7ad12455fd022cfd15897d553e031ca1adf80c963c770250d36f1810a5f0", - "0xe67ce6e2444b8318a01150952a537ee47b701555c79f60eb90d3c3cdf93fb6b1", - "0x1b49d232180b0922704ebd4e9fabca5dd8ae9cfc2a39ea07226ba903a15037e3", - "0x56540b02ffe1743468342b5664b6e51cb3ef6c48dd74d6cd74e0c0c513c13129", - "0xd4d9d67f352c7f54d68ce994b3765b032108a5bd0b5b62d14b893949b96008d4", - "0x44d1b765df81594fd37e7700019f19b1ebd6d9b50631455931b83ce35238cb6b", - "0x2b67aef7cecfec055853cd63e8519bf506d7a1ae69a768e4db9415bdff532c47", - "0xc30ac2a4acc33cec2cdc83e114fb8237c4900a2fc89dddb6af3a4dd5e4868e51", - "0xe0e7127e086e2011f30fcd0469b35769cae163acb8ee6db8a8e2c032c2b351c5", - "0xb46c428070d15ec926fdf1d7465a9168c56dbb959d5391e26480500a98e36047", - "0x8dab41ce167633da3c0b5332833dfad5d2c28ef30c94973e5f4647e312781676", - "0xc632d30657b39208c254cf4f899d00d7c3196cbdc31248798a760972bf399fec", - "0xb4eb2c6c656406a9bc6cc6176dbdfc0e878046530d830a51e04a4e22c4572370", - "0xadb48a02c9c87b246360edb45528ba23cceed736a2ee0cfd03177428e6243024", - "0x443ac2e63e6d629398e607d6689725dd68fd5254916c1b76c876885456a13338", - "0xb66c4d950a9304025654de37c7d0e9759b755d86226a816d1e3b4c7d654a1bc3", - "0xded624610c3493bc7806844342c37909c1c1d179025c215108a12a0428ae9e36", - "0x28c85177961714ce796f152dcd31c8b19db1c39deebfe383d6fdf2334d4261b6", - "0x6d342534c3a4a875c5455ed3ef546e876cedb5aee7b2ecf194c6e47c6a09d3a4", - "0x65a84879e014085b7a0de5bf604050bc6bffd8ab7748253203fff49573763558", - "0xcb0e4339dfbfc8b420c915149a0d352fda69c31668b32452c432f067462b4325", - "0x3466440e4c88895f2642f2986dea4be482c028592530224d73e67254b2bac69f", - "0xb7c325fec25c7b278724ebb91c64fc2ac37e91e44b136dd6c29bf48b80990888", - "0x7a9a2bd3ab5972c1a4ec5972f959a1e30eb678090ed76947e38d76fc3ed758a5", - "0x74deabf896026cb20e2f5f8a88828b265d6696883dab972fe1bc9a4ca98d68b5", - "0x195d2e25b1ec8deea095bcbaac5277f4586237e68bd9c9ad24e65a8e53d6d27a", - "0xcc343c21f7f18c1d507cc3cf12381d7bbe55d7355363361d05d972343fb4b7fe", - "0xd2637aaef2034203e549453225eb1d75633d2c66e8cad0419395250c1e369536", - "0x0f8052a87aa435deee2826e6dbc944128835264d5770dbb064373de05333f8c2", - "0x2091278a3d6a7ed1ab0458cc307903a51d75c6a1c549ebed1f0aed29ce6533b8", - "0x3f7d25feee0dcf39372ccbad55989442d9b7ce16ac93e4b1dca63bd92d5204e4", - "0xd0f866c38597038e360af960e3e84c79a0027576bf3fdf4358a9442f0c671b61", - "0xc527b3694dc6b46f0562cb36e2f766e5b75793ad2794258d8be5119bff4ea8b0", - "0x47f1d7d32904cb0945e97140c2412d12b1e0980c2f72c7878250170aae4124dd", - "0x57aa1ef2a7ec01ee7acd0c4baed5407f30d6c34f2bc6bce7fda6366517343199", - "0xd392127f856736dd74d16a24309a247682e2736f78fc92713c484a6f13edcdbf", - "0x595aa7e3eddba867389d63b2eaa6b16e4e5163076f03d2c8013e40c3b0fc98c0", - "0x50bb320d8bea03db548be3a3b619159e1993ba8eea83af6f022b9cd29ae4d0ff", - "0x53deeb64ee923912f76a233532f474d76d8f6b8cc42eedcce81bda8ad608294c", - "0x1af301b0eaf36d16a74b2d1f76e9e26659f047cd3466a765049260047c25bbee", - "0x05c1d40227ece15c55f06dc922f5a9be01cc147a96e070e7a81b696f0f40b6ee", - "0xa63ee877c70d8e51e795d153a34ce3bcc212f8fb8e77df52ff83084b9133a280", - "0x07ab3e2107db7ff479f5be0d7a57e3b76627cf6230cdeb61d78ebaa2c391d360", - "0xc893aee6d249c152f5db3d7763f34a3311345dff721ae9c71ab5fb3d2b3e2559", - "0x250caa98ea3e682be9c866990f19647f443d57690052229ac0ccfa0ab30a5a71", - "0xc32fd5318214071a41cd8e98499b2b65942c5837c686a06b536146fd0bf294bf", - "0xac390c012eecd83fa8f4cc77a59992914b5c95af36b28747e07adea13228acbc" - ] - }, "nodes": [ "enode://efd48ad0879eeb7f9cb5e50f33f7bc21e805a72e90361f145baaa22dd75d111e7cd9c93f1b7060dcb30aa1b3e620269336dbf32339fea4c18925a4c15fe642df@18.205.66.229:30303", "enode://5fbfb426fbb46f8b8c1bd3dd140f5b511da558cd37d60844b525909ab82e13a25ee722293c829e52cb65c2305b1637fa9a2ea4d6634a224d5f400bfe244ac0de@162.243.55.45:30303", diff --git a/ethcore/res/ethereum/ewc.json b/ethcore/res/ethereum/ewc.json index f281e6533..632b57781 100644 --- a/ethcore/res/ethereum/ewc.json +++ b/ethcore/res/ethereum/ewc.json @@ -39,747 +39,6 @@ "difficulty": "0x20000", "gasLimit": "0x5B8D80" }, - "hardcodedSync": { - "header": "f90231a0ef1d354e1a2c136ff5d3063dd3d116708f56b600ad6f5bbdcb27cb05a30aff9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d493479417d9c712b71987c084ac11046aceeace393c3cefa0e3252978f6779c72c03d5006ca641b4b781dd02ff35f4bb0f58c4c89b8b7f421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090fffffffffffffffffffffffffffffffe8316f801837a120080845d7b7c1e8c456c656374726f66727569748412b24c06b841619fbfe1b9b43d13e3d972467bbf92ae37df2ec5daada52a82011bac745999d67ed67c1aecceb5e384845bd870b677a69e2a19dfcbbcc1cf1dadb09c63fa536a01", - "totalDifficulty": "512220581561117171220611992449499484793650169", - "CHTs": [ - "0x714aee6de838f6c9152fd3d5cbd18314c29a241a894c1cd1fcc9d15972c7f8e6", - "0x5c6086d6f5cf679f7374c55f6d4b6a876ec40452cb92fb97b048f7c5a759491c", - "0x2cfa5a82758480ead7f60042b398b6077c1b956e5f5ec50ccd86e50c0bee5173", - "0xa5cb0364140cb3159e84d816e1accd65e309f5cf1b86eb83d2a10edc99ab1715", - "0xcc2abea1aee03a7eb8daa84c274d46aa8e6f72f1bb5cc383f4c5f67fd80b6312", - "0xc8d217b113596af546111f4c247b4b3ccd4d84658ddbb98e9b5300f4aaa4a2ab", - "0xe3f6fd83773ba536ea882ad4e6d833b3d23fc5cc6a8dcff2f97aff5a7f27bf6c", - "0x13b4237edaaa376a23abe8b34de7e32216cc588c48059373b1ccc04cc4ef01b5", - "0x28314339da657ea6639c54e0b1c6e351bdcb99093f216205b1b0097d10345749", - "0xd1ca7cd047ccda72f7043f0c60e1c99d4e85feb7a0a492228b1d996e1eef5994", - "0x189a968994620bfa76674de1dfecfcb39c693939b2a30e0b8449980f7beb4a20", - "0xfa9fea734ef0be6e6633e0fd275bf63245000ad43d5869115e480c6a047918a1", - "0x691275f9193dcd3c22e381b4ec23d2faff1ed6bc25afe2347734bbaea89d9753", - "0x13bda92eb5954ca11986fdd513164a43f3c9c8752dc7bcceadf9d935ad459f39", - "0x52083bade8be4b10625c036d4588ce6b3e59bd27da5d663e53b5c5113579d48d", - "0xcf689491a7e4126c5377bc7fa6283df1aadaf99ca82687585404352f4f09bd40", - "0x3703c8b32f15f6fb2d48a66a297ab6bedabc7f1547c646cd3d6929f3d03619da", - "0xef071a6b1ced8b22869dd8ea825889ec500ef7084dfae02ac2c30b0743a25a01", - "0x7d4437b4ad2a1ddcdd1dfb0e1bf3dd013ffbb9e30bcaa1cd08dea9b906c4b6cb", - "0xa64d95e73467548da0b239f12dbeaafcc6cca33503f376d3da08d69b0c4dbee7", - "0x1d0163fe3a0449f62ac45d0b9f06a220fd24df7fff0762784550783172b53f41", - "0xe3f3f82f8409c1ef478881ed0806fa46cbf2097faec716c4aab5a979a7b086c5", - "0xfe21c6d36ab71c121db0852c014714f1478f81c6d03d326a6f35740682259499", - "0x4f907f52d437c5823f20a5a78ecfb5d7d8a67660d963430bc990bf08f666930c", - "0x40d3ce300f6cd0dec0a300e4f2e8613ead69a3f434874612ec01517fa07850c2", - "0x0b52bd9dbffe0e5e7b82120e5b157639328678999cc5fbe0d8df1ee37628be1c", - "0x6f20f4a01fe4461311635a6aecade16769e5183cb7d0c7d1e7920e66d30b8b55", - "0xad06ff74d2d496dbfeb4cf5ef2182c4210b9959677758c3bbaafbb4d77bc2294", - "0x1cf52c489ab70a7a9349a30bb839e62fa27580fe5ed2138e723e1e19a276f138", - "0xa7fa1fdfb4f1c0c3f257756b3fce92631337bf6d728e9f1d8b0c664166f998f1", - "0xca15b546d7e8e4e54aa5ff7ab576fb21b9da5f9495049823f6cd16b174014d10", - "0xbec49f305f6cfef5c4192006d3211fc03801604cd17ed08f1557717cf8eaf082", - "0x12d0863ea2ba7c7f152b494966276252748daf51c78d8e9afb8b1eb242e569f4", - "0x7a5bfe9860427cd13209e973bedc59d6b26f2b26aa51f048580eab80570bb5da", - "0x89153f7a218d56a5aa7c7eb5d603692f1ae7d33ba4ca71811a9ad22e0cb9a961", - "0x3b817286805f105dfbcaa6d6116f55151885632aa5a1e563864a6a752e4ba271", - "0xb7e6558399a7abd11a53a1b59aff4b38f2f72ffc341a9835ac504ccbc9974b8a", - "0x002fa5217510abb7d1c7665c82536595cdeae9065aaa20b3a8ed96e27f84cc62", - "0x7d212d4588f4cc28f0ce414294fb4454ab61ad264e988d0d6c75ecc2d5124216", - "0x4a87e03523d9d8865c6c998a83a46c58a5347343aed9522f8324cdd1bfc087e7", - "0xc1ad37c002703037d78cc742903951bfbcecd955f31d310317f62568655c1f49", - "0xb9369a5db6984bb236495de201a260b34292344cfe189d6f0352c92a2b34e373", - "0xcad20cd17dd6b0569d49813592308a7426d7b38d3e6c68030b63ecf323a9733c", - "0x29dfa65912ab6c45a61002df9b6c1d5efb19420e1c751c915140e50b0571955b", - "0x54d328d8abba4b4235943658648fffb71bbd1f709b869f703981a6daec9d1745", - "0x78e10bd72223d3138b668c209ccf3de9bb3104f983b5f8ded0c077543be4e2eb", - "0x71db915f9eb5e303d092bc04bbdcd7a92fa18aaef0087e057f7cb74ae0c42be6", - "0x5b5fbcb2a155b97fb1c172b9cd8e44230c45ace454d48714aae771b33d1a70f7", - "0xbed5561d7dc0d7536d9919c249e9c7311ef56cf1af46cc4e5ce0d1d94719e13e", - "0x53bbdeb4f2c27a9582ad5121dc96279ea70b4b04a090819d23c651673eea4dfa", - "0x269f7e304c9ef03f70301dd5a62bc4f932e4e7c4d2cf3bff22745a6e00ba6da9", - "0xc581e1f328a0db1245f491f590e80fb7cc6ed8516d505a91b9d0179c3a318963", - "0x75a4d02143c90eb0b4f99c555a4663487b569f7400a0baccf102885812e11de7", - "0x41509e2b972ba8e919e2e36deaaf88d7102f3afc57999a03d2b2019dfff8fea7", - "0x98cf6ad904dbb9d3739ee3fd5dfc8b3809697763f7e9a9ef07f770bf4087b6e9", - "0x0086e9b6d28908553abf7c69d92679ec513d9a2e6b05d7e58e2a73c7c950ce54", - "0xac8d8b99c4def8e8bd19d0103fde949e2d0d3ab1168015c6b51635830185dc72", - "0x1deccdf3e7a2de364456cf4ca26d66af4d053353d2cbcecef2901e8e64eb1107", - "0xa88c69866b2b2ff58c80c7f4858ec89a94d57ae0b2f034fcc33ff926b24ce119", - "0xf6ba8e87bccc4c1ea1ed826aa19b2f9580e6a4b057259287a2115ff5e23789a1", - "0xcb5dadc2403df2e173f0edec17a68926bbb5d738c27312fdd0f2a16a7a76849e", - "0x8a8724ef233d58277d04030f53923cb993984757cbad84a636b147a662a821cb", - "0xc7b8b84d234651d6a1850e06b2ddbe7ce270216d82f399cf48ec9897d036de0a", - "0xbc1ad6afbd752fa72ae21f81c5c5210b9dda3071d010db36395ecbd04590b4b0", - "0xdd386b46fd7030c485996644eb4b40adc61c666d9cde21df40d553a9595e0984", - "0x3434bfe056b388286e5b68b8b7b24d9d4f2873355c344c45e2104568ff55fd08", - "0x9e3d11b88f6e5d76bbef918e1d2532a475d2e90a9234cda64518eb3fece2a68d", - "0xdbe894b91d6a3cab4418b6bae4f266d7978ca9b12796c5ca664720ef2b9f5d45", - "0x0bff7caa357943200d7b5e02a208cc6277c183f307d612c7dee1886988b247e7", - "0xa94e5bcefd87dac0cc2bae19afab04b509178165de79aed98562ae88aa990ab4", - "0x2548c84be89eb2f05ee222fe52f26f2eff73d1a1d57b90ad23584bfdfc523d6c", - "0x0eac1a412389e244a843c733a948b70b72dcc231a8d9e8680b6141760d7d1fbf", - "0x1a6378c731f116e421eeec34afc3dee7b42e3233f4c676aff8571fa377d6fa14", - "0xf35661f3d06ea16b8d199f4613459653a10402f2247427149b0df49112649bca", - "0xb7cf13c95711c7e68f9bd67b2a2c579f10a05e97327c67583bf9516b27c39a53", - "0x8b46a5b7df22c44ffeb097c2bd7c9a4f29430d68210acc721688cc1713415bf9", - "0xc29b90fb6e12aab1007a3d4e1bd196be97224d8e8f6540b2b1c48efe88db4f6e", - "0xc5a1feaddd996c12195c69e84ecfba76df1de87a389b40f3839a77bf26326076", - "0x6b6dff3eb189efc0a6c63efaf81fa62d97e2bf117ee0e336f11a4dd41c338b2d", - "0x39e7e6c3e6cc5c5c2f6869e0fe9125062be7176a416ca970e9d863fbce67f158", - "0x3523c2958628fc823a2ee64460b47a9f407b7838607c238141942b0c0ca466b2", - "0xbefecf8563da251300f67ee0eabc25cda56d6477ff748e10fe52f1708706f008", - "0x3995668e8c932eaf52d4cd1ba671aaf923a5ebcd3a76ecf6d8da7546a9aae5b2", - "0xce966d928535798736714d5302902ef00cf17b82c680dc9b4a3c4076e363a99e", - "0x4be8ec22b32879d8a4ce0f5cb080489179dc7f264f584e42a4c825cb4d9123e0", - "0xc74698ea33ccf4df96969499975e05ef02643a74a101138c85bf44ecea503870", - "0x797328e01ee9e34c81ec02d14bd2344659bf6fbf05c331d6ceb7501773543a06", - "0x0980feb796b32259fe1873cdac1a6a8f35d2cb3b5033a133a65ec154b0dc256a", - "0xc71e68cd250b975612d0507e4d1f93c3b5e701e1df7c5531becec7f8e7bc7ed1", - "0x420e240ec1a8cd42834bcface9583283fd104ffb20d216c804edf5b3c534fc8a", - "0xaee71494321dc715b20c984d901b14c382f1b65a4f90f3e78188a86454ea2a79", - "0x6abedab72e5762047089fbd7a97765776ffa8e5ec7e697f82729bb5f1a0a6988", - "0x1977721d0744ac77e582c462671d6149c49803dc1b9d5178e7a735ef72da8706", - "0x96254fa25f162b4d0af2d64fa6e47c886ac9cc81af6c7949c8ee4aa7e67e45a8", - "0x558a616c487edea428d39a46165c3a059c8fed9edb1d4fe53d18bdaadb3530f0", - "0x3dcfd178eeae5724999bcd99bde031d06fb630703cd62a0a4743ebb179e1d33f", - "0xdc79eb70fc635b5fc0b8c4a6fb4ce8b387aebec78df1825ef242c3387cfa7331", - "0xd879a0d98753df27fc6c9adf37ed41d2eb8fb8a9d0aa427034659c6e50a7dcd4", - "0xcb0ec7547b79371500f9f2e91b835ccacaab21c2aaf81cde48b8de8a0c62cd76", - "0xeed5a9d2b91c6c58ca0c03f5d8d80db4a96da230c45878b4b2fa609b5d250498", - "0x32b8bca91321e18e117d32e37ba9e6aa8bc1f792ecc44779b6783071044cec18", - "0xabf889edea725c99b393a482341e03b82852ac73e27258a708296a3403fbe941", - "0xc55939c05471d73be4de2c1fb3f07326b6796f98a91b7bec0e266b87a7fb2815", - "0xeb8894c24486afa4a2a31e8dad510376ddb903436263b860ac8991aa7d66d1fd", - "0xb105f9b3d63bb3aacbb1101190cf9063d624f0b0399b782d509b0e716df41933", - "0xd5b682f34ae722725d14727428a96de156262712ef6ad49563ebc12a75d0c85c", - "0x8aa5d6861854def6262e86979f5e96bcd5474d7cd0cb1272f3a099d1c03bb04c", - "0x609885f9afc728ec12b427beca31b632eebfad78f30ccd64282a4f9f1593509c", - "0xce2dd1bbdb09ae148f2b6d17636788b27ab7afa2b5b55c437255dea28977e0f2", - "0xb71191d5083196c16481eea99b8b1e8f8d59dcc68a2f7ee908efd5f4c57b9e41", - "0x7239d211d9e97227e77883bc9c31b7762b1f811c7cca948ff8f7b5753bc7559e", - "0x7ef67af5683952e43427227c2f4fc8142c6154d60241b88bbcbcafdffda6ecaa", - "0x1ff6023ee784b370ee7a0f64b29958be3fefd8df5c1ba1cfa3e6902061bffbd8", - "0xb5cffe1c85d4a096beee99b3023c8b0d611c02d525f8fc28bae13ecdec33298d", - "0xcd30a3426ffe2a11178e66031b141599aeba0e8ee9cb4112a599b64435a03af5", - "0xce40b45db8860ce0932f2de0bd9fada52b42dee0af04522800039d345ef11a68", - "0xa8a34d51cda56c627e9b5393121ae1f6fd00167fbb29074d249f22a9569827bb", - "0xe988982bc9adfb197bb73d0658532936478a70a1cb3eb3ce887022ad6140d296", - "0x3507f47e984170b96ea9a1ca6c5aa1f7a3001b65a6ac377b432126395ded2590", - "0xcbd052896ec1093b29db69924583f980b2607b47c02629f33a87854dff2ebcb8", - "0xd8bc082d23f34a737c2ff29dbb4a00cd1e3561e6208e622ca3e2ce0e94a0d195", - "0x5d70fc0230d0f98cdd9ece68eecdd10a138e969bfc1a75d8d05a25fe36e7d9a6", - "0xc288e634c5d346c78d694a6baaf9bee375ae953ddd2f16a24e4869952b66f27a", - "0x3803c0cf512ad51eb8b51e9fe2eac0be9d41113d3fc0575b6f255f8637a3e8bc", - "0x0c6c1bdafa2b072d96ee0af733e2f52fb275fef79b25f64dd8ef40723f1a6c9a", - "0x485a57ed84df32298477c631079691d4906d36bfa881aa4a62915931a21e37e9", - "0xf6eb84d895581d563c393daaf6ea5d82f0a0a4e50b5b4e079b4d70e3ba5bdb44", - "0xe793e01ef0d8058aba5fb4a85f2e6c202a71edd641e323b6f6ba42783ce93898", - "0x652d4b932a634f32a60b27f7c59ab26b35ca296a0dbc5484e602cb134d88a3ef", - "0xf5196d9bf6965d2184a5381c9b71ae005da474806c6926e9c5e3292863e8bede", - "0x0d46341310ee13f4cc693588c0edf899aaea3ae5abda6ffb57415b6842e651f6", - "0x969d3c7dda1caedcb15d7e144511a6e5ed38614c64414ba74a7529bd69ce5cf6", - "0xff9e73f4eb9e19afec1ef71cbcd321fa6e6bfe9dc9f3fa2fce45ae2b899af998", - "0xbe4db0c9bd7fd8cbfb00b3d146ea965258b9de545004f430dc2d7526fe10a910", - "0x9e2529bfdf7052200c855686a046c3be25b93654e56fd5514311929d6bbbe52b", - "0xb900fceac0f3990db4a6aae238271732632402aa838052ac0ad223b218a82b0b", - "0xdfd7f34fbccf7151549876d96ee0a85f77cd9ae41f514ace7218ad526ed59b40", - "0x68ebfe7ed1b187ceb7382780f142084c91d2254761a1a044609e6325b8a5323d", - "0xd04cb8343833c53e4820e60b08573d6d4fb38456b3f2116e29858af483cde125", - "0x69fd9199d578dc51ab7cb55981e3748d166b447764667ea10d70e9cdf7e2ce96", - "0x25f63dec762f9dcc0f8f46357a7c2cebd5988b1a30d66ca71a2a2103d4b4e9fa", - "0x01da2a253712a9d0116dbffe089fc7377d18671b3cf6560ee90c8a1749379605", - "0xee62ef05acc1646e48b6aa2822b54e7e5421f3a22f5abbb9f067c30aea8bb192", - "0x81c8c6a098061ec62e12a87f5702ed7bdcc5eae8450765f77d1a79354b9f2c6a", - "0x95740b63373660ce0a05430bb99da911e63dbce008c4b8d3c51253416f23fcf0", - "0xf18496c657560a475910e2a0bbe4be5df0ac56b25cb04d5b98e028175f49a6a8", - "0xaecd72638133e3f05497c3d8d505dff33a6b6f6d309af35a67c6ac10fe15cea8", - "0xed73a92a9518e5a5e583a750b5d6422c5acf082d9aa671bdf9e4a060fd95c72a", - "0x7f135f642bd31c393281320de0dc30975c17a21c51c4e30d7c42fc3fad5242de", - "0x0a788be501d80914aa2fd995cead69c17fe04bcaf5db86da2bc4c868513a99b9", - "0x538e66a64ff22af3d7b6db368a706e9d981df8a4edb2dfb705e72323aff7e5f3", - "0x50c90a4c8affb981ebb9e88d695050a2b558e340d333822f7373b66cad53b973", - "0xa090d0ee33cd0d8428132b6d87005dd292b7e28be87f553b4e52566f976e6824", - "0xc13b178eeaf966dbbb3d717a163ea003fe99479903e8cb78b53d1e4d240feac4", - "0x9ba9806d4a0b20cdd8b69d4d0197bbe7a42c1cb46a88bd012755fbbd785be857", - "0xb836710b211df481d99b033a9c0d6e09b34fad6f2e8e4931dd1a054dc03bad57", - "0x4792e8b038b6dbbf32a228c292a5f4fb639a0f84f8f70004716c5a47331f4c41", - "0xcafa97e065f36a436f0e4e255aef9d04b57c6b12d50e42e99b4f25d148e9d3df", - "0xe9e2934d6f8841d486db3533ec6421fa0952ba8f3f9020ff9b5e4fbbd8af817d", - "0xe096be0f831214ce1007d352236d2df186cf738b9b3992c0d0943f1b6a76e917", - "0x564e83fff721a1e316572dc507cfbb41ff8dc306436ab26b315d23b8f002e390", - "0xcf3a00d76c6a4645ae555a96e0bb6f0e441baebea9415db5304d6d8639c03bc9", - "0x303013d9ca65b0473921f83a18e5cf38f882e715022554066b72cbc3368056e3", - "0x8e47fb7ff881e845958ae6dea28ed9bc3827c7b296ca1c151b7f24b72174bbeb", - "0xa87d1ea0d2853c966db0073ff09c85a1ff28117f770239b11369eab1e1f31454", - "0xa7d484e51d3c4ca27993f21d5a488ba34aac2ebbd6005ba0ed8f125bc9c9139b", - "0xe2811f00e0d3f86193e59c100d7a12ec43f94c6c2228f3b95c5838244abc6406", - "0x5e5e04bbf350160da90977ddd5620afb3793f57c1b81306920622ccf400d6e9b", - "0xd8c7693ca7de07e9a09e770f93775a7fc3acc3db6ef33e0d84c38ef6d2ca8108", - "0xfdc05ae6bf5d112dce90ca725ba52d85636c4c193a7a65d9b6f6efb7ef6a16e5", - "0x07abd5fd4ffd9fe50a59f0f32bebf2d2d6ec59476efc152b3bb907ae10632ba8", - "0xb6afb22be6200ee06100434548ea3b0b378b00f5282c377f24b04c3d014fb552", - "0x199d2c213ee2277dcdf24af1da8f6340dce3b2b9ec800f1a31a2d53e7429ba08", - "0xa0c0c4e4398e7d8b7e4cca3fa16384c4d911e24db2b3f1702d9a23fa7bd67fc6", - "0x953df624be719579e3f63754b521ff66a5d92c809e3f809e45b0ddd4f1d00227", - "0x89e863130cf4a03ded7581c5879fe3f4ac10953b042c4327e2683941ce234f1d", - "0xbcd8e60a0e0b747b15f43b1b3172395d73be4514bab8c995dc61b5853507f45a", - "0x8efe4df87171eafc2f5516f9bd9c6dec560fd86184f436a3fa9367947ba6acc7", - "0xe78b429f1cb75f18c164d32a394e7490d6ef490f7ec26767506e1531971a2d8e", - "0xa85bdc71975dc7a6f91ff1c71926adced0293139f42d3dfae448b04e194afa39", - "0xb2850db8790941c5b4728e90c60c5761f309ae78a42b7a32f7b6b414417130fa", - "0x45a1698db7c1793b66031dc6b9bdce75e9db03cc6d5068c98a1d39e5c3353959", - "0xda78cb4f7dc73eb3da39b7841373f858e7a7f8983637d3d41337f07e669d5611", - "0x4e7b03eaf17a665906340bfc5d3765c1981b3ad174af2bb936e688520cc7507e", - "0x9d1fc1af5a264d076cc49b46d88857c733929ed63d3a9d098f9d02445ce137c8", - "0xa58779d88ff3e4f15f9cc8f3aa4e31f29010259bfebb358772a032314248b9a1", - "0x85eb21a68a7c544090dde6166e19f18ad527af568cdd662c84098f3e97b6f406", - "0xb95a7f4891bb90cf61b5cdc8aaf30440f901bd68caeae2a3246223c1f145cf4d", - "0xd26f9c16d45ae57ef27e31bf107baeca391a51a0c2ce5634e53115e45e8e7a3e", - "0x34692e04bf78c426ca367759a213bd782e47e2e6842a8f39f62a1030aca31775", - "0xd5dc5c4d619d78682034eafb73ca435db6ab53583a7692848dee27820e819f75", - "0xa23bda165dd7284398b7817fbf85d3eeba7e7330bec4adde2069e224e17dd2de", - "0x4fdc06315460f1e83fe2e92c3d60acd5d7a5bc96066fc8785409e81a1ecf9193", - "0xbf4690969f21951ae06fc3828d40fd4a965682047f0bb6f847d080ca7f2fbe05", - "0xba4f99d6bafa70a9f08fb41e0c3d7a2518a360dbd2ec98893443fbb256174a70", - "0x9366600b95717d1c4840a98fb3c2db95b71374294144341d280f32ec4021c8ce", - "0x8caabf9d8a063f2fb18912ae4b2d1be719975cd03b543b79863ae0396c0ae625", - "0xf0ddf8b613a1059b97141affb960bec51c331741bb19f85a920adb9b7999123a", - "0x81743e8fe0f7c4a2141dd9ab1eec8522a6139df847c9430acbd84df0ade0a9f8", - "0x00f7006ec05ff418048bc59526643321dc05936b3c549fa8136b43fed038320c", - "0x8cb3a50c86abb41376cc01cc22691a8801a67690ba23b88760c8495ebc9f855f", - "0x2279d287f8233c0cff7e31d287d417c1d4721e1c28c3c8ccbfa06610b417a0dc", - "0x6681955ad06c3bf7172c69417505f7b8eaa17fa861fe5d8e6be61d53d9774979", - "0x7130927ed3a412791f0dd02b874b68b3a393c1ac443718eac7afd4b1f5f3367c", - "0x82ddf79f4eaab03c72feec7fcb49d0532ae68dc4dcdb995a06e79efd1875a97a", - "0xe99ca08624ac8fabc9cb11f01bd2968ba705f87724ec4c867107c3e82b72c648", - "0x0349cc1960fb5f891d9c780fc78f44f4af7a2f06e409cbfae5241f754585b873", - "0xc31265d24c7bef15f05303658ab150bb8848e63ef6e5bcd6615ffc59eab4c024", - "0x6d6268a5f5e24edc4af8d01a0ffbb406c2a0df0e940bf2042704627e7e3f1eb4", - "0xefdd6251b7ebe415aec8cbd03314fe387b9fdaaf910fa6d21bd9d264877a253a", - "0x2b77e4b8daeb43198d35aa7787e956aa69ec457129113f2e6fd93d14b1d8be59", - "0x243fbbc8073d636741793c42f05d14dd27ce4ea263aeed9c1d7a1960a8215569", - "0x63db3b3f6d028b7f46af35e5036e1097b31157a24959745eabbf53e5025023fc", - "0x546800bdad232ebcd15ca4a15e74e0bad9c1f0a8488797095900273932280d0c", - "0x85ab077a505c4e0112ddffc52fca1a08d8868b740271d474ff6e5211a451c24d", - "0x8dce8e8789e21e096136fbca59e79511f63cba3d3f91fbd8dd5584a6837e4d5d", - "0x1ba5d8a59539a2dd41cdcf40af0e4e0fe41d0b840a6cb2e388efac0db838341c", - "0xd9503acc8efb33e700c4c70878b46a928e1f61de25fe6e93586cb7a34ab26c0c", - "0xf5b2ec428fea0fca37cb44237e060b472acd11205fc5825b0899235f9950ad9f", - "0x5099403d49c4be182a0838de68324dd50d7c457f84157417adcbaa0f92ddf64c", - "0x40f0ceb3ae983ef73b79b1c3e93d1a741bd2620c50f1f6ee1bdba8b1c8f076c7", - "0xbc4040b4712fa08cffb7868f0b41a7f0f8da7d591da8896f467028437979850c", - "0x39fe703d511c7b9e8527e44d2f17ae7bc01da4845a4ad877acbc14233c1e7280", - "0xada7144fba64caed4cee909d14a306925afef2d240370ec85d0d5dcfa43c18c9", - "0x3862b40aa1f8222f424a6d6fa45348f5e7d572701be890586a6b9087a977ed5e", - "0xbae5129ae5f2cc91c929dd4b716d1736b03af127e633f7a9cb57a2b045fc9f6c", - "0x2a6cad932ac68fc5687871ee322563cbcb6b3eb978581de10737165b015dfe8d", - "0x8e1e6db9c2260c262481896cf22698acab58c529195100a4332fa0aa08385d84", - "0x1f38a384237fcee079b971aa71c97f36ecfce1eeb30c9bdda4ecdeab926072ed", - "0x2b1c080df5f7725c4c69281dcc9612b142fd9532ae060f5cfba1bdce71854188", - "0x7aa78f311a85f28a7c2363bb6b5af105e33f0e5c96af83d4e34bc7ffd5bc930e", - "0xb923a1dbe5611771afa4401e13cb01b10bcc95aee1502590bd2b32f0fe7cd5e7", - "0x13d1db98b9811e2282b49c46c5b6289eda7c2d46ee89b354f878dd7b3a234f3f", - "0x945f821ffb226364cef42e509d4f2af0770ac0d00ca21de639eed0cd4876b77b", - "0xafcf8c8871f48d13cad81dfe3e180d870ca0f4795fa178a3eaac6abead58a4d3", - "0x87851815137e4f8dc33997639c17ac1b9b687ca34747d3d58f34b47ff220cad7", - "0x0bf7f94232ecb6a86e03ec4fe8273e6c6125bb7ad1433fcf217eb53b0c2e5c92", - "0x471f021954e1657ea61acd5f265eddce0dea0c5c731a3ae144d46251d15fc7d8", - "0x5b08773ce3fbb2670564d4bc49c9d2e5e5dfcf7d76f33da3aecdb3acf7a33e54", - "0x7f6f25f1cba164401bd9e59e9d976263b6ea1efffaec863316291f5725a6e705", - "0x42cbd8b2b4c7889c9d5449faedcc7249011332be9010795008cec15666aa9d03", - "0x54fea9d9610cbd23d8013bceb95e4b453b45dac5946e714141fa6675e1a79854", - "0xd110cc1e0ae11a1ba964923c32233fdd07fd5d258c81e420aa53ad2e6f637e28", - "0x1f4547eb2058d3b0beacee9e6d7200cbb5042ba0b33cf3f6522c71b83cda22ff", - "0x0e5b8aa76ed29a6d150b848bbe151c442a7de6c782fa1f5ec9d6b60155e5f1d7", - "0x665989eebcd06908b02db1b022d20047209d38f8840e88bef92eeccc9dedd08b", - "0x6a6ddd746ed465282651edaa1701999ea9b5b2db6c37b37afe0b1f91a03bae3d", - "0x9cde4996bc407146502c950727300683474176dab6751f981b975f20d6a31c10", - "0x07eaf4e65e9961e5b2072e2abaaa3dbe802c1cdc48b9dfedd52843829a54cbc8", - "0xe5293358f5c362425bb44d83e79d2d990dfeb7a6495b43a43ce3bff018f74ada", - "0xf1b1852a310ac269d78f2eaade9aca6717ca19b2c48bbf9c8077358333cfc463", - "0xb57181c61f5a692ee46c19f64c3396bdf448a6b0ab1463f59cf68698bd10bba5", - "0x83fac07398c500fa021f6b79e55279bf49c8c1e0e96f79986e32589d2a7adaeb", - "0xed88db70b42f76c1452e9b410e2584059cb8fcbc95b4480135333ed6c4916b41", - "0x5b296fb879b3fae9103a3e91ed2f7fb74de9e9c5070675354a532ee6edb119bf", - "0x62f5be2297ab556625e80fd9b03291d8fd83e74af992e3a07d0961b185b5b880", - "0x5e108d7fbc6d767c7e27b72cbe10b642ffc9ed80c2e5b9ca219eaef68f021325", - "0x61e77b16f530de4308d2060f35899a9e95ffd73d8e524ef43b80460a3d8ed95d", - "0x86cd27368a871f4c06eaee0e2a141b78c6dc00a5531a3495a12a421546bc034a", - "0xdae627010cb7e75f0b6cbf1fba4f3cf15e59697ce2a865ba8b69cb64405cbe87", - "0xb8673ef29f76daeb7fdba5b75908c6ed83fd96803b20879c449d1fd9af41b070", - "0x08791b77ff600cac68326d00d94933cc853b69359a40fe4e4306fa50f3db64b2", - "0x6111f5356a918b94fa8dfde7fdd1bbae9ce941ea729b15d9ccd86274556767a0", - "0x4b5f974e1b95e0e2c87dbf21c138bd4beb25deb362350a5085712a931811a8cf", - "0xc72c316113911b282b801f7ddb6e870f8e5edf711bdce06382b1430248732875", - "0xf70ea2f05532bed9884c81a1a03855029f22b5066cd97b20cbfbff7b9b68b188", - "0x9d8a61ab53799cc292bff6879a85912b54bd78614a73c2cd0fdfdcccd2c208d9", - "0x56511866e3e3689d00d21b34c7ea471fd1096e8f4b2fb5fb0a6f15095d956c7e", - "0x4e28cfcbf428bbad414a60324ed466352f5d5b41b044d8df1a46e124cfdf4a3a", - "0x6591fd1a46890b0de4c927ca07ea27bb4a120a3637c7cb1a70a4c1ea6f42c7ed", - "0x2e009aa82f01adec2287cc28f22d6368c26d28173d42a5c526e6775f7eb33928", - "0xc7363139b3475fa4a0f6b0dbb86f70660486067ae23eb3406245fb445e7981d1", - "0x6176bef2af27b05ccc2136bab019e9ac25e8b8fd827fc4f19c14741d63d5e76c", - "0xa7c5120a9ddd815b52809d4ec16b73775133413751588f10e707bad274f4cf31", - "0x5eab0a1f651856d2c35ecc6f6b33ad285296021f33991f92e91d018eefa70ad0", - "0xda2c82132749852c24f2857a75da70a12472d442b6cb7e5ac551ef1646514301", - "0x0d49f6c38c25987be6b219ee2d06092790555449190ed95d0f362a0a633f0450", - "0x1099bdca056b138051f5fa67352fc972f9fb12f9544f1ab2250c46d8f8597c5b", - "0x51509e7be3765fc768ec8d53030e6fb23047ae7047819215a6ea5b79f3c96122", - "0x7c9e5291c0d56c49bbd1ef19057b196b044cb1d05ccb70fc287793750c2a82ee", - "0x41397b9513e3a4196d6bb00af809065ad5803e4a3384251b8b733ac820b84241", - "0xed905526fe31e9fc9879b873afc18c0175c315f282ccac73c1e6d13e0daa0c16", - "0x075da3d126c26dcf1f929b3f53561828a6a09f7386e3b169e402d28bd8a0cc2d", - "0x67d54555df755a4417831e623e3d55eee0481eb5e8984faccc45aa0c1255f2b4", - "0xc6b00466e7b14951514d52f62f56b47c016a76c3e4173a47a933d69d12a7188a", - "0x434f9b5e8250b953ef7747d1cb7092f8a911f2ed627095515899a5342b83e767", - "0xb99273603a1c4b2ea6aa1efd51e66dfece99982f11812f6b6cacb028f43f9590", - "0x7a8d8d26cef67c294acc07588626d87969544475f26e771190a278efa59ccd82", - "0x48a7f38cffc5ab62ec2ea284ad9f42f10b0c63ed5561818afad444942bca0895", - "0xbb3c61686b7572906fb600991a401ccfa2b72355412716eabf1f6c3a3f806bac", - "0x69ee9f4b988e650981f7067a22301df3c448c34afc28433b00e27d006b1c712a", - "0x9120d910befcd77d6b104c703f7e3569434eb53ae773dc85b40f0e441cc1f636", - "0xa22dccc8cf91a63b9b331e1f7c9b25c0169300ba4306f9de50e2b374fac789a5", - "0x2c08520e550b1a695b567df1e1f9436ceee1b9c7d09df2c8d84232a1907e40ba", - "0xccc561b243b2cc3f1d79356ca709afbe95982e25478fe9046736b092ac99a21f", - "0x60a293cf021470cb053f5e27e9ffe43b4819755c3d0ddf418a556c033abdc4ca", - "0x7f8a97b56a6b66cf229c8a107f41cdbabc7d99f86f3aa175560eeaa13e062768", - "0xc6cbc4fe07defb00e5498a9c3e45909325ec1d5abe5983cb2f1d1887bf20960d", - "0x70425ee97b08771476a8136e35ac1bce6fde67a96c242d480d17e5a4a90e92bf", - "0xebe932630aca0dc961cb442d9746ad098c721eabe197960b847e867a212baa8a", - "0xb0eb66bfc56500b13bb50ff9c39eca1c00539115cc19e1cd4f5fea8203ace35d", - "0xb85cffbd649d8e197230ba7372b2c59be0380740b06d75052e45021c7512345e", - "0xd1c7606ba6e7beb2bb0aed775e4a40bcff418178ed4e2ae9b9281ea5d4c89a99", - "0x250454e85ab809adaa6eb26c064dd560f0fd55da9a5057043724cd937aa0a442", - "0x4f73342c8a55a77c3b67402d5c58e77289e432d04c4ab0e94afbb96bab22262b", - "0xa71e103396dc63a998fbf2712980341b7da6a47df39e68130ea8abcbf0d997da", - "0xbc3dd28fc3a3ddd169cd0d1d058e9d43cf03c258e89fd1ce2ba66a6b18c86591", - "0xe50edb767f9492393223ab088b4583771b5995187ce146e205287e06f664d30a", - "0x55892af1bb7d980edd5c22930c2a9cace26e74b09b0bf393848592e57a290ff2", - "0xe62e476351a206e25f067f4d80a5b528a228f5dea6c103dd4067339699f10743", - "0xc9125964a34760943e51a561cc5e104be4755628995603c989d638c57dedca28", - "0x7ee5d6bc020739ecb3a405c9e684ae902d6e266492a0e33ac1b42d80452dc3e9", - "0x38030f326e2607f193c1cf8d9c9780b3867b10e04f8057ea682fb28410bd32df", - "0x9d47941c403ceb4209fb51ce3c1ad8b89819f2bacfb9990647f8568984a75b06", - "0x24497cb73e87b012a7363218d1a583b3e081739a302bc040e1c9907656f6c2a1", - "0x5e3e695530ea10576581ab7213466f284d2e377f607e7c59553611fa625c0800", - "0x9534cf9516382d223daa23fc333085704aec15e4b62a6d9fda17c481dfbb2c18", - "0xfc04952efe456ebd951406046fd35c237d6873d98025cdaca976db02ebbeec2a", - "0xec7c47cf69040ba41f49b76eeb79bac1676e206e85ca9b006d873da582312932", - "0x2a58960a118d1a76e34f46d7e6eea90e288ec959ef16e675606c37167c64d927", - "0xfd21855fe75953305a7c8e19cd2d18dc31468609383d8fef3c611d1dca70cc5a", - "0x7c36b9b06490dba54e9c3d8116dd37200bf67e2d3b99e7b5f4b1badbf65f451d", - "0x58b631c11b2e4a81b8648dbc1c72144c8a15ab3b1f906c4b5533ac1e940cb0b0", - "0xce69899317ef20e930429d323827224372cfc7e29379c60cd24c722450951d02", - "0x0ae86d2b84581cd8d9592b296a60a60f7cd394719f4fea13ee9ddaadacd0f9ed", - "0x6c6a0784c5a2d0c3c0506f69e055a02a1febf3f2dded61c2f26ca7740a6fd9db", - "0x3bbe5e8a57741dc74eabc1a231f4722e63c4578c694a5d52ef1f024e1b344bf7", - "0xfab03c10df60220e5fd1d6c3918606bfb90d4bc498af48b747fa217aac63a2eb", - "0xf490a009f14a88780da39859b79aa0c7f8655fbb3261b422f7b8a3ce21aaa14c", - "0x2153ae46fd41c837373748a60d5452f1c4cb0585f2eb6f1f329566b2000c6679", - "0xc91e6a8999eb99fa7e86d4b661e2eb15c306af8a04a14090e915cd1821520142", - "0x1b1d4da071b219b824052198c0cd5685b59a3b9bcdedcda978e28f14579532e2", - "0x5276badc31ceed3b3e596a7595024995e51d091e4fa58f6c405a45e9aed75f91", - "0xef571de5046724ac3584a10243910d2d25263dc3667b5bccccdbad5021e4c502", - "0x17e31638e5e973e28baa4799a920a9ed5921326cc7da05ffbcfc10b2fde376cf", - "0x935aa2b075335f41085f33dcda503a0437740d929c3824afc4cde5f1824b77e3", - "0x43ba24acef98bc089dae5b11869b9be3c7bcf0946ece14d5e196f1f36cb7cc62", - "0x18fc58f6b87d7fcb01a9318df66d7e986b77d7a9d46905767a69026a3d09c550", - "0x91e5d60399482b861a8ed1d9141cdfa7d11445d60ac1a21c28038be23772ac13", - "0x3d9b40dadf84ba03636d18737ce3b577b9e9675f595561938b0fe8d07b42b52e", - "0x145b9b2e5f21b588b0496b467cc2dcf8add6ad8fbfb7a9c9f3e2a04caffa3d7d", - "0xb4a2d0a642e659ce1c3b7b5d215865c08e50c7b33f0a6244329e5a2e53eabc37", - "0x492509b785ce0bf040b59ba9b50f57757090293d840b78e48014e64f92fc4a91", - "0x533ba967170734cca134585f7acfc48f5dd8457c2c051513555490a2cca5f5a1", - "0xd344b4934df76d3fcbeb0343a5c6e61f660a6e3469adcca9906828623faa9c9c", - "0x63a3f3e7a006e04647234ef43b40d33e03da66179c9165a40cc0e91b6fe29ca0", - "0x4be159b2914753375587a3edf94a90964fdd9e89c1592998acb1123d751d0a70", - "0x0f6d760899b6b4d7db6fab9aa3186361a03680c92de8f9f95bcff1f82c14d5e1", - "0x856725ad7e808334d52a234a0b13b9746c6a0219b114cbcd15d3542241340608", - "0xa60eff01b179e0895e2eed8a388f3393ae564a166d1be4dfa4b9bab253fdd008", - "0xa8ea401e7ead4eb084eecedb91d5e5ee547536bc15cb9b801b25f8635216ae90", - "0xcc77a0d7cc348b9bb61935397ae38dd6d6dee596e0f83ee95969128a12350b89", - "0x15d7e3e400ebd2828a6ccc97ed2c069c08458ccad8f520c8bb78fa400eda6a1f", - "0x477b93b3f6677a548b985fc1d00d8c72afe7bc48246865fc3ce5bcbe5502246b", - "0x691516a44309895798db0c5d940f9dc43ea548a3acc986f1bed8fc2d203923a2", - "0xe2a60192e1327bfc29f48179752441413c0bcc401d3faec66ff8acb69f1b7dc0", - "0x788c0d110678f201199f5789083d78e0fadb0b93afd2e08e670d1de09d0c49d3", - "0xb93078ba88b186b277f3174ad85499383ff9fd56db0e4d95ef350c9573f94e19", - "0xdcc3eb77af8786d5064f3d15ab184de056c08b28c7a5bf90d604f080f0db03d3", - "0x8c39ecb82bdc96c995e5926b15e63019f011ece2b35322adc7eb8fe90df95410", - "0x53ce5a4e4f689b47a0a7c1b72540fc87272c577503388cf05656c8e7a5aac5ca", - "0x667dadf6d3ffee26f04850f0dc2db09f88d4e9df28bcfce4fdbfd6c5666c96e8", - "0x8268ef73279798fb3b798609b15d8b57874b247efce7c33966aaff68538af0ef", - "0x493b30f1378e1768056a4082f1694385893c6a4011f03101a81b8377eb27d5d6", - "0xc444d87ee2af7e250642421770ae6d1d6766863520a47147bbb609cf48c6724a", - "0x1408073558d4ec6d97cf1cc3c0f0cacee31283f105300578e3a27d8ab8377bfb", - "0xd72bdf26e22a93a668867753d35868539c011d5bf1a381d36341a676571c1f73", - "0x1080a36ac0be6476902b0aedb832b15e1eb4997a367d18415ba590f426e3c716", - "0xd1cd609b0ed33ba8881b0d83ad46fb9dcea0d6de5b6a7924dc318cf0455f540b", - "0xf0267e1ef1cd4d8e373f662fa3cfda5520512bd33b406726bd3a69a39d24b5a5", - "0xe1458e86aca39813bca0c26599296d59f8c651ea67e627d124f2b7c5a1483e46", - "0xed9c3973a503ccfb9d1fe3791a741af77a95364d0e6559d816e880391d74d4d1", - "0xc0089751f9992f792345e7c555f13615e621b6fc802cdd61e08d676fda864c8e", - "0x8ab8308a652ecf00de7c867fcd2eaacf84f2aac65adf13515af3fe3ee7a69be0", - "0x3081ecee0be32a0b842d93d629adb79fad174fc9c7f6613346c0ee44ffca901e", - "0xe254a689eafd19c6686dcd89a06b1abb9001499aa1f03414387fbfe2b19f5a4d", - "0xa92bd85cf194870d1aa15738db60b6a30ca6e426e099351560a8ce5d3b13a408", - "0xa2f57cf261aab3cfb0928fa160be10a9c257bf2a8f1e51103d4e5ab9f9ba26f0", - "0x4cf15ba1d4ce5e51025a2744c7355001e6c20ab2e1b537bbf26f120726df2bb4", - "0xf70f4f87a77b54faab70f1b0cbbdf3debc966392890b919e1c0509ac1c9b8ee7", - "0x28986d5a5ddf44af8fbe8a68b8656ea5dcbb36551785c6cd5121a17ca33b608f", - "0xa859cd6f693e4065161d56cb22cd0d6d5d956c420b956b85f9c0a6b514b81239", - "0x3142bd457bdef3d22c0ddc07126fa2797dc66f5a6f5cb47f6856e1fae2acd5f5", - "0x13240195f63e790c2a170e0d80fa02eb3cf34dcf201b1e7a02865f70e50ec2c2", - "0xe224513d0d30dcb59244c59cdbe0a8e6e7693437aecb3dd1a6355835699b63d8", - "0x7b219fddafc455ef34378dd31249ceb4cb23fc848f7427f3128b91abc3101a3d", - "0xd4e7b7f004d95074b19c9d18ac954427de24207b3d9dbb7a06581c9cdd4d2366", - "0xc7db291a8868c58260331d4c36b0ae595e8816398a7bbc5fb61e00ffb4a2cc48", - "0x2ae7dff7f6e63d0324956b2b8dbb022b7069f392e0187abade6bc63b01e3ba6d", - "0x81e0b05aad2ac79beb89eb38b6a7455e4b174dcaa9f07a7556875d036d64ac1f", - "0xeae95f8e34186329c5f5c11b4ed62a53d665092b0d6559d7bc91dbaa99ad3ce4", - "0x0bb11d748a73a1b82f42c2df52404e834b30ded843d28460109d5177dd75f3df", - "0x55fb0af273730208f0a197862c7d0defc91b6c47b027b225d3093a723d2b93aa", - "0xfd43b8ec425e95d361c8bafb6a239f4e3c9edc68631e96777264dcf7bb41710e", - "0xc48523fea3c7ea518327a5bea849765f088904f8cd9f69f17c7783e1ba71a436", - "0x0d1a511231e15d7a37f0695422cb652ae319ac71ee98885f4d2c3d14f14711b1", - "0x4bf7cd135402f0055b423920ad92f71b4064ee0d7f2d151f82023c222d0f2286", - "0x0a682e8df046079882a718790725049059fbfa35171d43ea830ba2cae37c0aa5", - "0xa74a929c762e8dde59388c91955eb36b04fb56dbe4a1ee2b05e4fd841222cd29", - "0xd69beba4005e2b8925b6d7fcf0caf3c1587361604152bcba34554ae6f669a1be", - "0xcc56728e8f7dd56d4d6afdb8f694429dfeb4c552707c8354fdb7ea05fb2af24b", - "0x055228dc295905b467901461b4409fa8de5d9ecb5ae74009642918db39a0c9a4", - "0xa83391e094c0d0ce3eee5a8318e40f4035ff66a0c259e3e089781db320a362cc", - "0x517bb360f6246c1317440f8dd5d06bdf09e90c552f65c86141be3a57c3aed460", - "0x156c67e332c3285636136f7984b7a82baef2fd7362b577ca59697fe398be6686", - "0x2b1b1689e6aff6e88d7baa7beb7c8f562c1136b5ec59048b257ee418c84458ba", - "0x51377f007754fda7e2f03df2b57f8156189cd11e99dca9a2b8de264fb899a734", - "0xf553d083b83095e0d28bf5c55e67a5199eb9fa906aca202798fe0b62385aae31", - "0x2aac8ca12a5599a080bd3ca34aab0eb30c05fda6190a156572c6c2b47059eb0f", - "0xe73e24d314e4c9b1022150ad3bf04a7f2bb388b7f098b761c7e7c5645e9e4887", - "0x0fe5f32be6999f5c53c7510a4a4d9fc9fcd43ac628f76bae4e73deca7a0cc248", - "0x13596367afd452947ec1d1e662dd84b4e609656b834c5b5a194947edea1b935d", - "0xa0bf762235b0f768cea2dc903b53d677745871e3e4d4b2a3177e55e3804181ba", - "0xd2f59472fbedf386d58b656919cbae55a8fcf2728ab267e6654c92f8521dd8eb", - "0x80b5903b0ad0752832819d16623b6de6744930f16a4b65e6e247b106e81cc896", - "0x2937d2a0713811cbaacc151165c173faf17bbd48a8b3eedda0abb5d9e4c29688", - "0x624431382bc121c155c1f630739254ea7723af40f9fdd59f805cb86625aec467", - "0x7f25d7f03a06052510c4b273462e0f1de88a75c3d7c9b8bfac7463f87bfef2db", - "0xebab10354a48b7738601c8a126558601c27ac64c99a37e9d96a1e4e0b606b2df", - "0x4fd2600be9f6b69c314ca499198e2ed139c54135d9953f559a597f7a90c33af7", - "0xa6cbb5f10a4fb0fb56e0b5370deaf3e17a5d9923681aafdbe19e9ebf901f0e01", - "0x02fea3f0c4decf9f4415c2cde324f0896c50796a816e967577b908e930bb172f", - "0x66e1956e75b83de2108d3e5a8d420073dd7a7759052b18ba57bc9f73a690b59c", - "0x7c1a01ec0178fa52df7bed4253a53036778d16c5f27e9bd8d551d8566a68b6ca", - "0xdbff162f6abff748698b1132eb5f7083aa663eaa5f0b45d23728723a8fdd8d41", - "0x235f6827df12dd625ee73194e2dffde908478f3ca7b94b39034c069fed46ed55", - "0xcc9aaf19d6e950928e182fb6da4ade8956a9e0e5912df2cdbe40ab27f61784fc", - "0x0631903a6b2342017d657ee0d46a2bc4fa596188dd07049a9a3e8a6c8702e82b", - "0x507efceb9be0e626757b435102d7a457519b380539601dbb0c4b4eb1be0b254e", - "0xefa62044848f585c643b41d1e7b953dbc0aaf48c2e1d1e55352dd0659c2fa862", - "0x394d2d21b55f664af9883e632ab5188d8a590bc32eb512d6a0b37c56415ff62c", - "0xc8866dc79571cb751178bcc23aead8fb58f1b0b4974924c3f5fad97e49e98902", - "0xab28093bd80beedc7f0ba976a3f8f0949dd9215f7e4a58dd6d58e856a1fda7ed", - "0x75b7831f7c721f32836fb9d318e0b59790ad1bcf410f6daaab45a6747f68efc8", - "0x6663609e8afc148de17db41d13fa3243a7b1965c500b0e1c6b4a2ed0d25e6410", - "0xed8e18d8c7e391293d67f47f097572f0eee4ed3025c52a9353ac525b7c011941", - "0x9e878c269e15a6118fa6d817270e83fad9aafd8e02ccbfec77b7cb20854fcf2e", - "0x50f28d14bf0f7d3a9ef50cde5da08bc05ae7a17f1ed49444f2e55613118549e5", - "0x69cf59007a8e108c4919e9dd9a32476939d1458f4c48d3c3c3d578ac133e041b", - "0x1a3a45397a43ff3dc1257821b11c70102c62e2b5944cba93f486926c733d6611", - "0xca9d78286fd94a14d13f7a55ece595045055dee0bf0778b37085f9153f64e8c7", - "0x5f0dc585dcfc2e42b5cfc321000b9f54524d0df126bd39ad88fb2ea6cdd79879", - "0x0b4b39eddfb68dd783652937ae5683f4fa0977209074a6c7fd5eb8ba3c47aaa6", - "0x522170deac3047ab3502a909e9046702786aa3a7afad28d8bab8db83e429d406", - "0x9f8949e4215b2f88a16ed46645032f1464960c7ebac5f8613d45e68fdbaeb907", - "0xce240564d0bb1197d8db238c4cfcc18c812ec19fce22eab81da86d299d85b54f", - "0x0b7189fdab65e2904d39da44e502ed9e802e71c29e0c472ad5aad6c2ca5dd129", - "0xb348ac6fa88bddd70ba78e248a9b68194a941334d2035728da5f435c7ea59be4", - "0x685ffc580369e72f2a955aee3e534c8750ccaa6fca8a006edf70ded1539ebc43", - "0xbd30fc47b0276111ce05f7324c581e9baf6be4f8f295973f765f046675f03b16", - "0xca8e232211e0f9d9d770efb0d4579df6359a62951ed016bdbc347c7a16e2d744", - "0x9e89d6a8bd44cba906026df9efe6035571c4e6ffa61fcbd8bd55c283e7ccd72f", - "0xc825d5d5958a0d9b9c91f184c70ee423771d3eb7c82858f9f061c93062ed1fe5", - "0x13aaae6dcf997bb119feaec6e63f1d820919d43a556fce6fba9c5256b4fa17b1", - "0x8f84d37191c7fc2645235ee786edf175dd8762e421ccfe3e3d208ae506dad5cc", - "0xb15292239abff342e81d8e864a104283a8f34ac314b7309da0e25eb3ca07ef86", - "0xccb205c1bedd182e2d84efd9c904360725ba55948428a27df11c442896902db5", - "0x6ef7ac2bf233dbddbb2f544aa4dbdffc4066871ec46ca0c2d52feffb22c10871", - "0x928c6527362c77cee4d5f210a058f99db0e894f43824d9fa1390f0d12f86f83d", - "0xe40012bc2be876404a7d2e46e522f5d591434affb2aae462bbe141654bbc0e68", - "0x9d84b3d531754063af426594c8517516b506b7513e6522af6364a50537f1255d", - "0x7e702e849342a7bcb54ace9630dd60e25699b5337491c2ab7db5aedbe0742258", - "0x3dafb10928e7924f1f0fe45c5c22d19670cbb249f5367699e8e9534490db4525", - "0xcf5ad9ac52ee98b5158ba11ac59e511641a40a63b5105cd40d2f0e76a03638a2", - "0x726a5fc40b7e00ea477e7934afbbe4717717fb20a63f2a6a23e3d5e4a8c4289c", - "0x700616f25343c8c6ef208845a494c89126905aeb24179ca86310fb94cfddc704", - "0x4a0c9193314e365b26d9e0dd4b3948c01b3a04842a816a82a62e387915178160", - "0x396a4301241851acb28a25ed41899c338e78543c3b4a24ce0945b9cffbc0b5f1", - "0xdd1400c831bd337a24c8a272778482aa72521ca705588757cd15cf9e4edafba7", - "0xf4e30c77914620e0b54eeacaf81d882b37e327667ecb2b00b8e446a9966131f6", - "0x0122c2b14b1a38670dd7b419bae417c92e2738acda9260f9ed7e1c4c478dd489", - "0x13f38613722e1ad77a5711bb5e87800f066519f33c186e395be3020b26f9951d", - "0x697aa448e31fb9567fefe706f338a9aa263a676fdd12884197a51bdef1290491", - "0x1dbfc227e7a118f1721b7918d7c397d5700de868d7f782314e3d15f314821027", - "0x0a1bd08dda388fcbe87c4a1ad36b973d5eb1cd42316e462fff555d51033cefe9", - "0x46468eb78fa82c6e85db8b4698f6dadcd70146b898198e8bbbeeb767a29515b8", - "0xbca2b6e0d6adcc468eb950ef14f6d523a2f69161ee80cbff341ebb2a7ffa1850", - "0x34f9bd97fe1279a33b011dc0dc0be14d4fec140d28cc923be9e0ca371df28561", - "0xf6864309d0005da1f8fb9cd6c829953c2dac386cf278b2a17a1234c18b140e0f", - "0x048eeaecee39626c3e4b74f795b4e114e5e28e2fb43055213f1646b2c368f9ee", - "0x2afb516e8b70d32ff7a3570f79eedbb7938c3c466cc0fcdf26f365bd3dfc17e7", - "0x5f909f050567e6e1e4eb72cfeb32ddfaf21f5a2b11af2a1c986d5c0ae1a0396c", - "0xd4eda1725219b7cc353cba2e52a8a4ba04c7e788c872daea2151a0ded5c2b099", - "0xdd87a715a242cfc1fafa12b377738417b8fec4fb666fca9e0c6b955dab4fe182", - "0x23ada1e98cf5dd103e47256bcd1e2288b95cbf1bf3161c7ebd9fa7a22aebc93f", - "0x783ae20e558493e86af4a10f4c2a263774a468c86a7ae08e2a47bf29a792def4", - "0xadbfb8f049f2b2b55a8a5b1848e99d13208297576d3b293a03d18c95e6e43ecc", - "0x0fee2df760f5abb966a150b120406fb8eb7b7c8970400e0a5446431523840d89", - "0xe0283d1ff97fea7d9cbe32ba780718879c9d117e54a60ff5bfd9b14dd2cb45fd", - "0xd50698f580a53978b1f7a7b8e89efe5ce0e094a6edbb1fae899b28a00c245d4b", - "0x090fb313663f5f5ef50f39e9fa95161cfc2113d78df444039ba775a9c8b319c5", - "0x01730bb508aa57e6662c7496c1f5505680ea5cfd7df0f2be19b53726e4d02b29", - "0x9dfb58edffcdbf0198bce964f17a80bf49198c3188e6bfa7cadd65ad8eb5068d", - "0xa2f367c11bf28bbe6eb9600ab5257e20c5723c4afb00f2c239639f14f08b9568", - "0x959368c2bf88ebc8bdc79855a416f60599a48ad988e2138b4906d68c0b2de560", - "0x7c592090a0f000b0a54a1f87cfef12e8852f768b45c3d215e98c515794ae38c9", - "0xae331f6087d6d7fef950455b69719625d92ef2daa5a43ab87ec011768915c8b6", - "0x0dbafa99763d66a876aec21f04c613e71d990dab0e0b63487d9077123279dfad", - "0x6557a409e545827b8319bbe3bf8af198a861ac72214108f242379ddff0b641ae", - "0x950b7d33192044a93ddda170eae89170c22ef2fcb69276e345501be10885b2a8", - "0x6c448f1a1128f1fdde6413b715c840f08b3a7be02d235bfdebe4fa83689e3c98", - "0x34f0f02fc19b11f7fc6ae3a6462d6ed7902f9fe91c392d5f0045561101f93985", - "0x7c20f9f63293af90f5e74ca780602aee3161c0419dc5082014e267c7740f7d70", - "0xe6a92ee909560901da6af970417e60c90badd5375a06716b31beaf18c0aa8636", - "0xc8407118d397623d12d8f74bf56667c3e1dd5a6d7a0407d0173cc3deaa9b854b", - "0x612345790bff5f5f6404a8351a7fc2a514fb465db99c8d5dd7d2490e210623a1", - "0x4963d52b2c174748924030ce6693b125113550556d0145ad392ee98cadc9f528", - "0xb3c7da54e50a98c3971cc4b72bf975749f2ab5e6a7864f811079d779e7f596f7", - "0xbfa1711dab9f4b0e82b95a5900f60f3195ebf8f93d7d9d489ef9a05414602f41", - "0xd028ce049e1e4a62c3ce1fc9417ec7c2608bacae61f5653da317ca8e83cf6766", - "0xf21938c46a71ed8b5ac97ee6df2388e8c55fdc14d1c11ab525d18862ed6d1bfc", - "0x9b2c3f3396eb2be6b09ad9a9bfd718d50dafd91d232228ea530d68a4a1803223", - "0x672325d948f44f2365efc3e73509e673c2ae763a6292946a0d3a9e55c77cc58a", - "0x72b163a99d809998e87e4679b05a2d13d891016d8cf613d3c3ca8464e06b4b0b", - "0xbbf71a91472273686c2bd961e7ef163673b225c8571cf4d9cdbc25abbe7c986c", - "0x1717c5acf94a4062426475a4da78fc64310edb44bb3a7777597bd38b8243fd36", - "0xe701e3e57d8a162060e4926cd876645f30862a90bcbbf7a1bb25147bc849d7c3", - "0xe1601b1713013c54045b17bd31bd1548c8e88cf5cbc0743745253ed71436abfa", - "0x7e829e487cb8e902e8c573cd8f5f40309d45fad3e18ba95add98742f34021100", - "0xde0bfcfc0a7ea3cb1dbfdc4b97e07ac8961e87b172199e2db96a9f3d50ee08a4", - "0x8a8fa6ec0bfceb9c7936f7cc6710644f14d5d2f53bbe8e61ebdddcea892bfb9b", - "0x937d50777fc97596beb74dd8cd0a873395307f73b25242a3644e4b5e417d63e9", - "0xea42ad880f934c42c4fb31cc390db3839415691d34d07880454d72d8a008fd96", - "0xdcbcd3e2040fcde9541cfd4e2099936ba9631b3bce98161fd00ac478cec29d4c", - "0x4abaf5bf3dc2b12a41d8cee6179b699e72d546e5821537de6afc41b52a8a67e0", - "0x6bae0e2c7e47added25aded1c015e70a7636ef08d69c39a18570d6adce5082d1", - "0xa026ed1ec9d9784359996b33c185795ffca57be09c3b04d797e7869d5e7bac9e", - "0x2f353f90306a8e1ec19d138fe6e05e0e9b2a9fc652cdb0d565bb606e1ef6e906", - "0x7c2c5ac89c841106835551508d6fa058e92290714b7eba2f4900cefecaadc512", - "0x93ab889dd0d40711ce5f7ea8203bf62a45ce4be2a6772e21b3d20031faec4f60", - "0x6648314d63d8b97a43b08d46a8b938c16ab6c9e86726e0b7ea24ce7021bfae22", - "0x61a01393ab59b76fcc93bfccd294395b5985f99416f13375a116d49dc0f4e45f", - "0x48d4448ea0d7533e29be0b6dbdf08e35fcb1d77b5fa77af94f469e718cec597d", - "0x5db14c2c548786dbde38a21c90d5e020f7ff9a42dba40e34596d1542aaa85ceb", - "0xc6da00b09a6a9ded3ae155183ea064f8710665ba8f8c671fd023ee24853fe506", - "0x8aa669698319ed0934720348ba6bbf7c2324ff7cd7da19d70f1cd7a84b320c36", - "0x72cec022c3d512100894c62919cec6b0f023c592533ae789d88c8af41fbfab06", - "0xf4797972fadd05a2f034c25dade1bf465b58d758f712438d1098fb12022cacbf", - "0x2d6e56359df3c2420dfc12d7e519751e86499eb3ae3966e445dea2ce9697e63d", - "0xa2f6740825a17d124f3ffddf79ef11c6153b7c39d58c0705181247ccaffff8c0", - "0xdce5c6427da944caba1124e16970a67787a2c77ad378b9852b2e75f755269617", - "0x3b382bfdd96d188d3499a7d7645d14884b1db9952a7296f639c730ae05355e5a", - "0xa7076ced7a4e838fc71656336d61232e554521d17b8e6f9c019b0da54eac976f", - "0xb7ed718af65740c96796770a34969d077e625d8a54bd88a42a87b4b8f16d16f6", - "0x145f53c61eca53f76fa5f0bd9eaceddffee5057194795a42564a18f2d229a0eb", - "0xc4070964ebfafb3eab3ec4289355c7512d740fa6a2c08d92cf93f3b1b0e3dfe3", - "0x0246c044b729978bc210a52e10dccb89c22f9ed10909f60c137014cfadcdad5d", - "0x2fa31b5ba8d194a5863201d381e14d2cfac7dda5ee5a033aa9a3944cff76dc92", - "0x1df1768ab12b327e696cef043a3dcd8eb75d150bb4434d187acd2acecf89922e", - "0x7dfc139ce57b5f4110a48ce4e1c95b8e9fce7b83d0fe99e92120bd60c30483b0", - "0x63aa478875762360827069f1333ea6c5891829baf30d64d95072c28b14a7a355", - "0x4b468dd25a8826014ac17fdf88c2e9572be84fbee3a5f3945aed657743df5bea", - "0x4916fce234b380a5d68a2ead5434bd2b6916183da350cc03cc8b773c025b7a80", - "0xf41f640714f3514ec18f28ad5cc4c0d3d234df287c31733cd817d628a0a1a0f1", - "0xebfa72e615cae735bc4de3ecf6d22523ee9becd0f2276073504b634881e36de6", - "0xb778e9cd4c25f960f4e841b112c6363ccbc0166e2a968ecb619a50465dd8c86d", - "0xc3fe93c88b5e27b55fb238d94f8cb0bbf5bc93d4ee1ea1cf8450f4cc9ddf7aaf", - "0x0e5a87855596eefbde0f62867bbe3e231b0d5c1feef517dd564212b7c2bd6511", - "0x2151b7a79946aeee1d43f23e12cc9cbac2ae73cce199a30f23983110fd18adc9", - "0xd73c780aa498e8f7d33e8ba6a6b1cf8613d5ef6f50328c92f5f396bf9078ce57", - "0x6a914f2d36f781d4973f4145798730344d780c0bdf5a011f28c8ded1bf21e43b", - "0x7542ad864b4c158b1d2124276b96a6006872cb746506ede1204a5c8ba8843e61", - "0x4cd8e7d558198702e21c38160c7176e933e4bbfeae7bd0d1a127a0dbb9cbe9c4", - "0x83270981afc5f053129845af5a1289d20e9a5c0c59a37239899844ac29e54283", - "0xaf5049a81ee76ab1affca890e645b45301d083dd1c2b184df6a2ceefdc28aecc", - "0x3b126bf9cec4d38408de16abe4ad3e37fda0cdfb9b529a3944cec0fb0002fe18", - "0x207578a3c801ee996262bf48758c64dc5dee340acff86a019645b02d4e6c74c4", - "0x3240b16dc703c5319a04391025c2d580eac2002516a58adfd21e5e91a03adae9", - "0x591c064b39e7ce2796bdc6eecd9a59454271bfcef70c8c8b1e37ada5d6af7460", - "0x0a19a277639a56259a82385ce2f76b5a34f82b766a45a70bf6fdc3faea97b6c5", - "0x3b05954fb191e93a96df6bbdf9ac2c6dab554a395f12e8c8873cb3cd7330ad1d", - "0xd193e6db7ce63d8a872370e1869ca3b2b0f8dfcb03f660409e9291570041c94d", - "0x4104f38d0898f11eb83792364435cda9f9c796717c5f019fad67643d3a5f119e", - "0xb339df1509cd46b01fcd1754bb9aa7896f092a4db4ee948ba142ab99cf7e82a3", - "0x5ff4ceb016e91332e7756aa2ec5abb8c2946399833ffe9475ed36b1c2c0a644f", - "0xf55565169495ebcd3a4e6189e9b57643ed454354947dcbf0e8f36037e021a9f7", - "0x01ec24790062d9cadd54f7eef2fff08f2d4c6ae1ec40e4c14e2edc52d4df387c", - "0x00e1b46ba26791d220ce9bd1466bf7535561e8a5332244777ee125aab8404fbb", - "0x73cf9fc9d87af9c319cb8bfd4d62c7397c0aae246521d5bc65a617e1d42c9888", - "0x903c53b767fefc344149aea5c6f012bf806e2295d26ee09c725e7a7844810279", - "0xd3794732bb5866755f80f98f33a8582aeaa3a6fcd39e8020c3839f18faffc910", - "0x0dc7d1b89601438f6c84b22d78702380e299b042273d1e521d5ab66f78e2ae77", - "0x0e1d28ee0d6792943aba0cd4953e915f0baa572aaf8485295e8ec16d3792e16f", - "0xa317217fc59650d60eb5a170164dac6d67124adffb9759088003cc3995807853", - "0x69f85349fb348be33c270a9b381ab5d04e10c218dc901cf6a2d104873aed4b1f", - "0x6fc876e038a0c7282d68e9e5684ced830cc86529e6d059ac502b9eb1fe2a4a74", - "0x8c683feeed5f2f29cdf7009b6099da17d107a3b976db0971ecad4fe8ad9ca86c", - "0xf6bbf20cfd59c3e48f01bb532aeb3bcd0ca45235069cbc09bd8ccc622b409508", - "0x9c0cabf794a61af956116c0b7182d8ec78b540645d4e967714c72a3ba9ede87d", - "0x3839c20cdd445ec0634a429bb66cef9bbe5f94f8ac0ee5ca9deb6bd78a1d7a9e", - "0x90da2c6b23c61b53730e697cfe3db5978755fd58e69f9384fc69b8084d447cb9", - "0xf1b40a8505c734fc4de4805756aafe46e0263e7118e1116334b224109006329c", - "0x24c3366b0fa68d33b1a0f09d760759036763ef47fd2b7b13e83c4876d554e73c", - "0xbfd80734e935a2af2415d201fb87d1dda5aea542ef4a76dcf26c91fc5bff9603", - "0xa5bd0cd46eafdd399d8a227431745f5f08ad5d6fd8daa509cb1b10f50b5f0e1b", - "0xb4a541b63a8da08fcc5d9a21535f652eee04fc70cfba7da908e7780fa92ca6c8", - "0x26d6434430c7083b1d17415f4f11e53aaa79270dc22045e361329d0c9821f9bc", - "0x0db69286e0bd5f808dc58766d5c301ea9e88e22a79ce026d43639a14162ff973", - "0xc76640923490407a7983c15d05a28f5d3ccf21d908092b444a259e54ee5b3d07", - "0xc0fccc6411f5153146f6c178cc0daea0686c4c471a3423203933ded03baa8be7", - "0xa6b01ae91dfc4eec65d6913f8ab446288a103179c3a8cfccb125f2e3aed6397e", - "0x4ac1e929f0ffa7b020a599d90c252dfcb63836017e31904e32757c4b1fa2984f", - "0x654da4188d385f9eaa3ee0ae3190c7835a9d6b26a9970c092a4bb9c1f54b78cf", - "0x4e29427161cb1c9c1f7dc21c0d6deada7d2144bcfe51dcc2e68d921271edc365", - "0xa3ad2bb2868c5d5a733676398bcec315e546932932e419eadc1debd92b92bbcc", - "0x536472049b93df449ce20ba4daffbb88f9120475f957ad0df6aaf17c3e1a04c0", - "0x25ecb3940fcf854205f5f690886df3d1510cc452cfafe16bbf0e6aba639b321c", - "0xda2749f7287f3f04255cdc9f35e8612f9e5c81255c19fc0520c828db9f74bdbb", - "0x6dbb8ba3285e8773634794b08bc565b6b4aeb6f0b2a2a6473f323ba429e388a3", - "0x6b88e565b448346004b50ce69d71b1213ecb014d40b1ca2b62c75e1e20b7865a", - "0x024a327ff6987da3a1455cd913368fb5224c25c07468d899a9cd0aab51119bcd", - "0xb6efb51174dd044a376d3deeb4f0875c9a79e366cea2c9416e31c2c2f1dfac46", - "0x2e2b073b7a50d2da16698ca9bf07ea4f7ca34c9d1cbf29683f2dc4efbb41e7b1", - "0x9ec5cffe0496577c7d006b980a21d7e2b1845338a4c1f9522b84ee1351078e2c", - "0x94cf61152cd1f41b168a0dd2f92164e77f0eaa2280e74dfbc3a21236f1db67b3", - "0x8353c97cf93c5a4db1ac6b0c8d6ea0baecb5031e728f72dc80dd51eae7a71481", - "0xa826b527f726bf326b4bf5d140e4cf8b424797d768745107515f01f9dacc5c1f", - "0x920c77649a8f3865717ac17498642164350f2a1db0ec7a373d099e446a42c3b2", - "0xfd6eeb07733e1c74c801986432805266837a691009205af683828c3d5466ca53", - "0xcc69a010251b5b609e898c948dadd3a393b8f5911dbc10ec074a3aa5edbb426e", - "0xd60b9792e328706d35ab143240ef40c677f5569630abce688606d3a57740219c", - "0xb6a1a98e987617fd9c51810d39fab31248f2e4e251883e4a71c1dfb3949182a4", - "0x75a3e7c79f4bac4bd1efa81ed568d014b1a465b462ab26c6c26ee90e774d5164", - "0x1808189230382b5150f05b6b5e7aa783685493f3e89cdf190e23f9604d8352e6", - "0x344964d349c217124e6354e667d50309c3cbebd1bf81b9363378a60d8de8cb2c", - "0x12d6b292ff08dc249bb9c38351740018d598382c2ae1f37bb7b625d46f34d033", - "0x3115a238affc7cc50ad40536f87514c33a75935c72520d876fa9011651a819b0", - "0xe9b3c0e687e2cc5f28eb2042decce3039e2d296bec673c98cd9e264aad9f73cb", - "0x0330df9a1c2fe42d1ac3cd393527ffe01e59a808fcd7ffe2fbe918a82b4e1413", - "0x254b23e5a6e403fa1df82d90633c051bd463049d521eca349e33f26a4e22443d", - "0x56d62e6ff41a89670cd0b58f3f5842b7059027c1ed7f1f178052894dd5439b09", - "0x83b738db92b8e789d5502de38a36d20d78e92d6975e07ad803a75a1c181cae70", - "0x439beab00d517d81edd9e3cd2867df5fb9aa335e61b6203700426ad5b0dfc9a7", - "0x28ade6a2d26a001c10eca939e58dea51d9d0c226642d268e230409b301ce0a58", - "0xdbe038170721346bdba08663c6026c9e7573dc7d7ea2f56276ff95040d069f3e", - "0x0500db2e22ad39bf7d4d62c07375ab2f46eb363d8b9b7dcbe4f4f912d9168655", - "0x703dff8ff55e11f57ecd13101a677eacf1a4819b0424943a48da6a4a280a8a34", - "0xc21c01581110d5199576c79b1c6d1a7ec1bb72739454a38b997da81f731e7695", - "0x45cc74ac2b338a887bdc722c482122e39718251cf1319de75b9ba313272d8f5f", - "0x06a4e54aa37b99b3335ab7702d6c4f026c8f27a578373fb5853489b6958b15e3", - "0x12d1423a834f74fcf279e32a639ce5f4542001e421c9743eb905fed7bf0a6cee", - "0x49f1dc5818186e91030e09eb615a0bb82393ce2874f9ee36ea968cd6906c7a71", - "0xcfaff643a75fbf1eb89ae488902b3a9bc8e66b8c300e0e816f223675e5dc65a0", - "0xd228d415cdd5a37109f621d62447fe5906ba7462acb65efda2e2a0965c2b984d", - "0xb38ea82d658e85c65d3ce9a576bf6e6ffb0e1f1c7dd554d124cc8a2c568d1ce9", - "0x4eda30e35f5d4c726201d22a0c4c05c6986b73cd5b19c4af2f2f591bd81c50ca", - "0xde7d2cb40910c98cda5b17bf931b9e2761b5dbcf73de4ca6fd659cac415b7841", - "0xf6320ef9228420d1808b74b63202f96eb291f99616f76f73248e45c3d8c36f10", - "0xc6c03a85d998fe38f84ad79e16bc557722c04ffc3b79ac0e1d0940b2f59648c3", - "0x07be4386488ccccba5f162630241b00e8fccebeaee946867e2808bc2a93b16b0", - "0x2ab690bc438084f7791bcf9589c4fcd3d94a2189f40e98c9420071f2ea5e6573", - "0xcf0fc0827c824378e2c2174d11dea0fe34a2a4bb874e88c50e40d0401514137e", - "0x2ada7bdd5af69bba2b9977b811d6d611790ea9f6817701a1e4c0ff7b7b28cce1", - "0x19f78ed4654d9ea98d26f1fc808890f8ea49232647891973df375b7b4be84dfc", - "0x992f145952e6e56f6e0b6c573c052ad7b38f55ce6a07b72698be9ec4e325839f", - "0x184eba0a8a2df9c1cb81d331347c62336f939cdb6b26ad8f50803b685dea5c0f", - "0xb7f9f64ef6e4b458f6bbc6be094c8bf98a081ed16a9541f9e039a0427a949d26", - "0x1512358c838d7c2c6afa1137868c7ad0fe3cc516e3201549f3cb3d4267ffc261", - "0x8ebf459d29023a6664205d88b73b6fbe03f3a8d58f7190cc15a7c0b82849a166", - "0xf2cceb56f58173ae33637c04f6ebae6bdac71d203b0fe430594d3d6be971dbd3", - "0x559511da5e412b3695bd7c377f55e7883fa08f68dd5660600bc5e09338288b27", - "0x50e872da55a1653cdbce2bc2bdc5ee19f8d1ffaacef6af75bd874fe47b77f371", - "0x7a905e060419b238821bbc5513223483c106412663f64ff6a019cde75b420879", - "0xa328246a599423850df4012528cb5d61d9be303cdea4202f946b0e3a2a12c0d0", - "0x15e4b9a3a475cb5221e7b281c657335d04bb243266e9c75e46f03c0ff8ccffd4", - "0x835fc9e31d0c5a15d7906006d5b291490d52b5c79c3d777b34d497ecd59ddf50", - "0x886b5f07f5dede599b3c692660bd84300e74eea5f48834b4925b6f9dfed6aecb", - "0xfc835d61674acea24b648647df71787400c51dfb5892a2a7043dab45adcc6730", - "0x48cc0e8061b8fd5c812e139b75e0460ea142150dfeab913c82252a26993af6ed", - "0x984eb490ac031f55596a4ecbf57580350e4b9f266c5eb94431f371aa4a14a78d", - "0x3fc77c60434bf79a471724600e12efd8120f9f78e201e46657afa87f68f0a001", - "0x6f234e54de04b9506a5b78233d110d6329e30ea223edcb8e902ef3cd089b2f85", - "0x8068bbc755d0b10e40c8024660ac142d44aede73cd62137a63cbec48613c572e", - "0xe7beec3a0554febce53e90c838e6aab0bf05fb02ab13b446187423e4d374b04e", - "0xbe879a01ddebea34c5f6d401f271db75ac5852c5fa5e5d46beaebc6a7ed66d3e", - "0x67038d88e0920d79dc4083ff02591bdb181ed9778fc3954aad25bb78bbe9123a", - "0x19caa0b1ce83f546d93290a3f77b1ad9b08e7f1bd0245c9fc1a5347bc03c01a1", - "0x9a37436c2a0b2e7e576e95fb6bb6d4c68d301ec1201e72734a0c9303af418474", - "0x95ebbe7bb838501fca3f14ca7ef25dd5be7a1447cec71d62004597ac9c726e61", - "0xa043556767bed1e2519b1cd4192e6c300de50970e0cb369731c02aa7ee17475f", - "0x9b68ba75b041f0dd71145d11c681bda5861b31b43c4c9f8a0cec3fc65847b6db", - "0xd0a4d11096863e0c74387154f58f4c9efb2b947ae4ce7a1da77b8a4ea9f0c869", - "0x074a3e887f280751e7dcd1fd02f93dd12695b9e14a4fff45e2fcb3e26991c768", - "0xa9ea4bde6a319b4f053c92a76d6e72928a089d680eacbb3670decb749f454659", - "0xfed003b25b35e122adaf2a94fbb7069622846f86cdcb79a5e93e3f1f122cbc6a", - "0xa158088c237ee341658d410ff6aa1f43b40a607248479330fce34731cc2de3bc", - "0x62b4f39e1545eee1893e697e634e6e7441e8ceca5fc8be3ca8684cfd70b4b452", - "0x39063f1e2c8fccd7fd2220a595f969d5148b3227a635aee5d3da7793341de814", - "0x02b8c915c81e902a050090bbbcc51dd167f2ff075178bbc00966ee193da6344b", - "0x4d45cab0e4554fb86eb6657df7969092eb77ecc8a099ae09ab0e2ae264db61c8", - "0x484a0d21957e5d0d711bcf630102a793de1c16990d4f0be0f589176f6c9484a0", - "0xb797d1fa33bf9bfff63eec0a30a51d02f1f88bd400d0a6f4ef5f8429997ea547", - "0x5df2b265dc8181782e4e5dd25b32728605a77818598c5ec67fe99c6fc3e35ef7", - "0x31aa525b9dfa0a57cb36206643c4822eb2c1061cc7d5f21e0cfbd72023f8e997", - "0x9d7c6172f750e7d18593c71f36a3ffdea5f0e3565cba656a3b7e2ea361be18bf", - "0xcfb4ac621266fcc2f5b33e249d8989efd98820964f68540ba8b7e3af27b83a9c", - "0xd1c0c7aaca4e2b0dcfca44c2b570eeec6c4982512a50e6a82b65ebb6dbdc3195", - "0xdc4095ea235c260e67c4896e465383605d55c5e8d96b27a512bc8c3f7b72ba1c", - "0x11df12ba1b0bef7378ef88955aa026ec93e87c625a9c7d832eff44ff94aba7d9", - "0x733dd930527eefa4454b56f5eb4c3aa29c4a0e99072e2c1684abfcc6ee09d833", - "0xa7c38c7080fb588e42127de256b7b3d259055c2460900f76de9ef036d3a03377", - "0x27b90a4f0708d7fcbd61dc42570d0d569acd86b7578d479f56d823f35ba4411e", - "0x7cb065f986407568958ed7fb7ba18c2babfb49b02bc9b3b88756695411f31d7e", - "0x648061097b5f547c60290afc290c91696367852d0dcb87be712382f09c9cd1b4", - "0x194bd726e882fb0411c45d51da92d4d8949edf5ea53bb5e3282af1aa25217363", - "0xa3b6c3ae24ca9cd0986610f3cf83d1250c8bad3110c645d9e98a8fd7a85d4867", - "0xcf58b289f156df5285c791d7a8c8ea77104e34b254f600319cb9ef9582638997", - "0xbbbbc3512166bcba6b870a314ec68698b6c36e594e40f73cdead3402ce69f2d4", - "0xf9589e517f83fec8f31d79af06166719dd7870530697716ed1e603050bd3cd08", - "0x63b199bc52c448f48ef989e5cf45b9a9fd3cb7d0b47686ba113dab00f08cd9ce", - "0x366ec4dd2374d0328cc58f74dfe3993e33cf37881506dfd2de0462f01683659f", - "0x24e19f5fee0f703516bc39c4a089bcda7d111e2ef39b138cb760f79272f0382e", - "0x63aa5570647f5bb0aaa8190dd92e6581ac8fd7ca432a6cdca4caa9eb6ca6ebd4", - "0xd04499317d5c640c71617dcd7c2bcb6e7ba84278162c3f7298e2b67a0d50a7cf", - "0x36ea61183d313cae00bf55795ed9d798f18a17a543e9d6de49834cf128cbbdea", - "0x5d6fdce8a398f24f97908926c0528b224f02823116fa2f302cb431ba06c9982b", - "0x34f1e74f0bb9e36ce61aa75847d86e8d4cb9d4e555f0e8a4f93c5edced10a81c", - "0xd40d82620603252580f5cf54f307170ca5868c086ddc345e633325d4f78f07b9", - "0x79b3c34bfd5040d39878501ef0dbec691ed3d806e4adb7782220feb1756a6acd", - "0xc43e045abff53b8077a017596e531359672b0531d129cb6a0302df2a0c59800b", - "0xa5fd2680ea8bec22cbf5da6bf0f8f7f42c569a4a9068de15399c0b386f2afcd0", - "0xe3c0ce648f3c4d5a76d96b30287933ae5a79b60bf5bddfba0f102bb06b9f2b86", - "0x5c068aad633ce416a4340c5425d133616c0eaf30dc042d919786dfafea4e2968", - "0x2a12b2aa6359401efd17d464209547657d01992bcdad081a386628a60ec3924b", - "0x10de6b8c58816feb6145f9b39544a09d67f04ca758ed0b9a80e540ce8b117ead", - "0xf5632116f787967f9954600c783ca2ae46be42d36cc693b5d847a5dd830b6c06", - "0x1798366afb7398e8cce0b35d38c59d8ea2eb3cfb1a85b165fe4ba68a15088c3e", - "0x8cd71c3c3cc517d8997115eefbc7907ab871321f8167e7da90d42c33114d557d", - "0x3795c6454c0d734e71a33e8d4596a2e9af0a4d3aca1bb0452f2da4676f4cafae", - "0x853f13cd1e6c0cad486db441bbc58a266f35bcc367f7ecd9ded5a4b2ce96ede1", - "0x2a557d24d969f703c9fbb2b8efd4c89f43930e21c5a5a7b03c1e53d94b73696f", - "0x66ae745b56d3d5f9082953d9b267e2a98dcab60a302bc783d79aad6c3816ee67", - "0x904f9d8510005aaa955a2654de93af4ec0271205472740a7b86a90375fed50eb", - "0x74e9fef60a9911345324a22e50fc74982b24849f3c4973a5d55b73092dc46ea4", - "0x1571a667030f301ab8657d70607c3dfb02599cac15b44e9e48a4935d68d74028" - ] - }, "accounts": { "0x0000000000000000000000000000000000000001": { "balance": "1", diff --git a/ethcore/res/ethereum/foundation.json b/ethcore/res/ethereum/foundation.json index b41cd1556..76e2d47b0 100644 --- a/ethcore/res/ethereum/foundation.json +++ b/ethcore/res/ethereum/foundation.json @@ -186,4308 +186,6 @@ "gasLimit": "0x1388", "stateRoot": "0xd7f8974fb5ac78d9ac099b9ad5018bedc2ce0a72dad1827a1709da30580f0544" }, - "hardcodedSync": { - "header": "f90215a0ec6330e9082f796d1d40cd146f1c504efc5823b486633f81a9f8ee31e799d41aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d4934794ea674fdde714fd979de3edf0f56aa9716b898ec8a0d815854242c0f817a92beff41d66fc19dbfb2e4769762da7a2d4e49a9cf831c2a0e7e0ffc7d9a8ab82a7713cbf850628bf9a5227d80b0fe75d10b682be74bd90b9a0933423cb40b87bbcc53383c7d0a24d2ce5e8de99f2ba9213e51b4bb86b2fbb27b901008a0200250d21200aa00806e32495058b8880962440b0005dc4900000fc63451012c084c8c6224a0234ded20e96099533b08856aa0288a3bd00666137612c5680400000c4ec3ec5118ca2fa5c40804026c782e0188e4602502500c34460101adb47400d1b52c6884995204ac402d0bc10df7c1929827a9880b4a4051190406049368a1387c24c840a90b6c2b4e48e003e28459dc479c00042184824b2b8780308f3a660d05438a115a68804a16b209101020c0d9046812b61bc8004871b04402b1d904406114120beb0ea108a1cafe6983d9010c984882d2424301200000a78e0b03074ead02004044702412122423cbd2c5a4020ca9ca041998158050838033d8708cce2eaf2fd8b838640018397cc4d83979c13845db0992894505059452d65746865726d696e652d6575312d32a033a7c1a79360234b45773d79bb2d017ccf33414e59502691c87fea0a3ec26163880e5c7838013df6da", - "totalDifficulty": "12517645144159165893352", - "CHTs": [ - "0x0eb474b7721727204978e92e27d31cddff56471911e424a4c8271c35f9c982cc", - "0xe10e94515fb5ffb7ffa9bf50db4a959b3f50c2ff75e0b8bd5f5e038749e52a11", - "0x816e7463af7b5d2fcb804ba55f09e8452182b0ba6c995a34e144245d76333d55", - "0x3793af64c1ddc07ab61b2ba120034d91c02183ff788f07d3120fd4e6a48305b5", - "0x14c6106a17e041032210bfa0ca80d11860a1c6d95175d55eff39f97b8d8acded", - "0x396f832bfa3a9c494e9245471f0e65552613d87b6fe62128103590d95de72c2d", - "0xb060979f095c170a776b2b50a1e2ab0ffea80f6e522753fa36ad6f106ee32e9f", - "0x8f452e7cbd8a333ed04d819a143a8d3a75fe8c58418e7fc420bb2a717c0d4d2f", - "0x37fe1b0cf156bfc07571569af210540be753777903a308d5707538fffed75b59", - "0x6f0561d017cfc123b3f0d37b044e4f7231516b8731a1cab89afb569238643c33", - "0x3c1740c410a88c60fe8ccdc44e0ef2cf7f7314818dbf1648c01d0d94fbffc211", - "0xfb98115a7d6df8aaa40115f883014fe97300869bc016648e918fbf2df9608d41", - "0xef1099ab5ca4b79369048678d3ba78122fc081b00b6fd0f6907302a260d58266", - "0x969575f411dd78fdc5b4def0331fc93702029cc3c78851331a0f47dd0faae70b", - "0x9e53053e362be51c0fd25eaafd9e7c5c969d9f2ce8db4b3d4d830cbff347b0c8", - "0xf9de29944954d2b71a93532fc26916ae12fee72d42a79adaf940b0bf75d0ef89", - "0x28b2ce6635e60e06d643750798779023b2a807d9d089ae9ef7f223eebc15a71e", - "0x5295c06cbaff06f42bd8f5d9cbe94a840885caed02f9c9ba6da44a888ef796de", - "0x576eae673a4cbba4c7c7a56b47835ea64ae5989d67d119ebc8e568df40d908a9", - "0x891c0d38bc5e55620615da42ed77ab33806a042512034bcee134279dde1054be", - "0xbab05999d657426a11a902eb4c85ac52e2b72dd1cf38584cf2baeb2c3727bb44", - "0x3bd7e5a966f6dd2dc456948a8efca5584f5a4e0033f3037843a42073dda1f71b", - "0xc4f773ab1e34290f9a3d9ac6ede4749c5dec547353dddea494169d86f71107a3", - "0x993bf037ea9dd58b52027fb6f39332dab867c1e72af34a49d58a5a12f26bcca3", - "0x48b2d8d506eb8fc9dc0402fef26952111449aca0f90d0079f0526435d4e3183b", - "0xfef8f61df240e956f43759d2f481938421e064a9bd6a3be7a53b1213cc9588bb", - "0x5abf01f5066cf1091acdd1f99fbd5fd963633feafc42f9047534a3c1522004a5", - "0xa0f6205842260988161183b51bc36fae458fa184dd61844617d5c5d26fa78346", - "0x77309182fdc26d15dd8d9dd05040d7dc623412785708d8aac39eedee63931944", - "0x661c93311b94b7d4cdcbc0973225c794e71898a2b906922a6c1e8f7e9e289dc3", - "0x9d5d329ee8d9fffaee0111688d31a308dfaac922dcd61f818edd5303d0955be0", - "0x716ca25b184b64ba273b978de098f9946413f6fcc95bfba5cf1169e7e03dd611", - "0xa2e8d5cefa5804894fb42a106340b00de3286fee0992b5887b2cf471539d74a9", - "0xf846e05c9e9e9cb4cd2b7cbae7ae183a43a59ab02251954db632e538adacc357", - "0xbc01b4e23ea082a193e4c1012b1da91f3b4cb762009ca320bc8ed294af874e79", - "0x9218114a32da3ecf660d4d51b101bb51bb17c771561c1946c099be082f0a96b3", - "0x3b4edf03dfd53081cf40c0b90b35c1ccf7c7fe96cf131172eef5eec62f620ea8", - "0xb15758944263c67bdf528d4d7fe05737fbdbf7ffedce5f891a4ddf76177d2609", - "0x1f119374c385240f7b4ba1ec3d502be2c12c159411d5393ff2bd38cf87033625", - "0x8a8d5a93f3475813926b13a4d53f21b28dc79ade2b50830c0b9043e9fcd81576", - "0xcc22f7e2bb9c06c15ca3d82df852ed9097a2ddc687ee389e662de000db0c84fc", - "0xc2047e0dab711db791aadb642f8102abaacf7231b8dbdbe1f60573b0be015a31", - "0x1b4088ceee7783e4563945f162bd5da67020ca377a18d615923e8564d6709f85", - "0xd73450686e33bbda9eef53a95a86e5a0514156b98a5b7dfc6fdc0adb0b83cbcf", - "0xb374076ec961360e38d3486a31c3f72225440984c4c47ca790b4961d94152159", - "0x4f723f4fbd31d63a5421390e68aba0aff97249875688a7d9ab9a339d9aac7bc1", - "0x5fe51ff982edcad6c0052fcdf9a70e8f325c8140ab75848c5d7b0d670bd7edc2", - "0xc3ad483c7cc23bf8d6ae3e3e829bf126d5eeea9c53b566a6da95bef573b9c779", - "0x3c9e50ed9eb57cc055fd9a65a6cdaba2030d8b41f81348f296d7410c1d24ced0", - "0x0c6dfc1f626ff9e85ff072c154152bb3f122a2c1a45bc2d9e7da9b2d5278149a", - "0x92f4452dbdb4fe70e84ecd47af4b1af90975219797cebd451beceb6997ab024d", - "0x9a3d00686736b5b838308da4b8f0aa9edccfaba64621ce2988cea6ea2a267efd", - "0x8d602d0bef069177102726d5ccd93d19805fb5771a350a41e32755ce740b9047", - "0x6681e4097667a22ad3713acc27b6f87abd54583230581933bed9245c2c457ac3", - "0x53077caeabcd926466319a3ee5c51c32e01e1812a65313f113f814d53e9f1dd9", - "0x4dd4c33e99d86ba84f976c639333fc072e262c0b76dfdf2f589300af54048c0a", - "0xbc3b9837a6fa54616dcdb8088080e276e2e99a23c8e7de4109504293703d524e", - "0x24316b344cecd5e601cc0acc91ff94f481ca3fa26d8478644a9d8bcaeb0359b3", - "0xa7bafd3c5f4e3f6b5c078d50eb318d91e867b0e1c966027e3e7458eb104ccd63", - "0xc8da46b7d778980d120357c8de2bba336f5a2ac7a9f4183a0ee1f7597ed47d25", - "0x7469fc5d8c9c648cd10e538710e0f126542e59a82484e7fe56b73f4ec52c36c7", - "0x993bb7c0487ff61c97e4f1533446ae35b6346642e1230f2441da8b354111d597", - "0x90e3944732f86a2254dc4f30650f8438dfd0b777561fb02a8ab1c60438569c24", - "0x4e8472483679b54bdc600010fdd164f54771d7a99fa9272c683b610fff72507b", - "0xf72a861a2ebc232c25529c0f94c59996e64c59c36a1326a183cf171bddf2a75c", - "0x7f222999ba9113e2a64fd026a8f7244e6d2ae8f2a7e7d8d2d6fbde6fdf0b629f", - "0x3304e769f730522c1c5aa745c448075df026b8f82a4dece84fd70d0457050985", - "0x9ee5e3ccaaf94461dff9df8c4805ca831f58a1586af4ece3cab14a45f3b784db", - "0x21e4364859063e20153d2d06eae4d2c9e99354bf97fbff68406d8825d18dbce3", - "0x4805355b72b1b61b07814059f80b4da0351291cc932292f23069197a74127726", - "0x14474f45f38d7ea51418e5f03751c8bfbfb9b3e2957d3051e862aa3c57a63c43", - "0x69372cee3e2807d10ecb72d404a033568a159a5b15d2007537ed9a758164b29f", - "0x147223b51001166a4e65372c9c706f011f1ae94f4bdc9ba6e8960017e8898703", - "0x11a1e48a5c1d7088c0ccb8177d54db9e9f91a99aa7c24f702cd93f4646f181ee", - "0x809c902b2f4b8760c3d2e820c93d6df69a5d184a43a6c654ebe7067e7212137d", - "0x749367027756c27215b2f57168ef15d3b39062c9f79b3777f7fa19e8073de775", - "0x6a9fae37364f97e36e56df97acb1b7d066a608d8366d7e008854756dd28fe748", - "0xdc2f1b7a8aeda15e6bf4f5f424bc54828cc8520e2e7ba27bd8e28ba2b543aae7", - "0xe0fabc892d5c8b4342ff488b76a0400425ea70774f207c546fbf2f9f5b105dcb", - "0x151fb5e02d8eb3c3192cb8c039bcb4c121c4ebeea5e7f98927b85a730a24bbf9", - "0xfeb2f2ea368d0bd4c0b0bd97b444c365bdc0ac9ce2862b0d0162387727edd236", - "0x1eaf828231ebbae54737111bf3c7181fe3d7e9070def1313470d3f81c89f01c7", - "0x8a1b0565013cff488bbe3f35df86fb41c7aedf4d911130802c473f4ddb74d6d6", - "0xce9158b5c903312fa636e074e3efe413184652581a4877d40a0085965dc0bf9a", - "0x1cf602c6306affe2916fa09d3c8c018f23fc44dec8af8e83fa0008c98b4dda72", - "0x189dc4569e96cab937265ecaea76a0880ec97d5b84ac1fbd0cd2d2b36a8c34c3", - "0xd698bd07e485767c1da30bb218265e1304f6eaf426749ccba67478817af84bd4", - "0x47d7e101de73bb0ca97a0bb70094e81b82c63e519a6b2aa5fe10ca7351232870", - "0xb0d441b6c41072889c4a982306c9a40dff77b43425ecc4d771c22f3199eb7708", - "0x7893071deba67f2fc8e1b18bedcac4dbc05a020f37c764c555eadc42dd9d29d3", - "0x3c6d636db3621757d60b2d0e1804e19528ce60c9feed1ead93731820ff19b11c", - "0xde87aaa462b461c4a33e0739ef4cf56d442b7967ac7c5280816a959046b128b6", - "0xb237b17650adcbcf580b64b500ecaa7ca36921a11ad92c1e8992c57cc1a7f618", - "0xec379725db43fefe61f2495f7f7e0531d852e21f896ae806144c4d9b4b986e96", - "0x65ac5548988825831f0887b9ff0f2c13b7f3b49e4a67c39b1694e76414249f6d", - "0x76053b72ec9e6fcf0a28ef273d3e1b0842c3c2c0e905f5b5a3535ffab216c8db", - "0x2ab1e87489eb1daeaf8882c6baa0a8726aeac522e9c4eb4df71e35af2d22cc10", - "0x8c9c6adcabe253b311f6a9b8165ff9c5e26e4cf41f1acd80837e77fc15526a86", - "0xf143155230223a3f126c757b85e193a9129f1bdf97c0ce1f2785f14d40911f30", - "0x8c510d9dca593534f3ed316f240ffb9343d1e3cd6d005df6a75a1b354da0b36e", - "0x3440975cf818a718beff35a85d19bcbbd67e1b16ca9d78af34dcde31a28b3288", - "0xf56ef9c57109f9cb7a925bbb6d453efc19e8a45b331f76153d20a87d86a8b0d8", - "0x19a360772872003f08508a28a362c6e05650b385c24a928ddad4d562bfccf412", - "0x643720694b3773ecf20437d54a6be701810feff233f435dc701dbe88c9a6a13c", - "0xf8c0babe99aa26ecbfc91b304d9cd54ccfb37354c4fdbeb3207bb6d4647fabd6", - "0x481ccc7213d0188e817c071c4cc3a71c96befb9aa98cab964012fd7a8267834a", - "0x02d83ca8d92e0fe6ce7643ae93af60e38ab5659a84c04beba678ceef654aec12", - "0x24e6b4bcd0d97df196f2371532771593fe17be8fcb89f1e1164bcce8616088b9", - "0x3dc91775c50c04812f755f3b48d3d6a0cc599c586ce9d105e2cf4f3e4527b515", - "0xcdc215f05398ea3942d3a38078a3602cbe8ac549d4bf0e4a54191ceb2aff8f76", - "0xee02874e444b784f4265cc60b86a17382d277d03c8bce8a33241460ea8950699", - "0x35c34bc84736fdcbc4d4e2e089f30bcd186a052b2f6dcb639fc45a0aeb6969f8", - "0xbbb3ff849c36659bf2c00feaad9f7b3a342b5cfcf3555b7c2e467a0dc84e90e8", - "0x0584bc60fbe3fae9088c214fb519030646c3240f77180a0bedecd3e9c9f47f89", - "0x9d18a665d89439ad2c97427bdab3e598f5bc0da6a0ede2378f95c5bc31f10d12", - "0xe8a5bdd0ffd33a6fd03cf003c6d2afbe8493e0f0cb69e6366e22b4d1ff985101", - "0x7ca955f4e01eef756b680d09c25626cf50013faa20a12b0a334fd048a04e7b91", - "0x064254551457bd5e7a260a41ed3643746202d503813ceaf42660f9bd1983be34", - "0x1191044e354ea1e3daa25ed2175a6517659e96733d9065d81492ffe4472fb96f", - "0xc823514cf3566b1bb2e19a35e0ef0980bc483fa820d13ae2cfdbf15fd426c272", - "0x413f941f192d0ab77bac68268f45e2c9adbee23a3324d4ae8748d09735355a2d", - "0xa66c94b9603b3058b730baeba1b79d52f548ceeb5bac487903f92481060f6804", - "0xa84d4a8860bdff1fdae6bcefcdcf700fab7857444ef1e76d8259b005872a4636", - "0x9fa64d44edd9c097458d3901612a4b6f655a1421ebb68541cb1a4bdbbe24911e", - "0x402027770edb387510241a68a235723c6c5c95aed54dab058c43d21a6bb48c41", - "0x776281b7e341a66491603b7ae8ed7cc82b99febac43f94cb1c4dda73b17aab63", - "0xfecbaf0fc5a02dcf49095514ce26df927def3cf51f37e04471545aae2364f936", - "0xc477d9293f0ace7243f8b9c89f01210b8f96b4affc9d3332147ea2e2b693c99e", - "0x4a8b9afb9d9097831b2497296b0fd0fae76ab8a596213daed35cf87e6bbefaed", - "0x594c4e9851eddbb4a6c2ac72aaa244ff35d67262efb20935360360d39f7c7ecc", - "0x14b7ef22c46ba8400979b6c06f3b3023607145a5cc6b5b793daae758cb655245", - "0x3a9d233553d1ca4d9862a70ef133a5fb2df75276fb24297b0bd2927a39459450", - "0x22c5e227d5fa7616603bbf36c5e4ee7dbf285fb0cf403a3ae982da70c825cad0", - "0xc2c8d439c7bd884665da56e3b680a5e58ad1e98627fdbec6fa67d7bbfad33a9b", - "0x7d5682cd9f28493ba4b87be141ec99701bbcd1aaadf9840b81de1fc07d4ffb18", - "0x8845f626c5f78d1bea281f892727437f9de8f976e4c4fec6060b2115f1862db5", - "0x769fdf0bcdbaec1ffe98cd3500ce8341b4d7ea2dad5fadb0258212306ccc75f9", - "0x185569d1980147fcdfcd0e0068ab380f0cfa58a690334a558bc1fd0d07897e96", - "0x0ed70ccff752df46f981043c5279ac3f13e7f62c2bdb9a0a9817a1c119ef6402", - "0xbe121e28349e80d601ab997af844aa03ea6492e88d75d3d46517d8f835e3c3fd", - "0xa7aa5f0bb95566292d22891faa75b7ff2020b69fecc8a22d796cc3a60953d98f", - "0xa2611b092b00f78fe639c4fba0274ae474fa448b3f2e4b8aa4d06c654720d478", - "0x8e425115b98f5e41c8b5d03a9e17d56d30050d85dd06cfff12f002c546a256ba", - "0x988b449fbd8c35855154fb4eb22ba6b7b7095be26203d137f484c67facd40dc5", - "0x567c43ac5dabeff01d6997543ec7abf7998088a355a6ba8e70f41a243dd1343a", - "0x6f560cb650142aed532f17de763d61d021cdec2716b0d2cb27b3a64052abb874", - "0x7e4ce5fab8f4f1fd41f9e5f10204032ae7e0e38093b1d07699318975b33910ec", - "0x91a0820eec5390916bf464b1d16c00b5d94386c4c9f4cdf7e0b3cbe40747fbc9", - "0x9c59451a9a242123efa72c5fbd1564b7bcc0067ea9d025336d228ed26b9ba6c0", - "0x1043a5ab3f5a3bced84faaae0e783abb3b81c2b967bbd976042cb5d897d28146", - "0xfc37b3b3c0be392ad2a5e36c120eace1d14e637ac806e79a750b9a6be3c742a7", - "0xce2ccbada44a8db5144073e69914b322dc015273a75b85ea43fd9e21037c760c", - "0x6cf8336b5a410e10604f93351242cb3a6929968212abdf85b4ca9321115b8fdf", - "0xabbe9781950362be1e206d91ea1bdd6f32ea2c6df65b277cb89050ca1deb9296", - "0x922a6b85add6839494c3edff389aa1b054409c330b4a4e2a6c0e4f9bc85b36a9", - "0xc26dcdfa135a09b7eef1e99b445fb66aefb8bceb6ea715b81d78ba87cd56ed8d", - "0x87d647fa7dcde81a0e133aa949d574befefbceab24a42ae4f3809d2bb52a2d9b", - "0x85ee37fa7154568b9dee8a539340f99c7f1bbc7b9be1f2055636ed9dfc074e4d", - "0x8b0114dc9e249f1de4bb3d055790e4bf18aa28a938f39e8a457ab4a43b0dd613", - "0x3be36db134f4c00fc9e1bc376213c7073389c993b0b0744cba619688d6c037d1", - "0xfaf987eb2e066ad8871c489c23102ec5c58add2d13e62d56f2821cc1f4d66d84", - "0x678478da2955e6876ac49c5146e9f7c376dbf2f170f6404054ae4385e72f3f19", - "0x85d8d9dd6c2a8f6b6a1c0fc0cb55ca870d9a7aae1621c143c3176a3a81fcc29c", - "0x76f4dfa4c3387408c823a75aeb872ff39af3820375ff52f7aecb41c96e4faf2a", - "0x6e530647f2e4232063de2fa8f673989d7834d8cdf529791032888f2833880b80", - "0x64422b4dfff6cba0eb6deaeb4593eefc40a357469a7f7c3be078f80c66161333", - "0x5c7ab740510a4183832bd78e6d6105b0f9f928611f7d62ef96aa8dd8da48a72d", - "0x0bbf405e29f015d24e64f063d50ec6c616af64622b1a4132cde86f926e93850f", - "0xd9ba81ea0790f1f8adccd0bd203c7adeec2b490381b822d6b15293cac2f26206", - "0x4f78619baa34f2278022c509671a38d29366936d6860e79ab540ea46b66ba782", - "0x00c1f10211d7604e59a327239f00dc6d036a93416b7871cb214e8eaa52571834", - "0x1b6636708f97485675c0e5b21eb749ee4a5fd0dd886e6690090856bcc5178ec0", - "0x71366e853968c1bbbbf8e3d6e13100dd589521f8db9e561dd20ff8709b5c1a96", - "0x0d2c35a01646cb09e2b56b5792ac03047848bef7415ae26f787cd54ef8f327da", - "0x1c5b71047f99db30453e502c9acdf422d3bf97b0d42b9223ea1b8b9924bb0cb1", - "0x9988eb36e4a669638e3242e5ada3e6596c5e4ef36a83ed2d3348d35fbed4d3d0", - "0x8f00020f98f02af0749df39fb2f534d356e3dbe809bdb3f435c4a575d661d6db", - "0xf70a509c0d1c60afcafc7cc492c5ad575fdcadf6ca8e0e5f184c62dd52021129", - "0x72cdb6544dd469ab42e270e51d136b314c27ed0d6682f914cf3e0398399d2d5d", - "0xd5584896e649b618ab8257859e42ef7798c37cc85103a8019cec10b1524519f3", - "0xd70636cf5cbe78ba86b8de902f83f9c550a8ee31a019da6fcb0b1ab0a02bd31f", - "0x79a506d61c89cb7b1aef845484956389d5f6077fd10f8d1ede1e92474eac15cf", - "0xa66c0575cfea08bc6abbba03b0d10be7bdcfe6c5da9058cb34c22af2c8f3f1d9", - "0xfde316523b6b41fedcf11d776a53bd27fe3058c3912059197cda083a14410689", - "0x6774beba5e02630a7e4379fed7175f0f3d9f8fb5333451f25d5b044521ed38ed", - "0xb513ee7cf03529c88633176792a6b08585ff6163fe174f68e285d6315ffe33aa", - "0x4482f3d82f65f0fdf71fdf669403e0b835b5458e567dbd295b4f51d22f01650c", - "0x1cf0c0859b1839ebfb872a570e0c17886d8d7f26067bcd16af7f9f0415001aa0", - "0x231be14cb1cec949a4e806a7b3aebdb074d58e5a1c48b85c35138d5d3e967e0b", - "0xe8f0a0ef68efb2ea1bfb5d47e3c9446900329ff89a3ab7eccde41e09ec3e79b9", - "0x16348cb5e49e61010da09a5ad3cef83ab369ee3d0f28079584c23749cfa30238", - "0x6d33bc7f502436bfd0d574c3f6b1155c69f8a80e55c42c353e9e68abb46d932e", - "0x0e5d40ed7351b59846ca3dd8cc9c0eb71d4659e0add0dbfb0bb7f518bf45c821", - "0xb1ba4509de4c0f1212b2b07d949740f15ef8df9af8e7e9d765e6b407a0c5d717", - "0xa99615bb15371a15b92c119f8632f1ad7c29d6eb9a69e0ccf33a9dd268cffd54", - "0xfc3601e7f85e4b8e996bddcf1b34cb6c20462e21c715782da12d8e08a01cd21b", - "0x872b0f4f3ef00cc5cc6fdd71091de96c02f5898826fda4f837832f302497b51a", - "0xb34656439e4474e075d8ef523f6f74ef292a22281e6dc0b8fabdfd2339389919", - "0x048d4dc500031aa56d89e799499a86d6dacddea795ddc4571669fa55d694345f", - "0x684b8762b97a9d650f0f0e5edee73b60a29f6e75573bd6244518b11c4a571533", - "0x5d20bbacb93f7b03d92ae0ce8296bfd113a808ab3a8bd7703838d7e8356b6714", - "0x25efac3c3bc3d4f10ed9918fd9581d68eaa18fb72d3ce7ca8e36525d8cdcae73", - "0x48b593a335aa2699a5bb5a60394845c7e4c78046e050aee1c7f8831249f75b26", - "0x6db7243073caa6e5c0442f2f3926885fae0385e0238a69784ea8a00c854ef8c0", - "0x3a104e4932193c644e2135008d78c5153a9331e6d9dde878357c250a3b42b5e7", - "0x74b3b4666fa9811702d4eebf9680053043160be3a6c31a0105c703e07d530710", - "0x179f67ff0710067d3180ec03d664fb3d9936e8777603b051ebad4cbd0aad7763", - "0x38d5fd43ca73f66127a0166ae074324471b1a92e6f4bf99fde235ac408b35562", - "0x1f43748a027e7731c2fe5343ba7b61d7c6c6933ea45466b439a43eee1a3ad398", - "0x6b130b75bc42dbbf76ad97287a3a130ea29122ce7e48c5a8bd1e80a5f3121364", - "0xcd17f77d87174ab6ad6f2dc60d37144aed40b3620a9e6c9ac3e328aeae3097de", - "0x3b7fe9ef499348315c1a2877bd7fa44b622fcabc588687a6de4d2f75aad3f642", - "0x6c73525865791a7ca8410363d634f6babfaba581d7a0252c7f57dc8c8cec583d", - "0xdb16b0220e129be4c929888a8a46d21d422a352ac7b0360711d786eacb56598e", - "0x44fb22efd89e585079bca47bde1073dc052f8ddbad2c27cd8e2839bd4350b18a", - "0x1e6f1395d417a94162117b9371abf3f781a4b05d787f6a38fb0101bc36e548da", - "0x3eddd0764196fe15d7ac7069c04c4bf23070e57931493e9a0127fc521187b698", - "0xec104582dffc06da3cc1af1c8dc7522d26ab2408dc0f62051da2ebae1ec1cbf3", - "0x3616cc0faf8a5f5c19cbeb482be2ea8de01b2a3e81f067366c715607cf29078c", - "0xd37ca9cd5dc7c3c4e2d2f1b3c8db2a016b52444f1c088680c8544b6cea30cfe3", - "0xc3d85c7899da428a305d941e3637e33eb4981f071ee07c1ee1c82aba7c248167", - "0x62975f10a20de37466b1822859f11774efa4f37fb701f6cc0695d206bbb51582", - "0xd940124857e67e220e3d4dc27eb75ff048aadd9b7fb29b680cc3743b3ab6365b", - "0xc89ac3aa4725191e56fbc87d41caac2c692dd5adae638bf741f0ded040ca66e4", - "0x97454878805915bcb60c9915af0fe0558987dabe5d506e03898dede96544dec1", - "0x6ce55ffc54eec31d980ece5204876a3f366f3148a4b8c10cd190153cfc96defd", - "0xa4e923671f4ff6dfde2f11cca452ed4208808e93e1131de4ce0804cbe2e0d3ad", - "0x772d1c2a0e70fe37ac0ea8d7b4a789f92997bd654809f20f0ff7ad76a6d975c3", - "0x8d5de87bc2484465a4876b462ebc1339bc13b8229e6df4f1a9e9b458f5e9adcd", - "0xdb33cbb2dad0eb38613d69392951c6062eb669035691882fdafc526133d15d21", - "0xb22b8c0887f71de2da3d81a5fec2213ccb8a32060211077e2ed1613cf7962e94", - "0xffbc5a82fe0c2b3f3f34343ba6823f35884c8b1dd80fbaa68fd5f33a960034ce", - "0x9640ded5be08a8a7a2e6291a91bdd58bd108205f4cef5209ddd338ad764fa9b9", - "0xaea7f934206d00a592502b8b85159e64b56def4c72db3a790ab46ca81c75d672", - "0xb99ace258fe4e6be541c6e3468913f4f32ef9e9d1375c889e17ceea0c606e729", - "0xc54ae75381803d00b52ea6fa620766662e6f7946d550208743fa64d3aaf22c54", - "0x4e773cd4fb2347b796595cc67eb2b5c7be6409bd8b1944f4cafecb6fc5a60a0b", - "0x263f3826196c238c24d4c792c3c45fc913d4cb94c2d3871827ba43faecbf4d94", - "0x7ae1714256e21b9b45778795cdedfad1160d571004f5ea6debc16406bc2161f6", - "0x0c271dc055d8fb1ba9bf133f3c85628ac3c2b588091768380a881a6183514b51", - "0xa5f41cb430b02fb1027d8e99cd94dd6666516c785d7f618a0894f38f811bdeed", - "0xbf6665cbf1037e0085808897d8b04932a6ced6755fa52555ac00737e8029c7b5", - "0xaaca2ffc61693a6f379e54af473802770b3971f6accef49e5a2e8fc122e0a490", - "0x7a3eb7782e2c02776aa29964689cb1b880201e1b81c8cef39738d7f7235fb022", - "0x7bf417dda75c46efba6a8344775915d2b69f954afd66d8f52576e106d7a7eee2", - "0x3a324507874480d0f4e8466ed6602c99fcaa7907b61e9f2b3f100740f7866fe0", - "0x3589941fb7bfda9bf50ad93cfed18cfdf199a6468074416aa513cf83cc00dd2a", - "0x66b0965611bba105667a3990de5acdbd398d8d6e2cd0276b83814c4647bfe461", - "0x703258ca6154ec4cb1b9162678e3bb546ca6f9e626702f5f62dda98fdc0fcf26", - "0x2a9a8e3537b714cb3e158f7ecc816239786ea3787b1a3bd40482f02eb0b21595", - "0x46104b558f57296b0775d63ee4da42a716c234f3dbd7479204f35b31f4b3d55c", - "0xe7d9d0a86cc8b76526acb8e260de17508874d1db6ad19a4a84210a010212d43b", - "0x04af6e8bd51cf4c4307b2381b2e0c54cd991ca3c7f49b8cdcaff3aead70efe48", - "0xab8fe05db68e486bf2be0c507b834b6e496c1d1fe560cd3210ed7fbf0e9b867a", - "0x0e6b5f226d0bcfbd1f0a2f61189592d8974b16376fef3d0a67f757b796ad6854", - "0xaab68c29b061f8f72d9f3c6f2e318a7125a01010fb0c547835fa31e72d8eeabe", - "0x0446f90437150e4ec6246be5c718e5054d62cbf5878479457d522948c6e87f83", - "0xd1b4669e21c0b175589c0942d4423cd2b438de6665f0bca10818eb6246a07749", - "0xc20d1a68c015d886ef8fc3dede0d116199480164238617667280f833a4dcbb3c", - "0xe67504ba38aee984e9118960827ddce0eaae3d8797bfc87afd4638cb1867e41c", - "0xd3e985af3bf3e3ad0dbcdbed9ff1b04037bd1ff2e71886db3842a29f0ee8c4b6", - "0x8b809d1ae7a835f318f471ce227f7e7ff563a15d1e2463e8fce5852c9a3f9ce4", - "0xc232b56170a5796aa4333d29ad8ba43dab2233e0cf7b48d100aeaa4b2491d6da", - "0x9c338ecb25290e91a83978df4f5b7076b299ba5d87074c36ec96da0b3aa9351d", - "0x616a6134eee1221e531fc6d6b5861f5ced64e9b56505b169da67ca3c47cb54ad", - "0x4afd1e60cbeb40301c2ccc7129042f9a944f4a383a4f34b8acd7aa454fcd0e7e", - "0xd52d1be650ed156ba12b0d6be4b7fda1fe89927bd7626ec0ae45663848144e7d", - "0xa212644d968f7d3d89c6f12c3c3077184943d986dd9cd391d48f8f98eb1bc6a2", - "0x8e3374acfb9d1724fd7f84c22fda25f91737efde3d667f607b364e51beabecee", - "0xd77eb30cd87046093b27be1a09d93cfa5261b780b99116a79d6c16be7db838ec", - "0x05093b9e39e2d9f4fa95ff386cb2af67861359ea6228242be6b323c1eed5c7c3", - "0x8bb25606225d3451a981af24506a549e2bf62a362149e4c77ac72eef6316e691", - "0xd2749fc4a37792b3716634e3dfb8a80ba3e30fd73bc119069d507bfe7efd8a1a", - "0x3b58bef2d77a04b3281e6cf80f984b9067290bfe02a596b2295ccad38e887a33", - "0x2f69797f1800e5da4a4086909058ec857695a220644e61788b24ccfaf7e77137", - "0xd81872c67fbbd1a69d4805cce578b9f36bfd768d3fcbc2fd610182a7696e23b2", - "0x2d3bc9fd303c12ed1ca7efe27d85c7b5ffb8e079e59c86977a113bbbf863549a", - "0xbaef802512a7ea5006cf816c51c35fdae44a86daaeb6e9dd8fd0c37b4f744875", - "0x2e7fb70924e6f0b74541f2f4cb13f49bb3bd577f5bfe1bc29d805b0e7e1a3df1", - "0xe3918602d83478eb416dcf80103b09a051d5cffc71b0cb21461c5031d38befb7", - "0x87dae7dbb38501d6e84f738c11615dd9eda5f7b77e096a765caebea6a8c691c2", - "0xa19f74ad3f4e218fcfb15e4af95713cfff4f5f58169b789167e2b62617023697", - "0x744930fd0046b3f7de0ecf721e3b36e4b36c0f49eb98bb0c9ed33d40e76a2017", - "0x5bc7194687200989382831785b43f7f5efb23105ee2dd7a620a61622a2afec44", - "0x3672af2176d897cb8f64f2decfd924d74581bd85916be85e53f2542a54a24b94", - "0xe2e2dd1875e9265072d96bda4640ec6beefdfa9a91241ae078cec4c2a1c9b8b3", - "0x5866de65d88610e6123b7a57e28e196afac484045261d1a16b83fa232ba267bf", - "0x7224db0ae652be5fe9017454dd40c744c75e513841b5cd11d5fcaff598265c7d", - "0x04438fdfb56d125bb13f6b8bdaced6946299f8a32610205fabf4a8db9c06af60", - "0x9e9af6a569b87a4717b94d8253a0078409bbce7bc08874e091163b621a75b999", - "0xc8a39c68a74f23d615ad49d9d175086bf4e1047a750165bb071e3cdb70e1d639", - "0x10515734fb6d38cbb9a7ef33ec7831646636f845ac40cb24b08c432422763466", - "0x1604dce1fd615791c66246a7cd82edbfe860a5ac48d000cac1984faebc00cafe", - "0x56311f68cc563946e251d8c0ea74adeee6ed8dd7aba8f6ea85367defd5dbdc41", - "0x3fc81adf318fa6db1c4e7ff5424b235943667f2f3dce5119618e0273eb23c93b", - "0x38576704f6ca62083130dca418a9b68e374944d63521fc3f4b7039754d62f63f", - "0x56e2a402baabf470d0f9c3496d75e2c26c26ac159b996c370b118a313a9e9464", - "0x501af705914bfccf4ad29c38eee21641590cd8d334dce9055d90bff57b8fa556", - "0xa734b7f045d2a23ce602b032357a66763714c6e4785768f07d55c22d2f1de372", - "0xc80e2c739a3d142a4018bfe2074da8da33c471b93f5e7b44bb150b9eb63e956b", - "0x7a0b1355d05b1bf4c634651bbb2b6d65cb0a9772c30e4024f5e781e5d404376c", - "0x73827f7c7a15db5c17a986f31dd92de05579b0bb8def065e5f1cee472d00281d", - "0xcd64ee4b2a912d48e6beb06e7d6c9c236b5815434c0ee21cca0a13ff23dfb85f", - "0x768d2fa63c53689ed899f47c6f78844ace885fa18a36da427428f4af46a9e1d9", - "0x643c26723d5a4831d3d07f8692a6dc4456bb6190ce2abf1abf69159942d5d548", - "0x03e20a75c4546d5f54bbd7fd3e54c795c180b880563bf78ec55530a89188a9a6", - "0xa0ea4095dd9fc6f817c656913f8cde4044e2806488be48770de5574c0b5d5f8a", - "0xeead5fac8f3c83c5a10df161d95bcf1d27184c9fb9fbd813ec5f61347c11280e", - "0x5afba4426fcae0f1769e581fa6af97b5ef8fd417771f10405e1c9d09a74357d6", - "0x087f65be7fc2a14f216d7ce418a03fcf1e6169e8620db65c11d1ed6c0afed240", - "0xf9a7e93c40788db39b241e03afe329b6336187fbafa40c97ac405fefc1eccfc1", - "0xb02450b58c5afdd0907ee745263aa6beef662646b96b9ed28b0dbcea4f358667", - "0x5029f1169c92671ecaad7239f40fd93adf3ec07ce2ed0c4cac38b0cc8034def7", - "0xc8465a93a1ba7ec3296d98e0b01ad27bdbf16a347c5517b450905d3c3668d505", - "0xb85cd82c551bcb30a747b2258327dccb04094f918e36c3f120f55fc35abf59d9", - "0x1721b2fb8963696cdf32385fe87e8ec2c2d7fa34e099bb65498e4a030e20a1c3", - "0x6b6dab262c1a32a67353409d2f8b791b1799ee6a8e3c880877af0bc5cc5b812a", - "0xa634110e4766d3451718061efb890238796370da3c4a53a91faa96c8944d2423", - "0x91ec6c6f807285599e0a179d0d246caf10152e733acf3bb967bae35fb36561ec", - "0xc3b2012d5cc8d796d1890d39e2b1730dd53df0b98274bbfef8c93bd969912852", - "0xd036b9b29589cc551bf27ab95b6366d772e7d692d8fba48f473a2fc2d023dbe2", - "0xc51229a0306e56a53bdab1fda497281e23aba6ab17301c2eef3ce3d01f56989a", - "0x2652cb79e0c18dfdf545562b8569cc2775a1b0b1b465cbdc5880b40ffff22676", - "0xf24e0d6c03961043cb41638596c4ca02e2a2522a3e828dc4613a72ce5a535a67", - "0x01725e03a7cbfe2d6c5623829e4d419bbeecd1c7f925dbf1667979bb4da6650a", - "0x3b0c9824b726b2b556c6c46af48b84f856154490a51d775ba06aad48055bcbd7", - "0x2be2f1cb826d7575e53bc5e14f1882d73bfe145ed91b2ff56a885f66e136db46", - "0xd16752cc862f33b14f5976049dadc4f15f147f2fa76c50bafb38a7cb25c8f881", - "0x66b3ba188143bd421009c082031696bfd6d29fe7b9c3345e7e70bf6a470a05ec", - "0x83e017e8701b533c9fd22e30d63c3781b0ac9ec1dff4433fe7fb5c8f6f4e67ba", - "0xe4782b025953c5980653abd26eb95de1bee0524c14a74b970ec5615f98ed6768", - "0xeda29e9b36262e7c79ef9c0b60fddc66bae542b19caeddcdedf439573f773cf9", - "0xbc02ac1f023993253394ca965f4394bb40f9c7822ed6b2cbdd249e4b72f9b637", - "0x8e1bde0f2541d20b7f7e8179014e0f6b98eee5c1e0278ff1de38f4c13fdb4161", - "0x7b762d3d64aded9ff99e3423d7e676dd307b765ca6f1295e079ac53d5a4788b1", - "0x1027bb44ade6a1f82f11e9f298fd3957a9636bfbb97457c319e3d57ce72146b3", - "0x963864b3164578d4a7e58de16593273067a641de752b6df2c9b8bfaf970392f1", - "0x16bdf92929fe3629a57f737d83328d034c36bbdcd006301f28dcf52e1d1cb542", - "0x69952e47225f1aa86d952afb0fa8c668ae710a10cb6a94477d518c8f771f5c30", - "0xe68895f4ae2e4a35fb7e0730a5ef9c3e3030f6351ff6381f77e6311912ced98b", - "0xf28d799eeec538dcb2f371cfc6aa16f4a6808ddef0e6fd0cf72fde291d94f8ad", - "0x5a404922a9bfe57eb85deb66d8d83c869ddf96eae17e7fdfafef19c19efa1eec", - "0x96b735672e85aa95c2f8b4bd5ac80942923cff64a24991b3103e4ee39fb9a8d1", - "0x83d922f50174810fc45daa5a607a9b4fce69d8ab86f428ac57ffdcd9c2ff2908", - "0x3b0ce5a62116eafbf445afff0674112f01e1dca0e2af2b72d0cbbdc452177d65", - "0xe86cc93417c7dbcd4b5f051f4dca1394d272dcc2101a9e94a140b20f5e4c8b59", - "0x99b3e1d593b682e1b6454675593ed6828f8f4c5888b965981e3a7c602d89d031", - "0x81e0eafc2a2adf3d94938c413cd9f588e7525b91f39a689dfc3d0ce6aeb812a0", - "0x699e692ff89a918eee6d19a63caeb07832dabf1eb28d04ec97150c87045d9129", - "0x90ff00b66a14d821b05f692ee6d100dd61abef3234fd29e94bc84574439ed2e0", - "0x2de5779a122ccd84a88c3adc4edf7c1c03dd1d3e89ab45657885aadaa087e833", - "0x775a5587a907aa5ff13bafed032dd96c312b19dcda1b0e74e8a4bd327fe90e50", - "0x4fa48215f975442e6b9ea0629d308667242a7fe89f0cd0eae55ef1d35a3d6ab6", - "0x2e24c24731902f1b9e4042eae9e946b9d884dfa9f733ea5d4f7e778b68daed9b", - "0xf23a4a6061f45b1ff2095adf02ded238b37a0ffa9653fa9c1b0069e37e8552be", - "0x62b94eeb74bca8d9ea91aaeec5c13a05dae022806df28b92ecee99b47de999c7", - "0xbe6c1797cad2d5d9ddac3b3adcbf1622241e2560e3407139e24dde3fd8d3e435", - "0x7df0788058bea0911f2e30133c835515bd777f7aa9cab6bcd27eb3c0a6e360ea", - "0xd87066a4721ce567f44abf179184381d81c1c487158a6c57b5f2455472209a5e", - "0x0aec7d3081c3ee7d61f36e8c7e62ab74e41f00b664b690a341b9ff7feb5adce6", - "0x16345b31779e80499dc01f9ccaa0e9981b2b336500f33cb1f2943b66ccbf74d9", - "0x9ed6c6685dfa2b65903db0b234f4539906121330c5d55e6b2a2fd30549b2dc23", - "0x6539602958d9166335a7a0396ad72be611661bdd40c786cf9b0f382039c6b46a", - "0x72bbb4a201de75b9a4b5cf7381308953234c62f295df08b919c12535febf6fea", - "0x2d37293863f6b90f43979ba5944bec302008957e07b7c7f2292074a0a3934674", - "0x22677859ad20cf8b924d516b9f979652ac91a27459a4eba5455beac7f5f23128", - "0x704c898c04ead58c2fdb2c753359d10934e66b326f104be28ca7a32ef05a2bc1", - "0xca2b1ac29937067b761b57b58ae4069eecc799dbe089342bea274e56fde3d1bf", - "0x4a9773e6a2e75dcf1ff46c8f9931b8170a3609023f47c0ea9c4af000798bbc22", - "0x7e4dcb6c256eca2cbe9d168cc78c2702c373fd6e69c210d0713e2766baba148a", - "0x399ea7dbb66b95bae693402eec304f9cb6f4c6ab729d90ca569fcc2bb24d6442", - "0x49d0e561773458f834c96e8fb9496d4cdf83f2cfab75824cb1eabf8e8962c18d", - "0x80a0a209e41d0c3ff07ffe6a7f1af67997662494a327fa7f3bcb7209340974ed", - "0x2bdd6d6e7ae3f4386fc655817e92563e80f46e1b277be22f81a689de7637ea1f", - "0xb77f32374161e54c50dbc38822760874d966f9e098a2ea7aedf650adf25cc0ad", - "0xb49b1decd65a998a3dae2e4725eaff56276af3f0c50b2a3a35b6e94738d32808", - "0x319f78ae885011458f47ff1a110881cb4ac6a78c7d4d7a2656ddca73a88b58e2", - "0xd9fa2f47bedc0b405df34c98582b553dde76a46d38ac86d9d357ea0aca60ec2b", - "0x4283ac57e82bd08970ada71f4617728bcc467eeebb19c3aa20208a82b18fb508", - "0xf2ea3a5ac3bc77ff64f7c686305044cfe539856fb2833cbefcb283317012062c", - "0x840a9b8c756c3c3de7170c3597bbd085747b97419c01bbe484fc4cc7924736ce", - "0xa88682b957deb995307ed875c4044246d779e3f8c584cad75162fee119613806", - "0x7b9195c23833f65832a44d097290d8573b43e6f3e47dcb8c3826ef9a52fb4ff7", - "0x57bb0076c87f2e7187ea92f9f7643eb5b4b823b8eae9f6e74c8b676dd86b81a2", - "0x68593a8268b245a5c7506a05860755cce1be795994a7d736aba41ead4c025a68", - "0x90e21d5927d39329874688312eeb5296677ecccbbb9c6bdd4400c50c9bda09c4", - "0x773c0cde2d1f44575c89106a01881eb5d9593bc762a40be03ba979496ad7d229", - "0xc1dd843534e9844bcf406cc03b277e71d4e73026635412e25f3555d099f26a55", - "0xdf3f794bbd98096cbfa17e168c0de845383abf52fea618937ed81d31cfdd88db", - "0x1b05b1f316013609fbf813cae674f193a9bd8a75631b55278bbd37513b85641b", - "0x429321ddb251fadec6b6f794acdd8cc9d93512b98af23d20749d93c3c9fdbc36", - "0x6cac90b28ed13c907d094bad45574aabe2355e13e6a9504b6001e5fbb9c25235", - "0x89b43a3f63a2ce4f67071a121f447d7e843948395616116ddeb57a8714becd3e", - "0x6de560c95a0483d51410f66f38884947dfc787e1c61d14421129773010b46e0d", - "0xa0ba45049971dd4b906e73f917fd16312646d53c0cdfdc3eefe53628a58973e8", - "0x3d4a4f7155eac18fb5a126dcae2035155a140a84718f33bb20d2f1461e8cedb7", - "0x1cc19669bd91087d2046770cdc34e8f995cbdf2a0cc62bda70d6074ed58acefb", - "0x7c1c4aa1817de27c62f35d66927d924376798c954d65ba3ba02c0528d11d748d", - "0xf0d67a8f3c5306165cffd44476249c254898bcb26c937f10e8ae244edab1b972", - "0xcc20c5ecb1d3e83bd56e9213761f8320bd40982ab5fb669bed774b4490637932", - "0x7935073eb3e5c37ed1135cb22bfeb0e21727d170d106465fc35de75e8d56cf41", - "0x7d968e74212c501d0bc26ebb816b57a37a8cd2720caddb5bf66f489e13a61bc7", - "0x2c134dcc35d50c63a13bd8868137e0240280f049d7e392b97ff5f76d00aa1296", - "0xfd046f06c1d46d9125a119f786acdd76a85fc596f21cb15f367933b717ba7d83", - "0x9f5f067e4af3c8e92d2d54dd061620f0a13a66006b162a1eab4b1707499597df", - "0x8a6e1fb6205a423ec2920d448a376b95cac7233d5312287bd850471fb49e4f8b", - "0x2a6ea987659383f9885d24c935fe56de39d45caa89e60ba1768189318974ed7e", - "0xc2df6c8a4eae77eeaf11d7e5e2198ec4a33f19f5995caab4db6577fc1ce7b957", - "0x1e2ae8a42eb937749284820e50f11dfbfb606ddac3efb201e0b2664dd0196d63", - "0x4d63bb91f9f8a9965c460326f0604a27ecb0fc56f2126c6b3519b08a895747b7", - "0x9a46c2ec5dcef6f5c5b76d4b08b9d5085709182243cb8308a2863cca8cba13dd", - "0xea57019cc85f7cece4cea7eadda96dc9e464df2689957ebfe8d817b6996b2e43", - "0xb40e930b31dc1508480ffba351b102c8cab53c6603a0dd88bfed1b0da5347153", - "0xf51ceb070d8e7cb998cf4979ac985b4850949b4456980f523d8b9d72604a43da", - "0xddd28627f5c7bd213149bc4886bf4bcb8304f86068694fc743ac81ed749aec3c", - "0x9ef2b3df587caf086f4a9838a829491d1ef45db132ea71c6bc96a4a40d833e92", - "0xc9f7d4e19501c48dda5b0012cd93564898ad080a653e29f3563ecd40d36de84b", - "0x0565db36e6fb7b881eae309fef6fcdcace7c92a7ff148476b627c012aaefe4b9", - "0x08912abab10f16b92ddaa3663375f6e2b656e4ed89f2285aab6e410fc59e650a", - "0xefe9e68ca3bea929722bcccb5150884eb23c32153b14644b1c7f4e033dc3f718", - "0x4b33e0e078056d9efd857f909d1e409516f23da68105463167e23d71c90f6366", - "0x63cd4d1c69c4168798a3d9f15388207ea10ee4dc6be3681b0c7dbce5649d8f90", - "0xc8e7c25854d49022e9a0ae2eda8e7835a6db9ef7d612312e9deae23621ba240f", - "0x22c05e50f27e8bdaf4abb0a045d0639bd7f80057dfea638df6a7184ac49b738b", - "0x4a34356b5a447591ac66c51370fb6539bdf50fda9600082dadd91d33713a74e1", - "0x7147d53533ae40e886f6bc1c3b65c51570d72398f46e3266f2eba7b707b46b3b", - "0x1e49f75a30695e9bef14b036bd1c0f2b322042b2a02ca56604484e913b284c1b", - "0xf2445d48e823bfa77776234356ae0d3c1a850db236b3d2a95e5b00c4d7e687af", - "0x7034246c6342c26f5ae974576358f993d0e5e3c577e6aecdcc182c78082ab181", - "0x965067896ebcb2628ff10127508df1c811087f45ae258a0d8179d576c21e4891", - "0x384ebc34021ebdaf95e1bf0d8d61777b96a1ae65163cd3bd9b4311970a7918b7", - "0x1ca6e203cf1e058f20f5a8b1e33464801bcbbe04c79a7201ad6036bb8aa54101", - "0xf5aaa21a85fa9d502ef278262acf71789a3755d36dd8b3794becab7fb2d338e7", - "0xdeb7dec7ec133b6ac05c3bc0fea3b0002c8ffe58b135f4ae85b71fe0350dc7ce", - "0xd5773586ddb40d4c772541f743f7a4b08e9b419fe5b5b3536afa0b3b888725bc", - "0xeaff5bc016770c7cce7be21952cd8759a8d0eeb1bd849732c15dbbb82c613a74", - "0xb1a6a6acd39b4428accf9120a46d74cca6451ea4a182206425a8a64c6d6be5b2", - "0xfff27e5023fa1fc365db1e79cf3283bee2f51333059bfff47df39f12875e5fc0", - "0xadf1ce203b0acd4cdaf1d9a91cc158a21c823dcfb0740f089ce0830102b1cdef", - "0xcf20c92fcfa22d6fe7a60d1aab2d5a942db39d447d4ba1e9e76888a64694f1e7", - "0x210a684182ea379b50d641aed1baae3bf3752fd84feac4b3dd4e110c5cfc4ce7", - "0x220c5460803cc8db7a2b645dd5a4525b0703182cce173324d20e1c865a157811", - "0xba87b487bfae148239b44f3ad7663fd66cde8e21aac9e1a50bbca7bb7334aeff", - "0x2728161f9f040b4d92ba838d841404604d4d838157fc66f20d6c4c61034fdbda", - "0x3f8a6c7198528e5084b3e8d52d3101c27c5bed8721beb831ff921eaaca4c4282", - "0x2cc2574320b3c7252404db7c67b462fbc8d87bdbeb782ab1bbd257ee634a35c2", - "0x13aae0ecdc6a70d85412178ec12e971b2c4476d5e624938ca0284ccfa611d11f", - "0x6af7161831c3442db94cbe28ee9385fe79339d533b9c0fd3266213c2a5024a14", - "0x06185136927e5bc26ecfbf2299a0fc13cb447df6ca4a60e968be8c2b7ba1c2e3", - "0x70ccc84931d910a2489d50becf82383a836309bb90dddb21026d9e4e4368c85a", - "0x400ae9e4da0f847dcd4bb65e8f9f661a3b0deb78346b4f1f84fc712fd34410f0", - "0x57aacedf503300888fcd8db2138badbfcd663c63c3cf5b3e35979dad635c24d9", - "0x8fea6cc2da76b7cc7062af870cfacf4952b81f09c3c15d31145fbbfe1c0806c1", - "0x5125434cc5d4137ee31b51ed8306b4d665b8dc66504661b46c227e62a9ef1abf", - "0x254bc0b61211e0a57755d73ac618012938472912f855972b7ce62677f5d0e64d", - "0x2d231389c849ea459a7530ac1bdffa4d84908e2c61125a70bfcda932cc8e5efd", - "0x671ae73d4739bcd4841fdff266803117c5684c61031fff16e831a3bffb4bae4e", - "0x64c4db66cae82a96f29296b481619d79a739e2dfce0ac1f659d45f526ae58ee5", - "0x3f2f08ce2f21253f8c9a3fd650a885ca0e77f720a21ad5b4c0867150a0274efe", - "0x98c48268710592ee4c26620375968f2b8730a1bd1777239e6ffb9f116c6e1284", - "0xdc7a5c095c255e1984b4a5fa75c7a1d95d98097fc4eba898e644ff66951d8dcb", - "0xeee7579812ef09ae31068e8087536362a967b2893b709a458822449ea89a48fa", - "0x296e707796c0b9f9a2f55ad06c42d03625dab94af71c2e1c7016a7ef6645bf5a", - "0xd9a3eb363d4a36300dc4d1903a83447c89ec286f8d219f1156335da283992d60", - "0x039adf5a0cfbc394847d8014d64700ac4b6e78b531a1e0328bab256f7c407116", - "0xf9a92c6b1f0b0b3d7ae33cf5ddfddad516bfd7b21842d76098737533efd4f7a8", - "0x5a5d1fa3b8e05a81173e627f14e689c166776b93df401593db8035a65fba58f5", - "0x34f7fda3053b9d06e217223ee06fd194e2962c4a381482429e596df1fe319686", - "0xb4cfd9a71a98ad52c7705d55e96f04cb9064b1c32d3c346be51370b56ebb0f8e", - "0xd46a93765af68d238b776b240afd464a24d8c8bc869280ad618fd0fb6360e878", - "0xf3c622a4ee05d1ce27d59e7b9b3748547f4efdb1d6ff72a58fa93dccb7b76de1", - "0x6cb017c4bd8bb5186590cc4559fd9600399485ca917b10556b98cd7fb61441dd", - "0x7188f59c892b8754845d73f534587f27b7da67f42dcc1c73390fe2970bf0ad28", - "0xb4b17c93af08b9f587963e42703379c5e4f760502870b8096917b09b3950ee35", - "0x03165bf9bc20c87412a41209901d2bf3c8bc03a8586a1706fe1499641cbc4775", - "0x9ef57b2126a38c2dc456c13c272de53366dd1bf1fe768185a93f3562d064fa8d", - "0xbc3660089065220589409f7063dde34aa080179b3f22464fd9df9eed98d88b0f", - "0xbf1cf6eed0e0270d6be602040a97600ca7e1279db4279a9fb7ee643345a264b3", - "0x4cc471987bfae3b32179aac7018ba574c0315b9832915b5d0b804b38e9def6c8", - "0x51351557582b1d821adfdad36536b59b28f9a1f1243115486ce44d4b22d3952e", - "0x66d6b02183b9def37dce37b66ba4e9939241732b49dbc8addd147a89dd9e0517", - "0x47261859ce169e56d4e7dd75c5e2648597c7906f9264710c7e4dff74f353f739", - "0x38edbf1db358c82d0c945a7fc024f7fdc1165331cc19caf6b8943d3ce76b721a", - "0x5231560201678a39175187469f7e36c1c729ae060225012ff4f679f3fabb8237", - "0x763bfbeeab624de07a6e758368f8f61c0fcfc8cda088d2dfcbeb47a5eea9648a", - "0xce910446cce07477d424f791a71a375830ac26a2543b8bd1343e0d775d161e5f", - "0x950ba34133aea3c2947a5e5fc1836375e81c042ee999b60dd4a27e6492fb41fe", - "0xdc24f20fda563bf74ff7540a06f3631af8ab3b3722874a6b383714f463f5fb43", - "0xf2250ef512d3a11144370747f2c86efc73abaa81152bc6083f87aa217d16ee67", - "0x8760d0bc8f28eb2504f3bde3e429a47f0aed1dc2c7abbaf01c68033c07ad368e", - "0x7ef1c11b1f025f7e2aca2624aa9a11781cd860f24ce3fb525e7196e590fc5ff0", - "0x7c4e717fe77c8f9e742e312081d51418614031745b182746c7ceb4ff54deab6e", - "0x56c82f80b8d52128275529fffb3ccf7376f411d7cf9464a15fdecf617b4e7571", - "0x46f7d3ecd09c29d36a62a1a65bd3c59a14c82687b5466c9c130df14c286c2a95", - "0x1d04deaadcfdc7a1e5e612df6eb836f55caafb4f9bf4f1200fdfef4f14229f26", - "0xa0f5e65e99a22e14ebafc71f093dadc96c68883609a7460f904eb15360e3dd6d", - "0x8ea6c444466d4b6916a1b6dadafb87d75e2fa1ddd1836425dbaaad6e99f4d68a", - "0xd53d052bb709813e6dfe218dc4bd99c5ae83b6f5993b182c36a386502713c7b6", - "0x2e0cc1dfae87825d1a1d8946e021dc514dea384241e0a6cb66d5daee570c72fc", - "0xa419612e2bca19a3a8dc7fac4da86c2df4edcc2989e10d3e9050323011676b1d", - "0xe41649d9af504bd273b9da0fde578dc126afb55feb8b3c31a0d4eeaa9c7b83f9", - "0x0121be707b5666d5a78949b2ee263bbfbd013b69caa9566864711bda4c7ed0f5", - "0x788538d654618bcef0a63e31576e19a0872a92733ef7930ef50f8afd6caf110e", - "0x7777a3a4930828cc158f696e6ddcb87696115f473f219ac5582d8a38e0645430", - "0xe15a9f42ce5964358f862fa7a40bff0c8e8d7429a5ca923c9f0d4d0d574378a5", - "0x187bd59945e1cc6a877fb324b1d7ebdf661383ae7e22c56913f2e920de73dd68", - "0x938f100308d20611bd14372b16da0dcbc888868f8bd183d667064dfa8e67a161", - "0x5e61540787c83bfacbb58967280163f55f5ed00e733d6295099588557ef2dcec", - "0xe6625082f4039ef9dccdbeb9488baedf75fcec616ed9d5009deb4eba95cc680f", - "0xd01542aefe234567f106a4f057173b4f6eb5733e0ab9537af2db309edf38763c", - "0xee0174f3f9218a3418b8dd2bcd4132821eb91b31391b7c2c6e5a84d067d21497", - "0xbe26c679aafdea135aa493bab8ee348b255f50bc69592bbe017dd96b0da58b1c", - "0x297e6634c06193ed4725942cec32ccc9b4e77b5d02fce2ec9fbf580e3dfce248", - "0x820d98bcfbc008480ea32b162d15701357f094b1d7c99a1ff92fc0afd9708a06", - "0x82bce2be0a2d468b2fe0d3ba4ec1e5e8eac2d83f8b2e402b3043119a59cafd51", - "0x63ff3569d9a5661b6773a1a5fc10a522ea12a22399cd337ffef75a0d36735ab1", - "0x8431746d8239126bedde7d5c58aaf7f733dd1542c942d415d876ebf8a062f032", - "0x6bfdf119b93ef4da6f48265f4c526f0837a10c8db9c518d0dfe1edf40ae5fcdc", - "0x55aaba1f40c9089c65623f67eef8cdb827282a39cd0778f26e2f73106d3eee3e", - "0x0022a0b29d8188251bf5c6f37c76368dc9c7ed9e00376901162d1fff111273b6", - "0xf4bda8d3cb5b7ad50dfcf2668253e44b98e87d563ce17720dd1eb1a4e1c32628", - "0x994315a889329452a3e08ef029e7d902308022b74aa5a4eb2178929425c90a84", - "0x86a962d1d436f43f6fcad5b61b615f2bd32f10fe8c62428854ce98f4289707b6", - "0x3ce476498f26fd1d0b276ea639d438d7efd3c10451949efee1c91f279ef15ed9", - "0x199b2fef89c1edbe547e8c0b666b7b138d6f94fcfb2f09f26edc429ac163b127", - "0xdf3fd62e7dd0133ffa23a0da13d720373b57e85c28ee97890c355c44323ad592", - "0x92e0cc3bc262330ed8a1f42ad40a2db6c4e75e2d39e24a6ed5eac0855c12dd05", - "0x5b46f058c21b9447f8faaf78b2549f7f1459fa5ddb4211150bc26dd718f8361d", - "0x316b4f0e5b50cea376307236de36f3a1ebad3c59ae28dcf7838339d8711047e6", - "0x2b72ece0cbeaf94140b99cd9312eb891a1264a4d31fd839017e22cd4cdef058a", - "0x0c86b9b2da38f00150d49ac53ccb43a88a44181c90b492e886c54b0d6a93de22", - "0xba5a671174dfd7f877bffd7fb3179b1f3f8444ab14eaa9a0488207141bda26e8", - "0xecf73cee14b1a8fa5c2de5d78c058bd04772666ff455ca4225ac419606041f2c", - "0x1947b6adf9abeeeb55a66cad4afd016f6522faa641c4e14af94cf6e610959ad0", - "0x5467aaeb96dbe111a0d36fa66a71f489fb33ab8d95692695c09f4680086daff2", - "0xa21fd9195eaf856bd048bdb258507351e9a2c168920fd0c550a2340b5176ba26", - "0x9b0cf5690d3c3764f5c102fe1d5139202a1f982bd5afc8967eddaa6bcfb3af42", - "0x32bb410896733f9f6080a5b574b07c0af3e5ecaf69e995751e392c3905c11d20", - "0x5e98b3dbf58bf5adc0ccc9269aa10f9921afd44283837e7cb419ac4fb89f6164", - "0x051cd6e01ef3ebac9f27e1d473b0abc00d870a78cf894cfa8222d00976948b39", - "0x500edc8298fb83a103f5bf779d1df507644e054ef27ae61ccf31d883d85c2a0c", - "0x80c8fd7e50aaa14da3af3ec622adcf89eea9760ddbd5232a49ba55837be5805a", - "0xbb828dd031299bfd428c22110ff5d9f5612447e346e98401ab4a01278834e476", - "0xe2c5f408029af25cb9c130fc8fb5118660d08da399dbec0fa1709d1c0583de57", - "0x1be80d06b4ec5ef612e16bd8d842484039ca5663234174441f0722ca521958ee", - "0x21d755042a542493e44e92b4355af2f06f161c0e2583aaf6862730be7e9976b2", - "0x49b993b77606eb939ae485e82243e530e392af6d68be4ece5ace66a675a7a70e", - "0x954823b80bea8f2007503ebda5a6ae4610f94cc2c9a6ca22088a52468a960524", - "0x2693662c6c0961a92566deaa4a59204a0c436aadc0581b799e6255fe97d26331", - "0x4e80abe082c0b8ae0602c232ab0f766aefa702e744ff142cb9e101a6050acfbd", - "0x9c47c762c73836210a6bd78e5ddf9f2e817951d52b9fea0c823596c3df2a1fc0", - "0xe86094c8da0212cb0cd96f54c9f1b22c11feadc5599f6aa63285971651f11278", - "0x3031451f37f3e0288d61580e5b20e008a2ef5975e5d12345056949dca2c1d421", - "0xbdf90347d794ab3b41da6fb75b5d8d1f426ca2c4923216393e055dcbc89f3cba", - "0x4f7a0c9ebaa4833e7fd0ae0f3ac8dbecf3d97d0036a41ef30230e634142247e0", - "0xd1cdfbbf34bfcabe4a0eb90fb4d8592738203d245d68b753d418c4bfab8ae4e4", - "0xaa56db3fe5b2edc2ed277656deb51e15f86182de49836b4dfe2636de5488a86f", - "0xf67b05c233797d61eaff641e5bd35ee830bc1a8440e06f85e034902bd1023ede", - "0x49bb9be0064ff46c4b7820e7dd08002f3914fbf9250c96873bb3dcc7bddbe3de", - "0x594efbc23c0a371e3e5478c599466ff3a8d985444583b70f275afda13cc05c9b", - "0xd1dc59771492ee0881398f87a7c90db42874d720812c1e105b1512531d9fb1f3", - "0x7462bfbf8457d1df1288cbaf339861dc91c02d772f3c1ff8c215965e555d6905", - "0xee62a752465879dd62d08d7a15a54af1e813a1bbf2035384289bd634e2e99524", - "0xc7c66334011807d017e0df794df5f2f36c4cf496ce0a3589465662f8aa5433c7", - "0x839af48e65e3e1fd3d177d90f1dafcbb0209b107bf882cfe2fd514be625c1396", - "0xfb4eeb8514ede5bc952beee0e7e78c6d7ae544e6c4d935a6c92375b224e40c3d", - "0x38576e990356b7c44eb1dd531fe28420d01d80130e0ef0a42b9a8b01d2687822", - "0x434bb4312789b8cd93c5f930f4305760f86c54ab225b35bec70954aaf2fb4c2d", - "0x19ae08dadbf2f7da90ce777913d59e74592cacf6f385600f7d50cbbf7c4137a9", - "0xfc9a8ba8d7eff3a582725f8fd1539c4f77a87ecf23505de8a321ec6d568cab5f", - "0x20fb269b1a7908ccae92532424cc94604ca9a0908bd7c5e446a687cb3be9e0d1", - "0x9fe0a0e3511056762698573eee8ee2b0b87a8b6daad2141a9ad00c5b159521f4", - "0x3630751af37fd3ae22e78198868341e86735b03432879fb159628937c6bc28da", - "0x427789cffa2250d89b99d50969d8dd9917b5f4c721ed9de79cf81dc59f94d81f", - "0x5ad7e16bd42e35671230458f8f97c18baa5a1f81b675df259c9d2d7cbb09fb77", - "0x3d58c8ee704a934f6de776ef8373c653140e089b85aedd53219dc0b46ff03b58", - "0xa5a0719b16d8771b34e050660ba965b0ebfaa06bad1973033cbe2fd69fac5886", - "0xcd66e1ce23416fb4662d2b29dd72d9f8f981c66098820058451441213f2947aa", - "0xc7eb6f1df45136c9adeacb03eada4557326aa0a22f9ac0d73df25e21beb6bc0e", - "0x890eb4c610c7036e1494514e1f7ff72f414c51143fbf13cf2cd03d8d37a03662", - "0xa54328a1d2ffd9aa3f38a9e6a0539ad2517c4f6129f01768891acc0a2b2a721f", - "0x147644decd98b450b284d05d7332629e3c6444846f7c71dbcc892d3191f2efdb", - "0x1a19c1a8fc7f9d838cbd736243e66b1f637f49b1d8734c2af417227a11623b30", - "0xa8c14722a6f7e7efe695be4e6a21f2d1c8b8d71e2cf69e7645ecc5cdc7b6355a", - "0x8eb33cc1490499aba376f581b68766c4fd40e7d6027f223eb46e27199acc8d67", - "0x1b6a906a5321b057f453624693d4ae6abe79a5b8fcd63a777dffb8b2ea4184ab", - "0x7185ec1f19e7a84c9f914dd223b382ff56464b01a1b88dabda415a01e1d0a1c8", - "0xa172df0cb06617eeb95d362bb36d5e5ac52cbdb2e5f3c2cf3d9b78ef28fad82b", - "0xa11941ce1c866d077fdc995acf3ff2ee0ea0481eddd142f9b343c8403ed606a2", - "0x1958ac9a77c5b9825c401b204001dea8ee2520983fb3e738a467980a7bf9defb", - "0x6b24d043eab24359787ed7e93543967c9f9b7ccf99894c1ee7768f6235cb0cfe", - "0x6ab8c28ddda71b937d1a6feaa67b071f78ff7ead3a192ae63dac34ff24b8d929", - "0xf101e3da7546249b5b6d4dbe960c713cf152627a7482fc3377aa31f430c54530", - "0x22628e903ea9eb3eda9c93ac92d77b1b8a5ee62706dc5ddbcd079c57d5b721eb", - "0x0050467a543fbf0a232c8ce9f66eaec6c38c3c31b8ce3d590d1b07586374c1ed", - "0x4235a1330a45838b2d2aa9873dfbd59cfc0f0cd16e13ca9292f8342eec255fa3", - "0x2049ff9cebd379b51308220449b3568c6d7843f5b49f61b85808287f3d60441c", - "0x50c2ef0e832df29297dc524fcf3af4cd0988fbfea71987f3ac5cba8d4ec34102", - "0xe7260880b2d822d18c9ac2224d09fa18f5c324fb421470aad5af6c2605b40985", - "0xdf51e1b441b9809b26cd7cbdc4df27eb9c7fbb3bf764971684aab6c63e282a75", - "0x597b5c48840a25294feb135e0318ba6d6ca09aac476b1041748738963136a0a4", - "0xc710bd4b45a991f7f1387c25db70a1964ca4fbab32b738424d35a6e06e2483b3", - "0xd67460a50ec79c90a97e25d4cebdeafed6c897593fe8b24afe47a71c818a55b5", - "0x0ac1f2282e4491fdc8d28f1697026b7fa88f46204610cbaf8811d38dc84539f2", - "0xc3352ebc532273e4224dc0e94ec4cbb83afc2b5c364d71534344793032441006", - "0x42f3d39c81e118a7d515d82b6880104909a7915aeaca8ad64fe74d9fe88a7f45", - "0xac6fa42771e9cd6ba31dcff2455d2234c53c282251ca2399c727fd5521eeff0a", - "0x83ae44822213f59d34543a6d4fcf76b4e22cbe5a90674755072613550d348551", - "0x99cdb65200f9d1c602c5c2ded67a8cf2722cd7c1ae3f11d29a2c1b702923df93", - "0x2adda7cfa12bf5ecbc74ed4f4ea419ad7cd3e7cd03a0e2b32e924aa2ab98ec42", - "0x3da7434a58c60b7fc7fee8e30b3073ff4d3c381288fe6ba791f68d74d24ed19a", - "0x9dbe78f9121e6c0d99fa6d441f6aedf54be14fb39a277cbb5f19fd0b846305c3", - "0x2ded5acc49e2e1fcb57a66a81f59405febb50edb6b41d0fa8e445477028f422c", - "0xa46310f11937ce81ebe8d4c60de1a5c8787a1aac35ff3b6e2f0cc793112b7df2", - "0xfa693856fd1867458c335c6e903e5745a950ddf8a43cd9ee76ce8d0b3070bcbd", - "0xb374a194d9edb55d2946d40a16ac4617e4d0674630c6a970f58db17f21d22c12", - "0x651032646288a0b6fb5322626bbbc5b6b87dc5a5d59f5f39073f2f9574646c41", - "0x7f4346336c95c7fcfc1f849cfa63afd46dde8e346ae0801aaaffa9069f989e99", - "0x8bedf8e9f5095b4275635525fea6169c5afedff2ae434e42c5cde973de77ae3f", - "0xf92ac4f6fdd7801f15c8e0ee163241542d1359372d2189d8cd2a33f925933cd5", - "0x806d437ddf966fc6631a8f81a54eb82080fb2ade64a2b715872d8f648d23b57d", - "0x2151451d68f912b58bb510002407943ef6f2cc87a992e6df0765a4c239e63779", - "0x6a02bab7734d8549be10373e6395c368492b8518df793821962a940d5cf93654", - "0x4de627f1d096c86c1c1dcde2a314ba65700b1ac47b9db95e9ae68f8d28f52b16", - "0xeae202c747b699171115bb56652ed534d9ca6de0e8c3d947d63c6d60b5d658de", - "0x7bddba4a7c160445653f62d27c1622323c784461d52aba5a6f19964194a063c5", - "0xddfcf0c5ff899f19c4ed0604e7b4cc645ce5bdb7b7c7d6bcecfe7f2cfa3bdc0b", - "0x7d27d279f52b83afc9a115c71910d06a054fdc2e20625cd05fe35ecb03734f5b", - "0x415f6bcb216ad524eebd7bf177bce80cc3d5fb3e920ed65a8ba6c02f59fa88ba", - "0x570daa81ed1b593529a07396784c2996d5703f4124f941e99e8f9cf6b608b1f5", - "0xb9da28526fe8300989e16c83c4bfe418c74878be1bf3af12ff3b9a098a4c92b0", - "0x691938f83dd63e39be2fb03422682ee8dae8e0a95bf4d09b4727f8162b2da11a", - "0xde168c58358db826c9c953895b7a0419066e65eec0b7fa479c328719cf70df6b", - "0x65a7b2207932e96c427a6c01efd0c3f01a37e02e7dd98b18ea559c2a6c83c8d2", - "0xfe54ee65b1b8e21292fde2eed9ddda163036cd6745254bc7cb9f3dea737832fd", - "0x543d64c2a6b763cabbdc1a9316f37115fd572d96b5c75184c155e68532fdc8a2", - "0x31b41a4f481a786bcf4029b19e84729c699a8d742fef50040221ddf6785d7335", - "0xa383494d908727fc6198035c24afb3f352a16b29b0c1639062e7169618bcb38e", - "0x3da745966ebad677a703f5db94777fdc307f6e3e66a7c3c5ca24f35cff3f43bd", - "0x32fbcb24d42beb2128d95055706b767f7df7ce16c1613e3195342db84dc9955e", - "0x1723ae6147425f5b01b68de9847d79b918ca0f85a800d981029dcb5e3c62eb8d", - "0x997f18b9977469cbeeddaa1bb31472be3806c03ae77973c857e32d6fe2c4d740", - "0x6c27575f33b1d85fdf9643c9ddd27085f4241518cbd5b776e0d2bce19b152ef0", - "0xacb86fb3209fbf57c42eb86d2617eb631e0ba36da7de5b2c7ed63f168a7b112b", - "0xae02559f4868fbe4f114eb320ff0f3a38086f364a2ee537e6051cedfcee76d6a", - "0xc96e439aaa996d4ea4c276d1592fcc06e829d5f3cebf163aeb75f590896a2648", - "0x87debf5b6912717ec3c0846fcfb5b459a15254660cd5064180c0c514b4b15f59", - "0x37587d340df2b40b3f14746b72c5a72c5f51963d208b02c9671d6c623079b584", - "0xdff2805c029c4e3c249de3aa9f5cb3b48daae4f4496deefc91ebe3251c18629d", - "0xa84f66a457869dfc95d625d40496250ff33894be23a43e53ec892481f1eb4fa5", - "0xf8fb34bf78ad6d52be6fbb5472f13322b506f594ad3b585c04f56ed8d0d9afa1", - "0x546937b89a4d3b59817377b9c2ffe9579d4650cce71aa26bf2c76c571ec495b3", - "0x5ac921894e98005d03aa42e8fbde7ad0af0401e350c8ba98c01543a93b37dda9", - "0x3cc76dc057c73f0e0fdff28d484a092747ca42bc10989c599d0f597ead6024d9", - "0x1992cd7e94e9ecfaaebbd08d91519d6b67857db87e2e67c546371738ae0d2d0a", - "0x3604be694574c05c63d69cbfbbddbafe3cb425d75a13e69d61b50fd8d9c947a7", - "0xd1c82e40206d2a89e3a1a40c4a1b63c62ea6fa0847ddc2b25f63cb9bbb4a55b5", - "0x66ba114d5bf45d50e9ab9beaa879ce18d02a8b4f989c29ea7e9ae604593e860a", - "0x94f74c09ce5fd1c8fcb9cbbcc476af20fcfd9cf01c7ea65c14917da7b9560ffb", - "0xa4e154ebf83215c3843ecbff1dc8f646f221505c21d2a76f47d55466d895f1a9", - "0x28c20a0e95e23a023678443d7bf5b2421975b827dbd617239dcf26bf6db9b255", - "0x55d8ddf586d61e137482e3f4bfc1904ce4e04d21c6e7ac4d8c7d29b1483c8c0a", - "0xa9e1aed191a7a1a92bc99604e3b24c02356ea378b16de109362aefa2fa978451", - "0xd543ad635db78b2518681654f98a32d227fa6a1fa9b7043ad12cf58c91e8f729", - "0x102fb87da8b57948fcb763d7b797233f21523545f78388d8d05c6d7f2a4b388d", - "0x4e7273e2a92e897590988f38f8b899879aa1aea754fd5165364e8b98a66e0d62", - "0x5a06544527f88d9fbbc5905742863d873367d99e574d75496c59caa041e2b612", - "0x6a8957954db14594746daa61f907e4694e2a749ff53ea6b1dbe77d7d1f378d22", - "0x0debcd48486aa0d33a783caec0d6fb1256ffcca39071041fed7f047eecde8640", - "0x9d0a9b13dab1888bf0eedda217c501d76f587ee9a8765bb455cebcca0b705599", - "0x30693bf8c9bcb6bb4187606f98e138700e999d8824cada72d3d07f8c104fd263", - "0x494ef870dff64d1d65b4ae4b49ff13c145a6058876eb657751d58c06f62b5032", - "0xee4150e64f9ead8124d50d56fa4b6e6d185fe8ac385bd2a9db7ee991f6e34c02", - "0xb859d7db7abe48cbb9420d008d94e8d47753cc78962e5dabdded9438bed56b1b", - "0xf8b1fb734c345111704d73fe6944d0a274964a347d7dc5c7cb8677104829f5ce", - "0x5dc002623d9b3b872900b0b313ae8520009de730577b6eb2e2de18ae5cd4ac94", - "0x4d63e346ce7e654db6f067e8348c539ccf622d84020812724b936c19ff4f86af", - "0x2ed43f4e5d6889f5379e42d4a06de7c343080da74ff353960e4cf980f750fb90", - "0xfc61d0c90ecb073c022c87098045b6ca3f2b66c94f3723c679d81ac652b16f72", - "0x7e69914b56984b8c7cc9db1732c3d2d32969a58d6662509846e6faeb1305586c", - "0x0ec9b1b68efc96fc7d831ac7316e0ac0d908bac31be330d905f87b136556c241", - "0x32fdf6c25f6c741dfe468289cd7f019ec3a40c5d8fe882ef662b798491c0dc34", - "0x1ffbc6b29826aa58595d1a412fb90050f2bc3cf0ebc5462f308d4c8d85a1eb59", - "0xf0fc93cc2868cb9828ce16463e4cbd59637672d5815dff03aec7f3e1424eb204", - "0xe404321694894ab375f5a65c339f2cd2a53fb5a10f312082ce019681f6ed64e5", - "0x81ab1f93747c4804a85f56b0c6eb61491b958504ef7b898fb1362eda9b394e1e", - "0x1535d439d0043d1436de963e3eba47335bd7afcabeac4d3fc3f342396d3538be", - "0x42da1b95481bfab6cfec59884bb1ac7572636c8f489df2768fe2140cd2702766", - "0xbc3fd861f6e09efac1782d9d383c4ddb9b4268216fbdf3c25689162628e36cec", - "0xcc74c3d8b44a8cd23676babb4efb0e67871582cd5686fde9de6a052c5bf91ad2", - "0xbcd7fe80e95bbbb5ac93b1df5ff0b8e921e7ebc4960877acc1a95c478c65d64c", - "0x045e5918fa69606b9546f5fe83cd9212000828c54f9cab856f85d3a22536a751", - "0xc0f74dbb5a42bf1656698c37aeb904a33e969099f215a7efeeae0024c3a409d4", - "0x36d537998634f2dcab43b387edb63119c0f4cc68b1979a2ceb373089c531ecf9", - "0x87c20426fccdd225bd3b961c7adc1de3f9ac9640f6d26bd183f6e528089922fa", - "0x195ee1daad5c3d0052d6d633eda1c9f7160d488d4bc54f4ac3babdbb678eeec9", - "0xf9a5e6735f9c5577283e8cd717b56f69dc8306b23781755f2e513d15e6738cea", - "0x3e5bc3e78ae33367ce7450c5da7436f1faf3b1a62d238208df207307762688be", - "0x123e7b4f7e6b9338df2827a238a266376a20a1fd065e9f8a4446fcac4c6c92fa", - "0xf4eb14bfd197d49c42daa919322f18228d2d9ae2dac6dd7113c5e7d12d2ef866", - "0x78836678c20a40fbe09849fe190a9e74ee070f2056d7bef85d0f124676a93130", - "0x7986f7321971519933aa5dd507074c7b007328a7dadb8734eb4aecf732703fed", - "0x14485d24b7e90fc39d91ad6051b7f596d320b1f88f54fee132e032753e59a766", - "0xa80a9a5db758bfacf831a54022c85a838e30c8611ab4b17bda0641994302b59f", - "0xedf1814fb78abf675f3c5671c3618e5e51105647997d6dea6a0cfd1f0330bf6d", - "0xa91e9fcdc4f2b5e029abdc6b2523079bb4a2f5346d8a5a674e3d5582b8871d1e", - "0x3dbe468159a8c068285c92360cab488a4c1ec37487dd54cdc0b70e6d7cf074dd", - "0x69877439effb3388639ef6e1cfa132bc605bd8a0da053bcca23d82aa453d0040", - "0x6751d32ee3a1244532e6698ce57cdd0a59f99130e1e7e004c2751bc49d10b355", - "0xd1760a4f6e5a7967985125d2deae8bc783e47b1b85e19fc273e33eb2ef88d271", - "0xfa934c087923cc16f636615657477c48c082623d7cdd35508571655dc14efe57", - "0xb6b1e4387e04c4ddf88ada0aaa162345cd43e54482fddb4297e1eb6f8ba1ce74", - "0x3988089edd46b57c0bc83b1bfeb0050b503cbefdca83e96f1c12e7ea80688a79", - "0xedcb1bd8b522ba5155965cf18c25a090be2f8d7871ce60f0f371cd033d5a31d2", - "0x2f887b56b317e9896698ec9059d36aad63d54d95a01d389aa196ae12e562ca2e", - "0xe6d6b89e1d851fd24cf54f6b60c6c93a8b014ae30906c156374d73605aab3028", - "0x177928968fef8c6da017b177f6be85851616775be043b64f72925e6b8a4eeab2", - "0x71a3de323d9a600e15c25a5a6e05089d849defc3830fd69738f548fa4c57aff2", - "0x8e7d92f316f96b491e4831f52a799846810dd032bd720dc891195739192f3955", - "0x12a3433e8cadc005ac35da334d557c8cdad63576613f07df8c3ec9f528e846d9", - "0x1406da1f5efe9d3de6a829f1219f731f3ac875c7795f72b5a9ad25a57970b9d8", - "0x15a849a0ea56a777e00325b4af4d9996747486cc9893c08b0773210306193521", - "0x6178e69be88e7e93878b731d062b29a34bf2951082b947f35f60fba2c8de62b7", - "0xc4142d4fe01091e82626178b66c13243c9b35de0f07a49e3c5f2ddc15b39feb6", - "0x8abda6239557236af27a2cdfbb4fb91a6b136931c53067739578ed13e1b0a2ff", - "0xf85615d9337092e25080430cfa0b7a24c97effd422a1947a4c07239d5221418c", - "0xf9534d7db3b5fc1bcd7033ade59fd66bbb94a5bae91c4acebbb1540fc8bd3b67", - "0x5ed0f8035d3920d6e94b881cafac324ce5688f8c97668715733e0d00733b0fe7", - "0xeb6c474a0adfd84c79b86090c793697c0bb39d6cb007c725c2ae7afdc98df5a6", - "0xfbfce3e019b0b29ad03fd9146fa368f9965050b40733ce297bce6acefc4668fe", - "0xeda9ed65fbb1c7fcccc91de519f69933ae66c8ed59fb65f64751ca8aa06030c8", - "0x359ea9df33d466b5dc210ef0e99f3b4416ce03a5439f49b4cc4c1b98b22a21b8", - "0x14b2e8729b70abac62120541229182264b78c7ba1a1a379ac8a582aa0bb0d739", - "0xcec0dbdb55f92191974c2c8ed716578c5ba04c4584a0770fc0d7d5cfbdcb2717", - "0x07334b05a08cab079354cc1f7a945caa3c633de89a89c18244de81ed56da850b", - "0xc58e0bb71287fe92564d00b5094ce36b7899c346679011e52b73eae45bace19a", - "0x9dbef45ce9abb762bb9b30b61456a90b74b0b6f5b41af9500699542d933f9535", - "0x3cf848f770e15e7f682075c77f7e980da6750d3d4cb038479983e341eea3c354", - "0x608a4c5958ef3b0a324a7cdeebcc3abae89c1371c949d6b269b2d3936d9fbdb2", - "0x66422fbb9044305317d900702c2f99702317a8a83ccae0911a2832f623356c8f", - "0xe977f86ae4c5b350b350a3d6af7fffdc9baa96d9a7cb24834e5dc4797fe39fa8", - "0x6f56fc66544e099797cc3b0879dd20b21796ace01a0029e0d8464a3764d1e858", - "0xcaef7878c703facf29fde1467dcd08b03761872f598f42f5c56b4cb367b97255", - "0x9055cc0c11cbbe8477c7dd35b37a57e7994248c6bde9ac05e85717cebd2b970d", - "0xd7b08c0ca8abb9f07e3df1c4ebdcb03b0ac2018a905d1c78e6825d2bb5ea1ffc", - "0x0184cb109267e58d5bc0193a04548f0c2b87286ab6b03a1ff7b6d88a725662ef", - "0x3005e0af1ac0c5fd6d58328c06cc7f5d89c8c4ad173106fee1a7e37c9f2dcb95", - "0x8f7f8800d29c66b4fb12334b622fabe1cc4ef06e4ded44e4315efc381987cd56", - "0xdf74e3be6d22159e0e02ce3b8f0b405e6469557ecbd12e4432d52f4ae4637bfe", - "0x2fa9a889f958ddc41bae5916657f946273447add502464674658bcc257f1af15", - "0xbfbdf04ab62a35b2f7b038b02d8c37ee946cfee18e10ef8a4cd5409a5fe81d19", - "0xc4e834510182950161a75a843352b5b46e246a05b7c7e47240b6cdf7e18b4de7", - "0x2534be362fcc238c530f2ce8f64a3366d4003a21e6f32493a082b7efa1d413d3", - "0x628e5f76af96e64ff34c52cc5d07562e72c53e7bd4b7585cbc83b7c9951d0d2f", - "0x41687c81b22f67e4ab6ba0163da6d58c81d94c5db20569b4a42fb58b7321a442", - "0x50f55f58cd9768b611fce3ff13e8da9195b1eef5d0a618fd27f7052f88c8fd84", - "0x1b64cdcbfc12c42e9dbc7a62a1f8eeb0baaab8ccc867f7a7308c88e4968eb9a9", - "0x77e9fd9a5d64b66cb901c5795b9f66424638b24e457024b5e71ffbb79ed8a863", - "0x35644de61c2108bf9d49efef164414cd2594ad4cca6bc421699458c9bace5491", - "0x172ded87912492ee521f79c1ef22e42b1d22f17c3286575a5d419fc00d928199", - "0x3c8fdc337338b107ff5879b3e95cf285b5128ae395c4b89ccfd05a3d942887d3", - "0xf4b22643ebb6d46cf292531792543f9699a99674978045b0c911818211be6017", - "0x783fdc538e4505d4187a0f341b066007caff8030c3bcc4bf49ebd31a8f6b4794", - "0x38e11f176844f680e75b65d5225533639eb522f39495b9ee426135097e5e8fab", - "0xc5e0da94d4dd6e29c8bf3684177a62051e7555ee87007fb07581c885be598edd", - "0x317dc456dd095f9eef53781c214806beb31351cf78cb1854be257b4039324b8c", - "0x5bbf954741e453e3157dada0a69bafb9ebc63c3dbfc0cf6e3fc937a1b14b7356", - "0x56a5354de5acff2b904c5b6b976c473277ac2364571c54583bd682e76bb3f43d", - "0xc37f17385f4e6015cdc8083fc750499ec8c9063544102eb0e3e3b7e0b5046946", - "0xd616c205adf0ecf00c7563fda837e94a4f48be8560ddd15d93988cfd3242b40f", - "0x1ecefd5cb0c61b120c227274dd60b42e6d25229517b20dc3e37a7c3b436f0e92", - "0xcd447982c518db12b8aeba63b68d8caf1eda6bcc44400c9d83c4e4d64b4e949a", - "0x3763ef2d96a89a302260ea66e22e3255001ba2f003770c03905d4f39d8ef6501", - "0x2fcc41e9b574af5402cdce8dc66d79488cbd5cf960209918863ac9526bcb6a70", - "0x17b71848876a6e0a8857f1e5d04762734678ed1a8addb7e378915a7c3f37c981", - "0xcac9e4641f50d52d77e0e77b1a1b5fdd25cae239864367b3d99026d3fb973610", - "0x55eabf50cf101f65e51dd3a54321c1897a67c50512c534ee9398a716a790ffba", - "0x49101d5719e4de5e4e88645de3c22cb3ab794df815555d4f22d54ac6a59f73f5", - "0x509cd8530c28cc098b0aa80d3006a8f71ac7ad56101b880288658917173b8c8d", - "0xdc0e15e6d321519f34d40c6b2cf5f6955c15af815dbe02d84606ed76a01fdbb8", - "0x0b8e107e7abcf80e85b3288786dd79f949449225315c9125730d7d42f0ab9cb6", - "0x07ba997ea28711f221ba26d724a09a52b2737b8aa8532e890490ad811ffa792c", - "0x713775500194ec8691fb540d63e99a70cd443e5539b5f8e2a993266bb58266ef", - "0x3b2ccbf35ac833e845f00329c1f8d130a3f804c55aa83c35421adb83749213bc", - "0xee82c15eb18a075b00de8fd610621683dcad88a19c1c507351b5be0de0c6c4bb", - "0xf874298782be23045971092d8305c469a309a1a33f6cfde7604e6499d2384cdc", - "0x1a9d88cd641f6468fceb32eced3710569d511848f393c2114ae33d7f36c12f3d", - "0x5b2b8c2ba5d3aa8a0503d14e759154d1f2f46d819b363025a77d4cf5e3d83586", - "0x0082bad01acd43bc2c504f66ae28056ce352257b7ba7e2c27dd36d256c079561", - "0x9c6e4e01a831348ce64da4e4bf04cad5f58749573e54f1062b0e2921bacafe74", - "0x600e1b0101161721066952d71401f8fe6e689b66b26e2e74cc924f5e914e8eec", - "0x8720d215255e4d5e2a688096506d5b25c3a79c511d8c0b3dd7ad3ccf542e9abb", - "0x48baaec9724cadc4f7cb8f10549b8daf87b2572151cdf9308b3e96f02b048f23", - "0x2adf0f56fb9bcdbae394025ae949e694e01599887e50c355c90c3ee5ff32eac2", - "0xcf78410476d781bae1567f3d763af732d2ecf56e741cffd1bd3906af83de1f2f", - "0x4e7e223f6881065ee722d6ff9603f1786e4e99292e9caaa75b7b1fe9aef00109", - "0xfdf0b390b0395f007b1b342065096e0a8da957b26ed4cdcaba432a202ec12b65", - "0xcd40d2df140abc1228b2e1f45b5d65a0f3e2ab8b7e740dfb5376b036f63c1c2c", - "0xa491347f128d31f68cd1ae536d8f982fbfa5b58d855a95219f104db741d3d2ad", - "0xaa91fef9cecb842de4df61fd1650267420c8336758fa450f87ee867ff1520905", - "0x75d1574bf7b23319a7c8ff6a0a7cae649313aca8893ccd223f1f77fd71c9b8e1", - "0xc72491916b25756e3f505081b7f63e32f3289b86cbe0181ac9d33d29f666b9e4", - "0xd446465131b34f091673736f70fa0508ee7065c4011359c302a603b6159cb52d", - "0x1380689a50696e1cf0c19869b9773528f01cdf20b8f8a6c6a7165fda31ea49af", - "0x01cac6d9deb56473681c02dc753351feda402a1a1cc2b4cc8beeb23884f40760", - "0x3f622e134dc529c5cfbf58a3ce91d57850578f45b77c4683b2dfe4530ba0826c", - "0x016c95fc875baa0a5d1ae22c8772eaf574a6c918510875f1000d65f3a779dd04", - "0x86e5f579f42ea54a96e622f4a6becdc5ae85e0d0af87997fae87b6707abc8d28", - "0x53d403f0d0f1f30d919ad7212cc5e2e73cb4870c4fb4e6d260d2573e9bc5575e", - "0x961cad0d17fbec30a8f614ff3565d12698af096e61836cbf1f0ea125ae3ed72d", - "0xc9dcfe7844bb4ea845125bc3674f326c0f178c5cba4349b9461e40bd6ec68c3d", - "0x894243ff80e90c4c4676583b4e428f13e077008d225790a234ae215dc53d33a4", - "0xe5fddd80d3cdbafb53e0cf3c095d33904ac8db83bdeef9816111d20384aed444", - "0x5c7ce294d82fe6502045664f7d13d02063ef24f0f4960e4fb62bb6abf08c63eb", - "0xb33a5699ac121a51c0074b4783545a86a428fb239b4307f1e45108c85af88617", - "0x37168f3f0220f50ba3cad0a558cd8b01a7a435b6c3c5cde98b420ba3b54a1cbb", - "0xd50928e60d00c23adfc916e7f9a5363fc8c94c8edb3aef41ac1dc719041f92be", - "0xa08b27f437ade4d527d883194f79927053ac55a3293487a65060aeaf4c4e5147", - "0x326e2d1f45438741b63d346f0da55066dfe0284382f1b4ee54b1d5552c4f7d83", - "0xbd96baee5835d9d6007b0b5957e452d71d1ee31aa6fde99796cce59b17dab703", - "0x1cbe90df49f8929ce1052049bde7d6169efe0b289ad4e05414a8e7bd61788900", - "0xa0b914df37895be6f5341f3f4013ce5c61f108203dbac4ff205d5f1a581712cc", - "0x1582e61974c0bb5f9f2622d70e772f3e9ce145be97eaf5a87ad794268cf352ab", - "0xe946dda774c96c7878a0daa686e4a22e0d9d36a88dd9c93b1776432adbfd68a1", - "0xf88a07db8c0fd2a1354c38617c16b4d2e4f8bb43d9049321ce47a8c03c8430d9", - "0x2adb489b34c480267927daf3ba3ca7567d542edb83fa82e8040ec57e25e3e6d7", - "0xf1c28c6daa3e97466d50d9780bd3335f3dd096c3389b906bcc12426ae4862a99", - "0x4457a8686a3839b7d3b592a1751c25b216bc64e9d0b8a81eec55601ab8d8a98d", - "0x0ea5d5606c5e81f92d31b49b2e54ce6c6314b13ac223c83094280d0196e003b1", - "0x33a91da49deed50914d998615077c5192be56e482ab230bdb3d480d283502e2b", - "0x5385496abf2e351c0cbd7f6fcb5bf5b5345783b4e512bdfa23b9736e77ea43f7", - "0x98f808b18e5778a1bbdefa3f19991a3d008c27e9976db0ce77ddf9e4e21a0feb", - "0x5381dab139fbb0ad6b61afa35c541aba559e2ac25c4ab1cf8a756c2f27c6bba8", - "0xf4bea5f3ab0bc9ba3ad00ad79402d1d62da125d311884f225ad8abe9fc36d56c", - "0x6018a9f7edb5ee7ada70c3e85f22ac88924d06031cff3f61104ef52bf0baa2f1", - "0x01cc4300f1cd2bb4948329d42e17a277c7da52696d46a60442b6f5600d869faf", - "0x330240c95bec1ac1a476cd202aa74e85db562750f860a9fbd76e813f16cbb639", - "0x0809c487d45161c3b85cda014603ba7efd6b67a8c7aaf314cf20c880ec623a7f", - "0x653f53065726f9a7c1b96ce7d836acca515f563a47c9d7d47aa8c5c030a9fe6f", - "0x37b8dd7b2a844e519f9eadab305efa5d112266cbbc76bcd5afc119e0dd337ae5", - "0x385b7031eafc345ed353d9b35dc53010496db172cd906f8e0b7b891b84a65e4b", - "0x38259038fbf1ab3f0ffac98e6b312457f6b2631f68ae477b9302fe740cfb8e50", - "0x5a963aaeadd708291b41bd419cf2ce0585e162e0d46635902b58ee85e317adc3", - "0x881004f4fabe3e7642c8cb5e99dc3909da28451ec442a299f331790c8065e049", - "0x3c721f828959782052312d30d8256c9351a141923a9c2e2ca5b605f3a92cb27a", - "0x3429b149f860e963ed3819ddf19164977d637489eae313331c71165c7eb8f824", - "0x44e291345b79ff4116797899da20baf28fb9d4d2a5d6b1661a0c83b8952e481c", - "0x00078c007b6c0b3b6603b0838b03ee9e8944fe16f99f0a35eda286a288594806", - "0xbcd3506338253f0df5abf0c2866cdd319fe75bad7ac6f18d1f8201164e0b9986", - "0xc047f5f06cc54e4bb54c8e3bf22245d68c18b4787a01d324deb2139d7405814a", - "0x77ec49a04762af36eb63e2bb5c5cbbf15b580020117639ed5546749e34285195", - "0xfce516ae95eaee4067e95a5752494974ebdd182fa47deab70fadc5afb5ea8648", - "0x2ee54548e56d2cecc3e6cff4e60a7664e55d9b1c1c9a61be74bfff7635078cb3", - "0xa79dce8f10567e060638cb2f09ead0b191e59d972c532a7e91b33d27151cc23e", - "0x436b4cf10f5cdbde72be02ca16602190a56c77f1686533e643c885351d4657e1", - "0x9070c78384138f5e17cc9e6148c7cb7591eb9864f042b82ad38ee263383496c6", - "0x12a8d5285c871a0b05e370a337834458ae2159b5d8cb4bc93b6cc83bf7351b68", - "0x3c07d35ea209492f4aa811c51202f081a3bfd6e31705ffec497d70bd59b7a6f2", - "0xc0a99b851e0fc4655cb3cb43547f4ae6c36c350aa71626b61ed3ad3492f04600", - "0x064404380c5969d8e43d759ef990658d7cf5bcb7b4f8512fe58a7e994e199707", - "0x3d3a61c95ffdd3c7f05b3574370bf4cf0eec605ca27cde051b5d77e062315f36", - "0x9259e0113f1e009fad7454eebb238e0c7f4b7aee8118b63b6c05aaa2f0bc39df", - "0x76ff9818e62b25fbd698ea021e200ac9314090b801e000ecddb71bf4829aec8a", - "0xdf0031d6e1c55717102ca1b3a0bd389cc0d227f0f804396d4b84b5dd26abb1ea", - "0xd0220e77632c2353d51b92b1638e909c1f41a7ab0e6801b65e344ab594f48881", - "0xb15fccf30f298101d5ca0034cb8585cf14ddd76d58f3a8ca71a60aff0d0438f8", - "0x5dcb3817ae05b8c8490e197cfdd3f0b701e61d83b8f6423b3f24f27ba0f4c668", - "0xf3bbdc6651a4ba011443f6c6542b3f45b8aa2ba8bc719e7220578d6362cc441d", - "0x1edc95bab3c88a66246393058ad1a9557b371e726adaf261a5faa535cb8fab76", - "0xe02975b5ecb9fb8abecab35298704ecc476d2e6205c2df900312359d5aebdf9d", - "0x2a5c9b033738fe9e7ba6949df526b5a735753464b746e7d1faa29491a8e5f57b", - "0x46ac373df276af8af25aa1407659a8e85ae12b51ea6ae0150ee2b80a76ea6d9a", - "0xe85513a38b54114f4b6cda2bc81a4dcedbec22749cab6676c061d95c7f38258d", - "0xacfba9967af17aa94f0bf73c3b1cfff113e14625742a7398a25a01aa29bf02e3", - "0xd589df920ebfb3c3c1660a16f74213dd6d487ee577bdaf18f6279eefb9252c57", - "0xb2b66c26bd139976ffc2471f8ec71e353108828bad5094a324d1e4762f5547e5", - "0xeac126eb94bb1ba443373fb2556753d95804891d4763a2cdd1d297f1eba0fe6b", - "0xfcb52c727793003a70941fb01bf6c184890a691b70c0aac3b11feb3987de8628", - "0x1c1b6aeaea826ed0cc776a322454663ef555adb0d3c6f50480957ac4ab7f0672", - "0x187affcea64fb6195ee27cdca1096142898be0fb8f216f10913a744f2005f7ab", - "0xb4e42e3a4c94477a6d5d7f3de429edee7d92cff93b647c71d7a20c1e07a35117", - "0xf960751197118967fcea65f10b51d9568c184a8bc968c609d093a0f6c15a71b5", - "0x0bb9ca3521abf8fe971d371749e5c2258b1fd4c681ded047d6dc7820d303fa9b", - "0x52354e8e99ecb5c2dcc1214c08901d715ba62a7463d56c76a6bd1287a74f5c38", - "0x8768dc0cb22a0ea9fde00170783fe3741501d958c186e2c636d03fdf8a995129", - "0xb4204eddcc9c75372de503645bddaffd3f71e8554c3bca09ec700d928a9664aa", - "0x97c94c63bd30754d51abf48aa830bac3724cf77e366965e9f61a100cd0136714", - "0x60dff72f08506ac9ddabe3f957f88a1ef4935f187b6c536643500d65512fd393", - "0xa94f4c353581e474a091655c78c491c38315e93e287f848c17843d807aae3527", - "0x09d90469c97087fd45cf1a2c5471c6e81e0ec1e7850dd76b0d0cfa9fd49aa13b", - "0x298d03c60b8dfca9ecac182b5c0f6818a4c3d84e55314c083f8913a8746fe335", - "0xbfa7ba8daa97bc681bc6ce413494b85ccfbc10e2bc96e148713e0325e21b3b60", - "0xe61dde9cf0c1c6fb0a37993df24dec2f221f97bdd34f607de13fb1f947e7f284", - "0x91e9a9e65d5076819146b246647b9698954bcf55e7f059db32854f93b325d35a", - "0x7bb2fb25b881772f318a10b6ce8896712c93cc85ce9c7c371337020e86817a3f", - "0xbfdda2258ccd28dfc81f83ad7cba81967120257392279c7412f0bb116605a21e", - "0x0a626f29328872380ebf6a10468307abda5a02c3a7b9e04763c0c8c83f903df7", - "0xaa8ee86e9446a125356a96f8ed47c3821da54b003558f68c823c4ac1ab966c81", - "0xe26f3cbd95e0a26683c26adfb71b6d4fc82b034171f29836cb9bf391cf172376", - "0x7cb80eb383da7d8c1120fbe79cf3bff3e5bf19b9f57aebe11f79ee23dd82e611", - "0xc9b85149830b7a2dcc1f613f40ae232bf5cce7770780bfa7c77ecd25ae0bca6e", - "0x859dc28f93d2f3b17e176aa8248d6720be498fc85017491c68d6af5f4798b437", - "0xdcc4dc79cf88601caf6e038bea275a98208d221ac8d3efdd5db3d2181c14c947", - "0xe1bd63a920d45b05efe5d2fb99437a26bb7049ea5b183e99866d6dae947ff724", - "0x4aa94bfe1501f4d37b0c55d77add7bee9bc7f24d444a3ed1c6cf27d67026bb62", - "0x10931498b823a9784c4aa3ece5e88b477050927fe4016e4b10de7e2e0eadbdb9", - "0x7f30cca2119b5a4107cddca59a88f10ad95cfaa879d97bd1e50ae6a347e71b1d", - "0xcd8a0dd7a4fa9b97641d5288375105273c9025a2c9f3d7d9d04179fe3f55143b", - "0x6c8ec850db640544b7e5b22c19253dd1595899a7663d40c4fe13de4258cd60ca", - "0x06ec895b6dd7f299edab3e2e3a65322fb7f8fa8c9a6182b7af4f0fa25acdc45f", - "0x45f6d74f05f7b366770428b49630e836c2fbcc72133ef03a1bcf9953209e693f", - "0x3d868a3921aede543f2bd8ccbe3b51468e7a87f8278e4601c4a8e740e8c339cb", - "0xc808c8fa7b02023e5c64999a141edf6e0ce0239e37656e0fa7c5156443f555c0", - "0x82c273cc2afd955663515932357f19d657eaaed2824551814706ae3843fa1739", - "0x5785f16929a6a73b4621e75d31958e2e9b00dcbf3a6b38bf3ed59672918b68b7", - "0xc8f84b888e55070682103999cfc315ea3d157d0771f0f035cf2ba03f6fe1b1f1", - "0x343a05e1a5e75e09528f194394caf6ca8caf94904d54d89c9d22abd5cae0d83e", - "0xddca7f95c2d9cfdc9efd9158d29045ba92a71d45488c40d28b257425c1c56bfa", - "0x008a2b681c4691d7e0de476180c969aa511467f27755d0d498eb22c9b5333835", - "0xe33fb40ffd6253b5701d24c59a4e217197f9eb7caf7c2223722734f4c74fca4b", - "0x650e8f1c6c4dbc76ace7d6c29b9a659d520af9b291b389bfe3812c1ccbd07c58", - "0xf88c36b8042df77734f99395eb68aa9f4b67a21891c42350e4d5e3e6d8fdf168", - "0x882c68aaa8d1f6acf005ce2ad3a6fef7ec1212ce610dfb8a7bea9417d87431fb", - "0xda73d75513895d5bd5174814da25cddac9a633507960e78ae6884b92e48ee699", - "0xf07d98594c0ecb16cfed18adb9f7b5b1055630b43444c70e6357cd18ebc09392", - "0xd70c5886426c55dda997d615d325b5cb5b652f5673601a045a113d94a17715c1", - "0x3e8dbda1f53c55fa4de65efc7d294a02d78c69a98d59049dcfcdfff6b7eaa521", - "0x67b14249f9c987298fb00e0bf560a976dcaa7fc0d02e816f84c3bf7a4e7c6901", - "0x4f8affa83492afa72e95a36f23356b46e58a0a19ecfff6960d4d6e5b9877b1d9", - "0x09cd2a17655988d2d8cd5fbe44965a6c15c3f123b75e1229621b9ab74d030e53", - "0x30693dcabd19e89bdefff4753cbc64d00c65a4af98f782e6e67b4e84f6b015a9", - "0xf67db822aaef8bdf7967c0dbe25015ff6cf88ce21e8bdd25feb764828ee64951", - "0x9a587510721ee914cf8b9c863859629ca0c8ed22b0aa023e9efb0756d3f9ee5a", - "0x5d00c0a840b96a19679736a7ba555f3e9bc5263b4b8437d6c3779191eda0a7c4", - "0x3e01cf22757510938a5aeb2ec6cf5046b7d3c186bafad7d57b81c7d2a99415db", - "0x0ff2d3ed3c5acfa5db9f9820a1a314865e266a823ab42f40bef6b0276af0a108", - "0xd3207e322207667c614e50be784f6b4d9c3f48362dbb65b17c62f5f33e631ce8", - "0xc7d5e81b23b741a772af6263a7c5894d13033001fd96898f749050f6b856c94d", - "0x7c40099f6b0bc7f0d54650a56531b2cdefa990d3356c79a9c6bd78033a0aa1b4", - "0xd35ffc6c8de3c7f5d939c8476758c99201113336a6fea177c312ff1cb4f6d7cf", - "0xd6c9ea18bb47feb446998cf2e1374aff33e1282167318c5e5104657a69291797", - "0x66251f4b977561f1fa9906b2a26d31a8b7a6aa62f4b7b901220c44acb93bee11", - "0x1ce1b8ea8492cff1eb95135084d3334bb45394eef0dd3d87aa8b68fa9e950683", - "0xc3b226cc60b5af90984f3a98a55c1d608afef326e0bc504869723d545f633196", - "0x63f93d6ffd8e9c5779721a53d38b754faf582cccb8f5dba6f952ee079a08d8ef", - "0xc4dff799018abe40f08586ecf23fe06afca1791cb7968218c93eb8d70a8956d7", - "0x3231b329c24ca1b8e3610d8a2b5fcd0eb962f04e93bafc554c24d047cf130ba2", - "0xc7b393970a7126afead537405174b2146bd3b1a1e4eeff0508fc8d79b9233a4b", - "0x73ec83b51241245c9ba70d1c5026a226ea2b690d05a01e392225821f6cbc76a3", - "0x8a69ed7b352026316a74f566d9eef099341bef9afe05eab1f85d1bbcbc3499be", - "0xb7e26c2cc9d43bf91577fd258cb3dc7a4ff1819e69aa425d48a31c909742c78b", - "0x7578d8319252e136dac5b721e377463565f545a9786db38cdf048d27a6c7c8cd", - "0xa9136889bf85b078301ce670c54928ef29fcd6a268ded07a08becb440915cdf4", - "0xa5a4b8468a5aa50a2afdd44e2515faf1fe0e7ddd0456372da0db232e00d47d9f", - "0xf433f4018378147994bdee5603e4990f728a1838213c81e655b8b9c224f54517", - "0x1b387891f9ae757f62f9ce1e2f8e8a9a5c8dec29a5d045e41c924b5d3dbbc5dd", - "0x47b8b6748b07b33eb0237d2726325415dcecb2d038be9872834cb5278a5eadda", - "0x131cf8b68d0c779df85e51dbbec3f768903a3ab289a7d39b72602ee3ea7104de", - "0x9b6ab213619ae96805a754947644c7465274c7f686b5ae16e54f90ac0c78526a", - "0x2e34a90151060fc2ebc58f830a87cf33b705b4e3fedb2c5880c0f900656a9436", - "0x092cbefaaa923be1541c221aee81cff83650d8c5fc2503c7cf9f8ea2e7fac0f7", - "0x0b7b1e280b8ea2e59a8f322aa05f7c9b7e717cc21e05abb35f62432a480f1277", - "0xc82f74348b03897beb7c622f63976b700a2e031d0c380b3577a5ac69ce3eab25", - "0x232b12662086b16480d650b7ebd1fb0e5de4e7d6dfe1cca34be044456159f0b4", - "0x2a51e7ff6379e6ec9c3bdb4f7c867f7ba272315d5577f542738db1a4e986b219", - "0x09319ad108934876330c0e72e626eefa5a3d768487a90dfebac5de9df578d5c3", - "0x4dd72eab12d9183ac4c3692cafd33b929cbcfc6c8abf56a9fdda21fa0ae90bba", - "0x014c07ab6f5628be304140dbc98f639ee69914bc47eec73741c3ece25fbdb186", - "0x77c1f0d2effbfca82dc1c3af80124666830f84f1ae9a61399a7df9a7ee9ead8e", - "0xde29aa3faba8e8d7cccd3d64152d787e0957e2e02b85f8b598e27a64f85be92b", - "0x7c86c19f0f598c5972729b14a4a2d89490be2a5aeb9f09fbc47ae11d6e9e5589", - "0x58f4fe437e049d73c3a384856d7c4249d0f9084ae8a1d33e268567f7cfc1d843", - "0x679054ddfda36d5694034de0d9159204f67fba8dcd64ea27ae481751a6a042d9", - "0x00550f8a90888c1266ed3d43558087bbd255de842bb5c7ce5a0ffd7501e217ac", - "0x99f3cfd2d9dcab86723c6c5dde5342e3b0570c26f7f4d497054971c9e0c79714", - "0xb23c9a8cdf75d08c55d42dc9b5a4937c7a2ae389269921da4b0f3824f2fa4ac9", - "0xedb69805d643bc999dc8f42c82fda5c86dbcdeb97f8ca614ecc442b0096ce0a4", - "0x9732275603d65d92f1a2731e4e7f822d504175aacb333b3f011ab12c25c16e24", - "0x74895f04ab02583a72695faaea930e965fe5cf127e78048ee7b6fd931252ff60", - "0xccade78490ce81bda38fc7246986bcaa159ff4210c78a818908e7929b5d5e214", - "0x0f83b40f4169d073918acf1388b052b238748d6c5aeda235800403194da65756", - "0x2e0fc727f8fa2cc3e815eb0cdfb8fc73a8bba70c281c78a77bbe7247a1757b9a", - "0xca6fbe2344aab3a18e8ba3b18dcae9624c995175d77f6d9783cb73a6779d4953", - "0xf93234aadf9c1c1da370bc2e58dec3e40840ffc4456b7ddf7b9147ddfa5c87aa", - "0x7217d998d17977983d7973155777b694997ba1fd9b84c3f723917628a14a8bd3", - "0x81e99babe840021f79c09988425bf91745116970fff4889eac90f4d948617b45", - "0x6028f39dda3291724550ed9d5186328de53b442deaf1e37a01bd1e37746c2d7d", - "0x202131d5985bb64c2cd745f8c57ae870358a66d915fcf64322afc3e907f57a77", - "0xb242517abc3fce2b275d4a88a1689f836c9556ad589be1bf62e6978c042eaf93", - "0xa4e70eaa95e779b934269dd10085060923d9191eaae34a75fb537832140eb1ad", - "0x9f21679b001c396ecfe339f57c798c706c1567547f19f0390154a3419448c8e0", - "0x85ed1f333690e69275ce513e2d633192b0aaccc8e0b912196a154dd0ade30f72", - "0xdae9e867f112bff48300cabda2626cd9de0dcb249aa3ee2a7365f90541bc08ec", - "0x2acb02e30384ad2364b1f83784b5a785820e07ed7a7b51afdb9249d671ee6ddb", - "0xdf7679b1e10f8bc3191e6dbfeb777ec3d27f9bc1b6a46c146cba9a923881d9e9", - "0x744f20162facbc66a246476d4a8ecd50922b5d2b16823b5df599945aeb8014da", - "0x44b7f3359f92e5a2b6c42a443065a3f819d9c381e69bf236aa71b2f9c49631dd", - "0xb1a63564b8f7f9b17aac6b5f5639d9323e6df5080aad9ad0381d3cf2c8985337", - "0xf35537961a22dfd460b78626fdc79cb696e7c2b670e27368836e8c7d698b1ff3", - "0x206a5433880de275cdba7a9bdb5f4ce8ec5eee0115b793bde8071512e593731d", - "0x200ee9535bb4b7e8fd3e7733de7b0aa376e8c837c2955f1fce3310b147d33473", - "0x005bea89fd624ad0b9dad43bca25748eac78d33e786374903665081d7f7b7391", - "0x41f5ddfc45630fdbd7358ab65d38f14b71faec3a1ecab9ae2fd9fc685f527ade", - "0x7ebee909bd7ccd1ec9aefdc1b6abb98f326daf66f5b1bccc05c740f03c362268", - "0x8bccda1bb4f9d06b1f4ac17fb13504ba94edc3c9c833aa6400b3f003f430576d", - "0xc9f4d7be6782ca8377e3290ede54d3d99364173c00cc4f44b3af20d4f297d4ce", - "0x397db0e2df773dab48ad8b207bdecba5677cf38c460cfe3bbada407e392fc0c0", - "0xa3c1612387b2b51fe87bdc4d57e54fde0785fc2c7095f4343bb71b4041cce47f", - "0x43e9ea7beeda42d33658042f72b5e7cb33478df7b0cbe34bb424239e8ed7c695", - "0xeb523d35f5cbf920364d97df1129aa1aec48b0e49ec2121ff9965c34a9b1659c", - "0xd99698427684f0db6c0de0e18fc14136711e38cb65cbbde722d55e05105db03e", - "0x079e80fa24f5059276e3512debb09c453df0c957e06e42f645227622e83ecf7a", - "0xe8cf948ccc07327ce3fa321c5371deb0237d51f147993256246b619b75f9379a", - "0xbf3418e0a245da4ada0849d2fe9c934e95609e344cf4734a20d23a86466138d5", - "0x9c3620d280ea8e6d04f460756fd7e5d7947b15ab87b2a24e31d96384aedef5cc", - "0x0467892273772abede0e7efd081058c5242dc0f474c90405f987c19056d4cae7", - "0x432592be748af66d3b43264e00d46119f65ddff1cebe8d3853f072f21145eef1", - "0xb98a1dbee5daf6f25dbdf731efb0c233470eb4b44126ad8dad31b89794130bb4", - "0x68c7b6c356f3fdf82cff0e4b693bcd2239d72b77f08c587e9f611aa38c6cb67f", - "0x2b3b7b113b17f69188e71507bf5cd66685b976b5ec23ed8c9f70cfbef5b3a641", - "0x360b08f1be4a53a1db2ec1e068da659c3b693d956dd37c5c3ad04c935081f732", - "0x4f220d5102592db62c3ca6bec42a304ba2108fff69d39fb740ede163a7667df2", - "0xb12b9aa1524ed587b6857d0f847a22d2e0b726a253e3dcd5375411263144fa60", - "0x77d7006a8eccc9426be6d0d4e99d2f75db18902d4dc8bbc2a2f651b7737adee6", - "0x711cfeb0c16df71b7140ec86c221f08a4aac7295ef990834cb0c4c6586fcb952", - "0xd0ea4ee8acc3746d4949b9aea555ee8f7dad81cac48c6188526cc8a3fdca0674", - "0x17a460691acd145b00658639b51c9467325b02b0b0552b68111e9bc70f713963", - "0x3ee66ecf3c8622ccc48bff5f77ec7b6ba9bb9ae7162ab99869f4476d786750f0", - "0xf846ff968d826c20e10c1248121d4af6fb6e2cd86d0f8c1d2a6088cdb23c2ded", - "0xedd84b8243b3fe742052a421d9f3e990ba31e3ceab24f2bb5ec2d8f9d7594378", - "0x92cd6c59cd631f02a52434feba99dcc550f2567156a4669a5d2d98077aff7e05", - "0xf3557a61071097dfac3cfb0bdd8871fc759500d6aefb555292128ad785fc7d3b", - "0x3985a6dacd96834a54d581b38690efd4dbd50f6354e238a551aace59610c300f", - "0x194575b6ab2aed3d99269301408b8b9bdc765870fa312c4ecb6771b29d667398", - "0x0c6aca1dc3670f27093e5e3d8397d58cef4c77009c22be3524bd6c9a691ecad8", - "0x1b97718888aa3fbbf8c2d3159f204ad0f646b27bb18973452b9ca4ecd056fceb", - "0x22f223e74b95ac311f3747e410397420297ad63d5e6e7e6259345546af349bed", - "0x0fc0e95d219c422d2eb0bf38f28ed200f4f725a904c5bf85db7b31f609d56b43", - "0x74544c1e115514858a62461584e02fcde29f89ca783b3f73a55cb2d0bfe199a2", - "0x6f75971fd8a9d7d4518d2c3edd580643e148afd67e7c135cab6890a53cea390e", - "0x32ea02d2647e1e02a3a08fb4369cce33d5d7b857ba66ed9ac69411a42c8c384d", - "0xa2c0271cd9c3538ad012ae5c631bf8aae0f36d1c4be4c99e8b0c7dfc3777dbef", - "0xc7d4ae7347249377f473bfee60525031ab18e7818bf7c047dbf78fc6bf178536", - "0x0682d4bc9423be1aa3f07fc7d307d63243383a265e59d8fb963151046579f1d8", - "0x67dd80cee212ae46069b1af2ad98ebcd5a12c5ca23effb34ef48145b867f9a51", - "0xbdacbccb5511ffccba4ad93461ead16697944dd61820f19c88468f142ef81b36", - "0x078ab49dbb49bee1b70eed80685179c484e65f7999fc7f79fe3a711ffd931318", - "0x22a8907100fd6f6b0e3e47410aab0947091465188c3895852f849716033be524", - "0x6a784e15b8b309bfde5743c6b4b5006c86aee4cb56a7cba8c25a7909efc56720", - "0x48f1dcba97a055f366175a40966c01ee499936ebf5602117d547ea99384f3b48", - "0x8e1fb0be5bbfe825b57c5aaef6866794634e42a28e25df77a38348656b57020f", - "0xb3845ce8c6a1e1779f085f409821af631276cb413739c2412a37eda3d260200a", - "0x2230e2aac91929625cc9b7ecac5b84680d2978405db1565a4522d7a895ee7290", - "0x8c23ad236c0fb61af08b665b655313466eaf04433335130945586f8993041b58", - "0xdc9a50633e3b12d420663e6ea9c79c5785fd333ea0feb53567980afc1de70a05", - "0x6c1929f3669d42477844f993387ae6cbc37b7831bba146028ed81e5490dc758f", - "0x9059daec481d4ce8e2dc66c815172933e3e012a8593882a249f78056ad4b50f2", - "0xf9dfb03a341aaf57dff8ccb571735fa07bee708190e98ec0be1065fd66b89373", - "0x15a02a41a22ef5b01754bc9795e04974bcca9a3f2ae168de0c6136cf0aa2548f", - "0x494d825348d46c5bcaee447991111b0aa9e93657c90e268da1d9c901d4e4840a", - "0x3b817750bc438728bcc0b7f8252b33432cfc5453d50907ae45c62c338d2ebcd8", - "0xd529b68e9cfc3482d5be812a8ed91cbb55135bb25cfa9d036183deafc8e460a9", - "0xd6b77501125e0a57f0c0e91905debb2d024d6df612d66cc09174586b1e02bafa", - "0x4e0a88a3a74f58bab4f534c2545689b37548b4616ffd393f2267db8c691f88d9", - "0x17c75e3edf1a030852b274159fa85a77092714e370aa2f0b0127937dcd6660e6", - "0xb6fa7da4857701b71ecfb278cac489abbffffdabc6aa671fbade2d2efac41859", - "0xe8ef5fd31b9673c39399db90bce23c9ec89123aaaa1ce6015ff793d8306afe1f", - "0x3ffbc8309fe01232021798dde65fb6a4635bddaed77d08213203b1c65dbabac0", - "0x2966ce3428110d587f2d9e9809316852813e6bdb69f0a66515c8f36edc054eb9", - "0xcaeb39151adde827f09cdd4ac1d75f73a4b3dfa4c8608937c13f53db96aa7142", - "0x354b88ecead2b00b2bb215168460c2cbafec22a9ccfb84cc969ab497f9f69816", - "0xecff61575ffba36e15d742d45698a669febdf5f47d1677fab4a65cc3427cf01b", - "0x95f96355773843e7104efcfc1dffd6f298fb0a65b2c24791b9e392054f880ea3", - "0xb44ef0452bae93cf91664024e27170818bdcd7b6b5a181ca6959c919f8fe7cb8", - "0xce2a82cb562e0fa81f41ea271274d1f02eed4ea11ae750cc410fe6742be33cbf", - "0xd6a26e0f490eef7443b8dc8221745a02d4003f6a218997c6b796925b999b6ec5", - "0x8a387b6684eee474d241c1c6163a249155495da62aa52ca29aef549acb998112", - "0x72cea28da88a6e131ef42f2a9f757864534cc34c4136217f233e18f1eb3db4fd", - "0x70206a53faa4f230c5f86c891ca4337007ed930e3a7bec26209be8a13bfbc2c8", - "0x2f6bb3d5ab4be435fd07aaee9c2420080309526a70f52341194b7297a0456c0f", - "0x92b3cb4373bf691b83ab02ca22770130bd5f8bb830fa349e55692cb3b96d5107", - "0xceb646228b176e71f96dade90e7d21f2c7db94461b18434c7fb61502a814424e", - "0x1dc9aed27813fd95a2a2793073ce8572b37e18f0431e95172e6f1fc49f9cc69a", - "0x024b753479521357a211ceb85b78f4c3f635bb5c5b77e15bd2092b6b7fa6b0a4", - "0xae547ac87a1ac7be258bf1cccf3bb1e7dbb1b6db37c78e04422353421fdc83fc", - "0x38ddf517c3975783bdeedf862084e8f90ba3ad2df9470321b8b881cd7530738e", - "0xbdf262fd61c1c3bf6d5b3643b48082f57485dfd933a85cf60f6df85a38ea7701", - "0x828e793a6ee29d08f08263b8556468b5d0a7925e8865813628dc28928d5bf731", - "0xdc2f4d695b8e21df1faccaa26d3d8e1495ef7b52300903737d7ba49ad6c5fcf3", - "0xf0cd111e3ce41ce9fcffb27cdd58ce456574635e997751fb6fa1cfee26fddfc1", - "0xc9b303881045a0c4910407bbd58a9af222dba35ef790e6d3b188f3cbc04d0349", - "0xfb2fad6c0000e72f51a853a98cef9037339817c6d84e8cf4b067c1ad1f4221fa", - "0xe1414f1f8a7edfe0427ab063c0ce631ba06d5a3d9cc8dcde071f6302cb45b1e1", - "0x6ad5eeae009879cf0e0a3381041f25828266055220b8214928fedd2effb2801b", - "0x2ef44f7c5bcfc0856d215f380e8792c2bfe5c10736ef0bd0aa0ba7cacc4ed7f2", - "0xb5d7a0fd9101534bd504246c5ac161befdbddac49381327234a1162a7adf2391", - "0xafea64b36067c325fd4d884c79a9728d342cc2f756054739cdeef4ecd6dc1896", - "0xf2937ffe604ae91ec475b70a044ef165d2f61c0953daae90e63992cb5493a1bb", - "0x69a5ea452550bc85b6fd733561946b0ea8be6a1167ef6806d993c4553e02f027", - "0x3f99bfd16beaac4ab3a910dbf79c746ef702b745e0ba46e76332e5f64df83fb3", - "0x871d8703b4a1d6d946b23af9254bca992b31dbd52a54c89dc2dd3d4d9c5c61c5", - "0x908fd554e2e5e426772e774fc832d4b4117377d8fd1ff3f55453405b9d257128", - "0xac6fb9261c0b245f4dc6e7a7ce626c1c69fc57e0c29a223637a99da146e04ab0", - "0x9a03df9fb7a01223780b7cd27e2285102ebef4b9c087f6f32cb1f63016991764", - "0x5330a917aa2c137659a5ecedcd9c0f1621349cbd1ae11562f8ca4cbcfbcf5792", - "0xbe0c26211359510e5ab47e8fec850535e89d03301f5e083487aa421450b3e70c", - "0xaddfee931251ec4df67c6c5c19bf27c57e8a7a60fd6569f62681e32a50a85862", - "0xa1206c42a578a4088ec677eb6454a24aa4ebd427939216c4550fb7d12d51be7a", - "0x6c81c0799d4dd6983cf1065222dcb8c6d3bfd3ce236e3c57417a68e86defa0a8", - "0xc356b1cf9d36bb4e2f8bf64b03869ec7a1bd2c82d407d4df4c0a582cff5ba6e5", - "0xf900240cd95f9685deeaffa1b2e92e6f2211093ba83a4a6ec7c0819d04b53c17", - "0xcf10e728ff9ba17bd1031e4d4976127e6d2b383ee06581c57f22272ebf34e4ce", - "0x7aaa9304c2cfc79d2ed28aa855cf2b6f64f162e47935cfaacb83ed8f4e78fc93", - "0x45b6eae599001b455b5cdc82e83aa8d9ae0900e444a11e212e1a6ea39418e38a", - "0x57259a8fd16a85b0106bf94e360b33406305df5f93b3503d6ba5a17802ab9d31", - "0x59041feb40e4e0561512491b14d250fb6752092a024b70c91af3f1cab358fb9f", - "0xfd6047a708a0b7f7ac20d2bf38ca8873182ec6b55e4615d69073b1e839874364", - "0x6f0c025c2df8deae6c20f94e618d0c29caf5618503d3355fed14b8b26058757b", - "0xf9f5bd47da201f438fb3291b50952a9af0a4c5db743a8fb4015197cfc87793ba", - "0x4921ba6242c5532a45d6cfd87abc9a2f34f3ff103dd0437a26fe01e0854c3400", - "0xc407023695a845165b809bd12ed30227efa885faaa3a0c37633b5cf0ab83f519", - "0x52d0c065f1982e204d03964b362d89ec231d03c740591dff6355faf2860ebb14", - "0x6e2b510edb6032b08823aa67d82e7a7495fbed8b7a1c3afa5c3f901925ca785a", - "0xf56c13b9f11ef46043dccf99b1c40c412bf3fed6ab1c1b02106237891894d747", - "0x838cd04b046dc3ee6102bdd535468a10721d8be7d8dc072c6ac0c08c99124280", - "0x535a1d6a7354fc3d51e07ff67bbf0715ce73600fb6a4d5a966d2879ece256fee", - "0x07ece2732d471cf54f6388cdb24814f68e18b43536d4c0668366952c9cbe9e09", - "0xfca111ce286eed8ceb0aff30c8167fbbe464d528cc46c82a302d751b07367389", - "0x80c131302b043a3c9f03f153c262ab5fc99c1ed690d425ab842db059e820461e", - "0xcdf5f53634cb958038740b5c31811fbe2dff04917926750473e23396faf8651e", - "0x0b251bf674c097a1f6084b7d4f8f9e5fb208cc97c504e4af1c22df24b2bf8aba", - "0x49af2a38ab378c2d611d6142d22721341ffd4c7e4ea77208a6154f5badae0e8a", - "0x497c31900ea5a46025a159d2d005a6a0065f2a954f936f4163ea559a3194fcb6", - "0x6e11a069d89e3f9d8c606fed7666e60ca25e7abd3eb06021dc4cb98528cf5f08", - "0xb0a21c8206796f2f589fc76c220957da326b0ca87c26ee3bd0ec818602be6827", - "0x1c52c95455cc49a789ad9c91ff0fbfc080d01c44508c4f7183c5b52cd8d2a67c", - "0x226e0fdd735620794316a6171ee930629f51b952310b460bb9ad1af8db4c2ea9", - "0xf279db0c181c473379f076b3e9c1b934609983ffff2e4af4bf6bbd5e8b702db9", - "0x346f7dd1b2befc4f2e2394c8f260ed0b4f32e4af43c164c4ea09e96b7477ebdd", - "0x1e84e296acfcace1226ae4bcc983ede21c69d0783403e9c7c584ae72d6718d52", - "0x28afa2327f10d052012d7079d7071b56cefde51f440f82ffca9a54c25e49ca1f", - "0x07115beba550a7120910046697865c321ae7affe0d5eb24d4ee14c5427cfca0c", - "0x01d5cefc62ba9bcd1b7d07e48ac1d2cf9760a2ac4fc3d69f93c7ed347c0c3b13", - "0x954bba3b9e47d949d0879961e4e3c7f199d4952fbd8ac6189e2ef34362f6a42f", - "0x35ef992a7bf7a2b2b0acdb49cab4b9321506cda95130750f28067f04033052a0", - "0x7daf0ada3ad44ac8d78c311b74c664ba36af509b9440e276cc1cd115217dfb58", - "0x8138a1e442554341f20ae16a0f791bf562bb11bdea235ff089faea5b33ddaaf3", - "0x65ea5c69209e6896dba728c2409098b543f807243c9376f51eac4856c64f0487", - "0xfe67020e8b5d36b616c2e8a40517109b6fd06410f7168318a15c7096159910af", - "0xc7aebd89e64d6cb4a3a0688dd84ebf3f448a2e1814402b8391194d15208a17d5", - "0x81e0a798aa0a6ca4ad54a830edfe5e2e78492e5346c58c7763891818ad47b20a", - "0xd6f211f6248bad1e5d52013da24d79226a8e914b899fad73fc39ad9e42c103b9", - "0x341ad9c5497c3f930331137a5d081cdb134fcc055f85a6d50e7d03e44a593a44", - "0x9e2c09b2009f0ad546bcf12deb943c0936307e2d0c5c7d40c096a438a8320862", - "0x652e2126bf65168127ab0f92c480ff8705243bde90206096d1cd2dcd3d1e46b3", - "0x20be65ada96b76f93c0cb556151cee0785d7338b094f6b6f2c8a7f22f9799d49", - "0xfba2ed75cc2d93496e10419ad9d9ce0b33383f03465584340d5a3d1a6a90a577", - "0x16609893c9789ab20196bb30a19ab2bcedf47142e663a713535907ca6daf3e86", - "0xf0a300a152e1f3dd993dec6ff0911b8d92c67958bb0c56c4e499aff48bba3e92", - "0xb77b19d3b07bc7efc626f9ceb73d2f4d324902edab4aae4413250748fcdd96ba", - "0xe85e86b1f9f60661147aeb7df3bc40e1bf200ff1ce57f61c22c916a3203524d7", - "0x6bb9119c972939e3e1fae48d42527ba5dffd8833cd670113a979ef039b623499", - "0x0afc5ce9ac66d41de52b568dd1108727bbc4717a2f04ffeeb74ffb63bc737c82", - "0xe08075d030de513603957add9a27b8e76d3df7d2ef65f42fde161b0de1ee937f", - "0x10c0279bce16c255e8a106e0d3a0dc56981791b6214993f67316649525c85544", - "0x4996458c81f145a6a718cdecef773946b97e3d0c81907d3478f5516637c0fdb6", - "0x845c9b3662816e8c8deb911c6062a31c5296b4ec9e5e507fdd250f1b0ab45a52", - "0x5b5c22c142bebee8d99660e9485a54d8aa42d0c0f6cd5d870d006b0be3a24230", - "0x65a87e4303ad18afbe8528f7a6510ea6a7d2d9caa350a31b501db02867e3cbf4", - "0xb98ce6fc35c269d7cac7769db519d0219d44cce7bcf7075ef9c81878da0b0828", - "0x4c85a8a986de3b492aea89536dfd5312757ff01ba5dfbe51018d97b11429dc6f", - "0xe1822a4a922b0ac1dd66c06069f80f5c3c3a12f6ebd92f07fcdd424b2603c12e", - "0x0de2099a5c47c3442fcf4f294e517d3318e181e23972bfeeecaa3f0066d09206", - "0x0d18960691f8b4834f008832a028e84341daaa69e24ca35fcd3d4b83c10429db", - "0xa84ffca22d21c426548458aa96f0ac16372d5a2e91c1bd15173dab4045214b07", - "0x6fbb13b65eb2b1cdab20c23c627bee73f2f8ee6b1dcd4feafbc54a421c341bac", - "0x9fb42defaa9926a71ca5ada26aab3a0cd9f23b8c36bf542ad69ee7e7a2c139bb", - "0x8558a1f0a23e656c8762af69fe385ba2a4cce72119399945d60dfe7f2b1c79c2", - "0xa9d3f4f851a03f9fe4b1a1c85f42a07b7d7756660ced3bf43242f7750f03e374", - "0xa4b1e0d91f09765bb5bec63f90f3902b06b29efd9272a3248464473e9a07ab95", - "0xe881daae7e35e21a2add885735e54e6e847bcc8fd429a20be45ac749a15ae81f", - "0xc25c69e8c0a61e8103f0f952adc5c49d24368253be6e4a9e3277b9e02a2c0fc9", - "0xa39fc2e497a7efd9e6b0ad2775518e9d01c584cd134900e8a796056e8280330a", - "0xcef1c3a1ebace0a6e7ab1e402dc20ea3917c38f88f2d305cd6939e380a40f603", - "0xbf3bc7cbc84203db96a973047b2f4db2ad204b4c48abf5076fc8f2a0ba049c68", - "0xf4550102b8bc55969f17c47165605996713799aae54b4953ea539fc38a5c4055", - "0x852d591591504b86580e1193a4d2d6f30f1404d64cf5a53dc200b768151ee0db", - "0x26495cbbd2983bdb5a41d5a1b5b186dfcfbddc53e3955f2947269a50634e966e", - "0xd623f346b2f6aa11a73012577728a1b71ca74e3c9458da8e0ce9affb0a927b0b", - "0x6d2a19b145e354d56928ab1960565ab48c0fc487610f1043ad078623d606c343", - "0x5c612211df07f1a91909d1fe8e6cea9a2196e7c95c27445ae66649995e491fca", - "0xe7bea84b4850a2b7bd170c61a699f857c9685f3125c4902e9a21d2292ff926f0", - "0xf7c44f95c701df6a93f15ce8de008ea3c7e087d9faf437613166f226ac433254", - "0xdd7c4c343931c6a3c7bd49e6698e791d6dede3234075a5eb5674df621545d6b7", - "0xba668334a45a2c5393b4ae3feda289818ea261634e6dd277f7a9c284d4b6514c", - "0x019717a5c3fe560bcb9a7df209a156efe550075313c38ed8331ea4117b14987a", - "0xdbdb821a7354c2d64067300221a47c4936307f1a918ac4fdc716eec9b5421217", - "0x94500b9c93da559d73a918faf0cdc9f9cb3a90b0dc219b63bc4ef84634325aa8", - "0x50b4ba5b95eee9bfbbd94c71696395c3cfbac865b11a294349f1f0b57f70ddb0", - "0x61c4e5aa02c5b13bd7c7f8ea3c2fad8814568e822200062f88df9e87b321aadb", - "0xf98a11584eac3ce8032ee5617616da3a8bd897ef5b0c780eb36b4f3005636ff3", - "0x13b2479c0d0d452ade1ccd27f7581a257f4e21fbe7adf16b4041e4b4001af070", - "0x6c58a1f54b7160b42b06fd42da605d8576b82e586bc53fffa424a6ad51d5de5c", - "0x6be95b15b26ad33ea46f8a3d2b6f6770513ca0b315c686c86cc4e87f83257ee5", - "0xe9c8510f7a288699a5558f0b7a0808e568fe0093695bde1e2c7eece351d979ef", - "0x9822e17cbb24d2eef601ccbc3c4e9383b5189a92257159918bea131a41ae9a8d", - "0xfa0a7f7e8d554c6e75aa1d562406feb962394b514fbe96deb27d035219b70efa", - "0xbb4b62a1ebcc8f41e42ca70d570708bbc9a57bf08d5fc4287bc94729d2d391e8", - "0xbb949bed075fa35a9452fc76c09e600d2aa02444db336625420b61302c5b1d2b", - "0x9f1cf8520fdfb59122c3d8ab6e8ee9851b9e852e3ebb1ab940d7d22d1f0fd60b", - "0x11ef3c742cf06dfca2ddec7911e5ceca3362036177368bd15e9d4a7cd11648f6", - "0x9eee5f42a36978479d55632d8d86e57de7cb73c9b1961511cfe9b3bb70cb8d3b", - "0x7ee17dba9f383b15682beb87ab797dbb0ff002d21c898704ef92edaf7049f9da", - "0x5751e43effe6b2a2ab9414d732ba34acb7a7599862fcac4c8335b1e53e98fdf0", - "0x7f476aa4ed7c48da093dc85084df751a00dbdc6e89eeead918a0513879f7a47f", - "0x792ad74f008a7c2dc0b50acea37d0d9805324d7c80efd1754b0e07bc47008390", - "0x48653017bbc645a99e5264c4d5f781655abe4c417a9a6dc1a3e56684dcd01844", - "0xed182e2bc223cf015d21f540c280e9e49469e08d840fa00989dadf68ba643df4", - "0x7a56560bdff2aac53f0cf9c5979ccede352e1ec0f3200cd1cdea5d704e61eb04", - "0x37cdcc0b9f310f7f681b4d044a03d97cc09f7512399dd99b8a43a6fa80769414", - "0x75b7711099ba266a168f5534685ad829c011ca79c79eae892f859fbd9d5a76b1", - "0x1e7739d74174ffe0dc6284f046f73618eb1f854dea28aff87b18f09ad720b7e4", - "0xd695ff00975f61bcc48456903c764afd0ada99460f1ecc65171be258cb164115", - "0xe38746dc9d2544171763b0480939c1c8377102b4125f7d27d05f48d0e434a712", - "0x8ac00f72334ae5b017926bef6f94b5551f17a2373f0f7ac9d225651683fa5457", - "0x7dea798accd9318d2d92e1abdbabfaa902ec40f6c63d3ffaa78e81a5eeca2f06", - "0x5ff02bf62f47617330f64d1c845d5732737cbc397fd54d4167e727533dc81f65", - "0x0c7688c23adee0d14383cabf150933ba9cb448473feef696b4fc740840629b0e", - "0x2c2a277b1513d5446429068213180b0de19599b35fb6448da84dddc8c7676bcd", - "0xefb57782f278582d9d11c6b1972f2ce5799ba3383bffe507922052f09e6056e6", - "0xe308b75bc8f39250d4e02f090076c6f6e200f30904e3147e7cc57be2d8d81a5e", - "0x86b99886fbd1b58295709017cbe9c2143e932f8577a24f31528ffc025a7e44c2", - "0x643118e6e01e1311ec5b12696b59cf2ef6ac531f028b6e23f4a3025235ade454", - "0xe0deaf6d9c1a4da0c5e60fb586c550e30b04ef33b1aff61f9bb7491949e2ad15", - "0xe3ba800c9905ea8556dbb2298bec7009f633772f55f3ef5810ecfc1a391bd3db", - "0x06406d3f51ab5ba9096b76702130f3f27aa5890597996ec8a48954d16f4e29e9", - "0xc1fcb87d9c0c29b70aceefe3ed5b3608d05dde30b6d995dbd7bb7154146e8853", - "0xf65e31030188f5ccffe39cdcb4b847f4547924971aab5780fb446b1f08ddcdb6", - "0x662513354a8b56413cdfaa0b56fa031a0ab1c58b16077162174c4c8b814cb4c1", - "0xc1ca59f2eec9ab3839f85e742ee26e9597febd648df1a4ceb1134211bcc0ff9d", - "0xa454920090cd3907d585781adb9af550e4d927ab83ed88856dfba1bcb4dbdafc", - "0x5472afc931e445cb261e4d13cfc84e04d1c2c2a8c00120c73e055c5e8c0950cc", - "0x9bdd7291f4e3b0b34c20e183c8129eb4e9cdd3430cfeb3fd0047a2fad815c797", - "0x99959d3aa3de615b1d68e236786358a48b0b1c52ba3017a8f9545e97402ab090", - "0xc2a6d1dea0a6091a9f5441e1edb2c99e5a4a4bd07238662da8ffe3845d526b4a", - "0xe1d7948ea5adb5d7dabcef081801606b1c74230e9b7745862b2072434700050f", - "0xba15f27b7f2a19dffddd7f0d72285ebab40edf0fb9035336be6912d72ab5cf4b", - "0x61f06104ee5488bec408aca22be90b37d7b2f76abace5d8e1d9daf8488c10dca", - "0xa601ad3010bb154479bb7f04b3118da08ce7aa66afbb65d5700380566f7dd04d", - "0x87eb8b49206435fb7a6983d6d7ff92fe0cbb173c7be1c2542d6402760f98dee3", - "0xe1c8d190243bc91eb6012c79103d2f91e3c652fe09936b0d194a024a8ec01f1e", - "0x0752aaebb4b1c381e4d9747d5045cde49d99011784c0919329c81ce7d99bbc98", - "0xe74f74673b076b9761a10e98c8ddd456391a2216e9e658cba548ff094192ee92", - "0x840203d6cc8e414dca34b4736501bae836a1febc9f84589b673bc55c2ee05ad6", - "0xf61b094ff4320abb822307cb6501a76ca6ceddd81661531751782feeebf7cde4", - "0x4dda3a80f7d02dcfeb4630ad9680c37f7ea01f0ab9e5d506417f0fe4a1c82e9c", - "0x142f83abc309cc5bdaff2a385bd18dd96340b4d14a472c3ff64b280835b30587", - "0x6bee7fe1f7cf8faa01d094bec19cc20004d11d1f9408473ffde658d087999f67", - "0xd811c2011327ef0c434ba199fb016d491cbd7dbb8ad647967fb6427d7f72cc9c", - "0x4c9a5ec5e2e002c73f8e04c7eb8fa2e4c54188b71b824872234872b44f820568", - "0xb1520f14f6e9acee16c52de5e36d52ec19a0f90a90e8bb0e7d54f3b52c0a9398", - "0x52f8ebb0ab694f94d2f0baab9740b8410f581373bc4ce4bf6e7fd3e3f64685d4", - "0x1a9d0c5df31ecef11e6a1bb402e36fd51ac62c296ec51d1cb4612581112fe940", - "0xb1533ddcb0dadc809b166867c9c06c4983ad794a38014bdcd4eeedd3473dda61", - "0xf4a202576a94c983de3aa2ac0bf6cf403b8f22fdc39c184c702ca9a6503995c1", - "0x8ee1285025696b8908790fdb8fb1e06afbccc29841ff3ce9fe3bf7cd307bff09", - "0xe396c7b228e54e3002b042372a95debef7e9d346bc660f4c00ee5964978042e2", - "0x721acb1e7c918b232ecc98bff0297db492c57bb356b6a8da2673286f241c2b74", - "0xa4fb8ab31c31986031d223b3dbcd0a903c37173113c90da029998ff0f8031db4", - "0x225d7478fc19068a839b44ea477db46b6e044af11278567db75686c007ff96b3", - "0xab3aaa9e46b07d86a4771de32a6f4516543f0e7c8e25aaa78508c9e736b85abf", - "0xe16b1c4f4d0fd76588abec3c00c444c658d74cae60ea1a74c56cdc727e1b7001", - "0x27b8247c8d21156cfcc17d7616e218a41ea1597dfaee951dfae6ecb612140d10", - "0xb7930ab63a5bf124d615b21070f24ff0cd6ce807b9eacbf4f3d681f7725a4b7c", - "0x4811fd297a2c2731e35396886868ca3b3162f144ff4adbeae8804554d2a28de2", - "0xb1afd5fec04effdca7ff5801cb197eebb13d65652c641bfdc4719ceed05f70f7", - "0x7472cecf0bc3728c0f0ee7141ff0513395d012d3c3e1453fe01e17f44e491d6c", - "0x6af7dd9ef565e01df7771db29033dbe061046079886f798fa789707004f61af9", - "0xb0023e5e5b28da4a83187d053fc1d1cd90406f5f058c19ffe3f120cf040aa529", - "0x1f0cf67a9250d1ee3a9a05e3587c8c87961111b9bf10b94dc13e896c701cffc8", - "0x77f16085517da13e00b449abbbd217731fa12beb4364b8a7d650e44930cc16c1", - "0xac630ef3130001a6a6805ba5a00ae763f1f5169e32d50f8e2461e9b53ee1f37a", - "0xc9472d0ef3a22e37a5b5b333173ab18b5d01550cb239d47354b85f85a3dc8b39", - "0x10995cc8a94ed2a5ce0aba717ab0c3598a46634627ac38aeb9142f1fc04f6333", - "0x88f6533bb9efca7f80b6680221f2bf21ea7e8a21d798c8a461e0e8cff55ddddc", - "0xf342f6a8aa3b4deedb9cb461e601fb6d7f57378495f5eb3e489dbf54db3b0f59", - "0x7835d8c68f16abaab0abda4b6e3088a03c9426a838594cf99295bc270e6f648d", - "0x4ef4750a1d701da04680c6b04bd580aa189330bb83241aeed55fb55dd2cee52e", - "0x9f7cd9e7de4c6deb36156b37a73ea8c6dd068c3efa733be7aed94a1a801a7095", - "0xfe0af324ef5a44e7967bbd6de6b916e3291cbd67127356294bebd18b164388e6", - "0xffef694495a0c487f654af6891b9a5f585264ff3f3df7a8ea6438aec56185031", - "0x0c186c1b9ac25ee05118b7fc0627966136ed97e42dd5b433b4a6e732a29eba9a", - "0x8a13dc929b97d7861647c70e2d95546ec10c248ea2a3971e282157d1b1803ef9", - "0xcb332dfa5e1f0761612276bb430c84ba60a76199ebf6856c7450b3007c369d5e", - "0xaae70cacc2b426b77ca0dee01d7988975d73af89f4688d01f2141a06b6261032", - "0x6618c49567dc4b1ee6f06de4ea46f384c7f917e5353cd32910045ba2da2a2c43", - "0xf59ce02369f22c1dbc1480c2f99d7737974742754e49838adbdd95872377fb9c", - "0xa647b3029eb79001e782a6689aaffa70d0b3ad84bcd5acf6e7a0d1d1c279f854", - "0x56b4d39909a387fd5e4ced15060784b8236427cf6192295d98be51f988c47d56", - "0xa23cec0fa0bb943d9b0fe829aa0a21632328d8d67efcf507d570f170ac18200c", - "0x74496da6db136824f209eaa839036e3a7e94363b1e23ba39d1f3a74f43f065e6", - "0xfa2897c07d422fb4d81fa4b22c393ebca0cf86d03848fcef41e4f14e61d06699", - "0xee3020113cc21d2da50590ab8d700d9584e958af1c6289e9291670fbbb9086da", - "0x03121d6a6d3d46737f8010bfb658ba934bab32ae835b248b6f11cf44985b30a6", - "0x35a7206abca809ca24c3de74b82ab231747424aac530c31d1f93e9266d1c79ab", - "0x2089128abc1988f1e2ba2f294cabc7d2aae3a2be249b86fdd7cbfad5c05a3b26", - "0x31579e077a21db02601ea141fe21623899ffe195a3b947d2f55818140f5b9d59", - "0xaf1befab09595e55f83dd8a6c6722e62700ea5791211e27f5002db88bbcd806d", - "0x29242bf7c89946f11899e3425e7fa79d08a1a1b8bdedffd8dd02e823ce787890", - "0x2282493a8131f5ad82b0f5bdeb6b0f392e0f8636e50fd1ba90b09cf6ac442f02", - "0x39f63ff122022bb62c5d8c1421af47ef94991bf3a8a97e5f702de400ec5e1f28", - "0xd9f43250fc143e36f92a12a993e44674fceb81e6ac65be08361fcfe91401b3ec", - "0x88ae3a33d93e8627d827fa95aef374f9d9df8a7e821d3542c77b9bdf9e765cd8", - "0x239a22800e8b887eb6f84a1a7e09b7543e958ffaac59f226ed0b91af2afc2b09", - "0x8b5253760367d4d8c235f54c1cf85883b40c96d42a21e69e7055065dbc266b2a", - "0x48929c8d87f726ba8717a8d93e9eb0085832e900e658b5db11a0ec099915d835", - "0x735f49fd642ead8ced382ac68819104688c4610773d8301efa4f9ff1af9d6374", - "0x1473095adbdae18abd70432823099c217d15d6a394553cd6a4a20daa1867f5cd", - "0xb92e5530fee287bdd20a0985a22a0712ea61f1ec39e37029036aba475726e3e4", - "0xb16db48d134c0a4dec30f81c9f521b9fcbbce57923473d9a0a2d8ccfcd143b83", - "0xfb0e576a64b8f2cbb043c6d55cfd622735d9c2e8e1c73c7c85712a3555fd9300", - "0x0a555d959cc4c9e681ac1def25251f856b82746e568182a1802c662f8b7cf327", - "0xc65727c61aed82e4fc87810915807c5904fbd163722d783b6f9983823f425d7b", - "0x80c5689148bdac882e9b85f402f8e2ae0563f92f0e1214d706ae0f5029508145", - "0x3c81dd3a1e7094877f7ffed704a52a2e177f728e19858d21c0b46296054433d0", - "0x6e765d51cf90b7e021567584e0cdae766c20d4ea61f40d102c5b237bc831f0f3", - "0x184c2d3bc2bd2e96955ae40d7499886e46e2da0b9fdc3c55465f3023879738b7", - "0x74162a72176acab4dbc8ac904ba1ae98db539b90d6010a3f3cdd8e86f99b03a5", - "0xcb3ac6e8d74afc0c2a2908a1f248434026c99b89e1494f17f05717096dc44682", - "0xaa657accea572d043d5f4da5ddf01006748d22362d5512be8f59b849b86737b8", - "0x6165ad890727c2f2bfb07cb4f8bb5702c3b802e7b3608bd0985bef56bb6d8934", - "0xb1bf86dc2a2023f8d6664bbf47cc8f80df8bddc7c71217402d02b485fd3fd7ee", - "0x755f5584be60718fd8e846ecde5ddbf6d160602441f6ef0d688043f6b444decd", - "0xb4561e1c950702bd4248d9dbea09982512640f1fd2380be6d9274c30ad2680b2", - "0x460fe85ab763867e2d544c249da96b476dc97b0585f35efb9c5f75586690740f", - "0x3c3b9419d1d71df4469895601daf1848b25c7525ad0cf9cf84641e5dcc4013c2", - "0x31158f7120694fdb6c8ca57be4a4d55d1fd0dfacacdb1d114f5bc81cf3ad5b84", - "0x87a0735ae331643d6ee5d75ee57b8acd3c096af9fd2bdff96fe21fb2e23e4c03", - "0x86ee7cb0e0c1ce7d68c40bdf308765a91daf9098b6a2d0524e84dfa044319eed", - "0x76b78aac48f86b1698d304c27844542603f59edea7e5d4b5077bb540c4084946", - "0x3dfaa796235f91f05e80c5eeae3759d9044fa47164460afc8eb57b022cdab0f6", - "0x8c4858b78361011f7d35d81e6e5fdaff40abe6f0db70e2e7cb8b9926012b59ec", - "0xe1ca3ad88639975a3094f2d5f2bf812b91732c7e681aadfa9838d48acd2aedc5", - "0x8722628324d16f4d9d98a1c05126ed28a796927a7d92b12433f450f9dde982df", - "0x969ee350352d2b966a70f3ba7209d9eccd11900225f05a894c682db9e91eac37", - "0xa652d00076d380708fdcf9a8af53307f7e8ce8be0895a620305d2ab694a41081", - "0x9126ef241ef900f6eae95ea7fd48b9759fab56486dda0e847705bdea850a156f", - "0x545ca4cae7541ecab49f31fa795974ac2aea0a80faf71feae0a7c778490215a4", - "0x28507604ea28e064be5da5f6fc5fc35d9b19866cc8b349bd97791fd36319b982", - "0x4d81d0d091b500eb8e207c7ae8cec63c32f766b55a4193b5ba0aa505d8828ec2", - "0x472cdd8da3753653dc90e408bc2931296d0c96872770400754f79f63cd42dbc2", - "0x6bffc19062f0d63fcc842db4fb492553335d0340a329bf4b6877e1135fc87c8f", - "0x3bdd494804e2af4270a11defb4f90591a61722d9ab9f8e9ffa36eb2b38f31edf", - "0xd51e3a94dd3a847b40b81550428dc73ffc00ec66aac2751accf904355054046d", - "0x1d52de027023c8a53e186179c90653ad6e72816e3b5f2549776844157538d567", - "0x683a282516a4c1ed3f8964d616570138c545e00d1ef58e3eabaf2b5cb4017670", - "0xa066a6910e96e6ffda5553ec6611ea52a6dc244b4575fec2d0d294240c169173", - "0xce30711f7ed1859d2f9408577ad316b810e48d78f1e9500993eb89b7cef6ec4d", - "0x998c0d9a44997597bba2c9c9f0cf04d0b752b7c3981dbd31a37b433d559aaea4", - "0xe4775536fc7c8a2e15793443c9f81eb32800d339a4e54d12b621b5c3eac69c9b", - "0x30d47f77828169c8831dad3a5af4f59db161c8c639f9647c03af7f88fdf6a0d2", - "0x0d9cb6ae0f5b05ae03eae9f71fa10d8cc4a11d1b33ab4229941062a20979d2fc", - "0xec4b532649c0d685c05d0de3a652f3a395412bf4a67c813c573f2c261a5e143b", - "0x9b105824aa129d95a45c9ae21e83e89bc73f1cec89b4cacbdf81c6754e44978d", - "0xd4f7656af32242c24483894450a6c9a4dc39eebb7702228279a918c831bb4fcd", - "0xdf7d66dc72b157a57b7db88bd90cd61e7c581624847585088ab0d70fefb5be07", - "0xd94cb3d9320157336ebc825a669ebada765ae8d985ed3cb94b2f9344f49b5bd2", - "0xc92f6a9417507c04501e469189bf38dc7de37d2acb9b4b9ab444c9f7eddce74c", - "0x1d69f2b12610020ba4cfbdae081aa2dfd740319dd9afbe523d8885f9ea535f32", - "0xc931317a01775e3549639948b79d2643ba4974f46ba5da05d3a65a5276a62e75", - "0x7a7392150380ae3152ead78a897780eec8f20ebc3fb58c552b49b6fee307cf7e", - "0xd9c6a9c4e19d8d5020894b78dac2b019f53b0c5a906242a538fd105a539771e8", - "0x0d59d2947332b0bc87470704c4dbba5613df8c9233ee7b4810bd0c11e521c784", - "0x4e1e3bd3b80672e7f6ea8a9dad8faffcac275466cc3b09a409928a6c2f6c4054", - "0xf2ce305c9c72f5d02df8c072f1b41ac49a9f991b660a3a0ebb3884ca6e38ccfa", - "0xe53859f4e1ceb58901c9395e71001768d096a355d2fae64b4429889ae60d88b2", - "0x84ee091c71eb9406957f377d9690f2b6b74703da3798cfb801fcc404a22dac74", - "0x386ef8f6c5d07fe658167dfb1aa408b0f51b865e93faeba22571f981a87b4c6e", - "0x5e5f828788586e30ff1b6b62475b5b4510f1730d61a1774cf209be25940b85c9", - "0xb6b0a202ab4224f4050d6685ad2ae7eff550eadb59c34e65e551b428b2b762b1", - "0x1bc0293120588411e41448eed6436d52389fe915de5d99c133caea02abc1d6b9", - "0x8fb61c67f5dfa0bcded55375847f5e94a875a0d0d7f2522de0d0fb064ffcc31d", - "0x6247750212b8158b45ebea4d4e8361b0cd66fe40ce07ab208b46bcf89797be74", - "0x536f1586f67abd4833e3796ced30c1ecd742f9b705ab736321f96e8bd9314341", - "0x379a7f7c3897e4c8545d268d4f786fc92799a50652bb8c3cd60416493c9043bb", - "0x0593835a986174225dcb5d12b9f006e551935714d56dd639928153cd752e37cb", - "0x25b4a18c4e41dd881635e78261120840c9141bf0d98f23cbccdaf3704a9a8682", - "0xc55f91278be72dd3a066ba1b9efb1d39d011a723d5b123cf5ada81637c6279f8", - "0xa17e5f021b8511bb74054fc8cde1583762d36dc706612dae90d326712077af5d", - "0x5723f1ebe3c09c4751b843d091ec3fb2bcc6e5247eb6c9dce7fb0cac1d571a2c", - "0x5ad78014b5d8d35d114c0037a03e3adc7d11435d94319d078d4f8f844eb9689d", - "0x6e85d730f8c4c54280eef864b3c3033ba64c59331eb55ddf3486b0b54f327bae", - "0xa70f92be372e114b08f5e611a5de003a3f8c2f08a131bb54f45310783cf0877d", - "0xc6704e4b5f2344c8dcabc9885ad3eccb4db940478d33c8ab9fa44286588f2476", - "0x1c23d2841154a346fbd28abe3e2276dc83ebc84da8073ec82fdfa414372609cd", - "0x2ed8f84b7eb32b7f290c6a2363ef8d9cbd7c624440a8bc00b1adbe3f378f5619", - "0xf2c91d3ed1c6aa7f736ab4b936081fcaef6654a37aa28fe8b7e1b7795fcf3752", - "0x4275145e36f5873e14fdbaab462d3442d40a132b3975a2432cfb9a08ee083d9c", - "0xde5a4fc0bc197894296f63a7cee228c049e6aeb1a28f892dfca342fb35346bbb", - "0xf92ebf124db0be2296859cf79bbd14263db4bf5206b7dc36b63b786de7b64ab9", - "0x16eacba74f74c808a9902d789337826eaf445e9a131d8ccabe3bde22321c54c5", - "0xcafeef8dd957b566ee6f9673c81107fe9ccb499dee211345593194ad3de2b3e2", - "0x85ff213e7a9dd6c021ee307e6374c76dc08237ea0c08e3f2acdf94fa46a6c09c", - "0x4e4de2fb8adc658065aa6e54d888ada05ebaec39714bd466e1e35742c14b89db", - "0xb443b982f0945e0963f1cd43d85af46864f420bc47c75c59ebd515227a1a8f1d", - "0x5f2493aab4585f81bfef5a113985dca819c5e34693152c191ceb35e747e2141e", - "0x6d30f0784e1edb21a23f634ef2a2da79734ce86e84db6a201c2ea13262ff9074", - "0x266f276556b8b3f90c00212933c9ed2b0336d8abbc2cd8b544cf132aa516e814", - "0x88100121c595cde6a22f901bf8dae321fe8b12ba7a3b67b4fbaf3ca2f8b045b3", - "0x26350d866afab7c488f36b2b97cd252c01a9ca7daabd3932d7e6ae1ec87977df", - "0x7392586c92ef2eada65ef219f34c0fe65bf9042d46923dbcaac02cc3ec7704bb", - "0xe5bfd7a884d8a984993f6f35e4ec626883b473df444de5cb15ad9fbafaf872d8", - "0x6207ef43c9b95c289353d40728d56d323f99d7e815d4e8a8f20d621e4b47a0c5", - "0x4a757a8d31f2ab1176c4f6ce7d9f39fa882c0bac80af99cccffb5acc0b416c39", - "0x1aaa9fb56c4a89d19db5b71ca66f74d1dae1d3aa516f3d8971f3fe5796d4293d", - "0x83297fb846b8e3e76cd8a5de225b0d763b5ea7e713868d80306566fec3990852", - "0x018a26b285d6baf120e00091ce27f1695c58952b23020cc798b227a44bded5d7", - "0x1bdd73cb3f78d8d4f008345290ae5b73007ccc000574929b60007572b9105ce5", - "0xf3f8d1db0c6282e8359bfc61683416eb683c4a69b930b7c653ade0606a91b8e7", - "0xba4788f36ab573953242cfcd98b17c19eec15c25759007d8c56a3790f14f4d7c", - "0x351dca68df8b8386e6efdd4c9b52c00c59bce95ba4f74a851927f256d93c202f", - "0x91aaabedcb0e0b2a838d62f05d9856e69f6df8b417770b8ad8bebe608e327448", - "0x5cc4d0e86aa63c5afdb0c5b1af99354404c99139f59242ddaaab78b8795e4aaa", - "0x763277f6e08bc3339289d15e70fdc74ec3a7690ff0aaefc791108b4da440937a", - "0xde254d61b26f3a7b54e16a7b265d42874815783866151333af03f6bbfe6e7f5b", - "0x8bc4e31e8d5ec897751a54b914c61485bf96e6c1fc87c4b9bc0b19f935423dc5", - "0xf20e609f7df30958c85399402dca144944c5eed049b35b2300ee1ebb56e50077", - "0x7085a365683933d31e6b6b5208974a893da182c6c9ada13abd806e03d506d0dc", - "0x9a80b9d0aa3288bca9613ac41372f675401c5d3d230ca1b2a6add2ec68cb85e8", - "0x82e6d8e7b19c30fe2a651ae7729cc406d49f339f2d43766f973b9d97a25857bd", - "0x646ccccadee90279cfbb56b158944b553db8d9bc725258876b8a78de748f73ad", - "0x94cdc4f42628fdf76b0005121574a33d02a3202e6172a62dbebba6bf62c42d9b", - "0xa75e9362d131b54af8295567d15e8be510572e6453e25db128f74be8d85d30cd", - "0x5772c596993a6667dd424bb5e6666ce2625a3e1bd8e9817dfa77f7f6f3d12d07", - "0x19a40af4d283c39bbf558b8ca585167ec699705d2bd3c4ec407ea30cc5ad923c", - "0x38ad933e8bc4f3da73b32053b6fcf3b6c71ae4bc4f69a517c664ea228aef4409", - "0xfabd9776f037f9da5c80c4c88a160e6f139b08bef321e49c73bfd741a0654fd7", - "0xb072bad767d789f424ad028d5802a0a57116ed39aa831dd7831d70bb7165ece8", - "0x673cf8961606da36c2721d0536b8a3156860eeb08f664305e7a622104548859e", - "0x6c9eefefff1da960879563dae8f724144a96415e75e8a0dc54386db7d43cef7d", - "0xfe4be619b6f8239049e57938e5e1a3cb51bb449aacc71ed4f0d6e37976aeea93", - "0x98e94e7d559eeee117526394013c05745833c7effb89ef544740d775998e2611", - "0x442fa6baeff05720c957a896d00b60d75d7ce84bf688087a0b2a8fe3a3e1e97e", - "0x72789471d2b83f99b78fdf098f3567173301baeb07b5cf6ffe55acda8f9369ea", - "0x80fec35949e332105c99d631157f4b47f43de8bd10e45c9ad92a4acbf236029f", - "0x5baa59d727f7e4ea83cf23efa88110e8191cf5a89c68aba70b642c96c0b72458", - "0xda33eec2a35ff5ebd8ddc2541343e097320b99fb8ae2cc24d055253d3bde22ee", - "0x2daeb33494c6b567e787afa19f46c3573ab7896880ac064cc30c24b582099758", - "0xc72e07ec23ce92a0e602c03daead89176ef52171f5229ea97777e69dab16d348", - "0x3348c37d4fe2b489f7ba29f775c87ca8fa775c2de95dbf7c87498a78a620d76e", - "0x261c881f9be7b5ed77e82db8e834e7c341d942217264d7b0dac1ac29c94d8f34", - "0x6762ff4f6f3d5635156a3eb07f5b259c50566d7d5e42cdf52ca11549574abdff", - "0x4034ab592ada763d4b5e32cfc3714316a599f0949288b9aea686f5d246749197", - "0x40a9eaee7dcba2fc78f5435bf5051f1d9a84026206f47ef02acbb204c34038e5", - "0x26770fc1dd664253579e16671974104ee00835e80ae15d164ffcdd5b194fc676", - "0x8b8fdf4424dba145b4fa00ee2e72dd1f2950120bdcf9768d1b6b19024055807f", - "0x0324a4d2fd82de6bd6dd459d19b2f02a7d97755ea5dbd010be3b108b0072ba7d", - "0x20f243e1c374b7f7729e875af2198eaec2debcacdd513863f86e5597a5608e05", - "0x0b9d49c34b9ee53774fe8dc1643b59d69273b21837a720763285cecd09222186", - "0xc10756e8639cf67571eb0a80946e4ca859cdbc5761fb6aa5ab46cff2dedf74d5", - "0x390f9b716cbd49681056b9e1fca49530e51472c10c2df9397210cee0dbf7cb73", - "0x6bf8f1ad4d14e98e50c4e327acadf8b22002285f06d22c61ed0a574e64e6b540", - "0x9487c95b903f6d33e8ddac0604167fab06bf6f1a62fcfd8b38083ea15712bb7e", - "0xbc0a6f9f5cb5ce4727803f0a6269f14a8f267e7a3cc221f36c3ea6053ab06692", - "0x93de0978f4a5277ff9cc8d5d538a938a7813d1116f6f473333b7417837863cb4", - "0x5e2f071c171923d561fefb8353ea7029f03d0b61f443970177206e8e93e51842", - "0xe3008f65fa98e6231cd4cd619cdd90e613637f2a1f424ec4163efdf11bd03426", - "0x4f065201faf5eedac4c014b27677d00c6b0325aeb75ad5b8ed716dd0f772c774", - "0x077e03f083a4827da5321edc220f6b96695f7bc47212a7a0982d0215d0115308", - "0x21a9cf94043d38a61471a5204a4fc6967587c970632a6683fab048ea27ec54e1", - "0x2ec179d196277a51271fbb2d8a24597f8cb39ecd0746a32bc509187ede47dfe8", - "0x68ed1279809702f81463e8230122eecaf48cfc5c0eec75498985d261755c076e", - "0xdc3fadf8293aefe9b9b95ae2643b48e874e19d47bde7fad6f12723e1e2c9dacc", - "0xf861a8077feb273d45d934549b07e846a16ebb2c6555ebb7e57dd9027e6eb343", - "0x3fb3c7ee945d5782cdcb2f8062148f8335023a42f8a1d94ef19578df3923ae84", - "0xd9d6149c09826a82d19bbc0efe396629ec5265bfc6639bf49f977b971cfe11fe", - "0x856316f73229995d3abcb1d7c760fbfaa8ed4a824a1de6faa2adb62dea2bbf3b", - "0x7695527d9fbb1dd9b3d1d95f2c102937b36c69edb0ac0949895a29cb0eecd3b0", - "0xebd39a0511e64daf095960f4612cc97b92a98319f9c5dae9d13f56c3cabf3456", - "0x862aac10df3f3f8486d07015ec829f4ad2a4ebfc96d9a4c1878b9c17fcc85a43", - "0x921ae497e7cf40b3578d172a373c39b8cc7c05414e2a706741147b3eaa23e8c2", - "0xeba8def627cb48ac443fa362017cb5ce06625252475dd30e7731b94651f41975", - "0x8f9e9090036f690f546d90cb1f74db3804304791947603d2460e2c83e439acaa", - "0xc5fff2c4f0f1847a6e20f1a93e2ffcb305a2b9b34b850532623899b3d450eb57", - "0x4f360b307b8761f87f46e1ad725998e0f94343967cb82bbf415c11bdf81ed1d4", - "0xd6604a5c1de0557b6288ed612da8f3311ded595be696331abda1a121aaeec31d", - "0x80e9135f9f5f0ab84828493327a1f76e22abd9b47bcd765174f99a03a1330b92", - "0xad1896959b309904c28415c9349746a47365172ba2a9f64338b7ef27edb13bae", - "0xdc13ec27d5d5a9799216e01ac08f08f87f0fe27a3ded97f0c79a14490417f05d", - "0x131aa3e6f9de242ff71a78e411a7eac79a6388d93162030fd3e5cbe7ed94b36f", - "0xa2defd1306fbce126ac3fca31f72daca408160b2a8c9f1e1b333fb4735471e90", - "0x565c329d62c9e15a58c00f273ac372431e0948bc1085d1f867bb9d1da5584e5f", - "0xddee498c84407a18f7172931527b6033fe72a76a0c1da15552e83d4f8111d81e", - "0x21e8ad6c7085ad6d9684a6d0cb649ce7cf736aee2a5f0b000deb0562b405df42", - "0x45cd4e94e94e418f254673365013611ced27961529ab90ebea1bf22866ab8f98", - "0x21641687a64d6bb2aeb1fcd1dd6820e8a3263e8dfe1ab16cc28aefd81ef33f03", - "0xd5653e5636d08dcfa9eec120562dacb88362164c1e6cbf22b50b1ed763be783f", - "0x799d28262dd44d6edc81fb2d8ce0537bde7f17c553a793ce0339dc41ffe81604", - "0x056c40b65418757a9faef6e79781d952d4d7faa87f9ab8b543fce95335ce5661", - "0xb25dc95e4495eb262af93a71cc7d7f8c3894949564e00eba64a09393381e2308", - "0x2a117faab32173593c369a077551cf32a4f2ad5ff47db09b02a9c01fc9231a81", - "0xb97263788519d2404cd3e87b3c5f1f60bdafdcd66f90cd7f1cc6e48c91e41386", - "0x81cdfcd9d33a1187be2d48d01700f650a3cb5ad9015be43e5e346f1e74ac0910", - "0xc8def1ee952bd7c6d8e7104ed03afe3b2c3524ab0309d675e6a8440a8d30c707", - "0x510f4396b7b49c7a9d22030ddf7f9ba9028e48a17ff4c528aed714e77f5eaea2", - "0xcd498eccfbc75b2f53fa83e69ccd9609cb5b2b7776593b08b215c341814633f7", - "0x968f34b1265f018a2d654665176690c9a7f9c734bea5647aeeaeb30b79bdc35e", - "0xcc7df5e5ce5e0466d1984bd0dd141bad375efb95955f642588d6dbbca7ccf6d3", - "0xff24c0d896be86bf5b7a634246a697b71034b78a30f1c7180a38806e1666bc6c", - "0x5c7638a57f6d0719176a165f1cf0b9660dc115f1a988450148d52b8ceae47bd1", - "0x8f2dcb63926c2011dd70a5d4232896ddde9c484ed5c79619c1d38bbd8aa3a9ab", - "0xa48817b418c2f53a1df14fefd5df47d5d7d7665bbf479d8cadae010a0089c10e", - "0x1e0c61b8c4e6620e226de19941ba161063993af6cab00368ee08225bb197c609", - "0xb42e3cc1fab01739cbae6297d20d364a9dffa1c90b8090622a004036e956ee65", - "0x8675a534d124fa5f2aa0743ea5e7dfac1364e808e194f2b47a3be40596007fa6", - "0x5e6e41af664b6b76da9c492b590f135213f899cfa71f46e4817dd1e8f4825379", - "0xa3137844d37a0211ca70df2542ddb0515167ac2f9e8730b3f78ddd185ca1f71f", - "0x2c45f83c26e711693b1238e74ef925ea7ca62f8ae87a0bb56be658f50bb85f8d", - "0x57efda2e100f86e0cfad773efedc6b94e8433660b5505bf51a2fcfbf36693d62", - "0xdbddfcf9ee62dd2df5bbe3570593d35ae11174c75fdd2d9fa2a036603617bfd2", - "0xc1426b30576b1cdf484839e173b623bc7fb8e44512add04ae4cf09171bf287a6", - "0x63769d98a465a6d52457f5abd4f981335c68681277a665e5c69670c794e22048", - "0x84ded21d627443ce058449f621be8945fddb90126b0dc4013e020c6587e7e5fe", - "0xbbb52eb6ec5aac2d9ccbcb76244c6fef09ce7da0b4bd082a63f71cb904debe1a", - "0xbf8a7d1fe769344c7a4c1ce30ed1078d430f9b829c91eeeeffe4c512aa3d7bd4", - "0x8f955aa1566d88bcc72c5dc44298c7be8615cd16880551af0d5e85e1e75fc9e7", - "0xf13a984aed4e995a89f46f9e59ad2a0a9e6a35a366a11993e80d5409448010de", - "0x5f2f9addccac7a68888d9a75281a97270eace816acf9a66eb571f0b528a974b4", - "0xfdae3b48b794022a96168d280f966c46f27518ac2871ef5be4cded911d8c3468", - "0x09381a1113a9e8d4e17087b0bad6cdfe178e91b8846be88380a42b68d6c92955", - "0xaa0be3afcf3440d0be507bf2d7709c90dc6de0f9cf60f360996c31d9f0777a64", - "0x897481932de8dd0ac4d50687174fc274bba7f00def2654754c53d6a86a0cc056", - "0x674d3e4625ccfa18dfd8ea715f6ee536501e6935d0acdb962f5d36d185e795b9", - "0x2c4d74a35d981b3ac8481e9b2318b3c8f76c82fa9132d5a0df7e3003d1f56c56", - "0x457d591254d2f393c4c5a586dddc7ec840f27b3725a9e3d966c440e61eb1da1f", - "0x3bef7d4aa7d5fe18678f5cac053db4ee36f2273ec5fb11f2158777fc601311fb", - "0x96aade6ad2e2c5fc13a08c19986739c8c93d6107e3083c24a009728259c97f49", - "0x9be928c4604ecee2797c583f89d3cb730390ef41dc6a71273b051daa783c5443", - "0x5f0f6828a3d60a0d1fc8fce5ae884700c8b68f5ae339aed49740f44d81f3421d", - "0x1bebc8b98f2399e3731930a61e547e073c8e74d09c36017d88c52865240c1a93", - "0x89e58b2f46b86a595e0394bcf99c87f1abb1e3880b16a3eebc50a98fdb558e38", - "0xe9e853f496019d39b542e6d4923abd961514c75a35f1489070e8c058179ecd6e", - "0xc45895680db653abcee58043c646a97271e68ea6be5e440020b763814e76d8a7", - "0x7a9b8cc39c454fdf2c2f338bad6399f47af580d914c0529c3c78eef9c42a279e", - "0xfda0c1a4de2e6ab3aa415a3c0c54dfa72f8e5973f31246dc40932e5dcd2a8186", - "0x590f73f3733a7ad889cc51efb29cf73aab601af049e4ed42f70fb62d663ff4c7", - "0x9ddf5288ddc8cb7f770a9c87d3f3b7bba42b1acabc115bfdf8a210a3677a6e5c", - "0xdbe759f16648b0bb9cecadbfd18bf035f00908db82ea5eb89c92089fba99d20d", - "0xe780ce464772573bf46c8c763f15d0d3efa00f13eb046590a535683327e4d660", - "0x1e1a6eb209d12c4ecb97c5b0b6d4cb40ec6c48718e7f66381e6e70a070f4ecbf", - "0x20956a87f5127d80bf43f94c5b5e201768de55eb49eeafed759ffa93cc99e60a", - "0xb95002df40ab16bab3b6697b1683cca0f40f5a8a87f9cc209a7af5b2d833efdc", - "0x4a1dfee0a96f440c25957d4212a962c8bd105d8fda0136337a534137c84871b4", - "0x3706772e4b873e4901d46b9d1e3c4d47907643b9ea66c2c4a00769c379d9480b", - "0x54bbdab103586d5726c0fc06f4d37073d11d6643a08a7f4383fd2dbea805b22c", - "0x71fade35df17079aa40692fa1f4b0c06ccc923b5fbd352137fec2bc6de163766", - "0x6e68f8681269a5670f017489e5518c305f223d79ab8b7c0c0d8123decebb135f", - "0x6b2738c79521ed4aca1e2d1d1d064c9ceb7976ea419c00c1abdfc1fde2f1198d", - "0x768fddc96428bc51d2da8c29f0382a88ada02fad2c0722c3415e5f0124437cf9", - "0x073b3604346c6ab886df9a256e087fab99bddd2b63993a18d19c2f792d5d7ef9", - "0x0d4fd974576faff3e2b7143c7b9dd497a82fdb40cf6dc7daeb0edb92c04dcdd4", - "0xff968d9401495c2e6498651ded58cfd877ac2cd39a4ee76ed2d38a9df9237f48", - "0x941ede6edb4066a0fab64e43d32b914275bdb99d9260ccf13abac4721664a49b", - "0x74369258816347fc00ad9044cc978b081bff27ac93017017089eedc9d6bc0572", - "0xc4da7669db1532966236b6bb91efe50f8e49b0ba763eaf0edf7da01ba7403c64", - "0xe1f544ae2dda3252861a0a40bbdaee2e07a4853f0f769e2de4f591781b26d8b4", - "0xd96de0aa1e5d38c3a99207eebe8bf6a441bab660a1eae7e2f9740566e2b26624", - "0xe594f15b5572d594fd2d6e04c85700b2a54920a538fc46da1f435278b797026f", - "0x36c7f38d700166af4950cd092a7dafc0f858991cd756ba6e488cbad5733df81f", - "0x188ea063d9741276d6577815ad32078286c0e5935e9a4641ee6fabe86fdd261b", - "0xe83266d0dfe0465169535e16a6329b94334ca26a71ca8a6228bcdc5d6d9e5e3e", - "0x4f72f32b995c669ae359e35f853b32d78c9c10ded0090afeba135342e024c284", - "0xf0c349b2c53ae8922dba6635d5ad6c815cd41a18e80091fb53af888dce73fc5b", - "0x449c94f382b39268f70e7cd127b2e983164f4efa3a1ae7ae0457f18cc903e783", - "0xc2187c3ebf507e7ba02d0e9fc489742b07d5d1c6e56e952dc999543f46906bb4", - "0x55451070dc027493822eb1e25dacd66b4885f6e5d7696fe76054d700ba8fd7f2", - "0xb918488b2d6b2bbbf97132d8627b1e90644d0167b4ece38bfc72ebc59cac068e", - "0x8bff7b7f47013f71703b45acc6967777662d08052df955f51321539e58b9ee21", - "0xc588704ec672fea0cca9a37795c7beceaf977f60ef505d021cbc232e6281ac34", - "0xe70023b5d66c749625852e12b1716484b407d277968ae5668cc19654ff970c5d", - "0x9406fb501b38ac94bddf9c53299e856c4fa043971f56fa728cf02980d0053057", - "0xc472250a88b80bb35bafa79ad16f351c0effd4d529a0885bf308923058459d59", - "0xad80c5dcd33345da4dc627ab0f4db7468b7342a75153de55e527f77383d8f6e1", - "0x4b5a6e47d3d6e9b3e7fd72e0e8075556896415ee1bd4b5e5a803f08217f63727", - "0x689205df58a74261976513827cf5bda9798098a2da603990bc8ab3be295e107e", - "0x5e5f44891634df25e9396bac7ae80f632ce05cc717a27469c0ec3450bd86b8ef", - "0x45c8922e585a3ade1d9692ff7fb632ae93c887e63367e7b8719532a019c214ab", - "0x5656f71b6ac8a82539bb2b50e5355bc31549870f7e950c9f45443d53e5bad4b5", - "0x8fcb0de18049a1d68cdbd7a9986cfe683c0bfbb42cda187709fd1f657ee38305", - "0x3e74faf49aff89e3c73240dd61b2aaef3e9055212ab2a20bb0755cfc4e9a596d", - "0xe93a158e733f4c2d51407dc1cb83023df0ad632e49d1b12c6270cbf945e09559", - "0x7f283b0278e6e84ecd8f66bd6e0d1cd340c586a9fe0785ba454f5cc238f88b78", - "0xf367446836096eaa9ab4ba421edb8f0af0ef73a1fd958ad36e52fe4a98d67084", - "0xbc2caa4dfc803ac078b934e0fa4486438ab5d64eda0be84ac82d12782c68d3e3", - "0x444f24147dc65109475cd063e4a37e6c79d0facbf672e716128a48e313e44fbb", - "0xa6c1765069f2e38e2e3c1f40c90b674e8bf6f5e64a518a966dd158258e57b9b6", - "0xb5071af90877914cc565d5b76ebbde651ed6f5db76b9940ae4176cbb9fd92d18", - "0x29f88ef40f89c3889e159d632c941308ed5085188527a36e23606c50ebfba2a8", - "0xc0c02a3ddf3ad0939fc9df4d3aa48f81cf3771dacf62afc956f5faacb1bde118", - "0x84ec18194d7ae7654da7b1999a019bfa75f2f69e1cb2fb0fecc8f4f61e5c0b9f", - "0x2803dcc01f327f40d67094a16d7991defa101d8ddcef31b6d1357e11c06fa940", - "0x2aefb88c2671c3f2042fb93d022847b60d536a8fa14b5e7c52e9cf62fdefe486", - "0x83b06ea5e66be9d159d28b5851ead921d856aa64e84050ba7644218d8ea616af", - "0x3d00b3dce583ef2c73e8787230f3661c7a6ac2f17478d209e7eca9ef1f2421c2", - "0xe74bbdaf8fc7dd39d06b420393dfe0eb6de555fead817d87477a56ab0bd5c8b9", - "0x51ca229e7e529d7dd9278d174380d75fb7b9597e52f9ccda28c2a9563b0eca16", - "0xfc9c58aa8e07fdfbf2007f7cce4fd620215ac4c027da65dc2fcb173f0bd6ad5e", - "0x334c50b0ec398053d7b87d80d08c2c74acbdc61a3055e04856a70cac680dbc1c", - "0xf4913e603c18910e3058b5f65737aedcee7866b393ee319db746334e2a3efa8f", - "0xe9e6aac42b0fe25a9649ec83326123e05adb51cf7ab1049e984bf4e28d56cdc1", - "0xc8a375c04f6845b72cbaa84d22d393c7e744041495c0589850baf86a824b58c6", - "0x5aa08a6a75c4bf9c356a8853f30a625be8ebaa452d3686070bd9e32a70376f5c", - "0xf5fb959c5b65d44152e61d1b3721f286fac2eb64d5f43367dd8d81533230dbb0", - "0x513e2626d5ed52ec89ff88583ad765ffd9b4ffde79645c90ad2928516306f8d6", - "0x69319f3bf63ce64ce910f9ca90374d56f4a1a0afae4c56d0609dbcdd65570da9", - "0x9b1e05ed52a705140484c879821901dff8972b4fec4c8cf8b5a8ac3af20a062a", - "0x6e926b50a300af65a0da8fc6b36ecb6dbc0f36a322477d496bd2ae9d242e36a1", - "0x5a0c0243305b8258bfeb1910533b90bde09d7294de26ea1dd2c815a262dafb57", - "0x8f8da16c726284c5c8c773af62104728558f4c6a3fccac42226fdd381935c256", - "0xafeffba3c64595e4e202fa144c247f9afac6a1e8aac25628bc31628cc8b884d3", - "0x27c414ca1714c88451fb7ca6dcf5801a42fe6b50488986d31f4d33c8af60fbcb", - "0x9804e738c5d2a417b8234ca7ea552add4541c578cceeeb521f1d539d50d4277c", - "0x227b9cedcb8a98a8bec8429d0b6c32c1cb68ce931efa940a66b4b9a5e6e96b51", - "0xf6123c95f854e21044df359cff00f110dcbd86ce9784b8d428601a7755a86dd2", - "0x8e365936727e87c1816f427fd7f07be72d39111a51c5ff6752aad55c00cf3649", - "0x2ef4a4858a36b00d793bf2a207b1a952b730c3d618fc88bf797f0175b7307532", - "0xc577af7060fe80099f26956e63baaa34f2951b38ffe80804217b7eba2d6c441e", - "0x83241d8159b3b5920206dfdb5428d3dd4a4017d77b3cf1da12b68fb922ef026a", - "0x52532815abe951b5b1c29b31d8525aba3357441d2e7dc434666b750da5f6cb31", - "0xa55855e40293e6127d035383ff4a06009521d1e51ef6c3d4183f278b5209a47d", - "0x291825150b3582dec421ec50cb68e5121d672e353d49ad15b241e50d48f317c4", - "0x1ea01b3f106de9453f76c5da0ed054370ff3e09830f1537c99bbe5180bfa865f", - "0x97712de570a93fb5f4a65edb440ae8d40df884f1632b49cf2a2d677c23854075", - "0xd12d14d9dee8a1511ae6acc678264540efbfe3e0bc680d3753073bfa86237f20", - "0xf3babbc9ed75b5cf6237509bedcf1c5e3c4893533bb491ede3e7c0b794e6e6d2", - "0xe9604ce3ec312a4fa0919c3cb93974cf45b82fb58000cc35f0a9aff8640e6307", - "0x063aeb5ae400d73bc55b33bc48e2360e1cff6634c2a9a8282821e656f1ac186f", - "0x19eb4fc202d084bde1d280ffa2d47cbe13f875d131011e0efbcad50bc56510b5", - "0x025d0406da1470c4f4619d06f68029001e77f32c996c65a64dd19c22f5914187", - "0x439f8ac9ed20bb2f9e93d9ecdfa860a8728aa7f5ad3672aad0960d22ecc4990b", - "0x6d4e93a5cb9132f0504757531822b78552dad48e5760a28037c3160fd19f18b3", - "0x7b4e2fb316f3ac96382f086d9b58cc6f34d924799ddd1526b240789d7207fa25", - "0x206be12aafa8622da5f7073eac42c6f6a706623f771ff5f8e14c32383b256e17", - "0xd7bca9e89221da42f54f184dcfe3dd93705eae29844824bb73601cfcc51b5405", - "0xe931dfc9838059409b959382cd8fef53c26d08a509fec1672b5ae32d36a4f642", - "0xdfc59b76afd96f42ca5299b7d83daeb7bd99515a15fa714348d2dd737bf4123a", - "0x2b80ea34e8f3f334a3935aa27e7990753e0a75cc0f6d66335c449143457a9130", - "0x8f681bb84f9402cd3231472d3103a5fd73a0b00bdf98610a1bfa64ec3a3716bd", - "0x9ae86d50dedb89f36bf6ea98bdf6feac997934d0335e4d576501167624807a02", - "0xd610522f6bc35189643b7ca313d308bd09362310c3c242ab054cd689e9a3ceac", - "0x2639ec5c2d1e74d769f0dd9cebf9f97cf3f8bb7237e2557782fbef69fa289a3e", - "0xc3a1bf00517da2707dbf4a77254326dc7560618df58f3299b971de163cf30b5c", - "0x6ab2f1cce24656ed209dfbd63c50289e5314a8ab4d9a9883d94aafa90e5457a6", - "0xaaeefaa934fcbcde6f7d8d551bb04c59ef02044382ccffc0d391602d54bb08dc", - "0x1219f82ec65424420025c517665acb975e844d2e194dc2865d00b57d9c9bf6bc", - "0xd4a4f53312be916eb3f403246f4dc33025cbcb47932601e43f0634991198191a", - "0xb291089807f2361218966d187216a57e7da75a90affda3ffb9ea9686f200db48", - "0x495c6e323696bfbed94b7b141a412ffca903266294cdd609f9a3919a2e56106a", - "0x55e53a382bef3540ef569b9c4e2c4554ecea88e7f02954b5f553813b0f723f2b", - "0x243c3c576d45baede693313cd297000fb029ed43edef95aecf7870b807defefe", - "0x18605e184cfc5c1fd6deb89e469c541953921b69a1a6d60ce96a9b38477ebf87", - "0xb235315517748d459d6220cbe386c18b4c28afbb3ea4f0dc269def49d84c836b", - "0x0f92014b08ee5286e7158fdeda3e1ec128d75a454cd5377cef82dd605b85b23c", - "0xcc197018d000dcbb535b4d7dcaee1895613aa913910873be4dd18eb8db4d84e1", - "0x5272bd28803e27471c8b74c73501deead26b088337d4d108774bcd20a16e474d", - "0x95994b45cdd5e24d0d62ade16622a2df256b7c34bb6fc3ee1d82c8bd9c9ccaca", - "0xf3540d14e991c1f41f0da0752aa6beafa52b3d2dbed31b11a037fdcf95a91cb8", - "0x1e3f2d520c3c8a5a6a5f4dfc98e34e41b00c7f2373e77c894d2138ddaa4c48f1", - "0x73a32af3ff4f5e32cae216a58ce5806b2ef2c2138fc661626ead2f3594281975", - "0x24c7750911b78aafd028a9bfb8723c23709229228b55cecbec2be3a85e4048c7", - "0x6687c041b158f93684a86d7d2ad32b8fc1a2a189cc84b458acec35f421213186", - "0x7be2d7b949ea309c3edd3aee1df035b3b007394d508371db07e1fe7050b8fd92", - "0xa93cc5b8160519159b0aca9de5e3ba73df420773c43faf77aae11e808cd31444", - "0x48da7fe896d8a7190b88493c007446d7e45b01ec9336196fe590eb7104296890", - "0x00b562260930d36e8ff01819603a1fa7e47defc9afca6f694ac80e258b2259cf", - "0x634774d7f08b45b0a5eb7f6366cfc3d587652280e67e5530c19a59b5e3608e56", - "0x71210aa1bb90f98be4b5d3624aa434794ebef0036317d0ac0c81aa5989bfbc23", - "0x08d73574c11609a5c0d8011d88985770c7a9f6c6b13241a60e97208e70bcd8dc", - "0xaa8f2649733da5542c5ebd9093f6385403e54893cd20159c1904b8a65a93b0fd", - "0xba2b8890f1068d0814e7b9f4ec96122b2f054d9d9a00de7be6f1376588668c7e", - "0xdbcebb99aa1320ba6a73bbf03d0c3a6f6a5a0f448fd82f66684132f466005730", - "0x1bc13dbb79db619549e48b2aff6bd287770dada84871eba6cc3ada263f1fead8", - "0x34bd6250079d5450494313d82d55b6d67b5c88b9c327c12ccd1dc26229fec85a", - "0x9bb7f357e6c2fb16a1785ed1d8329dfdd1a0e153eef63a28426da32c6b3c4f21", - "0xa400305a3b3c3a43cf19db3a8c3bdd798bee0b3823794909c99ad169aaacb5c5", - "0x70e2a9779681594fa2c5134479753290cda06e381eb694b733ddef6f7d68c196", - "0x5310ecb256d7c062e314d3efe63c8e4aeabeb8a28deefb7082932bce1bb0ea2d", - "0xdb31f093dbe2d74e97f89d9d4ee90ce620b10516bb2f67f0f72083ef95a08533", - "0x194435831533350741d784baacfbb72bf29607cd156262b1850ccff9066b1dcb", - "0x34e908f1794a6b6b62cd390af76426dedccc25146ce1ed9655a419eef19ab593", - "0x9ebd77d7838567ecbcb9bf6e01470a6504e1d11b72ac7cfee1252a38b6fa22f5", - "0x890acef390032fcb941b497d0a8d9143f24a2ed38320e563f4cb00aad423f945", - "0x476f91830e89ca1326ecfc1aa170638f69d85ebd2d2e6925a28686ffed118269", - "0x05b82272e619631be587e2e9576651efa30f4aa606a602fde6ba6612c96b0204", - "0xbe52d8c0da80709a0f9f74733514aa89f0803a1c3d6318548db8591f04d5cb50", - "0x505c6cae331c6545e52479084689cc05e9402afa29c39dd2db6929b8c0f343ab", - "0x67a97852d6f51efe6d6936b4b46913e3155706b8bcd5cb84a2e5b4345a0c2319", - "0x38235c94758cbcf5f87801f7fd971307e0c0575f0fdcdb01507c3dadcd866196", - "0x8c8374cde00dc3c8d981e85c7abd861cba034740b088c3b3d0d902e49718fb73", - "0x00d8ef455db3b3176ee73881da23eec72aada4ba69d99e2e9e8854689036f719", - "0xf449e78106ff9feac43cd39874c96b283796703d95f3cc2310eb0891a847f5c3", - "0x59a55088e2bd944ccb6c765c1736680ace188ed3cb4426e7883d6a9b13fa3566", - "0x61a70e0b86bf6c918a7ba9e5cee5ab1b1778ee8bb0c6d95a22fd3b316cc49318", - "0xe76e9eae05121a7297046ce013cb15f9f9f4948f75b11080e8624d8db4c72fc6", - "0xe4e0fe04b626bbf1a4a3c07d83879fa431624a2379d96876d0660aa11558833e", - "0x4669abdd5a4414d5c3477ffbf117282ce30e3f7eb53d51a4558a53a6a218ead2", - "0x9047a215e32e7cfb8cd0f8ed9ee511b97ce6c6d958932f9a69de675fa40be3f5", - "0xe843ad9c00989e64bbc628bcd94ec33d9fb7cab7da04414bd5a8836abf3d77e0", - "0xf74a439fefb92fe2f4a5cbc00b5d0aab98b123ac35ce5b721c822e3f01abe919", - "0x2a180beafbe97688ee4776ea146b7a04e1277f34c6f590a36e757713b8fbd162", - "0x7e6b2b0e1f5ca1710beb9679e9a76198e8c46cd7f78e708f8a221c1b0cf8706c", - "0xd81eeaf24e581409b240f4c939eef367a1202a67b0f3f9624ad2b65320a5b1d8", - "0x0785cb4877a081b0ffe0969659e31e0cdc107e074e0f50441efd0d605e24ba50", - "0xd940ad268d241a3816953423ef21b00accee9ff8ecaa568b9f07d450c83b23ec", - "0xe9cacf9f26f9285a92d9de458f0da70df4865fa339257b9194170e47b1b8508b", - "0x0a609857a03ee4a9a12d4ca433dcf4b1dcce562eb8eaf680246c5677592792fb", - "0xdf39272007002deaf6e3e08d39c301acb019fae9fc1604045970b24ee811ff5e", - "0xbfdcb2fbcda60f56f4894c363616d0b618e69a65d99a28e7a97e7a3e994ffea4", - "0x1911b497e25ac33f47d17a3375a48429f2ed8ddaceaef5d87833200d177abdd3", - "0xcb567fbf2368e282fcce5eb91de6d63978ddd81fcf708a7bf72dbfc67507cc70", - "0x389cf86c4724fed48eb07c84ddc9eb57f6ee7f1289ff784b40b0583adbe17258", - "0xe4df95ab6106b76317b98743c8502f542e4c938c4bf6e7ff8333a806e5b7ce10", - "0x5d6011ffd07ed24f53c89f8e0b7bcbfc9d61bbc7bbf4c75b2d016ccf0ffba894", - "0xaf73a81601a6966ef20a3144f78b58dee5a11dcc62d9c8571bffcf47590f8390", - "0x0f2c2e6f8709204b16e1150113a3c21dee41e07e05c02d2a267db5ba790b9fdb", - "0x413625e84a39b66a76f367e93e7540ba19e449da99b20027bee22ee43d951b91", - "0x8c1d212a9981956be03bbeb02cc9481f49e2dc7771adf2528db022a566c1e0c5", - "0x931f8f9b774998cac650e051437ae2a3e283649c70c99bded3f782590507be50", - "0x3c921258cb54fd6749333647bad45ec2e370e6ea1717378c5c220707057489ef", - "0x4199f7bfa2612d7b55ef0866222e826360ac55c331bb224e1172b23b908e63bb", - "0xb031554c6174037e0e653c770748fe0fef7c2e07878641fd8b6172d407c96f36", - "0x80a29a2e5e0fbbe548688162bbe896e4779c14cc36d2cc8d79625f4e900e2e29", - "0xaeeb107069aabd8f5a493d4eabf07269ba8b138de2c6fc2e45c1cc51b16cd47e", - "0x693796fef4816ac117709bb0897f04f7a7839a63553480c58cc9c9e84819977e", - "0x1f7799d1703c941c22d508c77b9c675b41fc9b3458676f8b68e61bc6f782ab51", - "0xb77b822d6bf3c564e85a5fb807a6f2c327c8e9878f1a8bef5efcfc2b42683ccd", - "0xa7a18f0dfb0ea0fb324e44e3e8f4b0855909243c4d9033c049308c1b5b0230ae", - "0xa0510d0ea833b196befe7e7306d032dcf7118f6441b08c5368446585c2eecd6d", - "0x9a147ae2c6e144acb568987fd0bee3217f3b9b3e93c8838e61456bf8b86a22c4", - "0xe9f1a8278a5ae525ed2a36fd215c8c32d829a7d33d8b304ae5e3b1be87bc2a71", - "0x0b72bb9e24280b927c53ca9e0b5881692a512f5364aac34d7fcd3a74e7afd48c", - "0x769739b3852616af794e5da01fd9c82d4f18ba2cd83e3f4cb91abf373af2fd01", - "0xa08efd521c783110f8bcbd6b10e0fe88589b86cce52e74b79fcac0c2d9c0622d", - "0x2a92ad845e5248c29dde55744617fb89da6274b00ab81b39ca5165e7889f7c84", - "0x97a39e46bfa06d65b82267322c932eb47fd300c9c3ee39317490d5b2cfbefaad", - "0x2b069b2073de7bdd72362c3d660006c887a202455fff0a5ec829dac09317ab95", - "0xc589b08560639f3cf40f7ed21ae23cdb4fc6926b8107bf1c5d43bceba8b73b72", - "0x7e60eedd8908ae15c145697fe52bb5583450cc3823e022ffe99f6b339e26144e", - "0xa9aee5b233f7be5937c774181bfeb00eb1f6ddcfb15c75f32ea8ac25e8b27afa", - "0x3b61b38d28bfa8aa927b5bfba2eb720c458e381081ddeb272f5468e0e337127a", - "0x81a3e1d1085962a90b26d069802a3a222b7514c976cdaecb17991dd14c39abe1", - "0x1f323a73660c294067febfee61dd3ba79e6b6e44b56f3643e6abb46bf23e59f9", - "0xbebd2e901a90f7d00ebfa0a37d6c30fb82df35277bad3fd361bd996aab04e76f", - "0x540045b3dca70445378bd7a5e99e7401a6a34852178617c224070ad6168c68f6", - "0xbfb24b0f324aeb1ddc9896d84243304e7904a5877c2d3905e9dec916aeffb833", - "0xd35e90e38c97392ffd3b18f6fa3355cfe7cafa1fb42a679341d120dcbb00cfb6", - "0xa45d268b64eacba83a08e071a70238f6a09268d93f9ace0239f98b9b480054dd", - "0xf3811936dd4e523e92bece26a6ae9757d082b0c90db890d29dd6db748532146e", - "0xd2f0acc18ea883e914643230ded3c14ac41530a207891a60cc115788603cae9a", - "0x1bacd3ba7d6ede3600338ec74c93a544b53e79607706c78ab8c3628abf086000", - "0x84ed140ab09aea7bb06b372079cee2c55014ccdd7a86256de4203b3edb395d7f", - "0x1eb7929230ceae1a1eb2ad2e621ed4d96fb7519519d67690a0a02028354f5b44", - "0x6ea5e84a1e0044b4ebb4c9889c0f0cb8366067e83b41549fc0b566f8af18f373", - "0xc0a31489bec0a05ebdef2d85f63ec978c7732cd7f85363b5c0adbbc24f8b8bee", - "0xb411b35100cb2e46514f4cb38fbafba9b5d08deb69dd04f5f1d6242092256ad3", - "0xda4f3602b5186ba05a36c6801f9671bd81c0f7bab2958f92f23b53428c6d7d20", - "0x192955fb0de4dc5683143b58cee39643b8dbe650ffaabffaf1901c36f66c2206", - "0x01e6ffda8040936ecf0fb9bcb7ade2c111a1ea60d865eef26e64cf2b61c60e64", - "0x0f65e8a8a15d7dfa88138209a07882256d0fa29598c80565d25031fd9c457a1a", - "0x8d271c3e2b1f46c781d3e0b78a3e32ba6cc4a34dfa64beb67000adff81082a3a", - "0x1797d9d3f8ef921578e44c12e89a3603a1834979f4cb095ff97d587e3ad0fef0", - "0x43b8576ff5188a17105986358fd46476fadc8b012c2b5ebca1a6e2c7ed99c672", - "0x9cb12e9bd8ead00e00267b9059c27805d8f1183e38e77062d6e8596f3aaede4a", - "0x487a0d1136629756c07b721524706153dd3b6b30a99ad21524c6ad7bd1fb68cd", - "0x585e4e9bbec3b503e9febaf2fd948dc570a68a7d00869efec0696ee734793188", - "0xcd6687ecd3a89f6148ad3649b533e6bf73693c3dbc7ac8786346c28b31d46045", - "0x6d84a80a92c4f0e46814b781c9bf810e8951b42a3b4ffdbd069af8cf5df68e6c", - "0xa665dbc194d98bd3241df0a0c3a6ad0840f26b6516d7acacfb14d762dce7332c", - "0xe4be31ef78d1da2809a8893e184c8dfec02c9cc6cb6cf9766b24f5c751ffbdba", - "0xf627f2f2abba302c369d9ef1440fccb76dfe929da867e990cc0849abbbcee381", - "0xa0c92bf12232f1382eb20abc27d456348bed2968498b1f50af47b4ffee978dff", - "0x6f785f8c8ee41dee4919d36a6b93bc79358bad7c6526406572d8322d2c4caeae", - "0x956663cff06f54baef4916c5c1cf2fe2f74ed3adc3d037675e5f560f20fb40c3", - "0x254f23c420ee39fdd9a9855232983dc72ae2732df41a9f5a6f706605aeecd1b0", - "0x9f506bfbca58d8a3c1537223b508ab1a73fa305115d567799887ad3fa358dfd4", - "0x45130075968c58cbb9ff62dcf24720665cd0445b07bfcb48f258e774b7afa696", - "0xc82b3616bbdb734206081ffda98c7ad52c25d6e319e128db9805d47d4c0c91d3", - "0x5514a3752fc41d6fde6efbedc5819451b5f5c447da3165424c0b45eb45b7e05d", - "0xd43b0a7a8004bad15520484cbef390383d383f92fdfff2b565d9c3cce843701d", - "0xff3c2c98321126f95c78489407a7c1f740d91d1097a9db6e7c2956daee4ec037", - "0xae6f03d13a9484763007bb1747aec64fb8af07a6d2b75e4f0ca92b1e5b5cabb0", - "0x77c0de0b69d598bf861d6202a9aff1bf969ac530bc4ea29821f3906786bd5033", - "0xe5304ed9e69f36201a17a15a52b0d55172ded72e43930d07d0031f6d7930982e", - "0xe4d4f0914e9da6ec689721953fa6434b7a6df1ae96d5fbeeae58be9bbbafe91d", - "0x4ca8aa5164de5e03129e0c0fd1b25f8edc0be0095880c1be92f559c9e41088ec", - "0x10c0cfc83a0ce9cd01847cd6608d0d5f1e9556bd601e00daa76df36a5478b4a9", - "0xd3dfa0401755d52369eb3420d9f11faa30642f96ac47cd6df647832885e45255", - "0xc5f3e2ab30f2c04663785ebe8616d721fed26f3b0682978d8d293b71c6e679db", - "0x5d3a3771e375cfa767bb2f79f4eb524e24cc75edc18280f45e9b5684feb8cc21", - "0x5f75a61d6cc535180f4866f131a6b3765f8f887bbcbad8c2341d0f3639f670ab", - "0xaa92f9beedcfb4a89c40c175aae2ab7d714b9e08514521026c04c394b8e691df", - "0x3c308a2526b380b770b440e597ab93a9890a93aeeb0f7358e0d718b8525fd83b", - "0x72d99722cae34e5e98024633450eec36b5c5f210ad8d926e706130b668ed652f", - "0xf355aa777e1d6eb54079aadb9e01f90019f2152867ffcdcd9370890e52f78f00", - "0xece9a8bb68f51b68b1af494c1f9f939852f8b5f02bd8ea7d5ed6184826e53fea", - "0x175ce65c526df144931678b31a52c0482cae8c7c5fc257af2b67db4d3b911eed", - "0xbd08d3f0448c85b347293e37521be9cd023020d5f0dae65a58685c9b38b0d72d", - "0x7ce531279c7237fc6a5cedd136859d2dda2994798573eea5e16c9c4c1f8dd2ed", - "0xb9af8108c38f749245886a5c739a8a27ea4374f1e4f1f80f7cf5d75ca24388ca", - "0xb47fd0ca734229e031302c21e9cf9e722313af7687a017be4cfd7a126d3e3a0a", - "0x535c450febff97088cc5b9a2dc53322464d30ee1e1a4b637eb0af6fd9cedfc4e", - "0xa96eec2bbf07a5a721757c5f822cad5eccfc109ab625f60637640b593fed6e33", - "0x1dc48b9654e75fb0469f31920208cfb8daadc29e474c2ddea26a84e41192b7f6", - "0x4eaa4710b6f59a32654b551e6e6831962244adf7cfde3bcca1eb23f3fa5fd6dc", - "0x974fc45c5d0f29e9a435be9801216e821528d63085f91c8f32926fea6f2fe33a", - "0xae9258fcd4e24377f6575b1372d93c8e1f3f182d69e1dce0f34e5323bb564c40", - "0x936f73a8db5d27ac246628d916076f210512193fb0ed07b177f88f38f1d9f93c", - "0xb1d9add4e81f7e31cdcf939e96aec52343f0fcd1c3945a06fc373582cac5e3b8", - "0x715b33556e8d2c731a3a9f82d62de5fd888406275ee48b0aa1e667c500853f89", - "0xbb069b2facb78c576d0b5ac5b60cb5fd93086c8b2a8f8cc3de93b5ee0a8047c6", - "0x139c62086e489a6dd8df1879e40d3efbfee2a5a9a18a20be0d278eb5b6342a24", - "0x0ec77a5043d047ef4790229df9a6420c40bbb12591100292f7ad1cf01a1b26fd", - "0x3bac40b81c8200311f142b21e74e878bde0741063625f8a88255f618aa7cd33a", - "0x0f40ba7924103e076c023a324cdbe7a066af460e628fdae93c6cad2644af9838", - "0x9e78a97556487bdef14755b016b70ed5ac02de3bb49570dc43c30f356df6b659", - "0x3471964bafe51086c307c784b38cc06ab61f5303aee7aee894df2e7a759c40b8", - "0x0a3f66714a6a0b2a1d5f534be95a510f44d8d238744412a532dddaa49ffe8d7b", - "0x7bec733ae41397642f1f5c3d8c1ccf49b6bc9c1a518223fcf01b5f7cbf6f3705", - "0xb9963b533ac1898cc8bd7ec202395b1a84ffc9f2f170727db472a957404ba377", - "0xeeca7419303169bf94ab4b5387582f8512929e9d3987f14a6917be06195b76cc", - "0xcdf32b3f676c7f972fc32235c8aca016c467a67a441575d473add2ff67c101f4", - "0xbec739da4ef3aef4e7a8d40a58f8343fb692d9d19e5c4c6ed2e1f01910123483", - "0x9ca224e1f36aad793dec4eaee936330bbef547282038de374fa8f812b6ac2731", - "0xd8cebaf48d29db6b9bb818fe2d8e959c40d16ae328292f679bf719fba9eba43d", - "0xfb91283b8e72f2b65fed21efb13841cc1e845ad312275a55590f0114b2118bdc", - "0xd6708f204a771a6f77be76e7b7275bd10cb43bc141dee5219574e14298665087", - "0xcf4684a5a211f183a8ebe5ccbab97419f3cba8e9d060e7842d4d9128db5f82a4", - "0xd4964b9f2546dbd080b764645cfda3a5b24e30c76d30089b3da7f93793830699", - "0x3fde509e67bc090d74da01cfbec10c03bc456e63fad6a57593a5f534beed113c", - "0x70612230eb6bf9bea267f83c3bf62d0f2decd1f43653bdd00a0c7b89b0d32b59", - "0x40803fa27145e3e16373032c2512214f35bd7b5dfe06aea4a42104e43a58fb4b", - "0x0d78c2b135f282debd581c77572eac67618a27a2e72928b531d8c550a83ca95e", - "0x1ff6f0966557746d1dead627307711e35e21125c5356183ba6a7fe67a33dd1f7", - "0x2d0e54e705b6b48a0ecb260421b1b320ec6332f2326b570fc2671119c889fc83", - "0x931569040ddadfcfa6ebd7264a58b6d3a7200819fd83d5be3d107e8fca662fbb", - "0xa152c1e663ceb96c2fb4d3fe992a8df968dafe840c41171ae1115ee4c3f2189d", - "0xe0eaa06be11e49629e893be21e3485edf1c2d1c4e10a2ebd56771bd9c8c43128", - "0x4cef1726c40c846ea4b89412d0959e0c60c2d7d09aea7260c450e65b6959cd0b", - "0x03d60eddaf920b24db0cb177b3e87febf7ff42c70b01f19165811c02e934bac1", - "0x20237d9a59b4c8d7bc324055ed2c09106c5a83f80e3faf9a519ab7fe7dfda4e4", - "0xdeba273b77f09eef6383e543f144981ab2b0a8cf5458d53cd7b62f2f4620b5ca", - "0x792ca8b535585e17448d5961a53d48478f5ff3ad780b4cd5ce400155f99d47df", - "0x9562462d4c50af030ddc1eea7afb2daf174d37e87331012ae7809675977d19dc", - "0x534126a5a45d07b97f8530683387aa7b7d3c542791a591c999a3147120c9df66", - "0x395866222f4b9eda175fad2b5c03d8edaf7dfa8c231e1f63b50a8f7ba8ea768e", - "0x3b7c90bbb4c1d512f3b32c52c11df90362395458b9e5036fc115cf8c7e1fe8db", - "0x1b83d9a38e749c331b456700d809d2fa4d44183ac7931a5bfcc270710db5d9e6", - "0x0d219f3be7def7fdf0a6a4fc7b9d801fb7f82bda18480f5de4bd144b5a07699d", - "0x8b239ffbade64752b0753f0455f80f48bbf1759b578877b4cd633120640e368b", - "0x4952033d5a714fc9f00d6cf86cab40961d6f65f41cea32969015eda8bcd86d12", - "0x9337c08af2b8a8109fee2b5d5760dbbe0ebef717276c4e0ec366a7fbbf089133", - "0xf8b5d552c23243c2388cee3d830353d2617058e2564ea735f9266650e0b384b9", - "0x998403af8da153a188078874fd7733a4975985e478e0bffb88d32f9f73165859", - "0xda6b8575198343fb5e0c383c71c3237e22d8907c732324adad6a1c9a7094b364", - "0x6c4089d09fca65f0e08065fe76fc808da298d15c1be524faa7127bdab491bc0b", - "0x6a5d8d5b0d7ed439bb5794e4a9851ced8dca4b62af2c65adeeb6de85fff25ad4", - "0x26268391661872d1c42f455f4607ad6235e8d4d37228d6f6e68d58cb7757ee3b", - "0xf47c821ff8ef71b25afae26a0e7032830af23663ec7c7eaf9541215bbd0ac318", - "0x660e9ecae596fdbe31d4321e902e723744b036af20acfc7b07af33de3c03426e", - "0xc068e5ef9b354646c4c196b8f4b76f90c653de3bfe5d731b9af6a38f7e22e5bd", - "0x855f15c630f2779849f380f9b72f3eee4188786a14609f4523199b5674eadc90", - "0x184d0cf7f3411e67039040c211b63ccf65e12a34807b2adfccc6a96f2958f10c", - "0x100553b7852201b4cfef0c0b0e3bc9b85973570c9a15d494172f372de2f4c3b3", - "0x316e8756e1e2937c91e38a8dbbba3c9a8306542b2ddea63b38ac987b7cf17880", - "0x86d773822b5bd5a74bfeba611793bffd6b10c44ed6dc1fce06bc69b274fce579", - "0x70260f95b4eec1171c8b46f9a19b83ff561c0e776948f79d0c57326f622d045c", - "0xd2860b14214a368f32c68f4ae7deea94ea239ee0099d26c41932ce0218148271", - "0xeeee56e8202b193a51f2858e5d6d98eea1120343c5a9fdb6b419c732f39ccfe6", - "0xab9fa4a69e08fe455b209c841d02d724e6afcbc051d8c4fcf0f76e7a99baa728", - "0xd6cf37977456356252e1e1aab71b518d4be08713c6a4ead6e1a30f7b07b799b6", - "0xf5ac688debe75fa0064a5a9135fd287a5bebb62a7cf803fd6382e29b008e7ae1", - "0x969119e969f9c55261957f605b579e96f7e9f7ea6002466c70d08c3d72893569", - "0xa07f93f5a103d361989a48acece650873164d1e5f99dadc2ae72cbe8f752ebf7", - "0xbe03f1432dc8b8fde8107328794dbb10075acbb835a9ff9876574bd54e6fcbde", - "0xde96c70df84aa83b2c7c467486fba87df3e1794f48ace7ab2a58120057bbeb44", - "0x98c963171be9bc3cd0e851b1e925021a41ae96425bed1c9171a9806836876722", - "0x4ee4973b6ad260367ec2e85de7c9c488eb237386d8c0af4538480a07bbac6362", - "0xe55e62e4da77ff26e1b74b9cd88a4fb9f6bb09ecbf70748079ee98fd1b29e9b3", - "0x5668d865ec045e0caaea9173ab2e0bc243279cca9889b554bf8fb74be7edc8db", - "0xee0219965a896de8fbd02a9e392e41511dc01b32adc879f47e840fb16748e0ec", - "0x067de7534f4c63eabf619d1a723fbbaa940f59ee92100df80aeec1868cff40a6", - "0x701ffa3418f9232a4902df7668b1fc87ac1d9b685cce9f5d820f626540a0f89c", - "0x16eb30bb64ffa9ad25b579f2f019c7886184631abd0a40e82313fed29eee31ed", - "0x5aa8361d42f511c5a3691bb64308da2796244075e829767386f4cc70f8c2a70f", - "0x85eaef383b0baf4533683496c7f749cff3b07bef1bc971ea64ea3f1b8ec97ae3", - "0x0977f99e26f96fb31d04dbcbce8967118b51398b6f0712cdf55ada5928b5ab5c", - "0xf321eac1b43d232c612e059be9e98d24bab395de5406f9b514d39a614a4a143c", - "0x9e3e81a1e0823b9a166cfa8105d3def2789fbd4d3a2ca9871b75a05cf252f8cd", - "0xfed3f3d4d86bdbda79fb9c9935c65d3e980bde5e9f599ee73071cc4bb0571ada", - "0x864268476104f0de0dcf8a024d808a4170158e74c6ef681910e3497bdceb27c9", - "0xf48691090f8661e5baa46f0025730a30cf57d186fc1458628d61e8c1a847bd72", - "0x41656453dee2ddd1694362eae0b6b741a7ba33cdbcde666b4f7e21b087ef79eb", - "0x48c7cacec3e2161bc35642f96f207bf65561f8c944e2cea48651cddb8a4548ee", - "0x5522526dd64584467b416086a92d9e9736fa07d25d524a0dfddab3694eae37dc", - "0xa73f2a4d69c6cbb2426956019d86e0e278913c613bc241c20e7a04fd46475e7c", - "0x3828ba052d46e2cb9db1e6284d7b57af1234b19ef57e95414f76af00588f5736", - "0x05beff29352d466ceb0fd835239ff491da78baf0c4a49e7e86702e5ba8d9938c", - "0xfd1e5c44abc25920639f0d3323c7a37e187e9c3523f1bdc2f5316f58e0de3277", - "0x5b6e17ac5e43079e136fdf088eb0667f2ae1f3d8d74853271f6450ebf10e5f87", - "0x93eee544e2bfa4b257962690614d6e3b6559a30e1fdc99e2d5c9438e3ef5294e", - "0xa1ac97bb27493dc07b4f9c74c5cc51b06a990a016f4ae8b7b175145c49e5e8d1", - "0x347b031d899061ff61328052398bcd237f611fc737eb3c89a644a0f0583df6a9", - "0x6a21e50a143263badfc63c3558681b8dff02edb87e49cdb4ccd6dd22ee640a84", - "0x72a1fbd845ae2f93570b95899b5604431557b40ceb3bcea49f3a601c7dde8fc7", - "0x7736fa9605d1d96b1e60bc80357b42e1bc1af7ee93fd677510788986b271d8db", - "0x76f89a85221739882eb8868e64bf4cb5bf148c1676f40ae8c21d593448f3c35c", - "0x87e9ca31389a42d0333fa723cd93a414baa8785d4e1adbd60803c642ccef4354", - "0xdb85ecbe1e60b2b7323bfd8b9052ef598c9a3978d434587de7b0acb4e5ddfa7b", - "0x74ecc5544a2022d9ef644e07ab4e7bd2fbaa091a0602378e797a79fd23a39a65", - "0x25875438959aef4b9439837aeef040eb22182fd2eceeebd3164b0e171a4f07b6", - "0x7b02a31c30e1aaaadcbadffa16b5d5b726bd6e7ce69e46f131a2e2ae9028e3aa", - "0x4da810150fe04769897a9dcbc762e57e3143f53b988fa384e9d1e975a10daa1d", - "0x02e8c7c864c9099c9de03ef799ae67538e27d4e5986c2b43f24dbb1e22bf215a", - "0x3a2549524a0542211c9caf8d7c50bd9be376839a7835b671999ee13d16ab2a23", - "0xb797387ea54fd787d5f2f7422929d3fee3380752f4e6f72d8f7c3ca1c18aee53", - "0x591126651f4ae3f82def63d62c3f5006d274951b7d0df241f69e5531441c865d", - "0x25e2bce70b31419aea946dbc890957a718a09cdd51bede651135181220eb2ada", - "0x072e249c21a440f387ebb121db0167e690cf227afad7a79b4dabe13535dbdc3b", - "0xac20848b30eeb59f0e86b913a50a0bf5d16ef48294b5753a78392472d5b821f5", - "0x1b264fcdf4c4664716e5d15f37d30036bfabb7dde156156af0d9a3427587d946", - "0xd1f6eeb6648fcf7bfe2a529a1cd95397dd5637f40446d478102cf77c1b4a0a36", - "0xbc61fb25e983a4e72c8f0b1de3c0ce64af6f81e991a3d2503dd9cd378b307830", - "0xd1e5c22b81c1c97704acc88ea4defd20e38fcd33d172d2e10c88b9e61e42186a", - "0x62429704d8365056cd9200d4b75043c1ed888978f59cacdf4df78a77f241958c", - "0xc75f2eb3ae96a0cdf4bf343998acb1ceeb1698de850be9739345db110c4547d4", - "0x293f31fb7885b5a8b56a806ed39fd4ce21da2b2f2aa3d53ba64ebb69ad3894f5", - "0x25789ebc42d9fce453435b830febbdc9d96b169e58fbf123ddb4c250be46e186", - "0x22374e1bf486955234966e8d5749a12d3fc8f3757deb03635588ba4cbb3b6d05", - "0x5ef1c59731d07948379cb8a2f69bb6c85831dbf4877bcd15dbef2203c466f08b", - "0xc8a399261d6fb17dc44542966b6f747dd9bb79ffd9ffaa4057cab7005add231b", - "0xe86ae035915ddd476aa6ae8b0a5d7efe1b12299749fe26572432e9de84667b9d", - "0x63ad0c23be328e42265531a35cbdc4ce0cb54466c4df2d7c06cc78996cf59359", - "0x9f7a76b739a2c83b3707878f96d738c75339187d18692df863a3080622e521c4", - "0x9de463b7adc2645388e7d304e8fc3dbd41792feb3acac6df07a7e7b738f18918", - "0x91dde10aa2843b61d1ec9698695b2b98e36e4256f89149efa80f05c783a46703", - "0xd5b8ade80a8e8c0a6d3409d1487a75261c7fa09b12f42d688ec3caf2ed3fb845", - "0x928c920abbf2e979b8e083b2126a9e57dd32e9dee159e872132bde12572fbabe", - "0x0df9a734740e8e43a7a609dd1a572b34d03fb6ca0ca2bedc4156dee372d8f031", - "0x687bbc3fafd974f8acc6cf950602684f4dd6c18aeaa0810ba8379c69f1f93e69", - "0xdd0758b5ce6846d130a2a510915cd269e5bfc32190cc192c52014e8ec1152daa", - "0x6cb72a48fc6e2fabf87a168e068da7f2a2e2b6f283bce30ce89225da1a7c7fa0", - "0xc69e84506b768224407215792c4eaeef4e2637c49a3c780529263dcd06008e8a", - "0x3d1c651e092a51426c336aea9d67e24e539b164a6328d3e1dcfd682e308d5b57", - "0xce28ebe86f5c68349465570c4734e67de9077042700cb022f50a1692f86c5ac1", - "0xe1c0f3403dba2a0252851d0de326a77b45bd6348aa77f1fbf50ea400291b7369", - "0x33e8ca0dec08e4926eb078713b29f0b5e3a149c72665fc118a1b390645597872", - "0xa7b1db9f872acba007a3d289bb9fe6a344a598484f05b3d09f86fd8937e4a7e5", - "0xa167cd03858447b05f4b04c7a00dfa47ef401a591c0cd6e21dedc31c6317dd88", - "0x7a36596e1d467bf69fdcf89020961fe226a7a74caf3f6a301a93bb62ae04da64", - "0x6df1255e8d0f1dd26b4d8c2074f6fd6ebd19c63ba8d4f018981fb3c5143869be", - "0x405a94ca8487db8a2848ddb2626780be4d708a524333f337d3a70388911dbaaf", - "0xfcb3c2a50e7b705e9bac79bc767dea39a72453b624f376f2f443cca4d71fd27d", - "0x0df59a47ddc76021493c451a150e89a5feeadb9c0d7eaca5735adda83beeed81", - "0xbcbc312916bcc4384c311770513a6e25966ab0bf4c603abc2e76341bb5e0861e", - "0x6bdcbb81e9ccf9c3ced0b046190510b50ea39dd6f4ac7bcf93ce9460d26b1a85", - "0x2fcd38c30ff75f79b7ae8cea289a994c2818b182f7a717c4e00d955e94c0e4ea", - "0x626aa23fe71966ae5d0ebd2b243ba26a0251221db8dc72ca75128cf8496c397d", - "0x3bd021853dcfb8c802bea2a6fe5bf9e0d9eef8dde8ea427923d373e68690edef", - "0x9185a0aa01c251e8e66bcbdffab85e08beab296e611d32eac6e1df89716b65d4", - "0x3110ce921cde1d11185e96c7202e59557bcd0289404b5daafac3eb0c3369769b", - "0x48dd13aaba98e0b9fbc5bf9e7fb4fb4c2399d6c43d348e7d9bce63d552ba4b16", - "0x949c894608158f17b860305ec50ccb9c261bd91698b4e74d90bfdc2e6eb7f6b4", - "0x03a54f8f490fbb7337edc852ce4db855c23d63952b680f0c7b0b4929ac32b53a", - "0x1772c66225597523609caa0809b52de4a0d23986c2a5f9a10c72138fa0da513f", - "0xc0ebd7935a25a1562f1ee993805e91239ef0e1677c6cb193399c69489aee3372", - "0x92c04fe853c0b20b8818e74353f02ab732277570d53a316009197463159aa998", - "0xd7748a6066710d8cbfb62716bb707d70d2aa35718b0162eadf28efa167bf4247", - "0x40c764559b23340611f6e586c5b3ca3e34109f39e55c1013444e5fb46b6e4ae8", - "0x664f106f2b63400e49e27d642888c2af5c90601ac3421b16d28acffb81980552", - "0x94bbccc56c838a7144f550125bcb6a78239e17186986bdca310b3b567bc04eb2", - "0x50769670c148c4bfd4a439dcd4a439f5a3c562eeb1486beccd5e47bc7ffe7e62", - "0x1dd32b9d03d7db815564a3eaebe223077329a00bfa1b2fb95ce5c3e28e7e1e7b", - "0xda75f4e1904c0046f8b932e15f1ee75ba5b18d619c03c313f91fc67352663dee", - "0x26b8523d80f4b02b48e90aa144aec7b3e8dd2904ddf98026da16785411e650c4", - "0x3d632940e2cb210bae6c004fba156ff936ed5b899cfb8113c3fe81aff90a9d31", - "0x5afbc6c18455b8616f6946c0eb86e25a5958d4ee43aba602d73ddb51f95a120a", - "0x638a5c1e22c63a56923b20094499f7bc341a24977e2da4330b4ccfa7cbb2133f", - "0xd03566f2a41fa9b73dd3008e00290cce8c0b606790dd4eba6954718087b035ff", - "0x044eb0cdab90661aab26ccc50dcedf16bae98e1dc64eb0b3efc0823acbd9189a", - "0x87b06dad58a4570e111b8fca431eed1194c7d6a3d2ddde4c03af3d5dcaa73c1a", - "0xa4a7a4bd57d4df07fd7f724f877f1809ce58267f4cdd6e01b6ebd74a51ba4f1f", - "0x5a677ca1f995ff347a445b19adbc95458ff467fd6e54bc5daac6631965b0682c", - "0x66d2db95f8a2dd6ca5e35dd98e48d65566cd7b49295206503979e1aafd2efec8", - "0x2a084704906271f7b6bf58dc814947bcd7bbbfe946073ab8ed93130442c28547", - "0x009fedea5e258716c82c202710581078c93e5fbbfc6d309f4060b883bdcff7f2", - "0xd05dbac18603ec1410626621f1b9b678139131af740c7bf913e5596b4ab50afc", - "0xee459c9425dc5db61b17204a8f16c7e30ac2d4e0e25dbcb966b8105bb696cabe", - "0x4e5d309f715ece7e3cd39322b70295087a1e4aecfa09935cb1c02f11e9c0b0d5", - "0xf205313bcfdb532ded0a5e3449510915cb951e8b39538295bfde1529f0c8e76c", - "0x425af7920153f9145c21f7596856855d55a985ea3b86007641cc648f721e55d1", - "0x4b7e0997fae4aa62129dc7542dd9c8759b3dc83b295edea0c301c3e5d0c7047e", - "0x66ddd8fb6fd5eaeaca4ab30997078089fe12c23538b263b6a30bad2de240de70", - "0x2aae904d495d75e755879d332388e3ffb794506f7636140d5996d198f7d595d1", - "0x57715fbce48b3eeda882ff4795eafc9e8a78a005c7f9fe29aef34e76c532aa62", - "0x7e292ed2cb56a5d088454c304405ca92357048b1a2b59558cca938868a489e41", - "0xf7d14a8e386b97e0a1bda779de74cca484c7ba777f434e40bfaa38898816325f", - "0xcb97729d67e7af8af5aa450e419ddf517bc5201719c081abea25b7c1b3fd4b94", - "0x8ea13b5666929e667b161611016990588465731f409f27bdc594295ea18f053d", - "0x515ffa2fa1d02fa812ef6cf9accda980ed3de8734cb0e6b0ca779642bb9b821e", - "0xc0f4f27af937f1ca108a68964b99eb1ec541433fa4ed7736ccef44cb34a2e220", - "0xa6ba9d246099cd4ac98171014867ba2099f8af6d5960d4dba2d02ac3519d5417", - "0x576ceb5dcba6fd0abb933edf52c56ab1de4bcc233d84b3335abc106dee26a979", - "0x02756b443a7d7c0147685d3bebae7c6b8ca41e08a420ced3cf96954d35b8f8e6", - "0x76b256b0f219de31672ca96ef25df475cb4cd886714dfcf86ab5f583c6831cbb", - "0xa8b06de1a5e939f400cc040d97023593d94bd6677f775344dd7fbee523e37793", - "0xc7ab90bb0ad571c16f4cf04f5231bee6461bc8ad8d3341022dfec1fa4683008b", - "0xe5dc898a5611a5641e5668498bacad7bcbe8f2f56f5749f108e3e2edc936d612", - "0x3ee0715724eb91abcc8e410bd2dd62329494cb806531a50406bedc790db70163", - "0x2adf081b1f48b98041163816ac7cc1e3d553b90cf2f25957f18d78dbedd28e78", - "0x55ff274524876c6bbeb9cd741a09205be57818692d7bd1f44dbd00fd4c987167", - "0x5bac9d22d8224cb5aa6dcb1d1d0b8e7a19a7920f9c1d60e907dab4ed1de56030", - "0xcb040f8185956dca644d263514f8df9e880ee9e840d41ffebcf2b330c95e084c", - "0x01654829da5415a428777ad66890afa49a9f5c018e9183e75ed5e9ce33edc6f6", - "0x1f5c6aebbfa4a5eaa31e37a2d9e1bda3903d1e60fb9b116ba108d1e728f8d1d6", - "0x2e1285d3632ee31f39c213cf9ff4dd0f8f71e02f6d9e208ea1da72f17ca2efde", - "0xbaf1ea78d8a7059dc640aa88c834a709430a58dbf0000b008598e50c0a918d5d", - "0x1cf4601e3b0455845ff1bd5a69a11ba9b1cb3766552250413ab05d23031d5ddc", - "0x24cbe63ee67f5e46571dee67ce5231d91d37ac9e7db876fa203dd6b711f9468f", - "0x40a40d3e099c678b41ccc96fa40d58176c78fed3a277244296104ad34fe672b3", - "0x5fa9756bfeb3a1b959fa9e0eeb4be5d610d21dfe79b01da9629678a57792f785", - "0x831d02f9bc15c3a107fc0d02af6986e90a4e10c337173e2c694049668494d6d3", - "0x0dea5d14f6b970008d4c568fcaa012c666997c4403003e071398091a4430fb3f", - "0x55ebf8cb23fc19be6f1bc81c01d22a9d68b33ea72057088fa218f5b823d62190", - "0x22c432494ec0fbf4b86deaf9e315f2fe303475954dd7fb334e970f075c836d18", - "0xeb7c33063357ed449a7057975fba7f1534859bc7a2b0a325675c0aca06d498b6", - "0xd1b4c264a6b1a6c5b29053536c94f9212a5361a59ba6c347bb293e2e5f4ac3c1", - "0x1248e24c5585593adbe274c96b6085c27af8d9109bb9e029c990ef8fc05b7de7", - "0x62e71fa6bfd51005525f7022aaed1dff888b494e33811bb8ee093528d22c8e46", - "0x452dec3f2d5aa670be7c63495b5380dd48a740088cb0c83bf3177d95070d30de", - "0xd4a684ac6f08f8ddc950b2fedee72f43fd68e1e9b5c90c49d628975933b0e6fc", - "0x13304a80344874cfd8d3473b3417bcb0125cb51bca1b0c17b1abd273ebdb76e2", - "0x119725b4c9f238e1afec7a1de2486d83659078410088239d0b2dcbb2229ab4ee", - "0x84d0632697d03d038465c69cf09897f590f2c54d4b489cda0933ee78b305159d", - "0x9cb911ea27c7b78d83cd213bf51bb1e704c6f2d3301cf21f7d556461ab4b4547", - "0x916fcca360f78a1cc254ca6a9cc813fbab69ddceda7e2a9d9f50a6efa3807c96", - "0x5e372a3c9a8a9a7152e85f6daf47501c22160873f656e9cfb44f1403ddf1a33c", - "0x3903ee5968ff71b55b8231a2293bb77a62116de299024b237c8008f9fed354dc", - "0x6a06a0e8a57406f09f8491f72a65440a7e8af76f1c94944cbe4431419009a286", - "0x718f21ef626dc8c5d1cdc673b180f83236964a04d65c2fd920ea4ee1292f03c2", - "0x266f181b66322be4694ca2d29334a93cf048a55461d5ea522e3f993b10c11da5", - "0x1329d0ca2ea012dee3c12c1eaff3764ac129b39439f0ab31c99315b845930b7f", - "0x148590d22c32801674a59d19057fa7c4fc2887f8526ae1c4f115c11a94343669", - "0x750be336395c6f4de6ed11ea0b9b021ccba8fc06d24acb28184dbcdc1c2440dc", - "0x13bc3e338a318feed2536031cbb5b0b7598b943f32dc2c88fda0f388688d496d", - "0xa0c0dc51049562f22afdd6c7c09d742c1faa1abfb72d6f1d1af01d90c61c0e00", - "0x62582df180bd65aa98acaf1b92c6bc454ce1ed19839752abcda3c19e6d33d374", - "0xcc86df4a115333f19819b493d17cba26a43bfdbb2223e4931ee6b5eba5f38191", - "0xf2704da9f0b3e4323651948714f738bcd1b98b375c206047b7191e78120e7cc1", - "0x9b7b5c587abff319712424711c2283c63eaff7b6b612c3c3af3db2e49efdf4e8", - "0xf048e6ffa41ec43d6754c3d0aa4b348b8cba9c694dd642101e89bdc60f851acb", - "0xd54a3922322ca33d14d7a76f9112351561af5cdf6938190a9f72dbc743821d93", - "0x224fee97a81d25039af7bb9933154ddcaf3ec019e15e9d8b3faca76e97f5f456", - "0xd05af3e61e93ab21bc4acb5f5a7f5b1c65cb62a0f66418989a33cf5a022b1303", - "0x0b4d26d13aa33c3f18815ee500ff94e50b07744ed653e1730505f34807171fee", - "0x042c4d57c11f67351185f8da9d13a4eaa81c16a0562168f3bdb5dba67695ad3f", - "0xed23904d7f34fda2feaf767b4a159f4bffed7262e5fc6e57134fb9f9e1537179", - "0x86150cce44f1cbc0d70faf4a9a8ef43d4cb379502c3f093edbb23b29da7d69f8", - "0x8dfd33acc56528a2305927a1ee8ad4e6aeb2ad62c1617dab0e433f0349e23d68", - "0xb0265b1a9e0b4329e58dbd4c7330334b89f62208b564d34a36adf63b0a1edbed", - "0x449ad314b97b04a8fe27b49c3ceaf4f48ef4da32ebc838ec92e760cfc69ccc60", - "0xf8f709094f667677a51e6cbea7d80111b3dc605fe85eaa89149db75daff572f2", - "0x958dcbc8aaed9d26e1471decc11f45002248aa3b319474a4476c3ec3c56156a5", - "0x3ff1d72bddba150d37ac533d8cbc79fa0df9dced62d63788ead1f7f0e2f908d3", - "0x1dfd517bacff0cbed6ee00e1aa0860e1132ae0357f1c04cc7fcb3cb6c4b576af", - "0xf7fe6f99b1d498ed42147d0569a367453b43393383bc6766b799041f539f11b8", - "0xbdcf4453234b219089ff1319929db364d41acae2a6852c59324fee210f4648cf", - "0xdc96015b8b607582a66112acacceb00436ae99b1457738b2aaf2d4607b902bc6", - "0xf94d38138af0896d0a5d982d8d2f579ba22602edac3e197d955fc3fc08a1d66e", - "0x69905142ab72223097855fb3948f08820464acb8648d9f17889dfc4fb53f5119", - "0xd5f6eb135b118a63959276d91ab9a243cafad92a5224c1607ac23627459af522", - "0xc648f20006811f74a283f809e7870136493a922f73a570ad183c52460583be52", - "0xdf9ad900f0078907865fa24a2cfa43cfe463414ed730deeefd3346bacc3af191", - "0x4982f194d6c379706f34ce3662c88ffba3e01ad4b1531ddc06bdae8205443f1c", - "0x7b7711b498ba7fd9e409ffff12fb4ca0bb7a35b0a7a52fbd9f4e891fea5e19d9", - "0x7483501ff50750143e8c6105d110ca22e04b47fea2f52e5fe78288093126fc8f", - "0xfe7f95c1819c9aeea3b825223370a12198d83e9e5ea8afe3d7989576b4769207", - "0x7720c14c730ab8e13cc2b6210fd357f580c96fce65432b04ec787089658eec6e", - "0x37597a0cb5f115fbae5304cf0951633845b60c8456f0a8015d7920aa5cc4789a", - "0xe9e6ee709139afeb0f9b18742f10c444d982560ead60430bb6b0c7b21b823fc9", - "0x6b1e527db7795acbc6ab1d62a449d5df9f958ce2cce62bc75ac3c4851f30bde8", - "0x36934bef6115f8524890d77f087e49c6b95d832f7e5c15dd40a99e12c27a7c25", - "0x828f90bdc68ab754862b11e2794284b0a79130c4f9dfabf743eee463dd138210", - "0xc74307172a17ffe3f2b22c397fc16499af6c772c1ca4012504085304af6cb1eb", - "0x3ec72268a78671c0027a5d72d14ca5441a65c385961aba9d79a8b5c60f06e7a7", - "0xd85c033362ec66336cb685af11a577aa8c58f6970c396c1c3d01b373e28bd83d", - "0x4236db4114a216aa3db4ee43dabf042a4fa142f506671db79271e5e87d43dcc1", - "0x0994b83392c79c039ddb3a7a39af10944f9c8d110db91ac6cdd3901fd6162e3f", - "0x05dd8ad9cad24784c538826662c60a5b7793cce0c9b0e516d302c74caf4fbad3", - "0x90ff9715b49ffa4ecde93076fbb26263d5cbbb5cf1da7d733c7969a323a5efc9", - "0x9cdbe11208234c59c0c2d9eacdbaf71ffaa35abddb770a9173b5161aa12822c6", - "0x52508554b3c1774feb39569f3f1d750de3c6378ac1a00dde8d7937499a01aafd", - "0xb1f8172ca90c9de72134885a07e72e8fc586f15cdd939751556e1b1569827fb6", - "0x62c6c1cd398899b1788741c5d38b6d7e5b87ca6d7df9adebb3a7ede15773ae16", - "0x69f98686ed693fb4bd9c559d06cb36b1ca0049b89224a0d0989afaab75f63a73", - "0x922df7c6782fd8d09f8151de65da4a661888a547ea7606bd0bbcff76da9460af", - "0x92fe7525ac7654d9c1afaecd305bf49797c8f170c18a989fade3261859b09c90", - "0x9c6840e8deabcf6a4f9b6d455cce40e507bacf1d2ea21e7be5e886a7fcfca41e", - "0xadc0de536e5084837e63c4c9307f43d483faa0517703461198dbf6fd9d45985f", - "0x96cd5b306365675610295293bd8c85f131fcbe98da01d65b02d586fd0deff6db", - "0xf64265c5166d3e4c7b43a44e1d342ec17573f8914c890a7844b97276c1f4e9d6", - "0xf57e23fc51b49caee68a24cd0a44c1751e453c305559c4c5e962481960920b13", - "0x2a79bac7e52352c86db3d30dd2b30f9e971812e7b90524259052e4dee002022c", - "0xa34ce80d02bce67476c9884650e9c364b18701df17b98eb626ec8a8b8ff94c41", - "0x3d33046ef8bf3c6ac74809bd647125cb3649c50a683d81d189d5a3a1697d5c12", - "0xa9b71e759c32de96cc2e60eabb3babb2fc54ab03b0919710d0991dd96054658e", - "0x03943f2696bf2827b5b185273736a9f196b6b9876f872cfda33a6287a5d8b52d", - "0x64c3155f299850c3dd2af09764526fd1fd66441f9c9e6f5cb0a2e2301584c175", - "0xea2e486290caa2832e51111a84028c6e048cb75b518c01b036c10414f42f8f15", - "0x50a1d1408a591f87d4d68836e1000be260842c29ee01e9f7d4aac7e7d979e9de", - "0xacefd24443c1df58c5eeaef883152021cb4c6fc97b48ace81eea57800bef42ea", - "0xeb6d6aacefa2588be8c725af0e96a54ef419b955873818e7157ec33b4111122a", - "0xc8a041eeb0059a5471425f16584246cbd82599d149cc482c5a5f33deb8a4b51d", - "0x57133965ef6ea219184e9c4f2cc5dd36b06aac56c232db9f13612f29cf7452c6", - "0xe12e43a37f7c8af5993380c9f9d52dbc079cf6a15dfe6d5bef674bb9095522a3", - "0x872f41b87598ac8bd9db28030b619e821f55388e1dbde3fff91b978273dbd2c6", - "0x35da6ae783f5551e7db1afab49ba65064b9d498c90b020efbfd8d3bde4d9149b", - "0x79ca7bb0eaaaadf841b7c439347c8dd3c25eeebe59184cde665774fffdcd9d83", - "0x7e8fe47fffdcc9497c04c84db14ac49876bf67f343e1a86d932fd82a34fb03d2", - "0xf04393e39f1c99b43526b1cf831777bf45cb5bed023ffe01ce649aced0755406", - "0x119f7202cb5e5f6418744e3548577ea718d0cfc4af84ca2ba163932e79a74dba", - "0xe943792863c593b9d12ba8362ac3949f3f4d956a0ced7d36db39d08d0d6554fb", - "0x89374b8ba8638b278f957dde6caa5854e615e95c56f817b4b4d5d8b7578bcacd", - "0x5beaee31eddaaa076512f20314d86c022cb4343960c1a124a14c09d346ab1b49", - "0xe68cf25266b943db13b5d99c978d9a959a52a63e179b45b38abe3b75b1940dd0", - "0xd046209b2ac88f4a900023f47a3965e9621943365bc67398ee83d8e7f5bb9392", - "0x9c2129baf9e5d8ec70aa3d7fd749ecdf2a6a8176e5507e2b63cf435db7969106", - "0xe54d9583e0d28492f2a55a5616e1d116036ff5c79ef18d75f84330cfbc5a94c5", - "0x217bf1f6b520b06cd61fe846ae6238f07e2ce5b164cd0afcd300a072438d35d1", - "0x38c5656521ab8f20c1e3d76b16c1907c6f085d7483e65c677d5772c42f733196", - "0xa41794dac6ba96bf22822c510df1a6185f0091c42bb5f3d42ee52a3b0e819706", - "0x7a35c8be930d2cb2714a313527d0e7adef99ef4769a0923df79e4da0c7735fe7", - "0x641c1160852152427f30b1aa357b38e8d324383e4691ef2341aad1a804bc6ea2", - "0xfbaee404480be652ce473ce8373dc1ee4f0115ef3428965076308f4030663f7e", - "0x40c26cddaddcde3306faaaa204a7f04868701b0b257a69a0d99bd89d6d8b0af8", - "0x72de7931dc0fd19b44424f402956d53e640308d8161fcad541a6298c4e176a30", - "0x66e6aa59bf00b9816cbfa7f890af9982533786c0f79c410aaa6b4584a4fda270", - "0x6fb2113654b31d029496fac61ac915d6f6cf51da90e70a34afd72e8b404f8225", - "0xbb79f6186b2a12597e9ba6f96282c581391bcfa71c74d14d945ce47f5f630a64", - "0x18ef3a7a66c4287f250ae9310fe19c5331ad9b8078417c601dbe38a5f0fb151f", - "0xf5a098a71b8520b687d9f1901ee49d2e4930ac60b8e7d86bbef467cdfcb17600", - "0x295f0734697e04b2ddd7eba80401340e6f1ffb92ffdb4c419b21dfe1743d9c94", - "0x46ff4895f55e08564a01019056b0b8de3a125c281fb73c8d83eb33d4289721f7", - "0xce3b9b708997480c042a02c7c7b7743eeadc948b8d8479d39a561a2447026137", - "0x754977681746a986f52c71baec741978357a29fa85bf450085f048c919f90b8a", - "0xeb57ec1308b1a5df2d2030b42161a1614f0793637c39803951366cbfb47aacf2", - "0x4415343da1a3844f15e5760837e98d3429fded7bc33b994ef40937745bffbb3b", - "0x8518da414093c6dc7e967501e48c6f0f851c5db9fb9a766592be80bc92356a71", - "0x4b4336daf2468eb8268d05f15aebb687b0a93e332967af722c849dabdf8c8983", - "0x9744bd3239db2321672d3fad68813855cd3fbe242e8ef36055242fc38ccb46d3", - "0x83fd1838bf22241cd133ec22143e73f9ab6cc5d60679f069a5ecd8e1a349dfdc", - "0x5a49226a79fe77472836dbb1ebc3438b84913042976d50d420c61e59fca2e895", - "0x1ed763438ad1e3928fa0ce385e38bd686041062c28afe1ab41820ce1f3866fbf", - "0xe052728bdf265d0ee32484db15e1ca727bb138726d728d1b4ca192c0603b8f13", - "0xc80890e61f7f53b78ee423c1b9722af2b6dfdbbbad942a3108eb313a06da160d", - "0xf295b732773ec1a19577ca63bc1dbf6477b252cb86afd562ab95000aa9f27a5c", - "0x32d1c01805a2139bd8754c20ec9ebcb7bec07d2cb77e9ecca6960ebbd7f630fd", - "0x856165ce956f4995e1135eabf21fd9c9a3d1e8ad0acdf654dff5e08f27d74b40", - "0x27574b2df854573a4d349745a137df0f16ce959e6bf7d2f9d5e35a8f81393f89", - "0x8f473f340bc991cf773664e842168192a591f81d6878b8bafcb3a85e9853d670", - "0x634b934693704cbc13397f9e5dd40c290c1993ba21ba072061f67d8419374fe7", - "0x9e368b89eb53fa0c6957bd212caee6fb83cb3c0f3f5e2d7bf0d5e6d40c52f1be", - "0x666ed8a2afd6e3592ca5dc9875364d79ad998a155cc1be9f79b8531ec47be04b", - "0xcc5a705fc30d157b449fbca19f4c3fd090752f01a25c79398e4db09e5d608e36", - "0xac46b4e5fec1a5420e4225d0a06d1835878e99d608ee7dc664f0ed02aa969a26", - "0x75fd6803ea7ef4b76b2efa5d759a18b389808be7c77bd07855704062a409486a", - "0x4eac0f01ce006b9caf205d9d69ea4b7f2588c35d0d4391cd28eb2874d193060d", - "0xc9d114846a34430d25c3ee2787f249fb5d5c48927b0b9088b51a157d4070f1ed", - "0xf855abfa802a2218c6cf6ee9b83e460a10b99d9e4bb00caf401fd255e8ea84b1", - "0x745eaa0ab1a88ab969adbe465cbfe083cd6d9a0e16388afd55a078d319199c1c", - "0xd1385cceb4e842335fd43a11679a1651f5839624d6de72a6fcf62a701aeef71f", - "0x8ca6643f362f14de97c52daedebe7b534c3f9848e47dfbc74ff35ea22eb34509", - "0xa3e33679cbb620d2423ad0cf7ca0fa2392bfcabb3523e43a60768034b435671a", - "0xbaeef325583ddd0d70225158c339a39cae656394d8838f7366abe1e6fa92fd83", - "0x0fd99fd738d3ded6ca70051989b30e5b5fb4885e3250e3cacf13c8fe1a617f70", - "0xaa70c56b85627949399f2c6ce910b901057e27dbb3376e2ac97f5a21eb336452", - "0x70860c214c0902bebb4d2b63e56de710f3f64197fab1db24a55bfa76781be7b0", - "0x1220df73d96074db0b6c565126b1d1f34fe9aa37ea915463e3265610d92e7cef", - "0x30b5f6badd7a1f14f328dcbf4719a25a53c88121a7954b1bf86bdd32ebc10bae", - "0xb3740510fefdf78178071e675e983f50c697bf425329b6fb3d67897cb9abd956", - "0xbd3e1c3a296b038b039944258cc7d9fadd16e9880da82e950dbf0aa9eae1b661", - "0xd10c706488a87c66f225532092138f5da46a66ce2f2f033506474df57c4f6251", - "0x1eb08842fedec4305541a174b5f2f3a1648b51764a8a5a68abb3c3c309ee98e7", - "0x17ea3c35342139775b39c97b8ba3626a9db11be861b201ac3ce65077e4465510", - "0x2f2ad51f712bda042707f5546ae2a4780d8892092babd629100890e4b32485e6", - "0x3699482aca1e43c46ac13b28cddfb7d2e04fa66322b127b1e33e35a14c1ffc59", - "0x1a16b64e41bf3d0cb59318dd8a9860721f4165e1ad4794bbf5049a91ebe8e482", - "0xb0d19db2493f48c4899c88f5d3b4beaac17246ce12c3c3875db8ee3014324b8f", - "0x4a1563d90acfc44fc636c2d65b0064cdb066e5ecb96617f8537f42ebde87eb2d", - "0xa9b3aacf11bb1765cb1f8f5a0059a8620d81833f351dda8d070abcd8d31cc9e4", - "0x553bc48ef25bb01f179b94ee681eb3fe01cade86733cc2a329f73e9225323239", - "0x7f69a7ea675555481f5b48a4f257fc053000cbf11ddca208cdcd3e50b5a2c30b", - "0xf52022fd47313165f2155652d0df83f1144dc466828617fd66ea72e47dc45e28", - "0xb77889379380a01dd6297254d1aeda969ff8f77db141b4df6235b95a850d4fd2", - "0x017c341b5c24a304fc401abf7c4e2e35d1814549d31cc7a7e935437df5e4a0d8", - "0xe07f6dd48974e7eae5bfc5d61419f43cbcee5da15a5cb3562cbbcdb27109c725", - "0xf95c4ff89df473cd0620050518ad21437b3f68ad7ea1f5d80221b5c279d52a05", - "0x09fe043efac912c5ebe8b936ca7a0bbe0878e75a6397048628d0859788488664", - "0x821a1b9fc32182d57edeeeaa0c3e2756bdf40238f6172df71bb570b71ccbaf31", - "0xd550f297c4ab333e2348da72410d5e228ede1054d97619ec3f8d3daabb26cd5b", - "0x968ee9e7837c7f4db9eb845c0cf81e7df775dee47ffb9a78aadbd29749500adb", - "0x9eae40666da91873a377751549e72001b02fcd908104a8a8409920752b870015", - "0x4fb1d2641fa31caba1faed883f8798079010d04630dfa1b4168b0cca1d71fd04", - "0x4a222181b4a19b58a26d2da292e4b47a912c18b96ec276f1cab4cfd33ce17acf", - "0xa2b65494badf68a52576c151fb20ede37b03bd08b6b5be7c59667da48da31701", - "0xca9523d3c6b00be58ec473cb663263939807a4718975acbe4e818d93f5563354", - "0xae67a66d295c82e30b6af1c2175c6d4682c545d1d99f148569e0852915af9d2c", - "0x4cbb8e4c46ffb937beed22468ec09ea68d065262d4126b5f603ff4580d4f06f4", - "0x89d56e23737196666e3b11067f17489ea385293b6510e34343601e5eea536154", - "0x59656043c6c15d02709adbd4b374fd72d429494fb0fbb2d30dc50b45e832f6b3", - "0xe6ccb1c41796a8f25627f1c581b49609bfc0b4618e7c6b56e4ce60ef2e99723e", - "0x87188b1bc21774d9a6fdbf3bb31a40ce50ed6ad04f2c8bb4f68ba5b4bb0db85d", - "0xbcd37880bfaff5fbac65abd7ac269eb91fcacd32a718a727c1f451712975b2df", - "0xd356c7aee30f9a046f13081bf8cf7bd5cdef7dcdcea98ce72b8fef1bc5e18de0", - "0xbb58b6798bb9f141f4a2cf078ddb228e120e0bdb921238a4f55fb5d06d62d949", - "0x0ea0138e4e061b8c7a26235aecc4106b084f2f0a225855d01e0a0e535128f147", - "0xd0509b0e82ec1a686ee4ec2d234e86c2351a4da629d0dd4fa63ea8acb5c75615", - "0xc1dcd1f056f5f091761816a586efc14223c16eb111373fe09340a10bca313646", - "0xf8603b03f239bee22d6080fd4dff7247f3c4c5b840fe6550d726f9dea89d23a2", - "0x11aaf239138e5a91a023ad33b925051a7bef3a047ded716358a9ea37fcdfcf11", - "0xaf5fb28c6363585f0a9e6e07b1ca8abe25a7377c419e92e941fecb988bdd2bdb", - "0x97e6612b804b56899a6352721946f731307ff10ef3a3374902246b79cfe2a39e", - "0x1a188d5c06ce92cb047fe44b365134690d8b0f9d48bdb7c7d0b2144551f879ce", - "0x08326e6d088fb427d567e5f48f9bf2723273194476ab7b1f3fdbd1173da2934a", - "0x5d41ee7fc86758eaeaf7d2f89e129368c87d489833af34bdf6468d97aca71daf", - "0x6276b413f2429de12acc3891e0d6d8d6f84a0222076968ddcd1510c7e4f6360f", - "0x5179b0d269ac7822edd60c2433e14d0ca080e0cc69ca25160f2815b7a9dfced4", - "0x682a7c8e055d651718b96381a44623d3c0cd5482d5abdeb40d5240a662892721", - "0xb0378542ae8eca6b4c62e06bef747cf878ddc3fa02e65a6d2058b59b7346ce88", - "0x8d9f94b18f733b111c595d078ba1b39ea5f497493c0764946b7dc56eeb5a9cf8", - "0x3672c07d311f84f8cc7d3d455dd06e8329a0674158083c69b6947444d844cf4b", - "0x167d0eb0384565323dccba9faaf5afdf8ee69002f00cd865fbc218c3ec5c2f96", - "0x14a307b41d547659a9f9ad0cc99997acd148a0c93a35cb68d6b05380e15ff692", - "0x8ada7de0c892e08e0d77f4df240477611721555e10e57e5ce88f635baa96b1b8", - "0xb2ea07f4d247acd95b4c1bb3fb511100078ca8dbda6a986c5bd57baa45af8c5e", - "0xe7ca9d79e07576fedfcbdb57b33cadf91ae88eed90e49db4fce73ec6307e07e8", - "0xb29e9e28d2d1cf7192b228e0fa47b3164758a595a425493799a6e15c64197ff1", - "0x27108b3a76a21ca696f0e4a8cd9a3088d8f4e9aff87699d6a5f24ac599ce2c57", - "0x07d8bd50d0fd5072d93bb8bf577eab11abc000a7f82e7bc610b57d37d841a355", - "0xda6a6792b382a199336cf02e21941ddc692d37cd9d140313bb991a61e106bc39", - "0xdba10b67be085101d9e64fefaa961c2fb7ce88a8755600c11f36b639bcad5a6b", - "0x89d5fab1659e4260e1b900a051a6388eaffdb3d51c3320a275d8734cf5760f9d", - "0x11e25965923214834c02f7decb81d5ddfabf2b7dae609dcca8ebce3bc521edef", - "0x07ef19ee3a02c7d6fbabbbd446b93a2d6157a130c72a2e70fa464dd22090072d", - "0xc2d114d1d7c92230fda4961e566d6bbf79c59d5f6d834659d0ce541988246e9b", - "0xa806ae811f29b017ef1ab204ea2690cdc0b092fb44ff902d2a2eae98fca66144", - "0xc5d53fc3c5250443fce19ef19e7d3f8ed2846877334e2c9c6fbf6efbec646197", - "0x7638f3a6807181c76c2eac2f5d4121f8ff7fd9af43cd05c761229001f64426e9", - "0xfffa2fe996dde2034f6655108aad0d9b3c203cc165203d2e09912211b0ea45d9", - "0x7ad6d2fe456d57c95342ae28757e73ce3d82b780dc003f29ab49c1ed40904b95", - "0x0594f6bae93b268aec2cf274e02eaa31c050f9e5c83c1dfa0f57b45a92aa6429", - "0x390fb08a7f18f5e4b968ad5d8ea80b5344487c493797c4f244e78e40da3eff6d", - "0xaaa73882ad2e8871bb226de36ffb89ddb4edc83dbc03203adc30f240ccae0a1d", - "0xcb4f1aa82966978efb447b00adbb73bb02966991de7198b0348ab9e1d1263346", - "0xb6b4b5be9659ba7d846cff73a90ef523eb90debb01c09c16cacb7f12ae54d89c", - "0x63f763356f684e6636f3c0d756c04f431014124ab22ea6ecc3b4dc9f19f2798b", - "0xa540c05e13ee03659e7f4793913b17b8223a57e2a06955471abbff55d498d192", - "0xb495ba5f56bb27d3c3474b193d85bd940fb6817185a1e3fece930f95f7e8361e", - "0xec15c20e65bc42edae809d6482b9ff9833e1da3b8356dd85cc859c6cdbc9c12e", - "0x5d3c94aad26e00ba29f32b74f3ad1f98d37417d8e6ffd463aad71e94c2fa5af3", - "0x2625d4e56a57e21806600454a2f302aff282502219bae68bc46cfae2c124367e", - "0xb069c1ed8c1bb38e4e3f7c9b341acdaad8325ca730896f8aecf61cb90caeedac", - "0xa96a8794f83e8be206609673adb252ff36c73fb4b0d4fede4578a56948d7b730", - "0xa67c8fcd63ec561b1ea81a7c33a099ea1ae1df4763717bfc47ec373e29acccd0", - "0x0636616d377f1cc6e0d137dc540d8c1f4524b39c4d06c55fed4f97c5b8e84fae", - "0x72e9ef9eb6e09180f9138bded4cea00d4b498a678345a86b70660f965385ddb4", - "0xbc3934b7bce3c55baac4ca784e71647940fe55644015607a9ce7fab0271c11d0", - "0xdd342fde86e1eabc6454dc64855ea302ac867d6428894e864c44c0de96cfae75", - "0xead66979a3fd9591de9a53d9c6b72b2196e1194bf41570053086bff526101b27", - "0x6188160f02cb74a611ab553aabbdef66dacc06e066dc03a9b2d2fbe535a9638e", - "0x83f28a56f6024056ff8d1721e15a6e64b974b9eccee06b173d60317de96d1025", - "0xfbae5724ebff4fe9f795c9ffc082bafcc1cafadbd87c1c7f41d8a97dd7c57ee7", - "0x66a41f7b13f43920dc32e4331e032c25b40421ac9b76d0fafa473a6903c140ba", - "0x4543e01ac5f747fbb1dafe627833f6b1f7876286fa09e57f9ce4cc0dd90e3286", - "0xa9df713c6914563663a319e911a2345cd14093b6a06612217a474ee83113d1c7", - "0x171785288cad15c71818ad96b7d70aa08d245f27b681945a460fc9150436260b", - "0x45213365acd35d54c504bc05c94edc435601c3fb79616827ade4bef8f6146966", - "0x7b68dda953680a8489afcbee464c57883bb1dba89498a156085e964c0126daa6", - "0x56b9c263ec26fbcfcdc8aca55afd0f108fad308d97d9f1b4ecae25648a119969", - "0xb4a617718b2840e7304084458ed3d31472d1b17943524506b87ba373ae611e64", - "0xee206776b921a0b17f7e66a46d3f46bc59efd3a3d416b9baed26146392b13f2d", - "0x54c16e665f2a06737566a16e4e8d27f1c74bb86e4f515eff33b599d256bea030", - "0x9d3aa984d3593a67ecad729e9d9fabde7e083201c79248dd2b877430f32970a6", - "0x560c8421e918623e2e9efabebbefa77ef47cf2bfb728069a996e493b8de78648", - "0xc2436d5acfa0652ed88cfd6ec03644fa57892124031bd81c769b1260536641f4", - "0xcb5b68284216400fd63fb771dda5f0549b09543ebc2e412f715087db4ae2ca09", - "0xf362505d802d231bb749367d0393c76591c4ade3dd04bf0724ef661f21a24ad9", - "0xe6dd045892e791f52e389fd460ef342af231d2fa9a887167d8ebd099dd4c4829", - "0xaf8144ffe03357b30b52e9bb43221cd5180915338a41dea010d5e2069e9bcbb7", - "0x3b7647787ec9f714bd054673f2372083ca7e0de1538fd12119df6b2b5f72e2e3", - "0x632a04950b5ad2626701a0b0937116e128cd26a36725abcb40c1b847b1fc22eb", - "0xcc132fe637af129e51216fe39cfbe3fa2ea1ef493f9df625383d72165082026e", - "0x3f1af50536229e2c6b19da6e3aa711c0563dddd07e004b6cb7fbea915e3b2f96", - "0xe63a35f258460a52f644ae126adbc97eb267b1ec7bb40b8913ac95637cdc0bd7", - "0x771fc4006b7495f302d8d59d62d4f348701512465c7bcf483288b4a3cf1df544", - "0x00686653ddd2aa48e2982c26217a7f1428cb8df6eafbda49f44b9bceb5282ebd", - "0xf5d2a69a5c1700170ccf4820e7787057a0bb410e2011a835953558e69b3593c6", - "0x6e8c179171ff913dbb36bccfd0e37094d7684be3b3b550b95451de9a2573a337", - "0x21d0f292d3ace367c98d3879515f860687f9a1ddd3f736e9329b10b9566a5314", - "0x9a6723877470597e1c846f0fb1bb881ccfd16784e5b97f7ced6a858bde277d63", - "0x2379e99e79b024a882b95dd020732d620cde340eddc17e506d05a1c86b4eb953", - "0xc2061dcdfe6b0440dbb0b51e0165c02064ae544f5dbfe2fb6461c426982dbf38", - "0x63bff10713da0453a6672d489dded72ccf4526ab6c42d6fa8e94a7d1c2e83cdc", - "0x9b999c4c7e0ab1e6c2e4dcf90b08dc27074ff9c0e4e65e4760a314611cac06cc", - "0x338dd4c1a4bb139a2d7bf1fc5cbf4a5e6a0509f9883ed48989cc4cda508ca92f", - "0xed1c0c0a31e7d387e367d2578d9526adf0e7a95ba8bb78c917ec19e333195fc7", - "0xdefb920d6c97fd9deb9e253bdb0c47e973c10a6ea2e54736907abf2ff87451f1", - "0x2f4356e08d091074eee77a08f8151ca1cfca1b9c3fc0fe3424ec7e282c135c39", - "0xed00aeabd96140d2058352c5b54904033dcce4d7e674eeb70f89b36d3a6d2b82", - "0x0bf77f382f84de47f5d701ea8ad1162853f8fa05474a54ff5a742118a4aedfdd", - "0x772d24608a38fd3bca25493ed12821ed7a99eb6a79fae2e8f8fa59874c2cb1e0", - "0xc593c4ad7f4799665944170c88709d67b32479f0f36e82b0405745984697fad1", - "0xaa69e889ebd6fb54ecbc137487f6e65f9084d1586a2d4d561b03d707e15a4cfb", - "0x388d9dd700717aa8c19afb6e6ad6ed322271199ec9f4ba5795e612ba466a7a62", - "0x68df4c472e669a2477bd123a135d3e1e9fc1454ef9c4001b75041037910c6e0b", - "0x0f71b9f338fbdab556c5e33603f29c011f9dd3c00038e7adba9da28fa606e3e7", - "0x246550ae6ad91f25dc504667e98c12f076fdfc405382aa2af86708e28f011f37", - "0xc8e8f6e387ff32fc1a290bb5882fa4f56bccc716392fb8985cdc40a6f8145918", - "0xde56c970cc97055f75b49be9359cbcc1e815e1b771c51095872aa5538548d4af", - "0x011a5479a5192cb0c5cf2a2e58680ed771ff7d0d3128d1e4e58c7ee8684c12f1", - "0x6b975fe3351ef01d8e88e16ee96aadcf28aea0730eaf3a7d382d4c5b6ecc3cf4", - "0x66e8a35a06eedd293c10a61f79c00c2da418d372d7a41923b49aa269ed90f187", - "0x1ab5924225ec646903e2cc3befa65ed480e07e4bfc7b23a8112e69a898514940", - "0x42aae89f47915704db5614d2427bafe17d4c89f3b2f9a54af75788b0a465b581", - "0x6116b3cf781b5399ff85b53cdb73c8a691768b68691ce6b28f1e3814ceb67e29", - "0x789e62df669a8accf7fced4a94c4af70b1f99105d2fd46d1e7852737408696fd", - "0xf0e0efb701bd33a9cf46285439498ea610fb9fd7e497fc67a12076aae786c858", - "0x4b37c504b97bac7e683060f6bd731675c9a425dd1fdef61f49098fdc3a20d5ab", - "0x10f0cc3ea407f13c912a02f28e9a3175565d3fe3512e21ebe75c419282e609b8", - "0x48e24dbab06428401206805fcf50e533e596ac7f06dcc1ca78145306957ea2d9", - "0x43fc043bfaf30e479b15099995bbdd637678a7545318a8506257eaede34ad5c3", - "0x1ce6e0293bd8a48a6d65894ad0aa814bb1e220f88271d0478a1d35fdccc4368e", - "0x8798a23cc8be0306074e7da374760dd95ed6b3e85f7d3e1b7e08a9403738c7c9", - "0x05a534efd715fbdecfeb19391efb948fba524fdeb7fe5415379328cb92ee0e7a", - "0x8f13ed4eb277b6d570428a320918e2cbf309252a6c677dd63afbd777170cd766", - "0xd95418ce8a701035ca94cc2fcb44161cd1669e75d2f1912103ca52f83433c92f", - "0x681be568f2b05e562134aa60f5a8173cd5b49ac27645aaf3d742b11ae60cda78", - "0x0ead88dd38d9b21c7551fa6927e65551e491f93e17a23f05cf5ef49aff4424f8", - "0xde4fc8cd734fd01fe291c39ed36a3b4a51f448527d90e4bb0eee6a06dde0b976", - "0x95598d98d26fe0fc0b1e3b703e649386dfa52f892b176a862791c49ff1b8ee87", - "0xcc756753a08234dad53004649a1cbcb00a4b5582355bc072569225f8a49c1f2c", - "0x957aef285d8a880b736c4ea2f14d6274dde065ccc8e9c2ff674477f53d4a44a9", - "0xba94da4c4e497aeffbd0d0a2aeadc9e5084ef32528197dcc89c2ed9cde555c6b", - "0xd212db212c103136ee2e69a44e2ad8d3bcb3155170de7896cb68756aa546d5ed", - "0xdc61234e477321b6e7269d24b8c2b8411c7d94260961e88f5e897e534f82f8f0", - "0xdae46238c68e67e1dfded286230787eef026c98fadf9d29be98e0c3b74bd9541", - "0xdbdc6cf4b55526560ce2d4b47fff4a63b46a6f91d3f7af8711c0c2d5fe7a3a16", - "0x8498bb5772d8ec37456aa75752b5efcb92262fd3dc67a74ad62b0f9ea2a34bd1", - "0x4caf29e606a840a3f2678b145d28a29de65e4db25b5e6a7d407745a11afd9e0e", - "0xa422bacad4b0fc07ac3e4917fb4d86e40575b6ee59b4dc1aa22c550ddaaa4072", - "0x09ef8f935683b1c33a49158fca5d9e8c7521da28991ecc7b4a43d15a7f3e8179", - "0x868e02a322001c542de6b8874ae28c6b242d008980651fc8ec165dc26d1325f6", - "0x4ac2ee1b915a6a3fb22c031bf4b869785bb07af260d4aab107e4a2abf58bada5", - "0x9906fe76b1cb5187dab28a1e5b4ba5e3405305e937f1c88c6876ad53ec1b6c1b", - "0x9d6a2109384f7c9dd76271506ef0c4702e4385addfa5268e9a934b0bf4522ba2", - "0x899eb72af76569530958ec1f8725567a26ade27a89294b16ef4f87e8f12c051f", - "0xbbb2ed5029c368ce8cb34e52f36ddd99c2486b026094a9f935a04b106e1133cd", - "0x7835cacb5e7d39db682b8b16acf95504ae70ad08c64f205ba45b6f43998be66d", - "0x79c9dec734826ec7c43b8d37cd56f2a8886474b71244c0b913eeb652e2588b4c", - "0x574ea94ecebcdb9420c5d576a2bf4220b7cf8362ae7f92a0f5268792bb49880a", - "0xffdfe73b6b47fcfaf6b26c12956f96cb80505bdcfce5302d67683c5fd62197c8", - "0xd0cd4977c4fb430f09cd338f5df66e67a7fabce709fcec371ae13819a375b49b", - "0x6eafe501f49d14d093691c5f7948b53b59f38a80624440bcafa0d0308282401a", - "0x2b7ac65ed137696fc2ee8dbd1cb6a5fc9de6cee9748617ed436fffae6f0d9eed", - "0x0329936be953a4850cd53d84333e8f801906f9d5f17068faf8d2c99ed29308fe", - "0xf09ad47fe7e45c9e10266bfc452fa8e15ee1de2842502af44d08043899d39545", - "0x99166364cffd02a748be5a0a7de4590e5238b94640f68ea7c07bb0d9e0473877", - "0x8d37c6a259ac724cc67e8cad78c463d3505d11a14a7ffb30594918307f53deb8", - "0xcebfc571f69509d40dc3f15e872fcb72929245e8e66808f9cb7ae52e1c847214", - "0x1ac22d558b9e4a82008360050940ff6516a0f942810eae028fa4dd087d16d66c", - "0x8b2d70b5463cf663b2bfcf04811f6a29425de37d0fe4ddd64a5420c557a9779a", - "0x192a7331749e24299fa79d33b3c3bbba166d5bc9b955a3c79cba28f1a39f92e9", - "0x500bdd246d9d9a3376e9fef8d02d30d7b0a0950a6714a1310bd4de624b06e7dc", - "0x444e8465fecde8bdd1b53efaf118b3251bd4f2a65296383bbf25550fff8d36dd", - "0x63cd477c06e10cd5f645b93af2368cd151707051ba1e6d921d386b867efd76f6", - "0x6ec5468c3b201931725dab24ed6e72f89cac5dbe49a25041458c25d0d5966785", - "0x2b03d1bd439513feeef7697d4a58e21c5715e863e5d27a748153419a604d9fa5", - "0xdcf64485fe42fb0b483b81124758b61ba27b3f7d6561d449e17febeda6a01cc6", - "0xb557797848147314de5b34965c8756d3e797775edf51be2814b5545603b1f659", - "0xb3f1dbffdf4320e5fec0725cea7b3c98c8dcbccde0f1e032696e0c14d0bea7bd", - "0x3ffe56934a6f659f59aa128ec13c2db95a2b0df18d1a37840db869e914fdd361", - "0x14a51cd6559a2a6f12e903179547e3b76a10b339e978d7aba19222d7a8995e39", - "0xf55f41fc193413eb8dea30afb910f46536c4d2e0087101cc7a1d1945bf3f9d82", - "0x9afdc6e8253c623ff633f4efdbb3109d1f81468222a7de77fbf216c4b2d46734", - "0x2bfcb3ed3c68ac68546cb704695a479a0c15c45047e98b027a43be8c3756da80", - "0x65675b82c05d41a86fb8ddab438dcd0973e7d1044044542d36641ae387e6f9ef", - "0xe56fdcc41be235203967f4ede3bce76cb0f8e078e68ed9bf6e867bd695864c79", - "0xd42dab74de64242fb5eef9b4c239e4d5bde4c58d838c07dc728b3613c929deb4", - "0x8d52b0dc5de4452809aa787e83f76a2a650e7675aefdcc89b8e6ff34114c2a51", - "0xca438b0b85381752e1a066e5235e0d9838fcb375aabaef6e859888018a4557a2", - "0xdfab1e3a231c959d8d154f5509a167272cb647bc368413c74e411b7f35ad32da", - "0xae1d00fd3cd778188bd5df7627b2a02c69a612873bac8df6ba96816be0929b08", - "0x2dbec9851e37b9a54f0cbbdef72cde39a4368a5bfa0537b96d7ce584c5589292", - "0xfe67d721575913df5f0c69ad9e362462db169beb8f7277e15a09861817f0ae47", - "0x7d6b8267bcaede21401ebf6841f7e95a80136c41f5876a680f28e94fa89bd673", - "0xecbb62951ceeb9b49792afdf3323bd8607c8e0c019983babd997cd3df1f2dfe0", - "0x6b6a945705b609715f9e6e222e0e8145118bf97d29f3f331aac194a054a99c9c", - "0x56a7c6b7d616e3806452d6e8a2540f94410ef10c8b57f7f21cdc2df799bb0a02", - "0x73f6f889fe9d8276f2942cfccd3781e8e326e29ccd033a8273041451c9065ef4", - "0xec84330677c2311e85d76dffc692ed3e2d194e90fef2423609c53afe03b10a2f", - "0xa63916671ed57cfc053a4595a854b26aa31a84e775fd3a9d3e3b4763b6f23625", - "0x44e3a21e4b5b1ef0636e0e4e4775b16d4722838c3eac7062e963d46bc2946d92", - "0x910eb99fbd1e3afc013a5f50b475fb324d20c7aad82c602b8e9c21c7bb914d26", - "0xe66fe50308eae671e265d6985c346cb23594746b2c7470a0d3bc8018f3e89abb", - "0x68c0706f4a903432bc423c7b11ed2fd685b0c11cfcc9c7da4b17ea9fe77ea628", - "0x2eadf540de899a1b71827e8cecd8efe280b6f5a9e96cbd3fbdca10ecfa8c18af", - "0xb67b79aee1d96e626a92864a92d0e1536e4c79d1f7980c83ef53506c3795d4c5", - "0xf8b79fa4dcc8b6943c76a1a48ccedcabffe2a309f38682bc7dcfb6cc71900dbd", - "0xaba4ea033adf6944ecec4d49b886d5cf8be86576a2c30a9609292cb087bf2f30", - "0xa38e14dc7b081b096b93a5588e13c18156dfe90a1b0c3f294568f8fb43a1679b", - "0x796373232dc5595162f632d5c169ee186c48fe7c33be7e9d69af68b836e38399", - "0x612c5be74f0bc72c953546a6a2f70d0e7c05bb3e9806218867ebc29924b7e9f5", - "0x9fad004bd232cd89ce84777a1480893821a29718e464cdb662c5dd9c5a276c6e", - "0x4c0a8776183994e83cdd7816ae3dbff33da6754f6a4dd16405d7c44823266c5e", - "0xbeef52ba26b24e9c34a630fb5bceaf97f5d56577855b409bc8b27e5e25b3b870", - "0x020fe496c09044dffdeaccc2a90ded49031829cf75a747c7a27aca06f489283b", - "0xbcd6208f1eb03d16f20fe1cc19fa2992d1e0def9ba1e3c3e95f26a413153a7a6", - "0x45c09c2c26bf73116b2bfb8762d7837815d2ffda196517b7fe9ed23165b49eb6", - "0x99314aaff566a187f89b9634bb9d28325bd368e29b7a42e73653731a1fa42522", - "0x519db26bae12d9b532d541db13dd74c1e19b6390029f3091e99b76f85e74e33f", - "0xd3c0b7413873d883efdf1c42e0de66cd78a9c0a8b614dd88a2e84947a1bd0869", - "0xc087342fc0e8df4176bea79dae4d6b4f33ca9b398fbd357c877c7680ae39d9f0", - "0xce5714dc42019277e8170fa097ab567ccd88cd4e24ce511fa6e93f85ed8c3302", - "0x68e1064b5077861bd9839539a5529a63bc0e4df68e875e6197f6fc9616fc1c2a", - "0xa898f156e8de5f588480a79ee5448f6a1c3f482cbaed2ac2659459cfce08ae34", - "0xcdd2f9e50fbb0eea3058d3341cbe39a7274cdcb3f10df0cb5803fe1bdeba3713", - "0x7eee48ac933e7cafa8cabd7b2868d92f27b0210bc0810e5a1337ea32daf3ab8f", - "0x99e2e041e1b178b8538594e356ac7c7133f24cba67083192dd2bc30fdb3d0d69", - "0xa4f4e1777b831cd05440067982b48aca3b89b9c2b19ab82c788be5301856f7c4", - "0xa44b761db0a2a19eaa9d2086a594290eb48f8fddc3e9209f3ed8c82de35d5fe9", - "0x189fb24a706ede989db9a587e205b66cc4e2ca5329c4726f5cfc72dc0df4563b", - "0x9104e63319bd2ba428a47c170e0a310a67bd90ceab2d232dfacdfb72bee09f0d", - "0x219779e07435f4b4458ea8a5131e796cc79d47a30692798eeabee8c8a47a2405", - "0x2a946612c3dcb2da23fd7696d4d30acc3ec25e292d239f3c01b0923f62ee51c1", - "0x7a244c94d76d458be7acc6c885c357496a77daa119e49a3ae168908bc73bb569", - "0x274139b3f78e5193cf35b7f28439dc4f74e6927a795234a00262175971b99fc6", - "0xd138526ac6cef7792d3dc1993f364f1b0985b9dfa3db1847d785ecb81a70eefe", - "0x1ce8e07f1350000599c342adb2557d8ccf3fa1d4752b6cf2cc71c42fd62a7e8d", - "0xab8f97c1e9a65dcaaac53f799f844d831da02dcbd372b796375115ab19a32eb1", - "0x53a3a62994cb0391e81167207b1a25604f25dc08240666072b0f0eec0311feaf", - "0x786797a4a478d15b758067c82e2ebe1d0ab2240e8db29e050e6765777b2aae3e", - "0xf096ab958bfba2f4aaab3e1bca5bdedf276bec61516ab7602a8a54ec6219920e", - "0x25ae9275d83e34866d66f4896167de7e04aa6fd8070554b11ee847fff73d9e27", - "0x871e675b37b2ebb4f3a7ffeaa0fa6f4a47db92f517b66fda5bea400f13528071", - "0xe706cb07d3f90e7c4f7c9cf09401b9b82a063fec369514247db76efca5e2c640", - "0x0eeab1ee0c30812b9de778016821a933efd94129b13524b9558a74ae84906380", - "0x7f86033772f4b5265042b6ec7f3b14570415db9a148617e63b84331d0decfa25", - "0xd916a6a70300faea19447bde63491ebc21d8447e5a5225f18618cd44d9d25fe2", - "0xe5e632370370812351165ad2d82a6be86e9a2ea0a134cf0b2d92e481a282506f", - "0x48d4ede9a70efe12d9f21bbeccae2857dc5859d4d155da96806cbb392194aed0", - "0x6def1fa1beb67760b1a94ac9da22a7df6a3d3b9722c2e9c2cd503dfb14340c2a", - "0x0b6493b5a5798dd98ebf99f12fe714d11f78eed5800d892f50f6c80d5f9b916a", - "0xce7bd3ceb24946842e452057021e80b7909ab4326fb43725923f5447da7566a7", - "0x3d2bb2934beb966aaff7629a346cdf19c4e3671116d7e202e2fc9be7d1fa4fb3", - "0x07e58703bfd562eaacef11363c7f70b0609ed6d628ee58e06b11122a8254f0ef", - "0x26cc012c66068fa47616f5f1d9bf45751102e99519bc5cbf0b7da14eb0ecb1cc", - "0xcd736566d5d6c8ff5bff349d3a932b94c19f9765193c3e41f70f0345521038bf", - "0x1f400b109e0773845f75f99d107e6146c97172799351597abd435af18b9faa46", - "0x0009b529ec164e1686276b6b1dade0a82f76963c43f27919b193348bf9372bfb", - "0x180b4008aa291f371615cb3e2975b2b29b3db58d2ad61593a52dd9a9bd963319", - "0x86b7aa3798243667c0001cb9a97a7660145b3582fc2232b4625b001e4babe622", - "0x823312d5231a8db9211b141b2483fcb1b6d311e482efff347c9dd17a74c611d0", - "0xcd0e83e63db1c4a6f2638dce68677bea55e9d4b84feaadb1bb085f485318c627", - "0x3f34cb62b347f4930005e39a102d08d506fcf9ee1418c372dc64a70f86b7e02a", - "0xd03e1359280033fe74fff780447b29397894a811859929eefd4d52cf6ca40521", - "0xa6fb9b05db2dfbd6ff4414b5f03633b46f5db77c198e6aaf9ffb366b9bdd3af9", - "0x87af91f40f569df2c64e20accbd3cb7fa21c2cd24a1f9eeb1dea7a39f11ba3f9", - "0x20d35104742d776aee3cfbf6dc1e36a172bfbd2a8ec14f9fd016eea15e480c19", - "0xa388892adcd0c0109f09a3bca25c6d49f2295dac3c61c6d6cca03b8e92d253bd", - "0xc7189645b5cfab9cb71e3d1c671bb439e8c14eb2971bbc21fd5da08158ca07c7", - "0x72f695f9d98843fc4950f8ae78c2bf48c09c92660483bfcf270c2a633f05e852", - "0x866f028434caaf3cbe032ce693c2628295daa219b0462dcd3ae14df71fe746f2", - "0x5d3d16c2f16c48a442e44fcc0a04700c40c1033bb0276a1f27d264ad2fc91b6e", - "0x4bf7678c9db62bf4f8aa92098ff39619b2484f75fae80f6438742c3c5702c652", - "0x8200e4ab04b42c901a2965aa2243976e553c555ecc811ecbdf9bc470ca32351d", - "0x1676a43cfbf10d344c6837d1a139de56085b88acfceb3cbef0056c11ee6cfa28", - "0xfb3ee392b6c300a8be67d4eba8093471c77a6c6ca5682644b16bafb749d9c995", - "0x4887db0505d7f3c7017374a482367ecbe9b69de429d2d0965fc9a4e37093787d", - "0xcc00e39c22808934bc034c2ac322643668711279b300ccc561dd7381bbf094e4", - "0x2d906acbcfae462edd246ce62e07f29e1cc0a0cd23b510b61f4ee523a2061ba8", - "0xe61769fa90b6df16bab14466afc63cb1efcbe46fa54594e8c7c114ece565250b", - "0xae6085d35aac3488d871bee66119d05c889acb428cd5c6a2a673d85a45932ca0", - "0x17c004024e663872c0ba979e00490587977f2237bfd11639c4abe5e4eefd3fc6", - "0xe5ef57a117bec639b4885e6941aea12a6dd96aaa7849f29f000654a2c29c6b7c", - "0x00dee21ac9b8eec2b22982645edf796dd65fe1cc68629bf7f79ba4910b41c8f6", - "0x8c42ca1d5ecd86e445b0c01da6d60202b1371495ff1a3990fa880c43c4681de0", - "0x234e64d7baecc3e4ab3ac0982ee93dd426f8b0313e59d40be4707c40540f0c91", - "0xd7f8b45da51184e9ac15b373991b0c46d48c7cb5776967953e57f9e85f7880b7", - "0x1d895c0700d2db688ce79e987e3b35b5c0d0bf17ea5432cb1db245592054b484", - "0xb12cb54a7f50711f7bfbf03d57c5c1262191019ef9ce69485cdc41d7745411da", - "0x2f54a275e01adc7e6cd5b464f8d033007ef09a0a3ae29f9bdf179ee985d5f29b", - "0xc21039510b8dcbfbacfe8794826b79d3ad3c839287015857d780fb57a1ea4ea6", - "0xb18484c56bf516dba0e6a2b31c0b6f93cd38957a60c588e9e7fb1859d8ad18e8", - "0xbaceef26e6b8a5bdf0a21cda677f71239736a0544bcac5f3d9a90696b8a7b15c", - "0x97838a53f6996d5dff68c3439689d2f87c7e97ea6be519cf8dd70a47b023f2ea", - "0x882be66e5ac63dfa0f5c31789b24f6a25f6c8751ff609f86977dbd0cae890df7", - "0xe462a0b007f8029cc65f40ae1f42abe47f160afaf92da8470990bd94443165c4", - "0x37a46df02258c5965454e0374d08f3650d16f05b083190b787e7d514409daead", - "0x55604327bf00775ed3b2d121acd86563883f597628a76e5f1abc66309fcb09cf", - "0xd893ebd9fad9973e616de074827b3af3a0387fd3b9a7cd4d59f1bf98d8426027", - "0x2e8c05fc5ffede3b58cfbcaf62cdf334357e3786764c715c2a6980f0569aab2d", - "0xa50933e55e80764035403224fef71248bd1bd3c0fa3b40b485113c203ea1197c", - "0xed34b281864aa711320b075dad853fd035aff039490bbf3d029b647bc7ca6943", - "0x0d29603bcdeab05abb491caaab151e0c4fd2e3d7b9dfbb1f3f37d0869ff09862", - "0x49f2318fe7347589b1b0444d98dc79b31ce22225ebd2c463a29bbeb1b65d45e8", - "0x7cd03259ec36ececd895da05e4490770e4a354e0f84a821de440a05562220a0e", - "0x0bceae0593be03526c84e8979522408d01f8b553bb4e18ed9dc81ca62ec058b9", - "0xc4f885819cf0f8a398b59040acab517ab10d3380bd8ac69645ce27836dc19ffd", - "0xd3bbc4fa9b2136118179fe8eb0bd79c113a725bf6cf7c7e4f8b5f59398dc44ab", - "0x73e21d02abd45dc1689e24b9d25141698b683a8add128122ac3e245e23958d70", - "0x4b6814ba380b801a62c4a3d3e8ade70c48cc7e7a5a4d5f6a0a7e8c5d7b8ecaf4", - "0xacce6845fbb4ea44e2b3f81225437c7eda438029557a26419c6d76755cfaa9ca", - "0x8ab24bd5c8ac2081b713634b56f459db67ccd48f833cd9ff170fbf1baa476e3d", - "0x817faf7f5bc035d2c3684ea95ebf27a7c3048e85f0595d4cf8318192b532d2d0", - "0xdb867eba31c6f0b191784bb7ee4858d2db1bf3fec19dedbd08e5fbdd4e1b3559", - "0x4c28527c58ae5e6f29102bc5711d39e25af511bbcb02d9a87f52f76eed517f07", - "0xc0b8bfa43b9544a635ca96d3fafd9747d24680c81af43234dd30b65fb304322d", - "0xe26c80fdcca6e61411fff3991dbc44c4f3725aae057a81770fd8def73f0ce024", - "0x5f044013409beced775746d721dd78b45591e20d3d85dd6c9361aaf47a0ceb65", - "0x71e3284644d22af77474a93e268d0dd265c0c42d94c4ad9fd62430461cf3efb9", - "0xe2487c02ef5a9cd04fcc5544243fb7dfdf90b559bcc8277f7ad6d892753df2f3", - "0x09808d08c0e358c29603f83d201938377a45b543816b079f889c1fbbcb4847f8", - "0xb5f97d9ea4e92b9884d70bd1b0dc301b33690e64f648c770d4f9fc16e3e6fbc7", - "0xe7fdb278d471461a7adf3496eac82bf323a0faf62b2a4d634f56468ede626322", - "0xa9f79b0f2e8e7b8ec5224773f1cb2762078430d8b131a6f22cf7973252212e72", - "0x5cf0e6a30df29b2ad982b1db7283cc4c671488a43602b0d768177af61684124e", - "0x11fd4ff8d42811d05bbde1bb0769cf4cbcd03b6c99048aeee9bd1b608c3927c3", - "0x92b6d6e27443525cc63111623c69b46c3bbfbd9e528d876a6de043d7f82b3a50", - "0xd1a398f4b33acc132e854b49eb51773abf1846cde2dbacff9c4527b466bc8a26", - "0x95628b62aa0fa59b2b49fc6fc7e6fdcc416b59ee5229edd425b1a607e9998153", - "0x82f479a7ab8e6db85296f8cd3df13279ee899e1bd8df95b357ded43d4baffd6a", - "0xd193576f1bd139a319e1493c075e33f317a05308b93ff3ecaf5249c20e025755", - "0x7ad318979fbca17b06a968c11be03713d3d46c8287477723a0c97374f5ce4986", - "0xdd52a80097dbabfb0979368e56fb93087cf9aa1e5e3047faaf6ba475c5d3adfd", - "0x3f54e8d5b1ea24ef7fd8e5df54ab472b1611925df5c8431336ad647687d942e9", - "0x13602b947455a57cec85f485f3b06bef3268ef99f5d0d80ec3278948354dbc78", - "0xb6d186e6caa9662af33cb661605d18cdd96d54a62fddf40a8b59957c95794009", - "0xf26e692ac554a77ca5f56aa4f49dcf03a7b9706f6814f0d8e09007f81d8a79ca", - "0x31fbcf8df989b08262cd60f604edf8149974245f020acdedb10d274f59bf77d2", - "0xcb796442847e9eae7bd397c45394fca256f885c921d9757c3eb3ac6a7c4d21d4", - "0x29643bac94a2c041e6bac56bec1cc46acb340ed5ab34606b2fe088a804a3459e", - "0x4204834ffbd39aefc2a735c2f9ddd312104481866d1e7cf169eaa1d95528085c", - "0x86de4f25fa0c49fd019141a1386cc52e296651684d13679f4f67a814155eb215", - "0xcf32d0cf2c694df53580cfdbec9a6b54eb8e83c7403d3359c61ce85eb5418ce5", - "0xe081edea49229b8f7b276b2e3bdfd2b8ad12afbd071997a0e5443949d1f5fd7b", - "0xd43f8f081c96f2639add57b7d7a112106de124b7d9c504f792cd422358aeb7c5", - "0xec11b96266eb477f0b998ced2832efb936ca3ebc1da4146342627d9657f9d31a", - "0x89927e87d7b5522802f654da80dc70b8a14a3db83a8ba1c0e162d5bdd6327a00", - "0x052526cc801a21f0bc0b145d45be93d500f48127a6fc1970bf10ee2d5aac34ce", - "0x07f53db511f45a428f6508c51fc608730a53e1ab0d425c8b44196507c3288f76", - "0x380ff3fc61929d4297b598c725a1bfdb651e878ef0e26049648a622c126a19da", - "0xeb9b3e7bfc792d6ab85d00d45fee76cc84f81692d5554bee8f1790f027bc615b", - "0x10ef177a4d3610f9105e6b35318f2d12df4f7c248e639999961feda96a5f2f30", - "0xedb17228c2bde8e124c0fa9dd99e9af6bdb920b30e71ce55c3aefe30740ff377", - "0xcc110bc17f21ae92054bf94b3109efa6df3240fd54d7a22a87492590e5fa7c21", - "0xd946e901eed5e8f0ab584258f78e76436f6aeb5c16f49d0bdd5c7b1ecaaf62ea", - "0xc7fa65c5e8c48d4ea354f3900623950a0f6a319572381624258b5cf6b757a4af", - "0x262f129de130f709b4c98a31c208c2edf21b10d005507762dafdadf0195f61ab", - "0xb71ac11bffc2f2085699142bf75c7723624454cc3f3f44390e21c50a43918ed7", - "0xd0fc736551e28fef1816584f4e80fbff2b92dbbef3c6b33de9fff624c9f30050", - "0x423f396ef11a9100a30ad47e0953efad3014797c97b468d68e9da1cbff620ed5", - "0x819259e80f60bbd32cbab7027ff4ec134778f9254bd5c12020dc743b31a4ea49", - "0xe3306484604c7e73f844720524303484126db195e3bfa429feb6189a1685b018", - "0xdf1cc368134b50f3a2cfd8660e1fc8cc27e12f58c979e0416b391c140baea6c1", - "0xbda9fee3730f730df0ffa9c0051ce991d88e9b97106de6429d125b0b477d61ec", - "0x3d2fa3a51f1cc993baf397ae89fd9153e7842ff613e7b96b5e572b5a3558394d", - "0x3ba82a36da3d9732daa74bf593207b49a071cc4db8a1327ae0d5ef9534181697", - "0x19b4b261ddc43476412c8b8c537d9e26014c6c632ba98466003591cc947a5805", - "0x568f44291c13efc908db42d2473bc91ebb16e062e9b4368bcb770a3033d67741", - "0xe5ecad510448855ff0aafb92a8c7aa54aca0fb390bec3c14ad5d2ba200380aec", - "0xa40aa7655c1458b76c04ea5934ae171fb01c72c8c375bb61a0c27b0ebd70f21f", - "0x770ad5107ac47fd983979b016553ca8f340a13e2647b9140e65c980dcf349cff", - "0xfd074cacab08d2d5f113669672632ab0e94e03bfbbe17fc3de27a30e9f0e8327", - "0x2063bf5ce8eed483242157113534b314296deb123cb33083cb0cce04db610c9a", - "0x9dfb8274e842fd3cb7d73506e64adacc39eb12ebd8a972b7101385ac4eb5b12c", - "0x8294c3d4892cb0bcba9acdd31d53af5bfc97daf124f08d903297da8bbb28cdfe", - "0x9dc2d04fe197009f24ebd4a0c95a0b91d4ff0093387b61569af993fa91edb3fa", - "0xe88e256abdc6447b1f141c2fcf2c46721d9717a9fcb302513c93ed6e31b7c11c", - "0xd2ad4ca6091f6ae6c323b6565522c208a839e36958a1675e5e9b48b13068e7c8", - "0xb168169f2643b8cdbec58f3f94d7889af37117a35389726563ac770f5205faab", - "0x09f32b423ca728b8fd04f9872325c0e2a4c9b1eb36fab49b31ae51254c69ebab", - "0x0b47f8f28a3242c9ca705fd11949e648f190053de023366f98e6c736eb2f0de1", - "0x870a8067623b35b5f0146ec95047869357617fe3773a8285a622c18d44963f9f", - "0xd14e05d8f3238294ffd8885c1f1710f64f2d8eb3d3b4e8a921f7f5c94a0a6288", - "0xf9cdef6ffacbea7692e9fef3de1b778bd11399492486dca0209b27bd474eb04a", - "0x5dc41201eaa00957d070c68bb289fc00eb31b7e5fff52f0603d52d27a40abf81", - "0xae3a53054ff4e3e5562795b45777e1e3e82abeed84e2fab748af50aace8bc8e2", - "0x93fd6f9af3b1efd27487477edccd690b19902300a4eebd34cb0d9b2e60b3cccf", - "0xbe475a9dc045e70ac8218e5a65450edf026d70f3f814162251f83a88098245c2", - "0x20566435d247cc1e7d0d81e143c01b6649fa1fd3cd5a9f97738e6045b29460c5", - "0xb37273228fe8b0c1679bb2dab7176ee1282400daddaaeb0db415c716f5dd1f71", - "0x494bb2cea59fc43629b0f8be3fba9ee5b52948c72fd1f1c94d31600756bfb675", - "0xc690eb3d8e65d5efc211def8fe8f198e42c0321000b8998a6ab218d897d593a5", - "0x26821d73690b9d1bdd9594c92b086291474cd365bd41f7de5edc49dfc29c26df", - "0x026a57937338c9e168d254f99dc9dbe3fb41508049ac1a5b6d7df868e2935e6c", - "0x50dc451812556bd69244f3728c6a17e958b2fa125248103942ac94142610bcc7", - "0x0ffe7ea32c3ef43049d8041a16bd3381ba89b1439dc5329e839546aa01a64726", - "0xab1e06f13dbaed341fc9e33ef387ebbe187787ccd8961a47560f7e02617a06db", - "0x8b72166b0d16ebfd9c3156f5972e3778e16b3d7edf3decd4b6efbc779990ca3c", - "0x149de0dcdbe03bf6d0ae9ccc989a074a4cf2e78311ce8cb6dee3856c2a374caa", - "0x42147f5960814dc31cc38b692089e6d1d53b85cc85a69e4cc01954dc61c268a6", - "0x1460ceccff1ac00f3e126383c3102c424b75c2abeb973d0baa8bec8e7bdda692", - "0xdbbbf28a5d25c832c5f625868dea79a481dce880d5145f4119d3e9eb32356a6b", - "0xd8e5b32a88bdb502fbd62888b9906a0c7955ccaaad1ead31636572a07fe7419b", - "0xdbc42abbec7d223666da11767d9862cd1458f91b5bf2f6499da4ae5bff281888", - "0xc3138499753f545de139238bdc8cd4cbad254c6b87bf0eb37dc1fe7a85168e79", - "0x42be700f627bb081543ab289fcd01235bedea5e33a9779d6d14744685f5a652a", - "0x8660e4130c98f6a8024c1b587dd24ebe402126d4d9a2adf610c62bf033b749c5", - "0xdab926bab8c4ff9e492f992b5696e8f7e3ba3ce77e49fe0e2ca36d3efc8791b6", - "0x0e3911bcf379fd57014bee6a1f796b884c62f2392cf6e8ac5a145126e4622b88", - "0xbd52346714664eeb7b4034bc6a54804824bdd40d9e5bdbae9375a302926babe6", - "0x641e58eaeb404f7a40b9c4be686c26721563b310f7624a654185a60374c1512e", - "0xfa07b0f7b970413ae5085f042224861bb1bc5f2f6ad72a44c3681d47a817c0a9", - "0x70cf3fffa7e27f03d5cbb1664bbd0e1315dfc43df76f1b0e3dce494255e54752", - "0x1d5b0118939994aa8be89dc365f909309df84e7c92530aef25d62118b09e0572", - "0x8b34c5a5cd5a42a58bbc60166f3f2a4be7d79057691c708e7a9639c21b6f57c7", - "0x7b149005e7f8378189c70c33c073d897cb07f62ba5ae319088b3be204beea8e4", - "0xf2a41e8feb5d294faca47dd1f7a90f66b7b616addcd179ae60c5f173cd44a85d", - "0xa2875c8e5a226f2cf69f07e19b13a628ef6a8662f3a5de4c9d666ca5ebddb001", - "0x4231ca8bdccd59526900a487608912a4fc0918a6c693250bd67787bc61a9d09b", - "0x2b06301a6372e0fca0da8a15d4e31a08522ecb91efbda58c3e495e2ab7f4fceb", - "0xd0e19f62b07275097b56e7f409cd52826a1dbc0be26eeaae20562420559153dc", - "0xa4ecf1ef04bcc95ba0ed9214e9118129ae5497c37db94dda284dd536b4dd75c9", - "0x3dc87ba482aaac6b59678c899bfb1da9b768e1385e0f8e8574852efeee2db8c0", - "0x07f8df3f6ec63d926c3a76b17ad1750a9ac6c62a8cdffa549440e651f6087178", - "0x96952f8ba7c83d640119868a030cb7397624ef322b2d153aa3843259da5f468c", - "0x08eca2fb4295f069f3fa62849b354a9e10b8a8e9b771cb8d2790b28b7b09d70c", - "0xfd5832f531c8819c0ce9d031434c33eb442578e81cf711e8ba23e9b21d096e13", - "0xfee9a8bae124565c963b65fa47dcf7f0c9b5ef7e778c2d99539b8a04efd04522", - "0xead692739a0723a73dd38b3aa02f93d72b3b6922c2520ea0b74981eaafe7f6a1", - "0x890dd8befeee6c7c7b4942b02a3bf1a9d1b9e1140ecd1c07de570f38b6c323b6", - "0x690343489ed214b9195db6181c42237b7a62fc935a18ca1a5dc883a2045ceae7", - "0x4bdfdc1bef8c19b89344230c0f48841abfeea788a4973c34afff4d2039ce4417", - "0x6ef6a94338d794400f95f8c0b6d5a40df8b56c31e9bd0037bdd7e41234bb32a1", - "0x00b7568bfdf2d4780b8650a49f707752a12fe9a88302622e68f264622877acdc", - "0x83e96e0b864df30b53ae08075acc83f785e9b8b2bc80e8976b1a954f995df012", - "0x664305b610d0b3167dd25210acba7eea291a37a224546a6f6d59aa7b71d16e5f", - "0x3d3a6401ab83eabc2af15a23b9c0e6d123f661b3599c6131d5923a106f562ac8", - "0x7a11833fbc8ce3d9883088649b930238625e6f6136dfa06a00daf8e646cd020c", - "0x112c33932097c4ec4e18f6308b2a6502cbf746605f1e404555dd07703d60ba2d", - "0x9e77cd028749d69caf352a95f75dee842c0d9323e3618afa2927b2aaaf7fc4a8", - "0x7fe0a62bfd04e263b4c67c5808f6231ad6faca7ff0f5bc0c02177034608d6991", - "0xea820d62b423b68da2f8ce345dbb56e2205fdfae1fce261d64acc959fb30cccd", - "0xd8f6367448dec55e8e2e26b5d304d92969abde131d402de313b1705c0bfd528f", - "0x4b97f3b4e0bff7cfe322e4f50176f6bfb379a706d42308ae75b2a46735762a95", - "0x7425ff9cea5e4869332ce12ef727fbcb004add827eb567424fd4c17717def390", - "0xc7dcd4fd005ae8d4d9e125727b54a64e900b3fee9cdc82fb5057c012178c8483", - "0x8ba88bfba201db1db716f762b5517369d3ae232ca045d2932fc27f6c47b15806", - "0xad2f63fa4fddd0cfc7f6cb01116d285e8aad4b0c51fa9445d39a4cb4949ed020", - "0x366874aec4ea26ece424f5402604ec7df9f40fc4cb9087cd3f45e764b1e36ebf", - "0x7f27eb75010b0d5da72794c129042511e24794b6c8491c1ff2e257dadcc7052d", - "0x27eadc596f6eaeb9247704c3339f7fe4e649f683fd815f9d71270caf5d9e38cd", - "0xba3f72ce8f45b1575554bd0c64feda3959c2a68f0300f021b67880b56f7152e2", - "0x50833c82dc63533f7ec918cd6d58ffbef4e2d597f354589b8eb66c9de0fc9697", - "0x30fc354a8893f683ef03bb024254574b550710f3c05496976cd39166a29e1c98", - "0x1b6b8d13fca6583d358b173c1a255c3db9efed8ad72084eadf10e29868a26fdc", - "0xb1b2a80122d1210160d8649d31422a1edc26b23e8499aa3a88b047dc52b42222", - "0x4e6c85a13cc0c739fbdf844a4f52c78979a84a86db728e4a5d2043ee3b2fcb3e", - "0xe98c28b49aa690aecfa43527acd3e5a010c8f90faf79ef5b4b479a715fe66a99", - "0x5b56e2b50ec96f7bda3f529ed71321650d688e2ee5c16723f6199256532ee660", - "0x1c9b8f5106a23096f2f57dfdb2a7a82876f4374be97b6a818fdc3c742b216b09", - "0xcb6973f775356ec7596ed6f9a036258e98677c7c5b2358da75af28f553327506", - "0x26b42a54252893f59e8eca923a0d2f2c0fe507a680e8907e2904702791c42aea", - "0x25fec26921bb5b6cd9657588b09813270cad72947abc6cb2726764db44181ff2", - "0xdfbd186df632b63f4cf74db660c59e658e0b4b725fe244a563c6698dd94adaf4", - "0xd1e00635e2399f6fa625f5c204e4c1643a7b619271394141433d26d902479bbe", - "0x3d3323fea45851eb0bc0b6c80a79cc0d0582abd8032aba957e719c31bb7901e6", - "0xe7d7b4c68d4f55ea8b71b43ad20bdd86402d36b6360ed0ca18082942736a7e41", - "0x1436749eca0a72b74bf8d596e3499414d412fbea0b936ee3564c4f83de907092", - "0xa828c16af52bd4adcb64928fada82a02d0a49fd3f53c5083ca9acfd998f8af1d", - "0x0fe559ad45cde755dd41876c5a65a690d32fc3d294fafeaa43e3fe133ae48da8", - "0x8f91d2082e5a1e6c1c905936515ab5f03889ac67261ef1d892fd909a9379a8ba", - "0x3881a9fe4ba6a24dcfa86351be2ca741dc9b2078409b2e7e0140569f19733505", - "0x4a3295525bfdda29bb9a552d8dc5c992649699f5694f96ff5bb0647910386db2", - "0x337389b3e800bae87fdbe5271f2167f169ffeb4710ecdcea30f08b2cefba57b1", - "0x2978e1e3c2b5dfe0b41ceb5c9c4029f42d346a2123a199c52ba6efdbf1d5fb68", - "0x8abbdb4f1f88fe8900afdfe15f3d03244435d4fb871606a689c11f6420145b45", - "0x986dd2ca80e46f37a604b7186ce5683d3e5e114384ed6ccc39102228fbdd0eaa", - "0x27fed9eeaab228907e106872d14473d621559176063f3c19c98393215ec87e02", - "0xb743e115e42ff9ea8240082a5fcc9f5878221ab742d0db8f1b0edc6317484f30", - "0xf6d2172dff821efc35df518767fbbf59eac9fcbbf6d89246bf845b588f5277ab", - "0x1c608dc9a9114a38c14d81a75c038efb591259dbecdf00a41f0bf402f4dbbd92", - "0x0ec49c3e2e0617fa336c1f9e36bcdf6ed25e548281abf1ae0286c5d92571752a", - "0xcdd7dd5d936b3b685352a9797b52419c6f9aeadf33e5dc6dd8b0ff35a85d2a35", - "0x9bc44252049c89b94967579c0ab737e14dfbdc95eb23d14579a73f3e68a81def", - "0xe67fffbb7a6dec1a39c46e838d72f6bf7c48023a2759f2c3e4340bcbdba057fe", - "0x55008d64590ccbf16e1288121b2a885d4852dda11cdf4bc21c578f85fc7eca70", - "0x0ab47947ffc76c87f5a4d8c5eed162bf0b56b0cac11e425b44f270868f22fd8b", - "0x7f5810f6e39bca9e268e1d0f2fe8b3b172f60a84e51e61f2b9056854c2dfbfd1", - "0xea68e4e38860b5fbb0f509266afd110d50b6d34c7bc083f772878716469f7202", - "0x203cddd6d6a1ed1174ad13faf518d08a11bca1ed4809bfd9d2e8947ff21664b7", - "0x00e1378e25cf45e210f0757da309b30328b3ba3a1d270a065bf797acfd696eaa", - "0x4327597fcde5e099327889cb075d1db345f5fc996888b058d3d17a0e49708e51", - "0x6ca6195a4887f9dd5112621a13fa67463bf945d7aea39578feb1a1107c88eb79", - "0x5ea64f4ead2b127c29cb51c79b3c28b81e345e2eecd237ef57fde7adb8702972", - "0xb2c8f6e30f4b70a2983b508502cb50e6150fdac3b6d60c8458f9bc3e9b0c1fdb", - "0xdcb684901513685c0bb7582aed9ee01b98297e05e9b054f3ad6917515e7a8620", - "0xab7ac631c98ebba065ca7d6d81b58e8cee0d1304b6828ed4699f07ff2d7b0f18", - "0x21f12ed6ecd4fcb2455ce8472f01ef78081fe3f3d4eee5a7edc7b546bec5e01d", - "0x0735e851626195dd9baacc806903c5a623eb3d3902ac2514db9b088292f6ce31", - "0xf8008dd2e9b354b284425bca8b378fd2081449c30cd6bdec3a8859b0021953c2", - "0x809f2803965be44e3dc219d279acd5b3bee6c25780cd498d15dae3325d8d568e", - "0x5fe269bcbeb9d2d2b253cdf4f0f2bf669c93be6cf428996b2137b68911ea0724", - "0x41e04646fcf4a232b331a15619978ecfb13e9095ef266edd812aa1793e1a8a54", - "0x0553fdd5e662e92852697a7f41679b1a82940b5d2acdea812b0925b7ea3892b9", - "0x6e77324bca3ecd57316541eeb110f007a06359dab94131d98c245c0a137015ce", - "0x217b4e8911ca232af5cf1673679137cd720e530dd704d11987eb8fbd612a8b16", - "0x42bb0c8c8d5a2c49dce7bc4ed6f97869fe1335d3ac3f8df89d4701ebe8a609e9", - "0x2cefcc4dfddaa49857629290b1b97af2ed03ef3b8e3fc67271315c6961038972", - "0x6db8fc507494b4b5b6d7c95e056fe15571cee06adf6e7d21dbe4c5d1787b9bd3", - "0xaf5c85ac940764c2e50ec0cf57c37febdbf1e4539dbccea24e7e0dc499e4b38a", - "0x063f930786584fec4dc4aca21922770de0547b455e437a7b0b245edb9d161005", - "0x94dcc780bc2c40ede15992b2ef6667965dd346bcf00cba42e718d8f83c68f325", - "0xbf5f4beb305c3cbe0ef9142f3f588804f0437c9696fd2190c35face26db36c6e", - "0xe8ab9b3503167c91116debe3ce48d0d76e23ed1c1cd12da09876e4ee518a39f2", - "0x1fae4431c7874fa5d2787a520b27b8a0826f095398d7ca1e94b234650c04ea98", - "0x7f5d261d5c29232b5ed9c55a26a59fedda566fd3f6bfbaff11d63c4ff161f5fd", - "0x763d7abaa36d8262b659783a6a310e965a10b362e9bb7d907bef107a70f14e50", - "0x0dc66388e318c83fa3cfdd1136b621323e9d80cc2b97a84029bffd53eba93cf1", - "0xb422530c15aa6e8b4fa35535040e4b7b64de68a41937a439592be5d9afd4f699", - "0x3fe4f704e67fd2d9ac629ce20c622f1634deae9fbe0a42b02da21c4f119250b8", - "0xdd6ce24b6084576c646a2d8e42aeee919ecd2b2842964812c31c6c18adbe8676", - "0xad0b9133894fbeef5ca4562aff4caae74218922542f6b20f73f99a4e5f30096c", - "0x751d56d8e50e1f6b1473ceeed9ddf34030f0b203c9e705a8703a4988d1b0a3aa", - "0x777800d29fb6fd9f7fbab607b4d9852f50f2aa3bd52b7383f7cdc287771181bb", - "0xa34077e2a2e59e10649fe850757e3db69cf1fe0be2cd34fd4ac1a2793668f0d5", - "0xea7d03f2cbf31f66327d8dcc7eab05c9f7fe98517f3d88cedc1c590742829106", - "0x9c834993c9a684c8c726866c0a0013c3a92c275002137fa0288368268f513c8b", - "0x30134d868fdd3c9d3e17c19c2813605dd3d5fdc9867baac66312b3089f1931d6", - "0x35c44b2ab3def27f323b69a679c1536d8c4ca8e8c5dd33fb4db1c28214db48ea", - "0x4da76c0233f32f66d1117d436aab4e73a7c7d3675aa2fa0abbef5498973fbbca", - "0x02aa3319e1c7710604fc26a1622651dc319b5119a68ee4e887aba1b66f85e4a3", - "0x642722b31dd1cf026be151a590ae81c8886812d858159c1ea9c40fb93b88e73d", - "0x84942ffdfe4af44680244f7810239ce734981f2c9b6a42a951261a3955bd31fe", - "0x4bccaf057f4fc0914ff58b56f4ffefd096ee71c508d4e94f70d30f59a3c8ef07", - "0xfbb306bf85220f2a93533747e5d081281d323419adc3458327be9f50ce700dfe", - "0xd3ebe4dca06c2005fd62be1448f92d0bc8cbddec22564e3adadd11e4001432ee", - "0x4537177c35266327008bf899944a740739fce625930df5b89fec5cd43401c665", - "0x3346cfb4b3b5f6a2c34b478f823d5a5cea08bcd026d1dc1f8cf885064d6a696a", - "0x6d7d217e6f196549a651bb51500e693299a5838e23651902e54a36aa26d3cecb", - "0x03fc17e1d0df60cb54874c848627ea0a86fdd8eba989faf64fe5ec3ece8293d1", - "0x3a671486102a9dc591f67b937106a1dcee58680062a328f2fadf8fecd8fffd7d", - "0xdfa484a44d55c86e2c3b05429144bbb3e6758e31e12283226eee25d58fce1e04", - "0xe01ef4307108875450a351b5df82c5fea4a3d34a662cc87f7071cdabc7e5e4b6", - "0xd04e6b7fca513c797b05b49ca345a2102243b6e893407f45247b0b406fa7cc6b", - "0xc54725a8216701640e068f8a8ef8e77db86c7e30cf4add44f1fd125a6ac4dc11", - "0x10851f13c23fed1edd5434deeb6a07d466d922f1516a282c23ce7834faeaaf62", - "0xb4c3613b7c51412a171f1a2b36ffc01801abe4594b05ecc5eba6026139892f0f", - "0xccfa7a95e0a7eabc97d234da53c80e94b811f270bebb6f6ac8759657e3750e3a", - "0x3adf3ad22a66a6205a76c91d488b8f315c12df4955c52605724082d1f3b93da1", - "0x9cd530ef2e1e14f8003b8d8651802bd1b0a4dceba53dcedb93a115ce4ee127a5", - "0x803bf4629682228ddb883c5a81bce39a234768de6c299f65a07a3ee5895087e9", - "0x8b6af66caee2b87a3fd2643c72e8d84ec9c0c75fa271456c48cbde2774b2b134", - "0xc361af073d0a9044e2e28cace7fa6dbbcf7c05e41cc372ae13c2c5e3b1d42ea8", - "0xaf73a3936f76a401a3a137bb6479978acbcaff7b8b0f6758a72a0c772fc2ca1c", - "0x53259e3f0ed789a4397fb6897f768d526de648c4cfe50e4b88a95ea93232e404", - "0x2145a286266f525fcaefe549221f470a5b8472db76d35e820c62e9dd09f41ef3", - "0x9834dc8c6a845e685219a66157f77809c2dc52dbebdbf36a7a768aa4d2a89edb", - "0x300e7319a340f894b96281edb2697fe70c650d5e1a112760f22f10deb32ce547", - "0x0465a059e6b40cc6ac10a2bc78b6d064d6765c0adb0c20a45290e65560bd1e1b", - "0xe935237f4f93f5de4d7b768627ce849aae62d8a5d807e0398f142677165fc3ba", - "0x943f9abefc54fe4f118401b9682c44c9d7d97d6cf03ddf38d32cb694f9af1c32", - "0xf658af875a69361211c9894ff4a77e595026d4e815b3c18e9cb83774790a5cca", - "0xb5ace322f7b347062e8b728b312ebcddf6bb95dc24842c6ab783430cbd5e52a8", - "0x8ac46515d61b24567ee93b19a3bb407a14016ee4b3b99b954c74923504e5baf9", - "0xb7c2a9de470c3a43b7618fa31d4cc0b9ac879a2168ef6ed1348fc66c486340cd", - "0x9eb593e57bc9784336500e4a593200274abd0e9da1c8a16b39acdee94a0be676", - "0x361e998b3e24f213348db959f4cb65a04ffd1de7a705047fc10733034fbe1c66", - "0x47b2b5d68a3080d6f11ada3bf0af1d90759f8f08421151f6a2ed5af64974f262", - "0x002fe24eae8abd356bf631051897ac8ae1a754f7c5bdbd5fc521bcd364fdfd96", - "0xff53d1ae5e5902c1a1b66bc36f88f3264bb01f14dd84def0ea0f94c7c7eadec3", - "0x93813bf1b6a660f87410f862123d1ee694eedf4e7464a1a9e4556e3e3e2f9a18", - "0x077cf660cd2cc0f4c4cda9cec68d8dda36d7c95d04cdace3b70c8d010441a68e", - "0x367029ca5dc7cf420efed09c07561e9981b0dbd8dd1b1126ebb829cec9b5bafc", - "0xa111113ef2ef722bd548b5adf4d75ddea2a7530d4d843b022c2a54ec25ba8c41", - "0xfb2337d6125ede563770a84191a6f158ff45a00ad5006153765bbb72f51f6e83", - "0x1ede4c16ea063d9ab7e7962957b4c067b0fe25c2403deffa5b38af79c563aae9", - "0x067bc5f7409eac44326e4adced1eb688e3d9834310de73f141e90c4c63342dc9", - "0x909d8a9ea7bd84097eb6129b8609773b90296d9d01729f592b4bc50981d9f1f1", - "0x11f09438cd48f7895d90a6bb2dc9fdc342b8f11074d988b272f2c95b76f99fbf", - "0x7ed2111c775c418ac81e55886fdf8fefab1f639e243f47f2c5526ac85b3309fc", - "0x376919526e0fff65b9655bc34020d9df4c91300c0747b225ba9ac5e9adbf97c8", - "0xf6ae43cfd33c14899af2575283288239210f3c00de11364175c3a1556637830d", - "0x544063d4d8cc6b471b354b0e57773d841052ecc0110870b37f6e8657d4256381", - "0xc1f6d5b592da819a2ebaea65a0a6448f63ce09fdfcf1c15f93fa20fb8b67e074", - "0xc337d4acdae3bbbe7275c21b07b04b2ccf72a87b5666ee002ed54b7f56c6a276", - "0x8956d8aed9c2ae1b76b1aeec8210cd24cd900ad5fb14cf0e86e86ba35f5b04f6", - "0x06219a3301edd50166ff67184586c2caf2b3553b73e863cddd7a3c35b7f88022", - "0x52b99f92dd3ffa353c0b54466fea2bd1876b3af2b64953c12cbbabc266197e04", - "0x5c69f7312b8786144aa2161b3c965cbef42cfd41c8b586d117336ae8717b65f5", - "0xe57747520a141a1be0140ce4b45e2973479ee8f4a50a85162dcdcf5090380528", - "0x1f73420c464ceb6bd25e2eadff6a248ba092dbbeb5b3046ee809567dff1f34cc", - "0x1df7ccc998af1e233e61adeef0f757caa4a80270eb6d5be5e920d6b085a4cfc7", - "0x514024457e175885e55034f5c28c666611ce6bc1b8be8c3f253028f24091672e", - "0x7574d79098c1aa62802b6ae31f43b47fc5e17ff1cb3b79b7065ec42dc1ee402f", - "0x11329c45c6c4691bcd77cd97b9ecd27fc9108d909877abbc5ce894f081e0a4cc", - "0x098a826b2a276c2cbf3c67b88caaedbb62316e37a570f5bdac257f9b901d355b", - "0x56b14ea493e2280d63db496606a64f44646e2565e52ef36590bfa40e9a5dba63", - "0x16b83703c9ffd53c3deaffab57d5d3c7252cebeec4a0b1ae957c17e56613a19b", - "0xfc004311f603989357c1bffde7a42a59227d0ae6ce052ef010f8c9f4c31926d3", - "0x1da81ae9ecb576ef9d74b05d15364e904cb252a54403fb2427eef5b49c8655fd", - "0x2260c1c27d3bac445984b282a3432361d68f4b2f61165cb330854d3b8507c4ce", - "0x0225d0c83107075de447a805d0892a8affec5e24b8229d79f327021a0848397c", - "0xf1fb6333242f439dc53aff6bc68cd267f21f77fbe805b824710412b2f45b5468", - "0x9fd2c82902d6890fad571d4125c02a1308dcc05ec53ace2b3a0c7d3cc46d16c1", - "0x7b9248e0a83b6cc1e47e4828ad33af3b37cbb586295727d9b19fdf2ef62ec4ba", - "0x352a0c2a06c5036b590a640c7d080a248dc1ddc1dbae67a5cf6698108b75955b", - "0x6737bb1c9b05f740e28f1813f57a8f9d18ebfd042f260edef963fafc553994ca", - "0x40d02212c95bfac0971766e71a339890ce86cfa96e2bd0ef0b270976062c5344", - "0xa493f9c86347f4b0c5d0d29232afdd5681e7b0582575ca88574a2e04d3dfd061", - "0xb748487ec35f299c2527260495fc2155ee354c488040f8b8de7aab0c232f6a5b", - "0x76ba5a1f7c4d314bc773e241dcd15e0237de6d5d1a7f990d1d750da9e4bfe2ea", - "0xcd8a379b7dff8c0732bfd151fb4c77b631e7d018b513cd34a2c7e1be3ed5b10f", - "0x29d471c421d1624ffe4093894d79aa57e818dcf4042cf58a10fe244f1d2b43b3", - "0x50a0d79e38620fb0f28dced7689486bc9790389041fc6b2731be8908c8f0027b", - "0x1587ad177b7eef5a475045374b69ab13a38101a92fa9bf3c2d7b686b5058b0f9", - "0xd79d13f96b5a91cde57290a87678630ce212aa11974f4244e2468f2a245796d6", - "0x8f86548742ea82892829ced29ecf75947b42743e25c4c0b485f66160e0a2c1fc", - "0x09650fb97435d4c7ae472f2b6cb3b9efcfde8f2c67e6c007c6c7b6f89529af16", - "0x60221758839c34e2841c76a443675df9934027e1d365c91136d9d7089fc8c373", - "0x4a524bd23dce7b76d06158ae7c8c8b973be2d8edafab5b6921fa1c2cba3cc4d9", - "0xd6e51f25afb4eb839766ffde785a598185dd1e34870538a4a8b4eb9115a045fd", - "0x84d6430ed5924bbc86da700f650536f3474f093bc9f61e52ee4f7f74a207464b", - "0x9d2cb8b8ba17dfb9fb7562f902a43219c977ffd38697b990bb11b3708ff3718a", - "0x89909eb848d74ee94b1b73ea6b1af8058ff771491ad131d3e13e2d95c2115903", - "0x118b3ae7ad25ab96fe8a63973312c758d4ce9ecd39cc24913c26a65b4b5534de", - "0x19cd088af8dbe2d3e6ca7987d9ee1564ea2256f482840b1d2f0da85060de9a86", - "0x98bc07422cf8b0c4d1428afb759300d9a7637de2518528d34f7d237be7e863be", - "0x0c64526b393066911c7da3f17f9e652cfa38112ae324e3c84416e811d3fe7cad", - "0xa30cbfaf518996ba776b426a7068faad4ee49775db45565ebd327f9c679a45b4", - "0xd3e1a807f5940ee1a321b20b7931bef90515132ea9959df94e55529e05802cab", - "0x338aef579d9ec8acc1a0411c1674bcf213d03aa7d4bbc56707e081829ce30004", - "0x68c7a603089a220273f019001a39bfa9194590a6fa6d8ba960ddf4888b105a6b", - "0xd6a9d2c354e1dd77322800d24774eb03b589dd94bcdb3cc2b70437ed70411e6a", - "0x39c017c42ad571564792bf5741b3ae786ff0c24ebcb5ee46882ce0545b8a2262", - "0xf5caea6b23f4085c9f94c880d89b1c23eb69c03dc098b426143ae4b28969a2d8", - "0x959eebc05ff0dfae8c7e6699f069b38b5f2e5bc8c155bc35fc7f578d2d112993", - "0x199e90557d4d9e13c3e7a4b5b4ef6fe52cd2c724c36eaa44b7fa151efebbbeee", - "0x0bfe35d253227696e76f92ff13e4c545c57fca51186a16f687e76d2e6707d34f", - "0xadf8b7678f98b0e5009130d9d5d77add6e460b67b0529abc5315c44dadea0cb4", - "0x86582f3a98b218939aefd7eea438ee278d1faaf41920e8c72922c46fd56f1c32", - "0x001b728a4737fdd53cde20341fa0adec9aa8ab7c7c1db244fbd509a6c4f3f364", - "0x9207900bfdd6c87e2ba8498c0372706799604a207930eeb331580459d17f89cb", - "0xd2192fcf74cad70e6f7986a0b088de8658a14638a4c03d7ae616a88ceea00ba2", - "0xbf6f6b91742eebe70204eb7a70196ef636fc2db4d4c4f89cd5826fbf990a945d", - "0x5c1210951949402fe3b012577f1af0d3e285a0b39c3fe19c84f7930e003c06de", - "0xa16d57f777f94f032f7f2f75b2e25ebd11559effee98b39a5a1e7cc804cfbf06", - "0x1b9561fb8035ec6955454d6710f053d7ad3d8e0753aaac568ac3bc98f874465e", - "0x1a622da786425e0b65b9083a451a419c75e16908fa04d89ddc2c11d94ffe65a0", - "0xbfcb9b1d847eb40b6808e45bf3d2fb8f6588d6f103167be65f246d0733afd1f7", - "0x2317640589ab9d52e7f5e8dda95ff3b1beceacc5832341e9053b71209bfad07f", - "0xa10611b829dbb533e565ad01632b26b1fd642a4393e7fdd9b8f235f11bb606c8", - "0xe4ea4173982f342e396356b0bb0eb47e6748461ecce0f34dbe8fc084cf6a9fbc", - "0xd58399c0d0ae878338d2915eaf2d65f2d1e29eb8d551d254e68bce7a8235adcb", - "0xc0c8b73ffc675a207f73903c49d81131e6831e4c8e071b988ed9f2a5d2277024", - "0xe1ca77bafa66bb055c671978b3d1bd5df32f8e269330507f071afd627012b6af", - "0x67a1093cbddf41264009d1dbbc33fbc25a337339be0727e70c512b585897749c", - "0x0fd615782db5cf4c0a3686721cbc6245696c1bc9b403a9eaffae00968d2c8ece", - "0xc3c2dcaee8954ca86d9b3e4e98c4bb4f6b6bc183f9eb062016c5a25b2280717b", - "0x70265915f5ed94d589afafa3d0d0eab6310195cc690aa82bd65e4a488b398c58", - "0xde3fead8ce29c04a86dcb081da2cabda5366d28de5ebfe2f8064780413f71edf", - "0x0ae43394fcf6ebdabdcc1ede314fe779eb61a12eab807a9d3437d9167e2247e3", - "0x3241127e2c7fbb3db9fe0c602b0c94e22c684b7910ffcf09c1c443e567f95e4d", - "0xcb94ba286eeaa1129b490bb5891e603fd35e85c97c2132c1216d1774f9017f35", - "0xbf396cd23c29ef21fb535880ef621457fb71981f856f2a09c494cd005d38f981", - "0x3df0c90ed7aba260e820ca1d28ce1778149e163524e306309aa346bbadedcf2b", - "0x66a2724f7481aa3ab83a8f1bae2caef8a7bc607c7ffd5bbb1cf3766741db804f", - "0x7a0c3492f4022322e10d81bc10a5db9aceec81d1ab70cdffd31418b79d750fd2", - "0x96a826cb667924ed75ec708bf07cf4c7c05f84a0132e154b71eaf6e193590e87", - "0xcc7030fe617c318a31984d04e3d7f2ff2196894bc429f3f64bfd69b969dc9b56", - "0x3fa94aae223f5aeb593246f1a93d6d694b48946c09d879e791f1188a9dedc4c0", - "0xd49e51fc324fe58159575c0c24171f4eb1aaf58ed8e1311c3849538c8cec3ce1", - "0xc474123906eae5cd48a10e0d93fcbbd653f0c6d25275f827d4fac51e696c3d91", - "0xacd7b790a19026fa3f3b0a354878d4fcd79dc600f7ba5cedd2eefffe1ceda76c", - "0x41b311a188cd7ce1444d258dc379994b81a895226276c7bfe5e6cb29a5f92142", - "0xda0ae01db7f73f07fce46b94c24d6e400598378a6baf01123dd710c5425fb8c9", - "0xe62e08175a02b575e28b9e029a838c365e3ce4278f60c2d3b5d529768a4b47c4", - "0x99b804c8d0feda7f9df961527d634fb8b2d477a362e1d8158856885a13425fa9", - "0xe73597be8ef7d78f862c7a94a8ccff17f559816eba2f830821c6f6436898f9fb", - "0x36de9ee4c80853c865b16904cd8f6c0e9a99ff9e7bf05100bfbc76789cedd4d1", - "0xf480b762872373102393461ff3a21323a1df799c315fd167780a45d7bfaae84e", - "0x303b66babd21e72449cad413e04bdb0bc3ebcbb84a79dd30ed7c972c5341b82b", - "0xbf111684fbe44a973594f31cdee2c94e807bff9cf7584c22dcd609d8234f6e62", - "0x79b26cc3bbf49b6f25afbff7e97e4e45f2dcb359095fdbeb7fb7addee692afc3", - "0x2839d620cc140ba838ecba6e7e52db8cf7b5cd4cf4857f72f3bfbc9b1cf0fbd9", - "0x93074136f4eec367adcf27955d38efc0dc6da514693bfc97935c7871793e35ea", - "0x21f5af18a4cf0096b6e6a3d4c98f4043cfee5c4ee085ce106f86b713160144b8", - "0x90d16b403e2deca6cd5c80e52eba0b84b2875e1dfd75fffb1a2f82bc91eb6942", - "0x8a5cb6854c19a865f51e3ee9eaf8e843a97b272f6467634ba40e547a435ef624", - "0x9afe42a0dffca8ec063c83908fd6237d6130c9dfeab57078bdd02b6ac6d0ea07", - "0xa05cc6108b475d3e68e280e98f514cfb6df4f004e1b7708fcfd4528d346bea6b", - "0x71f10879b875caefab46669e8525b9c0487bbe3247e43a6cdb1dedbfb4d4ba33", - "0x7debdafd2b1410469fd76e2a39dcd1b8f400292f5359ecd39186a5be0f9e44b8", - "0x076f8741b668f3f715a7142f5c1592ffb58ca13e8612edc340619a1ca6ce3f2a", - "0xe312bb85cd945eb45f72868e6651633964f22ce3ffcbd0f3701bf57ac0c13edd", - "0xe6eae7aad7fed9c690a14eb7aa107c83a5e54736940ac6d82e251181e1103eae", - "0x794c8ade9063600442f83d4be14d7bbb191c692314253a2c62dcb33f3e7d28bd", - "0x6fd9db41dc1074a4349a6d3881757ad931bdf9ec261fc4e0a5ba9cfa5fafbf41", - "0x37557ead7100564651992a919949af3f39f3eacc03aa0ea158dd59abc4e2a93d", - "0x7a3b01cf210dfc42e4e41c95af1af357d15409fecae888abf4fa35149f44ed2e", - "0x89e952ed9afda8aa0ff80ceb90e5857dc7fc3cb6259ac6089da5fed49223cf42", - "0xf1ae8d3769142a1f3c8bc0ecf8454f05b09354a2ad5c921d0a6845417bc2f244", - "0xa04e022b2afd83a1e14d0d67595070b29f196dcfc05d92b2ce7c582d67af4a00", - "0xa3a0c85dfc3d8055a29de34492b3e231691bb6e9ca06684a205837ab9870c72e", - "0xee2529ad0af60748cc0bd8d97189d878643a52710dd200f79f27d8a4a4c8c093", - "0xac88fe07805a058f1341ed89795f0e5e9ace050de0742f863c1c9c63b17aed12", - "0x8fddc716ab43397541f6b22644949c6d7214b01ca8223310a34840df37c47746", - "0x3cbb4d1a2ea6fce170de64b1f4bbb8d9239fe191018b737e62eda77aeb7d0306", - "0x3807421ad84d6f2f9d5d830364a0455d6846e114b87cd08a3cb9a33e40c7c084", - "0x283199cbf0e1c997025bd36522619417d9e6184073b830fb22c3de106a68b598", - "0xcbc85a7ee2122abad27b1f5a07bd15d864af382a62fd552092b7feec4d2e4856", - "0x84586eae7108f2e1217d53be81f26bff7cc35409c64c1af827bb5263d813302f", - "0x5d2d93535aa7db5e2204e419ecf4d7c0647ce40522806bd24ecf348eb49a1f17", - "0x3a6118c84312f120c0d3e4ae4ec0b8103448da31953fa27a8400ed7e4875897e", - "0x4a0d1639274d31dc5d9eb49338b204e9cc9610913c0320e7da74a02ed2486fb6", - "0xa7770b7cf4f83c387344cff6ddd3441dd131333df0f210a57a271fc1a61f08f8", - "0x35066ce607eafc9bdd3386097a98c844bda683ce29faf25708b1a2f3e25c9aca", - "0x7068b1f5c017ff5b995f2c65db7daed3cd9fd0e658322ee2debbba7de3ebdd72", - "0xfbcf8cec0ed675d12ab4fab45754fd00a329d19ad77afe4413a0581bb6dab8dd", - "0x78035e412813b0a3f7e3f46bafe436b57b83278499fe8b8a1bdb3066f538d0b1", - "0x28bfbcd7eb38793a1ea711b6dd73c55da0faee3a9707c743737f0692dc6b56a1", - "0x9fb1607599329b61570a0daeb7b1a93210ac286e02a64ae309e1950cdd76c5e5", - "0x8903d98196291218a50fe03a5cd51592e1b458315491d735187cb39d0e21f397", - "0x97aa20d84821d36a44ce18eff501df95549c8266220ad612d0ba9d293d65271a", - "0x3245e35a2c6d46002dbf5bfedee31fd28a88409edbc55ee1ef7972a249b1cce2", - "0xd6149428168dbf78ab2f706f041a61e3074e3d18ed47bd343d54c3e4f2e051fe", - "0x9f4a04d0e3a2b8773a258bfcdee5242e44761aa1a1d2f9a7162f04a2b85de6c8", - "0x0162a3449c2be2a0a45a771027e5fb67169c5a56c4ef6f386093fa79f9942fce", - "0x5c1196a72f2c6fb5771e0390ef25499acd52c6aeeac3615ff17dcf2c405069ca", - "0x319097551b7df30bc67f5ee6f068cf3b34e71371b91635e9009af7acfe97e12d", - "0x8b89e2e091824d0c3276128543991cf7c35a82bed4b92b4e67aeb4652033a823", - "0x75d6dd431d5568625946b3578e68d47523518cb2e141369aee5273fb7cdc4013", - "0xc473b7b23c164759487af8c96865f0f3af3f3e40e9607665f94f937c3334f604", - "0x1f61783925fc03f3f5465f37aad2276c466ddb91a47db036f042c0b2edbbf643", - "0x3f6370976528cc31e4d099711329d5c670a2538623621b164d470fd7ee2cfb17", - "0x3705bd7548fcdeb0dbb3162394edb2adcd5128524eb837b71a04ff0c9c21c22b", - "0xe15e99e427efae16230af47e59ff89b76df25db44fa2dfe95d2419b6de35ee7a", - "0xbb4a17b5e4879b52e6a4838df9525ae01b168197db2910caea805011588559a7", - "0x60e6cc67da461bafef5c3b7e4f9e964a24c3146c4fc22c2e046301e457d1cdfc", - "0x72ef37234da6fe157e0e87b11528c3e41d115f10f1dcfce60e54d83c1406989a", - "0x63c3a73812427f73be785d4690a6ff81912d3ac17c8d76970ded284383ec97a2", - "0xf88c0457e00ec47c27ddc6d99fe6c0b82bf9249018a96b1c7e6b90e906adfaad", - "0x9258fa102e450844e091b58dfff2fd05b8fa099d53667626e340fda7ff7f9bd1", - "0x68adeaa1063528386db31407596442f815769731da8b560272ba3e1b8817a11a", - "0x222a41b6e681d2acf8a9fbd9310d34145a3c49160c29681b95c85176abadddf2", - "0x00745c4bb8cf5fb63700444f9258eb94e4b527ba8739fed4bbd7b13083854929", - "0xf27199044245d103b296bb81188982baa87175843b06424e0b5fe9dc6e005705", - "0xe00c3bfee8d71930faae9ca720f25f342ad166f438c07b0664c0c2d6b9f82c58", - "0x05e2bd6caee8a926c0f61bd0e5553b304656cf4749f54bb45b72d2a84fcf2378", - "0xcff8627a22e37d1087c3b858079a4f90a1fac65cd397dce26be8c3efe2515e1e", - "0x4885a5f8fb2e367a9edb32b02ad4390a4ef8f317a0e7d3bcfd5eccb9d8d05b1d", - "0x194638cb01699bfdb67b09ce5e2e8d5dbcfd403ae325a7a0311923ba5207c5b6", - "0x20e7c0ec1db7ca6adeeeb0c7950b7911e1627bb173425c4eaa105cfcc9c43db6", - "0x1010eb2f28d04da879c67f4c9e51fd480753081eac6123c5161502f3180764f0", - "0x09a0d0aac41a4e2fadb48c1751011fb46774f10ee263567d823e275aa0a33ec3", - "0xde190e4dde46d967a4e32ecfda15323c7f4081f40d5f245916055af44b008e81", - "0x21870402899f8c05003a175f2c0d37fdfb52c9bda3eea3ac8616c832fd8ac173", - "0xbec735492b66890aeb0ccb5611a84a908477269c2336e076c42cbb620cee8861", - "0xb9daeedd739766f82a95505a9e71daa503a5f0c3ee1a6a97f842b2ffb6ddc6ad", - "0x9f30d706fc86c7322a10a3c572df2ef4f2f49bcb49c5afc2c6299cf051e2e38f", - "0x9dc1d641fab155885db408328e60c06d97a0e3327b64a18d46e7ced7cacff446", - "0x252594a4da3cc4e794d954e88c15a2c847dd84d895eca06b9365a85a71fc46eb", - "0x979ea7682319cb0674066b10eb7919a87ad1ec0618ddb24723f13c55899cbb6c", - "0x570b4dce3b4613a8266688291f06bafa9d3b7828e3e6a9bfd27e7d2f3ba59125", - "0x39e97e3c20af2dcfa347ec193cae2c00100effd4f3987bfe21973db8c5e11fc5", - "0xf66b0859b41bf7dc53dd23762ecc593f4572a8a9f82b4c51257af1eda6344bcf", - "0xfc32a5b84537ed5947874eca72d189f74676855be5ded4d32eac2ebc0c3a3306", - "0xa89c577f12bedcc225cdfbf86ebe8112aef97b9c34a504dda52cea4f40f72be1", - "0x67e4b71c08fd93f1c37cc60826c5d8c18e14b89a7f271e0828b114de39aff694", - "0x342279789cd6a721f5f4866e3a16d19f88b24ac277563ec7b0716ecdf8dace3d", - "0x220a5babb290dc16440f4b01bc117c41af5073110b1375cae0317f9fd364d44c", - "0xbc1019eec10ff493e095915f66d46f0855b55aa681352774dc300d54147efb00", - "0xa9cc80ffc08c2b4c38fa178e3ac56ef982d0487b7139ed241fdda3894f4b67e2", - "0xb35267a4b6020a2e53e112f4ba7807ec50ba78a3b2d64fc3e3bfe918bb25bd9e", - "0xd5021c0c199dbb1b61e5e0d4bcd59fd064ddb6d6611421e57161f9c37fba91f0", - "0xea0af5bbcc015b06951c9ff3df3c233f4bdd6ef8eab97f0b3a9e10b01efd7a5a", - "0xc060f20f45851e6de2fe1dcb6d8996add5335c34892f84a1db711d0c47c5da4a", - "0xbd30199b078305b459565598fea6740a4d187e4813d3887f72d7958ebcc8da48", - "0xeafa07e96737a0e53ee7a09bc1b394ae4c1ec6c937901a8066b0cb6b6908aff5", - "0x68abed404e0a66ded23d152fc5544b14b0a4fe918a51b667f2dc827575c12136", - "0x27da4b5111565097dba6e6dade4f0275ea8234b50f391aa270bb3cfb361e6331", - "0x85126b95e3532b5045710f60d0aa3f6b0e801130722bc7d85a67479e0b1fba25", - "0x658afe5a3d3b0916372785f952d92069045b747fc67be6c8bce3d695a434d058", - "0x9017ad7725867d37402da5ef1727289abcdf9982a0c7dbd7fa6f175ef8ff5f90", - "0x892a34192371a1de6d4c2ceabeff5aa9e26c3f41e74260d305872f366bdb73d1", - "0x786a848c13f84c87ca554654f0ab35f7fea5014669d919595e087e6463c47253", - "0xf1235641dd0ac33ed19e39ee58e282f2e0dd8edc0949e0510f2c65469d85e1ef", - "0xa55273939373f7a4052d8bc36501fe17d9b571fd170041ada7b4385d49ecb5e6", - "0x79ba81c39c2e7dad9768cdbf754242dc2b5b74fde750c32ee153ab121a633406", - "0x74ef128355bdc842c1b109d4b1d3dc6f85a21a110b32fe1b4ce71cd282a20ba5", - "0xf0a05137693ab9dae7624cbf4abce1554d4921014cda61584d649c66e9eb09f0", - "0x5566a8d7495aae3cb42e66bcc683bb194f53894e3281812484bf36da583b7d9a", - "0xbe65f10ed3eb5e862850eb4e30c73172f5417634b087b1dece7df97dda2857c9", - "0x5ad40161397a2d0f53d71284d878e711b6d73930d2a79a789e4bf08223e9eeb9", - "0x1a88c4e12ba89abf67c8f8de223964e4f3d0ee8951b9a1851c9172b278b956e8", - "0xc1bae22721de65936975b20b01380c7707cb603622106a166c1472bdcaaaf94b", - "0x68106522840c17b0e93b0cacfdbb1d2c5b219cb90aa61a5d0b04a0291caa4b82", - "0x0e8a214b18b92fc025bd374a8d9859244b3855a7d3a364d1a0e092546a17b2b0", - "0x584294fe2fc330adfcbbaf251480f2c727da2d38ce54ffcc1b363adb9c0fdb0a", - "0xb86b9042acd8d6dd4eaa967b3dce6e4e49cbad95f4a7cfea95299da0cb3aecab", - "0x99d4f215dabbe6bcd894d4ce7ee6d16a4543c38d9ab19a4f3b933f37eaa7fa5f", - "0xd078bfda23ecf966b656aabf0bb69d27902d33773b2471145268426846a5a1b8", - "0x87234af13d71e681c987c38fcc3661889b406e298e3a1ffbd5115fe6fe6e65c8", - "0xb9f78fdabc8cd4fbb08fd1e1d00ed552c4bc7cba0672ce91c52deb2834a7b223", - "0x76704df0766b51c9327acf08ffd35fb9c3f041b73808094b0d4ae1f7e7d7d0b8", - "0xb5e4ec16c993e2ade6e951099512deb2f8fd07956e4d97dfc639a7eeef96d336", - "0xc9c919862f5a82a5381e7def2883049fbbb99f24be9902152323811e32db40bc", - "0x8df21edd784b8b776ffd603a6da87a6602e6424cb3905d977b909a7b10160abe", - "0xd5c524bf24c3c8f2e9cccd5aff20b96fbb8f2045f37ef1014eeea1b82787361f", - "0xb64756c799db5e1eca16416cb833605916a9bbbcb3c82a54def34f16e6fcfdaa", - "0xfac273bab2facbfc28e2c53c03a44e69ddadfbf57b08499bb43855abae456f1c", - "0x43f8990cdc4735bc47fd89cd23c9a99d5453885b1903d4b3185b6b0413735ff6", - "0x7420a69d819df5f4106fc9e315e8c125c8876a3a1cae8ef7198a921c121792ec", - "0x696861af19fa56f07d5e2eacffa3508cc3638b7acfe4789c002929dfdc47fc3a", - "0x86c80d2150fca01803a41a900e66b764ce82af2e0ec19fde53971afbb6390ead", - "0x9cf14af73b44b555ceec13119567723ae8e8af927a6f24846635ff5000acfec6", - "0x95b50e682e4b6b2a08606a62bce427682ce484c2056d891dc206fae9e062d3f0", - "0x789755e975f432a059cb5cbeb067c8f9dfd97b54d8d1a45a1e47592d9eb770d6", - "0x87b682b780890ad3d542c76548d7d5287fb244291d62619ed079340293a245d6", - "0x8c0155b066048d9e95f5eb1b6ecfcc179feb71ee0426301b03f778573eeee7a7", - "0x0fe45f09ef25d05e5c42751a35714af86a5d7a4fa235956edaa36dd0e5ea7533", - "0x3b5ee72615fcc04f48cec067ba2d1d9bc0e64c4cdf9d5bcf97c1a999ae940245", - "0xcf773973676c9b0e31a549d78a6bbc79826c471b6fed42078d9b35a08d1d28a0", - "0xd5ecadc4dba308c0d790adea1e118d6984716600091d341276311631acfbb267", - "0xf344c0cf6516f0fa6617e48076726aefbdaaf5a31f67ad8199bc3f6e426bf904", - "0x3f3d2d33f36ba9009e9a72f3f5bbcb5df5392a19fc7afc8d37823aaf52b03477", - "0x346a89411f090d559ff90e670bf0a385b1b09f117fc9ffa18b09d3b6d5d8e45c", - "0x5bc5689e2b4572b8ceea472cc7827e22cbfd018920beebf5c5b25f65f5cd5357", - "0xda418efcaa0076f77e4d2f0c57fc32fa67179a5631d9df52d56497113d0e87af", - "0x5a8050832e835202695129f6f384652827e61ea5f1be7ff300183201d8bd6b4d", - "0xd9f444c382da42c310bd2f05955187163ae7b224e5efd44ab95af332e197d374", - "0x9ef2c5bad361117eedbc2adcb72a2ef5eba4caf3a99a0cbb2a65a94d185e48ae", - "0x7e3e089bc46b00a4174d90003379c382ab5bd84d092b9c4db3189d2bdc24f00b", - "0x94f50fb12eed909d251fe69adb1a1f214776cb029d487360b55c3a2abb663d7e", - "0xd3e1f4244dea40d0741255db2dae72103e263390e0ccfdefcbb2da59ecc5ec9f", - "0x6808bf0cb7d4b677527de762b6db8ddf74a1b272349f34f44505912bd95d62f3", - "0xbf7672ac474b5b849bc086ff8455216f015c8fc7660436dee153522ef6991c04", - "0xe79d27a369cdd5455ddbc6bd9158cd1870aa895b3c3971d07f1555b95ed02ac3", - "0xfa9e20a36c11b0dfbf7e9c62872a6423f5460dfd18e447481461a41176678262", - "0xaafb6c407910341bedc82c0f260cdef75ce5653f644b93a465cb990247a32986", - "0x5058e655e0c179e6c20f48fbd08c2f34f9341f6c07972ff40f55bfabbc783b12", - "0x28d2e7c852de8602a764ff693b6881af18ddadd67fc7eff481f48ac20ebf32f6", - "0xf82e09e7916f61b5cfdc3dcf193bf9d535f2b33f93a06c90fbdc78b3aac6b7ef", - "0x626f3cca9e1a9e5e123e34485c8697c758ffc32213a727665065dd6abd2babe5", - "0xb7f1c07f673d903daa61dec649eb12286a7a0568ee36ecfb1023ec41427c8dd0", - "0x8d1d42bfe88dbe4c621cf68d380dc57e7768121a815546bb4aab29b7486da9ee", - "0x79835acd7266bce85978f481aa3c58f3bab9106d72892df8579e472dc95c6899", - "0x0911c9c804bbe9be0aebab6c92f5b71a893f72a9d0cd35a51b0e8cd19ab0c02a", - "0x7fd2eff10936d8d12fd9a1c6d27e77cbec4e48253465eb7e65876134ff60c8ec", - "0xc739ad4255415e2831c6996673f3d02dc79f6e6d6822f7dee23bff5b94833c3a", - "0x2559faafbae0852fe5a1c924f0e4f6ccdf4fd22f483148b3672a3e7b3692b669", - "0xca37f0aa3d375dbddc0b426c9564fe68f10b0a4cbbf1ab87f97b27b44878f2fb", - "0x00ba40205d1bd46ad5b5e73cd5b1f3418bd892586d5a4647ac9a6d158f15bd93", - "0xfa6d25c829299535e6b80af81a2416d10ed6903117e73c656b979a5f5abe3ee0", - "0xfd82d8944315cfb228a8fa416c18ff82cbd8869c3babbd3389dca6dd66797785", - "0xd8834cc29788cb40ec901725419df8c031a13e190756a6352696de870eaf4671", - "0xdf6843a52bf55e0f4404e7bdf144bb17d5c47a72ef9482e712090ac9730a7f52", - "0x4c2c562f835966c72985f7cca89a3b1a7b0d4cb04623dc96e337daa35a2f5925", - "0x49d2afd87e83a04059dbf3ef4e2598b8d0c495ab1cf91ed3004e16a608e910c2", - "0x5be64774739c001c239efae1ce9f2a5706cc6e3054ddf24b03c09358f2f4852f", - "0x678f789dc8c409653b36f4d2015338165d3bc6a73f2a77ebfe438676b8412d7a", - "0xf87c8fbf02d8e84cf72680e6b9a8b8be39fbae9f1eb1047c536d77535494a301", - "0xe2428b952d2c6d60d4925f56b3d8227cd6bc608da2c1b20264befd8b1ad89454", - "0x561a95eb50c663462bb8af3aab336bd745b0571746b10fefa791bc11be777763", - "0x6945f40e3499d2769ceecf499c701015d93fddb607720b18dbbd5a6a2aa46639", - "0x9c35b0367a2b82270d64f11c5299336b21b9f454077dcf7af3b2e434677a31b6", - "0x454dc6bb2443509381e478f1836cb36808e2ecd1a9944072056c292b710072f4", - "0x0c80566f34a46477592560a883a9c01fa393f7a2c9dbb28a54e46a5c017e8596", - "0xeff6a1255090509eccfdea2e591516886c91191f1f02eaae4808ac95009086fc", - "0x37cf60888e5ec75841e7f0533feef7200185a1c9f3253073216d83923c864829", - "0xb169ebb9e418809a96529835bc293782e4fc6310dba450afe3e95a7abdf7cc01", - "0xa3c8d5c71ce0477a247f56bfe95272ea07f0b7f10a8526b6e3ff9a8de8faa9ab", - "0x2bf18db4ee84bafbbabaf05d1d4d383c0d5fc91be6ae902334496996eb3a8e48", - "0x6c116f0d5809a2c28351a737ef3dbd1808685e1fd656e37df6b6e524aa82c918", - "0x21e2c8e019c687fdb360c9bdd4e3a5133488cd2e0365aee3b823120734aa6f27", - "0x20c9a1db9de894ab4f576265da25f391b32c0805c3da76fbfdd0aaf300f88a39", - "0x23ef1f43af87be7396449fc1f89d9766c59e8adf2660812293c65a27482ddb8e", - "0x04a82d3a4a5e7f2507688ecdcdc300d7fb97aa8be92a671d7d42c0b60fa4532b", - "0x99e204c42afd6d4040faad384517d99bd0e077b03310d32223234d2251d6a07c", - "0xe342c0c4295665b9e25773fc9998e18c460e723d0a14efdb59c19b27b9c7011b", - "0xb654b1b8ede0d54a605cda54b4635d2b3c2bb8efd01ebd416e52cc87b590d4f3", - "0x5daabc41eeb6de98336411a03ec0323995e81549941cf32b7e15c765d1b7b39e", - "0x5103fc7f0fc6df43fb081b580bb01476f2b1cbde73e4d0f9d1fa6d8427fae789", - "0xe2ecf5daba51d2f7b22106033fc43f956bd1db0c5ad02bd941bd3d2b96ca21c5", - "0xf152bce5c6d1efb7e22cde72d6b8ca37f556ffb686a13770c5fab46e04837c92", - "0x306007d8091caa5baaa78643307f5abf9a5f03996fc072a9016ba6b487b2017c", - "0xf57308d0c02c6b8e2416c070554c7e29911fa84ef4cf2d934e2322ca262e987c", - "0xb234fe7433d7fd71fe0c6dfc834e4bcbf84a261b95760a6c4eb67d222b9ff392", - "0x753059f3405f60da3aa7cd1aa0cbcfa4d5ef4f2a6ed34b853b2c5ab2181fd383", - "0x096c6630e821816d9f4bd83fbe0ccfd223282f34aae5a49f969ba30b98c324c3", - "0xd3eec9dedb057fbc839c474fc99cb54d89f3f47d896e06e758c98f1cd194b61f", - "0x0d44cb2a83b9a3fa18daac280cf08b46cc637d705488fd9400cd7300475d0a1c", - "0x2e37a3036db99c4cb1c135f5ca6b527fa13b2e80ee421805b7be5d8b16983602", - "0x381e0ca505308b7d3a083e60b0f9cb44c89f84942430ec9e4c5571796ab6a8eb", - "0x90b04d35906c6f5a59c266c3bce7c2b63cea1486f714e272592ef9ecab25b0ee", - "0x9cbea70e760f2ee97537d058d57f395886a2c3a6e769ccd3433b797b8716517b", - "0x4e2167846e8d6f0f6495b5f1443f59bea143b63f242e40186fc6429434d1136e", - "0xcaa0512739d000bb9783fceb46d0427098886e2b7f2e1140855f1a91f843d5b3", - "0xc14df4e379e84591f618e60b5953aa6764146c7822aa1f0e3c2287e20753985a", - "0xf4443154c04fd378b2c3812fee84b774b37d6e12778674403fb5c995379df866", - "0x1a501c2733cc138fb6ff3716899e08dbcd4d75edc18af8972e8a749e45eaf67a", - "0xfc8cb80bb0d0fb490f29aae3067641eef72e9225c558e7e299e0796a2086969d", - "0x2b7895550febf03070485c02d521e7ddd80b94b7fe33a60b7d7ea3545b13e7dd", - "0xfc4137c3cccd45050b5770a40b2f38c43c62b70b07d17bb6d762b405f3d753dc", - "0x86ed22bbbb9fc6600112b91601af4fff56d0ecbe9b3099f91d4477cab8e300f5", - "0x2273a60405ffb04bd024d880c79010f18d58e3c8ca0dc82795a0125364679fa6", - "0x00dfbfe7be3bb2116d9a603a01ac428c0088a2c1477810cd5d3be0d1bd86beab", - "0x7acfb03315585c79e2a47dbe847d24cab0785791f6af7f179fea4f9d6ecb0e0f", - "0xbf6a2e20ee1da5eec12b792bbaec2531e20766ba54bac423011c1057215851db", - "0xb5e94d1e3ba7363d1d79fb62dedd0b6c26b0485052dd64a7093d41ad2d41b890", - "0x9b0cc26f08708814960de8f280ac26d8ed5089a19bcbd2d765059306da22c196", - "0x22d8af121d3e395d3cb4f6ee43c06e6292f1b5ffda672d2e40dba69a2885f5ac", - "0x04bc174272a57189d76aa17de0f76806e8481f4903575ed8c4df12b042637e0e", - "0x06ebd2b6ec4b80280969a92726df5f9cb12d4288b60af617b7040876116656d3", - "0x0e9430513e63b5173271c89b1c91af0b4818d5d14a3034e1228c56c94186a109", - "0x8dc5422ba98d9e58112b052a00d4b82b1db32e22dd7ff2d845619899bd47f277", - "0xde513d40bdbb1e4956b468cece598d77134626a900066b92fb2ecd6fcb5f81c2", - "0x90746299ec75af1eb444ad14ac666ee444aa020fac3fb57796516d8772ec8f45", - "0xaa91c30c62b24f943ee1eec7586b682289541c0355c2726e44424da8686ca24d", - "0x76eb68baae9fb7ed126097f93842dcadfe6e7188d61549d9c0922a9b3ef8e80a", - "0x5aa5b4045e7fe71559a6e93f4a89b135eaef38b9a7f3a84e383ab1ff902ceca9", - "0x504b78f8fc3646e9722e96a5e97d99f2560d4fa3337fa5faf1cc8c8a05f3520d", - "0xffd7a5d7c3b21e8144f7678a9ddc039cf85eb32b09000a600c9f12aa7d6083ed", - "0xcbb4010000e96ff0b50b9627dae032bd50782ccbd51af8af7cfcd6cd184675f7", - "0xb96fabbdd02371bf4a6a0dc00e3874cf43d47246e27163c910c141b6759a4249", - "0x7358419f4e994ff296a37f2e88b238b3de6ba73062073c9467dec52a2df64422", - "0xca90be9f190a1fd0548becfa719a6e4763e92de0e4da4283a33b5f7d2886b425", - "0xa629364f7d6329b008d9c6a0262327bcc12953aa515cdb7b8817e7fe1d746d46", - "0xc5167bd8cac1ea6d14f305c9d4fe075e1875d96353e5236473b6daca5ae9b4fe", - "0xaf4ce2490e9504172a4393cf14e691e947c86a0ec7b53416384a5832b213d6c5", - "0xbfa4853ef2eecc5d99a90e1abfef37ca10c1f823c1d0ad59a1bb19339861241f", - "0xbb5a6584cdc7e4d06ec5fc1514233cc42970f6c332c3a9590978dc9908e58c0a", - "0xe69d7a0766db411e504f09a8f39f0583b2869016bbe95f21dba432bbe8b88442", - "0x89cf4caaaf200881779f5fa6da8ae91ff1c962045dd0622b5ca65c830d3a9d4f", - "0x82d66c631f4c4167e5301d896dbdfe24d8245b1de041fc85eaeb6e35117ed9a0", - "0x957907bc93879681d8682a188622f9bf2c7d2595dbe3e2e34bb01711cc4124d1", - "0xccb3a3380550586696abd3ac267e85c7516b2b682b3c48f66aca94d57500f3b3", - "0xaf56d4650406e70748dc860a7879d8d522599081f8e7011056c976b860703e43", - "0x5d96ac1d2dff8a054d880a44f5d45a1bd18aba29085fcd633b0608351ff1876c", - "0xe051736dad8b9f93a8f1c13031c2b63249925e152685a2e7ec188ee089861b20", - "0x0db8987339e1fae41af5f08e6fa15da5fd80de3431b54e82cf8edbdc792f870e", - "0xcc99097678110af2be8dc07da8d642dce928b7d9e2728fe6fef1fe2eaa81a72a", - "0x2428c1f94ca57c7913b011a68281eee9ee4855e4ed2c97e34a370e649b21acb1", - "0x501ee9580c89b1f67c5b3b69ae5fd1f83852a2f9330f53565bcd04d8a7c0b776", - "0x16ae47cfa19e8046f93a579fa2557b17aeca7892fc7a82b6d539930c8b7c95c9", - "0xda62590043ca70c1cdfc7969cdfa853bddbcef0ef62aabb9f372805322511014", - "0x481b4aeaaa60504c94dcfea966840b381db85183c34cd25b4857300b5c189003", - "0x035dcc47f8670a9f648bcb0232e42fd4876243a7a3bf737b88d723ba187929a7", - "0xebe9bf09e3577865aeb341a06f67bb6e607f10b04ed9f9d733492a9d0e9ceb1a", - "0xad5d85b58af6aef7f81bd6b2407c6e4884ec82b2ae2aeaa24e379a3d35902375", - "0x0f0dd63d7c6c284659283825624140b31a3adaf7cdbb2255faca443e52ebfe84", - "0x40079be1c9394e95b4823895ed380d79333ca2085aed2abd0d766f84d21b7b42", - "0x7cc40ed01b436ce225a3f9c5c2bc7f6f81aee40bb83a54bca2fe899b15f3e2b6", - "0x1b6356e1a83ca5b0eefda1fd62fa959b118d2a19a6a90f182a53414b3fc7f9f0", - "0xae4a71712cc96a5b30b45e3b92c339c2e975e4ed683f4d1fcadcdc121ff7c6bf", - "0x226f6d8c71ec32c5eaab6b01c0fc1d00ae95e60b383d09560e90549b79eb1447", - "0xf3dec779841c9384df93bcefbba8700a292b570b29d286a7c9c5a442b4788a20", - "0x63ef48e80efa45383857adcb0f31076393260cbad058d1938345ad13faae50b4", - "0x7ba213077278bd01ff874e760c3a0bfd4e5cf65bb18eed8b0f8076d81e16d05b", - "0x92eace1cff535745aae658d9ad90c372d41ce318a20716ae3b2c0958bdb48b33", - "0x76b2607fae8dbe532d8516c4c33e309f2c0a963bb68035f4361a2859d62d2daf", - "0xfb0c46a588438f4f217e183ef7772b649b5a45a318253496b01676253dedb568", - "0xd6dba12c700a0c5ca59b9d17f628066405de8e4399f92472cccce2e25e70ba4d", - "0x2390984444cbc9de301adaf0853f4f6ed2fb56fefeabce717306cf1e40da9618", - "0xa6992b0db82c50ce623febc7f16c8a316ce262255de11ad1914316b3d986fe66", - "0x96787cf8e0a70ffe5b84151ae8219362ba6d9465223c23c135590fe4cb9ab592", - "0x0b4e7fba24f6bed3790b8fc289e2715d9a3f4235c9316dd9d4f889f710a65ae4", - "0x49585a7af98ad032371df01c458fab933ac399ff4d2d35731a2d86fc136b5eb8", - "0x517947f22d8d56466dbb496f3e98fcd01864176af19be2112f2260e55bddbd58", - "0xbc0aa38cbc79c3557fa81e446071e6d531989d088c6311060bff971e430fa36b", - "0x5a0a88750db7ad3190dcaaf5bde2649e6fd99cc5b05979fff84ae689ed47b51b", - "0x9ad902d6abe59faabfa5fde485c2fe16f6f3e2c41aa8bdaba021e94a3c292dc8", - "0xbd6e7bf8b466940b9f619e3f433fb68c68d344974798996e454c925e2628b1b2", - "0x112b5e9d438eb79aa9d7b4488b6aa9f7edf7599dce805d8781510302da45e9a2", - "0x881255ae2cab543ee6b429e1b201c197cb35051d53f881cb51fc58f9c760e51d", - "0xcf56a4ed6b771e4905e6ba888390526eba8ba3483ead7585dee00c0eaea58cbc", - "0x12705d1609ee34bce0c82bab9da730452db57863371f5b84de84c4c135537237", - "0xa9abc081a75bfcde86ea830483be240cb3bcfa72ae34a16dfc35cb964dd7a457", - "0x65cf0c91f8567d8567ac3f00ddc19da0b916179266c7e42768fd5d7271e91092", - "0x07f15ccc91a47edfe9b67a79d05ed1da1410e3ac16e4a4c2147c3ef0de26ae62", - "0xb44eb7db9e4dbe8901bfac43ad54ef27576a3ac0c78218138715e03b3f9a782e", - "0x9ef66d20aeccdea66ade0fe8ccc0a85dbe9498305509c8919b670ae8e854a450", - "0xb10a7dbd4857f910ae8cca5d1b7a85923adaad65c4b00d1255813efef00c646f", - "0x20410bc64b58a1c221f7b38f293700591692c73a785d94a5548b336bd5db10da", - "0xed7176f398eb75ae6c1d4348d3882aade99573f8369ef00e809b1ff91b5a9191", - "0x35f06785e1f7e362682e969586322b1588624f6025692ca87db21cb199c382f4", - "0x9a6b06141660e2bd106f6d46afd2f3e64d72711ffe6a9c495887bc3932f7934e", - "0xd64e602a976e86d3948d0f4cf0b8f13a63558d5bdea5affb36eeb91007a653b3", - "0x71050553ca1da7234764a5486e4647fdad00652560eb47102c1d0fc039b4b63e", - "0x53ba43f79de58a957e8ac0d998ecb4999c68f423b1769d9e8df2405259dcdaa6", - "0x17b33d269609bd90fac57eaeb298bf489a3b8a985cfd9998d297c7e0628bc84c", - "0x9b47bba7ff6b283e76100e36246c0dcad836ff29a674fbb1c6d2f58e38e29f92", - "0x262f8387628500fa26e2cdca6b5938262c8fa81888daed41a09d880df136167f", - "0xb6c6d0ed2824a9818fa9476c99a810cf33a0c1fd3f2fb6b7a44603f2442525e7", - "0x6f3437e677dcc60cb587f6100eaa2e7ef5c76b57023b63ae61a6a8ed2750512d", - "0x4bb5aad759b0c6390cf4dbc6c32e78f2721c2be3f40ca3d11de880fbe90e456a", - "0xfbeced3e048769a07bfd50010de59cd24f2c534234abc1ee7f3fe9d7e3d9f482", - "0xbe871fdd431974370e8156fb9347377d1bb07990ff60296abbaaf2c38b4059d0", - "0xcbdf566fceb5adc33608a847c77b6f3501cdc4182ba98e04e1f7e8b8ae66ba5b", - "0xa06a5de4aeafdb5981ae02004a38c524116ebe557dda83abdf03141e4dfbd4cd", - "0x73660bb361b94287b85b6c41394bea5447e8e3ccffaba1772a765a8fc0fa9b27", - "0xf80439908d6173fe4fea42aeb07ddea2c644e581373dbe9dbb9d092f12fd2125", - "0x32d935f078bdbb9ae693bef4ab8316e7da701edf42f156568b639193b0ea24bf", - "0x8ef0b9f247b5b9d9e5a813877d03a518d1f06900e2fdf5743feda3537ab3777d", - "0x59f92f14340a77b94839b6ea61389691a6fa5bb2ddc5b2241e873b066d37fc61", - "0x0288bdae302901b701df46263f4b12bdd6bd76436c3ae1626936e1b4bb631ca7", - "0x2fcfd5a54d6bbe07d4063ef64fe4b164bd8cb89a8e03cb5fabee98bfef280e43", - "0xd8d1169b3a9aca48f167cd43e9617d3ecc74658ea61ace251beb370d3c05f86c", - "0xdb2c3ef7b8a8a18ad3a8ce7cb8a6be2e1ef2cd694fb3f1b2e0732f2e27c758cb", - "0xfbffbf26f4756bcf1cd217686597ffe9c1282a70b279c8b01ee5076ec31b1c2c", - "0x2cf1404cc8482698eccde40185740753c47319b1aa30d9204fe53922feaae9b8", - "0x553a9e079d09d3f8251947ab37891027fc3d041246f2e43f01321fc3523b508f", - "0x35954f131f276933c7ef3938f35c6011806c7dd637fa249451379003d740cbaa", - "0x1ee7a658e8a2368391810667c35b8b0e321d381907e2312e7789a3cc7b0341aa", - "0x4cb3c908526bc6ccbdd39d855b3b3649e59eec4322bf48f07598d98240101d0c", - "0x996eb99b0cb27fb5ec07873af17933f377ed2c131f02926bab74341c475a95a9", - "0x68a90de2c8ea439db0417b77a23eb66e7421268335be7e4f593a52b1093681fa", - "0x4325afa26bf545951a73c016d866f1c71a5855ef52202b7ad0c54dc23906936d", - "0xaf5111b606b0e6d699bb4fb61c8a0592af7eb45dd7357b3e896ebc3e798919ad", - "0x4de03498b2d532a8eb01a12edea2a15b8a907d6d23ccfc380507a5d294abce99", - "0x5d642ba55dc046ef1b84fe594ae2e46b844cc6590d580e2591ba9c0c1c942c24", - "0x8477bb69d6d23ae4f45e56c372d66f42ba7417cf5107136081b5ccdd208b1545", - "0x924f641a7cea7cf76ad8920b9ee7c39e74304169571b028fbe40e6ed255a90f4", - "0x4b39dbfae8635f286284009a0213c6d267d5f48485a25f2df855c5cac5e7d6ca", - "0x61827bf3a120a079111665f78ba2e5ad15943492e4ffdfc708e235f44ce92842", - "0xdc0c0dafc340277058a6f8e03bf4e5e733e05fa638e2a8c4ebe4521960bbdc20", - "0x7038c52c4e92d6ed20b19481ed63d432325f94ee2a3ad4c0d5e25fafe5b32bd6", - "0xe1f5a1123679ce45005d53672018e16648fd44c4a2251802f295d29ed876a0db", - "0x173a332438a181f6cf1773b2603556d229254861534f34ad65b2170b0cf47fb5", - "0x22a19ab1d828b5d05057f40f5cf798e27ec068fc584968987b7bbe440f52ac84", - "0x15b3e3b6e1de6b8a407ad7e325c53c4bfa9e73f23c6f3acedcdf68d759f73860", - "0x0347a8e310cbc921daf829002ba0c44399c4dd7c930ac1fca203272949e09dc9", - "0x9babeec2d3003ddb15fdcb89ec7b61c0d7f795145b58f55a17810447d5afe5be", - "0x62c14ff2ed414ede1e3fa7fc2fccbab0b8f284b9f38127823c3dc9eb55a08b44", - "0xb301a7c865abe0f42d9444b5c3b775dc6ab4c99effbe8d54cec29745ff4af01d", - "0x3fabed16363d78f34a13ca6b99cfc592671668d4281c5eb3ab07f4b9017a4ebc", - "0xb14af7c7331f7b5518e04bc31c8c2b63d9d497acac405bc22e1ab2431105b867", - "0xb7b90e8852ae132f858cb98635fd6e1267b141de7da6773ec4092d5c83def42b", - "0x1a5c8bed811fc72de8146516cc4d668fc4557baf48082503a2a5cc0e473b6e08", - "0x0060158b427095081a18fc57c4f56290873188960dc0e4d2b16cdd57b5761100", - "0x2f0dd546f4982d47b6e04ce282b19be8e165b5c89b5f03c1ac8c6d8be2af2b4f", - "0x229d31a50f46afeda23a2535c8b011a827383c981e7e59f67622359e4b307a10", - "0x10da7b2e78954845b506b9672ff93d3a617f187521116d442b364a1178f10f08", - "0x511325c034c772ff3a61b1c8d94e3c13f19cf1e93523a8924666833bc1e5b0ba", - "0x3a8b0251b2f7c99774d0a7863388422723b5405fd1db035ec5e30df90306e251", - "0x885c3b0507dcdd6e1cec187cf3d97ee12ce101ccf63d99c1c7fc77dd57ee0439", - "0xa76f1fdcf546ccb62f86ec7b85bd8eb662f696d7aed2f2ed2b3c769af90897b2", - "0xbec073b15a35de54487b60f92615cd44dbcb5a5fa9d1bcca2ea31437b2e45756", - "0x662013eba4201630ccc4a9b6fb1dac36f439cc6cd2b6f295c0260713d075108e", - "0x81b0148f7e690088330650b01c52831d50f3d30ba2fd2074bca5513c179ad30a", - "0x01614cb8f2f2bd6794a20513fffe99a36eee526b7145405db15f9c2ede980093", - "0xd3d8664a5464c8f681e37265948c4046e373843e602bee66c8583277397db258", - "0xdaf61a9e7157100cce6ea5bc405926fd4190fda7354edaafad9b6e468bb24422", - "0xeb05144e032621f7b1792dacbdc79c044a268442a9a9284ef1b2d1d60cadb29f", - "0xb1916e802e8e3eca2570d1a190d317cf38cf9f6b58119b65ed0d60b9749461ad", - "0x17e103cb26e7c5c7678a523f99f90387490bcca00916190e7e1b38274c52a375", - "0x105b8126ef037364f46a44fdca4fea1ec4c099de5a05918688249fb8844dfea0", - "0x7ca09f536bb9f0d7b3809c086918ba4750722edfd47153a8412fc761eb4783c8", - "0xc988cc2d92dcb85eaff8cf2f70ca49646cc5aff6c8e10b43a0581193137d3b92", - "0xfdd2130ac413b161515a29d01f0ea38bbe234e30f9753ad3eb122b0728d8e1bb", - "0xe8945552bc76c1db98d0d6453993472e75c489d696964a660d816a31d3f2c717", - "0x3c6130c0f35013d1d2992067488a8a7bf5a7b15d3ce00cb5708d79dcf8eb45aa", - "0x7be79941a43f391ea4366caeb6482bc5b4f7d85f55ce6cc91d6300822550417f", - "0x91ad8008733234c80946a16cf729423499a4b811d5b457f56268e0bb2825ad83", - "0xc3b17bec09d31d9a4a0902666e5278cc7458de8b663a564a53c7fa04948f18ec", - "0x7f527fa7d7332df12c625bb575d5a02e86b4a9188a9d75757b172d7a43595e9c", - "0xe3e2e24bb98bad170871a3803860b30cdd9e5bf05f4df69ffe859f0cad8999a9", - "0x395e940948704ccbafbc84b561d7e86f6c414b8fd34cf23692a0b1d2849b880e", - "0x0d90ba6d9cec7bfdcd8c089dfed671de95c7496c6b47953739e92a56b5236bc8", - "0x82132c33f678819d7da7c778e4884b0f7d10e1f0912885301277a2ab1db2a043", - "0x546f0ee2077c529d97ac29fc0a29e4162b6fe95bef2d0cc1a073a3c595185f5a", - "0xa08ad1abadbaf6ac33ed71893b2953c30c82b537f2b7efc4a823936f3ce407d9", - "0xb9a456deded38627d6e464e28c5c8e8c562b2f6aecbbb66e338184621aac5893", - "0xfd848c379f615abf2c6052f9f91c98e0ad6f45b5760f3b230bb10a02ca8aee01", - "0x49c99b4e21846ebafc7823adaa6e399a0ae22cdd67ce991ec58b958c871504b1", - "0xf5e1d32f10b281eccccc28b26254f032bec66a00620d46bb0dfa32fc14fc6d57", - "0xaea8fcc3dbc2f9af82c6eeccdea1030a74bb42dce190cf661471ae4fa052cc72", - "0xa30cd039fff05049b1ac82a3fce3aea92ab1ab058da97add8aa8fcb53b5fcc31", - "0xc8c87727a220a04b5cdc90093fff70aeab14edd25b90599caa559515e9f472f8", - "0x84f99e738a285033f43854e9b639691453d65171830dcf8c56cde6aa9a60100b", - "0xeaf3d87e7ecaf90c4a261df30540595c84f0fb43b9ac3b569120bf434b4fc521", - "0x8dfbe9deb689741bf6b8869b9b812a339bd70503474d75842ec4f721ba5e5aee", - "0x31e62e35c4c24954e6844dd9acc31cf21c44295d3744a76a5b264ed9ab19291a", - "0x764195f9c0d486dacca241ba5bb0b4d74d936080687243c9c6d2c0b608e684cf", - "0x45f0b003dc4dd663bc90b40be14a5d98be20f5d1041d2007210ddf257aacd866", - "0x1a2f1cd3cb0e86824ff55d52bff48d8627ba8407f5f8e3758f61edcb20084752", - "0x786f0ccd1548ff58c4ca0c3a5d648d3cf7bb6588acb6f1f84938d0fd7ae10b11", - "0x9e2d4bb1a3de0a602d1596cbbc712eb1259779cdc285ff8de412f0f53169a74a", - "0xbc3375f64ffccd58c1240d89f8cece571668280c567bd694607b10320e19d5ad", - "0x06b2e9aebfb6c5c7fcf3d1e33120c0f3ffd6a02b4ca1901dd2a7ae3b282fed24", - "0x54372b1e0f7456e69d4854937f5a3472d531e0e8be670fd1e744c1041025d2ab", - "0x70ea1c88193cb99b052c07319dcf3546e34559a28fba6542f8149e46d76a2836", - "0x36d80d0a12903b84079c4a3da17f44368db717512412f60e8394612d3d24edaa", - "0x64eb6681ee0a352b342b978bd937828dec322782927a63db587fb8c2fdacba0b", - "0x582bdc0da00c07fc327fb269a5990cb33e3b6bcd0e71d9193707fd7677935f45", - "0x43af6e0a2ccfe62ed7cfe8651e34a39ae114a1b08c15cfb7aa587f1639665008", - "0xe3e9cfaf0484e3d527009c370f9bf2f2ceb399bbfc9157033df34b1900598451", - "0x61d947ec543d5c700690aeb6f9f217a375a5ac1fc5e6899ab0a3ca3b2426a699", - "0xbcaba983f9d702008ce43e3f25f148596f128c436c35bbd05010c1153329121e", - "0x5305ada22ff089aeb56ea3bc61c4c67e4edaff1240a401f40d4cb15535825891", - "0x631e3fe402db919ad0b62228dde50a7703845d43fb86ba165ca3c36b88d35f07", - "0x87d89ac00db143c114f115942290ecf0284e62a3d0273c712015f6e391830714", - "0x74294af565afe5649315b50402ce0ee4ee93a0fec3de6a44a336b50dfbd33965", - "0xe13faed5afced183f1f468830b31e973d3b626b5d29102a6dd156ddad2b52a19", - "0x9fa97b97accf83a4d798da116d267eb6ee94e3e8a45ac96c15c6ef532ed583c9", - "0x13b60328e4fcb88f1bbe1a7dc31bf8035bea971f2a955adfafb1c80cb50540fc", - "0x4ef647f57565fe4010895ce9192b20f14ad1bfb229787d31360dc1fba528f097", - "0xe663f00eaf821cea5cbb669e700c6fe96b39633d58d0cadfcfa0c305566ddaf2", - "0x857b5e1cd8bdcdd477544ba847f2bb71a80839be83cd486c80f49ef5f03aa05b", - "0x04fa22e5b2e1295eae08c160d89aacf5988fcf234abcd6559d08ac0ec819b7b6", - "0x606b03cd72b48f84170541a8ba5e7473f7fb98663bd275767f4e8895dc5fbd77", - "0x8c1760c6e57e8fa0b34b521db41a91002398ae3e4b85b7cfaac447a4fd7b27bb", - "0x686f9726353dc21d8fd91a5bdb6720c815cc1b069e01a3baf51ebf21646ae27a", - "0x60b2747f88f74b6b8a5fb0bcf4f206806d9c69900f31f397145b1ce324bc4b0b", - "0x96bb8834eec4e8d652ab2d1e9904d4032707265d2531435305286ec7565ee333", - "0xae1372ae1fb3147d1e4f94a3b840b11df364781c60dcc2304aff67a1888b08d7", - "0x9bdf500fcdf7f47b16dad00f193de77d2feaeec4a3844c7a97d9d6fe754be73d", - "0xa3ae272c20bed715b96a6777f9927d654b1dfe285e3bf077a6c144118b3e689e", - "0x7b20afa1fcef7bb2c6196d8316210d7b9e8aeecab72093a2bb26779e440246f2", - "0xb6045904522cbe4e29efc67632ef662486ad4185e608b1a43abc276c869d3a44", - "0x99ca4bc614cd61d858cae5fd2c32e2fe8df6a713e5958b59eb5933146bb795c6", - "0xbcb2fbbdd294aefdc65c965cbce4f690cfd08a39fcb0fe4c4500efaa679fc5eb", - "0x5bb1c10c53c017dcd92a4fcb9ca99310062e8f2689d521afc4536777468a2c0c", - "0x8090b4334ccb0abca3e6ff662a6d6f296d162a38405600d0e229fe6622c06e5a", - "0xb148fe3d9929ef770c7760c5c2412622523727e59aa79f42d8e8f668112b1058", - "0xc452602f20af7e252a3d796dd685b6fd71140e522368f0fce78eddd3f310f696", - "0xb7da293297b71f6d82b4b56d4b02b20e795745d55933df8f32b3990723dd7200", - "0xaf1c9b7a8176f3696d8a5771f5a7d526fbe65c7ac17b6160cc0a7f492ad15522", - "0x675d783d4c5fc56106aff1de55c569fcc86d7ccc9ce18352c84e8d657942babb", - "0xa4cc61043fabb8a135225ee23b39639a21b75c225e716e78d19ab3eb5f39570a", - "0xc5967661349eeedd834aac16a2ceef215408baf032f410cae4cf7dd083448954", - "0x203aa3b0b91c11255c488e0685205222841d3547b0e8f6389fdbbd0ccdc5627a", - "0x707e3c95eab2259eb32d56153732d885d4685b9b4768e0c4493080c158942d10", - "0x56d6ba323b3e0aed6db776187e4a134c0329771891f0852218d7dacbc782786b", - "0x426e78c3799216353a6f1cbe4b821ded6c2ea2ac5abafba43ef59498f3d963b8", - "0x136a788a8f606960fdd307226f17208ed25ec11e20c8add70f4d7bf5a7094674", - "0x20f28a3ea3e2a1673ab9bcf21718ce65e9992542761df135db1516d70b7d1048", - "0xfc671303a07b11fb347a93ae05fb845c87497e8875dd52f6fcb208889c7a8ba2", - "0x7b1f68460d3722d0eabffaee4292cf3a8a2c2332bbf2b485ac29fb67e181d10f", - "0xea79ea4b46e60c2807a89a4e4495fcb27d1c0b232ab0dff897c1c29b04302c4a", - "0xc25e2f5b510d3948ebdad351b1010ecdb5eb9c15b2b635a2f319984d292b592c", - "0x9b798bbcbcd0b558ca5d0e99b1df69e717025712d3d0246277ae5f0f00a379f9", - "0x78cb4f6097f57d685707514f9923b440eb752c50e81e092e76568ce4071dc6f8", - "0x624c3d908482f6b307c41fd261ceb2e8e7705769a625a707581fba8f7cf6880f", - "0xc1096286b083b2b53df8ebc639ab336103e5071d5ccdccafbd51b2611e98263c", - "0x82e87c7e6dfee36822f908d9b83ca0ad01d8cb04b71076e7c095f277ba2f9721", - "0xc59deb5cab98581f72a30ea5b1d97d58d60090c3e4a38a80d5e95dee4d1beb49", - "0x46f6ad8a11ab6018449094c73fd6f12c2a02dd611817bc477e5896728a9ba20c", - "0x4fa31cbc172bce1b96902fb4668af7c5edb9ad0aa4aa88556bdc92133ac917ea", - "0xb1ce16f5fda7050f441a68ce38878f3b0f704cb9d07b09333223fd0db1e224eb", - "0xf9e6d6beb3d3cee105a56558c1c80109b7c3f640f92750d32a953490c8e49a03", - "0x1cc0660cbea7fb394122f05c509432939df206198be388f597a63ff345542371", - "0x8a990233ea772a8b1ae1a05067efde8e2bce4c0aa868010c9c930d9578a52b6e", - "0xa8898d9d95ee70ef7b7ffa5341ab778d66fca613a81c527668451dd2f0187be3", - "0x4976c79c14b4128a2dea82ecace675729d7197d06d512725595efb5d2aafe544", - "0x7459ad72c83d2250fc3056ce9a8619dfd4cb3f3b79530ec176fc1b65a88344e4", - "0x6d3cef3bd8181100de92a00157eb1d3452f74d5a650a3e5456e31c8fa64ccd18", - "0x8d1345230024f66514d00c72909572866ac422ade832ef17960de0172e288b7c", - "0xb31c61b316759513fb717ac7276813cf6e3fc6c8f69d745aa88131fa4e21e2ec", - "0x1fbac8f9060db69f1aa812bf2a5c051494aa65585835c0e04a14eec0c257a4ca", - "0x10970beda37aef785a26c1f67a6825f52315902c4acd0c28f17c28ba5228d56f", - "0xfd5355b1205e4f257c805a42b37b748e026f8a640667b58ef3f365d65b3ad7ab", - "0x289aaa44b27ebd9b581eec7fd02acb26f97bbec0941c0263bdbd52887cce6ad0", - "0xb12a4b6602795d577ef7e0c08d495efc81597a9720383cf5c62799c69dabfd33", - "0x4632d3a3a2017d16da2ece45589f41336a902fffccfd3916b62bf5c07e4566fc", - "0x848fbfa0ddcaeca6215ba16631e1a8e0481b5fa8d6c10bfae812b9db3db0314d", - "0x70c99cd948afce544597d8a24d4f8e836ce41a6dfba6ae92159070422a978fb9", - "0x2016276d24935e2fd488692618db088a6028456c30b97bf25bbc25d06620f2bd", - "0xb72f4cb68e8a5f7cf2095dcf5e7622a988ca2116a1f32c9e0b2f10d4a2f9c5c5", - "0x160d284bee200cfe4a094e7fba3d2e8aaf79eae7886f9455a72afe3a4d34c1c1", - "0x1d5a091116bf6097c870c4180074fe5370ccd190d8495fbaa6678843ddb568fd", - "0xf3cc06c8bdc245b17df05526873ea94b29016820bc7a207e84bcdcbff3d22bda", - "0x1ee426c0c1b7520ecdf50a1f15aa8d39849f4b61307bccdea0deeebd3a231eb6", - "0x018590cf655da681e4556da40944bc47a039356d0ce2bb677d00526c19fe7d56", - "0x2c58a5c7c224c771884d5252ab800b86b68934ed08ba39a13eb93bf2fe5bb4a7", - "0x36327e853671045ceee2390b141992d00f2e28fdee633d9638338830b638e5aa", - "0xbd197bdbc4720b20de016cb3e4ae5bf01c6982813e2b7c8ed68c76193070db49", - "0xd5f211f9b9671781c853dd50b4532ba7623611934410d71358b879ad13cb3def", - "0x18cefffcecc9763d7b8e7b5617e54286576ee981ea7ba886ab88435e321b8620", - "0x1ea84c5209f9a523416b82d780a08f7316c8355eb80d24dd84539dd33ae9cb3b", - "0x6cdad35eeb25f6b09c0a03fe367f859b66719463b63b280d8e15128fa598fa6f", - "0x6cfae8ad85b389eb5895f46c65b3d9277153177ad41ce7817bb8b9d2061a8149", - "0xc96a4f02330fa948bdefd1361b0be7cff9db6819007f624a1916fb234b60052b", - "0xf0020b10c9b330a73ae05d8bfe6defb738dba6e95571bd0897a7df2045df2bd3", - "0x8c31b99fdc9b619c1269c1724155b368586dd98a6324c2be78b1e96a265ab213", - "0x7f7beacc5e2eac7708d5df32d6a3c1d57d7133ab1f23f0c9de10482faf48ac76", - "0x72a18edb95e9c46bac4295caeaeabd0225dad790570496f32af12719eb201be1", - "0x84827cf9a51542f4b596ebde2e7a63620438e4404dc41e5b08533bb52bea883c", - "0x1bdaa51141889bf15e35bd1f7d7bf8e9bdb1e45993d80d131496aa552190cca2", - "0x999f63f4fd586baf6f00b56b8a60ba31d60353480c49a49f6196de0ff0bf3264", - "0x315474d3df7fac96bc940d288ce7286629b6f2d3a6d9375c1ecd8878079dbef5", - "0xff65bc9b2cfe0d26b16dd6d7f1ee247f7198d67b9075c7bfbfcf0af8e0fabd03", - "0xaf21db7dfa5c94b1d1276cb18af97dd57286fcff3395fe6897b2b4c21d3492a0", - "0x7bca2491e67626d968ed3c9eb953ef55005f6e92cd8d3879aa8d1c746091bc72", - "0x1ca1e8e053bd1ab7df8ee667e40eb672d1bfc6230f2f1f8cbb37a911dd154b9c", - "0xff0a0993dfe362458247b45863a45b53698d600798945d21a61185817195c473", - "0xf8ebd8060f16df4bc3688e1ae038205fd5b67079e2fc80251f6fb93f977dec8c", - "0x51602de9fa527f23030de58e60a7318ed5b6f13b16e74b549ed59936ba09510f", - "0x3eaab0754ddd2bc2be0c0e72974906d3b68dbeefb710735e22f15b5fbbcf102a", - "0x94f81d99473387ca87816038c2eb4ea655f66b64f22a4d0bb853989184362f88", - "0x81af931fe1599467aeaee038e1a78543f5df47f4244b1943edd5aacabe2f001d", - "0xc49179808d729115588351ab65972a7b2c2b18868c9a578dd512adfb4673c5a4", - "0x43b9d76f1c2bbab800dadc6ccb88b966ccda198e30068364cb9c0b9a346f5f03", - "0x1c9ae4b3977a1d4969ef3d950d2c74548c8b44bcee652a65f7df128511b84e48", - "0xa06a1a6ba91e429f805640faf789214f42be0d8d574065b7daea7daa37b05865", - "0xf53ed26aeec7ba846e10a84814e7264197a0b2bf485c74d98e8315f0ddfd4b3d", - "0x57fa0c3eee29055cf5232125619ff171a60d2e8f0246af1ea8120969e03dc3f7", - "0xeca0088d30058eac4ecb7ce8dfa454e46e642154b7851db0faa430a01bf33744", - "0x3f43e499ddd06a059b192a9cb9881d15078157508c1ac30d687951454a22441f", - "0xd99f60df5d3b55202089a3a69147e43a021c5760485e0899116f56060ba56a92", - "0xe662a0a21e688b7452d0d5b6372bc8aeb00c589849f63da9c3fb4c280e6236b8", - "0xcc83d5becb2f1580e7771c576b97709778a8502096948677f1274e9b0ff444de", - "0x17cfc1a415766b30cfd1ecdb2bc8bca535928e1048803b9820e81d7058aa3b68", - "0x8e1410621e8b0edbfd9c98cd1dac02e6b5dc8336da445cdb00c16c457ca27750", - "0x3d8bc5d8acf9ff44f9099594290a91d47040eba0f766609f1dc034d6bb127f4d", - "0xbc32d05ddd709d4f7ba929353a618d70b8eecbe1d3b06010cdc7dbf053569e25", - "0x818d10c0a40a9675a1d87673d9dc55895b8ee337a0cdd99dda88d6c1d506a301", - "0x633d32a1adbc08ab373324175e0205412bd17ed1be4ee5882d20944c3439f77d", - "0x8107273c0ecc4179096f1492d21de076f84d0c4529ff6d563acaf85a8f5db5c9", - "0x5d8c25ebc9468667d043926dc4a6d28caaa6be696ba3e4d248ab7150b20fd771", - "0x5a8cdc39a49bff71df23eb7fb01811ce114edf6829f946a6155113b39480d023", - "0x72f7ce230da5fe9ad521901d2e1f7c88a20c98ea82fc09c240501ba327ff3518", - "0xc9c91729c335752f0e04f091dc181ce8659dfc13a77034b319c47554a5ff0bee", - "0x3773c7671613b65b8c6fbedc97c96ba6e3b8a6cf64acf6d1947f2881dfec93b1", - "0xb378b0953123036f313210f7e020441f41c81344b0437e5c947aa3d2e76cc357", - "0xcf3b0163249f3b6d1c9b756eddcabc9fb9d11e121dd96499c750350dd56cfa3d", - "0x8baa2ead915e991532ce72a856a001f7cc493a58016d3a0255cd416108357396", - "0xf748b8ba84812b2f5ac3b91b51402194fe08c1d15382d10895fcc8d4622b58f7", - "0x7ec5d0b6b989137882c20bebe11d2facc3e68e9a93a9b2c793d804d9e973304a", - "0x4512ed8b4f3586a79c971cba695d727684c6485ccadfff6a3db45ff93fb1e1dd", - "0xe6edc389d0ade0c7e558ffd357a7557af9f2d38b0b20c84a67936914acf088de", - "0xf2947281385a9b2077e6e8657a6bdfb9c93f82311bd739d8e9b96bf97454ade3", - "0xc768e9216d0dfa3da3fd3727ac4a673897567570653a8517219c079edd191496", - "0x9bcb33bab81663ac501a5a4d2f3d739668b42a6bd2cf7645c3571d58b37c60a6", - "0x540fda7f30ecbf8a61855b9619a139e502d8b9e1a3e72179f2399efb3aafab0e", - "0xde605b760659834d38aa120d97d5b0721eddcdfeaa69a716e44b35ef721c85c7", - "0x8979afdd57a677913bfd414f3c7cf88c3c7144f5168476e7c08518396cf8134c", - "0x6826b8b3aae4d8f97707e9751a4313738ad42861bac31090afb77a34f7214b7e", - "0xade12591565e41be9e81ac8a673324a680b0a9e6d980ede210c966b1b9252938", - "0xb2f3710b4e6c805bd20ad93fa0f254bd645b5c9b5fa299f1f8f9bb57d299e21d", - "0xdb80cf61e5a9d6b6237855eb518851f474d12db1fde3c534762e1f7d9367763f", - "0xc40c3599108f6057fb67f09e7aee418490af2a887d59f428af222519a7c03a12", - "0x0916f11f929196f5834bad46ea7eaf55716ec2d269aef9f486cac38fa7734831", - "0xd5362e4d43e3da51e12debe7966c2a06ae0fdd327cff666aeb7185b5d6cc71e2", - "0xaed4937eb0e5c9a5e6803cff864691f7ac63fa9f82d3c2e1ec9a2777d4d3f263", - "0x49f63292bb091a6d6e6515e5f822903da4a9e652847a7de5b0fba5ca69336ae2", - "0x7347591d5dc652262db2e95f65a570ae894f28a631dace959f6264027ae5f3c3", - "0x300ebb8f363f2921f5baa4ad46332bd7d10eb113679afa0851ede28a33ce62b7", - "0xff1b93baa7285220352ab656d513ee19c12da79c0c87d2035c148744164cf32f", - "0xd1793b3309372878fea3c14f2e4dae39588ddaa2396fe246b3c4cdb534a167dd", - "0xe2c7d728bb7899ab8b0ae0d07d585cd380a38f63fb9079532419fb5cbeacbe01", - "0xc972d3a0a76889c41d1130c52bf175526a5560d2fab7b28bba7c914a9b9621cc", - "0xebd731a2040b488d736e846efdb41ac5a6020e7c2b287249c105c71bf59b9504", - "0x8745a726f0e971fbe22c9b28234c3d93333c0f8d5c126ff9ee5000e26da7031b", - "0x3033928e0f79cc47d31814e409312127ef73a15a6aa915786e4410677942dc6b", - "0xeb77e57fc7de01107d1adfbf479a4c3a6ab5ddd008dab67069c5fb488551634e", - "0x6eae31a9b04e7d30e7781e33323f52e9f411fc7143b8feeefeb71cf6b4e86081", - "0x39ac81712892e1ca0cec0b63cb7d526edb0a276e6ff41369288f788d4eeff7a3", - "0x9de1c4046104a2bfe58e94215f59e1ce5898e3efcaa2ac6a7916817648e3b304", - "0x3d6fa25cdb3aa2cda4bf65a85927fa5b5c79d3ca427b6b128d34dd24aa08b5aa", - "0x8f5d95fb92d3eedb02da88535e4d0c9ed713fb2a6ded42ad8d2036306abd3b31", - "0x36abaa49a58fd335ecfe8b0ec61a68da28af30833018788fb710c3847dc3e258", - "0xe0224a4df20ed2e5cd78db19cd906d29bcf3aeb6f79135aeb62be16f766572ab", - "0x7584341a036595e957e7f7c09a5932c1e75e5a5a73ccd31fc2806b134a899082", - "0x1dd6909a77af37732b2e59d4341047ad85b610f470684433f2929673399c2fb0", - "0x5d9bf04171804ff9f2927a14176988349c0d0a86654d8a5897ada06ca4a18d02", - "0xa1714a70cbbaffc82a9018ec48acd7aaa70a5b6ed00800249fdd76326c5eb32a", - "0xb8fe04ca47841ffa34b5f17ce8922c86a9b98bb6d7d13c4b0fd27df931200422", - "0x308d034f42f0beba3aedda196573bff7b9c9852888d6f9e3362b4259d2c1cbe0", - "0x05be7b2c1b9f84273af920a4af58b183619b016aa20199fd6845eeacc479c744", - "0x613880fff823c896127092c2c4e0319e6cca955b650829ffa053c4b228429d61", - "0xca039f943e38b017fafd119e870ee80bcd19e7994b15449a03b7bf35c1a69add", - "0xfe29c86d46c9db3f2332f2109a81199c5f48730826755b56715a98eae6e6bef9", - "0x6e95261130af62956647ad47ebf45dba97a9dd684940d5b241a6b0cc36fc0b45", - "0x113eff6173e9551800e70882942c37723aa83d573f2349ac614e6d245411af19", - "0x07e9fbe087e6b8f4a2cf41373b1977823875a9d3be56b937b977503a20996437", - "0xae0792daa47529f8690d30dddb9e0ccbdcd3e4a3b3f0386f098b147c4cb3dd58", - "0x6ad953988a96ea288c407afc70581289c4dd6b8ffceda65f6d4a51e8cb7228a8", - "0x949d0b15d25fb79f31900f0e48ac3fef50b3d1b69f24f505fad87ca56ad883ca", - "0xf0e01643fc4c21dc3adb6dc1a0bc9f601af1bd4b5ed50ba156a280996d521db9", - "0xcf396c2e2018e5dc71ce2e8d8d2716565fd9ef6ae097b871b4349a487e0a6727", - "0x5f22e44bdf7a346985839c4a395f66e2fbed238f0463ab2b02d7dd23c4e25748", - "0x8808ab6e652afa85738443a808d140c103757cd1a356bbe2b409e95cced6fa7c", - "0x9ab3eb50f50a357020c69c9501cb2864febf0be1c04edd20cb1fce3fc075b7db", - "0xc360f24716b701218d2c486938e17d7b56a85b818b4e808f7c12c85778914f68", - "0x0e8388813ad36963923d68e9a223087e2e29282dec830d13e04ca444a6e1ed6f", - "0xf77bc7d25e80792e69d8900f5e77a9eb276bc13d391720c8b8a1c608deaca05e", - "0x0979a99fa0f1a046c1da8204f2912b3c09c6dc7d37e0b6dba11935e5af8b1fb5", - "0xf9327d2fb74c22853685a3d41d6f63984a354115af69c7873650c9f8bc2d31ba", - "0x9fa02b5ef88c4496cd054f6dd26f292e389976b38a22760cbb505f068754a60f", - "0x1dff7dbca8c5d169d2ad52a4434a01ef647f29707e59d4543053a8bc7afc664c", - "0x051dc8f86a07ed084afe4d14f0b39268fc5858c908056401586acd0c9bd628d4", - "0xe6776e7bffe6398d66564b7e5993ef70c7347287842319e585c7f844002d9555", - "0xc5bc5e2c1e26900fe2492019e11bc4ec5595e1c8eb68bc1ddde65aed94ab83b1", - "0x6f868ac5f8f7071b3742573d8f4a3aea1bff632f6c5c15988572ea1983e9e535", - "0x086a27e853ff55ef97cf876e0d703898eaa0769ee4efadffacbb8c03de35657e", - "0x00aa9b9ffb2837aec2fd6444802437a5dcd4654ddc2df584e1ca351832a9e163", - "0xd395a77dd37f2e397456a5385e1fe4e781458db37d3a6d8da3b1d5fb7c5558fe", - "0x7567bd55454dc888c6aca9481ac1fd6641a93b3d2f5d1bc81bab97dd78f490ad", - "0xb7e980a03060221442dc0f9487a6f0614f5b83ea23350d2de3ff0ae4e93d02a6", - "0x1b43c09f68af74141ab23bcc3402932257deece48af74503e6ca452ecd59d9a3", - "0xfde1e03da25883b8eb78e3ac92914feab4e7294eb78a94e801876d59aa559f8b", - "0x807aca1ff5c2132a7c2b5d67de9c536968755dcfc32e8873fdd296f807148d56", - "0x8f3160048010ee14d59c26c0c2767b78350023327534ca27b086feea4cde5910", - "0xb26f5f50bdef8212578eb07f7afb52785944811975e1671a405013a0fcfb88cf", - "0x4e14680b46a09bdf8b9046f62ec5a28b8edd5704c3cc91fefb83646a5dd3eee9", - "0x792f84baa0644328b9cf5af899a154faae97fbbae7a1e7874e6219085b271265", - "0xc4d26ab903ed6478fd9a0fa80382f7b4eecd25125b623c6dcbc4ebaf0d8b3fc1", - "0x906b46aba1de6a6e3692bea009597d0a8dc40b76a1c5a4476a9daeeed65c2b25", - "0x167fb1cbf8026a1af6c16ff3b18285dd9d934158a9b9ae75b90ba7895ca2b7c9", - "0xaa659098a8ed4e33e511872bc82cf758eb6c2b47e318899b4e4385bd32fae051", - "0x757c86586e3307882c6d966c2a88745e4bc1a9002337a5d137d83ef3d4496768", - "0xf342de6ecb6bb5579cfca4e7dd4dedd2c1a685287dcbd891fb918226eb82cacd", - "0xb025cb5c7c1d64a8138ddd439aa95cd9a4c1162d628dae1f09bbf8a225a49f22", - "0x6ab070192b7919718111a5b1d74862c48a5705d4e9c6b47a3a81564180c3526f", - "0xf9a23794eddea371183902ae36ae4b54387b4b8b170bf848dc24a5ea39649545", - "0xfb9dfb946dd83814681f93091ceb299d417d8ec8d28e2ddb7843d913b699a6a3", - "0x44ea56c8eabaaef19c9fde38ad0f92c074039d93960b51238c1b11ed2315163a", - "0x66f8ce000b102ea085a18cfb17e99f242e0458d0b0d9d39b6a8653008fdaa98b", - "0xd573e736c4609d90ade296503843c9a12ad8f3795eefb32635dce70f2fb17381", - "0xa783abcf83917308a63bee26ef64b010e15b62014ed560881adc3ce78f80c3b3", - "0xf8406110d71475627fa02fe434b3270c353eca0ea700bd196a9c42dd2e6c472d", - "0x5e3350f159e6370a741af5879bdcc8b08c44538dabd162fef2b745e9ff2828c6", - "0x915c517a16a1dc3095bfb9550f24afc3a60f442c9205a7ebddc7eed37fb267e7", - "0x9ec7f72f0e8d5509e3ec337b0c879f730c16c55e4259526c0816d6891feb1dc6", - "0xc294284cac5de499512f9b12707b5f66dbb3b635c1cc6d4419b17f40e272e339", - "0xfbda44ddfe4b7c31b915fa94a27aa01fcfb22a9fcf0b557f9788bbf48b3f7f32", - "0x4418fe011a16af7da4645f300143a6cb005650ea96ce23c6adb4a82f60f72beb", - "0xfd3a00e52f4cc05610976b0def190199543ff3e423f09f8bbe5cef8315f36d7a", - "0x5c9fee100da6ec53ab1cf96ca9f369401853753eeaea30bef75f6989faddc504", - "0x713e2e28396b62bc63ab0a3dcfeabe977bceece4057a687d157320358f2dd08b", - "0x62ba90cbd06efea1d7bb7128e37e33d94a21b246b7eb7159d2708b5552247a75", - "0xe13d2697cfeea63e973c7493b4c54917a639fcf13eb1b327e02acee353bf84bb", - "0x8ed199e2fd654bfc9dfd5e7ea7dc82bea9f4535eb480c95984a5a6bc1533bf8e", - "0x4e5475dae57c548460d4ddd15583223bf2a4a2046c2ee56ca670892794a37d90", - "0x80409971b3e59ec71deb1a158a92ab6fe8318cb9adebcf583586e23e42d370c4", - "0xeb35d7c78965874110f67b77307deae4bb29dc98c01fbac3737409ede61df7c6", - "0xd358b672db99b007ac54ef3ea7c77c0eb0b4e9cc1437ca4eb70d71aaaf84b6f2", - "0x0ca4c79c1709b947794ae73dd3b73b357273c4e5cfc83ec85c4c2b649e10740f", - "0x704635b2335b5ad2be0e586e60770dc1e0548794ee2c1670cbfbc2ed0c1f64ae", - "0x6a6f2425c865216b49e7e73026fd2e9cc02f131c0050ce849f274c37828909f0", - "0xce31e62ac098db0fef0823941009b826d4e5b8e11f2e01208ee6abccb160c0cc", - "0x5669c0e6ccaa8abff08e944fe8bdcf0001dce9c10ef8b90d7f821819e028dcb6", - "0x37b59281d4eec501ed45d68c2bfac450d336ee5a18ecb7d2d812763d2cfd4321", - "0xfb52f084a5ffd63001f47acdb2ea62e91714af63f896c151100350d83bd2c7e4", - "0x67bfc4a94fde6e81b54ebe52914c0d73a053bbac22d6d64862e987e53c78ed61", - "0x49c141a8ac1124f40d06c569f49363a8af092d0028b02d8f4c895af2f86d0f28", - "0x5c81c85021692d5dd1bdbd3a4543ec86d49e674380a0e5f59d4400902d7e753b", - "0x9b46d19b0cee63461453a487bbf855fb4a7d70933ce2b7445d1dce8dbbc11cf9", - "0x50fe5cb0ddf34ed2ee8341848bc00df89fda05fbf0ebb1b34d12afe9e5ae4d1a", - "0xd56b4c4880798175c2db50c5c5d6845b5c1e7b6b33172ba107f5de075ed09def", - "0xe0928a4092e5ab5b9a34a8748c3ddf86a6a9ab50e85777c4e1e8088ac7b44ae7", - "0xfcde6d53ff8286afecafa27d608e94c07a4d78813edeccb73a1076772d1f7e83", - "0x1bff0dc76b0d8877a9ea133a023a5dc0f88559f16f0adffbf7b4d58b6be487a1", - "0x5252a71f6c9784b538ecd810bded0520f349f5aa748657a9b4422474eee08388", - "0xc4cccd5ae51babfe8e9f76af2c64227b0fd63bc2f4336b7820a32846516d9835", - "0xd07bc360f06a492a13047247448ba37fc9a167bd81ee63607976be269d245e14", - "0x9499022a6b509dd05eae2a7c799c332382b810843065e82ec72891b771cc3a8a", - "0x0ba258fb2666908035e53ec37a96ee13719779de43f14a57223b704961ef667a", - "0x4dec79cac5e3b414aa835c69bb2c580ccc03eaed675b61070f37b606ff4715bd", - "0xac640ffa67870bd91b1ff36450256fb1e5f59e65f4ef844875185c38f7f986b5", - "0x0af93eccdfbb75dc353ff31949329b3c96ffa93f63e9ae4a515f6e177e201d35", - "0x5a2d5ba9defce6db1bff0bbbe4eee170fe3b9c0ecb4a1ec6e16f904b55c07beb", - "0xd92f1c26de95255b1e0926341c35b5bfd106820dbdcb381400516d247062f3fd", - "0x447ec0cf1a32e8201cb92d0ad13adc6e664a07612bf38ce9c598c799cd947fb1", - "0x28460192df35aec41fe3992efc94da904d69e4b65e518fd2c530b38c1ec88819", - "0x6b0557132b0efe568a96f77fad4f1e18cf05670c007488052f347cf3461ee98c", - "0xb82f3f400a0edc100ddd6e82c2ea587eb5d56ea0f8faa379f8fa259f31ea0838", - "0x370b650e0bd14d9e5d749f628fca91ff47184473b6cba948e9ad3492a68bed5e", - "0x794e423feca451babc044923a79ceab62ff3a9a7e8947dcadd0d91f78a11cff6", - "0x7fe410432bfc7048e6685eb6bf0b4ae9808864a2e09ed1d373dc211f40c59da7", - "0x9f53d260f145de7b48c04829abd97989bc11d748af7d119ebf56948ca438913a", - "0xad5ad5cd5ff452e16c07bba12f0b34bb1c3c8c33d54db45b515cf6761d6a1cc8", - "0xcc6e322ea2c52af09d720524c85629019eac5ca01dcec5da887ad4b32157b9e4", - "0x5d3ddb9fa275898453e8430b26270e2812709717898683f0a3291291b29d688a", - "0xeff621bef47694a862a320a661b691b491e4a5c44e1d2026c9756f84903a6375", - "0x110e7059d20e4531323dcf981ad6cb9d67d56815c54394ab1b0b7af4235aa218", - "0xe44d27931b9429204cd2e9cba838f0ed707d5668ab55ecf2c906b2748fa1f16d", - "0x9d7166683764cde8445c58697df637cd48e35b3ad00f6e6d4bbf12844ba217c5", - "0xf5f6625754100a91cd7283d47e72cca73c39e5fa2e0405d427430bccd49cc2bb", - "0xd6b27ee81a557ff5d8947225c19f3ba023af18415a413acdf438548b24902427", - "0xccc665895dbabf0d8775c5fddf167b41579b0e6bff8fe99c8da00622334c8861", - "0x1986e5fd526af0a0e74ab83cb82c18dbd5a73fe72b94c8ca10318f8f6bd2d98a", - "0xd3f245d6f37b0c47506fc4a2b12d85ff87eb35c2f45f82c3e5bebdc7362d8cd6", - "0x53b97494c77ef9a843ce61b2a58231bc145b492b710fc3dcf79c297187993bbf", - "0x00d4cd1f9460a8625ed0a539257e58a9ab8051ff239172f0a9437cb9f0d1a11f", - "0x1c3d92f1e67b04c24db2eb04184ca7ccd5533540aca4dcbe084a70648c347ee5", - "0x200e39cb704bcda42f547c0cae54c0dd4c0b1aaf17469d69deaa67d3ef0d95c5", - "0x5aa208366dc50c2e9f0075b0e8aad396851f54a42c9ec1114c2994da0c2fcace", - "0xbea70811c324fb1553c4fc492521ce062756da0a469d8f98cd6c0f7a3a7b5e3a", - "0x79aa191ef9975049a5f2b8b7e2921a3f78d045b99b7a569a93680c5ee2600a18", - "0x233fd477509141aed423948a0c5c5b8f0ab8cc3c4836c0f44c8cd6c0811b419c", - "0x1737e144530678804416cd7c3c8200f54f395bf7712c9ade8340988e1e123af5", - "0xbdad2ae32cbfc13446adfe9e4101f32fb52b1e336c165a1125c917d6c1a1fceb", - "0xc20dedeedd63be4c10d92d9d0e7b47e20d503f331cb31d47ec9e99b915305ba0", - "0x262281f50e2892d8cfca3b8f8a6645b5931fb4601755f02fb863d719cd690381", - "0xb0a717f11ff1e3f1a4bd775792c7e5a75af6e56967ab1615be6b4941ca9315e3", - "0xe8f45b1aee0fb0e87148b316ee0ce662ae3bb2abd05e9666429fcf30893641b1", - "0xe7a439e2577c4f892921f798efa19353d236146b849c20253b07f03194b36286", - "0xf4eda704d4864d8fccefecc246fb683dbdeee5468a53dd11d71d71477d170422", - "0x308d977f739b7a8cb4810242fb447a8f6cad45389a127f5822ca2df48fa9df86", - "0x3115d6d0f174e00bf3e5704f57e44b62f7e279894ce62f39568ffe4367fc5a44", - "0x6b6e6354b8d1e1ab0430fe2a5068b2b2263ff453676dbfdce5da60a6d625f20f", - "0x9b8a7b122572f459d946e67a1c78973040bcf67a64327f689d4016c53afcc4cf", - "0xa367c0bc2e6029afec518db94fa79288801f5ebf2cba50980fc9754a40784d19", - "0xc1a017142eac944b5fda4cd66a9b6b6dc64551c3ce958e8811797433b96ec5d8", - "0xc9e3999a3f162d42ae52644ce4f765b5ccc7fe2a4c91cc59048eeb8c8086718e", - "0x67c135523c9703aa1f1b653d9279804af4cd81cd3de99e10a853b42d78143914", - "0x9af2390bb01b245c65f76454f1c80102871131417cc8fbff4b1ada056d04dd47", - "0xf4cec7d4f4a76c769021ab0dab848d668fd36e910259e45094d88defabd13448", - "0xe2a224fd4510ac5f8a6782d2eed14ee164e6bb92d3f0a7e5e71497046fe9f30c", - "0x9884ca2b5533c36e03fecf28470fd3c45292dc623fb220c5eb0a580781fbe724", - "0x078b1365c5dc77fdea6bb010fab6c4dede06e27386d4d5f205bf7e7857b03865", - "0x8f930fa645409fc1d7fb28637360489a5e5eaa6554857441c3fd8990243d9972", - "0x2e21ac485ed90007e8b69cf247c28b25361729bcc7501a3296f9c06dd0742888", - "0x46c3ea9e86ad55d87b6f5d50fd9c145bcb6ca90a4d570c1f86b5532b0762d8c0", - "0x87edc87f5ac353d64b0f157ce3e3180ce73fdd1f0ae9db1406e49581f1780de7", - "0xc940108991c82f871c3eea33ec93951c9bc33cd0aba1c77262cb6fc6ea16f4eb", - "0xba2f1d37cebd9bcde635bee4c0f260af8fddb43a84508f244b562dd1f7bdbe92", - "0x738e8d02870cf37ba27db2eb621d5f7b32a225010de41e3983ed389ebaa0e364", - "0x84af8e6e7ceb53e068bdf16091bfe966458bb5d3e4a925360411a213aaf46a5c", - "0x548302ac8a0af1ef5bb91d469f66f8669cdb2a07c432e7504a806e00487adb63", - "0x35bc3a284170d090e6fe053d3bd2a8fc3aa299d113b69b90340ca4c7e019016d", - "0xfe7b61c4388f2615642f9ffb44279f31a98c0f0d2f3f37b5f77ba09a67c12737", - "0x864581a4e526055847c252f6169bc54b5a1615de8e1cb7e80c649315b04a9aab", - "0xb8b4c67301cf9d3e91ae59a0394c8085737358bde297c58688b48a9d33c04205", - "0xa1ee0d1c7d50d37f96505ed06b166722f47fdd784b71bb3d47539ae40be96262", - "0x63b2658609397ec6a9e9d9d0a5b318b79b1e39348606ca53e0f84f6466d3aad4", - "0x2211abc4f8bbd6784aa191805465b10520a6c505d6257063aa9b911d5781fb89", - "0xefed35d1327328deece22922f08d3c3931c80c1ea9a8bc719b8226f38823bb6d", - "0x64b862e2d5a6c24d569f3352b8524ebfecfd5a3205a3200ec78df72d79a66838", - "0x6da8edf169a9c78307258a723c1ac1d96db20a7131018efad16f0606683c0f07", - "0xbae1427beab8c3e71cea57e5f9cdd55bc278c6d6073ae2628f0d3efbf9894a42", - "0x389bbd1b3fa390e8d3339cf5b018ec64d9cfc02bbcb801acad0857fe377ed83b", - "0x819c3a7f682db122c56c004c1128a9e219f13052c9b78e59e838ca850e7ff191", - "0xaa860c92d60059cc76b9c07d9b942e132b72940f09952a6ea84e03e0d481a409", - "0x3a1ed0df289c45f80aca59d16f9a8fc2363faa591ff2259767965138155057f7", - "0xebd67ae495f5d5f4b2d36676bd9e4619043dc83e00766b92eb0ac9ecc46cb9ba", - "0x2ff9b30bfee54deed34ac25e2c7e1d7825ce27d270b27ac8350f33e0021a894b", - "0x5344883f5098af546dfeed7e76dae5597b6a2eade7eba066c1f3fd2ca37b5a9c", - "0xd8220eed4c1e6c3fc9edf342c7691e0b7a09b1bc93ca8ee101f549d1c416dd13", - "0x89122f929f806e2f345539d74a3b67a59976a996427a301f608f67e9067d337a", - "0xbb288743f3da50ba5ba8c3493e267c30b83c67b77a22df96fb194fbe3d6fbdcf", - "0x1f4d12a9c756fd7a8e6a35df39a35888a47fea0f4191ffb303503c1c007f0959", - "0xf4a47acf8c2ecdf67bfbb0fa49b02a372e16ea554d7911eba4527647564b773a", - "0xc4ea1bb4b007889b8a81b306367ef03d2213a17e44ca13dd0d30f98e0327644a", - "0x1da665d430e25a551e5a2cc6b09942c906559337df136af4b81934a14b44f2fb", - "0x429c1fac7e8ae535baf1024b797708ab758420bdf6dc73331f2c48bb27edc2e2", - "0x3cb6d3d2836e4132b090dc084df9347f6cea34d23b3252301b65d2ae125c057a", - "0x82aa375fa96569741873b0fbe883f5901dfc2bb80dc9cf8c77622fe57ae7922c", - "0x44ecf8444c6f4cf718a9d785b74ee71d483c02b8a4499065d4822d4c4b7dd098", - "0x35879d2288d42165f3329be77fc7125ef63947d99647022cf85d9d78bf5c3376", - "0x5119fb54e3eec69ddb94091f3f446e3dccb7bb91d11345f4895734765ce74740", - "0xcac39a05efa882556d8f2afc987563d61e1728dc00365c2b19182bfea7e9e1f4", - "0x3a5bac1d3d0751d1101245c4fc5594ddf6b2b87e1ca2afe97e3b94659f2d6a6c", - "0x433bfa0e7110d38ac86b893e892f3ba7f5acedccc5482a34b6045fcabeb27a75", - "0x4f25ccd53e8bd308c7aac31f47ca3b0efc803ec7787904d41e4f40ff1a7c9936", - "0xe290ba09a6f6b5a975f2a0b87717d83c64128af3d84ee5a8e3e6b73dc963bfdc", - "0x7a4d734fe57c4ae23fc10f17863eaf0fd35b71f7bd1f03196c4466028b143d0d", - "0x191c097cb3f00ed9f5f8b8e6cee02f8e8a11c4500f92ec2f99fa2140173f6e07", - "0x7f21cd1e87804e63c0973dd9f66e792181aedc5d8cd931eaa1d80d14880f8dce", - "0x4ae1193f849d7833b9efb7c615dc7e88026a3f3d01a72aecaa040b4754eb6c5d", - "0x84e7bd0b8f59390667f6e211ea89a17a13279190de24a33b744f71149eff9165", - "0x5765adf9a49a7594f0e9ed443858f3a822b293cf8bfdae93f36739e1989b1961", - "0x80abd196d81322281597ed14ed996987e15bafcb372c5b386a28e5df8cee57fa", - "0x24e9ac57c579c3edb8b3d40231436c8a5a4316fa73810855f5cf4a89b858c563", - "0x3378c60cb4879b9d4205db9b4cafdba13e9923993dc5e8b155d909ba2bd0b270", - "0x0e4e9289f83c3a8bcc6d6a6d7645ca919bee8c278e3776e2085b4fc347627934", - "0x2879e00c5e77faef512162ec3b28c132cda5377f72fdec476d0f09be9d002e42", - "0x8e0de62a93882ddab17038a7250734c354340e976dd643f609fd497381a3562b", - "0x8730ceb5206279126dbebf0676f922f12b5ecd13be08bf301d7d652473f79001", - "0x0df58042003ef56cd28013d9794180ad11cfb28485970bfd79f62e1893f39dfd", - "0xbf555dc1708cbeb96069194d2d2cb75208ef2cc73fcac3b4f35abae97dfc26ad", - "0xa38a19e71f0b7176b3428cd3e635405fb1df56ce3ab60f711521b1c6dd5921ef", - "0x7748a206bb39f27841e3fd6caec4c00a68ed50ca1e474cf8a943e99a21013742", - "0xb1e82160b63784d3e9b434033c8b79c2f9f8bd713e392581fa7db2290512a437", - "0x0569198adc593a471ea4fba27d0aa659361395b18185de08442aba1128b321b3", - "0x4821034a9f0e2d3badf586be65a04fdbd035c960265d0f2bd07cc5403e1ec002", - "0xfc3b5dfbb770fba26e68a2cf15ab6d9fd0cbc841c8b7e4cb67f975f0d1e9a456", - "0xa85944d5b68b690c8eae612b09e71e422f96234bfc55860159e99371b17db96a", - "0x704ddeb5089de9f58c7677150ca4dc64b9f8eaeb8d1e24dcafaad48ec910dc7e", - "0x223938a7097dddac139a909c0c33880b8da9dc45c86e1493d21909f809531132", - "0xa07403c373e4edbdc13e207241577de01d2cc9baec6529ca28afcdef27ac04d4", - "0x385fcf679306dad9d1d2323caca5d17aa3197316bc4ae3dbe126a7f687280e13", - "0x81c27cce7a06b71cfe276b0440865cf2c0f444bbd6904bc30f2e2380074d1020", - "0x2fbae35e1c82c0d8afda61f1a0e95dd5ca47fd603450a7f2fa4fa5bcd73ac5db", - "0xea14be904f027e364092837e583dc19500addf6e5ecb59af1dab4cd0a132a04b", - "0x409f1a6a99ff08ac262addb8ffaf3fb3d08db086716c92bbccbc2b8c738b8866", - "0xfcd3cf7e04c6eabe6c648368cff1ef62ffff8fd5f3279176781d2238db715f04", - "0x5f38c3238f5b52cfa9f45249651e468a53a2b62f1b62a5c543bd663dbae07204", - "0x265a6954be72496fec70afabb4224f7ce4258caeeebfc4c6d27550e17cce58b9", - "0x58b2fae8d925846b08310b557ca5b7262a9ee1f3b729863e699fbfa91ccb9ef0", - "0xbbb46cd133cbbeea781699fe620831b93db03bc3f7d77da64c0367fe5d8170a2", - "0x9b57cf784efd6d4d484486ed7ac6a7093fe0fe087931eca10e9f7a0084c4fbbb", - "0x1ef9d5604fbb21e365d259c10b0b24070a5d5ba4dda6ab44f37337d62c4a84e4", - "0x2502589834ad081fd22d5df57be4047001ac7df36ebc5733bca560ac5e463b02", - "0x425cac90caa07eed1eaa6c020bd2d7141601b5d007fbd5905d455fa6e00cf804", - "0x65d3376222597121fbf6fa541998a61605f8c344bb68b646c32a5d10a215f955", - "0x087c94ab1aebbf52e158c0caf0ffb1ccdc179b3d3b9ce136653d6e72a918e96a", - "0x5524392fb09e03a0bd8440d8e9f038a82954f95332bf4beb8f8e4d5be6deb904", - "0x134ac78af0626fa56dd62f27ea658570652e5fc3c627c57d737d178a31688f7d", - "0xf2e565457b1d938a18a8fe1c3732d70386f9344be91380d8cae740ffccdac58a", - "0xc203bc327d1085ba09cafbe5645657d73e64450ed314dac5c84e7f356cae01de", - "0x9c847099e82e8b2c1be8a7cf440ecb85c8cc20111931c0bedbb7ce778c7404e0", - "0xc22206c94e653a7439faf69cba997d9feb1c5b34829bf00a4c85d0adfe79d911", - "0xce0d9b43dce7b340e847e7340aa7d58c03b778a57e493a8f8dc9d63ccb06b6a9", - "0x20f416746af1522273b7119f31000c4848ee66597d5945492053cbcce359c6ff", - "0x9f789bec24566fc2ee6179b336be2b08e67fa39a367787063f07b7424f8f77f5", - "0xdaff9cecfb864d02ea03a7fc76d24760303c1d28a93613bfd659dea6997d8cdc", - "0x522c6b0c2334ddeb39a0fa8092851535e6980e3bfb1ceaccf86247ca4209c392", - "0x35e1440e9e6851ec26dd112b07761023637bdeb54c9a4045475b8616eac8f2c7", - "0x160df7b24ed8a0d4e2d6556add5318aed08656dc2f218b75badfa7dcd2d6085d", - "0x1219ccc41d673e6e1d8eb1e2a1edf6360318a611bf5917f40394216c3398af30", - "0x5237d29b94e6427a41e552dfa0db1281381a6f7f5eca72134e1638a8a7acb790", - "0x596d64fb8478cf32fd3d72d70c4ddc8a348b4d2aaefabeffc906a8ce656884a5", - "0x6cd01fc463582e85e433263128bbcb75d8cea197d650034bdf0ca0fba50abf92", - "0xe879011882783b1f085cb14abe05fa2fb008f3f25d303c96532c7b63091fcd50", - "0xad0e0237bfc7ca75073ab1328770fe3fa2099c7aad98d659747446efc271860a", - "0x1ef22d01e144466d68c09600e54425756024d95f323064a7bace055678533223", - "0xeb4f046e6c9eafb07c8615513b096dac0c30a7a9983a9b9d282ced0502baefac", - "0xa5ec8188ed11607e0c166d809bf6f4a624b63a04cdde6c9b38ca991cc363f07d", - "0x757cbd504e40ed1fb80967cbfbf0d73d649f381e07d3d774f6fb6a958872e13c", - "0xa9d67e8749177c72fef84684a3ddf25f280e624fce571e202eac7f4713675f07", - "0x05fffd3d981ec6411342264732be62a03ced7c7fbd2ccaae53fee75c81017316", - "0x673bf4e2016572077879057f6d122ad7e29da0a17c62a97679dfc6913820d42b", - "0x3f3e2d80251eb582daf8057af384c4e4a419873e1fa8b9ec32a6ed7054de1efa", - "0x860291469fec3ecb7c78b2a3c291722f43aaf747fbf3bd88cc4061083516b64a", - "0x3c30c64ffb77b39132c64e8856024abf0736cd2603da0091f52f1e81983e67ba", - "0xae8e21ce50f85fc0ea64696b973f53ae1cd877d64e30f13904d15b34d4bac6c5", - "0xb4ca3d97e33e9526ad1c7796a7f9efa5858ebec2605d1367862c880f78c86272", - "0x6c20893dcf39f711700bf6be5e360ef38102a7f7129ed83e24c5fc24f42584c9", - "0xd520870cbe314b46c1b7edc21399986870303d38cde9cbce3f4e25807124b1fe", - "0x9a24dc78fdfaa16af729b4b27c324a95068b7fd09eaecfa6564c7a815b8e9084", - "0x9b8c6c28860af11376931e082ad7bf12b0cb75f2582c8284c6e587ef2cdb8842", - "0x656f2096414bd7ad74c7abc1cd8222c61697b15ad68d7a5e76c1dc41086129c4", - "0x95bc4027611b90d1fb1ca0eed5bd326464cd1e4de67ff8640683496785c38c04", - "0x20e3c8545a8c05022d3b83a1bcc94db7239a6f509f13053d19b8ff7db126d093", - "0x767a60be20b494d792b1d4ea6fbc35f4affa633841f7f07f6c95b8b14ddad8c9", - "0x521dbc01a89820776a38d4989b6ba794d7c0251ad939dd0caff9a7b99579d0ee", - "0x814c1693d5e763b3e91b49ab8c192dfac0848993839e2cafab76e5cab13c6f7b", - "0x6626910d3525d978e25f14a92e3e2795dcd2f7844dcaae556127716ecbdbf747", - "0x685257b9002ba7808aed5b69dced6fcf1eb9b75e1e3646541aafe90caf3ce1b5", - "0xaa3d255fbf57445aca9fb45babd6fb58c89a95c6625f6b80601bb656a5eab344", - "0x2795d9516f8f2f15da8904741d24cc0675803c9a7ddb342fc66caa7d5050bca9", - "0x283f89476887c625c534bd277fcf5523df8ded877479517728358b71efaacdf2", - "0xc2044a35800edb0b6848341004928307ed023660fd22d7eaad2422146cef294f", - "0x01d35757346541a85a4b86f41d1b5b21701c1efce3f287a034497942483f52db", - "0x43d7f8c173717cfdbb3cbf38cc8cdda9c6ea8f05bfd435efe1f74144c9c84f24", - "0x6463d12f4bd83d544a14948fdce6c7e9e0da0e9812bedfb314b6e91157c0c682", - "0xa7cc32d879feab7508b84fa364fadc0af5a7cb1164b61d7d6cc5d7d1a76c32eb", - "0x37cd4953d262b095fa8a5a0708224d006ed9ef93d1ee5edeb285d410c5d86a8a", - "0xe896567b6be24f3ff1d962e05015f574443ac86c58b07bb943d12255cd94ed11", - "0x51d07ecc06ee4be7bc9700631ae07818756aca34d1eb2ac6eae7112ea9e9df41", - "0x72ba4e79031a1f2616b8e788fa578b9ea830e08823467fc875dd603badf6b79b", - "0xe06f71635f9df9bcecbd6553ab32f1af94275d8ccd59d1969c248822e3b6feb2", - "0x0484a049e43ac9f424ee9b2dfbd4c5932cafca539c1bec00d32d90561746e12e", - "0xe03a17de161d63503962f3d5cfaf28cba22ed622cb88547c8224509e77e2bfea", - "0x203acc2c14b68b80292f381fd440da199c9f8f0e043c42e0b0adc67be71bb807", - "0xba3d7f8a15b76afa8a834b44a922332713014a5d5ec3e52f729007c6717d5324", - "0x01e4a4e25bbfad7dbb0a23adf6fc873c40561319ba7bfbffa3c7a379606433cc", - "0x6252660ed44dc18d448fc1cf49bbae98c4c31817b6e372c71d45832556261a1c", - "0x1442a2a2eb665994c951d8134726c91989f7fd13145ca146de4e87a203ed1c31", - "0x017e10ab064887aaf7354bf1108d6946d31b435838a56d5c43bd70d3b5fe7c6e", - "0xc9f0213c74e6f3ee3bf7505c66620b61b147597ae8a4c3f0324463cb57d07f78", - "0x321a1e72fb858b8df990639bb7b05e10b7c094772af92fea9a8882b84a91d33e", - "0xcd57ed7635c2c59e8d2fa2ff04afc2c851d1a792fcf2e0192769404dd96b3be5", - "0xaf89e85dabaa1fd91efc15f0a60e2fb10be92c6ab2d726d6f7afc8ab94d5639f", - "0xf8425ba5813b811a587ad8b9fffa64adc22ad5660ff77a94ecaf479dadc7deff", - "0x9d602387122f2c064924d32fa3a62ed2e39dbdeb570b55af7a6b138534ace4d1", - "0x2569b3f2c09c18ec14468c4615355afd9fcadf2bb6c9d527e4a3457a068bb808", - "0x96a695ce507be20ae2636449116850e8cf86485eb756bca499aca80790c3dd3a", - "0xbb91a27d4a244d199c1b9dd22d0a6e687fdd340731c13c7016b7009ac49771fb", - "0x468a1b2fd3c8835f1f1b7e16f35a5a401cd4e7e0e50920198cfd3f27b5971f7e", - "0xce2aea8f42295d49480f6ccdb2f0c2d33af2b44f1f3b0b4eb45e3975397ee264", - "0x786c6d63ef22e083b0aa3c1cd2de64c238efa8963532e84471ca40a1fb210f4c", - "0x86f90dae63767ef7819d0c779ac362b2a23e8c457bb7f5c901e89dcab8a5ea14", - "0xf689fdf55a5d1e1474b9dcb1b591f14448cd017d2d708bc522157688a728cc8b", - "0xc4be4c521cc105651c4a2a0449d206c2d7052123d06bb02ba3afc1b22d802177", - "0x64debdb7293aaac3e610bececfcd7b53e103c27b03173f0cfa401db4d385023f", - "0x3d4b4017e6ffe74f2a96cf8cba7b21edd627ba5105bb87e79cb1ea88b3657366", - "0x74161c9fd283d80490b55731ddec4ebf2a1e328e518ac17b2526bb93d069ecdd", - "0x89f522f48230fcbe9fe87ffff8201ce5fd853bf7ff6536d3299368151b833871", - "0x090d72bee8471c51275662ac2fbe285e5a52552348af1eca33e657fac448db8c", - "0x2d76427152f13ec917a6e28430ad5f0f0e69b5abba49ef432a90c4fc2a875894", - "0xd490618c0aa63e1e963e457c6be096bb5242b10765b4797df232def9d0269aba", - "0x980445545153a80c8aa343a8874a80fe7fbb7beac68e58d5d90c4c5fa73d7e9d", - "0x0eeb2df77b486bf20203c9e80981787ae439fc38f39c583ffef93ea0aad82358", - "0xd0897e799d1152432c2d9cbfdbf72d2e522af23766e7ff93d51acd52ed869683", - "0xe740acfe918c168daf28f9e491cf94b3b168de4e807a80b5f1b097beff45f206", - "0x125580c9d014b8cb50a56f8a14f10ba4360fe448f18aa86829bc7f7e1cccbb77", - "0x7c9af1244e12d298778b3320718f096faabed0006acabdb0289bcb7b5c2bf8c1", - "0x76ac2ad7e52c2a1e7b23f03f21d607bb634a4290b800fe479c6c134c87d41703", - "0xdfb4b41974d53773300949ee46ce3edd2b5ea0f8be55d87bf9b2d1ba21dc30e7", - "0xde87fe285a4fb2dfe40dd79462488808c6efc4ca3cf26de46f3ac56c4fcfc0ec", - "0x72ddcbe95df0949ae31eb4ee5d532587ec1d30a358a3fa9588dc6749f3b0b673", - "0x4da323bf0509116d1dedd6ef0c486838a9c8fc7bf0d6f2899fa1c43c89791a5c", - "0x6ab3c6c40001407ecc8b5926692e6bda176b5d9685cbebf72a69a8bd01c8764c", - "0x85e1cd7421da9343f156f573c89d477f166cea452287d9cb8f19e71feb570cdf", - "0xa8f06a7f39e85e9e3c1abf454940c9d4a658f1d5df827935376f556b90670c53", - "0xa6ef83d45fe75050512a767f8d69b74a59a43b2d12a03204bea075839e9401c0", - "0x92d440c5683f941accc4b575e884bc402fedf6499b1a9f74e0500885eaf211e3", - "0xac5536524cc38b40c8f0b421af9eeaf9ed78be65bd1b180a469008d5b807cc1c", - "0x00bf19f0ca582188040b38756dc88388d1aca7cba42aa89e513628a433156b0c", - "0x220b5f691ad4fecf71e471a845862097fd754bd0ffaebc204c048aa48acb2bea", - "0xba7174d367fd0f9487aa9d1f2444a4fdf38f39d3686d7d41d18b0671653cfe6a", - "0x04e281d09ab1ff8fadd252a22c4682beafc436916ac90f81ef85d3c92fefe628", - "0x4aeb3ab7be3dd495dcdc78631a3cfece68ae9797bfbc4b5ac6ab13002d9fe6e0", - "0x0fd273deb137dcc98c8bc54f13098e355568bf56077a58f656e4c22e51ab0360", - "0x55438d435628bef382426565cad284695ebffa4ff7485e10c91c0988ba20ec25", - "0x049e4a80ef77096719ed90d324174d50a0f84cdc3da0c45d0b122a813028d2d5", - "0x200e2da004718c48d4850a0c5ea3fc9821f820af0cc24b733d80dab98d756ec0", - "0x9da660709c2b4ab2807df73bc4d11cd75a102ff5d47ded6781ad5a293ce22415", - "0xf29ee2bc658cac2d28a1e5809becab789b329938c3ce314bec172c6ae3861f4f", - "0xeca0f045b3777c894d3cc2be518cbb06b2f54c4c9d02374e6d27de0721c471f4", - "0x804b27ccfd7440ae1dd05edc6acc4194a288918958541de596530ca2b89b3b54", - "0xe0805890aed8a60e2e60d2bbf29a2d130c64ff69a82e3a78f63c9e483fee94d9", - "0xcdfde2f6274594a0a67a6d7b02dfa0fc735842c28b144a6859ef6eda842d6669", - "0x5e80068e6aa44fe7d9c810607d90e13bc364bdbf91255fa4675a7264bdc38998", - "0x622e0765bef88f51dd013b616f40fb80c6bbf6623fb226d3d811af52e4de7740", - "0x0ee735a5e83a5191c4e531c603179e90381eb43de0abb03e12e5f8d7b821031f", - "0x55eacedd69481b311baac1d17343a78a1587454e6acba2edbc560fc1c95ebc6d", - "0x2eda26ac17139e750560a6b705f60a4408487668df17fdfa29fd1f3d3fd76aac", - "0x18a465896c7cda9912dc2c7ba459224a924d0feca1d49825423277902b7a0094", - "0xf764b9bbab0bde6ce1cfbf84a8c280f1524f396aed6fb4569f59e2791afcf27f", - "0x7d7fbe746c72958cf2dc3d5b6a7f2b680c0e47247e9697a1135384486640a736", - "0xcc595d1e98d13809ed5a22277ec10f25f36f05ff7ef1aa91de45bdd471ce76ca", - "0xd9579a9c16117e08e441401696fe4b3687b40179cda267be384d044d27fea705", - "0x39c73747189563c6ee22de333270178803b17b5d1e300732143a3e553ddac6e0", - "0x52049d4f26ff9bcb9b4444e0a3d4551d2e68ba31787f1c69722754004e6c10c7", - "0xe15d9b70b804cac3efaf1eee6f980b146f2753cca6f60a338800fe67cbf47db6", - "0x150feb1be780bb1e166b4f7b54bd01434820fcb8e63244d259a56bed67eb1fb4", - "0x48441f61086ff68e3d7ea203193df77565ff8c846a5ef3aea5cdf52ead82c6b5", - "0x8fd3355dbe04679233da0c0aebf896128245349e8e3925e2f4b4e044ece35654", - "0x22395d1a8af82cc86af2697b45b86df13d5af07eb790a96624383d2d2cf35fbf", - "0x32c13c2498ca202482c0b2e7e5ed096bde4c36cdf15dbc0076042caea180d6ba", - "0xfb3fa42d8cca9e62d1226bce9a8a3d8e75cc461d2b34979751107ac656130a4f", - "0x2860141a7eb70cb951b3f45f13dd81c95ac8d86c97ee354e65c2ff31ad24f149", - "0x7c02d5bb3b990ac7d5c6a7f183fb4c4e3d2249605f6d963e12b6587e665bbad0", - "0x22a79a905b70c40eebf4aff3f9a595458e9e5a585ae7a18a32d99cb369cdda90", - "0x8e10f60b08c81d0ae43a1932f798e85bf0bac6d22ab3d399c22d1e3744134de7", - "0x03d6dda99b12d94960eeae1f67dd6ff8f41102ab00aa7b48055515262bcbcf01", - "0x2864090dfb4a667388f3c51dea1daac94245f2de71e804bd7e9f8c4a6206a827", - "0xf64e0a38264b190f611d8afe030e948064af722c1d85a16e3e20a5c4d6c9153a", - "0xb7706df2d787d33c13f2f100cdbbeab68dae726cd5a08a046d7fa8b34b029a23", - "0xf91f33d36525beb213fe0761808dc89921ed0d52c5214d704acbca639098622b", - "0xe1825f2cc40a1fefb24edbb3ee31c5118448abdd237a6e27f364623689a70a92", - "0x051450e257cd9e5d03081ab11de949a52b4391f7f7179fabe0e7f43e0cceded4", - "0xd09a4642c0fbbb0f29af7bf0ac06c080e468e2e287d1ef74e388163d5c0057dd", - "0xd7ff8cf1b7744f7c2d79255e5288e8a2c6b58ea7aac62894716149f42f3e020c", - "0xb108bbd52148c62ad106a9cd35aec9d8b111e094bbfcbb4d447745f8a54ae8fc", - "0xa4794deee36a670394a5ec4d908728a1796cea8c8564f61e41201a7ae985b0ab", - "0x4fa697253bab92379a876446a3af734dacb965722d568203a1194e078777c364", - "0x4222754bd0a480cd4e1bf0c9faa267d17a941496e557c0856d2ef9818f96bcfa", - "0x8ee7c73f3d4ba9c2764cc6e980f3b9a53fe7a1306c415c8fd8264a33dd5622f1", - "0x17f40c4b7109e2aec6c8c4eea793e196bc96c73f20c963a923fd311b23814590", - "0xc32018615cf1253161ea102dce96379f6fb9791e8008d75d86642f21bc555b3d", - "0xd38fa39699ea67d3c4892094309335ec3bfd0185790ad117d197866331a294cf", - "0xa770de6526cd0a07d0337cb18e371fa33a6ec0803203e54f1c93b276d1bd24ee", - "0x7377908db9acdbc040fd248b8ab85eefdf7edac2efa6ca90535d4241c2286d46", - "0xcb74aabcd157c732935f0d8b926ecedb3b643ca97ead5077301d2b4768324908", - "0x3885f8b2a341c91cf42d459a0f9e81bc11bea8da8e0080c884e357d79f0143a5", - "0x1c56ed46627a1c6b2495cd4d94473920b8a249c951b227e24b9bafaa00a3575c", - "0xc2e5a1d6afe982eaef9f35cfe30b4f80e224950c094d9ae39430476988199c98", - "0xd5c27345331cde1052278637de22a243e9c5022d4edc254cffb7c574615e661d", - "0xe89ad382c17daf957f02a2472fd509eefeed4a10317ca97085539839a80bc5f3", - "0x2bef80881328dbe76f8f87a6f7285209a1355e9400c31fe1e915d5a0323efec9", - "0x0a79f2fc887da96d5ea26722726d83506c1d5fcbcb50044ba6f74336d9ae8609", - "0x2d79e9b35b5bd7beb0bb392a4db71331c4bf41210c26e2a0f5e64c4de8d659f8", - "0x3a82b6fea11f99de12f1e39202c2fd69a21ea2fe5f4d1d62500ceee7de29c88f", - "0xeb1139baf2c45e867787be6df45acc8d21686cb21adb1f10866ebb1605741ade", - "0x691505332d0a4c6af51e0c49f11d578f834e961898279a21b680438b3dffd917", - "0x8cb46c9273d3ccecf1ddcd4cc86b9ae5f1e1bec57c15cd624853c2333aa7184a", - "0x06f1cb0b68758ada524d604ce8b6d5c273eaba7304d8650687869eb575799362", - "0xce7464c87dda228032c88dd3ed29b41524e847e31ebaa76b2248eee64ca41e70", - "0x64b6e5039609367f5c524c0d5266150515cad29a8a262c76614c5086c83f1bb8", - "0x76cbd65dfe8dd8eb21996529bfa0663bbcd851b675314ed4855689ed9f120939", - "0xea80a1c269e36cc9ef3aa3daa051a08e03deb23add31dd32cff7bbb86f53c8f3", - "0x575ed304982a8b6c44b3f6dbfad271ef13c13986776abfca33a9da2727f587c2", - "0x5a969beca5363e60be1c6ba433f6cc037806e1c617c78b9a3115d47d2e87865e", - "0x2b010bbdd97fbf30ff7b48263c8ef58690a2de5b4cf170829fd458d2309c7c09", - "0x7bbc16e0933d41a60d2fa96563ffe099fcbcb4427cfe884150f645f25af752b3", - "0xba7fabd6d879f55a747a3427b3b2c5e04917b0734d693f759c2ee5fe235c8e6b", - "0xa890505d5778b78e3dc6c9749e8c9c80e490aa84bf91a76f4fde2d39a8e68ad3", - "0x36e27f687d02db5cf074ec89896e557ccf240d6c0271b5858a6af8b2661104e6", - "0x6a18097d71c66f0564a0fd27b05346d2dc74ccbb1ae123ba575a2bde54f1e810", - "0xdf4b61a51fa7f576c212aa0ec1a93118668f8c5fae5e7a55a27d2d0033634734", - "0xb572f4dde7b9282f92de5efa836b9d8ba82476c229bc669eb1956e05a1a02923", - "0x616b7d8a8c29a6dea339ceb8241b86fead820cdbcee279f87680b9973c1ccf85", - "0x3c59231ae02993318e8244435bf7f51ad352ce971a2f174725f2c2456bf62812", - "0x66e778c1de1503722d7a610003596c092360261e4eff24c54f218baf5106a8b6", - "0x5b372b99a39105ab048a83fa36f2ee79de9c920addaaae0cfb5b569ed92d0fc7", - "0x1389b29e130b37d8aae7dd19b46f216c2ca8d8562c7e04be9113ace816b772eb", - "0xe947c173f63c2a4b5bc1d14617dff02d6221915debca30ce90af9c63123dccd7", - "0x18926071dedc42086bc9c90e9f3e80ea1ac09981677b7c8d75159a8b11043501", - "0xd196e45da07cd27ef03abb235166e4937b6027c0fd6de42ed71b5d9ec748767c", - "0x81440dee93f1b7ca2d634549e1f21b834e417df97338c7de56e2d630f15e662c", - "0x228a10cf2a02f134998dab3ac59a71a05681640f115cfea4dccc67baedf4f746", - "0x5ab8b611cb2eef244571059e61540fd338bdb1ee90e7ed7e5769e67f5eb2c793", - "0x3f044afb403947868f4d2deb1dce168dc9332451c1dd1bab4e94e4ff6de5bba7", - "0x6212ebee274a505464940ca808dc61d1f1a2df76820ce3a8cb9c26bfd49b67e2", - "0x6a89fdde963cc5b696beb902d174b99c0cf8ee2e2208cd8f1f25965fc2d7368c", - "0xbc5d4f775e4925e2201214b1e64c7f5080899125a01961b1e5a3d29aa6158d26", - "0x844b1f9e0da0aa6dea81cada5255248b14cc4655d739377feab11d99b77f48ca", - "0x8a972d2e563d3baa95cac6c73b23bb04e57e7db2eb27b2c6bd78f0f2b2285a17", - "0xd25370dc166a5a4ec801c652b9eb3b7f17c9c76f898c6da338dc686ea65fc108", - "0xb1d6e05e234624e144fd8db5189ed47da5befc84581fcee92176951aa7a6adc7", - "0xbae505f675148669eb640bb1183d5235260780e57f62398b244a289f6e920593", - "0xfb0cdb77ad3ad6dc5feab63979743a18d72aa7715f9e3518618be5de6c724d5c", - "0x78964f3f2e28bdc1d9f6bdd9c424cc8b211820f23bc59d61a00a4f5089eb8553", - "0x81985ebb740817d81784174ae06e160d3d37c1a1fd4b79b665fba428e6adf199", - "0xdfe038aa48f96bd190c570b92bb9771b49556a8e618bd17a3183d594cb303297", - "0x4c2866dccd714ca6e233da2349b91e7fea7dfd0055675235788e1bcc012fd297", - "0x4d9e866bf6bf2545608734b914a55f247b9acd17455d1262f6a352cc46499ef7", - "0x53be82bf17d1dc0d3d5e50be3a04fcf2f5191cd3547ca432a7814c038f709a82", - "0x1d5cda51a57e81d33e3caae568b083bb26f71fdb23fb68e1f7ceb4444514c13c", - "0x35633bad7488a5c222d4fcc3111768fb7c126065ad9b32c49dac3a44353539ae", - "0x857564f5cc2b7385db6cfb22e41a30047dfbbb333f5e2984bc5826805653e364", - "0x3346a3292d6d1f716a13fad02af61b18f6993d277cd891a162fb6df932333906", - "0x267114f270cb5c8d7be4016d4ac1e6950cfef777e36e746829963c9c08fa604d", - "0x9b133dba17f550b709ec7891bec8ddaa99a909482ff50dd1ab0f473a64ccbec0", - "0xbb9d1242e6dca8ac62b9cf77f5fea02bf6ca33cd8fc60b75370eca5050e7e3a8", - "0x4b03fff35d5eb647982f79cc8c6fdd3514a8b2d95d45af83a06352a9f857b770", - "0x1251e1e7d8ba37f5ed242c045d14bcee63d044bcbeb300d2036cb746675777c4", - "0x3ea4f140b4dc19071603745962ab84c2751c9fa7add74f165cc4955bd0a23384", - "0xdce6b80eb188a9e240c73c86c13554c89176a0a3a322538480683a9f1187e518", - "0xf67d61c218998a24048c4dd68f903190a0072c80066b53e34df7e3a837e18339", - "0x9f886a4835f3f8fc010ad96e3e2a3004647c0f3c744d98d527980383975dc6f3", - "0x8a7920678b5f2687620340ac774f00239e48bfe1cf443c795d6cf25fd885c98e", - "0x16dfb4a0448f4b05c18115f6e2c128be6d6596b338723c912f22cd80448de1d8", - "0x497588ed59d0e9b9733bb7caa08fc36deeaae3396bd3922272d69f4861f06420", - "0xd96c89c40ba3daeb23f18a83471be008dbf8cc75668a72bcf8d02cefa1efee7e", - "0xee4e9ee2ea8a057649b9105c68792f2479b7eca57276211d70da3097a9fe4904", - "0xfd789aa5a980fee8a509079acc5ad340c98faeaeb31a1774683b93b1753289fb", - "0xf9e19259a14a532c93e935d252145d41988c16faffa4a185df11ed5f23715d20", - "0xbb0b8e1c03cac49cf3b45bc031a229334f9f25aeb59d410a12fc17c7e78f759a", - "0x5993b045dcbc40baf27d780c48b881c864f9aa21a9d59b0d4ff0377aa64e7c7a", - "0x726dd11a76be09acae4dbe103f0ba092d654206dee07511d6ac97c673437d26f", - "0xb43c5f0bbd52398157dd6233a5d8a03c931166150df21e8643f02b6c767239c4", - "0xcad3878512998b146cb2c6eb61efe07206c09677687df4198d9174c66e3ef3c7", - "0xf8a7872ede6770b0f48c924888c3b4d1b410639ddf98944561f837acee7c21fa", - "0xb31f007ab3deec8e37f7b70d4c5102a06eb9b37abf384ba3da0d7f32d29d320e", - "0xde77b2e81f239a80caeb44731b1f272a10528909f7ef6e342e36dc29edf7373e", - "0xa9818a101b730940a6b7698f76d6c08ef7720b12fd267825202355c3edeccc72", - "0x962cdb425d23201004d3f39a045e10aa39994fb8425aca3a2298b4ef1c9cd6ae", - "0x3c2a14b29d91c93978fd5a178adf3cb1aa5d60c8eb0b60d4c05f3f32b79ea42d", - "0x86d861026e8918c570c3190e57244aa89be34d57aa0c0d4f65f98abbb547b255", - "0x91e3b5fdda9b9087f6d267741a383c6c9a566851e03501d9090228046d793a32", - "0xb8e4f9fa0c7ddaec74a87492af4679aec824a08fc3fb267dc6f41b764145040e", - "0x7da2db73f48b0ec869db149bdb9ee85f50587720cb0fd6a765a23586f47e61d0", - "0x04b81ae4616337f5a09700eafec29ec84af8b0babd528913c8155ae3a47545e2", - "0xd2ca213e6a01e43f2eaab755003f25512fde5c1fc9d809c0b6ec437b194d5899", - "0xaced62e93320daedde74a5aa1f72739698c286f9ef4848b7be0682d99fcdd385", - "0x4e2f1707f429a5be0f52b39936d90bd3faa1693a4c18f0926cc300e2c2fdf8f4", - "0xc840e1e29894fb3ff6fe5572075b0a1e98e33b251fd8dd5996cbccf041a48b4e", - "0xe3d69480c26d810001a144e37f251e3ac4bbbc7558a0550a4ed8f8d5a06f09f7", - "0x7bf69d3d3bc804cc504ef7d37fde00fd3649dcc2853541507585e40b67bead0b", - "0xafe6cfb04d00956f24e4ebc3e9e0a23e55b044bde113654a5787a8c05add0a4b", - "0x3d050577e4169f4205e19f28f309142665acfd296c2ab5c234b6b5acabab07be", - "0x2c74c7ab90ae5058daed0c9551f0c9a52a9a5b10871fb0f71733fa6c39969882", - "0xf3d37db16c16218aa47b1ece8b7d178c42f1d06ec0141cfa0e5ffca27b21969c", - "0x5894c5aea4a461941788104ba38e9d8d39718ec8e4948c2675d83195584d1df5", - "0x564b9061ef80ed588a658fb138240e5c6356a5e1bd557ea06f85b4507dc4b73a", - "0x6a802d7836b1db57aa5b6c68b43fc072941e2c8090e73e26de86a0956eda3876", - "0x05fd4b6d5633a83e48fc91638d3f39cc6df164dc4187c78c19f4bbe78dcd12ee", - "0x481d0df4eef16c19e38d8a08889da1c2279d56ad2b6c6961737585686ff42280", - "0x0faa8363d77063a3ec76a6ec5786e9d64e0d028912c3ba5272c06cbf7c1d7c52", - "0x2177ca5c3420989d7493b28534489f2269f28e97ba167772bf5d17e9f9efd274", - "0x0694512d03ba47a5f36d024abed8ce1d15741f56c32baf7deb5b9a5e3afe66c5", - "0x38364d47d110cc930dd32fdc5cb7aa4e96b88e783b7060d2302c8235da7b4e8b", - "0x7f63e39e98887db4dfdda2cdb29ef716425f30480371beea60f2f70a8df7263b", - "0x4069d32514b8216a07b21c23b75cb63f12967dabec053304c990ebc8de9cdb99", - "0x954da7bca7ec16e62189cc6ae2878dc347d1677895cd978f2dfaf31593cd6bce", - "0xe9eeb5d86aec47d3f43f2b899fdad816b0c30e3040cfad14fd3e821cc6962ecd", - "0xae81c8ca19bf6b92752fcfdce9441f7c5b540d911a5e4315e561e9eb22746a4a", - "0xc84bf9c8ea619e0658ff70101fe588dc385e1e997349dbe112d66968ed672113", - "0xb113ba865fbc89fd495934f9139731222940ef72804eaea010f12ee167406fa6", - "0xf70a9e70e90a08c8fd629ab4fe0d1497896ab2d5e00852d18fe672346e337155", - "0xc1e671394b86e70459a39449e8ae9cd0b3e05602639e256a9da4cc3c047f6cf7", - "0x577bbcb4066d1aad7cbb75b5ce0f8f1bd7885511b1a7652b8f8600492656d673", - "0xa836b6615e1a4b6e306399e9da4d2c661985446822c8c05939da1a35414cd328", - "0x7042af635abf9efb3d9f5d6a2d25e638b6e9b8c6ad61591a7f88cedd4b0667aa", - "0xffa0e1f57683d082733344e57ef4aa267dac50dc6d72e8f36125e7ba892d19bb", - "0x2ac6846383bb7ca0ec56883b797c379336d64d9753a16ce48ad14d4086da2388", - "0x21499ae4629bccd17845c58f7fd13a8a72ece3557f4c11cc68af46426d3c3057", - "0x7bbb60b32ca0ec25a830e77790f73d11ac92929d2c9dc8eb70b8be026c7a7489", - "0xbfbd58d0c7f635ecbef3eb27d114068f953c2ef4ba9407a33c5516156d622e77", - "0x08643068ca01cdad8fc46e5190a9c90423e1f95cb4960684977c6c7980e6c0ea", - "0xea194e1527fb2202da5fbac43239179f2cfca95206c34c56042f69ba76ef3cca", - "0xe7e1206b62032646bb310e8b11338d0c94fef89151731fa701767d22105570c4", - "0x222084eaaff69aa8c1addb139d566e71d95dabe7fbf1cfcfb7d604eb3ab133a9", - "0x615c903ae923f5f8769befa3d9850d53b36ee3b47f2f136545efdace34e72de8", - "0x20f73e2ac4f18b1664a1028184367aa3d7b4b6d16492e199991cb0cc334908ff", - "0xe6fba0dd6fca5aca6cdc8b64f1509e6bb2b7819906cae07649bc311cec2829b4", - "0x4d73a9c7d379fd300f03be9e842ceec41a4c00ff35610756e5754f33929e8719", - "0x875ce56746e3303d28b7b6345d21dcc26412625d5972944a9a6039cde722260c", - "0x8fbf9148420b9c2eebc075d757ffbcaf0ee18373f1827b6b7c1051abe1b47bc7", - "0x44f7288451825d7b7bd4e4c8f82d9e017844ab9c08b77b4cbcd01fa39a755420", - "0xc150ccccd85a88fbe1795603c84193173c6de5814952763be4915061bf9490ea", - "0x936a08521d40e87784ccfe3bd50bf5f0ce28e8ddba7e29b4ed4139ae5030ace1", - "0x023d64dab9457ad253e42455b83a48217bf31b6779365694ced4640b640327e6", - "0x89a921ab2c309f0b86689c3d8f1eb6e9daa745c83b0d1a04cbc5331f9f96238a", - "0xb6f2020f682f34cd41dd273f19e6449c6b2b0b35d3bd7bee96363f97f028c27f", - "0xe61f2638f6cdc94607c9e978d6cfdc936a126cbbec0a97e27ed6733683b0794d", - "0xb136303b946b359cdd76c1a588046757221bcbdef6b7c4c070d9603bbe575b29", - "0xabe07f82dab2b17a4990f425a0daa1b78fd22ad33e68c499a7fd418c5f09d6f0", - "0xaeacb7ce46ffc86a5e08d6a71b7304f8f7f5fd794ceb0710888bf1825e7b0620", - "0x5879c7fe56421aa2a41731a4c6aeffdfe690b27c1468f5467ca03f69e7c74149", - "0x8a962ce351c06748908f8565ce0aca5b874c2ff18e99611cf12843a1bf93dbc0", - "0xa7557ac54d37f207d069407ebc80c1bb84a85744763e585c15199ea0ca906b47", - "0x26b637ab94949a1e7243736fff67435d28513b978a9e2173d184a64659f3b225", - "0xb80d141f221fe90d9aa80875c1c7d4f82d16a8b170073c08248878aee057c78d", - "0x1e4e58da25f9c1feddecbb771f6089dabe79079c9c8c98d78f8854b004f0b5c6", - "0xdffa5016e82a215af34cb2d7b54535e32c8e0797dafd1ad0b829ca434ddb7596", - "0xb74197a700d2ac5ac4105291ffe1567d146b3eec5447af86701b1599e42637af", - "0x4104494199a7fae34759bca78e8490f41dfc1eec726f33555a2bf87b3f923a12", - "0x0100ddc8b90291faf2af0a2b36975b7c7e247dc65414ad429f4b1d68a2f2ab75", - "0xe4740fc1ca3cbd20871da439f3af9e7a0aa94ab9e1eed2fb04931272f5546c3b", - "0x69eb680f378798e9dd194e3b985078b71d18ed637199cf854cb8116c5d2ebf56", - "0x8828999c917e550baaa229b3157a7914d4eca4903d96f2778702a7ac578bf897", - "0x3db2bba067a16d29a3ee7c68c9b5ac825f2814fb9b8490a5db3c1bedaafa33a4", - "0x079ebcfdae5f5457bc5cd686d65af96d8c15806ef4152eea5f4681ee472cc303", - "0xd2609a6ffbadd712bca9ea357311b30f79334667973c024e03670e26d2420862", - "0x3168229643f898f3297d3af867e03e1360d99d265c1e83d1440f045b0739767b", - "0xd62aee5a8f14ad052619317a81852cf563bd716a0ec621bfb25a15f9736deb53", - "0x144bb80a52cca2b9813f7f1ac547e96a57485c345f7eb4fbef7a0c6772292848", - "0xd8f21d1aae77e7a8610aef8ebc35f28c9f8dcc07463f4852a5a17db1eccbe795", - "0x8d08043b6144cd3d22c23675390363dd517fe2e8b71e29a7d1107f18d98f7607", - "0xc5f997af5b8c39a7992a3d64ae05d10791c18507c93977477954c4e89b28da42", - "0xcdb5b0e653ff308a24fc98b6cc28f1bdb4739673f2d96ea567edf9ffddf50c05", - "0xecba2883399e952a885fa626663de0c922e98ea1eb57b8b286121f5bc0a6b147", - "0xf32c9760a0ca7966dbd017d7326f50f15daf020daf31a5258819d2d55fb224ee", - "0x8e5cae1773d0aa309991d024ee02ab1ffcd0ffe895503e2f94ae30551de3d7a1", - "0x49d378c0158bfeb25b7ac2914bc1b45ddee970e58001ece549f60033781a39cd", - "0xd19e11ff8d23a64ffae4c886669d7e52d48ac281ad1283885ebafaab53e8ff70", - "0x6c91b89d95efff6ce209d96bf5c1dbeb5d6c01710ba03379be0f0a845d3ac936", - "0x4e514d655f12589e3c57a6f9ca2879658ea9c6ab0a523f5f107ac1a543e2ce67", - "0x44e9876929bdbf0e6ca42c42ae2222812f6bfe6fd957ccbc5f70a9eac80f0892", - "0x545859fe34e436e0d4183b630cd69b103816d883a0648e67ad955328022d5aeb", - "0x121b2a96f0bbb59565fadcbf50a02de161d57a8dd5871ebf72e039832104ab20", - "0xa96f4ab77346235358b680a23cae7f1cacbe21cd0e1fe775c4b0721bbee46bf3", - "0x80b235a11a3114ef45cc9c563b4646c338eda7e7ba2b077b0acf640197fe48eb", - "0x1a11074a30d0cdd88a26e648e673d0c3b6376dd8e5c8bf23012684102a3af830", - "0x51b806c229bc0755a73f256da981ba450d32a008306e6bf59ba4c893e1cc5795", - "0xaa74491a1e7d0edb6bf4e979ebafa5af05dae7d5d0f067303627f00e8fa56afd", - "0xcbf802903c9d29e00b22fef9f2875944f3d0e36a87ce6e49beb230979fb4e838", - "0xb92c3755d629be2c446a19a4a0bba3212f60c1fa5b342d60930379a74d41169b", - "0x07ec15dd0bd56f2acb56a5db6a530a23cdc33b7a7a1c4a8464572e6fd9b8626e", - "0x7f9c7a9b5abe417243e3c74adcd571aa45783a9dece0187a1466760270ba3b6b", - "0xaf9740a3960868f6e759d8f18221f3c5f6a6138afd40672e9c8e37e437be9bbb", - "0x7ec7bbcb17bc86e276a13dcd41513d7effaf08b67e71aa618528087f34efc208", - "0xf2903fcde2aef9045af6f83a3677ab98bb23adc5bda60de7d46509bba777d5ff", - "0xcf83625f4d891af2a93114908f3be5319b89372c31bd23960ad20f8031b20ce6", - "0x18aa4145b728ef0427165710bd0437dd5551a69c5056dfb171b546e35753860a", - "0xe139097ab29aa83f4aac8765e9125b109ddf2984ea325e7a1b4d881495f29dd8", - "0xceaf62b97e71d8326d5f66e81b26ea2b0519fe38c6a4b1b38d693d90d3ebf1dc", - "0xd23c423fe5fa5ca547a84e7e34f401ddc846af42956c6b052eea15950a0fe79b", - "0x947bb7c1e8c90826f78c4139def8e188af907cdb04feddb80360b4d712e51103", - "0xb8c65dbc12478ee24def67d15e845c4a52d9c4ce4467674faa81df72120061e5", - "0x85a642a8743d2d4aba389ae7a7ffa9b0687d28d4702cf45130e2d66eb43a31d1", - "0xe913e63914798d9b3518f204a989328f97520460d0e5925e73c0596d62cfd9c7", - "0x7c7065599f3f5cdf0314cb9ff575feaf604507859c20ff3a63e86c3dfdd2a5b5", - "0xaa2d5c80b189f37cfa00285362abeaaf430b9dc198a042024f1e148b0e888585", - "0xd5c0cb01fcee8af87b0842ad630ea13ea0892c97acd8b1443f6a6c7bcf7bd5b4", - "0x7c41cef1c4af5d15900fb535f0b1f3ae78de50cab2046dd65785feb768ea9437", - "0xf125c0cf53777bf2c49f9b99b804b0df68155c1c3dc554db66bf0327ecd62a70", - "0x18441cdcbc196bc6a4e4a5d9216132d3e075e60d2efbafecfd352621e6b2175b", - "0x0c4b7a2df6e6f1c4a724a8f4cfac0297f3c1f4248ec298a98d4c871820219e40", - "0x43bb93b6bc4c61df7ce7547405fc95a0bcb3ad7874562413dedb1744826fc4cb", - "0xf5f736e014cc04ab828edabde6a104caffe3ec3b286f84d4f6ecc2f7e699974f", - "0x8a912ec8dfa51053430d2e1fcfb67e7961fb7c9eb34006d08848d2d3b21c742d", - "0xd2567779967cfde9018c42f059490cc0c3518b9a32ee5fb1306cd54ca0ced771", - "0x3098a48f2fdf02ac43531168734d661673f82ac0d2e120f10ef0a00460db134e", - "0x9777d31e299aa8fe591612462b85ebb3c1fa27d60248cae8e90e4ec8ff00a811", - "0x880ea730ca93d9639ef1c2ab33136b16eb447b52b89cfe5b74b7327e4d12e4eb", - "0x1ea9f641d8a740ed394d34d7d1648f837667ed622867dd05fcd5f1387efb32f3", - "0xda9f20e5b4a61f72291e1a0438095af7fba8a55196a448c88cf3d1e1ea9bfcd3", - "0x949bd03ef394076512b6cb8f41c09a8d41304e045642c4670585a4e4b54c539b", - "0xafc89365b92724884bce8e10ec1c5c9c9f3f4a7a38effe56392642a73df487c8", - "0x447f42123c8ee209e4940605aa753cba0590bb4cecf366d07ee7e15e11ba7447", - "0x9a99f57a47d31a95f015347d38a3e39f66aa942747dcd65fdfc5355f61ea31cf", - "0xc131af20ca03905d63e74dde7d44d9138d59ec6e95b8a283fea9de870b79ad84", - "0xebfd03f29b2251499f04227ddcff308d5367bf534cd59f42a090a5a6c64458af", - "0x071ee5f0da2f97fca59606b25edfc0642371251d9c07aaf0e8010e5afaad7bf9", - "0x5040af11773c0c1b13fdcf6f2a92dff924d7733ee7d1caa83cfaa84dd204ce3b", - "0xc25afdcda4dff3a3b6a15e6fa90dc54a05a5cf33dea503b9e152a7fde6ceb9d5", - "0x9604f964d6de2c263139cf011baaf97aed1ed08dfbca158ecb495986d461261b", - "0x177e263de95e9c29f3ad31f286117d30ef069e981d825e767bce8031e634d84c", - "0x72f10f3393dea1a41bbe4834d728e8429aa5651c043fdf5b881650328eb62118", - "0x3969a0524ce2ed0d59f839f4abefae7ad9b2750b698716aac552e92079fae19c", - "0x99876fc077b178d584e9c29160ed320fe62c908ed406a2fca7ddf47de487f3d1", - "0xbd211392c93f76c541ddcbd83702db71a90a2ded78d530ae61c00c7ba72d9509", - "0x5e75d857ede2f1af61f846b5f7072225bdec659543c33b24fdd1bddf04de2f93", - "0xdb4c0c2519e081e1a6ed40a3a397b9f093f8dd4b24613d3f18a1e4f7ef94af9d", - "0xb2dfec129fe8cd0f7ed568b0a984fc37dae704c497770110b944d003e53b3807", - "0x6ba3b9ecafc2a469338c398c7588806d499b98720d3bd9c9bb2aa07a0fbf63bf", - "0x69a711d99e3e061cffbc1f6b10f4036de181a9bdb3824ee1a7c83fe15fb2ad41", - "0x2340c3402304d06a71998d35a2431774cd2198a170a3cf62989205545c6f0dd0", - "0xf7b9a019517ef3f4fd6bc5c4a98dc4b97e742e2f0f088d94d8b6442447118c76", - "0xf556a0b838ac7dc6dcd57b0e52f53df4a9f171221d620bbe7958ca3d71671787", - "0x68ebf1d4a6009f64a8a2f1b53611d43404a539e8d51c46dae9873ac1fd9548a3", - "0xb37c2344e14dd698bf0988608ee56a8f6b31fd2d18629c9a7dc1f027955b39a5", - "0x066df722de25d7455976b6be2ec850d97a6afe7f934fc83dde99aa5d49cc912f", - "0xdcaa64c29d2e447d85fe9a0329b269a283e27885ac75d874793bc4989d726f3c", - "0x6ac4870c173b2404d30357e40bb14db4ec0b87f35437da89c07af88d7c265420", - "0xaff8d57640e559db7dbbacbffbe7436d2708f5c3be26370b1b54a8e771eb4141", - "0xec0a42a3464caf7ba5b95d185aed8ce0b9e0696a03e2638f71382a92106b3957", - "0x7b77e84bcd0b0602128148fc8c94dee2e4f28ff1a748ada7ca7f5d0855e1708d", - "0xe0a572dde38708200a814e0120522528bd0ad3be8862293a21c69151fd72659b", - "0x2580506cdacfa687e1dc7344aaeacf2cb2a2eb8a4830c7ad83ec8cc0ef70a1f5", - "0xf5379cfc470fd6989c140d3d3bc51f9ca7a18761928783424c1947ad33e07e4c", - "0x582097b699a9ce614e823fd7e95235e8e6f002d2eea67e87f56ef86735599f24", - "0xab1a683bb247b5f0f3efb6a91f1938e0938326e81e6cdde2278827e25aed99ea", - "0xf21eb6fa7877e3275690765bdc7f0186e5ba0a94b0bbf9ebf1b4b1bf7aad3add", - "0x3168d818b07b7cc71912d7d92f2ec15d10ecf22c9ec20da610068c972c933c4a", - "0xd3d49fa35320e95473a7197c2a9c98bcd13b4b491ee96ac0199f3fde94123706", - "0x193d71d673a1e1de8267df397c41b8e3d9fb5b189b96da91c31be63456afaada", - "0x6579fe55af7c0d58f00f241e257db748566b750a59b7c05372b0b14fb03282ca", - "0xf6195d1b7de28d81a3f7d50f34f2a60f7ba6cf48d4ea9593404e48e6b33b8857", - "0x3bf3d52ff3c498761bbc2598c449d64a0cebbbb28201dec3633c73d5493b048a", - "0x57c4f9be1b0fc5d7c6f86a9297aa4d1375e9f5848bb2f3c1f08851f2c77a614a", - "0xa6ca06afd1b9fae9533d53a9188aa8497a7c92e363ade6ac094023bcb0e5f46b", - "0x09c669b50d1b26685f20817d0a096168b7d2a4949a20e50a2d665be4c3d4086e", - "0x8aa7d92376364e98c4549669e798af1c2e654a776f0561c89c7f7b2540725539", - "0x935240267eb3e1a1a6a34966084681ca4d8792142c4fc45574fa669c518b2e8e", - "0x7e339371cb38e9babe203905f4026cb90f25c8b10def4781ab5330dd0a63af63", - "0xfb588a940601e578fc7c3286fb4ad68f76dc1fa3dd88251193d9655fea77e056", - "0x90a702a71779ee4176ed8eab503deb43c63628535d78f9742ac95ffa5f699464", - "0x122c0341b0838cdcbf934769322e8fb8df77d8f8a666fe106cf87373bb719eeb", - "0x53e7ace007789e4c3513b16eef872dff5b6353bea42d8a3e3912fd62e14b8f83", - "0x3bdad07ec3a785d36f8c41ac9c0716a2cad6004bcf1e7e899b06c640e1aa1d9a", - "0x6d95da2724a3609af3466474e44455a787b9286f0bc016f13690a867f2f89756", - "0x98cd50a72a2fe944b00613dec757270f61e8590002d2e1b35bdb6bd4290dcb31", - "0x3b995783e2812c5d7fdf10f83170c8fd142caf1526698a9d094a24314ebb1a09", - "0x81cf7500dd9e75fd872b00378005a1bd180fe07be7e7cc3dcdb06ee006c8721c", - "0x8e7f5b4940da9de2b59fde73201351d01e5ebdd3ee863cc7653a919c64c35e84", - "0x6bd0c1bae338f0922d5c0fc951d089f9c290a42a3744f0a5b4b0b61a5248a4b1", - "0xca6c19228395454d07246773fe87ea86891a0fdeee12e8bd261625a62a426c05", - "0x83d0b617af7fe6f23019ff4e04bc71b8267a4dd9b79ae4ac29470e99cbe7466b", - "0x901c51cf6fa4726b8217b807f7b0d2e0b4ebb71b6a28e8168d2493016919b267", - "0x6d101782b820ab580dbe1cf9aacbc065279c18407e70e965ba3315bb77537c77", - "0x831996d9ece576f424f0c11abe5f3847229500ca651c452fd6ac234cc48cda4e", - "0x5d8fe79678589811621ff19ebfd3d6c4e2d0035ace9a197368b58deadc8b6fc1", - "0x8eda2c20216008d1c04f5bc93b5c2d9f8c3635e2ee440cee379f0470cd1a3c9a", - "0xef3608f4b6e9e835f3360e78b097af504df75f96796b4e30c9b4e643caf9d07e", - "0xee7fd312bae21e15346a412bd82265cd4231449f5a11824938de30fbc6400b19", - "0xd659949d718dc3522af4a4794d0c46b346109b5de4a8b87247d1f1a4c414b766", - "0x7567bedd64cd79119167944a7e623997ddf134c308a546724e432c36ee2a2d39", - "0xf0adf777a52828b31e70712776b4e56215a1038e0c14f2a5ab5bbf035623067a", - "0x92daf2c7cef9eee82db16820db7c60a3113950448ae4b149a7b32eb6956326fb", - "0x83825ec2c5c8a323cb5ced10e99fa0d7e9df73b9a158c522267ab0fb05ee7030", - "0xbb9e1680cb85ae48da3322345b06055fe4b668ae7b31402fc4d13faf439b199c", - "0xb040722e777fe01ac533eafcc93b869cfab5bc67f9e2e1044ff505c011f55f1f", - "0x0c488f1776428ffdd8eb03083fcc9dde010d7a3d4c08c8f8df2fa93fb206b2bd", - "0x54a0b71a8cba973d26bb89e5e07421b8c73dc59bf95f6190bb3b86e7962788ea", - "0xadf110bccb6d34276e3fe4701119b2527a86431d6f057a02e30118a6c6cfed54", - "0xe01ab7f11ec408b5a17ffbf6cabc3268e16f6be0cd0b15d73ee8b8e2aaaeed54", - "0x7280b73efa14f10d39306f2d2dc7832c0e47fadbc14f990a821c76d60be529f9", - "0x3cd2b491fa5228b4cae420d5c2a2da9a5e07a32f2147f45f3fa35dbde38224f8", - "0xdcc642f2123fc607d991e9794210770453e1befdf52582df0bbaacf85a148048", - "0x79a1710d32bfb57c607c5bd23fbd2b8fe3356f586172e507d2688185be8993ca", - "0x9ed1335deff01eda0b660081d44718b7cfa0fc69c3e9946c9733dd7ea64d6f8f", - "0x37f70e002a78cb3e8266d5ce7959a45649359b6b6ada51482d097b9f32e93179", - "0x814f9b9e4af3c84c31f40af0028086d16900f9c63f519f7bc3c18c0eb5c407dc", - "0x9957e067f5e79fa6f40bef2036c6d19734146ef231ffc22263bda5c36a7a12ec", - "0xa1a240b8ce8973e91dec89bd147a3b7af274fa1e233cc56b9dd83bcc9311a029", - "0xac083bbbb8455d3e145f59424d19a8fd7c6162d32a193c67405291ff64113bab", - "0xf2182db4682212298b31bd8bd086171a719bd68424da98dc133c83ad043ae903", - "0xb3015688c0e0f55c6e97034615de00173151c4334c72aabe048c47c244ea5082", - "0x15ebd9c48235918e2d8b2260acda2610b71fe3c4ba7f853238df940d021cd60c", - "0x847729223cc8abde709cd283dcc4356375ff89651f39c9adab865fea75e10708", - "0x39c9a1bd9e21caf13132b33a272b429c68cb7af1b8db3df08280860dcce141b0", - "0x31f21eb219700c01c3d910b2a922788d790acf6ad91c8de739795f1a740c220e", - "0x7fee191fd2c31b723a1d4a57af9366662e62eec889d886b0325f0c1e2e4f9d57", - "0xc682c555d050a03b8164ca927920ac6f97be4f96eeb8efe8e4fe3d7b48cc8424", - "0x1b887661820a95c845fa5c8e0bf10028b81073bbfa072a2f81f82b4aaf3c68e2", - "0x4e86af7e8a0aaea28c67e2658b97540e84ebd4cd1a9dff33c99a45cdbd0de661", - "0xa93100e0dcab1d0799a13d40ddb459e32f6e95d2c661094d7e8d09e008ed2486", - "0x2d15cbd72ffe23920d63d6916f68c5a75d2400b0417283b54ade9dab8ba3af5c", - "0x72f199719868bb4b4546407f7dc690180b2e8359ab6e747fe3ca4861c59bcfdb", - "0xc3a9a2ad727ee7623ec35671a330ff150e504bd20365a7dfec0295909e9973a7", - "0xe4dec421f674d4917299076c9885c49c51e7cffdc5253696b552b9c3ab307cdc", - "0x426f724354ff7fb3114bc2e66360c996dfdb1e8585d3967738285a2030a89b07", - "0xf39f6051d26d8b21aa5592dffc3be99480a768a0be6afb8b8eb5bbcd4058d4e4", - "0x061bbe83ae46285c935b9bfd646cc54f4da034b33dfa8b3b8c902995a77b7d1e", - "0x37b7086aa13372623ea527ad0dbf08bb2162b274420972c55030c4001e86a1eb", - "0x2de6121506702ddf0eb5ec8e2eae6110ad41b3982c73cf8382bea329e77a8cfa", - "0x4e941c3da784368dc838b7b8a77ee51868160a79362aef6caf0981fed3ba3d36", - "0xad2e32669978cdc836e32d3dae7a7a89b1d0e28e5f938247d1a6233eb055b481", - "0x8d0d13cfe3e40eca8c6ec865aef23fee9f5af445131bf0aeffdc87e4640a1212", - "0x8bf162d69c4565050dd4496e244ebfffa69bf13abaa9e7770b8173999340009e", - "0x21a33a33d92a99de5af52ae238a799e3307258b8b91a959a485238bad31f913a", - "0x21a95996aa2f4abe48a35617de16894f14292afca769679a63a03d68350cc362", - "0x57bfa7d2037da6aaa07f44594cef60a598ed2bc1218b9f6af48dad1b42759e95", - "0x7324fefadaab09a26c065bd98d3e9a56eaa7ef78df1269c1152bbbaaa6693256", - "0x41722de103de41c72010d1f19166ae0ccee2bb72314c719945f4162ffa165ac1", - "0x19b2f1f42353f935f46f8f9421bcf06e2ee573304d0efa13071d676ea174e18d", - "0xd7fc39efd2a392efb8de6d7d1c7807ed7daee0c8b82115acc60beaa7f6d9b86f", - "0x5ae63df9ecf9aee8cac4d0ce1edd37a95069d61c8d8ef886a150eda4bad4c87b", - "0x6e7aba83a3654cae6b12a6f87a9739735dfeb43ff67e309fe4701b8b17937915", - "0xd624f46d01a186da11d15eef4d79250191605e51ce19b9e02b62e65d84dd1c38", - "0xbc134d2f8acb6a60d424d4c8c6087fbacbb5202251c89ef720dded9947e3c4d7", - "0x6e8e39dca2960de07134fc043f73c9757c42c6827ef22d063c44a5573ce6c8f1", - "0xe53089dd7ccb7e0e78f3cd7d7ea342ce5a2316b50d6bd033ae621f6ec4329a46", - "0xca3eca5da2a9ded537dcd471390b7d97716deb0c5cd9e0d6a7e2addbadd97cac", - "0xaa5799394d99d90642d013e8359a40f2cc72e6b49c91233ed930ea1d32b360f6", - "0x8ae22559b0296959ef540aec5702dcc03d2b2bd9411b69af756d7d9e12e6cb90", - "0x5067bf825ad66e89ae1c46f1ebbbee8a77c2d285fb66c01b732b6c3f629b2ca2", - "0xf2f1c4304b5ec8b314fc6a4f9a9df69472cf0a132577217eff1c0a80443885ae", - "0x4c888be868c74ae86a9c0648429bdb207d18794e3ad6b9ff79d9291dfb0d0b46", - "0x3083508ec1669fa69d5fa4ab1d84501868c7a054a24b0a432b74be1f3bd0ed1c", - "0x443f7e4cc89e3c798c788fd40185525d8402c2160e5f3434986922c6f8179ab1", - "0x16d395ee5e915ea950dfc7639f90a29fe04ccbb47a2b0cd303ea719acd48ed58", - "0x901df34bd40035ee95569ea61c8a9874fd9151fef5701e91f02578c896704f20", - "0x4ce474419d801fad788b158bbf40dc7d7bc2ba43e1c2424f91b858055a7b61ea", - "0x10b2d6126ce1183cb227e291b184d7541b3380e100a70d876587a0aef2fe588a", - "0xac68a6a550c4a40c723ae37abd07d9e2d8486a30cd4f2cf7285f6d74882368f7", - "0xa0800069211efb656d0df4a81f1febfb48f251c712ee973afdff37a2baf83b99", - "0x53293ec8346c1a44e3cf78017dd033dd90be4737045e1c55d27130d7f6f36dbf", - "0x0a92d75455eb5c2167e2c07e1575a9580c135debe7bafc8d15d1fc2a25b984ea", - "0x32e6f505ec66fa987746c67a470df78a7a0fd136ef814ed24f3b5e0988cb53b0", - "0x20e6f99aa4b002e35f97900a34322af373397dc98ec28ee668e9921bc41d7219", - "0xc309a8620421c52fdae475d4a29530a2e56dc0051a28f8c4205c09cba5443666", - "0x0fb5bbd851d3860876e1dd038fd3f8d9e5b8e8b4e0d3b83ba0bc3d06222ac9ed", - "0xd71830cb6f3ad0776795865aedf50ceee94ba9ec89533190d3dfe2107a9e0e9a", - "0x768040f6401331b029bb0222b7494ddd21525091d936641f4ef89f00cb5b20e8", - "0xc52b410050774495fb2e22e0a94bc97dc72aa86cba7b20e8ce6c8a20ff03c5e1", - "0x026072e68a13a5ae0721d9e47ace688b75e16ba76ef67ff01d0a11f10e80ddc3", - "0xcfb1040048b9312c0d274a6b2576c7907176a983f0c0e02b120c10bee28f438b", - "0xd3036d04273279c5fa5ec4a096b8fd8a68a46c0536c24519b0ee5368c5103d84", - "0xdb9bdc3edecf7280dabcc104885942eced615311e93c2fa06dea812adc626baf", - "0xa25ca25f83c418bbfcba8a16cf661902499d3651b497e75161aa0d0bc4c3717c", - "0x96221feae35068b02e1540f06be277c27e938459af8718a2c883406b2582ba31", - "0x5584e36296dc2cc61e21c1e6539f66d918b800025fd6460da31f869cbc357289", - "0x7a0de103b391af8b2a9af3e6e5c2c6bf309d61cebe805db82d3addfde5395b4d", - "0xc5b000944c368f67c77e6c6564c5be5bb1fb84eaac76ca2bb3c7ddfde64e5635", - "0x544ea39b4d37a698bcb0c2dbd689ef90590e160db52deefe446d65aa7b60b20b", - "0x32160ce8e604c62c09814f8e13e795b654cfda57fdfef4b01c38ae3d078aaab6", - "0x5def86fc59562b477277bd6a2c1f1bd5a9192cd969c4ac578b16ea73031d5aa5", - "0xc0fc111d2c0eea81e7d6e0221c0465cf950772fe8dad94476c0e33d528928f9a", - "0x1b803a048d3ab8e5b4a49b3550c6586d71dd6f5409da6df0bc6df76de94e64bd", - "0x549d98175538c94e098c93f77ccca9ca0cbd11ab7c270ffcf1d3a908adb4d8e4", - "0x17d331df92fe4d8b57acde9bff8eced101f461e3470691ba7b46df9ceeb8129f", - "0x7a496054ef706cf89c0c55d848cac64779091799d2d64d6cb43907d2222c000b", - "0xe86b6819e9a482600ce2c9b42d248dfa3262547eb7ed42a6c1ebdb138e62206e", - "0xfd49fc9e5f4eeabb74a7d9ab4ae8a0e583ca153ef4c09e697f5c0207e6505ff7", - "0x9a297101369d0cba7b6f7edfe1a4a432d91f74f88ed3473ce14dc91cf616e903", - "0xd66a19a2834cbd910f2278b2bd5cae2ab9b58fe1a9e583cce4e2d22903d767db", - "0xd9cf8987c12672ec0e2bb97b25567f3f914fa8fb89b1186c6b665967834025a2", - "0x54e18efcf10895d51cf8f8dd6541ca097899fbb1880abd3b68aefd6e657a0af2", - "0x759486342c0162d26a8d2a0881affeca579a7cad80c32c6885d910f9e966ed94", - "0x02b2d8cbcb7244efb913aac80895e6cfbc81b60cf831b0a19b2354e0c7e00b72", - "0x414736aea69a7be69bed90c56eea05e5df9db9667f3b0b07ee6622442628fd88", - "0x75db93f08ee2236e4cc9222f8167c15c5bb31b4b9cfa1fe62f5175bac9c4c6de", - "0x07c460d27a5df943f09d114d99cc39c05135953c416591a7dc9bad3e2c064796", - "0x42c32a832d8a9911eeafbf0ed6550cce1be3832304f22a63d6edf1b72d92053d", - "0x2f8226acee0e5cb949592c1e77ac3da86f43f3834df940349cd6a55626ec7d3c", - "0x3f3e88302fffecb9751ee31a36de3abc6fb7963e264988904daf8fe6aec18fc8", - "0x0ea47b2cb04403773d9420ccfde549fe763bcdfe350c7546e3293b4612e096bc", - "0xf03a38c16a3ee05197b7c77985c2640af18479ebfb7db342416bd0baf2645eab", - "0x32c9844dcd2794e987ab14af8aab52d9925d77279377185697bfa362907f4bf3", - "0x72985d640d5ee8da6a1e0aa3ab71a19168802c29e3ab915d61910523d2d8a550", - "0x4453f4c055057ac3fb2780fa8fe131b6e08ef90a5b30930a83d4cfa5120ff6ce", - "0xb13ff4f56efd0f41bdcbc06c8a917f81614ca363f8c06bb3bd748467e146f959", - "0x172419af274d54de1a3ec6b10e5e8f98d0941d07571f9a5eae977597f0ea6e2e", - "0xa70469fc4070b5a675838352457cb6b4566a7a95ef843b0cf49fc0e02a342b0a", - "0x15072136cb1235007413c137115f4246ff22dd33bce99dec813042d6638ee502", - "0xa883cb9646a12a6f13eb4e1fde9422767be38279eef669068db6572d449da45f", - "0xe752e1e6ddc10633853a0c997727644b92aff7e46710c2c3850f6994edf83072", - "0x880e73586a7d6d79b4a7bd30f551d04e928747962ec263867f53dc33709353c4", - "0xcca01d7edd840727db14e657c9edb63a5518b41115abbcd848a60c9800e8b244", - "0xdf231e025e5c85b82fac8c836df78f5ee23509bb7b363b018ab27cf83680ea52", - "0xb42b4d31d1838886a6cb91123748078b5d07384afb1e574146a0174b6e3609fb", - "0x243c0ef11b9cedb39146fc35149291ea31906f60f56642ec3af28753936c7b08", - "0xac496eba34056ac76fd2c20c300bbcb66bc9d5257859aa8b8480fb1ea44cc60f", - "0x1631a82a3927c93bcb93d055ef94963bd00c264816768d7a12b1e6844b65a226", - "0xee630ea7011dc95ef7c9dab11e2c89a8065a85b7ee3ffe35bacf38efc61706e6", - "0x8bcb73df8715723d55d5635d5b1d5332af85b2945871172d22e10a2f19cbc9f9", - "0xa498dea3b8eb89b40f963d9266a2d4e71e3492c614e597e08dcf565e54d2d8cb", - "0xe798586f9f5bd8def445e5b66e1cd1037df1fc1e043b7c4a804d1cf368aaff70", - "0xc7e9da2ee64ed53fa9306e35e019c7fd74030f3065b5514189c50931d70372dc", - "0x557acd95f593728a732f1ef04b94acfd5475da37a18dafda2cac957db46b24a2", - "0x303f4929efdd5f54365d8927aae229df99e222e76e42b494e216d5365a4330c2", - "0x6252147a7a16f988726467394919d25e24a28756726bdefbdec768cc84d125b5", - "0xd9bd80354f25a846ccf3a47dc928b1d47958598474749795d4f1885f172fc996", - "0x356cc71f2169917a76e87355c358eca62bb5c79fc4f38c4992ad57cb35ce493c", - "0xadf1135a2511fd2cdbd33006738725459f33edcc593b1aa936b55889fe9e9687", - "0x8359e90f401234e4a85695c7e369ef5c107b246088baf3355046934197705c89" - ] - }, "nodes": [ "enode://d860a01f9722d78051619d1e2351aba3f43f943f6f00718d1b9baa4101932a1f5011f16bb2b1bb35db20d6fe28fa0bf09636d26a87d31de9ec6203eeedb1f666@18.138.108.67:30303", "enode://22a8232c3abc76a16ae9d6c3b164f98775fe226f0917b0ca871128a74a8e9630b458460865bab457221f1d448dd9791d24c4e5d88786180ac185df813a68d4de@3.209.45.79:30303", diff --git a/ethcore/res/ethereum/kovan.json b/ethcore/res/ethereum/kovan.json index 2ba7b0c7a..e41127c3c 100644 --- a/ethcore/res/ethereum/kovan.json +++ b/ethcore/res/ethereum/kovan.json @@ -82,5209 +82,6 @@ "difficulty": "0x20000", "gasLimit": "0x5B8D80" }, - "hardcodedSync": { - "header": "f90247a0d0c0f490e8e5045fa96fd77ce45ed983900feaab964b2b0ba3a2d3a6b5e0f842a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d493479400d6cc1ba9cf89bd2e58009741f4f7325badc0eda0c91e59c81193c4fead4f64ecaa349e97056409dfbb787772ea3c1e55e7582b2ea08be1332f5e7eac286c7e5e5ccf3760e47f4a919548c15e748ad4351bb8405f9aa054e0533aa3433f4d07afa226230c867fc1e2844b5f49b25aba8df17630d9f8c8b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090fffffffffffffffffffffffffffffffe83a26801837a12008306f78d845c9da0b09fde830203088f5061726974792d457468657265756d86312e33332e30827769841727682cb841d6db93a25c84287603ee26e48db0dd301753840cc7283d411d3febd0485e02b2520086bebfb3aec1ab69403f45f0d59249bf0d458f33aa268dc4badefc73c8d300", - "totalDifficulty": "3571337622391237938633151520660827524104528124", - "CHTs": [ - "0xdb9557458495268ddd69409fc1f66631ed5ff9bf6c479be6eabe5d83a460acac", - "0xd413800c22172be6e0b7a36348c90098955991f119ddad32c5b928e8db4deb02", - "0x7f2f84afc6caad6efe59a0fb9ff523bdd96efbb5bd22a0f67b3be8bfb8bb036a", - "0x7b7d86ae379af1c88f75a4b44d3097213b3461b9b7fd7333eac581537982dbb8", - "0x8525f5fb8149a1a64a83ec1915a78f3ce03a4a9afa4683544076f40f0ddbeb59", - "0xcc4a4b3e1bad427ad0d8b8ffd1c1c0789a08a67a09fdb0d1ffa4b1e71eb43aea", - "0xbaeb6b0b2fded26cf7f731603df0838397489bc12fdf8713a7cff865f009c5ec", - "0x3dbef76befeb39249e5c65d068fd97b8aea736714001a6dc2353b46d44f4bf35", - "0x306d007ef62b7cfed18e711d1cf449c009fbd5a8af7c9af66f3cda47678b478e", - "0x6b6038335d65726218d1d0301e12e792488a7ea879367c95263a20870ac91aa6", - "0x85ab7fde05c7cf468c4a65c5f7817e902f16038b3ce5e359490acae9c7a4f6b8", - "0x6784db2e15b6dffe0db864b2738804cf7b9804ae8932a2bb93a6bd2f2d4a8c2b", - "0x634119343bbd64c312a540e290b227adf6a84872ca9ea0fb7b3a7f5c2a4ba293", - "0x5836715c071dcaed0a79c77c12a02d54e6af55baed2c9325e10debc6fb07726b", - "0x7508b06556911cddfe4fc80e8a24603fd93cc79081759d4b7f19b2a6550757be", - "0x85de35d1995609af96aab65b1509dae77281a72932cda1e52e6af1d2c81cd46b", - "0x6575f31d4a44a479af6e4f53b7f0a5a1156c6965767b6e06cc3da8b46fbf0355", - "0x1d2ca9c1629b0e0775756536de5afef7dba628856e87dc84e5e6d16b08e12bf1", - "0x776edcae4d9a2e2a461fdf99eaeb1e717e3599f77934e058094b769c0a51f0b6", - "0x7fdbd14ca3a7408577c4e5b3b982edec1e7a95db784a34f9828ef5a30878f85b", - "0x64bdaef77b520a11c7ba92f494caade113a7682a565126cc4231d825412cee6d", - "0xc413f58e336df38771b3616ff1c9a1cbc881e4729dfa0a4bcd18dfca8e22f2d3", - "0x8da02b95474762995773eea74254861bf3eb62c099488aea97d0d271677a513a", - "0xf8d0c469352bd199cf28c997530afc31eb6b47662e1de2a1af05bcf31e6d5d00", - "0x88d9d2f7c1c44d4d0498c1f5ec21ea5d2ed2987e62f8dc6b17359b40200dfff0", - "0xe389fde4b8b06ababced10fb3756ce80b01a36751defff9ee0528accbf979b0b", - "0xb1f3785c2d15132fe17cfd455d015a01628ccf0116006d57de6425ef32bcc63e", - "0x9b2b9e6c015d85d3ba14bdf6ba6889db43cb8dd02dd020d1a01a4e7831604f03", - "0x8b22134cbd6b94ed1d17c89dc73771a3d3df57bc5c4b3d1540631c18dada7e4f", - "0x0a08bcb5fc682d91f0f95f934b4a38a71afe763b4924c8d049e407dea2bbc467", - "0x1d67c81b3c9316621088b42599abaf7e7cce42d60da44d2eafc8b904413b2c77", - "0x7bbbc5f13015a3ddfed8d3abc1d85ddd4646af588b534656256d894677c08c0c", - "0x2a442700726b19f5c82f756b08d07e9bc2777fe1557c079cce7a391684fdb59f", - "0x94a08a1519a9261f664c972e0c56b4628c3a0ab25a245abb4957cddc8a8f4754", - "0x5982827a354ee3703427518938a9b5b281249c04265db359bc47a7061f994a3c", - "0x3dd33939d000789b3ae1221b47d80ab4b8b248f79c97ea69c10148a4f8e946b6", - "0x37e5bf322012483f8e702f8a2a511b5f1225293b7c1be743cc83c637ec83c5f5", - "0xe671341e7a0275c306d55183e36b06665d2380bec4865c4c7cba51612446cef7", - "0x57ace89c46a589ca5150fc99028f9d586c4a8b1b6cf7af8b17ec1a16ebbdf8df", - "0x633ea492c2391b957bdac23f5a9428a5ce69882dc90db968e2882304bdf2b560", - "0x16aaa8ad98f3d2c127ca4dee2c9e1a36a0d4009447240e3297484d7cb2d5ce73", - "0x21abe93df9c382e5897599f54a31d3f46ce8e5e969c655c61da1125e6abe45a4", - "0xb01895100c1b028bfaeb1a126c4b4208075ec2a15fbc29a6499edbf939e7866a", - "0xd635cec21335fe1a644ec8913ea79ea987b815964ff883f00fc01c3a18c9d7a6", - "0xe5c761d35900479ea482e7804a056ca810043389f96ad208f55282e2e7617000", - "0xfa73e547f6a32b8154abe367a0138219514bd0d3fc304c742cb8b3d1eb8f70c3", - "0xf9de607cdd47e7337c815f4fbd44d983da6e38d653c3d3fbf2c6ac8d33707a63", - "0xa0d2cde0aec685c1d6cc05b21bf59817f123700e778cfe5eb80eb11add7e3dbf", - "0xaaaa3bd9f11785b477762ea0a3fcbc983c8a11b34d64475d16bc8c7d43904b9b", - "0x0031a12ba8c6e7408c7ce7987179b7534f1aea95a10aacbba0dade542ef4e1b9", - "0x101544e606fc49a7555855b72be050aa8a7a77e1e8985c3f54dec8ff3bb49a83", - "0x62202e7ed22ddc5d0cb3ccdf81770d4ed935e771be3d689c4dfd24afdb9c20e0", - "0x312cfe1c896a2624e9b2096ef5f3579b543d76ae166cb468e76a3b3b7fccaec7", - "0xcf1820f096d4b80808c50fbbf8de1b57da7b399a6f40312a293c4b5c7eb6d73f", - "0x1dde45a5e8ee62605753259a78e2c34a74cd5cf053a4c045ec5467f9e1311161", - "0x6b6ee017250b468ef3ded726892be7e8dae77c9e9e998b7e9889a34ff5da0cfd", - "0xb82bad6b19786930dd7159f35a4a24336d3f3b5b905b43f2a58165e0845b881c", - "0x77d20bc08ac7a25e115a1d23157c35c6ec22afd89948daba7ebd4809c3b95a2d", - "0xbe24e34aeb20602c184302bb10ac1f424226a985741f34faba4f346d8937e737", - "0x505e5b92245ecfde4a870197f7ece1ad181b6e8be4efce08763a37947122f4ce", - "0x6aeb3807dfe7a6db67278b5b6b6ee9ebb8996034c5ec82b3446a8c2efd3588fb", - "0x495f38afce7862a6614ed3d35531994e8d1e81dede4a4c9702922a3c06084e20", - "0x4acef831186426af96b90e1007561bffe2e8074bb33955dc36cdffb85e61174b", - "0xb2d7638804d6ee3e0747a4de335a26506898cdfd9221fe7e7e464feb268136b1", - "0x1aaa327ed400e0f6780fbaf818fc1f69c6cf407ecf80aa4f769ce42bffed7cdc", - "0xb955281446f41ea2330d07603803e148d5f1a2519f6233cad87dfd1ce4985259", - "0xec5f0c5f001e7897464a5570543060957fe20f88a905d3769615355c240e4859", - "0x18f872e3796787ef015a99bb3bc5ee4d31eeeec260213da70bd452f64de14c6b", - "0x9df2268daa9354a8264b5e7428d390a8d813266188df966fd58549dbb66898bf", - "0x6fdf62c4c161997e854846ed44e2096ea948c40efcdba2479896ba87fe484138", - "0x206bf3386af35a010906ea7a5263a71fa47fd317d23b57e448e49a36082916ff", - "0x4f627219247a8a93fbaa32b7f95e84b45146752d245e54299e7f74ca7070b2a8", - "0x3235819426f3a8b7affa6b38c0627c8efe0c2abd1eac7f8d6545e4332ebbf4f7", - "0xb5e514ee180f781ffadbfacc1831926f24cb305c352bb76ed7ae0a8247e792cf", - "0x6f287758e18c7967a5d52c05f8458e2d3ab2ec86fe0ef1d3146b99d7c3e3f5b7", - "0xc17dee632a1da285bc78d6c83715810e0e003c65c61c4105899b440487bfd126", - "0x173bab1413b65b801e136fe2dbf335b7d1f8689a127eb549bcd24f55b0bfd979", - "0x7e85be26cca16f2f34468f1aadd30a4766e4fe9d3746455f301f7f6e1baedc6e", - "0x85a0a9be1ab79a754c8875688b19a12719087e09d4cbe03f29965bbffee8437c", - "0x9c1c826a39e48b1b8d9d88ed29ca2d1864425d28e273695e35168eb01179ee62", - "0xf88831327094e7ec631fb9cf42719f89c4bceefbf25130784f09f4fa0a3b0a05", - "0x813e01a9713693c11c2781ac98604e51d7c7f610effdac795f74d538f7e5ec89", - "0x35ad80a70b0086c0a762ec29c577b031ea85132f777a324410c3870128aa91b3", - "0x6db9c2349d95bd51dfcb499ff26e90bf73e999f25b693ffa232c573f67164104", - "0xcff82a9fddf588d3d40e642f1eba1b9d24ece27131104e2e3995d6643e8afbf7", - "0xc6bffabb187ad144e33e7e3867f94f754e7e479c503d03de4fa891d294b175e6", - "0xd360ab92cf13a519f5bb41ea825e9baac0bfdf2298220c5ea60304ee9ac15617", - "0x8920024d447d0635cbe88f642966da52c1ef74d3ddc6c1c2df1df80c0a0014a0", - "0xc64a9294f5ca5fd1e1e05403e625222568c32bfd2f2f95bed2ad532b4c3a33f7", - "0x258ec76b8532f1f5169b44d8f5e0c1ddfc19fafab4cfce7c6afddc8aa4978cab", - "0x47f2aac68456bc931a0a8c458b802651173b1ebda2e032fb9541139352148156", - "0xa87a36800ed7e27bbee7ad937c1ace3ae08e2ae50a6673af70a2ec6e44ef1ec5", - "0x9182c6debf58629bd0d37043cc70b3c5e4af18b8aaa23cc5b455f009d1686371", - "0x0fe5abb9ff345ca06fa55cdfaa0804a6523c3ae162638e95edee4ba092eec443", - "0x24d7d4eb0c17869860d83e8be8f7579212cab60655aea5fcf070cd1461191357", - "0xf0971d8a37bc9b6a54d37ac7cd90aa4766cfe78cf8a6f376dac2304cea05683d", - "0xdb3e2e62d2da694788d2a0aecb2226c01de2b9d655421a079e2bb34092e7fd8b", - "0x57100a2ff274daa465da031c86f9b282fa03724c93823399c08d6b014054d207", - "0xc81fd4efe86a9ad97415928ae213959f2a716361da4a2937ceaab7358f105382", - "0x5836a5c844e45ae687b388603d62d28d81cc98ee1eeea6a34dad79d7ea6a599c", - "0xc98ad6c12f3f371a69eccb37407b43d3185b68380dcefae448b2e43db41afeaa", - "0x33ea1db64fad9787532d20f7739dd53a35fa810db902f2c33dfec4d652921073", - "0x3219209ffb0a9c5ae33779564dbf8a9618fabd1c0830d32a06dfd5a3990f7dad", - "0xeb6a367ee7f10c5d2882d86850f4a2680f78ce9374b7218d7cff11f0b01ff336", - "0x026bb678fb224a4e62c0d31450cf5394f4f71b9519106a5e92d58464edfaf63f", - "0x040ae0a25cc2c70fa710d394be7212b81128d7593a5c210549a96bf391a2f58d", - "0xa32caa1d1b36281e2c917f1951b3b0a0acde7c78f775681dd09c7cb81a2f14be", - "0xfe532be3ae441c5e9ec98fa0e006fe8529dad0ae6ba384300eb2198841014391", - "0x49d3b4aa6742d68b59eea7b44aaeb0693670c7b3b43788e93cd99f10d7ddbb7c", - "0xb205da5396369be6b68fa19264df3326c2bc825d88814843ac4f654cc7f921a7", - "0x57521341b29c1ed0cb02e8a64c43155e6020c4d8cda103ff56b2d2bb0cacc749", - "0xbbfc055f310e3930447bd33092081917d7661056ded31d3828b9a4eaff3649ce", - "0x52fefff36b4a0a9c2ce8cda94cb792a8260507df759ae2348ce79a6df3a2aa17", - "0xc4a7420741c5e8e041b8c7765b5c48ab0ee01fdf780efc95f820fbf549e5331e", - "0xbf90dab5cfd58fe4899475a911afd460ed0bed6e79487d9739399f7749520642", - "0x1f27056f98106e007efed121b017e82fd5c9b2c05de65cfb28fa9f67edaa6eee", - "0x6ebc2d4f7bc27d116b499dcbbaef72f8dd053559dce743706ecae5ce5338b508", - "0xdc6eb02678ccd7b2db8a9a9272ee53fc8110415ae5e84fbb8bf981eb25ccda51", - "0x3e261edddd8d34ba379cf163dab618aabfc198ce81bcdb1484b71a5bc4b50fc5", - "0x128bdd0f27a6d741399010b26f4056f0a919e7c1bdebb1bb69f22d32c80a2b88", - "0x68a749488b6e5bbeef10c98b678f67d1a7e53fb62bf502dc3743bf3c9138247a", - "0x52dc462248ddfead4b4aa85f4b2179280799b902519e83f721a849cc2f2b6037", - "0x7d70e4fab02e6a462e4688e96f7fc56a4fb9a945da942925ae039c6f13907c29", - "0xc746bf3861b3b63bd15b3cf0f0b6c0c331da578c35705176b90dee8a5b1e0d6c", - "0x4e251d7c4b2ae114b2f11a532fa060f6f7b1c4f0bc760034fe4e69c053a43746", - "0xe67185a040a731762897ac2e07ec2b955644d0784d18c6351c805d28e83f776b", - "0xa8ed7fd02d1dca89683183877cdc2a4c9985b48141d7967b10b38b59b831cc6f", - "0xc1020b2e8587f3c967ea138ea755437d2660e69abe8caa0d9bf9da9201b50750", - "0xd789a8a4a025f5725759e359859f2e15f7901a077d7683e3572d9ddba15ae94c", - "0x54f4372c804a66eb887614df08364d0e6b1f10c090584619c89c43962f513eda", - "0x3aa00d2431ba1c4c03452536047bdad3a5af547d2e16baad0bfeea0e7a8c3722", - "0xb341d41f92def7f5bf2d7c9a39b9fcdb2892b95a63ffd7b643bffaa523783dbf", - "0x9796b217efb64cc5f829a668989bb1915206e016c9714325f068b8cb2cd303c7", - "0x5deef3457cc95fae69c47f35422ca8731c80da50fd7f664583d13bb44d2f9ac4", - "0xa381a97eb8cf01a9b162666aaf9dd3142c6b2a2247830faf693e894ce99809de", - "0x7418829d2890fc2514b6e4da7b5643af269016ce2dd31d1aa7333c66c1273a6b", - "0x65466713071b4b5abe6a9c9b0e9fab247d56d72fea481e96b65999e2a085de95", - "0x0f97a6523532b4b80a7b54c1850ac2b062ff99d0c7848457fc3465d0d60623dd", - "0xdd1826c79f92c089522f853f87b551104b8b173f1c1797a752f2e8da2fd506f0", - "0x86a635a38b956903ce95ed3af65257383e2d7d86e6b63a61deec3ea5c8acc081", - "0x4afbdcdbe4a647f1137d417ac3580a116022c87cd6e7511330c4f2494cd90a0e", - "0x1d179aa8b0cb3b27844da4f06734f199fca43b66319cd2f16a60722eda994121", - "0xb1f1e42972a0b99268f42f6149452019259565cfeecc3459a58c17ba69ec4ad1", - "0xb80f8b8bee43d9e98eba909691ed6c9e900e8757326f7d20b6e7ba741d404a4a", - "0xadfea6390b526ec42aec881cf8226b9ad94f28ca1e682237914b30564d887208", - "0x50619f2ddec37c184798dfe50b067ae4bc0401bcfc1ab4d42cc19627b7b183a6", - "0xa53a92d3d223652e6572a48ad7624aeb2bb24c10872d17ebefd41ead1579edb7", - "0xeef7725747b978d578e5b576bc18d5c6e7148b68c2389478e0102b7656e7f3e6", - "0xbda668b4961ca5f6951f6ac55ca3c03a66e475e21905dfa8e797cd4a5ef1381e", - "0xba8c3be48f94186114afaab72a27a21db0316856619b400645469511b2bcc165", - "0x44d80fc17e0d131e6e98a4567885cdfa5224aeba8616d8f369cc84f3b85566e1", - "0xdce65f6c57bb81f01fe80daa1c6869c890a4bdfaf0f016456098bbd13c376f72", - "0x0b63a4585671669622a3c751d5ff5433f07cb0e9f4dc0acd9dff493c6ed01495", - "0xa287abbc612e2d318488a370e792845ff01ba5f7d387a2f0d82c21fc3d236992", - "0xae83dd70c6cc9cbd2a418397401461687bfeb8fa6d606fb7105153e50b5dfce0", - "0x02e31ae89b0dd8f66b6590a1f65711145bb9154825b7c68ae5d76228d92f016b", - "0x1e38ed1613141cd046a2449540f1450ffdca2c1a8d9ec2f1ce8d9c74ee189d89", - "0xc8f4747dc7b311c1a234f7d7eff3e9000e11c38624c23519b889543d8d33dfb3", - "0xbb7aa989e7d116e3c288ed8fdc0c7884fb3c6183ced8a0ea63a9de037ebf49ee", - "0x88d5a00fda80c28fa6e6d0bf6a6891b492cd6c85526955cfdfbba2428c9353c0", - "0xab03bd8ecad4f1afd0ee84a2caee745d4b7ade0f32bfbd61db50be15688e4493", - "0xb9ee61e8ab9ad32da0728394b5ec53452014f6fd99a5409923cf75c8d739da5d", - "0xa4c357be81081b833b5d4fd3cf4644b2ef1a28fdf67a8e0b0b2af3e8cd6ade4e", - "0xfb56d0c3b65882317ba962e2953a75d9d9b43c9f40ea0894629dc09bb29f6712", - "0x0f354b29bf19612285957523fc7d487922795d8fe5fb0aa4019b94a1f13d89d7", - "0x61c6ec536ebec0a740ad39900a2a71cfae8e8ff81ce3a37c5a4354ae48d39ada", - "0x769d94d0b3fcdcf22eb6c36a7c5b18711c79f69c27e9a396476d03e92ab0d058", - "0x5009c84cc24149c0134790682e0a9bc88fa5a8d2bd650207309002c25bc345a4", - "0x32b697d3cf2ab3bfb9ef79d27f3e61eb423ec9d802f2256b1d8875df78ca5887", - "0x3b8ba94c607acdcaaa7f0f7ad30028ecaf4d505d0675df95c358607210a23eae", - "0x433ea023715de94c5885d16762c0caf40079f5377f3cf3f5ee871c6812182ebe", - "0x4758426d43b67ad4d6e7a36272a3d772b94dc497d45292b061ac655111c41240", - "0x12542964fe7e8c837cd8e20a0f80de473127bab6aecfcc5be266bc7bcee87ccf", - "0xbe7362114d69220ba08ce42396e92d87027a63c3287be0fcf633c8a2853b8c71", - "0x722e26ddb7fbcff7dec266ac0ca388353c3a34d8ee23bbaef579b7acda48241a", - "0x04ede2fbedd140490e0b215e89850b8bccb059cfd7a72bd2fc3118495aa4e811", - "0xf47ea26f501cc95c62c4da4c57e743bb20c4caf6e81b394ceea58bc64b1a77a6", - "0x6f208393c290c02f4a505a6e7b2420da859e7ee83583e9a41d709333e67dcf9f", - "0xbedadad9293e12d706c963f31fc06535dd23432f7b27d157e529cf73e4f5603a", - "0xbc3572c828c9c1d1f0c90f56bcee1fe414a413fdbb7362a416bf4033405276ee", - "0x084bdee3faf8a9e45990094d668f6ae0050c1427e3aa918223849357f7865633", - "0xec5a32f5ff6f3887e5aa33d6dd61d2d63e36520ff0647a9eff2355a7311a0fe5", - "0x13fd23c260c0298286e193f23295b67497fb00c60047017bc62f94f6a25d4574", - "0xda66b3d4773530c3a3b563a8721523dd10f4b598b3976aa2f3becbc15fdda495", - "0xfa981ea461800e9eedd73c1423291c69bb43555321e1c5710a052a12bdc68707", - "0x232b0ab7709616262fb48d32ff36284ceb5dafc823ff4f6d5b79e8ed12c7040a", - "0xd90bc0dc26f812e0f05433c30fd8e19e81a81ac589c49a528e86027e8a352e78", - "0x3666c6eaef02990c263e0611e90d793c82815bc0032c2ae16813e957659c6412", - "0x5b46e134edbbc9466540878a637ce22194f040f519efd98a52da8e9bff05595b", - "0x4bff68f29ddbf33950af965ccc3fad46c81b6e2371922abf27b88fb2d669b83e", - "0x67dbb166d4afd3d1c32b9ce9ed5da75a25eaa160f90baf0d46a74fb7ddb09dd2", - "0xdba720e169d3c1dfde88d08bdf445eb428908560a520ccaa1da84d2dc07369b7", - "0xeee7477387db069e7de5d10a8e77d7f3ac7d692b4d582b5256bac44ba3d8381e", - "0x968ffed5244efe79aa4dbe1bcc7a05e24b5e50d1fd4d92117e1b654707bd3c43", - "0xcff2abc22b0cb5865f9767b5f6fa4b1420e3b774ff4de6f593516db3511d9fe6", - "0xd710ff4e765bd0d5e2284c8a11726c4924b6ba159702214a6016555110c2a251", - "0x31523dcadfbc24f1d3011cc1cff03a4df5f2c10fc4bef7cf0bb807edd1c97520", - "0x079cf6974e4e64675de7ce75b1262e2fed194440c2789f6fd72110f105503754", - "0xb121c3ac31a421442faf07a4b553de22be8e1726a67b0feaa4d426e5b48930c5", - "0xc39a8aa81b5c0a95d0037e20f3043e16832cd4b4cfa78e59a424493cd8322754", - "0xcb30c5710457eb0d9ece9274fcf01a96758e6e48db64093b1a08f773f5bdd594", - "0x916203fb9c6cb117f46f66a6693501711481691c0bef0ba0563369841762c657", - "0xf6711b05e901583fe0b51177597d44354ce57364282e042e143f37185af0b13e", - "0x3f22f516c9fb33c327d2184b842edc2535dd6cf4969178c56ab98ac11996ea46", - "0xd51b6361e37ceb481bc6e37eb61432fdfe23d52f2b64aea70c0a12a3c79d2784", - "0x9a1e99c578e7f7a69b7d914c0f748b3f94b6b30bae1be056849bfecc74e31751", - "0x5539c971cb882506860bf724b3f3d05cc399af4640775ed805288468dd83cfd7", - "0xc54c50d46acb1fbe017364ebcb66b4563bc0ab60753b055a19b126a55c476bc7", - "0x3adb55f5b09858cb849ec9edc3adf5e3ffb8eac43434c1ccb817038610b57c08", - "0x5fa06980ab83374613079b9d61c53d6ba93d41af996f5d9fb5e5ef05d36d8aae", - "0x1b66a155b1ebb780d501ac9f6d14f8ce6c644af88b7f86f87b5815379258c494", - "0xb75860039c1886823bd489d9f3b92c4f6bc46629d3fedc9f7d6fde59a318518d", - "0xaffab6d2682c1641658270a5b63e9e46b0bb90c05eeded11079b8f7d33899983", - "0xb5aede6209f50349dcbdaf85ff444e2252bd3e8e2faac12b517552b493ce4cde", - "0xa7c3e97ca8efbde3c829f2e363c5aabde3afe2fde9a1d106f868e87c0fc0682f", - "0x84f7405932b9aabbda33ac93170ffb73ccd5c584f0f55c17af4cd66fc938f739", - "0x7eb2a3d7ef2dd3fc0fc337070f1429e9b472a5912f9217ce4777bbdd07911034", - "0xb208f1088e65776f684d8b097b847c98cee4e274d49b07918e4ebae9585c443e", - "0xe0cec73204567174e0594f4082d01d7b8e8d382a6602e40b35b3197ba2eead6b", - "0x06642dd13587031239255686a40625c53358c4ced6eab78c696413f3cad9c6d8", - "0xb91a9a676da327548f5ed89ca74608c9403b994ed8f0cefeb53a1b5b09e76da5", - "0xe7dec1d92e8d551a54e7e310ca217933375c3a3944371ad5975d1601d5c6d0ac", - "0xee0d0b46a607e2b7df37f24ee652dde4ff65c95eb94b93092452a56f6ef9c754", - "0x8ef8f5852fd8e1f96f82cd3f4bdc716824070b3eaccbc2cca5da345298b752e4", - "0xe801666d13de5a51eba7c9e1d149339023b1b56c513bcba2e37dcf22bdb261a2", - "0x37a53559f626a819de48d74f7e6b484ec90c1fac766adfe08bf9234a139b0fec", - "0xeb8d703867e169bb31f5390ec877a7c6c82aab53f144593b75fc1599604d6c80", - "0xfed3012f3f281de26b447003799eca69e9845c6b5be85bc42670a64487c92a3f", - "0xf70358dc2c4e9d449727affd9cf45ddefa0f3480d964f85aaeb1543427e062a5", - "0x6491b2c05e217b7f21094e96c3381164f9db86c480b0970a27d8e25c875f5b7a", - "0xb4561f6329dd718c03d7ef6be0224612d776b72511294d29b293eb2e0a7b5cad", - "0x89f4a1b613ee34e1728899eeb294c48a21c28da7035d5d036cc46439fa42c965", - "0xe78f95f15c015a18e4598e33f06f6517c4455cbd2efd0dec1bead6080f050b35", - "0x7c64eb0c96598f099d0e9383eeabdc303002819b35223f744bf8a2bb80cbe394", - "0x98e5b4eaf42e390156a730d9e80606d80e2c0c9203e5511af1cea5361af63165", - "0xa481b0af82146b7aeb690456acab564fe356b2b8a560c4b5ab46817167bbed33", - "0xddac876def8620f40cc43a04c8d939fa12bb6d985223caf955e8174c46578bab", - "0x10a97a5a30805c28828d6e4eb4205905845d121149b7146e7373cdad4850ac88", - "0xe14ce88a794100c126707edb5a99922d394e004ce5fe178fbd02c8a34202d4b4", - "0xc3f18b1d11de7706063e2aeee7159589f64539fee39db233ce6983b24ffff076", - "0x6ae533d2bf3f35c6f1f256b9d1fdd863d5394956ded7a80b56ab1e12da78c93c", - "0x79ec4573d7df2f3b48ea706582d48d29a8d1483ae29577fd85b11c346a22e3a9", - "0x263652485fc477fc5407ca079eb494d4618943d01ffbc27ba3824fbc34e6bd63", - "0xcd414c2dfd20a303c9fd623d847e0387cb93cff53d006f335358894be35ac0b3", - "0x75d23d879b23aca1f2152147212506b0cc789c3e15fa8644a6c89a10ac926336", - "0xe166233fed0bfa647b84b95b4a04553087b4f42784334f5017dfd2a8e246f0d5", - "0xc48f212eef40b227aa429405e6c63d25fb35e9889a33007fd1afcc2bbb57a8df", - "0xfe6e67fe4057baa0701a7bc7f98f1b59e8c0ef03401e564d51b9fbbb49a5d11c", - "0xc31d73c0443dad07f6eaffa3171c77c8da87c54780d4f374128adb79fee4ed54", - "0xa0ea13b2425ec84fea7bb9f121f0aa72cfb00e36019e63fee991606246569281", - "0xce7e8e4515b0ebfcdd0afdb002f9017076de88e278b914c902bafca65a8b12fb", - "0xd14a72a5605124a8545dfc4d7419f00e85083d558fc662dc17b3bb289107da83", - "0x3e89c3740c294a0f54068cf769091b1a976fe4e60ab4fa48b9c38c034c08e9a8", - "0x2ee8355965ba13e91d71bde2a72347709c97cc33bcaf1ecc6952c860b07c60c4", - "0x63a87a93a0e410e53146a60a46ca870604f8301e221fb5b470402aa2dd5b9c54", - "0x0bbdfc34316855dfa828a58923acd7ebc556c88a43b655d32bd46ec6008d8351", - "0x4721db737d99128133928670bd229a0a7fd2889e00e222378fe5f663e35587f5", - "0x4f52db42c0f03f342883d78d387ec913a65f92961276b0e718d4b5fa268aaadf", - "0xf7d28588843f736c341b8572322d1ab397e0c5863ac9a30facec3eae0126f3b8", - "0x48940fceeebf3fca0496483b58228516b9c54404fddd31e573c951b12d017d2e", - "0x87542780e6dad24843883c420ef6fbcb2ebea31b073fe54cbdbd5ffb2c4b30e2", - "0x35bb6ee5defc7d7489b24e9e8659b7131ab9f7673960f3ab9bc9324d6034f3da", - "0x11719cf1a1d10bc3c4a48ab177ad65039ff09d1dbb34b1b7c15fa78b5506b5ce", - "0xd086c0fa8b0a1f7cabd9bcc5a1e36137f59b7ed6d91057defc6f62fbbce73956", - "0xeb461e410c324c9ef9a0d240fc5f153e1af9e88810f1563767022723bbac62bf", - "0x10a384a0f6c927bc9efc21ae1b2988e79268de24065b91065b582aff4e0cbcb2", - "0x7020503d8d86fe9bce39301207283c9f9bea9d7789d0f1488506a4073d482d6d", - "0x93657d3b8bd95e33b9b13c3a4130a623d4ed6d8eca8cfde3e6fc9e16b3f1f898", - "0x40727606bcdee8714dc15b349561d8b7d293ca4231227384c56f1a8fab986041", - "0x5ba216663e223675ed7da19a7bbcb08483f6871cf11d911c3ba992829e40ce2d", - "0xe9eabb151a2d735f0ca36ac9ed65c612276a21e28b1a63b5fe632dba27207969", - "0xed88ead1835a70d30368a33955de7c4736bbdc22ba95f04aff7097589887b2bc", - "0xca47f392632e4684e54fd50f5cb8e6983c8c2085d4df8550e3398c4e2bfb9bb7", - "0xeb8699fcad43fac0bb54ab553c4f29c7d1a3ea6079e9d5218a14b675477576d8", - "0x912ab118b513c06e618f29f9a7273e8035b4723b3a21521a91a43100486759d1", - "0xc89d31d9d5bf2fcdcfbf8ba8c61307656bb5673474ea605d1e5d70ab1d7ba43a", - "0x8fbcad4bb94b91cec5d9ac2534666f019c807f8889d37e3107fba28002c7dd1c", - "0x3f606a227cd3a38e2d5da4c611b9069c109e9c291d390e5c1bb3b427be68c5d7", - "0xa69c47f146ba22a6f53562f4ec3d13e1cc5499db587095dadb4a89f6456be664", - "0x36a9e5d14b3fbc061dc83eccc0e6dc3f2a56f0a56e88a987f09d89257c2d2ccd", - "0x9d77184cdeaec05bdde7df7005467af592a625bb0a470e5b071d6cc6537a24b8", - "0x3f9634b50a524ff350dbd4e764d3c01d848b44400485f792d4ce4e17a3afed80", - "0x142e648622d2f13dbfa4c0e58f91ec0073455a6b327a2a2273fef05ca9fa7553", - "0xa4348c80308a3e0b0b4d290152bd09b24d2420281ff3240d2b54c406ba2ac003", - "0x95e86927eca33fadf4d35feb4514ecb90babbcf2ab5c801533a4d36ea8ccc87a", - "0xbefc0239b823cfca21afc0f57c144226a8a72f6acf86a1152d8a80ccb27475e1", - "0x1bdc16bd7d21c2cf818f4d3f5f1cab4a7d256ebb8b32a8464c6b6ca111c9ab87", - "0x04aa15ecdc0277166a77953b4596e2558af4295a342330ecf9d21b6221f21a40", - "0xb432d2660f59648ef7929901a0ce38ff577b4162a69ec92609c8ca1cbea5f8e1", - "0x985a13bc2bafb56e5ffd1b0e582790eff30786bbacc6e28ca57017d398f1552a", - "0x57c5399f6606f02bd06c9470246948e3d482ff9dec5de270f6c06dcc49c8c8dd", - "0xee471268956c3947f22dc8a6077c850f10c1227f50cd24ab7a059b94f3496274", - "0x97cc4534898ab427418bad275c9c21c18d6f51cead840bd5b800e27e1bb1f76f", - "0x1370774538f3c6aff104060091a573c94269421e5347d9ee26c9c5ec90956174", - "0x7b29a2dc9f4e8c3d43d3ec93d01484205583cfc6c8fac71ed0dd6eeab3c7e987", - "0x2127f737690dac5f24595b5d0b96e869f750b732fd8f004860b5510376b154a7", - "0x196f4545946a3a4b9d5a1c2ce3813e55245cefcbbe424eb50dc7126a6f7ce294", - "0x89a6c2dd239f741797b47166d4a97d8a6147b26c7f61471a272035fa6a19ca04", - "0xd4cec04b0a1a8a2240cd2745e53e55dd560c3da0bef625e3472a03c60e5e1346", - "0x482aa6954d7bfb528abdd0d2a44ca7256adc9d2b5c885f67af0424add0f85039", - "0x16d73722fc18c4c5fe53ec609695dab204ea3a0ac8d52356acc56377495dc715", - "0xa2fc87f2deaf252bc56f50d67e5ea24cdd23fc3a0931c69e5c7f832c57e6cf5c", - "0x95702d0ce28a00a2c52cac13db300b535e6be5aab6f1acd8f7f8f3664d8f1942", - "0xd7423e6ac1d49688437234bfcaff2f8075a6237b35b719084c6f9257d6b095ea", - "0xc1efed370db76aa0e6e31680e91ae03788ffb343c13700ed30012102a727ab05", - "0xad108c165dfc00e6db95fe8fb28a51a21f471d16093f761af92dc3c1a76cde18", - "0x579ff43e25ed4183ab6638a5b3b8ca5ee06343b410a47abecb154fa98fa701db", - "0x58446a3cb729e43ef984f52bd3a1c0c5bc2986b355993dc04826987c9a4c2b0d", - "0x916b6e17ed534b2ed79c4139250ced98cf81a39ce19092ca7593b8046b010fe9", - "0x5a85afb15b437acc1958c1a35beb35ea25a4e4bb2856fe82f4d2c257ad92e4ec", - "0x74f15f12f6acbbc1ebe68f82e5832c2581660451eecec1d2369ca842c0384927", - "0xe3724b93bfba09e69c4d3991f5bb7560dfa58f264a2ecefc1fae2a933fd81c75", - "0x4651a72f64ecfaa2b51804f6c02f0e341d43163b408786df50569668d6b1afc5", - "0xd67008562a459791d2de81c71369507475fc3727fb46f68ded3bdf313ae3dbaf", - "0xcfd841df8cc01abfdb09b47afd98caaaba19b900c7d4249eac819f24ef7ae98b", - "0xedb8f1bb736b4b16985f41b97209730b6f99d981fe3ca0c614d138cc9f3651e6", - "0xf03d65be04a3b5011007b48aa3eeae54b39166013f8f0977fe185036a2302360", - "0xdbc7e5449a0af2b69668ef3f860dbaf2b0e0053eb5f96bd5879f59d1535aac78", - "0x44e3d860cf489a017a5a0c99b7fe2facf87c7bbe8c641bc2ac020bd45ae278f3", - "0x8f2d4fb90e6fb5d1465e5e5368b36d44d2081842b2c3b1ac3c2789cc8e2061e7", - "0xb47a9bfac379a6414b66c2b79ced91d87f130b0c2f86c67ca5295fa656547b24", - "0x8975e42bd19f5ff5a6336f835a53e0e7d8ec1288b9f59c266e1da463fff8f24e", - "0x52a573f0165af4f0a8bbd90c8ec2539ff430ae8bb9818c2cbc2c91f82ec056df", - "0xba647605f77311d053ff9c76ac71e88b6d1dd6b4dd5296eb0b7fe3e07eb43880", - "0x1c6d4757e48f80ac0a247bc7b2649239d0284b2580248a8b6706f04ff47c1f1c", - "0xfe42314e663a9196f7bc6b795bdf2763f49467c9b2183eb02c25b5c79e20fc44", - "0x15b6054f899df7793f03ab925c1d8df2f94d6221552b890af6de5d8a5b7948f5", - "0x694798b4238b93838948377161ef5165af4dfbda5f0f9d8d2d37c083c3718393", - "0x58724b920890120f1f90ce8bc3e9c6639042b3cfa78123bc9917b8854315e31e", - "0x21f057c8e538eee76a95659618bccefab9a7a5ffc955781141a3eef71f3b3423", - "0xa5fec657cc7ab1b633023791470bb2c5a7f1dbfb3ccc4e6442565a791754f319", - "0x67a17493b80cf75ab905ccee157746c7ed048a8406fdd94af1c6916cfcb29220", - "0x9d5132754a73e0ba316da2f824f5264e851526c6a75bccd153cd41f232e1ba42", - "0xe9f6b8e973183e7b89ab72479003bcf07cd0d141521c23e4e4269f58f51692ad", - "0xe52cf37c47ddd837146288364ba448980c24dda74c6a2560a99ece3174c94a57", - "0xefb69d2b602cd8b073314ae5af7d6200d23335f1e46980c205ba0bdd979d0ec1", - "0x3e2f6e13459a82666bfc366941b39506d84b1b6a1c94e4361d51d30cc1bf4218", - "0xac8562bd8210325b1dcc8cc3c4214a97d04ce795c3fd9049c7296f0d855045a8", - "0x22b62db26899a50ef8630a9aac5cef645512355901ba14e8f1a3468610473756", - "0x24f7a40ba3243eed13a4c2ad7fb273a1fd822a3d2b8ec729b0e5184c3f791e76", - "0x1ea72f2b13fbc945e3ca51bd681b2e12e4ead38f42622ac3be54a1b89c826baf", - "0x95b26a476c67aa211235b0b177964422d037768a1c162526a53e73b2777b85ed", - "0x1ed2cbd748843651a8ab0a31b256d4d3c6bdf3cbd3db7e73090a679756880a6f", - "0x20e857d94a0038a51313c8a67d30f7aed8b335e7cebdffe8795ee03e62e5443f", - "0x9b807ff518a22a7a40521537b137cc25904b8d2607d7d9ce1f0e50f2327801b3", - "0x35e573f1dc47520f16eb43240dcddb95d167eb8e59430c608f17303a9c86b639", - "0xa06a21571951ec87f6cba9dec2cc9f1e55b4b4d5d3e2e9415d30fbe50370af12", - "0x7961da55526e7a67feeac00e625a1ca93607b7bc4d4d68142ba791e46d333e78", - "0x5accacce3901feda7004414e0d514129bcbb14ea727f34f58fddf4b928774589", - "0x0d66a4004a235178a69941894ccadc2e91a843c849284db82e90a088c3d3c6bc", - "0x8255a1650988cee8c57e30a5a8fa159f71fc2f3e23f799e11f5bb31b09c54667", - "0x7d6936163556f21f56185718a6b7de5bec0375a01f4c88467820d8c66dd983db", - "0x3e3c08ff6cd5f69aa8f85e9a5d8c91462cc228a41e392b7a544e2efb6af87cd8", - "0x4f401bca18b8cfab219430fd6807aff86867ea52f12b45ec224fa9dc318dd789", - "0xe14e32f37af0204cc56fb10ae891cb09b0c27a116ad42b5946dd1815f445cfe2", - "0xae46c70ae8bd612e760b614689d48b34358bf504a2414b660224312622917e4a", - "0xe8870fb901d8234646d87be0eb0b15d46f55c8d3765beb631dbd06da88d50038", - "0x997b7b18cccdd31b611bc01767a3be138f5ffb2c92de11aa1fa486a578c94799", - "0xecc5dea6b6e3d233f7caaf17e07a5f58febf9fa6d0736228da43b28cb5538dc0", - "0xb56b9b982a7915d85fef49df531e0a1e8e8d000b30da66104265eaa7317ee2cd", - "0x09601975476271e885e83f96799f15cfa6c0a67037b9d31eebf01cf510fdd752", - "0xab2e7c3c19f0d7aad30ff986e9b2c8a56f09906b851c53455af4d35d61b20a32", - "0xe5590d245bcc42d8efe40d677c42d840da1b32c49369bf352f46690bed9a4dfc", - "0xb46810ae0d11af6412e219bb99be0ac22c033433b1567a36a69cd962c9456d41", - "0xc296086ad6481ed8954c5542e4083388a4048132a952f500b2c362a19e8333c8", - "0xc39bf0d7e42ecfe35ab387932eb54ce0c1e502168ba5aa74b838aa17ec294d27", - "0x1ea48989819dcdf6aa0e9b0cc41d52a4d348fa80c8aaadb24091c517e3fd203b", - "0x58974a726103f506b2d8c904a8b942e247ca648678b7b98e484c203e4bf03ae8", - "0x0ccee08094a04e4db707f8d570c6098cb87b271a2aeeed08e0f589d2c162afa2", - "0x5a8620a1f85f856a8cfc105a05d4a935cfe626de46eac68e2c78c7b8fbb08c31", - "0x070101ef142836edb475e9e5bddfc821fbac8b2f8605ad9f52a1ae00bd0d1f6a", - "0x822efecd485d634912a4fdad41d72479c31b7cfaf664f3a0f78dc9ebb624cede", - "0xc6c7f14ff1b5618cfa096080c6fa59d301b3c2f516ed9f4eb0c3acdcac3e1ee2", - "0xbe85e53c24900f6d22564f33f05f1250c9f80b1b4616c0dcbb6f500f22d376b5", - "0xa84385d0d3f54995864695c96c5fdd30affe8dd9548b754edd12d80802706ef4", - "0xe12c3324e68b4efbb14fa5522ef6d2418ef7c397f390c2b91e30352ffb538c48", - "0x06cafdf319f45ac908dccc5e510b67be82635a488234d9b3fd016dd2f09667d3", - "0x236822c1c20ce528a5d9a985c2a2eaf8349a3ff1dc13cb7f9a8c7bb5bc39e9de", - "0xc438b7d70a69768bb81ab867d6772133a592f7cf770931eb51e893c106461143", - "0xa49a416419f910f762ea095d4e8eddaaa7b01b406e730d3bc1846d24b6952302", - "0x08c83875d8ad54befb643c8d8dc684358aa22c144b9448820c0a62e5ceb9e9a0", - "0xd81a30c959e06eeeab28bc3b95a1c8a3466f2552d51ec0bde69a1d1f107f5405", - "0x76803ab074a7170033dbcc33a68d2b497998dfde8b9ff86101fd54539d1bd393", - "0xf7b9503ce1753623091cd263ff23af68851445bdf97c166358b890ff9dc78f17", - "0xbef1f09e8233542c73ea380abf0115279469e2bbe3abd557b89d12b514bc7a7f", - "0x8ef2348cff8d0d40e6f1b0973636915adb3ca63fec663383b8afac1a46dd0e8b", - "0x9724f0ce677572033e30756e4fd356680bc64d171acf7483d5dfc936267d3d8d", - "0xe5fe7147af6d1d1d52d34714de41a7cf7bedf38bff1a29a25263beab0f59fe61", - "0x3782ed2e5a049f3d877c8480b590a5d2055918c17804fad7ee7a6c2a4358bdc6", - "0x9bb40bd9cbb5d20c8987aa4e75b0a8036d0d10d87c46abee889d5fc23d10c98a", - "0x75d9d23fb96bde45550b2cb8ae4759ad36fbcbed51f00cf1bd1d04d0f5d0400f", - "0x5a5f79793464475b35bd7fc427a745b76541ab65d62e500d93e5357e588948ac", - "0x903e3a38194c6eb3cc98c857b98ef68bb1fc988220b12138ab40141335b2b9af", - "0x9c5c6d1fc8f1242a0f3f41e6dd9cb7c1ce6dc644b1ce552b3dc0ff7db83251f6", - "0x77b89a725a743a7b31b01022e4ffd1f35f733461828f204cc75f4f00290a01ba", - "0xabc38d580c92f199cc0aece60899fb6967ca48a096b98991dd757ed1fba6c36f", - "0x61742ed64d417b66d67e4638d0bb60d95f88cca17cb7630b1254ac3c47739df5", - "0x47f7bdedee6e8eec229eb0f66fad208a8a05450c8b649e2dc400e1b5759f4b1e", - "0xdeea16c07180d8a4eb104e309343225a354a3adfbf1b8af733456a185f3ca669", - "0x6df5b47f5b11511f42b4e981d92d55cd9aa3373fd90735cfc4c594c516159027", - "0x5a5af9e8656afd3b52f4e27002f1be9b09c5e7a3746fac7e64f5973ed423c14f", - "0x1ccb86d370ee32261f76a3e9d5948c40489c26f2f4216535484d7bd586f2851b", - "0x313dda0f2ce1542eb1236a1d555959516abe06951460d77664650b6cb7613d5f", - "0xfcf5408ed6675b5d1c15629e02635d726777e63817c3ccac36d4726bf95fc4db", - "0xbf5f15c67971a4b624a8ee8f81086fe24f1940a084bbfa031d0b69b865d553c6", - "0x9fbc4b0ebc2a128d391b68be84f6ef7833d5413bd95f751b503799a54c55c3c5", - "0x7ba3b1dec981980a957680b3c125328bf3683578828412c3de197ad07d06565c", - "0x4d2ea255cff42df73c96d18fc2c372e5ea9fe80eab5c98a6c6579725bf4c6fa1", - "0x9793db50b81ac75df1846e8b8898dccfa822d69bc4f99f6bcdc95ace2e3317fe", - "0x21c1959416e88792275d6eba88e8fa503c40a1f4a4b78cbab5b94e6c1ef714ea", - "0x3161a8a5b42bcf792b44bc3f7fef3606978b6bf716effb5ca1b0fa6b85518ae1", - "0x59ca1b7fd1f09941c911a4a6d0365e7a852a420a43af73ee0bd76f6413c6f3f6", - "0x86db4d45c982f195667fefc3de1af4a17b083b6f3700e47568ea43829e686e06", - "0xe5a713d52d696cbe65220fb30a4183ff9121ae1868967eee002cc032fa41b07b", - "0x446668d8777d9666222a04bc9963f89873387535f485490adbbd15094e6cb9db", - "0xda139e22348743ae9d600e9e2f651a717b8864f7bc8a4881a875945daa2645fe", - "0xae22c6f51fa8c11daf898addd39665d7bdf6d266d42ddabd790accd6538a6778", - "0x1059bd6151a5a3de93e45f7b3c498225b759a46444717cef5e66879b6e0a43ab", - "0x893e490bd7a3cef98d878f4f55d22aa0456f934e16a5ed635bab5d993909b006", - "0xefff7bff0a97e0e51718eff0d61540e164cb131ebaf466f01516ebe956b6e0f5", - "0xe6eef674ead50579daf941c526fdb904419a37f009fd432ce0521835b7ea09d1", - "0x7cb9c0e3aed016176058c80a03eea8f70e6f0467cc744ee752d937422ddf455e", - "0x995c33746119fe51b3a3c71311fbd4d91810a2ad95a558101bd11ff1a9913da5", - "0x926048c8fa6053aaf47f8986f195d19f1a86a4e01d5b34c45c91a09f57be0cfc", - "0x18ff8ac452c3f84463c8d8d92fa6f5550149f0d9cc0bf9b9a6ff6f05a8e3dac4", - "0xb495eef7e11375f1fdd6fa2fe3f97e1b834c39abe60ef1eb75333f36474a57c8", - "0x8dd386ddc871b764849a057f98a838f0f66883cdaea5ce4a9728910d3e1d124b", - "0x344c77e81e60bb40be5a20fa14b7fdc8c4c696d523cfcabc408e04df7fb79259", - "0x6b55d08a7eeb8f800866f031cf194c0ac2292923fe0df0460fedddcc77ba59ae", - "0xa007e70a725287607f23c03a782cb36ebecd692b45c1273b62769ddd1d0caf1d", - "0xb196d7291e437b6a26d006634de1edd3096367faacaa2b64b6c52a5d2228fd43", - "0x7f4f82aaff92c6e348d8b52e3bffddc7d06780b3750630d40022d54e668ec761", - "0x942e657c2125a5f57351b6e5fc76cf6ff6690529034f65d1bfa18ec8827bb241", - "0xce436799308200b480aa234ee2a4ad407bed1142999a360ce8a3d2230bfd4285", - "0x9f3fe03371f56c4afa64fbf2379c7dda3752eb19077a4de4b412fb7b5a4721be", - "0x53f63ddffee8a93759f68730026c3a8c9026a1a61a17ecd8b98d29e3d24dd019", - "0x08c2112cf1abe207076a67b43f67402df0d9d99990cec96e10ca46f4799134c0", - "0x41c4a5929a07431a1a0918caa5294b9b0f706960afe8e75b0e4555e40e182d7e", - "0x188b2fbd1b54709384dbc8b62e21cb1cde0b5c743aa3c25d8ce5ba4557728a54", - "0x92cc75e85ad9a09407bd0c09d68436fc419eda5c29614e125ff99964e304c0e8", - "0xfad03371877721fb4477f73575cee54356114f0842222f6a343357a15d409568", - "0x6072b8482ccdfe974790727775e8c0c43228a724068a39e351a5c702e7086fe3", - "0xdea9c30a8f46fe7e34b191d90b14fe09aa61275a32063ccca2d138886419c60a", - "0x3c24861389a3d1a8ed5d2c71e052914d4dabca490be956b7ed63a2195d65bf60", - "0xa2dd585af11cc6d60b55ab7b5295db6f5fd49e34c58948ece2ba6a4417f53fed", - "0xd0cd3dfcdee7cf3b00e718b6086ffbad37e61b80df49c373371b6ea449e5dfe9", - "0x018a9cccbbee610c3d978afce046e1e729013fc7ae71a0d80b2c22054acc32bf", - "0x6cd7707d257de792f35bc5d5080ae5bcfc50188ec61b406743f0390e8f5e4ee0", - "0xf036437c80029ef8595f65cede2446255b436ab2b47cacebcbc513ee09bbc6dc", - "0x438c8373efeb9d010e459097f7eef12dfd469a5d447f5494742321fcad2f5fbd", - "0x97174ad7515662e1cde2300a93986316ce4b7ae00b7f35a0908cde607ef6070e", - "0x8527198f8104df2b8559ff578ef5e2a84a9f0ffd63d8faedf26a50b44a19932c", - "0x7e4b79ce0fa7dfb5b4cfb92a98a0f4de105ac1a931a34efe94c16e29d5b03fa0", - "0xc240072b872710ac52ef170ca53ab03b3f76f1e2c1cc40dd48ebec3d0636d6cf", - "0xf957c0f8495186575f4a1bd2fc19350c9fed57fd60a884999d943e5fdca35038", - "0x814f0dfbdf3cddeaa502feb0f13f879223d9f0a14d01d756c3b3e773b44ce581", - "0x999f07e2f640408c58cb9cc0d15b4ff6c90db7b85e98e6888f74beefce295c1d", - "0x71e4362451b4d259a942b2a0425a070a9f0053aebface053d9c02f9ca4a5ff3f", - "0x28a29356d506b43e9dc9fc05bf6c7533e6670f5ab1122f49ac572bc2c9b94b49", - "0xa6dc1aeb3352b65845baa0329491789262c71b444171e36a55f3e20ab5edc026", - "0x6a0d71aee995e2857459513c124ccf8f81212ef0f14ea8a99b24b395e763e2b5", - "0xebd35e5b9134079efbdb4759e0c2af7728b73caeabc2c2bfdc3f590d5eaabc68", - "0xf1a7367e7b712b141602d204924a0c8808c68b013006b344e30d207a3b8c179a", - "0xb142818bb0edf0b1cc120389d0bef91b1a7b3e1fe0058810bbf73d04cd573147", - "0x8aef2ed196ca7cea305211c656084a46438ccdb7d2549f24fe4bd3fabf11af57", - "0x934cdfed19bc7321061d3ad217879cd14def18b18f6d8d2baa625626214d39a0", - "0x16f1b202a884faa4dcccf5d408b3acb639a78aa1104d1bcae40182f71d94a1f6", - "0x5cdb53c18168fa65c252659ba594552ed95150a4f0f2b9391ea3fb56badfe814", - "0x304558b9ab585c1201af4e88848d81f5fbc380341bfe8df9e9ebd279a94a1c4b", - "0x7c13cf0890b8fea28d01b7446750a5f1429d343ba69525e3909f054495d30f41", - "0x38ff978ee475767c435e5cbf5c0ba9c10c48426a9839735b67e2d32028a1582e", - "0x7fc90ebe34bd2cea4744c1ca0f3968a304f7cbb133353cd0aa76b45d0e88a23b", - "0xb0da2f67974a7cd5a291665ee3d216d5f57df1b66e7a2f36dabbd97cc68bcd0b", - "0xc220942a0821ea338d4307365bd1be586dc8b3a89f2b0f60065c92375b1bfcf5", - "0xda1019e4bac45eae0717a35e7aad0c63e0063ba18a8e970cd631112a9baa3d3f", - "0x7efc5e52c0a590ceabce9eb4eab90c50a1bdf595b7a59b0ffb3e3091317377c0", - "0x2347c7c6cc6f741e484eac237688427292a65d01f037ab25419d3c17d538db6f", - "0x207e2f3f0e856faab65882a7d3cf09daa37f08406cb96e5bb4252c8d0fa7f27d", - "0xc425eaba8494a111289148c65db0c8d6a6dc27d16986b0b70ee4995723c878f1", - "0xf7778a3d1b7fd83b3d4926d2022cf823801a2749283c9ab4f86f87126b9c7e80", - "0x1316c7953bb3170efc234d13e9632e017ec4f58a30e4e062ead373b206461f1d", - "0x9b4cd6a0e47f2c64c0ba4d9a7565f74e956cf881bdc33b1176617bf9f25af5de", - "0xa972bf247d8428e97218ec0e9a36e3b7fad10ce9a3126bdeb2cac7e9b4e48e46", - "0xc6a4e22ff93e8c9483dfd8eb8f2c384c72fe69cc4f5644e8d68d419b92509c61", - "0x601a9a84099f3205c6aecd034b53f586382379dc39be605facbc2da5f793b990", - "0xb7ed45da8acd237dc9c265afbaa15300cc7cf72c740bbcc00eabaf4dd90cf9b1", - "0x37bcee935e0ef47df22a7f9833b3b3a3830efb1656059c450a7e6a144798552d", - "0x06e7ecbc0f4d4b16a24d4260d77d0161c5a627083589747c72f765281ca8d3c4", - "0xc45d35b6c6a81240767ee9d994c8e2f5823d8a4e0f51abb7187e234d6dd5076c", - "0xd3c726980fdf096fa314533ca3e882cb1c1a2a5eba4b9ccef7193e9ab7ce34b6", - "0xa6c23887788743ac8bdc123c7b21873889d538f7acc389c28d6ac9dd26da06ec", - "0xb8b8e38541b9143da71d68cb705ad5076b089b6174d99bab4b87428d8828ac9c", - "0xa70ec737a97e306a66b7ab8a7866d03d496bdac04a08a0ccede2b84583ee5d21", - "0x6d43013f53b03cbaa4c82a2d42f5336306301bc7a624542387cb0a822ce89a50", - "0xc24661eb76bee7b5db00df129db5c2038dff544a90de77809a447530e8200d02", - "0xfd291a2a58d472bb262b3e9b4b2c08f8ca40536082e05c081ccd502c77a78fde", - "0xa34be368c12bd1c05ada73b647d72da9595b0d618679905c2df760ff1a2b6dfa", - "0x4e68946f1b2d9f9a1c10f90b0d354084561bf5440a823945c2d95f76fe23a765", - "0x44e04796d2516db3ec1d1b47b47776999614e81f6d300e2dacbd4d15746982ea", - "0xaac3047a84d57dac9b3f3c8ba907bec354f99ec2d35b915f115f4af6a658cb41", - "0x58489c0ccf49e147ec986ffeca33e037dedabc57690bdefeee7af8a70b781fbf", - "0x3707fd39b11fa9b79749a84848deba1c70534a493769788de1610798b30eb70a", - "0x891483f79855a712f99bf6bbad19a3291c4d417a4f27d66868951c454ad1bbbf", - "0xbac1fbd157279efe1b895138c55e8da4be5dac3b78c179c4cf25a0c8b5e7c5a2", - "0xed050c00def0f6b5936324a13f426cda7229ffc68c7f0eb0ff6dadda957c737f", - "0xb0e759e352ea7ccca080e4ed51a6a4aa4573c7c0d703183da7a98918fa9bed81", - "0x914fb73a4233f0368088073688994cbb0bf5f973a5afadc11076cd64f92ec5d3", - "0x153136092380ba6be166df58738c72d5be76acafcab31474a72b7f7e70e9296b", - "0x7d4d6f2fef46e1b87a73acc8c6eac29195286af79ed7e07998aa966c536f8f80", - "0xa0d10b259aa47815403230b836be272c3dde8cea738868ded0d55d89f2692dae", - "0x13ba7e74aeb0ad66c77cd5112e1ae1b6d3eea84a7c306d161408ef592f2f3399", - "0x491fe1f14cc862fa156f04901a7a93ef26ad272cf98e4f29d28a6250f8b4738a", - "0x92a8a01853ee89642fcf51e42e6a39616f8374937a98ea579d9fe35557d37bdc", - "0xc140bc3ebebc1509940644318dab91a6b8722a54bc32ac7500d94d1aa24ae1ed", - "0x55a5a8541d36a244b1d73b32fbe99263cd6a7b3d9b88312747de6d66302e2a63", - "0x510caebe6714728c47beb114e95177c3a0fc2438369842278a17da9c4327caa5", - "0x8ec8d3e19017cdd4bb4b789ad29bca53d8635596e6771e09becb9e261df64be9", - "0x2e832a7e47a73b47ae881794122f86e1a06e1d84c5bd0a946bb61175dbb5c0bc", - "0xbdb48c7ec1f278b646faca580983ddf4088835803fc0dc2e505be6b092442d04", - "0xcee8eee843b37076f11f69b77094872966f88b4629240e04cea69d4eb16d642c", - "0xede0d0302e40a6e71dd63a52fc1bea3828c4dd56c754b576af9c441ffe2945aa", - "0x07c84f827310d73cc44181f612f5f5ee0ac1207b3f72ae857f9f1fc0180e8454", - "0x40c4dddc5fff7a7a5372de4d64945900e1d6908f378d87b4bb75e425d1fd3daf", - "0x61d9dec3abd29d998af2cadfdc7d22344b651efc717797a486712dd10a726c01", - "0x9de133af95e03c3bacdc17ee428c0ee05b70ef2b1b515edd6fe488db3d091e88", - "0x109aa9704907a39615ccbd296974e428bf5fbac0bce5af02d9c3a8e45e47e160", - "0x8a1f2230da7f048dda7d17e7347cb1cdd2bbcc2ed0908980f22ec070d158689f", - "0x9e8215bd095daa6870eca13dd025edfc700bb5f5ae4f0ef9d44a85b04f15596d", - "0xf93f90b45c5e3358a73392f21fe640c6aff9cbf352eb7a1725088313630d6226", - "0x4e4c1ceb1177bd15944b238624f6e41aa0713564eccbd7f0976f22cfb03c90b9", - "0x2b7d1e8792dc0271b3802e79e4531e42d93475471d880de288dd4cfdd85155df", - "0xbffb3529844e19c7e24a3bad1fd0b90d8319c6982badd3716ec897ae01b0ff57", - "0x497725904d682be0024f5327c62907f1507530231fe6437341e85373aa941d03", - "0x20c7929ae689311a8edc8672b1ff85d79b2187c46da7d0f1e0decdda16eec6b9", - "0x87fec4a78f73a200c7798a07e9f7d956aafc83ab4a90309591bb76152b8e11e3", - "0xabe053b8ae209ab83d827b63e43e08b9b4228b04d51026bcbf044531a2e8f86f", - "0x4220e78d59f01c20f45273e5183a2a36d6d89c2f406df441e76fa8b3f540c8e4", - "0xbbf658cff95c4f1cff08b95069d5eecd60ce5960818014edd66b4f0761708827", - "0x885d316eed1f99685d4dfb1d50701b7a0c9892131a99bf1c676d53c15ba1f7d7", - "0x0fd86d1ee76af5eacc36255f29606e4574b93b1501762118173cfb9997996c78", - "0x400114dc52b491898bd47923cd5d91384ad6a728f725ffe87c916ba858e58a95", - "0xd489355bf13693c3c70b031421c885aa09772cb9d10381d6a5dad584f2055790", - "0xbbe033546ee5909557cb5b96d466ca32973b455f34bba60ddcdee782d8b6cadb", - "0x207bdb63fcf0b403bdbeef4f714da0393b1760adcd1f1f5b21a178bc404c9617", - "0xa30b9d2cffd283cba9de68eed716761ea78170a8d7e6444068d64563c141dd2f", - "0x995015315151329c91ad8ad28aac545c50196dabf0ae393c72d9f369524c9fc8", - "0x3928c0b178546ff50c5668677d2605b701b06f4d28af0c189e746b73b9d5c53d", - "0x46bc7b35d38eb9efecb3082436f28e3d0e36465e41222dd8b8b47fd9857de499", - "0x93d83ff35c0e00277205f12b3ccc89ae35c28177023f2c37b562df491dfd0e1a", - "0x11442d3d7778f2e463da87bfe957768e36087cd2b777e8b0d78fedc624b9a9e7", - "0x2c4ca247e8c280db854ac3ff7d270ca3100b30377b6ff807b853da46c7321113", - "0x0f72e138a21dd3ddd2913dd1eeae525cd78aa578b909672b4450158bcae26aa4", - "0x6a02b4d5e27880290806d410461c10558f33ea04ab655d291e45a7baae5d48d6", - "0x5698a8526618fe20a06bbaa970590e97ca9677ad95b0b532cc816b2577ec1bc7", - "0x7fb913cf94da8bfd05526a954c1f2e1382ae275a060b646d2ba78f004d67d30b", - "0x1aab7d83cd25cceeadc8352a9de9600b0b69acf33a3e157e5e54044a4b1baa60", - "0x03df372e7293b449518d07c4d672c76157c97c6bdc8d7ea75b5d37daca19dbb7", - "0xa928453adde66a9ea45a6b19560fef2619fde93a0a0ee463d64ce538fed0f8a2", - "0xf9cb142d5728bc1dfd59812afcaff8877e6357a46ac9da8beb54c1cdb53bf4f2", - "0x3c67d2318e1867ee0bf234129e7f9ff7aced4d6a94bc2493df3d49d3ef7a1f1b", - "0xe7995735d058d5f1281298652cfec16318f36d90aabb73bec620db045a4127db", - "0x796b4fc8ff8d962425ad653c20cd5e3cf5802edf8fc363824cbb4a117e5dd9c6", - "0x3e1f5f3519dcd5649bed8a4fce463bce7b8a28ce4853b2a34c219c76d8e64238", - "0x0b56a06fcc04ecab448189e170470bcee6415c859a59a2d18b5e9a838bcf2ff3", - "0xa8ceb396b19d4c72d6379f27d0a8283a06c7920811c045dd2521b20d719c9f60", - "0x42c02012a9f184d3bf976ecdb7f65e7abd70b4a32493d75cbf0c3403f5ca358e", - "0x79aa61d2303214ca5099ce8d8c8b59d7d3f64d4af9a009683ca4fe2ecd1ba4a2", - "0xbf626f7b1e4be0c3fbd962e021d50f40e580f133b6127a71ee06c621fe6508f1", - "0x3a8e93479758ef89aca8a3311a16fb82fef78b19ed11c058625e6bc6d4a4dab0", - "0xb44da67d7c6114b0578183dd1287bf06f0f8185a41c77ea75728e48954b4959b", - "0xf49609ba698b8085cccdd8f95a51996d9df32cfb8d0293c01182482dd03b56f2", - "0x94226b7a92c9aea67f94df39675af2f27cdc9a95c847eeedf85ffa17238b3b58", - "0xcb27475102016a2ac05f8c8718e110b74fffcd6c2a97ad0b344ff07a6a806e2b", - "0x84b0c9983378884ad2ecd01c7851efa8c0906b4741d42581c3f1c52c47a88151", - "0xa9071e8c2f56b564873a782630fbe3bd292337b2b620eaead27a397ee3b3aafd", - "0x8c057d25493e712878bd8b628b3cff7bb1249ae41dd34c25ff57a3bd12b9a96d", - "0x7c2b71dbda144cfea3c1e492f0a1e30f2699f3f1968da76a97fe39f3867d37bf", - "0x63b9d33e4d168389637e6fff44d525b67b5e0c52bfab9fbeb53df0ecdd601984", - "0x2a74b62ae8feff55542905a34d6f45c1441891130351bc9959c62f53864385b5", - "0x725a488e62ba0c296ee78267ce714a8ac84ecc3fb8dc4b5147024ee500821dd7", - "0x6c54d3f508c1421a60a707000e1236dd6b45becf483b1f21a53723188c1629b6", - "0xea9072804289a3b9fabd8652a56c2da6e661f14ba764f72949f7fce38e517e7d", - "0x65118fa4f148eb7b0feabd60c0ab9d42802a5ad7685b70bee9ef8eab668c046b", - "0xb07416ee467668d8c7f92a260a6fc430bf636e29b9d5ded3dfac9751e006eb4a", - "0x55385976c32b170335a70a213780cada5fb0c6dd5402cd3056a60a40a6f13afd", - "0x7d9f44575cfa89ae8f4e160a1f432e3e05d02c40b9d25ca0c06df6d35226985c", - "0x12774d382f48d5be794157e2a601c3814135f8cb961d534e685368c3d605f430", - "0x2be48bbedbb5d66af410fa612328524aba00374c152a0b533fb2f15e98bcce10", - "0xcceb249b515238c46a805cbd452395633f28864f16959cef39ca13b69acdcc2c", - "0x90b5204c90b256708cc946daad4a70e3cbbcae36356b377ea6cb251568d8e87b", - "0x468a2c9bd83eabbd10a5e301201e54b9530b9a376452096bbed509240c6d7b08", - "0x322456bcf4495d9787fb66d0d8f21242210167a1dc622706c647e1495c19d064", - "0x1708f1ba83981d7d6d21b8a7d55a4bd9c6355195bf42eb96e870a36480f90cd1", - "0x904c7c58505bb73503c5baefa79936d96df91a15a6ce8121c7f38c632dc7172a", - "0xb2592d5491583e30e4b0e89820f6cd518d4b082436ccbb3a7685c365fb6e9aa4", - "0xf2b08ac926804a68d4c1dce8fda9cc1eaf14e963499f29527caf4797fc47933f", - "0xf9274e64683f5717fc4bce6bb2590921be5a67c1c3f9275bc390a438bdee8295", - "0x7d6c4c1ddfd161753d2782c80532479eac3ae593ca4decbe0b4308123759a218", - "0x3215152f21280b1baf712191a11b3bb80d48f936221a02d199f52437d878c402", - "0x748ac2bba96f92574ff048d2e3100b8e8543c181c8e817f3770e405f24b4e3be", - "0x056d9dd029b79d40d3599b6f6bf240603931a247979db979dd9e6dacdcc53d94", - "0x56c57e769cb7f53c4ca489db4de4eec62071cbed1bd33759c27662e411de0221", - "0xfc7a497be0b417bc1557eb04ec43f9ba4432cb029b6684c295b84e500527d5da", - "0xb505ce1021402ccac337fd5c5346fa162c6843b2d945b44ed45afee0139df1c3", - "0x267595787775e5a0d97e1cdf0a4deaaa785c03b8456a6e5b433767bbadb00ab8", - "0xdfd8e51ed2325e8f2d2bbcefcd24bf9242fbfd75dac246ac8186cf3a72b35de9", - "0x11004185cc8175d91364e878229f5aa5a5366130152e1dd8132cd22cb0333086", - "0xf5ec1ef381b33decb885d21749cc32ad02cfc66392281967758c3fb30158f9b2", - "0xef7fce98b3054d4fc282b38aeb4bddab1c35b085ad4ce803856157d7fc9025ce", - "0x7acbcfac776f80cf46614121866a2621df9302b7be20c079e224cc1377637586", - "0xef8433ec6eca61afc8bf7e8ccef7e1284aaacbb4972938fe061086307a6417a4", - "0x1f76cba9e66ca16339c3effb745c71443bcae09a22f1b07e39155a1805402890", - "0xd720f64f8ae3da220074c029256cb459b1ee8be67ed4dcaec10933cad35fc58b", - "0xf841bac34a5db54625473826eab74d3a53f7b3448e5835cdf4df370624d24aa7", - "0x7b784f45b8f2b0ec9229924fcbe26f66c306297cacec42af1c474566e1f83f6f", - "0xeb333d1de57ffe52d60603c66bbe9f2941fdb01f81832d418307596c156cf54a", - "0x06abb43d2b3733811dcf3059f48be59587425b5d24c086689191e5bc69fa03a3", - "0x76ffcb35a00362f10fb36d68eb7676093c3e36a3fe7ad65acd0f58a064865f2d", - "0xbfa99b31b08807772e417d9ed67daebed645ccfa0d94607dc0cce754bfdce0a5", - "0xa91db056c961f435693a047611028c7fb784ca015f450e146bc8e2b85ac8d592", - "0xf2489993da543373e00b5b42b8db157eae15026a65635e5784d06702d6574de4", - "0x1629e6d410d12987f412c01d14a21ae700e4939f45ec4ef0e1820905649b7899", - "0xf127b506db1c5b3a1aa6bcbb2c530e822bea1ab3deb497c54430fec6a60824f5", - "0x4860301daa24a54ae1902388dd072e7eae2ad449f4a86c123caf783284cbb7a4", - "0xa54be84ce7432042663e40822685cd4c3c1a33bdddb295dc32f9170ba7c95a14", - "0x576136e6b6f941a6861e863989da38d7234f524886f278f8a57e88bf925088a4", - "0x08e84b8d1e15a7aa660666a346a0b90db8cbbee7cc086378d4020d86b1385511", - "0x9229a29e091b9184dda6d66e244af33b0c536eb7e61b7777a5bb0d02f0a283dc", - "0x58e34e5a073bacffd29a05f85320aa52625a9cd27675954f739f3f9229e3a163", - "0x25d2f9f20d7cedf8582931d6dd9ef68233f3af9caf6c9c6d5a10f2b9372358ab", - "0xad43fec2e1ea1ff81772fadf5e38a4f280305cb225567becda2cd518ce2f1dd9", - "0x05195e944c209b1eefbe1925827e976c19d065d18b3e23d883ae2086471c73ac", - "0x62232485944c27ed398d4928cd9ad1680765a4efa652a925b97ae26220229fed", - "0x735c916d78f40581506a4cf286e044a6d61afe6d70daf97d80f8c584ce41d940", - "0x8b50f9bc93ce7c7582ebbd77bddcbc3a123e90d43434d63aa4b5c397a18bd1e1", - "0xa270240950e22fd66879927f8c51322f0feaffaf09e7bba8829ce5dd841b9e56", - "0x6791446d6f864992e3b50fb590719af98aadd7f8af54e4c71ec474cf0db56cb0", - "0xa22feb28061c72ce02f7d6bf27c7d04049900ec24394a73ea678b90c100de62e", - "0x0fbb9f4ef4d048767b036f40babd8769e185c549cd71e2e46cde94b2fc1916e6", - "0xb32bf314ae6b3994bf2caaa716691eb2116289a796f968ace5c49482965d2037", - "0xf68f7edc391befc772458ce2dc9e5a1c3eb9d3c709c4e177535a14a863eb686f", - "0xee3c3122cf1f7890fcbf409897c6ca4a634b6a90df2d33cafd8dbe1fd2895ea5", - "0x44c407d967d458d6cdbec3e4fd90e0f5fce309f702f08df5f7fa7d4d66ab8d90", - "0x1e4c7644e30228dd70194e600a57f98c3501a598835ba35a3b0c99f53101b108", - "0xb619a4deb408b73810fd4c5a827c0cdc3f7f9885470f63c468794c7a0796c184", - "0x69ad24f8814b17603ff6ffc1f585346e243a296f74bc3781453a512bfb746a9b", - "0xd311dacba946134de52ed8f98e5a643c0b4f8d5c6d2c928ebc5087b33b309422", - "0x59ac40ae911e0a13aafdb4961c459a9cc8168e444f9288cec782911aea1e5548", - "0xfbf447c35dabf67ad4e88a41e30c40133f166adbebaa154f0c571028f86bb183", - "0x64792ffea472b80e6241942b1191a4e4228e79c4e0a436873ed3eb714338aff7", - "0x618ea5b82192c2e43742b8d74e78234efbcd6332d74c18c97ca087be66baa8e9", - "0x8e659da466b2150870fd5ccd6b4c7e879f3d5e248bb386869bcef965fef02837", - "0x4ef68ce8190a3430e4aa1497ccfc26e31d17ce522f1f16bb7280fa9ca2d377b4", - "0x79a10cac12b7e9b922d9c8d1cac99ff5616826a5f176a81536402cb968377e9e", - "0xa4fe7b019557ab1cd8d212da8704a0a84e8078eb9ab53952c2ebc0c3914835b7", - "0x59916f12d4cdc91b9a0e135d84630d10c48a803dd9b84ae35fe00c29d1acaf58", - "0x802690bc2c2f03e08e2d2dc7216a033be7eadcce3180f220fa5baf411cfce958", - "0x40fce55d2c349a7f97a252f6ae7d10013c396710905abdac17ca794ee1e247e1", - "0x73dc6101cee72bcc15f9ef398f90f2c5e3f616c97b0c6714b65e9a6a83edc190", - "0x7a179bc76526a5752b82b1556692acb502a72e364ba1295aee91abc726c23de6", - "0x313f3a435058fe29e7e9c490553bd9791dad94ceea2ba672a2a2a3e7f69039c8", - "0xb528f654e6456ae46ca764295454d78f4d5a4334d49340a754b5d8ac24b0d21f", - "0xc06aefcbe61ee635fefaf4e2e933c22c73c48b55f8672cc6a3c8ee09836af286", - "0x6626a0134d8ead3f18aa09af7b1c05c01be0cd88c286535115edf3ff19e8f06c", - "0x90051f7019b8d99acbeb816ee256899d8f0a5504f156475cacc631f427273c40", - "0xaa93485a22e1fc2da4c5b5483ad81208bbac2595e758e23677e93521106c1665", - "0xb334853c4ed01341742733a9b1d7ba7430f3353fc1a52d0751808c98f621ab51", - "0x67d2672662726fb24d884ea92668fea97d9e0d908a11f70bd29126fdcaed009d", - "0x09cc08cd5c0da5caaf74d0e8e417fe151129ee7ee9b5082f415f2ede57351dca", - "0xf87ef937db4618c977d871e06bcd6e2eabc7a20faa0ec0f08deff573200b0aef", - "0xaab334b96f82ec056e3c8e1e95b9326f35d57408ce24e63071e182dc38d552b9", - "0xa0d5f838bf15f771f9adf19f82e01308ec34111bda56e2edadf5806dbe80aa88", - "0xf288f085a08d5edafdd58a3a0637a48f0f6cbc730b0d3a0530a6780cea152281", - "0x8a9e915a3e1ac769bc5e3b308fb05cd49d6cc40e97f6cf8cf789f1cbebf7bd6a", - "0xfabd2bf75fef724ead94c7b6e24026264ec2728bf792bd0595aad04900c69640", - "0x3b4a6d3a6e62b3fdc14173ff99419ef02b18134050f8433080e65322bb0934a2", - "0x8d72cbb4e088da0a6725163af3aa47a69b63120f3bd02b93e12788b144e1a26f", - "0x0a112bde7c1434c444519ab9371a553ac25250067c72171fa6779efee4bdb7d6", - "0x8b89d89dfa4a2cd35757629c84edf71815311ade9742e48b6f28d1886f1741b5", - "0x538bd079c14a70a3f6db4b45b528e405a210fd6e2343fbdccec4235a09f016d3", - "0x95ea30334671da97054445f307f3b991ccf1fc965ef148000253bca44f6f4209", - "0xce98031baee0108eb9695be729938f22ee71abd8f368c7284fa7c102c2c03672", - "0x916fa5e6d29e5b17d29e6393f96f2707b2e245ef49a671ca30987c9d31223ef8", - "0x1caceadd646069b69b86699e555e0695c756108dce2c74ebedaa00b8f4c1d4cd", - "0x46a5419c22b3bca18ad94d7b0f34af90c62bb3cf660a4b0b6d28bdc11b079390", - "0xa83044af490b0706b350357979a9e648e041ea747ffec7a50f952b71b9c42a66", - "0x677dff9b0b4ca0f39d526ef4a8fac9bb49d83b5618f73d7ef78c3ace311fd071", - "0xc85d8672b034eaca3715eb6db5408d00d8157c991fbfb55b8fe29ce168aaec9d", - "0x89869cff97616604b696706b28474ae54d88387c2d5a30e690c0e5b31bffffd2", - "0x168585a4f4a9a745a588d609d3eced8e550f1d69a7399547a60456df218bf4d5", - "0xcb4d9270dd367735a6844dcc314782b708ea9b2de82e5f1fc11bc83b0970938a", - "0xb3b2ba42395b4c15d6de64f7ce010486ce1dae4e6b14f01901cf1f4b6a538d30", - "0x11601920286560aeb98fe1436a1f66e2c9ee69ed2ce11ef1eaa6b4b3be447787", - "0x45cdc9aea631ac46062e1d848c3a737da5f7f1d396177196e52b4ae1019a73b7", - "0x113956d33be8473ea7b52f062945a1fafe98a424d50b8b418eb1b4f8403f7036", - "0x2d5a740fe5eabb6fd783b9c47ee75166e2ef7916e75bd5fbc40fa0a6680d97e1", - "0x3bd16b4f04c059d78b8a28627039d6e47954d6a87543c611d6fc8e2e941a04de", - "0x86b1f14be4ac193baaac8092ca3d377f47dfc4e41b6b81e02dd51655fb590c67", - "0x1cc63d91541476745e3732b4220403bc3c994be2e62c6fb2e788c5a47af7445b", - "0x5d09f5a6d1570b09f03b79e869b7f55b344a2c5087bd4c2c06c8d4a85f49095e", - "0x6b48201724527b22e31898ab54616f0008afdf463b9afb6f0c516e7347bf0519", - "0xe79894ec014f7835965959a9914ec4620c6dedaeeabe7aaa791965b30d503908", - "0xe549b3679ff2dd8cca080bbf27826ebdcc14a6ef6ff6f06a2f2ec93a4fb1baf6", - "0x5bbb4f98a26c9c9fa8ecb2b71bbe032c0c4d349bfeaa81790eeb066412de248f", - "0x614dbf21c81332c690c934bd9d9f4c640f3df9c9510e9aecd105f5d2563a6071", - "0x44231b331eabb55fc08363ce5da10d7df42626b94fc9dc4d08f99ac220ee145c", - "0x3e22a80bfbb6e99438d4394700bd26964ca97de1214b20c8a69fd1788c50a4c0", - "0x280ee234189ec732bec0b7a25b9bff60b04e7be32c54fcb95121b14725bf62a4", - "0xd94627e7ecf1abc160c432aed8c677eeb4a0502b3100737567bb2d19b1c81478", - "0x6b2de1031473d511a197f131e579522f8bb2bf9abfe7ee561d8e7ef9b1912b6b", - "0x80b1447503f606ec08175cdf5cadf774f3d0d2a1f447ba41ee66941811690b68", - "0xd0b95ce90aa06affd35cfe7d1f3b45fc121bdf2565ee5d3a1998a932c2fb6db9", - "0x4575abb623e43a73f1be5ee52988e2820cf35170b68c6ba8caeaff086783a1eb", - "0xa03708f13596c11a3b76c49b44102350c06aee7ba92b3f2bf3829952f6fd6c86", - "0x4916a6e3dbbcbc8a13c91f4db3f0695f94cca48b81cfd56b9836e7ea44af8daf", - "0xb73b5c9471a175c8eba25a4df896302b65af142819e047928b8847a5261e13ce", - "0xc5e4bf50a5d4825fcc44eadc3877bbbae0589fb5a2e9ce1b16bf9fd60056af5c", - "0x43abc2f7f189448316cec758251cc7b63526e95b16ad919e74fb50a9831b76fa", - "0x072a4368d93c89d6bf3beee22c6df5acac53b9c8225e53bf3e368739890c2bf3", - "0x395bc2072a773c314c9cfa3c9983f7d8d23fd77276a6cacc93f580405ffd03e3", - "0x50528bae45e8dff5a7d4533bd413b103edd5097c78f35f49d0674c6f4378f7d0", - "0x02c2b72bb7fcdc07939d7fcd641dc148ce0699e5b9c76e7af3984c36a7da08ad", - "0x0b6ce8ccf42bce819e02e2b0f725830fbf136095e361806a2b5eee5ec975af90", - "0x59da0fc5802651044d72946d162d95412e98e3a3bbc170139a5a54a9d0330a70", - "0x2d2f3bf4346e6f38045e925bcb90656bbac77f7edf2182a3c6835b2f6e61f9f8", - "0x213ddcd0341b130de4699b81b7eeaf93126907e52ee92213ecac458bd957eb5f", - "0x0ffbbec5a21fa439c09f975abc684ad9884d396433aaa4f4890e5e377d7cb4c6", - "0xf52462396c136854067622763c21ee796e880115bdf0fa08a07a130ced1031b4", - "0xfc9bd5b2de2b2ca5b16a7f7c608ed4218f3ab60499a691843548e530123ffdae", - "0x8eb92cab2abcc01f735011f27566324816450dfc5ae2d0af14137028b046bc29", - "0x0795e1456a6894c0ddfc3ff3cfa979855e39179b03c15285ce084bd483067a63", - "0xb8b428f8ff1ceea1e694133996663d000a9bf0304abceb7cdaeb6db5be74983d", - "0xe682c8aefc32e0ea3899f6708057ee708ce46125462e8dc2b2d4605f456e3539", - "0x100f58fdafde5a4e2070784f54088d7522f2537ab249095966cfc9b8250f6bc7", - "0x8efb5cf8633396437ab174527ced3ede99be7e20790ef382b5e25e49b7f49c23", - "0x196ee4cee920a9faa42cd5f3262af5b35dd212169550664a3c9c15bb3a3fd86a", - "0xd6781eebac997c5b8eed3b0058a058b3f6da487d143fee14711398a017d16333", - "0x096aaef445abfcd0de2a662b16cba39ce371d053fae63c27f3599df3d169ed0a", - "0x3eee47ffe2e9d5b29c5e1139911d57d3a3d8d87b4ef290dd95e88a8d9a56d890", - "0xacb1b75fdbc4c4850565ab27978e7d10f7c29d6528e7bf198958238a4be4846c", - "0xd0cd5035132f5f8b303aaaf10d6873482b4870a74965d8055c48e8449935b76b", - "0xe65aa97a1cd3aa5b9cc906157f7d9352cf6592abbeb66647623632a9f3a93b07", - "0x76d08e7ef145ee5f393fad5faca53efb07b9fb493157a6e0b290525127b5cabd", - "0x533af4ec13c168f2e7c7368cba5ab0a138a5633656b8c19f284c98c42018d849", - "0x0d61ae94270aa651231f1933cb968bfe0cd2f4e097ae2f0ad8d41b8e2a785327", - "0xc22f8e6418938369b4e505425a28488c54571c4a803df35a233f70ebb933c635", - "0x743c0c8d16b790edf5e51a8453601ada99965007cb4dda51c82cd68e7d77a224", - "0xe5a62da310591a98f6b3138ee367ad2a334cd48d430399c425b71a57ba44a46b", - "0x5a7dad70619d620e5991b7476d125af8db51b67935a49c786b57f09d3fbc4035", - "0x1459d52e06d83b9ef94f035d08af0d63f66ce87bdfc3fa25984292aa2680ec68", - "0x2139af4823664ad7b8f2d6222f86a5feb7a5df0f1a934e8af139d73a6d008d84", - "0x31a7000f3b576d91c543c5ffc4dff45205aee1120d9732c3a342318bbc4d72a7", - "0xe046d4e9ea0c367a2b47a0a23181e144d95f9a3b8d77244fd70384f031fba4b1", - "0x294de2ab05861fb25db6e1392e8eca830217680610165a2dc3f6131eea1d9918", - "0x1f2dc7721a6ec2f13b9c9dcfe3d166b323c53dac5ed49c883fb6104caa841184", - "0x3b2797e3eb732182ff4928045800ce8837b7b4796d9af977b118c080ebc1099c", - "0x4f076d935900c3cdcce4ca42e206caa7e63dbc926dbe230f640807bbb7965c60", - "0xcf8dd9699ad2fb397f19b16b851d85a565b4d197735f8e3c279de61fc4e45bdc", - "0x3d3544db3dc8e8fe1b672ec5ae8c341524bc7e1eb3c96bec3867ae910d7b85a7", - "0xb7d7bfdba9ead1c68bcd54c46c7ac2a34f5292333f62e7b91b193baee6c09037", - "0xa8fc4eea921532a7fe31196f68a915f6f935b8ab480b9943dfddb7279cc069f6", - "0x6c749c6ae083721c5f5613a581435fb837166bcb3f07325873ba321de17f4526", - "0xed17ee542d4953c8bd4a7035bd34be4e6e80b73ed19f86d3198c7efb661ea78d", - "0x24e11ece5e106eb20534043c2c9452d5faf327e0555bc3b8f923c108781dc1d9", - "0x094a0636d62e402344d2bc9c01fa145ba0f32e03383e5eeaf85b257eeac3acc1", - "0x0e02c54a2ddff2892841d6e450d8deb610057e559ade4b8c3c943bca63b31384", - "0xcf147eda0c90b66e59c407ae4b2edb236270672ffc4bb68ac7da7a23b0274c84", - "0xae8054abfb1b72499642a11f80348857e49aa315b8debd3d61cad8662ef56b08", - "0x8f9429544ab9309d5a18a2af44ae6bcaf2e04de344d9d55cf22d8c503caab64b", - "0x8c6288b1027063bde39e399be8e7c82a7f8f9b853fbc04a32f73404945002e4e", - "0x189a06ad980a6e9710acb970572b8c04c2fc041fdd169ccde19b5a939b69cd81", - "0x0ae24fe54c7724a8c075eed2813b90e1c520119e2eaab0a0578e8759868e3ae4", - "0x5d22a1a2f551aa1bef7b552ac797f5b2a22441f7c3fbdbd017f4c5dea89b7842", - "0xc1827d89c778f3fb6c35842aaf940bf8a829079e008421db792cf04018bc2b03", - "0xcd9547011c12cef89331daa486d5a89bf36c8dab81d5d0e4abdd9c2e35d2bd8f", - "0xf115534a66431250450d68d8c1ef80ab9a3c68e63a203094ccee81fcce0213dc", - "0xbe9a16558434d1f940ac08ce7bb0ed0b1e400583b7bcbd06dbd9fa933d1de6c6", - "0x692dc4f061262a3f2a50765773294909d03477b0663f47f4aa0f675f2c0cf0d4", - "0x6127590ebcd139f736331080139c1b3bc6aed2f3c961732395ace62edec7ca5f", - "0xdc75a2ea1a80516dda32d61a2d671fcd421ab9ecd81473230ff9d3be8aab444c", - "0x369e3a3621551d67f48e544d76a815cfcd9a72b188972b02c12ec433e54c5f7d", - "0x195110af607c6bf30e268ae88dc0245c6d3a34d392f0d7698e51eceb1e10ef4e", - "0x950743ee4492e360e7a594dbc4b786ef4ca1b061210fe967bb5acad5622f43fe", - "0x926f538cfba0853b453169710a7acd6c2a002b87d2826374bb55790ddeff417e", - "0xb93a4ff2a88a8ef3ac4c77b55e828172f20b9b9ed655ba7a37b00ffb524b5138", - "0x08947d220add3e64d2db582c988faa58556b11257b9b4d8ee817122085145340", - "0x28ce559274d5455f0f9db83b263ceb6f1a2bfc00a2512931b04cfa23e7887612", - "0xdeea519fbf4ff441c8e61ec1f0ade9258a50a10a4702d0be90b408f30b27aed8", - "0x3aa93241858d4d882409dacdb7e716e6fc8bbd19587c15e349ddd5a7d90e287b", - "0x87a42a8eb92cd20a8dea17bb9a241354559443dbb1b4f549e2f9764321a1549d", - "0x365f92d4e3e88e73a155edf264ff3adad231b6a8eb9de11a1fdd473d9f2fd27f", - "0x85056e53a4b8368bf1ac1327db65d01d35e72da358274dc7c0d47a924615dc87", - "0x0fa77604f4d0a3bfbcbe9019207fd21dfdb118d94b391c8f3467b7ede0085494", - "0xc58d6bcd06d9a666bd5217cc75ec70c65d90f45d3266d78262d44dd1c48853bc", - "0xce225ea3d493c85c9ff2719af2d7316577c7c87e43598210446575fa10263038", - "0x010a27979371a2f4c5790ec5d61aa1ea443347d1e8622b4869fa33816306afda", - "0x34cffe4d5ce1449e6c1efc3c6ef2dfa24b3502370dd847b536a41976cc1e7e55", - "0x423da7e80d01cdb061b17cce2dca3f31fb62c25ce0b25c7ee5a45df3ca02e72b", - "0xff680f2c9fe4896d1e117bdf7e655d7d86baeb0753ed21b373a621d954be262b", - "0x9527f4e412a189e2e1bdccf0217cb6159b912c0c3765d5ea7f9e54e2cb393b48", - "0xa14f94bab1a626a844886e0338510b09edc8eaf9f3b416787b72bb2729d22c3c", - "0xde5afc9aba2c6db5ab784212bc940193db7f03b695049dc969f1d5ddadbd722d", - "0xdb39c68d462695c642bb704f1fd8de951d4752bd15e25115032a5b36fbc6d2c4", - "0x64987238a6b0d048f5747a81ed04806e89108ac247e5ffb3fba66fd875797690", - "0x0eabaca3229eed1341b2e330bdfa87432bbb685a116d02f943dda9ac66b4e877", - "0x2247273340e0c7954df9a5db6700911a4f786eea68c98106a29ba0c3abe96baf", - "0xaa035892630e9168378963dc34c427fe2146d6bffc6c8d1c5026ef8c3ccf395d", - "0x26a8e42afb55511f170429010e07fcefdce8bff03e3acbb3f8571be05960bb6a", - "0xa95bd3416ceb31df25f3b5e262109680341f742c11580e2e83da5f36d8b84ea2", - "0x09929d531b919f43ccf5b6ab7e87265ede17ee5b4103fb3fe2bf608fe9075c25", - "0xe6ec4893fa4840d90006defa51d5599b5a164f0e19c54a624430b5e7be1f6280", - "0xc21953eb5683f71adf5e5229286e6167c48dd68f2599d7cc35817b4b9ea0dc35", - "0xf30d268431af3d017f42363da727dc3f4fb42c6c1397a2417f8a6d862131610e", - "0x8a686f06e784dedc2b9e015d7ca5232deda4df832428050361c4c24639898c40", - "0xac5ced4388aa2f66869f6c3f72de0e531787bd415c8472e1a491cf750b4d2d41", - "0x5f4bd5ed18dbc2dbfa1662c45363fbb662337f8253cb1260dfa54ef496b51ce5", - "0x67b8eb13416e83606e2b1544a02e0172a1a9c1b9cba1d56613d2c1ac4c243966", - "0x3f450fd3a47b94ad683939f8af79603cc390bfe4747c6c013321e39f6f1807ed", - "0xf7f5ddfaf17bdbf632bab24d9aa0bb6a960e0e7bf1ea3efb3b60bd558aa357fa", - "0xe00cad28e524f273884ed368866865d466c0afed78390d8586c2660944e0d007", - "0x370dc3ee72f58da1a1cfc6d5311c688f171251c46b322d07f61548c41948ee36", - "0xd5b426cb386ed0f0017206e0c551cb2ef9f3cf02a3d94f68cb499f8f900f740b", - "0x837bbfb8d1db4e394c5917798b251d7281e4e1d024d95a0f8e8963ffa0a3fd95", - "0x2e7b8bd8121d24134418f88bbf49f8888357fedb1ffe1f928ab0ed4d3ef96a1a", - "0xa695fa51c83d2eadfc3b3775c200a8b39a239aeec091b281a022c9a3aed96b7a", - "0xff4ce70579c4ebed37684fc8f2d774cc358ca29a54d2520989cfb66444a4449d", - "0x7a34a4cf28f43b160218d77f742251b92f8ce3b627c23f632fed544e9234b2d9", - "0x67a36d6b2f04573dce9a2f0adc37bb9922ab038d2e706330ab6bf72b60afd88e", - "0x5c81c0bf60c07bd82794389b682be408a09b34dfbf016453a174229152e0b763", - "0xbc48cdfd853ef43a5982252eabd16b0ce575690195fa2cfe12a66fe10b3555dd", - "0x2125afff5e4a9e2451df3955e3bd17c8f6b10e628f8c3060a30ebf6bc4c616da", - "0xcf447b12f03d41da20fce5d8046559be590173f902e96ebf3c9b037398fae548", - "0x58b29b2b214e0c58bd8e71fdceca3ba0825bf7614a504e7bceb87c7f13ae41d0", - "0x1683843f47ac40ad0ebee6ba68a87894fc94e37a11433882a8d9363bf7bf4b44", - "0x17d702c3071014ef41b20d93cf42084dc31db7c97121f2f41e1b0a8ba2c7d557", - "0xc3f57d154b1047b3cfcf25b393aea31e0c87dc20cd601a62fae58bd56158e30f", - "0x1034d9216d4db99620ed2a256c454cdfd9e803e1c066eda49bd2ba1288d59d2c", - "0xb4f23a426c5458e52a667cb01c734d6d7473cf0900139da17d355cb679d0406a", - "0x16b7beff5ba9edc9442bda4b46e34afb8fc1ed917d226a4beeb6d9d2410d8fdf", - "0x3b2cf0a7782ef7e1a1b4590df0930c44ec2053ec2f519612b0f20f6e48f47107", - "0xbde784b24ded1a05e6d650b238021e904c72cb35d02dfb6fce107925ac947873", - "0x7a42213f3c331c3d183703dcf4e7704b696728c6de4296161b1fe73c78277a01", - "0xaaa0c71970eee0f71ee064dc6c908dfa1d2c0637983a18a78ad6284a72a5e010", - "0x72f2af281d44553d2cc0645c0b1a01a9a089c282344a4d2d2e5271594c58ec3b", - "0x46c6cddfaaf1d204e735c4804be955fbd0c3aa2720a6d40640641b4e777b18e1", - "0x7e52fbfa76e745f3cfd6e0e0620e7597afb4cac20374e8a54c56dec4fb1d040b", - "0x69ac36b338093a55343f7b1e3b2288965e7113f255d34add5d08211932c35b1d", - "0x9cb03dc2371657f840b5da9fd420c4202176168b1411fbce0eb93eec3c342229", - "0x14eaee01119803c9c427f990418126a03d1ee9b829b23d78b11ad94e29f92c1a", - "0xfee4f3621e875f9b69254865849a58538cc742e79843ba229df2a179bceb5b82", - "0xdfbc9322655f9f2ab5e918c2dcf819f0b4d6de07905dd2f94607e3b564275f57", - "0x07c42d1a39c3fa351ae4aa0adf903c39f3f7ba020776293b0ea5250b09c4cfcd", - "0xad6101974f08962920d9edfcfe8bfa4181d9465c1a571b128a5767406c7c890a", - "0x9f29341ba8b368f9c4dacb12094979a0e9bf2f6969c5262a880e974ce98c2aee", - "0xbcb3768fca1e380de80628bc55e911aac7a3e9810794ab9b86fd2ccbf3a727cf", - "0x18d8a90af389f112f1229b591f3898ea5a0f2a6ea46eab7aec3c99d82ea40760", - "0xfcb7860baa54275ba72b34069fd8874ef29a22331b65586671ca2ce88410cc14", - "0xe8323d318b6d03ddedf163b07961e747830f51a8b7ba90ef4b568305d5a8589d", - "0xd7d9d5853392e3cf51e6a4b9b8d60e5e1eb0e00962bf70270ae7f3a64e2efcab", - "0x2f6cae0f3f4facc6d5b1e87f4dfb2698211cbb6429c00af32af1b8963aab2750", - "0x4fe11c9667cecc0cb8ffa78a2ae76cda09adb8c993746149bc322dd4dbb389f3", - "0x1d7c6bd7731617983089a3a450e3cabb5c9e48873a516d08646c9b90ec152615", - "0xf3cb5662cd5414b486fe8d664a799550957422ce0b990f36bdbd9403ceb9afbd", - "0xe0da2757036de2ef8539c522ecaea947e47b351f68a1426c86ec621ed4bf54cd", - "0xa865a7275662e1f977b260ba85d5ecf1236fba2ac01a69aed047b2d261ed2610", - "0x780cfe59c907e3db653c573888464c41c4b8883875fceb57501f60ea34fb1322", - "0x754f80993771441ad0836d84a0233bfde1a4fc0fd20e199c1a0b6a755932b83f", - "0x9253cdd043387ddae4da68098b995268b3983a17a200c8990b4de3c3102042fb", - "0x4aa535ff3fcf8ca9ba6ceabee3d59fedfa3c7632cf68fbbd3743ea9c86686fb8", - "0x4f5110933431db2c0880d9d4699e33e8f4bacc31e4971801ad968cc25f064d44", - "0xe4443aff0965d78b747dbe5b7e92b03b4c1898e7fd9911177f3afc3f8e765fc9", - "0xc7113de3a6ed094a63f9d1cc5f68d29801ec550d8dd48fcf1296f10b73f97988", - "0xd707b5f7b09c7b264e323df29236aadbc03389a9fd75da07c73b9eb76ef928ec", - "0xc671f6c1003e8a2fa46a0f6100b1ebe5fb4657b8a3bcc8c4190de8a5770e2bd7", - "0xa1f8030d4bb2d37062ecd95a87dce8b3ce7bc7be55de7aa1028adcdab436cb96", - "0xef9a06d2dc5c209a7f7747128c22b17c2724d62b655f07b57fbde1ec5926a168", - "0x82b15ac8a4341283ca4177e0e7b89378367e205ff8fd59e3e43439dae8d6101e", - "0xcf641779c36577bf02101d739b7b1bc19f1788b22d72f473bb4129a44869c26f", - "0xee111a9312dde0a65002434b38bac07e127167463068d047fc95eb53469dfa5a", - "0xc21dce0be4bf464ff63c59b104f3a9e8ac9a5900cdd77b7fc6676e4e2a17f260", - "0x546772808ee95a5453a95e581b86ccada861e2f37840de932c70ddf65450779c", - "0x748dd0b051d0dc1e5cf18584c1111b1fd7648b62d0f340539eaaf2ca155e292b", - "0x668719274b07db2b66d0f2bd7e5efb6e18455f25e49b07bad9d6c046ae8543bf", - "0x305c577aaa37c8f67c631de5a2ff8833841daa6a1f52e8f860e7b6cfaba5e921", - "0xa7a197c39bcfb74d5f3c523de12af1651b76106f422c1f52fed35e6628749804", - "0x6b46e5b4a447ab9f64a529756a689db73706c626a94b5fee28415c33c0175e94", - "0xedd9664015849f4dba53c83f75e8f86e44f8b79d3fb9bd48e526cabc85b8501d", - "0x218bf5e9a2db20afdbeb167f75574adacbf64463f11665f2b8be2b76d741fb95", - "0x9f1c7175bb294b7e24a5eb61de4da073a5af547e7dc911c9b05d98ef64358d58", - "0xd6d859b88c49be0bbc83b1d34d7c87331bf281136146651d3320ad49db320f30", - "0x3b4ecdff0b3eb94c8d7acc0e101b7fbee9aff87992fb2431fe2c4d9f44a394af", - "0xd33de0cf69370a33f13d9d7db35e3490c88dec0ee23b71ed040338049616e274", - "0x84d004e9a8ba6b1bac42e8d6bc1253ff21b47a1fb494e5d19caa1bcf34b6c22f", - "0x71057ea68aacfbaa3655aa22c75a22fae502a9afce8aa206a220d96654b9d4e0", - "0x8a47b01548946acdd553570ad9b9bf3c78bda4f96fba851ee9b0a94b355d1c55", - "0x53b7a7ae02459b17760ad47f69dec212ed628d3fe856af16a0568468e7a0b752", - "0x66ee4b75bd15f446fbbb3f1a9f0f3a159b8f6c66f708917156d7fee5fe64e6b6", - "0x706b81fb39b3e09eba9e83250f2b3e2b567f9fb1c397125fc0157e346d5ea352", - "0xcca91f2ce2b51595cfb86e0a7458d45654f61d35a66e49d25e6dab01ebb350c6", - "0x4397d4d33ec5ad07b3a583e9f39df02f5756dbca92fbfdfed59a11cbcf9e08b5", - "0x88ad8498c15ebfbdec6b1f68deb7515746e5c110910150eabadaafcf715a50ad", - "0x715d175a3badf17771c686793223fbd837f2579ed674539eebb0ce1244fd45c6", - "0x96acfa1d0cc7475359b4f1ee596aa2975a87f314e80d4baa0a6af7c7c77bb92b", - "0x26b4c14547c255841bac2852456f386e8addf8cd8c45cc9f4be0377e05411bbc", - "0x124524955310b1a35fdd19104b6c0bfef503541fa55d0b7c24efdb8d0cb33a4c", - "0x9806202158a5a5421e94f69a904670c161bf61ab1c41bd5d104ad9ba63866067", - "0xf156a5c71bbe49c45f91ec3185654ef8cc446e9d18d2ae6d51ea0f0409fc89b1", - "0x7003d7fb1b01fb6e036fa33ca535bcfb836415e7661277634c47c628d81bc140", - "0x6f23e519c11871c12185c1af12b8840ede513e28877f7e860603703b3853b14b", - "0x3aafd215a348dc20c5ee5444cc007cfa0e90157bd33c8a4c4de4fb5b7a231ea6", - "0xe8f6cdda4ae600ab617fb40d96d0b2c13ead6ed5e36eaac9f8cff9df918b35f1", - "0x75e63daa0a330a4b52efe0e0e447b345622fe35586037ae88e6e48a8b544a087", - "0x6c4c8865b2673508e4c62dcc711e9886e57043d758a60787c6241578670550bf", - "0x21ed5b252ba5e9607045ec6ec85455db4615a1fc43e22138ab3a087c5e6236ba", - "0x2e2ccc6f66368ae083905358a182b0cf3e85330dd2a3875a846baba61c9be3ca", - "0x4a8987c10833a298ff22cc199be4816aa05f25e39a10bf007e72790081ccc26c", - "0x7a4b05fa47d37c86aabe456bda0ae7bfea3b28a375697d4d19ea2b1676425016", - "0xe203aec00f8bed45f3cb0911860093a5fe228c22476f189f2dfe4621145f49ba", - "0x7b2ba1b4da99ad50a33de156eb412d0020efc63c85d0840af6d9ff9199ff7dd0", - "0x0b84a8362a67c9cd715fbb09e0a48e046afafe8814ea7e1c0bc99da9ca670bce", - "0xb9457e83e503f6b65bd357b0c1cfb655b4c157e213c1aa2e4ebe6b88524c20fe", - "0x401fa17417f9c8f21156a3e660fa2b0a27eea8fb287bda37ca309a3c918d1c91", - "0x8bd1e0e83f35107a65777a1889afef35f2d89e70e9ef3fd56a0fe77b5a5a07f7", - "0xafba338c738de0a748fff79650392894482f094f79bf0c88b871324a6db0b1a2", - "0x40e66643c2f93c60de74a976f7f05d753ab09d33601cc1421da1e987378be84b", - "0x4a5d0c268a86af032703b688745b91bde7090b4e3b245f235056b5d675760685", - "0xa8d7233658eb85c4a309293e35aa9768768e78b9635ff989b4a5a1b64f6f26b1", - "0x7b30cf0f31a942afa35ee2b30bd3e67cf0fc3c366eb35b1e331ad8805e9e0d40", - "0x5730206b218be1da571ff8022b975412746f88606ee3014626a03eac8893deb0", - "0x4dc767b54a2e685d7588f6fcc1468cfa7c7e47474297b29b15957b2f21fb90d2", - "0x528933096ece3ea9bd4b3e0fa78ecc95915eac29b8b608af3b18eb7fd4adaf50", - "0xbbbe02a2b2949c73839afa56e959b23d3dff141776137e5e804d5d37a69ecba7", - "0xd8c4081e5c0ffe7797f07db6e5696e04ff097410b1e45a649bca43362366bd87", - "0x46402c1f08238694bc32bcc396093230cd2e522c54dbf7d00d042986d22f00b3", - "0xfcfff397df45c333b4fdf271b63a4510c45310a3c9cc78b97b867372203228d6", - "0x6d2350213ec1c6a79fb7dfcb5a66f065fbc41d4250075d81b7647e4db991543c", - "0x393995f9a4a358d13b5fd9684510068f9fb86c71f2382230999bb36b41586a56", - "0xb3b65d3c835ed1aeed86f34117431fc46d62ee2209db054a5e04cc81c1f795fc", - "0xd1ed46b6e64544acd6f9fffb126fea4b74de84664c2b22c760eb89878cd44ad7", - "0xf21c944b3e41a4f630ad5452a28633c885427b386ca81ec9814ca14bc94bb2ed", - "0x54c5c6c093bd6cf2cc72e058fbeb26012d71fc8e2bc6987fbdadaaa48ccffec4", - "0xa2e79a266c6044703233fea5d0c31bcc22ae247eeb55a982bc2e1c0c64af1468", - "0xafd38477bf1cbad227b489818e335a79d38bd052f7957efb2d07b9adaff6c68c", - "0x4872bf318a2066d5338e31929da36fca3e2390d1dc8dfe88eae5ef854b81bf97", - "0x896b1e0fb7a6daa96f00f7ef633ad67bc4462c962ec288d7f924c64c978f21f9", - "0x0c3617575c8a625e7fe35c30312b147be400b2777ac4b1c0fd84ee233175faf1", - "0x6f47126daaecfa7b84568c26b02ee779763c9f63b4b7f5cb0cf0ccd4a2c0a499", - "0xedf2e0e03c0d321911693c1554254d82c764f2987dcb5c76a4204b1184906abf", - "0x5af810bb6ef491ccccf2dd00c658bddd02a1124ca26be59c97a69199605a2d8c", - "0xf8a597f22125a6f3fd76e28db6ca04fde9f5eff62b78e162855b9a48c51a0cf9", - "0x9b50cf0abbc883c6af57fb52c48defb2ae67f77de2f2ef5aa4fd42f6236f3f43", - "0x6eca9c995386aa4f161e6f4c6ff999cf6bf1bb4184d9beab567abaccfce9fc1d", - "0x7d7dd300658f784ec68cc3021a54680ac5767085657bf87ab6f76f05e505e6eb", - "0x1eab27e441a43a3534507ba0b5390a13c7df373813131b09b2eaabab179b5cdb", - "0x45efe5848f21e2b4f670bf06f0067fe453eb29ef45df102588c7b8f902005066", - "0x086f17e6047e9476d828eab4ba0016e3a4a0f51f25eace2c27445b5fc28926be", - "0x63547a7274cbc857d547291923cc9e507e3f4b6fe85b1ea88a527674f15403ce", - "0xdb0d2c2f050c4235e9fd03de4c491e09061ddfb4e55fda8ea25a8c8f013193c4", - "0x5f5bf14f72834ddb7ef96affc52b3461d0512fd9bb0337313cb7cedbfd858228", - "0x92c4250a5ba9ec5890c39a608770d500ac31ae5da1cc26c05aca55a453e15a25", - "0x4fb2c385632f512303dd76f4c9a3888837227bbb5e5b949a7b9d74906ea6d015", - "0x4814397680a72cd024c3df1faf854d03c0d308b74c93fb846e620de95de7bcbf", - "0x068512253a6b5ccc302e494d1b17ab082f2ff4ee710c58d345d6de4a436fc3ed", - "0xbcba2fe1b54c6fbe1438fcc26e955ecce58c5f30f4f19219195a413fbf1c6eba", - "0x29ad9a11da3f646ae4ef3a5202abab2ed8a7058f336a6039a5c41d3619752d6d", - "0x5fc2a5edf9264de88df58c3bbc705b8e73bba19179d097f414598bd4b5fd63bb", - "0x9592c969a049ac723d756bd2ffd95cf599087a1da14ee9f472ca07e7e54f8ed4", - "0x735ace051a5e3896a9dcc788654f95cf0dd9cc98eea1b5d8d7340f9e51eba698", - "0xed5ec9f70d613be406c237ab7e8e2480c7a81cc666316d984bb3f9c67e10d6da", - "0x3b8248b4de2768d9a4ed2ce07c8735103b480e23bd17ef1910d75d29c2791886", - "0x2a9ce5a8366862e7b790d865b0406d9d5d4013999f42caa9235d4c2b2813449a", - "0x6c67c00db439fbc9d548cbdb57377064419ac47211be90747c74c13b29d4e562", - "0x1695a7ad7e64d438a9b749b07180910a7af207bb46063a92d41be315cecfda67", - "0x6fcb36c8b8ae4d6e4bc21fd14e80dcb402561a011fb4e71408f05807b1141f49", - "0xf6ff3dd9e40b6bdf881654e12fc9959a928bb7d83a81189db1520bec70386ec8", - "0xf17f8b88f04772598eb87c8bd1b3a03f5d96ac68de7d36be6c1fbe5fd4a2ef4c", - "0xf5d9c9e25075f8ab6c34e9231d36becfe90df0ae6bece4ad1847dc4ea938ede3", - "0x5d409a230ffc6a7e149e94b0184bcd00eb8705fe173c67ccf4f81e2f0d3cb0a2", - "0x80647dea82a0c218462836c14cab2550f558391a901a708d7e4e6c28b4b71869", - "0x4ab906af7910a57f1f4bc338d5e952a899ed256e2a28e1947890a372aa29814d", - "0x6e6e180aac3ebd616af90069674ce54459f169d33d30d95d98351259d90a38ee", - "0x5d30699b02a45d5cafc14c945bbd208943ea83ac6a10229c199a92b87dc0c76f", - "0x19c26fe48c497a4b64a4d537eea9646cab7704dc28c46fc3510a14b226b9a690", - "0x5ddc881ec8fd1bd34601f06a5ae0cd23680e2e8bf12b78df48a5f86ed6e96ab1", - "0x39b933493defd81502420663a0c85df3a6cf727e4270816bb3cdec3dc58bc7ef", - "0x62a9e911426f267561f84210d7356069f6168c4e7afb9aca4a4a70d18fb34ba1", - "0xae792d0011eeabbae89f6de39ad44f0620e50e5ffe7392f9bb792a966d1f83f7", - "0x737b257fc55f1da44584687b3cca4bffda13ae014f089e75f0c75b0b2d08c426", - "0xe923546185355abaade908d18f3223bb9c404c4a399ff94419c3a5798c90d9ef", - "0xfbbd3e2dfe2e9e6f985d139dbcfa5b95da918acbf49de992d01875bd44b61e28", - "0x781d9962f2cbe94e355b93e4c0eb3a3de44d9779eabdc3c6d18e7120b3c0c01d", - "0x2722229fd2cef3564c38d8e4120a6ae89728ab4063c8199ec098f139b83ee0f2", - "0xe29866bef5051041d25449f334e4ca246df606c5d7c0bce7067c6c98cafd0534", - "0xe0320de1a972b563113eddbecfc90fe902f2ca80befe15378c94bd073b44eb92", - "0x9227e1d6c68bdd60cd0deb8ed760eee67af6623c44d05136251d89654f3f2e7d", - "0xfc3c7dd2d36ca954545f3a978cbd7e4c413ae38a0fb5cb59b84329b5f5ff2347", - "0x934c332cb52521de4216c29e40601d3250078fe9314a364064692daeb38f71a6", - "0x77aa1b31191caaf80acdf5d411c4b6b834a6e50f2f0ceb17e1f06a807e3eef01", - "0x43eb0928a0ab9a29ed084cbf9ae75d1e5593595d55fc8a32151bf56b9977a1dd", - "0xc6f4fe473048728c5031a465c9157e38c72367c7f937aa9633768b32839e765b", - "0x21dd6e252382965adf71b94fc0b9b2e6e5b0b9dc9732987e1fe8d8610b1125f9", - "0x9808b8c9e07babfb30c120a4a7d3582cf4259f8309e586ad42bdb9e9cdd3dbb4", - "0x72ec40a055dd6c5f21333f9540bbe7e38f28f39f90204f6f87f3c94faebabeb2", - "0x3a04743cd849a1a48e0b012f39fa4eb690c314eae7b0500ff1ea487a6d399734", - "0x484892e8d3585d871f7105a49cdda18af036d787b6519f9d32f8dac5a3eb9546", - "0x3a73f64acae91b70d39cb20c1ace35547e733b253b47339a1c47ad0841c7a27f", - "0xf33014797bb0e339f2f0dbcda6706dc6b33c8491cb9ef777ee2cb88b8fd1e35a", - "0xf94ec9b178e1e287fc2aa53d397960e89485ad22f306bdf0226212415900648f", - "0x8aac6aad1127202909e112df54be070e353fb9079dc5cbeac146ed09faabd4dc", - "0xb8fdae091491634efcb9b2f78f1258d401a9439d806fac04de4a0f9503d9259f", - "0x4e872ddaeda3ae79efbdfd3ad8e5ac3597003a933aa793c50fe74fb59ef43637", - "0x15293110604e842775b59198cb8dafbdf07b4069fa0c3e2d61ce6665ec8f6742", - "0x7423d6d010ca3aef37831e003164b583c2cde4e859705ea191e6ec687f08cc49", - "0x73828a90a0f97e5bd83c4a6484f84ef8af04d325b739a2cfb96b8cad36717b09", - "0xc9af1d054e4ba3af1002ff0ed63fc361be99f8c7bbe90fc951357ba28fafb8c2", - "0xff2849e97d79e7c25a58266dfeab64f512ebc57620d45d6f5106a71fa43063ec", - "0x98da87856c0aae3af6dece2efbe0a2f7bae295ece2b90b633ff894e5c83fd407", - "0xa17f5aec76c8f4aac84741baae18e179ce5c1ce0d23d3e2e5b4fc7f79ee91171", - "0x79c9a766323f5381dce7241fa53da4c7fa018a43556352c54b52fca209f3ee37", - "0xeccb07e66f967613c13a1e867f8a96bb2c96b7c0347e4262ebdb583eca48e71b", - "0x36c357f0249aff34dc519f420b77fe14357a009022262cca7f1467c2dff7d0cc", - "0xd52a496e2c176cd98b94e8dd4c18a9651f46ce47d70c51b21e5970bc7d81c96e", - "0xd3fbff9d80c163f6b9d4ad4660f4504101e167ba866266ff905f8564ca7ffb68", - "0x321b832e81f461e871bd05e6847f8548825464425036a1a92bc44fc30961fab1", - "0xb58be0aa640c7047e2b27c6044dfc44c216b4b69f48751686cf29e66a8dc985f", - "0x2c9153f20a845b8ec8e70cb1dba8436c7af618367c3344130defb1e7c39afe1d", - "0x6d129dba3e7c6e5ba8412d9290d7dcbd29b36f3e93eee6b6d203740de06802ca", - "0x5f8573d1de1c9b4725fb639b565a2ab6dc79d138c3d6495325e6ee609073965c", - "0x5f78ebcd3f73da424734bb2ba0c711fc54be4f21f29afb1c33af44c598d31dd1", - "0x6b48dbe0e509dfed74f60e16782d268076e53863b9f86e4078c90f4c6619b644", - "0xec30ba6ff376fc1ce9f4b87693e586b5fef2cc5a5ef26726d8e756b3c8e28920", - "0x8ac0cfa126e35c8dd715bb0ce13bc70c8d55c34be0abcb85576393a460762659", - "0x8825a63c211a92ba8f8f5aca7a27d1921df071072467c88ec9932a41d43ab5bf", - "0x39cf82416d543f45afcc6aa0cf68522d0d5ed4f76b07b9f742594a88309b393f", - "0x105449b542eb5ab0b1ec7ce69c5e8bed9a72b6470b644e0815f15c6d9122663f", - "0x10fd8c442d6d44b533675b937e5defb004271a87d4ca3b238a395002da42adf9", - "0x390a40177f4155c30bc10539a54991f4759ecea69c31e9b2904743834bbbc618", - "0x0f11e934cc159af39a4b22bcd6817b1abc21bc6fe81c442dece1c178d695787d", - "0xcfeb9c70d8e2d4e40bca485200c0b5db1152d9440237f76a58d4cebaf43cb1b9", - "0xc45c5247fcea2312642437f90870b6fb4b9927eb2af3adda30b5c738eefaa952", - "0xb6886cd5b6329ca5f5e36d1c49b7426b1a20d3e3455f660e662128193b6e1a32", - "0xb708efc6f2f6ab093482d8b53483a3d8216043a437da09433ad0eccd4c9d607b", - "0x12b76069143a66c55fa3ba54a27e2cf51a94d8300a6a6a317a65df345a9d77f8", - "0x0d9b6dacca16c1be986db368dc92d652984da9aad149ba7c22831ac94719139b", - "0xbe298f54460f273d2106a102dfda3e86d7eed783bac4ab88d8caadc0f3116ab0", - "0x82fbddaa5cf8847d2166d40f9fef5fad4933bf338422bc5457e5d5c29774e5b3", - "0x2a75f2442f4ed494666f48168ebe8620819d97f9749b279eafa550f20b1b622c", - "0xc874be785abc89e0fa92d089889ce06e1b2297f647c31cddd24d29017ba74b0c", - "0xa6984ff3e4f7ab1da131668f77342bb0182cd23593dded5e487c134b1b13a9cb", - "0x4293f4fb5bbd41aca9fb12f58e2427e20b791ea523fa125c40b72699ed89ce02", - "0xc316b1b066bf437d3933d7fbc8a8546a10f7c274d2ea84781d8a99633bdc0c3f", - "0xb40cf7adca885ffa6148d8008c5df235e938659d6249fd883960b847a409747c", - "0x3285b34b3e90a83293292221a89bb244a91ddf4647cf2d297c2116826c605640", - "0x465af97dbd1276496387568d41ec69961f70b382c6e0686c103a73bccf0f7830", - "0xda2cd161e715ffd3ca0eab361e66e55450230f9acddf8ee635b412807a9067d5", - "0x3136630cc6b24f59ba9c0347c6c612feb043f9fb58d1d26598331aa623fcee68", - "0x24014d00bd6ed71da4044cbbf256ef99927950736f084cba2a61046ed7c8d471", - "0xcf1824f9a407009243ade6df4e3f241dcb60bd7257d843792d12fcd42e659076", - "0xcfafe5abf154f2ca9b6f9d70a91149b01cc8fb6b8bd083e24559b860e439f04b", - "0xa4de7f7024d405f6738301df2132107b135ecf824777f1b844685bfaee6b30e7", - "0x507abab909bf25bd3907ff757a69acca54af0c21ed6faa975d20106908e8540f", - "0xd6e584b876926c3989b84151eb574d737bfd229151dbb0f653b693b2bac7c45b", - "0xed4eedd2952e96c9298f68a1f8ffc4772652517356ed4a02762a3355e7dc89f7", - "0x36d0a7f0f5ebf3c35a576ff56c8aaa1caa04dda95edda5d496381c9601949451", - "0x9beca310b79181f7695a0b6b49e923e7b67462904457df0af82c88b92fe4ac3b", - "0xcf792a534a0b5126116e9f7c9b92aa4d32083fbdb539c91dcb8de347000b49f5", - "0xd4024c9ca180adef5a9311c8a2fb0fe75e64728af00ca4ea1484548f182b5488", - "0x5517e825a0d6e1bd9ab4435278b8691ad2772b9edb581b58725483c4393187f4", - "0x9e4ae4c36d00217af787ee52862f87bd37cf391adb23a8b51fc05ed1ec3f6631", - "0xe428dd2523abc537b868bb6f5588597175a622767b600b1ed9486d09624c8ab1", - "0x2fb95198976ddfea942f737322470f9de6635f7116839e5148d3f64766f6fa2a", - "0x211ff8c237bba495c03bd6e8eea2a64f05c8a0eb15951751cfcc4c337f1cbd02", - "0x44c49c62604c39e38561c7d9285b9a2e168fa164a47c7b17f1fe83faaa3c581a", - "0xfe663bd908aa64290ccddcc300aa5f616455d8f10032af9317ddf717c94d0bd8", - "0xb04add424a6780e81e2cdafbd81699fc5ad621c666e1ab5583f3953ce8b3abdf", - "0x5f2f6958e89ad99e28e96059aa8b6e2d9518009f824874e327dbce226918e0a5", - "0x491c9e17210c2770c0cbe566aced7dcfcb6781e70a288f91d4eaac8dc4fa07a0", - "0x73651853f625c534d5848d1bf7f93433b09d9297b13d46aed9b022ddc37c4b85", - "0xb1333ff43af73637e2235f97a1a7a5f42c590cb15f93a733cbe16d1a9c187e0e", - "0xddca0492f5c36c8eba140575b4521227ad1216d04a7e60da7c9727cb2a756df3", - "0x6da48a25ef31b1e25e33b1df1c539b14e6d3837f8061c6a4faeccc861b7c908d", - "0x7d250fc602fefae7409a7edb1260f4c520d4717b881c8afb6551a89cc781efc9", - "0x043db87fb979042ae7ea709cebe4ad58028916f035e99382be9826f1236e5753", - "0x01b125ca25e2a254e0ce54e4f3da04c647ff6fe982f1df158c3caa90b1e2a2b6", - "0xec617f330285f2d4c6ad161250688cbe57bb81a5e45fb11354ac033e2fd724cf", - "0xf7cc72b3307f0ed731b990d2c10f71cf195b02f7e1d2767873c3ffc192cc43ae", - "0xf19619c5e62c5f244ef4156cc2c8f6edb6c230664e4c19ab32e1fa137c9ae173", - "0x91c313a770e9eeb92fa74c335f9cdb735bd14582b385d2a380bca534cf7a6dbe", - "0x14c1ecb6b06c18c240932c705154f009d9032dfe576ddb545a3a4cfab9968fc4", - "0x7d2cf6029c764b4c676c3a30567efa13f0fdd3cd6587631bd79cc08f26d75505", - "0x8c889efbf596d20043d654a6cda1a58d480ed2e3c3db65f51aabfd25f85784fc", - "0xe0bcdec3debf12856f3b4fc781d407a52b6b3d544b56cddf847105760a99775e", - "0x32c229b6b99b2173338bd7615a1a0c2c4fb5acafd41e332c9be7dba91b8e89dd", - "0xb24b187ffb16385b85e6782fcb4563309afefa8a7900cfdb81d024c2257913fc", - "0x81bc38df942c4c9c309f19e4fe5119f3d7fc2347fceb83f7d31e990a042581c0", - "0x1e6ec7caf14747f470d65bea046f7cc03e081271775be615905632ec9a18a637", - "0x4eea8052ac23fae83fd1fa63b328bb4c2c66277480b78ecc00132c1afa53d37c", - "0x8810dfc2084515339a0c6f1b3fa771aa0819b47498e57b3733aed0d40b9a55e5", - "0x3cefd28b10c2ada59c1bb66a832f1ce79c6d96dc0eae3b2759515839cad25ce0", - "0x8fb0cd31102c06d1e33f782fd9dd7f6f9af8e975e10fbe560183ca366d088039", - "0xbd7842672dba588021f7b395a55b949d41090039b14741ac667aa75977e00d62", - "0x7c4ceca9b53e12dcf2bd5a625274f30e2a825d5075d640c7bf78abe4bdab907a", - "0x945f8fd6e3171159a57fe5ad95e46cf93c494613247051b941bf4ee7fd6d4e29", - "0x01e9b5d3ec0f6f100907603f591e5007d086086476dcdca849996b98089b924a", - "0xec9545ab618538789965fd828fa8830ac17ee52489dcbbd71b296abcf12c11ba", - "0xdb1466a3705b6a035fc7794fafb497fd2e7606b003e73c6cae16b8d9b2aed314", - "0xdc36ec38da93a79b5a1e70d1cb3453f3ff324793d2fe64fc1c4e8fb1b22e7f29", - "0xc1f2a76b96cc31541362b5d6ae9271740bd540631b4f3f0274ecc5928e17e10b", - "0x4a5108aa8e22f9555d94caa9c29b9793b4a97e2c7270b8e24b2b3717d9efd8f1", - "0xc8938a2890c4f884837acb06c4a3854d1c03286d58d5d62c85c06e00d8597fe9", - "0x61e1708488fca9b334a1682d4f11bb046b5088151a7333655c733766ba0e5e5d", - "0x75705cfc2a41a44eada0a51ad75eb93972d84122658c487803287235c0a5a405", - "0xd818c5f5dcb79e84b2b41341261bf3e4e97f1bcbe572c1eb5be5f7e3eaa52db6", - "0xee9b8a62f9bb12306b38c129ddca08e1481db588b6e07b45a7defc3750cec078", - "0x1bf73759029c056f0e59b27a8d05714c916daf36517080e724662bffebf9e380", - "0x4ad981191be35ab37c559020fd42db86f57c56f51a902017aad1deb2d71debb8", - "0xea76176e1ae162188a798fc6ba2426c5e39b98a2832ef5f730c06d51f0b6d71f", - "0x1e425a410f888435fe7c1d6912efddf8ddc3a763a136ec730c31ca3ed0a3c162", - "0x5f6ba29d31dcbaa0220a7c2f901b987e968233bf19f398528e91973b421aacf6", - "0x935266f8976c34566a762204de924295a5203630aac2d2bc9c9cd0cc8286819e", - "0x323fa129d881b6406662cf69f01c720060a13cb7c93ea7fca3f089cf47d1b9c5", - "0xe17499346fcb6ac5f95e10c794f05ad12ba85d201c4d9a2571837b287dd90fb1", - "0x8bd288a3aa8be55687979fa9d94ef1d1ef8a0036bfc5615419920c6df3c31bc3", - "0xf05028fd3368402e82d4f6c6a4b12e622b048a612f80567d6e874541998b87b7", - "0x7e35b77cce743749b57b7614bf4f3724226ea82cc1f76e6f6232ef25b42eb6e3", - "0x58cb381e320b2ee7ebf17aba08316d86c6e8f2dc038f8fc6839e94f16b411a3c", - "0x24c1e91b745127f12bd8603ca59bacde6fe1b990a1d4de58c5e91c29da27e371", - "0xffb99ea8a8fc58a1c7e33ffcc199519165a452ed9b87196cbfb48ca23198e571", - "0xce37cc2df44d4308d1e5b846d46c9d7f2bd78f6b771b1eebcda1142858cbd4e9", - "0x0babd6dfc4f5a3da90ffd6f74297db7ecc7964f23bfdd3404f49c47cf7019856", - "0x97ba6463ece697d1b340dbea1e4e51e2f59e1f1283fef71d2aef12060b188b6c", - "0x3cb4d7dd238435f316ef70fee4bda79bce6b9a333bc10a36c2e58f7fa4bc24de", - "0xe44502680a574938a0f483c72cf5843ffc506bd2d9eae270bd108a4b7dd55422", - "0x3c9ef69fbc9a23ff7646a9d99f27584f3969b20bc56249dddc7f83fef68742b9", - "0x555a8316eb846760d2996998291e81d5f80bb0d8db71e5c02c42791ce83e456d", - "0xd4d68b9b231fa41e4571e258fb5d4770e843b3e50832aee6c7e327a568c062b7", - "0xe0a8bef3a6755a4d50f379f9f324f0404fe677372f307fc67ef2b938eedf986b", - "0x57f32b8c263c9fa6e3b5df8603307216469dff93a400290cc54f3a76b54a2a75", - "0x3749d954f6fd6dd710a0a9b4abcb0da071b3c50d125206c0caf4f4786d590d4d", - "0x58efd182fb42171c896accf391b30f1916503f616102251b9dccf2a45a823c5f", - "0xe44810336515f4f45693cbc57ad0eff2105d70faca32097f7ad6aa505c4d3b67", - "0x0d720fe2f29af2607ee5582016bd0f122f63d0f82a84c4931446a184843594dd", - "0xb3106d35e5a904b6d460ffa8cb494f6a95045d717b3f532847105bad0dc5ecc6", - "0xd1bcc88ff9f5ed1b7625e7242ecddb2b615401dd8fcd01c9b9f03a6d22d144cd", - "0xd4d4702668cc3673bd4266be291aa0f25e8ff835df3c43d556df01342986a279", - "0x9fb62301f00d441319f81de73fd49fa1126a29b3a11b022b3a92401dcea15772", - "0xdac3eda26ad4eda3d83c0e83d65c74ca4c4c3ae47eb4e5e82c6b315f80266125", - "0x7b24a259081a547d55e9af822fc54d5dc6f69ee3e961ebd0a0248ac36f6e25dc", - "0x64e96157f5e4be77c9f50df8ea9c518026ce1d7db6adc52189c9354922504635", - "0x35ee981b1a7d307671605b25399cad71503fc9ffc00d2f9ca80e868901e9c269", - "0x6965520591a7697f7c62ce4aaa6bd90691ae1a89a5f8e29237ce5241d8003636", - "0x30c305cc886b538fb8808be71bddeaec3a1276986906b7f028347511bbb653e0", - "0x5f63caf0aba563f62811903619a10786761011d2fa6fb58e835b8dcd5cbcb3ff", - "0x6d7219f08e8288e4dad53a7fe227951e81d9ff2633bbfa636a3d0b147b98342d", - "0xef315cb919bc5537bdc9bc47d2dda7442e4a372c74163fc2134173773ebfd7a6", - "0x83016cc642eb5b55b5a667d36acccc35eb9c33cec2caa28ec263f00800bca2c1", - "0x0c855426475046350b58fb7e179202cd794f482598d73ad05bb0072774561493", - "0xcc8dcd45a49fa55fdd2871245cbc611613f203203ae4ffdb1e647e7143b8513b", - "0xefdb25f8a05ae4c869bbfbcac9c302f3dcd8a917eca4d5807deb09833e876820", - "0x055646d6adfd108be923b275e21c07162227694df780512d0dbd7a0b58cdda91", - "0x4abdf1b201aaaf4724e81ff29e8d48a223f7b98ed6d9c9696375047b7643280b", - "0x929ef44a9c004029274bc1dbe13b49bd6452ea3a3ee6d378dc296c9baf0b1e9b", - "0x909a57470dee2764e5ca646d6711de3908b3b35d98e73f67adc23a3a8aa3c48b", - "0x42e5bfa041faf65f224d7985ad464a526a18fe591a156c0b70df9d397beb9aa3", - "0x241d0b24f3c0e08a17f10d579e49e72af7d2e4d0f0d621ea8975d50a3901950c", - "0xb1f3ce2968fed1bfcf363a031d79cae0174d642e931862adff7ee97f947522ed", - "0x7e4db35d3aaf0bdba5cf1d5465f77e6c927f42b775e8ec2bbfb43be36270b5b7", - "0x7995fbf9d69f7222ddb9d28bacc6d97c61780755e933d3dd47998f1f3747aa32", - "0x31317d422307751b59eeb45270518af357bcbf7ef413f81c8e7c6bd48d79d696", - "0x5c58fe54e2781cf91a9d09e080a9ae5b6a8124cc06275aea65ffe422567aca2d", - "0xa4da628ada51d57b378717218e6753fda428e2b8ce88859f37837b4c2fcc5076", - "0x9c9f744e7e3275808f9913767657af8a33a7717e45adfd84305cfbcce328a065", - "0x1381182d1b1ecd75969148742706a27a044cdeeb5cd984886945e5de5f3311d5", - "0x71a4759a9096d67a4061ad639ea4ff7df35c811eb1c7b10638aac889584567f2", - "0x1bf9536eb1692291213d4f7f340647025c10793c2c84e8e775db5cb5afb5022f", - "0xf2af02ebd1cf78bf30a215d80133c7d5f7361a58b827efa23e940e7c91430af0", - "0xa90ab1a925b660baff138369712be90a6cf8ebb658ccccaa9e8b0305adcb4ab0", - "0xbcaff27b022e0873b10da43c78b1395f1878e2ab1c8cf33368988a6060c6132f", - "0x6154955bb4a81d1b96e618ab29a53c393ec78153a733f90227c9f83683131eeb", - "0x451b4a606ef40653e1ccd38b07fd4e8efd9fe796e01b5a5772ff903b45042187", - "0x011e748c7fbb39346bba2b3235c185fde946d28627e2f6ed39c68076d5e6fcec", - "0xa849d075319c4f0cb13f3115ab99e0cdf0341d719f5c65a36b100ac1bec98826", - "0x1e61220e9a615b1ec127001aaa19f307c268bfbf14bca900ba1005539a7ced1d", - "0xebc6254608585c487baf6e312130a06468551cf4ea171335480881f42ec626a7", - "0xce073708172f6fd1e6d792f4b9fe088dc06e164422c5e85e4098c0c8672bdecd", - "0x8102653797d93a7d372b1ddbd92c8c8cebf79fdc8213392668d62181c2639a48", - "0x2062a79855e50c96f3eceae62ab0f873eb3f051f66931efdb00649f07b82061f", - "0x28302f6a2106296e587b03f2f0963ae9c8f8eca56198f7d5e0fb52d4485e1da0", - "0xdb69e062fd4f03ad8327c3b33fce7efdd2a1455cb9c1c90a7e2e9127b12ca041", - "0x984232b5675edfe8312be559135281ff49be1219e3ab17e84560221368166aae", - "0x303557f3d60ebeaa591cf88e583c366a7db4adf1031b3de9c8d3381466e15b7a", - "0x2179d8b03104be3b8d2e6f4ab4c6b9851bf85ed4545aee93fc40d3320d3b5d2c", - "0x708174830261838f9d87279a51c4d65814f7da2495c1a7ba1eb867ae7217bdce", - "0x5c5b77681b0d9d6789aea3494c60571311f2b6690de38c2e4c2a8caa738afe5b", - "0x68782d0db788b3e7441e94e4300a93c50d641c060677c6ac98ac50c69ee972ec", - "0x3c3acde8f5a99d8e131d33c7d55ed4415f0c230ed6fb711627b11e464faa3264", - "0x0289fabcc6d32e03cf75d7958e22ae050c8fa6b31c03221d78ddab3469d9b95f", - "0xf10cc55e619ba8b9aa5ab92c272ed1459020ae6f43e45fd9d427075d86230c36", - "0x20ae1b4f3c79618339a0f0627919ab94809328164ec1dfa6b9e1f556e68ce770", - "0x071e6f74436830ace1c6bca63d915218d8f561e184d15cd83ddb199319907dad", - "0x7334a6ac9991ef0876f0b4bbe18dfc407e748c65ee79bcf114c1a2a71b46f41a", - "0x4f44e709a1e59bfc7315843f399add75d5c1e8c3cbd0f485afee94e1c4cb0d33", - "0xec0514297634ea605be68932d68de290e15306061e20a16b2e3bf675fe573bc8", - "0x9c72bdae94b6f57b594c11872ee21af41c704ba1addfaf8ec4d828d6ac6101a7", - "0x1d1a60f27879b14930bb0351e39d3d31233e7d55f3ecae5c9cad4affdd2edb67", - "0xff4fe06f62b19f1e6079955baafbcf5b74627785b5edf90cc49ac75490a07f8b", - "0xcfc332e8af474ce72548c5f0fd50d4e6c10858376b0ddfb706e99703177b31e5", - "0xd7d5eb515bad41cf09df99d5fe0400ecab66ebcc9f7af53ff8cad256d9ad2bea", - "0xe6f7024457d9e945da6737c34090f689bbaacd479849a7c64afb6aee85b6950f", - "0x15fff05c7ff12fb455b77b5430532011748a52abce46919f69ee0a4c30b59fd0", - "0xaccd46e8d8482209373407310b988ba3e1f39d6eb17f07861d33bfaefeab3347", - "0xd97650055032b7bdbabc7b49b7343d0362d6241aa45fb17ce9ca1815e7d58983", - "0x0a4b45c31d3a1dab81b47da37e896360fe5a1e45903f59d6ad0f0b8ceb2a7747", - "0x8b2a42405ceba8740c02c526023247a262088e35588fa4253eb6e229c273463f", - "0xf43516578e7fd03970d57b08384b0bb3441ee7f50213c2ac0d1830d43c857abb", - "0xe2aa1bc333310c27fd699455b06398679a100f6a942c0eb37f70da89d7f025f7", - "0x1f13aa876a2a348d7de6adaf51e8af65ad7bfe0332c4c9cbb4dd709dbde8e1a2", - "0xd766018ae514f5b7daddf6e716bf4570456cdd46e7a3be68c1c515f2df441bf3", - "0xa2ce855ff00054aea57559662ac95b2445c1fa2491d9f4448183a474396daa53", - "0x8583ceb1254f6546539fdd57d1fa1e3580d81f1aa44dbc875de8b0f56e5e7ea5", - "0x7e09579f21572f2ee72399c3ef67c01a5f3f27ee4a3c43e8b6f692e231fdcf1d", - "0x6153e318c7eb123db88f9afbe8ff1c8f66e1cc0e8704db45730912a8281b3366", - "0xd31dc325333526bfcfd29e50e5fe13cd696e5948910abf46e66dc73f7d271942", - "0x9089fab0aa038217485edcae76bab74735a1fd2897c30a610f5e43f1d2da5425", - "0xe193e06c904f53031be5910209b7aab785bca6b65e917351764e2f231800bc4c", - "0xf732414a066d5a8fd13241f5aaa9570e5c6285119a1f7c69063a8b4cb62729ff", - "0xe149ce7e516f9d54df933717a11040e4a9bbf8ce13c5a3612288009a99724295", - "0xf29212544b867ec2505e35cc5ce79ede41fcafd676f41df15af7f178d6dc5cd7", - "0xcdbad6c9eab35d13dc6461ffaa793b180e28085b8047cc56a5328f4066ca944e", - "0x13f5597439e924b31cc8ab8b9cce0776a8d89bdf7e6a0a306763ae259bb92787", - "0x791e0daad106b9ba1ad684994744d2ce89c6e413c51954321d9eb3d87e0ad14e", - "0x892436f41d7a6d8385d66f6ff19fc7235dc6241477d2745792bf3a38085c8d5b", - "0x68b0efdb41ac9e0c2cf0df78ff6f9f790c3c1ba63ecec6bdf9426d860952f81f", - "0xcb4cca4320ab1a4ff11f868d769ce9fbae1e98d154207acc85acf2f8dab8c4f4", - "0x3dd2dc9e0d99e9ff820f22283ccae495545ff37b6e7e89b3d721bdb5ee169eb8", - "0xad216b8e962ca5b8f388c89bdca543059065c7b6573c5c0868be031b74c2e184", - "0x36953abc02bfd8d72b7667b068f63f6c441e78938b15591440a9550ef796b8c8", - "0xbf85fd9301cb248c0e616e4297e2d4ec43783bde218ab67a7e2049059236f633", - "0xd6764c6e1f3e8d671f1cfc1e55c4d65b274fccdf783ab1b27eab1099b9f46299", - "0xe1f4b5fc4fa5e50ea8a7129f2786d7b13531d608ad6e413d3acd0637ddbfc5ae", - "0x225f99906c6ffebd2c77eda9c7b2e318740a36f84b8d6424b2f479f3e98b1fed", - "0x7850e352fda7e9b524fb1b1c04ee4695ba3613441ce0c5321b26b9cdb3317625", - "0x4913a582ff57cb276667a4eef0e85d31c79ff5f048b8b017dc89653fece5e88e", - "0x1cf357321372b71199a20da7e7490bafa5d9f837fdd3e433a68e8f84d03fa550", - "0x978cd04d02821dc54a1ae97385ca618a91ab42e9c227b5da2be433369825aff4", - "0xef0098b9b604b3bf4b7898d887b5f36ba8c196606b5688476547e89981e84a21", - "0x1c9cf750c7a5188cd346781612291b20ab07039831a77e55ed890987a876a412", - "0x6bd6e5e5f57b23bab83994c68760951a0a5126976fa9c46a99bef5b329ec7cc6", - "0x14db2e7acd6fccb3b019382385a1f988dc368d5da69cb96956901bc4ce06ec1d", - "0x48c20e5365cd6febb128db3fb93ca7a88b7f2cd3dfc5b7a6fda331e62d8f6875", - "0xec6ae4cd53c6c40f3b77e82cbf386d478120145c0c18f26220eeeefccc54b883", - "0xb27738db32dcb1fb5637ee6b86c528aa9ad75a47777931d45285f0745d6d9618", - "0xfe9671bdffedf2170714da275ff0dfdd533ba1be2ce2590bc1ebdea9208bc951", - "0x25cbe60b7936b87c09e92b9982cfd1bf80ee1d6ce65133434ac330065c9a60c1", - "0xc777ee866895e41d8e7320601a8341fcd99c98ba9d600888397f1788ed79fce9", - "0x63425e84adaa76af6e58807d3fc3dc294e9bd9c32a170a60d8571c667ee804bd", - "0x086c8a54c5d1c2f4160d7f0f5f6c1a333ca91875ba23727025d77225e2f4db95", - "0xd8da17ce51dc8419c40723d1c3a88f74fe336f9a4f98eca61bf1349b0d4a89da", - "0x0d2169c32328187125474e97c7a917253b90dfecec0682f3ca7982e064fffdf7", - "0xc83f335b6903eb3ad4b0f94fd6bb3a8b5b463d0137547a4252043d58ac00df75", - "0x175f57c174875ebc474879251e4bca53bb7efa9f27f456f10266864719e073e2", - "0xb0ea4c419abf7a74ed69807b3d14e0de6def5f55e645fbf0a625c7e9e3765201", - "0x4a246d6ec272afa613f9b6aa288477795bceb920d6b3ed1a78286314cccc2e35", - "0xd3af9fcf65dce23d27b46704753c0b4b24dc752db5389876d31181313cf91ec2", - "0x7301d3627cd3bc2ab317c377e4f81ef6b07ba64939813b20050b53c8f63a533c", - "0xcf785d9ca7c95247ae005537d0db37ae9c54494b0a2c1e655e9c5ee1292e8338", - "0x3de4a30d38f8ef549ae45b777149a547c8cc785c6e6f48e5dba40b7bc7fb4c82", - "0x27fbff002680b942c31cc8f04211be03c8646f024857ae52121dec778163452f", - "0x2a37be7d47abffbfd08f1aff379a27e1d9dd79833f67b466a59b8ebad854e3ea", - "0xedf73b72736afb79d07c6e726c74b88039da0c21285ae55b5e2c8191d3f802f0", - "0x99a6e045680aaa9aa3c175140a9337aee7967d78e97b41a0cb37c03f60c24b63", - "0x5baf77fcc6542689195c10fedca877c6d59ec418867f25c79d4c3ffd36493b84", - "0x85d64816bc21349e07c5dc852a8790c6169d26274dc4a7fc35c53c199c8f6dff", - "0xb59cca680fc9baee6d3d80e11e374bfe8c111b0f47be83157e54e6d18ca93e02", - "0xae13047af776510ee9d13cd6af0e669495704651d5894f30e5e49c6c9d33bd0c", - "0xb2cc9c6705f969f07f700e3d9fc62fbd9de299ca3510985ae5e6fe339e187c75", - "0xb198d0787de7b8e5e9beae4821f587608770fab12845a901edb33da4c50dd217", - "0x7fec95f60944c1796bf42a978a3a771613b889fbb14e6cfcaad143819bafff9b", - "0xda81d0a99cb64b0c8828a05f11bbe38719cd6ddd6cdbdc814a317cee492b1503", - "0x554823c8958d8631a06ea110de162710e66da426210c4c89bb210684c7dd9394", - "0x0914908175ce4d9fb7415d5fdb52367c616a1b95198c9421459cc1c769911cc2", - "0xfbb629523797ff98da78d0f41e2acc45acbb20e4a1e0e1dacbce45c69216a964", - "0xd88684c269bdced43c0bccbf8c041aa6fa2fa9354a6aa67d7053aaa0f2074962", - "0x3920c4c386860756180fb1f7fe605801f7696d5b9e4e1576e1aae0e8525df880", - "0x5deb5c080a346877454cd98ee36312bc3e4a79b3cd9f3c39971d892ed955e927", - "0xe099ae7dfa63b764ef3952ef921cd229acead0b0e047af94030ae09a34b0be2a", - "0x7e754b454ded479b4bf36835b0d52074183c9eb6c42398d3e7338948992d08bc", - "0x1b22378457b71df9263473eceba4f57933f11d33d31be11ec5edcb36df0dfd95", - "0x6605794adab619d57a2ad55913afe54cd5ec219f3d6740185409ac61d32a2567", - "0xa1039d1a4bb3e763dae6dca5b8c00deac9bf0b76c178eff53527a95852c587c0", - "0x9d43d1daf7c4295431136143ae7ad2192b71c16e8da4cd1ae9a282d113122c6f", - "0x38d5c14dc112d21963208fb735e8f76d9842c2ad13e2cdf32b0f6e70006f911c", - "0x09396c809912d9403208968d6f13d8845398b26e93f444acf7538e5c357df7b3", - "0x1ed6f3b995bfbabb0d55b107b2b3ec11c4be5cd68f207d9d059a8eb7671ccb8a", - "0x69db9592c01441747056fc5c646057d4bb992e4affd23654af7f24c47a002900", - "0xef015d193b0137175d8de710c2141d23cae1130c368a20f19bd59f9289d1a17b", - "0xeb63f8ea306392d336b2a8e0568e1a067d8f40c4e2b28f7911ebe48a67638942", - "0xfb12bbb145b5dc7ead7ad984045e62b922649a70ec00da06ebd9eba65fc83c23", - "0x10bdd7c613ce8584ac10f75891afefacc98cb0c711504e0f0284f634d19c3714", - "0xab851b2b35fcf427bd0407865a5989c533b855e65a9891e39b2a5e161a345af1", - "0x6bce48ac8c3553878ff831b672de737cfc7d7c3293e86fe322d229ea3f5d2c78", - "0x0c7313d927f845de9f7c03c09775e2c8fb8e9f2fe63413fff066e9f38d799ed0", - "0x347135f2e53f4002b5687d287b5134de9134eeef4cfa4d4494b086d957157870", - "0xedde43ae708664ffeb9d92cbeb03daa5fc0c7d1d03ac3e9d6541dabe9ac50c65", - "0xd14aabe2a11d404dcbabfbbd8d7c73ec05af5a0f9fcb79bc8f198f00420a2179", - "0x2c9d2e1c881d46c0fd68fffbd5ac45e3dbde2a4d1ddbb77d0ddc4f520ab83c94", - "0x42ea8109042da88b6ed9c71dca34907f54c356b46db55955e3a6cc1541904a0c", - "0xf81c890a5e8660bee4d5a0f18cc0f3a709ce48a5a49a36f0138ab6431783263c", - "0x492144091be2113571cf9cc84c53390fd00db10eafa2f5533f78b8a5d6bdc7b8", - "0xb42ff2a6b3d1e736c56a37a0a46f927caa4ba9fa6bd3f2d1a98459c7c30eb262", - "0x464c4d7daf1acf7786041d3c797f15354cc03cc5620454abdd88679659df1292", - "0xd5dca22e9c436660ee18a941129578021359c0bf2f22008b161c91494ed80594", - "0xb54d6f7ab969f0f95ca94d0a2070b5f2aca9f991e3b64a60c903a03d3d48e938", - "0x1261a3e911769c5c55151982e994aefd4d773fd96e8583f41a44cda306b4e1ab", - "0x669a364ae954397361f4c703c102513315552af241e306406fafb3dc70db8ec9", - "0x54d5a3162659886b7a0aad65839ef2cb72233dab58bb91961d6b6ccb1476da8d", - "0x449242a1b0ecd0bcfe9acdfb2b6779c9f291c98c09add8e13981617486423bbb", - "0x4dda9dcd34dbf574f62d475b7e3052b2e393be6331ab4b0ddb3f1a6270041e8d", - "0xd23f7682f463c5f58940bd199136afba80496fab562aaf665710ff1d5cddee66", - "0x70503762d711f0ed6eac70a12b728f3d84152094b1e4f9495870433592cfa268", - "0xcba23bd9ebcf36500a69fb8be017f0ebfe9872abba5070c6702047e3814dfd0e", - "0x0e2fd927efdd930e1843103c837526ea8f846230ef6ec9f0e8af61f9d3b19aff", - "0x518a527d8d9af923c12692405837e35d58a4625ca36c2041e539d9e369589192", - "0x0a697ad4d29f33cf10f6e08024a18d36a09f459f8ca427cc8b36def0fbdabc1f", - "0x5d96d5562fd252ca3b5f2bc6e6439572ec842764594463b349fc50cc8681d8d0", - "0xa093f86f7e70f80c308ce12554c6c23cdfc02dfda87579335ff1983d549619a5", - "0xef0d1f6787ea178b22a66632a6e44ff464b7de08afd8dfc780f39720b4746a08", - "0xd3a6e3eeaf50eb34d9af9ea4fc461fd4784ecbc6a2b7a8eadc37796d7f00218c", - "0x4c1dac930f116474ffb251df529847732dc575ab404342e651d6fcd67708be96", - "0xd5ef4aa7047c1ba5f18e81417886490624b5520743a1cfacbb04df4dc7724af7", - "0x2c0b01e814e880c5d9b9e01c08671e9a5bce1aa1190e58e0fcee1acf14b36cf8", - "0x464c6952f2738c8b28819299565a7ad027ffff4bd74d06ffe210ac5a44760975", - "0x5bb7a03847d5d77fa84567f913b2da4b87e4d2d453bd5194dcb15a2d07fb284a", - "0x7dd9b9c68e2df4a415c1c4898e979229a764cbda85c215bdf9b8eb2fc0af21e0", - "0x75048e56ab8cdf0cc6031e3a57fce809e540664872bfef2aa32fcedffc32e597", - "0x6c570e74626bdc74454167d24b0e755469e57930c0c5514847db10dd224beede", - "0x511151b41b26e5137b1e564295744e6b9115a277fe569a355a63cd483e2af7c3", - "0x885899509c8d7dcbbe3f9b6fc3ab2b1ec3df00909c92450dee7b329ba7abbe7d", - "0x40bc202e2040897eb3e06346d5d5c71276985470ed2e582b6f32ab8e4107984a", - "0xb442612b838cbc33bd65416baca317ae931bb2b6724bd565ca181a4aae95b590", - "0x23be2219b6842dfbe704c7fdb2bd4723cc4c12fff81ef96e0368f0feed5486ba", - "0x8ce2344dc7c2f11924f54185e191f22b536ec7a9ed82930e223e0dcac3ea6649", - "0x68b8de1cd88ae7fd5be9d8eaa51af21efe55359e5dba2aac1125232d01ddaf1a", - "0xc771dc187da76a5c761c9f00dbd9f50bbc0f149ef98f897c519457104c9f1a0c", - "0x697ef9d13cb317e94d4a40b9c6f45cba2680d6a2247e50ceff250be0f0934fa0", - "0xeae45a6899bdc251611165055e02b3fe3fe65dd938fbef43b01da4282d7fbe8d", - "0x3a352faefaf059235c46420d95a5d26618933e993ec97dee1a87cf55be10d4d8", - "0x59a105b2a42cbdec8ac080fbd09c98bd671ba47ac654c69fcffa0089ab9f4d95", - "0xb2e2c32ca966983c1951db62ef157be6824228d14468d1cb9856d53f9be6a9f7", - "0x67371fdd266043a11d59d4f05f0c5d920eb2f60b434928d7b558099623050c9c", - "0x0d0b97a7b38358d661718b2b77f50d1ab580632f030985d9e44ef3116cafa38c", - "0x2d19591fcdb7bbfe41412891fa43201363d0a5b18a48994674dfeb211701507c", - "0x7b42ac2c855a619963157ad7f3d36bcd1de0ea5689dd3e454aa2afc7b28dd071", - "0x16298885164e7c509b99d5a05549f95f57f3401f723cab1719b76a2bbce8b0d5", - "0x91b028e3ebca0b60cbc4080fb0f816d834f0898fd00ff42080b3e8dceb28d66d", - "0xe3802595c56c2981e3a4b35c149e29c421107c47ee6df2b27e979f59bb06cd3e", - "0xd285c7cdd2fa2eefce09e902c86a1856ab4cfe33e6695e94dca8fa74695a5424", - "0x2b78d2e0c0770ffc67b92d56c4b26a675e7f3639ea394842edf9019ad6920b2c", - "0x495f1461f887371cd29e86bebfedbd429f7eecbc7c759ccfa56500d7845db4df", - "0xeec765f7d794010adaf8dd7f07674eefed3f6d5b9dc43e39a3b3537288b9c9ac", - "0x1a4f6372274bdce3bc6ea83f768561d6c9ed996e72145d524211df0130f3b7b7", - "0x3955a47abdd98eebd3d38244e408aab387096dfa74443b9f607fb6fa59456e64", - "0x7930f2d3fb73869045d7b144061eb1445ea74202b8f090f4f017c27e1c4350ed", - "0xfe0e4fed81793226f51942fec125072e439e701bebbb049337a5f7b24576d29e", - "0x87a4cad6943d444f9da79e4fcbffc198c96752ae72ee3fc2487a82e724a045cf", - "0xde75d28f56b1fc3e411dbfd9a56fd748de3f7490b931328f3a5131c143832218", - "0xffed1a9fe59006557ecf383d162f0f6011b59f63bfc693d61b77232329f8d956", - "0x1cf303aae3e5d342a33d369736563133519e1434f981bbe6067f444e16d89230", - "0xf3be3a8b280dde0fd0aa8322cb7836136b8801420602e45c8ceb84ebed7c7e02", - "0x2813d9eec11134a3987955f4389d4bf07fb4b986b700d982f89d2c81caa2ac1d", - "0x28f236d43bab078d0e9662be120609f8de33bb4661596317905815e7771b42d4", - "0xd72f262c68e657dac4247a7db98fd115b1865942071d0eb06f68ddbb64b392d9", - "0x4215eb42c3bb1333a0acfc8240f1b5d9938b68acdcf0c048fa037d90cd6c59aa", - "0x5a70ad627a347a1884a9e7fdd6c87cb7c0d5922ad69054a3b9d56e96aee436c0", - "0x8ad7e96941d03426434d6b7e0eac92a04e94108d2b1fe71178b582f6d861e2c3", - "0x9902aa9f7e7f1e9e1da269bb387739c103b3ff7c67032097e309df96768b21ed", - "0x0af467ddad68dce1180ecaf84a397e5c8fc98281ac52c10d064e5972fcf87d52", - "0x4f945046721c0071c9b53a8324b391126d26c8bef20435d60a6aaa69e2d156f1", - "0x78bacb8175c8dd89e4c12b74aa687211114b47906d763e0f26cba8410e5e3300", - "0xdf20aab8a9e472d877262d3985813365acdab5dffd05139f0fb87eeae10a4627", - "0xda39d3fa1f48b617d3586f3700119f60a294c1e3d2546393e3a4bf09ba5e3030", - "0xb6ee6e1a15c36710e6d37d2cee67f4646ac94de616c3ad65b08cf6b7aa3b32c7", - "0x17fdf37e749a06f9b8768d73993bb7fcff8b6da75ff4545c1facd812c5c89031", - "0x17c88f6d416ac2e913cf054b9116f8639a566dca223243fa9dba0e0dbe047597", - "0xa04fa8fb398b38a48e134c62d9e31fabce109651e25fab8d32318bc6409edbcc", - "0xfcc5dd8bb39b3782154608c5e3c2a6b050382ded90f0b8352c645ca2b80a88eb", - "0x6b3f1cc76318f33d63b204bdd72a009a7e2acc1a81ff6530739c41990de6552d", - "0x5f4e8c17b0f337f546abdc595f953cfd056015e3add1aacc4e058b318277a3cd", - "0xd9917cc1fe0d4b12b85b2713c9942cdb07178e4c6f594baa4fc2617491d0ff07", - "0x2f6df9e5f1b821365dae46222c7f252a13693fc34a9ff96c1038f154496b49a1", - "0x5807dc551b31c69db61bd1619ad0f9631483957bafc20d4ab1a3e6902332fca5", - "0x04b97d025d8a5b1ac619c36ba6dc8185c05b4f1244993f684299f7368ebeae3f", - "0x16c71e2b84a27105527ae46ad63c9e2eb8d2145168c285ae2f7065e5354d768e", - "0xa562d2718f87e2086106f87bbb574bcb1e767cbf9471999018eb3cc21515b004", - "0xc2ff97b7e8736ef6de59a226cf0ce16353eab76b4a8b8ee147995238dff57d73", - "0xa9abdc4a8f70bc74134eed2e64045b24a1e9290ddbdc6d833179fdb4122c2293", - "0xbf0473bfd49593b516300cae47d7e603f9a2ac0767db39e2ee6e028083099490", - "0x8479dc0704190c2e34795dcb6dd447a4aa25672b9e45dd2e39f3864fc9521203", - "0xe03fe87b29737c7e663196fb33c69f02a35caed2e791f2a15a562bd2989d8cd5", - "0xf50fecb879d837e8556ebf2a5ae833649ff8f97118caa2e3b617b59153b65b4b", - "0x0eddf32c7032a26f6a0e0cce24ad9cb266d11500db33b863dc5d3470e3ee0a60", - "0x85161c9ae941dac62edc22409804ff1ae3111d9f903843a7f86b7a138e702da8", - "0xaba0acb42e5acf464de70e965b47872964d7241a57e21fe753535540b8e04a53", - "0x70de7226fe37eec9dfd4c7902761d0ee25a24748d47dd73202f9c10269bcfd18", - "0xe5f9e07e4757f99c0b3042102abbcc59b1472f45b53313626fa49fffb13a318b", - "0xe4e4be40e0d945d84851d54c2a317f0c56cb1a2a78b9efe1c58d996f9f7be4d8", - "0x5f45e651327d2fed7f559b97e56f2c954e82b843c59cd2e550628639f7f36d26", - "0xdb33bd941740ca4d547b52f857ab2fb06a5d144eef147b5dca309b6edfa730cb", - "0xdbedd24c3f6fb0f3d1fb2eefeb658076338a5274f01bf988dc65c7062f211d73", - "0xbe54c3757785c7346e4e94e2f975e97c6a9c542b2a621281b95529b58d3ba7cb", - "0xff9a08a7d3bad55b530fc2ce5b8437ad524b176f151b10366376e8752630a1fc", - "0xb8e1cc41b404d9b605c67ca266bb338f4b94db9d04f71c33b6205a7aad5e581f", - "0xbc06897480daec866c9faf1723f19873448feedff8237f8163ccd796dcc2a4c2", - "0x1681fa8a577b819397aef568125a2f81aeb94d313c5f37c8041a6fc8cd4619ae", - "0x91b95548f18cd07f37ae2b7d53c56a37dba797361f986d1dbf290e169a8f9bcd", - "0x2e0daea275060cf0d7759fea5f50a5d22bc13c2ad85b1776154409f4d4eb30c4", - "0x1999fb0544b4155419e2e84fed331c401f6a2e3314117acc21da81a135bdbb47", - "0xa35676895a52c8b1de46ee4059d57d1fb5efd480828fdb120048294347c3c18f", - "0x8892717f9562e3f1e5dd2f88b45c299ad91e8ab05dcf6be1c0de7a95d0ee7a3b", - "0x91ac521bd8ddbc2efc821a82c6336d01cca79b55c36fc05932ba588d68bb62ef", - "0x76850eae9c3e3984a06d664df14c1e3ab86532b16624e93603fa098df1136ec9", - "0x4379c37011e615085ad33e48b21781b943437e073964033d6bf2dc9fe85fad21", - "0x15cf24d1b72cf5c797531314204207e899820c07f2c611377fa4a8d2b23e9e64", - "0x964b36d4050d4eacf96a2e71bdde62d6908efc0291795432b45b3032f78c5fca", - "0x5e8abbf414ebf24bca3f1db28a81e34ab73491ef8535fd661661ff7064b989c9", - "0xc1499796680c37d46d0844a902f0ef966efc8117c2460e73f89b1d81a3b35f76", - "0x16be9d9569bc82d5245e0d2f5f2efe4a52ef09277d84efdfecf219ce5c7368e4", - "0x05c7f5f0b28e1fca9441830a38e54813e4ea3a73c7c4f7a873781040e4718c95", - "0x0902c45ce41d4e6cbddd66046e9baac2ff2b6fe4b4b5fce0ee91932d57f74edc", - "0x523cb2017561cba6cabdbcbb54ba2f97d6a52a5ada114c533912c457a4fcd02e", - "0x9df4d35c4f05636670123ee3d9a6255c9adddfd7d17cac6ea2b6e8dd33becc09", - "0x05638d9e998b4eff7249981556c9493fbcdc39f78d34f6c120cf87a0b4153316", - "0x451c25c490adda5cecad4a7569450e4be71b08e6541f0e122683ea3544b74375", - "0xa82e2fc3c1d30e7bc9f5a4a83ac3efdd57a7d05617889001c075086dfdb0d206", - "0xb2e0beed5b15c9db6e0d4f31a2111c4dcc193c0dae3ad9fd320d0e2bd4410ca1", - "0x40183f421d938e028836b39156862b8af8f88b207ac17b9f7535df0f6e7c8bcf", - "0x311e6dfe62efa8e3b5ee21ed0abb73d1ec69b357e689f22d04d7010b3e6c9ed0", - "0x7abd56b8ecedeb87fc6ae95d2a108829f8ccb109e05d75ae19ea67bfa73a13e1", - "0x46771d8f8adaea3d100fa756a801c22d277e1ada2256fb7e613730484a856de3", - "0x3463faf96b0c752199950ccdc1ba7b16c07df750fb76c10c8ecb1b155e3ce021", - "0xddd0b47ff5d1fd28ea7bef1247f683c3c2ae6356b8260376b390b0e4770c2c70", - "0xe50cc4bf0b3278ec508e7d9d0f233e942721dc9116c56d65182c5afc04219574", - "0xa567e9287f6e919a716ca159f6f59e0ebc6e27bada9e0312e4e7a248f3a1a195", - "0xfdec56f24cd59d833907cb21a4311c47d4baaea891efdfd4cc1fe48f875ba73d", - "0xda2ecee4f7f28fd5893d7db76b248fd5a5c8ad18002230177438f1209e92449b", - "0x267e150fd803d5dfa94dbd099f8960c52278fe338d1786b1678ba7de6c101625", - "0xf70ae6d7f25e486d08489d70481e7e537eedd8303b71c656e80ec04359dba398", - "0xa02efe6e14630c760bd69af9a6fb3f8391b5e7ba3cfb8bad4958421b3cd067f5", - "0xa5c4ac4a8cf93b8695d2f1b080ea00745b52a656b6f55e4debfed402226f3605", - "0x434c8b7d449c62e779aca1daba7e2c5b7f264dca8879768dc0b9c02c02ff77c1", - "0x67268d79875e46e0abd507e67b75e5cbbf9aa3de463284e96c057ce2f3be893d", - "0xc3d6c58cd4418eea6fa0e0be7de002279c761588135be2dd2dc152c6f580d75d", - "0x52f6b52e67e84c9cf8d56fd1dfa7d8e45e4e4129d33f9a942307929d28ff2859", - "0x8833fecfb8236f00abb49621694b0fd2a59a41f41035d2704a81d05a196fc4ae", - "0xca068fd3b005b08c2f3daef99d7447332a7720880ad94aaec632d54c591063f9", - "0xa3de1f4bb4c142ad685773b15e9a4e97c35267eac119e3c29e0aa36f2b814487", - "0xe8433c0f128f18299bda56175b279a5e271a8af30e3176aa48f6a734352e5b1f", - "0x9727cfeb52499b591e360f88de264235661a21fbe7242ace5d849d90bc506c74", - "0xa0c2265b8ab7baccbf56801e5d06baf4ce6af5879bd7e193f5fbc67a717cf2b4", - "0xb6303d8b21a2d08fb82154142bbd014329841a5564adbd217468597302d4cbb2", - "0xc6571041af75a5bbb7552811ded08fd4d93b8e33e974451771a629593df7d656", - "0xcdbd84961c2639aa0159de12abaef96152026ba3710385ca44e2080b5ef6008b", - "0xec8fab8e1adf154822c799dd35e2627420663b4d1f9439c79d89f360467fc216", - "0x8aaafbfb4414ab5c8ea23ccc43b5abd2349194cdf98792bbff46b7734a886d00", - "0x1e2462355a74d1a705e3c3f28d826a6b229a134c472f8d2541e9d03ac37d8d2f", - "0xd4e33157363845de8fa0564d1145e4a46eb22fc909c6b182e6bd7aba4b380613", - "0x7949178782807772e6f9160a14b54fb0ed503d5c1630932cf17cd9e385b00ee7", - "0x089d7d1b5a0f3ec62db8d1c11a95365688a47bdb14954b72770d5cdb7af3a365", - "0x69fe40a2c3b725eb25be1310ba0b97e8974b17ce9eb233eafc1306a6ccd7a463", - "0xfb4cf8727985a7d97917d3b020ee11dcdb08cded73085363f625a37ed0d8b04f", - "0x5ffa2a923b9a50832644a8bd39f0ee569f9e4ad8f50c4e1d57c9ec96a1c03477", - "0x8360233860f889d96a7e077d221b4ab6d9e3f7f1c5fcb20287ce486e9c244979", - "0xeef9332e4fdb2022128df42a2f311dc5ac080c7273e1a24b50774058b1d9adf7", - "0x89d790c825dd9b3de1635ba3162fc0a3a99467747869b409db97d95f7ff6cf59", - "0x04a088709bb769fcb5b670fa79cd97ec2dee21e62992cb2df693e1f18b3a2d11", - "0x86519becccecba9b91d0af72c176a414589b056dab914f877fe8032ca1b8ef9b", - "0xe61b3d8ddc856aa2ab755d4097ab9040ddf3554a1d8493fc5b93b5fd58aa0fa4", - "0xd8efd5557426e233870b8bcb53e0fc89fe79545d4c2d1aaf13409a7fba84acef", - "0x0b74a2eefcd26ca8322495468afa0c2ed24db0e4cb8ddf30bb84f9d2bd9dc4a4", - "0xa9fbda8887f5ab139d567d9a14c507e574352003b6fed49d3cc3ea49ccb544c0", - "0x078261958231fa17c1b904ec7b80ec7c2a0e49925a2309abc701521b90306b6b", - "0xc4d9c5af76a0b6c55ed8243985779bc77d4ef86adfa63a8ceac44efe908ed012", - "0xb02867e224a85e4a929894919fdd1f3460f909ac276278129d7fbc859f56915d", - "0x7a66267c51322887433994e3a01fdff4600e596a06e1c627c5a50c42e2bf203e", - "0xa66849c9503997ed600daabeb23c1e316d938d7c36561013f41d9a994d819735", - "0x572641c0124606eab803d11c3548ea828cf67b3d238eda5efde6098a210ba6fd", - "0x0a920057716b8b6b968bd5a28478ff99224b687bc6c97e26669fa1dbaf99850e", - "0xe198e1c691d14b3ad0a6b1888f7ae40ca60042ac91ffca0d6df3b4bd12090898", - "0xcf8cceabc0ccdcb4951cc37f625c1e8c120620e42ff3f1ff4a72e4f6dd6139cd", - "0xfb06a9c8215be6da3ade6c298f565f7c3116d12c87da1fc9fa48d17240e3b545", - "0xc967f1f8b116fb2faac0ae0760622a488cecc6498c074ee0f013d985475c914d", - "0x7351f762b23b48612b1369c3a7754ac2414e4d337f94cbee4fc1adc29759eba4", - "0xc3410fbbcda7e7bb868ed399d8950db593b7e79d5fd482a5fdb6e6bf342fe6e8", - "0x68c7626ebe19b8d30af71d3cf3635dd7c7912aed7a47bec3c369b72eedcffd05", - "0x3de93c3bb133dcfdf07ede31fb2933d8acda317e7680e7bd18cc1485f30b9225", - "0x4f2c0cc1f9f2f2c1b84448cd9b033d95f74940f6dde28dff0cffeb2840b6eb67", - "0x4e2934f4981c6a3591ba4048b0f3794a6b92bbad76e94d68ec4a99ff95601d06", - "0x8ae0d36b4e3212e9055cef96398fa706d9df90c2ced2c89c4828758b62154840", - "0xde41a196177d404534cc4b46f6b877ca4dc22a443f6a4680915e43046396e8ef", - "0xcd273ae452ad455f430d5f57d6411454fd2fef1698f9b8c23a4fec298936e47f", - "0x95c9ab467c02ae75c80cf924e81ff6c9f9f9176b828bc3dead827d4707fc5cdb", - "0xf9ad1ac9623d7b8b55dc1b363ac5e6b81fee9cb0bba042ee9802b74f3d6d12ef", - "0xb77f49f9fe7da05e6233e1aafd35cfa8042f8ac8220bb04fba898bf75b485237", - "0x6c7dd1ae1b2c378203b2be05abaff1e6f24d9a16d2fc4fc76bf237e61f5b0951", - "0x50c1046183493f9a0b860effdce20c193a7c7e89cbb509cdbfc839c522c99677", - "0x38a84d66ab731cdc96ae16a7f0dfb8c61c586bd0755cd409f4a785d426ab2e74", - "0xedf3c6c8ea853068d511c74639236e1daafb2caf96964e5b0daa22d354e39658", - "0x3445d411938c39b0168b96f8a4b0e32206a531910bbf52743faf37b3581f3236", - "0x4c418ec9d20b934a3f237b4c13682cc1638ba8e517e86d168e8c990971098f97", - "0xa610b6a8777a0467100a3581087f5bbcc1e7d4b697d9f53d00d9fa6f0d77247c", - "0xdc9e46a16000ec340bbaf70284f6a1528dbec79e4e8c371d4b04847f8c844089", - "0x34e76ef7897de33eb66e4ae37b5534c6240540048c525f858dc832b166593181", - "0x36dda3dbe43f18880aad5a4f25ec29bfa2da4a6c7f964e6418c0cd421bdbea36", - "0x64221de18086e9361ec07e4cede9e0103109d315d97684f26f05e831ee2878fa", - "0xd0fdddc2384a132f50ae0670cac8e62e918aff264277d350faa66a0e95430a2c", - "0x4da406b43c8247743de53b0a395e47204ca3f0d15f2a29d8715e11a71001257d", - "0xd0e67a0d70cd2140f55941d6ca90cd15ca6886ae013ccca40c0afc0bb8bbe016", - "0x70e6b1561209e95921f3800b1c48ee3bf3e532f5571bb2e4a5d82e9b288eaa33", - "0xbbe85ae238d623b1434dc75fb5e5d09a75578d2b85c59b8e69d635befc784248", - "0xc617186c1cc1c807b9626ae1a68d8d4fcd6b42aa153dc586d5ee2192cf9918ef", - "0x018329ceb98202471fcd740a34c7c987c2daa081b0d105b86b5b948c8248ab63", - "0xa1bd431642f0e1dd5f0bf01e610c29e5d695b8f578faeb0f511a7a9a2fa3116e", - "0xc8df41c2aae79331b86e7b007a28e2731f27f50609e9b4924678b8ff24d509e4", - "0x377c56c1c8b9686225cfed2710e4934c17ce890222c7482e7fe7fc77ebccc52e", - "0x0262617467f33b9eb0f3b28f368f5d08483a38dc9423510442eb88537c6d49f6", - "0xcdfd57a4737a718352b19c48aa72c41b2be0a7267ec7abbc3b539c81fb5a4b7a", - "0xace32a66c3c9540cbbd81c26a429487e3ee135677b8a43ee7468c0fc0c584c05", - "0xd4a50046105d5d01c4c928a0ade2d1a82db88ec52dc1f02b7c2daecbe9985841", - "0x350c5fd3734cd35dc6e02080e087858bef8d8dfdee44bd8e2bf75aef795a961f", - "0x5e597461c6e1468b3056a2cd4483e85a8b38dc27195ba60d50ef9952aa640a49", - "0x4f9d19414803bee7dc37e16413e033bb710543d86b38d6133adb1ab4ce90cd0e", - "0x3470068fedcdb6183c16ab34a1743e2414151eeb7a46d71961c1359adff1e214", - "0x66054a35bf4b53cec8302e2c94b8be80f3692fcbee87da4f894769799453771e", - "0x752d55b28bc47a388b098fc5b6b5f60ffe153459ddc1c0da007cafb3be151be8", - "0x3b969e58d42a927a7b214ed99c34ca6a77234703908bbf4ffa17e17e21fb8cc1", - "0x6f0157bcb211940600bb88d08f026fe4af881dd11d8dd1351ca014c88c3db72c", - "0x8592dac47e72c7bc32099c102a582c00543a0d35f2dfbdb9b57068c79d077815", - "0x8c95e048954d689645df63ae447101dceed5e75d154502c61f37990e5a97ddca", - "0x9f4a5e8e60a88088c391040bc01c46538f0cfc032344a882bf5f00cfe1b10d3d", - "0x04817ac392930b9b4d81cd529703b6688717da8101fa8a327fe49c503c0694ea", - "0x446d3e1470d3f965fce24932f5f1824f998c9cbcd9eac1c9ed7fc7a323658bdd", - "0x8603a9e9b6b852768b751175cdd2b23e354777e38408903b42d67a108c1b0999", - "0xd04177d8e00ab233b6336da228ac1b9d683128c66a85f1eaf2d462e7d52c9ac9", - "0xb01c3a41c7864d5f14f7b2f18bd5e4576c2d4d296d78927f75dcc50f488b54ee", - "0x6c7f1c0024685c819230e8accfc6a0e5f967b440d069bfff8c79185f152f940f", - "0xa2106a57c2faaea7c6ed8c7edd48e64ffadca5c03674672da9a972b4d32ffc7c", - "0x2c245fd6206db27c4f95be2fc01b04d24febc0e7781efb69623bc5214e7ddb69", - "0xf4aadfddb0d2d00668dbb5a7aa1cbd4302d0778d3697af4cb2ceed68e5dd1639", - "0xca6ff39151d73d4ff9aafb89ec0843e5d93eceacdd69b1c95cfc745857397c15", - "0xa18081aa619e1ee71c310a810c8b3198d515a0954edd34994fedc974f24bd0a3", - "0xc05f8f372ddc52ad91874e45aa48683c969331a3c472708714c19af1d8e3dc07", - "0x57a2027a86cf6e524d7a4e7b0b920a98ddbcce80f018bf402f7fbe73cb366614", - "0x3fcbb5d3f51987fb786b0ff83f39526e2aaf1791abc5aabf2f11a6ec8ea4bad4", - "0x61dbfda0b2940f034dd239375ecb5c8fa7385547a6ffd4bc5951bca8f5c8bf0e", - "0x662820a806693485407041ced34740b6ed57649bdb2d346aba5cb77108f697bf", - "0xe368491b3e2fd70d2c6f06c6e05a41f2bce9fca28df109882fd1bf3e47c82287", - "0x6cedbe3468d4903c73316b43534912e1b69cba4623791121b309fe37b6ad9b64", - "0x6517d421dbdf6e9041df293e6112572b8229208430277c85a7e52acad8a760fb", - "0x8a1602ba31438ed89e0f922aa165e0740e9cd9caccd82ca7ac79c176fdd0a2e3", - "0x09a07f8791bc59a20a326a727803822d1dd8de5e9281870818469145ee90f114", - "0xf6c3a82062633e2072f5b2c59b78b3f6613663afb2b35546c1240c696aaff8a5", - "0x1b4ce49dc9f835afcb3c34e92caa9a30db92c0fc2cec32c1746cc5eda1caeff0", - "0x2bea42fdae58791ac76d7bc2fbfc08712cb8ecb70b011a271572f047a678293b", - "0x01964b0ad4072d281dd451f41ce9e2d61f990bb104fecf29baf012779652f8e3", - "0x773cf0d41e03244bc688be7660101ba39fbdfa2cc94e6bfb02a1dd291c5c7265", - "0x651f0346eac119d14bba1a1078536dd986024c4dc5cc5953b4d9cad09735f97f", - "0xa4389eb16c42465582dbcbb6af80198f8412091c6ef2ecc7ec84c093f8925306", - "0xed75036dbba0069f415af01cdc723c0901676182960e2e2b51994f0e0c6ce0e2", - "0xac433ea4fa502fe9d126115a386eabeb86df2c895e3908bcd02a9d7d125dcb00", - "0xa65d04561f73a2f6e1f107c3759143c136b12619ab498ff7ad31994e7db5438b", - "0x6d9815c2f081d54013ad118b2c0ff456aa1396eacae1dffef461c2f2ba066527", - "0xab192c650d80aeba5b885a67d07512a6f532fae12ea69a3eb39af7da95c64b8f", - "0xa1d329666928263f1980f72c9a21414c7302fb5e77cd1dd7a91c4dc5d6d748ef", - "0x9e84e47ddab8900337e35ae9287dbd041d0b1d059582f95d375f3231eefd428f", - "0x89c11687a6c5e5a5b45255b4a8ffbe337d8706470c3a39063a960d103ade6af6", - "0x3547ba85cf24a64983968f8587f28bace1a797a93ecc16ce6787263f0de18185", - "0xa98634b1d1c39ec41c7cfa6a4f353c4c276f0618fbb3bd257008b43bb33b262b", - "0xec39ca2cdf7a3798a1530c8bd1424622822f6824415b2964d0467ba313faa940", - "0x8e66c39bc71e16085bba945ac0aed19f3f169d9d2dc7c0ec090583bb896e1a51", - "0xfd7f6e227a8c9025a57c73ff8c82265bc69c9aaa185eebfa924ef608234f1937", - "0xf55d1247afbfc35128a41465800daf2f90c1d57866e4bd37f92bc8278baa95a7", - "0xe82faf145ba98fb5af7e32f5aa90e7b2aafe9e2074c86bcb2aabe17ff35a025b", - "0x62abf9c26e0e5a7c2ca3047c8ae9f27c5215846595b4f41aff72c8a05ce42549", - "0xfc5cd59f7ff8b54d787cc77e29af8f9f78102be33ab4fd561481dbae04426b3d", - "0x69af5e5777a5ee39cc76a049e268845af3e1ecfd0b8de8644197469460880a31", - "0x8c1ea859c343697564a88b170973903e588967d89b63d511f63218bafa4c4aa5", - "0x8f9c38834fee0d5653d4df327232737d342f9b389df61f5cd377164e38a91e6a", - "0xbdaff64768fcdb9210cf8e33fe94a6cb38ba068c2d21d970efe6cf5cfb919eb1", - "0xf64aac8df844e56afa1413e9765a955b6879af44202a43e3f9aa15db421f6643", - "0x06762bddba350befcfddef5148ea1f05729760cafe5f018eb71285b92e30ad96", - "0x536ff0949c7f34762613747c2b7d14f605d6bf0ac328346e34b4fae516771af3", - "0xc30d536522242b0b805546882d5a283d517efc518abbdd674156b6f67dbaecab", - "0x818fcbac4a40b856bed993b9021286fa5f59f0b76b25af731f4123a83b5eb90b", - "0x2e6c3d4de85428210eda505421b253bf3964f5b2403084a1202d940de2d6dfdf", - "0xb31f7199cc69689b24ee2f52c8b50746ba3ecba904c49e2b352f8d6a64f514f5", - "0xf910446802e79809cb62cf6d958d570186ec7a477a16ebf6c0eb45c245c514ae", - "0x36e60616ab618daa724963f56bec00da5cbfac517a41f291da6e6cda890d68ff", - "0x4ae4e0c39ed59901fc74ef1fe52643f1f4341457aab052be71382d9945115b47", - "0xf5038c706b2cdcb2337a88ff34ed3e8e3093fe95d48e0342fb3bc3c0adc2ce51", - "0x021c48a8ce17f06cf41f89033a70b201b73d2fdc5c314bc313e8cff57cda9fd5", - "0x363c94da2187a9e497c77688f70baec16e64c4454db1f0dab37925fbfb9139c8", - "0x2d7c8407dd4ac5ea3212b18e103f10626d8bbc0cd18fe261409043399f026b99", - "0x05c3dea4c6599a259c3297c51c38c13f618ee5372c6b43e1945396bdd7a91229", - "0x7eb49d1da78b683659a33b9346c65bddcf6154043c97438274394e3ba868d0ea", - "0x17c008f4a8fdde5d0dce03adc57310580912599fca0535a42144526b4a630503", - "0x0011edd3b9175a765f1ab25a3123b91ec9ff9f233e8f782a2001ced391da2f05", - "0xcb62dd00e7a67019c782abd7e4bf7e3eef12614b03f90219434bba24e3070097", - "0xee086e5721066d4d8886e61e228facef0f518f8140926067be9f0f55b261558a", - "0x683c738a40a8fb871f3f7ef575a422d9fc60511ef4c84cf0fa9161605c10ef2f", - "0x43a4ef42030692e416d28c72f899fa83b4e3d3066fedc72d8c1ce0c3f7f60dcd", - "0x964a579e0415c2875382d1dc5953a54850494ace6077f7ed247f00eeada0bf1d", - "0x286bca4d5a0ce6fe9c9ecab2110fef1c13f71f8e11c37ab5667e164d2f4cb3e5", - "0xf2faf12c85d82d434a5db7d43d51bc99508bb11db731d7a22136d08f57901639", - "0x645944ae04d68cf3c993f75d75f217c8a78531ea3f17718aea08c849bb705382", - "0x7e4c87b6078ae798210fc39cb080772ad2034dcd9ec0f7a28b2de7d7e15377b0", - "0x4760f5e4af303ec759aea4fc2add0759caa3ae96bff4f727c0654f81d02a763f", - "0xe2f15372e72f6e8852c7289b192e959fb797fed0fb9581afd755e4352ec288e2", - "0x760975db833255fb7f325477153462be406b63ce08e6ed0da0dc48f9dac5375b", - "0x2ea20f22253680c49663ee8df8c74aa2f0703223c5d0dcb3db37b8c3ae7475a7", - "0xe7622392c52ce0d6cd698806142e6e26c9d86c81f1877bfbe9022ef150cae57b", - "0xe973760c42ebed38e37252019fd73f4ef14f2503bd3ffb2d859124b7e25ee557", - "0x7d0c3cb847b2cb7c1a5341e0214e830ef886073983e08498f89617b5833c22e0", - "0x5f5939c73fb684dd39227cdc88af51936e59a9881f8fb63e071366b9df4a6b36", - "0x081d5b53b84e2fe7f8cb04a6a6a045e4c11dc726710b6e9994f426fa9d32ed9b", - "0x436e895e16cc13777cd0b740538a64bb3a1360a7038e6fe8efa3ed3f590d05a3", - "0x55a611a3cc6106a86768053e268658cb541c8ca17a66a4a90a375772f0b5e016", - "0x583da6ef703398a2b781acd935f9916932050fa0cbbe1548b86d40b3b1941fd4", - "0x055531e88f18a0d79546a3bf00cce987c33ee0f97ecb7550b3c301530b279bec", - "0x4408c0007dd2dabe7814546fdc336f3ebc5a1dcc7daa1d8a38a9db819eb86374", - "0xcf6e7dab9c72babdc051fcf35ea89e793aa6fe380830d61870cfb4ebc3e7d919", - "0xdb02f15887419e3f89e1930d620748ca53e7f0c026ea8b60cd6e9ebc62f9da1a", - "0x4d1bb9da4321c7f2962a275272c6c1b1c3da6ca9549c19134dfbd43cccd76359", - "0x6ea8fc2a9138c404993edc83b3f54b0d5d94c85367c8e6884ef5d889ccf1bfa3", - "0x4ff5c77a56a90c20872cc7ab5b868557f7fd5d0103503d4217ea2d0079690ef9", - "0x5edd2bd35b9d24b9d5a3c68025061137c82e04261291c4d958d9e0e9a2763329", - "0xefc287bb7ef397298052013ab79d5a46a3a80a55f60e42c66746c9a25ef2dd15", - "0x986fbdb20fba887f3e4441a5b4b98824e1ab4df9aa43cc1d151eeacc55bbf4b3", - "0xbc70117b2b1204e3868a610bf3d2819095185245be082c96ffd3e0c2e406be51", - "0xaaacb52b835b235c76b02960517159cd1f2fb08681f13c8352a04820a990fbce", - "0x43e8b0fb11a657e4afc022573de30184947153497936d6cd47dfb2ccb61bb110", - "0x63fc1cbad428e16b1e2063db10c85ceb6684680c044adc2aed184054492cb19e", - "0x776674ec78cddc642e69ee9b16f2ee876655ca3efaf6a24a72c99a998d55348d", - "0x09dfc550074184d46ec04de265047ce529bdf2c02f7b44e428742f674c31a0de", - "0x897263eb076edb3071a306922207d17cceba6ad179d0f7fead2912ee42c69774", - "0xbbd230729752cb6d078eb853681e85823d2946095ba318d44b28eca479bf217f", - "0xe731c6c7938b7f2dafa8b5935cff095289b993d5fa4dcbaa715e6817d83fc823", - "0x04fe3b2d9727b05033eb4955f0c6693b0e63de665db904bc62b4dad5ce59a487", - "0x881aec4ca776991226a24f1ba9c736f9e86a051cffd1ed42d563c01a602fd126", - "0x9dd5adf0aba333d3cf13bbd8636dcec128911b675f159d11fadbf75137e1b766", - "0x26fb6742fa3be87da75218a1a138a3ed64cfa939791cbc718c181e226b5ecebb", - "0xad0c9794ce6109aa72c3b0ea6110fe96191ce3efc89bef5a99696ae84380ef3c", - "0xd710b6759276fc3149afc75ede514256c092a9e044555ece9fe27e27364181e8", - "0xeaf3b11fee973c4aae9fd19de92a7b14ecd347275c64b2343a2e4f97d1204785", - "0xcfc68b631ffa430c95ea583a1a1cef0a43e3ca182deb646c399a451ce55aa921", - "0x52057b9108fdf67ce8b7a28596e933ff57369b9ec9f1183b79cb0d0c9f32d651", - "0x1b99aa1987d512c71cfecbe56d6bdb4828ff254d055dfe1b23c472ffa4a6c3ba", - "0x64968b18cf678d322a84d54b2a91e77f44c108e2d722cb1f52708cfb824d227e", - "0x51be4bb756c2a3b74d4552310d49c7edf084014ea2787e349bc32143295380c3", - "0xf98742fa2e646e8add000e8ff892eae0fbee6f61a2a200eb129758285938a881", - "0x0f963737d026fc353f0576ae146a0dc7a8a27f31138b3753101a07f0e833f1f3", - "0xc3af9d91a1e44a3e865f44e75cffd5e9b135b04fe6d423895fb1911ec08573b3", - "0x366072ca53e1b7c312088a2c3504894c2bbbe1f1fc3204e22a22b5b619e09a9b", - "0x46ca1ff3099150438131eb934083404728921e498773b5d91ea59814e8078588", - "0xe2b18d6bba927615a8f9252188c141864cd61cfe570ba65f7290e4ac0739b403", - "0x6844fe922e79f335ff103ec551476f4433d4617bf9f3e25efe5340cff0c9406e", - "0xd433ef7f7b8d1d517815e5f77f95a2f3e5100a08a1ba9e5de78fa57076d1d307", - "0x6a2a72db31e9cad268f13dd07c3c91d2c2c23e0c92c6f1047a6f3d59f447b821", - "0x9f0ceb8da593cf1c70f4eeb08a3f7dfb6f682ac4bc1c175efac43b10e100ac46", - "0x5ac594092618aeb04d6ab2c5b2612f1d4ad57162e62aff2d04decb0ace6658ae", - "0x003792b77b6c078c98e3ebdc29014a2c24c238a79e71ed5e36e27c1e273583af", - "0x15e869175252c89249a7728c33bb8e4c67f90f3c802d80356d25344ea05e9249", - "0xfa67b16cab4a3f1f8c4e8f6b3fe98f5be59e0f13ebc50d32f9d1dcf55fa4c984", - "0x3259027d8095d69e4bdaa0ed9c7d80681f4e40222b1d03347a141a634de40344", - "0x8aa2f2b46d0f85d66ebe39c00fd999b67d576e2fa119fad6783d6af4939fb25b", - "0x0f6073a427daebb861b9e1c45ab46ca9b8410e8f094137b979f6d17662fe4ed1", - "0xc9a4e1be21bb3dbde859c1bbd9ef9b63f8312f95c3d961414338ee8f9c8611d4", - "0x1c24d8de991c7daffe35d65f90c9eaeda59163f481140928c737d1066a95c01a", - "0x94f41fc0f4257b24ed6ee005e62486dff71f6ce8176b9fddede2eaff25d9fe55", - "0x9fda793acc69eb63981e28716bd20e8fa3ac091595929d943c651f73f6559593", - "0xf7eb671c5e563de2698cf69b2976e25a91c2c462eb7583d754211b252b4f8479", - "0xaac71c1761b78cb396167f177572144e68e1051ca3c332e94514041b9c7833e9", - "0xaec9323ccb0314b0407a591c05a0eb83e48052eda78fb5e9116cf32c902a79da", - "0x73a2019eee50ec26354b6f7d47416bc10982ac44ef47ce4720b6e73aed28f869", - "0xa45d192de4836829a913a20b14a9d8c95dadc04edaa07edd2599f2a75f85f5f4", - "0xcd8f6adf06fc2f226bcb713fcde720e205e4bae7a188d5135e3728d752835dea", - "0x59614e66b31bcaee5066f04bffdf318879126e7bbebdefe39b921fdfa5c1ba67", - "0xb27c406a25b24d78aa543a26b8321e43aea21523c7805215ded3d72c9043e0c0", - "0x1485ccd46c327cdae534d95c4b61611213377dbde0728f2ab309a65b69012deb", - "0xfd69566c9456b5af6a515aa031b326011cae67e88708557cefc5f1e67d76cd49", - "0xc7e49938469e6a6d27fdde544dcb48ef3f761d60ba4671163f505de1ca644228", - "0x96cdf2b037a658f75433883813f9edae930769dde761fde991e141fe383d82e0", - "0xc0ba35adef71f25b99450a0bb0a46b450dddc56ecea4c831a53dbea55463c594", - "0x97de7293e71b1779b23c3b51fd85e46d7ac86c55c18385d9c54d3da1c458a387", - "0xa72bf43cb3dc7ae59052542fa2bb2d5b921f49ac14485c1e9bfd1286af59abc3", - "0xbe7d7862602bb9911073bd4a8ec5421901a3a66698ed478102f02df87727fc12", - "0x7d17171e3edbeeb85326d785c2a68d6666526d8912c6aac44bf16fd0c0ef9834", - "0x3f3a36b17fbcc5ad93d99e71ac0bb2acb10b24fbb914773a0991c52287c201ce", - "0x0ddcef7f14d933eb8b28e5877e71595116a98e408b416f01de80be49a8e52957", - "0xccd5bc27319844f5b389b3b15e564ceecb55a91d748f145709025913fbfdaf91", - "0xaf27df2c5e88c00e482e78e44de581fd17edc2ae91e3b7d1017badf00aa8bc51", - "0xa850950e04076c8653eda7cd11761d6a8e9b46a070ece44dcbf5b8e99d9fb0c3", - "0x6c934e50d34130b0ea5d5776ab74fbf4ecf48f8a178115f7e93670599b406653", - "0xc6d3df6d3c0ea6c8573b314e7e0a8065d76d27333c0d6032b97637fc7013aa5e", - "0x4f7cfed4bad1d65ddbb1e28c8d9814450af8d573c0f1880d5647eb008a13a44f", - "0x0a3162cbd7a81248f449393fbd62f65ca948e9134cfc722554f28b2ef7ba4f89", - "0x6cb294c5c312be01110ff0566dd76d4b36e86c76587084faf6ff7f28b717873a", - "0x799574f8dee1769273651e19b56c17d3aa27d3422feee1d18080608b4882e2de", - "0xec0537da4c25bb664270f90fa72c0ede19127f7bfce5724762700715986f5b2e", - "0xb955c2ff50d42cce782c991be3eef70de85a1a382aaa6f7775c456d87a987592", - "0x79f931169917ff38a71b45d85a5f8e068bf45e8ece7a8e5530a0b4eb01efef9a", - "0x8d20869224be1328197ed93a88fd53d0b31ebeff49870bf7851d6e8dab77f730", - "0xe6323bef31280b55572d866f315b97f5be96148a3d640284110a23115a59ae27", - "0x47c847e3a20412135b22a2bed001bd32dcae67a70e5681a5e14a210553eff25d", - "0xb71b250754e11a7c9fe804a33e15a662321d9449fc63b1038a17d58273fab04a", - "0x89128e0b4180512ba5c75216b3030192d9b1574df87f1b926c5c7aecec92a7d3", - "0xbad078b9e9b0328b48dea551a962e437b51902c056c5b0776482712f9db786bf", - "0x4d5aed467fd88e4e026bf006aca0a78717d6b52f311d32449b1104f415bb5515", - "0xe72015b43036bfb62431d15335e719c549c61162f4879c0eaa81421017922d15", - "0xf70009d15065bd1570ef3fe2273da35e894206361590d38a4bd414ede7d69d06", - "0x2a4a2d96e00f06616d77b29a72d7c494cb6c29f50811ea616452ac769910005b", - "0x21f9218ff5737a4e6e6a167f83691dd6445a23732cdf4491ba7e24747fa0391b", - "0x26461e3689a21987bb38091f0fdc4f371002f4a84eb3b618e8c7ffdd6b3f1a31", - "0xd683d8a1f060a5e9cd282d641dd852ae20b7b1c0f9ba785d5ea15b234ace728e", - "0x6b4c803a6643293b9160d82212e5b3405b69a4115dde4de0258a24832ac658bc", - "0xe9a00afe1af35d7811d82e2312d02c5daace99f050e42388e76e5c1b745d8779", - "0xe756e9edf9bb83f450ba9791a245adcb89ee4fe56770d1894086ed6be3d089aa", - "0x729d6bfa3c1d41089d53e08164418779c9abf94d8276a8a8e7f1e4ff492183bd", - "0xd582a6b03425d0ab29d1405232e088822467053d470a99c3127c46ecc02dc93f", - "0x69ac67b95b725e5102ac7ccb59b46e4a4457e368b90f80624d84a37104ab166e", - "0x8de7f79cb5eb8dc096e9307968dd1b46acf940994dc1fc27156c5168e1ae5364", - "0xaf5fa4455d5b4ce635f9394f1ad4840e4686d80dd52696fc392c3eb89b7a536d", - "0xcfd7922b5650cab0a29e0468cf1e816f741b8b7af1768308f78ec0ac800870fd", - "0x5e14d14657d534de1846182929bcbe7c086d0bb9c418019193406ddaf34a7e5f", - "0xd727f88dbb4a62310cbdbdcbbe40023937a1f681b7d8f6186665129b9cbd32d1", - "0x5739e5a0f02a3239eb0f2b1242c7e8e0042bf7bede814cfdc6775e172d34bcde", - "0xd426e8bf6dc9171c6850a492b883bd4c92468b861f0c539ca890e444f854f44f", - "0x8f9b7d20a62ec75492dba773b54ed3416ff18adf070be3b3a35a803da5aba931", - "0x8af025719c903aa861de42fe4d082321f600c17e4b3a5f342ca408787957922d", - "0x43133e4fac22d85951ef650fada9a746b464a0659f370ee40ac6286d5ac3968d", - "0xd95ef78d2685255b58a7a0a581d953837b1d891f8764d2842c76137bb8f92628", - "0x5fc07f1fe21167cb65405edef11d30206ed7907d396252ed460365c9d6ea89fd", - "0x3b86a46c42d2ce31c39ac0bd352ac1feac8705e825c17b06d0f9db4f15f0b793", - "0x3672191b6d718f4ffe5e17039c25be00b258336cdf959abcb1615d7e77fbf415", - "0x017faf0c950fd86809e7a0acf0d7dea5b13d41b21c60d4844ce57459af471963", - "0x5236905646defeaf3666262c1781392fbafc496693b0f26167e14622ffd5e224", - "0xac45332d1c62566039b653fe67725544d531d0d0d385cb31d18d461e36ff3c4b", - "0x2ddde66714e4fefcf8d1130e2847d92bc758b39fe7a2b87dcecf9b3d0d1bc5f6", - "0xe8c6c341b96f9771c5897a0423dec64b2d3f57aa5923b0f694988302c99c1864", - "0xd31b332e66e44f8804ab8d224d179b3dc20f718dcc6b254273f2539311ae9038", - "0x2776a9d5ded89c9a8bb243b41bda3760dc173c41f16bc477a0c6e2de420f7aea", - "0x19c9b95e82cd6277e16bdbb383593459eae5584e8b746de7262b447f313f1052", - "0x6d602a973ee15804f76848823844da1ded9e2fe49b689e4e4c62948bbfb699ed", - "0xf8feaafdb855524369a0d0f011cee5f545b7e2dfc210148b13f84e0cfc5a7a49", - "0xe242c86f0d4421c505b4722b38c13e73c760d0d82bfb77fe6677a738e3f19679", - "0xe1d5352fdf59b76318738f0932c4960a590e46a0073694d9518a6e8a779206e6", - "0x7db333e369dc65cd5f8718ef0cbf38def00cd60bcc47c1ce2034203c6b2f8b38", - "0x1a57adefa64ef6f07306db76e9425624d106e73bc554822cb99b4697bb317f02", - "0x4a6acaff19b541b0b2fd43d9165f179fbefd353f8fda107d53926e71ecf68a8b", - "0xe5e886e9b31a3378ba585b16dc81f0d5cad83f4fc5aae85945e9a8898dd038c7", - "0x4d59ae8cb31c36c39c2aec16ff682862c097aadc499da6de1ffa72a6ed87b4d2", - "0xb92d833f46038c267f09c500c2ae557810709d7db9bd210ad4df55c65bc0826d", - "0xf1b971e2530edc4703ceb21b58a750a37399c05bec8a02409895af98df7e5e6d", - "0xbf1508b24e5d01809d39c110816f3ad5d703ebaeca4f218b24925dd9577fad40", - "0x2e25a66f7a580845ecf04e66fdb0ddc0e17237f6812f5f2a1640c3511c9f9db4", - "0x5e4f36c5ec099fbc35ca767f548304f8631700326b3a4497f8977d72c3727f13", - "0xaba60fa3aa0661858a1143d01d9408834c2be440cf06d72a93e4df1df6617853", - "0x42d149eec229a03ad942d1745ec4742f9f39a03534df077977f3f4691c939eb3", - "0x6b276de3cd30f0d7659292ba6e8bea190cc24badf88c10bf269fb4d6927b16e0", - "0xd978546ce32bc1123773b6562ae0a7a55b7d82c72f2aef2a56394c9940e7cd12", - "0x297a80b1aad7e95f57ba4f31c4835728a48f7af0e9adfa10d40fae8bd18cce12", - "0xef0d03d9db22500fae80ddba96bed81bf4769e645b25dd717c5ab0748e3da691", - "0x1a094a2ca17fad3f0e2703cd172bcdf4a0ce28e01840655a0bd19cd398153601", - "0x78f08815cffd7e21af3392d2ba9ce33335d8f25758631f9eb6352b826723d093", - "0x827646562aaa1ff4a12d97e59da6aa7c9166418dd2ba204e448bb12b321b7be7", - "0x5c0e92edb551cc6d182b35b9408d2538aa982b105003606575b5514c8e40729f", - "0x416dc98309f2e650eaf9a122508c163cc9e3c9d719812e0a6388b84fd48016ce", - "0x4f8382c1eee160e6877d95ce97b3a53cf7607c59483176cf55b40b47d198efcc", - "0x8acbe66fee2f75c73255b39489f15e6eaee75585426406d96ce786bf53076b6e", - "0x74ab3f7057275e0769c3356bb7515f108c69b42f4501a9d3873433e22639a240", - "0xe0bb35e880ee793203ad5ea844081b6fa99eeed85f570b6bfbbc0efbdd7f79ce", - "0x5761b5e7f8872c8cc13278f3c2ff836c325f4179b89897d0c5b6846752c312dd", - "0xeda698bc3ec12d8004406a7c7c9e3a16fa085a8448901352ce3713efdac58930", - "0x22138b1713dd83a25b1434813492910fa8e54d8feb9eebe1aa5d2bcb6ec2c69f", - "0x4ce3cfc5b1fe6f87e9830840e85b81ff6117ab62300953524c39bfdbf7868980", - "0x6a6c7372b5c90808a6a966c0b90419b5efc739e5ad5ca1fd0d6c9583ac37f240", - "0x257fb60e826d4a92c030a645375fb46b3790c5b318b56b1a299e09e0e7ee3911", - "0x5f577cc4d21c818bd18e427e6d9ebd8f207fc71ad5f883d0e24eb9f856e3e10a", - "0x0f387595af36d3d5df451ff3de879016c6cf575fc1f02d40d547ee91f6aa36c5", - "0xd8ae5a19d1327025446b5e16d0585740839bf32d9c5798bd39e3e0697113efac", - "0x10e80ae2881a780061bac8bae4514f0df0077152639aa0da1b9d8b3ae234e184", - "0x377f9a9fc5a6fdc69cc76f6f36282cedbe9c83bc43dc345fb49db28ef6b37cf9", - "0x2d52e3af5f7ca108b3ac7cfc495b96e05e2d7f82f7f83ee3234c84b77a1874ab", - "0xaad9190dc0748ae3f78e9e5a3b4ae10eb6bb0b2617cc2d16ad3806bdd994688c", - "0x83b863f21344a6a576f805ed480eb72d3ae3dd06a2979b539a43f2c955429a24", - "0xd4d0622b957b87f71610bf3af65ab018360d320ebf328222df10899830ca33a0", - "0x7ca92b8bf0337d0bc56aab4c1a57e29addf6f0a4b9070482f06a7ee89ccbde84", - "0xcb9c71abfdb931e30a67e7b77d247be70b005076b64fb138be12f260f9c73334", - "0xfe44663a9c2067fe4bb8b43d241438cc63af9638cc1859b5d4c7c7f89318e558", - "0xc962b737dd9438cff5272e16038ef0ca55c4e1b5497d75ef5a0aa53ac6c09448", - "0x2b3a80ef8b20644facd31b5d1618814507c8f603dd8079ba40da09b550f3a2ad", - "0x4664f49d6f114ae491a0364d007724cffe144f4085d91f24f8d3fe87f5b8e393", - "0x1e2456e2e055decfa092a838d2052b12527c6e56b43a787518b121b61f7e316b", - "0x2f45b1ef6d6ae7196818f81278f226f3e0fd535d3a27b63497a6fd208f195c0b", - "0xaf265121e6406f84f7711447d3118c02b446c0d6db9c4ef266208adaa1acc0ec", - "0xbdf275c92443f0755251473e89ff46d741681c7eb2e7811eae25a0f1853c0bc3", - "0x5adf59b0a9cc02fb5bb5c469a52582efec5c317ee1896d8df49d15c18db944d5", - "0xd9aec0aa26bdd240b709a688a0b0565f3543a9b3686b78efeaf070140f2eaef2", - "0x1f4890ecb2250b7ca57a092a0a40b0e4b0abeceaac015189e0f6e9486ce4bc7b", - "0xb0be545c813daf899627b982dae9edd9de72ae54094dd8eb25570423e5c5dbf6", - "0x0f98f4ac26d2966ff4b129950dfcb287098fef2e60c3bfeb1156425fab8db92b", - "0x5622210376d1016d0b7615552cf3d66cbbc2d39d3eeaa2bb100cc2328a81cd95", - "0xe3523e80affdd0ccc3090ce202e7aa408ebaea9fcaa1e705242b948eb15f3cca", - "0x98154cd06a09aa5f9d3e4b4c824f1efdf6eb5ad4b5c0deb1a16a8372bd073a94", - "0x6680dde58fd0b4ee4626a8564f827c8c2cb9c7d0ceb4437412f30a15ad486689", - "0x61f7582008e42c3bedf33342c9c47003a6ce9264c977204ab5ef778f6e6d234b", - "0xa8ffa5ea4717d9f8d55db7d5626799aa102f1e340d80c68896a14204ac38c8f2", - "0xb83aed2db0ce9eb79c45259f66d72cd00546caf8e39e5efe91bd03ec64cf96ee", - "0xae616f4c1416b46a21390e0bd5336935490b9894eaa7c653fd9909086a1df5be", - "0x18f84c5cbad9477e0571574a0bed0714d3fa587ca21e39839a95752e6e3f0299", - "0xdd5d5c64b54437f649d7004d54863160da8db8518ccc99ddaf6942fb551dd798", - "0x72b7fd1a0758b72010c216bc7394a19c1a0cb6620386a8a91c21d3db69004b49", - "0x2dafd23aeae504b4ebd17ed518648939cd63f5e0e7448bd8c0fcc78dceec4059", - "0x787827158ba2f53c21c6d05eeca56fd0fc2fc08026bf09c76cb17583340944e4", - "0xb1a4b60e4d00c8189d940ed2fc070c1238d03d58d572ddd029ae794e47352df5", - "0x33e1420671ccba2d938f5b75d45bd31d90c5b424d9a02e7e7eb4ca60ae402443", - "0x094b7129d1087747705a683bbbe61b13c546decbed3953c7867aef485865c7df", - "0xde05a46ee5e26ff79801bf32d1f4bb4dab2127ea60f7bb037dfafbc16678e1d0", - "0xc81b90e47d6aae3641ddbfade2f8146324456ef372da470b319528114131743b", - "0x2b835f2a36503a9ef3591f1913924ab134d3fba8c95153f1cc80d503c74a1af1", - "0xfe99568c1fc3808ad05d99fe2261b27308c97bb39a965f96119e012ca8ae63e1", - "0x2bc9ac9d5a461286cbfbdc7d6181c795321ea0779835322b5e09381db7169be6", - "0x6cf2449053f134a8ae48a4f0007ac1f8f39d30d9c3269155b8922581a64b5d43", - "0x7ff755adbbfee435992589e1eb09e92532624a9888375497ab3f46d921aa3aad", - "0xe708615d47cd53d7856688d2ce264311f7f94631f318588726b88ef29dafd93b", - "0x96e1a15735e93923060b3954925e8d52b0a4b5cf6516190efb907bdfe6bc34ec", - "0xd33e1c73fa37307c1199ee2dcdf3a0e92152f3f6f9f667ebafa190837a77cc66", - "0x57fa01905f12ba8decb5f5beda857a607e32e9781d39a46001679f537d57391b", - "0x2e5f2df2fb0d327f4b574c0a37c243b7fb4210af7a0796cc2c880252ad8438cc", - "0x26714de3dfeb00f0d8c27bc6729b89d3b55b82cc1eed2999f742c89fab424fb5", - "0x7bd11bfbafe1e87b58428db1f819f4ff2455a4f90db5e60e3d84b28d818a1173", - "0xfcf5fc7965f836dd04e54a9ce577aad76d10464b678259ef1c8bc2a0a0c67723", - "0xdb2e6587cea3bcc6f109e350d6c138cf919229e884a2597e4d6e599c26625736", - "0xd23ff7e12ed5f3177dfdbb51edba35d879fda9fc4ecb2c6f89bbd6addb772697", - "0x0a64a15947b2f5a87070fc3b8171485aac3e131619fb8c88b6bb2cdc1969a5f2", - "0x17d617aa1c6ccbd70ead8237a312152f42926333e8d9165266c497ee9a18da61", - "0x74082588643fb771a733c66b4ddbefcb50daf6742323e05ef4a2604c5d56eb83", - "0xa2cbc98dde5cc72ef8b0d222037f01d308a550ede1f3097c4bf7fa3e36914258", - "0xb7e7d0fc915050bcb17f685f798292ce93d3776096c2b3a252f0fafb4c799230", - "0x6f4f736ebd9941ebb79da6456d8ad423a3711f26d3cb643b81c8e02fc5689af1", - "0x21a21b15bf03238f62f610971eaa96dc5dd41ad45a6be2867afe6206f7ddaa20", - "0x459ef1b2c13a6bf1ad48e62b2020851a4505bcb88923bf0d5ec2408c309b973a", - "0xccb6429f43f6447cb714d4bed7e003239ff6926804185c6c51aabab4b355939f", - "0x5e580a7635cbfb695c97fd68a118ea37680c7408f1504b723189470826016f8d", - "0xc523d6c489334472d1af61a7ba1732195edc25bbf68eb821d1acb14ed5c98663", - "0x31a01c69fa6a86680831350cb67fd5fa06fe8accbd5cb6e2ce0ec689dbb23114", - "0x4fd4d85570c94d03c49e9aa60cd6bd6e684bc77d3b04eb5fc6b2b7f206ba9bc1", - "0x29b8a2ddb612c8c135eeb9f3d8791b603e7bf4d860c0d0b6bab53deb22b2070c", - "0xb156a9272bc83b3b85b93ae2c43f7accaceec85e1d77ddb1343b18356e00d572", - "0xcb08ef4355bb9e2ecc478bb4e80425acb497650f20509e10e134f3f60b216866", - "0xe2f0614ef7265b21deeda6d174341d59b7d13655ee7d473e5c4636dcf788d674", - "0x0727823720192b8a7a66ff04cf1913a31f0dd5b71dc145840533c30e0b7eed06", - "0x4b321b6181092414a3816b076bc86551fb8763ddb401a6923daa9c54c788ec5b", - "0x3831bf3c54c1aad7f557b8c914dc6e3d4c106169175d1e988eb028d160d49473", - "0x95d94729d493223bbd8649cb5117f14c279fac44fe40d1de1e82b7bd1d9261ea", - "0xe2632a472234dc31a473885d7a72e84c24f7883069afed9dbcb643cc5c32af55", - "0xc9bfa80366e9c466df9cda1b1c97de5f627a0142552e97f0554e597b8bc6563f", - "0x345a832166ef2f750ff143a57fadcb439233cb8292124d20bdcc294fafc5cb92", - "0xf8e032c077431b49212307adb00743b054e996e6d3dd101a40959cf19b9ec796", - "0x2243b4956a00a8d2d09275010330f4268d2f536cfa14741313231e6a7b33f445", - "0x12e0f3ff844f21b058d0e311e266cae6d0ab5dce8952d6133a95fb8659e337a7", - "0xf6d80062e8efaef3021b7a747220e713003c37ec733ff8cd15ace6b58ce60fa7", - "0x58c2f923852b77377eb36cb9c26f1b73be98a55c9b0dc65982098e5580ac8e26", - "0xb517d1be70a5d39a4da4ce46821d678257836e6f70621f529c4019d974eaaedd", - "0xa25aa7b0b4c5a3a0f063d4d2493d8b9ab46afc091161df9b1840f47d42334433", - "0xe1795c2a1fc25ea19e6599b070aa9209f2e89a10f0524d8aa78e921c12251514", - "0xdbec5c0577039e79efcad6ba30e0693127b50dd3b108281cfbb4adee3f212ca1", - "0x2c4835b03837ea2310484879212f94fdac6bd2dafbee292ed67f55851053f969", - "0xe0d9e5d1f86eb15c09f41181c96d64fa1ce3a9c69b3ceadad476353e0de1423c", - "0x2a0cff721302a055d3aefdfce14020b3f2418110084c0b1ac1c30a07e3ce988c", - "0xc8ab63d730c578afbb7611167850159fed6d1e73fc3c0b406db19934073ac0ca", - "0x3855c134a5a94513c46470411794ed81d83b29a8da353709035f6e224a9da80e", - "0x6b54eb434f5cb21a1e01b9f067647b857d9b236044220dcfadca3617ef2b568a", - "0x710ae824655688ac255d8046d8fd8438b110d768bdf9bcf4debc9381e02e873c", - "0xde3196ef84179c193b82b1175a417820a9403bdc06c4bfbb5010c8d83172edbd", - "0x5f4e1710e4896439b22f34cf4485b27edf1c35a2b49328eb8f018cb690d4ab04", - "0x37aaadc6f1e57a61a8fd925a6b583105eac77105e167735fc117b347ca58ef47", - "0xc02093ebafb3fc424cef40f5d8699681a4ef9fcad5c8b52002bd911f23812a58", - "0x34d274e1699647b5883100c125da1fce744238bdfe4e1ca2a694a5efb03a44eb", - "0xc14618c6491fe32dcc5848c2ae2a1aa26832343a1ca21bf327ae2a0ad182c85d", - "0x434b07e53641dd82eec95f4b472c1d1d9855ef8492ccd53137ecc82b2bfa5845", - "0xef6763df32b5ab25d8371067949efbdb7f2b9924685918ce3d8068766d6e729d", - "0xe534aacf1e9b44d4464b82ee17ed9cde79ca3a574c5869ff5b6f44d292d1a926", - "0x45ee62bf59e4bfcc76208dce86cc8234727de291de27a69a72bf15ce78488a1d", - "0xb170601af6545cbbab9d707a4623a07b9cb69471f994b769bb534338d3b556d4", - "0x73c8e569840ff39b4dbb24a7adc678e1e7b63621aa77a5533ca968e260d8b638", - "0xad8002631bf3e364dd09f094028a9f4faa5c67ad311838cf65215d6a17d58a04", - "0xee81a28db1d369d17ae97346196672e6f00fd622865cd618ad8447acab9bea7c", - "0xa8caab152258db32f3f03f44ce090e3759538b33d5e557f4a9a4169a0d436754", - "0xfc037393a2fc3a24a567923bca89a7714c72c742c1c466dc0d47296eb6d81b2c", - "0x1ff9e9455c7aa193842f453554c89ab25dd9033b0f7dce5c795e19b1c84b44f8", - "0x894d063e6911b107a6a42a542d99bca6f77192a0852029c0b5cd31a47c8bd2fa", - "0x6df6ca69e3a40334a4c081d74474e00c98ad6793f5cc58b5520be41eff4b17cb", - "0x688504ac6a0ae42368f496f0651e4c1f8ce13fa707a6b98eb52c1f264eac14b3", - "0x6f200669f73cfce5f2f0d9318673ed75c38371476e94ec96dbfcc683aa583816", - "0xff4a6e25786931e08a89007848dba7f62f84a776f7d926bd6983c2d9dd3a14a6", - "0x496c57858748bccddfeee4c5e496119f29a627a659349a4f8f65d1016e92d841", - "0xa5fefc6e3ea89e87875efe37fa9d796f678c6abfdd651897184b52d966fbdbc1", - "0x08e6f4c847dd3aff0e6e45c63939869cf7b007f712ffd79a16313eebf77eb4b1", - "0x00351e602b0508184ea47bad9e47b77071640422296e6574e1ab52cc02552a59", - "0xe1980e52f5fd5b81c96c6c9f1e6baf14bac191388d7e29e1191110fe68d6c88f", - "0x2ba58560d35e709c358a6caa9347c51961642756f4cd28d09b8aeaa532f7c382", - "0x3b8c4425cf002597f470d30c40ca0e40f019d72e33ca6ac54a5c80509bb4e45e", - "0x25da4aab586d49e195e1f9e0d8371d3368e88e3801ab9db750a40df31b2556ac", - "0x9b2693658ec603d976ec25a76c8ffb492d0647581da186a5b7b49bc6c18eafb8", - "0xd27630e4ef91c7144b5db0de4fd83fa53aafc8a463991819a919916fccb66aa5", - "0xd296657df9243ccfa00571774c0bfc0b85a64ceba954b876cb40713aca41d24f", - "0x9cd59fb8b4582d88a9af204976da07e57e066d48bc15b7c707c17dd11536f735", - "0xd6789d7ca6f21a983e7ff5baddd5c7743bf9a76419136384662a685060f16eb0", - "0x38e752a76cf82b63556556042e8cd6e4304d08338aea8746c55ee5864eae341c", - "0x56efa0c6d7d82b0d6b9ef82ea4b8d792d2786ac54b001d77e8493129accec545", - "0x9bb4717f3ab9f8d8a8fa059ef6d09716dea547ad0a1d99eb41d5ef3d21a46d78", - "0x2a616d50d6c4199351074e4bfb6701c3a8a6a65a235a7de581fcf40c6b50eff5", - "0x5a7f0e8b42847b84813d9129819636a60d7f50271f4c1dfac09b7bac0e00be54", - "0xd046e59d18b22e4ad6b9c83a41599afcd2d89d6bfa59f95dae874e8491b1469f", - "0x851c439d105b3622e675f986d249065d7936a7013a05d920bef87e44bc2bb08e", - "0x8e8c4e96b687a26e22a340465a8334fb8594544e7cd652f0e667ae5849cc082b", - "0x355ef21e4e57693374780b2a871b20f361f472074e938e9f33e7b4ebbfd9f447", - "0xbc97e95990cd4a23b97759f2a5ccc45359118ba88dd99895b2e5a3736753b756", - "0xf01b5e69d8d5871473833acaca6d2a1adaea66b76aec97e258bf72f50bcdec41", - "0x3eef80b3124ee89c5fda3a87aeb870dc5fbc781df98e7b0fc1a868acc3b01259", - "0x218a98c02e2b81ccef1bfc460703e57eb8ee5696553cab7b8ce9c95da70ea058", - "0xed6a555d0a858e362e15791f49cca517b74f0f764d8b032c0278becacb694739", - "0x23d9e9207f88148f7648c0955bcccae4138b029ed5b4bf2d574987a568d8283a", - "0x28af6fc0dcb7f57f8541a8b2bb3e781a0ff4d9020cdf26a8119a93401d45eab7", - "0x01989d5a75479a5a6eeb10430746b76a639a9716b8557b7864a1b7b778d265bf", - "0x475611d8792a80560752a9573f864f9ef3153a4c30bb16f7bf1bccb69241a8a4", - "0x0e52e291214aa6300ab1d875db31fbe6274d9769cf7dabef852b5d847e3c6a2b", - "0x04ea3fdf2d26c297c4276344bfc70b4a7645bb22382127f8ce9a621967a54ae4", - "0x64694ef5067706b01581730944a112fedcca32ce9e9103119d9ea4b4b75efd23", - "0xf37ab55394c6233443e1341d03ff07009f1b0771d12b202a78e2789a97e83c7f", - "0x4d723e3c6d46625adfaeccdd1d8bc3811539a7b658050ea0bc9dec625f180df3", - "0xf44e4c0d2e30b8bf0aad255325dba7e2093bb518b56e9c89625f67d5c139a65d", - "0xcd9bdda98c027168fcba6eed7c551291b59613aac11e6e02a00989c93a13225c", - "0x5fae33477d301fda6e6e0e29bb6ddf39c1720aacdf33a4b854806f8a09cf5e6b", - "0x464ae4d9549ea34f25c28ce8daae16fc129adc7ecf71527cfe6df6e1fed72234", - "0x01079ed69a40bd07152e241433be91d61bc1338d83a686d619fa1a21e8c57727", - "0x1f36d242a382eadc149704d8d525e4ac25e0fd2741876022e8bb474d3c726ce2", - "0xe54d3b597d9e37ff213472332bf31a0b16ffc809540c593b1478666019205dd9", - "0x24fd9f8ef011c060d698711a163444b20dde695a1b0db81dc3dc171ad227619a", - "0x01fe14f246bcec9826c6b5dd668b256baba5939749ed90932a603b1cab47fdc8", - "0x6e4f521a4824ae2306c046f5545c2f7ce911104d9ac1204095b8951ef5d63cb5", - "0xd8f0f8bfa160374ebfc90fa7966df4391c1aecea802e3b04a03c087080f01fb0", - "0xb4720294d8b145f29af00f220e076b271b587e9af98653efa47e2d47bbe6d95e", - "0x93223951fd8a31a3e6c98fa17cd33086e8155779930440a7c2fd25eca31f682e", - "0x752fb11e15acc591e78509137beb18cbf177877e4a9846bd33acb1a6426d1999", - "0x3304e2f07aafd6b10cdce727c41ed85ce0fb80e59fee6b96b9a2e98f73280979", - "0xa756425b9dedd5e6c2197ab4a76c14e76b250d7ce4e2b8ada00fc61e9f62dae7", - "0xdcc034de60f855c63dd2c5a9cd4930a45a54e416558c6945cf8e058d55886d32", - "0x77ab21e42cd147f95466d22f5e95e965e38ff22938eaa6b5bca2810d6a9e2e4a", - "0x65e59fd9132b911d65da3c1094a6b8523ed5d9b7eb8822b8d2273b55ce4aac61", - "0xff6aba7d3fd54e3948829cb59ae47084eb809481665c5c09300b834567ee4b66", - "0x0a2b95075de7b0579ccc23f174b3fdf6a4ce6aa9a42f1ace679953fba0956d41", - "0xcc6f0e601cfdbb0631c13df4decb454d5cbd554363694faeaccd4edf16a9ec26", - "0xf2937d3b0c62b8f47cbac34a29d0a7fe92ddda227f984ab360521d5168274583", - "0x9f0e54b594397e29868adafea8686c5e3536fe8ea767274e277d77a5ef2917c5", - "0xfb8ec9c26eae16db5dcd2f05476d89416d2c56a841157685dbd1653274ded2e7", - "0x07d71ac9ba4b3f0a616205d182155d7a34b2463c2db95a47b8d03a45382b8e18", - "0x6e5d854c2848a36b6feef20c80a87a88a40af50888e787652ca54601a7d37d90", - "0xf9bb21fa1e3d6af9962a9946d7fa4430708193335cf32766ed56aca50fc368b9", - "0x7750970996ed6e687ca27f08481be0fd426318aad87cdba015ce129dc896b41b", - "0x4ff8c843185d1b5b4291788c869ba3723969d2dde2d74a9b8fe27ba71da67ae5", - "0xd5730d698ac2ab71bc360f24bcd7a71b8001ddc86205d7274e636bda83d8e3a3", - "0xde41dece62466d3ca8700150723f0782fd624162030086be716485e12d5a93bc", - "0x7a709bc4ed84e8bf45818e0e918115d686504fa0dce6a3bf8513d0bd488dd39e", - "0x620fe2d0affe0c46bbd0b74ab6d7c3bc6b4950915cb83742c832c6117ea42347", - "0x542ee63637f2115e11a3e132bb4246d809232772e08b23401eb8a8f0067a4ed9", - "0xa284a3dfebff214c436ad67d8a36162a1810bd7a51387ab68188267a1e166d2b", - "0x0ea68982e12031ad38aff543ca7d623ca8945e649527eef2afca28993de42ebc", - "0x1249a7d56112d4146105a1f257bfd399f18aaaa94ed5198df8634c89c807d4c3", - "0xa691469bf6b8f7caa8559865c0c99f77350f41e0de9851dc887d850be5809cf6", - "0x34ee8cca77c5b32a79cc0a6811cc73910cd0353fb860171443f08d17e3f18174", - "0x73a7b7f8bb18df6038c0df35ee55b0fcb4735c7e0977efc98008c710530216ba", - "0x0a8d0b414621d022fbaf4a1c0a07169e879a857fb105637cd8193633ce755f11", - "0x36f21a7a7d142d026e9222b884b583387f10ba692b1cc9232a32ab401affd684", - "0xb5b69e29e0558368a8abc4ff3ca022d158fb11ac6f2138cbe0be84b387e1ab7c", - "0xa57d1845ab38ef86763a374b0323b7ff84722941b06dde3c5cec61de40c9afca", - "0xe8063bccc4fec0a51a6d57ff999a7169e15d93c0d7cc3ed57c065cf8afa912f9", - "0xe9b89463cfd719b357f878a927bbc72ca3d06f8b88f9a5c8568ef2afd3118ed0", - "0x4f2ae01579376ef5a2ac6e849cb2d3befdc4e5e814a5b8de31941183697e51dc", - "0x6356b87dcc8f1c6c83a2601be987b44f77180da8b8d8186e6c61eec301ffab06", - "0x4f2918a79394961e5802b8aed07d89b3b5b459a3d9706f0749ec65f3b3d9ebc9", - "0x145016d42f0052f68aae089538ffa956cfb2c5a0f26763fdaa940e427bea7ff8", - "0x897e9dd36d2c12e8941763ac6090321db8cf73de4319c99f5e4343d5eacc856f", - "0x7c1cafd66922a53506f93d8aeb80dfacc9da69e6b73cd3e4a9779cfee5e4f64b", - "0xbd76e3eb8ceeb1f47ed865351b54cf491173ef562a51f068966b71cd294766ee", - "0x600135fd75adae0801296f92e1a7219287ec588fb4627d18095887da1c71ee2d", - "0x1bbd55de061070b1060b4184583e9b5b2e307197235c986dc1a3b942f64cb107", - "0x07e182e958faeacdecdc43de50c8d4226c6f697d7dd4e2ca9754687605719068", - "0x3591aa6b10db91679824f182cb58ecbce7210444314eb4b4e657cbe6518a55a6", - "0x8948a1a48823911e4e16b54b3cf789c8b04a3c26008f97f3c71577a22c23cb02", - "0xd37594cbc0353af27e1e70e249db20f3f16bbdcdbfee1ded9bbbb178c3454d3d", - "0x639159845a1397fe73d7ab041d7d9a74b99ad8009e3d63d37f329df35afcec0d", - "0xe41e444d9f8b0daec348208914d665db316136f42614013a35e3c7e97e219dc7", - "0x2ed6880fd4b6631ee593d3161dddf19021a1365650009d01e264243e032f4f6e", - "0xa6e5eb641f39345184365aad2c9258d21ef4b7c65ee5dba93825aba5e8e481c4", - "0xe2880fe0d6e512ae4e0e78a9249f6319407ec2def2c5745292b750d16cc41786", - "0x54729b299e086a2ce795d339e5e20cf87afdfeaab0dc6fbbd0ce5f55194c319d", - "0xd3d3dc4b51e0d0487c9a09281e1115f593bd24cd09a113c0f1a89468ca1ea2b5", - "0xc86f8dc093f2adaf17fbeda345eb2f4ace3df6d5bde0c99e85200eae84cb892c", - "0x84ba70a7754f31ae366693375c5daf4fa38f7f086791c1aded55198adfb91392", - "0xc7ccc21a8a1b96591c32e98d2c7ad358279c2c1bf6bf51dadb18cb9504a1d751", - "0xdce9df5d5bc2852e8fa61e254a9aff0f03628659df28f51dca37a5a6816bc479", - "0x6d0a555491a6fb3f592fad8b97754d02bc6166257e5a83131fe9d859e05d1531", - "0xdf805b41cf7c7b9346ed152953e6334cca6725a6428e81b9fa4227329d231ce1", - "0xf94a98ffcfd4e28d863e790d1d6f507445f9e64165b3937b0c40af11789d5296", - "0x56723b13f5112f637e1e84c18bc3dafcdbc40508bb6a88c68f3a46e56f5783d6", - "0xd550a9d0bbb3745e7f5b7e290f6755b030cab20ecb6f5daf701dd3850737692f", - "0x7d88f7a5af354de5678a270b8083ce441be4c1bd6875a337b244d93bd3cf0d2b", - "0x52b48af317cb248300cebad6fa682a741f3dde7da4bf0e7c4162f9f1607e7d68", - "0x04a7147b282fead783019f3453ad8d95618f416eb7ac0d80cbe3be8f68a13c31", - "0x4be24f18efeb4c1f8b12f124bd1f48d3edd1777629094292616bd89ad580682e", - "0x146f8719d2e7f74deb3619ce6dbb782850431bd5a5fdf5f5d2dd33a54874f536", - "0x6497f392deeeb3359e35622360f6416da4d0986ef0770ba22876cf1990e5903d", - "0x858d7fc84e4504c9e5f54cca2c9facdacd309d742aa7657c6f90e25e4d7b6f84", - "0x6fc455af373dfa77825bbaa65b1539e9eda251850479b83db15b9be2b5e144c4", - "0x3893304198a242335c96423344d68ffeda11c17c9b6c5785bc59482c385f60d4", - "0x3b2a22d6d87679b173a1e82db970e6cec44179be8218489a8aa863b7603adc3d", - "0x52534879ad0d442147ca743ea21fb5dde78510c11da353fc21636f9725f9609a", - "0x194e094c77eaf3973447de9faa29007b7b895e3c855cd01c0d5609e478df10ae", - "0x64ca084e56ecda7e9f2a10b0b2262f29d5bb8bd361019367dc41bc8f97963961", - "0x05754bcc136f5b541e59f1c40c99572fe188f6f2eec3d91989072ff3f3c1ceee", - "0xaad0bc1df434492344bf9351345d3288340aff851f687f952e84d968e1a29afa", - "0x90c5f0e124e125b2fae5d2ae5c8a1f5fe065ac2cdaf62829733599c69f66d674", - "0xc20d9e82fda10425082d631b6705815ac17aea924aa2ca534066d76734ed1bdf", - "0x68fc07e734ecb1c3951262cf804b831ff32e285246ebeffda3949e62d31d937d", - "0x7e472ad7b556415586fb5950e8d0b85e895b8c9c7fa31952936247c8117fa0b6", - "0xf5c3457576bf1b624f0f558bdba237ec349349c60926eff5c3ba8c55b32fd6be", - "0xf9c3dd5d7fcadfe33b2dabfcc4f732661985a72166afb8d16486028b89f35bc2", - "0xa493336b47637629c4bbbb89e8c8e1272722db0f7f781f4f78185d6125f0e5a9", - "0xc8cab7f153c08cdc9607263c5129fa8278a7228188c950806d5732db541cc59e", - "0x85c0c18f11c32eac54537d2c492eb9cabea9a39d2e1ac56d8087c02f68f64bd0", - "0x26a001beca07a641ad1e3ea64c63e395c436836d098818f937b4354b7a925122", - "0x75cdeed9ee0eacc02eef853a54a6f0201693cd1a60d26e504d5ef16110ede59a", - "0x8e4a5fd1a18f9513cf70dcfedeea862dfa2b61cbee80fc204bb0315a2c051424", - "0xa42896ce30565041da64ffff0a80ee6a6e280d0459e5c29c0fa3a79587d4a330", - "0xe65f4193189ca1da6d6fefef1c2f14bb340e56271b2bae3024dce98dea451cca", - "0x48c844ef658f2270efa4be7b85879cdaa2d7cb27f5fe9cdce0ec4389a5801707", - "0xedf37c427ac85a7c317bce25f06acf626cbe86e79f99f148667a95c03ccd34c9", - "0xbeca93d3b7e0f9d2f2a6b9b9ff7fcfff658c0d417830e46a3aa233f31908782c", - "0x61dac332da33e3533b9eecc1a287e732cfb9a666ef32de6bf2d2706792264927", - "0x622624f3810a1e24d48f54082f0df3ab3227c9cf9d39b007875a3428e2d70208", - "0xc1276025a1c848b7dbdd6f4dc1b7b2f4b19dcc7b0e312897758ca538ea334bff", - "0xefa6b7d35c2aeebf0d472745aaf6d4118279a88273b7513d5a21c3f619af8f76", - "0x2250fd4931ae5059e99572a7bfcee0117090c362075c0d90eda1ba2be2c864bb", - "0xe9b7860868856d1ba5d17cfcc78020485a36814482e1e8812555094dd4e85ff0", - "0x4df6b40297b258ae69a8858e54ea4f45d58b0ab1b0f1b35c3bcc4f96c928c58a", - "0xd17bcb3447f309b3ce0a48b651de3d979810cd9cb7edecb9b44366644e25c729", - "0x7292155c0cf9a6466c80ac2930f8305cf9458f64f40523a6b5e08d2ddc180080", - "0x536bc35368df05c3d3773b27110217c2df04d2f86e6e8a8dbf9dcd13cbbcb984", - "0x0f4dd55ebf1e1ea736108e62612972036dc533bc4e52a8480e3c875a7961ef69", - "0x902334a20d083b4634a79aae1a2b4158df3832d4c7f9105e8aeb8e38ac0be589", - "0xbbce2d76e50b1150179456ec4ce4faabcddc8700435675ebe94204325ee6f710", - "0x6cc4afc371970811c0cbeed73acc72641066edf1d81a585f28987ca1c11e8ed8", - "0x7cf1f9f26bdc8c7ca419400a03d683564bd5947068e4a01670200358d339b12b", - "0xf1e37f56a2eefc9688ebd8a95772f98b9f995e3fa9ba6601095f973cd34a13aa", - "0xfd7ee922a80adc2f6719e6e1e90add658033c7165441e399a3f61e93ed56af2b", - "0xd8ee732eedd804de6063af6b828fd6c4d9496115a367cfdd424a035646cc9e02", - "0xbf6658fb5940aabd9cf82fd9e808c9a23d04d171a62d0601d2c9dd67009f0b36", - "0xaaf7099280336cb78b87d9cc3c06694c4a66aea2a095ed614a4578fa8d61cbf9", - "0x46e23a8b56b9061bb89a42253998e7fda17289a12c63fd239a0c2866df529f3f", - "0x19b3323694c1dc611fe3722987d1a927dbf1a1ccd211b3c148798cce7b814fea", - "0xc16ac7ee79c7ac2223f79bd97a193c3bb68f609affa1596b061e9ba32a4978b2", - "0x5b929b2451c9c284c40c745bd441e1db499e336ea8a0b616e925ae780a6553bd", - "0x954a69859410a4a8309ddedda3f1af305c0baf02b1c0cffb27c0f89e629e4dac", - "0xff44052a4c53837e32b9bf4bc6080e78d3a78108a69100bcb05a85d4cf9e65e7", - "0x6199a3fdaf20c64b9587cf303682571f0de0bfcbf6ae34b4cc20485228a39043", - "0x0472d6b6c1efa88008d9931b3a1348a8892a61897e8634f2416758667da516f7", - "0x566bfd31096a3829990cc587e64e2a4477349e91b1b37ad6100be6b3de6250b9", - "0x5f51ac85ca1ebfbd382b4d60281d3746d98950aec6cd6bc1ca5ab22eff929a20", - "0xd45228a818a9f5d8325d2fe4873ddf5b0cccf4bc6ca907a08887adc19223936e", - "0x71d00ba260caf196d91b48601bb92052272067d1eddc4492f8709c3494ca253e", - "0xea6234921dde61659d45b0c36da969b7d3ed641c53cb54392e5a56da9f8df1d3", - "0x5a0dd2c3c892862da0f65bb4be26de9984c65aa2ff90526e6deaa1a3c079e7ac", - "0x18fde3435086b1d71fd5d24888c99bfcc2d4e7146ef4715192f4213ee9af70fa", - "0xbdf9a94e2cc27a784153c66df5d7f25316300d43f5a802cb7c5d6979a502c23b", - "0xb111d486bad8fddd2cd7d22e49d3ea3f4a0177af6fbebcdcff7f7f6585dc97ac", - "0x56921a22df9c98a49aa2602e551ac3e3d07f857faa228b56dd55ff3962f2646d", - "0xf8c7cc4743849e6cae415696d543445b22150afd4f4badbe9365f169a8aae3fb", - "0x8b9945119a385c746b1eae86d57e2a53453ab4183d49aea9412003a5e815ae8b", - "0x0dd84a3fbdb5a44b934a223503e9dcc73f893d35c77c3110c005398c640d011c", - "0x0960711a40b3c268874fa251c6c642c9e43ab14adf98daff1bc44949ca4a472d", - "0x4097f47259eea82fa8a531ec8c32b20b0064a0c47ecbeb1c426514498e5cb703", - "0xb17fab14bf8cc4aa51a1209711533b566b907d83f17b5ba62187681951307e74", - "0xcf522b0a5f9c427dcd8a7c6e358b7bea8d683bcb1fcee19fb3ecc05b85afe281", - "0x61eba4f90383706a2220ed3ba48020c14b3b6f1b76bedfdd3dd84cf66e7b93dc", - "0x112dffaef31440102f9660a5d73880a7df7b4cbf3c5189b9cc86c7641ac87f21", - "0x908edf9e1920e01592cc0478bc15011699771fba5a3624296521b1997e409d06", - "0x44636c1768f04f94d933c5d93679572d01e9d69f88251e67e8ccca7a50d63bb3", - "0x146add71dd815d75bd46324c8820e2c3d485567ad276f0ce1e2b63c294c989cc", - "0xc3cd14435b5cbd2657f38726908aefd18b21d9fcc82e80b7e1ab0be96a13a2a2", - "0x7d9cee568a4ecbf2d1f980d8946595bc599bf56ad6b07ffb2a83e3b479b1dd07", - "0xfafb0df45cb663db42cdbfb09f7381a49fabaf9266f1ff788dd31ce22c30bd55", - "0xd16d87925d29d26760244c938cefeb1366bf9551545342fdb7583325e08850f6", - "0xc6186d21f0f3391a8456d1b1753da24806d02cb9c3391a40c9fe84143d5ce31d", - "0x14b9cc8f7d3e37d7af07f80c72ae6528b326b146c6380ad0bbdd8fda89d225a4", - "0x5580ba4d7233e13cce87ba2e2607db7a4e87e571d5b1b1a75887f261e03d393a", - "0x07b144469f1d123ef7249ef2c445760a995c2c70f6e48e6e166d5f3508f4333b", - "0x0d883f633ceb91e413494b00e9dd563cdf121d2a2dd397baf4d29f7664633475", - "0xc619796115f48419208b0122a9b18a0bbefc05f8d96c39248973d66583ffd8dc", - "0x994e6fe6c27ba71693d04b2e02ba9c0d8679d1b10fbe733240ee5c323ac5f936", - "0x88b987ef2d0f823fcd17ed43ab28bdcdc23d23127e462ddafe56163e4be4a980", - "0x67e115f2ec5c6f6f7983b4bc2c2ecd21f639a8da639da2a594b018be2a3bfe64", - "0x8e4b8ff44b5028560b047780ce05353c94fba885e186b1b198cac5e90a6cb990", - "0x0a0fcd91048ef7e0833552ca444ed59d74fe7151190d57e5b7fddeb02f119300", - "0x9a5203fa1af89bb99c8d2228d396731ede004ae03afab9566195b89ddfa51a8e", - "0xd540a1122c44c8e728a78048884f79fbe5367873fcc73cc46a9d4b5b4848e3c9", - "0xbf8a42d56b46f6036c6382bd1e970b1d6b5f72ba54d1d5b8d0a3edaa165b7165", - "0xe0262a446e33431abd61bf3e199fca97a575c7ccb97710c2a1847188157909f6", - "0xe7f717feae9bdcd172fa4b6b701f0ca5b58671f9608b5b5a01d51a048241418d", - "0xc0ee34d09069301fa5ac3378ff176efb2b526665925eaf67965699c8fa002c8b", - "0x241837a9dea17bf12b78b30255177b3f14f1871a7b9eaf5c964d30eeb2038212", - "0x2e5204320b7ff83e16ba9727b5df0eab080dd2ea374db22a664f0045540ad936", - "0xaf4e24e4430a008265a6f113c097729ba1802e23d119ae0efef2f2a8bfe4ca0a", - "0x462b2de54860e6d8efcbfde08b381d74eb8e61cd2b311cf14300853aa2f9e88f", - "0xfba00f6c3e6262fa9f282d179b976894376e7e644c1d745302cfdd21cbc3e311", - "0xfbd6361624060852c33c3199ecf0fcbd8e56549d64786d320850ef3911dc9fdf", - "0x7be237a921be1921f90265288026ab1ff7d951e1412bc93470e09bd40a17ce97", - "0x64f51dd23a43c312e57bb2c0da1fde00b48b36eb1c9142589bb66407acde869a", - "0x721c44f4450bc4d92330caf7faf277faa1f10ee8f4614f9f903b27e8b82d8e9e", - "0x71a65acf3a07914cfa45698674a9fb1a35618e6f849aac0be337e44afa7b814c", - "0x620969bddd7756c5d3990528b1ac4dbc81becbac02843b3c4c75ee991ebbf4f5", - "0xef0f2a4fca1191d5615ac096dbae87ecd3aa1a83c46c43a3cd48395a47b2b65e", - "0x5f9bdefe969c0554757a1bf17d990451a58cd2ac60cdb521679081699ba4c2df", - "0x8ffa4537562335a6e21036f6c3af75614887e1c0e54bdd719f53c4675e4e8948", - "0x700d67449ab43081029dd61cec4b31cad71335d822df7ae4053e5040e47090ed", - "0x22a9ede76ca8f831125f7e6d1600aa373934f0cefa888e84a0481247b2c98d2c", - "0xb5b7c6c9ca26d8981191b27dee2aad72dfcd7e6d135d09c3b0b5bbc6e9d64849", - "0xa24232b8ea1e1ef8a07cce001d37d148a07ecbf0792690470c106804476e61fc", - "0x254935114b97e601fc5653001b01faa3f0fac11653926e749cb114cdb8239874", - "0xdec3d44fc5130107d8270358b91d7e0d933e74c4bec6d97cdc9b6f77a1fbe1db", - "0xe947a36694956d7d65315377c81225aee6128c7f075c2a37db61b7b917599008", - "0x4451d920ca782f22a3dba977235c49a4e3b97d8de1fdf9cc9d819dbe7237ddc7", - "0x234caa79670cfa3aa39b37887e2cce3f88ab5472bf2c2e7063b9c9b9424b20d2", - "0x79d8c448a7c637fd4f4e545968bfb5fa59a62948bc7b9031eb4c17493efb41d2", - "0x0b8cc0552966a5ffa6567c51ca7e36f5ad1bbfb5dbf5a52759314721d4e5f463", - "0x774983d323706ba773f8058519a450ae096be9001790cb5e51d00ce1ff206b46", - "0x0dab876db72ff5b208e61e18360e37b2fa6425a3eadc178fdcf654ca273374b0", - "0x20339939f9a89a1c38d6a2dc5ac9a505f2f899a158966cb18775831b045baee4", - "0xa42e2405b8a4a4da00dbe1d2e2a7244e2270f9ce16f054128b93b076af58cb08", - "0x149f8b8bcc176aed12a041b55d040b306ea7d34cc84d5eae4dee06d7a1f204a9", - "0x9b8a117cd1948845b4b98086d80c3ba055a138e471fd3ce38173e3b06b55499f", - "0x22db704c6cd8a8efb8ba974ec4d0ddcf64b1396aabd57cfc271e47ddc5c66363", - "0x25366f36babf4dcd6a41a218cfc8007521c9934f3b70a6835eb5490ce5c32937", - "0x5d21555e54954b075214c3eea858256b109667ebba80b117eaf08a11d4c9a9e7", - "0xcd876855021bdd0ccfc05ae507c711b9ef1ddd7aeebb7e2d330d1205528fc2f3", - "0x09355ca9b36a3aeac9c496af56af3719df2e1e052a878731061720e1b77ff35d", - "0x488d20b385f25d7c6519042136ed3c959a7b341d0118220407034b9527bfa040", - "0x0c516cb443e22322e176465b7c2e0359823374cd4aba574d4104a70e002c1f37", - "0x586593c505b94eba3ea1f7dd3eaa1ffab88548e150997d05b336dea37cd9a971", - "0xa1ebea5af17b8c85755ca5693fafdb4fce32c5e1f6b87127b3306138612d3ca3", - "0x7cb91701609765f3df12a2c051219622cb4a662507c6a14384553364de076dd3", - "0x3d5540773e424e0a92c40204f7c531efcba2467d27d204e0f3c6e655b44e5c87", - "0xc59531ab703c789a20fdbbdd08179893bf671c0d2041631c75d4221bb865b3c4", - "0x7df727560b0f89ef9af22de693230ea551e315918b0cf268cdc07f10690ef2e1", - "0x6d95bde1d89676d0efde7c58d71f91cecf8777e701f7f02a59b9679058e67ac8", - "0x225dae1c7d795471bb2498f380f2a144bdf457734cd3090925027375303e840e", - "0xf14008b13b4db1498bb9a902f1468367e0040cf4d21922ba288adb2a4fee0a93", - "0x36f293cff22d6d738d3cee9e22772f9e3a344a5eee2caefbba321054226c4762", - "0xca2c1e34994d1c454d4abd4b2bf939534a2ceadd6c6a3103d40de4725f77e403", - "0x4c1c6a5ec4bae84cdb0f3252b9f721da9ad348ad1ca6986ffa5e5735603cb005", - "0x0d35e0d8950362606c804221ef0b5feb04b0ad62d5d90134bf1fe119bc5a9eb9", - "0xa8bdf0d3fc34cb80cd14429fbadd0a2d73273e454d96aae4448f60c42f0150ab", - "0x11cc9d0d3064d5c7468a8c0a4146df476f254b7bd8f748fb42d899ce9964ffff", - "0x6d8752e6f51856b90d4723a34d94db4aec1f8da55f2b0d94f263ef0393dc57d9", - "0x038a4fb7f9cea5e3779a026873da89b85d03ba8c9038124eeadf88fa85696f1d", - "0x9d55a956aa38c72d7fb45f856c440b012ce8969c2990c7e1fd48357daf8ecfa2", - "0x163ded59e9ba07e781e07a5329c2921babb49be1a36bc7a54e22b3bc325840f5", - "0x0afd0e16f53b05aab3a77749fd114b353fc848d5e17dd8d701c37baf5c976298", - "0x5ca8f5796743e66d24f7dd342da174ee646c60dd8bf1e7564a814ff28b0922f7", - "0x5e856feff23db5b9892430e9e493b10e2fa2db28bf6833523f158ec1946eba82", - "0x59dec8e839a2d9ba33a5a687fcb92d8b450585864660c202d7e79bbccfe49f57", - "0x8b0a8363e98ac24707164bc767c0f6df7ba6b4ed5584f14693a06b08c3a23c4b", - "0x9214f12639d8f39488579e8265d33850dffe16aee099318da700475551da4ba4", - "0xc98baaa91e6f46d6c218fdc79aeab7d46063fc22107e457eca0559d500489d8d", - "0xeed3ee9c8c71a9035585dbc7a69f91966ff45ca33d81ff0ac69dd9ecbc05df05", - "0xa4b2f4ff38e28613f5ddbccf9f8b4cd17cf50704e398ac3b9b7be043d631ac36", - "0x7de22d2449411bc1e342ad3ee83af0aab2461dfdd7dd51b915a17fbf4350a660", - "0xb644191de416e8385167f5ce348cc3fd3020b69aa7f8e4ce4b58d796b401e3aa", - "0xfa137d84153b3ddcbbea95c810592ca1d219a825a3a9144a1f60a2f15890d959", - "0xb297211d2aa65b91fdedbdc6445e56c012e7d4e99250727f0f18471a204097d9", - "0x87c07e37c34bf4fbaaa2cabcd7c72842828fe0bd4e0af3dbda59a8b7dd8f5832", - "0x60a8ed3981341120c3e6c821f09332c6b83770357dbb1bbcb535fa771ab9ce56", - "0xe79330fb9dab7ff5ebd8511290b629e0feb97ed3907199f47b422e2b62192cbe", - "0x699c36af1b18f84f1443cb7dda84e24eeba099c59b2a3d45a9757b528a459ecf", - "0x0cf4295cec116acd9b74e3ab126b020e82dc216259a40003f493f15d1c89a9d0", - "0xf89bc33459d999b54f77f66ec80613d2b4a7d7e5ca5d58d5d2d9f9f65d9947d7", - "0x2d3a04ea977f6aecbfb671f1ece353c899c6597660a945c78be66a9c3868ede2", - "0x064e090bcd4bfe32f0b9a2756a01f2764d82b7fbc71ecd6eeab2f018ca1a0237", - "0xa3d1be5a6aea2bd18f5ce206e0f8c2ca898e4d4581d2d9ef3bc1b62b86b4d6b8", - "0x3be703b1204cb9800e53bf8b1521eae921f7f6567080f9fe385e712390d92161", - "0xee5c0b22d83a67a2a9ac8661c79d8212252dcf7d4062420cb57878ab8b9dbc66", - "0xbb9813100f3153ff7472f61f97fbaf603f228eb6cd715031018b913c70070d52", - "0xe416f16bb22dba18d653ef75e374b73722723a9f426696ee7477598e1aad6458", - "0xe2d51294dba9887f33cb3009ce096a4e9d086b3bdb114fff71f3438bbd784a0a", - "0xfb6aabfa3219f4401ac3ee4bf697052aec4cba80f755208b42fffbb1b0b3b1e4", - "0xf4d28c88355ed07f3c2007b9e8b7f4e6b1ccd988ba2b32fec0733d57a178d123", - "0x824ff2ab95f74ef02726a483f38342338c16d895a1da8cee5177ee1e4719e465", - "0x8aeec0b4a40bee3ae28552df14d4b6855ffacfc3d01ccde285e66228abc0771a", - "0x5573c773bb5bb5c5236109ef3eda585d2da1c5c38eac46b908fe283c4d519145", - "0xb82014148f595f5e440b729035cbdc2490db0523b7d00f9f0fbd4c383090fd4c", - "0x3bd847f5f5514f396e663821c8865296e3d3f7e817da4e93ba1c9b98b1758812", - "0xe5bd2846840a2049c0f78fddcb4892639156ece271097b56a74fd338f3862066", - "0x916ea84d9ed21144b3f9d73b03d02fbec444449c3a1f982c30bb20c0f75e64f5", - "0x2c7c705d9ec24d6cfbfb7f2bbbc46aee8e3c81a41becf39a23ac19df32dc19a5", - "0xfb9693cb2fab44966e6a0ec4c118a68354de660ae0bbbbe4da349df91e231fdb", - "0x64503206586c60381d9cb74e5f548e417ae80767d48e15c61d2f08f50548b7dd", - "0xc7bcdb552852328cc3d511538e3a0c94dfe1b77d489f3a44cbfab30b3b781036", - "0x4d68f37bbe1a45eaa3e72e3543d23063a4eaa1d38ae56909fe11b309230c8632", - "0xc21a5df0d75ec8d06498535c40ee76a330eb90add0cb99b9f0f4671f504ab1a0", - "0x5558d71b23fd39caf7021402520090f13b50cba5edd669ecf7eac05196e03531", - "0x2164e1ba3b7d927af0ba644481273ccebc5646e2c49825d456a1e75fc7c80db8", - "0xf10702b40b03ef7ae672004cd1747705636f7432a7493021aa8c900397b0123c", - "0xdef29e2febf8fd4a3313106832f3f723469f352f614f20e7d0e6c2e298240060", - "0xe62566d6d85c3ca3d33b8daf61b518abe76b28ec26b91a0b747ec3affab41285", - "0x1c286207dfee4b99fc86818c7614804782c8921d8d8f8815cd2f190f42b992a8", - "0x3670362acbc89076aa41149033484fa2cdaae47c8c10461f6e886040cbabd1df", - "0x8a74d7452f3a76bd20e2d1686243b90243d3d0b40b5b98fd313ff33c8d932e70", - "0x13f1f59beccce0f8d8066742249156a5dc0f21918588b6b145ab40d3eb4bb822", - "0xacdff4a0adff4cfd4756dac55df04e23cc1b9a6447d11d9bd86361fcfb6534cf", - "0x54fa4bbcab952b44cd3cb6042d6ef87fd9131f1850b8de0a44f221ca20a490cc", - "0xa06748708ef2e6c391d0d11c6c8043d91f9f1abe8292d55d70d616ebc5a94ed6", - "0x64dd68699969109d334ab59d64d8d22e114382bf2ebec5fc7ec66875a795276e", - "0x6e66b02d463c76d3a217202c527f798a4c472b37b234bbe0d3d8e6c16a34719d", - "0x3773853e93233b5c39d7bd53b89b769aff1504d9ef433c46b3caca15637ffe93", - "0x817633f3cc0665d68f497362bba1d32d3512016b2490047a245175654cc3d851", - "0x41e14c9198fd548c4b70963eeb24679cd7138dc061988cdd452f2de7cb85c14b", - "0x9ef5c3f4acda962833a68cf1298198b68ad38cd3ef9f8dde0add0dce93e4925f", - "0x7336e43b284042dabf2326e15f9717399fe3d3aee9586118a6047024ce3fbaac", - "0xfd037d85e4f6d39887ea64406302acaedb64a72c1ebb122519c2fbd236d789ca", - "0xa28129819bdab4818cd82aa1bfb0d31d642f66b6f072a079bfc414cfa6d7385f", - "0x02b7d36f55c39b97e2a882d47bb150dc74bab3e3d3c44a13d0149bd87f653f82", - "0xdc6609b3e7e5acd44d8bdd69913d864061c4c5b5d34a24a25c04affed384e687", - "0x0c5adc52eb0e98c0945a821a270e00c1b8424fc88eab4e4e53d8b047c2990509", - "0xb47060a6278b3da926c799a4c01e9682b2c38b9a255427499c03ee9305156939", - "0x8cdfbe9548608021b7fbf4a9845bdc03d2187885a25972f434af7706d8e9743a", - "0xf29db31d7986d96f18766658ae38aaf4210b22bfb14ddd1ee7c8e6a534292fcf", - "0x2be2578382bf5a26aced019adf5e1be8eaada7226996ad0968b41e0211950064", - "0x0fdcf225eb3c840d6a9dab17976b86c02a3a2ad6c457d8ae90a90120cb71239a", - "0x04412b8786da3f17b29aefcd1de44359ca334d551e4b84ab93ef562c16c34bfe", - "0x0be08908e549fb47570db3f9850a43dc3bea22fb569e7e56763029c2612f28dc", - "0x43312d35db155b984f27756d5f74c5028a9d182c346287b6d22318d6d09fa287", - "0xd99d026f8d05e8301728fe546ac68d0b7161d4c5f39d321d81c2d84af8dd9479", - "0x2aa222445dc7ce013979a51aeccbb0331d0b9618bd44d6eeb41978402d787a4e", - "0x7106550433791e214c8d1bc44a6bb74c13cb04ef44d888e4e86618a7699a6c0d", - "0x4cafa83063379aa62aec4ab93ea53b6ee3340b567bd8bea89b1f576ab2b32def", - "0xaa19fc5e04747c49682a08a04e26588ff2097586546c7e6307ebae3faff31ccc", - "0xc95bd63ec24007b5bfb3f3b62b358e32b7c4b562a3904d858b30131ae5146df5", - "0x33aca1207ba456f03f62dc351c975ee927b48d2c9ba394a56e955ab1b2cda20d", - "0xa3d6317111e98d624e5a68256f142ad3c99c3d2fe997650fd65d584579f9d6dc", - "0xfa3d58b3b49da8411398ed8b288f70757be569475c02f9ba23a4d913679b8ae1", - "0xeb470c4d3513dc24664d00944e9fc6da9fbdaacad66900accf0467ecff11d6e4", - "0x9a339d9d68706dbb4300222a5ac8b5823ac55af237273e0aad0999aeab8c72b4", - "0x0b67fe0a96dd8688b8fa98ce128e025402173dc49e0de904c390ddb828f059ee", - "0x634ac8f82795f1cd08f8cafdf00f869100f84350157e12d5a87de7d013a856cd", - "0x1530833bee82f5fa0aa8dab062da230024ed503e352de3956831a92cdbe36199", - "0x69b26efea6cca6ac3ae1bba540db8fb9288e421163bcc50172669053e7751584", - "0x8a4fa2c094135582d17b7733f74e7fe4dbdd0ccd0e5671696739639b64752c5a", - "0xfbff6abda57f9b1689cb7ea8809555db3efd4b21b0b2b1351199654d044fcca4", - "0x16425718846535b46733b84761e16648fa7eabae0e5995108a2fc6c3f324ddf4", - "0xc72eb88c5161469517e7980f86ed414b4e5e54dcfa734e2255908100795078ee", - "0x91e0e6cf1fabea993097496cf7ccfb023e798363bdf8a85bb5e73866f1442ab4", - "0x2530aacd1b1238514aba9ac1d13de20aad119ac4994984bfa04518a31051b973", - "0x481970f2e7e34a0064d136e87cd59fbf6131341027ab27458b9803aeb7e79983", - "0x99beb276484210f5b55e2b3662304a73c86a46633f3ff5aedb133217b7b593b7", - "0x0541564d394f368aa15e88097bb26d951d099e103b5866a3186455f422af1b8f", - "0xdab00c8928bddd0b3773af6dda612de649c18e4029c54eaf8467f82b153af878", - "0x343a7e702237917aa5d06778a592d1f279eac470beb8f340ab338c41a31826e6", - "0xce9fb58528596c0da68cfcd52d4556c41d7d6e8b858d665bfd110bb95a76b3cf", - "0xd40e49ffc0eec56394bb73f469b0aa1e1667eb4f912f5c3e82cf395545af07b5", - "0xcccf0af25ebe7d4e84acedcc9a88e885a4b99ab77b9881c524bf0e7aab724192", - "0x0ff189bfed3b2f56a3448bc08ac2dc6eb1d64125c95971ea0ce0fd5b7ea74416", - "0x60d25468039d7e8a89117eb468b4f561ea072554520d7010047680c1ddf5e70c", - "0xcd7a3c31ab25c421547b379a508fa0cf6d86cb9ce96377a5174ddcc315fee2ee", - "0xf681f339b4698b7f5016e9c7cb9a516d230a3f769b0da08096372bc87664ce5b", - "0x93dfe64853f84944856a2b79789ac7c73d18826e9a4fa6d970dbef77d000f7c3", - "0xc599ae73c9dee91ddef71fe0303080403753e3610ab73f242f3f8fe49b598b4c", - "0xf87d38124c8014802c3f523d56eb08ddffe645ed5d84ec1f11d025a88c594cdb", - "0x556e5962355580a0c44e5d80b28abcbf5a55feb5c81bd7b7a74c4aa664a7bf6b", - "0xdbb37e17df80f67cb8958590469d6d8a602b11b4dd28c8bdf8cbe873a386e644", - "0xb4932582d58d113231ead5a2d31eb8ccc0aca98a8dbdd9a450bf66fb4d65e18c", - "0x91ef1100276650f3dcdf96395859c123ee6fcb4686eecbb97bbbd6ed6ec6a656", - "0xfd5d42dfcb6c00aed36fb6f5a38aea10198758e59fdc4ca80b6baef694793fd6", - "0xb9d56c16bc71828af33e2a58b504ad96c96ea445c4fa56ba3703d6c8a971d9b0", - "0xa6ea2c5703efc858f9ec4a96062d32cfa23feb7d7bce6c25a12535c23b395809", - "0x72c1fc542e61af3181e988774989c782875d3b978df6e837b3a601839225dbdd", - "0xf332d4922e029f84d9aa2f49f910191df88f7f1d96d59ffe03d8956b0a5d54ff", - "0xe45ca95879c07250f3a317bb34d7f5bd0188fc947bbeb04262afd9c78039e197", - "0xc8c33079ba577066cb8e5af8c0682ff5575aa64cb30e400e5ed73fc749933d9f", - "0xc3e6fa3de28bee05a531d588d4895e63452eca2a188385727d466b87462c54c0", - "0x6740e11063142bf755d0bef9c254673af1f72807c3be4c531212efff63636f6e", - "0xce52344424c05c60bc7130b05febd30f611a081fd287757442687ef4adda6948", - "0x99491636ce876cd89f40d38ead2ba1579a050c16400052d516dad0a89b092069", - "0xbf6cd1f7f026023683c23d9f0d891e765823885b211420b9a6b33947138776c9", - "0x7b478202b808e4a54037acc93daa1136c6fb27d89b9f897b9fd3fe9afba73ee8", - "0x2cb32599960b97177a94c84ad7a047967eb2e212415afb7f1626a75a75cf1b46", - "0x62ef86c77b59fc2261a10ff39d74aceb1b7f7051758e5372081bbd911f56ccb6", - "0xcdd56a98c6b30e17a3239158ff7d91a415a28e7bb7e9528cc9996c8db8745667", - "0x8e432c62c747d730b197d6462d9369e5e9c3fadb7f36702c4c76803c5dccaee3", - "0x9eca51d69547f45fac4b49f0c6f126e9b5c67259880d28112dab89ab8264ed9f", - "0xdfcf59e4a92c389ed131b40b048abcd0725aab626f4fdd3575a37b4a3a206549", - "0x5152046f56a54c8f926ed10300d516f30a4a624aa7fbb888e465ba7359c4f3cf", - "0x54135b5e02b568eeeae74e59f1796650424233966758fcd1d007a727145509bd", - "0x9253844423f0fb792a2248fb887ffd10be43114b810b2635486ca0f6d43bdbf5", - "0xf3394a79eb65ff0184fad992adf3d0a86b5e6df85b629abed224a85460261db3", - "0xa4a1b651f300133e86986fd3a881e6577c6fcac410bc58c63f4b031e2ee2bdbd", - "0x5e074eec6c53dc49c55b50c584b0855e8c5a3c64dc72e73e5cdc1b086d07596f", - "0xf110a1c5c23d3bb9ac48d2bb03972e11e04b52da5eb62db65a4f4a2ac8d2c068", - "0xad11be682bcc25d30ac1eb6ad15990499d488c402ac6ef78085ef8faa5d4a248", - "0x0e13e09b2e3b8de9e5fc9e93382f06b64f03f98c3e26a5b3af811d32136ed0d5", - "0x494944f0a5afa4efbd967941129275dd6046535ad489443db1a384798cd7a02b", - "0x38474b45706c7cc93dd2ce11c41ac7f12f494c38f3a00c9cd38e44bc8771e04d", - "0x9a986ee21db81a38be8d1ed319f2d2558eb22de3899942fdb6395a188320de30", - "0x13ba368a9882ee28efcdfe67f4bfbb263fc8bc1c07b6f1369d3bd5ffdcbb3a01", - "0x451ff9f8e52bedb6a0f47ca9093b83b7d9a61e94329403d8eb913868945e0b6e", - "0xa04bf418215767d2aa8e6a8c6bf6563c80fd6f439d8d8759d2a43d8f4fa69630", - "0x551df5f968cdd4d0b78c1927b20383ddb6183a62f80480983d23f734be98c265", - "0x0df43d41084f9aaead6b9d77cc8f7760772ea1d27bc574bcde7061985e2891eb", - "0xcd8fb777f3d81581c5ad765b4f6d7f9c8d45c92466c65fdfb02637f226aca9f8", - "0xe4a92928a67ce00b8569eebd95c446ab82ba5beefdf467ffb0ac1bb08f4f471e", - "0x3ae0b6e5ed51401ac85ed96a84326cc1e894fb89a24269c9f3cd25ca157cc698", - "0x8363e4315a1a914a3d98eaadc9d985324073cc04e55b5859264c997d6d22834a", - "0x1e77238479593a1ab25b61990f3876869d2d87c9817e061dd82eb43e6404e0e9", - "0xbf35e78bd78e97326d6cc6c87f9f9c89362234327d06a65344cc9e692cd0d739", - "0xdbfa8ae2f7df4c5c0391e50c5cf9e144b45763a13ee250033d133c08b33f8029", - "0x828df5dd874a8e47e198ef4751dfec528c34348378574baeb2cb3b85f2376dfa", - "0x60deecf89aa73bf16f800255387ce9b9b74e02820b335cd96eef4b41939461c8", - "0x4e6a6312ff2847e8e419be96cbaf266ffa7aa91139d9d59da4b29c7e28aa813f", - "0x6c0d32f28bd65f020ac3c803fbed871422d6c6f02cab380056721825cb05cc22", - "0x7639acfede0e940dcea1965352cacf2b08f8ba0cd4254608a1033e2c80b1f12b", - "0x235155d27105a7f73b46d0c4a91c5a4978eda6d69db1af58d13b89076ebb98d8", - "0xcd1cb877b7b138f598658a39d1e135ae211a2169b2afefcd80923f244630233c", - "0xe9744fc928cf00f5ce170b81d28f5bc8f324d37fa535f2cbc2a23d82406d0423", - "0xe376bdbf2b052cc9d5f00f36b0af4d360174ae54b52620439c25d3430f405cb5", - "0x5a00ca653123aa856545902da24e3066386d1df00be733f95a4d105bb722b085", - "0x8e7995454fa8c9e7da6f19d9860cd0ddcaf1232033d43325b211c39023ca4d7b", - "0x8047e3cf7584e57729cc92c406f2c9caf41d9f5b3fc3a1f14e9357c954972474", - "0x7de15b023b1f923008d08ef6312fe8c3db5f499a26fcb3594795f47a30d28c85", - "0x7924df166e716bd934f98797b4a7f344693bacef336bad132ce068c6b70e5ab8", - "0x9ba0b15b18f2735800255de7b9e52fa971f2ec7bdc7de455c2e989abd27d35c3", - "0x9a5707a0ee4ff0d88fd8f9b5382ffddc558dc6c21ed9c8daad043a4ff4a561e1", - "0x898ea840f2e1e07c23fb9e18045e8addf5291661a72d6517b029620b52b0eea2", - "0x8f5ff6dfcc7c8ea2022c7b5d8ebcdbf713d303f164230a74192ca06fcd2ef20b", - "0x1508febeb95c2d3ffc8f1d13787bb9883be3529f8d71accdd55e747211fa8c08", - "0x2c7e4797847fe62a55f64c64977462cb792d9ec899e16f1a46851aa670d09eb3", - "0x825588a04dc941ba395deb99c00c282373e042a064cfc1ff557f54d8e0479187", - "0xef56430f5950a91b9a2028a549d4aedefd7322e36793d3cfaad18f97b58e9e3a", - "0xb92537e03ab350a4fd855bbe5175e8ff0e0df0fa8588885fdfd33bd2e37650b8", - "0x57b54ecd05c5582b98b62caadaef9e3386962a15c302caadde0f3ab2de98ab8b", - "0xa3f9ebe4db242dbfe248bdf7f504fe1f92079c60babdfad99a1a1adf446b3750", - "0x0939ffdb6c07b240cc1448f7276d7c8b436051e9488942d4b1a5afe5a0103aa6", - "0x778210367f625571f9d075ba06aa1ef5a8b59a411ec25b4e9540e7dede11e013", - "0x12087182676e11950138448ec4258ba3bd6ae31662f13db6cbc46c52a266dec9", - "0x7dd65f0f816152a53d8221e5554f4d3dd293219b0537a600caa6c5b758deb4cf", - "0x060370c4afa823b9cac3b2a87af1a989f8478169da3e12ad4073731a6729112c", - "0xe57c5b36d7372b192549e2ed987cc16beb412db8e22c3acdaf1f1c95ce1af81b", - "0xa9946d302b6f3dc7ccae4e4a69c21c862da4dcb9df371a8b6486534d8d3c6e76", - "0x350669a215b44b8cabfb6019d89f5268b299d6fd9db56fbea93cdd9f4991a977", - "0x4bbfa211e42c2b92c1cc979f6303e2eb428292500c6b59f0ddeb87c3fdb4b314", - "0xd243e1fe99ff82487def980022b204794fe4eb5b8fd657b851f7f5f323eb81f6", - "0x0eba7b7031613d9c2cce87ae3a9ff6e7b57b8e537913657c5c97f80a65f774c8", - "0xa5ad33c7f0755f82a0d6f47ed774bd8f2a00a66f2a967a52372dcee62f52c099", - "0x36d42846ce8b3021f00a615c0423d1bb1f00ed05df1748249a79c8a515a5cff7", - "0x7808d7655fb173387cc5601c469a26402b631c1d3e490b1c1d25e2e2e4dc3807", - "0x533b133383362a66e34e9e261442d4b867ea762b4422d2ebae579c144621ce20", - "0x46e2dffa796139a441b4b2a2ecc9530924ba032bee783cfae1ea1623508d55a7", - "0x0acaaa36ef65ec28c8a5447a2d594e48e4382737fac248b7895d3521cf2730b7", - "0xf191dcf174b7a1b026a9e2ad51a49a684abbd84556988b8cef315c3c5804f032", - "0x940284119cf5d5667d45103ef0cc790cb6540926c0f645911c669ccb78f6f127", - "0xc8be6193a1a094924999b527d81561f1ab47966c6fee7699418aeff2e16dd27f", - "0x3aa137a876b08b74d0e507ec47e72ae5d2049e01a83c68b90860ed7e9b594f4c", - "0xe375dba7c6b94fef6314cf569f887010165f40f930156e15c2897ac50db96e4a", - "0x82c766f09a89d2d8644603c21005c342208e2a61922eb13b476dcfa9de9ebc4f", - "0x06bb8f251decb2ec72365235d98bb9c0e0d0a18f7ef7b069f70eb432455ebb7c", - "0xdc4d5d8aa9f4a4e224510a32df3ac984428b8bbf38a9638fad1c74a22cb32c0f", - "0xfa394e11c7ea81618a3735ff52c67d182a013caa52897b10e1057de7a95b6f92", - "0xbe3dfee256c7cea8b110e9915e167d56479f5593cc5a8bd7e6375539c9ca8984", - "0x3caf7941bd973212ba085982ea0707889aea831d3df45468060a1f8afff8da93", - "0x17ac6c1fa00755480ab3fdd4d5969e8477d55ecac99ad1b1dc123e677560062b", - "0xdaa4e5841582d605767a49d59dcdde3067a61681f40e55e19adf73fcabdc65a6", - "0x465b0a0f2c6dc1583d1517a303947d372af513284cf2fbbda30831032c45674b", - "0x450b14d7773bb9ce708f8dc12aa7b8a9a83161eb8086d6fbe91fdf940f24cea3", - "0x0893e90abc7481e9413d33560ee9087d5e39305c0ee7fd8168d09da19c9a9e26", - "0x3b3e3615b3cb2402f807b1f7568174a6972421f3c6fada50c489428ac6d3a3e0", - "0x8ca9eb6c550474b93362bc8eaf6cfd7f39808dc115242310ff4ff6e5acfc121a", - "0xc55d95d03f1359410a23debadc8691ea0b53f4cc50073b449546c4422b16c037", - "0x26adc021bed5d143a3933824ecea25e0b6c577d8cdb9b899a86fbf706338dbd5", - "0x81b350f0026673f871a8981d899a31e2892730fb58e4b0273351b256e74151df", - "0x8a97e6e927342a4b9ebfeda5f5eede61ddd23b8b4421a0d2a8baedfaca168cfc", - "0x96ac659b574a4e63a8874a91fbf045f90f460b6c5b1222d72d8ddc240c870907", - "0x77c0baada7e37994e9f91075fc8ec335ce0a5d4f1627ceeb0a79034bed0b0f41", - "0x3b626e112b641b7ac01efabb2faa0b0a9166be0f156becd1254f0365d6f08a12", - "0xa15072f15329fb0c090eb5f1f91299421abd81efb05a00efd1361fa10228d584", - "0xb44bd4b0648b95e0d427cc5173d605fe21b00a5ee2c26d44d7c9a4f49e0fb521", - "0x0794d131e1ad17eb35301fab7566269e99b48b2e4cddc5b75f0aa15996220f03", - "0x994a7c6159433a62ebae86bb4212983478372b94fb3712bf025fbe3c5169038f", - "0x154a2ac1a23bf367f6873a7b51014d4377dc1008767510440a490365c4c1fedc", - "0x5881a0306e88c24bff0354b5df839f86178d2ba5e54d3cb80889df8e72952c38", - "0x770ae9a90625a5424e470f484f2c97b4f191eed61e15813dd59cafcc5bd0f127", - "0x6eb956fc5c743e7a2e02d694cb9c643e5ef97f960e90b75989aa91d3da1edc5b", - "0x3100b5a08d157428c6c10271486d050f913f436fc99e6fcc9b8eb1be9dfc39fe", - "0x507a78e12cf89269bc156b2fe5d991cffcd6ca6d7d085aadf8fdbb44d7689b16", - "0x0d2d43bfc425c8686487ca97d7ae5888535f5bf4d5e4feff6769ac36e1ee0946", - "0xfe866c43ed650b6fb1d3719df09ccb5126c36add42428bb8048a6841a88b4520", - "0x73ee2d004147c22f7beb21ec84293d6cd5974289a6f4eaba670da364df657a9b", - "0xe20395be53c10d9885bb2c7cfd78927051903ff4ad8301cb6f4e54c471b79308", - "0xc039903cfa0af94172d211f2e5c2c653d7d31905a1c194aea0a4be85c2dae075", - "0x468490362f1a7781b4e08d05bc1417107daf8dbeb092f1ab1a9e2d8e604741cc", - "0x186a3a6e4e1ce30ec18c1d72ecc4fac270a7d1ba9cdca0b7937794913f25c603", - "0x2fad6bab068378729dc7edeaa8ed516b6274396f21d24382d889f1146deedf70", - "0x257f8eb447ab096ce41e774fc4874335e77f750cc0d6bf4bf3e6b9d699de203d", - "0x4ace53b3bf327fd95451be5144dd2d62d906a25234959e33410bfd28e615bf11", - "0x0dbe710b12cd27f1196c9d7f1c5a981194ffae507b36b287cb758c32e264cc17", - "0x2c6def5c3a93b3c718839efe26835b0096efea132f6870ece1c33a7e91a2ba8a", - "0x2781ca465483c0079336532daf646104b9260c29cba0b6f4399feb557760825f", - "0xfcdecd6aa3e2c1b4d9f1991894cfe5d75f198dd445cf61ccce1c32fa8ec19e98", - "0x951185273ba63162c2d920f5acc888a7e4c1c6e755ab1215d8df5089276caf43", - "0x3e092b4e7488ba0172ed20dd9189f06d19a74269231edb0a592979eaf7c0ab88", - "0xd03afe649dcaae2de18474e82cd88935f50091394511a1f334e7590249d2583b", - "0x20c54aac1af04178d8c6ad55dced6e5cd2b83963f53ca65cdcf503708206285f", - "0xd8102d6cb1ab6c9f5f13a38ad0c375587877b22a6836a882f128804d5577b527", - "0x323445a4e659b00a2abd18bbddfa87dbd824877eab5693930c63a4704f0072f8", - "0x21caf56fdbf708f486b7756928bb74f117cad771a850dabc2a69291faf2e8d6c", - "0x4227752d2a7118b37d2089ed9319095d388c9048c0082f337d62d5275abb1145", - "0x78b96472d555ffb616105b2b471e2893ad6e1f8b735c4596be9d74f028932693", - "0xb11adf3fa7f2922095d6811564831e7371f87f4d417c730927949cc6b5227bda", - "0xebc5565e3b1338fd34f4427bb60075f6461dc072b097ea9a95237a411cd8fc8f", - "0xf4becc05db259bcf2790f79cc1fd1c88396db483c2c85c127818374be47da818", - "0x8178c8a0e6eebe2be426cd30266ef6574973d200e84339196bf6401dff1fe746", - "0x3d5a6f60d5351d577ffd38306e3a12606a1a3aea9023f2b8b8bd2452847d6b9b", - "0xa80644fc78939a7e41d390c6156ddc0d2b96f80265e5ef333c49e167dc585ef9", - "0x3e141f89a256b3b45cae79ac0c604dd9a19c09af6f685157872b42031bd62e1b", - "0x01a6910b5403b23b6e0102f4e012e0a0c06dedb944d36ad4c4e2eba8cb3be4ba", - "0xea5bed79158402d5f0c295f363a211b26d9ddf4d4d04e95564cffcfadbcce518", - "0x3a9d2d41ee14a76564ccf9a56d7c6d1ce732475ffa64499706b50e8ecd0e2050", - "0x8be57936b28e208f26fd382bc1404ea474001287a2c4d21e5213bd9327253ce2", - "0x672af36bc6de92544997f7cde2ea8870ae0f09b4cb2c22e8fd2f64bd88911f60", - "0x0d8d34a4ca78aea4627d1439402d4f0c64f130043e45bd6db1a0511dd16328f1", - "0x376539fe4c0de33e48d4c308800fbcd3606b82482ef9addbf5bf9092d6a55f92", - "0x93a25650ba0615e36facc75fa2ec8e86d6135022a31d86722307432871d6b72a", - "0xe95b8505b1ab584e83efd0bfb62a0d3c45785ac2ab74ff5e58178b2e742aa6d7", - "0x6fb4db8b3eb5b55916e2b06536b179ffec93b7300e3be36234e4ebb915a840bc", - "0x5d7545abcd38bffaf08f6745872e0dec47b0867df5102f42d83fce722dfe4406", - "0xb6eb5b0ef418cd1158ce9588e003e944d8afbd704eaab53d2643defa365115c3", - "0xfcf5ae4e3d7e2ba5e29653d5b732a1d86f18e2aa79ea2354958ab5dda5c57f4b", - "0x95aaf721f3c015305eaa78a8879d2f33b9270deee9d03acce855f0f44480dad0", - "0x054b3629ed6ab0be7ad07d3c658acc3ecfba8e9ab68492838b35690556dd722c", - "0xd87e3fd945b27bc037299325752c775a76f1c3b5b7c825fb9b6e2f6dd3680975", - "0x827fb42c7548a9f034a835a54ccc598398d2a8281677638197bd8d2bba4fdd31", - "0x7db908e4263cf7cdb822e42acf0fc9aa94999a1ddc327b6535e0a33c5237d1e5", - "0xa022198a7f3027a864615df968dd6c77d03878e12b9f6adeee611deffc82f33c", - "0x19269380075fff6af87dd26b7824ea70398e3802ea3c6fb2b4c2ee630562dc75", - "0xa13f3c9a337d9aaf86b0a5e5d5bda796d2f1d99c7548278d0b752e304392c3c3", - "0x13067c9ed1f15b7365541cf00ee6d7790aa0cf24ef3c60b10f16d0b5d0d67266", - "0x8d17d62ac8abfbe2b9696f918d92912199177e94ec49628baba2ff3897ce8323", - "0xbf65bee541ac0ed5f7529637a156446214c77018c5c59f0774b410bc9d2812c3", - "0xb3980e23fd6ad0683e19db55b7a8837a14c5c809f52de2950788ddc7f6d2187c", - "0x2e633f27e48af14dbd484a42b002517456028a2323c49916d777ec5d00accd2a", - "0xa44bfae290d8ac9e0ade331b4c362f5008152a38199996bc71d17e41d4a90069", - "0x8cfa7989fe18f803b1fcd926ed6e835286acbcd4dda22ffefb24cd3fdacf2389", - "0xf5b997a3440078a7c1322b70bae558cffc1234bf459cd295d5cd3d9be135242f", - "0x2fb715d33fe3c624ed35cb931c0a5b38475c1b97b743c15d5f0835d4836c1e02", - "0x9d1f7e02c66eeb6a75899233c02467624b46b7720a0a38b9af62a363480bf8dd", - "0x0c0a8f695812e88e92db4304d43c7a12c4958350b4df66813235dd0a69fdc643", - "0xca7e816b73d005cf04f08dcb5fcba1657fb6d339a2435fd74670155d097d6fda", - "0x4160cfa822311731d67d0f23948b99abd2fab077dde4efabc3a9625686a5aa73", - "0xdf9702f40c2564b7d460c35d25642b58179e12e859f935f7b87d41bcdddb517f", - "0xd24e79820676effc95265384449ee4bd8edfc7b747f2285b99518a2658470c5f", - "0xc79e6494fb1d7f01a4e8c36b221956e16097e92da140c3d3ccf336d5d99252e4", - "0xff84f37720a37852a94d31e3552d7605e403ca42c74830cd2856055448bd60f6", - "0xef0c3c8ca70dd9227d2cac50c3c6dbc272124b74eade2f26e6d20e21de527f92", - "0x82a1e299f56312e65bb42a054c044d58914109a9e914792ae888fcd94e30897c", - "0x948894d3791476e20b63650460960af12d2a33a4d9b23b6509ebe216e77e1cc3", - "0xd7dc6732db63ff742830bd429766ae73ee21ff37fd3831f5ca0e39c3cc16e284", - "0x594af612776eaa16e4f10c2416d5912f025df7c1284653ba844bbb3985e53b1d", - "0x348ee29dea90b5e6cd96abe5aac2537734efc4f5564e854dfd8153408f6222d4", - "0x9eab3769bdda9b57cf3b2a8d07a6dc2e07c856a15a79faa7890582b43f26e6ac", - "0xb97f381205bb10d19ffa24dd62f64b8687422c1a2967ca3b1b1bd59e30f5b5b3", - "0xf2bad3504422193b7f8dec65b2edb5bae77a3ec12a6403be0cf98e6372c59886", - "0x36a4a3f86f14ddf99c0822988616018d1d569a55f3e51cceab26d2a5ed6d1f3e", - "0x2976ced02e0fd21ee9992f847e912e4cb480d676347c721a1d8cf088242d2208", - "0xc6fe83273f10de94767eb3d67bd5e7ded408d674248cd87ed64e1e8384f15998", - "0xbdbe5d93b2812f44914fcb97b0fcc61a6cce96b9bc811e3cfdd6c9ac05619faf", - "0x415e343e7ae318153d4a9930f9779aefdfed85eb31a5f63810836beee854a370", - "0x33767db7f68c7432d03ccc405554fcb662044f6e43a5e073a8dd473f012bba66", - "0x32a7cf4985194e23827f89e1589da83b9158e98219b173f7295fd0c25310fc79", - "0xa304a15516c340a220b119243565f8a75bf6edf678029e0344ed6c1a49fa96c2", - "0x88c0c9b589f7c89d38f3f83a18dc38d9a3bcd752c214805c0876ddf2a3b45b86", - "0x216643d8038ec1cb6809b8ac77cf909dd160cf433da853e0572705e00aa210f9", - "0x4e5bfb91e5929da7d07e2e4ec30ca006cfc8399439cbab8c0a612e1f951fe35e", - "0xb20afc9312798f01965cfd83deb2a254f477636a565eb0578d8b6a86abf16fe4", - "0x83ad6dabfd5de39138c7dbac41b9548ec3fd601487ef3215fd520b4d8fd505f0", - "0xe96fe232f32f9f4a45842d502ca714f933412210eda69d28eb11bfefe1f60786", - "0x838711b43402e0c6ffa32b6c96ff20d47d8e00cfa39cab1526e7a6a6ab48a239", - "0x1d29b1af9a80c63e675ce5e957a98f31c57975fd6ff48adc3f62192393881c9c", - "0xece5ad70b3b260c8c7247d1e29c95a6347ade7034c26e9a470c0469bc9a91900", - "0x2cac591b892b14911202dc80a32e50c1c80a82a6f78a8a704bbc3e0c4f726cf1", - "0x1999c48903a3a6ab132189d27889c19c29eb04e65aa7d9a8c35722dabbc66cde", - "0xd03f863788d323b508d695a6ac3fcbaf93b44401efaebd5b7942c635c10a7eb8", - "0x57e92bc43ab1a66e45c054e6b46240838422dcaed9701d65e3fe41035b7479ce", - "0x848a6f66c7f5c3c25ae9f0783891c5f004600f274967870a4e9aeb91c34f11cb", - "0x193448bef47c66cfdf060191e4bc58820a3e1c9424a8c9933a1315bbc874d4c6", - "0xb9821736ea8e93609f701ebd178f00e87d4c7931deb9287a76ee40424eb377fd", - "0x88b01f8ec4bed91861870404d1191cd0144e0615943c609e006aa7570462ca0b", - "0x4014996b1a6ec5e1bc625a304ff1bcbd310b7094065dc6a75cb4070f44fd343f", - "0x1b1db3c8dfd7843c993cc50b4dea25179310ba77d1ce0459bad775bad54c7cf8", - "0x7ac6bef10622a0863b979573f8b9b34b9008980a6752027838ba7a50e68b077b", - "0xcaf393ba83566504254674bb9e8cabec2b1c366f4e7a867b8da663fd0dee1a01", - "0x05769a695b0b171e849df667fd873d1de4d1b0fcf67588986569e631417df8ae", - "0x13c76a5de115bd5bf30c939e21504d27e10d7e0ac5ea1ba4e71cec387b469e1f", - "0xfa24eacdcb99a7d18c49e095649ca414b3477d4188a3129120847dd513083030", - "0x907c3b7af8b74131260997f69c41850437dd00ba24b660371f23a1706835336b", - "0x4e812bb9a20644e2c48296e39688409d3499bb2a250abfaf8b0cf56ad0125aab", - "0x3238205f0b9d4062ae1ad8a5191d65f2f50bb3c0b7e1351fb8b66fab97a314d4", - "0x9130f27aba4aae0e7d48375a67f25fff231998d7b7815f24a2a8e86fff39ed6f", - "0xcf32280598cd5a0579a5f250b8e418567d31f3334fe8245c0a874d508eac745f", - "0x150f4bcda2e49b6d09a975335d33dc480db17ac59a508f28f6f05dd1d3caa22e", - "0x379b96da6a733c88a0888fd3a270c889f5e2c0728272e3ed1d654c7fe582d9f2", - "0x8df473f7e356f0dabe0d6f917728732a3f9e0519cb8e399ade5dd98762d0c1fc", - "0xf8b8368aa697e7748404e589f2f2f4d2808e7cb35086dce48437702afb8b882b", - "0x2b3560074c07e7955151dfc09b1293fd759d286b65dcdcf7b2c9f3dbff404816", - "0xa6361ee7b8af32325cb36304f400c9c685767c96d0b5181e7503ddc8a36eafb2", - "0x51405ec92bb2c7fb57f95c555150afb6351035e7553a63d26fb87e1827a6c3b7", - "0xa0290cadd15d77123903184806de7f04723cbe2eb4bcc2da4c926bfb3195cd54", - "0x4bbfd31db415a8bcba7188529ccf09d7cc10037f2c3dc7671ace6d4dd60a35c1", - "0x918152123a239ae6c50d9895940626e7f77ea624596d1144989a5fb7e10ef48e", - "0xef73abb8745093394fc130c7145e2de31c9457151ed78bcf63171b7633e22dec", - "0x09f80e170b2a1d599185c562344821d0e36bb48f91d8205653eba143deea6cb6", - "0x793055e11ded973ae3b55bb95ef6e985ecef03497e76e4e23ac477f6ad070fc2", - "0x2ae7e9c72203cc2aacbb79cd7cb5cb7fc4b997c9c740578253cea957ffd847e0", - "0x9f8caf269df06cc8c81cde32f1ee4f081d8a2ea8d945663e0339456e583c4703", - "0xb8533ef2fdac7587034839d1ce877bbccee50c473d4546c3fceeb7ecbf661f77", - "0x31a51d443ca2a588596b3c6a0ddd5fddf7abe8138177babd8205d165de21e76a", - "0x0a60c5ce88246c2e999725b2be6c330dd2482145fb0859ac0dad38f11e24e5f9", - "0x87d81ca8b664f33920634c62eab8f0ba3fafdf28ca19279b4d0c60a71eb738cd", - "0x1070087084fc2cc2e47fe731b8f08736cbef46194d16f418c87befc693c8a8b4", - "0x09140a959753b2c1622f0ad55f8f5d34b5f52a5ad6de7b6112e4ea1b8fda9e1a", - "0xf3af8d94fba3f4a6e018ebc0fe5088710876209a39e37b85e6b6bfda70f097ca", - "0x3346983bc9ed1f7f4f112b38526a92e7b416f30e4d1c7a934c7d74974f86dfec", - "0x587472df09a53693596d6bd1f60485df25fdd54fdcfa4c20f3558107f3bd4588", - "0x4c408ab0922f27796fd4fef68bc20c6385647a8ad4397a4a553fb68c5ce1710d", - "0x2eddf19c4a6ea3c2ec855e5b90ef78f3f861bc6317369db137f1a7f89110e69e", - "0x30391283286a30ea6df7b5739c7955a1a659bb0c46f3ffef8a58c0140d7386c2", - "0x8ca8497844280911bd97ce06b69d9e09a86ea135ca0adce596614fb6c584d0e0", - "0x9a699d399b3ea784ecc1e4f2dedd9ebf9a383fe44f40b4cc67dcce4ce98cd61a", - "0x013681943970f17a86dacea448bdbcd0d0ff56b243ef2c147ba77e58f1b47c8a", - "0x8717f032bc745c9a16eeacd20f3d86872e9cef3c4c777a8dfd867ab898e73fee", - "0xe3d4059812ed8f3d4e23583544131dde2a56276dd513d2679be07a36ee08dc48", - "0x265ff09a3d0413bc7bef45d66e34180c432b5f66ca96f8c39d390a83c5821411", - "0xddcdf72b890fafd78daf04a9e2afa824de34b761c25876763d9814fe41a9fba0", - "0x75168bbb488d49dc440360206d5b36d8934b1d9c50d8d8239cbdcbd27f238796", - "0x57aeafa912ef24841935fbe295c7f922b61bd729afce4537ed4985d06fed8eb7", - "0x7be35f0ba773bbabb596b674d73d8f0b9e6746688322dc99536e52d6f0100183", - "0xceb32481ad49ec6c259273d2b302352f121fe3c0d6a38c2576fd0667ef1c1088", - "0x1e1a7e3edefa2943844e452e8d4959f06681449e91622a537e196c7f3c069f5f", - "0xc4c5f628c0e705d6ed6e84b26f74d76a4ae13b9a602f4ca8fec8d94318b1e05c", - "0x324a02a05df574b12be04d2ae137c409a87963d524eac913d2b671d950aecfed", - "0xb1c115671fde450792a1bf3541d8024e84fa4239b3fd894af3ffa25bf4d10da3", - "0x9e9db6ae30894084f36122ca1946b96851c0e2282cc4361fdcaec5381552c26d", - "0x230b1fdb77d049d548a6cbb9b4dc8ddb983c3225591a323820b908cb79ac5ffa", - "0x88bc17b5d10e4b474c9f85c935ae3cd914aa437185f9bc7c03d66cf407e102ff", - "0x6ee030f383a99122c498a9c43bb51ed46932be9cab7efad96fac65f3b39d032d", - "0xd600f1dfab24e5b671a68e56d2d27f288e9b15ecd870b0fb3d811c1cb6fe17ae", - "0xe892c488faa1e15b040acfee5411b0c6cc93d1d9082a605436a0757a0cec7a85", - "0x8607ed1eca84dcec9c9c2d9ca8f9dcc952de7ea3c54c051d0d41e78fe725cebf", - "0xd9f378c67ea3834d89a85d72bfab542d6877370c8b542d1be2766e867a25229e", - "0x725ca420d55211930c77e292f602f58c281c12a2d10d77ac70f128c122272485", - "0xc141d38375f3269e92d6ed85dde2cfff491b9fa60b3554ca9909b944838f7781", - "0x572f4aa12ec73e99f35c523c864ccc964422946a0ffc5606792cb65944a1c61c", - "0xfb2f827d05901a25debd15a6b5a45d6a42f2fa84e212f79493e46e760cf8d620", - "0x9f08663b613bf973e1861e244e61e4b842853b8a388360234c85982e94ad96e0", - "0x17ce1320123e19c42bf806a0f204c9475cb3340a0434eddf3d8954b08d8a3c26", - "0xb3d935cccef673064e94e186c4649d19dbd7d6fba4ab7802eeb44fe4e6448bb2", - "0x2a04d4c2b009e424a88196f109923ab308052c6709b0f37f31131a74db07ca2f", - "0xd30500ba7ad6548049313227f37e094507e03d2a71792fe28f2dabe6c7a477fd", - "0x133f0204075c4a44764bd55409878a85f730f412a64d8098bf26246ed89fb88d", - "0x0dd3f70cb92468b09475aa687e81d84b7b5551038813b1dcecf9ad62394bf29d", - "0xe9b2107b3efdfa5b52ebd9d25bc17cbf934190af323cbb821aa01454809cc5b7", - "0x5a10e855a18fb6e2beed325f9d4df38645e52c8098761996a455eb3320c2819c", - "0x7ff65f7a24f95a7408272ee4122f202e2d651c084495b5173bb046bc4618f96b", - "0x06b0e4bd3381c9983715fcfa8c3f48b4beb289754fe7bfe8caf5eb21901c8ad9", - "0x5ef4e799c3d7bc81fddaf790f00166b63255836f5e03bdf584ad2535e05d3cc1", - "0x9efde50127e985d2c255ef17a7a5c82b46242f18230cc68bac49867184e897e9", - "0x78309317ac6418cbf58090dc8091b3746ae1b5f05b8b082610eb28d101e519b8", - "0x81851a87801abc649ddf08e1e372e7d0a50c8d18661bb3a13193389b06854ca6", - "0xc5170992c381aff40d4d02f0b1978ee689dc9ea00d0665d53c642c6e1617f82d", - "0x9c4d06f36bfd2a08a02715c5eea44ca07adc04b1176f7a47a3404af181feefcb", - "0x7f1910a654df3160f91affee5f286299958a5665ed0d37e39ebf429b281f5b4e", - "0xb60950ce3005d7854f9f957b4f1f49f0b4e781728697ad312769ee4ab80433eb", - "0xda6666bca71087804de7b3567e1f0047bd69f8f62d0bc7f63aec65ce8222ca2d", - "0x7e9625d6fe07985ae5a378a35cd5108c1db05e429328f639504fc17527b2e04a", - "0xeb606494a39941d272aaa9cc3e18d2c502b0438de5ae974e6687e2c2c433104b", - "0xfbbdb8353f8288217930f085c51e0c67eb9fa268cc66c0a96673918501119802", - "0x071dde3764caad8163d85a5a7d9a05f31b857828db55819afc95b08e10d6c87b", - "0x262a03e39027887a11b93963c7ca4676cc2352fbe46a05ca2e432902ca4235ee", - "0x1366a718f5e2a2b328943afa839241903a4bdb776b6f732d6a0172ff8c9f544c", - "0xe04d325284bd27091857f289c6bc8ded91dd16ff7ecb157e39965c3c98058e34", - "0x648d5113a9c413874f2e8187905045f9d8e044e29cd4dca0658d283d0944a130", - "0xe7706395d101ed29949e59b10f69214eeed0377be7af3cfa8231b917c6793023", - "0x7d37f50db8c210bec2d202a7211565d53ccac0e9b17baf887a9b865f4a57ddb6", - "0x73302fd966c3e65c0d0e7d610dcfd1a87970d26fd2ac15deb73d812a878fb8d6", - "0x7cb0a793aa40ea9894377e0f941b284a792065a8fb20a0bf60e8dc51744f07cb", - "0x1c2435e5e922dbd482e3279cbf88a632e34fdfc1e7bbadba3247e11089871ef4", - "0x8fbf585e305c90965c47c190b2e125276a5cf5747ea57e60e9bd36feefc7225e", - "0x320d5616868006a5f311c79c86761b47f683ab7ea1025e794a9ee45b699793a2", - "0x8706208d64c31ebf34d6c4126f72787f3d604dc7c0f72ea74075bd21afe21686", - "0xac6a123d378afdcc284d34bf487714e4cf9a090da9d9f3d67bd5510ebde00415", - "0x623376328e2e3c6ffb9a25250a24a5b8486915317fab74c46c06cbda943dd74d", - "0xbbb4c4513c3902167bc14cb17738633113cfe22ed5846d409fde2446740f6b9a", - "0x62ce10523cbfd602cf3e3e5b8c09b310f4bf1d7c645e3a2cca9d20d156b51f4c", - "0xf427a9a8c4390d7a4237f0b72cd19343c4986e771b180421c21dfb37e6912c74", - "0x52980fbe4416be30e88b1fa6e3325a0037feec3b6c40ae66f9d5e884f2deb153", - "0x9aaf58f469e9c8362e3016de4b12350e8f3c28f86ce58702fda69be65267dd04", - "0x0fdf4d58461e0e9477d39c18eb528501eeaa066dd61aed414a50613182057934", - "0x708b1667152c18475d00a25c8b87de03dfa6b2270bda21278c0dc0faf21464cd", - "0xf7903da3c49bd894edc260ac372926d90763b459539eca32eb3865d4a16c9bd5", - "0xf9b6180481cb5b2f4692793de59cd707c71b3f6f7396a40e506fffecd3c4fe7d", - "0x6f298c8d88b0e5120805b453e0ad10f6d65809fb0558c4bb5a344ee00aab4745", - "0x4bb3b6e0cf86c6937668b4a298da229492d98d99212c88e3e60af9e89fe7a4b1", - "0x0e2b0211c17ff6e28c459ea410d3bf33838eeba869c4d46238a25994fcb9dfbf", - "0x113e8f5c4c21ba5909963c3e65b112c78c19b8f3d6526c55de1af9a4b1eb8d60", - "0xf19f2f2e0a8de0d04a26dd1a10e96257f4a6a764b92d7c360453db32d65e89ea", - "0xb20efac16095e63f5f530de22271ecebb1fa7bf4d8ce6f49057327d692caa5cc", - "0x8781f616535ce6b3352820758ea0ddc74ac97e49a3ae9eae6ab0bda4e8741606", - "0x205895b72b02e22c73c3fc2e814c121d6b899c821d72f1b02bfd8c122fd817dd", - "0xee8e1b3a255140333295253ecfbf9a2d375d5ba1ea2879bd72088f6c62b3f9a9", - "0x4d3c138f077007962fa3fc56c7e5bb409c860d11ba48ca9658e67473fc4c4417", - "0x283ee3738c2bda7631f3f30fa2c29d3f3bed26c63180c61e1de03504b48f7c38", - "0x900a45ce2bc0f4b331d3df872f3d34c350f6b7dcdd704e36670eba878776b303", - "0xcd148e1b7d3a4ed41c51129d14cb226ac20ff975de1de2a802ba93b0e872f2f6", - "0xeccc9ff6f75fc844cdc8a723ee3f168d3f54788aa99a5f81aa9e609f8b4e4ba4", - "0x9e4ba2027ba44f31bdeb8ef27db30474de2f3728fa0607f098eaf8f03faa2fee", - "0x8d7289beac6c06009f0b72c2634c176a0784afc8bbd484bcd8040500b15f902e", - "0x9624bce0632d9a49d9b040a45da65e1d686dc6e6eed7eb3ec1536384b5cb3530", - "0x8187e9b62c764ebb82f5bda0bde0cda2842c47dff910e81c03db5c83dcf02da2", - "0xab7be6424ecf0041a1a0aa6c57cc231270ee6e50b80e6a8e07f6e40e8e11931c", - "0x43d8ffb420ac0cfec24a8d378d7d35230aef8887268414779b09247543b2f044", - "0x185cd7124a200639a0f60f1412ec44083f742960e46897a85d45a04bf5ab2516", - "0x91025f84bb714cd201f4d3539f7c5e6c7cf9fa83b399704ed0130b311c6886ba", - "0x13100633274ce0d423732cbc1bc1610123959f15974868af0b1900b74ca4cda5", - "0x3b00927007417f0d762f6b37c7ec0441e963a9afcf3d54e5be1adfa4278010b7", - "0xa8e59f21955c983044955aca7bca29aad4d408a1c958ddbc2ae526a87e3fabbd", - "0xcb836def3579f067bc45c0dee5f9a80eba544348c7bda65964c6b1fa2866e0b2", - "0x404d40e1bcf36d7d4e34b32eadbcf5cfa858be1499b088fe8ace025a2e73d3a4", - "0x2d9a5f05bec8712d206349bdc8fb8ec897cf2ed28d295cd275c31c5ce46c4fea", - "0x48c577fcf9d050f2b35ba0195606d8b8d91ac17e524fe0b6ec16be1ce7cda0d0", - "0xcffe1c3ab5caf25224c870cdfd63b4faa738362299cd37cea8b66cb1542f0201", - "0x7bc007a452ddb66827cef27c5bad01e87265cb38cf8e111ee7eebb21cd263bb8", - "0x8c26cc0839859eba7744b73a03f6318e3ea249736ae20bd206461e79bd7e401d", - "0x165e4a10b343dc952ee54c56f21b74b6486929dbb59ff24e066115bf35c223b1", - "0x2ea42214e74cd75bea948323313453dc6242fb0593f7e267abf5e544e0ad7d2f", - "0x2caa11a0a255bb4db80e305ccff40608534e638a17cb8bbfe6580a035cbc8ffa", - "0x0ad0490a3008883d02cc92624352fb7caba9a97cc46f82d1e64480559778edd9", - "0xfb24953b551a2b544ed6c6cad2755e6aa634112c3e225607a0efcb0d811ffaa9", - "0x4ec8e3591d27b911b1495f6fcf5e6dcc9461e9e602b67a5bd536bb0e6bc68f88", - "0x790b7eecb797e391d27085b27cdc5d4be20bf78de9918c3d1ed72ece2738dfee", - "0x7b73acfbce9837bbc5f821412c92a1b58b3af2bdf08b4c4cbbd12e151efcc90a", - "0x16e576b05c5c95fd38ac7d53699ee8b8b3431d78a5f671535590cc1c59c78039", - "0x2b4bddc77ed675df91af490a565c6ece5247335c90de744d6863e24e624bacbf", - "0x277efde1689605ebdaaaf4b9364449345ac664b5fe270736b2a7f2a97301dbbf", - "0xf727799af7a95e92eaea1bb2e3a0f79cecea663113e4781797101acfde46c234", - "0x54eb62372f7c5893d6be0a031edd80a25cbea3db2a0edde69ef4bcbfeaa24b4d", - "0xcab1e0eaa0aa475de501b2e3fbb5ed790744040a465a4256c4397e85a31f9eca", - "0xa0c54864bb507baf47aeef61433ef7418f68295f08d24c8acfac1eb18982163c", - "0x9a76cba0046b4e4cc89aa333a0f633147056044624c1b4c1c61a8a62f1f98573", - "0x510d25772f6e14f8e14905b05d8cfd6384561994ec3c92cc76fd37ae6a9812dd", - "0x39ffb78991cfab4236e4bc04325331dd8be2e06c4162f8e51aa592b27e1fa0ed", - "0x45c4d7eed33f4be6f8c0aba3ef42ad6a6e5f654b104895d9d662ea28704d6b43", - "0x21887c54231da9d400b964c63cb2f5378ca3c15f118fa105c0b2545528cf302d", - "0xb71cd47b4a6d40f9b18133c456c2aa7eb2bfe6170ca723a0c584ea28483d13dc", - "0xfb3c2158485851f4f564370c590f4a6b8f6481e6e4736ce9280a89d946b0e016", - "0x5c3ff34c067986eea52db9443be346eb1576498cedefc4a66379b24a3244fcc3", - "0xb27349be4de4d9be3cc9e904f72455c2f131c0beae6757592f49b2f0efd546e1", - "0x15877d8cccfa9f9cfd60408c5a6a173597c2e091a47fcdbaaf0a944a2232edda", - "0xa004d11f0d305763a613cb6d3d44a493ff669c5098b63b3f03e6402adc207bb9", - "0xc033417010a0f390418ff55348055e8b3e676c1d060f0cca2dad80aadc3b253b", - "0x035224e9c4e562b1f0c080ae58a7e9b8d48e565ab0be332fe580303a6b3661ca", - "0x6c7f4fcba6dbe1150b5bc6ebcf176ec3427e555978ca7978bdafa674cd50f4fe", - "0x4f62b3544c9828f9b7aff8fd5991e32b4f18e72c12b1d582c671a71aab4cbacc", - "0x8124e36227c5788e3608c63a93a8a0d966e4d8e12a81e2fa2378a969dabe0ef2", - "0xfffb09addea705c2ae3583b45e80908640b728867cdb8d49b2b1150280795b49", - "0x6ff99c0f0c3b3e208373fa3b7f031b8023b6660801a8ddbde0fe8668310ba332", - "0xfff2fb5a358d3f2bcaf5040e7e0fb9ad96fc918f3be7fc077a8aba08edc64a9d", - "0x3d734511c149e8c1f617fc48fc9edbe27da5e2837dc634ad4a359cb4fc1ce32c", - "0x0c8903bcec94ac45ebe8ee7c5875c23216d9399f7d14fcae79b7af4efcb4e503", - "0xf020a8e3254695e8c5a7b0a952531af6c886719b9354d4142946304220f18b53", - "0x4e1b5e445e923e783b878b943b0d9c9d2427cd8b71c346b79968faaf2a3ad337", - "0xea488d31ea2b67854997c6a88db87a13b4594b429b0dcb531eefede8e22308c0", - "0xc5dd53b4f8c9379c0f86e6b1270b6838d6a6e689865542791917251273c5360e", - "0x1646e9b43ac92494a90ae04647a4047f8de9640aa6f2c2c137962bbcfc80c8bf", - "0xf2f64a9c2e2de9ea1e314d84d44769a114c7035722f5cf7633145c13c5986216", - "0x62f06eb562f3c838c3b24a3da792769e9de8e2bfeefbd70c7aeb9271f19f439a", - "0x1cb36e1cfcfc9e4d8292cccd8d8b8f0bf90db7b63878e147188b16ec19754110", - "0x0316d23ebb039aa69d6b3b9b4603d9092f800b191735abe2a8ea2937b943f725", - "0x4c85e7f1e285380f4d80efd1d572781a93234149b8628350df7d93cb7625155c", - "0xde0010a2a469394e8422f52d128b930aa52a773368c3b8bf38a0dc830f161f8b", - "0x05ef4316554e9e05ca9a16c20f178481b630322c8dd438cbbc18c2bda644fc7e", - "0x64673e06bfcbe84232442ed29179e0b235d29e398e2867a484c2b60727377bc0", - "0x8dfe2659a262b307fb1cfd68fb18925a310691dbadab254c0a81aa9f9ea05c7e", - "0xb0a9fd59b0cbf68d53654d131aff4449c0fdd18217970c3de8d1adfe58d1f4c9", - "0x4ba2ff3b6232b74f661271aa29654638b05ce829083f54be06d8ad4290182910", - "0xe087ab9202b948f3c20cf02cb21f5f1b97d508773d8d7c2e5baf14fd52845076", - "0x702e6b8f663d10c1054de9751594d33f9e0915f1d3c71b36cd9c974574ebc85d", - "0x4dbec1c6654555295d0dada515dc606c18fd72e55b3cdb63ae018b1661c4385a", - "0x151d1c8c60780242caf26e5aeb8860f0ee9bcc4968e96c8c540d3ed0690d9635", - "0xf385a1e79bf23ea44d14b3f8668175342846ebc31e5a6790fca01b52074aa6eb", - "0xf5e94b06a1fbff820e98af762dcbeab9d38a45fe4099728543dc4784ec34b1e4", - "0x2396c1dc9e8b6cb903f97aff55b026511d64b88b08a05c83bc2ffd6becf60ee3", - "0x4b76c7764b5b098c3168779d95ca4aef2b861201c427c416c97b81372436d9ce", - "0x1a5d26c1839a09d7116868abdb2626467ed948bda413adeeb09c1eb146863369", - "0x25d61eb2338186246b78e3a4c4857c89cc6df0c77ec0f19b2d58ee9277c02d38", - "0xb9fab6c7fe62208f5f9c2714747714883987a513f115ba8d4c6904df172e9b0f", - "0x44f2066089cbd0ebae33e1b58179db26332ae99534ae4f864abc94fbcbdf1acd", - "0x97ffcb0dc94906687481210847ad2522c7cbff5758f6242c8a6ead1a010c0423", - "0xd681901709d666912f87058a300cf15b0bad137f4f0993809c37372ae1a73bc8", - "0x1e89c647ffabf82e228aa2ad65a989da66fb9f4a8d0f3efc7d66d72ef75f449d", - "0x40177f69aa2c7f7711c6e2212c2278a861100f1a46a99c340992e776f278bd99", - "0x8c09a1a9e84305a94b702fe21ed39db90d2c0eee6ff21185c555496e99c9807f", - "0xe13af929bc3b6b693936cbe82ffec90cd2d2e177758af41d5c7c7f8b3922582b", - "0x4ed170e95d7b677fc97533837ea0e350a30df6a3862d7b7794e051fbba68adca", - "0x5603af56d81026197df080dc437f9dbedfc82f1acc26f2ade39db63033b7a053", - "0x815bce3f12b5c5b5ef1585ab98a025aaa8117efdb75d2b677abb4522e4b933eb", - "0x603c0103be82ae58d4af604be625016b64c4985e3f2aae31ed620d1635d85a7d", - "0xcec52fdf68b04fccc6c7dc2990412c955d08b6bd4a7a3f0f9fa77d77d1c3481e", - "0x1b3a7d5f6206a15645ed55669485dc4e1cdf7ba41f3488427e8b7202d6175552", - "0x59946fdb729dbda327e825d64932da21571c83e4170c1c7748c527bc81937fee", - "0x676793de267e7078dc3b6927cd472eb1babd4f537bdd8386ee65b88166cd592c", - "0xc5379a7f5ffd7942f9b7590ff83592d91fdbddfa09c040006564434379868110", - "0x44860e8cc625991899e5a5c16d805f6b1aab9e1a79fa462e4ff2f92d6c40e76a", - "0xaa31dc38a358e3a1fc78c4cabbf05517b2ff78e23befdfcf7595074bc0b5498d", - "0x9e7d9885b3a84dc90dc25f1a48987d8d4cc1cd08f51baf1c3f33e86fd17341fd", - "0xd6790620e79c46699c21b0bd61cd09baa1e2b350fddf6d125c4c06fe30a3244c", - "0x4f60d8a3dc5859f69f1b96507527d2afbf899854e72d0d12ef27086dce561a53", - "0x67bd7c84772d709e1276a1863ab4b26ec84eb02767a804ffbda23eba3a8af0d8", - "0x707155713c08309b0ce29e867a9c025e36876935398a87d1153a997801cd7b96", - "0xe94c592379266a58679af9df945fb443b790e1c5a7318a5a1738070ec479d1eb", - "0x00205e95873d1670a9212fdcae09b06fc941128e4db1427fae7b3de33105c292", - "0x0a730cf91406030fea04d74b78d1625a3e5c73a1e7f39fda6db9225e064697ec", - "0xc32b3134dab797f09bc4986a7d9a969b9331a99e431b4026abde8d06a7910f19", - "0x7b9fc8ad3f2bc9e4c680e2400fad27bd0de271f193cb4f7e9727a87e999aecf1", - "0x39d65165378d375fed612489145d41dd4f9d57fcdce1a5fbba35a09210edb201", - "0xebe86247c803ebe65de42feab2d95a8d45775f352a0079e6a868692f444fabfd", - "0x04eb04c01e29b4a0f96cc9072576a8f7f3cda3fbf9b4050f3853ebf763bd85f8", - "0x701a86ebe017b55312ad8277eee062bf0a1b1ea2595631c9c28c740da3d4c117", - "0x57d6119ae2469213c921ac6606f41ed137181c179d6e207d21693399d3b21e67", - "0xdc189a5837c11ead4c6a1b7530b718476a8d0ca879fa4e499d72f7d8fec348de", - "0x96511948f65eed76fd3e17c9f1201e605ad2ee59778df04fcfeab5206dd29192", - "0xdb3930b8a1e2a8eb35940084eb0e98dc53aa1d3aa563e3ca6b260a50cb3a68a9", - "0x806d567cb6fd15fb18007354be55fee1c2b5f0aa1b1e5229ed0e758910af617f", - "0x6e2e8273a970e21164be1e548b92963ab241a68da41e9e231c12ee08bfa4129d", - "0x168e45c60dec2496e48b471b7d2fe1b829e9111191e6bddc936d0787fd42eaf7", - "0xab1ec5c8aeee05f24428c291a4d8afe776a92826f6e58dde95f8bf63e5c8ea29", - "0xa9db30a831b1ff69e38b342ee4fd3c9a8c3f5cf7b647a0c7f5735a4682eb42db", - "0x2b55ec4fe76bde0bc4f8d769d3b182e4ac7fcfd85a28c89fd7fa5d511f41969d", - "0x74ca1b5889e8920833042da86aa8d1259463827bc0cc9e7796144927757e7db9", - "0x5a3d4a8bfd449265b74b85e62305c3184209f12f4f55271cebd7d2df56b9983c", - "0x0b450e356dedc2d73ce19c6028dc5d36818cd3714879e5a402dd8cf7465b2253", - "0x073f03a0316a886c4cd71d4cec42ee7705b6cd897932b6547612f3cbc5c6b8c6", - "0xff2b0244634cc4fc8cae0b44f737dd47db2cb60e05578a34b336c46d0ddc8f09", - "0xedf8c719f93e1bd0cd421bdc14c03f2795dce10bbec5647eb98f5a64da5e7f74", - "0xe9192cd76b33b1d4b09e7d8c3e1ccecdb7a532420dac942934ab76d6491fafb5", - "0x5fa7a590d22896c2ae781644ca8db3ecf779691609dee9d0554ce562624a1e9e", - "0xe6af198683501ff90b9d14a343553e0c5d7c5b9fdf653311e022ad4a33eab72f", - "0x3c28170602ddcb77078d6f715a6629aebe4a35b2498a2cad37057f3357598dd5", - "0x29aa81bc8d9c54f146917aca4b1ea1a0f147f6ced0d23a647a51af942826bbf1", - "0x0056b54bb953c389159a761d3a405b71cb54162481f5cae225b86c8d2f409960", - "0x3c4d9ec5c31c3c087545487bfcda5db713f1ad44450eb310a66d66330b67a0d0", - "0xbbf3002577b95053f241733cdf991602a570a6f33935d50ad64bd31ea9a8714b", - "0xed526f4ea68cbb5a15baaaf6ea698e2d293afe848f3056b803646046aa6d5526", - "0x0162b7210309d0144b8464d21afdbd80b5ac8bc3cf5a93f32fbb87565fd4c30c", - "0xb051288210e1d0ef546dffc2e52026815261e2ea866e1276809000a3e7e3d060", - "0x76397a5e4c77029699eb10959f51ab090437888ea06b1c5d0cdf16b74bc44d3a", - "0xb5cd5928e3dae6cee3ef0fdf7f1deff66628ca8ec29743bf1aedba2e10fcf9b7", - "0x6d1f9aa0f4ab673ca6d0d0f10bdb491882fd1d582c2489eddfe7084eaca0b034", - "0xc636f215b9918856a0ef971a2340dd3d3019ba671c0118c352a1bf64e50f0e61", - "0x8ed6b16c3b89411cdb2a92cd42f2ba4983b26a83eb3112a6a376015458aea55c", - "0xa964e5da59c92492270317ca6a0b86402cb22e0c568dcd20a90b3e826846e634", - "0x2f16af813410d4c3519d9bce71c3c31ff09799d42760f49790f3789a2d365046", - "0xefe1139708e6ec67886b9cc3d6efa9b2b67868c626c3541e7d7a17c75434f2ae", - "0x199135b37713cdf4e1ef3766e331ea84f8e4911552de1e3c133ce9a3a3b52e1f", - "0x400cd17cba12320d710833bc5089c070c482f6fd4188b704628ff47611ca12a3", - "0xaf26e7080fc110911a649b03f8212b43626cf75c867b2af9e70cf35fa99092b3", - "0x346dcdf1ea179f89187527d73747c6bad12ee0efe4c02eda34ad3704d24638a3", - "0xa6df7e1b1a8fc69ad26110c0166383e5d4db331e98fbebb1b56611e0f7539a46", - "0x9d2b7acf84de840c1cc035a355360919ab5599ffce825dcf9598b6c8c23bae24", - "0xf18a92492752d0a118efb2ea386767122acfaa728a39d788cbe1e836ea0f6378", - "0x28f49f4f5a61322658ca40035c0340af61bbde7bd42b74c4a1867b19992dc787", - "0x890dd6356256b7bcdcb27d415c10709c6e898e5f947ca209389b42872102b36b", - "0xa24f6907d5fef0a0c28e79c3be437bab1e4470d29365b9b4779378099a9c3007", - "0x7ce1d586d950a3875954ef50e2b6bacb51e8cb11db45c34b709868aa7eb6bb4f", - "0x5cd316a998fca726c58a56079b8793d208f2324e399413aad3fafae077d834c3", - "0xd367cca6c37fe087c9acf4cedc12ae875eccfa34a4798bf916a2ff1cb245a8b0", - "0x78a1dc488545388a618cfb6eb0047236adaf32c0b5bb3dd35a1843720e41afd3", - "0xb7bdc303b26e920a184e250c398ffae03fe29491523b68e2a9fd658c7f55a734", - "0x72ea58270b1512daa51c08840dfc33e657c4495a5f50bb6ade1fe4e7f2e5d35b", - "0x3af82e240d734c66ecf715b2fa6d42a5976f5451694a9669ed49cb4ce6d495c8", - "0xd875ad205979ae78c6d334e5c2c0c539574172be4f2113e53dce70ac6320e1d3", - "0xa808ff0a2eba422021f62c0de2cb9ea114dcf340fbd97ab0506461578db78104", - "0xc6d5c1cbcb505220f3f47fd100470180620e47cb5b7ea81b4e6b27976ae093e0", - "0x3f788657a09cc34dbf670108046d4debe140154ea8283f5a762b2a6f1927cc89", - "0x0441ef2e2865848be1d3bbf10dd99bd9b307dc6a3833cc8066f71fcc9fd4657c", - "0xa033b833635e284605c2a25cf4b9ed595a8f6b7b6928a60f849019b68e412197", - "0x0c6bf4f59f2369da915c5cda4358a1b84326c94cfde7886fa99c3cd8cce00d3a", - "0x16f8cd5f6cab6aa0968931090a06cd78804da1332ae794954e43e880e6436380", - "0xc44d1853d161e5970cc4b0541aa7498948da07226d9747191d677c1c6c61260a", - "0x63fa006b716a07a172580b605dec90a99f4eb1caa2b6272918e21206b3b08186", - "0xdb0d7fe87810eb83bad89d04f279a06a316e9cc9afd6b249f77ff8da54dcffcf", - "0x04a1e3ca62cc77963b58ef79a9e2ad8ef54216034bd160728a7fa4806c0ccb62", - "0x3db1db1cc10010514a98f45142815604a945544ecb6438c63de232009f525ddf", - "0xfd6619df5d873b255c6e516cf0e12ec1114613a5d803e877fbfff779ec20a1a4", - "0x581ba19ac99cbbcc948c61e0614c64008eda6a58604e9197aa8470266821f331", - "0x316dc2404582e1ab45bef960907fc16e6223639d1875f6cb7dca9c7744cbdd30", - "0xa5c585326fda6f89e33d470abeeeb12a6a65ce9624cf01c5e2ffe5e397ec8efd", - "0xf08862fef3ea5a98b6b4bcbf0b57b482dfa149ba4d5e530829eecef1b5e0ecf9", - "0x7bcb4c42db39ab193745ac34c75e68ab457aa03c83da11f7396df2491a300666", - "0x69424ab7bf19ccf3583048e9c315a5a5d4a7d85359d6b4a3a7ec001be96d7212", - "0xa686da5793c201b92867db72a5f8671ff473cc12617437874644012ff242984c", - "0xf8c11302b69a3b2ad86e7826f8cc85d0ebe21e6420ebab0a7093feb7f15b985c", - "0x6ed81186ae9545a36b50f9a0fa0c82f2f52bbda7e8e936819628629e29402018", - "0xa91851b0638a92d2733b63125085982e5ff2acfffe66f71d3b218ac4ddb4d268", - "0x895ec76e33463b1e9f6a38a15a787ba84812d8d3fa6385824618b7de7f8235d7", - "0xa2c45ceebbb227ca7396e407e26c88bbf0432483608dfd169a085c5372ebbe5d", - "0x8cd8558d7c920df4bff9226cb91dc674d8788376c694ecd27bd84291255b237a", - "0xd9e3c84a853e9b551d296c560048283aff22e0ea3a0853e60505932f06fc0b40", - "0x5148cbb68497c824a428f87cac9512dbe313abf6f4c2b9fe6ee78cf909d4322c", - "0xd5d0a750818cd28793a1238c194503635e07870a65d5a8eae084a6a7d152069e", - "0x83c94a89524371c5bfc66e3ebfdab49eafaeb77fddd5b31bf3eba609cdccb083", - "0x4c3e549fbc7854bb417e50dd281890c745e9748ac7d830acd9c867a2abc64db5", - "0x642f75489711b36d89b0432f92f1ee19d3b8cc1fa99d2c55e8659426068da0c0", - "0xa4a944abbeff1a3d718e28a194bee6bc066f01aafcd0d674919e19c4ce1f473e", - "0xc9336cd020b35855fc7c4c3febdc2a19d4466e22d76ea44977f50fcf00d30772", - "0x0ea3c8090512fea72c5d457e0f3aa72fa0fdda928124177fc07587db60ee4c8a", - "0x4792e45b5fe8a3e2179b0745521a8269d887f8751be3f2c8e1cc8aa9ea0ecb7c", - "0x7ecb169f378c9577eb1af269377c16d25b09dd2aae49705bef1d143b099ffd48", - "0xf9722b9bd88dd8712c2df0826798b903e4e46ebea1caacec33e626b1954bda88", - "0xc7596d6ba28215314a8c0cdda3929284a0f98b14b67eee8bdeeb245a042bf5b9", - "0xb14ae9ee5e30cdf8fcaa8839e06f1dd1c273b9a7f8aa33d6a7f8a2761d6411b6", - "0x160de9ec9947611c32bed5b39fb688fd8521e0be0c992f318e8ea596e932aa85", - "0x166b7e4682502a245b971d27420a50d028febe29a06ada52709290dce6ff65c0", - "0xb3c6774d9d1415508baa55827001283840a3cde35900f0274eb78cc169b20e48", - "0x067c6e4818cb6dc6e098d2f41a0f0d4d555d3079a271e15e24b40c2b33d48c91", - "0x5f43937304d8f1c5915bed915daf11310fe77358a83b3dd2579986e9e63a418d", - "0x361e8400ee55784c4edb63507bc047de04fef5e5c96c4f70c9a61cb5d2fd3f5d", - "0xd6e24a0733e82cdd74b1ac6ec0a54ef3bbad0f68461f804cefe07a4d7e15b359", - "0xa3ef3d7ed01caca083c8cd24b0b2e6b93f307ab3bcd7fb15cc49de6e76a85054", - "0xcb22fe8e323ef120f5ea5f6604ccf7d84adeef7b15f3d81247a676604d127979", - "0x39094ded1f8ba3edb8f9628d72375ba2700942e0870a267ccfa75419231f8ef5", - "0xcdcde1fbcfc0138689d35a44fc9dd9f0b9b43f6bfeb9fe29ca02018ee5e2c358", - "0x75759de7eafcd4114962bde0db7b64e175787ea56aecb37f5b1045900ee8cc0d", - "0x53cc30b0160d81c37e5b9ace29a55bf07beef84f1cd71307b140e2bfb533d0b0", - "0xea48a27931ef94e6babd0342424cafdc835663b381983dd325b00c8b12ef9f28", - "0x3189d2f6c9623c4570d93e4c26ec30cad659f8482fd4bfae5325932fe57afda0", - "0xf0822c0d02fdfa65e48362ca1915c07797df6f87e0a98391ab4046ee4266b758", - "0x4245d5e75abe515824bebc31ec8e2ed9e5ab027fae1c9c74b49e9522c496f00e", - "0xe4c84eb52baf4e9bade65b3711b6bab7e16fd8a21d1162a24911ecdda4ec4c97", - "0xd73d7c7f12b4dc0ef75f4aa6f006a2efd64a6f54f848daa05efaf9fbbc1743c9", - "0x3e73cab1286dcb25621a108bf70103b8a67aad50d03b2a27b15f32e74d2ecf76", - "0xeb61a019301e6d597516b59bc2314f75afd9f8c76ce5ee4b2abcea2d5af65d22", - "0x6e1beb679490b6480aea261f776194bc2943aa7b4aed0edcc06a96472b6a5012", - "0x5c753161fc23f9bb1fc76df8bdfaab24fe0091337a36a56d0f5f959e4a72d903", - "0xc60ec5c3fd1986c8478f5714691a31acf469a5ad47d31e1e6137969328e86707", - "0xae9bfdfb4a7e54835186e3f161249d435420f83a238786f23c261ff0705cefc0", - "0x3a7ca5b57771c703881e05743b76622360ffec308e21b649fa9d2b77eb0485e3", - "0x093ffff3c8d30950e82d67887d44844d21f5d0d333534c65115146d92d667778", - "0x6b460d7cdcced9aa43dd87660e073e6ad6c068c7ff84aeb86decae8a18f0b0ed", - "0x1e23074207fa45234ca76dff1a5b4d78ee87839029b9bf4235cf5484a14a2ef0", - "0x4236c643b14fe734a6fb1e4f9ccd7b6b502ee5d24fee3af1201d6fcd5e2a4991", - "0xebf1cabb6606d20194f82bdfc22fef39e8b73691c802c6421015615cb8651ae4", - "0xa065c07d917d768a40ef583dba8570be0e67c5c067286fa6ea55183ed17aff9e", - "0x2ffce3fba6265f1a82be15315ed6fbaf8710133f2b8242c6a3a3b40da66e98c4", - "0xc814a7b871102332fe8d4daf0c8f7333a9751e3f29b7b02ed4d15a8c217d1490", - "0x29a0b87325be7115d4605df2b65991421f6594b3d3348238a6101deccc88742c", - "0x1fa4239e68c4fb68ec4e8786801d25ccf225336d095888879953c4543a47ca57", - "0x2bc5a052f0832c656a03210175d28fdd0109676e5cd6daf08614b6d9380e0156", - "0xfbea1e39f1d77d1cab4b111962e1b0bc8580fa4d353efe89b95d1ff5f9d249ce", - "0x4e3c512ca97b1d6dc6ad8f0c17e336aadb740ac907924ca6e037c3820d484a90", - "0x26e3d31503539f6fb1220ec960fa450ba15db330a82b97584f48af03e71d3fe7", - "0x37c3e1d006c31c06526b0c02df45329ce4ecbae209231a2222dd835ead7bd813", - "0x9eec04ec09974b5bcea99b021c6fca264f32b3ac895dda421482b865e9d0c340", - "0xa7a9d9fee641431f2b2f217a57a32ec61f03a1c692304768d58d48ee1c7411c6", - "0x87a5638751fc6b716bc25e92292a977f0de1b5f53fabc89b342a3f8c096e509d", - "0x084dfd89d9e63f625d7bc139a9584182937321d0a5e2b61e280cfcce053813db", - "0x30b73b647de41f3e753770f967615d695df8b77fc0e1f770d9cfd8a8b7bfc1cf", - "0x8b05b1906879d64f6534f7231ae5aef00d86c62915537ee54956b2cadccd9c7f", - "0xf1c883baf6073d2244d5b1a40b7e7ab99a22252e6ed34627fdca985ab87d94cd", - "0xb6c207b47b98f0b550eec7dafb5e6bb23a4f1061055542bc1805b6e89dfe763f", - "0xb5a37524abfd343f821cef4a3d6c66d5343bb56dbb4f5217f7c32b888d72c3fe", - "0x326124edc233211d1dec747ca38045125b3891938e8b449b0980be57fab79a26", - "0x4857dc3260a16bba60639a37fe309f46351d2bdc15c1689b6b86c16ee8b4d2b0", - "0x6728195d486a624099eee5c9b07ff62cb8abc7a66aa7f2aa3cbc565ee614a17f", - "0x0a7ac687337258206323a3c49d88ad4ed495e9a18c848a3d8ff51be0eebfaf68", - "0xe0c1882697acb508290737788cfab9880ed09469e4093f6c95e7282f4bdae4cd", - "0x80f763c0e43b60aad58f01aac1275f310b3cde5e3e8f2fb47dc6587b4a5b21c3", - "0xf7b62180b642b826340dd1f69477a136146d341983e4bd875823d804ba205c94", - "0x6e775aba73a0596d398c5ccb9d0adb8d6236cd7dc235e833e69a0a2a369d225f", - "0xa3c65ff864601acedf9ebea681039ae9d19b961b84c39c40561c2ab42b9956dc", - "0x5f5dd206d841a2a0a85186e2dff2f7d862e47e1bc11fdf0c883412643cff72d2", - "0x39df5dbc5ebeb3d6e94e02e90f987070d9f73060e3751cb5fb6c00d737d53a24", - "0xf3a78e92493d0fdf6430671c820949fc39729a366b8b3355634522bccc6fc7fa", - "0xd12bf11fcd9ad2026a340671edf4e0fcdc6d107f338b5e8cd1e110ce8b2b1f97", - "0xf69a0ce968327b516a50bbad9d035e3eaf78e501c11807516ffbe6d847103c12", - "0xbdbe28bf74fbfc5eedbd363cf4cc2792e948ffd66df8006372396ab2b901d9b7", - "0x10fed02d557ad1ba3794d9e97efaa8bf7d6ec86b08c04c1a3c63e099ac3c6fdc", - "0x0735058d7226f806a87f80fe5a55bc6756c96da1fb92b058c08bb2dc6356f4a2", - "0x9c63cf37aa1e235f4fde0cf88c13c3e87396646136de26757dfce9373bbad078", - "0x54105bc5dae2cfc5860308caa5efddaf6d6fa16b6506900851bf8d9311d85945", - "0x26a920994c14e7ca38d62bbecc09c4885acd455160910ad3b778338fe08dba20", - "0xb7d2bd9ec2f0c1824ed85476d70eb3ae85c132545b09b5a3fc89bb647db61c29", - "0x44f8a25051ce2d5c3b6edd22364657af990fd2b327acdd258bd818dcea5d8f10", - "0xc504b1cc18b99305f83cfb82a9452ef1b6650acc7a7513771a9f1b9c4d258894", - "0xae14ce142031a2a1500aefe7d5bb5f2c48fef2d40bcb3cebc4465b5f588dec0d", - "0x26a6a67c3642f7b63505fba8bc8f4f2db35875820853a7e93b7015cb59ad5288", - "0xef2cebfed16dc3ec1ed7adf4d31a907b1c48986f3bc678f0e0d42260f3e5366d", - "0xcde8bd5a558e4b4aca53d0d164ab030a9206e0a3dc3d52750454cd5dbde67a87", - "0x80213b7c8404bcb599c6acd3d0c7b97c821f9eb36d1a261c7d59c66aaf783557", - "0x84974ac71d8599e8b481f4ef1ddd2365540c97d8a14bc55b036477b8b930a1b0", - "0x22d700ec6faf569754dace5bd720287156b44a7c647338568df8316e4a3a1590", - "0x0f174bb7672e56e087429fc4ada9fdfd4dea9f94abd976a2d9c1b3b2103883d8", - "0xa31dce1e1597f2603aba9b84f545c56947496b648b770ee9bee76b26b076ed0a", - "0x3bcdc44880d4cf88f9d3a107bb254607cd799cab841346ea3dd2e10dc461947e", - "0x54d99c8c46ffb8d4a6c2453cb2ef92abbea6cf8d666f627afcb1f7383e248c9b", - "0x4bad0aac0f99bbe49041b0d7b7da2d0b379cd9a1a4e845f04ee6c399020062f4", - "0xadb0bb1b69fb15d78f835ef5d2de20273faef16889952c0578d3be609573ad68", - "0x04adca8a68fa1db84b226f2e46d3328be74cb9596e037d9e2bc612e5bfa0910a", - "0x9630ded627a97f9641e9606a5ea8eb5e04e0a7e52dea484b2498049e26a596c9", - "0x146544215d83359045dd52eb7821325178f25f950585174c97ce6431e84c432b", - "0x743b7f7b7e0e4bd94ce1cf7fd26a42fe3e60946b46f12094336624b22799abfa", - "0xbe5842fcf8d27fd42b2dd344f4fa80a5ec75576ab0d3bf7df076d2c62c87ee63", - "0x0913189b9ea0086155d331989622986163ceb9d8df937b013466350d5b6cb9f0", - "0x179863d8ee06cc5012fde594f93fabd674cd718e529214acf0855ba7920e0e5d", - "0xaba24275c0e3fc84593d75c0ed0ef64562b2ca29a63c9651ce2972f466f588c6", - "0x59953a3a63270197712f70bc8c1f3fbb974f3373967c76c6ecb05b36624c4e9e", - "0xb03b28ea463ee70e33fe1431556e4186a773476100a61200a72dae7b5a917400", - "0xbe29685ad0f0e4f4e06f7aef6ac68716345a503096669c02f9a4cf2645b20fb4", - "0x77349196f4b655fdf90ac091bf217cb4afc46efd8b3738438fafea3ec8bf6afa", - "0xe0f3c1b6b1f9a822f765a8657ba73b6dac6856b86d73aee29ac8c67870cb5d49", - "0x1e9967c1aa6cae9e6d6ce588cc7be4458e30f004f07f0886bcea9f1894409541", - "0x48e90887d177e254c035c4e6341e43e2fd4b69934f357ef0633a4876af886ba2", - "0x18b962c2749d6fcc59615c7fe48242c4593b18d9c777bc8929f663bb2e500a62", - "0x437628a508e2589d87073ae2cce6867feceab7ed948913a5f367aba70ac752d8", - "0xc76db66e84e99a50d9d43255bd34937dd98666850f01c7abb61a59c61c48a51e", - "0x9c97b43a11c959976be2dfa43d3e427c81c9f65f0cec38a30174753911a0aa62", - "0xe7a8db25a547dc1ec612c3270d98ecc5d358edf0093e9a47f97bc162e2563c56", - "0xf8e9f99e26b147e30bd22a71a02c2e87a4f816947b23be23d7a998bab0bf42e3", - "0x9cc232de33ef4d9c2701403ee75627560a4a290ec00e9fe2bc3e48d22729e4f6", - "0x83b328313a8256d67a76a199607871c9d7d91ac4bba03e4c7eed2850b863f014", - "0xf785f6f42d160759627f956c381c0b2afe133191361126e1dfdcef8ef96a19b6", - "0xba15c02abdb13795b7ffbd05ae808df3ba6dd49d3f6bdbb7594301fdcdafefce", - "0x7cf481f442daaf09047af092254ea96b3e6fceff47e7354dca59ce92a7f0192f", - "0xaa09cc16199e82bf7ca1c664df1683dd68f60392383aa86f7a4d70db4fcc9ae5", - "0xf48584eb70849f03500c2992ca9d8a25c6b4af1dc6b267bf96b8daa844653671", - "0xaaea21fc3ffc8af49d5b6c8ff06d212fd5cecdcf1ee8bbbf11081b610e5efd56", - "0xc3b611e4a4769a4cd86fb97594b05eeaa1438a531661d0c46498ad1d5ff0533b", - "0x86ed5238ab44b097b901bbf7a2f76c4e554227377fd05cbde62ad678b9b40521", - "0xcecc96f7e1da3a85044251681174c283cdf818549338d0ac8c55ac32941c4c52", - "0x8e476a409ebebb50a6b4ea63a57fb97a94325048b98e9038155f44cad234c5b3", - "0xb0cdd01f69adb4482f4a95869c27e7f488b8d645e9da2a1eed7c50db91bddef4", - "0xd59c2ef502068560309402eeafba81b6104e4481d08d294fec8f4a14ebe421f8", - "0x117637dcdf602facd5ba4ebfb788cc6e894172a41ccd461371fb6dc3b29ed1e3", - "0x2088af0cc8a2d219cea2658be188bce545e095d526152531ae04a0c1026e15f7", - "0xbe9d09c236fc2464f9e96468304cb107c1015618c0777414048260ecf3073a80", - "0x0e21d49b429787ecc39920a7b1e57bbef8b54f6dff555afa96c6d664eba18002", - "0xe93a96a4f59c51c991822d4ee0ce843f194df8ef1df1aaa3b15ffd4a3deb2902", - "0xfe432910348f2ae69089ab89571297f755f70d9e52918b761b7cf059bc8fbfcd", - "0x7589450a89b93dd85dda9fad10249d5662653eeb34135a8c5dcfeee2723e714e", - "0xdbcbd8f60a88aec563061478b12c5ab4ceabe1deb3f2df53fd862fd6742c69ac", - "0x4c77ea8aa197a0446c2c85bac546f8eeb7bbce07abb092450f11bb3fb6410575", - "0x465ecdf71fee3c0e42f2dbddafa3cbfb53f4c9a886777cf13dc55064dd29b07b", - "0xd220779d8eba431d33a23b369241b357b399875205cc432069b445426d7a3099", - "0xc6b84a981cf211d41e16ad44b1e90fdcb71a92230c9ac679874f0cecaeb25254", - "0x31841dbf1cfba19ac78cd40136a8ed9f35a77d48fc927e049d58d62b3ff7592e", - "0x0dc4eef3839d33dd5a516a3d4227a3ce23a9a5532d146f37dee88898ee75e7f9", - "0x6859f52e3c1ceab008c2fd85fba4901d7543c99ce5aaf36ccd6534f4898894e6", - "0xd16539f006277c2a3dcd96d3f7e9fac7d5bb0d63afb1d208960e597ce29ac429", - "0xe0ef33cdd414f24ac2e67ab2329d3d728f3924c50032857e57dcc9999e37a182", - "0xf50b311a95bb72916c6d4dad0db9779144a85915a12f895829ca5de9d697fa52", - "0x3f773b516c1779a4c5cec58f6e3a0c1bbbefb939db70bd84ea4370548df29c06", - "0xa3348605b4ee98db29b6bf80eb8181f4200d691e27345732cdcdd09c395f0256", - "0x4f2970a9d6dac5eaabfbb17a916bef4571e1147ffb5e241360c6941ec5628815", - "0x1b7f448f52b39279d47b572e55bfbcf893e7d106436a46db2a0ecd888d7806c2", - "0x89196aa22dbf319c88fadac3c051c445c6d59eb60a62ee71158e4893bdff8706", - "0x1ecc71d15d386ece87caaab915d0a10ad763cdd38bdac269108e17da3183d0ec", - "0x99b80ec779eb253869cc4351371ac8f1896016de0c501271a0a15bc4130f40e0", - "0x09d601e2ef7b509d5343a8b6de63d70f99a453540138d0596b80e2f39212fe4d", - "0x2e0412de93ff148a1365719ef562f54addcfaffa64a630d2bebbe48275377d14", - "0xfcde011b08437d8db6c4e8661b98ec829e204729badd675782a7792648a32c40", - "0x075e3439595f2e5953419638c391ad68d634da037df91cd75ab062f5635232a0", - "0xe1c770b2b8f17b25736880a7d28e09845626879f61fa7bae77202178d26e2db4", - "0x10eb4649692dc022f7542da5156c8005f2a9d6c4b0ac81b5ef087bd989a83534", - "0x612745b3b43e42cb44d302016ab33eeb1924b8ed1a1bc4ea86985d88184a1704", - "0xbc23be71d7cc509307ebd055d02e396e867e74ff401583b5801546b12cfbce30", - "0x55be4d6f914bf5041a111b949ba61807b53707ad6aaaecb347e9bd53251cfc98", - "0x6207ddddfa073ecbeac270e0490bd4f1b126e25523350e45713f8f76074035ea", - "0x7c2806322ae925abe44606def3a91a9546ce5557e61517d22c94a6eb358aeea8", - "0x2660eb9fe82891120afbbf8d17c3a0c6e71a7373bdc961b398fb3924d769534c", - "0x8e94fda030985bee8161a349c74a10715ab29b4c404c4200332a124f8e6c8eb6", - "0x77c264bbd45e806388df32d1d30b7567af8463c310b2e00ac075f202594df289", - "0x11307dbd441966c22a78712e8026ef0be95c009a075b1d75881f45a9547c9469", - "0xd487cb10ea6f81c67836eefb9cf326cb01464b8a4c640359da0ffd0dfb5ddfab", - "0x32e5ceb716c69e4aa115de40404f0406841a43b9d1a7503629edfd830b8070c4", - "0xfc69abcbaaac051ad68462b2b6fb289f093cc8f965a31e4914fc1c3ecca0a62a", - "0xdb2c7749b7f5e8e60861730a3f39531c9fae68bc6d5cfd884b054b14ddfea8a3", - "0xa641637ef64ad91eaa7cb24851870874c04c74e3c57825cc00bcfca56cd671d5", - "0x6e55a7184ed79701a582293b72c847df32be67859a34cb73d1efddcf92c7f1ae", - "0x0d30de75a74723ccaf326a096048686a6236a5d9728e398b531ea34a20273e35", - "0xaf9e881b47ab25b2b667a9232cf562ddb07d30194f6a3358cd6aacc414e98f3a", - "0xbda5685b8567d1c43530fca95e4c671d4f090e50d0ae631eb7082f260036d5d9", - "0x21fe5a7e105e0e2f68698e20f88a9662bceb20bfcc884d493cfbed72fc78ae8a", - "0x1b45a77d8ce14a769f196ac4a195207a63241ac8c8ee42e17c3e0b340b1c1492", - "0xf8fc91a39b6e08d874500e240a6abea002794f104592d18ea01449589b06dc22", - "0x45d9330d6eecf2eaca322e83df77277c76f9a95b99c5fddd55bd77697cd1159d", - "0xbbd726c3aedf917c4741952ee3a21d3c1655aa27cdd98f44d15dddeda185c520", - "0xbce90dfdf79213f5e6c69adfd7efeabe74edd6e2f07a1af7324cea9d70615386", - "0xe50e0dbb2106fa5433506694325d6ebdfdf5270c17bfd255bf3e5e7c0177015f", - "0x22ff7ec5117adf2f0aae8532dd371ad9d902a69babe3b26cfce4a324854092a9", - "0x638b7c73e85e4aa5074daf2daf66c002c00de5e8196c2c01e6945d7aef6661a2", - "0x322d5f71ce4a0e743ce017f6ce76944023e858109a0c36fbab41c796b6f9c8ba", - "0xb55e7340a551bc76ec89ff3ce1c7bda807c75b6a89f0e97ff4a4ea59d232e91b", - "0xe7084bc046f4975a04be1ae50f4e46e69b7d0a3a3886e60f989ebac4a7d3ccd8", - "0xc540174cecd421363ed6b4a95fc554f0ed0a7e4622cb2c0643555eaddebf287a", - "0x03e84b7ce420aa276d9adce1da92c950688839cdd3dd621f797eba5b6986b3f8", - "0xb75090e43bc5790bdfc86a5c9eac4384d099daef3d40e9fde443409f4efe91ca", - "0x7e72b4a7ece28fef076331bac790e49ebf926423f2414c9cd78788c8cca28761", - "0x9b9b702deaa509fface95de5048fb864b80d7891fabdc7a9770af1b24777f5dc", - "0x1b056b381e1c60a3c126f2e5c4ed98252755a5d3b7f3528584dfd128eedfc89f", - "0x8711c4892f49f2c1fb0739de8eaf08ae8c8c279ec73e42fb4da5b25f22d73fc6", - "0x70ae1c1cd310003a4b4e36dfb0dc7351b6f49aafa2cfb5d691fb59a724fbd387", - "0x796d8689110932ef6582af180818bd11bb9df2b06ab1107879612dccc190c334", - "0x58ba45b6ff40da3f3b76da55a0ea9ca63aa135ce308c5d262886e6b1e8869621", - "0x8c2a83da544b209010c6b52618c3137c1066e4fec0e1731d6be408ee881d5844", - "0x1591af374ba5612ece1d642e9bd280a9318c5bda73ed67bc1e7d65ef5616cf6e", - "0x666b3f1a401843af2bfde18ce659965b5c200972da47752fc2b4bfce55625af8", - "0x23331ecfd36f8dc53c388ec3d97a1f364a55b8d701389fd56b867a828eedd187", - "0xd995e1e27b596233e33acabfe03adfeed6d34b421b16d5700fa4b3c234b91ef9", - "0x819d8d3a0471a292c89d0093c3458d12bf83b60394f8c03053bdde51cc08b217", - "0xca27ca64436b71096f37d6e0442a9a93097029d5f4b6d042e2a6bdb3edf94103", - "0x65d5ed59626e98c2bbd6350e4a10e3e45d7479eb2cb6538c5e020fbcb900fef9", - "0x812b423882226db0bfcf2bcb9f1bac80eec3388755dbcf6b613c9f6faf1517ff", - "0x000182526c28c1fb862e74300fa89181cb137a39dcc02fea67bd3a03900fdf4a", - "0x1cfc60d220c883c273603f885193858926f072d3e0094a337d12268007644d5d", - "0x453d43c8dfc8df47751045173fe9e5d200fff28042282d67c0ca9230728329be", - "0x591091aad61a44c41c91b9ddbd1b6159fc9eec6e9c5839c6a0252dfa11436e08", - "0x464a2b049caf36d77652c2d721850d1f8db2fa70ca0964c7f020152612bea380", - "0x8ba06aad1a433193692ffeba643a481e2932f8a2ac35ebeb04c9ff81866d294f", - "0x4d915cf4c14d518463805c6bc92edbec4e8e8689e141c542d743c40640559bab", - "0x0e72daf5ad4857e563921671bcc26eb186f37b9f9d44655341311a6b529200ed", - "0x07ee736bd010d419da4e5c37ed17cf5739a56a78947b4257264acea62b5d6334", - "0xfa03e571d821780ce501373b529ca3de36a53f58e197d64b57f0941288487734", - "0x3293babf49116d584283c915c0c8a26f9c696eff261e74d107dff21e8b2d08ac", - "0xb2f169d84ee6d4ba54b1d526282ab04b7539f216e62362fb20a569f129d2f89f", - "0xdfbdf7d63f67a6986a6c5f9ea2b49d375147b224dc1e489a45fd7731230038cb", - "0x827d46b120f6b1501977fd5ad96fd96090fda549d59922d8607c90ada10ec8c0", - "0x8e15c4714f44297868b988e72b2326eec72e148a849cd39c0447862a9f34fc9a", - "0x311aaecf73140d37dc35479828c96923690265c3591fca9b01b8cad0aa411f23", - "0x47de3df6c970ea79568dc7b2c65cdf8bb630d427d67ec9552cdc928b749a113e", - "0x72e70bd58cd9fe64b27016ea29637bc6d5f13507a803431a14465cdf371dd9f4", - "0x46367ab41a9815df566c20f6f0223ddfec61f02e087e5498402688770739f94e", - "0xf3238ded6fc3b6f389a84766a8ee6663f26a54c077b49ceab1661bd08b4a37af", - "0x0770db8ba56663e8590afb552b42e4db3748e44ff33cf19c483c2bd5cab61742", - "0xe88be10da232234c33a267b9b534417385bd21f9d670fdc0b3e73ad155871ec4", - "0x725cd4f97cd34753d7c39a5a072d2de361f41a4489720a99974df1b821e576ac", - "0x10778832a2f1bfb25ce014c78a2aadddfa245e5e539719fad270cbbed5958e55", - "0x4467fe919d607e0dfd78119a648aae22fc56e508eb68052ad1c9bae0d7c5a2e0", - "0xedcb7a0986dd70d8fed81c4a50c864bc3086a3b34ddaf437be7f445f454d7c88", - "0xb278f42c1518ba3b6d6aec679936d2130915f02f8002f8563b855d7cb3b79ff6", - "0xaa4b012061ef7e6073c95147a118266c6d3417ccd0133eb57d7fdb7b1ba3a5c4", - "0xaa263496af99304030953d11d771ae5e337bcc24050e9c944c9e89650f6ae256", - "0x3f99f4bb34f441ea82655d5ac40ae0a307c6ea000ae1a2eeb2709ffc0c624362", - "0xeedc934109c18a446c42cf36bb5d0b9755b439eb62c18c7d334c13c38d379707", - "0x663b6e16d36687a79cb14792580fd32a7c35bd15df6e6fd36bb498ca12b98b93", - "0xa4c2d103e57cc53f50c63066fb7802b6d77c474ef603e6e6b8ecd759c8161737", - "0x3d381365e830f7fcefa8a466f348f5be81a3dd5c72d918501881244417c67594", - "0xe3ee1ee45c13527eada86f390f69d112b97bb0bd20b40e609ac6be9dee116de4", - "0x9479836ff23cafc57b92900c5349180e90afc75571ec738021dff05f9e2681e3", - "0x7ec50e215e840a94aea029294fd6a48d27905886e53a1239699558631661dfd2", - "0x8c58dc1ee71c06c9a94d5fd15aa8fa4f7d90c8bc8d0eaab7d8d0bb2baa9ae4e5", - "0x017a3cf0c797ceedf53dec3cd522ffd6ad4f10ebf709b20dfe669ba1fe0a3287", - "0xe733cb71d8dca2d6e3c71d9cfdf792c8a6fd242af91fb17bf599eea1b6b75cfd", - "0x6e820e5269a6b6fb9e9c2f477cf796078a3c2edfb7ac8b99150d6660ffd22f0f", - "0xbf1d3b3dae3b10422e2c354533f8bd504b1f5852c942618a0f6b415c3b162175", - "0x12fc9bd3a29e5ceae601c6a4e7c92bfe6b22684cc1f828dbd2127ea56e1aa300", - "0xc19e28d20c121a0345d89b097acbb6c15d97253895d06b8dec219f11f84159a5", - "0x73f03ac8b09a769db2a30f44b77d4d5dd6d61fa97afebe6795acc9c5c10cd7a5", - "0xa92cac86cf8bfc4fda37a94e5f55763840084dabe413f2432c4b50ddcd3523b7", - "0xf7eb6d87cdbb534507ca9ce4cc42a03eb843d608d6e2bb42c79bde78d0dd05b9", - "0x3bffe93f111e1883a29b897fc4b33c50f32db2470d819316577bc38e1a5ed179", - "0xe44f4633ce949bd8312b23178b6ff0e3d72b30dabc546ed5b5f2dd97b490be38", - "0x5e6dd4f45c09aebeff5c87b5e8c3b7b77ce4991f230dc7f0dc62f460e684f371", - "0xf1e0440dc83803d73ae9a3bb6454a824194bf9ce4670adc598ee97d1e150dbe8", - "0xef43649067273a56948dcae0271f9a336067610769b2ca4553eb7bd891ff6731", - "0xd9bf0ef6e8c057bea8046402e5bdf0977eb34bfbfc9f14a37576a8ba09232dae", - "0x38196dcd11fd1c406b5201be0286eed3a94a263a1990b66272c9b8764a5f2f43", - "0xa7e55d25456b2cb9541239879d751e489adfc4c0e232445a9232f4462aa17294", - "0x379ea9b1194e78792ddb00740e0c87585ab9a1060e6a2239fa6c5a9130a2a490", - "0xea0d1449333060d955f4dbbd0c0e70593489585465b37202cb4936164296addd", - "0xac2adc5be7eae9e0a63b5758c964ed5b203f37309d92ffb1d22aaae041fd9f0b", - "0x37be79f2f0ebbd92f82502d12dfe42f98f2e75517f444a295426b6829a6b0739", - "0x51a86fba7b41a59b84cc56d264f5d6d83a40f233f7d316c143c29bf424fbf6d3", - "0x248215d9d66288e4c2ee0c182abece81ffdeabea2b16eb986c14d10d69ae4efe", - "0xd8affec4833fd827b2ec6d4c1905e8cc3266e8a825a7502b59585fe7d5ee653c", - "0x00cdc19f0fa69766a3aeae1dd17cd9f61afe15ef6128a957f72fb3cec4cdc02d", - "0x8c8b43d75591539f17fd442b604a58763abbf17a408958ca181c3593dcf0afe6", - "0x055f6cd0e80234feb885657182cd2fc44fea12c6041d20cad8d257f2b4f16319", - "0x487a48fce29c08736e352e4217ba5714f361f02fb8500ce6a2e9ece79b1ac783", - "0x807974b9c1da9879f8967e7dfe02e8e3fa23d08526963c8b22688ef10de36374", - "0x080fcd507842ea3176b14ca52d844df2f9796b4f1281f7d03180c0461d28b801", - "0x95e5e32410daebb3a023678845b2e1fb9097161681c150450c7b76fb8c5c1311", - "0x420611006cd3a391071c6fa22e82d836b5db225fc266b99e126934d5fdf4ac84", - "0x4bcb71688e5ac4271354485f2a28a3c63d67e028183db2a16b15dd718bb89762", - "0xd428d57137d70ec31c6299ed366f69057d9bf93ad06e62332db04db5c3cb425a", - "0xa384c72f5ac5864dca1aef91fb19d3233e4ae3333d68bb320a583f532cd7766e", - "0x9df6e7ec6a1f455ade59bf1cebf6ae1ffb94d1b05249c35964aece90f2ec9f80", - "0xe53ec67b4d7c04b2c7cc7abd797d6a7c8b759b24c8389d103222f3fc83ade921", - "0xf6031d3cc54fe050642891cb57466ad51e0e8f24a8ac52d592e531b0fb87c971", - "0x842c6b20d8a93c3b23e679094fa903feee295c933c9092ca444bb12f966dd650", - "0x38b30dce467bc4347f65f7c7cc4c8a17f58d58b1779e302954fea9e061bb16d4", - "0xe23303957fac2f117e5749e48e11842d6f5a03e97acefb4667630d281351da5a", - "0x47a9c1072f12cf0f42d209cdd33ec885e6e21d13587cd8f75eeb1f879ab55f05", - "0xaed88507af6c779fdce8b5afe124a51528828e734744d8c12cc289c21d7eaa47", - "0x1b6146a607cdc5dac7cc1a88f260ccc2f5883c8a95665b2c9761d9a119b09009", - "0x6ed83952b5bc9b18ea070cddbcca46e42d1f4419c17a51a2dbbe47a0fe7df731", - "0x7544a913c1e6bebe68a6c04dc903860e5e6fb66d4845dd0d98b3ff4e5c33e3ea", - "0xfb6eea6e7399be0c2673dda0ab64a6802d6b2eef1550341d894f1f4146ce9270", - "0xddb39bcae9dc685e7bee0757743f2dd67b56d26247931f4f184f9e8f0f603f28", - "0x363c1bca93f3ff58a48f7d233bf4617769da4774faef4154abc84a99f39c05d0", - "0xd3a56170fd60ab7c75b33943a5f56ec935471b45e9b31825da160498eeee4c69", - "0x347834e86b3ae5fba9a7873e36bd780317cbf7649c8c01875dce04db8e97f450", - "0xe2295dc1850609e564a072b4592b62ec6a0781477d929c9293e65ec494ff027c", - "0x4ecca654f4c6f701c975301f051efc05e9adf0e908fba6dbeec42dc99ea0c2f1", - "0x6b2662a790d931d1f22062a5dd2518b30d980c84d3bf5b69ff0182aaabb124cf", - "0xcf838b75182078fdd33855bec6cd789f0d4975edc3387aa04246cc73f423da0d", - "0x791a7252fa21bf3183b621d65d6a7b584ce1de93a05da8e44a52572fb72a4b4f", - "0x82cbedcb5b48e87ed79935f8a2f93fa5367c32fb14de3ffd2e8947fc8a61fd76", - "0x84a1a28a08d0b6cf71128636355ea3a045d564cacdf67fc29868deb32ba0df3b", - "0xf97f154b9d62135748f94d714ed0b87012584d784df893ad581c36b5b04ef2f5", - "0xc03cec8562c67e6bbf59f97590560141778f5a265b314a6213c440f5703db388", - "0x50735a0e040ca5596ded470e5068b9b7d93676d8f3d181edfc26b5a52981cf0f", - "0xbbb1b6b1366bef92cc978ce644cfcb951ed00d7969e7d89b77bf2de745210797", - "0x116d30e2696ee09337bf9e1a78ab4d8e2cee7c53505afe2b8f027cdeb34640cd", - "0x294855f629441397876e7a0649a1e5ec1cc3ae8f425c24be34ca45e005bcc3ae", - "0xe54763eb5c965fc0c6ff3e975802f9a5049fc3404fe790c31df8a3dd5b366a24", - "0x0413d30f913089871fa15d643ec78f2503d13d025d2b73a6b1a879a910da2ec1", - "0xa430e9153e8e0d9fbb50f0764a0b70e5add25fbd6d5d29bafa77ee93c483e4fd", - "0xa4c61e3928031abbc4b02a892f19706a313bbdfd5bb413eaf852ce84005f186c", - "0x4e242ca7106cf988584cc61bba6e2185f6b6c377a2c4db291e6a801a5b66e1d3", - "0x23b37072cd63dfe8ae9b84b9bb74130a90bd603a5b992ce78b6e2c068ef35b43", - "0xef7e50ea520ca6a595541606ad895beb80bd06cb68984572396e1ea0ceb2428e", - "0x29e48294e6dfc86bea2bf76ee9daa816a59840ad1c0878d77cca43a67a217891", - "0x419809205842b124efb16d84b5defd6985b3c774fb6bd443f1ef72a2801fffa9", - "0xb25461244545d4b6f9c1c846dd09dbf25459d6492b1209814f22a3323ba74832", - "0xee26501773c29c20a4e860047ce14e4af4f6234736e1156002ddfceadde41c79", - "0x3705a24875542eb6b893c0b48266b141af1b5eac2826e88ca4645cff47a75400", - "0xeeb8999c6eff73cee7ae33ddc065e3b3857f213e80a94d832693356f0bddf504", - "0xcddca06cab74354633b9fa50fcd22c838a9d69a129fbb3c17dd0008df9b23524", - "0xfdb23fdaaf80f26f0e95aee174446f7e7182283d652a332ec075d86f6f3f8730", - "0xb3cf34c2dde0952c0d46633ec3e4fca78a3ee8242f2b46b4fc4444afac7d611e", - "0x2d9485c467207fc78b2de05decaffb155b01446050b7a6679923181dc05a646f", - "0x508eb22f40e6e60ecefdde86c50c81f9e73253ca0658a63ffee65f6fa39d898f", - "0x4af2ccccefa90b3028576e09f522bb667a428560f8c94cb159477313b551e384", - "0xd85f3073e44e61bc52696ff86194679a1ebc3e7dce62805c8b03372e03dbafa8", - "0x86ed94dbc666a541088ec977764bc543ae892d73feb39b0b09dd47664768a53d", - "0x36934b9186a56e71ed0c0f51331a99b3f16f07d5b50a1b770fd0ad91562bd0c1", - "0xebe80ebae860665714be6e5b9e8e7cd5608c8b4466453a15ca2fdf5d21b193eb", - "0xcbdccd3919f1b52732a89ff592a6f1dc34da53f5dc409cfec7fc01ef1f61cfd8", - "0xac2a1fc08c3d4b20db35ed4f879921df5e61a6596e655dfb2c6d5ec916ad6bde", - "0x4e072a9ed4432b5f205808f79515fa1d023cf0e6c2137a2a8876b5aaebee28b5", - "0x096aaf5a90b5e6ed00510bb1af1c475c32fd3de2c800b281d2558c20c0288e08", - "0x0f60a5da86c795d88bc025909c8f4c9484ea6489e900c4070d851e91f27afbe5", - "0xc6532945ae1b3fe27002f5d035eff11c62f6b1e9866f23c52af52cdfc8c19c2e", - "0x7404e33f0864651428778f7a39fdaf11a236c8a68a30674d619546518c380928", - "0xc44a5ea175a1d64b02326e7e49782968d9f808a7854c1e338314766bd96b95d0", - "0x435c5d7e5f41b84a55a11606992a4d8ec543cb5062b46f897954035755f9c9ba", - "0x854e9945fb93e485d4da05069f354093750e8eae98a4ef140a4018f3baacd246", - "0xd9e43cac6d5ec4f110baa3c940c5cf35125ab44a102a621e78d824f1abfacde3", - "0x99e780c379a3a94186a99ce600fe88963e58d61d851c6437f7a5ec3c2a4cf6fa", - "0x32786b25ba696ca57c302d136bb7453a5dfc065fcd17e8c38a47a3806e8d4990", - "0xe4d0e757ec64fc8f485839bd34c5caa72ad0f33405fdea6fe437280b427ee6b1", - "0x65e36e757ffb5386f130d783da437e3c7eba37e80ecb8e3017fa6753cef1753b", - "0x3b5be8acf141f95673e207a7c4df7c81fe88767ade0f785f5165c7f03e284008", - "0x988ccc28f0fe0f667ccab304d7cd0d56354419ef8b7149099d1515aa384a0ab2", - "0xeb198fa97ce093081073e2f6d531df421a9692d086387221f215677e9626c6f0", - "0xd6b98b2c6ffbf467dfd0a6365ccc478aefdd8872cfff6f8176023be4ac1d00bc", - "0xa14078605f856243d5195898a5f1e91878bd5ce04458d2a64b0a6ea7f608a18f", - "0x9ccc3a6730ffaa7488c75a31772c956f911eb7002fc245d803e2ca8d45810a13", - "0xc220e09c2646b44edbc09b43748855653861e2211eadc84e7a9cf9b233c85483", - "0x64ffdfad8e5becd8a87aa11a5feec484fa9bf13ea9e73beb7d92e396589a4f93", - "0x791b62a9fec44f975f11e5e5ee56ca70202d0de728eb6a7acd7c40cdeabf0088", - "0xe0359eae31308bf682f09147977b20f40425ae465fddea0515c89a75cd569305", - "0x16199dc2b3e744a4928b767467d02053576f98a5963a9c123dc760c0e4944987", - "0xbb0a149368f44e9b033245d758f1d906d061bd7b226adc1ddffb9f6118e85339", - "0xc600086572f4ecef9f3388a1fc242b099807e61463a934a42dd6bb683193b8d5", - "0x5adca1ea45a4113c166eb85779efc6836c072293e47d2c746b73b2956237b05f", - "0x0bc8f8aa233108727de0e439264f9220a6d5f085112521868c10934dd4100f7c", - "0xeb9edb2bfc6d973c762e283348290da7f3ea45ac449a521e0b3bc41e818aa702", - "0x4684a177b066091979171a6d0ad0a3eab2e7fb19c1bd173786d2db8b1795e49b", - "0xc877565ea3cee7cc08aef811c986cb58d31358c5bc1595bf8f41da9d2b6833df", - "0xe56178ad5772adca0b3f5eebdaa03af33df4451e2797892d12ccc98caee4f401", - "0x3f02d423f1769519c746b6ff632ecc88f6c6161300579c05b704353a13225814", - "0xc2cb58c5152a16f20d9489af5c259483e46ea76f76778947dadf653fb17703cd", - "0x9598d6265c31d75e15323b7125eedb124361b08f1e695e573b4743a3b54bf137", - "0xd401867574d59042a58837137cae986c1ccf45051165816a28f77274d78e6e1c", - "0xd5bd34c381e34dc538839a4a20a5de9e5c87d944f05f889a6c0bf0abf39b583d", - "0x5802fa750e2a8b4ace972d927c4fee3db2c1c3e12f52a20bcc17a04d1f15b01b", - "0x9b13a2989252a0e796ee57e61889ca55bfcfa49d9285ec859e20ddbc8ae59f57", - "0x134da834b7cc2f81f2582366d270d566dd95fa1ad867c795fedc1d74f1dd78c0", - "0x3cc3ddced0ac6b0833ff5bc9763e5323c375a6c32d588b53b98c7e30b2660c05", - "0x8f79d40ed56567479f2510c4e1e81edaee9eb15c3fab934bbfb6c19583032f45", - "0x423e59300c8a57adb8a20cf17b6686238d3d24ed6b0887573539772d209c03f8", - "0xfb633f9f16d9d9f3889495193d5d5250c533b2d2feacfa8b77a598bd1573e59c", - "0x1a2c990aac12d4e85479edd998b7cd84419e64e1d64b71b6e5de354ac220aa5e", - "0x7d37124ba47aed15bd9f12aba6eb1e4ba760965cdb0b0b8049a2dd1a4590bd0d", - "0x5305defebd2a61fee315fbd92c33a971f901310a837b78a89132a3e6757d9ad5", - "0x90c9890e4e15d5285b15596d61471c5e699222bcab2c40d613a20b1e4d0a448a", - "0xa9f12a1a2b93a8f62ce5c31eafeaabd0f3053ca10382048f5493e2f4a3def390", - "0xd32998eb20d224ebfa0f2c87c23cf9cf707dea92f12dbb5c1cce2ee1ef010573", - "0x58259819f210344220294ce925298a770d4b945f69bf6e310d74428943d513a7", - "0x7a7e8cf127d88a93a5ab3e59f9fec2e0a35d9ddbf90396830c37c0a29352099a", - "0x27a39ae87afd6ea727aa75062cf53d35aa420787f0679a9817b15b77c2fd4243", - "0xea8404bc312c47dc19ecfd815780e1fddabed7e1c2268194de2755767f8c6c2b", - "0x2726489dedccf450d85a877501537c51b0037fd7fa3f46150bd5004160c56d24", - "0x1a6752f65e4199b1d7bfa5385a4de60ac0786a0c2276fcd98ec12480ce9ab3f6", - "0x2d6c57ca96d71f4d23b37bfcd63f70c8877afdcd20b9061372c5a9f4f5ec883b", - "0xd7d2d6c6b39a8bd276806810d77303e1fffbc2065f971462d3549b0841bc5159", - "0x72389b3e6dbb07c0cd4ec60f80d67ea24c5997e36457896c7047dba6bd388c0c", - "0xa683c35204e5d8378c5994a2b2cb66ef7cea7f72ce4a014f9de96e270d141f93", - "0xe73c7804f0a92e71739f049cc6d1f4296d6763694ce0f02222cce3a802b95e0c", - "0xe1d2a0db423aae642cf9e0d0a3a0e033ec287d72ad5d6775fb2ca0b754b5ccd1", - "0x2836a91b6f0a5da378fdcb358773b86fe4e2a497b5a8b0c6ea770f8168950cf5", - "0x207c070a56e477b151ac222d7d5582e4233a84f1760561b2c5ec26b6913b5be1", - "0xc6b82e66925ef9ac29b147459a0c7cf6810167b81d5a0d8119409bfde901e5fa", - "0x54f789a01b71afa8ea9a693866109c0fdbed99cbe60e976593a45ecaa2c51d86", - "0x67428f7da1b0ec6712491af063524e25bf846d1bcf1341fb5cd16de664e55253", - "0x9cb30239c73ca41a78aa23de7a5259e5c5320cb742d86e248e800cd4b7842f47", - "0x4ec478de462ba0bb5ee4f2bfcaafb9ee3fd65e2bcc18b39624db625d72ebbdb9", - "0xe9ba31abc5a0305325522cedfd3106cd0994a1be4462264ae630190ea3fd24e9", - "0xa293c713fa4280c0bc8febf0625bb7abe075f875e923cdeea554a48511eb1e57", - "0xa75d09ee8fa14ef49c5dbe05589f169ef70ee94963b7099fe61e4cc8b4c013ab", - "0xf0942330d11fdae546533e347054610329e3ea14b4f219d510f7e6535c9a3ee7", - "0x026d67e672413886db8a70f720b14cfdfb41adb82b7f439d5ba21b589b54e122", - "0xd49061710cb1c459d4a3386b2885cf835e9817d10381382ef8b4212c6d56d4a0", - "0xda04b4d64907968d284ca3072752af0cfc15ef3e5b866a22477bda9b1ad4bcf9", - "0xc3132e5a5899adf1daf3af4215cae7871cace74e8d876f450ebf0fdebe5372da", - "0x5305450d6a19385eec8c77fbf5be40e36551d7febcf1f7ebe6cabf3190e8fd76", - "0xbd7583e3d3d1af3619f54ae1824316f6d23a780647fb2b357db18076e602ae1b", - "0xcd515185622f58e69ad4f90618097d4c81177daad8719f046d3c14d6ce8375c3", - "0x5d518bf18a83f88660fdba41c8996b1e73dedd6cf5f0debd51703edb9e79296e", - "0xae7b3276b47d580f0275b8aeea0ed17f341a455275b5d8c321525a1258629dd5", - "0xf04a5b0379da532ef5a47e391f9db4a0224bd5de6661840ed9fea3b498bb3f69", - "0x617a8557906db76f6fbe284ef9df52298ecf840346589fc51f624b9686d5e218", - "0xc194d85f5a618d76aab6e49f5de491da2f602429dd772f364fe7fdfd3c6f0daf", - "0x6b138060c922aceeb0254e17c3a3548dd3e6904c61a67e058f961e080b3d9ad5", - "0x4de0534ace9c02822d3cf3d81d6dfbfcbd0964114503b56fba7db23b5f2befe9", - "0x06633e9de11b22610b6ef1fc1e8b952252099961f34d71789d8aee0e2f5785b6", - "0x8bfc843363eeb99dae04524455ae4df46ed6e6664edbb640c835305005dad194", - "0xf2f6f86a2e67a269cfdb62df43b9740b42a6eae3f52639acc93e9a8035194628", - "0x1584d00e4fa8d3f0e989f87002f9ff1851351044f99e6194fca52262da38f447", - "0xdc0801def9cf3897fd30f8200f0b6dc4966209e8879f26a7993154b135b4513d", - "0xb1b0fc31bfedf7bfbe445412e84ebdd76c3a09821a4436e72b95ffde019b955d", - "0x3c4e13e63d1bd76e1db089bec2acdc6fe39bbc6588bf4f4af117682aa8a7235f", - "0x2a6bb94e42fc21a26dff4db8004e9043a7a98d6d9583016cecad2baf37b4e882", - "0x7a0981e129e50d8abf6b5a8e0375b8631ca58ef7f9d39a455a4a4913b8951494", - "0x026e94b9b4b3fd407c2c39f8de81e0d0ecbdc0fc82c9ee8675e1a211ab24dc2f", - "0x60b20d6f87e1f3005df1b1bd5fb68ffe20f1fa54f21843ba5510c8169b917d72", - "0x8fa31f4aa8e666c9bd9d42395e08260525bf5ad2ff5719071ca84bdf6b671740", - "0x3e1e9d1a96c083b9e8c07e1ce163a13e5917db9731b6e29f51e2571fb4a8aadd", - "0x36645bfddd95120b6fbcdc9ad54ef1b1ffc8d0a3ab45851b692351ce2327d22d", - "0xc4589b30dc638fd5699e5e26300aac149843985846cec28590df72ab210c7145", - "0x6a050a8820f15c057644330083fa0b93deaf677a5569caeda70bc641051f9a38", - "0x9e2adb3df7bbb722d9ae61237166ba29ec84075f1e1c0b69077119222326803f", - "0x2e41470d47f517c606fe7cd40eb625fa20e07688e40cb1f9caddd80f27877547", - "0x248391e2db6d16b0d1fff77cfaafa82dd191e83ec7991c9a594a78b15b30183c", - "0x484e31e2b718d4803e71ce2223d1d24f1ea1e882ef0a01cc7704d6b306912e3b", - "0x0a14dc947165f37c01a8e225df6c0449347d987533f3aadcb25abe8066a31f5c", - "0x822ea0893ce74adf36d3138df4a6916e27d622abc1cb055ea8c82ddeb6f1b6c3", - "0x72ef874be609700ae58ae6706b6f4d6aadd5bd3fbfa5e017ac88125250ced8f0", - "0xf7e54a1ed7a15b3c5d99f09c5748d9e0944d93e88c7dbff78d33a9f0174f7856", - "0x5ae68f0dc97744f54a5e4aa402beaa4af17f8dedc81e5e98da566d802f6251df", - "0xa378c978831cf0853bdcd75e74218d0401eba6e8879a280d0f6552b7d4681c21", - "0x5229296eb8b7f594144a34635c87f1bf97f070249800af63827b8c3efc0d8426", - "0x3cecae54847f7732bd075cc4546c97d38963f633aeab68cac58a7d5a3177e6eb", - "0x7c14a4b4bd76b14f95a3cc9c046d609902090d7f15c694be9651ad437ac52683", - "0xb3f4b86defe35acb24a651602124c0595702de42fb3eed8d1366196e6c16402d", - "0xe50e7c9bf26de635ae23f434127b15f7640694988221b210969978a3fe8601e1", - "0xdd2fb9e00863ee8bd9e7f9b1f797aaa2127e66aa8d4cf6feeb7936fa3d46acbb", - "0xc543bb209f2682fbdefa8dacf51720954f37734dc3b1a34af1adfb6f0476bec1", - "0xd377c42d4e61fecde1ef150b4f2fd6fdbab18fc3c13bd6d3cda845e69516d3cb", - "0x622b34f8f3a6e6cdc035ae3359530551437c1e04aaa48c85d3da759b3afc7325", - "0x3e56eb277800889b4ca4a12a20eb33e17c78736636ed761882682ec91468de47", - "0x9c704ca0434b69c8c5731c139bb15f7fad0ac71b8c6863d5f85181e98d08a224", - "0x68499ddc9a08d967055b2e2faa974c93ec7da5d362912f7a164e8a022787f8bc", - "0xd2bb02824aba917a5ba22255e64f8576c72befd94daa60b7aad3065babbcebc8", - "0x8f6cb9bc8007964e4beca887943dc2ce64bd4bec91afb62d9d4449c5705c7086", - "0xd553a7e7d878b1747b87e6306b3a822167a945bc63ce650c57e194d8cd41beb2", - "0xc62ac1e135b490551bc99c70ca634bc3e47502b4be25d7a0e406cb26ba03ca18", - "0x4327232514afa77b8fe208a7a2094051b78b8c16b8eaf9da6dc30403c4c9896d", - "0x6b888ffa7a69d53fa6f70a9b083f7b49de19f680e29f838309aeec7f1821b00e", - "0xd3019c640f0413a1b787e99cbdf7f9d45f9a2c0afcce3288402cc797ce4f06f3", - "0x1baa3e5575457458859b2f2fc0f2bb09ae3f593787c62f1479e84842f69de91e", - "0xad1b8e08cf8cbf3d717e6766123974cf2450dcc0bf746133d71c2f15077eb8d1", - "0x817174986957d2d04f538fe5ca307d1f524a69c80cf97831002d1ddfe56bcb5f", - "0xaa2892eb967f4e588dfc6b6634e5b2aa88263f4b1e1e85998bea7f54f5015664", - "0x7bcaef11f9680e02b0008fc057819f06a1d117e318a43aee196dcdbc6b991dce", - "0xe56ad921fe297cdf000f04756cefabd75d309add549622cf3a7604d0d02d4d1f", - "0x988d447115c47d44f9d7abfdb380fe8927bce830a37b9be320d5154db934df2b", - "0x431001a2fc696bdc0e682f591434dde3344d994232191931c0a6e5d2e5498e90", - "0x6ed8c0e4597fca7c1c74ac524dedfb830714330b020dc1d1b2aea51bc311c4e4", - "0x8fb32fdb2670a4796df796379fb142e6ed6fa2e5f1fd51fb582a60befaf7df55", - "0xfcb88679cc8b85dbdb25dfc1b9f0a4602aa0d787e9e70ebd0a5728ff2e3b9572", - "0x00d82f45bf1088446a2706e923d8f43c800071c8f988239cfce7ad6a8c31b6dd", - "0xdf684190b2ce730df2b1cd78563dde0cab5539b30d0a06247d79f3aec73d617e", - "0xb0f93511970266249814b3073424d5ecf9b47edf7133009deacd317435940676", - "0x073ec7ff65ee722dcc829b69e80791a856a2200560f992316be6bdf497b5eac4", - "0x2d2a90d480df14e521db3dd380b470c29232e44e12838b54b51216a95659733c", - "0xd72e78f576726e546906e0e936baa1fc6625777edebf69da76c489b9ac057029", - "0x03ff5273dc2b190a1f52fa97e28945dda7b88c6d866551c9928a73d6ffb3f133", - "0xe23267e18401d49d5c2d130d91757d17d7dc074d055665fb33d4778559504f17", - "0x89fd9be047d599e128f9ab20b96fc506ddb8c30dd5a9b6782b05f18165f939a4", - "0x732b8ef837394ff6a580c3c21e72a72a2976fa7ee07a7152e0ba5101d5891f7c", - "0xe9999336ab64957ddaea70edad6e72a29b37bec1498deabc5d8341a93ee67197", - "0x49f60577477613545b37efb5317d9142d9f5d6d081908e1c061f6be452216b73", - "0x6fff08789f48c852189fcfb0327acce4e20281ae54c3b821790b2856c7ec1ff3", - "0x447f89ebe76365d8e308034e90241562bde8834dc1075eac89e28183b2a4769b", - "0x469eb409c46e96cd0e75878cde67974e319f00b0d336bdfedc098021ddc4f407", - "0xdd8365129aa6aa4ce914b5f1a917a573b7ee3a3ced4de5318859e8ea2d512de4", - "0x1ccda602493afe6ec11be1d523d3d76c7e79bb93aaa8dcb298e8bf3b9d5a13bd", - "0xfa3a4de9d5c620eb4d160ca7b49e86d99d109bf7866f2baa3d9c99346174dad9", - "0x7b9fb6a8d32f956fe50bec11e142cbfc320221a89e25ea1f579d76b4b2c9bf1a", - "0x01bacc1068711052a28f3e4f7e9fd80b996fe89a0a2bac647ecdc9d9b83e8b1e", - "0xd24d7c8b06dbf1db024c250d7ac4c8d2bfc8be39a0e8990de46b0ddd79aa4cec", - "0x422fd18a2b8735f348c092ca2bda2b69c676613b595f3906944f869e28070d23", - "0x938a51069120a3b4f3081fe083d9246d32b811d9f2e37a0fe6e1cef0e7ff4792", - "0xa9116e660bfc36372df2d1b87c309781403b48116c95f2f73669048bebddf81b", - "0x858728b26fcc100ae1a2bf373e2cac05537fc347790a9169710974efea7be830", - "0xe17c0bafaf4a96427becb15242bed29534970937cebbf3b6759bf470a9884b4e", - "0xe40f175756e1815e0d514af34a8da49518173c7f0b9fe1ef24b1a46d2aeb1ee9", - "0xc29562af361c92883d4ce12f04170e189eb62f473c2a24ccef7145a26e1de030", - "0xf8d3f3f63b252b8bd0a7ec90d5694c36cc1472c261bd45382bb485d11ede5a56", - "0xfcf7d3ab6cc4ea23882638e9de6531459ee27a3140ab491f756c723a52378ab4", - "0xe74cf40070946b562555a93e868313d46613164c5e23236851c8c35a7258947c", - "0xa79ccf4a86e8a34faa518079edabfc8884c52aa41571c45e05b171acb2c53f15", - "0xbcbc83dab8dbcf748bcad7f14c08340ca4f07318a09c9a32399f47dab5e60a47", - "0x51dd90b2af2f1766134ae9b2a82d885a4a194bce1213369ebf3e315d03ebaa73", - "0xcf18e42db84f9501927d969e9a7e4b42553473c63c3995d8e761b76f79c6d3f4", - "0x95d14b250f97721031748210fb7845f4ec78e05804a87e1ddd1269a220758643", - "0x1c73593545255b2bea59520ee29d30291b4731112d39f507ccb8c98252a8d39e", - "0xf6d582117cabecb8408ae4e9520369d72dbca7eaab8ce6842d2febb5a1b22354", - "0xa2c0b519f6b635f06e64f697948248e57eddcdc5919be502ec1a53e7501297b6", - "0xf2268cc03cba0244623a414fc7550f868157deef46a8c424bc1e6f4b70595975", - "0x16f40825d69784d4299039d7b361f075d1336f29b93947e57ae963f119de68aa", - "0x7d63f07c24dc55307dcfc3160433e7d382272ea411b931221ae30dcebc3068c2", - "0xe469c2b1e0a2370b5a9fd6db791e0ffc5bed870df922684706fc6dd425176c02", - "0x13c52a53e3d7d5524f163d70de3be5dc4a5c8bc95c64041aa21fbd14fc0bddb4", - "0x094a9ed475b0cf2c3d845cfbed5104adbb97b8e233c860470bd9c2f967fafc81", - "0x15f1e7ff285656c4b445af048f4c95224345c4879ebe4c753f3f7b3ba4e625c1", - "0x58128af04dd68678ec8a9cdc54183f495fea8353a89fb304ecb674d1312dbc2e", - "0x32081afac331a70b6174ec52c776de2ec27369136dee0a25b58985a4607a7935", - "0x7f48dc400b525c33b2ea17d47260032965a03b6d076ab4d02cebb7b571d82549", - "0x3321b772ad4ffbb3466734db9ab81e4aa749916ce8ae56349698dcc0834dfa1b", - "0x79846e34b081b22517d5514f26bd67190812501c430042b28e510d5fea386442", - "0x8fa6d5ca4cd3b175ba6fee940a941bd149b050c46a0661ac52774652fbef045d", - "0x506db869b12f2c0b153f314477ecaffa9b7c53df20d5b2dbcdcd073a3c76141b", - "0xe69339d7a63e25eac8dcdd9a70c621561bf32ccc1f89624e235819d39cfe5ca4", - "0xd506504ddbcfd1f91ec9d5d71fb5eb6c05566da7c4631f58cb99d20e7bc1d846", - "0xf20c78eb7a7560c9933d6a583ea23f403e6cb9176e0fc9807752633fce2bff7b", - "0x16392a1f31ba9f84eab7172705e01567853808f17748c87d3d2b112bd297696c", - "0xf55d43b56a371be8e174d3f617d662e7b45eb1326c8cc878409180cb516abb00", - "0xf9df7d04c863b1aa10e03c68dee16d0e17f7e514de9847a20a63affc6e1211ba", - "0xef814a0a1681df3972a6b20187ffbf58ca58f9fea6df0de32c1036723164d9fb", - "0xf8b49fffd0ffb70ff19c3c3781ab43e121f90c447d73ce242dd0a0e2bce56336", - "0xa6e89a02913d0e909104b67e7422339d3c93a564b97171db0260c3a8540be2ab", - "0x5216d9be46b9697a34181ca7b0d4627ad99311fe84c8fbf1da4e804bdd91d39e", - "0xd30d40124a55222fd69799407da38503c04f742b45f0127fc273be3fd5cb35ee", - "0xcf121f66227509e3829949153738f6cd1eba7210a4f4b960510a86d999cb9118", - "0x2e1f8a60fc9427a0325fd8150a8ea6fdcde91a13b40e999400c586c672798a49", - "0xb014af1c33675b75ff8c965b0f7f8eeb32320e42ba14db790a5c60896d774282", - "0xbc4867d1c344c81c33554abdf3384b544ee616f5909143ddb6b2bf4a0ba3d41d", - "0x0079e37734bb661b5bed93acfaa18179fda2617c4c37bedcee6654f79f0b2d9a", - "0x2d3cc57aff3730fcfb2e5552376cdff7cbd452842e5256dbe115aa3b1ad18dee", - "0x15288da0a82c6d0146bd29b8d31aa31b6f516f9997156ce91fdb367399e5b81d", - "0xb344ac87a84a52e90de58bab979ec4a2e5fd935836405880dd1151e5683085e4", - "0xde8156dd2e7abb20044a23844a06ddc1590c9ac6732923c21269dabc36bb246a", - "0x6580171454e664a67c320e63ffe7b950df9173af211983c730f40888db58643a", - "0x5ad58caa9bb6f379dc30ef06b339d724a91000acc92a15486c86b2271396bb3e", - "0x0479a5fdaf588b170bc2d8c11301a463448249c848a4f2ecd39cdd5f6fd94a09", - "0xed9335181e2fefe38459807029ae5614e98d1ed80fc5bcad68046d63fa7bd965", - "0xacef0d3fad5cc33c98daff6f5580a7e843c5445007b3edd4508372f221992901", - "0xa147d774480b83904768d78b654f01de94c50d54c2112900b23cc18df088c14e", - "0x620ce3590e2996f10089121597a6c05f2f8ccc94dde95fda12a194492f4a96a0", - "0x606815f9dcd9fc31a2485fd5bb82ab9c4e9edf31c7e31770e89365d643f32a71", - "0x0a8b6fc63adbc84796423326834fb9876a91b585300310964119019182d420b1", - "0xded997869b600c4fcc61119595da1b8574027d64f9c678f442e9f7a33ac90fef", - "0x448ee745b1cab75979a3ac3f99e941ec291c921af8f65f10cec4707fab2aa97c", - "0xa3c7a6580857935652f73fdfdffc5a315020a22a778e584e0b78eddd70a6f59c", - "0xd56555316bb971bcd4ed2dc26b53a667e0def14eec160230b3bc18cd03a3c65a", - "0x030f8abafc222277b1c9e39e2b75ca6c09afeda33517d8cb5fbba73af7e1e1de", - "0xce35fea1dbc514f8d540a72295e2457863d7ae2afb76ee3bf1cfae1a8ef91fcd", - "0x8d890590196c7af780fdd854989e2c776d472a6e04c82b4fc3c3bd3e30d01aa1", - "0x7fbdddf9f6d14fbd3e6217b184e9b43450ac3109da621c919a499db6575dd34a", - "0x41e0a2e9ca2781a6722b1ea5b302e1f01d1b34c80c6f494e248c030f375ba1ec", - "0x7991a805d4f1237190f5b28a55fa603dd5c7a7cf3325024bd2eaad981ca0d70b", - "0x27537dd0a5d7084451cedb82bbba192fc59dfb60bee59bfecb5f26c49019396f", - "0xd3e67cc97c90c09f19b528908d9a60fef68fde3335c041434960405210ccf860", - "0x68b51ea61f57127d3a75b46e44c97d588904bfb880f5774e21440b902c1b7831", - "0xce0b41fa28c47f7a420ea5efe6ec77e413f22b6f67e9fd8f6728ddd73e5c6baa", - "0x9e7b2c49c92a224a444f4f91221ac2173993decf40b21118ff5962dea3969fd1", - "0x6a611eaca85f609f1f79bfce34df97fb975f450e87e1f24d9a93b59ee0b0083f", - "0x70ec7e2b800c43d093f7b1dec60e6743244b4516394ff861e8fa9f265efdd28d", - "0x7e80326c6eaf085eb48567fe017f21354bf202072b1a2d7a94e9d76d0dde38aa", - "0xea7baad3d12481364a0cd85ca78d71e3d86738938c4073a90d9e5b71162dba6f", - "0x4e3b7094fdeead9a0275de1aaa590fa5d45fc57d164709ca56f209f1285c3707", - "0x12e56845b0e6206f75fbc6fe75fb28167fcbebd2571fbfa2373707af352aff2a", - "0xc7dc260bf1335f5002e7351b0ecd446379c71520e9d0f086dae2eeb37301b644", - "0x50f25018c84c40c0b854dc197a82e15fd95ff58bcae5226aff17ddf9f44f1e2d", - "0x0c71edfd14a52a3c18f56c0e8e94bb8a6b78a1e50736293983d8539bf02b0914", - "0x9f914ff32cd2535bf2f0e430a6d4f85a144480049d29717c0a28d0c8ed02858c", - "0x97c1ebee13b480651350851b8438fe7d709ca397985c6fb392c6e56102ac926f", - "0xd75ee7dddc445d9f6361f2eb079a20a0d0a0ee9e7356c219647081f3d778ea60", - "0xbbc2f0f7dcb1bdcc0390c75d85e37e1b393b8cf7529ce79fdca968ad2b330691", - "0x0eea82ff391f47f7df4e04e0307621e1d8b6aa976995f6eba3cc95253c9aca29", - "0xeabe8946289ac1a562ef5ee5c553129356a4fce4e3c108dd723678bda915e4a5", - "0x4e3d7341bf8f7269481cafacff7dc5146f33d27e5df25a0504a42caa1f94c3f5", - "0x4681710108d0aa64c8d0ea1405431334ff66977169c12c3e6f7cf76479dd5c56", - "0x62cfebf32a022ba6667365f686352407e6129c107cb845105780910c9c405421", - "0x9894915fe24dd0aa6b4b639b17bfc60d9ca0848738f143c6287d33d0cdfd2a1e", - "0x00d0d949ed8c01b85b8b9da7d833668eafe52760d4725c4266347948073b6827", - "0x5ecdc5570106bf27ade344bef187f64bc8591a8d9905e56ae52ae697566c5575", - "0x754ea4f76f4b3ad9c7afdd856dff50eb161214673504b232d4a63a0a42883145", - "0x8641f93482761679fa7397dab41d8a9495a95b9d693c6be903ad2e5517b6278c", - "0x78ae59068cb5011d88567d919a3ed02f05beee15bfeab463f38fc39d7b25aa47", - "0x8f8024181efe6a6709a9957d4895734d4552d63e399d806f31305e50d94c6c16", - "0x40f098cc8a06180c95ac29f82a86d78951bfa1a14cc25e4cd8da929a0871e979", - "0x1c76272e776ef34c5e202b476577ec3ea7613a332dad195afa1340b874648ea3", - "0xc5492ca8fb2784ce1c3ad733137fd1b9d946fc349e06f899530d37fd6628e9f6", - "0x0b7034da8e247df9b12dc65b577f3b75c4cf6ecc557ed3fce1a40f4455da5066", - "0x2d5b70732a72057a6bc6d5d74e2e2fb4854dcc17159faffdbda00611173e50a8", - "0xd92b2ed7c324bd17569cbb18b317aea888e361f9b998b58ec8af5a838f7988a5", - "0x709d9dd243ad51600cebd449527debbeb8230afec92e6061b6c0e6010ff765d2", - "0x277d7db1198e452cc42f7c814c8796e448a8321aa730e6351979f56f64f2aa08", - "0xd1ebf26edc0e6dab23c7a6b9a26a6ac6b5a5eb8c17c355c7b5b6306c35d25634", - "0x7c8d98fef8ae97c2d84b0ba15534656340c776e0e2f303ee6c0b5d72c1be048c", - "0x98d4de7e589c593df79125171b2e02ea165d548fce644563a3ca1f455daca5c7", - "0x4a69319a826ab82fdd111defb028c67f582063335325a680597e4ca972881210", - "0x57f90e73b19a459899a25eac9958508fbb015edbcffa33a8a09ee66ec3ebee3a", - "0x9772aa0cae90e3b96a5a907b6bf975e05e664b6f6bbc98681fc71ad5a3e0b42b", - "0x81272c15403b6bc823541a12502b89a5511c198fa2f2a316a81975c77678f938", - "0x68ab134f9289300446f3dec929a2385d6ebe5e087aecb806181377a911602e70", - "0x135c03ac38c2830f5e43b09541e0f69899e79a83d9ca2d5a97a37fd44f4c1901", - "0x3f579b811867a044bb1837f3591cb92b3cdb806651d87a7a887456338c644f74", - "0x17d3e74034424ee46c93a106f8322ff9fc3f3cd499ee347f0b2e388dad853028", - "0xe6fdee346df741d742eee7112aa685b5addfd907ad08401c9c1b27475f71021c", - "0x1c0ce4a7d444672e9118044e3ac1e141d85c9030f14f62c0bba3f2b409b93ae0", - "0x76548fbb7c106bb0ff13db5c7153710d3bcd4439aed48cee4b68a8e4cc978054", - "0x1723acc5b7d8a7456471c598abc14feba6f3702aa732ffa009036cd9773d7733", - "0xb01c82d4eaa7c5e1cb4ff0b0dda7ad1558418c3576705cbce343b340b03ade5c", - "0x1d0326e10f506633798707287553cd7025246773fe7975c8a19f4ae3e59cb9bd", - "0xed9eb55217788e468d7e5a586429a80822e89fda2d24151882f1716a6491602e", - "0x0b4fc5e070deeec3d5d33ac8c5a9da85e594f03e2550a0d84a7e40571dba6f4f", - "0xa56a7fd51a720aa2c05c3b1d73bdaa9cf8e417381731f25a4d534db59ef5e83e", - "0x44522186801bc1e053bb5dceb8450117b6e16de04a789bba4aaba25580fa9d98", - "0x3b74841d03b2a2cf79b7c4592ac9ae180cab171462b55507f2126a3dd7884851", - "0x8bc3afdea84e0a559bf844f964fff3af35d2b2578c3b666b749d8f7583b0192d", - "0xfb9ab198c8aeee666cd69fe20598722cd187cf349bb5b1db396fab23187d2335", - "0xb56912ae6bbe67f55b1803e2a93728ff2615b65f54f3d88424de4454f6b0a92f", - "0xfc3ec0c31f6999bca315e3f122dcbd1bba7f31dd45b5e936f79231b1e61b4d2e", - "0xca247a4196143fa609f4ef7b5160528b89a14732d33f84748911aeda600e053a", - "0xa48b8477fd330f3432a928b3fbb6c2b16b37dc065703f892b20c86c16459d4fd", - "0xa793b8d41d239f047e1a2b446323f557e89307dca9a48de78f147f62ea078c33", - "0x1f4543fc48bd23e0b043719ac1bb39afea92ddc5774f34e06e0a14a58036534e", - "0x3ed6a22fcbb2344725c7228f2ac4543fb9d3fc835d4ba9d94fb807481557b7d4", - "0x121d1e123ca87801e5336b9de23dfb3c5bd42452adb0c52197136b210ab38520", - "0x4ad96b36710da80dab7128cbcd36bf946824b45322ff10f21ec4037d09104e93", - "0xa30733e12726b6855ff857358cf26191734c811ff91979ce68f3f4bd0e3740a1", - "0xaff3716f450ad70cf575313f3c311edc425140deb4121d744d1a9e366772618d", - "0x9771fd12411da7ec1bdbb3bdd5d9293e1e691f2c9a4a7b705710cda9e6204458", - "0xbd88569eea71d0833810135d6e2898db7acfd85d00c586ff755332e44d2039ad", - "0x214e1662b559cb1efb7a49a97b01778e606789d641025e1e255e7474265963f4", - "0x1b92313a0f069097213fe62b51680d050f6292e5ef9b2f2a4d5217b03d1ea3e7", - "0x88b0faf7930fd989537d1c3e8b1f2f7a6e9cb3b1117eeb5829030f9250277dce", - "0x22c4f4dac7ca24b2d6d524bc3293eef5fd73286e2928bc3554652b75c12111c3", - "0x45af9039d3783f75bec64d71dcbe829bedefe2de5cadb592dd2e9af0585b125c", - "0x60fbced492f778db766f3171c1e346e5a0498086b657da5d17817e05ab194496", - "0x14d6adbb6fda237b95e8f220844759f8f32e976147138c674c3c060466bb9d8d", - "0x1b27c87183f787d614d4e187ce3f1c19b794f933b33a1cf8b8c7f66443968d7a", - "0x08471ad5316cfe0bb68cee4d624d76c3725f7fea983a42c49473a06ccd072175", - "0x45673d37daa58c1a84bf6676386b008b2c80287a648490629d2fbd6fd6095b36", - "0x19e4615dae6265f6bd96aea8614d2212a5d0b1895f2d6fca5e3a61b96a9b4fc6", - "0x9b01ab59ae3b7da27f73c8578036d3295a76f529e7c3460f3e05f8d04f3c204b", - "0x5fe63007389fd90552fc916ccb5bd547c23e15dbc7293d930148874d59400776", - "0xa862a5eed290236b6e87f643cf80890b2d021d68952812765c97fabcb37d4a0a", - "0x38c18afb3ab2908625feb753e4c5f9b0738aa6f92641a6d74cedd742085389ab", - "0x7045a71a34952d008c7a45f774ad095115b2b39c66ac399666875c091f66a080", - "0x4e5df6d0367eb18a6b3a6274d54a85529156ef43e089d01ea270217bd91bc099", - "0x12f5b3943a86799e2601fc3a4a1fb165b113e8b6e30af6631cc96c8b02691338", - "0x75816b7bc3777bc579337dcc1623acc080eaa28a0d269ba12998f8ac28672fd0", - "0x93da08b8deb0256046bc0fcc1f7f320f374d778fa822d9266936ee14b7b605cf", - "0xa7a8837e083b1126b978a647ffc8ac454fb341feb0187b1bb740a311e27d794b", - "0x947942f80495b860e402648969c13b1d67644a610a8655e6331d917ce9d9ae66", - "0x8e59cbbb6225ab2e0a905f26cef3885727fe29435e83edabcc119cdcf01edfa6", - "0x27382765727cbc0df44ae8b56c973e8da67d4fde2e04455d00f299f9731b94a5", - "0x6333067c15a31397bcf1e16dcaad3e9eee2ff3a4ec6fa203575110fbcc9a404b", - "0xb624f0fb2bce352a20bda177528fd445efbca0fac5575dbec526df4b6ba1f967", - "0xe211244c1887ec9267c7455bf64cdc473845df8500a090bc1886d4ef15d94bae", - "0x459b10cb3605a7bbb537b237d7877e5ec16fedfe417ac434214f1e48d6cb9db7", - "0x00c6cb05293954996edad819dadb9dee132c47e0bff4f40883b553bd46465861", - "0x75fdcbbae564cc730b8b29811efe8550d3b2d889f33788c4c9c65ec8420be2b5", - "0x48a6349cdd9065fe2312b7434e5b382864b71a3a30f6bef527fb767641033024", - "0x2d524c91dc1e4c0bc7af72af23a23dea03023f4ac88d5360d39fde979d8c7c12", - "0xdc785ecde7cb892d935cddc32f3d2e803c36a1349e7c7303a063813ef1a29e6e", - "0xc918b72e98f95d38f7dcdd74c222582bb8647d54ac05e607ec71a5230007b046", - "0x201c1d511a764472724c906c15d754584dee39b682104876e916b83662409039", - "0x8524adc2f89a500dcbb273fdc8338800e4a12df36880dbf004e85d6dee27d0ed", - "0x19ff16cb234e3f3a251b57a572e05025c5f469d40580f73adeb7997774678e5a", - "0xad697abefff1cf702f041a4ff551ec2dea735e8614143553dabe82232eb1fe23", - "0x2f82cb8f448965874012ebe4291b98c9c2069237f35dcc86fd44bf3665ce8582", - "0x5204cdefbf66a6ca03f3095785754349ac03d148cb260040c30dcd245358e69a", - "0xd9678cf8987d88e40c7dc0fd369c10aa0149d78d8795f2180c0b6261847f6d68", - "0xb83cdf2e9cb8ad90c17d04d9a7645c6a3d63892c500354c95266d6e727d33748", - "0x3c448dbe297ec1e8bab5481f381d0e81700970e64ee3148b80f255e7d3c4431f", - "0xa535dae65ec4ef42aa05c7a110db91d419ef56cb78a528b6e06825488a539bcf", - "0x60660ad6d027f00f2e84df6f8ac7514b834553a3933ec17e7af6be3f4137098e", - "0x558c04aa7d8d828d40d55e1d27cb7371c89b83b5482909f6a490e1f8f12c0e78", - "0xcebd138a8d5eaabc37145801c95f5fb3073f98bf08a4670419561e2d0f798b8c", - "0xe185cfd8b4dfede3bf2eb898cc51436cc506705b8c8df97a0c62312428b9eaa8", - "0x8329c45d28e8384be558cbfe2c9af7d0338d098935081429a2a5323d065a4f6f", - "0x3846ef3ec37b442c2b94abea75141bda5b08fe6a4381c777dc7c15499399aa11", - "0xbfe141ecac9cc63cf17a5e5fc95745fa7808133e1bf8898ec9c06810a29bb84b", - "0x3d81adb143559eed09d410aea093d162cb5e378ac688665cedff53e37362c7cc", - "0x48bbdc92d5236ccd98a8f1803d512495ba412021d02f723fb8f7209a11198cde", - "0x588929461728d5f15fefe68a26218cedaebe9890282cc6a2be9f8170812b3f46", - "0x54b514ccc3cbdb1cd902ae0ed7b5ae0f91ae4118f54ac831b76f8ca8dd009323", - "0x6387311a39c020e1fbd3aa4de7a92b36da549f088043343629ed912a47207ba5", - "0x20c6399f2509cfde9093485d84aae197351bf688ef700f6b75ec43acabd635f5", - "0x6b7db93566738b7a09f004490f02794085c8a49b8b669984fd6492477696df70", - "0x70e080cb818578443f092d2426e76b898b077bd09a83449b1d615e241097944e", - "0xb2af0965e3a22fdc87b46cd70bf9fb69a8111974cf0133f63ff2fd6bc6e41367", - "0xaad34d97ead1e29ebb1bde538691b50690f6860e4ed8d9bb423c395ff0a37456", - "0xe55ad2c514b12c91354b18ae577a229b338c37c620a7cad86f7b4bdccb56da1d", - "0x4f0b9cd3797887659aed4dcef6ecd2f022fbb77b83779abf068c12ceae6f15bf", - "0xe4087d8f1bdef1a7b3a5144cdb5f5d2d553115a4cfe6b72beda5a929eaeec57a", - "0xc3c1aff8ca588e7fa86d2517718d76ee301e7a4fe6f1c2341b02a12d1534fe12", - "0xbf4d3ea7101078738cdd2fbd691b6b60ab7b3dba56b7595f7b6f706178981da0", - "0xd24b2320e7c3401797aebaf1efd0212596788a23507eba9e92b51551e1b2fbb0", - "0x6b14253803767b19ca3cb24a95086c8d7d3eabdc2bc2196be00139f89afd6d80", - "0x3e3781d97b5d8285ea66c68512157a70ed198c3c9fac4e4c797d3b0e878fd19a", - "0x6c1665c4b9b68d0eecda5be2530b142af404e6e6d6dca6802877fbc64d52a16c", - "0xc9a1e9ef2dc8d230c7ffcf46cee9b7b93e4bffcacf3ff9a5baf5103156ee1621", - "0x2c9d18bdcd673d8c3cfbee0b109255a83a83e0a70172676739b55d71519cd91a", - "0xba052c6ec43b5226718ae924a2b2065d52dd42c53bcde249a4fca0ea9e2bf32d", - "0x2183368bf77cf039f4e22ff970ab84f6eef3d69a2a081d2d0b0fdc023346277d", - "0x25347d86261fecbf1aa99b6a1e245bfb7a4d3ca3a1caf87a70328ea86d528c6b", - "0x4506c19fdeff0b1763516120996b864174bdf33cd6ed8f3642cf522d7453897c", - "0xfa0dbce75686d24e02884c7c44ffda3ad81c99d2c2c820533cf0983e6cafa258", - "0xea20b4d719c85b5f0f9bc3581cf0b9db484e5ebae5b9275678710d9a4bf82937", - "0x3871c8de36feba00ac1e0a5fde6770dd4259b934c49db43232372d4bb9ed8c30", - "0x0630cb6a0da32bdf5aed6adf8f75eede08dd8ad4ffc6f662d63c7d4f8700a838", - "0x09f0b8b297163a9689dde20f383dcbf3accf9b9fa266b74240fb4e26e737a13d", - "0xfed679cdce753b97c3d19778ebeb7616f1f308d6cf57143637c23150dbbe1114", - "0x0559b097b7974cc3bcf176f5d4826b4fe47487c9bc461b1fcd89182a5fd739c3", - "0x799d0651b0e9a12c74dce11ec9af3ed15b762a1f8ae35d7516ad73833691e17e", - "0xda8e0a23e9ef595ebe087eb6ddffe63a933a54783ff0238cd232c6345bfe24b3", - "0x454b1c9f7130ed4bc573eff46cec616ddedef3c14a3e06ab0e03b48dd98709eb", - "0x73b0f4158f7b98180f282768776cb1b37d2f70b7a4c923324e20933f289f7c14", - "0x2f8266751554c995018c4497b150a0f76e8a70715c3e33f5745136227a830164", - "0x0a1a9d2252e93028c9bb69cf1fa9ae1090699d960baa15b68f6aef9678788820", - "0x8b13ec3689127f51d5e82862b380a04162880aa1e1950a82fb9115f83bfea27b", - "0xd0c56341ecd38ad5ecc8c24867d64a75747596757afdcbcec26174d92e42ce59", - "0xb75d2027372551198eab90a3c88beb48a61224aa50b3f30a9deae317a02e3dba", - "0x4941ee21957780ceae3e609baa52a94afb7dcd9fd7ff8446fa044d0bd3ca5095", - "0xe99f45bff96e3015cc698a19dd2b7f25611e642fbc4cf814bd391278a3a5fc63", - "0xeb7847c727c6fed9604c19d1cf156d9c1d382eb338d62b600da4fe5a9cb32f9c", - "0x8718e416eeb9975a729671c15e0812de63dd45875ffc1dd2f07d3353e00b78e5", - "0x3c249822618a0f5861a90866d95f758d1af741951acd38575e7e80ffe4fa3d61", - "0xcf53052c009a76eaf5f629c471e71ed0f850a201c216f140646b804f5143c8e3", - "0x68d4ce1820fe96d02aeb10a178ebd16aa6cf5dafb36e6190be20642bdf5156b8", - "0xf45f0d504dcb1d37fdf73a0cbc0a3c1c0def4c47f5f3fb1290db85e86eff05cc", - "0x9786adb9c499160b9c57af19c40d3cd1c8f49544084527f1145db275320109a9", - "0x2de8bf50d3f2bdfc7a69d9d84d8ca0e41cbb9bf193364633eb984dc5777391c1", - "0x7f39b95ce80f4b91541d81741d59357c4f1feadf6beb85968a5baf4eececa375", - "0xda4faa35feca143f1f5dd4503c456a448e2e8fbe0033ef501146698f72ae07a2", - "0x69d03b07980a0256ed44d16c0084c7b72b07ad433b8b77b9c175858a80113f3a", - "0xc4f0286c31e1f69ec8611efbd82798add4247162ca01674dfdab4e89c807403c", - "0xb3d4788c109ced056b7837b1c6a9ebc7d296bbee42df618c2d32b2ba7342c2e4", - "0xff111f1b94658b12baf7e655cb92f713f4166580981207f13a55e55b13fc375e", - "0xcccac759f059e428771fb21ddd4fde11fc4342d6d9554912887c975dee85203e", - "0x88c0f0974ff6b07f53b464123924e2066cfbc07e9b8782bda5e116e175268de4", - "0x7b1a526fd2af68abf236f9ea30e4802eb49c3ed2b9ed983916fe8cc11a3ef08f", - "0x1032304f9e041de697abf23a0b50858008efd95c4e2e6cf24c524b234af758c2", - "0xdfb69e60d16a021b267f15659c72dd566da9bae1775ee003c207b3fbfc3daef1", - "0x4de8251aa14a1058c827391b62e70b1b2a09b4d169982656029ef39f734a73c0", - "0xd04aa0f4fb73f96b1948d9099be3a3ef9f4bb1755007d692f995fd49c344a005", - "0xe8bf94d4615e95aafbde3669413e40670184088cfb023f9fdc128fd482c78d63", - "0x3ba788d9abf5242973b1cb7f8f6e2d5d08093b8a736897e4414e524826643fe7", - "0x16ceff7c5463b0080c62547529b4b96a08dd01d49d3b2527c61ed151097e614a", - "0x0d7d9a889d28c14047b740fe86b68918bcb7f3cd1c29e410ce9ee2cfbdd95764", - "0x2d31827b3af0bc45349bfe388d503215bc882d90bcbf2d35bc100ae95f1cdead", - "0x84b77d4f0b6076c88d985125e73118e892a3d9c41e4ebebdfe16bcb435253fc6", - "0x2a47008833dea7abd3858a580d87106b57355712df26e0cd2ca4436fb6deca34", - "0x44a5f14487bfc776bdaeccf1672040548afe787b1237945aaa4ecaa73ff5a41c", - "0x3ee99634e1f6fef4520538f32fdbf31dbb77e45a88e9ca56e67c45aa9c3461d1", - "0xfc26a8fc353fdfd173571954755d8a9a68157754f1162f4b31f6d8f2b9c86577", - "0xe360df35dfb599811c35572a67e21c6e9fb53ab13c833155e6f320b23ce5984b", - "0xfb9da18c11f56c2c43d8f38d4efaceb681ccac318cce0bbb0823b4f954fafc9a", - "0x0b9b7b663ff8d9d42050aabf2c9d8a1cbc39aae18ec7e1d1e17cd213e89d8998", - "0x3e991008da81b6f383e6e5b7499b5af8ef6f5182e5af863d1d0087c6015d75f5", - "0x74b1a66ef34f589deb51f8f2fd9e1e422c8703ea027c21387cd45e522f4146a3", - "0x4285fcc0deceeaa9bd076fbe956950eb4f3678f2917357fbcb642befd3c5c2a8", - "0x52792742145a34104b19b72655cdeab1b5425476fcd68c9596c265cb7becd9c2", - "0x1a8b6fa728cc7ead440ec82a9ce3aa0e9211d8a9b210eff5009ced5e6fa9d9a7", - "0xc8e72083635887f82299e02d331ac39c61b2749f916a91c1db66943fad9efb75", - "0x587bc54ae5c8944ed2d0dcb8beabc55988dc32c4c69ce67f0c4b187badc3807d", - "0x19629653ee703764df75ccb9e03c4bf73cbaa0a441c95ea1ecf0cad9f63ee997", - "0x9f0d38b7b39838df6ddc474aca1ab5a485bc95dff8cd7ffc9e1001dbf58eff5a", - "0x3973c16d0d93ae934cf37c626545e2d938a28fccf359aba3b6676f7be02331fe", - "0xa61692812f3ee1abf7c3bc4ed63d94cac20b6c29214ba3489e8259a292a986c7", - "0x7ae72f35e70c9b7da0103d34ec208a87b07242eb7f2e62f5c1e3def6dea24f9a", - "0x5b026f1a5cac5375a40db884e19f508b175417e7a2994864e321f12494367f40", - "0xbc1fb39c00f9c4fd425b4322122174e5eafd71457e8391b551712b3237d0534e", - "0x7d7bddabff7dd77f2a4814dc6e78bf75024ad2a399939fcf81a937dc2f2badce", - "0x4c978814039087ac7b5f4c9f648d3f1fcb6c8384763626c0897ff5ef32919057", - "0x13ebc79e9f13a2592fcc8f9133463f504087c1b948ce044e05c62a8804f1b07d", - "0x80bd912a6162263b0d37344089605fa4a947c04f6e7eda2639ae95452296b167", - "0xe882df4079584defee65af2156ea7e2591bdea9fb74f0b088c4d0ee10a05f400", - "0x4db1886f3f468f3ff17599334c8c74d89d454ca9ce8961f91d55d6d582edc522", - "0x086f713234cdade930fccf4d61df5002bd1991b9ba8c5fdc117ab43bde3af22c", - "0x1c90c79b72d152595023e861c5a5c7763c84f2b235d18ccde15885d0c714b085", - "0x1485bc3b230da6cd97dd81db8afa2a0c60f8a4ed73d6d82b86670f7d26f69be1", - "0xb9cd873b3b93734040fa9abf5c867a6cfd9c7a58bd04a9d68949f9d513495cb4", - "0xb3b85ae9c30c9a66783730c1e32b7c120543852e7ef2bbb5827d8a15c537478c", - "0x36452e6b3b7fd4b17476a429ea6708b8c06f0f2786923e2bf68ae52cddc84df0", - "0xb9032a6baa87da1f7b6c48cb00cbf21c0304ca49e9951c08588b9cde7492eb01", - "0x76bbe74500f790556ff66bce48c5456192436ced60355aa5aaa45cd549651a8e", - "0x3b765f68302bc19b2682dc5de0fc5c6e8e82953d62414c74df1274a29cf404b9", - "0x5a797683d466f5a256a20d6141c239d079c3d1b003eb9891c3767b2281273844", - "0xb789ec584bb0811cfd1d5491df32deb73660fa2f64329ddb3d71b4fa76b8bda5", - "0x0b0e69b821f708f5b86e4d75d9dfa9870ec72b82a0ca96d3e68c6d4f671d530e", - "0x506fb874a33e8e80b65bf55fc5efdd23734e86abe150ced7e18c518de3c93b81", - "0xd51363ce9a53449678b83eb8a083a8137b3c87e2e6750f2834887c4d3cec325f", - "0xfd03fc9a8810f5b5066529b8af38de0f404728ddf0f0813aef7c78cd644f4e93", - "0x1f32b92e19891cdb1fa6771ecba7edefbfe97613d1c75b863b9d1def3929a114", - "0xaf209ec861712fda0c95e228cc04c1789e4e432ee93abb08aacd0f2777872370", - "0xdab1a1858b608c092204e1b2000879090d9c356fee44bb2c79d738d24973d36a", - "0x3b8eae3caebf4a011cf24e35d42da5a769b779425b2be793726cfd29a0c25aef", - "0xfe661a177cc0932fc78619d2ca605c2b5cb21cc314aec3d07102977e86da2b26", - "0x81099b456321a56766f425572d86f5140a1c5adac0c325968aee54801c6cbaf7", - "0x9629ebcc5d107a338f4d4d6d90554bd6beb44e009493fc2957d15022331307d9", - "0x411d843c497015655abc8ae017f6c8adbf1ce52adae67d13e3adadd88116fdbd", - "0x458ceb9ef6549feb3a8a6938f5dea17bfdc355609168091df4911fc1595cad53", - "0x2b71649e13089a86dd8c0c1c5081342943d3603ad690e5ead98959c1d686e7eb", - "0xe8b298ddfcf62f30b19d80fa80d99d020b3b09f7130349842b1231b3a70645af", - "0x36c514c85f3caf8d20523a47572d0475c54a9c42a243feef9291dc679b4ff9da", - "0x457a8fa8ae3aea0f7ba861ed2e2b690d38c423c495cce91f0f9dce7488981966", - "0x8d195066df807b88acde7f29a9e9ad3498ab8a90f2de2efeb804a8b1139db3f7", - "0x3d4bdc98bb6dcd363d9cab40816294086b85633999f7fab221d064c35e329b1f", - "0x6a8f2c0cb4cd11cbf2fe39e7c1385dfdebc18db53fdfd553d18c632c46e2dde6", - "0xfa818fa1ebc8848b03890051d1b24bf8d151b494b57d7f744615d36aec0db675", - "0xac2b249ff31fbdb19aca82718353f2535b45a403495b1b9dd468307f60d98c1e", - "0x043e4829c45e250b5f468f5a5ce6da7cb80cc22e8b39cf8032cc86012432cc84", - "0x1e576b0877c05ca0e3bd93f8ac2d5396bcd141401751601015907430408a1527", - "0x08eadfcc05f4c72efa77bfbae1da0be69ab0fb3c35c7eb568ba93d5d9a072354", - "0xaf584d18fed3cd45fa374e9b2b7b9c2c92b1a13d3710d8a9c85e3d8a4e9c87e3", - "0xbba83c31c86df1f18007bf62eeeabc364512d490ac6f4ac2a19d5c94e02892f9", - "0x64ba9a791d21bf9ebc9b7eb5906006ca99c2f8d82533bc575e910c459b6c837a", - "0x1d9e2af1472c96ca43fbbaa293dd7d0934c5604f97cd83f5ecc8d1192205f832", - "0x73b035d933685c94ad6ce8ee9cd330f6de4e58e69a4b67ede772c625d08336fd", - "0x15bd38181e750225222645a6a0a994266f3961dbcf922f4b9094bbe883e7d283", - "0xbcf07b08a9d71b3d35621436d4b07e6b9f54cf250a7c100ebec46b0e85c64cca", - "0x1916e862ac6ac13cd4d536a785cdb5fe9e7900e9cd0116e495516ac7f8eaf9e7", - "0x64667df61f3ea30a8df061dc9c3063f7e53d9d617f7c97351a47ff2bfec22d4f", - "0x854a14169dec6c155afaecbb4d511b6c513be9da27568c0d64ef94b88151e8f7", - "0xdba8470330f3b6190f1fcdbeb6e1bda7705e95ffe539633e4ed39f05b9ef4bd7", - "0xc71a75c73354d8accaab246eafb170be2e740e800d2b8fa269e710c0ae5e0318", - "0x1e50fdc54fddb8b9ec8cc5559dd09537f6062caae18f377b9638aa15572cd74b", - "0x3608775dac141092631d66b6a722b58588dc4217a8b6a33dace5d9beddbec657", - "0xcc4929d85b2d45ef071b8bb74ce6ad9c7a1820c5838615b94b0d8c9b5d0c4488", - "0xeb82d368783b186067be65faba3ed37051b4608f29469dbe746d77171e8c1b5e", - "0xd4c595dbf9937b36d1ff1212431e4d0b7ade86a49dc56b62afe2eb7b8cc3cb39", - "0x8b2b6c343f36af2dc6a30ef3e9954c789f1236cdd9ee970cc34bd126d5e1c8b8", - "0x2bcb0aafc9b29b5c6f7d416dd3aa4ea2b3711c1a551cd9173bf3469cafc6a0e8", - "0xe6f04922427e5d7f4c292b9d8f17128fafef19bf20acbb179402c4b83575d024", - "0x7c8ee3a97999f0d1c2d65d74ca72ecdd592ed0f504d7cfc02a691a2a2ee87ace", - "0xbccdd3bae30bd8a51cf23d218dedcf7d2a2d19fd7f16b3ce2965411d6a8b5000", - "0x7e30ab210475c0c73047e2a19ef5c00de6f88cad38fc45e1c7324b2d9b1b7848", - "0x0f388ae201bbde36fd43522ba45beb8a6aa9c63bffb0c8937ddcf52f1d6a119b", - "0xec6b556c591fe61f349d3b1ef8452b3ed73b7d1dd532372f6fce7595c20453ad", - "0xdef410ea480cc214857c404f3560128abf451a131c8bbdc9ac9c726b09eb876e", - "0x53cf6a57275ab72a3a0c0e7ab573f39de720d254ab2f3898b5d9446c87c84747", - "0xf7c0b80b9a3ddacb729249bc117531902bdb4e0f32b2bb9f289bf2e6da8d40ec", - "0x4f27b8550a1ccc34f235fc0cbd2c8a9ebc23ee63f849541af017a474262ea9ac", - "0xa463469b7e38dd31f077c838bcfd7e0863f8dbfd73e5066eff1a54a4d05f4ce0", - "0xff74aff9fb5807dbe34a595ea457e37412dbca7572b5a44eb5a01fed29a6ba88", - "0x908a052d390b315a0f6a96be93ec83a944a9f0364d3d66408db0fc89646f0c92", - "0xa44a0ad82a8261aebc439dbb855ab79fc16e32b5379a02cd9a35bf7540de7568", - "0xcaa390abae456f7341ad03a6c3f75f5e8ce37ad7b475040fd9da26c1b4759c58", - "0xd27db4849e8d13d09bae2edab4ebb53f4a9e3a482b42aba03a5da8c09f313d61", - "0x64a2804dd657f03b432f511609a7c3f4ccdcb95d7a0795f93ad78ac25f16f6d9", - "0x8df793bf7ea14f04f97402e7e32b38bef2a67338a4b07e2fd9eb56bde2a2bf07", - "0x61af9dff3186bf0683a32e5d9c4f4b19c486c015257fa010fb5a78a13e6ddf5e", - "0x95b7445c6f7a4829ebc26ce2810571cfb0feff98baaf4bb614f119f5f1da28d9", - "0x803ed381cee8191cfab87f046d8a4a52c44430a27af9ed734dc45fe098c66ed5", - "0xa0403d2f502ed8c0276b89d5266e2f4e0a6239808cb597e64273c065676a3d47", - "0x6f873dd4b1c1212fc1d27db1244e7b05b92cba90a2cc7def330662d3dfa883d6", - "0x777f773b7458d3cab3d343d1f5ec39902465aa33d8c93dbea0a7b3d780c3c334", - "0x5105901dbcb4680e2fe9ac03f95d014073ca54513ba9f9e7e83a2de46c0a6bba", - "0x0183af52777466a1777064712f9255965c73fa24b69de42aa6bb259c19beccc3", - "0x938bd32da6b99e0ce404e79790115d9d6678d13ee73e7ca41a6f62d39250f288", - "0x7ce5d07372133ed0b39e39e2d342f6eb307171bf58025f48be599a868308ee6c", - "0xaeab8e20a6a7933d03a240481df80881df64f96363e114e75af8c95ef37840d9", - "0xbd3a5c163974691b00ff0c2fb8a5c99461df825f803f685342fbe8963fa113e5", - "0x11b0bf19a5e7f6431ce978222aa961d6b4807462a7991fc79cdbb730bb0573e1", - "0xe52aba6a911de3310416eaaa6566280f6c092f36a2c5265290a94e5d55116f16", - "0xe1c44c8dcb79e1f4fb5fb104deba26de64d640120e183c5b7e49a1b645743d17", - "0x6ef7c7469ee5f5578cdf12ef9b1392df8268e3cf6730697a8a38cd3794e7a9a4", - "0xb63357d84981d93c270bbc2b930d783098901a529d338683c2af494c59032bc2", - "0x43bf340e40f73e5e6130892e3b9e7febdaa8ab3010d02a2fc2b5be529509fab8", - "0xecb0e609e25033c3ab24565ae07580c0c3433ec51fc1338e9071d1a13de2ee31", - "0x0912295aa7a8ae5b781b6704b0c47ddc4f4a0c91b4ef79038f889070806781e3", - "0x7ded59d270f1dccac585627bb1f3a577b5f507a1e45de94796e0c8d1f861fe63", - "0x48750dc05ec66a4e9d9889ae06c58b36b80cd0b8019b7dacc7c3c441ad428e98", - "0x53b757f762c6b8f1fd2f9e9ff6dff31d3db0bf325cee0d595773f17585ace7b8", - "0xe00cd3d3e7e92feba2b431d7978188dc54feef4effb980c78f18c3646e04749e", - "0xc0327f98dad58853bb02588058fcfeaaca268f379228da1dcd1ab05672a055c9", - "0x8affeb37939d7ec174ea9c6ae6cd32433bade565494346eeb1c221f1559e1643", - "0x78b3c061f2cec2e0324b400933f979f2e8ce920b9c8555b9a5c366b75c3e2e5f", - "0xf84eb7d08007ae4891c274208b6f1ce98be7201078e53493f1ef94b9795345ee", - "0x6b549294005d285ba7375596c060f2c2dd8d42ba18f533a2b836f7e33c1294f8", - "0x2db95fee415c28b95957a54168d542d2659383b602e490f7a76881706f4cddff", - "0x558f76d84c39fd6b226672758172f0fb94599061b00700f7c3e360d1464f2faf", - "0x5ddca9fb2881b9ae4d0e3ff488987b04856e72ab13b227aa90b277ac18e63c4c", - "0xd4a5c132154217e9d026f005fbaf367fccff273091102f04fbd4a7e18fdd2036", - "0x6fcd2319ee9439bcc80b6b43e7e4e7755dff4c43a17602a3749c8cb0b5af899b", - "0x2159d0c84d1bd380f110b144017096f3307cb229bd33b48ad06796fb95c27179", - "0x3ae630c2eab81c778e997ad714e6633d6b71d833c35073853785a53075eed2f9", - "0x45b99759dd456a15b1dc318bb4e8067618f18ff18c54fce71655d14b91a32d9e", - "0x472ee91d3312972f8df1839027818f5cb890dcab810aed0636a868490d0038d1", - "0x4e31c58a256bf19d1e715de52ed0a909fbfa1466292bf00ad759178d4e1745eb", - "0x8de82fa65607d7de5bc24a7d44664db7cce9edd606fb7f63efcf2c1e5ac696a7", - "0x9b9c7b302722ffbe115c3d3e04871ea434485baaaa7132eef6f0b2113bc8e41e", - "0x2e1f2b7dd68827ec0e15e96b67159dc07d5ff796be6f6dae578afc42a3a335a4", - "0x9fe4d2e36e10377b604112c507929a43bcd9929034d06d82a83e060614738ef6", - "0x5ae4fb3f4b6194ff92b565ce3044de3b8f0fa4b6c026b3df743bf5d5f1defedb", - "0xcad14e9d379330699382f121820a82b9465b1f34fe369d596309da29b49d4e0a", - "0xd13c8ad553db419a6eca3a9202f8fbdac08e878a4e7a58300135e65a8f1d9bf1", - "0x5d71aff2a12d4f1d05c7f760d07b417a39eb0eaa72a01333befc6a2eb6b7d72a", - "0x8dd7de9195d2852aeb6812638ba22e73ff5ca0a8ad921c6e924cae1dd5952255", - "0x8f1828b4cdc6c38c112b1ffee7790953112dd2225ec82581a5095e5ae4d71cae", - "0xfeac88ae6c8529e87a55a259f475b7d162d01e8fa5f36c90d4665dd6105b1743", - "0x2e37011bd97c6e8a24e130fdc2c60c39b14ab3eb426a4f654bf3158a19aca88b", - "0xdb59b565de21902c50e2e204374ae1ce487656eb74145c103a86707b45a63eaf", - "0xf75c26a7214acf2d050ff5c7cc8b76e1a90540410b5c8b2bc9edbfe8fb2268e6", - "0x6ca7554f2abfd22951bec80f9d280abb6f060dde4a9a829ff7a0457d67a99edd", - "0x0324bceb8b61fa7092396764d7e1933697806c6d785446e3bbab3fc3be0ab259", - "0xeb4880f177e3e673f8ee04be1451a38bd8a2c0bac681d82a19327ae2d9769d32", - "0xec6a868cd9fba9e4f5b0d4276f44aee71056fbb7f425f717d0ce9d1fa5442ded", - "0xdc12b36d165eae197487ec930e35489545d2867b6fb9f8604d279337b6a8f949", - "0xcf1241b1c9b054df34638e99447bb0359aa01ad13c38650b872f2d727e6f68f6", - "0x713765e9b76c73c2de58c480600a7125972246fdcce2324993cd6bbe49cce67f", - "0x81e096e97dd8bf1d206d0ed41c9feaad24d344323ff74707112ee8fac218994e", - "0x8943c2246d5ae3e8db5fc012e9613642c6b713e5f2a89d00f09fa73246f88d5f", - "0x5b2d0bcbd893fab4e58d4ef698d1e8d3001799b61e758b7711f319e2b8eaa645", - "0xf3e4da2cf4579f52b7e4d632d93b79714487ef179a8f5d5c46af9154efad20fd", - "0xa2348ea2cd7a5a32779e9d292a9428fa475fae790f08e42f7699ef5eb2489188", - "0x62dd923966e02db7d0d27cfdd4aeac081f9827288c8b54d9f19035331a109f53", - "0xaa1aafa8f9d9d3e0668eff761fbfc2657d1e1906c077d93200ec000643c6c272", - "0xbf40cb21561989004434d6d908451d5b63045c89c2ac9b1eb617ec0054dc18be", - "0xdae53edbb07fe84623451da0e25da631ad3465e5bc12ef8fd8323c8a72f57130", - "0x685115b38f307f984c7c90e85d167d62b0ec2c924a0bca5f23b1cac12a8f72fa", - "0x2ad7e8f86c872504d7c2c48b0db141955d770acc84222fd725ffbd2dc4095b1d", - "0x9268b3b175aa6025b959b8fcdb416c39dd339e6f1fde3c427bd1bada36e4384c", - "0x502ee814cecc8454abb95591b0d07ed5170db94af7fda8878b9b4287fd68c9f8", - "0x6b19baf6b7eae36c0b1d2754645ff282fc2905802ca6394ac00bc22eb1582eb9", - "0xecad17ae39f897ab38850cac40480b4fafcafd6624f8fdfcaa69849f3fa101ec", - "0xb0804719b391b4b5f554a49f99df3a9d1c3a9884cefc268dcb27e3821aebe385", - "0x3018401c9a31f97881852c1bd65a964bfd3011659725c849a8de4b5ad8f26490", - "0x48a6b687e62a42dc44ecb56f4187e293d6f87d328b1edf409c8f2fa6568dfddc", - "0x8e3bc1ec926a68e22ed525485186a4d9160a54bd3e80107bb77c09911564effa", - "0xd7a7cce632e1746120476a3271ea09689380eb833d5538310fa0029f9174e0de", - "0x7bae074c51f3b547568d18e85b73fcb9b5f8040ed5f96f3523f53197150517a4", - "0x9ba39f376b9444dab04e0a52e4728ec842a0aa4880d9aa9819de3f0694f46e60", - "0x40a2b84bd3d05d28d51a39deae5f23b4f7370c70ac70d1cc81224eac4939d69f", - "0x2b9f57c8c43284ba929df8f896a966afbdd341f145b6b2b2fa98382950ad915d", - "0xcaf3d2a336cf17c9b2d7116a14e654bcece012b07bc020ac30feb71d7f6cead1", - "0xd3b68cf2337ca26a9c4bf6b6b286dc65bf66641d5e9c241f4c1b147994253ac5", - "0xefc11a5944a8061c87f274515e810fee13f4c350c625a988c27ed276b6c55b6d", - "0x7a93732151f7145059424aa823b24e26341cfa57f612e6de3bddbe23562ae918", - "0x2594b625d0f5ed52425ccda4e7898a8a554300791027af6f3a19239a15868ea8", - "0x1db00091145b1b0830983b5eaa5cd3d0e4ad71c09d1b2dc20c47815bc2de5917", - "0x60563bce11f028691cf78da7326f22a4ab01d980020e61bcf2e4bdb5912b7b1d", - "0xe6515bdf1f22469a4218f54791d12698d1bc555b3e54b04cf46b10effa8ce74c", - "0x990831a56958a6bf131697e2f35ab2a45fa228eb7435c7e65814ba28778d513f", - "0x1b6e4085f0e291a8ee4d7e90158dcf15702b4e6e634d1d3bb5c4bab11bf70068", - "0xd0d4a6061bcab0f8e645ea16b285eee7f2ff84c7765d7543aa318edbced2408d", - "0x2da1a609eb1b572a47f187dd5a1e9f4cb1e1885c841f91ca82137e01a9eb4288", - "0x1293686df427f9ee1c2116000735642b3d09511cf2889dde21e1bee427d8c273", - "0x8a990d66370eaab3a46d9e4fa9b7d0c621020cd3b897d9e5b3e5fea6a6979f3c", - "0x10030534d5a06bce47d72998ad4c042f5e445a505920723d14b1d93a3a23af82", - "0xf29a399e8879386e4c2bd8e873dc8aed612cfa8dfa9e5b56f9c51d4c4d1774ad", - "0xb252062ccbb11c3181338d9912ed0d4dabcfa4d61860c211f2f702a641fe936e", - "0x822c7abd11b80c862bd67d39e16a208c8462936ca86b5cd5dd20c51d35cbfbb1", - "0x6b62aea651f1407f94906db704a364f70d827e0efba981a8515d1f515a46b266", - "0xa57b7661c0471cbd7eb35becdf468622df8338a48a075b722ebc5550bbf6b9ae", - "0xefc593d38afead5ee1fea5d8b41a52bd2a5b5a059774d0b951bb7eadaa41a46a", - "0xa556e684c26e7fd6f902b82ecdf721fc292c35e0d2240c1f362c4861c366c4c6", - "0xc9f274efc308d1e97ba9b59c92735d1ab2a72d033ed02a543dab301610e96e33", - "0xd7b43559126f88c59392fc54e2b416d2a67014abce12ddf61764df989a897bd3", - "0xc860842132de3d8c1d0ba2cdc0a7c2853ee568789f1190738862667e3539a958", - "0x2f330354084635eb507cd54549ab89fecc41886d295b1d8c91efd8ca27fe4f7d", - "0xda6edc97997b9cea1bc90662c6a8180fa03cef6189e09c86f36adb91400abe74", - "0x0d2853b5a3f02ae9e4a1c5a0534a5329d2e877d4d77f60dddb36b84b4fdf7e2f", - "0xf048b5acc9e9191ce0ab8c390bfe03d89cbed91db5b9e7c7452b01bf56bcf5ac", - "0x30fb6f6093bf59794d37ddf850c315dd9491a4cf5df378b4468dca96acf78e77", - "0xa04eeaa9d1d767c0f93553af3a259390a9576e8b6015ffa8f0e4fdf37f41f28e", - "0x02411cd53ac55407e0d31520a8c3274a2f4d1fbb2541bb140f30f25843c76860", - "0x65bc790d632d5fe2446c65325df875ba59af3c3aa7357bbbbf47c7e5f7663a7d", - "0x5f364562fed351d932eff956c3ac489ea51ad2cb12a81bd8db4fe0b76e3cbb92", - "0x104f7070d5da1aca5c8b20a96d36638e4b5f8be4e86be83f0aed7234fcece445", - "0xb2fc7a73d8d859d531e51532928671ea59ae6538d4572fd5c2d76c70920aff7f", - "0x7ebecf446825dd0010fbf47afce8b9c3b3901c839ec46269eb8744bd799699ca", - "0xc64002b5a70f18b7c51ea3d3f5246fe8db16781e146d777aaa12f3b765d108e9", - "0x9d136068c7002d2780abfefcaedc79424d3e89b17718ec369d9e64ab7b63a81f", - "0x7b9819e62e92dcead89329bcb3f1a1d6bd10794d1a22d30c3d0369a264029543", - "0x8a8c9e66f343d09d5b7897c491c851143ca4f337ddcb5c2b1462b150e22c6f47", - "0x9d86faa1a5d355d6071e09c8cca50e2dd7e7dc117c2e4f6c0136a2789e84aa8b", - "0x234e156c10a80422ca1aafd49d614e02b698a0d89a7080f87db5dd5169b419bf", - "0xafbb572b8d9119ba8126fdd5a593663db3a3e6165a60f1f439902a6321a8d243", - "0xcbfeb8af8c93b11eaddb05df2f2a8772da694f9cc16878d3154d0857f17274ae", - "0x7253cf6bd2b4d158c2bd60acf5fda9dff6cbc6468ca9b549efcd824410d2e719", - "0x67fa14af20fe738ec5c9414401149a1f198207969768a5b982454146ef720b85", - "0x6c0ddef53c7d58839c3013f2accb72190b7dcc52fbe5d71f4a20f849dd72725f", - "0x89e77c0dd9fcb4b4d4d10c25903ff5b905f5d64b6bed9a0736e9dc2035ade3eb", - "0x42466344821fc29dcdb5fe7dcbda00b3779736ca90f87ca1802207f61633877b", - "0x6e2303e8ed41e6d39488c57dff8d50c548a7079a26c3fb86d925c0aca5b8f67b", - "0xb8a14969606442bd94048f2b2dc7b87662d801097537f51c8eb8f026c52f1fe9", - "0xd7ee25e0bfd080d89c475942575fa055ce5ae268a6f01b916b399f6ff7e94a39", - "0xaf5e7da13dc0ab08ba5185074657acaa2ce753a20a364f3a97d230c247bc8d1c", - "0x92f9106bc9ccbb4e0b4c0d1b96c5bf347d856884eca91a0bcf29e896789fd9c2", - "0x4bc12bfadacd6af0737646b813b1a4a9c005e97ef4b090bb74b7475b50c85dfe", - "0x91e4ef72d0bdef33e2e2c8acbdd7926182568f559397bfc086b96979e7c4f53b", - "0xb2f57e050021b238e0b47b0b46a641644645db5bbd987e8d957038655d1fa83a", - "0xaf221401f4cfa3db7879237b40c68300060df9f65dbf68bb02694837eaa8af7a", - "0x2dd280e98a0d6bc950b7f3f0bd11a9e74105d4d15463184a3f8c03d40f3193ef", - "0x2538560e5b802a89a021685f994acbdb3181f25d0cae17160aedfc619ca2954b", - "0x133cfa3f5d6a00f7392a6b0c6a97a9ba10ec50b24cfbbe6028995258cbaa065e", - "0xc120807872f07adeb144905ff323ea79880389a2815f8441befbfa82835555b2", - "0xa2c5c5a3cbf6db506dfc13285b07c24ca7e70d9e75d80fe711c3082ba119d77a", - "0x837622b7bbb8bb18b3d42058426ef97e3fbc2842d2b64b339733b52313557562", - "0x29eda2468556699747beef75f015e6772980056cf367b819d05a4822b7d54712", - "0xc6ec29323368dc29a1d4c3c11e945ef7fdb56db78808c4c9688ab5f9eb7f27cd", - "0x44b368ab63e1fe0e0da031a4e6628ed1a4fc69fa4083cc056dd9443400be3326", - "0xf153dbc5fc03a89e80d2808ecd45e9fe6453d112508d32ffc6305d5a577d14d8", - "0x32452c0d51df7a85eac3edec46bbfe376c971ac4df4512d7e050e6fa711373ca", - "0x70cb25f3d60126cf0104a40b2a49b44ef8a42f60b93f929594938ac00647b639", - "0xed63fb33d707b93e45e958d5d5f9d3f0898c3676e43eeca55c788cbb2df3170d", - "0x93ff103a026350b0e9c2b30c36e079145892e8e3756678e8ae4b0065fb6a04ec", - "0xa466cdf6063bfe155ed75c115484ce113227385eff2cdc07dd90405239842f3f", - "0x2883c296d9ce6b1e6e7b4f471e841437603ecbb867570cbc46d86f0f26871600", - "0xea5e5b84183a3a709a51c1c6f3e7b039c4663d7495b9bdcfbd4ecb0a95ea994c", - "0xc0e97318bd3ee2957c09d6acedac77ce6b219608e5dd63ef512aa08d63c3a114", - "0xd3ccc7fcd24076afdf6249f671de402b515a131913df2da17118be47b3720b33", - "0x4f5be5a6edd66ec496207b33cefd00722f3167b9e6f2a44d9613c4c7d6541aba", - "0xfecdd1844517d0523a7b45d7b51769728902b881b7fc308f486e850c870eef5b", - "0x01a22dea1d0e25885e0a03e56489bcaf6747e712ceb5a42c74430fa6ffcc1c21", - "0x06cc521a05ce856dc55041b90dc4bbafffee578c1c315b5cfa4cc2d1ccba891f", - "0xac21d4b08fbf2891e0b3645b870695434fe703101f74e7fcf0d0e1304ce65b54", - "0xd62584c47aa1d8554cc08cf675bed128e541df54900fbfae958877595ad168ff", - "0xd8f1806ddaee8e729218fea1911efc5e663666ffb3acad4a2fda3757700d6d88", - "0x9dab2acfe01506a185276145deeecdb5c8fe0937feacffd40fb25a83e8eecc72", - "0xf0b74c6b1a441fc2ee8b2f25d2f03307164014d42a0784683a9d6cb7d2179064", - "0x7d590f0bcc891e30996adf8583803a9dd1271442c3f0e69502addbd371437767", - "0x3a66601fff95b0aa0d0660c12788ad56d2383cae290ceb2fb9ff41794abbc55a", - "0x36e94b03402f18c689f5234973ce1e626a82aac085dbdd682b51cce21f8c1872", - "0x00abd1d34c7e55f58681866558cb844c11faa55e8cac70ede75811f55341cfde", - "0x9983fc20e63e77ec0680522035b03167403681674ec62293cd6b7fe360c69157", - "0xe98b658fb8b6b7fba7463562f86348bf1e3534bc9148e8559423b3ee5ab68472", - "0x77ea189d3a408a8c5b1792881d93ba7a471f90a976ed334cfbdf865ff94cf20f", - "0xfbe2fb93b3ecb384679870205f2be2f47140f8d832f841ba8653e00d68056c82", - "0x330f5f04314ae57097db5258d861b993cbdc2ca0522421917463b94636a99d1b", - "0xa59cbefffd0e1cff04bd4004d21fbb64c4ca542b98220487ccc79a39a6a0fba8", - "0xe08f21b0f5ab216c1009c904939515d0ef8d8ca80f8c3cd5465944bb6550e728", - "0x37f1db42a7e99ea8b6d7f9ec5bfb39f9613cf79d98345816533b85726c64dab8", - "0x8c226434c5115b7ac0f894d8c4389a1e38a3118fa0993b59a42291286b85bd7e", - "0xa9977dc362eba9d32d13188dffa6cd0178e0b8c29cc24a3c04cd6cb0781fc133", - "0x502a68fcd1c187d662ff6852179d7602b04b5ec3141ffb39841b571bbc6cce25", - "0x09a716a32626ad3443d7f5f6e5fce5145e8b962a531464e36aae6356ae93b15f", - "0x2c165daaf0e8a4433d8bf97091bb573f1a7cbc7e82f2af353af9c580fbffa8c6", - "0xd8b47ed7ed3bb85bf44ac2b5e5916bbb282353f71dea6e172434f05cb1276c4b", - "0x2bff102b5209c88370b2deaf941653c364a90b39a6c3402336b8b3c9b47731a9", - "0xf6011e416be00e243d9b6b57df1bec2458d271b2a8a964292521f6f8bc7355de", - "0x8f4a6d08359aa81c14391d8483bb8e621c24bac1e32b2c5c505d5617487bd06d", - "0xd2f89aa90547e1956491879dd5924a50142d76460532f00423cfe70f36546873", - "0x929b13fbde5275f999f145a273219d6f7f4c25ac29b4eab3f89d68305e7f4341", - "0x1e7e79d55594c3555eb7d90e4b5bcc8b59ecd98848884b81ac5c2d53bebd5cbb", - "0x11c2705c4a89fa9187f63dfc7a8bd4e2c087d6e937e777393f1e2856f6f00104", - "0x294b40af144ac5046bd2a5451d1cc9900858e0e351f3f78b50b2dbc203111600", - "0x26432c2ba81f919c085a4d2326c22bac341c17f456d8a93a1971c0fd741ea79a", - "0xc488baa35e04ed6bf20753fcf856f31a98c00be65d51b73c6a5490d18fb89d71", - "0x915e1768627ebbee21159a0562d8a5df69b05f057fdc8b4bb69bcadaeadf2ae6", - "0x2303b2be6801e3fe8c02c0d0355069240da4f617b47a4ce6bbfaaae56a1e0915", - "0x0e4af9d5e2cab6a62d9203979db08996bd1f111a315049859e2093e83e465262", - "0xe54756890992736382616fceb3999d22ae462b9b5f8b1da072277da2df6b5f4b", - "0xb5aa407d54e2ea651563333d3d330af0cf45a992bf89db0c229962454c4da4cf", - "0x88832a6db2c8c3d899dc59154ca323c08c5eaa8c05d142978490246e7b4ba7ad", - "0xdca9619220c991618eca5cb18b1c14c6fe4167614a8360c9e1737c93a129e714", - "0x3fad9a66462792be9f771b39b6f64e537683a74441b85b53f9c5e6a2fb687100", - "0x6dc5466ae00317d52511d9e153ffa37cb6060639a010c8db25b33aed702b486e", - "0x2a2ca3148598d3106bae23b6f66a24e3e93afeb576d283ba6822220780008e95", - "0x480f699ec76a16530e382c2e8d91c7edd3ec0d393ccdeb28c7d692eb52b0af96", - "0x082d3f5dcff2a41e2fad715d64eef361271648bd976d895b40765089c544b65e", - "0xed14dc5ed74dfdda8b45dfcfe99e8581767cac57505805a4945b79e2110bf92c", - "0x6890d1a6c90f5c1020ea4439957ea54df3cc22f14e22047f63c9a93696210b95", - "0x55ae4e30fc02206a0f389e03c0ef5b1409f8fe34d6a5dbd5487af608e3b82369", - "0xa709e308a7899591337d59ea459098364c1d6638202047583851acc5e6df5017", - "0xaed8371c95bccbe53effffee29f40a3e9656bc95cceefa364f7191415dbe15bd", - "0xa7450bb8e1ff3c7b53bada0cb8ae783e561a3ef74cd3be0d19cb9ac5ae807aea", - "0x9fdebd0ae46437e3421d7f0a95a76f47b34f0e0eda37d69c078ef5b44411c027", - "0xa18a165a98307fb994401171c41e375a4637fcf2beeaec8c18fd24304b068570", - "0x930f3cd1edb90c020c19a6f6a8b86c86981c3ebb8fc19073f09c345fa4b0ea6e", - "0xe4c0549658dbbf4f541c60606c8b85dba190f58e5af0bcfbed101e0ff4a8f455", - "0xcfd5428494534819ee14e002c69987fc54207917e83a2b6e97a1e1b801a5d939", - "0x0cc3a6a2a5de66f64f5491908b5585eb3464fda42c7a58a9100a8cd0ce763b04", - "0xcf635d0b4522c64a9b00902770ae33b618580983bb32b94134a69ca8f6c6258f", - "0x2cf5c41cf911dff328ef15253a7419733a104cf9cd1846af43d5fdcd914b321c", - "0x6d4ea125dbf83b8a9dcba40c4a81673a365ce81dd8eb1fc10510ee7e80a40b1f", - "0x9c68f243fdf1738f9218c30664318278afa8f461c13bf5e1bf30133d3fa6347e", - "0x62aa880648363c1f3b5bbba3e73dc58566870ddbde0911c5e11aca003a13b525", - "0x286a2b6f2e35c2a6900a02d37d82263dc55a3c40d6c40488258af61f8cb8b589", - "0x296136ec9fba18ad43a5435acbc3006e52a182aea1e3eb005f25ceaafde2d0de", - "0x9ebd2127fa6f5f43a03fcad8dea37bde3893f627b48e63b9e2c6e33af811a95a", - "0xe8e58e2b6fe45ba1881eef4ec1e1d954e12793ee68060d50b9c9502009725317", - "0xf831613def863279307f637be60e9608179e9a148557585034d20816ed7d5553", - "0x9ac311437bfcaa1c66e1c32fa18f8964ca9d9ffe3cb3be306b64519b35051e48", - "0x931a4862f94054ec0f96037a225f1c3421ef99d8e4a8f774407cf913273bf4ec", - "0x07dead0442ebccefbadb2859e0f462fe8d3e6677c7fd04b0f35165ceb017c171", - "0xc4afb80e1dcb56ab83d5b20475d2212b6c55ab63fee058a914661657d2b1187e", - "0xe198b8ed96c1b7dcefab5197036f1e5789ea6622dcca2d817e63537b00710b6f", - "0x728b8b91918a059e3f46ec7658bc5948016f76ec200d91ec3a163bad8ad6bfd6", - "0xacdebce23301e49e068c83a73ad8484d8af7a0c28d066e62787542e154b42559", - "0x7f66807da0c2b155126b1d3a69488b10de7f0ca38f6cfe6fa670dce511a1f667", - "0xabf510ce1a016b5b3d4610b3cc5c9dec43a6a66f3555a70e1c16cd451e8894c6", - "0x56ee11eb3233fefdc056827fccbea1ff2be8a3f460038eef68a1c730bc1104cf", - "0xbc4df43d4acd0fc2cea064abc5b5d1754b29073533652448d44c09adc1d32998", - "0xf61b97d2d1e537a6d20438f4729bb59ffc8db6b7375c6e710b4be9e136f1e19d", - "0xf89f04d5cde25522103d1e175d68dfb4955b4519a5c2cda1a041298579174be1", - "0x702c60e25d6a10ac9657553e376f2385cc94737ee292a3ae671ec02af982ad84", - "0x5194589410d5f02de764bba1c25da027861793270c956c56e67e017d89323799", - "0xc448a3b8bb1b6efed04d84f82d63aa0c7ca19d3cbf817efe4db82b897ad6a019", - "0xdee875d8c517db5cf20b745be7ea1d389612e47880657d003c6bfcfdbc8a6303", - "0x0528ce8bc52f4878268be5e00b5028c9af85cf61a6279e75240e2adf7b498ac2", - "0x6cc80f5c62a1510d9cc97ca8b4c6245938ddbefce782635dde0ca2516932fa21", - "0x184f9e305ce4fa0bdb47ad00bc7d10691bfbd7cb13b9c9d4d82c37678e8df080", - "0x69456f4aae64f57b3709d6c6701a1894802a4db96374da6b979b87aeaa5e301e", - "0x60d1bd0acd9013472acc0b8ce0b90a088f35d5c19645146ed8b3c6330ec92052", - "0x09f87c83c6be698b2eff45ffbeef79254e5ff8d3534831c79346e5b837110c1d", - "0xc5fc2dab2c43c27132f31a915423a6d6a30a560e4aa266483ef2ef1ac48d0fba", - "0x87a147b03150b429b0c86569db27ecde32c1bb9a48b1ea4426d8dfb895339673", - "0x1a68fd5e6efa8e5183843fad88d6445fe8b07c01b884f30563ce527e6b10749d", - "0x4123e02f2c2869bfd99f3138aac82bcf1923260ac28f33bc4ff2dfcd54c48e4b", - "0x452345c2de5fb18422b4327a79053cfff33f277f0e3fc69bf2073d0bda4dfb74", - "0x830eb26c402a88c6281b0a48a93ab16a64a8e4244f87d589b471a3ceb4577f6a", - "0x84445f1f8805d911009a3e55ebda5e12ff347e5a34d0028ca44a2a26846ba903", - "0xf91a600ecc8aa47f838a8d877487c15babc10ff97a5be8bbe4c3eb705fb04dc5", - "0x01e749439d413c66340934dce9d4c55179375208069fefbf89aef7c3c7f02bb8", - "0xacfb6917a7365046ccbad1ca8fdaccf8164c216ba8d96cf64af5340ee3aec2c7", - "0xa1c20a4bb21a0a99f3a38818c05a3ba66e8321f24dcc7ab26487810be8211dbc", - "0x7c88ea06f3c8cab9ac0b29376f53fff4b56672a1704520fbe8de0e3ca0bf8acc", - "0xc19e59ef2361963b94bb211b8f6c172670ed83fce3d54b3e00d1a82f292d1d2f", - "0x386ebf9ab1a551ddaf599d9384e70a34a961ec55d5f609c088c6fdbf38add80f", - "0x8a635842c7d38cb2bae11ebe3f6ec09e2d41ef6b7093e4ea8cbf079df97f06e8", - "0x2d12afbf38c0378d287693cc7fd49f3e068d454ac5ea7bc76f6b3e505bb09f27", - "0x33b7eb72362caff0e54cd853549bc4a802345d774856558a8b128e494ec63948", - "0x31eef3a0c2c9f586ad2305d8ed9831619ad6ce2aee9a16800cf4aa048b1d593d", - "0xfbeb707dd62204a0f3a06ef9046fba5b3b88fff3a38b5b08cc3213f5965c69c8", - "0xc8913325245c39d0609c6af407354e9d309c5d582c8957a90c86c944d2f5c6aa", - "0xbedd0ccdb57b01e688c14d6230aa84f5912cf13a72839f654eede63ca05ff52e", - "0x0b0b7435e02cbc3654eabd042c32409f4e178cb60f5e306ba041c985378cc286", - "0x749b3fade2cbe924b3d76f2b9e216c1675e8687bf7ede81b090ea36a4468871a", - "0x9a59125cd56262bf0b6d2393be4ba8f769b9d5a53b644a0700c9905dc4d91c14", - "0xdd2001f6cbcaf2d29a7d022e6f723e4691390f56ed6a599cb58bee74c64c67a7", - "0x05870eb07cf5d1c1013fedd8cbab73b7341e930a0c02e2dfe898d5299981e34d", - "0xef78e2f60d74c818cbf8996913c08a7c5abedb3f0f7ca412737c071cd6a38ccc", - "0x636a6d39d02bc22c139d9e203b1ae8b2dc485cb596641ba6e05929296e87ffc4", - "0x8cd6e1340deed5cf75bb30c3183807b653c7ccca712f379d5f885ef1a4100945", - "0x549d904ec260af5776c241a80c2075e31869b8da7026a078fe158c0b0d646b11", - "0xc73927c3be804cdab32e543e78f38f8e0899d7f0418e0b37af336c2bb37269cd", - "0x62a4d4dc610995d0f08756056ac199c3f0959674eee8d4503067b822e37bd1a5", - "0x4b4a3cb0ac65532d63592978b1afe838cceb7cac04d30a58cd4d73af4b99d2de", - "0x2c5aa96bb3b58a76b4acefd0275f9f7f82418501ac2c2052e0a5f43eaa4eed64", - "0xd6b8f1a8e502a93e14a8177bd750fb7e7974b7527f50bee37690b523dbeb077e", - "0xaf38bbf2941d5ac311f8ab4cec22642049473bb3a8493ecc27cce73dad188797", - "0x778b83f79934655d67e52a38c09410e5b5cc28b26f4f70b84d2bdff5519bcc74", - "0xcc016a4cf3d1f7119704551809e89c1b4f95d1dfc4cb7f95db2c5d2a6ff1036a", - "0x6b904799fc1df35a787bd7b1ce4337697bad98b25b2bbf264a7bc68d452df41c", - "0x915536046dad19310976f8d158795e4237bec7fd5c2d2fc8ab1fd6a3b5b75e43", - "0xc84167f477d317ed1e6b1452cd746d43ed679f4ff2eae84b1676ae99d3bb0fca", - "0x71758a9fb0e66a7a04a076569cd3bb41d5b91cd1cc26b21a773e67524af84e63", - "0x54f60d40ea84652f938d2856533d82a7c0b91091a0ad009f48e599a917b52bb1", - "0x618cec420aeabdbdedb8afba71b0d0408da5095ea3231455b6c817f9a585d437", - "0x57cf387db60cc35262bfa939b0272af7c490720e496b5f8cbbed6b4b26397824", - "0x7c8973551ad57c278a0d8702cfed004dac293e2b9464debdc48fa88be033ba5c", - "0xc80eed1b2bf137a5574d40252d4d02d0e3f87618c79b764407d8009a2b4932e2", - "0x09ab540be725d669810c498557b61a53b343104c5303cccaeb31e518782d64d0", - "0xc996eeca57ce9a7ed79f6db45ecefe1710abc4b3e21dec8f707eb5f7632c9c43", - "0x160af8ed3f5f55bfe0a9129da94ed002277580b297e29cbe23a962c41eed1cf4", - "0xb8935e0d55dad821ba5605607cd6a025d6ff76ac3d9d855fbdb3d000ef864dec", - "0x10f6dcd55318225d362a40859030fed3199ae015791ccf4c4bb343e7cb97822f", - "0x6f3a76c93761f73bd148c57f2bd00670c20bbd19338b7fddbbca65e598b70ab5", - "0x6e99e5531942dde6d881eac1f03c6fd2ba6f9d79b6f88408eca815d84ff48157", - "0xb05ebff5d64b736d36b372da80fe28d6e76b64c74e1ca94f1a859936c7ecfe7b", - "0x815a140ac8538595dd724ab2c31e13d30c03ed3b64d2cbc72871fe402c7c88b8", - "0xf4376c81472e0b3995618f7845887159eec1e929b8a485c2693219f4d5ade069", - "0x30ff47cd807666e5ac48659bbfdcf8883fc1c9ea4e9be8b397dbc969a82f8d95", - "0x74e35254636ae2f72005ec69e62273e9cb7387fbd4234aa58184e11725e2f569", - "0xb4f3de4e9a22e787077a53017e72bcc8ec26a1499c98305dabb61ce6582cbb09", - "0x3a05acc943f2b7d0c93cb4c5fcbbfa3ab9e536a2cda7f1c325fe3748401b4f71", - "0xd75d428c14fcc7ceb929328989235a5fc46f8ed3e0136d81dfc15866756455a1", - "0x20833cf410b3a0626a6c7e07d5fe09bee17b218416725ec3fac716597e1f6576", - "0xed31b1b593289be968e483888fc80e5c360beb66626702f388a0848bf104687a", - "0xf55fdb35314f9b873a70bb207536eb2e22958ff9264f1e088b0dd82bb9358b2a", - "0x701d2b5d8794e244d85366d13fa0382827ccbcf557ae2735bc3f88bcb5c778d9", - "0x0492794944f7d179da85f68eec5ce4575a90b7a6f161ae199373ac4685c6c665", - "0xb1fb246d93a6ca7a0ce6518a4d0cbaab074bf2ada05fad7a6d199cb830bebf8f", - "0x77172f0acbcf0eb3ffc2e314b548210fc74c10826162b2d63195cb984d606623", - "0xc9f684762b2378428ebf3dc8e207fe8d2b33c5a0ae1510ef44e2dda7e5979faa", - "0xeb864bdea464cbc95b1e3a4be62231f91d1230179b7bf61f755abf5f05cbc9a3", - "0x10fb3751407e792cd70fced2271f125d438d9cf3843d9ac6f89681616d0cb1ad", - "0x79f96b934d4b22eb9315230c113fcfe0ee2828133e10b14cf2e9b3a8007dd7ec", - "0xf8c0546c0c5eb3d9ee16295c5e0fb510a0ff3f55cb654313db2d8ec6195ee996", - "0xcdc41342d4045064634291c9bbce68efd7227bc2832b372502fd4907f1957ca3", - "0x7c09a67309e6a0993fe1cabb7528e5cab4ba6a79042b22b3a6cbb10778cdecc3", - "0x7d5c881d1a199b82608d7e27456788164041cb1e5ece5e3b813db550cb402203", - "0x4f7238409440404425f9f60c034696e4713bab4f4e507b76bdb2697d1117ad70", - "0x8e8642cc65aae464b068178c4c2276dc8860b63cdd8f3447ba07a0e7a9b20c71", - "0x59fd79b1b77ddb040cb6bd45f10ec5ebbc7ba421e14dd79755e568774010041f", - "0xc8bfd004b479e0ac8e2e798045343198909a6f5657625028bd28af69de58d9d0", - "0xb550f5483d01e8d32258708d82d463f28658d5155a15da214bb2c748e27365e6", - "0xeb7de7083d7c73f3f443e6d009e97783ecefd77157b830cab2ae7d41a91b0b0c", - "0x6f3145fafbfa23c5667b646b3b5fe12b0fb08e45f09e62e9254efed6ed812880", - "0x66cbab429d401739e655ee55de9dc3ee6223230e38daadb1fee88da03c46197e", - "0x410eb1081b98fc38f2447bcd358a0996bb9660f949b4d9d6a6596aa41de59557", - "0x2fb84f43e9750be8f37cd293742776ec76d95170689710254d7847369626d6c8", - "0xf1d6c7c8a81aeb7611531452bc46b69db1b56a31c1c835ec5b497b6f4aad2b8e", - "0x1449b942575209a4bfcac57d594cba694bf494e98e154142d5423deb193ad2dc", - "0xa14bbe0f97892409b86989212bf815a5024769707bb8fea7479417402a346f05", - "0x1ebaf8a3c224720c6cb4079b8e355411f0181318dff7766faa204d4292e6593f", - "0x70169dab4258b561057c427b3d31de403d87302180db843d3ac6fcece4a8bff6", - "0xeafa1e0854e1d0dedffc92fe173f2333d3a0581199fd3c63ea69356206329d65", - "0x54de1a943017c40959dbfc25e318b0055b0e041cb170b0f34e1fe76f41bf2f15", - "0xb4ce2d897abe390b9b53be9809fbc1dce8d23c2d726dfa1d0e1419d8caf2c6a5", - "0xca872995f8268bb0855fc685e69d590defd10fc6befb61a57ae75255ef92cc23", - "0x3e3606562cdf9f8460c18efeca2d7f3649ac96fcd81d2bbd501e73a01c729f27", - "0xec09b7014e049e25e0749f0a0899a2893605003f128bca3bfbe92a00c9dbbda8", - "0x9421e443b91c741c80138137362f7b30dd9a0db6a815a3b4a799ec12ba6de4c4", - "0x78c95ab7995ca6058f64f7fc4af9575923bfa70a092ad2268f0b2a3a20dcc247", - "0x386b36edeea33668de333683b1ec3d9c665f150aa96cf78be27fdfd8f185479e", - "0xc732d05a6122e07f7566a2a751adf5da1cd1ee23dc0b34c0cfe7cc12f0970c5f", - "0x283d97620ed18ac85ab1d2c613d64df485b6efa26aa6efa71f840240a95cc240", - "0xce779d27aacf6e512f5b52f96507325568f754b31db766cb4aede53c9e1845af", - "0x50bbb90f2a3cf4c479be3e118936246db591f98e37caef06fbee553502b4c364", - "0xcdf95c14c577f913331709c5d044fa536a4afbc06cd8d60ea7b5d9ac463e86e1", - "0x3a7d03a8ed71d0ef15ed70677ece7a2ea32ad1e96ea5c3266a1d9f580efa862e", - "0xda132c0fa137c542b06170fe085b483afdbc97c63b4546079262ed0fe1125c1b", - "0xe4cc4056951325ee41cbb70fb823eccad0f266e032e839a2e3a8e851f0a6c73a", - "0xc301415694835a5bf36e226ffa42d2fa8069dba6be6becbc2a7a6653c295e8a4", - "0x1856c6fbe4494ba46fb87deed5c10e361a83ee73bfbc8f1b604c6fc0301f62db", - "0x1b822bd73acd2fed2f8daf6936ddc8175507f373e701217b645cd6cb2ef2019f", - "0xdaec59b4c520d6b5be4d82b1b1338a5dd55c9df443d697fbab750c337f6986d3", - "0xce6ff73593693f7cda1159724457a2aebf0ca608105a5926fc98afe5010349b1", - "0x53c50cc4da6192ddfa851aa104f92c865ce212a87500098d18100394140ad6ce", - "0xf015a6887a543a0849a128cec761f10f7d94f7be083f739c767c727aa9ed95d1", - "0xa54bdb8a7ce7327aee991715a7d673d403f2248574bbc0ae5aeb9a32b3d9528d", - "0x47d46b4777a303430fa4e45305b31a113acb4aeebf205ca215447f9d27ea401b", - "0x7a9504b64ca570814194b95acb8400357667122b5b1fa4cef386b35e28de2c61", - "0xa63e5964474672c45b8b021b7cc408e30364c163c800fc302f342f119689e022", - "0x988eaa51716d4cb523fdd5fed04dcc195c5fe00a8e4b6135fe70b6f09520bdb0", - "0xfb8a8f98809114b3d433875844e5fe90cf0321b772aaf86863f96e8013b8de7c", - "0xc893ef50496aa272414f6a06af7d53281fbc7265a3e389a42c7c49d32d24fc46", - "0x4956f7747cb6489eeeb92b1c759f54d534397074c9cd017b2f5181187248449f", - "0x4b48dfaa0b7984d4eea56cc40c5130936f98752e1c2d02762b5caab600c39691", - "0x23df05dd92b7e6c024c02fef9cc6aef2ceea2d0a4827de1f87bc7eb4f8c8907c", - "0x47ba2e8a2e5d4fd0bb04be0d76a2d553d4bbfc574d1b5c715393fea03672f4dd", - "0xa8553d8cc2aa6cfa89c96564022be9e89aa5a6b0b98d88fb7976583cb2b4d2ef", - "0xaa3e7684a3a9daeb343a10566c21ed1fccb46f4ac4b80efaa8725127468b7072", - "0x55acb0e629a6b654ba723f330770a4238cee9aa9b98fc4536a7c8bcf6050b9e0", - "0xcf2cc1a66e1d9e2fcd8709c6e695bef0ea95e4d14523d34a544adacaef0bf786", - "0x6d955c9a59acd3c90593b8eb22dcd614a89ec947d554a0fc8323e817cea7b332", - "0xe29b3ce7a0e8325135a33a1127d1db2f17637090712a0b440bcc3a3bd6301186", - "0x47187e16fd16d67eb94e48e2f35eb520191ce412b95c1d18443487887700c516", - "0xe2ea962ec229af7a26687783a7ba8f65490d9aed8f34bdf7aeb978c901f67c1f", - "0xcbbc65451fd646ce67f78593806e3b66379d1a3aed301e6e67df9e3ecfd3cdea", - "0xedc8308273c7ec9b50c8c328c62cda10e4e8505e3f67d134d0961d0fda239747", - "0x57d5dda883a2dc7ef9b36453edcf481d97c06113d7a060131dd39133ded06e6a", - "0x9392ffa1001ca3a85455471b660ee9d89c8d6d421fb4b00d7ef1eaef22747009", - "0x0751d3a58d8bfce5febe6980c821c92f9bf5beb8685358375640f751fc5c8369", - "0x6ad5fcb53f602b55dc728c7850f628ed5c500b65c6b0d22c077fc4df980d9306", - "0xb9f2d92291fede8a3def3f527a8449f6e330d587df1ec3daedc1f42cdcbd6af2", - "0x85eef96182742e4090221c1ac4433c106467e48f8c46ead864e6150d7d50946d", - "0x6e800d685f7f68839978c124f300aedb6c34dd7ccd7b2dcd3144223d0e3db527", - "0x9395edff6ff47843cda1e5cee061f449dcb7b5a0ca07daf9788079aa7c5b2ca3", - "0xa2995f2cd9a79024f92ecfaac2cbb17a9325b3f54480bf2ae5f3d171132780f6", - "0xef907147aaa023015d9b8f3e7414dd4b84e551af0d9f19fb918ad5f632096657", - "0xa44d76467ee5fd7acc90c13bb12740b3fa8a0096ad0be0e3619841e67323c5ba", - "0xaa574a790a0a50cdac6be3819be64c67427f5a891a0029333da60a01680d83f3", - "0x531d9c8a5d68299fd55cfe498922d54af8b119500f7e6bc0c1b66b45234dab1d", - "0x45cc89de803b6eea973d45c26b4b4287d322dae61163ecebdd3db92f8a40be52", - "0xb305c50ca54418553d0a08c2a01908f3d413ee3eafb55eeb4cfe32aaad32597c", - "0x5767e979f2322c81537baf5d300d24e736373eb399c0e7ae989fc0f177c40bcd", - "0xe3646fedcf2aa89d6ab6a6a225cbfcf539317e4c59be2655b46f0d89142d9b18", - "0x9edc1e15d3b2e5eb5f0b60f15e3b39b0be95ddf0bb6e4d18f4c52322b66c7867", - "0x5bf071715890e9f227fc66c705e782add56e39eadd30dc982066fc067ac64fcd", - "0xddb572bdf8c2ff6ce8a0d9b6b2c95cbb33dfa9b96bde4b74812ac016a93770e2", - "0xf0687ab1fb94e49d1e113b1fb0127548d60ca1dcf341a1952d16dec090aa2736", - "0x94308074a4ed0dda1ebaf569b6cd5b4b6f7e77bbc41c737c78462a1ab330e3c1", - "0xa7141bddbfa78144aae11810acf034e48bffc3368c862d4f750112899150936d", - "0x1560476607eb8c091ffbc0ec21cb3091c3385f9c83f8d27c4a301ac200a92820", - "0x8c0b77737383dde0abf21d1350f0d2c285344720c314c564717ffa034acb1739", - "0x2782b37efd53e9a34ed2742be32de2480de342a384d81bdf3359d3686a3b504f", - "0x6e9848f3a434e019bc209a02ec769dc63e084b9c0f00472c218589dd3c256017", - "0x721d8f1bc957b825d3abe06a6ad9d8bba2e03b915aa779ac42fd9e5bc247411a", - "0xb937b6dbba5291fd35427afb0126ffd47962a07c3bbd6c77e4b80f6bf751c684", - "0xa5461d8dd8d05bf13875c6b2b62c82d371163d2f8ca80c2c0ee4d94061355a7b", - "0x58901227df5457e57c74db16ed72b9b6f9303de046e7adf6fc269db7ee9e0a28", - "0x33cb303cd28fa770e6c9f067831cb1829a8ccce845ac6bdce7d3da5d4ba8f3d1", - "0x3ea819ffcb3839d7a16ce09958849118a801152ecedc92de0ae5154f6c8a5d1f", - "0x001ed88b63827a6c71d7214b42551990e3f313720d982ea5f1049ede4f9d228a", - "0x2e346b0acbeeeb88e08ca6af0f2bcc3669e093475d8c224f23a45d4e2fca462c", - "0xb4ed38878080e2128b706ca1ac4c92c0def02a8ec094d07312068c10f6b144ca", - "0xd0d3c577cf73421791431a6f00452f33fd06f771de9ae2caa32ef2c93bd03951", - "0xb3dc9827308478b197b3995e39aa930d40df8cb98fcb2958c6ff8ece2bbd4c16", - "0x44547163a565de79110c1e42b81151a6e304df14953e648742558efa6f63672f", - "0x487a072363419adfe51ce0b8be352c0f497e5720617e9a237500293459cb7bc0", - "0xe7e9d6bbc5de3d62822c92cec484926d935038fff8be29ff3743008499000d9f", - "0xe151cd789208eeaa791f146f7e7efd46c17e2f8aaf061ba5bdbd7357a32cea39", - "0xf5e2de235cd7ecbc34828c244da80de6c9c452c253e6c876d9843bf5bc665daf", - "0xd0bdde209238ddc6ccd1e06e6e69c2c16b38ebac8b9f3202d46bd6bebacdd893", - "0x5c3cab37f5d83ad8fe9349ba88ead08f36e71f149f10642c819ae53b26ccb0a6", - "0x1d069657a6a467ecb3a781a3d72a8b701faf497e1098fbb9c04ae29820fa4e75", - "0x8fa114b013195af63e697432f3be7017ce8fd6e7ec26f23f832b003e82f17ce0", - "0x2664fa9d45f83ddb5c8a758c6fa3201abe7ea14571c886815585c543f245b301", - "0xd6c3528e946a4461efa56df07020008870ed64fde08cd72e7f8be581207f0d1a", - "0xdc4c0f579f3e44278905dbc69610f7d1025e068f75e5475400d96c97297fe5a3", - "0x06124cac7f9a1c10d48216905db968c9580b3744ff89b37b9b49e7308b04da8a", - "0x5c0c6c98bce9c64b7b62d62ecf02f435ce54b76c58883da177611774c79d5fba", - "0x424553682070092aa2ab3e454c66dac9d6bf6baae6379d91405a47fa48a3f200", - "0x3d09aa437ff840909ec6024c1e407ee7b5622561e4991b76968c146ae1c4976b", - "0x3ef50c81169af169c100f58f3afcb8e2f926d957b2adbaca8787be5d4e8d7233", - "0x8783eaeb56ca2d7fec84e0e272b77271fdfd6c14452a2e1dd83de770c5d99a1a", - "0x861024460895378ba100c5d0c05e62bb6cac8b21ae529ab5cab39eb6c6cabd90", - "0x1c741ed9eda60e5ac585e2f48f06fb988367c2c40a0d8111bb04b260fe44ec6b", - "0x6051d77e0596a911bce132c4bc12be2ae5cf29d113dd52a41b3bc166861149ce", - "0x92c049df5ddb238644015d4e039e169614ed1d926de070952f2407912906cb4b", - "0xa897567fc1ee9437f2876deb3de2b11b8fc00aa07340564031573f0351ec556d", - "0x3e54a8e15218db168960d28369003cdb1a76f8db19384e9e2696ae66a6693d6e", - "0xc5db7ade97cf28f8b61f2c63a0773201ba64f37dadc19c03943b6772aa7a1a50", - "0xda784d1bf64b7efd06558b90cd2436f3e61dc0f7a8370ff92516ed062f461091", - "0xa1d10b0a36ec5169d2df740878d051bf4d38ebc5dc04ae5558daaabc2bfa1471", - "0xcc89a8be2ff74a7bb9e967cfea3cac067aa84cc455a2fdd5449577b52a2b4ff3", - "0xbd23a3e6d3198d81d798c2851c36b954fa6f359bc8fc6e04a0b757e3d0ba053a", - "0x74640f825b9d9f95be69763845aaa0269d3a6ed5aaec88bfd9b5c4139ba7ef41", - "0xc01a29e41af3cc0d0a13ea83f131f3e4828ec3e83dd2fdf9739c139938dfc2b3", - "0x832509e705972acc7efe91475e8d76ac00a12750e194847093825e6c4db9e83b", - "0x63139d1224766ada1318613b9ec5894308efa2473e809d9e37c8305c6965f2cc", - "0x76547e54dc59473093c3fcca1166307cc7d0f4f0e8a35d850507bec216b76476", - "0x3a6a14785272391982cfa690762f5b2aeccc1dc0bb13eab6b9fcfd056f40703a", - "0x603e32b52795c04416d800b6a936343aaaa09898fa97cadc2b157eeaaf3bd6f7", - "0xf241102a3d3f3a9fdc5a1a586b16fdce4280c6c6da04290541eb3cb9c28c7325", - "0x6db6de041bcc7c00104a21bbd487a1e1ddd5e4953f7a503aa992d68a8a7bbc43", - "0x8377d795c55eac07c0acca674e775ed7d8eea35867990c8a776f40965c9ddc68", - "0x48d62d562279641043e405f4d7fbd76050d773103871c5de2c8acc25992db502", - "0xa9ef42d314e15c419537e022753ab46d41318f1fa8784e4363494f395eb6d236", - "0x99572f567eb602a1d9839bd23b41562bb3782eccf9a8893e54b002e685ab378c", - "0xd8cf2fa2291efed46c1a36e1b8837be62e86caacc380aa6397792ae8baf8f3a1", - "0xed2e800df1acb7bba5ee6251592c397a604debd7b0bfc28c8b0002dc40faa8bf", - "0x9ccece195d9e67e318f6d2952bca9486d09f4207c6d8be266cc0eebe41290920", - "0xb20580a5c96c25bb59e1bae6ced3ea5cb69d903f64e648bcb38b799141b3cd5b", - "0x1488647e697452306d2744ca6c709007cf75e2e37da3c7c05006211ba0720824", - "0x009c3dfc5494962c77900fb8da67d7bf2a2f4b855c521b9d50c4aafb1e0735bb", - "0x482428835dfff3ee1da335b36ba3aa1969fa35e89150e5b3c1991f28272d14f5", - "0x6a972044f2076e98833b243c9ed18162d96b46823170ef7c20b1a02d8bbd48c5", - "0x676242effe0fae84110c4933beecfe5ff549b439e54ff5a588add229329e5365", - "0x2441bce77589ebf8019fa8ae870a8529479c6eaa0fed7e0fbd3cc7439dbd4a09", - "0x0b20c25d2c6897c1a8dc9ea1364d3c72d33c97b4d70b9176c3f0a1e3b6ce08a7", - "0x685aa4e279118f8326a90c78e9896e40d9baa62144e2425887dcc704106979c3", - "0xabcab60973f6bc9ec3b596452e7434c4dc89c55c8eea925fc0092d1103c6f86b", - "0xcbf44f106f3f2c0050906b5e344ad22f0e0034067d35402d447311d254516dd0", - "0xcaa67796a8ac69283d7b6304181a988992130ad8441d47b4fdaf236686dc1caa", - "0xad06e6db230bd0bfaa0df59d1ae517ced29d5f11b34f76ef9bb6a73407128b59", - "0x93ef56a4951e4e5c19230918b1219c1f07e9356363503c1410e71486ed338f87", - "0xc6fef02b5bdd4909906c40cf5b999fe9e08e4c0d8bfe59d3c9aa99011136f780", - "0xfed633749700ffdeb0921a537a215ae31c25b85e4f80727376e50c247b4c5a38", - "0xc39d8cc15f4331fb7db2c24ee1163bd164e81ad2ebc43271f841fb25d03835c6", - "0xb13962dcb364ee49e2d0a34dd1a555fa8df363041504ef1e987ce78646d64146", - "0x97e0d3047e2151d53cbd1358da627453558362c6a830910b33f241848b20cffc", - "0x587ea98cbd1da50c0af1986f6ee5e676658c06442e893304708db831fec8e804", - "0x0a1d21212d9bd85a1a39e046c897d1dafb496bfd80762beda2fd3eb1cdc72eb9", - "0x46aad83612f04e7a51fd642de742f713601992e58de4daf24148a3e6f3318aa2", - "0xa65a8a9ed4fb28fcab6ee3af5df4647083c2e735fc652568759fe0426e9a294e", - "0xacd7ed5525cad187f053ba98487cc4abf24f76c8c0e97e71a696d553a3a41b7f", - "0xdcbdcfbaee764bb404bfa5261b5037b9c7ce567a3c1aa9f7280071990320da18", - "0xf195aae79a232b2170a98602efaa2efbdebb3c40d2438e63bf0954e4dc779cb0", - "0xfbb2675a62e2e67baf85e56fcd4cdf2bf89ff7905952155d3cfd4e625fb674d9", - "0x5b955473a35f6b0d24fa8be8009734ecee62f6c4bcf0cafc2335f07c51752fb1", - "0x66f37b268338f4ba1e21eef6884aef245bc36935be1f5eb14ee1d23618f00f5b", - "0xaab809ee86773263043201b83bd445d98a634d8a6da4c389b2336f68381dd481", - "0x509fc38118491458e45c7e8ab1d60c687f50d85fc1c0bf104b531a3b352198ea", - "0x20d1e4f38e83b27b77d55281af40e9f96be098fdbb90730170638c88ab7e435a", - "0xb33711864d62709a98f81d9c5f0a301bd5808d0e8ecef1063c97347af754c8c2", - "0xd69fd6c0fea478bb380b948f5b054f91831cf26d304991d40ebdf0b00a97503c", - "0x87157d452bf57e617ac1dd2372438b0777b83f6087d8223008d823652c634882", - "0x9c54b0172ae0223e6b23f7e000cb6887144e615efb02c74596002dc26d43eb5c", - "0x5b0f87baa8e40f0a2bbc1a76afbe0b21b5e8aae1443f0d38c3ac55c5f942db42", - "0xeb68d93e19860fb9fb76847080edc345972e29ab1ffd417ae5727d3cec79c0eb", - "0xd27026033bba2557c79c4babaf669a399fbc72a2a5cc06c707e24eaacee83bce", - "0x420d887bd82cccac29711c52f4d362b6a7d854e694f8d597d208d0a094fbad8e", - "0x02ff085c6c3c47879a91f511ea4c54a214af8160e07dce8e82a6be9e8299e237", - "0x1f0384e0afaf47ba59aff9f224905950768674c48de0fb0312749b16edb0a347", - "0x55cefaac814e132ff335882a366ea6173bc21fa713e93d8ad92260c84cfd2d85", - "0x58a8dd6e036a05a937a7053be916c0e7f719f2a1905186e7586a9d2dafd5a1a4", - "0x8714d03549461e32a467cefdad60a96788c97172db05c18eb9debf6e6a4d39e8", - "0xd141656c1f57c12feed31dbff3817e1d2af4e1b5cf6aa75d1bb29ea2c0a3ae69", - "0x5ec365177e19fca3c1063e65a9342008aff04ba9d03d53837b598b143504b97a", - "0xc620e23ae73d423bf2628a3de70b1a1f915d80173e0c8d1443a44b91400c5a8a", - "0xc72c2356ed53eae5a4a56bc248d9d2f4e9154f1404780b84781f357cbc7ad2d2", - "0xe60bfe30e5a1a9457ccca65810675e129948b474f391ce64d270200be7ea6beb", - "0xf679887baad8f8e497d60b015156f194b94fc30c6cb1f83fbc4575e99b95a8d5", - "0x654463146799fcfa18a74ffe4f2423fa04c8747c16b789dd24da26d0338d381c", - "0xe8b5406278d9e4622d088976af8b5e6b14cc146a9530c862a42fa5566a247355", - "0x8ecb4735132f769663781f96fb531115190e68390c54e33b250db874e90aebaa", - "0xef13bf38c2ba993c9dea5777e5db348339273d0e6dd1f41867d3b258f24ac4d4", - "0xbbbbeedf7276a857c513f4ebce88e3b531c99cf206eacd1c6c29d3cabab45df4", - "0x89cd50cde2de3ef40de7502241b78e664de53dd4a5e2ed85db62c55be0a4d8a4", - "0x0da2cae061e7dff539c7e39b0b9f63af3217f1a51bc597db957b6a3972cf7186", - "0x57aa87a6daab3c65519de7c1c1360ab33b830d46f169d4e0d3c38e7dadef289b", - "0x85fb1241c4110b4f3a6c197450af8ac47bb24d531219f6cefcc079717b208c84", - "0x52194cfba6bd7d5eb8b438054fbaf5fef387cdb8b1a7ebafe44cdcf4da47b1dd", - "0x7d24eb47a1310f7f4244e825847f634fd4a4224f695a3609c5250dc6052de6d4", - "0x38edeacb93b10653624f77dc05063499daa770b74d6b63ebe656be5a3630b7b8", - "0x4e050f7b9d73c1aea3ce60c8eae8e46b55b6d4c1cd1eae22faf982895871dcd1", - "0xf22b284ed4d97b7d3553600388748721a328052daaf92a58ed5403fd4020a496", - "0xc5fcf858d9a9748045fa0ca1271ba5af780a788c51d693815e0490671be3885b", - "0x2342efdb88226e68173ef84060a0d4dc6c8aa9c9431883beef4a5588f3157fae", - "0xe1599bf452eaacb8dcd51ff835a9ef5761dbce83cfc719813d6a10772ca5fdb3", - "0xb754797393b3216778ea6389361ca5951f365ae4e7ed99ed4cd4c9c76ff442d3", - "0x3fb5f9f3754764155296c6ff4c469109512264c603ece7c78c1231942bb8ac35", - "0xbb347d23c7d703cd2801e2763f1a6c375b5cb2a666ba137c4d6442c3f94688dc", - "0xed3806645b55fd7027dfb7f5f796933049ae558d26ca695a01e1b11333f5e453", - "0xeadb7740432ede4f90c0bc490c15fb377b68de0fc1ee3a56e87e21e7771211fe", - "0xa8c0e907e0b544e7fc3116d47e4cdfc8e8688f5cc4a67cdf600f74be6b79775a", - "0xc6f6b94f2fb4c56066e3c722123b8e85f80ce8baa0427b62c5a2ff937702c481", - "0xfff0b94553a7daaee58a7e15daf9845d1a3ad4917d81d4f23dad27d0262b48ec", - "0xb9084676613e1a063c2b491bef1b984acfbd2dce60a8ed970688239524e31962", - "0x196af717eab2cf09b47db13605ca4864cb0c4189d40c9b618d8a7d3f92831d78", - "0x4fac369653dcfe74d86b7422354d68f7580b1ae0ab359a8b8f8be8582590ea7a", - "0x035ff04f84478354706945480266321d31790f5445028f3e964801fd9a16c78c", - "0x63df70a24370a408bffabbe1c7a4c9b9e40be1cb326ab10d63fe54bb9de50d34", - "0x37b5c558d31128595425ca68deddf5ae7539abc6da838837eb1e0457e092d9ea", - "0x41a9ce82ab27afbc84669368c2e75a15e6386b77034ec316795a896ef9de577d", - "0x08bc6cc18842df4130280823f7676f418f4797d3ddfc544e54267e6456cfac68", - "0xeabc09ffceeb35cc4ec18518d4920bea2f43bf746f23b5524fa405bd874e9d34", - "0x40336744dcfe6f312e17eea83f53538f9999864c41bec43576cfcbef68d12e7d", - "0x3e780dc9c8f2b708527f1eebca75d18507e00e226a00e1b1ddd0b715aa8dd561", - "0xfd6a3c50c4a4d6e1a6fe27fa96f6aa2654573cbb9b839ce8e09a75993e2bf8e5", - "0x166c03d381d6ab94666099024adc95de0ecc9818e5ceb49965767682ca0c73fe", - "0x9805810b802a51a3ae18ce44f6b2c68abfccef2119df2430e4693e291059e222", - "0x353ecd1a0922e819ffdcd634385ebbdb674d247c4fe75e2d5437b659c98424a4", - "0xe75fb8682b706ed6596699d6151db4dcb19f6e71a3b6e34aabc3508c919f5c17", - "0x6e9bab64b10a2341f49e81d862ef3322d3117842e3f1aabc8b774c68484a2a31", - "0x82b5e79ee8d72c3613458c975530bcbba359734a4e9f07015686dfc521230329", - "0x86d48d57ccbe1f1986a4043748b1a0d8d76fd56bc74e7c48c6fd742affa0ee11", - "0x46ee65b9c2fa3e69aa1cd6ba5aaafa7f7aef59224098b60e22994996c927c9c4", - "0xb6983761b177e21899799410dc018f1acd3d417fe35943fbe57207f9f799a100", - "0x594057a8386db6e159d43d136c464c5e3980eae75a73900f7a84ba94803fc6c4", - "0x53c78073c4a4c44d17db85be06f38ab47ecbb7f36ffa87b9db707fd2bc87f391", - "0x4a976673044732e3e8a0987fc8f3c36375e3c4fb3722fcde5259af492ec458c7", - "0x1e2fc8db341a4d9e123ae4ff4f4d8096d8afef47c5d2915c665922bd1de3b00c", - "0x565cd8eb410c6e0b4d67b54d37ff42f6189095965896b0f81566ca502bea34e3", - "0x32d030e4ff6b2f5a560cb7525b5e66ab1f34a1e06531f9b81c48b8a257bd5637", - "0x25a91d756023bb9ae538034bd39b6e698d05fb1393d1328c4fc7e5c14209cce1", - "0x8036f74c4cbaff3bd98820ddd84bc093c95e88d357b341154a3189715225d068", - "0x8bc6bc61f7a57a145b8d728f583e027c8630f0c07e003b189f390ffd11d6f150", - "0xfbeb53fa167d067c9b0a2c0710f7f5931484f7dd90b9456c52c578a15f402d9b", - "0x8d355b208a16b8aa3f7bc5d8864dc7d6a1c4917a97c523274b86e82998d60b63", - "0xc94e45da800d7b56456d55a9aa36ddf9df45e9cfeeacb1116b8c51a0cea34ebd", - "0x81761ec04a8d219aedb2f58aee529e876043b0a476e771957bc03fef9f0780de", - "0x29264094c720151f7448cae053a403aa86fc20649bcf383517e214d1677e893e", - "0x9ac97c7eef9b69dcd73ec7144a0cddfbf0973791beed405202fb4c2d932ec59e", - "0x89611f8e2f9e2e1629f83ec14aaec1656876718c05088e5087887c87b8414c39", - "0x67244fcdba97905472631378fa3a228b649880c2efdd57e5a6c95e9b70ad8456", - "0x0d554cfc4df02560c3e76159d1964c69c39f5df9489bba5516f28a32a4be202e", - "0xce9274a36a0f25a13edef679a5b286bf91a9dc5274354bb6f1ce0ac52557e650", - "0x6017e68689d9f6dca78f42b93a224b445c18b70288a6e4c0d6cc295627dbb1b9", - "0x76791c90f887355878d0a4d8c84ec3990a3159933ecc8d868d196b363153bd5f", - "0xacb6a6c9ec937b3d5cedba26ab6d581fc41cf9a58b0867232e2c8c73d9978cc3", - "0x89f17989ef556a0562c2aa5a2a1d71e5132b89d656bead1ef88ad31073b80cd1", - "0x06efcf8dbadaf28ee719a5b9c017a093fde84a7f4b9966fe3052c0b2fe410ea6", - "0xce16909616f1d97e5853818938b4798030259ddd41e3468f35b940ca901d6817", - "0xd3ff9e9ad14a605a94bdf05dd2639b6fbda28ccf7b2b228f064b0de52410df5b", - "0xb3e8ca9ee88d4c3ce347d82e8f22793ba22b7adc350fd694b1b00b0764c584f9", - "0xe690268a4ec089aced00f9654aa95acb7a8d7270d9428205b103c30a08d142eb", - "0xd685e1460799c51f14273361e31b9739e5212fa538fb8dfbb8e81e8b1d329bbe", - "0x664c293680fb7c5a89ff3c31e81ec8d0c30a6274ef44e4e76bdb9bba83f3c0b3", - "0x44027fd23526685d920d37b032f912159e308286eaac018244006690b4191d4e", - "0x7ea934c3d75a9ecb6a2055dcd5feaf2d4c851eaf360a648d5d87ef40fba2fbd0", - "0xfd97fc801315e5be630ccb3dc983c409a58fc1fc307adc1e4a48fc60c89ea40f", - "0x15aa0c3c732a2c6684d521729dfeb93f62e22e155d85d20e5488e2c86b043142", - "0xba235420ac54100da28cd6f30ff64b8594e73c42f45ca8494fb3d3c4d66651a9", - "0x9948e8489cd94bed4b8e90a8bd35e01ffe38e7c077f587c6c1949caa99cc98e0", - "0xcf66ccdfa85655d7d4c94cffd41f499afdfa2bbddcdaac547223e6ac4d1f9cf1", - "0x7e5382881f710530720b420a3f3ac08211565ecc8fead8ec649cea11f9385c3d", - "0x104576fbb1760c16ce85c3e5757832d53bda83d618500ef677a6a192ff14a5fb", - "0x9e4689bb1ee34635e1106e38ca41833d2dbc1cfacb7635ede5761048a8637c7c", - "0xc8c7f7ac271015da443320f4af650fc71ea0914f4c41252a5b7ec76f329d5268", - "0x46a93ae992001a54119c8d27788e3ef8927dee0a9949b22ece0196a90932c1da", - "0xa69467f9944f1a5e3a46718a99d3cb14930cab6d971baa37bb774cc757e55c2b", - "0x33f7272fdbfb91428a1344df5867300e256fc3cc2e439c777c3feae1cb27b781", - "0x0aaa367f4c7f399edc64ac1754f47aa5c28b0fa208238276de6bd9e424021ce3", - "0xf5f363c3bfa4a23bf221951f4b53a77b27613938babe40f0832d05fdfd252233", - "0xec315af99bdfdcb3cab1f1dcaa5b42ef53f4e3fcf4d921578892a5896fa20e9c", - "0xb580a8e51e875446d7096a20801dded1f7e5b5fac9f47e9361dfc9dd80214013", - "0xb877df38d8f4cebdfb89f26868bdb97ef945da187b44e1cbeafc1d4b7059d713", - "0x78613b9d2d6b639a54ecf1d50a56af80560b436fa632ae636cf354d4a6dd4af8", - "0x80a9d0a5e43558f1d24256baa6940c0074fa84d4b8e7e236054943f9ad5fbe2b", - "0x60f79f699ba1a740c9784f2a8f1b652d4e695ad2d230b110472b95914fd35c8d", - "0xae20de288eb7362a36a1ff236faaed6ddaacf58783d098118bc9fe66b8780651", - "0xcd08003531d6094cabdbe4d971a01b41552784c246bd2a2f749ee9947d1394d6", - "0x676720accf739c380f64748390c1acd2f88d454539866f7326a517c9b629b545", - "0x086b71ac681c0ea369c16b22ca49753b2083ec25b46ba659206433eb060d98c3", - "0x78910ab7d67e67da722ad53b669d8c3a312de3cf362c6254c09581088e920acb", - "0x5bc6e98a830c114cb432091679ac5b3efd25c362d6f99585ce3a027dff95e524", - "0x8d0daff5a97327b615d1535fea44fa33610fd645d93035e1e5e2bb49d4dcef24", - "0xbb46662b884bc6676d98ebf3f2a35ff9190339b72d68520fe40100b4eafaa2a2", - "0x9aa8faaf935c95a60ffae0487844860084a963792ae0bb90a831f825339810ac", - "0xfd77b5d6b6b87bfb0ddcad7b0ed3992e5fe897b16db06b118230b2d292e317e9", - "0xc465a3384c694bc50cbe97ce9f3bc364884651a97a491f7f64e65dc319d1c9f0", - "0xc4634431867d7a302be79e83fb50d01df7f3b950aeede21fcb59b883399b06e4", - "0xfd524c29525cb97a89026ff68048ca6e2a9f522791eadd74447a6c278151d7df", - "0xc7df516c295a58cf4cd5614eee3d2f773a412dcd4926eadad7e935ecae6d8907", - "0xfb915abde0108d6e84354e21a513fa564f5201277e060bb916a9153537fba1f7", - "0x1d3c6a780f1b259e096f4a141ab83cb6bd035407421e2468e743daec211e536f", - "0xb2f47534f060c70f61a7c16f920d0e11b957bb3ef912ed9292f35b8ceda2acea", - "0x03e0ebe6e9992f6921362d463b68f91518d91079c001c6bea7b3452879fdc29c", - "0xd9a7de173a1617ad813a554a56d7c7d2f010ac78d7782e524b35b5c676cb72dc", - "0x90d05d99167e53d34a02c5b66ed6920190370656905465f20efe56499aa0ba6b", - "0x17702606dc895aae35aef034fddf8f7235efcc66e5c9d252347063209c2177b0", - "0x3c416492193d81fc03b5c1964989a314e5ee6d689c638c996f6761b4d7acd6be", - "0x3c6c1162ea9b277f831989ea26e14bb23ce4d72bb9c865e354992559266ceb16", - "0x96de93f849613bb2ffc117bf111d4798b9252649f94f21187da324a3fe363833", - "0x91e50fc6e564cb9d6b7aab3a6e93f6b32944d5a781196a9a8b12ac7f6f527565", - "0xdbefa2bb2ee620d75295d0f3103e06b428f955dba1a792421e435051c46f7933", - "0x78f29df98ef7dce9fe7b4414da90fb4df5d99231ab0a3b7a3e70659986580fe4", - "0x56cf56899c2388d55eb1496ccbe62041d14cf655c9dbc53984d86c22ed281acd", - "0x099f52c675171088550a9e93e1ab17f003190fa3388d956724d422e5925c4813", - "0x9913e4ad8405b8a60fa512fb616c544c6cdc415cb1023aad0669d58cc3810161", - "0xbf5d51369b2510bb57f8fc8e9342890e8bb37049079dc79ab97afc0bcbf3cbf2", - "0x3a012d45d250c818b641fb18b71b622f5bdf0b7a541e0d8de54f61e516ee3ce7", - "0x0233833414d2cff3da0326f7baccf1bd522db5fee290ab4fc0a976934a20358e", - "0x38a0978c955f20cdc32e2013a5373efbfc50924e45e9c4c756291a903f4162b4", - "0x4107f33a14052662a0469ddd646ab6659006df131c4b0f6b0e6cfd331b46fea2", - "0x8074fb5054c755c912bc68b1dc22ae40ba13c06912c8af1c12652eb4d84c6503", - "0xf6d151b8f9c26c3a31366d967dd7338e80e8107b9b81da0a98faf16df9cbc91a", - "0xcebb0256d0a8a4b22d2341ec7c48292c3226caf4aeaa2003ee36dde25cff833b", - "0x5fa9ac499a2642b0cb7ca365062c02588f9c555bcdf584f533ee8e8544b9928d", - "0x800c7f04db30247318b8d4c11d575dca66bf615674fbeb9e8c20f387d907c8e2", - "0xb0a43de06c9d48afefd5411d759e3c6293cbea4a7c6d862b119182ea02af81b7", - "0xb6e7ca0075d28959cf87d716fea885e9e3a0062fc7da1b6e06089c808a632b8a", - "0x734c1b19f0b5972b5215f675cf60c68c12cf6d6bda7b5a95ee9a781482e68365", - "0x1995b08fffb20dedbef592ac23a81d87129ceb396e065265dd4a6cb876beaf09", - "0x051082047a6b579684b5444ce5b75bc630277ec06b0087779387b9d7fcd18fec", - "0x4aabfe145c368e6878e2ccbdfbecf2f1db5c9078650696bb3a584c14fe17177f", - "0x42811ab68b304ce30fe896c52b53d861abc3c8b5e4e740fa97b1695db9a6691f", - "0xd90cdb12ad64f86b2aa7afb781c00301f50206b05f1543b111c2b971ed209c94", - "0x385435507c2ef42b5f1760b97497e8a02a4b5ec4926c3cce8569fc0f4be59ce8", - "0x2d7a4908350c9cf022920cc51e0cad9c3c05d1d14a92d72310b52f984c857101", - "0xceea9c58106f4f806a256f64dc04e1c4b53e6cc5eb048f3df7a14f8de3506e96", - "0x7032f864eb3eae8d198c3f8edd9cc2dfe88b9971cd01b33318dcba004f9b044b", - "0x71bfeb4c183b20fba60e225524c809b0864fa14f5c0137accc36649ed0712e5c", - "0xef0ec5a2761c46827110c20e14fc4aecadc2407541ea046de09a58cda3b2e839", - "0x5e6debf328055c9413fc3eeca28583f917b361a5b5bda9af4306929931a4116a", - "0x1aab81df07eab969189333e5b2930fcc1b88a525ec5bc6af6626fdcb202b8f34", - "0xbdbf97e1558711d4872821b9400e03a811c61096bb838d3126b1c2154f8fb776", - "0x7d8aaee482933ffaa97777af3e4bf69ce7d99afb24e546d2e365d445d3d0190d", - "0x9da421621b14164582b2b877090c9a956f3a7c917031bf743a9ce457b6292369", - "0x050d717f0433a72b17a0e9a1340f26aed5bf17f90c08a5b73e675860ac9c24de", - "0x80551d3ff835aaf987b9ec056a73a3890985ef551431daa9d4aca10c81cac7fd", - "0x625a5b5aed2660d32d2fd8c4d1bfc248365a5cddaf9b5695e3f131629739ec60", - "0x7d86bc2dc5914d16b3d0d882a5db0230b4b688cbd8c81098d2efc5080e589646", - "0xfe42cd832cdffe56426031ba7d837c56d86be72b89ca9f5474bd08db80cfe903", - "0x0ca30e1fd3bf3e16a0e295ecbb442757248b2ad47baf88fc37d6c55901e709f6", - "0x2a83ed111b99844e17fb7aa69854525958255ffea04e0bfdc365264e72b349db", - "0x709779de19590b69864f5b9228b3a1c334724e20be006ef5ae38f8c05eb6f37e", - "0xf09c664d0e2e88ad5418d14481fefdc9e9c46158bc5439ffe0bf6d6d5ecb2eda", - "0xf350785dd3617ef73b0a5bf439ce5c49adca0c041b6b5047a664e5e33967ddf7", - "0x8fcf87571154dc4eb0a73c6ee31cc0db5f4e064cf23a255a408b2f2c7cc9c0e9", - "0x75801fc8867ce7c75b3148c6c022d7702143b93d93c1fc2349e3e969d0179cae", - "0xf14c18bf68ae881d3fb07f631340b00557a83860d0ba0efbfe55fe199176aff6", - "0xbe48c727fb6a32242229eaa09146c76522dcf6bed6d1c6fc1bebf86b5e4ccdb4", - "0x8487b971e383272df82cd812a0bf3a2026b85bc3897b4ce9ce48afa00849fe00", - "0x60d18b465172f59c0d71594b5273a90cb41db24a5d4c9fc37020f9d8c467a4a2", - "0xab4e36d9f17c748c87d89c23b667e3f4e3265e77b62dbd9c92659026f8a53d12", - "0x2c711e8eec1be3caef6e16a03dcca83dac3a565c93327c67f4e8ea9f2697d9e9", - "0x21d7a9a3f22a163767075aa693d82a962e4458b074bd8f3485c4ded1e47c1172", - "0x1509cac83867db4b888107974d5c8547dc4aa1db3b8e886291f0f9eb6bd7af58", - "0xa555eb6001982080479c9bdd3da9e8668bf90ca9538f16f27a45ae698ec85fb7", - "0x1d1f4019fa3ea7ec85ee0a411560738791f2d45fe5fe6242d07267183a852b96", - "0x2a8994caa5a27eb3081cc749cda5694da7ed3fbb8a1b4c67d7e92306cbd3c6ab", - "0x8389736ba114022ea97a6b3e755d75e74c3c370e9eb916c0f2d73a46a6f6c396", - "0x6a2e5d08ea64195a4153fc7bf26b7a99dcc9d31d8f58faa07510a1e87fb1ade4", - "0x78b66b38fd9b9cd3a5bc9c91c6f816153c2c28c1055f7ac9ad12ab61f9464850", - "0xb2f77834f7a88c4354763a28080d95be44dcb380d01f09292e679a6ed274b179", - "0x2070456b2bff0c30ae26b2435af82e153094aeea8102a75541e02a39e9ebe717", - "0x4e3bb2fbdc71602a62f0c423aa45398af09cf3ad24f0437027b4590e7056b882", - "0xe877208750e7569ce78215659ef78c1656e98b63ab6cc3e1381d7581afbea99f", - "0x8c9d8132d01b83cffd1a1fd9d19a3d2fb3a58a0a28602018db44f8b6dd5fe1aa", - "0xcece8a371b72873a660f4077f98b04d6a3cde1a150852db3a194a293e6a08b72", - "0xe72c8c7211acf2d67bf904cb3428c6fd69c8bd679d52deb3b2e749d5a3124b86", - "0x504f53693e747fbba7475dff1aad887ad0124d48cc7892ec488fda56e31e0de5", - "0xddb3ce7ac0c7e2d141df857e9e5c083d66f4a62ead742bf6631756a72fb643e3", - "0xdc1c6a45dd8308ea319671732de7578a65a025852a3cbe88aa9c5d770d662990", - "0xb6a9df772bdb5e7cdff569bb9d3078c081ed53e870f9171a5b0369d84fe6ce50", - "0x1b436a7d8c9af357c8175430e1d0d3057096c92bd8bd24fe285fa55673c68b72", - "0xa57ce7fed7521e26a908ead89253bc57939459b4c34fba583eececd0f9104e2a", - "0xb16c4f6bdce8de6657d049e2e41f91a1cef8623671eacb9ab02fff45cee7c0c3", - "0x8d23f3ea29767da41a2090cfceb56a65236a405031b69e614c78fb79c1847651", - "0x33149d4876fa24dea4e872ad1da120e01b14e8f9f8270611fced328a36df25ca", - "0x266c558486a85de2536e8849d49443e7d39797a6ed817ad7217633c28166bf06", - "0x2073a22a1f157025228f8fc82bdaff48d3cb1c9b004ac2cb867c2cbbe7cafd95", - "0xcf643d70f96101c99cedcc2d169b0196c564e7a8b235ae093ad25b1ba8981d01", - "0x1489101bebc1b60e4c0fa37a94bb946f1b51ba284c667e4b2f3270ef9d264d41", - "0xd2eceef739e2601390d872bdbb58f8d67864b000f7fbab07b0354c44279379e8", - "0xf67a02d7e7e6da127015e5137f90e30ab43c2e828e62c3f8fe68ad5a0a3011fb", - "0x01fe94220a07efc2bde2404c584f67e9b06e47eba05e50e71ad59710d9d6a9fd", - "0x509bc80d1a464116b4f234001c3f2d7aac7772cd6ec5fa6ef9606ab8ab273127", - "0xea497db1233691b3b86d8fc80ebffe28e6863f445a0b352a1286412a94ad2f6f", - "0x80074f0e2cb668b6a8e5b454db4ae5cf2482894f3ccb7648cfa26b3365a0a54b", - "0x56c8cd15e5e1a21c6f32f7211d18e1e56c89da688cf11b80c9e55718514eab24", - "0x6705989758f03a8c4ee93d44f53b4114a10337694197186b62ac2220188a6879", - "0x7581fbe2b0ae6e0a61d073fd1700c3111d2e3e8d9342d50800ba05d026c9edd6", - "0x254548091369ad8e0abbd2eb4e31e2c08c8e9dc0256fd0097e50e75831946924", - "0xac3119a5ba40f303a9a70ecdef9b6d4722c6adb6592a0cf52e5a312a1a0819c2", - "0xbdf30bc3cd852b882c5d410e6d4419e0f36ed17b761b58fe58ded980829d1cf8", - "0xebaeb5965563f6fa71006d8c2d285e093a167630c319cee2dfa961c4a583b60b", - "0x6cd6717885bd50263a97574e8a56a3ccbca88229bce595b38a454c1184ea94d5", - "0xc9bba3a4a72f0f08663e3af36e2bac2d4c8422b2e3c3bd29705e5b86e7c42a20", - "0xcc442230a4b6aed5a1eb2b8744a09aefe3cfb9e477816edfa829dfbd3f7c2bc7", - "0x4ee48471e3326144c7a48b15fa5f39691ad9f24b82430ca281eb961b18019e02", - "0x35016779dd877530f99b1d3372a0a77eff7ae831208d2bdfcd0979b838190acd", - "0xe3e9b2a4adc4b4e167376b33b8bf2a00bd64d52f66f4e7b291ade123e8c04402", - "0x5a7d1466e2538b62ceada9577079248788e912e23c4cbc52d7b82a1afbf28ec7", - "0xb8529c5a2b2dbfb72e70165b9c9291e7c02b43f157092a9b59f3b4cad85fb587", - "0x55e90fb666a950f38ae41732269cb69afca8643b75a99bce508a16e06685fc03", - "0x651f45996ed080d8a8dcb78550089331ad67c2df33330d1871dff956463aed3e", - "0x9c6b4a961663c59dde3a4f0fdf7b68b0b5f049719ba0d10d841855cffc7ee166", - "0x15c4d98e0ee4fa1535f83625a20bf1a491852884f8fe608eae6b9bde45986779", - "0xc7891cf34fcc61935a43f37bd7f23b674c785ef3b2718358fb627364f3d8b09b", - "0x8105fb76c9e1281f0f0d7c520dc6cd1d546d1b4b29cfa398eecd7965af57f408", - "0x2a141f1c4e1f1e7be5d10c444dde3d1b5fe1a69f23506d5ed1842957375a1208", - "0x9d2313d34a5a6873f2ae1e2684db00e3b693ba962796fe7e78d26a2c49104471", - "0x84d0245b1537ec1fae89fd39741d3b6427ceda3933f750befe4e2d8ec022fc1b", - "0x93d281ff6bfefc7f94058a0d87cb826b97728c9593ef4876b88c35d26b2163bf", - "0x9018a352b09cb36311d0b54bd83a33dcd5dca5ae7032f1d399fec3a0e5a9cb7a", - "0xf01486ea17dca0bb45c245c9ba76d20d1a2f4eb718b7d07fb5183736e5cd08c5", - "0xf797fec0a8cddb31ace66223e1355211e41211c4bfd33a416c8a1a86e497f630", - "0xf24aef69daf4e2b90b4f3bdedddbabbae86a7fd1182947da7306c8145f82cc88", - "0xdd14e34cd000ddb6ae6426dcd78cabbf6bfbe5b3ecd7553c4989b3891e506257", - "0xc01ece645c7430801ee26b20ad215e221f7de0e060fe004b450b372a6c4438a9", - "0x64c836653383bcb165207b80ee8f9377ad25ef1bcd6cf7ba166cca78419898ed", - "0x6b1cdfa195df272d7e35ccd843191d5725919c0d8b71f1abf4b950a954770503", - "0xebe51f94a9f445d83180c4f075d944fa2f05b5b784b7e3cb4bc1544020bd35cf", - "0x7007f6b2c04420d390fbdb6a9fc21edd3249c1a098f8a9383131b8be50c6f975", - "0x6b7e93d96f74fc2b068104a017fa5fa74836e8be5599865309361ad9305d9bb9", - "0xcccf2dc238c68464f3b0446e06fc48fedf202e366ace5734cdac5a7fe7c43342", - "0xfec77750c277cd6bb0937d25d7f598d07cbffb1117b6232e932a296f32b45ce5", - "0xb04e6883c11ba3f2b7f0301936c3dcb622f6f78b3d3d57e48c6dcba063038d6e", - "0x23fe83ea2f197cb97a3ce5f2afd75652cae993f30bc627e8b9572a0069ae088b", - "0x44cc6bf2cee513c826ecc0c130a32b61b0153129721ad2a70d4503b71c128247", - "0xb1a11be5f9b37faf1901b1405494af32084641dc02685ec33be7f6e82e360a42", - "0x284bdf9a6aa0ac964b0f5e72d0d47c713c919d72fa9e24f42b65d749efb6e2c3", - "0x96a0a0e92ed87946a322c9bca6c0ebf70e51e0e825e2ede85b975349f9bb2caa", - "0xd73becb6a3d9a155d46a96d17412cf015724a79b166d2961d24125d92e355947", - "0xd87f142746611ce081945999f42b8da49cbda03a10bf953ba043417861e27c77", - "0x4af010485b5385579a534693bd21ef3768c8920c5b5dc6f9ddf722cc68fd6550", - "0x65a2f4ec5cf3b37530fe0672418214618393db47ad1185f285b445cf5f53cf26", - "0x1d208df2a2785599565a40d934eb2c0cc1673c1dd43d11685d698122ecf24d6f", - "0x046b7211427f0027ed4b69b06cb43986d3cd53d1579a2e078f6904a06ee6587d", - "0x053fb3ccc35edc1a1623f8652dd8c239045b02b58ffe7d51337950ae43365990", - "0x0721f82b52ff87272e1b0af5f4dc16b90dfaaaf3ba56b91bef555d283c98a8ae", - "0x26e93e4e2d0df49a857bfcede7e6ac234d75b71617b561ce39c3db130449e4fb", - "0x5ed6d53c35a0aa52d9dd0a244f31be00426292c11676737c7283f567ba485dbc", - "0x047add17bd1601a06a32b721165ecb2afb55290e025a828696f234b95c52eae3", - "0x6f9e6884745cad7091646f7767a6b17ebffb6482ee4726f5c1f3b9e02d26b77f", - "0xab29ed5be2938fb19614da621ea9828eb338514309b3d56efc6f19b57b8f4f6a", - "0xd5f14043479e8e37c6545527b2e93a76763a654661af9a25adae2b37dac40672", - "0xc43635c1489c3cf3aa231419bfcf7bcb2455a812e4781e5947bb76cf0219d1e4", - "0x72117c92f8bab83ccc7fbe5fc6cd931c765238ebd67ad8c4fcf1353eb78c8df2", - "0x5deed7df3559ed75d7c2388a6e583067222684741143350f85d236bc5fb4075f", - "0x655bbc0590587c030902e32d88cc9113fcbdd5c3371820868768abaeacecb79c", - "0x1641c875e8e44b1fa71badcbb4f724a71e2f916d9cd212f09e9039ef41b1242f", - "0x40bacdc3f0b53522cdf2aefafa2bbd9c8e9f8fd25b4b33bc19a87d72a5de293d", - "0xc35c6cffaf93170662a6f3d4a0152c988b0f4916a33d037801f6f589a6140d08", - "0xd4e37125c0ca7844e048bac4e4c6069ec24b0493e4547f53679fc8df2a1e0d66", - "0x34c6bcf0e01dd55a1d3a82df0a2edcb2caccbc4be93fdfde32c7718276e59bbd", - "0x78e50d394d9d42ca8aae3f4dfccfb32fc3923073a6643c010fd49ec3897c4fe5", - "0xeba75c237fb213e893083c5ed0e28dde3ec1f5f1b60edfdddc17a54de9cdfaf3", - "0x4f35b9a67fc66492fea331378c479eba921fe0a6f0589b5ac07a44b1ea9b4995", - "0xbb4d09d98b27d672259b608f5075575cca49f87cce0519813c1ba4a614d369ee", - "0x805550ff80be2d3a543d5076961442f70dcd86e82762149c125d2ce371a32f69", - "0x7d81d766cc2d6c66c7bf07be0a416f2a4c0dd2bd94026270a410ea6a051dd4aa", - "0x30edcef101041c0e0acecb8d6c15a28c70b8894e56196cddefb5fb6b39658ceb", - "0xe5e8d21a00ccabb5cb50b4d04ee1dcc217fb9908e72bf0efab69d4ce7a0b7eab", - "0x3793f78e2e582b56fb3d24e3bd4aa69db4741e768795f9681285b0fd34ebd602", - "0x4a9378b4ad76df084739b2a63459ac67abf8eff7499210936fb9e6644265054a", - "0x2e47b62375a267e104ad2f8bfaf5c985fa7c6f4c438739810517e41141a825bd", - "0x73dd638affe08c104b37d53e6cb7884b8a9b4cd4afa4bbec6ef608bab4559dd9", - "0xc566dce73da1cc0d069a032045c44ac4ac86b145efd2cb1c363a2d403fd8d7cd", - "0xa1a04d193c5408d0edf85e771c6976c5dc8de08c87d906b6c9de1efa4b4fcbca", - "0x3245d987f205b01c54448d9a9d76bc7e4174c1021726a68f5feb6748ac373f8d", - "0x1f963274b936dde92281f2acd47d3685261b03845efc7d10ab8b02500c239af0", - "0xa1e6d69b28aea5d24c3dc301dfb0d6df8ee8fe693d1d0f419cde3b4d20d22a89", - "0x31b0711795c77cae9e1b62b87244a5eafa4b1764aa1620d53be7e779db060984", - "0xea141234dd00c54ec7912c80baca591b53a058b81fed1673317fa4ec37c2c715", - "0xc5902f3941d647da304e94062951b09f4d6da5bcff71517c7a35e8b49c6ac569", - "0x54c5677af7e31b84010f8b2941ffed5080e9b4d18b608fcbd230f163a5e04ba5", - "0x1a12c56542a01bc58288a58e8e526f2b2c81a5238c83bbfe4808d206b3b9d0e4", - "0xa398984bab81b7640674893496b2346eaa8257aad4cc8bb52474f7162fb6fa2d", - "0xf454a592314f1b7459d21eeb6ffe54c96ae2e25a7051dab1f8129518d3788cd2", - "0x12964f85bcc410fb40e89f518d749c7dc2be7546a960849dcf560eea2ec3d333", - "0xb176775c2ff94aedef2c099b936468986874d17eb563086215525acbee2fdbd1", - "0x250de6e94d60125bb680e862fcb70823d06e4f27308ea1ecea8a465d5febc860", - "0x731cc6817fec665290d7637c67fdbc72bbebae70a13f9346f47f3b368eb1e4a5", - "0x489e955cc77f16d8aa16bada320127380315eac978f0fd1033baa04911123332", - "0xa88623d9f89221dce46b55ca7248581b4e3ace94a7cccc9fd44a3b03412fa729", - "0x4a65c1808d79577b36dfb5fa74d0deb96e90d0105ee373d552685cc4f73d35d8", - "0x7aa8228e6f8fb98a23e1599e12ecd84c879475a23f10660e763e338a347c9002", - "0xa825d02023ab76478b83a2a61dcc5cf6c05ca741b960043adba3f13d1c99612a", - "0xd3c90e414048510d9594ae7a593e25641b6baf93f9625cc4a3caade094f02e07", - "0x4d631d9024a4e75111189835b4ec0007a6951d710512dd7b91a8d56da95e57b2", - "0x0158c7f49affa675f04aa4ebdf11e88bab8c6dc0abfecc0100d32489b0d59f1a", - "0x4ec96496694ef53e17b11b3122cc45cce3a4fe1a252fe9c0d379b302db1318ac", - "0xeec44b94d9f6c7359047d257ffd5f1f5cee87b3ebd6845dc1fe48be686a9ba69", - "0xe24c7b667382186196e5da605ce75a5cd9c7e4803fb2e268b4de5848737db026", - "0x14a551850f945f02fa2ab84c6ffe3d17930c81f5b15e94ce92342c3646b8cd9a", - "0x7e9a72469a52662bbcacd449dc7df8fa75e5cd1480dac3b635148a34e0f9e375", - "0x2dd4fd0394574c5d8c9272c42175e3a88d8501753bb25a77fa937123d0c2538d", - "0x6f044eb54fd2b8e51d89f6db2ee6e654b144d9e69cddf79b7899e06af5bf39f5", - "0x091d894513fca5d2239f6b5ce73737aa2657c90c2af196b2b893ba0b0205859c", - "0x78b9ca580e3eca0808e60420ead000365eeafa60c6394e055a653a7f536c8b6d", - "0x595cfe325aa600ef0d7de6b2eb717b33c92dfbb1e3ecb9487fe332c878e9f121", - "0xe1dcc22aa44a0243f67dcb0aef7e0eb1ceee269b0faa67633698f8ee29155115", - "0xddd3354d4167161c6b18173ae24fffac2cff12a8bcb3ddf1d964907716685cb3", - "0x55c02c02eb758f8c9aab60a2432d29e73b567e3e3d0148611ce4569fa074c5d9", - "0x5d07d5a7d45fe16a0521c55b3dd898b922c619e5b938535e2f974f11b4edfdc7", - "0xf75100a1a2f8d6daf0dc36569cbf579ed6e52838b163fe50b5deaad8fe7bd07d", - "0xb6391d028fbc88825eabf1dc4566e58112e6d3b7cfe6d387d0fa58df387df78f", - "0x8a58fab34ada4d30eecbad64a001015c91e446cf14e95c9d7a3d894530787b03", - "0xac13b36d0eb0483ab8cf21f49c78f9e32092c74c878ff520ed3a3c0080fdf5fd", - "0x358c1021fbdf028ec82b811cdeb504adc2611a1ab477e8a191f780592d598361", - "0x6a7af25eb6d089ad63712187d1414e8bd04fb6bfbac26e6086b1a3e2d66f6f7e", - "0x6bebf617fe66129dc8c9dadef1a74df05567ed2fc89f4e5c4dd36327d6b0a5e5", - "0xc658d76eb9f3fb91327c64668b08d3e9bfbbb2099bf5d9aeb6a61b8e4f893c39", - "0xfe68ecc66eaa625842068f8b5ad4bdf5cbce0c82ecfafa4bf48b08de49c58595", - "0x26eba0a168f2e5f3ffcb37955839d37432b39f2f447497854d42d802826fb1ee", - "0x8b4f8964062d0f00e40a41d21852a2e22abba1f4cf75f594797e368e4df21f7d", - "0x916993123d91b181d145e2668efed6eae3845fd76d4765df3a04d8adde8c7142", - "0x21b91051b5c5fbd22164a655de8485cfc2a9eff58ed09d6fbbb454560898daed", - "0xb52ca76065bcf43f06335977ab87d6c809dcf4e6cdfc452ac2018b77c64089a5", - "0x9437d47e7f7fb4c95aacd5e1322a9c7b457888dbfb1e485142cb16ba805b5ded", - "0xb7cb3f7394fef7de5884e165c8441d441c98c1080865b604dd21766759f7fffa", - "0xfaff33c1aae8882f3a9d84678b55b8945b037b1f05785f2874079da71caf4aa5", - "0xe032d77db9e882bfb3d5adc89d9a9812fb9775f98c03765ffdf0c40d0dbf11f8", - "0xc9c4ded5821040df911b23d92d8270fc83164531c9d631c4d8e228a71e189ba1", - "0xa27f4dd47059fdd4afe78ce8c9029c9a7c0916d10cc7dba1ce011c886d2275bb", - "0x6dd0d3b0e07535d8350cb888c75ca355c4abb07bfc6ceba3eae02095324679a0", - "0xee4a3c6125a5e69848457d35f9614705b651c68857b03968bc5420a809d1d9b8", - "0xc14947239d0a7061d796313aca233659059b13740e63f967f8bd4806feb895ff", - "0x36d9ad9d6ad2e1a1aca489524303aaa8534b137c5e9ef708d589b7a75cbf6500", - "0x497c4cf7509b12ebd34d5c0520a24ae1b6e1c5c050bb3412d7d1a702c48d07d3", - "0xac81f9bcce95283b7f188f16eb68d22adb22dc1cff0853739c46f27523a653b7", - "0x2f0818ee594d2d1fbfe9a6a03cf4ae08dee69fbb9c289c2789d792f14a3e4e7d", - "0x9beb888d86489512a9d1d8d6461490e23599c1595aa5b4d4b113d18c0eb99697", - "0x7708aa2a88f9b41cde9f338da6d2f9dde2b57f1538f7aeefb66a0e9dce488ff3", - "0x548a59ae0782fc5202431a472a8dc5e21ac83b68dc88afb2b0afd56cd3e880dc", - "0x271397f861034f73fe228e3921d835a313041c260a6c2ca3d0c28d407d17ba89", - "0x732b95d3ebdf035182863a540bc002cef70f98b91f90ee8dcef2285a970ade6b", - "0x605d419ecbcdaa05d6f09c9734469847f52164df26417d7807f959986b843869", - "0xdc56e2800a637475662632ac37e9eec90d9f3962a454d6f32ee7f56426ab9f42", - "0xdcd35988aa6982f14b3a2834f841c755ad42dcc61eb0dc6122f2aa9db65fcf92", - "0x659b06e2aa0359e3743f59d2b128cf85bfabc20ac9d8c42a89d9cdda2bef7697", - "0x45377222c3910f95b3f5d0adef823dc4184189cab9eed54b9997d2b30fdbae43", - "0x15d66d0b9347f12bf9c408910edf41623f460244f309076d55cf969dc158b36e", - "0xe5de2158113351c0ea314eb12b28f9502c307decf883ed480c53c1310c9f7c11", - "0xc7342c08dd73fbe5801cc6c8764c53f924d6a77cd5a5b8bdbb22d2b6d3e0336e", - "0xf10486dc44a10f7eec6739dd56e0f7519507777e78e3974d974ee0bd931f03d0", - "0x5985752f0b3849e9cc6a5d38b65617be10b52b8fd0c2642c328b864d59a23f9f", - "0xce899213bc8a178cbf2a8eb86f045f59895530b0af5e209b60553869000070f4", - "0x724dd7b5e5d0e93017a62faffd534e423610c494ef0b5689304bc80a68df0e46", - "0x318073daf925850c412d6a1f2db2d2093268896a88c49e822ccae4070b406408", - "0x74fd03921ea801d4618fa7c2375c4369a15c7774564dfb0373b5913bdc9a6df8", - "0xb10896436461c2660cfe36a60c433b32ef8a1e772f3f9c16ae243840a1aa3aa8", - "0xecfc10478a368b186e4299447ec9d3ce27ca8386274c545f3edac3608ad6cd0d", - "0x288c697b29a0d2c5d45b9507aaf62bc4bfecca1b34e1a5ce13a17711af0df3cd", - "0x429fc79b89ad00887096417282a571de77fe73dbfd1564c13bec5830b38890cd", - "0x4d859982815d597e31d0e5374d7077b59a4b9beec01040608bad05c6a9d0be2a", - "0x1addc6e300b6120cd196bcb7340ca163879ac55f7c9069be77947aa01e778cf9", - "0x2e648a4eefda9d35e26b148028a0b336ef7d75809454e36795edb9d3fdeff550", - "0x814e65df8c720e8c9c7d64c76b6b9554328d6c780b5f3dff96aa3e29506e7e49", - "0x4841c38f2a920bb1a072b9a7853dd7d2e44dcbc35e2737aa2f3cf6652dabfdd2", - "0xdc63afe7974211db82b2602c26d6ace8d93f34736c0fa68eac3bd5d2c1af7484", - "0x2052d12d3534c5d7693d420c8e080bcee99ce10ccebc7451272b7ef08f8a3dc2", - "0x4985769df508ccc2add583d187095a8af4ca73a5be2506a506146e23dbc67d55", - "0x4a6744d48fc2d85cc99e419483ec1111ccb6fc7ab13e4eba28a29269acb30952", - "0x527b0514dd83336c0524add1f01799512517378b2045c4ed43ccc0e977553bac", - "0xfc33e6a20033fff41a9b885dc5bbaa848a0f244fe89b4a1af261d382c544fbaa", - "0xadce691a1b4224bd56682784ec106dc93af89185721db8b427eab6b0ff22776c", - "0x0fdef2a9525541c1e96172c8a33ccc08ed759dc024d437b82126ff03b65e1684", - "0x7aa9e8c1e9da3c68080f099281b367de26838ec7bcd474590ae101fcd68a7116", - "0x7eb70f0a4c42726f5b3a67ab12bdf5b4e6bf5e4c347b6c32f6fd3a04c4a003e5", - "0x546f5f3c2e44b7a61d6d0dafd802fcc114db7acb7f887f0dd0b1878979fd3eac", - "0x5c5294fd77081b1a23037c34170b568358011be2fdc0e3ffa2230b1a017ec5b9", - "0x6c854d3de1f2a28dd8f6320a534b915b032078377e3b880eaa8e9a3775768e2c", - "0xc2be1a4c7a5351063084c5907f19e63f25e048f3e27648a6d9056d3d4b635c19", - "0x5d0673ecaecd00cc8847827bbda1dd7bb21f537e5e10f10d8b5944496b55e9e6", - "0x8a1bfbf9dd51b727c17e8920019caae599f53d37563935c584c84cbdebf942e2", - "0x75649056bcd2a520811d8f9d5c0c629f492e93fcdcd298c0657a8c857fdf2cc6", - "0x71421a3eb42eeba485fb90918511b0a430311856c27a968e52096c6cdaf0cce1", - "0xdf19c2d595ec81bacaabd39217e100e6731f8bd7c3d6c5bfd987b27f89be146d", - "0x573839677ae138670609c499107217fcae5de5fa9905c78a21b07f7a906a0a53", - "0x1e8db73865049c1cde4004c2a60945edd9ce9847c360a2feb36205e1f1cbd5da", - "0x52a602e7c2f462a39288465c733d2133b7f77a7a77d7e60e214d4d4eff917258", - "0xdc30b1767c78f2ac953c5046e6440b7de488933cdece18fa3566f00d8a96c92f", - "0xfc0baf76004e7d87b36ea52de7d886c9b3be44bb8063549bba31b63b87ac3f92", - "0x3426c56db720ccd184f2e49385e96e5a37fd378cd486de8fadcc7d5e727aebb8", - "0x39fc1cbf20cab093c75b42931fc6371e9851cc4357badb6961359e07b9d97fca", - "0x6b3725ada81d881bbe245d4b55c7be12926b42d0e58dfc8fa38d54f68ff79ee4", - "0x69bbab0d123bbf03499984698c162f9dfb81375f6bf9f2e643badcc8e0281ef8", - "0x101cf365b31d4b37910433ffa265e1a978d4f80c478936809e1bcca7baff59b1", - "0x65d26a27a34ca4ca98c2b5f609e4596344514698f2137547e815dfcf91f5bb36", - "0x3b8598589a6ef43efe0b7a64832360ab02e150c4b4ec02f2a028d2522f4c0ba7", - "0xd8776563bb522b42a25cb2714f9ea294fffa4c4fb5ad040a9458e10637861f34", - "0xb1b85b8c9bea99a2bde16ab99b2d7e42571ba15dfeaf28a2897322bb444171b1", - "0x803cc4e5c23bd3842736b36a425364416dc69a3efb95f3c7fdbf7782d6de7edc", - "0xf5803ed2a130a19600ca887ad06813482b678ac0eee049cbb2e56e39a90d9867", - "0xd3f6125b061023531cbd3d625c9382631e2fecc75945dd6f78f883353ec98962", - "0x7b1d59f8c9869a9c73a09385c82762b86fcc995e75db00bda388e1423be19df4", - "0x2b7a8289bf9f93c589866af1a224c34943433b6a5a571df7dc4524bcf2adde42", - "0x9199d73dd306fc9038b36212c3ed7706d8b0f30cfcf3359408a8e6fd8ebab0a7", - "0x0cc8446d21ccc31bee04addd48b50f394390ef3340745555f9d7ccc3c13eefbe", - "0x80052b2097d7f836090ba9f94ad7c33066453d8ee62a2e215a82003ed92568f1", - "0x231c2d4e6a6039342ac03f766fac9f0a587ef6828d071e63a1e3f660fff13263", - "0xcfa0cae426e4b6b9422d72a687d50139654fc3351993b5d38ea4fc6f8944e662", - "0x9dc837a60a2c18493fd3b40083996f18a44f37a7a762ca649bc5d8c8b272aaca", - "0x30b4651c3496efed5997116b7a12f9cdc24040a4e110478f1a2330fbba48fbec", - "0x99567d98d73fe92c81c69aa465bd62b02492839519f0380686349da64caaf758", - "0x9618fd333f89357a22bb3101cc386003c2745f8a24b5affd2be9cc3c26a93e34", - "0xe539d1a4de2a57dd65cea42302fac83aed570f2fd7a318c6d226dea58d5f94c1", - "0xe69e3ef5d9d8cf08d3a354da7179d5bab9c68b4b6ea6a7e5a58cae9d901b5f35", - "0x97cd995441161fe4f50a339c6323020db6f56b9221b549194a93b9895a043e59", - "0x803e04ee8a22299e779491a6749b7d57973a59fe714d080f03749bccde30d5c6", - "0xace95a4dc00b3fef757aa76445b1edc582246eeebb7c2bdc71fa648e06428485", - "0x1c8bd27b857dd8dd5a671fb4aa6cec3c41ca1c747c9f86edca8f389ac637e09f", - "0x554b4d1bbe92718dd1aba2a9d10f48f803287d2c26108bf3cab2574a91375511", - "0xd5856bc0794ddc23049639fc438c360d66e4b3eb1f96516ba0c02c46cda8fb49", - "0x25a4c78e490c1d5fc6c1252b2ba13ca9ad5113a5c64e02220969146c5bbe9730", - "0xa8dd024efc7f03b61ff9926421107b54c42f5f9c936d956e9b6c6eb36f9b242b", - "0x26d488bff06eff3fe1912ce985ced65325e09e1c01a95bc16d0df22481690640", - "0x01b89e65f1a82ea7e456e96e2ddf29be42dced7c7ea9b12e841bd973506dcc25", - "0xf0f5d3392e3fb73697e44755d38c84bd99394ec2ef9dec841049baf8166e6d55", - "0x91c4f65d698130b132d0a33e44c27ea55f477cfb134224139ba0264b5737ed42", - "0x1d2295b21e1bb810d35471fe17adc80e59c6c57b5037de90c88e99021ac78b24", - "0x667cc89337d382967727f0740819a2f6298dd5f2b7b5e82dc45e3f1c15c5e998", - "0x908ac480019af2d3c3017c413077a73905e27ec01721aa499c24fa7e13bf8ad9", - "0xbeb7ebf8ffae71221e5ff149e3333fdefe6b11780d439b45a874129b2c25d71d", - "0x235c2ed0e3fd286df5cabca5f0f61bfe356ad0d7c8bb9c642814d01f2fd26699", - "0x22fc5189fb1945ae98d89e50b258514baaf525e8137e9581c99339e1097e33c1", - "0x148256253b74711fc61f8af7d4efcf8694752426715a0a4c788556feb68c1a2d", - "0x26ad59543cfd91bbe37cd8fd1995b81d0f095ac4e02cda0b4f5f40c9db6d320f", - "0xee340b0f25450c23a5c9b16cd5aa59657a9992c1c341172bcc8c9038eb6789fe", - "0x5da22a0b434f041d76be1d53ef63ae24031861dce1ff4baa3511d67664060bbd", - "0x6009815cd4da0162884d0be4cfe6936f1b251f50e9c89d9fdc2f0af430012e11", - "0x9342474f10ce871dfeb70fde89b181075b18e973d4806364d52f83f6be4d69f1", - "0x3c4c598faaf3c9fa8b9c1bf856872e65e3d53435177992b29a7674198e7df000", - "0xdf0d952cca28797dbb503cb8c7192e811a7dfc0797379391f839341e210078ee", - "0xdd48052c8e9a9ec62a58a580abe1c420b89393bfffe53fbe6b7f9079b5ec4d3c", - "0x028846c41592546d1d11375d00c1d10a18c06ee5f968b2ce8e8c42bee7aa263d", - "0x4aa08dc77484d15f8423a1fb2df0fb0c67729de1d48e61831884e49d7697674d", - "0x084c72f0f0fb1cdd4ff80ebc9379c9d29c8d1e35cc45901a67b231ac201ff9b4", - "0xe904eec627d475fcb3e61b2db0366a24ebcc286ccda2b1614049fa17ae9a9d85", - "0xc3fb5ed46f30f566b1d5547d5e00c4c999960dcbd1b60f0b337bff8da30c054d", - "0x1503b399ce9dd9f1cd8005036006e4bae2b3f05fbb1393b8f5d868332605c98b", - "0x70de442d35565513b92d8cdb95c6537f72d7e099e217af7c260fdf92499ecfae", - "0xc6b86174c627fdb002d187feada8c72b9bc6b1fa5d11785988c72b06480ef1c8", - "0x06212692407b9b701ed1b115a8ae1cf07668cd7498cbd7c5c58e9b52a0a0093e", - "0xfdc722f761f07d5c52d36c147ab8e80a666af5aa77fdefa37e86c7b2518aca12", - "0x7396bd40c5677c5f4388d956ec437071cd4352cac44b7b97eecebb6c5c99b507", - "0xf634b80145415b2086d4a20746bef5c7d34034ac6601487792889be39bac54c8", - "0xfb8cbee41b441d5424cbd12b064b04f5618f0b360b1c2ae5ffb90a0194e61106", - "0xf77c56810755fe69822c1250295092fb8e7c88d789706d6769d0cbdeb386137b", - "0x9e0f084e1184804e850784a4e376b8acbf58f4235a3829d49217c888e4e5d535", - "0x6b39d6de64090febb49dc6f6a31eb606d8e278b7ff4fa9e1a9774d3d9dc71f81", - "0xb5d9e67fd6cdd93c74536e5a74dac8eb8ea6914c2315c22e079d61eaecb18c29", - "0xac3dbb4fa1da752bff5884154e02ab975e993201e69ef9ca532c8b1e00b1628b", - "0x747b42a7005c41ae222f8c2ecd4bf7000c274366237e68b2e95a64cef3799ef2", - "0x8f06b121d921274a0d8da269d19ffd6a417cec988f0018647966960ac822fd60", - "0x13451d3ecba978d3c0d88c2dd4068cf060e949889ea514306c23a7a1ec574ca2", - "0x737f8bd85cce3a392da15c8e68c3ea9748a6523ab92dba8d1c6c8081311c3ef7", - "0x83cca9d97f8c4b2776b96d887c5ab1e8e6172970d6d237da98dd5c6ce07db7f3", - "0xb5bb3dd88ecfe2e4ac4e4be2b605cc7c5e79024782628a95df33c4967dc8251a", - "0x640c6050e63c965742cdfc6d3217eca459a24b3acf3a5ec64eed9bd7bbcefaad", - "0xe74478890f186d41b5157dbcef1f2754a35a5af332095dd25d34caf01580062c", - "0xfaabbc9703e049e49d1d22da051cfe6cae0697e7e728e954bd5abc40d0e2014c", - "0x8aa4a19c4ec50a68a6541ecc11d4473cf02773a0ba7bb4012ccd76ae11ce8bf9", - "0x01abdedb1886ec8220a4f6ce6a43863ab77215f03e8116b03f3efe44bee658b7", - "0x18e44060426a05d3d9500b7d6ae6d99133109bac39942ab825ae81c551c0ef39", - "0x19a60001bc92289e73d3a8320f7601eae1bcf70f65c3a43ff6af1b2c2c17355f", - "0x2dbc82c8ba30fe69aa00c7abf129cd1a65e8fb9398b2ebca0843e526e001ce1b", - "0xec773bb4cf7d35feb70ea19cb53cd64af2cd34c1e4f1e282bd3cd0b39720bd2e", - "0xc966e10e5568661e0930bbff1561e2de413f9f89d984b46224ced75d57213401", - "0x29658e4a7e4dec3e9a449902af34ab93fe760c6a1695c1a97e0a093e3d187782", - "0x98b0b147d3f6a8a21dd9e3fe01082dc9031c193dec4def76e53ad1c13269c3d7", - "0x288b646ad44d5f4ea299917a9b69c9c07b5ddc50e93d03fc1c1ed653599d7a7d", - "0x87c26362fb801ef77354375eadedc1489a4fc39401521cb06b604fd9288e4d82", - "0xa5cf4098a62d2dcc87e589c8269dc712e2ac2be5adf07ca33c520556d4da0cc1", - "0x4f253c49f87e135e4a0941409fe70ec6b29f6b0d9aed3f654f5eee7f4eb0a486", - "0x5370ae8dfa2a982dab86dfb45950a50ffd29039781b2b065ef5057f7b43b84d2", - "0x044f950f82d97f0fa164ec4174c238203d15f4cf32dd739931c3e291e0902ed4", - "0x792c3af8c8808b95f38d6e21979450e3ebeae129f0a9a9d0cf2951252801dd7d", - "0x141e09e2ca0a96d50e7c12aae794ed0f22c0441fcc51d1c4e179f891cb06ee1e", - "0xc475b7c5293efed9c9f0a5e1d8800e4dd10810bc7dd33c406da131b15524ee48", - "0x0018d2c2e814bff6fa8f5e162de402db71dd9eea45d320f60e280a00aadafc2a", - "0xc68336fc8904777bf8ec4d5a61f79f2e847c028889bce39ae0f307d11efad818", - "0xd6439bee30ae288496a022e04f5c21b9b047edbb370ea3e33ed236a217c6ca0c", - "0x03e096d6ce43823e4543ddbfd8f55528d49c38b5c701c520e95a51547b5b193b", - "0xfb80f18124198c12b6359ea7805f110f9f25a6686e7a917c110ad511554e634b", - "0xcf9a0aa896f5c54982a827e07314a81b58beb3de97fdf112ee1539ee47158f59", - "0x948cb5dcc88a5502d82a292e7337d5d010055ae4964c09b2c6d55b0401e1781b", - "0xb91614b49ef967aef3b113983cea703a60097e0cd4c0d9cf1ad6f36d594750a9", - "0xe29abd32597fbfcffb8d185931986a8519fcabca73abfc5be6e42bc8b6439374", - "0x9ebbe1b1037327c4f2f3c9b6191b6f28aaf9b04dc58f3314ec2c16ac1eaba9b7", - "0x098529aee4331ef9ee00ee624912ed1a7cd8d63ebf27a96059f56e60ab9a95b2", - "0xcab9578772277f3e1f7a6920b96df6ce3e6d7f60c42925b7bb1ac1d71d733718", - "0x43cb7ebd27e7207228ecee10cfb11aefe077bf03053877b53c42a41e4f39f607", - "0x12ef0a09e0f5dc9d89b01cfd66b34182e80821f0f9d86c80327086a9960ab9f8", - "0x30bafa474c54d2912897a13911cd1df20988be102333bcb9fc54905789f87718", - "0x383205a3e0b07e359127b28c3ad1b451564091893edc87d3d92e081111dd20e7", - "0x74382d6b160ac8b1e7b86abf22cb943b43afc4480be4b09c87c8b796f22eafe9", - "0xe84cbe2ed5a30d7b25ec540b1934577387626fb894e4248c719d417ff1b0f171", - "0x068dd7e31af946d3427dd6822c22577886c32a7f1e3a3bc61ee061be7c456751", - "0xff5309cf09f24f3666205ae09e542634bb848c47031ebc10079d96819095b60a", - "0x82991fe8d442572aafde5e2f6d2c0ba0823ae72110c2f4b65a0d39244db460a0", - "0xb86d9c8e378420595feae0f728e00736f5b72ffe37e289088c03235b3ae8f556", - "0xd678cbfb25960efc5a64d48f2ada784a5b43123da5db8636804c2ab7d1a6cc36", - "0x1ceacf6ae9acb6e7438e6971b133aa7a8ba7b648c130962c3f60b7449266f3ff", - "0xe81d2bbf5efd047428040f86caa351a8785a0ee864e74760569318c997b25116", - "0xde530285d36c4a50d0f91d48a42e9b85de919e51246b6aa54a55eb2041b17289", - "0xd5b86ba5c24729d199007133a8000314476135cc5b84dbc49de41a7d9f3060c7", - "0x95b2fc8a95f67d4d67cba712a98bb3b35fc4b92581f5eab9e737f2555592bf3d", - "0x9808b933e2c732a2b4d6229467430cd73715ac93d1000c470dbe403d0f14b6ce", - "0x8a708bd8ec41b6aeb1f822ed4892c4d685ae3fd1a752a0b79a10a6cf288c8a26", - "0x689c7f32af0a20de771b9c03efeb6304b08a421cbc2f178b63cd284f3d74407f", - "0x0375180a004265f4a38946353455c221785c3f6da1dcbde2c09c373fa42c434c", - "0x764f8f063124e8226a65af4823b260354924781b339a93f6eeb0622e10333741", - "0xd0a28ce8c50017ad2e0bf1c1f8193792228b879688f01354552e656272bd7936", - "0x20b12fa78b655cce826e87bd18cf938917d37c306cb620afef671b0548b1e1d0", - "0xc94540910d93236aff53413af46597dcb51c02508f14bf81817966ef32799c00", - "0xeeda2d6df1baa5dd3cf904c4402e4e99aaaaa16b6f3a0832bffad5492fd9e725", - "0x74de84a1158dfb1af0c1478cf0b048ae8b0ae00139588e91d37a6874b524522b", - "0xe9c92a1b7b298d7222890fffbd5ae4d2f8a8e0c5519cd06c3e34fd94b1f12767", - "0x18261f839aab59220f72e4e4bfa7a8dde2d3c5cd8c0179d2ff32a151f7af92c2", - "0x35fd53473534a3bdbf0ada29529991bfe6ac1865cc6786306b92dc26a6aa8116", - "0x6f40f093a08a00eefae4cb848462ba663b62f089005acb49a8f5ee3f1a767375", - "0xb0d49e32ac2ddef6bf0729ce9212c4bcc053aaa7cf8dd6649247749bab68cfac", - "0xb616c68f680b5cc9be3fc5bca40621514109dbc1316b848f1f3ce18b05e76d33", - "0x3ac8fe2f016f98eaa25451e36ce4fcfcbd160c0306c57f2edea049cdf541538a", - "0xb45e54eca70d4943eecaebfef3dc2219e79bdc71bddaec6adf53a1d058a65a30", - "0x74284120c5fa1ddcb7c294533eedd0b1ca2703626b7361543cb8e2a922177aae", - "0x8b15208a8b5d6ddfbe8b09148d497a5e3fc267b8f1d24272814d72f4826f8e88", - "0x3f9d4dcd96d5c902d4ef5655c10620c3e5a25edfa6fa093b0546d05c7c724d8c", - "0xf91ef06068659865a7c94e955f9c01ba4794214ebab33c9ec7030b2dfa47604a", - "0xadd5bb3d2f06ada2edb35754833e1bf1e317edff3e33535e135e67b4e4c5fdca", - "0x5aeb51beab2c98d3f77f2f04a39c2dfaed3ff759de9f5c16d4d88692a95eca60", - "0xeab1ab2c49609df8e29041ffefea082f92941aefae697fd915b9aeee8665c57b", - "0xbcf847e97f7f6fa5a16075ea54a67254e21fadeaa38d7aa42d16f223fd179faa", - "0x07f25413e56e9dfbd9bedf4b0676755f0cdbbf10b8f13ac7ef360bef7ac905d1", - "0x373e2f4dca323c9c4b4cd0cf4a1eb04ce7fd4d7548078200d9ffde2e3fa4cee7", - "0x5b9fd47a0d9cb386ccdcb2755934bfb8b27be896e52afaf18a0d130bcdff5432", - "0x1050a77797e0fc3a98c1d172496b8a3bbb2b045ebaa6b8b4af4e1542180f464c", - "0xea29629a5b08050c92412a25506d4d6dd8ea0f6bd8c962422d8f4913090a6d2c", - "0x1cc76b2b9f505bc358df15e285ac7cdde0009a2a19de9fcb5a44156ff76c5585", - "0x03cbbc18173700023643a8d6d7ff57cb0503336794c5fbe0b705a95034b7af80", - "0x9e2a5b70615a5c057d2956ac21838616ffd5cfb26fdf7398c4ad988a8cbc27ed", - "0xb2ef5e7c15e169ad2ec00e254415f4fa6c1f0635f728a98724dca4335e1c7801", - "0x50f9e432ed8c0c999685735ad95a4c2b3e0c0002d1159056392ed541ddca9b11", - "0x40ecd3140c4c8b02ce66489b39842d92ca64d05c30a9eddbfe675dded3fb6f3f", - "0xa1417d5ef7d185323ae3452fd99d54d5336f69ff866cfba06838da5efe273ebc", - "0x93b51cb9e7c9ca4e5f67fae55992ef6b0869c8c2effc8d244791cd2275f5f136", - "0xd9889fbd8c71e14316b5dfd46a6d049ec05127e5d3db6f0a31a935cb86b42d0f", - "0x384e1275612d71431d80d155015010e22b8b14a0648328bf1b32f92b1673308b", - "0x5eeac9b703836463fc0019c1b6f4be32282f4ade6778f897f6cf9d4c33e16085", - "0x2bdd040915ac28a0a604b727f062cf49fd413c44bcfaa2cc5eaaa9224248ef51", - "0xd7c85280a461c43df6c82f6ef60a973f2581c428394996191eeaa0d06a4b6473", - "0xe57d7c71a989601a066f8447a5be928ad0ce47d5413eceb709761654a30667e4", - "0xe1514ee44d1db8307cc08177a343887b5bd843cc510c5153b7f251aa10704f87", - "0x2898a69c885bb4cfcffa45a8aa63a8e81a40d4e3a7e1ff218ca3b4c70b836e08", - "0x27b66b51bb80e11582319b2fe176490daff05f0ce72a9dbfe79691676a455e0c", - "0x321d7bade5b8a1adee64bb0362620d99a5528831cdc0f1bd0258c9d66e4515f1", - "0x0a5443109753ff0845752dc998e82148d1de44d8347e51accd03cdbdcf405acd", - "0x1ef3a558361ee68b83346d40624b13d3170519e10dd18f60b6c5d7804f3c2d1b", - "0xf81fadde2aa798e6c151b35f764009d754f01aa0d8dacdd1a8f3109bd5d711d7", - "0x1af5b4d637429fab034b33b5fb3add567b5896608bcdc9e8d86a7d7ce762b4c2", - "0x8dcae50013fcabdc708c7b99c46fb4a68c75971775c135b7f7727bdf8db645a2", - "0x74dd3719b6229c2f675e41bae47aa0de9587608e8ad76e9dd911d695cbe3727a", - "0xca02fb569c275518e1cb95018a3b67dde118e82ade5cc9a43e118afa8da5e3d4", - "0xd5a890bef2beb2920a7ac22be90d0ed203dcf6b37ed0b3d2cea1fcc8f68c6d98", - "0x917c9cc04ac1f8afae96f0dc9b49161c352ed4e1da970e17d52fca31b8c1978a", - "0x009f16eb012717beb87fcc2b4417c8096a621fddc2421d02d84d0bfe92cd3587", - "0xe5ff9e2a1ffbcf1f53cf716b7caaa1317151ed8b81bd641bcf41eeadcdb0790f", - "0x2dfd67dc149772d4aa52588315df62edbc8a9340f2b3afb367f7f1564c1b8503", - "0x830df571a176933f6a72ac634933d61e602f744d1e3a046b7b639c9d2110580c", - "0xb2a030fd70ad2290c69e9b41220c14800d9adc33d7f8af049120fc6526a654d4", - "0x8a013c2432c60aa6315b1adc7155dd022df24129106cccbdf463273051ee0efc", - "0x55040dc6b554877d752f2f0bf0d97f71b34583b3d939587106affdacaf5d7c0a", - "0x251817e5c81aba6d675d47d688f19d5cb6957cea13ef3e15c66a6573b84af432", - "0x708cc1d141308870ea3ac36e5781cbfa3b5af327c565231123496354b5a9e74b", - "0x4efb2006e58b45c648d27654d45f1f797d4798217b2d0b54958fc576f115d81c", - "0x7d1bc87fd32a1b2ce74fe3784be5c0fe2e625ceac523ad55da7ebcd3cd1cb94f", - "0x575cc8bf8070ea53a54d027cb7d42eec9dffb85489013634350a96a434cb498b", - "0xc69812969e85bcd2e7e048b4323a726691c78d1902c1f1dbdd3893c11b9df8f6", - "0x6193928c0a4e47c9409c1af5d945a8c92c9e28a76570dfaaecfdda8071d6558d", - "0xb8982114b6b5da8849c27ee7d23280e15aa780248ebd36e5d364f2a05ae1fe45", - "0x49577950e5a3d4a06629686f9353adecdad6670fc9f4e6d3eaf6735296cc6775", - "0x6444155176ebe3b62f028ad79f058271d5b317360c0b97b7fe8c2a642da88229", - "0x9a3f0adf9c7b9380f60baf1d524590bec23b4d3790b3909ec8da3e79303252c7", - "0x591f122777ae7a313b6c4ba8c052d483f2aa3a687b5d85ed39e19d7e0c0e6de2", - "0xe3d68466d0747ab6245e5d8620eaae080a0f3c2aa34a56defe8adaef56d5474a", - "0x8d0f53bb5f7610133f04a763263815e092e43b0016369866e959d22eca466d85", - "0x8c8f0fff76977593112a64826f15ec0e909d9a1f1589e121a37f73d881e6b696", - "0x9ab1411e7ef5b295ab1a9dfe4ee1cd1a740af5b7e4b0a0e9c4a5f37e803c7c94", - "0x7a842e2c606aba52515ed7f114116bc782810bdade34b582077c57844e6af18d", - "0x40b14c755b9cecf8264622d80dcb5864241c0f41e9665908ef3683e83d33e9f1", - "0xd0faf39bcb44f583ded1cffebc93a8acb49a10b3bb2b0c9ed794b8aa4bd9e30c", - "0xe1eb93e1abdc400b49eda22b5818fcf61c56309f10d5e3cf3794bcd7760c4c0c", - "0xededdd50db9028797406a8559fd824a3e024b2362bb24f708c4f8423c657b31a", - "0x20f6ed1b586555773ded5606e711a4b9bc47b84f45bdb97653de8eb4c9aa40b7", - "0x77ade166b067475ddc450b0d6991b5a8de93c3b60d76d2b6a3f15ace449ea6d7", - "0x766c057ee18d96d84ac85caff6e0ff4954d3add40ed9488987ec5f4865f06ea3", - "0xe5dc0692cb0da1b9778ac99fb26b01ee7da45da56996dc7e5191f28e60a83bba", - "0xb86ddaab167daf9b8d4827e12f19201cb7ba2fdc7767aa7054f478650360b5a0", - "0x570f60bd9224065c7ac611e89e9737354b3186440dd328efa7ee0078850fc296", - "0x0438822dca67b58f7c5ede70758f24ad164e1c0e3f6628274535101c13121201", - "0x709382d302a6e5b21823af6ed14f22dfa79d7632b8649c67cff749fd9cad1d54", - "0xd42c07bf201d8025e9202ce752e25207cae1804877149a756536348853478dfb", - "0x82944c59acd3d43c731cc820a38f4b9ea4fafb3c5a5cc474ca0612c2e50f88a1", - "0xe9c2665ac57f450a47b8f5407dbfa7575ef4fd3bc4c90a1e64e7e0f597c6c4f2", - "0x862decca6c5c15a52cfc88a629237dc1740d533dea40a0850d8d0cff47672c43", - "0xeb453cbb85db88ed6ab19e57fc0b90c045c3c0dd6aca67f3be579c6e75e6a1ab", - "0x8f32d04dacbfaf1bdcde08205fe539f24a5e453c686257d5e39217ecf17e2a01", - "0x81f1d7ed305f8981fd6ef9adc7374a3bab51b9f5d042c35e7cb16c7eadaf37ed", - "0x8301660b9f830042d66b7197ca95eda84e9220d74f48ccef41aabcd8bec18c57", - "0x07c00b7b9e698074ac994f5a96cfbfbc6f3e8ba34bdd727deb60aa3ab9f0f1ff", - "0x44c59c12a76078144f62fc9646f8a37ac38a0db2db3cb002712834c0bf2a1bbe", - "0xb3abeacf4280e9fa9357fcdd9b4e866938c37513e0f8a31b9f8c5733c48498f5", - "0x72dd15a76cc64e9091fca937497027b77517334012d71b47502ec28f4cf31433", - "0x0f86404545ab226dda8789da56d1d67edaf201062dc4f3268e0a4c3314ca6628", - "0xf2c60e7441c1cd8b448b9d93fcc7e5f5a107d3b502454fb2f6b8607c49e12a01", - "0xc272b28ebdd6cb2cc76cc255f68602e731579bc79ee8c9f6a3471474f14febcf", - "0xed87c1f9b73e4f757d822e5161c6299aee52be1465ca389f0ce008eab6f51c17", - "0xcec988f7b79b0b5b9f4b1e43466b56dcae86823e45997fe208e7f2cbe4604947", - "0x0583ed42e92bf0cc3a54a4b80edde80606aa9a16d6254fe89b809faa0c7c5f46", - "0xc61e76957a49acc14fe008c525de69838370fdb7c3063bc04dd98b031b12eb92", - "0x5495eb0d9ac61871a364a5bd697628f4e480b8eea4c454cb583b0b11e59373ce", - "0x3ee00540b8bc71257573acbf77c97969e0af184589df1decccc5490858b1399b", - "0x6c10a21b5e7a430ed342bf38a88522919f217fb7a087576d7040f71b7d6a8e0f", - "0xc0410a1981bbae319921e5af78c1e80e4539e1ba9140adb9139ff40816255910", - "0x300f10eb6ba9d4ebd662710a91bfccde83a561b0dad7e14256a7b62e8b720662", - "0x9f5de17b88d3bbc6efbab33a7b2d8f2c120643b3844f8e37d19e10f1526195f8", - "0x2918baee5948882cfbbb57f6ba18a0434d2a0c3928eaea3d1b12de0054c00b5f", - "0xf5cb3b2a6d29bf9a0988877cbe22a01726883159a787a324bf1e685b92ab8018", - "0x08a9570f38daac2ca30d32e582f9f8f3a80e82020668b5020b29bf0456779b9a", - "0xf807d91faee554d99a4a728b219d285834f231129a6225a5a4340bd74693b133", - "0x7798ef990ab47b908f703dccfcc0d5507dcb7afaa9e5b98841825f7d2ac6b655", - "0xe5d3b714c47a7f5b8bc95dacec03facff800774c72f4379051a1c574b919bfee", - "0x5c5f6fdd4dc6d353865ee1edd5893b634f7239b327840b4973509027c8622f74", - "0xf713adae992084b0593ac33894fea127fd73a6439533cc94d07b89c50b071fc0", - "0x548d8bfbc57c4773fa2918dd13efd1f55a68d4a86b526f4560abcf48665ed637", - "0xf47bdfe91932a9b4e968e64ad23690b7c3421137b44030000ffdd78ac798b3bf", - "0x4ec25256a43c957c1cef4be253a69fc771889ad563ae677fe3e5ea6936cd760e", - "0x9b8a28041d701c32f976fada9ce9a73fcf5dad79587c9e02b5abd7a299d74292", - "0xc7c6285cea2145104924ab507bbd5aef09403f61e90ad04e0fa8a67e2abb140e", - "0x2e839dc3048ebe96490dacdf688b017f388288954704c9a99cdf25f9203fddce", - "0x37e37dbf1f4cb8b825cd5b68ea18a80a0bcbed46cbdb54c5ebb136ba4e88ff95", - "0xcdebce72ebb15b5fe081d0f3290cd8412c56e93269541af2461598fa2a05cd1e", - "0x37716cf58953f21168a83613bfb13db775fc96175384aee35f76e82095d19716", - "0x7f7ed8d8526f0586f08dcfba6a279689d0f7aebfb0b11e627c7cd0a31ea99256", - "0x1066be85b9d156b32227a7b74cd23b330f3c80e62f8b671b1dd03d2fbaf038b5", - "0x53b3ba2bf9f02a52c7caf9ef6b46df80d9fa1ab12437774b2f2d073e886dfd5b", - "0xad963410b3f77f2399b7ab925c7ef5cff512534c2e12e7e3e9573152f197f28d", - "0xa3b75316cb456a516d1e26ad8df52a0a2894f26ff3a2938f9e09cbd9354981d7", - "0x522ee88e34308bbdff564080e665cde9b3b4ae4a61afe558e5609996c1b2f855", - "0xd7d377a1ea94fdab72ce796d3e62cffa96b2b2226bbc9fcea51817414fc367a0", - "0x2ad4691181f4947c25d521a9d593e25c5e67c0b6150b3d9e27515c7808223633", - "0xf76442cc901ec7207c33840e6a029e3655d279394261b8e2fc350547f2fd4cd0", - "0x39688b8d86b6cacfea5d71e7311b01e2009a939c6531eb8af8e88b1d1b7a04a9", - "0xcc35ca75b97530d9c19199827d373210bc9624fa0ef572f7c3aaf2672918da58", - "0x85a6af5bf38ef40d2be7a529f3f370f56f380406fb8c5165f5bdff75a182b2ec", - "0x54296a0ca61a8a80d4ce9333c985983f953975f6bd7eb6beec593c149a3359cf", - "0xaa1f116c6fad9512afa8329eb499f197c5716a53ee283f06c417f45d9ce2fcf8", - "0xb9799045a8f20c5885649ec1a632eacd44a72b794dc7492469f8c1abff3edb24", - "0xd86348fcec2db2efc3deafcc18ca121de0176b1e89698a3c5244f377792784e7", - "0x7267a4a5e59e848f1c3c9e4c6f43e7aa128b73261adb296a89a7abccdfd16cd9", - "0x817a39c73cf85997721cb067b4e00812ab7fcde3e4506e37e6514c8c4e87846f", - "0xb8e7a1c1aa51637ee68590a2d5be7a8124fae067cb3b0ab3898f5c45fb275010", - "0x43f77794f4bb485488cf082b416885292a7b254057e7a75e331f4641c1ea2839", - "0x9bf3050d09ec32ddf7c40fb96ae136085587c3a4ef6cd413f73dd42615327218", - "0x069923933c215e6c60c8285f0afb83de8d4d9911a2c6417178f5f149388af874", - "0x01e1fb2dcd7bdf5e30e5569a677f39e9356d70ad5e7c30cbc8c73eec66bba5dc", - "0x39fcb505c1365111a0837993dfdf527a716a441628f248aeda785b32e04eeac4", - "0x7837393e026631af009ee2f61e1a39037f97f77f98690ce92fcdd934b80d3ddc", - "0x7695c9c3257358c759fd8c9018b2834ff56c42abecebaae806a281c03b887aa6", - "0x0446616edf3b74a68fbe0c22029b61d16b67c300022211e013572b90815b6050", - "0x274d5faf73eac9078b9d9c870bf07103aa749b0273871fa8e166932e3c0c1556", - "0x34fa06554a8bf6a2305d7ad293d1617f5295c046cd6de60689af2af9d44decc5", - "0xb641c3b6baa2370b85fb8bbb8c054fd9e7d44425a095778e859915f5b3931006", - "0xd4db8f0bebfa97e5ba93fe7aa444eb74782a98f03735720482b5080a4d3d980d", - "0x4261a0741221a7bcfa4d8bd1d6e8a62fe47ded969cc2b1446a7a76da9a23e844", - "0x6664826f16716dd01d707896f892a24b29aa9b78b2a162bfd01aade882314815", - "0xd9cacec24e60731fffc19e6fe8bf0241499ca78c51f38f841f6c1d91cb4f686d", - "0x57755fffef02b43c1be01eed12caee89bf5cb4ffa8b823aaed947083cde2d0ee", - "0x5d9bfb52ffa30989655e77512a3f40db66c790311c9cfb10d161b62b7542e334", - "0x302296acbdbd6737cdb060223f289ddd71516c8c42cc5128bdd545de6df02bb6", - "0xee1c6c48a63232e8dba59646f8d50dd6eded16ab310f39548300249efeaf7b45", - "0x60d151e272c9e6874c9c9bd90e8b241c0ec1e978b5b1db2d6632542f9b02488c", - "0x71c8d8c3da03c317eb14b12b5d403581432b3f0cea447da99dde8b60c9dc9cb7", - "0x9fd4de13da3b68bc5682debfae937d4ba4fb67f87cbc30677941ca53f5029945", - "0x2fb70f11714902235b3ca78b281c8ec80aab89f77e3fc59136bfbba44a2c46e2", - "0x30109aa2d8e89ef3669e4abb89870c77c5acf5a34bf273fd56b925d1a4fca03c", - "0x8d5c57cfcf34f5cd277a7d51c5a2fd1405b26231646db44043e735b8aae78478", - "0xaf961653148c2e6007d011e20d008c25a2c842f5dea15e2fefa76b3f324424ba", - "0xb4cc2c774796dd0c44923ecb3904e8f0c64839d32b7afd0c7f87eb0ba5e52949", - "0xf4c16b1aeaf622d35b4f897c5b9c96358af2fde5ede56d377132a6e57549565e", - "0x15c2a9f6eddc424c3ff3f91ebe6ac55d98442923267c80f59023d18b9d29cd9c", - "0x65abebec89e4a4d6e674a29f3e5ee304050da861a3a3c91ebe79a3a8aa159db5", - "0x46030219478d3c508cdbfe4cf76ce3924942cfbeb9ec6ac9e83dd5414cc8714a", - "0x4712aadd9407b29cdd5d3f0747374fea712eb3202fd2c13795268d498dd0843e", - "0xdc5ed31d4a9c4fce3f91f75102feef6da9a190638bf1f090df64175b531b1cc1", - "0x077992451f048591ea0bb7b46818c602b6fb1d535ddfab2dfbdaa6731745fb66", - "0x889307e6b877b390b86024c2f48afa3df0c9b375512e38ef778dde91dc950f55", - "0xc6127728eccce59452504b58e10c29ab854712f248d6c90b43360c2786f38647", - "0x76516eefb0f149ab9fbf2dace9fbdd4d435e583b3bb19820f45801abbb8309c8", - "0xa3771e4be252fc17bac8dd8cb9cce1168e531061b59be4fc9115838af2d3217e", - "0x1a0218061cd1c34a080b3a70cbb0c9f66420816a21a2f18f67e5fca6ce62b3f7", - "0x42751bae5dfa6d27b92cb15bf0c490d8184b97fb647563bbb4a7612f31369473", - "0x03bf5030aed483c4d07ba6a5be51ff968ce869decc37fe264b98661bccc55668", - "0xaf604a8c41a8a2fb37e317b2a565afa4e25c289a17b3e7030106849094d517ed", - "0xdbf8ed6fc0f94eddd863c883c17c974dd91f679194d4cc74316092327eb6bb42", - "0x27624ca6ec82b25f6bcaae3b0159c79803228ef5a5e4443498e39e7ca8280195", - "0x19338a8eb7d6884c8e6614b408ff2e5d44ed84e208673910f10fed7f1bf95c37", - "0xb612ba1448b74093a5be0f2ba8d330ca56647eaa2c84c3a1e3d2ef765f430126", - "0x523a7f824cb76717e0985ea2cabb23de5751c67ea03d6b569c30552d8bc9caf2", - "0xdc4f2e1b704ed39f818c36b26df95184c39927246f52a74772be1eebbddc78a7", - "0x4b5e3bc7c2e4f098b829f59ed096527216ea84bf9041d2a3c53c00cb7b5e7a56", - "0x3cec3a6e9f95bb0e2a63194ac6353ac6fe9a12fad00e8f603703454638e8d819", - "0x29b860f98a7239c9fe3994b68019ae8fd4d4009c07a088d23cd70ae6033fc727", - "0xa8d1900bc2c3156c6bc8a41378c0d2c646f0328d4f8b8963f52ac0dd506731ed", - "0xd9f8c709f2a6cbcda62ceae4c5244554af106e7f7fa0837d8887e23887d32e31", - "0xea7c17fa8dbc43b3680741957d5a020cf0df2d491aebd6955bf6027a63f75dd9", - "0xf764705990e0a12e1a97ea2cfe3d5fc0c28a601d1bb6c1bca0d24e61175d7403", - "0xbd5d6454bb6824df5a458fbd1a29476e76c645564c42064eb6cad79237e17a99", - "0x39e99ee5f716670380fcba0312b8b9d902dc3fe4e49e19bceaa4b2f3c2041366", - "0xbdb6860183ab7aa4362223c519791e7a0b63379b87ef4c30739e57515aae764e", - "0xbf6e060baab8b162bdf78e1996e30cdf4d6dd60b5daef909a5e7fada00090928", - "0x1ddc651ab0d26eda2c160911e4be92c8ef843ef510ee28f1d0b8356760c595f3", - "0xdfc38ad4e3225dcdd2dcadf32b024f754236601cb60c7aaec61a692a9f367acf", - "0x326cd0b07c68ed36049ef9ce9af1db0593a26193d9988d21d8ab05f7ffd91adf", - "0xfd76ef987cf758c89c04a221c10e50794132d3866bbf4e739e288a9b3014a9e8", - "0x590f03df3ea2123eac0957d2a84a4a0e0184be0eb75851643c0b876f364942cc", - "0x0fc92d4be9d7f7d5c49f3552d89203090fb7f4a4d34ac1a9925036c84d5d0d97", - "0xd90702e78e72b71a3f7db3510c25d0b26d098da80003cfa4abe3c525e3212d2b", - "0xec682fda87e3e66fc89855bd1ec01a80b515d6dda5f4b2d207cc5b2ac840532d", - "0xa75c0c5ae9cc31a14badd2f0cd66b9c081aa541e4f862ef0ee5aa8a692baa89c", - "0x9c237fd14d83ea449bc37922861be5fe81531264bb802d6a07c149b6883c826f", - "0xab2240195acb14c2cb5f3e6bdd352c4c36765ba6d2d3042bf15b3942b50471d7", - "0xe56052f2729f3d7d08b7958c0630b9c3ca2c6fcd9fd5655314bd1d5ca94e7852", - "0xd774822e8bd746a6b253e9c71f80fa6d6f9ad95bdffad3310eecb98785c549d6", - "0x4e478c8d5034a0e51e1e760fe258afc0c1f56cfa145f89bf34156426ea837b0e", - "0xf84cba0083c61307c45e7caa3844053ca78e2a1ce181edf17041130f314f4d00", - "0x24db4dc31929f9c0521a63d1b6ffd14939130c7d25df7a0827513a6ff0b28159", - "0x969f5efaeff2db44bcebbe23b9ff916a15087a313e814dd9f8140388fa62a48d", - "0xbdf6deadf158fbbe80670ae75744a419b999b747cc0804ec2a81b9082b5a4ccb", - "0xd25da9760de21e6483493f5f781cf526527aa0bc17ee9c9abefebda4e8bc5b71", - "0x83d5382a1a2132d7fa2bd48e06e59243f6ec71ee50626b65a84a7e5d3543f8f7", - "0xa5720e9755e2d04563583af4a2581a8a1761e82eb769dc7695b1f9654e36f753", - "0x97ceee5cb98a9e917223523650405aaa2e71cb12e568319baae1ee75df592fd8", - "0x1e1e8d3d81ae5be21cb8445833d9b8928b6c9a6b9217532b15ce0ba6cefa64e4", - "0x1c3ca12af63f1121e93b5fb602ab8c8ab1773d07bab5a60e78cb8e70e190bd4d", - "0xb343c9f8dbe3e65462838749865a748d4a5eeebe5b6622b56325e2e6680626ef", - "0x04eda02f974da35a3f4308d6b6be16b602d9317256209bf674f3282b2bda878a", - "0x0f85c864e5ac359d9a0ff54a4e0b44a31109c57d7c2171185138dee5638c627f", - "0x476f9f649f2365455d4756f541e8b8f8e34b32f8c67196a06fff2f71abddf5e5", - "0x185b523fa66564ed0e4cafadabe1c04a399b51114f5fb743136fcb2a0a53e477", - "0xc87106d70447c962f367b567b37281e4d840fc16d7b97dd349ecd073d0419cc6", - "0xc0e624f73d54230b99169c8919c965319ab2a93a31923bd22b50350bf0d25798", - "0xd78f2ea276fce38b53569cc64a6ce7ccec2fdf4f1a295106a1f2c54330a0db40", - "0x4a1c2807ccd57ecd989a2b0d4ed2d3ec609449e15c5652cff515ba5506cfb745", - "0x453e4ded943f491b41f0522188e88b28667172202b8a015f113171c29de193b2", - "0x9ea9a96b93c19a00f2238e15bb3c74409eca441e6d0ecb47b574fa8fe7390c67", - "0x9833f04cfbab3190d2d831116f1f0e1871018d862cc2389511bc266756963540", - "0x48ccbadc3d160d322bfc61d44962628b088da09d045c43d028b1b9fb979462bf", - "0x33d90a0c09d27087c15b01228250cac34fd4307d45593e7239096bb77822f6cc", - "0x545e2a8e511ef59a5fd7f183b0bed449d59788e4e377350b56bdb387e82ad4f8", - "0xe7e31fa668cee51a20ad4f2bbd459016639bcd47421836cc1bb3e0e2a4705998", - "0xaf6e1ffeaea0bcb61d5d90fb6d6146bf4f6102f49c3e5f653e1bcd6b043ab3ab", - "0x98bee111ed4d2cbd72725011d5a565b1873c86b8f3e17f16389ee009dfe3c6e3", - "0x2107b120a64b8fe21702af4bd26e8d981fec6d0051c83046bfa5dd05354ad05a", - "0xc982a8ce403f43557d0a812b8be06827d88e2410f6e7920971972fb205bc8a4c", - "0x5d58c764a39ccd3edc5e1b37f3ec73ddcfafde249e066c6185712c0d566b2e33", - "0x9afff9b16248767858ce0520877d7f414764eae8ad77d9810d615540c119e476", - "0x6154b7412dc1fabb80fd7ee43a3b91651e07b62d15afba8c004611d8ce2a88a9", - "0xfa859b6679bd6a2b283ad4ba43b8b3d96b19292d017e933cb307100e0e2a9c36", - "0xf32a85527d705fa439494f314800609a6c5f6657b205b0127b64cd595aa2c31c", - "0x02d1fe3725fad05e13189d6d9e078af8c825bccb5775dd1a6c90be3b57081d02", - "0xb003929860e22e0a4bebf5be75be8ac86a511e3f9e9b421aa9a99fe0fa4d9144", - "0x583341c3a9526d29c43bf22619df050676fc5e56974a8588a91bfef7409818f4", - "0xb94ebbab275786dbeff9189ca740bf324f916c76b800da87e6e507d546128ca9", - "0x5f26114f75c4f839fd6776b3a67b1a74fe6afe5fee1d3053fc5b09b38a2f31f5", - "0x053d6e94968bde9f906aa52065c0626810d138908f1645f2e563d3aca9660276", - "0x458fdb60ca1d0b7ffd846744ee6fc7219ce6700b4e5cd97603c4885563a0d14b", - "0xdc09316757c1ed63b9d984647db8fb69fc9e8e6153424a6e99016f868dea613c", - "0x409e2e26caddccbabf10754bf500262fca5aeaf6ebc937062e1d59b087873a70", - "0x288ee1a1e4b4437ac97c7130d4260bb0298ed2038b57c801fcf2389762a8dbe9", - "0xb82f496c7c8c8d2847ea7434e15c61883f4510e3151f56636394d88e902e19de", - "0x5fe701b2ac79e258c7201cadcf7892cd37e76bf9f7f9b9b46d39ba0fd359076c", - "0x32a841cf4e27eb60b5a6825665cc257fd1db222d501b42b5c6a814cdcddc1038", - "0x5b76c42acd108597e0f0ea8c92acb039a047dccc7f294205d1e404981bcffe0c", - "0x7084da3532f91d33a42701d9c580905f4cbc4137f33db33a579aec2ce5db1c53", - "0x11e58ad87c481e2d1b1583bed5b6e71ffbc1114bed29b7ac14a75d852a4741b2", - "0xdbbe146f3e58fa32d465a175205d757f18929cea4870bccbaa2698c58cd32f6c", - "0xf1dacbb951e0663d5db612046e090c04f18bbe31271d3d786f20deffd44b4205", - "0xa11dd2266cbe0af5b7f1f7955c28fc43a88abb8d82ac18e835723c85e8fd2d22", - "0x716ed679abca531ed520deed7b6d955e1c07c5ea483cb57a2322ed8c7a5a31e1", - "0xca4e5b466b978777d7a60a8bd841271da8643bdf0085379677131bf4b3604f33", - "0xe3ab5b13f5cb1bd8dc38c5182a7f16c02abdcae7a310d6c0233b96070d9d30f7", - "0x5f29236e49036d429f283d25a2e4cd6ee8f01b314201a34713b50871ac1ab628", - "0xf1e41d548090c62f207208b575e0bb7b4eb08c30abe40525effbcbb8b5511482", - "0x088fcad31ede2ffe1cb9e67becae368ba3be97a02d4837be59bef650f4b90e4c", - "0x4f4cadc003d445a2014dd5f819a2b67e67620a21af8302469f9ec264cee75e2a", - "0x23b331796e1c5c95a701a1f791ca392da953a7a9d5d2a834d0cc941ef6567250", - "0xb147414487aa60ae8ef7aef8577ce50b4a750b0ab77175aaa39fe78ca5d2e12c", - "0xa2250e2b126ef24cb732c79cf87afc5186b88402b70e0c9b7d3139205c7dfd09", - "0x5c40cffeb999c74452e77145e22c3c1d1080deadf4f49e40cd5184c683f628d8", - "0xe2f8ad15a61579535dc9afc59d9ad16308b80e409fed46af55b7938856485c33", - "0xec81eb466fd503be4a807bad9b2d0b6ccc24d1dce3f82f69adc99dc81d69a3b5", - "0xb87d20dbc44c1a473048e96a2957a4b9fb2ea606cf7b3de9d44937d18695f0d9", - "0xbf0dd81b0e07b07b22deb6b97d5cbd1d03a2726a1e7bf9f795c8104d1ff1c458", - "0x6aeed28f1590a1c96f1085a1867a4957673cbb8e4251e5876a43182e7b40e4ec", - "0x24df74cf385560d990f59f8c59d3545662f71b42736bbd1c1361b5a1c45d2b47", - "0x881647b453a1e3ff0b6e64a3667db62add41599f003f9032418576323a5ce1f2", - "0x9fb9c9bdcfcf35e02f0029f74b86d131be7cb49f409055cc075008e9ae33bff5", - "0x5f17c4c7b4d1b0cfd3929eadb46bf1060b8394f6bd5c0095623f73de5f8acf03", - "0x63c4b4aa80474a3cf70243f3a2d891266760f6f54693f4f189c0aa9b3d6302ec", - "0x97921aed12f6d78f6052050f7401caca6bd07cd643fd7a30f681a72a45b64a0c", - "0x82e6c73da95617192ccbc9374bbdec4c4323f8f63a27197cdb52a0d73b88e16d", - "0x3e24fcbe6a8d8ba769994150cc7a17dbb38d2248af14bc8328f729f4e01fe173", - "0x8390ef908e1dd84308347bdecd7f7e1f176551e291c6b8851c1f90d0ee4d87a3", - "0x016143668addb39c55a8c5397cf097567faeec1787643a89f8feaf817ea10d5b", - "0xde78935eace5f67e88d141d650c35b2b0c5144b12833a3c4bb64441aca1afc23", - "0x129345fd67f04b97d9e76fc9758c80b0616a68710f51decc61f85fed9250396a", - "0xcf6625191fe20056831cfa3839cd3f8fe60d17e6e4248dc46ecd35401986770a", - "0xda56c24559455221d6e465dc3385bb8fe8b547f96952e07647e46e10127873fb", - "0x85045ce82b529f7055bb8496f4084283edc86b6b79f0f1fa060ed9050419c542", - "0x4b94dbf2a96a4749a04d47fe563644b7f396f4c81753d8ec3a70e5065df0a3b9", - "0x4b025b46575b54136db392c9075b5973a421fb521ab37d8760a04f90b4f8526b", - "0xcfdf125601a1939cca129c4d38dc89a6157cf0a51400bfd8cbc1ea9a3ac5e859", - "0xbb9b417a9d9c975a1707778fa83950a2a6f6c7c20620e623e913509cc256c26c", - "0xc2dc9b5d9413508462391fbac33d1d4ac2fc4b3167d152d0888c5ef9b18a9bf8", - "0x918d35dede6db7175e5a11d9c26ed38fe8198da231d3955b1eee020ad32fa3d3", - "0x12515f32629d7e71e2f1ef0de1a08ab2ed2cf9cb2ffea11aeab06e7dab64eec8", - "0x3484f89e98c0436f603319b8c5d5e324f3e2cb6995be3334641e14a21e998b21", - "0xb045c079ca13a4a6760bae38dccad8b35503437c4643b1180f99b2bef15b9eff", - "0xf81cb06b474d642ef15ae0382f3d792071862d4a00a967ed352fcf5fc55529b0", - "0x2edc394894bdc21c9827c789cd1f1226459e5489f7a87dd941efdcee56d0be78", - "0x7a1993168a29b0869fbb337144031dd0bc47520ab9498c9065b71fc90a100294", - "0x1963f11d488f5db4ea7f6e99b0bfe5006702e911930a7a95fab8a45ea1c4c955", - "0x7e12d33b54970a2fba8539d57c02b8318fab2f22ceb8b0ef69b6cc9ccfbd0658", - "0x32655b99bb59604c91af6270b15834688de512ca3088544785c0f0304d1faa20", - "0xec8984da3bc415604c9facb5cec0238f162b3da22fc4d20bcfed387c647728fe", - "0x7ba1756f8fa6637d8cb6cc588a679f6366827bc2044865744837c63e8a5aadcc", - "0xfc1a94a88f1e52bb78a0862eea4b996444f0264a3b301c1a31e59744d0216de8", - "0x79472bc4de84a0c430f15bcf8569486cddd2de985409ceb8e48abec8aa3e3fe7", - "0x02bc578dcc715304c651a43d8dcb4a761d2073a93cca2c39da3ee513f0c6d415", - "0xcf6175cfa60c20178241c18111d64f8837ec008751c5c333bee96c616d3cb6d1", - "0xd8281202c7b6da2a2541cd7f8d4270066f6546bec601e83647896ebdf0f2eb66", - "0xc4975ca8b2b71f61d2ba2825833df91096bd733301d54a3c7b6eca016ac14153", - "0xd01d6f14e93c8ba17a602378bce1c9bdb51373675109d6233c497b6c638a03a0", - "0x805057e19b7dd857ec014b4e6333bb60f48c02d29b128fe37a69f952df8ef16b", - "0x69c55bdbaf74bfa3d53ed32b79dd35ac2c24dd723a1c0bfd70871cefa4dbb8a8", - "0x523efe8059e6e8e2abd85d77d22123f97cbbd9864b4a3ac1fe0c0e4b8a7131eb", - "0xe5a4f129016bcfbd71913d1eff01cec924f9d130b8762c921d43fe5bbbbdbbd0", - "0x07f68773d16907348ac6e7c5be293ee1163ef41b91a2a8abb17a004c4796fb42", - "0x90742f88c71f9e689b6d2ca0236c48bba0e8ddeace5fa4d53a5af082055cfd73", - "0xaf7af6e9f695c4ca9e9a3c0229d94cbf02fcafbc4ed978a6b662862182308a72", - "0x0208eac99df5025cab13d9767a2ba3e42ba1eccb72cfa01d87e834d15eea3751", - "0xee9ff9384cef76b51a9d5b8eb12fd7e00ee7f8142f81bd68393e7fcf0eaef90a", - "0x4770986e657683d901d73df444836f11f169f94ac55ec81e4e19f2212052788c", - "0x9f9c16d009da6e8ee20d9d5f3bd7f1a77b853dfd19beef68d980fca6bce2b707", - "0x468efd7c8dad29cfff0e278fd950f89e2d5a57d6824c6c1a7a7659bd7e7c0ffe", - "0xd0391bd0a2c1fb2260d89bd5e519d4ef26b4945a7ad0c1b695687fe1b24698dd", - "0xdef9ee668e09f8769b2c706a8de426e06f0bd9c264e67bf0c0bb177b851cef23", - "0x10c5b79048e611c6e65f92dd54754753e595cd8f8f0f1005d7a647fa59deeb78", - "0x4ce6d5812d2565237a9b018ed6ec386cf3e9fe1f2f429605288f2ef744c5a940", - "0xbbacf6662d816d5eb14fc1271c1a3404de94e12c175545bc8273c231c280b789", - "0xb216fd154d3726f16907ae571728d92ae2199872f180e4cd6be3b53a8dd43ae0", - "0x2b76e6685604c69f29399451c66ce053ae033ab011eb52c97c112df968e37232", - "0xf93b8076ce0dc6742196d2c9af501fad39f570cd927e8fe3b8dac4127a20a6a4", - "0x35027cc654f998af75b8379fac0a9d51703f058b518880e25e658151619f1611", - "0x3e7f59319228d40e5e07c06b696ad6478237ed0c8a71cff418ac259c6b5579e4", - "0x7295e21fccabab1545c1e64a57f0401e62689057ab4fef26f70c8d02b63867ab", - "0xb06bcf07fe1345c41ba16df213d699e2e185ef2fd3b5e19b194459d0b7baffc1", - "0x1b13d005a29e35fff33373e2d8abc81805a85e7970b48dca8fd605069c8a0d85", - "0x90a5a61ce554bb73253d7f62c78b1764f03fb0fd8f65b6aae4f9e529acb1d991", - "0x1b1eccf7565339748947358caf473ba0cea743da2ed4790763d3ac8c402f261c", - "0xef9b05ae7ce93febce342336e40922e0884891da43aac06f3e9bbfc0aec688f9", - "0x11e1075b50de92e960d0d65e9b37b3cec81095f5afc2afccc6a9a8a325264049", - "0x128e6dba4205701f673dda9e980dc0c02f3c0c8cbc570f9a240257a261f81b39", - "0x6fd9d3eaffaeebd52ce93ac8fcd0f69b146e2c0b05218850de1c9218db8ecd8f", - "0xc47e3487ad63b7db773f413cd5302818061f168409c27ff2daba4579c0a4263f", - "0x0a55695d4a132063735f7319d3a90a2e0b83fd6ec6b6f9994068f928f68afe12", - "0x39403d84aa319edbb18e0313a61ae075ba9c5dae40b9850eccbfc3e09e6b27a7", - "0x79ba98eede4cd0b7031472baacab20df85c704a26e4cfaa6e01e3d4a9d26ca39", - "0x219240759d36a317f269e4301256164cb3709628e0ba07e90a6bedd664cea059", - "0xec793562f8498937f270c6ae5490ab8f2ad21a20510699dc4d7d4d0139efeb3b", - "0x0a3e9c209903b906013c8876cb4292e6ccc8b76dbf4af2ca25d8260f9f8e7c22", - "0x0eb347bb16d897b4909dcaf31a0009e198cd197f722075c112fe29bc9f017f20", - "0xac1e6a97c51f5051dc8f3a1fa33c1071e29aff3d7040972dbb5481ba215010b3", - "0x7e1be83ac51c7e68110c6984da43885af18bc9fe988a57ada7b2379d0a122563", - "0xdb01b1cb4084a43c9a57bf8a65a58245edee5bbbdcf0573a3626e9290b4a2e6a", - "0x6c97523c89da4c9325fe17d2e879bbd6b4693f3e6d807564de83ccf801e66737", - "0x7511c0b30bd4dfa6f9a4f38793ee11e2a616de5d9d2212024c0875052ef2559e", - "0x6faa338fd78b41f2ecb623d578520b373e0c74caafce95938161dbd95edb0e24", - "0x0622bf3e00fae0e244d138f73d16035cd05aa9e0c4c16d20b36adad77951c2d4", - "0x72e1ed876e0bcdbdd200dbd55a9d7e8248a4c7ca75588681b61f6f76eb980060", - "0x981a052ee33c36c52fc33598c2563ff3698e1efd130090658cb457bb814ecff8", - "0x2b732d67211042b340c1bc49682518bb00dfcaebd0cfe861b5d38df9c127ed64", - "0xfcba6702d24950030403f872be646d058039d735cf297fcedb5daa255d47ce72", - "0xba3bdc1bd47ab43c2d39ee67a512f306e987b577166d7037705a1fda772bbeec", - "0xa39705f9efc0c0b9051742b705dab9fed7a08b3a00ff15583e15de95a9933356", - "0x551658242a3237fda7b61eae6dc40f368ffbbe3e7f292bf1b3d291d1f21a631d", - "0x631783a116fb5af727d2617276bf310e9f018e1f072d9f3d5432773ec29a193a", - "0x7d2bee7cbf5aa7a5247f047b1147f55380e035a5ff1ce958037d96a539fada37", - "0xfbe38f5210d9fc7c3474be4ff932d1ca393a565426f5d1443537e962beabbbca", - "0xfc9b71f941a0a9dafd6356c4a42c369f22144b43f32f5d50fe3d4c1cf3ee3cda", - "0xa4eb11bb0a0e210af085dc446766f4bb0d19dfec04e9d5d0d2c0ee390597906d", - "0x42e8e9e3d4d6de275146369fa7c010a10979793276a4406bbfd77a543809e762", - "0xb2fef38ac3b58b498cdad7d195bdb3604ca0cfc0ca3c7282163636d3022def43", - "0x923269e9a526ddaa446a2e7acaea5189726ff77e664c20a341f6ad2f6b810d5f", - "0x02e876ba6df7c9ddd7a9ad9bbc15f5918b096e299260fc85a8c7ebaa71d7dde5", - "0x660442f393884c6c4b879168ab3c80c57318c6c62a67ba8df3788edf9ad7303f", - "0x37f7ab248fded056ae5ecde87bf51c1f4baea786fc7c9f5b6760ad13c90659ac", - "0x36fda244e2896e45d3a8a9ed67d7c09a2974c75944a7233f571928a497b55f8c", - "0x4914478536196c3c813fe151cdf37097c6dc9e8d5c0cf9b370fe7567905fc4be", - "0xcedb88613a1d6fbc24909963911efbc5ff56ba09377350b5e824123b50d1a910", - "0x236fe31e63e426111507b2f972547255bd12c6f5df9079953a8b8346179bba57", - "0x2f08e1b0ad4024814428237b4f0e7ca5a83257d25a1cb97f42db14307113916f", - "0x41e45a3a2239551e8cb9598fb855f3d8922386c2e004426e294d111a94856b92", - "0xd5d385b54446abfa8c78950aacae52edede3a7a65d9c7515043431a4498e4f85", - "0xf2d2eb5169760d81d16067b9453979783a2feea91dfa253baa3183f2419478b0", - "0xa5aac8d064c4f4cdfdd2c7f7326c1e0260aeb44be48b391616eb01fc6d30c95e", - "0xb2a298085b0a082fc1781aad1abd263e9cc2c5eeeaa70acd88e8bdfbc0be7d15", - "0xe2d19c438ddb9b96e77a9bc70566f49021bb6444569eea3cd039ecab4d61f73a", - "0xa8549fc117d3faba2ca53efb94bbb37e9cb82bed8273e408da5ed47f5df7aab4", - "0x161c898240dd6e0a0a1f1f5948c652a796bb6586995783a35e7ed6c3c02fb82b", - "0x57214b17853934f1a548a7e9942849a04b9220f5b783a9d2be7395108bdc12e7", - "0x7902ef6c69f5d0a3de1e45d8b46aebcf35aa87cc5f4644186f1c34614a429175", - "0xc290a119f495ff04f406c28461e2de50abf92743b7fdd680048e491044fc59b7", - "0x09bf0fa4aa8b65dcc8f937e46287eb2585c85c587b425f8a0af69d02948f35d9", - "0xff20130699483dee0caacca392c2ad58738f61ea2443869616a3bf006e0cd1ad", - "0x937c629f7307f7411a4b1cc5b92f6a1f1f42f716463f15c449c681d16525996f", - "0x7cd028f48f117d8da3d537f0bb0fb0c832d3111d16fc116bd06454ddd513a095", - "0x4bf15bb783cf917375b5494e00ce003d8da01c65fcbac40d44e62a6172f2cca8", - "0xaff5ceacf024e9146631c772e4e87f223a241e789c88ae083da716c9aa47b860", - "0x68c1db9a727678d2018ec98d0bbc369faec2fb1283b479abd5d6f2b1b04036aa", - "0xe70962a032b4cb81910cea9911eef50ede2eeaa6f487f1e9f8fbf88f133249b1", - "0x1bc2bd4440a1412fbf582d167e0d08629ad2bfe0bc0dfaeb5eb7730a4baf007c", - "0x2d4cbafea30b01e466b41f6911deae979f4f5c82dcbdd76f711f7bf9300c23f4", - "0x252e39a51862ebaf28d9b38f9fb842c70b5bf0669ca008b4c83c542e5236a1af", - "0xba04c89c7ec2867d778f8632e7f51e11f06e56004520444ca922eabdab623473", - "0x74b8dc3bf589a6d9051fbed9af3021e8fb775eab0f457cfd5d38b2ec8f88a24c", - "0x8c0a98cd1665f50b702b44e10dfbfaa70f08b65ede72e39306b1d31b75c07afb", - "0xa38c3526f5f6bce7e64a195cf8659160bc7318b8862ba206535626c338485c64", - "0x4ad34e3c6be8cac9be3fba22eb7e99d951baf5827df5ef921f2b01d63862e116", - "0x596670c729beb030c8756bf2ec6c884f9b4edc433a94f5dc5d4d337dbb712d76", - "0x39611d27f11938df810165987ee7edbe87cfb7e4068216cbb45848b4029f8419" - ] - }, "accounts": { "0x0000000000000000000000000000000000000001": { "balance": "0x1", diff --git a/ethcore/res/ethereum/morden.json b/ethcore/res/ethereum/morden.json index 5db2a4c04..f1d87f865 100644 --- a/ethcore/res/ethereum/morden.json +++ b/ethcore/res/ethereum/morden.json @@ -132,1951 +132,5 @@ } }, "102e61f5d8f9bc71d0ad4a084df4e65e05ce0e1c": { "balance": "1606938044258990275541962092341162602522202993782792835301376", "nonce": "1048576" } - }, - "hardcodedSync": { - "header": "f901faa0542ffdc248bf2c071b74d84e73ae9a2b8bd11bd6d202430d0f204cd88cb3aa76a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d493479497b4ec458abf3a8f88a206ca43c8d9a6934f6f11a06d11abe2a71059fa61264bbbe9a34b1f5be8fb4ada52a705637f8f110236f1dfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000833b7d7e833ca0018347e7c480845c9d6a1480a0845d9ab9164c875ceece68e674bd2369b9f9eb7916ea1e23f439f2b3a6904939880dc60854f15ab6a3", - "totalDifficulty": "557317515715884", - "CHTs": [ - "0xc807dd41b69a19ac6c380c2a0b4823c3878ed073b43cd978e2a77a64df7f3ae2", - "0xe5f9137adaf6d6d8566cf206c012248bf24591578436d990789adebbbf57cbad", - "0x23a3c9bcf4eedd6c0c515aec8c30cf1cf769c829a30ea31d267b07b5e199a7f2", - "0x6ba3c43460794f494efd505fea3a2e519513f199ea9148c9e2d106ce42041128", - "0xa9266cf07f4bc9cc436829752e4ff0581d7a6f811d136d0a43a213eadafd6213", - "0x9f9668d12083d72e1309f0ea9643f721ad8363464ea8b82c97a10f46f455c281", - "0xe65d639f27dc2a1c3942e6685618699f1d6bc880fe027887f62028a6baf4aae9", - "0x102089b9a2c7a1d7954cb550403ec61da257fdc244d43c10d3ae0071dd9a8b8d", - "0x05b953b7920f1ab12d8da8dc4b885ea506bf6de0a1da696415c7e181c9b4b4ee", - "0x811a33e154c19dc735c6a88f59860b33f0022d453d8073ab50437368eaf95654", - "0x33123d65bf01fae8cd8ee499737deb366bf22805e3ebf0bd085bf2e8a6839676", - "0xb5f7aed6d5a438494df68b4e408fdc11beb8aeaa116241d08ec59a0675f547f7", - "0xa342b40b1d75f398d9973a5233e5073a8d0ed46c3ce56390d37abf3856716c58", - "0xf596fe04fa052d40c3f163e895a271b84d33f5433ae3756d0eb3c4e3f736afec", - "0xbf740fe291640e5efa787aaf5f6e5c1e785549f64e82fc63a5f286c71fa2416c", - "0x40800be2869e05982f1bcb20e7e69e671b9983201993c731d9719446384dc8a9", - "0xa2e55c78e611d6f8b66090b7b5d503624a3283c3ec8d2c44f0f303fa60565371", - "0x259a40837fa15a1ff862c673efe47e8cc6d3357d629a3ed541877ca53a23df4c", - "0x8720da23454e67059c90d4d17e5f593c81c7f39fd03fab1450a6f37d7422f3f8", - "0x0ce848313e625f8dc5c47cfb6a724d2c1a31d93c73a50e249fc05cb8e9ed037b", - "0xfcfe0c8034e349e97371f7212868b2accb215c5af01588951404cf72eb22baf7", - "0xe755886383ea0cc4d91adf37a307bf4e1cda6dac9beae697016799df4c555c25", - "0x163968f7d35ac07bab096aeee286446b69a4f73d5adb3f86e0159f0b1ea96697", - "0x4a470e0bbf6eb96388d6e737ae12acfca3e43189a83dba465e58ebe9149eeaaf", - "0x1888c221c04b7aa45a9861f1de385830f6a571e1582c10ce77974fad24e81212", - "0x854e426e6cbaa0ff1607fd5fbc0a66359886e2dbaea606440e1d914f460f5e99", - "0xafe3c2e3d8dd08fbcacc2e4111dcd5673a7fede0e4dceac6b0e31947cf425932", - "0xef40d19cc969283d769845f483c76cdacfb70d9d546281d2febef109fe4a844b", - "0x8729785f16e26626dea3a212059bfceb66f0d5e6a188888013817bfb246cc152", - "0xa66ec51b44a6b7f8fc6b2347e1f4ef93a7edf1cec752693e237e3c6ed853a4bc", - "0xfb2720906e0da3d302881963289954200c6dd2578800c712ef2db702fb2b1810", - "0x030ddc8f72c3070b7c7303c71138bf4fb1b638b1ff54aea16a304682bbbf5267", - "0x7892407bc680352974e4c64722e3be4d3a88dd73275d3176ab00e8b7bc427753", - "0x991e25dadfb80022c044cfcddc5bb814ccc6b7ba46efbee757236e467f8dfe57", - "0x37d1d97d1a440b6534d8e7f8997b3993e804a384b18db0fd1142fd2ddec9ff8a", - "0xccce382a99c1fa1062468b9a1f444854bddb36391536ad87a433c148bf908cee", - "0xfbc43e9f5a631c12c7fc73813be957dbdd2e91a33d8f6c928f026464e8a710ec", - "0x152c55912b4a751800117c2d628cda1ef651470d9236388c7974a6ef7653129d", - "0xacb187f272f5eeb3ee36d3f7d0f4b6f9fdc3f4cb701984ffd4023f9fcb2dc9ac", - "0x79b52e935e6838d3ab159aa7454c15431a63b09d554c6650c058c7c014ac6001", - "0xdf2a1ae101b560ba5e34118a748a28cc5241c9a51b5c8343c0e8912904b82774", - "0x2c1ace44b890710096696cf715851b77392229644ac8dd6a3497b46ec383dbbf", - "0xdd2da6958538e572ac83dfdeee1714650a5065ea1fafc0f431539ff38616491a", - "0x599c359830f0cdf99989cdca29e96263b9b760ff3c33be905f4257c2e5301bd1", - "0xf96202d560e1b2161bcaa5f315e5b1e2eca93dd3d8072b3ccabbc8135dd12e9b", - "0x7d93ec83e59fd401c711df9026bd72a87bf343d799e1282afde6aa1b1a43cefa", - "0xb5a859b110f68ea54b38e93ab8ac2f0345b7fd067b08aa51d67c154c80312ad3", - "0x7cefd82fbbbe8dacf4c55871368b8b5eec505f60883a85640242f4ac4c5deecb", - "0xedfdaf2bdd69df02c1e8dbadb65712e0504eee5e5ff3fc0f539469710dd5a5a1", - "0x8ff0e0e4855c0890d71ba87386aa3d5f6478212e19613cf05b6bd067f5a0adc4", - "0x7830f4ee53e26ca607905bb9c127d6915cd7534854270acf1decdd45bfc82c90", - "0x6eac559c95bca27833457ca73be5d93fae6f30b75bfcc53610fde590eb251805", - "0x624112cd83afb5f5078de2d1523f69beb9bd21f8646472d8c87e9b282bfb9463", - "0x0fcf00311346ece9b518b3946c71ab18b4e0068b58daacb60ae44f7b7f9c6159", - "0x580dfc57fe900b2621048d7d689ecae98a567645601449d7d7c703bfc3f93e47", - "0xa1558a82f05714aa7afc11e8d0b964d6087a4454dcc218f85a4d4c34f1adc2a2", - "0x2a95556e84c7524fd21e8e7807100f52ea278e25f43f16530d4c4a3d98434bff", - "0xc9cfbdce22901b6a2a2890883daa122501dab5d6fce92f527d699a1c6bb21e73", - "0xd1b86b1c3af0fa51d068ab86c59bfa33e564454b31afa8e4e38d71af50744b49", - "0x731468089781f91a8851f7765ed37939bf6a128e1ec1519182bad053d28e6335", - "0xbe15dc806e540e017226c5c70293005b4897efe5fa2fc250458c69158977053e", - "0x47b02ef97cfae1cebb39c9d586243583566f7a8c1a94a7e0cee03b9f69852397", - "0x630012d012d1401ccc0d0fb2e00b3cf5ecde470bffce52f93c55db24fc8aad50", - "0x462eb1e05f12c8509051c0a49a62eded4aaea9ac3e6971a1e938eb205db4e235", - "0x771bf93a1c5b137c4ac01300cbea8bd784eca03c19669eb107c2e6d52884bee4", - "0x118f4942e1a52a92e034c63fd99ff027e3669fc31967e8faaf6ea293e0b8709c", - "0x20db323c06beca205a373f294b05f299fb60861b7e86b61e20e298acba3fca65", - "0xce32378b733330dafce88de5b97c64ecefa43bdb0aa81b29b29bab6fe275650c", - "0xbbac315984167276c7116f7704589fed29fc34d63d188563ff7c8110bd6e97e1", - "0x5d40637104a9bb5524e2b3ef41d37e2634a2cf894732353a6fe04432c09bd762", - "0xb9a69a32753eb0ecd5e259e64c3953533efb8b8fe164b973a16c77a9e6146114", - "0x4aa4df7a0849f424c5975c28fa0b5b449eca26022a7d6fe65620c1d93bec9820", - "0xf099fcf9f8108254dd60531362341e641c4c150a3848373c82932bc1d51925b2", - "0xc603041029c1d86644ad750208997d2c72c061fac7fa4af0bce0701275295a0e", - "0x15d16b41757f81830c23faf58c499cd09497a474f46c5ae511aeb45aa48bdc3f", - "0x964a3f4efeab9fcf290566afa41e210276c1db10a0b1155f4615974e575c09de", - "0xe5fc4556103e0aac0047784ad3eb75c4c4c5561834b3e60692828c1f98d4253b", - "0x46927e7b6a30ccf6abc8f1ac967743dad7af1b6002cb408ec04f92d1666dd5e8", - "0xac4ef88238077f309c4d487f8b7347b768074b54bdc32b9d86dc4d884fdc3bac", - "0x41116a0be7226adf1968baaa3b5b58267eb228019cad151397ab0bf98954109d", - "0x7e7e9d375928de3025a59d90da01d7e0225a9cfd9296f219ac25218596725acf", - "0xb7a35780b22190c0c17e43e8287440e4975d380421160e75fea99cceae2330c5", - "0xe38c7f40a3a760425d6f27183c4ce827313503a126d0a6385c5e41e83b3dba2c", - "0xe431d175d47cd897c227a1657cdc89811984f95b94993bb61ec54d9c7b23f8d5", - "0x4f47b0e4c5443c11a7862ce98367cadd11b042a4991c9f1bbda88d29f3ac8569", - "0x19e6f17eb87ca400b3aa7a5f3b28d8dd0062b858fdcd9ffaaed1bcad9e378e51", - "0xd1144f5c397c11ce4bada4394881046a5be59d2160d1e6c4ad231b7582fce79c", - "0x01b05affa98baf640abf73b370a2730758f492eb2e639134523ebb4b0d4d9c27", - "0x009ee372593740561b641c5d8a84b0e65d88677c85623b4d331b87cdc9b95394", - "0xe0869946fe60ec13ad38d8d20b8e3a4cae09eeb023aeec2ccea4635a92359cdb", - "0x1f5a36ce048ca23f44ccc485ef9497e5c990c3e9db0ce4dd5a7b8ae334629504", - "0xbee0980f08ce37a634a4423cda8d50c4cd1fbacc093565c14e3a24a35632ed2e", - "0xac61b0e93d7fc80f1fd21b13d27825e44373c413eea519b57ecf203c0f028bc5", - "0x53a90ce7fa7dbedbc8e840fe2d405415539aff25fca430314736e50c6f9ee984", - "0x81064e012d19da85422f9fc09cf9bf1e716dfccc51286974d25b2f8ab6d31fd3", - "0x66fb9aebbb257df30adfdf66aa63c7e3c1daea27d4ef563d97743da88863a86e", - "0x5a7b6908f93ef5c779a4ece2232f84a4803359b40c851f53cc949b8ccca22c8c", - "0x5ca0093f965d120ede845e1c53e9eea3e0aba705fe3351245250bdabec550aca", - "0xfccb96ec021b946ab6d957df39288e58bd7d0f965f731ed9ddc634134d831aea", - "0x1ac0a3e2bde62f28e81edcb8586677ecad77108ac3186dc9ac695a1ece429e2f", - "0x2baec4e11e355f77599f6b5e51d43cd21ada652cc38147073d246a54b8c74be5", - "0x349f045d2d0647b7728c48de3ec8c137b01e5ec2180c97633fce75665847032f", - "0x5f072dbdff5e4fa6525fd7cba56fb3f614bb67b5f0d3307de35d19ff9d22ee94", - "0x1117e7dd45312ad180d28c76c40385397a27d6572c34dbbd6a4f04918e6370e1", - "0x3ed396cc8c99b9784f21688ee6d960330b72dcc4014f920bcea28417b9e2b231", - "0x4c654a1dcbc0763b6e4ea6024e81fd7393bf4b921661fee3f2ec9080d7960b0a", - "0x6750fec450fee7f6b710db501098f7da59fe76e644940700f511648ba6580594", - "0xa539a7d3f460dda620fd08fe11b15bd1d7f93d5987fd05166eea95bb133608a1", - "0x9cce533ac9adf70b3c5de99f6d4c25b7493fc62ed4e086bc0cac5e78ae6b434e", - "0x196e7a933f28e4f70229e702198ee364ac095877bc255be915e468af637b2cd8", - "0x64adc83833fd478f41ec97f20691e6e0dfe66994e9341710a7ea6deb66739268", - "0x48c8fadb1a46fdf9f10a5ca6d8c1156879007d39dd4621eef2a3af50a971cabb", - "0x19c0b693193def13b28111fcf1fb06fc1a1268b40b49124fb606e69b497952de", - "0x6ffccde7aa6d1987680db26332077859cc42713d7b479b390601e9d382ed4970", - "0x4685c98bf99101061453e23a4994157ebf86780d73c65325f1f053471f4658ba", - "0xa8c0250d3c708b22c01bd468052afe784628d8fa39c12836a872d144f03d500e", - "0x60c76dd584982a3f05b715a6c90f9c1e9ef46d2827e97940e1b67feb011bd5cc", - "0x0f5a92f5573ce6f4be3ae58ee5e9131cc45f4794480a4974ee80ea50ea2a2dae", - "0x2495bf976e3877303dc3647cdd2ae47cba05b82a6069b7721a6e6a731054315a", - "0x16a120253b7c4f074bbfc659ad65af3534aa86217e133f2678fa503485b61fe2", - "0x85181fbf375026def264b1ff000dcdfbd487be6d18aae3272f181d92c9f0337c", - "0x3c7181cf51f5e05aa1f4642e3b51811a94f1cf4a48f2ca661c15bf21937a0f91", - "0xf65a4c993a941a28ee135e56aff76a9c1a65cd90b2e3bea8c52b97e322b2c6a3", - "0x2650635481a5ec0b92d46fccbc2b959759eb1506642244570d34d279720cf950", - "0xcf0415f4a01e2dc759b8c4df61c20d9b61e001326b9964cc08a24d1bcaba79a9", - "0x497626c7a99d2383832c282bb9276f9458989bb51dd2cb8beab19069f145325a", - "0x258105ceab92adcf7e1071085f4881963cc0cf98c28b5da174813e80b564acac", - "0xfc8e8f4d831f9176b13e214af17977495105128e55bd58886cb6b699ab0b82e8", - "0xf1fe70de2aa4bf8832839027edc5273b4e1c9b68557bc64b9dd41639b76f6da9", - "0x67b2609150cab4fdc60735dfd251f58e0ab4c37f4c5e06b742088b0299bbaef1", - "0x991be3047b87a9c7df5d14c8b994e225c18967ffd8f165fa0f11701ec9893bb5", - "0xa55540cd2b397abcd88733896795d3f36bbfdd1024d18ea7d08f5c29713de23b", - "0xc72955a6debdbb088a6588a5613bd2e329612e366ffbefb246244563c78e3a13", - "0xf2e8bf5f11b5d144fcb2e9c26dd1c4b7acbfaf7ea9221a4db35361275bc02d78", - "0xb61d47b97a001e07a63212bb473fa8486d1da002ee774d30fa03a704f575984b", - "0x373146b0da2d2269aefc099d0e1ad48acb1dfa018af540433abe1785fb84ad7a", - "0x55b5675e4a7418ef176fc57e339bbd438a73e9d07496ee3044aeb9c55001b176", - "0x758af96b4ba6fb256a7f30378dc0d46ca067e3e7cdab7ea3e974551d5b9aa2df", - "0xb37b1858153b6d2d2f914625067dee98501b768641e30f12e4596fb0a6603093", - "0xedffe2510bc146b7d1fbbb226b9fd3370f6b711b1cffc1f6951485be80ec2246", - "0x19985ecc6a8750b3326248776c85a4270e6d125718eab5d8d988a2b7c75606cc", - "0x48b5d00c0063db48b907c2a03ee9f33015c7c07ccc845caa7a158899b358b85d", - "0x99d95d31ec4d06281f0b08173851fe4ab50b5c787f2e6f9ce20466cb7121b31b", - "0xcc104b8bab53ee3753bace59a4ef59775e3665af65c728b301ca3fa5befcc1b5", - "0xa852c92b55f55c16a99f0d110d4ea7451a172a3be46745ab7d8fbc5eee9b9283", - "0x9b2b3660afa61c4e56a25b8cfca058102c2f2b16e97f9e26e80fe61d5af7fb8e", - "0xee87d114b2af91345deea4ee759c989e854b5456fc5b1c11ff4cfea40192f0de", - "0xdf865eb8ff849b25b12ad4aa19964baefdce7945ec032da2e3c1705a53f020d0", - "0xc367c8e3f196b16d93ac86459deda6ee469846072f2ea72e53c84f152d576ccc", - "0x60ce704c4addb76ddce1e3d81476e98e11bf2d2ef46087eda113d7e6edbd8f55", - "0x18c87d7573c19dc3f66dc3c9756c40573e66e59d15afa69b007fc51bdf0d357e", - "0x0b5b583d706437fb2cc549c39c802852cec9c50acaaff8c9151a20a6ca8d2ef0", - "0x0014b94a1acf7461b89b0506f30c26ebda6d319e5a6ee63751d320b3f4affcf5", - "0xb6ac380ff03a0a66a152437ed43434fa786d6d3c22335852f806f3943c3fe132", - "0xea8da8fed31e69e2698dc928b67b5353d35525f25dce1f6ae45865b9ce90169b", - "0xfe9e5bbdd55aff1c660ac89c54fcc0547abbd671b210ccf4af31b70404820884", - "0x7347c74c6be6312e284904e5b60115d5ff48a032777e91423d5356aa9d415a9c", - "0xadc1b5c371a79c723166c3ddae708b9eb788bfa6d04794bfab5553b43153c38a", - "0x32f150c20cc07e1ef70f305a3270f351bae9dc13b6e0d67c661de5412cf0db0e", - "0xd914de07ff853dbdaee5231be517ab681ed340e552458d640815c0e44da377aa", - "0x5a01f086ca42b793754187d98dfb333996a649852e51b48ba0eab1716fa6f224", - "0xe5ad5f6ddac1eb411bfb05d2ccd41d3d1743ad1c9cbb96738a9979399ee1dbd2", - "0x574517aadfc912986e188b0ff0818312fe9f016007f4a30759a92fdfa069a6ab", - "0xc46db2db2552e53f2fa6a169ce803bb18172cf20d5a36b872a5c4d9963c7d42b", - "0x8ad27ac3db4da1eac8d6415b5aebe303cfcd681950269f0d1ce57215788cfe23", - "0x2aa7a60b25904d1e968f0dbeab510c06355b052b80872ab07cc58d809b58ad15", - "0x3031132b43c9ff4b2c96dcf7c04b31d18b6e8bc2e0cba24e8fd786b02aa00fc5", - "0xe1fde8dc15e887c6423dc4b6ce04d6e18a65831b073836a921dfc04ee016b299", - "0x5dbad0a396f6cd16ada2369dc2d08ab6af60b7da48fb0f6c320a566927745f3b", - "0x4d5d4913791fb3d819ad4c45e9f0ecbe062d0198e25bc6b20bc695e931d35d86", - "0x8825cb707e721a61c4bfe7f80a83b2a734d8406146b11ffed638259da5f91dce", - "0x6c686743164839f169f94ae4c7f80298df5b9eefa955cd6615def97b5fe2375d", - "0x5afee77d12298cd027840f0c1a26ed057f6af4192c19eefc6df965cf502788c6", - "0xda9312700594f18fd5dfbc2782fb440d3b79073b31b58f85275aa907b25e0b98", - "0x94eb93407bea97e074f639256839e2b1e955fc36b1fad232b19b278dc89006c5", - "0x81f48cf3fd6183fdf5e109c5818392c8b23ec98cf22a8b330cec22802950bafb", - "0x7ba2755d9dd57bfa22feb05fb10ebd1a887d016d660083eeab1c447f5d2aaea4", - "0x770be40b4c51529a27ed6e34e4d7caa52e1cc4e645eef2a5597b566972eef290", - "0x4dd8f1711f834aa709485ea0be3f948cf4a32ac4157cd217262266ee282083eb", - "0x76d2d40a7ddf60cbcd63154570fef14ef41f60b6400347cd9e66f2be51fadcaf", - "0x2bb51be5bd7fe41a05fa9a719aeb4b26f0e624b5ca5e874723c88f8af34a8448", - "0xa62d0bdefa2428c6347e1575029824b1e6c985a5a8496d2b862850bfb038b55c", - "0x4afd8ffc47fa73d5f34752278974358d1979c62dd4d0ccffc65aa16a3a748764", - "0xdc2cd7b80144147d26f66e44a03b3fd81f88d8c92c967b056b12ed54a09c1bc4", - "0x2e08104188c24e988c719984149d16dc4aa90bac4339cb4c3390f6a7040bd122", - "0x5957803ea74ae2f332137a7283c87c9412e66ea0ac9f6d3512ece8761933d4ed", - "0x66ea33306be78fc4cac257e19ba5856ea60e171f359d2611916bb6c1a1e8f01d", - "0x6f1b23cb0739caac8cf2e9bb61a2c1d390f6032b8fd2cfd229def9319856703f", - "0xfac23cca5ffe9719b9e60549a88da5a2accbaf1a8848184882b2ce94f66ffde1", - "0xe8f6f317143515b3fee7802be18866e8b33e8939f0c4899ac69c84dd484168cc", - "0x450bda8ac1c25a5e864e7a4dd3c0bf7ef9b4672b7bd886b4449dd6a9c2520d5d", - "0xe54ee7a1a9f089c66895c681a6876187dc3995e2299e17112a6d60295e1c8812", - "0x23d7c3d49ebb33312168eefb03ffe680a6eb969b719c573bcbca5ace4fadd182", - "0x961abd32c2fb7fde7054ee5232cbd485de5f83c427b36802f27b2efad7817d7b", - "0x98d83a56dfbf64cfffbdf1d631d0df7a4d2036a629d36794f9bbfeb106d94b09", - "0x7e06ea4d5059d55dfe9df764004261f907d08ce4043e6af73f09561974d57169", - "0xdb208e24e9f6193ca94486801ab570f7cbf8844803609ba03f7c4524aa92a38c", - "0x663f20eacbe6847073b04e7b2d98e820bd85cf29370d71c8c3573d0764360861", - "0x7bb39b75c462f7812f1a458dd06db76362bfd10d27425eec78a88228a48f1805", - "0xcf07ca736e96ab42264abc426229019165a3ee4ce8eeb2558ff8a086aec30918", - "0xafdc6af1dc2f93556a4aad36d0695dc2e1ec84d5dfe928c66d55df7270d5be4b", - "0x4f9172ef6b6fb4fc08c8b4878bda85bc58ed557b18aa3a3aaae449c773c1bf04", - "0x81ffe0561836f05fabf77b79e2aed4941d90d0910451c3863caa5ff3451b941a", - "0x112490bb941dcdc267ef27e3dcac89fe2690947575df1e53657577af72e6fead", - "0xde4a0bc4ded2a7d6a181ecdd9cf064858293bc313a84c2b33f51d42d7fa9d96c", - "0x25364f970061fce0d3b481cb97fd386a6c6e7b978e40015cc8357cb4b3e6f89c", - "0x524eca86148baee8391217d99caa2a644e5aaee2591fb90962ce2a34e7bbab36", - "0x56e971166db8d020b247c33a5ad59f713e1241808a2441c47ebd6bf5189f01a7", - "0x13e761f3f512358b4963547418ccec496b1205347cd3ebe2a510ab18f7cf2115", - "0x45bc998da3b99baebae0fcf5703f1ef5884fa0d049bafd51d1a491a762c80193", - "0x6727277814838b616dc4e78831cfefa4b9ff0026d2e7f52a33a8e7c99b5e0846", - "0x216e20d230f00e5b2c788f6073bb68c4a0afe5291d833350dc555259a8f37e0f", - "0xdf1cc61ea687ed6bf1bd576899003f08a13cc7b5e5ccfe08649887f866888973", - "0x9301d182de849055c299983a7c99a59166460e37637fc227ee038380dca42680", - "0xdb0fd7bc019418c8426879d453f6e72c38305091cb7306a8f503c6461b72aeeb", - "0x4a8183ad7c2a0301b5ea7c6554476e9d7747dd8931330b8b7841394b8178018e", - "0xe1014a500104e29335b7d5a423cf2504b6d2e4fb313021ef8d4051d07f612cff", - "0x823de414bae4688460c5697d22d3b95a882b74c29a14f0565c54ec61e1449b69", - "0x80f8e29216dffab2e4350de36925b60895cdb6968e497db432e12026d6cd56e9", - "0x900673ec8035f93ad51b3ae2e3ebb26d09c50a6a7f5436fc95e5ebfa6ad16d37", - "0x7073bb4f9dfa46161d314a87a6d77c661ff1bbb507fbf4030a461625fba06d32", - "0x397feec1f80c15e2364c776d69d78fcbca750bd19fb4c30cfcdc1b361caa659c", - "0xa881765daf0b5dbf10c34832cdbad13f5cacb9812514241b443d26dfba8bc448", - "0x9e0b130bed0a59e804c4c380665757ffcd0ee6e300a1b17639afd55f6cde9e16", - "0xa3e0f7e5e174fff98c24d3f31ecff842443178ca09234029bd5d0549694bb4f1", - "0x887201dd3dda8405c4a29fc49a3ba22a3ee26f227b4a8079e7c839dcb014cadb", - "0x20604a57bf1bcaa1ba7885135efde3fb4e8b118c85c6448a2f9fbddab44bdfae", - "0x4f9a6712963d57774c919b82b8ba48026dc61c01b94b77668829b5ccde82f2ec", - "0xd9e91f925e3eb83f8361c37e03aa0aa60641e5a5f9b01f92fcfab199b6493ddb", - "0x339bfe6603d8e2f0bf2c8fa925ed97a41f589653268aab0f494b79fb5092562d", - "0x2e927b1510753f5a83d707cf89d3b62e1e5ef7433d4e0b194863ff27125861e7", - "0xb177f311494d3d52e4161f072d24ede73d0c18256ac43a8ee5db30c525245fad", - "0xf873b085f8a42bdf1508b478aea9106cdb4f27f347ec997c4cdd5664c35e0e78", - "0xd80fd167784537b68ff33e2e6423b6b9647d82af112a5299c21da4d5b8e6d20d", - "0x34ca5d08b8d391778cac1d821fa1d6e94989ada35c2c52b691eeb0e8183d8552", - "0xbf80f2a0081854b4d2d0b91dcdd199741b92167dc0f5581cba76a7fe52b96150", - "0xdabf29b0fff0d327a111e17eec9160b178f6898650e45829c0c3afba6dcdbf02", - "0x025dfabea1e942dbafd9b0ad5f0b6982fb52315acfcf1270141f924575124609", - "0xff960681061cb1590f38af8a44b6597394687f780d3ce0afc9cf4203926cca6c", - "0x72ef02bcdbd5c43463104f0b2f22750556b0c73e862c89d1750baceae6e47d5f", - "0x1e4cad2aed7ee0951c21015d12919a51142ce902ec15b08f457ca5f962099b10", - "0x8aa5bb7bd5cf82a5696f523e16aeb4f9b48aa22d252b8338b403bd0b19b3de37", - "0x5762ad980b237f1a70fab5f6ce570f68eb1ba25caa87ef66e0f653b02e6bf808", - "0xb4121faa65ed4fc53f6f377e4da1a3c0f65848f0fc3363a6d66da7bcad514a30", - "0x67959aedb680f267d61dd647b88a6e177d5d84213f94ab4a071870a51df2d476", - "0x715647d7da67f6114f16ff0f6c9277a186cb4adcdbbe9e990a901118a84254ce", - "0x0cbdf473c4f3646c32f8c0002d7f993f7876f8c9086222d5a82c678eef60ce9c", - "0x551adbb1ce65205710014bf69a5a6bf5a98cc67f98e6df1efd22bcc1fa6d5d08", - "0x3bb1e51f43a2d13049d15492b8b78cea716f3d3f884d35ec65c72d24a6112c9d", - "0xbc91486359e3e62f22c39791afe7b2b4e09843d8a3ca301897684cb8d05988b8", - "0xb575d4642418c78e9f29f121e82886b23d7a061edd7bc6d762155a1bf34f552b", - "0x3c4b2299588786594bce7d50e060d26725182e92f8de40a86dc18a4434ac292b", - "0xafa9cd14e23ec071c5a22e2d0ff21656c8cabb710578d31acb6cc8e1e3315ded", - "0x9f6a198a59246aa15d3b0573cc080d0ed31f5f41e1c4efe16ada8656fcc94c46", - "0x4667eb3aea65369ebdbfea2683e172295d6b28436e4a5c7fbefebd8e15a01fe3", - "0x89ec767b3b1e41da68ad53f11c5755e61a18a0d07fdf6d7d53cca6849087f135", - "0x2046d27b46d093c35eef24698d1fffc5e7532007a2279f646c7bde034402af71", - "0x8629705c85e0d6060906ced37a5be8fb7b5ac351eca5a1934f9a084a47fe7420", - "0x42f465868c164eebdc6efd395ef39936aaa9e65e753850e6d2c2cde9837e1647", - "0x766d160e4d26eba8675552a90dff4f63ab598e1955bbe0ba1a5963f2a524b090", - "0xd05c5c90fa9bc35c43f2a6ab9f5cffa6f9bc2557f9019cc2e9c8aae269041fa5", - "0xc1a11fd05c80a1c9512ce10c89ede225405ac58321f63a9d1335261454dc0036", - "0x05092398d5beed07cf2744b91561083dab7040b09d3b3bf64d2b68ea0d4a817b", - "0x7fa4113fc5be42a29c84e7665fd3d18c06ecd482d645a7556e2f5bfce25754a4", - "0x06e59dcfd141ed7be88b602f2ebe9efa4091c80de4353500b21d597e26f22caa", - "0x03da4109fcc40e21edc20001b619da6184d64eddb1b3fc91d2a2ab6ecf74bab3", - "0x64ca02e31ca8df66861511a9a20f4297bda741972ffc636f6187fdf7f09fcf17", - "0x7c561edead7f97f117f9d7b556fb5dea0c4d8ec5bc79897328c4acfe069b73a3", - "0x64b7d9a23879a3fd86d561ccc911791c2f0d5616ef0c0cffd33ccde84c5b7da6", - "0x083fec3acb799318048eed14ed35a85cf45010c70e482fd99749ae25c1d0b782", - "0xe9529f45f938dd2576195d7d2798cca2eb5df1f31e0f72a4645393b641e77a1b", - "0x47f289d3467b967a0f8034098efb542172420e00cc29e1552cba377597916969", - "0xf4416df2dd30effcbeb3b80bd035a4236a0a5cb85eeebd861ff1d58d699eda50", - "0xa3fec237960e77871219fc08473c948ce4c0f9ac61ad80ea2bed7996f9507d69", - "0x6f3d597bbdc64c01d432bea19b720e72a705f843a5f1eb8330d7115b55e60f71", - "0xf67e1f41826290d68f6b0e900be97212ab334280112dd5e9f848db18ac3b9271", - "0xf0230633f08dca03a3647c4f6ed4f093df94d7fbe59b51609460a6b466837bf1", - "0x0484bc99cd286afe2d3e33f30f0e6887bdd3c314a5e81e844f21940ecfb1ff9b", - "0x8ce05e8d880ab3498a7de438eae5f6080b048b3e9b9f5a23c111c1db7ed9ed83", - "0x5a0109a7920d888d4cbb0431eb0b34ed1fa1e2681ede169ebc845252c4aebe14", - "0x7f28a7a93453c7aad30ef6b3b85f38ed40bfd4f7469a0a2f66055c60a3276281", - "0xf48b88a653ec5bc25bd78a14d038a517545f83b274a8b3cbf81102647e5482ba", - "0x55f6cdc8ac367916e81eaeb3e7255eba26a9c5495b6b1442ba30f1856f4ba85a", - "0x97120be21f046e4ebd57ceefd9f5e4583c33103017fadda5c05bc6e6f847eb14", - "0x8ce01af1b8f413b97c1aca65b18602bc48a84135b84c425ffade62535f6d177c", - "0x2ba45b460e684678f4e7605c4c912f2480ee9c2b17b7f75f018423951c2ce03f", - "0x932155dd74599a7896ee933838b632593175e350f8db1ee001c8c8b55d156630", - "0x9592f1f50289aa899f796c73c62583e758617ba66ce3ad2f5a1e3e4009ea0e44", - "0x68f2510fa98cb203caef5b5434d8ec4b5a63f7af17aee2eb83cedac637e162df", - "0x28dcca4c376df916bbed16d0e1d73c0568af5b08b4db3a86f108333638d61f76", - "0x980002c98d465e0011c438939c6a97b8b8182733da14ae198ea077a257f01eb2", - "0x7f280b8d3da47619e505063394c7e84beef045eca57c22a9ac71d2c0e4f9ff1a", - "0x6798250b993f3b9b83d30139a2d497f93fd825c1dc94fd57c10ef5c8818852c5", - "0xf5b978c4ff28deaf652b1ea3d7b7367cadc440baf440735a62b25adad4cb776e", - "0x74d37be2d2addd3839d9541111d72c98f09900305e891d94ea74879ac975851c", - "0xc77c2caf24dddd1204a856631c8dd2358e2c35bbd5732b53c1469fe91f975b82", - "0xcd6ab2ed9cb320e22fc345c58e23121efb68654810cee0dcadb265e06c3ff7bf", - "0x204b4e66ce38c8396f924799548aafc99d268694262207bb5fd5d45ebafdba17", - "0x3c67f0ee0d1125ee7ef93f0ac38bb14c490b4d85be9bedced7e4761cef9eb40d", - "0xdeef5f3116639ab746da2d6481b1d6ce75a80fcf9d495bcc863e4fadbb4d9de6", - "0x30570d79646a5cc3a81c10976b310892030d339b679b56f453d78bee39a70b7a", - "0x4c5faab35c94e41bc9e1d19984d184e396483d98ca546fd700abb5b332df9412", - "0x1f3e674220a9274313dd76dfe3a84777e04051a9dfb8d87799da979739561d18", - "0xf74999202a6e5120d01c97e857bd8aff0f36f1946b57f6b63e9766fda3b87724", - "0xae65d50f5ff120b96489289d97952d46a3697a00424b309bc3840dee2c9aecf6", - "0xfbda361f2512dc8e64dc15a3253c5242a2ff8cea29e435da91bcd3b2c6d979c8", - "0x7e9bd0797f03dc6d6e0c5d0493968883488efb507844ce749de8101de40c0b21", - "0xc60a8ba7bda89df7e936559df5067e6d1c7924962e6abfab40c708b0174d2264", - "0x8d5700d40e1f396af84d673852afe843090f573fe874b602cf5815fd011ee501", - "0xa05a1aa13f640a250df26e37d48ee70e5216f9224fbb541e6d4b2f4858c76f71", - "0x2ad9058a64d93621095801ce8272d2208e90e71a1a0b38dc24f71123fda8d8f6", - "0x40c96a4cc194d009b6609b154fbe63a833cc702dc2fff5b837e5eb6c88c7e005", - "0xa2c233b6964e1625a43ab70f1837543e5b3868dbc0fdb4732ecf8a4155d29d79", - "0xcd627d5278f9400834eb48b54f331a74734846497d86acc348e02a41d513b201", - "0xb34b79d45abf13ca51f88f7d7f144a260a44308390573eb2b8dd292b70b02e77", - "0xb8986ff28901817523ad8d796dadf9e5284257fb34709a98d5a3e5738dfe4379", - "0xb096d14fff72a2c833b112281f5f52ac5dbb4d48f2245570a81b85b140f40948", - "0x3818f5b06bc70eef065d7d481f80c97c6806c4207e600c63c663c1da210d8be9", - "0x7e3090a67933b2f83e6152fb75178f79e26f82ad07c4358ae463414a0b02780e", - "0x21aa5f90daa5ad68746f55e7f2510459ef32760867fece3f0224d65b3258afac", - "0x377b4d870eaf1d610e9eda269e4eb85382f527ac683e5ab53d04b3b0caef05fa", - "0xe6b2742b454708e3db3dbff642643e5159931a211a999ce57cc633e6c4d8da93", - "0x39ef67462038d2e25a9146727ead5ba921e9080e2c999a67ebce9d724893fae1", - "0xfc86a21f2f521f6d20e57bd3af58f42cab41add721580831a3b3bbf3680c0ccc", - "0xa2f54cdf34b1c869f5b248b3ef849859971a23eccbfb94ae8acf4370cec11924", - "0x8900fc71a6af6e496b5ac6ddd94fcf9a0656a342362019e971c44038e867d3e4", - "0xd1c988a3136c1521f70a547eb40c9ef40eac2750b940a951afed3dff7789590f", - "0x39e49739745830f5d91649e8032d30e22e45265ff92676f7d50c9a2335e21d84", - "0xcc964177439b593bcdfee8bab03bbedb9036de7b856e6b7d43c95e055f2a8f45", - "0x76e4575fdeee92408341b576d00ba3de2bdb964de3630ba0d494d79093d74536", - "0x3915002188b2d3e81ecebf0e1406148f0b20aba94e78a5b68969cf62b10ee7f9", - "0xf18f968a8f3f6f926b88be7b62230c9ecf6d44420971331886b7cc3c6bc9074b", - "0xe605ec94dd9a2e7e2c214a49f8eac960b12862a6aa435ddb8b4c74288b343c95", - "0xe6500a2b86b56f1acdd1012440835cba227ac7841550f30415f83b0cad5e6b16", - "0x0c20a4fbf0c1c766560016cb42ddb2f30aa6f841d8962e98dc98b723c8729be4", - "0xdef58db01c902fb676f8c515b708dc4762c3151fb9d80724eb1f3a02573071d0", - "0x44f0d489aa086c5b6cf6d3198cee057f60dfd6baac0529fa9b9b49e15d6209e2", - "0x91d2cf4797ca2c817d38db0ade3de064f66760d4f0604f90e209f5cf1b541977", - "0x873666cca9e593788f770f7cfa928755dc706647466b4cebd0362079a13b41e5", - "0x992ed0a28457f993bf57ada40110f6ee947fa127348ff6d211bba26a0fb3696c", - "0xfbcb1fd57adc08ee435b077e17be9b087df6d0e71bf39060a0f620955c1dd07f", - "0x544771081accc2219221cf353e97ccada6aef8aa94048981a7d060a37899a932", - "0x768ad3e04bec129183a33fc136476e1130d9b167177c6de4849613ec220083f0", - "0x44b0a9afa8de7b437c6c199f0fcbf0aaf377c1b847c9e8c64be7f14cb3792b56", - "0x10b9c4a0da33edf3db0b0aa33f2ed1d1bdc08ef6d7bfb8e910fe0a74ce809efe", - "0x6831f98b09864abbeb1177d50bdddf12acccc7abbbe1af173982814ac04275db", - "0x3e0466a93aefe563285ea1b7b6fff1c64b274161cdb5a37542e888a0219677e7", - "0x01315c879852a7492c6eaba9819f843f60456a8e2fde0a9ee2cc5192b3a00b66", - "0x0ac3011320ca4cde5af849ef12dc87f318315681ecc0f303c62f29fc556a2490", - "0x91fc1434251b487ff854c41c65dfc5ab63d309c0d88dea41af268e0d7cbf5df3", - "0x59d8dc5031c170ae9042d44f1d7a0b95669a15edbfadeebeed0f290c2afaceee", - "0xf636e4550a81c8f1b7e318f15c85cb57149fb4bfe3b879fd45f809fd57ee7db7", - "0x68f9a9de0600d560c7693bc0728741751bbae831bf358ffc195d7c304d9b280f", - "0x6c1358206b4fffb9716a634a5804bb4fb9331bd2c356d0064054a9263804a400", - "0xe9bbe71942123394e1615bc1935f0ea7a7079c708234581a708c38d304a1f783", - "0x41511870cd7271c3e3b1bfcb3fa043a4db8ed6510543e35dd8d4ab588017f4a4", - "0xe90ae56748f84a0885a7362993155b47b4d0c5532d7862c6fa422e28f09b32a1", - "0x37e43842eea4ac64b65d94b5fa1ad7a2d6d16f5941c43586913f574d5998ed7a", - "0x1117f28caf34809d49a0b1ef2f890680116b44c76c9aa27efa0357885dc1f2dc", - "0x699f428493f3cc759565072dc237c01636e283b808f95842e2be46e45a58f3dd", - "0xc91f3d366051b95a6a5b3290b501e7e435ea967cf39df1ac94e8769a87744f34", - "0xe28d8d82d81fb59b445e16df7493a74d1540b43ce61692605bf0d5287af9418f", - "0x667313aa96fd2950367a671e5ac01e685fcca1fb45f325510d38fb2c622ab67f", - "0x48860cdb6aaaa321d2accbb8f1e9769e70dd6d4c29c8baf490f4f0e23c40dd05", - "0x3dd9f9705c4d72c2d69c90cf2fd68c0aa5d0cedefd7dc012e9b7f2231f3a0786", - "0xc7aa31f7bccc6ce532d673132cd980d51b00cbb2768c9846bb60dd6ecfb584b6", - "0x403229d6b2a73c367262bb93d02de563ead582921fc763b8fdf495fada77bd55", - "0xffcd7f454695bd9f3b89a460b1c98de5ba3a989888e2331c885896e49c19f64e", - "0x5f9091b21020642ba4c1027902906f7e6246c42392ef333f00990d62ed8cd008", - "0x2d7c6d6bcb42dcbb9a7868cf3c3df439ec18f28ea232a7aee34feed6cba38027", - "0xed6ad62ff36c517deab2f8a266eeccfb74548baa3b61ce4e6b6577628a9a0732", - "0x4f301038bb42b93f85eef264ffc59e8695265cddb4084c38ad08d9260ed99681", - "0xbd54f734c93e0c71128409dde4a423543b080b3e16c49bf61fd967b56b22d53f", - "0xa32f3f4e4763b4567b2613bf15c6999789213849588e756bc6165bbc9e58d072", - "0xa9398a4b294a26fc9cdbbcac4c32dc3a57a88a5f269b41bd49a0e696728f57a9", - "0x757e6d5b5b128b028599ca3ce3cf637aca013140864a382704fbd73f91ef1059", - "0x9d35eeb49fbb88ab329141001d211dc074223f992f7faa25453b31ad1686fe23", - "0x32fc286389aafda1f3911062dbb61841ba8b8943d221d553a97276aec4b18221", - "0x45f5f7330f02814ec0a491feef7accf09dfe0d4acf6295799894f793efc5082a", - "0x1063c89a6cf98b0ff44456df9925bc3877e96c3fd1811940d94fc0ee554d108a", - "0x2dd74888cffb6d854fa2acfc2f9780ba82a3fd849b3031d0a48bda091ae787d7", - "0xfc589908c8b621b7aa96b4c5675ebdf61ba09a2758dcfa8a8ed741edc1c0b946", - "0xdf8bf0a37b01ee0e2ff7b9e6a1186ba41b6a3cc1f2dbc776664b86df5159e8bc", - "0xd880db83f1091fb064ebc0143110e0de9b2471be1bf09d033e73f586203c789c", - "0x5dac7c9f4a5925292ed8fe41fec20063bf7a08046fcf31c7fc782119ffe422cf", - "0xbf3bf656c9170df01e9ffc1192ffbd0976a68c325767a6006245e7b885523a72", - "0xf56e3fc84c71743bb8955503ab1b5ff18b673b90982127524d98ad734323840d", - "0x393141d2b434845ca225588e2d94e5b082b425b9e627ab4417f11dedc1a3e3f1", - "0x4685ebaf81be0f1d89eff701f49d8436fe2f451e557d5635d199aeebbdb0e2ff", - "0xe1cfe4c9836cba7d13abc522cac6ae5513c396d8b46c7f61f8aa17da54205060", - "0x39b272decd976241df1fe242a2cb2a98f73d9a40ee3fd445b6830752174c4718", - "0xb656eb1cd8bd2c42b6ebe6231bd6d78556ad2424603eaba3f4740e7497483078", - "0x14ffcbc3d98ccae3ba2414c17f12a9a70365856729a6317a9c80e46575f89563", - "0x36ac3e640f31e48b5fffabdba7fd751fd803a1707b6ba7c587a7508b3b1b4231", - "0x1fa3f177431e20f569a2c10c79dce754eb8b7791baf5f2aa1a389c64c9f4c547", - "0xf7e53b29648da476b4df26086445adea1cbba0ebf2271461417bcf64bde0713b", - "0xd8a0a1781144535cba0e4b7e9ef72d439af344d6d13e9f31d35791e82aea57fd", - "0x730110ffac5fdcad1c3b82c00ba16e43eef88f3f4fd90eb5403922fe5bedff42", - "0x24cc38d4eb2b82fbfeaf2bf91bf7fa470a5ef49e344e75973418915fe218b42b", - "0x18f05c3a8f656c831d4e4f61100bb6619216770eb66775cb9ff9141849f9cb0a", - "0x0eabb089aa92365dd492fb0f81fdb2ff6f4575976154b1ead5d8b06ba5b4fafe", - "0xfa557813e8cba6fadbd410aaaa5d7e01a94c2eae756c7d064b8c19a26d5f8964", - "0xb424772a132e6a59b63715ea1e2689fcbc00b1d98368f530af840bef4ef72b7f", - "0xdc5738d415e77cd5a0ef5dd3d4a52f911b1e9dd4e386924e28b9b0b6dd7e6884", - "0xbb8596337aff09d46c4a5d6ee9bdfe369e41b2384a57f45b5a5151d4bf2be89e", - "0x882a79f76f1e876bfa8802c7e2305537f72aa1a7ca4ab34e09bdf28dac815776", - "0x6d3cc146b6db4257fd768280a58146bab3d6bbb6651c5bdfc12645d132afd904", - "0xecf827c44a85e1250ba58b311f1160007b29675570223ed5c642ce7f9b9a5cbb", - "0x64c58db8a9534ce75f56bba7f2fe704a4333d56641fc2eac3cb39217b3c10e76", - "0x2d3b0e05f4d190813b4dbec787f4a9bfb3b029c44bffdb193a1abb9577c8a9f8", - "0x514ecd87c88b6ee3b984d389b66ed5c96ee48f334fa5ddcd03c145f4e4d3dcce", - "0xe856f1c77b345793bbf9ebd77b812ce2f393d2993e8b735f1b1482a2b2425d13", - "0x05fcc98827976ee1d39a0d31e34e7d9239dbdf287159a07d0353c077e19e4350", - "0x7166e2b9120fae430512ba36205080875b12a5c0bd92ec1de24fff377d380cf5", - "0x67cd75d24ce797449761038f174c7b1aebad5e83a0e39179a011e0ba389f67c1", - "0x16769224b8cb92072bab6506514c78142f7bc02f8f87b00b65845d21b6bc5b19", - "0x0f915099c11b5d1a9fe07ad11f684a84c60bb78a4b1324d287a3440d1b043beb", - "0x07eb4a64b36b479ab579cd25a68da5091e63cc19b03b49e55da80f5cfd85df10", - "0xd7c98fd3e2f8290d670c96ff39df33df4a803f9f5f43e01d2f09a2bc13cab132", - "0x339a8c9604ea03a4ba70ba357c49af83bf845731d3f9c2ac52f8cf5fdad401bf", - "0x9dcfa65fe12ef7232d3d1c052ff4e5afaf115b7d4fa3eb09d07c684fb2cfabd7", - "0xe27eaab5c986d687f3f943d0b6b983e620494cba1e7e2148e7934bb5c4dd0869", - "0x5f6ed69c6633e088e922cfa705aed670a32f100afeab35130b38c323037697e5", - "0x2e3314c00a75e9f17471b393619b3d08ce276bf5de32a6231f7aa270030748ac", - "0xbc86dd6a1f7e07fc84340ecc774e3489571dc61e6c4423e64f148eca272ddf61", - "0x3761f5b746aa79e23ab83692589717ff225b03b02e668f5d51cd715570777f85", - "0xede23d7929b19affed9906d02bc39d519b228a19802b16a4ae9151426688ca05", - "0x6219acadecec83334f3c3ffec13c8a1715430f06f0e7a0039f5271aa334cfb49", - "0x28e09034b7e939e9f0cc236e66b2fac2070ce28837a8267e375cc76761fcfee8", - "0x0c4a9991804e019de882955447687a27117f8480eac60667989f641b6824f836", - "0x67160c6ecbe0913a51ddd163af202d3dfb9d4e826f2e7abcaebe57f9cef2d808", - "0xc9b590712145ac72c81a6e24ea96f1c5398fa8650955d25c9c102bb7ccd0ae1d", - "0x461c328503f928a03640021ea12980077317209ed4fc3d0c21b550316e8992d8", - "0x694f2afb90b35c87cfab511f9518160861a9ce1388f6b2d8900dcc887a943003", - "0x2399aa9e302c40a25d8154b8a7a884455a0a81f08b3b8228ffe6cf56919c2a3d", - "0x2faf9b05da0dcd0e712c95d7c8cde660b6a8dbf145106220a0a2f38919f2fd93", - "0x36fd9ff349ae7bff8945b90d5b4b3576a6b87624feea2153867b1bba89e0c1fc", - "0x024e47593d7509fc49e8c4d0717de52f7b63c702ee191c5ebc15a772a0325711", - "0x78954a4bcb0317e4147a8efff4abd7192bb941cd7278e397e1ed3c282fc54d9e", - "0x2735e04d281edbb1f0907e7565a36255028f8c4b084f0524ba9ff0cd5192a481", - "0x953b4e2340d04b1dd78771a65cd051b983ed8d8e870af85196135b2e10bee666", - "0x281655ac912af297ac13e4193163563c6c4181ebd3132a309aa8e9bc02758ad1", - "0xeeba9581563ada6481807a06b91beea20e05f191def9a31607e49296c6f994f6", - "0x2d4b2fd56623c139066a9d2ae72b728d5ce732eac2af2bfb834c03ce3b1cc752", - "0x0a6d56ba67da39811db01841dbdedf9d34e07bb954792151208670fc12c4c1a8", - "0xa4536f1f2ea3e046503373e88d9f8bcfb06f9f15a245ec73e6daddf1a9a2a025", - "0x28061410720a6908463d604e3375aee44f65a5882fd3f9bb05dda4291824f7a7", - "0x74c50d4fbedb21f96c21a9b1fcacdcdc4300155198a88f66333d843e8fd97cfb", - "0xef12f70d5f61d0cf33ae969ef303690b317a5622efb9ae2206f574ae53b4510a", - "0x00992e5fbc8a9963123e1c3a4cf8be6d1dc696480a3d130f1d6fb5c6612115b8", - "0xa104ba3752a76261008fe458d3214851903d3d6ee7b2eed5672815b8805b8511", - "0xe4da5ca2fdc5e2c8e0d6a93dfcde2e4273e1c837dc17dad1329fd57d0467e131", - "0xa1ccc561a0f5c87e5c36f3e98940f682bc1d5bc97615803ffc100189bbf3e906", - "0x95096f7f0b65d39e2f12a47281e046a31ab4bc01f402279c17aafd5f91a933b4", - "0x8f3cfeae59dde8f3b80f925fbdf104b99b43c661bb8b425d85953a6b63971a27", - "0x3b6544fbea14b28004b9a03a79688b86266e5e7714ea5ba27c8184dd0eff6916", - "0x8dddb96c7499b8e79410ca6b22f03d579c00446bbefa861e7121fb46b1644a7a", - "0x3cfe8d71fd57f392328d45a4fa4d6af05495fc45bd3efc943c35a59dd0feab97", - "0x9dff138167f92a5cb5e19d92545be2f6967e64faec4ce3d912261d13b0f77381", - "0x700a13c03623de6a15525b4b80ca7388305d4b526f0c52795935e02e6c899953", - "0x41d6d84b0af2d06e3c24798a4f430760a70adec3236accd6495e62c51b935602", - "0xa0d4b65158ca6876e04ead358ac8f262ec190cb20383f922fc56bd924f08a2f3", - "0x6fcd99bf39e3e02b159ea0f8f88af3e3d9106cab7ef3e0ca85aae1b7d65df2ab", - "0xbb3433e9eb7540ece7178ba2980221741563600e5203775c253625de9188bc18", - "0x52162680f1accd300e3cf145353a92259a67165072634c170285abe8aa146d14", - "0x4dbbbb9328a0ef70c7b94e7dc68a176078a744e4e37e1bf989aff3ad983f5751", - "0x0925afed938ddd0f2776cad39599d47f162859e5de58f1fc8144a01e14de394b", - "0x0b3ec75ffa53ee08e9ed403921c2ef6190777bed173a1645fdbd51ec3e17ca38", - "0x34e0993e94f3277e54d3497319ce1abddd09ba29a661eb3713bc1ecc07ffbc0b", - "0xb65467d4115d3b13075b298cd8e668c52ee976b776c99809e87fbd31ee945c18", - "0x642f85a0005debc3cac8549728ac17071e6fbfece30cf83e21a36bc36430acd0", - "0xd5991eb67e45b265ca67269dba2a17b56259406c309018e8494781e9a6384ac7", - "0x853d5cffc988d4a2a351f139a6ac36be440fb3a2ca81df18cc24ea842d004490", - "0x97900dca52f34da453abc39cbbe40edd6631381f0cae85f01afe9b66b649b260", - "0xb626879fd793990d2a7debbb0fd9cd4008ce353fd933395bc94555bad3563b7f", - "0xe287bff3e7de4a2ed9480a35d6ef5690abeb159663c2a166d338c4b757703cb4", - "0x2335cd471f8e16049e760f0233590a43f56940e45d6b38d21baf8db8658aab68", - "0xbee5e01c215dedc9a4531b73d6c2d8d71bccc390bcf34113dbda1d02cf3e790d", - "0xb2a661f1d7ddc11dc4b2dac43f1d88be575999ad25a4d7d7b181b11751eba19e", - "0xf18b71981cb3781230b8518216c324f706b13b1a871af74aed365c90f86cffad", - "0xce84447a3903e632751ba244999b7a61a403e92da74f07357523f1f067d48c26", - "0xbddb34858e366611a3e025cf6a357e891526972d408e1e080f3085decf603e67", - "0x7574828f83c1a7265aca08da6fc5d113cdd491fde3962a6c7dce44fb3352cafd", - "0x542527be1b6c42ceec8a75923d97b99416adc53c92a832f8e8e842d1027c9568", - "0xee384399858b14a3aae705182148a5aa513532d91a234d7c930330fde596d98f", - "0x618fd6df8a93242a489c5b630a4ce7e30a8af759536903f450329fda19596441", - "0x2c7129b3ebca24f916e6e252d71fb7d96666b1b55a9693e1bb30a8cc3327307e", - "0x1693e500ccc7a5005a8b52185014037b470bdf5fe112d90aa0e51db9eac80b28", - "0xf2cf8f47b5d3150e36815794f11a2ce96dc4fa4996d801e56e12cf7eab0aea48", - "0x088c123295156fd640dd0badcb95fc471044f0bc26d04aca7ba6fd7272b954c7", - "0x4403d7e8a25d39ea9c4bebb7775997065c90a3d4dbe0f5f2a4c7a53df79b164b", - "0xd0d82b3ae96c163b3a4617f69bdc9d4a9a65b90240675b85e35f91ca23d3b92a", - "0x0d284d21e9bfff443922dce492c3ae89fe99d9b27f9ceb4f894abde85d82a25d", - "0x5772ece7a44d81afff29b6bbba44bb30d4ff31b5fb5b7ad310b459eb48eb7473", - "0x15a33c4e5be3f9ff56b827de07e7614150d735409eff0bd9621aa04fe1d2d48c", - "0x84a218e73e539262c04d38f7b3bedb35e8cf08130dd46d91b7bf22a1c7f086bf", - "0xf7edd133a8830a2730a78659737973a324f455bf0cc1f9df4f7ae0d6eb67fcb0", - "0x6abb178f84769cec981c17606c3f2acdcbac76b8c7c21a1cb1ea5ed84a4e7bc5", - "0x538a4287396f9c38fe3c94ec45b38243f31211bc657cb753f6854297fa43911b", - "0x375bb5fde1e5169cd125a4c177dcab5ba60e41f2cda1c9b79c6e63f02ba235ef", - "0x4b72b6eed046c0f6295e55138f6733c322228d0874cf62030ad110dae30b0407", - "0x44794c2ebb781ac49e8693930da2aa2636fa683dc4c30927170b061b4385fe3d", - "0x0f9166e9ae260c9d6f950533649bc47a91ed78e57e358d2818b3cf8b66b413a0", - "0x2a25690b31702e586a4d1a21462d45a5a973d86ca6d545a41c35ac2efce48074", - "0xe9be0dd81c29721f6b8a35e4bb0fb8a1a8dd437a1932562407ffe727f3750834", - "0xab92028712829c8db7422fa7d93e8e6162ad820fb067e2a7ac1ee224f1cb54fd", - "0x2406f251b937c7236abdf78d7bc58c8f8f00beb689c9999669edd01558e9afc2", - "0x347201dd79965382f2ba90a230bbfc979cc35c37fbb5f21a4b8f384082434a43", - "0x94eed3164903b05cec96cc2d70f5ecceed69a7b1cbf2c2ff77a97042744b3c6a", - "0xfb8d2ddfaf7d81424ca748056c3997ad923e269bd2153169b297ecd02c74b113", - "0x8713d9cc0e3d9705bbfab9ee1f19a9f0df18c8157f6597dd53064ec05e873734", - "0xf4292118ad14c9a3644019696a3bd601589182215076426f6d12f9ce29f45424", - "0xb9fc592f9322030fe018ffbb80cf7ea0996970fa598be9abd6c97a2aed49fb37", - "0x5d9ac03a1a45cd56e7ec438b24ab98c52c7350cd5001af24c444dd451c4c77e8", - "0x6355e320e8310469b8e64784c2c1c13c939d61f55f53088b23634f9bff3a1d57", - "0x77ab799d4eb740269549f99235653da650d2457f95dd3b1cf95bf3855e517d5a", - "0xedc16c860af601fa7c6461f672ed82f8cc22749e53f084f98b08b0737f3b55b5", - "0xa217aaa12d7f566f29048848a586f5f43d787ea663a0e32eddcffa79769a39f7", - "0x1cda6f3902b67eb9681764ed2929c2d4ecb5e8d8b73e7d434557c56f2f2c4660", - "0xb654fbe4f8908c69911f2fa7fda440a015fdecc22c1eaf891d7125a5ae9cf0db", - "0x75dc3b61e81e8d7bd8665cb9ff254ac8efcbba3bbc0d406adbca9b68980cd52f", - "0x3752c044a4fd0d9721046f7bb68afdc920095cf7d107ebe8519b3b205b807b0c", - "0x680359cce41e959f611b5141ec02a42ba1b56041ed549fe3f7fb7c248b75322b", - "0x5342c1d8815e03ec965dcb702cad4a6b496e8000e07aaa737f2d6f02d4d979c8", - "0x52beae62a4d9cf632aea02c0bf7c3c9362fc0b1548cfdc2949edad071db77631", - "0x51555863ee848a88fa5c55af7fcafd5bed4c329207cf7983a6ba8d3e5b93de78", - "0xaac2cd4b648da07cabe53e355e50964604f65f0dcfed74df8ac5da4fbaab93ee", - "0x5124816feacb7422233640b7f2916e24c48cd5ce922046404af6cd517664b630", - "0x69837d6add2cffe312fe18c8a6bcd0244b3d1646fb5fc81cf25a15555e89d278", - "0xb18671100e02cf1d0280f04153e34d85c1bc79e9b18d464f4c840852cd2b7e96", - "0x464d0f22a9b071a24860815710deb7c724f63788ce1e69dfc5958426b7b43887", - "0x165e2391d76a02b3c15c2ba5d418598f9b6b43b9b62006583a1031e0dc1acb64", - "0x19e8655c389628902e2c1b0a143572da7287d0e7b1e30f61062f3d886a170144", - "0xb01f342e0fb810cdede0a82697c139671e88f9b542dc5e2df2e2715e11b9ab09", - "0x5b7c4bd8311a53ff3f56dc9f5a7b1e001b7c4a02188bc58e2d9d92203c211707", - "0xef874c2625b4abe006207e36af5ecd98a92098bcab4238b3e3275a92fb476b54", - "0xedc237012b0e6b3552e05f9360a49fadb1a174a74d7046218daf98da19d4f633", - "0xe5a7ca7180a946e7a8fb73e6f172914c82bd9571649f7ce17efd2cd96d89d875", - "0x4de22e8a3ee27deefb58f39c3d420cd6ef2c7d94b10394d0bb6ef7c7b347b6ba", - "0xc34745225c53661da2e6c6cc8a462be2741916917dc387d7eb6dac8a55063c37", - "0x562928f070776132a3b035c3860b1dcab90843f077336bd13ec7ca0e330b3ffb", - "0xa2673c9aa322bb6d2ab24d65934c7730585cb1613e4ab4e117f25849c88f0119", - "0x8c7b3edb36156e6d4e36a514b42d3cd074295a13f3f095a116ae5198acb64f69", - "0xafc6957c2f88c2bdfb63e89e83fde2167548f913e62297936e0cdbbe4200fd1e", - "0x075a81ff82b52704a862108bb2a4a1839b462e52c8562c1161cd56b00fb7f1f0", - "0xc9ce0f30ab9d986b6f1cad16a747224ac9566ac044dea341f29e0b0fc7a94504", - "0x7afbb952c21475725af2856f114277e2b76b8a0480f8272cb3be41cb514ba442", - "0x2c4f4fcc44f7e2a5892bc232f703ac03f8d4214c02c997ecb57cea861cc6b0f5", - "0xb909cfd7699a69da5342d1918d179fdd3747795392f2caf4619b3294217516ab", - "0x21a802b502b2d4265b9f4a736e5cfa5a7c9346c17b42b7161d45534cd39eb38d", - "0x72429dcbfd5a80324bfe744bca71edd4d71001ba7f7e37c717d84c05277fdece", - "0xf9d1266cbf5d78fbf7d36bf81fe0f4d6fdc39f6e3463c7e3bd334e703fc24b1d", - "0x910367ea4a43e9d466f93c73025dd99cb535bcb1ec551c9a2f5ba97bced399ed", - "0x74f5f129ddf7d2c306e55c2388eeeefb6f8b7e5f610a0006f649588d46f748f3", - "0x8f6d359b43e9d9a265a7c20bab54c6df0fa9c4f3d38cdb84537cc4b5b15acf30", - "0x97bd0d30c019aa3828ec283910fc420a58251837195245dd36352db4027bfe63", - "0xce920942f6bea6d1eb1817c480c6414d1409a63df38f141a3675968b8ad20769", - "0xa5d06dea02d06548aa83e8fb16a8741071a4353a60b9ba1ca530a51a7d945de2", - "0x60af9aca626191064847d505646c185266658e1f22b3eba2f407ea21eea69ab4", - "0x9207b93c6b728cc55dfa0dae22cb777e05da19e20199d40abedc926f0e510d79", - "0xe425b207ab396a9b546da766671bc8d304986c728a01d164e7661c5cd46713b0", - "0x2e207fe33286a8a9a47f40ee828162e74b60262733bf8e59b7f3b0ac1c35dc41", - "0xe72aba9e82b668caff99c2c8abcff3c7cf95f441eadc8f54b712d53cc256e41c", - "0xcc4987f0ed4e51f2f0be181808720ccbd89521b7797770393001d37df2d2d5fc", - "0xb6be663793329373d1007bd4b87d72f003e3bc6c405d729ce667d7d5a4730d33", - "0x90b961b68b506c048a3bb22fd906329e23b0e397f321c3ff55beb63726859778", - "0x86e0f5e1b9a03358bd5c9af44957f12054599d7c3ff54b1328e3658fdb9769f9", - "0xd4578ff34c20c7587703366d08db79df13eeb4222d6e4b59c8d19cfa2b30ea1b", - "0xf9f6f3e0290bdf5d3e61467ea4fb2ee5e7d398d69c3ad18f05ee983a694cbe4a", - "0xc3f71a9c233ecccb30db6d8dced87b1243ed9fb87095c528bda85c855bb8a315", - "0x0d31f22335d9f802c73c57477812974e3ba83bf66547bb2227e28c4b4db92ae3", - "0xe2ecb8549d9887fb377cbb921f44a4aea87d8951b21ec4f678b870edccebe6fd", - "0xce62c9fbce8b074c8c8da53b5aea8d47bdaf0318346bb5027ec4a37e02b43fc3", - "0xd3f0cc456ccd881bc4c9a8b777eb88c1eb0235f362f647eb413ba90433878ce2", - "0x26ed42fbdb81cf01c78345475504bb24933bcf227ec7135d95306218cf47865d", - "0x37aa161b3dfa8716f22f62bd132ee6d149312e079e43c60efa638a1a24ca6770", - "0xae8cc778b277a22245c3b3346b96995733219899228190ce912aec079b576077", - "0x246ad94e203f268d4f0a0f18b23c6fae5d1f43612b22bf8e981526c7bdfedbd7", - "0x466bd42fc5d96c92818771501b188660cb97e48f9d9f12cde6258a85a88890b0", - "0xeca775ea1a5e03baaf47c5bcd3b70c029c309812151e7298bd16080248365dd6", - "0x3d47dc150027f55c6c1810d7b86ec79390a7611771b959cc51fb02f5115742ae", - "0x3aa1f15ce5e5df5ce604fb6904b370bcf5ce9aba7187d73ca90d0a0995425aa1", - "0x4cb879eb362837a7423f051b426a8df627143dfb22c32ee73c969fd47fb9bb2c", - "0xed8ad7f8356fdc4943ad2da2e34bb45b4b874e2fec94b7c62b1c80b0d558010f", - "0x177d8d82d8be1c35db8608c61c478e72828901e405a5dd679b1fea6ed9f30eeb", - "0x3b895fb2e93e4a34df9688ad144bada044c76249842855f991912c1a281601b9", - "0xfa0b99e265454de96a05424e4f33e252297f99238d8db0a7ef82cbc9bca6272e", - "0x81f15f0ddab76af9dabe0d7baf8d14af2afc88332d76833453118ca9798041ae", - "0xe0fd68f5d09a2de8b00eca9295367f73f53e4cf8b890cf61b9178148bdef13ad", - "0xb5cfffd68192f9bf8e9dad4c26f8520883a1f8ece8da9c77326aeb8bee69daec", - "0x4b676f13ee697d50569b222d0bf9b17dcf37efc299ca7cfbffa1e67fe5237434", - "0x00f61c387fb1f436bda1d0ea9f29e107056593e6290582f3640c673de97dbfe5", - "0x2e982786a7951f28a99f8bac00ed2e778dfc2893e68f89000a60763b8a456278", - "0x13483c74333ee06b47d832d832e5f37eca6c4f736ef7b7aa199ea730bb9c670c", - "0x6b12d14476194ce0d9d279bd8c5f83d58be571144b7987b4a481dc8fa10e8e9f", - "0x4b732e2ba405ab706988a602378da042a0a7a6c81965974a1eae029f6e659064", - "0xb4383796f2772c11fc056e60b9a9ba4d23a05c7bda1b23082e7b7fe281f97ca3", - "0x1ad86ac7e2a91ecf27b202746fc8dd57f66e721d14c3cef8cabfaa66ea845a40", - "0xde67d8828e9f223bf8bce95e293c68d8c1678eb23cf7ad81a333914b5b9864b4", - "0xca00948f426ed34a756f36691f3b3b17368d5568296326c06894bdd358271f6b", - "0x1588b3dae135ebc9479b9236c08654175568425930fc3c08c0a3cec3d5390780", - "0xfa5581ab4a047ddf2e4e11897e8361e8ce24603e53228136c9eab918580afe97", - "0x0d3769ed93c991e5b78d4a6c76782f3356b1d24204815f649e6a8e853dc04472", - "0x8f1ecf593080524d701f4cda40f8f1f2704e3994948b32ddd222003609958af5", - "0xe0bd90aed7b8c294794adb61a94ca02fb9fab693771c2de1b0aef8790c75b185", - "0xb00d53d20179d5702f140623c913c5e42e09cbc36e571fb15b820f91539ec5d0", - "0x0bffe46166ec23ba7f066df0cf14179fb47c126beb8a83a0f1b5e06495ae9cc8", - "0x07e3dc084c4f702ac32dbe9db6ac078b19b9fbdfb2305d51d4da9e2d33c87d4d", - "0x5bea17dfd96f81ae273151545eeaac0402ee6007621fab42c74b92833d190e34", - "0x3f078eaf9025ab2f7759848b5c33b0ebb9aab95f028e0ae0f5085c73a3fdef26", - "0x2a6e8f2715be40302b7530e63d9de7ae64b81bd2b77b3d378c496c9d42d3511f", - "0x9b000c787f530038dffc5d69e15dcef0c39dee75289c32c9ae2f11139056fa45", - "0xb96dbaac29d6322da225208d61c756f63df4a7a9a2d41591a27f7ea1a7af4e78", - "0x4b20f795b7e7044361f319a0ba06389a9825a138a30c9e2cd5b25481f2b1331f", - "0xb90f6c8dd72b689af1d1f92de10de4ba48c10acc8d9921b50a872b4ca2fdc86b", - "0x09d51ca40d7ae1775bc1ebae767b7981f7a66c39f303d024793dd73f48a8c512", - "0x71fada2f87226f9cdb9554620d07b42f8279c40db9ab220737769b440e1ba50a", - "0xb52e3c9c0ced2ab02d5d4d7c4735ff444bc8f016ff9a8ce8bd9fbc0a27f783d7", - "0xeb49ef79318d9f7d7cac1ef41a82021b1f84f5bec0d1223d34bd0b067797bb25", - "0x78fb3c876e62793664cde7117b9268f443fbf1e23fae935f6e6e710e111098b5", - "0x3aaeb697dbdc34598493556cf9eb57e35b61e718fbc050cccab4bca362e89549", - "0xd75400305a5327eb5a0036c70e015a2d286f8814be35abce2d5cebd3402f587d", - "0xa362f91fba2627ba450aa041f02f4644ae2fc1c5a19cc02c63b01491fd650bfd", - "0x1fd2dbeb82034a11d5c14d0e376dddede1f8cc2aa660c6a2f57ede57e2c0d2fc", - "0x444e4ad03ac7305087566e07dad8b81046f293db32064afa64e31bd9b2268a21", - "0x7f7e7ce8b73c2a6f8e6a9d9bcf166c7cf67e2c04d9a2a5dbed89d271ebfb529a", - "0x4ef8be82e0bcce97ef82daa382af63539c3258fad8ab4e7c7f815d753a3efacf", - "0x1b0d1400ddf579ecda24a8b0c9adf346b51613febce9ed41f5dbe28e3dc3f544", - "0xf900a2c448235dcb11f46e05aa04f9214732a5770da9f6cf230462a644698a4b", - "0x8cf03541b11d9a0763160367c1fff20b72a377526bded7d3f1deb6c165a10cb7", - "0xd3f1c1b6ab0f0284e788182e1d6a8c7fa92525ed8621b84a2b45938d8d3fdcd5", - "0xf00edeec9fc8082272ba3996e6a2e3ae8835d6930e9625f20a599e579bc13eb8", - "0x971f80bb7cd7d81c0d719e69a908140438a0a3f04b44fd573afe70212e6d204b", - "0xd09d192e746b64f924dad1349488c563103b6a51f4e90438a69ee1d0ddf5a145", - "0x4a1446a3d4ef051a1ea3dc1e461179a2a3374b78c312209e32f62575ba2d3902", - "0x17f4a89d23160692755fc601893f501abd0528dc9adf0d62fd02e77f0c7c91b5", - "0xc122bc9dc4fea4352c119974d7de78b1f6e6a9372f7d0886798445432889c635", - "0x0027a25ffdb229b2681216719ccbcf770efe806655c906a7e7c025c9a855904c", - "0x4dbcfeff4e831313e911ace5367d855ac4b661a3af6c81a4039dbaae5883e8fc", - "0xde01cc015a926be23495402e93019c8647dee8a58dbe6a872107e41bc5c807d6", - "0xf53866c20b7e0fb124e50f21fca74072f33581b1330e106596339f775626eb75", - "0x474ef22e2b54d652719ed75c01d84546eab8ecd94df1c081539e0f7f04efc281", - "0xb655eea027d9c6ac99917dd0b0edbc38551aeff00e18df5189d3784b848ba9ca", - "0x4142871ec25245d2b8172d7e8965a21761f3c9841831b7aa0e039d6540046f77", - "0x4c31f0670a4ab4485d377baa440742393f648461b741696c9eca4d1b0f7f3e55", - "0xf47c0076e4ca3702f22856f7524c563a8efece0ce3062e0112b75d018a01552b", - "0xfa7c6eedd06a74bbba072b43ab37a86b836e6e60ab89b68ecd14ce9153f9d98d", - "0x2dbe33126365c2d5787fc4c095402b2353b84d818a867305aa323ba2fc06fcb2", - "0x31c5c6a750102bb70a45e88b5a42f34734c7b6945d5505e53cda29819d9d4b34", - "0xc94162d9b47606325c024de23f77df8abce2f5b797c9b11296af55df5720ac98", - "0x24a99f9791b2952dd6923033c68b2af947be8017a6a43ddb66e7974566533a55", - "0x0c7cae3072bac27cf58898d9cf027d3f3f662a144635b25e068135006925a244", - "0x2706bd0afceaae0cecaff80d91f5fcc023039d338e028d72142df40f5484c16d", - "0xeeca13bdc1c0f8fb83c839277efbf01e13bb27eb88b64fc137e876bc750c5e8a", - "0x1c16006c6abfb954121c52d04797ccf15a1ffa6df81d70088fcc7cdce14730bc", - "0xa8f70bb282ae54297c053fb0781f4de76d888d3f9b5144b4c6dbf40e40652c2c", - "0x5fae325f5e511c10bc6f084897665c0fbfd3ed319f2e2c2230a4563f5e22caf6", - "0x6c8c138b8aacaf293882b71eb3d15b5de6610ee192816be02b7a048bf57b0a37", - "0xc05764cdc3bdc40b0ab31f55863cbd8b7bb2206e49de9adcc05f52fa6fa98c24", - "0x38ec63286c922eed91e1049fb5bfbfdeca387fe8dba9f15cf6ebb3ffcb3c2a97", - "0x7214dc68ee2c70357ffc20a5074d1a952a4eadac92f87f0a0025d98a896afed8", - "0x8a723d4ddd08df26a6c0cd5755e03d2641448f0440e2dbfcaac5cff7a602e202", - "0x9567fb04ded1384f2ad1cde98ee4fc47e6c85adeec299952ffe48e8c788411e0", - "0x2db99612e0813b685b023f596c66f5a8835b76c54fd0fd8a4a4036266bc9fde7", - "0x6f1895f5f59a5065ba07f7ada8ad706d861b6414d2a0fb80f4ea1a437ce79af9", - "0x338f901d0024719b2fd7b74793770471e049f55cd421c021d8326a38700d4b06", - "0x56c0494b5617c4f8146014381cce5a7bf281774ff31e6d62b66aaac9488799bc", - "0x0c5365039c79856fccfdf5f7103ff2d9dfe63224d323009f364e61b716e8726b", - "0xf047dbeb0fe9062ac0339c104b8c05698a373cfacda540e760105da80d46c36d", - "0xe905e3beccd5ba7666f7a825927400e51fcb9271ef7a7df95f564181cfa98ac3", - "0x15fa4d3d0b5dfe1231edcdb9e2fce7b3af4f6616f6b36fa989864a3f9d928287", - "0x8f1f7b2ddeec2c7beb8b1991cbae9e160ab8b9955ad38727b4c54a841430ddc2", - "0x3cd200ea95174cb21d1b2f36f20e9a53528636925365dced2579fca38d5356c3", - "0x255fdc3224022b132381a13a678edc07300b8069fcd9f21c47d20fa53180ad4a", - "0x155fd13b7e4d8864d27ab0194a89dd23b63d17eb8b72aae64f6f7519f3c4101d", - "0x40f3a4e9436b85432633bc85ee8d84f40ae928d8f9ee8837478bd9f6e050d46f", - "0xe5abc38fbb49e4b3674dd42acae031dbb4bcf6874bf26ca0c7319fe2a519d81b", - "0x7cc31f9b707830adc72477ff2ab79ea168311d0916bf2754e13daf01d4813e30", - "0x19d333afa0cb54a5ee3745cf1156e2daacb6e8f65b03f464320d4d33077c5c06", - "0x38791f1a32f4028172dcdef9050ddf5e83f03604dc86dd8833b65d833e347ec4", - "0x53caec8dfaf64faf8ee9fb49b9d439a1839cfd2a114e3ea59e80e5c924b0973b", - "0x401faa9732506edebd8b33e35f5054a1ce443bcd3f2b2e2fc4d131851cee8433", - "0x24280a731445dba6180ff7c0e99982c967541e21b5e46dbcc52e75e10b198d52", - "0xa61fdad71e4fceba924a9879b2ceb789a5161e9fa75df55303156bcfdb66b79a", - "0x765cf16a2d32f2b63f0b418ee2a46a3b304466a57f6e190aafce53053b925246", - "0xf2bb839a01d78d92b65f9f10ae712ba4ae9fdc187e5f41cc165d3e1bf21d7a37", - "0xfcf2a12414334e043d436e0bb8a2b0e9a0c5e8d390bd0947f737a261d8e27e3c", - "0xb85aa727377d00d02551ebeee6ea4180c8ec32518b208750890aa5c3a7927d8f", - "0x2da1a4d44bb0ed50267a8f7988b5dc7d9a01b621e863990b5b5f2006a1980f9c", - "0x0f9ce379a089978484ba7f865dbd8224bba2cec1e3274e477faa3d098e861daf", - "0xe4dbc55e6939aff20fb0b052ff19a2098b7fa4b69379b8d72462a22a8ff00546", - "0xbebddeb98b2ff22f6677176b065eaef5846fb6b78d77c0ca14929a6a8db5df62", - "0x2028557352218dcbb7a6e019be318d57acde6df729af6c4db59af74a4606f253", - "0xda6f0ac6e72cf93bf863af1e9e80f1da1c48ffcef6d7caf0fbc59d16780f5cd3", - "0xc3bbb6df580ce3a65e4fe1c675dc252fa693f70361f7039eb889ee7566abee27", - "0x371c7ee758803a6858ffed0313e1f778cc1c05b421583984ead810bb4685bbd6", - "0x7fa797720e3f3fc8b0e29a3058b07fd30bce95705bdbf0a976362c1e0b3edf6c", - "0x7dc0a39d699c351a188e485e5dd1ff85c53bc8a91866b34078c15c304b989b35", - "0x999e2886bd5f6c7c32ddbc08470ccd1f4590cdc460a845a0ce6ef49354c9d207", - "0xb25308afe1d597488fe80a19a5d0ce2204a0d03f79eb301f69f778fb13dd0c34", - "0x767809b36c8dbac06bbf20bbbb7f289f55a053d67e6f36fa94218d3d97212623", - "0xfa7a7c8bc8bd8af5cc6c8aa0259a64187a7b78cd93de0ce14ec13df9b2141ce9", - "0xc11f585e553400d55c7a4c3e50f368e615ed5adc3c0e17b51e36a10ff780c395", - "0x8b12c9644197b3cd18543bf57473d48e76a9877dcd0430d1401e47be8cee2ead", - "0xed66cd26d319267898cbcabaa969a20a5f72012e9f9891f30f51b3deca75fda8", - "0xb5bb169c156368c3ef7af609fc0fc57fcc34cf33bdd55abc2805cffe5a6298f5", - "0x134fa3abd5a48083a735a1fdc3c261a56e9cc1a3c51fc889298463d040dfcbc0", - "0xb7009411f50f3c68b77424ffa4e1fbde8da1ea29ee7bbe60c35ee0bf281cf3af", - "0xe9c1cc94016e1c4fee612a5a84e1cfb267ad3613ee087549c2be29ede59883c1", - "0x9aee62d9e40adb47b5390467e2de8e26a412f2d23e7ce07be29e120e73107c86", - "0x560f92c67de947b45e68badb021a1a6db67aa40ab15a9c3d3af6caf077741c19", - "0xdb78ceb6ba758cb9519c04b48ee5f13aad1bf74e219c6793c62a2e66eb2ae486", - "0xf23ed67dbe442d5d0df10cdbc0d4f7081cc9deac7720a7245ab487df5c436b08", - "0x4963e648bb6d493050b48e5063c30c8eecda734b298ee1911b2d494fe200e853", - "0xf77b9ec5dcbebcb725001af466af4b51e6df0f56dd888955d8bf11ceb613acbc", - "0xfe1844dc936a73c836f70bd3ace2f71a1887679f86bcce0d8ec051f8395d58e2", - "0xce072d500d2a3abbd538dbdd8809b7a8de9b16ceb46759c2e5c62d8335b9ac3e", - "0x628480dec741850e8fc78b39b0012e21d2210ba21ff506303b3a30ae7120242b", - "0x5c003242439be0c9231d029329366a8ebe26242e3f7d79216cc360f77194b996", - "0xcc9b55e2949e9f1fd5787b09fabb7f48140743ddb4bfac049d53c07c6901c936", - "0x8c809a16fe0c1c49d5243d7c808a00b80d090e76af66f139cf6ecd713b664a2d", - "0x297f44efa90f5a5c9b82e83d9fd972e0db020e128ec55b769268c1a90ee1ff98", - "0x14b10e0a6f2c4b928235a5f904ed196e8f2f0b7caa6cb22702ff301b0df9fdbb", - "0xaddc83c036d1c4a53ef9779196982402dacd2d18fdf65c59281a2707045d3403", - "0x8b1301861c953e3014841c61bf82c5a29e2c2f275c272c45145e1bf75e11bbe3", - "0x9ad184b5e60c0bd82d1e1cc97c0bf9342da816fdc6929f64c2f47f20cdb8e9a0", - "0xc0a59c2f537d5c7bf8c5df55f02fed2ff08041b261aaa41acf62c951a1c826b7", - "0x9284511705680c802e137409d590c84ae7b29c793d06c596190cf1bcfb868808", - "0x10e7c8f871f620e2a85a36874e58d8ce093a47a2472b5a91a5f18893808491a2", - "0x6617aa1817809081a7fd620506fa60b5b21ddb2b58444108de37ff279ae24ac8", - "0x2eee26c860c64ac6efd4c9490d2ad09079ba71e4326df3f44af24b4e8edb1e7a", - "0xb902f640d25c45aeca0cf43e382976fd6e69fc85e440d589e95d959ccbd1fdb1", - "0x6446d62f00c80734166de70f3567619b72900344c89b2ffe1eea9c30941fb74e", - "0xe1fd088edf1f823f441863a1ac3befc256a20c0aa1735f9a3143a948984ae301", - "0x2095465f0c5b89694f404f88734c02a989e28a41e8b8c2034043da962ac97588", - "0x97f70cd16dd81987bfa047b8944771331a5c31b328064dc8b56fd8b2b38d8a89", - "0xa18f31897f4bd29e1b77525f4458990e8bb7608a12221163037a55f39e7641fd", - "0xebfa2dc85ce0486ab35e5a7236f5747a3bb972162cce1a08a88e8775217581e9", - "0xc2a10452948ec591e4109be62c0d5a8bfefef2134246082a61c1d996f11ac4e6", - "0x4c24ad9e32fcbd76d0d78262e816b427ecf946ebbcbf7969461baf3435a022d7", - "0xc533d00b4a0526cef84e147aa77a9ad4f6787eb4f838aaf0d539c33ecb769494", - "0xdf6926a0b2c8a72abf58a5e309fb236412d541b33fa8324bb2ce92fb0d0ceda0", - "0xdb89855b6b608d1c71689b46f0af66bd918bd98d9653073c9a875a6dc1f7a273", - "0x72b64c8154a8365e8905ef0372608755b70608af7ffa588da0978a59f985d0bf", - "0xc1a4486e65e4d5430c4e63ea471b52057fc1a2fb4343459605fba4e764143fc2", - "0x557443144308f0bba5bc64fdb1deff50eddb5728d64da8b0254ec63845095d47", - "0xc42ea586d77568d096e8bd45289fbb4f42e89176a59b143b5cfe2893fab27db8", - "0x7e880ce359b0589c85a219a545d994c38d1ce05bb365906f41c55c06038e635b", - "0x3daa1c97b81387cc076b1251bef684defca282480002265fe122e99769a0e84c", - "0x2e04dad2a0e7d29fb5b4a357af29d0cc6de6831940622bb59227bd6cb200f0dc", - "0x542ef39a7f12a13bb20cce43191f018360554e56d624b23fe73e452d40601bc5", - "0xe77d21c5b989e6848b7145ceeaf96bb3ce53aec82783124efb8b64ba106c7adf", - "0x6d1591ca6b8988e6bba0fd54532c2c2791960e8f3e82a70d336cc3a78ec8eaab", - "0x0a8390be2eaace41828986333caff47e69935549d6012054d8c5ad8383f041c7", - "0xd90e8723f2d6eddb7f7bd77b01be62a9dcc86fd701f21fc456173e233ba5cc6a", - "0xa21bba87e6683a9e16ece09590fb96239c34c64c5f94e421f16a21e07d4d07b9", - "0x80b11c2f9f3dfb333dae65e77b155f789900096be59d18aea7098a8431f57903", - "0x52d749a1e59a55474f013323cba83e31d37069383a2e8d6e65cbd741d2e8eb3c", - "0xffc5f4ebb7d58d1efac8831238950ec1c7067dfe61f91ffc9285679c21ab17ff", - "0x6ee683f4215196416fd9703ca94ad672f13ae00464d1818478e02cde6bb70982", - "0xa1d9b5d02bb39166ddf32c9cd08f405104f2205d1ab0c7e54aa181f29d827402", - "0x5a782d8541372e665cdbb2b42f178681f40b2d232f73d52bd54765a23cbd5418", - "0x76b8a5648028a7cf9fc4c3eb60697a1a08b6c2f3b81811bd393c7608f7140ff1", - "0x20248198f84d13e945335ff385ccb3668a64225ecd1712412b1f6f224f8c8480", - "0xa922a3c4d2707224fea1639492948c91ec14ddc1b3ee46e03627544cec57dcc7", - "0xa4a95f2d10a2d809f8fcb8f16cc6f8179b62fcb26b789705d0686bba1845489c", - "0xe8df8182eef6fdb724d192e0254573c829127a4064122c9507a1735c009ff6b9", - "0x0dd37e064f7ae08c0207e1dd7699436aca14f9e5d39436e31539bde492a2b1b0", - "0x8453b3edb890a8c6b6a519683a149565ae64920f168a40b35c383a8734e9945d", - "0x59d569c95da5ef5841344f6de16e262afb86039ed3419fbc92c5d2ee13c1beb8", - "0xf154537d82d894a8e7b4226339fcdc953a4a9a11d1213c440166b6a58fefbf89", - "0x7a422d65f4befd89e1a7c2da40d482a6219169e5cfa309a364d1ed0663515146", - "0xecc79e782017eea87f640bc9d9ac7546aaf34d21adf1a3badfef6c48aa76211f", - "0xec44728bc6c94a2763b466d212017f2645c7156518ce4e3ecd485499be3ba6d4", - "0xc9a98ee4d90084697a5aab3665104dd11ef36adad2c21ef003e40e485ea444c9", - "0xf8a4273e27177619d8fde9db3c0659cd5ba9c084f717b697eba3e9ee7dfb1bbe", - "0x89fe4ef0342c6ec695cd14c518fd4e9504dff3f084a802cb0905fb5f6d03d6ca", - "0xf659cc0c0edabecac9a0d95fccb0eea911fecf4e53b9bb3b28e6eb9f9e83c682", - "0x548e708e7a2a136ae6ca621502fe690d6b1e31781cd64123fcbae8a373c11b2d", - "0x1eb65d47369949fca2f497a11f19df8d33fd8f5ca58b804cf504831d08f2fbd0", - "0x494b951ddde767f53900fa2f5c7d1f0dd8638d7fca55203283fc30049ff06196", - "0xcbd0b45603ebb72c7283fded1302eb15a46016ec46f2a64f4a9d7ef59ab6429a", - "0x99adb9987a54647d7b02aa589268bffd35ece71e82d99419b93ad2d67e071c83", - "0x73f4eca410495d4c91d9b979ec8dcd8a575ca89ea089ae3f09199b1a8c3ac9a3", - "0xdb421ebd89476a4cba795edc92e7138433eececa609c17b0f808e9f3573cd992", - "0xbd858de7472f57e2ffa0f326efc6f6834775741317057a4d016d5a95d35a63d2", - "0x54203ed14df2da3d572b61797d9287bf245f9939aa25a2bf29da5db6f7738738", - "0x2ce99eb34c785227f2fe479ad4cfefcf1c6df52201478fed66868f070789fb68", - "0x3ef8a4b6565c6a5840b235d759f7afd7837f5ffbf99640e1587a0ca468376add", - "0x42d89367b255a60f260b889fe98d2add3c77955d5c0aeca0d6f587b0d7709ba2", - "0xe04ce561b160f5fe3beb5de71a97f9f69817928d6138ce956701843d07a78903", - "0xa1c1d23fabb55d905627b1dc61cdbd2d657b981b3ff205f64b8ba04b96b766f9", - "0xf64bd7b3dc213d170be5f21ffb557affe15fdb8384e598c7a262eadea8812b35", - "0x0f50953c45cf831988de2e75f5089cec774b44cbf37391f83f4550e026f758de", - "0x5855905648b09a786527b259051cd04ca511d373849e794dbaffd751b6d47fd5", - "0x209170773e78428bfe4d424ba4b20e174949c1c475f1dbc0e3a77739cad4014e", - "0xd4d057271afb9983e24516e13f690d3a5946ab0bed28e294a5919782298f95d1", - "0x02c16a3265a5e3bf8847e29e57fcc5f7138b3ab479067c6d6d682d2904442069", - "0xb1d1a67f9eeec0a9e8971b860031ec9f71c0b83d2696a2041d0e8e7976683f2c", - "0x813cc8abc863d66a7e60c7e91debe714dbd50dd8f51d6769fa083c561b6f1292", - "0x18f0b5bfbb64a57634088b9af13f06030723974c5176325db9dbf71443ece8ff", - "0xbc2511f70e93a9fc24763c14f37b75582df78cc627b934681fdad73e5f94aaf8", - "0xe04f4a7390a9af34d31314e7610a051574dae583fb31112b468e85b230b08a27", - "0x68afd2ab749095cbf8cdbfdea79d99cb69560c00cd1cfb18992e7bfa278ab60b", - "0xeda982aeeabab6b0f305564901941794984ba5a752ae48f01a9755fbbc3a43c4", - "0x394778dfc7329fc401ecf8a15109b23b8b8ecbbf4e7c800b47cf9468eee95986", - "0x9c0b1978ed25aa551972fd6d90180463d5a9539c06ce3adbe3b83bee26a038d2", - "0x46220a848c83a60e656085cfb7f3c977d8bcfb6368e53fb0877e8a013ec1c3f7", - "0x71354663325aba30a19ab2f2125f9ee901c7d142654af898e6f36e62b9d47d21", - "0x701674d55517850c17882abb2d702a42c52a26e4f341ea33b7204a9245bc7fa9", - "0x13723d73f227a389518f9dcfd81ebbc49a8edaaae8ba63c9765ec62bee0c4d85", - "0x61f9b96a2f3980056aad14d9906835a5a13f0894c530752c6ab0a6a1b316653d", - "0x31fe952a648a9a2f7b8d89a3a57758be3cb74028076237c70318915677885b0f", - "0xd566d66d853468077573024a844328a58aa8ba989424d66bc135db308bcfcdd0", - "0x5aac4e8b1bc902c7210ab0b56f8b58eac98893d2c6d70dd33bcaf63b97cca60a", - "0xc570c28ddf514637c8e07427b895f23d52be931a492220d6bd3dc3d200d105be", - "0xf7f7bffad28ce00b8254d4df4b5079cebd236de2acd9a253c09636c9036b99a0", - "0x59ccd0578c26e64a359d45367b64a97b97f43a85189a109ff8bf7d9acb871dca", - "0xa9315a3b2e7decc5a653c7510f5ec7737737a325767c469b5aac929b4581de5e", - "0x576ef478c948410ac57c074cd25d5d7da97e90fdf9bb7db70a866931ffcf1ffd", - "0xa9ca2b5a515934c38c66d2588408941f1f19f0b898c6ebdd777b8b4110387311", - "0xe8481a5871b10cc7c278c090d0115811824941f119f9e66a391b43bbfa2a6ded", - "0x5dd99890bc491b58398406dc9b16226cc47c207882f94c2a58330579c16fc256", - "0xa965ccf30e1cbb5fa76359622da6e8d979f3ec487e7f788399da9c3b8af4853f", - "0x09113412961999f8d3e80628b8d058a3a6f8416f4be682402b91047a73e69b46", - "0x725b185229d9ae3b5a1c2c15c2e5a9154518df50afafb8c100020e875233a7e6", - "0xcd871a14e5672abbbb45c142a44f937b868c4e265dfa68b10bae64076c68d7ff", - "0x0a257cf0c92e10a16c8fea72fbaf2e6f56c840f2a031589b70a5492f0a9944c6", - "0x64848061f987980ca330eb74b640663ca391cd9735fd2e8bb863dd42961ada7d", - "0x51c27314780be532857fcf9d678d4ab05481f6c43da4527aece3c39a4ba6975e", - "0x78de86801da812219bd71e972e621b437bcdd23ae6a2db4139d9b62e5c40a463", - "0x5c98c32dc0ed6d507965236eb7a718ace9678f6f12bd5f81b68ae44144a15d51", - "0x3725833155294cf2ca6e1b5d272f0dc57130ba6e3a2df55111900f7caea47818", - "0xda487e7cd0f45f93431237f604218ac3d9d439607037b153ce985ce92d16be03", - "0x3dae2a9c0418a46d752c7cb5a1447f8b4c3788788bd4c6b85583c3c149eaf1f9", - "0x53dac7e119929c41a352b46eb54ba52ce59ed5b7283d0883ed48d0f562bef921", - "0x7e302413f400b0ab38f202140ff892e93700c4484e8cc132d7cc115606684cdc", - "0xd21bb71e163b1b4aa2ffd0ce2232cab26b8002a999b901a03484bfd6253f3fc5", - "0xb0284e9fe043f920de245b35e0770c75782b9bfc81ef2ede04ad382a51c6daa4", - "0x9d2efeccfadc80b413720f27779590b366edfb599d81efdbc366846daed1b77e", - "0xf39a139bbaaa2880481a3aab168fb350db74e3b6d6ac34159b1ca4af4d47a850", - "0x51bb2f5edef77de7906c0816826288657eeed00a1111d79df311bb904cd784c3", - "0x071529d3fcd41761d977a0b344932013fb1289eac00d2ba19a3ac5e91e9281c5", - "0x0fe0a5f987e8de4355bae9f7eff1a664d2d2175af90bbab4eef82f3c2dd035bb", - "0xd1094c0c293d5678e7a05b7e537ae0040ba4202183c682075da12c6e02d3f4d9", - "0x6319ffec1f60e3b4659329566b596ec0c875ee654a8fa2ce2cc7b96aece2038c", - "0xe8fc2d78e8023adb761ea580001393a9e0306fa84f9abcc9d6f5d8875db9cdf4", - "0x7e75553809968c9e97b2ca64cb05809e45345d91daac452989a55dfabfa22bec", - "0x985fde0528b9843d4e76f2c23f76731ad14d8fa61f4b8e35d2a32cf7cc31a568", - "0xb0b679f35bbac65ec2f7e134dedc76d2b9f23a14c70faadb2bef1d914da6d791", - "0x1586492da00013d3c6ccaf65690ab7111ae6a83d3f9034d6c26d9d8072eb464b", - "0x46c861b96700ed966bb9b6ea6c5e87e188372eb2e08a1ebaa01d0a46e91b3cb2", - "0xd0457c63e7fe1e0992d1a617cd04a51eff1524d1a18afd66e71c04a321a7c999", - "0xd4863d6fb4d8cc7b62568f3960da84ceda8fec5e84fcdf031af7099942e93148", - "0x4b47db507a812eb9db6b6b2eae64e2b1ed9c51e6877e44beea9132309c9af199", - "0x7ed56768a2fa6c29f5cc1eeac629f32e017076664d5739fa62fa55e3138b18c0", - "0xcc7b6315c0006ae1e93701b345b83e01ede46164f8ac0a0410f5d1a1b0ae63b2", - "0x242f2b4ab0febb86bd74b9da83b1efed9949a05d3b19297f928a3501aabe644a", - "0x8e1b7b621ca8b594ed4b10b52beffa8079eef58c3153943b71dfafa2bc6a7a22", - "0xce4c217d7ba4180883f09301d1a77e9a0c44cbbccc099658dfda1c3eb715ee95", - "0xccf2da237cda4519c41dea0a3067bfc3870f3a6ba073d44999ea3b10bc32c5be", - "0x0d83386aa9ec920477eb85492389f45659b57be79678df596a0781a1405bb6cd", - "0xc74c70ccd1d4487e4f6a8e77ca09cc394b6870e343b4285ade688d1b6df60e03", - "0xa8f22312c6ef7a0ff629dd0c64739f055dd09ac4245c913976e4e6c168f8266b", - "0x9c116ad329b4a3023c5c7bf711c3dc4dc0f9581d68847354b9ceb57687a76643", - "0x292024c45930a03895ab4b1e7478d7d784eeca1f5d61fb1fdc03eb8c345963fb", - "0x0b21a6dac04948393361c6be1abe46f5be0b28ba158893702fc80b0aeefce2ab", - "0x1f5799dfe87f6ad4931696e36b3c5813dd740ac1d025f0db490cdf3335af28c5", - "0xbcf97b72036215bfc439b55440103e37a7931531795d93acfd00d078e6e88cca", - "0xace36522a0c56067bd29df38c2d1e620b9abd880a37425dbb6f5ab857f9c5743", - "0x90c3dcc279a85988c6e9de3ea871bc89d54202e03355bae21c63a4d866a4cf89", - "0x8aa5e6a53075c91ddcc28fc72170c4af931ae9cd63d512b596e9863fed4d198a", - "0xa80aed681718e923660067910680e3eb057e3de6acaf0ca99f005a796503d0ea", - "0x96e8541615584f709fe77778589ca0a17f07770da17089f976e8b7fc302ec77c", - "0x8e2f41b07ad87192b79e3d96c18fcf07a170cdc9b23bf4624b8eb80053a2dc37", - "0x16543b7ba202f359d888640cace56e300346a475999a8122667c48894083dbd1", - "0x7107ab2fca188dceb5e4b0a44eb53252c54da2dba0aefcbe00625e689c2b5bf7", - "0x25f871a59182a4b0f043159c7a716562c7d063025257b89dbda19f5aef68e9c4", - "0xe70b7a990644ee1278e92f3ba1cc6a9a40b3761d8973ee4df91d3e3bd3ad1a4c", - "0xd9948dc162a681b4102d82d01faca492bbf057d2a0ab1ad1aa2d7ad2f5d8d591", - "0x6b911fe9fa1b430a1b7eaf963670cade7032466eccf1fddb6afa9954316c7378", - "0xe3453267f7c86550138eae575f5874fabb4df7cff52a9b7498281788d5be2df9", - "0xd1de756ee8b3e650137e2f1f81be3cef8389fa685a8c2606edce0f470c5b94e6", - "0xcd78d6840591a94a41b6c43486738e3f9537ca7fc529b73c77403e282eda5b05", - "0xb6107d17b47d368d236930768d2329917a155355a17c244e9b6a70df8b899d2a", - "0xeade2b36e555380abb2926f45a8809ae4bb9ca9fc4bc5c2848b08a6fc157ebb0", - "0x6e907d42d9292279e00b5e3791646cdad8bfc5802f02efe7a2bad8beadad3832", - "0xddc9d4963a1708e7114011f41b7003cbc351fd3cc6907638138f968aacfc2b3e", - "0xb9702fee4e5e00b451600c2f6479ff852f41cd760ddfedcaa9d42912d199da8d", - "0x6e0b2e6230e55b58b0caca85b86459fd94a17dd2427ed23ef4d7468e200b436f", - "0xf0965c9e876cc2cee03a67098bcc0bb8ff91c29d110101d05bdcb06e21a94eac", - "0x79902f46ccb4f63b07dd38c88a495b2837a0a984ccf4f2643bd817f353e947b0", - "0xcee76907124f92bda1e5e492de67fcb0e1900302f69682f5aab251e55ea7df0b", - "0x9df0c40c5e452168dd9debad103645074686e09110a50d205c8941d27d14f74e", - "0x4128d10935b67e5dc21e8e40e5c343fc4c4a716455abc0dad24578d4aabe402f", - "0x1b49733ff37e03ac5cfdb1f84a5d93beb0013dad0adf8ff4435b44b20dc0dfcd", - "0x31d0defb61c386a751690bdb4f32e6377ae2a761e52511e524ad9e69961fcd0a", - "0x438cdb21294f0547ffdf5269eb9099cf52c66e45aa235eade26636a13694c90f", - "0xff42d94f2f917a3c4ab43d4375a9bc63a396f3fd120f0295a4b6597e53815b44", - "0x6564791af7389ec58bf575435a3ff1e0d3ce0955c7dcc3b75cb4c85c1a1c8b46", - "0xcf988277bbaf273ae926cdcc57e88b9a2bd916a6d0edb1d7cd0a92cf85d98ad8", - "0x45b8aa768c9ed9d99a3b12cea4ebf803c458b908a65f014a779a79c3d31020c4", - "0x2d96dff93a3df327747c6a2c6e7c08612a9d40923207d8d6d52dccf33caf8661", - "0x9dad452c7da8aa798c9489ba142710769c03e5ca3701673649baf731edb41e4d", - "0x6418305ef9d02d3382450684eb222c9761e94b66a933d9ef8d833c08ad4c6b9d", - "0x1f58fc05ac706d32ff31ae9dbd533c1df2481b1976be571efe22f8810e7487dc", - "0xa9af008f96370a80f1034840d00e072a391d523065ababe94eac561005c02408", - "0xa0384a9854110164b17189b10c9b6ecb22718d515256d12189b4799c1b7460e8", - "0x17f88aa7eb0072037f2b6305a2859c8100a3e2c8dcb6e13d8b58e01abba31292", - "0xc834fc15604decfb4bbc68987f20efca8db47e1d3fbeab2a1f04bf2151b4366f", - "0xfb92c461809fbb8ac4abcab126229d5d25f5476d6f732d27ffc3e31e2db18e4a", - "0xfcb1cd8040e7bb860eeb20cad1575747c9ca129192c8aa69a9cd373e24b1825f", - "0xd8efbd48289db20663d5b087c678025a232fb83c4be1731468ad2f10f69afb8f", - "0xeb5c8eeb8c1e6bbc15df061c358ff7cb5e89e6e3ed51eb63805bb98f0121c683", - "0xaf9d7a05d1d1c3c9d03b008907b30762a435df18c754ed1fa27c9c84a8905953", - "0x06743818d15eccbc13397607121a89575a6da7f9d23e36b07911fcc516e4a9e1", - "0x32a05f9a1c08b68500074915f04daefd0a6835adc985558b62c3b2867109ff18", - "0x40e0b74757199b6863f97f14fbb394b2bf518ac06d8d499615dc087b2d105b89", - "0x09736a30759c20cfe24bc34a40aa85eb511a0f49021934d856588181969dad44", - "0x3dc24b923a7c9593ec6b77220c873a06420bd8f5ce2c2768364074457bc31cdb", - "0xa7e78dfbf9fff15ebd110198711b24f35dc7dc6cbed06b5008036570f4072abe", - "0xfc51a0ea5862e57dec45581827c35aacdc58c6dc410919b1b47e3ad3c707f630", - "0x1c5b2600a9cc29f7d3587a5aabf29b27e9f85acb99acff6a5316312a713d1f77", - "0x080a076a84bdc34236149a6ce92885c0b28d5484c80bc40b7207c45a1c2487fb", - "0x7fd2a3a08ecfdceeaa56952968836be5e8adabcc7a2a00e2629604db5efbc14a", - "0xd214eab26d637a7820a0babe4bca0ef9dadb0482b3847a71fae571f44cc93e33", - "0xbdc71731bd7440bee58f131d47db5c2d4ebe39bfbd9e2fcbb4970a7fedd631f6", - "0x617e379b135d0265b15679e464dc7fcbe696fb8afb64b6b74cde6fcaee043ac2", - "0x96ba4dd6b5bcba95f7d97f6bb3dbf6812825f5de86e12f14dbeac7041854d8db", - "0xef77cf072d0edbd8d5243ca73384a7c2e58cdc3cbcbc5f8895c65c62da30206c", - "0xe75c1cf441c9dd52a7185e3c1f1e6850fb03bc39d06d422da1ebc81afba7b910", - "0x5bad1ba4e6e0a7fa060cf8766bf8b3500adfcbcb922368da9225a36e61e7a469", - "0x1ded514f946945a7f04d26757ff39d9731d8bb28ae304d803bab9a484cf4cb8b", - "0x40a6f34a19594944e96bd5df119c1a06a2615c04924b7b8763c4d9d5c0b8363b", - "0xe0dcb9dc1ad2f5653c369d9f25d4f9058fb8c512e5efd208b814e9fd45540550", - "0x1a07a9808e43a3c473d1e9d2875ab32ec2eaf9ddec432f711554503f927582fb", - "0xc196ec42bc1603eaf0a2348dec8d850d96dd4c275bbd3de356e5a23519002018", - "0xc793895f8aa0e9ed1c22f0aca3b1cf07ad1bd69445d9eb5d51c453bdfdf0dc72", - "0x1f0312147d7bf69ab363ca3a3b9b5a0e43316d7e2c36be97fe0553d2d3225fe8", - "0x09d8080e41bce3b07fdabe7ab36d0f45880c0cdf5d2119930d61233d1d079751", - "0x5863676dae69ac932a7a463e93d312365f563a59acd4086d7c60b61d56438b28", - "0x5c9d57ed61a4994fdca105841fd91eebad100ea8704c9a12afe488103daa6177", - "0xec9c5ef3fe34be04465270a7a215848a00a31324562e97c3d94b7b799b6474e1", - "0x4ee12a6911ab23524291f800c361490221460ae9d72085ed69055126b3fac836", - "0xfc6be696f5c7687c511ba1fc8f4581c792e17876eb968bf5d1e7c6555259b98c", - "0x82ac807f85d8c430464c8fa8f6eadf6cedd5707e8b4aa653ac66f85dd39bd1b8", - "0x08ddb03882de2be4d7ae9165a41746fc76edadbaedaa6d8587c0560c5c989ac2", - "0x7f1e6e84f0ce5f9bdf199f579f4c57a8d35ca5b4bfde55d20e2d7c092e6249d8", - "0x7caa4b3f32f0608e86a112afb9425831ddb735bb5b914599a11355102de0ef65", - "0xc52c467d635c36695e1fe850976745926250b0bcbf12835ec344231e326e7bb9", - "0xd31f10dd9effe25dd19d3eda5863f452bd3dab36cad1cda545137aefe1971eab", - "0xe3c9f6858652e0eb2314c8019fb633a14716a3c130b767577b2a28ee7af0a581", - "0x39a476f8a5268f38e24775566403135d6cc26e46a7480eec576cf9036e96a9a3", - "0x78c798b3ef7f7054b427c22e2d6ec9ef54ad3edb12edcb43ed46fe63c624646c", - "0x2d9eb24d4922203e2d55292c4b5c983b86f56c23685a3a6d57af191c65a06db1", - "0x434d433a6316106fe94059d2fc0116b7181f13846df95892d78261322fa724a6", - "0x5bf38bcbc125fc6feead6a7cffbe6db1674a1d52f4a3f91a29833a730b711218", - "0x852f05410a45326c6118bd9ba185dae319464ff3c0a603a2ea02290646bc53b6", - "0x80db0d9f5a7f2e02f3c19c3553bd0e3151fab7f36f7d899f29770e9d440a8073", - "0xdaec85979550d9dbe8d86e665ecebfb2b055836f1691aac6d64d1379d0c39e7b", - "0x1d1b18c8b2bb47b70c276a0c32fa04a4d7f5b8646c28094422faf0e177bd1b8f", - "0xe248542589724264685768bb7108622542c2d6b2e4659e2fb97d17ef7256f1af", - "0xf095b4169b0e1d33b1c24f6ccb835f8d0d6af4581f4f34feaf96d6713d70ef65", - "0xc24267de7db63ee856dda7184d50cd71890ba7017602191c3bc44e2bb1a1d4d1", - "0x624dc6dc69c1484d7531688ddda389e0ca00dc09210429d6c97b17a0d4f4e9e4", - "0xef3610a3412574d14a7549c5e992ce9fd54772f820b9485c5689e135832692f4", - "0xca58354e960aee45575f4d5abd2ae9d7aff32a7b1bd0df6e3d0d22792030dadd", - "0xbf7b2f80533f34efbe4f6c6395fe8eff19e08c9d964e619e35bd161c4e08a70c", - "0x85482474a66dbff699ccc3756dee5fe88e447448d44fdf2627bd488cc8abe984", - "0xcc598f943c693fa06111c77f475bb528a08e859b2bc6f2871f4ae50eae40de4e", - "0xed41aa8bcb0330da03b360350601f68752dc060873c6f0fe53cdc4f3c8da662a", - "0x047b5d2a97a701b76115ce5b8d71bca40594d9e163752db3e38ed8c6b0448ecb", - "0xb2ff504219c1b24b1483a7e671809202713f9b2dc888d1b46df2878ef830a8bc", - "0x01038d50899f0167b59681287f6fac87cb53dbcf7b4992631809933afee11870", - "0x306c6b040960341a198c88b01bb0eb3e2eac36b483c343de16fb8cd6f318720f", - "0xfde3d4cf83046bcbf18e6a7df3857c9e1bb75f441a4265135837085262814b02", - "0xdaebb2b71d2443003e6efecdbcaff086d0d725c88684787110135bbd15291833", - "0xc0a0198a6e57544f119523402f97c084a1afbb06f0b4d2a41bea0434761b6054", - "0xdcce26167709e6cb4fd29584c83faffcf76c982c5e17726fe4dbd1105bab7439", - "0xad717a26abd29eeb240e986e635fc0add4a6f7c8c9ae116af49b2e81b4eb62a1", - "0x47d513873b8c72791867009b293b401b7ec05cf87dc9f9537581805768369d00", - "0x497839c4688753a5db5eb98e7968e9ef363ce85cb275d40c3dd46b6e5113c3a4", - "0x3aad7265aa7bb39710356bfc3e6c555725c357b323fc281b2763a0f0267c8b8d", - "0x36e21dcfab3aed1c7134789149da4d61b2fee5307f033013380b892065e14991", - "0xbbdedc8436db019fba5aff87ed3c97a78ec2af8b2aa390f1b0f925064604061c", - "0x8dbd104b838055f34d628ff1fbf097152483fe53e6d930ae4a02d37648b758d1", - "0x365e37d424fb7ef1048d0f032f75e7dca20465f0709a3994c6ee903b1818a726", - "0xfb32c65070bc2f46ad8d8378384adb8bc3dae96dd96a8914204c607ce601c3de", - "0x30fe50586990daf14e84ef2d337f0819faf98f0bff730c77c547d34c20ff14bc", - "0x8b2977d229646c3552e4e6a7657fc3372f0a9e744b4fa11edee9f5ffbab99e60", - "0xca3830b76e052f65833a3c8c31c98bcdf8d81f74952f5c4ba32ac8f4c3791d38", - "0x4a8a34bd2ebcbdd69e0492a9e784263b73db418f20f80ad6f1b3ea25702c3bc9", - "0xe9730415f60bcb2f412e676d768ec3e25af7d6439517497e7b8f86950e83b5c8", - "0x42fb83f3376821f23f3316d9d01ad319bbe6b6cefe1dea1c2cfe89639961e668", - "0xfcc901dd86c62e3b1da4af67bb1729b28ece9efbaabd086810151e908218920f", - "0x1a40ff9ada25ab7fc14832c33a3c75cd0595cb904eac7d7a521c67ce75db0dfd", - "0x690eebd8fdd05117d5a4c7335af0c487e4ba70c9352a8c03ae7c8c53963a82ca", - "0x47582399dbb91cacadaf022957b48abe25c7f301a1232587ac3f0298bf4f03b8", - "0x900fc815fba237e026a0f27de6af96dd1055351b7a78df050e8063e67a03c4ed", - "0x807880d09bd8ce9e27b2a7df7e22c46a3f28b81db767a08269006e27a776e0f7", - "0xda996478eb696f963ea50b28c899293f1682de5bc56297b7f14bdf64e35003d8", - "0x630a1fe703d16ec4eb67043ff86c2980a956bbc45961ab343059b449a58016c6", - "0xdddd65b35951ec094cf2c01e505b4545845bd4a1727dad0eed5592e3f91323d4", - "0x6d6b2560db0d26b56f0ec336215ab3ea430307aea23e94d11ebc7f8ae0476ebc", - "0x942d35f09119613dc505286bd8e5b692c5b6ab6b456bfde3bb5e60e6875d41ee", - "0x2336d4efeffd6e88b0bc6e7b2c1759b35a7147e8a441568d374deae1c2f9a964", - "0xde9da773da3969677a8171d1c20ab7cd5fbac9ac5eeb05e161dc3f62c5ca841a", - "0xd4f4fae337a4237f02e8620fbbf077c8d39864d543244f6ea7d08a68220838c8", - "0xcb59a0f2c5ab1feb68118a8c59aa873813a0adf65730f2e937814bec1e149151", - "0x256f444bbb37350ca565dd620b71b28ea15e53994f2eecb394a0881ffa42d575", - "0x5349078ec5fa82d5cedb4709ef0a2354208a7f85b37ef7054bb687ec8bac265c", - "0xe577d5e1dbd5819a83089c701a31df8ccfce478ef9655fb7aa21399745b5c59c", - "0x2fd29cfb8c1352cc78d930de9bbab8ef007d0541d8fd1a8db7cc5cced076dc04", - "0x6ff610d29ac82ac1a5b92ed47297c6213c90146df4d668985d9d157891e81a54", - "0x376e36ba81ac50e32e314bc8860af7624d31307d6af0b1951c7bb03ec2e4b0d0", - "0xc2af74f9c437ef0f7b89b0663d900a13e98c5da81aa5020404a665c211feabd3", - "0x4de6b756c071a6e93acc37ff7fe513c585667be3b64c186c6e45ba2b3d7ae131", - "0xa31a0bfe97be03ebffd4a7f0565ff4372d34b44aa9b9db8b3943cfe2049a25f3", - "0x2a4135dd0986c731ed35cb770389b8494adfd6fb9e323f8b3c62e612ce9ae7ca", - "0xc5a683d3880f1d34d515c753f0bdb68750984df456345a7649fbd3f723539ce7", - "0xc89381d12ff71c930dcb24deb043c3837e6f8c221d986babc9a37585a724adbe", - "0xabbea8d56c9095aec399d7188aa12c8542fdaacb2c25b440d112778c3c8b914d", - "0x9257be6dec259bf4650857f8b8ffccb42d6ef93e55127bc23596ec4ca543d63d", - "0x0acdfb858aa8dc8e693018c2fd5f1d9d0192138fe5fc461284b0f737edb857f4", - "0x8d9507c1f8c22256288db6bed77a16b09bf2e83748503e5d04bcb971c2f49bde", - "0xb5cba97b5e52ddba979b4e74b1a02cf0a423fe9232327ae80fd935d9b2923305", - "0x5634d57b4b9c7a5ed15aa70d59b102b628a0aa47a785f84466ba549b60e49706", - "0xc41bdbc86fcff5dc2a77cc6997b99e75927096c3d56baa56f385ca8df583f6a4", - "0x1b81a4e0f85fbe1520c00931736061fca9a08a8b7f7dd94a65b863817326a296", - "0x12d983159015d26986b0b673451fb362496530a550ae6137f92251f99db2b290", - "0xb6f0dec7ff4e61da0006c02164bea709ac4fe11c20257f154c6a2400acbeae6a", - "0x7b98792ba33a549d893727b0df38352c0262de5dd3f34716e59843bc2588eb4a", - "0x8d33bd97dfa8b29def7899dacd161ba8b52825c281611e5fe3abecad7e57c112", - "0xfb15e7a292a8df0e9c5bf0be2f97e30f81dedcf47c3035c49f0a124b0bc82a25", - "0x6e003471f1c803451676cb993c9d05fbf50d390b8774e4dc891c7a76bd6810f0", - "0x6a5291b1e97e6423545db5831efe391e030337da2a6f207f71484e59835ff627", - "0xa6ebdbc3a608f5cd3e8e6238626a52ee541ede98cc9a8133e7c3ae18c0dcb6d9", - "0xb1b60d7fa6f641156dac04c81d1b5fa640d6790239235345d19fec323abf5d70", - "0xcb21b419047253c8472675a31f71aa694fd2753cd53125f3eb33fc7cb2bc0d1d", - "0xca6444ed3205fb31e0ca9fd84809b725e99476428a7949bc1bbc27bda16e9eb3", - "0x86ee41c48989906e9f5444a4b0862b9e55cae62512f75d1cb6126ea79088a386", - "0xc3d9d6c407c7254854407004426a0edb3b6ea2a9e37f4b3646b0573070f5387e", - "0x52979e891b3479834488cf0da863d6fa051c3f5fefaee825ae8f605db7a4bc56", - "0xc3921490107cacd64b454ce5cf113e868d32b786c00a5582930e5dc93a24ebe9", - "0x4b393efe4ee6de87a9ea89b81d7e5851f2c2d660cde41d22fa1a6e8c8d0fdb31", - "0x2c5b85643df44155127113d73c6c7a30d32e81dfb974ad18b676b82e911cb6fe", - "0x55b84b4c5cf71bbd5fcd9c9bc5130f7b0b70828ec142e9980a1f8e6aee36d0eb", - "0xdbb9f30584c3548de0bba916766ebfea6eaeac0efdbb81e9cdf7403138890115", - "0x85aeaaf7baee871ca9949025ad5b28fd704f0b1d4b4bc702fbf2f197463cacf7", - "0x976056b44f1af84778b80657a52779e4ebae64606253fc2e5502b1b8fc3da207", - "0x3647ad36808ee65e944f785f96eeb53182c0c6300893656901cbd59c30c6aaf6", - "0x159e33c4c437853e340c93bfd494dd4bfad9336e6ce4b55c4b488438672efb22", - "0xcb07707c4f0ce2ad6e62be5e3d9f7ee256ca7e767078a70860f7a11d86d1f969", - "0xd89a699a681bfb1d98e349747faf9b77b2733652ff252800d11a1c5e42c45805", - "0x66487f37ad00673178dfb2785ae9daf32bc6cbc5025e18c6791fe562e4ffb880", - "0x5314e684aa9d1c10297945dbd2258ad847c67c9855d3f3c1ed5a1121650c647d", - "0x5be3a4672b03615e7e2e980d0c68851cbae4753bfaec77f69d62fbc3f69f6a80", - "0x9d59c9afd57f37f565675c8730494238a7ad62a26026adc8c644274e615c8973", - "0x76c06d84cfd419b2465339e377186f316f0231c91999d2069f965350923a2ba9", - "0x677364bbe63180f825bd178974047c40d98e28e48ac2e43ef23f9f863aa4ae09", - "0x90a7f396716df1e03cfddd6c91a3acdadbdf761d7868403d1ebe2affc68a41d4", - "0x44af61cb5be5bf4cee207c7e2c3fdd4951c98385c530a2af8a41e96b18e60ca7", - "0x010d2f7fbdc7d82c47b33d66a5f3b8d2d86255df3a27c37ab44b1ad192ed344b", - "0x4b66f935d07a0cd83f0dce67e9cb7338cac9c343763af39fd4d5317b0e223d31", - "0x95788a4c1ad664283ce7c5e986aa45ffcc3f3ff78342765c0a0537359795cede", - "0x1d0cc84b5bcddada93d89a0c8165e0f62975e2e3f42be87cac48e286e8a58593", - "0x383c470137b4b3c0d5442bd5ffcebff656a0f6f93d8316f97ffa2530446c9a17", - "0x8f85d0673e9ee21c9d74cc3a5e286fd9fcbfbad8a67312bd9fdef4a84604ecbb", - "0x856f549c4bfe8c101e61f5f6907294b186c467b53bf1e5a365ae4c1058688b53", - "0xa02863faa09cc7e8b7d467a1e49aee2740fc72eded6b372566f7f24d39d98c61", - "0x6cc6b1d8eec2d925730f5b0d7a53a7ec5501e75bbe532d01ccf9ee4fbf04f2d9", - "0xa101c9828116728e738096a5bf3693e4c6034567280cf79f301e9331e8c0da20", - "0x08a8d10878ea9f75e586eed72d9972d961e0bae3fb18cdb59b97f13d4573e937", - "0xbe05d30470150602f7d2e7f880bcca34260abd3004f00176454275f1f5ba12b6", - "0x2293224a8b616daf818331ba7ca2984eba091d7fd2c5c021ce1ab8891d1d02d5", - "0xffd50a8a3afdfe098a5f7d8a4df1d98989c6f2154910801b44df299f3a9ca970", - "0xb2bc8f78673c10a805d2a02eca6ecff625108acabbdc1f0c083ae738a6bf80e3", - "0xd3d7800d9ad71590207b86ce8be28af5d3b844451d26335843345235adb33482", - "0x19a2050c8fafc25c023fc874645146c9d69e58cfa62c55d6fa6e414acc7230ef", - "0x1607618728cf21588549167c963f4decc154c39b9ca7535e4ae2898424a5b9d0", - "0x77ad7d04df11bf2568b6b4a43a859fd0c41019e3fc3622011af8bfdc9f2fab39", - "0x8a2f2bdb426c94200183bed7500ef3a5645a936b2b69de6607d5e0809735f3f7", - "0xd31e090eff9d737da218d052287c7bc575eba68e4c04c61afc1bf71fa1294d46", - "0x929e93fc4bba1d6824585e9c63c00b142aa010954d2659557aa2abf020aaa754", - "0xfdc40de28666194855d21df5466739de17b8569a6416cf8e06e6a5f923cbbc9d", - "0xcf47393b9ef0fb5f68c4203c01cb52acb6d3a7633dada6ef171fdc5f70ae3e4c", - "0xd8c41ec1d0a78a2310a1e9a10d69017f91fd73c95ba26743d118f989d29d6f6d", - "0x31c3e809f24ce309488c611bbc62fde0394852c627502be078bba6e4a345d5e9", - "0x4f3ef90c7a078e74d707cfe628d9cc23d2e592b25727f25ef875cc7926f7b58f", - "0x53dd78267af64a3c11157bc09f4c16603bef5423b46a736b3baa082029d409d9", - "0x2c8e9f60300fcddb98d044686dfdc94fb34df87b0088873eae57540d07446f64", - "0x7100344f97940317ff6df6a5bc8e22bafcce7aaf46c8621c2dd0f6bcc3b6898d", - "0x8958726b7851035b1ea0f5889ff74280ad428912b5273752b9e13c627411f4a7", - "0x6ef0d28e7a2e2faa51cc8e06bf00a4ff182977a14a3f45ab71a02869d21cc9db", - "0xbb703737301efe6a34ea929b205de1536fb1aa5819def94ff5cc56e872b3e825", - "0x69614a352941e7e09adfabb909bb9619232cef1ce8866abf0a4c43eb0a255a48", - "0xfad7b1630f6ac59bb9819cb0e33c93838d44cbf9182f598ce4bfabb416153aeb", - "0x2a4c80b6f28493e4fc78ba4b604c927a80d8152aa13e6bbe3cd5487354ca5451", - "0x88c56bbeadf8e475f8476663c308678c5bd7f5673fbf20a154b478ba0a83993e", - "0xe7265c624cdf5bb984c24466035e418a8ed08e5db12e76dbde40287d11dde5e3", - "0xddc2c7e6d23361d39cf3bd6af4b8125ac1f2d32e68f725d77144ed14d19a4ac6", - "0x8adc4525b31039f9d6b7fe2ce7948ebb389ad0fe1b2d0d9ba0675101377483da", - "0x92104f08380fada7c0cac602e66c4d754e703829f9272e126241262fdf7423b9", - "0xe7ad92563a04b8ddc6aa93079a456339c5e631b5e00274b4512d16b28fcaa0ea", - "0x05e51bbff3db812ec3e64f34bc4ca899345b69d7511d25d2b8c05a6f73ba91f0", - "0xbddf31021ebe16aac248f3167d34fb9fa00b885c0e859a1aed26f866379b4762", - "0x87d4a8d3a89be7d5eb725a472c7105451d796ac2e8d41c7089c4604b0908dd3f", - "0x2f01e7b47dd42062a2ec8e4961fbcc8db7ff6575cc82751afa362b6ad21e6907", - "0x8aa4b672c4a537b8c8cadc5900b15c87def5cbbf585760fd080c6369894bedfc", - "0x795a0298b19a0e660a41cbc7c772872f95739e56e95f3b48c6520a5c5e55eee0", - "0x10d0342907960372382e5c3a7ec2dac0e6f5c2bf5f6b57ad548a31f9fe11c249", - "0x073b3efb41e2e904a4e83e01a1b1b34e7b6bb082f41e4f76aa38b55de5d84a2c", - "0x12a10cb67c7337e71aaa7f79829fc0abebcfdd3077ded20de0460e100a1b6604", - "0xd76ad354d8ca67f0b7b33e9a87d5b8c3e9aeb190b160c01562976edfd341691a", - "0x0b0129b4a178efb5cd71bc65ae4e8288ac76449c39b2827284a8a59a53a8b04b", - "0xc9702a1ceaaa255e2c7db468857d47f08538280f704e595270b3d1801905c33d", - "0x67b6eeff27327be016b742cad1297b0a02459e4e5c1b1e16e15932a18698691a", - "0xfa25b1e7d3233021414f61158758dd1721838d41113866cbc763051f16417966", - "0x51af765c6a8b3aa1537da71d29a9bce4ec6a3beb83eb2451bac170d307635ea6", - "0xa93dedcdc389d03b011add42daa6b1aa4c77065b776e8ed2de3bad78afbc1c8f", - "0x278a468d7e1da09d9b5d017f180bf14e48825f9ad09f4238114f4746a5c29168", - "0x8969a4c15171d04fc703d8377b03ec827ee8c29803eae6692ae52d31eb18e055", - "0x69fd35b051fa7a280c6c0abbf340c572f6022c614bdd3acddc89cb0495c5c75d", - "0x2f148c2bf404ffb3041043444c5e589656571f42ff6b101f2f03b4afbc3c1051", - "0x24913a97dc2244e58f154efee2b772f4dfc8bfc41899c66b2cfcb49b5bf9970c", - "0xf8aa8972332906671779ed9639ff4092629758028d02f77529d56a9c89140915", - "0x78c99dc9c7f1d356ffcd80cdde5559c8742e3186b293ebad19f5f5c2ab172949", - "0xab301f68fc9ea59de054f4a14102e5d1ba312416870141319bd846ad804bf9ee", - "0xe0d75a30786e55aa94fdfade60676c098664d4bbda32f01467535b25f8eb2a7c", - "0x6a55d687db9a48b19fe238bd249fa58d7d963ebd156c32bc366f8d65a71526b9", - "0xb640570971229244b145c01474ee04a685a40bb51758a4d68310b4ce63ccabfc", - "0x1fcc3851ea21fb8ab94445b36830318b896edccd64c2d54a3001e198f639ab0a", - "0x70504f1c582a0f3e7d6d8ca8fe82cfbdd69b606cc000d34ddcbe0cd841cd9eaf", - "0x6fcd5480b8e6ae07f38c891d4202402fce91c3144f380abb041dc4cb61485380", - "0xcd817e8ea14464d8a65643d32a4ca07badf0330e96c9e3b4835e982ef2e32667", - "0xe6f62abe81088e3ba52c653b7d748352ac6248a8d1a0dc61a63a13b39f3adb3e", - "0x61a0b71216d09ce57e739a0690c7c833ab74a41cdc7c0a136a5a261da5d5606e", - "0xa5cb275a9a6ab6a127a2ebf6afee6d6d3ed802ab4728ab3ff7ac12f4050a69dc", - "0x97b3c2da2b3a9110705929bfb299b69f9e6d3c05cfc391dc43b339f6994c49e3", - "0x273ca1ea98412abc4d162eec30d669072ca8e59c24ebc17d7b74dd42721b1e06", - "0x392f8b4e7d706a08828684d868acccd647e781219f97477cad4e4755d5feda93", - "0xf3b821c71d040e10e515418a21f73a3ef0ef855cdafa99240e60dba2816e5cea", - "0xe527f8c605a625031c7dc74793ee6d1b1554cf9d5d344347a4a2bf5b6824f059", - "0xbc5e66d951bef421db1595db40e3638a2b8f253a8387bd4d43ded54c4c0846f6", - "0x7fcdc1fe31f1891fcd82c2eea392274adfb26ebcd7ee915b484d0c272838d2a4", - "0x58b7888f6776e36d6c065b3f8de88ec8de76f224ac0f15dedaddc36351ced36c", - "0xbf5037084ff4124e311de573330f6e482621e06df744c1086977e6c7465521f6", - "0xb76efd283b00b528fee1857ff599fbeda6a7ea648c62b37590dc9a1f8f872e5b", - "0xd2a86a75f25cae510761c30a843069e889d5caad4fb45cdc1f0caa80c32481e2", - "0x5fa32d5dbb1887ecf3b93aa544496b8d7af7aaa2242ea50ec96cc5c07da31c00", - "0x8c6894e707d014dc7a2639f07101fb1164ceff5687b3ea1af014e63318113c52", - "0x018a3d80bb4ea6edd284f6146918c905cc3c1c754e9694cb04c6e939e2c3e8f3", - "0x763a1742e8f9e998fcb5f0e5ccf9bf1c0c58a299075ceed7b273e5155ebd7a66", - "0xeec702dcfdef81a97fbc330f028427a5ec979081c3ea6499ef1f0c36fca59c8e", - "0x18ec0a483c6bc0ef114a9ce6f4dc609ca66167d6715b32720938a180889a6ffd", - "0x5a948e7fdc5150ef90985ec51c833ba144efa1cba509124273492a4597ab5923", - "0xe88fee3b7ce1ad4a6dc608a3a5a8412945290c97371959c740eb3ca74c65d254", - "0x2dbc9f004a225f235b5710f22f0f2c77c75455869c50c311a5617e4b795a353d", - "0x3d402479e699d0317ef4b93cab54df4a62d183e628c5b105455fe66c90c73e9e", - "0xc9f150ed85090f0df6b7939a9ad1496208e920fd927728d739fbe5357511b56f", - "0x8c34fe488619a0d70ec30c41eb3f9008ffe47f9c188e63461a6a1448660cfcb0", - "0x1f2db08ab9b278038c3dd9c36b2d279d71000758748cf089283dff7d04e937c7", - "0x98cb2dd0ca201bf90725b6efb8dccbb6d05776b6833ac780aa14fc44e901df3e", - "0x0d0b8e72e7834f89638a466420fbe3e2ab5e2893b7d9c8c84394caef0c45a468", - "0xc054cfc39bfedb31b8c7949b2ac1bd6a07b36c62020188ad336c6039efe1032a", - "0x8f25593a99b7667087b329a8f69535db5c695abd92fc16eea39322e28a5a7577", - "0xd38c37dd354a85a0a2279a87a6f2742e0f5c7aa61085ce608b9bd8eadd7201d5", - "0xe38245a68b4746d911097fc0bdbd0094673f8ec345d789b77850330063dbb9b7", - "0x35a08b8b3d7e4852812693b611e69972fb8c66853bc3b06d6efbcce14117ebaa", - "0xed25487bff2f3aa0db580f6f6579e0fb30f2bfa72de70e3c480d3d77ce393093", - "0xe88653f85db98d947ffa42a789eb9fad86abb4048df4df70dd4b1f94b8726ddb", - "0x500343b55dc6a2a74bea48858dc8dde4a091b9120782d57a9807f1db21ef9a19", - "0x356340a610fff9b3999ba7c20e2fe65500f5defdc8852b4320223649d7591627", - "0xf59edb887df597825e2c68d7f8e8e58320acfd46a31c904c58f38c4084488a95", - "0x8f94067314834a0dbeba084049c6f4508038238795bf45bf623bbdb8eb2cfecc", - "0xd255abad0c2f585bc88bc9db4211cb34353764af1121e0f75709670be507e946", - "0x3914fc87ce6cc781590078758aa3330449de03c6479bd5996ffe1ca533b7ea1d", - "0xdafbeafb230e2e8b44f963026475acc1e7260e7de6e817b7ba9f0340f6c27f50", - "0x7fb53cd64dd1045eb4efc6fb24d4b609db52bb342529783de0b4e44b5b3d3b81", - "0xca94b25fad418cf1eb161a6a3d269b8e3e2224ca95d7d79e903c1c77ee14a020", - "0x7980f221287a1574111ebbe83bf8c5aa443a93e3ff95f5d51da3026cf6606a9c", - "0x3e103b573e171ac4bc2d19ec450d8ab74c696f1b2cb444975a612a8b3f4f5ee9", - "0x45a7beb63386b87bc180332345f0f08eff981871555a5bea3265c312641fda00", - "0x3a779223233d6ed94bc336dffa268cdae36367c7f08a8b0204ce2d79521b707c", - "0xa9763a8dec8ae703b006f71f6b83a034794a91649878b6bf752d55aad4acfbaf", - "0x654869da214419be4d42aaa1f8964a867f24f5db590ac4823ef13c278e7dcfa9", - "0x3698360e59cd6586b0242b8a30e28f9ac0b20996f24607a0e3826ffb743011da", - "0x85a6b0319f93315c1a90d5b44ba88985e1d628c6bde9c370f7bc5e4ff21c05fd", - "0x3f6c395956cf1646cd0d29daaa38c04348808f1d4b4ab9b10fc982fe7f7859d5", - "0x382629e494c41827cd2aa72222335ac3a30eeebe4b4aa96c46c7b7d030cbcc90", - "0x1bcd92ac47810169deecf5ba89398ccfce61bce2575758a0ab4a2c8f85058422", - "0xd0b960c59bf7ee3f06f26d6ad1bf16d0800338f495573a18a264146e5d1a68e5", - "0xfeada9fbcec6d22a9a7e3b0e643257a1c6c827d53553997571afd49eb80c4bc1", - "0x647bdf6ab4a88731217f8610b57c98daacd424d89325c6bd0f2b1a090a7bf527", - "0xb67c9cda2ceae27f1a59b38215067f902bfbb8adedd10a3379dde408eeed0a5c", - "0xeab82329a4d0f75125ece37caa4cb4e3c2a65f9fb39722d28f9567fd09a94dfa", - "0xdd94ff13aeb4191c18446ebdcd1d2449824386b081ebcc056f8f2d8972b0b105", - "0xc9319c95ccac9755526ec36a88d6384f288087f994d66e3e00759b9981652d0d", - "0x0b4cf4f195c7227ebc79cc647cbcf90d852cfa4cc1cc6a305fde8ae870b637c3", - "0x25a7434a908f27b204eff7221d4c3deca22c20331c5aa650a1455c863fa6b422", - "0x2bddd823ea545f3aca6b2fa00a3a2c83dd358eb4cc4cc40b1cc7ae4167bf0f78", - "0x18adf129bd6f7bccf32f1b5ff4cf8d855f17093a4eec217aacc4e0c96e6e06ff", - "0xe0a2c9da78d9fcde12fb306b339eff25b9f29699cf292e59ac50c5553a744b46", - "0xcbaf7f6c3d2af021e9780fa1fe40eb2126e7aec616537fa5d2746404a5753ab7", - "0x8826d7342fa3469ee3ade0d9b169542d5cefcb0edfef48e14c320bc97adcf24a", - "0x6274f27b101ee6f88299b222ad630e3bca648d86ca9f1a6e96fb811656dbebf5", - "0x1811856349dc02b06179e224fa22fee284d367674339407f1af8afc2d4940491", - "0xd8dbaca1f92be6c60dd3637d812f27f82b5a29adada0cc07f36257add080c3b8", - "0xa861c65b35da72c78d5948f433def655288ce2d3fa2c314de9ddab022b0c2833", - "0x19621786ddee5d87bca26828ab9ce5dafd613d2443f2469d87a2764875c64d53", - "0x62c927df988349a637fab53cee5ae65c81bbcfa6bc9bdb4723e7bbfb81760489", - "0xbd07c71513a8d04aa90a2ad6c2bbcb320cb0cc03ca104c2aabd7dc5d49cf7873", - "0x7bc71b4726da12ca677435e46dae08b7bfb2c2a8f3a3c5b98aedbf35bcf06e4c", - "0x858a08cb660417f9c32218d9e1cd0698d60b40b25e185f62373f7747eadc1a79", - "0x8962c42bd8fba724ddad94d51776bbac5a77fb98a68d7993a0c01fb83da6bd9c", - "0xa52f685230c3ae71cdaefc5758a66273ede8c4be2dc3525f911d42a5fda2de45", - "0x62153ab8a4a28289e73bde016a4fe58811cd02e5d659cd9f577c3611493eec63", - "0xa30e5e6005b1a0d9d4b7e86f7203a8139c26c729509469b3f8050b03bc39ca10", - "0x5ce8d37d13cb9a4d32db0b907f035b29ed39b59522e8485d1e4495bb3dfc1572", - "0x67719bbd7f98e2869713bd54329da3e3733f411b29a1193db3fc4398c8505ef3", - "0x00f2dbf1944283fe0f820c499c52a4ead45c5393f30455a28a2e7fa06dddfdf6", - "0x6b6526b0c31b074ff0712dcc57167dd50483dbd7250c64a2d93e126c7dbd10bb", - "0x36eea96f8dec2bc06f364dcb217264187b4541ee750fb8d8fecc1b2126a52a64", - "0xed6890d6723ed588fe2710cb30561aa92c788e3931c6baf1ded01bf9793422e1", - "0x5ba666ce9f3a0cfbb7b1bb7a309066164d4acee27fc19fd565ff55b0611bd04c", - "0x6e2a394127418f2825a8fde981198256797ab14608373bddf13a71062ce3e4f2", - "0x72f4b4f67f06f76b5fab3295a7e56e0f7b7e4185fb383807005a74ec01ddc50c", - "0x0dd58d0c0eddcde1173a19b9a4f6ffa8ca7f400e2300d0af3722f41f0c9b3f52", - "0xfa7118a28e8ef78bc0156a6a2fcba9e81544c91fba55c325ec4794fe012e20b2", - "0xc49f629ec1453253928a8eb4bb5cf74f0f0442d86d0d84a7dd0cdb99d03b3a71", - "0xfebc1806fb5560b28bc14b704febef947911904bcb665fee2cdeed790855466e", - "0x6dc18cb8f447987b1a80c1f4795de09e144e12407edca405dbcc288ac719e94c", - "0xa35b1a31d28f990ea63ed366caae0f75871076d22357cc66a87a999a6e09e127", - "0xe186aba91e09aeaa77f470cc71bf8bc6b18560d69b399df8ead5fb63989a3b82", - "0xb352ec9a9cd2d2ae801dd10bf737588e4620a4d6c636455d33124aa1e5361400", - "0xb12c148effd6855c73c44a78dd9f939c7e687fd44f522277ae4a1f93f53d26dd", - "0xb86482d56ee61d400cc8d9a38224b8ff94a6c9beab33a6edca746e5f0b8f6dcf", - "0xa6dff0601988221497746ede4a09c19d5a7a62737b0f40349a6c24e8ceb1a469", - "0x837e26990d18a624aa08b87e97d608e7f4b75a99fc57a77d130f1c44d417b1aa", - "0xee1bd06e75e4930f67c75358f64e43de6d854e7add62b8d802574ad808690903", - "0xc0f1b5145d241a642bf06baf7dfc49949df0c10afbd8e8560a6d06be3b760b19", - "0xef4cabe0abdb9273e38dbb9e09a63c0d1193bca951d82332d45d01f260fe8717", - "0x4cf2bfeb5beced066e4b7f79615091a2f81e50bac5c8c2d9ed2ef2ac888d86a6", - "0x9ce4c946df64447b7ad033bc7b5f8a62ad50df16853784b8cca241ad5191bcff", - "0xdb5fa1651fdde9cf52b418c2b070ddbee097136327f6b818b8bd41840fa8f920", - "0x45f69323d4e6c4294b382019053ad089572cffc3839f3fc8ac1f9924a0edea32", - "0xb686d73075b45237319c2ff2f743fc2a6f60dc0dddbbe6f414daf712ed6796ca", - "0x34750b64a414231766d84ea92a374932d885d95a18be77d5d16d1b94efb048ee", - "0x6beaa04579373acb926103909f7c03ced095df81ca87452e6d69535dee549eb1", - "0x50830466f05d582254340f6ee211d4432cd4020d4be1cb7830141bec8cad8481", - "0x5c9c21a5a614cf3cff7afe70e35fdabee67c8e90782ef0cdb774d909de3d1509", - "0xf0f07c550a8e6b939fb24ea1de8ce1571e8d6c329421e8a3c897d94ef3198b45", - "0x70c0a4c9b70e9653fdf91c7020a5118b727322702aadd318809ce083ac646aba", - "0x0cde06c1b9d6f5c0b895fbccbd8edc839d9bc21af4bd206f3f4c1a28f7e849c7", - "0xd3ea6feba310996dfa1a6e4e10eb1c4c4edc0fe0d3825553deb601979da10fd2", - "0x7ae5715186b00b86b0aecef3b0d487c96f4cdb4a94711f2237ecc185a29013eb", - "0x1b2828b6d94ea3e2ecd3ae0b417339148710af02a5054f256c217b67f8f55fcc", - "0xcdeac54edecef790a8c212d86c45ee9e097927a04ebdb13891e5b94370e200fc", - "0x9869b5fcf70766bbf76223cae9ca3b8e3ed7e01c065f475f29fd5eca977816a3", - "0xb80fdcce699c4c07b0265f35467da77977c33a558b215b0b9211105b6cb2eb97", - "0xd5d9a3f5d8d9faead565d5de6fd5be3d5a85621c09f49bd3ed7217d59e63ef42", - "0x226531c505bddf99730a2bbad5a84856f3ebf64833368ef14626b331ae882046", - "0xfe6a0ff6492f8e2d0f27785a71aae65868c7b7278f45ac9c13031c6933e5ff58", - "0xf0d19b703b6e7aa0873ce3a64d77fd4dab6553ab6ef5c8db4ccb360d381e4ec3", - "0x1a6379ca31f6704f9643c2944c38c4894150029be5953205e09a5c49d5a83666", - "0x5dd3e7414ac5b924e9d9431d4f69e87901bd066045d6bd0583e92104265a99cb", - "0x7417614538f404ab719354131664f75a5565934fdb35fe2b329a034d052aefab", - "0xbdde0aa58fe227c3a8e01f0d3ed21bfb13145c551cb3b75cee85f0e62c52825b", - "0x25b1b36e72306d5de03b22c4f4a99c94c67b1d7275fa7346ebc990feafa95819", - "0xddbad1f32840a3155a3a17e4710d770b0d0c8d4b9c959b434da223b66882f8c1", - "0x4ecc783780b225cfceeeefa44dfcb4863e4377946511cbebf730b77857ae1379", - "0xfd15b7b9b6240bea86a898d11cfe6d3fa8623e416857910bd9b4213331c4276b", - "0xf710711f4f26da985803eaeb05c5b07e4147e5ddcf61f400a3cbd141299ace37", - "0xc9b5c5012c4f380ff6b25bfd1b46dc97fbf71d0cd25a7eaf799ac5f7dd3f2b18", - "0xe6a1cc39b7dbd7c2a5ba211960422d65b87fda2f38d2dc309f06250f7b8a686a", - "0x19556445cac490ab941f7a43e65ed8856d59bcefd50f15862ecb2e14840c9d04", - "0x8a7fc62d190322fa9fd9a2a70937ad05fe89160b9cca33ad287fb6c24fd0eb32", - "0x9aa81f8a637bca3e0c43cb0d961dd5fe175a3c1d8417a61fe059447dc27dde9c", - "0xe45922992cb23f9b60bd5f3e3687d7c68f39ade4976aa17791d880a2f0068198", - "0x6b4d46adddc2335abe24e9f969b094a0495264607906191b38e0a176e9e280d2", - "0xf5bad7f048acd435c6d0017165ecd85b376fe9e264523b186c3439787fc7126f", - "0xe6029636af0630d9d84718419c0d540cd6738237cc3c5138b189af530bc65e7c", - "0x5f93c70bec8a8cd6f5de0d7d929d70a978d1dce3fc693fc6a8954fd0c2c0e739", - "0xa7aa14a7b0b6773c552eb1b8aa66451e4b368e51d6711902f932e80a7d54fb76", - "0xb48effcbb7bf47c28a17318971a9ee671ed249ac1932c86b1748715d78fb5419", - "0x38fcb78dfa98a0d2bcbd6e883a19d8d8a8db86e9f021b9fd25f5a309b3e91375", - "0xa16e055ffcedb90aaaea09441c16c94aa90beeecdce9f90888e45e7915e49115", - "0x4d536f2bd58b252a36b77738fb4b6ec932d914d27c343a77c3a87e2b37cac722", - "0x7f8e944dffdd1d797cfb1c9484f757f9860f61bdf5bc369d4ec26b740109ec0e", - "0xb86ec6ea0e69c1928fbe009e5fe1da9c938c36581b97130474a1fda44a1bd294", - "0x268d430425915224ec7453fc7113eeddabf368a6e60c00af6af4d46147a5d434", - "0xf2f2a68002878abe219f5a1f1a13bb2b2e84dd2d39c685e2868068c4b613ce11", - "0x691a1eb375b6b4e66c3dee0f03c15a847716a4a76f561f4742f7a7774925f6a3", - "0x1e13e49ce69ca70e4bbd74b020daa2851d96ded8279deaedc846339739eb790c", - "0x058ece03bb6385a48ea9eca0e35e5853ab040c6ca5ba372b2045b0597b426f55", - "0x2f2b782b6bce115d03df9c13c6a7adb7413531ee9568dbd9655bbe5ab6b06141", - "0xae45abdd224d09b9a05a4503cfda3d2e24db0cb597d370e9b5d5da2e37111525", - "0x3c51f84f818ee4ec36e79e3c42abaf50973bfdeed693f6d0f42a2b8c097723a1", - "0x642d6459728b8d6036beed800d20d59280b8d5ea2e210677ed04a5e7973fc1a2", - "0xfd9ec30b1a0d27c8217e3bceb75aa545e659609ebc144b6e4a23fca1d5e90d35", - "0x75e0526f30a2c6c6ca9add64d1c3ca20ff988f22db1e6fbdbeb4dc982bc8f0e8", - "0x1f13605cb2f94d3c8743c8ad3eda5bf7b2a6d3c1c117945744aee8b8ca3289cf", - "0xa62c5d59536a4dd61c0403f85be6f247421549ea7b251e44c21b010a3ae4a76a", - "0xce13aa4fe702750ae5561cbc6f2bcbe8b0d979f7d1751c80d48fafe85b9125ff", - "0x4c34c6c651fb179649b65ee60f93ed64a2ca11f6699e06f9e8e8087e60f81a3d", - "0x53a18b307f80340116beca13bbb10b05c7fb6d65cc4bae466aeb0d40d9da74db", - "0x62897236794db02fdb58a255f08c7abd253f2885134e64ecbbcd1a2e20154705", - "0x996a4c7e9143b80e5767fa637d5370b94591ee336e0f23def3d83f7bad0950d9", - "0xf7e28bd31a3f39a93ccd647030680f970a358bcb84e7a555dc16c6cedfedfe22", - "0x54793ae31a612c9d3d4480b110fe2d2603484db28336459606f672bb0e01390f", - "0x9635672405c8519bba38c1a046f309958d3ee84ca9cce5722146725bf2ef933e", - "0xbd69316d6df7de8a3191030317505d4c4cb6ca8ff5bfd2fa517b76329b912fe4", - "0x3cbe0d66905ae6da05163c24ea90012b8c3acae38fa277f2d8c0e7547a9d7410", - "0x7de8ffaca8d51bb4e59ac89e4b45668c1065996374537204a57870494304bb38", - "0xec1e60f536cd00ee2eb039c48f2100f86743e20e9e8911fae2afbc27d03212d6", - "0x643275d0c81982562e1168553ddf03756d6a813ad92981140879f886133d7203", - "0xfa9a2ec8e05caac288b5fad60462e47fdc64d7b15a0a7f09032431195fbf6e92", - "0x69413e7a6027e5d92d2288b5f028b9aeaf028c3926c779432ed15fac245d19a7", - "0xef20cfc76f417979ce7077c979576bb534f5d5bc5d052af9311cd3cd4d2175e5", - "0x6e560ad9ca9d868231be72819523df157459ee5cce76fbe643e9498369b3e585", - "0xe7739c40398901cd392e091c3a89eefcde07f9bf8e9ee7fda288e3ab24e199ce", - "0x3ff97067449cc13213dab1a46bb66a69997ff1d18efc13d22673145eea8420d8", - "0x1c8b79f893de6e0b46c6f624b1976b47de4ad1568dcd90486dc8283f570bea04", - "0x9fd5f70a4b995d6507e6a42b48ab18f94ac1623e81a147b40c2455ac7ec5ad85", - "0x69373e6e19f7128556c1f21660ea17556e02a530c10bbcfb2de5627fd8e07b9e", - "0xacdbf097f72170bc86f923b172cc4315a8e81cde71b034e2f8fcb9d6752938f1", - "0xbbe3ef5451e45de728039133ee6447b9c2c605aed3a8f808d547ce0412a84a51", - "0xce506260a6f1a254d233e3b32246ba6b0d5ed91d384f55d1253a28bba8534c09", - "0x0a9d69289d09eb6b010640e7e79256d585d73e3dd6a09701c5a8aeb80148e3c3", - "0xaea8a91738082e2038f741b2b66e763ee4490db3e219e7a13e573adc54574d59", - "0x954fc41b9313524ef8584d96fc74b8f81dbb5ca23d7997498716250cfce8d4be", - "0xcc551b51b81be31d97868efa1335801e393b595cd9e4b303d3746bee55869f16", - "0x77797967766e311fcf5d4a3e89a08a7def1b3561346e3f7815b20ed609d505d0", - "0xd2ca2e8da6be2144ce29093e936a59079d9063f887335e7344a2515a8f0827d6", - "0xba3c00208b678c67d753904474b980e77ee05935633697933cae0feadd4ffcb3", - "0xa9f0edc2d5e83dd6b3f6a8fa6cb24f5a11e290e9cb0f671e8dfbfb66e338ac5b", - "0x7f4944b4fb1fed2b17011748925d7d3d88c6a4bfe3331d03da00cd2303afe9c1", - "0xf8961b65f1d6d7be13006a64bc4094d57a6b44ca314b6cc136172e434ebebb50", - "0x4f51ef2c609c7d26d4323cd169dfeb667a841d646a8174830a34370d869c8c71", - "0xa45c68290713fb2c841916ea5b2b9bd32f3fd1c004328b99ce07fde9ada41710", - "0x3623a5202ffa0877e3f5050afd668810e725415c6ebe3003b866ae80c54590d1", - "0x688b978803343067b7004c81f391f8e32bbe6a729289ee2d34bb2cfb86611342", - "0xca75d366a63824765081bdec6292e4605607b1a7580451eadf72efde7135906e", - "0x19ee65d9a8ee8246ae0f0f3c769ecc7b2ad30763872c10a48d502514b30c46ce", - "0xbb08f5f21189afd3bb2049b05d0e6486ba7c2f06ffd968ff7c81cb0071ad672d", - "0x9abdd1d768e82aa8ea6e33178ba898f8295679c6a27c13063b15688720354919", - "0xe6092e5410ad28586c919c8b28cc213ad00d98f356863cf18182532386e4b615", - "0x22ecfe7c8a242323151b1232d30264cdaebbc3540f9ebd91b7ed5b79305293c9", - "0xb88a824d760f95bb0849c1039ec0d55b0a5685f414e53006b918742f4ae29266", - "0x02766f872ed3b29b795d6276beed7bc06f900de45d2333b07776f05d4aa958bc", - "0xa7c8fcfe9b14231731b904f255b56038b711ca83928c86e7224d8930f3aff9c3", - "0x7f992f4b04e56a4d7e63339e5647dba19a7686253f23b17300e238fb7dbaf020", - "0x66df9c89dd28454097f8d3c1c74db2f770b1dc2ac30b77fa6935efb12e16b1d7", - "0xa61ee0699ef1f5e541f1dc14117dbc210d9f36987ac5094394f5987f6bfcc1e6", - "0x2c45e5dc2953619d479810eedb7ca9ee5154ac9f78d639efc05c61e6c60ceb8a", - "0x762c10a410896623963ee11e20cc0ff22aa3a190d7c6ae92ff8071ed2d772624", - "0xab87f1244ba144a65d19dc78fc21d9a096e81bfeca1a4ca81c245d72d91137cf", - "0xa25d89d0591fcc9599acd434a65c3c56beab1602cec01160b1ea4a83bd7a980b", - "0x47ebd358245683f93f0ca6aba8a68dded9926ea691b08fa74757065af6d5d74a", - "0xa0ced4565fd4da621b5fa8793a527dfb87f2ac0577a7e4d7c1130ba2824b56d8", - "0x53a4c9bb0de061ff05bb41356f89d7776164ef279609c0579e0bb60d46f7a1da", - "0xdb16dd0810092b27e08ea9d58ffa0dc2ab9e0244f038ebb789aeb1910ccb1d50", - "0xc0f2f502541a18fc1237bd03b704cc40e0795005b18ef174ad05580588c83767", - "0x94252514f5049544c1a1f9424940d9ad00628fe879222195e7e943418719126a", - "0xd8b3bbd5dffa897a5f0899246cee2159befa2717c38a42a0019bbe3079d44312", - "0xc9218c6b8a4e717d044a4a25e0faeaae12a822bebf8047a22964dbe9ea7fa58b", - "0xe5e9a54f1f97724ccbec0ab1b660de4373134fdef6566723d25f80100e11cd39", - "0x68a65e4b75b51fc1db5549b95dc302498e76fd7ab360624d39ed847dc0ff870f", - "0x9224d78122627202226721b229cfaee68e61ba965ebbe244b5f31af820cdea06", - "0x24f4ab3878d24b7a290bf841b4e7172b7c8ffc05ca7d610b36424275640fa75b", - "0xafafd828658c92c1bf7f0fe6852d278e35661723a0fb8371afa6d7c79f886e8d", - "0xad3cca1c6bcb850b2c44064817f31575d48c56ac214f55a1134f907c495e2a32", - "0x98cc755ad41cd8c7984b103a920fefa77a208b5739d3a14c58d4829f925d975a", - "0xc99b328941a669e0095023db31ed38a45757a0a3eb4f7ef32cec80f0cd354c95", - "0x7c616e1f233cc33555d6f5f43884e385c3af408a586e32ebd52253f1f376ce38", - "0xded9c6184a8f2e426555d10ba5157612056ee4caad0d78b9575d5f3cc5d2a04a", - "0xcb1a955d0dff31d0b2164932d7f3e41e0bc033d353fb80bac5b931ac2b22a5b3", - "0xacb110c37539a77c5bedf5f116274839182d44f5ba45b52a08a0d87575d3a228", - "0xfa9151e46b2fae374129f5592e2350f40ebe194dbe14403cc0dfe1153cefd964", - "0x43982605d335a36b1a46e6dc072240ab39050219e4f241666d4c88a96f480a7d", - "0x2364261ec4ff16a55ddc406d50c1343e439ef9d4ac29d52c0582c95b796013e9", - "0x173bfe3a62c88d2df9793dc247b09d379027224c4287fbe6bc2c7c8d624fd86b", - "0x9573d72cf4be5158a7039ddf51074bbdf912cf044130cebc6369e20c0fdb9594", - "0x1c74b9c52d285c62684fd3c7e58c402be0ba4b6b0a7e50a67401b3020f5bc57e", - "0x21b4c16200f7312b91c3afdf72c99f57a1a28754c0b3fa9420ccd79230eb0175", - "0x28987ce9d2d35bf51a5b1e9fdfe5ac9676a3b7ea0175c89ec84edfa66fcf1ad4", - "0x8e0c39870ca2944a19a399648f16776066726c54a86391579f6ab72b7ec0d47e", - "0xb9de199f2be5ea32384a74c56b06393c51685aec5e52eb8360e8e2b5a32c892d", - "0x9b8156716b03f820ef52f12a68229e716f2c2c1017e08c3b7e77be97c6d0d4dc", - "0x68c5259cee376134bf35ce33ce5729e059fc1052e7c134d1bfeb19c9b9acd0c7", - "0x7a3876b9ac278cfbcdd4830880ef438a430cc830d78f6cc005eb4781380522a7", - "0xa487271258604ee7dec9a306177d5216536f9d62ba20dfd057d60f046b8e4f74", - "0x7f5bd998d4ea80cc0830bbbc0f1b015a198e1d48e58fb03427e45d7e1d805e6f", - "0x680280c7ea2419d4c9e909aba9c469e8ed7829e69a8101b1205df69edf6493ca", - "0x403ecfd702230060d50d1473a243d91738e7df75c4f76c9fc8359a1eb1e866e2", - "0x59fed28f3f4783b297b66a7254eb2a089f082534ca12e8e39243b527cec98c6b", - "0xe05f2b55e5a9180fda374df06b3ad23063950b5e91a3e8745802ce0dc3ffe1e6", - "0x9b266d0df4cb0bd394ca42108e6167d4bc2bd56717ffaa467126cbedc2edf17b", - "0x49ad1b4b721dc959b911767980557a70ba8c616ea5cef04c2aa82dd4b7b4fab6", - "0x584440e213b2551c6ad58ab9e36e707f892888fcc14b15ff789d1084ed0f9a29", - "0x679fcc5e202da23085560424a550b0027f3954a98c47ad80ad2baba5f0e8f3f4", - "0xbcee5d17f10c56fc1bb2cf1b011f76232b6b90d09517213868822e573c8f90c1", - "0x783e66e42aad8192058086573b8babc38951813ab42e97c52738e8ca6fbe8798", - "0x56108248a8d19a507bcfb1d34dcbe52dea56bcfe39bca5fa100501beb6539fee", - "0xd487860b420b5cd5f6e30783cb122dafd8f95f8cb490fb41d7413ba242b50927", - "0x6cb932740f9ca018fa81068501b073572b59094e08c2ba40dd1fac3b9736a0f2", - "0x9213b4cd1d643ad6e6dd78ecc50901c3504f3228bc38480d4e2d80a835d7da84", - "0xb9827c89e2c4ded0193f841d1d93ba9a50c125b165b6cc578ebbb59e1c1e3c2f", - "0x4a60fbbd3d4cdd3a5afaacabb91d9907b54f24cc2c0b472a102ebbc04c6e1d5e", - "0xc34e850a8ba61ccdddc521b6c78889e8f44cf842ad051312842b727478b0dd48", - "0x428440624d658328e7f71e2b244f6ec1d76f00bcfd38ee1a6505041909dd9a3c", - "0x86187fe09c6da9685ddf29a8c707a8b8c07dee71af385570a9f7688dade56860", - "0xeaf224bd9a1646e0936a58ec76bea3f3c15b0905ddc1e42a65d916790696f804", - "0xa0323441bb548307f09abf7c633c0939af2ba068d330177702017865126fe665", - "0xbaae7f994479b34cc6c3a187ce69f769314e4b16cc75d8db676cd471539cb8b9", - "0xd6a97586d7d492d4eb7d4207438d3b260927913040e665b04dc16fac1790b7aa", - "0x93958dcf84bae3ac5abbcf8d663b512bd4698e52729622ecb110387004b3278f", - "0x726ebcb9f4402bcc67749b9bf0e898d6884a34bb88dc42bcaba0928b99de1ce4", - "0x7023076f7ec758a3e7cd7084938e54aa4dad0733c6f7ce5bd3f9316671afb41d", - "0x7cb1c651811bb0af1a5a20072295422f10108dff1792df72fa7300b228d24a30", - "0xc67142637f2d4e57e87562d3eb21d1c9f00743393b8741e2a48cb9c1e7c92501", - "0x3d1ece56ece2a5a8f9ad8bc6489fb9e7d4cda7aca8e9cf787a55e44d40c0eb08", - "0x222a3adca2d078165e2a23f7f5b9ae308ef2d1ec5df16e54c1d523b6f12c9c49", - "0x8e3eddb190424b16d955ef2a352fa69d0c3c91406903e20fc93baa163c448494", - "0x08d24146ee54b8685ac2bfbb67b2fc2d7da0c8cc1b31343cf83e36a076d588ea", - "0x029b75327ea0a6607c83b834ae5afb64fe7870d0e65f0411f4c0011d1bd304bf", - "0x51df1dace22285f5e23451d54f792df6b7dc901b15140e0227b883fde1bae7bc", - "0xc3cab27d73a2321c525e584a726f1c2ad950dcbab18be2c1f7a4e299c8c3a2cf", - "0x432581bd4637fec04aac93de42524f33f2cba4621f78a8405a2b41a4dd18a2f3", - "0xd0557870826a74c353e934ab21e08e35081ff7879f8b323e2c9ebeb23e3e3bf4", - "0x31fbf4768d13bd4ba011c0adfa7ec2182485444299797cf7d51bac3c2445c6a7", - "0x2c17643506d7fd5eff17b207aaf55e51b9cc67c2784db80b9f135a52625c3323", - "0x1f581185e5f13fb76ba2f381f37c1498400ec61578e5d562519a1fb7247b66c7", - "0xaa843b8dc6968a5fb88de5979d4883dd05bf23ddbf076d148547941ac5cd4e26", - "0x650486edb00e65b08acfc08e7d4ad89a9d1237463512af6aff53c7daf16a1725", - "0x234ac9fce1857f817601764d452ac136ae3f89d9f3fd5ef4253120faea881de4", - "0xf568041a9ee5d4ffcc8187e9d6149f282a4d329f1516d408ab6106aaadae74bd", - "0x3ff2bdb830235072ea6545663a12174a17a2f5efa070568d63a734cd70c3361d", - "0xd3678c705a33a9932e625164726fa3dbcb3fad8835fde4675223acaca58b6c58", - "0xe865e21f5e13042da52a933d94e447b90cd93c7b2acb0d9abe223ea5aa268214", - "0x14fff852295e2a1c907aa54b3472c88293df8b51ab2192292709bc92585d5b06", - "0x8a48c21de13833a70b1f91128ddc9819ddcab4cbacef213b0ee63a72d0c87f47", - "0xcb0925187bb428b7742600ccb0692612b49ac9c6ac289055cc668be17d0aad07", - "0xcd9555b8791abcaa3b670328e82ce9c9cc265241d49cd1c77c167b4abe48f3ee", - "0xd2c33c47d9890500febad6a4e2b78a9740917d47a228b3d10948483274cd4b5b", - "0x7861de7794ab5d325fe5b78ed99413dc5976d541555a0304f39be7d1302d99b1", - "0x3a3e2432c3bd72c53d8ed99ab60b5e1a53218fc08ea62f315d05da7766da5b15", - "0x6905579f8ac0193e528b0f86cbd679ff4155e32b8a6fb4a1a0cdbda543dfb81d", - "0x5f0e4686fd7c5ac11413571e716b03dde138c444606d44244ce4d3bab2916107", - "0xb1627edd75717823e0824e3e3689dec2dae9692c91a611d5afdc08779d65cdd0", - "0xed51b24152f2595ae3200f4aeabe1a72c2c996f7574db1e072fed52ec531775a", - "0x4202fe9aa1fbcd3cacf8c1ca8c616a531a1c13b63578925c3fadf66cd02fb62a", - "0x3875a92a2a1fdcdc0fea135aeb6bcce59cce6a493037dbd9ca3c19f6d96cbb6e", - "0xc865ea4be94423d94a6b84cc9f31cd5eca878e461d433ae3275512e442c910bf", - "0xf28c5b3dcc1f343561953f64ec545c89ced8b509c396d1812ca19e2041a17055", - "0x7cbbdd412cfb0b140a1e121cec554a418818bc17f80c1df69a2b43228c37f82c", - "0x1ad7f4a3431f8d2e5670ca885797b7eedc9d5ec04577e79a81406c2e503d0431", - "0x76f07c15d91f17028356f09f4407c020b5b9548f3c8e5cd2de0b37989091f298", - "0x75382bb178f190aae8dc02d266e9fc07b2e4faba551e619c0434682439e0269d", - "0x2b564f0a6e8eb4f829cd70ad7d97f379bec1d2326508e155b8d8252b9c2a305b", - "0x8418bf6714467d26e8341aaea2ca1442cf34d86fbbcd7c3e63da0e895d8b29a7", - "0x5a17e1b9ad15058155679d701e90f92989b75f12f02c7568dc31cfd8659d25a1", - "0xb21f76fb217213c6457654149dab85b87305fe3bf83b1805791c8dc2376e1268", - "0xf3ea43ffcdd0302c11fcae3551982e90af2f748b9ccec50b04e8435327cfbe99", - "0x4fef91b730cbedaed0049e0dc36bf14360256dd2449e3e925178cc46d3156697", - "0xec7074e2607bd5e0f228af7b73c7e39aad72d17019c2afffc3ab647d78939f61", - "0x53f34be1711c68f9a765da967c60fa39b72df4778e8ca7967404492f7a353910", - "0x6f0492df8bae724540b7a1462371edd74c4863c2c8cb6915a86545a36f06f77a", - "0x35898b077c19c49dbdd9415a6c3365636e9a8e98e0760d8b537ca12d5329c9b3", - "0x1a1c020207e42587d674c1275673584f0e239e8c1f2b4f6d8c98c97338bc182a", - "0xc46a3a7d6be035fa17a55b963030326d25c01542f4ec5cec431c012e5ac6d52d", - "0x0b29f6f0e29310a49fcbf18c8783d1dcee2997a62cc19e9c20ab524e6bcccd89", - "0x4b6a5d044ea31f51124c3b8f4c4a58eb9e7c922444d7ceafc76e9767ec2927a6", - "0x003e2e364412086eeee06b7eab2489e258aee32adf9c8700b3e33cbe8c594d7c", - "0xb1713dbc4a35cb1b3f4484eadc891d745dd5584f97012ccd5164f5662bf12c57", - "0xaed111e5b0ba48c69b8b765c11d74e5554fb0655d29ee73f8d38a52071bdac1c", - "0xe7d15702135fc0b830c65f60f74ef407291a634610b39d1dd6538b18f238654b", - "0x30d7bd4e83df5535c96391a6e4bd46d4081437db2911f8cba7ec40d3d626da37", - "0xb659fe1e992a428c553596567583c5aa42a297eaa3fc5a73b2705b03eee588e2", - "0x7174740915226124623dda7ccbe6a559246b8162cf5cc942ed4d1adf7ba86c06", - "0xf2847d813669654e775dff15b5484fb78f940a61f170021f0e74e5b0c4ddabb2", - "0x1acf93e0e1d6af4c48ee251766ef1bb2492fc25f94471265b940fba3ad55819b", - "0x3a8946be87b92d13f5668a3d48b8258c6c8d585c008d5a42ff460ef14a3ac6d9", - "0x104838e64202e4a90e8e8659f0508012e6aac3d75ad48be54fce69c1b536cc65", - "0xd80fa0b84016cfc95a15f4b01d50ecf4b06c7affff144ba226b24674b4a7b96b", - "0xe67240364fceb1d0b730e15e03aa92e1d88aac5c064da3a9225533ec3f7a3cee", - "0x74924dd757f836abaf12789a0f241dba89a42f310282f3e126fd88c96184f299", - "0x2998899e920039c7d933217e35af122b0e22d8fb8de987d5a607d31cd29d2f03", - "0x7e103626c39bf10a4b8eef446d6266994c5f841748307031f70aa23a27565a45", - "0x16446aff8ffb1ddb6894a7f62fa813d7c92c8ad77a797f388c9102055bd34524", - "0x8bae81870b92e523bdce4153102a4c46a660fa36e40ff0228043efc956adeeaa", - "0x0d5e765b9a18172b9a374782f22c3f7b1d5c8191c5b85f99539fe4728a8221eb", - "0xe256bd6c4c35dd174b2119941bcf44af1919616987b3fd3f2d2c67a56c0cb727", - "0x515b83d93a92b76b4d341b75c5b087509045451cd4c97c4d8f753f606df4048c", - "0xed27094e0e5a132112ea97fb3e870080b8a79c0b24e874c7f93dcad5b5a5928f", - "0x549b8ad126d1256023759a2e2258b35faec200d467baca8c37fb616c845977f3", - "0xea971d1ebe07c22175addaa244ecc91b2412bada3e72b5c437300f34c3ba07bf", - "0x3a892e84b04f593005861047dc80db8291fa6bcd064079b377034c9f68ddde20", - "0x7bbd6284646d4668a09ed02df281cc9e0d8f668ed1170df627e5469fb1892037", - "0xce47a83c1c1239e1457b46356719f525efb37a5a60a2e5acc135afb784acf00e", - "0x7d023404e05a3bbdd246b45d6af0af6cecf6366798ba49f220d5335d3baaedf3", - "0x5e4f0a84c2ea318e7711dbaed10bb0941799d4f7f5cc1042af3635c4c43369bb", - "0xf20c0ef0af68d2cf69e09e241b0211c32264875aadf5483677e53e221ca90573", - "0x77ba703780e366b14f7ea143c2319911c97397fb2a35f4cbff1486f276c483b4", - "0x1dd840bfb6128f00c5239c3164375ea008ea7bf5dc953c144f3971c72fa13050", - "0x0ca150e42d75dafe6437aa92ce4bc59557a7baa8eee01697b78b2bf889ddee4b", - "0x470142189b056c2962e3169f119ac26b43579a91aa27c61354ec283f88c4d205", - "0x61d1b32df70db397fda56f0035968f9d3d2bfd2fe1c3e7ee3dd65ead896be04d", - "0x4cbb9a330c46cbe61c2242813d01e4b9d96c9024c82a817d4b4c7118f30dac5f", - "0x8252357b329a1e68a32c75310704b51974b750062567aa88adc165c185a0633d", - "0x9d3aaeea1952351c07167400958033ec5136e884ebacc52b829b51459746326a", - "0x7a3abb411568a0b5b40909bbf547d5c39c53e839ccd68a86fcdf015ca52ecd0e", - "0xb51056fd9332adc740bcb96d7132c749abf02f1e281d676c451904f3efa38320", - "0x89d4bdebd8b6619a5d6609cd37c4ee4fc544df7a86c75d5f026a065a5053d7ad", - "0x7bfd3be6e1d68dad69c38855b80b289dece0a79ee4b9c6d0dd36cd4eb20fc401", - "0x0ddd4151934060f65f7fbcb7fdb2a617aee279367d4085e10674b16d8a5e4426", - "0x65ee7d3d96e335b086c4f6f5b8e5a93b4d0054f3f264c666acd39bdb86781ff2", - "0x79eda3ff5ecb743404c332e9c8710fe2c22e8233568e27b98e5e13021c0446a0", - "0x117ebf4d1e01bae39b6f95b66d95e057160d2177d24d26d628e5642b83250efd", - "0x29c35bf3a4cd0fcfc685dd5ef82bb23a539bdfa06907e10966829ef2c56d8854", - "0xb30ec9f98ec0cec48714d80d6322ac6badb4d0293c3beea4540da8f1115e0e9f", - "0x9d0ec950a87bb27eccea63196e9c4be8b91ee8cb8f14d58309c317124c8875cf", - "0xc3b5819646075f997c2fd4f79b7e7805440c1ae294dded722ddb22ee7fd7a099", - "0x098cd76c6dabdd013f588a48c75336631af0d14ed3b7748d12c85a7e0e93a313", - "0xe01ccb6a5f21f3c2a1c3761e7700ee64b7ed6192aac8b3f0e160f7b9d3bd0ac1", - "0x6ab889153a958cb336577c13db174174813360284c8f4609409ef57b7240565d", - "0xdf67e4ef6e11e4f52c052820d005d857c0eca882878b0a71bee7f22bdc629d53", - "0xc60703dda6612fbbcd3ba479f28c169b2049d3ab1f597c558149bc062d19313c", - "0x6e749f8217a0a51a926c88060c8d349ccd85d387c802c40b20cb87f51586df1d", - "0xf29fbc40017a9bbfea1c28a74c3063af72a510f9c99c0e981c3fc9d83ddc5bcd", - "0x76cc861f436ee8a3f1c07b644842ed5457563812f60756edaa4927a047ecfc43", - "0x84e7eadae3bfb61d67e53e00aa45449f04bcb50e215835687d63665d6bb7df63", - "0x8deb4b71040ffa0c5cde5675af9b8f9f4982a88bd01981258e871073e19c759b", - "0x3a7ac758caa8e2def1d290c066fad3d7daf68ebdb7f1d5b5230b3c94262315e1", - "0x9319124b08501ed1b53e06290face78c0f7b201fc8f812f59b469f6fd30581aa", - "0xa2855c6f26e090daf60fd17c4bcb771fd5611b9e1413136a3fd21eea2be7a3b2", - "0x82ed06497f1bef352cf027589d608b622569559d29f3cdf652f68cbbfb684c19", - "0x74321929990b5436cdd6e0953bee4fd5bc02f84e19c9a3bfb40addac61fda88d", - "0x47d4b298d5335cdfa6d09c16cf23cb98bfa4672a0fbafdd784590cb705f14daa", - "0x3d7863b734e1ce7d3a7bb0c955704106649890b4d673e744b8aaf8ffed36be6f", - "0x14abd96e4b25c3583df37755c51e384087f639fd5ebdec4fdd50d49017cb90db", - "0xbad65145878c7c313373306d6321256f8bbbd06cf58126f79c356e7ceb6d0301", - "0xc1f71b60be43810973082ae2a0c690e738992a3613b7c8286eea6b211b1b459e", - "0x1d18d20cc0279a7ef9921859fd3d0fdcacd66ee295f0e5bf6812346fe54a014f", - "0xbe49d176e2855dce010fe941b6098d6ef74e271ea846644072b6e508bc239044", - "0x828eb859148f295e5a0b2ba813b43caff82afbf32946e0bb211a6034b93ebfe5", - "0x7402137aa16d58ebad277698c5412c5b756796150594de6ca0f392b04b7848f8", - "0x58c83c4de55a8a562642bbd571d4c23a8847f8bd14e99401680337e474c05fb7", - "0x213aeb2dd7b400827c08dd326699edb7c5d1dc2d10f2f7cd43f4f3363b3a053a", - "0x7c4b1c80296fc55182b032ce8786473d56688777b4603313f990685e6512bb02", - "0x5857ef59c14c702bca8c358b55a2a67291064849e320363f484fe6552d8a4ed7", - "0xc4f927602edf49bd2f50c993bc27ebdae82192ab786a734679b6208b9d0c480f", - "0xf5756d9aa1f0f203011b0fdc18279ec476cd24e9fe3393e870326a4922c8b6f6", - "0xd3d892f6f4ce7862ea7b47995f8e80264f460792682632f8bd2cb01c67570181", - "0x347baa7431a293543af9c144f83b2b8d8103118c81420d61eadea1820903e9e2", - "0x01ab0e1aca21b0875155eaa8eb561ee417127a3afcfdb93dd6a0971e410ebd35", - "0x7c72ced65914db2173b71ce0e3f3ddd08f1dac47bcaae0f9083b164058d5c056", - "0x77a88cd8f15083f876b0f6f928fc4effcd877c837fc2fdb58be16f8172cc7784", - "0xb40653715c8da901293838858c2173213ee3a49d9e85619686f2e2c2ab839c6b", - "0x5d3f9e2521cdc44f2effd25d56778790464ea1ad23d141e93a30bfda7157c9ab", - "0x3e0beddf45d506c7c6c25f5478074d54d7f28f627a8df2eda5db1543dd1e834a", - "0xee28b0e24ca590a5a1655ec6415c1f57dda0183d6b542501d1e964dc61ea3d6b", - "0x3932f898858fb695d39a02c641eed26246be0754b7cedaf91518ee8a2b051fca", - "0xd9f7788a59b6d6e43748e1f1abf8060bd23555fcc5c9b4987977de0641f28fc6", - "0xd5297bfa280857285d58a24f591fa5a7c4b575fe7318cb531a445d24136ebac4", - "0xcae4abea8b7698ae9e55d133a676b5cd611698492fdf0f7d24ae3decd7d1a389", - "0x0aa0ff5bd3e0056d6663bd54ca7663aa2bbea781bfea228a4467f1d0192a7a94", - "0xfc872737974fef46448fab89d5811a61d8758aeec65b20c03a006a98e3754edc", - "0xbe60d4cb85ddd60c07bb1584456852bc36b72cedcd63d5c9b302a09b14cf1bdf", - "0x755aa31ceb9213270dd40124315d413cb053474ed4a60253a5d6dbac512c7744", - "0xb970b237d42706d556c9571b87466457d6e2de4d63fb405c9c7fe3420f35839e", - "0x977e976fa982e2a5ead22edd3dbaedad3e6ae885f00c0f48b4555c63802ee930", - "0xb4db2e220ff78e7a91cfd2cc31140f27d45b2043cd5147e9ddb9fee77c57a5e2", - "0x063e555581897db6caadd7a1c3a1a2a87719f729b0f43b9da7cc86460237cbad", - "0x4405a8f586646aa49d47073bac9c864c7346119a977cc5a154aa6ad70a50f894", - "0x87e09cc5759cc1b358d20955f97ff0e403c31a06d1f6cc6dc96f51a80570db40", - "0x432c4d29b6908bfdcbf466e3ea1cc93b64a6160748d4940ae6f95b45a804916d", - "0x64d99506de841b4b8e741f021be26327fe9d7ed2e4f0f635dd4043b7b174fd26", - "0xfd40a7dcd533928a2ee74ff589ae38231b84e72d7528e90a8c904d8762e07c4c", - "0x907626552f68f88c36192023bada749a6666f9a0b295f58c2e77515baa1e6a2b", - "0xee4c1ea1d8bca82456345d114085f34485bc44ef62aa60a4a74d7c2a0a681e90", - "0x81c59a12b3c1ff323be43f0d9d1fcaba87edbb344493ee1c426cb814b7e11509", - "0x11ac288f0d0dd1bbcfb335081a0ba30a74b6690b0dfb6290312b99450f257448", - "0x82194511f886f7f93b8b243401c34f80afdbfb5a78774b71a4334de6128c7a94", - "0x29f7f0319e09462e906ee0175dd3c10b09600a896cc909e2c0669a90642059ca", - "0x5f747311bd625822725d2d665a3ae4e3d39d0476bab0b4ab4d314b034bb4b581", - "0x82d29ecdbb2b66248fabe328ce0f441c904b0935f0c572fd860b22cef7037e29", - "0xb1ae4eac81c4df41cd26df2dc365a09696eaffb0bea906d3a24921666298f3db", - "0xab305997885a76e7adebc357c78149ab13191eac73807d6bbcf189ec24447eca", - "0xb93e7ee92ceda5b17d5923e967817c84239ae3dfc4f932f28f4ff12e3bba4b25", - "0xdcbea5c2455d6bd4c01ac3da32108436a11d8095af5d02382c12e9adf64ea941", - "0x379af62a4cbc14781860bced0eba058b58167966d5ae31a9545e80eeb8d63207", - "0x61e403db38f76e0d93baeab28958999670da2a94c489502bd2e3b2dc14049e64", - "0xaf921bc1dc0550891d487a700625147493f3a2521545f0c8e2b479578bf5469c", - "0xf18e89c738315e1e071a7595b3e78f142d5e97e6b55b8bacd2de3cd66f5d44c9", - "0xafdad2f30f695ef2e7a959b3c2189e27bf99e161e62bdfb2aa2c6a2cb38f4a33", - "0xbf17fe640225f213c991e813d23e532f5b28425d5e0505442522e7752c916d40", - "0x75a408cbad5625e898f00272476660c2638392103edecf964e17af303d35c67b", - "0x5069c2e3c907e243d4128b4d47e9738273f5f8c2b230b2172ab53787179a66a1", - "0xfb05bd9d9025de9c9b9c1d618f7e3b965b78ef6c05933ea01600e0dde4c920de", - "0x0348dd9d08fc716d85e68ce68508f7565daaae39ff9cfd1242bdb7be4ca9eadb", - "0x356e5fbcfda0909e6881beaf83310addf858aa5c26987eaf6226bec120035557", - "0x2c86f13922af8b1d58416b1fe079176167ee91df9a494396f13c1961b71b1826", - "0x58b5511b329949547f268318f4105580adfff4f25769e50e418bc9a418ea4494", - "0x3115256a0d6e2991da187eb0af2060a4bdb8afc5af246d9399b7cd5861520dcc", - "0x9512ff6fe3a05d2d322286a1ba4eee64c2bf00d7b868b98000cafedfb0f7c963", - "0xe0a81678dd4ce59096b25a2d1d0e56c3610de0b2044655813192f97b36e71f42", - "0x9a796aaf1293ff33270ca51338eb3eb4a180b37a9a6e8e960c310de6cf885f11", - "0x4fcdd484426e7c1311a334b8250f700579b4a62604a4ebd158a1263ab47e1253", - "0x52ffcff66546b02f93ecf999bf048f0e8bd80616e0560984b65c7f946dbd33db", - "0x10b276984aad9404c37747daf9afb88478894e44a38f33f645f9da1f165192d5", - "0xee534544d636177fa1974cdf8f038d807653d7f4841a3f1cdedd39e7fd58fb07", - "0x18ebf306aeab781847e0c3da286ca9fd3cfa5acb3b68cc8f0b96cc271bb5172e", - "0x994e4471831fefd58bb7ba9e03c36cc1449b03841f03dbe9fab64fb2084c5a54", - "0xca6c753d0d81b8b693d7ebb550e4d2718b495f22739930957fb17cbc15cd869c", - "0x351225ff4d086375ed5fac1c0ae4c6cf31752f8e65b8088447d006887f00a42a", - "0x4773707163e4797efec803c6b85afbf8875e789b3257df2b33358774d8971a0e", - "0x6424bf0fa6621a2fb9c166ee73750058fe733ebfd2fff232fac6bc73b55e6357", - "0xa5c1f44a899f63c1450f8ad09055fdf96ef84220fad238727ba0b04d4d6a3754", - "0x2b03c1dbf99334ea961cd71a89d66fe760dfe87817b4880b34b5a9e85c2dd917", - "0x6b13ade490bb62ec4276e334ae01628eaf41dcd7e773a1c13b25810535c4f4b2", - "0x7719de48b8d8c359f0159c87e6fd1dfce479bb886e4b002512c4a3cc2ea6bd05", - "0xed248d16dc7f1ec4f2c7c162149622109fbdf7dc68d1ccbeb90472813684e36e", - "0x2469f1bbaa3a55609ed6d005293b9d332feef0fedb660f3b09734687b48ed88b", - "0xe40e469aea7e30348e37b7c2459954ba02a4968fb713cea60c4bf9fcdd3bbc8d", - "0x66555b4b6a22f8252c71ab1f044f3ffd6474b88bb62fcc55216dfd94f457c916", - "0xf9c6bc9f84e7d0c31db16b7bcd54954427b4b43abb3af59ed122239c2b9f1d07", - "0x5d0471159044b364f1c26fe60154ee5cbbcd87a3c9d5b1fe86b5990f1c095dcb", - "0xda4d4cc6682bf9e162921107d9b6959a0fdbb779067ed659bb5140876527add3", - "0x7025c5eab4bbb5c5a0c8a7e6b845af8c9c3d02ef962e68bc0d0ab8862e2c3562", - "0x6c49e64964290c82a76c34a204bb445a0a00d68853900097325ba2c0c2ca5900", - "0x00e005674c684df70927a02e34cf1dc29bb341730abb46c89a764cc82f4a798a", - "0x3ce484b749d7f4c1b998f50bc10758871fcf426c8d70271c023b0fc45107554f", - "0x76900e52ff88ff356bdf3fcfd22613e064078fec47702a8760d85ddb592111d6", - "0xfc4979821c684ffe76894b18686e80fb3b67c8c317a22d3d25644421ace52acb", - "0xf226c6dfdd8a4d2a1ce8254b16d4ef99c48085fdade102aacb883d3e56e41a06", - "0xf858bca588f24f7efece3e03303ead92f66612723a0f68b6d1a871634974b8fb", - "0x672c9adb58bea50dd89e5d41196c93f4ee712c65681c918a971ac2afca43557b", - "0x1ebfba17221b1b101ab5119477cebb8fa6c2f72b9e282564dcbefdc8aca27688", - "0xec5ec768be531c250cb18850b92217ab32e6b8b9c080d4396f4e03518d328986", - "0xe12f9d598479d2462e429f4e3e249f676b383e51edfdf7ec6006dc23775e1372", - "0x93831b7cf4cc14676927d3aef0ed451dc1cea97945774d397b0588cc06be33c6", - "0xc5548136a5ad06f9a92ff95739223bce42a6bc19a92fbab0dcafcd9a4fae9511", - "0x7f6d793bf0692dd27327e1644cecd04d2dc0269c500ac192b504fa0b415fc23c", - "0xc389a64653eb7f37a0101cb3a2f989bbf03f0f6e07810883843199a33b5c8688", - "0xafd6cba91cc7041ea560ae01f5178828c8b934f349f1f87f6a22a6bd4b68b2d6", - "0xddaa7e0081eb38fcfa889e04af7703bac86baaa0f40aede815da9376657122ec", - "0x3b7c7dd378b00dfa18fc416fe471bfb07ce82c113591e4d1f2ba742409788302", - "0x22152aceee8ac16057189e13f89d118c5555d1061c6276634177071c4e85f4fd", - "0x82bbc14bc483184e2eea54bea9f105d69dee2ffd8d598a181e9894f0c0419e3b", - "0xd9b019cf461627e2142b04ef8cd394f14ef76c3abeb8de18b24e4ed9451bdd2c", - "0x93f6304908849980c14193a9a28b1976193263962bb85c18c45ec0e4c98c7dd3", - "0xd117cd674d8649fff979ed3e20bb63ad3a0bc7395d9428a8f7bd10171f5793b1", - "0x58f9a406c5c1cda4207f4f21def9118b4711ea39d8b93786f03458e5f32b144c", - "0x0120c549d680bf513e54793ad1794e34fd1748897e9b04d57ff8f1f3638dc926", - "0x5340b317835453c590fd71b022f4c984ecdc7e77f63ae694d50531a2cd8874e0", - "0x0a15038665e01f512ae7f9a5eb5d94600192470fe84b4fcc30e43d13a2c820b2", - "0x74815b0ae52ab519317e97cccc47e0b29a3e811451454adf7dbe2e5917497109", - "0x9221b6625678681475dec3689d5aaaa73e1098fda3786a72e04e04591a79c91e", - "0x7f7e9a8e73f9319020ea8ea7186c097910ad88979e1885a37989e1950e4a6c21", - "0x331f70cebd073b64bd396a96084de6da235b99eb18e9b3a608f7674b7c84dabb", - "0xbee7c0dcfaf95f85e6c58821f4aa09dc31285be7dd79160ab16cd68ac16ec96f", - "0x8b9791f9b84251d68b2125b61cd919dee74ede9d9b272a313cdcb3a9a01ec0bd", - "0x4194670a50bc7fb2ad1bd9fe60c3cdbaef8a7f9d5338ada0f4f9da97ecfc33e8", - "0x84a52e69f543539031ebb0aaaeaad905243fdeccfe87f58f38afaa0ff51c3641", - "0x12bbf63c2c6f31b2e57005cf99d7ef172df7ae01581e487f7e405a2eb8b2712b", - "0x6e1c0adfd156c3a64e0f342e0ef852d24780bc0c132a680c4d90bbd83278296a", - "0xf47713191d8afe922e2ec776edb9d9fe421821ecc2c51a4a5d1934e2566b660b", - "0x3d5ab526f48ea24e0fab729855e6fe4537ff1f4a37d423a797f261e936cb489a", - "0x999b153fa9a46778f806bbc1c110293f3f983b85195b55114c4cd605475c01cc", - "0xf4c934c4caff6611fa407b37c7fe60110c5b37ca6476f7da664110ce606ec887", - "0xa0e3ce8072926c2828384be41b8f2eaed77b0abf80b85bad1ac4ecfe50a29d52", - "0x1e0fafbd1b5044023a711acfbfd67f706827fa538f1016dffb14d78d742133d8", - "0x6544bbbe74274109833f0df8f5de938e5020f642f59dc15f44ef131e71364168", - "0x7070469ad96756a3b8eb3edf8af72c34426fd54b543a50bf90f7df4f9e6cf502", - "0x17d3adc89215b44e0ae066793fa92aac625a4625faac2f1af0dd7443ae88263c", - "0xac82f48569287d701ce51f0fb8d9ea9b58389bf1ccb14f51af0150ae5520d067", - "0xa345a1f7a2b62e083a9145bf72156dad96db87cadbb097eba49c1dbef37e7678", - "0x226cda69f3165f38c62fb320575370763c38ce1219612c8fb780d62e3724edc9", - "0x90066ef34898e0bed612ea988b9d7dba8d2752e5e4433eeee338ac46d0ca0e6a", - "0x13a52bc644a897f92b9c04f92153c3af7cbb7a8c8322eec5d2cd7acc955e5f14", - "0xab1151bb1fcfe04cfb138f6115007798156fe6ca34bd2d5450e7260369c46cf2", - "0x1ada842caa8d11d6ddb1f866920ce9d211d12681f0cfeb1fa953412ee72a6202", - "0x0775361415f30fc354811de5a09d152ddea119a45777e324bae06f605aac9a1e", - "0x3341e88e37257fb40d904b52a555e5ab4da77946feee8d0180bf0d02b84b2743", - "0x6de86152df7502a805cfe3ea13e6e92fed6591bb6807bf52ca6cc1ad12581960", - "0x2df8c525fcdb9e3338521ca003ecf34c0accaeb1ef8e8a8c53a4760e2a2f76f5", - "0xbfb79ba6c601d99fe9da4fa5d3156d43361e19d31cee9d8f6d86ccf8fca677ec", - "0x242c88cb05a573e013355f668be14ac02be3366f4529825e970a824b63ec955d", - "0x28cf8683b9301699cbd52ccd2e2382f0214b5375d45ddd1f512418955cbc75e0", - "0x962491665ead2c0a67a89c9cb10a95df482bde95bda60de9f9e26640262d8df7", - "0x89d44ee38abfe8a782b4c8ec4a15fb613da1fb54df1216b401e2b9feb5722640", - "0x22c65f9ad5d54461e990a01a32b3c0b816cb76fb6263916c7439d3a38c1f6e6a", - "0xb9e22056d59bac9dfaa70f3cf7e882ec54d12b5c651faae9db639d514358b19d", - "0x9e87bf3cf128facc840148f5992319455da79eb5b073366ab55935927325deaa", - "0xfda17f28aacb58b521e21980e1690292ec53ace1a331eb3f3e39ab47891b6818", - "0xfc89489cc181a41c11db271d24d745c602d021175bd8a3216466222f36beb894", - "0x70a368c3eec8a26721407652dafb467accd432a781c38c394811d4165da0536a", - "0xfdaacc8fc0d6a88b09f6e82a854eb5846b534cf709f74412a52ae1b73eb71eca", - "0x64dec3cbd894ef0acfbd4c756c57d1158b8735b9daabb8867a8fcb314c0d46d1", - "0x717f95c3cf0ea9fc9b2aa7da862e67dc5734dab7b901ba843fda932c2f4635ab", - "0x9832bf9af748a6a9f92fc7f808a10055c8134f6b9698b7a22c65889629eaa321", - "0x27556bf6b3b9f142af4b8b164dbc7320d838fc2035392f544e8acf891993908f", - "0x698c66e02954a0a3a9e20531427de5e111324dd63a3c17b3c9ff381591b209e2", - "0x15df8156e8722be5454f3a18da8f9c327626dfcadf8a43ca7053c2343b688eb2", - "0xc9012320a383a0daf25db92d3b2551542d09365e52ae17b0b8aa164804cacba8", - "0x3ec2163f659c467408d6885e2ebab399bcfed5e82eeaaa18ba9b11b6a7092c67", - "0x7c3c061c68f913425190d54c5b3085edb6f7b644938067a22d05b07252a2a577", - "0x65e7a85d7c9b44b46249204e20f5ced1725aaaa46c298e3103733116023af990", - "0xec90bbf55a1dc23fd2dce20458e9dc4155d40f35a6508476693f8f33e3c5c603", - "0xf5c3fb3cd7defd40896125d0b0651ea51faf248b1074630d8522267773f70794", - "0x098cd8401364b469a398ce063cd4c0dd245780b80535dda05d1cd318059a0e15", - "0x36a2403988d8284e774c519c6d5d60737de41f5e79a3e68b21c6e3cc31d99e3d", - "0x24c048089205c06055be2af692e5695e0b21c862beb1d2c76b73453be1aea237", - "0x4c6bff0317e1d45668e67bba2e4abd69fab7d49ebcf25b71596eb00b7da022fb", - "0x751d9aa08945bb12fcb312d8d9582cecbdad4ba10443a11c76f2336354db309f", - "0x4d15a64bdfcc838b9673813a073e6dca2e7cb8eef5c2ca9cdea367197d5d77c0", - "0x1857138e6b90b38417d9524923c4afee7815cb4b0a023b5edaa7e1b5d67e956a", - "0x9bb20548865f77267249f8934e8a7ef78630ca2b1a698c20a1831d57c40663d7", - "0x05f1132fc8f3e9b6e1fb8a798324249eb5aa7410e87b28549dcdbbd981995276", - "0xc62c8b41c48fc728ddda25dc5f7f112569b1ed7fdd6c9cb365012b6c92c063ba", - "0x36a336dce4c079c097c13378010261ae60d7614758bb1a644c1431aa535fcfdc", - "0x861762f37bac1e99454d486daa5586b7fc16ed3d5f8a3d4ceb76b2430b07176e", - "0xd52e37befd22d62f41bbfe77d3236bdeec8c1898b66fa74b8cdd6f35a9b02d76", - "0xceefff0fe45933ef72a62168b853824feb4af74ae82804fd635a3cbd554994ee", - "0x2743e9884c5b82e2c96f51859c4488fa62c174285a884d8d5fe37c134cb460e9", - "0xd14b5c588e28af7b69c0f62a2de16a19e10a89b4e0b77fa9eb2220de12431049", - "0x7a6720ca354c4749f0fd338049b84e2c018bda8180885e137b43aea736d013ae", - "0x33d57d2acd57e925d5e72e9a9d98bff821e9c0c3f3ce0862b5e68d1a81578509", - "0x0376d061cd94b3add12e0a224fc702bf0c661ed7540388fe2d1c0e45b33a9575", - "0x1b7f9abc9e995ad6d501085bce4ec8cfa283a6c818f172361839a03463c1c823", - "0x91f920bc30f075c30faf5ca2800a3d98ce11f1ef4dfa59d59c48b0e3c72d77cb", - "0x12bf80752456d779accd274428b53aeb15a1f1a47c0f85150ffeebc3ab1509fb", - "0xf75bc818dd47ea5e36a4007bfdcc855d48e057ffad411bda1874c4ea9290560e", - "0xb3373cdff2cee48761a5646faa2f470bddd2dd7f4e5b3879f5c57233581c11bc", - "0xcde2bb6a64542ae77dd1823ee1abd29e5bbdc9a8a987c4cc0c9e961ec01aa64c", - "0xac9986cffa116e9b974dd5e9eb8951b6ee7ff8feaefe33bbabd072c492098e52", - "0x175ce1d341322690675405440dbad5dc80d5c62db7883bd58887ae4e8991040c", - "0x2607c713b1a38c26ed1ba5574fcc1ec9e8e68a7c269c1cd687d4afb71aa6607a", - "0x1c83dcd846cb1ba5a56311a799bbf6033d3846b62bc022fa8c78a2f045a36b6e", - "0xf07919693e20b7f9b50c0745ded6f76e3b2ae6fd301548b297eae87c4f096d19", - "0xba1e5393889501428a866e4e1f1181eefe7ce96c023341b9a724f243c20efd98", - "0x5c8363770a2fcf8e6e2ba1f384769100490509fa776a609206177a4cc91baf49", - "0xdc1a4b1c138f9e7157f7fe476ca93579f77b436b512d7b1a92cd40137fed5a32", - "0xaf5630fa700a41ea1896d8745c484dc51599a45f4420b155f532acaf70159930", - "0xbc42efe8ef2ad47223310e252763f03081e72d3b0fce31cb8a92e535f918cf7c", - "0xb3c82090aa8e61d3cf66e68324b89bf0c8abb3a90a7689fd0e2af475eec12796", - "0x0b9292e757146f5c82e38b8c704ca9d17bed72c8f05abed2c72e4b749ca95cac", - "0x1f001856caed8f92c04803e3673c36c1e6d44c54fe5a2fa6dadc0f647ce5a5cb", - "0x4f5d9de1ce98d143c5e4230da545a92ce2adef539b28b3ea12b058dc50516396", - "0x92eab7aa903c1c9672cd846dfe59daed08bf7eaac3649acf82cc10d257c4ee83", - "0xfe53e9046375699c9d6d1e97f5394e4d9dc47247962cb12b1f19b14280c36e68", - "0xf2b4013bf20360c30a02719ac84a1fbf1d4f2f75a13708fb33698b404f89643e", - "0xa2c42fab1a55e7ad87d3d6ddd539cc015672bc7d9945a0b095d321ac5f2d269a", - "0xaa19e88d2f0331d9eb6982cf6adc3867765a30aacbad4636c6c14075debb3f14", - "0xdad3369b52216bd1d5670937e8d02011be203600f9e0a5971083478a751c158e", - "0x95606ec86211580a457dbd3ce345582cb63fa1e51bbb26e0fc7f66b346c5b165", - "0x3724ec7e644d1c9217a4530be31b164d132103e137d78ec65d7d2b331a58e176", - "0x3c9a30656517e28897e13397a1aea4320ce012365186c3780c284284188820d8", - "0xb1e5c6e1fd3acb6071ddfa21930749088701625cb28b632605f428034eb40599", - "0x16cab690f62af9c4532518d5d44adc79294509e7d468c8320ddc6a2af947e00b", - "0x77dbcc77ed87f3abfba8593ca42e5566509be4045df7b1360a147380f4923a18", - "0x50a81427038cbbfa9d80e7c8bf81275e87ed12329dccf818e97a2cf8fbf18bb6", - "0x535a32f20b009046f36d7ddd94803075813f018dec533ed87cf106589f1a9365", - "0xc09b4db18f62c39052fe388f8d94aa894cfce591bf868dfdb6d9598015c373ed", - "0xcfd40ebb21db79e7afde2605d7fa23eaab3db5ed9c0fdfa3310b80e839c3d687", - "0xfc99454fc2feecdc233ddfb15f8248d2e5c3c3b47c928a4bc47347cddf4abbe8", - "0x6591ce7a1118faba148011194404fca2a0d6731171ae29a287fc00aeb02adb66", - "0x109290c341c44b3e85d45d772853217e13388f406f95ae6f1127d574ea12ec53", - "0x623a639e40ebb08f05055465be038aadd7f8db549f1eea2ef084afaf199e8a66", - "0xbbf06223a713f88a1f571517792c0af039985c8f15e0fc803b7dd7c464595715", - "0xac7d49ae849acccf45e6318e4cfd18c03416b9bacbde64ded23514d59b716a97", - "0xd62497729af1b32f0e22fdb503a750c85a10299ee966e5c5ab1ac7e71e5524d0", - "0x29c2cf3cc0cdb9799e0593902ee453fba917f096f7eb5d04418ac292d9d40463", - "0xa5524f355a9fd8bfb4bfca14fcfe58d227a0b8d723943ae925bd88613f62927f", - "0x558f4140defa8a45ce60cd2297f60656454fbb1306d416229d07f27f18531f93", - "0xbb3506870630199af605f63e105c9acc9de29869b2c67661f3278d4d33b33d5a", - "0xc3cc4b6e3d14f45f0624652df9aa2aae5bdd6e9824a06df6d66572afc3ae7dae", - "0xe1070ad4c886c4e4e118541e6c140926d2b2463701b293527a91a165418ecab1", - "0x22fe26c7de8606e08d7cc1e0e37a7061c9fc50da3581c1441c0331ae32fa18d9", - "0x71800db5261f61c5525744ada55e570bcd2820eca92f30bb2e83e3f08e03edba", - "0x032839dd738ec7d5e43b84ac14adb11bd08660921c1f12932cb64ffd0179d343", - "0x85a762a2ab18668af249733829cdef9e3787bf2d2e6ab9938644918c0c1b51da", - "0x16d578dac1dd575ff991c2d25e728973c1ebc2b61a3032c8b85b62258667bc1d", - "0x3f1455a483663459733cf450c0f0e16678eb1f5485a6cfb6174630eac026ca6d", - "0x029933e53cad5e16256663fde9bda097abba5d7327e9c0fab07abbd013e14ea0", - "0x657b61028b161a1a3bfca40928375621133b0435893dd1d2562944ca85afdb05", - "0xf541e675935600a62e60bf5bd98093ffebc0169f23629db977dd8771958f3cb5", - "0x8c43b0d7c2293e089724fed36851744200d9b87b6600e3ca351f3f65852e5eaf", - "0x07c6c657a80c5718804544332c2f68b445e8d7fc58f01a650d7a476c036193be", - "0x0d38f9aa48346458b8ec0710b28869f4bf979abb80a4ea0464cdd9da659e0db6", - "0xe39b8a792df028169115125cc8466701df553de20d1ea385f3249a1d1c13703a", - "0x77180591ba49b6118cfc4ef772aa9a1cf2b3d1d67be1f15c308cd0727dfeb068", - "0x088d7d35f2b14bd5d0a1b6f3510ffb4f8ea2d054f3f6b99de8fcd7bc7dcb37cb", - "0xdd0bf242332c127c0e63e535ad3ecae82588ca70eb04973ed89e29a81a65a17d", - "0x218dfd445fd02c980736856e5af70942dcad8a0600fb905f0b4684f317ce4f19", - "0x1574b6fd0411b9d22f10a2d19b0a681d163c7b969e9a608499ca06414e579434", - "0xfb0919cf4bb52733e14989e7c4de84cfe6f06baf792f7936f3d3ea00efe5712f", - "0xceb92288daee1a5e2022206783d3d069b7bd1edc00d3fb6a5841ee1cab207e47", - "0xe2cacbb8bb3bf3877506499ebf8e8ab83306482f87c24ef6ba95dd40a68ebffc", - "0x373dd6cf736c6623843087cc276480576edcbfa873cc8e25dfa6f4ed396ca9f2", - "0xf7872e8c04a5766a8773d1af21d79e63004240b9f9caccbed57f58162e4175f8", - "0xcfe8a827fc4c36fa63990b95b90c68a684d4b792d20b8d786a4e1b1d13d3f935", - "0x7641f61df9b6f40c57815df7ea6ccadd757094a7420438ab310bce4642412ac8", - "0xddc8f2276bea73f13a3b127eb637265190c5655f4a8ab75cee2fe739277dffa9", - "0xd7858cc623ace8f1d0d22128da9729c9e9d3f0b56ef3ccd33464c1096d4f5811", - "0x4230798246b8939b83db483d395829d1d306708d11e783e507dc1e3b49490b3f", - "0x89209a8acd2568a49a7e623b5ef5f43664c41b9d7923d0dfa5c5ef6c7b8799b1", - "0x104b1b2826fa7d1b22770c1bdf6810b5e72d384ebd22cf9faf6ad3f348beb0c0", - "0x1a7c94386ce7d3028d3370aef277d852a7beb4d10127701cc5ce10a1b044018f", - "0xb98519653520206971618cf9b6ce2c1df8e9f471e8889c7b5d57d274281442d6", - "0xc890e325cda72421b2aff2785b0d917b02722e48d7d4b04b0848ae112b2676d3", - "0x571c5944b46c3f9a0cd2370864355d5a8a84688094cb216cf525541c36c11396", - "0x0ce2c597798c13d44ced6fc8d2a25f2e2570f2042a2563a5b9e44e162ca34852", - "0xa6fdfe84cb052109bf80190a9b031b8ef4af89fee72171477eb0cbe77a231350", - "0xb3710d99697ad3eb32af332e1e1466ff14a36eca12f49353134a3ebc89673174", - "0x46dc128448fefeb7356c6a2d4c7d2d067c04aa1973d6d5dc5d0001a08641ef4d", - "0x7e29853c2fb2d83356d63ed3984a068aa77570352cb488982f4852d52a82c2f0", - "0x796684dfac249c4ff804ad476035254b150ced67fd5090a870d684e7343bde65", - "0x3e8e5a22737865fc518ba785a18d3fba861c131411e2795920a1d8714ff76f90", - "0xd60787dd997a22b2faeb6e3257613591f73966e39b477f196566031d7d97f79c", - "0x143b777a1ab7f233c88ac126fecdd2b139a73d27c2374a14f59d6b2a3d274c07", - "0xa0423fa816199bacd23116e13196c2dfea68467f0bb7211a54edf40cf8266a23", - "0xaac1db2e966c0786bbb0c426a40327cb230231f105a27e99c8dc8d5a776f2aa4", - "0xa5925ea9ca18ec46e986133e5bce4381b4bdb34a2929da9266d63fed308330ad", - "0x9486ff72244d82f0521aa89bdd4e4ef287c7c8b9f11919fe5e169eb680162bb0", - "0xe5590a8ad9f00a25d6b1c7bb7972322d4c7aa0d168c2d64dc1c1a2cc3e1b2c5d", - "0xa4d19ff7d20981880824a2212a5ebcde16ed294a1b486648eefdb4e61985e628", - "0x42008316906fde068656372ce9cd086d98cf48ae6c8ebef4cf2c318f6196ee42", - "0xd997400eb0679ee898e3591f612f12fe62a8a512e9f29bb5d892828a717cba44", - "0x8cb77326590d26e47866b96c7b0d4a2cb098e9c3302973c355d4cc6b7bfb9a39", - "0x5aa47047d8dcfdc52cf5eb6850a29e18bdd5458479a62ce73e390da48019908e", - "0xb7db162e7bd3eca38c26b81c280060e0a80afdcb1b1227f2be53a104b7bde92d", - "0x6118fb183a607ad2ba7977b23d55a13a13c23fb4d42ffd025829684619cda56c", - "0x57d6217b90c06b85cb935a7e662a0bfff6bea628d67148fd77cfb6d4aae46b3c", - "0x8f6ad6d46e34c419d675f2e11fd9415dc0051034dd2dad492992cab39a4134e0", - "0xf02b43c671a09c3496057bc12d546331de2bc68cb18c64c4562a7b4ea09400fe", - "0xc0715798ea2098d50a16240d7764ec79ef0a888a46acfac383e72d2e50c6fd45", - "0x3f87cf2fb3973cef48f8727096633c517030c4fe3b80c8de5c46b7aa7688a7b1", - "0xb3eb15c04da4ed796f22c6f9a6d9b650e49092dd775870ffaf4538efaa9143a0", - "0x0858a7432451452d8f99395811d8b9605b6e493875cd8f6efd38ac933f843c21", - "0xe8d6f6cbe3fcbcf1a8b670b57045c9163e28e62c2301518667869fa6154778ac", - "0x134b94a104a8fe9c8fb5b74d01e8137b998f9691844fe8f6a22634d967c70c29", - "0x5ad0ec6ef0efeda0f2a0ad2a693eea176358a6298e0d16014c86e17f45a91418", - "0x1439519977d98a556eb1f32924f6206faf316ded77c7e6624e68e139f99d2ab9", - "0x50095fb3ffea338cf7304154c4603c41eb187b7f19d356f1f97a12aa4009557e", - "0x40d1b045015f62509696d3e0c71ac234ad594c46814d04d7cdc76f91d848de89", - "0x5f1fbf6945d348a53089d2c9d3feae12b7b2981b33ad5242eeba5d8aca474211", - "0x016e294adf2b7ed329e71d054920efc2399eaa9be90ad0edcce1a1ecfda74b2b", - "0x13dc29c28adef710976342863d04ff778fab90c34b36932cdd41d176621c517f", - "0x3cdaee5da98612994b8ab88c32601824112c15dc74f2438fd6dfcf26697c6041", - "0x0792f243e6cfd99f708f30d1dbacebf43a69e3fea671a53eab7580f7ad0cf896", - "0xfd37acc097563f9dbd330592b8b0d84e13460aaa9cb299efbf55b87911a42171", - "0xccc52c8e84bcf512e0641a383bd59565a91d7a2cc4fce191890e17318fd550d8", - "0x42c275730ae7b7931c354cf6825876f09bcb721ef2a49423c7062316c2d6f2fb", - "0xe7fa209c2e52f36d1142265890f2d4cf6a65ef6bcc9aac8b98679c4d9fbf50ca", - "0xbfc25b3401aa288d08193c95645a23509d7f91d186438a713ea7422053615112", - "0x59600d2e03b83317882349f9ba9a29e378c99f5d400b66a4a61dacc45a10a06c", - "0x5bb42c1dcab25fa7119605ee2b039418433659a9d44d2607423077735d06d646", - "0x1c88606c1fb90348b6639e0b5ac351aaa7be9d8e7a54949b04115be31c19b210", - "0x0c3688bb4e69ee1d2f6829d207ce327baf2ad913755ded680006516f29042f0d", - "0xe416bd0839a09b9e043cba3cd29151605c8713c0a87060e721236c42dba557cc", - "0x47e198d26bbeac4883a8faee1409f01cc5bb8f4a3e9103b3d79452a8d0d7256f", - "0xdb13ad2d508c4cfd32da5d0feeb2ccc02551f5f0764496849c2ef79d65f81e46", - "0x28b168561a00f5b4888fb3921702e178289dcb4ad8ff9e6a05f13c7b2063fca5", - "0x2d15236fc32bf37335549ca7b8aed0af93c417dd58ac8943893b37b29c9be194", - "0xfba066e3e867af94ffb35c83d90f91dbca703d2b1e1270d3134adcb269e1d3aa", - "0xb39dc5605015af1563f509d43ca979c0b2e91bfcf92ceee5da72ade5c757cd2c", - "0x3944c7239cb201f6541d75c7d316a48dd13d574e1ddf4176630e90c67c05a9b7", - "0x2abfa889595997cf93345c17b16afec7b1935c25f489a9908571b239dc76585e", - "0x73ee344a77f74f57a2a3fac1ce4bdc060910584adb0188cb7c80c2e31b772aa7", - "0xa627e9f5da335b70be159292845e084fc845263843751fe19f9f1e2bc90b919a", - "0x77461a4012c70824575618bcb3a0d876752b3628266d30ebf032ee0895d6a934", - "0x3c8fd955012a02303155bd221e5416ccaa350c6bf53a7a0fbd481cd48f67aa32", - "0x4d6c89db5620f12ddf98c91597b6fbcce717feb4774a4cfd0429af94ae4ae329", - "0x49e687e61dc125632cd4bcf99284545ee457755ac8908586304eff9bde1e8e09", - "0x330f578fa2bb1b92f568d94c0ddcb12aaeea8a618dc753ab8be143cd0356009e", - "0x30b04622465e3bc19178ba1fdfb3e0c9e552248614357c2372a4d64366b925c4", - "0xcf73d465019666510b2f02790d21d9fc5fd1fe7ca6e670bc00efc0b6407777c5", - "0xfd7819a5d0a680319c54034683f153c89ef8a5175132d82a20e602645cb5b54f", - "0xc9dd44245feac5089313f2940d1d1a27dad3350ddb33c0d32190b44382b99976", - "0x777ce6cc23757f54a5f25323a19731ab48fff867460631afa8119d77d32503ab", - "0x7b6734afac66e9bd705d4366fe75b25ea1033a61dae0075e8cb3c3d7f5383b8f", - "0x2a47d485b255bbe4327c97e996704c9a613ee3dc82c43eac266f36774ca2b866", - "0xb6d6659eef76a48ea53e89b2b44291f908aaafd6937942f0fbf4bf7a80249e17", - "0x8fa106b3bcc701e850b0ed9496a8b3331d1c7dcdc236f7c1750eab30a4eaf5a9", - "0x7f5c12db2b31a5739529dadc239b677a7bc44a9bd84a54174556fb7c91bc4e40", - "0x17f82052564250a89d1693e2c11c23f945051562d9e95d10d9ce07175e8e258d", - "0x48318d87fcd2681f1cb40c94137b43ee955602244da4638b1f182a7c6d75e964", - "0x0f85a07673865086c9637ce92bd1ecefaf9399830b12e65173a5243c792a71ba", - "0x200f34e1e23a98e581457ce0b9667dccc207ef85611258971b40b543a477b32d", - "0xb24111bb847669bea0ebd5b5cbc7c850d0e814577ab5291f7b6bc3a570ac8cdb", - "0xfdbbdf9c55f43933d30a61497dac581c1c999f1730b1fc884965099d4c2ffdae", - "0x163d60e452407f19083203274a9a4b6681bf0c314f48f7cc09d2e4fa4ae26ad3", - "0x7316ec58ab0a808fdab04265125af16582e75c4ecefb70f6d23eea42e072ba13", - "0xc3908756583f8b291a3ae74f4abb96bea69da503887a9b5db8dbfa84d361808a", - "0xbdc3969cabdca434e5a1ce565075d3dbc4ca918a385bc60f62ed7505f1755074", - "0xdf98f4eaca81432edfd51d138a6b85d77f9a219e7565f4987a5b8f34bba40b79", - "0x426a0dfbce9121ea7babb30cd7e8f74605dd781a844403be8def56b45792b7f6", - "0x617cbe91494aef61910ecbac7233faaa1d580e2f1131be446a2e8cc0854849c1", - "0xc68bc3472fe90e10606d2f3a40c117e9730140107b423e5225214998145d7c66", - "0x84c464268ab6581830fb5281310016317919ae759f8151de4e1454c65af27eb1", - "0xa0376b6e3c691729b059e3779f18d52d7c321d528f33f59b0fc37ff34dedb0f8", - "0xe2c6cc9f2c06cebfb32f4eab5e7589c7b47310e44aa577c32a6851c59b80a824", - "0x07a018ca5dbd9d3611f24829000e27f828273988a957f190df6d315706bde47f", - "0x7deb3005e91ce21304fdce15a13a7a001779b7f021a17af7e889c1982c35f2af", - "0x2cc679cb44882cb685ec9a8d9ae3058a61e646c26c6635bc12068820615f450a", - "0xa5351381cac3b4c897825ff5acd817fa2682aca353d6c5df5a0736f940772361", - "0xa8afb3dd19f6c9aaa2b94742ebf50abedf904dd8b513991607e5c5b59539b0af", - "0x9a95f3ff3fb05b834539d98cb8aaf9422a9112f5f232b6aebd3153d7064fad3d", - "0xe2b2dcd9f84e3d913ccdefc439c650036708ec4e8e6d71c57d5a36e29007f00a", - "0xc1434b636f30b48f7a1db83cd094fb46455044a6ca8ed9996cbe1b0586353e56", - "0x32f4583854febc4ce209f90fbec4af4ed5da4cbd06adcfce0683853d7645b43b", - "0x70f338d6a745fccb2700f6632709f8b94120810d4bda076d38ab84dc5a4b60b1", - "0x1ca817244ef70d749235354dbe73bc02adbe1a9bd679531c9529b7f03eb08ce7", - "0x07a568e8a9b53dcf9fd6e7326d4b1d5f243f0dbc49f3332cd1331db5b9f4d49d", - "0xa0aa8b4799e91b0c2585e073d43988edfc581decf56c64b9083f9692956d1f9c", - "0x0e7f230a15895a83f437782ba8695ae81699c84429d30d2dcd22d842d6a36143", - "0xaad29638bcd49431591ee0dbf117e035c35cf0038267e4f2b3a484e4791f4dee", - "0xbf152e8cda2dd12ca52aa7cff7ddebc4e54a2c78bcd2bf6a158f45257333a09e", - "0x7f7fec07a6d7b2200c3e9b2dc66c5c49d2f2badd6604cc5aabc63a3ec5038375", - "0x8ea37350a5d0c81e11b76eb29d269025d28b26bd29a196330465997b3d82e1e3", - "0xba45a6e6042f86544892daa1a7731b9840a9171d3d834926d4d5bdac32889873", - "0x3269e10a8871a97b07dbdcd20eed5cfdc8c5e064d576dfbb508ee4082582913b", - "0xe7fb5297849c3d3eb0b3bd068cd2e9dfac549dc43a44c65e3b2005ba391d8a88", - "0xe42cf98685e159d10a3e4fbc19b6df03d8ad42d0f3d398f826a806a48a87497c", - "0xa448b7bf0faace82dc4255364fd8fd029c5c5d828888cb131e649472c6150775", - "0x1043325717080c977ddb22086d496de9b3308ccc7452665851839863cece60db", - "0xa1e34e462ecf988dfacc1aa371f1b188120ce3c1e06dfa06f639799889bbf5ac", - "0xd4f33c1c390ad6244e6c3b6699579f2f351b1a0b583550fe2f4b189e211c9c30", - "0x4cce900d2ab1dc78e568fb63e02ecd06fef0cd68d7cfe20cf9fa657b62a94dc8", - "0xbf85a695d507b9fc42ef3f81b76483f70f9e8767534a0ff35eb2f3315798d72a", - "0xd96ff1488e2deab994f27f204037bddc099766f1955c916003a4c632b48aa500", - "0xc963ce4671607cec2c36d8050318cafce4f835f20b5a859fdca14844a7e3a456", - "0x2e5838f879f8f698b3a7efeaafeb7ba324940aeb3f8b5bd16aa5ccf8737f4e63", - "0x0fccc49208367d119399101e5e0b1ee6ce5ef0f61f4a9f0389dae06de2038efa", - "0x63920bc887a208585f3ff310990c24c8e594942e371e7c2b59ed53f4d33bd1cc", - "0xd675a402fca8c1f1a9d977365c5269b93d963eb832ca1adc45b1b0251897093a", - "0xbe37d401abe3adad6d87befe126ea1883c4d117ac85b6c27965a1bc320f1bd30", - "0xe7182036132dd24e782cdd5fc41bd0a31b36a3eef1327ac211df3aa5fdc9df2e" - ] } } diff --git a/ethcore/res/ethereum/ropsten.json b/ethcore/res/ethereum/ropsten.json index 477512ec9..f76cbce3c 100644 --- a/ethcore/res/ethereum/ropsten.json +++ b/ethcore/res/ethereum/ropsten.json @@ -67,3250 +67,6 @@ "extraData": "0x3535353535353535353535353535353535353535353535353535353535353535", "gasLimit": "0x1000000" }, - "hardcodedSync": { - "header": "f90219a081352ab3cd380f66493aa270deeb239af085e68a83579dd8871a0b0a7c7fd4e2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d4934794295856bcf02b2017607e4f61cfc1573fd05d511fa0a886a42f9a2733e392a5f9459f70bb133e5012f059d6cb6aeb360a7bb766571ea01ffc81fa17e357d368e82f1a658c8b129877818e34fdad26e32fa60ac4b12fc7a0946e845a5b468d8c679890632ab9fdff3349b307ce864c7b13195e4f80af4777b90100000000000000008c00021100000000000000000000010000400000000280000000000000000000000000008201000000010000010408010002010000000000002000010102080000008000080000000400000020100010000000200000200000000000000000000010080000000000008000000000080800000080100210000000080201006008210002000002004000000004a0000010800000000820c00010100000000000880000000800080000000020000000000000000100020000002000008002000200100000000000880840000000000242000000020100408800000202000000200000000000000000000200000008000001000000520080000000850340be271083653001837a12008344ded9845db0acc49ad983010906846765746889676f312e31312e3133856c696e7578a0a23e3a33f308378c4cb1eb9b34b40c224844aae072c0eba928a840f6d6ca69a28892892d000574e452", - "totalDifficulty": "26251713144679901", - "CHTs": [ - "0x614648fc0a459451850bdfe353a932b5ff824e1b568478394f78b3ed5427e37a", - "0x1eae561c582dbb7f4e041998e084e165d0332c915d3a6da367638a8d24f3fafc", - "0x6fdc50234f74fd6eb5b8bb28378583da28963d26c7226e1254e04b676951c4b4", - "0x0d40b71e8f08c4d93a0f62d93eaee4c6ba92ee1ff6e46dab57dc64c992873245", - "0x7f129d232456d600332b59fb30434e4c71aa95b0e3a4f9328c74ec5b97102ecc", - "0x0aff522a9d28bb1a32af4524d049ce9b3e66149e8d2644efbad5736c9fa044ba", - "0xf9adf08eb7bca9237babc37df559297c6e1b54b585867867a2aed7c10cd191b9", - "0x5b90ca8fa35cad63ad662e3696f41c4159fa871e5f77637e018595a626282150", - "0xf33aa648935eb7dd99906d0855c71893b4c0d0c9b32ab8c8b7ae316e503ba35f", - "0x79946d20c81f7aae18f427d991f21888169c96424813461d04a61758bbe9f214", - "0x80950805fc209691ddaea24e8afecd0096e84e3c465940508131f41f569d559e", - "0xd58de59cb3b7f0323ff3edaf9e3af56843258c457f490346cf25a73a35163ed1", - "0xcf52cf0f195caa769e2d5857231f31bf17efed369c358e7ade257f6278b1df0b", - "0xce570fce622e9f3bd03942c63537417f96250bb3605d2182e5a567e961739e46", - "0xe6add695b25d4b06bfa08a80e9e9295c84948fc34202cf24b42c1cc325075d04", - "0x4699a5f1df0d7b2dab8ba282b6e83af0d0b31b604443e13ccf097fd46f346bcb", - "0x1a16f27083787c5dc1dd8f0be868338c78ce147d0cc043b299870f568de20a3b", - "0x2dc5c4538c1812e892e0a53c112e8e4c3fd9f6f60d1e8531a9df5419df86d013", - "0x40de720fa5ec3b58b3be838f189ae59bc4f21bc8d8f406e569339ff054f93459", - "0xc7274c13bc7462d09cbe60044ea6c9e92622204c41dfddfe864d388f830ab35e", - "0xfb6b099472c5457a813698944d4901b766b4bb8a177c4d357897f1974ba6c431", - "0x9e6104a79f7bbf96d117607ec87be8604417d80af11f558ef1e74067168dff0d", - "0xb8deb38b0b58be7b3eb89a5a3ca1eedc5726ab14186baba17ac520a592f68827", - "0x59a58beef1250fb3315291f0b84480b947672deb331980cda261c94ba544e22f", - "0x0fa4b28513f4a3639b427b5abb87902273fdc4077cc0a51361c3dddc264871f5", - "0xf9e1e92a1de2346fbd8b54987960f08a8b21cb0a8a6c561edcccd6cdfacb46b0", - "0x89f4a9590d0865e126622cc47ce2a1ba50aad880161335e8c88c8a24af709fd9", - "0x5f014ca414e0663c92fcbda0c7250153445a04808c7d062859d000c970003834", - "0xbdfc2347806fb9641788978b5d0a6bccc81b11203cd751dfae45a8dfd3bde7ea", - "0x41420d311b7b527ec68770306d97ce3352d7fee50fdba3b05bb54e70c7250459", - "0x3ad7001f1b2b2635266141327ed45b017f334fc3a5f410e3e99624492c489def", - "0x2beb717939cc0404dc173e50dfbe1477ff32c1ccb59f40d7900c2337021e2d6e", - "0x558b53c5eda0866f7515f113ea3254cb85424b739a5dd6ad48bd4d9221006985", - "0x294c62ce078bf950361111adbca5ebc963d5f12c7014b04e3d86d3cc95c6faba", - "0xec18a7c338bbebfdfbd03f1896d726dbb1d21a29e32e92fd9949478078bb19d9", - "0x6e61bb0641c13be0e0858bc3da3a0b06f6a8ac462301a33fab7425e99d6ae14e", - "0x7a4378c70cb339cb4e3805d013f6ecd66ebcfed3dd1df972c8124bd7b888c8e3", - "0x5911bdce0868655abb581c9ce87a51b85b449101d6d52350c05ff1db30deb900", - "0x081f65d017c48967f02efec9781ac4bc124f42a31ad20104cf4ac6553fe788e4", - "0x89a055c33ecf13f71637fc1dd818c6c26e86f4751c2e09c5b8970195b39ddcfe", - "0x83d33e35f31824d849e27d2cd1d4d02812cb84c8508bbb391ba563264ba2a429", - "0x144d66cd98cbac72f3dd9af9b2656529a00fe7fda8f70e02d0ee025fdf2de9d1", - "0x35d44c6849d379e58398189d06b149eee34a267e94230ae5e24a0c58ba3b7d30", - "0xe4d67e58b9be3711015ac016983bcbfeaf2ec71ee85bc08fc2e53e6d173ff348", - "0x67f7bfc9457f1a1566d9acd3700c399a2fbeb2e1071b3f5c908eb56f2bbb9716", - "0x2546b96a4a88411aa7b3aaffd71a0e22484cf526a099d58f1dd330b3209e4aca", - "0x91f9c4aa8357a4835ae2fc913ff21eb4790b711d2a813e94b38fbf52ced0c4f6", - "0xb4623b136bd01bbf2dfe3ccdcda850cdbc6da79b69324a582d3e1c29703a70ac", - "0x68649bddb9b142d43905ef85df986ccc35c5b0796d860b367c21085c9f1d0220", - "0xa007ebec8e3242c209a178e01eb7aac3666fe09370dc1064bfbc46651c5c4e01", - "0x614125ba7478c7ba2ecd062eb8014ad3b50f4d9a7ba546c932e3f0a3c43c13c9", - "0xfa579127b6d13731bddb5c27cff6bea2d0ec13bb6d17679d4d9e1ffce8d7dc2e", - "0xdb11e78fced06b1bd768da0d345f19c023d5708e7b57bf09c37009887e0bcde8", - "0xda9a47b636cebceb2f378d9149a4a5bdeb6841746e7f677942c26629d3d1d4ba", - "0xeaf7cf3816297b48236ea2cf3f60ece988ca7cc97f5c8efaac1433d23c3a5ae2", - "0x1b7746aeeeb0651a867a3f1d34eb0662660aa667847c04d6761507f043d0eb71", - "0x4e6a1631fc6702fef39cc0e383f4fb5608e8a1f0c721b1622c8f25ea14aa86ce", - "0x9e96f3b348c2170685fbaa99c968fadb4bd9dd621f6e913784851ab1bcad60a2", - "0x65df62cc768c87ec256f7308d9f199040aafc24c03d5c6d527bdaef9da365e4e", - "0xdf067410f903d878471fc3b53d020bce9d0b672ebd51df16ad65f4a3468be124", - "0x358cecbaca6506567a60b08d00c888c7b1dd66ccc292ba7c4c9aa3e37b018391", - "0x5102782ac246337226e6527ce651294bb5c3787cc68219208d6dfe6ce398f0b5", - "0xe6a48cff6189dc26c3d7242eacaf1e34c81503327b18087840a755c322665ca7", - "0xbf599651ec19034ca45bec20673f41813b43387ebbc596a57384a813eb6a21b2", - "0xa5a5242eb4e6fecf1b497a62de8138401cae35cad4a9c136d9efdfc12fd53d60", - "0x05eddef47694a7dfc61e79f78b65bcf9c5e0e65513cfadd2957ac3a324f54b55", - "0xa4b5589bca8121c6bc00a846ec459faa99441d0ffa4b577a45984c32d63128ac", - "0xc8a2f9d7974a1aa77b35188d9dbb3fd56d5a2f6c796d2a665360374886c5a386", - "0xe9d430f782c0275eab831108f934ea3bd589c6c72f9da930e9fd392de833e486", - "0x71e85321e2d1a4b0eb48d8493a97ee3634fe153f30a85d1dd55fb0f5f8c82b91", - "0xfed03a8dffe6cb8043a11ccad791096151f0803b020e4dcf33adc4b180551fa1", - "0xaf1beb7795169537916bf4c9b1515effd365cc0e3988cd3e296fa075831fb63d", - "0x06ffb84050198793b580803a41e78d4a6fbcaaba0901a6f938a5ac5f9982f1e2", - "0xb416bb6b94d5076df719edfd2e2bb9237eb2171b9ebbcdb082e1bb1016244371", - "0x60d6170c0fe77eada1dd85af74079ea0387a167341df0ee8ae110d0047c00fef", - "0x15f03d5f617db0bbf963d2daa06816a768b21794d05873131deb677bc3ff2a07", - "0x0b9fa1e7fb11e3c0b33cc609a87dba8c1acca7476a15da2116518d72ea019e0e", - "0x9bba5ba8b88b76613a52504bdde96ccc1064f3e868881cfb4b155d24d237e093", - "0xa8a77eb3fa43914feb609274d1ed96d51ae29028fa59e7f0d174b085d106fd27", - "0x142d2e126b1faaa6997553835ce1933083a5c2cfc9818ae71d559c8571757fab", - "0xe9241f795bd887173fa93f9e72bd7f07ee58d69dede512fc31f9faf0ddea8e29", - "0x526d5379c00d1a318409ea42ceeb7fa9d33a4bdb71793c940e0d1b42cc848d36", - "0x2045cd5b32670fc4c36fd32e45437db69f468aab51e10e32da423ad28bdf85b1", - "0xf0d0bdc64abd76e66be96239efbd0f25ae30bcad096a4cf28b8b5bd9658c8c3c", - "0xfa5cf979a921b2c5ba8fddc330cf1df7a445936f7bc990553c578dc3ca45de49", - "0xdf2ccce3cf15b30d7bef7ca83b45875e96f02e41c6aee9a1a97025f0dc75585a", - "0xb61fe42d47707d473a2ba8483dbd4b9a40c1e7b79c2bff15ff52aec560d505a6", - "0x068ce2cc3d65a152aa574be6f0617ff7e2f688db97b020d8ba84e81ae9037f57", - "0xef3c631c846ef30f6dfdaa901d8d1424cd100710335805e14226976e719cc2b2", - "0xd582c2e6adb0d112786bdf27dbf1c77fc7bd002511e53d0a10f4dbe780156478", - "0x8a028e29f728e414cf7e3d403bce9de7766feae6090ae0f7f787944569f2b001", - "0xafa8f78b22031dfb0b06004d32b6699421586ae779624fdb7153854d1ea5bd4a", - "0x7ff5e562415a97c4f731c7f8a6b82e401705e34a78751a6e8039b0930eb0dc59", - "0x4cff7c84dfe821e917e48089d3a25a88a84983fa5836d7a78fe050915ea86374", - "0x2ba7416bb329d81424f9fb12b43a285eb3077799e71cd21f0095845d2d165c87", - "0x613ca539b0ec3a5819424d8df2f4ee08e03e5e95a2607503bfaa8574270d163d", - "0x3f6ce1315b8feca300da0bd990b582c647b4440d4a218fb4bb6c841a789da37e", - "0xba8b0c45d55e44cec801c724ad6b6b699fa78505d87a5f356f6ef054628f0e0f", - "0xed1069e471b099408ceb19fdca42cb57bca2389dec54b8fd283db0a53ebe2c30", - "0xcbb375230e9aa4f7aa8536f42f4df3a6bd7572f603c03e716a934b0d3bbe475e", - "0xa8954ae2e84ed2c0f45db6e41731a09ebffec9b064cbd12e020e66b7575d2c9a", - "0x9229f2300310a0675f281f76c695b06214960621aaa4592e3bba558c23b5bad3", - "0xe821e771c08bd42b6d926bc1ecef87dd846110693f59d71cc79a55d7bdec4cf4", - "0xa7e54537a3a01524894a0f602bf010043a52c8c7ac7f6cba10a6ebf86ca11820", - "0x3ef166570a593e608afe6b848ab8543957963e63448b7a1d0febb8127003b527", - "0x1308ea66fbc0fdf84680f227d6425e63dd850286de1783300b64ce77deb696ce", - "0x14676109d2f68c5cee4f58c27f40579cc04663dcd01017963402aa2f06fd315b", - "0xfb9434241629e83ec929e1f3feeb1943945e8ce87590eb69a9ae44e3fdbdcb4e", - "0xb695c39514548fe5240723355a6a2eb2d233a48018485435b2d9a63a1097ef55", - "0x9caf7a3660201b0118736033e479b74e488f64a07a79e33f4782048af424840d", - "0x82f188de672c6e1826d70aa5f7d54f499aac011139ecde9d4d05360cd8b9aed7", - "0xdf7367edfa34b79be80c06aab16a54e7d1f74eb9f813a080a8c4af916e3a61c5", - "0xbd7cf6ed130f745c853777d762706e9050c2a45d01839b124d517e3e73206c6f", - "0x474b7557c158d93d732fa0b8829b40c2d9e593206c3c36d7743b6eadb0067689", - "0x1ff6d56aa85903b2a9710b56ad4760825edc5343cab855bc966cad9bd11aef7b", - "0x52c4c3990413706a86714b1dcac8d9c4e55a36eddd176dc55066cc39e308175c", - "0x7a63b6427abc9780a14a4826c45a313fa2d020ea33ae91d48e4cea28ebda51a5", - "0xfa7ec58ce730e3d66c79b2616e14f11b87077c5d911db6bd89cf7c69f9fb2559", - "0x58f1b88f3ae0b76dbaae0ac58673ab38118f5253b07ee2a309cffa1c3f9f3a30", - "0xca98407f9cbb2911422f5a0716c325e1c2ef053355796e47eb619094790da45f", - "0xad072d0b4fcb8ab2662e3d27f6c6baa2f914bedcb91d178a9ab02b9646e6203a", - "0xd8319f885666fd19a5a9801005530e4a490fe29765f9d60c38b60c5b9ea92d5e", - "0xe95daec9ea36ec00b4f9f7478ae136c1453bbbc3530f839e93483fdef4a61cc9", - "0x6eeb1a044cf3cddaa87f70dbca704fe9cad675e82659380fb733153ad452761d", - "0x89c53801a896ebb9cb6c3a881269a93f610122fe9c3132ec19d64a6f22e9f7bf", - "0x81e57e25ce8817d0cf3ca17d099ec20e75f11d32464c2480d2f63a53a22dbe47", - "0x42ddde6c79ae71e64ab091b24e3db68c0c3b560669aeda58107d07f61d9bd39d", - "0x6936a2002771717810dacc23da43097c7c1bf5c2619975f55132b5f450c03047", - "0x0dbc448620312bdf04e118caad4ce1fc5058d0c14b1bf655b650677a2d1eaaa6", - "0x108dc62f87065752fb77f6a3f00e9141e1fd170b9c0538124739bc75d5632b4b", - "0x9b555f75bbc6b9fa5ab1b63b5e7a4f6efc7e9c659a8829a69ec591b968133478", - "0x3f31b6d6e18c7afa96a95ba0855b52a2b0e3158d338ce3a20f14c14078abbeff", - "0x78940ccb7637be74bf6f1735c615054e632ce53410b77e9b1d9f256699a54861", - "0x71b5505cf3b75c328113ffdc94e8ef89b673838a26bee4bd7ce582049592e54a", - "0x68ecd3b26c50447e6483aa0adfd4187a4f99bd1b8517772a9b90f939b322687e", - "0x6c291cfad552325bb806ce314f066f3a7af0ccb5950fede839023b8140b3d06a", - "0xa32f442c4134ff4559c3411aafc87649ba6776f54e0148469b7538c243c19787", - "0x06ab81f6da34fadcc2d1b52982cfc69e20d9451801da18672dbbabe4abfb6983", - "0x8ad902710d008f2b7bf8dc50b66a11045c7e10f80be12f6c5e622c05ad48f2dc", - "0xb85a2abe729f4f7bfebc6a7eddf085c99992d6af700f487a9a2a64164dd14abe", - "0x11039611b2f406125519fa4d3f1cc7f4a89a284be02f0d23971b2990883b4b1b", - "0x69e21960b1ed6da34778848a92b200c8275ec8ae1763e07b8edab481cbd5c1cb", - "0xab4a7ffbe54a07e8b1af0eccdd1fda88d72a25d61bf6b12c9f5022afae936fc1", - "0x8d8fef9f7b0df3e2cbe6cd99ae3ec231c3bf7a583028c0f6accc38d2ac294019", - "0xf8c75352c289c74a797e8673193c505600611433730e415ed877087cad99d3fd", - "0x28b756fe2c8e5c6cfb5df29e8c4f3a9ae149c9d7408efc31c57e5164e9333da1", - "0x3912bfa54cdcb8e6eb1900d7b8d464fab0aa97593b9795802d8a084d66d82288", - "0x0db191d64e9a75039a2fe0817308692f3a163bcd1cd6b476fb5e04cdc8af7808", - "0x7df00cf34abc055979b1dd70e38b364f0b1f9b6ca8a2cdaa8e72dc1c30bf5471", - "0xc4ebe3625665babdf6b8862da0ab84be8fd7b5c1e4849e9c0c2277df99c1ce4e", - "0xd6b86c60afd43553bced67a5e202b5dfdd62e668359eb25e29c4768328136fb8", - "0x46be2d0335c8157496ce74edc96bba09b3873acbe46c285c54e6985615519fb7", - "0x876940ef8cbf54dfda6ffe0d469ac0fc9adb375fdfeaafe3da8345a9db0c964d", - "0xde7c02533643f05dcefdefa9c7cce1f0583a655fa2a9b4a5040ba6a7489c650e", - "0xdfb9bea572e6a60edf6406a5e87ef3fe60f5e5884ff2fdbd9ab5ccc7f0bc602b", - "0x56b30ee04caa1d1e8367f58855c361b43c2c17361e5b242e3b6dc1e53778df5e", - "0x5da53224eafabe23f1a5637ae74cac54adffca2f18fb4a2f506a617370f06378", - "0xe1f7ba27cc89f68862c9cdefcebd4b63419d01e6cc49122f7e6187912f3298df", - "0x67d0b1d84379e0f67466a6ea295a94cd55ed67392e51a6012994218be921d805", - "0x9db5e16e54e0f9310e578d5dc943a5e45ef5b3f5e66bf758d99eb8a7528d2013", - "0x4e0b154a0b06d6544950634de6bbdf511735226649bd694b4194c43aa7e89bc6", - "0x8146ae0e77da83a036ed8b78046f204defbc771ae61bff4016cda3ccb6597cc2", - "0x00cd2da8855d464a368ccbd92907baef0fd0fe2aa8c24e48e4bb6854a011d746", - "0x261fe32ea2985be3ac260b68aea223c4b8e4db240e5fb182490407a062acea5d", - "0x65eee7ac2b1b90a0f5a4e0950b2a0f3a9b32e0928aad7f4243d4bea2f056641a", - "0x7d9e7db3a97919ff2204736eb3920587d8fdbdc97d91f14049f1d41a1eeb78d7", - "0x9c2edb4a5bb85fe484094b0e033cd7d31408a2e2d4b801a001f6f886b92e73ef", - "0x1e191b4674a3a80e09b68efe4c4dd4f38d344ac0b42a1fa152aa1242a5b53e1d", - "0xf498295a3d4e3b72ae1a11fc1d1f031cdcb68aed705be3fd698b5b92bcdc8cf3", - "0xcc89f9c163149bc17d5b0a1d79bf5538a86c4aaa3374e202a7b41cd4a562c6e1", - "0x11b5219b9b2daa6832f206bba106c64a2b9c3aba39f7dbad1feaefd788c9ee42", - "0xd936254f54f45c34c79c8a1ded63133c9437e82c99a26a8bf3efb95ad9b5cf54", - "0x8e8b502743a0ea7075c89a88bd149b8f97846dd915918ab8cb21c7b7b710a4da", - "0xdf0e67381564465619d90165d5677c19a396674d832530c18cef2a348f9671bf", - "0x6481f7abc12e1a5655b0c88a693ecbbe5ab2685c776eb5a9a3485167eeaf95c2", - "0xe9ebad32fa87a2a77c82a6d276a18b0efd6f615361f0d6e72c0a037b35bb396a", - "0x3e052b0aed9cee87f4d70626837c1a49ec169b2e8e03c37fc5616bb0573fe35a", - "0x15245833a84147b5df07f999c6baf27655bda682a5a4db93879f41a2ea023f31", - "0x4820d25f27aec110817a81bea0d7b9bedeeb8d9af55ace79de81380093a02176", - "0x4e156aedc00095dfff29092326b02fe2863a6aba3ebf8add79485096f20267ff", - "0x3b63cf9b1decf710ac331a5db829a5fd2eb0a7da6724c0a90b9525334092d6e9", - "0xb54145d2b41dd0142f5d2487b0db7fa96f42621c08d63edc036dee4b072eda08", - "0x8084c6690651740db4e67dbb0623b5d1342cec0ce95b6349058d7051fbf186c9", - "0x9c6b1c3b15784111ae80cdf7398e1283f4d68a9c2a6a2cd95b8594e0acee752d", - "0x71322541265c9b5d5404e9f089e505ef1814fcad641a81ba3e1bec009abcb920", - "0x1e028666b6fe44f8c8b2c9f3fa8c8ae5f062a7e117d79d661446fcb8a72b5db7", - "0x3a6cd5395b4be2aa1ee4f7d24d1d1433f46db1307c7ae823803ca1df7843ac6c", - "0x64b8b040c6c0cc2ebb2f011039dcb091d4c8f4d338b82fc1a68235c6eeb8c8a1", - "0x89f98b1f7e78b539f83d45c5ce8cb455e8ad7686f42d39f9c195d37ee9cf5fe4", - "0x14abc82071dae6f563f272da9e1ba7f9ac6f0547544cf9cdec088ac6283eb464", - "0x6aa6490aa64733dab57d954b9907f421c6c571ab2b2cebbd833d59d74ba19be3", - "0x62e4524b07b9b8d8a53cd29e457a58dd9f940141797f847b889023c22330db0d", - "0x534a4c4ffd28cc8c3f9823826644138c9207255958f3dac5d0a5f279d57508d5", - "0x3e7f74f25707ae6686334c585603253a21764cc1adc730353c02a56f6b7f3e81", - "0x59cc225b1c9cee2ece86b3093a8bf6ad3ae0260ee760384f1299b5af75eaa1ff", - "0x15ee9a6c566674f1f7742d1e07015fcd66e22d7648ba25be50428006efccd026", - "0xc0668ec3f88e6a9f1097050e999f0082e9a39ba43fccb194790e51a41602e704", - "0x03b0cdd4ca4ca3d8b1270eb9b73dd28f22ce5681c3e0dd5d11107719d2614de5", - "0xffad54056c851b02f83948e7d665980f623643ef40aebe91936c3bf0d24a3a2e", - "0xdd587650149a81f7a5e92739c18af1216bf32ff2cd7b1c908a6d3100c052b0b0", - "0x1fb346da4fa3c0b7d1acf87e4e8b9c0b05cf41d21794d9db58b14e321f9b6bbb", - "0xc15a230b3105e4c549291228b28a3ded073e7061f56bd31a8bbe4570e2e11910", - "0x9c01dbeda0dd9cfb4e70e8b63551c590edf5be26c879d319781154c44520aba9", - "0x8b418cd11db8823868c9495d213b9e5c5e0d8b25d5f7c262f21b3d2b9f591ea2", - "0xff7cbadcb60f8e9574e1a1ca57c0cf1b5b26725a7683a870b581734ce906df73", - "0x0efe88c68a8404cf9e1cee6d4b863c48ba502c5b5f504dd8a6f251122138e651", - "0x87994dbe88b7749a347e438c76273ba5a7b8835449d32ba75bbc877979e5a3b8", - "0x366779f7f70fc10da80427ba5f0f6af0e1b5d60c37c0c7e524e408a1e2f261eb", - "0x616c1a9eeb13a026372b099a101eece0cf0d1715dddf192147d401c722b6a6f8", - "0xb35494e9758f3bd7bb23fdd9c86f60a8bc73e3422cc9be80c7f592fbcef26b9e", - "0xbfcf52fcbd301f4b5d32e62f284f95d01bc545e16f806ab64038d11be74f8638", - "0x3f155939a40b556e30ccc4b32273a3586fd5aa89c4209337da1ecf145416c6f6", - "0xc23227be04320beca30ce9ee2b9f74bc8802414ee78754d7af1bc887e1e260f0", - "0xbc45e7b6bab510e72479ed0a675a05217244a9879be26d24780a39537c233f10", - "0xf651ff7ae3c7570a95245216c9461fbf90293a3962f8883d502a92277f0e4ecc", - "0x92b1b6ba3f6bb8a949225e51a480dd63152147e98d96ff5aca2ddc81eadac6c5", - "0x368b2b21a1411fd2d651c12cba2f2c3d4d9dee020e98a63aeea861e4b6837e12", - "0xe52565a7d159275cbe9e024130faeec3ddc3c3e27507d35d92565c8a56e13c64", - "0x3252703f9e4b7ba715810126ba57d87bf585fbec8e5928aa598c577f11daf792", - "0x6283fbe3a436d7860c0b564f2c7a32814c189093c775a8d800ae24160dd3e72e", - "0xe76378b3adf8f756728c553a5d822afa016d8117cb04a24b1c2a1eadd62421a3", - "0xc0a2504fcbb69d1adce70da836a73fe8e8fd74aa7aa4cb7d22bf844e7b91aa89", - "0x4d3e70bd5f122962b3cf64de57c69d85194126d71e79c964fc4397afe252da25", - "0x7efda1eb1564ba1d295eb6d403d9900b3336f081f2bb6de2c375889883f64097", - "0x6bdce19bc957c2bfc7e49f91d436367374847fdc6daae2e621f00aa024f78094", - "0xf42d152632eb0a55173ce7ce4cca3a91c7d7971a7456eb6ffe88dea54c3182df", - "0xa6a2353ab4a3bda46687cfd3ec8e349f2ed61e449875b9d1580d9a2370ccd54d", - "0x3aa4b80ff21dc79fac0b4f913d46687c4f991e5005fa6af731c9b2d10dad9c81", - "0x7d1022dc5a7fad9c0291448c56eb99283e1e64c37f6a55431843644102959d6b", - "0xa918366830e62330c423ce2f03f99206f6f3c1bf7660e01fafdddc40c8a0b650", - "0xace8ee8ad7fb40d481f20b165ac8012f3ff69f0bd8fd3ee290d894236549d065", - "0xb03858a13f584d7128989a47ae71d945dd67a3c2f54ecb3368ab76371d944c6d", - "0x56c78acc4c4dab9994018a969c3d3451300f8229d018f6af2de91fa4da6d4230", - "0xfb4313d83488e1003d38869fd8e8788d7e74c124542774ad7fa75971bdc61131", - "0x1decf505cb4473ffb91dc428710d2a2188d57bbcca71b7b5e277eaba0c7252cd", - "0x9db499b44cf0bd96713ec99cc769c8454fba3729014d87b67c18b55f0b4b9fc0", - "0x3cc717a489465b21a09c3fa19453d2a8cddb914b7d2789c21db6c311386e0f80", - "0xce4868287d923f8b22aca7a1df1ee11685d7c50c6384994ded2e99fcd2c01906", - "0x06b502cc70d1ae3c79e44a421b6ffb9a1a6f0bc647b4421cb375ab5d8474c713", - "0x4803b5e78af29ff140e37b23bd2f3de9fa6cda3a1bea2361e838061490708d0f", - "0x874051f592d34ea3684460f094a78d0e1be3bcf49586b1467be0386f1f9e3d94", - "0x8b66caf3a57d9998e2d88b0e4ff296825b6dbafbded01e384fd87bf4a92c5bbb", - "0x61f6244709692f492cf345586212374f4b209f1d2f92d3ba0e4000ad0634bda2", - "0xc58788c015dda34717586db2395a654f49ef0bfb4642459cc0ac5a5d74a2fb67", - "0x5161b49a84d5c614d72bb3e220878afa94d9acd30cdeef78873dcd91233de390", - "0x5e358365657197bab7481eab0dfbf8a6d66eec8dc62aa345c5364f75c07b8675", - "0xb358c9e7d218bdbb42f91752d03365945a474d49e84dbb15982e368def01cffc", - "0x908bf24327cfa0001d13fb5a0a73b536132e7ecf66d47f2c77215b03bb5b1693", - "0xb041e9e1a1087afbf41d87aa9e56195cc548527c81023d43416720c025b896ef", - "0x48ff5fcf252fa38a00aaf887e108928755932f45d7cef5a8fa0b72d711789f66", - "0x16f99b5d528b9ea7a92e5f7ac59e60d4305b71c9b20485c7911f84e3ddd1802a", - "0xeadc395d16b240b8412e14d5065a33847fcf8ae122d22f24438d7f79d8cfc40f", - "0x560faaf4e0471cfe39aafa10c9660d61c8489d2c5d49eff2a8e62ab31b7ec08d", - "0xf1c8bac46e0764d0faf89556b0080cc7b16433070e1e945e83f1ae36595da7fe", - "0xcb7409cbd3d3104a4b5d856887fe6d390643b4c433de855644f2184218631662", - "0x6eec345c4baf4e699f0ea48bdf54b2e74f98020395759e275e7cda0138424ab0", - "0x48a8bb061ad00561541b4e19009d3e8c2e2b9064337ef431fde45fb2988136c3", - "0x458b21c6ca362ec731487499486c4c0ea69905c8f36617810009edac608b9e20", - "0xb338584ad517b679ea52ea9abfc8d786ce1eb55cd3f221782de658f75b23ed47", - "0xdfe64bd8632a87d995972376311f78a0fd390fd2635e002e3dcd7838a3b28516", - "0x49d9ca4420847c21e2969911b7b5f321fbdac5037d0d8644d6f357444f91238f", - "0xd654571d72fc11d7a86ed2408cd1f78e8009dcd117323c8970614ed8731d66d4", - "0x2133c8e084efa57df6e1b4f1af5515a4662809d722ec002676eaa99987a2607d", - "0x5bc530b5fae32bc84127fbe7feb7eb07432313915e2d579a668f46fdbe46bd1d", - "0x8070890263bff747db0122240249361f5aa66cf121c3b6c4ac40deff6e42af5a", - "0xecd7aef2e4b4419539fa40570a61a967a0f296f524c25de9cdbb012b03d8d837", - "0x4376d56fa5e09c64156c6d1371151a33f7ac1e46635afb37823ed75287083bf1", - "0x50d32b39873466597d5fd29a2bc3596f54051d064559c46510f643f2c24e6319", - "0xc44c4284e5cb873846761cd012e0d221763c972242c0c4a161f3fe0e2da74026", - "0x141d2894e4cebe94df908cf463d5aa6a95e22624f5183d03cb60011c0677eaab", - "0x1bb68700d0f6e052ca64c983352731ccb0c3947ec73d67ecbbcb72c5ae3791e5", - "0x73095bc9acdbad7044390e72ae6c471c8636dc0116e2ec322198bc080af7fb11", - "0x66bbec6ab32528486c3ad89c36fe750d9c6e5bec862ea683988ba578302db503", - "0x979820d20c32a076297e3a940ef4b9f3ef02c9ed551996fa106b6db778852e52", - "0x4da1d4babd26763bb29976f0f2c439d3cdc06089951d0eeab7df2da59c128454", - "0x4c70dd6d755e7fe3da5f94dd2af53d037bda9d7b1eabb68bdb75111ecd190e04", - "0x87ff13d01ebf46a5a45f5b29e7026117e8b41d135829457d80918dc00a325f0b", - "0x78d573b16ad8a3c3b0a704a01fa79915907fbddeaca6c7e189c5c586855ea882", - "0x95b9c87ed9b7365b1ac15b02a388d47f75ae8036bf658850ebbd8b829ded9186", - "0x812fb8d5c2d962725245a182d0d267fbf97358d5c236cfece3fb398fe641f78b", - "0x31db1fe9db91df6684660f1eed0928bbdac477bd1bd376399e27a53ce760ffd8", - "0x4bb0cc2765ae336b21fd1f983f21464e907c6fa4831b047386f64e021550b2e7", - "0x7f6317d849a40784edf0d2c7b32f57569e561efcb4fb3c5f857b30319a93e2e6", - "0x5921a9e8ccdb11e574a012cafcb05a6dcf86ff8006595837fce805675202b8df", - "0x5357bc6834cde24334aa697f050c51c0456f7b03f938819baaf8c5be1dc10df5", - "0x8fb8b01b64eab496c9496179016adac0dae5ff6793970b3c307202fb17a93af1", - "0xd4ad4478bee0d5bb0852461107c3bef946f147f66a478789b39f7efb517b3bea", - "0x630bd6a0422ab626b28f205ec9bca83c499462556cd8116556bb40ad0cdf0e66", - "0xb2d07716e5e20312f314cde99480110794d3cf70ccc786828fa25ebf97ffdcad", - "0x87fc5c3371e3ed8f9201f61768fb2683bdadf8c3f6a3039c3504107b07b508d0", - "0x9e67bf7118e42faff0aaf8aae3118867c692b27c35efcbfd057d562e8d4390d9", - "0xd96833f813ac20074274531949bce0637e06636b6ee8b875b4811f09cbc8c116", - "0x4e9f29f98bee2fdb5c5692d94bad8f87b6b2904258549a937603da0ab5d36b65", - "0x77c3b0bee822bab79529cbe96d6847649d9528399a488ba9e94484f7059c46c4", - "0x948d3eca01db52a52679fbc33ca30aceb7e3ff6449463a2748fad0982b75313b", - "0xb3084fdf4a2ea5228c35adb20017039f4ef01e97d99aae08d4adf591b96330c0", - "0x5bfb4369df41aa75c957c1fffd6b498be3e7ae858cd53f67c1c688b9c78afc4e", - "0x6a2092f54cfb6c26b0d5c8f559e5e9995c79873db7631a8f6397ef5ef815352c", - "0xb286ce1787331698f1f860e1232f6766a658d27390b7623d460136a6be90a444", - "0xf84ba9ae60fe7bae5d3eb5be6c6b85aa564f8d0a7ffc479d4b0d1c8bd69a2adf", - "0x467550339dad58cba021e3fe967bd5d81be04e6670488adfcfeeb0dab07d6b2f", - "0x5150476eb3075df5b6ab3fb54ded34ce76e06660ee401951652e484e9a3fbd62", - "0x80845f54e9c21ee96f4aebacad6d199416a6b30fd741d6e6c9966f58c54f1364", - "0x8264045a020782a7dfc047efdfaa103bc186e88c920f2c25a016911fcf33fa2c", - "0x52399e942b721929b9875c274ec6b5034c26f7749f6d26eddd99972370dad3ca", - "0xf03d8bd2bdb8ea0b6ae2e7bb55703520cff714143501f291a3e7199be5d466a8", - "0x40eed1aa25f1a87c849f5e02f846c991e7473af9fa0985e3d61bdee01cf0a5b8", - "0x3d18c888cc8729f63ee415348121e10b5d990c8f091fccce7e2d8f5c0132a20a", - "0x2e72d969de06d28196506263e6dba8310b6854b5069fdf94317a6d3e90752560", - "0x2bf249dd628dec9d4cb267a9013e050f0710daa2915e468a623748dde1a036e1", - "0x91c578ed45a55d0108656d1533d209de851f77d9abdb58265bf867d7aeeac5e9", - "0x88dabe83eea11db59d67db99a159c623498cbc648c79d829a317719b836540bf", - "0x5fac0c3efa49004a1af631263097978f16f7e6710ee7a1557432aa727e44e09d", - "0xa8506487d3c54e70b3d6e83eb72af7858f583527ba6f6a6aee6a3eb33750e538", - "0x62641830df38adc76a043baad1fbbdd8e49356c11b6565ae0b04429743011b08", - "0xf053195e1bc2db0d0451ab69471520d0a03370a8f27a4f62a1885702a36d583d", - "0x7197d7a7897505dde22c7a518054d9df7f3368fcbd109cb596872d92f6a86fcf", - "0xa5092fedfd64b4985e70ffbcd7b4522eb45f9bcabe4c478b1f1452b063d6d551", - "0x027251c22748451514c27aed0f091e7589600bdfe816ffb0a5ba99d55265b65e", - "0x590271f52852c220ae38b56cca9960a1fb94d5343a0090bfeca5e8b5bf82b2c5", - "0xf8df310ab62fd52c452122deb0f2e79bfb85bbcd0bcba7e6aa5a99a541233431", - "0x5d313f0071f2d885da1b1b5d104b8d78ae49842ff9a636ad2613ad9e90b4ea52", - "0x2672988155e5c27a3af3ae26e74d164d9f52b4c71b74905ae90466113e991692", - "0x330c8cb081da0372f6dded08c0036199e11aa8ab51f6f9869995cecd3eb16f24", - "0xd65721d9678bf4667c6688af76d2dba106fc51e8396b0af78bcc80bf4149629a", - "0xf5019f4da39e5ca6102679e5a0388a3850eae7bcd91c632d26515caef12c472f", - "0xe9c747dfd6af4dc29b5836495be42673a20bb2475264a2f9bed00eb8250fea7f", - "0x2486ab886ced7bbdd774371aa0ed1c177d6d187bda235a4a8fa390b704eeee8e", - "0xa91824527f5a40050aafe359817594b43cfddbe3977113207a7d5868507caa19", - "0xd44591357b62e80b8f5606eebd4cac5052efddfc3e6a8c5689660d6617f93b33", - "0xfe5628e6d9dc75f413cb12ee1004e1514769ad7085b5434f762e93db9115b78e", - "0xd0393986e30a8961e01ede613787fd2e6fab42db329d0e57bfd16b42cacc4045", - "0xbe40cc6ffd2d51f7658f48359d4b726c64a354a9d1becf189ed83775f8fb4086", - "0x1d06de0ea61fd233ed701c9520f18012143277ca9b379d39db62fcd0a4e7681c", - "0x463ffe1d54544945f4abd7e35cb7c90a4a809c25e1919215207b7d2a8d3b4fe9", - "0xdf128c4d6c4048d4fb0f7db6db091ce4de10d509c45736f5521ebc4ac93a7ddc", - "0x5ed827eae4b7e95cac552d60b60fa209157f1a8c6e3611c1a5f6f7a49e8a6a92", - "0xd7fd28964beb50a410de115f290a0140fbc78d0d4c47ba02afe9f47d80df5e53", - "0x1996f9b8f7efa3d860233141774f46c00b63f207219c2eac5e61318a9464d7a7", - "0x4cfccfc8a9623fc9b5ab38c991999f8a52c6537d984ecbb0c490ff37559cc51b", - "0x4aeec05c7d47781008273281bd01b36c5ce21916cf7fc9dbf79aa2c477923c1f", - "0x96cb38c2449f97c92c81f5f4317b15267c9c2f4ab62240885280ced5f54bbc53", - "0xab5e6b9e4c4a27aa725183699ae30a6f8bc8148bfe85d1e4d0bb8565502e6e73", - "0x23fcdee9cd75706e640aa55c4e8acccd7ba9591e724bf351a7070104cdc698bf", - "0x5f3433fb2aff1e3843785b2f2cba22811cac84061803a2c5fd045b1983c8ba81", - "0x5613366fa3c323b091a44d10ffdfb1f485160fb45094cbd52707484f820cdae5", - "0xfc43bffcd36963706e2bac564dea4d593c35c5156de02eb747bc557988d628cb", - "0x4f23fab93388bc79a879f85c3efe0f15606828e6034cdc6b66810a90cdacb793", - "0x62ebc41d0592d1569001358ff3f1641c0a6ad89e66b0fd1e784f060c9101dee3", - "0x12bc43cf16c8965f106f3749bb6b5d9ff3936a205d2ef5719ee637308f81ea24", - "0xe991829e5d9c26cd365f6907de1fe2f2153cd88a7d7e8e56224c9dacce442fa8", - "0x55679ce947be929966abf9953031fd172480b7da8be0b34344512406d93764ac", - "0xae1f80cf386c6cbdd1ee0a1241e738c245eb12665f2fd1a614391ba54c741847", - "0xad12a941df30e25584f19f5aa65069d919a2e0dcbcce73de8724f975abdceef9", - "0xb3478980a68ed409b58d35759d4648ce21ed97758a1eaa0d0f1ce6b059b6da41", - "0xbec5fc3e9184d2e46bf0ae39c408a7cc243a41b69a923fb2d1224638153b3ce0", - "0xec95c1df965aef7e6061a770e0c82b6dab0027dccca5ea3791ed207b868098ed", - "0x2bd64bac83283cbb0bb5f7c1d461261a089a40904574e2daaee97110425092cd", - "0xeed53a58f04a07af388b098bb8c1e49abab852736c84d69bcbb78b945f23b86e", - "0x2c2c81b8a0c362105ccd0251119ddb406b65562611b2c3b3fb9825dba0cf6ac7", - "0x91c93ff5548a0462f1cc7cdf0a5c57dfc1f21932dee38e25759c9e5719036fbe", - "0xbb1c1bea058893b30e38cf0ea2f53b943fd6bcafb86b0eb647ccd152aa42dad8", - "0x079da567e28f61687250a49aa9fca4c465245cb0ce02ff075b500b203c459605", - "0x691de81b04aab67b3276168be7dc43e220114005a4d66a1ce9ef2665cd2bc867", - "0x3deccfb1fdf3e57aa2d63d0692cb37f375aa457da52d88cc9cf277c32021bf45", - "0x6cd1a84bb6976f2599898aa46fc67627663738cdeeb815ef1f45762cbb14dae5", - "0x29c96ea5d11a5a761ff7c64b24a0892daeed506b8f7ab33e93d6eb6023b9b37c", - "0x0bd8890f06cc6187a1d1a029cb319df75018b067bf796591b0b0a07a2c33c008", - "0x6a3d0b949241a493d2eab974adb173daee1e3c791c2dce6bfe59b127f8557ba8", - "0xd102ccc0476081c8d399083930dfa59486a51f83d33096ce77897b9b0fe41b1b", - "0xf9ddd66ee324bc7f06544cd53f792dba6697c1ecfd4c40a44733944f7e7ebc91", - "0xc14b245a2f2d02ecb944acb218d76e311659cfabcf72f9eb49db59541550b6d9", - "0x190781209df0cb64a4ed6ceb15428699e6b67f3cff28b7a987988a8e29829171", - "0x46605aba1cbee0bfdf90b57e320823ad4607d9ea1d6698005820021128c472b0", - "0xfac04645717514b9ec56f85cf0e6cae5aab46e25e69e3cd010513d9598d56609", - "0xfd0c9f959513a72149bfa23b32c5006ea766ba2e41edd47f450090568d44cef6", - "0xf0560a14936e66cced54d4002599808b127f9e56260f04f144fe9da412577c61", - "0xc9448c9e8a3b09fd51ee93b77feecb8a8ba03e1781a3f5bccc93b4d1815232fd", - "0x3c41d49f2aa53e90f5fed6f372c620fff5a80f442894c71bd7b6c2f55ed76f47", - "0x0d9517fddbd945294c72ed49bf6bcbd88d84c9b3b2e257c05f64bb69c4d7815f", - "0x1a67fe64cb906429f47250e1a30858366e0204c3f39b7d4b3f121a46a51566a4", - "0x9833e385110465d72ab133f02348cb33433f38454f6e985b022720a9836e5015", - "0x89f653efbe7bdc469e2896aedb2a22ce5982b919a7c6dd14046db4eee3950b6d", - "0xe92427a7878630f65cd4f38dcee4c5d87ea0dc3d0ba1720c0d9f53cd84411b7f", - "0x1f692c127e4d0e37f55f24f5c20516c804dad968b5dfcfa000595b4682aabab6", - "0xa3557041302da75734accb2e95db335abb208626e1b9d20a54ec0e0d23a5e003", - "0x96bfe30b54d1f39b5693272ec7cea523e0531cb7fb805e69a820888ea747b3ba", - "0xca8f5d8fdd17be423ad5bf84d7f591466137a54388b65f5d853aa83ef25e9b42", - "0xafd729d01c437b299b29da02e34eef0b8a762a24447b96c0499231a17a84fe7b", - "0xf95f528a8abcdc0eeb66250fc3d1df11d0831a08b30d11f0f6f0f96b02f7ef82", - "0x483de90f340fd0035676305359fb8c83b709374676796c86c4d4b615ac779b5e", - "0x433f6ce08d28351388ef6310847d7949f4e92ec99d585c3cbb5fd7152baa507f", - "0x77dc56a6b802ffae812c3e4d8768fc3d80bf96b95a55b1b9736a9073ed0093ab", - "0x5c3c2bfb8cda1218a08084c4645e2a84fde3aad03ce00c3310b3ae5d80e25be2", - "0x3321f6475c8ed111a1373bdeb68609f52c4740f22e4f13952e8a6d98fbfae542", - "0x7a0c172b717acba8a7b874e6c88257cfe68d41855506ee909d84d23b028a7ffb", - "0x7ae3757e9cb71b9063d79db76109af96ff1a5e6aa1183b1b70150757243a94e1", - "0x4ce794f4c0c9273c14e6faa680e8837247c6a0ab503a82432f69529d4f5530b0", - "0x8a0ff3d87111ac19f2d95d813e384a96dae3cb15caf12e50b99816393db3a374", - "0x35adc4577b9532f5e821d6a39029cb898886ec9a8b938bde92ccb1df67d2dc2c", - "0x84976050b7ccc3c953976162a6406d125edae798bc1bf850b8867b3242076a30", - "0xa64d9c9681b1192185c9570a6512d8b21483534bf0ca7f457acc96f91070358d", - "0xb27f0ed2428dde6c5506770651e3cab0fc62b71be0f245a8f6a84c326ebdf327", - "0x4f71b19b200ccaf3d359eee3ad5d7c155616b86495a43e2a7c18d0740304aa2a", - "0xf22988f8c5443f4400af9895f655a84b31e871a68e74a396ea5334297c0fa190", - "0x37dbed2e2f7408ce439ab0ab09af040972021ecd606f517af45c195a80e3f3f6", - "0x5165c41b008baa5fdd010a9a17f0c2fae2a0f16b4d230c21bdcfc737e9279c23", - "0x96ebfdbfbc02fbf12acdf622ad7ffb8dc10299ee66c4ca956eacebc6073fad75", - "0x47ff8c523b69bd123ebc4ee8a81240f2bc1c4e8dafcf9b9cb5db5b7a8f4c884c", - "0xcc3a09c1108d216199d7b3412f86d73d4fa7585c393dd3ed95ef0320f0f9bba6", - "0xa79133fa77c790f4f12a9bebaf21531c831c72db93e4a36a8f2ea672260d74a6", - "0xfaaa6544245fbf22f3016befbd4acf93135e64f69a7aeab07599af3a52f6323a", - "0xf489992872d1dddbba3c6b2fee1eed0f604f02e7350d747398944bcf4fac3171", - "0xb49c4387382e339ed00cba9469275920e116ea556bbefeecfc9c154d2f1c1f77", - "0xfff493a58d86d6160d9bdaf60504b07d6f33412fee522af09c1a7de8ec9fcb05", - "0x584d1e0a2569cff0fc1b71c850eee0c1f680037cbb678bbaff035c49ea5a6275", - "0x91682c3606944042c10a5fed5e6b5662c39cf980471b8bc603042cf0d455842c", - "0xb979f301dc2bed6c7e60bafb112b92b22b5f173f1d9e8fd665415bace1a580e0", - "0x71d439075aede2a781f1a872dcb8c89846056f5317be5df5dbf47904d106938b", - "0x9c2353de49861c4d10309f99457e6f6d9e5b7a57360837aaf0a1942c0440fe9a", - "0xc2c08c3e2d8741a4b4bb180fee1b1d0cb54f87f2739aa3881d534a9c73fd2d1d", - "0xcd75923a659ed6e79c9a1e22201374bada6bb2e030e3664763dda54552bddb15", - "0x60749dd09da7517a03cf6baa9b4623198f4209f1274c00bfb234c61d467da12d", - "0x11b1893d89913c9c57f32ab875ed403fd9802475e3c861472dab770d4882192c", - "0x26ddfbfde82876e17d6872f31aca7f233f790b3ec0618d6b5c51871c9700039f", - "0x8c9ceba1e4cc81ee6103acda0bceebf5b0413023966dd5c3c5641453c96c29b4", - "0xf30e9e6f8456fb427f96f356eac399fbee64dee3ec4a2806701c3484608c0edb", - "0x7773f80e3cadcae69cabda956228cac8cf774bfa84e2ce92ab2872ed19946858", - "0x4d510670cd4036f534fda9c7b4ddc14aba28ac985b90a0bc831483621d44996b", - "0x4e7d6a0fef6ac54f4f0336961561398600d0c6a04862f613ed6eb648d45bd348", - "0x55c0bb04ee6e1aa15ae55e1de229ab5a4b553864c43cf527f2ee42d441bb0bd6", - "0x92a9c4000171a6534d7546749d7392a9a18974be969bd773b4ff3f5c39c91a17", - "0x892daebee1b6c833ad425d5606ac7562c135688ba8e83178c0f8438679e84e7f", - "0xfb1438e6e00a88a26dc46bdb1ff1696cfac94bebd02f16891c08b52de7accd84", - "0x46404590a94fdd59cdd4ce607c1ba016a78be8bfd8dac361b8cccf6191aa0bdb", - "0xc1a63495f12681da588396c2d30096cdc8c52fafbc0bb0d6f11de5ee2c5a7c51", - "0x86ce595e0805026d106024d9d13e0fca7b208155901b67cb0011138b31bd947d", - "0x7bd81277da5da97359e67e2d5c12cb238daa009f4220166e13ba1f067125888e", - "0x2dbf4b23c2178c8dea6066d43b5f1285894d9e74a8b1056d0ee02091b84dee50", - "0xe983e1211c5b12ccb547dffe850e4adff01eadbb6717adb150248900332482ae", - "0x2f42bd119e06fde6cf7e95c59caeb189afcec85ee9968196f7a15917f98962c9", - "0x1e54e7e17e28b7c2de1c8391684a938e1adc2011fdf8f4a6da900f3664f2f25a", - "0x657e31fe41599356929abc24f7d751e49aa769ef9a4b9d5b37e6bf019dd567a7", - "0x33de4f2776dcd8b17b846816e02c4dd1694891b6827f87a80b31ed37ac0c6048", - "0x2b3b692269fd869b7797c78de9a521705aa223d78652dfbb32c1b8b612bc4351", - "0xa57d205b64565acb103e962a83d300a302efdcd96a13f4c79e80e2733341a70c", - "0xbcdcd2d22c7e21d24e48d28c43d09186a15568feaa24f44f126e5bb96ffbde99", - "0x3a6de68513eb363878604d054f46224e8567f2654cbcc0d9f81fd37fda804a65", - "0xb762285a5d8172a6df584ed15e954f432ddd8f41ca342db7d1d14c54af21e420", - "0x97702988d087056b85f9046bb8d3e37365f4e5811507c1e2daf544af76f1825b", - "0x8d1dbce8efa6eeb4269e22b45c2a9e7c53f7ecafb83e8219b14d43f66b6fa68b", - "0x54a2b87cc430e350eba1271a9161fd08157e196a4d4a7ea29a7461dfab6370a1", - "0x253d68032f383891fbf9c1898fe7d41c6362ebf759b3e3216bc14bad63250181", - "0x175102f1ccd3712675505c3d74609f2c46053c2501998a91b69b2eac9e1e476b", - "0xb07dfe916a1c61b07571327de80a478aeccd3f6f26aa4ecd7081a5f16556e946", - "0x0c87d079935642a1d3673d9b41ed2d3da33ef124acc081e236b23c50d78ac968", - "0x0f3718936f3be6ac78445fe56dc92e4806032d67e014cbe0a92e3193999c8acf", - "0x88bc8add9c916ec21c2f83e398bee626533eb038900c787eed34cdc1ef273a2c", - "0xccd4eebce003d0415c0ecf2d40916651b5f336e5ac64652b69a2ef653d777995", - "0xb9bbc12a4b92aad64875c00d7536c7dee7d62b87813b99a9a77bdc066c169a89", - "0x9ec43027a7229ab550391eb6dfd0cd5cc9b3b103eeb0b79dc9d2f4d8ce3c0aa3", - "0xb4e8c06e7424fdeee2f241365828d9a407f117a0811cced5ac35dbe9abe70a81", - "0xa5a9149f1002457f7c9c3dc2a4aebf7d5453f20c1d7e3a3a732ae92b04b8c00a", - "0x28d20d654b1e7a024956a6c8f53bd1c097d1df3a6de91036092c88c8070474f4", - "0xa11eebe47ce50f4076209307fd58c75b0ff725469ea0875c658119f7abc644de", - "0xfff2020661ecfbb50cd6263686f903127b9d1e5f43dd8bd2d5ecb09eccf6090c", - "0x253576932466ee619cbd3f012915380f1e7a79972864fa0e98a755f902f1199c", - "0x554258855ef348fa770e3af434da722350e998e930f234b5b8c33d3d2f806595", - "0xad11b76ad542ca1e825b251a6cf410b6f86c8c4b42b3c8690a2871e7cfb27882", - "0x3c3d7cddca90448af6119481e08b388df75389ac3c7dcc26ac532680b23ce2a3", - "0x94c4ede45ad5b27c5a6b051fca3b055d548e4c29d2541a9cb4c37bcfff4f19a2", - "0xabf8f7c1b9828d61e3aa72ded1ceeafd6ad539b79b5d56c5eb93c3327b9d83ee", - "0x6e2aa49e5942f19f19181ae911e7951534aec1a7fe295bbf921d8f28a4b7c0aa", - "0x0f49df5c80ca4ff33623bcab40e9ded6159d3f167f7754c3dfaa2eea0ccc368f", - "0x070b14922cfbdf78ead68019e520a08b987ad203db005f4085cd25e6ab587016", - "0x8501cdc568d6c64cef9b87e639d5a0e3f5a4b7d77e8510df07bf0fc50d89d020", - "0xacb70d4cd2010d149f382dbc0f7fc1b74f0fa6bfb5e770017fad960aeb7c80e8", - "0xf49878d3473b21f4ff2c331fe48074ba47ff78198f839dfc7d1d69abab81e499", - "0x9a11ca4ae2a7a68bfdbf54d7f0978150176aa4012ccb8d1781c10b58e01b851c", - "0x58729c03b10b2ec8b4abd91b876ab57a2c0bf05ff02218bae9765a90037562b3", - "0x3b5b033d76798ad041842b9ecbe223dbcfc2d5babdbe864480126dd932d29fa5", - "0xe08ce9149dae8cbc8968dbabbd97624f917148f26f45b858e49c2c389bb22f20", - "0x6b532db41ccc7cdd970d5cb0166dee2272346f23e0acfd8d751491d0c3ecaec0", - "0x99fbdf39928b3f855b2390bb845a96478221330b7c350e83e7b4dbf7a35e2685", - "0xd2a2a108c0a4dfe5ba0d0488da0de7f6d15994f6c14b511712dff4af33bbcf8d", - "0x75ddbc2ad15fc25c2ae71750f1d5bde5e825b40d29d631a27d8801590d5e1321", - "0x226995d806f5d03722266554109395921f63ba1f66f5ed1ece7341bd860a635f", - "0xf78d4178efcc128e86b2e1df767e59c76a4bc9db0ea294bec79b08448133568c", - "0x160e1fa8fde835d6e91187a3da5caee245d4d0b9ee30894170617b680d275166", - "0x361d71c972953283f8ddbab4a45a01b39f30290dc1dbf1b6b744af5afb2e70d0", - "0xb8394cc0d42a0b60ec40984f753b8eb5b9175022bc2ca7f80d64d26106ce86b5", - "0xa0f6ff5ee727a3106e045468b5ed9ee8ef387eb9a0355f2249a71441819b7bd8", - "0xf441bc00d94f06485368e043f933ec9f8e181b11ab0212d728d83e2d039edfb6", - "0x1da12d2213cd65f5fce71c06e44b40a487d5e676558e6f617372244f8e98d549", - "0x7d988011d5c7da97b37c6a6936aa499a70aee8b38f8ed60959f576c108c54d1a", - "0x3d5ff693e4ec163fecbfffc95024cdddc4d2c561297124bb69c8d6aad4ae85b9", - "0xf7db67de101d00409e1ce3430445fe3d38a073e1c81e1453d63f4228a51615ce", - "0x335a94506606e70ca259348ae7157066b55faf09a4ac11bcc34a0b865f4a8057", - "0x137d0de6cfa1e475f6d94248c1e30bc10c17b98d40829974ed4ccfd7de0ffec4", - "0x1d63a7c1c54bc740875f3b5d8750aa6bc85d1c10e3caa4c9d67b4b010a83c29a", - "0x04e0208220bd1218b6180dcdfada95b3a8391bb380b0b0ad5a1a8a02f1a3687b", - "0x02a3dbb2d221bb8e8be58e12982445246928b9965caee73383e54edadc017315", - "0x549dfa1efb8c32071dac220aa4c76ccc038cde6ec9a39e2745a2d55e92bc0890", - "0x1f9bec0a6b3415194528a23443c9904f578d57d7024ceb964ab09a9e8e3d9c03", - "0xbfb25a68c40fcc0dd996e992b18dc73a48525a323995a0eee03a0a04c572b68f", - "0x7244057fe32846105479bf704b871bd1a081acefc57b37aea76116442805a70d", - "0xe6a48159dc041cc9a0d8eb124aebcffad394a400724410e956f8f46e1d89e8b7", - "0x812d9147b6661f54af0c39c1f4de79588ad9cb62b25befd4334ef5f3ebbc2cff", - "0xf9aa945fe2eb3d1e2a01db68d4502a4f33afcfa967fc06944e035c582dbf383f", - "0x63a437b920c6b916eed44003b8d35872acbd0d1859b6596b4f45e39d04057e0c", - "0xffbaa46c582530498f30e51d18deb6973824b850d09bf4a4535699890a548eca", - "0x6ab7423011299d3a82d2037cfac752bc0e88a82696f6aead69ae940bf202792a", - "0x2fc6f5dbcccf16340f2b3a5e341e364c3cb1dbb3e899c7acd6e50e7ab333f45a", - "0xd354b48b2d3cf13487ac8138caca0740408b42613b50f056ea595741ba275d7c", - "0x8e1cbf4bb7a83b1e47f69c08f3fbb133bd36d8fbce923db79a248c21e9657f8e", - "0x414c7f4d86ecf78c3988723ab584ff735633a37267b1f5986d0c2e6375f878b8", - "0xe0b0dc519fccf20ef45b2b185d791575d88f93011bcf5205f4880f7ed755a54d", - "0x528a7ac7c6a17775d207a983b76ff54f8fbb84b8ceb3f6fbb60a80d9f306c497", - "0x458bfe441e32d15fd95a33de1665a94ff4f2a4c357f4fdef5c9e7c82013f59be", - "0xd478a55408477b3559d50bcc4b5c4cc2713e0666f40d87c5faa7328c5b7db489", - "0x9977a36db4a48e7e1f4029efc494a341b8eb2e40c73fa9ed3be2f16065df8900", - "0xe2cb22eaad423da374bbe1cfb8f4f353eab0f9874084aac4f42578525e26586c", - "0x0225069114efef02e188a1a35320d6522c115706c7b87b3b54805aeeb9e60db7", - "0xf82e17b405c2e19957b63706c0d7405e09be93b129ecf850e1941d62f1c309eb", - "0xe26f6f439b0d33f00a973b12f5d3c619bc4cae8662ba25173fa3398b8fa19d02", - "0xeec38666a51fc161736b7b48c8befc98cf9683975abb8432cf735edb907b05d7", - "0x8d8c5ec1f83108372f361b0679a65bc72f1b5055a3b9a12f01855a61437c9ebf", - "0xb53f85551f811c60b17b48df2125648aacef9a74af403cbd877c1e539c045ede", - "0x498d608f0ebf85809b9f5a9270e481d03f4e26cfa38600e50347b968cc05b13c", - "0x8e6d9c2693bb876101c2c0ced0976fe71db31b0a725fcccc88cf9a69b47cc9bd", - "0x5ac71d4859c028d90da98406f2c739ce6280cc227529ef8f1be3d3547ef84da0", - "0x5e72e33c2d66fb9b31bfd4d423aa1ae7d4aa88a30758e29610eaaee778ad75ef", - "0x97345508a573bf5036243f384e1584dea6a723ae342a876b572526cf992f956e", - "0xccb2773ad04c605e9b4a6dede3cc41d69f43439f19e4cd97f54de3a28052d0e6", - "0x0d48cd6317b72fcdd315a6f912646831ed52257ebeb03fa70576a918282e43ae", - "0x688754d57dc88205d6223c88e802461852c5f930252bf74e08b73a79e4f0ebd9", - "0x2860c5f26b4eb0896b4ce041582a8d38b1c8aa21b6c163784277df2658d7e191", - "0x35257fb9aa6c9e8ac16068786fda9c06ece1cb2219106da3216ef4648d28be29", - "0x1b81179c25932e14098aad725e59bcb8da8867dc4a5d145e90103beff868f2ca", - "0x60309b91add03a291fce9fc3f8804eeb993508d7cd5ec4c13a41d31b71d09997", - "0x04d2e5e78c8d8c0059d829c16ea7397834cff5914a5c0618e5904a9037338deb", - "0xd6d345d35827336d086eeb801e331fe77491d47f0df668234e05c3755e413e13", - "0x7f29ddcbfc971fa8ec8e73ed1e77301310e99f677c17320a62fa32ca225e3e97", - "0x036d5fdecca68a54be820fd086e1185312bc9d434b332db547d65d9fd0adc5d8", - "0x07d7ebf143ec977f4134d782bbb3da778b1add224fc3617987d9b21c7bf7d09c", - "0xf27fcee747ad3f1acfee97988403537b85f51ac1157aba723ace11945bcb5115", - "0x5cb6c6cf872823930abb5798d4f1db9d0ae200d21ca3716445fcfe675432cb68", - "0x8226cce1ff6639ac646ec09fd71a0de3d6ffd323df6ea24446dbae7eba66a69c", - "0x6e07367cd7df8d5e756e9e4c535f0933df76941640a7bee501f8af8b653543b0", - "0xa60f86078624b3c727784d4a95bd6dee72210c801e7cd0a4fb01a2ef5f7e24e5", - "0xe3ff30fa3e754fec8605305377cf6a3842d2cb323950db58e5bf02794135bb2a", - "0x74203c76eba1b90e3e76fd493f66fe46130e13359547ce4c94919e9c8909ddec", - "0x4ad657902a564df2f15d7fcad6e4171c96c65798d8b49d3976c7d77869c06ab9", - "0x043cf965b0b5b2dae096d8c73190ad9b834b665097e6b77212359c5029fe8f1a", - "0xb370bc64167f8c6be57238f35a56b840688138e860b08c2c8694401ca32d22ad", - "0x1c242203268f4d543b7087b0b4506f4b5e5e6fa4f4b495c6bd15f94c7ccad31b", - "0x1250c4ef1fd54888a4e377127c9f27889fc5bae3455010733e8f48d7aef65c99", - "0x83bd5c6109c0937f109307dfae9b347fe7da69fceac9444da2d6394d26911956", - "0xbc25fde0522d9ded3c69f9ce8233145b5b15242a8f5d6d6feb2b7aaf0aec5cc8", - "0x0b7fd860e34f21a54293ba2dbd61b28fe5ea3399a29ff7af4f577e681ed579c5", - "0xb2d96f1f4fd0f26e226386aa94e306d8a4a2a3be2860951e0c2e39c77dc31bb8", - "0x4b9794e3a3fa08b8a71f55afd71f2c5ba34fc9d773c32242246c721c87e4b14d", - "0x01d6ab151bd597e2681e9c67a0c3f445c85bfca4f8cd73e3d088f49dd669ed2c", - "0x686280902ed294c99c49b8c2366686af45b9c6ad0e7bfdb1c52f1c901a6be2b6", - "0xe0a05a29c78f04794b3957ccb343be88cf11b00f5d2454a6003e2b363f88d5aa", - "0x798aead8eccab3a4d4dc1283cda04057038bbf80944a87c9e796fa7565e34ad8", - "0x866ba6664beb3b953f5b5524190685eacdd1830248bcb5b0cdcf686101be0ab0", - "0xf31b7929f0cd73d652d1ded75d5ac19d95720b386fdc660e0829d122e66a576f", - "0x20fb041619114e9beb6d70ed0a488a1ed8aa149ab506e7bf62244934441fe0a2", - "0x91f9dfc54ea16eea1700cf1d729e77408d037f43238545136f6cd9c72bb2d260", - "0x7f633029a0d96a3e4232ca3b02189b59b10e6edeafa9756f8db1e8844e9cba44", - "0x0b4f8a2e3547fb13fb7ee5555281ee325d068a76a67ddb1dcef60a6ae4b41597", - "0x35b3e9e377449e7b1a023573123f5d132b50a829091183d279590edc73df67a3", - "0x8ac0d74f10c0f6a60d2e5729d150ffef0467934f8c3e0b37eb7112eaff246a60", - "0xa8f65245b7fea166560a0d775db32688a0249ae3df937a42847f4f0f358af085", - "0x6d5812337f22e0e436ee2dee8bd3a45b237df7e045a4bee1458c55a1a269cfbb", - "0x6f79965282b544af683f2cd74cb056c092d5aeadea1d16e34382cd97113f4436", - "0xf91f555495a762ed98f946487f9aac89b4485c71fde9d700cf562164773b119f", - "0x92397cb86fcd4bdfd448fce9e3fd6fcda60586482217ab74884182d91f3a33e2", - "0x3f694bc4515ce3389bb57feb21ffeb3078e67c3a13bb53a345f7d837d92e91d4", - "0x81694d138eb5afbb7137ed7de9e4fd7010528da30014d06feded8cb2db307994", - "0x56d59ea9f640664f6a1ea3d92860f15ac38ec313d520b24b0ff4e365dff53b4b", - "0x5056000d0e11cf10bf36c57b44eff8fe9560e261264ba2b29e97323c3fdda5b6", - "0x427230af29e403291fed2784ea8852a68d4bb0c07a514dba4797644c8150ddad", - "0x21d5f70bde1ffe09c38545103cb9e6a349e62c1316f1e7e78c2f93e577a6dad1", - "0x385df64391152fe6e1f574efc1be371bf46606ba571420c601877dacfc3d1458", - "0x4076eeac8e1b22684b6fd996a11db49ef6b52539e481c1dbee3f1ad3f59d4872", - "0xa8239c7d2d32a3ef6f887799bef8b470dc52d0c82af8de31bf3a8e4a6bdf3535", - "0x52a6ab7c89019f8fed6761845f9071bed1748aa461b87b0a587b7f59489b2dbd", - "0xbf80c8df3c0202192d1b888f80668c5ebb9d4f8c7d168570afc54276af4de578", - "0xddb5784df235570dcbb1a08fd293d58f63b7afac494b1f8f947677f2dd36a87d", - "0xa741791df39f377bec8cede1f1c491eae35a710de095b5ca5c56d77f4431e87b", - "0xb119d39b47e1cdffe5a4f912d7bb19c6e7776803a386ef62226f08ac1fa0f4ad", - "0xf71e68699da769cf06d77c0432ecff635cedbed284256336c682d542e33c96ac", - "0xb600381fb3bbfa7f7c3b555c51999446b148a1507bd6279752e7059e2e0052a9", - "0xa596f51a92c38e63a7172461962834dd700bc847b1e29c03e27b8e49cca19b4a", - "0xee28f2ef5162f0dedb5de1c4b38a1049e98c82a34570b8bfa19735e915909579", - "0x1672d010862647d074aeddc4189a5bc3a128b8084eba6d011046b11ad23f445b", - "0xc99102d4079edccd947367846ae35e2b40ab3f0e1aae8d68885b1753c2c64177", - "0xcd1003ed721269cc94a0736f70714394c191e7a663191268e2daadeeae2790f9", - "0xd33a0f2338d2d95eff701d0bd287e70e0093c6954455bbc63be7de7c39f6d9c1", - "0x97fb57fab06fee889ca8db09d5dad12007024c3dc59f867170d65540d64808e5", - "0xc4a6963627634d4baf5697343904c4c803b2f875f05260602d9ecd45e0e34d4b", - "0xdf3bafd9380eda31fa5f606fa915253ee8b9a41cdbc0ad12e2dc1cbdb76ccf88", - "0x141dc873ceca100df1127451dbd96e117ffefd054076327b68b1c76a4651cb92", - "0xebcfc5da5a1e1882637b9714fd899d59fb957dc9e4afdaac199264e8d29fe5a3", - "0x087504ed686f8e598560ba1f70dbfc72eeefb7cbee9559927a98bbb31b7bb9fd", - "0x767d65e905169fc44546a7c7828c2f1b76898d93df663291db08a0a6f0fd8610", - "0x0ce5170b5c9ec6377c3ef465d986159f12e65c32ad577d8005fba498fc6e5d9f", - "0x76a78e8c3799f93f1359313a6b42f3a4bf92a9c52c7b495b8d82946d471ca965", - "0x1b5006aceffd1d61936cb327b7420f3a88ecc4ed8808db9f245cabdcf3da6fe0", - "0x5588ef96fb1e960284211b143bb5b5a1e431a015b5ae8aad1a86ba1b49fad459", - "0xce5cf0c647eadd6de376cfa52e4a3008bdc0ea3e09beef3be5e2369978bdadf2", - "0x2e55c31e3dec040cbf0f2bd0816bcf6d41ea29376b9958a40bd799c7c788d8d5", - "0x871c62991b05eaece3ac9fd843c62f6a635230d885b075df28f3421c64fafa55", - "0x36004f4df1cd2809aa89c4edfe3ce3df7a70c1cea1b99d906a64491f002b0374", - "0x91ce82776a39a4a32979f0df16d17c4ca0544e7086c90562c66868b588058106", - "0x23d8c25e9c94779c445bc7aa84ed86189617463e3a9e62dd974a23a29eada969", - "0x249e41cd4fd36f6bd6860286bd29945bb98cf66c0348f73b26bb4a28c3103a52", - "0xf158ef6bbe5a54a85f11c58e5c569dc927089ebb641c9d0f6a4641770e551cca", - "0x4e30a215bc185573c02cddf66c40a1c829b86dc639c2eca7e6a4026fd8a27933", - "0x15f0ad2cf92788cf0905aa6f8d092b1350e3f1530f1b06e07ffd8f37d9d867ee", - "0xe7d081057d6d3f5d85be6e28cff22e4f4e2c842d31599885f4e3f1c96049c101", - "0x342f966910c67104f934395a34ffddb97260920bd9043e2f1aace5062520ceee", - "0xd09b337b1ec7e7a3188b2a8981d14dfb89bed807807a6fc40a21ce82a3814b63", - "0x5bfcb62ce51ed31f94636e5e55a4fbbb8d63342818814d9167d690f96ebd9153", - "0x9f46f879a2b469812d61674250053eb01ff91b3d61b66ccffcf8b0566bb0ab0a", - "0x9e7c1698af64e08be4d5d2bc9262a7e0d2ddbab9b5c9499b505245869a1e791e", - "0xddc3dde6d397fdc437fc95bdc98b1bac052a1b4fb1bd81b90d18d63093bc0efc", - "0xb8180ff01aa196209573375a70c590e9ca8fb5eb94c921436c534fa57b93c802", - "0x795c03cb817afda30f993770ee0718774aaec6d0c9c01cb91ab2061539ab7349", - "0x45cbd728f2329f5bca7f7d188e64b9b307eabbd816365d0352e2ea661d923511", - "0xbc1e8acc0b620fe7c44f4d661950981e8388e3f8bbd58546157a1dc716d43414", - "0x4e796ee801061efacf4d84372f6daab14a98c3e91b569a0d580217442e1b821f", - "0xda432dc7a649547983d6ccba6ad31b7cf97ba3c7eebb5eab05f34561759e6090", - "0xd51b0632c736b3403bcc07399e9be4e40e04928ee4e63e87710002b066e462ff", - "0xa3076a6242b4e2e450f227294940d5aaef5b62ad68d63affc390f874958c0c0a", - "0xeed1d4e115039d92f2d82401aa631248a9c5b8de06bcf784adb918ff28d70bd2", - "0x6267b83c5d6acf41cbe965d1bbb8871228a060e46435a29c6a7ade18e44f3ce7", - "0xbe79880b453639b576dfc891353dcabbff3d16479ceb74ad2184a1dc89daadeb", - "0xd5356e5ff86c455718ddc8527750b69b3658c9746c0e47ac93291b039bc2db8a", - "0x079545539cfb2ab2b1d5341de50c6c71b8725cbf3a6ef168869d392c2e6f6ad5", - "0x0e3aaea1d36e3945580c3cd8e26456260a19ec0630476dc3ed444c517baaf5dd", - "0x28d6d2c1e9e4080e0bfdfa907f6d7c9f533cc477a729eb83ffd0f96f6d6f5018", - "0xebb8535debdfb417acf2c13e3ce6107d7e286cc573ec1c06ea28ef4cf3729c8c", - "0x96440ac46648fcf69de403e4c146dd1a37eecea957370f223753ec93f32298e3", - "0xca28ae763d5602c91d437349aebdb5cf9dbc89e6cfc53c124370b67e31fe8f9f", - "0xe27ba10642ff994e47ab1fc5a29ce071d80b82d6f584eaa56ac1a62a771eb21a", - "0x34e7db6c5ad2d646e6791b58ec4d429b8bfd69f76b1d9bf71f860b1faa4911ad", - "0x0b83663dee1daa173203e106ee4996ef147a9940f2318b912364bcfefcb07271", - "0xb164c1d879ad665dafe81929e0db557cf2c573f188cd86fe35ef24271cfd9b26", - "0x6587efc2bfa2ebd6da9816538e3abc5f03c75b5bc425f7e5e9c676f97b1449ff", - "0x668316bbac3e4cfd0c4fee48957d9c8fda962bc556c5ca35246b88b6c43fe291", - "0x264917f66c2d927b7f632744f9dd7b844514af80bf3729f30832b222410a08aa", - "0x38b162eecc129bb2e1c82e65d785e84b5a4a9822bf1e6506492a25b082309bf6", - "0xeaa3ee39cfaed2aca6c1560608bc1a2ae32805812d792471c9c6a9ebc80aabe2", - "0xd7738ea58e4319f98250874c16bc4ba12f2362a8f09a7158ca4e2ecacd954d99", - "0xd26d6e2dd1b62f7086673cf153c3249b15c652a7bd43a4ef7b796dcc2bc44a96", - "0x11a9a4f1f8d10712e79a219eac2fc81b3360c60aaa9bf179e720ec04d69956ec", - "0x6ea3422e40bbd52abd6660d9ee8ff351ccc61d997082e470197a474509ae1383", - "0x1ab854452eb96365cc3ab33c6c45b296864ee61b3a477716dd9eb715529787b6", - "0xeecb8949e3be53db9ab660c71d1bf702d8e919ae6487812181858992e7668c8b", - "0x2a2ee4c33009656e5e38e44a7314c40254639bd46e32cb09eb1b9643d92f9ffb", - "0xa14c5b1993fb968f7e1dfe4ad24716e8d9a5be662cb0af13f43e174e0bc2c5b6", - "0xd5603250b1933ef1cd1b27932627f27599f81ca29c9f02e3627eb621f613c935", - "0xcca950815341af147085a53b4108ce368db1a634f204ad75f3c687b5b7ea3985", - "0xe14e1ce237fe627e8047d5d8f8153157ff1ff3d2650e0e2ba870ece940421470", - "0xfe2bd09d81d1525b996c67fb8407636e06723b4327803a106c19ee60a4a960ce", - "0x995cd4b1f16450b64098fda2e678b14833a3b382f76e14cea71a0d297ade2080", - "0xefbf5dfa769a1e6132741600fa9459b8a1d11b11c3b2563b22c79cddb34b2ff3", - "0x1618c918d173a9af0daf3af314d576a6419456636a46e2c6b8126f2365d627ec", - "0x3b9a773b1c0e16037a429ab42fa3883803f320beb9a34c8e36c80b2b7b814331", - "0xbe3b816b72cc63cdb63e2897064965c1b4e9cbca1ae26c770a20508be1d9695a", - "0xc57f2c5ff8087d6cc2039910f00323a90a0bdc3d2164e0f52bbfa920d62a15a0", - "0x0f11a1d5bf509afb2694bc08584718bb93288355a7bf0f801e478eeb9ef52da2", - "0x829bcd6a2392c957300253f7e9abcba7513908d3013a74387e918dc57053c035", - "0xae4d9d51eabed53e9ba4dcfecfc449bc165b3bd40d87830fe044811f4056580d", - "0x2a8a21d59547009a533695b5808d928992547937478ff9a61fa4388e9afc1147", - "0xcca2ff6985f20f7d1633c35447f45a5b27fd5a93802688e2afe494a2c350917f", - "0x2b8a2080fdcdafddc5d94292ab4fde01d91e7ad2c1b5b5a2f04dca9a729c3778", - "0x211074e33dcaf13183115f89252435b4efd8e1f01c38ed484ca69c14bac72eaf", - "0x5de84a9ddb48a4e2134be8cdd5c274471055234d428daaa1039ae2500e59ebd3", - "0x3f71bb8768f5c8d0db2ec8360278279f4382f3a50a939842d80be98685c536df", - "0xd26b7cf7c6f987f4975010eb9e77becf7c0c93ace9eb53d289beab868ab5c93b", - "0x889d8c294f942cc322a197b4f746c688a15e1692cad0d2d9fa9a125f4998a6d8", - "0x7a0c807c41e209d12128445df83dc1931d5a24923b38d259a7bb9e8e4459db43", - "0x564e904caabec0630b52e056ef9ac08a2fd276ec99d81644bf38dc0b09eaf820", - "0xd5804d2547786f7d26282726d3f9f22e53e0ee2390ff0de8b97c33a4e4237535", - "0x5999f87486f0c721b038c659831c836980a2f7ee9c887c759710d62691588670", - "0x9fa08ce53c180bb53d5352dbb2312603a0c3a5087cb32f81bcff368c457a498b", - "0xb1279296a8cef2e6b80117a48db7291169ad35b39140debe3ee71465b2a93f85", - "0xd3ca8ebe2a6ce6db208b4bf1853b8625e8b12f7792df1ece14f696d1694addbc", - "0x7fea211ff413b60098ababd9e3077f58325ec14d9fe23bbb1cea0025d95896dc", - "0x270f61667793c26f67cbae50931919b8370c0b395704640837d66aba90a393b3", - "0xe81214151eae79a310d5bd8fbee6358a3d897b2b9ed1282337b71a653db17384", - "0x5f2928cf34dc3da9a559ab89d7496510b3c2b5d00d8de730b6df083d03103abd", - "0x619e0c1627f0802d660f1b06bb55c39c0b570514e71c69d5de41232fc6bca961", - "0xc8384233eaacb714f29163a0a9b507b9c9d0ad537dd64c25bce91cec6fa6c2c9", - "0x54c2e035312faaff2fd08fea36df91f2add2ce39298a1987f4286f3592405e8d", - "0x32bd9a7d486a43926319510505b5018b9ae951f4ff0837f8b9058e93bc303876", - "0x6df5062af0c06aed44dc45026fd74a287e15f5a60f122e49343e5a1d10e5f371", - "0x6b3ffbe23bec6a576dcac6756375e6420123ef1eb39750aa6fdce9d874ab790b", - "0xcdd08aecaa642133a9b93ef888c5a808cb2c84c48943e7ffb6d531dfc1c6c205", - "0x563f9e429bcfdaca1ec2ee7007f286b1b3e4358b76d12d94015d9989dd50b2da", - "0xd3a709568bc87059c1a11909396d655c2f107c999bd75ff5104449f53d590f99", - "0xaadf85b25fd426d50f3a22404616141211dbe541eb116b71c6ad960fa453e172", - "0xc411d65a0dd44d5725a401d4a479f9b5aec10334938bbec7ec216572bddd84fb", - "0x4ba49c0fcf4dc7858eb6b77c942b528a349ad39859a2a1f8995593f04ae8cb2e", - "0x17f327906a7bcee96532e912374523b88f474beca4e40661113121ea626a209f", - "0xb0fce9690ee2a2cd55a0e088c0e96fa0e922b4119df230d4b903c4b18cd6da7d", - "0xf7070d16a82595a5782717429dc6d00b1f8abf6778db1836a23954cf66bcdac9", - "0xceae3600d842c5d03611dcdfd0a0231e469c65b151e247b2205cba2916324707", - "0x6d1e0d4ef9387d070ccfb68f0866937d44ffe7d9c4059a21bbb4b0c87b7a6461", - "0xa7c125405cda699de778318152df327cfe79cfbd999c5cc45db15bfed216b146", - "0x5d90e851ff50eff60b8c92d63274c9f9b5efec6efec3c2a412b003693ff014c6", - "0x03efe16b91c66ac58204c952a9cd24818ca61fc6b1ce4d81a31263a7c045aabb", - "0xfe9324d99b23bd0502d6c1020564a850c932a0d010593e1894ae21641ac5c248", - "0x969138be8e3cf0bf9bd0963d2cc6467d8690fc40797bb2c2950de0df1a8329bd", - "0xdefc0e0c25782165aeca15723fb74d95d96d1ed7420be7f3c85ce7cf7440322e", - "0x0bf69f52b595f75df550078e4293602593e3bc2d7ac528b7be44f556435d9e42", - "0x142f2883383cb22f5aa8e863756bcdd154ff3ed8a02d5cde8fc1572db65003bf", - "0x0fc8980e2ce7498656aa9012eff375b6b32216a3142fb974c357a553bc9b248d", - "0x2714b77d484d7639adb40e1158734058dc02dc761c7349c4f3818c70347b348d", - "0xaac5d4ca615ede62571ea4150e4c01cf31dc410b06d5b443267117197e60478a", - "0xcf9f45357d06955730a934d2de24b859d39ac0ac40c8b29430ffe061e3bbe4e7", - "0x52330a846f5d2fbfc26c48a5a95c9d2e3c88a654ee8f5fcb7f9eeed39b2eeb17", - "0x807c2b8bbeec7e6d43bb781f2d7405f9389cef647751c1fd30fccde0f004aaaa", - "0x8cceb13ddcdb1b080075083091120c394a94d6f8f00a2eb4c4498a3b1a7d2f5e", - "0xef770e4d62f2912430987ad5ea59974aae40a81771295fa1380e417b3df88562", - "0x92cefcd22fbf95dbfa766e7c49a4e211596cc6d997976b04efd818ba8ab49bd9", - "0x809d91cdc51f42438312ae27ea1fa94fea4bcb2c9341c274ea18513ba20ec931", - "0x10538534fabee44df110346114f62797a31cf363d4979f881b721043b2250e82", - "0xe252558398e892e85351274a5064fff650f0323f38b0a4456b14a435c9a40d82", - "0x7d313335d362826f589dae0164a04ea681cfcd54f10d8e339ad1978ee63d7045", - "0x713414b22fd3719c42775449895089e6122064b90258a1b495704fbc4677d92c", - "0x748b6883462e9706a8fcab3b0c71272fb0bedac622144d5d81fe710562b8dedd", - "0x2945d4809258eba164089c2a5605a7c9e72759bf615bdce0aacf96ceb7d6ec12", - "0xfd89a991d0e20bc05d484b9cab61d27a0406fa741e0be6c8c1c2655d1310cdf6", - "0xaa296f6295ade70466ed9c185480e186596f2183947f65bd04fb5644dec93d33", - "0x5286efb4ae287693b85bb3eb47ac0b697ceb72ed6331aaaa521d58ad7dcd7974", - "0x6b3a5802ba251becdf8ba2508a6fb1d3db0b5b99646465b12844b8bc23f062fe", - "0xfbeff1e7cea22e0563407d57d9b16518a0355b676c48605adfb13945d7bb2f60", - "0x7c0764932e56518167f4ee45d912c1a7c78f30271b41ee16038f358d9865258b", - "0xfcb998af040eb99c3393b165dbc904a197341fb7dec2d8430346b7772935dfd0", - "0xe46aec72c95d0accef6ebf564e9264de932458fc1143570ddc28eef3801430c0", - "0x08f97afe124dfb2a18c6c624d9d1bac4cdb5dd102da6bec9c676e7fa000a43fb", - "0x50a62c4cd65e3591651f8fa56831ddb37ff966cba87c12d83708aba72591a060", - "0x1abe248da61411aa6b6801dc188e3f834c3fc4600ccef36ad9d7bc517441a61d", - "0x07e38e7dee4062c20f4b3f221df72590c0838619617e051243087250defd0028", - "0xbab90921cb56563d69347a4197b869a8c8bc34d01d753b509eeb5895e77eac81", - "0x620404dca85a89624483cdd7e2b143b12a38b737c0eb783f5e4b378fa1d578e9", - "0xd70f44dbb657c8fcdb90bcc24a47485fdc99c35ce746d8eb2302d529be43bdf0", - "0x425c47cba9cde3b337c451eb7828b0789a76bdbe1f86757292e7c3768cc51b6f", - "0x11b521b56aecb173dff0358678298ac7f55015dd8b217d81dfe52129d03b54b7", - "0x98ef31c7277a68ba0a2a2809f8e7b4099c0e50cd47ab030f5e1c3ea38b92d39e", - "0x82ae5ef4f71c43cc296f1f6279eddc71766102997b0534ca737c0c1a63b0b3cf", - "0x44e2f38922e64f0aaf27607673724e5c91ed5a8176899e935c73c0fc09826355", - "0xa0361b8e3d7709c4a68ff24623856c54d16ead1762578eb562c295f86f453b14", - "0x91726ead73260dcf30eb478615968be91e4e2b6aee522ff6d814bae4aa595c64", - "0x8afe8954bd7cf7a6c40e3903015830f516ecb1a98c1b028b6799e1605892b49c", - "0x142bfadd2c9e988cb07d36bab795231b9582fe424a62de129a24fac85fc47b88", - "0xe369b5c6a44aa592c1d2c55a6fb9e2a0ec3274be74fea84d2e05451db7ff9b8c", - "0x10030041949c30aed18afceb0b6ba1b9bf58c338e275ae6ed9f2dead02a1b6d1", - "0x993fb9325d7be082347cf9361f665efd4d38466de4234233f272b1c09854657a", - "0xe2cdddac0a6984c0ed9d4232d8b58bc2c61e404c3e60b58b90b5876640e8e19d", - "0x4adb2f59c6704b8be33a046a07d2585328465dc1b45a41bf30fba1ebf6b2f7a4", - "0x2c47e906f61c60bbe994a54e3d0a68ba8dfb519928cf350b6cf8421e5c1779f2", - "0x4b712c7fc97f4784b2f562ffad648d29884ce68c505644e2eb4195fc43c00d9a", - "0xcc0fd5276fae744a1ebf274df70eeefbf301ca7e3d1bdd6cbaf425fe0d400758", - "0x0d3e81f37d9d96efad22ded24f6cb7174606c3b2d294259f37e4f754b28fa2e1", - "0xf80aae34aff371a9911fefdcae1289c126c5876b3e4d2477784196a4ed6dc156", - "0x916469d84a13c2971d02ceb166dbe0c9cdaa88c23e57772cd3c260db7d2f9ea0", - "0x37a5b98e5934c2bf16b048f76c06b4ab17945c1f549a20b76ecbf99ac99c3698", - "0x1dcff6c4816141355ac06f9e31a73f31e4b1cd947de42a078eb60ae828d5cf58", - "0x099bbbaa5915dcbc3f975ef1ee1e5da2bf248e96e87856323151a08dee9b5e7d", - "0xd0f2f3478ed51f2454d21cb838b89a3569b3b2704af4d702526af646b42dfbfb", - "0xd906aac9b70f76522bdaff3840df5d9714d352c8a632f44e52370786ab631167", - "0x7f99f6d3add64e2381d7ddbdee1306e6f6749ce116642f993bc4c06970295663", - "0x58988b3a6a1437814e0057b08ce6e86f58cef845f8df78a6ec563d056592b81f", - "0x7476333d9709b4295a63b55e1d5eeb7c23a752c4211bc8696016b70a4c13dadf", - "0xcbe4bdbaa8e34a22b883371b21d5e7cd474368ef0df5ccfeea3edcb377e071ac", - "0xffc358eec58c4c6cc0031562809154edc13b9aa091674e473304682dcc4c2c1e", - "0x9dadda32c544767bd65dce5804a695b8e5c35d2f96c203c350001e5be78c044a", - "0xce2a6bb7c0bceedce3111d97294b8672d0f6ae8eb537ea785398fdf06d6ca2a8", - "0x5ed79a31acc649619c09c9b5df4d595c806a02e93e92c4fdbe882899832f3cff", - "0xb3e94be6cf733ad114b1c1fe76565c448faa9f14131b30aa79aa36a0edc615c8", - "0xeb33e3a43cc5068b611f7a95fef45d5a83d0219906515a9ff02e31c0f1aa4e39", - "0x63a2f545af614f075469aa9f8d4e49fcac12336722936def26c0a4cd01a31b6c", - "0xa6d5ba412c63ff5903e2f30bdf2d1e93118514a8c82b532fda0259b5c3c21986", - "0xd170edc5d55910ee2671397a9b04890faf8b4a3aed0e98852d5732af897989d5", - "0x508e7b9e80ea2fee221ee8a527ded1d480d6bda70d7fcc2d8d521e35c184deec", - "0xeb07494e1b639b09c49b145d51ecb9c2f8b98ea596779d1a14a71e2eed22975d", - "0x50b37a16f4233ba9287fcda52030e2a7d92db254746bc42f7358c9fa0d4e3116", - "0x447b12ecbd02d12bc80c990d632cc2032b72a441b418b74dcbcf3a76ad8d69a0", - "0xdfa6b21b930c94454ae6845041fb6f4e345a11440077c905b4f3386bf4824ecf", - "0x7eab803353df60fa522a5c1c7d155939e1059ce4d6c83d7e4e3ca756bd0fd9d0", - "0x25a35bba3fb585339e9c9df30a10246774a72f47e99fc329d64d36c67df4fa59", - "0x17ca37df7ec4f94f41dfa272553fd5dd3d641a986fa5a9dbb262fc395dac8ea2", - "0x766bb71133abdf384d8c24aac3f663f858bc8283817ec2dc082bb008739eeb37", - "0x5748e015a55f336461f5b1c4bfc80e5d76dcd9bb3c72d583cb7e585c35d67111", - "0x39909825449948d25a7f9346dd07d83f087e50c82e9fe9b9d474c10eb7bab0ea", - "0x441bf9c03a11ecb3b0472fcbed6aff62ce1c44b237c3357a4c3f5e8ca190dba7", - "0xa0456b6f725f0c4cd0917cc463ad42e8d7ac9496cb0c34f067b691d89dc1f2dd", - "0x6571a9b298c2180c91a8436c7ed81da8a69cde6c1a20c78f8327e9cb7bf9d929", - "0x152f3642af6d21630770d739d3f86b5a0a8b8ae5806be4e1b568499349d36882", - "0xa7dad74a9ed1bde34b6cb0baa940b7d565afb8dd6c4e2bb7fabcc30673f255b5", - "0xaa829dc659ea777c2d84851ca7eeaf8fa1e1409df8ec151ff9d9a87bbc8cd848", - "0xf70ff1f39678b75cd7e9c7cf7de35bab6d54997cce23b769ae452cbaf13db690", - "0x2ebfa2e52ab6f68c8b7f2a8d656c1fd997df4cb680ab4106cacbc50c4f1beec7", - "0xdcc2ac91b7ba5294b3de1eb7db158cfa53db057a4956d403732be9aee6899fbb", - "0x65dd99a245b52befb5099b69afa332a9a529bdb5c3b57dedb3fee52bc11ec426", - "0x83f08c95ecaee8710f687b9ef06fdae143fb7581ff1498bce187acdcc1af566e", - "0xffd22fe4049110b55b117b38f5ea4c268737db4fe92b9b5fe691630b39092dfc", - "0x7b4dbfce2925a674b0de23746b226bd901b7aa49140e400af6209e9877d11617", - "0x8c8d8762e05effacf2e70742f9c563458065f7a0abcf9cb6d6f605450aef08bd", - "0xb97df188cf546690574e316b144c8db55c7fee2d241ebfdba1424739b96a4197", - "0x83cb74821c0295a9d11e4be54cb7f2fd4fdcdeecf9a61a3cf7d168338194342e", - "0xc05d2a626a448cd6b89824fc6ceca1b2295361d7e94ce86005f7d527a0bbf10c", - "0xd0fb8122dfe38416a100bbf00ec04cfb14526296e746da85dc4487f2c7597efd", - "0xdef0c26f8ac9f6704a016635dc46386a95e014a8637733f054cbe87e59e0089b", - "0x084e741565cde3ad7fb2c60e0cb1244b1f8f6b87b210993abf2959fd380127c5", - "0x7986d8c793b5bcf0977260c761f5ab4af1d0bdec8a5dc49230f63258f6a0f403", - "0x584a5726cfe9772deb22093a30ff2b9b30ebc018cf861b8aa0fb28bed97ee0ed", - "0xf046b4649898fbdce79870896dbc2752050b5f654faeff320ed2184c7bab659e", - "0x744c1495610301a14d82e49dafbfce8c70f7f78bc0679f2c6fb964a476fcbecf", - "0x4edf5a73306621d2c4966d4aa6cb2935cd9484f1f0ba709ed5d5b91160a5de2c", - "0xb5faa128c00d7f97a3e5204995065e99aebc76706e2e96ccf4b37d7641690045", - "0x729bbb468965401fbb0f2ad1ba0b8ffc7072f9b18ef63e95f47cd98285b89854", - "0x0550d90dc0f6e8d2017e14324d404ec8a200c45ab4a17ac24cb17ca9b68881c2", - "0xdbc02a7ebd9bf74121fa2b4b05c1abf4bdf00a973b43e27faefd095d6cf80390", - "0xabd6ef9629eaafe2d8170d511a39ea29c30d9ca0f071d5ea0b80fcbaffbebabd", - "0xa9dad7abbf1bdbc32d229a67dac65cb5a14cb0e25e8dc57ef7538122471909fb", - "0xd1e063a59f032a9e0ccd9b926bcd6639e197fce15e28dc6b1bb1a4aae5862e75", - "0xe3187db1ce4e4faf95ae3b2136c34ec2ecf028e4054995fa59aacb94d0e16d75", - "0x4aaff2417ccb6bb6be1e3bb759f745053a3d45ce144db0fb627edd9900000276", - "0x3b108aeee36e6fef8d74ec08c937143facb90cfa5616ab7af6d37c00b3a4f1b1", - "0x1ad317c91fcc12235526ed9d6a45c3854f2fd421ce36a2d475fdf92d8afcb524", - "0xe39f66c3ab33ddb0d1fb51b969bacda7ce0f0f53af7012dcd4530435666b7dae", - "0xe071c158a9c418c34270cf27035afb0896251616ebbc57e7e5a2fbd503cb30c2", - "0x41dae0f056d18719bb5568f0893fae512f623e16effae772d35398da2bd8931f", - "0x426b1e3b67fb576cca9a180523ef9979aaf4d14649637f69347ad3876bdb6fee", - "0x2678a16324ded3abcc20b8545ad9a4155184e63b12d1d3a1959fc9d08dda781c", - "0x3f18f5def267a73abf0543135da57d752c57e4344ea941199055a38a46758ae3", - "0x031b50935a859999c1de5b772eb4363615388dbb9d12bfa6ca72111a069052a2", - "0x57bfecf554524f9dee811f59e9ddb287b04338323e4932c44b208913611533ea", - "0x870b1bf5feb1bb5297f34a80b058c81db9c97cb79609c537641f02753f665b68", - "0x3bcadf9d3dba81c74a178f533c75f1e77c64baa6ae274bd25a0cee762da43a26", - "0x38cb775e5437c113ad72ee04f0721390b7b8fdec2efd0eeae24d22cfd3f0abb0", - "0xc6b545762e567ad0fb73b49e3af783035e77e252f5f26fb56c39f2ba280e4937", - "0x922ba1cbae3ae6beb2e01ce1ac2b3a73383aeda9cd3825cdc6206d04fa04cbf4", - "0x9e5899be114b856b51e0de7a25cc1c5c6247fd2c06f0381d5cedb2c26c2081e4", - "0xc7c57fa4cfd2f5d2df0bbca134f48d152d8e284f1c0d946fcab4fdfde9235b22", - "0xf35e4daf46b5b181b6c6adb53f5d2f93acc93b76b422ad82ad996fcf95d5a942", - "0x0cf08cbe8ab573727328f5e5809baba6b8620536053d023dddbb9cc310df3246", - "0x6ab0f99c1cb99bd763af36647d29d6caafafa4aa119ec34527999f992de25104", - "0xa8aabd97d98e4a657980b581b26abbc9280a288301c33c45961f5e35303c31fd", - "0x3c92814886acb8f2af1342904d0b2688be4f269a24849507ffc0a7fd0d67584d", - "0x582781b1bfd4cd4d619ee98db64eed9a11c0562565fedb6613accc03670dc376", - "0x832c0574c81bc58cadbedff928fd08fcf1b4c80d7b323670bf67a29e312f4151", - "0x932b7bd4b919fdd18acaad39228563d65d19da6c7e8737f9c34fa3d58a57c7fe", - "0x153059b97cc89de7bdf0171150670085b850a63125d3e51525bba6765be313b0", - "0xba341526b613c0f3927d604bac37232dcd5ac104bf256720c62ed14ab05370a4", - "0x2b015d7a5486e2023aa93a00261be3ab97d38a1e7e1b14d8878e6c109d28ba51", - "0x554e29e53bd94dfe253d703050d8f54c703a009b412232847fe01e1b138f64db", - "0xfc603400b18e2570276dd994aa168b7ebf2fa9c8a3d7f4edcc8bd6bf5c008109", - "0x66e1cb6677eb595cad35fd028a36aa416f698b6366c73d179b8bd451b0dc3ce2", - "0x9219571b2c2860cfd4bf49b92439dd76304c2b5b2542f036392566b2b431db86", - "0x84c510b2dcbadb5562a66a1312b6016a4d6fdba205b5ee698978f2570fa191a7", - "0x483e7d9599fe6da557b4f5e35bc66b9d4bbaee82e2bcf29aa245c4aa679918e8", - "0x84dddf3ab9a135de68eb188476c23d1460c45c377e9a62c14015b2fcae515d94", - "0xe03b4b8470073abefcb0d4db364624116a046e85be9a28a52bd6fa5b4d2264a9", - "0x342a467e79121dae9c3d203615f772383d1e700fb05ff8ccb5a48961b423ec9e", - "0x025c53fc663b8cb0bae6a439bc0d4f3996618926337bd80797510b67000c6f94", - "0x0ebcae3ede50801c88b517af406fec7a3922b4876f28b3096425d4dec3f2ec1c", - "0xff78e7b509fbac13400ebbb8955bfadc0f35a4b568549dae44b55d15bdcf2a9f", - "0xe19e3bb2648377f25d4a190fc44b14e80b3e2c8dd17427fdcf50451af8b5a8b9", - "0x50ad2c5b2732b7f2c34fc0e2e103884effb23f7672a5290c7a3ee7f7c4609fd7", - "0xe5a000a849f39efb9bfa550d959e86d2d0d92b6f4034a3e75a84a4bcd34b647a", - "0x56fe17466ab440baaa576898ffb22735f4fb680db4ccb9a7dc6f19a060fe81e0", - "0x1ba71ed6a71d823c35464cafd2f4b35a047de73666f0bddc272398d1758b4aa0", - "0x801ac73a07eb37ee08ec538f723dcf2c41ba8f0f0e553c740a73c1b486b29567", - "0x732703b2b96778d10970cd6f90634e8e383d41f3b863c424a71aacdf3d567ef0", - "0x5295a9cea073059a0c806b5d84e95dd449bd15e081ec1543f04709737e12665a", - "0x25aa778a07dfa614a7554d7b00ed9c5360e1bda16df694279d45fb4c0a4ce11f", - "0x3a9e9b5dcda51fd92f8dbd18caa817f53f096f3b66f953a1f731adf41577eef9", - "0x554d4c03a8f7f4b16bee2ecc809a4a03b3e6bec0b0dfeffb45acbeac698241cf", - "0x567f2220013d4694394b054b9f93fd33f9b24d165ec92eb86eb216f2658a35a6", - "0xfec8e9f64cbf08d5dd3e19ecf7e685ac89e8430221f05166f84eed16e6e42935", - "0x1398f794bb66f9bb26eb2a17b32bcff6c6c8796df52e7a5f8c2b58a94e2d8912", - "0xd32d51d30aa51d571b89bea7eadbb3d32792c5971832880053e6da18a6644f77", - "0x753244cb3d3813f9a59b396fff82253ecafa836b37dd4f4572d2ae033142436c", - "0x74077018c89bbebdba21b096ddeb988a40943985fd479a4a95b172d6d89b3f12", - "0x20ca619770c23b5522ee50b629697763767a61f17652ae06f3f30bef7f300605", - "0xbe0de8f6eef387c01546944519c3bd9761c69bce0e9620d9995dfd4dc66e10ec", - "0x101bc2c69d14c170de6b3ecab9208f68b7b1b8ff0001a400f7373b77454113a7", - "0x8cf7437d2474278b2646a71baf196c21994f640e9baf0be059d820f57e0c66cc", - "0xc5751a0d6f9f5b859382b9840127d837a015a7b33d0a775e935ac2f2e57b1488", - "0xbabcfa88c03ae1d413a6165c7dfbf204d5511999a4fc74ea33a694aabb55e054", - "0x66b70f7c56c40e818fb1cb842a13be3e44d864d9ac5f1a4336dd00330685cb80", - "0x790a401845ed04ea517fe4721da3cda115adba8cbd28775e8fdc9bbe7a5bc670", - "0x2696bb11d905914f93ed07d71b99a6a4f2e90aa7bd5eca5e32275bd4870ac95d", - "0x5aea5a8a2b8586491f85ba8a387e6a6cfe8970c5f47a77f517afafef9a009fc1", - "0x7ccf035e2483a2dfdf068c0cbba769d25e21347dbb40302dd2a5c396cc082237", - "0xc7cfd5568e4d9769465645a1726b4889656c99befb7aa02a5b8ef8daaa8b03b4", - "0x5d5436654bf6c9b428c8ad12645ea5d5fe95aeb5e639ec46d4324dd54b0e7e8f", - "0x82f4a8a018dffaa850312b375503a6325562e75786393810a383498e71dc2c6c", - "0xcb82be0f881fb2794314fc3e2cfdd57ea5e12fa7105a824ed033615c4ae22f34", - "0xefe0e3f97c4e6b5be518d58f398ded35421d54c33e0c93e3ca0b527ca50e927b", - "0xe6ebb787f18f2d0d042eec05f2886020262ac20f3c14e8c03885e04136028823", - "0x1e41e40d2da6017775457223d1cdfb06bf41762b8bf47040357592315f627dea", - "0xada6d7bcc5013069b5d0676df3b067110db631d07020104a556b61423a26d3b3", - "0x8e0840f9e38908e49fd12635be7735c7293833c65929d5aeb5035d45942301d0", - "0xb01ea85a249d3c640f5e2ae43b340a5f0455350719b13cc8bf1a50c8941a8ad3", - "0x4e5524cca029a2729d27a3d2a712979f35e07cf9d436ca7dfc8c414eaf5d5a52", - "0x72208f2a837b1fe9e7445a72f7d57e414db9e0bd87f7e5daa8de14752a2a87c2", - "0xfcf05de95385cee5449c1ffc63cff009b585ea5896b2ad96d43e747bed4aec71", - "0xb9ba0e212f4dc38e5a0c2b62bd0c1bda73459e72233ea38cae8f4a91f0a6d764", - "0xa8946ec7aef9ee1402442e7cfb4363df529b915c96698110ec1e3c15d445299d", - "0x07349344fc0ac74be9acd9f616a08b3d1bcfbb08c2f95d079c235f52a0322fcc", - "0x223fbcf9b3a552057f728cc0e4dd283176735668beabba942f62006a902249b3", - "0x0e28903b5f5db741536eaff97cca54fb98357ffa69b84bbe365312d77374e47e", - "0x6588620c06642d029a1f8dc0b95a14c198b7af2648acdf1c8d73c80d87cdfda6", - "0x021f66c28e1fc7678af4f05726d8670bd88a143e749a96edcf7cf8239607e9f3", - "0x339ca9feebab8de1672036fe85ef63bb591f5466da074793436a07919a7740d5", - "0xee504bd35830555e345301e108b4ee3698c9a0739a8d4210ac975f1aebdfb944", - "0x61a020081cf4fd487b0e9b694465b94016d461897d4e18990e2d34a26e6a6541", - "0x539ed46b92da9b97e94f0bb089b034af3e6c85b9812f5ac18b64026906ef4f33", - "0xd244eaa108e905c9160cba9f75b3d4f46e428749c0a2de7b165e95992e63caf5", - "0xd88315191813c72230222f636d5de64bf5ed7bbeefd574b1d0c2fa61e16d5919", - "0xd428f280ca6b4ba0ff8bdc58a1b5c8ca5991f9d2dcb8522b17b3c09647a9c8a4", - "0x0744cac8522e0366aa470de75f1dc92e307f82e2e300fac1f8adb359e7f5d9ef", - "0x6e504ac6d3e63679f9db61c3e37bc9416d687156354d1fe82f7f434c4e43708a", - "0x34a5c50161a9b06229234a23f210458cf64fbb5531298735826599bc46179e87", - "0x03a94978bc793490395c9cbbae9fba0f7a725f5de2737e65f7e4f55763631585", - "0x183f981a62d19c3a4edc055aba9d04e642f89f203381a4e63ed7496ba7a1074c", - "0xae5492ed7758112e7fd6c21582df31dfe0b1d6b3fcece4d2e8bcb7d5bf56a00d", - "0x8f5062a00e823791785fac6c0eb7c1aa732a70cb1fdd23d4336b2323a99d9f5e", - "0x74584b0ad5236526dc1a4dce8f4e65f87ba3d529749a702217f46ac9a6acef7d", - "0x06f7debcf4fa4511a1182d992fb0ee265714e70354a08fd496f2550a9e268b70", - "0x8a6b101b16aefa233c158e0392f0897efea6b4144a98ab3050551f8f530ffc94", - "0xc65d3267fb49c21636e1cee8d39c515b9028058e8b9e0ec5c2d6e7adc9293e45", - "0xb9286dcd79def251104af4f3b68de8b9e5717ad5275665b6c079f49afab7770d", - "0xfa735c22373482f2017aea5547def3bbe6f0b8f08b7054b775dcd04c3a3b8597", - "0xe3d360213b5720573864c6a1d9204151491bad4235e56c35b340b22e8c29f5c4", - "0x87ee0e69a5db0bf2dcf753e2e1dccb92725f9d1d597aae378743038121071b9b", - "0xda446379789bac65f03bc0d2bddf4da37867069743ddbc4f2e846c90db8ab568", - "0x553465cc2c0ab7fca15424c8507d216d95f53a25e053657fd8eaad58efd45346", - "0xd3eda9aac5e84aa9cb845cbbaa180854868f497fb79c5053becd16f6d9ff13a2", - "0xf8bff7af9e6fc79a875bd7cc4c1a0a347572c5f83c8a6864313e5f182a8bcd96", - "0x3d49c1fc6ca0f9eef57064a5c125c24464d1ae6f29989f2e7f4942c50128f31c", - "0xfa78f4fff3ce4c2b34935ec5692b9bb0f326a65ec6b14299f990e697ceb89a34", - "0xd7de5c5c86a0ada9f328e8b67393f4002714c5d5f0d1ff68129c68b882d5c6d3", - "0x89f2fb3dc33363365ce597c0e5c4d14c0f66b60a8c6ae3f6d45d72af301cef4b", - "0x218c78843492895ae5ab088ed80e82eed320cb6f98595a211340b19428d94985", - "0x5380a88382839684d7d9fc7047eca486ec0383966b262e5e46b9aa0859ec1547", - "0x19cc514f0518b3cedbe31529f8506fe60c93122cc7da49ac6f855abdbb729e9d", - "0x93e2d29e5c272ba8dd20f621132c60ddeea7779309a4d14fde6e6d58b0643f98", - "0x3158d8140bea277184329a7f2f2bd7e956725dc80573ccb169c40bfdcf3f2c70", - "0x7505475407491f5a4619a25b97b1d5cc1e1ba38764be61b694b6c1d3ca51c216", - "0x40c556618336fdf46e581183b7e57a2f6e2665d8adf0d44b39d9a5150a56a13c", - "0xe8d0da5275d1280e0906d62421bd64a3397b5fade799a701e0a37111d13602f9", - "0x28fc4cfdd74093fc78d100681b770d7aead4d57552c9366d56bee6e7776653ce", - "0x81eb57db158fe3ae4e62785ab8a5c4fa07bf5a7815f1dcbe25bb997b89392691", - "0x361a76dda932befd901f101507a238fe1dd43ab563d09e5e3c6ca43e6de48f19", - "0x9931f8e7444209b91572ff581bee13380706e6d6de933ad96f185f71eeb1ca9f", - "0xf9b544a3c3090c494eda2657a527288e48b5f4c9032ed26eba3dcc6558508d79", - "0x16936de0caabfbe2e395583091c3b90305cd1fa734a5ecacc8db0ba8c40fa89b", - "0x998492ec7efc0178ad691288e36758800b139a26aa493bef28f2e96c460be402", - "0x626f93a0163fffb94c1cf227e6a0ef125f7930f3a21971dd3a9d443162a0b176", - "0x64a7ed78b519d1f04b5b3b46c6804c0647889475d4fe991c8a7e405a4a2334f8", - "0x4aedeb8f7470b9c97c2fec75b4c44252a855d36b73c6a4550d15368dbee9d0c2", - "0x17095f0fb67a7d24910c086ad4cac72e493bd7276afef463d05e26fec1f39381", - "0x05b5fc483f428f6c854403b365ad11f4cb170a2229ec66ba671b94ed50686858", - "0x76bd14300b8f845500b2991e8a78df8dca3054016ef6b5069b77ef05b806caab", - "0x718aafdcb0223d7010c9b6c012c38aaf82e02c8737488bace9a7f8db15c60047", - "0xeedb09efda45baaa9034a18259f1aae1275a86fc81a218d9982e0b17f8d743fe", - "0x2608c1d2f2f8513ff1ac6e33d21659624c16e00218f984ce971eb9bee4825101", - "0xa5331637e8221d95d318cd4f32d5d37698731f569c4879c151086974e2cd4e95", - "0x2f9faaf3d219ae56a94fb4ab12f940d63a1d86776aef6541d40ed63d03d44682", - "0xd91d881ed4fd4b6197d77713d2c42758d9e550343ab67fd761c7c3e7a3724fe5", - "0x2404c00a40e6d67254ded0ff5a5413776351b8587ab1fdc4cde74c316435a9df", - "0x8591c719906e31c2150ff3183382f665f756c9a324ed470d0916deaddc240edf", - "0x8d670ef59f2237573019bb60cceb14f7198698773b572f6acfe3d3bad6c33d3a", - "0x3631004b8ebaff324494cc7320bb3c0deca53480a21d2d7fdd516271af7c97ab", - "0x4dc37b8650d5e49ab1a87a9e88912a98a60099cdcfc33a5c21627f0bb05ff124", - "0x95a8b189f6335a7d1523c470aedd2fd41f66043019da9a1ea46b379372ad4d6b", - "0x7219f1318a197b919a83dd51417803c752c24dc3a005cd08c091b0339634e806", - "0x81d850ed79388dd32265463d5283b02b11f012e08eddddfe389d55790cd1ff52", - "0xe170a7511431b18ed7330446569a253047f4fd0653915e107104380ac40affb3", - "0x9c38e78c1851edfe159971a455a70e1d61b1ae71ea0cf828ef40d4166741fad4", - "0x1ee49fd6dc9fc4f6e8bdee61a3e010a0eb9d06597c256200538ec73580c42bec", - "0xc0e415e7a108c241fe301e6ac22c81738470b499aa65317fb9344d59ed763a09", - "0x4fd8e4224aa6f2863ec655c10e829e113882646230a3dc753d80c111093ba167", - "0xcd7f4ab1b3900488068618eca688f2fbf85e58b265ec0dc4c0ea55f8892be5a4", - "0xddcfaa6613a08b4d0a5f4259abae86cbe95fd5ec5ec77fad9ff2c5662efd4025", - "0xf8bc573cc98ace8805ea12e49c664d8d9cccd650038a4c6ad559780d1d2392cc", - "0x65d8dda84a5666f872d4a744a7c98b6dac5e1082e06625d49d32212a37bb1291", - "0xffc19cd76943cd82bd7aeb8d25d6dc4bb71f834cafe50a5ca2ae257d76a93db2", - "0x3efd8f977e31b77007ae5f290a63c22cb417b52d9bb36899baf826049d169785", - "0x9e225513beea6034be1edc5c51a3f12718713578a2a69bafe7af00bdfc477d02", - "0xebd0e1994eb8dc81f7ed767aa664ee7fc0514caf96fa5080c1ea120bc9803ce0", - "0x340d016d76c6f0db1853ef43ac32c2ebcca11a936c19f0f6814d64aff8d63ee7", - "0x57ba48a6bee7cc99a609f5ec1c9dc2aa1ad26589b292d0e913bbb7e6700895f4", - "0xb0b3f638edd6161784754f858844e77f9dc13a52943120680171deba7272e9d4", - "0x901ab47b6f412b57c0b09020defa44b5375c4e80749199c084f6ce0ecb89ab0c", - "0xb8c7e255dffdbe496fa3d949ed552e36ebdd6d14acc4049491ec6a033c086616", - "0x2f1780d8df1d77937e6dc3ec8483d39e3722eee9b102d84cb412b6765e1de74e", - "0x88712075a1174fbe444b715cad257d16547968ac267142ef293897332feac87f", - "0x6287016bcf8d4d4b67412f0b94b080d6b09b35d2a969d333fec03a114f49852e", - "0x7bae2942ac4d0c98a53feae67f5486415b9a59305b6adb3c7fdbf78642004eb7", - "0xe2dcb80caabe834c0897449540154ba5102f7c7a534c40f05dad77d42e26c571", - "0xc1856ba8c970c81104603472986449d9a6ad17f56cf67dd243c707c689e2faf0", - "0x3dc698054a61289b4b39f89c7f09dfdcf72c4a5a54276e508b095374cbbdf69a", - "0x0b27594e85ee0393ee4b16ac44751b9a1d8a9e7d704f42cc7c46bc1cb30dda54", - "0xfd47f64c6b87363b36d1de4950c72a7ae7fc61d941d6d046f89eec5bd63d863d", - "0xa420ed29af2c8a076098250c29704638476fd014558fdc68524d7a1c9b4043cc", - "0x20e516a19060c4f95559484dcff148812ba875407c1e0548714b630439985f65", - "0x779971f5b6aeb2717e6e336f91b3babc6b96621fd93352f0444b96043c34c1f0", - "0xa57891c1f318ee62a989a151b1be70176b8a86466e3f1669a87b3131b3f7190f", - "0xb09340884952e9fce0a543bd8e98617caacc63d4c87485da51cdb906aefd479f", - "0xff2c2dc309fb4c05b90a80a3fc715427f540be0788b33525a5ea00f0376ecf8a", - "0xaff098da407d643f4d60ce864184a0cd2001301833da3f379659ea4462da737d", - "0x0650daa5593e4d835532cb1cc353bd2e93fbae818e1f334491539ef4d363c2c0", - "0x1d6e8666bf720b0cc1fab78d8ea982ecd2b44305dac8edb2f5b9b9881722399a", - "0x673a6337982d71675566e7e6acf703f9c5b18718856bfae59edac11f4cf2ad3a", - "0x6f68da412db64aea7ea33dd930e145f45b36cce9d285ccb878d33594bceafdb7", - "0xbcc221ad6460fb4066d8c630720a519557064183fd3ff3feffce36b0d80b8da3", - "0xe671736f8a72834e5944c296f64a0d35743edaf75becef65203409bd369615d0", - "0xe4b50f9724453eef07bb00e56c32f6e056bddf38fed0cc80d3d9d2f86258810e", - "0xfa0594818b10ecd7be1deba272ee23b3cce007382e6974645a505df7d289ca39", - "0x35cfa0772e326b9325a613ac39ec350241a62d9f51cc0a1b0de4875d2ce48059", - "0xb6575e9d2cdfe08b13fce3badd0a991f5d331cff4444821932973767677ca13a", - "0xd4821ae28196784c066b254b2fb3b6230d5f4a0e769d8b85fc7ba453d3e93f1a", - "0xfd9f762aa42f1eb43e75c3c00d292f9afe393a14e272037d072872f820e710a8", - "0x9f78b0168eddb9acecaeb07fea85080fb638aca8874a9ff15d3bca7e3e4f9e73", - "0x8c2f0986e10039e96cc6695884401991d714adf5c445e9bb0f90a14cb4a12477", - "0xb7059b47417c4a06bcb11c6ab78221835279d130f52f5cfc316e80f87977b87a", - "0x56fcf49a8a7a69d4f8604190d79eae7e2957a1d129cfd813c9447249ace909fa", - "0x9401c3ee1a458253b3da8820c1e9b8945710839a826582f3a86e8a482dbca0f2", - "0xff3f9e5724cfbba1f837a10f3844cd437c0f1b5e31ddf61c4e56ec504fafac55", - "0x8787e48bce6ac94e62c13b82c544c2265b42ec08d959c18722c3f722cc8ff2d4", - "0x18cfd60669f16555f0b0a429a6b98bb64e936863d5524e23c3d263dce8177866", - "0x33a19dfb8f79494cd2b1b5983884992f637099735e67b2197ff48b00fa28ed0a", - "0xcd2d1272d5982579a63f951c3678c5ec440dcbdc2a5fe4ee8c765fd16ff07353", - "0xa7bd53be4ffe9029d5bf0c15051158d4fa1d9857861d9b3fa63dd0d5052ac98f", - "0x6e039f06324bfe8b9604711719bee4c840526f8c3ce9bc5c3c5584315362f0e8", - "0xafd6c666917c47aeae4d44703d891a3498211054535295178903665328d24291", - "0xc0f0dcd1102ae4eb932e3ee71f1417dc852f3f1ba6a8f2b12cfd8b86ceb3c335", - "0x6845dbf33355716e4161cd3e03ad296a4bec741255d91bcdb6e36950c7010c75", - "0x832d9dfedc39989c97066d465f256ceb8922f99e01c730865f62bba3a0aa786b", - "0xdf99981c644b3dd68728aa9801d5ae41579cc499a534d5213797b3fc35bb64d6", - "0x0115b4118eaf40a9f0fc1cdb8f26ed41e88de8c99e572f72d79dffad9a776e20", - "0x8b09da2fa7f9bd66158c3d469cd22d3f8ade9d86d0cfbc49ccb48335eac53df1", - "0x1edaf123ca42fef6c94b334ab5584c2837949abf3b3ad0b05de4e1da16a5fdeb", - "0xa7bf42422c1beb01742120f78b46ac1eae595f442b0f246f53a919343b4b3b37", - "0xcf72cd32a99afad5a5d9db18819131219a92c1404b57f64215a9e9e891c9428c", - "0xb0d4dc75898e16ff0c4b8bb317669eaba1e54f8d1a1cced03e6565ef3063fde2", - "0xde58a7597969ab3d35a4269d0623ba77254fa140ee0dc00f85e1d256f515c26c", - "0xc0c52dbd3d1febd3e5b4a59d9a6c1a4023d612160bccc5733f2006738baeb149", - "0x42759b763eef5c70b4fbb982cd247c29b0570dcfcba9649084622bc93bf0440b", - "0x02b44944241f25120667fd0c83797915239018c4b370378719be93a809d0fe31", - "0x176572271efc8297d8472120996569abdc26e0b2695cc1c69f72d8e27fd927d6", - "0x2c2f7eb653428b3a5329b339094caeeb4924d322b4362546ade060f8ce89ba65", - "0x3b548a06156cb3ce3ee222cd68a95ecd69bce5914a699b020f0890719a5f97fe", - "0xe74cc69a92f69d63c16a4baae5cb692e57f2e2efde17e0c46fc4cb338eadf215", - "0x9b2a05590bcfc56c432ddda8607b7902c1195ac72fae25c7f18e547a20fc1654", - "0x52f4d9509d31fa6100c7fa8d644dbfe2122581e8a277c6fe80b68aec78035ce6", - "0x380c3d4f876907fed243d11a8caf436445ac5ec55bfb3596091791bfd80ab8d3", - "0x386a91979bb6c8e42d282132f6903e517204fb9ce1379fe5f2a90b66b1f708c2", - "0x333d6dcba02dc8418059d95d43e22b9bc33539bda31f424c762c5b62676b04b1", - "0x50b91f399926865ca64ef68dfa540257f660759ced1276da1033bba6c2500da1", - "0x78266d3dde661a3b10f43d31375993ff002a7b49717a075c6367259baaa58fb1", - "0xb5066418dc050952f056082ef0f6d6b47fb423e9e5458176296aaa6edb7e7af0", - "0x3b8320734691ac54f2a231b296b889c9c8511843984a9ad80f3c43b8fdfb2391", - "0xf85d88e47f6b7ec5f5107785f80fd8b51ad6d5488be9b147e03b5697567ec932", - "0xc352f5af398bf837c89b42eeb48c322ac8eafdbf57af5c1c33ab0880623c7599", - "0x450a16022ae364a4f3ffd5e554aa9a324ebf8b9e6e635e753f4872ed6f63051f", - "0x0438e9c7d357912b1527a7fa5d6e30ec428e472a617d30e33946e47a1f648dac", - "0x4cea137040ab131bca9c9cdd41760c181244c736ca1d9d19370012935de0de6f", - "0x757728e69874bcea324af5348e76db22c3eaf8348843f61b82271570a5a96a93", - "0xf45bd1383b1d53e95dd4d0515f20035cecfb0707442c525c0f06b55e7ff52a61", - "0x156d898c3abc5a55d9860d679d97c36b2e48f833c1342bbf455b13874743b1bd", - "0xb3e80e0fe51cd1ab5d8ef201a011bf6a0a5878d070eabfdb4a6d7c77d06dfbe2", - "0xf7302c6bf2d04fff65957a18c8b988bf0e3dd7f3933229a6f1700e6447560d5f", - "0x73ad7c6627035301b9815d82626fe958ec0ddae62060f0c7f431865dc1b9f6b5", - "0xf10b5b53d915c1bb2eb9979dabd2e917dfbcfff17f1d09cb616b2a5179014ce8", - "0x93570e1d259272e6b825a5ed34a103fffcd27f792fb5b09a2442cc83a3bd172a", - "0x8c5538b8ff9ce17625018bc309af258e4f5acbf9c7c2d4e948cee8b30b336f92", - "0xe9a6cf047c81e965dd32c57edb680c2aaffe2e367976eaf49da5dfc957fac2f4", - "0x7b972cd72e31473b463ae197e30b121afdda7878b9bf0e1961d3813734663435", - "0x9690c83cc3a1b1b8649a89a9bb1e1fed606e4c949d46ab8f66f16c8320ff5127", - "0x8326afe249d762313e5e089474f174825821099a5e9136a7783c3eca7a160d05", - "0x240410eba6ddc5b60a0bdc83fca59d615d95c64b0afaed0a7f17b96ea65684b4", - "0xc48969c8f72df638ef2e8b98f0d67dc6d9eae1d5bfba2b02e584ac2dab51f3e9", - "0xc4fa4b201243c20d35df1ba466a4c40139471ec86bb55f872d54f6404d4bb05b", - "0xfd085495f4ebfd30f7ee4ad9f122ff3da3932fb87ee9aeaa7c8103602671b96d", - "0x17ef24bb8c605d6a27b3b44744353bfcd127488be96ac77a3d8c706015889040", - "0xfc2fa0f9a8aabf5fe515cb5b4a4ec6047f08e6140e81bab8624b02dbb3f99d71", - "0x3ea5269fd6cc38f8a2167cb1619d643ec9de3deb9ece6c19542626f7284b7b0d", - "0xd6ae9f4d8afee0374c662a86b489c603b4e16fb82dee3f57ddfa971e68531fbc", - "0xcdc97e7c7aba5cc5939382dc37142c9d59683d3188d642009edb492ccba1ed77", - "0x847886244064d2edd6791561638b63acd09336b4c88eecdb09493e8ee5324dc6", - "0xc3695209de581e3e3ee849b3dfd93d8102c9e047edc1596aa332d8137d0bc3e4", - "0xdf1399b24c2588519cbf19e2e7218d0fdd793cae1eeec52f9fda7c729a0d4e02", - "0x9718b2e289feaf4a2acff80f5d1c61400e917200fe97b5b9b6200d4c48e7a526", - "0x6fbd4948fdbf124fd0a9c958953abf372854bb6e29adfe9190b0101b97a342f9", - "0xb54aabb1fcf4c8b701734624fb68c842b500f5e71c39dd04083f8a3eaf7d7c51", - "0xc3710e6042dce5652464ec6891ec5b9f436208c12afeda5fd3f454edd8b5d79b", - "0xb6e3d629f78477b79bb9368f1611b62d717b3214675c64f1eb737dfa17b03b04", - "0x6fa6a372c4f33ec50d56a4039c0eb7d6652fb934b24ca468c1fa8f034aa043f5", - "0x51ae789b75938201ca463bd4e7c36152aeafc4b63544293e689e15ec80ed94a2", - "0x4fbb4816f1ea23ea83a425969223be5b9cbcd69113ff43e622ba9753a3a25901", - "0xb2df755c413220d7b684b063f81a800072f2f552e37fc057f555b252f70e858d", - "0xb5d01c218c65539914a8b01c40bcf629c83bbb4ef0c6289c127f583b133aa4ca", - "0x1489588ee88b1922296b2ba27abdd0d393a774009941f4779a63d3ccc015c34f", - "0x093c64995cd670084f2a908be6d6a508f490641474bfc722eb8605e0600d246e", - "0x9addbfaec75c7de95a89691ac3c23ac7c557c278155ba6026aa73258870847f4", - "0xedc09711042a5e3e94a1fff57e7d00e0193f1fb292e3625c6c230c66bfadf1e5", - "0x99a935be3a0aeeef44a096fc8b18ed302bf7224b6b7abcf5e897ad7fd44ad9b5", - "0x00d804cff32284e41ec123482da2a86019ad97d8b36c0b743873438e0cc7438d", - "0x669eabe8771c02c109a7d46ec07b346be0901078f5cd4419b05f3f62442f0b1d", - "0xbf26eeacefd0dfe498f7672aab4a5262d75af5a7e8f5a5dbf0a3e9cce3573b1e", - "0x9b43c92edad88c5825f99c8490b627b68602701a8358baa22103d2b11ced2d77", - "0x8e8988d54263d7e2d9692ad884d44575d3fcb7bfc37333a814ad19328df3c690", - "0x208d671c12795da6d89847247d9707cade2dad378a840d281a637e2af57d137e", - "0xfe83e593e005e58c47571fa00075d440286e02674394eb46956a25ac2e2d3622", - "0x41a61f08717bcb479edd0ed1fc9d8bcc13b9ca3ddede35dee6e0d0fc347c4c45", - "0xe9fa1018977dcb1a2dd82ef24105dcd827bf815985fa97afc0d294711997f686", - "0x7deebf65689aefa15a6d15f7b6e4818547f56b01f622f94fbc42ef968762ebf4", - "0xa8fad9841e2c5d7c1131c16145c57829f22b62566b5a7366d6653157dbddbc83", - "0xe0614431ceb7f622aa4f43c03fae28318aa726dc1ce0f95d69aae011eb62a017", - "0xc731b4b0341ff915979233c76f3562e8a28f268b5d3e531d8d4f3c927837f123", - "0xef265f9c899303b2afcf6cf2418cfc8f9c71d4254321aed87827c0c749f51546", - "0x40edf9f2122834fdbfa84483c376a6bd8b67eac8b8bf454258dc7810f8e849e9", - "0x63093778c25926c58ca06014bd1b668b4d89e641acbb94bcb13c9ca0519fdcc6", - "0xd8b930be700bbc53228755ecb5074d16308f8dd3187cd3a0efe0c2414001458e", - "0x75b0cc9e892313d9c1ecfef4bf4b3f5976f1c830a7283a82fc331277a4a97eb8", - "0x4f102fe9ed705a74524f2598ee6f22adfc1d4186e2ebcc7331bb48e900795cdd", - "0x48a257229a0e91207cc31ef82f00532ec12cb605abaeabf1235676dc57306357", - "0x9ed64622acf60a2bc6fdb2bb738517aae8dad9cffa738ed4f95b02d3be04176d", - "0xd23a29871a1fe22d8bb7e7749aadf6d77c0140fd383cab55b099714af617a371", - "0x79c92002b2077df1c7127a4c49575d7caea872ca1175011d47e019ff14ed8535", - "0x9a9434b2d09c181c7d9f8ce3e10fafd8c3b1e27b807243d74075e747570fb391", - "0xd3c946d1ed5a76e6e17a599d06bbae3319dedfa047e8443f9df3c4b09aca3b88", - "0x4f3ef090e35ccddb78598a581800ea6f2709c691e3024c2f5d13635d3fdba27a", - "0xf958691aa9a520e8e399e466e390679ce3781b82f1d0dfc62bb53d0b3f640176", - "0x4a7faaf47a5031e0a798dc00ab8248aae16866cf74935ac0703d3f1730617d79", - "0x6d350d1568d7db6c029f32d7c8fe47cfbe99984d5d24a9470800f4b70207f653", - "0x6553729bf5616496d7d3ff3e120ddf1c4e64857c53303003e4c9c2546f8458c2", - "0x05491ee727fefe4ef46b9922856a5282c4ba27a90150b967a04e62d85cb3dce4", - "0x61e8d5b5143c0c532adc9f466dde430afc1d1755775dd39095a51a5aa2d4422a", - "0x2b5a26a051940c5f804db637ca77a835ab50f6c62648adb5da7ea05b39b04b38", - "0xbc391789c853b9ed06fa0d2533f1f56b55937a49061f1cd1a102fbe88657a764", - "0x4206d3b075128ba118dd06bc273999ab5ec097f1690c2abfdab351efcfddaca8", - "0x78075f3f0420f490386d419fe2b187d8c6a3b0bbb2158e0f9bf04071ad235bb2", - "0x0cf1b70db8922a59f11eb3a40ee22264a231905cabcb270dc3df11d22c8cb780", - "0x093ca9659cfc716634b38ccc97cb8193baabdb6569f4b33e56e3d8ec1157dbbb", - "0xfb17fcc35e7609264b5dde51f3847f98f555808c693fc345e6b4da55dec4fb9e", - "0x7b6ff07aa7bd0decf690c24d510a2d08ec07fa78276311205004b521f15a161f", - "0x2323e4a69094bff2e821a49caf30ccd91717bfd9eef8609331621071d4fcca2d", - "0x9f05738aa053bd67194099d8bf7baf3166c4cc18b76aaf7cc1a197d4af911765", - "0xb46c0513fd784d2ef4029eb3352e4423d627861431c160988bdc901c01957114", - "0xe1b5c3328267a91718980d369530a7ce76c6f7e404030e880c5dd57508abb03e", - "0x66d908a91b10d229bd478a9ae64021757a22edebf9d41e4a58e2168e8445d137", - "0x9de8289dc95f5b61cdea4a32c7064750adaf034123380c68251df2b816790893", - "0xf9de4b4229f1d152bf4d00864d8d5c37e8cf38264b2fe304931392f848fbe8ec", - "0x356654f74408077036e642d6ae98d7d3893190f6169110c682bbeffad006e33c", - "0xe5a731364889cf98c6136de7365fc53b3f8cd622ae7480fc35a9aca8f4e615fc", - "0xecb8b7af4e850d0854aacb48f034d96a74a81e588f900e1acf0f421e8ea2e59a", - "0xd3d25554bfe2217268be1364b9f74ece500ba8e49260218f22bdb86558edeea2", - "0xee9e40ade104510e4d04b9141864d3d14ddf947f7dd8d05ca29fb3b4d4efce7c", - "0x440556c74bba8c2d89d9eae72f713529f0694a72a741951d5144f7f977ba745a", - "0xfb63981c40b30bc7675280cec8063e7f64f44eb60d983b462cbfbd923a18c46f", - "0x666810ed3d8a8cb87b9d3d908285b7428380cbffeaa2ac9f50b9acfe3727a334", - "0xf87e07add78b9ff8c8b8c4e81b1086ae1fc9f97903a0b8d5e30442781abf5747", - "0x7919d5dac99d403b646b4785205c3ec2635023816e534eef9f14aefe01a0c8e5", - "0x99e1935acf142897bcc10ca07285849b08e5d8f0f8ab73bfb5b6f79cc65f4919", - "0x182a38b8286b5a6ecc93b431a20356a178cba89ac025327e28b7bab5e815ae1c", - "0x666d49f7785b6d3db5ad92f1403e2e447743351bfd31f1b3b61665a79037a1ea", - "0x898f91e453cb2349f6a222f23aa848bf01426fb40fc7c00fea3015847da37edd", - "0x6919143735b6f85a9d0e37bc4b81a92d664b5ef75e40be58fd1b269f5627fdc1", - "0xb854a51fa1ac7182b6f92d48cd90d8a576e75f769147916565acfbeeead664e7", - "0x3924e051c439c6a49a7af5d5a07d3b9b193eb1a6c1511ef406aee6f8e94b2f94", - "0xc6a2b425de2dd99bfa1c0970d29df185045a56cfd3b4021a3eaf630d4e87c6b4", - "0xe66104bd368ce9ce40920c6a0a1dace7be55bdd5ec594cb9169e42cf07282168", - "0x876d3a55345136b3079c260cdb312f8c708f9ae8afd3a6a90f8c018ba58be19b", - "0x5c0849ab35f38121bfceec816cdcc2525e88530ad874086bfa4056c8dedb1e77", - "0x3028fba2e7ff0c70acf12e33e744a881b94865d6f373a50d5d5eef23202568f5", - "0x9ac128a61197f07dd4b0fbac847b864a6496f1047a085e9a26f1618e9ae83406", - "0x55c9428bc7a5017957e025f046231005d4199c8e92627074923280cc3f6e3cc1", - "0x474004a4237145fc86484ae385c21523250746c662e791d5c366441c3b9d2189", - "0xa53ff4b977a2417289f9b532a20b758a2b0bbaa84e71c82e783c7ef045f16eec", - "0x0418a7320d961c5dede728027a0be6f4979211ec600b564edd408a1e9377d5b9", - "0xc8ed8d992f2b75be024eafc15ff7d7c5c0b0599cdd6b603437b4e737a60993e8", - "0x3f5e222d8b28b38a8c7b190448286d4a14afd1b0cb2697fd9356158f5215a0e8", - "0xcfc961c5ff3b8615089248635d900fbea9ae9f7b4d86ebee3703453567a67485", - "0xcb88b820997d440812da7192f44c6debd27da3a41f04b595f515e65cf8a80d50", - "0xce6f3fa44aa7a177ea56d97f00ba344852f614951e665e3742429a6aaf698c37", - "0x21bee516e3366f5770dc4f6af36f799a5c967eaf398f2b70c3a8ca694096a9d5", - "0xe5a99d3fddf70f8e732f7f4a14fe81de8cf1ffc945a47d9eaa7a28c5eaf6ef84", - "0x0d9e3847d768c28783981c6313bc9b0e60ef4c2a8693cc25d399e9db50f393da", - "0x728f54d10e7b531b464ec7e86f3320a4e853967c14061e727f58ee3c115cf65b", - "0xe1a0b9237f50b5e47c98190589842f0b72be2acb3b6a57c075b0c9933ee23100", - "0xe42d8bd36eb740ad018367109ad59f8a74ab017eee893be54a4d1b04b7cf37f7", - "0x72bd0949deab66aed968e725b4434158741c70007855105dd17ab9cec2cb1a91", - "0x450177933434050053831a4c162399286a92c18f9899c413d1c579ef95379fad", - "0x8c950374baef552acae9affd2238ce1b0a1c27e463a03e518b99f23f269f805c", - "0x7a09cddc74127b837571d245fc039489cd0be46ef3618460013de17c2bbf7933", - "0x6ad520bcc098e50d371d504a1e4f4e37b63484066606556debb14c1341880f9d", - "0xca0232939f26cf17430ab3299f1970c334f8dc132724c6e6b01a2467f4dbc149", - "0x9edc115c3af74d77a3267df2b87a77d82b825d07993b74fc31668a09915ae070", - "0x0147d798bf772842ca2e33c28b65fc6934e41e8775b5cfd566dd2f60641da26a", - "0xca005d851a4c27070a0706bfb3b95303b7d79008f49a681f052700c1b4275c57", - "0xc365df99690cb05b89c7efc60a7af3bb4e01c22e5f6d51c9631cf737717965c6", - "0x80aac988930e5f1de8d1db964645abb114e145f301db96925bb02cae2f6bbdc2", - "0x7c67c1aa7d047bbb20131ba231a55d0b596394b06b89c574d23b8aee7231b65d", - "0xd2e03510fc847b2890ea18eba3ed90ebdaaed83b55bf9cb5eb37b9fac10517bf", - "0x4047b15bafa722bf1f5ed69691e671a64c54eda20f11d25143ac7e5dd4e9ccad", - "0x746ab5985f0ef9bc18cf60d1216c69d1fd40df2c1bec2262bae7438acdcd42b2", - "0x7fdfec7be4c42f0d16b66818334e49c97d7b06ea6a2befa361a4aba3c511cb7f", - "0xaedb8c3201c978069b5b2b562252cf617e2a0b0cdae62dabef3a04badce1a084", - "0x24dc7b367353aa7ac0c386f4f5768ef1212fa2cb0de8317300ee54b6b8e420fc", - "0x6bf5c551d97c93ed425eefb8f2998b5fb3735f96bd71b1384799a3330347074b", - "0x9d0be98f9e31ad94e6badd0bbaeb85dc69322649b825f8c41dccc8f9a8d0b4a0", - "0x0d1e4ef567e933a591dd361bb254c080f91351b04ded52e022ed296c2c06580f", - "0xb80d22650285ec257007fb6ff1de2c209cc6be02303b3e2bac43c6a57c0d7004", - "0xe2cd2f349288db25e7315e3c8b4257367f082a377ba4384275a506e814940caa", - "0xf56100200b9fee76191568e49bbfa0eba66887f24cbd6cfc0145db6f31da07b9", - "0x13beb775c7a572d1c54631405b45f3e96938af0d5c740c4762d5ebe5f7ceb1b6", - "0xb5b20d1527a14d733fdb3a94f178dcbecfc9f4312e2c3c0dbfe57996e143682b", - "0x5153bf8c2d061de36ebbc21a31c3755f96296936e79584d03ea169d7450700f7", - "0x8d59bf8350b7eb84d5cceecbf735db04270e4d76b66eb9961243af61317a30e3", - "0x90e0af4b3a2806ea91799ee9d973fe9a2a3c7c07574acb7c72665af11a515bc2", - "0x171fc19c2c2e6fa95af7789a01078a34a628f998ed882884e6f514d45642cd6e", - "0x5f73cd024051e26bf239f11b35b757e896dffc144a2cfabb50aee58e2b4c8afd", - "0xdb7401010dd1db0e8af735200f9bfea39f868425afa01bcc404e5136db7cafad", - "0x809dfd2cc6df05328ef813bc5ab86b6ae90bfadf37107dade647e5a49fbda950", - "0xc731c27a9d048ff7ac2f08d1d68d46fa57e61e620e044b929dcd7d076d157eb6", - "0x1d443d7c2a3974ce9d3211aa39efb84d779dde08e132628c77d72cf092ece1ec", - "0x71410564b523d40ccd091e3e19deaad26d74d97963a171cd6e2f739abfacf63e", - "0xab33110fe291f5cc2f469cec31c7d21409345545446ac33c0f49e1e004542f6d", - "0xa775e97c8fb2b70449066c1d33efbc44a10ed6c931b7d4a193e649b853f23794", - "0xf07dd49b627af4aa3253f0403aeef8a3bb452dc2c69a1227325a1c88731ada5b", - "0xfc648f6b75782491734b7d24fde9c7b4bd939d0b338a74a0b36daab26ca3555e", - "0xaa88a296c0cd44bbaaf8148c005f180d7a2757b4ddcc623a43a88a43deeee936", - "0x1ee2fb788d4dc943f726b8455957bc175ebac3e4b8427177a053d7f299a3598b", - "0x13e7c4da8f8982f0ad250a425a24ea8f8b8574abe033e236dfbf596fe2efac0e", - "0x8acdcc6356fc748e03c06ff4878d0fa96f18e4f03272ce01f02ad29d8211f611", - "0x230d99e6323448f1ebcf7e6792e2978a5d74ef654234be97ebaec5c56a684457", - "0xad35598f4bcf7bfa1852a9265a59d0f9914b3b6289a7aa3015e3d808d504aca6", - "0x4d9956ec8c5887e8cce4bab5b6819cc13a8703cb527f14a5e9db99cbfd83b665", - "0x99a277612b78515fd153c88e0060c274b1ab4a60202b575a9b9892420ae657a3", - "0x656acdfdfdf9b76d499176bc3a259aa9722b31c7f3f4ae5c2da8bc3833c12d66", - "0xd06448c98e529a17170aae72cf359a1e2808ff529ca9f37df3360b92790f925e", - "0x9afd24c01afe4856a47db81a6818899d93a5096853b395a24cb9edd693bd24e0", - "0x03b7a5d8eb6ae24ebe158e411df31514229a2f302108984597317196f6226ccf", - "0x6f97a76567724eecec6c55e811085e7a83cd5f6551924f6f8de590b16cd255cc", - "0x5fa0d567d50e49df1d24f243a2ff97feecaacacb6a5d7e34620a9f7e18cb3f84", - "0x727b25a1d44fa0eaea544ac593fd8bbde356a71a48162160feace5596251f1e9", - "0x3d8340ffdc8e124785dcbf85d3b12a65808c49d91a77ed7a1ef54e404acb56cf", - "0x9057ce97cd01e362ac771d04ecdc45b10cfd45d0c3a1070e2c0fbbc81fcdcbd4", - "0x016b166a2ff70c7beec4ecf9a408a8fa4c556e0e4382911057a984454fd9ab45", - "0x9c2a27134a95f9f28d9f313ed2ff1dba33d5a080cd2d00626b8b6efab87d6957", - "0x66f3583ab4095411135af58756f72480d888a24aeda166136e18e25f42d56e39", - "0xf2cbde4bb5fef74ce2342be3f2178a7ec92ec819721456687705025708a2ddcb", - "0x5ce0fddd2a1a63fbe9bb28c01ba7d1c120f2eab2eacb0dc6200fea8c170e5d2d", - "0xeee2051e5b3a37bed40c32e05f141ea33283556a20e42cac05e5efded1b046a4", - "0x0a38951aeda2ad0227d5db28597901dd2f15fb8a53027241941f705f84f3462d", - "0xd532a9afec12700d8a6976dd148621347df54aa5f78fd64581835027a88ef6f1", - "0x2e328120b2bdbe717d673b04c9fe2c66d9320f668798b9fa11c257a5719c12ca", - "0x46a2cc57ba5798731135b891a9cb9af4b1f780a168d91a9d745f5eb39bdf72f8", - "0xe350043ef30f36168e8f68da553667cccd2eaaa4a1ef85c187163b9e5ab243a0", - "0x183ba0d0cdc68e3ac433eae5822bf39e1e351bac9faa4ec279fe9d3304bc6dd7", - "0xdbbfda6ab37d6b32188cbfa975f513f6024e84364bd6c59d513357598c92f80f", - "0xa44361a80cd53311a9e2de8e244013ea6a926cbd5854920ae3e162bd25d8ea21", - "0xd832af8bb66b36e85828711a95a77a2b6f4b42a5865bebbca59209e6585e8c9b", - "0xc7f64dc286ba1f7b6ddb15638662314813113bf058c7a9065597aaa4452c752a", - "0x178b152e9820020d4245e8a997deb02767796841a0220ac22544aa1250f84296", - "0xa182cbcf24b7d477c0efb568a8b120ca341c4b82ff0fd0d6d0b856a65dcf1083", - "0xb1f0f8c06b2743e1f8149ce4dc215f5dfb89f8f1da9718f3f312e500ef06aacb", - "0x5027caa12ed653330800d4de4014e24fe9251ddbcafea58e2c27012dac58c371", - "0x35a7801cd57644a1df91656b0566c62265159106b963368cdaf429472913c189", - "0xe80e4e8f12abcd5a79aeca6efc64bafe1893075bbec001338f625642fc047bee", - "0x994fb4f27b15427028aba87c42b08eb0919e12870a05405e0ef8f2458cc2b279", - "0x67cc00cc4591d984d9c2270fbdadb8c0d4ec9b40c6879aad8176f9cc7131e31b", - "0xd73e02e0c536cabfda569a8da06c99a28f3314d2761e7c0271aa5480dfad3246", - "0x8d709e7a8435b1d5507859d0e4406589b03d1b3ca646f9f26ec3004c6b2d973a", - "0xd5b64c36bc4614f9ee9bdfadab6c095ad183a8cdfa87a9e6858c4b12d9067aac", - "0x9d1d6d5c1eedbffcfcfc2af6aa9a6df958897cd81cac630dcb998f41a6b14638", - "0x39a3945ad321e02ffda18c8072e74f0dae525a57c7197dfeb86453ad208ecd98", - "0x878708a865debc222b72daa2611b7cb8368313c05f7f41e7f8fbbf33f602a582", - "0x305cf1edcfb804a104d777371850939c7c028f50d45f2fc4791524e24b6adfa7", - "0x6f5dac19867a9f14de66769c9a8f0813d7ac7fc4590eb3a862cd14ef63381491", - "0xdd7d64e12a1391437a07fa88b6ea7184676cacfc7cc8db544ab1808dfae8c87e", - "0x1e97a0e1992b75202522362a4edd8004a430f99c024a6503105cc55bcc7b843a", - "0xcc78f11a9f6996cf742875333c8274c68800658fd5a7465bdbf9c13cf2cf72f1", - "0x1fcfc22ea13dc96c9f8f3546f3f1b8f458bf7d1d46445c92deadd848bfee0c09", - "0xaa5d6969d152ebbb075a97c4a051195db68d90a75c37c104321131c073fdd843", - "0xf4f6e0c5bd269c7de9d1473c5074b3bd4d42b207742b918ab1481c633d05a38a", - "0xbba5eb96150613be2e45e1ea8ecad915415cb1e091a85b6858a7d1d5a8a005f4", - "0x1cdd61d797c519d6295196df06cffd0c9819ce0d9315c66e5309f14eacab63ce", - "0xb49771b39eefe9791d25ff5a1c94f0dc7d560a90cd9ca9c997625c05c0299783", - "0x5232fc02627cf406984a2f4f2e3813ad6260c1b07da797c2d1b7218d7eb05ad3", - "0xecc5ee2ea8e3956d964bed681f61323f608bbfe52397b5b28ef26f660e3c214b", - "0x49ce943abece2026b0c51a5ad5bd35613c92f480027bc47954eb9bc7cca5bb0b", - "0x27f731e278a0221daf21ab225b0297276db74ab79edc4806aa6a794e730f615e", - "0x55a9b21ac8387ad6aff87660d889be69d8b506a5de230043fe5937d0bfa53771", - "0xdd2ba4ff24bd512d48b553d031130799e46f3812c4b782c9423235ccebd7e655", - "0xffff9cc54e4484d4e70a6b3770d11fb9e13e583522ab4bc376cd6c7498021d65", - "0xb4bfa3c62b210ad81177faf4f6a170dd801713e5f9e3e4bcb7301c81cf60d083", - "0x5c3f5d4c0836dc02a32d7059c9598bfe46a813684f3576ec24aa8215a5de6270", - "0xd6d8e57c79dc17f19eebdce62de1adc0940d881d61c4a1099d51e6cf0b1009b4", - "0x2d3b6873546a1e6d026249e0cc45ad822fbdbb2ebcbb13832b7862ba9bc09982", - "0xd0d2b37a28cd798dd9d1a1e0892e86d90ebd54e6be912ff122402f6d923becb1", - "0x0345ca4471a47d8d12421bb39b0b0f7e8475d04181abfaa9050b95cde9aa4a8e", - "0x78a603e3f62c47845e657de355bc40d877612062b2f42b63c50645f3c12c4b15", - "0x1e973f2f79722999a5caa72528d1920917d7e7eb6839976ca19165c3a8bd26fb", - "0x3f5242f783e2336e5cf0cfee1427fbb15a833930b22187b3659367563a529039", - "0x181667e480e8017caf91681eb04cfaf0560254028a903b620485cb9771cc26d1", - "0xeaf92b93fcc996d886bca5fec1f6a7dcdb58cd7acd8033637a8fd9d4bda169b0", - "0xe5164f795fac046d3106dd707c4628d731bb73a3fed8d15ecf915de5b2f0a48a", - "0x556f9c42a01e441bf0e74c4a89323bdea6ce402dbbc1f500d5b00146be5439fa", - "0xe59b25cc5415f5b84b41ab7085b854f64f6d839085e85e6b2a30c41e6f689494", - "0x9e2c804effa40cd7a92ac8901798c03a5e66f47496cd89fd3b8314e7973f3d06", - "0xad4eec2bac36a3ea837c95bef538000dbc75374a4c4f8ffa7d2705ba300aebd9", - "0x12212ae8872a77a5d57a4f5fd91797c2fbf64ac2fa5af09aa55742b3950d8e88", - "0xd987ccc0c413e4390b5b5b69370f54b5d35f79c9cf4c1c534598a7e383399ebb", - "0x8d30d2dc8afe7f50e160fb4d3cfc5c54a962f31ae5b4f65c2362ceb7b8cc4733", - "0x617cb9b3cab2b8c43b11bc3412cab6f889197ba608c068dba2eaf1fa051b0f26", - "0x75bf3d53043c8375f1e51194be0942f3ec73ffbd61926d33910fdd00dddf5b87", - "0x72bd67478fa033abe7905125b728485f401aaa31694bf9ae7eb1184adff2db12", - "0x23d7a73706b970688eac1e8affa5524f0f563228aa7601fe7d790f844c186bbf", - "0xea350aacae57df34a533519b3448435879faf637e3f4a7cd3bbc891489d31caa", - "0xbff826ed9cc685de15275d59a299f5272cfab31750d39141e5ceb8f5d3645741", - "0x020ecefd03dde3543cea261d265a265898f6804230e95f044360d4aedfe031a6", - "0x71645432ccbc0826c83dfdf044ad7e3b2df4bc979e68513ca382ff93e24d1d77", - "0xfcd3731fa2259ace8cce5eb1a3fd74c723f997cfd8d4192105c41f2874d22d55", - "0xf13985444c5a6873217da182e9784fa87576829b9e841dc209a2592f0f5522ad", - "0x0e065da66efc90bd88217d6e9a5721280c4037de294d9e6ee8c1207b664217af", - "0xc6f893863ef60cf57991974de8edfa93c28c55c3af96f94cef9360be9a3a05b8", - "0xae2bfbe04bfe046166f0d6871d689a809fe443c9a6cdebdd5b2e32a36d7fa67c", - "0x733fbd82f21056a2e402ab050e32cc83aae96a67dfd3fa9c50732a3fd576e7d5", - "0xf4e29375a5f989dfebdbc9101d411f062c1090a9869058f6b87fe19b3a259489", - "0x95f902f47c21700bb030841890c47d759dbeca59983f1f2d5353674a4f45088f", - "0xb02a6050eaa94106ee9d4577b10f6adbfe7705a3ef9c3019412c4f60ee8d0e1a", - "0x20d64b55c9e4c2eb51e5af544ed068ce9d323c194c5b18bebea4bb0182344ea2", - "0xb6e40dd521e524b30139719580bd7441a35a1bc304c338c426b706673e179320", - "0xc54752027833b57236b5f043fed133b2461f199b75d52da8578c6e98dc2fc5da", - "0xfd3f9c65d1b05ccbf980a35cd433da01443ff8fc7be680892ea3185914d86727", - "0x7175b164364820f36d10f9e079707a40b21004d0687f90bab1b132c9c34ee2a9", - "0xe4c4df954bf0d3d0eff516775d60cfd29d0e780da4f07589ece3f11ba8925b2f", - "0xa927f17776d750c0b6996f1d8d0db22547fffdb006c0cff367d0a0edc41ddb01", - "0x27050f4807ec856a205518e9d13821b2cda0231cd8959f47ee34832181eaf8fa", - "0x4ebe3a5760406a59770cce09a0a44225dd5a2fade1d877b219558029e30ac4e1", - "0x290c328e60c366b0d18e55c5578b9b3bd83bf1b0600faf0822a1f6f1ae85edb5", - "0xd7bab11bbd83da583e3fcceb0f84bb551cda363c33c67f93e02800176c29bcee", - "0x3cdcfb49d11cfa3ba1809271869fdd9071017e5498f8acb01c595dedcd3ff109", - "0xc75582264ee66717ee40ff52a6689d03121ce0f1abb2c354cff6d92e532a81e5", - "0xe7004c5a4d09fc89e8737a5535221b552e67c3a0fb5851021e9f9a0de4672ab1", - "0xd6b8f94deccddb6d4f8b066c0302faa4b562f7a04e3a092b7d87b3a08485d933", - "0x2e726cd7212cdfd26cf0d928932b05ac8258003254e6558c87eca8a82cf6bb02", - "0x6c8786a64069e3f422dc5000e6a614adf14215ebce0aa8ab8e22c5f239a3714d", - "0x2f736729adc62370324b478cacfc6256fa0cb9119219a2a000d2c34c3293f6c8", - "0x8afc8743b959ab340dc86c6ddd9ca1726cf4bbd13054616b3d1d64bf656e0827", - "0x661832363afb109885055ee90663ea7514059a2c6d69144f8892138e89ed037f", - "0x2279ecda37192639297242d97723c6b635456cb2c98266493552e618067fc5ea", - "0xec7b510975a50daf40effbc94c977f508c84a9712cdb28d60c80b30adb3fd24c", - "0xcaea827e123419fe48b7f72dd67eb8c3965a4504f13e4ad7443bc8e87bd7c832", - "0xff012579799171dada6dc819977c222836b9cbb4f521142e74e9ef0762f73131", - "0x70ec4b383c92a8bb37f733825d60e76e75469a71b1d5361a84e37b38e3b8a34b", - "0x4dc584e8bce8efed0a55021d334b87dc5973de45effbc43e84acbfc03592532a", - "0x0fdabd0093aaf388fdc53d49570d3304c8c583415eadabc98635dc472f366b90", - "0x1b29d10d1443bb37e47668c9b6a124a1964a3f12075ab9be1620891579d8db31", - "0x3d350137648ba1e593182918a4ddb6b5983001356d6e406bcb88753449ea55f6", - "0xfc3911c59399e8c329db2dadcb5f7a58855f19401f513b9f6bdeca01e73edbcd", - "0x89a4277d6bf214c50fc0a7219ae59bdb719b71094d6a02c4ef5e07b50501e74e", - "0x7158b6d3debe3b6ef5dc0d40616691c804581d5614714f2284e63df42b5ea578", - "0x46d73cd458ee5a26724a68b2f8186930104aa9674fe4d94ce75215c61d0ede81", - "0x100c71337ae5379ca5d43f2177f2f6e6e57c628bbae4bfb70abdd1f23279787c", - "0x3c9e2e0161341c82207498608091846726ee4dba0fe1fe69c07a92a0ff7675c2", - "0x5c4885fe3f85ee61e50378943a48732843d47184619f40954daf24a165f2ba9b", - "0xce300dbdbc2c8eb91c75f7e0e8e91dc03ba8894478a9e65529241ff462abf713", - "0xebcc160dcb2f38f4607cfd3ae74a15286eb0aae05c8fc4f87abb751ca88a699a", - "0x91aa4f2af47471ac51160d0d1c81137c7c6a22ada295356668427a45d21c6a07", - "0xf30c1a0842faa5df4ef896e192d5902445ed7b01cfc83dc287492b1896126310", - "0x0e069a0772dd736ea68fbbef47302ed6e802868d0847518ea5ea2eb34a79705a", - "0xb49c6e624b584d49ba226f31611a0c4f3ff0033a746b370890533b209da2ac3f", - "0xf2a4cb9c4877795e0ee2964e5aec8828941bef07777ff4db07423b4a2eae5a31", - "0x2e9cee7389233b6b4937f5997be0a6f37a8c347c58886b75e3013060c10c4a82", - "0xd2318412b7dd0eb4f6b3da69c2c3cb7d8a6b7028ea8f0a39bc3bd513ec7c6d3c", - "0x74c00a1f66bbe517e7166993e18a1564d43877110c54be28053321721e619e86", - "0x37de40b83aff733b4792e27dd6211687ad891f8d95e397e3a3e07d481a5c44a7", - "0xb607adc39f83da6b0a7da38893a95cf33582d836c967496ea7636e61c6cb7191", - "0x518708d6d86b3a15dfd50d0003c340998be42ff59d533703be30763aa080c547", - "0xc9cc7282488774cbdb9d6511ebae8f6eb9947cc5360585d75197532e37e9c7ae", - "0x9c73d1c1a937f888d29da748772785d1a8269282003e7cbab2af4140039312ed", - "0xadc5c8b549e56222f6634a308348eda613afa171b5991ede1b127f241d25c570", - "0x0bcab0832ec43772bb1aa95f8ba9eac83b4b47bfa776876276b47722aaf5c3c5", - "0x8b37849d079adedcba7ed2be598a6d84464ccdd807ccdef2d711e5ef7bdc003b", - "0x8e2e677e5f20a78caa0ab3726528209bca791551d0d33346144c5e7b1c8c6bf7", - "0xda0666298d3184c66e54af103e988fa0c9a80a12e32921e5bea0233a8638e23a", - "0x1ffb4873b85e71b067e3ac99bb26e7f5ee5e036bba4835989f1477ac8b03466f", - "0xfc89d4900e3e7a475b8923bad15bf68f4cb967cb50fae648c2efb3d90cde84f9", - "0xb62eb8ea8e54ed6358a752943acd7a2a1fef9553533b56ca17f3cfc0ba719ec8", - "0x795e2eecc65f357e0b7a9c97d2c028b7503524809adc6e783f05eb0423362980", - "0xdb06a90870bce8df7a88118d485eb691a0043c695ceb64af565ed62d37770c98", - "0xa28bb65d12c4875edd64e643da53c1b65a154d9e40a4cd37c6f770940235740f", - "0x136902f6e7104043a9d828a027df5f23c61a7d085e49907042c55d99d72c16d7", - "0x058424a9554f7a52bb6516ee51653aee32ea09d96247fce31dd8b31af52a07aa", - "0xcce2dbdca699f427d620870ae23b96b38da3414c57e71990ba8af36a58e6b936", - "0xd1feadaa1927f77eae9bb7260fe84ada5d524bdf1239a6e688080da9f7b71af0", - "0xebe906165c9808c0b368392dd2cd950b55e1f95394d28255d7cb9848bd4f3839", - "0x639198f58b4712fde6064dc49f73b3db52726e76ab9bdc00f6ef9a0487fd6d5b", - "0xe9e2f1d0afa3d3b0883fc7269618ca1a50ea5aa828ea07f92fae48b2b2fc54fd", - "0x811ee53510a20a012a10ed6a02407dcaf98099823a35e54849b381d4a6e5b5e8", - "0x221c81c3c384717eabd545830b62427d11fc62bd1df260921a8e121456d719e0", - "0xdc62196c03031dfd983ad4a211a514e25c4c97c9cd9ca62ac18b44cc0da4e0ea", - "0x3f60edc7443b2ae2a4ede7f52c2c4de9d58f90d6be2f0fb25772b51c352aee17", - "0xb5cdbf0eda83613a613ea26b14401361a2de1be89412367f39d4ab01449a87f5", - "0x10d0156c9a828e9b8d61e615079beebbaa525a07f32d792e5a67d4f03846bf4c", - "0x4be38f1cac74f26e2e5bed0d2b416482a74aa425564ccfd3e0ef10b5f57a7d59", - "0x814aa2e560adae5e7192ada4ee11567bfebf3ff8a2a93aa8dd432df30c77f44f", - "0x187c004ce45887043188c222842da10e062a9be8a3db326d3ebdf860209e723e", - "0x60036829b2cce1932f2d4198b5207d70a2e0634c929a63df122ea38f620f89eb", - "0xc323959ae94b9d4e5246a35ccb887b8fcdd2b5de43ab581e53fd3090b4dc88b8", - "0x37a114fb8c7c973708d5dba9c37df501db5e0d074c757954e52ef716299239ec", - "0x8cb29fadf7071a43d8208036d986abe64a1974786c4ab573f4dcca88f8db83a9", - "0xfc4485a7b2ddece8cefbc0f45c949920b9412a47b3e21efa9aa381e0cba0ee72", - "0xfdd52d72e5f42cc1cf1bdcbdc97b15f623b78d78425c338fe588e890be995597", - "0x92e26312a466aff28597bf3444b0bd298b12872f099885ab10949c0d263446a5", - "0x420d6f0581dc5c914b0da7339fb69bb5c9094ea8715c778e9dccd922317c36da", - "0xdd8641edece5a0ab2b024b4ceefdc3f524cb0cc9549c200528962eb0fa341310", - "0x740c0963ec5c29ca9fa48445ddc604bec138df538edb18844182556924d09fa6", - "0xe66653af6368613260ba344cc051d6086a2e08331e8bc5ddc2d25ab06ead9eec", - "0x86e1aa0ab7a4e47828216a25073d6c355e2f4ac4773cf1d2d859f62fd8fb8a24", - "0x3be2cdbd947172907f5605beb7863e2edc5f176e0960904550358ed6c2670704", - "0xc7d4869adae5a7593dbea4f802ab068044dab40fe0063d5b7c7727a3bf288525", - "0x620611d92e256bf7cc471c8883801be5d64fc8b77c1f39682bf840031e0dcd3e", - "0xd89f0456b5a3d041d5309ef623e259003383277f7f509096ae5dd02d312543d6", - "0x7d91689ff4e212d6f2c7d62cdef0593686ba04aaf455c576535d097120f1353d", - "0x568a6763698a23b4b2289b851b46907ec5777284741d3a7304d7df297fa4129e", - "0xb9dec1f84c9b71d5939f40982fe5c88d15f868e265d4fd9fa0560c2b64191998", - "0x6620f3e9e7fae45ca0178116a9e478f95bc0a69fab3a8341dca673453741bb6d", - "0xbb418a7f8415e5378cca2ee7056c6c78641b085e30bb9f9da033ea193bbfc77f", - "0x002fe11d761d3135edbb3dcb50533a1b143593145f7b4cd914d84494b1df652e", - "0x5f76ba2c72c3e4d93d98668455def3d335b03f517648c6cfde1d0a37178a0ec1", - "0xda49060ebc8b7963a9ff4095c9777d902075967d75c47ee3e9f86f03031b0a3e", - "0xde325b667d85828b7416d437a91c19a14b0217323650dd5880a8a40ea85f451c", - "0x9c14e5953fe56c60599dea8284b0948603334fc7aa795cae80308eff4cbd67da", - "0xa9e82869a1be8247c665d86f52900784005853c5249393fadabe37d08752ac9b", - "0x3feff38ddc1917cd5cace417b4e86762126997a5420ac2cb32abafa769f91ac5", - "0x01144f9a6fa0b4396560cdee8bc6e873bdf3ec5c3ab3f7409e59884e6d2dbd05", - "0x96778169c9f2b805e67cf18324c292c8b67c57db72aeebfe5369d91aca0983b3", - "0x373f81dd55fb3bdc9de4c42028a5bdc970cfda825723b6f0f7804b50a1754bda", - "0x3af64226f4eb3ea6bd6d0dae027bce6b361b30c50b4a65a4e1661577268953d0", - "0x35b96aa54e1c50049a0c91281c75d3d06c4b609a2d3d92cb22d1328369adcdc6", - "0xb02c9650fc610b3f5a0b547e8bc505b4a840e1dea123b4cb2c8af6232ae1359f", - "0xae53d65eebce31c14b787f1df5b021334312e8d5b8302b84f6a56b6608e25d97", - "0x4901a419abac1937602d98c21e937a03db8a48d088e56895788da845829225cd", - "0xf5636fb8f3a381476267e6713f10763cef51071b6d981a8f661a24ff6d368e71", - "0x059e8319866374d8eb8372e71998cc9277c5f5e5968c126a81d87d0d7a6fe8fa", - "0xd5fbcd3d7a4387000e014e67ef61d4a7ce09a70374ad4fcdb6ca0b6b50b13ea5", - "0xc37ef88d74d307090a0dd49b69d5705c8e65ad606548b0880eef33b8346c2af8", - "0xa316c8a8ac949af5957fc905ba39c247a477224cd9c4cbabccd0671dbc1e17e7", - "0xdb313f10f0dfb56b8684e6ded5e89c4d5a3cd958a99b1773680db8682645b9f4", - "0x0c81ab956b95426f5c327c6ac6db2fbbaa8fd0f41cc9f58971d5089a0f3c52c5", - "0xb09827a7c1bfba1fb7e5c7acee1da5d8fda1c10da19046151f55ef7fefb784b9", - "0x4332b07750799b436dc5b8521feb0927d7e59b25832ac83876da4eb9df333aec", - "0xdf6895278968d74b85e4bb2c53d70772a6176322200f864b004ed914bcc3cf2c", - "0x9a4a6427c038efbb77e255b8e74df6f897590f734328e5be0ab6b16a6ca58e46", - "0xcf683bc5fd50f6c444a84a5524b3e6ba381fe62c39828650f8c70d9b5b6e8d47", - "0x3282bab4eea18b9a8147d6dbf26073882e7f859b498b2d17608cc96548f5ba7f", - "0x04684c3e47911134ccfa142c85d283f26ed315b5818a523a79e9be31c17b4dcc", - "0xa8efff633914b0ed52a2eb3b75d6efbe1efb0f640136807db13d8809289e40a4", - "0x4502554b0b48e3230e24efafc4f8eef7ff50347cea1a27a15ba46187ed0fb2a9", - "0xe0d6508774e4d8772bfed391286d5f13b986518dfe49d6cc9fd55c415e2382f8", - "0xeefb070835b6cacf8237566bfbc77b177ad0e3e6293587d76904f5cf56cfe62d", - "0x06162414a2b278bf48122286cfd04e83ab148c91ff45d5b90bb3a55d374debb1", - "0xf87fcab4bf30f560c5359ee594e263859f1160f3ddd4186918093275e271d520", - "0xf3ea8332782f88dfa789e42eebba3ec9672589d090c557e36e05c7eda9c7372c", - "0xf05f9c5ec95884e6da30f95d56ad58a025dd696215ff57683d6946ebce25d497", - "0x6738c17f58a1e7d41a634984b98a5efa47e910640da0fcd80d2ad0603c0ec9f9", - "0x8c2029217e14a9bd4dd88eefbe6ddf886d30c56df42035464a5acfe567406dcd", - "0x5d0434b926b112a81e7276b96d1dcff0391e782dd68003173a5d11701a8fc190", - "0x4d9a5c9209364544eddbc545822bea83af527fa1f7b24dbedbdda61b69e18250", - "0x3e5800a59c58a56bd2cb7659db0705f45b6b8e827cf06eb0fe98586abfc83368", - "0xbc3f4d3a46d5fe6df5ded66fc47b5b73baa878c9b8fc3798e87a17995614c515", - "0xf715cbf347c5308a4d50c99eeb4882c6244a03ca77349d126337ed3861e454a0", - "0xe831c5b327832f9440cfc795e7f703cae82648704d05f7bd41b2acd4e07b2c1f", - "0x46c6926581d617ac8384583726ec7088f1e0df60bb075a1b43ab51fbdaa108b7", - "0x236eb9d731c98bc8407bcb9954e3297c51ed6a116f90f6d1ccdd8f4c89bf5dd0", - "0x6ea6994bc6b93be59e0e8f48e32f2afbbcc653d4c1b845625b8a5e280db809bd", - "0x3af35cfbcdd184c7579a273a73361271ae9e1a97ef89fb1f0e6dfe89a776c237", - "0x7553093da896b06cda700a41c0233274a089e633dcb5fd8d81ff0393491db2c6", - "0xc555ae61e8f86c775768be4a07045042a8d5898ca6dac14687327b89303d9ad2", - "0x4fc388b57b8d35c704e8c03be70f1c9ba03e638ffac704791c0aeec6d3dd8e2c", - "0xfd0ec61b6a525012d03781c254697a98ac0d4b1e55f46e3aa1ab819e7a90436f", - "0x1d7e68aa18a225ddede2856f421613f88872e89a7024919590930c43326a5bf4", - "0x37865c43f2db20bbfd51a1440e7cf95923c6b980ac6b7e3173d3f867d60d9b32", - "0x44de3419b85216c1d2ab63cf3a002c28835dd084c2e3ee0eb4ba92dc49d5a1b5", - "0xd5fd4d94d504e021eb7865b8aff7ed53c6afa96970fbacd678c2b78fd8c5badf", - "0x479043958f7b84ee3c20a9503fb10b3ecbb895b2b4eb4f69b3ea0b5243f881c8", - "0x683669e82fd55e4162c00a97b2af897395e3a1d3dc51c7f12f4e01e4e3cc3ef6", - "0x9dfc309c9a3382fad72a40825cf621e1dfe095aa77e3b00bd5a0f0c5445d6a34", - "0x63def4af1a927f696cf1abaeba3c172de583cdff6278d8db46e23ac8063ac042", - "0x682e98b0482b1282c896bc2920ce48328246d8d3301b5059988325950f19e0ae", - "0x929abbe6a8ebc0ac32f5ec6a8c1f728d733284e81c02477f606163521d86f642", - "0xd3deb41a543048541beb8b96a1f5b029da6ddb513327d025a5176e95dd4ab1ed", - "0x886432bd185ec9c30a459182ac4467aa9c0f590de8825712c8fe3d9cf7bef9eb", - "0xcc9f64743d0672261a614e9e5c09e9f8416d754f9c536e456a08ef885569a39d", - "0x55bd4b7d2d2ffe8ffd7054d1c8f912119ae793a23dd2d9a10f0ba94ee4b8ac9c", - "0x00a86e2d5dcaec027c9c49853eba467e910f39b4cae50bee85c40b48d34313c6", - "0x89ebc269c4a123f9622e89fd221d22776def13c4a9637a7f69176504ed48ac2e", - "0x808d7a4793aa0afd91d35a6a46eb4f3ed522c77716fbd27765ad2104d2638d75", - "0x5766e58d79181a27639e4e2b1c141de7825e6abe3996d3d06a518bc87044abb0", - "0x53e304b2ae212fac8b059d283f8f97553cb16fb3332e8833305a32db18abb5fa", - "0xae7cbb3a3c753f730905201d09056662cbdd85c288fe94265aec6f1791ecea09", - "0xf6521ebf26b89ec9e3f437a8e3f60aee8063a821aa8e2e0694a90835b782b2df", - "0xb1e372bf9048f7e44d08b12c45b0a17028571fa84238954760da69bf7565cfa5", - "0xfce7f2160459a7e6aae2c85d9d48b5005179c05d703ce890a74b21d993fdb05e", - "0xc630b644d1083d77a698f658819ff7440c3e688aa89e18480167e651f8d1ec67", - "0x15ce3af581eaafaf4456af97352c4feb66b25aa20d3bd711221bdf8532639406", - "0x84600535f9a3338270d3055cb823c2d5a3e7e8a0ad2cc8be198557ea69d15c01", - "0x970435f2511428138573c6f1d67c860703ba5504cefcd675c0a77c37b17640f5", - "0xa6c0ac36032f2848a2ca230a5773760f2ea3afbd1294c0c8c8734d24f9a2c6ac", - "0x3cc9fcbd313d84afa7277112910029782b3b083500080ff34e10507b8b85c249", - "0x84cb76db3547f6ae1c91b7cf3196f8db451c020353776199f44b8b529c810ae4", - "0xff50e061106f378ccee04ddeaacb2aaf2af4ee90b1504f13a88ee325de268eb7", - "0xfc0d53a97fcc0a95f8681674e2f174f789becf7301c0742405c6cd28749acf3a", - "0xc0853233a2d93a9fcd5c67da4c233a248df9bd424d3765546c1ed39c42a437e5", - "0x8fdfabd694bd2266c71796cf19e8d4967ab9a42dc0d6aaac495c47ed4da9373c", - "0x2a8dc4cb7db4cf55beb0eb8662747d464e2907a3dfd0d58ce1067c85de2be0e8", - "0xf082d07fdff2f3665019d0fceece5b202c79f8c3b13d4f533f2eab2a83925f23", - "0xc155e24d5513d109af50284b49b723cdb1f812ded6d65eb1336cbc2d95b91f0b", - "0x435a39e77aa40920f0e7a67fa4547f67e2f099775f3f8a3db3dd1e48b0b2c376", - "0xc9a68f80733f9b39794101dc6750747cb6550b7858773de7e323140b1248839d", - "0x482140091ed9921f8774a0a1acc3644d2ec7b7019a5d50a0e8f42d9cc729e94e", - "0x88e75515699bc267d85f9410411ffa8ea0a852d7ee2fd2826e1260ca0218d497", - "0xee78dc1b01b7938dab9691b3a44d10497684fdecbfa4b175c3c688b22c9f563c", - "0xf7982d19a9779ea1077bf9cf6392057aa68b834ea3f8b301530484c0b9bbd567", - "0x125ef0450026699707ec50bee796181e783efddbf4141f3cdaa000ceada9b77a", - "0x3091b7728400f191e3764d5e9ecb8b4887e5e99fdc36b67d1a6f006c16e75ff1", - "0x169d3504fb8dd8fe74afef89d5eecaba66adc07f119f1fdc03b4b22419d6c586", - "0x6fe28b55a792cb900d1b830a047653e15d12374408a4b5d261e6b0daaa6a654f", - "0xe4adf68e5daeb9bedcb6329924c76eb6ff1770e93a7b3ad77d456bfb414c0b94", - "0x2ca7094ccb9beb1654ef7aac79af810e31f48e0063525e96ea4cc7548283b120", - "0xf087f8821c63865ada8f912bd4da2f6590d00a8a8e530c50d09600be91ea879d", - "0xbc106c39ae71e3d8d9c0b8869c63d21a2833cd09104a7fe13c988a1bc115dcfd", - "0x8310fa11f25180a7eaec83ad49e58f8344bc1b7b48f15ec12c16afb4399d4b28", - "0x5d9902bf98d0edfdf77a8605f15dc36c0d9fbe8fc16330099d8491450ed97819", - "0xe1715793831ca9e851f293dca235f53d1985ade89ec0dd08d8478ffac8837fac", - "0x86bd483291ed25a967f742e4eabd3f77e178be0fe9af43ce61595fd26e4089a5", - "0x3c01d8d2282c6406878471d453f97bc4247ba285ce0bd1fe7bafd21f617fa760", - "0xbfc1bfa277a866dc1b1a6739648202e15a90718c67db76af083ea57229e9ea03", - "0x1ab9c0778dfb859bc6e13cf425f29c796de5889593130ed9b591e1f854de51f9", - "0x235936c148f7a6c4875dfbf30b9a4101cbf329e3d682ec3bd2a6c79473efcd61", - "0x70c8282991bed0d69a19adf4c95312dc44f24822f59b915c8aa93a2e8bc322f3", - "0xeb2111dc14eec6dc250a382b529af8314a7d8a25bb7672c35685a53d0a6eaf2e", - "0x98242a2cef0a5d9258fde45048730a73321b46af2d218203bfd3da274bc3ecea", - "0x41de7ce88b052390dedb6dae965ef4b3254dfdb91ef0cff77ed0f990e6d53d1d", - "0xb307a83fb32e43ce73d5be05b8dec5791b55ea97abfa2916c3a118540cd8cf14", - "0x19c74a02ae96e9581017b8d1845344c0c20f7cb8b8f1cc0e298608e25429ba40", - "0x8fd7b83114f3294d9ef1994f96cc5dc3309b80feb86d7384c4797bd88914b4eb", - "0x6cbe4c1f28f393db37851436a41d739bc6d64e32553bc3b74a6d390390e29c9b", - "0xaff1d11010b3a90a863334bc65678fd1b719a424271c6a384321eaced720521c", - "0xb30947d573b684f02f2bdaf32241f9984e0fe1ccd2398013d7f55d0de0e8db7b", - "0x2777c4133201edad3b7478cf06b4418573bbb0b35a94956489f2c207a8ce07d1", - "0x852612bd283bec671358a009c4c02f57d7b150c466a673ffb7094ab8167e195b", - "0xb9b88021540165e714518c5ea97152e7a57214c2bb30143d0aeecd650b69c011", - "0xfa3a3d52ffe85f56b28a7d3613c50ab16a98dd0e5b14690676a0917b0d9821a6", - "0x1b4251f32144ee3ff35ec96c13739bf11940a7b7c0ad7819fb14508e37318179", - "0xb47b35b1a9efb47e5267e75bdd43cca5730b1dfe7c74fe70c854c26bc67eac20", - "0xcfcb740a8d76d44484ac862bc7bdf6b932a76a1128c77f4543e3310ad408416f", - "0x3c01a05b0ca98646fdcc76b2a95ff1ff958f61aa6f7ff199bdda9e354a7de21b", - "0x337c18196aa613d56cd098d128126403cb03b5172175f9b0cb3599c76499c358", - "0xe1773100b144b6612c5a811e80b6c4ce002ca6c0afedf9e2c82228c0d499586a", - "0x7f10533e666fe853571ed79da196262e8a69c2cb99222d26e0165808ab6d7582", - "0x2532a4dca10fcdb5d33c84c0b295dc6bddaec6f29030f4a74585a7718aa04bd7", - "0x1f6c65ac839c5e76c955848ef97b3aa1a095b9b77faa155278f793996cb8d438", - "0xc80d98e457a316951cb28828744885346b14e545dee625ce24c062ae30fb7867", - "0xb12c58437021718ad76e64e66259186a53421366acf78f871d53ecceab7bfaf3", - "0x4fced8fe6a8c19e32144376daaf080b4d6c8a77ab8e7f91d099881fbbfc091fc", - "0x1c2afc3229797fcaeb2df0293259564f45b4cf1fba17c2e5e266747fd24472d1", - "0x087e44d23f6cbc2233738ab793cf30306c222445e2404e1346c1609ccafae040", - "0x75e290747c7001e7e2fd8d26ea54c3b733e697a6dc5832e9c518041d58810a31", - "0xe7e457e551cd6797d18ce084d19d4d87ed31d07cde475f2e25f5ed1b750c2c64", - "0xde5c26097beb3a1d3212c9aa0de1970f599a16ecd9197abee5b3a3b281e57cfc", - "0x45a1df846c4b8b4e2ff8d674d7133bac3e98098ca6b594714007d2e5f211950e", - "0x6617fad5c634c52d5fa9118e6cf0a53d5f13eec7c1ac9220f15ef53746c82aa8", - "0xd34a1393ebb316793e8fce4212a9853a4f44710fc9a9838caa605518b4fca573", - "0x3e8a846225e07e62bc18df6e31929b830aba74aa96fe661d5cc0b100fd999b17", - "0x3193c7cfbe7d2ecca6d37e6385d69463362d4b12e6f9e4d2f6ee996e6413afdc", - "0x2ce3aaebfe489553bca7435ae95401731f4cdfa2256a570f64abfb407f7063ed", - "0x3173dd10922eb73900cf8e32f91dac0ad05d347c9068905b549f743a8f16a751", - "0x62fd37c8031ef4693dc0de52dbe06c293249ce2ce4b3be0b7a02c607bfded1c4", - "0xc2580dae73e6b96af85676116914b8a247ab8b368ebb1d2d38640b8a726fe0fd", - "0x8025d1c443ce28c8d35974af5e31d934bb3b08cd10a24c95bbd1efc78bc7eb10", - "0x7a05e4e6aee417c062142c03a47a8be9674d57b445ec0f8629936dc9f5bfd52f", - "0xac55c7dc4cd5f7a90bfd9a386d598e95501b8aad159cdd0d8ddab691eba76049", - "0x3296a64eb4b70230366b27a448b42177c5cee1fa7913938d4767696a6570b4f8", - "0x478ecfbe71160700d04a9052cbb91d62920db80489534887c382be5399776faf", - "0x4530a0a6e3fe3fee4e79c60bd0599c76dc82e841523ef667885d4b1cd02ddd4f", - "0x25d4fa59ecec69d0ff70e70fcba3c7fa6ca5b0689048ce038141293775a8dcd0", - "0x03020dc01c0785c3e3fed74535db3aa3546916d25cd49876839632a929e51268", - "0xeb9ba2f7ea0d80cf7a563ce5e7edbc4ef638962a5a4c16f74ba8feca76668a0d", - "0x6a7a46ffefc8ff2edaffb608a0b7f57ff514398e54f4dc10a1d4cf218b20c7a9", - "0x5bc4c7f447e2821b1b4c94e2eaf754e9478c50d2488d246243b524e8addd18d3", - "0xd3eed3c14d29c81ec39a8ff6f75bbea5a8eae9f713e2e2e54bb6b824ed05028c", - "0x39429d962be1e6aa0b47cef6fb92c3433c54775718d865d5cf7110463613b7ae", - "0x51f19c8404e99f31c464e2cdbc5e44ed0d9486cd0efeea7894c740fae39ea641", - "0xc3695934786b04d41b3c5da84445a06e1fbb5a20e344146c1065845acc9abcd1", - "0xf177f104e6bb76e81e553ed80eb7064d3e6b74b2617c96a446ab9742e2d62002", - "0xe827aacb085e41a63526fa9809b3044f2a5186a04ef4e257dff1621c9052cb32", - "0x9fdd2ae7875a3129242552756462870f1bb831077f48b436608fbc9c11a0d629", - "0xacc8c222a52ca74e17aafa6f0f1d962107c0ab9ce4445a429ad955692d7c7aac", - "0xfea8015b875507e5621ad868954241c2b6de02545a2acaeb2f9109fa30384215", - "0x869cfeeb4898e17ab4850bd5e3797bc141f4814e5409df02725d345b57c64ad3", - "0x38b6c1377ada6abc07a7e7f3a92779907ce2f1064abd0b9be038d6ae51a4b276", - "0xf54091e4e9e9a758fdd8b00b9a78b4c91e17c01ce305041b4bf69d21c743fc45", - "0xd230e2b5c01fbb2ae97c27d70a8a1264c003e815809fb4240f7b500c63bfe82e", - "0xc126f31bd32f9aecb8012f206c64e6c05b60f863af3a9225c8971903290990ad", - "0xf6cdbf25100cc3839c4944180eb9f3f1beec798737a3f6f6074e612520d3de30", - "0xea3098d0600c35c4c62b440181092fd61676c207bddf3482c31bcd19fb352c87", - "0xc0c9da7c976544e331c40b34830f208b9638670fff5103d0c800542ee3f81b9f", - "0x5fa65f0d1c70d8340feb251a52e955a10151b0cb8200c00514b4a8df1995ca8e", - "0xeb44462413e46dcd9f49c3d5cb556eccc8e881861459fa35d83e256e7e007dac", - "0x3e44a1713f55e1f6f9130b8846dce91f710c1fb8c77298de2d09425c725c04e7", - "0x66fd8f8922d09de2f4e9dbd8d45c04a9461bdb5d88c5df9e897acf165f7634f5", - "0x6ad50a6f3f0db27728a9e948bd18db4d8ad025878bc1401fe8f9786446163bc2", - "0xe93822a027e88efdf7089adc382857f2fdc960c906314284759b6b5b6d3d4181", - "0x883772056f1957b772374333addcd927ca88de3f750ef89cf8dd4ba9f6f212dc", - "0x588861a7f2b707bdc3c85168ae2116c9775321b2d8c6f877309fb02e17a42c84", - "0xc8a88e9261c63b7a96b2345b7ce9d3a9b94d99469b68a400d73d808d84c5b0e0", - "0x1d7e0b13963d58e279ef24c9ce3d67d010dea519afc4bfad84e518a719f73755", - "0x057ab7682cc73ccdde80b76f64ceaf1702da7010953691e1d2d305daaa0e2770", - "0xb3e06d340bedc968190ec1aa0f7c2798472bce88eb07e016ab81033037b7ca96", - "0x6c4a17d4fbfd0ee8ced914ba9c2c83e394527fa36e2027e1b22cfcc49f069de7", - "0x9c66d88937ac802e5fd961fd0da8f5e493de32f6ff63bb8d2ab785e8f87192f5", - "0x3fdb9093f1a679d472e4ea81dacaaec8b3a060f71422ce815e3318ba212fad97", - "0x17792f6c2d5c2be0666702249fcb36904fe029bb7f6b1dca95af32182295f3e1", - "0xe6aafe170dac781c3e576d7616bf963dbfd5d1d27738e0cd6fdd759e6174700a", - "0x6321683aa65da9013794d27333fd3b7d570c4e100156d44e999a930a634a3cdd", - "0x8aa56c35f7c70629a4b9272b1391e13c080c97c03b3ed675bd46737119f341b8", - "0x0f8384a649c8dfc242484c669ac4a798bb19b89f85d4d245b8415aa4dad0711d", - "0x041669c526354ff960ef721d72306b3a9d5e5a59501d565aaf1036f8d6d1aa0d", - "0x0af7915a53ade49d28eaefc8f43f24500a5a12acd06f23c80b8ab675220ade3e", - "0x5aeee4a33bacd934feac2c3e6a46cae5d00cac6ff8fa57167100d66e5ee73456", - "0x44aa02ff76be04a0ac59b4491ae9a6ae8cd475fb058dbd4c94220d26d554126a", - "0xed5b8883a073d192663e45eaaa55eaa840155bb9a201065cc61eefe2917c6ed2", - "0x4d856173cdfb61fb83d755b1957e39609a915c45f3b29950acb4cffd012cc3ad", - "0x50af3f28ce9ce9e95f664d2fa59afa461e88e949a0584407a92c113828248844", - "0x2ab900c46ed0980623eaa1cb61df89ff92d949bfdccc568ccb2183f83ef622a1", - "0xf2765636da2615454790b314148be63ad8008d0f6880dfc7767d36b88b753c31", - "0xc5df53c2589fbb388cae91b2efd03c1c707615e05e12f3e681def70e0d913697", - "0xa386bbfb9634a6f910e7052e188a81c9a6a1a318d340703c8e29dcee4b57eea6", - "0xad19889349d7d41230cb039ed46289e7e9ea0fb76ef2ee427d5a05892fe680ef", - "0xda6802024bf8ce4c2152fd2f1c166868159a2c4c70df00b28ede48644ee731cc", - "0xa563da16e6fa8a65b523d67399fdb3b5492508901037ad76f5f41aaa174a780d", - "0x9ee367b021d6ac2e516f16f48961de800b89f9b7115ae616b52d746b7ba8ef0b", - "0x37aeefeb48b2613b4afac289022e1707da0c596d6d8b85e59505ec5a3f47b7f5", - "0xbd0a3c7cb0d4c60411db3290cd2d0cda5c21cf22d9e36b8dc77fb7f572c806b7", - "0xe5d875bca8c6da0c24c0b7ee191168e22af7c99d3b7d58246eb1675bd3c090f4", - "0x9365c55d9be42230ba376054ca9df4346803e63ea4cb683261de4c497f92b329", - "0x0b8024d771e5f167db261b3da6f16e745198fb5ff550c51e689c3387fafc3efd", - "0x9cb78e33aed15fa5b6094e978883d147e8329ccd7371518cbf6da96b97dc9f70", - "0x6f6dcaf8f0ae184c7c065e322e390f27e27f3c4c554158bee433430aa5319108", - "0x0c729da3730254b379cc130776a9ea79575e7cd88071423a0635aa18f4aed0d5", - "0x0f918fff241f4492e630717a91c58af660b02201a64bd14d3a577b1c9390f5bc", - "0x6a33af88b454aeb3fcddcfa5043af313158de701d5227915e2d835bd8f2eb7db", - "0x7344a8e8ceafb36aee8bc1e3a1ca73168f583ecc7959e72b8a223fe252ad60dc", - "0xf457f0572ddee6c71e79f5f8d0643e4b59abd1798ac9dc5f158ea75efaff389d", - "0x0cbe584ca5e7a45b7fabdda306eb5c0f9b015cfe6f30ca451065bb38541b2bfd", - "0x91f35848c79274053eb0294be8395082ce4e5c08b5e6560fb9f3758609066ccc", - "0x4999f6428a7e0077f71eb127218270468f57561da1799470cfd736992013e074", - "0x042f9db538d5b8344279fadd5d3c8da5b4b9b455ee1d94aac1606272d052eca3", - "0xfb28b022f556e4344360b479d809cdad7ba7ee86a5e4943928f1dcf3f57a133d", - "0x687178fcd4ced35dc148a0e142276524d03240f750fe5cfa3d034e3fb9fcb4eb", - "0x441172f8e8b24698a50668aa6136b489bc85b7b21648e29f8ed1683399e7c56a", - "0x5f8c54d03b4fd64a2e5b526058bad1a27ba26f0feafc914fd6fb01b7fd31eb57", - "0x112af02bf0fafb42cc9e7b2b3985c5be78c3320550768d8bd271d62743a3a04c", - "0xf84b6ecc88fdd759a1c2263a0a4226a753b62a10df3fd7f094a1c9df7ea5918e", - "0x54ae04f6da0a8351f4ee4a2e36e1832329d5b6dd22452374abe1335914b36baa", - "0x52ab4533e536b7649979822857b1369df6cb0299f0f4ab32da6b8a7d2cff864c", - "0x8fc44fa1f6fe9e0b96b1f72da8b9936419a10a49ea5c02ba543a22b9f32e0618", - "0x95ee4eeba33f81a8d5eda57de81c3617fe03f785e7d9e90c085b91fe23a57a1c", - "0xadbc77bb5afc1c93a42d799fdff05e15998a17aa17d477611d9ba1d68b4abaa0", - "0x80ef051da1139c8f714f152629ca8b4607e82abc097d5f67bf66e26e3ec4b83b", - "0x6dad58c6230b60017db9536548b99c725644168f55d4cb2a1a0353a5e948b0de", - "0x8baa0703e1a050c40f85dc850fe477881f432c951b1cc1b2b71ffb68ab7fe0d7", - "0x14ca94dfd343548e32ef5659c043d6e28f0e577fd38da1ee12f11c08e281d775", - "0xef25357970c76a8b72a6e52f49bc30651f711c7df70444d4667e80febc0e3b2a", - "0x41b8b4ebd5919dad3bc609ded524b97403d88f019367f0f4f622561131644ffb", - "0xb29a8ad1157621d0120aedbd8dfeb4b318979bd43a5b018bf7b9ce33d85da312", - "0x9ddf78b5d67ef40454867ed33de83a01cbd8c18fe09da3d9f991a196811dfccd", - "0x3604121f9cfbb5cf552cf8bfc9a7958332eb97131158e4f40f4eda481e553991", - "0xf1778830f694720a6f990f9d476b0f365e8a74880253b55ee16f5cbd6c8082a4", - "0x89831626d154fbe84a4c62c3e2638cd00e42b3844c7c7b98cfad113abdbc5347", - "0x650573f5ef274b2aeb40642e25fbd661cb0eff66245d7cc8f6fb9e9daa80fc12", - "0x479f6c652173efe94abaa850bffe1557847b26f286467013a4d72973e05e8e54", - "0x7096619d5716c34592ac2d9907ac28a74c6f6b1ebb1962a0217df82bf3e714d4", - "0xb7c7edbd8ae7eed58e973dc0750adfd04042ed56baabf372b111fce3e4b4469a", - "0x25529b597bd15317e55767b3fbfecad0657aaeda99f098186b41b70811f7af2a", - "0xd790747b09f925fd155b7bbdb5ccd89d873277163e4fe7054bbf71c0b26b8072", - "0x3aa0b221d1c4743a06692f645f38a8128d55f1c07cfa6e9711b0d2e0f2e0e738", - "0x26fb5017218cbe4250d2ceae751e99b9a34d7befa162dc248ac008c5d1221e71", - "0x0e4ada59854027601f8f81fbdceb95228db667eb65fed97cefbb35dba21d3b52", - "0xd3be75ae2da3e271dd85cd8226d789aa12d108a4b0d2681462f6539637572e50", - "0x6f041891c8219b508138f67c95a1765d08c5ec06b9ce585f52f837806fce0609", - "0x9e106515d0e80b41397b2e8e98adbb7333e76265917339a62063a07d9a7ed311", - "0x25f47483ecc5ec32f94b3dbcb4d42a4cdbf5c279e93567e14afc742a4619d3e0", - "0x5d81afc54f6b68bd820dcc629ff7e9d8397da56ffedef9addab0eec620de0757", - "0x36e192130485f248925d4b0d2fd98745a76099eb13f53093621d216d0aff0d6c", - "0xb906e5e33b63f6cc355c13b8461a260ee25376ee96909fad2c6ac121ad831496", - "0xd68e7e0d136e30f67ccb7c21e4dc43b0ad5536584e4b77c9da8d903a04e9d212", - "0x5aa7847a4bddda7fbffa62325da920a21a11524ac1b691bc3b55e4d1790f24bc", - "0x331f95f062ed1d38dd02b5ab6a95dd238ef97c5ee9777c938697340c902b4b5d", - "0x8c6a580c8b07567f747bf20946023c3b581c51075cce5cd5d47b0d81d8922135", - "0x8b89483810a49626f90846a0b49ad3e2172657dfa3003d58fa2a43d12c8f4090", - "0x944f9a5754800a33d903c8a464d602fc9da6af8ff3990c3eb669ac9cd17891f9", - "0xc75c82a2c1ecd875d16f343a58835d756740902c246d3b1deae97e49aa19f98b", - "0x1d2e0f2f87ff2b08514b18855c343966d42e0f1a048ddd3d316dca6e06292db9", - "0xa6508507463e53b3a840dd55ed9be57c8a56e1533c9001276750bdf19796f8ea", - "0x01eb6b636b1852e8f9066c12d4e6b7b06b90a325be4d97e08f7f560bab4796a1", - "0x8a0d77fb41f50808ff0a46dc9f3831a2b5093f55ec2e94a3d2e92373ff3b5695", - "0xea3383ba1d30891d1e236db2b31373541f51a9e5c4b4d017cc4960480dd20311", - "0x01129e8d7eff516a225cc0db090e4e38362d9eb2d0571ce00f4417836de2e375", - "0x92feaefb7f9466814a0220e536fe5ee73560507d071e059827d406329e609f87", - "0xac149150c11b3bdc660320a0e955f154fa3137549a73951207659e2b903c145b", - "0xcb68cdb224f9b3b0b0f3ca0056e70817146c9ebc75876dd952e6ca8ea896f2ac", - "0x157565282a12d790452e343c9762c2124456039729f3a8f97a2cee60d85628fa", - "0x42eadc181d59d8d8b26b37e0e9c9052e45bde72090d330bf9cf21d9d3c7d9048", - "0x1ea0ec8879b200e259a3a2a0f2a7aa292301784fa422f7c32ed5d945183948b2", - "0x06aeb2956be9d74ae4ff0b8a6c1874ed8ba46a186616356dc060bea1cbe5c628", - "0x814b0382b52a155a4e35639aeb3d8c859afc4fe5d151de3b0f1bac646e40f2eb", - "0xb30bf3e85be41a2a9e53321ee9f03c7078516c72c7e2d8e7e3134de709b61c36", - "0x1f97f5d334b5e6ebc72f5b846f24c7911f4fd1653f89b3477ce4b8108342810f", - "0x84c6fd181c28ad159ff18d203d14f966668468c9ef0a5d6dbd863886a7e0af1e", - "0x4b2e6947d55ea504bf205bae9dfc0e5402efd33757eea4da00a8ed2a6a3838ae", - "0x85f31d45128bb91cd3490b58a0a641ef77246ea9c83de30fa89b621307fd96f3", - "0xd362f5e6f8cbb216e66eaf49e4df25e01504ac729da86c530871a34e11d302f6", - "0xb7860983b043bc13ce5a27135eea12ffaeff71879404b18af3079b98da156bf2", - "0xf2ff82a679b2b90cb9f4a3bb903eb7ab36ee1c47cbe40024d8d570f5e16bbf4e", - "0x7e34a7e6673146b6bb7f78593b6093ef15b8e9fd1271b33dc5f7d17876b31871", - "0x725c97f83b4cf213296ef353e1c8d64854ef08983fd61320088b8d9e2ab33849", - "0x18085800d10fc7845148835d0ef0ac980a82eeafc44e12bfa296f9c38fc6e19d", - "0xc6c3cf95310cfd0254f0f8e93a3c25bad2b17df04f9c51a25927b80d02e06b69", - "0x822213c1b03cf68ecadc0b7572d37266207d5fe4efd5e56a924b0a1aab8a8e84", - "0x1ff46ffd2dd880cca76244f6af1fd8bddbb4b9ec58f86639821a16f2ff08f3a8", - "0xe9d00df19d716dc859922f2e6c907263191c8e531498ea557869ea1115317c95", - "0x6d3f1edebd562e9d1a236ed7a1d9104fd8f5a086cd78d35c7a65f27c269d98ca", - "0xfea701ced5bca0d5043512700598d3eafa0b89dc02f3c157cd1d52bcf4d84d9b", - "0x556c1cd8ff3ebc2ccd4eee9f1ad3837e346ecda961da17c0ee9cd4d084a47653", - "0x5606be2fba065424af76c94d4156ea82f77d9872ddac7a4c2517957a169e58f9", - "0x8d0223425b48487db1b371c966c7688435f4b9fcda75b088f0aac203d6657cb1", - "0xfceb55d8f3048a3f2255562e0a9ee342439253abcd048fac151ef4b910048e22", - "0x360f76e4f2ef49632e3bf8cfc3afeccff6917e98a48d3568148c3bb13f9d2d7e", - "0xd87bbf8397204cc2af883362646b0ae95392303935ec1997ab052c194e0ef117", - "0x9f1dad9dfecaaf117ab5277caf672b70540578e703c2024d3f23bb7cf8d6410b", - "0x5e130ccb23b7b66dd2fbdd912d6006d2820071dafe2890f593f952028aaa19c0", - "0xccd2f182107992fb9b002b87cdf7990cb2810b202b2ae5d6ef5e0b3bd69632e2", - "0x4b40cd83205f8b946ca9f11fc3306872650e658e631511fd4080bc8ca749d913", - "0x652acc59b71ca20bb65ca195d1a4b3e177f6a3985bdcd6120e1a45b7d4a0c7ca", - "0x49a5e2580ceb329665244e489592aea27d54da8189a665d9435e037ea70c46a5", - "0x379801356beb3a8e5fa7311792c69c7ac1f675a9c08c837f9f0e9f53c243d6a7", - "0xfeff4543c70356b7d9767c26b228cac8452c95bc4875e92a60d7e6fc50468667", - "0x82eb18827313399cb3b0d3c975eb9a9480c3aa5587ce72d321bedccaaab56115", - "0xa644c582a751a6d8cbf30e59d6e770a6f441c017b486cdb23e6b9c48c614967d", - "0x75e6f4d4185515a3c58dea60b55d5e50af053bb261db2d3de00f812a4072ee2c", - "0x9018506876afe91cd2cded037f41c5ee8503fede2a59c47dfe7ea1b36c460f73", - "0x0b8bc06bf211f715291846c6c34b805b6aee91ef4e8c63cf3d15ec79b44ddae8", - "0x150e43fee00d798b8611d4e03838072d8b9c8ee3771e840ee2c161a541d6b643", - "0xe98c938110bd4227c660a9bdccba3b5ce5b8414d909514502e8f354f96abce69", - "0x0fdc3bd666d74a99e623f6d4957bcbfb17395bbdacb52b18ecf7aa5d2e4ad2ce", - "0x2c72d738e803c0522b5f424731ad6327548ef08ded4caf4ae0466b2cf171ac4b", - "0xa7709a082f8a2ed01e2e88c4a2d18930f510fe5b831d2a1bbb1a85a858f19e54", - "0x8ccb960803f6b6e87515ec20a36734128da0dd6e65845013d89996070d3cbc69", - "0x4ab2e49286c8505f32ca54314d1b5c3b2952578d191c69d1cc7ba78a000a01d4", - "0x6bb792b52949c952f20b9d11274c8a05edb44c4070d949bdfddcb0eef2464454", - "0xf61eccaeddac91487b2f5d7b3ec57d1ccbdd0e1307d2f624319fff525149941f", - "0x2dcf01b0d9ce31c13c20959618f2e5e0c7f8c48521f00c12c99d28bfcf202f57", - "0xb1e83745e6013706904b7322350c8b453aaaba0a61ba89f35eef8f19759ceeb4", - "0x8a2cd4944bee70696aa216b453774f4d915dee4bb78c8f7ff55410cddec318fe", - "0x49a78ff97bd4938cd030df23e5ff4d84ace59ef3fdc0099941d8ad7f82235894", - "0x61e2096919419c8856a5473f135f4f9febb102f80eecc90ad60baaed77a99d29", - "0xb95709562a26564e57cafa00d0969305ffdd0aea7e523ba90957a6cbad6ceb70", - "0xb7a6438f176aed77a9c6470e28ab8cf19dad8f77dd3313cfbbbc9276761f454b", - "0xc85a1c37b5a4e1e8ae67df31b369f0b44cdcf66418b42206e5b4a738a0a0bae7", - "0xf034b0d125eb1bd1bbde1fe413aef80fdc136339eed062b97cb9da2f4bc94ba5", - "0xcddbaba3e9e1680a2d1586a1e9e2268afb51b4894f2b41fb2eac5f667b6cb655", - "0x971b2fbd25a97bc710c30b6b98efc90428a7e423c09fe772622e7ea37d18e49c", - "0x8571bcf05c836a59a5d3216634ed1f691edb7bcddc7b5412bc513ae9e1fc0423", - "0x0543d8abe5e1bd541a5bc994b0c7ea5a556575d2e9302d1dc36348ebb7ab9e82", - "0xebd8f9095619980043f234bf4f7682534ae6a15b4584e9d1ae524138471467c3", - "0xd0699a768c873ca5bd615ab5b0fd9c7c6c649c4245b58cb622210ac2bfcf3111", - "0x35bd5a50b11033878751d985459657bd4c0206584cd1def98a355d7ffb0539f4", - "0xd476d2b8b62b720520ba0990137629f83db9c6896f1e788fa5bf08614af1f2bb", - "0x2a8034765c582c07580c0da45c4216bb513171d073a99cbca2fa2adc0c05dbf8", - "0x084b45a575706daccfbbbcc321a9546b0c911861f2639d81f210b77680f60fb7", - "0x499bfc54ba17718aa8f74ceb412dd9b6b6c7d1cbde4d8ad2385a5d5d77e98915", - "0x8638684b06607afb53385f477f0f295453f14e36161da6dc7728336475303a9d", - "0xa686ad8ccc3507627712d203f7ff3be65c289da67269388d0ad8949ad3a5a589", - "0x6d262ff8babed3a603f400501cd77344585fff92e5bab5f5848873042ab87cb0", - "0xb5755234055b3534fceeafcc84d0d77dac220d3466e1dbbbe7d7d44c345e1eec", - "0x92a54b989a1aafd36f979ff0f1fc73f9b1508628f054430234f4460cd9f3959d", - "0x1a48d9bb57e9a70b03c066c97ff9520c177b8361f2b3c343ac71fd8cbdbadba5", - "0xc9e103919e8b6827a1fd57a3e99155a24810f524fb69a7e3fbf486707b2da690", - "0x22a5ba2899ce696fe691a2c545b98ddecb7c0a844cff2375e50e0a0f0f9cf9b3", - "0x154890ebebe7f014aa88f8da52c9713e2b0cc8b9b6c7d29b354afa000c2eb429", - "0xf9a72e3ce36943a442d0dbc7a869a6344003d6a7ee4d344c1899ab8b96746a6b", - "0x270fe45a526aa3bcc8e4a5be075610ae9b15d6fe48b04c6ff0c82a1c7f56e0d8", - "0x9eacbdd695faa85bdbff10bcefcd5edfcc489c3380cb1c73ab5ca6cba2492995", - "0xca15124d292e0465c7e50276cfd374c82391bb668d68a3b19c67fbb9e68b0bba", - "0x9a8cfd3f1b8ad178c982feed1fc306dc996da3d928e99a6f8ad240e55f52cc3e", - "0xc173b14778977c5d6dcb1079023c493406911c6d6791ad08104f847323aff7cf", - "0x82b3e9b9a407ff0596aa7eabdeba10dded85fbf3258d12949ed4f46484e0f649", - "0xb8a009c28a2328b7c95531bc64e072388d797130652ea0a84159c801af562a5f", - "0x80e45ff8b60d28dbb45530b7b56e049e605d28087df7133766de0e151dfbd01c", - "0x7667e9cd22c5427e6f37f215b1d9cd90b2659d5db0bb499daa382e09fcfd58e3", - "0x825014f354bee6aa4cf5283f86e8293c0ea6faf07862abe2cfa12740a0d846d3", - "0xbe9116073311dc303fa29f7a226ff79fd39ec2ffbd2d2270652b972a701aef54", - "0xb3fd19eb6b0163156a350156b15e660853f68a903ea6ed758bf80b2fbc5a655b", - "0x3c5a408909bf485e8c3d8e683d8ae4e7b7149d1f01874807428a3f88e1293d4f", - "0xc759f51aceddb90e6e4273fb9439908592dea649f5202f530d15d455c5c8c7c8", - "0x1fc97f79d1b1d72da309bf2027ae193f0594ecb77c07a472421baadda577a24c", - "0x09c4fd284e5c0672ad031629e58fb2776d1e772c6041c91433f287304dfdcd1a", - "0x8c6b40f8700a0638ca5b7bb003c2de6b54e731881a072988cb78ba89557db1d6", - "0xcbc701507f4f970d8dbf15306d6ac5bdd46b6f58bfd2dd07db4ee01c65aab5f7", - "0x6b911e52f43696cab429c0e511fc40011846af92a2631f4d3f2cd040567f021f", - "0x4fa5373f6eeacba61818052da8a9787c4ed86be0bffe0672c0aea792cc3d2d49", - "0x518ceeb36cf1a406b89040ab0c60e380068f5f6571d042d3bd9a9d7af1b12204", - "0x82039214db7d3beae631682e9249b06f98e16153f864c2026a6edcb0727a6532", - "0x9a9e534af83084007e54dadbce2a0224008a8c42356c2ea650606e8e72d2ad8d", - "0xc4dc0b662ac8d4d987b8c2c65cd27fb8992f65d598bbc25f017c45b7032451f9", - "0xa921f124b5275f07b2c064d477d5779963096632f03c54ac9c87917bc4aa6e52", - "0xb4fe786c84a19c8db63117c421ce53244436d0c04384c62d508a88589f4e5c83", - "0xd57ea382802130e3ee8e7671be2b40a1392ebc6528e2e10d9d51f2899ac7ea54", - "0x224523fcd11abd078840803bbde2c3d1d359a0c2cfdd6f9110a93ac4d3c49845", - "0x5da21f79c0f1030e2a5dbfa283becced75e7ff223ef14a6cb5527434503ac71a", - "0x3e315746e89fd3e662f4dfe28245457c3b8a4ea6d9450b93639424a6d8ef7d41", - "0xe142bd09a6967021c4c5a5c7491b0df3b1bcf13564ac934a2668e1b2252e4723", - "0x2e9ab88b366cba155d1f6093e4edbbafd80032b07a192a35942aeea1bf0f1074", - "0xbcbd1b446853135abae9f330d63a06119a93fb53b63c621941f5a74324c384a1", - "0x7816de8933a433aa2719c99db24e692e6ac6551416b08f803302c7751fcfa3ee", - "0x52c53032dd84842dff6580013ab1edca7c251598ba5fc8b903c40e3d9e537095", - "0x771222b46cdcbeba729436ef39f81732aaf4893da720c1e7b59ebb3fd38ab9d6", - "0xfc440de1896e1b2848f2cc5c7d62c0a6b0019008de8aab41df5395586d340d4c", - "0x0df9b803307465e54cc77ee60dd6988e3d713d496ac0209509c5312ad0f19888", - "0x88179429086844e69122c70b6af8b689abea11e13ba0809743532663e3047c3e", - "0x503898d86c4038eb76124e18459e0d57ec25b177fc79bb87eeccce3fa75f0037", - "0xf46efd490382e4e4a3ac0e10926b46ec56e833769acfe3879acffb13030cfe9d", - "0x6efde5293a9d22e688165f2a51bb83e3b53584f9ef5bacc0bd1d99f5c7df18d4", - "0xc03dc313d9be55674000d061851c139f4c57c6fb46106b98c3442832a51c5f3a", - "0x8ec2accb7c89019d0fe2a31ddada0b8251ebe88a439de9d68be73c0994a6523a", - "0x36ec73d7e8c0181f6335c668ad7713f8eed607e0c302b43413f904b26160bdc1", - "0xa53e90d88a751a78397adc6d2fb4f93ad2b38f0ebd00b32932c4b2a39a276d9f", - "0xea2a25111ca37a53c8fade1ef65097f0cb85e00881b1ff201d36c9151a8e1a0f", - "0x8c1a24ac75821a4b0570c22b682c6030c678244b059ffd4b21e4d3cd05afb585", - "0xd230d46b14f9586f7b1947add191a69ed381cb6fdaa9b28c28869da8c6724dc6", - "0x4e8c717de6c94b4be274f052d9df627c945afe18df35c58a90a035759dce6b48", - "0xdefefe94ca6d93b78ef9f92911eec4c2ae0c10148691755f1624f86445a3b2b2", - "0xfa6c031ec69c7dac9f9b6524054806e2fa524c3200fdeac030d3bf7029ab776b", - "0x9204683278cad559a3f9ed2ec1f6539f34efb17957830d0aaa92b73cd0994732", - "0x2bb26a0cc5eb7424033e8bf552c7964573a0954e5b6aae32a51d95d951fc044b", - "0xf6e3827687af53fc532ba163d7ebd5ce18ffa6384157982b6dfdb1f4be82faf5", - "0x627bda246bf499f4498e8c512c8f601e36a1dcd778f21a598736f83b5b33fbd8", - "0x5816773273e4ef45fbacbe920dc3420602d8134fffe302459891cd6e65627f6f", - "0x7cd637fa8a5bb32dfd7c076c34e0e536d7c6710f1888f5ec18d64191a9930744", - "0xfe016a6e9ffd59237b349a817ba8c36f7775fef6513c4d430fbfc20ce72fcb1d", - "0x7c466b30cf23cb7115a3855d9d9c537c29f380ecfd7aaa0a6e59d9680bc43971", - "0xc49551e5eb138d28f5557ea8e8a8bbc7c058084ba0edf8f6bf64471928ecde43", - "0x7366cd68072f52c5644dc9fbe2e72339705dddd2b03690dd748265723944e754", - "0xbfb7c3bed071283cc18cca4192e2bdc1f97aee9b7185d493a29f20ed4d52ae3d", - "0x40c9fbfde126c8c92cf6d15a18be4b5a4da39ff60ce45cf5e9a2c1782244947a", - "0x1358333dd1b82e7c805dced5dcc2edd5d5784fe8104b64eabc598096c26d05ed", - "0x0a9777f7711b6d9f6cc6ad4a78b716199b57f026d1f30f04ded5d2cd8286322c", - "0x7a848ef083a03e4112c75bef258633779cc495df4ac5529e12c8eadc484baad7", - "0x17025c4c255f509163d11df3cac35c1de823e5ec71cfd66693393882d81fddb8", - "0xed0a2fe0dfe85c7d606d0d1b355518a48220e91202ec1c1178c8b37c86e1c9cb", - "0x4674e5e97dc0c615b03c34c702ceb07aec48cd7e8edc953a188d194a8cab35c1", - "0xa004c31b7a6f6511d7eeda4c400c5ede847ce2ea4339641b6c419f688cc4e574", - "0x1bb6c124e94df05e091f6aea45e7658351fd21318e91105274a15be4f7a7a632", - "0xc365b8bab2d6b902508d075195a1e23b04c97e40217c4ffa49fe16bb13e5b575", - "0x93c1383e2ab52ded5fc86e1b6f6e292c0d0977e8756e1fcbf87b099682060e25", - "0x2921b874e3855d9afca966d5088e9b1cfe59f37db54bf0c1e8bc5c5a97e7ef6c", - "0xfee916dad70495cb45c6ac632241a73869f0f553bf7172cc4e63fa382a5e1077", - "0xc63d63b401941d11edf755d7b6564b4fcba1f84ed99cd08f1580faf2c224478c", - "0x8069f00ca36baba06b310e28f6873e78b3ded25b456d95dad7eef4c517e7d096", - "0x48dc0968af32e91a8a3f252bc0082d7c22f8dd9797e4fa774d5b5365386a4602", - "0x861ffb24def147c4577aaa332aa2b5d3165542c4fd1e1882a9050e5de10f1f57", - "0x9fdfb7305249e7a38068f8099b74c5584a2f2df3f0514371f20042a6c0d2c85e", - "0x90212f15c5d6b686810e1895a139bbc26141181c3c472ee28ef9904553a2faed", - "0xdf967dfde0b63153142628dae7522307afb35b24146d9fc1d35874914244eec8", - "0xfb17a9d9e9a5ab6d742f55c0e8d80c5e5d722e9411e84bc47b1d2fe5fc33dd71", - "0x56b2c30b802088f9ebf0918c7ce44b50a96a0eac98f89e1711f53452006259c2", - "0x4c38b33bd4089a48a65369955540219b44af520000b8f8c346bdc96d47dc2479", - "0x7d3487d3823204a94e557b7a942d7c657c1b49d9f40f2d739a9099d4438695b3", - "0x2f82f94eb74aa2c0fb91bdb38ba0b416ce7e033c7e2a74aea113d201b225e24d", - "0xce8ac4b2f0f74601280bc3df0f5955d033e5c511372d812b36dffbca4b2e4736", - "0xb6ea6c89e91ecca1fbd723188a77370e9d23c3df8aac282cbcbe000b13d31b57", - "0xb8b8b7cb900482562227a0a1256ddbe822cdcf134a196e29b1aa6fd92423a4ed", - "0x0f47ab9f4985c3175e0a30a237d4f7c42db4a58f95344a86a818e459296610fe", - "0xc26a55a23eb390fc83fbdc9f07ee3ce09e8a2b28bc09386323ffc0844e13be24", - "0x1d5e97a7fdf5f34192e9b6dd255c41b63e24e1b4ef4ea43ae510fd1f50abb022", - "0x58b6120c4f0a1004e51703e77decb1c85bdd40bc83654d3f8ce5f7e3b4b6ca25", - "0xa2f4b27f5641d9294ee0411bcabc574f94b294ed8c50c9ae0c3d58caea7d6ba9", - "0xc4d6d3a8b4debec7ec7f3e2a6e1c64de46ec1187ed6e87fa2d87412c9874a3a6", - "0xfb59d9b66471893988d0fed17898fe2b7873d85aed217c20b6f438ed70fc340b", - "0x850df664737f288ae16d701878ad04f399b367fccaa2ddbf975d77868bea7cf5", - "0x4dfe47362c005896f82ac2d02a12ee9418693cd2f5d1bcfdc321980897171993", - "0xb652952de1bf9e1174e5f6a37b069b437792672a37a9e0159c4f36b6e64306b4", - "0xb72dd6cb5df1b00dbbd84e097e2da79af2ce60559697ab4c93b0a8b85b2ee406", - "0xb96fd4a94ac30c10f757691f7f06f25a4900fe424f4eb7ccf322e2f95249b914", - "0x99fd442599036f161ccef1ae8088c5ef694c1819f5b76d9d2fa8f979935f69f8", - "0x3e53574f6ae31a45ef928f9c37bea6c61e6d728a5ade9851567d3167f5ca3314", - "0xd7e3d08c5b71a7ad8338e8b51ec54cb11ad4d643d129a371af07376f8c47c1d4", - "0x1033c8aed4ec46377f75cc9a6b3297e1da0a7d1e74df20bae9fdf6d037afdc28", - "0x924d621544f3301f9e212fbb95872fce9eb4a4172a11693674de733bfc2b0018", - "0x7f61884149ea4def1444a70c022da1c23f31ecc51bb175905b492236a57c7fde", - "0x40c50785bc0665ab4eb3cec95405e17510c571570a5859ead804530dbcbd1387", - "0xf806491cf778f4796c0f73428e6eaf237da8488af99e9b61d72c56fa03e7051c", - "0x7a9670842dcb12c66f11e357a84849cee227ea5a7351e7c6c9370e9ef2560129", - "0x1c974da4e1073157c10deac8b256c8ced77a030e0500b2b8a90b6ca1d32ab4fa", - "0x97ebcc81ba9c1e04865ee4617daa967dec39f65501be21fbbe929db869d57dd8", - "0xa36e4506065d8b9c662697b18ffe50ed2f6ccfe6d07a065bdad048778cc53668", - "0xb9d5566eb0d40bbb03114d333d1d1dc85b0e780ec63229f3b93b2c84af5f9509", - "0xcd16693573724880c3c83834d516be65c35a861b76b43878e28aa7fcbc961361", - "0x4f60ecd7811acc087fc4557fdfaa1a0b522fe30da1cbae5e7740eec3cff04c00", - "0x9e58573b152bf5008e0ea3fc0d64573211916521a62fb08ba0f1b44c5da12e7d", - "0x2c6693cfd7e5bf9a3d8cef9e186b3da25d07af983564ced6238f9191b020f105", - "0x8cc6149caeafef85ec7b2456f33530459c52b30a5365a2a0022b1c308357f7b4", - "0x6f66863bd9909f687523128569cd0894c4cf41e2eddd5cd9c20d30c446b1711b", - "0x402317752053e7b6d7e2d5512d6397112d80ace0873f5f9d32c023a402ec03b3", - "0x2fcd50a79495057908bd34875e3531e6298488f0d06d043fb6fb0b140895d379", - "0x533ba9669dcee2c6e35713c7eca3bca168a326a36b0e39fcde76cbd35ab3d99d", - "0xdc2e86503e8066bc5fac91fe63544e33568a3c744967b9360458101c3d9df096", - "0xf994b38ba312d8bfb00d428b13a088738d93965b525eae81b45b9be344f99fd2", - "0x0721f3f772958d6a58dba638453b8d004e0c76dc8b4cf6d595b712edddcf002f", - "0x3c650c2c7ebbe7879a15882c3157552e8ae1adebea8f0c65a2dda272cc4ed838", - "0x649fe38e87546703245a7adf5925e8c7a07942750e14d39553a56ca3fcbd8c65", - "0xad204bf42d2a444faa864df8e9d023483a6b6daaa8001e00bb5373a45ed064a3", - "0x2c5cdc73d8ddef2e5c0d47358ac180043e7e246e590a7e8ad2b0a3f9b4e9375d", - "0xf38f6c364bbbbe626e849ca9bb9324c54cf0ba8dfc0b2741a3ff87ce7734adbc", - "0x317efc1cea774849d6219d31c8464a15956da4f3810bf15d4353443f79d98e75", - "0xb6796dccdf4d3cab16b5ec9567237cb988ee94131f3262c2a581180b775e76de", - "0x1fde3fdf2303d080d400c43345a424f50f6551a6a06ad50c6e277d49e8034df3", - "0x4d7bc44a3b56f5e69fd3e5e8c0cd8f5f839a775c4ee381b4b1d0a36656cf91cc", - "0x6051b60fdced0c51aa6a1cab2418c8f21c5d174109d514a4c6de758b2056611b", - "0x3c2f7be830078af3c2c6d1557b3da74d1d5bbfd8094f98886a959aa71ce70b15", - "0x8f296b90a0ece0a3dbec19a801072497c5840f9c0491062cd402db00c2b69f2a", - "0x6c14c4697f8291dbdfdbfea5522798e3f8b17204f80d8370e6d379e6ee659e77", - "0x4e98f63afaa50f8a30b0d352eb5fcb5403c635cf54b41545aa8b48465d23fb1d", - "0xad3059433e981ff12cd0d7dbc11a8d92a65cb39c6e936e9c7db5934d45806492", - "0x1cbb21f28ad2d191d6850c97487e5a733306f2f6ba370723fd5ed37cf6c880a0", - "0x82a0010a1b20d383bff0e5d7ba3751bc0d9161a4817554432558c5c2825babb3", - "0x33e54e93443e87c003d582dc51d0b9981ddcaeac4df0993877739651cbf52a58", - "0x1de8bc150f4142cd45b5d0784e5952abd8de7cba9654af959498c0fd0bcac404", - "0x3ee852f48a1a930d671e53c9c8d8c3c38353ee1737c093960c3f841e6c682e94", - "0xa9c6e05ec91e2a2f2f003419063fe033e37e5353c6e233706e29c08693e35eb8", - "0x649f7328064c55c03249d527dadaedcdbb4cb0e939d94c866844192d99469e05", - "0x3a407d00efcd5fe7bb765347b1a3f231b744349269b3aeb44099f4bdd068eb9e", - "0xa1a20af2f7e61082810ce7e7afe6118bc0ad95e9641e6129027f46af28048107", - "0x0d68fc5e58cacb2d16d99a0e9e612d674754ea51cbee2c68a21f4b0aa926688c", - "0x9b3e58144c014343271c9dc90daa8d2f642954b3eda223d64bbb0ac41380e512", - "0xd3de08b676d4f06bbf4322ed4340caab76e6ab7144c97af91c2bc9c749e65b38", - "0x21d626c9c38087aac6262b64f09398be6e4cbf246100d8c2416cab57e9ac1b68", - "0x563a450e35f40279f5946641a823f596ef3ad22a45b8ec280128546aeb0faf14", - "0xadd9c7128e14e670c7d21d6dfa5c09a11dfd237e90709b087e3329d3cd89b5fd", - "0x258cc0f845d8e7438a707f590f55203c6c51302cef4cfbf788b1c7054688da14", - "0x4309676aa14fa8244e0a089c7013b89c9adf57fa952295b8ddb23fc6545c9870", - "0x5db769765dfb41aefc0f40f06f3d005b30ce1f14f04f653e0c5500f651cd61cb", - "0xbef131c9f19572b05d295d7122fd1a09fe4a8afd4e20c5a0f3cd2785b7eb9882", - "0x3f235228ea537332a041ec75cc6cb5663edaa1c2ed1c1700273af73a5d49bf1c", - "0xc081811bb077c6ebe224b560eb6b81f3f813b26789cb06d96110071ffc25fcb4", - "0x912444c19a5e458b79c89969ed5336f2873267baf2fe729b6f218b74d269b797", - "0x5846fc726eb9627e9d070041b92d76191c4b32e315d33ad18121b8acd01634fd", - "0xc899f45494660034d343670856c13a32b230d047434a4d54a772132ddfe3e182", - "0x11a699c18b04e8cdcd96a43b7465f7bd81f8f64d7ebe79dcaf9201cc897f2746", - "0x8e09b134dc8a1735c060175e9688fd001974bf2e3baa5a8e88dc4c87365e0e07", - "0xa086797ebca0a1d446a9289b7eda920b926e1b595c288a9dea31ad225e6de86f", - "0x0cc04369b6036dff78a9856a5173bb2dde380359a8dbe0126e06d6e763a01c36", - "0x4b5efcac86e03d1f67774769b8bcc5d131c181cd4fa297eaa6cea5ec0cdfaa6f", - "0x47272a21a07ad5e14e3f97b237dab7e33344da4db5b2d31bc7cd0cc2d2c9f1db", - "0x9540755fd321d125b73cb6f1884c2f0b2a821d29362194f5029a5e7ba2d3ed44", - "0x229b88922fe52a78090673775f264cd665fe222002d6add2ed29b7ffd98de717", - "0x8fa2d755d5cc0efb01d9fd6f5ae1f7864404ae111d8ba17e23686ea9b6566336", - "0x33a8f2e0775fd19b1302b985bd6c29d4ab5fc63060bcf3df2c3685ab1b19ce67", - "0xf6d6bebb541ef9b84d779c62adb76774bb38a8eba3823e74e0790dc7401bebbc", - "0xa1f421108d49ed23996e55012613fc05e0f86e00f17251b1ff1e0824d35befc7", - "0x2cc572ed83dc6c604bb455ab050c550184a923f4b13815f06d10ef19dffb3c7a", - "0x28220e7d1a9583d68656f03ef4d6fa3e249c71d1b42698f87ba1fc582493e194", - "0xe8aa37b3214abb1bc167fdb6f10119a4019541f31c76b3b3f8c363bb138bd09e", - "0x825189c2c836dda454b457a03ff83d422bf78df1f368434768690fa7f51c57e0", - "0x5dad65d275e69478c81ecaec5b872660205735d9649ac020f65f5ea6ae972dda", - "0x84a1184d8f94fab280e0593479179348f9184d6fe5a2b2ea9697894c42574473", - "0xbef5a05bc7e1fb94465570144499672d95f31fa241b4c510011f6677e2bf72fb", - "0xd08235ebe6d79a8549bcd3d2414cd8afd2a3e2ca22ced226c60aacad1361ff89", - "0xbab5204ad45ec52860023e7474579e7c95397f3c4ac01db7e446e92c19dceef0", - "0x6c81acf2ff161d423a904c457166ff454ef41571d01e73d56bf9ab892790248d", - "0xaf4a603b808e3ddece42e3e123ea02defb9f8ef2546a95c5a617b6ecdb89c306", - "0xeecdbda25b04eb764e322d9a1e5eefad399c9ced8c77b1e4ecfbefcc90bb403d", - "0x9463f4677a2039ca372b61b16d5bcb7c043b26af04aea4d3f0dcdec7bd222070", - "0x27bfd92799b4cf9699d2bfcb158f6727bb986fc0dee780fc1052366ebc4e6364", - "0x63c3faa1a8fc0d531261cd241b1299d4fc13629abb4cd357eeb130505fbddf94", - "0x9a4535b07ff68862f3396b14b88fa07cff7abdd5744775aeeec6868606eb4712", - "0xae59e7c3e0a1df32f6e027da2983d3c55b4ba4d99e85329361561bd7f13ac629", - "0xcc5dc26b9be8fd8432537d967afe12fc668949e4fcf72d97a40f9214975fa57a", - "0x8f11634c83c7a43be8b98335ba617a64c6379f5f92664055c5e1620791134ddb", - "0x14ce2a69d844e6a46aa244c5aca9fb74c127f2151c7c16f4611ca030df365d8b", - "0xb06f220566a5e62570b9e9e49a8b9d5663501ba145b12260fbf9d4a18a4b19e3", - "0x6274f3cf553c45e6ba7ef644d75bf208e08a8c6325e336aefd35dda9cca3c4d2", - "0xd0d685497c2f2b923d0b9f1590a748da8c684a915a470db58c3105c83d8304e7", - "0xf37fab515f96e655f182f0b6e6aa3602f2cd74773329094772151e8c33d1f9a4", - "0xf6efd731481e8553f1d18b5735166499e787009b484b0dfbe4d35e7930f0d837", - "0xc96132b510863e553e08c54e98b5e9c0067f26e421980a6a3bfd4f07480c4396", - "0xdca9d8182c573871b6d6a184cb9819256398080bcb7fd765e6c69cd972a28d8d", - "0xd632ca6f5d45646726ecd2977ffea5c71a867890633f571b359657c0d096f840", - "0xfe3884dbca6bd3b0087466b04e6a5857ad59d7a25021e1d994d059d20005185b", - "0x7f40eb6fb94b05bb43873a98e9d4eb5f7ac90fb8913240bc0909c6be42922b30", - "0x5113a0808666815cfc52b8ed63c649d96f35c365def36ae623f536241b163c3f", - "0x8e6dbacfb5c593d7d7c2650d3d0115c3702cbb55f73011823a202e69ca33cc70", - "0x8f069ac7caa48bce09fe93f4aaef6784d8a6f7a3a09edb82c7512ec18acc3ab9", - "0xa5525e51fd789c59d3b208efffe09abca47cfd6981d36ab44084b86706c69888", - "0xcb4a7e60d5e8b9d22887ef1e8ce339cfcea0ae1fcbfa9adb766ad05d84182de7", - "0x0a14f23f9066ebdb67df31e66f6b8ab1c089025c0ba56ea56d15f73749f47cb7", - "0x0963e3eba12e41d21af7625b8dc487b637b1789a6ac05fb23062e0166942df68", - "0xcb7ec271b2f42cae0027d22b688b19b9288f2b5d9c43bc5b1ea23b35f5542828", - "0x9b97e6f4b2eeee29ecccf9584dc020c8caa3cae51c82f5b58d279eaf0c6ab4e3", - "0xad7f1963ce9993e6172c2ae90c6e1d4d3d3c52e14284fcc1b1e9a56776afb97e", - "0x52ef2ad7bc2921742dcbac9772f13d5c31be938eb1ad6aceb2fa8a163389cefa", - "0x369ead6d900e64ae0b5028df8574e59b67c61dca418c87ce6461eb4c8535fd30", - "0x7e1a18f6199f05f21f9eb5463e9ffd87637d2fd24a23047fe095895c533cb6a5", - "0xe1b8813a95e511aaec9b358d515e624fbc20e551c56328f843ae90b3c895d3a2", - "0xc2ea59f3d1e7bbe115390a4c210142fe9f9dcb1959764450f5b5292ad90e0fcf", - "0x97d235c3f18e6819c08dab4efe66d0f11f0d06f8ffc9686e3f28400e057e6f4a", - "0xea64f817770252b77b08ca2f579b440ec02e833fc88af7c9c96a8e1e07b2cb2c", - "0x185f5fd1f7001b533dc01783c83b7ab0828a4e2f188cc4e26768c515b4c421f6", - "0x0c9de9844e856a1e4340bf54dcaf9dc66b489304765b5c3c6ca20284f5a0dca6", - "0x4dd1d52da1d260d1f0f63bafc4c816b30cea8ec3434e7d4b63a0eff86997254c", - "0x0b3eb94aa246f7c8c871535ae2d3abe5c1b951e76b77510140ef52d5ea2457ee", - "0x27102708eea5d715799642f213049d8ac9abc3b12c76d147ce443dab28af96d8", - "0x81fb3c4e8dc6c658af2901b7aebf7467b9ae045dd0f58fe8d77f8770ac517fb6", - "0xf68dba4eee635d7494bae6fb9f0c44e739b3121d4bc6f6f21b495a716af3cf52", - "0xcf87b723dc473d313bf9ddfa233056036c5658777e831796f1f56647cd040c8d", - "0x49927c2100039ac496d9c16dd12f0a05c9441b8616c69c726fd2e79ae65e130c", - "0x088195c7251f6b9fa2105e77df5620211b8ca783a77f1a98de6752fc442c26c7", - "0x604de480bcb88e908b90451c4142b99b9cbb479167473befca7bea9b4ca427a3", - "0x642fdaf6bc1abbf261a9480fcf9bb48cf03fb80bdd434c6ab63401856c74fa39", - "0xe6b596393fce7a3023a316ac34a1fac18e18779ca5983791866f857f257592e1", - "0x40384a52564fae5df8c3e41827cdf584e38f3f555a54ca749b7b516619071d85", - "0xe52f7c17a4106594563ae7b724e5613e87d8442177f39a36b946b0e335be0e5b", - "0x7726202a7c255a9d7be47af6f3b44c1e379cda61237866554396fb6ec043482c", - "0x665da353f296cde80e3cbcb9c7f93b107d5676e5cd694b0bd33334d74789beb9", - "0xa1157fb181aaa945793b029d3915b37103d050f1f695862d9cda90df4755c189", - "0x449c9daae1c38b3d3f6861b63dc611f147b8a29029927f85c32b5e549df8ee9d", - "0x5739fcf908f960416e5227ff6f95aeb00696f8eb7192968239458a0aebf42533", - "0xfaa6017362d6e64f9ae1b6d11764ddba77cd980261acb5bdbb17b7cdee2d3024", - "0x97fee586909cf8b3cfb2f2dd4e251cb642eb551f1e5d9fa557a21dcb66f430c0", - "0x9934d90e0b4ec5900107784116323b0f76d1d71491cf9c619520478b6eb97ded", - "0x8f5afe4fefb0de810442e27b2bce63e3a424f9e339a0e1f46f6ed26617a4a404", - "0xcd12ed1b75e624f93d9e4fe7dc65407b6d7963196e4082fb459ce354977355a1", - "0x6858ff0c07de87aa2a88498ae948efe6cffade00f3f21086f0a71b8364090846", - "0xaca944e99122e4fe41c62b88e67940332483c8aae2a3a615508f848ceb1c044e", - "0xa8bd3a6b9197bec8849737e6771f563d14d7415707776ce4bed9460588c55c9a", - "0x20e5f18e795844cfcf2326f52ab1e56f4a53a1ce405fd355e0d37de5f6d552ee", - "0x038821cd156d2d9e2aff1ce3525726c42f581ca3e9e2cc75df524a3dbdfe0feb", - "0xb79bd23e10d1e6c7ae749cecaa732966ce3c2e2ea8b640d43638f14d7b78a21c", - "0x2c4d3bcae4a76ffe6924555b320847211367ee37899b187d8fd4358d91264c2e", - "0x0896db7657d2aa8d02166bd4ceba7515b24147fcf0aa34223590fb80db64f848", - "0x95f3b077d9cff92709d46185a7dc5d723f257fb77641e436b0f1bf07947844a1", - "0x6fdd931a93229698b92e6419074bc308a372e0923b35321b725916c1c151cae0", - "0x8c337c36c2027d0f2fb96405f76d3190cdd01237f6a602e07976e09c4a2339e4", - "0x8091a859cf86c1e2c22c870ebc10334f50e05bac2a41153102bf3f698bf5156b", - "0x382435cc836bf1873e489cb4d42d1c1673c5d1b452ba2d16dbd1ca77b7b87a8c", - "0xac5a288b16ed708b00cbe956a14e2a64b321f40851ea25ab1aded7b096822ec6", - "0xee95229b736827a21e0b7154873da3da59e38a1ba3e3b1770de2ed973495ce23", - "0x5168b6e3b5274054fec17b94a82931bc229d0270e5e4c9aeb61539fe8ba4f4a3", - "0x588c6144dfbb33922873946a44f03092bd65d2f89a01b3973002ed38f48917bc", - "0x6c51a964953dc036043b6e8c7fba4a3f6e83295306767bcc3562d9a8cdb04497", - "0x2cfdde11cc2669c5b504c4a82c31ff03e3f0b3aff044519b44bc39405bbf3c9b", - "0xd93200e550400a7179ac7afc394b22b7c710192eadbf429389450e7167191fdb", - "0x5e32f497c606c01c9be8ce1cca5f3cf475f62cf38b2195244a7c93df7d064dde", - "0xb0b74e34fd3983aef31a0584b6a7483ee936622b5fffbdce1411a9db6171c685", - "0x69d0a96a2eca8d6a5c32e700d3f910330930a3348e98e5b276013fcf70c0fe5f", - "0xf49cbb26f2463d38fde553e483de2d4bc6dd85efe2d0e56a2a79810df6af6db9", - "0xe58aa167a26eadf11257f1fcb5da7eef50f9985b590320cc6c015176965ea58e", - "0x582f08d14023a661a9d9dfd1db8324be88fc631cb9136e92f379ad7703584414", - "0xb9c5e584f5e231c2c41b41799a945d60b7ec22487e587ef55e2d9710489c3c00", - "0xd8b70c6657a5bf1fa4b67c4fc046c1eda284d677c610dbacaf0d2d84e4d782dd", - "0x1e29fb536e468abf66b59dd6f48d177a5100a192f1807afc12bb5c97368b8c95", - "0x595ac042acdb51370bf6bfd2b2058dda4781dd7ec330474defb2d5dd00e7f50e", - "0x3d00887c6509b148c5fadde21014aae94924fef363fd5723d80d6a2028df1de5", - "0x9632d419c9fdc7e676b130806cb9c86631aade0adc6a129d3769908ff97e7ef3", - "0x2f91c7ce1158228c8264a6147c6ca396b0d536cdde997a922cde2772b786743f", - "0xf4c731ac2e2612b7e7afcf3ba5911a58a03ef075133923218f54a736b25acb81", - "0x6748a5143ad25f0a461257a47eeab8f057782a438274ced580ca2bd3725d6be3", - "0x05a113b04baf81b6396dd32d59a53908d07a374ebdf17314ec334b3330a16697", - "0xb1bafaef874da14b8a9f883f89a896ec37d9af1b0958f5a3867780278bfe940d", - "0xd93c67d29befe531330c37dfa8b64db7339c8ac35b8cb674d741a414d90d77ef", - "0xb4319281a05f00968367a349e626ec63227412193c30aaface14ac6f7a480024", - "0xf6dce891724a49024535047bee44f889d5228066a931a8f40c18c7efed60f31b", - "0xccdeb308e3402c7dc72588871c23fb4f6fdc60e2a63230f628c5a2951878535b", - "0x90958033b917eea42ffb8bf077ccab8b19c2448113e8a128815ab3441846404b", - "0xed3436553039948094f33cffaff91a7e2b1eab86b638de5c8eb09538c8df0a8e", - "0x0910ba3093e37abaf70ffc0ef6a3b9b82e8c5f7ae497eec14b753f23d0a25343", - "0xdc78d9fceec3add33b92e1a0ee402b80cd87946e0def46f284d26eac46be6bcd", - "0x1d71a82b8d4b89f73747d8073a36acf8496757d35bb452e9cfd74d758774f492", - "0x5399612937722b6fbcb90c1768a92bb35acd4da6168814c1d9deb6156cf35134", - "0xc7156ee3591ab91824b2d4868d28baf11855a63a801b3793f99fdde7867eac7f", - "0xd25b288f3333ea8e33b33f42edf7b64976281e4840599aa49b07da39f895073a", - "0xc6596a87c544e84cfaa2baaa4fb0a93f3fa9d1e6938426ea05a418568a1589b0", - "0xdbf30aa7f1cb3a6d7661934d7ea2ec0665843ea1ec9b05fddd77fdb33fa7d834", - "0xfac2628cb5d70c177e8defbf62b0448297ecb13962638b9a26c5d05203cb2937", - "0xe8c5a65edee74d59e7b9e2fb4779485958d95303fff95bfebc0c1f4bf24ef9bf", - "0x67d21b95f40ca7c991f37981393dcec3218e70d5402d82ecbfcb21ae532872bb", - "0xba19c10601ed47bffb755f791325c50af9229d5c25294f315116fdb3640ca35a", - "0xf4c026f65e31d4606541c4e679d30d7336cfeeb81e9893465eb08c310792c061", - "0x5425ff602e06947bda22cfb687ace85c10896b5d48de144149cba26bac9a35ae", - "0xe11f82e350c209213da7d977e2de5199559ad3793a24a226cb4be367c0aa3c4a", - "0x13fb0194f473a4af296184d3293005dffcd28f1cf4b986bdaacede4a0a096fa6", - "0x3dab80c9fc23caf409e38791f07e107da3b5d0d9d4a64f87164e6d455660591b", - "0x5901803b234ef0445acfcd884baf0777970d3b600b80ab137dc1015a5b790885", - "0x3735e2d0ac017cd2c0570830615ed9eb642183fee5b2c2155e5fefc1d4de2561", - "0xea9030afc249a1e4f6c86f4b19660ea63783824e8d1c3de30e38802f1aea9d12", - "0x9def3e76927de026a1a76f39c242263ffbf94b3ef42fb6e98626b67ec3d8a308", - "0x504886149f29d5eb02412202f04b45f23cc97a82206bdf237c433e83c52e386b", - "0xc84d3b9e84727c2d9279dfebcdf8104762e3b101dd9f39c9482a456f87bcf976", - "0xf4737cd864b198c8049ece5a4f18eea18b48a649997c42504b560188adfb6f2b", - "0x410894a208ff99bd3ec5f925aa7ff6932c4404390df9e337601fa7b7251d09ff", - "0xe6e7e7e2b54bcbe37eb7066b9a3c9b01b632d228c8ed5ef8f1871d9b7235a55b", - "0x8af02fe4657f956a9ede1a9b0a83d67367b43a8f5efdf6bd753d09f428b58960", - "0xdd056794fcb6f5b694934b17ef35577dbec8d04159fe447e0eba02e4ff4e9d96", - "0xef94a3289e9e197b04c17886373adbe66a451efe052fb419846006b5f659b91a", - "0x5558e5612dc3c222d76e7190409fc5d38479e08f6fdf4b7df299e6da968c2811", - "0x5f38cc5046a503d424c4b63cb060956babe0c1de050517d0067eccfa23cb664d", - "0x4c6a04827f46e51378e9ff3b811c878dead62da3ae20ef7d392c57512a09a719", - "0x68fd9806bea1d937063778b245a6788cd992e4fc614d5bce1ffe06e125f67701", - "0x0751a79f86c4220e81bbf6b4692976ed4c315f9b62937b23083f4db2370f04eb", - "0x5651840a2065a3468d97bf824e78455eb5e22b82b45fde7bb69b297c4c40e853", - "0x959d277feeb492ed3393fcd5774f1dde27c6018b07cc4fc93b937ee266ae12ea", - "0xa145f2ed353350a89de97e83433188adbd14107c16c654c131203442c34f2899", - "0xf888fc918eab6f88a5f6c6545d47a32dd558f10d00e86a9949cb3f144b7264e2", - "0x2fef7f5f1c149c87602cbe38766631abc992efaee26dd5b59e5bc361f6901cf4", - "0x5e0735a9be3eb97e790a93502a6f138a8863b0f0c20905bee0ac14d5aff4206a", - "0x9c40cbdab8e769c2c6f9de57c23621c5d8a25adaedd1ba9df17fa1680cd4e63f", - "0x995e6a00f5bc63f0a5d837a6671260771f12995b82da19c72a9546ae7b93f38f", - "0x10f647c754615b475543fca5ed9a4491503867fae619513dad966af63cb7ed2b", - "0x7e45b18bd06e946d20bc3807aa926aa5c0a10555b9dc18f9574136969b8f48d5", - "0x8a419fcb515eef5a139a37241872c095818fd276f77e6388c74b82ae49e6386f", - "0x2cb2d82e278d8ba47830ed3dbd6edf69d2e49721182488ffe0a01698071e7d40", - "0x1e9e5cb7a68e7a2decef900bd250bd31c1f024ddd240799327263c72940c7e59", - "0x3904821c4388b16e9851e3a7318f4177102da38525cd3e5e5708430a243470a1", - "0x7785b9d9ff6dfa45d945aaa393270bf8b62bbde46e941aa068606c173963e518", - "0xbff782fbbadfc752f5c2a239e49ab13200fc35cfba29a5332fe936a0367d336c", - "0x294a3fd73f102c7017c9208857dfb91ec7c323916dd1bb3c9f1fac2c7d952b4b", - "0x3a9fe3685814b6cff7a918e514a9d5375a1fc8268a48d5b78da93dfda115332f", - "0xc033a1836983d485e28e5a0825c953a76d4c7f4a8ec5f7eb0b11baf5ae2beb79", - "0xb088df91127cad5d72f8db96d7ea86dfdef55374bf982222a45df7d2b631ceb6", - "0x1b949204d4713d568d40effb39002052a6d3a568bc81aeeea6d1253d198f1be8", - "0x12a2ca58e35fba0e6807cd6342ec56b3694a463f49804926349f4539be68d438", - "0x100b99dedfaec985e782b9b35858100eea3912b9aaf55fe7a8a767c93898546d", - "0x13d52bcec2eb86e2362570e1660726c03ab838fd5a00e75db7708941b4eb7f78", - "0x593965331b69f02f8ff23ff0530448376ea605ea05cfc28cf39e9db21b412521", - "0x0253f2a3b472affd04d8da76383653ad987d0cb533fd4bdde32a346ce441d74d", - "0xb43ab0c15315108cfcebbbb139eac536205a8fbde0b92e32937ef799d664127c", - "0xc4cb2191f244ba3720fbafe44d13c0d1a3a2e32f80a98363ef748731f54f180d", - "0xb28508b83729ac435202a034701f560fb4fc26e95b4a359da21309c66c082e7c", - "0x4826172b9fc3571e8b6193668e47ae6fd0c44a6a0cef1135333ac0213241f0d8", - "0xb5447c4fd18da34ffec6774325b3b486b625890aa5a383dd5f5ab4e4dc455523", - "0x92d2150387bc841a0a335417e3abe535a1fb00389ca22c22c68f82c8d4e78d7b", - "0x46a6298ee531dd085c8744359fa14217337e9dab9c28a22272185031198feb90", - "0x70cc7e64749cd76006b7553a3bd6a6d3da7840bb5544a27bf281563a82ad1d7c", - "0x727ca0fbafc16b0d88921b72ede2ba344988eb34339e0beb319906e94b99a50d", - "0x83f40d526191f18869fa9a3b4110f402d2304e4061cf90ef807ffdda90569bae", - "0x4267c3eda8a33a7de851bd9793c7ad5287b16204939a367f6139fcc63ed906e1", - "0xda06431a6cde3975a8d2279a1397714d898550e8e40506fa2b14cad7446745e3", - "0x841648c4d39e19e486d139799bdc0cf70976cdb455d581623c7a78dd3a681f82", - "0x88cf67a8dc5788f2c2423f9ba1a183114e58d51abc359f43a14691b14a49b35d", - "0x52caae2977f3bb88aeb21c8ed26821b69409d9de0356ecb042b39863df018dd3", - "0x2c993df9d2e2d312481f8e2fa518e1e49fbc01e70b1b82aaf3c7450d66b4b6b7", - "0x7fc40087df9f67f334d5b38845bd9a38d28e63f7ecd8ce72bbcf5e40954cfbfb", - "0x7ddcc5b059d9740b3692bdfc5734c024c54657bc0fcb06995455b72821e203c5", - "0x136ea4817f923a3f67706f0c2cfa69ef3dce06fd133206281e8eeca484c349d0", - "0xab84a618b9fd1f69deeb2fdccb86cf43be4d2e207e70928b29cd9c25d219c931", - "0x02408b3f518474db68ee4c1bf09d6f03e96df2628631b1bbc0614652851077d9", - "0x03d20cdf5fc553b833b5a09bc0c1aaef7de687815db28bc72ba0245ec266f818", - "0x6ef4844c3615faa2e9116e1a3413205c0100df07510b94ff889ae00ad7a6b735", - "0xce3ec8047d2051701d0adfbecb07eb72a95b37f7b87f01f8900391b543be9a5a", - "0xf461948fe25cfb681d9be95c34980f19e529ae0e2d958bfbf5034ca3626e6cd8", - "0x9cb75fef2a2f75204c125438c1841af419e92f0b490c7c6fccffe5e89f3f97b1", - "0x7132ee9c9db9faed4ade82b126b3b32ebc755114203a6eac2584fd720f9f86d9", - "0xaf1d9e8cf0734fda38af74ba1425fdf2121c3c597be9f3dd39e22d80e301e52e", - "0xc0ac3a2304310466215b8ac6c423719ef4da871d71fb774e180dd8712be96101", - "0x5fb5fbd3db4e37f637286e9cb2f07e5b878d482569d763549d4954c43215db32", - "0x34de5161e1b351e4e125a0235b7b9844f74b51a467f36e89641381f6fce5a7e4", - "0x606782a845f84ac4107a51b9c24209841173aa3f8e9cc2e51c57bfe72e332633", - "0x058d394d8a87c1e70b4ea57fce960eda9ace177d321b52fc90944ade4407022b", - "0xcf8f4925c630c8021aa1e00a1a001a05642f2adc2465dd52bb7a9a80991e84d2", - "0x0dae85d04c42da27288bdae0c6c8e564ec13f23e85da729cdc510bdc04934f55", - "0xc5b9dd7e2d0e55074e96b8b63159126a9c8ab43d42f56af3e5a326f042786b2c", - "0x9c1989e9163d7cb4710d82a708eb1d46b9cb7a9dcbaf1816f71e37090e94f836", - "0xe8d5dc22434014023f70461aa1c011c880a0f846255575353106b52df595509d", - "0x760d3fdc3d34548004d1aecedd84fb248467975572eb87f782009dc7c7c2d277", - "0x6b93dce72d74101a95b6b00d084972f4e35abce76ee4a58b6c260835f9a28c01", - "0xb6e8237d3d8a290f379f08e38f82f18be7e2d480ddc4f44df3e5f3f6c971cc81", - "0x77ebbde0737b668b3d16d764d055d29ccfac7ece19ba2e8d861f937f54df328e", - "0xa8c044ed1d2d77991561677ad8f9e58c07f2dd2caf110717bbd4cdba4cb60b84", - "0x86dd579810c664218ec61784006191f8511374db0078bc8782f52cc618ee4669", - "0x823fc59a1257302917fb1b53ac9dcb4056958ba764c2811b27db4691538d1a0d", - "0x5cc49ee5c1999eb52922e4be082eee8919bdee082d797a50c1ffa29b6ae4edc8", - "0x4a2e06ce47577ed442cbc35c5b232877793372091fc6efd6d60b77ab26bfb985", - "0x30b8c3227529b8da9c3e9ca74d67b62a594743b0fed7c2d66a9a04c9c2e05847", - "0x3c698f90a3cb7c32c3d909df5e2a6f3bc733ee415b95cc40edc52eab95345239", - "0x1210c6ae4167486def5fd9cf2b7042c7b35066e633145b4ba01413329d80095f", - "0xd5baa536453f7d6062dffb1dd1ee1eb1eaa8449e4a8091351a69d6222022b694", - "0x914297de69e782a4292254de92b5e754a1de92a841da73401eacd62404ef4fd8", - "0x0f052f1b2f73c32c032cd52589c08dd365503f2602bc41afbe143790ba86d89c", - "0x7f492b234cfe8681cf41cde74b479fbe8aa81dd47499cc27b07d9a06007af152", - "0x88bb5da748c6f96f3743edba77c172d061489ec2d8da82bc7f858660ae32c319", - "0x9d5db583ead51d5ed207f9b4aa7c0dc45b64517dc14906b9de0b01adea464bbf", - "0x92b9d0d7883b433d65cf3e2ef5af4c817216692816e1f8a3b27a079b622e251b", - "0x6bde93b8499664d61aedd67898071d1711e565f0565db89df8c2dfc2c7f1c08c", - "0x8bc8bbd4e865d6c446c4840ddbde800f3de2725fdeab0cce5e6e0e1acc23eb09", - "0x66e1fe40cbfede3b8791913b327c391f6a5d81137c5da5367cfeeaea5e6e1a8d", - "0xf2f87039b7beb30d4358b651b8566d509caca0fa4f50148b80b44cace72bd058", - "0x25dedfa2522ec37b9b607ccc7f8a260c5d8fe34b12771028524507bde815f004", - "0xf5808873db2b2b21c719ffa31382d0017ba9c4cc408148bd39ef161ab87307b2", - "0xb979dc5a24b39e9c4272c69d858bc1ee8ec49ae5259cb600b146ad8f27756397", - "0x60c3fa777a9c5d91775a173e137a79ca785989c5c3d71fd163bdda852ddc0cc8", - "0xb5ced19b8f2025e69f79511988f634c2ab0abb37dbce6dbd1e3df5cc58063a62", - "0xcc9d411691a188855b529bd49bf00b08689099b31fbb16e6420282c54167d3ac", - "0xc3d8398954555c2e1c7aff2f5908170892769035889ed3c64bcc842c87ba7499", - "0x8ed00b0d107969f06692868cf8d5bee85be943d417198b44e7c95962a1ddd7a4", - "0xf38a2c1e2179a3739fe8b53812d1ddef8acca6df5389050113992a10652f471f", - "0xf32225385feb683115b88285204d56922bdf59e0f58e332949d0f93aeaace4b5", - "0xc4559a00cd9b5b801c21278ed7a2b2a8e4884fd6baaad9fc986ce8cf85019edb", - "0x328bc1a550b6a9a9732e39ef04917f11a5c88f99a9b1f36009d339313159b0a3", - "0x322ce0bfe3aa6729e20ad2548aaed69e54ea1b94ee99dd7c2ef200677e5198ca", - "0x5b758330b7fc118ca6b36ab6b3dee1cae8dc315cdcebb3cd757d25be9718e2c1", - "0x3969413a5efff28ed9f4187ae712dbafe74ae712d801c15644a3961824e5fa2e", - "0xfcd6eb558bd44c5073aaf04f8c1d2a937a338ae6b75cc6d59d35b40dc707f151", - "0x27e43e27370c02660c742c83b6e8976358cc5e01ed04ec82ae087b5519345f86", - "0xf47ec3250d2cbd2f82e5ad70f93630e17d14ff43c791ddaf1c86715e03ebd5c6", - "0x308aa120dff142e89c16ffe5fd7d2204993ff3657b6ab0aa0dbb0d83d14b2afc", - "0x98fe524716333ba24337ca9d6d913a0cfba21362ea50b6e7285bd71956faa75d", - "0x938cd945ef8deed0eb2703d9875ce64712de9a78900578b85a0de6995323e3c9", - "0xbc31b5581f994b3017d6552a6934ca9c52553a4d42a8100af941edbdb2e91a9d", - "0x7327f0976fe152ac14e7d7d3fe9cc2a6a75b968a265e7e0172c0f350d3e152eb", - "0x6c2479beead9c745fe1060956af733766cc80da7188d2988bdc1340d6cd284d0", - "0x5fed2cf969c6cb9028a4e9bc7648022cc4a4f87522a553af1ab21928cdc55daf", - "0x7e8edab36495ede01b8705c5fdcaf89463371ebe10f57173ea857a9fa2192937", - "0xfb58d0ccbeaaacb3b4519c805255fb590596b54e4fc4430a6ec6c5c7fc9766ce", - "0x937a1898488e374bee45ca21d771793526f6a52b30199040760da726247f7cc3", - "0x6e85be1630192947170547f83f5f5278812841c1097decb2cdd7e7438643053f", - "0x12b0b60b027afc8a39e6c32b65aa828e12a7f9df6c8c1e970f08e18fca430513", - "0xf7037c53bc45bc06d8670e846f84824d109578068eec905054f666ee5510fc2b", - "0xc047b653ccbdd24a41214add8b7076bef8916bb040d47d5345e54d7b8438a099", - "0xee03d8ffcf729e8a46f817143763bdb98d646b9945eb573ee52997622e08bdc7", - "0x1adbbab8b4d4df3914a0dbbe70b6815a8c773f7000fef03b55665939d29a2d4f", - "0x475f1fbb7642240b7abff801b13dd369733c45f3103c836106e99cdd43c0caa8", - "0x2aaad3b7050cd04da0f9e613cadf75862c7e8250ed59163ae113e77d63818992", - "0xcbe88d935e66909bd168057b1601b1abfdd68db2a0c0e4ca61fdcf1dc0408774", - "0x576d6f60f196a7736d9197bca8bf9c82fafa9c934cf8988446e5c86859d89f43", - "0x5ec11602479ff16704b3413fcaf368cd8a6a87ff9f5a3a075ceadea2badeab05", - "0x6be482890a8e1b9de9d3d5d93a75fb3fec750c1b8440f7c9ab072c699ea35351", - "0x621797956f53edc280890b015baf2d0b73db85d3b186498e7e9f40fa3408a1d7", - "0xa622bc30127840cc1c1b83bfcba8410bde851070517b39f73fa0753e39f818ba", - "0x8f2c09f74bfbadbfd75ffa2af29e8ad6f6a67d3891ef8ae8d4d785e99af75757", - "0x2fea6a50503eaa6dff3275ec99f56e67e6125307697e4bdc2c489a3cb69029bf", - "0xe5bf069d84493e9f8fe20682f6241a99dfbce8e0580d26014245b28a15b63a51", - "0x5ccc1e2e1cc064acea0ee9299bf1c9469199bd2bd0c6769dd764a065e1d911ff", - "0xb912bad85e4c8b295e3ba2d68c8c5e0d45ba25d756ab24b0626257de8225ab49", - "0x7477d10d6c663d64dd03ad5051f7482fd5a6e5d320e9740041b13cf555e6a227", - "0xe7e04c26dedb78211e39660347214cf4751f19eedb86bb59f4b56855cbd0d2bf", - "0x61e04f4540f1db5e6acbda2b6b20fa5931a1f19607fa4717239acd737490e7d1", - "0x172a7fdf55b224b2bcd76c248216cea3e45a25f1783ac02150759495288297e5", - "0x304a01bca8244bc1ac8568fac49ebe00c83ac93df08362d3fd80f86dadbb779d", - "0xd495196cb5d83bdb3f962d3222d010e95949e2192f914ca256f25755e36b5bc8", - "0x5f4036ef1381adbdc0ae7a0647ca9051d21d5705a8c5c4753aacced054a86796", - "0xb6b2823ac77073022924ef5eccce0fafbf20cda23ba8ca9cca3972c6adcf772b", - "0xb3b34c3b6f3f3e96b4aa487a2bbfb5cf2b906bf3ab9ec411b6a1ebe19bc38364", - "0xc0c9826164bfacbe623f858bb51fefe867511023a8250c187d3520792d4972a2", - "0x1537fdcf26b6705f4585fe555151a59a557c672b91f39567762076d22de0d9bc", - "0x593d8b50367c9d3daafc403a38950e9c13ee3d3e38367f8ee6f0298cf41d8d5a", - "0xfa22314c812f3f8cf6d91c16a81fdbf93aa8606cf7010dd4711099ae87a3b81f", - "0x6ba7db726fc78312ab135893a5691db6efba59fc92efb206405ca863f289d721", - "0x8a13d09d91065c4d13fa532b0eafe3311ecc8a35b18092b042d7bd4df77b7e72", - "0x7d0afb3306161abe2a76e966d8ed01816930633c11d9caad92e7f45d195f0dd3", - "0xc8ed07d535b55af4ccaeb9c78a330fd051efb34b3d70f81a96f8221ea500efc5", - "0x4b1a35a1d95c3a6a2694938b071810412e6bdaa3681ef263efed5d1f4c93b55a", - "0x457cee6b8d1778eb00415c76c239966559e04b86b0ac597daf918f269b41b082", - "0x27177d9985954a57f90b6ca8b4592e285fec13196c3e2e01407fd3e123b6b516", - "0xdea7e638ca66b09790d12fb6fc8f6d6177aca1a209e090de296b9ecb3e0213d7", - "0x98e7e5327a7d2543822260ea2ed427d4f332dfa691d4547b4acef272010e90a8", - "0xc86428edf6c0b39db083970f80a7c2b04954cd572c49336772aaf27dd87b9849", - "0x17db87fad8a68694ca810bc2e5cefdf7c0f695004e4450d0cede7dbb2f7cf753", - "0xcc2face264b38e98ccb2bfb504675f599091617ac7430d25bbc5fc9481abc8b3", - "0x0495d951e99119e7e66f2372007269a6d76341cc0670acc196fa59df089c0af7", - "0x1a105f9a0ceb3b4ee2205b5626ff63335a9ad16f9abd16bc77b7a782f6769c77", - "0x685745060da6f81b54f0d74dbff6169e00a4fa4e28357d18745246e39c9e6220", - "0x3b5cc9eed80730746770c803eda7737854f0bc15a5adad1eaf4dc1e079613aae", - "0x050bc98e087c86272a5ab2eae1b81a37969c9762a36fb069a5751ff2fa1a1a5d", - "0xfc6f6cee79d69ed119a23bd2111ebe1bf9eb984b6d42440a31e2e9331cb3cb1e", - "0x24fe575b0aeaec871d13bfec4c00e3b48b023008e3c29e193e33c3fa267e6efd", - "0x1764cae60df974607c2da7058b73edf4071603722f32676e7c6d577995d6b37f", - "0xd9aa22b7c733a78ba533536250bb0e5837fc9a38fa73fd7f888b8ce0da88c954", - "0xf3e78ee05410dcd0f991c3ab1bf4a3637e61c54648c3d04cb594965f3463f645", - "0x21c2b2f3635984f79a1798d5705301736928c705bac8627045d4dbca46270e5c", - "0x6869195743c986a275e717728f0b35f5badddadcd4723864f2ccb7752edccf2d", - "0x41d7d273d54fb5bc454c69e8328130064472e89408a313befedcbd0dd5e1fb6c", - "0xf0fba130c22ca0753ee1e4424e767bc6d3fd2bbfa68ba85b195979def650bd88", - "0x1d4da114f9132fbe49907afe713a80866710ca533ff5c4a993ee598b2a17bac3", - "0x172165a85ca4100bcad3fe3082c59fdf3aaf0bed23a938b4b326694f64f7e349", - "0x12cf00d3b11cbfaf2038ca1e9de63e4dff65a3352da5824043978ba8fe7e08cf", - "0xd64011bda551b01b0b33e1065b0069fd1fe103e2e68c50fc5bdf1f99b4ab5e0f", - "0x3e3bef8f3d76d1f410327cfd8f4453e0fb9ed392da173e26ffaaed662411f7af", - "0x435816db536c536e0470a3fbfa32fcd6adab877831ffa66417e19bfaa2c9c62b", - "0x19d27119d0c702eb7735d70b30c26567d6ae4c5d204870a036f2273f027a80a9", - "0xd48c41e8365e9872d953b89e2b3dd0fa762b3360958ec9928124f54c79df5f19", - "0x7da805659d8b9e3f6b14aab3a5bd8d25e9d2d960076b4baf6c394a02fc763d12", - "0x5491cc6940517e3a790bf6e32437537e0241c9fcb3302a3bf94133ceb65b8862", - "0x0568a4d9b4e91fd1046fda2cb8a718ba57ba1526610013f465be7777e94356c1", - "0x0831b1ce49717503b49502ffe6b854ab2eb2c4db30f5ea5033c011f5e5e3d309", - "0xabd50d7ea56144421474763563ecdb591ec1df8645ccba4e28990d8b9b8ed16e", - "0xfe4ceb9425449bde581ef04b46c1fc7bdbd8f422c43d64b2d1bbbe3ff4dd7a26", - "0x489137c52ef8c71e620220d8e9e842c2a5befa812b70b0a709ab4603a729047d", - "0x8fa480e08230c6b9d964bca0bc5d5a246e4eac6c8d45c75a4cfac8c4601f455d", - "0xe5cde020c71c0ad3e7f9a789247e5518bc1b824b4c6297e12d09a42e265e4bef", - "0xd4c0b9e39b70ef4f229884817c317f20f53386969f8c1e2ddc69cfa57b1014f9", - "0x75b91e206eb0a2fa7752da4d6421fc294a4cd7d6d06dbdeb7b7df50e157ae99e", - "0xa650044c8fb1c0d98b1e671d576f389b0b7be37e946b7623ff6203ca72c574aa", - "0xe6dd07898de5688be966dbc612764a9956ef1105a7a02695ea269b6e40ccb077", - "0xd1c7d40ae3558d4b42cbf6bce332e718ed8f9b7026b81195beea713ea9fe81da", - "0xdfd6c816adcdd1a588db0bbb4c09050527a107bcc47d76be91c7e309a54dec92", - "0xa67e60d39fad4b6389908ced2c0b6fc4d0b1ae78379de0452963589cde410618", - "0x88a629bbfd9f5ec014580d47210562cc0ba162fc2e7f609dcc34babef9d2f89a", - "0x685dcd734516a666b7e9018a420cc1ed6f1cd13d13f54dc782d3d2529bafd375", - "0x00adf1bec319f440e54009e1ffc45d58f38a120644a111239aef09d1f91c20ed", - "0x0ec349f19c0374334a6f9463b349e97c6a6696984c7779cf29bf048a6317224e", - "0x0f190a67c3804e6aa618106b554578687d0f3983c8350709362fb7e4728adace", - "0x7af75c91424ed2a01f0b796ea4772780395cf77d4051c91552fcb962a384a04c", - "0xa43e2914fa364effea580b8d8ae6d7c5480acf7b9330b226438c12fb5e478ea2", - "0x38deda38720cb7918d43b4b7296fa0168d77ffefee1217bbe198b382fefade22", - "0x40e97169e2871117267eedd1095f76d97719f6e9dec56b3423a9258bb09815d7", - "0x3368d112a868cabf7d21ea1c5c851fe0a37551c03d72cfd6b235e3a904eb5889", - "0xaa25f4d9f97ca1cdbda79c61f1ab84883a037eed60d9ec2301cdd5c404c9805b", - "0x21132089753a085a0a982388817137c591a9a34d2cd9e6651c57c76a8b80b716", - "0xdf0c2df6ca5680424ac369b411ce78031614632c5fe44e2d8af1ddac30cd729a", - "0x4f55598eecadc5136e90d15fcb9f87e1eec65ce18121127b49cd159c69c94098", - "0x8a6b7276e3def38187b0cf9156aec251bab76637505f97583dc4d426ec86be50", - "0xe8a516509c5bcb7e81372ce88f7d51982e092ea93f895e5dc666ddaea58edd54", - "0x3edb18c971bd2f867ab6dbb3d63228aa94ed0d0eb9f603af71ebfb201095b836", - "0x0e7de89c28113289c1f84ed91c289328b9cac13495b289ce11cd1c5942be1188", - "0x2610da85e8fb400db625442fecb8cbe20435e8736fedf3bbf715501697ae6be0", - "0x5668c3a61683c91b17467e48b2f27c7e377010eaee64c69d53ecb1ab89dee1e1", - "0x58bb1cf79609e7223f1883dcc6d80538e278e514b1e11c6c2871db55dcdd9914", - "0xfd8faec518007958057845c7b9f204c8dd473db5dc19ad5f2460802b1fae2693", - "0x304b287a3513bf02a35fa61a8cb6aeb214d453d9d53213f458c207d2e15a537e", - "0x7b8f9c4775a775637d9e3274068df7c5330096a52750d604e6f3818c4a7f0b15", - "0xaac892295bff6dc1d99e51a4114857a5fffbc3c8b2b24bd057156c91a5e3bf7a", - "0x34266cdb180c5227ebae64b8ddbecec44a6144214b9412d723924a92fb4a93c4", - "0x1ed56966b89b57904056fcec5d2a23ca5a5d809a7f5c889c5123e3994d660398", - "0xb44dde8ad3b29068b5d3b3551bef7082d8f09366ac622e57f6b494bd594c7a03", - "0xabebaf98aa2e70020b83e45d5ab56164dcc58a4493264cdd6dfff3e921b395aa", - "0xdf26e98e5499f58665912d987eaebe8234eec92c9cb4e788b274b9e9cc8b527d", - "0xdb1f809c70c5633bac0f1642ad929984ff56154b16e0d81b8fa6b10706336c3e", - "0xecc6cfaadef8dab02149f15d1f39932e53b3fcf25fdb1d0379ef9b933222c018", - "0x17351e250078e53f17a144aad0933172ddc648a8f2fc530f0d4468623328b43a", - "0xb832ca94746ea0be489afd60548e74d654278b8a08bffdda83f87e58459769c8", - "0xbe1d486c25ec6042a110acb68d2fb9daeafb830f1d739506213b5a0de51887b5", - "0x560e8231a58aa914a6b82977734a8ce364d970af688f014e8957933ca3026d66", - "0x76b6b1959f5e0579fef78f6549b171028811c2fd64265bafd701e0a2de9d64b4", - "0xba8ee49b308ea0c0475cd30b90252f4909063b86119e4d1cd53dcf6b4671b0bb", - "0x168bfb6c2fd68fd7194561d6b0f6f76e733dfa092d550de243a2a7c0e6b14fa0", - "0x8d5dbd6b82c31c1237d84256a837ff86e005033d83622531bb00de243da0e5f4", - "0xd12f68a021b6f806c9d75468486f2c4fbad295ec51c0f507c445fc535a0caa81", - "0xdbe40f0f8ee88a80512e2f9162776abf02218c6dfb61a36042ba973ab55aad3a", - "0x6cf853351f1371aacafc02da272b304b246176c2867377185b349c5f5880257f", - "0x3f37a65caa18187a3552e300aab18b27d4a2b2a25c049f29e5d8d7a2c57af78f", - "0xad59d1d4be0ce243a38e94ffee6b21fe073b28b0bee9b0249f560219e9bf604d", - "0xe28ca7ade73017341acecc09a647c6c0e638f6ebdf1566b534dd27d5e9ad67ce", - "0xe3577a39c6d3670d2fcee9f36bfb4e79bcbea5695013ae037a7a7b4c5302979a", - "0x56a8566c6bb04d61331e9950a97248e152742d6f0408a77258c102efde79a0bd", - "0xf199dbb8b24df16441c45f5db31af6597172dcff5bcb84306a3f8ee9e7ebdea1", - "0x85a9e253bae3c1c5064f320911e7f964c7315602e83374f5df7ba532cd2acefc", - "0x80ce75ad1b2de3054cc12adc1774ef8e37f3123387d06daeb545953b7a2bb044", - "0xb26d9c8ece65562068826bc872a6fd93e76634b8b7b598769d3df142ed5d17d2", - "0xa43a1662961c4bd1bfa93fdf911067aca94460c733f5a9e296f9e47740b6f8a2", - "0xf84716d76638301b784430585722e4c112375a69329ac03fb8e98882fbbd2fb3", - "0xbdb1551fc7d0e24f2096586ea482b83b8603db1642ba6aa12d8369214af5e4c4", - "0x8f8f8de670e0dc95346e2b14b82bf8a63d9a2a4eca385b1fafc19964cf98f710", - "0x6d3f91249ce7f7f852a4ffab23b7e949117df088f2e2aa3db0fb386755a16c92", - "0xeb9c005485707baed2b7ab034e68597bb8be65bd6f8283b690cd338bf7d1826b", - "0xcaa884959fbea1f5110d7cc4360c24b2ede43d32f8cba522d28946ffd2d900fa", - "0xa561dbe805f8ba3cb6d3d1524c4b3bcbc95ac330e6d71d33642412f8f0a1a2a3", - "0xf158b9329dbbb90083c88982656840cb134713ba122e7e39b287bca4b0605dd4", - "0xee3ce79371c0f0a1ac399a3a722a1c7515f6b02d2e03118e3fb6d521e245ab6e", - "0x1083d6dba68c10cb19935b627e5576b5bc4e7904c8ff59657ced1c8397468017", - "0xa893338e4a49166bd36f4361799c7cccaaee211b512e0c8821136cdb823e8ac8", - "0x1327e2948ee57993f1b721e9fedc8f7d2e91f041b3e01340375bcbbdead83bfc", - "0x6bc88c663e475911e9fbdfb9a33931c34bcfff5e533e82059d33cd69ee414d94", - "0x81d95020affda45f536e01b1a4b840eb72afe2e82633d81de11acdeada45d93b", - "0x91e59cb7e3729c776c4dd441c3377659b37fd881760b9e70c73d5288e99bfa0a", - "0xbf69325ef2072cd5e3d2e93b8e6e2abbaa03434212e1ba4d36459a0f064a64ba", - "0x11f4a2d21c3145af81ba0edb80a9c27cf1e2d53b1a43a42b58b49d4340ce4fa2", - "0x8c366dac642346ca05e2fc047999f9adcab3b8166482854b06c77c2439e0655d", - "0xdcae4952619f997d791aa6a973f1c8c1d3a0c21859b0c37bec64533a6f7c0630", - "0x5300c16e42bf43e34c9e59fc5748c3e05d38437943956eb80ae91cebb4e33d87", - "0x40ec29594f14d9d9a76b13342face2565914b050cc5e5eb96299c51ec92a529d", - "0xa7da6ccf5a72ad5b8cfb6d00aed5f9f7e2bd70670c57873735ce976249fdd5d9", - "0x177a1ca473ae2fb06ed39e180567da24fd14faffa062edbdcb0cffe4520045b9", - "0xea7c63d98ea30c23e0f4df53566214eda57c96f9449aab5a02c165ddb8e61bd7", - "0x6bf4bac02febf1f9459a433d08b373143f44c0beabd3f7bce4218259e8d91311", - "0x6883559d2ed97c78d0aea12c0d14f0dbc911db36a3bd9e3f8a7142e1083e118f", - "0x999416083ffc7371c9b95b6d1bea32da9c2b00827e1f0e1f615354dfe76dd5aa", - "0x82873c88efa3041aae1d36c2a787e592a7af56c3d86f321b1dc619b974c88ff6", - "0x6bfb4371b0a7b9eb9e3fb1f6987854d6e4210286b98bf8dfe6f71f12014ffe59", - "0x5502ec7d23c5559afca6ac2d6178c1f2c778e4dca22a6bc8b16619082cafdc00", - "0x97307b650b949382bc80b6ea446b629c0fbd37bb65a36ac1b33b1e4ac310c056", - "0xe33b1569d06b2b5d05065c11a0dc4f22d214a7a4e4003c1888f7469094330a8d", - "0x691870ffdeabba194cbc10492332d51702d75c40681662fcbd5489753bd5fcaf", - "0xd9676a94b8e3eeac02389ca8c0a6d730e2718c0cfc3a5bab3110aa170d64bbf5", - "0xf558d9d27beca0657bd8ca7e82d1788b1777dbe06b474b7598acdfd46e8030cf", - "0x381d766d66669a50d13a141535c441887cad897984d7b2bd52e9bf33c385669c", - "0xacbc99a6cf54ca6fcc9ad8f844f8bbd7639791b663956cda2ac59fed34027024", - "0x04e5b5dfedaa9369bed72fe0ce827e3c16e7a07a274661d76ec92347baa8deda", - "0x2a905b1aa12a30fb04f56b2d9a26a38ce10cc2e9dc910f213ec3c6b368b15bf0", - "0x0f40416a8bc6d699c404972d27c9b69093b387a78f22295cb0a6001cd437a4fa", - "0x05a52a1501ff0d2c044f0c1932e5eb217aa734cabd527d865796fdd120fd8856", - "0x36c70cc55f4b571882ecab711522e4bffd3ae8f6873d940a0e4626ade7797612", - "0x4a7af1b12b32d3bb38ec4aa0cda6535cd96043466a56f0641253c7b21abe9205", - "0xf637f992df45cd4b58d2db4d5c8360a65cf05a11f14dba70638e50b5bf70bff4", - "0x5b271fd0d5a0adaa16218fab9f75e0599d85c093233761a76c03ba060d5b7948", - "0x8e3554617c506afbd2eed41a4c8e2ecc1bf619b163843a983411c884e5b07320", - "0x96c35e763be9f9a95f76c81fbe1659d22715f5cdc0cb36c168c67a1062818914", - "0x1d1235e2789d0d283a3d4c06e391a1e38869c788255facbaca7e23c4e76e5ba4", - "0x25246df476679b7364020ebe600ff596b6eb17b23c68ab05885a02616bd2e5f5", - "0x0a516b13c9e864bcaabf531c43ed3ca725d4521c9d34ee08280fd13500cdcfb5", - "0x15b0defb12ba7d05f4c5b387efbcf5eb41e325ece9a0b83619a5b7e19283b677", - "0x5000d5c4cad2ef87de73eb2f10d6733a840d069200cb30d4221031381e8c8f36", - "0x15e98f25d14ef227fbca0b760e2d436e291d3668498f486611a6a3118f5a8556", - "0xdc0d786b90d673f30f84706d29643bf0c392464f30ea66052b153ec28ee4b7cb", - "0xe4da2a6b7a254b85df06dbe8f2bf24b4ca3ef6d5c3b0fc8c17e0ebd32d5d69ac", - "0xe2e6fe80f327eded1c263684cbc525e27839bc816b237588b902c66623c38eb7", - "0x1b8c963829103769fab68bdf45dfe4d6130abc9560590871665f23b190e959e6", - "0x5d2e7cb7a42acaadbc832fb8974756f9473b18263ea50aa281fbcfe217a15762", - "0xcf46e1381d84a33aa488d4674b3ac43a1b6afb102c7a425fcc1447769ef5e6f9", - "0x00532839fe3e0691e406d230c8d384b6bc562923048ea0d89f1be054252eee58", - "0xa68d5545328145a3dabe1b143a57a13057d14866c6b9c9da8b4781f4efed4945", - "0x5223699aa191c964875eb16507aacefde636e88c0f0093d92bc38be221fb3792", - "0xa9b807ba38a8434b3befcc91f6b93427dc81f365354f62d5ee69730e319ce5d9", - "0xfd0dd9977372d780c38981010a339dd6552e8f81fc7654362590e7c6b9fd1f6f", - "0xca3900d2a87a6e0b04d679bb87dc81bd1ac11e79e4f0355e314c7e41d76de4e3", - "0x78ee224a33ce3b2629f7640392846f17c228288b89d6c2d9db42726cf64225cb", - "0x48a4acdd0758838c9ce2b322bc77459c1cc0fdca3d588d60697c8a5aa3035273", - "0x6eb8aeeda5a4b26e73ac2bd7f838c974b5bc45de138d14ba58b51bfb6d51cf93", - "0xd6895877c885791db924b0ab1a1d666c06a10e6d210e02cf9c2f29726d3c565b", - "0xcffa80c70e6246e7b17173c071384a7b46dfdd5ab4b4b524c88871ca02c7e658", - "0xbf64411370653f8e08373438b03ccff7fc6ae1d70385cd26a7e73b57da07dd75", - "0xd9a39f3b774d208608c7d1d9d1fcdacf0c0ff6e8cb7915bca57e8056a8b914c9", - "0xd6a1f8fae6440d4ba8b2e392dbd07f6dd6290651a221b3749cd2dd6b0f39ba0c", - "0xa1ad925960651423f598ab111a0f2bcc5d3fc7f62fc72eb2753815277183a4ac", - "0xf3f6feaa55dcb3eb9c572404a0da1cf7dbb53983a98873b3f0398aad91773b69", - "0xdb902ac0d33bba7b0bcfbbe3b5533b970d07381fb00a973b4dd92c8f7af7bcb8", - "0x5f97ac6dd3f55bbf179eafc50c64042f2daccfcb3bae9c4305045b709cf19ae2", - "0x7061adfb4514170759ff4ddf3922b10f2c85c1a65c361936e504ec77df84b703", - "0x07ae6b39e66142978d35c4c2a517c55c23ec47ae341557e8cbe8a0d001df0f6f", - "0x0e6b9fc3fec4e75d812128fbbae0946dc48b511b198a5301833992e763423da3", - "0x7e1da14382f9908299fe46dedaf1878a6d01e9070554f1436514d320e0a4ebc8", - "0xdb6cdc7239c51386bb9eb371765cccb84e4e4de38acc5ad7e5503bd0f60a31a4", - "0xcd0069c9fb9ba8d136a2020580827799eac95f613f7b75bce8322fe67ecdc2e0", - "0x06932b0dc851ffb7ce68ed9083cecb5ba074716f188c5bb4df94de8e7e057046", - "0x3a2e83e02240263c4e416898f9d54bd0b579ddb0076537b58c47c3a17df15208", - "0x61b166d6dee81bdf6d101f23bf8ca40b74c2eb3f47561b4ef024d30f410f88a7", - "0x7a9e85a9000cb7308a5c57c7b1421b22f63e64f48630a79e449e7a207cf586a1", - "0xd573fcbaafb3882fdb1985c1b939961d35dd7bcbd5865be82276d0cea1afc7a8", - "0x697152abd7502169e0d801346a41c815d8bd8e75e55845d4a4b251def64a9583", - "0x77e5cfae8dc5913c4bbd4f4d84a797bf8919a0c21a4eab4f5dfb42fe8c5019d3", - "0x6e7af8bd163f679b81489d3ec3cc4948cc57ccb3e0c8cbc80e387783bb87641d", - "0x4bd5ece25cfda291179b8977a84369ab1590c9d4d5b45a24865ca010e5ffa676", - "0x6331f61c715be1fe8e0c90740cb89c0a7cee24524be2258ad49542959f845477", - "0x0af729bb18715399a1b07ffe2e0d562f71c27ee2bc01921c25327d421165bef7", - "0x98ee97e5bbeaa0715143a39f38ac56736f54fe5b971584b4061c58721c051a3f", - "0xd06e19176339b1fb5cf469b1f0ee4350a416d20aaa9c1be50bdd26687b2424bc", - "0x2385cde28be71e40f64ba5db5bd1a8e5f4b767a9a17c21a96fd2642ead428394", - "0x3d2ef2f0e4bae5c2ca6fb9fcfa1a9ffc435471a7a533b3b7df2b28402d335f58", - "0x2ecc6ed70661e692248c80735650c253dfe6b3c2213bfc259ebc70c898ee8e6e", - "0x8a68b3eb663796ca2189e49b9fe5902e36615d03d28ac34c01f63a135b930f0b", - "0x563d7efb4175fc12dab431175b5097186c2379a5aca1901e39d641d02865d426", - "0x1a55cf9842f9008e0730ae9fc6af9f288edba323803d0ae787fc0fdda99be8c9", - "0xccdf47cee7142cad27bbf224f0afd1a6e5178345cab510f2f8ee27115ab27ff7", - "0xc5b3582937ad993c5c234d059e6cd3b98f2fa4e3fe4ad591ecb6ae710b51fee9", - "0xd651ab199355d61c49e63259e6a20d17bf72b27891271e5175a24c23fb2dc29c", - "0x800e1e33b0cd48afc6f8f7c69b85902ad93e94bb290b35a862cbad67706a2f3d", - "0x57c7349a6b630cb52c3c1205165df428ed51e25cc167c08739f86bfa46c69e48", - "0xb393d362daff182dafcce65eda9038fc0c8908b3cb1ec1a1218570211c34e142", - "0xb2f49f7a836cd0db9e4743158ff80dd97d23de7a39a0438d19c79c355339c43c", - "0x3f46776ec25b5c67468c32c1b2ca02910a7f46b4b62b5dc5d0cc6b9d3381b958", - "0x754c4ea722e501668aa48d6151ff423263b8a4e2f33b9e44e189ee4e78462741", - "0x12e79ee2724763a8a7f9196bf4d0e855e0ae3f75f5a697d90a263bf562acc5a3", - "0x407b168fea70128a8090ca86274b0b8e7965f16d54ea2b3bbabb378485b22a02", - "0x0d1557ad0cb1466965e6ee86c5ce887eedf462dbec2e719c5f396f8ed95edf08", - "0x29c3a0db9f83698e6ae703174dbeec06f3d2055eb933799e4ae3bf73f4570dde", - "0x8ade20e56fcacb40f54259696bea1aa04d839b88c503d6775d7b4491e0f9e7fa", - "0x327ef0f173632c5049988b312b1f49e9948b02125f70e117ea127088191c32d5", - "0x2989c11c234b7fc5901e168d7adfa655ff6165098eb94d244b623ba43c6abbd6", - "0x10b56dc8f023de6a8f97696dfe2993b56156a9b35f671438fee5830f52b633b5", - "0x46cd37fffe94a01297f2dcef322ae72f58bbf9f58bc9f930cbf56e73f8d5ce13", - "0x2240214683eafc37396f3078446b43ae96bc576e45db650b953ff87a895ee7d7", - "0x0db4d500e5755cba5b962f6b83942e72fd1504cf52531916084852179669a08d", - "0xafc686a8325a30966db0f54b64a4e7235ea54e300d280a4d2a502651a53424b5", - "0x59d46f6fb8eadcf18e31c9fd0da6844d63a2dc19eeeaf9ad5b80113aca5bc42a", - "0x153ae496364bf7c34c8c967e044cef69e401f0e4aff27b04808e2c299dcf15a8", - "0xc85b8d3156729c7f8ff1989f320464144f4918140d608cf03e7dfd5b51ec2acf", - "0x78fd0613f6f5291d4131152225fbded5464841a119d854a7550a1f178a8cdfc7", - "0x763dc1a000b949a45f792515fed6af70047641fa3d7beeb50b141c27b4f8cd33", - "0x42567a1e6caadaa10a13feff343ae1e2a903564affacc48aebc14f257db58ee1", - "0x62c208337234d101cc95cb6be54c17631e26c956758493f5bb7978faf0ace984", - "0x7977aec997a3029025ef789d3492755c80c2d028046aae8c4b926f247e1981d9", - "0xf927505a0c29231ed187a884af15a82dbc48a1cb002f6d91496f6569c673682d", - "0xefd2c54f6d2483a3dd7b994d8afa5441cfffa956d7da6e81bbd1691e07ac7519", - "0x7bcf94d8927a39dd00558763cdd2edaf40d55728d720dccfa0f5e1e827079cc0", - "0x19c7e5115ec25b14bd85e3d368e15d2bbe60451ed9a02f03770a3e845521b77c", - "0x60e32d48de6979c70dcb3e3f068fc3632aba5844703d50851a34975338b3a837", - "0x6722f01dc1d6dd1f0678e5b527155beb0616e33887697a56ef4cc1bac642f394", - "0x59bf17368d69e0379f0f20ec1b1b856298b8d6b4c36354ee765c8a894e58ab9b", - "0xe2559e7b67a15a3ddfbf1ddc597a1309d1fd780fe26da28aace16ad31754883c", - "0xbf687ac704bf02a3877e72f738691bf5027c21f64c68a50235876a8d015ae682", - "0xde01838df621b7368adf4fda268c827dfaa6753a39d51956c0445a2244585ec1", - "0x4ba14d3860d1dee44904719e45a5bfe54dd1e4c9bdafd0a41279e432a021f2e6", - "0xa2380cb32538cc80e07fda5575ecd7b35e0c12932687bd8002da652ad8c16dc2", - "0x82d0f5c8421d6803e52e3d6a37eea0cd978686792a2f6d175d77e9c75fb4ad86", - "0x23701b29d07c64c998ee4bf8199d5ac0f3d9724af2544cc29665a1d92a6dadce", - "0x8bbd490220c823506e111c668f923d18addf5a23d9b5244103cc135c4335f23d", - "0x190506f2d9decb8f9423662f406e61c99606abdcb369e25a1a89c2bdc44c6158", - "0xb9504b090b276cbbf86349bc4dbb66b46a42ce6ae8d44d5cd7f39773fdf6112a", - "0x38fc273344dc7230790963dfb3dedfabe142c18886d6542d77ace8ed6d117c4f", - "0xc76929e9a3a984f6ab6395c4811f007eb6d73a86fe62f8a1c02e860769f2bcde", - "0xc4fc2465f71d06102d232858cfd9737e6e82311a45b1cb2ac203de80c881a2f4", - "0x34427ee5534de01e7f0510b87e6f45aac6210897472978aee3c051c39776c561", - "0xec4f3c6349dac1e7e43b0541b1132b3d0cc8bd422436f31832184d1aa6f9c822", - "0x024a848067a1156852c78495581392774b00f22e32021ca531afeab1aafb683e", - "0x9bdf793e30326a181d3d8fb3f27818475b755e3d1fea200d8c514cf17024979a", - "0x55a1d92354a31354b4b1d9366e98b27c0467b01a108d67dab7feeeda23f981d9", - "0x74614ac3de92173d07434dd80d83aad5c1d551127896298808ad7fba96051e06", - "0x7bdb77183ca1e7f50d292e50ef701ad3bfff3e6e28d36629c5325da03cb8d013", - "0x3a35dc3d12de1053d204410a577b9e5c36d32fbda761f797aee248c27f7dbb02", - "0x430aaeb1dc02bb792375d1702999cda7c384dde1c6f46ef26f1e26e5a55dfd87", - "0xe12805d1713ba730fec6aae824bdcd0a896c6d5e12b9bfa5b6e0a2c2be251c17", - "0x5a297bd3be2352e56136db83a76c7041ef825128152366b2d8f032abb1d6656f", - "0x111782d82f50ea25d684af38689cea53319f1a88557d82c57e46ee5e75f99c05", - "0xe12520cda10064d74fdefba22b5ff4c5eb95508f77fd7c8c3fe82fb89e165bf6", - "0x6af12e8f4db19aee3865c3d681073e7433d902832bc651b8fc3f5fd038c8bca6", - "0x82a4a2ce19ca3fd99007279d62dadba547b6818607800e963b3bc53c5541298a", - "0xbf3a444d1b15d01a29ea22d05e71021ee3581338ecc9e770ee23ab6549a19d55", - "0x745ff92172b5c83cdd69265b919028b350ef95a01c84810366d630162fd9b07f", - "0x6128cd2ff1be9e56396a676362a2049f3e670c70ad2a77be724c090fd4085f0b", - "0x8ffc6bf8165e52ecf30ec955d4be1bb093e6074c92a527382a8892ffa3d3e7f7", - "0xd65bc11ef24c0fa476640d9effdc57030a86f547b7aa79b209954a6abf4072c4", - "0xcd5b5e184a5c0d1c5bdd12f80736ed1a4530210b4ef5f35dacd3feba722a334a", - "0xa80657ecf79ef03fb919bf312e02d94ab528c1b5c3858332d9bf82f807b1c232", - "0xc67dfe4aca5001e97ba6f401f15b72be85ae45972ba98b965a6dd4954d5c2386", - "0x59201e892aeab9e40aef69945585b81b47a7444ed61ba6c6e23e006103ed7edd", - "0xf535c920c5316f12f0bfedc298fbad028dd84161927414b14243c4c5ddd4f4f1", - "0x66c6e42c8137c043eb49528c718b10e5dbad9164bd3ffcc6b55b4b0501dc507b", - "0xa60b9485cb54818e0b0bfe4faeca923915f85bbac0525d09d96f375d0b2b9f81", - "0x8f9377dddacb6ed605c8ed8ed2bc6e2323a4e5d0c9b29bccdfbd27f57a9ec315", - "0xc48a1940c424c2df4803ba8d5573066ce4bbf0e0fbdaa87abcb2d2f51b0a4602", - "0xc7bce918e9f897aeb1351d2c9cbc2fbc8fd674017cb25c49846b05d609f00ed9", - "0xcdaa86e0c026c91954c6305cb7ce6010560f691a2667baf0e95bc18cd3e067df", - "0xf131e0910a8088fc5b0b1d2e93e31632eec67fa88f75bc4f9c3c1b0a317e1d54", - "0xb4f8d72a85c4c2261c7b00f43b96d7d749d0e53359993f52517da36de4c9559b", - "0x73f84bb4774a81b39b3a10d18c7a2404d21f3efd26301dbb7c8136e96304281e", - "0x5559435a987f1444e4ec78b8530009e49c52431b37c7e9f80ce2e056d44e876a", - "0x070664d11ee10c4e0475a7ece219eb0e606e055ee0fa1266b669e593b5ba1d87", - "0xfdfafeba7b5551d1e2d6f179be5ddfdbd0350bd2e9dfea40e272fb608549e8c2", - "0x50a1356bab9b56d8ed46a3e8f55b8a16af42df6b15fcc68aa548216de484c7eb", - "0x681161a307552ff12175074601005bae0c6f7b38cfa6dcb87975a1df205e28d5", - "0x2b39456efc2e8863197c95a4d6eef5069612cc2aa6414f0991393ffa672a1a15", - "0x571b916a82371fafcb456524655758bd42b4f7b768e13807a1a995e642ec205c", - "0xb2821504201eea0e6040a131a709547fc9afb44ba7bfa6a188201735753ba3b7", - "0xb16a8af1bfdde1fae0e28f29c6db0b361840df4b55e73bddffbc1cc11bcc5584", - "0x1df38b594f536cee38acad293a818bf83fc67830fc71bc19790d7733a2caab60", - "0xebb3e8f76f3b6a95285154dc11d4bd94ac4c3a150383ed69f5373499b1983dc3", - "0xb0919ed300acac5f912f01611a428861db27ffb8129a80495f735f0ac608ab35", - "0x2ee321d9d805b78a97210df2977ab62b352705e308773b90e0f4e923adec377c", - "0xee00cb02e9b86978ae10b119924bbe6c38f730c1d1b621d32c9d697e11105871", - "0x3138c1f196e8b3de9369c3c8ee1d556de1bae00896cac87b4083bdd7a691e738", - "0x0a777c53b3be3f3b136b24585dca1b7c85f7b0edd72f2173ddc70b0a1bc8bd93", - "0xbcb300ee517ac8356c36c002da6f2ad562c31c81a3353d63925e044b10d0412a", - "0x503c3b1da233bf2f9f9fa13b0488aa5384a3cc95dc21e6f2e73577dd3ddc1974", - "0x0d07a00e18f3db6896d0879fe87cf7aec13f30a957806f74cdb0c47ccac035db", - "0xb6e92e6a32c5434a79448503a269e6e5ccbf70bc59dc58957915621eb5951e26", - "0xc2381981c2a38689e6ca1121fd33eac2881b1aac64a850b7f5751d587a5a79f4", - "0x83c0f655616e7565d63333d8a5f99baf2f4e0a7dc1520d6c4142b1be6931cdf4", - "0xb17c34ad30548ca1889d7aa11aa12748f7c02431d64d7f53013a10b979ec7aa1", - "0x34ab63d2aea17cf800fc2aa3c8589fcded1a732bbfa2102315adfa03596a4221", - "0x6a7bae77e28fe9ea18b59e4bd4b81780daf520309808560d533604c0bdf76f84", - "0x64df132fc5319adc69249961df9830e5d63945564d912fe901d80e7859a87057", - "0x2323352a8e2f13d442fcebc760ece470dfe5542188f6fc2d38f4db6af48bc959", - "0xe9944f4b2d9e3fd7aad0446281d4971463c2e53029d7e7f40f8b0daad1a29d67", - "0xe012a3af1ddc10881cbc1c62c1e0e7205db5edebe74bd0c8d1c12bb9a3f47e2f", - "0x26672ff6f0f02089b7a67837aedea5e54acc3120ad4f2b936948d7053d74ccfe", - "0x70b1eb24d9c2544e26af43212c0cf70e3e2ba58316f5372db5daed02c45907bf", - "0x7156e65df46bc1d62e8f8ab4c6c2115a5129d28ae9e96ba779b4615fde08f267", - "0x15212b5fcc31d204cee80a4ba392e731a2fbe40e1a23d8fdcbc6ecdd665ac9ff", - "0x1508823c086bb5269f60b452fcaf3d58b6dece236704ad479205e1b6b870b7a2", - "0x73a9ba93b3a5444294b466acb8c560c0a62a16dcdb5c90eddeb19f9eb75dfd31", - "0x9658cab50473a5fdc06f3bf07b34981212f215bdd773439cda3a5a37dd96b7ed", - "0x1b76828d177851a98f2a4e4a5a28e2e50dc876878b4a44b7654c409ad6a58a4c", - "0x7345477276953426e16dc819818ba09988d1e2b552adfa47c5f7cf6c1bfdb3da", - "0x2419a94e778ed5aeff0552a884b87b12e3b4f9b87c2e5df66ebe9260f38f19fa", - "0x4c14ee271bcb543d5395324a6fae046e133bd3e34f6a3d1328c9d3c77593756f", - "0xcbd9935f32d758ec070e06c393f5bfb925515058237471ccc89a6c7126df2fbc", - "0xf945621e7c926f2739488d96c4e5fd42fa91a5be31e9a45876fe982166bd4cfd", - "0x427ae8d29c63525078a803c1e40554f77685866a46f2ad9d0f772ad0c10b43ea", - "0xe4a6753800fc0d20c0ddedd6c716f8fafbbe636256548170a871d2913c885c9a", - "0x4da6c6246e60c496e059dd80bcae5ff30dc285e2a2db142eb4da3f15b00c0df3", - "0x4d1ff252edc762f25066a466e26154162942ef71ad13c159c102d94e427cc926", - "0x663a98199d967f55acdb313e901cfa23768ae21e7b5efa6b6de88b93e96b08b2", - "0xf025c69018317e95880e27a96910c6a4fac0b5d7a52abaab7c616af08eab1090", - "0xa5dc8339e0b823dc3821867cc84bebff11fb0bb8fe2f54ca5748cd2d8066f68b", - "0x9b3835afa0d0f1aac1a603d1f322940f4b84da6c6352654fb10aea202b3b84b1", - "0x41cea6f1e1de2697e58cefefbd4ea1118acb43aaf9ec7a9c116d14a5310e925f", - "0x5f1e42931b16c26642f351b24bb063f6ae7dbceca760961fe4d07dee0286082a", - "0x9ab19e309d5a4fd3596f0979b268473eeccd04af6674968e1e340a47c6652d9f", - "0xd6dfe22679bc3590594bfa1ead582bd4639f1b3869915e802e8973666d29588d", - "0x92f5589f356fbf8e4c5b12bf11d5f148d94f0e9f9297bbb32a73ed8fc409ad8d", - "0xecdeb77e2b35647c59aeb935e6fa4404ddecf9287ffd84d02c090d6772f1a68b", - "0x18abbe4adfb8d2365a14201ceb3966e561817ae497754b65cb5441f64bfec184", - "0x4d57180d082ec586a97573b383a12a59664d9877d86140281af0eef88f8dc8fc", - "0xfd52e379ec75f3645ccd83653370e107970c5c61573ec688986895d5e825303d", - "0x9327212a8ca5d0139e6728f8b39caa571a7821782b49a2edb96371daf6320571", - "0x9d9b1cbc011a31b99943d9dc7a2a8ff2da0992a5e3d22bf24685723b85545452", - "0x8661975f8565dd506ee26d265ed78a06d0c60dc150df594b6a1cd09c5c383e5c", - "0x98574ee8064f0b276433b8d98f7db55b7387775c03d543f2a8d1f77cc9d9bd20", - "0x6fd37be595359e52e5482f53ab66c9e76ef393085485a4bcb344272607cf2c0d", - "0x1d2a15c07ac3b45c024b4c14c976ed18d0f2e4ddfc84fa153414e301115b70fb", - "0x1ebb4adc19ea75acf90cd66ded504674367b70506f4813e22cc856f10c36973a", - "0xcb0198d5b6883b582c6b389e6f98ed77494f3f6ed232056dff48a368bbc2b9c2", - "0x2bb53b3a72fd65a4a090b49301c448fe44fbe0c7773e938af9c511070b442957", - "0xbf8289e45461485d9ae0df36052adcc1c43089e173a54663330a4f1ccd6ff7ea", - "0x059c82830dd4ffb040cc75a4b354483d81bc6f16ffd0545029112845f8db7cbd", - "0x68fa73438a9093f1e2e5a88a244287cd1d068bc28ac0c7c88cecc70f2b7cfe74", - "0xf935992c7eea357445e47fceb2894d4c04c618fb238f6a84251c919cd2e5b97c", - "0xc2b6a5bf4ab7f6f43fa9f59269116929116e5f136faf8acc7a565eaf4f6f5a0e", - "0x0f06da2edc35f959f8f3c9f9b16b13df3d1ebc5de146d7467f342116648bcbb7", - "0x4cccb59e57aedae4c1aa83a19126e846b14701be2971f95868c9055b77461db0", - "0xb2a64c59c4a3878472f5fdc4365e61f6cb5a67a1b453dba34c2d257f97ac44cd", - "0x21d74f1e667bce1163c8da46d522bb39a6ce777b618c6d2551c01427a68a2316", - "0xe1d84da4146c25e3d89bece4bcfd19ebaf684086604c53e702c07b938057d88d", - "0x6ff86b85371f732a285b19e9372a2567529bae071a439e80be782c5e3c462c4b", - "0x86fce707891c52a94cb30d50c4bd08fdd5567b88f6676f35228523847c966032", - "0x59aeb5682b2a3443e6c8bcc4d425e3a59872090bc71dfbc6cacda9f02d9fb7c8", - "0x7bf9a30fae3402b8d0aa4f7b18842bbe082c1e11469f635792225c8e8e536f9a", - "0x3f13e2ce31229a9079f04f77131a170212bc64c1701c2ddd54713c0e59f03991", - "0x2daaafebbc63db1ea0a8fa6e5037c4da16a92fceda2dbcb9576fc2fa28b0ee74", - "0xb14610c614c0c0c59e295fde6c4ab0e4b4c174385fa734cc8a2095dd6a95358c", - "0x14ab25c7f34bb626f581d38faef3beee599300a51bb62d3e1e1dded92ddc95d3", - "0x409ca4196a8db10326ca032cd14b7295981f0a779a42c7f0233d71ebfec3b19f", - "0xa283859dca46f41b5ca2f403aaa9e2356bf41e06697b5722b245c68ea3f81b2c", - "0x1c917355509fab582d5556e340b71c6962577da9e189b703456dbb7fb55784c7", - "0xb928315f7ce4508f4014962fc95a5942a5c0ee66af2e125101ab02d04b6cccab", - "0x00c6a46b1b4eaf7f62e2133d454f850ef1dae798d5aff512f607dd8037e53bbc", - "0xc042c1ce9cc355d4e054e5880f7c09fa3bcd58047159fe6b08a02c80059acaea", - "0xbf7b1e204a760ae2782e926e202428312955404786b85ab00688da616682b085", - "0x36d29378eacf4d587bc5a569e8ed572cbcb71be0a016d69909a05457915962b0", - "0x27674967b0e43a5f70ec168cb00df61a1227da4ac61660769ac2a7a2cdcb2598", - "0x9bea8f7596f72268a51be1b993cde5adbbe175ad48334276295687a76f801fc1", - "0xd9e17222c824c8293b05702e3170a059543bfa3e4bdd19828203c7072f013eb4", - "0x170685db98bae956224b3a57e4cf50ae4a8874ddc988f70d5ea31357c2a83ed8", - "0xb8e7344df221731d25fc88dfd31f938005328202dffd0be8d28e9d0392a75c81", - "0x47abee9a0802d59dec86fbe5d9a13a7332d326b900cae4e3841c69e9b25ac788", - "0xc09452238c2890433e14e0fcf826051c752580f147750ca745d1b779f303ef9b", - "0x05bbb06eb270618437a1300c02964c8f854d4a6daaab2d59ff6cc69f46c7234b", - "0x89d752b94f59ad98d59ee317c3ebcd840dcc997efa7fb88797c35477831c695a", - "0x2dc622984dd44a2cbb4313c7efccba85b497e33214eb314dfd7f2be40fee6cd3", - "0xe23e51675985c6a4f887c843048487721da6ae6a6676adc87a805fdd46149f9c", - "0xa452ef2f6e358a534dfc4914a2c7ad3ff9faf2d16fc0b7cab96659cef5e4eea0", - "0xec9f04f090f443596129248d8675aab78e5275c56691444604751a0bb5da443e", - "0x52d8fe33aab98f680b3b7d56f501621a5516d3999bf4b1804b4ec0e845f87ee4", - "0x22dce4da35077c2efdb94c41c6ec7e17c1a3604c3c7b70041728a96c3d533851", - "0x706284df96499696a8c20c7a685493663b149af04afb5635fb831bdb20de256c", - "0xcfd7fa6c9a27e3b9c1f124522c87841a22105c561224de3c1d7a5e441f980c94", - "0x562458d2c5b55b9fe6116ef5cf165aebcc40d86863efb5036d42f1f86a804e73", - "0x05fffdd643f1eefb8083d7c2acdbbd13e076134e05c0ca6bed8049bc747403ec", - "0x1f1d7cb9e496d998ea6f8bdeb31e977dffc942987157f571cfb38037b8585bba", - "0xaac332309b32eb92fd347871dc513987c06b984ac00feecbc686029cd548ed56", - "0x64c449079ba124feb488948f3b17f6e68207992d71cc4a383563510503414932", - "0x0aa5215822bdc1f3151756079fb5435df2abbeeecaae1050d33af6fa1ab37a87", - "0xceddb86f1882bd3e196856e9a43d95a37ef115a4a2d2a86166ae827c7b0e8f0e", - "0x3f368b92f5217f872d9a38c14e5791b72b3b25730962514677e2c069bc04de94", - "0x9ef75df3e9b2e97208b2c4d0917ba6de03b437ccba8e580b9f4023a1c753a354", - "0xaa662f12ed9e399bdfa0e81b7f52c217029166b483a1ee492328d596d95e55c8", - "0xbaee3ebcc9a9de22b3d4067d905beb6c75ec7715d06a426dfba366da9d9b12dc", - "0x4fd3b9baa9f53e6edaa14c9d69f0cf2f0010d9ead83963d96b87b7505b97e83b", - "0x808d62434ef0cbd193a3ec3cdc60f79ffb797ea07d53b98ba1afaa8497cdf7e6", - "0x1da441a4ef8e75eab531c5fadee15bd1a60e93043e6f5b5264912d760ccfd79f", - "0xea233791cf501a1b6d172ecea7ed1e2fcc39555b597fa3ef86f8b63ceffef6cc", - "0x57e04235e51c579d0a7fbf74d469c6a74403cbd09ee56f168a74a3c1fc5940f5", - "0x46d051393b825130670a2d56872467b02033a8eb479d466c6522fc466020e76b", - "0xd9c313e7ac54bf497a315c8af6dc1f3751e10a97dab570b04f80811208f0c2d0", - "0x7219321803c2a129ef429886035bfbc27dd64fd50515c38a7c43bcd184a68380", - "0x140c4deb5543c31c49296e68bbca9d7c10799ff293e05ee130982a6d9f3d4638", - "0x2cb5aac917f6c1519a7cb3094953d9851d5498b954b62b05045ef0fb93924419", - "0x1aaaf2699d5ac7bd2124f3509fb2148dc1c93b940c517eb9d4417b6a6a911a21", - "0xb454286ea98d62faba2a2e531f6e2a42a61e23ea3274605f8e2c776697085dea", - "0x100a6c25a0221361db912b4a491a001032a3cac6909f8d805ef82251f635aaf3", - "0x08a834de8f3ca2dc5f7075f0ef5246f6d824ea4577a3d238b2458676896a846c", - "0x6c0878c40a466520a5b86a06670ff0e1ce97512205ae8c22995d0bc48d9ad222", - "0x6835b4bb12bae675af54580a1fc57f266c050748a583f8b6145306fd3bf86cb9", - "0xa66940592c705e99bccb61c82e6112cc75aad73b605aa09280edeb065718a043", - "0xc565e42a728c1a0211ebce7b5ce9b8088e74ba9b254ff339611806c239dc72f6", - "0xc691d8ad39fab8e168266f1d502f02f269c7f44ddd055dcee529136cce2b835e", - "0x34bd34e5e476acfdef9f3c260a8d6f9d4236e58a9fe60aae99c38f8fbd465b38", - "0x9bf9269591e17668d01181d6a0d71ac17b494340e47034ec5f40f91f0bde9f58", - "0x3f3b051eea4259b90aa1063772ebf6e05563c7de791707bc8e35cc5ae561d110", - "0x7021c2db5c4df7a546d99750bc905b1a9f846afc688b7a033653feb8a9afc12c", - "0xfc7b212e599b58ff35eaa80b49ead63215ea826dcb3edc4df7500334cb929935", - "0x6cf11be5e7c9b94e24ab241b7552fb5bb089ef9b3dcd62bdba020b0332d4cc05", - "0x9353b5f84c414f0274732975cd3449a7ba55aba6665b5cdca14650e6387ffb3c", - "0xa4717f0fecb6a35c60e9669c8a754c1c2d41f6144cefac52531f9870fe0351ef", - "0xae685fc22226cfb05373350506f1f2072406b3d391a4b57ea5c467a9286ddc3c", - "0xd91482bd0e080649387aa580e255d77c197c1734a692296b27470d8f20d971cc", - "0xbe97061686e83466182be54cfdc721637ef26e99b247ea68b814aeef0123f076", - "0x8bc0768fa4670eb28beaea6ebe20a7acc0f23832154b61515bdebc9e6e5aae61", - "0x9570703dace2ff11a3e8d61552baaf3e5e812eca124f42210f1300ccb2116158", - "0x21a68948d1014f8e541adead6c9d0e73f003dbb3cdc145cbfcdaadb1ab0449c9", - "0xad51740caef4a8c01223fe11d7346852ed0873b38a65fe3ab1948e5946e6a8c4", - "0xf5b3e50890db272ac29b8fed050b89a3c1260563466cbde8aa6d50ab66c28a54", - "0x635e873d51779460b6b4dc2683ca229826e5a40ba0f5963a0a27d02eb0370cb9", - "0x13302c3e93380ebbf6b54be15f792f0878396dfd9e8da75689e4dec5f30ca85c", - "0xffb0746ad72d53240895bbdb07d1cc5a94bcf4e6422c0dbe7b2b3fff57587271", - "0x1cef16d47f2975e4517a9bead7df47d7e0db677c68d80e50edca3a81f493cdb9", - "0x50824f81d7ccbdadfdf5fc4b082d920d1416d6f3e6dae3a347e71993a2565ecd", - "0x10707c02efc13e50e5b1a9217ba2602ec77dee3817385d145674eceaa21d2892", - "0xa281eb9159884095b5d3584b67bb7db899464fa176cc90800ed8ccf23eccb4c7", - "0x2f63567e75786960025334d3772571f6fe1ff411b6bf867c84c1455f3954ef13", - "0xe1d9eb8d78fb1365f28d4112b14f3d5575a68f1160813f0d0a2a1faae3266d1c", - "0x7a7dd4036031fe92e19c41af52f5c039fa3c12430d5b79111c568681b640a2a0", - "0x509e93ce350453b61b502de0f87fed794b0d77bb6878225122eee67a1414320f", - "0x679778b1f6732382d834000d24a94223b69a0a88b56d0c070b659fb2daed668c", - "0x49963e1807e7f45e132a7e3d2cf7c10fa0e1c36aae866a9641cc801ee8d261aa", - "0xa1124f9bf0d2b0ef671ddcfca3a66a86545cac8ca9ecc82631480ca091ccea94", - "0x9ec43a9de16fc83ddf5022891c6f5593796122b9f9c72803373c62888c5f9198", - "0x5af071f137c5584bc1766ef4ef092fdd8f4a3a3a64ebaca50b169a22e32d2542", - "0x5b3ada30dc686e15bac396821debd08d8a96fe1450e5180170241cd6527b4bbd", - "0xe56f8e15e3f74d77427424811c6d03b2bc98f010750c6bc83c34b8eb94bee0d1", - "0x5dbe293dc9f09c20091e29ec20249a9b1e52e28ec863afce106f03a75b88b111", - "0xd61adfaf9d822c3d8e981725a42113a13abeb8f887f16e0ae021cb23d7255a2f", - "0x1efdd0a60ad05c11faecde65b02f3ba3fb85bce685a9b89ee4e6a94ddde4b7d5", - "0x60613e04232a203fe161398acf4346652a9b6b9a07837fcc06f53a950136d911", - "0x1b9f0c43d87ba4efaf7781da46f52a6eff60b8c9ca6d81dbe02bf6774fa80047", - "0x41aab71c01968d0cb73fad35b9839f6ba2e8d807852ac9c6f1220d5aef866f74", - "0x67ca5da2f269bfea45e0ec5037bcb1e467d5938eff17760f6b3c5ef74448af69", - "0xc16c2d3a36275d3123d5d95b6ace3bf131af1e6e07de185a8f4e335c5a3cfc1d", - "0xa70dd20159272a4d8e5efe456500a1f710a271b690334e98862a24d31d4427f4", - "0xeb932d05a4e57bd9cbe363a96cc616d0aed481298cb38183bafbaed9384ed27e", - "0xad772cc01c6537fddff8eacd182680e1e8b0d203bbbbc317a4ad9c1e7c1e4b71", - "0x81d7acf3f3760b06a68257654e4b0c466883e3198c61ad71decae53963435817", - "0x33cbfe14923923214b2047d445696b34251f70d53005e84f43e383fa1dd791fe", - "0x8a74d3f3c775f619f9225388fb5172b187141a8ed35ad794c40b2d278e6a388c", - "0x9db16af2961834b804e6330a9f587512c92a137b8656bc5baffb227686fea9db", - "0xa23c0d4f859ad30a4b7d3863ad16926faf41b4623e6adf9c7f2a59815890f4ee", - "0x97da87b047a43970a8e537ed5cb15c0f28885812262e8119c659a3d1a92f8aab", - "0xe0a2d92c83b8ab1bfaad4bd1e717fb5dda967c001ec7662815042a3544bef441", - "0xc70983fb6257a34bd43862c405023db2112f0b1c4a11aebc23ba17eee3ecd1e5", - "0x05798069ba546f61fec26ddc4b260fcadad3a84d612900ee2afc84e10dd13358", - "0x1d12ca65d3a55ecdc19fa4135e47bf470bc6ca85fa6639eeeabe951d9d0ddfa2", - "0xd47f4b22fc0326df733607783934b1be3818fe057afe802216178a450f507c17", - "0x4d71d9619222c0c4ebd0fb25da7e53358ddf4ab2cbd962ad88b37fbb331442ce", - "0x2be4b69114e307d117df01cb568d35f79588ea70e9016f865f641614691cf7c8", - "0xa87d1304e2462cabcf90207b81a058ae766273007821ac98b718467792eff05c", - "0xd94b7d41761d34a27c5cf565f0e92fbb65ccc3e8aeb5b1c1d9d233b032f071ba", - "0x6079df72e53c3f1793bcf5a4d22ed2035e31662d45bfd210c4bdee475335039f", - "0x85506dcffd6342df61e673ac01219c58198558bcaf7759eb2e4b19925ddae8e6", - "0x6a19a7212075395bba890eeaf4709c7025af6ef3087ca86671da478c7e49ed83", - "0x62c52d8ad2b6c000462358d31c652b280bce3676f103d7182fd3646a7f007604", - "0xa600ffa0e6d161287d9b9bfb13ee9dba74699e542aede1278d5344e6688f0382", - "0x7404c9ba05ab64a8e88847dc725b132b627686f4531248ebdd76dc76d42a8b36", - "0xff0198b39d39660cb3c74d455b4019ae0f23fb181378c207bbcb3b79587b8558", - "0xf47db7ef987a8cc32dd3f61b44e6812c940592337c056570d265e1604ef49f4b", - "0xfbf7eeb0951ed5c4704fff2e5d121b831637a86472e32c24a7b85e9daed5e1e5", - "0xdc560bf4b2d849ecb777a4d2d8a3b3bfd12c1a4a295531573fd1d493af34042c", - "0xce32751e3958436d8aa727ab6f89d1354cd0373f288b40395e9105aa905a1713", - "0xdfb4595b9c8bce6108ed0b550f920fd098f6757a3e64734fa97fd5a640c962d8", - "0xfc557009bbfc0b2a47eb486002568e963a32eb664f7a55d81335ef6efa79c804", - "0x9dd310e9b00e69b7d0b0d91db5095065c78bc91f2321df8b5622a490ef940626", - "0xd4ca936ec7acd0d54c6efd71cc6c808573482f2510175ac6251f1cffd7a12ade", - "0x465a05fb5c4c66d0bfa64097c705eccb50bafe9d2ba223ee69111b16c2014c02", - "0x634d4372ed9478b3afaaeb35e316f71cc5d371548260eefe273c236501d5616e", - "0x16ebd07c2e0032fb1c3722df3647e74650b7c1c81f4e7084149a30524846ccf3", - "0x32ee5ef340cf87e26642d11d619eff9ab9e5a1518815b9897b6a95007e2b7572", - "0x47ed528e27c42d8a4100a84957ef81a4784c0272f5e3cb6a68212af492a844fd", - "0xcc376aa2c1b0b49f96bde6390d5ec296fe7d5671d6bb5b5df31cdff2eb5f08f6", - "0xdde8938b019a5e587a28eaf579b5e21892bfc3475ce75112c4f1d9a5ef65dad7", - "0xd0b4c6d8ca3d95851c34e729d9228cfb0f4c4efa7fdcac3d96ea4e4d3e0c0189", - "0xb441266ed512646050c73207c3d88869ccceb7584f3325125a5511d5b05bf5e2", - "0xf05a1a620f1179a6ebe9281fac034638620155bf9260bba7df47d59b54789bd6", - "0xdba9596e7229cee4c339fbd182b0ebd076309e3c8d3653060a94dff252ceca19", - "0x30142242a511348d48171bd65aa191fea095446cefc49967fc7ac88964efb4c9", - "0xed1b743e8baa487193935a6d974a7c417cd42fb761007e5ef168f35486cdc2d2", - "0xfe54e8161aa159b9873dfd4f2d3b7bfd5cc70c4625855b70348684c7a19acdb6", - "0x7993784b62dec4dbdc595450f114290152676cb6938fca76e956968367e34519", - "0x2efca2f1900c2ae1f572342a077afd97fccde2b2305ee0b60fbce8240d6779eb", - "0x99ec617f5f447a4608d5bd96ca375a33a15894270ce22091b60f308298ac51e3", - "0xa38427232204d3f8e58dacb6495799a6c21e60746d26a438d8504dadab3a9bbc", - "0x8c39c623cd06d598ef78e2c46f7506523ab9ae5fba5a7273366ce9a3d9bb977f", - "0x9e15df3655d1a3acc064309382a41e0f7db24925ebf1df51e23e0693d9b119b1", - "0x69b4a6a1cdae2b0f84a18b712286ee304995f6073b6c81fe7ee544ab1d17539f", - "0xe395574bbbc54fbc2e3dc7f363abb34dc760bc2f6fa92c980d26d5c9df5681f5", - "0x1f863b9112535a87fa2e28cecbe0af5c22dbeb41558b93cac0dead527affb06c", - "0x78229983620efa77087391d04057e1971b2ecde2c9f9d959f769e18c1e07a8c5", - "0xcb72a2403046e54d6babc6cb9e2db5f79f09a9c45f983dcf595dae3fece77570", - "0x5267de76947667220d218ec4d1c3db31213d991e59cd0f8e4e547197e4f99205", - "0x55b03de02f92b3210a614f8d0eed98e056a348dce7dc03dc46dec5f7ffa942df", - "0xc2e6b807b1baf078a962a9bf2d92f91c0b326cce0ba6ff59c834b812e55278cb", - "0x94073fbeb062a2fc6f1a0450776b598b1a26aaabb1c1b07e79ba0a816f63ea26", - "0x2521e9b0d16b0129ae594dbea0a2fdc115c379c6c754933ae4dbd20091e8d148", - "0xd2e288fcb68b22fb80e5591bca2524d7a21eef199c3c333a80218a4eb698550c", - "0xc92539e422408c2bbf932556b096d90cea0caeb81e29c2c92552d156c2bf8399", - "0x5ffcc95004131253c4b32e34f7e1db552938b092f7343f501e15554cebe914e4", - "0xea70a44b30ed6d5a7e8e9f85eb8b70aaa05320489054faa40e15989e01ba789e", - "0xcccead6845a28d610af1674a474bd77a5042ce93f682f0c4e879cb0c3e836320", - "0x3ee01f8d3f6948da18f0212ee7c990bdc2ba2eedd020d29461d9d558ac9155c8", - "0xc5aec3935dcbf93026bcd8e24632e405b56ba1ab003cddc169b41372ea6d3a59", - "0x1a9e0622cb0658017749353e3167f38bb1961c4088442f124c1ceee2dab52945", - "0x2628f184beb5baff725a1918ad222900d41a1c3911eca1f272b484fe103ed4d8", - "0x2a03c227d307eb99185eab66ad4fe4b77ac1a0245ec28bf4d87702092461c275", - "0x4664e5b9b20927813f129a23414f319628243cf2ec6d93b0779f0bab5c602803", - "0xdb8978d3303d1c40d51e1608a24102af93c15ef7a82bb3fa8f9a1ffcccf87bf9", - "0xbe63631e76bae0c7eb4ab34abae21f9c827638954578ab93e823d9db8212c08a", - "0xfcb959859a8eed19f6cfabce408e5207206e8e0f96924328355a279f9fe9779a", - "0xc1f2e02c014167d9456a985c669121d543e39a8957aaf328ec1779de2803ee99", - "0x3261a5631dc254f335cfe69cb835f61e11caaf9b0299f0701ebbfd0470755313", - "0x02d30a73d3a7fec6c2567e1f2861113428fae47abcf76167ec432da20515134b", - "0x312e3cc2897aa8eb766bb4d0a91e160884153c90c266d03bb6efed08c4f48cc1", - "0x00f196dae3153faa0b4ce1bb9b3122f76cf1c1398fb43f8aba95037b8a6d797d", - "0x8e4bb4443854630bf0835c3644270462d9b7e8f3fa409e2c8c420010c8dcf0f6", - "0x3ad0e8f5abb1238702bbd95556ac9a9018f4a4ce107bb2d87b7ebc76b0b723ea", - "0x5c78e87df5d32db813c9e89d4934a18490f9ec5e4f2e5e66941db9e6c8dd1129", - "0xac6749f8a149d465b9d98dda8283425ae7e27eacd803baf2babd9254d2da0e97", - "0xf68f70077a1f7d69e5afbc259adbd51fd97cb78e45a38bcd698922ca0f2c17bc", - "0xc6b1279ce5d96648642dfff31d3bf3d989de50143a69dced098f883f2d58ad36", - "0xc4655ffd7482e52531cef2edc1f259f384d69a3920f699f6443e92386a0b63f0", - "0x28ea7302f04d4ff4b2c40fc150908ffc34403d7e5d756be4e980983e08a72db4", - "0x87d6de7a3cfb49ba01d006bfc051c5d22c2671eb67bf3af87291d34bf84dd328", - "0xd156e6fefece7a5613122c24733683863b9a20f7fae1cd022b093c9dfb53b366", - "0x5501015e22d6086647d60e44df262d70d4d8921648bcf366e8442cfd8421e83c", - "0xfe520098dd0cb9422d83d4a562c099bf8445c25e93b3b9a410319f0300b710dd", - "0xbac6ee3d851c6d574004c6645647b2ffa6a3519f13f3ff9529e5924288815a5e", - "0x3fbbb9d0516549cb952f1be5ab6e69d60ef1a8369cfa4d22152d006d886eb604", - "0xbc1843d922c2e0ccd1403a0da02b4f758fad4f02bb09ab823560308826149cf9", - "0x9ec0d3d14623babe08dbba627c2d478ab34a0a0f46984e528499b86755bab02e", - "0x98715273786d911f75085819b301792d241d005934e2d93e8e689c8a5cebc5f0", - "0x0c25dafe9a23ad5d17e97f23782e11152f548c73a0ff58fba9b3a64aa26cfacb", - "0x7a8fc37c03b6ce7d275c2a4160e883787df5010892fd6ffad54dfdd70a97168f", - "0x342816670945437b66e0a12d5eae2d284176a54cee727a5cff6f5fac83845864", - "0x40f472f8737a813a879eb762f085ea5966934e1a4562b212b11612b5fac059f4", - "0x865b00c472ef94d6d9b038f328aeb2eab1e81cbd2da3c4720257c8b4b8b41e76", - "0xe94ee97f38d8989ab6bbd137ed9bad8529c543910e5a328b01fd5571ed63199f", - "0x57ac21373529bdcb22c053797736b9b600737d91ccaf296ea761bdb9d425ed74", - "0x4c56a968ab57aa36196bca9841e308e4ecf366b21891cfeeeb4a7741caf00bdd", - "0x79e087e68abf35a76d839a0792932730441d2f57506fe7db72b9b91b3fbb50d9", - "0xad2df80333074a637b0afdf1dca51759ebb10d7d443adf507f41a99863b2c7ef", - "0xbdc6c77a8ee0b979cfa93d42e4b87c9aee8b0c19e6f19206008a5d1083909478", - "0x369810909434600983003d17fd321e7e73dc4b8ad0e73d925caf499f2b836690", - "0x4d3749a7865675e8a3ecf2b1af4b7c3250a311ca8d20449e71d6d8ffa33a7536", - "0x7286924c10b2db63e61041976ca7c6bd3d6b1ddc69eac4dac03427e0460333fc", - "0x33edb799e39ee239790c7d3a6349218284a61847a235f9b6978accddbb57467c", - "0x0f131efecd5a1deeb5267f4f99e64ad2dc84532f7698802fe500daa8c306c1e6", - "0x96f48183924cca8948eeb08c3c5320aeceaba747c7f7ccc321cf17ec0704ffd6", - "0x87a8c9e79f17968814cc145bdb1325a2b5740cff68f1ef7fc7ae42f20729287a", - "0x3c9d17093214572bfe4e6438528163d7b6e24228dd15ec1986924f07e8b9e197", - "0xe9c033c63af4230d352ee370bcddbcf79a284e113ff5b8f559d5d958a6648f2a", - "0x331c86081b46499c6c0b23304f562afdfa467ae8b390e22718f2abd96dbb6c2f", - "0xf783b03698791d07c2ce40bcd9f69e6f04a4041cecdc85e17b96e6673f57d9d2", - "0xb886c566152b6f0fb43d8eaae97d8f6698caaca12845f63e6b98872d7be91429", - "0x70abce391cbeb52597c5cd3b3668e33aded768c797a1c27d22ef827c3c82e516", - "0x37b6b2d24a95cf8837b6345b7646e48942b1dfc26bbe8a0026715501e56d1d71", - "0x95d0f6f51d5efafcd395e79b83facd5886c4cd68fd725d68305a8bd3e73fa818", - "0x839db36c5e8d539cd87c2fad2221a95728d201e27aa0f21e48c61a4d50088e6e", - "0x85370ab2418ca50bd86694bebf26c9fd59f7b737282375f1a53c06d1aecdacdf", - "0x42270a3434074b79bf19b043bd5cb7a819d5639461edd5eddc24b336fdb39428", - "0x105f93a4dbaef09de92dcb0fde88051d7cc267ed11ee0433c2840ccea459fc81", - "0x2b97bb02b8447cab790dd30d312471385d233b89dd135c0fa59ed763f7f1a5dd", - "0x39d6aebdd41ddb3937963660a188b9e840166fb249c2859cb442588ddaeaa2f8", - "0x635d327dcea329de7bae55e025d4fee8470ffac2ecc8a87cb2a796b822cfbfdc", - "0x53b87772eb46bcb5dc54ee6f2fe0c8ec1384bf13e02057cf2fc551c657a961c9", - "0x9cf06b583c647f8c5e875c6d0cba5ffff00052620c39d49a04095cec4d4c8c51", - "0x917634c039976e153be529547de0799bfb23b733c5edc42e1e54b3e6ebe55d11", - "0x108e5ff2b56ae17fe3dc92203f454fda904dd4e15f4732397fba95f38b632f98", - "0x4bd32df511cab41fdcd3a502704c74f3c7b0eccd352b82b4c3c28b0a844fdff0", - "0xd8e04779971d970f01a77212d1ee2b8926d12194ecfb756f9f83b524c072abfd", - "0x1f0226a32fd46224ee3d9b7424df992847a711660fa1777ee8ec699a255a3046", - "0x9dbdd6b26f1fa61ae7fa8c31bcb259c754e2827d6c6f6e7a604ea84f54770255", - "0xaa59f69dc2ac48f6e2b06cbf95e68ab1d0971ef6ea4274ac4e24263d01a2d0de", - "0x217ab35702c7c959e994c09f9a8bbd939b9711c3a6c4a57d03b02d615561cd13", - "0x8016f4e0ab60e64c8ece505bc77fd8ae9a73e663200615679692057588706ae7", - "0x1ab438e4d7e7ac9e9157c2a43fcd730f7b3bc70676a302784d22dc6e9d7cc1e8", - "0x902a3b829ef54cd702094667296ff452eff0aabd04f76046cc799331da7296b1", - "0x80d14802bae3c50cda30a6830db5122e72f7dcc67544d33857e1153a49bdd710", - "0xaa73faa4c36e080065a0640acfa4cdf16de65fe6aa1b0ed74d20ab01ef675b32", - "0xf129f354afb67cda78b4f05e531e0553b512f8238278a7388a8ea2a26d4fd5fb", - "0x8ac7e8a496a2c3465ce049ed69c0f1a671714369856d705c1037cbd193106dab", - "0x0167c76291a52cd70b1302ef3bca9e8449d071761c1e5520219d70344e0b39c5", - "0x0796256c466d0f1a706462c642813620e7acb3ba0e17b606bd464edd52e0b491", - "0xf9e68a276fb7585b978ccd0a5d4cb07851fab909fe223e1534897574745ac585", - "0x215b53c58f116b3d45669d5257644b866639eede3eebdef04e171d9415247eb7", - "0x69425708be100d1e7402bea70be42a2dc981ff3a4d7c8c5c859283c06d1283c9", - "0xfb0b4c899f6081eb3e2b4bd4d32554c0c34199731d3f80976ac3885cd62ca5d5", - "0xe07304905487800ca8bc3357236b5b4971ccc884612d4c3a0fa903ca4ea399ae", - "0xfc0e4e84ccf10d44f338d76dfd0562cd47db6758dc7f3eb08006dbcd577c5dbd", - "0xd198d19f531de16e174f85a4cf6d3d2d0f326de398f027223f34534c9a6e8634", - "0xf5f6dd24e48fe4b37a5098700dea861fea66c835e81269ec20b911fa821abc8d", - "0x6930e75f5170de31a5cb2f899db422feb51f080f83f49be83951eecb5f913793", - "0x5a8d5ffc0944ebfa1273e0162e766fdb34fada198583876f0931e331ac7164c8", - "0xc6a5ae3002cccdc6bc302c68ce171dd83c385444ab5c04c66b19bf67255e298c", - "0x05c8c483696d2aaf79f985706ff9e84c9ad08defe8399531aa0fb3d32fea316b", - "0xc226d5d5d4df247a1e5cec4fa6fe43605e9ecd27bb07b9c220c4b6ad5a4e70ad", - "0x312cca0e8c4b55bb84176a54926d1366dd5928d9859f1d2ad2991e0fd9624b79", - "0xd0aac977184cfbdf53ee96ffb2e0bbcb85a202b5c6ea02f9989972c70120468c", - "0xdb3b8102d9a9a363174e138b292ca67020f31fc819cb15c5cb9ee34ccf2d2f8f", - "0x1a50ef2cef7ee171832dd9e9162125e51e6ae7c27d08753c30c4a03cc68cd473", - "0x292ef1d673e8441c3850d68ce27faeb572083864ec22f09220cb9f4fe32d560d", - "0x0cd5290d348d7462f747030cbd8a38636f1549023f8f6379c244b91420312ab5", - "0x2a35347668b072eb67d478dfe9146822e77ac78abb4b69cf57478a87c4f5b794", - "0x70d10e3336ea822d3385352737397cdc660ee71e07158fc1ffd711d249daa841", - "0x1f9d182b5e755e9c0ab2f77a9f302b01241c4d235b5b717237b96247a9157141", - "0x93ef750e15a936c2fd6f047e65affabcc2c0b5bdf3cfb160402dd0696329a654", - "0x17c7f10a273615b0f8df2044396e3f0aa33b46ad053bf6ec6dbc32273e66c4b7", - "0xc249c69c4c2d40dd9d0a7fde388824ff734f3b8c2868d1e824a52b32dc05e58c", - "0xc1c1f0f9ff1c472a7e84ae89f8da22575df60fa7f9479fc3638f2f0d02509010", - "0xb563144ab0b85113b0e30109cfbde500c28faafaf922c81939dcf9f1ea469752", - "0x80f88663065d058d2db7e55df1af8035c810e36a6589f4b1989794bb32e337c6", - "0x25905f6b1188bb66393a10ee044c6bc197627d83301f766f4900d36cbdbdf8e3", - "0xb73cbb759230184289722513df452814de312c90f8726e77b129b6e37e5e803f", - "0xff19c1a15bf598da49fc91d04c7401c88b4aab08fa926e467779fb14d8f8002b", - "0x71d46f2c6a4d7291a9906df0beb183d495248599e40c41da6ad30ca3fe37f43c", - "0x5a00726405d2db913571b141053892aa41faf26644c6788c16c8f417df49ede2", - "0xbb046094f514ccd722d224a2bc4b6b473c760224a7b36ba09a21f149cc244e1d", - "0x8b0d483f156f390376c526acc219070a9c393df731b7115753e934af20940621", - "0xead2c2100390e48bf720d19378964dfc1d0071e28c1d799b2d5d529b118290e8", - "0xa4169df4e2f8662b43845598c58a591e6fd17574c0d567d7b702d3f12d4b74e7", - "0xe14c4be058238b81d8025fa71abb580aeaf52d4cc3aa4f05bd5b24be77479fe8", - "0x81e58c707025a640a9b014046559ee7f827142474606ac24ccbd61557b0a7745", - "0xc1717626f785ffd170697d0bd148226d1916f16461796dee609f59ee5eed3423", - "0xdbe52fc3e71b136881136693f3a318d9e3257e6a0384d17768cba6c84b1e3ec3", - "0x7596e35148892b5831e2111a168ea56a59ede2f2222a08f8d82fd235f09cb267", - "0x130fdf1383873279e44ba21c7d1d6f962ab3d71031270a0e5f57f12f90eedcde", - "0x0d52be29476a3b4ec79a432554198255be617f50ddfa6d614ff5b73302c44067", - "0x3f1edff4b943e5fa15bddad5ab9e3248db0335359af255fd6efb66c8b63bce69", - "0xad9909d1fdd9e1de3e6cbca641e42a87e3fa254a0498085790b3e44e6ee42045", - "0xaa166286f4e1799f9ed1033861eb8b2117810d08dcb29cc3f7a3fdcb05989780", - "0x11401b423d204a1df2e918882c3f795e9cd1695ad0badd77532bd2512eb7d1a8", - "0xa738bfb7ad265db50854afc6d8988d5342ba77d7021ad5d5a45efd582b6b6bec", - "0x25051016399b94cef771f16cef661de81bca5f3803c96c602dac42d395679c15", - "0xeec18e2c9d76a98455ea4e50f744926a13b9ac8c6d0f575128787cd134ade901", - "0xaa4a38ed3e461643c1acc765ed8f27262eae8ed1dfd6659c4e4e1ea080f42363", - "0x42760a8066850088424917edca117faf1df6a05221216479aaead8ba11286400", - "0xb3503c3841ccf8bc2853eaa618435036b976c9e77d1e1081a5fceb036091f9d4", - "0xcf5979cabf525d5b6cc1199358688fe0bde640f6ed95dd7c30a6f42a38337cc2", - "0x713df6a565efbb13da4161b545908ac4255af1ce8ab229146ed00954b3c58e4b", - "0x9ff3a78a18a59687eb99e54ac79df1ac920a3361b3b5416dbe95126f8de3074b", - "0xbaa888556f1a519b1b1acd01b4ebcd9132dd55bfec1bef0ffae9408152333fce", - "0x5ced4fedd95a4742ee250948c233f59587eb1624e3adcfb6662f9d81b5517bad", - "0xac1d2706dd82b142b8a629b42ea5c4f13286af59d24f21b3bc36ebdb4eaaeeb6", - "0x1d99ca18dd1d872a4be8ed45385d0898215041f54e7c8e7f3252ca212b4eba3a", - "0x1dc60cc7789fb6b25c3d27868ac49136e09f6bfeb09a20061781ef14cb7c670e", - "0xaec01b8047a0693e78b6ed445396dfe6dea247997ad32747896ba0e30a20d2ea", - "0x977779b6e2da8fde03c1151537d2e03facfd217650e862c3fef07af71f34b507", - "0xa1634dc9c2bdb48762a7bf7b41b74a2e8d4d731b15792044cff1ac3b416fb28b", - "0xc36b6333c28344a360214708798c125adb5e2cf8a2145a216e303186b85a8f91", - "0x1196ee872385c8fea747eba6f5b4fc6f30817714e86c28b657c24593ded2e0ef", - "0x8dc3ccff642a29b46266eee8782b9a9ebcb171ba154c5dca0ca5f73fe24969b0", - "0xa9dbea651bb7a362e526744229b3e1807705ceb492a8e4bc54a9a1f36102a9c3", - "0x0bc82693277412688a6577a6bc95ce99504a1a50904f49b4b4588538f506fbf9", - "0x8df943b0847f1de48f76d6dcaec5cc7b0d7d839ec5e6c8c887f6e5cd785f53cd", - "0x92f4a5577743eb6c34134fa7867cc7d8836fdfd4000abec8cbf1460d136054cc", - "0x047f5f8332e788d1b6be8a3ecbebffa80ad6df670cf4eb4e76a6f22c5781ac14", - "0x392652a55a85300848f43879d9a45d8b7fe5897467743d51a9208b2ac0dc029d", - "0xfa2e6a2cdf4949028be0772f9513169815fa9af20c53ce188680f09f57efa671", - "0x0b86c1c1e683a9e6debddb8ef516b16fb15709b87dcd780ad6cd7f9b9080f4d8", - "0xc8e942935b64b294ff66d4fddc51fc83b0097772bca50140e738d4c034b09cb4", - "0x0b783f8b64650bad1753e4f86fd66b99d7ad03d2da0460bf44965a1f443b70d9", - "0x8a9aa339e78f09ad3d2ffe3999c22684d519219b787ac3cc64c772d1e6508392", - "0xb8a2303cb9d927badda947a962311c699a290545b597f0d242f669392076facf", - "0x34a1bd076dd55dc6eb2e675c5231b3cc8f2a197194c86242c9c5c052a6859d28", - "0x0623254a886ba8bb191d3340e9705ae52e71df2717c6e84bd07a759d1f415d91", - "0x37d451749a48d1cf4780f28360c5445d3b749d8b24f065db07b8df89facab6b9", - "0xd73f2404b935580681cd7f6060b17ff569f7419196e67596f101b6b1d1d913e3", - "0x45029ea3cd0d90900c46df72e6b182bba69ecac1a9289a4719b2f6008f11ffd0", - "0x23315337a4609580ca1835f370575bbe025d2ba5447b61e583119757debfe35a", - "0x581bb3ed8dac28e597d89e9a211bce6b011a4b6dabf001597b68e5e8c6ab7c8f", - "0xb71f91dc1a2eae9ff7e0aacbdcd3d8a77302437ba0e9d327790c5b92c7603ac2", - "0xde661510c4713c64961a0ce9db1eaaecfa509e66446998450178c0afb4f5a670", - "0x9070334bbe9fbda52e42939155c43daa239833ed2d952eaa5eb4d5fa8d56b708", - "0x7dc07b309fa5e188f2e417525e9228b80f84c6c36ac00cd3e49defa0e0146e15", - "0x2e9ecefa3e28f4b31b876e5d9214877ac00be6e7eb65a26990fdd5a2799dec54", - "0x6c4b8dc62fdb63d5da2e1387a50759e82f00f7b3cb9c4306d98fa1a4630e0136", - "0x1244fa807ba8ff8a27b88ea1146c3386e96995ab1d7b0f491efedb89a2400028", - "0x7b18bd023a26e920b03e517b3399304c2d277045d2bc62ea7ca0ff8dff1e453c", - "0xa71afca6a9475974486a698a897c34cd6b5a7dec8023c62bf252f60b3d63c306", - "0x4162c46dcf1961704d020fb0bbee7f9c0ea85f4dfc58d6db2c09f5ef0df543ec", - "0x651d2fdf296254f97528a2f7b2d2395438b1f58ed11f4d1cc076f1fd04912824", - "0xc2705774d530011afebc9430c39aaa28e27962427e46164822bfd6da9948887e", - "0x9c88eb61fae9cc442bb10503b32a439b771f8ed67d626c4980ccb3d53cd24fde", - "0x8f86c85d3df630b1f292217035ede6ab978d9388fb6bfff402419c3de0a8406e", - "0xf8946728a1deb862861627606bbfb887e66d743d47fe03048b9b1799e083c5b3", - "0x023cc1ee86a5dc550b934e28e668e3de2c0a925c9c0dc9fcabec34d33da07a75", - "0xa40e3c2eb6531a40239499165490be2d6a986f356c3e50c4449a81a9ee037df2", - "0xe85b21c59987f25bad5ae1ee09dadf22ab33530cd907ed72819ebade1e2b84f7", - "0x9acd8cc33e4e79adffd4fd50fab9ba6025822f2510b165d547c3bdc037cb7629", - "0xb07c7c23039d83efb37b63873d4c7dabcb4e9265bad35f9a1667114159cbefe9", - "0x3b470afc97f674222850a489a3c845a1c68384c88c03ee3946ceb90924c7554e", - "0x669492bc00a496fcfa5920c9617f74170242d2382c4cd231d22e48e991b12687", - "0x0e4a605fed37c87fe9bb0de8ee63f571785aa3da8767093cda45da51414a38ea", - "0x5a25cabd5470cf246164f60ca6c963a3960550e684ca051958c2f768af92e227", - "0xf6dc542a83245efdddccc4527ce125c5e4409045afb2e57e11941d4d5c21015d", - "0xca22cafbdd6ce48b7cd3700090a5b9ce0dcc267a16e5a6e55df4bcbf681f7e88", - "0x9d89784fcd3cd9a0fe85b82d2329a1561d46026abf132289126d001cd6507bdb", - "0x7fe02ef1e87c7b1294501dcf0fb97fcf5b8f2b131ea00b3559dba67feb7431e1", - "0x0c5870d20c5e086520c1a4fe39d09933da794f49b5e4db186b7fba5f55751334", - "0xa6664e2bafcc0b548a41c272568d2a3ffc0328f64c3f4ac80e3c0dca18253ebe", - "0x539fc6955f7ceb8b9b662534e98512be388ed59e3e3b2fc21226569c3a85f272", - "0x1f4a0c45d47e378f8c0cbe4603e6e8ef3131ca7cbd4a732a4c5a081bab3cb381", - "0x1be1bc472e060fbaeedee56fe03a42cd74afef7321904c64ca7d384ecdf39be2", - "0x3a74f2b96cd47864ee7b113651a176c328c23059e9b8f8bc2111a071895d2bb8", - "0xdc05d7314a2fe10122a1a4f037b96e960ce344202328932e8f069d3801881606", - "0xf5b2462912f2a53b8261d4f63e788289213ca566ca915f59969c79b6698aac80", - "0x8febf165b4673b4762bfc7d1c4f8a82cdc5649065f080bf00e843a0ae3f3dd53", - "0x1ed2f84e593f6356522b0bd4606209b1291518a7ff708d21ad8765572292f3ad", - "0xb7af3b32db199c91881f8b7d23f53376c310cc1cee191cd62a1878a229dbef3b", - "0xd5711bb07409bb27c5fb8164cb2860c0d6583e5f5f5882c6e6e74b0cfca540a0", - "0xa8d7cc512c42b6028121f6114b974163f687ac19a5c71b1c25789a7ba8f38236", - "0x72f3aa7c612ff18149497e90fdc03e766686e37209573a3e5bf144a9a010192e", - "0x6950075793f3170d754bc05fdb31856d6d15fa389281c7e4f73d8c597b1aa4da", - "0x34f1a8805f65b0a09f1e5523a53d35cfc12dfdecc22e47efc80ce209d40dd514", - "0xc348d949ce4bd0299853e6d616dc292a8d33485ad93924f7b9ce64666594a44a", - "0x0f828822e7a2250d0b8f2b819ff27631f5d50a3168874ba1c1922babce345fe5", - "0x92c5275a7bb840f9ea612340bca5275dee489cc7e2b13e6037ed49b3606ec01e", - "0x29e227f64c8446f49611f9d2dbe04b8328b8165193b5a0a2ad8c337e60d7ae74", - "0x4032647c4576c6e4f23dcf87377e7a403ccccb4785e276d404bc8e6fd66aebf4", - "0x971070530b371733bf83599364270fde641d64155807d36c8ec79e73e3c990ac", - "0x52d8cb01d3999e01141667df6f11143754e7cdc1b12f5b5bbe5e16f51af1acce", - "0xdd821e13bef48af8e79041e7a5e28db421502e98aa41382d2a89480dadd0e7e5", - "0xa785dea19433b90dac8703f0b075df9d3c91394826e6b8b89abd806f5cec6ce0", - "0xe82804babcdbf1af8f6fac1dd0076550928c372d0a9dda8c0560a6f378e2c970", - "0x1dd41ff3d620b1ae3725debcb26edec36cc219292bf651fe9305a0fd08523042", - "0x9e2d84e8a10b32fae0b29b150f747041b8eed743d2e3026991c31c607839ba09", - "0x79ca039f12ab21e7ecb6d6629a501515d94a56a3c24d669474624603a0ed0c90", - "0x7cd387f75eadccb5aea925124377d09be0e7b4a9af6463dd649213c5af521236", - "0x31fa2bb5eb784c0dcbdeedc7d439704bd44294ec2bb1b4f49e6bf508381ed521", - "0xd0772b6dccbe61b5b2cbec0a95a9542fb9b89e9a75b8324e05855039c2914dcc", - "0xddcb84f63b7469935bd4f6ec405ecd619a5539c89c2cd28250065ba9b4984838", - "0xd866486a928c2a69b054339b5e57bde41149c63e6e16c066046e3fe8018cba2b", - "0x7246af9a036f7b773bff1b2f9b388618402738e6bcd03c354816c507aa7fdebe", - "0xd16bd03e80088d51f007a7068697e19cc91a0daa96816ab336135b0e1bda7e1a", - "0x3571d1fe22f56864df7584f73958b5cf9336b6afe6702cc4ec9d1f097c4fc58d", - "0x74e19b61d2a511e2b067662bb61bf93241bf538d74face662561a5d170c8c2ad", - "0x01720ba8bf55fe1caac98a1cc5843f24a1376bbd08cf630c9a39fe219ec31b68", - "0xe2d0a0e01f6557e5ea96808c0cdb7618d36bb5bdbbd1d9e2fbffc07672a120cd", - "0x0ff2e856f17849a4349c70aa6fe2c04d7fffcc6e41860774210c2c2a0208f2c0", - "0xfbe09f759660388a823894be477df3491bb6c51ef7df038dbf12ab9c122b358f", - "0x9e610db00a109f0b4a4cbb094b88680f62dfe5d3526bc83377645cfcf6c03b18", - "0xe7460e14d9b5365c3b1306eaca86ffe4f996f07909c16bfbd731443d91df1931", - "0xe7c05451729b5eb5b61a3f159d522424fefa1b30f3929366289a89b714f59609", - "0x28055b2961079028d017758cd43b12e4046fca9a1ef53e09c3a4e0da3f8ff197", - "0xac65523c531d9ca6551cb6b9336d1e78671c7aeee7208f30548b3c010d79b15a", - "0x3c6939d2ef02c1c6e9aaf6aa1119fd4fa2682b71d5b010708a59144641b794ae", - "0x40cc42a031994649aa861a544d6fb7c02aabd574a5b14d26e7802d5cf2574e36", - "0x054cfeb8044d5dffd1577bf0e45dcdc53d15c308cadcc4d022d3c0dbc292efc2", - "0x337dd5519a0f33011f3d27da8e1d2cf43dc249597f199d5388cefa6200e9e3b6", - "0x3263b6e7d5c31f7873fe32542124bf2b11ce9520c629bc8b277e1dc9152717cf", - "0xce5e58922cf860beff17177cea7aa6c0e789233ba1b15cfaab6896c45dab7e3e", - "0x7b5bd2a6e19812524fc1c1c9c6ee8b970ddc3684b4a5bc3fe865dc28726032f3", - "0xbb76c2c12be46fb4a8d18e15817f9e77547acea67f71cd3bf0f13ebcf674080c", - "0x300838c866e4c8ec4e7d130a3191f3122795c26757ebeac2d51eb69f19319624", - "0x53b73eb4f155c5f126802db8f2a64ba08d93972743f3308454be1c0c68c7f4e5", - "0x4e0de18b8bb30adcd9770ee1cab2e0fb45225737e382b4376b08d4e64fab577e", - "0x3a6ca6bdeee957b6ed7297760bbcf53bc5b9945ef1fecfe8c9dbc077926d519a", - "0x014dea0c5dfe7db3b67349ebed21bae42f40f02857456827c72ace435b6b8632", - "0xa0b1b3f7f3883d34cb1ee9789c36b607ada517c526eea23193a786d72196ee1d", - "0x2bc8ee35c612ac2a9c9e5b97d6d3b9c458f7d8825c89c2d593faba38ca116357", - "0x6d61cf0212c61b9c608d7b0a5b2395e9ff41a815f429ed05abecfe350fa5c22b", - "0xcd284b589d6f3ea56a8eac1f7e17d4932c809ebe955300c3b1da554f7d0998cc", - "0x56b3afb245b853cb2cd2a9e6b938819db181b7541003fc298347b646cd0bd894", - "0xe24a047cf216f0837c52bfaccbcf4810026bc374618465d94480d5d222c37ec4", - "0x5e80313f3a14f41e63ae80192b79456d742e0a43d89e505d938e5d0b164a2b6c", - "0xcacdae3d23fd91db005624bd007f1f0c9bc48ee212e6ca2aab8b189b687b9f0d", - "0x2a0f603aeadf258feaf46805767fd42a61ccc3f031f42f131c4548875a887ba5", - "0xf90ac12554e9929db35620b33a5b61cef0cea7209a83f9ab44937dddb4c96bb3", - "0x1a4eb8628a48f763284900ffbd01107879f41c9479bc76c139db520d34295fc4", - "0xe0b600503c7f112ccc29a447ccd1c85285a304b403aaf0d227b3a7c7ffa4d9b8", - "0x1ecc791b207e1d79e10a9252fcb35591b0cabf71910eb50bde734ff7a364945c", - "0x7dc509f4b620ccc2de77ee7064b910a831a577008b8f099b76c2c9382c4ab31a", - "0xe94bf1b965b4a10ea548653cfccc63720c9945b3f02785b650c9ed26047855c6", - "0x19001b2e4a67c28e925ee2656aa6b8918c3b6d785101f4810ac9ba46cbd80d0a", - "0x717a34a0113fba177f11307a4b06f467fe4bff06f1bb38fea0c272ccd9256db6", - "0x1f8815eb7335b0a2b0b4d0cabc9f9fd97ec2fca78a69fe7c048ca540cdd303e3", - "0x56897445682734394c0e6923826b78222719c51dc288529d2ad2ffede4649f34", - "0x3c059f0c0e1809877da2fc06b1384e1ab651dee6b373980b0c5c64da57dc137e", - "0x7a0a2968b2b0458e653fda06a611c892ea1983ca852e31d916415244f06142a7", - "0x4711f167a6332b0dcd27e4530a498d2d5585dbad9b6a5d5e71d4dd07ad57adce", - "0xbdc064506c9f16e3a9607e7864ad1b4471c1fc9e0be5f98aefc5a330a33ba805", - "0x16d54ff57301af6239313e4b98e163d1a23ce6a0aa82d08e989edd31b24ba999", - "0x225a99bdb550da94a9a4717ae178f7def59f799ef36fe9d392a31a344ef6fe4a", - "0x3e502698ef85c6246dd7040f311f277f705bc028644a873df537b80b98d1fea1", - "0xe6969b55177b17b69d45c8e569fa83d00a75723ce5ba8a4b5ca67202ac5c353c", - "0x4358581c44a2caf58f64b86802c3729cf77f2b14df54c18ceac805b219440b0e", - "0xab33a0104b936b5e1be1e9d197619872eda67745ecd61f864149ff6932acfc3c", - "0x9da92be95e0f0d0e284bd8d2d3ee01b53b60482878b1434726df51e270fdf603", - "0x9543a4c4fcbe9d86084fc4b9431cfb8124919413c03f83e8666f2ec6376f0982", - "0x7ede3504ac4981e29634f703ac85e69ab389df3ee6f6ae62f6721b500fdddd20", - "0xe2ccb0b4c4114f266c9cbb387d255ee86971496aecfb57bd98f7ff1808384e06", - "0x971d50027dcde0cc2443d898438b181c772699bc7d4ed5d501258c4a8ba32de7", - "0x449ebd55963c7777e5d5523521810f69a5d4bcd6b20f558a2a5f904646dea0a0", - "0x5379acbafaa3c16ee514482e0497d4f3938399788f207adc9a77312c11d4aeb9", - "0x704ed53672d490277a0fe111fcd7790cd2fb53d94ef9d65196e315d788e38f60", - "0xfb0ff7818c21bd9883af9e04f5a2b9e5bb43173c8f791972d410d302b5dbf674", - "0x80a5bdb23c110c6acf90e6efc194eabf88d054cf1f27588ca77fbec650878544", - "0xdecf2911a31b325760b1df7fc9d9df80f28a6bca798f5503b2f73f93a4404a38", - "0x5bf29b9b96265b010a33a4bc05967edfac53c6fb3e8a8000d8c60fa869a8e8f0", - "0x24e0a4762cac65712ea029233970aded11c859dc4a5abf9c673664c35078ac1f", - "0x68327c02f690d8edd22330efefdb6233e2c8bbcb0c0ec4905694b1833adec387", - "0xbef7609a716a8d2623ead6eb31daebfbd9421816c467a4f80d027ba7dc1902cd", - "0xed29b3bc58c2dac4b2874e34dcbb83e32fff33b28437260d17edefa4ea1cbdbd", - "0x1c11469afb27568d93adc3d9af95075530067a6411b06431016efc05b021e6c3", - "0x1c1b432281eaea836c78fc78edc7ba02b3a5d6451a13c556fb46b682b02504c6", - "0xeebaab0904bfa1331f72dbc02e73b05303b4a71f2bea6b8e1b9855dd9b2d67d0", - "0xad36e72940ba9dfab81721c33d05bad5b412c774026a76ca0caaa8c6819e2f4d", - "0x5101be8446b66c40c7c375a663001070c6aaac7ccb559bc088e773f3370e8d97", - "0x3be827089ad34a73b9f6f8bbe1c7c414cdbcafc6573f6d987c3fe3e39f8fc043", - "0x16d5eca9c07ad9a133cf54c455d27030121482a1db142988d71770d083090dd5", - "0x4c2f8374663d94c4677d199b463f16916d307430ca39d36650be11e8dfe39c91", - "0xc26e2080ec735af4b67f9058e2289477ad970625d2e8cd7c4724d3844ee68936", - "0x49b9428a3cfb02fab5ecd3b603a68df495e36219f5c5a7335237137c9855c70f", - "0x55a4f76f8dc95a2a84666954727057845eb0ecf6ee456295739255c8fef23b81", - "0xe2efe0ae812195d68c6f8f846ad0fb90240984a444a2b2b5ba1096e8d299c96c", - "0x585d1f644a9802cb9a742d373a711616ff5ab0f3ba0a5f685d3dea11b041d289", - "0xaf87cda7cde3ff36e1a4a0a3a90e42052a72983f21331d78aba1e4c681eeb591", - "0x4f2cc01d0e07e9634505030847ed039ddbe4138ea4b2425e7b24188043b6fdfe", - "0x13a10286bc58803a4dbbd59c59dbf3c9ebb605d4ed0417a525fe30575331f4cd", - "0x9b54f33798b2d69512c527b1e92017351ea98f7edd956a1744d7ae00acdd096e", - "0xd5d636fd588c85c54d6f797ffa674e526caf5dab6e4e87f26c70c4462eef6c8c", - "0x47a182d7f196f6cd6f8b8818a9be457ce06fe8b93ef53c5669c756b23a07c5f1", - "0x2cebac7f3796b470e9c75693b1a8596bdbd2a89de862ab60ece1957d7b5383f3", - "0x7ce7e3078c683ec1573b2cd41b0b5fc62c28af48a23454b177699fec9ab322de", - "0x7d4f2be3a45bad9abc61edcbba9d86234f0460145e358dc6566ef623c50b91f2", - "0xfdaba3ce59b5e7ccd1f4a9e84bdd5feeb2b135603ffa49b86a7ce89eac635ce6", - "0x8c72f673640ed0564c3de1280414dabeb89cfe0ce6f49ebb81c3d7f0b1e6d55a", - "0xacacfcbe5ae3d3a9d1b3886bf8ec26bff6f84a23ae5dae8820ea138edb974c3b", - "0x3f2339582dc6834395622db187e6798edbcbe2f2e8458c2216779c1bb14d45dc", - "0x73a444fa697c736d392cd6d2b347d98734f5329d5910520419f391a443fdbd44", - "0xe03bb06673dd6d6e82f2d21c71053e62d3b1dd649d5e7a38150b83b0f085a473", - "0xc68461b94228db05a62a234ad0569aefbf31fa59fdba3d144c3a619d05fea871", - "0xb44575ebdc05026549326e837692dd60253155f001c7fa6f789568b7a136e8db", - "0xad0159409b99c1dead470cd92b3a9d4bfe25266d7400595c93f9276d8d580312", - "0x545c4abba819ad9a1d719991a5a0ca289932466fbc62471250e6c9148727a02e", - "0x5fa8b86faf4cec2e9de78f071822dc0af0198fcec23e1693e35ebb765d97d12c", - "0x2159886570715c7aa819fafea2166c045832707f76958fe456cf7af5ce8d73b6", - "0xff22db024b0e036d81383646db787cb0b1aeb713dc3387b788fd43a283a4a27c", - "0x7f229da8a815b51cdeb7b3662b7c902238b540ded6f224ce5568514032832ec3", - "0xa5e57b07a872a68d2cf2ee6fe73baeffdd4b5c3a423d2a819e67dd73dd36fb83", - "0xf0ad72ee27fb47af398972ea5ee5d07ff21091a0ee610a015da1f677ac04beeb", - "0xdbca73f967cd079e0c863e9be4194acfd63857fa71ab93c3d4c44dec0f88f9f8", - "0x29f4dafd87f712ebbe677193aa86ac807dc933cf0ab895c95feb8c19a46a78c8", - "0xef79cedefe4aab625ea24882c8e5493ac4540ddfa7ec8ac72d06d6c264a2a43f", - "0x377ad1711a2818e94eff19e349d34a5a7c0eaf3ad514b918efa58d48980f8dc7", - "0xca40524371fd62f82dfc73b74acd6f103bad8e81c22dcfe2c3b56d0941a2bf03", - "0x14f6e3daa8495585abf5030e856f742b63e2c3b8fab950fbcf61438d203b3481", - "0xfab710e7caecd295113ae04e2da94fd089d0cf2ed1bb804fc961bbda414fc78a", - "0x6a4ea10fee2a5029011fe25fc6788d1ffd6cdaeca4105b146745883ca457f7f2", - "0x3d16f801b58a8a0362178a2de3667967ac8e8e5600dec667098c56534e95c51e", - "0xe6b91400dbbe1279d8001c9ebbb951b85ae815e0812b3d706a257fd7cafc72a9", - "0x833f7223f1f9c216001b67fc3c5869c012ac7bdadf07a750bf5d504b8da9dac8", - "0x1dadfa642e018d46c90e4c9b45e7d22f964c713c829f28e7dd94456efb5ba769", - "0x9b0b0f0f9255c2ff2b0c0d9b70baea541997a2981b3e1cec904420c02c8e68f9", - "0x0ab920eab62b4a0fa9751d42b4656be510a8724337fe0adf54224cfea0b0e3b9", - "0x1669cc89308825fbcf62478c1d6d4a979d730bde70c1512afc0926e0d4e23929", - "0x66b011d44e8e971ad3063722cf5d6238c519d57c0a94c760e5c307a3158e4161", - "0x0a4ac475f2b54e24784b10b18df0086a92c407e2474479357baccd46086ea81c", - "0x988a166c64baeb21ff5ade5d2c563ef93ad0452c67015a1c472b2fc14944fcb7", - "0xac583c02f23326514085d3b816973c5907541f1efdb31373b399a67807ad1322", - "0x51d7e2b08d025386fb4b335b0d0e2d07f55b9208fff10d3a362832dc6a7547e0", - "0x6c4e553f3ce7b7c80cbce8d3c107cdcb8a7b4c89ebca8f1057e526552f1c979c", - "0x870d63c54b37873abfc8b0c8cc7bfa2b41261f77550251ab59a8f304417dbcd5", - "0x6db3c454f0583e94ba43aeca2c4ef413f80555eaef5829b1c4c1708d63d3b4e6", - "0x6cc1ddaf69d050d9b492d559de84c69232e43b7607cb6807933b1801cb4beea4", - "0xc7c0aa117b17ceef132579c731956b015ebaf3e802b85ee0a6c825f124a4451e", - "0x8bf5ba7ba1184ca6aa5f6915e418e455bb096403d43746ade9b5895fa8d0e69a", - "0x13bb12782984d634332842ce7b72a981a17bdd34ee6acd9adbf65844b96d7b48", - "0x88a59590e8e1366ec65ddf718dedbb5540a06317613a7dbe130c4a570f7f2963", - "0x8a89daffb49834fc7f2341d00151f952ef7d1a7299ab92b3fc926e442d9dad74", - "0x78afc35edc10009ad9fa1b51bb7774a48d7e53a960ebdd8818e51899fd8f5cc5", - "0x0e25764281bb700a43644ed3455c279969b80f5c537f4096934413a7904863a0", - "0xdad129d76c4fe2fc61c1af14ed7556321989efaef6824aee0436216504a36e1a", - "0x9e4fc1c9dea1e18cc4147cfc52cab7eaa90930a2b393a442238a8c5378cd4274", - "0x08c8c7dc91c967fdb900953d543b4975ec90b8def04eadcf7885c555c782ba5f", - "0x07d599a0c521f72463b80cbb534bf4dc605bf345dc1c5de1db13b55486d382d7", - "0x420c5f035c465ba9127bc832eb0f757814a6769dd9fce22b28f4a3a3e9cdfd33", - "0x2dc76172b77b50b249a5a5b9d5e23595b3310aff6199d7335eb94881d8d24906", - "0xd2fbcd5e757bd9eec8698e53088491d63b36854d315d278d1a2bd81988485077", - "0x3544b07abaf58fa8c4aa0dd1f0060c11e0de7cc1ed04b18f5f90cc196d3c99b3", - "0xe238c7374ba22d723699269c9c943eba814aa1afdb95d5e00707b3cac06a5f2a", - "0x1cfadf02760942304c47e07d07a7acbdfe7417c62d330b5802f598a7f550863f", - "0x65ad9de6d69c6e80c1cabd34f49c4c9d74b5986ecdf2e3bac30833a599cb792c", - "0x27f8b2a3a019abec3e4487fb353bd9ec0ac11a160c6c3a83df6ca959d404aa6d", - "0x6c814f0081795e7cdcf730b0807a3c91c7c656132d0d9ec2d9e39f1bb8f57526", - "0xec686e5d76bb74cc369ce26db62b742235bcf6ad7e7c5ef6872d62c45bdfd5d7", - "0x09941fefe99a62e910b1a0ab5751c36eef7d21b1740f2b9e25d814af27169649", - "0xc0cf4f22b4e05e192421baa0af9c888bd976239e70046a62cfb5b018d9205378", - "0x6c45ab7adedfa0a6a133d288a7b8ba2d213fce73124d78b0fa12e1360d930714", - "0x85872e50c368df9ce35b61d5363ce8db27f123661ae528334c6424a953197d00", - "0x6869696612636971deda05c67f663242977351aaaea43d9cdb718be5948f080b", - "0x291097a53461b3ec1740b0b61c129d827f0cf731e16defcfede2d7a544bf52f2", - "0x438259d8150e73fc0d2ec553a2143e1fa5d3e53e27b0533ca20ab37991050b4b", - "0xb1889369c5a7f3385258a7d63dcbe5b05ae2e2ff4ff1e5cf82e5b582a02e895b", - "0x3b03ee5f95e9588caaf54878d8b6c746dbeea3e695bf768651fd3c8e3255cade", - "0x60443bf8bbbec8f21d35a3d16c5cdafec1dd3bdf4b9c447bbeda74fd92655efd", - "0x61bbd3649fd7f9bdab23d6693135ec6dcf07adf1560d9bda68cbc97ae4917b42", - "0xc019e34634d76e06d2984f7201c445cf6fa3f72f3164c148de2b1827eed0b6b9", - "0x3031e3e27af9bcca0902254143e3a440d40dfed6bd69ee5095387347559fd231", - "0x6600ccda7d374610e0c8d0b7fb012bf5cb59966aa0d93f65850db3c6e4544bab", - "0x8e692bc730330a2f4bacebaae77983a1831372e64fb9578d42701a305f972ddf", - "0xb504ec0ea7de6f102f2b59f698d9f7a63893fa352fbe7d17bf05f9c0e0c7c0ea", - "0x8e8d3763f75dfb8c07fc5f609bd6becf34b6a19cadcf52a593cca1098bb2e56e", - "0xa30d9cca760ef7f64b647573f17adefe0da9694567c0948c677024388ff51617", - "0x61a0157d34d3474a167146c9dee2870b409cd9f96c9d2e530764a296b3b33d0d", - "0x625183a74036771889d7177b16cb7bc6982b1a68814c5140b4a31157ff953a2b", - "0x9c1fe65834f3733fef1fc14c47fbcbb270c01384975490ec7a483b5a29ab6a7d", - "0xf334351dae09bcd536fcf96d031457d0c1158d422adb8980b194da88670ffcbb", - "0xa9a92557684b04bfda34805c6588e1cb9fa44d7c73803c28a12a4cce0e46d222", - "0x9e5c9a5df1dfb47ea6cf46f0421492ed1613039789ab91d237ce65a1ef6826ec", - "0xc3fe546f606cee75b2c28ad343ae67da95b99b507742aa1814fcf472a8874bed", - "0x73a429e5ad90697799123575999fa28922436600934689457b0b5ae787e3aa20", - "0xbd8ce8cb98c7f263a6b8cb909b671782cb57ee111180f565c988bd97c9369ce1", - "0x45a0254dd0944f5419fa6a658a124de3a8fdf53dd799d2ff71fb1256b6648273", - "0x598cba26ab789de29b9043f53d02872d6fa2fc86df238d54786b14e4ad8bcbe9" - ] - }, "nodes": [ "enode://d6cb8cba18828397e22e8852324af7e970b57cadbbd94aba6124790d1895728311b1f274e45d44a7a22b4276726903130a11ac2de19af5bc9294998f948eaad4@144.217.72.209:30303", "enode://94c15d1b9e2fe7ce56e458b9a3b672ef11894ddedd0c6f247e0f1d3487f52b66208fb4aeb8179fce6e3a749ea93ed147c37976d67af557508d199d9594c35f09@192.81.208.223:30303", diff --git a/ethcore/res/ethereum/volta.json b/ethcore/res/ethereum/volta.json index 55cc39d99..02058dfbf 100644 --- a/ethcore/res/ethereum/volta.json +++ b/ethcore/res/ethereum/volta.json @@ -39,1105 +39,6 @@ "difficulty": "0x20000", "gasLimit": "0x5B8D80" }, - "hardcodedSync":{ - "header": "f9022aa0e6ea64a2c18d4e60134a9b80dea17c069127e5c09ebee58b42108ad5ca2d5590a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d493479420df7a4e8408add37c6a5c4afc1b1509924619fea07a7c1d3a7f2277bac57f1ec76773317841e6e4df6b403ebece7d3b10be71c2d5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090fffffffffffffffffffffffffffffffe83222801837a120080845d7b87ef856577632d678412b24e63b841236604d05e940c6a1edac36df951e709a650df1969e5267ee6f42d5ba22638a21a79604fddac41b5c0a88aca5a393454781eacd9caf42f7ff0b3e87fe3d58d0601", - "totalDifficulty": "761710168469678517616542840624753029141072284", - "CHTs": [ - "0x41b3f780ecce0c3eaa620622be1ea2febc001b506c5420554376b99588e879bb", - "0x3f7357625521b6ee81a254983518ed97a1fd255339f0e491eed4ea2d8322cef2", - "0xcc77642475deb9fce7ce7fecef00f88033e417c066f1b4434e8b0f3a07eff7c7", - "0x75ddc483559ef7443fbc5cdc3d27f3e1dbb30652eea0d4535377de3c7892e08d", - "0x7dcb3d0ab710c314d05845170974cec53a1703d12d4808014894f7dd2dde70a3", - "0x2387995c0a39cc042ca30bccfeae1aff27b6e8c2f8e1ccb3b292ab0f8717b8ee", - "0x789d5915cca6bde2db2a6476bc7b7245f127f74e0eab6b7fb9b795e1e51fecf4", - "0xa25cf67523c8f4c34b7c6cdffbc46690a3c50998271955ca08b10fadfbd247c8", - "0x13699a3633823e28fbc46ab4c2f616831a13a6cb62f47a7ff573d8d198ff7e64", - "0x9ada8934b85fcd68b7c1b49f8f8986e6a3cb854b891ca17f5789412e132c2410", - "0x280caa3c4352d8bb476fbc8e0c28fd7c8fb5c29f408eeee4fda308d7edeb56cc", - "0x92137a64031b9980daec213cc6d68bfc87ec4726eef7d38a89bc18433eba9f57", - "0xa75db25830e0cbe8ee26d10a18773bbad9fbe11e097d29c664ea0856082d5b1b", - "0xdb020cc2ccc3e8b0ddb04ebb11a03354a15e40a8322197066cb130979dc25495", - "0xc463366e332e43c2471980496568f36342a3f4f7605b71e3ffa781020ede03bd", - "0x6fb25b998f4fbfe1373fb4d66380dfd938390704695541ad71fa8eba98cb74b4", - "0xf347fd85e47eb64db6e4f8b8b375122fe733e24da3de290528c9968ee54d2a2c", - "0x5a3c8a89497d57577aeebed419b5e11d81efd75b866d65979dc951bd1b97dad5", - "0xa6d48f29ced64c0c840ec8a265658e93b84c651d01ebffce33f10dadaf755e69", - "0xf54296197260da88327e3c80eba4d834dd03f20cd8c76bdbbc04d26281091b7d", - "0x6fb0aa7b79cd20b68519a1b30ee09cfb7c7df2c9b02722eaf0a2b1994f1d03a7", - "0xde3dab8a0b8cee49ac4d100dbf4863c9867202f774f7b2cf677c33b90936e7a0", - "0x6e96e646463aba29981593bb96614041175c0b6d6778bddb68935e1669cb483c", - "0x1d602efbe8bc065ac5e3008ca70f73921dd810efafa27f898d91be753431a903", - "0x3accb54475a399028cbddd96e77f914754f16c1be246629393713ad5cdd6a114", - "0x68e05b72aabd986254914e37f9c03304700e849cc8e10b7a97ba3842c92f8e2c", - "0xb16109323d95ccc44a651bf3202d827c2716d7041ad9e8558413ab8d2d7662e9", - "0x6741650eff050b1f0dc9d5256c3fec32b1601ba2413bbd75686f5d7928404cbb", - "0x8adf2952e8421b515b4425a5c1293e34e64e826a29d1c84be8059b87c072962f", - "0x0f23def280a4ac70820d01514506848740574ddc64539ed527140d8dca23469a", - "0x16b54677ea07856d7d69f032d9de2257bff506a11a8f9d5d0b63513b6afef3f9", - "0x429fae4397163ebb74482e43bf26877596fc436c5c87875bfe1ccd3fb73460b1", - "0x3d04731b7364885f37f476fe522d1a830a50f03e439be1844dcaae3f47928286", - "0x4aa8c62ac903d3bd4a789d332e8999d81054b1cbd35630e9c3e50d74810339e8", - "0xf165649e446d524766db95454e0e335fdb1f13687342be5ca2b5690495fb5a3a", - "0xfa3a865d026689e473ca3a82f14cacb0f53f7be04a7b528d2a976e336fc5d6b0", - "0xb066f97cfc19cae25576452cc7d0b7e3be69266e2655dc2708092f9b78d7e613", - "0x6fd390e9b661ed4074d7ea2234b7ae8ac90fe0e35d99ed4ef0e5d2ec17c646c6", - "0x51c6c122bd893f6370e8017f9394d3d8de9eb2187742fdd4cf5849bf4e80c8b6", - "0x85b10318b9fcddb09ec4846fe8905ceeac7ef1923cdaa5386eb2c91ad1121c19", - "0xd864bd5b7e65e7ce9f29162fa74d1903d8c898986abf8ad9c840bd14d4e6459a", - "0xfc5af2fb20535be25e5cadd2061491c308c556abf5b4ddd4b35e348eb1deec48", - "0xcf6d36922996b8b2fd98266fc1d21e702d87f3d5da5c24bce9ce12fa70b89142", - "0xba60ecebe0d75655e69e1cc9d225e44ae502b0147019629ec8951c5e02dd15c4", - "0xe9fba22b379f6b32316020ea1cd3af47049eb58cae10c7d43bb631fbea60c8c5", - "0x6dd578a373989ad3c8c701052bd120967b36713495d24c47467c801aca309545", - "0x6f8d05df4c09e7de8727eadf74caa91ccbe15c1f258fe19dd49fab01915652f7", - "0x0c3a833d2d63cb70481f4259477170745da87d724a7917575ff1617695d8f310", - "0x500f6b80d76f315a7c0dde48b7215c2aca55c2ddf4d09f803df8418c75b5c06d", - "0xc93861aae0c074b06bade783c9f58d3008b9545e4f189df2b482d9adddd48f33", - "0x78adeaf0a5423dda0c8775711535404ce8beb7f5bc4463c4c7a217d38aad9378", - "0x843e9ade9356c8bcfa8b90faeba38be759e55bf20780971535dab53ab2aa03cb", - "0xf4b47f5e0031d2042bba03bde9c1bef1279e53dcd3a6e67905af53c149c69952", - "0xd47ce7ba180e2d20ef494f668a9ef75f6a5b29827aba956ebe5045978ebabc92", - "0x280923c19c276cf299614c8b77f0a500cc2dfecf96e3c0c08b268f2a82e015c3", - "0xc10abd2d7d91530601d0e1d68381e063f38839c3c024824a17e501eaf5402c94", - "0x7675ccfbf244887d108afd102036dc42f84bfd1a8f2fea501456521f97536ef6", - "0xc56cecb2621e40724060ac11c9caea23845ecc90b794826e4eecd9ad9309da3d", - "0x205004c63736b7b904eea7b96b9656a293d1171e5bdbef962bdb30bfdb743bc7", - "0x4b53d96d36e99e83eac4b18fde812f8de3d96896d00d6007cac01fde18ce8737", - "0xd11c944eed2bcdf44fea0c7f3c8fc4823bf31ed5ee635dadb7969017f06f3e44", - "0x45b3d09ee88bf835a18446f787b768c7ad84e74a6944927b0cc266aa5f93da9a", - "0x135bf1bc55340ddc8473b34fa8c85e929ecfedab1fede7bbb6f98697d031a3fe", - "0xc510fd2e51dd7bfc42147486db35088140a3529f94c5076a4d1e7e619ab087fb", - "0x3047ece23f726c8cf82f59bd11f6b17cb39579e49405f28f6dad9f8a022e9548", - "0x3edcc019ed4012aa090ad08fb34ba3622dc1b30b75f10053d6e3d5b3a3e255bf", - "0xe180263ab8b372ce297cf0072f36a3e4c23734692e8f55eed22727be1de6eacd", - "0x93155c3aa8621b8a5999052659e60c226e854e93b9594587933ccabafe562d5f", - "0x33315d934d09be93fa523ee69ad5a44fce5c0940052f82cfe1b1a338e56939f0", - "0x586c36d4a2aa91aa933af4cb1336bcd8b484b27e8dc3f262eed314997bbf4506", - "0x4d7f22900814d9ba3365a4007e03581d60aa0639684a69ab5424d60a93d352e1", - "0xe12e4777e4ac20adb04a887064f3543b397bb6cf465cff0372703895eefcf1b7", - "0x0983ba3d5c9ede2f53bf71cf88c9300e1f83671a5d405b42ca711849e99e3a4e", - "0x35a8e5464d903099992e609d64b1a86c5309b8310a0cc7b488073d47cda73370", - "0x81d7c8b464fa3b424703643f332364536758639332b6582a582047d7db30f93c", - "0xd7a4680f8405e42871b522aa4df7b31906490a19904ebf1fdfb6e5bfe194e133", - "0xe5686d67673093eb22f277ce90aef0038691f37637469dc5cf32a29baac39d10", - "0xd972594aba86083be41b1b0f22ee20427b58a72d39d94e692a8cd27984e5d466", - "0x22d999b217f8d22276639f626d8f521dc05d96015ceca97e7b95024697000170", - "0x2e960190c87c8345bb9c0d01e512ae7e04fef2f1285d5c844754683dfc5e0332", - "0x84209c97130935bb1a50ec5ae0dc0ae6d2c2c0bca64aefd5942a3ec4b93c3a8e", - "0xd89e69e11b718a97f259c0bc80ca159c47840700f52fca79ed88fca5983d2892", - "0x4b24c823155a6bb126ec6985700cad976e274aeb0e317453c6cc8af68e5bbf6a", - "0x4c571c77f267bd7412f8ad74ba111fc66cfb4c9ec523777ca382f6004af55ddc", - "0xaced3e3f2c9e7756c1f333876be6a5e2eaaa3f0d2db1820750b11023551874fb", - "0xb768f2d34ebfb0cde65d20246660ed3201189bc908658b306407ac76ece650d6", - "0x72ee68d4c724c5e99c0963315487b366d6733b7f3e233507d8e49e2d7aac8398", - "0x234fd26c96b6105ced8bc2b4f6cdff99b745fb73798fa55f86d93507ec1270d5", - "0xde9a78fb6da543e095b5b21979a4aa0f92b188c2477a06e09d3bb8b557abda2e", - "0xf039f1703ee0e970a160658ec7be0528225b1536239de29d561e197d5689c3b2", - "0xbb7954ddf18678c94e9c5ac7a94b6dd8fe7c55fdc7ca6c33358ab3ab199a8865", - "0x8234b11e36c6cf91d6a51e49651b241fb8d870a3743f3639372ee1cab14dc028", - "0xa34bcdf488e3b8ecd15df8464003d28bbb3be2f6c3415f1ba5c813dd021a9c1d", - "0x1f6a57fd6001870a2e2ea3a2926468333c70c4d5b38419dc69877def6bac83d7", - "0x3a4cba6ff58ddab6bcf3773feca57a0550a4c3c56dda58ce4b73a308290fd7c5", - "0x2eca47820ad04951323dcb1ba4998d5085588717cf3813be673c1c10c17e2736", - "0x18760e32c529dc819ddef8fa4846da065c6275a8dadbb333d22de504e914a84f", - "0x8ef70eb412af3642a93d17a47a431981c8bfeec791ea8db3a3f43d40379ee8db", - "0xc58164a60cd4dbfee3f88c7944503f7f1784c57fbde51759993a512842b072c6", - "0xfc0f06f7ba1729704b1b93627b38847284ff2e8a172a9d6d47f9f08608fd1ad3", - "0x52cac99c64d0eb655660fe629e75cc8e66c8fd3e96517281b94c7a258c4592aa", - "0x2db1cbdc472651297d1494272ffd88846c28e2e8ebaf0e0e772ac35236452b80", - "0x66cf4ddd2d548597f74ea282181a4bfb11bed40a4809100ccce87276eba70ed6", - "0x44691b5cafab1d96b9ce6bb6005f6ef5ae0343c3873da9ec532e1734eee84f79", - "0xb4040911e710f7f0787bd04d4d9ef595cfdab78b9e00a65f3fbe240e07bc4d84", - "0xf42b2c5ebaf0cf42b6e0abc04af81b670488df57380448007804f8af2bf4ee1d", - "0x524a366182001a71599cfad9df99fca964a4caf132fa4af6c7784868eb926284", - "0x390c0feb6fbdfee1aed701cf26c3514e256f654bfcbc280effe38825c7e5423b", - "0x48a1863c854b163dabba8ffdfd4367657a5abff3443a591c13d4b160f4ef8822", - "0x4fc8f04d0cd89aaa43c435fb6aad02f4a6c45bacf6f57aeea29ddc4c552bed07", - "0x55ff12fe3bd59bdaf211ea6b74c87a58c57f8db280c86ca6952bd92351877274", - "0x7b22fcde7d64cd3f059ef5404b2ccdb82eff4300fba8fe25c7de20e43012795d", - "0x6b5bc10a0523747db88828ca35ddd9bf8a417b81442210d5b852c729e673fcca", - "0x70736b069938456836fd8fcd459f0e5e3ad66cb3570efa0d74c50f4a8f363af6", - "0x6dd2d30250675ce0de9f0ea8a806af237c7f285ead2054c3ec27408c36624b4e", - "0xcbafc9853c81de2a2ff637bbfaaddd95b7cf4be5708092f00db15c6f879fc0ed", - "0x4978ec88d1ce26a4f5287c9d76782ec4d86e724875b405fa85cb9a02ee030030", - "0xc801c340607e02750c8e56e608541e7ad4f4cf41462c1302eb8b8ba3a548f542", - "0xebdf8530bacd50755e38a28ef47acce13705f56b73d47c7642dcd94529d30dba", - "0x38f91c066f911e4194e979865fd0ea726e3973fec869ad535867753da287dae6", - "0x88c19e64f1ed5f6b2f9d4484e2af3a950930321777260b78dd6981a14037d2ba", - "0x0ac14f1f0fc2b2f1d60b5baeeabb0e345db69c8fd472c9dbe642595a7e42416a", - "0xb74b2c6e7fb58ce473438ff5c7bab0feafec9545de05291e2e832fdfbf136b6a", - "0x25add22bf0fc9bf19a9ae615dee83dce8cbe8dbb1c4b096f55bb8fb07f33fe02", - "0x3a1feba1f004d85a4c93d3c3fb860b777fd040644851fe5e4c956cdd6d857031", - "0xa553830b92170cbe84d143d873690be13d133aaa979193eaed0a0702bad4a39a", - "0x6b8f50607189c17b9ff6d841dc83044583fb967ad3367ce30c0976eccc47807e", - "0x5860e09a32b0e54b9d0765bf94e153727db8acce9aed30d2a0c0a2275f46aeca", - "0xb9e292fdafc7b5b20941203a86204862d811f118de212365c40cb533d657d470", - "0xa80d09ffe75a4d97c83e8518dd08aff8ec06088228f7bc41f658cee35b147619", - "0xc2cc23513896240766a9e60ee332c968a23228f103af0471f7895a49879513a8", - "0x858670cae905861ad87c120ee128ee6a976b0c6c8a49c4315dcbabb0c87e9a53", - "0xb55c00241029d1f7087f76af36d4a3081f75dc83f3ef5944d7464c215f095ec4", - "0x1ad8cf2111bf6ec6056306eb670d109f352b04fcc8fdae71ff0f9c72eb9adf00", - "0xa3c4ad1d4af73eaa27b6bab3fcd275113ccde3dc293912fafb03b15caa471f2d", - "0x4ce86f2bac3c8b621a032d066d6e427e194aeb7a39032d289311571639ecbeef", - "0x30e56f466f589d89ad7646167a82149b5a4fc17d401c183b228d5f3002377851", - "0x3489db0d7cf3f908699e2c311f51d68de31391a62e297ce9e3bdcef21b175c45", - "0x8d10d9c4fd3f75d8d5cd80095d255f50f638ac64488ed48e29897c43013c2f08", - "0xf14f1f0787357e36f98728e363be7d3062642b0318b49cb08f541f26782e8ccc", - "0x281a085b0112d332c18f3cdcf6aff0e452e8388182cb1bd20c5c46254aecbf0b", - "0x4f57d4301dfd9e6aee9d4d834b535ff6cbadf542a99c83282bd669d4df8e6152", - "0x5b930ef237fbd241eed87947cbd5a52f51df0f5308128c8bf1ffe50ece68111b", - "0xcb1830ad35fe0a9b66821ef8638dbd007259ba512ddc163d7ddb1b9ee2c3b704", - "0x9e998e22f94c0bcd32dca95776030e43ec36075083110192e74c8767c5c5d74b", - "0x05e03d936751d6bc887d90beffbe4ee593c6395c5dc666cdc4e3f614afd07bef", - "0x87c96a659976df9f0c87d27e7e9b7459023958488d88ec5a8cefb0138a336ce9", - "0x7475e882901797c14ca01226e0be42dea05a69b7c334f314dbd776376423c532", - "0x604f21fbe9d40fc2cce8e0924276503b40090ea857668af3386aaf94cd45b582", - "0x8c1c7440a30d3615052635001c4f3d97f5d01c9188b72f97b7b37fffc8405c28", - "0x20da627b4a619e401bb5e96e44bfa75239877e42963ab21f58116c2137479c8b", - "0x4349196f0fd0f857b8fc6a8f05e4243822de9b8627abdde7289f1dc5dce93dbe", - "0x6492274f5516fc78853a2c44bb2caca75b9d8003d9fbf1450ac81670dcd00952", - "0x70db7efb2ca923b56908b47ecf5f7321f4871f8d07045331cee49bc5a382c12d", - "0x41b9d10cf9871cd3e4948ca28d50fe70048daec6d3a3e91368a4304e29dd81a4", - "0x3f543d7a328238f74637396fe505cc37353108941cbe851b7c5a90b55a717f14", - "0xd5644d2b40ddaf47019081ea3c3f201d64175b716508b50d6356fffc78810aad", - "0xdba5f033a86bce361edc6d6cea97a2bf68871237a0bb9952bae4720fb4c68a1e", - "0xd6b3376cf36414d5144da72b312b3b2b2f6ba8dcb7a93a32c0ada619f076be55", - "0x6a5c4b324a7a3c301066ee55aea9dcfa776930b8642fd614664a5ba332a38918", - "0x999f9ec00c2b8d554dd491b93b1d25a09fa6e3910865fafe96a1e02845d11a46", - "0xeab66fa97529aabf17c50cab7f8dc7fa1e4d5af870f0d1ba8c6adbc7c592db50", - "0x38edf3cd86789d6b89b450a1510cf7868bec5a16b0983863a2b743f8fd399e58", - "0x0fd5fb68f9849626ed4b393909affc1ee113a8bed4b2991dfb98a584fa1703ee", - "0xbccfef39ae834f593741ef7898b27765c6e6661caaf020123a112b6368c9ca76", - "0x225fa981a54626352cf6dfe3298b39ae44847060ecd73d1f11c2231e4bbeee27", - "0x61d7079bad157a12aefb9b6c53e02575784833536d9a21971d401b553efd1c9d", - "0x6de24b1defb0c292ce6a90ad04c4fd795f9252adab3719e9aad70f3b13c8c6f6", - "0x4b8e435e443112f773dc913234ef945911af74093cc408ef558ba221592c6d15", - "0x73cf9f270d57128654d4142b3f09ff3fb4c0fd40c33aaf1f80d2db5b75348b22", - "0x8dac36d755951e95d1e5b1520207a9ee03e3cc2f41ebacdd0fc9c825ced0bb1c", - "0x8b32d81cb0fa801ca4b750857810faf6823399cef69c4ec38a748d9edf755f26", - "0x428e16bd34d5b3412e30c1907164e33a7de17620a154c1c2a9d0db1e064a8be3", - "0xcea1b574ac083a5b41da7d41290735c06630813ec44eeca231bf4c9512b2d614", - "0x707088e4e79039bd3f77c4b8f32bb03144edb11a543f059191529c3923f1c237", - "0x37f5ae7d2c2a0d9f61c12850b738c1ab3888d8dc1ec35bc6cdb857c7efa87b06", - "0x245e8e613249283566d6f436a4b2e8d37505270112f8b848d9150dd82d397266", - "0x2ed9aacc4224bd10996112dfd215be598270141f3cd9805d8a7b4e8492f430f7", - "0x4a18b388e58ba85c27245c38123b4aa9ea0a98153c3019b674d06e5ff98929e6", - "0x1043d401a0d62af95ab4cc5adf5050d4c7711d15d4636a230dd3adb47a15799e", - "0xa21fa3d7c91ccb27198c58e099fdf9619747f2c546e6c7530ec3d9fe22fc9047", - "0xd6c0b1b57bf582f0950efbb047b0567224851afc4939fee9e391c286b4a624bd", - "0x3af826ba6b78aac0ae170f191f23c6c13559c00040546706edfbc53bc3d336ff", - "0x1e1ac7cc499be3bc5661ec5a4b8b4b0161e6b3f532ae41fd4798ca7fc6d538da", - "0x6f0165b80c9aa08d72dde0643fb87ffeee9f61fed9d26939a901bf28d97347a6", - "0x4be21c67d18df789097d877d6c90271eb12319c88f65b04b756c3fd02012f427", - "0xcf8523a0e7256c2359db77b57bf22c30a30c0b7beb246166babf12f0a227d056", - "0xa90bccdf7c631ddcaaf1c0faa5f3927a750a0964f84cd3429e6d60581c612da8", - "0xb25181b7ff4d7203549bf20a8aaea8679d6fbe54ea214ee510ec502afbdb878c", - "0x1edf2675a587416317fe13b40ef1c7a35251604177070e6f110c5d0f50a54d71", - "0x0dda75f783981122aa46cb5c74f541636c7a05accfc95249b81de8514308ed12", - "0x015f6f0108de91e89b76c582390e23191c0d2d6d30985fb98574c0b53e3af6ff", - "0x1daaaf31b05dc0ef715861d06c50040bcffed39ceb95cd5d62ed2e8beda64336", - "0xda12f2341d85b3f70511782af0173948bda3b2680d41789b997aae0277ceaf6f", - "0x0acf2d7e658528aee304cabb9c89773d1be71525da49ce9ba2dd1d074bb3e02a", - "0x6bf7604e6b9528b47f9fca4f67b2556455d7cf182d01ebe0fd5e51fd9b3eb60c", - "0xebcc8534b8dd56355fb9c79b2146b89727fb6162d56750c10013616bdcd9a5a2", - "0xa2437a60b8a8420765843087e48417afac675b1ffe8f6f5edca95543ae9b8869", - "0x1d3a7639b96f49ad5a30bb5621bcfb1e7027f6e95a7ae70366406b1dda27d3b1", - "0x551fb4d5fbe49383f93935f8449c5924df2cf25b4ff74111e558339f7fb11ed1", - "0x9868fb8b81b8d58d502eb2ba65d65cef34f6127b15cc4a9eaddd4ca83cefa6f9", - "0xc874f00bf35db88bd32c54b318788ec1ffe1b6c06a7bac12e50c74bfa3a27218", - "0x85137adf206fd4e35715bbb512f7b715c2b0ac4b8972832ec0c5a11cc9398552", - "0x4ae1d4a1a3c870d22db44d647e9c5f53f1ef03f21ee2d47329121ecb84348be2", - "0x4714904bb039b609b517a91124646c037ac9f20ec0258dfc39925ed3cd9f0278", - "0xac60c857c4de03717cee2d96209ef32be8c0b10c4546fb03acee7b544b0c14b3", - "0xee1836df1c112ae89bcad172812909e88920308e707cbdf9afe01f725cc7718d", - "0xa0c86d0ff24b55d82348ba54087733b774dbf59178588c2975837d884dd4af86", - "0x088a7079084ee39a6848a50d3ace8acaa44b9ca257684174027bcb7e9f34af6f", - "0x7b4d4978b1ea3731339c4959483d691011ee74b49549109d56b21b036560b006", - "0x169bbdcc943db811fdcea9ccda6f29e75e9ab379144aed105d17a6a5eb023e6a", - "0xadb88d836adfa898efc591a100976c5f6aa09da42a5c80b913be1378ec1acd92", - "0xc80611c51be4c215d576aff2988cf48e3136e2710e214269709864562f5ee9ca", - "0x40c97f6b48b5a38996173f6498c4e239efe809e2512b74bd59c444609874ba21", - "0x3e52f02ed5d27ad47b7bab14211245f13dd361ac5a138b195a62f6748ac65fd9", - "0x505eb8bacb015678c179e28db862d612bcaf9022c060b9b4b51a0a9d2ff2c9f0", - "0x0e088c3d27ebfeee02748c04479ee5e63feba5ebe09b463ce4cd1106769eabd7", - "0xaf0f49fc79e5fb51960bc567076ceb3744e16357c774e8867d6f86fb9afd56e5", - "0x154ad5b477c2cb4887f64cf907304dd583fdd9435335e37ca87d4d5cc61835d0", - "0xc946833fa78b8d11a3ae7c69c546f20e2a20dbeef39b62c22447776c53ca0237", - "0x920108a359c507ea3c00f8d16ddaf1e30184a7d232f593e3a996ba47e621b51c", - "0xf837ec145ad844f928fb145c19a40076342a9dea88393074fc2d648a005e24a7", - "0x609e463455133feb00cbad4931cf3f201aa7ebe1e3c1af1cc8697cbfd299fe1e", - "0x008345051caf7253a1d6f4f331d84e53bf03e46ff00480f786baa905e97225e6", - "0xc771fccc08f942b0de47a2cd81b956815437c62ceeaf8178bf53f2c0f80f2be2", - "0xe5d361f6413f82983f7d16d6e74027d11edffbd6b8e5fbbed6121d2907154b15", - "0xaae9d7171d1485a92151423d29d8525230fa51b4ca0c07f37cdea261b30d30bc", - "0x28853430f42a2be4754e814655826dbbc1f52dae4a088c44089e2b2cb8123b86", - "0x129112b5f5e5a572d647d201fee35321d8201c8cca1252b9d8d01628910d7bd0", - "0x4f3f106f9de3437026d210d8dd51da8b3424f9198b0e94f9ddc0641be0c9d11d", - "0xe3b0c3be6851efe0965a961132c1888a5a2ba514c509fe227411f9ad97ba4988", - "0x2d33fdd62bcfb47253fece984a192647d590d9f23bbb6b3f3d11226b890f21d6", - "0x0a3d2f4cf5d893b2358a5d82df86611b9a553c99fe075887bc0540953701b47f", - "0x285a07e0a1ccf28b3864fffb1abd3380f7c00e6549a5b2fd6d54e64d1ab515af", - "0x56b08512e43065be1f0716a0432292a262ba63582c8bdf2a417a1f1734850405", - "0xc6da44dced1bb479611041ad17b588f638136da1417e62d21bd1f8dae3aa293c", - "0x6d177be98db07d363417767454f78860783466dea3814587444c1b6b3fb6331c", - "0x0355189dd2d3a39174d796e2aadfb9dfc01d2474793b7055160b99f623030d25", - "0xf95a7687eb64f922c3fdbf5b139281032d17504f6762c2e03749c08016205d14", - "0x95cf1f25fe50e8b8cd120803a3ed507f8f648fbc7910a8d1fb39b1af11cb5f04", - "0x7f79b0e7cfd858bd25db6cd7dcb839006f263dbeec880bd04bad2d928c5088e5", - "0xc696cc26e28404cb81b65a7ba61b891fe44de9d98c60fa34e56e59e6054462a0", - "0x7d1eb9cbfbff7c2bfdf5730ced7c10e506a50dffcc2226dfc2cac0fcc8d839b1", - "0x4b7a3716e7efd15cf68e71c1a18b406ca398bc06393710edded94c15335de317", - "0x5c39545d794c6f1c71717aec3980998f49de8b0e484e6a1cb1ca042a72443430", - "0xe10af689515cae040abd1fd629ae72733e681d94ac02dd0a97f7488e77a7bb1e", - "0xab0b294bfcf04f60573c1f96f99bb4613e4fea8a0e48d400454c7c8037fd30cf", - "0x87bc7473b3ddaa19ae3abb10be411e058d6b4d09b2d814db6b3d9f0ce6c6f566", - "0x2c5f6e71b55d68820aefec53204f30b0763975f815a941bca475d42513e9db48", - "0x20449d9c0986b7b1337996a2552925bcb1fee16be72494a63e4756733a0a8189", - "0x09fa3c9af750f387f8786fd6af7273307e4ae91121ee683d5106619881629013", - "0x664eb523dd54e6c85b34faefe100c61686bc00ecbc7c0780c837c6adc121c4e3", - "0x4b00b656534ca483cbb64d5c71f102f98f76456bc7d490de2babbc6fe554d9c2", - "0xb67d59ae8a4d5cc72743988f742e54763fcc920bf90c24613b2752c5b6b88732", - "0x53f5146410352968b052012b6aaa50467c71dbe46b482dfacab59f5afff9c438", - "0x7f5379ef8bce2e76300f85c80aa3bc75556a78315d9ec1b21396489957681fe9", - "0xdeb314296d9658b21a2ff1462d100d56f39cba861b4279dabdb7c62a24fcc952", - "0xf7512da6a322502a0d2e66e2db3cbc75a6499a5e9b773680ecdcec54ba5271bc", - "0x534715309910cbefd81eb85c0e32e7c00cc6ba134d0d758ed09879e6daa44d49", - "0x31ba6e3e1b63a5cf590795f40386068001059c8ec9f434e7cc8609b76f53e67a", - "0xc306d368230a642e153ee3d7651f102f8be7674a95abb4178214b02cb37e4094", - "0x4e722218d710fd712fdbfeea879346f6ff5ac684b8ec968d4a3e748efef7ae9d", - "0xdb6dedd39c8b44d5d3ee37e6394b25a039827be6b254ec3e74e63df83d1554fb", - "0x466ee9ef4087e4a6868c3714f7b217de47752ca27fbd971027906d5ab938d44f", - "0xe709e3327584f0061259133e307014883130250bcb6da0c0b7537007c49087f4", - "0xe4a16e63aed45118193da628e7639f30c5d92ef07d8173f171905ab636591af6", - "0x6a39375344768a72f3f25d638f870a1a2788a3a087f1427c975059fbe0279316", - "0xc4c5b7805c95e651c9a31f0dbe1f54b27913179c5499ef7821439a3ec90d427d", - "0xa441de2d9f3d3954ed4143147716ca5ed5537d1ac80f229065716befec55bf40", - "0xfe254394bbff420592de9694879d0b8695992bde730e41668651157dd0315b05", - "0xc15543485f35e2ae28c76afede06d359871b71c42fc8ff1235b3b648b42af2ee", - "0x4c189cb795fb07191e2ffc554de7cf71e23a9a0c31ae552b27ef63b81b81cf74", - "0x0012a33e2a754f6a0987fe9036a0816651481fc85e1cc33eae830fce28ae9deb", - "0x482b7e7abeee615a35c6e09ed3d57393e03d7d099bffc8a008571dbb239caba8", - "0xcbebd836de3c4d1d36c42bab17378f6a6e4d3fd56dfd0cecf2c1a12f2a2eda70", - "0xd466f0a6925a6fc25ea984d6d07c680028ff487962e71218b6e98c45db6e29e0", - "0x0a776d754b66554cc74f345d2041870f8893c49f8c3d312d2193b080cd0711cd", - "0x27075982ed5ec6b4bf6df75a9eee970f878c3b6c34b54af50f749af4514aefab", - "0xa6d385435f960dbeaf91abdffae677aee80005ec215bef93a17565c38e0dd28f", - "0x7edd4cc9f1e4b7f00441ec73de6ed8d3aa0d5d5a4fe60502a93e485cf7ee9df7", - "0x78b2b1e1d82d533c20101d17a6203fffc0d4a6431e4b11cefe9e616bc91c3d73", - "0x10ed93e3fc3d39347fad3f4ee9215e808e2f750bee4ecd26a6cf1ac2a609af3d", - "0x78fcf1d3fcf0e8fdae5f45b99f66ef5f909ed449385a34a4af4e0fc6ea9cebc8", - "0x76e7f70fd968df39d855e7fab7efcbf40997709ffcd9ebe4c1f94cfa0bd332f6", - "0x1c89d6e05ca2870b84df63272508fc51740b90f512509d540130c6b70aa0e4ee", - "0xa9271aec610d0dc64ecf170b744607b364f6a89e50137d870fecf9df69476489", - "0xa6bed34b3e626423541100033b4a9ebefdf9ec426a60196c99bd2b3cc4d1968f", - "0x5c3e3d643bdc643398d806187f2db958a5afa3b80813e654a23667b9fdaee979", - "0xccd5a3fea7c635c2e41f7a9bb9eb1dabaa149d7988fb34bece46ba6e420c5b90", - "0x8218d291553b38e6ac774c84f6a47a5bee8564bb9c53c6eccc55b26800c04f3d", - "0x9b42e29ff93389d8081db3ff65790a3844a199d76a680ba3b192d0d2d6e6b5a4", - "0x9bcaeae2b8459080cc22765d6e37e69488ad8ce2330abcfc2d4976780ab29a8c", - "0x8db4865d48ffba2f89232e1089c77da02d89e70402f2259868fde00d5bc0d8b6", - "0x21ba82862602aa263f94218d2c791dfb3c159d64771023b5d7e3afba239b0d1f", - "0x920f0f4b645536cb11d619d81a0836d6353ba4b951f6d2d646f258c5cd41f382", - "0xa5d5ac9a2a7c1ff2fd4c1b07df436d2f0dd1193a0b8decd645ae5fc67ee2a27f", - "0xae4cde591f67c28795d15b80efc20e516ff2542d7f4c1241ffd43ffbc625dd62", - "0xdc538641bc9862cb221dc964b3a363d4123d10013c123afe888aaa3aa93dba7b", - "0x83fd7a102239239c682948dd0444c22fbf6304b42be55dc6390e0170dd74b7b3", - "0x7d5d14e2f08dbc3185fdd5e291e116962f667368e40254ba37072f0743a94ce7", - "0x0930748b243b46787a06ae80e62ba84f8b6ab659326ad3c1996b568bf01a5047", - "0xb90356802cf8bc15e659b9d34fef588cd5d838bd9cb11a51559938b61cd92657", - "0x65a2bafd97b0f1886cadfacedee6632f8bdab7fbc30528b90da0fa142b493ce2", - "0xbf412a90e16c21a86e880dd62795442026f237210cd0a4635a6a1f06c421c806", - "0xf86b0c93cabce3538c2222dc41e1c2064d1dc64f5822e3978d5897808f2d92c6", - "0xf193cfef6f0c5037579917656293690bf90bf1da0b96cf66b72354c12a9adacf", - "0xcdb72eed57fe8634f9aebaed548b2a2d67995513229a68afb90b14376efd6726", - "0x36b096a5d8162ab305813690f066e1737165efa5cbef67b5ff7ec17ea3dfeae5", - "0x999d94a832fa7af1eed43484879bd15bbecb1326e39ca7815b64fdf626538a06", - "0x04d04ba4e96916e71ee06bb821c6d587f500ef05de0bfcac25a1e10573b07952", - "0xce9598c2a7ffed2a04e10930cd7546a99ebe04f16ad562d20ff6b182a53f2f42", - "0xa2f8112093cd50803de152baf66649499d7df5ea5cb5a21ad7da03c513f0626f", - "0xec3626a3b7e2b15b51739fc30aecf98b5c4f37af814f3e1a374fefe205fcea7b", - "0x180715b003cd0de98d1f4158b7ce24a437db531d145673e09f3c70a81b70f7dc", - "0xb843d1791a6f6115878d097af84804b1b8f61e7142f625dc6ac00ec91c3700a1", - "0x0262d2cd0de023e48c820675581f3c3a1fb9c5ff5b074246a3f13ed40156c7fe", - "0x66145883b036e74bad1547f18db7794f503801b5b0fe96fa1c1289b602eb9baf", - "0xe1566a31ce80ddf85494b6c1ee743728b1404467b0923ba3c3017d7431e114d3", - "0x49089ed792e0a76a78c78b2e959e0e4f8f6ed836a5fbc65741946392333b61b2", - "0x5752960eb3d3c38f62972d08e6a8c9fc3ee1a44bb067c711729df07f4ac032bc", - "0xf8fb145ba2fa9684e1954c197e5bc42c88c82f59e4aa1616d8f9345764631e87", - "0xc6e87900e03c656cd0dbcc5a013f7f0d4d5e27b5eaf074233dd1bc1309cfa89c", - "0x9f5c644d82ee74f034c2019d3650ad41c3cb79c8ce3ca8264363294b7b1a0bd7", - "0xea0607e49b125347edfc976d4736965a95cf892e17126ff72558c852616a3d8c", - "0x1018a047a5aa9a82d9b956f486be70ef856fc8c5126cff341a144ae3fa9702b0", - "0xdb655d919eb7347f8484adb7ef958946e0cd7b5ee408c96aa72f8c0b0e54be55", - "0x7f5986b674896dcba816c5008c44e6b09510add8d889ecd85778f1ca7265e35a", - "0x72d4a4d88ab367a072c4d9f9d0583312b60b2cb8c3718fea7c3ffd6e10bb7338", - "0xe58962cbab186e602da601ebbc2b807376472165fb5660610f095470b9a075c1", - "0x6e16dedd38955062c9cae9e0f9d986f98fa75da2f4dba47720e36fcc82ea002e", - "0x3f2777a1dbb9dc3dba63e34df2b2517c71c2e5741502d42c52d92d41bd6a19b8", - "0x4d74d322dfb4672af7368ddc312f0994dd8acc3d4e81d41301bc2cde24028ba5", - "0x0d1933a7f644b352400db5c7518142e97d02231240750590d1928b7a3b3a7d93", - "0x685ced7f0618cf29a5a93b3e444bfa8a6db35f8f87728cd5305184dd95c8f1aa", - "0x53000bb3e8022f80b43a4210a128868228b90576729887fcdb00dbd9a5a1ea1f", - "0x5c8bd1f5712e8cdad38d8ad2ce4889c820e056c2b941ccda795226e43d31adcd", - "0xc4ef659c2f742c74baf94c3d8c5756406c42ffe9511407c1bed50ab7627f35ac", - "0xe9a0f1d1c221c9852ed7d813c5a6df0561547f4dfd89820dee5d8c455bd796f8", - "0xb6213276df04617b51aa0271bd8ce7a154223e7078cf81a839a2293ac7cc247c", - "0x536449da324625ef81f92e6fd31e7265886039e500e35d3a1d69f516433d36f7", - "0x9aa041a9866dd97ef578b2bcb69b0b7283111cabc1e7eb75eedeee35a4e5b074", - "0x0123b2c16e8c9a8d1e3b7da4d218cc51ea674be14f03c6b4d73365fbfdd98ee7", - "0x0eb20387d1ec1ecd026a6d2ad699c54f6ffd8f30b783f8e0fe8e6f5509d15a85", - "0x563a70d42acc1246158fceda0f67b1fea0d2b296532bb2132ddae6198d435702", - "0x36f413dbe2721c85836b21263f0061848b35f1ffed43c016cd6e689a2ebd014a", - "0x3e0fc0db58d13922405b551fa1750bed62649c80f0a06d5086bedd44bc1beaf8", - "0x91adccae8ef501981199c5fa00153a70dc7e789afc129b38118c6da85660f8ae", - "0x1cc1fcd8c4557ab29a1bb097fee2cc8aa2b579ea85bdfdd8e1671a083598c68e", - "0xfe8fb70cae01d9583006f295cd30d07cf02f0dc18fbdce82edea7328c0d85898", - "0x0a046631b0a137d9c517e9f313aaec655e95e89c63e677b650947fd8064d0d39", - "0x888b0dfa9b325119a6277909e7268c6b8f51218e9cf1b99d090a067092361c88", - "0x01a56ea494615b4bb20c9a3734a9e529d31c4e79bad27b83b68070c94c892955", - "0x6f082b3f4d3c90f4c39f1add964c81073611503b1bca9566d681f257e8192055", - "0xc0886e0dfa26e1d505faa269d08105367deebd03ffffcc26c2d8554758fd0f1b", - "0xdc8ad68739d0d51c6600691234eda1de740a62fa110b5e1d66d49e23abcd5de1", - "0x7fb76390fa10105c55cb74719bd5a9ecc4c71c46c7d518eaf8cb5960e3bb4053", - "0xa27a4ff8b5b1643c2d5ec06af78778d915647730f8c1b6f888b9b220afee5140", - "0xf1fb33ca0c32478c068bff627034008fccf4b61e87e037c87220ab4c109598eb", - "0x0eb3d29c871ff80d186d7b5279ff61ffe17d2417727ff1c24a513f8c1733fce2", - "0x2f26a2428ccd2c920337e3ea82d1a9fe982f6e523fd6de951fd6ac7f6273899c", - "0x9627b8322b036daf334a5ee8fd88f26057fdd42df63a5201030517b4bb73d344", - "0x24ae0b0730c905e23cf3c0b144643a65821210de800628a0c7302450150c5493", - "0xd5c4255400a8a12deb48531dd5c3b8dc11d1192193cf3f5f40d8258b4c890663", - "0x0ea6700e745eb2c377d00f8590023aa61b0a99c4d7a18c1584bd41af953e5e6f", - "0x5378294c9b11a30195bc672e85ad2d950ffcdfd20f423fce8b3ee065764e174d", - "0x5d75de8a3fa97d7bee1bfa45421541ed41eac6ef5dd8298edb9d4cced75ace59", - "0xc0a50285022e8b9c3f25e9179155c9799b01dab71c64b00b36dfe0df58ad00a6", - "0x1add4e5cb42d8f4bb7ea4c2562360cfe97620b3d67fa5a36e27fdda8329f738a", - "0x1e0a529811e5abd7f932031c320be09f3a3fee757bd1824bd43a35588918f93c", - "0xf1578c2d5b99764ce92a1706d8f17a0dee00fcd0f65c2341e9c81f189ca42c3a", - "0xf2ed439b1a057602facbbc643c0095d6fc7250967eea08d7f263325330e59487", - "0x4285bc0479a9ae5f0558aa352cbd77c5adfb7d7f3845d4d128eb1fdbbc470482", - "0x2041915557c6d673dcca2ac6d660d6c09374c2f961ac89299b1197f2bfc83687", - "0xe31587cce449ff71c83810f2980435a4d6202e2345e3f501bb11100e82334e21", - "0x5e643dc7416c62cd0dadf7da1f4604936853f1903ac712026385fa845dc57498", - "0x8351d4ebe8322109274952a74ca7957d58eaea590b5495b753cf093d2cfa4992", - "0x29eac09319646f9340fb18aa2aff01d3fa2563809c7ab9ab64d5c2546ab21c26", - "0x5cfe455fc788cece20cd4d9d1c807fb3479f1acdf02613c0030b3c689263eaf4", - "0x8083e0d70b6afcd08cbfc48b228c9e50d85bba69fcffa71d3d2a418490b16729", - "0xb127fff7e08a52a7e1475e6cbfb884e3805419f9063a1ff07fcec2af040d76fa", - "0xf9a2084ab63b7ee7856b1e48478bc86afbecd61d0ecf42cc1f94b81467d73130", - "0x97194527e77fbc0f3939335311f484790bc188518932b498c6bf52d61b3f33ac", - "0x299dffb7cba8574c77e97f67fa108a4b2bf4db140917d5105bd22b0a9a1938ee", - "0xf161e0a7893d1f709c0001231cca9516f98a38f4ee25f5f71d85d2ca8d9a9d27", - "0x12e7644c623f229f1eb97f08a782e734c23876bf7ba289d086e98a3e90e355c1", - "0x2184f1fc43134e2d37169cac37264b4e4375e3a66365edd68652c384f31b5f05", - "0x565aef68dc59280c409112b4648a231e368b00c7adea2aa5d4a28850e5fecac0", - "0xb0ef3e2c4f25d05c004cdaed56d31b428818b75904e390a487a3682e21e40893", - "0x9b50f9cb4217b52cd5fea3aeb94889eff86b106bc951fd0b7e27db194cacd0c1", - "0x604bb1bf7ae4d6302fe754925d34387070bc3f029e6a145fd2e064e3d0f483f1", - "0xa5f933f0ace924f218cdb29dbe93764488121007d9254d150cc977927e903bac", - "0xe90f93265a9d7867c944b7192e12965bbc4c4e8cb0c7254c2db42532a7a2bb73", - "0xaae605c6ecc35897fa941c4a09a769c260c332a085e89aa8ad17f4d38fed0753", - "0x624e55c905ddd77cf4832683274645e10c48dd260ebad13e5ddcbf736fd2d9ab", - "0xae36858cc0dd2f35c7fe34127f77304138c19ecf500cb6629fc3793633146239", - "0x245885a09ddf383321845d293572aa059b5cd022271f2e3f9cd38e3ba3f6cb0c", - "0x04bc3498c84ff9fb5e01ab9c013a5e741df781e013ced7537de9ace0578630b9", - "0x55a526dd034e87063bf86d676f6ad97b83e4391df89f5f9367f3eda470a41f29", - "0x1a152b282e1d949b8803fef764e52f16302c8939aab62d53ca5099fcb192b00a", - "0xc42969585ee1cbb07816b2d569c69cd45435c02b952a81e2a6da1b3bb308a783", - "0x6855a97705f9db1dbce2479c8399829e5ba744e280b248c39112d554e8eb1e08", - "0xfdb86202cb249aff44b498ad1b8c298e68b00d18a78e4a8d79f81a7ce011fce2", - "0x4bb229a97da35dea56bc838e5360b3a8e487235431f54496fb3d82f390513019", - "0x7e16032f6ec38ba31ecb8e2ec27da77abf3e04862f0cb29272b25263fe893674", - "0x5b0b2013271895023d2128d54188312bedd7f94f508042626e9a5b6355620992", - "0x7f457f1688ccea4f900c4225568b0b53211ab9b9d4141e05b3f090d35baa6dc6", - "0xfd12d572cd9674283d57ad9ed1b09e6d23f6f709daa18a95fe87c56268ffda28", - "0x6e7e56c8a820fb2ef01b046f024c637cb246128f9508bbc58ab29b99d72c338d", - "0x53bbf016b4a55dcdd2924d30a62ca01e8f397cf31a8f54cbbdabfe349e64ffa0", - "0x3f4cf9d73818e2735c4b3cfed3365884e48afd69b2b0ccd89b55152baac1512e", - "0x71588b23a23ab7b35e955be65affc7a8e1b3f042e896f809bd72a2a54a5401db", - "0xab830958dcdc452dfc83ae2a01e67ba2f25196e55e546bd3b63e26b57938ca1f", - "0x178d5993c3a1af7952f763ddf798bc991a6a9fe89d63009c0c6a1f194599fa13", - "0x8e0447251ba26d017420d06694a6989fbb90feab5cee6fb21a756324c62219a4", - "0xa3f5a042b7fdd182188aac2042429bd813a373a6144e16e0b5b0cd4bd23aef10", - "0xe6853a6377cfd347ffa7083909a1fdc1c8470aa3f5a14c2297a897caf533d291", - "0x0f41c615e9cc322090efefdb92b16511cda0b42a6805023cf977d4662954997e", - "0x05e6976fa27d04393695aeedffe2dbbc350ba77009a9c214f4d2642d1392e6d8", - "0xd468865424ed556c89de8a27d1999bb9f140f20be787271f3afc4cd2f768675b", - "0x0737a857038a157a0e2d839abf3df94733fcefd9133ce96259228399c0cc834d", - "0x1ac2e20034e5bfc2fd2b2991ca7fcdf616bc42a44f772b70459fcb9bf7bf5770", - "0xc0685dd918de5c0573fa5cce7fe698b8f398b9926fd72b962b4c03ab068a22f7", - "0x283ca13b1ad22ba3813a5e58e91b99cb368dca8d729393e3b1bc09240d32d40b", - "0x4d8ceba5396f65c7944b1af5b0686631f0515b7bcc408743e0e4b806b2225421", - "0x3392667a27109c1e3b1481670537df4c3cf2c02a156b6489e352147c2b53258e", - "0x05c55b996e0835f2262100d2559dde635147b85688f3d0a40296a248145cfd28", - "0x8fb48e8a9b07c08dde30e580524da6dac7a1cc7173ca6deb7d899bc3682b6a39", - "0x425bd7e4683a77a54ce9971f415f988a07346cf333c2620cd9518490d3519cf8", - "0x2a085a4a242295ec378f3c3a71ca44fdb07cafb9a07dd4510e79d735cf444081", - "0x41a50d1a9c8cff6912e878e2d9d6cd9fddbfd518f90a7d30a7f77a8f672d28da", - "0xdcfa6c262c9cbb90248a26dfd99e0baf1cfd5ecbab9482d77222b54ad7916b33", - "0xbb66f9de9b13cda120dd1073e4dcc9b8a0c77e1cd7c90b253f90aab6474f67e8", - "0xb4d895d271f0825566c00ec548da16772da0dce0b67df0abf1f42f990c6446e4", - "0x26bae23affb763fd772b9c295e9fbf86e320bd229b610fea3f96267c47bfd488", - "0xe2796f3b29de84c1e6372d1563e249742b4653bdbc5bbf54fe817ff9e75c7497", - "0x5a8ffe11f7fb77d9eae8a3dfa9055f8b2f927e390ba580d7608c9e1f3440e687", - "0x8140d398ce888edd23d9c02d345ee27c0f8ca35e6061a359b9829877b41fa20d", - "0xef038b71e31cfa731cbf397d72898ad567da9e738a346e2e5a4299e0951898c3", - "0x8abe2e3bd91de4a41ac3cb54203877fffb2510169d0c4019de6ffd036ea615c6", - "0x58a6e8b582799560a4219946d52166b554ab9392825c776a375e747c848dc47d", - "0xce430b618269b1dfb846e434cacd8b0ececdb7f0f3f7e6cc29ab7da65d519680", - "0x547a8ca3474347927139520953affcf3d8e68cdf4770fc49da4950a93eb3d087", - "0x8939b6bf1da0c26aa4c5264a3241489e02cae7e0b9c53262fb621d5cb98034aa", - "0xf83f9c667a8fae29b6f0bc9138ed4331246437c3db77cc81e623b002a8cfa931", - "0xefafc4cc3d7ccc48d75ab8d3d4d153148ce7a9792fc1f38484dad6c5245407ff", - "0xe0c8e9b9cb5a4cdacd6516d44b072a2993e21a211e9b6292868ff50fc838ef99", - "0x880a9054165ac7327a17b6c0a8d3883b038e7578c8f7727bbb0ca477cb34b702", - "0xc4afc2bf9c1de5f8bc512495a8bb1b4ec606dc8f5ffa2bfcd0cebf5d99ac40c9", - "0x201422019952967ff99e271a7eea4c01d616edb9a6d972e926d9ae8a5d5addb0", - "0x4df1fb4c34fba4c8eb5ce44775ff2f5e7ef9094326a800c899c428136c57d4b0", - "0xd24164e0afcb4eff5dd05758eda40268c6085a8f8487af006d50a9c39c68df62", - "0x5a5fb603f2403171871f1c8dfe32b2fb2693fed701c0bb46800af9f6506e7745", - "0x0983b029c2baea9d44cb1ddea2087b4f0fa6a956ab6f0aa072052369e9462d9d", - "0x4de94a20443f2867f4a4da5a553933ef07a5d40409bf37e6d0b0e20a7edbabb5", - "0xedfeabc0fdc51114df2f008828f486e346e84e8440fa385b655ccacd57f36438", - "0xd81d3cca2273125c6ac5a5c9e246e5985fb30e3509c74ccc317e872448c48d39", - "0x67d5507adb24369c70a9e23ca120e449d30013ff36d54083a2ec5ce7e27544f7", - "0xc42788ea0a75f0e0f47f40cf614980ccb396059c3685c157e8b73ea44b4efe53", - "0x3f50107628150c8b7f6f102a39b295969bbfa7457cfdb007f83a478496846876", - "0x9fbd1d647de7d2d441be63244b79175ecd0f00efaabf50b620438ef418120186", - "0x9201463c17da85fb2aead6dc0977782fb9b0ec80489619b07712be1e713e2a53", - "0x50e601d9fe11879d099959f6fc7bcc52c3d28a7557f2174b6c80a4e69d72fc29", - "0x0833a425763fe63e4d3dd4b133744e207ebec5c16cd33781124d5a1312ec205b", - "0x997d3bf7df56c424d838c1ff1238a2f5e8438ad7c024bb86e1d536bec8d10813", - "0xa3d4ee43538381ce7731b0814030ab344b56188423a1fa23bfd683a70bc6a32a", - "0x008f63e3f38f9fcd757de776644f505df7e08c993c7cdf1742bf3ae85447f4ba", - "0x17c75fca2a3214510e39da02c949233faa1fa489bd6e395286cf22935fdf9edc", - "0x0a3dccf92be8568a8030d4e93c3cb8d005fb3dc149c2651a619dfef3e0e2f7b7", - "0x3869bb5d95b58060a16cc35c339fc074e84578abe915aa2b4b4c4a9779e98d23", - "0xcc208015c55e0e90ad04c6e10b573ebd4ca314d63e90744fbb047030149829a9", - "0xb03326ecabfa81fb4d57a701e0308d6851d46ddc7e0b932707772451400a0519", - "0x6366388019d9325046424bf9bcba7d283701692553a0e0d5202c10f23f16d112", - "0x57216573f60c991cf1be93dba6d8683092b765c6a4a62c45a97be0a2a038f8cb", - "0x3b28bba2c54dffc453d98bd95b0137345154b7546c9830c4e48751c50c7ddd4c", - "0x6016315c51e965418fb50031728f0baeaf6bb83784a7aa5482188ea4ba538594", - "0x93513ee2b22d317427232fba955e794040f23fc60c2ad7046b59ba6fa79880dc", - "0x58c2b131ce578a239bc6e344aed34e0b1907078468f52c6565389b687b443ee6", - "0x6fb649f410e24b59dd84eb3a3758211501923a2fc685ff504b5300b6ab9b29c1", - "0x85803e34062982a0ad9dccc2bfd21a25399f25402676175744e5dbb36c3ebc6d", - "0xac52dab7987e01703343eb3e5e3f889e18a39ee4e0afecd2efb0efe223763282", - "0x06332ef3f28285005258d375c523e95a3f5dd6c465ed810b053de9a27bba9a7a", - "0xdf14f0fbfbc16be422d42f66064709c6200f22873eb7f8e64457ed248764f1a2", - "0x1c2d219b87d6bb85ebb9e3f0dcd2f2626d37fd48ad9f9b6f18f56f8671ab5d7c", - "0x71d2e79a2295bbf8732ff802ec1243122e34a55b277c3e33a664a09dacb94841", - "0xf130f0ddb4367c005c3ec58ff3da025651b669643cbc1faf4fce43aac95b481b", - "0x8d5a3736c7ce7c603ff45c9b77e47b47a6c15d344e84535c37a38970d36bc2a9", - "0x06e852c89680a41d84971ba739ff9da471ee96ee28b19866f84eac48ba562554", - "0xd7daa76508f044548c5b2f3fb5a90ee0fd033d4404606cb4112cde594f67b116", - "0x44ab2f2645fa927a64d6f4b9393561c21c9167224092b993ba9703e050d590ca", - "0xf4e160bf5716e176ea248ea61b1d53852552d094390ac0c916abcf478db15030", - "0xc1269e7390ccacae733ac516ba58da6e4ad73b9321089420e5373f0e07d0dcb2", - "0xcd2e06b7eb82f903799c12b8bc2e8dc14a4c5be3f51146b552f6ba9cb7e4f91e", - "0xb718a2571ea271f470cf05af5c1a4be37f82dda304c1c84ab9d6add4dc8786e5", - "0xe713a00d8f6f2e794ce8da3427bd0e938a81abbba7fba6fbb053b43fae8034aa", - "0xa7b7aafa5fde6af9355e926c4e0deee07fd2a35f196eada57253d08405367bdc", - "0x1e97ed3fadd4d32660d4833091e6ced1b8eb3e99d41f42e9d4e874aef6be3217", - "0xbca4b08bf368d8cf7d666c4d7c5d8d10b034c3edc7142ba2bae857598e563e51", - "0xa83205e691d306cc69ca5967432fba70cccc68104e5dbd242035b7654c667815", - "0xcf5c446b8a20f874d5b8390d97e77dc192d65507b637c14181b8547daa10d9fd", - "0x02cac826b7dd1c08501284972a44154c474d3bd3ac5f4994d29a91e1f5d3058d", - "0x280c137e3b0a5314602f361ff8c8dbdda06ebc4f9dace21681439f44f421a3f4", - "0xff05091818cb32578323d8c60999b2d29715a043b94e694c76a50b94b63ec0c3", - "0xd8e53337fb619ae660281135ef1b324c7560b3d4cd497362aea57f0e4c2d18e4", - "0x83cd224e7c0432792f2d9f16eee09381ce52ab50c1dc5a57ed0c1659c7f4ee56", - "0x054993ca9efa566510ee58894ced8c69dac411424e6d1c4f1f6dcf2917e3517f", - "0x858749436fe2dbe91c57e97795965d4309a125ca4728871e080b14860bcf92ce", - "0x11b9d406a15f339c0a4d2a4592a14b59b96d2f912ebe246c2e61081461b03a66", - "0xfe1ac66bfbe527c51e41106ad46bd3febdd91a62628cf44c5647a1a23f5ee1a2", - "0x7b856712c95bff5c7bafe84a8a01f0a3c0bb0482366fa73acb89e0f6e07dabd3", - "0x284fc1319e573b1d3540a41885e03db2313e80960b06325881a1143fd86ce8bb", - "0xf0ce8af7a61b5d59e0daa08ea300ee992188ae898e518644e942efdf6303638e", - "0x1ea31970c2061dd8e60d439b799a8e00c47604f23d8eb7f9cf3b7ea685154be7", - "0xf3d30b8983d1848933674b22f54cbb54824dccea8c4ef7df81ddf6ecc0b4fecd", - "0x36ea20d41ce18f8d961992485210f7278721620d5535393c78245dd273950166", - "0x7245821c7b5b52d5bc677b0c597c8fa0bf11243b68087a763a3c4e37f9d2b515", - "0x3278f59c112998ffc5c089f17e240fccc312c29bde37735d4d30b6f5b2d3e450", - "0x44824db2abea486e28507b493224a26c20b668bd77b5b258ef040b219fe7890f", - "0x3062eec5cf8be0984a32ccc9123f43eb5fcc7a170969c90ce2fff582e80b3865", - "0xeca64b3fa1d26e8a0117b5f01f50ed0ec0d2c598f39dd6dc292bcf630fd08657", - "0x14b514569ecda34e0f9ad2a613a96acdd558bce3787d1ffd23bd62420fb6336d", - "0xec116d4cda3ba46940692fbcb84bbd513514948dce6a653502b78ddc3a7c2baa", - "0x9f174f3b7a20a6ddedf8de640492577e643363ab1e0034ad34f616139eb67a59", - "0xcaf0265214febdb4b6671ca6d05d5bcd4cb0292fa0944bbc80b039e5034ef323", - "0x4a05e3069a7a0f1763595f7e9d7c682eaa355ed39f2c8e4aa0614eeb34dffe83", - "0x9b953b7458aa76592c333e5cca276f5fee77ee1cc13394c227398eb28e628a42", - "0x727c5158d2deaa130fbb407fe5105217eb4484bb2e12cef2d850f134c51ed696", - "0xd27672dca52cbb440b8895d879d4d833976d8ad61f5f898c614cdfc69112d3b6", - "0x0d680ad40da25236980cc69040e4b03a84d275124502ef49b83ba8cde339dbb8", - "0xfde75d4d19e2d748579493175617948377e7e0b7af1a5839fe812b93977a83b5", - "0xbe2acedf4e754f646eeb4318853d0179e63860ccf4951536e52a2f6d4b50fdf6", - "0xe20b56949299c2cf65a6a0fbb5321f90c995677763b1e8537f674701135c6a6e", - "0x95d806e82d7d246fa1efc11bbc6f0892a2a450cb47d40b328c1467bfb0de78da", - "0x127ee2f6fa8265e89bcfe59775ac410b0af89372951a5865de2a7e8b5b555731", - "0x0826d22662a9b86c0fd049c9f0cd56c8bcfea96507ee9c822b7ce9a7011b6fba", - "0x315224d60866d2acebf8968290616ad61136a27bfa620f4bdba9aa0b948893af", - "0xa7b29cb77a7e65ed30277a564e86fe9dc40ab251ccd6dd7a6634e105dad9c59b", - "0x324fc898cb9e695c2a7673e5cac2cbb2d672fbb76ed6348bc4c43a2132ee1889", - "0xe7d0699df7d80900746669d39229c699c0630810ecb00b3afe780cb1abbd898d", - "0xf334f25a4c92cc2e79b3c633a49a00f4bdc4dcea13b6c9cd77bbc821a6ba38cc", - "0x307ad3315c4ac56ecc35e7fd6b77128f2755a5b11f525e63e0bd2f6f2ae69f8c", - "0xb5318892e137af40735f092374d65bb7c39b815056f9c567afaf0fb8ddf77502", - "0x819539ab72d20570db2d98e019fc017fc93b9c6606ebf59ba8e9e5b31be168c5", - "0x7e78c1f5e27c216395eb3d9763da1bcd8ef7c19008070132b4a6b83694d59b04", - "0x0374518118372a97f7c86bec9c79af686a9dcfcf66940c2abec27485049fd915", - "0xf860452500583a47aa37197b206175f0bcf13a90d50733227154bb41f0084b0f", - "0x9392dacaf6053fe8433a64b37af34dcacab720e1cf5060fbe80c7d2d3f73cae1", - "0x4c3bc17ee63d08ab63d03a1913ab4df5c6e24b8cf0709db7e381a5a92736259e", - "0xc3ba0ccd301b2b2b4b2d5cd4fbd23861e0d8436b23fc120c9dc86ff5659e2442", - "0x4cdd61ffa6969f9a618c95dd732f8b9be37d0153e6136e8524897bca156d4fd1", - "0xbd1f9bc5b7786cd205a42d6e2f586d73bc8321e06a4c74029636bd2230331309", - "0x4a91806e84eae34df335b9582b4018a2d1f38e9b823f5b780d1f27d81e8bd640", - "0x9d7b398bdfeb71a798392e941226de28a8abc1ae5b9ebaefd017e816e73ecd83", - "0x01f3cbacf791fc2f580d41e0ab0b31520db9833c388613bd44fa176324d9cd1c", - "0xa6dab4dc4aa066d1b940114ac033f61fc007ad754a10fc7a09a01f3293c2e3ea", - "0x553bdd4c68ca325fcb63b0fcb2f7789e1b15ee5ade70079c827000c8631badfc", - "0x546fda30b26590106475fc1093bb9540d2c4cd5782a18102938b6fcbd3632d24", - "0x05368f01715bb20d01b4ed7ab28947325c3d93fa36ba2cc13c714a46d4129f3f", - "0xc6de44fcc3ea1c4cb6dd81e819cacac726be9f818acb994d85a932beb7368cad", - "0xf7195116f2a5a18448193fd40f034af23538d5c6f49fd8f4f1979a5085bf05fe", - "0xaa74e99f384f5746e6d114be79750c317eb2bf9c42d39b1183805c7e3b5b078e", - "0xfcce4ed1448460fe5ec61a02c6f97d84d3217390c1948c602f01aa03118893b6", - "0x6c9bf42b44decb93eb07ded476b39ad9bd1312a221e6104d3bce72714b34008d", - "0xc85e29f3e0753fc756aa5c46268bbbb47f733902a0f363f03809cdedefa5d58b", - "0xce826332a6883e1e1445ff8da5dcd9af9fa80ee50cecdf663fbb74da7904eb0c", - "0x3ab951e50825f6f6301ffb1e328cfe93f9dc601d1b6d773257275658d0d130af", - "0x0eb5f77b4943002e532714424614d639bbc31ad2a8f00c9ce2368d35fa6a0039", - "0x7278f0d3971431659860d4570e3ba3f5f12a6d839ed6d7be41f9e02954a58dce", - "0xc389e2a42e1f3cdfa2fbf0aeabab5be64c068ecab99ccc073547180ad40e7dbf", - "0x855d175a6c22e578c1de3d0b87834724a56867e94d0bdd5eaf9f20fc411dda17", - "0x51e8b4e347a80f698bd9db854c0d6892a7d3225727ad896698c4c2d3023498b8", - "0x044ead2878d1a6f454c71881381388b207dd5e14550303a1ac9a74636fcd896b", - "0xfccfdfd9c60bb83d6b021884f569ec4576add6ae82c85dd1d19043316fea7895", - "0xc77ea57cdcf46d30fbf03e592fdc38f2a38fcf91ad8f90f322d228e42767793c", - "0xfd5e826c84a82c6fe76adadd8b79c5316fadb59cb3ef16c53f2b5001b61d210a", - "0x43bfe5f0e20fc578430b17895922c7eb37b84dcb9550c79cc92a3494133aab86", - "0x357f5eb1e6756b50ae39a80120ebb83ebc88bb30130ebea7a59da735de0b6d52", - "0xb0a6abe4a323c2cd24c21a036aaa5a893b5c1b7960d6334bded2da3b79595628", - "0x376a933f17ed8158688d3d21c4b911245828ebf3ee04bac36b2aeedec5e44dc1", - "0xb5c0ca679d7870c3640b9d7d928c041d60021601cdfa49ba5b280cd90241a7ab", - "0x37c6fd470099d01d579bc51dfd1bb7b9c87900ea8c63e0d283b44dcb18cf3740", - "0x897083a3699e55a241e524919ce1f483bfa8d66ef996c51d4d99361279fdcd51", - "0xd4ba50801efef0184b66e29b56d05d70ddf9deaddf0ae10b351a2f5a64e94ee5", - "0xf4daed74c17f344cb6de072fb42cdaff7736ca7f4b7f2d86fe8212257da736ca", - "0xcd60602cdfd58ac42f2d535fbb7d8fe009d98149640d72a2a2a03887cc804449", - "0xb0f2377efcd4ffd4ad7ca0943bcbe076e83a81cb0034ffa89d1ad28a43081cbf", - "0x62c44d9939642098240cebd4b82cb7d2312264652b22eb9c769c7d88ef18f070", - "0xb493b132e87ccddcd6dbd0b3a4259526ce1fd3ba427240df1ad81475c25ba5d2", - "0x360f58226f9dabc78ff2a532b819ee0996224aa389c5d5dbf67409a5065b9c0d", - "0xd9fe6d781deb8209b19db5704b40dd644adc2ac6fe5bcdd19a0f9c2f60898361", - "0x06ef9ae44d803ba59e359741314f660a22024262428089213a7f10af543d5321", - "0xee06fa53098291e32400909a5d18070d4c25ca449b217b3c361cb654706c2b1a", - "0x04ce2d5551735396c109123ab3cb1e41f4e0a7877dbcdb737410fea055437cb2", - "0x84d71efb344231bad4fc385fd69ac732861ac7af21b383e2521916c868c6593a", - "0x16310a24107da4fbc3ca801529c6e7c7f57816d606ba3171cdbb1314048a8b25", - "0xc9d2a29a96bd488b7774c34bcbedf541caa41767eaecaa74dc9ca463e1163d3a", - "0x81c6a09ae02edd0584124214a5df98b8520f9b63c19d1c82042724ae860ebe66", - "0xe588657d72617a6c54a93b628ea4249cc0268d7ec61f18e864c45042879cb8cf", - "0x9d26e5e113cbf9a05e924be913651057d828cd25eb9b53591400b018450aa229", - "0x53557c8a12b0c17510265dd1d01dc66aea588105b91d38cc4bdb15e4aaa861bf", - "0x76ea87476033b44c9276b0b2de0e882ed8ce5041adfdcb553e45c759029ef48d", - "0xacd97e5db37c7a3748ad833f4a1645c34cc3f0a611f11759622f5685c92848bc", - "0xa883cd47613b46e4323b14b64b337e8bc1d1226196a6a1bb0da3206204c97408", - "0x53efd395aef5b63c183022f98d52e7d389a96f12adc97085583b407b9f42d105", - "0x4bd2a41121286777ee3556879be8e2239d22f484917e816bc8e4ca843519cb88", - "0x89a8c2e32a4bd621e0f23164aca7c2e6a0125d1c110bbb5d7cea5efd4697a460", - "0x92f9d705c88c88cad2cadee358fcfb41b107a46a4afef58f128b4f8f835da7df", - "0x47e62e3ec453c3d9e57f078480788b9dd74dc987cfc2ab8decc325c6c9b0cbeb", - "0xf457b19f593bbd0452a965305994220379e19d96737d9731a1740b01149f51ff", - "0x62ee8ee67dba1e70b30df35227d76e7b386c78bcc0262d6a9e059e3f85e4a8f1", - "0xb0a130a355c47c406ccd1af450e39fffe9fc9e867d1c6939dcf3767d731c8993", - "0xbd9dd84ebdbb9418a1dfd2c57c9271ea024abd47f8656c71810f0f1cffe2283b", - "0x45ad6f082117859bb8b988a7c59c3e7e70cf743d6e6c9c0f263dc121d2bf9c48", - "0xc4a8ffb84279272d032464f70f443608ad5d26eda5837a255b1167b5d2166980", - "0x4fdda6cb1ad70527d021c1a9815a3fab0889088a022d23436957d370733482ef", - "0x6d3fe87816cf1e5a51f3959cbcfee2b3410ef61de9841cf7b0454f3c55db0835", - "0x7eb86ead4d2a08ea2bfcb8908156b40e48c9ced3239435f1111418d886818a89", - "0xaa245ead854f6114835d5078d74d74827935cb5eac24794a92cc2f1e75c881e1", - "0xf2faee74b4e91c8facd64897fff389211577154cd67a388380672b822e6d83e5", - "0xe7561ba52dfaf1197c84af04d3fe070288bb8a6bc494fc3e0281a833507b22ab", - "0x87ac3d861ad5c397cda1a3594b12aef878e6f89a2c7293b23dfd833e18492548", - "0x3d9b5218c3a7f3e7ab7704f5ee6ce7281cb8da82a33923441bd2f9210e117c2e", - "0x63fa6d289b4ca890001bdc1751fc3fa341e161f4c83efdad7f2c1e801acce49a", - "0xee01e88af73ef0bbefb93531d1c219ba9d93b635921db3953c128f4560acde24", - "0x91fe471a27189f30c5312ebd018322a41ce13f3ac5d9553d96dbe5c52d395200", - "0x99e45722381b9a8881d3be36b4ca2e48e0af1a4cd405f819aab5325adf1aa8fc", - "0x7bcf7a96539e9eee9e0fa802f8f7c6c196ddc5b5a6d661057db2fffa11996a91", - "0xde6b84fd4a401b99f54cd6a6e1664ce34369b23caae87f1a11958002284adbe2", - "0xfd17fcdfefab26e4284034f858fce86e184629e621cda48b529eb1c728b6a587", - "0x2e75427e33e0eeab27d2861a8dff35280156ff2d6f49ebc7c7d9783ed698ff23", - "0xa5a610b4d6ab1cf64995e579ad002413cb65991b38e870aded7c1d2c56db6d9b", - "0xc477485bcce1dc78fbada07358ce66488e1e07e69445834d8f0666607b31a604", - "0x3d2a49320af03fbc986e653cfa0f4748c0f0709ad061a028ccc1105223755dc8", - "0x39c22bd4aeadab10a0bc8014f5e6086c6be8563edcff73e9b2603ce579244636", - "0x509b2a544768870fd21ae2b1f4f4d1ce58b1e9759209818241e0d6d847f5340d", - "0xe2742910f6d34ba0eee958a11ff7980fe83ae61530f802eedf128af253d6f388", - "0xa96e61254a4bf2c365a61306b4097efcd2d92ba00f9cd1e0a4110186c2d90af4", - "0x3bcd2dbe645990dfd54761042bd63cbf633372276ae4e9929c1d82a835b456d3", - "0x2b113f84803ba0536e35381ca1d060674771264377fff821e057006bda97dd7c", - "0x3b662a34635ef80d54c6978e2b65f38757332abeb43e2c2f5420d554ab6e0aea", - "0x3e1496822a0da2153e5476c97c287dc8f8f5a89fec55a9abbdd979b47e205960", - "0x33920d13504b531bd39be9884fb2ee1183d56c1a8c6b458fce241e36a7330409", - "0x07a4cb0f62123b089f8e49b6ac5b4aaf15b75bbc5923c85a019b90a542ea115d", - "0x4cf0dad0eab7ac72265703277eae7c65782954482df634e214e8473c15eef072", - "0x876e4adf62cb1218758f74a7ff054b8a31d22df505ce385431f27e83e1ef667d", - "0xb41e0ea2779e527f524c529dfade91eaa1fefd68898be5df119ba5c5debc88ab", - "0x8a9aeaa2a6c111906cafacef446985002da828dbef1e6b17617670105b80085a", - "0x162f3e5ac3e0e4d97b6dcaaa6b426aafa80db5efe84944cfe616ebbc6ee11d3a", - "0xdcb9962a96557a6e1abee4705625e4bcbe47cfb30154ade63c677b6fb54cd312", - "0x9afa94f2afacb2224f62a0d0adda88c9f8617b8484e3833dd681b262af289215", - "0x835c77c064ca5c0ff520279986eb3b8c011d3f03795ec5ba53c2abd40f6d9be4", - "0x31f812523ec0705b8aea412a8f9d9039a84f10bd9ddfc9b4e05da75cc93a8871", - "0xe2b6a4c035dcde0dc6e8ddfa93be28b9cce4d8e981347b6d36e473b81812832c", - "0x321b80e522c8dd31db601b983a233cfcb2c74272c718a33e6ed70d496bd27b84", - "0x07a865114c148040c3ffbb24da9095b7e73a0349ba18fadc7bfe1da2e8279ecf", - "0x3d0c546a0a3a611facd37da1a4e6f46e557fda73122a2433682362cb16a5252f", - "0x02f3d6b72cd1a1d53ccb5d2f2ebbf40fea9d70b25f835b23795a92bebb2621a6", - "0x756f846220f348b778fc6b013dd019a365287ba3e1ad8f1cca780bd8d1853f0f", - "0x3f4e3bab6be10e0ea726813aed84e25bffe3c04d6583e22d954015414e9486b5", - "0xfd48468c58568697f564129337752b81aa38fec0e67eb0a78e4b65d3a980701b", - "0x15a24318e4de1ce927604e1f8f6ea99ddefe8eda4a99f2dac8351ec1a10b958e", - "0x28197f22fcebd5e79155f91b0b332d947b8fce84235067119ea95f113747be14", - "0x1004cbdbfc069f1084a05f59aa0810a016d1fdbf1daed935fb4bd81abbfdad61", - "0xe75796a23a4012b615e9c020decb50464e28ed3c25d3b36ead125f75e7640c48", - "0x60eee67b7e2676b4300b787b2df0f0be4f434e88cb50af66dd8531f2d6ad678c", - "0xdc30678aff2ae50378836333a4c3b6f9637c90c2642b9e1201c2349626475a57", - "0x9969844a438d5b040e972aeb87b6a0be03a45af71adadc1cd802659cf8272b37", - "0x1e4021e18e8b53598cd9fcddbd37419ff1b3aed7efa81a4da0a88fd11af146c6", - "0x4d70d0e076a11c72b7f1e92b56d4a0bb1d5f05d141481211e9e8b2faeb78f042", - "0x899bf0e3903971083800ff9e9e517ef897e785ef0869eca459b0a5e210562c07", - "0x25a4f8258c6e668c3cd54beaf10703b8d2d3630413670608c673ab390e5209d6", - "0xa5e7826501ddfbb5fc334c5f373d405ecd0cff9756ed29ae8fbc1a0c073ec280", - "0xcfa4ae8559503cd533dfcb2638cb625ee055129fa2be39b73e3814c17de72406", - "0x47288569efacfba5f5f9372a32d35321266ec4de71bdc8834529b1216b6ecfcf", - "0x4228ec6abd08230af654e15d94234cfb56fb53ae8a69c7a81cfd0b0bf0bc6184", - "0x7cbc69a239cdf89e1b1bd03dc4e9ac47073abc22218808690b21a29457ff5b20", - "0x54cab9ab46116fcb83ff9dfca6c42ad215d07c5085c841d9849b05c9610700f1", - "0x40a4d7c40aad2099501829d28803cfee9a00a3f407777c7d99020a7f6ebf71da", - "0xcf8b3d2f1d8034f97b6b6094d5fe6b2c867b5777507ddf8639830b2cedcc781f", - "0xf6c5e2ecdbdbc38bda835dffe62442349bcf4e2408229d4599231538337c8748", - "0xc28964529ac7f231c93edd8bd004709447508a6308bbe2360d0fdae3d227e15f", - "0x9c36be8c80f04269afb3d940cd18d6fa1572d27139002e70e94a4a88c511a2f8", - "0x84190b95d9cdbfe62d28c76c34af19357c8b57f87ee57a3f37d6852b2f7013f8", - "0x91ed9fd3946e2d5381bcf1d0cd819a6e7f41946532231f988bcce4bf303324c6", - "0x008efcb812b80e69f35ac5ded1e6f37b90293deb4d18e53d877af868a58a11ea", - "0xa75ada72e42d18922374c5081509273de09f35970d13f11da1a982dd2762fffe", - "0x804fc067668817bbc9251abcf16a54b9971f58323cfec124bd57db502969054a", - "0xa77a5349543f09b47ed3e38615dd62c94bc1e54399cfcd6a0bd3497a1d212e5e", - "0xf517f5d20929a6e1bc51c8b10323cd54903348add970b61509db8bf2a5cb0392", - "0xac637563891c2fd8953591643ce9f61cfa883364ac2dbc5af63fa0eeaa08de9d", - "0xf5c0756b591923f208b94b125c15dd3f7e13f2f45d7fbdc080faefa1823bd672", - "0xb83b3ab528b3dbf300f56d96d80a9b79f9182f31ff2af6c8b781b6bf46cddc2e", - "0x189b6703995828adbd51553773f2d8f238399e12290beb64d1de1d7d9c2f5327", - "0x5937bfacf2fcfafe6fc1df603f94f8c0075c646c9a802c49a040aac9f7ae082f", - "0x2f8bcb4aa577e0ae68c3baa326fb9dd5f039727559838faa8a28f34b7c103c1f", - "0x6312ce88a129b6dee2b07b68f15e77c8ee9fc1170e3ae2b05f4f2cadc3ec6a55", - "0xc44d39c1dc10ad6dae0fd0300abcdfef406b58f94a8e0111d2447e3bdc3aa9cd", - "0x179c33edfe39da01cdbbec36b4ce2f6775d0a7b9c570a4934cc60cfbd2940ad4", - "0xd6e94a0916e327c9eb0540408fae45e76e01830e597bfea82c6620e21ae631a6", - "0x06f274ad702ce8f5a584349b6aec3d826a1d248e7750be091aa07d7a441babf8", - "0xcf986fc90805cd16f76518fd37373469b588a27d7c21c68ba1d0d6a349dae1e8", - "0x036b973c1736a5967bfee6301d1a6e7af64e5cfbfec3066a67f3390ed5b87191", - "0xb221ddf6c6b142bddb69aefcf3ea899f6a22d6e3ebeb4e8e167a6b19b6a61b92", - "0x2e3ac0d4e5e25aea9dbb3f7a38a30582b2bbd29819553cd61fb2290cf56d481e", - "0xbe99a85ece700718bcb96a4527e1814ad4c338305e1f1f1af48a1bdf13886bee", - "0x87a2f12f58b0f326de885a8f081215bceb8b43ef8fb71a24ef93da4f2243bb93", - "0x84afcc3bbb52a5fc24537e700c55ec6b95ad959871f589253e6084e7e4237bc5", - "0xc671e485891a37d989c19b180a78b052f1c41bab4969febfff2da23b175494c3", - "0x9f285da613ca467ed9614ac5583c3118437aefd01a5034b305a5087fd19c406c", - "0x44aac47388129ef4b290983e58b70ac9ef523628c2130dac4af249fa64580d12", - "0x68b329a6e60e2919d3dcbea4c4beff28489d231ad973494bc2d70aae4b68892b", - "0x3d042a40cf48842ca8bce267ed38357cf52788f540af87d23ec3711d341c1867", - "0x37f134fc6d47270a969b951addaee057a9c382bece4834a56021cdcce6acee5a", - "0x997f424224232841c105af9b6ac92f99b17f487eba64ac8988b7822c401713d0", - "0x70c9215e11c0aab6c6895e54d33d500503ba138df8dd7e78f4bde2a17b93f8fb", - "0x63f3bfb4c54128f2949180842693cccc6563226ae52a073fdefa9da87b09732b", - "0x6a678a175d8ccc396355bfe2cb42c51a7b6d5181579aab2a645b6e5e45fdb22e", - "0x2e322919b50ace0d167b30da44ac8cb2d87d7ce1386ef6be2e42709491718f0f", - "0xa38ecd5580a67b838c49880ed9580aa1b4310dc66d6da21f4c610b08f93ef984", - "0x211e941e8972abf1cef0ff284abfabd551bb9dc7fa25a822f87225c5b5a0350e", - "0x8f7bb8570a07243910c67e43a94e4bc854bfff038f33b73d47fa7ebd114b811e", - "0xacbe9eb4a5c1c7397dca58158332e2ca6708d3c3f388f10d489eb9dd5c4e94eb", - "0x6a2979a3758824c6abfadd19baf1b186a384381761f93491357f54112fdeecf3", - "0x71b4356261682f9be9541fa695d56c3c2c4fd1a3cba3329f441d905024a253d6", - "0x17521c2ac53576ca6fe205495f910acf8a676f353c6038537eab45bb323f93e8", - "0x4466ccef41ce9f524ff1c60ceb56f026b24b58351a90f980637494d935c12195", - "0xf51beb0dbed6367d47dd6568664bb6523e3a4de0eebc7893a2b9f5965ac8d2f8", - "0x314b857d3f6e5d17514ab89d3dc8d7722cf6063c42ca23afa57be8aed30761f5", - "0x8bd3cb245c45060bf51581fa2dbf6e9ee41ade3080081b721134800e220bfc1d", - "0x1d2c1621d8257d8c5fbe717d046a7e43789bfdbb8e2d4a8ce36d1d99ae126c79", - "0x3d097d7cb7b8b08db4c531022effd5c3a334fa666a55ba6ef42e6761da3794f6", - "0x73edbc1940407880d112672fe9a9050d97794313174bc24034803255d446d1d5", - "0xb4f08ba9d5f7a537a3969ecfff0db4c7572d95695d96ccab2acc5c3ce15ca8a5", - "0x4fefaa4946e67942a2f99b938a576a698835b6aecf8d3b0cf3722f16265dc6cf", - "0x3922efb8e5cb8150ea9ed0aca2a38c9fb5dea6cfdbd91a28e1df114071ba171b", - "0x461906b8bf7de0db835ce4781976435454319de68a15250f95446fffa8b19624", - "0x5e07b47f0f5979469d2eef9c7164bdda51c282c2eda92867e79f1c8eda5d8d02", - "0xc314ae59d4cdfd61b544f6140baef007e641f1fe7262a0b1ae62090380219a56", - "0x01ec2c1100755b7ea2fa55af062d0613413948061f44154cac5b1a60102f730a", - "0xa59bbafd3b759530f957b6de2e6af5f2689f9f83bc3ccab36641079d3845361c", - "0x13269ef9a96d1172f44e1a2320e5223cd5a0687c484e298601701e2b140075a8", - "0x471c228cbb5154cc78385ced80432eec868d76a7718437fa95a6c22d2aa5b33d", - "0x5babd466acb34b53f51dd1e883f9dc5fdf0ff9428f1acc43bac527a29c19f478", - "0x07d3dbda2ef389783dff4865411e8f50d72a95cdf554f7cda1c127e1a4410d3f", - "0x8528111bb543d2a275320a613cb46f25623d40ad480495c2f5aa54605ce67fab", - "0x16fcc2ba08aacfbd9578a722dc2125f1eff8a246f122ba4ecaee21e90e188598", - "0x84e177242cb73e63b8b18b805ee8a9786e60e4098bbf05aba1e2e4825e80dcb1", - "0x3fbd51d54247533ee187251a5027b4dfe477dea4cb47aa3f54509fb0078864d0", - "0xe55a18b13b75084155ffb84c3a5bf7380eb8fdda4b4b441782661423625baea7", - "0x966f713f6410cef1c323ccc938d7c52e80d5019fdb5300841c3992c4c8dbb7a3", - "0x6c23d6c6cca9622c31154ced642e9572a66f1a699c29e77e559265339a2bba5e", - "0x554ae350171d09b93f40b460f034a2c146026a23b0dca9806bf2644bfd5dbc94", - "0xaa65276bd6585e45ba770fde229724a444c01b7c0ff42bb55ea6026a53a26d3c", - "0xdadf46090779bf9147d039fa530e0c36343862bde714678bef2c85e0c21164eb", - "0xb271935c2d29c5faf5447f26c15eda829f01f88127926ce4aa81b581753513db", - "0xf0e959d2f629321bdb028d8c9a5de714600b4736bf46c041b57d3b83a0705a94", - "0xdf1499dd19abaa95ac3bc2223354209eeb779a6a867bb81f2e916663a70e6876", - "0xaf66f05a6509489f0c501a13c183c4932779f95e1a04d18587f9c17433eb707f", - "0x9323d1fa9eb27be59d4f3b8b11fbb9c081a030f4f03f9f743328c97ecec30da6", - "0x97a3d74bb5ec2aae723eed8c8df524f9cbec191f7304e779601c2daf9c483ef5", - "0xd1f55a947c90db92000efd76a742c9bdc7f6056c9d0740b7409ddd19fc8c073f", - "0xfc47ed6abaf1736b16a262d7e9929eea7cee47d9ed1ef2a54818150820a8ae39", - "0xf90f93abd89bed263c5b4cb3b51c44a629b7bc07bb2e06feb3ba2afa86a6c076", - "0x82d1ffd3a901ad7752572e76f81763b9893993beb914e4eaec0ba3369334947c", - "0xdd7cade45b696fc5e52ca59098e43daedc37568a1ec25bc80868761b9bc151db", - "0x37c0da90a3fdf85e740da99c24c7b64f13b6d06854d1740c5d973121b9555590", - "0xfb17ed634b5aad830373ecf8b937351d3012ebbe258e8a87c82d5d7f3b36432b", - "0xa60e2aa09b1a296b0e4e63f4a6bbe5249677f5af33b72a15b8a3280bc2c81ffa", - "0x0e4b7ee7c2611c6099e4d3ec7c9a331e44e1492bc03e9fec27d2a29525987a44", - "0x2fec5182d56b93dd26e24694b3f26e9d40deecd76767ca5889ae590a360daf77", - "0x8e6da7f13e48d52ebedc8e2f81b76fd3a1f22a469cdbfbd4d5ca74669c3221da", - "0x8953dd2c95c7f5f721f11eef2122da0abaad384f2b6a4653de798f0db1c1b9a0", - "0x40b06d0ce4ed2317d5f559b0d9b4856c8f634369d8d24556811b6e9a633ad5b6", - "0x473e8fa4520c50623921abba89d23b5525b6e39810b5f702eba92950eb51ec12", - "0xa0cb368a75e1c8388d137d0fa240d502e589eddfddd85c8350b7f16fc89dba7b", - "0x1f9e094c3453de9fcb89e1b6119b1771d8fe2f83cfecead1a47f7e485a371f8c", - "0x46a105cf73a96a6d557b02a4df507f4383e8078c1a0e3b1909fd95c5217f6e75", - "0xea6cef6fac46652fa4ed3b9c01de0f515effce45009a442e5de644f8807f937d", - "0x73163cb9293f703fdb9f426c4bc0331bc71a00f9c5911ebe4dd3d4e6630eae22", - "0xdd6905ed33ed2704116316070a1925a45e7274071c793e7705f5bef74b8d9500", - "0x8f3a7230a2905d9e052f56e8e755af67bf7458a63197d8d4fc1a8e441977ec9a", - "0x309d075c26ce99710c18fa58cf42d538ac0653ebb501508a183249b11dd0cb79", - "0x2866b9e9ea1d2429a191dec597d236f41cc9ccc40c1a6027d5350a54aef4f986", - "0x60cec333cd2db98f6bf27283e44930fa72a00a71a17effb4ad9410af28461512", - "0xacf92d0251132afe0fa1a74c12200c7d84c1cc7e7290ae82796b81b8f3ae4a9c", - "0xb6cccfc1e4bd430f2701e4fbba009fcf3bc29f94d74498f9899c4023ce1f8d4b", - "0xe706c25537c6dd36b67ab45c7bf9807a2e290ef97084134bb2f8a6c55f2be064", - "0xdb52ad9bd3965f9bd61ea1b7c1dd6b9bb3e481b72e17093acf19d5f80d0b6ccf", - "0x027974ec8db0b1d6e5a1fa1115671451f236d71ca3147042d97b9b0b75d7f60f", - "0x9f9a15c62735a28e4d4d618c277b742cbb24763118042f3f9494dbaac11f171a", - "0xde1590619adecfe1e7a0831c5c180fa4ed70eafbe42e84bdd71b26039b4efae7", - "0xdbf11e73403244b0b449258d280aae92bd82ac6cddd4de566bb249febefce295", - "0x05552fd01548c1935c102dbf29521b2f186b6a18f7e93c67172b2a6608b5dcb3", - "0x35e084f3c927154923e8457cd12a9bb444d708de0d85462c52b344047cda7a12", - "0x8fdf7a3ad51c7cd97905386173c31fd073ffc5306bcd011aa42d60ada37f70f7", - "0x8697c2e4c0e6abf74a42bd0b116aaf0c7a1dcaf8320fd57d3245807cfc11ae79", - "0x3fdb80f2d9f02da7800ea73f99d49de276b70fa9d6398a7a08fe04be6b57f13f", - "0xf8ac9870c638840faded867d2bb1e08b52ce3017811279c0404eb77d139d2182", - "0x5c93cf6eeab0f4319e5ff8ccf94cad57d6ddaabc124f275d6b35380bcd584f60", - "0x1c0f79909bb9e88d8a57f351b2dee534c71b6781fa1481f7380a98af22be31a8", - "0x848caa171e0049ff653e6c11432bb89f248cf67666e636286d261fac07fe3372", - "0x60aced4443e04d8ca6631809a04eb520add999599e24963d00cb2b2b6a5832f0", - "0xe96e2e3832ba27f4607d540b9b850654b49a046b0506be8bd56e1ce1733359c8", - "0x90c617cc791e2fa12c42945d9cb41e943e45e05df6cdd51cc38cba745a63b281", - "0x4473dc1c6bac8cf833aed1d734ee0e60dfc5197bb5f70cb67f64c6a158770a49", - "0xaaba5aae8f36a866165e81f691e9a371be0c4dd167c755c3bc90d4f97673fc1a", - "0xb268b415e289be90d1f4b44ff98f1c34bd955fe79f1ff9733c1e4329a916d62b", - "0xa0608e5eeffca2e8ea8589763a1a3aea6627895b86b3ea4277adf03a063a51c4", - "0x5a1f5f357e8ee4862b0c0efc86e9230015d0774e4700832637d2fc65836e1f4c", - "0xe7492ad930a0e36db4609c81cd8d6e45151daebf8fa1ae461749334b5841d57d", - "0x99b3dd02ee9e107a684531c7b866f1e78f07226e7e2ea0dd8cce2e16a303d548", - "0x12ff9cf1135de89b912e4c091b9975caae36d472b3075dec45a4760845436291", - "0x044e4052b596365e25f8811b4f3a7a85b3ee14586c92b2aea18aa4dbbd211d3f", - "0x483926549c8ebf5afa904a4b432924d3a7fd137949bf116a5bd199f5b8ccb383", - "0xb0dcff0b137267663683d037bc909bdadc5b33ff6c0aa7783d0e27ff0b299278", - "0xf3d0a3758f278cb8bd3c5e0a178a2c87070d6b8b12747226c1af241fdd112edc", - "0xd336da9043a5109881cc071d78b83bbad2f6cfecf2a2d3e5da1263289e495141", - "0xba9f9c99a46e110998143f605a867a316d9b6bfa4ef84de81c8d1863fc88b77c", - "0x28e639302b0edf9e1e8d7ed5a8d583738f95f8e46fb272b4006adfc902a036e3", - "0x7e86f4fceeec4470a8ad0d683d26f37db34f439c425177fa84a7200ee50965c3", - "0xe688890b9bc0c5eb6cf0e55f0dda8afbc95bfc436f073ac6f09b594ac58b7568", - "0x9bad9a37c726cef3db9404bd1b70109f21307d1e6555ba31af99ab5784bb75da", - "0x96e4229af1a805c05e43a758b8be0bf6252d31657b7e069f2d9a56106b4ab95a", - "0x61ddc3176e913551edb3aa1ed873b173c15a2d37c754f52a23fd8a6aa8f22981", - "0x114a6528677a4d32525cce31204f4a274c5d51d4045f0cb28b8944a29342fc5b", - "0x4c936fc65dbb8ca9a1dcf0508a9bc659a4583394a53ead72b9622d019550baa0", - "0x31580da7ce9301c4226697ab1f8265136fc0317bcab22726bdc81ef10d579a2c", - "0xf8adc8c07663e31301b9f28d0e0bbd4316f8b70ee012af61de1dd4cc71e629bf", - "0x494405a0f5fa8c1452764d117f1655d107e940844b7a9b9af26e15b7520b3df5", - "0x98d8f1b6c829ab34f5560f9271bde2401f72e10db991c1e96ddccad248856cde", - "0xc8efc79a80e45ea0df723b9d394ee1c659d7ff980b1b23258515cbe89d94eb32", - "0x9fe59168e2199d180bb63b41dd5f8cd2a699d02b75eb6ea80669f72d4c6d55c9", - "0x8a8e9b799c93d8e24e71a11d7c2e29cb1e9e0eeb27a7febd13ff174d33c5439d", - "0x307335ef3abfbc5932e95d94cfd6eecf7475353eb94eb8995ceaf8021e090bc3", - "0x04c1998cf4039a44e8c690ba2e0c5953e2b73b5a5412cba203aecf26bc74a8d9", - "0xab9b1b7d40663498ca01334ecffeec3e1911650f735ba3212528c3457751527a", - "0x321cd0466beca7b80bd888fd4a2a69eedc0cf4c98a3f13f09702c88e11f01330", - "0xe07aabb02de13055d06d7d5529c8f259fa880fa3cbf9d77b23cb1c1920b7f749", - "0x4f2251e9c341f1e9d764b7a1de08af3b74cdfb642d72912b64df0befe7e94298", - "0x6e4d4056556929033f22e944229c5eeb141d1028b7689a242bb9494af1b21c53", - "0x73fd719af3b5ed20f23abf47e1af6e96876d3113b8d4cae1f14f69a187a8c633", - "0xea76498b8967047077db6440a2667b300a0713bfc58a51feb83197b859612d84", - "0x8eca2feff7710b254635bccec17af1b5683b0fe7b6b9bf03d172ee879e2c9f4d", - "0x5debbbc22f9a359b7a0ca382c0c30fcdc0d66589d123179d3b3d0b5f358eac1c", - "0xf1c417b3c8fce8220245f40e9d0f95ce770de1535dbc14242877e9d08a529d3f", - "0x9b308f5752a16ad3d7715b56a7df47057bed1b06a30a479f09d467066f1a697c", - "0xc3a720c56135630ca4af332c1fe005b7e7542b0fd5e8cc72157655ab588ddc75", - "0xdc61844a64c9c26caef5a9cfd59ea86f8a155067b9513970f4e4766e32e2873f", - "0x124ab0f305778905f30e3e3a0d3e736ed8aa667cf96bf8731bc8e93957da06ae", - "0x73d56dc8eda15410a1e7827ea1d6baf5b3d6b42f3522d702713771ac6b758cbb", - "0x00808b917a2bbab857c1273aa50b6d88a6398306242d8b29a158127d854a6730", - "0x627ee1f39983079a47dd68b95444931c1bd76a3075844f286af86f60237eee81", - "0x831de6f0f15f8bc023d4fddd344f0d4fb99f1875306b96e40d610970cd1e940d", - "0x4eb001b91a8a4ed11e252ec01956805f22a29c99315fa1062aa75599a052679c", - "0x2dd87817e45c7a5f8631b226ed9bd24b9ef98da2ea373d0ee5b69a253866e094", - "0x2b7d949e5e093d4b4e43f568f1a429e636207d55bc001862cfb4949019849c4c", - "0x41d88dcd720db475817ddff2a22c2ab75e9c29a8a00c87e140222c61489013b2", - "0x1892d37481d1de36c2946efda6781909057cb680e83bb468f10f5d86a30d964e", - "0x9eda987d93bbdc3de2da2a83fbe1580f26d95dae478d5d2b26843d43b344fed2", - "0xc6092cda6a690d9d86652460fa6f64cc325e69412566e0868670adf862bcd49a", - "0x1af54727923d411cca474d1d4dd67e97f34145a186c10a65bf3962f419a96406", - "0x7ffd73496a608682f7d7f2d8db21de1260c9509251d9c1a5de10583eabd79a87", - "0x5d49e2f163cdb7f6eeaf2a778b1fcb8bb3681912966de008483b7d997d5a1a4f", - "0xc09df8ec8124ac5e9b83cccf725b4c742c141b5458869ba394ed6764ab23f8e3", - "0x46f40a0524f9a7afb8d8d31622ab3468fac750f42aab74f2b2145a66c4dc2bc2", - "0x30738099d21cd9ed5f6dc9dd46858843583da0d3b29957b2187fb3971da7db4b", - "0x26d73f31256e9a5e1f1d2f5eee774fe09250b32d159c1ba1d7c0684473d96442", - "0xaf9b1ad6158b0b5dadeda93ddd89319a744b4b5b5632cdd92a14b1f9cf546e90", - "0xed1cab59aa51f23eb114141f5c129d5fc18727e026b2ef0680376d41bffde75c", - "0x3206bbdea1ba3ce188a4437e03d5d07d2269143c1498c1e05173bf7d05b36a46", - "0xce6ba1fa2d8f4e5a9f371a38d8c8e1aa94eafb329b45b902f9beef22d0775ada", - "0xd7831aaf526b07f38620d7b1090e519b61d3ad2c6bf7cb9230f6f58d446d4067", - "0xf12252798f26cdae6227edbce32b1fca897684a728726f221b88ef6b34614e4a", - "0x86abc41b3bebd7ba7df51d1ca3653f052af9f235f8633e11d3d0f12046007ee9", - "0x7a6c5d29005e6091a2e2fcc85576f9ba2116ce32367f9adaca592e99b69123f0", - "0xcb3dc5c24e3dc3008cbc92f580ab501c3240a64bfe3f62ab05f3c442d950f4e9", - "0xfb53f96159d1445b2ce967fa71d9cac18ea8461f8998b89b666e68a771c3add8", - "0x346da47460951b0f02188417373ecbddee70217e119d6f6ed0ba2ea6827b7b8f", - "0x029ac432992785e79259ae642acc3fc07bbec58287ba9a478937266290f648bd", - "0x49a23b35b18bcbe2ab2f40449754a78bcdf9ffef62ea8bd1a4d83ea528f3ae9c", - "0x61a527fa1c64e8d1ed6f8be598cb7df5a149ab23072477c6072f50e2b3e9435f", - "0x2faeef7d975d012b27669eeb18b8300d02ca51dc8c7bcc34b0fefd5b444cafd6", - "0x0f8e3208b8d34dbc5efc477f14cfebdeb420e16b400efd32cd6023c5507b1e09", - "0xd157d0daf47aac40d28afe1346b095c8b11f5aa93a1d480405b8b1c8afc0ba69", - "0x0da956cc77bbb010838d091b79e6376f6e1d67aa6c3b5d88adafbf284beea122", - "0x2b40edc2b8731cb69bcee295348c8d685737fc9b7b1eb18078d0687f8f2a8e06", - "0x06fa6e1a977b02303b7b2131746103b6227d40a63b91afbfc11fb29a6388c5e3", - "0x0cf089cbb7f09a5b40bccc9d039d2beed9f53b1ef68fd6a3da82182413a6a1b3", - "0x7dc5976168b3802651f1738d6ec07c8a5ce73eedac84c58e084e4aa22143f3b3", - "0xfaa8c1db0acd8c4484757e696fb8e081d83a5e3f2051472ec95afd2a2cf75c27", - "0x7b4b4c317d03bf74935bbce8d75bfd430a741312de511af2c03c15a8255c8fc8", - "0x73f1245184f4c1649491df1eafcc13ea954defb867fef32054f5b1e1f0d65264", - "0x4db585ed53af2b4c8d484233a78a8e028942a40d23e9d0922fb0a1cdb8c21398", - "0xa1e8481a017adc0e751da1c37c17a91cfd141454a28e96d20fb753c3e672e563", - "0x92f76cab19f99cb5afb1f6c86d39b91c977c2610b6205fe3edf095df268107d3", - "0x5ece345a8baba9afd82d71e0ca862145744bd7c8bf4b72af4fc3a6f2ed9aaac5", - "0xa5f9c2b29d06a900ff440f7c0563d694e753b56a2854dac4659de2d7f242d033", - "0x9b0208fc2f95aacb1cc40f859a1edfd4e0ea8e02f9d129f410aafabdf4db3232", - "0x9532f12aa0e91bc97bde54bbddc7a585bad5394671970d45345aeb493928553f", - "0xe54d2358ac3b50b48fd2eb84276dd395f3828baf11f97dc0d09336745cef6d5a", - "0x5d28abd1d31bd29109ab002acc898fc0bcfd52de08dcc50c5ca6cf757dbd99bf", - "0xd0c9991103969397500440a1dfc024ad2c381f065be895a5e2c2d54cb0c2fcd8", - "0xd2979ffe159ba77340470926d5b3fd124fd4ce3716ebc10abaed5cec5c2c9d8a", - "0x7c03d52aaa8ae16ea7afee8b4836a3867db30c8e5d2fae92c1ce68c2e6cb59f2", - "0x916fb8b790b3cd137923c338cb2d61f6825db62548e013854ce8ff4cf97d1659", - "0x8dd0237c7623fccf095ca4e46e23e29490acabcc8176ba12e56d0c141c8b97be", - "0x52bbc3148973dd3339c5fb429ce1345270e226c11e0c8a017cda38dec3824c6f", - "0xa20238f94ae9ea83852b45035a479f50fee9d649da05b0c0c98fd6952fe3f4a2", - "0x2745b0d174d075607e164831bfd681983d7ca309b5abf7914815a19d953ba4f0", - "0xdc95b4f2a390f77e684f7e47956e75dd66081f910ed274e579b175268e5ffcb7", - "0xc06e24e59d28b4f6fa09bad3dab9ffa1c07a564b395835b2e622d3d7026cbe72", - "0x7b497112636612b76d377a3321abe631a222b6b2d7f6992e463cf5606d4d33e0", - "0x8797215987eb5c9b0cd9f21eb8545e6fb491e255f2f5dc4d71bc5fc5cdc7ce53", - "0xb467f67e608e4a7050b516af1d55f0dd448322ef81df8c1f8114229904f33c63", - "0x79b68c87890a148ba03b6c0ca216b7d28065f8af1ebe23cf2c88db06ff6d5465", - "0x656c96e846e6de75f16b44d2e926c8085ee26a0965de0bf8c7bf0d2401a83e4c", - "0x978d9ee624d5ee3757b5a2148d20a126e64c751784c1d32940845a3054583d30", - "0xef90078ea4bb534b9ca254e8547653d7e52170194b6f8ceac83f374121dd0b12", - "0x6e0116cd60ca37900a3de52abec06f30f91f34d9a20e908431ac1af397a88c18", - "0x4888eb45c6380c280d47d342643f55271324e54e3228a8e870b0aae258495287", - "0x1f6278721c816577765c72082bc890195dd94b9d3c112ff3c2c6cba4ad45edbd", - "0x6487b511e60bb8cb53c3f78815ed24a396d2e8bed7575d1895c8039ef3797381", - "0x637687ebda7c801cf66a26dc3d41869dadd376100c83bf71d3a951662f20edf7", - "0xaffc2cbc626d48c70d3d0bcd1667d86e1a98fc496511432612e3106d1afb9929", - "0x5c9c7eefa7ea99ce35965523b436e2b8d7dd320b9bf924e7cf1503ca67d6b30a", - "0x22c494a2a842ffbeda62baad19683812f2fc5373b6e82ece7b8be00c5dadf10a", - "0xfad62a95acc8e4eb1c386fd88e8e3a0ff7d19ebd004f5ed45e8a7f7802ec43ea", - "0x0d07c634e961f28b282fc210d2913a0bd3bedadad080940281d886721c538fda", - "0x2d431642a8c83263954fd7c0f6e36348003019d9568d9d171f724f4756dd6f34", - "0xf962d76908c9d2a6cb9e7ceb7f8b7147720994e0519f729846b6e4f5e8b560bd", - "0x45d5f87964945970e6ba81c57cb8485fde586b41a05b5e4ac7da385d75fde6ce", - "0x7d07ebdd328f8e536351b424942e1880b14739c2f5cfee967a04056e6c9cc12b", - "0x388e92e3102e5511a304cbec618bde931f1f56010ef54202c065c3ec4686e685", - "0x14460220797e84ffc68d01ced33eb64e9bfba1bad82e29669fc3e74bc2519611", - "0x49c3bc1efc367f64f8329ae665ba1ab00c76ef430fe706c610f2a31b41de30d2", - "0x27e0db3c746b18dcb86d18fec9540bc1df18e8c1d77d17bb224a589d80a4068e", - "0xb933b4c8bbef48b335a34528f157ddc4f7c633c1603e52dcc2886e465deaf134", - "0x36bcb92112ea8b857db34f68c1670b6229b2eb7dd5539c7b97b5ba8e373bf1a2", - "0x32c23d02f0188330e2eef133052f28461ffc97d789e9e6202de57cce0a2afb8b", - "0x9f735c5b8257c702560ccf3dae7354194b62ba8d21150cb57b79fe9cd5d2f548", - "0xa6f28dc870680e9dfca80dd958095e106089558acdb615c2065533f636d96dfc", - "0x5ca9aa3c082751eb51c492710f8c6b02767c3b8b57987b326ff4dc41aa69987f", - "0x6df064448e5cb2fb01bd46e8726c4c17489ff328a359cc3465f5ac251532b471", - "0xbe05bbbfebe039e826f0b84cd5736bd2b4c26ca84b4a8195a547b91f1255744f", - "0x3217a4741751898ce2483d0436a330a195a3cbde875b8841e8ac74e488eb459e", - "0x081b1d042637b49375bec86e347ff7408f8f573841d740eaed1f6c77b9ea1f8d", - "0xbabd33314a1271a2c4f3246a8f2b7b621d967c23b665af0a8930e1ec77841061", - "0x2991cb2501802fa9bdfbea0e49afedb6ac9d88a5c4bf9a9bd29f92d33b988e49", - "0xd776e631ff61f340533010e564d8e0d6961e2f0ffb22836e81b0b5f84ec8fd01", - "0x56cf2f1155bc2d890c0e9c4fcbdd9b57020e3506353ab66d72da5ee36db046ea", - "0x6d7a243f0d1027de2ce938ae9d24f053d689747128c71f7fc8ae73b4c7229555", - "0x7dfd8d8588662e4321e4ccc993b61143b518a2c4d1d7f61fe038f30b78f1ab3e", - "0xaae76061640b8f345a8b0d0a4b9beaa0e0668ce4643da26987a255b0c013266e", - "0x6186aeacb7fe0940b710f69d923ff6b56c3c8d1e5df70e4ddc8b080b1c9684af", - "0x8b3c5b441f8f27c56b79abee2ea69efa2c88032a7b6c0e1e0054247244b9fa5d", - "0x8e5ab48d7c419927522377929b8b94b1d870c1a2c52800a0dfebbee0a32f2cbd", - "0x1ab04630c1432c909873dd6546dc0b60cccbab85b047ca8354f16c92decaa600", - "0x03e1c1c0ef846b5ba7227bfcebc35f19dc06809813f4c53e322bbe2aeaeed2f5", - "0x6d12edc20323412e39ca18adb2e4aad76656fec59d15646c150611a0e8e65ce5", - "0x7de54b33d70ed24d7d53c768c443152d61be5925464292e58179d06a0928821e", - "0x82d97f99c24a4c2c02ac11cf2c2b352e2ef420daf9aaf428898f8136660769a6", - "0x3ec29a3a534395405e907210ec03d9c323e7e3522342da8499d73bc7c55c885e", - "0x04fa1ddb763d17b2c412af9593bcca1886c36f598836cbd59125d6289f7ff794", - "0x88611ebdf982640198b1531ac7a98f0072cd65178c05e45176ccebd243ac2ad8", - "0xe39501353a6e2bc11236c48790960d9e200552e3533fcc87b39f24c2cc650d52", - "0x0859922b862889bd07a54ee28534171c8d329415ec33453fa96ec7fc2e441d88", - "0xb100bc9802ea2df0a91a88da009801c7e8f1ef5ea5799687c884aca8c0a5e207", - "0x1ed792dcec77ce61b7328c6804310f3268be600304e6a691d7138e2ed13d1042", - "0x87f0e29f88b89233b3d19f99d5771c8ff22548c26aa0233c29cf5a946164b55f", - "0x9d3ffac4afbce08c6cf2a37e9aefa41b6a1cb0681d595e09c51d1dbca887eabe", - "0x3053e5f7be54c097208db0fc2096baa2bfca2a3d12b602562507f10b3cfee9d9", - "0x5ef9e12b7a499934d68e75baa3af7ba06d88e7cded5944f050a4dbecf69dae10", - "0x56a05406985762aa30120261ec64ddac08bca126d53a7c9e701efbb228b4732d", - "0x39a2ea51bb3669788ce26930dd80781535dcfece82a9aba2c76a194ed275b8fa", - "0xd5289c0301ae93da8be1907ddf0fc94fc02cee4df121442315451b2fa7d28633", - "0x4b6f894058849249a6edd62a0076b88c7f79d045b2e1996fd7353f7a36fe17ab", - "0x344f0a036426900cfcbb5d258823beeeb43a093b9fcce906581eea90f454fcdc", - "0xe0dadd90a1330f66b5101f69f1fcc3abbae8601aa54805ce4dbb0f75f1505588", - "0xb61cefaced4cda06ea52e85b15069d301f6fe7f3cb95fae6aacad81ef0a061d6", - "0x7e2f2f169c6867a7ba49d709ffb14b38dbec1844c93783b61883174a19deb4e5", - "0x29c593944a9fde3a5e7e5ae63a7d3e8523bc8d02615f9e67cd60472c4938fd75", - "0xbf99b22355f6be28bbf0045286ad04628a3d30efa67638d9ba9f0ce976da9b30", - "0xc9c2b3c00d3b2d5df58f74fc80fdfdf5fb40fb62decc891766ea07bf202db995", - "0x98552dcf56acae020222fd2d42f98f66fa904c746c3caa17e456b85a83fc8f55", - "0x02c689808b40d1dc3e50a67b1d6910799ba0b249988c6cb6b8e71e7eceb98964", - "0x7cd2ac51dc7e81be2599d876756e969b742d62d28f802ba1af977686797fd6af", - "0x200e6f01b8a24964078d91a02901a007ee9c8c25d778fbf0ef36740e8960edf3", - "0x37f1ad082b6fb0a51ea5c88d7fa191a17eff96999fcc481a35b19347aede1ea5", - "0xc25657f6f04a18ed59b576de9eb9243ba403005bcb2623911b965d1f1bca4ec8", - "0xcc28e4da4050f0ae0595a435a1ee408aa7bdbb84d0a42fd2a41457f59f85d32b", - "0x64e5e17cd78170d733b526d19c05ee33d09227c5ec35976c5c312f9df19970b1", - "0x1a0c1afb2c4dcc85fa590143e79c543ceb3d96ea1866926d2df9902caa5830ae", - "0xdbe12369b90b73bcfe3e5268e70573b7ec7a73871c4210eb3ebcaf811942e8ab", - "0xf3af79f72fb8b254ee14c543de63129dee897958c1eac5adcd5335ccc526313e", - "0x44ae78a643c33822076ec29e398608fa1ab3d320c785978931d24972693be19f", - "0x75442e6334004a2d8cf5bae4a11b6239a0bd335299ee5f04fa12f7095078f0df", - "0x5c08d8c3869181ec13d314ad7b4f6f14d0d6b5a7e65635a2619d287fc3e71e6a", - "0x6beeda18d865a70bfa263f16b543d25599d430003bfed1a60c0e986c7929b2e4", - "0xe1d21ced822a50074685521183a3a7ef31d231637e9a0ec4500ce1640d3dd71b", - "0x325bd176c1da2a9eca970f2832124e031cc9c5332d27ec7d96adf9cdc9eb1264", - "0xecfc747869eb075dc4f2da1a775945881be255826bbb4f8e7d94e047269093ce", - "0xe661c2a6c70cd4c4cf803658429603cb8f7c8dd1a8bf1ac000c07b17cf7814b1", - "0x93fe369f8315de72944c7ea1f66506b0aa6a3923b435f352799c6796ba0ba7b2", - "0xdb3db5f92400631bcdc49b0036838b03000f465dde53ebbef11f04963ef5219e", - "0x8fbc83c7c4b16f8d48611d1125c9860b0837c3030aa5d0d64b327d722dec250b", - "0xb238016769421deaa46aa26ab968d6ead614b7e99e63432213bcc0636b03b7ec", - "0x46b91ab2e587a2efba39d7bbe65755e55751313833fcd6e07063a93165b61bc7", - "0x8bfae3a2623b6a73419732b15fe50f99ee75a6952c7ac90f9125ccd960a00b9d", - "0xce4fb96b99be5c663e14d783fb6980ba07c5689317b5fbac3d2e582653b73adc", - "0x7781efcfad9292b5a5a3c6839b9da00c590c0081a1bc9991cabbde69409e0fb9", - "0x4a4bd2eaba40041d0a876897e71ccdf33f82c5db990529e6a95446f1668c1182", - "0xaf099a17cfa6cc2d4414759b07ed319606e7b65d198fa3ba3652af0aa2646531", - "0x384f3d208a7df522ef623ed8e5175350c0ef098cfdb9077c45c92d46c132795f", - "0x4d6b6757fa1bf35f583b03a0469697a6c45c9eb2ea292aedae8bd31d3a806ddf", - "0x015281ce8981abefabecc71d179c2acf0b16ffae29159e58fd323712587d71a5", - "0xe6ee15ec60e4ad82db0dd843c5f75c4f143bc868dcc2ee90919b3b3991218f25", - "0x7e0339afd84ba2f05901431889d906b643bafb8052e169b42fb71b77a9731820", - "0xbef2923f78962680ad1249588c6a103a5989401c9d8f70598013d261d9a55861", - "0x08371f39d235fe240bb0d4c2d7a443a5289e78feb753a51496ba12edb7bccd85", - "0x22390078429bdb6c30fb866979bac61f07d8ee289a6d949d39fbae91b2d71415", - "0x122072162d14ba916547cdb29fc9d35c37456fc2058f69a07c019189eaee8f83", - "0xd23ab5e33fdde2ff43c115f3838a6514c9a3f35e4a6afece49cece76e61c53c7", - "0x141fecf80bc04cb714786bcfb9ece9722e73ed89887e6e68d6fc486471bad0bd", - "0x46604512136e3b3cd7e027de0fbc10c9bf6e1efb32be53a95cd7fdd03e3d53ac", - "0x52abd1afcb310ed61fc785fb4452bdf663a063a52ea6a37adbb902f51750bc11", - "0x361d341722d14fd2fad63c17befde24561a5b2f003be01fea2f892b0eeffc94d", - "0x3eaa9017f1d657975e93722d5c3b4109750945aa8ecc27f39e9b04c275e32106", - "0x9c5e0538ada58b7c54dfb2154668c0493be60d35064b2fbb5bf209a977d07e57", - "0xfc49a9ed903f1eecc775a50d7556b4046b6f66d8ac95d41ba36704f49bd63fce", - "0x85cf6c97570ad666afaf0ad1f7e7dc64e0b259dcb02c42554692a1735fb37ef4", - "0xae861970ecf45c5224f946ba8f6441c93edf83950b12fdd52ceda3d7d53dbf32", - "0xdf47a5dd7b8ade8b279ffe9047c2f0ad5c6a5431e9b4188591839bc7d6ff4173", - "0xa7a367a5d8d13e193051cb123b1cd917de8ebdc07918d682b31af7342ce7a698", - "0x060a49067d27644cb03689d4bb5f39a753224d593d4b91f2b70358d72d88853a", - "0x593aa3167b1dd3beabfc428cc53887c1cc1b5b570dd310143669a22ab2d1a4a8", - "0x9489e935cf00b5f3cbfdebbd6cace9bd8cba9f9e484664e8e76349e694314516", - "0x7549951fb66975623382c573f61c593e1d2096d21c3a68994a791425de4a92a0", - "0x85141c6f34e2a6648aa45b4780fa9179c9c229c774fe8ccb3b8ab0eca3a60391", - "0xe25ab18336722de9b22e3a8b2fe9adf6771b338b695ca5a80061d546caccb288", - "0x44fee3971e29540fcd7cc96cb08a22c6dd6dafc17fd9305e13500fe1de60bb5d", - "0x4d9258fd627ae96774fdeed0e5310ee976498d918e4b54275233da1b5f827362", - "0x485dc1aee5406a251cb437971bf928f447069a307045182d3db3a302155d6779", - "0xd7f6cdcf26d6ad0a7f21b103e958cc437bb5aa7ffecf97850165f43514d4c95b", - "0x6c210901e0218318e01f6d21d7c986f11de1bf84b9eff3e64a52ef42107185dd", - "0xb9d2c5b5e1bd808800bb33b11a7c2be2b872935e8492b7063285c49d7f92f734", - "0x66621907053ce5d1547df388ad8f8bdbbab9dd996f3b1fd640dc422a608a6087", - "0x8d371079e5187bf31d554c34697a9ac3c11ff8fb982e6b6a68429f2e8ffd4f8e", - "0x16951c981020495a83f79be9ad2f340ec5226bb04e4e0ebe1f27d3143feb9042", - "0x5c0efb6c1684f19c5a3c11b1243dadeba3e65b96b1b845fd0a75d8e241c94ca0", - "0xe43349db377ec74f78cfb37eb22bc39d74211646205cb4d1b5d1d0fd16021d05", - "0x4c379254315a3ec38621435b3e126336dd0b41f4d065d8733a358697cd541264", - "0xd84647d81ed4e556655ff9582032a954089e04392412808592ec7bb53cea5a2a", - "0x06a8faea1c4851de651635792445a3f25709514b9fb2bb23a2d24ac22f603ed0", - "0x977cea87698c8a08c874844f4639b146c68773e922a7ceae883dd862ccf95bd9", - "0x0cd0588cce5c2105bea36359363e86f6a6775aa0b3125a1780dbc4bb9537d627", - "0xee35b874e54a538170cb18bbf74d3dc7f7b2522263d2d79841591e9f09e3a1d6", - "0xa40fc1bfca63f507b80a5adad32ac883c7d928c23f3b203759b176cd80f37e35", - "0x6162bdef7a5e89e60b4abb3093af275455eebeaca5348a956d721642162c71b8", - "0xdc4e2606bd212827f8a391134861963fee5aba1005201edbe3178ba63e05500c", - "0x131601b1d34cde268443e666024fe502c9f23d54c975483b3b07d9759033eeb4", - "0x79e3abbb7bcd5ef05f069fbf5ea5d9639588e3f939cff5d2b612c240577c06ff", - "0xf7f88dcb5b486b78fe6c199cf756018e8709548dc7325f9e1e3e2d1169d5dc09", - "0x72d3d5836d6a68b5b4979431479f4a671e1c30539e4146e5859a97a195ed2782", - "0x086c291ddf5fa190e87ab4f76eba1231bcf59ec243d2843788dafe95bf7fcfb7", - "0x04287431e7f53066ab8e1550298ab3ce27c1ccc880e38f0b41ad872de3eff509", - "0x229a56f8970cc64570e8d0cad368d835d52bcb88ad8113cd45749b6d8df0b30c", - "0x89435c2fe11e6b8465da7bbd7663a1972f2416c7ee8d728a26b59898eda1890b", - "0x56367fd86cd4690cea733a6a5df7169e781ce3b991e0082ff3c9d269f58d4b76", - "0x654d2f3844d53c2d2744981355d1049f0f1d04c554959d19eb940c796812168e", - "0x67cd79714d1c59098c47ab8b192c8e4d7e79023f321f66eec9626b78204f4449", - "0x7251e63a3748a60505b4b99af71db656ed9780d49f10dc7dec363f96286dcba0", - "0x55325a35f7aaa81bb0a2027d0b9d013f9e4d6fb1a479056676ce5d31003f4d36", - "0xa02d3d68c32544184436ab09ffff241e2f44d133200122b277df2c33e681c799", - "0x57526b0d3ea172c41d8ac2ab9cf47932dc11b6f3b42027e475da5129c5394b76", - "0xf1cb875fb6c526909f4dac30c94b3fd72852dff282a8fe13bb5564a4a814ddb1", - "0x82b8b549cc4081fc924186fac0ac558c45fcaefd20fc7a9191981877d37ae92f", - "0xfc6e08279867a93c5899140e42279950d084bf3f120870844d123770f696aa50", - "0xdb22589b7b517c5fd6043a573d3171387718308acff879f087c3777f21e72911", - "0xd622734b593395fe457c1b01a073b8a9b88d877be3d04788bfebb7d9fd20192b", - "0xa6738bbf5e58be5f947f3bbe8564a6d64bbd713cb2e785152a56e7a3435fcbac", - "0x2a6093694b4aa95733d29cabe3f9aefa198887ba1d39335844a7789ccfcd25f1", - "0x7c70e33a011b2f8203a3148801cec71432b56474c77b5850c71df7e4b23b6bd3", - "0x2690ae9df75683037d3bbc5bbb068e770493033c3d5140a397b9a759be143422", - "0x54a5fa96035d40fd9557220d835dd82fdd981dbfec66e26e185018a2f7e3f665", - "0xa83c41a25d15d4eeaca2290b9d60e55d2b636f4083700f276eddc875eca857ce", - "0xd978eeaef835b1ece440ae4adc7862480373c635850965cec16dd8598593f7aa", - "0x18f9c6c1e03290d59e261da7caa867844cfe0b87710f41c07608613c86f9b902", - "0xadd7fdf1736b49de85a3d4c381bc055eff6dd8643d995d1bc340cc2651c0e4b9", - "0x7102ee375e3eff75e5a5a5dafb99864db8ad24a24e2817a927e2dc6878a09ef4", - "0x6619d248ef0d74ca1bddfec655b23229e79eecfa4e87d690166623ce94277db5", - "0x4be0eb7f32ba4870009d32c76ce5c3afeeb62dab6e688db7fd6266fa1c5bf8e8", - "0xa65578ed2affeb0b487db90b00f04b05d44cdc49875356b71c1cc1939203ba22", - "0xc70a2c953deed6e690a8d288b838c1e907c65cee4aa58ff7251826b692feead0", - "0x955f4c5bca931d7034384e9291a6777e99b2a8fc55b3fcb76ba63fd9ada41357" - ] - }, "accounts": { "0x0000000000000000000000000000000000000001": { "balance": "1", diff --git a/ethcore/res/ethereum/xdai.json b/ethcore/res/ethereum/xdai.json index 2da25ca4e..cecc79171 100644 --- a/ethcore/res/ethereum/xdai.json +++ b/ethcore/res/ethereum/xdai.json @@ -54,2818 +54,6 @@ "difficulty": "0x20000", "gasLimit": "0x989680" }, - "hardcodedSync": { - "header": "f90244a0379c072e9f737484d7f6beeb8d6d0c3dc9173efa70e10b3f5ad6d74868d9730da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d4934794a84713b6241260b3caa2c4be00ff62b89c4315c2a0cc0a4827e9d8a1e4e7a30863bfa8cedcac880ddb1e678bab73343e6197c2ad31a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090fffffffffffffffffffffffffffffffe8357b0018398968080845d7b7e769fde830204068f5061726974792d457468657265756d86312e33342e31826c698412b24c7eb841a790425e1bf0ee1ec37c3f3ceceeecd139b0c3155f5cbd08828e17d434a0387d0201240692727d8b49ddbf413eea8dcf973178b706a239ddd49cd453bbe57af301", - "totalDifficulty": "1955496934878520937661876759407460631004578689", - "CHTs": [ - "0x9f5532cbea89ff89b7502cd5926e9d7b41afef2cb2f15f8452cc74cd91148920", - "0x079e67e8a3d9975682aed0ac1602299cc179938168fa2f18662d31bcd6a41956", - "0xd702a18aba2b86b4e1859138605953352c39b8c7dc5eae330a5b638188595867", - "0x105350b6a937d23e3bde813ed0d0e606fe43e6272bb89db5dd12fafa5efbbbce", - "0x44a13a5876f64261f1a3bc8a6b2698af4a8e3dbf5fc4812e5d7398210f9f8dfd", - "0xc2778ac7c7e4bc2e92b08cfe4c9138ea7f5b52c1fa41ac4dcec31b9f0de3e898", - "0x0ed9bbbfb97a07cb8f512d070fefbbd814339bf4302e2721815ccc2c71313ba3", - "0xcbc2b407f3ff2a0c2e866231e003f90742c378e56585fe337b1380538f66f652", - "0x84aba4a2f9f0f61f614ceba55df7eeba5295120fa095b2e848fa329ffd8c7484", - "0x743ebdee96f5717ec0ad355aa7bcb0f3351fe865388b425f84e80fa946419628", - "0x9abedccb839fdc8314f4d32d1380e7ce4ebd7e1011b25d8fc8424b52a183b440", - "0xb56fb42bc7bae4230baa08de9777a5dcf919982f0429afe437397565810507bd", - "0xbbea70ea25005c971fdabe7d8b80142167c848e1bd38f11050866fa3d620fb0f", - "0x8b229101b5377d8d89a3386c5ebbad6f56a701ae592a8ebfad76061d52c7134e", - "0xcae9895e247f9db2df4138d768dffa96cc533574924c57f69bab229b6b19880a", - "0xb925a8e54d1ff91e3c72b5615486e5bf0f815103f175e15275a8be421271d9fe", - "0xe85da4ddda46ee3306510af31a10bf22c2c4fde3aac92f30cb8c61a9cee93ba4", - "0x071a562ebf53caaa8e40747be0fe9270621dcf40a2c972d4d8ea2a70091e6bf1", - "0x4cafada660baa29ad4442c2df6249450b7e5427d5454307496d6bc6803b08ab7", - "0xf14ab138b42cb843fed2f6bdc4a4a0471a9b4c3a2a3f8b5138a5555cb95c2644", - "0x435afb524ce317c552e49c1b3a40be151e1e70320e9886f585c494651c8bb4e0", - "0x2f1d8b8a4f84c1eea89c45643e379ec177d3787fcd4bc19eb56912607af9c88b", - "0x9a85b61e9005de6fd6ae555139b56a2441add46e57a17377bd9c21ea936adf27", - "0x6d82273a52f0aebb3f7b932a1789e662573c0f7e594de7b0fd755a879b592944", - "0xd24cafdadd0cec15588a5be7d9f085ba8b151466132ccbf9aecb7d906c1694d5", - "0xddeeceb800c6ea9b6803431262e7ea366b5f454d760238c9b7ff9bf6f4682c92", - "0xdb1e6399aa711ce8969a66dcdf1f0b0df353fd4496361ebcc041414b0af81372", - "0xd90a1d2b833ca4109c01313c025ddf803aa4b8db8ad12c35d80c62b1f094f9c9", - "0xe8704dcc919987933d20cfd071b3bcd688e7bacb4dc94b11c058d33cd0d016fd", - "0x97857c5777db317dce2a70e56b017483a6aa369258153cf3763db94dd06bb628", - "0xc58ce7e7b7d4706398000fbb19834ec8e1a5cf0d633158cbcc066e8bf1278538", - "0x973d5aaed57633afab5df437abfd430a6fb7977ed81bc467048bc8e4c4151abf", - "0x265e84795e0e6ce34c609cee66b2a7125c0741269d4bcae1b89747d5e60d70ad", - "0x6916f22848a333e063c2f3f1ccc8255043512b2fb5b606055225e4ec7454ad20", - "0x43e9a4bcc1abe938a76332fb3a3b5b18a9503d106943274ba1edfeb24e0493c4", - "0xd7d4a70a3aa8feb66a1b510f8f75b1d39d8154abfed1c38bc3e3a5cf1cfd22b0", - "0x260e50eb3bc55d2535d63c5aac45fed0cb113f96abf282fe59c3b31dd2ebeac5", - "0x4fa8a27a129d2429977e0c221d2e1290f93e5f4135cc7016872aa3dd12a24417", - "0x63f7df6a71586a2f399e336529c16282cd98ef217177d7f44a84182f00781f73", - "0x8167c85f6265b3264af8a4c48ca6ac5f69cd27364fbfab9c5db9096e8a5a3f93", - "0x66e103b3d099455188b760e63905aeaf771a9fdd8a3030f1cdde81d088e77ed4", - "0xae27b09e3aecd49e196911963191c968ba84e86bb0a93f1ba0a261289e17bdf5", - "0xba5c0ebc2d917df1259e1c82b9f2a9976c7c3c565be4b5111f480c5ab61b5311", - "0x320160e3072de7cef1b274bf3a7c0e6e449aea56a8fe1a44ffaa71913739887d", - "0x249759194264458ba63514e0c5df1b68f3fc10c1c060dabd223a5650a78fcc1e", - "0x7a2c8852128c2c465be6c902bc47c9c6ecaea3521277b423bdfb22a48e8f4823", - "0xb88d2649af6bede366ef228d4c562b2848b3c3fe9bae7ec337e743889f88b5ce", - "0x5457256cbb36ad7ec18955cbb5ec85a7cb7912be05e21787f2b29693fc0aed61", - "0x495b2942a2cdd8787bdb3a830dbf599f8081e0803117ee0ba7506c89e4797977", - "0x0146ac012e7be53d0781d30c664eeb14c24fa89004e5d5fa380d228c28748a40", - "0x7f3f3152a93da9dc7623713c440083652d44b5bc92120967a55ce6dd95264aea", - "0xcd2ae49bd9a0714132cd58a1e2ba0a91442a6a70e56f5badf957e7a1a94386e6", - "0xc8b72e7467d17315e56e0465303eaa9f9e715ca9b85679e718b6d72fc7236a6a", - "0xc0037865f5caf21e45c68f1c86b9533946d863a7d7457286d24a73c27c4ae850", - "0xd0d264da96d2c059eaa3c9123e6f474420d34e8191b10cb4d23735be71edf4e8", - "0xcf23eb8d88e0c26837baf773d6395fe97edbdddd03f072acf6248685b23c9204", - "0xc7c4b360734220f7675713c72536f68c7d9d668ed730ce79040a4ac6425596b2", - "0x9edb394dad40d5be15d2eb885cd5b735a0549094aba68ea5788edb81e5291bc2", - "0x3d030fa248f48b139f34a5247ff306f647bd89e754716dfd173f7bdd57ba1c82", - "0xace2c7b5c0b19c4c592bb94b2504b57e314de40c7f88f2885a23e8dbec212e68", - "0x00313f3e654872bbdee14b9ad7fd1c050eff5e8a54d4e56f91aef331466c2545", - "0x6a0dd26a78b8ce14a0971e573757200cc891051e80ad67dce726432d23044741", - "0xb6e0e9df1d9d95e5e0f99f604762b5d782b19221c5b5beb9a932025254eba304", - "0x159d4e9f8cf95b45c9942b5de09ac3acd2627bcea74c6b4a355f95c073f29216", - "0x88a6c06b1d6ad9f27e06b347a4dd493757cdf5124fcb2cc49dc0edd8b8ffca00", - "0x0cf6bc645153fe58e981ad3ed2f1d94d2000a24165c8b07db3c659325ecf2a30", - "0x285f36fd75ee27236ce24dba0abaef4eeb66156a9a802b58a2600e98fe23b3d2", - "0x925efb6bc3bc9b64488bd51a14266dd0303b2617fda2c01c21ebdeb9f46aaf1b", - "0x1d66104f22d10c40917d86b5f305d098aa83c3704f8c9e3e37bff6608ab3dd77", - "0x8ca9dd79b65b1746ec1f938ca011423a63fb97a3168fc761de1ce236263aa912", - "0x8d58d7f3c662fcc1e9a4919e10c60c56fb2db174b0f058c9e1bacaa677d5eda9", - "0x0f24911f26479b703f15bf70e00b59acbdace28327d65f911748e63101dbcc4f", - "0x75addebb5eeb426fdbb10dcb0d4ef7830ab3f9d44fb93c3828bf627e62415507", - "0x5be0bb9bb95b35f71c64434f6ccf72ba964dc2b97b995da693268af8b299e1da", - "0xb54b08f0ddea20500588d5897234f942be955ca0451da713eb3cb848630e2863", - "0xcf371d4cd35427f351b9571f5a537a1058b0611f4f774acb42b0f762e2ac2369", - "0xc55f5dacd819a4f40a51c191a6398e719caca78a51a5e452f00341f441480e21", - "0x101544ccd9e52cd1c81a77116ea02169906f841f0e1792fc0a7f757c007af5cb", - "0xfbca065dd9b1cab9ca0465eaf4ed6a3ffe572d5e9cf6af76a60aecac6e580fb0", - "0x1d2b57d550b3b782ce122ebf3c36acb77ec0733b9a21b3b75cdc8281f9aa0044", - "0x43706c6d8da6dc99882df8c6f9885415f2467d2e49513047a27f9a98cc433634", - "0xeaab6f72398e0922c81e2b0d77f46296f003445dca76e886dc5775a6ca660301", - "0x54c1d372c55b455aa328bcced6a164aaa764e8513d03f470e50cc87ff11bd67a", - "0x76d68f60752776748e3880c2cabe1ca89312779a6899d50e8632245a7d48ccad", - "0x4d8a44c0d055ba4e1405001364530e509b844a9b27caa23045d4e4a2b5c2009e", - "0xbb1c2a8021126fc0de51e97d1f3ef2e83a1de4d5bab2a5a67a1e50a7eae19e53", - "0xa02187aaa7a9c251dc4b01572dafc7d4b02a18aa1d751ed02e76da70c00cd9ad", - "0x0dc48834edc79acc5c233c470016ecb49d8b2f81b48126a662c7f5d2405e9f6a", - "0xd258075c1606fcbb1c16842e416077c23b75875232a0ae87248296630007474a", - "0xff670fcdc5fdd594ee92e5f963e51d301e6b71aa184ec76a5686333a76a7995b", - "0x5db06222c3dcced5e9f3a2191c0e384043a18a343ccec6a3a504dd21162e0f22", - "0x0a6121bceff843d28734de942cf33719d9d0815b08d72136bbd79cf752a39822", - "0x6be75f5f4f0e849fb8a0632cccb8ec3188742e893b9309f6a409fe912e5342ea", - "0x6a6f2a818816a923e7e8f02ada642e2ea5c7adc372915225f15c6a354c9b0107", - "0xd37cc228e24525ad7b5308ea454e9e756a4c1cf960c51529c83d6af87806c18a", - "0xc8443e22b4d37b0f80bc5174dba9de0109dda5d56a1d07c18ab354c255afb2f6", - "0xe8d8b4b0c06ac40ca04fb0ad15428048350836cea3ec20ab77ab5cca7016d902", - "0xee7d19d4cac7e11cbde337f1510643d305e26622150373e2377317cb7de102e1", - "0x6936bfd69288325554c5ac73a27ee8a71265397089315fbb3df101592c0007c3", - "0x8858f87c52c8fa518d16137bef6ad4c14b0cae7616b1a8dd043ebddc662e56b4", - "0xbeb0fa3a2e651186d0ee7a7ac552c94f1ec86e5df565adb15daa83a2a3acd344", - "0x26e871651f7a21b69a4b5c4392586cefc92ff02d07e7d95270d24fe602f15fc1", - "0xa4424abe96d7255a231abd334ef448bdfefe751117908682acf81651ef740ecc", - "0xd7709e7304cdcdc505e4072491affbd2cc8bab19dbc41b7d5784ce4deeecce27", - "0x336e22f78ae0343127a825d1558e5d6708faafc0c95eafe3afa089f0e23e15ca", - "0xd7e9532397d94c0987b5abea69589b2711ae1d8131d50373e6e2797b17a0d483", - "0x081a420bc0915a70c420053dcf44f74ca0fa1f15aabe89cab874aa4f59ea6fee", - "0xa8768e97cdd0c45422cb366ad98d888420fac6943bdf591e7386567cd5a7dda0", - "0x394e116ee5f05dd3ef26c804c1fce1b5196787e9eab129be9328668fc949aeb5", - "0x3a631a21658a24ec3a5621801ca2e88a97ec6f0d26898047f9ecaa8578e2f14d", - "0x60c9080ce0ead399df360dff7e2bb6298f40e1c8153bb7a4c03841e5c6f5d0b1", - "0xfe41205036e4f0d4eddbc5ed305bfc741887ee21b0886047b0d00f5e5c1b469a", - "0x9c17887b0e837eb079c37415630a9f72c660e405f904681824288d385f150351", - "0xb28f080d947a1f634c19411920244861b90e80c81ff6b146ddb089b17de8bd3a", - "0x8de90c188c680e4de284ad969eb396b9d9eaff33b6d0741673998b36ece076ad", - "0x44d5a8a711b5de56b17348b1b62bd61e4a412f019f79cdde59b6eb74b8e4e2cd", - "0xc49a22f02216f0622df612cd2dfac60f5751d07fb2029e92f9eb01185880b899", - "0x1c42ce2de88061cecad18a0327919eaccb4c2e2bde2e858c42640483be2b4c09", - "0x54eba700821ff8e8d6093c9fc56e36704a1be9c7e8f4c2e2a8a4b900e3b2c0aa", - "0x5aae3b1437c66426590240b4ed86ca2c7940672e856629974aec11eed3041013", - "0x69fc335398b577d2fd7c29d7c25c58a642e755ff95fd35cb0c16e9f1012333eb", - "0xf530df719a7b0cee11b0820ca4081af5b9fc7bd29c203ba79808017210f25484", - "0x70efc0518a44421cb5952cb0a7cf955d116e32c003899f99ce436beb3e10914d", - "0xd69f93c90a46f0943c2f322eec1a2e9afa3464234f11b7c3114bf90aaaa578ce", - "0x3a0758a2edbe42021b233205c1dc4d1c5e0a435cf9701272243f66aad247cd09", - "0xf01282dd7bd929ad13e104cbb30f29a63106e0848dfc46de38212f4ff8a14057", - "0x7692ee6ef61f859c0fb106e3289af5b67a428cb939a1752de0bb82a6b5d13bf3", - "0x3a12e2bd8fa6dc8f6fde5e75d186734fafa41cd706574dac597272d253f7f40a", - "0x943adea999c06b17ab8b419ccce01d734b8e6ceada64f5a028d5576dad6621ae", - "0x5c767e80f09c81f5aac900a6d3390276d9be0b7686de846df2fe2b51b2426131", - "0xc4f8eab3a067eb0d71fbb084e5f2719d15fa5a642ee79b6725da3f173bf98014", - "0x8665fbc91017313334a7b250ce933a503165ec2faab01f133be029ee48003206", - "0xd4033112b5710a23cf40035d7c9fc34d90cc1abcd6c6b071c596e40301400020", - "0xa31f280ef35194facd71d939a8756e5bc8ea8681020a27b1fbb889bdd0690252", - "0x49dad7e3a7e626909c643d7d9fa79843f850430a92359375f033c93ccf1a2a58", - "0x3f49df8e77ba964beda6d6579fc13b914826c6fa3aea29936c015c8678493a57", - "0x57d0aee9530e2db650893e1c939d9292ec5a97242c2b33c2237efa727420dee5", - "0x57ef9cffc1188eb504990bb6b1f3ac67bffb77e13946a45bfc96afba4cb94256", - "0x5f22a9eb90f97a117b140b2290bdd205726311ee088bc922d8955bfdb31c09f3", - "0x1fef01c75406b8c2324c9b128d4366c33edfa7278e767052ee8a7db512cea7db", - "0xf93005bf290a92371cca8fda62b7da3029cf997d4af619a09caac4ac9f998c64", - "0xc0926db6446779844eab41b7b5011f7385d557521278359ecc2bf421d938ab1b", - "0x2264a659e024816013d701a9ebe86addbe4d43a53cfbb639b13d15db21eecb14", - "0xcf1c7d4465a56bf4ba0748322c1aa811384856492989cb5ce331c9e2210282b1", - "0xdd026601a0a96534e5291a7e3e8b4e8086aca7a0980df707dd1fd5f0921ca0a9", - "0x076069c875a0058f38e8562dcce3dcfedcf024bb4d2660797421afabf6593d5b", - "0x0b17256d2f92a70389cdb974dc788fd610b98d50e83e1a5bd503618dd70bdc5b", - "0x8590b8d7218acb68276c12e328e7d60a2232f2e1842f832a7b4c15bb007988bb", - "0x127edf2056747629d1811efc0799ed6f6b9cc27082af0e6939191a0044dc7413", - "0x4a08bdcfb922f449707da67fdabf620dd7a599ea10885480eaf26bafef0eecac", - "0x8b60c5fe4eb4614c917df3a96a2546069ea526d5bbff4737d34b6a2d599281d0", - "0xbdc0955e2d39ec6451d78e5fe476532a43d2a1a3ec52a634a1649241b2cdacbd", - "0x524c97982f9f61d603a8b09c6ad3d157d6d38e4507184635766dadd5ca34bca5", - "0x56b2a099d6ec94aa3ba3cc18a3314f4b99ae06c50fcde42e609f2cf486d89a1c", - "0x309074fae9c2f21b90d1ca2c24cc7cee0caa8707895fdf5cdc614d8b0f7481ca", - "0x1550651eaf769e53fa9e47e7ec7ea0649391d59474da324fd96402dfbd7332fd", - "0xf079e430f9d28d7a6eedaa7b10c316315e39581ddb9cb65e53bdf8a2aada731c", - "0x08c90db385f227a78d8b36696421b6fffdd332197138ed2723f75b6f6f854ae4", - "0x081529907fb9f25c36cf26722a68d6c4d9bad5b628833e72d3f491692a4fef9a", - "0x6dac932ee286c8f45ca209623dbc5f1175bb26d4c06da1cbceadccf90e3bb141", - "0xc1096a9750daef3ebe9968be27cfe9cb4afc9fa80bc9e35b394bc9ac011d30a9", - "0x0b2ca78dc4493527c033f2ee249ede27290d7235b2e2e5844bc95278d6a96b72", - "0xe7721c351159d7cc04a60c8d0d3bd516fd18db7a9b2326cd144dad931f12f279", - "0x197b8106fce55f448c4656d2998ca53e7466b9cc6c3225a13213f976d807da19", - "0x6fee245b11f25a01e33eac8e6a6c215bd1988e845b2b0e6a8d5384e6b3a1c43c", - "0x276076b2c37cd344b8ebdcbb153b5e932970138623063535cc357bd65fb37515", - "0x371055113bef1429260e6d6de7ce32c815bfa62e92b70e25042a1297b33d5be6", - "0x7db624ff7603ed1d61cd3b2b0d933358be8beec6daa17afe41fc5c8c040e7110", - "0xc8107aeced27a96b1e55e0036e8238c1a5b379de8993366c2b1b088b3d32db0f", - "0x457ef09be90fde3d02ad832bd303e5265e711aa47bfd37681b7b4a80afbd4c18", - "0x64bfa986f406c22ba7f4febccebc814d43ac90b3a2fec43c43d3195d7e5b75fe", - "0xe02476115256c4f87b436889ed7a089ba62479c67ff8ec123bbf592ad8c5527d", - "0x6e2dccf5730b195da6d9ffd1d121a1c0fd563595fb083922eab24f1d82a2e25b", - "0xba660d5227c8b4d4876feaf8f089ab897e0fd0a1c3df0c8f43977e8280328f5e", - "0x8566e4095917be2e9b4ec5007738a0084855c5d5ab796a18be85e270a9ce19d0", - "0x8fa732227210961948ceebdb825a4e5f10778fa3a040ba5b8ae6ef588a798654", - "0x63fea034291c13344ec416142706f0c84c5d7acb1e3ab46e4b307b07ebea4bfb", - "0xbfeaf5112e551701ddb66f62e106e6988c04a7ccd6987db3a297c6f14ec84db8", - "0xd18cad571300d94fba3d347eb7cafaa086970cd74e3155c3d625297106aa05e9", - "0xcda6e517497299bf5330b4c7e4f686e5911272a6fee004444d132a4e3236d20e", - "0x96cdc4068c32866bc558636970e990d4ccd98a406a99d3c34941b1b23e997a44", - "0x58e168aec982ad3dcecaa7f6bc9526545dd1a97782d0164c05fa0a05eb5b8c6e", - "0x0cbe55d1b236e55246d3ff0bd8770dc11dd2be07279e7f7f9ec6dfe600bba8e1", - "0x0e7a9c4a352a470d78d2d8e4c44d9a79df40c8d12be6a5ab5143dd3a2c32d362", - "0x4ded88ccca9f6b12885bc9d61799722a32e9617c0f4f9142ac46c7d0a3dd9976", - "0x0607a82c4a6b693bd42e7387fd381d6c760ee510be8cd53e03374cfc2d726d50", - "0xee65078eb44ef0a182644f93a59b2ad86c0992fb185bf44c26c48ce25458acfa", - "0xc5da5e853f905e21926b303d5288cff4e3348de699bc8fb4a02197b8af4e23e5", - "0xd74faffffd297b2c17d220495c1f3325014dc41e6807157c726d76e1b50b76dd", - "0x2434e9648dfaaafb7114af2d8c1d42b3406a88d088aa87aa9790dd149764e6e4", - "0x8d5acd17557be52c30191ffeefda675e6d13fbbea896b48a15d919aabd42f892", - "0xf56ca0c7219244ae6114a19e6a4aa7af3b508e9df1dcc37bcd29f9f48aca2683", - "0x1f391cee2ec13abf53fdc6d1d6a0b770385fa4cdd952c7e7dca5cb871a6b3b52", - "0x0db6a12d428023b70d52b38b3310f814f24a1223aee0e5a1266b6efd007dbea5", - "0xbbff49cde16913f94ff8e25b4179e99da2cd88e3798576e40cda27b058c0344a", - "0x224f277a8557cb9b000540dac92644e516b847a1b68a99253655781518e20693", - "0x140a09036539d51f97200da3cac4ef056e7307ea1c35206a92da4d22a806b339", - "0xf3d969aa7d6106033ec78c3e5445a8a9ab6f65e4ca47fed70f9feb2675c2e90c", - "0x22d820f1ff644a096ee0f381c8f73f867f28db5fa86cc4addc88f5143b1fe6f5", - "0xf79f40425583e7dbcdb08576999a90b6a14c1963636c65d42a6d360441430b18", - "0x611705427257cb827d988dce5acdaeea9e97a1686fe36ee00b3320afe93a2978", - "0x179ddf9fbc58c274060aa192b8339aff8aef09f9db7ee5b18f6d05303be6ea89", - "0xd26f5a4c3c2831e769bd0cae932eb8c771c1020c96efab791458d28736142ad8", - "0x9103de0dbaba17f46dad472ed755b530d27ffa1ed677b9e0ffd7e7b85146571c", - "0x342abaf2965dcab6896bd845ac268016dd254c46a576c2f57a8194587d6f637c", - "0xdd4bd4167c3f059411ddf295a57073c0d72a126c6d6c24052ffb7d7e6b7638c8", - "0x508aecc260416d79efc2162cde7dec4d8c49c5a4185944d45a0a9c6a6ca43311", - "0x68c2d3a4cff07fa3b2cde4ab3b8c94ce081b58e46e4cc4e8bb538ef3a498971f", - "0x99b5e5b79dfd03706fda2f318cba28c2bce636f691cd989b899625421a26a37f", - "0x0db0d90478a568a4bfc374bb4924576c010d0da8d045306e6bdfa491945552cd", - "0xfe79d90b0e2281bb8047ebae7ceebfc51645c6ef4a2c3e9f5b817ec200ac1770", - "0x6c6fc0dbe8c8f03866c69135e614672bf2fa7a9a172c7623f59073254d3ba70a", - "0x78bb601221723eb7160db23e0141d7450185c3c97bfbc65ca34fd3058298b3d0", - "0xe29d504ed9b979266ba3470949d046e6cbcbd60ed3fd0c4bf4a16926c950dffe", - "0x927ee822122d6a1450f8b5174865a836730a285cfa8a70b629eeb5df2ff35c85", - "0x2289a0778e7463bf01ae7433470e99ec582faa277c9a3015fc83070da0de7385", - "0xa3bc950a4cf26a4ae9d2fcf145c26861ddfed6845f180294325e86fbfaf71fc9", - "0x0be96751d2d163c9eaf3d4ad325b0d6a0ad68bd1f48db57f04ac202028cb4529", - "0x83abd07e1d423527ede026e1827fb631b0b09ee186a1ba7fe6591970ad33f086", - "0x7e23230aa4ad827fb607bac301fdac202de414a967c9003ece29790d919520e7", - "0x5926aaefb00a53089a84f7e7e60f234810ec840f15de73198a85ffba4e72b21c", - "0xd3ceb1ead4ab4968d969868400d4c495f9781c02de3305a8b600b9d2013208b7", - "0x004de91377fb4ecd49450522c3f9eb1fe4cf58cd62a7ea0d6fe8e60c89fbbe30", - "0xbf4b3502ac6761b1356f6fd96195fe5bc15a0ee6d4b705b118ff3b4c4913787a", - "0x7fb6f0dae1bb69eef39bda52253ebcdcc659302175da66eee96b0fff31eb82b7", - "0xa4641a477431b008009ef9b46bd85fec4a417e1d5a4d2dcb74400c93563709f1", - "0x40e6ab730e228c5ebd7080800331f0ea102b71451ce400373c122f2e1b473d27", - "0x6fe0b5cfa9e2e2313bee55d41f67364a54a9fe9ff755462a209471501844dae4", - "0x9e56a61913becedc02505e5edb787be7fd695d4b10844a8447a538ce8d6de9de", - "0xe63a2cf3e4b41ea2b38b615805b2f28017c1b1cc48fd89200b5a720322c71a59", - "0x85a6ddae5acde613b93a945b30b41c152c1ba697d009d399072a6909ab77e7f2", - "0xdc474371d7adc1d54936973c1c655a90746fe4ed16a7d371a3dc239a7ab798cb", - "0x8bbc19f6e33f27d0e9340a52e1f52c8c2b61d3c2598a21a67adfc316fc1d3b2e", - "0xa692b01ed36027bc75da84a9f69350e3dae7026dbdc5a90f0f8ef1443e1d7c48", - "0x2fe43ccf20849c44c3e5557e69045ec6f6c280054db1027c0b55e3116a75d79d", - "0x2949e6ab78e09e0864ec65fad793a07d3242b967a24daeba9a9f2b419a14b690", - "0x3b67165020ff232d3236b23f3156638c8a5c07bdf28e016e9ed67352752e5ead", - "0x98c8701cb57044bd35f51d591eee6f064434d59a6d19b934df7c793aeff34cb6", - "0x4177c7e2d30b6e7e9c88a58242820ee26c646c2b917338c1027aa332dfb470ae", - "0x8b568f5bb71dfeef5087a26b718bb67b835ed25c1d9568b51ea139c7591580e3", - "0xd7e927ada4a1c4b391a94b0457c91595ef03761511c4a770658ae51968dbeb9e", - "0x42e3b9b1c144d2a3c93950cffd9bbff6f98861e984286f366bad10d49e080088", - "0xca93cca4bd01f99626190aa9d515255f2fb51ac925ba996ef033f377bcb17086", - "0x4ffd9e3efe7e05b99ed126b65e8daffd09fba8248d64a40fdc1b3573de841014", - "0x8ff69eeaf1a70c4f7f146776cc9a84068c8e6f4f9c93733ff26c37ab976fde52", - "0xcec9210cc68e88cb2e0b86ae7003db485222c1be97a5789f60a69712ba5bcc1c", - "0x9576746ca313e1fd832fb2eb4f96e3a193d5dfed7902350bbe07bdfae3a69931", - "0x0932aa2ebc96fd4bbca141f22f30021e41820fcc41212d21845b3cd5479ebd27", - "0x38aba794f2bbcba63399f54e40fe512db1800b76276254731d4ae03df51ef9bf", - "0xdd1fc6abfdb5eff3caf949aec9809388bc0f5a2a6fe73fa19a2fac83c4c904ab", - "0xa9a5b6249e77e4938f691b82e8d8709ad8d9d69edffa3d4c87bb9a56d38a0690", - "0x5c2f7d9184c130eaf66ed64c6721e33ea5d89661d67a31fe98d14b0a306475dc", - "0xfdf7af81856612f6bbe8de6ae41a03ac4befb726402d3dee43ebcfae262beac2", - "0x94924a83f23d4b3b001b6c0c90126591d81c6414b8dc3f6278e25515ef940ebd", - "0x815fddcce6c648ada9c8b90ad6b6aa2a6c372f7b73fdabd0cf0f4e39225bfe2a", - "0x6f78ff6b7ca095ab22b46cf3e4bb7f6479a7883fd7aaddf2aadb4dee08d8c228", - "0xcd222c0cac2ac85234794aecc8ffea050657f082d29fd9f16f307cba3b929a83", - "0x1ff51b0abff500bc6f45cbd028c68d6dfcb4b10537ae75acca862c1618a7003a", - "0x7775833ddd60f60b3d3cab47ed151a726b26571ace981ecb4bff27d5a304f267", - "0xf8d86ab9e6c6c048eb11f31275038ea1834f6c114a3fe5e6edcec31c6c948f4d", - "0x63823ac8744502e9b1cb4f18d04b5c9e36e91a9f2c412f83967200c05287d5b6", - "0x12ffeeadc86f00b8cef710e51d202e4237e700ff9874d2d3c350ff9270ca321e", - "0x1ad55723da5c76bbb7e5ac0bf28414727b3f1fec48335f719d32763c4c1df49a", - "0xe70e3fbfc83eca935a6eb790ce1f4d3ae7700be3190cd548d6f3a405e9df189d", - "0xc5f8e73983b88b490a53f4d06c638d01e790679eeed597b0e5d62095d797a6a8", - "0x53757034dbb38e7aab1dd8e36b710df08835f977d60d701c6dcb6f95b1167a40", - "0xd64dea8fd270734a1e2aff6cb2833b4c855de748c2236c0fed763063ff9e208d", - "0x72cefae756232b979f7a8a00b0c78c7fc3d0a1b50670b847e384034ed7df1e56", - "0xda9aeafc74c4acfda32c03d864d8045e2bd459908fdd0914bd19aaa15cb1d162", - "0x9d7c548f2e0b07be5eb0a1e34f5be4e571edaa4555015845c051707c68e416a7", - "0xa414bc812f2e4de0dc068121e1c8207af8bfdf1bf3f8699bf2406a69d7e1ae05", - "0x40f89a42362679b80596ae8c602a801c100248d666523c61205df86e0a8db141", - "0x3eafa53d2d0aa32098ef86413a7e8453b3f1adf2b6c1a182332a79728becd1c8", - "0x94fa69bf628222d6cc4eae8886b01c5b9fb4db1f121b627d77bb9e559e0f20bc", - "0xdf3008e9b62cec4e265559338610aa7b44f35288ab481b3afa06f16aec6915af", - "0x99ecf69294bd383bba604dd05a902ddd1d2f16cfac3d5725d71e547c7e481ec2", - "0x8afbda39be4dd775f5846f686fa79c21fa8d80212b0558e5b2ae6f77bdad0437", - "0x5f24ca6d67e1f60e29c7686f64909c5228b19ae8fde8e0ab936ddf560eb45052", - "0x665961c221c82d0a05b379e631c1923909e782872b6a552ad32a8af65cc3fa2b", - "0x58b7bde61ef233a9eb84db4561cd7abb312ae6819afbeeaa5108665ef033f8bb", - "0x8f1e2a4f3c8f508c4dc8d1096e61b3daf756f1e4b89694b1fd69aa10bc1ab3e0", - "0xd1022c07a86af3dab26acd68461bbcde506495550048ce4b655d3d3405dfdd88", - "0x8fe1f97e50ae48d7a1d2990b1aac64baaf761172007847f96c44030392909a1d", - "0x772bb09e299cadc10427638b1033df98d16674c95cc37f6ae6571bb7c4775e3d", - "0xdd45ac2772809f1e9edbcbe6c34e2ccf970fe449f14f8f1bbf47fe77dac1a79a", - "0xe229f918df6143bfd72e6bdf11b9b8c8abb784d4328e515fdfebccac1245ad7c", - "0xefbfcc725908ef7c756d6af3d53b54309cb527f4aa464637361ed3a7df0ea2dc", - "0x984012fdb88b912f4896e7a0f70787acd9493dcef06e65d865a1cffdcdc49721", - "0x6cf47c1d496839f9fcdf8aa5ed4422e33848b4863a52637d5ff4f32e5a40a6aa", - "0xd39c13a4b711239b7c0af25a54bf96609e6f192b7506d626a810fba5ec62a830", - "0xbc53d32081ed044799a4f879a51ba3e6b280d8c0a47d6bdcef536e0290138880", - "0x6ebdb40ca7c8500004983c98b23654315eb4f7c4854d5154e04ac4c58fde0162", - "0x366879da9ce35308ccea72f2d2f9cb7b12600eca20fcb382f5fcf8867d8f8aba", - "0xd5075495e02c501b681d99478c8629c1711b5d772dbf142c903ace4ce38f042b", - "0x7f3bdd9a517179afab5c4640287bcb4c100855b988af8c1dcf1a5af83a9fb67b", - "0xdac216000ac5eba7a53bdf6d1e4ef9dc7f1e671832a5ab8cd06746b447075274", - "0xfa0de6a05f67164be0a70bbab199f2429d422b224dc21028414a580664bbf2ca", - "0x6b178cd6235c85d4e5d0cba743ea851ab5c3fdf6174597ec12059fb1fa16d3e4", - "0xf0e7d606d72bdbc548840c13a3bbf399af5287afd0cfc5873afad4c6e0874c6b", - "0x7e64769df7b8a0be2a5bb61150aa956eeac34e2bbc8e3716169f3b5b3a069d03", - "0x45ce31ff3f2b17297d55b1b41c4bd0c52a1073d44c350c42db388333d23a75c3", - "0x8d1c55efb8e97a643673e4db894bcd452dcf2933c8d7ac33261929ae720e0999", - "0x20ae4e7fa6da38d81ad7b6f19bfd3d37f603884ab755bdbde5eb472c05906699", - "0xde4d0cbdaff4dfe4db9884470a83201141382b6c4b62db363e04d1c06c436e9d", - "0x11ac23bb4efb99b5a9f1ed89bc4a66330a3e30ee6df18135b04795e0de5e7d4a", - "0x4b475c6ff5bff9cb7b75573a36cd550a3c298d4a9ea55f2431ce8ee71d56b585", - "0xc0c8e75f3d9c178e40c66411052bda96a6f99ce8c5eaebeca018ed0337830f56", - "0x2e9e518e7a13e9e01eeaa29fe9b9fd7e7a0c6e404f9c61b2f7de0fb956a87367", - "0x6003639d76ed27e8e6bc87bd154767cdde535800b717aabbc08480f440c346d6", - "0x5ead2987a3b516b664abb287399c80b34c81eae773ca432b8e9df040500092e1", - "0xf8bf040f8f0d3e8f4eae5b24fbf19ee05947f1d6a880db58ba7055746f5cab77", - "0x6f95939c3ea146854142031f66ecf1495c7d4778def0872df279fec21661cbb8", - "0xf2b37a980a33ee4f74cf7eb9b1f3a00c7e391d173df59b73363d37f5159ceb6b", - "0x6757467b63bf5228bed5481f1b2db9c45dd77e980b92cca1e50bc963e1a2fde9", - "0xc971e1f7a8ffcb892df5900f18610591c3c09f6ad0f4e0b090b2522f0b3e8dcb", - "0x29f4d83d95cec6b98236c90a67208cc4284db028591134b60078a1f04276ee30", - "0xf3fd53503cbdaad44dd29fc413261c77133556949b38c970e8805c473ef618db", - "0xceed75fe5664104ad7cead96c90314b03644d121a3a8a798a0e15a20e2692bb3", - "0x4ae70eebb7dd9caf651024f35e9a0543717e12d71866b18e76f98fafee2ed594", - "0xcba02fe226df047bdb88249dc6c51c07700ebb3a1fb58c4fa467bcb8db70ad0f", - "0x44f822fef3fe311ef46c6c3e19c36836db39ace888f8c2dc217e999dc5f14184", - "0x6592ef510a17e1147fa9e3fa5a53352da7f383401e7ccf0fa21d34cf043e1a7a", - "0x095ee326f8f313e013eba249b6ecd59a6bb5a02f7abf0f9074a22f91c5b4c326", - "0x35ed27fe813297d49d1a43e0e2d6e417f68da27f1c51c7d3f821c4f1cea85619", - "0xce0db04d6a739da734ec216766dbb28765f31d0da507f12aacca3ed904f0a7a6", - "0x591490b8555953ca8508dedfa79911da30469f9d40cc13bf56688f7e02e96b54", - "0x4214ec6063b0b67e9a0d53fae047b83836e05d12f5307e72599ff4f0cfb1bd28", - "0xf2709c955789abe06e191f983f60bb4441097a84dbc8d972dbd014bdeba5b2ce", - "0xd24704685984daccc449b038232927dbd22276584199206ac7ac8a0598370bf5", - "0xf9168bd18b45bc696db7045531a43d4bfccee92d2da04f0d34a1999ad2e8b95b", - "0x480aba3f4cab0c902d3f31bbf2b2966597ddf7220677a9f602eace03519b823a", - "0xddabf469bad1465284be270f525d3e19b0635bfeab6d2d3bb0e837f524efcf65", - "0x9ebb6ca234853ac42f0da3473aa3fe868b8c5d061bf94a1bd0a6e5cb4832c2a2", - "0xa22bfbe2a344ed4aff05a5293983b0cf2b6abcd4d7bf5b1fd0e2f7410c59bbd5", - "0xba337fa9e7583e46276c30a17344388570fdd2c5200756a7720ada9d38c37ddf", - "0x690e0f2b1e472e59655c94f61b4e5e2e545b5e8bb6e0c0aaa2597c6a3d57eb41", - "0x188f863f7f5f330987a29c0393f90df7f1241a46fa6c3705922010a74c0d867f", - "0xe1f6e287f6c95a687f67c07885393d312fc8f8fa499099819dfc4de98ce180c9", - "0x1825d68d3768f18983f198444dc808650f5ad40e236a6c1b9f1d78f088dfd775", - "0xefa2abe38b1fc3d9890c0443f281109480d430f389079ba2cb60b1163dfc2e6f", - "0x14eeb83517b27fade68cf6ac0bdc197920212f0cfd6746104da69b34611a35cf", - "0x034e7caa41236be340e16683231da92153053c1cda75e0c0ea942ff1f9f1621d", - "0x875a3015a1738d7982209340952efacfcdc8b01ecb1f1b868060c7d7a04bd602", - "0x978678a85a576dc7fefde439c3d67d8fcc4d8df775f93f7b95a639e036662dbc", - "0xe1e8d961797cd6e3a2b3935520ebc820fdf5892c7aa56f7941e0c668b981a54f", - "0xebfa7f827c718f463b703c6a67d801e1727d40493614af69c700e342c9d009b3", - "0xc6c916f39809a5ecda43cf0c633cb8647dee46cbb7caab0e0f7f615f27d7bab1", - "0xe9981143e9108df0954850ac860d287655efe36a23a61c5c39c32cbb015a1892", - "0xc7c993a2c2e48981711dcec221064b3f79c495504758d3e56ec42f9bb4d90039", - "0x63207ca200d554bb8386cbae7b84a64235190fd3cb0b81bc084141f55ca78435", - "0x57880c812816c98df7dd03a5cf7966d3d820a844c2d7bd754e253254b2158582", - "0x2847bc69192faaa2183405a5380ff8d50066dfdf32dc11363d8e2c927295a37a", - "0x2b5e30266fe3b522b7c365c48a5ffbb64f711f0cddca64fe284d2953175341d8", - "0xfa0365aef1544b3e3227ef5106c8bb22175e7a3d607421fb6624c7a4de793e72", - "0x1d1bc1257274a934f92c8f85d18a925f273c09d14189985d8e5efc48f38a05be", - "0x753409cc790f6d89d5e56a461d9f21b900772e34a047b58216be6c3182917595", - "0x5fa3f12c62dc6e92fa3b664df18ea0c488f4006b76d6b6bc49c9475b2b7c97eb", - "0x22f194892457c3dae1677d0f2b3d3b1d4ce1c5aa112456e6ed453ef111468c2a", - "0x131f9dc9d26dcf71485c24181bddeac118e557cde75fa92a7c3b1f9e5b767d54", - "0x3cecab11b1e488c120f753bef7f6e27fe9d1c9d1789eb713b8f9a267176022c8", - "0x7c940ec04494cdd8259d19a60d9f8bab6fc398adab5c6e370a3ef24c31bdd97d", - "0xd8eb0f69f9885e7e5f487e8c5805d15cbea7e46096dc3bd4b99bcb2b3b78a769", - "0xa8c802790c5176280e4197b51bb7fc30656ce99e35e2ae2cc782ce302d589f8f", - "0xe0200768f25e549d9b794d9dbade0325c0854283da2b2d5fa4efccb978bb6d0b", - "0x9499199a278e94f0d30764a841e5808e515271f88631f55bd3c01ba7db097b07", - "0x967bb7ae8b553e58c9cff454dc3701d731fb452360bbbdeae0aa4bcabdfc0413", - "0xdf40a62950353baaccf7b22cad3a4f93948faf93a03f30ff1752c34aae48c419", - "0xd47b6ec238fbebab05f0056114e3669d6d0d53bae5160edd52df4db55d0b33ac", - "0xeebd289e5d50b8840cede6680b673db866df3ea6f570d024cecd22d5aef3c688", - "0x5d885538622f2435911da14749d84a227a728a157f45f71c5622fe877c56918c", - "0xc3f55fcebcbb81fe32405a056e252d71c3b443db77012568df7a27f2ec3a63cd", - "0xd98c11b6c44f927b28ed97bde59dd5f68f20f586a61e3ee7ea5fa26184bec280", - "0x9373338f42bb8c625874090cc677c8c98b807131099a416df564a56c4dc4eb7a", - "0x066ba3fbd12ab1503a23796c414cc26dcc137da86a2ed7ccf487590e12262076", - "0xd786ba4bbd60de0e8e9be3c480e78a1aac393132595880a710f517c8bc62a468", - "0xfc2bfe54cf428c0cfd76d01d65b041fac7bfc2b636bccb20317e6b9678030dd0", - "0xbf5f0ff9b3139ea0a8c9c35e5e50cc630f4185aa54315a0efe4ac0a87c1cfa6e", - "0x59e57da6812925a7d37f59170d31bba45cb499871ae3e3c18a2308e8c8814e55", - "0xadc01054bfdf0ace9399917ac025e40665c7c64a6743fa96501c29a205d1b123", - "0xad03c042462a6c5be2fcf6d5381d6bd79e44f6c55edb68035b1348fa60ea2b1c", - "0xb95a0159131fa8996695ac8e070ffabbf33cec250ceecbaf896dbea6b18c042c", - "0x7eeed484a6b8280cd06949b9a5e6b707b4cfb693abfe3935a4280c81d85b0fc2", - "0x9dc9c356db9562ba86ffa34e044ea3b7128e7c7a1c6ee8437e753be597c5a153", - "0x7aa27d4a640ebdb99aea80f1d5f4e77a1816e790243e6c29a888c6d5b56c8ca7", - "0x59115cffca5051ad532e3cc22e9f1b2b05d6fcf727c19731b532efbf3f47843a", - "0xe706959ef4f86ef7fcd11d64ba0fe61dd8b0cb14e268dd45cc7f073e43a75e2b", - "0x8e716150f38d6c54e9d2e51d782339f133b3f973f107523320cd73f3e5260021", - "0x0a9dee0ca51cd937cccabb971cd9ca251af6b780a85b530ef399f14d93b5a09c", - "0x46db6853a005c25ed07b6f153d1cf763b23bd434af9b7d7f33ae360796c13871", - "0x2cfd254cc33404c9267ddec93e9870f157817901c134e0b35ba63676c15ed6bd", - "0xc5bd84b5dba39f360eb8cb969dca4f44729ba370012454034238671773ccb55a", - "0x551bf639b332a563402aa57732743cf4c058f21d8e34a65316ed389e6eb9780c", - "0xcda748f78fa0d620254c0a296c2a607ace71225f9c4d0190a468df20e84d0d00", - "0x685ca09d12fa542f8adcd93af918ee4b7c8255874d894dd87461e9e9946cb89e", - "0xf66053674e44cb1980fbd869ed84348fda0136ca48cc9810bd0042d570f3cfaa", - "0x6e7bc79bdb60b8997d332d68926b017f41f1507b0bf307b7a096e667e8941e27", - "0x2bfb83c4fdc6adbe453a71ca65222bd4b071ed163557ebf6733e24741551dc94", - "0xfcd2572dc4470f3fc284bb9a49d5429aff837b4077baec00c60fe2686220ab54", - "0x6849dd3c649cda89b472375747f4233fcf1e44f13af67fc555781578dc8a510d", - "0xfc05f2fd55d372a16d9ecc492af594a0094babf184c8755b6d78c11a7b4e4cd0", - "0x5199b55bb3effb0d788b25fec437f3909ee360f4f1082be2127c9ff4108e1e07", - "0x3b54297687a42931634eb3e17ad0cc50a244d201e9b2af3c13b30794f9793156", - "0x1cdd497ec3c077711f8d03aed6d08ae61703d6944e32b075acb62df7bc927501", - "0xaf180c72fa4bf703f96f32c3f738cc1269886e27da26aa040812afde48909d55", - "0x8f8516a368d5bb0c1d4c69608cf505e2d1e591d8014396b25251791a8422dcea", - "0xa4407df4abc8532eee3890c87fb88306fde2cd5f2338d44ec79810f94e60aa6b", - "0xf7d8c333e4e0362f6942b1071150a09f57457b5b214e586cf0c205a1ddead9e6", - "0x016599b6c105e71c22dcc3768d02ab23bde5f5895f5cec7ff241b58bd666e093", - "0xf421da412a74122a4c2f0542adf364c0dbc74557571eee5f3b9d63f0ee2baee0", - "0x9ea93f31e2830c5da8a5005774a33b8a0a50c475387323d3c0ec17869e074e3c", - "0xb9dba998019f2361ae3c1278a007659a918b062bffd048d2b40b0d51a6f87366", - "0x5d8dfd1ba9b43491167776a26f5068393942523886e1a6558c04959aa016a9e2", - "0x8900a7cf473e7a50c5a1998c0fd8a34c85f249486b0c9a9e96b27ad107aadaef", - "0x2132bf9c828dd11a3bcf3d7a25ff5cc77c71e248a8cb35e76866544c673ea803", - "0x3cade26cd3a46e392b12964ca8df2a93c4176d9be35b0019c3fdc703e50e3c00", - "0x728a1247d4144114e5f4581a02783704e619f087b9a362cd0cff8583797ea474", - "0x3fad02e483bf33e516410b0eeb4aac72cdabac43c9d075b66f4893676e56dab3", - "0x42f71132c8d0849df1118264795de747420ec5c8deda7935b12073ffb3e96653", - "0xb4aea097f72b17910846807c4810473c2a9fdf30528283f289f13ecbd4567aac", - "0x0bbd2e1e0aaed729ae2a1148cd2f0020a2ed4beada17639d7cb601b88d9f64dd", - "0x127ea3571870167bb31070bf0fba7a3edaee1d0ec0158bcb2ea8249e5d516825", - "0x7eddb9a5265011bbb717873dbb0114aee0698188b26a3eabc6f82834816c19c3", - "0x6e84fd9a8c6b52249803f4abbea6233d9ceef93068682572b567785a9c860608", - "0x99953c5e359082e47a29e017cd244047f73f44c7945e6d260642abddeb10980d", - "0xf71da4f10d95b5735e41b39109ba47a1369b8263305cfbe8dcde5532ae26a90e", - "0xbb4f40cd480dad3a830510cd14aba5fafa94ef82543aec4bcd3e307520db1ce8", - "0xadcd64c950c24352650bc5397d4652043faadad6ce816970d4f6364e97da7787", - "0xe5bc749df8126a54c4a6473173bce8647a9131e38ff92d6b3ba91590b84fde9a", - "0x53975a3c9d5c7454ca2d91509e2425fe3f8bbe42d5cb6a1ed7f743f3630ba805", - "0xacf95108649c624333aab84ef16d0726a2737b0bb084b33df075ddb8ac1bb53f", - "0x0f59a1f2f12aaeda13df4632b025aac74acd02287fd47a08c7838301fcece25e", - "0xc2f0d652fad1684132423f89948cedf99e039abb2cba097a8219f81aeeeaf623", - "0x995a9139f09e9cf082ba575ac6ffb35f429d8ac93565836b854312267f951f91", - "0x0b0c13322541723421660e43923602f2e1f34529910c6aa15cb7339bc34a6d96", - "0x2a225092d3b1eec5685c220bd9194597fae1781a4e295cfb3c4e06decf4a44d0", - "0x963452ace51e69fc27854880179e8070c81287271b831e4582645d4333feedfb", - "0xcf57009988b9db838dd5ac44903605ca70ac45317112b57bb8c91ca0171b2820", - "0xf685e94da234b839830823dfb0d607c1a4ca942ed68299e264ce9c457bc9aae3", - "0x6bcf336556428a8518034efb811ae793d84c80071cebd9eddbbfbfd00f5088b5", - "0x0a327aed827a909bf771eb516139c8ae8c721417e8536086335c8670a1b52991", - "0x7ea2a67d8b7befc6784f48272c9e3ba6d206dd5ce747a0f3b22b2badc95b93b3", - "0x4d031eb0c78da600bda9d7fc8d07d4319b824aa7ea9e1d9af861e4c2755e13e3", - "0xe8887286e33bccaf28932af775d1503175ff0304605e689f47e850a2b6909582", - "0xbb714380da8d6c48feaf39f1a3c98c6356194a8beb93413a35c68ca5c101e3f0", - "0xecb00ebc31d49e73931328b1a7f1be201e260bfe42197559515f420eab1913fa", - "0x756d6c99947e0e66d31c078a418a0fb1fd09e5280974faf47317b3d341e0d2b1", - "0xf3b2656ebc4803f55b9d80ab98775b9a70d017b94949b04793082fb8d713f716", - "0x7c0f9e4522a045502a9510426f8a06bb3f4170a8fca13731d3befbc7655d29d3", - "0xf63e4fb74386f42c6df92da399eb4137b34f2cfb5ec7146a81b716da6f1e138b", - "0x836142336bc807181f35f45388cb2c097c9e7b9b7605d9d079547957aaac7cb8", - "0xd6dcd8542a975d2129dd0aac86413b47a8838f15fe5aa91ab01165230f58f61b", - "0x7fdc61debead0a01d0dd2984cadfd4b2a22442ffb72e54c0d25ff9d940af19b4", - "0x9fd111c14fe3bfbd62e6ec8386f89b99c7755a422970263580d82c9d70a339ee", - "0x927a0a3093df49c90b5a41bd2f7f63a9b4ebc937b347431e052c945bc8beb252", - "0xc29a4d66e9ae8ff0b70afafd743154f726adc4228ac276fa7a99d29b454c25b0", - "0xea30f99e82d66c231ce97d90681d11573506841a39ea5dfed7eaff0c92979ab4", - "0x415036b80cc20e0ede161f23ebdd82091d1ec0b26d1c6c89a00aef37e0840416", - "0x93a973cfce3f9c466f3fcc840ac449967087732ff89bdceaf7b59c42a72c789e", - "0xd2f8e40dd6f221b4f2fa20ac96a282f5c7c2c384b30daf5415c9c7600f568312", - "0x11c4781ac066d639d307a2517e1ba41078f2b82c96e1fa0b6d1da4a5cf1b726d", - "0xc90ce8ec757e96a323d2a426e64ab4cd84bb435e8539e037f51dae6369e84f11", - "0xd5610ea911ced5bebd9706402c46b121f60971db85c8cd369565e61bbad5bd67", - "0xffc8db355b911abe05da97ef41f016f14a4010fb81066848bee6a48608a9b192", - "0x2e5ce95848feaf7c3a183ad147f39994a4aeec9c30a35b1c46d4cf41952503d6", - "0x952f4891957b8f535e9c5053a57fbe35e533a5575dd5e3bda29c38da8a728720", - "0x909ef935a67b90af72c4eb5b1f4ada920711b4e81f88716dff64a13cfaf68952", - "0x4767e894e2954ca0a3dd8212be921dea3aa3cb5a4dd6c0490a6db122e1e29d19", - "0xa574e4bca14bb011f3184718ce0ad71fa54c79db9bed23bbf3775561cbf83b0b", - "0x35dcc8c1f20c0183d541e346ad4d9d6f1cfc11b349a2e4efeacf7350fb363f7a", - "0xf1d9954f936da8c9a33bd54b055364e47a1a5db52929883ca1f7ccc57f6e9786", - "0x81319c2f5f864a63a862e457a38e1282213235f50fe6c6b489594886a8d5d7e3", - "0xf1a00901944dcff4cf27a8477ec0a00d98ee1898b753fed432bf30090e75cdda", - "0x0130300c68b62f4f8c57f11a5968f9c29061af73cc76735b9106a37c756e002d", - "0x54a71765825a1dba95dd1dc8fb439307d808f3a4670620e2aebcf312b4b3a833", - "0x80bc5996a7796e150c7fc3232e9e401653d01e88eeda0430d4580056709003b4", - "0x49df8b27fd8ccb3106d3e7fa4f14f10c73f2477b56e22d20771e748abab0292b", - "0x409528f921fa74946eda4f512a7a0ebd24b7ebf8fba65aaba2f67810bb236f75", - "0x216816a30268888595d34bebbef045b24cbfeb2d42b4a994c379fc305124791b", - "0xdb4d39e063444b9946baabbc586d3cf8edb3eb0b6de94cb68afb514a26f862dd", - "0x8c7c8bdb7360acdc2acd7e8c397bf896cbc0c32751f6bab7a0abf43eb69c8cfa", - "0x7ca406fa4c91b53fb459d9aa9b40e879550e9ffe750c4b714b8789677eae1beb", - "0x556daeab1392a5937ac1deae4829032e6823339fbda20c9c5fb7cfd163807f05", - "0x52e982fc76239c968e31bb072159945a8a6a202dbf25d74777444e544850dd19", - "0x57ec7b83b26ee2dff1cd3e80e2c4a744d66cdc0e24b7c382acf58c4e55f3fc21", - "0x033efcb7a83b56ce0506d40524bc5e50500f072f983ee913a9f6f4bf6a71c247", - "0x49d92ca8dcc6a02999aabe9950bc3ca2eb86168deca49e90ff02d51bcea06002", - "0xebd8472dd0a966044b8c355f0b6161f49d8d81a196dadf071e7e562e52665287", - "0xba7465220d44c2a5b91489fc89d263054d7094a3db6c6ca8666f6a90f01e2274", - "0x04861be8578c10c1e588d3f29207ccd0216590b00c03789d3227182dcaaa102e", - "0x0656d41e8f11eda38a699b0336d532cb0cc39911515645fd729c0e2440b5570e", - "0xc2f10ce07711e25ccaaf129553530720bfa5fb1132693fdb2d8b93488d00b54f", - "0x31df617ba951999fc7022a2e720836117c66976ce70da16ef3bb34a793082a09", - "0xe76316801f6d250a13c183fed3a6621186f5bce23e3d1077ff3e2848b40e90de", - "0xacd7c04a1f8a18ddd282ab7b9b619649c9d861182c89603714a972fe30953f1c", - "0xe9f8c263e2fa39013deacb061eb00bf1d39ac93553c100bcad7abba2102975ab", - "0x9c0ebbc2904d58ad3ccd619b9ca4e8db2197aefc3142d799f9542c29c6aa0b9d", - "0x71b4f97fbc061063d36edf23465a6f59f62f7271aa912b71f6a8232d5e8642ba", - "0x0d7e4b07e8bf770da9ef0cae2ffe62048a79adfae3a4fb3740e985112cd86f00", - "0xfa71c3644cd985a15998a15399f85d2348bc513e9f641cd0a3cd4dd05746c4db", - "0xc0e5525fc15380092413659f904689b5f6d7bf0eebcba4783a2fa1633ef9b07e", - "0x1006fb0614a85c4110e9471cae67d1f52074847d31d300cfea019ba8fa508824", - "0xb434505517f7dea5b8cb7f3ab54483d638269630b766d95f3f46889ee06451f4", - "0xc480fb6381fb1d54d4cb9631ab7c07600b5a229c4685296b06707dd8781c997d", - "0x3ac903cf49b89306f0e2d17ac47ddb0a4cadbb0a7772ad8722d11a343c649742", - "0x14f65746f3eccd4985cc87165695a378f62550614d08f6125b23389e4cace043", - "0x6b83fe069046dc8720ab0325f5888a4afe2f2f128e686b901b849bfe25d42f35", - "0x2b35e06506c624d16fce41025fef1b4633c364b7ae7d3a36f253a8037d801b5a", - "0x9c4937b915656c509b39d4432c0e75d43566c477287fab2438e9dbe4b3ab7755", - "0x6ddd34db4f7bdc1c30a1551d79ec95eb56c7877886c35b6e36b4a50bbf595e8f", - "0x08ea952dff0a028b2062e9dbebfa4c53ceec13b2b277acb8674a4c33babe9454", - "0x0e221cc701a9f3e98de43ef9769068672f0c7677e56fb1a5519c8404746b7d56", - "0xf5601bd9f85de53feba2c56a909ca46dd3257ec0be8da5fe7d1a5806c8b77329", - "0x5c523a3dd1c76decc83879187ab5927bb4e1ff85b780e28faf484b0395caddd8", - "0xdd4fd3fecd641820c104f8d7e17df1f2ea58b53e3c35fd3822613a25f9228151", - "0xaee15cfa97b8b615a5bccabe8947985400d430e05420feee75887229bb297c6c", - "0x4870772c9a0b3b46068d3a2607348022828cdbc82dd993a4754e14c1f3c89d90", - "0x3d3a52bd47fbac7b6cc70e83eecbe4ef999cc53a6853d173d2f0364f166e4377", - "0x17958ce4d795e73b652ac2280c558fa7f0eb3ef00ea40600dff0f39d3fe445fe", - "0x1bb3a53a926a6f8161d8d531ccaf24d5d680035681467043afa4c78f33c72575", - "0xa9a1022e090868b26331ea022e40f3b724952df83e0f73ed16dbbbf0d5fb2f83", - "0xbe7d1058f062b8c32c3a9f19afdd066497797b54ac02206bbbc7fccece6fd274", - "0x99ae823b78833c5becd38a84600d7baab21caeee5893e26c3b30004462b58082", - "0x5a3e697bacb3e7800b7fbec843cc362c77c43a57a285228c77434d0d6c45c15f", - "0x727c71f2a307a65bdf5e689964f8c2037d2f14e088618223180b1b57b64ad226", - "0x38305b295ffa65f8551b83101b876dfa7646f56ce661b678aaeaa7c4d11cb6b0", - "0x128189add88cee670a10d30f6c5d9d169323ff91054a4f2e340bdc41844661d7", - "0xb9c6edeeeb6b1d3f7cc01ae353ebd1a7b7200ce374ef0822f94b03c1c1628241", - "0x64afd9951f941c2361e4a839983a2e5e1ec40f775e65a80d7c19337a178b89e4", - "0x82d97027ceac657eb0773d370e27ffc8bedd67cc5a247c2b6f50c4c220a6ab60", - "0xe051b114877b74bba56ad9b6778b59ffa2bed253fc10aac742f4c40a0547789f", - "0xfcb0e198b7e4df8d4311d5d4a8b560d0528e848c16af6a1cc76a78e13bded13c", - "0x71b16fd30b87747e71219afbf370510b137534fc0ce2fef1099f7d42471108ea", - "0x5e0abf9923344845ccc744df1fb50743988096cbd9df28c2e06c3769f3487dd2", - "0x3245ed452644ee73349cc25a75d0a2089d3afcf625e1f808c2de0850cc138814", - "0x4fa90f092e36f5b9cf24371825c3d42503cd26bfad2d3eb613d8adaa307b6474", - "0xcddbd5c1f7d791318cf47f8d087c606c897f42d0e56caab505ef1d0c8a9a6fd3", - "0xf486df149d699de7f0a89f1d3d378f899a0b575a9b8c146ee041b250c7452104", - "0xf3821ac434df446cc0adfc2b097103fff88d2952d2ce784442ecc4b8d37898e8", - "0x1268b0cda90fac9eb737b803115a0e86b1dede6345c4c7c0f625e10c9a76f1ca", - "0x25e107a2447adcd981bc76134be36fa92651e076bf9f30ccebed23183454d583", - "0x96dc1981939520ce2cd00028ce05a25b71721efaf16a3de839a7717487bd78cd", - "0x63be069f1f35f8cbdfd66c3a553c42b9da2f2f8bbceb5448c90fee8bedf81f9e", - "0xfb265855a4ad8b13fe69ec2fa25e9518dcead200be9d2db7c34680a9c3410ce1", - "0x796fef3b4352cd114baba1db0401114895cad818b863882ebb8eef03a78f1a17", - "0x36447ecb2582942c0ac71bbcd0f222fdf7768c8b6fadfa3679cc90dd619b7bf3", - "0x801387c1b0f3c1890ebd3df151afac696973d83cba4dce01c4e91f72d23aa543", - "0x914d0c0fc5128b5b4fd61b1110638a80eb6f5c97c791f56a76cd9861e0ec57db", - "0x7c05eabd2c6e6045cd591d39330aaef0a93e77bb709f01a65ca094574d038fad", - "0x384ae578ec9349687484bf7095bf11f72590a8de9a6888e2d33f009ac1f573e9", - "0x7ffa1aeb2eddfbbe5a659f9369f71b061b727e360424dd8956c6ecaa77076909", - "0x750ebae9b761f63de56566a193b1eac55edf7c1d964ff59e7229fc41d64a3c27", - "0xc9ad855e079e3ad5e5fedadc79667440aa4c1eea485643a09d076ed2bec7db9b", - "0x12cc806a00dc28e85ac2c56c375b9b9c8274657f6909eb99343793d584048382", - "0x81cca44e48a1af23a9f127c0fc89e760d18cd7791b0ea16348687f470d7d97e1", - "0x2c200efb120794c77aadb7a0b8443652279366a44c1d0cb4b286d5d5a566d366", - "0xef04f7061dbb0d6525fe383bdf1a9bab6438b76e01e186031ac621c0190eaf35", - "0x04c7b515524b72d4c2b375114669cfe1ee0fc76debcaf75835180b83b96bc0aa", - "0xdebed0c2c026b1e2b949470ce77fe43833af7bb5acdf4a85712a5e13dbd37d59", - "0xa9f933f23474a0c416eb01a1281179e6c0ef1f1b952a98d03a3ba63660529cc9", - "0xe0dba677aaf93e4919f440b788ec29f59282978550adaa8a2bd76ead03867d70", - "0x10536ef3e8c6d7631af5cace70da025d99e2fa39fe2bcfefee1ff219bce5e6cf", - "0x4b0325a93eb70ed2e3cc3b08f40cd44ba97bdfd03bd53c81c470b9cecedbc856", - "0x6b4b4a76d54d15920dfc53f6d8c705faae355fe970109a69ff055d66d3ebc453", - "0x8a23de9be0f51ec60df5d1f51b4188f2d9bf3abf6a98f7fa270ce14b3831ea11", - "0x2fa4dfca9b8d1a7069280252c93f95e415f75cbe5d84f86105bc9849b98d634d", - "0xfdf57b3c3d903cafb12c1a3676e7735b45485230e063895c793458d0ced2d68a", - "0x27d69477626eb7c4847370d01f59005856f0c466c92fd482b069ad38433ecc79", - "0x625de57821627ad45fa358de321248da5207bfb4d9d14e60ba2658925e83c9bd", - "0x4c622f418252e2c012f37cd822f7674253a399f3f854972181ec9bf488308ae4", - "0x70dc2f0c686c2603abef50d54eeabd0703e772a09bd794fe32bd96f95a4ba6fd", - "0x5f370cda9e36b3e50f9e2065182d8a83593857931e9f43018aa5a5a5bd38c85d", - "0xb2e97da5170cf17682f4ce3517f556dba9de96c4fbd4c7e525b02fab1988d2c9", - "0x24ecd46c0fe574dcd6ac2a6955615c53eede0cfe910678b186c20038de2f17c5", - "0x5e523ff5ce388c2049b83224318c353c22cb095776d18b956702e94a5f3e97db", - "0x5be315de6d3d52e5a70f66360a5a85e25303aa8f9c060c80e9bd170c16a25039", - "0x8bfdedc7a869bd7ce6ce9f3957543ae4b5b96842355edeb5f46afd6cc345e4c9", - "0xe7276c09f872ea02dd6114f7a4f904f85c1e7b0a112517b28e9e252db992e117", - "0xb7a53a3fad5e7406262ea20c4d887013144f3f10c02108efbcb6ffa3acfdc42d", - "0xca59b080801552b527c8bd7981e0a6a85144720272a320e48aa6d381ef64dc21", - "0x3f2e76518dd9237706161644a992b6111015cb1a26241814aa2485af7c9409bf", - "0x4890ec2a6d619bf69e7f0cc6d5b6028e2326d63354f668a4d19c4b7e4d1b29cb", - "0x5fb0315a7058ab63abceb31ff5b0212545d84a84d9b81f45f2f7965ff95c9e58", - "0xe5731818fc75df2d2026c4e89f921b50c767dd7dd50f987fea9f8f7bf7cae880", - "0x1ecaea54c6aada24c374b884992fe2b128b54b714e6e56187ffda713680911cf", - "0x92679dc9523783b5a807addd224097f198684c4a32d17769793665b651822932", - "0x9318576fa6b12adc6941f3873d97db85494dbd4c392a7bd7a18297b564469381", - "0x16b777ace95e2d2fdb83d254b3214ba9fa71c03ef8c1b1141feaab47f4e6706b", - "0x3732260d68c8fcedd0126275aad10b13a18ddd93ffcaaace9a4c190c1a4e49b5", - "0x8f6882b8a00b1fd92d86e697d1c9032717420ffa54e77dac92b4eee34056dca5", - "0x21a66d604299169ad1e497653774112ccbe17c233305588102fb9696ba00237d", - "0x56cea1078f003e5589d93bd5aea5708b12d39a433ac246335b676248f65cf0f6", - "0xc39987c272d016d0f6391a5958e3150b0b109fa01c9dcf1a6788653c8ac81a83", - "0x9d78af27163fbe55521e66358108e53943f9b88fb9967e6327cb586bd63b3a6f", - "0x39c4f370fa9442223f785cba2e401e54209c1a901a753a825138b639d0875821", - "0x647130b0b0f99d18a11f6c1ad08462f46388ec58848997ff25aaa372ebdb96bb", - "0x86524920ecfaa6fa3de3d0e39dd0c0728bd984d2094e09be467127cd479295e4", - "0x2ea419241a2d5f1efeb5edf1068c5f912c56be40f6c31d0a0b96f59b8a70618b", - "0x0335692d2484bacd550c6b63ae47a4fe18998d8598f53cfe3de5413c06aed9ff", - "0xc773f5b487d22bc3c6a35fc5cec42b63de4e1950d7c5d86c4e464ce36b8f1133", - "0x86710b387befb7af9d90579f270e1f9d0d54fcee0b4519d2540c4602ae6dc578", - "0x4f1661fe4d1bfc5abd2599841d639bbe1a6e545ae3bf6347c43e37775d66b56c", - "0xed26b01b5261cb6ea576454ff1612128ed70a678146689aaac4f4336c7269428", - "0xa61e9d432b5a03c3fe8416b5971c69653bef0e430c186fca59116fcc4a828845", - "0x590b6d297d7f0774bba39557a9dca9ea7223180e7dac6fea3523dff2be5bfe9b", - "0x630ecd54644e583c828c4c6fa9286a264dad4cd1e9ed66e730ed2e90380c732f", - "0xfaddd4878ad3f2eda3eba14f227363d8a4756f369f7fc11602745b67c2ccd76b", - "0x3737671b007567f54f265856d3a7570a0ae9fae51fd70c7b81f524d287ca24aa", - "0x0959db030c821c1c3eb3c2b71b902165eac34bc7e05e8757b6f97bdb750dd48f", - "0x0c812262e43d60764beb8824517573460de766c7aac2adcee3f1b2b419492b4c", - "0x3bc9ab7ea2ea5ff4529b22ec92af9cdb096ed216c1642c6a4c9dd143478286ba", - "0x8e7ec84dfd93f0ac7fc1accb3d69bcf8a8d0034507005ca5ff15db306b81746e", - "0x5b1e8acc361f184d76f0334f5898dc2f06d8871e1a5d672ba59da084ad30b46a", - "0xe9f8425cccf868bdf9185340862b2525aeb0e3ff3a516fd921830d2814873d99", - "0xf57d5e745fb7627409909ee5da5be6a3bd211bf8f78da7c3b3a4e30ed09fd604", - "0x30f61f4cc3cc52cf1801db1a1247a266177033128c1c9c48037be5a0b4371429", - "0x3280b438a3110e5aaef66be5778cb9871cdbea652c0a7e11fbdc18cbb1d72495", - "0x7dd9cfb4f55452a238b53f5ccd4e7cb04527826a45705c9a513f9ad4703a1c37", - "0x51021386f2deb3c374e6bfdf151feeae59e327f5d5d330c13b56809abc70c752", - "0x29059811d484677e695b3338564c84928aac722bffaed5e7f1f67dab4314ba93", - "0x619dd397e134acb573a4449b7c8e06ff61395af2865a628ba5c7f8d0b0ae9fea", - "0x4bcc431fa98ea826c2da35399d4eeaddd553a61f6e023601534cac845edaa852", - "0x00b3e6647298e8b94cba9c8c7ab6432b22e1eeb412dac764a6619c6cb81bd6fb", - "0x055db48bcc0f00943754e8148dfa518a653f6eca91315c27f249d7eef5cf77d9", - "0x7a549e90a1d68a3f3f383576ccc4b965749957b2417834636ea513412a63c760", - "0x0665bf5ad7f1af89b31fcda37389f02cb1952869e17cc283425d225e725fb91e", - "0xd11079f3f1013099d2ff6664516aec4ff7112373a32fd815fd24f42e7dbf9021", - "0x8bc49de47355f1ff93ff0656cfbf5e6217cdf9228df44b3c487d09c4d6a9fc1e", - "0xb705fd76e1d36a74c2e89e186627516106292f4c3f58fb96eeb695b9dab15b0f", - "0xce94d1de22cbe7536966d0a4dee161e9a09aa35ced516560c8a903228c68abec", - "0x666b1337390cdb9560837357d379f2614b4c09548ac08a75c9dab0f975107f22", - "0xe993a1fffb7c577acc47ba07667908676bad98522db2641b795811072350a462", - "0x905f3325076571f851df1b14872a5e5b525a018994d8ff3a3702d26cc94ed14e", - "0x6b60171a89ba4047f16ed175ade35d78cf37734da7aaadefd4407eea203a0bc6", - "0xf0e279959837a1751e5b198b7418fc0bd8514970b90f6b0f40bf5224d6654ee5", - "0x7179d2b6f5b36808f63fd04c0371a552a6d8481b19a3f3ce6992711fd11df12f", - "0x761553af4b4f923150c2bfbe600adc493f57f6aede87760f2ac8fb5563c3bc52", - "0x996423c82699b88a360bcfaf46dffbc95cdf36c8892d1df33efadf253504413b", - "0x6546c1cf4fa90881410a3b6653d06a4656731dbbf560d97cf9ac2c6bf8b931e7", - "0xb60024a4416a56a271dc588b09a5c666bc70e8138ce5a425897ee37885b2993f", - "0x9f6e30135e702674180c69f06fcfe223318695440afd15b8605bcd2c96887262", - "0xaee344ffb38d0b676db29f530577266b0657a9d06ac2eff0665819ab80ddfff9", - "0x75cd35eb1e324aa350b589059d604c3c020a0bd6d05176fdff45127687e78245", - "0x88a06a5a1aa084c359687a2f25040822ea285142a796865f2ff6469bdce4dd26", - "0x3f9a13ca68ac93d85fdb59524965107129a9a289974637f46bb1468708665959", - "0x0785ccca56e287a489b5b810b553bcf447bd75428601106eb42b793da8d77fcd", - "0xe2e263fa318e4c70b7b6880a5c9e970c033fcbb267dd9ce3e4dbb98a219f1ba8", - "0x013c5f357998b1822109cd823a6257509b4d6d0ba244eb5319ad37f6fbc2582e", - "0x4e57680c68f31f0939f138fd2c42974a1af827af572759f3904e2acb92e2a4e7", - "0x5fd59b25ad0fdc06b3bae5aa01fbf14d36ae4a524a640afac1799ea87fb69965", - "0xa55afebaed7e82bdedda99f4db44d9aef4305840825bd27821db2864f1ed30b6", - "0x23cd48f3c7f5db1ec444ba1da68e072327a5cf9a6b930bd5541c9edab46abbcb", - "0x98217a7b4cafcc5f0d7f31a06cd2d02ba2fe3971d8301029df6941382ef31ccb", - "0x909bc16ea3f89a297f7b11c1861c4575151fce8c3bb7474db764a574abbc5fd7", - "0xa69a748de1825a5e28bf6dfd4ca095d25e6811eeee03b4fbc2a6a70b055b722f", - "0x00e6f1e1a420e6fa9cdada4ee4863a3576ee65b08ca411c8cc43bbd9b9eb3b35", - "0xeb2890b4f7c1dfff13f6a915546a41877b02d4dd9110cdd4a8fbd4a1b7b1a356", - "0xf22fa98106202baee1b086f628bc94feff8b82971442884b679f2f8753ec47e3", - "0x686a720131d8e2b14072dedf4482aba7c542c396439cac487a1622e16c5a8b81", - "0x07b91bf5a901816978532014b500f96735f9807de27aa1cf1d51d457cdefb0b8", - "0x5e8c427a812c16df4c3cb7930c105d9b5331b03059bfba50cd2af6e27e0012cd", - "0xee134610cb36c9e0a3b51006b8715db178b007e35da3cd5a3f17254188376392", - "0x208f6ab18500c5bbe2015c0144a7c775935768a3091a3ce7ee0c2d8fd8797206", - "0x4b67c108ff8b28865196867af9b24530fe7a1ad98e259414c7f21cadca8d5b52", - "0x06cd330ebb6a5ac4681c58a3495b33d61e5bc10019fefbef36f8a00f45eb3c9b", - "0x1d358f1c3745f7a099ca4a4138c898f5f83224154dd59d65006087f5f49c6574", - "0x1285194c6cb5707de8f324c3fae7e51552420c30797b0d59d0d39e5d02ce402d", - "0xcda3293d8c09022354568eee8024043bda2c93c5f9ca9497771ef85ddb37fa94", - "0x10a388c1188cdb14bed20a520954ea5c1908bbabdb6405741cebdc32327eb9a1", - "0x196762f8ca98f4e78a409db28f9fb30a3bd08198fb022a77a9036dd28e0b541a", - "0x48683e3572aa647dc4a29fb0336023b82baa2c5eb2c2d727ef71ca75a66445cf", - "0xd31c4bdaad98eb24da71f4ba8901600e47928422aab194cce458ca5f59ccee63", - "0xcd0c97b7a47bd6ac092382128316dd0122dec900f021d49cfa6461fd9b11b26b", - "0x631b7bebda2b8574c5609d6bec96220797ae89f88c77c9cd2ef6c80dc0d2a37c", - "0x10e30cd9d1c7e3d044059f22b9c3b84f34f29229b263e149d54669ee3486dbe3", - "0x051b571fe2dc2b32ef8b19443fb586045206d9382dcd0a54d02c2551374db41a", - "0x8c75d5c9cac5487ae3dd7011804d5c575179fb49da66932a96473f44455c2c0d", - "0xfc665aeb5cf4068d711cd58f37455631f656b9e618adb9d1ba07ffb684298aad", - "0x305eb411335b9e6bc5d1103e8681e430ca27aa0694236acfd6ce9b81eba40744", - "0x60ea2900172bd0bf5d05766b8a972727fac673067167d77836c396804ee601ec", - "0x78f95eae9286cfef10796fe3bcebb6c0f280a9849488defd386bb443cbc2e74f", - "0x876ecdd62d09cc27b39cdac14a5a48a57153bdc9d6dfa298947d21cb71936e47", - "0x05055cba76f4d22942cd140a6b115414109168b9d899eb9fa8d3a23b6819264e", - "0x46e0baf9a1933dd541d8eefeaa51f6090b2f4890c06f47a2b53a09413d5078a0", - "0x19533b40f6c28b7b5b2f1b66163cc42d418eb43cd7b5563fc4e01d409779d1d2", - "0xc0794c7af0ae385a40a766d1b4141615101c1c65c242890f10a4260c6ff8bf1f", - "0xc66391bbccebeb06b885aa6654a3ad0348feb7dfc08bd58222abf9f8e4554f6e", - "0x306e057861877a714e6280e399fe06089c2817c3bc0a0117a77a50776fa37f52", - "0x297683b47e794d815127421981433b4495b3d8cf0afba1e4f027e90367baf634", - "0x2dfb9245a383ccbc23b367fbee0ea8a955e9ca49eea538c8ab0f129890cd2d35", - "0xe032d1107163197c76df5a9120f4d8d571790ab774780bd82dcce614c2eda9c7", - "0xff4dd1436136a461a0ace023b9a15ffe034db7165b3de2d24227994085b3a0ac", - "0x5b1b4fcd92a828b9e282aa3162153de515f345a953c4f8da31254bd1903fd8da", - "0xcd292772020966675a7c9967db28b563489ccd6d19a5319d446184c43403411a", - "0x876ec1088f57d67a22865786e10ac353a50cba6e1f468c55636e05d28b9d93bd", - "0x6cbd643a24e20992a7c1a6d6fab5f2dff17d78fd67848fe34aeb9b1a1080ed2e", - "0x171dcb39fd244d90b7a86e6d1c6d7bdcb4d79388f1363d4325c9cfa88811ed0b", - "0xd06bc2ee4aa3c75c851920b5bfc92a1f1ea8be5549e1e264295faf9b2d9ba2eb", - "0xc803e39d8441c5a0ea2b3af8a1899227d471c153016b8c895fce1c63ea431fea", - "0xee752588b555c79e43bdf7f8bb1b8f7b262d070e38b01ebfd76a219a70521cbf", - "0xaf62f62a10dfd26fa8c91cf51f5c2cf0f6427a13b80953c9a00f78e0c54dbf37", - "0xce5cd4fb28e5cc589d22bd1e1550414a2d949e54259fae32320ae8f4a0cf31f8", - "0xfa32019b8e81435c75f77d9e4c6b173f67c6cfa822ff8cf4a402ddde924f1c0c", - "0x907ea95bc8a729e6954c2235f1250def424cdbe3c198ebc1811747e079aaf14b", - "0x1691a83839904fe83435eebdd8776fdfb89cfd5e86cc23d04b0519c532634851", - "0x1f72a75de6659e04c99553ded87fb12f4ba44f29ad146abae31bf3e6cf4ef7ce", - "0xafad7340351f3b8365698a344cbb928132742e762557fb91a2aa5c521b3a9a04", - "0x3f8f46e8765d7db0a1e292906240e63962cd9745cc879e9b4e5ab6ebe425e5cd", - "0x9be909697575faa7c8d413d10f33ef95235dd95b639d796cdb892865f3a4d4da", - "0xb5e272e1b917b9809424e2d45bb558524828c2d667273d9ff86911ce20d5c4fd", - "0x062ea67c2e696e9512b65e9739540ddb44786edb6e6d79165648e226cc8108f7", - "0xaac5cf2ac5b7ca8754a80e916b206b34e378cd77cc2f20b3127f43a9dfd95dd9", - "0xe8df9c4d925f09cb6c700867f1def7157095e48e439a60f6f45980e714d4350d", - "0x985b5f10a2f49ffe6bf459f2017dcdd3eaf8c41b58965e2de945f69007dbfe33", - "0x5b0820caf4b5e529b4ae312f22017cea9c1808ae43c74a1e3b80bcc8bd150f4a", - "0x80c85c31d97ff0ab0cd57de2860e1286e0e421eb3985c8579152af4c8924b0c4", - "0xda61efac587126ad8b614f5f09fe0ca1f20a08c55fdc821a52b81967e2b42729", - "0x4628952bf9712961ba59395475ada23d998528415567204fb053d127b4477e6b", - "0xb1c9a40f92ebb179b5a26027681ea199fd9ada142203cd6e7f4127e9ab5d4cb8", - "0x0d2047590e8cfb6ec4de9dd9b45a57c68cda81e47a2825d2a0f8e247dfd9eac0", - "0x7c52211da5859dc159c55ab931edc51591b1cc40c2ed94e3a1b099ecb8461b88", - "0x0ca4d9b79d436ed26fa2b572304810eb84bbd488c00c049196b964a30d0113ec", - "0x7ac588b2a30be81a77672044e8a9edb2473b5dc7dfcedd16eb6dacdf494be0e0", - "0xc534e2721c29f1f203fdb4a52d8bf84512ea537839481c81568f49bc1225e27a", - "0xfa257d5e9411d9f1a79f94409f76dddf0acfbe632d8e23688c29cedfa130d746", - "0x67c4e10fffbcc170abdf547ebfdcba1095b462789cb80c8597e729183e1c7572", - "0xefcde5a9e338849a55d6214532fa1f658cee43b76c0fff9df02c78c785cb7b27", - "0xcd94f9dfac150d943564efe28c4b226627485ca539f3cd7f829e6e908db35979", - "0xb6085e2362920cd7a9d71175c534b2e4d39b67933af0ee813d15319d8f8250d4", - "0x496061782e869574cf8548673121d176fba013d13794d0285598faec125f929f", - "0xb14dc754b24d5ec2bb58cf81c0a46a0247fa39338aab967384ada4dfc4364f8d", - "0x462288b2c173b04fb2296d5adf61e7e494bace7957a42e799e9cabc0dfe3ac83", - "0xebb65c35807154934b78c8d74135206d6644a775f675dbfab95c8371a46673cc", - "0xd55f0c17407e403125a88d451ae7959c49f681f1829a4d6daa824a0f4124608e", - "0x9dde6ba8977b4e08667ba3c50b885f13d3d060cb6148b0abd32c3b661d0376c7", - "0x55fe0a4da8597b69e6795c4382b634950912b30bd8257832e9f7aa01e625e75e", - "0x53caa4154558b658e39d63ff7dd0854e281b9c8e33c82fd8274376ae68ce4179", - "0xa9bc3f833e77e6118750b63e1d2e3ab2d17a79471e9d7dade2a284e17b6cdf20", - "0x3113450c1991c2365e1dedc30c004ae21f90962e0f543b7c33ca959d49503406", - "0x4406c045a865c0a652ceec96e7c7af18c3b95450b15d5e78d41afde733a684c9", - "0xd66d2590826f096c566df26616a31d9678e61fcaaedacad51ea1208cbd5bf795", - "0xd44bd8801a56af06b25e5e875e67c163fa30740f3d216229c679a2954d82c5cd", - "0x60c37fccea28aa15bbc9a95dfbabfd78d04ac7a35a0b4c14f15ad96945b69fbc", - "0x2698ef0bdff39234d0867513be3b66da698dd750739efa9aa9f84091aa186a6e", - "0xee97c2d476dc0eb0e62ac4863c74cc7bb59ae19a8c0bdb4945e25bdc02c2cdcb", - "0xa106b29e29ed9157a864d16d45b8a6eca9ed778a61361ec15ef28243993351ed", - "0x9cdd0133c8a7b3f2b8d287b05512a905a0a7805dab2fc43d8caa83e5026c1307", - "0xaf8f9a8528181e2142cb97fc6fa8100c7c1568fb043dbd92c93f4f093a409638", - "0x4147e1021762d235d783b56997ed121dc82b048e7ca121680eaccbe97a237032", - "0x9c1a31afd83fe89ede631c7020dab7b80f6540c3475edef03a5f40a7d7ad88a7", - "0x9efc4504e17cda213f3a3b1ae349d438fdf3ac791d542e2436bca0ab94ca5304", - "0x3ad62e145d8184d971590be776c77f38eecec31b0dc83bf42ce047894c8c4a07", - "0x2029d50236e61149a938ad2726c6e6aa0e6728a0fa162c48cc3dd570681e5497", - "0x0a6df8e7bcc8c5c9a7e13a126fc3eb77af3f6bfecd110cb8bf8eca7fecac4574", - "0xcab90dcbc750713ab7d038a1e79368e3d4f969604582c52e15334a00ba97ef48", - "0xbc1833fa897d604335c22c10fe45daa27ccd1d0acb9783f738837f0ad115a9d3", - "0xb5a4226444f4013abce38de1572d7a95933a49715cfba7c6c16a9688db55ff86", - "0x8317d0ff9a057bb2c62a1634167991e71de3f1ff836ad788f2e9da2eaf371fe6", - "0x8d6e920380dc7b1ce15fd44cdcb379afb393d7a3744a1e32d9a67010957092e4", - "0x80638e86c6d5a5e5bcff36f05ef0936cafa699a2cb88583f6b0cbeed5602d969", - "0x21e33347e0f53bd1ccb6b22c6593306f0f96d0cf897447796c61c002b1c462a0", - "0xc2b49e94700d3f9bef61d1132d30d297cdf8c27c348ac0dd37818c9e8057c38b", - "0xd8c8ae125ac0939fa973e836eb3209d96dacfefe26cca2d36526fa7a2a5820e3", - "0x5a05278504c5c6aee0aa945e70d175dc1afa17395f8af61d358ae55356a17d50", - "0x1d1fe7bc259b77a1bc6b826c3369b98ae301d47e35a300b7fcd63cbf88ecbc28", - "0x60c4cd5a7c7d22577c0625a2ae717bd29555fe0e6010821c6c801d7dd7aef473", - "0x2494f17945c735563e1627506324d479fb9ab2a01c32374110d441d57bf87b14", - "0x2ba5ee1ecbcba851945ca5531df25ccf4783b084a8c0231e9caa234e9b9ab25f", - "0xa483fa8bebdfb14238f470ba1282c587ad1fcc54fcb34e2c13aff9311fb6ddde", - "0x1109db705d56937250892c347441d64c461a3fa28a5513264a1a82dd5cf497d2", - "0xfa28de144af8d7d0593bd3ad09863ee4f01d960896eac5e01692389bc971ed92", - "0x726d5eb5dd2be92a565f4bcb0d82727c02349c36f796b70d888da153142ee122", - "0x745280b75dbf9e2f7b0339b13e95b86403d48bc54e57d694238a4199046d3e4c", - "0xc01dd3a56f7147fc4f4655ee6f41c5bc987dc861077c01a517e71b1aac5ca600", - "0xb18789f13884ff8e207e0af8d1b2ae90a96efb38ec083c85c92359b1a523ad3f", - "0xc0cbb9e3eb8fecaba920c63eca3c8b6344d4d608ea6a690f59bf95810c3ea424", - "0x7a44454fe998bf337faeccce4ea91b13e17448969fd8f54a88861a863fa084ac", - "0xf8f332bcfd6d19349eb4b1df22e4e64f6f15b6d6e228dce8487638101c7bc266", - "0x6a26b1aafad0d84dcb46e7171b96de89d8fb2c91895e17c95e30fc53135d7a9e", - "0x1ee1fbc382e0ef22f6b469b4ca5fb8fb5cb1b4f724da670aa0b34f41ca680f9a", - "0x868daa362eefc36bb68801085bc34714111c79564be0f414aeba483b20212b44", - "0x72fde6335e163a7391b262cdd557cbeb68d12b145aad078855ad19c7fadb6759", - "0x1805834e8541e70f1b997268569d0a61036c85eda7ccf203d8067c16544c38ec", - "0x0482f1d3560e173831d54d3bc0756400348b7d83b300719ec98d1ef44a307890", - "0x62d86e9a169790fdc4cc0d42c31b2acb29197f2412a900251811a81275ee13d6", - "0x6a94212639e4091348d31ce0e936a910df7edb8068af9a189bad04eeb1f70430", - "0x7cf4e065cc3836adc28cd4ff92f75b77b77c8dc3a048b571a1d0c6cdb896671f", - "0x2d4e012e497b8a7f944d1eed62763a62bc34e8ce5bdc6e0a94a92f4b2271445c", - "0xbb0a682b0b861f24f3dfa07633ac93db6c8030abdbf10383047518f0e33c5c87", - "0xef2a1dec41ec136bb22c97f45b7d27c47ea001b32a6c522cea740d2fbbf9f68c", - "0x19f6747a4dc55fc04c2dfbd312d24482195f2fc7051d631cb6b035f811b9cbfc", - "0x75a61bd26fbd84db128ea208403413aed4c1a191bc85add1fa5b202b3934119f", - "0xce363dd64f88c94fe0e0f1b0a986397a9451a00215b19f47ae2f89ea73e009d3", - "0xc61501ccc6e266bac8014200d7a9e67b90d7391e6ac17aee353d7001e6e6c295", - "0xbb60812a243a8e533801fa84680d1d853e9fee9314d23fa1f6588c2ac6e28d5d", - "0x7dd9a83d4c625adb59d176cd51b850794b418d943266f74494b4c3cceab16152", - "0x15e847cf4c34ae586a877f4ff2d158bcddf0e61df93dd1bd866f21af66c7b0c8", - "0x0bc297a726aae1d4e3cf2adb779ad9995cb32671ce18604e159b606ef964bc48", - "0x5131b60105166a5e91d7f506b9de61143c70c450203995c26546a715bdc711fe", - "0xaed66fdb230b7c2cf156dfd3564a7c5a354b79df9bab6958a8ab55a56a4e4ba1", - "0x2a7285d880cd19a7eddd8ac7530a0bccf3ac497f561cba558561008098b0b6be", - "0xb288b3238fb310fd8e4a8b68421987cbff4158b7ae2f9aa60fc260ca25789d07", - "0x083e307bd6a391319dfe090af1dbe3414f687651531dc8b4befe794aba1a28d9", - "0x1a5fecbf093a54ee0db2789692a0269635dddb611cf265d17bdc00f50669b5fa", - "0x0a3191b2f54ae67f137e63351ac5d62913eee539cdabbaf5a471d2698b9b999c", - "0xcced7db129d21f26e9ee287bb3ddbcf8e64dc4083d52eb2a4e2a70bc0f8ee60a", - "0xf995d09f0a92aea851fda99a1bc8cb60ee58fbad2611e9c7ccde6baff8957b8e", - "0x21dbe9310292c5ff01406b8b1c00ed29746025e42999621cc4587a90dcba3c4d", - "0x9368ffc4ce7a6ca72ce797ca628a6a624e0891bec0c1a290311d2712dc021156", - "0x45728c375d426802b60d327657dd95783bf96cd9f38cea8bde12213fb494231f", - "0xb64d24d242890e9bd0dcd7477dc56358a18a1b21e590b5c796b61061ae3b70e2", - "0x7d52347884ed55507d468cb77f9a16047f304ec3a17f6623c10fd9c9a91a39fa", - "0x5c35a5ddbb5a2ced51e659711fc03e6494a522bf7e3a37f5499830a74dc2b68c", - "0x01d4420ee02d32c15aee1692cddd25a2073980a0fda793daf62d78a47b29e97f", - "0x28b028f51a5d53895bae862a12c963f0f41a09343c5c6c8cdfc16a34020f0442", - "0x46cc4db90a7dd827245ced71c56e49d113cb0c72ae33ba8d54190cdb259d9e65", - "0xeb95c71e0aa281c2206696cad5f9f15655decc77199a344c7e0d274619819228", - "0xb18d594602c0b8e19b66d6d51d165846c11583e235c8ae62a02a7596b26ce581", - "0x993beea57115e7a9a276b041dbcf6142d5cd1e3cbbccc14654834e73bc15e2bf", - "0x9a181c8207e33dfd4e5ea326b8b443c68b4513a983e5f4a0518b067d7692859b", - "0x43932438435f88c8b09b35f4a8b66039ec998be5a87070244c37e15ffdfd5dff", - "0x15f5645542ddbfb4c04f347cdf0c980905b5eb67d6277327f49628b9ab358696", - "0x2522be1ca6cc71879cf4f2f3df2dfe90e196e5f4df7755b380c86f4944ca5e08", - "0x3af6e27765b3188e024cb05b563bd9f56e8e693ac6c74d26a74882fe0cc550d4", - "0x19a702215f0bdcbc46c4efcb92da64b6e3d9a86c2b400d12f963629deef9e4b4", - "0x1dcbca6b91a61330777be1182d68fcaf9ff0d9c43eeebe9ca9c4ab8abdc41bda", - "0x02eaf7a3396487c7502463311a6277e5f69380ba24caa81331298baa9c63b08f", - "0xbadff92a236658ec338889b33eed9715df1905d924ac54d611f3793b9b3ff176", - "0x79bddded76b993af9d5bf07e210f3fc6d4327a98dc54ba13c844ced73a835948", - "0x0bab4da8bf5c6b9bbde53b0c83f7d940b3acb5f5743ce75f62a2c15a1aecb729", - "0xd2b01a6d2a3c0d88bd41c17e60a95f47cd119927a7e42413e56ce5dc8787de12", - "0x4f1ba6859422fec2dfe05ba75d7871b2690d5b0176532ed3a399ebb814091a92", - "0xf0300c27f2f81f794c2869fb7a4ed3f409e642f420169e60386b2d1105d0f8b3", - "0x87b35d08f7dfbcf77aba650898e5143f9f93957250c2c1ff443f0ae875d2b54e", - "0xfc665f0179e97e16f678fda2a0c1b31da66e891844b970c10577d390fe0bd8c1", - "0xeff88423b02371916dade6eb5a86f01268815678eb91171c0797d1f0aa194e41", - "0x2904cce349847eed30a417e9d9797a105d6133b26d3f4d913494d7ac383e173c", - "0xe1ecfe848a3a5e6d6c919b10321e6e762715464c155ee5be6ad5c9a588f158ee", - "0x7659c856f0153fb50558c9df7900e70ae1d07cf48229234f254cc56a3ccea5af", - "0xe1c96d2c8753532435331980144223d6420bf07daa59e82ce45ba0c11e2ea051", - "0xb132f3be09c4dcdeee13ed8a2009bc0c578612de34014a743eefdac08f69cb7d", - "0x28173067327fb946538eefd129ac9f822d392b5ec76c8fe1f10f2ce2af83068e", - "0xad27f2e92484df9d619f407ec2b4e38c18513a7af01e6de1bf20731bb52c9eaa", - "0x664477d7163c2797ab51ff749de0b6ea22bc9cab783604f3bc1f81772eb554f6", - "0xaf31d519224c5891358b4ffac9f87f8cd35827f645a96ad9b0a9befcbb8ab870", - "0xf68913515db527a7397d322d9aa517aeb83878da9788a9a643ac713cb22abcd1", - "0xc27cc43a1eadbcc82f1fe7025006590322dd9fc287e054c0902b9e49d0ec7433", - "0xaba628c7fc30d83b1ad1db8fb1f5751ecc44b420a3c3287e3e3f6257bd896b3e", - "0x04a3af92b1e3e7aeaaa9571ae392312696925875d5b2fc738000a09c5e59ff1e", - "0x5df46ba1de0dad0b92ac06736516073185d816c4391f46b6ef6ce2029a21b6a1", - "0x6ace0379f6c60e7926ff23e304db11f2a0f157f4c98dddbbdc23bf88268332ac", - "0xe40ffa54ae497095575c9783f0ed03c28a0c12dfe68c16bb9d8671e5d30e4e29", - "0x2c72b6f49ac763f6d96824c58d7d5da8a02c9f281acceb4dacd423fc7bd0a8cf", - "0xdbb5c5f0407f7964743370c5e9ac58ef217ab1e5a1366fb92b428859440fadb2", - "0xbedc55f65b76a6ad3dc13d5d7c9509b2c0099b69a940556ed6a5727aa2cc095d", - "0x4b31681a06db2856098aa0710a2747e725d1067caef42d6dd9a11c0cedf8304f", - "0x42bc9650a26d47e3e3a8ef96a7323a619cf67c6f6b50f52225ebdb8bb998745e", - "0x46b230c2f457cfb878ef0a37e94e7899e87de00eac9bbd622491c7a66b543cc0", - "0xa1b61da03511a16a78b088d31ff8f1f029b812e22015f329950d52b72a145e4e", - "0x8f66b59429ac66c05ff2421d78faf64d9dff6784666aeb24764ad20dfd9bb6b3", - "0x6023e25c4636da9efb0808604b628de4a3396171504dd92f6a0b15af4dda71d8", - "0x5f588624cf59a57345df1bc7b4102c71b40192c5ada3d752be4da8f11cac7f3b", - "0x0e926bfd2d2646dff25ee0ea7276b22e54f8e999631997ea1c47ab00dce1a0f8", - "0x4ca751e3eda2e457311a642e0cd758a30178525ccb2dd0541a9a9d9493309b11", - "0x85e9e617c10999ba7363e839d5552c55c0d0f9addc63f6dbedc4ac66989a2634", - "0x81643302113f1656b0399a79918100f8a8782d84b97e77ab8cfe50fd0c6bafe0", - "0xd8c529ad44a0807f1e158626cf3efaa55fde606a6df79df80ccd2625812c536c", - "0x7e97688b4c5a2f7138cf9436aa1f71d7724197565f9dbcd2415c1fdf97a9b70e", - "0xdc9b6af3ca940343bb79cac69d70318cd9162d17cf32ff77e4f7a372a5f8373a", - "0x3bbee82242426e5ea6d0b7d33fa1e8ff6132a0621612e7eaaa12ecd91e0ec009", - "0x45b81447d9ae01a109be4a2c7e3f9ee425b76de2a7d8435a916c3962e37e5c50", - "0x05056498b2e8fed9dc5001f9ab24cbcaab9de8f29a9311c307075577acaf0b25", - "0x59a845afc513cd2e38ef638fc36c0e1bffd7636866457ed30d915bb1f345d3ae", - "0x0551039e2580b62a1e09b371c42289e37e2b0ce110cc2494132d555cf567b969", - "0xc8a7f5125d61870f632d10dddfba40badbde558c2790371a65012cab3fb4c148", - "0x2be25f9dd47ec1e1ba42bc3dcf2aac69750b124b36948396babf4d3ca7e5dd35", - "0x090bacdd16b7f0ea693e2a2c41e9f111dee8a5de5309b09e3d4bc426345f8995", - "0xf37f5f98be997d2ecabd3019fa57037a18edaf106e12f0d4f31de77d60403972", - "0x688da240928620a03ebb920424d407fc1643f238051ca86b24645562e8ccbd95", - "0x154c62c1c40f1eb98305ccb23c1f2555819fcd8b4caaa04b7eec2536f43cea66", - "0xdef4ed8c27caacf9c35479d0ed8fc415cdc5452a7a445af16fcd691b28f3ab2f", - "0xe54e5db4d2644f653100b10409866c8dc61844217d3326e7fe3dcc094ee74b84", - "0xc58d84f9ab8514967c2a31146d200de33588a0ea4d77e5574ba563ac6789f987", - "0xf7cc63e55ef6f65ff633a46cfa9f164e68901a1fbe9682ef65dc47eb16e343e5", - "0x98c741caa63a1f33d8aab4612959f748286a1285b46d3a5551d9bf28ef830182", - "0xbe29b2f2be5e3c9b716c890c204a9da445af5e6b4e50c6402a93b32f42ebac89", - "0xbeb0e76ce9106e020487f0c981a557164d46356736227d81cb2eabeff660334a", - "0xf67ce427d55fc9311933cb663e6eb469bd130d69e312fe1367caf2c7fb1277c4", - "0xafdd0ffb7e7b5e90a7502148d9d3134f7677a6e410122b908469daa70224d553", - "0x8f74c65c0d22705a3979a72b8b3021a0d0a82687ce22615e51108a33b4168a7c", - "0xba35a0f2627ef78f55548b5d3ba2b5e61e08e30a077b7ada59bfa8e30c636da4", - "0xa045b51f64e3fad57989f75fc10274dfbb26e03d0dec1aa9b8a020a77a452b26", - "0x0f6d2689f323317fe066af81057ebb50b59cb1b614212f950527dfe555e1e9aa", - "0x17281c57fd0b47611e9fbf51e2bd1c9522408cf2e738b335310c499628eeded0", - "0xb29c157f1076789921646300ef81051b0645893705cd3b522e261f6abb8b5ab7", - "0x3d491eac830429b90e939a34633423fe28c0ecf512db003acc5672329b5140f3", - "0x99aa35ab08d27ad4ddeb0af6b041f1ea24f9cc791b02d69872bef66a9451d7a7", - "0x2566d0b64d3be342603d570b118ff75fb7f26a3b9acbda07da417e9d04b90832", - "0xa18155f9663223b728c0da042ba14633463a03c88d8b53cd3f119bff9e1c72bc", - "0x0046250dbb527137c049b92e9bf61fbeabc8b9654d8cc920b8f5c2dd67d94c0d", - "0x31bcb0b19536109ef1010cb37a4b6eafe2e45cb1e4acbdc590a94f75d735efae", - "0xb03c3b34fe5738ff7595fa87d228e57f1f3e689913ac7d6e46f4bebb6496c3f5", - "0x34ccd9475562aea89fa44e7f41f1f05f821603a799afd7d34793f7d41dee39c0", - "0x3f6c646a7c1c2f121d4d780b8b0705b9031da6930c643bc3bf491b9f28a1886e", - "0xf78ba2ea52a06e703bcc56148e29c6095dc2c3fbcf245fb1b668b752d5981a8d", - "0x9c3375280b4fd748a8025639a52a63f0523fb8fa4d3942e0b358a93c286f061e", - "0xca6d5be54183e0b043fb521c6f68f686eb65b491af837b5538b8cfe448f8c3ab", - "0x320d1301fc107767ee4da3eb0ce9559691fdf9361ba97f9d4afb1088acfd9fbf", - "0x2665e7d3351b00a718812ecd4ee2b3dbcbf8b8311d83a23e7e96045c760deab9", - "0xd62ca6ba780efa5adb18bb627e479b296a5a3f30d3e21719388f1169e70ba59a", - "0x280ea84739ed8d58a98a894a320134d7792f5082cdd309f54561fd7ea4cdca74", - "0x6931c3241edef29f03d931debf8cfa5064587c1b21634b1caddf0b3ec985bfc0", - "0x55590c1237ad52f4f1d27b8034d61cc5125fb51949be6d976e09529130cc9015", - "0x53555531ab8a761e2895908e8fe8c7d7859d7f7413e7779d25e0c7a806f171b5", - "0x14505e0d5951ccd97bcfd999099f203ed2c47d917b24934ab1a98713c38af21a", - "0x7baae66ad3c2935e0145c8ddaaab9a3ec96608d4fa68130a417a419a7c81af76", - "0xc2a6a51a242ae696131dd5f1e5d224ec7915a81ff50849fcb82d2e9b219e0769", - "0xc0f362fa6bd1c9f3f11b48e786f624c8da05c41a1c6943822f806bc66c966273", - "0x577c7d22b1c2ee961eac2d5ecc2ede8d08caf245a6dbfc3bcc444fe66ef3a668", - "0x09ae4c551fc876ca178f6e8dd2a0dbdd209ee93f8f1010177182d4f3145364c0", - "0xaab268258e1251c31edd3b9b8025b0c1f5b1f7e1e62e92593da795d86d9ef5c4", - "0x87f0f5908a682671b151edbfcb5898f004b289537148113c42d0923bc15c5bee", - "0x06bf3127f27eb60c9cc4a74629a66c44dbbbb9b68d65923cadd0ba28f1015cf8", - "0x23e0db958147b5c8db869369ecd816d7ce815720237ddb6da8a05e622e1dbe20", - "0xd4ce983759e2f9710e80b0ae458eb96cca9867858288cd2d7eab982f7dd26a66", - "0xf6bf598b019ff749002bb402e16497b0b3c9ee63125a13be881912f7009ede6c", - "0x7251bf281e9c72c043f57d39418ad568a5bd7e4710eb3e17cb42382114d68203", - "0xd8145c5f2de332ff21be501448d091385ffcbc56c41dc70a42707069159befa9", - "0x2559c0a30e9163f757e37ade5b2b5eeba9a85798fb0613ba4f915e50f2e57a2a", - "0xe3253db4c4d9f03f7c01d7c605e1d5ae6731484f0c7c28890fe6f16483a2d43b", - "0xd1b14798b014e64205914ab3c005146ebabf3f638abb7916371bb1eb3b5cb9c0", - "0x9e926beb792042c73c5f56b8b80b96b7e61f5c330395059f91184e9cedf176c5", - "0x4faacb7e85312a3fc3be57a617971adb47c90e01a62494beaf7f98aaec6a4ea4", - "0xedfcecf1217cd00b3c310e10e733f7ea5bb65773f5c1facfa73e4c62098fb07b", - "0x1001b41b4895a70d561f21e4db156bd3f1d3e295f5bfc1d5bd141f3c1a67383a", - "0x77566c4f063d17f44af69bec97291c7882a5dfa6b2082b3781af1ae58cd31591", - "0x0f3947cd52db657baf53a7739ce90d6d20a1afc29afca59171bdeb95b179f535", - "0x82e7731a0ffd6859e2780dc0e0b416b9644900ff324eb7ec3fe14844548dda7e", - "0x73029b7da326cf66bb0465860faef079fb04d1debef9c196bf4399df9ad07c32", - "0xfb838099a79e229c7377dff94c4c4776974059980e35d7786ab21433cc066be9", - "0x395797b06377d50f6dda53d3e731229d2e66bddde5ff58c3d4dbd30588d29561", - "0xbd6366c58c6537c6596809527ece0812f6835a7d636b45dcae3cc9c7721c45ca", - "0xc3d33249a30bd802b8d47fbbc04ae4a312a46ade5c4ffcfb11917dab72d053a0", - "0x13094e2e787e70f2d53700967a971ccd0eddafe6cd0b2ab64dd45e5046196f5e", - "0x80de11fb3db309cbf33068fcb4768291bad907b2e6c5c701a16e751535224a85", - "0xcd697e246e53d9383b5a2bdcd1099105d5c03b1bf0094db4d9b2f4adb014e780", - "0x30e146fa5cffd44b897be7150ddf15c1545691d7767c25628cf9de4754fdfc42", - "0xde108b7e443d5a3b671105ed6ebcf9d719d4c816e59afa3171cee1bc8e6b2d8c", - "0x816e555cc8140053e16ad4deb018de16c1fb7a0ce764c54d0aab2ae217815570", - "0x92ddeaf0792e08bbe3664818fad462f121976a67a073ecba8166cf2efba5ca31", - "0xf402ff440a86d90329158b2a849927a335c72c4aa851b2dad01aa302b0cc32cf", - "0xeb0ada610916739c798c6b82458f7f4aa8583b40e1d0d03b0b1143a3a5008608", - "0x05aee956f26b6b5793c626abd0d8c36843de3470c97ee96259a6bfc5bd4923f1", - "0x81572b951ca3b8af2dcf6dac16c6cc215a2dcc2fc201ba5057035ad1c2101fea", - "0x75db52fff9f78fc51f44a4550016a1774b7d396a195d1f9fdefa04fd7fcd29d0", - "0xccecbbe8891c6a6b5601146b25634ae17914d4fe687d456472c2207ba2809a86", - "0x38d07283f2f7df234942f87e52dedacf4a11d3013d83e6f2dff75ba1628d9886", - "0x4dba63d0eece8c063904d9e2f2861e7d9eb144c2d9764928498fca8de371ae10", - "0xb40a83b846d964fb6060634faf1cf8621ca94e53d780b6e905d46114f9b9a27d", - "0xe2ce7be74294f7359a49bfae41a01072f7c3954d6f95ae842a386175ef317785", - "0x37ef59f57e88b4a3009ceffd2565d3508b5c1a036240db70e93f1ee54553bee6", - "0xff374581040383683eba25152d67271fee82ee255c3632d390552b8f5e578f78", - "0x1efa86187dce4c29eceacfe4c6ff1d4950c862984dae8a20f9fa8acdd437264e", - "0xd73d592632129f6bb002f9ab122c0564689357eecb1f6d888440c495f0771ec4", - "0xd3ca394b8fdcf3660bd097d38e0fd5bf33c13c04b2659abb70e4d13694cdd9e9", - "0x0428176e61a3732d57beb0f493845de7fe0e31baff8a5e1563d232bbccf93de3", - "0xe8fe77555e55b3260afc9034f885e03c2debf36c48ff69b209223b1829cffd52", - "0xdc7cd23f15d5e07d3aefb0012ac38fc8b823a6263107a3cf8b89c3368715d7ab", - "0xc523f34972db97d218fda1709162beaaa9ba660c4df97a109d50f38340a48f05", - "0x10be73f074922b6e3df4909d3b9e7ed323c2a19264dc93d37bd7513fb1d6b4e7", - "0x4c9b2adb87844975e677546e3a1cebb9aaf42a561f884386915e68687557ecab", - "0xf916f18da6474460fe4ab8a0293f26a28fd3d90679e0bbae2b063b771a8c998a", - "0x04172ccdfef91ef69bbf1f0dd36bad79fceda5c04b8ebc566ff08da83d59aa46", - "0x895732611c267295e71c15d6e87e3519203957cd29bb60aac32cb19d7a9af211", - "0x370ab55158b9ea9badca83eb5b09335aecfce8bdf18fbade818a119a4aab63b5", - "0x9320a338272e9d0aa5a5227b05265eb77a8dac2cb8c4b021395cb0edf2f80077", - "0x173b2ac92367b0cf4585ee21916825f7bca2066cea520c464b908ed47542cad7", - "0xc75a82f1f03938fabb0dfad843460cf7dbc71550bb262d06b4e4bd303912aa36", - "0x422d7e015bfab1626eccd58dcb0fb98be644711367c0cacc707d36ac40fc0b2f", - "0x3360f78c16305e9aaca57148a335b5bdf9c6527a9703c03cb5a8ef9eb38f2b6c", - "0xc682332f99928a8f6de539428c706c2c48ce79fde10883414843f913c594ef50", - "0xe8f0bcfe5e2e2fdda4c84d9e02689f7d6b1e916f3734580318cd3e67a7dcd633", - "0xbf80b39efff256301bd1aeb7292d3879bc0956c73ce00703564b7c7248a06b42", - "0xc8dc8e74c62fca5c317ffe9a4217fba5b3d73b73201f1af84c1e50df9dcac044", - "0x74e0220562dcd2a42516fd4499ebddf06d25bd515e1f652437d88eee48bfc27f", - "0xfdcf535542126d739401eff7b293640853ce9ad75fe2ca6f7c46422dd436c3a3", - "0xc373ab92780c26c4a1324d3e539cc64a6c1ad586dd803676574590ab44f1bc27", - "0xfcb26864728e20b81252b3881ab840b92b427f7115b1f5e2f3a61380f88a4116", - "0xbb685ce31d2029e47d5ea693da8a01c2bfeb8169b5d0eda7cdf84c6468595e74", - "0xcd18a3b622502d167c8ccaf5635a03574738f2c13a278dd7a688cf7ab0a2c5b0", - "0xa8248f6713673e2fa7381e9e1206ae3ac9019fee55cf076106573f53424e8dba", - "0x0fe434aaa52d8f09b727398a8968c36aaf2be82cbb23778d58d4e991d3b7fa9e", - "0x185bd0f6ce85efc5a2579cfaada211d8071403f57ed9f7d60f6edeb915a1c432", - "0xf5f2057df40a078ff754494f4c6baf4063e3eda68b07dd5712f398865cda4d99", - "0xa2bb9488dce8bf3e580c3147dfe435c1638db0ec04a9880301f13a3e9d6cdeed", - "0xaecc304df9c226d4c3dc6eb2e57efe67a3f30807ec1724f9c6de81449d6354b5", - "0xd5f6438693c32880596df1c9516eeaa0c4ec13c0a1deb55b54b7f75b05bc0f97", - "0x11a7312511cecd8f0a87dd9ae9e51f404eae666a25c07e8435302c0388614baa", - "0x2e33bcd6479d2ec471017dfeedd7dc5acfea9bc39c7b92116956015ee7942bed", - "0xaf288bb222823c6d874f35356c4d00fd23cbb3a60472929e4dc6d36a04b7539a", - "0x0e23f7aa6514cfa58a64843a5fd47718f963477b51f056a861a9b12d9fef5f62", - "0xc11827d60b3729a09d7a0ecf664144a936a2a7306f221e26e4ce7e7010d56115", - "0x0366e38d49c40a485ce8410df1f6be0f96c6cb64b8c4eae0a7f045c8a8f1d1ce", - "0x5a10b623c1a9e2ebfa0da73df2cc85b1a11c5de81d36ce9a173ca458cdd01523", - "0x523323217f955b390b82b719660026bc7206bf13792f33f4a5ae70e7d5c6a96d", - "0x0729c9bf38e3cb392201d4dc47efddc969c8a40c495c36686624231380e77878", - "0xb1a6bcd34bc44b9c15d6a801c840f656385c0668572d313096ba2fa63a961efd", - "0x5d3fe5975286dfe199556949782234b6268083b3f81a990f81c20ada16e7e625", - "0xca029b29e95664f8b678dae0fc16309a4026a785e42a05bfac1eb798c505fc80", - "0xb69a389e7343d2b4f2dc5cd6531806c9da908df96ee6a4f98daaf26a7e2d4ecf", - "0x10ae2c8d22fad8711df2c9a1af01bb51a8dd53977500ac74d490e2482bf16271", - "0x46e2a6cd2a7bd80d364be9d72970c607741a0dfdd9b7caa3a3ae36449e5e6c3b", - "0x43ffb2f3740adf7e49c9aba44831f9f72754b1c82e1836f71c29cba55144177d", - "0x4f9f90cb4ee561c62358285bccb0ce753da1ef841da876a15c60cd6f09e1d6ac", - "0x951eac5d02ec830c99c869d501b8a2c711a9d3c57410ade7cd1e3c5287133334", - "0x328ee3ffa889d19bb0a52210628d3ee79b3fd6000b5f564891eb446c8a450282", - "0xa4bf55830e5af5dbcad9846370c44cde2bc5ce7c214e10030cc3eea34b79d6ab", - "0x56556986c284b379da74a1176c53df781039b6e598223d0b2e745d7f6415e330", - "0xaee9e7445a2490fecad2d94a9d83d47c8544c94085bf5ac5234a14de9fbb7f69", - "0x132d2a018737f9056fd9cd695eaabe7ce9e04fc21cd35ba1f892c6810546d286", - "0xeaa54789bf7ab23b3a3bf5472a964606adc49881425e34ba7d9a536f82ab133e", - "0x23e30e437f469d9f175e350dde559ef6ed578a0adf16dff7ba41050a6d99080e", - "0x6da9606fe9e8c103e29ef33edfdaf5b325c48a6466e7f6ab1c89c522dd7f934a", - "0x70365c62d260b7edb08fb3fd2a9fe865cd67b286aebcf9d70204f8ef64e6c4fc", - "0x9eaae564df93682a5e6fd8f0d626500f452f8dedae1232e810965f0bfadc2311", - "0x9b74b87a77b1a52eeb206b846d7644166dd1f69e5b3995bb3e5c481c63630cd5", - "0x04b02985a9ae4fcbf9db44a04c71b86620864536475c7a4fe6da406845dc3393", - "0x764525d62cdd4eb36fccee7fb2917a7c3b0e76fefaecaa8f968d6ae2e6a5b1ae", - "0x009c739117f511c9e7a00aec33e64d19a516ccb2aa3d0177e865f36099829272", - "0x8b040f52a383cd87d46ae07844e4b53018dffd0d0332e7b78a4b3521ee063132", - "0x726e1f9c132d65d0750290bd1a785d2bd81534c1c0e83def056a743ac80ef4ff", - "0x0c309b58787f41c317b3176ab230cf3f077134ba50935936a09e5e82235b8453", - "0x4641d9be01a25d494511cc37e90de9fcde07602ccea4b661971b5e5a00d03fca", - "0x1bd977d1bd0eb32e49b38ba600e0f0fec7f102c6c3914f7e1c944ee10bf4ef11", - "0x269e8b5be03bae74bbba23289b1e3e7c9a1423dbd03a2b121a22b9eea7520eb2", - "0xae7d7852bddcd107b74dd8885191756cb082f97b613b7ed5cb855ee7712f706f", - "0xf678e32a8e94206518dc953a8c9d684dd5d08b6a5628a6f7dc429c80ff1fe9c3", - "0xf899f563dd1a48f10ab7c55a6f7efb2aea08d3be82411cb73403aada18109d2a", - "0xd665f961ce7568716482bf85647d9dee82c8b719b21c1b555752cd9184fd4ccc", - "0xf71a0ab542f61d880734d2c186da35a2575c05403d3a36a4aa7746714b98eb23", - "0x84ed91096287ce802dc09b1f3606ad48c1a281332707476148b6bca30380638b", - "0x5f227b98ba91a67d4207d5fbc064403864fbc04d790ecb940da2fa851de35e8a", - "0xa98b1b6c440fd131d60f7451e20346da06618a2dc45db9550f3aba0833853d6e", - "0x5814b4dd8d00d71326bc8814d3feb6de2e3b3c7b45ef1d2ad52ea98ce9ee754e", - "0x3e28116f85c8d06d7a40ca747aebdbae3fd0fb857c21045b8934c155ad650f75", - "0xe7b32da2212379928559cffde6762845f4743f338ab5120454736c9afacbb957", - "0xacaf36117398c0f40aeb6114e6c01dfac7c524613cb701e534eff119e3146086", - "0x3e41b0cea0110bc0acaeed46a0a20f4bddb803640a652a87f78a1261e5660f12", - "0x081f66954c6ec53936855e51395680684755129be65adeee1617ad94787f7f5c", - "0x1e53cfd05241d851f964632a997390588d3305a664e516fae222fb8f9ad9138f", - "0x56fada3ac16c6997c3315f5b9430a62f2a856806a0eb48866f9d718b3bc3793a", - "0xa9dada52926a2d7bb6f4ed91f26ad69bb006332fbe6aee11434027200dab60b5", - "0x819a2ab193730227617c65c0e52159798cd8f2494341268064de24d2ec79b8ec", - "0x409686b4c67adc9bbf88f9f312634c1985e8eedbc746511c70ac907535de05b2", - "0xa32af0000d95f6b8f11f11c58f42284e89e058c450337ab42148b6f1866dee00", - "0x7f75da8d5b0d3325483a408df85d12f60692d8712481ce510ac38d04f7563b8d", - "0x33c32bca7de6d98c1bcad486ea2fe57803739903e3ce77ef028165440fec766b", - "0xe1db4790f2696ce283312ba16b6a27fe4910c617e79f6a36ae5088570c170a1d", - "0x954845731a92b9f21d546d12a17e2b5e9ef8d082cee9d407434cfe96ef1bb682", - "0xb9fd370d18c4c546fbadd57d2e9e4abb743875be98157a080c8b0f7f40fb42d0", - "0x863c00fe56d7ce27bdf675d5e95da139a7a16c9c26e5b9e98b399f0a2445ace4", - "0x1e91dbb2b7088b8c725c60c76169b292f2dcda65c6ac50cf50e12c0edfe5737e", - "0x071d303629c0beed31978fb2447ea32caaf7656f4a9b8080fdc6d1952a4b7617", - "0x123634611e4dcb0997bcc81f0c6afdccb4b1dd81cec57ee6db7211819993b49b", - "0xebbea8cd68d15c06bb89ad6f7e19db535e17bf59e78b6a84a53b3ad97d2573a0", - "0x412b7fe1f9a30e81a3fccda253aaf3922d611e1e933dfb4911003b6389dcbf65", - "0x31b60ff521a92e30fd7810b70b6f61e24da4369f009dedd2d9439c56f1f2d5ce", - "0x0ef0f84cd6eaa4ed9313265fc61d8dd7daf5c96f7f31127cc9a8eac44837cc22", - "0x2445135fd61f87235bd1aab72893687096967a2b9c580548be2a74dfd809fb86", - "0xfaca5eb580b02b7b54a3115c21155539e437cd21ad4e201b0b4dffa3195b6f43", - "0x0968fb86df334327b14672b2cdfe85e7b51606905fdc3a05a0db2b954fe7ea43", - "0xbc53988f11fa0bbb1c43ef2ff7bb23e4bc537d7f4296fadc5f7d9c910fe5ac00", - "0x2037f5636ac5a997fe5a8f71f3dc6f9965ddba3597b455c7417d1054ad4c3580", - "0xc837e3fa51e643a8783ff425fd4a4d58ec74a6d782daa40d210398ac1877f405", - "0x08ab20e172c449b79ce305849184ee364f66c4f60d9ab876943d6bf75e30c246", - "0x110578694915653de01f07a74b99b3ac9e5326102923b7de5bed1e6d4c6bd7d8", - "0x736f4223a2372f1f5be589a2b050ea33e8cc94badfce83daf73ba0fbf8fb581f", - "0x32972e9c9fb98b96620b9419a946cf33f5b68ed205778f9f4c8a2a179579ca02", - "0xcc14e8337475108ae1226633115fe28700e9c238667820e4c8f6e8a28ff74dd8", - "0x4f1a0f9897f43ec0a954c44601e2bb41da1116d9032cdbba4936da6d40b47ff8", - "0x8e1530bf92e34b1bc0a1dbf20f9b49161f815002b41203b3c8ec00ce4a903d58", - "0x0901143101854314deaf490dafc2b5e3272bdd6e5a0a431c439727a9efe51848", - "0x18ca27c56369d7a3f11a88eaefff5c9a9acd83136b67f0c84877fb7c53fb26c0", - "0x65ebad6b523c8b10cbf53a0e8702f3cda3856dfe2c09f45f740ab9f47b67e3f8", - "0x3b8a1210c97e2565816f80011eabf9520d36ac55ae7b40d5b1a90d56aa0e8d45", - "0xfb15f56b1fdd48b65ba61fd08841df7516979c822d0ef18119664d1e5bb73d63", - "0xf9f7938169addd969c185aa425d10416897852c95e08b0bd5f366e9ad92d6242", - "0x602cc3e58c87d5e98e07aba885c5b87692b4c7448a76f009bdc4abd6141fa790", - "0xe945c49868606b017204f0272a37b3a3e5e16bf4ca4ef24c7b5f97e0867b6775", - "0x3fbefde286dbd17d6f87d3732624b45021bc8ee91a58a6f9fa937c66045e7a6b", - "0x19132f74f6ed69c9c57c5a9061d3b10aae933e752954c3ee0b35f2827c0f4210", - "0x4acc5f1f84e81475689883b0fbbcf745735ef59b5c868d7b3fa25052292a5976", - "0xcab5213ac5a5e40ea3f405d1f01314708baa64e425944b5c0ff0255810b605fb", - "0xb30892d119a465ddf14ebe5666427985152fd7d7c20777a606d50a50a52109ef", - "0x26782e7e5f51b8e78932d438a13840446b8a40bf7f616e485cd1769cc23bc0a8", - "0x582f3b5e5113be3c78da83d650a64f36e9c84a769538ae89b299f561a474c27e", - "0x08a4bc80e056407eb93b6cde527deef627011f3146281ac02c32ce6de2667cfd", - "0x4028336b128bbdbf30a9f5a4f46e551121cd9a7ad1d433ad0b4b36d951a8aac3", - "0x5acebaa71a6f14765e456460ebd1b76706c97c994acf93dedb711217713010a4", - "0x7e7bba439ab8656ca63853bb3714ff63eefa38153c179edde9e1b532d9a032f6", - "0x74d564d753fafd74f72304913cd8984357ee5cd0d2bb27e364248adc77812a3b", - "0xfaae86e17962909b4097a5ff4ea7079a492fa651d953175a36c03a7d2e4e0cfa", - "0x6a444dbed0f88402344f5aead6a2e5b9246687376fff6e6bc15d5565c484b305", - "0xf479016030a59da1b0699bee79a088aac374367cf4035efb87bcf298624bb69d", - "0x4c15b9a757be6a9cc782905297b1ea7373dfb491910a74293e3d224428eedef6", - "0xcb897fb4dfe7677de77f0404e64d9724b6fff2d8e66700d8efcd7cedb9d011b8", - "0x600e102cad5f182fb2c789712db63f55f5fa3ebc7cac677cdd67f976c220c667", - "0x41a18deca8297801782074ec9b27a9ec570199c4a648ed90cb011333383bc05d", - "0xac91842d3f4f50a6c5e7a58901867792ff906022cb13fdfaa246b45e6b09458a", - "0x9699510c10bbc758337177591c2d0163ef404ec8ce8e314cfd73c8db19d819d4", - "0xb448a625cba4e20e1a9e2c88f65a059aadd80c597022b76bc5585180ac0da018", - "0xf3ba217e5fd9deb0d8c4edd307bd18dfef819141865a7d619eae7d0c92961546", - "0xe33e574660c9568b0180b205cde5a8b3c2a7f80565befb4fc9944b3372d26bed", - "0x39c73cc2f2c738cf1c4861c0f128df7b63107228a0d4335e83a7cedc1f503fb8", - "0xd4f609261521c4c44240216bd2aa3bab16fc5412b39944d56b6c4c6255e134bf", - "0xe1518677bd130add527731b6872d5aa59fa0373a856062ba0ba01068ce88c6a9", - "0xfd9657266575e1cf582ca115573b0cb9ec0a6d3b4d018b782a2c8de489f623b9", - "0x09dafd93880a3ed6795860d7799d47f684d726a89e7f47e68641b0c9731cfcea", - "0x8e1539df31abb29cc9efd09742f21e34619fa550c32c81c91af0399570a667c4", - "0xc2acbea05338e323a5ca282621be56161691bffa0852bd5d492c9771fbbde515", - "0xc3924aa297f0456f23afcfb287bd231c45201519cea87802b71523e0d882ceeb", - "0x0f77870d7a8238934de8fbcc89822438e09999db4cc86ac7887032f9bfdfb3fd", - "0x19746fa87ad24d6f39e36793022b548d03b4b97d34e09eabc27f42384975943e", - "0xf502c896a9950e450f76dc77daf301dfb1134119f2fb027087be9a5ded232c68", - "0x88a9157932afb4973408d953dbd4c115d8f345f241d92a113b640174596d1fe7", - "0x1f4d9466faa30dc34cba41379d3891b406e8f1cabf2919a14e3dcba0b8d7296e", - "0x3a7656143811296bc4ebd4da6d8e668cf85baec2c36241fa1e8a5e3e038f6e74", - "0xb72d30ba8fe9041fcf26e74238a41477f22287242868192dd1557a1e76b5b1b9", - "0x6f669597d1d71f6f5b5f9067ea087e28cc9644b641e762648878c7f84adaf3e4", - "0x43403f7e07221a22880e141432b042ddb088e77de3e3ef204d15ea454a9a316d", - "0x9e4617d1c57bc882cee51b2ee8240b216d5b8f8526750bb9c70ac050d31cca1c", - "0xb99e1c2d68d7716d1d0bdf0b87acd3aa8c3fdef01ee10085c339d9418c87e672", - "0x3b1ea702b3bd6638788874b111a2a4c5db0c557f2149b441515aa4efa20a0309", - "0xe7c92f95d0d2a49e019933f627d88f5598a24ae48ed85deed8be699c81cca4b3", - "0x5a0eea5cf28cb4341e5e247652748ca80a852a8c30a355f76971cedc8aa0719d", - "0xb14838455b175680b2ed7e6031c524971e819f27baa888db20ec4ef74455b6a0", - "0x129ecc196d6caad0aa010419e79092856d2bbef910637497b254ecfce12978cc", - "0x63cc5dc9bc8ac6fa744a078cb05e233ce89ab288b5f75843b904c69dda603f5f", - "0x8d466f68f1ea3bb04ad379e8e8b4c49b21ada69e08ae1b1152fe4aa1472405c2", - "0xec34528089706748279d5adc1c57b557d366bbb2769c845beea807600b0a0b95", - "0xcda3fc77337abf8aa097ae96372fa943c083239ca462cba8eeb308c691a24357", - "0x16ff959a37f0850424da85a50adb5befda492e51264b3c67b1ddd9b93a6e8e92", - "0x138c4b9b5b584c117c179dcadf448add3155fdae2984c20f6ac31b65a4e320c6", - "0x7841f8dbd078bb621c3cf52abec3d3a864500ccae14287a1d8e135b0f502af7c", - "0xa1098ed3e4c8469b3dfd8cb590cbc17963b04d38affe2b1d3426da6bff14a6fb", - "0x69a0e0f75ab37c38572693e27f315ad9a96efca6f6b70132a3887b9447078ec1", - "0x4228616bca7dceee33c9c8c1bda5223abe6ede68690ed15ca4d5aa2f8c568c61", - "0x8f2b912d571a48332a83c7b587c2ec905c776d0f3fc81473148f1e2d333dca89", - "0xb6c57d52aac8bbc17ba9e3331bab16259dc74aff6ff3383a2fb07f28c4ec915c", - "0x410a36900c0186aa34dcf5abdb1927d9af9ea6a8d3c8eecd1dcc2106b5a2611f", - "0xa7cd3bb40617c3e0e46768164ea9e1b50a3abb2c43e601353fe0cffad2191c38", - "0x3679837b7cda24d135f565d8c4c90fb9889775c8b22ad3cedbe65b9ae409a8a8", - "0x243526fcd0716e35d26b24fa8857387225e0a1cef1c8761277751e4f6e55ed67", - "0x557bc92e787ccf77f5ac6d8aa85afac3821308cb70dbb2bc0f22a24cd62e79a5", - "0x4097357dfab4c3a3265e339defd202d799a68a2ebd236ae211555ffedfae67fc", - "0xab78e659459a59d7723ff8017307d734351747835f81d0e4a5b5dbbb95add7e4", - "0x1b0a95a9b31d27f877f87d3f202a4bd142a4f632faa614ab537c9b5a4f1587ce", - "0x6533b72e1019c4fdb9144ece3093e91acc1e8bc141b5da9141417583be0f33e4", - "0xce27c1a106345130fd67902a182cb867b2f48551c4070666299c30f779573ad7", - "0x000e79cd097e821d66aead3ef94cc8898264faa774b013e47f521b2dd1bcc264", - "0x210b7bf0618fd4b1fa5f920046006a9f9be602d18cb19fd7798404983e242d81", - "0x896eb7dfedf2b14a7c59f86f9f0050e24f10356f1f44dc933b4773387060eb64", - "0x5585709bf8ac4b63ce4611b62379942eef5c5a243b1d5f0aa295a4bc41d98c8a", - "0x60bb1c8affb555a104ba0e941b7788a4f5e37411b7ee47810e8bb23fcac52436", - "0xa1387e2a41b4ecf7f60625006657ef730fb7828fe7b80def99b708db1f763094", - "0x58cd32fa531b17e4355347212305b16031c44608ff161451d733f77ef27cd457", - "0xd69a43e8ce8cdaae72adc3d5707ade963d83a33d93e220b8aba7e1b8a777cc58", - "0xc8077d1d257d52afb7e8fc5fac5793050adaa7fbbb524d86ac6daca5e348b575", - "0x109dbb9b121d982d55f4cf5f98a73f1d6f8d48539fb3575757b66e914b891d44", - "0xa0d531c0a7777f880582f130e275469c0fffb157cb10b6042360c40dddfe1ef0", - "0xc3da259e5210977890f66981fea488f2bd7fbb946ac29ca3c1abd07f6dc4c52a", - "0x86b8179ac2f43d96a2d74503f9924f28f9caa2c3e7cdc60a81a58d4304ae2768", - "0x3b2b32b4b2543a7d1a644e0ebd8ecb098375e21202bae51d47d255d2d1ab1a47", - "0x7501f81441a362710acb6054c46f05443d0e2f1c49b656f123821dc72a746a38", - "0xc3b8e61ec93002f3fc7bc48838892b739dd1a5f6a14098235925c8604d46ea02", - "0xacdc1fb6aa0dbb3887b41434de084cb9785989535fcc48fa2281497bafd469c7", - "0x832289ffef9cf3053b6086bbbee2c8367ff0be7f5c891be831e19924d94613e8", - "0x8da3a234e0a331eba20e56a6fba40d7cd1157a4d742bdc5d8ee580acdbe29148", - "0xb2c0e3c9b032835cc747eaafb29e484b345ae5215742936d574ddb1fdf7fda58", - "0xe9a511b4fb829457e6ba57753f28d7698e658db1633358d3fa8882d986aa80cf", - "0x2c10dbbfb213e8d124231a68e23d982ba56225bbf085fc38557e3825705976b1", - "0xbf603365158a92d2b61fb0cdd5747938e357e88c02c782f3876074fad940ecda", - "0x9f86441064c7bc377e40b98f279ce38bcbac62240bdf0591645b27fd9175a6ba", - "0xb794b35974d4c2316ee5a56c5e34bf253a05cf0fb2d1f85d401447a679f3547c", - "0x1ca7da1e1e6c8515ff3887f5288de1421f17d73cf8b68123480ecc185ad8937f", - "0x8d5b5f34b43d775b79971a1baa889eb45937f9c278995f3e2ad1268c1d3c2751", - "0x0b7a3becb8e0759586f744cbdb7af141b9186514bc44e566b9f955a917273b8e", - "0x404bea9b91faaf65fd4bb1556e08cad3b23a095bb9a8494af021240d417c60f2", - "0x5650f6dcb640b9e4bc064dc3fd8019007930a5a0372d768022ebe6971db0cfd7", - "0xbe6e7f579859504662f433f56b4aafc1a4b9099e5102c505d24c1a262eaefb1e", - "0x989864b3bc371b0181fd45ea0845b3ae3dfdd8c369e8637b5b4d9c7df3b5e6ce", - "0x33f6c0f0320f82dc4f13896eb2947877f46d8a8281f9dda5ae7eb752b2ad9047", - "0x86b7572aa83291fd2ffa21c360f881a13babc6f36ddbeb3ad2be804057cebdc2", - "0x8a1c13f6b77188447d6c161004d8dbae40927d71bc3b9fc54bbb2ded4a04c663", - "0x59e939e5c71c08d215e73f791c99880f9d0b5501b18d1fa993f6a9cef59bcd5b", - "0x2dfd9cfd2536168f316a4c8f8982832cf2499cf39c3cdd6f70a97850309fea32", - "0x88da00db297f48e35e847b561f9ee59f920b59654dd49f99636f0bc1f1f45781", - "0x60dd105a42c8dce8976464927826a4af14da6871fe50c31b4d2610acb602081a", - "0x548966191d66e18449edc52d2d65aa2b0ebde851ab873c9b56472d51678ccf03", - "0x8d16c253a947b6bcc6a0f3efaf9d081eef00fa2dc858ae20ed67f7485857d1b2", - "0x20bdfab7c921317eae1527da0cf9d90d2b7e1d7f50e31e9b3535ebe2b8c6ae3e", - "0x302df478766f91f7ddfc40fcba19c807203a7ab70296037e0ff3e5871bfdc852", - "0x0fb688c06049b4f8af826d227d228fe183ad9f3bcf62e5b973cce5a0da23d58b", - "0xadedb7e13337974e5ca73f4a8b8b75a69bd78e2b17d42fdd0632eda492708d78", - "0x9725381e1d854ae734beec25a5c7a4936e6ab890be14b886f7721325d5e742a5", - "0xa79b59eb5bbb839bdeb1ea59112c3e0486b069e27197c95c8045523a58ed305e", - "0xe07017f5ee0be6a17a305ac06edcbbab2cacefadd903a2917b76c5e11ea682ca", - "0x999a6246c4fb2d9ca81aafe5bafb8e3c82b1655c788da4a44f54774e63479e54", - "0x00cc5d91f4b07fc68d1fd45363c2d53f7bf2e4e7810e593d0466bc221c4eb8f3", - "0x7f0e7352c18e4a6e4c33bd4a5de50ea814934a3653d3ca6f9a6a0745c4b6f57f", - "0xdb2df5fa08bc94ad1e84d0f8e556dd64a3bd9d2fbbff59293e4bc6caada81622", - "0x6447c05d7dc4f4841ae5d810f49a3889c6b0bee9ec5195c6e889f8b9c0de25ae", - "0xf6e3d4dc0245bf613b9449c0bb378129f8fe665a36b476cf64c1e7272a73fbd1", - "0x720040b98e90d281efd174a93abac57f2ff6da26f76a60c2ae219a3e76b376fc", - "0x715f1e4e6a60b1727e30196b18fcdfeeeebf12331e3f12339e45df37257d432f", - "0x2387ea609b0482b96208ab5f1a560c21973347360ec4e9d619f892fb92e8737c", - "0xa98b62386f4eacc365968597acc2bc1158acda7282c76f41f71389fe9531affb", - "0xd7a927a8388beff9e3c007710c43f66b0aa839f7adb8c0a5ae2486b1c7e29573", - "0xd843264dcac5af1f949eacf5b58ad695c9002a526f12d5dc8d39e0ed6ff1188c", - "0x7bbdc9af7ef11c7bfe753fcf752f55868603b4b3196c6dfa1a00e7190c8f1775", - "0x47b5448a62e86ec0c45d5fc3984d3ca0ba7a5e6608602e5e84f93019eed89d32", - "0x92e001b0c699aa9a8448a73ebdc9ab5ae272b0e1a833214e4da808df9f97eba6", - "0x881aab7fd977013d9e86166acc1992ff377c415d41bca4c3ae94251b437b2f85", - "0x429f0c0d19c054aefb66d378d2ccc7e29669ffe71b07409d6f277cf5791ce156", - "0x68be209d88bd215009ead8feaf952100eaf528ba73b6baf04ae7c3b190698bff", - "0x48e68f65e761a2e9e9fc02876d60bceac4625b7c943dfd8bb7d73d0fe074ec44", - "0x6eeb6ce0899fc3736fc2a9a27f4be5d1828bea5d17d27b0c85752dd6d91ba3e9", - "0x4c486b5a6fc62fd024072e93f0a98b8423b9ae5cff5fe01f4535eb4b8c8cfc92", - "0x6a31b0fc8db8c998f5d38486561310cfd85c7513863ecb2637b635cab53b97d6", - "0xec6fdb483ee04cacf220132daa1b9ae9006524391f7975831919e85eead2166e", - "0xa703934617db422e98f6862458cf6fb523c46e1e54bdea35782f90c84ed2d36b", - "0x0f7c7856b90d80e63d756b4afdce99694f4b7724e6dbb966443fbf161acff6fe", - "0x4b6f557f545daf95b9004dc1e030b2b3e29dc09a6c4b5eaa7e8492a17da61481", - "0xbc22e919fe06caedfac708a3b8f62f9129f76e771a71b09b744db38fe03fd3a8", - "0x7c10fd373b628b3b5488102f37d468ec1f3e2ef031285b1156747cf8679f5d0b", - "0x7a93f44d81e5c6a06936c9da5ecb707b0e6f5facde1a142f982f26383dcf271f", - "0x2a683b279fce3a641bf342ca8c71c8e297b2d09cb933c17326abbe114234d8a8", - "0x464d61675fa98a0375228eff94c3814a5f0d65659b79cf93d77dc4abbcaacba8", - "0xb53b63f419275209c232089f6ae4c8807f2e63cf4ddc2cf795206ae3600fcb47", - "0xf3e551b633e7e618afe1fe5ee53fd8f20b78b7afd20e8e19c490aad66030a3a5", - "0x0bcb3cd9549673a57ae5ff0c92d412a24874ff11020c5eb38f5b686f7b65cf38", - "0x008e5ddc4c8a1cc19728535045bd6c4910f6dd92de75391efe58984452e6d08e", - "0xb344c68e2e70501cfe05b740b1f7eff47330e5d8ee650731a59372e73a02450a", - "0xbdd169f9fb2cdaa9bbc4b7da03e28d22af529b6b7e3f1743d6982578f6d6aad8", - "0x854212000ea89c0648247439433e8ca821cec6c44b2b1c9d972d48c3b85e376c", - "0x55679d61dd61ac0e4dada1d524fa3655713474c53a4ea188cb884a215049b078", - "0x542846f5abff67428e3831167332adcd6c0211c9c3aefbb2f29c5c814583fd7d", - "0x807c69782f16ce537db354121cf6ee437fb81291a337d0b77cee7a7de5573471", - "0x948cd37cd998bef4832bd62ff7b94aabc46b6629d09706545def1794c45dcca9", - "0x9bba5e5818425f62d2ef478d44977447c133dc37059e1387d9631454ea3b899f", - "0x0c17f0d79fdabe535f77df6473120b9d1e72f9345dee3ed94ed99d715e757635", - "0x53692738c355dc38296753a31a22b79a152798fa61be5d86019fb7a8f1fb1046", - "0x2e367f047a031fbf76747f9abf419888cdb2514ab9b7d3058a97e96f241a9042", - "0xb64747ed2d3f922dbf91792656bbd5e2a5a4491d8eb2382c4316f45e037ec864", - "0x054a0b50f58e8fa37ce01d8471d297372742360897e125d83219a5fd87900eeb", - "0x26bb823fa26f0f733b79968819ffe8189b33019370c5b5a1182dc355b193cf88", - "0x99969ddcd8b698e499901c70ea29d216dd215c2cd5b018ed911732d107c11999", - "0x176e811b33b46c80d3f9dcfbd51b30dbf920544d07405102a2209525eca734d8", - "0xe75b6bde6415e1fc9a1e34a71c6f1d957d740982d38adc36f730bb05e994a3ff", - "0xfb6e3359ace0a13a285d97e2d46f7faa013119b6183c4788c1d4f5fd04a1a4aa", - "0x9e7335cdbdc2fd86cf41c2230b855ce50378d40815d9a3297df1f21c8def3b3c", - "0xfe33bfe53b4ca5ab9737c29b0462a95905f84ba86db676da56df4273b75d4545", - "0x59f63ddc97a0e240ab488d842c81de04e0b9920d6b74697680fddc8574a87432", - "0x17acdef0bfc767753c8a6a4ced301374dd29417d2d2c736b3d92e02a56393074", - "0xaff2ae6cc5b9394f32978e44e5d960b94930e2da971a629761a08319392fbd08", - "0x95870448ccfa6f59e8aa0be3f2734fb58e6df98b822bc29477f9b1dd1d6ba646", - "0x23c02a4e9c4471df4553de4fdc82c6037eb7df523e9f898ac1da5dd6485488a3", - "0xce73f43c6edd129339eaff5ee9eaa4484aa7fa6cc7bd396f8a9d7c021ab2b687", - "0x439ac8493df476760c9f80a18936658ba5a3ea9a659b1653ef4c5f2057ffccf1", - "0xade0ff816ec1e24bb08f9ac978258773c6f0deec7fac83d7969533a32ba3b987", - "0x1a02baa6db8e64aa935c838d3078582d61f23870d5b465a96212ea95fa666d8e", - "0x2fb8d73c2f6a876afe358fe0b6d38e7b6d9b8fb98df13f0a36d0725a25b82599", - "0xc0edbad07ebd58dcf1f82374da62e81b7b9ece3313a3a6c942eea6061701e50c", - "0xed15ffad36a7390e4f18eb59dcbbf60c9de42dce55328a9bf3805ef5e30c7d8f", - "0xac4be4feeae8925fcfc679df7cee16d5ecda99889037f97a7c78a3fa7e0a160f", - "0xf22e7fdc91f0c4e663376049bdb106f52153c7ea2316d75c5e5dcedbd6992df2", - "0x5d811cf2f49297a38ac69e40c7d3e5e737c0b097ccd4aea3036ac1a303444ff4", - "0x66e68bd9b5b343802c8f5c40d49a478ac67125714c776ec17eb683a2f9438916", - "0x5a7c6102ce1f938dd08d6a93cace698d4cd295a86dab65153781449fb0504167", - "0xc989321bb12394585bf622f368e4e588b97906249cae4a97979578799a263f61", - "0xdc84659a0db7d0f35d25fd29c96a2f77a174fee3811cf118d3c35fa146c7ada3", - "0x3c69c854311dbf3f001e21957e7293088ab3e4f05f47c2289b5b2eba08a376d6", - "0xae67ead86b267c1aa67bcb99daf2ebc2f6572faa9aecc7c4a37fa587852997f9", - "0x4f1ad2f626abc9956b72a94e64232f25efc73eef2c3f7dc938f866f42258ae36", - "0x74cafcedccd73791e4d244863eddea985e8848fa51551f52f3e7513c2daf8a30", - "0x56f938ec41546b7512cdacc0455b9ca80ee8fc4420690b78b34b0ac3b4bbc6f0", - "0x263a2880d6941b4639e6fc6967b189b6f5f8845af145cf46b1af74eedaf55bbb", - "0xe198d77ea77eb49472e5c18b507969a5979b90587e2ab28026835464ac8701db", - "0x8f2a0301c9f0c20a00f50ba28a6ef7ad36256deebb94761590d9a878b750523c", - "0x18c5605fbf66c824c488d36a74e1fa48ce1609c638533663b5bf9c312a93a80e", - "0x565c3aa28dbb9ff7f042d8c53c05154ac93e6f00f61e6a9174a8d46858ec0a93", - "0x15189008247760b2434bbcd84088c81c6bdb2369eff387a5711ffc136bf2805e", - "0x7f7cefebf424401bf0db9e48c924161ba2d7512cf27713b54b22a5bf81dc25a2", - "0x08cc52f9a650091ef3daa669d91b25575ceca7750e221a62cd4c2de1ef631cbc", - "0x6ecce4aae452935e17b765c53841c106da256d2b9dbdfd5eb1cbf11d552e5356", - "0x8e12e683890c59e203e77a4608237ef595cde946b18030d705fdf70cf00be927", - "0x31b77d6801cc8567a5f27244b6a2f900c80baf2926d66573e58b6fc19e6c73c2", - "0x2012a461bc8daf576e70f6c1e40135ca4f77988b583ca9943e6a67bd6aedb6e3", - "0x50f46536206bceb37062b03b703f87310f577e9c1925642d23f43a8857d8ffbd", - "0xce7721626010691294c34dd375d8ff8147a21fd0866e064cab55f0fd27238f55", - "0x1dec4fd0980dcf226edfb82d2783f906a8f936976e7ea499c2ea98e85e0526c0", - "0x8110364a9887b604bdf6783271b2b5a6b4a67cc20b104f5e6ccb9a51e6125c4b", - "0x5b4f4c8dc46eb7a1e19baaaa523f30079e5503e7507c140dc0ae25f90e426c84", - "0x86efa5f16676bdec7f0c1df26f76c9a3fbbe11365fe45d0df67e9cee2ca60cad", - "0x974795c16d6f6b4a1b37a538b70f7123b83439876f9358b3ed5c90ce92b26990", - "0x4c2431e48a91db252d5122e739239f15fa18abae834bd9106db083632ab4cb62", - "0x4836ad3c62e6650ec7f09a1046d247fbc056bb03ff422fd1ac696afd79e4eee0", - "0xd0cb3ebf762433e2ad93c6f8a39e8cb92eaae13f704c899602e40314db3e0298", - "0xa87b48c1599223e0ef2a9b12a2c8e605f73752a97406fb337e56b8178a888330", - "0x28f6c9136d42412f0067645f1c6aa3f7cbb8555c17d566cdb477b12652f55af3", - "0xc8c911d278a2fed8d9f6bdf4dba7df8fd5252d16ee666fec6cd34af6b7228cfb", - "0x7f7137e81382470536cd3c850a454ce107cbc3a2785090aec0ec4a538626a16c", - "0xc3fed2ad3d7be93b23b23647e9bb7b15bba7acff47cb8f7ec9f441d939107f18", - "0x186dfbc31fdd26956b6d94f2ee42867f86892d6cab198b88b9b58f9d5c619c02", - "0x57c4415af634cdd5c573df5a0efc3c6e34fb1761a19257ad364626e6fbe3b347", - "0x8cd67242053515cd24c6b943fd4a14a8eb9fbfff689621c553678f5d441d82d3", - "0x1c6842a10c204825d19f733624c780241bdbbbdc65293f129b3fea7b09744603", - "0xff56b683816388a2a80dddb66f0d3cd070c631c60a79fac3dcd3741c425dd5cb", - "0x4785f0965de0881c87840185006fdcf1751ed045a7ea6636e6d0b905a176c8b6", - "0x68fcad4b9c66df6b5cd1d80b87dc4f3044866d8574f92576ac10413cc15532e3", - "0xc4dfea902c49b230aadb9593835884b2b1029064d29a630f7149bddb73af6b19", - "0xb7511dc1de274ee7e4838d6dd26cac2ca4d7554a4dca33c2ee00eeeaeae93767", - "0x360d59d25d4130c9a4f1ea61871207982026a61b1e8d2dd28c0bee31d52757db", - "0x67e880c090f01c58ca5538e183038104a73b397cbf893d5982a42abc8a327573", - "0x8597dd0964357b0424a0c3d48fce0b4296f2baa6bb1d0258c3147eb98ed2a037", - "0x6467b688ba1cf942acdd68093fbf24cf73ad1e3463c27a82c90c4be11867b3f1", - "0xcb22594e73d7780e07f7cc1d6b19ce8561b3c8e407df5a56f4b9c06f716a430a", - "0xc3aa17380019027e0aab232147a4f493f6f4d1854952a38e6d5b5c094eb454ea", - "0x2e465a99a151f08e81cb33c6d1f86c92ed98dcc8491b3cc081b31cbdd23bdf3b", - "0x830e95c099d60876151b0ecf521d532d6785d8db34d74dedd79ee2a025023972", - "0xe2aa96e03564756209ff5748aa33c689aa57ea19d89036cafb137f08bcc87799", - "0xac2e2dd7ff3b4f87b93aed1df34e9f1c269bfa279639695727865a10a235b301", - "0xe93753f4a68b39b10c82f821f5d3ee0a671e1a46546719298f715b74f87fcdc3", - "0x118b608f2976c7fa751f0b21692814afae46d77236d53ee6c11c78e9adf9edbe", - "0x4a6fc577f6d0b9389d18d935cc9f16fd367ebc0e477a50c5bcafb1654bcec717", - "0x1c5d7ca8ee5044f80826dac59eb4281d5a1b8ae0f8e87ab9b57d253fbd5ea4b9", - "0x4ec06c6d19b5027b8752b48f5024def394c8a0e42a7abd609c931d8391292564", - "0x227f1e1e6123f2346b8e1fd8ecbbc91f71eae5ae28a32901e052b1a5e03181ba", - "0xf25b9a7c792e76455c0b8f6f3e93e9c01d4e9188e81e7428d7c5f07c698581dd", - "0x096ec8290951c1a707ca5341cb9811bdaed865086e476389de627f3ad588eaab", - "0x54537f76ccff6afbfd6ceade8bc5a5a60b37a8d3a6e35367704d91ca7f6eb7d7", - "0xd16a3d72a8bb0b759b465299d6cab9aa817476897d17f112f16093ed4cadfe39", - "0x83bbc19cbb1292b7a4537c08f3436ab6809d5c504e2f945db861db7b94b53f6d", - "0x5a1daaea20b9f1c90502db70e0d16b3826cc7e79efffad85854d69e65ed7bb31", - "0x706cf14c52a6da8f39e0f6a155d663cf25c64dc0dd9d473b1f4b6a9b431bb827", - "0x23bc842418fd28110548ace0149a1bd1c5365968aea4702d2e028af8c84542ed", - "0x2754644e77d1bc059fbcbc26cdb5af8d88ad715d64c0367948de7bcb5110d1d2", - "0x4131bc1c8bf15df1288874f41095171bb1fc78524eab0fca5231f2efa5d2b0e0", - "0x18b45909ca386002a82c65a532d3b3abd86db6d50ecc1956fdf622f7c6530e0a", - "0x6244ffc00c5cf03d390cee752c7f0d1d4908ed2abba4f0b178a7f7ba643f2e12", - "0xeb8261d9a97ccb00ce6cd41bbc4459b0473547d63bc5dbf17d16694a5ea09ffa", - "0x7ede33387e9edd4bc9ddb25ee0e67c197df4cb2e7ace65da40ff981bc4eb8628", - "0x39c705ffeb12fb95610bb589fc2b425084addc1e6937a5faaddb42cbeca90890", - "0xbf7d8329b3ed418ef85730a2954b48c17b8d046f45ce7b46162487698fdf1b5b", - "0xaa2c7ce8f4bbb0cdd1fe490fdbf29476a89126d201b9bc113a24618c531c9622", - "0xe38112ada8e0d5af0420aa9f4d35c45076428a68ea0d72a91536d63c67f7497d", - "0x2f6b6adb7661b24dc55a1d5e9ffc87ec3ae4040aa0265a9ae3e57e6c0ca58d72", - "0xd3647f33dff1ca5f2ced886c032cde60047e12e1fc616439c14f895fb548522d", - "0xe4620f60f9032268b753075db2c22ee7ac16d8bc88cd06bd359b32e113012567", - "0x254391803545cd4a1535041f1dd5a559a3b9c5b0914200ea384adb8a6e830a1b", - "0x2997006eda5d2e391ad0e23b8fc8c279648a15c46757b2f6da0a26aeaff45a73", - "0x6a31221113ba50d4d2208d82bc7d7a24c8dbcbd91454cf0a59bfa6644596903c", - "0x2b5c3bbbfef813f8de20f6069c0a09f987aac6788699353dd3af27c8d4dc8e8d", - "0x2fbebeab188140d45db2bc051daa896bd268f784d8f026aeeab57d51ef3f597b", - "0xeb498e1efa69801ca17a286e13608590a3dd0dc2a9507b0fc9bf52997f09e015", - "0xb00c8fadb7815a83faf47512e4f2e4ec1b7ab363a20ac1d2335950eba2835b1f", - "0x4944a082a7b17f88957f80dbb64a337ee62d5deec61e0a3ef32adeb6e9ef6366", - "0x6c18abcac3eab4f269f3589e0a4b404c5c8cb81499eb1fa9eb72c534a81ee7f0", - "0xb8efb3078dd1770d81728213a8ac037e27c438aef3648f6e176ca9ffcc017515", - "0x3289634879d9b7a29351bddbbb6edf09f0c03feaa0ab3dd169c55cb16adc57d1", - "0x4321b7a713898553346db335661db57ebe877df3890ecdafe7b9fbd2ad3704ec", - "0xc143229e840b1dce19546ba80654725336f6940121b4e69e2d240facd962c071", - "0x2ef474d215e87dd9e97a2ea9dc6eb4428b805c423856e77169888f1b6bb5b079", - "0xd350a5a27faf52e48431375f23136db50492f19d03477c6ef8055f22745b5a45", - "0xef18832a8abfc10a9c0b10cf2946f2831acc610acd6b3650a046ffe45c669dd3", - "0xd1efc93d1b0f8880904b6aec3315bbb18ac6c88c9a790aece5479d5ee76632df", - "0x1459b3c101e6d1a4540031a5da50e93427774a21166d01d5439984b08d834377", - "0x6d49888ab094f3a4d161e35b6de579455abb627e006de79d384041808a6790b2", - "0x047de2e4bceb83a90df84ec40e16e4c9e9c9c12491c888361b2f0d43145d72a9", - "0x6929fdf6b48c5af7d169860c26856eeb50c37b1dcd154b2b7342e9595a85e9e0", - "0x08fc80ff0f188308a072dd11685c4c9ac1ec7c5a35ec819e191d97f9a24f75e3", - "0x47a030c03e6ecd6dde93952d06aa57b4159d0c7b0f5941dac1eda96faeab077a", - "0x9bfa2d4bdd687a79549ec28ac73383f8611bc5cd7e51f57258e8142cebc30fd4", - "0x8f0436d3cefe944e0f38449978561592dca47ac0507fa0c07d1f81beaf7f692b", - "0x168b5aad11cb09e02e0d6c9cd5c7090c554f0d0986cd31453ec728ccbdcfbdd2", - "0x84f183e0d04013eb58a55886c5b48cf1337a3109802594bd215f798c7a61261f", - "0x39ae977d7cfeefd57447def40052e2e8955995b957d70669672d21e42b190a8f", - "0xf16c96c241f48843b45b0c947699d5916b66061c965e2249a595de26b38e35bf", - "0x04c17267062e6ae15fbe943f7d9afb9707a979466c96f1236166feaa8d2c3bda", - "0x3868f2840b3e946ccd5f6af5a3afc15a6fafb27581acf1682cbf81eeb927a34b", - "0xd1e3ba0bd87f1e5b2f85c47521393d321925aec1a123118b2a06dca37a79bf0f", - "0x5172ff7d80669807c6d801d10c5a05b1daab6df2986779d439472a25d561d6ba", - "0xcadd13ab20d5f8abdb7ab57d7e3b3dff13294295d19b218bd59ae211dcc9f36b", - "0xe41370e6078860055af37dda5971bb9bf2ee34e7069cd3194de4874132f88a2c", - "0x461eddf926e0ea86e6b383e154576d6248af3756eb936a0639b2afb5c664d59f", - "0x7448ad04a839cf8723416bb117c7f4834c461b33bf22ea753ea61d7dbe716398", - "0xf75170e49a7e46d78fa8555c73aab63cf0f0c49e3d7a3e0e2bb5ba49b3831eea", - "0x67d1610cdcfde03c10055df757f0ebcb99c82ffc437d3b1b79a9504c8901f13a", - "0x414eac8ee6f962630fee4a9520e80a603efb97712df0ae629e495c7f37a4f2f0", - "0xf6f866926b481bcb549bf4ad4f4a2bc6c6395e7f00fdc2ff6eb75c8cf9ca9ae4", - "0xee12a097ed1652b7c75beda9415e1bdd2d6be3c83943838c430a43958ce12513", - "0x4e422ea575b93d06d18b992894cccc4c86f0c021b196273c2182bebe21ae33a1", - "0x9dce37a6198c02e1e38e2a78efba593c22e698efce7905563afecc00a0180a67", - "0xc90c289a93badcf6ba66cf57cdbeab5de68dddc9f9936505dfa601b8b15d6a96", - "0x22bdfc5e914e0d6133c8635da275e309cf4cbcaee5311e7f75ebeff86016b6ab", - "0xc22f4c254d27abe9d40aff2021797c29c3a9cdf72288f31799b3356857e6e186", - "0x9d2c7c155d5a08470cff43a513b61aedc48be91a23ba644c344852996c3e6fa5", - "0xd31eb8b5081bef3c6b7d9e9ab5a89d654a5ea32530fbf93bbb688276ec26d276", - "0x392f93800a9f1397ee7b5687bdc53b3827a870a9dcb25d21b4c711d2771f2fd4", - "0x31db066594ad41c6ae9fc906d2d4ca408cdab26f29f6e11e28009619ae0965c5", - "0x3527e882cf075093d29bbd62234c3ce2e3a3f6975f9959a442a1699a24863f8f", - "0x41a1d565a0862bd6f58e66592c5fa9308571909b38cf19035787a02f2030adf3", - "0xf401735a02099a7cea6acc873ea170550f42ddbcb3c511bd760273819d14a81f", - "0x43e0ee63875a08a864978a1152a58faba856d0de375e985354cf6fd0ff69c057", - "0x05f1712732382006bdefd429df836aa2ad4c0cf2aad98d6711d84a8bf6a86457", - "0x7102412851bff05aceabb4ffeb9e3500dab145e47b1fc164875cca1cbf78398c", - "0x6785e405d5ffd9c3b00981e9e9648d40cf14af982043a98ff9cd93a95610c4b1", - "0xbb853eb11a4d79ea4d0a7734d79c2ada0c1c5222460207001cb86503a360a336", - "0x75a142b9b3d21bc32d474bb02800d9780af0def0ccbfb0ae39d212d775ddd386", - "0x4c09e3d07460761dd0fdc568acb3b953e315f188b24060bc65a01e7ab84d93e2", - "0x54121ebe4f99ce9ef752e41ae2d6dd06070c44922d71ee509797828fe0ab7192", - "0x941036caef35f47c2e0d204edcb468f8a38090c356428178353281e08ced6434", - "0xe3a12f69bdd71c85731baa47b227a03ee86c59ba197e31898d76a3da767c696d", - "0x198f7dd094f758f6c84581c0fd73044fbd0bd76f4341ff66d5e57e583af195e2", - "0x0b97d6ae2902a3d4c6878aa929aad11abe0254f2d48c0ba381cf753ee708b466", - "0xef336f374c5a225939b288ce95e0c1cae2027ce236156834e6511d1c62cf809a", - "0xbe314df0c58825b04aa5d6c2b3fafe0cb40a4f85b6b063842c1eb3b6e57b493a", - "0x8e0a43f5a2d5010be9598fff3dd1f74bc29be6132b45bd76add6c0d0ea73e4b9", - "0x44ab9907d09df3599ab57314462e3a3c9c96ad2e79320e3c02bc621ddb8b45d5", - "0x19b08b926f44079710049c631793d11cf4f16063ef7678ceea35e2832824cf01", - "0xf0583addc5c9acc9052494042ac9bdfb4af7b8abf6f2fe74ab52338bcac92abc", - "0x8c09477b0843cc63636d9dcbd02f82b86231d58f1cda90568d3a8a94a83c0288", - "0xd52d36880b3d66bfed13c01a862521f41d69a86fa82128bbc1e0a1103d4c9064", - "0xe8e3cececae0573329783434e7054ee235c2d696d7a9886f38a0cac985c0490b", - "0xf473ebbbf10fa24e5b69d41051f7b413a5112aa03b7d224a9f93a552025d36ff", - "0x1b8c35df755c3268a58913ded58615493ca8e74e5bfb21357c9ce06f23c84b5b", - "0xa72dd6a23df8df0b6ed7f162928632a3aa76d5c31a27ad1f3f8409f47550f533", - "0xaff1873033f6eb405113365db615b57f5856619f4a7aee743f9d6f7fe84d4b9a", - "0xd6b243bd0f7aef93957ba7593ef5cdedfda6039a4db66f717ca404f88e6e8c88", - "0xf61a8948f9d2d5f0e847c533260b90b5cefd0c432e2ad38f2f958bf514922fdd", - "0xff98924e701d17b2ab96555543535f0becfd7a528dacc827ba84176972153574", - "0x9aaf83d167ba1097c5b97973e548199166138f99293b43abf41e6fd472806b94", - "0x926ab6fbea17e13e07caf13f03c4a321e1402316055001cfc738c7536b1940c0", - "0x5e0e5f2183201db12111029f703a06a2683d4c6a1878d5e862b734e3f4bf02e1", - "0x9fc0c71959624875fbac0d861510f4ee8cc59e27a8fac1165657c058c71bf1bd", - "0x74846f6d509b071715a01a4f86cf93a8380ac8c466a0402f65e19da32bfe3aa9", - "0x000b1d3a7adc2d7654cc6a13a5d4afab2d58ea1874e4d266027f7e3f379591e5", - "0x6e28d7062323bb4817c220b2d1f142da6b6ae43e021d3f51739a6f5b6f60ccd7", - "0x6b1e539275da923e35068eb3a378da1c58d6bbfbaff2445378e7439d6177d22e", - "0x01a5ea09722078172808dea23d42c5aa074540bb9e589d17ae0cb59284cd5a4a", - "0x32e53cab2f37d1bda906fae7449d23b2fa69b0326eee0f1481301966cf204fc3", - "0x0489ae94deacbecd5edc16fafd0822d4f4cca6e4f2d7bae588846fad017f3de8", - "0xfda4309b57951890fff3e07a93820f880094ce4c927e4f16e2bd152240eefc70", - "0xb7b3d2f94ec5d45092c543d96caa0ed20c896874f7644b2263e2936a54054aeb", - "0x3ba5ea7b9390ce37ccfed6b32eb9c5af5a77818105b0317c1d29c0f6e94a901c", - "0x99e1827ba24fce1860fddf2d7fade56f35a48d165161d2f4f6dac92c1d0fee8e", - "0x16bec1a80d5e5a6e827eafcb7dbff670a3b3331babd43301b124f392cfa7404e", - "0x1fea97657f1b7af6586111a081b4b00ba1f6f4d1f229ab276f5acf6b15278e8a", - "0x1814cec9b1c2edf43e3236fc1a1785237a091b64860e863ff5a9cc91ab43dad0", - "0x4c15afc5573e70608a72d03c9f38e61f52e41697f33d50a6de855cbe9d8adb22", - "0x739704386e447efc6e8f6dffbf9bf505675bb1c411a90f5a5b3b83dba718f9ef", - "0xa5d9a9f3ab6816933763ae264fcc32890a8ab588e1720ed807d52b5128e098a7", - "0xbc73915c1657f69d9dec208843d00d8e3b931be16d29ab5b0615541e414b1177", - "0x0a1d5d05d855c44f4b9b0604bc3e8c1f39bf98b686b93329c7eb5d684d3def4a", - "0x6b4cc3632823719a2db7f97a533d1cfa76316fd09cfe77353f47f97490392bdb", - "0x057d200b707de2f6dea7d8e804424fac8fd4b8259c77e0fbcd32e31f30fb6668", - "0x8a309f5da2e2e5b585bc451dbd1f6ed9b2b6da1435aef886ffe382a96fb18c0a", - "0x216fb50ca3b72f41a03e57bc8a098207f7aad442e68ee5220ab716e226c38b22", - "0x7203031465c73bfc14520d66220c7948bc870760da704fa4866b1c3b2178a84c", - "0x1c16804920ba326d5d560ad8427dd63638d268b715b92ff70bfa513f1cb811f8", - "0x1b65d7d85f4400f484faf261c6acb4c572e3de3b21a772edcd44de5ac5ede3e5", - "0x41fd00de2a7219b8e9e50a578f968bfe3dad8ac118977da7f3f9014afe6ed528", - "0x1193980128e8444cccf6570940b6ed96d6cb84ed3d295522ce0d5dbb6f5efbc4", - "0xce5f9cbb104bc55d59e6a46f49c26a956bf6aecc72acc3dd33f73bb9ecfc3b7a", - "0x5078e11dddadc7f8666a92678568c0df7e5717edfa1715767887fe64b498050a", - "0xb2bc143ba83a5510642de6f5c188ca3e532a566cefc85fdd40f7d41105485d1f", - "0xa0ace5a238c47a71652bb5fd5dd74701fcf083959251c39d95484ef7fdf0203c", - "0x7a99146ebe30477990f8ebd7781f5e4e613135663b07aae66f644f28f1613bbf", - "0x3f3b48625ada1b4d06ae9dbf1850d062efc00298a8892e55db54525e884b09de", - "0xca61b81af1ae724c7a96a407b235ebf4c2e541cbffa7ead81add29c990f24cd0", - "0x1a9600926bbc903f87751504ff1b06a86fd839ab2737ab57cfc72f83d6573378", - "0x98b1322dfb85167a8029d2e0409ab7ed8998b2b57fc2322a7660d5575aecab94", - "0x4dff31bda99a6a0c14af8b4504e920033c28bee86949c1ac6f31209ca3d328f0", - "0x9b0be4e5a57853b11e66f8c5c518de0aa9963b7cf5da5269cdeff1c791cdd569", - "0xb187b2a0aa947cb169e1ab49dbc83a8011b70c6563510a3bc83eab82f85e4645", - "0x6e19072361f6ae03cb9960c013b6605a91ea052aede290016cb1cd57996d5b7c", - "0x2eb96aae2bfb9ecec13d4f966376ea273b6dd131ebff85c0a412870490918a77", - "0xc2f5f732793714f7796ae13b34caa7271705b71dfa6fd3c05339136a8e9130ec", - "0xbaf6e1a6308cb296c95d5e8cba9bd3e2e4fe3a37fb6535df5bddffa5db62953b", - "0xd5178c769f95ca086166b926bab1f70590a0fbf2261415cb90d7a268762c3a9d", - "0x63c9586c3e590f521edfcd504041c38f24a8e854974648d0539f60ea72850fcb", - "0xeb9208f055cb3276b03a0b69b0bcc10c11e2a71b7c13fbe861ffb71e9dc265cc", - "0x8ebcf3753dd515fb08bbac5040703cd23772dbb0984ea12dbd9a430fe54bc619", - "0xd017fe9e0b5719f925536fee65a10c7243102ec4a7e6d50ebcd0e63847e2e842", - "0xf6a688195992961b66ed8b0134203e4623ee5e378ee4072da8263042aee6b352", - "0x54264173783c6739730974454f194250e5949cd4a2c8fa4b38283b1788d378a1", - "0x2d3313f5196a6fffd61e22b1cb5c1aaa554aa84980ba2d1caf5070700edbcd90", - "0x3e13bf40c11a9f380a6d298a38fc277445d5ea478b6e5b829be1a98274f10b42", - "0x4163361bd433f5ff49789468c0717bbf430140b5085a43eea1b5401bd70d0c68", - "0x0e2ba3b3dcb56d21f4cf657c36cfa32a5fbb556b79cb783e880793ede88e1587", - "0xdf5b6113931c6ac18648a78dda782f02f8effccbc9d514103c12ebbcb9d8293e", - "0x4d28ad7b10d7f8bd8eda839b25c6df172091391db2f02deaf9fd8f3e0102e365", - "0x142d6665bb5cf064c4f2db1b4e30330b740545622fdfa7d2a97052d21eb42daf", - "0x07c692df427b84b309a0521a72ccda8484af324029406bb25f27c299bded8da2", - "0x99be01ccbda270f851dff8309cfce33c5642d135d75b72256957df3646c23c46", - "0x9ee5eee7d0617dab4fa4b7284cf98e97807e2c65c13aae6254bda63d9232f91a", - "0xa5b57af9489676aac1454e5e24a6de88e6c2b36aee5f26a125233a95679f6ffd", - "0x386c450d2b24582769ad8549c79e7e212af082fae9df4fb8e938c82c9e47af51", - "0xe913ad2b4ca5103d24b42becc0051a028fde7ffb891c84d77958bf294e686b8a", - "0xd08b2df40e95a27e21188712b92ce6016e45d1ca8dc68b9168f3b0f722017bea", - "0x1169d69a359d9f7114238f6f9f34fa61db1399bff1cb763fbb6f3f87a654a6c1", - "0x351f11ea01fffaf2e4da16b78872a74ff22a4a1d3c6ad5416d21a209f4a718f4", - "0x46b3b58c7dad05a9db61f69cd3f9e0f926a6e9d3710a2433b5f8152371751823", - "0x2f5e696c904e68c09468f5514831912ab202adea4b0ddd3eea6d46ac2aa43446", - "0xe6d547cdbb2ccc845c8a8412882cad142b09d53d43814aeee6a55f7676485fd1", - "0x881a4f56ddb65368a8bc96c0a81e37088649016ead7682f2a05478282b829b7c", - "0x3773ef5c4af9f0dce35721474e31288ae14262dac328d5c2a44ca257ee71db4a", - "0xc8986d77632b3e773efff2feb07a98bcb53866139233a357959de4d0f216fbdf", - "0xc390abfb8cfcfcb942ff1b1bc503ff0bbc67e7593ef414721f3c0ce929eda1a0", - "0x50288c1e9007a2ac5caba696fb354b8fd663f6d712ffe302090cf5aae16a9b47", - "0x8246a3aa5a4835a872baf03fefcd1772402154c837eb6f6a788c595fa4d4bceb", - "0x5f56b6e3a061cd933fdde779e145d71960190539fabf7db1cd279eaadd73871b", - "0xbd972befc1f97187cb90ceac34bc0491a3ccd098bc698358e6374223eca1d724", - "0x0ffdaabb5dcb1f3607ba91370ba9918809ac44d488b02c3edb19d9f0b6955384", - "0x6fe59edf6d8fb20afe4b93b12335b82ba70f76fad094c627af0d925bd4199347", - "0x468067b58ba553ef267217469dad7a37eec007513a5310b20f5dae21f980d191", - "0x6f5d3864cab4e72548feb1413907a153187c0f3ae495933ba477f5d95d4a5088", - "0xe1c481892afa48abd31d0875781c1fca65d22aa527b6de87fccd3152bf62ddc6", - "0x70208f57edc221cce58084fc3bfe64c9799b103a64c15e5ba124473022e87ff2", - "0x99e577af847a8b58726414a842c82c152c55094bbf770b9bd9941883b5b9d521", - "0x7e1a5cf44f006020f31646e629d4a2cbff7ddcf749a355ef6bc77dd3acb0ba3d", - "0x56bc61050b27d0d1ecd2c402c23daf28239b546695de11402fe1f40a9ab204b2", - "0xdf3421f5bd2a77ba6e6c8aa34b34dd688c5907bfc8d93d668b3a2afd1658aa27", - "0x8d0d621436cb6ff4ab3b9b74bdeccfa8004011f801e18c50db57da1ed512f110", - "0xcbe9acd428aa0aefc9553948254541ea19b8a946fd8c41b8aa459faf54f84d19", - "0x36368e2f53d4bc00ce6d2e6e4ee6a24f2951109ec4e10ecb0efd4e8c6ed09606", - "0x986723f87eec11d507d326664a9da484f2a51d9e32d4cbdc7291593cb5fcb0e6", - "0xc79edddc3767bbf120a27107539f61bc8708d1c56cf3fcf2a1a6070b2c95e1af", - "0x86d52eb2fcd43279737670e812ce4ed215ccd9c79bcb1f1c2b3ed611d5e0e11f", - "0x36364a121b0f86bf46e7a669186df228839b650341dac0a52be214f991ee0462", - "0xa41eff36fb29742c7e56e3622410871648a20c1af346eea1bd109b642eabb264", - "0x8023f7728f6d027e33b2e0765c05c7da25c0fac40d5df4d466e6f2bc7dd1fd92", - "0xf3921f10e2efda27c5b8b459f0a4054490856dc024c45f980d463dfd50abe7a2", - "0xc091201fba2fa8bcc402f9816a2ee24668ea842414ca259ee50a138d352f10e7", - "0xc1a3d71c10860e14afaf83dbe4e8fd221d024ce410c4c395c1c0f4da4784ac82", - "0x364ba9f6f645a68a4c2e972c9cda468a5e962fa6601789a7090e88aafa4ef641", - "0xa3028b2350b2bf0a79c8384126b76e3de009f70b00717ce3c3c4aacd22f7a09a", - "0xa45de2e04250ad9eb13804104510cbf4e844b05291240ced4f2e31954b19df08", - "0x1e31ae63bdba13de9d1487ce1baab93d2cf8ffacb177412425b1e074dac8515a", - "0x7b4fb3f7dae80534b3ad7dd7ed0cb25813e9472da67634b7fe38a2ae4de6a5ad", - "0xf07f5e7d394f669d6c36341db8c0ee285f57490bfe610f8182de35f811bc043d", - "0x01b3279dc6b9fd492155e9647cc99c98773486f69eb8f255822001fe9fcfeaeb", - "0x14909fb2b40ef309d6525e776884c90e6b36eee9f27ed7770ec89eb180f0fd90", - "0xa88d68444485af65267e315b5766691ac4c93b229f315596f32c00b0589525f5", - "0xbf948d401a64266fc5e0a0b5e32cfa9b357c313f60deac137bd04ca13913877c", - "0xc483c1021f43bcd615334adc07828c091f1b65bf4ff66e7d2e9242307d42551a", - "0x0833c9541c6de0d3694197520402811b3daa87941fa2b313d47e0389688aee5e", - "0x3e62de29e9dc9b4bbbeb6b2517b964d638882129d8a69167282d619747563d4c", - "0xe17a557a2746fef006ce09cfe6ff9808b0db155cdd89063cd7e87dd319b48eeb", - "0x5107efdde4c04692d0463421c28faee9e374e536ddeeafe1c82b0ee95ac661e5", - "0x69478bd07fb306d6a45797cc1c7dff9a9baf816a723cb35caf3492db256cef16", - "0xc46a2985a72cd12a1f15bc58b79afe86c8717492c3430ca244d9cc3d8a112fd0", - "0xda7783054f92e09bb7ae297a8f0c93ae28526b5c3dea08bf2ad34cdb503571da", - "0x331c877c9bbe1ed1d3f719db2737b25c6d98ae3e832d0b41fe8eb24b678542b5", - "0x2b7afb862c8d49e1dd7656c9e4bd43ef3f2f77ea9fb6bcd432840a0356a0ed87", - "0x764b571be7c608f9f2de5d53dc6612b6223d75db37925f4b3a29ef9546afb5be", - "0xf8be6fcd1e336f2749f51e9ac0ac7260e991ed2d2b8ebd7770bad2a522dc7e65", - "0xdab6e0db7bcc8341d1a5414f78ce5c0ce7629b0a572bb9bb02d87be540bef279", - "0x5e7dcf06b6dd84f8c45c17e4df670716d98d946c465cbc1469c5509d32cf5be0", - "0x152a6e3e34aba601a8a6f3889bb06c94e2fd85dde795fd0d275e8c827d0691c6", - "0xd9a809b50ea823539bae8371b81ef5a618bbc98dce372adc55c2e907b071b8c4", - "0xa784293620ba294fde92333d42ced76af6279221dbdda763e8b432e67a61d6a1", - "0x720e1d02a6f416b36399e8bf3fb7114d4cb44cd4def46d1c4c311d06bd62ceb8", - "0xdf9d159c28173e2ade642f7a5009cdf316ec78c11fd3e0f60cb5e84462709aaf", - "0xeac39869f0df87eacd462bc0c1fc866cabc647db1cf36ab8210d832446b1753d", - "0xda98d7e88550a672acb3e921278ee6e6ebffc3537f87bf2b8eea897bc439ab69", - "0x90730c148cb34c10edae1301f65f7c2b622c525d2b5e1ca9acbb2f8493606124", - "0x38a96b3faf062ceefdec463e88e67d202e4c7857227080f583fed156e74b9211", - "0x00677cc482ccd7bdab6006674e6fb5d206db7b9af4a18417fd8d2beae76c71ed", - "0x53ce9788e0fcc3e3d1be86effea30079ce64d65c1f5389ed8efa9d9451c209e9", - "0x95435e7a61982c289583c3497b3e8d1c7446ce7b016ca1b93f323bd468a6144b", - "0x7df1bb66f65418fd3f623298e960611c03a11cfdb96259b26aea88070c518fa7", - "0xa19418676012e58f42e06741066abfccff2e768c0d0a9532f2026ced5205efe3", - "0x59f8cd10446ba237f286fc992a37b0d52ab92b22b5a32a44f3604ae3ea142471", - "0xcde90f91577b4eb9aa11d155fbf46abb66a18bbd92e48b2c5db7a9892a8c0cd4", - "0xa1f15bb33372eaee3f90ee9c14364254c67028b1172d0603d04de6c30349ca71", - "0xe9f0f38dbed75372904e7275d0a55631898b6e8ad338906d9346f05d041b00e0", - "0x5edb8565893188092d66a0fe4a3af1d81ec1f3c36a5dfbef4f8bb74daf929306", - "0x736709f1a21c888ebe0d8844fae6105b835a9302c2007c8b8bd90ec9b2567b79", - "0xfc6af0bbc38561377750eb69081483df99c35b76c50ad411631bda3fe7daa349", - "0x54e4fcb5c4ec8b39f12ca8f52f12fd076dff76905f0b5d2e3d138e368eae8da0", - "0x996213174cd9b926ad2fad8d39ac43d359f1afb2a64df77fb8dcbc0a2986251b", - "0x6e91f2a084b87227b16850adb0aa6a48db1cd2def8181316171fb83ee924fd9d", - "0x3ff0b0ba0ba01594508ea05cf8eba196873b7996f5f24b8a3c22b536dafd6608", - "0xcdc206ffc56ef75b6959eb5445faf59cd74a467324782634e7714800f112e7a6", - "0x706715ce7cd424bf247ba07b3a931b0815565a14e1915e701a6bc4c3569e3f25", - "0x8837c325168f4ac5a3c0854bc9fbd0f3867353911517d701a08522cff9b28f45", - "0x57633cb4cdbc8574b0ad08cb99a79dfa1e9eca2c140417446170fbfe947fb286", - "0xb27af713338452c97f3eabfca09f7082918b5c3a08cfecd41e9a7ebca3886dbc", - "0xcece03eeb5684beb21bcc1a98e8c5ce3eb54f476cbe03f25da36c4f4fc9dbe8b", - "0x535b5bae889e8851585d7c1a4665c145a125d038813cf09536ccc1903648c905", - "0x4a0d4558a2dccb95216d741d5c0c27abdf42741a90ade08da66bf3e42bd2c890", - "0x66873748a8f2578005412e9a4735090360cb577a5130ce14ed03c3d932f57979", - "0xdadcbbf9328a21d34d4b34a5e926c96d4a0cc4b000b8de028644ee7a206be497", - "0x425e98f31250b8d5b30ee2edb09378ef9956de7890d69c738f6333aca5018e6d", - "0x4796893c4ee589aecc1cb5c402bb1f844a9265fdbbd4344de413b96a54e7eb08", - "0xd71b61f1c6f2cb24e35ac83eb5c9e6b5d6daa68b7286f3479fc1e11ac0c41571", - "0xee5384cda1377490a836ff4aaff51b82da429a25809c275912ca4864e9dfc122", - "0x539fd1f60f2d989d524cba763d75f67d6e48833bfac254b4324e3524f3cdf02e", - "0x71b56cabe7ff3f632f08898c677cd957ebeb7d21001c6078a1b55063c2771d3c", - "0xb9ffee36d9b31c41af39f8d645aefa4ebdae48504504c347eed472fbcb344014", - "0xe56f5abb5d875ce5cbf2e8c5ac2cf411bf019cfd028320782ed9799343d14833", - "0x70577c9821f82ce25f3c4d0d4bebaaff42a6b310bec46017b86df69bc4dbf2b3", - "0xa61d296d7e0f48fe5aee2c9e056ea0148fd97bee82ce3712e499ea8831c581d0", - "0xa324c05ea6675a448d4931f59bd39fd43b90dd5a9f1eeb4d023119de0dd32f12", - "0x7dbee82e43d805d6a6bee3b9a70bfc927536865705ecc6e4ab1ac8061433bf48", - "0xc062ca0e8f83649693ae5aa5b0b85ae41fbfa0e2cf9c3525118300cf8a771dbf", - "0xe294ecec43538bbcb29fe72d003f1493db7cc4fc0c54eb96c3119c572941ca5f", - "0xb87363fdcf8b64269f5ff35829fea7607ab47ddc09a8f578bf2868edcaf57641", - "0xcbf4a7b5300cddaf09611baa0a5c60cb12dea7766ef1a815968fa6cdcb0edeff", - "0x1ea4d193adeb12bc50607fc0fdc25c1aca43d97b74dcdd33cc53e206f846ab07", - "0x3d3c830a16e2422755b8beaf4fa55c8b290297d113e687d9e6641a9d4965888a", - "0x5b4038f6c8ae5d810caa842a9086a80dc2e33b04817fa36ead553d6a80d8f153", - "0x7f380231c3a6cbd31f195a5decc89f5c6aba16ece2b42da06b1bd2ac1d45eac7", - "0x190239fd32c27e4b267c48deac962f872ce190bf7718baf7913281ec9691deec", - "0xe58df321ac6ed705ad3bc8a2208e5eef7c5f6c0b94e3f71b6925f8a2687b0770", - "0x9de481bd70ae4f26539439c7bfc857db9e367b4ae2ebc56710f9261ee8d98118", - "0x30ebb04d674a5063ed539dc73d31c4e7c414074d102f022388548b7058fc3781", - "0x5992f81ad280f18a3f87f65688fba05fcdfb56603892c7a88e77ff8c2cbc32b9", - "0x25abc5275f862e48815073b9fe3c4f15d47bfedd9005f43a277e62f8224449b2", - "0xa3ad68a3db617e4b1c512c921b98c9116ce36b5a9107d566fe479c84a9ce7622", - "0x6abb1fd095cd271a4aa6e26dbd526d75d8f836ee90905c6a5f667a061442f4be", - "0xb843340f70a5ffba65460d6ed959c03bb3d11a5d897c2d98e148645ed7d3ba4e", - "0x8ec990099c79a38d51ee78975011ab30cae174db7a17ceba392a5cef24fd878e", - "0xb1b6ae9cee08973e448abf09eea43b92d0eeccdfef25e0471c20827cdf43a759", - "0x8aaeb4141887b7ed39ea1ecb0415b95215133ac9ebdcbbe244f0f8608ed07e22", - "0x5fefc0cc93aba8d5832edb2f20e556b00dc3c0a62133a30169fbaf345e028fc2", - "0x36eac0aa2192f5ed51e062b9bfbe16f9e4e77ec1fd02d5346e4efec8ed1a55a3", - "0x70b543c45187b8361bcc5d57a182eef1246e8ce3a57b3d9c9f2fb5bbeb8ad7cd", - "0xa869e91844a8dcbc323426f53a87ea7ee737d05b7da44d27ebe5e9dd1bd68c94", - "0x4383733b62da92ca95dde42f5912461d58cc7b6e02d4886cbb1633e7c4e91938", - "0xa7e79ebca20b363568340fa3d292d099176023b650bbf5108112a3a45a9386e5", - "0x6f47f6ef09cca3ea0d758701380cc8ecd4a9caabc78c71cee20b12f600166c44", - "0xdba2c0a135178a8714d295e1921be53ec23184e933c0e872dbd2c73ce1c65167", - "0xd441973ccfef8cb6bdb5a385d6e18780268544cf2413a3104608f23de4bda477", - "0x310f2b843c19ee61ac705586647ba11b30cafc0e761fb5cd853df079e3232ae2", - "0x9cc003fffe6c8718710bef9356432e2102c2cbfe783e02e5b2ddad299130b553", - "0x4e8d34c5bf52a6aadc59441b9583976fa619aab95ede59057cb2cf99bce5c1b0", - "0x967a05f47e2884cc7d9a12c1626338cd818b1cec458af9e3df5490373adaaed9", - "0xf505cdb536cfe06c0399e9a81d1d70d13c716834ea3593d1565f6357a3ca569f", - "0x7507645edd82b46de060ad0725bf4d987598242d9167df8e842a2231828ec1fe", - "0x3cf03c8de7182a733f4d159721b14dedacc6f042309e3ebfccef049e2c5020f2", - "0x271a063eaa45d12fda3b36e8941db8ffb6e3312cdccdf1eac587f7f812500266", - "0x5b8159c437bbd7fab286c205a922ddb46d2b36ce9fe026ec8c2a8fe32b1dd058", - "0x5803edfa4c5fd7afdff7d93abdfeef5d4b24ef381ef44375c6c45a14267661d4", - "0xa8bcb46a21f3aab34fd0023093214739ed9cb31c9436b9ea29cff49668ccfef1", - "0xfb1b3d562741a4c053f90076fb98f0de53d022dec82b3d022d05559fae297fbe", - "0x9a513379bf4d22593cafa4c76872404448d5c71f0fac883985b5528bf89df7c3", - "0x061fdaaa08796262dcea10fb107e319d39b58e6e81f4e22a5bde2c36f092c300", - "0xe8e23d389c313f906d4bff516ee505accf61d43700bd76a35ea797332e26dfc0", - "0xbda24139e3cb6492536baf8afd5944a5ff5d6347b4426f208d0c5f711ccba6d8", - "0xd744a6e5b4315bf2e0a29ac298ce1c1b7947b9b146bdb8dd5edbcaeabfe814a6", - "0xa441545150c5a8754f10c5e41804608062af6c779712f959793c4c65c1521578", - "0xd270437aa6daa27eec4e4da26cb1c0e8f2859aea34972bab45aa8d1aa37f177e", - "0x3b5ef123eabc73e19cd1e3cdb1bf3249535e9d01811ba0dcf50eae6b22c97929", - "0xb0d0e9e597858944e92b1c2328c9cff5bc10ff37a75b84aaf4729ddfa99a9797", - "0xd98573087a3df3b47258862354819ca399e0379638112f590bbf77f54d754bf7", - "0x0f2ae41274716fa68c24a23b24fef8e1c969f76fcd803d69898c8b03251ab6a7", - "0xa9bae84958088e5450b72c468501f5f6f58cb9d1550277b68c79ee481e3790c8", - "0x44becf48e3a7dbe386e5aa571d42ce408bd536be5bec88a29f0d7c4e64c02347", - "0x76efa9804b3b61aaf93a098091a82e489c888050262154bf35255e02cbec5f86", - "0x4bdec2826c587eb92bcebd658beb6a4eb80249396ef0693af28a5d4e5d2e967c", - "0x099c77576b5b731efc552511c1ff16fdf1badc0c26c34bbbb56f1c374176ae66", - "0x5cf461781389c0628d0630ad8adca64b51bc8b9313afd1cf1e6b0aceed31c70e", - "0x7ff9af4c236acf6c74b1977b2c4308cc8b0248acdf9a371263ec77cb480ed9a7", - "0x81be4c30bdaf556c520aad3c1b1f6cb6857de4c8fc3b64ebc8095d3767632636", - "0x58aa72dc9f5a07e6e20d7a8253f771cfed9745ea3b4e0ecb31a22e9ae6602d21", - "0x718d9f720164a0d090286d6f199158a99c0a11d361d136e2e823ca683f4c4f1d", - "0x059b9fd379d28722579a6abe267c297d841639763c4f8dee2d22c4c16200fca7", - "0xa862c53636c7d025f1744404cd467299a1741f03226f22cad48a3bb6616c8a90", - "0xa969081a884282f064aaf9fd279653ccc9e1f21a1648878da5d0c64ca37d1ad9", - "0x714c090b8694bf6528e57ae34debf38116198df1b3f5434f1267def29bfdc59e", - "0x9580351e40b3a4cbb24899d24e544034419db55df0260f2ea8a019019c4a4bb6", - "0xc18e1dfd3b9b6d737de3822a8fddc2f013c3ce9d43b93e23386bddc6d5adeb8d", - "0x2fe3f88c2506319f6ac4de9eda256457205a31903833310d90d594096c8aca6a", - "0x9462b4df622177a3ee8811ef00cf7dd3f10f39f02abcb49b45b247e940b8603d", - "0x124714071262f3535bc3681df4ff64e479364c6573edd2aeb5bf20e99038a3ba", - "0xb59ee1da82b845b2a39e8be37703add9a511cac7f326d2eca7df454ba4438788", - "0x5ab4e66aceada0aab89bdfcaefc973542036f2e4e6b3d24d9cb2d9823fe6313a", - "0xc862a93c669746c82a9eb7a7c482916d17dc38cd146d2c8f9dd66084e7b74054", - "0xb1a5ef459150f35ca49a66c60a0b8f67a931a622bc8bc8fe9ea4221c7c18d804", - "0x7fdd4fb1bb717b0bb12150d9992a92396e397b05ff1fee9371763bbc98ab6fe9", - "0xf3f56b8dc466fce08727886ece3560d7e98739cfa1990801351555b162c161b0", - "0x534ca5836ebc01c872204980da4ac87fc738a03cbd12d6356fc014e97c59f90c", - "0xf768a756d4c804a29fd5b2d64ecd9719d425d1067235374c5cf952109c121404", - "0x4aa2054b44e48a4cdd3b4d4a3cc19cca2e116b585fa874330aa221650f92d4f3", - "0x080cf4340fbfcf154e2888dd47fd7fa9eb794d3caefd60a268f348574227c805", - "0xdc83f6d0b206768e8881af1457a16e4d91a7b9569c88d852356fc59c67da105d", - "0xd6f633fa1b9862d1b00c3eb015bcdfc383e8bc0f7a6e020d2461520c61f29ddc", - "0xe1399c141556433ec8fbb36b0096107d590384c1b22f83e76b08f84395c69fb9", - "0x22b6ea1ab84ef7caf066b12efaa9a7fe9a00b0a84b361bbbd8b75991c641fcc4", - "0x9bcfc0a093c6f861bb53fdb8f1b25e6a64792811555b724393ad0266659d0483", - "0x1de4a1c19c2342dd68a9fc37d1100677982ad975d4100381150b2058bc3f230f", - "0x20c30870890f8b2970ed369a91475ae7f79cdf9657ccd077c79c586bb71d7060", - "0x3b3ea1b91547eeef42b69a47b5f6e9751018dc2d5a3b9b69c4ef1c109cb89f65", - "0x9d8c7bac0207b0b2f13a412bbdb0cf8d2133f48231396f05f8e1843da8d31da2", - "0x0d7d9e0a598c89200f67d42aa097f4a229bc785b9aef2f710587b25e8d1f800d", - "0x4038cab84d4c1bb9d849b4fc2fe4128a0071ee68832d0bc60a463b3180e0369c", - "0xb95a96be8d5cbf74ccda4d47c52807997c8152e204dafcde90e302c61de5a35f", - "0x3aa264910a3904368ac05c95ceeb96280f600d081f56f56682a9d52c7919a7b1", - "0x113a95a67d268674751fee8381a3c5d62932cc40a77531e96be91927acf0264e", - "0x955a1913360a1cc67110debf9a30b069ce27cf2fa527e6e4c50e7c0a1c656e3f", - "0x1a463b022f31a39e36305ab969e6889574ebfae8857323e089b58b6f228ea939", - "0x1ecb0e4d7e29787c3972509cce760181550d8b6657687a04402ec52a546d8927", - "0x662480ba5fe2f06a7e97d111f9bec349492ba005ec7e427f34979a7f394bb2db", - "0xa268f6633eb777d1e66cc5645a92d5f0f2b70101faf27cc801a8b24675f71099", - "0x02b4e8a4938ac4c31b0d8ef7753da5dcb3675306709d569581e0cb373a3be32c", - "0x78c671c14bd0d8fa378294c4f00e53322398f156e5a8de7f73c6af363d1f45f8", - "0xa939c556156ce686c26e7db69bd8e94a40db88b3b8d5c310cda3abedbd0e7513", - "0x91fc8f68da57a3615b13b3d548085eea8e927cdcdaea432a08eec4013c2b3e59", - "0x29f3169c4687ced4cba228ed0e26fb8d24dee61c662b029b4904314ba58481eb", - "0x165ce1a68016f0d3365b2eef27cd4cdb9796fce85ea9c523ae3153b4c5730e9b", - "0xc3be6f4920845b082e6b9fa367f0e280a2f99238f3b4da80579228b6c4ac7bb8", - "0xf6a9dc76b4f84660ead26ddfeed89808bb08450f3b0377eeaea1ce711654de07", - "0x6ae0610a733a17ba561e65b82f94657c6b7090e8543dc794d3a57efbaafa22e9", - "0x8bb89307318187e3d054d4dfc251f5f5654107e2d3a72fb22eca41671f65bb1b", - "0x13396841e164da968eb88e5eaaadedbd59eef8fd2da1f34a9adcf22f31589fd0", - "0xb1320304bdf53e1d57c3b97349b7ea16fd19c57817a247428a3181e5a85202aa", - "0x7440c18bc9d6b70d4483df41593511c724a89d29b4eddb48476067bf4c831f5a", - "0x23b967b23b553f09d4e9ab01848f7c0c3f2dd35c62b42df8e02e1138d62ffb7d", - "0x1405e1f362d098db90243b3a1656344b80fcb07f6e9bfcd910f9de1ceb0d5c8d", - "0xaf842855c8a237ff1d6a18071ca2588e37ff2715891e3d7d4a239e44acfb0472", - "0xe22be6d60381d62ccdf2648bc7bb6b8ed0d4679d5cf66e8d05af0180e183d2e9", - "0x08d080b1c3829f19882bd4100cf7073503e313982489ba23f7f8b65bb230ce24", - "0x6755d7c7b4e08538759dad8b9dce268296d42ccebfadb21c528ab38977836418", - "0x380e7553805ac401b465d4708563b042d856b84a0b1a82647db83267c9694604", - "0x4318520dcc73a3ebd9ae77219aed288bf4b85c78b380c870894fe5b98a9fd36d", - "0xc9d722bfa751b190504bafbe66355a01d5e3dc4c016280400226706355386781", - "0x8a5d0058ef51ee9bf858a7f99ceeb37312e341a5d3b4a4367ea272199fc5659c", - "0x006d42a7e60a8e62ae4d6eecfa2aa3e1dfa6e72aa955f42642bc9e929b56e978", - "0xce139c6286d66928219167f2844bbd9ddcad62c90adabaa249adab681865139f", - "0xaa186ffe45e1f583534bdb4c863ffc1b3871627ebe36cb04a20117f65bed0597", - "0x363ba0bab9688ec6a32cbcea7926c8ff63883738227a27b46f30c3176fb4941f", - "0xc53fa178fd4a6d28407d356a76b2b222bba2c91a40aeea378d011c56819bf3d6", - "0x2e911e80b5221049a32c54e76b6283b7a0d7619a5e937d4dfc0c3bc17f173723", - "0x7f42cc501f58cdce23203358f7ec9c9123c0c1e181f1910570b66e1cd8e2ab34", - "0xe78b6f562057f85696246e3d6e2050dd38edeff50a695199b1cd2190cd6412ec", - "0x75f5fd17986d3449b642ae4e3bdb0c02c7277678855a1f2d02200d0bdc4cc2ff", - "0x9c9ff244b821a66b672e1290c0157e09c7480c2087b5b24275351f1b3273aaf9", - "0x4836c8c912882f4b5b285803395fa356a13a868d6f1310a179fafdd621ab2a13", - "0x1604745c79ad3ad2a69bb6ad6587302caa04d2f926218592bb18ef3a0cb5b078", - "0xde7f126b0d49a12f363bbfe2eadcd411e2d4f50e0c3d87a80f303790949b3a2b", - "0x03f400d75cad3c915236e9902f3e8583d3fa4e63f78a23fdb7e9f70f3c113128", - "0x668cfcf9e1c1febe283538375432b7a780a5bcd76a3f5d869f2379a109a8f400", - "0xfcf5cbc3282bb6773dd13fc7f010be269539b9f21be617846bb7a5d64ef18c6b", - "0x23012fe4732216125343cf8b01bc90a5423744c34e74113cbf399bb97cf33e8a", - "0x4beeb7a956a80f28ca8980f5464d54a57188cadb7a36ab4a24dc914324c16640", - "0xa80877fe126d3ff79ae533198a73b419bcb4d509fbcfd7c0698690c598d14e55", - "0xea1fd8aff8064f832c452ac88c1beb1cf6dee3fa9144909b2ae8287ab1b8d2be", - "0x5b8520c4de8c98a524981bfe76d9c00ad7021ad4f0b852d437ea47fac689b494", - "0x5e8adb9588b81b6fe3aa1d501e94f15cbaec23ea06121fbc83f909057de080b7", - "0xcb719116bc94c258a43058e4a526ae70b0408693b586f6b87c12437e26d3d5d7", - "0x5b57d22bb3649b04b421b9574e5261d6d5021a7a6583890b45ebb1b7075bb28f", - "0x86a1fe15fc2a2417a87a044aa935d02553bd7dc43cc6b38d417f89ffec41afe4", - "0x8a59ec0b6a74d535a9a96c7b014ebb00485820007ba983bf4390df46a2bfcb62", - "0x4a21481ab25bad53f7f5efc4b57f1377bcef96a412036602525393582c36c255", - "0x53d214771e70e49d0bcf4a2a6bdaa6f268161ce89e69898b55982b4ab9a868ff", - "0xea794fd7cc5d6c8ace8e82168fd8663b2399279ae9e0f17a427f75562eb8538f", - "0xb3e76b97ffc51e4787bdd378e5efc1afab206f670948329fa6bf69577e5c6613", - "0xe2b89a9a044cf001e5840fa9175669a4ae55b0b2bb109fdfe097027eadcb31b2", - "0x2ab1f30724c79d09163b5a2fbd5b2ebdef7c88414f7e4fef1b99c4efe23a71b4", - "0x09def05f239c66b1ce35666e534f09f631dc1e05a89bfce9b7eba4b57e1de5cd", - "0x0278c2926b77e1624393c46f09b995c24eaa957b2fe05ff1db5938d967f3cdd4", - "0x76ce194d103f7fb8f42a8fdbf2fa587f949f23150a34a0912bad635199fdcbd3", - "0x44059c0342dabc5a51c7ece17313860b4501453dff5d6c8442681bac25be9b3e", - "0xedadf66e234e7515f6b9a1476a5c937755cd667c60fdf338c6f1502625800c62", - "0xcb739f0b6d65d1fd0bafa69437e729ef5c5846e62b55df97b1986097bdd36915", - "0x3b71bd9c9e479bcca3275a12005b629d87e20bffacbbf3ca2ae9804b4dbc4d40", - "0x59a19969de9f0ade2384bec9c774455e46aa774b9755063526b98cf8d07f81eb", - "0x233f00a42c674a36053a43552c93d9beef3090cf3ec74190d0ee34332a72cd4c", - "0xa1ccca2c71c314edf251df629b8d5c8d1c861d3c29a67743d2a4fd7cf5b47ac4", - "0x13e0ae852a0c22f85555ba69b747b303edc1fe981390caa2ac4b082cb8c959db", - "0x6df3580af6310948e36482fdf09005eaae7016c21ee46bd2ade3b54d027d2bfa", - "0xc6f5f07b379e5497bc44b270551061d6f06f660319f3f3b44580dd998179a50f", - "0x9669432bf5caf88ded238912a168f70438669df23bbe81cc80ca754c37c9dd8d", - "0xcec75f43d7b594af760370ede82a47ddc673c06390a5f781c36ac1c6e221b01d", - "0x8094dc8bd32c97ae7353b90f910b32fae2d4eb0d189e6864a93c92ea10db2ec9", - "0xd9670bb50d0ee3bc1e2c20dddb6dadf6664edfcd72fd682fb8def859c5bc27a4", - "0x7a44ccce092d0a9a0d0724fa4075ad354e1375ab159f902cbbb91c230855c8a0", - "0x5ea5914237acb8cf171b872b5cdf3ebb3c8a663394e8317816c429c1bd5e7099", - "0xdbcdc35576c3b3da8e8269e45337f6366bf67423d695c1a15317f922f23ac4f4", - "0xbccfbd34105a3b9977573851d1210ae3331c2b36ac8fe210d3a30fd398dec1f0", - "0x12a4844dcac185e4c45a7672bc2e6f1ee36e1c1016e8d317e5798810826c3f3f", - "0x2e5dc9ac2863a598262a9775043c59cd80b887d8ed8a0bc8ec68d96aefb91edc", - "0x532fdf6e4641ef267dd67f80637b464313e901c9568772f42415710204b3a856", - "0xf4c86654ade4f2cc6b456b48db328ee487329b3d8f3a9d5f2176b11bf7dd725f", - "0x9adba701c6a53b7819619ca2ea25ff0c37d91aeefeee0f095a5451390e5df4ed", - "0x2bd3b170ed326506a94174425aa570a8321918ba1e03aa53abea8763ff589dc5", - "0x7cdf7fb3a35b61be41c7290a90f805260f2a2d81dce6002e3fe8b708e72e1dc0", - "0x8d5ccdf783d5aa162dc26d8d1465d4763322730a59ec7f282be71b02aedf9f3c", - "0xe5f4a15065e3a6783115a27a14ecc91caa828f43ac7ab8adad52e09c4aec2f85", - "0xbba853f33a286a5587c066d560fa553bfd85ed332d75df02c8e4d349a589098f", - "0x9d7237315d191d8507d7750e2c8e6dba0bb3319dbe4c2f0622c95036e634b445", - "0xe5668e0d8935b4967c5408c8838dd765c55fedce083f4dbfee272c8c97106464", - "0x1ebe355446bb38959b25a51d12fba915b627d7f25ff6aa6b8295ce492b508697", - "0x166a938c186cd8048257f92ee9192c6a9c3e896e312aa9df0f2898c43a7e1bec", - "0xd3147112bbd14cdc9d7934790007e139dfe4fdb8ce44f4faf372087e3ba395f8", - "0xfe8e7f405b68bd3966154259a2bd2407f11473cdf9670ebbb4a4bb09034df174", - "0xa173ab56a6332f0814b4701352ec22e8a6d0bcce0d13e3b74e45ce1b45549141", - "0xc3984af5b47a865285ba2c1b4df82fc7a6e6b09382b8dd465b2dc657a1a8b04e", - "0xf1955c0b7051d2ac8b86f6e3b4602fc27bcb130ae343055d0a3de78ee913db95", - "0xccaf3436cab712925b8f350e985120e05a9619e398ef43414fa1d26390d7fe20", - "0x88210a78fc14dcc3d65c919786d107288de40bb79b2d2bb09ab2c5e1c139df29", - "0x8d0ffe25ed0a585feebb79f8778fce6382905616563bbb8629cbf7ec5b29d51b", - "0x55b93d2c7796ce61ee6978ce960617a21c29cda241f53753f6255d89e2ededf1", - "0x4a4fe1acbbaa8b14445333c332c4a6832fd73397a728d0b3022dbb4f1912ad81", - "0x6d48c2f6953fc4841dad7ab81b84b96e9553b35d6957ea1db4f8bba31866bbf2", - "0xb25054684d400eadd8b4ca49834d2233ac3c251e9acddc2911ce5e52c6a4a173", - "0x7c9f6a8932a5bf13b28aef6dfcdbfd33171bd185ddf9b64fb16f5594e670d174", - "0xe40383714634f09796367d01d224444648136e5862926e146e82edc8d57309fb", - "0xf8837e14126d53efbffea441ff94c9d4afb0d6c99426ad1e3fe2458f3b61aa4d", - "0xf18a670a52f0b91abf5d4611d6f26bcb528b56311684223fc8c82f24bb042f82", - "0x84ce97283455aede3cb3e21afacae90e0ece81d9af4b73546f0a4a62f53424f4", - "0xa39cae777908072343ce11f6593ad8458910e44a9de981aef0214e192e510366", - "0xbe6aa0e55cf02b0a159423f1ade1aeb8fdf6867b3dc62455941c534302459a1c", - "0xee33943ccd188913db3733e9d2b1c055c2e66baa780d1e68bc8589cc5a8814b1", - "0x66d5264aa8273ce5b3998ea110d54589e615e065502d2594bd90eb95789abf06", - "0x60e02cc54a0404257a86b6ca33a09f272ee96fbd5cb4c012ec813739e31bca4b", - "0x57a26b6635b9485137582875afb296f2fb864fe3f8a5bd2cbe32562f8f3dd385", - "0x417255e3ac1cf38c014f3b37288fffc268d554d54b13c46e9c2b42d2ebf596cb", - "0x0859b744191e9948a2a9e2947ee60e427260257a2a56e2c7c03841ac1c4468e7", - "0x0b81dc3821176c5a0e7e960786056e9918a3650f0584930cb0b89059affdd0b3", - "0xdf7faed41fadfa0577bc756e7af556fcf033df04cf8459d6d1b231104b77a733", - "0xbb5b876859de7ee7dd882f085e349760c7996ba7d0a829e18fee5a255a061eaa", - "0xb6db25cc62e95b36fc219afd865de67e7c40357ced0feaf7eb151a6a82b6e616", - "0x07fe6f23359b19dd27475dc2b82695259e8d505c1f4167c490f00a23a9971217", - "0x67940189346c4f47499057313bc849a4f69d28bc4f77370f113ea8912bee1191", - "0x077d45f39bcc2196ea3598041f4a31e5c8d00ed661f20520722ad78ede7c887f", - "0x5f5da7f14328252ab942c3a7ecd11d6b119a6c259d992f986b1a326ecd89acb9", - "0x58c77aa09d0fbb009eaf6f658fa3f60d0d9664fe01b8d32aeb5661d6403449f6", - "0xe077b8264813c304e996e5b127a03eb752f8b9867c25528657c574df8e7c759d", - "0x68ff6d81a23952e262fd32e80cda289bfb36b434203d1b85d84b908d4353f2e3", - "0x2abf132b2121dd67a86b8a32a9145c586c41052f44424f6ef3f9568aef12b2bc", - "0xfae3cafe107c23300f72adde498ca50ffbb287223f55c3564c3d0c1bce29e8dc", - "0xe0bf584e38f84a2d4d2638fd5470dc0034268581ac088847649d0ea57542b1eb", - "0x66f9050a45a1d17d78533f5376d97acd1ef3e766baa0389f24d21dab99b4bb0f", - "0xacb8fe23999be8fc75202adcb0270af88fd7da59c01d7020dd3d57cc32f7d2d8", - "0x58112f5cbf474bd9460f04a119fa6ea6f047f4f44ca73b104acd2a1fe83720a2", - "0x48022409864ccc25ee8c1eba9c28a7e4cc565190553c184ffa4f7b038377e640", - "0xf1788ab3076a2fcbe377f95d770e2058d2744b3e076852f23226c1a22de57f7a", - "0x20533ed0965efa1ed3ad4a2a702a59d007d0fd3e94f5ed2eb3b96cfd1071d97d", - "0x90c67ca3cb37f22540771d87becfe1b4448d3ca3bb8bb6351392abd73cc573e5", - "0x809ee1a4362f02abf1b679cb61b29ff396f3856eafd79149e493fb4fede3059b", - "0xf853ec630dea66b272ec942b3772b63985b08813934c0e21d9bae24d8b6db367", - "0x3fcc0cfb7cafffa7ae9289351d42e4e965e9636a924fac77796342349e0baf10", - "0x228cc6502f3a1c19f532f0dd670468d7b5289c2758ac425841c0f6d1e94a34f9", - "0xd2654a3e2552fd87358d0b8ba95e16dbaa65c7bb79fae48f450c4f5fb27c4032", - "0x62d1021e9a6a5cbaf30adc9a450ab6bab9755d4421136684ade76aaa354debcf", - "0xa1a3cee13da4846536f4f69b95fb97040efea89016e7f3cecb2f497a5d61e128", - "0x4adf6d282db490aa075ba077e2dd106e5150dd4c1198ef120226c56824162bce", - "0x94d2703e917bef3103a2d8f0b8bf71e4ace0d5656f60837378d791a90ae5734d", - "0x687bde51927227ad0885ee15ed6dbe7c122588d8ec6905c6b55c3dce8457ec47", - "0x0b8d6a8be92322a923b8530a68d1e650b4576fbafc357e894b34fceaa03a363d", - "0x96dccf22931af2c16a578cdbddc92372e41411eb799e7ab61a65dd69fdc905d8", - "0xbf409de805f7d48ae5cdcf4de165ad84716860dece1b8e91142a184deb7dcb7c", - "0xf394a819276f59a5f4a5fb87229126778f154b90cfab2d3e214a07dbbab0d11f", - "0x14d5300f5ca4a29ce0e5d16acd43a20d9d0890e8466d89a65853f0efdeb27ec1", - "0xf71203cbd2b286342e8c9996595dd5476a84128b803264f43a71c8c48ecdb706", - "0x1ae4464000ca84f8e981c4e0c3a0fe3eddc830ce88ca8ac050c5d44d1259bb74", - "0xf34ad422474f5703f65615423e0a3e889b6627fe9dc282eaa627ecb0405d14f3", - "0x8491f05a58ea8d00c38fe6ac434919db6e9433d7d02e535701bae12d13ef176e", - "0xbf4fa62763d21ef32824c980973742b8057566054abbf3e1a772e25b1cdc73fc", - "0xe8b2f9d73154fb69a3bea562d6ba7162d824582c23b21433c9ca504790e1ed9c", - "0xcac888e4af9578c4480d787204af3502946992e27e2f892be8c3332c2f49fb7d", - "0xb5ed774a21d3f1691c81f7f4bb201166e969d26e094c8538655808209ab70130", - "0xec88c9bbd6a8aec177d36de60770ebc121276f189090ad524dc522009bd89a07", - "0x083ad1d943ef811a011c2bd28454002cb29b06239918e4f43edd33e68a33ee43", - "0x58d67cddcf94940b080f252517aa07670a3662e3504410d9e76e50458ac77d98", - "0x0a6c61586afe583bb97299f6ac28681de60dbeb1c2432cd5ebf9bb0e5a39ad09", - "0x0d1e2ce99424a09e28155c2aa77ac4147f0391d53d52034f8ba8c4cee7132dbb", - "0xab5f1154eacf26fc973e335d99a2109fd2e877c95ec54969e45991e8818e6ec5", - "0x5e408f7245667770b2a25c81014651070afefce64790460193d6445b536a2db0", - "0xaca10e3b3e0c99b4ca8aba538a2f6919341a93f8a24ebbd8f6fe685bb5a7ab95", - "0x81f6744b553128542acaa7a498a33a6f90fb0c6df6cb8fe29de0cb46aacd34af", - "0xefa48a9233bb32174509a666e735dc965d13aebcb24ff69e352ff03cf1d73e9a", - "0xce46f7f863c56f707bea41b0bb86dacd36754ef2b86c32d7ad0dbc40b08d2942", - "0x50c08c3572f9de38793be735e30cd7cf96af4e520b8473f72a93715ed93388d0", - "0x224d030da1f6b7657ea86b22792193d8f0e122cf429102e6c47df993f44e5d59", - "0x0dc8e3373112b803564996657cb20664455e29637e8d45de1c3c57e853b6f87f", - "0x9839b40636ef870c357e1a33faa6dec71e391187b15f170b6d7cfdd0fdd9f4c4", - "0x4c5612fbf36ffa2b0067b2588bfd12917de598bb7af9711db64a81315667d0eb", - "0x85c244b09d9ee4e7725dde1f9039d5c2aaf31598dbeea7f010e28d2dc9081b89", - "0xd26fa5fe42f80d525e4816379ca34af4a89f7296e5714759ac9af4fad8ba1acf", - "0xc3acb7581558677e73e6f97a3590b2529c583f409bbb1d201642ece3a4be5572", - "0xb4d4918760bcf2d0a28b2b8193814c4320d37cf8d35aff4e6a898d4ce3889a39", - "0xf7bb6cf892e638b1f2c304e83ca78ba647b93b63109d341cf4baf63fad3d02c5", - "0xa7b7c639cf65879920cc1aa3f98f45feb702ecb119d6ab298853d0e20377f1ec", - "0x7b2e005aa74d2876cc4f0646c06bc59a48878774d08764c110abc8a50a92d426", - "0x76ada65e0386d48d3c867df6d439fb9bb1a608146707d8052f4b080c6b8e689e", - "0xa6facbee4a65f08a29bdbab400fafb2deeed1db89d7faebf2fbec3f7cb425350", - "0x1b2ee7aa4ee7e04ede141512920961d66c0fbb0c348f6f1cbc3ad13df48dd1ba", - "0xcde762c0e376a5b6dbe271d4e2a66892c5f72b7c75039344399bd755ce68eca7", - "0xcc4b920ad5933b3d0d327cabc3eb3fd34969631da9d2f06c331c2756c39a276f", - "0x2802d6e759d9529748604aef9b8df1e77cc7d18f691bcefb158e4bd7186664bb", - "0xc5726ca8d34ac73ddb8879245fa250490e351a1f4582bf425e3f7293d583fe7e", - "0xa906dedc4bbe7866f3c462828cc53f1b93104eb728add1f2966d293a2bcb74d1", - "0x72318ff68e055276964e8d3b5e168e6fe1c74312b599056ec8da430a85cdddb3", - "0x62ad64d2fce9f80e3019f351be06e7351d9785b1d637b73069a612b78939b350", - "0x89f34063b37ebed1c26903bb1ecd9d69fe6998917e8293f91ab30e8f0b07ea39", - "0x24cb61d008014a5f51a9b116eb6932fccd058be0a5fb01f90dea1e1a0017ab34", - "0xe21e0d06f20dd7445be5ea6793d4d8beb74417480a576fdf42a86a25691fa80d", - "0x7189ac6c03e856d28163ff6d6c24ab1cdeeae0148e00c069a8d42bab48c97240", - "0xc5d1d37281bafb991bff970fa977476b25b0ab6530474c3d808defeba7f5d77c", - "0x66a953220388e4d910057d0e5b5c6e20a8f94ccc6f3b806788f7cc4e94a7e8b9", - "0x7da1f7b2682d44775fa3d576a05c42c8d475060d87fca19861c75a10c0378d6b", - "0xbb08cd7e8b0fb9302488b9d54e034094fe6857ae62ccfe9c25634768ab23ff3e", - "0xd26d8273e3e4065a40c867ebb3a011106d550ee05b08f65bf1045b47373d1464", - "0xc30068b4ff924dfa708fce01b610aa6a0b8f359f11e616e6850078a602c22027", - "0x583db9f816b88ba25c59f549033fbc003b774650d63e44fbae2c4707386cfc79", - "0x839b943b0137db53e6b7df9286def81e772863ed5d6c90c3963be9ddff133af4", - "0x6f0eac2fa9e03c0d192e8cac846e798f2f8a78784f7ee7bae52b57385970b840", - "0x9d72d31f4932ab3d5f8e440b4dda759ec5b1b25a1e8ffdc790b14e41ca35138f", - "0x695403d015ba69aff26afa5ecdcce55503fc00518a38c088100c4f480bf94514", - "0xd63b618eff90747ece1d0b47a522dfb6ab5a6176bbfbecf17426bcb38e8d9a18", - "0x756e0663c6545869f8786e193245915004d4710b4a93150c42684aab2be0f6c3", - "0x7715a46068d56b44b396802eeea1c68db81bbba1a6dbaa8427e61170a24c9e4d", - "0x495d573a167483b1e146600e617b6ee02d4251ffa22a0d6d1b353ea87bc5b9db", - "0x0bb82dca3d49b7ebe0eb6d90db38557864530257ad2c61317f51141c5a33f9a0", - "0x16070c602b167e7f1502c6cffb4522b1d7d0c9b3b5593c55e2e692a57e450f92", - "0x29e503b966b5539890bc4ebbcac1056ae47b8a84183d9fc2c17f1c05fcdb94e2", - "0x9756fbe6322304f743ff0763922e7d13773432bb2be64764001415cfedd1425c", - "0x1fdcabc4b94b12cd9b9a028b11a2f790929793013c7e361c0f839489ad254302", - "0x1bbe892f8b1916f711c6d70c31b1c3e27d8d0546ab85bb0787d58bc43f699ed0", - "0x985800fe0abdf6158f409457c37cced1b4e246806ea0d72f0774e72369be1160", - "0x8d39f8467d28dff357687b9641bda4f514a3d1ad1922df02f95bcc52f181ca54", - "0x3502e2271a684b787e243a20e5ac22a3c7b95649da2931bc8a5063b78879f7f7", - "0x9beb20f3dafa156af31d81fb8e4f3f3960bde7c1fd01919c2d98f24ad320b52f", - "0xc5cfa5d6164e5d1e5cb3b3cceb85389151dc80f8c6c4e9445836b24e473af0cc", - "0xa57546eda7100eceb3072fd7798141312d6221a2978668a97a247b6e581504f6", - "0x2ba9586d46bed38441e94dc851b06f5109c938591baea3e47de4ff7e60f1a805", - "0xe930cbedebbbc3fb4b3b3f5a8de16ed885e27d8be53e6864919e76b22df5af95", - "0x0fc51538512a095006e99d471d78acdea3dae62e5185ae2fe1c3a3eb9130f553", - "0x5247ccaaf7367a412c4db0b2e4598fdb151f587197f1433de36c3830c19a8e91", - "0xf77d63e05187b1ce2394619615563f913537e8c02afa23975cb456dcc9dbcd0f", - "0x094d6c3af5ec6794be7e5880915e372514288c31de8916a280d61ff07c7f3d87", - "0x17525c4bf2f2732405cd052f1e91718bd588850ca4f54fc3fd43a5b7383f592b", - "0xb3eb902d635c737cac76517ef391bdff88252e110515a5c56e84e940a721b5e8", - "0x7673b9a000041a364140ab516ca039dde607b80f174f67ff85c18ade40228630", - "0xd39da82e96a846c01821984bc127f8ffd0ebc330950641ca06703669b8d57451", - "0x7fe8cf7691ee10c90c4609d865396314ce29df52f2d67b27f156df3c00902ba2", - "0xf7188c00b7bea23b2e2ce2f8e9465d97b01d94f6574e152550d9d6b55d1c4bbe", - "0x8638a0100fa0bf7609a26adf0cc57bdb5d4f23cfe0b85cb1746c6431a223477e", - "0xff24ccf6c383aa136c8a965c9c662f792580f9e0fe26d26ea7e2be8d62c55923", - "0x70d0adbb8bd87ca574bd96bf57937dee0951bdba3a6a91262acae09e44630dc9", - "0x71aed45ccb9c939883712fd1850f4658a972fe43e35152e49ac7e89bd40301d2", - "0xd322b449315b680ed08f55e782c28150117686891d3c6088f8e3069fbcac755a", - "0x811f0cbe7bfd3dc6bdedcd3d19732688cad12e967b69f401a1110190a6e1377f", - "0xb3c4d5bccc43cbaaf2af2c2a66ed5d8472f58f614f40dad00e34387255165a7b", - "0xca7af87583497566eb41ebc76e410518dd95ddea235c07007df34cabd3d99ab3", - "0x6976a62c198a4ce188a4fc631b19f9cd48de5fb5c0de398ee471102a210ca27a", - "0x23cf18c236f314e35d27da75fb563572789abcd00432a8f1bbda64c6e6e59d8f", - "0xd644911deb0f6615c188b6af13f2da207797b29ffb72d4b0a4eda0bafeca678c", - "0x7ebe35f2cbaf19022d0b7903e74ca4de74242ec19e98d7841d632d8e59dde8f0", - "0xa27e78937218bb040ec0f7caabe51f8d7906b29468bf45add6feae42e8b07299", - "0x30f1bb66164f01e20415030a50ab97162d814a956e11b6da734890a0fe883760", - "0x054f872176a9d562bcbaee63147bbc5b280021e0a4879986f59b83ae4df40346", - "0xaf61e403e31690263f2eed567c7116b7e111c5cbc4bb5d60eb3a787de33e8895", - "0xf1a38f843476227855f3deba6c3f5d26fd0fb707b4e24a96e2f07fdb47cc0c0d", - "0x92087b30f1e6d6eab77a866b1c46f9a3302ed892fb453722ccd506ea9b226e34", - "0x1cb905e3c69008fee40c3a515bb2b7a59a6abe54ee25245218ee681e5a658818", - "0xbc97e9699e64eeb4a4a9866392cf58b15a2bb457de2677bc35d1e0ce65e94551", - "0x8be22cbc0f9c98f99c0a3bed1c04eb89b979c2c6200a51808091e493407d438b", - "0xf5a81ff4b16cb3b8eb6c506881ec324fb0c7ff0777437d959a7e59b1194e5d23", - "0xe1c41c6504ba65485716a9954f181e2cce5129a5ee966dd4fba6f93d3426ac2d", - "0x752b5b4f050e8fc7c4c320713d618bd61977c5df50ba9553c8254f2d867e7313", - "0x628e2a835f6fa408bc8afdc4c8485e31f7f2e3a415cf7d35e5fab43128300c55", - "0x4ac9c76d532893fe7919a7f0e87df2bc9aaaeda6981ad9b28612e46e6dbbe25b", - "0x513462367803ce86643ba7a972e2a1e437fc0d0bafc9403cb1fe388dee013679", - "0xaa6b9cfe94b7acc00e03fa0b456e8c8254211d518f1262b5709382903026487a", - "0x955f02f133bbc61a008b7c792f3195dad5d2c625e1c8d4cda1152b9688dfbda5", - "0xfdfad2a2a882724e049605f0206a47ea7bf44c498c3c5e1a63bc785496b33212", - "0x9674158bc48d35cd4125878933e6a3b5823dd9eb43eb377afd4f93ecb9480063", - "0x90ae20496a2ce74abf0ad2da39cd91d3585ecba7341b34d4a0f6e8158b90bfe8", - "0x5b887310cafc5e331653ceece1e65f78e548354a7d3118b20206d398a3623fd4", - "0x4ff519ea4d5d9a148c82ae90f2d372cfc8cdde48b2648f043d988f2b510a4103", - "0xa54982d4e1a513b39ce62fb1c6a9e3a825a4b96bfb4898808dcb98f9e1988d75", - "0x275e3e6fdba2e002f16e7f7dec933c8f17d1a778ed4c5c38beee03f1193fe442", - "0xa83116181ab004af15bd8ede11c115fb597faeefcc35826becfa57cf5d54e236", - "0xddb6c64c865bcf0aad929f474970a5800dd0369e6de50dee2226b214eae8c52b", - "0x3e3dc4189ae64d4a95a9983c0cb82b315093ea9dd30c562563244f933da0847d", - "0x20ca5e9ae40d1cdafccd7aa96c11edb440ba044f6a2ccea57275f5c3437ce3ee", - "0x1999d24dc88249f02b41e4d730c9bece3267af843e3ce976396f7023951fe7b5", - "0x2b3e6b9484cc45816bb6e66d1f02a10d439502cc14ff393e23298d12a4db16a7", - "0x3e9ed28ec5847afc75a7a451ef4f7af6220f7e4440e369dc95cb046052eea95b", - "0xeba280195fe23954cf38eac9302db972771516d78c8e007236a5d10a50bc3cb4", - "0xc0a8afe0e65314c7d0ae45cbc554a09b46e9b38950df0826234a90010d01099a", - "0x583ce305fe3b025a311849c87d2fd46298f43afca87ba1bbad9f0d27210790c7", - "0x928df61f68f1c16de55447570ec7e102f20aa6580abaa2aedf9fe80e44678d25", - "0x6ad94f79ad779570caea91c6809364574b52e8a57855771505a05342b96e2ffd", - "0x5be523e72ef4721b0ad80e113a68c51c9ad39ba316805e6673aea6e3825e0ebb", - "0xdc1435b62dc73e79f36b66c5dfad319374571537f153a7c7bf2fcf081bb9ad2e", - "0x6edf08306c1d14702f0ebdd09262840bec574192eda513bc41deee162e302539", - "0x8f5837f2ad8b6f7333d3ab730a5ad565129a747b9b0eff98ab5e68ec49e96b2b", - "0x9064d478cabae5395dcf24531ecfc8a1fc35006f1833451cdb7f217f2d723afb", - "0x80c477a74be695f84ea5cca4ad5a935458ab9d1a54ff90efcb5d55ab9fd8c791", - "0x45e928f375e30cbad4440d738a02cfdc295c5489be07abf07d0e5391c6d53491", - "0x4d9b41371bb6f3bf2d6d5d3a46437826b44cc8ca50ae0840c749a3e6e6a50502", - "0xe8bf9c11b1d2b4dfca70deae5a0a6977e4cc764febb88f830585e953006b4303", - "0x7983f445b39a66062116e992cf8935753635ffb73d1104d130d27e92e1b309a1", - "0x1202ff855f9b70d3b031349002efc4d1920860a721f07e44be337e9e4b8af327", - "0x17f0566ba5f741fa0a23ea7e9bb7db2fd5db2ab78a37825fab8a1ef31caaa112", - "0xa8b18cc87c7f4d950623f99ab1cf463c18226766bd6e7fae7a7d31863f08fe04", - "0xae68af64e4305e88e46c330d57d337dd0b887a5af88b8145a2537908be75e6e3", - "0x439e0ea137ce29ead44aca5c937b5c8e57a895af4892223d70820710eed063b9", - "0x3ec1b9024d9e106a1b91c6a8614bd64a53d69b080b4b2683596f83edc07dc2ad", - "0xf29bfc05a63689a0d7aa2c662442aee6e17dc9308912b788faf3ceba4ed00f52", - "0xee2c541c040f53e71f0fe074b785b71945e76b297fa2101aacef3ddb8c97ad1b", - "0xf03bb330bdbda5aca914385ea98ca770277fdaad9d0cc34cefc3f533d7aa0b89", - "0x30c4849b4310f0ba07edd0b2c3f00b250347044635888521076c0bae6ad8e192", - "0x503000ef966e2bcd1af2db5cc4ba232a1c07adc21b6a529b463f3a57ec7d9be5", - "0x3397d19d88ea960918a79b6052009a3a17a5a337023b3351c8df7d9940568524", - "0xfa1e9ebd9b1ba68706307e369d541874fed8519f3a3c86915c69cc59382f4df7", - "0x2fb359960dcd14dc8c1d274cfd0bd16f0082e314d7e857f1005000200c0e607f", - "0x9ae6c73045c2f4f1349ff75cb02ce3f0ca8ca5a15a9315329869329bdbaf53bd", - "0x0a725ad1294fa66189eac033e2bad210043bb0ca75f1920a4c5e037a2af4896b", - "0xfda1a87ffc19d7d2bdde6d4f605ed611af6a3ee932c5ea3460e6f252db95fb52", - "0xf4ea036b0a18f0882481a6b8c098b3fa82708786c20abf1f996e48ac30213912", - "0x48efe1fdc5cad08aa4fa80ed5d9bc9fce5cef1bebeeb33bff4efc294f1cf85ee", - "0x578e2d666f1ed2d28bb03753b9448d733dcaff4e844f975098e917076196bc99", - "0x6853f937f8118ae6cbf792d953465c7833400827af7f6e51effe43a6296e3e72", - "0x4539ab758b39945d33272f1b93a1a55cd411fe2f46bbbd1c1a4a36ed36d3a19a", - "0x54414abb3faaaad4a39a20a6b0d12b8b3ff0f55f1bead836492f5cc6f43db911", - "0x47141c077e1cde4cc4447da303a793c74f71aa589b036fbdbdad2f653b391a66", - "0x557264a0d2fbf0627cec7fef01f1759df99cde3668be638113be32c228f37f3e", - "0x3b3789a39a1f9d2140798f27f610d8861a5d7c6be1a04481a06e58b17dbd2fad", - "0x24ffb2fb440c75988d31a0fb7c32b10e373c62454ff1c7eb07f479c733f261e5", - "0x85a67cd24a5b7a10e8efa6d204c78503b94cfbeb26c53161993ba70825c5eb1b", - "0xf097fa797f51848743a29e0d43a50f5d70decc77756531fa7d2f139e6338aa0b", - "0x2130274df2a95c987a32b305f8fda842aaefb24f0d9310fe611ae52d85ba7602", - "0x201c7dd1ee4521630e9e123fc5da3c51069c79dbc185bba1d235e418ea20ad4e", - "0x3d8bf2f10e0f102eee64e475af0f95f28985574b36b33dbfd99f74ecd6e46de1", - "0x37ea6f30a6514f6a8296f6fa5df99e26110d4d7cb64e5467a1021901831f945d", - "0xf70ed7e263cc1a8b8ccd434a73a45ca1d2343e5a09cdeb0ed10ce10a34c8fdf1", - "0x5d549bbef1a42d8bb60085c6373bc7d783ed5ec22f8c7dcbb03a89435c32e2a0", - "0xfd2a7f14f01b4507896ea2e72efc561511f8967b6dde507886918d5afd67532f", - "0x2344d08c70d5c53fdd708a73f64d351236bdf4bc10e53b562edd6bff3f1b6a04", - "0x5f28d7886d96f15b52ef1ed006ad947b84accd8bcac2ef6c32ba413f009e6631", - "0x2255dc3dca94722c129f6889501ea4dfa1c19dbd612ea406421efac4555e7050", - "0x68cc831fbfd2524c0270f16da49a976c355e5eba10e3241e55535078109da351", - "0x59578c32cb583ea049b0c60dce9e645e94ed22d30dfd74116c27835c74cc6bed", - "0xd258a8b1362f9641553854d3f51c052d14d943fb16b83047874631b84259d5f4", - "0x5cecc09b7737277885f1b9961b5378dd1c076f6399e004638ca3374472b8ae19", - "0x4f74269eecea7a58a8ec2c5524fde33a52d3b8592ef023b9252091c0bdfdcf8e", - "0x9f904a7128518d1c0d4826932ac4cbf51d6ef70ffbb31eb94a6e721941f096ab", - "0x2a5eaeedc85401dc05687420839b62b4fa3ab8100ee87976a72f1830365f179c", - "0xf9b135dce4b201209d4233af18a436145105ff4c7b7f99df121aedbed8cc0da3", - "0x71e08e46114da134d9ad648117083ec1c494d8edf539ec821167c578f1297bce", - "0x688bd64b1a1429f49b3576c71fd5b813a9963ee1a5b756abab3c604cc1cdf645", - "0xb887209cf18232cd26fce8c4818c5d5d085dfb195668eb54ac40613f68847fc9", - "0x189318956d2b36f18272c8570a2e2f4de0ffc07f0cbb0c57cd95e6a427f0195e", - "0xa9363a512e7192cd9b5456482d687cc18b9ae12783000b3cde44d68f00f779d9", - "0xbaebb37746a2859526d2a609811bbb1d75099be4d61f2abecb09a9acd7b3c0ef", - "0x2b5aa9a26df8007edb4b26d75f88b25615c01f06afcf1751a8511f03205ba742", - "0x73349b2631a81e7e9eb5530502eda043e9bc56a4272be016b9d5661f91a79504", - "0x22c226439a1c7a3aa9d90d41cf898c9d765740a3e6f75ca116b6c1aed9c68b3d", - "0xa326aa644f30b38505f02fe13b2d918cd4c188004d0f280d482861ae9c9fe62c", - "0xaec66f092a01fbbcfca0082d677062340c122cec346a3afaf3839045971c415f", - "0x35d59e4bcf622a76809b2583ec20aa2bc10886edc989512f979eac15dcad6c6f", - "0x93266148093c25d81d53ed091e9a7468f9b74b999ef276c733d915c1377efc2b", - "0x0e7cb127eb026e4b44838590e4a1870151afbda01ed1af047da53106a8b04a05", - "0x55e95632b8bb88688d71071969e5caeb12cd0ead0f67c3bb1f75c421da4be344", - "0xaa0683b6a4e10fdac28956259868deb5915ca162b58d0e4377cf5f5a0e2f93f8", - "0x67dc47df8f6187049d80eba053bcf1d45ea34fabfba1f7407bf9ae43ac955c11", - "0x9580cf16d6214f5d68594432511b06ec9d0ff7fa0bcaffc9946cf7ffc546263a", - "0xdbb4129a3e593b1e37c71327b8acfc84c4d9c61359557417604b2f9a80327c53", - "0x22ef12d66cf2660fc912cf205d3561cb7b4414886061b4e5e1acaf4650eb74d1", - "0xab4aa5cd0e2dbc7b9a7d9c8c1eab2a7bfcb21f8f2c678a570d00736c8ac62e5c", - "0x9fbc3d8860e660776f794c260efebaa08c2ac8974cc794a8d3953293b3e3a390", - "0x2ddb4ba299d6f3d11739d4ff08de1a0050af0da791e385ecbcf491917c055334", - "0xa178a9931c00021c75869b9503329fb9241c3630c52a8542d6cfe82f8ec03266", - "0x196ea5c5d34e132eda367864f39532d764e55f6fc383e23faef8efea807888d2", - "0x9a78d02d3919f7df2ffe73fc9155b3f2f747506e55376ced38414df0938ebacd", - "0x010806ee3ae253894fd362cf27710d07b5505ff877e8c8b274a4a3952ba3d9f7", - "0x94872cbcdee6ce4d54ab4489d11bc9e16795faa4024da5b398cfe898bda63311", - "0x77f68f228f2691134345af813206d27efecc1557753a04e40e008a0c2d8798a9", - "0x97298d6d5733c14d3b0f88e386623d03f10a6c3d2ba8985be1a2aeb2a75c4107", - "0xa47cbf5a8e3cdf6ebf91183fa7846e13fe7625ffa493a81cad00ffb765b488a0", - "0x41d473c7c817143e73647b031b3e1aee2208ddcd3a815e2d5fcf291fdb2ddb03", - "0x513ca3c49983af6a13706ae02687a7b15397b4832eda6f794983d0b0fe78bd28", - "0xaefefd2d59b3d5606031a2b064d8d9fee001540cb29852807fdc21e5dda97066", - "0xbb301d86a5a4aa2e36741e3f2a613cc5bb1be608dfa437c3612044e9510303b1", - "0x4cdba39041935fe08470ae2197f394b0923d8caaef7272fc28436f6081e44ec6", - "0x9bdab6557da457a8b1db8760586f71e1c1399247fd99d91cc1b9b6e0662b76cf", - "0xa0762954743d50d3e935e1734f523469c2c1ddfb4045e4b0ebc879000f977373", - "0xc50ae1e1fbf40af21503d9218ff9a39d172cb8c56ea69c7dc23dbe89b9ff37d3", - "0x76c1622f865cb08e94e7e7018ccbc42d35aeb6a53d0c79804bdb67d8e062dcf5", - "0x2d2d882b403caa55f52640adc3a6eb456269911626ade3d49c488dc9f8813b44", - "0xc8cf555f828365936630ed61a9763206746a62e27a37693702d1a4475d921227", - "0x718926c6250c56a946c1fd32bec1b4c68693fd4e048de72f52a309b914f63c42", - "0xab5231abb1263ae5511fa8b2d184698059ceb2a7a8017552e9c0ede986ffd8b0", - "0x8216ef510d657a533b70f956e3a84ccb1f1e2d5891337c6edbd1c0b189cf9982", - "0xcefcd43485c45ba18c85f37edf66a9d2c1e1ba8756d9262a672d3fed4a5d586b", - "0x6dc04e851daa30362b6973c0a2854c397cb3a5a636e67a9ebb0d8d0e730f99bc", - "0x5031bdc6fb4267e481032fd03b60a7ecf2752f9e576b26cc609785969312e1c8", - "0x87d8d4342c2586d8c1004d2f865be6773ab3cabedafef07351f21a74f765b57b", - "0x2345e6289ab6555b859ca29288576c7a65f0b7f6b9cd334c853d69babc9e854a", - "0xd5ef4fa4df310a6e441777f88e15b3de832d859f8eb1f0edea4a39c0258ce32c", - "0xbe25e288895543c0bf90523b04ef7861ef6794c3986c226e81aae480c493ac23", - "0x8c7f00d99c5f47670cbd95889fed40b32df59fa92c8417aa993b9ac379273d27", - "0x0124587a58897ac32ba973fa6b517138f24a3acb1e38f79ab90a816b20e1b38e", - "0x5df55f8a13cacfe5f8d757ab6b8f721a3b6593779487eb5ca11c52bf8805f7ab", - "0x34c79e1572da0509c5ec8cfcba07ff666413f2a929b93095ecad54f3a0864fd8", - "0xce543c5ff873c8d5b4acbc0acc2c9984605fea0cba9c758cee8e7aa647337e6b", - "0xfd532b65e4de1338059dc38dd2b91636369e9f424490bcb2cb36f8a28d342143", - "0xb1ab5b925e8896d5836de1a4f9cbd99a0318a9a85c921e91940763b789a885d4", - "0xe29832dfb5416b7c24e67e2f18e49dc5809798844eec2994a50514155f487357", - "0x0807c6a00edaae8679b97e97a998a6f1bc14ae1a4623a73049212a3915b60b34", - "0xfa8282c80db992becbcbe39d38890ae41fe9d6668b9860208d2ae34ac134f870", - "0x3cd9c105542f4b07de97efefecd4e646b461d732dadecaaca62ef194ca7e3e35", - "0xe058776090fbfe48392afb81b5f1f41c1e82db7ebb18268a52fcaf49186309c1", - "0x079b972cdff157e020e52e59930ad73d9c2ad969f3b0a8d1d41577ca2253f77d", - "0x9482ec3ebe9fb953d381a17d5e0ca16653deed828125ca866571648a7c1b9549", - "0xb8b5f8710d86e34b56c46dac0cf3590f39f98d3818ca0172cccbf870cfe8acdf", - "0xcfcc15c331926f1319858a284cbcda9e770e831cc7e3a9ed4620750c9cf7cef1", - "0x86d3b3052166bda9879d41466c1b62024570d1aa425ffc3f281932cdde595de1", - "0xd80ec1fef4f09d7a075448cff856ac32d68fc505916c23f34c6b83ce1311175c", - "0x0d0dd143a7a722dbce448a8ba6d7554958d31fdde2280369a64d59e1cf5aa314", - "0xed00e1fc92348f7729c817fb23a1b84624cd158beb3c089d79e51d11e9382b76", - "0x0efc3c01569ead63fd016b3b1c756bb71a87e429f272c17363601e2ad2ba5b36", - "0x0a75caf669139ae08e5d8fca448948453896967e2541876a83d695e832e6051a", - "0xb2736a2ea7aa41ed57a002a844cc342c12039cbb25ec7ffb7de8958b3e3a74fc", - "0x1867036374c560e97f41da619181343b0a7ae829a86fd318f22f506333e709e7", - "0xebc06a3ecd2ced0b079ebf4dc7675d348c6c683d65cab0370fc3b602d3ea4395", - "0xefa0f21d2d8cb3cb69c8d1045a1c30da48419570355939cf1a6e9af092905c13", - "0x37febb7fabcbabcf5a6b65512f1ab8debf02f115497e927f8b402d1ce9472cba", - "0x641d3a4f6b08d166c64c29b7dc22e63801e574767d8201aaf34c67b254fed745", - "0x07eb048c2cfedbcb3fa9b6d6bc7f757e91e9b8b79e3043c077bfaeeae487f080", - "0xd30682ed67452732a3eabef896e9ce816cf5501e0ed69083fc129e9d31fc76b6", - "0x68f2d281c7e142addae4f47c049da4995be5c091a24ad186e9c36b70f8bcd557", - "0x22c4314f47bbecb7227741deb3e4344a8a094f73d9c65e7b5022e80a3d0c4c1f", - "0x81988a185f4509f58f7125fa6d58434a6cc5d84bfdeba24176c3058749192d1e", - "0x9f91988c8469540df60471084e90454c61970aa3953a7fdb2404ab75ad4dcb8f", - "0x072745b7287bde6de34224d7570d0cf685e612217ce0d0c4964f795b82fa0f39", - "0x8272f0fbc10ccfc220c656ff690517ec2b3f42a7fce72d768f5de3645e849209", - "0x7b80b87178e2ee00cd2d2d8bbd444357502aa5accfe8c6c5eec00443ffa0648a", - "0xd6874ded8b2aa54687f10122fc298f055ef05dda03dbcf85cf58a66320761d46", - "0x510bf4bd2bb07891a321d152bb8d5048ecdf82d2d6acd622081cb598c4a6a5d3", - "0x4fc1a01f39df3d9aaf2ce10078c042aab67f46b219dcf1c36e4e09f4573d7628", - "0x8b871035d2816adadc5fa0516b53b417c3579628081a14ead4d703b940eaf597", - "0x1f361d235c348d9d4077c30e2b5cd27f957ea81af59b0bbc25342b44a41f6dd8", - "0xb7b873f75d98e4d4e7982ad7c8ef99b3350c6ef52891a3b1ddd1a63356d96ffe", - "0x110d87315da2e4a6fbb07fe42396c703b6210c8858afe80f8add517ba656ad10", - "0xfcbe4b39d6b762fedba100d6c70ca959e527a405d83b0498b7d3cce9b50c7110", - "0xb6bf89baf937ef3cf3a4e2f6d96f8dd2b7a4195880a968d28f65e71c94970dbc", - "0xea27e0d9a95d46b7160471dc9abd866f12e2d91ba6150dbfe549b244f6aa720c", - "0x9645c40ac088182e43c5fbdc5c3853e12aaea736d5a3f94e5a11d21a78d1d288", - "0xb5a15d98b2cd290a3105b8917eb2693bf570777507526c77e116f2e84ca36c51", - "0x476ab567d76f89e0e7361dc39545d2f892b0267e07a4dc4dfeb24ef446493e38", - "0x427f68e5eb21122c9944f50553f0a73ce7221930b1470681b46cba95899b3915", - "0x1c1fea68a0cd43c0fa6ec1376278d4727ddc82de33e8833d7b05d223d1a3dc4e", - "0x28976b28bc4eb641a43f33d45f83c1df9d9e0fcd706c34a2541c5b642449e0fd", - "0x0006563b5d39b40f927ecbf64ec1ad3e58b78b8f56252cb92964f984c51e5699", - "0xf8c65920b310804481d91cde01a2c480a811827ed81ed13622dee24545829102", - "0x51e8f5f2730a8a529535ce4969bc8bd8bffa2059841b075c5df2236de23b530f", - "0xcfa41ba442e084974e56d63e802fe96aa57c536f70ebb5b3b39985ca5d8e2b0b", - "0x0061901879421b13c687dc8e64b28b7705e99d0e7e298ae9dde84984bdf4cbe9", - "0x9143dd26eb566ab38199c059a5bc100ea91a5c4c1719d50fa7e4d25ecfcbd683", - "0x6599786a5d715df51e6b8efbc5f18885d756471db329c49ce6e4ada3c9ae3583", - "0x42d0e96e81f91fe7e04885210d7a54780fe1a0419f54218271b222816de91de7", - "0x078557c161640a6c568ed9c58c10f401cf2c4ff6dfe2e4806ce3f98b591e058e", - "0xb02669f634de8c935845db0063b2b3c51f8c7cbcf7ac5eb21af2a84bf8d15858", - "0xb50c5b7ad91a053cc4c050eb908c2d3fe3efe8a955ace8bbd01c4d50b45d55b5", - "0x3fb69c64fab132e1e9aae039a8491839ef09eac3b5ddcc1a982909265cee2785", - "0x38aa9e6447d61c3a5a148d604f41842e57ca3ee66dc6f365a1cc7325f69e7014", - "0x955866f5f7098813478b00c4c9afb5a17eac107e6724f9cf15cd709ad777ab61", - "0x13a1d2c66768950aaf6ae041321a31bc1fcdcc4174d1fbc19e0c04dd2d6aac43", - "0x2870943d80c6fceba20feb50c0bc0692841eaa0b2369cd6ab934780f60b84a30", - "0x53df5e8e56d2dcc01648d7676f63d7412416dde1a4f4abb8ee8457bb0852d65b", - "0x07376b354aaf8e4dd3552d31887a69a3d24b2fc19872ce3f3df777d80ec4b7fa", - "0x3a0ab25c5d4b60b86196db0b6dee5b7d73ecd13c469d802e659fc4a635782d6a", - "0x430f3eced0fce40e41a34fade6cb90c54d26e68862272aa4d622ef28656ac048", - "0xb4db714133f6a4a9bf25bd865b8a8f628a695d502dea2ddecf805a9704651ca7", - "0x8e5ee32cc4a49f9060a4fd889f70746b264c8ea87c95713aff55292dafb420fb", - "0xb6a227be907d8705a85d583c887ab39109917a73ff4318b4511258e55331bb80", - "0x847452a491831ad8f9066605537bb7ec79348a4af5e44eeba76a76197819fdea", - "0x549aa259155441a822db8f58e5c6297aebce8e85b653c0efb3be1374f480cb47", - "0xf8d34963b0291b168e073cade3a47fa8a21512dcc8abf950a0a0634259295ca0", - "0xf19f3c05186eddd9b6e368548cf87451396ee0d420c718336f51236300aa0af7", - "0xb896f0365e479d78d7dad90f68a8e9aa40dbf8c72355c363d630e84ab2067b86", - "0x0dda4fac66853ff4f893bc332b8d4123a6fa0eaef4093482859a93a73f8890a4", - "0x0ed8410577d9e7b145c08ad09c786a7b58b1e620d15777510883f789ec080e42", - "0x0330e9dbb51a3bf97f864eff9b3c3716a7c4700c7676ad5099e12338d39c8044", - "0x8369e5eca383fb86cf5bbb30c3369cbade7f2f11586be3665d64f507d921866b", - "0xfa5630ef6bbf09eb568ddcb257fadc31e5b0722efc866d9584c874979b2b615d", - "0x8604a59a0fe2ca077be2dbd87cbf69fb6e5a617829feea196aba48bce357d2cb", - "0x470a06d531bf849a0861d3d3415bdbe6ff6d937f0c52936eef709a381d6c2d7e", - "0x7aa5d3e5e9398fd1f21a68740aa27b8c6a4deac3eb2c7f011e7684c997c347d9", - "0x68fc7791abae4dfc1167115eb9a60c5b68da2fffbba22005172b6590ba9b1951", - "0x2f66c951098fae8d39cd4d6cd99c84a9d27c3b1cdcc5756f49d690f032567119", - "0x12a44eefda6ce99e4bb46e4051634544bad627bcd8744f4fc670f8f78f4ed972", - "0xd0bf93b32bbc07d3897256198b2ad8751ae6cc944ac4119e6432a5de9be74c76", - "0xa4b57a32ada21bff0348af1854dc0915d7e1e9e5287fa34886171523f787fa3a", - "0x9edb7bf6a423c8c6277e47311d13447e41adfef94c86fcb476ca2e460698edb4", - "0xf983eb4110361e33f7ce5f1b64be09cb7c37fb39635e7b2cdea6c8bf759ff731", - "0x4fccddb8c8da74a4f6f8a93977350c630495282e2cd2c17ac3da3e89c5028add", - "0x58aa9ba3950dd2657a920e7b872f07f90a69f233588f430de0f23b1fc23eeffa", - "0x004eb62927fc9ccb759337c474f104d1c22d54e45b72ffcf897ed3c2b177c0a3", - "0x24123c826952775a00c38ff71262ee7b7c592824d9d703341bd32fc2c9bf1f2c", - "0xaf32b8e97944d5b4098ce54071ad716e51cef925678b4e5ad9aca11d40c6df9a", - "0x2570341ee5dcd3e221b84083913b8c4468904bce4e606402aa7f36cd5485d5af", - "0x900b98150b0352a4d16ca93c4457b7b2f883cbd876e3f5d84f641aa010e16d1c", - "0x87cc7d34b9511e3b1384b8e6282a88e6cc871dee3519d822bc104128d0b78202", - "0xe4e13e69e40aeea7cea98c9d4986f07221ddcab435a0f5c2ac51390f11e1022e", - "0x4c35262d4b49ad6ab37cbdfdb5979615b3c3e3948c5428faab0b053be220b278", - "0x8acf39760e9b16088b633eb1fe4ca5f3875da8d8cc98dd12eec94fb3ce24b96d", - "0x2ea80f852c9be82fbf358da34f9895be9241ccfce1e88afc7e7cbc4922aefc60", - "0xc8408153052c696c5f44cbfbebf3b76ae02a847848b122fdcafb9bcf28f7eaa3", - "0x14bfaeb2a43bab4afe17daba2615e16240b5d07727d3e87ec6e03bc43bf2b66b", - "0x759b9c537aa9ce97794b48604256bd67d0018dc9df78e4399bf8d523daf7bde7", - "0x80afb19beff915650e8b240456c242521cb0e233839f372e229175cea648729e", - "0xb95920759edf6f117332a111c557530656d990fd8185227c977e23cb696f2bc9", - "0x56b341e91985de6362a731978b64588145747432b51dd5cb52d6d1fe6cd6ef7f", - "0x136327e9bfc7b8f3df76c36074a8f13d19d2cd4a74b9db9cce857cefe93df89e", - "0x8ef3f31af50ba3534ec1fc56d4a7a0a556efb9c591e5096ab008a5453dab6508", - "0x9f0981a1fa4168b5e427a63e0f18ac931d3fbd1e1b55a9d1232df2aea29605a2", - "0x7080fd8467508a892011515c672dabf37972ad72558b8fa27068292b29e156e2", - "0x9df3567b5a70dedc8ce013b47921dc17cbaa29f4dbe800ae2f4755e1bdf63ac1", - "0x3eb605a8ea1470f0bf84edb23fbd2b6c07d1ba84e8ef98e04247d93a3ae1a73b", - "0x70d533a46a303b1f664dfa4a7fadc76a1814a01e04da701fb8a1f0bf96e1a085", - "0x648c4f212a3c3b9a8d503269bc041e1047520f0eef6a959c6232468402ff56b0", - "0x00ed2033ac3cd30a0915b377cd70c10f54a81ffbdacdfe7eb5851e931cd5fe31", - "0x2a129be624f16f9bb33b79d4b3f0aa1583df8b76732100c66997697367f3525e", - "0x2704fef7878817b82d6dc4aa1881130158759f1cd8024755a613f81a0551ea3d", - "0x876183912c7a86ac972ba77b8e9eded386c4d6af93edaef4d97982f735af0e24", - "0x105df85ff73467fcc2ddc449bbe1df464109414404eff40739704c727a8dcc24", - "0x95a8569ea985b1d7c3d489142b0a8b04442f09ed3dfa0db43bdeb306e4f6d124", - "0x07b6f3c1521537c7b0a1e1344dc88ce64dc659c0e5854df5406ecc38380b1c20", - "0x8603f626bdb8793298d89d4ce4454d3e0e58a19e800140351b02efa7d9f5011b", - "0xa457c55e9716248a825ea9f8b63c847da97349aeb4ba81108c9bce3f53dbd288", - "0x0f9de9a7188dd56eb7f151d4ec43c4366a27df031eae5febbb4b7664c2d76b7b", - "0x620c40eb62b5abffa166e955383fc3e6ec29acf33be3c8221f8ef3b3724c0ed3", - "0x74a6a6b20caab913ab6129536a88a73fa7ebfafdff97099410acc33356a18ead", - "0x9bf2a484fc5806010b68214a78a1039d2f87f298fca5af2abe86739a53460b68", - "0xc72124dd615226c6f46f70087589856e04e9450eeaa97aa936174c57b1ef93b2", - "0x5756965831d7c71e09b2e38a6ed9257a1ac0d3f2257e74c6bfa4cfb80dd94240", - "0x7f9b2bc69f3433c2789941771dffd751cbc0328272d0e42e36a56250a9f661ee", - "0xa079edf9d48b9cc82f3c92b4d4dd40137ee96c962bfc8af30e7efef77e6fd07f", - "0xcb102825fbc4b6424fb4f49579d9b0e35201284ea97b5bafcf77e6abbd2efbc2", - "0x459068ca78d09a8bd9aee003fc06ed4dd555c7f8b9e6813a04e8721dd44a64b7", - "0xad76ef6d6c096d53467898cdf99152769d7fab12cbd74c1d6c0f45f9815c7e47", - "0xaeff5ea998bf42fcfb848030fe4ed4a81c30dd1c4e43840385c418ea43296f1c", - "0xe6e9a69da29a444691fc92c4901aedefb390d10730af1a63f8f1375f6b6c0c27", - "0x40383faad4bb532b4c3b2ec31548fbd3c2c1240fa9f2fd31984e8f4805a82bf7", - "0xa456d50ad36e0e6a46ce9b46bed6e62f76438a0b57130f76fd8b42754d5f8466", - "0x5f5f817a28a8e406359f30f314db445479eadb37d40d173f379519f3472e6084", - "0xf0a08ab4c07f3ae48dc4d871098ca3ee4c9affc1dbca664982b8234f460fbe77", - "0xae47f124c99399a99dbe9b7426c260b868633bba1e6cd2e34be8a9b7578e8025", - "0x338eee92983400c3d0a81a1a0fceb748357825d7371c48029ecfb3b600f7ed87", - "0xc8abc03ffa4dac476ec6b90ed2db2cf4444124e4c1f5263230668b00d834150a", - "0x1ec6eb94f5cc7f6c5b8bb2f869b8de6692489dc6beb10f9e7cb04e9cf26250d7", - "0xf61f156fc1d1f2eb7a6ed0f2d8f377c16647dc4c1fc17b076e014042ab3e1085", - "0xc25e6bd26088a92e208a6f2b4cdd043604e177452b88552472618fa6fe369b74", - "0x784b503173b21478ce921f29d7d5fcb372697a3b1ea7a5026d3d5679bde82f2c", - "0xb51e8021cc66bd2fcac69bb48cd03a3c0b9f84ff20cb2cfa947b626e0df06304", - "0x3f743366f73f214a392527392f9cb781595da50f1d81cd8cc13c0d590a5bd880", - "0x973d09a3f621b218f5a3e4ebed608b4a1f8136aa7cc31aba479597aa6c0c8d21", - "0x39456eff8cddba6ffd56b477b3752087cb348be520be37c41f9e34655e2f1aba", - "0x8805949bf9ee489622e0bca8dd0e11316d3b2bf3965228c10e1a5ae207eda023", - "0xa10347e3193b85ef9b0c4be5688a52f6e8957b1deed3de0aa2d97adc71d10416", - "0xd40f74cff977db8b5a28c4ec6ca6d38626ff130d36936bf601229bb950404abf", - "0x2c93f97f033b505364538d1458578ead42967e5ee1437d7dfa03b9bc8279cb52", - "0x1da97afbc0cabd5177f0efbd4da9cdf6bded007519f52410762dfa806809c354", - "0xb49d04f0c000b05ca716024ef39fad6208187fb9d51a25a2ac73c18759ecf7a6", - "0xbc089a8a4506c6ee6e0e10b095c75bccaa6924e7a8600b0ff7257fc01330e5e0", - "0x09368b7227248b05c02bcc3616352507d9858148cd853aefd8df7b1731cefea0", - "0xc283232e40bf0bc1af7b514326d33ce9615f6137f5fe0e38a8059865746ce7f4", - "0x9b3f2b7f16136bf964ce30119fdacb84e0d77a5227219c50173affe216e76651", - "0x76830f1a9b1a547b9c0cd48c6fdfeb72c8d653776410ee0979aa11fe0e15165f", - "0x472b5d2a717e4c7ecb3e7457d9f040bb1180af28095eccbc4cde3f4dfbf24b72", - "0x121293ed312445efdb016a523cc704fe9c4cc3e824bdec422a878bf6fab7aa7e", - "0x0c16f8219cf6ebe5ccc0f973c7384cf8b96c9c78e8424cd0f0771e4d2fe0b0b2", - "0x142c13a397ac45da71ff04ee2ef665c1541c4c5d1c0a0ee891189a88fa4de4d1", - "0x9b9c767db95a3326e18982bab7061977279b4a418378763b616127c8e5b32a87", - "0xb1b0253b4605f963183eae33af799b538de5477040300190fadcb9c80de2652f", - "0xec8ff0d8c200a577822ebb416401998f12a40ee130d09f905584f45bfcfdbe67", - "0x2e2f0f33e0ac96b26bf1176658e886e5e213c0e63749dc19fdd8be5d351b85d5", - "0xc9fac6d90ef0be61d437e4aa1dd0390fecaa3586961e886741d9cbf8b99ed9bf", - "0x31d9c7556370e7b597a201b4e1e2d30c7c99f847cfdfe2148fc5d5154435e450", - "0x6c58ffcc0354e3f68d64a3d28f57ade04aeb66ccc99d80237c53016b88ee0563", - "0x81677456e19b0d7c678819cf6610d5270cebcde9e257234e73906e3cbd85651d", - "0x9bc992c4202007bbb3ead511a6714fd5cea12c24708984876a061d516255903d", - "0xf91c98ff9be5dedd65b6bd723750694a5a1f7e3f2b4a38d4efe0f46fcc250abf", - "0xcb53241165d81e7a7865ed45a20d197677e82481790f3d2aa6ff57e79d299e4a", - "0xce7367565c9554e12f01d3a2e31ae26e4b768a8a10f1d77e52e52d0b3cf6a2ea", - "0xaa5c74a457166178edf4509730523dd6f680d50a26116f68442a4a04263365e7", - "0x3270974abb9a1cc8be6fc911d391cd2979e2ba29926e7312b809cd7c582c9d77", - "0xb26bd32748ebfecfe6eb7f8e22b0c952cf35862d215310c7676cc0817c55d2dc", - "0x476d25b82c776922864ed31b5885e37fab0a854be9b11cc15298614d4ff00aaa", - "0x5591c00c815a469bb63e402411f5fe81573a547520bdf509f2bcd1ef434b9353", - "0x600228b1bf657d6d31cac208cf4af5c6f59c51bbb3f085aaf96d6ec793ca26eb", - "0xddc7a5d558ce74838eebf776a8da0aa72cbfb002659e91cbe2e0aa58f1e0d2bb", - "0xbe36bab1e6fba6c797408234c90266b71f937066680f5a0b89e63b5d392e74fd", - "0x9f00aaaa7ea55454bd12dfa22c8fb53ab9847942401ed240ee65bd70cbdcb3e9", - "0xab82c9c6440e3bbd9bfa1239008d111bd56ce0b013adfd3387fbb15eb9b9beb9", - "0xe8b3ea7145a16fece3ba0d0b5d8a230d11872521d83d50e19e6f76df192ba00e", - "0xcc8265ec86bd2e7ee7da04e3f44186c01735acadae0c27f91098b4a8eea6c601", - "0xca088d51d7cbafb9abc29cb65e7b0762b3124c9df2d3bd52095eba55a0e7313f", - "0xa55462cebbecf74e6e211c6d9c2c220aba6d7fd70a47f5e4acdd70b9489f03cb", - "0xb2ab75e8a3c6d1f7f74fe887ad7018096367a14979134471b50efa50e81c269f", - "0xbc13011869ab47e14983935317322c13f3b978e8be2d674e67ee91255d399d3a", - "0x60179126e30ba6643039f96d3e6ba7c817cb5f7aeb336a987b1142901bee0061", - "0xe220e7d93da29846684fa4b7a58a50ea3001c422698b5693497b6b1c4b7a018e", - "0xa0c3ed28f86d65e5c39c1cbc648fc580a9a891fcf80a8dd066cf11eb66489845", - "0x80ba93fc8cd4a1d8e0bc2dcc44926e4d430dcf52c852453cdfa3a05835f31d69", - "0x59049398c91f241ee3d8db478a44a042e30ddf8e498c193e94cb323f14aeef4e", - "0xd444d7cac86ff9d9666d48fe23072400007fcba6fa5c26a52cec085d9f7e1d84", - "0x03945a47703437b69d1bc37537938c5ac3967e0718d97c127f2b678c183c4469", - "0x162ceea6d20d80497a0e70738b9597a947e5fbaa3dacca50ae6c3752d28a829e", - "0xf4ce029db7b9598f173fa69c22c3cf3074e910e604025e6572f2b86dddd76e8e", - "0x9fa27928d9639ee69eebdf7add64bbb2560d8b1bc00a3c2ed535ef1b5877e242", - "0x1bd0a9ae4b974eed6a643084549a7d8fa393ebb5f0f60597eea01e9302283075", - "0xdb792817ee8337f5600a94bb37448602af334c4cef9a43741ad7dc73a0003829", - "0x45a3d8cf70b324094db77b5b51644ccc8c880ae99935d5404eb25f5feb5fb68b", - "0x56c0b3930330fe0a65956330b78fc0647b1396656422f786d26a74dc9e67d88c", - "0x9080bc35acbb6df2f1f8221e7516b75de85cde93fd1043a42127e98094b8dbbf", - "0xfceca6d32145290ec0178d0823b2012d3eb4d6334645bcb7de281571b8ef9f05", - "0xd8e233e7c8c57d5972b6f41412ec500296f13c3e7bed744384106ca0e5827885", - "0x1f0165079aceee6985bd0f97c8ccc6f9a5789d5d1a4eea7795ddfe7afe45e85b", - "0x155a554de7294941299ecd94a89e1f8d4b649e4e7220cfe7a00e84a224c757b1", - "0x1fbc89844c8a2aba2aea8d47138ff8a4d914f14207f93b4dd87ec9d3280544be", - "0xe780ce46a4037c2589c19ca70411f186de82bb8635ae3d02928a6dcaabc2a8c6", - "0xebb6adb6e390250e1b51c1472af8a5f2819c83c58475513839cd0e9c9e95739e", - "0x511d7d3db913db1e12f8beffa23bfe63fb192cc3f15a18a057e3fe49f0cce40f", - "0x42d252d9d137ef4e84888eb3c399b5e84b57674ea70d44619dbe869b58ede31a", - "0xfa7e75a5726f283e355957f2ad215cd899e42e5a450aa927b6b7fc78e3188279", - "0xaf9e6b01f31c97df644f8c57a309b1de3c4fb0a84ec29c270abac7ae78366f70", - "0x3b4947dea13610ab6bc4d0cf732311f79a440c9ea29d01871e245db658413e8c", - "0x779810ed9d3f14b0fa4d853a6d8c1bb75a83e28c200b7b142dc92fa2e10e3c5b", - "0xc35b23a27a537053e46800854fa9aa92e3aa7813c09f46429751e4901ab0b44a", - "0x46e4633078ec596ee049e5c5f5acd9f905b7755efa858086bed9f08ab7405f5d", - "0x45a4c2580cbe37d45b6802f8fcedddc3d2a013f5f8f70d53b3541cbd24b34c8a", - "0xb1108c643d253d3cc5d3ae8df0fa51fc09faab0eef93fcede665abb9a34eb49d", - "0x32c47a7ae97b75077f22136aa20a78c621ce83b3a7c3b05815f4da7bcbdc97e0", - "0x2d208a493ac61470768a923d8ca6ac6b0216fab391b881a9cf5a34534a14fe48", - "0x013d533980e7a434b8f7ab1ada2602cc2d98aca542ca1e9efa749931aff19cc7", - "0xf0469721dfbef37d48c3ca77c99748cb159b287892135eba383a2a87caa45123", - "0x1cd51b4a7a00570e2c28f3ab3adbf3892ffae0aa3669ef24522f506a2680bc2d", - "0xe29d92c919a58753db3ab1d8a9418630dd25600e1b107ff52b2fdf662870db57", - "0x20b5f057ecdf8571389a73156f6e17c5bbd90e53e740c24fa26e5647cc9a111b", - "0xd295fcf8e02d66e4a58a4dc00d673ee1dd1851dd4f462a1adcab1a195268c725", - "0x63cc756a7232fa0b2ed91110be537c340f57d3c68303857bce6d2c9146caeafb", - "0x00ddcd7849476a35dd03787659d08cb772fa87920fb64c42571beaf493af9466", - "0x0adb1831ca011f9f1eda828e931b1ba49cf7aa53e32fa2097531e16d07c4dc83", - "0x91097e50891b7810aa83440028b443011a0c3f14ba8469cc4eabe03c77e04cf0", - "0x8a7679036cd96cfcc65e10af7acd2dea4d0cb201f234efd84ffe56277febba72", - "0xf00eb36917994233bc547384b78af3d5add1f7af57737cd48eedb1e32dd0be8b", - "0xb7a1790f18d84d4dc73c553f3352c66478214fe85650e05117a0a787a045a0d0", - "0x1a1456a5aa3ee0a93ee776475d509ac5cddcb73dc45140ad96b3a0fef27e4d62", - "0x9d7d7234322f51824c7f183ece04e681236a535187b4cb07a0400f6792fc85e5", - "0xb9933f344a5198ad186fa84315e68f2753df0747943928fa4f3e64831ca58221", - "0xe61ee5f8dc00e34d1e10d37fa7d7d14f6d7dc75dcba9333164c3abbcae6cdad2", - "0xbf96c5722954e7fa88ee06357f881863ed9646e6fe1a37ac285fc9b46415f4a7", - "0xda6671affbcb07e6a26c468c9aebc505febf0b7756673d53d06c9077ae57f989", - "0xd5a00fcbf7eb03e64898e62e358315ad4235208a1decc6f466dfcb55ef6a0803", - "0x43565547b6ac1691420edb5de9f0e835ff499d3acfd635f52bf156f15380f45a", - "0xfb753567ad8d6988224abb69c87f654c9c41d09a4479065e3e3881a8038977de", - "0x1d187060318ca9db21b192f9ca2f8dcdb930e3cc782753ef67e9bab428bc45ff", - "0x1806a3fec2a2bab259898c5b3fbf32a08a67936d71bfe8e8a67047a43ce8acd6", - "0xf0c35b42944a703847cff3aeba794159856a9237e9a8918e0df23f237e0741ca", - "0x8ebd2e087e9b1aa10f43ad7b2043665ae291476ca9e9b195ed423191283f5ab7", - "0x9dc3a05a31af43647026611cd970fbbe364cbad1e87f5a570c1d0480ea50fd87", - "0x012b35b6b22539f56b7429319943d5581ed9e47c7bbec2918be729b2f2babc00", - "0xfbf376ea281ca53df225895990b296f99fac43921d94b1dcec44ae877430d505", - "0xe83291c8c94cb3cc80b7d082aeba19449c297190248e2aee3ab9d584b2a767cf", - "0x2f94ed1c0125985664b47994119f09835f16668554cd52503889b7d82bd49bbf", - "0x1492eb4e10dc52ddf9deeee82676e95b3f20113fa63b13313ef92c9f8984433d", - "0xd21887b57d236c8e11afcb77ac6c785a68a37ff06bc84818f5b3a669773a4e3e", - "0x215e47845ffabdb94e6eed1bf3470038016d0581f01050569e376e99ad6df2bb", - "0xd8dbcf27d0afb945f867c18dde2d717505e70578b70deb6955a1637e1d9579c1", - "0x176eba9df7dfef339754d9de98b3ad7eb27831b0bf5eeff1666c5749658d60d7", - "0x305e84458e1d7cc21906c393f55b08a47cb93a71b15d3b5b3251431d859486e7", - "0x310c1e0b72f9b52bf8ec6bd65bc87f3269543c2c03ca5cb5162e9c5934cdfefa", - "0xf04f601f20d92472c8774abe2bf1ca99f9df40aa91ed44ae80c57c0ab2f365a3", - "0x9723cb14d643a31a3dd4aaa0a65b8f3a80e09a3e7139ff758566788e0536eabd", - "0x03c7330e1650ad571be8204a4ca255107bd12d27f3ba0cf5505df39cb5494ad1", - "0x29b540add9cb34edfaa8d6fb114088b2c115844085651b58478365d52cf1f746", - "0xa31cc09ebd74500e28eeb28063f8acb027eebe26e3340c8e606158ecb3daf387", - "0xcad7b3e07237b4a5ad7b9ab1c55fe8891e7e536e304ce437aeb65e8772376e24", - "0x5c33559994fdc5d478e272a6e102aa12b66ccd4a64e97b184eb471176de9cbd3", - "0xafa9659d0926bb8f0149cf11acf574e452b313de06fbcab49c37e2c6100e308d", - "0xc9c36f994b5532754d7f301122a600e07e97c3bd646de40960491f8d55c4b3e8", - "0xdb2bddca55f3d8514952a6b9ed70b0949f8a67180b281e85bd91436a93461e6d", - "0x168545a48f1c88a3022a8f19f9f9af71e80946e43289725bbd150b6ab4f8b25b", - "0xee669e9c733a79c4dcb80609713c2920ca61d96e7696d7736badeb599980bda0", - "0x0a587b34a043523a5343a7a60bccc878c37a4cf80232dddf15c110ea25a3f6a6", - "0x53b80d9be44113b006004e0f5d399ae362fc3a512804f659868b74b0a299bc4f", - "0x2b07fe112bc5aec796d756163ceac36627d9fb04b2d5238dd83a06ba473ee184", - "0x62701cc84f09ad90a93e40506368a0ce9debfc6332f19056cb513ceaac5e197f", - "0xfbbabf5ff59b3ff84aa8342a11ee8eff0fbba66787b4b81d99a0daa687f2414e", - "0xbef86ead2a0b6289a49432ef845c12ec855319b90a12aec347f26cb3ee01af26", - "0x89f1f322f1679976b56e2d5217de5e59ed3c188350f3e4aeb99c1bdaaf016553", - "0x287c4575e57302823607b463670645ec0bc958046ca16d8c6eee8880ce24fa23", - "0x0a2c853032820e053b6aee9244a05a737734d44bdba4b13f1682c2054559b768", - "0xed1a1fbd436047063d42eb18126bf1b2bc713c2276d4466855029ce660ff0b21", - "0x70164d226f19a8c0fb43d7ebe039dab7ae019c89b2fb79459c79a35ad816a737", - "0xd3269943847a848f52315d0ea5f03f2cc1630b2ae67cecbb6570b0c763f6b173", - "0xda84b557b9b08a1477efc513a9825c23b01ef6999bde45c6564ab5d23a806fe6", - "0x290e8a219b089090dfe66f7455ccabcf1c7c5083eb5f356a0972b70a324d9f48", - "0x3a36c65d0dd269c114cc234c987b368cec0d85af96462d6e65ddc0df39b891b7", - "0x368a5ae8165c24c8cc7c290b2cfbad87954ae5bd608a475eb38b69425816fc28", - "0x6c96afc7c8529090069985faea331df832a56474d7a3578da838e1d0a637f6ed", - "0xab2743334a8feb961021834da8b327eca6e1cb92d03f9763d2593b3cfbb11896", - "0x36c63cd8f35a484a7a747e91f1e5ffdd0f08ce3dca8767a0aa4f09106e6a7c11", - "0xb3280b3c33801be364d648444daf6f2bf2ccd34d43a88174e6b398b1369f8a61", - "0x8c40e36583c2bde82fe680695fab00e750ef3697b063adcdc0a89f44baed5604", - "0x6f06392dcdcd1d4aadafc62be81f298790390f0efbdd6fb82ce6cd5ab87ca6c4", - "0x0f754c072e36624473db47d326c90500f0827bf1b26e162d1b8836ad80f1ba85", - "0x8c9917569fef1fe821793332cdbe2973bbcbbbe1edd622caffe13edcd858c4fd", - "0x9253791a0e3fc025b77e35ccae9708f61107372fa4cab2e65d04636c1f412c7a", - "0x6c64e1c0cdbf5afe46e1074e4cffccd3d79540cdffc8c08d9aa13d3d5af97659", - "0xca6722167191824dab24f240b5dfe96fe4042752fd6ba116189de04467074892", - "0xcbe96ebb79b9438f876f142b1091479860bb888e22104d609fa4c0d324213264", - "0xbada1690fea645b649ce0f5573e298fa1c4047f1efb984fd02f02ee68527d11c", - "0x2f1df07d06673e0f233cdeb1ee333837c68564ddca44f37c3700f1828f431e0a", - "0xa9a6c643d140f1f8b7ed0034ce655ae5e629905c98ac3a9dfc509c6c095f4962", - "0x0c8de9f46a37b65335a6d612fe76065870df9bccd44f45a9e7b35e4b2ae6c514", - "0x6f9a470f1f3d799151c3ef3e88aa015ff2a9596986b21e3d41b32e3a61854e10", - "0x2f0bb3bab2eddb624d5bd5e3751e9b3cc9768ea3d00e102bc330ca7ab2739e3e", - "0xb354636138b0a90a54d4bfdd6d753dfeabe966eac6fb8f9936828e2ed22e00d6", - "0xd7446d05158c86b8dc8e610ffd44bac922e29e3a2a6c02c4bf6bc65494a34921", - "0xe605ab28c06ebf469f22dfd6609e764ae91ceeb0f08d005d0d269f39bd92b2de", - "0xc040eadf39805baa34688861efe5532e005b8e392409e56ca84051838f660547", - "0xd1a14142157703fdca04e19adcbc9c4c2206472e51851fc5dec6cc897bdca0e0", - "0x8518d36a3d1fd366e55af5baa5f84bf26b4b147537aad6987092c2d5ff1076ec", - "0x7c09e3ae9af7ddcf860463f125af46501787768a2a32f04a8e30c41622bd18a9", - "0xff0a61898d1f7b8617b93fc03e045ace32667e87231444211b8ed3e1d6d9091a", - "0xc617d5bf9f7b9556ac62b80a3b7d3a0800a8e29d857bbd214f8ba0fe5dc84777", - "0x959d6c79d9897acb1f7af8b0f67147e48901f09dd6f3ceb98e15475fc7a8722d", - "0x825c063de66f1d0940e561bf42c8782cd559ffb940a81b763e3476a51f90c840", - "0xc6a235f1fc6f28fdb60dd5065760395eb9e55013a70b2d04711d9cb210e659c9", - "0x0425e1047f0861e81a56f4a9a8ccb7dbce2322284700f1abfe20e5109470c509", - "0x48cdee281ffbe98aa7193370a093eaa620c14d161abbf52906b4e1d20f93f345", - "0x5e40e2155659f19ff91dd8c01e30d377ff1c0fceb857f65e149238e9e0810dcd", - "0x04c19aecf54bb9b72940870e62f918ef34a0e69014a3f6beabd08e88a715eae5", - "0x70a7f8305fccd7056e60799a0ffb706ad1517eac1ae491d47e38adbc1b74cecf", - "0xb2e30b98823886050c204b10f9945dbbe6c7533b562a309a1377724403c6d69e", - "0x421c178e7ed2514d8474a474bb0119b762a27d07c4d2b53a5299d4605a589e55", - "0x1be35c7abb5f5aa152e51fa4c985abb822c76d1a015cc00e08120fd5e119ca7a", - "0x370b1c1d2f7dde6fc9e8cc013e4914e29c7a2a69d22f6e76ecd621620ef1ca56", - "0x5b347124455e21117d0e58abe95ac6c8620207607ab5791956f157e6116d39a0", - "0xc827bbff3c8b3af593130575bfdd1740b6d4c2112f3ee097079fb257aff313c6", - "0x36abeb1686803078e3c43b824b4711779abd39410b1f90df15b14372d87a4e62", - "0x4c5013300fa18777749c67fc2222c165cc25f702e37f5216518532eadab0ffdc", - "0xa133d995cee5b21daf0b8923196dd9022f9c1e92644a087816c717db693fafca", - "0x706a6945f9e336a6fdedef7e5e030fe80ef85396f793e1d7186bafad5f89e895", - "0x70c5bf8c72ec8b8503be9c57b0a36fe8ab8c125b15a24478584c1a2ecaf619e8", - "0x7827ea5109deb5301adce34225d3205a960f4ef04f9947b6abbd7f15415714f8", - "0xe8a92316584f49b78aa44b4444fd929a5722e1d3c726557c4c717a95f7cf481e", - "0x6d09421c949bf4390c2d6c6311dec1e84b6e27e57f4cb58241fe4f0b398a4987", - "0x0c59b1fdd47dad0e3a0ac32e22bf62d32179c5ac549b0dcc848a6b21a1ed7731", - "0x7eb81ab843c48038d28cce0d7ed6bfc1ce54bb58e6e67c2e2902de39bd03dda1", - "0xeff68ca1e5c3636a1a99f85eac6da3ebb60fd71f60af5d56e9d74d2ebe1720be", - "0x622f2e6d4e6caec693ecc2f26636bdfd9469c0209eeada729322b877cceda9f5", - "0x75a71bafabc7493f49315e513475c1913d7f63c03f15f11c84710b6932e225d5", - "0xe95a306d2fe31703e72c78978abe2f33a2e2b53460ec3f519bb154acf3dce430", - "0x129c576ad5a6bff661ca7c6b98911f6763cbc627040b990cbd452354a9ffd206", - "0x6a4fb71bf8c14d1f71de308cae35ca4e13c98367c2b2371d81f56fbbd25518c0", - "0xff36f1a3f8f896ec0d88a709ec039e013e67d7bf6ac302635a4e030272e2bc2b", - "0x4e0cd123af26b0e68da5435b6ae38b5fbed553d93ee30118011daa6858778138", - "0x730643d8137b48f19acc99f2af0ee5d597876ce2b685f1c302f46af15e01d362", - "0xdab79a5c1b8bd67d0548e4437541643047c27afcefe17120faa5118e086aa24d", - "0xabfc7ba1e31ae0eca9f2540ad659e2398258a5bb8e4d5ac825070edb681590bc", - "0xbb99b0f3536b68335c224a145b0f529d12cb338993dc5af8470869ae70905234", - "0xac9a8b037cff1254121c961f01b4f7b930d41b1fd892820531e0842054f482e4", - "0x580081162b8af8ef1f54faf787dbeb5d37c4a2edd47373725e06faa797050bb7", - "0xc9b25d249b92ad5917db4b830f270249d546d419368207f2aa0bc290d80223c3", - "0x97e8ea15a814ca9a8d02ea199d02b697785d3aa7e73360561d37509799910ead", - "0xe62a23f04006f542b9cbb8ed97acb6bd95a232c93d98c8ec4187dcacdbcd3045", - "0xfe9e76148bd3e88593fb3b0583085f74a8745036e64fe5b55cf37dbe3c75901c", - "0x9b4ef5709b47cc3e282a4676df6c8c34b86baf7eaf518eb130dd738222e856d5", - "0x4bdc5432c63e079ca7f8659141037e5cf7b887ac766da2c107dbcc523dd14573", - "0x65f032673743dec1e5369a3e94ac2cdc3b4a0be94dd0e178bdfe5830c621d06c", - "0x214ea5319fc5d024eb2bb417e89cec35b80178d0b20bb20b42b72f070516edc6", - "0x8aa6b0b5c40e043a90a1594e47a44cc590b1f99f86a68a4919ffdbbf71565800", - "0x70f8f0b5651c40637960598a596a96cf1ed92aabb5ed9f467e0e7b7673149438", - "0xd7cc04a4b65a9680e3b4443e49079a4e94523c382937e6a343e9b989c22e235d", - "0x25f64fd9763296c6ab16d130c0edac67e4752889911b1cfd5d3f158aaab9862f", - "0x5c5fd33d8881217fe1382452e347ed82d1a94dbb4837978365646561017e5e53", - "0xa6a8927ae26d4c2f211c2ef04148010c327426e0334dcce3158683df029a24dd", - "0x40bb1f3b424aa5e99317dc741de376a80fb94542669a3feb99b40b2a6d22ec2f", - "0xc6e9eb24ce8e0c04aa42b93e141b4c3d5b138559a1dc5c5a7be956e5f05aeb2e", - "0xe617ee5f2dc435e602e1d430edf0ea2add116d4ba5e9cb32b4f643f2601aa84d", - "0x8adb3fefae75bb49316d320895a1ffd7bfc0480aa9daa5b121b40e5d56e04d33", - "0x02fb213eadf6879b9a5d15cde4e790f9105f5c3c7708d13986ef07b1847c2e1e", - "0x070b7aea86427b86acab643d7cf954154c2b32328aaa362b66e9ecca6114e2bc", - "0x94f35d87c36b0ea66d266ab78db91da34d7a20963b0df25ffb2761f5f1143775", - "0x928bb11bd6dd6279e6b76cbaad9b4b52321a5fcbbe90c3478ddb054388a89937", - "0xc90b9a430d7bdfff20b06c353bfe442fd037a498d3f014fe1c40e5f21eb19828", - "0xb75cd777e161ce99e3e5e7f5d806aec8d439013a6cf9690aa1048a1c5739b4dc", - "0x058a7e4ef26e205a882f494f494c6e7129b0fe86b876d9c00973cdc180295486", - "0xa4887c96632cb505ad3852d945d196771d0f7bd40ab9b72d2bc09238172d5846", - "0x50ab789f6752f80e682597918466fa68056a37b0c465de838a55d736ea84bdf6", - "0xbbee13312c2367e59a82c309072508746382acba41d663fe1e911afb8a482efb", - "0x28a66c81fea6102d5043803247eb0e1dd52978447fdd5b32e1e7b1768e35377b", - "0x73744419b7418b9a2be4ee3273f8821c7b9bfd56a860004a87b5c213a591afa9", - "0xf9d871c681e564861733365a3f5af1aaa1d3cf95c1710202415c88d7a1f94482", - "0x899333c6bef47acb176a06c3f14ed3b07dc15f8da60e216ebc953d6852cc43c5", - "0x4fae646dd3f8e191af1718a7ef564b7465a0edcaff7d7bab2ea072c5e9e40843", - "0x65f00d4aabceb364f0b84d182e1516ed8f52df5db636a0d1a0acd77585e74b78", - "0x68170c02bb4aa0c5397544a6cbe12096ecc220cd5dc2298dd14b36808a617a90", - "0x26cf67931d27d3c57aa5f9f3c126d06139baf2cbb6fa93be598c1b9c56377136", - "0x37e6904e1e589529ff001e2aa3b43360c15a69044fc313778091c30a82f6118e", - "0x8ebcad0d38672b49be9fc1f1c0d25ed2855c2ac2b725c3338f3590d82d5486ed", - "0xcbe274dabf2709b47d7e092f242c622ca0f6259686ddecad6b22a43a4a46bc07", - "0x3f96331d637966e39876d9b6f892e11f74fcf3f498b5dfa602a0af336d2b0a83", - "0x4ae1d1d79137bdcdd0f5b5d3ab4cd43f01e61e30c587d44d0543e785094cc851", - "0xbd44440a0d673f1882aecaf16c2327afb9df874eb2daf31adf24d449b0e728ec", - "0x3b975b689813ba2aadb8a108f19f1db664ac138e815f0d731d91f84399be21f9", - "0x1db1ce07ff17018cdd28ae30e2dfcaeb55882f3bd49b0beaf8f195f4867e1450", - "0xd5a35916b5faea1f64912a28275725beec995d669009202b5e8650809ed698d2", - "0xc129b330a4c2b6cdb5cc0cb98fd13558e0ad917ae77f04544be21368aa893996", - "0xc65b552566a173e86c9104bd7c008b93c0df8292cfb819f5901175993b7e8c43", - "0xfb596a05f4ae037bddeca195978b5e2fa06f82267bb9babb1a899cdb54994daa", - "0x71abeef5139340b5056402f9249231e0985a8573648ccaae3c1eba5f35b28719", - "0x425a029c98a7d44898a017a57f68ce4e5855b86f9420fc414066a4b6ecde63fa", - "0x297b42cd7edf7a98bc06be48f67d3c37d9b76ad56e66cd6a801102ab3da2fc97", - "0x1cb82224122cd583990e9c47891f9765ca58a18c766bd4137e22955d58c4d2a9", - "0xef28e699bd86b66dc8226ee81646cab9a72fb4cba231a1850a479c1e0dd26b62", - "0xa29cf03e433f96cf569f60ba4d9dab643ee1e2a91139a627156709a613f413e6", - "0xb2415cad444d14d55961acb12d4a865b7a842b1053c5e49afb99688e5c860b12", - "0x95b76af4f8adcaaf9db4538c7eb2c363ee2f81b35e59cf87837e47d6f65f8a2b", - "0xd21316c66ff394c5b5c68ab58f58d3ddb2bd7dd69d95f1f0a60d96af431e87f3", - "0x1e51a49b0dbfa32ec21b5e8deab7e77c538b12a85b7f4fc52835a63190f19bf4", - "0xe7a409a75e6f15b1aafe1f7e21e3e748f739052aee29330c5596fc93812d6215", - "0x04dc2eec1265e13c7cf4d30e4a9b5651ac3877bcf23cf0739e7acc7d2ada04e7", - "0x295ae29c936f69548ad8d4bb0e1eff47053e6a91a5e8a0c7feb46fd27163cb5d", - "0xa00802d28c986489fb853f552288839649f8ef12931917e9d9c6ffc3a1882613", - "0xd6b0528cacd65e282bb430f7cd85f8618b149bd7af5f7954d2153c843f30f5d5", - "0x845fcb6340daad5a17b4c593eb7e8be51aeb293c3175cd64e75721a6eff21132", - "0x75861ecbe5acf9ef5ede44780f48246aa41d066cd3648d96f047c99a29326ffb", - "0xbe7ad3308b03d4efe4064f3e410b5679b945eece14ae88b17fa8a6f1851b9adf", - "0xb2480065dbf650792e751b31292a5b5b4d3741c4953fa9453bfb13b9b301e1d0", - "0x8ad00c6223281317266cd8ad55dcd787a83ffbf7b06e1ca140ac6c9df1ec3d4d", - "0x769613ab817f33ad8e850edc3ce134c433a78d5621400db68b2d329093071cba", - "0xda7ceaf48d05b365dc5f0dd8e7e99dd2c936b6d56b4f5206913f5b4d0204b6e4", - "0x22f37954e5fac57d4be50165bdbb2d5dcf6cc3e408a00082395dab4062362df4", - "0x4171311ce9e6861edd0b7cf23f6985b842db3533ac8742672c7057ecf2af422f", - "0x1dfdec887f9a8afd6c1aa5d3873eb75757c78fc4059749336cc436a0813a882e", - "0x1b06e12f2b08761337c327dd042211d150a56447b3ac862764c1bf1099c76acc", - "0x840538edcc20e749c6e54911ed935feea5fe3ddcedd053893f9ec5c2d883e430", - "0x65e02a556f7081cbbbb6b330ed515f49d33ad333fd08fbea316eef6f9f1e1bc5", - "0x0259ac911da531b69612380ed23b76722db0db69825b62dde584258796c20f2a", - "0xf474319ef1006ad4b71c252c716fce6c86ce3eda4a85e9a9a429d52847eac60e", - "0x57589ba25ed4dd7ba73a2eddd699330e45c41215e58a32f0d90c2df38e304314", - "0xbf48f75427f0599d90b71a1a4ff9793f160280551c68f4926d3fbefe29a1c269", - "0x75702a49d856e21181e941afe8c06f0b9f0ea75df42ed42488d378290ebe385b", - "0xecf8efab88d554d2b23c6e2fe655439a2ef500b2281e94fb594ee052bc14fcbf", - "0xc6abed44a3d6b9d472d5a70f3c94c919e1a83f989d5e0c5e014d057d0a0a4afa", - "0xb39f873d565515cb0df952b13d6c1032e1b9f15467e35c63a6dd178e384d078b", - "0xc1a1462a79fa154936dfed0bac9ab1d97e43337d91aa8c62552b7e369a2885ff", - "0x83f9c5eccade7bd48532e222f47438e6355f6e0f996d81b87ba4e5221d06b320", - "0x062fc493ef0afc47456bb4bd210930ac486c9ebcc7266583c3fa1e8dfa59a628", - "0x500cb212e4723a40afea27078d27a0a37f4731d33116c7a184ae60a1398e2636", - "0x67d8cb5704920651f1d9b6d72561debd109dfcdfca4e0ecddae4f09c65fbaf83", - "0x3f3cb63f47a39f133a225100630675d7368eea9fd6e7690d739dbe751631fe75", - "0xccc7ecee542d88a7f38d527b4e442d42fcddce3c9d74d35f6fd33e135500f3b2", - "0x695005da9ea891913e1bec5f6d97c9552169247f1a22533d26404458e4dbbcf5", - "0xcea875ff006a32d8dad269f55669f8cd955697c7f7fd7b07226136043b52a4bb", - "0xfbe09841656a3c65a4d831c0927957584099acf699fdaa00e71b9de26f34525b", - "0xdc8b42886fa76307307d4edb923b42cc6eb67d3e25e195e7e05f8aa0eb967af2", - "0x3a3d8e27197099a63e09c23840148874acf9567e5fe8d88ca6a2d99e3f116145", - "0x74c4e73dc04859a08ae7bf7d469299093cb8401e6beb720f534ed01a30dbc0c7", - "0x84787f46bb75471c391717109fbb4a92c4f4c161537adf1e9661cde296918b12", - "0xebce6d93d882b8eeda6f9348f3e8d572cbcf2e6df88fa127e8e1a614dab1b0f7", - "0x1fbac072344ca14c05930fc19aad195dae3c25ffe29a4a8475b0b64b218a33cb", - "0x381b4df5a1d717ad98041480122b6023fa792c6148de5db58bbea7e40cd41d20", - "0xc87bfc610476d389c81fed1d2a1b3d9bc5535f69974dc5643c1535fe8c10f985", - "0xced86f4ad4ff19d8a1ea486e4bd5fa6c206e0b6db21f8fa438a5a22c6cb1e250", - "0x7e65fde194082e34c06d646c6f1d21ec7706e458e7faea03e54a0baafd7556cb", - "0x3179342dea037d102b7f1f74e769de04c449cec68dde436a2fab0585b566f3fc", - "0x441c3bf395e8bd203257174a71d5524d7156f568c5383c62d958067d5f340a3b", - "0x082b814f46a74d13db3f6ac1e52c925891c7aca430ca8e89a88cab883d2cc24f", - "0x9a764446ec809034dfa3d413661ec5c3aec7bc5710e199286e588e70cb176da3", - "0x62b23721832be3b0c4538ad6fe1c5bb7c3b92abe578b1b7ffbfde944a80c200d", - "0xf52a79b71d2252e98418bc07ef73f2ea4bb8cb5a995877f9a61521453f7e3450", - "0x5659dd8fa8b8753b813198fa296b156e643cf922180d38cf1bac91d8bca5ad9d", - "0x09e3afd7d44b0b539271b0b870a92c3221d2f7f743b9ba02d4323dac307ea139", - "0xd72486d95617ff5f5dc361b9b2d728e04578e30851dd0729316946d95fbd9cd0", - "0xca6a9a0ec9a63e06d7da875764e68778456b1c98bb4c0d3fc2c986493dc73c72", - "0xb16eb7bb1564fb7d2d49e6f2f97f26a2c5df622f5b9c68e955c5205735cff001", - "0xd6c65001ff49b50505603ea0f2d34279b48d8ca298359736eb7034626ee4c317", - "0xcd5ba2623df896bf8b43d1c3386425fa940ecbd3629547b051de0aed4322c2d4", - "0x0fad5d5af8aeebb6f5e858c34d51a714f51f8e3d747bcabc286fb07b2f61308c", - "0x93f62cfc4585256a380af952edcbefcc02511cbd55d70e98b6ed7aa5dc0de993", - "0x9093289e66a8f346c84ea4682ebb419716305b7f45d8360b233a3abd9e7a2c05", - "0x62da3d62467bb7469641feac39db85acf269ecdce7bc0addb89f1ddc78f2d3de", - "0xafd6af93bea2e77e7043af55205aba278f729273ff21cbaf00d3ff9ff6e8b8f6", - "0x3051aaa4803fa6f80dc36b435b4c3a5bb8cb9f348e51e7e152a27b4a683c7c8e", - "0x373f6231a73364404bb65305c7a89094013f6a8ae98ca2a75c4230cc1b8d12ad", - "0x3890eaaffc80003294d3797f70881598e7f198fb71dad62cbde054178b5a3ef8", - "0x538faf4c2d6ed3b97821245a38b47695655363bf211d241ff089c52ba6f61bbe", - "0x29548e5c68a65811c8c1eea9cbbd8760d69bf06e93a2fbf1b514bfac0a6282ff", - "0xc4afd9fce4c32c098b6ee5986dd352cf9dd09801ba7c29506cc2a274eb1bb2a3", - "0x933d6dc350acc540c0f95ac6677f927ba7975b650a8ea9c78f1fd73f7483de66", - "0xd14d5991e05ce14fe2bcbd654746fed2ee3baff27689bd83c44ca7a4a43b0650", - "0x973e65b2331d4626ebcc97626b3e54141652363ae890fa79d390cb805b268196", - "0x97b95a0144bba045308021f8a44e34d79f36f6fa7a7504c10fdd090519d98c4e", - "0x6e54a6b12db8f6d74e7c06cd180c9d2a8cb73bdd53f09eb024e107834c054f8d", - "0x29c7b35aeed09d15805c83619c530357262513a712a6baafb75d28c68283a7ad", - "0xd242050949baaa9803b167527cabc4894b314af2ad089d83c5c4cc3f2168038a", - "0xa9c6b7ed7e270b42446895024efc73360a3dd2e5c83c188fb0e428c197e0382b", - "0x3ba79a736c20063395df402cf936221780b586c558eb7199bddc5f951c8a6138", - "0xcaadfa54cfe198b8facfe562bee3d5f5181a4874dbce9fd832efe2c442e97601", - "0xe63a5c0e4963019c6ca9be2df546d4cf6eda4dcdd5b4cc59063ef37d5caaee3c", - "0x11cb204ac6c475b46b330e5188a97506d31ee514fb5423c5cdf7b4ff3f8c2dd3", - "0xec67432c6a36b4f860496173a545fd9501dfb1d35d5d56b9c7e436e85d23eecc", - "0x0905f798d8dcdf854ac0081555b2baff032b1757896813d60bb97fae91fd0a41", - "0xbe28fba21b4f0a161609edfd58c681c69501d25ff2bd93cff4fad72e2c1403a0", - "0x9d68038eb2cec9f0a25466e9a92e512f71f1d3f42baa0fe0a9ace9581721ef59", - "0xe303ef36737f887993b33a55fd72128171c4b10a8af0f2e9d65037b2fd5b0bf4", - "0x69695054a9d422100f001f80a78cdb7d68a160fb735c833e3e29b463151c671d", - "0x3422a23d87658ce8f3496057288e5d82c773c608a5ccea7a2e9db79867147ed2", - "0xd7f7d77b2046684c584f05cf2b9f053a09de702b01e236d14c5d7171ae90277c", - "0x72a1118ec0450001756141d860e1cd0554e711598238901b2ee8f281c427de70", - "0xd19be6dcb740c15351e0d802859a13ac418fa296cee788a2e88696281886d57e", - "0xd3a04e9d3943a1ec817dfc862c34ea20bec6703f20b59a5131e14175624b9f57", - "0xe53093925106f3ab9b0e5104a6cb9833e84c81eeb32525dbf198da95bb0a692e", - "0xf614510acc1dc376c2f9ec0cdabe185c5387ae57e1e7dc2b21e8c9af15e7b0dd", - "0x5397cc3e5ce518f68d40a0371eba89166eb691c85394d2782b87187e5fba95a5", - "0x9156e924006cd6f0e75e5f1b6c6b67d2aa5cd329485633a1f8c81542c6ad73fe", - "0x51947014d3658dc93561abfdf5e59c5545bff2006be70d20752fd0041b4c4993", - "0x17960456465e1fe23d9212dc7379f88de6839d76fd34e328c714109068d1d79d", - "0x71a004f35328853ace7ae57ceaea04ca0ff40a638e2a422d9a77a442f9f8594d", - "0xedb821e436a29e2304c4e582b1edaeab4fa4ce815e327140d34dea1b28eb3cfd", - "0x0fef692f940b1040a8f06dfdd345a509d0d50a47026cb8d76f1137cb0cd172ca", - "0x20df1d7b21fa8f3aa4ae122c90444959ffce4b3bf91bbd12ede4a730cd5281f1", - "0x5a77441704fb00b4e37cd7d992e419cf03c9db67855682b5dc9cc2ec5642d1af", - "0x70e572d6816a924ba8059f7d80ac3dd2da6e378235d9b13f9f75c3bba7358fa6", - "0x820a5912370c8911460bcaf34800c9aa0442c5f6f6346778eb8d0881f0c8bb0c", - "0x03a7ba58c25e37f3eb4632575cd5043335a93256a0df25d4a40054771ae2f1f9", - "0xecd2166fba2cf74b9c39fbff60e390b719cd89d944a2a279fce7548b0449c0cc", - "0x4084df94d1c481f270ec12d24021c2c617c57266c84e5c3c7110f435a23c1f88", - "0x3e3bfdec73b4a43f78177843d0800856eea15d6e4f3421cbd416e30415438090", - "0x9e1b68d2c1da24388da8866036cc9fd41ab619ed4fee244409294690550ded0d", - "0x7fa35eea26c1b7565d773a13519b56788df9d552da0eb31f5f932cf16698cc4a", - "0x6a5327f7999fd0f13d92990c9de4de4326ea7c36b2886c10851e7d8eb6725500", - "0xc43b78bb69ba7948d95bbe6fa417d48c50563d1a299dfc055a45a9ab99463f40", - "0xffeff6f990e8db57d4982faa0ecd50acbd56a0eb408e20e28037b1a7a5da5b59", - "0xc2334f59cd63c7ff3fc656ddc1be9267cabfa0775a2c1d0b6aa031ca0f6d509a", - "0x1e78eeaba6416f172197e83af9d7cffabebc1a7965b7efcc5d81fba214214ba4", - "0xf8af478a5f4950e0f14c533ad42f0fb678d5a4133dd6c24cc99a0325bebcb6d1", - "0x893b2cac08a72a47a50688703bbfa59354d3178ba6edffefe12c1b19fec00764", - "0x14aa1633a0b52136d59bead586a4efafbcc8b39a380979b33c319c1b4eb3c8ac", - "0x7a449e7d7349bed91d4969b6c2930bfd651389b18e6fd95e166a5f3b3dfd6a9e", - "0xc013d618ec1fe221e7542266573294f6a14b03a492c764bd8f9b086a43319c77", - "0x5ae106689e13a32cd3469bb7bffd9650d626088ef3fb6f0efc73cfe53134ff5b", - "0xf64afb533a3e37a80f7edd723cec317d7102d2443d43046a1c7aa961ff961493", - "0x6ae14b675f46a21a82a1a3c159cd776ca3f38a964eaf732a5ac741488de4e00e", - "0xba7cc771fddf1d827ff2e29bbffc15902567a1f1e4b480d44f67031d8ed63793", - "0x40a627652cf9735a888f09dda1d706b98c957eaf01519338eb84a8453e8c753e", - "0x845f31cc82334bf7065a3dc2f567b1ceb1b4ffb2271dc6c53f881c6ab95dba64", - "0xd12c514ff09de9f213b56724dbec8bb105d4460adba79916ff6a1a172d3e263f", - "0x2327c4236f51735b982dd05887d2c80fef76d4024eed66994ab1580052e4d7fb", - "0x05e136fef4858eef97a056a210373a067874a3c9a9f0de31a6723098b5d717c7", - "0xd0e32a96ae165e2d61f1b483b22532f25bfe32aa45f94c6be43a9cbb724c202e", - "0x7b8776f0cb373249d0a55518716efd1e85052e758e19f543c241aa1eff158ca1", - "0xafa4f1c453ce6de8b39979692eda55a9cf5be39ff3cd730d8d5221ea21dc9f28", - "0x54795f6c31496ad41286c5f6c3e52115ef3497d59b926d0594a21907d816988f", - "0xffc48e89cbd6b8368439f57924835d36aec456015a9a3caed6bcc19686c69b51", - "0xcb3c516accb4ffe4e5035f84729c0e26c58a84b86fa6dd454ff6e1071dc402b3", - "0x51a67409c5d05ef1af96dd6c1e3646e0406b3e35baea5d632d8f4038778ca27d", - "0xf094d57aaa807bb6f4e8134467460e8753b50364df56717197e6f627f737906e", - "0x86cb75940bf6be0c4bb3d3cdb88159918afae4c55d26a279402cea6f8d2ccfd0", - "0x85d528f7078e70e3fa3d04fe4ac0e2487960c1e06fefb5f5d5c768f8fde829f8", - "0x7c18f5c8a9f1762cc7cee964d36d0d12e9e64132b9d64708afe614b03fcf2e1f", - "0x8fe9e91f40f64f2a393cd135296f2bd1048d59459f5f6aa92a339349dbc61999", - "0xa61ea3415cf5e47a3da59d7acc939466c1d20c48756ad135bcf544d38824076b", - "0x9d890bb7aed350295e4d0257d9fff826581c80395c5526a97300a6980061822f", - "0x0a677a540c74223bede5ac77d6b53e40cd061841f5ec2acbc1f7875c9569fc53", - "0x82bd62cfa2cfc52bda9d99a2c31ca2ee4b70a4dfc50d08f0dca514bf5005482f", - "0xb26d15256ce584284d73f5b0af2c8ee200d16e40e30110f7b7823869b95eae86", - "0xe586127218814e8feb2f9906ffa74f04bc01c1bb0d685e4b70f37b078e8a2ddf", - "0x63d60bdcd23ea605099aa7f5e46cafff74d271ae3614b7b24c89a3d693422068", - "0x07dd6971aa0e032c8562eeb4299e41c74f5afab19613fef8d976bdf7892e6462", - "0x68d630ba083be8fef27f9846d35b271314448cb2e9f34bbcd4f61cef2db80653", - "0xd40eafd8c080c71f7d7940f0da435be6127051223c9052c383ac02dc3049a7eb", - "0x3a3eaccf11c9648c05656827eb8cbd18905d5795e7cd6ddec682572ba6fc3b20", - "0x6190aa5fe42aeb259a6830672b1968870301cacce8ef21fb6dbf9eef3ace773d", - "0x239bbcbcd51c6aff9f9efa6ff5cc614f72e6df3aed121756006b1187f4d86c79", - "0x123d4c2f434d1a8d59111830fddce85d7b4f64f1e62f30deee3f97de0162bac5", - "0x3e730ce7ba743b7ca91f3acd93b30bfb824722d1f72b2ee584b151ff3c3bea19", - "0x3def4dbaf973b8f612dd400e45a33b193ea77e4a75df97180ec9537d7957f87e", - "0x6a4b4d6b96521f22ce56ae384def1428aa7bb6ca4cd0b1116cb6b9ecf73c9af0", - "0x0e7af6af3a0805046f1e02469d0921ed3128fc5201d773f0979d33d2f336cae7", - "0x21bbf154d3e704b1078b32b0d4a97c468a3d00a2efa1d4a7c0ebbe2b2f572e07", - "0x809330ad07a6a897e5f4d3e88f9c0e8b2b3d7883219afbc37af062f215cc7b92", - "0x928710a7c75346c6a7984b55057cbba2e05cd4d3d185c763769db4130f24105b", - "0xde04fe66a27a785d28e871dcd26f21b57e916cf1793f4584e4e969e7bc2c37b1", - "0x5af449491866d210bfaf3c47e45ea0954a131aad4d7637ddfd7cc5ad3425f8fd", - "0xbf383c8d01735d77b6207bbd9eba88e0d7c8a916610d86be263cb4032c13fde1", - "0xb93c0e248ff221aac5c090475c777975d8bb9d5c93d44fe073fd29f465ef25d4", - "0x3d16452b3cf0109768630044086b7f5f9949b60acf4b007d323ef476bc3f0855", - "0x1ccf023ff32b0751eacdcb7a0e6af68fbd5e7dd6d71db40dfe2f5f0b4c031bc3", - "0x061f48dbae0f5b0eb2ed1536f5f494ea6ca560a2c833b1dc9cc3804b429d01de", - "0x37ad2c019ce57c0ad520940199a304d84277bb68c6921103a8ed05e9e92350c8", - "0xa00a8323f032589d2d2bcee02c844b6c121144a17d5cd980718cb4365ef52680", - "0x21392973724ba280fd1aaa9bd9af4a39492d05dd26b9859fdeb3dc2de94850ca", - "0xa52bddb394523970d8483c93ebd1587d19bf41d91db4478a3d59e04688923ee7", - "0xa9a5ec6db281726f1e29d847510f454caa79ad70655e05ff37b396cd07f8943d", - "0xddb529c1dc9e915a1138822ba9856f11f1a2cd6ee396b435264910a7b8a3822d", - "0x16837c1968a89f8b06f81fb6d762a176da0f76a6e33702c874b827f53acf2cec", - "0x22c6a11cb8b4c6abd624a097eef3afbddfc20b19b0a28cc2342bc527edc81eeb", - "0x1fca7e93a1c9a9a194e177c3e61ce180e1c555908127ab751afd128de00ca934", - "0xbc8c239ad0f1241d35e3ce0a0b76f9e1cd3648932f59a45e1cd7ed431941d43f", - "0xb05d13ed67183420496de5beb3e70796e97e324a4917f646808b37a071a420ba", - "0x27832944c1d8257a21c7ca3ef09c0d2da2a6adc231a1d3cc1f05326c523ce5e4", - "0x16bd1db9f272fb09880fc56d0d479ea83bb7d3fed115be5148ea567731ead1ce", - "0xa9f4f3e273a684e3ebe1d4c2c5c3e99690dc9b0be6c998270d2dcf88392daced", - "0xa541cffed5ee8f0ed241e164443df8bb8d86d4bf709848f082067a15048dfefc", - "0xa0018276c51bab875d0604f0ce4a742f172a3e2966ea532131896b6016c5f117", - "0xe39f2c1d9c1e787738c97ddb7a572bf68a3caaa8770ba29bfa19a7bb07523f3d", - "0x7bcad3b97bd9cf53d62907a328c8a3afc2299b7803ee49d51b48195362f4cd0e", - "0x3b2d518f0246d68a05015598478fe9699c59ca9bbb9a2407209195238511e6ea", - "0xcb67150a83c179ea6485edf64e7d048b4ee700bd4f25e58ddb39035c2de70596", - "0xf06a3f425c380c6f41b30d12b7ec84807ea8a48f847ca39c022dfee4b1d329b0", - "0x45cae9a13323cca0620866bfdd29738086d29b3f13be2d7ba37435f2d6970133", - "0xd28a77dafa38b03ef77ec931863d714c2606da08ee4650da537d37195554ff46", - "0x5654fac4aa4fdd1b9e861d60bd5c8b439ea22be1cc6a5bf8ae33f6527557c614", - "0x3b8bcd37cd5213cba8fb58766e02723a940bfc7a3bf1c2d86798fa96591dc1fd", - "0xb83158b79995fb0194b90d469bd778372fdb05f7ac73c5dee4054663915bef65", - "0xbcc57ae2d7de6e4f035199645aafa7c5a2961a2a719492e4383dc10f175a74c0", - "0x064b737e28145b5966f8e6b57a82b55aa3259394bb2d9724f56a38774c9da28b", - "0xa5603f7d9f8074cf15c38b81ecbe74d204287dd20658f1fa8defec7fd1af82e2", - "0x7f84a0cc9f7c00416c1ead9cd147b032ee331cc4b8f8a50286a3c0490f3e3ae3", - "0xcafa7be96bd0eec075b24e104c7a45984fc485b465ddd07c605196773d1d2c8b", - "0x1df7d26ff663b82de2e8b61508c6f2d4a887780bc352adc8de04757bf893482e", - "0x1aa8dc5bcab34596fdeace8239cfc0e276338870e93f98729a186ed79f31367b", - "0x843fb16c8c27cbb4939e7866d5c85fe520af6837edf73623216e775bf20f06d9", - "0xb71ecf25beb948644b41ccc6d5757fe79ce134b04d57cd7c926784fcdaf7b5fb", - "0xc537fa771675139a050e2bfa006aa11f57f004073c194c35d651f6121a30f6b2", - "0xf255d36d2bf6820b49cb24eb73cbb8c47ccab618de312ff7eb6cfc7937611fc1", - "0xd49dd620f0d4a4f987815d31cfc3b560005a069f3e83443fd33f46f091f4c506", - "0x6dcc0592f053243a8350705a0dc97507216dfdb4176c0738d5a355ac7e3045cc", - "0x60640bf7d73e49e213734edb953cd4a013cb8a5b69c29aa0ce02233c9ddd1233", - "0x786951be5c53fccec94f014d4e27806f5cc7d3392f1358fd8e11c27beb2b4183", - "0x4c66f28fd5c9990332a4887662dbc99ed5367cfc3ce10acbeed6e55f2efad9a4", - "0x54b2a8eed380430a9ef311ff8540089080fb7925a2d2251ddec3b8afef8234ad", - "0x84a6a38cb3e78edf671ae775997414ee25e61f2729c54c91efdb66df630742de", - "0x9c49abf630b8fb3d73d063a189cad528c0abc4b8c0278687da74b649a2ddceca", - "0x29b1704440ab5d6e9c0d33b73743ecadac8d4bcc266c41f65c698f0cb5a7f63b", - "0x6e674e7459e87c76259ec1a2043ba85d813491afb80beb4f52cbce2a0094f12b", - "0x8041a526aa1b7902848007e195d12226b1bb6bc6edb4f6908f9f8280641925cb", - "0xe61ad33e75f8be18a12d3e19d9d21c3cd025e7cddf471ca81afc5ffff037e6f3", - "0x966df4d98827b298391c2ddc42020d616317c3fada2b2669624df77eb094e8f9", - "0xda2d77843ab5d4d04bc2f969052ff2e9ca5a37bb337d5cb88c4e6586bbd68d7f", - "0x5138cbf64fc819e065e2747648615b4e885638b63e7559c4ab48038d79b5d736", - "0x4135daf130280c035422841f66801a1d5a47d1a6ff0ce369001f1e69d56efb36", - "0x211e30168bd1511b45f627506892a09590e5fc8c9445a083a2de9ce19abfbb90", - "0x15d35f6144c6a7efbd7ff31a5e74fac71d77828cd1c7d1b8585a50a3a0470b52", - "0xe3a65c1bbac89de608a238d16fe4b731f3a1bb891aefff297a9a814c020c076d", - "0x6b451effa44e9b9a78ea9f75d6a703631597f758b6a72b09156a1f649a40a469", - "0x95b208a56b41def22bf993ffbb2b3203d2ea77c4950e400356e4a93d0e39eca7", - "0x4586ff01941a4aed359b8da7bbd781e68e389041abba7c7d4799d2c0b69a68ab", - "0xfbbfb1e0b5076d6a7b27305d49e85e753989efb8d0b60f05873aaf389e145188", - "0x4cdfe0f66e345d5e236707a630779c9d2626949105b8496c5a474372041c51b9", - "0x4009331fafcbcd51419930e20371a81a728f587fc5451064b3e30f96b92006ac", - "0x1fccb0663f77a7d8fd817e27dd23f944072f9cdd8f4db2bcb18cb25c43a44e65", - "0x8acb488d06ef20328d1e2273dc1f2b86333cf141ee45ef197a0d85b4511f71ad", - "0x6fdeb5d759d17d9a41c5c23ccce53be6a339a4281a94229605ff3a8ef0108bf3", - "0x91fae20d86ecbf24bce76f5549919e14e0c68b626b0e1029b757f6c47e6d0ccb", - "0xf94240a3835f000b16978ac341b78cf47749ee4f50b75fa604b05609a1a93480", - "0x48724b3a9fc3c561dece8290e98ca194a82303ee668986b4ab4cfda1024cbaf4", - "0x54be60b8d2cb74111a722a7701c003320f903711a28f3fd95f0595a145f549e9", - "0x3dcdb34a158e3e772ff2c59ee5445a3ca61be010275e7326cc932875709f9875", - "0xf3b121df3e45d4f19d9f4d44b129d3882383c71ae5551752d9be0686a9320bd3", - "0x2fafef8a4c9efd8d964dd837b6ecda0f96a126881ce1d49e9cdf2e87b665a6c6", - "0xed4ca0414f558cfba4da48618992dd35b8763086100d8d2b18d65a100c6b4607", - "0x97c0b83741c4e2c8f9201254f40d7f67b1a54962d02a1d578ec7eab0559b023b", - "0x81e9f38d62c67f456135450e87155eb0f71a490a06292fb582d012f287872974", - "0x38bea72de640a233cd181d16f80873b71015963a06636bdce39683f4adce850a", - "0xb0dffaab6ecd9acd3e18ecac5cff4ae6d3218630c2c92463762dc40282529dec", - "0x380555e6207cd035475dc10d8d69d49d2b6c6762f3c12fcb9dd0bc8c977dc330", - "0x57eed5f25a20f20b1fdcc4b03c29457e278ba9d854adbd0b30311aa72717393c", - "0xe66251a1f18e28afce206bd9778458a14c34799751b8dbce11a54b7a33ce5961", - "0x030c049cb797c288248def3fae9d82ac16244b1e97defe570497e85a47132534", - "0xaf32abb9a98798238af391309e8abe48d082cf20b38b85e2be433b710cf8df23", - "0x36935c94d5aaf8818c77ec5858030c547ee41a39c5d7d6cb47c728f8addefea3", - "0xec783f1d068308d0731336afca7f01a4d74319a95135a4aa7dc148516a54821f", - "0x342c01e292f2dd33e4f27caff58421da0589e8c14496d26abc6c76fccc0a50b5", - "0x2b64b35b10ec75bab483c242a1a35c943840b5c2c4b4c469afc845d7c5bba02a", - "0x34762a557170ed1a82d921c04240fe265f20908f264b670916ebbcfeb3bee59e", - "0xd566f848784e163a432c3a5de93d41b428e48710d22f27e3ce3b576977824bd7", - "0x1df1e674b2fadbbb970dcef6c13037d7688646d4ae063dcebfc6e0e2ff858898", - "0x706edfb454d513f47d290c0571b3a2cdd249928ae0ea7b06a39da05abf3aa637", - "0xa67886701eb8d0a28efebaf06acab77965595cda6970dbd26e50178ff09e6757", - "0x9dba4d0baa8c0a035e1cbb5e8e751013da8a98d8b70c2a4dc037f89d166f0180", - "0x5a5fdb3656bd50635f2a62685199c0ae135f2ad68059681219066aed079ee23e", - "0x243602e30ea061853ceb1c2dc0c39240548b656354be710cec3bb9facad8550b", - "0x97beaca9ffc0142d5bdb759b8c2ca340e60f422dab507ccb710009e49641bd79", - "0x371cca4f59c01ef18996aba60bd647df238128b58245e2fcfcd46b8ad37fe67b", - "0xd4800dafc3cf31fb7126cb750cc04c9a09c8c313ac21c4d104455bc1205cb62f", - "0x5a4540b39ad3a2b0b0628cc63cabaa95c3f380f0589ae05abf28ca7eba9bd2c7", - "0xe895260d744db389d7f4db88319fc604b6e8518837b4c74bcf306e6ff5380bb0", - "0xc59f667005ce3d53c1ffa9d20182b90a2088e10eb9283de3baae435956c48293", - "0x6d7b1f5141e279b906bac93e6ec82c701edb1a9a7e3db1bca7d164515c1251ac", - "0x1de48aee06ef7f90c4f16a553a8c142cd42212cf5dd1c68935d7a3a11cf42ee9", - "0x4d0322187e4aa50cc91fce589824e5db8542c0246a861571ecc8df118fb0f970" - ] - }, "accounts": { "0x0000000000000000000000000000000000000005": { "builtin": { diff --git a/ethcore/src/engines/authority_round/mod.rs b/ethcore/src/engines/authority_round/mod.rs index 485a7ea04..75b06b218 100644 --- a/ethcore/src/engines/authority_round/mod.rs +++ b/ethcore/src/engines/authority_round/mod.rs @@ -1572,53 +1572,6 @@ impl Engine for AuthorityRound { self.validators.signals_epoch_end(first, header, aux) } - fn is_epoch_end_light( - &self, - chain_head: &Header, - chain: &super::Headers
, - transition_store: &super::PendingTransitionStore, - ) -> Option> { - // epochs only matter if we want to support light clients. - if self.immediate_transitions { - return None; - } - - let epoch_transition_hash = { - let client = match self.client.read().as_ref().and_then(|weak| weak.upgrade()) { - Some(client) => client, - None => { - warn!(target: "engine", "Unable to check for epoch end: missing client ref."); - return None; - } - }; - - let mut epoch_manager = self.epoch_manager.lock(); - if !epoch_manager.zoom_to(&*client, &self.machine, &*self.validators, chain_head) { - return None; - } - - epoch_manager.epoch_transition_hash - }; - - let mut hash = *chain_head.parent_hash(); - - let mut ancestry = itertools::repeat_call(move || { - chain(hash).and_then(|header| { - if header.number() == 0 { - return None; - } - hash = *header.parent_hash(); - Some(header) - }) - }) - .while_some() - .take_while(|header| header.hash() != epoch_transition_hash); - - let finalized = self.build_finality(chain_head, &mut ancestry); - - self.is_epoch_end(chain_head, &finalized, chain, transition_store) - } - fn is_epoch_end( &self, chain_head: &Header, diff --git a/ethcore/src/engines/basic_authority.rs b/ethcore/src/engines/basic_authority.rs index 648693bb0..22be7d42b 100644 --- a/ethcore/src/engines/basic_authority.rs +++ b/ethcore/src/engines/basic_authority.rs @@ -168,15 +168,6 @@ impl Engine for BasicAuthority { self.validators.is_epoch_end(first, chain_head) } - fn is_epoch_end_light( - &self, - chain_head: &Header, - chain: &super::Headers
, - transition_store: &super::PendingTransitionStore, - ) -> Option> { - self.is_epoch_end(chain_head, &[], chain, transition_store) - } - fn epoch_verifier<'a>( &self, header: &Header, diff --git a/ethcore/src/engines/mod.rs b/ethcore/src/engines/mod.rs index e2e91f25b..697fd59cf 100644 --- a/ethcore/src/engines/mod.rs +++ b/ethcore/src/engines/mod.rs @@ -432,24 +432,6 @@ pub trait Engine: Sync + Send { None } - /// Whether a block is the end of an epoch. - /// - /// This either means that an immediate transition occurs or a block signalling transition - /// has reached finality. The `Headers` given are not guaranteed to return any blocks - /// from any epoch other than the current. This is a specialized method to use for light - /// clients since the light client doesn't track finality of all blocks, and therefore finality - /// for blocks in the current epoch is built inside this method by the engine. - /// - /// Return optional transition proof. - fn is_epoch_end_light( - &self, - _chain_head: &Header, - _chain: &Headers
, - _transition_store: &PendingTransitionStore, - ) -> Option> { - None - } - /// Create an epoch verifier from validation proof and a flag indicating /// whether finality is required. fn epoch_verifier<'a>(&self, _header: &Header, _proof: &'a [u8]) -> ConstructedVerifier<'a, M> { diff --git a/ethcore/src/spec/mod.rs b/ethcore/src/spec/mod.rs index 85b4e75cd..8d0702878 100644 --- a/ethcore/src/spec/mod.rs +++ b/ethcore/src/spec/mod.rs @@ -22,5 +22,5 @@ mod spec; pub use self::{ genesis::Genesis, - spec::{CommonParams, OptimizeFor, Spec, SpecHardcodedSync, SpecParams}, + spec::{CommonParams, OptimizeFor, Spec, SpecParams}, }; diff --git a/ethcore/src/spec/spec.rs b/ethcore/src/spec/spec.rs index a262a2a3f..fc94d0473 100644 --- a/ethcore/src/spec/spec.rs +++ b/ethcore/src/spec/spec.rs @@ -24,8 +24,8 @@ use ethjson; use hash::{keccak, KECCAK_NULL_RLP}; use parking_lot::RwLock; use rlp::{Rlp, RlpStream}; -use rustc_hex::{FromHex, ToHex}; -use types::{encoded, header::Header, BlockNumber}; +use rustc_hex::FromHex; +use types::{header::Header, BlockNumber}; use vm::{ActionParams, ActionValue, CallType, EnvInfo, ParamsType}; use builtin::Builtin; @@ -436,9 +436,6 @@ pub struct Spec { /// Each seal field, expressed as RLP, concatenated. pub seal_rlp: Bytes, - /// Hardcoded synchronization. Allows the light client to immediately jump to a specific block. - pub hardcoded_sync: Option, - /// Contract constructors to be executed on genesis. constructors: Vec<(Address, Bytes)>, @@ -467,7 +464,6 @@ impl Clone for Spec { timestamp: self.timestamp.clone(), extra_data: self.extra_data.clone(), seal_rlp: self.seal_rlp.clone(), - hardcoded_sync: self.hardcoded_sync.clone(), constructors: self.constructors.clone(), state_root_memo: RwLock::new(*self.state_root_memo.read()), genesis_state: self.genesis_state.clone(), @@ -475,45 +471,6 @@ impl Clone for Spec { } } -/// Part of `Spec`. Describes the hardcoded synchronization parameters. -pub struct SpecHardcodedSync { - /// Header of the block to jump to for hardcoded sync, and total difficulty. - pub header: encoded::Header, - /// Total difficulty of the block to jump to. - pub total_difficulty: U256, - /// List of hardcoded CHTs, in order. If `hardcoded_sync` is set, the CHTs should include the - /// header of `hardcoded_sync`. - pub chts: Vec, -} - -impl SpecHardcodedSync { - /// Turns this specifications back into JSON. Useful for pretty printing. - pub fn to_json(self) -> ethjson::spec::HardcodedSync { - self.into() - } -} - -#[cfg(test)] -impl Clone for SpecHardcodedSync { - fn clone(&self) -> SpecHardcodedSync { - SpecHardcodedSync { - header: self.header.clone(), - total_difficulty: self.total_difficulty.clone(), - chts: self.chts.clone(), - } - } -} - -impl From for ethjson::spec::HardcodedSync { - fn from(sync: SpecHardcodedSync) -> ethjson::spec::HardcodedSync { - ethjson::spec::HardcodedSync { - header: sync.header.into_inner().to_hex(), - total_difficulty: ethjson::uint::Uint(sync.total_difficulty), - chts: sync.chts.into_iter().map(Into::into).collect(), - } - } -} - fn load_machine_from(s: ethjson::spec::Spec) -> EthereumMachine { let builtins = s .accounts @@ -551,24 +508,6 @@ fn load_from(spec_params: SpecParams, s: ethjson::spec::Spec) -> Result Result, /// Enable snapshot sync pub warp_sync: WarpSync, - /// Enable light client server. - pub serve_light: bool, } impl Default for SyncConfig { @@ -131,10 +115,8 @@ impl Default for SyncConfig { download_old_blocks: true, network_id: 1, subprotocol_name: ETH_PROTOCOL, - light_subprotocol_name: LIGHT_PROTOCOL, fork_block: None, warp_sync: WarpSync::Disabled, - serve_light: false, } } } @@ -178,8 +160,6 @@ pub struct PeerInfo { pub local_address: String, /// Eth protocol info. pub eth_info: Option, - /// Light protocol info. - pub pip_info: Option, } /// Ethereum protocol info. @@ -193,27 +173,6 @@ pub struct EthProtocolInfo { pub difficulty: Option, } -/// PIP protocol info. -#[derive(Debug)] -pub struct PipProtocolInfo { - /// Protocol version - pub version: u32, - /// SHA3 of peer best block hash - pub head: H256, - /// Peer total difficulty if known - pub difficulty: U256, -} - -impl From for PipProtocolInfo { - fn from(status: light_net::Status) -> Self { - PipProtocolInfo { - version: status.protocol_version, - head: status.head_hash, - difficulty: status.head_td, - } - } -} - /// A prioritized tasks run in a specialised timer. /// Every task should be completed within a hard deadline, /// if it's not it's either cancelled or split into multiple tasks. @@ -257,8 +216,6 @@ pub struct Params { pub snapshot_service: Arc, /// Private tx service. pub private_tx_handler: Option>, - /// Light data provider. - pub provider: Arc, /// Network layer configuration. pub network_config: NetworkConfiguration, } @@ -269,76 +226,18 @@ pub struct EthSync { network: NetworkService, /// Main (eth/par) protocol handler eth_handler: Arc, - /// Light (pip) protocol handler - light_proto: Option>, /// The main subprotocol name subprotocol_name: [u8; 3], - /// Light subprotocol name. - light_subprotocol_name: [u8; 3], /// Priority tasks notification channel priority_tasks: Mutex>, } -fn light_params( - network_id: u64, - median_peers: f64, - pruning_info: PruningInfo, - sample_store: Option>, -) -> LightParams { - let mut light_params = LightParams { - network_id: network_id, - config: Default::default(), - capabilities: Capabilities { - serve_headers: true, - serve_chain_since: Some(pruning_info.earliest_chain), - serve_state_since: Some(pruning_info.earliest_state), - tx_relay: true, - }, - sample_store: sample_store, - }; - - light_params.config.median_peers = median_peers; - light_params -} - impl EthSync { /// Creates and register protocol with the network service pub fn new( params: Params, connection_filter: Option>, ) -> Result, Error> { - let pruning_info = params.chain.pruning_info(); - let light_proto = match params.config.serve_light { - false => None, - true => Some({ - let sample_store = params - .network_config - .net_config_path - .clone() - .map(::std::path::PathBuf::from) - .map(|mut p| { - p.push("request_timings"); - light_net::FileStore(p) - }) - .map(|store| Box::new(store) as Box<_>); - - let median_peers = (params.network_config.min_peers - + params.network_config.max_peers) as f64 - / 2.0; - let light_params = light_params( - params.config.network_id, - median_peers, - pruning_info, - sample_store, - ); - - let mut light_proto = LightProtocol::new(params.provider, light_params); - light_proto.add_handler(Arc::new(TxRelay(params.chain.clone()))); - - Arc::new(light_proto) - }), - }; - let (priority_tasks_tx, priority_tasks_rx) = mpsc::channel(); let sync = ChainSyncApi::new( params.config, @@ -359,9 +258,7 @@ impl EthSync { snapshot_service: params.snapshot_service, overlay: RwLock::new(HashMap::new()), }), - light_proto: light_proto, subprotocol_name: params.config.subprotocol_name, - light_subprotocol_name: params.config.light_subprotocol_name, priority_tasks: Mutex::new(priority_tasks_tx), }); @@ -385,7 +282,6 @@ impl SyncProvider for EthSync { self.network .with_context_eval(self.subprotocol_name, |ctx| { let peer_ids = self.network.connected_peers(); - let light_proto = self.light_proto.as_ref(); let peer_info = self.eth_handler.sync.peer_info(&peer_ids); peer_ids @@ -408,10 +304,6 @@ impl SyncProvider for EthSync { remote_address: session_info.remote_address, local_address: session_info.local_address, eth_info: peer_info, - pip_info: light_proto - .as_ref() - .and_then(|lp| lp.peer_status(peer_id)) - .map(Into::into), }) }) .collect() @@ -527,8 +419,6 @@ impl ChainNotify for EthSync { if new_blocks.has_more_blocks_to_import { return; } - use light::net::Announcement; - self.network.with_context(self.subprotocol_name, |context| { let mut sync_io = NetSyncIo::new( context, @@ -546,29 +436,6 @@ impl ChainNotify for EthSync { &new_blocks.proposed, ); }); - - self.network - .with_context(self.light_subprotocol_name, |context| { - let light_proto = match self.light_proto.as_ref() { - Some(lp) => lp, - None => return, - }; - - let chain_info = self.eth_handler.chain.chain_info(); - light_proto.make_announcement( - &context, - Announcement { - head_hash: chain_info.best_block_hash, - head_num: chain_info.best_block_number, - head_td: chain_info.total_difficulty, - reorg_depth: 0, // recalculated on a per-peer basis. - serve_headers: false, // these fields consist of _changes_ in capability. - serve_state_since: None, - serve_chain_since: None, - tx_relay: false, - }, - ) - }) } fn start(&self) { @@ -603,17 +470,6 @@ impl ChainNotify for EthSync { ], ) .unwrap_or_else(|e| warn!("Error registering snapshot sync protocol: {:?}", e)); - - // register the light protocol. - if let Some(light_proto) = self.light_proto.as_ref().map(|x| x.clone()) { - self.network - .register_protocol( - light_proto, - self.light_subprotocol_name, - ::light::net::PROTOCOL_VERSIONS, - ) - .unwrap_or_else(|e| warn!("Error registering light client protocol: {:?}", e)); - } } fn stop(&self) { @@ -661,24 +517,6 @@ impl ChainNotify for EthSync { } } -/// PIP event handler. -/// Simply queues transactions from light client peers. -struct TxRelay(Arc); - -impl LightHandler for TxRelay { - fn on_transactions( - &self, - ctx: &dyn EventContext, - relay: &[::types::transaction::UnverifiedTransaction], - ) { - trace!(target: "pip", "Relaying {} transactions from peer {}", relay.len(), ctx.peer()); - self.0.queue_transactions( - relay.iter().map(|tx| ::rlp::encode(tx)).collect(), - ctx.peer(), - ) - } -} - /// Trait for managing network pub trait ManageNetwork: Send + Sync { /// Set to allow unreserved peers to connect @@ -737,10 +575,6 @@ impl ManageNetwork for EthSync { self.eth_handler.sync.write().abort(&mut sync_io); }); - if let Some(light_proto) = self.light_proto.as_ref() { - light_proto.abort(); - } - self.stop(); } @@ -891,262 +725,3 @@ pub struct PeerNumbers { /// Min peers. pub min: usize, } - -/// Light synchronization. -pub trait LightSyncProvider { - /// Get peer numbers. - fn peer_numbers(&self) -> PeerNumbers; - - /// Get peers information - fn peers(&self) -> Vec; - - /// Get network id. - fn network_id(&self) -> u64; - - /// Get the enode if available. - fn enode(&self) -> Option; - - /// Returns propagation count for pending transactions. - fn transactions_stats(&self) -> BTreeMap; -} - -/// Wrapper around `light_sync::SyncInfo` to expose those methods without the concrete type `LightSync` -pub trait LightSyncInfo: Send + Sync { - /// Get the highest block advertised on the network. - fn highest_block(&self) -> Option; - - /// Get the block number at the time of sync start. - fn start_block(&self) -> u64; - - /// Whether major sync is underway. - fn is_major_importing(&self) -> bool; -} - -/// Execute a closure with a protocol context. -pub trait LightNetworkDispatcher { - /// Execute a closure with a protocol context. - fn with_context(&self, f: F) -> Option - where - F: FnOnce(&dyn crate::light::net::BasicContext) -> T; -} - -/// Configuration for the light sync. -pub struct LightSyncParams { - /// Network configuration. - pub network_config: BasicNetworkConfiguration, - /// Light client to sync to. - pub client: Arc, - /// Network ID. - pub network_id: u64, - /// Subprotocol name. - pub subprotocol_name: [u8; 3], - /// Other handlers to attach. - pub handlers: Vec>, -} - -/// Service for light synchronization. -pub struct LightSync { - proto: Arc, - sync: Arc, - network: NetworkService, - subprotocol_name: [u8; 3], - network_id: u64, -} - -impl LightSync { - /// Create a new light sync service. - pub fn new(params: LightSyncParams) -> Result - where - L: AsLightClient + Provider + Sync + Send + 'static, - { - use light_sync::LightSync as SyncHandler; - - // initialize light protocol handler and attach sync module. - let (sync, light_proto) = { - let light_params = LightParams { - network_id: params.network_id, - config: Default::default(), - capabilities: Capabilities { - serve_headers: false, - serve_chain_since: None, - serve_state_since: None, - tx_relay: false, - }, - sample_store: None, - }; - - let mut light_proto = LightProtocol::new(params.client.clone(), light_params); - let sync_handler = Arc::new(SyncHandler::new(params.client.clone())?); - light_proto.add_handler(sync_handler.clone()); - - for handler in params.handlers { - light_proto.add_handler(handler); - } - - (sync_handler, Arc::new(light_proto)) - }; - - let service = NetworkService::new(params.network_config, None)?; - - Ok(LightSync { - proto: light_proto, - sync: sync, - network: service, - subprotocol_name: params.subprotocol_name, - network_id: params.network_id, - }) - } -} - -impl ::std::ops::Deref for LightSync { - type Target = dyn crate::light_sync::SyncInfo; - - fn deref(&self) -> &Self::Target { - &*self.sync - } -} - -impl LightNetworkDispatcher for LightSync { - fn with_context(&self, f: F) -> Option - where - F: FnOnce(&dyn crate::light::net::BasicContext) -> T, - { - self.network - .with_context_eval(self.subprotocol_name, move |ctx| { - self.proto.with_context(&ctx, f) - }) - } -} - -impl ManageNetwork for LightSync { - fn accept_unreserved_peers(&self) { - self.network - .set_non_reserved_mode(NonReservedPeerMode::Accept); - } - - fn deny_unreserved_peers(&self) { - self.network - .set_non_reserved_mode(NonReservedPeerMode::Deny); - } - - fn remove_reserved_peer(&self, peer: String) -> Result<(), String> { - self.network - .remove_reserved_peer(&peer) - .map_err(|e| format!("{:?}", e)) - } - - fn add_reserved_peer(&self, peer: String) -> Result<(), String> { - self.network - .add_reserved_peer(&peer) - .map_err(|e| format!("{:?}", e)) - } - - fn start_network(&self) { - match self.network.start() { - Err((err, listen_address)) => { - match err.into() { - ErrorKind::Io(ref e) if e.kind() == io::ErrorKind::AddrInUse => { - warn!("Network port {:?} is already in use, make sure that another instance of an Ethereum client is not running or change the port using the --port option.", listen_address.expect("Listen address is not set.")) - }, - err => warn!("Error starting network: {}", err), - } - }, - _ => {}, - } - - let light_proto = self.proto.clone(); - - self.network - .register_protocol( - light_proto, - self.subprotocol_name, - ::light::net::PROTOCOL_VERSIONS, - ) - .unwrap_or_else(|e| warn!("Error registering light client protocol: {:?}", e)); - } - - fn stop_network(&self) { - self.proto.abort(); - self.network.stop(); - } - - fn num_peers_range(&self) -> RangeInclusive { - self.network.num_peers_range() - } - - fn with_proto_context(&self, proto: ProtocolId, f: &mut dyn FnMut(&dyn NetworkContext)) { - self.network.with_context_eval(proto, f); - } -} - -impl LightSyncProvider for LightSync { - fn peer_numbers(&self) -> PeerNumbers { - let (connected, active) = self.proto.peer_count(); - let peers_range = self.num_peers_range(); - debug_assert!(peers_range.end() >= peers_range.start()); - PeerNumbers { - connected: connected, - active: active, - max: *peers_range.end() as usize, - min: *peers_range.start() as usize, - } - } - - fn peers(&self) -> Vec { - self.network - .with_context_eval(self.subprotocol_name, |ctx| { - let peer_ids = self.network.connected_peers(); - - peer_ids - .into_iter() - .filter_map(|peer_id| { - let session_info = match ctx.session_info(peer_id) { - None => return None, - Some(info) => info, - }; - - Some(PeerInfo { - id: session_info.id.map(|id| format!("{:x}", id)), - client_version: session_info.client_version, - capabilities: session_info - .peer_capabilities - .into_iter() - .map(|c| c.to_string()) - .collect(), - remote_address: session_info.remote_address, - local_address: session_info.local_address, - eth_info: None, - pip_info: self.proto.peer_status(peer_id).map(Into::into), - }) - }) - .collect() - }) - .unwrap_or_else(Vec::new) - } - - fn enode(&self) -> Option { - self.network.external_url() - } - - fn network_id(&self) -> u64 { - self.network_id - } - - fn transactions_stats(&self) -> BTreeMap { - Default::default() // TODO - } -} - -impl LightSyncInfo for LightSync { - fn highest_block(&self) -> Option { - (*self.sync).highest_block() - } - - fn start_block(&self) -> u64 { - (*self.sync).start_block() - } - - fn is_major_importing(&self) -> bool { - (*self.sync).is_major_importing() - } -} diff --git a/ethcore/sync/src/lib.rs b/ethcore/sync/src/lib.rs index 0469cc0d8..97541adf1 100644 --- a/ethcore/sync/src/lib.rs +++ b/ethcore/sync/src/lib.rs @@ -37,8 +37,6 @@ extern crate rand; extern crate rlp; extern crate triehash_ethereum; -extern crate ethcore_light as light; - #[cfg(test)] extern crate env_logger; #[cfg(test)] @@ -67,8 +65,6 @@ mod snapshot; mod sync_io; mod transactions_stats; -pub mod light_sync; - #[cfg(test)] mod tests; diff --git a/ethcore/sync/src/light_sync/mod.rs b/ethcore/sync/src/light_sync/mod.rs deleted file mode 100644 index 7c47e75fa..000000000 --- a/ethcore/sync/src/light_sync/mod.rs +++ /dev/null @@ -1,788 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Light client synchronization. -//! -//! This will synchronize the header chain using PIP messages. -//! Dataflow is largely one-directional as headers are pushed into -//! the light client queue for import. Where possible, they are batched -//! in groups. -//! -//! This is written assuming that the client and sync service are running -//! in the same binary; unlike a full node which might communicate via IPC. -//! -//! -//! Sync strategy: -//! - Find a common ancestor with peers. -//! - Split the chain up into subchains, which are downloaded in parallel from various peers in rounds. -//! - When within a certain distance of the head of the chain, aggressively download all -//! announced blocks. -//! - On bad block/response, punish peer and reset. - -use std::{ - collections::{HashMap, HashSet}, - mem, - ops::Deref, - sync::Arc, - time::{Duration, Instant}, -}; - -use ethereum_types::{H256, U256}; -use light::{ - client::{AsLightClient, LightChainClient}, - net::{ - Announcement, BasicContext, Capabilities, Error as NetError, EventContext, Handler, - PeerStatus, ReqId, Status, - }, - request::{self, CompleteHeadersRequest as HeadersRequest}, -}; -use network::PeerId; -use parking_lot::{Mutex, RwLock}; -use rand::{OsRng, Rng}; -use types::encoded; - -use self::sync_round::{AbortReason, ResponseContext, SyncRound}; - -mod response; -mod sync_round; - -#[cfg(test)] -mod tests; - -// Base value for the header request timeout. -const REQ_TIMEOUT_BASE: Duration = Duration::from_secs(7); -// Additional value for each requested header. -// If we request N headers, then the timeout will be: -// REQ_TIMEOUT_BASE + N * REQ_TIMEOUT_PER_HEADER -const REQ_TIMEOUT_PER_HEADER: Duration = Duration::from_millis(10); - -/// Peer chain info. -#[derive(Debug, Clone, PartialEq, Eq)] -struct ChainInfo { - head_td: U256, - head_hash: H256, - head_num: u64, -} - -impl PartialOrd for ChainInfo { - fn partial_cmp(&self, other: &Self) -> Option<::std::cmp::Ordering> { - self.head_td.partial_cmp(&other.head_td) - } -} - -impl Ord for ChainInfo { - fn cmp(&self, other: &Self) -> ::std::cmp::Ordering { - self.head_td.cmp(&other.head_td) - } -} - -struct Peer { - status: ChainInfo, -} - -impl Peer { - // Create a new peer. - fn new(chain_info: ChainInfo) -> Self { - Peer { status: chain_info } - } -} - -// search for a common ancestor with the best chain. -#[derive(Debug)] -enum AncestorSearch { - Queued(u64), // queued to search for blocks starting from here. - Awaiting(ReqId, u64, HeadersRequest), // awaiting response for this request. - Prehistoric, // prehistoric block found. TODO: start to roll back CHTs. - FoundCommon(u64, H256), // common block found. - Genesis, // common ancestor is the genesis. -} - -impl AncestorSearch { - fn begin(best_num: u64) -> Self { - match best_num { - 0 => AncestorSearch::Genesis, - _ => AncestorSearch::Queued(best_num), - } - } - - fn process_response(self, ctx: &dyn ResponseContext, client: &L) -> AncestorSearch - where - L: AsLightClient, - { - let client = client.as_light_client(); - let first_num = client.chain_info().first_block_number.unwrap_or(0); - match self { - AncestorSearch::Awaiting(id, start, req) => { - if &id == ctx.req_id() { - match response::verify(ctx.data(), &req) { - Ok(headers) => { - for header in &headers { - if client.is_known(&header.hash()) { - debug!(target: "sync", "Found common ancestor with best chain"); - return AncestorSearch::FoundCommon( - header.number(), - header.hash(), - ); - } - - if header.number() < first_num { - debug!(target: "sync", "Prehistoric common ancestor with best chain."); - return AncestorSearch::Prehistoric; - } - } - - let probe = start - headers.len() as u64; - if probe == 0 { - AncestorSearch::Genesis - } else { - AncestorSearch::Queued(probe) - } - } - Err(e) => { - trace!(target: "sync", "Bad headers response from {}: {}", ctx.responder(), e); - - ctx.punish_responder(); - AncestorSearch::Queued(start) - } - } - } else { - AncestorSearch::Awaiting(id, start, req) - } - } - other => other, - } - } - - fn requests_abandoned(self, req_ids: &[ReqId]) -> AncestorSearch { - match self { - AncestorSearch::Awaiting(id, start, req) => { - if req_ids.iter().find(|&x| x == &id).is_some() { - AncestorSearch::Queued(start) - } else { - AncestorSearch::Awaiting(id, start, req) - } - } - other => other, - } - } - - fn dispatch_request(self, mut dispatcher: F) -> AncestorSearch - where - F: FnMut(HeadersRequest) -> Option, - { - const BATCH_SIZE: u64 = 64; - - match self { - AncestorSearch::Queued(start) => { - let batch_size = ::std::cmp::min(start, BATCH_SIZE); - trace!(target: "sync", "Requesting {} reverse headers from {} to find common ancestor", - batch_size, start); - - let req = HeadersRequest { - start: start.into(), - max: batch_size, - skip: 0, - reverse: true, - }; - - match dispatcher(req.clone()) { - Some(req_id) => AncestorSearch::Awaiting(req_id, start, req), - None => AncestorSearch::Queued(start), - } - } - other => other, - } - } -} - -// synchronization state machine. -#[derive(Debug)] -enum SyncState { - // Idle (waiting for peers) or at chain head. - Idle, - // searching for common ancestor with best chain. - // queue should be cleared at this phase. - AncestorSearch(AncestorSearch), - // Doing sync rounds. - Rounds(SyncRound), -} - -/// A wrapper around the SyncState that makes sure to -/// update the giving reference to `is_idle` -#[derive(Debug)] -struct SyncStateWrapper { - state: SyncState, -} - -impl SyncStateWrapper { - /// Create a new wrapper for SyncState::Idle - pub fn idle() -> Self { - SyncStateWrapper { - state: SyncState::Idle, - } - } - - /// Set the new state's value, making sure `is_idle` gets updated - pub fn set(&mut self, state: SyncState, is_idle_handle: &mut bool) { - *is_idle_handle = match state { - SyncState::Idle => true, - _ => false, - }; - self.state = state; - } - - /// Returns the internal state's value - pub fn into_inner(self) -> SyncState { - self.state - } -} - -impl Deref for SyncStateWrapper { - type Target = SyncState; - - fn deref(&self) -> &SyncState { - &self.state - } -} - -struct ResponseCtx<'a> { - peer: PeerId, - req_id: ReqId, - ctx: &'a dyn BasicContext, - data: &'a [encoded::Header], -} - -impl<'a> ResponseContext for ResponseCtx<'a> { - fn responder(&self) -> PeerId { - self.peer - } - fn req_id(&self) -> &ReqId { - &self.req_id - } - fn data(&self) -> &[encoded::Header] { - self.data - } - fn punish_responder(&self) { - self.ctx.disable_peer(self.peer) - } -} - -/// Light client synchronization manager. See module docs for more details. -pub struct LightSync { - start_block_number: u64, - best_seen: Mutex>, // best seen block on the network. - peers: RwLock>>, // peers which are relevant to synchronization. - pending_reqs: Mutex>, // requests from this handler - client: Arc, - rng: Mutex, - state: Mutex, - // We duplicate this state tracking to avoid deadlocks in `is_major_importing`. - is_idle: Mutex, -} - -#[derive(Debug, Clone)] -struct PendingReq { - started: Instant, - timeout: Duration, -} - -impl Handler for LightSync { - fn on_connect( - &self, - ctx: &dyn EventContext, - status: &Status, - capabilities: &Capabilities, - ) -> PeerStatus { - use std::cmp; - - if capabilities.serve_headers { - let chain_info = ChainInfo { - head_td: status.head_td, - head_hash: status.head_hash, - head_num: status.head_num, - }; - - { - let mut best = self.best_seen.lock(); - *best = cmp::max(best.clone(), Some(chain_info.clone())); - } - - self.peers - .write() - .insert(ctx.peer(), Mutex::new(Peer::new(chain_info))); - self.maintain_sync(ctx.as_basic()); - - PeerStatus::Kept - } else { - PeerStatus::Unkept - } - } - - fn on_disconnect(&self, ctx: &dyn EventContext, unfulfilled: &[ReqId]) { - let peer_id = ctx.peer(); - - let peer = match self.peers.write().remove(&peer_id).map(|p| p.into_inner()) { - Some(peer) => peer, - None => return, - }; - - trace!(target: "sync", "peer {} disconnecting", peer_id); - - let new_best = { - let mut best = self.best_seen.lock(); - - if best.as_ref().map_or(false, |b| b == &peer.status) { - // search for next-best block. - let next_best: Option = self - .peers - .read() - .values() - .map(|p| p.lock().status.clone()) - .map(Some) - .fold(None, ::std::cmp::max); - - *best = next_best; - } - - best.clone() - }; - - { - let mut pending_reqs = self.pending_reqs.lock(); - for unfulfilled in unfulfilled { - pending_reqs.remove(&unfulfilled); - } - } - - if new_best.is_none() { - debug!(target: "sync", "No peers remain. Reverting to idle"); - self.set_state(&mut self.state.lock(), SyncState::Idle); - } else { - let mut state = self.state.lock(); - - let next_state = match mem::replace(&mut *state, SyncStateWrapper::idle()).into_inner() - { - SyncState::Idle => SyncState::Idle, - SyncState::AncestorSearch(search) => { - SyncState::AncestorSearch(search.requests_abandoned(unfulfilled)) - } - SyncState::Rounds(round) => { - SyncState::Rounds(round.requests_abandoned(unfulfilled)) - } - }; - self.set_state(&mut state, next_state); - } - - self.maintain_sync(ctx.as_basic()); - } - - fn on_announcement(&self, ctx: &dyn EventContext, announcement: &Announcement) { - let (last_td, chain_info) = { - let peers = self.peers.read(); - match peers.get(&ctx.peer()) { - None => return, - Some(peer) => { - let mut peer = peer.lock(); - let last_td = peer.status.head_td; - peer.status = ChainInfo { - head_td: announcement.head_td, - head_hash: announcement.head_hash, - head_num: announcement.head_num, - }; - (last_td, peer.status.clone()) - } - } - }; - - trace!(target: "sync", "Announcement from peer {}: new chain head {:?}, reorg depth {}", - ctx.peer(), (announcement.head_hash, announcement.head_num), announcement.reorg_depth); - - if last_td > announcement.head_td { - trace!(target: "sync", "Peer {} moved backwards.", ctx.peer()); - self.peers.write().remove(&ctx.peer()); - ctx.disconnect_peer(ctx.peer()); - return; - } - - { - let mut best = self.best_seen.lock(); - *best = ::std::cmp::max(best.clone(), Some(chain_info)); - } - - self.maintain_sync(ctx.as_basic()); - } - - fn on_responses(&self, ctx: &dyn EventContext, req_id: ReqId, responses: &[request::Response]) { - let peer = ctx.peer(); - if !self.peers.read().contains_key(&peer) { - return; - } - - if self.pending_reqs.lock().remove(&req_id).is_none() { - return; - } - - let headers = match responses.get(0) { - Some(&request::Response::Headers(ref response)) => &response.headers[..], - Some(_) => { - trace!("Disabling peer {} for wrong response type.", peer); - ctx.disable_peer(peer); - &[] - } - None => &[], - }; - - { - let mut state = self.state.lock(); - - let ctx = ResponseCtx { - peer: ctx.peer(), - req_id: req_id, - ctx: ctx.as_basic(), - data: headers, - }; - - let next_state = match mem::replace(&mut *state, SyncStateWrapper::idle()).into_inner() - { - SyncState::Idle => SyncState::Idle, - SyncState::AncestorSearch(search) => { - SyncState::AncestorSearch(search.process_response(&ctx, &*self.client)) - } - SyncState::Rounds(round) => SyncState::Rounds(round.process_response(&ctx)), - }; - self.set_state(&mut state, next_state); - } - - self.maintain_sync(ctx.as_basic()); - } - - fn tick(&self, ctx: &dyn BasicContext) { - self.maintain_sync(ctx); - } -} - -// private helpers -impl LightSync { - /// Sets the LightSync's state, and update - /// `is_idle` - fn set_state(&self, state: &mut SyncStateWrapper, next_state: SyncState) { - state.set(next_state, &mut self.is_idle.lock()); - } - - // Begins a search for the common ancestor and our best block. - // does not lock state, instead has a mutable reference to it passed. - fn begin_search(&self, state: &mut SyncStateWrapper) { - if let None = *self.best_seen.lock() { - // no peers. - self.set_state(state, SyncState::Idle); - return; - } - - self.client.as_light_client().flush_queue(); - let chain_info = self.client.as_light_client().chain_info(); - - trace!(target: "sync", "Beginning search for common ancestor from {:?}", - (chain_info.best_block_number, chain_info.best_block_hash)); - let next_state = - SyncState::AncestorSearch(AncestorSearch::begin(chain_info.best_block_number)); - self.set_state(state, next_state); - } - - // handles request dispatch, block import, state machine transitions, and timeouts. - fn maintain_sync(&self, ctx: &dyn BasicContext) { - use ethcore::error::{ - Error as EthcoreError, ErrorKind as EthcoreErrorKind, ImportErrorKind, - }; - - const DRAIN_AMOUNT: usize = 128; - - let client = self.client.as_light_client(); - let chain_info = client.chain_info(); - - let mut state = self.state.lock(); - debug!(target: "sync", "Maintaining sync ({:?})", **state); - - // drain any pending blocks into the queue. - { - let mut sink = Vec::with_capacity(DRAIN_AMOUNT); - - 'a: loop { - if client.queue_info().is_full() { - break; - } - - let next_state = - match mem::replace(&mut *state, SyncStateWrapper::idle()).into_inner() { - SyncState::Rounds(round) => { - SyncState::Rounds(round.drain(&mut sink, Some(DRAIN_AMOUNT))) - } - other => other, - }; - self.set_state(&mut state, next_state); - - if sink.is_empty() { - break; - } - trace!(target: "sync", "Drained {} headers to import", sink.len()); - - for header in sink.drain(..) { - match client.queue_header(header) { - Ok(_) => {} - Err(EthcoreError( - EthcoreErrorKind::Import(ImportErrorKind::AlreadyInChain), - _, - )) => { - trace!(target: "sync", "Block already in chain. Continuing."); - } - Err(EthcoreError( - EthcoreErrorKind::Import(ImportErrorKind::AlreadyQueued), - _, - )) => { - trace!(target: "sync", "Block already queued. Continuing."); - } - Err(e) => { - debug!(target: "sync", "Found bad header ({:?}). Reset to search state.", e); - - self.begin_search(&mut state); - break 'a; - } - } - } - } - } - - // handle state transitions. - { - let best_td = chain_info.pending_total_difficulty; - let sync_target = match *self.best_seen.lock() { - Some(ref target) if target.head_td > best_td => (target.head_num, target.head_hash), - ref other => { - let network_score = other.as_ref().map(|target| target.head_td); - trace!(target: "sync", "No target to sync to. Network score: {:?}, Local score: {:?}", - network_score, best_td); - self.set_state(&mut state, SyncState::Idle); - return; - } - }; - - match mem::replace(&mut *state, SyncStateWrapper::idle()).into_inner() { - SyncState::Rounds(SyncRound::Abort(reason, remaining)) => { - if remaining.len() > 0 { - self.set_state( - &mut state, - SyncState::Rounds(SyncRound::Abort(reason, remaining)), - ); - return; - } - - match reason { - AbortReason::BadScaffold(bad_peers) => { - debug!(target: "sync", "Disabling peers responsible for bad scaffold"); - for peer in bad_peers { - ctx.disable_peer(peer); - } - } - AbortReason::NoResponses => {} - AbortReason::TargetReached => { - debug!(target: "sync", "Sync target reached. Going idle"); - self.set_state(&mut state, SyncState::Idle); - return; - } - } - - debug!(target: "sync", "Beginning search after aborted sync round"); - self.begin_search(&mut state); - } - SyncState::AncestorSearch(AncestorSearch::FoundCommon(num, hash)) => { - self.set_state( - &mut state, - SyncState::Rounds(SyncRound::begin((num, hash), sync_target)), - ); - } - SyncState::AncestorSearch(AncestorSearch::Genesis) => { - // Same here. - let g_hash = chain_info.genesis_hash; - self.set_state( - &mut state, - SyncState::Rounds(SyncRound::begin((0, g_hash), sync_target)), - ); - } - SyncState::Idle => self.begin_search(&mut state), - other => self.set_state(&mut state, other), // restore displaced state. - } - } - - // handle requests timeouts - { - let mut pending_reqs = self.pending_reqs.lock(); - let mut unfulfilled = Vec::new(); - for (req_id, info) in pending_reqs.iter() { - if info.started.elapsed() >= info.timeout { - debug!(target: "sync", "{} timed out", req_id); - unfulfilled.push(req_id.clone()); - } - } - - if !unfulfilled.is_empty() { - for unfulfilled in unfulfilled.iter() { - pending_reqs.remove(unfulfilled); - } - drop(pending_reqs); - - let next_state = - match mem::replace(&mut *state, SyncStateWrapper::idle()).into_inner() { - SyncState::Idle => SyncState::Idle, - SyncState::AncestorSearch(search) => { - SyncState::AncestorSearch(search.requests_abandoned(&unfulfilled)) - } - SyncState::Rounds(round) => { - SyncState::Rounds(round.requests_abandoned(&unfulfilled)) - } - }; - self.set_state(&mut state, next_state); - } - } - - // allow dispatching of requests. - { - let peers = self.peers.read(); - let mut peer_ids: Vec<_> = peers - .iter() - .filter_map(|(id, p)| { - if p.lock().status.head_td > chain_info.pending_total_difficulty { - Some(*id) - } else { - None - } - }) - .collect(); - - let mut rng = self.rng.lock(); - let mut requested_from = HashSet::new(); - - // naive request dispatcher: just give to any peer which says it will - // give us responses. but only one request per peer per state transition. - let dispatcher = move |req: HeadersRequest| { - rng.shuffle(&mut peer_ids); - - let request = { - let mut builder = request::Builder::default(); - builder.push(request::Request::Headers(request::IncompleteHeadersRequest { - start: req.start.into(), - skip: req.skip, - max: req.max, - reverse: req.reverse, - })).expect("request provided fully complete with no unresolved back-references; qed"); - builder.build() - }; - for peer in &peer_ids { - if requested_from.contains(peer) { - continue; - } - match ctx.request_from(*peer, request.clone()) { - Ok(id) => { - assert!( - req.max <= u32::max_value() as u64, - "requesting more than 2^32 headers at a time would overflow" - ); - let timeout = - REQ_TIMEOUT_BASE + REQ_TIMEOUT_PER_HEADER * req.max as u32; - self.pending_reqs.lock().insert( - id.clone(), - PendingReq { - started: Instant::now(), - timeout, - }, - ); - requested_from.insert(peer.clone()); - - return Some(id); - } - Err(NetError::NoCredits) => {} - Err(e) => { - trace!(target: "sync", "Error requesting headers from viable peer: {}", e) - } - } - } - - None - }; - - let next_state = match mem::replace(&mut *state, SyncStateWrapper::idle()).into_inner() - { - SyncState::Rounds(round) => SyncState::Rounds(round.dispatch_requests(dispatcher)), - SyncState::AncestorSearch(search) => { - SyncState::AncestorSearch(search.dispatch_request(dispatcher)) - } - other => other, - }; - self.set_state(&mut state, next_state); - } - } -} - -// public API -impl LightSync { - /// Create a new instance of `LightSync`. - /// - /// This won't do anything until registered as a handler - /// so it can act on events. - pub fn new(client: Arc) -> Result { - Ok(LightSync { - start_block_number: client.as_light_client().chain_info().best_block_number, - best_seen: Mutex::new(None), - peers: RwLock::new(HashMap::new()), - pending_reqs: Mutex::new(HashMap::new()), - client: client, - rng: Mutex::new(OsRng::new()?), - state: Mutex::new(SyncStateWrapper::idle()), - is_idle: Mutex::new(true), - }) - } -} - -/// Trait for erasing the type of a light sync object and exposing read-only methods. -pub trait SyncInfo { - /// Get the highest block advertised on the network. - fn highest_block(&self) -> Option; - - /// Get the block number at the time of sync start. - fn start_block(&self) -> u64; - - /// Whether major sync is underway. - fn is_major_importing(&self) -> bool; -} - -impl SyncInfo for LightSync { - fn highest_block(&self) -> Option { - self.best_seen.lock().as_ref().map(|x| x.head_num) - } - - fn start_block(&self) -> u64 { - self.start_block_number - } - - fn is_major_importing(&self) -> bool { - const EMPTY_QUEUE: usize = 3; - - let queue_info = self.client.as_light_client().queue_info(); - let is_verifying = - queue_info.unverified_queue_size + queue_info.verified_queue_size > EMPTY_QUEUE; - let is_syncing = !*self.is_idle.lock(); - - is_verifying || is_syncing - } -} diff --git a/ethcore/sync/src/light_sync/response.rs b/ethcore/sync/src/light_sync/response.rs deleted file mode 100644 index ae735f3f3..000000000 --- a/ethcore/sync/src/light_sync/response.rs +++ /dev/null @@ -1,291 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Helpers for decoding and verifying responses for headers. - -use ethereum_types::H256; -use light::request::{CompleteHeadersRequest as HeadersRequest, HashOrNumber}; -use rlp::DecoderError; -use std::fmt; -use types::{encoded, header::Header}; - -/// Errors found when decoding headers and verifying with basic constraints. -#[derive(Debug, PartialEq)] -pub enum BasicError { - /// Wrong skip value: expected, found (if any). - WrongSkip(u64, Option), - /// Wrong start number. - WrongStartNumber(u64, u64), - /// Wrong start hash. - WrongStartHash(H256, H256), - /// Too many headers. - TooManyHeaders(usize, usize), - /// Decoder error. - Decoder(DecoderError), -} - -impl From for BasicError { - fn from(err: DecoderError) -> Self { - BasicError::Decoder(err) - } -} - -impl fmt::Display for BasicError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "Header response verification error: ")?; - - match *self { - BasicError::WrongSkip(ref exp, ref got) => { - write!(f, "wrong skip (expected {}, got {:?})", exp, got) - } - BasicError::WrongStartNumber(ref exp, ref got) => { - write!(f, "wrong start number (expected {}, got {})", exp, got) - } - BasicError::WrongStartHash(ref exp, ref got) => { - write!(f, "wrong start hash (expected {}, got {})", exp, got) - } - BasicError::TooManyHeaders(ref max, ref got) => { - write!(f, "too many headers (max {}, got {})", max, got) - } - BasicError::Decoder(ref err) => write!(f, "{}", err), - } - } -} - -/// Request verification constraint. -pub trait Constraint { - type Error; - - /// Verify headers against this. - fn verify(&self, headers: &[Header], reverse: bool) -> Result<(), Self::Error>; -} - -/// Do basic verification of provided headers against a request. -pub fn verify( - headers: &[encoded::Header], - request: &HeadersRequest, -) -> Result, BasicError> { - let headers: Result, _> = headers.iter().map(|h| h.decode()).collect(); - match headers { - Ok(headers) => { - let reverse = request.reverse; - - Max(request.max as usize).verify(&headers, reverse)?; - match request.start { - HashOrNumber::Number(ref num) => StartsAtNumber(*num).verify(&headers, reverse)?, - HashOrNumber::Hash(ref hash) => StartsAtHash(*hash).verify(&headers, reverse)?, - } - - SkipsBetween(request.skip).verify(&headers, reverse)?; - - Ok(headers) - } - Err(e) => Err(e.into()), - } -} - -struct StartsAtNumber(u64); -struct StartsAtHash(H256); -struct SkipsBetween(u64); -struct Max(usize); - -impl Constraint for StartsAtNumber { - type Error = BasicError; - - fn verify(&self, headers: &[Header], _reverse: bool) -> Result<(), BasicError> { - headers.first().map_or(Ok(()), |h| { - if h.number() == self.0 { - Ok(()) - } else { - Err(BasicError::WrongStartNumber(self.0, h.number())) - } - }) - } -} - -impl Constraint for StartsAtHash { - type Error = BasicError; - - fn verify(&self, headers: &[Header], _reverse: bool) -> Result<(), BasicError> { - headers.first().map_or(Ok(()), |h| { - if h.hash() == self.0 { - Ok(()) - } else { - Err(BasicError::WrongStartHash(self.0, h.hash())) - } - }) - } -} - -impl Constraint for SkipsBetween { - type Error = BasicError; - - fn verify(&self, headers: &[Header], reverse: bool) -> Result<(), BasicError> { - for pair in headers.windows(2) { - let (low, high) = if reverse { - (&pair[1], &pair[0]) - } else { - (&pair[0], &pair[1]) - }; - if low.number() >= high.number() { - return Err(BasicError::WrongSkip(self.0, None)); - } - - let skip = (high.number() - low.number()) - 1; - if skip != self.0 { - return Err(BasicError::WrongSkip(self.0, Some(skip))); - } - } - - Ok(()) - } -} - -impl Constraint for Max { - type Error = BasicError; - - fn verify(&self, headers: &[Header], _reverse: bool) -> Result<(), BasicError> { - match headers.len() > self.0 { - true => Err(BasicError::TooManyHeaders(self.0, headers.len())), - false => Ok(()), - } - } -} - -#[cfg(test)] -mod tests { - use light::request::CompleteHeadersRequest as HeadersRequest; - use types::{encoded, header::Header}; - - use super::*; - - #[test] - fn sequential_forward() { - let request = HeadersRequest { - start: 10.into(), - max: 30, - skip: 0, - reverse: false, - }; - - let mut parent_hash = None; - let headers: Vec<_> = (0..25) - .map(|x| x + 10) - .map(|x| { - let mut header = Header::default(); - header.set_number(x); - - if let Some(parent_hash) = parent_hash { - header.set_parent_hash(parent_hash); - } - - parent_hash = Some(header.hash()); - - encoded::Header::new(::rlp::encode(&header)) - }) - .collect(); - - assert!(verify(&headers, &request).is_ok()); - } - - #[test] - fn sequential_backward() { - let request = HeadersRequest { - start: 34.into(), - max: 30, - skip: 0, - reverse: true, - }; - - let mut parent_hash = None; - let headers: Vec<_> = (0..25) - .map(|x| x + 10) - .rev() - .map(|x| { - let mut header = Header::default(); - header.set_number(x); - - if let Some(parent_hash) = parent_hash { - header.set_parent_hash(parent_hash); - } - - parent_hash = Some(header.hash()); - - encoded::Header::new(::rlp::encode(&header)) - }) - .collect(); - - assert!(verify(&headers, &request).is_ok()); - } - - #[test] - fn too_many() { - let request = HeadersRequest { - start: 10.into(), - max: 20, - skip: 0, - reverse: false, - }; - - let mut parent_hash = None; - let headers: Vec<_> = (0..25) - .map(|x| x + 10) - .map(|x| { - let mut header = Header::default(); - header.set_number(x); - - if let Some(parent_hash) = parent_hash { - header.set_parent_hash(parent_hash); - } - - parent_hash = Some(header.hash()); - - encoded::Header::new(::rlp::encode(&header)) - }) - .collect(); - - assert_eq!( - verify(&headers, &request), - Err(BasicError::TooManyHeaders(20, 25)) - ); - } - - #[test] - fn wrong_skip() { - let request = HeadersRequest { - start: 10.into(), - max: 30, - skip: 5, - reverse: false, - }; - - let headers: Vec<_> = (0..25) - .map(|x| x * 3) - .map(|x| x + 10) - .map(|x| { - let mut header = Header::default(); - header.set_number(x); - - encoded::Header::new(::rlp::encode(&header)) - }) - .collect(); - - assert_eq!( - verify(&headers, &request), - Err(BasicError::WrongSkip(5, Some(2))) - ); - } -} diff --git a/ethcore/sync/src/light_sync/sync_round.rs b/ethcore/sync/src/light_sync/sync_round.rs deleted file mode 100644 index b8bc61773..000000000 --- a/ethcore/sync/src/light_sync/sync_round.rs +++ /dev/null @@ -1,585 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Header download state machine. - -use std::{ - cmp::Ordering, - collections::{BinaryHeap, HashMap, HashSet, VecDeque}, - fmt, -}; - -use types::{encoded, header::Header}; - -use light::{net::ReqId, request::CompleteHeadersRequest as HeadersRequest}; - -use ethereum_types::H256; -use network::PeerId; - -use super::response; - -// number of attempts to make to get a full scaffold for a sync round. -const SCAFFOLD_ATTEMPTS: usize = 3; - -/// Context for a headers response. -pub trait ResponseContext { - /// Get the peer who sent this response. - fn responder(&self) -> PeerId; - /// Get the request ID this response corresponds to. - fn req_id(&self) -> &ReqId; - /// Get the (unverified) response data. - fn data(&self) -> &[encoded::Header]; - /// Punish the responder. - fn punish_responder(&self); -} - -/// Reasons for sync round abort. -#[derive(Debug, Clone)] -pub enum AbortReason { - /// Bad sparse header chain along with a list of peers who contributed to it. - BadScaffold(Vec), - /// No incoming data. - NoResponses, - /// Sync rounds completed. - TargetReached, -} - -// A request for headers with a known starting header hash. -// and a known parent hash for the last block. -#[derive(PartialEq, Eq)] -struct SubchainRequest { - subchain_parent: (u64, H256), - headers_request: HeadersRequest, - subchain_end: (u64, H256), - downloaded: VecDeque
, -} - -// ordered by subchain parent number so pending requests towards the -// front of the round are dispatched first. -impl PartialOrd for SubchainRequest { - fn partial_cmp(&self, other: &Self) -> Option { - self.subchain_parent - .0 - .partial_cmp(&other.subchain_parent.0) - .map(Ordering::reverse) - } -} - -impl Ord for SubchainRequest { - fn cmp(&self, other: &Self) -> Ordering { - self.subchain_parent - .0 - .cmp(&other.subchain_parent.0) - .reverse() - } -} - -/// Manages downloading of interior blocks of a sparse header chain. -pub struct Fetcher { - sparse: VecDeque
, // sparse header chain. - requests: BinaryHeap, - complete_requests: HashMap, - pending: HashMap, - scaffold_contributors: Vec, - ready: VecDeque
, - end: (u64, H256), - target: (u64, H256), -} - -impl Fetcher { - // Produce a new fetcher given a sparse headerchain, in ascending order along - // with a list of peers who helped produce the chain. - // The headers must be valid RLP at this point and must have a consistent - // non-zero gap between them. Will abort the round if found wrong. - fn new( - sparse_headers: Vec
, - contributors: Vec, - target: (u64, H256), - ) -> SyncRound { - let mut requests = BinaryHeap::with_capacity(sparse_headers.len() - 1); - - for pair in sparse_headers.windows(2) { - let low_rung = &pair[0]; - let high_rung = &pair[1]; - - let diff = high_rung.number() - low_rung.number(); - - // should never happen as long as we verify the gaps - // gotten from SyncRound::Start - if diff < 2 { - continue; - } - - let needed_headers = HeadersRequest { - start: high_rung.parent_hash().clone().into(), - max: diff - 1, - skip: 0, - reverse: true, - }; - - requests.push(SubchainRequest { - headers_request: needed_headers, - subchain_end: (high_rung.number() - 1, *high_rung.parent_hash()), - downloaded: VecDeque::new(), - subchain_parent: (low_rung.number(), low_rung.hash()), - }); - } - - let end = match sparse_headers.last().map(|h| (h.number(), h.hash())) { - Some(end) => end, - None => { - return SyncRound::abort(AbortReason::BadScaffold(contributors), VecDeque::new()) - } - }; - - SyncRound::Fetch(Fetcher { - sparse: sparse_headers.into(), - requests: requests, - complete_requests: HashMap::new(), - pending: HashMap::new(), - scaffold_contributors: contributors, - ready: VecDeque::new(), - end: end, - target: target, - }) - } - - // collect complete requests and their subchain from the sparse header chain - // into the ready set in order. - fn collect_ready(&mut self) { - loop { - let start_hash = match self.sparse.front() { - Some(first) => first.hash(), - None => break, - }; - - match self.complete_requests.remove(&start_hash) { - None => break, - Some(complete_req) => { - self.ready - .push_back(self.sparse.pop_front().expect("first known to exist; qed")); - self.ready.extend(complete_req.downloaded); - } - } - } - - // frames are between two sparse headers and keyed by subchain parent, so the last - // remaining will be the last header. - if self.sparse.len() == 1 { - self.ready.push_back( - self.sparse - .pop_back() - .expect("sparse known to have one entry; qed"), - ) - } - - trace!(target: "sync", "{} headers ready to drain", self.ready.len()); - } - - fn process_response(mut self, ctx: &R) -> SyncRound { - let mut request = match self.pending.remove(ctx.req_id()) { - Some(request) => request, - None => return SyncRound::Fetch(self), - }; - - trace!(target: "sync", "Received response for subchain ({} -> {})", - request.subchain_parent.0, request.subchain_end.0); - - let headers = ctx.data(); - - if headers.is_empty() { - trace!(target: "sync", "Punishing peer {} for empty response", ctx.responder()); - ctx.punish_responder(); - - self.requests.push(request); - return SyncRound::Fetch(self); - } - - match response::verify(headers, &request.headers_request) { - Err(e) => { - trace!(target: "sync", "Punishing peer {} for invalid response ({})", ctx.responder(), e); - ctx.punish_responder(); - - // TODO: track number of attempts per request, - // abort if failure rate too high. - self.requests.push(request); - SyncRound::Fetch(self) - } - Ok(headers) => { - let mut parent_hash = None; - for header in headers { - if let Some(hash) = parent_hash.as_ref() { - if *hash != header.hash() { - trace!(target: "sync", "Punishing peer {} for parent mismatch", ctx.responder()); - ctx.punish_responder(); - self.requests.push(request); - return SyncRound::Fetch(self); - } - } - // incrementally update the frame request as we go so we can - // return at any time in the loop. - parent_hash = Some(*header.parent_hash()); - request.headers_request.start = header.parent_hash().clone().into(); - request.headers_request.max -= 1; - request.downloaded.push_front(header); - } - - let subchain_parent = request.subchain_parent.1; - - // check if the subchain portion has been completely filled. - if request.headers_request.max == 0 { - if parent_hash.map_or(true, |hash| hash != subchain_parent) { - let abort = AbortReason::BadScaffold(self.scaffold_contributors); - return SyncRound::abort(abort, self.ready); - } - - self.complete_requests.insert(subchain_parent, request); - self.collect_ready(); - } - - // state transition not triggered until drain is finished. - SyncRound::Fetch(self) - } - } - } - - fn requests_abandoned(mut self, abandoned: &[ReqId]) -> SyncRound { - trace!(target: "sync", "Abandonned requests {:?}", abandoned); - - for abandoned in abandoned { - match self.pending.remove(abandoned) { - None => {} - Some(req) => self.requests.push(req), - } - } - - // TODO: track failure rate and potentially abort. - SyncRound::Fetch(self) - } - - fn dispatch_requests(mut self, mut dispatcher: D) -> SyncRound - where - D: FnMut(HeadersRequest) -> Option, - { - while let Some(pending_req) = self.requests.pop() { - match dispatcher(pending_req.headers_request.clone()) { - Some(req_id) => { - trace!(target: "sync", "Assigned request {} for subchain ({} -> {})", - req_id, pending_req.subchain_parent.0, pending_req.subchain_end.0); - - self.pending.insert(req_id, pending_req); - } - None => { - trace!(target: "sync", "Failed to assign request for subchain ({} -> {})", - pending_req.subchain_parent.0, pending_req.subchain_end.0); - self.requests.push(pending_req); - break; - } - } - } - - SyncRound::Fetch(self) - } - - fn drain(mut self, headers: &mut Vec
, max: Option) -> SyncRound { - let max = ::std::cmp::min(max.unwrap_or(usize::max_value()), self.ready.len()); - headers.extend(self.ready.drain(0..max)); - - if self.sparse.is_empty() && self.ready.is_empty() { - trace!(target: "sync", "sync round complete. Starting anew from {:?}", self.end); - SyncRound::begin(self.end, self.target) - } else { - SyncRound::Fetch(self) - } - } -} - -// Compute scaffold parameters from non-zero distance between start and target block: (skip, pivots). -fn scaffold_params(diff: u64) -> (u64, u64) { - // default parameters. - // amount of blocks between each scaffold pivot. - const ROUND_SKIP: u64 = 255; - // amount of scaffold pivots: these are the Xs in "X___X___X" - const ROUND_PIVOTS: u64 = 256; - - let rem = diff % (ROUND_SKIP + 1); - if diff <= ROUND_SKIP { - // just request headers from the start to the target. - (0, rem) - } else { - // the number of pivots necessary to exactly hit or overshoot the target. - let pivots_to_target = (diff / (ROUND_SKIP + 1)) + if rem == 0 { 0 } else { 1 }; - let num_pivots = ::std::cmp::min(pivots_to_target, ROUND_PIVOTS); - (ROUND_SKIP, num_pivots) - } -} - -/// Round started: get stepped header chain. -/// from a start block with number X we request ROUND_PIVOTS headers stepped by ROUND_SKIP from -/// block X + 1 to a target >= X + 1. -/// If the sync target is within ROUND_SKIP of the start, we request -/// only those blocks. If the sync target is within (ROUND_SKIP + 1) * (ROUND_PIVOTS - 1) of -/// the start, we reduce the number of pivots so the target is outside it. -pub struct RoundStart { - start_block: (u64, H256), - target: (u64, H256), - pending_req: Option<(ReqId, HeadersRequest)>, - sparse_headers: Vec
, - contributors: HashSet, - attempt: usize, - skip: u64, - pivots: u64, -} - -impl RoundStart { - fn new(start: (u64, H256), target: (u64, H256)) -> Self { - let (skip, pivots) = scaffold_params(target.0 - start.0); - - trace!(target: "sync", "Beginning sync round: {} pivots and {} skip from block {}", - pivots, skip, start.0); - - RoundStart { - start_block: start, - target: target, - pending_req: None, - sparse_headers: Vec::new(), - contributors: HashSet::new(), - attempt: 0, - skip: skip, - pivots: pivots, - } - } - - // called on failed attempt. may trigger a transition after a number of attempts. - // a failed attempt is defined as any time a peer returns invalid or incomplete response - fn failed_attempt(mut self) -> SyncRound { - self.attempt += 1; - - if self.attempt >= SCAFFOLD_ATTEMPTS { - return if self.sparse_headers.len() > 1 { - Fetcher::new( - self.sparse_headers, - self.contributors.into_iter().collect(), - self.target, - ) - } else { - let fetched_headers = if self.skip == 0 { - self.sparse_headers.into() - } else { - VecDeque::new() - }; - - SyncRound::abort(AbortReason::NoResponses, fetched_headers) - }; - } else { - SyncRound::Start(self) - } - } - - fn process_response(mut self, ctx: &R) -> SyncRound { - let req = match self.pending_req.take() { - Some((id, ref req)) if ctx.req_id() == &id => req.clone(), - other => { - self.pending_req = other; - return SyncRound::Start(self); - } - }; - - match response::verify(ctx.data(), &req) { - Ok(headers) => { - if self.sparse_headers.is_empty() - && headers - .get(0) - .map_or(false, |x| x.parent_hash() != &self.start_block.1) - { - trace!(target: "sync", "Wrong parent for first header in round"); - ctx.punish_responder(); // or should we reset? - } - - self.contributors.insert(ctx.responder()); - self.sparse_headers.extend(headers); - - if self.sparse_headers.len() as u64 == self.pivots { - return if self.skip == 0 { - SyncRound::abort(AbortReason::TargetReached, self.sparse_headers.into()) - } else { - trace!(target: "sync", "Beginning fetch of blocks between {} sparse headers", - self.sparse_headers.len()); - Fetcher::new( - self.sparse_headers, - self.contributors.into_iter().collect(), - self.target, - ) - }; - } - } - Err(e) => { - trace!(target: "sync", "Punishing peer {} for malformed response ({})", ctx.responder(), e); - ctx.punish_responder(); - } - }; - - self.failed_attempt() - } - - fn requests_abandoned(mut self, abandoned: &[ReqId]) -> SyncRound { - match self.pending_req.take() { - Some((id, req)) => { - if abandoned.iter().any(|r| r == &id) { - self.pending_req = None; - self.failed_attempt() - } else { - self.pending_req = Some((id, req)); - SyncRound::Start(self) - } - } - None => SyncRound::Start(self), - } - } - - fn dispatch_requests(mut self, mut dispatcher: D) -> SyncRound - where - D: FnMut(HeadersRequest) -> Option, - { - if self.pending_req.is_none() { - // beginning offset + first block expected after last header we have. - let start = - (self.start_block.0 + 1) + self.sparse_headers.len() as u64 * (self.skip + 1); - - let max = self.pivots - self.sparse_headers.len() as u64; - - let headers_request = HeadersRequest { - start: start.into(), - max: max, - skip: self.skip, - reverse: false, - }; - - if let Some(req_id) = dispatcher(headers_request.clone()) { - trace!(target: "sync", "Requesting scaffold: {} headers forward from {}, skip={}", - max, start, self.skip); - - self.pending_req = Some((req_id, headers_request)); - } - } - - SyncRound::Start(self) - } -} - -/// Sync round state machine. -pub enum SyncRound { - /// Beginning a sync round. - Start(RoundStart), - /// Fetching intermediate blocks during a sync round. - Fetch(Fetcher), - /// Aborted + Sequential headers - Abort(AbortReason, VecDeque
), -} - -impl SyncRound { - fn abort(reason: AbortReason, remaining: VecDeque
) -> Self { - trace!(target: "sync", "Aborting sync round: {:?}. To drain: {}", reason, remaining.len()); - - SyncRound::Abort(reason, remaining) - } - - /// Begin sync rounds from a starting block, but not to go past a given target - pub fn begin(start: (u64, H256), target: (u64, H256)) -> Self { - if target.0 <= start.0 { - SyncRound::abort(AbortReason::TargetReached, VecDeque::new()) - } else { - SyncRound::Start(RoundStart::new(start, target)) - } - } - - /// Process an answer to a request. Unknown requests will be ignored. - pub fn process_response(self, ctx: &R) -> Self { - match self { - SyncRound::Start(round_start) => round_start.process_response(ctx), - SyncRound::Fetch(fetcher) => fetcher.process_response(ctx), - other => other, - } - } - - /// Return unfulfilled requests from disconnected peer. Unknown requests will be ignored. - pub fn requests_abandoned(self, abandoned: &[ReqId]) -> Self { - match self { - SyncRound::Start(round_start) => round_start.requests_abandoned(abandoned), - SyncRound::Fetch(fetcher) => fetcher.requests_abandoned(abandoned), - other => other, - } - } - - /// Dispatch pending requests. The dispatcher provided will attempt to - /// find a suitable peer to serve the request. - // TODO: have dispatcher take capabilities argument? and return an error as - // to why no suitable peer can be found? (no buffer, no chain heads that high, etc) - pub fn dispatch_requests(self, dispatcher: D) -> Self - where - D: FnMut(HeadersRequest) -> Option, - { - match self { - SyncRound::Start(round_start) => round_start.dispatch_requests(dispatcher), - SyncRound::Fetch(fetcher) => fetcher.dispatch_requests(dispatcher), - other => other, - } - } - - /// Drain up to a maximum number (None -> all) of headers (continuous, starting with a child of - /// the round start block) from the round, starting a new one once finished. - pub fn drain(self, v: &mut Vec
, max: Option) -> Self { - match self { - SyncRound::Fetch(fetcher) => fetcher.drain(v, max), - SyncRound::Abort(reason, mut remaining) => { - let len = ::std::cmp::min(max.unwrap_or(usize::max_value()), remaining.len()); - v.extend(remaining.drain(..len)); - SyncRound::Abort(reason, remaining) - } - other => other, - } - } -} - -impl fmt::Debug for SyncRound { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - match *self { - SyncRound::Start(ref state) => write!(f, "Scaffolding from {:?}", state.start_block), - SyncRound::Fetch(ref fetcher) => write!(f, "Filling scaffold up to {:?}", fetcher.end), - SyncRound::Abort(ref reason, ref remaining) => { - write!(f, "Aborted: {:?}, {} remain", reason, remaining.len()) - } - } - } -} - -#[cfg(test)] -mod tests { - use super::scaffold_params; - - #[test] - fn scaffold_config() { - // within a certain distance of the head, we download - // sequentially. - assert_eq!(scaffold_params(1), (0, 1)); - assert_eq!(scaffold_params(6), (0, 6)); - - // when scaffolds are useful, download enough frames to get - // within a close distance of the goal. - assert_eq!(scaffold_params(1000), (255, 4)); - assert_eq!(scaffold_params(1024), (255, 4)); - } -} diff --git a/ethcore/sync/src/light_sync/tests/mod.rs b/ethcore/sync/src/light_sync/tests/mod.rs deleted file mode 100644 index 8abfa7d5d..000000000 --- a/ethcore/sync/src/light_sync/tests/mod.rs +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -use tests::helpers::TestNet; - -use ethcore::client::{BlockId, BlockInfo, EachBlockWith}; - -mod test_net; - -#[test] -fn basic_sync() { - let mut net = TestNet::light(1, 2); - net.peer(1).chain().add_blocks(5000, EachBlockWith::Nothing); - net.peer(2).chain().add_blocks(6000, EachBlockWith::Nothing); - - net.sync(); - - assert!(net - .peer(0) - .light_chain() - .block_header(BlockId::Number(6000)) - .is_some()); -} - -#[test] -fn fork_post_cht() { - const CHAIN_LENGTH: u64 = 50; // shouldn't be longer than ::light::cht::size(); - - let mut net = TestNet::light(1, 2); - - // peer 2 is on a higher TD chain. - net.peer(1) - .chain() - .add_blocks(CHAIN_LENGTH as usize, EachBlockWith::Nothing); - net.peer(2) - .chain() - .add_blocks(CHAIN_LENGTH as usize + 1, EachBlockWith::Uncle); - - // get the light peer on peer 1's chain. - for id in (0..CHAIN_LENGTH).map(|x| x + 1).map(BlockId::Number) { - let (light_peer, full_peer) = (net.peer(0), net.peer(1)); - let light_chain = light_peer.light_chain(); - let header = full_peer - .chain() - .block_header(id) - .unwrap() - .decode() - .expect("decoding failure"); - let _ = light_chain.import_header(header); - light_chain.flush_queue(); - light_chain.import_verified(); - assert!(light_chain.block_header(id).is_some()); - } - - net.sync(); - - for id in (0..CHAIN_LENGTH).map(|x| x + 1).map(BlockId::Number) { - assert_eq!( - net.peer(0).light_chain().block_header(id).unwrap(), - net.peer(2).chain().block_header(id).unwrap() - ); - } -} diff --git a/ethcore/sync/src/light_sync/tests/test_net.rs b/ethcore/sync/src/light_sync/tests/test_net.rs deleted file mode 100644 index 2f6dee611..000000000 --- a/ethcore/sync/src/light_sync/tests/test_net.rs +++ /dev/null @@ -1,270 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! TestNet peer definition. - -use std::{ - collections::{HashSet, VecDeque}, - sync::Arc, -}; - -use light_sync::*; -use tests::helpers::{Peer as PeerLike, TestNet, TestPacket}; - -use ethcore::{client::TestBlockChainClient, spec::Spec}; -use io::IoChannel; -use kvdb_memorydb; -use light::{ - client::fetch::{self, Unavailable}, - net::{Capabilities, IoContext, LightProtocol, Params as LightParams}, - provider::LightProvider, -}; -use network::{NodeId, PeerId}; -use parking_lot::RwLock; - -use light::cache::Cache; -use std::time::Duration; - -const NETWORK_ID: u64 = 0xcafebabe; - -pub type LightClient = ::light::client::Client; - -struct TestIoContext<'a> { - queue: &'a RwLock>, - sender: Option, - to_disconnect: RwLock>, -} - -impl<'a> IoContext for TestIoContext<'a> { - fn send(&self, peer: PeerId, packet_id: u8, packet_body: Vec) { - self.queue.write().push_back(TestPacket { - data: packet_body, - packet_id: packet_id, - recipient: peer, - }) - } - - fn respond(&self, packet_id: u8, packet_body: Vec) { - if let Some(sender) = self.sender { - self.send(sender, packet_id, packet_body); - } - } - - fn disconnect_peer(&self, peer: PeerId) { - self.to_disconnect.write().insert(peer); - } - - fn disable_peer(&self, peer: PeerId) { - self.disconnect_peer(peer) - } - fn protocol_version(&self, _peer: PeerId) -> Option { - Some(::light::net::MAX_PROTOCOL_VERSION) - } - - fn persistent_peer_id(&self, _peer: PeerId) -> Option { - unimplemented!() - } - fn is_reserved_peer(&self, _peer: PeerId) -> bool { - false - } -} - -// peer-specific data. -enum PeerData { - Light(Arc>, Arc), - Full(Arc), -} - -// test peer type. -// Either a full peer or a light peer. -pub struct Peer { - proto: LightProtocol, - queue: RwLock>, - data: PeerData, -} - -impl Peer { - // create a new full-client peer for light client peers to sync to. - // buffer flow is made negligible. - pub fn new_full(chain: Arc) -> Self { - let params = LightParams { - network_id: NETWORK_ID, - config: Default::default(), - capabilities: Capabilities { - serve_headers: true, - serve_chain_since: None, - serve_state_since: None, - tx_relay: true, - }, - sample_store: None, - }; - - let proto = LightProtocol::new(chain.clone(), params); - Peer { - proto: proto, - queue: RwLock::new(VecDeque::new()), - data: PeerData::Full(chain), - } - } - - // create a new light-client peer to sync to full peers. - pub fn new_light(chain: Arc) -> Self { - let sync = Arc::new(LightSync::new(chain.clone()).unwrap()); - let params = LightParams { - network_id: NETWORK_ID, - config: Default::default(), - capabilities: Capabilities { - serve_headers: false, - serve_chain_since: None, - serve_state_since: None, - tx_relay: false, - }, - sample_store: None, - }; - - let provider = LightProvider::new(chain.clone(), Arc::new(RwLock::new(Default::default()))); - let mut proto = LightProtocol::new(Arc::new(provider), params); - proto.add_handler(sync.clone()); - Peer { - proto: proto, - queue: RwLock::new(VecDeque::new()), - data: PeerData::Light(sync, chain), - } - } - - // get the chain from the client, asserting that it is a full node. - pub fn chain(&self) -> &TestBlockChainClient { - match self.data { - PeerData::Full(ref chain) => &*chain, - _ => panic!("Attempted to access full chain on light peer."), - } - } - - // get the light chain from the peer, asserting that it is a light node. - pub fn light_chain(&self) -> &LightClient { - match self.data { - PeerData::Light(_, ref chain) => &*chain, - _ => panic!("Attempted to access light chain on full peer."), - } - } - - // get a test Io context based on - fn io(&self, sender: Option) -> TestIoContext { - TestIoContext { - queue: &self.queue, - sender: sender, - to_disconnect: RwLock::new(HashSet::new()), - } - } -} - -impl PeerLike for Peer { - type Message = TestPacket; - - fn on_connect(&self, other: PeerId) { - let io = self.io(Some(other)); - self.proto.on_connect(other, &io); - } - - fn on_disconnect(&self, other: PeerId) { - let io = self.io(Some(other)); - self.proto.on_disconnect(other, &io); - } - - fn receive_message(&self, from: PeerId, msg: TestPacket) -> HashSet { - let io = self.io(Some(from)); - self.proto - .handle_packet(&io, from, msg.packet_id, &msg.data); - io.to_disconnect.into_inner() - } - - fn pending_message(&self) -> Option { - self.queue.write().pop_front() - } - - fn is_done(&self) -> bool { - self.queue.read().is_empty() - && match self.data { - PeerData::Light(_, ref client) => { - // should create a test light client which just imports - // headers directly and doesn't have a queue to drain. - client.import_verified(); - client.queue_info().is_empty() - } - _ => true, - } - } - - fn sync_step(&self) { - if let PeerData::Light(_, ref client) = self.data { - client.flush_queue(); - - while !client.queue_info().is_empty() { - client.import_verified() - } - } - } - - fn restart_sync(&self) {} - - fn process_all_io_messages(&self) {} - - fn process_all_new_block_messages(&self) {} -} - -impl TestNet { - /// Create a new `TestNet` for testing light synchronization. - /// The first parameter is the number of light nodes, - /// the second is the number of full nodes. - pub fn light(n_light: usize, n_full: usize) -> Self { - let mut peers = Vec::with_capacity(n_light + n_full); - for _ in 0..n_light { - let mut config = ::light::client::Config::default(); - - // skip full verification because the blocks are bad. - config.verify_full = false; - let cache = Arc::new(Mutex::new(Cache::new( - Default::default(), - Duration::from_secs(6 * 3600), - ))); - let db = kvdb_memorydb::create(0); - let client = LightClient::new( - config, - Arc::new(db), - None, - &Spec::new_test(), - fetch::unavailable(), // TODO: allow fetch from full nodes. - IoChannel::disconnected(), - cache, - ) - .expect("New DB creation infallible; qed"); - - peers.push(Arc::new(Peer::new_light(Arc::new(client)))) - } - - for _ in 0..n_full { - peers.push(Arc::new(Peer::new_full(Arc::new( - TestBlockChainClient::new(), - )))) - } - - TestNet { - peers: peers, - started: false, - disconnect_events: Vec::new(), - } - } -} diff --git a/json/src/spec/hardcoded_sync.rs b/json/src/spec/hardcoded_sync.rs deleted file mode 100644 index d7b88c680..000000000 --- a/json/src/spec/hardcoded_sync.rs +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Spec hardcoded synchronization deserialization for the light client. - -use hash::H256; -use uint::Uint; - -/// Spec hardcoded sync. -#[derive(Debug, PartialEq, Serialize, Deserialize)] -#[serde(deny_unknown_fields)] -#[serde(rename_all = "camelCase")] -pub struct HardcodedSync { - /// Hexadecimal of the RLP encoding of the header of the block to start synchronization from. - pub header: String, - /// Total difficulty including the block of `header`. - pub total_difficulty: Uint, - /// Ordered trie roots of blocks before and including `header`. - #[serde(rename = "CHTs")] - pub chts: Vec, -} - -#[cfg(test)] -mod tests { - use ethereum_types::{H256 as Eth256, U256}; - use hash::H256; - use serde_json; - use spec::hardcoded_sync::HardcodedSync; - use uint::Uint; - - #[test] - fn hardcoded_sync_deserialization() { - let s = r#"{ - "header": "f901f9a0d405da4e66f1445d455195229624e133f5baafe72b5cf7b3c36c12c8146e98b7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a05fb2b4bfdef7b314451cb138a534d225c922fc0e5fbe25e451142732c3e25c25a088d2ec6b9860aae1a2c3b299f72b6a5d70d7f7ba4722c78f2c49ba96273c2158a007c6fdfa8eea7e86b81f5b0fc0f78f90cc19f4aa60d323151e0cac660199e9a1b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302008003832fefba82524d84568e932a80a0a0349d8c3df71f1a48a9df7d03fd5f14aeee7d91332c009ecaff0a71ead405bd88ab4e252a7e8c2a23", - "totalDifficulty": "0x400000000", - "CHTs": [ - "0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa", - "0xd7f8974fb5ac78d9ac099b9ad5018bedc2ce0a72dad1827a1709da30580f0544" - ] - }"#; - let deserialized: HardcodedSync = serde_json::from_str(s).unwrap(); - assert_eq!(deserialized, HardcodedSync { - header: String::from("f901f9a0d405da4e66f1445d455195229624e133f5baafe72b5cf7b3c36c12c8146e98b7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a05fb2b4bfdef7b314451cb138a534d225c922fc0e5fbe25e451142732c3e25c25a088d2ec6b9860aae1a2c3b299f72b6a5d70d7f7ba4722c78f2c49ba96273c2158a007c6fdfa8eea7e86b81f5b0fc0f78f90cc19f4aa60d323151e0cac660199e9a1b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302008003832fefba82524d84568e932a80a0a0349d8c3df71f1a48a9df7d03fd5f14aeee7d91332c009ecaff0a71ead405bd88ab4e252a7e8c2a23"), - total_difficulty: Uint(U256::from(0x400000000u64)), - chts: vec![ - H256(Eth256::from("0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa")), - H256(Eth256::from("0xd7f8974fb5ac78d9ac099b9ad5018bedc2ce0a72dad1827a1709da30580f0544")), - ] - }); - } -} diff --git a/json/src/spec/mod.rs b/json/src/spec/mod.rs index 329573cf7..14ec55f80 100644 --- a/json/src/spec/mod.rs +++ b/json/src/spec/mod.rs @@ -24,7 +24,6 @@ pub mod clique; pub mod engine; pub mod ethash; pub mod genesis; -pub mod hardcoded_sync; pub mod instant_seal; pub mod null_engine; pub mod params; @@ -42,7 +41,6 @@ pub use self::{ engine::Engine, ethash::{BlockReward, Ethash, EthashParams}, genesis::Genesis, - hardcoded_sync::HardcodedSync, instant_seal::{InstantSeal, InstantSealParams}, null_engine::{NullEngine, NullEngineParams}, params::Params, diff --git a/json/src/spec/spec.rs b/json/src/spec/spec.rs index c71574171..3ad07353f 100644 --- a/json/src/spec/spec.rs +++ b/json/src/spec/spec.rs @@ -17,7 +17,7 @@ //! Spec deserialization. use serde_json::{self, Error}; -use spec::{Engine, Genesis, HardcodedSync, Params, State}; +use spec::{Engine, Genesis, Params, State}; use std::io::Read; /// Fork spec definition @@ -56,8 +56,6 @@ pub struct Spec { pub accounts: State, /// Boot nodes. pub nodes: Option>, - /// Hardcoded synchronization for the light client. - pub hardcoded_sync: Option, } impl Spec { @@ -126,14 +124,6 @@ mod tests { "0000000000000000000000000000000000000003": { "balance": "1", "nonce": "1048576", "builtin": { "name": "ripemd160", "pricing": { "linear": { "base": 600, "word": 120 } } } }, "0000000000000000000000000000000000000004": { "balance": "1", "nonce": "1048576", "builtin": { "name": "identity", "pricing": { "linear": { "base": 15, "word": 3 } } } }, "102e61f5d8f9bc71d0ad4a084df4e65e05ce0e1c": { "balance": "1606938044258990275541962092341162602522202993782792835301376", "nonce": "1048576" } - }, - "hardcodedSync": { - "header": "f901f9a0d405da4e66f1445d455195229624e133f5baafe72b5cf7b3c36c12c8146e98b7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a05fb2b4bfdef7b314451cb138a534d225c922fc0e5fbe25e451142732c3e25c25a088d2ec6b9860aae1a2c3b299f72b6a5d70d7f7ba4722c78f2c49ba96273c2158a007c6fdfa8eea7e86b81f5b0fc0f78f90cc19f4aa60d323151e0cac660199e9a1b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302008003832fefba82524d84568e932a80a0a0349d8c3df71f1a48a9df7d03fd5f14aeee7d91332c009ecaff0a71ead405bd88ab4e252a7e8c2a23", - "totalDifficulty": "0x400000000", - "CHTs": [ - "0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa", - "0xd7f8974fb5ac78d9ac099b9ad5018bedc2ce0a72dad1827a1709da30580f0544" - ] } }"#; let result: Result = serde_json::from_str(s); @@ -238,14 +228,6 @@ mod tests { } }, "102e61f5d8f9bc71d0ad4a084df4e65e05ce0e1c": { "balance": "1606938044258990275541962092341162602522202993782792835301376", "nonce": "1048576" } - }, - "hardcodedSync": { - "header": "f901f9a0d405da4e66f1445d455195229624e133f5baafe72b5cf7b3c36c12c8146e98b7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a05fb2b4bfdef7b314451cb138a534d225c922fc0e5fbe25e451142732c3e25c25a088d2ec6b9860aae1a2c3b299f72b6a5d70d7f7ba4722c78f2c49ba96273c2158a007c6fdfa8eea7e86b81f5b0fc0f78f90cc19f4aa60d323151e0cac660199e9a1b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302008003832fefba82524d84568e932a80a0a0349d8c3df71f1a48a9df7d03fd5f14aeee7d91332c009ecaff0a71ead405bd88ab4e252a7e8c2a23", - "totalDifficulty": "0x400000000", - "CHTs": [ - "0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa", - "0xd7f8974fb5ac78d9ac099b9ad5018bedc2ce0a72dad1827a1709da30580f0544" - ] } }"#; let _deserialized: Spec = serde_json::from_str(s).unwrap(); diff --git a/parity/blockchain.rs b/parity/blockchain.rs index 3d09ca9e4..6940a56e2 100644 --- a/parity/blockchain.rs +++ b/parity/blockchain.rs @@ -14,14 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Parity Ethereum. If not, see . -use std::{ - fs, io, - io::{BufRead, BufReader}, - str::from_utf8, - sync::Arc, - thread::sleep, - time::{Duration, Instant}, -}; +use std::{fs, io, sync::Arc, time::Instant}; use ansi_term::Colour; use bytes::ToPretty; @@ -33,7 +26,6 @@ use ethcore::{ Balance, BlockChainClient, BlockChainReset, BlockId, DatabaseCompactionProfile, ImportExportBlocks, Mode, Nonce, VMType, }, - error::{Error as EthcoreError, ErrorKind as EthcoreErrorKind, ImportErrorKind}, miner::Miner, verification::queue::VerifierSettings, }; @@ -44,8 +36,6 @@ use hash::{keccak, KECCAK_NULL_RLP}; use helpers::{execute_upgrades, to_client_config}; use informant::{FullNodeInformantData, Informant, MillisecondDuration}; use params::{fatdb_switch_to_bool, tracing_switch_to_bool, Pruning, SpecType, Switch}; -use rlp::PayloadInfo; -use rustc_hex::FromHex; use types::data_format::DataFormat; use user_defaults::UserDefaults; @@ -96,7 +86,6 @@ pub struct ImportBlockchain { pub check_seal: bool, pub with_color: bool, pub verifier_settings: VerifierSettings, - pub light: bool, pub max_round_blocks_to_import: usize, } @@ -143,201 +132,13 @@ pub struct ExportState { pub fn execute(cmd: BlockchainCmd) -> Result<(), String> { match cmd { BlockchainCmd::Kill(kill_cmd) => kill_db(kill_cmd), - BlockchainCmd::Import(import_cmd) => { - if import_cmd.light { - execute_import_light(import_cmd) - } else { - execute_import(import_cmd) - } - } + BlockchainCmd::Import(import_cmd) => execute_import(import_cmd), BlockchainCmd::Export(export_cmd) => execute_export(export_cmd), BlockchainCmd::ExportState(export_cmd) => execute_export_state(export_cmd), BlockchainCmd::Reset(reset_cmd) => execute_reset(reset_cmd), } } -fn execute_import_light(cmd: ImportBlockchain) -> Result<(), String> { - use light::{ - cache::Cache as LightDataCache, - client::{Config as LightClientConfig, Service as LightClientService}, - }; - use parking_lot::Mutex; - - let timer = Instant::now(); - - // load spec file - let spec = cmd.spec.spec(&cmd.dirs.cache)?; - - // load genesis hash - let genesis_hash = spec.genesis_header().hash(); - - // database paths - let db_dirs = cmd.dirs.database(genesis_hash, None, spec.data_dir.clone()); - - // user defaults path - let user_defaults_path = db_dirs.user_defaults_path(); - - // load user defaults - let user_defaults = UserDefaults::load(&user_defaults_path)?; - - // select pruning algorithm - let algorithm = cmd.pruning.to_algorithm(&user_defaults); - - // prepare client and snapshot paths. - let client_path = db_dirs.client_path(algorithm); - - // execute upgrades - execute_upgrades(&cmd.dirs.base, &db_dirs, algorithm, &cmd.compaction)?; - - // create dirs used by parity - cmd.dirs.create_dirs(false, false)?; - - let cache = Arc::new(Mutex::new(LightDataCache::new( - Default::default(), - Duration::new(0, 0), - ))); - - let mut config = LightClientConfig { - queue: Default::default(), - chain_column: ethcore_db::COL_LIGHT_CHAIN, - verify_full: true, - check_seal: cmd.check_seal, - no_hardcoded_sync: true, - }; - - config.queue.max_mem_use = cmd.cache_config.queue() as usize * 1024 * 1024; - config.queue.verifier_settings = cmd.verifier_settings; - - // initialize database. - let db = db::open_db( - &client_path - .to_str() - .expect("DB path could not be converted to string."), - &cmd.cache_config, - &cmd.compaction, - ) - .map_err(|e| format!("Failed to open database: {:?}", e))?; - - // TODO: could epoch signals be available at the end of the file? - let fetch = ::light::client::fetch::unavailable(); - let service = LightClientService::start(config, &spec, fetch, db, cache) - .map_err(|e| format!("Failed to start client: {}", e))?; - - // free up the spec in memory. - drop(spec); - - let client = service.client(); - - let mut instream: Box = match cmd.file_path { - Some(f) => { - Box::new(fs::File::open(&f).map_err(|_| format!("Cannot open given file: {}", f))?) - } - None => Box::new(io::stdin()), - }; - - const READAHEAD_BYTES: usize = 8; - - let mut first_bytes: Vec = vec![0; READAHEAD_BYTES]; - let mut first_read = 0; - - let format = match cmd.format { - Some(format) => format, - None => { - first_read = instream - .read(&mut first_bytes) - .map_err(|_| "Error reading from the file/stream.")?; - match first_bytes[0] { - 0xf9 => DataFormat::Binary, - _ => DataFormat::Hex, - } - } - }; - - let do_import = |bytes: Vec| { - while client.queue_info().is_full() { - sleep(Duration::from_secs(1)); - } - - let header: ::types::header::Header = ::rlp::Rlp::new(&bytes) - .val_at(0) - .map_err(|e| format!("Bad block: {}", e))?; - - if client.best_block_header().number() >= header.number() { - return Ok(()); - } - - if header.number() % 10000 == 0 { - info!("#{}", header.number()); - } - - match client.import_header(header) { - Err(EthcoreError(EthcoreErrorKind::Import(ImportErrorKind::AlreadyInChain), _)) => { - trace!("Skipping block already in chain."); - } - Err(e) => { - return Err(format!("Cannot import block: {:?}", e)); - } - Ok(_) => {} - } - Ok(()) - }; - - match format { - DataFormat::Binary => loop { - let mut bytes = if first_read > 0 { - first_bytes.clone() - } else { - vec![0; READAHEAD_BYTES] - }; - let n = if first_read > 0 { - first_read - } else { - instream - .read(&mut bytes) - .map_err(|_| "Error reading from the file/stream.")? - }; - if n == 0 { - break; - } - first_read = 0; - let s = PayloadInfo::from(&bytes) - .map_err(|e| format!("Invalid RLP in the file/stream: {:?}", e))? - .total(); - bytes.resize(s, 0); - instream - .read_exact(&mut bytes[n..]) - .map_err(|_| "Error reading from the file/stream.")?; - do_import(bytes)?; - }, - DataFormat::Hex => { - for line in BufReader::new(instream).lines() { - let s = line.map_err(|_| "Error reading from the file/stream.")?; - let s = if first_read > 0 { - from_utf8(&first_bytes).unwrap().to_owned() + &(s[..]) - } else { - s - }; - first_read = 0; - let bytes = s.from_hex().map_err(|_| "Invalid hex in file/stream.")?; - do_import(bytes)?; - } - } - } - client.flush_queue(); - - let ms = timer.elapsed().as_milliseconds(); - let report = client.report(); - - info!( - "Import completed in {} seconds, {} headers, {} hdr/s", - ms / 1000, - report.blocks_imported, - (report.blocks_imported * 1000) as u64 / ms, - ); - - Ok(()) -} - fn execute_import(cmd: ImportBlockchain) -> Result<(), String> { let timer = Instant::now(); diff --git a/parity/cli/mod.rs b/parity/cli/mod.rs index 132d17610..21b3eb507 100644 --- a/parity/cli/mod.rs +++ b/parity/cli/mod.rs @@ -230,11 +230,6 @@ usage! { } } - - CMD cmd_export_hardcoded_sync - { - "Print the hashed light clients headers of the given --chain (default: mainnet) in a JSON format. To be used as hardcoded headers in a genesis file.", - } } { // Global flags and arguments @@ -247,14 +242,6 @@ usage! { "--no-consensus", "Force the binary to run even if there are known issues regarding consensus. Not recommended.", - FLAG flag_light: (bool) = false, or |c: &Config| c.parity.as_ref()?.light, - "--light", - "Experimental: run in light client mode. Light clients synchronize a bare minimum of data and fetch necessary data on-demand from the network. Much lower in storage, potentially higher in bandwidth. Has no effect with subcommands.", - - FLAG flag_no_hardcoded_sync: (bool) = false, or |c: &Config| c.parity.as_ref()?.no_hardcoded_sync, - "--no-hardcoded-sync", - "By default, if there is no existing database the light client will automatically jump to a block hardcoded in the chain's specifications. This disables this feature.", - FLAG flag_force_direct: (bool) = false, or |_| None, "--force-direct", "Run the originally installed version of Parity, ignoring any updates that have since been installed.", @@ -392,10 +379,6 @@ usage! { "--no-ancient-blocks", "Disable downloading old blocks after snapshot restoration or warp sync. Not recommended.", - FLAG flag_no_serve_light: (bool) = false, or |c: &Config| c.network.as_ref()?.no_serve_light.clone(), - "--no-serve-light", - "Disable serving of light peers.", - ARG arg_warp_barrier: (Option) = None, or |c: &Config| c.network.as_ref()?.warp_barrier.clone(), "--warp-barrier=[NUM]", "When warp enabled never attempt regular sync before warping to block NUM.", @@ -574,27 +557,6 @@ usage! { "--ipfs-api-cors=[URL]", "Specify CORS header for IPFS API responses. Special options: \"all\", \"none\".", - ["Light Client Options"] - ARG arg_on_demand_response_time_window: (Option) = None, or |c: &Config| c.light.as_ref()?.on_demand_response_time_window, - "--on-demand-time-window=[S]", - "Specify the maximum time to wait for a successful response", - - ARG arg_on_demand_request_backoff_start: (Option) = None, or |c: &Config| c.light.as_ref()?.on_demand_request_backoff_start, - "--on-demand-start-backoff=[S]", - "Specify light client initial backoff time for a request", - - ARG arg_on_demand_request_backoff_max: (Option) = None, or |c: &Config| c.light.as_ref()?.on_demand_request_backoff_max, - "--on-demand-end-backoff=[S]", - "Specify light client maximum backoff time for a request", - - ARG arg_on_demand_request_backoff_rounds_max: (Option) = None, or |c: &Config| c.light.as_ref()?.on_demand_request_backoff_rounds_max, - "--on-demand-max-backoff-rounds=[TIMES]", - "Specify light client maximum number of backoff iterations for a request", - - ARG arg_on_demand_request_consecutive_failures: (Option) = None, or |c: &Config| c.light.as_ref()?.on_demand_request_consecutive_failures, - "--on-demand-consecutive-failures=[TIMES]", - "Specify light client the number of failures for a request until it gets exponentially backed off", - ["Secret Store Options"] FLAG flag_no_secretstore: (bool) = false, or |c: &Config| c.secretstore.as_ref()?.disable.clone(), "--no-secretstore", @@ -926,7 +888,6 @@ struct Config { snapshots: Option, misc: Option, stratum: Option, - light: Option, } #[derive(Default, Debug, PartialEq, Deserialize)] @@ -946,9 +907,7 @@ struct Operating { db_path: Option, keys_path: Option, identity: Option, - light: Option, no_persistent_txqueue: Option, - no_hardcoded_sync: Option, } #[derive(Default, Debug, PartialEq, Deserialize)] @@ -998,7 +957,6 @@ struct Network { node_key: Option, reserved_peers: Option, reserved_only: Option, - no_serve_light: Option, } #[derive(Default, Debug, PartialEq, Deserialize)] @@ -1154,21 +1112,11 @@ struct Misc { unsafe_expose: Option, } -#[derive(Default, Debug, PartialEq, Deserialize)] -#[serde(deny_unknown_fields)] -struct Light { - on_demand_response_time_window: Option, - on_demand_request_backoff_start: Option, - on_demand_request_backoff_max: Option, - on_demand_request_backoff_rounds_max: Option, - on_demand_request_consecutive_failures: Option, -} - #[cfg(test)] mod tests { use super::{ - Account, Args, ArgsError, Config, Footprint, Ipc, Ipfs, Light, Mining, Misc, Network, - Operating, Rpc, SecretStore, Snapshots, Ws, + Account, Args, ArgsError, Config, Footprint, Ipc, Ipfs, Mining, Misc, Network, Operating, + Rpc, SecretStore, Snapshots, Ws, }; use clap::ErrorKind as ClapErrorKind; use toml; @@ -1373,7 +1321,6 @@ mod tests { cmd_db: false, cmd_db_kill: false, cmd_db_reset: false, - cmd_export_hardcoded_sync: false, // Arguments arg_daemon_pid_file: None, @@ -1408,8 +1355,6 @@ mod tests { arg_db_path: Some("$HOME/.parity/chains".into()), arg_keys_path: "$HOME/.parity/keys".into(), arg_identity: "".into(), - flag_light: false, - flag_no_hardcoded_sync: false, flag_no_persistent_txqueue: false, flag_force_direct: false, @@ -1453,7 +1398,6 @@ mod tests { arg_reserved_peers: Some("./path_to_file".into()), flag_reserved_only: false, flag_no_ancient_blocks: false, - flag_no_serve_light: false, arg_warp_barrier: None, // -- API and Console Options @@ -1582,13 +1526,6 @@ mod tests { flag_no_periodic_snapshot: false, arg_snapshot_threads: None, - // -- Light options. - arg_on_demand_response_time_window: Some(2), - arg_on_demand_request_backoff_start: Some(9), - arg_on_demand_request_backoff_max: Some(15), - arg_on_demand_request_backoff_rounds_max: Some(100), - arg_on_demand_request_consecutive_failures: Some(1), - // -- Internal Options flag_can_restart: false, @@ -1648,8 +1585,6 @@ mod tests { db_path: None, keys_path: None, identity: None, - light: None, - no_hardcoded_sync: None, no_persistent_txqueue: None, }), account: Some(Account { @@ -1677,7 +1612,6 @@ mod tests { node_key: None, reserved_peers: Some("./path/to/reserved_peers".into()), reserved_only: Some(true), - no_serve_light: None, }), websockets: Some(Ws { disable: Some(true), @@ -1787,13 +1721,6 @@ mod tests { scale_verifiers: Some(false), num_verifiers: None, }), - light: Some(Light { - on_demand_response_time_window: Some(2), - on_demand_request_backoff_start: Some(9), - on_demand_request_backoff_max: Some(15), - on_demand_request_backoff_rounds_max: Some(10), - on_demand_request_consecutive_failures: Some(1), - }), snapshots: Some(Snapshots { disable_periodic: Some(true), processing_threads: None, diff --git a/parity/cli/tests/config.full.toml b/parity/cli/tests/config.full.toml index e3dd40b66..63b10941b 100644 --- a/parity/cli/tests/config.full.toml +++ b/parity/cli/tests/config.full.toml @@ -15,8 +15,6 @@ base_path = "$HOME/.parity" db_path = "$HOME/.parity/chains" keys_path = "$HOME/.parity/keys" identity = "" -light = false -no_hardcoded_sync = false [account] unlock = ["0xdeadbeefcafe0000000000000000000000000000"] @@ -47,7 +45,6 @@ warp = true allow_ips = "all" snapshot_peers = 0 max_pending_peers = 64 -no_serve_light = false reserved_only = false reserved_peers = "./path_to_file" @@ -142,13 +139,6 @@ fat_db = "auto" scale_verifiers = true num_verifiers = 6 -[light] -on_demand_response_time_window = 2 -on_demand_request_backoff_start = 9 -on_demand_request_backoff_max = 15 -on_demand_request_backoff_rounds_max = 100 -on_demand_request_consecutive_failures = 1 - [snapshots] disable_periodic = false diff --git a/parity/cli/tests/config.toml b/parity/cli/tests/config.toml index 9742e1b81..5e2fbe8db 100644 --- a/parity/cli/tests/config.toml +++ b/parity/cli/tests/config.toml @@ -62,13 +62,6 @@ db_compaction = "ssd" fat_db = "off" scale_verifiers = false -[light] -on_demand_response_time_window = 2 -on_demand_request_backoff_start = 9 -on_demand_request_backoff_max = 15 -on_demand_request_backoff_rounds_max = 10 -on_demand_request_consecutive_failures = 1 - [snapshots] disable_periodic = true diff --git a/parity/configuration.rs b/parity/configuration.rs index 82ead3e94..d63e7714d 100644 --- a/parity/configuration.rs +++ b/parity/configuration.rs @@ -53,7 +53,6 @@ use dir::{ }; use ethcore_logger::Config as LogConfig; use ethcore_private_tx::{EncryptorConfig, ProviderConfig}; -use export_hardcoded_sync::ExportHsyncCmd; use helpers::{ parity_ipc_path, to_address, to_addresses, to_block_id, to_bootnodes, to_duration, to_mode, to_pending_set, to_price, to_queue_penalization, to_queue_strategy, to_u256, @@ -103,7 +102,6 @@ pub enum Cmd { }, Snapshot(SnapshotCommand), Hash(Option), - ExportHardcodedSync(ExportHsyncCmd), } pub struct Execute { @@ -286,7 +284,6 @@ impl Configuration { check_seal: !self.args.flag_no_seal_check, with_color: logger_config.color, verifier_settings: self.verifier_settings(), - light: self.args.flag_light, max_round_blocks_to_import: self.args.arg_max_round_blocks_to_import, }; Cmd::Blockchain(BlockchainCmd::Import(import_cmd)) @@ -376,15 +373,6 @@ impl Configuration { snapshot_conf: snapshot_conf, }; Cmd::Snapshot(restore_cmd) - } else if self.args.cmd_export_hardcoded_sync { - let export_hs_cmd = ExportHsyncCmd { - cache_config: cache_config, - dirs: dirs, - spec: spec, - pruning: pruning, - compaction: compaction, - }; - Cmd::ExportHardcodedSync(export_hs_cmd) } else { let daemon = if self.args.cmd_daemon { Some( @@ -444,20 +432,8 @@ impl Configuration { check_seal: !self.args.flag_no_seal_check, download_old_blocks: !self.args.flag_no_ancient_blocks, verifier_settings: verifier_settings, - serve_light: !self.args.flag_no_serve_light, - light: self.args.flag_light, no_persistent_txqueue: self.args.flag_no_persistent_txqueue, - no_hardcoded_sync: self.args.flag_no_hardcoded_sync, max_round_blocks_to_import: self.args.arg_max_round_blocks_to_import, - on_demand_response_time_window: self.args.arg_on_demand_response_time_window, - on_demand_request_backoff_start: self.args.arg_on_demand_request_backoff_start, - on_demand_request_backoff_max: self.args.arg_on_demand_request_backoff_max, - on_demand_request_backoff_rounds_max: self - .args - .arg_on_demand_request_backoff_rounds_max, - on_demand_request_consecutive_failures: self - .args - .arg_on_demand_request_consecutive_failures, }; Cmd::Run(run_cmd) }; @@ -1106,16 +1082,7 @@ impl Configuration { let is_using_base_path = self.args.arg_base_path.is_some(); // If base_path is set and db_path is not we default to base path subdir instead of LOCAL. let base_db_path = if is_using_base_path && self.args.arg_db_path.is_none() { - if self.args.flag_light { - "$BASE/chains_light" - } else { - "$BASE/chains" - } - } else if self.args.flag_light { - self.args - .arg_db_path - .as_ref() - .map_or(dir::CHAINS_PATH_LIGHT, |s| &s) + "$BASE/chains" } else { self.args .arg_db_path @@ -1479,7 +1446,6 @@ mod tests { check_seal: true, with_color: !cfg!(windows), verifier_settings: Default::default(), - light: false, max_round_blocks_to_import: 12, })) ); @@ -1674,16 +1640,8 @@ mod tests { check_seal: true, download_old_blocks: true, verifier_settings: Default::default(), - serve_light: true, - light: false, - no_hardcoded_sync: false, no_persistent_txqueue: false, max_round_blocks_to_import: 12, - on_demand_response_time_window: None, - on_demand_request_backoff_start: None, - on_demand_request_backoff_max: None, - on_demand_request_backoff_rounds_max: None, - on_demand_request_consecutive_failures: None, }; expected.secretstore_conf.enabled = cfg!(feature = "secretstore"); expected.secretstore_conf.http_enabled = cfg!(feature = "secretstore"); diff --git a/parity/db/mod.rs b/parity/db/mod.rs index 7065884dc..7b27c20c8 100644 --- a/parity/db/mod.rs +++ b/parity/db/mod.rs @@ -19,7 +19,7 @@ #[path = "rocksdb/mod.rs"] mod impls; -pub use self::impls::{migrate, open_db, restoration_db_handler}; +pub use self::impls::{migrate, restoration_db_handler}; #[cfg(feature = "secretstore")] pub use self::impls::open_secretstore_db; diff --git a/parity/db/rocksdb/mod.rs b/parity/db/rocksdb/mod.rs index ba346b97e..05339aa2f 100644 --- a/parity/db/rocksdb/mod.rs +++ b/parity/db/rocksdb/mod.rs @@ -23,13 +23,10 @@ use self::{ kvdb_rocksdb::{Database, DatabaseConfig}, }; use blooms_db; -use ethcore::client::{ClientConfig, DatabaseCompactionProfile}; -use ethcore_db::NUM_COLUMNS; +use ethcore::client::ClientConfig; use kvdb::KeyValueDB; use std::{fs, io, path::Path, sync::Arc}; -use cache::CacheConfig; - mod blooms; mod helpers; mod migration; @@ -93,23 +90,6 @@ pub fn restoration_db_handler( }) } -/// Open a new main DB. -pub fn open_db( - client_path: &str, - cache_config: &CacheConfig, - compaction: &DatabaseCompactionProfile, -) -> io::Result> { - let path = Path::new(client_path); - - let db_config = DatabaseConfig { - memory_budget: Some(cache_config.blockchain() as usize * 1024 * 1024), - compaction: helpers::compaction_profile(&compaction, path), - ..DatabaseConfig::with_columns(NUM_COLUMNS) - }; - - open_database(client_path, &db_config) -} - pub fn open_database( client_path: &str, config: &DatabaseConfig, diff --git a/parity/export_hardcoded_sync.rs b/parity/export_hardcoded_sync.rs deleted file mode 100644 index 4adb034d1..000000000 --- a/parity/export_hardcoded_sync.rs +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -use std::{sync::Arc, time::Duration}; - -use ethcore::{ - client::DatabaseCompactionProfile, - spec::{OptimizeFor, SpecParams}, -}; -use light::{client::fetch::Unavailable as UnavailableDataFetcher, Cache as LightDataCache}; - -use cache::CacheConfig; -use db; -use dir::Directories; -use helpers::execute_upgrades; -use params::{Pruning, SpecType}; -use user_defaults::UserDefaults; - -// Number of minutes before a given gas price corpus should expire. -// Light client only. -const GAS_CORPUS_EXPIRATION_MINUTES: u64 = 60 * 6; - -#[derive(Debug, PartialEq)] -pub struct ExportHsyncCmd { - pub cache_config: CacheConfig, - pub dirs: Directories, - pub spec: SpecType, - pub pruning: Pruning, - pub compaction: DatabaseCompactionProfile, -} - -pub fn execute(cmd: ExportHsyncCmd) -> Result { - use light::client as light_client; - use parking_lot::Mutex; - - // load spec - let spec = cmd.spec.spec(SpecParams::new( - cmd.dirs.cache.as_ref(), - OptimizeFor::Memory, - ))?; - - // load genesis hash - let genesis_hash = spec.genesis_header().hash(); - - // database paths - let db_dirs = cmd.dirs.database( - genesis_hash, - cmd.spec.legacy_fork_name(), - spec.data_dir.clone(), - ); - - // user defaults path - let user_defaults_path = db_dirs.user_defaults_path(); - - // load user defaults - let user_defaults = UserDefaults::load(&user_defaults_path)?; - - // select pruning algorithm - let algorithm = cmd.pruning.to_algorithm(&user_defaults); - - // execute upgrades - execute_upgrades(&cmd.dirs.base, &db_dirs, algorithm, &cmd.compaction)?; - - // create dirs used by parity - cmd.dirs.create_dirs(false, false)?; - - // TODO: configurable cache size. - let cache = LightDataCache::new( - Default::default(), - Duration::from_secs(60 * GAS_CORPUS_EXPIRATION_MINUTES), - ); - let cache = Arc::new(Mutex::new(cache)); - - // start client and create transaction queue. - let mut config = light_client::Config { - queue: Default::default(), - chain_column: ::ethcore_db::COL_LIGHT_CHAIN, - verify_full: true, - check_seal: true, - no_hardcoded_sync: true, - }; - - config.queue.max_mem_use = cmd.cache_config.queue() as usize * 1024 * 1024; - - // initialize database. - let db = db::open_db( - &db_dirs - .client_path(algorithm) - .to_str() - .expect("DB path could not be converted to string."), - &cmd.cache_config, - &cmd.compaction, - ) - .map_err(|e| format!("Failed to open database {:?}", e))?; - - let service = light_client::Service::start(config, &spec, UnavailableDataFetcher, db, cache) - .map_err(|e| format!("Error starting light client: {}", e))?; - - let hs = service - .client() - .read_hardcoded_sync() - .map_err(|e| format!("Error reading hardcoded sync: {}", e))?; - if let Some(hs) = hs { - Ok(::serde_json::to_string_pretty(&hs.to_json()).expect("generated JSON is always valid")) - } else { - Err("Error: cannot generate hardcoded sync because the database is empty.".into()) - } -} diff --git a/parity/informant.rs b/parity/informant.rs index e442925eb..791ec981b 100644 --- a/parity/informant.rs +++ b/parity/informant.rs @@ -37,16 +37,11 @@ use ethcore::{ }, snapshot::{service::Service as SnapshotService, RestorationStatus, SnapshotService as SS}, }; -use ethereum_types::H256; use io::{IoContext, IoHandler, TimerToken}; -use light::{ - client::{LightChainClient, LightChainNotify}, - Cache as LightDataCache, -}; use number_prefix::{binary_prefix, Prefixed, Standalone}; use parity_rpc::{informant::RpcStats, is_major_importing_or_waiting}; use parking_lot::{Mutex, RwLock}; -use sync::{LightSync, LightSyncProvider, ManageNetwork, SyncProvider}; +use sync::{ManageNetwork, SyncProvider}; use types::BlockNumber; /// Format byte counts to standard denominations. @@ -189,53 +184,6 @@ impl InformantData for FullNodeInformantData { } } -/// Informant data for a light node -- note that the network is required. -pub struct LightNodeInformantData { - pub client: Arc, - pub sync: Arc, - pub cache: Arc>, -} - -impl InformantData for LightNodeInformantData { - fn executes_transactions(&self) -> bool { - false - } - - fn is_major_importing(&self) -> bool { - self.sync.is_major_importing() - } - - fn report(&self) -> Report { - let (client_report, queue_info, chain_info) = ( - self.client.report(), - self.client.queue_info(), - self.client.chain_info(), - ); - - let mut cache_sizes = CacheSizes::default(); - cache_sizes.insert("queue", queue_info.mem_used); - cache_sizes.insert("cache", self.cache.lock().mem_used()); - - let peer_numbers = self.sync.peer_numbers(); - let sync_info = Some(SyncInfo { - last_imported_block_number: chain_info.best_block_number, - last_imported_old_block_number: None, - num_peers: peer_numbers.connected, - max_peers: peer_numbers.max as u32, - snapshot_sync: false, - }); - - Report { - importing: self.sync.is_major_importing(), - chain_info, - client_report, - queue_info, - cache_sizes, - sync_info, - } - } -} - pub struct Informant { last_tick: RwLock, with_color: bool, @@ -449,36 +397,6 @@ impl ChainNotify for Informant { } } -impl LightChainNotify for Informant { - fn new_headers(&self, good: &[H256]) { - let mut last_import = self.last_import.lock(); - let client = &self.target.client; - - let importing = self.target.is_major_importing(); - let ripe = Instant::now() > *last_import + Duration::from_secs(1) && !importing; - - if ripe { - if let Some(header) = good - .last() - .and_then(|h| client.block_header(BlockId::Hash(*h))) - { - info!(target: "import", "Imported {} {} ({} Mgas){}", - Colour::White.bold().paint(format!("#{}", header.number())), - Colour::White.bold().paint(format!("{}", header.hash())), - Colour::Yellow.bold().paint(format!("{:.2}", header.gas_used().low_u64() as f32 / 1000000f32)), - if good.len() > 1 { - format!(" + another {} header(s)", - Colour::Red.bold().paint(format!("{}", good.len() - 1))) - } else { - String::new() - } - ); - *last_import = Instant::now(); - } - } - } -} - const INFO_TIMER: TimerToken = 0; impl IoHandler for Informant { diff --git a/parity/lib.rs b/parity/lib.rs index 78bb1e1e4..2cee8f962 100644 --- a/parity/lib.rs +++ b/parity/lib.rs @@ -46,7 +46,6 @@ extern crate ethcore; extern crate ethcore_call_contract as call_contract; extern crate ethcore_db; extern crate ethcore_io as io; -extern crate ethcore_light as light; extern crate ethcore_logger; extern crate ethcore_miner as miner; extern crate ethcore_network as network; @@ -98,11 +97,9 @@ mod cache; mod cli; mod configuration; mod db; -mod export_hardcoded_sync; mod helpers; mod informant; mod ipfs; -mod light_helpers; mod modules; mod params; mod presale; @@ -235,9 +232,6 @@ where Cmd::Snapshot(snapshot_cmd) => { snapshot::execute(snapshot_cmd).map(|s| ExecutionAction::Instant(Some(s))) } - Cmd::ExportHardcodedSync(export_hs_cmd) => { - export_hardcoded_sync::execute(export_hs_cmd).map(|s| ExecutionAction::Instant(Some(s))) - } } } diff --git a/parity/light_helpers/epoch_fetch.rs b/parity/light_helpers/epoch_fetch.rs deleted file mode 100644 index 8fb63cc12..000000000 --- a/parity/light_helpers/epoch_fetch.rs +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -use std::sync::{Arc, Weak}; - -use ethcore::{ - engines::{EthEngine, StateDependentProof}, - machine::EthereumMachine, -}; -use sync::{LightNetworkDispatcher, LightSync}; -use types::{encoded, header::Header, receipt::Receipt}; - -use futures::{future, future::Either, Future}; - -use light::{ - client::fetch::ChainDataFetcher, - on_demand::{request, OnDemand, OnDemandRequester}, -}; - -use ethereum_types::H256; -use parking_lot::RwLock; - -const ALL_VALID_BACKREFS: &str = "no back-references, therefore all back-references valid; qed"; - -type BoxFuture = Box>; - -/// Allows on-demand fetch of data useful for the light client. -pub struct EpochFetch { - /// A handle to the sync service. - pub sync: Arc>>, - /// The on-demand request service. - pub on_demand: Arc, -} - -impl EpochFetch { - fn request(&self, req: T) -> BoxFuture - where - T: Send + request::RequestAdapter + 'static, - T::Out: Send + 'static, - { - Box::new(match self.sync.read().upgrade() { - Some(sync) => { - let on_demand = &self.on_demand; - let maybe_future = sync.with_context(move |ctx| { - on_demand.request(ctx, req).expect(ALL_VALID_BACKREFS) - }); - - match maybe_future { - Some(x) => Either::A(x.map_err(|_| "Request canceled")), - None => Either::B(future::err("Unable to access network.")), - } - } - None => Either::B(future::err("Unable to access network")), - }) - } -} - -impl ChainDataFetcher for EpochFetch { - type Error = &'static str; - - type Body = BoxFuture; - type Receipts = BoxFuture, &'static str>; - type Transition = BoxFuture, &'static str>; - - fn block_body(&self, header: &Header) -> Self::Body { - self.request(request::Body(header.encoded().into())) - } - - /// Fetch block receipts. - fn block_receipts(&self, header: &Header) -> Self::Receipts { - self.request(request::BlockReceipts(header.encoded().into())) - } - - /// Fetch epoch transition proof at given header. - fn epoch_transition( - &self, - hash: H256, - engine: Arc, - checker: Arc>, - ) -> Self::Transition { - self.request(request::Signal { - hash: hash, - engine: engine, - proof_check: checker, - }) - } -} diff --git a/parity/light_helpers/mod.rs b/parity/light_helpers/mod.rs deleted file mode 100644 index 843dd419d..000000000 --- a/parity/light_helpers/mod.rs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Utilities and helpers for the light client. - -mod epoch_fetch; - -pub use self::epoch_fetch::EpochFetch; diff --git a/parity/modules.rs b/parity/modules.rs index 5df1f81b8..023797a3f 100644 --- a/parity/modules.rs +++ b/parity/modules.rs @@ -17,7 +17,6 @@ use std::sync::{mpsc, Arc}; use ethcore::{client::BlockChainClient, snapshot::SnapshotService}; -use light::Provider; use sync::{self, ConnectionFilter, NetworkConfiguration, Params, SyncConfig}; pub use ethcore::client::ChainNotify; @@ -37,7 +36,6 @@ pub fn sync( chain: Arc, snapshot_service: Arc, private_tx_handler: Option>, - provider: Arc, _log_settings: &LogConfig, connection_filter: Option>, ) -> Result { @@ -45,7 +43,6 @@ pub fn sync( Params { config, chain, - provider, snapshot_service, private_tx_handler, network_config, diff --git a/parity/rpc_apis.rs b/parity/rpc_apis.rs index 95abe721f..120b51bb0 100644 --- a/parity/rpc_apis.rs +++ b/parity/rpc_apis.rs @@ -14,34 +14,25 @@ // You should have received a copy of the GNU General Public License // along with Parity Ethereum. If not, see . -use std::{ - cmp::PartialEq, - collections::HashSet, - str::FromStr, - sync::{Arc, Weak}, -}; +use std::{cmp::PartialEq, collections::HashSet, str::FromStr, sync::Arc}; pub use parity_rpc::signer::SignerService; use account_utils::{self, AccountProvider}; use ethcore::{client::Client, miner::Miner, snapshot::SnapshotService}; use ethcore_logger::RotatingLogger; -use ethcore_private_tx::Provider as PrivateTransactionManager; use ethcore_service::PrivateTxService; use hash_fetch::fetch::Client as FetchClient; use jsonrpc_core::{self as core, MetaIoHandler}; -use light::{ - client::LightChainClient, Cache as LightDataCache, TransactionQueue as LightTransactionQueue, -}; use miner::external::ExternalMiner; use parity_rpc::{ - dispatch::{FullDispatcher, LightDispatcher}, + dispatch::FullDispatcher, informant::{ActivityNotifier, ClientNotifier}, Host, Metadata, NetworkSettings, }; use parity_runtime::Executor; -use parking_lot::{Mutex, RwLock}; -use sync::{LightSync, ManageNetwork, SyncProvider}; +use parking_lot::Mutex; +use sync::{ManageNetwork, SyncProvider}; use updater::Updater; #[derive(Debug, PartialEq, Clone, Eq, Hash)] @@ -426,220 +417,6 @@ impl Dependencies for FullDependencies { } } -/// Light client notifier. Doesn't do anything yet, but might in the future. -pub struct LightClientNotifier; - -impl ActivityNotifier for LightClientNotifier { - fn active(&self) {} -} - -/// RPC dependencies for a light client. -pub struct LightDependencies { - pub signer_service: Arc, - pub client: Arc, - pub sync: Arc, - pub net: Arc, - pub accounts: Arc, - pub logger: Arc, - pub settings: Arc, - pub on_demand: Arc<::light::on_demand::OnDemand>, - pub cache: Arc>, - pub transaction_queue: Arc>, - pub ws_address: Option, - pub fetch: FetchClient, - pub experimental_rpcs: bool, - pub executor: Executor, - pub private_tx_service: Option>, - pub gas_price_percentile: usize, - pub poll_lifetime: u32, -} - -impl LightDependencies { - fn extend_api>( - &self, - handler: &mut MetaIoHandler, - apis: &HashSet, - for_generic_pubsub: bool, - ) { - use parity_rpc::v1::*; - - let dispatcher = LightDispatcher::new( - self.sync.clone(), - self.client.clone(), - self.on_demand.clone(), - self.cache.clone(), - self.transaction_queue.clone(), - Arc::new(Mutex::new(dispatch::Reservations::new( - self.executor.clone(), - ))), - self.gas_price_percentile, - ); - let account_signer = Arc::new(dispatch::Signer::new(self.accounts.clone())) as _; - let accounts = account_utils::accounts_list(self.accounts.clone()); - - for api in apis { - match *api { - Api::Debug => { - warn!(target: "rpc", "Debug API is not available in light client mode.") - } - Api::Web3 => { - handler.extend_with(Web3Client::default().to_delegate()); - } - Api::Net => { - handler.extend_with(light::NetClient::new(self.sync.clone()).to_delegate()); - } - Api::Eth => { - let client = light::EthClient::new( - self.sync.clone(), - self.client.clone(), - self.on_demand.clone(), - self.transaction_queue.clone(), - accounts.clone(), - self.cache.clone(), - self.gas_price_percentile, - self.poll_lifetime, - ); - handler.extend_with(Eth::to_delegate(client.clone())); - - if !for_generic_pubsub { - handler.extend_with(EthFilter::to_delegate(client)); - add_signing_methods!( - EthSigning, - handler, - self, - (&dispatcher, &account_signer) - ); - } - } - Api::EthPubSub => { - let client = EthPubSubClient::light( - self.client.clone(), - self.on_demand.clone(), - self.sync.clone(), - self.cache.clone(), - self.executor.clone(), - self.gas_price_percentile, - ); - self.client.add_listener(client.handler() as Weak<_>); - let h = client.handler(); - self.transaction_queue - .write() - .add_listener(Box::new(move |transactions| { - if let Some(h) = h.upgrade() { - h.notify_new_transactions(transactions); - } - })); - handler.extend_with(EthPubSub::to_delegate(client)); - } - Api::Personal => { - #[cfg(feature = "accounts")] - handler.extend_with( - PersonalClient::new( - &self.accounts, - dispatcher.clone(), - self.experimental_rpcs, - ) - .to_delegate(), - ); - } - Api::Signer => { - handler.extend_with( - SignerClient::new( - account_signer.clone(), - dispatcher.clone(), - &self.signer_service, - self.executor.clone(), - ) - .to_delegate(), - ); - } - Api::Parity => { - let signer = match self.signer_service.is_enabled() { - true => Some(self.signer_service.clone()), - false => None, - }; - handler.extend_with( - light::ParityClient::new( - Arc::new(dispatcher.clone()), - self.logger.clone(), - self.settings.clone(), - signer, - self.ws_address.clone(), - self.gas_price_percentile, - ) - .to_delegate(), - ); - #[cfg(feature = "accounts")] - handler.extend_with(ParityAccountsInfo::to_delegate( - ParityAccountsClient::new(&self.accounts), - )); - - if !for_generic_pubsub { - add_signing_methods!( - ParitySigning, - handler, - self, - (&dispatcher, &account_signer) - ); - } - } - Api::ParityPubSub => { - if !for_generic_pubsub { - let mut rpc = MetaIoHandler::default(); - let apis = ApiSet::List(apis.clone()) - .retain(ApiSet::PubSub) - .list_apis(); - self.extend_api(&mut rpc, &apis, true); - handler.extend_with( - PubSubClient::new(rpc, self.executor.clone()).to_delegate(), - ); - } - } - Api::ParityAccounts => { - #[cfg(feature = "accounts")] - handler.extend_with(ParityAccounts::to_delegate(ParityAccountsClient::new( - &self.accounts, - ))); - } - Api::ParitySet => handler.extend_with( - light::ParitySetClient::new( - self.client.clone(), - self.sync.clone(), - self.fetch.clone(), - ) - .to_delegate(), - ), - Api::Traces => handler.extend_with(light::TracesClient.to_delegate()), - Api::SecretStore => { - #[cfg(feature = "accounts")] - handler.extend_with(SecretStoreClient::new(&self.accounts).to_delegate()); - } - Api::Private => { - if let Some(ref tx_manager) = self.private_tx_service { - let private_tx_service = Some(tx_manager.clone()); - handler.extend_with(PrivateClient::new(private_tx_service).to_delegate()); - } - } - } - } - } -} - -impl Dependencies for LightDependencies { - type Notifier = LightClientNotifier; - - fn activity_notifier(&self) -> Self::Notifier { - LightClientNotifier - } - - fn extend_with_set(&self, handler: &mut MetaIoHandler, apis: &HashSet) - where - S: core::Middleware, - { - self.extend_api(handler, apis, false) - } -} - impl ApiSet { /// Retains only APIs in given set. pub fn retain(self, set: Self) -> Self { diff --git a/parity/run.rs b/parity/run.rs index d50afc7f4..5ce6bfe53 100644 --- a/parity/run.rs +++ b/parity/run.rs @@ -34,7 +34,6 @@ use ethcore::{ }, miner::{self, stratum, Miner, MinerOptions, MinerService}, snapshot::{self, SnapshotConfiguration}, - spec::{OptimizeFor, SpecParams}, verification::queue::VerifierSettings, }; use ethcore_logger::{Config as LogConfig, RotatingLogger}; @@ -44,11 +43,10 @@ use ethereum_types::Address; use futures::IntoFuture; use hash_fetch::{self, fetch}; use helpers::{execute_upgrades, passwords_from_files, to_client_config}; -use informant::{FullNodeInformantData, Informant, LightNodeInformantData}; +use informant::{FullNodeInformantData, Informant}; use ipfs; use journaldb::Algorithm; use jsonrpc_core; -use light::Cache as LightDataCache; use miner::{external::ExternalMiner, work_notify::WorkPoster}; use modules; use node_filter::NodeFilter; @@ -77,16 +75,9 @@ const SNAPSHOT_PERIOD: u64 = 5000; // how many blocks to wait before starting a periodic snapshot. const SNAPSHOT_HISTORY: u64 = 100; -// Number of minutes before a given gas price corpus should expire. -// Light client only. -const GAS_CORPUS_EXPIRATION_MINUTES: u64 = 60 * 6; - // Full client number of DNS threads const FETCH_FULL_NUM_DNS_THREADS: usize = 4; -// Light client number of DNS threads -const FETCH_LIGHT_NUM_DNS_THREADS: usize = 1; - #[derive(Debug, PartialEq)] pub struct RunCmd { pub cache_config: CacheConfig, @@ -132,16 +123,8 @@ pub struct RunCmd { pub allow_missing_blocks: bool, pub download_old_blocks: bool, pub verifier_settings: VerifierSettings, - pub serve_light: bool, - pub light: bool, pub no_persistent_txqueue: bool, - pub no_hardcoded_sync: bool, pub max_round_blocks_to_import: usize, - pub on_demand_response_time_window: Option, - pub on_demand_request_backoff_start: Option, - pub on_demand_request_backoff_max: Option, - pub on_demand_request_backoff_rounds_max: Option, - pub on_demand_request_consecutive_failures: Option, } // node info fetcher for the local store. @@ -169,252 +152,15 @@ impl ::local_store::NodeInfo for FullNodeInfo { } } -type LightClient = ::light::client::Client<::light_helpers::EpochFetch>; - -// helper for light execution. -fn execute_light_impl( - cmd: RunCmd, - logger: Arc, - on_client_rq: Cr, -) -> Result -where - Cr: Fn(String) + 'static + Send, -{ - use light::client as light_client; - use parking_lot::{Mutex, RwLock}; - use sync::{LightSync, LightSyncParams, ManageNetwork}; - - // load spec - let spec = cmd.spec.spec(SpecParams::new( - cmd.dirs.cache.as_ref(), - OptimizeFor::Memory, - ))?; - - // load genesis hash - let genesis_hash = spec.genesis_header().hash(); - - // database paths - let db_dirs = cmd.dirs.database( - genesis_hash, - cmd.spec.legacy_fork_name(), - spec.data_dir.clone(), - ); - - // user defaults path - let user_defaults_path = db_dirs.user_defaults_path(); - - // load user defaults - let user_defaults = UserDefaults::load(&user_defaults_path)?; - - // select pruning algorithm - let algorithm = cmd.pruning.to_algorithm(&user_defaults); - - // execute upgrades - execute_upgrades(&cmd.dirs.base, &db_dirs, algorithm, &cmd.compaction)?; - - // create dirs used by parity - cmd.dirs.create_dirs( - cmd.acc_conf.unlocked_accounts.len() == 0, - cmd.secretstore_conf.enabled, - )?; - - //print out running parity environment - print_running_environment(&spec.data_dir, &cmd.dirs, &db_dirs); - - info!( - "Running in experimental {} mode.", - Colour::Blue.bold().paint("Light Client") - ); - - // TODO: configurable cache size. - let cache = LightDataCache::new( - Default::default(), - Duration::from_secs(60 * GAS_CORPUS_EXPIRATION_MINUTES), - ); - let cache = Arc::new(Mutex::new(cache)); - - // start client and create transaction queue. - let mut config = light_client::Config { - queue: Default::default(), - chain_column: ::ethcore_db::COL_LIGHT_CHAIN, - verify_full: true, - check_seal: cmd.check_seal, - no_hardcoded_sync: cmd.no_hardcoded_sync, - }; - - config.queue.max_mem_use = cmd.cache_config.queue() as usize * 1024 * 1024; - config.queue.verifier_settings = cmd.verifier_settings; - - // start on_demand service. - - let response_time_window = cmd - .on_demand_response_time_window - .map_or(::light::on_demand::DEFAULT_RESPONSE_TIME_TO_LIVE, |s| { - Duration::from_secs(s) - }); - - let request_backoff_start = cmd.on_demand_request_backoff_start.map_or( - ::light::on_demand::DEFAULT_REQUEST_MIN_BACKOFF_DURATION, - |s| Duration::from_secs(s), - ); - - let request_backoff_max = cmd.on_demand_request_backoff_max.map_or( - ::light::on_demand::DEFAULT_REQUEST_MAX_BACKOFF_DURATION, - |s| Duration::from_secs(s), - ); - - let on_demand = Arc::new({ - ::light::on_demand::OnDemand::new( - cache.clone(), - response_time_window, - request_backoff_start, - request_backoff_max, - cmd.on_demand_request_backoff_rounds_max - .unwrap_or(::light::on_demand::DEFAULT_MAX_REQUEST_BACKOFF_ROUNDS), - cmd.on_demand_request_consecutive_failures - .unwrap_or(::light::on_demand::DEFAULT_NUM_CONSECUTIVE_FAILED_REQUESTS), - ) - }); - - let sync_handle = Arc::new(RwLock::new(Weak::new())); - let fetch = ::light_helpers::EpochFetch { - on_demand: on_demand.clone(), - sync: sync_handle.clone(), - }; - - // initialize database. - let db = db::open_db( - &db_dirs - .client_path(algorithm) - .to_str() - .expect("DB path could not be converted to string."), - &cmd.cache_config, - &cmd.compaction, - ) - .map_err(|e| format!("Failed to open database {:?}", e))?; - - let service = light_client::Service::start(config, &spec, fetch, db, cache.clone()) - .map_err(|e| format!("Error starting light client: {}", e))?; - let client = service.client().clone(); - let txq = Arc::new(RwLock::new( - ::light::transaction_queue::TransactionQueue::default(), - )); - let provider = ::light::provider::LightProvider::new(client.clone(), txq.clone()); - - // start network. - // set up bootnodes - let mut net_conf = cmd.net_conf; - if !cmd.custom_bootnodes { - net_conf.boot_nodes = spec.nodes.clone(); - } - - // set network path. - net_conf.net_config_path = Some(db_dirs.network_path().to_string_lossy().into_owned()); - let sync_params = LightSyncParams { - network_config: net_conf - .into_basic() - .map_err(|e| format!("Failed to produce network config: {}", e))?, - client: Arc::new(provider), - network_id: cmd.network_id.unwrap_or(spec.network_id()), - subprotocol_name: sync::LIGHT_PROTOCOL, - handlers: vec![on_demand.clone()], - }; - let light_sync = - LightSync::new(sync_params).map_err(|e| format!("Error starting network: {}", e))?; - let light_sync = Arc::new(light_sync); - *sync_handle.write() = Arc::downgrade(&light_sync); - - // spin up event loop - let runtime = Runtime::with_default_thread_count(); - - // start the network. - light_sync.start_network(); - - // fetch service - let fetch = fetch::Client::new(FETCH_LIGHT_NUM_DNS_THREADS) - .map_err(|e| format!("Error starting fetch client: {:?}", e))?; - let passwords = passwords_from_files(&cmd.acc_conf.password_files)?; - - // prepare account provider - let account_provider = Arc::new(account_utils::prepare_account_provider( - &cmd.spec, - &cmd.dirs, - &spec.data_dir, - cmd.acc_conf, - &passwords, - )?); - let rpc_stats = Arc::new(informant::RpcStats::default()); - - // the dapps server - let signer_service = Arc::new(signer::new_service(&cmd.ws_conf, &cmd.logger_config)); - - // start RPCs - let deps_for_rpc_apis = Arc::new(rpc_apis::LightDependencies { - signer_service: signer_service, - client: client.clone(), - sync: light_sync.clone(), - net: light_sync.clone(), - accounts: account_provider, - logger: logger, - settings: Arc::new(cmd.net_settings), - on_demand: on_demand, - cache: cache.clone(), - transaction_queue: txq, - ws_address: cmd.ws_conf.address(), - fetch: fetch, - experimental_rpcs: cmd.experimental_rpcs, - executor: runtime.executor(), - private_tx_service: None, //TODO: add this to client. - gas_price_percentile: cmd.gas_price_percentile, - poll_lifetime: cmd.poll_lifetime, - }); - - let dependencies = rpc::Dependencies { - apis: deps_for_rpc_apis.clone(), - executor: runtime.executor(), - stats: rpc_stats.clone(), - }; - - // start rpc servers - let rpc_direct = rpc::setup_apis(rpc_apis::ApiSet::All, &dependencies); - let ws_server = rpc::new_ws(cmd.ws_conf, &dependencies)?; - let http_server = rpc::new_http( - "HTTP JSON-RPC", - "jsonrpc", - cmd.http_conf.clone(), - &dependencies, - )?; - let ipc_server = rpc::new_ipc(cmd.ipc_conf, &dependencies)?; - - // the informant - let informant = Arc::new(Informant::new( - LightNodeInformantData { - client: client.clone(), - sync: light_sync.clone(), - cache: cache, - }, - None, - Some(rpc_stats), - cmd.logger_config.color, - )); - service.add_notify(informant.clone()); - service - .register_handler(informant.clone()) - .map_err(|_| "Unable to register informant handler".to_owned())?; - - client.set_exit_handler(on_client_rq); - - Ok(RunningClient { - inner: RunningClientInner::Light { - rpc: rpc_direct, - informant, - client, - keep_alive: Box::new((service, ws_server, http_server, ipc_server, runtime)), - }, - }) -} - -fn execute_impl( +/// Executes the given run command. +/// +/// `on_client_rq` is the action to perform when the client receives an RPC request to be restarted +/// with a different chain. +/// +/// `on_updater_rq` is the action to perform when the updater has a new binary to execute. +/// +/// On error, returns what to print on stderr. +pub fn execute( cmd: RunCmd, logger: Arc, on_client_rq: Cr, @@ -540,7 +286,6 @@ where _ => sync::WarpSync::Disabled, }; sync_config.download_old_blocks = cmd.download_old_blocks; - sync_config.serve_light = cmd.serve_light; let passwords = passwords_from_files(&cmd.acc_conf.password_files)?; @@ -597,11 +342,6 @@ where } } - // display warning if using --no-hardcoded-sync - if cmd.no_hardcoded_sync { - warn!("The --no-hardcoded-sync flag has no effect if you don't use --light"); - } - // create client config let mut client_config = to_client_config( &cmd.cache_config, @@ -747,7 +487,6 @@ where client.clone(), snapshot_service.clone(), private_tx_sync, - client.clone(), &cmd.logger_config, connection_filter .clone() @@ -965,15 +704,6 @@ pub struct RunningClient { } enum RunningClientInner { - Light { - rpc: jsonrpc_core::MetaIoHandler< - Metadata, - informant::Middleware, - >, - informant: Arc>, - client: Arc, - keep_alive: Box, - }, Full { rpc: jsonrpc_core::MetaIoHandler>, @@ -998,7 +728,6 @@ impl RunningClient { }; match self.inner { - RunningClientInner::Light { ref rpc, .. } => rpc.handle_request(request, metadata), RunningClientInner::Full { ref rpc, .. } => rpc.handle_request(request, metadata), } } @@ -1006,22 +735,6 @@ impl RunningClient { /// Shuts down the client. pub fn shutdown(self) { match self.inner { - RunningClientInner::Light { - rpc, - informant, - client, - keep_alive, - } => { - // Create a weak reference to the client so that we can wait on shutdown - // until it is dropped - let weak_client = Arc::downgrade(&client); - drop(rpc); - drop(keep_alive); - informant.shutdown(); - drop(informant); - drop(client); - wait_for_drop(weak_client); - } RunningClientInner::Full { rpc, informant, @@ -1060,31 +773,6 @@ impl RunningClient { } } -/// Executes the given run command. -/// -/// `on_client_rq` is the action to perform when the client receives an RPC request to be restarted -/// with a different chain. -/// -/// `on_updater_rq` is the action to perform when the updater has a new binary to execute. -/// -/// On error, returns what to print on stderr. -pub fn execute( - cmd: RunCmd, - logger: Arc, - on_client_rq: Cr, - on_updater_rq: Rr, -) -> Result -where - Cr: Fn(String) + 'static + Send, - Rr: Fn() + 'static + Send, -{ - if cmd.light { - execute_light_impl(cmd, logger, on_client_rq) - } else { - execute_impl(cmd, logger, on_client_rq, on_updater_rq) - } -} - fn print_running_environment(data_dir: &str, dirs: &Directories, db_dirs: &DatabaseDirectories) { info!("Starting {}", Colour::White.bold().paint(version())); info!( diff --git a/rpc/Cargo.toml b/rpc/Cargo.toml index c696401e6..163fec402 100644 --- a/rpc/Cargo.toml +++ b/rpc/Cargo.toml @@ -38,14 +38,12 @@ common-types = { path = "../ethcore/types" } ethash = { path = "../ethash" } ethcore = { path = "../ethcore" } ethcore-accounts = { path = "../accounts", optional = true } -ethcore-light = { path = "../ethcore/light" } ethcore-logger = { path = "../parity/logger" } ethcore-miner = { path = "../miner" } ethcore-network = { path = "../util/network" } ethcore-private-tx = { path = "../ethcore/private-tx" } ethcore-sync = { path = "../ethcore/sync" } ethereum-types = "0.4" -fastmap = { path = "../util/fastmap" } parity-bytes = "0.1" parity-crypto = "0.3.0" diff --git a/rpc/src/lib.rs b/rpc/src/lib.rs index 29e57209e..a3dcb009f 100644 --- a/rpc/src/lib.rs +++ b/rpc/src/lib.rs @@ -64,7 +64,6 @@ extern crate common_types as types; extern crate eip_712; extern crate ethash; extern crate ethcore; -extern crate ethcore_light as light; extern crate ethcore_logger; extern crate ethcore_miner as miner; extern crate ethcore_network as network; @@ -73,7 +72,6 @@ extern crate ethcore_sync as sync; extern crate ethereum_types; extern crate ethkey; extern crate ethstore; -extern crate fastmap; extern crate fetch; extern crate keccak_hash as hash; extern crate parity_bytes as bytes; diff --git a/rpc/src/v1/helpers/dispatch/light.rs b/rpc/src/v1/helpers/dispatch/light.rs deleted file mode 100644 index 226a2fed9..000000000 --- a/rpc/src/v1/helpers/dispatch/light.rs +++ /dev/null @@ -1,327 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -use std::sync::Arc; - -use ethereum_types::{Address, H256, U256}; -use light::{ - cache::Cache as LightDataCache, - client::LightChainClient, - on_demand::{request, OnDemandRequester}, - TransactionQueue as LightTransactionQueue, -}; -use parking_lot::{Mutex, RwLock}; -use stats::Corpus; -use sync::{LightNetworkDispatcher, LightSyncProvider, ManageNetwork}; -use types::{ - basic_account::BasicAccount, - ids::BlockId, - transaction::{Error as TransactionError, PendingTransaction, SignedTransaction}, -}; - -use jsonrpc_core::{ - futures::{future, future::Either, Future, IntoFuture}, - BoxFuture, Result, -}; -use v1::{ - helpers::{errors, nonce, FilledTransactionRequest, TransactionRequest}, - types::RichRawTransaction as RpcRichRawTransaction, -}; - -use super::{Accounts, Dispatcher, PostSign, SignWith}; - -/// Dispatcher for light clients -- fetches default gas price, next nonce, etc. from network. -pub struct LightDispatcher -where - S: LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - /// Sync service. - pub sync: Arc, - /// Header chain client. - pub client: Arc, - /// On-demand request service. - pub on_demand: Arc, - /// Data cache. - pub cache: Arc>, - /// Transaction queue. - pub transaction_queue: Arc>, - /// Nonce reservations - pub nonces: Arc>, - /// Gas Price percentile value used as default gas price. - pub gas_price_percentile: usize, -} - -impl LightDispatcher -where - S: LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - /// Create a new `LightDispatcher` from its requisite parts. - /// - /// For correct operation, the OnDemand service is assumed to be registered as a network handler, - pub fn new( - sync: Arc, - client: Arc, - on_demand: Arc, - cache: Arc>, - transaction_queue: Arc>, - nonces: Arc>, - gas_price_percentile: usize, - ) -> Self { - LightDispatcher { - sync, - client, - on_demand, - cache, - transaction_queue, - nonces, - gas_price_percentile, - } - } - - /// Get a recent gas price corpus. - // TODO: this could be `impl Trait`. - pub fn gas_price_corpus(&self) -> BoxFuture> { - fetch_gas_price_corpus( - self.sync.clone(), - self.client.clone(), - self.on_demand.clone(), - self.cache.clone(), - ) - } - - /// Get an account's state - fn account(&self, addr: Address) -> BoxFuture> { - let best_header = self.client.best_block_header(); - let account_future = self.sync.with_context(|ctx| { - self.on_demand - .request( - ctx, - request::Account { - header: best_header.into(), - address: addr, - }, - ) - .expect("no back-references; therefore all back-references valid; qed") - }); - - match account_future { - Some(response) => Box::new(response.map_err(|_| errors::no_light_peers())), - None => Box::new(future::err(errors::network_disabled())), - } - } - - /// Get an account's next nonce. - pub fn next_nonce(&self, addr: Address) -> BoxFuture { - let account_start_nonce = self - .client - .engine() - .account_start_nonce(self.client.best_block_header().number()); - Box::new(self.account(addr).and_then(move |maybe_account| { - future::ok(maybe_account.map_or(account_start_nonce, |account| account.nonce)) - })) - } -} - -impl Clone for LightDispatcher -where - S: LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - fn clone(&self) -> Self { - Self { - sync: self.sync.clone(), - client: self.client.clone(), - on_demand: self.on_demand.clone(), - cache: self.cache.clone(), - transaction_queue: self.transaction_queue.clone(), - nonces: self.nonces.clone(), - gas_price_percentile: self.gas_price_percentile, - } - } -} - -impl Dispatcher for LightDispatcher -where - S: LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - // Ignore the `force_nonce` flag in order to always query the network when fetching the nonce and - // the account state. If the nonce is specified in the transaction use that nonce instead but do the - // network request anyway to the account state (balance) - fn fill_optional_fields( - &self, - request: TransactionRequest, - default_sender: Address, - _force_nonce: bool, - ) -> BoxFuture { - const DEFAULT_GAS_PRICE: U256 = U256([0, 0, 0, 21_000_000]); - - let gas_limit = self.client.best_block_header().gas_limit(); - let request_gas_price = request.gas_price; - let from = request.from.unwrap_or(default_sender); - - let with_gas_price = move |gas_price| { - let request = request; - FilledTransactionRequest { - from, - used_default_from: request.from.is_none(), - to: request.to, - nonce: request.nonce, - gas_price, - gas: request.gas.unwrap_or_else(|| gas_limit / 3), - value: request.value.unwrap_or_default(), - data: request.data.unwrap_or_else(Vec::new), - condition: request.condition, - } - }; - - // fast path for known gas price. - let gas_price_percentile = self.gas_price_percentile; - let gas_price = match request_gas_price { - Some(gas_price) => Either::A(future::ok(with_gas_price(gas_price))), - None => Either::B( - fetch_gas_price_corpus( - self.sync.clone(), - self.client.clone(), - self.on_demand.clone(), - self.cache.clone(), - ) - .and_then(move |corp| match corp.percentile(gas_price_percentile) { - Some(percentile) => Ok(*percentile), - None => Ok(DEFAULT_GAS_PRICE), // fall back to default on error. - }) - .map(with_gas_price), - ), - }; - - let future_account = self.account(from); - - Box::new(gas_price.and_then(move |mut filled| { - future_account.and_then(move |maybe_account| { - let cost = filled - .value - .saturating_add(filled.gas.saturating_mul(filled.gas_price)); - match maybe_account { - Some(ref account) if cost > account.balance => { - Err(errors::transaction(TransactionError::InsufficientBalance { - balance: account.balance, - cost, - })) - } - Some(account) => { - if filled.nonce.is_none() { - filled.nonce = Some(account.nonce); - } - Ok(filled) - } - None => Err(errors::account("Account not found", "")), - } - }) - })) - } - - fn sign

( - &self, - filled: FilledTransactionRequest, - signer: &Arc, - password: SignWith, - post_sign: P, - ) -> BoxFuture - where - P: PostSign + 'static, - ::Future: Send, - { - let chain_id = self.client.signing_chain_id(); - let nonce = filled.nonce.expect("nonce is always provided; qed"); - let future = signer - .sign_transaction(filled, chain_id, nonce, password) - .into_future() - .and_then(move |signed| post_sign.execute(signed)); - Box::new(future) - } - - fn enrich(&self, signed_transaction: SignedTransaction) -> RpcRichRawTransaction { - RpcRichRawTransaction::from_signed(signed_transaction) - } - - fn dispatch_transaction(&self, signed_transaction: PendingTransaction) -> Result { - let hash = signed_transaction.transaction.hash(); - - self.transaction_queue - .write() - .import(signed_transaction) - .map_err(errors::transaction) - .map(|_| hash) - } -} - -/// Get a recent gas price corpus. -// TODO: this could be `impl Trait`. -pub fn fetch_gas_price_corpus( - sync: Arc, - client: Arc, - on_demand: Arc, - cache: Arc>, -) -> BoxFuture> -where - S: LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - const GAS_PRICE_SAMPLE_SIZE: usize = 100; - - if let Some(cached) = { cache.lock().gas_price_corpus() } { - return Box::new(future::ok(cached)); - } - - let cache = cache.clone(); - let eventual_corpus = sync.with_context(|ctx| { - // get some recent headers with gas used, - // and request each of the blocks from the network. - let block_requests = client - .ancestry_iter(BlockId::Latest) - .filter(|hdr| hdr.gas_used() != U256::default()) - .take(GAS_PRICE_SAMPLE_SIZE) - .map(|hdr| request::Body(hdr.into())) - .collect::>(); - - // when the blocks come in, collect gas prices into a vector - on_demand - .request(ctx, block_requests) - .expect("no back-references; therefore all back-references are valid; qed") - .map(|bodies| { - bodies.into_iter().fold(Vec::new(), |mut v, block| { - for t in block.transaction_views().iter() { - v.push(t.gas_price()) - } - v - }) - }) - .map(move |prices| { - // produce a corpus from the vector and cache it. - // It's later used to get a percentile for default gas price. - let corpus: ::stats::Corpus<_> = prices.into(); - cache.lock().set_gas_price_corpus(corpus.clone()); - corpus - }) - }); - - match eventual_corpus { - Some(corp) => Box::new(corp.map_err(|_| errors::no_light_peers())), - None => Box::new(future::err(errors::network_disabled())), - } -} diff --git a/rpc/src/v1/helpers/dispatch/mod.rs b/rpc/src/v1/helpers/dispatch/mod.rs index 633704122..f0cd0ef53 100644 --- a/rpc/src/v1/helpers/dispatch/mod.rs +++ b/rpc/src/v1/helpers/dispatch/mod.rs @@ -17,7 +17,6 @@ //! Utilities and helpers for transaction dispatch. mod full; -pub(crate) mod light; mod prospective_signer; #[cfg(any(test, feature = "accounts"))] @@ -81,7 +80,7 @@ mod signing { } } -pub use self::{full::FullDispatcher, light::LightDispatcher, signing::Signer}; +pub use self::{full::FullDispatcher, signing::Signer}; pub use v1::helpers::nonce::Reservations; use std::{fmt::Debug, ops::Deref, sync::Arc}; diff --git a/rpc/src/v1/helpers/errors.rs b/rpc/src/v1/helpers/errors.rs index e60505e03..e7ccc01a4 100644 --- a/rpc/src/v1/helpers/errors.rs +++ b/rpc/src/v1/helpers/errors.rs @@ -23,8 +23,7 @@ use ethcore::{ error::{CallError, Error as EthcoreError, ErrorKind}, }; use ethcore_private_tx::Error as PrivateTransactionError; -use jsonrpc_core::{futures, Error, ErrorCode, Result as RpcResult, Value}; -use light::on_demand::error::{Error as OnDemandError, ErrorKind as OnDemandErrorKind}; +use jsonrpc_core::{Error, ErrorCode, Result as RpcResult, Value}; use rlp::DecoderError; use types::{blockchain_info::BlockChainInfo, transaction::Error as TransactionError}; use v1::{impls::EthClientOptions, types::BlockNumber}; @@ -55,7 +54,6 @@ mod codes { pub const ENCRYPTION_ERROR: i64 = -32055; pub const ENCODING_ERROR: i64 = -32058; pub const FETCH_ERROR: i64 = -32060; - pub const NO_LIGHT_PEERS: i64 = -32065; pub const NO_PEERS: i64 = -32066; pub const DEPRECATED: i64 = -32070; pub const EXPERIMENTAL_RPC: i64 = -32071; @@ -111,17 +109,6 @@ pub fn request_rejected_limit() -> Error { } } -pub fn request_rejected_param_limit(limit: u64, items_desc: &str) -> Error { - Error { - code: ErrorCode::ServerError(codes::REQUEST_REJECTED_LIMIT), - message: format!( - "Requested data size exceeds limit of {} {}.", - limit, items_desc - ), - data: None, - } -} - pub fn account(error: &str, details: T) -> Error { Error { code: ErrorCode::ServerError(codes::ACCOUNT_ERROR), @@ -522,14 +509,6 @@ pub fn unknown_block() -> Error { } } -pub fn no_light_peers() -> Error { - Error { - code: ErrorCode::ServerError(codes::NO_LIGHT_PEERS), - message: "No light peers who can serve data".into(), - data: None, - } -} - pub fn deprecated, T: Into>>(message: T) -> Error { Error { code: ErrorCode::ServerError(codes::DEPRECATED), @@ -559,44 +538,6 @@ pub fn filter_block_not_found(id: BlockId) -> Error { } } -pub fn on_demand_error(err: OnDemandError) -> Error { - match err { - OnDemandError(OnDemandErrorKind::ChannelCanceled(e), _) => on_demand_cancel(e), - OnDemandError(OnDemandErrorKind::RequestLimit, _) => timeout_new_peer(&err), - OnDemandError(OnDemandErrorKind::BadResponse(_), _) => max_attempts_reached(&err), - _ => on_demand_others(&err), - } -} - -// on-demand sender cancelled. -pub fn on_demand_cancel(_cancel: futures::sync::oneshot::Canceled) -> Error { - internal("on-demand sender cancelled", "") -} - -pub fn max_attempts_reached(err: &OnDemandError) -> Error { - Error { - code: ErrorCode::ServerError(codes::REQUEST_NOT_FOUND), - message: err.to_string(), - data: None, - } -} - -pub fn timeout_new_peer(err: &OnDemandError) -> Error { - Error { - code: ErrorCode::ServerError(codes::NO_LIGHT_PEERS), - message: err.to_string(), - data: None, - } -} - -pub fn on_demand_others(err: &OnDemandError) -> Error { - Error { - code: ErrorCode::ServerError(codes::UNKNOWN_ERROR), - message: err.to_string(), - data: None, - } -} - pub fn status_error(has_peers: bool) -> Error { if has_peers { no_work() diff --git a/rpc/src/v1/helpers/light_fetch.rs b/rpc/src/v1/helpers/light_fetch.rs deleted file mode 100644 index 3dff3e425..000000000 --- a/rpc/src/v1/helpers/light_fetch.rs +++ /dev/null @@ -1,974 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Helpers for fetching blockchain data either from the light client or the network. - -use std::{clone::Clone, cmp, collections::BTreeMap, sync::Arc}; - -use ethcore::executed::ExecutionError; -use types::{ - basic_account::BasicAccount, encoded, filter::Filter as EthcoreFilter, ids::BlockId, - receipt::Receipt, -}; - -use jsonrpc_core::{ - futures::{future, future::Either, Future}, - Error, Result, -}; - -use light::{ - cache::Cache, - cht, - client::LightChainClient, - on_demand::{ - error::Error as OnDemandError, request, ExecutionResult, HeaderRef, OnDemandRequester, - Request as OnDemandRequest, Response as OnDemandResponse, - }, - request::Field, - TransactionQueue, MAX_HEADERS_PER_REQUEST, -}; - -use sync::{LightNetworkDispatcher, LightSyncProvider, ManageNetwork}; - -use ethereum_types::{Address, U256}; -use fastmap::H256FastMap; -use hash::H256; -use parking_lot::{Mutex, RwLock}; -use types::transaction::{ - Action, LocalizedTransaction, PendingTransaction, SignedTransaction, - Transaction as EthTransaction, -}; - -use v1::{ - helpers::{dispatch, errors, CallRequest as CallRequestHelper}, - types::{BlockNumber, CallRequest, Log, Transaction}, -}; - -const NO_INVALID_BACK_REFS_PROOF: &str = - "Fails only on invalid back-references; back-references here known to be valid; qed"; -const WRONG_RESPONSE_AMOUNT_TYPE_PROOF: &str = - "responses correspond directly with requests in amount and type; qed"; -const DEFAULT_GAS_PRICE: u64 = 21_000; - -pub fn light_all_transactions( - dispatch: &Arc>, -) -> impl Iterator -where - S: LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - let txq = dispatch.transaction_queue.read(); - let chain_info = dispatch.client.chain_info(); - - let current = txq.ready_transactions( - chain_info.best_block_number, - chain_info.best_block_timestamp, - ); - let future = txq.future_transactions( - chain_info.best_block_number, - chain_info.best_block_timestamp, - ); - current.into_iter().chain(future.into_iter()) -} - -/// Helper for fetching blockchain data either from the light client or the network -/// as necessary. -pub struct LightFetch -where - S: LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - /// The light client. - pub client: Arc, - /// The on-demand request service. - pub on_demand: Arc, - /// Handle to the network. - pub sync: Arc, - /// The light data cache. - pub cache: Arc>, - /// Gas Price percentile - pub gas_price_percentile: usize, -} - -impl Clone for LightFetch -where - S: LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - fn clone(&self) -> Self { - Self { - client: self.client.clone(), - on_demand: self.on_demand.clone(), - sync: self.sync.clone(), - cache: self.cache.clone(), - gas_price_percentile: self.gas_price_percentile, - } - } -} - -/// Extract a transaction at given index. -pub fn extract_transaction_at_index(block: encoded::Block, index: usize) -> Option { - block - .transactions() - .into_iter() - .nth(index) - // Verify if transaction signature is correct. - .and_then(|tx| SignedTransaction::new(tx).ok()) - .map(|signed_tx| { - let (signed, sender, _) = signed_tx.deconstruct(); - let block_hash = block.hash(); - let block_number = block.number(); - let transaction_index = index; - let cached_sender = Some(sender); - - LocalizedTransaction { - signed, - block_number, - block_hash, - transaction_index, - cached_sender, - } - }) - .map(Transaction::from_localized) -} - -// extract the header indicated by the given `HeaderRef` from the given responses. -// fails only if they do not correspond. -fn extract_header(res: &[OnDemandResponse], header: HeaderRef) -> Option { - match header { - HeaderRef::Stored(hdr) => Some(hdr), - HeaderRef::Unresolved(idx, _) => match res.get(idx) { - Some(&OnDemandResponse::HeaderByHash(ref hdr)) => Some(hdr.clone()), - _ => None, - }, - } -} - -impl LightFetch -where - S: LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - // push the necessary requests onto the request chain to get the header by the given ID. - // yield a header reference which other requests can use. - fn make_header_requests( - &self, - id: BlockId, - reqs: &mut Vec, - ) -> Result { - if let Some(h) = self.client.block_header(id) { - return Ok(h.into()); - } - - match id { - BlockId::Number(n) => { - let cht_root = - cht::block_to_cht_number(n).and_then(|cn| self.client.cht_root(cn as usize)); - match cht_root { - None => Err(errors::unknown_block()), - Some(root) => { - let req = request::HeaderProof::new(n, root) - .expect("only fails for 0; client always stores genesis; client already queried; qed"); - - let idx = reqs.len(); - let hash_ref = Field::back_ref(idx, 0); - reqs.push(req.into()); - reqs.push(request::HeaderByHash(hash_ref).into()); - - Ok(HeaderRef::Unresolved(idx + 1, hash_ref)) - } - } - } - BlockId::Hash(h) => { - let idx = reqs.len(); - reqs.push(request::HeaderByHash(h.into()).into()); - Ok(HeaderRef::Unresolved(idx, h.into())) - } - _ => Err(errors::unknown_block()), // latest, earliest, and pending will have all already returned. - } - } - - /// Get a block header from the on demand service or client, or error. - pub fn header(&self, id: BlockId) -> impl Future + Send { - let mut reqs = Vec::new(); - let header_ref = match self.make_header_requests(id, &mut reqs) { - Ok(r) => r, - Err(e) => return Either::A(future::err(e)), - }; - - Either::B(self.send_requests(reqs, |res| { - extract_header(&res, header_ref).expect( - "these responses correspond to requests that header_ref belongs to \ - therefore it will not fail; qed", - ) - })) - } - - /// Helper for getting contract code at a given block. - pub fn code( - &self, - address: Address, - id: BlockId, - ) -> impl Future, Error = Error> + Send { - let mut reqs = Vec::new(); - let header_ref = match self.make_header_requests(id, &mut reqs) { - Ok(r) => r, - Err(e) => return Either::A(future::err(e)), - }; - - reqs.push( - request::Account { - header: header_ref.clone(), - address, - } - .into(), - ); - let account_idx = reqs.len() - 1; - reqs.push( - request::Code { - header: header_ref, - code_hash: Field::back_ref(account_idx, 0), - } - .into(), - ); - - Either::B(self.send_requests(reqs, |mut res| match res.pop() { - Some(OnDemandResponse::Code(code)) => code, - _ => panic!(WRONG_RESPONSE_AMOUNT_TYPE_PROOF), - })) - } - - /// Helper for getting account info at a given block. - /// `None` indicates the account doesn't exist at the given block. - pub fn account( - &self, - address: Address, - id: BlockId, - tx_queue: Arc>, - ) -> impl Future, Error = Error> + Send { - let mut reqs = Vec::new(); - let header_ref = match self.make_header_requests(id, &mut reqs) { - Ok(r) => r, - Err(e) => return Either::A(future::err(e)), - }; - - reqs.push( - request::Account { - header: header_ref, - address, - } - .into(), - ); - - Either::B(self.send_requests(reqs, move |mut res| match res.pop() { - Some(OnDemandResponse::Account(maybe_account)) => { - if let Some(ref acc) = maybe_account { - let mut txq = tx_queue.write(); - txq.cull(address, acc.nonce); - } - maybe_account - } - _ => panic!(WRONG_RESPONSE_AMOUNT_TYPE_PROOF), - })) - } - - /// Helper for getting proved execution. - pub fn proved_read_only_execution( - &self, - req: CallRequest, - num: Option, - txq: Arc>, - ) -> impl Future + Send { - // (21000 G_transaction + 32000 G_create + some marginal to allow a few operations) - const START_GAS: u64 = 60_000; - - let (sync, on_demand, client) = ( - self.sync.clone(), - self.on_demand.clone(), - self.client.clone(), - ); - let req: CallRequestHelper = req.into(); - - // Note: Here we treat `Pending` as `Latest`. - // Since light clients don't produce pending blocks - // (they don't have state) we can safely fallback to `Latest`. - let id = match num.unwrap_or_default() { - BlockNumber::Num(n) => BlockId::Number(n), - BlockNumber::Earliest => BlockId::Earliest, - BlockNumber::Latest => BlockId::Latest, - BlockNumber::Pending => { - warn!("`Pending` is deprecated and may be removed in future versions. Falling back to `Latest`"); - BlockId::Latest - } - }; - - let from = req.from.unwrap_or_default(); - let nonce_fut = match req.nonce { - Some(nonce) => Either::A(future::ok(Some(nonce))), - None => Either::B(self.account(from, id, txq).map(|acc| acc.map(|a| a.nonce))), - }; - - let gas_price_fut = match req.gas_price { - Some(price) => Either::A(future::ok(price)), - None => Either::B(self.gas_price()), - }; - - // if nonce resolves, this should too since it'll be in the LRU-cache. - let header_fut = self.header(id); - - // fetch missing transaction fields from the network. - Box::new( - nonce_fut - .join(gas_price_fut) - .and_then(move |(nonce, gas_price)| { - future::done(Ok(( - req.gas.is_some(), - EthTransaction { - nonce: nonce.unwrap_or_default(), - action: req.to.map_or(Action::Create, Action::Call), - gas: req.gas.unwrap_or_else(|| START_GAS.into()), - gas_price, - value: req.value.unwrap_or_default(), - data: req.data.unwrap_or_default(), - }, - ))) - }) - .join(header_fut) - .and_then(move |((gas_known, tx), hdr)| { - // then request proved execution. - // TODO: get last-hashes from network. - let hash = hdr.hash(); - let env_info = match client.env_info(BlockId::Hash(hash)) { - Some(env_info) => env_info, - _ => return Either::A(future::err(errors::unknown_block())), - }; - - Either::B(execute_read_only_tx( - gas_known, - ExecuteParams { - from, - tx, - hdr, - env_info, - engine: client.engine().clone(), - on_demand, - sync, - }, - )) - }), - ) - } - - /// Helper to fetch the corpus gas price from 1) the cache 2) the network then it tries to estimate the percentile - /// using `gas_price_percentile` if the estimated percentile is zero the `DEFAULT_GAS_PRICE` is returned - pub fn gas_price(&self) -> impl Future + Send { - let gas_price_percentile = self.gas_price_percentile; - - dispatch::light::fetch_gas_price_corpus( - self.sync.clone(), - self.client.clone(), - self.on_demand.clone(), - self.cache.clone(), - ) - .map(move |corp| { - corp.percentile(gas_price_percentile) - .map_or_else(|| DEFAULT_GAS_PRICE.into(), |percentile| *percentile) - }) - } - - /// Get a block itself. Fails on unknown block ID. - pub fn block(&self, id: BlockId) -> impl Future + Send { - let mut reqs = Vec::new(); - let header_ref = match self.make_header_requests(id, &mut reqs) { - Ok(r) => r, - Err(e) => return Either::A(future::err(e)), - }; - - reqs.push(request::Body(header_ref).into()); - - Either::B(self.send_requests(reqs, |mut res| match res.pop() { - Some(OnDemandResponse::Body(b)) => b, - _ => panic!(WRONG_RESPONSE_AMOUNT_TYPE_PROOF), - })) - } - - /// Get the block receipts. Fails on unknown block ID. - pub fn receipts(&self, id: BlockId) -> impl Future, Error = Error> + Send { - let mut reqs = Vec::new(); - let header_ref = match self.make_header_requests(id, &mut reqs) { - Ok(r) => r, - Err(e) => return Either::A(future::err(e)), - }; - - reqs.push(request::BlockReceipts(header_ref).into()); - - Either::B(self.send_requests(reqs, |mut res| match res.pop() { - Some(OnDemandResponse::Receipts(b)) => b, - _ => panic!(WRONG_RESPONSE_AMOUNT_TYPE_PROOF), - })) - } - - pub fn logs_no_tx_hash( - &self, - filter: EthcoreFilter, - ) -> impl Future, Error = Error> + Send { - use jsonrpc_core::futures::stream::{self, Stream}; - - const MAX_BLOCK_RANGE: u64 = 1000; - - let fetcher = self.clone(); - self.headers_range_by_block_id(filter.from_block, filter.to_block, MAX_BLOCK_RANGE) - .and_then(move |mut headers| { - if headers.is_empty() { - return Either::A(future::ok(Vec::new())); - } - - let on_demand = &fetcher.on_demand; - - let maybe_future = fetcher.sync.with_context(move |ctx| { - // find all headers which match the filter, and fetch the receipts for each one. - // match them with their numbers for easy sorting later. - let bit_combos = filter.bloom_possibilities(); - let receipts_futures: Vec<_> = headers - .drain(..) - .filter(|ref hdr| { - let hdr_bloom = hdr.log_bloom(); - bit_combos - .iter() - .any(|bloom| hdr_bloom.contains_bloom(bloom)) - }) - .map(|hdr| (hdr.number(), hdr.hash(), request::BlockReceipts(hdr.into()))) - .map(|(num, hash, req)| { - on_demand - .request(ctx, req) - .expect(NO_INVALID_BACK_REFS_PROOF) - .map(move |x| (num, hash, x)) - }) - .collect(); - - // as the receipts come in, find logs within them which match the filter. - // insert them into a BTreeMap to maintain order by number and block index. - stream::futures_unordered(receipts_futures) - .fold( - BTreeMap::new(), - move |mut matches, (num, hash, receipts)| { - let mut block_index: usize = 0; - for (transaction_index, receipt) in receipts.into_iter().enumerate() - { - for (transaction_log_index, log) in - receipt.logs.into_iter().enumerate() - { - if filter.matches(&log) { - matches.insert( - (num, block_index), - Log { - address: log.address, - topics: log - .topics - .into_iter() - .map(Into::into) - .collect(), - data: log.data.into(), - block_hash: Some(hash), - block_number: Some(num.into()), - // No way to easily retrieve transaction hash, so let's just skip it. - transaction_hash: None, - transaction_index: Some( - transaction_index.into(), - ), - log_index: Some(block_index.into()), - transaction_log_index: Some( - transaction_log_index.into(), - ), - log_type: "mined".into(), - removed: false, - }, - ); - } - block_index += 1; - } - } - future::ok::<_, OnDemandError>(matches) - }, - ) - .map_err(errors::on_demand_error) - .map(|matches| matches.into_iter().map(|(_, v)| v).collect()) - }); - - match maybe_future { - Some(fut) => Either::B(Either::A(fut)), - None => Either::B(Either::B(future::err(errors::network_disabled()))), - } - }) - } - - /// Get transaction logs - pub fn logs( - &self, - filter: EthcoreFilter, - ) -> impl Future, Error = Error> + Send { - use jsonrpc_core::futures::stream::{self, Stream}; - let fetcher_block = self.clone(); - self.logs_no_tx_hash(filter) - // retrieve transaction hash. - .and_then(move |mut result| { - let mut blocks = BTreeMap::new(); - for log in result.iter() { - let block_hash = log - .block_hash - .as_ref() - .expect("Previously initialized with value; qed"); - blocks - .entry(*block_hash) - .or_insert_with(|| fetcher_block.block(BlockId::Hash(*block_hash))); - } - // future get blocks (unordered it) - stream::futures_unordered(blocks.into_iter().map(|(_, v)| v)) - .collect() - .map(move |blocks| { - let transactions_per_block: BTreeMap<_, _> = blocks - .iter() - .map(|block| (block.hash(), block.transactions())) - .collect(); - for log in result.iter_mut() { - let log_index = log - .transaction_index - .expect("Previously initialized with value; qed"); - let block_hash = log - .block_hash - .expect("Previously initialized with value; qed"); - let tx_hash = transactions_per_block - .get(&block_hash) - // transaction index is from an enumerate call in log common so not need to check value - .and_then(|txs| txs.get(log_index.as_usize())) - .map(types::transaction::UnverifiedTransaction::hash); - log.transaction_hash = tx_hash; - } - result - }) - }) - } - - // Get a transaction by hash. also returns the index in the block. - // Only returns transactions in the canonical chain. - pub fn transaction_by_hash( - &self, - tx_hash: H256, - ) -> impl Future, Error = Error> + Send { - let params = (self.sync.clone(), self.on_demand.clone()); - let fetcher: Self = self.clone(); - - Box::new(future::loop_fn(params, move |(sync, on_demand)| { - let maybe_future = sync.with_context(|ctx| { - let req = request::TransactionIndex(tx_hash.into()); - on_demand.request(ctx, req) - }); - - let eventual_index = match maybe_future { - Some(e) => e - .expect(NO_INVALID_BACK_REFS_PROOF) - .map_err(errors::on_demand_error), - None => return Either::A(future::err(errors::network_disabled())), - }; - - let fetcher = fetcher.clone(); - let extract_transaction = eventual_index.and_then(move |index| { - // check that the block is known by number. - // that ensures that it is within the chain that we are aware of. - fetcher - .block(BlockId::Number(index.num)) - .then(move |blk| match blk { - Ok(blk) => { - // if the block is known by number, make sure the - // index from earlier isn't garbage. - - if blk.hash() != index.hash { - // index is on a different chain from us. - return Ok(future::Loop::Continue((sync, on_demand))); - } - - let index = index.index as usize; - let transaction = extract_transaction_at_index(blk, index); - - if transaction.as_ref().map_or(true, |tx| tx.hash != tx_hash) { - // index is actively wrong: indicated block has - // fewer transactions than necessary or the transaction - // at that index had a different hash. - // TODO: punish peer/move into OnDemand somehow? - Ok(future::Loop::Continue((sync, on_demand))) - } else { - let transaction = transaction.map(move |tx| (tx, index)); - Ok(future::Loop::Break(transaction)) - } - } - Err(ref e) if e == &errors::unknown_block() => { - // block by number not in the canonical chain. - Ok(future::Loop::Break(None)) - } - Err(e) => Err(e), - }) - }); - - Either::B(extract_transaction) - })) - } - - /// Helper to cull the `light` transaction queue of mined transactions - pub fn light_cull( - &self, - txq: Arc>, - ) -> impl Future + Send { - let senders = txq.read().queued_senders(); - if senders.is_empty() { - return Either::B(future::err(errors::internal( - "No pending local transactions", - "", - ))); - } - - let sync = self.sync.clone(); - let on_demand = self.on_demand.clone(); - let best_header = self.client.best_block_header(); - let start_nonce = self - .client - .engine() - .account_start_nonce(best_header.number()); - - let account_request = sync.with_context(move |ctx| { - // fetch the nonce of each sender in the queue. - let nonce_reqs = senders - .iter() - .map(|&address| request::Account { - header: best_header.clone().into(), - address, - }) - .collect::>(); - - // when they come in, update each sender to the new nonce. - on_demand - .request(ctx, nonce_reqs) - .expect(NO_INVALID_BACK_REFS_PROOF) - .map(move |accs| { - let mut txq = txq.write(); - accs.into_iter() - .map(|maybe_acc| maybe_acc.map_or(start_nonce, |acc| acc.nonce)) - .zip(senders) - .for_each(|(nonce, addr)| { - txq.cull(addr, nonce); - }); - }) - .map_err(errors::on_demand_error) - }); - - if let Some(fut) = account_request { - Either::A(fut) - } else { - Either::B(future::err(errors::network_disabled())) - } - } - - fn send_requests( - &self, - reqs: Vec, - parse_response: F, - ) -> impl Future + Send - where - F: FnOnce(Vec) -> T + Send + 'static, - T: Send + 'static, - { - let maybe_future = self.sync.with_context(move |ctx| { - Box::new( - self.on_demand - .request_raw(ctx, reqs) - .expect(NO_INVALID_BACK_REFS_PROOF) - .map_err(errors::on_demand_cancel) - .and_then(|responses| match responses { - Ok(responses) => Ok(parse_response(responses)), - Err(e) => Err(errors::on_demand_error(e)), - }), - ) - }); - - match maybe_future { - Some(recv) => recv, - None => Box::new(future::err(errors::network_disabled())) - as Box + Send>, - } - } - - fn headers_range_by_block_id( - &self, - from_block: BlockId, - to_block: BlockId, - max: u64, - ) -> impl Future, Error = Error> { - let fetch_hashes = [from_block, to_block] - .iter() - .filter_map(|block_id| match block_id { - BlockId::Hash(hash) => Some(*hash), - _ => None, - }) - .collect::>(); - - let best_number = self.client.chain_info().best_block_number; - - let fetcher = self.clone(); - self.headers_by_hash(&fetch_hashes[..]).and_then(move |mut header_map| { - let (from_block_num, to_block_num) = { - let block_number = |id| match id { - BlockId::Earliest => 0, - BlockId::Latest => best_number, - BlockId::Hash(ref h) => - header_map.get(h).map(types::encoded::Header::number) - .expect("from_block and to_block headers are fetched by hash; this closure is only called on from_block and to_block; qed"), - BlockId::Number(x) => x, - }; - (block_number(from_block), block_number(to_block)) - }; - - if to_block_num < from_block_num { - // early exit for "to" block before "from" block. - return Either::A(future::err(errors::filter_block_not_found(to_block))); - } else if to_block_num - from_block_num >= max { - return Either::A(future::err(errors::request_rejected_param_limit(max, "blocks"))); - } - - let to_header_hint = match to_block { - BlockId::Hash(ref h) => header_map.remove(h), - _ => None, - }; - let headers_fut = fetcher.headers_range(from_block_num, to_block_num, to_header_hint); - Either::B(headers_fut.map(move |headers| { - // Validate from_block if it's a hash - let last_hash = headers.last().map(types::encoded::Header::hash); - match (last_hash, from_block) { - (Some(h1), BlockId::Hash(h2)) if h1 != h2 => Vec::new(), - _ => headers, - } - })) - }) - } - - fn headers_by_hash( - &self, - hashes: &[H256], - ) -> impl Future, Error = Error> { - let mut refs = H256FastMap::with_capacity_and_hasher(hashes.len(), Default::default()); - let mut reqs = Vec::with_capacity(hashes.len()); - - for hash in hashes { - refs.entry(*hash).or_insert_with(|| { - self.make_header_requests(BlockId::Hash(*hash), &mut reqs) - .expect("make_header_requests never fails for BlockId::Hash; qed") - }); - } - - self.send_requests(reqs, move |res| { - refs.into_iter() - .map(|(hash, header_ref)| { - let hdr = extract_header(&res, header_ref).expect( - "these responses correspond to requests that header_ref belongs to; \ - qed", - ); - (hash, hdr) - }) - .collect() - }) - } - - fn headers_range( - &self, - from_number: u64, - to_number: u64, - to_header_hint: Option, - ) -> impl Future, Error = Error> { - let range_length = (to_number - from_number + 1) as usize; - let mut headers: Vec = Vec::with_capacity(range_length); - - let iter_start = match to_header_hint { - Some(hdr) => { - let block_id = BlockId::Hash(hdr.parent_hash()); - headers.push(hdr); - block_id - } - None => BlockId::Number(to_number), - }; - headers.extend( - self.client - .ancestry_iter(iter_start) - .take_while(|hdr| hdr.number() >= from_number), - ); - - let fetcher = self.clone(); - future::loop_fn(headers, move |mut headers| { - let remaining = range_length - headers.len(); - if remaining == 0 { - return Either::A(future::ok(future::Loop::Break(headers))); - } - - let mut reqs: Vec = Vec::with_capacity(2); - - let start_hash = if let Some(hdr) = headers.last() { - hdr.parent_hash().into() - } else { - let cht_root = cht::block_to_cht_number(to_number) - .and_then(|cht_num| fetcher.client.cht_root(cht_num as usize)); - - let cht_root = match cht_root { - Some(cht_root) => cht_root, - None => return Either::A(future::err(errors::unknown_block())), - }; - - let header_proof = request::HeaderProof::new(to_number, cht_root).expect( - "HeaderProof::new is Some(_) if cht::block_to_cht_number() is Some(_); \ - this would return above if block_to_cht_number returned None; qed", - ); - - let idx = reqs.len(); - let hash_ref = Field::back_ref(idx, 0); - reqs.push(header_proof.into()); - - hash_ref - }; - - let max = cmp::min(remaining as u64, MAX_HEADERS_PER_REQUEST); - reqs.push( - request::HeaderWithAncestors { - block_hash: start_hash, - ancestor_count: max - 1, - } - .into(), - ); - - Either::B(fetcher.send_requests(reqs, |mut res| { - match res.last_mut() { - Some(&mut OnDemandResponse::HeaderWithAncestors(ref mut res_headers)) => { - headers.extend(res_headers.drain(..)) - } - _ => { - panic!("reqs has at least one entry; each request maps to a response; qed") - } - }; - future::Loop::Continue(headers) - })) - }) - } -} - -struct ExecuteParams -where - S: LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - from: Address, - tx: EthTransaction, - hdr: encoded::Header, - env_info: ::vm::EnvInfo, - engine: Arc, - on_demand: Arc, - sync: Arc, -} - -impl Clone for ExecuteParams -where - S: LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - fn clone(&self) -> Self { - Self { - from: self.from, - tx: self.tx.clone(), - hdr: self.hdr.clone(), - env_info: self.env_info.clone(), - engine: self.engine.clone(), - on_demand: self.on_demand.clone(), - sync: self.sync.clone(), - } - } -} - -// Has a peer execute the transaction with given params. If `gas_known` is false, this will set the `gas value` to the -// `required gas value` unless it exceeds the block gas limit -fn execute_read_only_tx( - gas_known: bool, - params: ExecuteParams, -) -> impl Future + Send -where - S: LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - if !gas_known { - Box::new(future::loop_fn(params, |mut params| { - execute_read_only_tx(true, params.clone()).and_then(move |res| { - match res { - Ok(executed) => { - // `OutOfGas` exception, try double the gas - if let Some(::vm::Error::OutOfGas) = executed.exception { - // block gas limit already tried, regard as an error and don't retry - if params.tx.gas >= params.hdr.gas_limit() { - trace!(target: "light_fetch", "OutOutGas exception received, gas increase: failed"); - } else { - params.tx.gas = cmp::min(params.tx.gas * 2_u32, params.hdr.gas_limit()); - trace!(target: "light_fetch", "OutOutGas exception received, gas increased to {}", - params.tx.gas); - return Ok(future::Loop::Continue(params)) - } - } - Ok(future::Loop::Break(Ok(executed))) - } - Err(ExecutionError::NotEnoughBaseGas { required, got }) => { - trace!(target: "light_fetch", "Not enough start gas provided required: {}, got: {}", - required, got); - if required <= params.hdr.gas_limit() { - params.tx.gas = required; - Ok(future::Loop::Continue(params)) - } else { - warn!(target: "light_fetch", - "Required gas is bigger than block header's gas dropping the request"); - Ok(future::Loop::Break(Err(ExecutionError::NotEnoughBaseGas { required, got }))) - } - } - // Non-recoverable execution error - failed => Ok(future::Loop::Break(failed)), - } - }) - })) as Box + Send> - } else { - trace!(target: "light_fetch", "Placing execution request for {} gas in on_demand", - params.tx.gas); - - let request = request::TransactionProof { - tx: params.tx.fake_sign(params.from), - header: params.hdr.into(), - env_info: params.env_info, - engine: params.engine, - }; - - let on_demand = params.on_demand; - let proved_future = params.sync.with_context(move |ctx| { - on_demand - .request(ctx, request) - .expect("no back-references; therefore all back-refs valid; qed") - .map_err(errors::on_demand_error) - }); - - match proved_future { - Some(fut) => Box::new(fut) as Box + Send>, - None => Box::new(future::err(errors::network_disabled())) - as Box + Send>, - } - } -} diff --git a/rpc/src/v1/helpers/mod.rs b/rpc/src/v1/helpers/mod.rs index 33fa34c2f..62c3abcdb 100644 --- a/rpc/src/v1/helpers/mod.rs +++ b/rpc/src/v1/helpers/mod.rs @@ -27,7 +27,6 @@ pub mod engine_signer; pub mod external_signer; pub mod fake_sign; pub mod ipfs; -pub mod light_fetch; pub mod nonce; #[cfg(any(test, feature = "accounts"))] pub mod secretstore; @@ -42,7 +41,7 @@ mod subscription_manager; mod work; pub use self::{ - dispatch::{Dispatcher, FullDispatcher, LightDispatcher}, + dispatch::{Dispatcher, FullDispatcher}, network_settings::NetworkSettings, poll_filter::{limit_logs, PollFilter, SyncPollFilter}, poll_manager::PollManager, diff --git a/rpc/src/v1/impls/eth.rs b/rpc/src/v1/impls/eth.rs index 552a26eb2..420526f5a 100644 --- a/rpc/src/v1/impls/eth.rs +++ b/rpc/src/v1/impls/eth.rs @@ -155,36 +155,6 @@ enum PendingTransactionId { Location(PendingOrBlock, usize), } -pub fn base_logs( - client: &C, - miner: &M, - filter: Filter, -) -> BoxFuture> -where - C: miner::BlockChainClient + BlockChainClient + StateClient + Call, - M: MinerService, -{ - let include_pending = filter.to_block == Some(BlockNumber::Pending); - let filter: EthcoreFilter = match filter.try_into() { - Ok(value) => value, - Err(err) => return Box::new(future::err(err)), - }; - let mut logs = match client.logs(filter.clone()) { - Ok(logs) => logs.into_iter().map(From::from).collect::>(), - Err(id) => return Box::new(future::err(errors::filter_block_not_found(id))), - }; - - if include_pending { - let best_block = client.chain_info().best_block_number; - let pending = pending_logs(&*miner, best_block, &filter); - logs.extend(pending); - } - - let logs = limit_logs(logs, filter.limit); - - Box::new(future::ok(logs)) -} - impl EthClient where C: miner::BlockChainClient @@ -1009,7 +979,25 @@ where } fn logs(&self, filter: Filter) -> BoxFuture> { - base_logs(&*self.client, &*self.miner, filter) + let include_pending = filter.to_block == Some(BlockNumber::Pending); + let filter: EthcoreFilter = match filter.try_into() { + Ok(value) => value, + Err(err) => return Box::new(future::err(err)), + }; + let mut logs = match self.client.logs(filter.clone()) { + Ok(logs) => logs.into_iter().map(From::from).collect::>(), + Err(id) => return Box::new(future::err(errors::filter_block_not_found(id))), + }; + + if include_pending { + let best_block = self.client.chain_info().best_block_number; + let pending = pending_logs(&*self.miner, best_block, &filter); + logs.extend(pending); + } + + let logs = limit_logs(logs, filter.limit); + + Box::new(future::ok(logs)) } fn work(&self, no_new_work_timeout: Option) -> Result { diff --git a/rpc/src/v1/impls/eth_pubsub.rs b/rpc/src/v1/impls/eth_pubsub.rs index e8fa58634..da400ce18 100644 --- a/rpc/src/v1/impls/eth_pubsub.rs +++ b/rpc/src/v1/impls/eth_pubsub.rs @@ -23,7 +23,7 @@ use std::{ use jsonrpc_core::{ futures::{self, Future, IntoFuture}, - BoxFuture, Error, Result, + Error, Result, }; use jsonrpc_pubsub::{ typed::{Sink, Subscriber}, @@ -31,7 +31,7 @@ use jsonrpc_pubsub::{ }; use v1::{ - helpers::{errors, light_fetch::LightFetch, limit_logs, Subscribers}, + helpers::{errors, limit_logs, Subscribers}, metadata::Metadata, traits::EthPubSub, types::{pubsub, Log, RichHeader}, @@ -39,15 +39,8 @@ use v1::{ use ethcore::client::{BlockChainClient, BlockId, ChainNotify, ChainRouteType, NewBlocks}; use ethereum_types::H256; -use light::{ - cache::Cache, - client::{LightChainClient, LightChainNotify}, - on_demand::OnDemandRequester, -}; use parity_runtime::Executor; -use parking_lot::{Mutex, RwLock}; - -use sync::{LightNetworkDispatcher, LightSyncProvider, ManageNetwork}; +use parking_lot::RwLock; use types::{encoded, filter::Filter as EthFilter}; @@ -98,31 +91,6 @@ impl EthPubSubClient { } } -impl EthPubSubClient> -where - S: LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - /// Creates a new `EthPubSubClient` for `LightClient`. - pub fn light( - client: Arc, - on_demand: Arc, - sync: Arc, - cache: Arc>, - executor: Executor, - gas_price_percentile: usize, - ) -> Self { - let fetch = LightFetch { - client, - on_demand, - sync, - cache, - gas_price_percentile, - }; - EthPubSubClient::new(Arc::new(fetch), executor) - } -} - /// PubSub Notification handler. pub struct ChainNotificationHandler { client: Arc, @@ -206,45 +174,6 @@ impl ChainNotificationHandler { } } -/// A light client wrapper struct. -pub trait LightClient: Send + Sync { - /// Get a recent block header. - fn block_header(&self, id: BlockId) -> Option; - - /// Fetch logs. - fn logs(&self, filter: EthFilter) -> BoxFuture>; -} - -impl LightClient for LightFetch -where - S: LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - fn block_header(&self, id: BlockId) -> Option { - self.client.block_header(id) - } - - fn logs(&self, filter: EthFilter) -> BoxFuture> { - Box::new(LightFetch::logs(self, filter)) as BoxFuture<_> - } -} - -impl LightChainNotify for ChainNotificationHandler { - fn new_headers(&self, enacted: &[H256]) { - let headers = enacted - .iter() - .filter_map(|hash| self.client.block_header(BlockId::Hash(*hash))) - .map(|header| (header, Default::default())) - .collect::>(); - - self.notify_heads(&headers); - self.notify_logs( - &enacted.iter().map(|h| (*h, ())).collect::>(), - |filter, _| self.client.logs(filter), - ) - } -} - impl ChainNotify for ChainNotificationHandler { fn new_blocks(&self, new_blocks: NewBlocks) { if self.heads_subscribers.read().is_empty() && self.logs_subscribers.read().is_empty() { diff --git a/rpc/src/v1/impls/light/eth.rs b/rpc/src/v1/impls/light/eth.rs deleted file mode 100644 index 58ada9a32..000000000 --- a/rpc/src/v1/impls/light/eth.rs +++ /dev/null @@ -1,744 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Eth RPC interface for the light client. - -use std::{collections::BTreeSet, sync::Arc}; - -use jsonrpc_core::{ - futures::{future, future::Either, Future}, - BoxFuture, Result, -}; - -use light::{ - cache::Cache as LightDataCache, - cht, - client::LightChainClient, - on_demand::{request, OnDemandRequester}, - TransactionQueue, -}; - -use ethereum_types::{Address, H160, H256, H64, U256, U64}; -use hash::{KECCAK_EMPTY_LIST_RLP, KECCAK_NULL_RLP}; -use parking_lot::{Mutex, RwLock}; -use rlp::Rlp; -use types::{ - encoded, filter::Filter as EthcoreFilter, ids::BlockId, transaction::SignedTransaction, -}; - -use v1::{ - helpers::{ - deprecated::{self, DeprecationNotice}, - errors, - light_fetch::{self, LightFetch}, - limit_logs, PollManager, SyncPollFilter, - }, - impls::eth_filter::Filterable, - metadata::Metadata, - traits::Eth, - types::{ - Block, BlockNumber, BlockTransactions, Bytes, CallRequest, EthAccount, Filter, Index, - LightBlockNumber, Log, Receipt, RichBlock, SyncInfo as RpcSyncInfo, - SyncStatus as RpcSyncStatus, Transaction, Work, - }, -}; - -use sync::{LightNetworkDispatcher, LightSyncInfo, LightSyncProvider, ManageNetwork}; - -const NO_INVALID_BACK_REFS: &str = - "Fails only on invalid back-references; back-references here known to be valid; qed"; - -/// Light client `ETH` (and filter) RPC. -pub struct EthClient< - C, - S: LightSyncProvider + LightNetworkDispatcher + 'static, - OD: OnDemandRequester + 'static, -> { - sync: Arc, - client: Arc, - on_demand: Arc, - transaction_queue: Arc>, - accounts: Arc Vec

+ Send + Sync>, - cache: Arc>, - polls: Mutex>, - poll_lifetime: u32, - gas_price_percentile: usize, - deprecation_notice: DeprecationNotice, -} - -impl Clone for EthClient -where - S: LightSyncProvider + LightNetworkDispatcher + 'static, - OD: OnDemandRequester + 'static, -{ - fn clone(&self) -> Self { - // each instance should have its own poll manager. - EthClient { - sync: self.sync.clone(), - client: self.client.clone(), - on_demand: self.on_demand.clone(), - transaction_queue: self.transaction_queue.clone(), - accounts: self.accounts.clone(), - cache: self.cache.clone(), - polls: Mutex::new(PollManager::new(self.poll_lifetime)), - poll_lifetime: self.poll_lifetime, - gas_price_percentile: self.gas_price_percentile, - deprecation_notice: Default::default(), - } - } -} - -impl EthClient -where - C: LightChainClient + 'static, - S: LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - /// Create a new `EthClient` with a handle to the light sync instance, client, - /// and on-demand request service, which is assumed to be attached as a handler. - pub fn new( - sync: Arc, - client: Arc, - on_demand: Arc, - transaction_queue: Arc>, - accounts: Arc Vec
+ Send + Sync>, - cache: Arc>, - gas_price_percentile: usize, - poll_lifetime: u32, - ) -> Self { - EthClient { - sync, - client, - on_demand, - transaction_queue, - accounts, - cache, - polls: Mutex::new(PollManager::new(poll_lifetime)), - poll_lifetime, - gas_price_percentile, - deprecation_notice: Default::default(), - } - } - - /// Create a light data fetcher instance. - fn fetcher(&self) -> LightFetch { - LightFetch { - client: self.client.clone(), - on_demand: self.on_demand.clone(), - sync: self.sync.clone(), - cache: self.cache.clone(), - gas_price_percentile: self.gas_price_percentile, - } - } - - // get a "rich" block structure. Fails on unknown block. - fn rich_block(&self, id: BlockId, include_txs: bool) -> BoxFuture { - let (on_demand, sync) = (self.on_demand.clone(), self.sync.clone()); - let (client, engine) = (self.client.clone(), self.client.engine().clone()); - - // helper for filling out a rich block once we've got a block and a score. - let fill_rich = move |block: encoded::Block, score: Option| { - let header = block.decode_header(); - let extra_info = engine.extra_info(&header); - RichBlock { - inner: Block { - hash: Some(header.hash()), - size: Some(block.rlp().as_raw().len().into()), - parent_hash: *header.parent_hash(), - uncles_hash: *header.uncles_hash(), - author: *header.author(), - miner: *header.author(), - state_root: *header.state_root(), - transactions_root: *header.transactions_root(), - receipts_root: *header.receipts_root(), - number: Some(header.number().into()), - gas_used: *header.gas_used(), - gas_limit: *header.gas_limit(), - logs_bloom: Some(*header.log_bloom()), - timestamp: header.timestamp().into(), - difficulty: *header.difficulty(), - total_difficulty: score.map(Into::into), - seal_fields: header.seal().iter().cloned().map(Into::into).collect(), - uncles: block.uncle_hashes().into_iter().map(Into::into).collect(), - transactions: match include_txs { - true => BlockTransactions::Full( - block - .view() - .localized_transactions() - .into_iter() - .map(Transaction::from_localized) - .collect(), - ), - _ => BlockTransactions::Hashes( - block - .transaction_hashes() - .into_iter() - .map(Into::into) - .collect(), - ), - }, - extra_data: Bytes::new(header.extra_data().clone()), - }, - extra_info, - } - }; - - // get the block itself. - Box::new(self.fetcher().block(id).and_then(move |block| { - // then fetch the total difficulty (this is much easier after getting the block). - match client.score(id) { - Some(score) => Either::A(future::ok(fill_rich(block, Some(score)))), - None => { - // make a CHT request to fetch the chain score. - let req = cht::block_to_cht_number(block.number()) - .and_then(|num| client.cht_root(num as usize)) - .and_then(|root| request::HeaderProof::new(block.number(), root)); - - let req = match req { - Some(req) => req, - None => { - // somehow the genesis block slipped past other checks. - // return it now. - let score = client - .block_header(BlockId::Number(0)) - .expect("genesis always stored; qed") - .difficulty(); - - return Either::A(future::ok(fill_rich(block, Some(score)))); - } - }; - - // three possible outcomes: - // - network is down. - // - we get a score, but our hash is non-canonical. - // - we get a score, and our hash is canonical. - let maybe_fut = sync.with_context(move |ctx| { - on_demand.request(ctx, req).expect(NO_INVALID_BACK_REFS) - }); - match maybe_fut { - Some(fut) => Either::B( - fut.map(move |(hash, score)| { - let score = if hash == block.hash() { - Some(score) - } else { - None - }; - - fill_rich(block, score) - }) - .map_err(errors::on_demand_error), - ), - None => Either::A(future::err(errors::network_disabled())), - } - } - } - })) - } -} - -impl Eth for EthClient -where - C: LightChainClient + 'static, - S: LightSyncInfo + LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - type Metadata = Metadata; - - fn protocol_version(&self) -> Result { - Ok(format!("{}", ::light::net::MAX_PROTOCOL_VERSION)) - } - - fn syncing(&self) -> Result { - if self.sync.is_major_importing() { - let chain_info = self.client.chain_info(); - let current_block = U256::from(chain_info.best_block_number); - let highest_block = self - .sync - .highest_block() - .map(U256::from) - .unwrap_or_else(|| current_block); - - Ok(RpcSyncStatus::Info(RpcSyncInfo { - starting_block: U256::from(self.sync.start_block()), - current_block, - highest_block, - warp_chunks_amount: None, - warp_chunks_processed: None, - })) - } else { - Ok(RpcSyncStatus::None) - } - } - - fn author(&self) -> Result { - (self.accounts)() - .first() - .cloned() - .map(From::from) - .ok_or_else(|| errors::account("No accounts were found", "")) - } - - fn is_mining(&self) -> Result { - Ok(false) - } - - fn chain_id(&self) -> Result> { - Ok(self.client.signing_chain_id().map(U64::from)) - } - - fn hashrate(&self) -> Result { - Ok(Default::default()) - } - - fn gas_price(&self) -> BoxFuture { - Box::new(self.fetcher().gas_price()) - } - - fn accounts(&self) -> Result> { - self.deprecation_notice - .print("eth_accounts", deprecated::msgs::ACCOUNTS); - - Ok((self.accounts)().into_iter().map(Into::into).collect()) - } - - fn block_number(&self) -> Result { - Ok(self.client.chain_info().best_block_number.into()) - } - - fn balance(&self, address: H160, num: Option) -> BoxFuture { - Box::new( - self.fetcher() - .account( - address, - num.unwrap_or_default().to_block_id(), - self.transaction_queue.clone(), - ) - .map(|acc| acc.map_or(0.into(), |a| a.balance)), - ) - } - - fn storage_at(&self, _address: H160, _key: U256, _num: Option) -> BoxFuture { - Box::new(future::err(errors::unimplemented(None))) - } - - fn block_by_hash(&self, hash: H256, include_txs: bool) -> BoxFuture> { - Box::new(self.rich_block(BlockId::Hash(hash), include_txs).map(Some)) - } - - fn block_by_number(&self, num: BlockNumber, include_txs: bool) -> BoxFuture> { - Box::new(self.rich_block(num.to_block_id(), include_txs).map(Some)) - } - - fn transaction_count(&self, address: H160, num: Option) -> BoxFuture { - Box::new( - self.fetcher() - .account( - address, - num.unwrap_or_default().to_block_id(), - self.transaction_queue.clone(), - ) - .map(|acc| acc.map_or(0.into(), |a| a.nonce)), - ) - } - - fn block_transaction_count_by_hash(&self, hash: H256) -> BoxFuture> { - let (sync, on_demand) = (self.sync.clone(), self.on_demand.clone()); - - Box::new( - self.fetcher() - .header(BlockId::Hash(hash)) - .and_then(move |hdr| { - if hdr.transactions_root() == KECCAK_NULL_RLP { - Either::A(future::ok(Some(U256::from(0)))) - } else { - sync.with_context(|ctx| on_demand.request(ctx, request::Body(hdr.into()))) - .map(|x| x.expect(NO_INVALID_BACK_REFS)) - .map(|x| x.map(|b| Some(U256::from(b.transactions_count())))) - .map(|x| Either::B(x.map_err(errors::on_demand_error))) - .unwrap_or_else(|| Either::A(future::err(errors::network_disabled()))) - } - }), - ) - } - - fn block_transaction_count_by_number(&self, num: BlockNumber) -> BoxFuture> { - let (sync, on_demand) = (self.sync.clone(), self.on_demand.clone()); - - Box::new( - self.fetcher() - .header(num.to_block_id()) - .and_then(move |hdr| { - if hdr.transactions_root() == KECCAK_NULL_RLP { - Either::A(future::ok(Some(U256::from(0)))) - } else { - sync.with_context(|ctx| on_demand.request(ctx, request::Body(hdr.into()))) - .map(|x| x.expect(NO_INVALID_BACK_REFS)) - .map(|x| x.map(|b| Some(U256::from(b.transactions_count())))) - .map(|x| Either::B(x.map_err(errors::on_demand_error))) - .unwrap_or_else(|| Either::A(future::err(errors::network_disabled()))) - } - }), - ) - } - - fn block_uncles_count_by_hash(&self, hash: H256) -> BoxFuture> { - let (sync, on_demand) = (self.sync.clone(), self.on_demand.clone()); - - Box::new( - self.fetcher() - .header(BlockId::Hash(hash)) - .and_then(move |hdr| { - if hdr.uncles_hash() == KECCAK_EMPTY_LIST_RLP { - Either::A(future::ok(Some(U256::from(0)))) - } else { - sync.with_context(|ctx| on_demand.request(ctx, request::Body(hdr.into()))) - .map(|x| x.expect(NO_INVALID_BACK_REFS)) - .map(|x| x.map(|b| Some(U256::from(b.uncles_count())))) - .map(|x| Either::B(x.map_err(errors::on_demand_error))) - .unwrap_or_else(|| Either::A(future::err(errors::network_disabled()))) - } - }), - ) - } - - fn block_uncles_count_by_number(&self, num: BlockNumber) -> BoxFuture> { - let (sync, on_demand) = (self.sync.clone(), self.on_demand.clone()); - - Box::new( - self.fetcher() - .header(num.to_block_id()) - .and_then(move |hdr| { - if hdr.uncles_hash() == KECCAK_EMPTY_LIST_RLP { - Either::B(future::ok(Some(U256::from(0)))) - } else { - sync.with_context(|ctx| on_demand.request(ctx, request::Body(hdr.into()))) - .map(|x| x.expect(NO_INVALID_BACK_REFS)) - .map(|x| x.map(|b| Some(U256::from(b.uncles_count())))) - .map(|x| Either::A(x.map_err(errors::on_demand_error))) - .unwrap_or_else(|| Either::B(future::err(errors::network_disabled()))) - } - }), - ) - } - - fn code_at(&self, address: H160, num: Option) -> BoxFuture { - Box::new( - self.fetcher() - .code(address, num.unwrap_or_default().to_block_id()) - .map(Into::into), - ) - } - - fn send_raw_transaction(&self, raw: Bytes) -> Result { - let best_header = self - .client - .best_block_header() - .decode() - .map_err(errors::decode)?; - - Rlp::new(&raw.into_vec()) - .as_val() - .map_err(errors::rlp) - .and_then(|tx| { - self.client - .engine() - .verify_transaction_basic(&tx, &best_header) - .map_err(errors::transaction)?; - - let signed = SignedTransaction::new(tx).map_err(errors::transaction)?; - let hash = signed.hash(); - - self.transaction_queue - .write() - .import(signed.into()) - .map(|_| hash) - .map_err(errors::transaction) - }) - .map(Into::into) - } - - fn submit_transaction(&self, raw: Bytes) -> Result { - self.send_raw_transaction(raw) - } - - fn call(&self, req: CallRequest, num: Option) -> BoxFuture { - Box::new( - self.fetcher() - .proved_read_only_execution(req, num, self.transaction_queue.clone()) - .and_then(|res| match res { - Ok(exec) => Ok(exec.output.into()), - Err(e) => Err(errors::execution(e)), - }), - ) - } - - fn estimate_gas(&self, req: CallRequest, num: Option) -> BoxFuture { - // TODO: binary chop for more accurate estimates. - Box::new( - self.fetcher() - .proved_read_only_execution(req, num, self.transaction_queue.clone()) - .and_then(|res| match res { - Ok(exec) => Ok(exec.refunded + exec.gas_used), - Err(e) => Err(errors::execution(e)), - }), - ) - } - - fn transaction_by_hash(&self, hash: H256) -> BoxFuture> { - let in_txqueue = self.transaction_queue.read().get(&hash).is_some(); - - // The transaction is in the `local txqueue` then fetch the latest state from the network and attempt - // to cull the transaction queue. - if in_txqueue { - // Note, this will block (relies on HTTP timeout) to make sure `cull` will finish to avoid having to call - // `eth_getTransactionByHash` more than once to ensure the `txqueue` is up to `date` when it is called - if let Err(e) = self - .fetcher() - .light_cull(self.transaction_queue.clone()) - .wait() - { - debug!(target: "cull", "failed because of: {:?}", e); - } - if let Some(tx) = self.transaction_queue.read().get(&hash) { - return Box::new(future::ok(Some(Transaction::from_pending(tx.clone())))); - } - } - Box::new( - self.fetcher() - .transaction_by_hash(hash) - .map(|x| x.map(|(tx, _)| tx)), - ) - } - - fn transaction_by_block_hash_and_index( - &self, - hash: H256, - idx: Index, - ) -> BoxFuture> { - Box::new( - self.fetcher() - .block(BlockId::Hash(hash)) - .map(move |block| light_fetch::extract_transaction_at_index(block, idx.value())), - ) - } - - fn transaction_by_block_number_and_index( - &self, - num: BlockNumber, - idx: Index, - ) -> BoxFuture> { - Box::new( - self.fetcher() - .block(num.to_block_id()) - .map(move |block| light_fetch::extract_transaction_at_index(block, idx.value())), - ) - } - - fn transaction_receipt(&self, hash: H256) -> BoxFuture> { - let fetcher = self.fetcher(); - Box::new(fetcher.transaction_by_hash(hash).and_then(move |tx| { - // the block hash included in the transaction object here has - // already been checked for canonicality and whether it contains - // the transaction. - match tx { - Some((tx, index)) => match tx.block_hash { - Some(block_hash) => { - let extract_receipt = fetcher - .receipts(BlockId::Hash(block_hash)) - .and_then(move |mut receipts| future::ok(receipts.swap_remove(index))) - .map(Receipt::from) - .map(move |mut receipt| { - receipt.transaction_hash = Some(hash); - receipt.transaction_index = Some(index.into()); - receipt.block_hash = Some(block_hash); - receipt.block_number = tx.block_number; - receipt - }) - .map(Some); - - Either::B(extract_receipt) - } - None => Either::A(future::err(errors::unknown_block())), - }, - None => Either::A(future::ok(None)), - } - })) - } - - fn uncle_by_block_hash_and_index( - &self, - hash: H256, - idx: Index, - ) -> BoxFuture> { - let client = self.client.clone(); - Box::new( - self.fetcher() - .block(BlockId::Hash(hash)) - .map(move |block| extract_uncle_at_index(block, idx, client)), - ) - } - - fn uncle_by_block_number_and_index( - &self, - num: BlockNumber, - idx: Index, - ) -> BoxFuture> { - let client = self.client.clone(); - Box::new( - self.fetcher() - .block(num.to_block_id()) - .map(move |block| extract_uncle_at_index(block, idx, client)), - ) - } - - fn proof( - &self, - _address: H160, - _values: Vec, - _num: Option, - ) -> BoxFuture { - Box::new(future::err(errors::unimplemented(None))) - } - - fn compilers(&self) -> Result> { - Err(errors::deprecated( - "Compilation functionality is deprecated.".to_string(), - )) - } - - fn compile_lll(&self, _: String) -> Result { - Err(errors::deprecated( - "Compilation of LLL via RPC is deprecated".to_string(), - )) - } - - fn compile_serpent(&self, _: String) -> Result { - Err(errors::deprecated( - "Compilation of Serpent via RPC is deprecated".to_string(), - )) - } - - fn compile_solidity(&self, _: String) -> Result { - Err(errors::deprecated( - "Compilation of Solidity via RPC is deprecated".to_string(), - )) - } - - fn logs(&self, filter: Filter) -> BoxFuture> { - let limit = filter.limit; - - Box::new( - Filterable::logs( - self, - match filter.try_into() { - Ok(value) => value, - Err(err) => return Box::new(future::err(err)), - }, - ) - .map(move |logs| limit_logs(logs, limit)), - ) - } - - fn work(&self, _timeout: Option) -> Result { - Err(errors::light_unimplemented(None)) - } - - fn submit_work(&self, _nonce: H64, _pow_hash: H256, _mix_hash: H256) -> Result { - Err(errors::light_unimplemented(None)) - } - - fn submit_hashrate(&self, _rate: U256, _id: H256) -> Result { - Err(errors::light_unimplemented(None)) - } -} - -// This trait implementation triggers a blanked impl of `EthFilter`. -impl Filterable for EthClient -where - C: LightChainClient + 'static, - S: LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - fn best_block_number(&self) -> u64 { - self.client.chain_info().best_block_number - } - - fn block_hash(&self, id: BlockId) -> Option { - self.client.block_hash(id) - } - - fn pending_transaction_hashes(&self) -> BTreeSet { - BTreeSet::new() - } - - fn logs(&self, filter: EthcoreFilter) -> BoxFuture> { - Box::new(self.fetcher().logs(filter)) as BoxFuture<_> - } - - fn pending_logs(&self, _block_number: u64, _filter: &EthcoreFilter) -> Vec { - Vec::new() // light clients don't mine. - } - - fn polls(&self) -> &Mutex> { - &self.polls - } - - fn removed_logs( - &self, - _block_hash: ::ethereum_types::H256, - _filter: &EthcoreFilter, - ) -> (Vec, u64) { - (Default::default(), 0) - } -} - -fn extract_uncle_at_index( - block: encoded::Block, - index: Index, - client: Arc, -) -> Option { - let uncle = match block.uncles().into_iter().nth(index.value()) { - Some(u) => u, - None => return None, - }; - - let extra_info = client.engine().extra_info(&uncle); - Some(RichBlock { - inner: Block { - hash: Some(uncle.hash()), - size: None, - parent_hash: *uncle.parent_hash(), - uncles_hash: *uncle.uncles_hash(), - author: *uncle.author(), - miner: *uncle.author(), - state_root: *uncle.state_root(), - transactions_root: *uncle.transactions_root(), - number: Some(uncle.number().into()), - gas_used: *uncle.gas_used(), - gas_limit: *uncle.gas_limit(), - logs_bloom: Some(*uncle.log_bloom()), - timestamp: uncle.timestamp().into(), - difficulty: *uncle.difficulty(), - total_difficulty: None, - receipts_root: *uncle.receipts_root(), - extra_data: uncle.extra_data().clone().into(), - seal_fields: uncle.seal().iter().cloned().map(Into::into).collect(), - uncles: vec![], - transactions: BlockTransactions::Hashes(vec![]), - }, - extra_info, - }) -} diff --git a/rpc/src/v1/impls/light/mod.rs b/rpc/src/v1/impls/light/mod.rs deleted file mode 100644 index c40d49f94..000000000 --- a/rpc/src/v1/impls/light/mod.rs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! RPC implementations for the light client. -//! -//! This doesn't re-implement all of the RPC APIs, just those which aren't -//! significantly generic to be reused. - -pub mod eth; -pub mod net; -pub mod parity; -pub mod parity_set; -pub mod trace; - -pub use self::{ - eth::EthClient, net::NetClient, parity::ParityClient, parity_set::ParitySetClient, - trace::TracesClient, -}; diff --git a/rpc/src/v1/impls/light/net.rs b/rpc/src/v1/impls/light/net.rs deleted file mode 100644 index 311f5c78c..000000000 --- a/rpc/src/v1/impls/light/net.rs +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Net rpc implementation. -use jsonrpc_core::Result; -use std::sync::Arc; -use sync::LightSyncProvider; -use v1::traits::Net; - -/// Net rpc implementation. -pub struct NetClient { - sync: Arc, -} - -impl NetClient -where - S: LightSyncProvider, -{ - /// Creates new NetClient. - pub fn new(sync: Arc) -> Self { - NetClient { sync } - } -} - -impl Net for NetClient -where - S: LightSyncProvider, -{ - fn version(&self) -> Result { - Ok(format!("{}", self.sync.network_id()).to_owned()) - } - - fn peer_count(&self) -> Result { - Ok(format!("0x{:x}", self.sync.peer_numbers().connected as u64).to_owned()) - } - - fn is_listening(&self) -> Result { - Ok(true) - } -} diff --git a/rpc/src/v1/impls/light/parity.rs b/rpc/src/v1/impls/light/parity.rs deleted file mode 100644 index fecd879f7..000000000 --- a/rpc/src/v1/impls/light/parity.rs +++ /dev/null @@ -1,464 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Parity-specific rpc implementation. -use std::{collections::BTreeMap, sync::Arc}; - -use version::version_data; - -use crypto::DEFAULT_MAC; -use ethcore_logger::RotatingLogger; -use ethereum_types::{H160, H256, H512, H64, U256, U64}; -use ethkey::{crypto::ecies, Brain, Generator}; -use ethstore::random_phrase; -use sync::{LightNetworkDispatcher, LightSyncInfo, LightSyncProvider, ManageNetwork}; -use updater::VersionInfo as UpdaterVersionInfo; - -use jsonrpc_core::{ - futures::{future, Future}, - BoxFuture, Result, -}; -use light::on_demand::OnDemandRequester; -use v1::{ - helpers::{ - self, - dispatch::LightDispatcher, - errors, - external_signer::{SignerService, SigningQueue}, - ipfs, - light_fetch::{light_all_transactions, LightFetch}, - verify_signature, NetworkSettings, - }, - metadata::Metadata, - traits::Parity, - types::{ - BlockNumber, Bytes, CallRequest, ChainStatus, ConsensusCapability, Filter, Header, - Histogram, LightBlockNumber, LocalTransactionStatus, Log, OperationsInfo, Peers, Receipt, - RecoveredAccount, RichHeader, RpcSettings, Transaction, TransactionStats, VersionInfo, - }, -}; -use Host; - -/// Parity implementation for light client. -pub struct ParityClient -where - S: LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - light_dispatch: Arc>, - logger: Arc, - settings: Arc, - signer: Option>, - ws_address: Option, - gas_price_percentile: usize, -} - -impl ParityClient -where - S: LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - /// Creates new `ParityClient`. - pub fn new( - light_dispatch: Arc>, - logger: Arc, - settings: Arc, - signer: Option>, - ws_address: Option, - gas_price_percentile: usize, - ) -> Self { - ParityClient { - light_dispatch, - logger, - settings, - signer, - ws_address, - gas_price_percentile, - } - } - - /// Create a light blockchain data fetcher. - fn fetcher(&self) -> LightFetch { - LightFetch { - client: self.light_dispatch.client.clone(), - on_demand: self.light_dispatch.on_demand.clone(), - sync: self.light_dispatch.sync.clone(), - cache: self.light_dispatch.cache.clone(), - gas_price_percentile: self.gas_price_percentile, - } - } -} - -impl Parity for ParityClient -where - S: LightSyncInfo + LightSyncProvider + LightNetworkDispatcher + ManageNetwork + 'static, - OD: OnDemandRequester + 'static, -{ - type Metadata = Metadata; - - fn transactions_limit(&self) -> Result { - Ok(usize::max_value()) - } - - fn min_gas_price(&self) -> Result { - Ok(U256::default()) - } - - fn extra_data(&self) -> Result { - Ok(Bytes::default()) - } - - fn gas_floor_target(&self) -> Result { - Ok(U256::default()) - } - - fn gas_ceil_target(&self) -> Result { - Ok(U256::default()) - } - - fn dev_logs(&self) -> Result> { - let logs = self.logger.logs(); - Ok(logs.as_slice().to_owned()) - } - - fn dev_logs_levels(&self) -> Result { - Ok(self.logger.levels().to_owned()) - } - - fn net_chain(&self) -> Result { - Ok(self.settings.chain.clone()) - } - - fn net_peers(&self) -> Result { - let peers = self - .light_dispatch - .sync - .peers() - .into_iter() - .map(Into::into) - .collect(); - let peer_numbers = self.light_dispatch.sync.peer_numbers(); - - Ok(Peers { - active: peer_numbers.active, - connected: peer_numbers.connected, - max: peer_numbers.max as u32, - peers, - }) - } - - fn net_port(&self) -> Result { - Ok(self.settings.network_port) - } - - fn node_name(&self) -> Result { - Ok(self.settings.name.clone()) - } - - fn registry_address(&self) -> Result> { - let reg = self.light_dispatch.client.engine().params().registrar; - if reg == Default::default() { - Ok(None) - } else { - Ok(Some(reg)) - } - } - - fn rpc_settings(&self) -> Result { - Ok(RpcSettings { - enabled: self.settings.rpc_enabled, - interface: self.settings.rpc_interface.clone(), - port: self.settings.rpc_port as u64, - }) - } - - fn default_extra_data(&self) -> Result { - Ok(Bytes::new(version_data())) - } - - fn gas_price_histogram(&self) -> BoxFuture { - Box::new( - self.light_dispatch - .gas_price_corpus() - .and_then(|corpus| corpus.histogram(10).ok_or_else(errors::not_enough_data)) - .map(Into::into), - ) - } - - fn unsigned_transactions_count(&self) -> Result { - match self.signer { - None => Err(errors::signer_disabled()), - Some(ref signer) => Ok(signer.len()), - } - } - - fn generate_secret_phrase(&self) -> Result { - Ok(random_phrase(12)) - } - - fn phrase_to_address(&self, phrase: String) -> Result { - Ok(Brain::new(phrase) - .generate() - .expect("Brain::generate always returns Ok; qed") - .address()) - } - - fn list_accounts( - &self, - _: u64, - _: Option, - _: Option, - ) -> Result>> { - Err(errors::light_unimplemented(None)) - } - - fn list_storage_keys( - &self, - _: H160, - _: u64, - _: Option, - _: Option, - ) -> Result>> { - Err(errors::light_unimplemented(None)) - } - - fn encrypt_message(&self, key: H512, phrase: Bytes) -> Result { - ecies::encrypt(&key, &DEFAULT_MAC, &phrase.0) - .map_err(errors::encryption) - .map(Into::into) - } - - fn pending_transactions(&self, limit: Option) -> Result> { - let txq = self.light_dispatch.transaction_queue.read(); - let chain_info = self.light_dispatch.client.chain_info(); - Ok(txq - .ready_transactions( - chain_info.best_block_number, - chain_info.best_block_timestamp, - ) - .into_iter() - .take(limit.unwrap_or_else(usize::max_value)) - .map(Transaction::from_pending) - .collect::>()) - } - - fn all_transactions(&self) -> Result> { - Ok(light_all_transactions(&self.light_dispatch) - .map(Transaction::from_pending) - .collect()) - } - - fn all_transaction_hashes(&self) -> Result> { - Ok(light_all_transactions(&self.light_dispatch) - .map(|tx| tx.transaction.hash()) - .collect()) - } - - fn future_transactions(&self) -> Result> { - let txq = self.light_dispatch.transaction_queue.read(); - let chain_info = self.light_dispatch.client.chain_info(); - Ok(txq - .future_transactions( - chain_info.best_block_number, - chain_info.best_block_timestamp, - ) - .into_iter() - .map(Transaction::from_pending) - .collect::>()) - } - - fn pending_transactions_stats(&self) -> Result> { - let stats = self.light_dispatch.sync.transactions_stats(); - Ok(stats - .into_iter() - .map(|(hash, stats)| (hash, stats.into())) - .collect()) - } - - fn local_transactions(&self) -> Result> { - let mut map = BTreeMap::new(); - let chain_info = self.light_dispatch.client.chain_info(); - let (best_num, best_tm) = ( - chain_info.best_block_number, - chain_info.best_block_timestamp, - ); - let txq = self.light_dispatch.transaction_queue.read(); - - for pending in txq.ready_transactions(best_num, best_tm) { - map.insert(pending.hash(), LocalTransactionStatus::Pending); - } - - for future in txq.future_transactions(best_num, best_tm) { - map.insert(future.hash(), LocalTransactionStatus::Future); - } - - // TODO: other types? - - Ok(map) - } - - fn ws_url(&self) -> Result { - helpers::to_url(&self.ws_address).ok_or_else(errors::ws_disabled) - } - - fn next_nonce(&self, address: H160) -> BoxFuture { - Box::new(self.light_dispatch.next_nonce(address)) - } - - fn mode(&self) -> Result { - Err(errors::light_unimplemented(None)) - } - - fn chain(&self) -> Result { - Ok(self.settings.chain.clone()) - } - - fn enode(&self) -> Result { - self.light_dispatch - .sync - .enode() - .ok_or_else(errors::network_disabled) - } - - fn consensus_capability(&self) -> Result { - Err(errors::light_unimplemented(None)) - } - - fn version_info(&self) -> Result { - Ok(UpdaterVersionInfo::this().into()) - } - - fn releases_info(&self) -> Result> { - Err(errors::light_unimplemented(None)) - } - - fn chain_status(&self) -> Result { - let chain_info = self.light_dispatch.client.chain_info(); - - let gap = chain_info - .ancient_block_number - .map(|x| U256::from(x + 1)) - .and_then(|first| { - chain_info - .first_block_number - .map(|last| (first, U256::from(last))) - }); - - Ok(ChainStatus { block_gap: gap }) - } - - fn node_kind(&self) -> Result<::v1::types::NodeKind> { - use v1::types::{Availability, Capability, NodeKind}; - - Ok(NodeKind { - availability: Availability::Personal, - capability: Capability::Light, - }) - } - - fn block_header(&self, number: Option) -> BoxFuture { - use types::encoded; - - let engine = self.light_dispatch.client.engine().clone(); - let from_encoded = move |encoded: encoded::Header| { - let header = encoded.decode().map_err(errors::decode)?; - let extra_info = engine.extra_info(&header); - Ok(RichHeader { - inner: Header { - hash: Some(header.hash()), - size: Some(encoded.rlp().as_raw().len().into()), - parent_hash: *header.parent_hash(), - uncles_hash: *header.uncles_hash(), - author: *header.author(), - miner: *header.author(), - state_root: *header.state_root(), - transactions_root: *header.transactions_root(), - receipts_root: *header.receipts_root(), - number: Some(header.number().into()), - gas_used: *header.gas_used(), - gas_limit: *header.gas_limit(), - logs_bloom: *header.log_bloom(), - timestamp: header.timestamp().into(), - difficulty: *header.difficulty(), - seal_fields: header.seal().iter().cloned().map(Into::into).collect(), - extra_data: Bytes::new(header.extra_data().clone()), - }, - extra_info, - }) - }; - let id = number.unwrap_or_default().to_block_id(); - Box::new(self.fetcher().header(id).and_then(from_encoded)) - } - - fn block_receipts(&self, number: Option) -> BoxFuture> { - let id = number.unwrap_or_default().to_block_id(); - Box::new( - self.fetcher() - .receipts(id) - .and_then(|receipts| Ok(receipts.into_iter().map(Into::into).collect())), - ) - } - - fn ipfs_cid(&self, content: Bytes) -> Result { - ipfs::cid(content) - } - - fn call(&self, _requests: Vec, _block: Option) -> Result> { - Err(errors::light_unimplemented(None)) - } - - fn submit_work_detail(&self, _nonce: H64, _pow_hash: H256, _mix_hash: H256) -> Result { - Err(errors::light_unimplemented(None)) - } - - fn status(&self) -> Result<()> { - let has_peers = - self.settings.is_dev_chain || self.light_dispatch.sync.peer_numbers().connected > 0; - let is_importing = (*self.light_dispatch.sync).is_major_importing(); - - if has_peers && !is_importing { - Ok(()) - } else { - Err(errors::status_error(has_peers)) - } - } - - fn logs_no_tx_hash(&self, filter: Filter) -> BoxFuture> { - let filter = match filter.try_into() { - Ok(value) => value, - Err(err) => return Box::new(future::err(err)), - }; - Box::new(self.fetcher().logs_no_tx_hash(filter)) as BoxFuture<_> - } - - fn verify_signature( - &self, - is_prefixed: bool, - message: Bytes, - r: H256, - s: H256, - v: U64, - ) -> Result { - verify_signature( - is_prefixed, - message, - r, - s, - v, - self.light_dispatch.client.signing_chain_id(), - ) - } -} diff --git a/rpc/src/v1/impls/light/parity_set.rs b/rpc/src/v1/impls/light/parity_set.rs deleted file mode 100644 index bd49739dd..000000000 --- a/rpc/src/v1/impls/light/parity_set.rs +++ /dev/null @@ -1,154 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Parity-specific rpc interface for operations altering the settings. -//! Implementation for light client. - -use std::{io, sync::Arc}; - -use ethereum_types::{H160, H256, U256}; -use fetch::{self, Fetch}; -use hash::keccak_buffer; -use light::client::LightChainClient; -use sync::ManageNetwork; - -use jsonrpc_core::{futures::Future, BoxFuture, Result}; -use v1::{ - helpers::errors, - traits::ParitySet, - types::{Bytes, ReleaseInfo, Transaction}, -}; - -/// Parity-specific rpc interface for operations altering the settings. -pub struct ParitySetClient { - client: Arc, - net: Arc, - fetch: F, -} - -impl ParitySetClient { - /// Creates new `ParitySetClient` with given `Fetch`. - pub fn new(client: Arc, net: Arc, fetch: F) -> Self { - ParitySetClient { client, net, fetch } - } -} - -impl ParitySet for ParitySetClient { - fn set_min_gas_price(&self, _gas_price: U256) -> Result { - Err(errors::light_unimplemented(None)) - } - - fn set_gas_floor_target(&self, _target: U256) -> Result { - Err(errors::light_unimplemented(None)) - } - - fn set_gas_ceil_target(&self, _target: U256) -> Result { - Err(errors::light_unimplemented(None)) - } - - fn set_extra_data(&self, _extra_data: Bytes) -> Result { - Err(errors::light_unimplemented(None)) - } - - fn set_author(&self, _author: H160) -> Result { - Err(errors::light_unimplemented(None)) - } - - fn set_engine_signer_secret(&self, _secret: H256) -> Result { - Err(errors::light_unimplemented(None)) - } - - fn set_transactions_limit(&self, _limit: usize) -> Result { - Err(errors::light_unimplemented(None)) - } - - fn set_tx_gas_limit(&self, _limit: U256) -> Result { - Err(errors::light_unimplemented(None)) - } - - fn add_reserved_peer(&self, peer: String) -> Result { - match self.net.add_reserved_peer(peer) { - Ok(()) => Ok(true), - Err(e) => Err(errors::invalid_params("Peer address", e)), - } - } - - fn remove_reserved_peer(&self, peer: String) -> Result { - match self.net.remove_reserved_peer(peer) { - Ok(()) => Ok(true), - Err(e) => Err(errors::invalid_params("Peer address", e)), - } - } - - fn drop_non_reserved_peers(&self) -> Result { - self.net.deny_unreserved_peers(); - Ok(true) - } - - fn accept_non_reserved_peers(&self) -> Result { - self.net.accept_unreserved_peers(); - Ok(true) - } - - fn start_network(&self) -> Result { - self.net.start_network(); - Ok(true) - } - - fn stop_network(&self) -> Result { - self.net.stop_network(); - Ok(true) - } - - fn set_mode(&self, _mode: String) -> Result { - Err(errors::light_unimplemented(None)) - } - - fn set_spec_name(&self, spec_name: String) -> Result { - self.client - .set_spec_name(spec_name) - .map(|_| true) - .map_err(|()| errors::cannot_restart()) - } - - fn hash_content(&self, url: String) -> BoxFuture { - let future = self - .fetch - .get(&url, Default::default()) - .then(move |result| { - result - .map_err(errors::fetch) - .and_then(move |response| { - let mut reader = io::BufReader::new(fetch::BodyReader::new(response)); - keccak_buffer(&mut reader).map_err(errors::fetch) - }) - .map(Into::into) - }); - Box::new(future) - } - - fn upgrade_ready(&self) -> Result> { - Err(errors::light_unimplemented(None)) - } - - fn execute_upgrade(&self) -> Result { - Err(errors::light_unimplemented(None)) - } - - fn remove_transaction(&self, _hash: H256) -> Result> { - Err(errors::light_unimplemented(None)) - } -} diff --git a/rpc/src/v1/impls/light/trace.rs b/rpc/src/v1/impls/light/trace.rs deleted file mode 100644 index 072827881..000000000 --- a/rpc/src/v1/impls/light/trace.rs +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright 2015-2019 Parity Technologies (UK) Ltd. -// This file is part of Parity Ethereum. - -// Parity Ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Parity Ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Parity Ethereum. If not, see . - -//! Traces api implementation. - -use ethereum_types::H256; -use jsonrpc_core::Result; -use v1::{ - helpers::errors, - traits::Traces, - types::{ - BlockNumber, Bytes, CallRequest, Index, LocalizedTrace, TraceFilter, TraceOptions, - TraceResults, TraceResultsWithTransactionHash, - }, - Metadata, -}; - -/// Traces api implementation. -// TODO: all calling APIs should be possible w. proved remote TX execution. -pub struct TracesClient; - -impl Traces for TracesClient { - type Metadata = Metadata; - - fn filter(&self, _filter: TraceFilter) -> Result>> { - Err(errors::light_unimplemented(None)) - } - - fn block_traces(&self, _block_number: BlockNumber) -> Result>> { - Err(errors::light_unimplemented(None)) - } - - fn transaction_traces(&self, _transaction_hash: H256) -> Result>> { - Err(errors::light_unimplemented(None)) - } - - fn trace( - &self, - _transaction_hash: H256, - _address: Vec, - ) -> Result> { - Err(errors::light_unimplemented(None)) - } - - fn call( - &self, - _request: CallRequest, - _flags: TraceOptions, - _block: Option, - ) -> Result { - Err(errors::light_unimplemented(None)) - } - - fn call_many( - &self, - _request: Vec<(CallRequest, TraceOptions)>, - _block: Option, - ) -> Result> { - Err(errors::light_unimplemented(None)) - } - - fn raw_transaction( - &self, - _raw_transaction: Bytes, - _flags: TraceOptions, - _block: Option, - ) -> Result { - Err(errors::light_unimplemented(None)) - } - - fn replay_transaction( - &self, - _transaction_hash: H256, - _flags: TraceOptions, - ) -> Result { - Err(errors::light_unimplemented(None)) - } - - fn replay_block_transactions( - &self, - _block_number: BlockNumber, - _flags: TraceOptions, - ) -> Result> { - Err(errors::light_unimplemented(None)) - } -} diff --git a/rpc/src/v1/impls/mod.rs b/rpc/src/v1/impls/mod.rs index 74ad836d7..cea888543 100644 --- a/rpc/src/v1/impls/mod.rs +++ b/rpc/src/v1/impls/mod.rs @@ -37,8 +37,6 @@ mod signing_unsafe; mod traces; mod web3; -pub mod light; - #[cfg(any(test, feature = "accounts"))] pub use self::parity_accounts::ParityAccountsClient; #[cfg(any(test, feature = "accounts"))] diff --git a/rpc/src/v1/impls/parity.rs b/rpc/src/v1/impls/parity.rs index b4213bae2..aafb2fbcc 100644 --- a/rpc/src/v1/impls/parity.rs +++ b/rpc/src/v1/impls/parity.rs @@ -46,8 +46,8 @@ use v1::{ traits::Parity, types::{ block_number_to_id, BlockNumber, Bytes, CallRequest, ChainStatus, ConsensusCapability, - Filter, Histogram, LocalTransactionStatus, Log, OperationsInfo, Peers, Receipt, - RecoveredAccount, RichHeader, RpcSettings, Transaction, TransactionStats, VersionInfo, + Histogram, LocalTransactionStatus, OperationsInfo, Peers, Receipt, RecoveredAccount, + RichHeader, RpcSettings, Transaction, TransactionStats, VersionInfo, }, }; use Host; @@ -493,12 +493,6 @@ where } } - fn logs_no_tx_hash(&self, filter: Filter) -> BoxFuture> { - use v1::impls::eth::base_logs; - // only specific impl for lightclient - base_logs(&*self.client, &*self.miner, filter) - } - fn verify_signature( &self, is_prefixed: bool, diff --git a/rpc/src/v1/tests/helpers/sync_provider.rs b/rpc/src/v1/tests/helpers/sync_provider.rs index ce46a4769..afdfeec5d 100644 --- a/rpc/src/v1/tests/helpers/sync_provider.rs +++ b/rpc/src/v1/tests/helpers/sync_provider.rs @@ -85,7 +85,6 @@ impl SyncProvider for TestSyncProvider { difficulty: Some(40.into()), head: 50.into(), }), - pip_info: None, }, PeerInfo { id: None, @@ -98,7 +97,6 @@ impl SyncProvider for TestSyncProvider { difficulty: None, head: 60.into(), }), - pip_info: None, }, ] } diff --git a/rpc/src/v1/tests/mocked/parity.rs b/rpc/src/v1/tests/mocked/parity.rs index 88a137bbb..223ba43b4 100644 --- a/rpc/src/v1/tests/mocked/parity.rs +++ b/rpc/src/v1/tests/mocked/parity.rs @@ -260,7 +260,7 @@ fn rpc_parity_net_peers() { let io = deps.default_client(); let request = r#"{"jsonrpc": "2.0", "method": "parity_netPeers", "params":[], "id": 1}"#; - let response = r#"{"jsonrpc":"2.0","result":{"active":0,"connected":120,"max":50,"peers":[{"caps":["eth/62","eth/63"],"id":"node1","name":{"ParityClient":{"can_handle_large_requests":true,"compiler":"rustc","identity":"1","name":"Parity-Ethereum","os":"linux","semver":"2.4.0"}},"network":{"localAddress":"127.0.0.1:8888","remoteAddress":"127.0.0.1:7777"},"protocols":{"eth":{"difficulty":"0x28","head":"0000000000000000000000000000000000000000000000000000000000000032","version":62},"pip":null}},{"caps":["eth/63","eth/64"],"id":null,"name":{"ParityClient":{"can_handle_large_requests":true,"compiler":"rustc","identity":"2","name":"Parity-Ethereum","os":"linux","semver":"2.4.0"}},"network":{"localAddress":"127.0.0.1:3333","remoteAddress":"Handshake"},"protocols":{"eth":{"difficulty":null,"head":"000000000000000000000000000000000000000000000000000000000000003c","version":64},"pip":null}}]},"id":1}"#; + let response = r#"{"jsonrpc":"2.0","result":{"active":0,"connected":120,"max":50,"peers":[{"caps":["eth/62","eth/63"],"id":"node1","name":{"ParityClient":{"can_handle_large_requests":true,"compiler":"rustc","identity":"1","name":"Parity-Ethereum","os":"linux","semver":"2.4.0"}},"network":{"localAddress":"127.0.0.1:8888","remoteAddress":"127.0.0.1:7777"},"protocols":{"eth":{"difficulty":"0x28","head":"0000000000000000000000000000000000000000000000000000000000000032","version":62}}},{"caps":["eth/63","eth/64"],"id":null,"name":{"ParityClient":{"can_handle_large_requests":true,"compiler":"rustc","identity":"2","name":"Parity-Ethereum","os":"linux","semver":"2.4.0"}},"network":{"localAddress":"127.0.0.1:3333","remoteAddress":"Handshake"},"protocols":{"eth":{"difficulty":null,"head":"000000000000000000000000000000000000000000000000000000000000003c","version":64}}}]},"id":1}"#; assert_eq!(io.handle_request_sync(request), Some(response.to_owned())); } diff --git a/rpc/src/v1/traits/parity.rs b/rpc/src/v1/traits/parity.rs index e2e9d47a8..ca06f0029 100644 --- a/rpc/src/v1/traits/parity.rs +++ b/rpc/src/v1/traits/parity.rs @@ -22,8 +22,8 @@ use ethereum_types::{H160, H256, H512, H64, U256, U64}; use jsonrpc_core::{BoxFuture, Result}; use jsonrpc_derive::rpc; use v1::types::{ - BlockNumber, Bytes, CallRequest, ChainStatus, ConsensusCapability, Filter, Histogram, - LocalTransactionStatus, Log, OperationsInfo, Peers, Receipt, RecoveredAccount, RichHeader, + BlockNumber, Bytes, CallRequest, ChainStatus, ConsensusCapability, Histogram, + LocalTransactionStatus, OperationsInfo, Peers, Receipt, RecoveredAccount, RichHeader, RpcSettings, Transaction, TransactionStats, VersionInfo, }; @@ -242,9 +242,4 @@ pub trait Parity { _: H256, _: U64, ) -> Result; - - /// Returns logs matching given filter object. - /// Is allowed to skip filling transaction hash for faster query. - #[rpc(name = "parity_getLogsNoTransactionHash")] - fn logs_no_tx_hash(&self, _: Filter) -> BoxFuture>; } diff --git a/rpc/src/v1/types/block_number.rs b/rpc/src/v1/types/block_number.rs index 220fa8336..ef7145bf2 100644 --- a/rpc/src/v1/types/block_number.rs +++ b/rpc/src/v1/types/block_number.rs @@ -59,31 +59,6 @@ impl BlockNumber { } } -/// BlockNumber to BlockId conversion -/// -/// NOTE use only for light clients. -pub trait LightBlockNumber { - /// Convert block number to block id. - fn to_block_id(self) -> BlockId; -} - -impl LightBlockNumber for BlockNumber { - fn to_block_id(self) -> BlockId { - // NOTE Here we treat `Pending` as `Latest`. - // Since light clients don't produce pending blocks - // (they don't have state) we can safely fallback to `Latest`. - match self { - BlockNumber::Num(n) => BlockId::Number(n), - BlockNumber::Earliest => BlockId::Earliest, - BlockNumber::Latest => BlockId::Latest, - BlockNumber::Pending => { - warn!("`Pending` is deprecated and may be removed in future versions. Falling back to `Latest`"); - BlockId::Latest - } - } - } -} - impl Serialize for BlockNumber { fn serialize(&self, serializer: S) -> Result where diff --git a/rpc/src/v1/types/mod.rs b/rpc/src/v1/types/mod.rs index 3df1de8ce..55cb8d270 100644 --- a/rpc/src/v1/types/mod.rs +++ b/rpc/src/v1/types/mod.rs @@ -51,7 +51,7 @@ pub mod pubsub; pub use self::{ account_info::{AccountInfo, EthAccount, ExtAccountInfo, RecoveredAccount, StorageProof}, block::{Block, BlockTransactions, Header, Rich, RichBlock, RichHeader}, - block_number::{block_number_to_id, BlockNumber, LightBlockNumber}, + block_number::{block_number_to_id, BlockNumber}, bytes::Bytes, call_request::CallRequest, confirmations::{ @@ -74,7 +74,7 @@ pub use self::{ secretstore::EncryptedDocumentKey, sync::{ ChainStatus, EthProtocolInfo, PeerInfo, PeerNetworkInfo, PeerProtocolsInfo, Peers, - PipProtocolInfo, SyncInfo, SyncStatus, TransactionStats, + SyncInfo, SyncStatus, TransactionStats, }, trace::{LocalizedTrace, TraceResults, TraceResultsWithTransactionHash}, trace_filter::TraceFilter, diff --git a/rpc/src/v1/types/node_kind.rs b/rpc/src/v1/types/node_kind.rs index c7800b4d7..ae94491b4 100644 --- a/rpc/src/v1/types/node_kind.rs +++ b/rpc/src/v1/types/node_kind.rs @@ -42,9 +42,6 @@ pub enum Availability { pub enum Capability { /// A full node stores the full state and fully enacts incoming blocks. Full, - /// A light node does a minimal header sync and fetches data as needed - /// from the network. - Light, } #[cfg(test)] @@ -78,16 +75,10 @@ mod tests { #[test] fn capability() { - let light = r#""light""#; let full = r#""full""#; - assert_eq!(serde_json::to_string(&Capability::Light).unwrap(), light); assert_eq!(serde_json::to_string(&Capability::Full).unwrap(), full); - assert_eq!( - serde_json::from_str::(light).unwrap(), - Capability::Light - ); assert_eq!( serde_json::from_str::(full).unwrap(), Capability::Full diff --git a/rpc/src/v1/types/sync.rs b/rpc/src/v1/types/sync.rs index 753b04ee6..dca320595 100644 --- a/rpc/src/v1/types/sync.rs +++ b/rpc/src/v1/types/sync.rs @@ -80,8 +80,6 @@ pub struct PeerNetworkInfo { pub struct PeerProtocolsInfo { /// Ethereum protocol information pub eth: Option, - /// PIP protocol information. - pub pip: Option, } /// Peer Ethereum protocol information @@ -105,27 +103,6 @@ impl From for EthProtocolInfo { } } -/// Peer PIP protocol information -#[derive(Default, Debug, Serialize)] -pub struct PipProtocolInfo { - /// Negotiated PIP protocol version - pub version: u32, - /// Peer total difficulty - pub difficulty: U256, - /// SHA3 of peer best block hash - pub head: String, -} - -impl From for PipProtocolInfo { - fn from(info: sync::PipProtocolInfo) -> Self { - PipProtocolInfo { - version: info.version, - difficulty: info.difficulty, - head: format!("{:x}", info.head), - } - } -} - /// Sync status #[derive(Debug, PartialEq)] pub enum SyncStatus { @@ -169,7 +146,6 @@ impl From for PeerInfo { }, protocols: PeerProtocolsInfo { eth: p.eth_info.map(Into::into), - pip: p.pip_info.map(Into::into), }, } } diff --git a/util/dir/src/lib.rs b/util/dir/src/lib.rs index 012d4863e..36b33b40e 100644 --- a/util/dir/src/lib.rs +++ b/util/dir/src/lib.rs @@ -39,15 +39,9 @@ pub use home::home_dir; /// Platform-specific chains path for standard client - Windows only #[cfg(target_os = "windows")] pub const CHAINS_PATH: &str = "$LOCAL/chains"; -/// Platform-specific chains path for light client - Windows only -#[cfg(target_os = "windows")] -pub const CHAINS_PATH_LIGHT: &str = "$LOCAL/chains_light"; /// Platform-specific chains path for standard client #[cfg(not(target_os = "windows"))] pub const CHAINS_PATH: &str = "$BASE/chains"; -/// Platform-specific chains path for light client -#[cfg(not(target_os = "windows"))] -pub const CHAINS_PATH_LIGHT: &str = "$BASE/chains_light"; /// Platform-specific cache path - Windows only #[cfg(target_os = "windows")] diff --git a/util/fetch/src/client.rs b/util/fetch/src/client.rs index 7f277034e..cdd00981f 100644 --- a/util/fetch/src/client.rs +++ b/util/fetch/src/client.rs @@ -732,26 +732,6 @@ mod test { runtime.block_on(future).unwrap(); } - #[test] - fn it_should_fetch_in_light_mode() { - let server = TestServer::run(); - let client = Client::new(1).unwrap(); - let mut runtime = Runtime::new().unwrap(); - - let future = client - .get(&format!("http://{}?123", server.addr()), Abort::default()) - .map(|resp| { - assert!(resp.is_success()); - resp - }) - .map(|resp| resp.concat2()) - .flatten() - .map(|body| assert_eq!(&body[..], b"123")) - .map_err(|err| panic!(err)); - - runtime.block_on(future).unwrap(); - } - #[test] fn it_should_timeout() { let server = TestServer::run();