diff --git a/Cargo.lock b/Cargo.lock index fbc45e6a..effcffd5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -352,6 +352,7 @@ version = "0.0.0" dependencies = [ "bitcoin-consensus-encoding 0.2.0", "built", + "cfg-if", "chrono", "ciborium", "clap", @@ -377,12 +378,12 @@ name = "dash-num" version = "0.0.0" dependencies = [ "bitcoin-consensus-encoding 0.2.0", + "dash-dev", "dash-types", "divan", "hex-literal", "rstest", "serde", - "serde_json", ] [[package]] @@ -425,6 +426,7 @@ dependencies = [ "bitcoin-consensus-encoding 0.2.0", "blst", "cfg-if", + "dash-dev", "dash-num", "dash-types", "divan", @@ -435,7 +437,6 @@ dependencies = [ "rayon", "rstest", "serde", - "serde_json", "sha2", "zeroize", ] @@ -445,14 +446,12 @@ name = "dash-pow" version = "0.0.0" dependencies = [ "cfg-if", + "dash-dev", "dash-num", "divan", - "hex-conservative", "hex-literal", "rayon", "rstest", - "serde", - "serde_json", ] [[package]] @@ -476,7 +475,6 @@ dependencies = [ "libm", "rstest", "serde", - "serde_json", ] [[package]] @@ -499,7 +497,6 @@ dependencies = [ "dash-types-marker", "hex-conservative", "serde", - "serde_json", ] [[package]] diff --git a/contrib/codeql/lib/policy.qll b/contrib/codeql/lib/policy.qll index 30ff2567..e2466fb3 100644 --- a/contrib/codeql/lib/policy.qll +++ b/contrib/codeql/lib/policy.qll @@ -75,6 +75,13 @@ predicate isOpaqueType(TypeItem t) { isSingleTupleField(t) } +/** Holds if `t` is a compile-time marker type (empty enum, zero-sized). */ +predicate isMarkerType(TypeItem t) { + t instanceof Enum and + t.(Enum).hasVariantList() and + count(t.(Enum).getVariantList().getAVariant()) = 0 +} + /** Materialises (TypeItem, fieldTypeName, crate) for join efficiency. */ pragma[nomagic] private predicate fieldTypeInCrate(TypeItem t, string fieldTypeName, string crate) { @@ -117,6 +124,9 @@ predicate isCodecType(TypeItem t) { t.getName().getText() = "ArrayBuf" } +/** Holds if `name` is a trait whose methods must have a body in exactly one layer. */ +predicate isMutexTrait(string name) { name = "BlsScheme" } + /** Holds if `t` lives in a crate with no public API. */ predicate isPrivateCrate(TypeItem t) { exists(string path | @@ -223,6 +233,8 @@ predicate isSerdeExempt(TypeItem t) { or isOpaqueType(t) or + isMarkerType(t) + or hasLifetime(t) or // Single-field wrappers without PartialEq are exempt. diff --git a/contrib/codeql/lib/traits.qll b/contrib/codeql/lib/traits.qll index 0e6bb370..7b958cc4 100644 --- a/contrib/codeql/lib/traits.qll +++ b/contrib/codeql/lib/traits.qll @@ -32,6 +32,25 @@ string implSelfName(Impl i) { result = i.getSelfTy().(PathTypeRepr).getPath().getSegment().getIdentifier().getText() } +/** Gets a method defined in `i`'s associated item list. */ +Function implMethod(Impl i) { result = i.getAssocItemList().getAnAssocItem() } + +/** + * Holds if `over` in `i` overrides the default body that `decl` supplies + * in trait `t`, i.e. both layers define the same method name and the + * trait's declaration carries a body of its own. + */ +predicate overridesDefault(Trait t, Function decl, Impl i, Function over) { + decl = traitMethod(t) and + decl.hasBody() and + implTraitName(i) = t.getName().getText() and + over = implMethod(i) and + over.getName().getText() = decl.getName().getText() +} + +/** Gets a method declared directly in `t`'s associated item list. */ +Function traitMethod(Trait t) { result = t.getAssocItemList().getAnAssocItem() } + /** Holds if `t` has a derived impl for `traitName`. */ predicate hasDerivedImpl(TypeItem t, string traitName) { exists(MacroItems expansion, Impl i | diff --git a/contrib/codeql/trait.ql b/contrib/codeql/trait.ql new file mode 100644 index 00000000..52c9d9de --- /dev/null +++ b/contrib/codeql/trait.ql @@ -0,0 +1,29 @@ +/** + * Copyright (c) 2026-present, The Dash Core developers + * SPDX-License-Identifier: MIT + * See the accompanying file LICENSE or https://opensource.org/license/MIT + * + * @id base-sdk/trait-rules + * @name Trait definition and implementation rules + * @description Enforces that a method body lives in one layer only. + * @kind problem + * @precision very-high + * @problem.severity error + * @tags correctness maintainability + */ + +import lib.fmt +import lib.policy +import lib.traits +import rust + +from Function over, string message +where + exists(Trait t, Function decl, Impl i | + isMutexTrait(t.getName().getText()) and + overridesDefault(t, decl, i, over) and + message = + fmt("{0} overrides the default {1} provides for {2}", implSelfName(i), t.getName().getText(), + fmt("{0}()", decl.getName().getText())) + ) +select over, message diff --git a/contrib/semgrep/cargo.yml b/contrib/semgrep/cargo.yml new file mode 100644 index 00000000..74f03eb5 --- /dev/null +++ b/contrib/semgrep/cargo.yml @@ -0,0 +1,9 @@ +rules: + - id: cargo-serde-json-restrict + message: "serde-json{,5} dependency unexpected outside dash-dev crate" + severity: ERROR + languages: [generic] + paths: + include: [/pkgs/**/Cargo.toml] + exclude: [/pkgs/dev/Cargo.toml] + pattern-regex: \b(serde[-_]json|json5)\b diff --git a/pkgs/dev/Cargo.toml b/pkgs/dev/Cargo.toml index ada8b852..8bb9a89b 100644 --- a/pkgs/dev/Cargo.toml +++ b/pkgs/dev/Cargo.toml @@ -46,6 +46,7 @@ xxhash-rust = { version = "0.8", features = ["xxh32"] } bitcoin-consensus-encoding = { version = "0.2", default-features = false, features = [ "alloc", ] } +cfg-if = "1" dash-num = { version = "0.0.0", path = "../num", optional = true } dash-params = { version = "0.0.0", path = "../params", optional = true } dash-pow = { version = "0.0.0", path = "../pow", optional = true } diff --git a/pkgs/dev/src/corpus.rs b/pkgs/dev/src/corpus.rs index dc164d10..a6175224 100644 --- a/pkgs/dev/src/corpus.rs +++ b/pkgs/dev/src/corpus.rs @@ -8,75 +8,42 @@ use crate::prelude::*; -/// A typed corpus entry pairing raw wire hex with expected details. -#[derive(Clone, Debug, Eq, Hash, PartialEq)] -#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] -pub struct CorpusEntry { - pub raw: String, - pub details: T, -} +use hex_conservative::FromHex; +use serde::{de::DeserializeOwned, Deserialize, Serialize}; -/// Reads a corpus JSON5 file from disk. -/// -/// The file lives at `/corpus/.json5`. -/// -/// # Panics -/// -/// Panics if the file cannot be read. -#[cfg(feature = "std")] -pub fn load_corpus_file(manifest_dir: &str, file: &str) -> String { - let path = format!("{manifest_dir}/corpus/{file}.json5"); - std::fs::read_to_string(&path).unwrap_or_else(|e| panic!("{path}: {e}")) -} +use core::fmt; +use std::fs; -/// Reads a corpus section from JSON5 text. +/// Verifies the serde round-trip for a set of corpus entries. /// -/// Parses `text` as `{ "section": { "label": { raw, details } } }`, -/// hex-decodes `raw` to bytes, calls `check(raw_bytes, &details, -/// label)` for each entry, and returns all details keyed by label. +/// Writes `items` to JSON via [`write_corpus`], reads them back through +/// [`Corpus::entries`] (no-op check), and asserts equality. /// /// # Panics /// -/// Panics if the section is missing, empty, or the check function -/// panics. -#[cfg(all(feature = "std", feature = "serde"))] -pub fn read_corpus( - text: &str, - section: &str, - mut check: impl FnMut(&[u8], &T, &str), -) -> BTreeMap { - use hex_conservative::FromHex; - - let mut outer: BTreeMap = - json5::from_str(text).unwrap_or_else(|e| panic!("{section}: parse: {e}")); - let section_val = outer.remove(section).unwrap_or_else(|| panic!("{section}: not found")); - let entries: BTreeMap> = - serde_json::from_value(section_val).unwrap_or_else(|e| panic!("{section}: {e}")); - assert!(!entries.is_empty(), "{section}: empty"); - - let mut result = BTreeMap::new(); - for (label, entry) in entries { - let bytes = Vec::::from_hex(&entry.raw).unwrap_or_else(|e| panic!("{section}/{label}: hex: {e}")); - check(&bytes, &entry.details, &label); - result.insert(label, entry.details); - } - result +/// Panics on round-trip mismatch. +pub fn assert_serde_rt(section: &str, items: &BTreeMap) +where + T: DeserializeOwned + Serialize + PartialEq + fmt::Debug, +{ + let json = write_corpus(section, items); + let rt = Corpus::parse(section, &json).entries::(section, |_, _, _| {}); + assert_eq!(*items, rt, "{section}: serde round-trip"); } /// Serializes corpus entries to JSON in `{ raw, details }` format, /// wrapped in a section key. /// /// Produces `{ "section": { "label": { "raw": "", "details": T } } }` -/// so the output can be read back by [`read_corpus`] with a no-op +/// so the output can be read back by [`Corpus::entries`] with a no-op /// check function to verify the serde round-trip. /// /// # Panics /// /// Panics if serialization fails. -#[cfg(all(feature = "std", feature = "serde"))] -pub fn write_corpus(section: &str, entries: &BTreeMap) -> String { - #[derive(::serde::Serialize)] - struct Raw<'a, T: ::serde::Serialize> { +pub(crate) fn write_corpus(section: &str, entries: &BTreeMap) -> String { + #[derive(Serialize)] + struct Raw<'a, T: Serialize> { raw: &'a str, details: &'a T, } @@ -88,20 +55,96 @@ pub fn write_corpus(section: &str, entries: &BTreeMap { + pub raw: String, + pub details: T, +} + +/// A parsed corpus file, opened once and queried by section. /// -/// Panics on round-trip mismatch. -#[cfg(all(feature = "std", feature = "serde"))] -pub fn assert_serde_rt(section: &str, items: &BTreeMap) -where - T: ::serde::de::DeserializeOwned + ::serde::Serialize + PartialEq + core::fmt::Debug, -{ - let json = write_corpus(section, items); - let rt = read_corpus::(&json, section, |_, _, _| {}); - assert_eq!(*items, rt, "{section}: serde round-trip"); +/// Serves both operation KATs via [`Corpus::vectors`] (array sections) and +/// wire round-trip corpora via [`Corpus::entries`] (raw/details sections). +#[derive(Clone, Debug)] +pub struct Corpus { + name: String, + root: serde_json::Value, +} + +impl Corpus { + /// Parses corpus text (JSON5) under a diagnostic `name`. + /// + /// # Panics + /// + /// Panics if the text is not valid JSON5. + pub(crate) fn parse(name: &str, text: &str) -> Self { + let root = json5::from_str(text).unwrap_or_else(|e| panic!("{name}: parse: {e}")); + Self { + name: name.into(), + root, + } + } + + /// Consumes the handle and returns the parsed root value. + pub fn into_value(self) -> serde_json::Value { + self.root + } + + /// Returns a named `{ label: { raw, details } }` section. + /// + /// Hex-decodes each `raw`, calls `check(raw_bytes, &details, label)`, and + /// returns the details keyed by label. + /// + /// # Panics + /// + /// Panics if the section is missing, empty, or `check` panics. + pub fn entries( + &self, + section: &str, + mut check: impl FnMut(&[u8], &T, &str), + ) -> BTreeMap { + let val = self + .root + .get(section) + .unwrap_or_else(|| panic!("{}: missing section '{section}'", self.name)); + let entries: BTreeMap> = + serde_json::from_value(val.clone()).unwrap_or_else(|e| panic!("{}: section '{section}': {e}", self.name)); + assert!(!entries.is_empty(), "{}: section '{section}' empty", self.name); + + let mut result = BTreeMap::new(); + for (label, entry) in entries { + let bytes = Vec::::from_hex(&entry.raw).unwrap_or_else(|e| panic!("{section}/{label}: hex: {e}")); + check(&bytes, &entry.details, &label); + result.insert(label, entry.details); + } + result + } + + /// Opens and parses `/corpus/.json5`. + /// + /// # Panics + /// + /// Panics if the file cannot be read or parsed. + pub fn open(manifest_dir: &str, name: &str) -> Self { + let path = format!("{manifest_dir}/corpus/{name}.json5"); + let text = fs::read_to_string(&path).unwrap_or_else(|e| panic!("cannot read {path}: {e}")); + Self::parse(name, &text) + } + + /// Returns a named array section as typed vectors: `{ section: [T, ...] }`. + /// + /// # Panics + /// + /// Panics if the section is missing, empty, or is not an array of `T`. + pub fn vectors(&self, section: &str) -> Vec { + let val = self + .root + .get(section) + .unwrap_or_else(|| panic!("{}: missing section '{section}'", self.name)); + let out: Vec = + serde_json::from_value(val.clone()).unwrap_or_else(|e| panic!("{}: section '{section}': {e}", self.name)); + assert!(!out.is_empty(), "{}: section '{section}' empty", self.name); + out + } } diff --git a/pkgs/dev/src/encode.rs b/pkgs/dev/src/encode.rs new file mode 100644 index 00000000..b284fa11 --- /dev/null +++ b/pkgs/dev/src/encode.rs @@ -0,0 +1,29 @@ +// +// Copyright (c) 2026-present, The Dash Core developers +// SPDX-License-Identifier: MIT +// See the accompanying file LICENSE or https://opensource.org/license/MIT +// + +//! Encoding/decoding logic. + +use crate::prelude::*; + +use hex_conservative::FromHex; + +/// Decodes a base-16 string into a fixed `N`-byte array. +/// +/// # Panics +/// +/// Panics on a non-hex digit or unless the input decodes to exactly `N` bytes. +pub fn arr_from_hex(s: &str) -> [u8; N] { + <[u8; N]>::from_hex(s).unwrap_or_else(|e| panic!("bad hex: {e}")) +} + +/// Decodes a base-16 string into a byte vector. +/// +/// # Panics +/// +/// Panics if `s` has odd length or contains a non-hex digit. +pub fn vec_from_hex(s: &str) -> Vec { + Vec::::from_hex(s).unwrap_or_else(|e| panic!("bad hex: {e}")) +} diff --git a/pkgs/dev/src/json.rs b/pkgs/dev/src/json.rs new file mode 100644 index 00000000..ecfc5037 --- /dev/null +++ b/pkgs/dev/src/json.rs @@ -0,0 +1,60 @@ +// +// Copyright (c) 2026-present, The Dash Core developers +// SPDX-License-Identifier: MIT +// See the accompanying file LICENSE or https://opensource.org/license/MIT +// + +//! JSON helpers. + +use crate::prelude::*; + +use serde::{de::DeserializeOwned, Serialize}; + +use core::fmt; + +/// Asserts that `value` survives a JSON serialize/deserialize round-trip. +/// +/// # Panics +/// +/// Panics on serialization failure or round-trip mismatch. +pub fn assert_json_rt(value: &T) +where + T: Serialize + DeserializeOwned + PartialEq + fmt::Debug, +{ + let restored: T = from_json(&to_json(value)); + assert_eq!(restored, *value, "json round-trip"); +} + +/// Deserializes a JSON string into `T`. +/// +/// # Panics +/// +/// Panics if parsing fails. +pub fn from_json(s: &str) -> T { + serde_json::from_str(s).unwrap_or_else(|e| panic!("from_json: {e}")) +} + +/// Deserializes a JSON byte slice into `T`. +/// +/// # Panics +/// +/// Panics if parsing fails. +pub fn from_json_slice(bytes: &[u8]) -> T { + serde_json::from_slice(bytes).unwrap_or_else(|e| panic!("from_json_slice: {e}")) +} + +/// Returns `true` if `s` fails to deserialize as `T`. +/// +/// For negative parse tests, where naming the error type adds no value. +pub fn json_rejects(s: &str) -> bool { + serde_json::from_str::(s).is_err() +} + +/// Serializes `value` to a compact JSON string. +/// +/// # Panics +/// +/// Panics if serialization fails. +pub fn to_json(value: &T) -> String { + serde_json::to_string(value).unwrap_or_else(|e| panic!("to_json: {e}")) +} diff --git a/pkgs/dev/src/lib.rs b/pkgs/dev/src/lib.rs index d63e3e46..115d1e91 100644 --- a/pkgs/dev/src/lib.rs +++ b/pkgs/dev/src/lib.rs @@ -13,14 +13,25 @@ extern crate alloc; #[cfg(feature = "std")] extern crate std; -mod corpus; +mod encode; mod lambda; #[allow(unused_imports, reason = "ergonomic shim, exports may be unused")] mod prelude; -#[cfg(feature = "std")] -pub use corpus::load_corpus_file; -pub use corpus::CorpusEntry; -#[cfg(all(feature = "std", feature = "serde"))] -pub use corpus::{assert_serde_rt, read_corpus, write_corpus}; +pub use encode::{arr_from_hex, vec_from_hex}; pub use lambda::{check_sptx, check_tx, check_wire}; + +cfg_if::cfg_if! { + if #[cfg(all(feature = "std", feature = "serde"))] { + #[doc(hidden)] + mod __private { + pub use serde_json::Value; + } + mod corpus; + mod json; + + pub use __private::Value; + pub use corpus::{assert_serde_rt, Corpus}; + pub use json::{assert_json_rt, from_json, from_json_slice, json_rejects, to_json}; + } +} diff --git a/pkgs/num/Cargo.toml b/pkgs/num/Cargo.toml index a6f0f1e0..a474646e 100644 --- a/pkgs/num/Cargo.toml +++ b/pkgs/num/Cargo.toml @@ -19,11 +19,11 @@ serde = { version = "1", default-features = false, features = [ ], optional = true } [dev-dependencies] +dash-dev = { version = "0.0.0", path = "../dev", features = ["full"] } divan = "0.1" hex-literal = "0.4" rstest = "0.25" serde = { version = "1", features = ["derive"] } -serde_json = "1" [[test]] name = "hash" diff --git a/pkgs/num/tests/serde.rs b/pkgs/num/tests/serde.rs index c0454acd..fbf4287c 100644 --- a/pkgs/num/tests/serde.rs +++ b/pkgs/num/tests/serde.rs @@ -6,33 +6,26 @@ //! Serde roundtrip tests for all types. -#![expect(clippy::unwrap_used, reason = "test code")] - +use dash_dev::{assert_json_rt, from_json, json_rejects, to_json}; use dash_num::{Arith256, CompactTarget, Hash160, Hash256, Hash512}; use hex_literal::hex; -fn json_roundtrip(val: &T) { - let json = serde_json::to_string(val).unwrap(); - let decoded: T = serde_json::from_str(&json).unwrap(); - assert_eq!(&decoded, val); -} - #[test] fn hash256_json_roundtrip() { let bytes = hex!("9c524adbcf5611122b29125e5d35d2d22281aab533f00832d556b1f9eae51d7d"); let h = Hash256::from_bytes(bytes); - json_roundtrip(&h); + assert_json_rt(&h); - json_roundtrip(&Hash256::ZERO); - json_roundtrip(&Hash256::from_bytes([0xff; 32])); + assert_json_rt(&Hash256::ZERO); + assert_json_rt(&Hash256::from_bytes([0xff; 32])); } #[test] fn hash160_json_roundtrip() { let bytes = hex!("0102030405060708090a0b0c0d0e0f1011121314"); let h = Hash160::from_bytes(bytes); - json_roundtrip(&h); - json_roundtrip(&Hash160::ZERO); + assert_json_rt(&h); + assert_json_rt(&Hash160::ZERO); } #[test] @@ -41,16 +34,16 @@ fn hash512_json_roundtrip() { bytes[0] = 0x42; bytes[63] = 0xff; let h = Hash512::from_bytes(bytes); - json_roundtrip(&h); - json_roundtrip(&Hash512::ZERO); + assert_json_rt(&h); + assert_json_rt(&Hash512::ZERO); } #[test] fn arith256_json_roundtrip() { let check = |uint: Arith256, hex: &str| { let json = format!("\"{}\"", hex); - assert_eq!(serde_json::to_string(&uint).unwrap(), json); - assert_eq!(serde_json::from_str::(&json).unwrap(), uint); + assert_eq!(to_json(&uint), json); + assert_eq!(from_json::(&json), uint); }; check( @@ -70,22 +63,22 @@ fn arith256_json_roundtrip() { #[test] fn arith256_json_invalid() { // Invalid char - assert!( - serde_json::from_str::("\"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffg\"").is_err() - ); + assert!(json_rejects::( + "\"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffg\"" + )); // Odd length - assert!( - serde_json::from_str::("\"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffx\"").is_err() - ); + assert!(json_rejects::( + "\"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffx\"" + )); // Too long - assert!( - serde_json::from_str::("\"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"").is_err() - ); + assert!(json_rejects::( + "\"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"" + )); } #[test] fn compact_target_json_roundtrip() { - json_roundtrip(&CompactTarget(0)); - json_roundtrip(&CompactTarget(0x1d00ffff)); - json_roundtrip(&CompactTarget(0x0412_3456)); + assert_json_rt(&CompactTarget(0)); + assert_json_rt(&CompactTarget(0x1d00ffff)); + assert_json_rt(&CompactTarget(0x0412_3456)); } diff --git a/pkgs/p2p_core/src/msg/headers2.rs b/pkgs/p2p_core/src/msg/headers2.rs index d7428aa5..14a37b0f 100644 --- a/pkgs/p2p_core/src/msg/headers2.rs +++ b/pkgs/p2p_core/src/msg/headers2.rs @@ -71,20 +71,20 @@ hash_impl!(Headers2); mod tests { use super::*; - use dash_dev::{assert_serde_rt, check_wire, load_corpus_file, read_corpus}; + use dash_dev::{assert_serde_rt, check_wire, Corpus}; use rstest::rstest; #[rstest] fn corpus_getheaders2() { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), "headers2"); - let items = read_corpus::(&text, "getheaders2", check_wire); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "headers2"); + let items = corpus.entries::("getheaders2", check_wire); assert_serde_rt("getheaders2", &items); } #[rstest] fn corpus_headers2() { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), "headers2"); - let items = read_corpus::(&text, "headers2", check_wire); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "headers2"); + let items = corpus.entries::("headers2", check_wire); assert_serde_rt("headers2", &items); } } diff --git a/pkgs/p2p_core/src/msg/inv.rs b/pkgs/p2p_core/src/msg/inv.rs index a6b54802..4623f8a7 100644 --- a/pkgs/p2p_core/src/msg/inv.rs +++ b/pkgs/p2p_core/src/msg/inv.rs @@ -46,13 +46,13 @@ codec_p2p!(NotFound { inventory }); mod tests { use super::*; - use dash_dev::{assert_serde_rt, check_wire, load_corpus_file, read_corpus}; + use dash_dev::{assert_serde_rt, check_wire, Corpus}; use rstest::rstest; #[rstest] fn corpus_inv() { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), "inv"); - let items = read_corpus::(&text, "inv", check_wire); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "inv"); + let items = corpus.entries::("inv", check_wire); assert_serde_rt("inv", &items); } } diff --git a/pkgs/p2p_core/src/msg/ping.rs b/pkgs/p2p_core/src/msg/ping.rs index 796f6a9a..be9ef7ae 100644 --- a/pkgs/p2p_core/src/msg/ping.rs +++ b/pkgs/p2p_core/src/msg/ping.rs @@ -36,20 +36,20 @@ codec_p2p!(Pong { nonce }); mod tests { use super::*; - use dash_dev::{assert_serde_rt, check_wire, load_corpus_file, read_corpus}; + use dash_dev::{assert_serde_rt, check_wire, Corpus}; use rstest::rstest; #[rstest] fn corpus_ping() { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), "ping"); - let items = read_corpus::(&text, "ping", check_wire); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "ping"); + let items = corpus.entries::("ping", check_wire); assert_serde_rt("ping", &items); } #[rstest] fn corpus_pong() { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), "ping"); - let items = read_corpus::(&text, "pong", check_wire); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "ping"); + let items = corpus.entries::("pong", check_wire); assert_serde_rt("pong", &items); } } diff --git a/pkgs/p2p_core/src/msg/version.rs b/pkgs/p2p_core/src/msg/version.rs index 07b828bb..4bb52032 100644 --- a/pkgs/p2p_core/src/msg/version.rs +++ b/pkgs/p2p_core/src/msg/version.rs @@ -85,13 +85,13 @@ codec_p2p!(Version { mod tests { use super::*; - use dash_dev::{assert_serde_rt, check_wire, load_corpus_file, read_corpus}; + use dash_dev::{assert_serde_rt, check_wire, Corpus}; use rstest::rstest; #[rstest] fn corpus_version() { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), "version"); - let items = read_corpus::(&text, "version", check_wire); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "version"); + let items = corpus.entries::("version", check_wire); assert_serde_rt("version", &items); } } diff --git a/pkgs/p2p_core/src/primitives/mn_list.rs b/pkgs/p2p_core/src/primitives/mn_list.rs index 8af8138e..45d65766 100644 --- a/pkgs/p2p_core/src/primitives/mn_list.rs +++ b/pkgs/p2p_core/src/primitives/mn_list.rs @@ -231,13 +231,13 @@ codec_p2p!(MnListDiff { payload }); mod tests { use super::*; - use dash_dev::{assert_serde_rt, check_wire, load_corpus_file, read_corpus}; + use dash_dev::{assert_serde_rt, check_wire, Corpus}; use rstest::rstest; #[rstest] fn corpus_mnlistdiff() { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), "mnlistdiff"); - let items = read_corpus::(&text, "mnlistdiff", check_wire); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "mnlistdiff"); + let items = corpus.entries::("mnlistdiff", check_wire); assert_serde_rt("mnlistdiff", &items); } } diff --git a/pkgs/pkc/Cargo.toml b/pkgs/pkc/Cargo.toml index bb8c56f3..5eb27e4f 100644 --- a/pkgs/pkc/Cargo.toml +++ b/pkgs/pkc/Cargo.toml @@ -20,6 +20,7 @@ k256 = { version = "0.13", default-features = false, features = [ ], optional = true } rand_core = { version = "0.6", default-features = false } rayon = { version = "1", optional = true } +rstest = { version = "0.25", optional = true } serde = { version = "1", default-features = false, features = [ "alloc", "derive", @@ -28,12 +29,11 @@ sha2 = { version = "0.10", default-features = false, optional = true } zeroize = { version = "1", default-features = false, features = ["derive"] } [dev-dependencies] +dash-dev = { version = "0.0.0", path = "../dev", features = ["full"] } divan = "0.1" hex-conservative = "0.3" rand_core = { version = "0.6", features = ["getrandom"] } -rstest = "0.25" serde = { version = "1", features = ["derive"] } -serde_json = "1" [features] default = [] @@ -41,7 +41,8 @@ std = ["dep:rayon", "rand_core/getrandom", "dash-types/std"] bls = ["dep:blst", "dep:sha2"] k256 = ["dep:k256"] serde = ["dep:serde", "dash-types/serde"] -full = ["k256", "bls", "serde", "std"] +full = ["k256", "bls", "serde", "std", "tests"] +tests = ["std", "dep:rstest"] [lints] workspace = true @@ -56,64 +57,64 @@ harness = false [[test]] name = "bls_chia_aggregate" -required-features = ["bls"] +required-features = ["bls", "tests"] [[test]] name = "bls_chia_dh" -required-features = ["bls"] +required-features = ["bls", "tests"] [[test]] name = "bls_chia_keygen" -required-features = ["bls"] +required-features = ["bls", "tests"] [[test]] name = "bls_chia_llmq" -required-features = ["bls"] +required-features = ["bls", "tests"] [[test]] name = "bls_chia_ser" -required-features = ["bls"] +required-features = ["bls", "tests"] [[test]] name = "bls_chia_sign" -required-features = ["bls"] +required-features = ["bls", "tests"] [[test]] name = "bls_chia_threshold" -required-features = ["bls"] +required-features = ["bls", "tests"] [[test]] name = "bls_ietf_aggregate" -required-features = ["bls"] +required-features = ["bls", "tests"] [[test]] name = "bls_ietf_dh" -required-features = ["bls"] +required-features = ["bls", "tests"] [[test]] name = "bls_ietf_keygen" -required-features = ["bls"] +required-features = ["bls", "tests"] [[test]] name = "bls_ietf_llmq" -required-features = ["bls"] +required-features = ["bls", "tests"] [[test]] name = "bls_ietf_pop" -required-features = ["bls"] +required-features = ["bls", "tests"] [[test]] name = "bls_ietf_sign" -required-features = ["bls"] +required-features = ["bls", "tests"] [[test]] name = "bls_ietf_threshold" -required-features = ["bls"] +required-features = ["bls", "tests"] [[test]] name = "k256_keygen" -required-features = ["k256"] +required-features = ["k256", "tests"] [[test]] name = "k256_sign" -required-features = ["k256"] +required-features = ["k256", "tests"] diff --git a/pkgs/pkc/bench/bls_chia.rs b/pkgs/pkc/bench/bls_chia.rs index 78a46d58..83a49d28 100644 --- a/pkgs/pkc/bench/bls_chia.rs +++ b/pkgs/pkc/bench/bls_chia.rs @@ -6,8 +6,8 @@ //! Benchmarks for the legacy BLS module. -use super::common::bls::*; - +use common::*; +use dash_pkc::bls::tests as common; use dash_pkc::bls_chia::{aggregate_pk, aggregate_sig, verify_aggregates, PublicKey, SecretKey, Signature}; /// Single signature creation (legacy hash-to-G2). @@ -127,7 +127,7 @@ fn split_threshold(bencher: divan::Bencher, n: usize) { use dash_pkc::bls_chia::threshold; let sk = SecretKey::generate(&test_ikm(1)).unwrap(); let t = n.div_ceil(2); - let ids = super::common::sequential_ids(n); + let ids = sequential_ids(n); bencher .counter(divan::counter::ItemsCount::new(n)) .bench(|| threshold::split_sk(&sk, t, &ids, &mut rand_core::OsRng)); @@ -139,7 +139,7 @@ fn recover_threshold(bencher: divan::Bencher, t: usize) { use dash_pkc::bls_chia::threshold; let sk = SecretKey::generate(&test_ikm(1)).unwrap(); let n = t * 2; - let ids = super::common::sequential_ids(n); + let ids = sequential_ids(n); let shares = threshold::split_sk(&sk, t, &ids, &mut rand_core::OsRng).unwrap(); let msg = test_msg(42); let sig_shares: Vec<_> = shares.iter().map(|s| s.sign(&msg)).collect(); diff --git a/pkgs/pkc/bench/bls_ietf.rs b/pkgs/pkc/bench/bls_ietf.rs index 7b2d582a..ae02e334 100644 --- a/pkgs/pkc/bench/bls_ietf.rs +++ b/pkgs/pkc/bench/bls_ietf.rs @@ -6,8 +6,8 @@ //! Benchmarks for the IETF BLS module. -use super::common::bls::*; - +use common::*; +use dash_pkc::bls::tests as common; use dash_pkc::bls_ietf::{ aggregate_pk, aggregate_sig, fast_verify_aggregates, verify_aggregates, PublicKey, SecretKey, Signature, }; @@ -147,7 +147,7 @@ fn split_threshold(bencher: divan::Bencher, n: usize) { use dash_pkc::bls_ietf::threshold; let sk = SecretKey::generate(&test_ikm(1)).unwrap(); let t = n.div_ceil(2); - let ids = super::common::sequential_ids(n); + let ids = sequential_ids(n); bencher .counter(divan::counter::ItemsCount::new(n)) .bench(|| threshold::split_sk(&sk, t, &ids, &mut rand_core::OsRng)); @@ -159,7 +159,7 @@ fn recover_threshold(bencher: divan::Bencher, t: usize) { use dash_pkc::bls_ietf::threshold; let sk = SecretKey::generate(&test_ikm(1)).unwrap(); let n = t * 2; - let ids = super::common::sequential_ids(n); + let ids = sequential_ids(n); let shares = threshold::split_sk(&sk, t, &ids, &mut rand_core::OsRng).unwrap(); let msg = test_msg(42); let sig_shares: Vec<_> = shares.iter().map(|s| s.sign(&msg)).collect(); diff --git a/pkgs/pkc/bench/main.rs b/pkgs/pkc/bench/main.rs index 5697676d..f854c54b 100644 --- a/pkgs/pkc/bench/main.rs +++ b/pkgs/pkc/bench/main.rs @@ -13,8 +13,6 @@ mod bls_chia; #[cfg(feature = "bls")] mod bls_ietf; -#[path = "../tests/common/mod.rs"] -mod common; #[cfg(feature = "k256")] mod k256; diff --git a/pkgs/pkc/corpus/bls_aggregate.json b/pkgs/pkc/corpus/bls_aggregate.json5 similarity index 100% rename from pkgs/pkc/corpus/bls_aggregate.json rename to pkgs/pkc/corpus/bls_aggregate.json5 diff --git a/pkgs/pkc/corpus/bls_chia_aggregate.json b/pkgs/pkc/corpus/bls_chia_aggregate.json5 similarity index 100% rename from pkgs/pkc/corpus/bls_chia_aggregate.json rename to pkgs/pkc/corpus/bls_chia_aggregate.json5 diff --git a/pkgs/pkc/corpus/bls_chia_dh.json b/pkgs/pkc/corpus/bls_chia_dh.json5 similarity index 100% rename from pkgs/pkc/corpus/bls_chia_dh.json rename to pkgs/pkc/corpus/bls_chia_dh.json5 diff --git a/pkgs/pkc/corpus/bls_chia_hash_internals.json b/pkgs/pkc/corpus/bls_chia_hash_internals.json5 similarity index 100% rename from pkgs/pkc/corpus/bls_chia_hash_internals.json rename to pkgs/pkc/corpus/bls_chia_hash_internals.json5 diff --git a/pkgs/pkc/corpus/bls_chia_keygen.json b/pkgs/pkc/corpus/bls_chia_keygen.json5 similarity index 100% rename from pkgs/pkc/corpus/bls_chia_keygen.json rename to pkgs/pkc/corpus/bls_chia_keygen.json5 diff --git a/pkgs/pkc/corpus/bls_chia_llmq_100.json b/pkgs/pkc/corpus/bls_chia_llmq_100.json5 similarity index 100% rename from pkgs/pkc/corpus/bls_chia_llmq_100.json rename to pkgs/pkc/corpus/bls_chia_llmq_100.json5 diff --git a/pkgs/pkc/corpus/bls_chia_secure_aggregate.json b/pkgs/pkc/corpus/bls_chia_secure_aggregate.json5 similarity index 100% rename from pkgs/pkc/corpus/bls_chia_secure_aggregate.json rename to pkgs/pkc/corpus/bls_chia_secure_aggregate.json5 diff --git a/pkgs/pkc/corpus/bls_chia_ser_internals.json b/pkgs/pkc/corpus/bls_chia_ser_internals.json5 similarity index 100% rename from pkgs/pkc/corpus/bls_chia_ser_internals.json rename to pkgs/pkc/corpus/bls_chia_ser_internals.json5 diff --git a/pkgs/pkc/corpus/bls_chia_sign.json b/pkgs/pkc/corpus/bls_chia_sign.json5 similarity index 100% rename from pkgs/pkc/corpus/bls_chia_sign.json rename to pkgs/pkc/corpus/bls_chia_sign.json5 diff --git a/pkgs/pkc/corpus/bls_chia_threshold.json b/pkgs/pkc/corpus/bls_chia_threshold.json5 similarity index 100% rename from pkgs/pkc/corpus/bls_chia_threshold.json rename to pkgs/pkc/corpus/bls_chia_threshold.json5 diff --git a/pkgs/pkc/corpus/bls_ietf_aggregate.json b/pkgs/pkc/corpus/bls_ietf_aggregate.json5 similarity index 100% rename from pkgs/pkc/corpus/bls_ietf_aggregate.json rename to pkgs/pkc/corpus/bls_ietf_aggregate.json5 diff --git a/pkgs/pkc/corpus/bls_ietf_dh.json b/pkgs/pkc/corpus/bls_ietf_dh.json5 similarity index 100% rename from pkgs/pkc/corpus/bls_ietf_dh.json rename to pkgs/pkc/corpus/bls_ietf_dh.json5 diff --git a/pkgs/pkc/corpus/bls_ietf_keygen.json b/pkgs/pkc/corpus/bls_ietf_keygen.json5 similarity index 100% rename from pkgs/pkc/corpus/bls_ietf_keygen.json rename to pkgs/pkc/corpus/bls_ietf_keygen.json5 diff --git a/pkgs/pkc/corpus/bls_ietf_llmq_100.json b/pkgs/pkc/corpus/bls_ietf_llmq_100.json5 similarity index 100% rename from pkgs/pkc/corpus/bls_ietf_llmq_100.json rename to pkgs/pkc/corpus/bls_ietf_llmq_100.json5 diff --git a/pkgs/pkc/corpus/bls_ietf_secure_aggregate.json b/pkgs/pkc/corpus/bls_ietf_secure_aggregate.json5 similarity index 100% rename from pkgs/pkc/corpus/bls_ietf_secure_aggregate.json rename to pkgs/pkc/corpus/bls_ietf_secure_aggregate.json5 diff --git a/pkgs/pkc/corpus/bls_ietf_sign.json b/pkgs/pkc/corpus/bls_ietf_sign.json5 similarity index 100% rename from pkgs/pkc/corpus/bls_ietf_sign.json rename to pkgs/pkc/corpus/bls_ietf_sign.json5 diff --git a/pkgs/pkc/corpus/bls_ietf_threshold.json b/pkgs/pkc/corpus/bls_ietf_threshold.json5 similarity index 100% rename from pkgs/pkc/corpus/bls_ietf_threshold.json rename to pkgs/pkc/corpus/bls_ietf_threshold.json5 diff --git a/pkgs/pkc/corpus/k256_keygen.json b/pkgs/pkc/corpus/k256_keygen.json5 similarity index 100% rename from pkgs/pkc/corpus/k256_keygen.json rename to pkgs/pkc/corpus/k256_keygen.json5 diff --git a/pkgs/pkc/corpus/k256_sign.json b/pkgs/pkc/corpus/k256_sign.json5 similarity index 100% rename from pkgs/pkc/corpus/k256_sign.json rename to pkgs/pkc/corpus/k256_sign.json5 diff --git a/pkgs/pkc/src/bls/blst_ffi.rs b/pkgs/pkc/src/bls/blst_ffi.rs index 96fd0136..8ae3e352 100644 --- a/pkgs/pkc/src/bls/blst_ffi.rs +++ b/pkgs/pkc/src/bls/blst_ffi.rs @@ -396,11 +396,6 @@ impl G1Affine { out } - /// Scalar multiplication via the projective representation. - pub(crate) fn mul_scalar(&self, scalar: &[u8], nbits: usize) -> Self { - self.to_projective().mul_scalar(scalar, nbits).to_affine() - } - /// Uncompress a 48-byte G1 point. /// /// # Errors diff --git a/pkgs/pkc/src/bls/chia_h2c.rs b/pkgs/pkc/src/bls/chia_h2c.rs index b081e2f0..9d07de3c 100644 --- a/pkgs/pkc/src/bls/chia_h2c.rs +++ b/pkgs/pkc/src/bls/chia_h2c.rs @@ -272,3 +272,59 @@ fn curve_rhs(x: &Fp2) -> Fp2 { let x3 = x2 * *x; x3 + b } + +#[cfg(all(test, feature = "tests"))] +mod tests { + use super::*; + use crate::prelude::*; + + use dash_dev::{arr_from_hex, Corpus}; + use hex_conservative::DisplayHex; + use serde::Deserialize; + + #[derive(Deserialize)] + struct HashVector { + msg: String, + t00_hash: String, + t01_hash: String, + t10_hash: String, + t11_hash: String, + t00_fp: String, + t01_fp: String, + t10_fp: String, + t11_fp: String, + } + + #[test] + fn hash_to_fp_matches_vectors() { + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_hash_internals"); + let vecs: Vec = corpus.vectors("hash_internals"); + + for v in &vecs { + let msg: [u8; 32] = arr_from_hex(&v.msg); + for (tag, hash_hex, fp_hex) in [ + (b"G2_0_c0", &v.t00_hash, &v.t00_fp), + (b"G2_0_c1", &v.t01_hash, &v.t01_fp), + (b"G2_1_c0", &v.t10_hash, &v.t10_fp), + (b"G2_1_c1", &v.t11_hash, &v.t11_fp), + ] { + // SHA-256(msg || tag || 0) || SHA-256(msg || tag || 1). + let mut input = [0u8; 40]; + input[..32].copy_from_slice(&msg); + input[32..39].copy_from_slice(tag); + input[39] = 0; + let h0 = Sha256::digest(input); + input[39] = 1; + let h1 = Sha256::digest(input); + let mut concat = [0u8; 64]; + concat[..32].copy_from_slice(&h0); + concat[32..].copy_from_slice(&h1); + assert_eq!(concat.to_lower_hex_string(), *hash_hex); + + // reduce the 64-byte hash mod p to a field element. + let out = <[u8; 48]>::from(hash_to_fp(&msg, tag)); + assert_eq!(out.to_lower_hex_string(), *fp_hex); + } + } + } +} diff --git a/pkgs/pkc/src/bls/mod.rs b/pkgs/pkc/src/bls/mod.rs index ce1ba6a0..cc72b485 100644 --- a/pkgs/pkc/src/bls/mod.rs +++ b/pkgs/pkc/src/bls/mod.rs @@ -15,5 +15,16 @@ cfg_if::cfg_if! { #[expect(unsafe_code, reason = "blst C FFI")] pub(crate) mod blst_ffi; pub(crate) mod chia_h2c; + pub(crate) mod scheme_ops; + mod scheme_chia; + mod scheme_ietf; + mod schemes; + + pub(crate) use schemes::{BlsScChia, BlsScIetf}; + + #[cfg(feature = "tests")] + #[doc(hidden)] + #[expect(clippy::unwrap_used, reason = "test support code")] + pub mod tests; } } diff --git a/pkgs/pkc/src/bls/scheme_chia.rs b/pkgs/pkc/src/bls/scheme_chia.rs new file mode 100644 index 00000000..806459ab --- /dev/null +++ b/pkgs/pkc/src/bls/scheme_chia.rs @@ -0,0 +1,359 @@ +// +// Copyright (c) 2026-present, The Dash Core developers +// SPDX-License-Identifier: MIT +// See the accompanying file LICENSE or https://opensource.org/license/MIT +// + +//! Legacy BLS scheme implementation. + +use super::blst_ffi::{self, G1Affine, G2Affine, Point, G1, G2}; +use super::chia_h2c; +use super::error::BlsError; +use super::scheme_ops::BlsScheme; +use super::schemes::BlsScChia; + +use blst::min_pk; +use hex_literal::hex; +use zeroize::Zeroize; + +/// y.c1 > (p-1)/2, matching the legacy sign convention. +fn y_c1_is_larger(y_c1: &[u8]) -> bool { + const HALF_P: [u8; 48] = hex!( + "0d0088f5 1cbff34d 258dd3db 21a5d66b" + "b23ba5c2 79c2895f b3986950 7b587b12" + "0f55ffff 58a9ffff dcff7fff ffffd555" + ); + + y_c1.len() >= 48 && y_c1[..48] > HALF_P[..] +} + +impl BlsScheme for BlsScChia { + type InnerSk = blst::blst_scalar; + type InnerPk = G1Affine; + type InnerSig = G2Affine; + type Msg = [u8; 32]; + + /// Derive via draft-03 keygen, then range-check the scalar. + fn generate(ikm: &[u8]) -> Result { + let sk = min_pk::SecretKey::key_gen_v3(ikm, &[]).map_err(|_| BlsError::InvalidSecretKey)?; + let mut bytes = sk.to_bytes(); + let res = Self::sk_from_bytes(&bytes); + bytes.zeroize(); + res + } + + /// Interpret the bytes as a scalar and reject out-of-range values. + fn sk_from_bytes(b: &[u8; 32]) -> Result { + let scalar = blst_ffi::scalar_from_bendian(b); + if blst_ffi::sk_check(&scalar) { + Ok(scalar) + } else { + Err(BlsError::InvalidSecretKey) + } + } + + /// Emit the scalar as big-endian bytes. + fn sk_to_bytes(sk: &Self::InnerSk) -> [u8; 32] { + blst_ffi::bendian_from_scalar(sk) + } + + /// Multiply the G1 generator by the secret scalar. + fn derive_pk(sk: &Self::InnerSk) -> Self::InnerPk { + blst_ffi::sk_to_pk2_in_g1(sk) + } + + /// Wipe the scalar limbs. + fn zeroize_sk(sk: &mut Self::InnerSk) { + sk.b.zeroize(); + } + + /// Decode a G1 point from the legacy 48-byte format. + /// + /// No prime-order subgroup check is performed on the legacy path, for + /// backwards compatibility: checking here would reject keys the legacy + /// format accepts. + fn pk_from_bytes(b: &[u8; 48]) -> Result { + // Reject the all-zero encoding and the infinity marker. + if b.iter().all(|&byte| byte == 0) || b[0] & 0xc0 == 0xc0 { + return Err(BlsError::InvalidPublicKey); + } + + let sign = (b[0] >> 7) & 1; + let mut ietf = *b; + // Only bit 7 is the legacy sign flag; normalize away stray high bits + // rather than rejecting, to stay bit-for-bit compatible on the wire. + ietf[0] &= 0x1f; + ietf[0] |= 0x80; // compression + if sign == 1 { + ietf[0] |= 0x20; // sign + } + + G1Affine::uncompress(&ietf).map_err(|_| BlsError::InvalidPublicKey) + } + + /// Encode a G1 point in the legacy 48-byte format. + fn pk_to_bytes(pk: &Self::InnerPk) -> [u8; 48] { + let ietf = pk.compress(); + + if ietf[0] & 0xc0 == 0xc0 { + return ietf; // infinity is the same in both formats + } + + // IETF: bit 7 = compression, bit 5 = sign. + // Legacy: bit 7 = sign, no compression indicator. + let sign = (ietf[0] >> 5) & 1; + let mut legacy = ietf; + legacy[0] &= 0x1f; + if sign == 1 { + legacy[0] |= 0x80; + } + legacy + } + + /// The legacy public key is already an affine G1 point. + fn pk_to_g1(pk: &Self::InnerPk) -> Result { + Ok(pk.to_projective()) + } + + /// The legacy public key is an affine G1 point; no re-validation. + fn g1_to_pk(point: G1) -> Result { + Ok(point.to_affine()) + } + + /// Decode the legacy encoding through `pk_from_bytes`, which rejects the + /// infinity marker and the all-zero buffer before the point is weighted. + fn secure_agg_point(pk_bytes: &[u8; 48]) -> Result { + Self::pk_to_g1(&Self::pk_from_bytes(pk_bytes)?) + } + + /// Decode a G2 point from the legacy 96-byte format. + /// + /// No prime-order subgroup check is performed on the legacy path, for + /// backwards compatibility: checking here would reject signatures the + /// legacy format accepts. + fn sig_from_bytes(b: &[u8; 96]) -> Result { + // Reject the all-zero encoding and the infinity marker. + if b.iter().all(|&byte| byte == 0) || b[0] & 0xc0 == 0xc0 { + return Err(BlsError::InvalidSignature); + } + + let sign = (b[0] >> 7) & 1; + + // After swizzling, byte 48 (top of `x.c1`) sits in the IETF flag byte, + // where blst reads flags instead of range-checking, so reject its stray + // high bits here: the reference feeds them to relic as `x >= p`. + if b[48] & 0xe0 != 0 { + return Err(BlsError::InvalidSignature); + } + + let mut x_c0 = [0u8; 48]; + x_c0.copy_from_slice(&b[..48]); + // Clear only the sign bit: stray bits 5-6 make `x.c0 >= p`, rejected by + // the decompression range check like any out-of-range coordinate. + x_c0[0] &= 0x7f; + let x_c1 = &b[48..96]; + + let mut ietf = [0u8; 96]; + ietf[..48].copy_from_slice(x_c1); + ietf[48..96].copy_from_slice(&x_c0); + + ietf[0] |= 0x80; // compression + + // Decompress with sign=0, then negate y if needed. + let out = G2Affine::uncompress(&ietf).map_err(|_| BlsError::InvalidSignature)?; + + let decompressed_sign = y_c1_is_larger(&out.y().c1_bendian()); + if (sign == 1) != decompressed_sign { + return Ok(G2Affine::from_coords(out.x(), -out.y())); + } + + Ok(out) + } + + /// Encode a G2 point in the legacy 96-byte format. + /// + /// Uses the uncompressed 192-byte intermediate to sidestep sign-bit + /// convention differences: blst lays out `[x.c1, x.c0, y.c1, y.c0]`, + /// legacy `[x.c0, x.c1]` with the sign at byte\[0\] bit 7. + fn sig_to_bytes(sig: &Self::InnerSig) -> [u8; 96] { + let uncomp = sig.serialize(); + + if uncomp.iter().all(|&b| b == 0) { + let mut out = [0u8; 96]; + out[0] = 0xc0; + return out; + } + + let x_c1 = &uncomp[0..48]; + let x_c0 = &uncomp[48..96]; + let y_c1 = &uncomp[96..144]; + + let sign = y_c1_is_larger(y_c1); + + let mut legacy = [0u8; 96]; + legacy[..48].copy_from_slice(x_c0); + legacy[48..96].copy_from_slice(x_c1); + if sign { + legacy[0] |= 0x80; + } + legacy + } + + /// The legacy signature is already an affine G2 point. + fn sig_to_g2(sig: &Self::InnerSig) -> Result { + Ok(sig.to_projective()) + } + + /// The legacy signature is an affine G2 point; no re-validation. + fn g2_to_sig(point: G2) -> Result { + Ok(point.to_affine()) + } + + /// Hash the message to G2 and multiply by the secret scalar (no DST). + fn sign(sk: &Self::InnerSk, msg: &Self::Msg) -> Self::InnerSig { + let h = chia_h2c::hash_to_g2(msg); + // blst_sign_pk_in_g1 applies IETF transformations, do manually instead. + h.mul_scalar(&sk.b, blst_ffi::FR_BITS).to_affine() + } + + /// Check the pairing e(sig, G1) == e(H(msg), pk). + fn verify(sig: &Self::InnerSig, msg: &Self::Msg, pk: &Self::InnerPk) -> Result<(), BlsError> { + let h_proj = chia_h2c::hash_to_g2(msg); + if blst_ffi::pairings_equal_with_g1_generator(sig, &h_proj, pk) { + Ok(()) + } else { + Err(BlsError::VerifyFailed) + } + } + + /// Sum the public keys in G1. + fn aggregate_pk(pks: &[&Self::InnerPk]) -> Result { + if pks.is_empty() { + return Err(BlsError::EmptyAggregation); + } + let mut acc = pks[0].to_projective(); + for pk in &pks[1..] { + acc = acc + pk.to_projective(); + } + Ok(acc.to_affine()) + } + + /// Sum the signatures in G2. + fn aggregate_sig(sigs: &[&Self::InnerSig]) -> Result { + if sigs.is_empty() { + return Err(BlsError::EmptyAggregation); + } + let mut acc = sigs[0].to_projective(); + for sig in &sigs[1..] { + acc = acc + sig.to_projective(); + } + Ok(acc.to_affine()) + } + + /// Sum the keys, then verify once against the shared message. + fn fast_verify_aggregates(sig: &Self::InnerSig, msg: &Self::Msg, pks: &[&Self::InnerPk]) -> Result<(), BlsError> { + if pks.is_empty() { + return Err(BlsError::EmptyAggregation); + } + let agg_pk = Self::aggregate_pk(pks)?; + Self::verify(sig, msg, &agg_pk) + } +} + +#[cfg(all(test, feature = "tests"))] +#[expect(clippy::unwrap_used, reason = "test code")] +mod tests { + use super::*; + use crate::bls::tests::{MSG_DEADBEEF, SEED_0, SEED_1}; + use crate::prelude::*; + + use dash_dev::{arr_from_hex, Corpus}; + use hex_conservative::DisplayHex; + use serde::Deserialize; + + #[derive(Deserialize)] + struct DhVector { + sk: String, + peer_pk: String, + shared: String, + } + + #[derive(Deserialize)] + struct SerVector { + sig_legacy: String, + sig_ietf: String, + } + + #[derive(Deserialize)] + struct SignVector { + sk: String, + msg: String, + sig: String, + } + + #[test] + fn dh_exchange_matches_vectors() { + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_dh"); + let vecs: Vec = corpus.vectors("dh_exchange"); + + for v in &vecs { + let sk = BlsScChia::sk_from_bytes(&arr_from_hex(&v.sk)).unwrap(); + let peer = BlsScChia::pk_from_bytes(&arr_from_hex(&v.peer_pk)).unwrap(); + let shared = BlsScChia::dh_exchange(&sk, &peer).unwrap(); + assert_eq!(BlsScChia::pk_to_bytes(&shared).to_lower_hex_string(), v.shared); + } + } + + #[test] + fn signature_serialization_matches_vectors() { + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_ser_internals"); + let vecs: Vec = corpus.vectors("sig_serialization"); + + for v in &vecs { + let sig = BlsScChia::sig_from_bytes(&arr_from_hex(&v.sig_legacy)).unwrap(); + assert_eq!(BlsScChia::sig_to_bytes(&sig).to_lower_hex_string(), v.sig_legacy); + assert_eq!(sig.compress().to_lower_hex_string(), v.sig_ietf); + assert_ne!(v.sig_legacy, v.sig_ietf, "legacy and ietf should differ"); + } + } + + #[test] + fn signing_matches_vectors() { + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_sign"); + let vecs: Vec = corpus.vectors("sign"); + + for v in &vecs { + let sk = BlsScChia::sk_from_bytes(&arr_from_hex(&v.sk)).unwrap(); + let msg: [u8; 32] = arr_from_hex(&v.msg); + let sig = BlsScChia::sign(&sk, &msg); + assert_eq!(BlsScChia::sig_to_bytes(&sig).to_lower_hex_string(), v.sig); + } + } + + #[test] + fn signing_verifies_and_rejects_mismatches() { + let sk0 = BlsScChia::generate(&SEED_0).unwrap(); + let sk1 = BlsScChia::generate(&SEED_1).unwrap(); + let pk0 = BlsScChia::derive_pk(&sk0); + let pk1 = BlsScChia::derive_pk(&sk1); + let sig = BlsScChia::sign(&sk0, &MSG_DEADBEEF); + + assert!(BlsScChia::verify(&sig, &MSG_DEADBEEF, &pk0).is_ok()); + assert!(BlsScChia::verify(&sig, &[0x42; 32], &pk0).is_err()); + assert!(BlsScChia::verify(&sig, &MSG_DEADBEEF, &pk1).is_err()); + assert_eq!(BlsScChia::sign(&sk0, &MSG_DEADBEEF), sig); + } + + #[test] + fn secure_verify_rejects_infinity_input_key() { + let sk = BlsScChia::generate(&SEED_0).unwrap(); + let real_pk = BlsScChia::derive_pk(&sk); + let inf_pk = G1::identity().to_affine(); + // The identity key serializes to the infinity marker (bits 6-7 set). + assert_eq!(BlsScChia::pk_to_bytes(&inf_pk)[0] & 0xc0, 0xc0); + + let sig = BlsScChia::sign(&sk, &MSG_DEADBEEF); + let res = BlsScChia::secure_verify_aggregates(&sig, &MSG_DEADBEEF, &[&real_pk, &inf_pk]); + assert!(matches!(res, Err(BlsError::InvalidPublicKey))); + } +} diff --git a/pkgs/pkc/src/bls/scheme_ietf.rs b/pkgs/pkc/src/bls/scheme_ietf.rs new file mode 100644 index 00000000..ccf85f8b --- /dev/null +++ b/pkgs/pkc/src/bls/scheme_ietf.rs @@ -0,0 +1,240 @@ +// +// Copyright (c) 2026-present, The Dash Core developers +// SPDX-License-Identifier: MIT +// See the accompanying file LICENSE or https://opensource.org/license/MIT +// + +//! Basic BLS scheme implementation. + +use super::blst_ffi::{G1Affine, G2Affine, G1, G2}; +use super::error::BlsError; +use super::scheme_ops::BlsScheme; +use super::schemes::BlsScIetf; +use crate::bls_ietf::DST_BASIC; + +use blst::min_pk::{AggregatePublicKey, AggregateSignature, PublicKey, SecretKey, Signature}; +use blst::BLST_ERROR; + +impl BlsScheme for BlsScIetf { + type InnerSk = SecretKey; + type InnerPk = PublicKey; + type InnerSig = Signature; + type Msg = [u8]; + + /// Derive via draft-03 keygen. + fn generate(ikm: &[u8]) -> Result { + SecretKey::key_gen_v3(ikm, &[]).map_err(|_| BlsError::InvalidKeyMaterial) + } + + /// Parse the 32-byte scalar through blst. + fn sk_from_bytes(b: &[u8; 32]) -> Result { + SecretKey::from_bytes(b).map_err(|_| BlsError::InvalidSecretKey) + } + + /// Emit the scalar as big-endian bytes. + fn sk_to_bytes(sk: &Self::InnerSk) -> [u8; 32] { + sk.to_bytes() + } + + /// Map the secret key to its G1 public key. + fn derive_pk(sk: &Self::InnerSk) -> Self::InnerPk { + sk.sk_to_pk() + } + + /// No-op; `blst` zeroizes the key on drop. + fn zeroize_sk(_sk: &mut Self::InnerSk) { + // blst::min_pk::SecretKey zeroizes on drop internally. + } + + /// Decode the compressed G1 point and run `validate`. + fn pk_from_bytes(b: &[u8; 48]) -> Result { + let pk = PublicKey::from_bytes(b).map_err(|_| BlsError::InvalidPublicKey)?; + // blst `from_bytes` checks only encoding and curve; validate also + // rejects the identity and non-prime-order points before use. + pk.validate().map_err(|_| BlsError::InvalidPublicKey)?; + Ok(pk) + } + + /// Compress the G1 point to 48 bytes. + fn pk_to_bytes(pk: &Self::InnerPk) -> [u8; 48] { + pk.compress() + } + + /// Decompress the blst public key into a projective G1 point. + fn pk_to_g1(pk: &Self::InnerPk) -> Result { + let aff = G1Affine::uncompress(&pk.compress()).map_err(|_| BlsError::InvalidPublicKey)?; + Ok(aff.to_projective()) + } + + /// Re-encode the projective point and parse it back through `validate`. + fn g1_to_pk(point: G1) -> Result { + Self::pk_from_bytes(&point.to_affine().compress()) + } + + /// Uncompress the standard encoding without re-running `validate`. + /// + /// The bytes come from `pk_to_bytes` on a key that `pk_from_bytes` already + /// validated, so a second subgroup check would only repeat that work. + fn secure_agg_point(pk_bytes: &[u8; 48]) -> Result { + let aff = G1Affine::uncompress(pk_bytes).map_err(|_| BlsError::InvalidPublicKey)?; + Ok(aff.to_projective()) + } + + /// Decode the compressed G2 point and run `validate`. + fn sig_from_bytes(b: &[u8; 96]) -> Result { + let sig = Signature::from_bytes(b).map_err(|_| BlsError::InvalidSignature)?; + // blst `from_bytes` checks only encoding and curve; validate also + // rejects the identity and non-prime-order points before use. + sig.validate(true).map_err(|_| BlsError::InvalidSignature)?; + Ok(sig) + } + + /// Compress the G2 point to 96 bytes. + fn sig_to_bytes(sig: &Self::InnerSig) -> [u8; 96] { + sig.compress() + } + + /// Decompress the blst signature into a projective G2 point. + fn sig_to_g2(sig: &Self::InnerSig) -> Result { + let aff = G2Affine::uncompress(&Self::sig_to_bytes(sig)).map_err(|_| BlsError::InvalidSignature)?; + Ok(aff.to_projective()) + } + + /// Re-encode the projective point and parse it back through `validate`. + fn g2_to_sig(point: G2) -> Result { + Self::sig_from_bytes(&point.to_affine().compress()) + } + + /// Sign with the basic-scheme DST. + fn sign(sk: &Self::InnerSk, msg: &Self::Msg) -> Self::InnerSig { + sk.sign(msg, DST_BASIC, &[]) + } + + /// Verify against the basic-scheme DST. + fn verify(sig: &Self::InnerSig, msg: &Self::Msg, pk: &Self::InnerPk) -> Result<(), BlsError> { + let result = sig.verify(true, msg, DST_BASIC, &[], pk, true); + if result == BLST_ERROR::BLST_SUCCESS { + Ok(()) + } else { + Err(BlsError::VerifyFailed) + } + } + + /// Aggregate the public keys via blst. + fn aggregate_pk(pks: &[&Self::InnerPk]) -> Result { + if pks.is_empty() { + return Err(BlsError::EmptyAggregation); + } + let agg = AggregatePublicKey::aggregate(pks, true).map_err(|_| BlsError::InvalidPublicKey)?; + Ok(agg.to_public_key()) + } + + /// Aggregate the signatures via blst. + fn aggregate_sig(sigs: &[&Self::InnerSig]) -> Result { + if sigs.is_empty() { + return Err(BlsError::EmptyAggregation); + } + let agg = AggregateSignature::aggregate(sigs, true).map_err(|_| BlsError::InvalidSignature)?; + Ok(agg.to_signature()) + } + + /// Aggregate-verify one shared message against many keys. + fn fast_verify_aggregates(sig: &Self::InnerSig, msg: &Self::Msg, pks: &[&Self::InnerPk]) -> Result<(), BlsError> { + if pks.is_empty() { + return Err(BlsError::EmptyAggregation); + } + let result = sig.fast_aggregate_verify(true, msg, DST_BASIC, pks); + if result == BLST_ERROR::BLST_SUCCESS { + Ok(()) + } else { + Err(BlsError::VerifyFailed) + } + } +} + +#[cfg(all(test, feature = "tests"))] +#[expect(clippy::unwrap_used, reason = "test code")] +mod tests { + use super::*; + use crate::bls::tests::{MSG_DEADBEEF, SEED_0, SEED_1}; + use crate::prelude::*; + + use dash_dev::{arr_from_hex, vec_from_hex, Corpus}; + use hex_conservative::DisplayHex; + use hex_literal::hex; + use serde::Deserialize; + + #[derive(Deserialize)] + struct DhVector { + sk: String, + peer_pk: String, + shared: String, + } + + #[derive(Deserialize)] + struct SignVector { + sk: String, + msg: String, + sig: String, + } + + #[test] + fn dh_exchange_matches_vectors() { + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_ietf_dh"); + let vecs: Vec = corpus.vectors("dh_exchange"); + + for v in &vecs { + let sk = BlsScIetf::sk_from_bytes(&arr_from_hex(&v.sk)).unwrap(); + let peer = BlsScIetf::pk_from_bytes(&arr_from_hex(&v.peer_pk)).unwrap(); + let shared = BlsScIetf::dh_exchange(&sk, &peer).unwrap(); + assert_eq!(BlsScIetf::pk_to_bytes(&shared).to_lower_hex_string(), v.shared); + } + } + + #[test] + fn pyecc_signature_matches() { + let sk = BlsScIetf::sk_from_bytes(&hex!( + "0101010101010101010101010101010101" + "010101010101010101010101010101" + )) + .unwrap(); + let msg = hex!("030104010509"); + let expected = hex!( + "96ba34fac33c7f129d602a0bc8a3d43f" + "9abc014eceaab7359146b4b150e57b80" + "8645738f35671e9e10e0d862a30cab70" + "074eb5831d13e6a5b162d01eebe687d0" + "164adbd0a864370a7c222a2768d7704d" + "a254f1bf1823665bc2361f9dd8c00e99" + ); + let sig = BlsScIetf::sign(&sk, &msg); + assert_eq!(BlsScIetf::sig_to_bytes(&sig), expected); + assert!(BlsScIetf::verify(&sig, &msg, &BlsScIetf::derive_pk(&sk)).is_ok()); + } + + #[test] + fn signing_matches_vectors() { + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_ietf_sign"); + let vecs: Vec = corpus.vectors("sign"); + + for v in &vecs { + let sk = BlsScIetf::sk_from_bytes(&arr_from_hex(&v.sk)).unwrap(); + let sig = BlsScIetf::sign(&sk, &vec_from_hex(&v.msg)); + assert_eq!(BlsScIetf::sig_to_bytes(&sig).to_lower_hex_string(), v.sig); + } + } + + #[test] + fn signing_verifies_and_rejects_mismatches() { + let sk0 = BlsScIetf::generate(&SEED_0).unwrap(); + let sk1 = BlsScIetf::generate(&SEED_1).unwrap(); + let pk0 = BlsScIetf::derive_pk(&sk0); + let pk1 = BlsScIetf::derive_pk(&sk1); + let sig = BlsScIetf::sign(&sk0, &MSG_DEADBEEF); + + assert!(BlsScIetf::verify(&sig, &MSG_DEADBEEF, &pk0).is_ok()); + assert!(BlsScIetf::verify(&sig, b"wrong", &pk0).is_err()); + assert!(BlsScIetf::verify(&sig, &MSG_DEADBEEF, &pk1).is_err()); + assert_eq!(BlsScIetf::sign(&sk0, &MSG_DEADBEEF), sig); + } +} diff --git a/pkgs/pkc/src/bls/scheme_ops.rs b/pkgs/pkc/src/bls/scheme_ops.rs new file mode 100644 index 00000000..e3e30d63 --- /dev/null +++ b/pkgs/pkc/src/bls/scheme_ops.rs @@ -0,0 +1,512 @@ +// +// Copyright (c) 2026-present, The Dash Core developers +// SPDX-License-Identifier: MIT +// See the accompanying file LICENSE or https://opensource.org/license/MIT +// + +//! Scalar-field arithmetic and threshold helpers. + +use super::blst_ffi::{self, Fr, Point, G1, G2}; +use super::error::BlsError; +use crate::prelude::*; + +use dash_num::Hash256; +use sha2::{Digest, Sha256}; +use zeroize::{Zeroize, Zeroizing}; + +use core::fmt::Debug; + +/// Multiplier width for the secure-aggregation weights. +/// +/// The weight is an unreduced SHA-256 digest, so it needs the full width +/// rather than [`blst_ffi::FR_BITS`]. +const WEIGHT_BITS: usize = 256; + +/// BLS operations tied to a specific scheme. +pub(crate) trait BlsScheme { + /// Inner secret key representation. + type InnerSk: Clone; + /// Inner public key representation. + type InnerPk: Clone + Debug + PartialEq + Eq; + /// Inner signature representation. + type InnerSig: Clone + Debug + PartialEq + Eq; + /// Message type accepted by signing and verification. + type Msg: ?Sized; + + /// Derive a secret key from input keying material. + /// + /// # Errors + /// + /// Returns `InvalidKeyMaterial` when `ikm` is too short, or + /// `InvalidSecretKey` when the derived scalar is invalid. + fn generate(ikm: &[u8]) -> Result; + + /// Parse a secret key from a 32-byte big-endian scalar. + /// + /// # Errors + /// + /// Returns `InvalidSecretKey` when the bytes are not a valid scalar. + fn sk_from_bytes(b: &[u8; 32]) -> Result; + + /// Serialize a secret key to 32 big-endian bytes. + fn sk_to_bytes(sk: &Self::InnerSk) -> [u8; 32]; + + /// Derive the public key corresponding to a secret key. + fn derive_pk(sk: &Self::InnerSk) -> Self::InnerPk; + + /// Wipe a secret key's scalar material in place. + fn zeroize_sk(sk: &mut Self::InnerSk); + + /// Parse a public key from its 48-byte encoding. + /// + /// # Errors + /// + /// Returns `InvalidPublicKey` when the bytes are not a valid point. + fn pk_from_bytes(b: &[u8; 48]) -> Result; + + /// Serialize a public key to its 48-byte encoding. + fn pk_to_bytes(pk: &Self::InnerPk) -> [u8; 48]; + + /// Lift a public key to a projective G1 point. + /// + /// # Errors + /// + /// Returns `InvalidPublicKey` when the key cannot be decoded to a point. + fn pk_to_g1(pk: &Self::InnerPk) -> Result; + + /// Lower a projective G1 point back to a public key. + /// + /// # Errors + /// + /// Returns `InvalidPublicKey` when the point is not a valid key. + fn g1_to_pk(point: G1) -> Result; + + /// Parse a signature from its 96-byte encoding. + /// + /// # Errors + /// + /// Returns `InvalidSignature` when the bytes are not a valid point. + fn sig_from_bytes(b: &[u8; 96]) -> Result; + + /// Serialize a signature to its 96-byte encoding. + fn sig_to_bytes(sig: &Self::InnerSig) -> [u8; 96]; + + /// Lift a signature to a projective G2 point. + /// + /// # Errors + /// + /// Returns `InvalidSignature` when the signature cannot be decoded. + fn sig_to_g2(sig: &Self::InnerSig) -> Result; + + /// Lower a projective G2 point back to a signature. + /// + /// # Errors + /// + /// Returns `InvalidSignature` when the point is not a valid signature. + fn g2_to_sig(point: G2) -> Result; + + /// Sign a message with the scheme's default augmentation. + fn sign(sk: &Self::InnerSk, msg: &Self::Msg) -> Self::InnerSig; + + /// Verify a signature over a message against a public key. + /// + /// # Errors + /// + /// Returns `VerifyFailed` when the pairing check does not hold. + fn verify(sig: &Self::InnerSig, msg: &Self::Msg, pk: &Self::InnerPk) -> Result<(), BlsError>; + + /// Compute the Diffie-Hellman shared key `sk * peer_pk`. + /// + /// # Errors + /// + /// Returns `InvalidPublicKey` when the peer key or the product point + /// is invalid. + fn dh_exchange(sk: &Self::InnerSk, peer_pk: &Self::InnerPk) -> Result { + let point = Self::pk_to_g1(peer_pk)?; + let mut sk_bytes = Self::sk_to_bytes(sk); + let mut sk_scalar = blst_ffi::scalar_from_bendian(&sk_bytes); + let product = point.mul_scalar(&sk_scalar.b, blst_ffi::FR_BITS); + sk_bytes.zeroize(); + sk_scalar.b.zeroize(); + Self::g1_to_pk(product) + } + + /// Aggregate public keys into one. + /// + /// # Errors + /// + /// Returns `EmptyAggregation` when no keys are given, or + /// `InvalidPublicKey` when a key fails to aggregate. + fn aggregate_pk(pks: &[&Self::InnerPk]) -> Result; + + /// Aggregate signatures into one. + /// + /// # Errors + /// + /// Returns `EmptyAggregation` when no signatures are given, or + /// `InvalidSignature` when a signature fails to aggregate. + fn aggregate_sig(sigs: &[&Self::InnerSig]) -> Result; + + /// Verify an aggregate signature where every signer signed `msg`. + /// + /// # Errors + /// + /// Returns `EmptyAggregation` when no keys are given, or `VerifyFailed` + /// when the aggregate does not verify. + fn fast_verify_aggregates(sig: &Self::InnerSig, msg: &Self::Msg, pks: &[&Self::InnerPk]) -> Result<(), BlsError>; + + /// Decode a sorted input public key from its 48-byte encoding to a G1 point + /// for secure aggregation. + /// + /// # Errors + /// + /// Returns `InvalidPublicKey` when the bytes do not decode to a point. + fn secure_agg_point(pk_bytes: &[u8; 48]) -> Result; + + /// Verify an aggregate with public-key weighting to resist rogue keys. + /// + /// Each key is weighted by `SHA256(index || SHA256(sorted pk bytes))` so a + /// signer cannot cancel an honest key with a crafted rogue one. + /// + /// # Errors + /// + /// Returns `EmptyAggregation` when no keys are given, `InvalidPublicKey` + /// when a key fails to decode, or `VerifyFailed` on mismatch. + fn secure_verify_aggregates(sig: &Self::InnerSig, msg: &Self::Msg, pks: &[&Self::InnerPk]) -> Result<(), BlsError> { + if pks.is_empty() { + return Err(BlsError::EmptyAggregation); + } + + // Sort by serialized key so the weighting order is deterministic and + // independent of the order the caller supplied. + let mut sorted: Vec<[u8; 48]> = pks.iter().map(|pk| Self::pk_to_bytes(pk)).collect(); + sorted.sort_unstable(); + + let mut hasher = Sha256::new(); + for pk_bytes in &sorted { + hasher.update(pk_bytes); + } + let pk_hash: [u8; 32] = hasher.finalize().into(); + + let mut acc = G1::identity(); + for (i, pk_bytes) in sorted.iter().enumerate() { + // weight = SHA256(i_as_4_bytes_be || pk_hash), reduced by blst_p1_mult. + let mut weight_hasher = Sha256::new(); + weight_hasher.update((i as u32).to_be_bytes()); + weight_hasher.update(pk_hash); + let weight_hash: [u8; 32] = weight_hasher.finalize().into(); + let weight = blst_ffi::scalar_from_bendian(&weight_hash); + + acc = acc + Self::secure_agg_point(pk_bytes)?.mul_scalar(&weight.b, WEIGHT_BITS); + } + + let agg_pk = Self::g1_to_pk(acc)?; + Self::verify(sig, msg, &agg_pk) + } + + /// Sum multiple secret keys (mod group order). + /// + /// # Errors + /// + /// Returns `EmptyAggregation` when no keys are given, or + /// `InvalidSecretKey` when the sum is not a valid scalar. + fn aggregate_sk(sks: &[&Self::InnerSk]) -> Result { + if sks.is_empty() { + return Err(BlsError::EmptyAggregation); + } + let byte_vecs = Zeroizing::new(sks.iter().map(|k| Self::sk_to_bytes(k)).collect::>()); + let out_bytes = sum_sk_scalars(&byte_vecs); + Self::sk_from_bytes(&out_bytes).map_err(|_| BlsError::InvalidSecretKey) + } + + /// Split a secret key into `threshold`-of-`ids.len()` shares, handing each + /// id and share key to `into_share` to build the caller's share type. + /// + /// # Errors + /// + /// Returns `ThresholdTooLarge` when `threshold < 2` (a 1-of-n split hands + /// the master key to every participant), `ids` is empty, or `threshold > + /// ids.len()`; `InvalidShareId`/`DuplicateShareId` on bad ids; + /// `InvalidSecretKey` when share generation or parsing fails. + fn split_sk( + sk: &Self::InnerSk, + threshold: usize, + ids: &[Hash256], + rng: &mut impl rand_core::CryptoRngCore, + mut into_share: impl FnMut(Hash256, Self::InnerSk) -> S, + ) -> Result, BlsError> { + if threshold < 2 || ids.is_empty() || threshold > ids.len() { + return Err(BlsError::ThresholdTooLarge); + } + + // An id congruent to zero mod r would make the share equal the master + // key, and ids congruent mod r collide during interpolation. + let id_refs: Vec<&Hash256> = ids.iter().collect(); + reduce_share_ids(&id_refs)?; + + let sk_bytes = Zeroizing::new(Self::sk_to_bytes(sk)); + let raw = generate_shares(&sk_bytes, threshold, ids, rng).map_err(|()| BlsError::InvalidSecretKey)?; + + raw + .into_iter() + .map(|share| { + let inner = Self::sk_from_bytes(&share.secret).map_err(|_| BlsError::InvalidSecretKey)?; + Ok(into_share(share.id, inner)) + }) + .collect() + } + + /// Recover a full signature from threshold shares by interpolation. + /// + /// # Errors + /// + /// Returns `InsufficientShares` when fewer than two shares are given or when + /// `ids` and `sigs` differ in length, `InvalidShareId`/`DuplicateShareId` on + /// bad ids, or `InvalidSignature` when a share or the recovered point fails + /// to decode. + fn recover_sig_shares(ids: &[&Hash256], sigs: &[&Self::InnerSig]) -> Result { + // ids and sigs are paired; a length mismatch would desync interpolation + // and could index out of bounds in interpolate_g2. + if sigs.len() < 2 || ids.len() != sigs.len() { + return Err(BlsError::InsufficientShares); + } + + // Reduce and validate ids in the scalar field, rejecting zero-reducing + // and (post-reduction) duplicate ids. + let reduced = reduce_share_ids(ids)?; + let points = sigs + .iter() + .map(|s| Self::sig_to_g2(s)) + .collect::, BlsError>>()?; + + let recovered = interpolate_g2(&reduced, &points); + Self::g2_to_sig(recovered) + } + + /// Derive a public key share from the master verification vector. + /// + /// # Errors + /// + /// Returns `InvalidVerificationVector` when fewer than two keys are + /// given, `InvalidShareId` on a zero-reducing id, or `InvalidPublicKey` + /// when a coefficient or the result fails to decode. + fn derive_pk_share(master_pks: &[&Self::InnerPk], id: &Hash256) -> Result { + // Evaluating the verification-vector polynomial needs >= 2 coefficients. + if master_pks.len() < 2 { + return Err(BlsError::InvalidVerificationVector); + } + let coeffs_g1 = master_pks + .iter() + .map(|pk| Self::pk_to_g1(pk)) + .collect::, BlsError>>()?; + + let x = reduce_id(id)?; + let result = eval_poly_g1(&coeffs_g1, &x); + + Self::g1_to_pk(result) + } +} + +/// Sum secret key scalars (mod group order). +fn sum_sk_scalars(key_bytes: &[[u8; 32]]) -> Zeroizing<[u8; 32]> { + let mut acc = Fr::default(); + for bytes in key_bytes { + let mut scalar = blst_ffi::scalar_from_bendian(bytes); + let mut term = Fr::from(&scalar); + acc = acc + term; + term.zeroize(); + scalar.b.zeroize(); + } + let mut out_scalar = blst::blst_scalar::from(&acc); + let out_bytes = Zeroizing::new(blst_ffi::bendian_from_scalar(&out_scalar)); + out_scalar.b.zeroize(); + acc.zeroize(); + out_bytes +} + +/// A generated share: participant id paired with its secret scalar bytes, +/// zeroized on drop. A custom `Debug` redacts the secret scalar. +struct RawShare { + /// Participant identifier. + id: Hash256, + /// Secret scalar bytes, zeroized on drop. + secret: Zeroizing<[u8; 32]>, +} + +impl core::fmt::Debug for RawShare { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + f.debug_struct("RawShare") + .field("id", &self.id) + .field("secret", &"[redacted]") + .finish() + } +} + +/// Generate secret key shares from a polynomial with the +/// given constant term. Returns a Vec of (id, share_bytes) +/// pairs. +fn generate_shares( + sk_bytes: &[u8; 32], + threshold: usize, + ids: &[Hash256], + rng: &mut impl rand_core::CryptoRngCore, +) -> Result, ()> { + let mut coeffs = Zeroizing::new(Vec::with_capacity(threshold)); + + let mut sk_scalar = blst_ffi::scalar_from_bendian(sk_bytes); + coeffs.push(Fr::from(&sk_scalar)); + sk_scalar.b.zeroize(); + + for _ in 1..threshold { + // Generate random 32-byte IKM from CSPRNG + let mut ikm = Zeroizing::new([0u8; 32]); + rng.fill_bytes(&mut *ikm); + let rand_sk = blst::min_pk::SecretKey::key_gen_v3(ikm.as_ref(), &[]).map_err(|_| ())?; + let mut rand_bytes = rand_sk.to_bytes(); + let mut rand_scalar = blst_ffi::scalar_from_bendian(&rand_bytes); + coeffs.push(Fr::from(&rand_scalar)); + rand_bytes.zeroize(); + rand_scalar.b.zeroize(); + } + + let mut shares = Vec::with_capacity(ids.len()); + for id in ids { + let x = fr_from_hash(id); + let mut y = poly_eval(&coeffs, &x); + + let mut y_scalar = blst::blst_scalar::from(&y); + let y_bytes = blst_ffi::bendian_from_scalar(&y_scalar); + y_scalar.b.zeroize(); + y.zeroize(); + + // Wrap so unprocessed shares still zeroize if a later caller step fails. + shares.push(RawShare { + id: *id, + secret: Zeroizing::new(y_bytes), + }); + } + + Ok(shares) +} + +/// Evaluate a polynomial at `x`. Coefficients are in ascending order: +/// `coeffs[0] + coeffs[1]*x + ...`. +fn poly_eval(coeffs: &[Fr], x: &Fr) -> Fr { + // Horner's method: result = c[n-1], then for each + // i from n-2..=0: result = result*x + c[i]. + let n = coeffs.len(); + if n == 0 { + return Fr::default(); + } + let mut result = coeffs[n - 1]; + for i in (0..n - 1).rev() { + result = result * *x + coeffs[i]; + } + result +} + +/// Recover a G2 point from shares via Lagrange interpolation at x=0. +/// +/// `ids` and `points` must have the same length >= 1. +/// Each id must be non-zero and unique. +fn interpolate_g2(ids: &[Fr], points: &[G2]) -> G2 { + let n = ids.len(); + + // Compute Lagrange coefficients at x=0: + // L_i = prod_{j!=i} id_j / (id_j - id_i) + let coeffs = compute_lagrange_coeffs(ids); + + let mut result = G2::identity(); + for i in 0..n { + // Convert Fr coefficient to scalar for point multiplication. + let scalar = blst::blst_scalar::from(&coeffs[i]); + result = result + points[i].mul_scalar(&scalar.b, blst_ffi::FR_BITS); + } + result +} + +/// Lagrange coefficients at x=0 for the given evaluation points (ids). +fn compute_lagrange_coeffs(ids: &[Fr]) -> Vec { + let n = ids.len(); + let mut coeffs = Vec::with_capacity(n); + + for i in 0..n { + // L_i = prod_{j!=i} ids[j] / (ids[j] - ids[i]) + let mut num = Fr::one(); + let mut den = Fr::one(); + + for j in 0..n { + if i == j { + continue; + } + // num *= ids[j] + num = num * ids[j]; + + // den *= (ids[j] - ids[i]) + let diff = ids[j] - ids[i]; + den = den * diff; + } + + coeffs.push(num * den.inverse()); + } + coeffs +} + +/// Evaluate a polynomial of G1 points at scalar `x`. +/// +/// `coeffs_g1[0] + coeffs_g1[1]*x + coeffs_g1[2]*x^2 + ...` +/// Uses Horner's method. +fn eval_poly_g1(coeffs_g1: &[G1], x: &Fr) -> G1 { + let n = coeffs_g1.len(); + if n == 0 { + return G1::identity(); + } + let x_scalar = blst::blst_scalar::from(x); + let mut result = coeffs_g1[n - 1]; + for i in (0..n - 1).rev() { + result = result.mul_scalar(&x_scalar.b, blst_ffi::FR_BITS) + coeffs_g1[i]; + } + result +} + +/// Convert a 32-byte participant ID to a scalar. +fn fr_from_hash(id: &Hash256) -> Fr { + Fr::from(&blst_ffi::scalar_from_bendian(id.as_bytes())) +} + +/// Reduce a participant id into the scalar field, rejecting zero. +/// +/// An id congruent to zero mod `r` evaluates the polynomial at its +/// constant term, which leaks the master secret in share generation. +fn reduce_id(id: &Hash256) -> Result { + let fr = fr_from_hash(id); + if blst::blst_scalar::from(&fr).b == [0u8; 32] { + return Err(BlsError::InvalidShareId); + } + Ok(fr) +} + +/// Reduce participant ids into the scalar field, rejecting ids that +/// reduce to zero and duplicates after reduction. +/// +/// Two distinct hashes congruent mod `r` share a scalar, producing a +/// zero Lagrange denominator that blst inverts to zero silently; a +/// raw-byte duplicate check would not catch them. +fn reduce_share_ids(ids: &[&Hash256]) -> Result, BlsError> { + let fr_ids: Vec = ids.iter().map(|id| fr_from_hash(id)).collect(); + let mut reduced: Vec<[u8; 32]> = Vec::with_capacity(fr_ids.len()); + for fr in &fr_ids { + let bytes = blst::blst_scalar::from(fr).b; + if bytes == [0u8; 32] { + return Err(BlsError::InvalidShareId); + } + reduced.push(bytes); + } + reduced.sort_unstable(); + for pair in reduced.windows(2) { + if pair[0] == pair[1] { + return Err(BlsError::DuplicateShareId); + } + } + Ok(fr_ids) +} diff --git a/pkgs/pkc/src/bls/schemes.rs b/pkgs/pkc/src/bls/schemes.rs new file mode 100644 index 00000000..93feee0f --- /dev/null +++ b/pkgs/pkc/src/bls/schemes.rs @@ -0,0 +1,15 @@ +// +// Copyright (c) 2026-present, The Dash Core developers +// SPDX-License-Identifier: MIT +// See the accompanying file LICENSE or https://opensource.org/license/MIT +// + +//! BLS scheme marker types. + +/// Legacy (Chia) BLS scheme marker. +#[derive(Clone, Debug, Eq, Hash, PartialEq)] +pub(crate) enum BlsScChia {} + +/// IETF-standard BLS scheme marker. +#[derive(Clone, Debug, Eq, Hash, PartialEq)] +pub(crate) enum BlsScIetf {} diff --git a/pkgs/pkc/tests/common/bls.rs b/pkgs/pkc/src/bls/tests.rs similarity index 57% rename from pkgs/pkc/tests/common/bls.rs rename to pkgs/pkc/src/bls/tests.rs index f6015b93..fd06b84b 100644 --- a/pkgs/pkc/tests/common/bls.rs +++ b/pkgs/pkc/src/bls/tests.rs @@ -4,22 +4,51 @@ // See the accompanying file LICENSE or https://opensource.org/license/MIT // -//! Shared BLS test constants. +//! Shared test fixtures and constants. + +use crate::bls_chia::SecretKey as ChiaSk; +use crate::bls_ietf::SecretKey as IetfSk; +use crate::prelude::*; -use dash_pkc::{bls_chia::SecretKey as ChiaSk, bls_ietf::SecretKey as IetfSk}; use hex_literal::hex; use rstest::*; +/// IKM producing the first deterministic test key. +pub const SEED_0: [u8; 32] = [0u8; 32]; + +/// IKM producing the second deterministic test key. +pub const SEED_1: [u8; 32] = [1u8; 32]; + /// BLS12-381 scalar field order r, big-endian. pub const GROUP_ORDER: [u8; 32] = hex!("73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"); /// Fixed 32-byte IKMs for deterministic test keys (all 0x00, 0x01, 0x02, 0x03). pub const RSEED: [[u8; 32]; 4] = [[0u8; 32], [1u8; 32], [2u8; 32], [3u8; 32]]; -/// Shared 32-byte test message. +/// Test message. +pub const MSG_DEADBEEF: [u8; 32] = hex!("deadbeefdeadbeefdeadbeefdeadbeefcafebabecafebabecafebabecafebabe"); + +/// Parse a 32-byte hash from a hex string. +pub fn hash_from_hex(s: &str) -> dash_num::Hash256 { + dash_num::Hash256::from_hex(s).unwrap() +} + +/// Build a participant id whose low bytes encode `i`. +pub fn make_id(i: u32) -> dash_num::Hash256 { + let mut bytes = [0u8; 32]; + bytes[28..32].copy_from_slice(&i.to_be_bytes()); + dash_num::Hash256::from_bytes(bytes) +} + +/// Build `n` sequential participant ids `1..=n`. +pub fn sequential_ids(n: usize) -> Vec { + (1..=n).map(|i| make_id(i as u32)).collect() +} + +/// Shared 32-byte test message fixture. #[fixture] pub fn msg32() -> [u8; 32] { - crate::common::MSG_DEADBEEF + MSG_DEADBEEF } /// Key derived from all-zero IKM. diff --git a/pkgs/pkc/src/bls_chia/agg.rs b/pkgs/pkc/src/bls_chia/agg.rs index 3ee334a2..c5e23a42 100644 --- a/pkgs/pkc/src/bls_chia/agg.rs +++ b/pkgs/pkc/src/bls_chia/agg.rs @@ -9,34 +9,20 @@ use super::pk::PublicKey; use super::sig::Signature; use super::sk::SecretKey; -use crate::bls::blst_ffi::{self, Point, G1}; -use crate::bls::BlsError; +use crate::bls::scheme_ops::BlsScheme; +use crate::bls::{BlsError, BlsScChia}; use crate::prelude::*; -use sha2::{Digest, Sha256}; - /// Aggregate multiple legacy BLS public keys (simple point addition in G1). pub fn aggregate_pk(keys: &[&PublicKey]) -> Result { - if keys.is_empty() { - return Err(BlsError::EmptyAggregation); - } - let mut acc = keys[0].0.to_projective(); - for k in &keys[1..] { - acc = acc + k.0.to_projective(); - } - Ok(PublicKey::from_inner(acc.to_affine())) + let inner: Vec<_> = keys.iter().map(|key| &key.0).collect(); + BlsScChia::aggregate_pk(&inner).map(PublicKey::from_inner) } /// Aggregate multiple legacy BLS signatures (simple point addition in G2). pub fn aggregate_sig(sigs: &[&Signature]) -> Result { - if sigs.is_empty() { - return Err(BlsError::EmptyAggregation); - } - let mut acc = sigs[0].0.to_projective(); - for s in &sigs[1..] { - acc = acc + s.0.to_projective(); - } - Ok(Signature::from_inner(acc.to_affine())) + let inner: Vec<_> = sigs.iter().map(|sig| &sig.0).collect(); + BlsScChia::aggregate_sig(&inner).map(Signature::from_inner) } /// Verify an aggregated legacy BLS signature over one message and multiple @@ -46,17 +32,15 @@ pub fn aggregate_sig(sigs: &[&Signature]) -> Result { /// rejected here, for backwards compatibility: it is a bare pairing check /// that treats infinity as valid (see `identity_cancellation_is_not_rejected`). pub fn verify_aggregates(sig: &Signature, msg: &[u8; 32], pks: &[&PublicKey]) -> Result<(), BlsError> { - if pks.is_empty() { - return Err(BlsError::EmptyAggregation); - } - let agg_pk = aggregate_pk(pks)?; - sig.verify(msg, &agg_pk) + let inner: Vec<_> = pks.iter().map(|pk| &pk.0).collect(); + BlsScChia::fast_verify_aggregates(&sig.0, msg, &inner) } /// Verify an aggregated legacy BLS signature where every signer signed the /// same message. Equivalent to `verify_aggregates` for the legacy scheme. pub fn fast_verify_aggregates(sig: &Signature, msg: &[u8; 32], pks: &[&PublicKey]) -> Result<(), BlsError> { - verify_aggregates(sig, msg, pks) + let inner: Vec<_> = pks.iter().map(|pk| &pk.0).collect(); + BlsScChia::fast_verify_aggregates(&sig.0, msg, &inner) } /// Securely aggregate and verify signatures with public-key weighting. @@ -69,47 +53,12 @@ pub fn fast_verify_aggregates(sig: &Signature, msg: &[u8; 32], pks: &[&PublicKey /// 4. Compute weighted public key: `agg_pk = sum(weight_i * pk_i)` /// 5. Verify the aggregate signature against `agg_pk` and the message pub fn secure_verify_aggregates(sig: &Signature, msg: &[u8; 32], pks: &[&PublicKey]) -> Result<(), BlsError> { - if pks.is_empty() { - return Err(BlsError::EmptyAggregation); - } - - let mut sorted: Vec<[u8; 48]> = pks.iter().map(|pk| pk.to_bytes()).collect(); - sorted.sort(); - - let mut hasher = Sha256::new(); - for pk_bytes in &sorted { - hasher.update(pk_bytes); - } - let pk_hash: [u8; 32] = hasher.finalize().into(); - - let mut acc = G1::identity(); - - for (i, pk_bytes) in sorted.iter().enumerate() { - // weight = SHA256(i_as_4_bytes_be || pk_hash) mod order - let mut weight_hasher = Sha256::new(); - let idx_bytes = (i as u32).to_be_bytes(); - weight_hasher.update(idx_bytes); - weight_hasher.update(pk_hash); - let weight_hash: [u8; 32] = weight_hasher.finalize().into(); - - // blst_p1_mult reduces internally. - let weight = blst_ffi::scalar_from_bendian(&weight_hash); - - let pk = PublicKey::from_bytes(pk_bytes).map_err(|_| BlsError::InvalidPublicKey)?; - acc = acc + pk.0.to_projective().mul_scalar(&weight.b, 256); - } - - let agg_pk = PublicKey::from_inner(acc.to_affine()); - - sig.verify(msg, &agg_pk) + let inner: Vec<_> = pks.iter().map(|pk| &pk.0).collect(); + BlsScChia::secure_verify_aggregates(&sig.0, msg, &inner) } /// Sum multiple secret keys (mod group order). pub fn aggregate_sk(keys: &[&SecretKey]) -> Result { - if keys.is_empty() { - return Err(BlsError::EmptyAggregation); - } - let byte_vecs = zeroize::Zeroizing::new(keys.iter().map(|k| k.to_bytes()).collect::>()); - let out_bytes = crate::common::bls::sum_sk_scalars(&byte_vecs); - SecretKey::from_bytes(&out_bytes).map_err(|_| BlsError::InvalidSecretKey) + let inner: Vec<_> = keys.iter().map(|key| &key.0).collect(); + BlsScChia::aggregate_sk(&inner).map(SecretKey::from_inner) } diff --git a/pkgs/pkc/src/bls_chia/mod.rs b/pkgs/pkc/src/bls_chia/mod.rs index 5fcbf8d8..edc236ef 100644 --- a/pkgs/pkc/src/bls_chia/mod.rs +++ b/pkgs/pkc/src/bls_chia/mod.rs @@ -8,7 +8,6 @@ mod agg; mod pk; -mod ser; mod sig; mod sk; diff --git a/pkgs/pkc/src/bls_chia/pk.rs b/pkgs/pkc/src/bls_chia/pk.rs index 91ce2b45..30713361 100644 --- a/pkgs/pkc/src/bls_chia/pk.rs +++ b/pkgs/pkc/src/bls_chia/pk.rs @@ -6,10 +6,10 @@ //! Legacy BLS public key (48-byte G1 point, legacy serialization). -use super::ser; use super::sk::SecretKey; -use crate::bls::blst_ffi::{self, G1Affine}; -use crate::bls::BlsError; +use crate::bls::blst_ffi::G1Affine; +use crate::bls::scheme_ops::BlsScheme; +use crate::bls::{BlsError, BlsScChia}; /// A legacy BLS public key (48-byte G1 point in legacy serialization). #[derive(Clone, Debug, Eq, PartialEq)] @@ -32,23 +32,22 @@ impl PublicKey { /// Returns [`BlsError::InvalidPublicKey`] when the bytes do not decode to a /// valid public key (identity marker, all-zero buffer, or malformed input). pub fn from_bytes(bytes: &[u8; 48]) -> Result { - ser::deser_g1(bytes).map(Self) + BlsScChia::pk_from_bytes(bytes).map(Self) } /// Serialize to 48 legacy-format bytes. pub fn to_bytes(&self) -> [u8; 48] { - ser::ser_g1(&self.0) + BlsScChia::pk_to_bytes(&self.0) } /// Compute a DH shared key: `sk * peer_pk`. + /// + /// # Errors + /// + /// Infallible for the legacy scheme; the `Result` mirrors the shared + /// scheme signature and always returns `Ok`. pub fn dh_exchange(sk: &SecretKey, peer_pk: &PublicKey) -> Result { - use zeroize::Zeroize; - let mut sk_bytes = sk.to_bytes(); - let mut sk_scalar = blst_ffi::scalar_from_bendian(&sk_bytes); - let out_aff = peer_pk.0.mul_scalar(&sk_scalar.b, blst_ffi::FR_BITS); - sk_bytes.zeroize(); - sk_scalar.b.zeroize(); - Ok(Self(out_aff)) + BlsScChia::dh_exchange(&sk.0, &peer_pk.0).map(Self) } } diff --git a/pkgs/pkc/src/bls_chia/ser.rs b/pkgs/pkc/src/bls_chia/ser.rs deleted file mode 100644 index 1f69eeb3..00000000 --- a/pkgs/pkc/src/bls_chia/ser.rs +++ /dev/null @@ -1,144 +0,0 @@ -// -// Copyright (c) 2026-present, The Dash Core developers -// SPDX-License-Identifier: MIT -// See the accompanying file LICENSE or https://opensource.org/license/MIT -// - -//! Legacy serialization format for BLS elements. -//! -//! G1 (48 bytes): sign bit at byte[0] & 0x80, no compression indicator. -//! G2 (96 bytes): legacy component order (c0||c1), sign bit at byte[0] & 0x80. - -use crate::bls::blst_ffi::{G1Affine, G2Affine}; -use crate::bls::BlsError; - -use hex_literal::hex; - -/// Serialize a G1 affine point to 48 legacy bytes. -pub(super) fn ser_g1(p: &G1Affine) -> [u8; 48] { - let ietf = p.compress(); - - if ietf[0] & 0xc0 == 0xc0 { - return ietf; // infinity is the same in both formats - } - - // IETF: bit 7 = compression, bit 5 = sign. - // Legacy: bit 7 = sign, no compression indicator. - let sign = (ietf[0] >> 5) & 1; - let mut legacy = ietf; - legacy[0] &= 0x1f; - if sign == 1 { - legacy[0] |= 0x80; - } - legacy -} - -/// Deserialize 48 legacy bytes to a G1 affine point. -/// -/// No prime-order subgroup check is performed on the legacy path, for -/// backwards compatibility: checking here would reject keys the legacy -/// format accepts. -pub(super) fn deser_g1(bytes: &[u8; 48]) -> Result { - // Reject the all-zero encoding and the infinity marker. - if bytes.iter().all(|&b| b == 0) || bytes[0] & 0xc0 == 0xc0 { - return Err(BlsError::InvalidPublicKey); - } - - let sign = (bytes[0] >> 7) & 1; - let mut ietf = *bytes; - // Only bit 7 is the legacy sign flag; normalize away stray high bits - // rather than rejecting, to stay bit-for-bit compatible on the wire. - ietf[0] &= 0x1f; - ietf[0] |= 0x80; // compression - if sign == 1 { - ietf[0] |= 0x20; // sign - } - - G1Affine::uncompress(&ietf).map_err(|_| BlsError::InvalidPublicKey) -} - -/// Serialize a G2 affine point to 96 legacy bytes. -/// -/// Uses uncompressed 192-byte intermediate to sidestep sign-bit convention -/// differences between IETF and legacy formats. -/// -/// blst: `[x.c1(48), x.c0(48), y.c1(48), y.c0(48)]` -/// Legacy: `[x.c0(48), x.c1(48)]`, sign at byte\[0\] bit 7 -pub(super) fn ser_g2(p: &G2Affine) -> [u8; 96] { - let uncomp = p.serialize(); - - if uncomp.iter().all(|&b| b == 0) { - let mut out = [0u8; 96]; - out[0] = 0xc0; - return out; - } - - let x_c1 = &uncomp[0..48]; - let x_c0 = &uncomp[48..96]; - let y_c1 = &uncomp[96..144]; - - let sign = y_c1_is_larger(y_c1); - - let mut legacy = [0u8; 96]; - legacy[..48].copy_from_slice(x_c0); - legacy[48..96].copy_from_slice(x_c1); - if sign { - legacy[0] |= 0x80; - } - legacy -} - -/// Deserialize 96 legacy bytes to a G2 affine point. -/// -/// No prime-order subgroup check is performed on the legacy path, for -/// backwards compatibility: checking here would reject signatures the legacy -/// format accepts. -pub(super) fn deser_g2(bytes: &[u8; 96]) -> Result { - // Reject the all-zero encoding and the infinity marker. - if bytes.iter().all(|&b| b == 0) || bytes[0] & 0xc0 == 0xc0 { - return Err(BlsError::InvalidSignature); - } - - let sign = (bytes[0] >> 7) & 1; - - // After swizzling, byte 48 (top of `x.c1`) sits in the IETF flag byte, - // where blst reads flags instead of range-checking, so reject its stray - // high bits here: the reference feeds them to relic as `x >= p`. - if bytes[48] & 0xe0 != 0 { - return Err(BlsError::InvalidSignature); - } - - let mut x_c0 = [0u8; 48]; - x_c0.copy_from_slice(&bytes[..48]); - // Clear only the sign bit: stray bits 5-6 make `x.c0 >= p`, rejected by - // the decompression range check like any out-of-range coordinate. - x_c0[0] &= 0x7f; - let x_c1 = &bytes[48..96]; - - let mut ietf = [0u8; 96]; - ietf[..48].copy_from_slice(x_c1); - ietf[48..96].copy_from_slice(&x_c0); - - ietf[0] |= 0x80; // compression - - // Decompress with sign=0, then negate y if needed. - let out = G2Affine::uncompress(&ietf).map_err(|_| BlsError::InvalidSignature)?; - - let decompressed_sign = y_c1_is_larger(&out.y().c1_bendian()); - if (sign == 1) != decompressed_sign { - return Ok(G2Affine::from_coords(out.x(), -out.y())); - } - - Ok(out) -} - -/// y.c1 > (p-1)/2, matching the legacy sign convention. -fn y_c1_is_larger(y_c1: &[u8]) -> bool { - const HALF_P: [u8; 48] = hex!( - "0d0088f5 1cbff34d 258dd3db 21a5d66b" - "b23ba5c2 79c2895f b3986950 7b587b12" - "0f55ffff 58a9ffff dcff7fff ffffd555" - ); - - y_c1.len() >= 48 && y_c1[..48] > HALF_P[..] -} diff --git a/pkgs/pkc/src/bls_chia/sig.rs b/pkgs/pkc/src/bls_chia/sig.rs index 3f5c0bab..19c36fed 100644 --- a/pkgs/pkc/src/bls_chia/sig.rs +++ b/pkgs/pkc/src/bls_chia/sig.rs @@ -7,9 +7,9 @@ //! Legacy BLS signature (96-byte G2 point, legacy serialization). use super::pk::PublicKey; -use super::ser; use crate::bls::blst_ffi::G2Affine; -use crate::bls::{blst_ffi, chia_h2c, BlsError}; +use crate::bls::scheme_ops::BlsScheme; +use crate::bls::{BlsError, BlsScChia}; /// A legacy BLS signature (96-byte G2 point in legacy serialization). #[derive(Clone, Debug, Eq, PartialEq)] @@ -27,24 +27,18 @@ impl Signature { /// Deserialize from 96 legacy-format bytes. pub fn from_bytes(bytes: &[u8; 96]) -> Result { - ser::deser_g2(bytes).map(Self) + BlsScChia::sig_from_bytes(bytes).map(Self) } /// Serialize to 96 legacy-format bytes. pub fn to_bytes(&self) -> [u8; 96] { - ser::ser_g2(&self.0) + BlsScChia::sig_to_bytes(&self.0) } /// Verify against a 32-byte message and public key via pairing check: /// e(sig, G1) == e(H(msg), pk). pub fn verify(&self, msg: &[u8; 32], pk: &PublicKey) -> Result<(), BlsError> { - let h_proj = chia_h2c::hash_to_g2(msg); - let valid = blst_ffi::pairings_equal_with_g1_generator(&self.0, &h_proj, &pk.0); - if valid { - Ok(()) - } else { - Err(BlsError::VerifyFailed) - } + BlsScChia::verify(&self.0, msg, &pk.0) } } diff --git a/pkgs/pkc/src/bls_chia/sk.rs b/pkgs/pkc/src/bls_chia/sk.rs index bf31a1d7..af5a541d 100644 --- a/pkgs/pkc/src/bls_chia/sk.rs +++ b/pkgs/pkc/src/bls_chia/sk.rs @@ -8,18 +8,20 @@ use super::pk::PublicKey; use super::sig::Signature; -use crate::bls::blst_ffi::{self, Point}; -use crate::bls::{chia_h2c, BlsError}; - -use zeroize::Zeroize; +use crate::bls::scheme_ops::BlsScheme; +use crate::bls::{BlsError, BlsScChia}; use core::fmt; /// A legacy BLS secret key (32-byte scalar). #[derive(Clone)] -pub struct SecretKey(blst::blst_scalar); +pub struct SecretKey(pub(super) blst::blst_scalar); impl SecretKey { + pub(super) fn from_inner(inner: blst::blst_scalar) -> Self { + Self(inner) + } + /// Derive a secret key from input keying material (>= 32 bytes). Uses the /// same IETF key generation as standard BLS, only the signing scheme /// differs. @@ -29,11 +31,7 @@ impl SecretKey { /// Returns `InvalidSecretKey` when `ikm` is shorter than 32 bytes or the /// derived scalar is not a valid secret key. pub fn generate(ikm: &[u8]) -> Result { - let sk = blst::min_pk::SecretKey::key_gen_v3(ikm, &[]).map_err(|_| BlsError::InvalidSecretKey)?; - let mut bytes = sk.to_bytes(); - let res = Self::from_bytes(&bytes); - bytes.zeroize(); - res + BlsScChia::generate(ikm).map(Self) } /// Parse from 32-byte big-endian scalar. @@ -43,37 +41,29 @@ impl SecretKey { /// Returns `InvalidSecretKey` when the scalar is zero or not less than the /// group order. pub fn from_bytes(bytes: &[u8; 32]) -> Result { - let scalar = blst_ffi::scalar_from_bendian(bytes); - if blst_ffi::sk_check(&scalar) { - Ok(Self(scalar)) - } else { - Err(BlsError::InvalidSecretKey) - } + BlsScChia::sk_from_bytes(bytes).map(Self) } /// Serialize to 32 bytes. pub fn to_bytes(&self) -> [u8; 32] { - blst_ffi::bendian_from_scalar(&self.0) + BlsScChia::sk_to_bytes(&self.0) } /// Derive the corresponding public key (G1 point). pub fn public_key(&self) -> PublicKey { - PublicKey::from_inner(blst_ffi::sk_to_pk2_in_g1(&self.0)) + PublicKey::from_inner(BlsScChia::derive_pk(&self.0)) } /// Sign a 32-byte message hash using the legacy scheme (no DST, Shallue-van /// de Woestijne hash-to-G2). pub fn sign(&self, msg: &[u8; 32]) -> Signature { - let h = chia_h2c::hash_to_g2(msg); - // blst_sign_pk_in_g1 applies IETF transformations, do manually instead. - let sig = h.mul_scalar(&self.0.b, blst_ffi::FR_BITS); - Signature::from_inner(sig.to_affine()) + Signature::from_inner(BlsScChia::sign(&self.0, msg)) } } impl Drop for SecretKey { fn drop(&mut self) { - self.0.b.zeroize(); + BlsScChia::zeroize_sk(&mut self.0); } } diff --git a/pkgs/pkc/src/bls_chia/threshold.rs b/pkgs/pkc/src/bls_chia/threshold.rs index 1c3781cb..ebda3f0f 100644 --- a/pkgs/pkc/src/bls_chia/threshold.rs +++ b/pkgs/pkc/src/bls_chia/threshold.rs @@ -9,13 +9,11 @@ use super::pk::PublicKey; use super::sig::Signature; use super::sk::SecretKey; -use crate::bls::blst_ffi::{G1, G2}; -use crate::bls::BlsError; -use crate::common::bls::threshold as math; +use crate::bls::scheme_ops::BlsScheme; +use crate::bls::{BlsError, BlsScChia}; use crate::prelude::*; use dash_num::Hash256; -use zeroize::Zeroizing; /// Secret key share for threshold signing. #[derive(Clone)] @@ -101,29 +99,9 @@ pub fn split_sk( ids: &[Hash256], rng: &mut impl rand_core::CryptoRngCore, ) -> Result, BlsError> { - if threshold < 2 || ids.is_empty() || threshold > ids.len() { - return Err(BlsError::ThresholdTooLarge); - } - - // An id congruent to zero mod r would make the share equal the master key, and - // ids congruent mod r collide during interpolation. - let id_refs: Vec<&Hash256> = ids.iter().collect(); - math::reduce_share_ids(&id_refs)?; - - let sk_bytes = Zeroizing::new(sk.to_bytes()); - let raw = - crate::common::bls::generate_shares(&sk_bytes, threshold, ids, rng).map_err(|()| BlsError::InvalidSecretKey)?; - - raw - .into_iter() - .map(|share| { - let share_sk = SecretKey::from_bytes(&share.secret).map_err(|_| BlsError::InvalidSecretKey)?; - Ok(SecretKeyShare { - id: share.id, - sk: share_sk, - }) - }) - .collect() + BlsScChia::split_sk(&sk.0, threshold, ids, rng, |id, inner| { + SecretKeyShare::new(id, SecretKey::from_inner(inner)) + }) } /// Recover a full signature from threshold signature shares via Lagrange @@ -135,18 +113,9 @@ pub fn split_sk( /// `InvalidShareId` if any id reduces to zero in the scalar field, or /// `DuplicateShareId` if any ids collide after reduction. pub fn recover_sig(shares: &[&SignatureShare]) -> Result { - if shares.len() < 2 { - return Err(BlsError::InsufficientShares); - } - - // Reduce and validate ids in the scalar field, rejecting zero-reducing - // and (post-reduction) duplicate ids. - let id_refs: Vec<&Hash256> = shares.iter().map(|s| &s.id).collect(); - let ids = math::reduce_share_ids(&id_refs)?; - let points: Vec = shares.iter().map(|s| s.sig.0.to_projective()).collect(); - - let recovered = math::interpolate_g2(&ids, &points); - Ok(Signature::from_inner(recovered.to_affine())) + let ids: Vec<_> = shares.iter().map(|s| &s.id).collect(); + let sigs: Vec<_> = shares.iter().map(|s| &s.sig.0).collect(); + BlsScChia::recover_sig_shares(&ids, &sigs).map(Signature::from_inner) } /// Derive a public key share by evaluating the master public @@ -157,14 +126,6 @@ pub fn recover_sig(shares: &[&SignatureShare]) -> Result { /// Returns `InvalidVerificationVector` if fewer than 2 master keys are /// given, or `InvalidShareId` if `id` reduces to zero in the scalar field. pub fn derive_pk_share(master_pks: &[&PublicKey], id: &Hash256) -> Result { - // Evaluating the verification-vector polynomial needs >= 2 coefficients. - if master_pks.len() < 2 { - return Err(BlsError::InvalidVerificationVector); - } - let coeffs_g1: Vec = master_pks.iter().map(|pk| pk.0.to_projective()).collect(); - - let x = math::reduce_id(id)?; - let result = math::eval_poly_g1(&coeffs_g1, &x); - - Ok(PublicKey::from_inner(result.to_affine())) + let pks: Vec<_> = master_pks.iter().map(|pk| &pk.0).collect(); + BlsScChia::derive_pk_share(&pks, id).map(PublicKey::from_inner) } diff --git a/pkgs/pkc/src/bls_ietf/agg.rs b/pkgs/pkc/src/bls_ietf/agg.rs index 8e8a50b9..ed97f507 100644 --- a/pkgs/pkc/src/bls_ietf/agg.rs +++ b/pkgs/pkc/src/bls_ietf/agg.rs @@ -10,47 +10,29 @@ use super::pk::PublicKey; use super::sig::Signature; use super::sk::SecretKey; use super::DST; -use crate::bls::blst_ffi::{self, G1Affine, Point, G1}; -use crate::bls::BlsError; +use crate::bls::scheme_ops::BlsScheme; +use crate::bls::{BlsError, BlsScIetf}; use crate::prelude::*; use blst::min_pk; use blst::BLST_ERROR; -use sha2::{Digest, Sha256}; /// Aggregate multiple public keys into one. pub fn aggregate_pk(keys: &[&PublicKey]) -> Result { - if keys.is_empty() { - return Err(BlsError::EmptyAggregation); - } - // Not repr(transparent), so collect inner refs. - let inner_refs: &[&min_pk::PublicKey] = &keys.iter().map(|k| &k.0).collect::>(); - let agg = min_pk::AggregatePublicKey::aggregate(inner_refs, true).map_err(|_| BlsError::InvalidPublicKey)?; - Ok(PublicKey::from_inner(agg.to_public_key())) + let inner: Vec<_> = keys.iter().map(|key| &key.0).collect(); + BlsScIetf::aggregate_pk(&inner).map(PublicKey::from_inner) } /// Aggregate multiple signatures into one. pub fn aggregate_sig(sigs: &[&Signature]) -> Result { - if sigs.is_empty() { - return Err(BlsError::EmptyAggregation); - } - let inner_refs: Vec<&min_pk::Signature> = sigs.iter().map(|s| &s.0).collect(); - let agg = min_pk::AggregateSignature::aggregate(&inner_refs, true).map_err(|_| BlsError::InvalidSignature)?; - Ok(Signature::from_inner(agg.to_signature())) + let inner: Vec<_> = sigs.iter().map(|sig| &sig.0).collect(); + BlsScIetf::aggregate_sig(&inner).map(Signature::from_inner) } /// Verify an aggregated signature where every signer signed the same message. pub fn fast_verify_aggregates(sig: &Signature, msg: &[u8], pks: &[&PublicKey]) -> Result<(), BlsError> { - if pks.is_empty() { - return Err(BlsError::EmptyAggregation); - } - let inner_pks: Vec<&min_pk::PublicKey> = pks.iter().map(|k| &k.0).collect(); - let result = sig.0.fast_aggregate_verify(true, msg, DST, &inner_pks); - if result == BLST_ERROR::BLST_SUCCESS { - Ok(()) - } else { - Err(BlsError::VerifyFailed) - } + let inner: Vec<_> = pks.iter().map(|pk| &pk.0).collect(); + BlsScIetf::fast_verify_aggregates(&sig.0, msg, &inner) } /// Verify an aggregated signature where each signer signed a distinct message. @@ -80,48 +62,12 @@ pub fn verify_aggregates(sig: &Signature, msgs: &[&[u8]], pks: &[&PublicKey]) -> /// 4. Compute weighted public key: `agg_pk = sum(weight_i * pk_i)` /// 5. Verify the aggregate signature against `agg_pk` and the message pub fn secure_verify_aggregates(sig: &Signature, msg: &[u8], pks: &[&PublicKey]) -> Result<(), BlsError> { - if pks.is_empty() { - return Err(BlsError::EmptyAggregation); - } - - let mut sorted: Vec<[u8; 48]> = pks.iter().map(|pk| pk.to_bytes()).collect(); - sorted.sort(); - - let mut hasher = Sha256::new(); - for pk_bytes in &sorted { - hasher.update(pk_bytes); - } - let pk_hash: [u8; 32] = hasher.finalize().into(); - - let mut acc = G1::identity(); - - for (i, pk_bytes) in sorted.iter().enumerate() { - // weight = SHA256(i_as_4_bytes_be || pk_hash) mod order - let mut weight_hasher = Sha256::new(); - let idx_bytes = (i as u32).to_be_bytes(); - weight_hasher.update(idx_bytes); - weight_hasher.update(pk_hash); - let weight_hash: [u8; 32] = weight_hasher.finalize().into(); - - // blst_p1_mult reduces internally. - let weight = blst_ffi::scalar_from_bendian(&weight_hash); - - let pk_aff = G1Affine::uncompress(pk_bytes).map_err(|_| BlsError::InvalidPublicKey)?; - acc = acc + pk_aff.to_projective().mul_scalar(&weight.b, 256); - } - - let agg_pk_bytes = acc.to_affine().compress(); - let agg_pk = PublicKey::from_bytes(&agg_pk_bytes).map_err(|_| BlsError::InvalidPublicKey)?; - - sig.verify(msg, &agg_pk) + let inner: Vec<_> = pks.iter().map(|pk| &pk.0).collect(); + BlsScIetf::secure_verify_aggregates(&sig.0, msg, &inner) } /// Sum multiple secret keys (mod group order). pub fn aggregate_sk(keys: &[&SecretKey]) -> Result { - if keys.is_empty() { - return Err(BlsError::EmptyAggregation); - } - let byte_vecs = zeroize::Zeroizing::new(keys.iter().map(|k| k.to_bytes()).collect::>()); - let out_bytes = crate::common::bls::sum_sk_scalars(&byte_vecs); - SecretKey::from_bytes(&out_bytes).map_err(|_| BlsError::InvalidSecretKey) + let inner: Vec<_> = keys.iter().map(|key| &key.0).collect(); + BlsScIetf::aggregate_sk(&inner).map(SecretKey::from_inner) } diff --git a/pkgs/pkc/src/bls_ietf/mod.rs b/pkgs/pkc/src/bls_ietf/mod.rs index db098665..980fb782 100644 --- a/pkgs/pkc/src/bls_ietf/mod.rs +++ b/pkgs/pkc/src/bls_ietf/mod.rs @@ -22,7 +22,7 @@ pub use pk::PublicKey; pub use sig::Signature; pub use sk::{Scheme, SecretKey}; -const DST_BASIC: &[u8] = b"BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_"; +pub(crate) const DST_BASIC: &[u8] = b"BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_"; const DST_POP: &[u8] = b"BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_POP_"; const DST_POP_PROVE: &[u8] = b"BLS_POP_BLS12381G2_XMD:SHA-256_SSWU_RO_POP_"; diff --git a/pkgs/pkc/src/bls_ietf/pk.rs b/pkgs/pkc/src/bls_ietf/pk.rs index b090b119..952ef586 100644 --- a/pkgs/pkc/src/bls_ietf/pk.rs +++ b/pkgs/pkc/src/bls_ietf/pk.rs @@ -9,8 +9,8 @@ use super::sig::Signature; use super::sk::SecretKey; use super::DST_POP_PROVE; -use crate::bls::blst_ffi::{self, G1Affine}; -use crate::bls::BlsError; +use crate::bls::scheme_ops::BlsScheme; +use crate::bls::{BlsError, BlsScIetf}; use blst::min_pk; use blst::BLST_ERROR; @@ -36,16 +36,12 @@ impl PublicKey { /// Returns [`BlsError::InvalidPublicKey`] when the bytes are not a valid /// encoding or the point fails `validate` (identity or non-prime-order). pub fn from_bytes(bytes: &[u8; 48]) -> Result { - let pk = min_pk::PublicKey::from_bytes(bytes).map_err(|_| BlsError::InvalidPublicKey)?; - // blst `from_bytes` checks only encoding and curve; validate also - // rejects the identity and non-prime-order points before use. - pk.validate().map_err(|_| BlsError::InvalidPublicKey)?; - Ok(Self(pk)) + BlsScIetf::pk_from_bytes(bytes).map(Self) } /// Serialize to 48 compressed bytes. pub fn to_bytes(&self) -> [u8; 48] { - self.0.compress() + BlsScIetf::pk_to_bytes(&self.0) } /// Compute a DH shared key: `sk * peer_pk`. @@ -55,15 +51,7 @@ impl PublicKey { /// Returns [`BlsError::InvalidPublicKey`] when `peer_pk` or the resulting /// point is not a valid public key. pub fn dh_exchange(sk: &SecretKey, peer_pk: &PublicKey) -> Result { - use zeroize::Zeroize; - let compressed = peer_pk.0.compress(); - let aff = G1Affine::uncompress(&compressed).map_err(|_| BlsError::InvalidPublicKey)?; - let mut sk_bytes = sk.to_bytes(); - let mut sk_scalar = blst_ffi::scalar_from_bendian(&sk_bytes); - let out_bytes = aff.mul_scalar(&sk_scalar.b, blst_ffi::FR_BITS).compress(); - sk_bytes.zeroize(); - sk_scalar.b.zeroize(); - Self::from_bytes(&out_bytes) + BlsScIetf::dh_exchange(&sk.0, &peer_pk.0).map(Self) } /// Verify a proof of possession against this key. diff --git a/pkgs/pkc/src/bls_ietf/sig.rs b/pkgs/pkc/src/bls_ietf/sig.rs index a9ffd1ce..c04581b6 100644 --- a/pkgs/pkc/src/bls_ietf/sig.rs +++ b/pkgs/pkc/src/bls_ietf/sig.rs @@ -9,7 +9,8 @@ use super::pk::PublicKey; use super::sk::Scheme; use super::{DST, DST_POP}; -use crate::bls::BlsError; +use crate::bls::scheme_ops::BlsScheme; +use crate::bls::{BlsError, BlsScIetf}; use blst::min_pk; use blst::BLST_ERROR; @@ -35,16 +36,12 @@ impl Signature { /// Returns [`BlsError::InvalidSignature`] when the bytes are not a valid /// encoding or the point fails `validate` (identity or non-prime-order). pub fn from_bytes(bytes: &[u8; 96]) -> Result { - let sig = min_pk::Signature::from_bytes(bytes).map_err(|_| BlsError::InvalidSignature)?; - // blst `from_bytes` checks only encoding and curve; validate also - // rejects the identity and non-prime-order points before use. - sig.validate(true).map_err(|_| BlsError::InvalidSignature)?; - Ok(Self(sig)) + BlsScIetf::sig_from_bytes(bytes).map(Self) } /// Serialize to 96 compressed bytes. pub fn to_bytes(&self) -> [u8; 96] { - self.0.compress() + BlsScIetf::sig_to_bytes(&self.0) } /// Verify with the Basic scheme. @@ -53,7 +50,7 @@ impl Signature { /// /// Returns [`BlsError::VerifyFailed`] if the signature does not verify. pub fn verify(&self, msg: &[u8], pk: &PublicKey) -> Result<(), BlsError> { - self.verify_raw(msg, pk, DST) + BlsScIetf::verify(&self.0, msg, &pk.0) } /// Verify with a specific scheme. diff --git a/pkgs/pkc/src/bls_ietf/sk.rs b/pkgs/pkc/src/bls_ietf/sk.rs index ae5dcc82..5635aa1f 100644 --- a/pkgs/pkc/src/bls_ietf/sk.rs +++ b/pkgs/pkc/src/bls_ietf/sk.rs @@ -9,7 +9,8 @@ use super::pk::PublicKey; use super::sig::Signature; use super::{DST, DST_POP, DST_POP_PROVE}; -use crate::bls::BlsError; +use crate::bls::scheme_ops::BlsScheme; +use crate::bls::{BlsError, BlsScIetf}; use blst::min_pk; @@ -29,40 +30,40 @@ pub enum Scheme { /// /// Zeroised on drop by the blst crate. #[derive(Clone)] -pub struct SecretKey(min_pk::SecretKey); +pub struct SecretKey(pub(super) min_pk::SecretKey); impl SecretKey { + pub(super) fn from_inner(inner: min_pk::SecretKey) -> Self { + Self(inner) + } + /// Derive a secret key from input keying material. /// /// # Errors /// /// Returns `InvalidKeyMaterial` when `ikm` is shorter than 32 bytes. pub fn generate(ikm: &[u8]) -> Result { - min_pk::SecretKey::key_gen_v3(ikm, &[]) - .map(Self) - .map_err(|_| BlsError::InvalidKeyMaterial) + BlsScIetf::generate(ikm).map(Self) } /// Parse from a 32-byte big-endian scalar. pub fn from_bytes(bytes: &[u8; 32]) -> Result { - min_pk::SecretKey::from_bytes(bytes) - .map(Self) - .map_err(|_| BlsError::InvalidSecretKey) + BlsScIetf::sk_from_bytes(bytes).map(Self) } /// Serialize to 32 bytes. pub fn to_bytes(&self) -> [u8; 32] { - self.0.to_bytes() + BlsScIetf::sk_to_bytes(&self.0) } /// Derive the corresponding public key. pub fn public_key(&self) -> PublicKey { - PublicKey::from_inner(self.0.sk_to_pk()) + PublicKey::from_inner(BlsScIetf::derive_pk(&self.0)) } /// Sign with the Basic scheme. pub fn sign(&self, msg: &[u8]) -> Signature { - Signature::from_inner(self.0.sign(msg, DST, &[])) + Signature::from_inner(BlsScIetf::sign(&self.0, msg)) } /// Sign with a specific scheme. diff --git a/pkgs/pkc/src/bls_ietf/threshold.rs b/pkgs/pkc/src/bls_ietf/threshold.rs index ea853e9a..5116fbfd 100644 --- a/pkgs/pkc/src/bls_ietf/threshold.rs +++ b/pkgs/pkc/src/bls_ietf/threshold.rs @@ -9,13 +9,11 @@ use super::pk::PublicKey; use super::sig::Signature; use super::sk::SecretKey; -use crate::bls::blst_ffi::{G1Affine, G2Affine, G1, G2}; -use crate::bls::BlsError; -use crate::common::bls::threshold as math; +use crate::bls::scheme_ops::BlsScheme; +use crate::bls::{BlsError, BlsScIetf}; use crate::prelude::*; use dash_num::Hash256; -use zeroize::Zeroizing; /// Secret key share for threshold signing. #[derive(Clone)] @@ -101,29 +99,9 @@ pub fn split_sk( ids: &[Hash256], rng: &mut impl rand_core::CryptoRngCore, ) -> Result, BlsError> { - if threshold < 2 || ids.is_empty() || threshold > ids.len() { - return Err(BlsError::ThresholdTooLarge); - } - - // An id congruent to zero mod r would make the share equal the master key, and - // ids congruent mod r collide during interpolation. - let id_refs: Vec<&Hash256> = ids.iter().collect(); - math::reduce_share_ids(&id_refs)?; - - let sk_bytes = Zeroizing::new(sk.to_bytes()); - let raw = - crate::common::bls::generate_shares(&sk_bytes, threshold, ids, rng).map_err(|()| BlsError::InvalidSecretKey)?; - - raw - .into_iter() - .map(|share| { - let share_sk = SecretKey::from_bytes(&share.secret).map_err(|_| BlsError::InvalidSecretKey)?; - Ok(SecretKeyShare { - id: share.id, - sk: share_sk, - }) - }) - .collect() + BlsScIetf::split_sk(&sk.0, threshold, ids, rng, |id, inner| { + SecretKeyShare::new(id, SecretKey::from_inner(inner)) + }) } /// Recover a full signature from threshold signature shares via Lagrange @@ -136,30 +114,9 @@ pub fn split_sk( /// ids collide after reduction, or `InvalidSignature` if a share or the /// recovered point fails to decode. pub fn recover_sig(shares: &[&SignatureShare]) -> Result { - if shares.len() < 2 { - return Err(BlsError::InsufficientShares); - } - - // Reduce and validate ids in the scalar field, rejecting zero-reducing - // and (post-reduction) duplicate ids. - let id_refs: Vec<&Hash256> = shares.iter().map(|s| &s.id).collect(); - let ids = math::reduce_share_ids(&id_refs)?; - - // Convert min_pk::Signature -> compressed bytes -> G2Affine -> G2. - let points: Vec = shares - .iter() - .map(|s| { - let bytes = s.sig.to_bytes(); - let aff = G2Affine::uncompress(&bytes).map_err(|_| BlsError::InvalidSignature)?; - Ok(aff.to_projective()) - }) - .collect::, BlsError>>()?; - - let recovered = math::interpolate_g2(&ids, &points); - - // Convert back: G2 -> G2Affine -> compressed bytes -> min_pk::Signature. - let bytes = recovered.to_affine().compress(); - Signature::from_bytes(&bytes).map_err(|_| BlsError::InvalidSignature) + let ids: Vec<_> = shares.iter().map(|s| &s.id).collect(); + let sigs: Vec<_> = shares.iter().map(|s| &s.sig.0).collect(); + BlsScIetf::recover_sig_shares(&ids, &sigs).map(Signature::from_inner) } /// Derive a public key share by evaluating the master public @@ -171,23 +128,6 @@ pub fn recover_sig(shares: &[&SignatureShare]) -> Result { /// given, `InvalidShareId` if `id` reduces to zero in the scalar field, /// or `InvalidPublicKey` if a coefficient or the result fails to decode. pub fn derive_pk_share(master_pks: &[&PublicKey], id: &Hash256) -> Result { - // Evaluating the verification-vector polynomial needs >= 2 coefficients. - if master_pks.len() < 2 { - return Err(BlsError::InvalidVerificationVector); - } - // Convert each min_pk::PublicKey to G1 via G1Affine. - let coeffs_g1: Vec = master_pks - .iter() - .map(|pk| { - let bytes = pk.0.compress(); - let aff = G1Affine::uncompress(&bytes).map_err(|_| BlsError::InvalidPublicKey)?; - Ok(aff.to_projective()) - }) - .collect::, BlsError>>()?; - - let x = math::reduce_id(id)?; - let result = math::eval_poly_g1(&coeffs_g1, &x); - - let bytes = result.to_affine().compress(); - PublicKey::from_bytes(&bytes) + let pks: Vec<_> = master_pks.iter().map(|pk| &pk.0).collect(); + BlsScIetf::derive_pk_share(&pks, id).map(PublicKey::from_inner) } diff --git a/pkgs/pkc/src/common/bls/mod.rs b/pkgs/pkc/src/common/bls/mod.rs index 09a44587..7957f679 100644 --- a/pkgs/pkc/src/common/bls/mod.rs +++ b/pkgs/pkc/src/common/bls/mod.rs @@ -8,92 +8,6 @@ #[expect(dead_code, reason = "compile-time contracts, unused at runtime")] pub(crate) mod contract; -pub(crate) mod threshold; - -use crate::bls::blst_ffi::{self, Fr}; -use crate::prelude::*; - -use dash_num::Hash256; -use zeroize::{Zeroize, Zeroizing}; - -use core::fmt; - -/// Sum secret key scalars (mod group order) via blst FFI. -pub(crate) fn sum_sk_scalars(key_bytes: &[[u8; 32]]) -> Zeroizing<[u8; 32]> { - let mut acc = Fr::default(); - for bytes in key_bytes { - let mut scalar = blst_ffi::scalar_from_bendian(bytes); - let mut term = Fr::from(&scalar); - acc = acc + term; - term.zeroize(); - scalar.b.zeroize(); - } - let mut out_scalar = blst::blst_scalar::from(&acc); - let out_bytes = Zeroizing::new(blst_ffi::bendian_from_scalar(&out_scalar)); - out_scalar.b.zeroize(); - acc.zeroize(); - out_bytes -} - -/// Participant id paired with its secret scalar bytes -pub(crate) struct RawShare { - /// Participant identifier. - pub(crate) id: Hash256, - /// Secret scalar bytes, zeroized on drop. - pub(crate) secret: Zeroizing<[u8; 32]>, -} - -impl fmt::Debug for RawShare { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("RawShare") - .field("id", &self.id) - .field("secret", &"[redacted]") - .finish() - } -} - -/// Generate secret key shares from a polynomial with the -/// given constant term. Returns a Vec of (id, share_bytes) -/// pairs. -pub(crate) fn generate_shares( - sk_bytes: &[u8; 32], - threshold: usize, - ids: &[Hash256], - rng: &mut impl rand_core::CryptoRngCore, -) -> Result, ()> { - let mut coeffs = Zeroizing::new(Vec::with_capacity(threshold)); - - let mut sk_scalar = blst_ffi::scalar_from_bendian(sk_bytes); - coeffs.push(Fr::from(&sk_scalar)); - sk_scalar.b.zeroize(); - - for _ in 1..threshold { - // Generate random 32-byte IKM from CSPRNG - let mut ikm = zeroize::Zeroizing::new([0u8; 32]); - rng.fill_bytes(&mut *ikm); - let rand_sk = blst::min_pk::SecretKey::key_gen_v3(ikm.as_ref(), &[]).map_err(|_| ())?; - let mut rand_bytes = rand_sk.to_bytes(); - let mut rand_scalar = blst_ffi::scalar_from_bendian(&rand_bytes); - coeffs.push(Fr::from(&rand_scalar)); - rand_bytes.zeroize(); - rand_scalar.b.zeroize(); - } - - let mut shares = Vec::with_capacity(ids.len()); - for id in ids { - let x = threshold::fr_from_hash(id); - let mut y = threshold::poly_eval(&coeffs, &x); - - let mut y_scalar = blst::blst_scalar::from(&y); - let share = zeroize::Zeroizing::new(blst_ffi::bendian_from_scalar(&y_scalar)); - y_scalar.b.zeroize(); - y.zeroize(); - - shares.push(RawShare { id: *id, secret: share }); - } - - Ok(shares) -} /// Implement Hash via to_bytes() for a BLS type. macro_rules! impl_hash_via_bytes { diff --git a/pkgs/pkc/src/common/bls/threshold.rs b/pkgs/pkc/src/common/bls/threshold.rs deleted file mode 100644 index ce7cf70e..00000000 --- a/pkgs/pkc/src/common/bls/threshold.rs +++ /dev/null @@ -1,136 +0,0 @@ -// -// Copyright (c) 2026-present, The Dash Core developers -// SPDX-License-Identifier: MIT -// See the accompanying file LICENSE or https://opensource.org/license/MIT -// - -//! Lagrange interpolation and polynomial evaluation over the BLS12-381 scalar -//! field, used by threshold BLS in both bls_ietf and bls_chia. - -use crate::bls::blst_ffi::{self, Fr, Point, G1, G2}; -use crate::bls::BlsError; -use crate::prelude::*; - -use dash_num::Hash256; - -/// Evaluate a polynomial at `x`. Coefficients are in ascending order: -/// `coeffs[0] + coeffs[1]*x + ...`. -pub(crate) fn poly_eval(coeffs: &[Fr], x: &Fr) -> Fr { - // Horner's method: result = c[n-1], then for each - // i from n-2..=0: result = result*x + c[i]. - let n = coeffs.len(); - if n == 0 { - return Fr::default(); - } - let mut result = coeffs[n - 1]; - for i in (0..n - 1).rev() { - result = result * *x + coeffs[i]; - } - result -} - -/// Recover a G2 point from shares via Lagrange interpolation at x=0. -/// -/// `ids` and `points` must have the same length >= 1. -/// Each id must be non-zero and unique. -pub(crate) fn interpolate_g2(ids: &[Fr], points: &[G2]) -> G2 { - let n = ids.len(); - - // Compute Lagrange coefficients at x=0: - // L_i = prod_{j!=i} id_j / (id_j - id_i) - let coeffs = compute_lagrange_coeffs(ids); - - let mut result = G2::identity(); - for i in 0..n { - // Convert Fr coefficient to scalar for point multiplication. - let scalar = blst::blst_scalar::from(&coeffs[i]); - result = result + points[i].mul_scalar(&scalar.b, blst_ffi::FR_BITS); - } - result -} - -/// Lagrange coefficients at x=0 for the given evaluation points (ids). -fn compute_lagrange_coeffs(ids: &[Fr]) -> Vec { - let n = ids.len(); - let mut coeffs = Vec::with_capacity(n); - - for i in 0..n { - // L_i = prod_{j!=i} ids[j] / (ids[j] - ids[i]) - let mut num = Fr::one(); - let mut den = Fr::one(); - - for j in 0..n { - if i == j { - continue; - } - // num *= ids[j] - num = num * ids[j]; - - // den *= (ids[j] - ids[i]) - let diff = ids[j] - ids[i]; - den = den * diff; - } - - coeffs.push(num * den.inverse()); - } - coeffs -} - -/// Evaluate a polynomial of G1 points at scalar `x`. -/// -/// `coeffs_g1[0] + coeffs_g1[1]*x + coeffs_g1[2]*x^2 + ...` -/// Uses Horner's method. -pub(crate) fn eval_poly_g1(coeffs_g1: &[G1], x: &Fr) -> G1 { - let n = coeffs_g1.len(); - if n == 0 { - return G1::identity(); - } - let x_scalar = blst::blst_scalar::from(x); - let mut result = coeffs_g1[n - 1]; - for i in (0..n - 1).rev() { - result = result.mul_scalar(&x_scalar.b, blst_ffi::FR_BITS) + coeffs_g1[i]; - } - result -} - -/// Convert a 32-byte participant ID to a scalar. -pub(crate) fn fr_from_hash(id: &Hash256) -> Fr { - Fr::from(&blst_ffi::scalar_from_bendian(id.as_bytes())) -} - -/// Reduce a participant id into the scalar field, rejecting zero. -/// -/// An id congruent to zero mod `r` evaluates the polynomial at its -/// constant term, which leaks the master secret in share generation. -pub(crate) fn reduce_id(id: &Hash256) -> Result { - let fr = fr_from_hash(id); - if blst::blst_scalar::from(&fr).b == [0u8; 32] { - return Err(BlsError::InvalidShareId); - } - Ok(fr) -} - -/// Reduce participant ids into the scalar field, rejecting ids that -/// reduce to zero and duplicates after reduction. -/// -/// Two distinct hashes congruent mod `r` share a scalar, producing a -/// zero Lagrange denominator that blst inverts to zero silently; a -/// raw-byte duplicate check would not catch them. -pub(crate) fn reduce_share_ids(ids: &[&Hash256]) -> Result, BlsError> { - let fr_ids: Vec = ids.iter().map(|id| fr_from_hash(id)).collect(); - let mut reduced: Vec<[u8; 32]> = Vec::with_capacity(fr_ids.len()); - for fr in &fr_ids { - let bytes = blst::blst_scalar::from(fr).b; - if bytes == [0u8; 32] { - return Err(BlsError::InvalidShareId); - } - reduced.push(bytes); - } - reduced.sort_unstable(); - for pair in reduced.windows(2) { - if pair[0] == pair[1] { - return Err(BlsError::DuplicateShareId); - } - } - Ok(fr_ids) -} diff --git a/pkgs/pkc/src/prelude.rs b/pkgs/pkc/src/prelude.rs index eb99f1ea..16d40d0b 100644 --- a/pkgs/pkc/src/prelude.rs +++ b/pkgs/pkc/src/prelude.rs @@ -6,4 +6,5 @@ //! Re-exports for no_std compatibility. +pub(crate) use alloc::string::String; pub(crate) use alloc::vec::Vec; diff --git a/pkgs/pkc/tests/bls_chia_aggregate.rs b/pkgs/pkc/tests/bls_chia_aggregate.rs index 5f637749..bb461fc8 100644 --- a/pkgs/pkc/tests/bls_chia_aggregate.rs +++ b/pkgs/pkc/tests/bls_chia_aggregate.rs @@ -8,10 +8,8 @@ #![expect(clippy::unwrap_used, reason = "test code")] -mod common; - -use crate::common::bls::*; - +use common::*; +use dash_pkc::bls::tests as common; use dash_pkc::bls_chia::{aggregate_pk, aggregate_sig, verify_aggregates, PublicKey, SecretKey, Signature}; use rstest::*; @@ -110,8 +108,7 @@ fn identity_cancellation_is_not_rejected(chia_sk0: SecretKey, #[case] verify_msg } mod kat { - use super::common::{self, decode_hex, VectorFile}; - + use dash_dev::{arr_from_hex, Corpus}; use hex_conservative::DisplayHex; use serde::Deserialize; @@ -138,15 +135,15 @@ mod kat { #[test] fn kat_aggregate_pk() { - let f: VectorFile = common::load("bls_chia_aggregate"); - let vecs: Vec = common::parse_sub(&f, "aggregate_pk"); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_aggregate"); + let vecs: Vec = corpus.vectors("aggregate_pk"); for v in &vecs { let pks: Vec = v .pks .iter() .map(|h| { - let b: [u8; 48] = decode_hex(h).try_into().unwrap(); + let b: [u8; 48] = arr_from_hex(h); dash_pkc::bls_chia::PublicKey::from_bytes(&b).unwrap() }) .collect(); @@ -158,15 +155,15 @@ mod kat { #[test] fn kat_aggregate_sig() { - let f: VectorFile = common::load("bls_chia_aggregate"); - let vecs: Vec = common::parse_sub(&f, "aggregate_sig"); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_aggregate"); + let vecs: Vec = corpus.vectors("aggregate_sig"); for v in &vecs { let sigs: Vec = v .sigs .iter() .map(|h| { - let b: [u8; 96] = decode_hex(h).try_into().unwrap(); + let b: [u8; 96] = arr_from_hex(h); dash_pkc::bls_chia::Signature::from_bytes(&b).unwrap() }) .collect(); @@ -178,21 +175,21 @@ mod kat { #[test] fn kat_secure_verify_aggregates() { - let f: VectorFile = common::load("bls_chia_secure_aggregate"); - let vecs: Vec = common::parse_sub(&f, "secure_verify_aggregates"); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_secure_aggregate"); + let vecs: Vec = corpus.vectors("secure_verify_aggregates"); for v in &vecs { - let msg: [u8; 32] = decode_hex(&v.msg).try_into().unwrap(); + let msg: [u8; 32] = arr_from_hex(&v.msg); let pks: Vec = v .pks .iter() .map(|h| { - let b: [u8; 48] = decode_hex(h).try_into().unwrap(); + let b: [u8; 48] = arr_from_hex(h); dash_pkc::bls_chia::PublicKey::from_bytes(&b).unwrap() }) .collect(); - let expected_agg: [u8; 96] = decode_hex(&v.agg_sig_secure).try_into().unwrap(); + let expected_agg: [u8; 96] = arr_from_hex(&v.agg_sig_secure); let agg_sig = dash_pkc::bls_chia::Signature::from_bytes(&expected_agg).unwrap(); let pk_refs: Vec<_> = pks.iter().collect(); diff --git a/pkgs/pkc/tests/bls_chia_dh.rs b/pkgs/pkc/tests/bls_chia_dh.rs index 87bd4d48..b56b0831 100644 --- a/pkgs/pkc/tests/bls_chia_dh.rs +++ b/pkgs/pkc/tests/bls_chia_dh.rs @@ -8,10 +8,8 @@ #![expect(clippy::unwrap_used, reason = "test code")] -mod common; - -use crate::common::bls::*; - +use common::*; +use dash_pkc::bls::tests as common; use dash_pkc::bls_chia::{PublicKey, SecretKey}; use rstest::*; @@ -26,9 +24,12 @@ fn dh_exchange_roundtrip(chia_sk0: SecretKey, chia_sk1: SecretKey) { assert_eq!(shared_a.to_bytes(), shared_b.to_bytes()); } +/// Reference vectors through the public wrapper. +/// +/// The scheme-level KAT pins `dh_exchange` on the trait; this pins that +/// `PublicKey::dh_exchange` is still wired to it. mod kat { - use super::common::{self, decode_hex, VectorFile}; - + use dash_dev::{arr_from_hex, Corpus}; use hex_conservative::DisplayHex; use serde::Deserialize; @@ -40,16 +41,12 @@ mod kat { } #[test] - fn kat_dh() { - let f: VectorFile = common::load("bls_chia_dh"); - let vecs: Vec = common::parse_sub(&f, "dh_exchange"); - - for v in &vecs { - let sk_bytes: [u8; 32] = decode_hex(&v.sk).try_into().unwrap(); - let pk_bytes: [u8; 48] = decode_hex(&v.peer_pk).try_into().unwrap(); - let sk = dash_pkc::bls_chia::SecretKey::from_bytes(&sk_bytes).unwrap(); - let peer_pk = dash_pkc::bls_chia::PublicKey::from_bytes(&pk_bytes).unwrap(); - let shared = dash_pkc::bls_chia::PublicKey::dh_exchange(&sk, &peer_pk).unwrap(); + fn public_api_dh_matches_vectors() { + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_dh"); + for v in corpus.vectors::("dh_exchange") { + let sk = super::SecretKey::from_bytes(&arr_from_hex(&v.sk)).unwrap(); + let peer = super::PublicKey::from_bytes(&arr_from_hex(&v.peer_pk)).unwrap(); + let shared = super::PublicKey::dh_exchange(&sk, &peer).unwrap(); assert_eq!(shared.to_bytes().to_lower_hex_string(), v.shared); } } diff --git a/pkgs/pkc/tests/bls_chia_keygen.rs b/pkgs/pkc/tests/bls_chia_keygen.rs index 475196a5..514cf907 100644 --- a/pkgs/pkc/tests/bls_chia_keygen.rs +++ b/pkgs/pkc/tests/bls_chia_keygen.rs @@ -9,11 +9,10 @@ #![expect(clippy::unwrap_used, reason = "test code")] -mod common; - -use crate::common::bls::*; - -use dash_pkc::bls_chia::SecretKey; +use common::*; +#[cfg(feature = "serde")] +use dash_dev::assert_json_rt; +use dash_pkc::{bls::tests as common, bls_chia::SecretKey}; use rstest::*; /// Secret key serialization round-trips. @@ -30,7 +29,7 @@ fn sk_generate_rejects_short_ikm() { assert!(SecretKey::generate(&[0u8; 31]).is_err()); } -/// Keys derive using EIP-2333 (blst `key_gen_v3`) +/// Keys derived using draft-03 (blst `key_gen_v3`) #[rstest] #[case(&RSEED[0], "4a353be3dac091a0a7e640620372f5e1e2e4401717c1e79cac6ffba8f6905604")] #[case(&RSEED[1], "6fc9d9a2b05fd1f0e51bc91041a03be8657081f272ec281aff731624f0d1c220")] @@ -56,9 +55,7 @@ fn pk_roundtrip(chia_sk0: SecretKey) { #[rstest] fn serde_pk_roundtrip(chia_sk0: SecretKey) { let pk = chia_sk0.public_key(); - let json = serde_json::to_string(&pk).unwrap(); - let restored: dash_pkc::bls_chia::PublicKey = serde_json::from_str(&json).unwrap(); - assert_eq!(restored, pk); + assert_json_rt(&pk); } /// Same key serialized under legacy and IETF formats must produce @@ -72,8 +69,7 @@ fn cross_format_pk_differs(chia_sk0: SecretKey) { } mod kat { - use super::common::{self, decode_hex, VectorFile}; - + use dash_dev::{arr_from_hex, Corpus}; use hex_conservative::DisplayHex; use serde::Deserialize; @@ -85,11 +81,11 @@ mod kat { #[test] fn kat_derive_pk() { - let f: VectorFile = common::load("bls_chia_keygen"); - let vecs: Vec = common::parse_sub(&f, "derive_pk"); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_keygen"); + let vecs: Vec = corpus.vectors("derive_pk"); for v in &vecs { - let sk_bytes: [u8; 32] = decode_hex(&v.sk).try_into().unwrap(); + let sk_bytes: [u8; 32] = arr_from_hex(&v.sk); let sk = dash_pkc::bls_chia::SecretKey::from_bytes(&sk_bytes).unwrap(); assert_eq!( sk.public_key().to_bytes().to_lower_hex_string(), diff --git a/pkgs/pkc/tests/bls_chia_llmq.rs b/pkgs/pkc/tests/bls_chia_llmq.rs index e25e88a3..5008e3a8 100644 --- a/pkgs/pkc/tests/bls_chia_llmq.rs +++ b/pkgs/pkc/tests/bls_chia_llmq.rs @@ -8,15 +8,15 @@ #![expect(clippy::unwrap_used, reason = "test code")] -mod common; - +use dash_dev::{arr_from_hex, Corpus}; use dash_num::Hash256; +use dash_pkc::bls::tests as common; use dash_pkc::bls_chia::{aggregate_pk, aggregate_sig, threshold, PublicKey, SecretKey, Signature}; use hex_conservative::DisplayHex; #[test] fn llmq_contribute_vvec() { - let f = common::load("bls_chia_llmq_100"); + let f: dash_dev::Value = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_llmq_100").into_value(); for c in f["contribute"].as_array().unwrap() { let vvec: Vec<&str> = c["vvec"] @@ -27,28 +27,28 @@ fn llmq_contribute_vvec() { .collect(); for pk_hex in &vvec { - assert!(PublicKey::from_bytes(&common::hex_to_48(pk_hex)).is_ok()); + assert!(PublicKey::from_bytes(&arr_from_hex(pk_hex)).is_ok()); } } } #[test] fn llmq_contribute_sk_shares() { - let f = common::load("bls_chia_llmq_100"); + let f: dash_dev::Value = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_llmq_100").into_value(); let n = f["inputs"]["n"].as_u64().unwrap() as usize; for c in f["contribute"].as_array().unwrap() { let shares = c["sk_shares"].as_array().unwrap(); assert_eq!(shares.len(), n); for s in shares { - assert!(SecretKey::from_bytes(&common::hex_to_32(s.as_str().unwrap())).is_ok()); + assert!(SecretKey::from_bytes(&arr_from_hex(s.as_str().unwrap())).is_ok()); } } } #[test] fn llmq_verify_contributions() { - let f = common::load("bls_chia_llmq_100"); + let f: dash_dev::Value = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_llmq_100").into_value(); let member_ids: Vec = f["inputs"]["member_ids"] .as_array() .unwrap() @@ -72,11 +72,11 @@ fn llmq_verify_contributions() { .as_array() .unwrap() .iter() - .map(|v| PublicKey::from_bytes(&common::hex_to_48(v.as_str().unwrap())).unwrap()) + .map(|v| PublicKey::from_bytes(&arr_from_hex(v.as_str().unwrap())).unwrap()) .collect(); let vvec_refs: Vec<&PublicKey> = vvec.iter().collect(); - let sk_share = SecretKey::from_bytes(&common::hex_to_32(sk_hex.as_str().unwrap())).unwrap(); + let sk_share = SecretKey::from_bytes(&arr_from_hex(sk_hex.as_str().unwrap())).unwrap(); let pk_from_share = sk_share.public_key(); let member_id = common::hash_from_hex(&member_ids[member_idx]); @@ -96,7 +96,7 @@ fn llmq_verify_contributions() { #[test] fn llmq_commit_quorum_key() { - let f = common::load("bls_chia_llmq_100"); + let f: dash_dev::Value = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_llmq_100").into_value(); let commits = f["commit"].as_array().unwrap(); let expected_qpk = commits[0]["quorum_public_key"].as_str().unwrap(); @@ -111,7 +111,7 @@ fn llmq_commit_quorum_key() { let contributions = f["contribute"].as_array().unwrap(); let member_pks: Vec = contributions .iter() - .map(|c| PublicKey::from_bytes(&common::hex_to_48(c["vvec"][0].as_str().unwrap())).unwrap()) + .map(|c| PublicKey::from_bytes(&arr_from_hex(c["vvec"][0].as_str().unwrap())).unwrap()) .collect(); let pk_refs: Vec<&PublicKey> = member_pks.iter().collect(); let agg_pk = aggregate_pk(&pk_refs).unwrap(); @@ -120,7 +120,7 @@ fn llmq_commit_quorum_key() { #[test] fn llmq_commit_sk_share() { - let f = common::load("bls_chia_llmq_100"); + let f: dash_dev::Value = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_llmq_100").into_value(); for (member_idx, c) in f["commit"].as_array().unwrap().iter().enumerate() { let expected_share = c["sk_share"].as_str().unwrap(); @@ -128,7 +128,7 @@ fn llmq_commit_sk_share() { let mut received: Vec = Vec::new(); for contrib in f["contribute"].as_array().unwrap() { let sk_hex = contrib["sk_shares"][member_idx].as_str().unwrap(); - received.push(SecretKey::from_bytes(&common::hex_to_32(sk_hex)).unwrap()); + received.push(SecretKey::from_bytes(&arr_from_hex(sk_hex)).unwrap()); } let refs: Vec<&SecretKey> = received.iter().collect(); @@ -139,11 +139,11 @@ fn llmq_commit_sk_share() { #[test] fn llmq_commit_member_sig() { - let f = common::load("bls_chia_llmq_100"); + let f: dash_dev::Value = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_llmq_100").into_value(); for c in f["commit"].as_array().unwrap() { - let sk_share = SecretKey::from_bytes(&common::hex_to_32(c["sk_share"].as_str().unwrap())).unwrap(); - let commitment_hash = common::hex_to_32(c["commitment_hash"].as_str().unwrap()); + let sk_share = SecretKey::from_bytes(&arr_from_hex(c["sk_share"].as_str().unwrap())).unwrap(); + let commitment_hash = arr_from_hex(c["commitment_hash"].as_str().unwrap()); // Sign and self-verify. let sig = sk_share.sign(&commitment_hash); @@ -158,11 +158,11 @@ fn llmq_commit_member_sig() { #[test] fn llmq_commit_quorum_sig_share() { - let f = common::load("bls_chia_llmq_100"); + let f: dash_dev::Value = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_llmq_100").into_value(); for c in f["commit"].as_array().unwrap() { - let sk_share = SecretKey::from_bytes(&common::hex_to_32(c["sk_share"].as_str().unwrap())).unwrap(); - let quorum_hash = common::hex_to_32(c["quorum_hash"].as_str().unwrap()); + let sk_share = SecretKey::from_bytes(&arr_from_hex(c["sk_share"].as_str().unwrap())).unwrap(); + let quorum_hash = arr_from_hex(c["quorum_hash"].as_str().unwrap()); // Sign and self-verify. let sig = sk_share.sign(&quorum_hash); @@ -177,7 +177,7 @@ fn llmq_commit_quorum_sig_share() { #[test] fn llmq_finalize_recover_quorum_sig() { - let f = common::load("bls_chia_llmq_100"); + let f: dash_dev::Value = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_llmq_100").into_value(); let fin = &f["finalize"]; let commits = f["commit"].as_array().unwrap(); @@ -195,14 +195,14 @@ fn llmq_finalize_recover_quorum_sig() { .map(|v| v.as_str().unwrap().to_string()) .collect(); - let quorum_hash = common::hex_to_32(fin["quorum_hash"].as_str().unwrap()); + let quorum_hash = arr_from_hex(fin["quorum_hash"].as_str().unwrap()); // signer_ids are internal byte order; byte-reverse to // match the display-order member_ids. let sig_shares: Vec = signer_ids .iter() .map(|sid| { - let sid_bytes = common::hex_to_32(sid); + let sid_bytes = arr_from_hex::<32>(sid); let sid_display = sid_bytes .iter() .copied() @@ -210,7 +210,7 @@ fn llmq_finalize_recover_quorum_sig() { .collect::>() .to_lower_hex_string(); let idx = member_ids.iter().position(|m| *m == sid_display).unwrap(); - let sk = SecretKey::from_bytes(&common::hex_to_32(commits[idx]["sk_share"].as_str().unwrap())).unwrap(); + let sk = SecretKey::from_bytes(&arr_from_hex(commits[idx]["sk_share"].as_str().unwrap())).unwrap(); let member_id = common::hash_from_hex(&sid_display); let sk_share = threshold::SecretKeyShare::new(member_id, sk); sk_share.sign(&quorum_hash) @@ -220,7 +220,7 @@ fn llmq_finalize_recover_quorum_sig() { let share_refs: Vec<&threshold::SignatureShare> = sig_shares.iter().collect(); let recovered = threshold::recover_sig(&share_refs).unwrap(); - let quorum_pk = PublicKey::from_bytes(&common::hex_to_48(commits[0]["quorum_public_key"].as_str().unwrap())).unwrap(); + let quorum_pk = PublicKey::from_bytes(&arr_from_hex(commits[0]["quorum_public_key"].as_str().unwrap())).unwrap(); assert!( recovered.verify(&quorum_hash, &quorum_pk).is_ok(), "recovered quorum sig failed verification" @@ -232,7 +232,7 @@ fn llmq_finalize_recover_quorum_sig() { .iter() .zip(all_ids.iter()) .map(|(c, id)| { - let sk = SecretKey::from_bytes(&common::hex_to_32(c["sk_share"].as_str().unwrap())).unwrap(); + let sk = SecretKey::from_bytes(&arr_from_hex(c["sk_share"].as_str().unwrap())).unwrap(); let sk_share = threshold::SecretKeyShare::new(*id, sk); sk_share.sign(&quorum_hash) }) @@ -248,17 +248,17 @@ fn llmq_finalize_recover_quorum_sig() { #[test] fn llmq_finalize_aggregated_member_sigs() { - let f = common::load("bls_chia_llmq_100"); + let f: dash_dev::Value = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_llmq_100").into_value(); let commits = f["commit"].as_array().unwrap(); // Re-sign the commitment hash with each member's // sk_share using our library, then aggregate. - let commitment_hash = common::hex_to_32(commits[0]["commitment_hash"].as_str().unwrap()); + let commitment_hash = arr_from_hex(commits[0]["commitment_hash"].as_str().unwrap()); let member_sigs: Vec = commits .iter() .map(|c| { - let sk = SecretKey::from_bytes(&common::hex_to_32(c["sk_share"].as_str().unwrap())).unwrap(); + let sk = SecretKey::from_bytes(&arr_from_hex(c["sk_share"].as_str().unwrap())).unwrap(); sk.sign(&commitment_hash) }) .collect(); @@ -269,7 +269,7 @@ fn llmq_finalize_aggregated_member_sigs() { let member_pks: Vec = commits .iter() .map(|c| { - let sk = SecretKey::from_bytes(&common::hex_to_32(c["sk_share"].as_str().unwrap())).unwrap(); + let sk = SecretKey::from_bytes(&arr_from_hex(c["sk_share"].as_str().unwrap())).unwrap(); sk.public_key() }) .collect(); diff --git a/pkgs/pkc/tests/bls_chia_ser.rs b/pkgs/pkc/tests/bls_chia_ser.rs index 45c08a29..84a77e7f 100644 --- a/pkgs/pkc/tests/bls_chia_ser.rs +++ b/pkgs/pkc/tests/bls_chia_ser.rs @@ -8,11 +8,8 @@ #![expect(clippy::unwrap_used, reason = "test code")] -mod common; - mod kat { - use super::common::{self, decode_hex, VectorFile}; - + use dash_dev::{arr_from_hex, Corpus}; use hex_conservative::DisplayHex; use serde::Deserialize; @@ -22,23 +19,17 @@ mod kat { pk_ietf: String, } - #[derive(Deserialize)] - struct SigSerInternalVector { - sig_legacy: String, - sig_ietf: String, - } - /// Validate that the same G1 point serializes differently /// under legacy vs IETF formats. #[test] fn kat_ser_pk_formats() { - let f: VectorFile = common::load("bls_chia_ser_internals"); - let vecs: Vec = common::parse_sub(&f, "pk_serialization"); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_ser_internals"); + let vecs: Vec = corpus.vectors("pk_serialization"); for v in &vecs { // Legacy bytes should deserialize and re-serialize // identically. - let legacy_bytes: [u8; 48] = decode_hex(&v.pk_legacy).try_into().unwrap(); + let legacy_bytes: [u8; 48] = arr_from_hex(&v.pk_legacy); let pk = dash_pkc::bls_chia::PublicKey::from_bytes(&legacy_bytes).unwrap(); assert_eq!( pk.to_bytes().to_lower_hex_string(), @@ -50,25 +41,6 @@ mod kat { assert_ne!(v.pk_legacy, v.pk_ietf, "legacy and ietf should differ"); } } - - /// Validate legacy G2 serialization roundtrip. - #[test] - fn kat_ser_sig_formats() { - let f: VectorFile = common::load("bls_chia_ser_internals"); - let vecs: Vec = common::parse_sub(&f, "sig_serialization"); - - for v in &vecs { - let legacy_bytes: [u8; 96] = decode_hex(&v.sig_legacy).try_into().unwrap(); - let sig = dash_pkc::bls_chia::Signature::from_bytes(&legacy_bytes).unwrap(); - assert_eq!( - sig.to_bytes().to_lower_hex_string(), - v.sig_legacy, - "legacy sig roundtrip mismatch" - ); - - assert_ne!(v.sig_legacy, v.sig_ietf, "legacy and ietf should differ"); - } - } } /// The identity passes the subgroup check yet verifies any message, so the @@ -118,3 +90,29 @@ fn signature_serialization_is_idempotent() { let twice = dash_pkc::bls_chia::Signature::from_bytes(&once).unwrap().to_bytes(); assert_eq!(once, twice); } + +/// Legacy G2 round-trip through the public wrapper. +/// +/// The scheme-level KAT pins `BlsScChia::sig_{from,to}_bytes`; this pins +/// that `Signature::{from,to}_bytes` is still wired to it. +mod kat_sig { + use dash_dev::{arr_from_hex, Corpus}; + use hex_conservative::DisplayHex; + use serde::Deserialize; + + #[derive(Deserialize)] + struct SigSerVector { + sig_legacy: String, + sig_ietf: String, + } + + #[test] + fn public_api_legacy_sig_roundtrips() { + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_ser_internals"); + for v in corpus.vectors::("sig_serialization") { + let sig = dash_pkc::bls_chia::Signature::from_bytes(&arr_from_hex(&v.sig_legacy)).unwrap(); + assert_eq!(sig.to_bytes().to_lower_hex_string(), v.sig_legacy); + assert_ne!(v.sig_legacy, v.sig_ietf, "legacy and ietf should differ"); + } + } +} diff --git a/pkgs/pkc/tests/bls_chia_sign.rs b/pkgs/pkc/tests/bls_chia_sign.rs index 4daac981..ed327e7e 100644 --- a/pkgs/pkc/tests/bls_chia_sign.rs +++ b/pkgs/pkc/tests/bls_chia_sign.rs @@ -8,11 +8,10 @@ #![expect(clippy::unwrap_used, reason = "test code")] -mod common; - -use crate::common::bls::*; - -use dash_pkc::bls_chia::{SecretKey, Signature}; +use common::*; +#[cfg(feature = "serde")] +use dash_dev::assert_json_rt; +use dash_pkc::{bls::tests as common, bls_chia::SecretKey, bls_chia::Signature}; use rstest::*; /// Sign then verify round-trips. @@ -62,9 +61,7 @@ fn sig_roundtrip(chia_sk0: SecretKey, msg32: [u8; 32]) { #[rstest] fn serde_sig_roundtrip(chia_sk0: SecretKey, msg32: [u8; 32]) { let sig = chia_sk0.sign(&msg32); - let json = serde_json::to_string(&sig).unwrap(); - let restored: Signature = serde_json::from_str(&json).unwrap(); - assert_eq!(restored, sig); + assert_json_rt(&sig); } /// Same signature serialized under legacy and IETF formats @@ -101,12 +98,14 @@ fn legacy_pk_serialization_differs_from_ietf() { assert_ne!(legacy_pk.to_bytes(), ietf_pk.to_bytes()); } +/// Reference vectors through the public wrapper. +/// +/// The scheme-level KAT in `bls::scheme_chia` pins `BlsScChia::sign`; this +/// pins that `SecretKey::sign` is still wired to it. mod kat { - use super::common::{self, decode_hex, VectorFile}; - + use dash_dev::{arr_from_hex, Corpus}; use hex_conservative::DisplayHex; use serde::Deserialize; - use sha2::{Digest, Sha256}; #[derive(Deserialize)] struct SignVector { @@ -115,96 +114,13 @@ mod kat { sig: String, } - #[derive(Deserialize)] - #[expect(dead_code, reason = "deserialized from corpus JSON")] - struct HashInternalVector { - msg: String, - t00_hash: String, - t01_hash: String, - t10_hash: String, - t11_hash: String, - t00_fp: String, - t01_fp: String, - t10_fp: String, - t11_fp: String, - hash_to_g2_legacy: String, - } - - #[test] - fn kat_sign() { - let f: VectorFile = common::load("bls_chia_sign"); - let vecs: Vec = common::parse_sub(&f, "sign"); - - for v in &vecs { - let sk_bytes: [u8; 32] = decode_hex(&v.sk).try_into().unwrap(); - let msg: [u8; 32] = decode_hex(&v.msg).try_into().unwrap(); - let sk = dash_pkc::bls_chia::SecretKey::from_bytes(&sk_bytes).unwrap(); - let sig = sk.sign(&msg); - assert_eq!( - sig.to_bytes().to_lower_hex_string(), - v.sig, - "sig mismatch for sk={} msg={}", - v.sk, - v.msg - ); - } - } - - /// Validate SHA-256 domain hashing matches reference vectors. - #[test] - fn kat_hash_sha256() { - let f: VectorFile = common::load("bls_chia_hash_internals"); - let vecs: Vec = common::parse_sub(&f, "hash_internals"); - - for v in &vecs { - let msg = decode_hex(&v.msg); - let msg32: [u8; 32] = msg.try_into().unwrap(); - - // Reproduce: input = msg(32) || tag(7) || suffix(1) - let tags: [&[u8; 7]; 4] = [b"G2_0_c0", b"G2_0_c1", b"G2_1_c0", b"G2_1_c1"]; - let expected = [&v.t00_hash, &v.t01_hash, &v.t10_hash, &v.t11_hash]; - - for (tag, exp) in tags.iter().zip(expected.iter()) { - let mut input = [0u8; 40]; - input[..32].copy_from_slice(&msg32); - input[32..39].copy_from_slice(*tag); - - input[39] = 0; - let h0 = Sha256::digest(input); - input[39] = 1; - let h1 = Sha256::digest(input); - - let mut concat = [0u8; 64]; - concat[..32].copy_from_slice(&h0); - concat[32..].copy_from_slice(&h1); - assert_eq!( - concat.to_lower_hex_string(), - **exp, - "SHA-256 mismatch for tag {:?}", - std::str::from_utf8(*tag).unwrap() - ); - } - } - } - - /// Validate the full hash-to-G2 output. #[test] - fn kat_hash_to_g2() { - let f: VectorFile = common::load("bls_chia_hash_internals"); - let vecs: Vec = common::parse_sub(&f, "hash_internals"); - - for v in &vecs { - let msg: [u8; 32] = decode_hex(&v.msg).try_into().unwrap(); - let sk_bytes = [1u8; 32]; - let sk = dash_pkc::bls_chia::SecretKey::from_bytes(&sk_bytes).unwrap(); - let _sig = sk.sign(&msg); - - // We can't directly access hash_to_g2 output, but we - // can verify signing produces the expected signature - // (which transitively validates hash_to_g2). - // The sign KAT already covers this, so here we just - // verify the hash output bytes if exposed. - // For now, the kat_sign test covers this end-to-end. + fn public_api_signing_matches_vectors() { + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_chia_sign"); + for v in corpus.vectors::("sign") { + let sk = dash_pkc::bls_chia::SecretKey::from_bytes(&arr_from_hex(&v.sk)).unwrap(); + let msg: [u8; 32] = arr_from_hex(&v.msg); + assert_eq!(sk.sign(&msg).to_bytes().to_lower_hex_string(), v.sig); } } } diff --git a/pkgs/pkc/tests/bls_chia_threshold.rs b/pkgs/pkc/tests/bls_chia_threshold.rs index 31b4c83e..10797d43 100644 --- a/pkgs/pkc/tests/bls_chia_threshold.rs +++ b/pkgs/pkc/tests/bls_chia_threshold.rs @@ -8,11 +8,9 @@ #![expect(clippy::unwrap_used, reason = "test code")] -mod common; - -use crate::common::bls::*; - +use common::*; use dash_num::Hash256; +use dash_pkc::bls::tests as common; use dash_pkc::bls_chia::{threshold, BlsError, SecretKey}; use rstest::*; diff --git a/pkgs/pkc/tests/bls_ietf_aggregate.rs b/pkgs/pkc/tests/bls_ietf_aggregate.rs index 5254f6a5..53a834c5 100644 --- a/pkgs/pkc/tests/bls_ietf_aggregate.rs +++ b/pkgs/pkc/tests/bls_ietf_aggregate.rs @@ -8,10 +8,8 @@ #![expect(clippy::unwrap_used, reason = "test code")] -mod common; - -use crate::common::bls::*; - +use common::*; +use dash_pkc::bls::tests as common; use dash_pkc::bls_ietf::{ aggregate_pk, aggregate_sig, fast_verify_aggregates, verify_aggregates, PublicKey, SecretKey, Signature, }; @@ -132,8 +130,7 @@ fn identity_cancellation_is_rejected(ietf_sk0: SecretKey, #[case] verify_msg: [u } mod kat { - use super::common::{self, decode_hex, VectorFile}; - + use dash_dev::{arr_from_hex, vec_from_hex, Corpus}; use hex_conservative::DisplayHex; use serde::Deserialize; @@ -166,15 +163,15 @@ mod kat { #[test] fn kat_aggregate_pk() { - let f: VectorFile = common::load("bls_ietf_aggregate"); - let vecs: Vec = common::parse_sub(&f, "aggregate_pk"); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_ietf_aggregate"); + let vecs: Vec = corpus.vectors("aggregate_pk"); for v in &vecs { let pks: Vec = v .pks .iter() .map(|h| { - let b: [u8; 48] = decode_hex(h).try_into().unwrap(); + let b: [u8; 48] = arr_from_hex(h); dash_pkc::bls_ietf::PublicKey::from_bytes(&b).unwrap() }) .collect(); @@ -186,15 +183,15 @@ mod kat { #[test] fn kat_aggregate_sig() { - let f: VectorFile = common::load("bls_ietf_aggregate"); - let vecs: Vec = common::parse_sub(&f, "aggregate_sig"); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_ietf_aggregate"); + let vecs: Vec = corpus.vectors("aggregate_sig"); for v in &vecs { let sigs: Vec = v .sigs .iter() .map(|h| { - let b: [u8; 96] = decode_hex(h).try_into().unwrap(); + let b: [u8; 96] = arr_from_hex(h); dash_pkc::bls_ietf::Signature::from_bytes(&b).unwrap() }) .collect(); @@ -206,15 +203,15 @@ mod kat { #[test] fn kat_aggregate_sk() { - let f: VectorFile = common::load("bls_aggregate"); - let vecs: Vec = common::parse_sub(&f, "aggregate_sk"); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_aggregate"); + let vecs: Vec = corpus.vectors("aggregate_sk"); for v in &vecs { let sks: Vec = v .sks .iter() .map(|h| { - let b: [u8; 32] = decode_hex(h).try_into().unwrap(); + let b: [u8; 32] = arr_from_hex(h); dash_pkc::bls_ietf::SecretKey::from_bytes(&b).unwrap() }) .collect(); @@ -226,21 +223,21 @@ mod kat { #[test] fn kat_secure_verify_aggregates() { - let f: VectorFile = common::load("bls_ietf_secure_aggregate"); - let vecs: Vec = common::parse_sub(&f, "secure_verify_aggregates"); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_ietf_secure_aggregate"); + let vecs: Vec = corpus.vectors("secure_verify_aggregates"); for v in &vecs { - let msg = decode_hex(&v.msg); + let msg = vec_from_hex(&v.msg); let pks: Vec = v .pks .iter() .map(|h| { - let b: [u8; 48] = decode_hex(h).try_into().unwrap(); + let b: [u8; 48] = arr_from_hex(h); dash_pkc::bls_ietf::PublicKey::from_bytes(&b).unwrap() }) .collect(); - let expected_agg: [u8; 96] = decode_hex(&v.agg_sig_secure).try_into().unwrap(); + let expected_agg: [u8; 96] = arr_from_hex(&v.agg_sig_secure); let agg_sig = dash_pkc::bls_ietf::Signature::from_bytes(&expected_agg).unwrap(); let pk_refs: Vec<_> = pks.iter().collect(); diff --git a/pkgs/pkc/tests/bls_ietf_dh.rs b/pkgs/pkc/tests/bls_ietf_dh.rs index 6aecf53a..6cf57891 100644 --- a/pkgs/pkc/tests/bls_ietf_dh.rs +++ b/pkgs/pkc/tests/bls_ietf_dh.rs @@ -8,10 +8,8 @@ #![expect(clippy::unwrap_used, reason = "test code")] -mod common; - -use crate::common::bls::*; - +use common::*; +use dash_pkc::bls::tests as common; use dash_pkc::bls_ietf::{PublicKey, SecretKey}; use rstest::*; @@ -26,9 +24,12 @@ fn dh_exchange_roundtrip(ietf_sk0: SecretKey, ietf_sk1: SecretKey) { assert_eq!(shared_a.to_bytes(), shared_b.to_bytes()); } +/// Reference vectors through the public wrapper. +/// +/// The scheme-level KAT pins `dh_exchange` on the trait; this pins that +/// `PublicKey::dh_exchange` is still wired to it. mod kat { - use super::common::{self, decode_hex, VectorFile}; - + use dash_dev::{arr_from_hex, Corpus}; use hex_conservative::DisplayHex; use serde::Deserialize; @@ -40,16 +41,12 @@ mod kat { } #[test] - fn kat_dh() { - let f: VectorFile = common::load("bls_ietf_dh"); - let vecs: Vec = common::parse_sub(&f, "dh_exchange"); - - for v in &vecs { - let sk_bytes: [u8; 32] = decode_hex(&v.sk).try_into().unwrap(); - let pk_bytes: [u8; 48] = decode_hex(&v.peer_pk).try_into().unwrap(); - let sk = dash_pkc::bls_ietf::SecretKey::from_bytes(&sk_bytes).unwrap(); - let peer_pk = dash_pkc::bls_ietf::PublicKey::from_bytes(&pk_bytes).unwrap(); - let shared = dash_pkc::bls_ietf::PublicKey::dh_exchange(&sk, &peer_pk).unwrap(); + fn public_api_dh_matches_vectors() { + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_ietf_dh"); + for v in corpus.vectors::("dh_exchange") { + let sk = super::SecretKey::from_bytes(&arr_from_hex(&v.sk)).unwrap(); + let peer = super::PublicKey::from_bytes(&arr_from_hex(&v.peer_pk)).unwrap(); + let shared = super::PublicKey::dh_exchange(&sk, &peer).unwrap(); assert_eq!(shared.to_bytes().to_lower_hex_string(), v.shared); } } diff --git a/pkgs/pkc/tests/bls_ietf_keygen.rs b/pkgs/pkc/tests/bls_ietf_keygen.rs index c48fe07e..8e30bf8a 100644 --- a/pkgs/pkc/tests/bls_ietf_keygen.rs +++ b/pkgs/pkc/tests/bls_ietf_keygen.rs @@ -8,11 +8,10 @@ #![expect(clippy::unwrap_used, reason = "test code")] -mod common; - -use crate::common::bls::*; - -use dash_pkc::bls_ietf::SecretKey; +use common::*; +#[cfg(feature = "serde")] +use dash_dev::assert_json_rt; +use dash_pkc::{bls::tests as common, bls_ietf::SecretKey}; use rstest::*; /// Secret key serialization round-trips. @@ -44,9 +43,7 @@ fn pk_roundtrip(ietf_sk0: SecretKey) { #[rstest] fn serde_pk_roundtrip(ietf_sk0: SecretKey) { let pk = ietf_sk0.public_key(); - let json = serde_json::to_string(&pk).unwrap(); - let restored: dash_pkc::bls_ietf::PublicKey = serde_json::from_str(&json).unwrap(); - assert_eq!(restored, pk); + assert_json_rt(&pk); } /// Same key serialized under IETF and legacy formats must differ. @@ -59,8 +56,7 @@ fn cross_format_pk_differs(ietf_sk0: SecretKey) { } mod kat { - use super::common::{self, decode_hex, VectorFile}; - + use dash_dev::{arr_from_hex, Corpus}; use hex_conservative::DisplayHex; use serde::Deserialize; @@ -72,11 +68,11 @@ mod kat { #[test] fn kat_derive_pk() { - let f: VectorFile = common::load("bls_ietf_keygen"); - let vecs: Vec = common::parse_sub(&f, "derive_pk"); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_ietf_keygen"); + let vecs: Vec = corpus.vectors("derive_pk"); for v in &vecs { - let sk_bytes: [u8; 32] = decode_hex(&v.sk).try_into().unwrap(); + let sk_bytes: [u8; 32] = arr_from_hex(&v.sk); let sk = dash_pkc::bls_ietf::SecretKey::from_bytes(&sk_bytes).unwrap(); assert_eq!( sk.public_key().to_bytes().to_lower_hex_string(), diff --git a/pkgs/pkc/tests/bls_ietf_llmq.rs b/pkgs/pkc/tests/bls_ietf_llmq.rs index 09d5ae61..f6292a08 100644 --- a/pkgs/pkc/tests/bls_ietf_llmq.rs +++ b/pkgs/pkc/tests/bls_ietf_llmq.rs @@ -12,15 +12,17 @@ #![expect(clippy::unwrap_used, reason = "test code")] -mod common; - +use dash_dev::{arr_from_hex, Corpus}; use dash_num::Hash256; +use dash_pkc::bls::tests as common; use dash_pkc::bls_ietf::{aggregate_pk, aggregate_sig, threshold, PublicKey, SecretKey, Signature}; use hex_conservative::DisplayHex; #[test] fn llmq_contribute_vvec() { - let f = common::load("bls_ietf_llmq_100"); + let f: dash_dev::Value = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_ietf_llmq_100").into_value(); + + let t = f["inputs"]["t"].as_u64().unwrap() as usize; let contributions = f["contribute"].as_array().unwrap(); for c in contributions { @@ -31,27 +33,20 @@ fn llmq_contribute_vvec() { .map(|v| v.as_str().unwrap()) .collect(); + // A commitment to a degree t-1 polynomial, so exactly t coefficients, + // the first being the member's contribution public key. + assert_eq!(vvec.len(), t, "vvec must hold one coefficient per threshold"); + // Each vvec entry is a valid G1 point. for pk_hex in &vvec { - assert!(PublicKey::from_bytes(&common::hex_to_48(pk_hex)).is_ok()); + assert!(PublicKey::from_bytes(&arr_from_hex(pk_hex)).is_ok()); } - - // The first vvec entry is the member's public key - // (the constant term of the polynomial commitment). - // vvec[0] IS the member's contribution public key. - assert!( - PublicKey::from_bytes(&common::hex_to_48(vvec[0])) - .unwrap() - .to_bytes() - .len() - == 48 - ); } } #[test] fn llmq_contribute_sk_shares() { - let f = common::load("bls_ietf_llmq_100"); + let f: dash_dev::Value = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_ietf_llmq_100").into_value(); let n = f["inputs"]["n"].as_u64().unwrap() as usize; for c in f["contribute"].as_array().unwrap() { @@ -60,7 +55,7 @@ fn llmq_contribute_sk_shares() { // Each share is a valid 32-byte scalar. for s in shares { - let sk = SecretKey::from_bytes(&common::hex_to_32(s.as_str().unwrap())); + let sk = SecretKey::from_bytes(&arr_from_hex(s.as_str().unwrap())); assert!(sk.is_ok()); } } @@ -68,7 +63,7 @@ fn llmq_contribute_sk_shares() { #[test] fn llmq_verify_contributions() { - let f = common::load("bls_ietf_llmq_100"); + let f: dash_dev::Value = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_ietf_llmq_100").into_value(); let member_ids: Vec = f["inputs"]["member_ids"] .as_array() .unwrap() @@ -94,11 +89,11 @@ fn llmq_verify_contributions() { .as_array() .unwrap() .iter() - .map(|v| PublicKey::from_bytes(&common::hex_to_48(v.as_str().unwrap())).unwrap()) + .map(|v| PublicKey::from_bytes(&arr_from_hex(v.as_str().unwrap())).unwrap()) .collect(); let vvec_refs: Vec<&PublicKey> = vvec.iter().collect(); - let sk_share = SecretKey::from_bytes(&common::hex_to_32(sk_hex.as_str().unwrap())).unwrap(); + let sk_share = SecretKey::from_bytes(&arr_from_hex(sk_hex.as_str().unwrap())).unwrap(); let pk_from_share = sk_share.public_key(); // Evaluate the vvec polynomial at the receiver's @@ -120,7 +115,7 @@ fn llmq_verify_contributions() { #[test] fn llmq_commit_quorum_key() { - let f = common::load("bls_ietf_llmq_100"); + let f: dash_dev::Value = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_ietf_llmq_100").into_value(); // All members should agree on the quorum public key. let commits = f["commit"].as_array().unwrap(); @@ -145,7 +140,7 @@ fn llmq_commit_quorum_key() { let contributions = f["contribute"].as_array().unwrap(); let member_pks: Vec = contributions .iter() - .map(|c| PublicKey::from_bytes(&common::hex_to_48(c["vvec"][0].as_str().unwrap())).unwrap()) + .map(|c| PublicKey::from_bytes(&arr_from_hex(c["vvec"][0].as_str().unwrap())).unwrap()) .collect(); let pk_refs: Vec<&PublicKey> = member_pks.iter().collect(); let agg_pk = aggregate_pk(&pk_refs).unwrap(); @@ -154,7 +149,7 @@ fn llmq_commit_quorum_key() { #[test] fn llmq_commit_sk_share() { - let f = common::load("bls_ietf_llmq_100"); + let f: dash_dev::Value = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_ietf_llmq_100").into_value(); // Each member's sk_share in the commit phase is the // sum of all received sk_contributions for that member. @@ -166,7 +161,7 @@ fn llmq_commit_sk_share() { let mut received: Vec = Vec::new(); for contrib in f["contribute"].as_array().unwrap() { let sk_hex = contrib["sk_shares"][member_idx].as_str().unwrap(); - received.push(SecretKey::from_bytes(&common::hex_to_32(sk_hex)).unwrap()); + received.push(SecretKey::from_bytes(&arr_from_hex(sk_hex)).unwrap()); } let refs: Vec<&SecretKey> = received.iter().collect(); @@ -182,11 +177,11 @@ fn llmq_commit_sk_share() { #[test] fn llmq_commit_member_sig() { - let f = common::load("bls_ietf_llmq_100"); + let f: dash_dev::Value = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_ietf_llmq_100").into_value(); for c in f["commit"].as_array().unwrap() { - let sk_share = SecretKey::from_bytes(&common::hex_to_32(c["sk_share"].as_str().unwrap())).unwrap(); - let commitment_hash = common::hex_to_32(c["commitment_hash"].as_str().unwrap()); + let sk_share = SecretKey::from_bytes(&arr_from_hex(c["sk_share"].as_str().unwrap())).unwrap(); + let commitment_hash = arr_from_hex::<32>(c["commitment_hash"].as_str().unwrap()); // Sign the commitment hash and verify against pk. let sig = sk_share.sign(&commitment_hash); @@ -201,11 +196,11 @@ fn llmq_commit_member_sig() { #[test] fn llmq_commit_quorum_sig_share() { - let f = common::load("bls_ietf_llmq_100"); + let f: dash_dev::Value = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_ietf_llmq_100").into_value(); for c in f["commit"].as_array().unwrap() { - let sk_share = SecretKey::from_bytes(&common::hex_to_32(c["sk_share"].as_str().unwrap())).unwrap(); - let quorum_hash = common::hex_to_32(c["quorum_hash"].as_str().unwrap()); + let sk_share = SecretKey::from_bytes(&arr_from_hex(c["sk_share"].as_str().unwrap())).unwrap(); + let quorum_hash = arr_from_hex::<32>(c["quorum_hash"].as_str().unwrap()); // Sign the quorum hash and verify. let sig = sk_share.sign(&quorum_hash); @@ -220,7 +215,7 @@ fn llmq_commit_quorum_sig_share() { #[test] fn llmq_finalize_recover_quorum_sig() { - let f = common::load("bls_ietf_llmq_100"); + let f: dash_dev::Value = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_ietf_llmq_100").into_value(); let fin = &f["finalize"]; let commits = f["commit"].as_array().unwrap(); @@ -238,7 +233,7 @@ fn llmq_finalize_recover_quorum_sig() { .map(|v| v.as_str().unwrap().to_string()) .collect(); - let quorum_hash = common::hex_to_32(fin["quorum_hash"].as_str().unwrap()); + let quorum_hash = arr_from_hex::<32>(fin["quorum_hash"].as_str().unwrap()); // signer_ids are in internal byte order; member_ids // are in display (reversed) order. We need to map @@ -249,7 +244,7 @@ fn llmq_finalize_recover_quorum_sig() { .map(|sid| { // sid is internal byte order; byte-reverse to get // the display hex that matches member_ids. - let sid_bytes = common::hex_to_32(sid); + let sid_bytes = arr_from_hex::<32>(sid); let sid_display = sid_bytes .iter() .copied() @@ -257,7 +252,7 @@ fn llmq_finalize_recover_quorum_sig() { .collect::>() .to_lower_hex_string(); let idx = member_ids.iter().position(|m| *m == sid_display).unwrap(); - let sk = SecretKey::from_bytes(&common::hex_to_32(commits[idx]["sk_share"].as_str().unwrap())).unwrap(); + let sk = SecretKey::from_bytes(&arr_from_hex(commits[idx]["sk_share"].as_str().unwrap())).unwrap(); let member_id = common::hash_from_hex(&sid_display); let sk_share = threshold::SecretKeyShare::new(member_id, sk); sk_share.sign(&quorum_hash) @@ -268,7 +263,7 @@ fn llmq_finalize_recover_quorum_sig() { let recovered = threshold::recover_sig(&share_refs).unwrap(); // Verify the recovered signature against the quorum pk. - let quorum_pk = PublicKey::from_bytes(&common::hex_to_48(commits[0]["quorum_public_key"].as_str().unwrap())).unwrap(); + let quorum_pk = PublicKey::from_bytes(&arr_from_hex(commits[0]["quorum_public_key"].as_str().unwrap())).unwrap(); assert!( recovered.verify(&quorum_hash, &quorum_pk).is_ok(), "recovered quorum sig failed verification" @@ -280,7 +275,7 @@ fn llmq_finalize_recover_quorum_sig() { .iter() .zip(all_ids.iter()) .map(|(c, id)| { - let sk = SecretKey::from_bytes(&common::hex_to_32(c["sk_share"].as_str().unwrap())).unwrap(); + let sk = SecretKey::from_bytes(&arr_from_hex(c["sk_share"].as_str().unwrap())).unwrap(); let sk_share = threshold::SecretKeyShare::new(*id, sk); sk_share.sign(&quorum_hash) }) @@ -296,17 +291,17 @@ fn llmq_finalize_recover_quorum_sig() { #[test] fn llmq_finalize_aggregated_member_sigs() { - let f = common::load("bls_ietf_llmq_100"); + let f: dash_dev::Value = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_ietf_llmq_100").into_value(); let commits = f["commit"].as_array().unwrap(); // Re-sign the commitment hash with each member's // sk_share using our library, then aggregate. - let commitment_hash = common::hex_to_32(commits[0]["commitment_hash"].as_str().unwrap()); + let commitment_hash = arr_from_hex::<32>(commits[0]["commitment_hash"].as_str().unwrap()); let member_sigs: Vec = commits .iter() .map(|c| { - let sk = SecretKey::from_bytes(&common::hex_to_32(c["sk_share"].as_str().unwrap())).unwrap(); + let sk = SecretKey::from_bytes(&arr_from_hex(c["sk_share"].as_str().unwrap())).unwrap(); sk.sign(&commitment_hash) }) .collect(); @@ -319,7 +314,7 @@ fn llmq_finalize_aggregated_member_sigs() { let member_pks: Vec = commits .iter() .map(|c| { - let sk = SecretKey::from_bytes(&common::hex_to_32(c["sk_share"].as_str().unwrap())).unwrap(); + let sk = SecretKey::from_bytes(&arr_from_hex(c["sk_share"].as_str().unwrap())).unwrap(); sk.public_key() }) .collect(); diff --git a/pkgs/pkc/tests/bls_ietf_pop.rs b/pkgs/pkc/tests/bls_ietf_pop.rs index 161c87a1..66fc03b2 100644 --- a/pkgs/pkc/tests/bls_ietf_pop.rs +++ b/pkgs/pkc/tests/bls_ietf_pop.rs @@ -6,10 +6,8 @@ //! Proof of possession tests for bls_ietf. -mod common; - -use crate::common::bls::*; - +use common::*; +use dash_pkc::bls::tests as common; use dash_pkc::bls_ietf::SecretKey; use rstest::*; diff --git a/pkgs/pkc/tests/bls_ietf_sign.rs b/pkgs/pkc/tests/bls_ietf_sign.rs index 16064f20..079f6c3a 100644 --- a/pkgs/pkc/tests/bls_ietf_sign.rs +++ b/pkgs/pkc/tests/bls_ietf_sign.rs @@ -8,39 +8,13 @@ #![expect(clippy::unwrap_used, reason = "test code")] -mod common; - -use crate::common::bls::*; - -use dash_pkc::bls_ietf::{SecretKey, Signature}; +use common::*; +#[cfg(feature = "serde")] +use dash_dev::assert_json_rt; +use dash_pkc::{bls::tests as common, bls_ietf::SecretKey, bls_ietf::Signature}; use hex_literal::hex; use rstest::*; -/// PyECC reference vector: known sk -> known sig bytes. -#[rstest] -fn pyecc_sign_verify() { - let sk = SecretKey::from_bytes(&hex!( - "0101010101010101010101010101010101" - "010101010101010101010101010101" - )) - .unwrap(); - let msg = hex!("030104010509"); - let sig = sk.sign(&msg); - - let expected_sig = hex!( - "96ba34fac33c7f129d602a0bc8a3d43f" - "9abc014eceaab7359146b4b150e57b80" - "8645738f35671e9e10e0d862a30cab70" - "074eb5831d13e6a5b162d01eebe687d0" - "164adbd0a864370a7c222a2768d7704d" - "a254f1bf1823665bc2361f9dd8c00e99" - ); - assert_eq!(sig.to_bytes(), expected_sig); - - let pk = sk.public_key(); - assert!(sig.verify(&msg, &pk).is_ok()); -} - /// Sign then verify with a generated key succeeds and is /// deterministic. #[rstest] @@ -98,9 +72,7 @@ fn sign_is_deterministic(ietf_sk0: SecretKey) { #[rstest] fn serde_sig_roundtrip(ietf_sk0: SecretKey) { let sig = ietf_sk0.sign(b"serde test"); - let json = serde_json::to_string(&sig).unwrap(); - let restored: Signature = serde_json::from_str(&json).unwrap(); - assert_eq!(restored, sig); + assert_json_rt(&sig); } /// Same signature under IETF and legacy formats must differ. @@ -114,9 +86,12 @@ fn cross_format_sig_differs(ietf_sk0: SecretKey) { assert_ne!(ietf_sig, legacy_sig, "same key must produce different sigs"); } +/// Reference vectors through the public wrapper. +/// +/// The scheme-level KAT in `bls::scheme_ietf` pins `BlsScIetf::sign`; this +/// pins that `SecretKey::sign` is still wired to it, DST included. mod kat { - use super::common::{self, decode_hex, VectorFile}; - + use dash_dev::{arr_from_hex, vec_from_hex, Corpus}; use hex_conservative::DisplayHex; use serde::Deserialize; @@ -128,22 +103,12 @@ mod kat { } #[test] - fn kat_sign() { - let f: VectorFile = common::load("bls_ietf_sign"); - let vecs: Vec = common::parse_sub(&f, "sign"); - - for v in &vecs { - let sk_bytes: [u8; 32] = decode_hex(&v.sk).try_into().unwrap(); - let msg = decode_hex(&v.msg); - let sk = dash_pkc::bls_ietf::SecretKey::from_bytes(&sk_bytes).unwrap(); - let sig = sk.sign(&msg); - assert_eq!( - sig.to_bytes().to_lower_hex_string(), - v.sig, - "sig mismatch for sk={} msg={}", - v.sk, - v.msg - ); + fn public_api_signing_matches_vectors() { + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "bls_ietf_sign"); + for v in corpus.vectors::("sign") { + let sk = dash_pkc::bls_ietf::SecretKey::from_bytes(&arr_from_hex(&v.sk)).unwrap(); + let sig = sk.sign(&vec_from_hex(&v.msg)); + assert_eq!(sig.to_bytes().to_lower_hex_string(), v.sig); } } } diff --git a/pkgs/pkc/tests/bls_ietf_threshold.rs b/pkgs/pkc/tests/bls_ietf_threshold.rs index 842e8e8b..dc8bfc13 100644 --- a/pkgs/pkc/tests/bls_ietf_threshold.rs +++ b/pkgs/pkc/tests/bls_ietf_threshold.rs @@ -8,11 +8,9 @@ #![expect(clippy::unwrap_used, reason = "test code")] -mod common; - -use crate::common::bls::*; - +use common::*; use dash_num::Hash256; +use dash_pkc::bls::tests as common; use dash_pkc::bls_ietf::{threshold, BlsError, SecretKey}; use rstest::*; diff --git a/pkgs/pkc/tests/common/mod.rs b/pkgs/pkc/tests/common/mod.rs index fe820100..17efc246 100644 --- a/pkgs/pkc/tests/common/mod.rs +++ b/pkgs/pkc/tests/common/mod.rs @@ -4,64 +4,9 @@ // See the accompanying file LICENSE or https://opensource.org/license/MIT // -//! Shared helpers. +//! Shared test fixtures and constants. #![allow(dead_code, reason = "usage dependent on build flags")] -#![expect(clippy::unwrap_used, clippy::panic, reason = "test code")] - -#[cfg(feature = "bls")] -pub mod bls; - -/// Raw JSON file, a map of sub-operation names to arrays or objects. -pub type VectorFile = serde_json::Value; - -/// Load a vector file from tests/corpus/. -pub fn load(name: &str) -> VectorFile { - let path = format!("{}/corpus/{}.json", env!("CARGO_MANIFEST_DIR"), name); - let data = std::fs::read_to_string(&path).unwrap_or_else(|e| panic!("cannot read {path}: {e}")); - serde_json::from_str(&data).unwrap_or_else(|e| panic!("cannot parse {path}: {e}")) -} - -/// Extract a sub-operation's vector array and deserialize it. -pub fn parse_sub(file: &VectorFile, key: &str) -> Vec { - let arr = file - .get(key) - .unwrap_or_else(|| panic!("missing key '{key}' in vector file")); - serde_json::from_value(arr.clone()).unwrap_or_else(|e| panic!("cannot parse '{key}': {e}")) -} - -pub fn decode_hex(s: &str) -> Vec { - (0..s.len()) - .step_by(2) - .map(|i| u8::from_str_radix(&s[i..i + 2], 16).unwrap()) - .collect() -} - -pub fn hex_to_32(s: &str) -> [u8; 32] { - decode_hex(s).try_into().unwrap() -} - -pub fn hex_to_48(s: &str) -> [u8; 48] { - decode_hex(s).try_into().unwrap() -} - -pub fn hex_to_96(s: &str) -> [u8; 96] { - decode_hex(s).try_into().unwrap() -} - -pub fn hash_from_hex(s: &str) -> dash_num::Hash256 { - dash_num::Hash256::from_hex(s).unwrap() -} - -pub fn make_id(i: u32) -> dash_num::Hash256 { - let mut bytes = [0u8; 32]; - bytes[28..32].copy_from_slice(&i.to_be_bytes()); - dash_num::Hash256::from_bytes(bytes) -} - -pub fn sequential_ids(n: usize) -> Vec { - (1..=n).map(|i| make_id(i as u32)).collect() -} /// Shared test constants. pub const MSG_DEADBEEF: [u8; 32] = hex_literal::hex!( diff --git a/pkgs/pkc/tests/k256_keygen.rs b/pkgs/pkc/tests/k256_keygen.rs index 4d1a1fc8..8e54f9f2 100644 --- a/pkgs/pkc/tests/k256_keygen.rs +++ b/pkgs/pkc/tests/k256_keygen.rs @@ -10,6 +10,8 @@ mod common; +#[cfg(feature = "serde")] +use dash_dev::assert_json_rt; use dash_pkc::k256::{PublicKey, SecretKey}; use hex_literal::hex; use rstest::*; @@ -69,14 +71,11 @@ fn pubkey_rejects_garbage() { #[rstest] fn serde_pk_roundtrip(alice: SecretKey) { let pk = alice.public_key(); - let json = serde_json::to_string(&pk).unwrap(); - let restored: PublicKey = serde_json::from_str(&json).unwrap(); - assert_eq!(restored, pk); + assert_json_rt(&pk); } mod kat { - use super::common::{self, decode_hex, VectorFile}; - + use dash_dev::{arr_from_hex, Corpus}; use hex_conservative::DisplayHex; use serde::Deserialize; @@ -88,11 +87,11 @@ mod kat { #[test] fn kat_derive_pk() { - let f: VectorFile = common::load("k256_keygen"); - let vecs: Vec = common::parse_sub(&f, "derive_pk"); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "k256_keygen"); + let vecs: Vec = corpus.vectors("derive_pk"); for v in &vecs { - let sk_bytes: [u8; 32] = decode_hex(&v.sk).try_into().unwrap(); + let sk_bytes: [u8; 32] = arr_from_hex(&v.sk); let sk = dash_pkc::k256::SecretKey::from_bytes(&sk_bytes).unwrap(); let pk = sk.public_key(); assert_eq!( diff --git a/pkgs/pkc/tests/k256_sign.rs b/pkgs/pkc/tests/k256_sign.rs index 939f8848..08293765 100644 --- a/pkgs/pkc/tests/k256_sign.rs +++ b/pkgs/pkc/tests/k256_sign.rs @@ -10,6 +10,8 @@ mod common; +#[cfg(feature = "serde")] +use dash_dev::assert_json_rt; use dash_pkc::k256::{PublicKey, RecoveryId, SecretKey, Signature}; use hex_literal::hex; use rstest::*; @@ -108,9 +110,7 @@ fn sign_is_deterministic(alice: SecretKey, msg_hash: [u8; 32]) { #[rstest] fn serde_sig_roundtrip(alice: SecretKey, msg_hash: [u8; 32]) { let sig = alice.sign(&msg_hash).unwrap(); - let json = serde_json::to_string(&sig).unwrap(); - let restored: Signature = serde_json::from_str(&json).unwrap(); - assert_eq!(restored, sig); + assert_json_rt(&sig); } /// Serde round-trip for RecoveryId. @@ -118,14 +118,11 @@ fn serde_sig_roundtrip(alice: SecretKey, msg_hash: [u8; 32]) { #[rstest] fn serde_recovery_id_roundtrip() { let rid = RecoveryId::new(1).unwrap(); - let json = serde_json::to_string(&rid).unwrap(); - let restored: RecoveryId = serde_json::from_str(&json).unwrap(); - assert_eq!(restored, rid); + assert_json_rt(&rid); } mod kat { - use super::common::{self, decode_hex, VectorFile}; - + use dash_dev::{arr_from_hex, Corpus}; use hex_conservative::DisplayHex; use serde::Deserialize; @@ -147,12 +144,12 @@ mod kat { #[test] fn kat_sign_recoverable() { - let f: VectorFile = common::load("k256_sign"); - let vecs: Vec = common::parse_sub(&f, "sign_recoverable"); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "k256_sign"); + let vecs: Vec = corpus.vectors("sign_recoverable"); for v in &vecs { - let sk_bytes: [u8; 32] = decode_hex(&v.sk).try_into().unwrap(); - let msg: [u8; 32] = decode_hex(&v.msg).try_into().unwrap(); + let sk_bytes: [u8; 32] = arr_from_hex(&v.sk); + let msg: [u8; 32] = arr_from_hex(&v.msg); let sk = dash_pkc::k256::SecretKey::from_bytes(&sk_bytes).unwrap(); let (sig, rid) = sk.sign_recoverable(&msg).unwrap(); assert_eq!( @@ -168,12 +165,12 @@ mod kat { #[test] fn kat_recover() { - let f: VectorFile = common::load("k256_sign"); - let vecs: Vec = common::parse_sub(&f, "recover"); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "k256_sign"); + let vecs: Vec = corpus.vectors("recover"); for v in &vecs { - let msg: [u8; 32] = decode_hex(&v.msg).try_into().unwrap(); - let sig_bytes: [u8; 64] = decode_hex(&v.sig).try_into().unwrap(); + let msg: [u8; 32] = arr_from_hex(&v.msg); + let sig_bytes: [u8; 64] = arr_from_hex(&v.sig); let sig = dash_pkc::k256::Signature::from_compact(&sig_bytes).unwrap(); let rid = dash_pkc::k256::RecoveryId::new(v.recovery_id).unwrap(); let pk = dash_pkc::k256::PublicKey::recover(&msg, &sig, rid).unwrap(); diff --git a/pkgs/pow/Cargo.toml b/pkgs/pow/Cargo.toml index d475f4ce..39209d93 100644 --- a/pkgs/pow/Cargo.toml +++ b/pkgs/pow/Cargo.toml @@ -17,12 +17,10 @@ dash-num = { version = "0.0.0", path = "../num" } rayon = { version = "1", optional = true } [dev-dependencies] +dash-dev = { version = "0.0.0", path = "../dev", features = ["full"] } divan = "0.1" -hex-conservative = "0.3" hex-literal = "0.4" rstest = "0.25" -serde = { version = "1", features = ["derive"] } -serde_json = "1" [[test]] name = "blake" diff --git a/pkgs/pow/corpus/blake.json b/pkgs/pow/corpus/blake.json deleted file mode 100644 index bd2a86db..00000000 --- a/pkgs/pow/corpus/blake.json +++ /dev/null @@ -1,258 +0,0 @@ -{ - "0": "a8cfbbd73726062df0c6864dda65defe58ef0cc52a5625090fa17601e1eecd1b628e94f396ae402a00acc9eab77b4d4c2e852aaaa25a636d80af3fc7913ef5b8", - "8": "4f0ef594f20172d23504873f596984c64c1583c7b2abb8d8786aa2aeeae1c46c744b61893d661b0733b76d1fe19257dd68e0ef05422ca25d058dfe6c33d68709", - "16": "20afd72afbb66a5a0efd8b4a627cc2c82a5e4b6c63b0c9a78735c188d248c7588fb4ee566b3b6fdcc235a498f7263feb7ab1411582a7055e3ce7a8c976e61fcc", - "24": "b1211367fd8a886674f74d92716e7585f9b6e933edc5ee7f974facdccc481cfa42a0532375b94f2c0dd73d6189a815c2bafb5686d784be81fbb447b0f291272b", - "32": "ccbcdbc1a30ebbcc4fc015fdb1caba6c0ad6719301b4bbad4b0efab1141174a15e2e8b8b8e5671c1864a0f75ecb20f76dac45159e67786d07d79a29b1827e5a4", - "40": "ec6eaabc2a128c38dfcddf9aaad5bb6fba397aac06a4b584b2dbdeb0cd7fdb1fd248ef93c0686b73818b2b78c923c70eba63c096f33d842ada959f7674e4730c", - "48": "b6e8a7380df1f007d7c271e7255bbca7714f25029ac1fd6fe92ef74cbcd9e99c112f8ae1a45ccb566ce19d9678a122c612beff5f8eeeee3f3f402fd2781182d4", - "56": "6e66bae94df2233958b1be831afa7678e247104cafdf41c15aeada5ac18715f1d4512114f299527a8434ed5daa99b12ba7bb9465f6799cb0bff9a31fd34c22d9", - "64": "e2069c9d8a33314f3bc22e519c80f08647ac238ece2d709e3904ce77097c7ec0f0a398f60c5667b26a76df8023e39c84c979f424539cb96b736440b854bcaf55", - "72": "dc8b900ff8f8c9a748a14be429fafe7bfe9e5f829d8c663d02893148c8dcac7a89e8c7d46570b32c3933985c6f3d048ff58431787891b4804a1050cadb169e6d", - "80": "c5633a1b9e45cef38647603cbd9710e1aca4f2fb84f8d56a0d729fd6d480ef05f8a46f1dc0e771ec114aea2f9ad534b70bf03046118a5f2fbdd371442d9d8895", - "88": "4e3edbcb1598fe5cdd444dcd6fa1390982e21107d2ab104d3fc1ed35bb08ac32b66b86b23b55429cd246179b99ca90be1929b049a96e2c3434806114c33309e2", - "96": "123322d5d95f0794446d28288af53e594ee046a48b7456bd37dacf921c83889b8e9d92c4f1a706fa8713146e60f1997dc85755b8900b23d08a46e081db0b50d7", - "104": "3a3ffd51985380c91fdc503ab72cce0a711bff3d945640b61d40be720a79af3ada2299788213cd62ee33e9d3355d68e9d7eed0c0c56eebfbc4c5a7c0ca29fe03", - "112": "2f88021f36ed80f95be05c0aa39cd0d77b0a10a285086fd4882debbadc7cbf4ee402469f7ac71a3cd2464b5756838897c3807fdf8fe83fcbf6ff320a0351b71a", - "120": "979cc4edf67a07d35a376bc1b791a0266b7aab97fa733544cdef95b4968b194519594a5f24008fff42de132bfca2168896c44a0fcec2167ecac1fa907c8c5470", - "128": "ff2f4d280127ac37d54528333f9f268ddb70dd044a558d8895173d1d9d253489947e4ed16a52e57298b2126d7761d31e060ab5eb28ba04e05f032abdcf344f0a", - "136": "db47fe031f185db94489e02c69b066ba25187c1009aea0614f2292838062685d38a5dcb13bc0b0cc5451727f5ad4b47524921b8ce06b03236681e200aeaf258c", - "144": "434949fc2dcf01de14ae1c05cc2ca201da5c9008aa222f77a4e5fa8f81e5c3d847ac2da8ed9d63a2552eacd7ed90586ad9da38cad0b1dcc542b21e76d5b85f2b", - "152": "8dd8bacf14837b8d343ff5678f05642d7566b8d874b02a958b469a9bbe949386e1f999c004b397bc987b2c6a63988d170d4a6317d49640201f712fe943d03ff3", - "160": "3107d40d9b83837aea236649acea28cef05010f529d8974282f1028726860f6fca837082382e80ca541b21ab685ed60d8809b5bd826b42aca0227be03f689f7a", - "168": "b2802809b757a950ccc31faf56af6f206ff40f63382856566905dd420d5474c1ce069dd9729f8c31744180a07f9d90539f696058f5f5d3b654382c745afbdb05", - "176": "023972123b0e4c8dea7eb126144f84c145f2db46ad691e95e56fcaccb11b4129227014500ae1f9eb37e518c67d2aa8605ddc6ba22020496c422fda29e8503668", - "184": "870d82edce6f1a83143df266a556443f920b69d7ccfd58403d912cd10af61901cdb6f4877d317638e8f0592a2d35b9b5e9183aa1fdf36c9d2dda9de086e8ec43", - "192": "a1d715fe1edaf888e25bf9785e2401ae6b5d45a637474bcdf940bb37f3502c5e4309a44549385e601a8bc99f881ae4ba411b0464849f2aa2d03bc237ddbafeff", - "200": "3319cdd45556d834bd0be8d5e905365e1f9cd31ef0383402bc5251cbd34e09f064f6ccdbcdfda3973a62766d0ab4866660064b80cef413f2d0d490d99f62d052", - "208": "cd6d552bdcb77d68454b2f2f1452ffef6266f07b4534d06ce2748cddbe4d7045968965f4a574c786f8006464f154d89478a3cd675cb11449e82890dcf314a6cc", - "216": "dde54dd4baf9aa946c2ebee0afa98819211acd034709d2bc8b2260df43751f18f8c41c8f63366858949028be41a2d68cdcf4a777c27edd283007dd80161cbd88", - "224": "c01f2f4b337cfd746411fe69af676f909025dbb56f995ef6a735777cd7ea7d93c89086385f9136acb8e5a232af2eb107d7ee1e5a47cb90dbfd1d3000cf857992", - "232": "66dc93d34e6494fdfea43100037a88bfa8191d72419ba01c8e2eefa60c584eb83bce8b20ac9888ef19cc2b3e2f6734f53752cd8ee04610fe36fdaaf0b73b6c58", - "240": "c668b4949f9274755fe2e5f74b0ab4c2498ea7e50ed28de46d500916fac4f52b15f8a1620c9ea1de98cc6e6ea145137f54774d3ef5176b9bc1d854585bd7367b", - "248": "03bfeee81a1da5a8ab71b6391b3f41ade891934877330f943ae487c960fb426c2f5d8cd2bfb48019bca84e9fb9199677cbd9fcff896472d15bf6fa3f7cdc163e", - "256": "b9330e5858b8c5ab4465ac8f1393a4eaf616d668581a8958c5fe8caebe6d37bb7862153b34ffa4059a6f2496b925cef8a7d556b49b46757bf061a77e5712faa8", - "264": "95143b7e851c8f95fd55f73ef0306f256d434e86d2acdce3c3f48ddc2f1b96c9dc1e84c60703737d11bf14283f84e751dddf2c99c69a74b82b1735dfc99e1482", - "272": "b6e00a6118101f5f782bd958f7df189956c01dd36b586a16667cebd5d04397417d605e7f4980553129b8e25f4035e3c919a76b8288bf5bdfdeff9ace77ecfb70", - "280": "eea743043c1daa6132359c57e16580084a79c3357aa622eabd29b129818c6633e3f5356eb0eacf4f19d158edeada45c586141f798eee692c8e38305e8de1f275", - "288": "7ec5e1adebe2e3be5b7cf5ac81d04a2362b8f2aaff913f143d209040f2083a9d064f7eeaf4c12a54fd26f3b24927788d874bcd1d6db4ae9caaf129fcb9239364", - "296": "7695c6662cadea5725a03dd2b0d97dff3665cd7e1a627214bbc919e338df2795b711f7173d1d30d0555691a9793d2c132d7cb949265977a8dc7df0fe087d2b07", - "304": "df59dda7164b1e193b37e887c8169dfae473ac8dee543e7902e902e253c717cad750a145b8bf9950a009db4e834d060f4e08643b82be5b945aeb529f5c52553c", - "312": "e85247e33827f464643f2fe8ed901b0e0664950bdb892a2b6105d9315405f27c9868401300dcbc361d8b2704bb885ab27e5e881efcb082664802da97a7769a85", - "320": "3295ac4d0105a7cb0993b198be1ddd12f60ef40d32aa0638475e59b82f097d14151f5ec1fbba5a3e1403e37266b0f27e4d6305feea3d063c819800b7aac5a2b2", - "328": "23f1d701490e1e737203f8562b230b5d0ea65ed6aa7ae79e1db34f54a2466f86307b6aa8c9e45e38e5cbd5494e87b74a2d83cd80fdb076f4286437535f330d69", - "336": "ee5c884e3e3298239122db76e541378bbac0e85416164537cb103ab5610cdc8a09426982d3c4fb4c95766e866ce6a964a33cc8e3a3aa62a01307fc6382606181", - "344": "721a5c4d8812398291161b85eb63114edc67151ae4a9f0b1ff510c2c1b9504a8c69210f8913282e42718cf0123451fab201a3843b1897e60daa6e8d3ea647b57", - "352": "0021f6b894f2e60d6966ed1dfb55eb5666b5038b4fa9ebeb8cc25be19f00caf100e8bd3dff3cd75a6aac4d198885b7d7f1abe25e8741d475dee4e430bd454137", - "360": "ccc320256088cacaf58359bf9ec3c25b404bdd56b9d86ffd4aa08413f0f324d74fa050dcc1d862c6273a55a85f5c02d6941b305666a803cd17a4b5b75325dc7b", - "368": "75adfb8b4c9e7a951bd6da1785e120ad9659e248046fed3ef9ba95fd67539479cd084cf126a974a02354e6e95f298ae83bcd61e0d95fe99d7e0b15c46a2d1f96", - "376": "0b39015415080d54570b9f7087e9cea3d99b035c06252040752141561038ee2426388ede2c7c98ddeca1747fc38c358dced5ae4cb3f35a213e297b0ac6d94545", - "384": "5e77fed99fed053f5dfa6f4b2458b2a5d75f3d73f8a1b436a3127809575c01438ecc92256946fdd79969c33d1e4e4578860c84837c8313c371ad3ef43f6a54e3", - "392": "d2457d97f88b8ca48fd5899d790bb102f0debdcdffedf9d546a330f683204a67d1f2eaab4934738bef700b0dc8647ee63e3aea55d7c6c244de76c232e75fe87b", - "400": "2f7918b8a9ca5a0262e43de95f29dcab5cc8c0d483ebc5a717a6c5d2bcef064c47b232f1abd43a7802bf980eb15dd04ac5b656ce76a2faa4982450913509ec15", - "408": "68d76315aebb41951d9e2498d118896c0bcca500033754baba113c602f82607ae224813a7db0035fc206cc9d5d7600269384ae6c66c88b99b22daaa8c7b9d3af", - "416": "47a5dc88882a1f7ca55c410d691cd058b75fce334bada777ec94739298ddcaf0e8e9cca611cbc78e838694ed3932d71738bf38da3245eb880902b78d1c0a8caf", - "424": "b12317778cecc403aec339bbb8977d4ecac1e477f6c4db41098c7883f759d5c4954f590e531fc98c00f0131c427998aff481db82d4a27e87fd777c8129a33657", - "432": "95932e3f12283fff258cb03d6279bf6937ffc3bf2d4f3baf90f858035863e910db1f1051294817477f7ac6d66eeea0cd141e8c9e822bfb0073afa6bbb41ee907", - "440": "939b3b16698f14b4de2c5e1894d8a75fa641188e5887e74511a128c005b135f04d00db30b82efd8e63cdc02eedca26d1c15f1cb50baab6db517521e154a0e11c", - "448": "f6396e00bbdb23dbdc6ccb900a9ccc7ee6a15148ae291879d1665fbf10f63c87204ecaa1541a5ec8cc02023e3b8c09a9261411f80c26ef658fab3e032e16db86", - "456": "ed3dd7f65d7d55e9af70ae694179be48dee50669fdfe09fef55950c7d1f14d0b4dc8791735939181c0ef7d17f4976f9a1d2396f22b9a1d0f40de1678adab4e32", - "464": "1c716598b1f4deed02617d5afaed4309ac06dcca6f6a586d6036892e188618e3a0c31882dc90545d33d10a64289d362dd36986d694fff69387f4bdc2bfe57217", - "472": "436d5fb1504a58aeba281fe6214e7cad9448a54edc5371c056c47cc220a1b9510cecb6709f180b5382487f87be8fb745b449a7187391589e26f85a7805f33129", - "480": "c90dd10ff70f5a77e34917ef0ad03f2ec156b46b2fe851ad567ea478f8b0c75cc911dd5ba3552fdf150ca8b970f634c513d952786d262b16a8451390a4375e7f", - "488": "f74bee0be34d658d5915d345731fb3d4ce234331eb02a807cff5b8faaca8633bb1f44845f68e24bd29e22bb7d8ee5fb453d04f0a9ef5ba9e60811c44c99a4a1b", - "496": "130a6b23b4af7d090d5a3a5a43b0e234271fbb3048e4832b487f600f23db0b9c2572deda814e56c457dee10cfabbdcda0e85ce07795347948028bec57d9f4f30", - "504": "7baf21fd1b9c1aa50cafc611fe640f33004aacb5dfa1baff3ddeb8360ce574ff0ca8bbabd694af4d11cac1e04bda44b729fa007e57c2d63841c95e0ef6daa4d0", - "512": "ec1270cb5c96df2106a9c4f694ad6dc8d83a8ae1c375b613a447b95e2a09e76d1a32c73cae58ef8c6822ad7ba50aabba00f01de11ac3606fabb67fadbb5be530", - "520": "ea6bd3422c8e5108ee70085e5626ded927efa7439f430e0c5d0b2bf78863d5f3c60591c24f8dde3cc13100cfdf31d96a4b24f1a45e49138aa8b2e4bd50446ab7", - "528": "1317f755155658dbd426c1635c2529a167246d86cc6506e8d6142ffe736284a8d27f93ab2bcb27f61a107bb684a9e891137607a3be0ed95823f911bb457c6a70", - "536": "bd84b45984dfd71a565fec6f6a90bbc51492491746e312f6f442c15183735269b3afafc2538ee1d475016df7670fabae9baf593af130c3a20ac5d0f7697bc642", - "544": "e4f7828628b6440e638972ffa247c63b277cdfc1dcee82641c582fd339369776bd926b72966a7fb3e498489a38298130efce37d87929f225931bdec68605f8f3", - "552": "a1002c74578776c2daea440992b013515d6fef54f14d3cc5358753dedea5bb1bf3dd6f88937ca02d2ee05c45593d9a2dc39e347bbbae5394247887ca62380841", - "560": "710f65da4ffb867d12d80f4742e09f83db740ecbbdf7e3308e7bbc363bc009de9134e5c087e844f4b078b92e4716204722242238f6be25dad4414e5869821e11", - "568": "7c390c36a8c5cafd6d9b36d00194dc5a515b0cf484a12b8d29e5951da4a10ad015a092f2f33b6392b04a2bfdb53e6ce05bdabcf8a33a4fdad7db47d15db1fdb2", - "576": "16815f22f7974211b97f789aabf46fea4027f3579a5085471bd286e5040fb1e48bf999d3341c60b2a871a0c64aeb975f9c1c8b7e7550be498d053e89675c3b27", - "584": "277349189e99f43b1e0316cecd81c4c4eb41d7e6c6832f78cdb556330740a0747504017e104550a4168d94a37251534f82c2f8de2b40980fdc6ac9f3a2572395", - "592": "ad2aa587c604e03dc8b63128750773c7bb6b5fa3339dc4c46685e194fc00bf874afacc815e1da3ff293d737e2dd362a20f6a502b2e5b6c30e1d09c2c65036136", - "600": "f409347b780ac724a3764aeca953811639019962b921207681ce8acf25cbcc7e2fdb2c6f597f0942739406a412a7734b962583737d1e2c121b39258906fbba01", - "608": "1ad787f55ba95a2dda24366299a6fa938d2bf59a0e1d3a08f6a6d5f7727716e2a93681d004f9868827feaa998333918219235e59ada192199cbf6d8deac3e2ac", - "616": "3222fea2380fbf1666972b218732f8104cf816df2f1ca430cebfe21019037b443cf3738bef98921448fecd336db3fefdf07277f83690c19b4d8e68d77faae4b2", - "624": "af76537d3aa53ef9c93f8227e84345f251696051ac591e7cb66ff21cff5019fbf13aad7947736f01c922c126a73e395651d0c92e625cf46241951e09165fc973", - "632": "d564270c28062327139f1f48fa8daaad0420046b8136170c68fa60cc3d01ec8e9a72a3f3882a8e6a8a54b2d5b08c8ec2688bf6bd589a6cee9d2aad61f1d8a8e7", - "640": "9262d860468ee8d565544a255b800111c55a95ae681bafc694d66bc244921bb8d1b280e845e5f87ebe9e06da246361a09742563c0978b97d0ec22799e66729f6", - "648": "279e088d5a5ab0a18d2fd540e76f9504c27e2cbd7917cbd2edc8a5e37ea956e3adbcc5cb543edb37b8579aa6a2f68d769e3a7958a9ae66fbe6354d95f0d5c141", - "656": "fa97f977171c29a9501b4fdcaebe22d296f457e92808a985293eb708bff0c6bbc211d3a1ffe321df32c806db3c7f8e58c00cc1ad658bf6c65b2066b928152762", - "664": "ad25850a967c6889ac6e62adf5b8fe6a2ba391817fc7221c3b77a15a5e4f04c12f956179f3186710ab1df6dd808351dc7c55affa3f5068548f2117335dc7c82f", - "672": "8c25c98b780b468eddd84181d9b1f083844475a9da8260817d25318202b9f25176a934fd201835d6b3f6f8d3fb7d45dbbeff6c915403ed13fcfbe0add0018126", - "680": "88f0bda147ee85476bf00350f17cbdbe37fcf91df31c051d8abe070dfcda3cadd9ec60da83e299b504660b3aa1cd70a94da0593e2f18befe0a4a3f5eb7733b3d", - "688": "065a7f9d8366c26b59f1c412ec938d2c74db584c0b45fd6a5b6bdd5b8f690b264c2c9a5c3058a7f0ca65b8e7bbdf1b2d44b6df1deeda60cfc836d03d5c732bcb", - "696": "d99819e135abb478fcaf809c94fe08c6c87d66bf98e611fdbde77658d1e222404da0434978844193e5fbb7a7384f71fcc127a751d8257d26513ae418d9f605c4", - "704": "c018897f3cecf608a620c70a8c402228e78f3439d949ea6c98d52d36c06badc5d96714e81364730a7448e4281a618cab45f5b723751248d90b234c5f9a8551ce", - "712": "c844082a46209636a04f7a305c06ac6db84e1e1e36a6c7ac90ea389360b613ebcb95527a5cc7b9ee9bb3be0a6bdafa9d2dcf3b5dd5ad323d8e6ed659b1004b9b", - "720": "730e05303e749e0e6b62cc97858f23765ae619f2786aa188bcc6d0c83e19fd930c03a8edb4618549d7edf0d92b876c36a32db3ec0432be0e5a133d955a1e1828", - "728": "9e037c85a12045be3062f27058fe7b3e7ea7b076e9164320057b31dd3038dbd4be5bc812ab259e5fff9fda533be068dd35fffda3c9fb06ea159f5b9024bbab1b", - "736": "da071ea95c579760f2033de1eb563d19a87b929d5d1ce96a157ee2c5c234fe80c19035b7d31af968ba27e01960cd31b483be411b3bd537ff05d68b46bbf7ff3a", - "744": "6eb93f432b8c78d84cdfe52e3d6a454be5b79f7a0251584ee04e0b222042728fae6aeaa8883642500233c1e0e9bbad8066b08ba12dd0f46d333e9e699fc3c1d8", - "752": "5124cd7acff28280c5b57a6e624889785f1a2e13dd52db995946e795c2a76f42b039096210910c577133ae1c5b860cfb633f69ab2ef500535487d6bc38eecd1a", - "760": "64e659d993815e3350866c863c5540740abfbab602ddf68a0b29d39d3a57475476a17a354c58a30219cb514721d85795e753db090c6815b1f2d5a2f66983f0f0", - "768": "a9dae30af950a9e144648ff141779b74d5b7b7cb04ceb66fdd54fa2b2a042070a3b310ec96cb35639386ef02bee3164f2dbd7be10932a99d520af921a2df92db", - "776": "22bf460d823a2de8e4f34ae26703a3971adf4252cf15ab7afe55bce4d4b746d2af8a5327d13494ced6f8ee24f5161c742e5f48197825b2ebb87117493d21961a", - "784": "2a7f9fd15654bc71c032a7c7a5514eecc2a082418c6fd7b9ee7566949864455ee74f54316da084730dd789790d011521ee8243cd10322e17c2d9c6d675d84d37", - "792": "22eb00ad4ba0a9fbcee7e4c7e74442b4697791cb549d0254d3644f7b359ed73db6a9ba90a12b7dfa943253ae81a9a40b8d95f2c273387c4b20a7f1362d9c6f4d", - "800": "eb0de6909b3d69eed50317edd08eec2be20bc71b39901ddd5dc77a097cba1360498286a441564447d0fce4b324e48d48367f44a380fbc8c8c0fe545ca1404876", - "808": "2f5a63f91b190a76e2805c78d62ab76937d81671ca71b01e3f92ab737b667bde6b904355495ae1c666f097d99ab0b4f267ad27e99367de54b86c299400a09c89", - "816": "9983ebfd7a08d40460aac2ee8da51c8e216ec8cf379aad99e863614bc76a95a1129b7a33e508640c512e1d81a88a5a169b98260e7b98bca9035927db24541594", - "824": "c88c5b3b3e64ec3f1cb6db0707e67ebf63046c399b479ed6288f036f297a2d0c141b81414676a4397cfae198f48a6051e04c8550d176425a8b28573be9230071", - "832": "65acd075901d97557a4e16e52f4483417e3ab7f675163e8c23fd3a4c3594df8293aa8e5c60e54d5f9e4b122047ba5474e11ca62d178a4847cfcc4235fbd60323", - "840": "e944aa0b87d3b59e574c53a69d038290f3b8d96eae2a8e06d49e654130925e6b56193fbb7cb0ca30cdd0a665524381b4f627ee35dca4fe790fe405c6426828ee", - "848": "a0094b373aa403a25c3d40496129215036b5e0a336fcc9ad48b08a96483de7c5bf1994d7cf0c639e098d79005289ef36b4bf09966e2fdf2da35c71fa402690cf", - "856": "46ccf9ef411dd67d01686d3cdb2043681455cb22609b33f37c8c3dd8b4613b77b887af5c530fc1e11ce4ce6595456fb9f9dbb54dfbebf7f18260aefba5cf932d", - "864": "0d2dd2691689fe46c0bc7d53d54f251d04fcc7491097685446d7586c52863ac696808bce1886c21886c9d9af671895f8393b12019e6cf5bc233b5cc7d6581880", - "872": "fded53017461f045f26ec8c063935aff541b56fdd560c57408950808992beae0ac89f660cca54c360a1e9090abe67646deccd4fc0efb6003446eac0b246a303f", - "880": "4ea2f30a58e0876c6d9d2662fcdb1b9c48b32f364860468cfb768ae280a48fcff9f43456ed9094859435527d8450a0348fd177f1ded7b01194d1571807c8a35d", - "888": "0043e39f7d08a1eb38a80712d6e6ce244fb1834bbf19a3e60a7bf9067de49a18cb6bcefeb3885c099eaadc8e9c8f04dad0c2a0599c61194ded218354f255badd", - "896": "3909717a6f65c8e8cdc78dc446f53a44ea9d08993a83a51edeba291af3a0fa874ebcd758293a70f4b660bc3b7909004c73e8755dd72e12db2d60d102d9b2dd60", - "904": "32253900f9287b250c2dfb72ba6b83e51695d06c438f655ab2c1f67732418436232328dbb60bcb80a619c3b2cd2e435f4a882df302242dd2eadc7e216eade299", - "912": "1dc47b8809b00ee341208c606ae29fc85d0eb4c1b12599291ec33cdedf63199a462feddb5f7313712b41082761fd79cf3f662702f3e9a06e6b65a9aa4538c82d", - "920": "d866fe4a230791c8e7828050077f2dcb6958d191af929fd69a125d2fd6e4666f634aea76de9167261a2dc69f4596822255e1b5dcfb2d98bf8219190e6770ef33", - "928": "2ef07bad5c41ce2ac94719022da4c3cdabb9f028db12bac0cc9418456c0d89a48cddea15cba69a8023d31456cb175768e1f51e4e5a642832e3ed2699a031b244", - "936": "b164ac505fe25759a1f9ff66ce50909f0e8481b21281b3e692f627d7adf68607a1475cbeeba3e85487a22a55a918a0903ba543057bdb8942d49964ad7f220977", - "944": "2e37d97706655ad2385385a69eaa650eec945860c14fd45f1e32d5c76160ca5636c5905036833c4f06078f97b628932e64a0a9c409ebe4cee1c3989c3f7a7a00", - "952": "80a0ef7eda4fe8dafe26ed9871f3a283924386c450716e45841400025bad79b6aaf1f5863c583c1074dbe7192998a89136cda21161b2619c55334473eb130286", - "960": "4aa70e2e777ba0879c79e7c2cd1492d948c89141827f776099e4672140ac09a4f77b6c4a2989c58c1340ddbb504c6f90ab695bdf77e9fdb45fe7ce4a1b18dcf2", - "968": "6a7c8f361a11dbd29df56c57cdb68d445ff88d076403dd308d1a15767b5b78d26edea2391358534ee519d6cd62b689ee95e2a28d6e4e8383c9061601204fd303", - "976": "46e6910b9f6900485d526c3a3498019ca243db5a8ec269218f4db8a574c5dddb5869bd4188799b0ae5e489f922c6e37947ce7c777b1f9292fb0b007db9d22c41", - "984": "68ad53d5455822cfc08bf4e43dc8d1b4bcc079c0fe55a933d5f80628390bd0d73ddccb33d697492330b2740815f8b12a281adc62284874021ba5242177e277ea", - "992": "977acdc9f93cac665a301cd995e9f7260b9bda079e0aceab296a25064d828caead957c29f9815137e7951c9fe3a50e2ad308d27a02f19e91a9adb7f395c415d6", - "1000": "24e7b10ff1653e4780d12e9bbedbe7afdf0181db1dcbf69117222a34c792973991b27a5b844579a0f1d9acf8ed95d979de11c79989ef70731e707c2f262654a1", - "1008": "151ba1ca1c71b85004aced1b9298d213a2933c91f0d207fc63b5ecf1bfccc968ba88953a9ec013b9591434be2283f4776d30ccade812bb31d9dfac9fd45bd373", - "1016": "0b2cd74713892965dcaa2a32b9ee1b86b505b1e7bf90382353767c938e15784d754f197fc47348c8db58fb526c3680ede4fdd5bec8bb850b019906d454f4515a", - "1024": "708dbd20edbd4cb8d1127e8ed75d8b89f7507c15b3eadbc8a2a0a352d8801dfda778d9c0a96b04c517cc8565ba28b6260b788a5ea0c8cd7091d3cc75036b412e", - "1032": "5312a940cc8f82a2e575d486273788cfa9bc5d940e41c373a75b47db2b9847f09bd71c8f65fa15ff168ed1bb4143b09a8c4f678c23384e47754387842b5358af", - "1040": "d5e0a3cdae0613e6ab159635938d247b5a11a41ab503001fa730a65259b7577b17edb13e7c75d0e90612c5ced843d7776f12a4e8f5678d00497aca92e64b2062", - "1048": "40a84fb7e6e0ebabaffb69fa6607759afb20babd9ef4ae29fab24b98fa0bb9ef36ec7215797bab0ffc2eaa14e5fa2c110143c84ab8d672f0dc64a689c84ebf91", - "1056": "8b5b19af484b48e8537bb0e82667f45f0ebfad4e8a4024ba6c080fccb8de573891ecc908b96c9b60c9225eba12e2e181f874ea91db03b106696d467420451d91", - "1064": "9f21c6efc2e7f8b37377b79a8c1a952021dcc666be670dcdd6d15a573dce67a810f19c4a65a7dd3d2a3bb3a31563456bc315a3f460eae6762af2d8fe6dc060d4", - "1072": "1791e85d4becece7ae1c6430d108e97d23da1e6ebfc573ec1e0cdbf3f81ca4bfaad240257dc5c125c7d31687759a99c9fac7a0feffb478f33f1809cf10a80b16", - "1080": "ffad3f92f582e77813a7bb6e99b877e8d50e6ed211392345d4bf8f2ca5349d2aac686860d23635e3eea4c5ba45b38e35fbe34e5d4d6742553c1edefaebd5ab81", - "1088": "3a3decb9e8716ccb0478e688a7c988ba7a613cc329ec5ddf937d6574de328431450194d69cdd6c054d3cfc3fc5dca9f323151251c2a23f9fa2066e7ead09652b", - "1096": "08dd6ed5c5510b7b242216119fa3998881238ed02197c5e3ae27ed3a3ca4ebc5b0fe54547994e4602aaf8675898d39ca198023099783fe4d0d23331e504732b0", - "1104": "c1a165227619e78caa19f283e955f8e143837a4dfb0207ee35f26e7e480bc6de5fe78e16407018555659b81905142d42aa09502697ba66deabc4c4d2a54f2b0b", - "1112": "05e5dc3559393f22b5112ca50fe6f1ef8155a9ad450f1ada2f721b56f4b0288d64b41e3275f7ede1b0ec6beb89a458277c8c862b60cc34443f7dfb49a0285b4c", - "1120": "181455eb50d22398d978797c0b1cb32bb423616fe5f12ef2e136ddf8bbc830d208799e8cc017dbf105cadfa58b3eb9723f28e21a4f1cc6998c7a6997be851933", - "1128": "160bfbda492c6a6dd33ba92ef8f16d4eb7df9e4f67ca5210bbddcb7b541474d914b61b38c1a3d1d00dd8b6954b1cb30f403c800781472f9aaa4f26d618d2615f", - "1136": "56f0cd12d41b0dcca5d63b5b74166b3d96d8eaf7cbc9cc832b6d131e7d7b408f2bba0179c022e8531d5264a3fa5d82bc6b4390ff2922f5674dbc51dbaadaafe2", - "1144": "7eee5de498ca8f74964a14290dcf6c7c1124bb839d94a99a24100e577ade541d47937574f9343908c802e22226b5a19235112677f4fa6f2e88525169177a3d7c", - "1152": "e39234dcf3b22d9cc6286cd7fe8789ed72909f38fa4dbb2a544bc90ef2ded6bddf257eebb700df2d6acb42198d8b45e13b3f3398903a6334ba058337560823f4", - "1160": "1e90545225ed271876afb17fdd3a61ce86e3136bd00329a8859da4d0e6560c1e6e9451ddce86e1b791cc1d771371391a73e160966aae0e6333a19a19bd3507f2", - "1168": "48252ec638475c7d08728949523ff66198e1f277a4d810e0232cd1ff3f293de7b3824a64e87aab544ea1af4ee098fb13069d14c9e006851793093e6b08bd8185", - "1176": "6f5b503f5e42498d2406dedc12e6785039d08c487d2630d84d464a1113eca6bd8eb2ff5716dc1c76631f2d6170ebb07ab0ccbcaae3cd2d066694e62ba4349e01", - "1184": "842fdb576b68979e7bcf01c09fdaa677c010b0620c3c28d34585e48b6d008f843a1bf7cdaeee6c195cfffba79c06cdc6d29a3f5a9b176b12dcb9a16c864e38b6", - "1192": "c99591d4a302e225e808e8e867f282bdefeb0b646c4a4a67ae21671e5e0295ae3d36b2bf67be61f0788c6f6b04de7d87e7a0f1ddbcae643216da7c236a6db552", - "1200": "68b73dbb73a4dac672d0a671aa75f44503775e6c7cfc24ff24aa59069acc76b311ea4107dde14e43476a32694bc8721e6f1cfcb0d48c7c9142ce8c7629fb1871", - "1208": "a5e52f7092358ea28b7841864c385aee154fa6fd57e287c8739f21e7abfecacb8a80353bca0ce57d7758d2e57e039c47923ed773c761ba5dd48c80cb64a40b36", - "1216": "662e3e3ca086b824a5ad6d5a3140e762883cb59ae30d0cdf318469d3c88b8ecec4bc486df0efaaacbc6dd883280ded821220ac7de63ac7e3e5f99c3e278e38fb", - "1224": "ff0adfd6619291a4f9444195da6297ffde314b0d5965d1ebaff3bc546e22cf39f25f2f47110183cfc5bf193849b84d944732542d1a2865f056094658eab57ad8", - "1232": "ed4d69acfed5f5660f82573a17552ba7ac5169fd4953283fce1efd56ef4a132959e34725e6d26b1a3f6f8b5cf41cf55006a643f28890130f258cbfded292067e", - "1240": "656a7b7348440e8b2e2102302fa07972b2ae8ac7cf7bdacb53a27e6d2afa84f2bc01ff4d3bef02975d602586b5b757a791940839b628cf05fa712a79f1957c5d", - "1248": "a8534a181579f4e2c528d6313854f0126ae744128460a05f17d13464f3445b27129815176fa4f9ecc9e569ed30abda86a4f7d0fdf4fffb4b60353dd67fa2bcea", - "1256": "dff7595c4e729a6d9745a7a5b232cc32fac0d734e83e692a84f0c2c1a120960dad143c9096c1cfef0c52d17b26dc15e177dea13defe61bbe60f57c33200f368a", - "1264": "1a9a95a7f6bcb220c7e2d53f94d37270d8440355c041a5e34db8e2f01a69e82edb04ad698e4ad475b9a9bd0594b7e3c93582575761da313148e6648672145ee4", - "1272": "c06d042b67d109bc95b941b129bbc17ca007b158255544b80a01515e7a8c16a2651af9c4fc243a28425757e670ec39eae68d135e693892c057b5d2dd5176b88a", - "1280": "de5597a4d2b83c84b010e8c967a99958ac9c4b5b3df2538e34e740f8a09253eecc718dcac488e738e1f788b7f00737279de979232e2875445eb3490a93aec036", - "1288": "409253c674428aebee16e5a85c72ca9af79437769dfac6526eff389a502eecb973c0dc19b07de4dade107365b9457c10966bcfbaa39d276c2435f7af85c21d0f", - "1296": "85620f3e0c5d4fead6fb1fa1138be3ce14b3c71ab54c3b3caeea06dcfbf640ece675c5943deb7a3e422e840b9e183e5ba0dd68820f44d8d04ec465909e151d76", - "1304": "3c3af58466d1e7b6d45ee4491558ff6b93f3e9c4b69e11f6377f7ca2d23ff672e2d4138e41738277392d6d50976c44737ce37c5d1d72fc4d8676ec75e35cb7bd", - "1312": "1c8062b81ea089bcf4f9c7db6b1ff7dfa6258ba4a74a4a600c2144649ef6fc84cb6b9d210d263a07596149d6efc8147b281d88efb3a44d0cd51f959e42d58e3b", - "1320": "d4ef9ab758062c85dc0288f8965e72db202d46a95f0d921a596859e6e059cfee2472a2eec20bb0138af94db5bcc2db4e4ece20f121c0254e823d4a0c8a328fb0", - "1328": "0649b648793d57d0af7f64f33ab80659b3ad3cf235e9ca318e33fc2cdbc15246285b8345974be4505134cde3463f77727698d86d9d51ed3209cb27baba20d443", - "1336": "bca5efea79f5b84dae25e056bdc320142a6e5613818dfca03cfb74a1724956de6f7cf301f303c8972aa0c5b4b9e26ece3ddbea7e032d30e4ac71e722170d850c", - "1344": "ba3156299d1ed69713a079b0d1eaaedacccb1b3a22e88135b15f172fceae6195b62a05e3421ff093bd15c352df8e45ab554a3e968a4624a9f2f852d398f2bd7f", - "1352": "755f0b54ca4e68fe1f2449fa710d411156c281478dd409e457f497ccbadb6581b36eae605af93df89fd06ef47816a82d4da3e7f43f9e99217616bcab31789c4f", - "1360": "716f0758627091c58c61bbba6aead3004f1f80f45217c584dfb8644071d289d4f2d393a96b41481a4007e01aeba15fec5dece066170ae2483d17c8bfb5244de1", - "1368": "ba0f029d0fd3e89bec451c97eaa51eeb368a9f96a93a7a51d6be93975ac71a70274158e5178e169b789d156fbd095db68459ab3a0ddbd659cba246d6c470d9e1", - "1376": "cf7f04f41b86defed622eed843425ae0e0b1eda9c3ceb0bdade2715a1fd5e6c44996e9d3baa083b1c0881b3bf4cccf942390b8548e8b804aee2c8ed2bb8b8759", - "1384": "3e5bdc8a121624df2fb77bc0873bc572f1fa3457483c53cd6a1dc153cf534508586a7030b1b1ed453cea4c2f84b85a8b94c11355eae02cf08550dcfa7bde38a9", - "1392": "9a3388ef92ba591e66b0182d9064e9267dbec923f3c4d01d57bb770dd84e16a959c7c1599e4d20c3e01845319fca47c78d42629acf09c198fbcf32c4cec7de86", - "1400": "7b87482af3571a8a42f91b2e9dc57b3a5a8dc0d3528ad92c9eb8803cd0d1d86f8621775a20d6ff168ae1a76260ff05d0016251b7042dde6dc2454cfd805b9b53", - "1408": "f64a740fb876c1e8c99404a293ca54cdf016c84ba5f61b9015456f4763a66b9783be60a4c16dc518bb22fadca8841b5206adf3859ca533b24baec0718bb2a5ae", - "1416": "e7b77c1746e0a03ea9f127468ecd884f0f21661e4b2acde0cf2c0798ca150042881f4dd40442e7735b937662cf471a131e86c25fb57da14a6a811b6192b8db4a", - "1424": "40666786204844ce3359577ed720e5249e56a021fadcefbf630949cabaf730d1f9a0741f9585af035ed06b21ebd314093d9bbe1ca8da5298c0fabe46e1050338", - "1432": "e5bd057c96c9348223a2464db7d778049177c6191e4359e992051047265b7c5723d605f5d5ecd01a0d3538934db2da8a88dde94cd57823d00d72091a423dde23", - "1440": "565f299e5643c6541965de447e6b5abdffaccd5bcd151a40f0fd882206d7d8690933975904e54f3c7f040d0af87da562959cb4d25ba390f958eb80dbe884ab46", - "1448": "8504fd534797a5ca5da31c37ba41f728b3b37a76242d3add44517ea8d06405d12b2eec1f8daa6dddbb46d6649b1c7a1ad575412f05faddbec83d5b122dccad24", - "1456": "79d705406cace2a0fc74526d698e3c7deae5442466c3e6a1ae505d2560277bc7978fbdd09e7d50c262c1b915a39d55c0d83de6de9243b4663cffc2173dd48bfc", - "1464": "fe511e4fc147d8bc8a3650900042dcf7981e6fdf13dc51931eabc9c81a6ec41d0de0ad3fc68ad20ff6a1ecd32ec106a5ae3e12560552f9081a8c130c79497d5c", - "1472": "c774aebcfe6feab775ad08bb9ffa2f19d1c5e0ef9882d7bddafe633b1193f7f64fbd0de77bc7ee041751ed4bd0d8bdb951156e401ed21f0eda79b31d9d19861f", - "1480": "bf2dc1cc03ff73f5e63c06eea00634d326ff9a2b754858eccb5f9b27f29762c83325f3cee5e587a7770b55c8a12d8a8d6883b93df799def00d3f8557ccea59b4", - "1488": "d66dea1758eaee530f5625b1dfc8f89456076b8d851fbd91ee197468aba5fcb9e4920a2258a3400e3b0f27537c1d4c892cb87c85d7bcf92015628c168bf6265e", - "1496": "80ec8f624ba097c737739875f4dd86e274a246529b051cbe151cbc34a9529e3f49ff596ca3805f3994c6a53996a8ff70218880f86cb0298cada7ea684dbdedd3", - "1504": "6a535653fa2e1e90d3de5b1c4d319eb607ffc57fd373fc3a9dbe98b458992f478ab8534ca94f202b2ab344493b210379f39dfe4fe6825dc57fd380d553a0f1bc", - "1512": "44ae1a8868accba99c4849e3494905aadb383818d82a3d9b06c17c049fd489e68ace4c4861988f0c3fff4df9915e34668fe8b1f7a46e8e4207162a54c7e4c7f8", - "1520": "1ecaa6004020d5f70f1572ea2c14eb22f54538f7c29fa57b2f127539db2cbc34623acc35f49f5a4f4c2f948b104b383da5b7e999d22dd535ba3e42d76a7e1f62", - "1528": "44c3022ee9c021cd36ca6a41f2c90282ddee53efb130d39c563b3952a352a01c1e7da713fde70abdf79830b1abd2f2af9be6b8ac1b3691db680c0f5824793a41", - "1536": "aa9d335f77683d89c0a06e4d9584198672ebe7c6eb7efcd4433927afb39b448207185297153ecf1423e9e63e132c6bc49e6e8610b4331271912b7dd4715d53d3", - "1544": "18ff6302c39711b029e6f838007d56ac569993cc713dc71d932e4e5fd78c845eb9c79b4d9a21a3add3867611bb217179c93938bcfc7d06af3a67319dca2061ed", - "1552": "45ebe0bbad30bb4d921aff04084cfe0e4fe2b93af11d83fd5c3e25cdfe6900c25f4fc4bfbf7a82277005cf280e3f4890731da9066e6185227493d314f1d03dd6", - "1560": "94c5cbca6a5d947799636cf8c4418535686a909fef68fb7406539eee6a84a6274c723bc6e2e1d3a67ec4fc8f63453acf5931af87d865855f089aef6c918c6dc6", - "1568": "7dd38f9b6ecbe0e734239f6158ce287f49f950fb191b0635a3a3c643205d59c2a8ab435893fea5c82b7e73ed0f7739c124f9cbda5d807a6410e03d2eedd7e0ed", - "1576": "c4fe52c611f369f99388634dd9aded9f2ef2400521453a44c4f972213d3f6d67811d13aa1effc5c464242662b47251044b24f6b618a502eccfd70f2a830637e2", - "1584": "7bbc0adbc558e55b3f733f952a1d3d842fa104ebc3057cdd4f970ff05e508def2116c225f44007197ea1fce49fb59fb55ebf61f5265187de3f3752c7c828e5f5", - "1592": "6f08eabbfce4fa5fe21f09ce980986d0ff53ab1f82ede5faa6d4449bf0eceb6b45c4a11329da4395d9d501bea01084a01a26c91de7317dafb92aba3e445c0617", - "1600": "52c9d570ccc1bffdb286a0aa89cc7ced7cc564f30179ead16b81212236c791ed2cf5249301285286668599007ce5e2180bd1e1cf956f19390de16324546acfec", - "1608": "0222ff6fa48ca9056d3596fa7b3ad0c39c1945ddd9a72a6e9e2058bc31d07e1dc4caa193d3a71b064df636680c1133102d1f38fbdf1c8ccfe39e6ae5be9ddd45", - "1616": "ebfedf780cad7c64f36cf0e65c209263daafce82ba4a69de080cf7924d1cc70038a0bdbfc5ff30d9bfc3969fe83aeb20fc6c3b4ec3b080baf8a6e4fb4f36dc93", - "1624": "8dd938109b2d25c92f4d31ca6fead90f345a50ab137f7954e834052793c3cc3925a5a118759c01020f6172992ece8b95515dd0cda5585ceccee08c4695cf9b48", - "1632": "23af776f4ff1f7e2829076c31e6cead89abe313ab876a14b15aa6f4943eeb7bb1bdbb4a8ecc1ffca27b398f9cd595f13805a4c3040be9c43f52f94eccaae90ef", - "1640": "9f7b5a338c1a03e8ed275296d8bfac93824545f3b87dde8eae6fb516e34e96642480b062d1be58fd0365371e1d9ac4815b07bcebed33a7dd4c5d3774d24f83b4", - "1648": "fb51de4751a6ce74db00b579367c5ca14e41af631ba3db0f81ce936c680456d591e60b2bc089533e3cdfb5318497d4b1645af8f1b17425d7feb3c1bcf474dc7d", - "1656": "a84964aedc48ffa6a8f2f8be2a58d7194042c571c21d8a3da9966dae0ad0f3e0024646647e8528e6e9ebc6535b7ccba3dbe29a077a9914cb5d0a58f220c2643f", - "1664": "c6bf55ba3524b554f2db6e0ea59bc5a87eeba0682016cb1f10e74dd9946e0f17f6cc280e187a2e6e0cea616f900ba528a78145f3409382f5ecab3440bf79ae6d", - "1672": "e73dc851654f730a1c6f20cd63cbe5a58eeb9b0dd9a81b55e1a7ea0c674b3c769162e706e5d0fef12688e665ad6cd7b9478cb74f4f1793fbf776c42b24bab093", - "1680": "fc0ec0cdafada3f2c6ad8fb5481ca7d872475fafa286b4328b6c792b2bc2d8c618fb015d8a1d4b22c0da015dafc0632573784d1f22a20144dc9efa841385114b", - "1688": "16e4521fdf0157ae62e3f50c93868e364018b0b0e068de0bddbe2847ce4672531ebdde4bb9bb74f41470e10d930aa14dc15cf10ee39360f99e06dc3f7e7a5bf8", - "1696": "39f76a3b0e98af019cdaa4fa5fce94195c063c9e16ce6370e1936fc792ebd9e28b0e0445bff1a826cc4444589cd161d0395478a6d23d8385b271eb3a152c745f", - "1704": "2df488ccb009f0061f22048088ae033ae3a97d17c766957db64e05638c437c8b2d0c6eef99b076d7fa203ea788d0871259f7462fa2c989ef06a00948d4de09ff", - "1712": "b5a49d8fc447135282136155c74e621595e380e3ce0d1bbbffdc246db36be9efdae5b18a9fd964623b0c7a0574ff768b3bc398b1957331252a1a8b2ed64da7ff", - "1720": "46e18dd6793d1413dd4e8d3fdd2f84572a9b9d93be61971d10c5d04e498f3b198f38169c20dadf5c217786d511c109fc51037ae154dac394cfd4ae619d529e69", - "1728": "d9452d26b85efafc66b4ee6893d9bdbd996c88ef7d093832cbc22bb777852ca390117cecc987685b0698ae3953a12d2376b61d9e5672ad78304885481d9a8cd6", - "1736": "cfaa16147199f85948fd6c4cb1e992f8fe138768fc163f95cfe6951f50f9b8724460bba406ba2cde4a62b98c6b5ce7b24bd10d147082e0ff4cfb7cad717ddb0d", - "1744": "d292e96385cb31c06e8e7b2e1c014644dbdab25b116711b663cfd786f94b4e2d262a73338d978a6d1f29c1caa30a5bd6b14cf760cebadaf74fec6af2fd7f96bd", - "1752": "a6de6ca55d4bb50ccf2c41cc76a1f5f16b5b0f4c06fe12cd0d8cc06c060e7863bc50dcb9bf381f6609cae526f2d4ef1798fa6d5a13959705068b0db0cdf66e56", - "1760": "1e22c478c068b0cfd5ab59a86a3c08291ee17a8116ab86b4a52c7519c84f0b1d701ab4e0c4000ba5f245bffbab705fb7776f53cd21e476798edf005708ec82cb", - "1768": "80e0179192ed48d651dccb6eaa09e12b4bd2d8f163d662472185032d3d4fb0d3164f54956d650eb4639d8f3c65c6c7425bb454fe738abbf03bdad4dcb1e8e315", - "1776": "ca887b0ce77d774a21a9239b81218086328dffd1d65caeeb6a4774dcf9b936c19545b7e37915f9bb4583f05f7e20ae832041463088b04fd6c7ba526a6261ebff", - "1784": "c4db541df34e7fab92694eec1d68280fe4c3dd5681afb59614e3b11afa8091b890ee98658257f0a256c11810c562b4bd07b57b1d007247c26fca0422d667e6fb", - "1792": "ab15b50b37e861b8ab5098080da6388c04bcc9d774378f7a00b672f8d51d82ce34ef7f6d963b9ec640295723bb965bc59289271953bc7377a2a6b0e8de371779", - "1800": "aa1714fe3c5ed277ae212284b9d0aba46cac79f5d123ce639c16b4cdd9e5ef1219683505f4153a323a8c2a30f513cf55815ed815efc430ea4d5955fa760b2fb6", - "1808": "37299e62cba5b3ff5384f39ce32b52001958cc710a00a536ee14baf8865fa66d222b79365e5b85ae02ff9bc3ed17e7fe7e3e18ceb49698595debc46fd1dc833a", - "1816": "4247c012215e85acafb94c5c1840382ba096ddc1d62212f570d61a21c1677ba8d776e5679a6b8f2bbf0de6c3f980e1aa78bdd7900a018e537c4b76dd767be3e4", - "1824": "8a9f46c05566c83aa8bdc8fc7aff4822fb75fec2c1f948182709b51683149d00b8773beed53a19e4e4a53df308e5c1920ed7e39e0b9a1ffeec4ef39f724afe5b", - "1832": "91d7beee49a87986ef217d509d4cd4948cffe7a20c9117f8517d2c8c9de094f794032f189079e9735463f02ba0c61d3b9f2e27455a89ecee440562e17f554e92", - "1840": "ef90babeeb7be41f556b89b52f879166121240b30456a23f296b6bb7b6ec949b2a821abe79d9da6375077db41d115144f4bc6c6fd2383b8a766a65de5c36dde2", - "1848": "ac8709d7758d8954ee95d6621789d716119bc6f214f87388622f27aaa4c655d769abf97c72a1e2405ed9834fad5e3b49b4be8106ec894293c48d21c0a607897a", - "1856": "545ea9fcdd344ca84d2457a62f4d3eb4f59722fad0547a680d4e9014d4f568633f2c691a63e41d6fbecbbd77605cd0c57f4203ca6485bf75049f8dfcfaff6ac4", - "1864": "b75e25e6d92be1424ba4003f0be981d9596eeeba6e86a0cdde978220f4e3906cd8a5ea150cc18ac1b175b9d9501f1ec1dda89fb92344f28eea18454fd826c118", - "1872": "d77ce73f451c9fecf9ee096f457ca8a062667c2d03c7783f101933dad8bdf0dbc46193216df8bfcb25508d41b66adacd185dd3a4e9647c31b45afdb99f0680a3", - "1880": "be19b72f71139c10c3e549af4975d0dcca95df14d81859fa9f5a6b4b1d38cb393fda64dd11d351bd2c3ccb4c5053df9c750308358e7754a8bb7a3b499cdde48f", - "1888": "155f3b26abbee6fa1a44ad01ebad262f4c3485766f9f93dacb2ec0b3a6d77c14a4ea19927674e331acffe2c97ac2ce47302865c1cb5601a09b5e69868763d76e", - "1896": "9f5293a1c3691717b995e398829b0783dc3169b3add4d1cf062e0d74dfbf6697f9e814384f5c077a448df99a8302efb095161da3086008b8f179682b44873040", - "1904": "748f0b6d8aeae399b29f9dd922b4d939c5403df8bf21629cfce448f929e910c67ac2c9bba5cca34f066f279fd012b2e72e8218cc6422aadb2ebad3333e414c00", - "1912": "e46045fd8a28d09481e4b5910178687d96ac1fd3a80b6be92ee464c8b5629170570e0a0626610e0d871bb32ac589fa7ea43ad07a84b61a292231a69cda43ce3e", - "1920": "8a6ff1efde11e0cc0dcd5a06d11adf1b6c0d1140dc7e5fdde7196e60a0e30f60d3ba84d5f80274a018634162356139145fb02f27aba1b4c7b0ebd3ded63ffc46", - "1928": "e37ee7cd2b033cfa6844547d37d0a6c33c6eba595648c0354e942f68396dbd1919d044a6c317761ec2d4185a804cd6f9b460cfba4895947e6bc96b227a314d19", - "1936": "dec59ce102fb58ca5de6abeb16fc5370352e65a06a5cab414ec83cea5da7594e3fda7ff451b10eb5fb7c0154f47ab09b399ec4c22674d387b53cc8fb6e4be12e", - "1944": "66880f8426f5dfc6129b505e5a8627d6221a779a68a72eb697665a302544f6684a26c842af9430288e033dcd6dbbba44abd9c6e90159ad6f00014a6843a7f943", - "1952": "35556c377ef87ca540037d0483eeb60f698ebf9fec4824055ac59f1f949067852ca41dbbe2da169107fba05ec97cb7b52afac2ec1bb6e928173ac4d7a05f97f1", - "1960": "55faac4f58c0a8dcb0a06344ba673b584be931961d7d42c424c0338ae69fa019a9de91a2959cf26ca55462a108c0650120eb881c37f4c58622cba3442b1c74ed", - "1968": "0bfa0b883bd1b7fca5413fcbc60dcaba2a8ff7395593afb6a3bae8d6a8f41e8b2b00dc4b0e54c59dde28f384f72d2d3985b6034048a3b1643a3abe67d45ba2fa", - "1976": "4a4a68eacd20764ef2d9b4fca3887eb227e62a264097d12fb3de4cd1a37b7d75dec0c8b0a40197c71c3f27e5434ef59be896b4be2aacfe3facb6cf892b608f45", - "1984": "783983769dbbbbc94ba856b35b647efafa29137c9c9a5c405f5ad2085297489ca53ac64dbb161a8cb614e9f4cf4e05721069f78f4b68517468536a009b9e527a", - "1992": "3335d73d36749c942c34148aa745e354c0233d57db92fc9f1d0c9462bb3d19a0903341182607dd5966a5effb51512c51f851699d692a623aca4912ad960fcefe", - "2000": "7ce0f6b623d56dfe6275d18a07348b2cd92baf8c1b464cfc480c2b12280f0242d6303409add2a9082efe34ddc6297946944941d9ff0097662cb1dd6fc126312d", - "2008": "30d4c4a760307870700d8b1a9266a52a9b1ac3c9df4594de50abcc471868490bbf320b92cb1195a6adf0aca7fc702365d6aff1db24d9a6d516b90ace9503ac1d", - "2016": "ff13d64a919f4a3cbc3247453e0ca88e32256a8f6b8a91b3915ba4d3866450ca5c3fa63de9f632b146847467d9b5477c5b37bee924cf2cb18d3a5e70fef3bcd4", - "2024": "c5aad2fbb8b2da175da315960ca5f74cd94984bb8f667c38985ca0cade27ac688cb28edfa3d39edc766ea30f8957c83bf8225021d5d30c68b895ec564a99b49d", - "2032": "08134331ae5c909391d30632bd864120caf5da96972a0de1b67d90070f1594c84d4caa78d2f6eb86dfacb2a2260092c9bfc8d3d9aff3e73e7e31416a9394fcea", - "2040": "df5ce5623bdd1f0fbcd84aa754dc30041449e0e8d99780b00fac6fc8e02ed3ea37dc14a458427d5b6a1c126bfad782b73b6c98a80d688e4c566c86694498b131" -} diff --git a/pkgs/pow/corpus/blake.json5 b/pkgs/pow/corpus/blake.json5 new file mode 100644 index 00000000..037e7224 --- /dev/null +++ b/pkgs/pow/corpus/blake.json5 @@ -0,0 +1,260 @@ +{ + "nist": [ + "a8cfbbd73726062df0c6864dda65defe58ef0cc52a5625090fa17601e1eecd1b628e94f396ae402a00acc9eab77b4d4c2e852aaaa25a636d80af3fc7913ef5b8", + "4f0ef594f20172d23504873f596984c64c1583c7b2abb8d8786aa2aeeae1c46c744b61893d661b0733b76d1fe19257dd68e0ef05422ca25d058dfe6c33d68709", + "20afd72afbb66a5a0efd8b4a627cc2c82a5e4b6c63b0c9a78735c188d248c7588fb4ee566b3b6fdcc235a498f7263feb7ab1411582a7055e3ce7a8c976e61fcc", + "b1211367fd8a886674f74d92716e7585f9b6e933edc5ee7f974facdccc481cfa42a0532375b94f2c0dd73d6189a815c2bafb5686d784be81fbb447b0f291272b", + "ccbcdbc1a30ebbcc4fc015fdb1caba6c0ad6719301b4bbad4b0efab1141174a15e2e8b8b8e5671c1864a0f75ecb20f76dac45159e67786d07d79a29b1827e5a4", + "ec6eaabc2a128c38dfcddf9aaad5bb6fba397aac06a4b584b2dbdeb0cd7fdb1fd248ef93c0686b73818b2b78c923c70eba63c096f33d842ada959f7674e4730c", + "b6e8a7380df1f007d7c271e7255bbca7714f25029ac1fd6fe92ef74cbcd9e99c112f8ae1a45ccb566ce19d9678a122c612beff5f8eeeee3f3f402fd2781182d4", + "6e66bae94df2233958b1be831afa7678e247104cafdf41c15aeada5ac18715f1d4512114f299527a8434ed5daa99b12ba7bb9465f6799cb0bff9a31fd34c22d9", + "e2069c9d8a33314f3bc22e519c80f08647ac238ece2d709e3904ce77097c7ec0f0a398f60c5667b26a76df8023e39c84c979f424539cb96b736440b854bcaf55", + "dc8b900ff8f8c9a748a14be429fafe7bfe9e5f829d8c663d02893148c8dcac7a89e8c7d46570b32c3933985c6f3d048ff58431787891b4804a1050cadb169e6d", + "c5633a1b9e45cef38647603cbd9710e1aca4f2fb84f8d56a0d729fd6d480ef05f8a46f1dc0e771ec114aea2f9ad534b70bf03046118a5f2fbdd371442d9d8895", + "4e3edbcb1598fe5cdd444dcd6fa1390982e21107d2ab104d3fc1ed35bb08ac32b66b86b23b55429cd246179b99ca90be1929b049a96e2c3434806114c33309e2", + "123322d5d95f0794446d28288af53e594ee046a48b7456bd37dacf921c83889b8e9d92c4f1a706fa8713146e60f1997dc85755b8900b23d08a46e081db0b50d7", + "3a3ffd51985380c91fdc503ab72cce0a711bff3d945640b61d40be720a79af3ada2299788213cd62ee33e9d3355d68e9d7eed0c0c56eebfbc4c5a7c0ca29fe03", + "2f88021f36ed80f95be05c0aa39cd0d77b0a10a285086fd4882debbadc7cbf4ee402469f7ac71a3cd2464b5756838897c3807fdf8fe83fcbf6ff320a0351b71a", + "979cc4edf67a07d35a376bc1b791a0266b7aab97fa733544cdef95b4968b194519594a5f24008fff42de132bfca2168896c44a0fcec2167ecac1fa907c8c5470", + "ff2f4d280127ac37d54528333f9f268ddb70dd044a558d8895173d1d9d253489947e4ed16a52e57298b2126d7761d31e060ab5eb28ba04e05f032abdcf344f0a", + "db47fe031f185db94489e02c69b066ba25187c1009aea0614f2292838062685d38a5dcb13bc0b0cc5451727f5ad4b47524921b8ce06b03236681e200aeaf258c", + "434949fc2dcf01de14ae1c05cc2ca201da5c9008aa222f77a4e5fa8f81e5c3d847ac2da8ed9d63a2552eacd7ed90586ad9da38cad0b1dcc542b21e76d5b85f2b", + "8dd8bacf14837b8d343ff5678f05642d7566b8d874b02a958b469a9bbe949386e1f999c004b397bc987b2c6a63988d170d4a6317d49640201f712fe943d03ff3", + "3107d40d9b83837aea236649acea28cef05010f529d8974282f1028726860f6fca837082382e80ca541b21ab685ed60d8809b5bd826b42aca0227be03f689f7a", + "b2802809b757a950ccc31faf56af6f206ff40f63382856566905dd420d5474c1ce069dd9729f8c31744180a07f9d90539f696058f5f5d3b654382c745afbdb05", + "023972123b0e4c8dea7eb126144f84c145f2db46ad691e95e56fcaccb11b4129227014500ae1f9eb37e518c67d2aa8605ddc6ba22020496c422fda29e8503668", + "870d82edce6f1a83143df266a556443f920b69d7ccfd58403d912cd10af61901cdb6f4877d317638e8f0592a2d35b9b5e9183aa1fdf36c9d2dda9de086e8ec43", + "a1d715fe1edaf888e25bf9785e2401ae6b5d45a637474bcdf940bb37f3502c5e4309a44549385e601a8bc99f881ae4ba411b0464849f2aa2d03bc237ddbafeff", + "3319cdd45556d834bd0be8d5e905365e1f9cd31ef0383402bc5251cbd34e09f064f6ccdbcdfda3973a62766d0ab4866660064b80cef413f2d0d490d99f62d052", + "cd6d552bdcb77d68454b2f2f1452ffef6266f07b4534d06ce2748cddbe4d7045968965f4a574c786f8006464f154d89478a3cd675cb11449e82890dcf314a6cc", + "dde54dd4baf9aa946c2ebee0afa98819211acd034709d2bc8b2260df43751f18f8c41c8f63366858949028be41a2d68cdcf4a777c27edd283007dd80161cbd88", + "c01f2f4b337cfd746411fe69af676f909025dbb56f995ef6a735777cd7ea7d93c89086385f9136acb8e5a232af2eb107d7ee1e5a47cb90dbfd1d3000cf857992", + "66dc93d34e6494fdfea43100037a88bfa8191d72419ba01c8e2eefa60c584eb83bce8b20ac9888ef19cc2b3e2f6734f53752cd8ee04610fe36fdaaf0b73b6c58", + "c668b4949f9274755fe2e5f74b0ab4c2498ea7e50ed28de46d500916fac4f52b15f8a1620c9ea1de98cc6e6ea145137f54774d3ef5176b9bc1d854585bd7367b", + "03bfeee81a1da5a8ab71b6391b3f41ade891934877330f943ae487c960fb426c2f5d8cd2bfb48019bca84e9fb9199677cbd9fcff896472d15bf6fa3f7cdc163e", + "b9330e5858b8c5ab4465ac8f1393a4eaf616d668581a8958c5fe8caebe6d37bb7862153b34ffa4059a6f2496b925cef8a7d556b49b46757bf061a77e5712faa8", + "95143b7e851c8f95fd55f73ef0306f256d434e86d2acdce3c3f48ddc2f1b96c9dc1e84c60703737d11bf14283f84e751dddf2c99c69a74b82b1735dfc99e1482", + "b6e00a6118101f5f782bd958f7df189956c01dd36b586a16667cebd5d04397417d605e7f4980553129b8e25f4035e3c919a76b8288bf5bdfdeff9ace77ecfb70", + "eea743043c1daa6132359c57e16580084a79c3357aa622eabd29b129818c6633e3f5356eb0eacf4f19d158edeada45c586141f798eee692c8e38305e8de1f275", + "7ec5e1adebe2e3be5b7cf5ac81d04a2362b8f2aaff913f143d209040f2083a9d064f7eeaf4c12a54fd26f3b24927788d874bcd1d6db4ae9caaf129fcb9239364", + "7695c6662cadea5725a03dd2b0d97dff3665cd7e1a627214bbc919e338df2795b711f7173d1d30d0555691a9793d2c132d7cb949265977a8dc7df0fe087d2b07", + "df59dda7164b1e193b37e887c8169dfae473ac8dee543e7902e902e253c717cad750a145b8bf9950a009db4e834d060f4e08643b82be5b945aeb529f5c52553c", + "e85247e33827f464643f2fe8ed901b0e0664950bdb892a2b6105d9315405f27c9868401300dcbc361d8b2704bb885ab27e5e881efcb082664802da97a7769a85", + "3295ac4d0105a7cb0993b198be1ddd12f60ef40d32aa0638475e59b82f097d14151f5ec1fbba5a3e1403e37266b0f27e4d6305feea3d063c819800b7aac5a2b2", + "23f1d701490e1e737203f8562b230b5d0ea65ed6aa7ae79e1db34f54a2466f86307b6aa8c9e45e38e5cbd5494e87b74a2d83cd80fdb076f4286437535f330d69", + "ee5c884e3e3298239122db76e541378bbac0e85416164537cb103ab5610cdc8a09426982d3c4fb4c95766e866ce6a964a33cc8e3a3aa62a01307fc6382606181", + "721a5c4d8812398291161b85eb63114edc67151ae4a9f0b1ff510c2c1b9504a8c69210f8913282e42718cf0123451fab201a3843b1897e60daa6e8d3ea647b57", + "0021f6b894f2e60d6966ed1dfb55eb5666b5038b4fa9ebeb8cc25be19f00caf100e8bd3dff3cd75a6aac4d198885b7d7f1abe25e8741d475dee4e430bd454137", + "ccc320256088cacaf58359bf9ec3c25b404bdd56b9d86ffd4aa08413f0f324d74fa050dcc1d862c6273a55a85f5c02d6941b305666a803cd17a4b5b75325dc7b", + "75adfb8b4c9e7a951bd6da1785e120ad9659e248046fed3ef9ba95fd67539479cd084cf126a974a02354e6e95f298ae83bcd61e0d95fe99d7e0b15c46a2d1f96", + "0b39015415080d54570b9f7087e9cea3d99b035c06252040752141561038ee2426388ede2c7c98ddeca1747fc38c358dced5ae4cb3f35a213e297b0ac6d94545", + "5e77fed99fed053f5dfa6f4b2458b2a5d75f3d73f8a1b436a3127809575c01438ecc92256946fdd79969c33d1e4e4578860c84837c8313c371ad3ef43f6a54e3", + "d2457d97f88b8ca48fd5899d790bb102f0debdcdffedf9d546a330f683204a67d1f2eaab4934738bef700b0dc8647ee63e3aea55d7c6c244de76c232e75fe87b", + "2f7918b8a9ca5a0262e43de95f29dcab5cc8c0d483ebc5a717a6c5d2bcef064c47b232f1abd43a7802bf980eb15dd04ac5b656ce76a2faa4982450913509ec15", + "68d76315aebb41951d9e2498d118896c0bcca500033754baba113c602f82607ae224813a7db0035fc206cc9d5d7600269384ae6c66c88b99b22daaa8c7b9d3af", + "47a5dc88882a1f7ca55c410d691cd058b75fce334bada777ec94739298ddcaf0e8e9cca611cbc78e838694ed3932d71738bf38da3245eb880902b78d1c0a8caf", + "b12317778cecc403aec339bbb8977d4ecac1e477f6c4db41098c7883f759d5c4954f590e531fc98c00f0131c427998aff481db82d4a27e87fd777c8129a33657", + "95932e3f12283fff258cb03d6279bf6937ffc3bf2d4f3baf90f858035863e910db1f1051294817477f7ac6d66eeea0cd141e8c9e822bfb0073afa6bbb41ee907", + "939b3b16698f14b4de2c5e1894d8a75fa641188e5887e74511a128c005b135f04d00db30b82efd8e63cdc02eedca26d1c15f1cb50baab6db517521e154a0e11c", + "f6396e00bbdb23dbdc6ccb900a9ccc7ee6a15148ae291879d1665fbf10f63c87204ecaa1541a5ec8cc02023e3b8c09a9261411f80c26ef658fab3e032e16db86", + "ed3dd7f65d7d55e9af70ae694179be48dee50669fdfe09fef55950c7d1f14d0b4dc8791735939181c0ef7d17f4976f9a1d2396f22b9a1d0f40de1678adab4e32", + "1c716598b1f4deed02617d5afaed4309ac06dcca6f6a586d6036892e188618e3a0c31882dc90545d33d10a64289d362dd36986d694fff69387f4bdc2bfe57217", + "436d5fb1504a58aeba281fe6214e7cad9448a54edc5371c056c47cc220a1b9510cecb6709f180b5382487f87be8fb745b449a7187391589e26f85a7805f33129", + "c90dd10ff70f5a77e34917ef0ad03f2ec156b46b2fe851ad567ea478f8b0c75cc911dd5ba3552fdf150ca8b970f634c513d952786d262b16a8451390a4375e7f", + "f74bee0be34d658d5915d345731fb3d4ce234331eb02a807cff5b8faaca8633bb1f44845f68e24bd29e22bb7d8ee5fb453d04f0a9ef5ba9e60811c44c99a4a1b", + "130a6b23b4af7d090d5a3a5a43b0e234271fbb3048e4832b487f600f23db0b9c2572deda814e56c457dee10cfabbdcda0e85ce07795347948028bec57d9f4f30", + "7baf21fd1b9c1aa50cafc611fe640f33004aacb5dfa1baff3ddeb8360ce574ff0ca8bbabd694af4d11cac1e04bda44b729fa007e57c2d63841c95e0ef6daa4d0", + "ec1270cb5c96df2106a9c4f694ad6dc8d83a8ae1c375b613a447b95e2a09e76d1a32c73cae58ef8c6822ad7ba50aabba00f01de11ac3606fabb67fadbb5be530", + "ea6bd3422c8e5108ee70085e5626ded927efa7439f430e0c5d0b2bf78863d5f3c60591c24f8dde3cc13100cfdf31d96a4b24f1a45e49138aa8b2e4bd50446ab7", + "1317f755155658dbd426c1635c2529a167246d86cc6506e8d6142ffe736284a8d27f93ab2bcb27f61a107bb684a9e891137607a3be0ed95823f911bb457c6a70", + "bd84b45984dfd71a565fec6f6a90bbc51492491746e312f6f442c15183735269b3afafc2538ee1d475016df7670fabae9baf593af130c3a20ac5d0f7697bc642", + "e4f7828628b6440e638972ffa247c63b277cdfc1dcee82641c582fd339369776bd926b72966a7fb3e498489a38298130efce37d87929f225931bdec68605f8f3", + "a1002c74578776c2daea440992b013515d6fef54f14d3cc5358753dedea5bb1bf3dd6f88937ca02d2ee05c45593d9a2dc39e347bbbae5394247887ca62380841", + "710f65da4ffb867d12d80f4742e09f83db740ecbbdf7e3308e7bbc363bc009de9134e5c087e844f4b078b92e4716204722242238f6be25dad4414e5869821e11", + "7c390c36a8c5cafd6d9b36d00194dc5a515b0cf484a12b8d29e5951da4a10ad015a092f2f33b6392b04a2bfdb53e6ce05bdabcf8a33a4fdad7db47d15db1fdb2", + "16815f22f7974211b97f789aabf46fea4027f3579a5085471bd286e5040fb1e48bf999d3341c60b2a871a0c64aeb975f9c1c8b7e7550be498d053e89675c3b27", + "277349189e99f43b1e0316cecd81c4c4eb41d7e6c6832f78cdb556330740a0747504017e104550a4168d94a37251534f82c2f8de2b40980fdc6ac9f3a2572395", + "ad2aa587c604e03dc8b63128750773c7bb6b5fa3339dc4c46685e194fc00bf874afacc815e1da3ff293d737e2dd362a20f6a502b2e5b6c30e1d09c2c65036136", + "f409347b780ac724a3764aeca953811639019962b921207681ce8acf25cbcc7e2fdb2c6f597f0942739406a412a7734b962583737d1e2c121b39258906fbba01", + "1ad787f55ba95a2dda24366299a6fa938d2bf59a0e1d3a08f6a6d5f7727716e2a93681d004f9868827feaa998333918219235e59ada192199cbf6d8deac3e2ac", + "3222fea2380fbf1666972b218732f8104cf816df2f1ca430cebfe21019037b443cf3738bef98921448fecd336db3fefdf07277f83690c19b4d8e68d77faae4b2", + "af76537d3aa53ef9c93f8227e84345f251696051ac591e7cb66ff21cff5019fbf13aad7947736f01c922c126a73e395651d0c92e625cf46241951e09165fc973", + "d564270c28062327139f1f48fa8daaad0420046b8136170c68fa60cc3d01ec8e9a72a3f3882a8e6a8a54b2d5b08c8ec2688bf6bd589a6cee9d2aad61f1d8a8e7", + "9262d860468ee8d565544a255b800111c55a95ae681bafc694d66bc244921bb8d1b280e845e5f87ebe9e06da246361a09742563c0978b97d0ec22799e66729f6", + "279e088d5a5ab0a18d2fd540e76f9504c27e2cbd7917cbd2edc8a5e37ea956e3adbcc5cb543edb37b8579aa6a2f68d769e3a7958a9ae66fbe6354d95f0d5c141", + "fa97f977171c29a9501b4fdcaebe22d296f457e92808a985293eb708bff0c6bbc211d3a1ffe321df32c806db3c7f8e58c00cc1ad658bf6c65b2066b928152762", + "ad25850a967c6889ac6e62adf5b8fe6a2ba391817fc7221c3b77a15a5e4f04c12f956179f3186710ab1df6dd808351dc7c55affa3f5068548f2117335dc7c82f", + "8c25c98b780b468eddd84181d9b1f083844475a9da8260817d25318202b9f25176a934fd201835d6b3f6f8d3fb7d45dbbeff6c915403ed13fcfbe0add0018126", + "88f0bda147ee85476bf00350f17cbdbe37fcf91df31c051d8abe070dfcda3cadd9ec60da83e299b504660b3aa1cd70a94da0593e2f18befe0a4a3f5eb7733b3d", + "065a7f9d8366c26b59f1c412ec938d2c74db584c0b45fd6a5b6bdd5b8f690b264c2c9a5c3058a7f0ca65b8e7bbdf1b2d44b6df1deeda60cfc836d03d5c732bcb", + "d99819e135abb478fcaf809c94fe08c6c87d66bf98e611fdbde77658d1e222404da0434978844193e5fbb7a7384f71fcc127a751d8257d26513ae418d9f605c4", + "c018897f3cecf608a620c70a8c402228e78f3439d949ea6c98d52d36c06badc5d96714e81364730a7448e4281a618cab45f5b723751248d90b234c5f9a8551ce", + "c844082a46209636a04f7a305c06ac6db84e1e1e36a6c7ac90ea389360b613ebcb95527a5cc7b9ee9bb3be0a6bdafa9d2dcf3b5dd5ad323d8e6ed659b1004b9b", + "730e05303e749e0e6b62cc97858f23765ae619f2786aa188bcc6d0c83e19fd930c03a8edb4618549d7edf0d92b876c36a32db3ec0432be0e5a133d955a1e1828", + "9e037c85a12045be3062f27058fe7b3e7ea7b076e9164320057b31dd3038dbd4be5bc812ab259e5fff9fda533be068dd35fffda3c9fb06ea159f5b9024bbab1b", + "da071ea95c579760f2033de1eb563d19a87b929d5d1ce96a157ee2c5c234fe80c19035b7d31af968ba27e01960cd31b483be411b3bd537ff05d68b46bbf7ff3a", + "6eb93f432b8c78d84cdfe52e3d6a454be5b79f7a0251584ee04e0b222042728fae6aeaa8883642500233c1e0e9bbad8066b08ba12dd0f46d333e9e699fc3c1d8", + "5124cd7acff28280c5b57a6e624889785f1a2e13dd52db995946e795c2a76f42b039096210910c577133ae1c5b860cfb633f69ab2ef500535487d6bc38eecd1a", + "64e659d993815e3350866c863c5540740abfbab602ddf68a0b29d39d3a57475476a17a354c58a30219cb514721d85795e753db090c6815b1f2d5a2f66983f0f0", + "a9dae30af950a9e144648ff141779b74d5b7b7cb04ceb66fdd54fa2b2a042070a3b310ec96cb35639386ef02bee3164f2dbd7be10932a99d520af921a2df92db", + "22bf460d823a2de8e4f34ae26703a3971adf4252cf15ab7afe55bce4d4b746d2af8a5327d13494ced6f8ee24f5161c742e5f48197825b2ebb87117493d21961a", + "2a7f9fd15654bc71c032a7c7a5514eecc2a082418c6fd7b9ee7566949864455ee74f54316da084730dd789790d011521ee8243cd10322e17c2d9c6d675d84d37", + "22eb00ad4ba0a9fbcee7e4c7e74442b4697791cb549d0254d3644f7b359ed73db6a9ba90a12b7dfa943253ae81a9a40b8d95f2c273387c4b20a7f1362d9c6f4d", + "eb0de6909b3d69eed50317edd08eec2be20bc71b39901ddd5dc77a097cba1360498286a441564447d0fce4b324e48d48367f44a380fbc8c8c0fe545ca1404876", + "2f5a63f91b190a76e2805c78d62ab76937d81671ca71b01e3f92ab737b667bde6b904355495ae1c666f097d99ab0b4f267ad27e99367de54b86c299400a09c89", + "9983ebfd7a08d40460aac2ee8da51c8e216ec8cf379aad99e863614bc76a95a1129b7a33e508640c512e1d81a88a5a169b98260e7b98bca9035927db24541594", + "c88c5b3b3e64ec3f1cb6db0707e67ebf63046c399b479ed6288f036f297a2d0c141b81414676a4397cfae198f48a6051e04c8550d176425a8b28573be9230071", + "65acd075901d97557a4e16e52f4483417e3ab7f675163e8c23fd3a4c3594df8293aa8e5c60e54d5f9e4b122047ba5474e11ca62d178a4847cfcc4235fbd60323", + "e944aa0b87d3b59e574c53a69d038290f3b8d96eae2a8e06d49e654130925e6b56193fbb7cb0ca30cdd0a665524381b4f627ee35dca4fe790fe405c6426828ee", + "a0094b373aa403a25c3d40496129215036b5e0a336fcc9ad48b08a96483de7c5bf1994d7cf0c639e098d79005289ef36b4bf09966e2fdf2da35c71fa402690cf", + "46ccf9ef411dd67d01686d3cdb2043681455cb22609b33f37c8c3dd8b4613b77b887af5c530fc1e11ce4ce6595456fb9f9dbb54dfbebf7f18260aefba5cf932d", + "0d2dd2691689fe46c0bc7d53d54f251d04fcc7491097685446d7586c52863ac696808bce1886c21886c9d9af671895f8393b12019e6cf5bc233b5cc7d6581880", + "fded53017461f045f26ec8c063935aff541b56fdd560c57408950808992beae0ac89f660cca54c360a1e9090abe67646deccd4fc0efb6003446eac0b246a303f", + "4ea2f30a58e0876c6d9d2662fcdb1b9c48b32f364860468cfb768ae280a48fcff9f43456ed9094859435527d8450a0348fd177f1ded7b01194d1571807c8a35d", + "0043e39f7d08a1eb38a80712d6e6ce244fb1834bbf19a3e60a7bf9067de49a18cb6bcefeb3885c099eaadc8e9c8f04dad0c2a0599c61194ded218354f255badd", + "3909717a6f65c8e8cdc78dc446f53a44ea9d08993a83a51edeba291af3a0fa874ebcd758293a70f4b660bc3b7909004c73e8755dd72e12db2d60d102d9b2dd60", + "32253900f9287b250c2dfb72ba6b83e51695d06c438f655ab2c1f67732418436232328dbb60bcb80a619c3b2cd2e435f4a882df302242dd2eadc7e216eade299", + "1dc47b8809b00ee341208c606ae29fc85d0eb4c1b12599291ec33cdedf63199a462feddb5f7313712b41082761fd79cf3f662702f3e9a06e6b65a9aa4538c82d", + "d866fe4a230791c8e7828050077f2dcb6958d191af929fd69a125d2fd6e4666f634aea76de9167261a2dc69f4596822255e1b5dcfb2d98bf8219190e6770ef33", + "2ef07bad5c41ce2ac94719022da4c3cdabb9f028db12bac0cc9418456c0d89a48cddea15cba69a8023d31456cb175768e1f51e4e5a642832e3ed2699a031b244", + "b164ac505fe25759a1f9ff66ce50909f0e8481b21281b3e692f627d7adf68607a1475cbeeba3e85487a22a55a918a0903ba543057bdb8942d49964ad7f220977", + "2e37d97706655ad2385385a69eaa650eec945860c14fd45f1e32d5c76160ca5636c5905036833c4f06078f97b628932e64a0a9c409ebe4cee1c3989c3f7a7a00", + "80a0ef7eda4fe8dafe26ed9871f3a283924386c450716e45841400025bad79b6aaf1f5863c583c1074dbe7192998a89136cda21161b2619c55334473eb130286", + "4aa70e2e777ba0879c79e7c2cd1492d948c89141827f776099e4672140ac09a4f77b6c4a2989c58c1340ddbb504c6f90ab695bdf77e9fdb45fe7ce4a1b18dcf2", + "6a7c8f361a11dbd29df56c57cdb68d445ff88d076403dd308d1a15767b5b78d26edea2391358534ee519d6cd62b689ee95e2a28d6e4e8383c9061601204fd303", + "46e6910b9f6900485d526c3a3498019ca243db5a8ec269218f4db8a574c5dddb5869bd4188799b0ae5e489f922c6e37947ce7c777b1f9292fb0b007db9d22c41", + "68ad53d5455822cfc08bf4e43dc8d1b4bcc079c0fe55a933d5f80628390bd0d73ddccb33d697492330b2740815f8b12a281adc62284874021ba5242177e277ea", + "977acdc9f93cac665a301cd995e9f7260b9bda079e0aceab296a25064d828caead957c29f9815137e7951c9fe3a50e2ad308d27a02f19e91a9adb7f395c415d6", + "24e7b10ff1653e4780d12e9bbedbe7afdf0181db1dcbf69117222a34c792973991b27a5b844579a0f1d9acf8ed95d979de11c79989ef70731e707c2f262654a1", + "151ba1ca1c71b85004aced1b9298d213a2933c91f0d207fc63b5ecf1bfccc968ba88953a9ec013b9591434be2283f4776d30ccade812bb31d9dfac9fd45bd373", + "0b2cd74713892965dcaa2a32b9ee1b86b505b1e7bf90382353767c938e15784d754f197fc47348c8db58fb526c3680ede4fdd5bec8bb850b019906d454f4515a", + "708dbd20edbd4cb8d1127e8ed75d8b89f7507c15b3eadbc8a2a0a352d8801dfda778d9c0a96b04c517cc8565ba28b6260b788a5ea0c8cd7091d3cc75036b412e", + "5312a940cc8f82a2e575d486273788cfa9bc5d940e41c373a75b47db2b9847f09bd71c8f65fa15ff168ed1bb4143b09a8c4f678c23384e47754387842b5358af", + "d5e0a3cdae0613e6ab159635938d247b5a11a41ab503001fa730a65259b7577b17edb13e7c75d0e90612c5ced843d7776f12a4e8f5678d00497aca92e64b2062", + "40a84fb7e6e0ebabaffb69fa6607759afb20babd9ef4ae29fab24b98fa0bb9ef36ec7215797bab0ffc2eaa14e5fa2c110143c84ab8d672f0dc64a689c84ebf91", + "8b5b19af484b48e8537bb0e82667f45f0ebfad4e8a4024ba6c080fccb8de573891ecc908b96c9b60c9225eba12e2e181f874ea91db03b106696d467420451d91", + "9f21c6efc2e7f8b37377b79a8c1a952021dcc666be670dcdd6d15a573dce67a810f19c4a65a7dd3d2a3bb3a31563456bc315a3f460eae6762af2d8fe6dc060d4", + "1791e85d4becece7ae1c6430d108e97d23da1e6ebfc573ec1e0cdbf3f81ca4bfaad240257dc5c125c7d31687759a99c9fac7a0feffb478f33f1809cf10a80b16", + "ffad3f92f582e77813a7bb6e99b877e8d50e6ed211392345d4bf8f2ca5349d2aac686860d23635e3eea4c5ba45b38e35fbe34e5d4d6742553c1edefaebd5ab81", + "3a3decb9e8716ccb0478e688a7c988ba7a613cc329ec5ddf937d6574de328431450194d69cdd6c054d3cfc3fc5dca9f323151251c2a23f9fa2066e7ead09652b", + "08dd6ed5c5510b7b242216119fa3998881238ed02197c5e3ae27ed3a3ca4ebc5b0fe54547994e4602aaf8675898d39ca198023099783fe4d0d23331e504732b0", + "c1a165227619e78caa19f283e955f8e143837a4dfb0207ee35f26e7e480bc6de5fe78e16407018555659b81905142d42aa09502697ba66deabc4c4d2a54f2b0b", + "05e5dc3559393f22b5112ca50fe6f1ef8155a9ad450f1ada2f721b56f4b0288d64b41e3275f7ede1b0ec6beb89a458277c8c862b60cc34443f7dfb49a0285b4c", + "181455eb50d22398d978797c0b1cb32bb423616fe5f12ef2e136ddf8bbc830d208799e8cc017dbf105cadfa58b3eb9723f28e21a4f1cc6998c7a6997be851933", + "160bfbda492c6a6dd33ba92ef8f16d4eb7df9e4f67ca5210bbddcb7b541474d914b61b38c1a3d1d00dd8b6954b1cb30f403c800781472f9aaa4f26d618d2615f", + "56f0cd12d41b0dcca5d63b5b74166b3d96d8eaf7cbc9cc832b6d131e7d7b408f2bba0179c022e8531d5264a3fa5d82bc6b4390ff2922f5674dbc51dbaadaafe2", + "7eee5de498ca8f74964a14290dcf6c7c1124bb839d94a99a24100e577ade541d47937574f9343908c802e22226b5a19235112677f4fa6f2e88525169177a3d7c", + "e39234dcf3b22d9cc6286cd7fe8789ed72909f38fa4dbb2a544bc90ef2ded6bddf257eebb700df2d6acb42198d8b45e13b3f3398903a6334ba058337560823f4", + "1e90545225ed271876afb17fdd3a61ce86e3136bd00329a8859da4d0e6560c1e6e9451ddce86e1b791cc1d771371391a73e160966aae0e6333a19a19bd3507f2", + "48252ec638475c7d08728949523ff66198e1f277a4d810e0232cd1ff3f293de7b3824a64e87aab544ea1af4ee098fb13069d14c9e006851793093e6b08bd8185", + "6f5b503f5e42498d2406dedc12e6785039d08c487d2630d84d464a1113eca6bd8eb2ff5716dc1c76631f2d6170ebb07ab0ccbcaae3cd2d066694e62ba4349e01", + "842fdb576b68979e7bcf01c09fdaa677c010b0620c3c28d34585e48b6d008f843a1bf7cdaeee6c195cfffba79c06cdc6d29a3f5a9b176b12dcb9a16c864e38b6", + "c99591d4a302e225e808e8e867f282bdefeb0b646c4a4a67ae21671e5e0295ae3d36b2bf67be61f0788c6f6b04de7d87e7a0f1ddbcae643216da7c236a6db552", + "68b73dbb73a4dac672d0a671aa75f44503775e6c7cfc24ff24aa59069acc76b311ea4107dde14e43476a32694bc8721e6f1cfcb0d48c7c9142ce8c7629fb1871", + "a5e52f7092358ea28b7841864c385aee154fa6fd57e287c8739f21e7abfecacb8a80353bca0ce57d7758d2e57e039c47923ed773c761ba5dd48c80cb64a40b36", + "662e3e3ca086b824a5ad6d5a3140e762883cb59ae30d0cdf318469d3c88b8ecec4bc486df0efaaacbc6dd883280ded821220ac7de63ac7e3e5f99c3e278e38fb", + "ff0adfd6619291a4f9444195da6297ffde314b0d5965d1ebaff3bc546e22cf39f25f2f47110183cfc5bf193849b84d944732542d1a2865f056094658eab57ad8", + "ed4d69acfed5f5660f82573a17552ba7ac5169fd4953283fce1efd56ef4a132959e34725e6d26b1a3f6f8b5cf41cf55006a643f28890130f258cbfded292067e", + "656a7b7348440e8b2e2102302fa07972b2ae8ac7cf7bdacb53a27e6d2afa84f2bc01ff4d3bef02975d602586b5b757a791940839b628cf05fa712a79f1957c5d", + "a8534a181579f4e2c528d6313854f0126ae744128460a05f17d13464f3445b27129815176fa4f9ecc9e569ed30abda86a4f7d0fdf4fffb4b60353dd67fa2bcea", + "dff7595c4e729a6d9745a7a5b232cc32fac0d734e83e692a84f0c2c1a120960dad143c9096c1cfef0c52d17b26dc15e177dea13defe61bbe60f57c33200f368a", + "1a9a95a7f6bcb220c7e2d53f94d37270d8440355c041a5e34db8e2f01a69e82edb04ad698e4ad475b9a9bd0594b7e3c93582575761da313148e6648672145ee4", + "c06d042b67d109bc95b941b129bbc17ca007b158255544b80a01515e7a8c16a2651af9c4fc243a28425757e670ec39eae68d135e693892c057b5d2dd5176b88a", + "de5597a4d2b83c84b010e8c967a99958ac9c4b5b3df2538e34e740f8a09253eecc718dcac488e738e1f788b7f00737279de979232e2875445eb3490a93aec036", + "409253c674428aebee16e5a85c72ca9af79437769dfac6526eff389a502eecb973c0dc19b07de4dade107365b9457c10966bcfbaa39d276c2435f7af85c21d0f", + "85620f3e0c5d4fead6fb1fa1138be3ce14b3c71ab54c3b3caeea06dcfbf640ece675c5943deb7a3e422e840b9e183e5ba0dd68820f44d8d04ec465909e151d76", + "3c3af58466d1e7b6d45ee4491558ff6b93f3e9c4b69e11f6377f7ca2d23ff672e2d4138e41738277392d6d50976c44737ce37c5d1d72fc4d8676ec75e35cb7bd", + "1c8062b81ea089bcf4f9c7db6b1ff7dfa6258ba4a74a4a600c2144649ef6fc84cb6b9d210d263a07596149d6efc8147b281d88efb3a44d0cd51f959e42d58e3b", + "d4ef9ab758062c85dc0288f8965e72db202d46a95f0d921a596859e6e059cfee2472a2eec20bb0138af94db5bcc2db4e4ece20f121c0254e823d4a0c8a328fb0", + "0649b648793d57d0af7f64f33ab80659b3ad3cf235e9ca318e33fc2cdbc15246285b8345974be4505134cde3463f77727698d86d9d51ed3209cb27baba20d443", + "bca5efea79f5b84dae25e056bdc320142a6e5613818dfca03cfb74a1724956de6f7cf301f303c8972aa0c5b4b9e26ece3ddbea7e032d30e4ac71e722170d850c", + "ba3156299d1ed69713a079b0d1eaaedacccb1b3a22e88135b15f172fceae6195b62a05e3421ff093bd15c352df8e45ab554a3e968a4624a9f2f852d398f2bd7f", + "755f0b54ca4e68fe1f2449fa710d411156c281478dd409e457f497ccbadb6581b36eae605af93df89fd06ef47816a82d4da3e7f43f9e99217616bcab31789c4f", + "716f0758627091c58c61bbba6aead3004f1f80f45217c584dfb8644071d289d4f2d393a96b41481a4007e01aeba15fec5dece066170ae2483d17c8bfb5244de1", + "ba0f029d0fd3e89bec451c97eaa51eeb368a9f96a93a7a51d6be93975ac71a70274158e5178e169b789d156fbd095db68459ab3a0ddbd659cba246d6c470d9e1", + "cf7f04f41b86defed622eed843425ae0e0b1eda9c3ceb0bdade2715a1fd5e6c44996e9d3baa083b1c0881b3bf4cccf942390b8548e8b804aee2c8ed2bb8b8759", + "3e5bdc8a121624df2fb77bc0873bc572f1fa3457483c53cd6a1dc153cf534508586a7030b1b1ed453cea4c2f84b85a8b94c11355eae02cf08550dcfa7bde38a9", + "9a3388ef92ba591e66b0182d9064e9267dbec923f3c4d01d57bb770dd84e16a959c7c1599e4d20c3e01845319fca47c78d42629acf09c198fbcf32c4cec7de86", + "7b87482af3571a8a42f91b2e9dc57b3a5a8dc0d3528ad92c9eb8803cd0d1d86f8621775a20d6ff168ae1a76260ff05d0016251b7042dde6dc2454cfd805b9b53", + "f64a740fb876c1e8c99404a293ca54cdf016c84ba5f61b9015456f4763a66b9783be60a4c16dc518bb22fadca8841b5206adf3859ca533b24baec0718bb2a5ae", + "e7b77c1746e0a03ea9f127468ecd884f0f21661e4b2acde0cf2c0798ca150042881f4dd40442e7735b937662cf471a131e86c25fb57da14a6a811b6192b8db4a", + "40666786204844ce3359577ed720e5249e56a021fadcefbf630949cabaf730d1f9a0741f9585af035ed06b21ebd314093d9bbe1ca8da5298c0fabe46e1050338", + "e5bd057c96c9348223a2464db7d778049177c6191e4359e992051047265b7c5723d605f5d5ecd01a0d3538934db2da8a88dde94cd57823d00d72091a423dde23", + "565f299e5643c6541965de447e6b5abdffaccd5bcd151a40f0fd882206d7d8690933975904e54f3c7f040d0af87da562959cb4d25ba390f958eb80dbe884ab46", + "8504fd534797a5ca5da31c37ba41f728b3b37a76242d3add44517ea8d06405d12b2eec1f8daa6dddbb46d6649b1c7a1ad575412f05faddbec83d5b122dccad24", + "79d705406cace2a0fc74526d698e3c7deae5442466c3e6a1ae505d2560277bc7978fbdd09e7d50c262c1b915a39d55c0d83de6de9243b4663cffc2173dd48bfc", + "fe511e4fc147d8bc8a3650900042dcf7981e6fdf13dc51931eabc9c81a6ec41d0de0ad3fc68ad20ff6a1ecd32ec106a5ae3e12560552f9081a8c130c79497d5c", + "c774aebcfe6feab775ad08bb9ffa2f19d1c5e0ef9882d7bddafe633b1193f7f64fbd0de77bc7ee041751ed4bd0d8bdb951156e401ed21f0eda79b31d9d19861f", + "bf2dc1cc03ff73f5e63c06eea00634d326ff9a2b754858eccb5f9b27f29762c83325f3cee5e587a7770b55c8a12d8a8d6883b93df799def00d3f8557ccea59b4", + "d66dea1758eaee530f5625b1dfc8f89456076b8d851fbd91ee197468aba5fcb9e4920a2258a3400e3b0f27537c1d4c892cb87c85d7bcf92015628c168bf6265e", + "80ec8f624ba097c737739875f4dd86e274a246529b051cbe151cbc34a9529e3f49ff596ca3805f3994c6a53996a8ff70218880f86cb0298cada7ea684dbdedd3", + "6a535653fa2e1e90d3de5b1c4d319eb607ffc57fd373fc3a9dbe98b458992f478ab8534ca94f202b2ab344493b210379f39dfe4fe6825dc57fd380d553a0f1bc", + "44ae1a8868accba99c4849e3494905aadb383818d82a3d9b06c17c049fd489e68ace4c4861988f0c3fff4df9915e34668fe8b1f7a46e8e4207162a54c7e4c7f8", + "1ecaa6004020d5f70f1572ea2c14eb22f54538f7c29fa57b2f127539db2cbc34623acc35f49f5a4f4c2f948b104b383da5b7e999d22dd535ba3e42d76a7e1f62", + "44c3022ee9c021cd36ca6a41f2c90282ddee53efb130d39c563b3952a352a01c1e7da713fde70abdf79830b1abd2f2af9be6b8ac1b3691db680c0f5824793a41", + "aa9d335f77683d89c0a06e4d9584198672ebe7c6eb7efcd4433927afb39b448207185297153ecf1423e9e63e132c6bc49e6e8610b4331271912b7dd4715d53d3", + "18ff6302c39711b029e6f838007d56ac569993cc713dc71d932e4e5fd78c845eb9c79b4d9a21a3add3867611bb217179c93938bcfc7d06af3a67319dca2061ed", + "45ebe0bbad30bb4d921aff04084cfe0e4fe2b93af11d83fd5c3e25cdfe6900c25f4fc4bfbf7a82277005cf280e3f4890731da9066e6185227493d314f1d03dd6", + "94c5cbca6a5d947799636cf8c4418535686a909fef68fb7406539eee6a84a6274c723bc6e2e1d3a67ec4fc8f63453acf5931af87d865855f089aef6c918c6dc6", + "7dd38f9b6ecbe0e734239f6158ce287f49f950fb191b0635a3a3c643205d59c2a8ab435893fea5c82b7e73ed0f7739c124f9cbda5d807a6410e03d2eedd7e0ed", + "c4fe52c611f369f99388634dd9aded9f2ef2400521453a44c4f972213d3f6d67811d13aa1effc5c464242662b47251044b24f6b618a502eccfd70f2a830637e2", + "7bbc0adbc558e55b3f733f952a1d3d842fa104ebc3057cdd4f970ff05e508def2116c225f44007197ea1fce49fb59fb55ebf61f5265187de3f3752c7c828e5f5", + "6f08eabbfce4fa5fe21f09ce980986d0ff53ab1f82ede5faa6d4449bf0eceb6b45c4a11329da4395d9d501bea01084a01a26c91de7317dafb92aba3e445c0617", + "52c9d570ccc1bffdb286a0aa89cc7ced7cc564f30179ead16b81212236c791ed2cf5249301285286668599007ce5e2180bd1e1cf956f19390de16324546acfec", + "0222ff6fa48ca9056d3596fa7b3ad0c39c1945ddd9a72a6e9e2058bc31d07e1dc4caa193d3a71b064df636680c1133102d1f38fbdf1c8ccfe39e6ae5be9ddd45", + "ebfedf780cad7c64f36cf0e65c209263daafce82ba4a69de080cf7924d1cc70038a0bdbfc5ff30d9bfc3969fe83aeb20fc6c3b4ec3b080baf8a6e4fb4f36dc93", + "8dd938109b2d25c92f4d31ca6fead90f345a50ab137f7954e834052793c3cc3925a5a118759c01020f6172992ece8b95515dd0cda5585ceccee08c4695cf9b48", + "23af776f4ff1f7e2829076c31e6cead89abe313ab876a14b15aa6f4943eeb7bb1bdbb4a8ecc1ffca27b398f9cd595f13805a4c3040be9c43f52f94eccaae90ef", + "9f7b5a338c1a03e8ed275296d8bfac93824545f3b87dde8eae6fb516e34e96642480b062d1be58fd0365371e1d9ac4815b07bcebed33a7dd4c5d3774d24f83b4", + "fb51de4751a6ce74db00b579367c5ca14e41af631ba3db0f81ce936c680456d591e60b2bc089533e3cdfb5318497d4b1645af8f1b17425d7feb3c1bcf474dc7d", + "a84964aedc48ffa6a8f2f8be2a58d7194042c571c21d8a3da9966dae0ad0f3e0024646647e8528e6e9ebc6535b7ccba3dbe29a077a9914cb5d0a58f220c2643f", + "c6bf55ba3524b554f2db6e0ea59bc5a87eeba0682016cb1f10e74dd9946e0f17f6cc280e187a2e6e0cea616f900ba528a78145f3409382f5ecab3440bf79ae6d", + "e73dc851654f730a1c6f20cd63cbe5a58eeb9b0dd9a81b55e1a7ea0c674b3c769162e706e5d0fef12688e665ad6cd7b9478cb74f4f1793fbf776c42b24bab093", + "fc0ec0cdafada3f2c6ad8fb5481ca7d872475fafa286b4328b6c792b2bc2d8c618fb015d8a1d4b22c0da015dafc0632573784d1f22a20144dc9efa841385114b", + "16e4521fdf0157ae62e3f50c93868e364018b0b0e068de0bddbe2847ce4672531ebdde4bb9bb74f41470e10d930aa14dc15cf10ee39360f99e06dc3f7e7a5bf8", + "39f76a3b0e98af019cdaa4fa5fce94195c063c9e16ce6370e1936fc792ebd9e28b0e0445bff1a826cc4444589cd161d0395478a6d23d8385b271eb3a152c745f", + "2df488ccb009f0061f22048088ae033ae3a97d17c766957db64e05638c437c8b2d0c6eef99b076d7fa203ea788d0871259f7462fa2c989ef06a00948d4de09ff", + "b5a49d8fc447135282136155c74e621595e380e3ce0d1bbbffdc246db36be9efdae5b18a9fd964623b0c7a0574ff768b3bc398b1957331252a1a8b2ed64da7ff", + "46e18dd6793d1413dd4e8d3fdd2f84572a9b9d93be61971d10c5d04e498f3b198f38169c20dadf5c217786d511c109fc51037ae154dac394cfd4ae619d529e69", + "d9452d26b85efafc66b4ee6893d9bdbd996c88ef7d093832cbc22bb777852ca390117cecc987685b0698ae3953a12d2376b61d9e5672ad78304885481d9a8cd6", + "cfaa16147199f85948fd6c4cb1e992f8fe138768fc163f95cfe6951f50f9b8724460bba406ba2cde4a62b98c6b5ce7b24bd10d147082e0ff4cfb7cad717ddb0d", + "d292e96385cb31c06e8e7b2e1c014644dbdab25b116711b663cfd786f94b4e2d262a73338d978a6d1f29c1caa30a5bd6b14cf760cebadaf74fec6af2fd7f96bd", + "a6de6ca55d4bb50ccf2c41cc76a1f5f16b5b0f4c06fe12cd0d8cc06c060e7863bc50dcb9bf381f6609cae526f2d4ef1798fa6d5a13959705068b0db0cdf66e56", + "1e22c478c068b0cfd5ab59a86a3c08291ee17a8116ab86b4a52c7519c84f0b1d701ab4e0c4000ba5f245bffbab705fb7776f53cd21e476798edf005708ec82cb", + "80e0179192ed48d651dccb6eaa09e12b4bd2d8f163d662472185032d3d4fb0d3164f54956d650eb4639d8f3c65c6c7425bb454fe738abbf03bdad4dcb1e8e315", + "ca887b0ce77d774a21a9239b81218086328dffd1d65caeeb6a4774dcf9b936c19545b7e37915f9bb4583f05f7e20ae832041463088b04fd6c7ba526a6261ebff", + "c4db541df34e7fab92694eec1d68280fe4c3dd5681afb59614e3b11afa8091b890ee98658257f0a256c11810c562b4bd07b57b1d007247c26fca0422d667e6fb", + "ab15b50b37e861b8ab5098080da6388c04bcc9d774378f7a00b672f8d51d82ce34ef7f6d963b9ec640295723bb965bc59289271953bc7377a2a6b0e8de371779", + "aa1714fe3c5ed277ae212284b9d0aba46cac79f5d123ce639c16b4cdd9e5ef1219683505f4153a323a8c2a30f513cf55815ed815efc430ea4d5955fa760b2fb6", + "37299e62cba5b3ff5384f39ce32b52001958cc710a00a536ee14baf8865fa66d222b79365e5b85ae02ff9bc3ed17e7fe7e3e18ceb49698595debc46fd1dc833a", + "4247c012215e85acafb94c5c1840382ba096ddc1d62212f570d61a21c1677ba8d776e5679a6b8f2bbf0de6c3f980e1aa78bdd7900a018e537c4b76dd767be3e4", + "8a9f46c05566c83aa8bdc8fc7aff4822fb75fec2c1f948182709b51683149d00b8773beed53a19e4e4a53df308e5c1920ed7e39e0b9a1ffeec4ef39f724afe5b", + "91d7beee49a87986ef217d509d4cd4948cffe7a20c9117f8517d2c8c9de094f794032f189079e9735463f02ba0c61d3b9f2e27455a89ecee440562e17f554e92", + "ef90babeeb7be41f556b89b52f879166121240b30456a23f296b6bb7b6ec949b2a821abe79d9da6375077db41d115144f4bc6c6fd2383b8a766a65de5c36dde2", + "ac8709d7758d8954ee95d6621789d716119bc6f214f87388622f27aaa4c655d769abf97c72a1e2405ed9834fad5e3b49b4be8106ec894293c48d21c0a607897a", + "545ea9fcdd344ca84d2457a62f4d3eb4f59722fad0547a680d4e9014d4f568633f2c691a63e41d6fbecbbd77605cd0c57f4203ca6485bf75049f8dfcfaff6ac4", + "b75e25e6d92be1424ba4003f0be981d9596eeeba6e86a0cdde978220f4e3906cd8a5ea150cc18ac1b175b9d9501f1ec1dda89fb92344f28eea18454fd826c118", + "d77ce73f451c9fecf9ee096f457ca8a062667c2d03c7783f101933dad8bdf0dbc46193216df8bfcb25508d41b66adacd185dd3a4e9647c31b45afdb99f0680a3", + "be19b72f71139c10c3e549af4975d0dcca95df14d81859fa9f5a6b4b1d38cb393fda64dd11d351bd2c3ccb4c5053df9c750308358e7754a8bb7a3b499cdde48f", + "155f3b26abbee6fa1a44ad01ebad262f4c3485766f9f93dacb2ec0b3a6d77c14a4ea19927674e331acffe2c97ac2ce47302865c1cb5601a09b5e69868763d76e", + "9f5293a1c3691717b995e398829b0783dc3169b3add4d1cf062e0d74dfbf6697f9e814384f5c077a448df99a8302efb095161da3086008b8f179682b44873040", + "748f0b6d8aeae399b29f9dd922b4d939c5403df8bf21629cfce448f929e910c67ac2c9bba5cca34f066f279fd012b2e72e8218cc6422aadb2ebad3333e414c00", + "e46045fd8a28d09481e4b5910178687d96ac1fd3a80b6be92ee464c8b5629170570e0a0626610e0d871bb32ac589fa7ea43ad07a84b61a292231a69cda43ce3e", + "8a6ff1efde11e0cc0dcd5a06d11adf1b6c0d1140dc7e5fdde7196e60a0e30f60d3ba84d5f80274a018634162356139145fb02f27aba1b4c7b0ebd3ded63ffc46", + "e37ee7cd2b033cfa6844547d37d0a6c33c6eba595648c0354e942f68396dbd1919d044a6c317761ec2d4185a804cd6f9b460cfba4895947e6bc96b227a314d19", + "dec59ce102fb58ca5de6abeb16fc5370352e65a06a5cab414ec83cea5da7594e3fda7ff451b10eb5fb7c0154f47ab09b399ec4c22674d387b53cc8fb6e4be12e", + "66880f8426f5dfc6129b505e5a8627d6221a779a68a72eb697665a302544f6684a26c842af9430288e033dcd6dbbba44abd9c6e90159ad6f00014a6843a7f943", + "35556c377ef87ca540037d0483eeb60f698ebf9fec4824055ac59f1f949067852ca41dbbe2da169107fba05ec97cb7b52afac2ec1bb6e928173ac4d7a05f97f1", + "55faac4f58c0a8dcb0a06344ba673b584be931961d7d42c424c0338ae69fa019a9de91a2959cf26ca55462a108c0650120eb881c37f4c58622cba3442b1c74ed", + "0bfa0b883bd1b7fca5413fcbc60dcaba2a8ff7395593afb6a3bae8d6a8f41e8b2b00dc4b0e54c59dde28f384f72d2d3985b6034048a3b1643a3abe67d45ba2fa", + "4a4a68eacd20764ef2d9b4fca3887eb227e62a264097d12fb3de4cd1a37b7d75dec0c8b0a40197c71c3f27e5434ef59be896b4be2aacfe3facb6cf892b608f45", + "783983769dbbbbc94ba856b35b647efafa29137c9c9a5c405f5ad2085297489ca53ac64dbb161a8cb614e9f4cf4e05721069f78f4b68517468536a009b9e527a", + "3335d73d36749c942c34148aa745e354c0233d57db92fc9f1d0c9462bb3d19a0903341182607dd5966a5effb51512c51f851699d692a623aca4912ad960fcefe", + "7ce0f6b623d56dfe6275d18a07348b2cd92baf8c1b464cfc480c2b12280f0242d6303409add2a9082efe34ddc6297946944941d9ff0097662cb1dd6fc126312d", + "30d4c4a760307870700d8b1a9266a52a9b1ac3c9df4594de50abcc471868490bbf320b92cb1195a6adf0aca7fc702365d6aff1db24d9a6d516b90ace9503ac1d", + "ff13d64a919f4a3cbc3247453e0ca88e32256a8f6b8a91b3915ba4d3866450ca5c3fa63de9f632b146847467d9b5477c5b37bee924cf2cb18d3a5e70fef3bcd4", + "c5aad2fbb8b2da175da315960ca5f74cd94984bb8f667c38985ca0cade27ac688cb28edfa3d39edc766ea30f8957c83bf8225021d5d30c68b895ec564a99b49d", + "08134331ae5c909391d30632bd864120caf5da96972a0de1b67d90070f1594c84d4caa78d2f6eb86dfacb2a2260092c9bfc8d3d9aff3e73e7e31416a9394fcea", + "df5ce5623bdd1f0fbcd84aa754dc30041449e0e8d99780b00fac6fc8e02ed3ea37dc14a458427d5b6a1c126bfad782b73b6c98a80d688e4c566c86694498b131" + ] +} \ No newline at end of file diff --git a/pkgs/pow/corpus/bmw.json b/pkgs/pow/corpus/bmw.json deleted file mode 100644 index e0f92fb1..00000000 --- a/pkgs/pow/corpus/bmw.json +++ /dev/null @@ -1,258 +0,0 @@ -{ - "0": "6a725655c42bc8a2a20549dd5a233a6a2beb01616975851fd122504e604b46af7d96697d0b6333db1d1709d6df328d2a6c786551b0cce2255e8c7332b4819c0e", - "8": "0309cd7a44e6022671e84c43cdb92f613931d1c6b71467c039034b1263c2bf92203e27604bc53fcea9c2df3b10862c9b6fb6e8c617754ef49a2b80f51c74acd3", - "16": "1fd4ac6551d39ef27b5f1f886d7a3a72ec60e0ae2966649c3701952f29b2dbf858ab6e18101d038bbf019299c7fe5f62a4bc3973e089ef929aaf25b9a8bb7d39", - "24": "8987d458cf27d4c1b1ddd115fe5c15a67af431561812b1d2028c3af0a52fb8f7334205cbe003ceab1446261550870eea6921c2315d750f9c49ad7877590a9bde", - "32": "5a443348f0b3330cba5060b16ef21d5597ecdd597603b3e86999099c5595be38f726d10090472daf5ea77315b6ba62b2507a7c08a1b6786dcb30148dd1517882", - "40": "c1abfef8ac91fdc20900045a226ea8d5ff2e3e5d0f00cc9194d19f65460755587f72492e5d5f5a30ae63f95e9dfee6f07051a8e9856e701451be1cc58d320e3d", - "48": "b1ec7bd5a91de2480bee26c93a84e38030e2b2bc469b7d4a8d91d32ccb889805436739dcb5a14b1d4c0811ee2a0d9a667c0fba00f48800f39aebe8d7da7edf1c", - "56": "8652d6c03e8b42f46d96e2357de252c9b4cc483c32abcadfeced70a07c8e1c8b637a6fa1e278c8bdf651d6fdd8a29a48daa8aca71c2277f709a83a80c62c5da5", - "64": "86e05ab43dec6c078b18369ac5485b4fafca9c55c36e736bfb08e169a2667c67c14a7d0409fc735b18618e84483e1b39da47a41e48915096a8debaca7a148a03", - "72": "e072e9d923e334a5c0e129e46d4ee6e5fa2a1494f6cfc4d1498b80470a0b920f2b2d56575a771d8271205d973f23a8da0fcd3de5e569269b50b3bd823dc8d955", - "80": "6d8b04c1dab6beacdf7410b9fdbc96e74d9fb11a949dd164c817bdf4ed2de978b61adabf27be4fb8ddfe6b9aadef8038c217bc56b17c78d19a80922cf84df8f5", - "88": "66022f69f321d34378271556ad6793dee887bb6dcd07344cb0c9f9fd8f6c9080f296b99d7d42a6b4242a84889f41894258419ce871d54f21d78ad5bd7fc81a7c", - "96": "bf48cfbdf5876ff02d095482f4db28693a3d09b9fce1dd25bddb2f80d1100aa81d166e37421a3281b9f25a981dcd6741272e3f4e596b5003fd86f85c9c31bb92", - "104": "99f9c27a26186098430839356fd651a6c203e39adc06efb3a6c35c3265fe37f7cd3b4ee520218d820f3189b44341eaa6cd753a472a8fdfd7386cb5e3a1d9dbb7", - "112": "2630080b86dc7dbf5ac325f645b94e0a5fa967913ae02bce4b762dc03e8dac4b463a881dea606fccd2767f6044040dfacfcb774e19fbdbb8ce89af937077ec0c", - "120": "9828cac020097a5a74e5817ec37034dc0346f07e0cc17ac03e386c7045b6977b9b276eee6c591e970d0d1f2402515bb63e520c6737b4131bfd114e8d58b4f035", - "128": "7be3bd61cecee09ef1160c1cf7dbcf94f5e1bee3a30f2b27b0580c3bac5d25928291372ce81237b867d4ca09868a0cc7984f2cfa4ef14479761e2ea58fb78ba6", - "136": "68a2b3c34d5e023f3bca7508bb0b5e9bda5375e245fa394d2cf508a03b48af97005b3a4dbffc0d38ca4416adf504745f94fe9b0d3f5ce334da9805f1f3ecc978", - "144": "345692802192594f5516d2b22215decb648e6611b9a24d159fd2978bf712846f1fcb61f1e5a5ac25832d7e7bbcc0d0ff2e55ec2c9c90ec1e0078697117adcfad", - "152": "3e3cbb918cf27c6a73d0145cdd3a8f159c56aef938f69884ac6fc8c3207593fc8d3e712adff0ce52feab8b693d8933d87dcf8a3f58be330b4b5df14ee3d635fa", - "160": "d1c6a2f12589d77610ec236db751dcafef5a9dfeea63e307de01fb4b852dc5776cd59cc6dc2369584b9ddb214bddf5d5c89d0d1eac9fb8f7c0f041452cbc11f7", - "168": "64659d7b159c8f276db1295039eb6fe2435405dc1a81bf4575b9c27a2c41208a0bd331f34a60dff31ad29f8730c0786abdee4abc767092d448cea3f97c7a6976", - "176": "6cea91d04e9d4a3c994be9bb24fefaf967b4de36d2566f368c04cc2ed9faf736db71170c207f31a7f08b7b8d634e7c38fd591a38948de4abe70cc64f3a2ee108", - "184": "5b5cde06bf8b5ae80a67d96306ac7e96ad15575195b269378ea65c6f23dff53ea4e02639f3ec61d640d3d9b2776def2fbb3b8afa1fca3aa55bb5208788671770", - "192": "0374c843999a2898bd79a0cc8dfb924e7bb9e5ccaecdd151b502c1a234f1d3691f3ce29d0bc6f044a2cca8174f7537078f3ff0ca73e8cf1d2040d25d1af3295d", - "200": "7f1e7a420b60e6b42622e4b5e2900d6cf01230c962565a6f7cb8270c8cbcb4e477d171e183b3c856fce7369fd25d5e285e21777e3c738090215d97e25adf1ff6", - "208": "52a8179f441682c0ccf7f781c0cb905442ed82ca60abed14bf032dbc5202cce91a66369424dec0e4c45ac16f156a9ac7982fa4a7ae941b4f24f8da7a4feec4c7", - "216": "50ec175dc458fb3ded1e3af7ca87dd6cd08fd89b0ba403ef666e98787d3e38ca48946db41f38c8fdfb82fd0aa71b08d9069e7136775d22e0583bda3d8228d3dc", - "224": "47be44b33c90fd2ec18b839c5a60175eb76df0a8a587d6ef4a6712868cadbcc54ac88be47987f7a4875c16c31b8a6d691939c007b6724139187e76413716f226", - "232": "e0f91da11320e76952d42c897503ddf79670c841dfd059ad40f41d9c5bae052627887f5ef09a214ab6f2e5425aa1c634c29c533c596b1be95b1d39ea06335694", - "240": "0cf4b313265173b60d2f99b87e81e76c10e855a0f67fd5f2d61216caef046a86bc2b7e907412c5499a162bd1d019729653f2a80969a534776494a00c8193b8ee", - "248": "b3483c99d6b488dc2e34f5024bbee33b55d9a66b7efe39657748650ac4301ba6dc64a3e3e8c15945575da963d29399ba0b1ac3a6cecf549e132a5e2db3b5bbe7", - "256": "da79a14b066580178121d3f60e0d3370f667a297fd9c0435cf8c65d35bb3b4aa894af7946f65ccaa5f7d9fc199cbca9be3fbfa958c0dabc992a50db2236ed51c", - "264": "4a7873d42769da269b9869e0dfd5695ae343dbd69ff8a68d93542b5ebbe794806b2d84adc69deaa58f54008164fb3e2ab02577865fbdea88a8be7d23eaa9441c", - "272": "cf42b5f7abf540b69018484583a7b1cd1a38064c6e4208ce0acee27b7ee74ccec544fb2fa1921e95b5cacc12546d35c628eca4c7053f37fd236e63346d474d00", - "280": "9f955df8baa1a5ecf0bdfd408002b1eac93b89c8aedfabb9e5239d6d1ad1c1299901e96c822be23207570e1eae9cb82429899158313af79fbb06ea3915436f7a", - "288": "0fd1772a21cf32f0d43c00df44754096704b0dbbc3b323500c3b231c7fc47b8f35e8f10017f4b1061e82e5cc1d823014dcd54ad7f3588614e2149020cd8989b4", - "296": "41d2d44c32a90b30ace1c7f6e4af5c3dc3abdb1ac7365262c56cb1ae6db6b5d42ad2bcfd9228d9dffd5664756e326e9e88d053fd3a3d252211463b7171f5cb5c", - "304": "4af72dfcf27b0cda02f35aad1a90c67378b63523e80dd50a2ab512f2cff2969fa48dd8edde239f6bd5484d98fb26f0757831d7afaab5a21dbadb1c1b5bea2336", - "312": "7161cde092ae657f61bfa5957b5badb16712a173eadea014f622ba0ccf8b4bf9e0e87b92032a5e1ef762fc7b734bd3b2aa526303c7ede369885ce63da6dd6dae", - "320": "52e566f481eba7268b1c9440cccc29edfa7e03b4d5be7689d9e6b9c0e097fc07e378d7f189a144a31a7ca4280b3d566732c3df2213a534b37d19a1aefc332e90", - "328": "cfb6068414e7abfba715292306824859c4a8034964cc77c5db1208faed6274c37196850f81071e904bda8cd1ece8d66acab354ec5802846ca42a217941186ac3", - "336": "7cbe1d832f1530c7527fb3d8bb8f0bf7a2af523a507efe68afdd1dcde2852dd789ae87ba2de8c6ce85aa0d6fd8eb2c4c0dc9e489a1d10105b56d4ffb1260ec0c", - "344": "2b4f480c3799b7ff87dc0dbe2dc4348e2d42522ee803d89165002e88107343737b8605909795397dca7442cd95799b91eaab9993641f0578d4c86c7d01f564ad", - "352": "1556b21828cd8c1f98bfcc63415d4a4f9a916403ee0d65acab7af2280ffa044f5a0b773b7b6210c2d390a17464a791f52398264714fa89f990b03e810155bef4", - "360": "c17c6dd9964329d4f1ab10c57967e985a15edf1dd3def79436198459a4d331367fade1d20967bf3eab50a8fbb892f0e71b0bab981bb1d3ec64ebab88447a66e9", - "368": "81b3181c9610ca1eb3359a05329f597a7efb663b86b413246c0755583b04b0d8b266ad0343ad5813195dbfedd031ae5cece6dba846803cb1c1787b838d66f295", - "376": "48d1ebccbcee10e72a9aee1785a2e97d0612ba7443152514a6f59a232f6d1a17ec4415044a946df2073fb1b979501b24ece23c380ea1246c3f09b024c53d83ec", - "384": "6470a4a9540f4b9debbaecf5a95d05afa9646fac17b57944602f37740bbc3fa31c8f1d199013d15d4227209f89c333a493c4d83c8aeb186a9394619edd1eb8da", - "392": "4446970ccdf75d54f79ccb3881a1aca24d6ca8defbf0c248fd6e477223f2758b9369b8140ee48bd0229b097f514e7a688506a890605c816714279105befdf112", - "400": "4feb1f07404d63a06bcdb2bcc319480ca02beb7981972a092af5c27001042ef63500955e57f5c3c54e0e964bd94abc50bbaac74f635e522d9acf6740f26fc4cc", - "408": "de3f70f58116ef74466997946469929b5283b0289513aaf1f8df770aea21d9e1308a5d1a30cf3912f4351ba6b1adc4c2b35185c6479e5d160d678ee34bfc6ce5", - "416": "89c23f143c74b2a3ea4e1b52765b01cd38725dd432813816cfedcdef7090c01d9964daf8f0eec99a23b20f1502cc8cb41f77cd35d1e1b1ccffd96821525705e2", - "424": "770fda46e0435a36a9f4b9e81bb9945cd82f05eccd6b46dad48ff92825e2b4f5d21608ae6b945afac4650f2408168d3538488fc20a8447fd01ec2dfdf55f8f36", - "432": "6fd2a68d85527b6a15f4e7499ff2c6028c74de9cd2ad0837dfa4fdf64fec31646bb89a80125f27d244718c635b5997d7cf014b5ed30a7cc5547c6c24c188b223", - "440": "0ae21935400d5defdb036321f900999bc9afd61703510168190cc8d36d2be4f49de95c902c286dbaa91f516d231ec4d2ac55425d05fcdedd211e67a3efe51e12", - "448": "24dcd83a82a389c7dcbde997f9f1d0a52a64566699e5d8b8cdbff0f88a427aae7c6bbb419f013b8cfc780d47101616baf0b2c41cfddd24baf46610364fc82a03", - "456": "dd99be3d8fb3c4a307e6adfb18b638904cc12a033d61d1095ddfdc0f6fc62ae527cc5af45084d2be4a416e1bded2e855650a9cec6fe618b0856563fa1fddff38", - "464": "359d189247a6b503f66fba5cce4bebc7f6551239301bfcc608cfccf8e98963055a6e6dd96f6813605b486403bb943a747ede6c9f8ac586ed6e73dd4d4dc0296e", - "472": "347e5762fa00809092ed5e660e399cf51ea861687af8ad6d4ea50be4317644425000d1b33d9f3b05d7a961e2b385c4af3ed5b5e767e4580c931747e5d3005cc8", - "480": "710b3e6d37198d55fe6df676cf727f982e2b24e38456627d711e18c789ab9d996276c12f9605a567d1b7fa524296db2e53d4dac2f6089874ca099ebbb10e2071", - "488": "9e8d69eedaeee8f426d478b39693767d1b28cac4cb47cd1416c73f82e29ebe062fbc41ad10a398f4ef4c124a70d96384ec5dbd2be869dd84c9ba6808bae6368f", - "496": "8f109a4b2f65cfc881cb456966630c91ef26e79838cf1e090488b9dc348fad9ff050197b373ba326ac5f42fd81f3d9c944238918e748453233ec309fa0000670", - "504": "a94a8bbaaf30da2d1bc52efce0541b8bd109663ad73830261b6179ca31d08cc5abf512ce3de1118de1230b31afd5a01b5d6a49b370beee77a3988f9cbd32618c", - "512": "548d7a65d8beebe56c466da17f8dd80722a7a2a59352465a150f58c1cdc75e8049f5734ea16f32f5ce5b339cdfd99d930d20a6b8655b6f20de4e7e7438c405e8", - "520": "19152cbecbb159ed38d70436671a47cc9373ebc74ebb31fb22e36dd22e0da92115745ad7b1b0114596f940b6bc90c19edd53a9ad012bf1f5b6b419fc8a1a6597", - "528": "f08612959457304c50026b146faed6fefe60ec27008f986130de8d487c9bb29f7a6a5f51f5083c6eedbd2e9de7a7b7658b8c10ad6f01807b4460fd3b36fc01bc", - "536": "436a9bae3ca9fa4e8627c359d8d2628b0e2c341c75502b3ea80253e5448a6a524201dfaba2a2b42185df0f94b06a8074216f057e300e16669a0271ae69b1a54c", - "544": "bddeb8d9a990c8b92ffd27d8b0eda074d9f1daf0e3fca1f1d708d7b3922d5fb7a92bd49523f74516cf373ecd835e399ef6e8acfeb2c7a61166fa3fa9fee0b5c7", - "552": "76d74b7aa7c1787f7d2689144a9665416aabba5b2646ec52c22f7df5a20c7f6fb2b1fd5c45668edb0ee468a99567766f594d3e18f1d8162321445ef8f25a3d20", - "560": "2d26a2ca37790ea1ed334f854cb6127f9d6ebbc716341a175b7c6625511974ab1b6adbc71014f258677089c2bb397f0669c34f686c008706e1deb560b5d43dee", - "568": "b28cf291db775dec4e87bd30792bc2ccf1b528f62537176c9206cf255f8b795910c65e3c308fa2275b021ffd737f88856107bda44aeb4199ee5675471e789a81", - "576": "dabf7f4d5455f3c9505ca6b49cabd8abd3ee4928ccef88dc60faac08607cd6861c316294d3954aa514672a289182c3fbe49b15051d4645214c5d01a6fc783899", - "584": "d4b8a36de3b40cbca69b5819c5d4e524e8c36fecaeb8092a5b02ffd12c19a17dea1b09f1430f1f62eb046cb0f7697233fb51e3eefea61ca2c320e97b34ba6ed8", - "592": "61cd40e83b900f9730de8bc331ea9f75f81d138992e500082fcfa41610beebbb5ace85fff570462d9960d17a67a2d2bdc8cad0d401dd642957386c553310cd42", - "600": "dbe49b8a74c886ba4b5e3e1fbf23274d8122019f7e66c61db04cf5f61d75340d34811558a575b179f2b45c7c7b60d3fdc1c5d9bb8f6de53591ab9bc905702157", - "608": "826e66301dc5f89fa5559170a9ae0e07b1dce27a5eb90029dc4e7c9a2f005d25ee319dbd74a0f2d3034027ed03566f2d6d768a4f4bf88bf208aed0ad623d339e", - "616": "70ffca06dc5c2ecc63e938915a70755843ae11990c4285ff4448d5deccf9cf004c04774b6419e80d5e96cacf830f16595c995f37f629d4c82d7d5837af28e6fa", - "624": "e5c313f54b334bab5746161edbea426ab1ee8fb01521c0bbe3b10b41f88498c0a53d14d4f0951c0bef8110ed3dbb4fe93cf0c538e7b4fc04d9d87ff98b690736", - "632": "40a3015076e0bd34b7a5eddabe5c948a93c0c62c84470cd24ea4b624caddb37aff2a9c654988231085a216f619697175f5aa2b6211c9e32d0ff4253ea95fd7d5", - "640": "f69bd0f7b6aef0ba7fca622865756298b881a4e747090c77f48b5be74ba70db22bdfaa758ff43698ca821472a121d46b3cdcfc62d139243b757a9456660843b4", - "648": "7dc20435e62dea8c32fa4d6f90d16d711f4e43a14d74fa29f648ec2d0f0fd22e10bf36220a639ac67aa2f5dfa0454565c9af02a90f97f0202a1ebbefb5859a1f", - "656": "9c7cfffbffe1e8783080510b7f9f11e04b3f9c5a6d17f5aca02e07650347c352a3cc60096fbcf21055385b0ba1eb3c6e4282690bfb32413fd55de09e06403be9", - "664": "a0e94aeb83183e924dea9c94de5f76ebded8fb2d344c3cdf46fa8d738ff331ef1061f96fd3d5d1f75eb95525b8388f4ab481d5bf9a48b9de8e5dde2f6c0b526b", - "672": "fac419f422d0a0c09653eb9938d6feda794cfe6162fea02d35ad0c53f70cdfbf5d60c4d33a5fae394ac6938371a088977413172bc2284ea3c78623508726508c", - "680": "3722ee99604e8c8c7069fb1cc07b67f9db082be5ba359ac8fbba285ffcc0020439f96dfad898124a779e758d3e8d28a41f3b59990c027f6e88d1fad75112779d", - "688": "bc30d45d62d909fc5acd1b87b9c70065228d2722a360a1d25f726a8469f725fc163496c39e7d31aa2b3bd9016a2253d7cd05e4d678a35358847090a778d8cf8d", - "696": "e1df1cf42a685bad183fe9e7c3a21df52826174db659ca114e8eae39569e5b20eacf33a97ed436207f95568248ffbf922833a1d7153785fd869bafc494ed82b1", - "704": "b986bea853b9ca92ed1f11d2205cdd09acd3dd7dd4a4f48adb1892f9b0296ab399b4cedd69a6ec8c1e8e4fb30fd3040eb7057cdd3c0104ea910875196f93c53d", - "712": "4dce35639b8f219455e77ab4e0b99a94cb2de19842d9213f11552ee9dd7a57e854eeb7e91f7e13152f757068e40105bb355306b3f16540991b11d215c02e8b80", - "720": "e71b2170f0f3761d1fff4c20a01374886e483724954f5f683120e4cde589011c7eaf775f3e0cd93953513dc0a119412e12611757f3ba846a33545fd257e5591b", - "728": "29036eee2cff84925ce84157ec3b90ede0a434b52ad89c0f91e84d0f2cfd03571f610e18829b9b69984bb57fa055de6288f43c33a9a19cf71b4045195b2908ad", - "736": "06e45a1a77f1ca437bb4554e9ac2791c74d7c3e7202d94c64c6acf258ff7217a46a8fcc49c6c9e56b53ade741fa30060e35e365ffc9cd7bd3aea92d011924d7e", - "744": "3a08ce7f48e71fb89ca12701c6bfb6d6acbc3847351e0c4840cec0feef141b69a7780128837fa082e6803fcac832dd57e5e8aa776b058ed5062aaee0d3b10ea2", - "752": "797015514df48346879712ed2ad3be484db7f19b94dd8a4a77da987287298674f68e331432b15cfa0ceb395e40e2bd424b850293cd3bee39b6f042b58469fe54", - "760": "8930cf8606bf372e0f355e6036146ea14ac2f0605b2c192ccf3e60dee5dd95c7730581274aaf4df61438051ff8a566b0a537e1ed13ff250f11efd7f3257f9f60", - "768": "375ad74c0e39d401d4022174a5fa4363447c85d72eccf1d380845149240dfd3209f81e4af263f429b8fb6116062880152ad9e40f01ec23b61e390eab9ae3f502", - "776": "b0dd4e0619aad0b8c44b30d106a0a57b8c10172520e072865b6cf5b12cfca23af742ae9fe222c5d900c84bce529c87f93be4264331a7edf7a1c0071f2265b1f5", - "784": "4f70df19ffaa4650a834b1bf154b61f077c76467f2eb38b3a60e26d82702294c7e91611c63522d62b1ef007981516018833f9c7030bda0a3661373f4739c8e94", - "792": "24b8c31ca0ea5a1c627bbaee4ba822323ac4198415fb69d99b90b26daf42520e6b489f05f9c48af52bb7e11fc4d72c37cbfaa04433559efc388ce9c83008c9f6", - "800": "e1573f9c0d6d49d8a1d6b29663db387a1ebb5f107c37a4e6330673b1a23df7d1b1475e14ea001319d683cd902caba8e33b90a10fb7f1c5468e9a4fdbc7bfd2e1", - "808": "669caa7ce8599af49b6aa8963ff4c19e43247953e0eaa7453eb954217ab9ca86a82245e4c0916f7e9631f763a12b8ef516e5ab33dac41d8feb1f88b8778bf185", - "816": "b0d673b7f25d73616323175f04cd969285914f163cdd0513cc97350c4bc50574228bf1271026013a82260281554eaf29471f4ce3cc4472aa8030a6cf20982c32", - "824": "61fe4777c89455b9fa259f9f8dea012cbe1dc51538c54e77ce7d95eac48e73f900b77b51b00018a6af84c407877ee9b0dc3ff5788638a52ac8b150e823416640", - "832": "2227bf50bd45c41592eb42edab9fee3e78dd0fcf0497bfa733b99d9b5699d3a27932f4f81f7d4af43a23e94ca7a9a88d82c2781602ef5e1ecf4712ce6f72e8f4", - "840": "67f82dca717d47e9e0854bedc55a1756cd624f58df755cf9702de5cd73b57f6aef7bbf40922a915f383d7d3a910ff95936ec74e35b3b2aa6146f30e11af3725b", - "848": "83665c2bca49c95bbe584df52242068193f7a9daaa67b0ee36fa9a81516e4cd6a3d15a222f95a2ddb7494c5dbb7e83eb30a72ba342dc98060d1f78b9c8f0e893", - "856": "c505a3841c5589d0b2a428d684c9d14520c6359a5aaed6a560663947899e42b588d5d7be55d580931b25ac2e2fc5f3af360d60741c0ba82d5a94be61d2ccc830", - "864": "eb6fd4b2b90f79f0071c8d2744c352dbdc7807d40eaf5979dbf21410cefc2ca2b867010a213c34090e3afd0c8ea65f43d1ac48eab67721af5508d6f193031611", - "872": "ff96deeadd3c3668f9c9fcf23eabb6c08a908d89b997ed4005fdb4addfdbc165d47cbdc2a9a064d95beddedfe1f5ae0d7a05eed7d1b30d3dc1d3ac8850425575", - "880": "e0269128ad1687bb7c35926e98cc9a9c7670c1276c3f10c37853928aa6c0ae7fe414d379fcbae20df0161781690053b9322d8ad14d66c1a4b7b35ffff9cf3f16", - "888": "ca5fa777561c6c13ecbcad526527343009bb1eb77b4bce263fc24e00a5a5fb9296d2ba13598a646bf936397e43a7bf9d303cae83e3654cc25f636f7fab03c2b1", - "896": "fbcae8c494c5fd0adb640ceb4a15bf634293ec37ccf119aff5bec95f55578ed90d26861a045e0f242302158d3eac801185498d6d8033662f2e0e6ba5b6f04ace", - "904": "28500180d6f48671a4acd83c9bb5fe3665cf9a6163d8797a2a2f9ea3974619b312769f67c1bb279a409c05a6b4e371f57fc658096923b5eb086d920ee8c748e8", - "912": "b205c2e223bf2a741f35294e9b7e1c33ef745a31f5ce2a00f6ec43b05044034c4993d5112e4ba7ceb2bda4c2e2c8e09b52ce6c2ac7b5374260bfeed8752b65c1", - "920": "38fa9ffe97ca84452f56c26702f561bbb105d1ae19d78c3528132daa809b006ee2359efe54eb35fe0760699070d2b33b2401a5c12132797df0bdaf96a8ddb04a", - "928": "f5d3fcddf5c8e2e0513700b11775b0b3c73cd16b18ae52bd3ed225306ee9b5e6b5e402334bc5a4fd1af5d47138d44217dabf5cbdffd6978b956eed71c21e05cf", - "936": "1a25d0833b2cc0a1a0d7c892639d0df281d10334860f70878287dd4015a3f7312093aef197d49a1be99f1615ea38d52a5f3665aa87bf20e89dd7a04e3dc09ca7", - "944": "0942326feecaad788eeb7d50863fd9280211c9f63b16ecd51ac874a80b47988d61799a10d3b23dc23ae26c179ed5ebc9e32b7697b0566079852bbfa5fa21ffac", - "952": "e9f908bc91ce95abba48644fc7c1f8e211e3d2eea459021ff7e4496c6f1aa3eca73aef2813b33819139ceb6add5fcfb4ebebce72aa1e30dc328454ca69ffbf31", - "960": "5ceee2800816ddf676bbd3c8b7d95012808e62a1838cd292893b05085dd08b95ea245fb84283bef479fd0e2b8bf9dd1ba722344e83dc391a85aee2c930f985c5", - "968": "ed0c620d495f5190d8667f0f9b50c9fea28fc01ae9b219027973a341ba87118a821451d5eee580c4faee46dad21c43c72523ae86a8579576247eb8e38d0c6ba6", - "976": "138f2df9686f705e5c55020b89f04ab66654b0caccc1a8d374334b6bf6534335c7514206b6f772ddb0550cfaba22d22b913928d3adf78bfd25df9dd517b2e3a3", - "984": "3348f4e8c4768c3ef687a8e2a02e307fd8591b41235f8c14e5983ae7361968d0cb877af488b975001aa1e7acf0e5844c107a102bf028fcee89cfe751266d88a3", - "992": "ca7257ac51700539df617c3b7ee9acc7c4576332996f905d9d3733f1aaf3287e2f852be394e533f64ea19733276b0e448496f88500770675835e133904e4071b", - "1000": "adb3b6e2083cb37ed5f822d1aa2ada18560c663011cb16cfb804a5f24c0525f34d8cb10d19528ba02bb43bd501bf0d0ac67968b0687dcb21c013527a99ae9d84", - "1008": "ea781fdd2ddde4b42e1a6b75ab70cfcf17dc413cd9591254f91f1e974181191656edc92823a3145dbe4ab491e86233daacd748ccd2a86b551d6d47edea943c82", - "1016": "b2dcddf444c51976f2d71d020bef76810c8ccae2b94c34178c600ccdd04b233ba2d27db4e8f07ee01d611e490564b6071858bc8b8f8d23bc6b8da746dad4a132", - "1024": "447c299f7e5c90cee70a7577ec148fef194f40ba7c3c8cbc96ff81d14490a16e397ca01f3c0883e050f805239fbd4189122b45b1101ee1f303281d2ac1580e2c", - "1032": "e21aeb7109ca41f1c41f4b66e80a6a4248aed43341f1effabb61341c3f0b6355efe3daa8d28d60f9bf851e6837625bf2ebfd8a68cdcb50718660d5ccbfd93910", - "1040": "fc015b69f1ae0dc7004343ff941378b8a23aa45a3825310e9a81c2a9ea2d4f961f4c9b8cacbc91f0d2414590c389d24ed482b95252f37b5a6cc6bfaea5c98c32", - "1048": "45ccb97f9524ba87a7e69354030c71a07d875c5e958ea167eff581703b1d5037bd91b8806980e3d4eae0acb010d210cd89f781ded33f5697dac285aeb37629a4", - "1056": "142922e983887bff20d0ee26bcbcba34a1a70717172b8fbde0aeabc5ca258c3985b00f7908a21a75c014d4b2542a1bfcb7469ba9454f66670b6c05bbbd7a92d3", - "1064": "41df07681c94633dc430ad7fff9ab7146f1cc3a66df3a81d990ed3d247d8f9a5880eff20c2652fb6c6631ea41f54d6c331651fdc20783eed65b83af458d0ac72", - "1072": "9bee78530c0a93ce8564aede785d7086ce066cb74c3b8f70d3851cd57db8e647e67df0d543eafeded491613bd3268cc7ce8de34614a79d6413c3fee218b6965a", - "1080": "e2548952816803ed478241cbab10f69db4cbdd98447bfaf4e92af9a3179b6efacec56c757944b519c69d1759811732fe3c52912611271231342d9d62f3472967", - "1088": "0e673628fa620668f73e652df7927ec7d9df9426f157b055e39d23ad7fa9cccdc8013fb8f6a0d2effebe00bb5563b100b5361f33808ae20e23580d414f909ced", - "1096": "1b0e41061ff47e71f22fcd508e8560f8e4c9748dd8e520a9ca478f3e3827330c6f19e299e221367e6b02e1606a1b23f2b3f66762d0f408b3a68c9da9018a45dd", - "1104": "fee0ea0269154add8fcc28bc61d290cce0ca04febd3ef646d5aeed6542461d4cda983932be7abf3e0c2639acf75ae2770d1b511d996e19536542fb4d76505f69", - "1112": "82dff74ac5cdffa0d1d03049f2fc227dcb77e373381c2e74fa316bbf9f6d55aeb7667a95ae4d4d367130620217e245e9ddc641aff823475ae40e4e3ce56fcd40", - "1120": "97d7c677b7d8ea600de069cc23c492c0c293eb8e9b8987978cd43b2cace445a90d1cdfa4e0f347ec9b7e6394def55702a13dc5de3c5e43b8b08f260bf0e654d5", - "1128": "a0a9203714a9dcae2402958e6bcf759b7e900d13d5a8654501adac70b5cedf27d21f5e92219dad31ddc8466d8f559470c638d9f9b45d4f539d36c54651c4852c", - "1136": "e6d9b97f5bdb0bb4f5d2322ceff8a1a747361bb937bcfa69eb8c23d98bea5c5ee25f9587648912d5e7f90e73c031a27e27fb11276ccb63e47c25b18649ae5dd8", - "1144": "0a14506b804455218133711a3ba8307615e4f80a5334b86555b9cec77c93450a92f6a18bed9bd55b1848f78c2a49a76057fcf3509663f2e9010c39d94fc9918c", - "1152": "8d03afcb3940007fcbceeb023c105918e6540d87658e59109cc6568cf804bd3fa2b3968c28c650e55276218482bb8e42944272673d6a137d326477a1bafe8f3d", - "1160": "4862476dddaddcde60a35260ab6c448b9b6dad7ed296fc48b81e288d0e397e694535cc8999f4d7f2f3e09f5ce034db0f71ef5c812f3c6bbd73fbef14b252bc55", - "1168": "4b239c5b1c8b83924ae736e9d30582d16bf00a547023244247b389259bc6264981606439ac9dde0a7d371b73a34cac998823803d7bd62abf8905c9bd550ebab8", - "1176": "2b0d1c2780d8826cce4b71a77c9833ae59c2bd0213789a8892ccd7b4fff1d8a780e81ad4c2c1228d55df5ba3625de4860db05743e4d07934c434bad5a769131b", - "1184": "0880376cd5ffc7ebcc6e80fae0d78dbb3532500bab96cd4b755584d23e68cf59f5297a34ae0a90184773412bc9548a80e4c54391b4cb59ce292d704c614dd1a1", - "1192": "e725b8c82c8d1f3963a77d505b0a929fd58846061bea2ba7040b7d3b2ad95ee3781caca60b372eb5258a44a65bb9ee655a1ef9102f8bbd9e41fcfb2871daec7d", - "1200": "31175c65ff1133f5f53db80deb90f6b2e79727d4c8e77c5e3f5def70525b871b50249c6f2ee1ca6f11a7cd9c578cf13d5fcbd74de1d05af6076a5459e10b4b9d", - "1208": "870b40ee6b774b732e15dee647f75bf3d5dd6fd364c7e1bb184d8ac1f0c991e2486dce6bd6cefa1dffe13c50260d4a0fb6c23e29d7e62cff0f8de785ca53c2a2", - "1216": "8fde68d448144f3b4bd12011df94a463c40be946821f80ec8197e36eb46554f7ad8b6ca9f6fcc8c05b3c0c2c909966aacba2a1aa6e980e57aea1cb35b01dc991", - "1224": "f19e37e56de97b6ef009cb1b0a8feb42891de80a9895c7413367c71ff34815f977a053fd621c30738c347262df2b07ec3e455dc729803fa3d68bfbff42415500", - "1232": "bc3199569054f2dbdc66744f3b6b7dc23d3708bcd96a8c7b7c5d9e58087e2e4a5d5606cef88ad63044c9a4f0d019358846ee83fe98cfe9c5b03b29a2d31b3134", - "1240": "c44780e409877812578cf0d738a6394b1ebf7183941323c2891d9604b93e5748eab2fd4732dce6d9a5d1f27b7fadfd5dfdc87264be97f86f700ae87a5d1b8227", - "1248": "98474c61c2639ba15b58d98429f0e3489504cc6ed3bf638accf6859443af2bcbf85edbef50191edb6923636b21c2e76e985831f187575ba82e9ab4ca40cc482f", - "1256": "f94556b89fa106c94d32f723061d2e88ebc4164b1b02d0485851782f84cc32297d7a3af9a1cc430702b78b5bdc9e50abdd703201aa73f8811aeb4a80a5992c64", - "1264": "60440509e00573d66609563d8f1504a196af06d46f6cdbfeeaff61fe46ad08456ee24bca13dded11818776cac19376ae7415338a3d4f0035ff276188bf11420f", - "1272": "2d552519ec54e5bbbfdbb543eae5482d9b964a952e880a88567e7ddf1dcd0d5aa353f7be15d7634adbdbefa85355839fda2b738da987ba568103eabe2cb53d23", - "1280": "afb37a28a4f216a6cc3d6aed09e82f40b93e445f892040f21d1aabafe99af7f001837cf0ad8dd2e2983282f35adfb9dceb49b2c80c85153772a8e587abe7f18a", - "1288": "721b1bc60845499b1a50b716f97fa9fd584132c1e30a1705779dbbae644cbb5751ad1b1b379cc91ba4c3054bd060b88050baba98be1864b1b96c3691a096ef21", - "1296": "efffb02598398243d8784eb8ada33d314c8d396406bb7fb6a668085b23438ab4580bfb5258e5d616f9030c6a8928f4f753d6800c90ea2812482bed268a806e8e", - "1304": "f1cf53ffc952c446eef49f9d89370757c74cb8f2d99223c47eabd296151161cb86c6a34833e7ac6b75e8119a8274fd2b9066ebb9b787a4a37c9036e6e01ba9ce", - "1312": "f1c9a73b10ba528a61ab86f91a9a05261b447049c7eccf37ab1e0c1219f14f0f0f2c5b419a7595550f2d651a17368c3fb7538a14ff9ffc4c4d9098803d942d3b", - "1320": "5a1a31490bc85facc5101ee18093bec7c2cb717a54afdee47f98660032d912f23792f1d0ab0be8a3c7f0d000dac238de843cc84178cbaa910090ac827197ad85", - "1328": "24b5a99041785bc5c5519190b4aaaf92770e35d07213a6de55eb8811324cc63e3afcf61f973a896cfb30315873c0071e2bf3bb976a53163422a01192915b9c1e", - "1336": "7ff6491e79cd3f743c3d735a0ac1bc5ec3395950c65111d7bc2e5e3719ab0fe920dda443b1fd8a8d557633b95e68354ef8f78a91a769cf0798871f8b11b77478", - "1344": "0154d5832ec5594ff994034be3fd3e61e7eebc8e43c20c6cc9910f15650fbaed2915087ac641dbf60a2083ff14ab084a27b5cc9a4e84c54a6b361d38c72746d5", - "1352": "5b617ab6f6ffa82197ed058d4cfdf54398fa3cd95074a745d389c05d8dce1b9d4b9e88ce4b519017ea3a55eb89d06d2ce321f4801d079d5867eac366bc270968", - "1360": "1d96d1ce0c82a43d4135ed8a022a5f145ab42fdfa024c894939d6fa422ec4f621a1402113e1105a96273dd4f7884879f63ef41830a1ea0b4516937bbb2dbe44d", - "1368": "de1255fcb5a191e19b663df4a9dc5471f39f13be5f8a9cc1c3f6fe2844eb8cf038e7ff1825d26a8f135aaa77120925addb6acc12ea1bf0e60dfa236fbe38458f", - "1376": "b17a24ca14830ed093c39e8323ec0dfd903172458d023d10fe4125d0eb4af0e7578b1ea1d5148348ab8d6cab98b20b18bcc52a6cba85851d2b74b20735be6e48", - "1384": "602b683c28f25e9f20c413d2b357dcdf3e339945c5bd41fca69fffd2e1658f9fb654b94b62bee72087eabef2f2f6aede72c7dc45dd4549cbc75465cc10d4c554", - "1392": "e90126404bfed0dcf726ca50a6d0620305d1a84efb0e768044d2db920fb041e7deaa465777d312e2867e6e9e50559bb5ece3a4ed6f844504c39e12988917fff5", - "1400": "d98758d0cbe6c5fef11a4edd8e9170ffa7f37f40914b4d836025b3fd71fa2b518164266d974a40ae2d7c3c359ca675e94b04d08d3ee56346a51b82366f1ef0f0", - "1408": "7ea57c6b9741ae7c07e11766dc6f69c83a72533126acafca968832fcbc7a28df18968bb582e6933898672e322235c9d8fa310f485169c55e04672ffda2a01099", - "1416": "cefb46600fc757512e917dfa063bec761da6140893d3b7ba01677c6d142ca2960b4b016ccf9c9a175d8e83cc2f1a9d4171d6074e2405b866cdee57683bd4334f", - "1424": "eb861b333f0763cc1f0747ece23ff46b98962b096cbf95335b6ba9992f2916115887e77a812ce6f78b00530194c71b97abf4082f31c09f547b025b4388199e75", - "1432": "51cba976abc7e8d55f67b1a056b311b861fee85d2fd69bed53dd274024d87dbd269c41b85f6a1c19ff3d32c444cc7bd8f11478147bbce99dcbd29e34988ea808", - "1440": "10863687d6d1144dcf9d03c10cb66b33e9813efb9118eefb947fc68997e6ccf6d93dcd4c2e33a2d187f5e6f5569d291f16b985908f4015599a6214c24af791b9", - "1448": "de8591fd57abd6d73cf01c94083f916c897fc0cabc1049bcd75d64c768d3b4c42f05ba4deaab83bb643ba451cc224b0a61110647fa35ac14f63d9c2fea5231c9", - "1456": "4e529b73e0afa555b75a7ef2b43f32d71002045f0abf519c5c1e31f7213ae10bb1474bed81450e9956779216b0dc2d4067b181744d9e66af3f34306cefd5fde8", - "1464": "cad6b2e517a3a890d69c8058b427cf4ce48c775b84ec7e47d12c3d2bfd746d3f6dd1814f6721b5da519a6630e581846f999f727970c67940dfff70015dae9053", - "1472": "24c90c5d7f0c9471fa119437c8ca847e81d556f66fb6316dd0fb53dd57dfb3ba7d14ac4d1c9c55f04fb6fe2ea9e67178890a3501567059015b7d993256ca1c54", - "1480": "4ba61eff8cec62389a932e24775211189098bdcdfdc6615ae79948914d6361c6bbc45b7deafb4a58b78af4abfbeb8991edcf30a2a586be8c6cecf9875c734d7a", - "1488": "1f6cd40f56856615aafd4103618908530c8eef746389adce64e2cadffbacb9dab4e5f973cbb86e607af00f32948e4cf8bafd2782653710b38fbf890922773ae5", - "1496": "2e6d38768361d7ba583a5314947e43fa294e29f87bd7cc2d6f49890912885f907d8fa6bef24b4824a4ff777c5fcf04d655fb0f9c2a6c7adabec9b92a6698d33e", - "1504": "eb395350c2557f16601d19dc75031348103f059a0fb890cc2a002932e0619ce8e52f0f39688df0db724cb095b69a5643154c9336fbba50f35c6a4c05477737ec", - "1512": "01449772284e566c1e31a6924a2d9157bdcdd694b5ed1039370bbb11f58851fe5677b25276ec84fdd8472426735c532bca3d59acb6fdce13c0dea9376dda8aae", - "1520": "5e4de3451e6bf67cec13f960d86fa9035b1aa4a824f0aff446271d39784a0e735fdd00ae53d6347ddfec4ec6a552ad78af145bba1cd4c34c300e3aaeef88838e", - "1528": "814e7b36373b0276718212aba4e0d9760e433b680fc59869533e4f1d34010047977c91fa33c0c6dfc2f6a4dadce34bc897a3f7e2ca9935b99d8e5425ab46060d", - "1536": "9b28504942e11b4fe971337fbb905dd772ef9d4982ac4d5ec7c3efcebbd1f32d6bc7edce173a75de81c5651a3d1dd22a5d63a2763986356331f18bd02d77b036", - "1544": "563aab317672c0dafc3578fd23dd1416a577d76099b850801c82b03a7fd9037ddc84e7960817b893c2aa5444c46cc5aced01821e0a299a8bfc13860b6de3a0c2", - "1552": "7365a562e0a02312b2b26d583ca242c479a96f50827b4e87b4e7d4f4b4174c39a76e843fb1d3d2f3731b06161a02ba5e64860d916e607bb5954765b34f57072c", - "1560": "8b9f0cd8d4d56dcb17bb67db05580a6b67296d4ca8297ca8a705ed9c9948ea9b1de211d205df7836da88c2cea2adda29124e9dd9d5a95aa7e300bfc52e8931db", - "1568": "34c0ffbfe39b0abd5b261d66499a8508f360b0d61296db24e2496c2edebe80c2642c12976fa54ef41a766f6722393d7b154aa0bc5c4e20a2ce0527f9a16c3aac", - "1576": "2eb1c4bd6d8e41981756a7f83a41d5df0fc770707afe22dadee6bf92df54096fc4aeb6e0114ac3cbb33bd8d6a47260baf4127cde97371979b21e8e32ea205265", - "1584": "18485311be9c848c38bfa25ec4c557196f1e39a4ac812b77ad2975182a9c2768706905562b0722a2a1b92a56eb47e2500ec1621f59b6b0059ee6ff8c2db29326", - "1592": "753b20f511fd288f732ade82c0f97d7a05dc4e6b931f7d1d0f266911a3c7ddba5db2bb233a12d9508dc071e760844f376ac74cdacc5c8321db2e6dda9ef2f9d1", - "1600": "e4ece8fa8a82c0c44328a5b11c0c0eab3b165a919555b8ecd121a828b0892e1686ef62eaad10c87b41bccd85e60f37aeae96503fbce970d895e1e1e551ce1a85", - "1608": "0c2a1d85cb308cea8d84108224fc6da66a2654496a14cab4457b672ef9bd2d25f0d14098334846f0187d01d74cf8b18c22b3cf9e00ed31f1be30e960e3c26af1", - "1616": "46c390535747c9c16a4797c28ddee9c2cecc3b8f1a89ee67c91a0d06220e66339e7b4a7d6c6b2b27d0a011d51bf7ea0dd61e6124d329269bcd4b92273c2a311d", - "1624": "6c7060dbe2f17bae9f4503fa61fcb2b3c6f9f8e1710fd2092cab5865e05c6e3a9a5d2e5a94e4c9dafb9f3e47e52a6644990d8f397c93dad4546a7c1c35be8ca7", - "1632": "a614f68be815612e5e571b06dc69c3c86a8a4eff9bba9a981413f60c7b612b906a7805be3e292f1154cb0e1b003b86f40b23b99c579da381d06c734e60a49806", - "1640": "402cc283cf76060f64f0de59d14910d710221f63537d5e30a1388496cc2260de1e3bcace354fc1ab344458dd9bedf3fc36336d67b10ef21fc6d6f48acd265c8d", - "1648": "aef42fdb10807fdaea631638a64c06a9125cdb7f94bb91ab345e1ea30e606fc5fbc6322075a50fe2d13d19fd34ab072c41b96ced205cc5143a1a5c98dea311d0", - "1656": "391c3a33ec4b5d75c910df0f00f6ad5d4e8844cdb364b2d7b0155bdd4f9c0e1b6c7825938f642840d06cd0e6f67f87dccc34f6fd83587fd9266d603ca625548f", - "1664": "e51079072c571d0e44c975f232f052f78b497a1c85995e194691a85ab026e4f80a4993d3a2b4d69f607558ceff54d766915e5a4e0c7a42c8d307fa03c6dc4c74", - "1672": "019be27ac6e4b1fb3f1602025a8de3efa7ad6e1d0c6975e8d2d519a997328154fe0738a00366205fdf8467b36d8970a92ef450c20f5bec013ba4cf8091f571cb", - "1680": "b996713f0a3ab5f0198c127b5c3079dace7d4d98a9433d9b790833b62395a3797b7924eb8b9f586903079a8413597e37448f3222b751debe8a5b83385864f7b8", - "1688": "fb71a3351ea2fd4c44e271ea793596b245c6f0634e79ed1ec72c6a4cc9dbc892a9498a7aca0915ab20b0daed223fad794a6f3822c847cf52b3f217d0bc605b76", - "1696": "dbd3650b1739e8da775381b5521c5cfdd689fe81309b3a69a4b3bcdc62dd6c4568b84670e5e3b1b4e0e834600c36167e3447c5c1009e680c7932db2bd91057a9", - "1704": "55b84f2ac0b917467f20e9ec5f6ce98b3987c59a1acaefe3ad73d1c26d724ca0c4d8052ce82e3c704c7834499bec67620d4b073bf3da41aad2de69afa4943e3b", - "1712": "ad4231d8a6c04c1517d1091d399110019055d5c5ee1d3d75456da17c5572c10bb8b808493c3a69ebd668affd15a9e92a692a3c7a394f929b1e7798e692979665", - "1720": "70cdaed98eca25b7099c73201427de23f51d7115160a105ded7a2fb6b20f2deb31b6a2734cffc2aa6189daea538291b34d0aac7ca9c57ca7063a31ef202f38ec", - "1728": "45186098139174a1d4d657a79b71e6e4fb3ae790a52ff0a1690d787fcb6fba7025cf74e3cdbfaa5b2b6d1880699315fac59fb18714c65d5ea66e6b1d47ae17c4", - "1736": "7e804307383aff5bcc80306043721a173e61461e401c1331ed95b8adb1cff5cd0943cb3ba8c9a7a02987dd9b6ea2912368284cf14a55566bf264cc244a353227", - "1744": "8b907f2b968634263c0cc229e917fdf0ad93d637299c10d8f76effee6c6a6b8385803fabedeb1694eacbc11d94fd00cd310c287c2c537bde39b88a4a15735df3", - "1752": "4739db195476a74b06835ba91dd8dfdade704a06557307e33019738083f367143c96ecf28523c1be8ca272adf7e0eebb64eef31fe4c5ef03ce7d46ed6fc86a71", - "1760": "68b8aa5731f7d00d547d7e3690761046b54e91257984a46e2cf9ba2835adb621ce3ddcf81a02a95308300f1e992e3bedf832fc0433f0a64d5ce277e679933e47", - "1768": "2cd87427875cc3480cd19f567b049b1181d7f46b85f3cde505005452a0401a517e0e3d2a2157d789a6d63c8484386efa9f9717498d35b20ca2a0fd2fdddf7e15", - "1776": "5e0a947e07586e1a7eb441b4f44211f3731595e273fbe30fd5478e762c08411db9ddaa9f9b9d860f5768df78fbeaf9efeb9ecaee9a9874fd38e9ebde9ddf11e7", - "1784": "b8098cb26fcc5acd64c492919ea1c7ecdc9b3de4854d69e7947e05bd0bf6e84c240fa83acee02c829a959614107ce03db8aca40d38f9cc57b7f94c3c220deeeb", - "1792": "0f4c4ecfd9a8431d5ab9a245a77cd70974fb75f1824fe68583e9f25e73ba572588ad0c328d73bebedf1fc99d898b7d1c9eb9ab048896cd0446a3e932a97710ab", - "1800": "c90025be7f02fa18134b63681b5a635a51c06ee37878c4833e0a853fa474aefd06beeba4597ed8e59255ee4dec81b34d6ef3df617a885f50b79f6ef9e47b4003", - "1808": "5c21e22d8b2887134f03d05945d91282b6321f122e53640c046ff9b1692f1210ca46cd8471e95f3c74f7feb1da0dc8a421eeffb3699351825f16ba621015eeef", - "1816": "f1a7011447e8515e1502a3ae56f8be61eb4200bc4d21c8e1875b73ab2a42de4613d6404b17a740b60b57f742c92f45c07880498c44c989c15cf1cd37b3f26e77", - "1824": "02be97be60f581d73527490734cd5f8739dcb9a5089cc49c7619277ceb30d9a69b85c53efc55c780a6494dd172b8beb2b69f86dd4b7cbfa3e47f1720ed394383", - "1832": "38652a2d6674a539559f3ed0996542c23d48d8d108c2af9c10da45c9dbc11906cb4aee8eb04c88789b763c66b743356336c8950303b950d72a8fca05b9c67cd9", - "1840": "bc091874baf2195324c56ee8386e13ac3f49fdb329c2d5835848af2a3653bcea26ec8c370912cbcfb1c20d3eb9ab53c6160cdd5351836527c5719084a575ef64", - "1848": "d8025f57c003ddcc6abddce2ccffdb9c11be984311a749a632d7ee4eb073c58f0074096c17ce0a46b37700581d9ff074143f34322d5460c4bd1e9ee6ad497f40", - "1856": "99812eb8737bf609b3bf4b8ade116403183dd7332dab4f43bb4917da0b62abc5a4772d572bdda22fd555af55309d31fb93492ed3ef4455fde4fffe7bf8df84ae", - "1864": "6b242888a6e956f10a8be75e09287d59cc25155b0aa8d8ba02e095d0afaa29104cb2051aa4b3430b724d500ad0317208c3ba9fb1265bf19a974e90f4bf0ce006", - "1872": "ff77ef8de1483f8a498e3554083bb69f7567fced495e6bf0c9902cdcb5247fac6a4b50d1cf9cee89c400ed3e4e6febb642f1ac3bbd018ecc04cb1a43a1331ecc", - "1880": "83e0bedd263922f016cf539f9e7b43acafddf35c8ce730434ee3e92acd264006031073a705f5585bfb66e53ea6a733901ae40634b6f4d86fb554ce0ebc5cd807", - "1888": "e063490ac5c915baf98c37660eb17a85798d728fb57cb0acfaede8afe847c9025d8bf55b6eea096a6f0b443b38d0bc77dd0bcb8228ed2681bb03a013d15ceb79", - "1896": "2f2fba371016cd20adc35c032b61100c298fbaf81506e83cc6e9bcc61244838ad83465658a6436bd488c55d27b82ba3ffc5223bb97a03ae33e05ca750fdf56e2", - "1904": "783af05873f418baf09aa3479ffba6cc9949f90d7cb9df1355b46b020712edd40477f7b2980defc4474b2d3c24bf92ecb5da64fbdf167edd9d9d48792d2b4df8", - "1912": "b53d11e8514950f60345f266290dfd57b8550c011f2bbc1c7cd718e74caa98473e98cf794975661c7d46d6df10e14f0af2e0efbd480a350ac60e0881ea7090fd", - "1920": "0e21302b185191492d2625f0fc4a3380ecd75d8ea945e35fd6e57eb7142de24990eee2b6711392f8856874de50e6d2fdf1d23a228877298c668251fd0f06b709", - "1928": "1a77e749c8249d06f08943f5cdfeb5d65c804f1052b036ccd7a6f16120315af7b20c6be56ca65861a2568f7e726420e909faf47e4ed96a3c299aff94edfbf6eb", - "1936": "cdf5cc029a5946bb96a524d865c6bab024a2b598a9a657ef631fa582ed9bebf56c18d955528a3dd5bc0d2466f7ee0ef8af1c814e3858e5da3a2ba951bb2d79a0", - "1944": "2a4b61feaac1bc466dd77ebe6e800f87950b28532f71be5e4d56de28f93c1f7e61c793745a91b8ccdc29914989730b7df933e6c7f1b1a08638953f966f092560", - "1952": "a40028e17cd5da2db800437a58861565e0a55cd3dc017fe48c7d3f2d4706d7ec742a21170cb86b32b5b9a1496c5c5dde4e283915bfcdc883f08039679e29ed43", - "1960": "2a1f1c7fafbe676d2a7bc67bd80c9387f493643e2395852af8a6846a5ddc191cb17fcaa17bb82266fea390b3e45ded4a15408a29df5ae390a1bc945d5d97c1c7", - "1968": "80c5090fdda7fb8b550602fbb156d650958e0ee131e21c09fccb57faa9a9c868c5947e409bc5cfa89c8616619e625c7d1dad8686ff59c2cd1d9940e336472145", - "1976": "a779bc3d4f6315befda9cbbbdba4c9e24d810cb46074d81a6e2d66947a30f62c4d3eb92afc6d9bfbf42df3d8528982fcf7aeca66740d0e753040a2c6f71ac1db", - "1984": "46d64790833abf3e17bb4b8ccdb4f0a2dcd23fdfa3135744306f4916a658cc5b0bb60dd65dd2287287ca645c0b5904a7227ed1b40730a6f335bec41706769e9d", - "1992": "29ebb2b1bf14463500b983f8c9fe9ead506514e9af11202a9e0930b225ebc5258a09324010c52ff35e902647d9701293a8f8a007abc3d6a7be629c5078a42bed", - "2000": "8db46a5d23103103746c2fe2480ceec56fd9796ad357f5bc45bf0bc2d2e8b95ea0c286090ab858183c2a051b80fca8776670fa3da8722329848f057c6ead4991", - "2008": "bc933d42ad3267f608ab201d2813e54250499d87eceef837863f59d8ace4ed6a3239c4c7cd7e172f3cf3cded5d84950e066e2f549a767ba421cad4a223313c1d", - "2016": "d84dda22fbe020f57efbc8c612b2f781eaa81e4c9b0f013bfc1b3c926a5ba77828f8c6684a25b2c567dad1b705e7bb417f5eae6d8bd2bfa6acbc7284f3c19e81", - "2024": "c4966858db87dfc7dae95cb51a8b19dd481f75b3ff554b18458c0f25a285f6135d73ff6f1b498b957e8481f16612d8b52e187bde76b3a8d1a6324a3899f056d8", - "2032": "def5b398b53e2b884aaa19d86186ec7b386974386b24f5c993417c1b3377449d0ee19d00ab789e2d63a56b01101e44692815644147d1c2d66a9a68579beb2b50", - "2040": "59d674c09e78b40fadd298ee83fb2cb4468ca96afaa75ce3f4b451c0d353c28a632a0de753800d49fdbd6ea190025c5340036910bdbacc91c2d988b6fb2f8789" -} diff --git a/pkgs/pow/corpus/bmw.json5 b/pkgs/pow/corpus/bmw.json5 new file mode 100644 index 00000000..354debba --- /dev/null +++ b/pkgs/pow/corpus/bmw.json5 @@ -0,0 +1,260 @@ +{ + "nist": [ + "6a725655c42bc8a2a20549dd5a233a6a2beb01616975851fd122504e604b46af7d96697d0b6333db1d1709d6df328d2a6c786551b0cce2255e8c7332b4819c0e", + "0309cd7a44e6022671e84c43cdb92f613931d1c6b71467c039034b1263c2bf92203e27604bc53fcea9c2df3b10862c9b6fb6e8c617754ef49a2b80f51c74acd3", + "1fd4ac6551d39ef27b5f1f886d7a3a72ec60e0ae2966649c3701952f29b2dbf858ab6e18101d038bbf019299c7fe5f62a4bc3973e089ef929aaf25b9a8bb7d39", + "8987d458cf27d4c1b1ddd115fe5c15a67af431561812b1d2028c3af0a52fb8f7334205cbe003ceab1446261550870eea6921c2315d750f9c49ad7877590a9bde", + "5a443348f0b3330cba5060b16ef21d5597ecdd597603b3e86999099c5595be38f726d10090472daf5ea77315b6ba62b2507a7c08a1b6786dcb30148dd1517882", + "c1abfef8ac91fdc20900045a226ea8d5ff2e3e5d0f00cc9194d19f65460755587f72492e5d5f5a30ae63f95e9dfee6f07051a8e9856e701451be1cc58d320e3d", + "b1ec7bd5a91de2480bee26c93a84e38030e2b2bc469b7d4a8d91d32ccb889805436739dcb5a14b1d4c0811ee2a0d9a667c0fba00f48800f39aebe8d7da7edf1c", + "8652d6c03e8b42f46d96e2357de252c9b4cc483c32abcadfeced70a07c8e1c8b637a6fa1e278c8bdf651d6fdd8a29a48daa8aca71c2277f709a83a80c62c5da5", + "86e05ab43dec6c078b18369ac5485b4fafca9c55c36e736bfb08e169a2667c67c14a7d0409fc735b18618e84483e1b39da47a41e48915096a8debaca7a148a03", + "e072e9d923e334a5c0e129e46d4ee6e5fa2a1494f6cfc4d1498b80470a0b920f2b2d56575a771d8271205d973f23a8da0fcd3de5e569269b50b3bd823dc8d955", + "6d8b04c1dab6beacdf7410b9fdbc96e74d9fb11a949dd164c817bdf4ed2de978b61adabf27be4fb8ddfe6b9aadef8038c217bc56b17c78d19a80922cf84df8f5", + "66022f69f321d34378271556ad6793dee887bb6dcd07344cb0c9f9fd8f6c9080f296b99d7d42a6b4242a84889f41894258419ce871d54f21d78ad5bd7fc81a7c", + "bf48cfbdf5876ff02d095482f4db28693a3d09b9fce1dd25bddb2f80d1100aa81d166e37421a3281b9f25a981dcd6741272e3f4e596b5003fd86f85c9c31bb92", + "99f9c27a26186098430839356fd651a6c203e39adc06efb3a6c35c3265fe37f7cd3b4ee520218d820f3189b44341eaa6cd753a472a8fdfd7386cb5e3a1d9dbb7", + "2630080b86dc7dbf5ac325f645b94e0a5fa967913ae02bce4b762dc03e8dac4b463a881dea606fccd2767f6044040dfacfcb774e19fbdbb8ce89af937077ec0c", + "9828cac020097a5a74e5817ec37034dc0346f07e0cc17ac03e386c7045b6977b9b276eee6c591e970d0d1f2402515bb63e520c6737b4131bfd114e8d58b4f035", + "7be3bd61cecee09ef1160c1cf7dbcf94f5e1bee3a30f2b27b0580c3bac5d25928291372ce81237b867d4ca09868a0cc7984f2cfa4ef14479761e2ea58fb78ba6", + "68a2b3c34d5e023f3bca7508bb0b5e9bda5375e245fa394d2cf508a03b48af97005b3a4dbffc0d38ca4416adf504745f94fe9b0d3f5ce334da9805f1f3ecc978", + "345692802192594f5516d2b22215decb648e6611b9a24d159fd2978bf712846f1fcb61f1e5a5ac25832d7e7bbcc0d0ff2e55ec2c9c90ec1e0078697117adcfad", + "3e3cbb918cf27c6a73d0145cdd3a8f159c56aef938f69884ac6fc8c3207593fc8d3e712adff0ce52feab8b693d8933d87dcf8a3f58be330b4b5df14ee3d635fa", + "d1c6a2f12589d77610ec236db751dcafef5a9dfeea63e307de01fb4b852dc5776cd59cc6dc2369584b9ddb214bddf5d5c89d0d1eac9fb8f7c0f041452cbc11f7", + "64659d7b159c8f276db1295039eb6fe2435405dc1a81bf4575b9c27a2c41208a0bd331f34a60dff31ad29f8730c0786abdee4abc767092d448cea3f97c7a6976", + "6cea91d04e9d4a3c994be9bb24fefaf967b4de36d2566f368c04cc2ed9faf736db71170c207f31a7f08b7b8d634e7c38fd591a38948de4abe70cc64f3a2ee108", + "5b5cde06bf8b5ae80a67d96306ac7e96ad15575195b269378ea65c6f23dff53ea4e02639f3ec61d640d3d9b2776def2fbb3b8afa1fca3aa55bb5208788671770", + "0374c843999a2898bd79a0cc8dfb924e7bb9e5ccaecdd151b502c1a234f1d3691f3ce29d0bc6f044a2cca8174f7537078f3ff0ca73e8cf1d2040d25d1af3295d", + "7f1e7a420b60e6b42622e4b5e2900d6cf01230c962565a6f7cb8270c8cbcb4e477d171e183b3c856fce7369fd25d5e285e21777e3c738090215d97e25adf1ff6", + "52a8179f441682c0ccf7f781c0cb905442ed82ca60abed14bf032dbc5202cce91a66369424dec0e4c45ac16f156a9ac7982fa4a7ae941b4f24f8da7a4feec4c7", + "50ec175dc458fb3ded1e3af7ca87dd6cd08fd89b0ba403ef666e98787d3e38ca48946db41f38c8fdfb82fd0aa71b08d9069e7136775d22e0583bda3d8228d3dc", + "47be44b33c90fd2ec18b839c5a60175eb76df0a8a587d6ef4a6712868cadbcc54ac88be47987f7a4875c16c31b8a6d691939c007b6724139187e76413716f226", + "e0f91da11320e76952d42c897503ddf79670c841dfd059ad40f41d9c5bae052627887f5ef09a214ab6f2e5425aa1c634c29c533c596b1be95b1d39ea06335694", + "0cf4b313265173b60d2f99b87e81e76c10e855a0f67fd5f2d61216caef046a86bc2b7e907412c5499a162bd1d019729653f2a80969a534776494a00c8193b8ee", + "b3483c99d6b488dc2e34f5024bbee33b55d9a66b7efe39657748650ac4301ba6dc64a3e3e8c15945575da963d29399ba0b1ac3a6cecf549e132a5e2db3b5bbe7", + "da79a14b066580178121d3f60e0d3370f667a297fd9c0435cf8c65d35bb3b4aa894af7946f65ccaa5f7d9fc199cbca9be3fbfa958c0dabc992a50db2236ed51c", + "4a7873d42769da269b9869e0dfd5695ae343dbd69ff8a68d93542b5ebbe794806b2d84adc69deaa58f54008164fb3e2ab02577865fbdea88a8be7d23eaa9441c", + "cf42b5f7abf540b69018484583a7b1cd1a38064c6e4208ce0acee27b7ee74ccec544fb2fa1921e95b5cacc12546d35c628eca4c7053f37fd236e63346d474d00", + "9f955df8baa1a5ecf0bdfd408002b1eac93b89c8aedfabb9e5239d6d1ad1c1299901e96c822be23207570e1eae9cb82429899158313af79fbb06ea3915436f7a", + "0fd1772a21cf32f0d43c00df44754096704b0dbbc3b323500c3b231c7fc47b8f35e8f10017f4b1061e82e5cc1d823014dcd54ad7f3588614e2149020cd8989b4", + "41d2d44c32a90b30ace1c7f6e4af5c3dc3abdb1ac7365262c56cb1ae6db6b5d42ad2bcfd9228d9dffd5664756e326e9e88d053fd3a3d252211463b7171f5cb5c", + "4af72dfcf27b0cda02f35aad1a90c67378b63523e80dd50a2ab512f2cff2969fa48dd8edde239f6bd5484d98fb26f0757831d7afaab5a21dbadb1c1b5bea2336", + "7161cde092ae657f61bfa5957b5badb16712a173eadea014f622ba0ccf8b4bf9e0e87b92032a5e1ef762fc7b734bd3b2aa526303c7ede369885ce63da6dd6dae", + "52e566f481eba7268b1c9440cccc29edfa7e03b4d5be7689d9e6b9c0e097fc07e378d7f189a144a31a7ca4280b3d566732c3df2213a534b37d19a1aefc332e90", + "cfb6068414e7abfba715292306824859c4a8034964cc77c5db1208faed6274c37196850f81071e904bda8cd1ece8d66acab354ec5802846ca42a217941186ac3", + "7cbe1d832f1530c7527fb3d8bb8f0bf7a2af523a507efe68afdd1dcde2852dd789ae87ba2de8c6ce85aa0d6fd8eb2c4c0dc9e489a1d10105b56d4ffb1260ec0c", + "2b4f480c3799b7ff87dc0dbe2dc4348e2d42522ee803d89165002e88107343737b8605909795397dca7442cd95799b91eaab9993641f0578d4c86c7d01f564ad", + "1556b21828cd8c1f98bfcc63415d4a4f9a916403ee0d65acab7af2280ffa044f5a0b773b7b6210c2d390a17464a791f52398264714fa89f990b03e810155bef4", + "c17c6dd9964329d4f1ab10c57967e985a15edf1dd3def79436198459a4d331367fade1d20967bf3eab50a8fbb892f0e71b0bab981bb1d3ec64ebab88447a66e9", + "81b3181c9610ca1eb3359a05329f597a7efb663b86b413246c0755583b04b0d8b266ad0343ad5813195dbfedd031ae5cece6dba846803cb1c1787b838d66f295", + "48d1ebccbcee10e72a9aee1785a2e97d0612ba7443152514a6f59a232f6d1a17ec4415044a946df2073fb1b979501b24ece23c380ea1246c3f09b024c53d83ec", + "6470a4a9540f4b9debbaecf5a95d05afa9646fac17b57944602f37740bbc3fa31c8f1d199013d15d4227209f89c333a493c4d83c8aeb186a9394619edd1eb8da", + "4446970ccdf75d54f79ccb3881a1aca24d6ca8defbf0c248fd6e477223f2758b9369b8140ee48bd0229b097f514e7a688506a890605c816714279105befdf112", + "4feb1f07404d63a06bcdb2bcc319480ca02beb7981972a092af5c27001042ef63500955e57f5c3c54e0e964bd94abc50bbaac74f635e522d9acf6740f26fc4cc", + "de3f70f58116ef74466997946469929b5283b0289513aaf1f8df770aea21d9e1308a5d1a30cf3912f4351ba6b1adc4c2b35185c6479e5d160d678ee34bfc6ce5", + "89c23f143c74b2a3ea4e1b52765b01cd38725dd432813816cfedcdef7090c01d9964daf8f0eec99a23b20f1502cc8cb41f77cd35d1e1b1ccffd96821525705e2", + "770fda46e0435a36a9f4b9e81bb9945cd82f05eccd6b46dad48ff92825e2b4f5d21608ae6b945afac4650f2408168d3538488fc20a8447fd01ec2dfdf55f8f36", + "6fd2a68d85527b6a15f4e7499ff2c6028c74de9cd2ad0837dfa4fdf64fec31646bb89a80125f27d244718c635b5997d7cf014b5ed30a7cc5547c6c24c188b223", + "0ae21935400d5defdb036321f900999bc9afd61703510168190cc8d36d2be4f49de95c902c286dbaa91f516d231ec4d2ac55425d05fcdedd211e67a3efe51e12", + "24dcd83a82a389c7dcbde997f9f1d0a52a64566699e5d8b8cdbff0f88a427aae7c6bbb419f013b8cfc780d47101616baf0b2c41cfddd24baf46610364fc82a03", + "dd99be3d8fb3c4a307e6adfb18b638904cc12a033d61d1095ddfdc0f6fc62ae527cc5af45084d2be4a416e1bded2e855650a9cec6fe618b0856563fa1fddff38", + "359d189247a6b503f66fba5cce4bebc7f6551239301bfcc608cfccf8e98963055a6e6dd96f6813605b486403bb943a747ede6c9f8ac586ed6e73dd4d4dc0296e", + "347e5762fa00809092ed5e660e399cf51ea861687af8ad6d4ea50be4317644425000d1b33d9f3b05d7a961e2b385c4af3ed5b5e767e4580c931747e5d3005cc8", + "710b3e6d37198d55fe6df676cf727f982e2b24e38456627d711e18c789ab9d996276c12f9605a567d1b7fa524296db2e53d4dac2f6089874ca099ebbb10e2071", + "9e8d69eedaeee8f426d478b39693767d1b28cac4cb47cd1416c73f82e29ebe062fbc41ad10a398f4ef4c124a70d96384ec5dbd2be869dd84c9ba6808bae6368f", + "8f109a4b2f65cfc881cb456966630c91ef26e79838cf1e090488b9dc348fad9ff050197b373ba326ac5f42fd81f3d9c944238918e748453233ec309fa0000670", + "a94a8bbaaf30da2d1bc52efce0541b8bd109663ad73830261b6179ca31d08cc5abf512ce3de1118de1230b31afd5a01b5d6a49b370beee77a3988f9cbd32618c", + "548d7a65d8beebe56c466da17f8dd80722a7a2a59352465a150f58c1cdc75e8049f5734ea16f32f5ce5b339cdfd99d930d20a6b8655b6f20de4e7e7438c405e8", + "19152cbecbb159ed38d70436671a47cc9373ebc74ebb31fb22e36dd22e0da92115745ad7b1b0114596f940b6bc90c19edd53a9ad012bf1f5b6b419fc8a1a6597", + "f08612959457304c50026b146faed6fefe60ec27008f986130de8d487c9bb29f7a6a5f51f5083c6eedbd2e9de7a7b7658b8c10ad6f01807b4460fd3b36fc01bc", + "436a9bae3ca9fa4e8627c359d8d2628b0e2c341c75502b3ea80253e5448a6a524201dfaba2a2b42185df0f94b06a8074216f057e300e16669a0271ae69b1a54c", + "bddeb8d9a990c8b92ffd27d8b0eda074d9f1daf0e3fca1f1d708d7b3922d5fb7a92bd49523f74516cf373ecd835e399ef6e8acfeb2c7a61166fa3fa9fee0b5c7", + "76d74b7aa7c1787f7d2689144a9665416aabba5b2646ec52c22f7df5a20c7f6fb2b1fd5c45668edb0ee468a99567766f594d3e18f1d8162321445ef8f25a3d20", + "2d26a2ca37790ea1ed334f854cb6127f9d6ebbc716341a175b7c6625511974ab1b6adbc71014f258677089c2bb397f0669c34f686c008706e1deb560b5d43dee", + "b28cf291db775dec4e87bd30792bc2ccf1b528f62537176c9206cf255f8b795910c65e3c308fa2275b021ffd737f88856107bda44aeb4199ee5675471e789a81", + "dabf7f4d5455f3c9505ca6b49cabd8abd3ee4928ccef88dc60faac08607cd6861c316294d3954aa514672a289182c3fbe49b15051d4645214c5d01a6fc783899", + "d4b8a36de3b40cbca69b5819c5d4e524e8c36fecaeb8092a5b02ffd12c19a17dea1b09f1430f1f62eb046cb0f7697233fb51e3eefea61ca2c320e97b34ba6ed8", + "61cd40e83b900f9730de8bc331ea9f75f81d138992e500082fcfa41610beebbb5ace85fff570462d9960d17a67a2d2bdc8cad0d401dd642957386c553310cd42", + "dbe49b8a74c886ba4b5e3e1fbf23274d8122019f7e66c61db04cf5f61d75340d34811558a575b179f2b45c7c7b60d3fdc1c5d9bb8f6de53591ab9bc905702157", + "826e66301dc5f89fa5559170a9ae0e07b1dce27a5eb90029dc4e7c9a2f005d25ee319dbd74a0f2d3034027ed03566f2d6d768a4f4bf88bf208aed0ad623d339e", + "70ffca06dc5c2ecc63e938915a70755843ae11990c4285ff4448d5deccf9cf004c04774b6419e80d5e96cacf830f16595c995f37f629d4c82d7d5837af28e6fa", + "e5c313f54b334bab5746161edbea426ab1ee8fb01521c0bbe3b10b41f88498c0a53d14d4f0951c0bef8110ed3dbb4fe93cf0c538e7b4fc04d9d87ff98b690736", + "40a3015076e0bd34b7a5eddabe5c948a93c0c62c84470cd24ea4b624caddb37aff2a9c654988231085a216f619697175f5aa2b6211c9e32d0ff4253ea95fd7d5", + "f69bd0f7b6aef0ba7fca622865756298b881a4e747090c77f48b5be74ba70db22bdfaa758ff43698ca821472a121d46b3cdcfc62d139243b757a9456660843b4", + "7dc20435e62dea8c32fa4d6f90d16d711f4e43a14d74fa29f648ec2d0f0fd22e10bf36220a639ac67aa2f5dfa0454565c9af02a90f97f0202a1ebbefb5859a1f", + "9c7cfffbffe1e8783080510b7f9f11e04b3f9c5a6d17f5aca02e07650347c352a3cc60096fbcf21055385b0ba1eb3c6e4282690bfb32413fd55de09e06403be9", + "a0e94aeb83183e924dea9c94de5f76ebded8fb2d344c3cdf46fa8d738ff331ef1061f96fd3d5d1f75eb95525b8388f4ab481d5bf9a48b9de8e5dde2f6c0b526b", + "fac419f422d0a0c09653eb9938d6feda794cfe6162fea02d35ad0c53f70cdfbf5d60c4d33a5fae394ac6938371a088977413172bc2284ea3c78623508726508c", + "3722ee99604e8c8c7069fb1cc07b67f9db082be5ba359ac8fbba285ffcc0020439f96dfad898124a779e758d3e8d28a41f3b59990c027f6e88d1fad75112779d", + "bc30d45d62d909fc5acd1b87b9c70065228d2722a360a1d25f726a8469f725fc163496c39e7d31aa2b3bd9016a2253d7cd05e4d678a35358847090a778d8cf8d", + "e1df1cf42a685bad183fe9e7c3a21df52826174db659ca114e8eae39569e5b20eacf33a97ed436207f95568248ffbf922833a1d7153785fd869bafc494ed82b1", + "b986bea853b9ca92ed1f11d2205cdd09acd3dd7dd4a4f48adb1892f9b0296ab399b4cedd69a6ec8c1e8e4fb30fd3040eb7057cdd3c0104ea910875196f93c53d", + "4dce35639b8f219455e77ab4e0b99a94cb2de19842d9213f11552ee9dd7a57e854eeb7e91f7e13152f757068e40105bb355306b3f16540991b11d215c02e8b80", + "e71b2170f0f3761d1fff4c20a01374886e483724954f5f683120e4cde589011c7eaf775f3e0cd93953513dc0a119412e12611757f3ba846a33545fd257e5591b", + "29036eee2cff84925ce84157ec3b90ede0a434b52ad89c0f91e84d0f2cfd03571f610e18829b9b69984bb57fa055de6288f43c33a9a19cf71b4045195b2908ad", + "06e45a1a77f1ca437bb4554e9ac2791c74d7c3e7202d94c64c6acf258ff7217a46a8fcc49c6c9e56b53ade741fa30060e35e365ffc9cd7bd3aea92d011924d7e", + "3a08ce7f48e71fb89ca12701c6bfb6d6acbc3847351e0c4840cec0feef141b69a7780128837fa082e6803fcac832dd57e5e8aa776b058ed5062aaee0d3b10ea2", + "797015514df48346879712ed2ad3be484db7f19b94dd8a4a77da987287298674f68e331432b15cfa0ceb395e40e2bd424b850293cd3bee39b6f042b58469fe54", + "8930cf8606bf372e0f355e6036146ea14ac2f0605b2c192ccf3e60dee5dd95c7730581274aaf4df61438051ff8a566b0a537e1ed13ff250f11efd7f3257f9f60", + "375ad74c0e39d401d4022174a5fa4363447c85d72eccf1d380845149240dfd3209f81e4af263f429b8fb6116062880152ad9e40f01ec23b61e390eab9ae3f502", + "b0dd4e0619aad0b8c44b30d106a0a57b8c10172520e072865b6cf5b12cfca23af742ae9fe222c5d900c84bce529c87f93be4264331a7edf7a1c0071f2265b1f5", + "4f70df19ffaa4650a834b1bf154b61f077c76467f2eb38b3a60e26d82702294c7e91611c63522d62b1ef007981516018833f9c7030bda0a3661373f4739c8e94", + "24b8c31ca0ea5a1c627bbaee4ba822323ac4198415fb69d99b90b26daf42520e6b489f05f9c48af52bb7e11fc4d72c37cbfaa04433559efc388ce9c83008c9f6", + "e1573f9c0d6d49d8a1d6b29663db387a1ebb5f107c37a4e6330673b1a23df7d1b1475e14ea001319d683cd902caba8e33b90a10fb7f1c5468e9a4fdbc7bfd2e1", + "669caa7ce8599af49b6aa8963ff4c19e43247953e0eaa7453eb954217ab9ca86a82245e4c0916f7e9631f763a12b8ef516e5ab33dac41d8feb1f88b8778bf185", + "b0d673b7f25d73616323175f04cd969285914f163cdd0513cc97350c4bc50574228bf1271026013a82260281554eaf29471f4ce3cc4472aa8030a6cf20982c32", + "61fe4777c89455b9fa259f9f8dea012cbe1dc51538c54e77ce7d95eac48e73f900b77b51b00018a6af84c407877ee9b0dc3ff5788638a52ac8b150e823416640", + "2227bf50bd45c41592eb42edab9fee3e78dd0fcf0497bfa733b99d9b5699d3a27932f4f81f7d4af43a23e94ca7a9a88d82c2781602ef5e1ecf4712ce6f72e8f4", + "67f82dca717d47e9e0854bedc55a1756cd624f58df755cf9702de5cd73b57f6aef7bbf40922a915f383d7d3a910ff95936ec74e35b3b2aa6146f30e11af3725b", + "83665c2bca49c95bbe584df52242068193f7a9daaa67b0ee36fa9a81516e4cd6a3d15a222f95a2ddb7494c5dbb7e83eb30a72ba342dc98060d1f78b9c8f0e893", + "c505a3841c5589d0b2a428d684c9d14520c6359a5aaed6a560663947899e42b588d5d7be55d580931b25ac2e2fc5f3af360d60741c0ba82d5a94be61d2ccc830", + "eb6fd4b2b90f79f0071c8d2744c352dbdc7807d40eaf5979dbf21410cefc2ca2b867010a213c34090e3afd0c8ea65f43d1ac48eab67721af5508d6f193031611", + "ff96deeadd3c3668f9c9fcf23eabb6c08a908d89b997ed4005fdb4addfdbc165d47cbdc2a9a064d95beddedfe1f5ae0d7a05eed7d1b30d3dc1d3ac8850425575", + "e0269128ad1687bb7c35926e98cc9a9c7670c1276c3f10c37853928aa6c0ae7fe414d379fcbae20df0161781690053b9322d8ad14d66c1a4b7b35ffff9cf3f16", + "ca5fa777561c6c13ecbcad526527343009bb1eb77b4bce263fc24e00a5a5fb9296d2ba13598a646bf936397e43a7bf9d303cae83e3654cc25f636f7fab03c2b1", + "fbcae8c494c5fd0adb640ceb4a15bf634293ec37ccf119aff5bec95f55578ed90d26861a045e0f242302158d3eac801185498d6d8033662f2e0e6ba5b6f04ace", + "28500180d6f48671a4acd83c9bb5fe3665cf9a6163d8797a2a2f9ea3974619b312769f67c1bb279a409c05a6b4e371f57fc658096923b5eb086d920ee8c748e8", + "b205c2e223bf2a741f35294e9b7e1c33ef745a31f5ce2a00f6ec43b05044034c4993d5112e4ba7ceb2bda4c2e2c8e09b52ce6c2ac7b5374260bfeed8752b65c1", + "38fa9ffe97ca84452f56c26702f561bbb105d1ae19d78c3528132daa809b006ee2359efe54eb35fe0760699070d2b33b2401a5c12132797df0bdaf96a8ddb04a", + "f5d3fcddf5c8e2e0513700b11775b0b3c73cd16b18ae52bd3ed225306ee9b5e6b5e402334bc5a4fd1af5d47138d44217dabf5cbdffd6978b956eed71c21e05cf", + "1a25d0833b2cc0a1a0d7c892639d0df281d10334860f70878287dd4015a3f7312093aef197d49a1be99f1615ea38d52a5f3665aa87bf20e89dd7a04e3dc09ca7", + "0942326feecaad788eeb7d50863fd9280211c9f63b16ecd51ac874a80b47988d61799a10d3b23dc23ae26c179ed5ebc9e32b7697b0566079852bbfa5fa21ffac", + "e9f908bc91ce95abba48644fc7c1f8e211e3d2eea459021ff7e4496c6f1aa3eca73aef2813b33819139ceb6add5fcfb4ebebce72aa1e30dc328454ca69ffbf31", + "5ceee2800816ddf676bbd3c8b7d95012808e62a1838cd292893b05085dd08b95ea245fb84283bef479fd0e2b8bf9dd1ba722344e83dc391a85aee2c930f985c5", + "ed0c620d495f5190d8667f0f9b50c9fea28fc01ae9b219027973a341ba87118a821451d5eee580c4faee46dad21c43c72523ae86a8579576247eb8e38d0c6ba6", + "138f2df9686f705e5c55020b89f04ab66654b0caccc1a8d374334b6bf6534335c7514206b6f772ddb0550cfaba22d22b913928d3adf78bfd25df9dd517b2e3a3", + "3348f4e8c4768c3ef687a8e2a02e307fd8591b41235f8c14e5983ae7361968d0cb877af488b975001aa1e7acf0e5844c107a102bf028fcee89cfe751266d88a3", + "ca7257ac51700539df617c3b7ee9acc7c4576332996f905d9d3733f1aaf3287e2f852be394e533f64ea19733276b0e448496f88500770675835e133904e4071b", + "adb3b6e2083cb37ed5f822d1aa2ada18560c663011cb16cfb804a5f24c0525f34d8cb10d19528ba02bb43bd501bf0d0ac67968b0687dcb21c013527a99ae9d84", + "ea781fdd2ddde4b42e1a6b75ab70cfcf17dc413cd9591254f91f1e974181191656edc92823a3145dbe4ab491e86233daacd748ccd2a86b551d6d47edea943c82", + "b2dcddf444c51976f2d71d020bef76810c8ccae2b94c34178c600ccdd04b233ba2d27db4e8f07ee01d611e490564b6071858bc8b8f8d23bc6b8da746dad4a132", + "447c299f7e5c90cee70a7577ec148fef194f40ba7c3c8cbc96ff81d14490a16e397ca01f3c0883e050f805239fbd4189122b45b1101ee1f303281d2ac1580e2c", + "e21aeb7109ca41f1c41f4b66e80a6a4248aed43341f1effabb61341c3f0b6355efe3daa8d28d60f9bf851e6837625bf2ebfd8a68cdcb50718660d5ccbfd93910", + "fc015b69f1ae0dc7004343ff941378b8a23aa45a3825310e9a81c2a9ea2d4f961f4c9b8cacbc91f0d2414590c389d24ed482b95252f37b5a6cc6bfaea5c98c32", + "45ccb97f9524ba87a7e69354030c71a07d875c5e958ea167eff581703b1d5037bd91b8806980e3d4eae0acb010d210cd89f781ded33f5697dac285aeb37629a4", + "142922e983887bff20d0ee26bcbcba34a1a70717172b8fbde0aeabc5ca258c3985b00f7908a21a75c014d4b2542a1bfcb7469ba9454f66670b6c05bbbd7a92d3", + "41df07681c94633dc430ad7fff9ab7146f1cc3a66df3a81d990ed3d247d8f9a5880eff20c2652fb6c6631ea41f54d6c331651fdc20783eed65b83af458d0ac72", + "9bee78530c0a93ce8564aede785d7086ce066cb74c3b8f70d3851cd57db8e647e67df0d543eafeded491613bd3268cc7ce8de34614a79d6413c3fee218b6965a", + "e2548952816803ed478241cbab10f69db4cbdd98447bfaf4e92af9a3179b6efacec56c757944b519c69d1759811732fe3c52912611271231342d9d62f3472967", + "0e673628fa620668f73e652df7927ec7d9df9426f157b055e39d23ad7fa9cccdc8013fb8f6a0d2effebe00bb5563b100b5361f33808ae20e23580d414f909ced", + "1b0e41061ff47e71f22fcd508e8560f8e4c9748dd8e520a9ca478f3e3827330c6f19e299e221367e6b02e1606a1b23f2b3f66762d0f408b3a68c9da9018a45dd", + "fee0ea0269154add8fcc28bc61d290cce0ca04febd3ef646d5aeed6542461d4cda983932be7abf3e0c2639acf75ae2770d1b511d996e19536542fb4d76505f69", + "82dff74ac5cdffa0d1d03049f2fc227dcb77e373381c2e74fa316bbf9f6d55aeb7667a95ae4d4d367130620217e245e9ddc641aff823475ae40e4e3ce56fcd40", + "97d7c677b7d8ea600de069cc23c492c0c293eb8e9b8987978cd43b2cace445a90d1cdfa4e0f347ec9b7e6394def55702a13dc5de3c5e43b8b08f260bf0e654d5", + "a0a9203714a9dcae2402958e6bcf759b7e900d13d5a8654501adac70b5cedf27d21f5e92219dad31ddc8466d8f559470c638d9f9b45d4f539d36c54651c4852c", + "e6d9b97f5bdb0bb4f5d2322ceff8a1a747361bb937bcfa69eb8c23d98bea5c5ee25f9587648912d5e7f90e73c031a27e27fb11276ccb63e47c25b18649ae5dd8", + "0a14506b804455218133711a3ba8307615e4f80a5334b86555b9cec77c93450a92f6a18bed9bd55b1848f78c2a49a76057fcf3509663f2e9010c39d94fc9918c", + "8d03afcb3940007fcbceeb023c105918e6540d87658e59109cc6568cf804bd3fa2b3968c28c650e55276218482bb8e42944272673d6a137d326477a1bafe8f3d", + "4862476dddaddcde60a35260ab6c448b9b6dad7ed296fc48b81e288d0e397e694535cc8999f4d7f2f3e09f5ce034db0f71ef5c812f3c6bbd73fbef14b252bc55", + "4b239c5b1c8b83924ae736e9d30582d16bf00a547023244247b389259bc6264981606439ac9dde0a7d371b73a34cac998823803d7bd62abf8905c9bd550ebab8", + "2b0d1c2780d8826cce4b71a77c9833ae59c2bd0213789a8892ccd7b4fff1d8a780e81ad4c2c1228d55df5ba3625de4860db05743e4d07934c434bad5a769131b", + "0880376cd5ffc7ebcc6e80fae0d78dbb3532500bab96cd4b755584d23e68cf59f5297a34ae0a90184773412bc9548a80e4c54391b4cb59ce292d704c614dd1a1", + "e725b8c82c8d1f3963a77d505b0a929fd58846061bea2ba7040b7d3b2ad95ee3781caca60b372eb5258a44a65bb9ee655a1ef9102f8bbd9e41fcfb2871daec7d", + "31175c65ff1133f5f53db80deb90f6b2e79727d4c8e77c5e3f5def70525b871b50249c6f2ee1ca6f11a7cd9c578cf13d5fcbd74de1d05af6076a5459e10b4b9d", + "870b40ee6b774b732e15dee647f75bf3d5dd6fd364c7e1bb184d8ac1f0c991e2486dce6bd6cefa1dffe13c50260d4a0fb6c23e29d7e62cff0f8de785ca53c2a2", + "8fde68d448144f3b4bd12011df94a463c40be946821f80ec8197e36eb46554f7ad8b6ca9f6fcc8c05b3c0c2c909966aacba2a1aa6e980e57aea1cb35b01dc991", + "f19e37e56de97b6ef009cb1b0a8feb42891de80a9895c7413367c71ff34815f977a053fd621c30738c347262df2b07ec3e455dc729803fa3d68bfbff42415500", + "bc3199569054f2dbdc66744f3b6b7dc23d3708bcd96a8c7b7c5d9e58087e2e4a5d5606cef88ad63044c9a4f0d019358846ee83fe98cfe9c5b03b29a2d31b3134", + "c44780e409877812578cf0d738a6394b1ebf7183941323c2891d9604b93e5748eab2fd4732dce6d9a5d1f27b7fadfd5dfdc87264be97f86f700ae87a5d1b8227", + "98474c61c2639ba15b58d98429f0e3489504cc6ed3bf638accf6859443af2bcbf85edbef50191edb6923636b21c2e76e985831f187575ba82e9ab4ca40cc482f", + "f94556b89fa106c94d32f723061d2e88ebc4164b1b02d0485851782f84cc32297d7a3af9a1cc430702b78b5bdc9e50abdd703201aa73f8811aeb4a80a5992c64", + "60440509e00573d66609563d8f1504a196af06d46f6cdbfeeaff61fe46ad08456ee24bca13dded11818776cac19376ae7415338a3d4f0035ff276188bf11420f", + "2d552519ec54e5bbbfdbb543eae5482d9b964a952e880a88567e7ddf1dcd0d5aa353f7be15d7634adbdbefa85355839fda2b738da987ba568103eabe2cb53d23", + "afb37a28a4f216a6cc3d6aed09e82f40b93e445f892040f21d1aabafe99af7f001837cf0ad8dd2e2983282f35adfb9dceb49b2c80c85153772a8e587abe7f18a", + "721b1bc60845499b1a50b716f97fa9fd584132c1e30a1705779dbbae644cbb5751ad1b1b379cc91ba4c3054bd060b88050baba98be1864b1b96c3691a096ef21", + "efffb02598398243d8784eb8ada33d314c8d396406bb7fb6a668085b23438ab4580bfb5258e5d616f9030c6a8928f4f753d6800c90ea2812482bed268a806e8e", + "f1cf53ffc952c446eef49f9d89370757c74cb8f2d99223c47eabd296151161cb86c6a34833e7ac6b75e8119a8274fd2b9066ebb9b787a4a37c9036e6e01ba9ce", + "f1c9a73b10ba528a61ab86f91a9a05261b447049c7eccf37ab1e0c1219f14f0f0f2c5b419a7595550f2d651a17368c3fb7538a14ff9ffc4c4d9098803d942d3b", + "5a1a31490bc85facc5101ee18093bec7c2cb717a54afdee47f98660032d912f23792f1d0ab0be8a3c7f0d000dac238de843cc84178cbaa910090ac827197ad85", + "24b5a99041785bc5c5519190b4aaaf92770e35d07213a6de55eb8811324cc63e3afcf61f973a896cfb30315873c0071e2bf3bb976a53163422a01192915b9c1e", + "7ff6491e79cd3f743c3d735a0ac1bc5ec3395950c65111d7bc2e5e3719ab0fe920dda443b1fd8a8d557633b95e68354ef8f78a91a769cf0798871f8b11b77478", + "0154d5832ec5594ff994034be3fd3e61e7eebc8e43c20c6cc9910f15650fbaed2915087ac641dbf60a2083ff14ab084a27b5cc9a4e84c54a6b361d38c72746d5", + "5b617ab6f6ffa82197ed058d4cfdf54398fa3cd95074a745d389c05d8dce1b9d4b9e88ce4b519017ea3a55eb89d06d2ce321f4801d079d5867eac366bc270968", + "1d96d1ce0c82a43d4135ed8a022a5f145ab42fdfa024c894939d6fa422ec4f621a1402113e1105a96273dd4f7884879f63ef41830a1ea0b4516937bbb2dbe44d", + "de1255fcb5a191e19b663df4a9dc5471f39f13be5f8a9cc1c3f6fe2844eb8cf038e7ff1825d26a8f135aaa77120925addb6acc12ea1bf0e60dfa236fbe38458f", + "b17a24ca14830ed093c39e8323ec0dfd903172458d023d10fe4125d0eb4af0e7578b1ea1d5148348ab8d6cab98b20b18bcc52a6cba85851d2b74b20735be6e48", + "602b683c28f25e9f20c413d2b357dcdf3e339945c5bd41fca69fffd2e1658f9fb654b94b62bee72087eabef2f2f6aede72c7dc45dd4549cbc75465cc10d4c554", + "e90126404bfed0dcf726ca50a6d0620305d1a84efb0e768044d2db920fb041e7deaa465777d312e2867e6e9e50559bb5ece3a4ed6f844504c39e12988917fff5", + "d98758d0cbe6c5fef11a4edd8e9170ffa7f37f40914b4d836025b3fd71fa2b518164266d974a40ae2d7c3c359ca675e94b04d08d3ee56346a51b82366f1ef0f0", + "7ea57c6b9741ae7c07e11766dc6f69c83a72533126acafca968832fcbc7a28df18968bb582e6933898672e322235c9d8fa310f485169c55e04672ffda2a01099", + "cefb46600fc757512e917dfa063bec761da6140893d3b7ba01677c6d142ca2960b4b016ccf9c9a175d8e83cc2f1a9d4171d6074e2405b866cdee57683bd4334f", + "eb861b333f0763cc1f0747ece23ff46b98962b096cbf95335b6ba9992f2916115887e77a812ce6f78b00530194c71b97abf4082f31c09f547b025b4388199e75", + "51cba976abc7e8d55f67b1a056b311b861fee85d2fd69bed53dd274024d87dbd269c41b85f6a1c19ff3d32c444cc7bd8f11478147bbce99dcbd29e34988ea808", + "10863687d6d1144dcf9d03c10cb66b33e9813efb9118eefb947fc68997e6ccf6d93dcd4c2e33a2d187f5e6f5569d291f16b985908f4015599a6214c24af791b9", + "de8591fd57abd6d73cf01c94083f916c897fc0cabc1049bcd75d64c768d3b4c42f05ba4deaab83bb643ba451cc224b0a61110647fa35ac14f63d9c2fea5231c9", + "4e529b73e0afa555b75a7ef2b43f32d71002045f0abf519c5c1e31f7213ae10bb1474bed81450e9956779216b0dc2d4067b181744d9e66af3f34306cefd5fde8", + "cad6b2e517a3a890d69c8058b427cf4ce48c775b84ec7e47d12c3d2bfd746d3f6dd1814f6721b5da519a6630e581846f999f727970c67940dfff70015dae9053", + "24c90c5d7f0c9471fa119437c8ca847e81d556f66fb6316dd0fb53dd57dfb3ba7d14ac4d1c9c55f04fb6fe2ea9e67178890a3501567059015b7d993256ca1c54", + "4ba61eff8cec62389a932e24775211189098bdcdfdc6615ae79948914d6361c6bbc45b7deafb4a58b78af4abfbeb8991edcf30a2a586be8c6cecf9875c734d7a", + "1f6cd40f56856615aafd4103618908530c8eef746389adce64e2cadffbacb9dab4e5f973cbb86e607af00f32948e4cf8bafd2782653710b38fbf890922773ae5", + "2e6d38768361d7ba583a5314947e43fa294e29f87bd7cc2d6f49890912885f907d8fa6bef24b4824a4ff777c5fcf04d655fb0f9c2a6c7adabec9b92a6698d33e", + "eb395350c2557f16601d19dc75031348103f059a0fb890cc2a002932e0619ce8e52f0f39688df0db724cb095b69a5643154c9336fbba50f35c6a4c05477737ec", + "01449772284e566c1e31a6924a2d9157bdcdd694b5ed1039370bbb11f58851fe5677b25276ec84fdd8472426735c532bca3d59acb6fdce13c0dea9376dda8aae", + "5e4de3451e6bf67cec13f960d86fa9035b1aa4a824f0aff446271d39784a0e735fdd00ae53d6347ddfec4ec6a552ad78af145bba1cd4c34c300e3aaeef88838e", + "814e7b36373b0276718212aba4e0d9760e433b680fc59869533e4f1d34010047977c91fa33c0c6dfc2f6a4dadce34bc897a3f7e2ca9935b99d8e5425ab46060d", + "9b28504942e11b4fe971337fbb905dd772ef9d4982ac4d5ec7c3efcebbd1f32d6bc7edce173a75de81c5651a3d1dd22a5d63a2763986356331f18bd02d77b036", + "563aab317672c0dafc3578fd23dd1416a577d76099b850801c82b03a7fd9037ddc84e7960817b893c2aa5444c46cc5aced01821e0a299a8bfc13860b6de3a0c2", + "7365a562e0a02312b2b26d583ca242c479a96f50827b4e87b4e7d4f4b4174c39a76e843fb1d3d2f3731b06161a02ba5e64860d916e607bb5954765b34f57072c", + "8b9f0cd8d4d56dcb17bb67db05580a6b67296d4ca8297ca8a705ed9c9948ea9b1de211d205df7836da88c2cea2adda29124e9dd9d5a95aa7e300bfc52e8931db", + "34c0ffbfe39b0abd5b261d66499a8508f360b0d61296db24e2496c2edebe80c2642c12976fa54ef41a766f6722393d7b154aa0bc5c4e20a2ce0527f9a16c3aac", + "2eb1c4bd6d8e41981756a7f83a41d5df0fc770707afe22dadee6bf92df54096fc4aeb6e0114ac3cbb33bd8d6a47260baf4127cde97371979b21e8e32ea205265", + "18485311be9c848c38bfa25ec4c557196f1e39a4ac812b77ad2975182a9c2768706905562b0722a2a1b92a56eb47e2500ec1621f59b6b0059ee6ff8c2db29326", + "753b20f511fd288f732ade82c0f97d7a05dc4e6b931f7d1d0f266911a3c7ddba5db2bb233a12d9508dc071e760844f376ac74cdacc5c8321db2e6dda9ef2f9d1", + "e4ece8fa8a82c0c44328a5b11c0c0eab3b165a919555b8ecd121a828b0892e1686ef62eaad10c87b41bccd85e60f37aeae96503fbce970d895e1e1e551ce1a85", + "0c2a1d85cb308cea8d84108224fc6da66a2654496a14cab4457b672ef9bd2d25f0d14098334846f0187d01d74cf8b18c22b3cf9e00ed31f1be30e960e3c26af1", + "46c390535747c9c16a4797c28ddee9c2cecc3b8f1a89ee67c91a0d06220e66339e7b4a7d6c6b2b27d0a011d51bf7ea0dd61e6124d329269bcd4b92273c2a311d", + "6c7060dbe2f17bae9f4503fa61fcb2b3c6f9f8e1710fd2092cab5865e05c6e3a9a5d2e5a94e4c9dafb9f3e47e52a6644990d8f397c93dad4546a7c1c35be8ca7", + "a614f68be815612e5e571b06dc69c3c86a8a4eff9bba9a981413f60c7b612b906a7805be3e292f1154cb0e1b003b86f40b23b99c579da381d06c734e60a49806", + "402cc283cf76060f64f0de59d14910d710221f63537d5e30a1388496cc2260de1e3bcace354fc1ab344458dd9bedf3fc36336d67b10ef21fc6d6f48acd265c8d", + "aef42fdb10807fdaea631638a64c06a9125cdb7f94bb91ab345e1ea30e606fc5fbc6322075a50fe2d13d19fd34ab072c41b96ced205cc5143a1a5c98dea311d0", + "391c3a33ec4b5d75c910df0f00f6ad5d4e8844cdb364b2d7b0155bdd4f9c0e1b6c7825938f642840d06cd0e6f67f87dccc34f6fd83587fd9266d603ca625548f", + "e51079072c571d0e44c975f232f052f78b497a1c85995e194691a85ab026e4f80a4993d3a2b4d69f607558ceff54d766915e5a4e0c7a42c8d307fa03c6dc4c74", + "019be27ac6e4b1fb3f1602025a8de3efa7ad6e1d0c6975e8d2d519a997328154fe0738a00366205fdf8467b36d8970a92ef450c20f5bec013ba4cf8091f571cb", + "b996713f0a3ab5f0198c127b5c3079dace7d4d98a9433d9b790833b62395a3797b7924eb8b9f586903079a8413597e37448f3222b751debe8a5b83385864f7b8", + "fb71a3351ea2fd4c44e271ea793596b245c6f0634e79ed1ec72c6a4cc9dbc892a9498a7aca0915ab20b0daed223fad794a6f3822c847cf52b3f217d0bc605b76", + "dbd3650b1739e8da775381b5521c5cfdd689fe81309b3a69a4b3bcdc62dd6c4568b84670e5e3b1b4e0e834600c36167e3447c5c1009e680c7932db2bd91057a9", + "55b84f2ac0b917467f20e9ec5f6ce98b3987c59a1acaefe3ad73d1c26d724ca0c4d8052ce82e3c704c7834499bec67620d4b073bf3da41aad2de69afa4943e3b", + "ad4231d8a6c04c1517d1091d399110019055d5c5ee1d3d75456da17c5572c10bb8b808493c3a69ebd668affd15a9e92a692a3c7a394f929b1e7798e692979665", + "70cdaed98eca25b7099c73201427de23f51d7115160a105ded7a2fb6b20f2deb31b6a2734cffc2aa6189daea538291b34d0aac7ca9c57ca7063a31ef202f38ec", + "45186098139174a1d4d657a79b71e6e4fb3ae790a52ff0a1690d787fcb6fba7025cf74e3cdbfaa5b2b6d1880699315fac59fb18714c65d5ea66e6b1d47ae17c4", + "7e804307383aff5bcc80306043721a173e61461e401c1331ed95b8adb1cff5cd0943cb3ba8c9a7a02987dd9b6ea2912368284cf14a55566bf264cc244a353227", + "8b907f2b968634263c0cc229e917fdf0ad93d637299c10d8f76effee6c6a6b8385803fabedeb1694eacbc11d94fd00cd310c287c2c537bde39b88a4a15735df3", + "4739db195476a74b06835ba91dd8dfdade704a06557307e33019738083f367143c96ecf28523c1be8ca272adf7e0eebb64eef31fe4c5ef03ce7d46ed6fc86a71", + "68b8aa5731f7d00d547d7e3690761046b54e91257984a46e2cf9ba2835adb621ce3ddcf81a02a95308300f1e992e3bedf832fc0433f0a64d5ce277e679933e47", + "2cd87427875cc3480cd19f567b049b1181d7f46b85f3cde505005452a0401a517e0e3d2a2157d789a6d63c8484386efa9f9717498d35b20ca2a0fd2fdddf7e15", + "5e0a947e07586e1a7eb441b4f44211f3731595e273fbe30fd5478e762c08411db9ddaa9f9b9d860f5768df78fbeaf9efeb9ecaee9a9874fd38e9ebde9ddf11e7", + "b8098cb26fcc5acd64c492919ea1c7ecdc9b3de4854d69e7947e05bd0bf6e84c240fa83acee02c829a959614107ce03db8aca40d38f9cc57b7f94c3c220deeeb", + "0f4c4ecfd9a8431d5ab9a245a77cd70974fb75f1824fe68583e9f25e73ba572588ad0c328d73bebedf1fc99d898b7d1c9eb9ab048896cd0446a3e932a97710ab", + "c90025be7f02fa18134b63681b5a635a51c06ee37878c4833e0a853fa474aefd06beeba4597ed8e59255ee4dec81b34d6ef3df617a885f50b79f6ef9e47b4003", + "5c21e22d8b2887134f03d05945d91282b6321f122e53640c046ff9b1692f1210ca46cd8471e95f3c74f7feb1da0dc8a421eeffb3699351825f16ba621015eeef", + "f1a7011447e8515e1502a3ae56f8be61eb4200bc4d21c8e1875b73ab2a42de4613d6404b17a740b60b57f742c92f45c07880498c44c989c15cf1cd37b3f26e77", + "02be97be60f581d73527490734cd5f8739dcb9a5089cc49c7619277ceb30d9a69b85c53efc55c780a6494dd172b8beb2b69f86dd4b7cbfa3e47f1720ed394383", + "38652a2d6674a539559f3ed0996542c23d48d8d108c2af9c10da45c9dbc11906cb4aee8eb04c88789b763c66b743356336c8950303b950d72a8fca05b9c67cd9", + "bc091874baf2195324c56ee8386e13ac3f49fdb329c2d5835848af2a3653bcea26ec8c370912cbcfb1c20d3eb9ab53c6160cdd5351836527c5719084a575ef64", + "d8025f57c003ddcc6abddce2ccffdb9c11be984311a749a632d7ee4eb073c58f0074096c17ce0a46b37700581d9ff074143f34322d5460c4bd1e9ee6ad497f40", + "99812eb8737bf609b3bf4b8ade116403183dd7332dab4f43bb4917da0b62abc5a4772d572bdda22fd555af55309d31fb93492ed3ef4455fde4fffe7bf8df84ae", + "6b242888a6e956f10a8be75e09287d59cc25155b0aa8d8ba02e095d0afaa29104cb2051aa4b3430b724d500ad0317208c3ba9fb1265bf19a974e90f4bf0ce006", + "ff77ef8de1483f8a498e3554083bb69f7567fced495e6bf0c9902cdcb5247fac6a4b50d1cf9cee89c400ed3e4e6febb642f1ac3bbd018ecc04cb1a43a1331ecc", + "83e0bedd263922f016cf539f9e7b43acafddf35c8ce730434ee3e92acd264006031073a705f5585bfb66e53ea6a733901ae40634b6f4d86fb554ce0ebc5cd807", + "e063490ac5c915baf98c37660eb17a85798d728fb57cb0acfaede8afe847c9025d8bf55b6eea096a6f0b443b38d0bc77dd0bcb8228ed2681bb03a013d15ceb79", + "2f2fba371016cd20adc35c032b61100c298fbaf81506e83cc6e9bcc61244838ad83465658a6436bd488c55d27b82ba3ffc5223bb97a03ae33e05ca750fdf56e2", + "783af05873f418baf09aa3479ffba6cc9949f90d7cb9df1355b46b020712edd40477f7b2980defc4474b2d3c24bf92ecb5da64fbdf167edd9d9d48792d2b4df8", + "b53d11e8514950f60345f266290dfd57b8550c011f2bbc1c7cd718e74caa98473e98cf794975661c7d46d6df10e14f0af2e0efbd480a350ac60e0881ea7090fd", + "0e21302b185191492d2625f0fc4a3380ecd75d8ea945e35fd6e57eb7142de24990eee2b6711392f8856874de50e6d2fdf1d23a228877298c668251fd0f06b709", + "1a77e749c8249d06f08943f5cdfeb5d65c804f1052b036ccd7a6f16120315af7b20c6be56ca65861a2568f7e726420e909faf47e4ed96a3c299aff94edfbf6eb", + "cdf5cc029a5946bb96a524d865c6bab024a2b598a9a657ef631fa582ed9bebf56c18d955528a3dd5bc0d2466f7ee0ef8af1c814e3858e5da3a2ba951bb2d79a0", + "2a4b61feaac1bc466dd77ebe6e800f87950b28532f71be5e4d56de28f93c1f7e61c793745a91b8ccdc29914989730b7df933e6c7f1b1a08638953f966f092560", + "a40028e17cd5da2db800437a58861565e0a55cd3dc017fe48c7d3f2d4706d7ec742a21170cb86b32b5b9a1496c5c5dde4e283915bfcdc883f08039679e29ed43", + "2a1f1c7fafbe676d2a7bc67bd80c9387f493643e2395852af8a6846a5ddc191cb17fcaa17bb82266fea390b3e45ded4a15408a29df5ae390a1bc945d5d97c1c7", + "80c5090fdda7fb8b550602fbb156d650958e0ee131e21c09fccb57faa9a9c868c5947e409bc5cfa89c8616619e625c7d1dad8686ff59c2cd1d9940e336472145", + "a779bc3d4f6315befda9cbbbdba4c9e24d810cb46074d81a6e2d66947a30f62c4d3eb92afc6d9bfbf42df3d8528982fcf7aeca66740d0e753040a2c6f71ac1db", + "46d64790833abf3e17bb4b8ccdb4f0a2dcd23fdfa3135744306f4916a658cc5b0bb60dd65dd2287287ca645c0b5904a7227ed1b40730a6f335bec41706769e9d", + "29ebb2b1bf14463500b983f8c9fe9ead506514e9af11202a9e0930b225ebc5258a09324010c52ff35e902647d9701293a8f8a007abc3d6a7be629c5078a42bed", + "8db46a5d23103103746c2fe2480ceec56fd9796ad357f5bc45bf0bc2d2e8b95ea0c286090ab858183c2a051b80fca8776670fa3da8722329848f057c6ead4991", + "bc933d42ad3267f608ab201d2813e54250499d87eceef837863f59d8ace4ed6a3239c4c7cd7e172f3cf3cded5d84950e066e2f549a767ba421cad4a223313c1d", + "d84dda22fbe020f57efbc8c612b2f781eaa81e4c9b0f013bfc1b3c926a5ba77828f8c6684a25b2c567dad1b705e7bb417f5eae6d8bd2bfa6acbc7284f3c19e81", + "c4966858db87dfc7dae95cb51a8b19dd481f75b3ff554b18458c0f25a285f6135d73ff6f1b498b957e8481f16612d8b52e187bde76b3a8d1a6324a3899f056d8", + "def5b398b53e2b884aaa19d86186ec7b386974386b24f5c993417c1b3377449d0ee19d00ab789e2d63a56b01101e44692815644147d1c2d66a9a68579beb2b50", + "59d674c09e78b40fadd298ee83fb2cb4468ca96afaa75ce3f4b451c0d353c28a632a0de753800d49fdbd6ea190025c5340036910bdbacc91c2d988b6fb2f8789" + ] +} \ No newline at end of file diff --git a/pkgs/pow/corpus/cubehash.json b/pkgs/pow/corpus/cubehash.json deleted file mode 100644 index 244873b9..00000000 --- a/pkgs/pow/corpus/cubehash.json +++ /dev/null @@ -1,258 +0,0 @@ -{ - "0": "4a1d00bbcfcb5a9562fb981e7f7db3350fe2658639d948b9d57452c22328bb32f468b072208450bad5ee178271408be0b16e5633ac8a1e3cf9864cfbfc8e043a", - "8": "5c3019f2abc3471ed3a19648071cf2311503dc4202508f8d3efcb1023fd895505c4d634c1ae9d9f81de6394690366154c715bf8d68242b2c64e1ebb1e538b330", - "16": "7c38a32185665d3806ff1d0d7b278abe0b759230e4db6f78a80efc2cbfd50ce6aac477240e1b38888156b4e00946d1fd8e2e853f88c0ea6e29d4326003a67fa1", - "24": "9d626b36a1e9a849b5f1b2594b53f761ba3b3e2734cd9812849b7510fc284efc0474e4ad40de57361f695f15b8d79a7f7c8a3ae5c48ac94900bc2132340e77c5", - "32": "1f6148d7dc4ea7d4bbadc89ccd3f2e62232ad7ef0d4964f3fb69d62ab2a704d93a3faea98f7ec05eadffd418687bdd337ae61c3170595642ee92a3cc386a241e", - "40": "010f8501c34f05f31c606adf2b2561c6e31f8580d925f9ce077533250ad7c669ca5b7a56ef514728ad402d854166f80bf061e8f1b6901a2112e0a0828276c5c8", - "48": "5cf5a9486b2c001a1fae79cabac4437025408466d885c95a3ea3bf171e032335070511e940eede3429edf976d48bf219f1430ae85a098cd46cdd29179698ebd1", - "56": "d28d500565cc5c80a1679b3f3a4dd630e0ce5a4dc9e54435eb46e7e6665cc934f1da6750d6f63d8628d3d5d9aef3b281bede77676ed08b680a6a3884761b0e41", - "64": "19c0b2b2dfb2270ba7a68ed432fec3c60d030676538ff8902f52fcb039ae4960824f29e25dceffabc1d95d6bb245c533a6aa11c9c1c9e6a805e908a504812014", - "72": "dc6625803333f60abf81021138199f90952498de90d4a1439e60ffd5e59d8601d65606979be34a8e0bcc28b16e921554a112bc4d3a8e2a30ff739c1a953d3cbf", - "80": "e61e387e8ef3ed04630098afb61074d9c415c5de407a1824c0d1afe3f778debf2d44c9ac758fbb7c16d96e5182a2f3d019e723172a26d82c67f908e2c8c11143", - "88": "c0183c014733027f1a6623d754163c514d6856679751767813785185dbdfd2df05a01d6ffea7872419c623431b576e3a6e6dce3b2b743423e6387a539627ca8b", - "96": "ad3616c786d93344daf6954886fe42e60247ffe59a2cb97aebe368f05c7b60e0dae5170300d6c78298591ad561cbc2455e9b16b67aa03b57e8f15c19364ae486", - "104": "0e6478d64c783388ba2e68606f796debb4d4e1ae822b25809f61cffcd3c59074a3bdc7e0b090ae6a6bfb9e0f3148725b93d0986b40cb994dd5ff0b2bd0b3e4fe", - "112": "eda343fbf0b72ab6f6b5de23f29a8ea0fbf1f56f53cc73a56200f580f644774ad9a0239d8884909cb7b2880da73709cae0a141da1480b4cf98021153a915221f", - "120": "5fa2ca1e7e4655b5137f5fea07ed9a9551c968bd1c0a4a95b9be0d6d5b3de2e3fb82dcbf504580a13669415459586ea04c23fd15d14e9b7e1e32cfdca64cbcab", - "128": "f69afb6aaaea697e93f2e630e679b6c73e70d22cd0efe4bac8bb6c20a25b59592942d839f752a8970e71c387926f7d7a1163186c638bbe2f5a798076f37aa5ad", - "136": "0dc147e05f4694a991bf922a7bb72e4f5cd6fd665cd880068c2f7dbebf93dc7fbbb972e27664af40f49431c24d1b5e1c86425c5d10877dd70a1d4fb856394205", - "144": "d0dcabe45e5322a9af69088fd0415322d1c9cc5f738c6874cb0cd0cf26c34176fc6f488a897315ecd7520cf2fd9560bac4a9be15d362a3809654f76bafa02eb9", - "152": "8124eb591f2768f916c627a7c0cc71094c491319198e83c06c77f69e8e7e7b42f2fe1d7e611461cd3a27f38d2d4a89facf30385ffc237c18c0b8122b25782208", - "160": "8f0071c81cfc5f0980a676a04cdf5e14088ff959e6f91c6c42a3e3317bbf69408f9b5b0cb769afb6e82997b479c1f61328916a79603635ade4bb672d428ebde6", - "168": "b56e2c79bf9faf3e9bba56dd9d915373add307dd3b29f841f416a97b5c78b572699b999ff4c2e530849cdd979e5d0f4d01b1f11b2794c8d4ed7d3d22d5d41041", - "176": "a153b9d9504e7d475f03424b12a433d9b9534fc63b93214d314d4c40cfb562b3d6df2c7aeba3b6fc0220a950aefcdd03a726207ab2876cf8bd515f8392ccd6a3", - "184": "71e0d19e356c2b9be2d98253d95d324d46de798f06d766f4e73853e683520d972ec2bcaec1dc21d123d8d5954bca6ec8a4ab0a2b2acb679228d1c7d3d01d450c", - "192": "4b562c921981eeb1275faf953dae38e8ca5924165bb2b6f69fd4fdd88e13098e3f59c4df304df33ecfa8c59f424656d39c3fdda65f272be1da64bec906d11021", - "200": "6caa5aac47dcb5fc74fb534cb9da86006b45572b36b5b16ed57a42015f6493a6ec29f9376b42f3ff68b71f04824252a11ba9d822e5facda2915baf0045f87313", - "208": "61b3b7cb6bdccbb249d2e664c29ec2213a4d557663b73d0564066446952f53e4f815bad279fe8b954ada46fc365d64072e8292cccd754b175eaf6c9de0b8b9a4", - "216": "76c657a1f8cf7aa599426d71a30a78c3dff6b62e1d0fa5a69d9c470eff0c78ad46d8644b1f08721b1e7ea132a21d6ee139e7cdefab08c7b02854d1df9f8f7058", - "224": "f3064c524b776a87e30a8878a1fc486c72c542e54df459f078966d317bcab8d93a9b4061497652259eaaf9c8a0c1291f40a82b746fb9a336e9496c02b1479ee8", - "232": "32a4a5ab43ed41691f893b88cf08145b89822631ed28d1716e4004bbb6e4008a4fb01f922598ca918c38ee297498840bd3987b12aa2ccbf201b37c6c2c9c28ab", - "240": "f481bcd15d4e03e3722000c857c88aa4e5f83e475da8fd5b67934c4b57dce2cd4f177b669d995a44fdc730929f4eab73ed114438f38f54576c7a16fae4c6de40", - "248": "53fa007fa9d17a11388ea1968baf0dcdce902de2c0681fc0c11c8eb29a496d57321f40dd817294b5cde06dfd76c100203f9e90b24b0ad90e0c2b246d917aa6c6", - "256": "b08f5f327e663801c426c36e5c027741c57d121d03869db8ddedcd7e46a348bd00ca42d369dea850e281918f655d5dc52f22aa4b26804f5076dc6e4b117e18c7", - "264": "b34ae4a9623660c7820f3981cc8314f75e1e5f6c2aa76610ff1156f79e4f63799024fa38f8266d06e2e0c729e31fd1bc5db2affebb28563086ea5966a5d090c7", - "272": "0d7611a49ff065ca32ca90ecff28f78e09a5b67fc4beda8a5d923851f85fd79480dbb66507310cabab2a3193ea259e005c42c02ea810632fb8f2df3a4cc8faf9", - "280": "7105eb01adc137c2ac9f49e842997b3ca10b5cfd7456e4279c737e10b92da23b6f54ff75581f8bd5dc6632cfa5d2ab3165b5f8acc8ad33a7c1e797e2bffe1862", - "288": "46abdd366ca857dee310c929a0ae703a55f1332610e9b6842c0af445adff9f381a3f07aed81ebc55d2e874f7be1df554ea6d6849acd6df4dc147d87a6dc10d5c", - "296": "a3df8bd258cf72a778de96a047aae67a7f56b1949709d8e2f7e544de068e4bca443e56c2334dd33cace4a86a22a30d1d63209415ed45f06141be5de5d12f704f", - "304": "f6908a426773a832023bcb85b69cd9fe9453758eed49a4f8f07d3c5e07e14fd6be340da20e4bb142ea4ea63943d387b2d46468f9da2bef73d33cc38f8dc81fc5", - "312": "b2625842148765064e34edcfbe067d7de1cae20d042d4f63ffd11b9e1147b6fbb5041f6a99160db836dc3920f6e8fe36a1ac1e2b208dd2058ba9665c992a9a4b", - "320": "e6e3a69edf733a9de254f0cfdf68c16c895e585b8a9c08badb041b41b0b2bb5fd2c877e9e8c4c12f89195cacc08602bb407afa9e770072da43de1c4b6f24732b", - "328": "8c874613a95f0d312182d926608cbff06bbca171efb9038a79fa013d86d676b2e21453772f8995b2ae0f770558a6d6b4d54cb5933526f9753c2af65c67c96b0c", - "336": "41858ccf0674cad0d8af849331a11706c43e41eeefb8a83a66c17117780ef2c40a52c3bd1de699931ccc0f808826231c9c281dc0b44069c944ed5f01373b3e15", - "344": "914d333b66cac29a9b361acefb9ad36a832e79272d2a1c8628349c97459f24e52d65a4e79875d68b0228e1466a7f14a1c6faa97a72b67c5e06038a2d62da4b61", - "352": "c4fc0813f8eeef7123eece7565f9f20ca12c3ba61040531c44a70d22b6dfd4b0333a6a01d794bb7fcd2fa9ca4b1de4f17d695c6bc36f41f25ad8fef786bcc8ee", - "360": "77fcbdea13f141b82d46a190297c6b3ea793fc9e1525b1a3ef69b06446a1ff319c5ecfc1c1f47c1f7e244019c41da32cdadd6ee31c99350d07525a6882d75373", - "368": "4d4c19be6f09ca556e03f68f4bba38b79367ae9b231ed72c60f3ad01d92a5d550ae7173df0c98a7be1704c93142cd5e96c64f33df5de1c35539536b41e6277b8", - "376": "5fc74e7d4de6948fab93cf3704ad8c109ffcd56fe784716fd739daf5fdd744fc9c60783b9a927838f911483bea92eee457ebcdce239d5044277add53304561b9", - "384": "d45a09012f9d91c6700c5d0903c2cabaf8787a6a8a8a1757d2f54e74bcf5eef389e96cfbec5a1cdac527782487a086c73d08d717f79f1fdfda91277ae1011fe5", - "392": "07b5078bc4d32bd865ab48505f4331a959402d8d49db25e8df73cbdb3883dc038f6c2acc2032335e624f62edd0c55c42ec14f9bfb29cd8e0f5e6d711641e39a0", - "400": "fdfa3c4138e934b555c9e81a2939072d85afdeb8f22718f0371f466e6e55061b4d9d1141f38aa3dffff3cd8895db666177a4729c6796e0f14b9945ca9386b716", - "408": "e63bc8bb02a06ea39c1dc900ce9e41752ee319c426da6695e21b9c79a03fdac7cb930b5d5c4813d55f2e0764a8e73ac2247c9dde24fd3286d830152815b54e1f", - "416": "155cd76b5054641fc71203050a33c591b770fbefcd1e778f31a6621ed666cad84706c822023abf2b616f28afb9cc9405de74a9a8b6e4f263a7da9881d976b6a1", - "424": "1cf51216ed42b2d43bbe5b0e4151dd2b1dcd56e7e774f62fb8141e5c9202004c9daf6b00b66b39a5b31a86d744903a7034b6260af413f2ea33de5a26b680531c", - "432": "1a0e6fb786358f5ffce648d1f02031185cde399e067cf24609b78a32e1a433df952a93de2e363dadabc7c033d0fbc7fa73cd4f77ed297b1bd19785bd91557bba", - "440": "0e204032835eb05a194f0c62469eaa4e5ccbaf3b0f1da6ed54177a3597c49add73703ef34311123d0fa1a2c440c1e1b202fa199b700cf74d89b2f5812d3436fc", - "448": "734c22f724bde95f37c9eb0796f34b236c28347735f75694392b775354021f8645d03cf80e6c576e0cdc1a9b54236dee20a169d2fac3e31046e39beeabe9c5a2", - "456": "61df36e709e0d9cbfe9979d4a78f3f7557ea7278d3423343c7ad815cf6baf4cb2c704afbba69436104b2d6317e561e18123aa15abac48540a43f78a5bf7b32e2", - "464": "c3022b73357134a11f9cab79d24b00ec3435daf4a890855de9d8eef100234cdae51d062662dcb20b9165876880b937da6f6c6c423a00c503a1b34e160e44bf01", - "472": "e07bea9ecfa80f876939c3386139a3a2428b3e83f9215f630d18c76853c2289421c8d9020693017aebd633fe4e39ac815836fc0a3a5e7f92aa2814cee20779b7", - "480": "43fa96bb4730c2a7d5f9873aaba3c190ac9110804ca88a16860687ca814d5dbda2a0ac352ceca20a73c4b092d1bc99b4a791801f03ad92002065f62c0b8d7e51", - "488": "8a08403988195aca8b88a9e4c13d7ed6f484ae11e007c486bd5e0de32a1154fb832568b19096b33cdcb278b8349da4899e55c8ae2ed24774598a6e89b1de062a", - "496": "a83cce507cd67199633911a22bc36bd2de82b7f898e5e79febbc48d435d4a24245ef0d891b0d1c477153174db8ce4dbb852680375fd965334320099ce80c6119", - "504": "32f7f7d61b6355b366e1f643ebd1fe862586373133857941743e354514dc1f5b710a72d3259b01f06fbea480db2011f5ef6f96010e28a68ae8940a707b1dc45b", - "512": "c096f535cab880f0d77d6aff91fcbdc863cac17fd5177122e2b9c5a0063a6182dcb1f0086618b80fe4c02872dc3ab6ab8cb2608d19d904935b392c20c520fdba", - "520": "59c84e6c6700b1348dc93ab83be80e5f5b69932271b6a99c2748899036d9e7ba0a242cf69fd1838b6d71971195b077f0da9b01799a83df9fd45f5886bb51573b", - "528": "375bce3c301e0016a22857d8114c27ede9f33a0890e8da7f35bae0d72a5dc4d72f6d8e115998466c52bffbdbafd72206b027c8001311afad0e52131db8d6d869", - "536": "f20a66d6187cba71dd98d84aea36caae0526d75fadd0ec6484e712dd8f61a378b647df2f2f232f1241e195602d5a6ef1777454b829448895475ae5cb31cd05b8", - "544": "37a4f8558cdc5ddce6b814f359dd6795a76fb2f7168e4b7fcca716857ecf797392b72d0dfe2ddbd180e24776371cb81f9637ee31cfe561ec865383f114600504", - "552": "ba94f20c7d122e496c465cd772213ce4084c1eab018583ed7e2cded9ad33e38412bd6e6d7b596723bb63f0f9b8dfb862119eb67306fc6a4819c73c5adbd1fe4d", - "560": "e138759df0f13b7edb95282cbc01e12251caa3952820e51378882d2a6683b55016ec17c47b6691df0c108c96a2dbb545bdb2751bbbf55addb44f56778e5d1c53", - "568": "4cb1a4037cfdaabd7618cd2a9b6ba369af9fa4f3cf8b0f0d7824dd05fef416385a91593e4a09eba08d9383f5fa2b244770c91e0af577c6c8a91395aa14b84277", - "576": "d63390fee1e6ff05f383a275ecbad6224fd4ef119bbb884e52fc4c72c631715f3f94888978e13289d986c2da57eb4d80c33aeaa35dce7c2522e3faf5c6e85e39", - "584": "48039d825e067ec14d3eacc7636f1e6bc0c698f0204bb9a748b5e74e8d23a489977b657aa027f215601279f93dd579c90de6b329d7a03fbb26bf661dbd3b695c", - "592": "8b8720805ebd58135a8ca966513fd2f4122d25da95a0095820d3d0e4e43a26a7d255563bb65724293d60a44f98656753d217aa6f4d517aa16b7ca86798aace68", - "600": "a4a25122b37deb26d7d1c067a7ef7c1977f521fdd8abebb94595768189915ddad9797714fe00ab375f6aefc8cd565f208b3eacd042d65a002eaf979ff9dead1c", - "608": "ecbd4cb00824a4dd4ead377f977daa6fb945cc5b38446f3a5a804afae86c3436c7298f74e7a6da6cfe4e6241ee30856752f5022387dcb90be1ad6a865dccb046", - "616": "672f798ff67a1a8d58c379311ae7c76646103b506bfcc65e7af0fecdd7d564b819f278d0e26e2c1f9309e998c851fee7c6d444a132ad9825a9f75c8a7cf35c31", - "624": "11179f51a9a5f2848623e30f1ba46a8a1ac8ec4b18aff6984c27269f1c3493051f82e7ca604bb3f7ad7aec48aed71792915aaf313cfbc011809788821c8ef3a2", - "632": "87e30672bbeae34267c5c258ce1b985c4b97dd658a1a4cce04f298f47127649cac1eb34cc959ecbfeefc61ca10fdbc492bea393019553663bd8baec9318641e1", - "640": "d991cf937ce259cb4f1930b0ad8dd90913eaa8fc391abf6f6b3b68a95631cc352fe3c5e61b990867e31101d87928de59e4de5a2e9d04463a47c96a64b4b02c84", - "648": "722e0aaf59f324bf70861593f723e1d59166d63c8f584e87a9474bdcffc70d10ad7e638c97e5759085e0afdfef836b423a526a5e369b12e78a03d7443d799b2e", - "656": "53ff7f907cc3fb0bddbcdb70d415b9582e6787bf721138175530f3b17fb1648456fb0ab43d1861067fae85eaa9507ed48a75fb7e7d58bbb214f5c933d1582d6b", - "664": "1450bd31e41ae9cd760c1db7736cbf9c659119e70e37474d54e2c525d394f8dbf48957effdf4b1ae74a1a7abe318a7cbe5d08eea1d4745c833073c5513c325a2", - "672": "db60ca03b57ef7191cd1b7340abd51b8392f65658fa9aa02dc15869f6720a2c24038c8fa31430755cffe2434c52338951705c3c6bdfc2598953ce3e159aa9676", - "680": "3efd98c7cb04a6298a689157bd87b72c8414225bc1fac8268395d5fb3bb3e293c699fe8f01fb23f8b274f53f7472d931d51941817d543217d5470afe3481fd60", - "688": "a84f61dcc0addfd66a80d61fcfa07b8a1ca8a12d228968ccae2fce2ff6ae16f1ddf646572f6d45160390308c3003495b7a634f50d82c06a9b39ae8779765d842", - "696": "0fa946ae60b7447e60d137206e37109179ae5f9e3fbfb5918844cef9273c2882dd952e5060d49465bc14a69bf2d8080f502b4c4b586e44946c2a9cf76ecfe459", - "704": "9d0136827055ba10e8a388606a66707e4f783394e098d6628c0e0de3978e1e3ffe75735f252a2e54cd676d1b6ba47a8645cd0b39eb0c96b36ce8ee4f34bc2252", - "712": "2e887d55609ed1718170c03807524da1eebfd8f7e0ef1cf8453fc85078e850f4115aa8a35d48a662fb7b63fcecd2d0af43349b36d4d0f04bb7c3c671a5c1033d", - "720": "f5dc28982b3575cab5352fcc9669f51a5dbade9916d594b3a84a1b40b8a8f8ae627c3f980febc9d1b23967c9754e44f39279e1473230ca1887a7be18e24aa1cb", - "728": "3f0240dfa716e91373c353a8c0b9a19e5bee5b7c8a7e2c954f0267d70ba9df65b1943c6b45c5128e1e3e95ac0e1e6652798bf3500ecb9f65854a0b3c23360791", - "736": "c3816a497d965e045730d735173ea8bc58a1799e8f9a6f067fd7ad60ac41d005e792febdedcebdf0b68b3800b0e65491fc23b9ba03f072490eb0d67d99596f96", - "744": "a3cb2d72e889ecd8f3ec28c4e6dcfeb3288bbd2d4f97d79506c3ccd34a604bbf212f97a8ca93df393da6b014c9ea88d1e326a971be52bad0ee1fb947eed9be75", - "752": "24cfdb5dd7d01e8b64b238b64ed2932785d0f3726f3b93d8797ac81c450383cbbec226c67a45fe984069164e8958ee116dea5989fd7d97ada9105296d5e18093", - "760": "5a0c0c1ff96e61c11f4417196b1a2a102850296438c18a3661ce62c239f46f3f9870e8f04fddfd1a4773cc8fbbdf9cc72368db53cacdc79b076222ea51dedb0d", - "768": "60a2026fe3961e92e92d660a1fe588dff25f66169ee38b6ea32fc4b68f721788aec19e50aa773916a02471d9a24cb924b677852f2ecf62c07ae1b1cc2a99081f", - "776": "1233b5c241e359d988050424472b40a225096128e3c748709a989ca178c4e3e5767e8c7ddd611a42f007ef70435fb649c716c40496c81c84bd37b0060c400f16", - "784": "a521c50047f9dc26f41ea900c76cccd3fa47d19ed625017db9e38cdabd07926731c02e8668f0e40032fdd84b02745c5b70175e4c4f475c808cc419f8fe59eb80", - "792": "405fa20cc5bfecf430dc2f7d280eeaca01496e7770444a693d57bd97f2a5db94f5b0c73015e8d518e32f8249ead221457d0403178df7ba6b039470a26e71d95c", - "800": "1c13c5aad8de47050442fa1a25b951aac70eabe9c515fed7eb2aa2fbb6e28aa26ca4385b8484964f9b9b305d6dec7489b8cc6347a1b185efc708e14022dc849b", - "808": "0d122fec6a6720e9dfae023add66501cb01788c7c8f7759aaf515e8803094fb6705b585e5df547f605d74dac1f82b3eaf0318c40ed3c759c104be38df7a1c7ac", - "816": "0c7912a32638b042c292c14485f06fde2faf316dbd7cffd24dd96ef85fd6c65904113b35b3c763ec0ac7b34c9c76b344195851935da1ef888ba4be36b32094b7", - "824": "b4eee823079bd1723c9c34527e6e86f458b7ef72742aa5f292166799839577a44e5a9ee98058def05b6790de6c7045ac6a7cd033d0c55386e071cae26b31f2b1", - "832": "36273d2a6c23473e629490e349c46001436b0fc09ccd29bed6b64ccd00bf66277ee2278964a1c4e9145980d8dc9ec34e99af4710f3869b9c25d7e9e3fe1350f3", - "840": "622f12176658414752020897d72374d190a50d447535d03b13a2aaf8586ff71d4eabfaa5c1e638bb740c01c3eb1658f38d44b8e67591ba525e6e10438c5a10b5", - "848": "508bc9907470d626780cb30270a057474712b6072fafbbb62a8106d6639edd4be1f8dfee03c834e9bbb063ac37bec80d6b9f9a3b8d6cec7ebc1f42964e5a678f", - "856": "840b0b9187c6b985a095193cb588768d1ade24157109e88f5d5fa474014c5e289ae73f113f9f1591a1c6029a895e759420bdf6edbdadf3b9fd4971b67b85744c", - "864": "a69c951157eb5afaa066096965e7eccba541d0a126f71c80587291126cc18fb1e735ece2b0a808c49a882aa3c6f01933ac090c71f75a224df57b5f95b68c7bf2", - "872": "73fb84ffbbc431b83e39f08d538542d5789d8e5d9358ccb4a8d34384b357734bb1a97d5fb168e9e1a20f23fed053c16f04c5514ec4c2296313168ec195f1e77a", - "880": "179b42d2496dd553903f01daea88b31f8e0ba27be6a1e46a6b314f4a484fe6bb8e823da99fb97e5dc87e2a25e4ca8b48dc59696b0ea94ebe293cde8be27c0b5c", - "888": "f46e9452e19f9c3d538df188f434b9d03e122534b04a52f70a70f679ca5af3d7a47adf7f236fd96d72f57623d091497aadaf19ebc1e6883449920d0745443dde", - "896": "55aceebe0fdab2977364348a7627970d780ed5961d4f2e9cb00d56702f8b874c842a548b91b5cf4f066970e2250c51f5f577b5ae265eacabd3af9ed9606c7832", - "904": "41ca51cdf4b55cc492babe3878562fa94c7a6a02c283401a64157399d37c1fe26692ab70b3c1f085d6f0550eb7e41e41e231218e6288e2e7c4352eb030e6ccca", - "912": "15f74e82e45afc6d6d88b1309b8139fbb1cbfd894f258ef415ef689a019d9f12d026612a17376d0cdf2dcb1c9161670d8f4f1d9e4a930f23216b55ea80e18af7", - "920": "b221b276b0ddc69f0800fecc4621e91cdd0633e9b9aefd308974f0edfc984b2dc82797f67ff2fd4670eaa3b257d0e918574092bf52a92bab68f54c41cd201b29", - "928": "0c66dbf0a4f22966d1f41cb32b93135553f529b54139a1c5f2ffc89e0261c454f77ff5471f23a4635b0c51d544192456ebf4ccb75d80dccb583657cfb8163750", - "936": "8fb8799bd7bc44d36ee4ffab2c9e1629f394b2ec81296d55757489d173b0688e8f8c42472686275f66eea75fc7d5e7bb914acb79a7e848ace8edf3fe8663ba25", - "944": "44c4e8ed8c3ebaf60d557fced9c922b8a0b64228ec1105e57c2ef2058119f25b3cadb0160814aaaa4ab8566ebb4a55a0b1a1cce04f4705d702f1f283f2dcc90d", - "952": "856ee86d90a40cf1f68ee7b11ba48085d0731b7068db972ced5a8a7f053e749ffc981411ecc4ed94834bc46f1e3a6c4870950d2bf1c9e6d4f26e25965256a15f", - "960": "badc0f0fe4ac2eb307a870f9013f81d4da99355c1f7c77110730dc0fad5c8cb3983520c1b55874cfd47f0b9410407f687cc0732dc434a7200330af07b3267680", - "968": "261ff9cc6eb5c128ac0a8b04cdb39412ae4b3466bdae565bc37f68f384512695d055d3cd9b6c8afe58924d39eb259a8f513de23e6362b26b4b3ad7b705c10657", - "976": "773808b6e69f3e34b706ca48faf956262e695c9b990500580f00ad8122bbb6cb97dba666687fb348c729ea7bab87c27a5a72a4d56e04b7fd67078981ea5bcbb8", - "984": "7b5e7438ec4580d6838f16a6a24000b6a5baf82fe7553dc90d171353b2d5e16fb9eab72e48e297a2c4f04ce99edc28669a4d9c58e1d7ab5292484a1311f5051c", - "992": "2491c086bd98b43bd50ec10b44e1f8049a2ad6da81baa159ba59af29d6b7392efc79276b0fed824bea46f318b5b14a21d8bed2b080d2ed7ee4997f30e6a1c65e", - "1000": "36dd8aeed61a906de12e234dad49c1260b50a58e62c9e6217ec8a314793df8d7f57e5037ccda55b9e07151c11db8b851737ac55b854dda90a14daad3a2d6c684", - "1008": "8bbb354da8c2079bb39b6cc3d38b6cf57d220af96e395ecdde43a2aec8692e823fe946591f57f16d406ce3460a9189f4115dbf781a40e7e821883f0928ac9162", - "1016": "b9aa476ad7e16f299c1cb78e769633b81e13675b0f9c23fbd801e158caaff5e45e9485da044c5b97182b43d401fe290cd5e4b9051fe91ec26d1c4e1105a38e5d", - "1024": "7e695c93bd0405b847745082162da8853556a635a82f401b1aef140528d02f6036fc3653b6c19284a59a4821bbd16632cd1847c92238dcbf6cd2a0a510668722", - "1032": "786a0f83d6d1bbf0d3ba8a9deeba208a1f8c276737c203ca0877b72f4bc20be77ae7803a326e3da91fa476cc99290154dd76ec84391ffa0da49cfcdf4dccb96f", - "1040": "22f85b17ceac0f8424e0bbcc3cbd8f189d44817ff64744904d2454e93665d72bd52e57ebce2ccef30803a75c5216c42854662fc7c1886033662e9101ccb80b07", - "1048": "ff0f83b46e349b3abd3ee197fad88ce0d782fd0528fdb6cc23f6a599f5586bdfdbde018718d8856cc23d021c7b015b64e54005307008b2912fc8ba80e59e2a25", - "1056": "ae89a0075cad022043b83aa1ff5c7088b166b1e1708d5ce248c816f0646a24e8ff87d5cfd73d57b74bd3b9d4ed0d6fc795fae7c00f4b8157c761b65a5a2e9bf6", - "1064": "a8b45fe67d67376366f6ee4c1a9adce3fd88f6e01e46199796212350592ac76cc28caed3a0da58316552e05076d24af4a2db9d76e74836e12d80c2e944996f93", - "1072": "5bc516835cf22f30702e406a448015fded5ec5ccb1295f46c59f478b343f103bd239d0f90ca3b103ecf1670ab05c7c89ad5afa75641c5bc2ee2de8dd2cec279a", - "1080": "60601da4a534b4d21dcfab0ff00eeef4f4c0af65e87b869c1520b532098795d2feba693b446357eab952ed33b660e10ce21f0d517cddfc7be0f4103bdefa6019", - "1088": "a5686d5779c7ee02af58b195448b1ae66cfa23f0fe87c343145d028aaec26a6ebe05d9c662670fc57bbaed6712b287975ce7547e29eba988ed612ec2b8b31a7c", - "1096": "5d238926e893cf37aeef832c0f9a6dd68bd46b45df05b384638230df6d4f15de1be288d8da73520c689e104feb9b92a033e67a6823634c9c1d6047b18266f256", - "1104": "ab649015be477b138a420f4d40990ccd46217167983118ceafbc5f61e0e68610a7fd716eec55c57e997e9ec3211f372a076f07bc362a9ab35234dd9b5e9e18ad", - "1112": "053a37e1c642853b89f85551737900b0faac8387abb45913d6061e13fcbb94764e688d9cfbcea302132ec589f655c2ab0b118f4b9a33405f4f5bad547d3dfac3", - "1120": "c160dff5200da5a17009a411ae4e2795593c5385d5ae21d79e61c038f4940bfa3414c20e5cd637dddf5f5e8b89cfa9d829ae342c9277d70aa5aa5f67b397a3b9", - "1128": "1688373ea609c8126b3e0ae132afbbec4428c2952977793e014306b319111d8e20fe200189aaae68d48be64fb9a40f0ce9d8fecd766ca92c7df5b9e9573f0ce5", - "1136": "01755cfd440dbe346b899f8da907478fd423b8401f68d564581924dab4a0b7f72b7d1581477c0187e1348dd0f5003f1dd739394363d7a01ecf95741d0b8d1fd7", - "1144": "98617322810ed311e491959511364efda0c55333a525880c61599af94b69b77074ee40905d1b6d5e7f9bde82f2fc95ea43c0ace7ca2f9802c3115160f13fe468", - "1152": "adf3ca0c40e392fb8b75ce1c537985e29ac2757c3532075341e12af067692b3fa396241484bca9947ea8669431784d6e7d0f6dddb2b3d921f055019cbf6e7630", - "1160": "bf95c7b9c67c7648ba0e000d90f70c811c8035da34894b79e699149107d902c8edcfe76863e4c3fdebad14832f7196a4fd2d8d8ccd189e97b567e9be1e49c436", - "1168": "bafc4d09585665731872dc89cf70a7d52e4dec9b9c3b0ce3df344ea88031c271e7c20bbca223452ff277225e97625b9c6055006b117def331b39ff44a34cb338", - "1176": "c6b77906ae071c7f0e59f22d3b79578fcea735ef93be0510abe392f912b747bd5f66536319cb9a9228a2394f819f8350407541d5fd96d9e9d7091c66bf6829ab", - "1184": "2c42781d8c2eae71dc083be2f35a8bedbaca154810cc95120653b54ced45f4f28ed24d22efc1c52041f349bb2ad4b49032e87a73f35c3671247dddde0d3c22f3", - "1192": "f7f83fcdf64b318af78cf855693a252144cd87a3ccb22cace714b6448293e59634132b78bfc24b827684915a7b57cbc807501becda6602c77078027ccd405fa4", - "1200": "15bc2b94fc77a328bd0f4ef1c336c7a9e3864a25bf1f2fcb250c88b2cdba5227cf7758456e456c59b90cd1af7749942d83d9fdc062052c47f68f684e9440a7b7", - "1208": "3ac239c083e49e05beff270773852deae87be87cdd22a123737bc240102a0caa5267c189e6a5d4200b208f206950f18ce2a3dae5baceb35cde48c8d6ba5ae08d", - "1216": "42e56386f796279a7a20eb059cf58dc33f4bdfb9575f043d66113762dcec7f7ff28997a9de33adc321db728cf4b91a84918b039d2561586d04aaa113ede0fa45", - "1224": "a4571bc2c8e2b81aa953399566909cb2382fa07511de0c7ab4ff889f0e02531ae0490d83bd10eb0e51a2b46ff039f665aaa62b93c78d4c9572fee574ebf51123", - "1232": "30cb3006a57fb6fdc6aa75cc9f2f4d76ab10202173f0dadc738a6a2142c106cbcfd12e869f7852fb6d854baed1944eda333f88ec30e12d6dbd8cc599215b8141", - "1240": "a3a951fac60c9e22ac0251311268498f17ad63412c87b1d31db7537a19a2612e711e6a5283a56869d8c81be07ba68d8c98fefd8d308d31d244d799b0b0ce5844", - "1248": "61716a4f36adb872d4f1d39a85bc25a229dc6c9999c198ac9de2fdd9d6ad0e71729bfed4f91c7ed663ef6ff3d71370b52740820af1ccafcf27bc871b1ff2e0e7", - "1256": "9209fbd6abb6e93a7cadfdbe967016f4010bc3947a054956dae6f42b2952c0fd32607a476207a68650dc07a449d5ba2757934f410866ecfa984ff383482dbf2d", - "1264": "832b1da8e3fb9f9d442f0fd4c76bd078639b3c7581a29b1bbabc4b58028024c472ad29b03125a44492bd40b3a4fa455d32b18395e69d06ce3172c2140e5af00d", - "1272": "f889d246499bb8f3b52209442dacdfb0f301c233b007d9e62e89ce5209217f8035d39ec6c370ebddfc669ee1beefb537fb463c6f73ec7d71f0b540704118c497", - "1280": "2d09a3ce38716e761efac1fc5eb11168aab5a75275453c6d941fe620141ecebb4ea8d856909bbff8051daee920f4ba6bccd598cb0322aed6530417f045517e00", - "1288": "80d9310c728a8a137cbd9ade548cf49094ed382b43b7d755f85b416fc629f917cb3d450f5f7c42e6f1b6b667e5ec8f694b71c12b0a60a6a09a34fb62881fca59", - "1296": "a250ef00e0abe762b9d20ba20eb7a5515b7e0f1150688207a2ded3c8a59aebb5655902d02ae0fc1a46c81e239d06e5af6679381fe61199f6ffae2bc328da7c83", - "1304": "46436310dbc7910eecd95552dd7d56171c663efe81c7cc14b72335ec5da1f5e4895eb7f98a34f32add8fbd1035632f80eac9ec4eefbc800938f4a4bcf7deff25", - "1312": "328ba37dfa85a123cd6baf7f1932a687790666557fec7f533849b6c7d1d512969ca90f84c2277631e2680dac9d7150f07a9ead74dcf8de89b90fd3a444e7bf2e", - "1320": "b7440cb7f71e2e42ab3ec1d3839437fd34c410ccb893c5d9d98aec07917917843fdf3bc0c67cfeef10a34152162ca4ccf65d884f62a329857295ca0b9ff4622c", - "1328": "2a6533cfe6ca264f7a844de7fac6d015eba9c07b951e1413a4bfacf5ceaa38726b847e2c45be0e400f07039bc335ade248a415af9526407ba47acb87532512ba", - "1336": "13b585c07581ebeabc1fe74bd90b574c65b54d76dde8f437e6aaec0bfb9d065f5faedca370f39f2471f05eb809746afac2f6ec6eb6181921453339556cf0fd43", - "1344": "2661b8d232f3939869a9dfb5254fbbaf901ae489f5fb27f1df497861c9b3ce8d5840af89e6aab0bcbc3ca030ad591e2d0b6fe54d0e87c18d0929a9f4133ead50", - "1352": "40f2d52c284fe87c68ef85059c5a8dc71a8065bba4beef6c58eb4052eb31254aacf9c1f5b44a3b2cc152487e04debe09da75583a3d460f1c315c46067568f42f", - "1360": "88e0f30397d5dc76e2ceaed095f33401336b06fbedba739bbd134a783315b3b0e0a5a6cca63bfae36a89a7b3276a5b768dc08b1ba347e09c19de26bcbf465bf2", - "1368": "c7b9dad43bfbd3fabbff2c6f5916cfd9f8aa953e404d6953490e1370f6ae213ce396f2621546b8bb35d29a17a78e18af5412bd9798d26d39b51baa56685bc260", - "1376": "61db973687a6f5536e372a0c7408c316131768ee5d9a77fd8876970f57ab7e0d1f2d0509af5a2b8167a7b191c84a7b2c2d5c256200f578ae812edd4a9ef1c073", - "1384": "e7f55dacdda25d9711029268e6dbf11ea0c40faa01b03bb499c82a79e56b66fe4bccd16fda71309a4371cc9565910a2fa57a0ca8e5d7c1c8f403a0e174e8225a", - "1392": "dad0c12b0d2d30ec60686d1cc191446c35f0086b7dd17af9a4f8212b582782b384b0e839ae625344f65c84349cdee47c1981aeb7d57767727be49faf6a3d2158", - "1400": "e01f41c2eceaf28d6223c9f4583f404f1278afbbc6207b17216d4b739033c1fb6c92cc9895228c1a5f7017b8d6b931ce3920e8db9541baccf751898e4dc58777", - "1408": "73b11064551150dabeaa871b4bf2e94694ab64f22b6344cd63ccfacf632f0ec2944621b1019fd4e64671c07495fd817c5893ed1281167d7dbe436a27fe56fb23", - "1416": "a8f5ae3d0f05cc805a65a9f04d18ceaaa73e75130e1ac469fdc711f12b15c69e06dfd863ab640d2a66f210335f9b071234f7357560b70c618e0a472bca037731", - "1424": "a834feb296fcded23ad7f63b7c7174385899e059f924fba9895c23271bc910bdf12b3a1024cf4d70d6e877c534d35295126fa81981ba205d16b93c778d754c8e", - "1432": "78c8ad5bde16772f9623c06673cdbd25b30d114de740bc753079a358e0211d6d6bed689a6b1decd980c38a7c1c44f7d1c3a3685dbc097afe1f7529ca391d9b0c", - "1440": "be109b4f258082b049a3c8d23bc232482f9a339ef2d10c138a9f5d8640bae5db9c768065449dcee606f965df4d47e37560aae056144524ff8bc8c0a96ebfa32e", - "1448": "22ce9d5057e7cf0db9d3a0af23bc472eeb7e954615d0390d9611b6d424a1184d10f3634921d48b794f6ede603b05614ab539b00f9f046f8f2ca0023943eb5f08", - "1456": "68e432361a67165ece6b96ea9674d026911f42a8e8f5bf7c87b38e64bd305e8533e71e9122f6c77dd666ad49dd584797f48ddae21b3b459d830b3927bedcaa5a", - "1464": "4dbe399b5f3a3f06665936d4eb639c9812dc709a66e7afd942066a790ffb14d05e425786f7de6f7340d10d5d16381ccd2b8df92e230fcc8d2bd5373c04d8ceff", - "1472": "7fd2dbafcb2ed5ebb69727d29ffde5b7f86e07e3d854e35f773c09768ea2ba1b9a4e8b03e0dfd52fc1aac39b293e1cfe29d1638cedf47bf319286ed8e392b1e9", - "1480": "bf4a7ec1cf30209b1c1a3ff2ee4c08ebcf8065ea930670ec0dea284905c2a075d31ded6864908fa1d99b7ca5388667840b82dd18e3b0d938f4529af1e3c76e52", - "1488": "95b683810b26d4c005e67e3a5ba95f9d64128e2dc8d215d80d0fc1da167a9d128bc1c959c0c33f597163a964dcb3e8a317d167e65c1a97ad63fab49f46052060", - "1496": "09294c87a76aecf4f3f6360fd1d70d073fbbca8fb742f15f444c1e33a914ebff167997eae641f7be5d0c5b67a253ba416ae8b9f71e6596366aed1e522efb6ea8", - "1504": "b15f37072be93b6d99b13ca2b09b237c61de5f312f77b4941118805ac16d725255d91ce45cf463c8f18b3488bf259c56d1b4678863a9745d91f383e2745838b4", - "1512": "c02258c3aa2ce6fd8cc1e8346cc9e4f2f63496e62c1dbc6463bfa496599ab25ee888bc2a45548a918dea0029b7c944213db2b19e0f82bfbb8e738ed288963f38", - "1520": "3d37ff44385cab4cc2076472ca61558003f81300f9ba87ef7d9a15c1938eb9655fab45516fd52e26bf839bc44ae2cb1a2eb991e1512e99554410a13c5470553f", - "1528": "eb97300b5bf0d06048bcc9e85cace11cd25dcab03f087e1457ae1d28045c470455a76dd17e308d9e0fb71891ce34def93660e244728f105f4a7a362bec7cde93", - "1536": "308c9cf646d8bc807693540c2ee2214a64cf13a33eb31fc69f4dff053e3157ccffad96a044fa87bea6c1b9127da198109dc54cd1ebdb213c60c3939e70a89800", - "1544": "35423155e25566b7af9b536dee6afd9d6fab39e0781932409642464a099d25129a7b37190f35a47a07a19d129b45ed0b8bb6e06f6702885b15a9e36bc5c73592", - "1552": "19fc9f019be0f47194f31842ac778203a4876f2943eadc9e1610f852b616526f959a01ce063a77bd27a008029e35b49c1d748ded94810c37ef6b6ab70c7ae031", - "1560": "1846daa3717aba42f7c11e5af1c32d2e19645294983509449e96818a35bed6b30f15f7a5f7bb1aea64ba77d913793296e11a7c42755f1499d080baf97f9838eb", - "1568": "a95f1c4536e40597c455bbd79fbee8da673ba1d7b8c5e8ce8b1a83738b31d18895749755239301fb5a6061d80163b5f943011b3879dfa39ed0178dc8b606dcb3", - "1576": "14e4b7fbe3bb197f122e266a1ed30bdd4deaf67e7dc7c5da9c8e4a5233795a0f1c339e3cc83dc8847f710a26b10428a41d233046ed59e259b2b99771500708e6", - "1584": "52dd637553147094d71dcae3b0d1061ec931c30acbb025b9cffba71b63781e8bb2a37141b8c00bfc507693bc2851653d7178630a9c407d69a8d4424188ddf25f", - "1592": "79de0e2999df5776a0d57965e4992fcf985eaab90913a1a9d6757894e1c7c6cd8299463d2bb89f9bdce233c0606aac1ccfced235563fe5f1084a840cb879e690", - "1600": "082cef1c709b7fa9aeffa19cce8efd59afe02d2496c3581d9d00a26c06fa57a634937c2add5497aa4aba4cd5ee28db54e1edee4b5a2e2b05acebb50064745855", - "1608": "fb03dcf4d84a9dae5d212a7643702bc8fd058f94063fad3dea24a3e1bf29fe756d9d9828731d3c603f03b7fbf78716d3977fc8e5c3344685b9f7b28bb0900faf", - "1616": "5146b665eaa82b075fd08bf4384ccb1d5ca6ed23a1bc1e17ab866a89f22c39a920755099d9537dcb396dd482c37a82a41f8401e95fa526e8ca0344cebc0269dc", - "1624": "2d11389697403487a6caeafa9fe67a056734e8717dcd267b2f243ec345f339f7d3c366808c404fb8a926b5287ea34056f973e93b49d08b8cddfb68d7370353b8", - "1632": "b9be33ed19eec6e1ef3e5e15c06105c6329c2003a0e809d1d8f39819d309c3f101b83a69ffffdd91cb4146c4f0f7af5b6ac262601043c4d5c5414192b5d1b13a", - "1640": "842e3f576a1d749c9bce25698a9394e57b44e77a7d6e787398bbc92af8df6902be90b95e3a8b22ba24a966b96dd2b55df6a4c5bd9f9864869e057cdd16684fb6", - "1648": "5ed94f765098d6eecf5b30c878dbc06c3f027e0f2ccd97ffc68a39dd55116b98170789d09e0eae5729c2cc81b11fe6e1ca3dcba4b9c69f0a2232e45c1a1be4ee", - "1656": "270fba2fa6c8ab3151b00d9df5d30b3eca6e04f234198e2c848d6629224e5d01392b112268966c700dddeda9f92c088ad077195fc803e2f6dddc70fd9ed31af5", - "1664": "cf74d3a00811dbe3ed4bc9ca9a3ad04b93fc4d59d62f5ba8ec9096ce26ecaa90d3bc5a743abd5c45568384929058f04bae8de9086734b4212aa130ea0d0abdd9", - "1672": "d04f80d399d98ca7e2691a2de1a81244af8d85b05979f8483255168110d0a6eb3262a734d4190b3b549e0710dffadbbc5a37c836fa821a1a3d1ad736fad59eb3", - "1680": "00820e4075f671a83cd920865e698f652f0241cacc32bbc387f69ea4b5b875ef1865fa15badf3fd74e43f97cd0a7b151d5fa3feba6b0e18efc28ea0fc54921e9", - "1688": "e73a49fe33309f72cd295f4b1d9db1ec2c9c885748efeb2c3abb49ae3f79f45bb2063a6567bb98cbdb20fbc04555cf08b3e5c99bb3b43397040f2e4d4f0d0fec", - "1696": "e1bbc33431fba9dc6759970e5c814242dd961f6a9e3b9ae483b81f20c2c0198feebed0b0feaaa82b029a165c1634035dd119d8e3923c06dcfa40b9b3e5da3605", - "1704": "5c0821b4cc15281e662761b83aac284ce965a9d1e7ac65457b3a8bbe7e7365c4a5af7376af87eee58e50f3231d220b71b2d4b38f1e66aa0ebd2246ec68a14c0f", - "1712": "5570a780ffc1463b4ad78a6837a3edf94d6ee0cf0d57628a0cc8e32eac3b0df61bc3917f9b917538cb2d9205e2142964042a02691337fc1d033a7de3fac8bfd9", - "1720": "82c76aca84897b56de0cec9a30b2a1550893b2c1479837e4cff51af54c2d8344e95a41825b59b19220346b98dd8037ff57e9b044d840d71d4f903a16380d8134", - "1728": "50629627cac5ad6b41340e5966c1bb247919019710e1c77b9193b0f9867fb49e664e4bfb380165883aff3daeb703ede38facc302950b3f3b65e6709fc5f19d76", - "1736": "c21e41f04acb3231180461f2c89c0f003b69c0088f6ca33da9a2841a6013aa4e67f7cd301084ac79359b230410794f1a82d6a9d3c9ac318b572e836b58cdece7", - "1744": "963fc1bc4925c2c80f1f316adc7f1aa60761e377228bf3cd8e239b0c379994e4a3c7bc0167665bf34b07419cab4e519f3cc406dded560d0803345c57a69580b8", - "1752": "b3f389fd9de0f64cf7612b9de9222a629200bfe370024bf6a9c6994b480cb676cb9762ffe829a31440fa427bb7118b48656e19a8a940a478142fb2d695ea3b9a", - "1760": "2ecfb66d11c9388417819a2726328db104deafaaf0b8bfee3c0fef544b0463cd82489de17e1df0856cb3f112deb2dbcd1141aa312a2142821f205395d78c8fab", - "1768": "9fd8876afd65708dd8306808133a54fe74d27040a76fc0903bd047d6a39c3cb0b178f07ed52bd34ff3143d029503eb06f8b4d2790984b7c22a0db086fb37e5ba", - "1776": "7643ad49d5a2fecc41ec8691aac4196d047a706a13205c3730faa3764d7aea75651944fb885a46275a62029db693cfff16f67759dc3eb56237bcd31aee6091a9", - "1784": "3757362f5266285dee2d57d24d7e82add6b1e201f6c19c3fb68547b6484e645363a74e29a7a68990d3685ddcb02d4d596284888238f6466a760565e806f092e2", - "1792": "21c158dd739b2b22f3597c13fc3eaae7a9c7ad143baa2c0b44021fe96207a85ed06832c90c13ccab7c560221dcdf1c575ab4d98fc6ad9717b71f022a89db54fe", - "1800": "887fdf2954a0413f8a7931921f0ce3a7b1f01c8e121ea11c687799a5a77f78bc69828f23644bdc0961f5ddc17a7a21a7bc9361b4969893e4f037f39b60394acd", - "1808": "3d61b303b111287c097a4438ede201a003b200b9f563d01693ae5b88bb70374f26f9b00d32042a3d93a59ca07c3546a27b056f33579df8f2a744a83432bb9bf0", - "1816": "036934bfc71aadb4ad9213cf4371270821faaac57dc304193bd1d40ec8bbd23e60551d360466738e608f91a766b43c224e6572605bebe2b6f18194b31ef61261", - "1824": "4b670f907a82d836807a48297dd4d73c3efe7252f77a89597cbf590206d042ab7b40905d94c7c9b81d93b43a9b22744c6793d5a12837e48bcabc1222bc5fbec0", - "1832": "bb2abdbafd3ca87ad91b43215a40e2849fa23dd31d3f904f4047eec1f9e5c9fbcbbd038d311ded4aa28dcc7b3693e376deb783d5f17c9f4dd3dbfb523906eac2", - "1840": "1d110d8be14c1a4fee64a94b1137bebadff47fc2e60e57b0cb3f73335843d9f4b5fb2829aff5647b5d804de5de6989ecbfd792eb70c1652a9035993cfb00d350", - "1848": "492a6886c2533c6a7800a8d21f4997d8be465556d695e04bfdc7699462e2499a1954d990244584b65c8ac70d87083efb72637a4e926e3e6d93bb2dcbf7ed62a3", - "1856": "b9195f9cc714a3cf5c5085aa71702f41108b4337d437633fe30b2113ec079bf6e5f2e1f038122c8993647d9ce004382d44c654c2b09e6283463d58f7ecd0f085", - "1864": "e240f362808a1347139c46ed25259ddd4475384a4098233d0a8996cc7a9607b6d3d54c235a109bb1d31ce1710f60629d4b818d0fbc1e65fc92110a74dbf6df42", - "1872": "298b1f482368085dd9af7882c9f76ff33dd1f917f4929392328c4934b488332476a8eab5a65a5f6e6faa2ded0659e69bb345b4efbfcaff57fbecec5ed5a1f86c", - "1880": "11cb831ccb69933122690d47a63afda32c4233a2eb086883875d322e798cf9c8ca3380644610f5ef7eab5860a58c08b0ffed7aa9214d0a990cb15fd329d007ce", - "1888": "db0c450b0b16fbb1d3918bd39e80c375eeff22b89c2264035efc05f5a2ba8e947ce7baa2ad7de76a88e104d65871bacecbb0a9af313c53cf6428b04f001be82b", - "1896": "e29bcfd38fcdfecc335d49d66b9cc157b14d4d8019dbe190fb8869e563be26443107e720605abf69b9ca6e71f0c1f815a66b7d6533b7c42bbf33fe995a921bf2", - "1904": "b19d7ba5bd002112dedc41cce1579b39718d608a887681e7b88f2fdfc2e34b8b3850e4a7731e278d29be1021c9a332f74e4b8c7bc58bbca80750c5f7c9693a6f", - "1912": "c4b8c9a38a69b52b21642b7624666900e8234fbed39eca132870a0f1d95f4f47856a98980411fab0db05a04bed6b9b4ff820d01e902130f0576f896202d58cee", - "1920": "496159a7331abcdf7e1764859f614d2cfe9a1c7a954ed9865eec4ea714304b1ac9b5294fc5dbf2594f29c31c5ec06dfafcb2694f15de93a40664e4c71707d3b8", - "1928": "862c22bcb07a2da71af03c0b4d741c8190ee3c2c96eec5f9acaec59b84a013f9ae0231058bc823450ee0425ee60a13037779e4631cdca14db3ef2e6510b0694b", - "1936": "8f9bee80250b39d0958a2ab40cc0fb9d62ff0014db4c082943aece412befa89dda00efc57babf274bded937fb6f2c69b83f41f6aceda0f2feeb3c581e3de6753", - "1944": "41a5f2a7dec9d1438c6685a35b05dc5844303f5eb95cc6fd14a38d08836a7a45320c2255cf69a925da568c1fd7edea5817d1fc4264288fdafdf22e2366719f9b", - "1952": "1aac602a5c22178e0329723f010df4326f2f118be4b0608123b028ea678a3417f205ce1f701678b46f33851648f3649f96fd4ef5455239e3dbc2112f63292eb3", - "1960": "cba336ce7c6bcccdd6e0db6092bbc43f24cb8a75c039c8c49aaf5251e5eb427f8ec92ccfbb2099f838aef8860f893aee82b9619fb9a64a56b6fd99bd3804b7bc", - "1968": "f877388bfc12a7d78f62fb95afd1e6aae20176620695719c09f4bc9ecd8c1653eec0c7a1e208e53ed0168fe2f578f8d02630c482cf3b5647b49e1bd93d3b4b62", - "1976": "be6fc76b88e88224869ec104b4e7508e2cae9183a238408915c5ef856b5b1a916f2f12f8a8c9b6bf3589de9ca5f8c42686e6780449d0d61655692f38241aec3d", - "1984": "865222059a719314ed4bb3bfd434fc9303659d6b19e7d288a62afdadd17ea2cbacb831a66faf37b22774ea76103f64f26085a78d758c32241832e46181c8fd10", - "1992": "e475d701ed2e41d82d691134e595c783c1e5c12b2a6464f5a59cfb4d2f976e39cf4ecf833daedf207ae0ff5957b3e820e5754a3de1ff376f932a99e00fbdea19", - "2000": "770c7aaf9ca5aa5182fc22ab1bfbadfed42962206aacfb5d94c4eed9e207e47eb5d2b72aea615556ac56e926050f4f751d6272ab3667020056153bc58fe698f0", - "2008": "9051ba05966e1e61b2e929981aa82570f9afbbd7c9bd93106ad10b5e771b59a2f2457d564b426f606c349daff10a76bed10e39a84e615af8d94a9c3ac62f3c02", - "2016": "c3b6b909c62a9df291274cc3aa3fd4ee762d06097f02994bce4cc655fcb2a6c42b8f0e4e2bfb9b7870393fe665743c7357c6d2afa2f19005dc29943e34855b5c", - "2024": "50380b498f20b98522db0a8492a5116d61e8ccaa50f80d8b5e0c91eba0361e8f959db35cd2824777bbde3f137d8d27ed9daea90f5d1864c3fb00b78bb8b2b26a", - "2032": "d61d8b5aae875321eeb39f20cd03b77b9142ae10faa67629e40be26292d9b36a4a18b3a7fd0df29e98935a475cf67c2ccf33301578f3f7fc30fb1ffe2cc157ca", - "2040": "9202c87d231bdda09f69a4400fda3eea3efe01f1e59bf15ae54f05f05d518cca8135caee357d356aa5a63c0cc06e2ae73ab05d42a146bf521328a268d04191bb" -} diff --git a/pkgs/pow/corpus/cubehash.json5 b/pkgs/pow/corpus/cubehash.json5 new file mode 100644 index 00000000..0cedc65e --- /dev/null +++ b/pkgs/pow/corpus/cubehash.json5 @@ -0,0 +1,260 @@ +{ + "nist": [ + "4a1d00bbcfcb5a9562fb981e7f7db3350fe2658639d948b9d57452c22328bb32f468b072208450bad5ee178271408be0b16e5633ac8a1e3cf9864cfbfc8e043a", + "5c3019f2abc3471ed3a19648071cf2311503dc4202508f8d3efcb1023fd895505c4d634c1ae9d9f81de6394690366154c715bf8d68242b2c64e1ebb1e538b330", + "7c38a32185665d3806ff1d0d7b278abe0b759230e4db6f78a80efc2cbfd50ce6aac477240e1b38888156b4e00946d1fd8e2e853f88c0ea6e29d4326003a67fa1", + "9d626b36a1e9a849b5f1b2594b53f761ba3b3e2734cd9812849b7510fc284efc0474e4ad40de57361f695f15b8d79a7f7c8a3ae5c48ac94900bc2132340e77c5", + "1f6148d7dc4ea7d4bbadc89ccd3f2e62232ad7ef0d4964f3fb69d62ab2a704d93a3faea98f7ec05eadffd418687bdd337ae61c3170595642ee92a3cc386a241e", + "010f8501c34f05f31c606adf2b2561c6e31f8580d925f9ce077533250ad7c669ca5b7a56ef514728ad402d854166f80bf061e8f1b6901a2112e0a0828276c5c8", + "5cf5a9486b2c001a1fae79cabac4437025408466d885c95a3ea3bf171e032335070511e940eede3429edf976d48bf219f1430ae85a098cd46cdd29179698ebd1", + "d28d500565cc5c80a1679b3f3a4dd630e0ce5a4dc9e54435eb46e7e6665cc934f1da6750d6f63d8628d3d5d9aef3b281bede77676ed08b680a6a3884761b0e41", + "19c0b2b2dfb2270ba7a68ed432fec3c60d030676538ff8902f52fcb039ae4960824f29e25dceffabc1d95d6bb245c533a6aa11c9c1c9e6a805e908a504812014", + "dc6625803333f60abf81021138199f90952498de90d4a1439e60ffd5e59d8601d65606979be34a8e0bcc28b16e921554a112bc4d3a8e2a30ff739c1a953d3cbf", + "e61e387e8ef3ed04630098afb61074d9c415c5de407a1824c0d1afe3f778debf2d44c9ac758fbb7c16d96e5182a2f3d019e723172a26d82c67f908e2c8c11143", + "c0183c014733027f1a6623d754163c514d6856679751767813785185dbdfd2df05a01d6ffea7872419c623431b576e3a6e6dce3b2b743423e6387a539627ca8b", + "ad3616c786d93344daf6954886fe42e60247ffe59a2cb97aebe368f05c7b60e0dae5170300d6c78298591ad561cbc2455e9b16b67aa03b57e8f15c19364ae486", + "0e6478d64c783388ba2e68606f796debb4d4e1ae822b25809f61cffcd3c59074a3bdc7e0b090ae6a6bfb9e0f3148725b93d0986b40cb994dd5ff0b2bd0b3e4fe", + "eda343fbf0b72ab6f6b5de23f29a8ea0fbf1f56f53cc73a56200f580f644774ad9a0239d8884909cb7b2880da73709cae0a141da1480b4cf98021153a915221f", + "5fa2ca1e7e4655b5137f5fea07ed9a9551c968bd1c0a4a95b9be0d6d5b3de2e3fb82dcbf504580a13669415459586ea04c23fd15d14e9b7e1e32cfdca64cbcab", + "f69afb6aaaea697e93f2e630e679b6c73e70d22cd0efe4bac8bb6c20a25b59592942d839f752a8970e71c387926f7d7a1163186c638bbe2f5a798076f37aa5ad", + "0dc147e05f4694a991bf922a7bb72e4f5cd6fd665cd880068c2f7dbebf93dc7fbbb972e27664af40f49431c24d1b5e1c86425c5d10877dd70a1d4fb856394205", + "d0dcabe45e5322a9af69088fd0415322d1c9cc5f738c6874cb0cd0cf26c34176fc6f488a897315ecd7520cf2fd9560bac4a9be15d362a3809654f76bafa02eb9", + "8124eb591f2768f916c627a7c0cc71094c491319198e83c06c77f69e8e7e7b42f2fe1d7e611461cd3a27f38d2d4a89facf30385ffc237c18c0b8122b25782208", + "8f0071c81cfc5f0980a676a04cdf5e14088ff959e6f91c6c42a3e3317bbf69408f9b5b0cb769afb6e82997b479c1f61328916a79603635ade4bb672d428ebde6", + "b56e2c79bf9faf3e9bba56dd9d915373add307dd3b29f841f416a97b5c78b572699b999ff4c2e530849cdd979e5d0f4d01b1f11b2794c8d4ed7d3d22d5d41041", + "a153b9d9504e7d475f03424b12a433d9b9534fc63b93214d314d4c40cfb562b3d6df2c7aeba3b6fc0220a950aefcdd03a726207ab2876cf8bd515f8392ccd6a3", + "71e0d19e356c2b9be2d98253d95d324d46de798f06d766f4e73853e683520d972ec2bcaec1dc21d123d8d5954bca6ec8a4ab0a2b2acb679228d1c7d3d01d450c", + "4b562c921981eeb1275faf953dae38e8ca5924165bb2b6f69fd4fdd88e13098e3f59c4df304df33ecfa8c59f424656d39c3fdda65f272be1da64bec906d11021", + "6caa5aac47dcb5fc74fb534cb9da86006b45572b36b5b16ed57a42015f6493a6ec29f9376b42f3ff68b71f04824252a11ba9d822e5facda2915baf0045f87313", + "61b3b7cb6bdccbb249d2e664c29ec2213a4d557663b73d0564066446952f53e4f815bad279fe8b954ada46fc365d64072e8292cccd754b175eaf6c9de0b8b9a4", + "76c657a1f8cf7aa599426d71a30a78c3dff6b62e1d0fa5a69d9c470eff0c78ad46d8644b1f08721b1e7ea132a21d6ee139e7cdefab08c7b02854d1df9f8f7058", + "f3064c524b776a87e30a8878a1fc486c72c542e54df459f078966d317bcab8d93a9b4061497652259eaaf9c8a0c1291f40a82b746fb9a336e9496c02b1479ee8", + "32a4a5ab43ed41691f893b88cf08145b89822631ed28d1716e4004bbb6e4008a4fb01f922598ca918c38ee297498840bd3987b12aa2ccbf201b37c6c2c9c28ab", + "f481bcd15d4e03e3722000c857c88aa4e5f83e475da8fd5b67934c4b57dce2cd4f177b669d995a44fdc730929f4eab73ed114438f38f54576c7a16fae4c6de40", + "53fa007fa9d17a11388ea1968baf0dcdce902de2c0681fc0c11c8eb29a496d57321f40dd817294b5cde06dfd76c100203f9e90b24b0ad90e0c2b246d917aa6c6", + "b08f5f327e663801c426c36e5c027741c57d121d03869db8ddedcd7e46a348bd00ca42d369dea850e281918f655d5dc52f22aa4b26804f5076dc6e4b117e18c7", + "b34ae4a9623660c7820f3981cc8314f75e1e5f6c2aa76610ff1156f79e4f63799024fa38f8266d06e2e0c729e31fd1bc5db2affebb28563086ea5966a5d090c7", + "0d7611a49ff065ca32ca90ecff28f78e09a5b67fc4beda8a5d923851f85fd79480dbb66507310cabab2a3193ea259e005c42c02ea810632fb8f2df3a4cc8faf9", + "7105eb01adc137c2ac9f49e842997b3ca10b5cfd7456e4279c737e10b92da23b6f54ff75581f8bd5dc6632cfa5d2ab3165b5f8acc8ad33a7c1e797e2bffe1862", + "46abdd366ca857dee310c929a0ae703a55f1332610e9b6842c0af445adff9f381a3f07aed81ebc55d2e874f7be1df554ea6d6849acd6df4dc147d87a6dc10d5c", + "a3df8bd258cf72a778de96a047aae67a7f56b1949709d8e2f7e544de068e4bca443e56c2334dd33cace4a86a22a30d1d63209415ed45f06141be5de5d12f704f", + "f6908a426773a832023bcb85b69cd9fe9453758eed49a4f8f07d3c5e07e14fd6be340da20e4bb142ea4ea63943d387b2d46468f9da2bef73d33cc38f8dc81fc5", + "b2625842148765064e34edcfbe067d7de1cae20d042d4f63ffd11b9e1147b6fbb5041f6a99160db836dc3920f6e8fe36a1ac1e2b208dd2058ba9665c992a9a4b", + "e6e3a69edf733a9de254f0cfdf68c16c895e585b8a9c08badb041b41b0b2bb5fd2c877e9e8c4c12f89195cacc08602bb407afa9e770072da43de1c4b6f24732b", + "8c874613a95f0d312182d926608cbff06bbca171efb9038a79fa013d86d676b2e21453772f8995b2ae0f770558a6d6b4d54cb5933526f9753c2af65c67c96b0c", + "41858ccf0674cad0d8af849331a11706c43e41eeefb8a83a66c17117780ef2c40a52c3bd1de699931ccc0f808826231c9c281dc0b44069c944ed5f01373b3e15", + "914d333b66cac29a9b361acefb9ad36a832e79272d2a1c8628349c97459f24e52d65a4e79875d68b0228e1466a7f14a1c6faa97a72b67c5e06038a2d62da4b61", + "c4fc0813f8eeef7123eece7565f9f20ca12c3ba61040531c44a70d22b6dfd4b0333a6a01d794bb7fcd2fa9ca4b1de4f17d695c6bc36f41f25ad8fef786bcc8ee", + "77fcbdea13f141b82d46a190297c6b3ea793fc9e1525b1a3ef69b06446a1ff319c5ecfc1c1f47c1f7e244019c41da32cdadd6ee31c99350d07525a6882d75373", + "4d4c19be6f09ca556e03f68f4bba38b79367ae9b231ed72c60f3ad01d92a5d550ae7173df0c98a7be1704c93142cd5e96c64f33df5de1c35539536b41e6277b8", + "5fc74e7d4de6948fab93cf3704ad8c109ffcd56fe784716fd739daf5fdd744fc9c60783b9a927838f911483bea92eee457ebcdce239d5044277add53304561b9", + "d45a09012f9d91c6700c5d0903c2cabaf8787a6a8a8a1757d2f54e74bcf5eef389e96cfbec5a1cdac527782487a086c73d08d717f79f1fdfda91277ae1011fe5", + "07b5078bc4d32bd865ab48505f4331a959402d8d49db25e8df73cbdb3883dc038f6c2acc2032335e624f62edd0c55c42ec14f9bfb29cd8e0f5e6d711641e39a0", + "fdfa3c4138e934b555c9e81a2939072d85afdeb8f22718f0371f466e6e55061b4d9d1141f38aa3dffff3cd8895db666177a4729c6796e0f14b9945ca9386b716", + "e63bc8bb02a06ea39c1dc900ce9e41752ee319c426da6695e21b9c79a03fdac7cb930b5d5c4813d55f2e0764a8e73ac2247c9dde24fd3286d830152815b54e1f", + "155cd76b5054641fc71203050a33c591b770fbefcd1e778f31a6621ed666cad84706c822023abf2b616f28afb9cc9405de74a9a8b6e4f263a7da9881d976b6a1", + "1cf51216ed42b2d43bbe5b0e4151dd2b1dcd56e7e774f62fb8141e5c9202004c9daf6b00b66b39a5b31a86d744903a7034b6260af413f2ea33de5a26b680531c", + "1a0e6fb786358f5ffce648d1f02031185cde399e067cf24609b78a32e1a433df952a93de2e363dadabc7c033d0fbc7fa73cd4f77ed297b1bd19785bd91557bba", + "0e204032835eb05a194f0c62469eaa4e5ccbaf3b0f1da6ed54177a3597c49add73703ef34311123d0fa1a2c440c1e1b202fa199b700cf74d89b2f5812d3436fc", + "734c22f724bde95f37c9eb0796f34b236c28347735f75694392b775354021f8645d03cf80e6c576e0cdc1a9b54236dee20a169d2fac3e31046e39beeabe9c5a2", + "61df36e709e0d9cbfe9979d4a78f3f7557ea7278d3423343c7ad815cf6baf4cb2c704afbba69436104b2d6317e561e18123aa15abac48540a43f78a5bf7b32e2", + "c3022b73357134a11f9cab79d24b00ec3435daf4a890855de9d8eef100234cdae51d062662dcb20b9165876880b937da6f6c6c423a00c503a1b34e160e44bf01", + "e07bea9ecfa80f876939c3386139a3a2428b3e83f9215f630d18c76853c2289421c8d9020693017aebd633fe4e39ac815836fc0a3a5e7f92aa2814cee20779b7", + "43fa96bb4730c2a7d5f9873aaba3c190ac9110804ca88a16860687ca814d5dbda2a0ac352ceca20a73c4b092d1bc99b4a791801f03ad92002065f62c0b8d7e51", + "8a08403988195aca8b88a9e4c13d7ed6f484ae11e007c486bd5e0de32a1154fb832568b19096b33cdcb278b8349da4899e55c8ae2ed24774598a6e89b1de062a", + "a83cce507cd67199633911a22bc36bd2de82b7f898e5e79febbc48d435d4a24245ef0d891b0d1c477153174db8ce4dbb852680375fd965334320099ce80c6119", + "32f7f7d61b6355b366e1f643ebd1fe862586373133857941743e354514dc1f5b710a72d3259b01f06fbea480db2011f5ef6f96010e28a68ae8940a707b1dc45b", + "c096f535cab880f0d77d6aff91fcbdc863cac17fd5177122e2b9c5a0063a6182dcb1f0086618b80fe4c02872dc3ab6ab8cb2608d19d904935b392c20c520fdba", + "59c84e6c6700b1348dc93ab83be80e5f5b69932271b6a99c2748899036d9e7ba0a242cf69fd1838b6d71971195b077f0da9b01799a83df9fd45f5886bb51573b", + "375bce3c301e0016a22857d8114c27ede9f33a0890e8da7f35bae0d72a5dc4d72f6d8e115998466c52bffbdbafd72206b027c8001311afad0e52131db8d6d869", + "f20a66d6187cba71dd98d84aea36caae0526d75fadd0ec6484e712dd8f61a378b647df2f2f232f1241e195602d5a6ef1777454b829448895475ae5cb31cd05b8", + "37a4f8558cdc5ddce6b814f359dd6795a76fb2f7168e4b7fcca716857ecf797392b72d0dfe2ddbd180e24776371cb81f9637ee31cfe561ec865383f114600504", + "ba94f20c7d122e496c465cd772213ce4084c1eab018583ed7e2cded9ad33e38412bd6e6d7b596723bb63f0f9b8dfb862119eb67306fc6a4819c73c5adbd1fe4d", + "e138759df0f13b7edb95282cbc01e12251caa3952820e51378882d2a6683b55016ec17c47b6691df0c108c96a2dbb545bdb2751bbbf55addb44f56778e5d1c53", + "4cb1a4037cfdaabd7618cd2a9b6ba369af9fa4f3cf8b0f0d7824dd05fef416385a91593e4a09eba08d9383f5fa2b244770c91e0af577c6c8a91395aa14b84277", + "d63390fee1e6ff05f383a275ecbad6224fd4ef119bbb884e52fc4c72c631715f3f94888978e13289d986c2da57eb4d80c33aeaa35dce7c2522e3faf5c6e85e39", + "48039d825e067ec14d3eacc7636f1e6bc0c698f0204bb9a748b5e74e8d23a489977b657aa027f215601279f93dd579c90de6b329d7a03fbb26bf661dbd3b695c", + "8b8720805ebd58135a8ca966513fd2f4122d25da95a0095820d3d0e4e43a26a7d255563bb65724293d60a44f98656753d217aa6f4d517aa16b7ca86798aace68", + "a4a25122b37deb26d7d1c067a7ef7c1977f521fdd8abebb94595768189915ddad9797714fe00ab375f6aefc8cd565f208b3eacd042d65a002eaf979ff9dead1c", + "ecbd4cb00824a4dd4ead377f977daa6fb945cc5b38446f3a5a804afae86c3436c7298f74e7a6da6cfe4e6241ee30856752f5022387dcb90be1ad6a865dccb046", + "672f798ff67a1a8d58c379311ae7c76646103b506bfcc65e7af0fecdd7d564b819f278d0e26e2c1f9309e998c851fee7c6d444a132ad9825a9f75c8a7cf35c31", + "11179f51a9a5f2848623e30f1ba46a8a1ac8ec4b18aff6984c27269f1c3493051f82e7ca604bb3f7ad7aec48aed71792915aaf313cfbc011809788821c8ef3a2", + "87e30672bbeae34267c5c258ce1b985c4b97dd658a1a4cce04f298f47127649cac1eb34cc959ecbfeefc61ca10fdbc492bea393019553663bd8baec9318641e1", + "d991cf937ce259cb4f1930b0ad8dd90913eaa8fc391abf6f6b3b68a95631cc352fe3c5e61b990867e31101d87928de59e4de5a2e9d04463a47c96a64b4b02c84", + "722e0aaf59f324bf70861593f723e1d59166d63c8f584e87a9474bdcffc70d10ad7e638c97e5759085e0afdfef836b423a526a5e369b12e78a03d7443d799b2e", + "53ff7f907cc3fb0bddbcdb70d415b9582e6787bf721138175530f3b17fb1648456fb0ab43d1861067fae85eaa9507ed48a75fb7e7d58bbb214f5c933d1582d6b", + "1450bd31e41ae9cd760c1db7736cbf9c659119e70e37474d54e2c525d394f8dbf48957effdf4b1ae74a1a7abe318a7cbe5d08eea1d4745c833073c5513c325a2", + "db60ca03b57ef7191cd1b7340abd51b8392f65658fa9aa02dc15869f6720a2c24038c8fa31430755cffe2434c52338951705c3c6bdfc2598953ce3e159aa9676", + "3efd98c7cb04a6298a689157bd87b72c8414225bc1fac8268395d5fb3bb3e293c699fe8f01fb23f8b274f53f7472d931d51941817d543217d5470afe3481fd60", + "a84f61dcc0addfd66a80d61fcfa07b8a1ca8a12d228968ccae2fce2ff6ae16f1ddf646572f6d45160390308c3003495b7a634f50d82c06a9b39ae8779765d842", + "0fa946ae60b7447e60d137206e37109179ae5f9e3fbfb5918844cef9273c2882dd952e5060d49465bc14a69bf2d8080f502b4c4b586e44946c2a9cf76ecfe459", + "9d0136827055ba10e8a388606a66707e4f783394e098d6628c0e0de3978e1e3ffe75735f252a2e54cd676d1b6ba47a8645cd0b39eb0c96b36ce8ee4f34bc2252", + "2e887d55609ed1718170c03807524da1eebfd8f7e0ef1cf8453fc85078e850f4115aa8a35d48a662fb7b63fcecd2d0af43349b36d4d0f04bb7c3c671a5c1033d", + "f5dc28982b3575cab5352fcc9669f51a5dbade9916d594b3a84a1b40b8a8f8ae627c3f980febc9d1b23967c9754e44f39279e1473230ca1887a7be18e24aa1cb", + "3f0240dfa716e91373c353a8c0b9a19e5bee5b7c8a7e2c954f0267d70ba9df65b1943c6b45c5128e1e3e95ac0e1e6652798bf3500ecb9f65854a0b3c23360791", + "c3816a497d965e045730d735173ea8bc58a1799e8f9a6f067fd7ad60ac41d005e792febdedcebdf0b68b3800b0e65491fc23b9ba03f072490eb0d67d99596f96", + "a3cb2d72e889ecd8f3ec28c4e6dcfeb3288bbd2d4f97d79506c3ccd34a604bbf212f97a8ca93df393da6b014c9ea88d1e326a971be52bad0ee1fb947eed9be75", + "24cfdb5dd7d01e8b64b238b64ed2932785d0f3726f3b93d8797ac81c450383cbbec226c67a45fe984069164e8958ee116dea5989fd7d97ada9105296d5e18093", + "5a0c0c1ff96e61c11f4417196b1a2a102850296438c18a3661ce62c239f46f3f9870e8f04fddfd1a4773cc8fbbdf9cc72368db53cacdc79b076222ea51dedb0d", + "60a2026fe3961e92e92d660a1fe588dff25f66169ee38b6ea32fc4b68f721788aec19e50aa773916a02471d9a24cb924b677852f2ecf62c07ae1b1cc2a99081f", + "1233b5c241e359d988050424472b40a225096128e3c748709a989ca178c4e3e5767e8c7ddd611a42f007ef70435fb649c716c40496c81c84bd37b0060c400f16", + "a521c50047f9dc26f41ea900c76cccd3fa47d19ed625017db9e38cdabd07926731c02e8668f0e40032fdd84b02745c5b70175e4c4f475c808cc419f8fe59eb80", + "405fa20cc5bfecf430dc2f7d280eeaca01496e7770444a693d57bd97f2a5db94f5b0c73015e8d518e32f8249ead221457d0403178df7ba6b039470a26e71d95c", + "1c13c5aad8de47050442fa1a25b951aac70eabe9c515fed7eb2aa2fbb6e28aa26ca4385b8484964f9b9b305d6dec7489b8cc6347a1b185efc708e14022dc849b", + "0d122fec6a6720e9dfae023add66501cb01788c7c8f7759aaf515e8803094fb6705b585e5df547f605d74dac1f82b3eaf0318c40ed3c759c104be38df7a1c7ac", + "0c7912a32638b042c292c14485f06fde2faf316dbd7cffd24dd96ef85fd6c65904113b35b3c763ec0ac7b34c9c76b344195851935da1ef888ba4be36b32094b7", + "b4eee823079bd1723c9c34527e6e86f458b7ef72742aa5f292166799839577a44e5a9ee98058def05b6790de6c7045ac6a7cd033d0c55386e071cae26b31f2b1", + "36273d2a6c23473e629490e349c46001436b0fc09ccd29bed6b64ccd00bf66277ee2278964a1c4e9145980d8dc9ec34e99af4710f3869b9c25d7e9e3fe1350f3", + "622f12176658414752020897d72374d190a50d447535d03b13a2aaf8586ff71d4eabfaa5c1e638bb740c01c3eb1658f38d44b8e67591ba525e6e10438c5a10b5", + "508bc9907470d626780cb30270a057474712b6072fafbbb62a8106d6639edd4be1f8dfee03c834e9bbb063ac37bec80d6b9f9a3b8d6cec7ebc1f42964e5a678f", + "840b0b9187c6b985a095193cb588768d1ade24157109e88f5d5fa474014c5e289ae73f113f9f1591a1c6029a895e759420bdf6edbdadf3b9fd4971b67b85744c", + "a69c951157eb5afaa066096965e7eccba541d0a126f71c80587291126cc18fb1e735ece2b0a808c49a882aa3c6f01933ac090c71f75a224df57b5f95b68c7bf2", + "73fb84ffbbc431b83e39f08d538542d5789d8e5d9358ccb4a8d34384b357734bb1a97d5fb168e9e1a20f23fed053c16f04c5514ec4c2296313168ec195f1e77a", + "179b42d2496dd553903f01daea88b31f8e0ba27be6a1e46a6b314f4a484fe6bb8e823da99fb97e5dc87e2a25e4ca8b48dc59696b0ea94ebe293cde8be27c0b5c", + "f46e9452e19f9c3d538df188f434b9d03e122534b04a52f70a70f679ca5af3d7a47adf7f236fd96d72f57623d091497aadaf19ebc1e6883449920d0745443dde", + "55aceebe0fdab2977364348a7627970d780ed5961d4f2e9cb00d56702f8b874c842a548b91b5cf4f066970e2250c51f5f577b5ae265eacabd3af9ed9606c7832", + "41ca51cdf4b55cc492babe3878562fa94c7a6a02c283401a64157399d37c1fe26692ab70b3c1f085d6f0550eb7e41e41e231218e6288e2e7c4352eb030e6ccca", + "15f74e82e45afc6d6d88b1309b8139fbb1cbfd894f258ef415ef689a019d9f12d026612a17376d0cdf2dcb1c9161670d8f4f1d9e4a930f23216b55ea80e18af7", + "b221b276b0ddc69f0800fecc4621e91cdd0633e9b9aefd308974f0edfc984b2dc82797f67ff2fd4670eaa3b257d0e918574092bf52a92bab68f54c41cd201b29", + "0c66dbf0a4f22966d1f41cb32b93135553f529b54139a1c5f2ffc89e0261c454f77ff5471f23a4635b0c51d544192456ebf4ccb75d80dccb583657cfb8163750", + "8fb8799bd7bc44d36ee4ffab2c9e1629f394b2ec81296d55757489d173b0688e8f8c42472686275f66eea75fc7d5e7bb914acb79a7e848ace8edf3fe8663ba25", + "44c4e8ed8c3ebaf60d557fced9c922b8a0b64228ec1105e57c2ef2058119f25b3cadb0160814aaaa4ab8566ebb4a55a0b1a1cce04f4705d702f1f283f2dcc90d", + "856ee86d90a40cf1f68ee7b11ba48085d0731b7068db972ced5a8a7f053e749ffc981411ecc4ed94834bc46f1e3a6c4870950d2bf1c9e6d4f26e25965256a15f", + "badc0f0fe4ac2eb307a870f9013f81d4da99355c1f7c77110730dc0fad5c8cb3983520c1b55874cfd47f0b9410407f687cc0732dc434a7200330af07b3267680", + "261ff9cc6eb5c128ac0a8b04cdb39412ae4b3466bdae565bc37f68f384512695d055d3cd9b6c8afe58924d39eb259a8f513de23e6362b26b4b3ad7b705c10657", + "773808b6e69f3e34b706ca48faf956262e695c9b990500580f00ad8122bbb6cb97dba666687fb348c729ea7bab87c27a5a72a4d56e04b7fd67078981ea5bcbb8", + "7b5e7438ec4580d6838f16a6a24000b6a5baf82fe7553dc90d171353b2d5e16fb9eab72e48e297a2c4f04ce99edc28669a4d9c58e1d7ab5292484a1311f5051c", + "2491c086bd98b43bd50ec10b44e1f8049a2ad6da81baa159ba59af29d6b7392efc79276b0fed824bea46f318b5b14a21d8bed2b080d2ed7ee4997f30e6a1c65e", + "36dd8aeed61a906de12e234dad49c1260b50a58e62c9e6217ec8a314793df8d7f57e5037ccda55b9e07151c11db8b851737ac55b854dda90a14daad3a2d6c684", + "8bbb354da8c2079bb39b6cc3d38b6cf57d220af96e395ecdde43a2aec8692e823fe946591f57f16d406ce3460a9189f4115dbf781a40e7e821883f0928ac9162", + "b9aa476ad7e16f299c1cb78e769633b81e13675b0f9c23fbd801e158caaff5e45e9485da044c5b97182b43d401fe290cd5e4b9051fe91ec26d1c4e1105a38e5d", + "7e695c93bd0405b847745082162da8853556a635a82f401b1aef140528d02f6036fc3653b6c19284a59a4821bbd16632cd1847c92238dcbf6cd2a0a510668722", + "786a0f83d6d1bbf0d3ba8a9deeba208a1f8c276737c203ca0877b72f4bc20be77ae7803a326e3da91fa476cc99290154dd76ec84391ffa0da49cfcdf4dccb96f", + "22f85b17ceac0f8424e0bbcc3cbd8f189d44817ff64744904d2454e93665d72bd52e57ebce2ccef30803a75c5216c42854662fc7c1886033662e9101ccb80b07", + "ff0f83b46e349b3abd3ee197fad88ce0d782fd0528fdb6cc23f6a599f5586bdfdbde018718d8856cc23d021c7b015b64e54005307008b2912fc8ba80e59e2a25", + "ae89a0075cad022043b83aa1ff5c7088b166b1e1708d5ce248c816f0646a24e8ff87d5cfd73d57b74bd3b9d4ed0d6fc795fae7c00f4b8157c761b65a5a2e9bf6", + "a8b45fe67d67376366f6ee4c1a9adce3fd88f6e01e46199796212350592ac76cc28caed3a0da58316552e05076d24af4a2db9d76e74836e12d80c2e944996f93", + "5bc516835cf22f30702e406a448015fded5ec5ccb1295f46c59f478b343f103bd239d0f90ca3b103ecf1670ab05c7c89ad5afa75641c5bc2ee2de8dd2cec279a", + "60601da4a534b4d21dcfab0ff00eeef4f4c0af65e87b869c1520b532098795d2feba693b446357eab952ed33b660e10ce21f0d517cddfc7be0f4103bdefa6019", + "a5686d5779c7ee02af58b195448b1ae66cfa23f0fe87c343145d028aaec26a6ebe05d9c662670fc57bbaed6712b287975ce7547e29eba988ed612ec2b8b31a7c", + "5d238926e893cf37aeef832c0f9a6dd68bd46b45df05b384638230df6d4f15de1be288d8da73520c689e104feb9b92a033e67a6823634c9c1d6047b18266f256", + "ab649015be477b138a420f4d40990ccd46217167983118ceafbc5f61e0e68610a7fd716eec55c57e997e9ec3211f372a076f07bc362a9ab35234dd9b5e9e18ad", + "053a37e1c642853b89f85551737900b0faac8387abb45913d6061e13fcbb94764e688d9cfbcea302132ec589f655c2ab0b118f4b9a33405f4f5bad547d3dfac3", + "c160dff5200da5a17009a411ae4e2795593c5385d5ae21d79e61c038f4940bfa3414c20e5cd637dddf5f5e8b89cfa9d829ae342c9277d70aa5aa5f67b397a3b9", + "1688373ea609c8126b3e0ae132afbbec4428c2952977793e014306b319111d8e20fe200189aaae68d48be64fb9a40f0ce9d8fecd766ca92c7df5b9e9573f0ce5", + "01755cfd440dbe346b899f8da907478fd423b8401f68d564581924dab4a0b7f72b7d1581477c0187e1348dd0f5003f1dd739394363d7a01ecf95741d0b8d1fd7", + "98617322810ed311e491959511364efda0c55333a525880c61599af94b69b77074ee40905d1b6d5e7f9bde82f2fc95ea43c0ace7ca2f9802c3115160f13fe468", + "adf3ca0c40e392fb8b75ce1c537985e29ac2757c3532075341e12af067692b3fa396241484bca9947ea8669431784d6e7d0f6dddb2b3d921f055019cbf6e7630", + "bf95c7b9c67c7648ba0e000d90f70c811c8035da34894b79e699149107d902c8edcfe76863e4c3fdebad14832f7196a4fd2d8d8ccd189e97b567e9be1e49c436", + "bafc4d09585665731872dc89cf70a7d52e4dec9b9c3b0ce3df344ea88031c271e7c20bbca223452ff277225e97625b9c6055006b117def331b39ff44a34cb338", + "c6b77906ae071c7f0e59f22d3b79578fcea735ef93be0510abe392f912b747bd5f66536319cb9a9228a2394f819f8350407541d5fd96d9e9d7091c66bf6829ab", + "2c42781d8c2eae71dc083be2f35a8bedbaca154810cc95120653b54ced45f4f28ed24d22efc1c52041f349bb2ad4b49032e87a73f35c3671247dddde0d3c22f3", + "f7f83fcdf64b318af78cf855693a252144cd87a3ccb22cace714b6448293e59634132b78bfc24b827684915a7b57cbc807501becda6602c77078027ccd405fa4", + "15bc2b94fc77a328bd0f4ef1c336c7a9e3864a25bf1f2fcb250c88b2cdba5227cf7758456e456c59b90cd1af7749942d83d9fdc062052c47f68f684e9440a7b7", + "3ac239c083e49e05beff270773852deae87be87cdd22a123737bc240102a0caa5267c189e6a5d4200b208f206950f18ce2a3dae5baceb35cde48c8d6ba5ae08d", + "42e56386f796279a7a20eb059cf58dc33f4bdfb9575f043d66113762dcec7f7ff28997a9de33adc321db728cf4b91a84918b039d2561586d04aaa113ede0fa45", + "a4571bc2c8e2b81aa953399566909cb2382fa07511de0c7ab4ff889f0e02531ae0490d83bd10eb0e51a2b46ff039f665aaa62b93c78d4c9572fee574ebf51123", + "30cb3006a57fb6fdc6aa75cc9f2f4d76ab10202173f0dadc738a6a2142c106cbcfd12e869f7852fb6d854baed1944eda333f88ec30e12d6dbd8cc599215b8141", + "a3a951fac60c9e22ac0251311268498f17ad63412c87b1d31db7537a19a2612e711e6a5283a56869d8c81be07ba68d8c98fefd8d308d31d244d799b0b0ce5844", + "61716a4f36adb872d4f1d39a85bc25a229dc6c9999c198ac9de2fdd9d6ad0e71729bfed4f91c7ed663ef6ff3d71370b52740820af1ccafcf27bc871b1ff2e0e7", + "9209fbd6abb6e93a7cadfdbe967016f4010bc3947a054956dae6f42b2952c0fd32607a476207a68650dc07a449d5ba2757934f410866ecfa984ff383482dbf2d", + "832b1da8e3fb9f9d442f0fd4c76bd078639b3c7581a29b1bbabc4b58028024c472ad29b03125a44492bd40b3a4fa455d32b18395e69d06ce3172c2140e5af00d", + "f889d246499bb8f3b52209442dacdfb0f301c233b007d9e62e89ce5209217f8035d39ec6c370ebddfc669ee1beefb537fb463c6f73ec7d71f0b540704118c497", + "2d09a3ce38716e761efac1fc5eb11168aab5a75275453c6d941fe620141ecebb4ea8d856909bbff8051daee920f4ba6bccd598cb0322aed6530417f045517e00", + "80d9310c728a8a137cbd9ade548cf49094ed382b43b7d755f85b416fc629f917cb3d450f5f7c42e6f1b6b667e5ec8f694b71c12b0a60a6a09a34fb62881fca59", + "a250ef00e0abe762b9d20ba20eb7a5515b7e0f1150688207a2ded3c8a59aebb5655902d02ae0fc1a46c81e239d06e5af6679381fe61199f6ffae2bc328da7c83", + "46436310dbc7910eecd95552dd7d56171c663efe81c7cc14b72335ec5da1f5e4895eb7f98a34f32add8fbd1035632f80eac9ec4eefbc800938f4a4bcf7deff25", + "328ba37dfa85a123cd6baf7f1932a687790666557fec7f533849b6c7d1d512969ca90f84c2277631e2680dac9d7150f07a9ead74dcf8de89b90fd3a444e7bf2e", + "b7440cb7f71e2e42ab3ec1d3839437fd34c410ccb893c5d9d98aec07917917843fdf3bc0c67cfeef10a34152162ca4ccf65d884f62a329857295ca0b9ff4622c", + "2a6533cfe6ca264f7a844de7fac6d015eba9c07b951e1413a4bfacf5ceaa38726b847e2c45be0e400f07039bc335ade248a415af9526407ba47acb87532512ba", + "13b585c07581ebeabc1fe74bd90b574c65b54d76dde8f437e6aaec0bfb9d065f5faedca370f39f2471f05eb809746afac2f6ec6eb6181921453339556cf0fd43", + "2661b8d232f3939869a9dfb5254fbbaf901ae489f5fb27f1df497861c9b3ce8d5840af89e6aab0bcbc3ca030ad591e2d0b6fe54d0e87c18d0929a9f4133ead50", + "40f2d52c284fe87c68ef85059c5a8dc71a8065bba4beef6c58eb4052eb31254aacf9c1f5b44a3b2cc152487e04debe09da75583a3d460f1c315c46067568f42f", + "88e0f30397d5dc76e2ceaed095f33401336b06fbedba739bbd134a783315b3b0e0a5a6cca63bfae36a89a7b3276a5b768dc08b1ba347e09c19de26bcbf465bf2", + "c7b9dad43bfbd3fabbff2c6f5916cfd9f8aa953e404d6953490e1370f6ae213ce396f2621546b8bb35d29a17a78e18af5412bd9798d26d39b51baa56685bc260", + "61db973687a6f5536e372a0c7408c316131768ee5d9a77fd8876970f57ab7e0d1f2d0509af5a2b8167a7b191c84a7b2c2d5c256200f578ae812edd4a9ef1c073", + "e7f55dacdda25d9711029268e6dbf11ea0c40faa01b03bb499c82a79e56b66fe4bccd16fda71309a4371cc9565910a2fa57a0ca8e5d7c1c8f403a0e174e8225a", + "dad0c12b0d2d30ec60686d1cc191446c35f0086b7dd17af9a4f8212b582782b384b0e839ae625344f65c84349cdee47c1981aeb7d57767727be49faf6a3d2158", + "e01f41c2eceaf28d6223c9f4583f404f1278afbbc6207b17216d4b739033c1fb6c92cc9895228c1a5f7017b8d6b931ce3920e8db9541baccf751898e4dc58777", + "73b11064551150dabeaa871b4bf2e94694ab64f22b6344cd63ccfacf632f0ec2944621b1019fd4e64671c07495fd817c5893ed1281167d7dbe436a27fe56fb23", + "a8f5ae3d0f05cc805a65a9f04d18ceaaa73e75130e1ac469fdc711f12b15c69e06dfd863ab640d2a66f210335f9b071234f7357560b70c618e0a472bca037731", + "a834feb296fcded23ad7f63b7c7174385899e059f924fba9895c23271bc910bdf12b3a1024cf4d70d6e877c534d35295126fa81981ba205d16b93c778d754c8e", + "78c8ad5bde16772f9623c06673cdbd25b30d114de740bc753079a358e0211d6d6bed689a6b1decd980c38a7c1c44f7d1c3a3685dbc097afe1f7529ca391d9b0c", + "be109b4f258082b049a3c8d23bc232482f9a339ef2d10c138a9f5d8640bae5db9c768065449dcee606f965df4d47e37560aae056144524ff8bc8c0a96ebfa32e", + "22ce9d5057e7cf0db9d3a0af23bc472eeb7e954615d0390d9611b6d424a1184d10f3634921d48b794f6ede603b05614ab539b00f9f046f8f2ca0023943eb5f08", + "68e432361a67165ece6b96ea9674d026911f42a8e8f5bf7c87b38e64bd305e8533e71e9122f6c77dd666ad49dd584797f48ddae21b3b459d830b3927bedcaa5a", + "4dbe399b5f3a3f06665936d4eb639c9812dc709a66e7afd942066a790ffb14d05e425786f7de6f7340d10d5d16381ccd2b8df92e230fcc8d2bd5373c04d8ceff", + "7fd2dbafcb2ed5ebb69727d29ffde5b7f86e07e3d854e35f773c09768ea2ba1b9a4e8b03e0dfd52fc1aac39b293e1cfe29d1638cedf47bf319286ed8e392b1e9", + "bf4a7ec1cf30209b1c1a3ff2ee4c08ebcf8065ea930670ec0dea284905c2a075d31ded6864908fa1d99b7ca5388667840b82dd18e3b0d938f4529af1e3c76e52", + "95b683810b26d4c005e67e3a5ba95f9d64128e2dc8d215d80d0fc1da167a9d128bc1c959c0c33f597163a964dcb3e8a317d167e65c1a97ad63fab49f46052060", + "09294c87a76aecf4f3f6360fd1d70d073fbbca8fb742f15f444c1e33a914ebff167997eae641f7be5d0c5b67a253ba416ae8b9f71e6596366aed1e522efb6ea8", + "b15f37072be93b6d99b13ca2b09b237c61de5f312f77b4941118805ac16d725255d91ce45cf463c8f18b3488bf259c56d1b4678863a9745d91f383e2745838b4", + "c02258c3aa2ce6fd8cc1e8346cc9e4f2f63496e62c1dbc6463bfa496599ab25ee888bc2a45548a918dea0029b7c944213db2b19e0f82bfbb8e738ed288963f38", + "3d37ff44385cab4cc2076472ca61558003f81300f9ba87ef7d9a15c1938eb9655fab45516fd52e26bf839bc44ae2cb1a2eb991e1512e99554410a13c5470553f", + "eb97300b5bf0d06048bcc9e85cace11cd25dcab03f087e1457ae1d28045c470455a76dd17e308d9e0fb71891ce34def93660e244728f105f4a7a362bec7cde93", + "308c9cf646d8bc807693540c2ee2214a64cf13a33eb31fc69f4dff053e3157ccffad96a044fa87bea6c1b9127da198109dc54cd1ebdb213c60c3939e70a89800", + "35423155e25566b7af9b536dee6afd9d6fab39e0781932409642464a099d25129a7b37190f35a47a07a19d129b45ed0b8bb6e06f6702885b15a9e36bc5c73592", + "19fc9f019be0f47194f31842ac778203a4876f2943eadc9e1610f852b616526f959a01ce063a77bd27a008029e35b49c1d748ded94810c37ef6b6ab70c7ae031", + "1846daa3717aba42f7c11e5af1c32d2e19645294983509449e96818a35bed6b30f15f7a5f7bb1aea64ba77d913793296e11a7c42755f1499d080baf97f9838eb", + "a95f1c4536e40597c455bbd79fbee8da673ba1d7b8c5e8ce8b1a83738b31d18895749755239301fb5a6061d80163b5f943011b3879dfa39ed0178dc8b606dcb3", + "14e4b7fbe3bb197f122e266a1ed30bdd4deaf67e7dc7c5da9c8e4a5233795a0f1c339e3cc83dc8847f710a26b10428a41d233046ed59e259b2b99771500708e6", + "52dd637553147094d71dcae3b0d1061ec931c30acbb025b9cffba71b63781e8bb2a37141b8c00bfc507693bc2851653d7178630a9c407d69a8d4424188ddf25f", + "79de0e2999df5776a0d57965e4992fcf985eaab90913a1a9d6757894e1c7c6cd8299463d2bb89f9bdce233c0606aac1ccfced235563fe5f1084a840cb879e690", + "082cef1c709b7fa9aeffa19cce8efd59afe02d2496c3581d9d00a26c06fa57a634937c2add5497aa4aba4cd5ee28db54e1edee4b5a2e2b05acebb50064745855", + "fb03dcf4d84a9dae5d212a7643702bc8fd058f94063fad3dea24a3e1bf29fe756d9d9828731d3c603f03b7fbf78716d3977fc8e5c3344685b9f7b28bb0900faf", + "5146b665eaa82b075fd08bf4384ccb1d5ca6ed23a1bc1e17ab866a89f22c39a920755099d9537dcb396dd482c37a82a41f8401e95fa526e8ca0344cebc0269dc", + "2d11389697403487a6caeafa9fe67a056734e8717dcd267b2f243ec345f339f7d3c366808c404fb8a926b5287ea34056f973e93b49d08b8cddfb68d7370353b8", + "b9be33ed19eec6e1ef3e5e15c06105c6329c2003a0e809d1d8f39819d309c3f101b83a69ffffdd91cb4146c4f0f7af5b6ac262601043c4d5c5414192b5d1b13a", + "842e3f576a1d749c9bce25698a9394e57b44e77a7d6e787398bbc92af8df6902be90b95e3a8b22ba24a966b96dd2b55df6a4c5bd9f9864869e057cdd16684fb6", + "5ed94f765098d6eecf5b30c878dbc06c3f027e0f2ccd97ffc68a39dd55116b98170789d09e0eae5729c2cc81b11fe6e1ca3dcba4b9c69f0a2232e45c1a1be4ee", + "270fba2fa6c8ab3151b00d9df5d30b3eca6e04f234198e2c848d6629224e5d01392b112268966c700dddeda9f92c088ad077195fc803e2f6dddc70fd9ed31af5", + "cf74d3a00811dbe3ed4bc9ca9a3ad04b93fc4d59d62f5ba8ec9096ce26ecaa90d3bc5a743abd5c45568384929058f04bae8de9086734b4212aa130ea0d0abdd9", + "d04f80d399d98ca7e2691a2de1a81244af8d85b05979f8483255168110d0a6eb3262a734d4190b3b549e0710dffadbbc5a37c836fa821a1a3d1ad736fad59eb3", + "00820e4075f671a83cd920865e698f652f0241cacc32bbc387f69ea4b5b875ef1865fa15badf3fd74e43f97cd0a7b151d5fa3feba6b0e18efc28ea0fc54921e9", + "e73a49fe33309f72cd295f4b1d9db1ec2c9c885748efeb2c3abb49ae3f79f45bb2063a6567bb98cbdb20fbc04555cf08b3e5c99bb3b43397040f2e4d4f0d0fec", + "e1bbc33431fba9dc6759970e5c814242dd961f6a9e3b9ae483b81f20c2c0198feebed0b0feaaa82b029a165c1634035dd119d8e3923c06dcfa40b9b3e5da3605", + "5c0821b4cc15281e662761b83aac284ce965a9d1e7ac65457b3a8bbe7e7365c4a5af7376af87eee58e50f3231d220b71b2d4b38f1e66aa0ebd2246ec68a14c0f", + "5570a780ffc1463b4ad78a6837a3edf94d6ee0cf0d57628a0cc8e32eac3b0df61bc3917f9b917538cb2d9205e2142964042a02691337fc1d033a7de3fac8bfd9", + "82c76aca84897b56de0cec9a30b2a1550893b2c1479837e4cff51af54c2d8344e95a41825b59b19220346b98dd8037ff57e9b044d840d71d4f903a16380d8134", + "50629627cac5ad6b41340e5966c1bb247919019710e1c77b9193b0f9867fb49e664e4bfb380165883aff3daeb703ede38facc302950b3f3b65e6709fc5f19d76", + "c21e41f04acb3231180461f2c89c0f003b69c0088f6ca33da9a2841a6013aa4e67f7cd301084ac79359b230410794f1a82d6a9d3c9ac318b572e836b58cdece7", + "963fc1bc4925c2c80f1f316adc7f1aa60761e377228bf3cd8e239b0c379994e4a3c7bc0167665bf34b07419cab4e519f3cc406dded560d0803345c57a69580b8", + "b3f389fd9de0f64cf7612b9de9222a629200bfe370024bf6a9c6994b480cb676cb9762ffe829a31440fa427bb7118b48656e19a8a940a478142fb2d695ea3b9a", + "2ecfb66d11c9388417819a2726328db104deafaaf0b8bfee3c0fef544b0463cd82489de17e1df0856cb3f112deb2dbcd1141aa312a2142821f205395d78c8fab", + "9fd8876afd65708dd8306808133a54fe74d27040a76fc0903bd047d6a39c3cb0b178f07ed52bd34ff3143d029503eb06f8b4d2790984b7c22a0db086fb37e5ba", + "7643ad49d5a2fecc41ec8691aac4196d047a706a13205c3730faa3764d7aea75651944fb885a46275a62029db693cfff16f67759dc3eb56237bcd31aee6091a9", + "3757362f5266285dee2d57d24d7e82add6b1e201f6c19c3fb68547b6484e645363a74e29a7a68990d3685ddcb02d4d596284888238f6466a760565e806f092e2", + "21c158dd739b2b22f3597c13fc3eaae7a9c7ad143baa2c0b44021fe96207a85ed06832c90c13ccab7c560221dcdf1c575ab4d98fc6ad9717b71f022a89db54fe", + "887fdf2954a0413f8a7931921f0ce3a7b1f01c8e121ea11c687799a5a77f78bc69828f23644bdc0961f5ddc17a7a21a7bc9361b4969893e4f037f39b60394acd", + "3d61b303b111287c097a4438ede201a003b200b9f563d01693ae5b88bb70374f26f9b00d32042a3d93a59ca07c3546a27b056f33579df8f2a744a83432bb9bf0", + "036934bfc71aadb4ad9213cf4371270821faaac57dc304193bd1d40ec8bbd23e60551d360466738e608f91a766b43c224e6572605bebe2b6f18194b31ef61261", + "4b670f907a82d836807a48297dd4d73c3efe7252f77a89597cbf590206d042ab7b40905d94c7c9b81d93b43a9b22744c6793d5a12837e48bcabc1222bc5fbec0", + "bb2abdbafd3ca87ad91b43215a40e2849fa23dd31d3f904f4047eec1f9e5c9fbcbbd038d311ded4aa28dcc7b3693e376deb783d5f17c9f4dd3dbfb523906eac2", + "1d110d8be14c1a4fee64a94b1137bebadff47fc2e60e57b0cb3f73335843d9f4b5fb2829aff5647b5d804de5de6989ecbfd792eb70c1652a9035993cfb00d350", + "492a6886c2533c6a7800a8d21f4997d8be465556d695e04bfdc7699462e2499a1954d990244584b65c8ac70d87083efb72637a4e926e3e6d93bb2dcbf7ed62a3", + "b9195f9cc714a3cf5c5085aa71702f41108b4337d437633fe30b2113ec079bf6e5f2e1f038122c8993647d9ce004382d44c654c2b09e6283463d58f7ecd0f085", + "e240f362808a1347139c46ed25259ddd4475384a4098233d0a8996cc7a9607b6d3d54c235a109bb1d31ce1710f60629d4b818d0fbc1e65fc92110a74dbf6df42", + "298b1f482368085dd9af7882c9f76ff33dd1f917f4929392328c4934b488332476a8eab5a65a5f6e6faa2ded0659e69bb345b4efbfcaff57fbecec5ed5a1f86c", + "11cb831ccb69933122690d47a63afda32c4233a2eb086883875d322e798cf9c8ca3380644610f5ef7eab5860a58c08b0ffed7aa9214d0a990cb15fd329d007ce", + "db0c450b0b16fbb1d3918bd39e80c375eeff22b89c2264035efc05f5a2ba8e947ce7baa2ad7de76a88e104d65871bacecbb0a9af313c53cf6428b04f001be82b", + "e29bcfd38fcdfecc335d49d66b9cc157b14d4d8019dbe190fb8869e563be26443107e720605abf69b9ca6e71f0c1f815a66b7d6533b7c42bbf33fe995a921bf2", + "b19d7ba5bd002112dedc41cce1579b39718d608a887681e7b88f2fdfc2e34b8b3850e4a7731e278d29be1021c9a332f74e4b8c7bc58bbca80750c5f7c9693a6f", + "c4b8c9a38a69b52b21642b7624666900e8234fbed39eca132870a0f1d95f4f47856a98980411fab0db05a04bed6b9b4ff820d01e902130f0576f896202d58cee", + "496159a7331abcdf7e1764859f614d2cfe9a1c7a954ed9865eec4ea714304b1ac9b5294fc5dbf2594f29c31c5ec06dfafcb2694f15de93a40664e4c71707d3b8", + "862c22bcb07a2da71af03c0b4d741c8190ee3c2c96eec5f9acaec59b84a013f9ae0231058bc823450ee0425ee60a13037779e4631cdca14db3ef2e6510b0694b", + "8f9bee80250b39d0958a2ab40cc0fb9d62ff0014db4c082943aece412befa89dda00efc57babf274bded937fb6f2c69b83f41f6aceda0f2feeb3c581e3de6753", + "41a5f2a7dec9d1438c6685a35b05dc5844303f5eb95cc6fd14a38d08836a7a45320c2255cf69a925da568c1fd7edea5817d1fc4264288fdafdf22e2366719f9b", + "1aac602a5c22178e0329723f010df4326f2f118be4b0608123b028ea678a3417f205ce1f701678b46f33851648f3649f96fd4ef5455239e3dbc2112f63292eb3", + "cba336ce7c6bcccdd6e0db6092bbc43f24cb8a75c039c8c49aaf5251e5eb427f8ec92ccfbb2099f838aef8860f893aee82b9619fb9a64a56b6fd99bd3804b7bc", + "f877388bfc12a7d78f62fb95afd1e6aae20176620695719c09f4bc9ecd8c1653eec0c7a1e208e53ed0168fe2f578f8d02630c482cf3b5647b49e1bd93d3b4b62", + "be6fc76b88e88224869ec104b4e7508e2cae9183a238408915c5ef856b5b1a916f2f12f8a8c9b6bf3589de9ca5f8c42686e6780449d0d61655692f38241aec3d", + "865222059a719314ed4bb3bfd434fc9303659d6b19e7d288a62afdadd17ea2cbacb831a66faf37b22774ea76103f64f26085a78d758c32241832e46181c8fd10", + "e475d701ed2e41d82d691134e595c783c1e5c12b2a6464f5a59cfb4d2f976e39cf4ecf833daedf207ae0ff5957b3e820e5754a3de1ff376f932a99e00fbdea19", + "770c7aaf9ca5aa5182fc22ab1bfbadfed42962206aacfb5d94c4eed9e207e47eb5d2b72aea615556ac56e926050f4f751d6272ab3667020056153bc58fe698f0", + "9051ba05966e1e61b2e929981aa82570f9afbbd7c9bd93106ad10b5e771b59a2f2457d564b426f606c349daff10a76bed10e39a84e615af8d94a9c3ac62f3c02", + "c3b6b909c62a9df291274cc3aa3fd4ee762d06097f02994bce4cc655fcb2a6c42b8f0e4e2bfb9b7870393fe665743c7357c6d2afa2f19005dc29943e34855b5c", + "50380b498f20b98522db0a8492a5116d61e8ccaa50f80d8b5e0c91eba0361e8f959db35cd2824777bbde3f137d8d27ed9daea90f5d1864c3fb00b78bb8b2b26a", + "d61d8b5aae875321eeb39f20cd03b77b9142ae10faa67629e40be26292d9b36a4a18b3a7fd0df29e98935a475cf67c2ccf33301578f3f7fc30fb1ffe2cc157ca", + "9202c87d231bdda09f69a4400fda3eea3efe01f1e59bf15ae54f05f05d518cca8135caee357d356aa5a63c0cc06e2ae73ab05d42a146bf521328a268d04191bb" + ] +} \ No newline at end of file diff --git a/pkgs/pow/corpus/echo.json b/pkgs/pow/corpus/echo.json deleted file mode 100644 index 51be13db..00000000 --- a/pkgs/pow/corpus/echo.json +++ /dev/null @@ -1,258 +0,0 @@ -{ - "0": "158f58cc79d300a9aa292515049275d051a28ab931726d0ec44bdd9faef4a702c36db9e7922fff077402236465833c5cc76af4efc352b4b44c7fa15aa0ef234e", - "8": "dfce37ca6f32ba4c3a72e77bca20e511a39b31a6075815f083db2ecfd5c32cfd6a4e0dd9bd51921199758edd2fe8ed0fa31e06aa821c7030653d15408e8728dd", - "16": "ed784a0fad759baa6504c30c46ace26a24cc982f1df81d3833eb7fa0b9d82afe4bc33a211bdec1e4b29ce0a30fc9e2d71b947b2ec1b23d4787ad3578836b8481", - "24": "98f61fcd1e1305994c9af873b9aec05d27aa301c5a7974c9c63a3c71758b92e5510da8e652ca7a27fce4f7d8c74183467ccb1addeb1f8c6de87584ca31bb7367", - "32": "13db296f38dfe5c337afe6f595717e600a4cc61cf0a5ac90bcb357c43a68042bba2559c2db2eb5d096d77883396d69e25dd96805ff6d160cd81d0268bfb3b32d", - "40": "53309f9dd4cc670f6d1ab9a21f4e5177a6afbe7f5f3f1f65f195b03abf5a3acd7737e5afa368d3a50e9e845aed2c2a0ea3bb52246a8fc553e767ad265a278c6b", - "48": "cc134791739799d501d8d1084972246c5dc84397562cfa4746b59474ba9958111125b3f186d3243d4f889c176f7580a63c6421b63d521bb869b38265003cda31", - "56": "8840870eb0bbe1e96bd0a57da3dd443099612f3d6f3131b645fdbf332a26356389cc98e61e40a5371f772507c404f957d00ffb8a6f42e9ad8e169007d7a3a9b8", - "64": "042d9632db0a23fc10292cfeae5cb7d9317cd4f536eb16eaa25909fccdfc86048076a13a5c0e22798998840b4745ee1fbf174c07c189536ae109abe253a4c2ee", - "72": "25b4d2fb4366f5592e057cbae28d8bb66b98c1ddd43ebe0a3b02338cbc862e7d0ffae8bdeeb466c9a01f103cc9e9f7e015ab168861dfb694867e952cd1cdce10", - "80": "9de0024afc836777ab0f37912e548f2deabf2c553e052fc87df0b9d7ff2b704e453a0c83c07ae94a0bcdbf5ceafeba74633329a45c4b7b61c25b2689148f758b", - "88": "4d4ac76aa990b7ecf713c1c7ae9b23a8c8306d233e319173d52f67b71903abcddf6012363550139435a6061b29c1946fa76f060deaf09b5e070342ade6672800", - "96": "d610c783bd5c09d2c5478109c5249645d852aab0868e24aa957f67b0984008dcd9c69232b05ad43939401d6abe51e7fb055cf3ada07ed16befdce4fc8865c815", - "104": "f516449459367db00fb620fc28ac53e5d6bcb173862755cd5c9739adfb24ec3dc3a7816ba38193cbd87b0af490b938071e575184bb4e3a79f9d1ca0ce0a6313f", - "112": "8777bab03843d8e51cc6a81f9f0e14b0bc4d06f54c4db7f4c9654729753ab693fafe085a6d26e3fb538aa05ec563dfe3c4881d2d3b9c43a460bd6f7c4993a881", - "120": "23b984499b113e2343bb70bc20f7b308fa5c254895860d5c15e0e99cf02667ace22e1ea6cdca3716db6193238d3c5bc43f9b20e41561a3a328f0ab64e6203515", - "128": "ea47150919586419aba6e67e4146fdf7ac285a53e98f9e1e2e949ad5907c2b73e9f36a5de3687987a85edcaec32af117cb4fd9650e358cc60a43eaaffc017528", - "136": "e5d3a0c77470a1f280e429d94707e755da985c8bab92585f97ae1a132a0e45f32f6aed6ae2f12fd497bd4240c1a22ecc3d6c70cc6dc9990ad8eb092a75ad8b98", - "144": "f188e354ae9980750257efc75449ea9162a82ac826001cfa2643e250a76841f968c54a66e1da085ebabbfb232f1de723edbd0a6efce1bfc0aab55bbd2d74be26", - "152": "7ca6dffc8b35da5217a48af09201f392c93c7b1b7b47c8537c6a39cb72ba897e1a734a8768d432965e101317deef9515e6566886df354777515436b2adf3d333", - "160": "dbf090024e0c28d5b974bf180fed57431c61d6c89a1d7ce30a0eddab9c086a873f8ccb3287d7c37680d85205c1f49ccc5c3377499e70b379df0b8588727403fb", - "168": "4290cea272177f59cebd22fad99b195a21dc75d634f59842299e690e01e05ca7cada06125d23631fefa14d0c0af9a3fdf4d2510c4cf43e37f83feb7ac17ea03a", - "176": "ec6bbb20baaebef7dd91b4cd323556de1f9db73cb90dd27122946695bf55935cec853890ac1a293bba2551ca8ed09f4b35114f77289f91c62de0091d276154a9", - "184": "74c16f7a41938706e4588196379e97dafb6bb8c8d504748b95a783fe8d110cd4d9c792fffedae8d09c7604ac4fffc304c6c57919b1bf85909bd36dbd8c085f51", - "192": "2d7ec63594f700b2c6dc93069c987e0d85d24efddb938249bf084b2f111e979b923cb356efc2a58c53dc5608e4e26e751cdf00dd81f21d670ca00e05ced341c2", - "200": "863319fda78490cd1a86cf99c3c37f9b1db832d1f64591b241b63ed77d8794b5332dba94d3ce7e6da45ed9c660495fef7e65285d32980daa3a0184f984cbd09c", - "208": "30b0debe86e1a4191ac1762b6a35bfad77533fe742ee56bfcfff7bce6e2035d526b97b60ce20b853d8ef13b4624c7743b24b3cec3720097485cb5a2f45cad54d", - "216": "115b2962ad1d346ae1f94e5cc953013754bb445fcaaf6572cd7ecb7219c0513d287b909f5c0547e44bae73862408cba6348ddb9944ff2da4c8a2693c2e455eb8", - "224": "f8e49dbfcda28f503490d45034eafae7f41b16418367ecc5c4c77d7f2bd566eaa4528886cc08e247d83f0f164e2d076d275696838327f64ff483962510e7ca88", - "232": "8d49512994a95aa8c0dd24790254560ebc0fa6bbddb40b3bfd42a5ea45e424625298194f9ef2df069a28e469d40d59822e9dd7a8a78f124707ff526e5503cd89", - "240": "6fce051aad8c8b660756edc3f544eaf48ae846b0f57e67eb5439d8129134a2c2fc069da5abc01a859f40c52e35b2ceba04babebddc19b251e449d287e225ed61", - "248": "34309bf83b6182d719f6c9d4f580602907af22b116dca33a02d537b5cc5e5da757bc70dfe9db325e1843bdf3888a45053f01f739b9804cf9ddf6927fa09a084a", - "256": "a5f8a3305dc2e84529db679a9cd7602ba08a9d805bd5cf8d2b1917912a86b59346cbea61c50acc2ac25b10861d6d65b446e6d814d90cdef8ce1e4a35c470251e", - "264": "d2e87cc6abd77450db883ea0993a45af767012cb5df7ab2724c85900dee78bc3eb3dde16d6a7226d629f4da9b0bec2baa2037c0ec77c8e5f36d80ed2ff0a6a23", - "272": "03b7026db99a0cde0102562fce02d8c78f1d7232845f352a855c1edb7b75072021ef20662150d11824077fc14ae7b24663af074ac2a0926be3c1ec7f6700e3dc", - "280": "e9dd8bba2fde72507513e8de019ebf793ef5ba394d0a2556c7c265c0c5b25147bd7e1302bc6c3ea7e4b81c0dd3c5b73af12adc77411d2749fd0fac4db02209b0", - "288": "6a7c7603fa42312393e63a83f50d0bdeabbe70e631725aebc8251edfce8823bcb26692cbd1108a30e2881015f600e8096187366f338963c92a0f922675c88aae", - "296": "45c6d764588c03f1f0d08432b7fd60e1a19c132245ec966facdbfd2b13574c86144add732b470934cafa66900a623b6d462665680f749590d9d50cc4e31c7d12", - "304": "4519619bf47f8ecac16be719082f35646a6109ef22a2f9c64062470722bc6170d4dcd70fbc8a733e88ed6333be2b3fb834ebaf5da42aeef6ed298ca873b1a241", - "312": "cbd714aa404cdfba8d08fd14781ea3de65e8b7457844362bb0e94c3460490f59c965461c39a43f49db1862d38e7fc7d94d5c7565f2042eea05890e5f8d511e4f", - "320": "9d95aee13f995200f1d152139d53c7e0341f328abc3c09df39f30eb5588b35de1a84879a9a47dfa1426b0592c93f03c0d0d7efffcc250e26aa14b107ec99dd78", - "328": "eafa8970ae3ed678a216f9e6e61c319dfe6b96b7de35d41aa72526944d64da327717145ab00990455743b09907e4c8a77b3ded542058c96152e3f3512ee12e7b", - "336": "ba905eb7bb2703e655e3da3876cb53fdada2f051cdb2ef357d0efa6fdb9fdf0a404579065192a2bd58098c969f8d52d9fd68ff6c32be46e8fb352f51c3cddda3", - "344": "afa43e712fe5227608088601924cd12e5c78439509562271ea76698deefc392e857af9f986d0572934811feee2da601e8e08e06e09fe9abefd5d257f52c2b1dc", - "352": "b9b1f7ffdceec7bb13c6bf1e7b30d9454d32e335d46009354ae560bb57c865eb12e4a13e2a39e5f6d1133b5aab8afd4037e963d714fd3d598175bc99ade59836", - "360": "078d1012588a38a232337b540c13ce2c380d9a55035d13f060be819b0e0fd6004233a533ebb43cd80a99fa5c5bdfca9399492a2fe032c3d2e692b3fb3929e00e", - "368": "e55fb0f23f3f11948dce93a8c9f7e95e09b9079f3786efd0f5aea75f90341543ccfb2934cc8e20e0380fb098b8cd5dd599c5e28b60efda564ac3a0ea08fcb194", - "376": "f6981846ff2e3b9778c3f4e2d5b9dfcfe86cdeb208b50c28012c6218a3c18cbbcf8e0dfed485d8b617d2c06e4cb277a38ad1417175b1ed53b4b10e0855a58b8e", - "384": "29c579ff5faf777fa899b3bae55d6cb1510c2bd042325e47049eed0292e5b02c790ed1cb6301552e72cce486476a4eb79dbf8b9ea139de6552b34d162a162501", - "392": "0d0e36e5051f2e60fe4f2a3df8756f984caf1628a9f7e52ed8216072a1352e6bbf2d1f8ae28f7d85c52d47c71714c0dbc9588547322e8626d7513253d1f718f6", - "400": "bf7280b5a30ed1fc588ec8609265aa8ed4c821513ac469a3add595a6bfd4ad924fa405241c7d46573bbae9539e8c0d209cf3850d362de8dd9a3ea933af652460", - "408": "09bd34c4f89731609d554a37cf0f669bb8d608d6e883a04164a1dee0cd1adaf8dbe858899f64020f7a6774fcde70445680d1b33e71df0d242c506f3ae035fdef", - "416": "028a2cde7448a18cbb99c94d925a9aa1768f0bbdcc5bd25a44397c44c538dbd954cccc37fab62107bf684707c6db1df039fce2980944a5c488210a9e0a1567a5", - "424": "d88eb71a5a4cf64e0094f8b6d57a54425018c23083633ba254cb956a2361a61fabb5215fc8130fded2259a05cd46af11988969abf67786f1b9e6746aca1738c7", - "432": "d23aa8a7c1b7c3fd45fa86478c8a88b87d5a7423021cba17b6ec08dff0536b1fe5fe039c528e380b0fb47090e15a795e6912eabd000ec0908ee57bbc57c5e3f4", - "440": "3a9da3d5edeca4c821fcf26a961b311ea5b5d148fad1046c4108b7bd47aed2b6d955941be0f53c7e0deef422b3e1f43e7c0144828aaee9b7038f899d87d968a5", - "448": "661ee6987dbed94aa98c58e1545f6af1d8b02481a47163f14a6309c7ceeb4bbdd02ec0dbb2dc02604da5c16e1bddb5462a81f2a038663c89e60ec270719920b1", - "456": "29c672f2ad25fcd8d3eb2538f834eec929c45b97e753663550eb721eed7c6e467a554bcc77522a20e0f37ad44bd8e23c8321af638a23c185f450143cb3509e62", - "464": "da3095a4290ce66ac46383adc313264921cd6eab0a412ad92e0410838d924e879eaacb4908b577742e9a5f777d87d9e479fd498916a9166766dcffd4fd3a0077", - "472": "9d9d06381b72ece1e3243066d37ed2becfb8f6c71054900613263ff226e445c0b970a46b91e89ad86971868af4bbb738ab9fddb45cbd16cb14f777d7d8eae1d3", - "480": "943e3253cf4f233e7ec2f17b4f0b14dd5c5585dd18f72daf5350a199a56d4ad421155dd6ab86969099786e91f770db6ae2b5cb45aa062503b14c04103dc550e6", - "488": "e25757b8da8920f0e072d92693ebaefbaf0400093c422b3e61ff099b1c7d37228635d3a4210d00e2cf40b6f68607391b92876f58dbc73b611d69f5b32370df58", - "496": "6cf98266b559a021a8fd7f41dfb83414138294f7916399a1781465f1be3273ba01d3af92d0ed9fff0912c3032a882d1ddb1b17a4ec6f8e4ff6aa4976ff67f600", - "504": "d72261198469dc5f80b61afcb1b157b632177dcb3fc59ba32bf34c45110487514d65989350541f4fc3082cf95346230893cb5c30bc04ea3eddc6e43a02b5e5ae", - "512": "ec6e7384fa2c16f125a736f57c936d07044a0ac2ebb3ef4adc2775168f94f7a837dc5125aad549f02af856c19198f0e70f329cade4c319b6ec91c5fc82b6eeb9", - "520": "53006cb314670b633bca36ecb8d041691f9e97a9599f3a802ccb09ca79fdce4ba89c7e76c818f127d1a3a09c0c0eb9efb4fbed1eb3a3c87e0ed142032f6568da", - "528": "651256b226295c2ce8420d88161a36384fd8345f2b9e5cff50289ee4ad02f2207779b9b241ffac782f92af2fd4bdbc00517ac80a3a9b5480b578beabfcd53a02", - "536": "d459dec9d6d179579a29e0729345c9e2c1f1f367dacc44dcc0391b6edd74ed9e050217b812dbb06edb63d148c7da1d26269e85ae71a5841975558c7426c931db", - "544": "e289c8fb10517bdfa1c6c61707a386f7ff977048a777bdd8857b15d90663c334ee9c50de495c1d5c0c19a80ecb3e2a96f558898645024877fe4819365f055d7f", - "552": "4ac0696bd1bd58ac3f081232f363ab0ed8c064280ebd43aeba015a200eff02bc3f5863ecee3cb2bfb6ddac69be6a60efa098850224e84ddc9d0eb1d9ac7c1e75", - "560": "8e76d5d1178653bbf633542ea2256f554631148a2a4d4565d2ccec55560ea8ec91613645440c90e9021936a6c79d7d0befb1c412481ff6637e282485f8602ffb", - "568": "d9850f08eaa2e6ee7d46996c989f932ecb2b7b458ef1b9a1a81b5018d74a1d62d57b9750aba989a173ba7878c76a7a3250fdb824089a0652e1b09e4427986e36", - "576": "d4379fc517ac352dbeecd9051246708d398a31539f7ad9b72b522d59aa9c72326c575d77fd2545ce5fc2bd2fc94ffe065ae38d23001ce26be61a9da2a5713a2c", - "584": "0deba5d1f9773c6fd7c7d75b854763368ca8be142db7e7f267b6686e3dbbd9b103fa45b91ce4b7ef084ee0e1da6e1aa3d4d8bf85a13625d4c3d7c2fa49602928", - "592": "3b4d7a5721980df19657b5ff4a034af93e90f288ad5b161a958276c16db6932b84bf67a393cb3cebbda65f907194efd89ce3c699466b9f1b5e9b638257d37602", - "600": "0cb4faa74e0f46ad1ca761210726bd5cd1e41949fea3eca355366adfe9f1619c7828a5fd1e45c36c5555809181a6c29cad350aa9f4078fa1de54ce9abb797976", - "608": "96be386cf34a5e9cca3e865f4fa8a03630b4dbbd4a6d4438efb87700c8f5b1185708471c6d2b672c9eac9e3c8a3705d83b27b7f009deb79b315db3155882d29a", - "616": "537ec1ad4f838cff004f6d8f1d47cf702e7f8f87d0193d96bf714ea9c6df50af91678e9fd06398514e0b03a6937c2309ac73785bc26308fd6e2258583d2552da", - "624": "d3c65e5b822f2fe21d9d8bade6a378915ca37b3120745b0fabff545ec76a31689ef57e1d8a0699f71d16c1ca853de51c04a892be91187d18b8f09b254af60365", - "632": "eb2b90829455e2ee36f5055c2e65f29f9ed5647d3a3220c864717be59820ba146569ea49d63363ecf77b7a3074a4e522cbc335c3e37c24417a424abee3505c62", - "640": "669e75eb53282a32774915ac81e47a88c6712d0511a7f6ecd12b4c1bcfde90371870a5bb897cabffa5b1dd2a1102eac86d7ec215a8eec71e9badfe8e2774ac94", - "648": "98190faf39f6da47e4f7b0e38c32b46f3d74143bdf03091ccd9e3a4aa5b2b3046d8fc68cc636e6130279ef63890aa03d6aa017ce4aee737d0c64ed3bc190ff2b", - "656": "2b43c12e28082a668826e76a89d1a28410b6e744a891c1cdfddb72793159a6d9622a5c2c6d351bed04edbd004501164c27a34a824a433dd2b0516bc5712109d3", - "664": "0502ee4ebe72f7b738e0f2bb19fcc3729b97655159f45d5d79bc1e1371cc6a2b88928a1f542b61ff21e2e799b0b5a922d6f1dd13a8df19c75aed115ba5338e80", - "672": "4d2a7893196a81ebb2acdb8176a462ccabedf7483b9906d3ee146f287c78e19ecc7114c5af36ed658726c402029ad88474414a97a6813c9e2af421cbf573e35e", - "680": "9ec96edd556e170ac3ce45a67986250daa02d5687b5283c892b53eb417ff35b599733e9c292531120e42a36beba9ac3872aa2bb2583867e3a7ee0822eab67daa", - "688": "f9d1e7dce5a57f6766bf5c792adb439853b16300cb1d5b5adf6e00759a83e458f80584aec15701bf04ed7ccc6e515d211ce0c14cdd6c06c476e9f87ac0ccda36", - "696": "2c3d1a71c3de7dc5d8a1ac42560daef845f65770688e8ec05c436199d7bdc353b4fc08ba4b6ea4e8c68b4f586378df9579bcd7f406b133da70434b833484d991", - "704": "795f38335d0ea88d876851852769d7a94e3250e0190af30de3f4f6a4f4a24c681209fd9e0af2b43267ad10335aab485381406c6be38c229356d40b30db860993", - "712": "e37eb50739bd33b4104a782c6b4a576975780b785b112bc14bae11890521556118125cf083985314b968a67de4dac520869ddf81b1011cdbbcebaa9d8fadda85", - "720": "f2ce534ac951c5627f38f95d3888aec7f6588a458275257161539cf3024a52dfb8d3ddf4031df8a054770a14c6eafd4c2476c4d5eec0c9ed076a03ac7ea9f6e0", - "728": "66d9ad704929bbe4c87fc4b4ded9c2a555ddbe975a6c0a2854e12a99e91bd27ccb433f3e5293dc7fe781a73133d36f7b49009ca1e2f2882775deaac10d5d773f", - "736": "4266e8ed78da4ce6c6c8d2b1485f2342719d2ba8ef440e3d1f2740ff7bb0b00da29c2c4f0588b4edeac8277c83e057af98173910abffe7f56a5a4c8c277b10e0", - "744": "7634d5384c633db736e9c51522b92d11e6a3b95ca455f673933cca3eb692e27a2ad813e148dace456083c9fec4d9e64f7db7e89b54e1a3188c096f84ed32f296", - "752": "ecb1ab02bbce0a9f852fb1609c86d38b63f59294c38e87817598aae0bd050bcf108fc7d148ac7415501e78c93c5c704c7816bb4434c7ae2bc951d0be15fa08da", - "760": "3bbd1f664bd590eeafc1b01359ffd7f7737997b51a706ebc97a30e82ae73173426491a6b268df1316d17f0bdd1bc2387a30dc196416fab8b72f1042a357c180f", - "768": "b998d13e29f34f75d1f48c8f5d42fd95e2b7d8c3d7bb3a1ffbd765ed810364f39eb6cee7715111823eba27d0127269b4fa7c15ce795a800f1bb985571959c912", - "776": "ceca1386e1bf138fad149369ab1eaa821fe3c07476f81b438302b018e6e6574376a0cafc5f1689096797bc59d9f4336765ea545f5c9f08d34742a7a7b9109487", - "784": "bbb24bd4e3cce69c58b02a2235c647c1dc408f91329708c420f12dc09f9d4b72ebaafa507a3e641d6a05742f69bec56cdd1dfff07d7ffa0cbf6dc0922418ce19", - "792": "990ba6b5d8c76e9addb1b9a83818a661247fb0f010b84cd5d6d0edea0b0e81bf5356e66dede81a63afba2560dffed16121b5ef3f9bcf5f0ef589bbfc052db8a5", - "800": "bc78205a34d35ef74da73024c5012619f800ab2a3816545a089110b30737737e21999ae31ab0aac95662f87c28edd159985d4ac406f7de3e3025713aa256323b", - "808": "f04f42b721f0b20d10f3af0c0e512fd219238b910d476bfa61a740a2675a9b862ff04869d7765d8924cce82f737521c7b53df623480723d1dbd64d87ebf8404a", - "816": "1e140ced64a0795f0c43d6ddc69bbda3bf69e6a81b80387a083a92c0d08be47f04c75487de5c5b07152d0025dbed120d952fb1a2223eb83b2ff0faa57efd2a55", - "824": "bc3163f1ee5b103f7624198f05c7efe9a84bef00f70ebcd0e1b5845307d71fbc7f98fc455e062e41c90b54f30b9fa22810b0e20c2f4b17a679da35340ec99c7d", - "832": "90ab0157fe7a236370330cd4cf8ad26d1cf7464e7059e53267f91ae1dd032d092853858f0e81171e125f6fbee1429d5166d0e6bd84ceab9b2dcaf3e1bd3fb6d2", - "840": "82b27c5bee00ada580ffdbd22b1944b846344d8595d20fffb7586c991624a8928df8ce71139e27d33cae8bb9c8b26a4605cca325a0076420e115ca893b2d62f3", - "848": "e330d82fab586f16ea88ed2871f4e5b20847a0d36d4720ce2e018e0b41f43bc80d6b5416a7c1319f084edc3d146e5c06401983e171cfaa6d72ba9d6e4eb9bd78", - "856": "112e027e094041a5ab36c24aa5fa4f7fad09fb3c37127427db9f338b15b526ec166bd31197c9ec7f5abcfe62331b3d4be8c7a3b679bae1e31a4d30883dc0ffec", - "864": "6b7992f8a4a8a778e2da50c270d8a1fd445e9143db01e25e7e3ba3de696284baf86436557bc2e3e8971f3fe3a00b1c78b2223bf3bc0e66aa28af1b93a0759313", - "872": "da0efae05640b723d7f48f96db3aee83e726c2678cba602a3f300f24260789c7f3fbc6a1251085acf96ae4f36fa48988800b8721c3c08b3bc4b02cd78327cfea", - "880": "9067514f1d82ddbae543c634013e613c558d9ff5d26e4c47ea124088a2c5a32fa58b3592a5b71c48b6bf36e2b8ab6ec6815f5b17dfc204fe3be1f91cda1257e6", - "888": "256cc5f13594e89894da97b0297e325c5b3209e92a5a61c28892aa533419a25170d7a0944eaab95821af8facea15d54f859aaedf614b43d47b2aaedecc2e1d3e", - "896": "6ecfd9dcb3fb7695e8b6fbfd7cc47d34ac35f08ebc3faf47ca9f643564cfd22ddad3c5164eb29a8bc2a4d3996dff4e5cd8aace62cddcc5fd2d2516110f599db6", - "904": "e29e514297c63f9583e55788d2deb7570c32d2274d381c2b38f55de62fc4aefe584265d3c67ddf7084cdfff10651aa38b5f3399813e483fa1e6213fc02db5fbb", - "912": "e5cb4dd7cf948c406844e4069c3ce825e466b911e654050c9adfca415cc9498fb02e09d134e6207d7e8ce32a0e910c896c2d037349241c86637f2ad1d82142ab", - "920": "5bef12212516fa304cbf64dbb9bda0e77748518ed3b2ceaae802750c10410d62ebc4bcef5567bf016b4ff1d9f26054fd3c0d24475a550178a657cfaff89fccca", - "928": "66a7895e10c8d9560063eac0260d91e847aa31c3e664c52ff2df4b27f377672e9c8dc61e76c4ddb3a2276ace88e3c86b68af7c20cd3ac5d8436042892efd9283", - "936": "4f3935e226a9f2727e70c2b66d99709789163066803bfea3a95dcc19cc32dedd81f0b86ff687a7eb4b630518670ba4c4ff6c35c78b95a3b83d22c07b75f099dd", - "944": "d5d5df512708656669ae1e581a93302add1a509f15f4ad7e8560fd811843ca8b57cfb334c234f85e61425a6468494e4dbc956d62aa19c71d0c41cbe0c7e486ed", - "952": "933e2a4371380ef2cb2ff40febf606f743783c60f2afcf0de4602cb1a2551d8103dd8055bafdb90eb2b14a4287e18d199ec8d8e6f4abdcb9cd1951cf219fff12", - "960": "1c7d3e1437fd7334d50a88d4d1d6b693e7ddc9c967f25b993ec0c29e81dd1994004af875835715abe06081408c5a978fc5ad2af5ee267603455a345a9d2213e7", - "968": "204f3402c35d539c060832806a47d8bab0c208a910d6125d2d639fbbf0ff7c2fbca28a8513123cb3800ffa94bd1c3d2824e912aa41e20885ec70428acacdc3aa", - "976": "626a1f49c1f1fb1c91cfa5dc9ffa4c06df7df85e19eb9f1117158d58ea69368070e63d008323ab9da457187dc646c20cac32d9526aeb1032f0237028e19fa8fe", - "984": "040f8762b49ee8092f5e031a762f4fb649d7ade9b470851a59179496f31ff71287d280be846b67a1b916935bd5364cdcd1d046b48903ca46d924549a3d4ef318", - "992": "23df74c446d0103ea39d1d11ab3a10dc9b2a126f9ae334f8fcfd05cef468ac463dd5ab9c1b473cfae1deb334c24bc54b5390069617365903ad92dd4d81be9386", - "1000": "f55854eb5d1b4a130ff844fa4dc77561abeb05bfa7fb08550860ec6f20889863d980f2954e49c54b853aff20afe9f55ea2daa6ae20fe268001ecc753096e56ab", - "1008": "74f481c6d3bc06dd2a009c898483137cd191ebd7b6ccacc311675c83d68483bfb25e80635ef081296d984a8d7fe9f9f0fae766e016f6c2484deb5f49417d2d87", - "1016": "564eff0f0249ef30e7e9fc2ddab6543b39c5bccd7464c626694c9e16822950e2519f4fceb77e645b701d7e9a7d94962ac41214f706a4f9be9c65b2ca9cb41633", - "1024": "f286dbf18d8320b44098e99be7b974ebdf0da2c7b6e580bce54f6a27e2a114de140e4f49802d79008ec5f405f58f17077f24d5da007a24db96c72dce2343991e", - "1032": "cc6e4c03e096bda1160a33c343e536fdfc2b6ddb76b4be868ed6eae2341060382ef881b7304d22bca90ab20ccecbf82f04f1df4938f15b1d162c5ff8f5c2177f", - "1040": "98076312fb1944d9e012e617a2ae8edf75b39d92c9cfeeef2bf8c4b7d9a708b5bb711ba4168d2f8b4e6a7a170da6bca15a3d416a494a8abd8b702762c35cba35", - "1048": "776231ff4d39131e40a808a6e619c3a5634f86011e76732abc4fead843427e6e7c920e6c7904b4d06c44c91ee23221bd9dff33654890911930a75ff9114f8f7b", - "1056": "ee562733c4e527df5af361751c2f32e2a5b2b9f1fb78684b321473efc79825cea4f14b01e0035b842aaadc50383a9fb5ed21872e00904ecc61ade7d0c67f3dea", - "1064": "acb0f1af3ec2ccc140c1d6d6a4eb0dd40a873cfd2f44dbfda80be65c9196986fd19612297f5372811a6bcb848aaca0a54bf4cb44df0de20e8902d12f73794272", - "1072": "feafc0682eb3f9637ec04177fcee27a776c51a2ac61519b2b7c2386ff851d88a79ae4f005aceaa7de806c50773cb7aa670884607a20a06eeff924e85efa6b1cd", - "1080": "d890570c151ad4f0f54303894994f27382ff0cc22e85b3c9f89269d09fa5ad997309925844fb072057b1ecee8f527b39f9709bc117400d08be168189ce14c54a", - "1088": "8815eb9d6fc14fb1335d8d16a08d39157585fe43850470dfdeec60d028ab42c2d2a39f9e31a7a951ba38413d94f3a05068b069feed85c7295baab5170309507b", - "1096": "8c43610db9aae73a1e69ff10d2482fcf7ec360eed289d491f7381dda6befc94cefdaa7fc892bab89786faca1f4796c8dc8e3c085ea7cd204afb5aca12830a0f3", - "1104": "fd00696edcb29fff3e844bcdf3814cb84d9e68943f26210e2934df017ec95a1663b97d3400c853d455e03c0b7e90b21825e315b4926e49fbf16beb2188cae82a", - "1112": "6960c3931dacdae462ab699314dfdc6fd9f2fa3ec14355b23ca6c9912fd5c40b2ff1f2f98b3b1c303991dde1098ee256a5ade9e62355b2527143655cdcb778ea", - "1120": "147fe0c03f78f93f71a606a0f5b32cbc5e384e28566603a9fa589b33bd60f0913595b408904e97850a47301c7226756564c254ae1cbe54003c9696df45ce95cb", - "1128": "1534764b93c729b98bd56c90b0d5831f4f70f9bf4e6caf32d76b3001f301ea6e051c8822eac80e18b158e66e588ec496db858287c43f5dafddf60b461c011f9c", - "1136": "824438d638e59c18e0fb5bf4d0eda28e014a36d6c7fe129c66b57b55749a1f615cd8d68ebc62b1b5c61647b1311bb83b86e24011a1cd2ff8865e380b52772f9b", - "1144": "6c05faa8bc81cfd35bc6fa0beb22130f1b8e897a40f9f7acf80f7c041a9ba3eadcc4c1a983c6e03ff152334237e24daddc42ea26efe1097839ef683195c75361", - "1152": "abf9d6e4f4bab21182a0792d1d8c03238b3bdb62791bb479d054ebee9875f8809eb3fbed3a930cd389f5b01ec283023c823b1ab20bf2e6ebbab254e62f3436f0", - "1160": "cdb477685cbdffeb8dc00a40a3dd5792cc6f57f24d8bcf7deff78f1782302950349e3daef6d8f097cf9a3839510f0e21dbe59a135d19fb41633908e98f72ae80", - "1168": "1f0977d99922c09f31a6dd1dfd27915a9f273b0d5d3e86451ae00bb46a9162714a4361f369582870f05a17fffe2adc095428b649358ffd3166d10adbe866ed27", - "1176": "458b15c847fbbc81af4742038707ab1806de6a7f9ffd3cd261246526c07e24a3e70a10c31c0d907a90533713ccf8fcb0bf34e27a6085e84e391ca0933b0e389b", - "1184": "ac29f1fd6e5e1aeaf00b6147e4a5f0611922d9ed4c9c3e6ec2dfb93ab42f2a6f5a6f96633d80417eaae0b56361eb611fa631a2f9af584446d808d2fcf5177705", - "1192": "09fff1cdd75116132712f7c2d05d03082589a1dfdcf538b533c22070bd697a6a88698714a3b9227c4599f4cc06fd5db61769e44158c9ecc66e793637b13ec9c1", - "1200": "08095c8d98071be7615097b6f2b33e610b03519a8d7b199c7e70643308f3dea68518c4cfbb804dc506ed8c9e918869dc28e1b6c6d990fde81f1faa5c9817c976", - "1208": "4574d5330d294e243ac440c10cf9defee22ce9856ce3186f6ba50da421906daf4774b6f77e0b869e7c17ceaeb6c3d380b9c05fafc66dd7195c2be9fbc43da2c9", - "1216": "0e67c9d177e47f9c7307b15c3d8e6d01816d0768e3bd3056d5daa51f64d70091f842d63d47ba871475ac880452f6ec08c201d8666449cdc4c124a8bed9697159", - "1224": "90da54038a61986e9b356fc39bb2e4b0ee138653b4e6109fa48bcc1bf289962b131fafd1abee954c148cffaa361c9aae7a47b4f2709ecb6bff4d4661aeb279aa", - "1232": "b93540b5e9c87837bef6047a2a11f4234a69cab3259cb41c00a5db1f04deb3d610af53afef8bbba808e8ca2e066a45f43ea649450fe3161e759a09c4ddbc149e", - "1240": "de0410e886585ee9f2773615735f6594e57fa6c7411110dabde1b9765ff6dccf25997920b6969ab7ec4f253a4e067bb71f805e502449062c02352b619f98e7b6", - "1248": "82e8010dd79cebd8142b86f53513b84d5b61a8f616fe5b9e4d97319c4f6d374bad6cc49cf4f2fee34e6f2cbe5f680c643e6003a3ce86cc5042d9ef255cd9c143", - "1256": "d0141cf052c04e6a576681911e86a979a8ab998860c2c6acaa5df558aa4d2ff7c2093ce2d022951e5113a3f2ca33b7c173a76162f9ee73beed50c44be76065d7", - "1264": "c011de8d1205af45201e58317693e4499bc78bba93ca3ce305b2fed2db61ab48a23070fd5d82f4b686c090ba209a603b0d70a7d03d853e5412ef033911562636", - "1272": "60a4e50ce5aa52a461ad07a5e3cd0b4be604454ce1f8fd12053b7acef5822743eb55ecf2d716e18a872b247c2c2882eb68af1d314cae9711dfc424c97518dc98", - "1280": "9dc6ec60223bb53e4f9e15886b0191073091f4da55cdac9327682c6477fe2f6683030126216e7d72e7eeb6af1f497060099658eb5ea094eaa29142336873db88", - "1288": "5bd3b863bb0e70b940716d30f0d7a9abcc6779ee94f0e73858ca66c947ba743c8a42d271956ed0b6f7bf4e43b682d71fc80236666c5bdeda1ac9a9f959422c88", - "1296": "c672dca4220a8eaa389c16ce92b0d8531f8bdf301217d8a318a8136a029bcdd52382122ac33bb255f53695dd6f8f2a431fb7b27e4bc7978b5d9613e8aba20d20", - "1304": "6f68374e561e5d23603b8f3a69baa514293232e4d95bb85c1a77c60063985c67a4d8b48b95d1160229bd493cc6af6160ef35fa0386969be4c84c331e7ebd91af", - "1312": "4155f64f6d8c58f214d0ab410023faf687b5848163d110dd28121c8bc8cd7a5a9232d7f0533774dd610e095d61f23d0b889bd3c7a4b94535299272045b969e47", - "1320": "4b18e2d845caba2b50b0f0b8b0554b3b9087ff55045e0fbd03338c18c1d789e6d92eab000526c9f027a1cc7aac821d6e535ecaca6cfdbfc49393229026cb5a5f", - "1328": "b724549133ab768f59975f70485c1bea56b57c7004cd25ab07b67a184089aca6c06b33579d36637ac931335db4741c553f240aedfac088362af6b363e40053af", - "1336": "9482b018283803dcc525230f2e2ab1d5ea9a071457a874bfb094b078fd27c1864b666e0ab35ccf5e53b81d5fdf7a4c282205060e8fe3803d5f52030d912050ce", - "1344": "9b37398e4eb6ac51da5a966c4a5f1a98e3c28be1dcc5f95fa3ea359b5ddd7bf992b8deecf9a64fe54aa9de1cfaf1e372a741cc279965b7e6ca86df0539081610", - "1352": "157cb06309447d677744bcf76070bb833275e6570ca716a80b1eb021a9d74ee0e56d940a97f4bc9061a72ea69548c5a833fbd355dfdf56bb7cbc86e74caa1cde", - "1360": "cc74cc63bcfdd888ad1014e83164332141fcec71eb130ea53b0d4a59f8bec299ed771af1afa8c930bddd55cc8e302b4ed692f48ca67828369439177415c780c2", - "1368": "a9905ff964d1746258644dcd8a740eee86b85c67846f2db02420d6c4fad66e5a43519c41dd01feb5c096ed0c83117af96167e566f532f470c67103e238bd0262", - "1376": "63b4eb48320b572f5e3ff060ab4ce5c0939abb81f0afd2164c0f7041836204dde4834921e0cabf1af0c8717f151a33f95c882a51cb9fd6f071e2ed60f356677c", - "1384": "51f9b3afd9650636ab1fe5dce91db23b2e4b6d255db50cc25185790227b13466249b2983fef28635d5350f4ce6d020a39403e24916d52371be2e97ca000ee9b3", - "1392": "ce8cd972c9c3df3c19af505b839dc2d56ddad806280eb0aff2c129a214dfacb380d765d6c45fa8955d50635c7eaecf117ac81621fd339785da5edfcac7e7c3d0", - "1400": "cd65495d36bb3b3e1cc90f3b0b843acbc63dacce995abf856b70653fe4a8410d2554189e9f0c1a22d4e9b514d4904e39dbe50e81cd6832f21f32879dc4b63d90", - "1408": "23dff7dc81c14d6d0daf7bfe8b3709bb149f2419ed73e3edd78447e21dc5ee559d143a1ee31c7118f6e44e5d770afc5b482cd5bedb4a2738516dd9c80235b958", - "1416": "72b1eb25769ea8d88424b1be264be3f61b6f119c9aa8cbe2d4e9bdd564dd4d92a16d1af41e43e5ff9caf353dd25cd4c8e5a17fee1fe8a9b30b7dad993c9e632d", - "1424": "578e4bdb433d45ccacbbf2c33dc88e7dbf1d4fb9943b7faeaf8d8fc559cd528e75b48902a18925921e50fb8f6b57cab03c813fb671d461afcc1d7d670d4f8f93", - "1432": "4d6ff3ec25242d1acbcf803c49e7cec8f1b1d0c71696d19092b47c3c94f2d0e60351ad326c849559b571b68cea80198e9de224b7dd4f8d631a106d5d9e954f85", - "1440": "4c0383c6af0a2eb8a97c1a39d1cdc4f26934f09ae2cb9adad858a9edef9904fef72405054602caad3b1071d3061f126484692774465a6b20c3183302a8acb3ac", - "1448": "c0850a5d9e1cba2c754f3cb1c32bad97abba11b8ca92e2e10f8df158adbd50e29e90eec4206f9e619d3e5deb3938c42cb78f8eb999349c9c0320e8dd35f57921", - "1456": "74a262b9fb6318920ecd45ae5bd48c934bf911406b5cebb8a61c5ffebee5e917ea3dce7e88d3ebadc97ba9773735bcea3002df8506defd38fef2678971619e6f", - "1464": "3ef5e8ec44d99674ba757611d5dd4258f4b3d24640464732c7e2240732e2fe339ad4abd79afc4fc2b0bb0a9d95c3254bf310087fc5d8d318aed7d73d6cd9ed22", - "1472": "55ad18009ca70ec725efddb0aaf96a794a679747cb1678cb03c85630f6ab32f4d2b8e31ec6fb9623abce58536f84699746c70e8d1d826a691771f2d98671fbc2", - "1480": "70c51b79c1f56a4d6c05447462ecddb9c994a89f331b9f1e2ab22b2f9148134429de45a77397017c2f977b9f59f8fd7d0b003a81036db15e1a3e385b1fd11766", - "1488": "ce2f82c937c459a01cf69ffe11d0c288aa70f9f216b32880e10decf4fb9c7e23a080509003d5662bb7b869258813fd4e5090c93caa1fcbd521c6a0fe9089cb25", - "1496": "d77255fcd63f95617072451b3a67643e608e9b58b76521bfae08397ccbc72baca7aa7511ed4a99232d02a472c6b6d095f6de26fe17d4f91ea6483ea0ab9e1929", - "1504": "8639eeb9311a5d19a817a7e209d55d8f29b696696f3a8174beaa98016b4aa7f2e776c009cc797493e4ca7de59e8d6bfcf46a76fff70a3133c57e9c929e893c56", - "1512": "828eeddab0bff8d4540346954290f6cfdfaf22f274b6dce68556fb06c36f799d3e592f595dfddb21e7f6740a8133a4d08ad9c3cb90d56663565f553180f5d09a", - "1520": "aaae195953437814ddbb6ae0cd48f1da6c47745934cce777b6eeecf477c4f6ec89c4cae355166f120d113931d42cc98da2beafeffae457835a98721a28bb0940", - "1528": "e52861a5bc026e2d100fb2177c0f80c2bab7cd4e8bfbfdba14f36b325c4b3ee6a2b468ffbd78b9811ccfc4f7bd48e1ed405e26cc33424de21dad5f6af8ad7e2b", - "1536": "b1fc2f5605e2787103e0bf5f78e4017410e9c087dc29215993324ee0789469ce99dd3f7e879a7fca2ebfeabf0ab6eb3ef1af18921121ce7c8a97f4629df6b711", - "1544": "008045b53154c8bc9139ac56cb07794ab6bda64cedf5be424e57ba3fa21458704a23717fefc1628fa1cf2906ed01984f98d2a3a9b6f66113a6ef7305910b1e57", - "1552": "49e6e5322ef245f2497e7f9e287505ddcdf925a2332e7d2b58235e0d1502908115424c9ad7cfcda5075e4cf662f3d61c257df41299979f273bbfec0a78d60bd1", - "1560": "54fff5cd21f2959d3a47f4f914fc44316e4dd97b4afeb997b9b17e2376af9e9518d6e2dbe4b41bdae8c4b4b6da475ec71575e8888d6d79fbcaf978e871d493e0", - "1568": "e8a9dd361a6752906a3e1a917480afefc65c5ddb83697866b4848c19193d8a2b20d2f9f6c8e09c21bbc0101c5c868b65d4f6d1844722050f11b6961d80621ad7", - "1576": "1df06cc91bb24dd34fc731f8082d0c89296ef8f1aa6fd458884c90a56cb8f2b9f1f7948126ff2bf0c5777ce8887bd1ee2e3de6b3caba64de25a22dee5f91b6d6", - "1584": "2c248ffdf8e86b32e2d1a6d0ecf2af64965efe56007bbfc21ce77a8df33100d56ab90effed8b35e4c090fb8142effaf940c786f12fa82719733daa2c7994a59d", - "1592": "326cd82bdd6e56f804ff67cf5ca616d70da461538852c9762b0f7b9a85e6807937565d781d37366e5adf0256e22b912c74438ea5cfd35dc7962760b5a0700976", - "1600": "9aacb0f6e446b42b881af55b5452839ebeed356a76fde6778495cb1f20f6037054bfd250c001ef911433e4ef600e292cb9f57bbae08d21cf4b021260ffff6ae1", - "1608": "2b0abac8beef0e340d824c593bda2b199d5f93e086b17332fc26b289efd819e3115f5cd820716d9329fdf7a078a0ae8c7335b0f978d5b2eb9245f9ee27aad72e", - "1616": "ef8258901acdb51cadbb8a830f3c4b35d987d7774185b2445adda941d4c6a999a8ad4a5bc5407dd80a0c969a8e63064c304351892bf7817b2b10cce8d9deda7e", - "1624": "20811d3b209c7bb5a666a0e520f452f2d6f17f4344783c92dfd9cd494fb6041994ba173f83067bd01cead848dc1f696b8b54c08a3fc98f6042ef3d469b88d1cb", - "1632": "97fd69f907687d2242fe1686b01a44b1eb549425e0550ab35cdf3e1cdeb55f9373e4c2333cc31096df74960ab5a69ab92dfcddea191ce6e20a5d2e202688aa4a", - "1640": "e50981094c5f916d172cbeae80f794052e88f58049f14e9acc42539c47eaefb727e15daca5c6aabf1ca064170658e63f4f2845e9ea74c5656b0c4d43fe91ef23", - "1648": "8b3ea2ad35c58f5777efad899bb91fe25dcf50e5f028ff6b3e448cc626575f713752e6985300eaed2078b2bf04cddbd9730f1dc4c66deda05bfd6f07ef17af75", - "1656": "18f0f9d1f9545ad267251c4ffc3e86ce3823683840bd58a9a86b26a341637491220f65371ec990a8720b42774fd4cd01a620c03b409bb7283b8892ddd17aaeea", - "1664": "030918c70e5f06cc58a93e8e632bbdc416dac362bae6267de7b4b2bdec2fd7873da10b557524229451ac1ddce7ddec8170e601eac1afc6cb3e386a694e2750d1", - "1672": "89f77a9af357fc4e1bec538c3035f71a46502852d8a85b5ec533071688060a774c32aaffe75354ec93a63402b9337f562e7bf8d4c5aaa307fdaaf0a2e08f97ce", - "1680": "d4189b2c8122d08d89b82bd1dd91cd2ee2aae0282fab602657f618503be98508b4fb285d6b62c2a051ad2b746cfaae5c1b9027dec73db55761923bd9cea43122", - "1688": "a17bb9f4f70d312de80fef0c32e21fc9d10522b52553fc1a51524d00fe68df40f66f1f2d72c8a62822dabeed29393cd546046abe4fa06f541122fdaa32fc0ca8", - "1696": "e1a6d10543c312679c191960443221af315708f297ea9c5d328d03c632c6c78d96c6e80c7abce8aff6795afc1d6f6643ae17fa51328e0631c69031bca2cd3112", - "1704": "719d487286491d2909df02c18fec02e0ec55f62e5b7b3e8fde656e2c5a91fcf7ae696d46d940f0950dc5cac1bb90ad0f76c9b7f051d2c7fc90922bf4ed4ed394", - "1712": "22b6c3263046ed0807458b636d6dfac476968c12f92718ea0dec939fbceba7d23ad7758080908dfba1778f24f56c43a14b757d28b158205552cc94333dc0f7b5", - "1720": "c50f803ff59e7d9f08463d128ea9eac8d44fd7d54b58865a3f3b7f64518a3cc057bbf1dd20abdbff3c01abae4f2f226ac58bd17d58489b43a2d3b9e416f6c06d", - "1728": "a3b6548e022bfd101ca18d32dc879c2ace87049fd62191a71cbae78b853da902007ef73de1b83976a2541c9076b0663c2be65fcda85d7477ab0874a1d6c33718", - "1736": "01669002c51d36741e21bb32f55376b516a48f708ed38a4f0324b47e563711f3d0e1ed1f6d3f612a31db08c342292b37abb10cf1d958e2b1aac900791d165892", - "1744": "275918660c78f6875d323eb8e6199b71c9c6905dac4ea748443d53d8a4a5e2d39ff34e0a5d4ff0a6da0b0b2e693907f733f905b8018069dda8934690a9a3ce5a", - "1752": "4129c6878cba4e725f3233b7416e8b450c3e5a9f6a00da88b2f3c2743e649460106f4030c2f8d975e4d82c14a5c2267f914d433ea158e0ada8c1e63dca4b913b", - "1760": "1e3e6e60b3664c7cedd3a5bc5441f0a719e97ce96ab17a9c956eb7263874589b62bbac93fc085439567d349efe7649fc2d26eea5f5f676fdf69c6057162108b4", - "1768": "a9fe458ae06866ca64c1f561a140b1bc56bccfacb03a54a8b0d491d54fa20a85c2b2e4cd1dd6730d526c40453faeee7550e360de988c66c1813375d79a3cb5b9", - "1776": "76bc5751da9eeeb1182f08da72393a20e53ee63edfc3f61617d8851a9019dd566ca79279d2749bca7170449fd6d680a5bcfc74149cde2b22c1121a42ac1a95bd", - "1784": "8dcfdc47fd3691086ee35b3ead3db096bc171430a5fbb96317b2e413ecdd810b8a2a6072574ab9dc04bba52319f7e00ae552e0de423a9906c6475826cc963c4d", - "1792": "f8f13040cffdba238d06aa5153c8d85b0154533e050007e3029a859d77269f8182fe139b618e730aa6bd858ae30ec5b499ba5dff51b1b96e26d41e879920a4a8", - "1800": "6aecd795232fae8603d11ef0c15be409cd2c7d1ed21c7ea68207d5e467c59f0ac14d872f05388c1ef956b2f748382d7608377f4350fde676c12f1b52384b1963", - "1808": "c688efb19ed78bf81f881c555fc40859550c34e1fa7c8ea682929f257a33c9a46b4ebb508e5d57127361086ab3edef255fb1e4e7b458b1bb9c1dd3a456ed24d4", - "1816": "92c1ee79a08bc3f82ee009a9c8dc1dd156cd769ffc88e00c08310752525f47365b857bfa61ac72734a2d2fa51c214a9fb66cdf783274db65154a687415ea8e97", - "1824": "7527b3fd396ddd341d379357b6a830402248ec85fb3d79d2cd728d59e056774b987de459c0fdbfc7a9daacb56264509551aa980a54b71cc6aa13bd6d89bad448", - "1832": "8405894f29013c6c0c794e14a4f23c2324a4beb0b6bab1935e7f9ce886b3b4ff2bcdd32bf67854e044330571ce8dbd5948d76c2905bc01ededb1fb3592b8ab70", - "1840": "e914c9225112204ab43029bb1cb2d742b8a8ad849c642620c375c70e9e96147de9dd1c17e8e3e21252b6bfd7a0ed210ea9143987655fc1ba34e610ccec640bfe", - "1848": "b1f581c66a9d63fd0eca2293068edbbbed2dfdac6c358075b169705dbdda1823b9b37a7ec81bdd3d5bf04219c15effcc0cb3ea669fdbec73bc67064e7e01690c", - "1856": "93c7e973b94d7f53dd2e40e55261a2ab38216a04639cced3043329be55982af1105ae1eeb528e2ba92b4a5fa77ddf0314e98947984caf30716ba7840f04fec36", - "1864": "78772a0a16044a077cb6d525cc1b0720021e367b0ee1a56141d6a6cbd61ebd891f845645374e2881ee0d8eaf5e83b695155efea561145d43d0ac4a88bc1156af", - "1872": "977ec96c23688393f34139252fa3bbcf40dd7fd5a23e3cf8d62c0d303fc03b3757f7cf897ad558e25e1fc1d4e3023902115acf5f8f1c00e2d7258db356f3e89a", - "1880": "d00d013f7c1b46f1bbcac3e564b2de9860ee836e9ff1a74c5cf9d2b6c47a3563d9c5f1088dce59c5ddac97cfd6e0c4c58509a44d7116d36f805108e6a6a41f53", - "1888": "f0f66aed41b4a338e964518c9e25d9c75a98c5f430fd2395be98a53a1e62e3c755d7833fab9f1655343bd2450de4163141b58be8b40c772ebd610184450f439c", - "1896": "21790840debf32fcf91411453f135437593fcc008fecda47ec7f8e00cf538509d473819fba26abe11bfec63c168a7d0088bc603db1ed5d528552b5490f97e4fc", - "1904": "aefddd94f7bb0a7138c7391eab42b08101e55c9e7cb5a69b78e2a1530b1ac6936453c8e6cdf3efc5e138f7017d890a5d23bd65ed6cb4e5925298b01dc8f4ef2c", - "1912": "c770d86ed915368b1d7b2adbae80d56505685e63730459c45e56945369f1f94238b3da437c836cb985ab7f94eee250726d26c6c42eedf9a04906d6a6456b71be", - "1920": "ed24eef467c1d8d8dde33451855dc5fddbf985dd5665bdfb08f1b173f1b55394c5d6549fc372cdb5ed1e664231965a2b08c76512b28f15172ee4fd9a0ce1a3eb", - "1928": "3fe7c3d766ed1fbce0ce913a32dc69143f6b4d58ef198b055fa8ed516544171debdddb078a789b77ce9ce249c4266a1dc812852379297c95a4ab86031ad43c82", - "1936": "c0e3895317540e9f52e9d69fe01f4db198f3afe5c249cbd4b60e5d88fa9d6cf033bbfb1e1824e33a447db419220eb3a159e90aab90a8c728183548a172f5ce21", - "1944": "be62294de66bc742496231da09639e63061c9431cf7d0c037c5d2753157e5cfe888886eaae8734f441384a875e735301d3614823e74bb9ff2dba66b6fec4763d", - "1952": "096bf2ae428f3539791a44f0eda76e6eb40b974384dfe73b97ea6f8c8e3aaf7f1d1104a93db195ca87c4b7382e2eba34f21394afb6ce823eb6f44ef9d427db5d", - "1960": "84873e7602bcc51bacdb6739a55566d2289e1ae10f978cb74ac29286fa4f1286aef00189f5cd4d1cd0c7c18fa6d01799eedb7f1059d327356b2279d16f8d6e35", - "1968": "cb3aa08b531b131490ee47660b3c3cb798224cd8d53286c46260d95e57ccff4d33b20372ef2eb5120ad6b1b8e551c4cc12a2142730261f03d88e97620ff59130", - "1976": "85b7d8a27ebe298a5dde020f39b9d80fd5d544ed06518be74e3eb028fedc320ec87f37d9db7faf7dff7b4a8a16269428a293e5a3cbd3c5fb1a4fe854b1b6b38a", - "1984": "84f31ec20b0901c3b00e5216890e187a6d2b351f0f83bc01225dfd79cf70e712f04af7e7d2a6118fa02aebdd59ca84e6e36a9e58b01a639bd1fa84d61fab5a60", - "1992": "5627b461291f6627b29f015df17070d37c9adb54c3c395680eea63734cfea490f8393eca9b14083d81a95f0ae58e857e9ad9625a244b6ec66ce042573ab72108", - "2000": "98bd293844fd968c8ea74734ee79c25f05c62c2ec66630fec752ca256e69173519dbd462c22c122e1527eafa912e78a552584acd0b878421914a3270d3e53c45", - "2008": "3d35c988460d16f2727536c089be2683a4b933946f4f0ec68f9d9c6a17b8a4e833c93422ab87bef7d5a6acd768bf83da3c16f2edf23ecfba6514b133395aa060", - "2016": "29c98bad60754f6b402018c115d2aaee1bd2a79fceec243c616ec6fcb2af0416d53b74d9cb75ecb47bc702eb897a62a2975edcc351d208224f6a4e39aa9c0c88", - "2024": "a23f5e918f712b72f6166509cece483bdd6e008644e6ddb71ca5e2255a49a14467bef7228abde046151143b19f3dd41a4d63560b3dd399fe6fdc08c7dace814b", - "2032": "e3646cbe68fae56b11072c06be1a9fb8018ddeabdafb9e090f86126eded266622ca862b6343569f90d102dbd347285a1fb333c6e45bce053e7391bb2c493ccc5", - "2040": "9bfee65eb915bb72e8c3b213399c4f6b3f26466ddf7df39773a0e08ed2066419d4c68f8480f7d79522a244f9a1c73b1f1ed2ef8ad8bb73167b2be438810f65fd" -} diff --git a/pkgs/pow/corpus/echo.json5 b/pkgs/pow/corpus/echo.json5 new file mode 100644 index 00000000..42e7a33b --- /dev/null +++ b/pkgs/pow/corpus/echo.json5 @@ -0,0 +1,260 @@ +{ + "nist": [ + "158f58cc79d300a9aa292515049275d051a28ab931726d0ec44bdd9faef4a702c36db9e7922fff077402236465833c5cc76af4efc352b4b44c7fa15aa0ef234e", + "dfce37ca6f32ba4c3a72e77bca20e511a39b31a6075815f083db2ecfd5c32cfd6a4e0dd9bd51921199758edd2fe8ed0fa31e06aa821c7030653d15408e8728dd", + "ed784a0fad759baa6504c30c46ace26a24cc982f1df81d3833eb7fa0b9d82afe4bc33a211bdec1e4b29ce0a30fc9e2d71b947b2ec1b23d4787ad3578836b8481", + "98f61fcd1e1305994c9af873b9aec05d27aa301c5a7974c9c63a3c71758b92e5510da8e652ca7a27fce4f7d8c74183467ccb1addeb1f8c6de87584ca31bb7367", + "13db296f38dfe5c337afe6f595717e600a4cc61cf0a5ac90bcb357c43a68042bba2559c2db2eb5d096d77883396d69e25dd96805ff6d160cd81d0268bfb3b32d", + "53309f9dd4cc670f6d1ab9a21f4e5177a6afbe7f5f3f1f65f195b03abf5a3acd7737e5afa368d3a50e9e845aed2c2a0ea3bb52246a8fc553e767ad265a278c6b", + "cc134791739799d501d8d1084972246c5dc84397562cfa4746b59474ba9958111125b3f186d3243d4f889c176f7580a63c6421b63d521bb869b38265003cda31", + "8840870eb0bbe1e96bd0a57da3dd443099612f3d6f3131b645fdbf332a26356389cc98e61e40a5371f772507c404f957d00ffb8a6f42e9ad8e169007d7a3a9b8", + "042d9632db0a23fc10292cfeae5cb7d9317cd4f536eb16eaa25909fccdfc86048076a13a5c0e22798998840b4745ee1fbf174c07c189536ae109abe253a4c2ee", + "25b4d2fb4366f5592e057cbae28d8bb66b98c1ddd43ebe0a3b02338cbc862e7d0ffae8bdeeb466c9a01f103cc9e9f7e015ab168861dfb694867e952cd1cdce10", + "9de0024afc836777ab0f37912e548f2deabf2c553e052fc87df0b9d7ff2b704e453a0c83c07ae94a0bcdbf5ceafeba74633329a45c4b7b61c25b2689148f758b", + "4d4ac76aa990b7ecf713c1c7ae9b23a8c8306d233e319173d52f67b71903abcddf6012363550139435a6061b29c1946fa76f060deaf09b5e070342ade6672800", + "d610c783bd5c09d2c5478109c5249645d852aab0868e24aa957f67b0984008dcd9c69232b05ad43939401d6abe51e7fb055cf3ada07ed16befdce4fc8865c815", + "f516449459367db00fb620fc28ac53e5d6bcb173862755cd5c9739adfb24ec3dc3a7816ba38193cbd87b0af490b938071e575184bb4e3a79f9d1ca0ce0a6313f", + "8777bab03843d8e51cc6a81f9f0e14b0bc4d06f54c4db7f4c9654729753ab693fafe085a6d26e3fb538aa05ec563dfe3c4881d2d3b9c43a460bd6f7c4993a881", + "23b984499b113e2343bb70bc20f7b308fa5c254895860d5c15e0e99cf02667ace22e1ea6cdca3716db6193238d3c5bc43f9b20e41561a3a328f0ab64e6203515", + "ea47150919586419aba6e67e4146fdf7ac285a53e98f9e1e2e949ad5907c2b73e9f36a5de3687987a85edcaec32af117cb4fd9650e358cc60a43eaaffc017528", + "e5d3a0c77470a1f280e429d94707e755da985c8bab92585f97ae1a132a0e45f32f6aed6ae2f12fd497bd4240c1a22ecc3d6c70cc6dc9990ad8eb092a75ad8b98", + "f188e354ae9980750257efc75449ea9162a82ac826001cfa2643e250a76841f968c54a66e1da085ebabbfb232f1de723edbd0a6efce1bfc0aab55bbd2d74be26", + "7ca6dffc8b35da5217a48af09201f392c93c7b1b7b47c8537c6a39cb72ba897e1a734a8768d432965e101317deef9515e6566886df354777515436b2adf3d333", + "dbf090024e0c28d5b974bf180fed57431c61d6c89a1d7ce30a0eddab9c086a873f8ccb3287d7c37680d85205c1f49ccc5c3377499e70b379df0b8588727403fb", + "4290cea272177f59cebd22fad99b195a21dc75d634f59842299e690e01e05ca7cada06125d23631fefa14d0c0af9a3fdf4d2510c4cf43e37f83feb7ac17ea03a", + "ec6bbb20baaebef7dd91b4cd323556de1f9db73cb90dd27122946695bf55935cec853890ac1a293bba2551ca8ed09f4b35114f77289f91c62de0091d276154a9", + "74c16f7a41938706e4588196379e97dafb6bb8c8d504748b95a783fe8d110cd4d9c792fffedae8d09c7604ac4fffc304c6c57919b1bf85909bd36dbd8c085f51", + "2d7ec63594f700b2c6dc93069c987e0d85d24efddb938249bf084b2f111e979b923cb356efc2a58c53dc5608e4e26e751cdf00dd81f21d670ca00e05ced341c2", + "863319fda78490cd1a86cf99c3c37f9b1db832d1f64591b241b63ed77d8794b5332dba94d3ce7e6da45ed9c660495fef7e65285d32980daa3a0184f984cbd09c", + "30b0debe86e1a4191ac1762b6a35bfad77533fe742ee56bfcfff7bce6e2035d526b97b60ce20b853d8ef13b4624c7743b24b3cec3720097485cb5a2f45cad54d", + "115b2962ad1d346ae1f94e5cc953013754bb445fcaaf6572cd7ecb7219c0513d287b909f5c0547e44bae73862408cba6348ddb9944ff2da4c8a2693c2e455eb8", + "f8e49dbfcda28f503490d45034eafae7f41b16418367ecc5c4c77d7f2bd566eaa4528886cc08e247d83f0f164e2d076d275696838327f64ff483962510e7ca88", + "8d49512994a95aa8c0dd24790254560ebc0fa6bbddb40b3bfd42a5ea45e424625298194f9ef2df069a28e469d40d59822e9dd7a8a78f124707ff526e5503cd89", + "6fce051aad8c8b660756edc3f544eaf48ae846b0f57e67eb5439d8129134a2c2fc069da5abc01a859f40c52e35b2ceba04babebddc19b251e449d287e225ed61", + "34309bf83b6182d719f6c9d4f580602907af22b116dca33a02d537b5cc5e5da757bc70dfe9db325e1843bdf3888a45053f01f739b9804cf9ddf6927fa09a084a", + "a5f8a3305dc2e84529db679a9cd7602ba08a9d805bd5cf8d2b1917912a86b59346cbea61c50acc2ac25b10861d6d65b446e6d814d90cdef8ce1e4a35c470251e", + "d2e87cc6abd77450db883ea0993a45af767012cb5df7ab2724c85900dee78bc3eb3dde16d6a7226d629f4da9b0bec2baa2037c0ec77c8e5f36d80ed2ff0a6a23", + "03b7026db99a0cde0102562fce02d8c78f1d7232845f352a855c1edb7b75072021ef20662150d11824077fc14ae7b24663af074ac2a0926be3c1ec7f6700e3dc", + "e9dd8bba2fde72507513e8de019ebf793ef5ba394d0a2556c7c265c0c5b25147bd7e1302bc6c3ea7e4b81c0dd3c5b73af12adc77411d2749fd0fac4db02209b0", + "6a7c7603fa42312393e63a83f50d0bdeabbe70e631725aebc8251edfce8823bcb26692cbd1108a30e2881015f600e8096187366f338963c92a0f922675c88aae", + "45c6d764588c03f1f0d08432b7fd60e1a19c132245ec966facdbfd2b13574c86144add732b470934cafa66900a623b6d462665680f749590d9d50cc4e31c7d12", + "4519619bf47f8ecac16be719082f35646a6109ef22a2f9c64062470722bc6170d4dcd70fbc8a733e88ed6333be2b3fb834ebaf5da42aeef6ed298ca873b1a241", + "cbd714aa404cdfba8d08fd14781ea3de65e8b7457844362bb0e94c3460490f59c965461c39a43f49db1862d38e7fc7d94d5c7565f2042eea05890e5f8d511e4f", + "9d95aee13f995200f1d152139d53c7e0341f328abc3c09df39f30eb5588b35de1a84879a9a47dfa1426b0592c93f03c0d0d7efffcc250e26aa14b107ec99dd78", + "eafa8970ae3ed678a216f9e6e61c319dfe6b96b7de35d41aa72526944d64da327717145ab00990455743b09907e4c8a77b3ded542058c96152e3f3512ee12e7b", + "ba905eb7bb2703e655e3da3876cb53fdada2f051cdb2ef357d0efa6fdb9fdf0a404579065192a2bd58098c969f8d52d9fd68ff6c32be46e8fb352f51c3cddda3", + "afa43e712fe5227608088601924cd12e5c78439509562271ea76698deefc392e857af9f986d0572934811feee2da601e8e08e06e09fe9abefd5d257f52c2b1dc", + "b9b1f7ffdceec7bb13c6bf1e7b30d9454d32e335d46009354ae560bb57c865eb12e4a13e2a39e5f6d1133b5aab8afd4037e963d714fd3d598175bc99ade59836", + "078d1012588a38a232337b540c13ce2c380d9a55035d13f060be819b0e0fd6004233a533ebb43cd80a99fa5c5bdfca9399492a2fe032c3d2e692b3fb3929e00e", + "e55fb0f23f3f11948dce93a8c9f7e95e09b9079f3786efd0f5aea75f90341543ccfb2934cc8e20e0380fb098b8cd5dd599c5e28b60efda564ac3a0ea08fcb194", + "f6981846ff2e3b9778c3f4e2d5b9dfcfe86cdeb208b50c28012c6218a3c18cbbcf8e0dfed485d8b617d2c06e4cb277a38ad1417175b1ed53b4b10e0855a58b8e", + "29c579ff5faf777fa899b3bae55d6cb1510c2bd042325e47049eed0292e5b02c790ed1cb6301552e72cce486476a4eb79dbf8b9ea139de6552b34d162a162501", + "0d0e36e5051f2e60fe4f2a3df8756f984caf1628a9f7e52ed8216072a1352e6bbf2d1f8ae28f7d85c52d47c71714c0dbc9588547322e8626d7513253d1f718f6", + "bf7280b5a30ed1fc588ec8609265aa8ed4c821513ac469a3add595a6bfd4ad924fa405241c7d46573bbae9539e8c0d209cf3850d362de8dd9a3ea933af652460", + "09bd34c4f89731609d554a37cf0f669bb8d608d6e883a04164a1dee0cd1adaf8dbe858899f64020f7a6774fcde70445680d1b33e71df0d242c506f3ae035fdef", + "028a2cde7448a18cbb99c94d925a9aa1768f0bbdcc5bd25a44397c44c538dbd954cccc37fab62107bf684707c6db1df039fce2980944a5c488210a9e0a1567a5", + "d88eb71a5a4cf64e0094f8b6d57a54425018c23083633ba254cb956a2361a61fabb5215fc8130fded2259a05cd46af11988969abf67786f1b9e6746aca1738c7", + "d23aa8a7c1b7c3fd45fa86478c8a88b87d5a7423021cba17b6ec08dff0536b1fe5fe039c528e380b0fb47090e15a795e6912eabd000ec0908ee57bbc57c5e3f4", + "3a9da3d5edeca4c821fcf26a961b311ea5b5d148fad1046c4108b7bd47aed2b6d955941be0f53c7e0deef422b3e1f43e7c0144828aaee9b7038f899d87d968a5", + "661ee6987dbed94aa98c58e1545f6af1d8b02481a47163f14a6309c7ceeb4bbdd02ec0dbb2dc02604da5c16e1bddb5462a81f2a038663c89e60ec270719920b1", + "29c672f2ad25fcd8d3eb2538f834eec929c45b97e753663550eb721eed7c6e467a554bcc77522a20e0f37ad44bd8e23c8321af638a23c185f450143cb3509e62", + "da3095a4290ce66ac46383adc313264921cd6eab0a412ad92e0410838d924e879eaacb4908b577742e9a5f777d87d9e479fd498916a9166766dcffd4fd3a0077", + "9d9d06381b72ece1e3243066d37ed2becfb8f6c71054900613263ff226e445c0b970a46b91e89ad86971868af4bbb738ab9fddb45cbd16cb14f777d7d8eae1d3", + "943e3253cf4f233e7ec2f17b4f0b14dd5c5585dd18f72daf5350a199a56d4ad421155dd6ab86969099786e91f770db6ae2b5cb45aa062503b14c04103dc550e6", + "e25757b8da8920f0e072d92693ebaefbaf0400093c422b3e61ff099b1c7d37228635d3a4210d00e2cf40b6f68607391b92876f58dbc73b611d69f5b32370df58", + "6cf98266b559a021a8fd7f41dfb83414138294f7916399a1781465f1be3273ba01d3af92d0ed9fff0912c3032a882d1ddb1b17a4ec6f8e4ff6aa4976ff67f600", + "d72261198469dc5f80b61afcb1b157b632177dcb3fc59ba32bf34c45110487514d65989350541f4fc3082cf95346230893cb5c30bc04ea3eddc6e43a02b5e5ae", + "ec6e7384fa2c16f125a736f57c936d07044a0ac2ebb3ef4adc2775168f94f7a837dc5125aad549f02af856c19198f0e70f329cade4c319b6ec91c5fc82b6eeb9", + "53006cb314670b633bca36ecb8d041691f9e97a9599f3a802ccb09ca79fdce4ba89c7e76c818f127d1a3a09c0c0eb9efb4fbed1eb3a3c87e0ed142032f6568da", + "651256b226295c2ce8420d88161a36384fd8345f2b9e5cff50289ee4ad02f2207779b9b241ffac782f92af2fd4bdbc00517ac80a3a9b5480b578beabfcd53a02", + "d459dec9d6d179579a29e0729345c9e2c1f1f367dacc44dcc0391b6edd74ed9e050217b812dbb06edb63d148c7da1d26269e85ae71a5841975558c7426c931db", + "e289c8fb10517bdfa1c6c61707a386f7ff977048a777bdd8857b15d90663c334ee9c50de495c1d5c0c19a80ecb3e2a96f558898645024877fe4819365f055d7f", + "4ac0696bd1bd58ac3f081232f363ab0ed8c064280ebd43aeba015a200eff02bc3f5863ecee3cb2bfb6ddac69be6a60efa098850224e84ddc9d0eb1d9ac7c1e75", + "8e76d5d1178653bbf633542ea2256f554631148a2a4d4565d2ccec55560ea8ec91613645440c90e9021936a6c79d7d0befb1c412481ff6637e282485f8602ffb", + "d9850f08eaa2e6ee7d46996c989f932ecb2b7b458ef1b9a1a81b5018d74a1d62d57b9750aba989a173ba7878c76a7a3250fdb824089a0652e1b09e4427986e36", + "d4379fc517ac352dbeecd9051246708d398a31539f7ad9b72b522d59aa9c72326c575d77fd2545ce5fc2bd2fc94ffe065ae38d23001ce26be61a9da2a5713a2c", + "0deba5d1f9773c6fd7c7d75b854763368ca8be142db7e7f267b6686e3dbbd9b103fa45b91ce4b7ef084ee0e1da6e1aa3d4d8bf85a13625d4c3d7c2fa49602928", + "3b4d7a5721980df19657b5ff4a034af93e90f288ad5b161a958276c16db6932b84bf67a393cb3cebbda65f907194efd89ce3c699466b9f1b5e9b638257d37602", + "0cb4faa74e0f46ad1ca761210726bd5cd1e41949fea3eca355366adfe9f1619c7828a5fd1e45c36c5555809181a6c29cad350aa9f4078fa1de54ce9abb797976", + "96be386cf34a5e9cca3e865f4fa8a03630b4dbbd4a6d4438efb87700c8f5b1185708471c6d2b672c9eac9e3c8a3705d83b27b7f009deb79b315db3155882d29a", + "537ec1ad4f838cff004f6d8f1d47cf702e7f8f87d0193d96bf714ea9c6df50af91678e9fd06398514e0b03a6937c2309ac73785bc26308fd6e2258583d2552da", + "d3c65e5b822f2fe21d9d8bade6a378915ca37b3120745b0fabff545ec76a31689ef57e1d8a0699f71d16c1ca853de51c04a892be91187d18b8f09b254af60365", + "eb2b90829455e2ee36f5055c2e65f29f9ed5647d3a3220c864717be59820ba146569ea49d63363ecf77b7a3074a4e522cbc335c3e37c24417a424abee3505c62", + "669e75eb53282a32774915ac81e47a88c6712d0511a7f6ecd12b4c1bcfde90371870a5bb897cabffa5b1dd2a1102eac86d7ec215a8eec71e9badfe8e2774ac94", + "98190faf39f6da47e4f7b0e38c32b46f3d74143bdf03091ccd9e3a4aa5b2b3046d8fc68cc636e6130279ef63890aa03d6aa017ce4aee737d0c64ed3bc190ff2b", + "2b43c12e28082a668826e76a89d1a28410b6e744a891c1cdfddb72793159a6d9622a5c2c6d351bed04edbd004501164c27a34a824a433dd2b0516bc5712109d3", + "0502ee4ebe72f7b738e0f2bb19fcc3729b97655159f45d5d79bc1e1371cc6a2b88928a1f542b61ff21e2e799b0b5a922d6f1dd13a8df19c75aed115ba5338e80", + "4d2a7893196a81ebb2acdb8176a462ccabedf7483b9906d3ee146f287c78e19ecc7114c5af36ed658726c402029ad88474414a97a6813c9e2af421cbf573e35e", + "9ec96edd556e170ac3ce45a67986250daa02d5687b5283c892b53eb417ff35b599733e9c292531120e42a36beba9ac3872aa2bb2583867e3a7ee0822eab67daa", + "f9d1e7dce5a57f6766bf5c792adb439853b16300cb1d5b5adf6e00759a83e458f80584aec15701bf04ed7ccc6e515d211ce0c14cdd6c06c476e9f87ac0ccda36", + "2c3d1a71c3de7dc5d8a1ac42560daef845f65770688e8ec05c436199d7bdc353b4fc08ba4b6ea4e8c68b4f586378df9579bcd7f406b133da70434b833484d991", + "795f38335d0ea88d876851852769d7a94e3250e0190af30de3f4f6a4f4a24c681209fd9e0af2b43267ad10335aab485381406c6be38c229356d40b30db860993", + "e37eb50739bd33b4104a782c6b4a576975780b785b112bc14bae11890521556118125cf083985314b968a67de4dac520869ddf81b1011cdbbcebaa9d8fadda85", + "f2ce534ac951c5627f38f95d3888aec7f6588a458275257161539cf3024a52dfb8d3ddf4031df8a054770a14c6eafd4c2476c4d5eec0c9ed076a03ac7ea9f6e0", + "66d9ad704929bbe4c87fc4b4ded9c2a555ddbe975a6c0a2854e12a99e91bd27ccb433f3e5293dc7fe781a73133d36f7b49009ca1e2f2882775deaac10d5d773f", + "4266e8ed78da4ce6c6c8d2b1485f2342719d2ba8ef440e3d1f2740ff7bb0b00da29c2c4f0588b4edeac8277c83e057af98173910abffe7f56a5a4c8c277b10e0", + "7634d5384c633db736e9c51522b92d11e6a3b95ca455f673933cca3eb692e27a2ad813e148dace456083c9fec4d9e64f7db7e89b54e1a3188c096f84ed32f296", + "ecb1ab02bbce0a9f852fb1609c86d38b63f59294c38e87817598aae0bd050bcf108fc7d148ac7415501e78c93c5c704c7816bb4434c7ae2bc951d0be15fa08da", + "3bbd1f664bd590eeafc1b01359ffd7f7737997b51a706ebc97a30e82ae73173426491a6b268df1316d17f0bdd1bc2387a30dc196416fab8b72f1042a357c180f", + "b998d13e29f34f75d1f48c8f5d42fd95e2b7d8c3d7bb3a1ffbd765ed810364f39eb6cee7715111823eba27d0127269b4fa7c15ce795a800f1bb985571959c912", + "ceca1386e1bf138fad149369ab1eaa821fe3c07476f81b438302b018e6e6574376a0cafc5f1689096797bc59d9f4336765ea545f5c9f08d34742a7a7b9109487", + "bbb24bd4e3cce69c58b02a2235c647c1dc408f91329708c420f12dc09f9d4b72ebaafa507a3e641d6a05742f69bec56cdd1dfff07d7ffa0cbf6dc0922418ce19", + "990ba6b5d8c76e9addb1b9a83818a661247fb0f010b84cd5d6d0edea0b0e81bf5356e66dede81a63afba2560dffed16121b5ef3f9bcf5f0ef589bbfc052db8a5", + "bc78205a34d35ef74da73024c5012619f800ab2a3816545a089110b30737737e21999ae31ab0aac95662f87c28edd159985d4ac406f7de3e3025713aa256323b", + "f04f42b721f0b20d10f3af0c0e512fd219238b910d476bfa61a740a2675a9b862ff04869d7765d8924cce82f737521c7b53df623480723d1dbd64d87ebf8404a", + "1e140ced64a0795f0c43d6ddc69bbda3bf69e6a81b80387a083a92c0d08be47f04c75487de5c5b07152d0025dbed120d952fb1a2223eb83b2ff0faa57efd2a55", + "bc3163f1ee5b103f7624198f05c7efe9a84bef00f70ebcd0e1b5845307d71fbc7f98fc455e062e41c90b54f30b9fa22810b0e20c2f4b17a679da35340ec99c7d", + "90ab0157fe7a236370330cd4cf8ad26d1cf7464e7059e53267f91ae1dd032d092853858f0e81171e125f6fbee1429d5166d0e6bd84ceab9b2dcaf3e1bd3fb6d2", + "82b27c5bee00ada580ffdbd22b1944b846344d8595d20fffb7586c991624a8928df8ce71139e27d33cae8bb9c8b26a4605cca325a0076420e115ca893b2d62f3", + "e330d82fab586f16ea88ed2871f4e5b20847a0d36d4720ce2e018e0b41f43bc80d6b5416a7c1319f084edc3d146e5c06401983e171cfaa6d72ba9d6e4eb9bd78", + "112e027e094041a5ab36c24aa5fa4f7fad09fb3c37127427db9f338b15b526ec166bd31197c9ec7f5abcfe62331b3d4be8c7a3b679bae1e31a4d30883dc0ffec", + "6b7992f8a4a8a778e2da50c270d8a1fd445e9143db01e25e7e3ba3de696284baf86436557bc2e3e8971f3fe3a00b1c78b2223bf3bc0e66aa28af1b93a0759313", + "da0efae05640b723d7f48f96db3aee83e726c2678cba602a3f300f24260789c7f3fbc6a1251085acf96ae4f36fa48988800b8721c3c08b3bc4b02cd78327cfea", + "9067514f1d82ddbae543c634013e613c558d9ff5d26e4c47ea124088a2c5a32fa58b3592a5b71c48b6bf36e2b8ab6ec6815f5b17dfc204fe3be1f91cda1257e6", + "256cc5f13594e89894da97b0297e325c5b3209e92a5a61c28892aa533419a25170d7a0944eaab95821af8facea15d54f859aaedf614b43d47b2aaedecc2e1d3e", + "6ecfd9dcb3fb7695e8b6fbfd7cc47d34ac35f08ebc3faf47ca9f643564cfd22ddad3c5164eb29a8bc2a4d3996dff4e5cd8aace62cddcc5fd2d2516110f599db6", + "e29e514297c63f9583e55788d2deb7570c32d2274d381c2b38f55de62fc4aefe584265d3c67ddf7084cdfff10651aa38b5f3399813e483fa1e6213fc02db5fbb", + "e5cb4dd7cf948c406844e4069c3ce825e466b911e654050c9adfca415cc9498fb02e09d134e6207d7e8ce32a0e910c896c2d037349241c86637f2ad1d82142ab", + "5bef12212516fa304cbf64dbb9bda0e77748518ed3b2ceaae802750c10410d62ebc4bcef5567bf016b4ff1d9f26054fd3c0d24475a550178a657cfaff89fccca", + "66a7895e10c8d9560063eac0260d91e847aa31c3e664c52ff2df4b27f377672e9c8dc61e76c4ddb3a2276ace88e3c86b68af7c20cd3ac5d8436042892efd9283", + "4f3935e226a9f2727e70c2b66d99709789163066803bfea3a95dcc19cc32dedd81f0b86ff687a7eb4b630518670ba4c4ff6c35c78b95a3b83d22c07b75f099dd", + "d5d5df512708656669ae1e581a93302add1a509f15f4ad7e8560fd811843ca8b57cfb334c234f85e61425a6468494e4dbc956d62aa19c71d0c41cbe0c7e486ed", + "933e2a4371380ef2cb2ff40febf606f743783c60f2afcf0de4602cb1a2551d8103dd8055bafdb90eb2b14a4287e18d199ec8d8e6f4abdcb9cd1951cf219fff12", + "1c7d3e1437fd7334d50a88d4d1d6b693e7ddc9c967f25b993ec0c29e81dd1994004af875835715abe06081408c5a978fc5ad2af5ee267603455a345a9d2213e7", + "204f3402c35d539c060832806a47d8bab0c208a910d6125d2d639fbbf0ff7c2fbca28a8513123cb3800ffa94bd1c3d2824e912aa41e20885ec70428acacdc3aa", + "626a1f49c1f1fb1c91cfa5dc9ffa4c06df7df85e19eb9f1117158d58ea69368070e63d008323ab9da457187dc646c20cac32d9526aeb1032f0237028e19fa8fe", + "040f8762b49ee8092f5e031a762f4fb649d7ade9b470851a59179496f31ff71287d280be846b67a1b916935bd5364cdcd1d046b48903ca46d924549a3d4ef318", + "23df74c446d0103ea39d1d11ab3a10dc9b2a126f9ae334f8fcfd05cef468ac463dd5ab9c1b473cfae1deb334c24bc54b5390069617365903ad92dd4d81be9386", + "f55854eb5d1b4a130ff844fa4dc77561abeb05bfa7fb08550860ec6f20889863d980f2954e49c54b853aff20afe9f55ea2daa6ae20fe268001ecc753096e56ab", + "74f481c6d3bc06dd2a009c898483137cd191ebd7b6ccacc311675c83d68483bfb25e80635ef081296d984a8d7fe9f9f0fae766e016f6c2484deb5f49417d2d87", + "564eff0f0249ef30e7e9fc2ddab6543b39c5bccd7464c626694c9e16822950e2519f4fceb77e645b701d7e9a7d94962ac41214f706a4f9be9c65b2ca9cb41633", + "f286dbf18d8320b44098e99be7b974ebdf0da2c7b6e580bce54f6a27e2a114de140e4f49802d79008ec5f405f58f17077f24d5da007a24db96c72dce2343991e", + "cc6e4c03e096bda1160a33c343e536fdfc2b6ddb76b4be868ed6eae2341060382ef881b7304d22bca90ab20ccecbf82f04f1df4938f15b1d162c5ff8f5c2177f", + "98076312fb1944d9e012e617a2ae8edf75b39d92c9cfeeef2bf8c4b7d9a708b5bb711ba4168d2f8b4e6a7a170da6bca15a3d416a494a8abd8b702762c35cba35", + "776231ff4d39131e40a808a6e619c3a5634f86011e76732abc4fead843427e6e7c920e6c7904b4d06c44c91ee23221bd9dff33654890911930a75ff9114f8f7b", + "ee562733c4e527df5af361751c2f32e2a5b2b9f1fb78684b321473efc79825cea4f14b01e0035b842aaadc50383a9fb5ed21872e00904ecc61ade7d0c67f3dea", + "acb0f1af3ec2ccc140c1d6d6a4eb0dd40a873cfd2f44dbfda80be65c9196986fd19612297f5372811a6bcb848aaca0a54bf4cb44df0de20e8902d12f73794272", + "feafc0682eb3f9637ec04177fcee27a776c51a2ac61519b2b7c2386ff851d88a79ae4f005aceaa7de806c50773cb7aa670884607a20a06eeff924e85efa6b1cd", + "d890570c151ad4f0f54303894994f27382ff0cc22e85b3c9f89269d09fa5ad997309925844fb072057b1ecee8f527b39f9709bc117400d08be168189ce14c54a", + "8815eb9d6fc14fb1335d8d16a08d39157585fe43850470dfdeec60d028ab42c2d2a39f9e31a7a951ba38413d94f3a05068b069feed85c7295baab5170309507b", + "8c43610db9aae73a1e69ff10d2482fcf7ec360eed289d491f7381dda6befc94cefdaa7fc892bab89786faca1f4796c8dc8e3c085ea7cd204afb5aca12830a0f3", + "fd00696edcb29fff3e844bcdf3814cb84d9e68943f26210e2934df017ec95a1663b97d3400c853d455e03c0b7e90b21825e315b4926e49fbf16beb2188cae82a", + "6960c3931dacdae462ab699314dfdc6fd9f2fa3ec14355b23ca6c9912fd5c40b2ff1f2f98b3b1c303991dde1098ee256a5ade9e62355b2527143655cdcb778ea", + "147fe0c03f78f93f71a606a0f5b32cbc5e384e28566603a9fa589b33bd60f0913595b408904e97850a47301c7226756564c254ae1cbe54003c9696df45ce95cb", + "1534764b93c729b98bd56c90b0d5831f4f70f9bf4e6caf32d76b3001f301ea6e051c8822eac80e18b158e66e588ec496db858287c43f5dafddf60b461c011f9c", + "824438d638e59c18e0fb5bf4d0eda28e014a36d6c7fe129c66b57b55749a1f615cd8d68ebc62b1b5c61647b1311bb83b86e24011a1cd2ff8865e380b52772f9b", + "6c05faa8bc81cfd35bc6fa0beb22130f1b8e897a40f9f7acf80f7c041a9ba3eadcc4c1a983c6e03ff152334237e24daddc42ea26efe1097839ef683195c75361", + "abf9d6e4f4bab21182a0792d1d8c03238b3bdb62791bb479d054ebee9875f8809eb3fbed3a930cd389f5b01ec283023c823b1ab20bf2e6ebbab254e62f3436f0", + "cdb477685cbdffeb8dc00a40a3dd5792cc6f57f24d8bcf7deff78f1782302950349e3daef6d8f097cf9a3839510f0e21dbe59a135d19fb41633908e98f72ae80", + "1f0977d99922c09f31a6dd1dfd27915a9f273b0d5d3e86451ae00bb46a9162714a4361f369582870f05a17fffe2adc095428b649358ffd3166d10adbe866ed27", + "458b15c847fbbc81af4742038707ab1806de6a7f9ffd3cd261246526c07e24a3e70a10c31c0d907a90533713ccf8fcb0bf34e27a6085e84e391ca0933b0e389b", + "ac29f1fd6e5e1aeaf00b6147e4a5f0611922d9ed4c9c3e6ec2dfb93ab42f2a6f5a6f96633d80417eaae0b56361eb611fa631a2f9af584446d808d2fcf5177705", + "09fff1cdd75116132712f7c2d05d03082589a1dfdcf538b533c22070bd697a6a88698714a3b9227c4599f4cc06fd5db61769e44158c9ecc66e793637b13ec9c1", + "08095c8d98071be7615097b6f2b33e610b03519a8d7b199c7e70643308f3dea68518c4cfbb804dc506ed8c9e918869dc28e1b6c6d990fde81f1faa5c9817c976", + "4574d5330d294e243ac440c10cf9defee22ce9856ce3186f6ba50da421906daf4774b6f77e0b869e7c17ceaeb6c3d380b9c05fafc66dd7195c2be9fbc43da2c9", + "0e67c9d177e47f9c7307b15c3d8e6d01816d0768e3bd3056d5daa51f64d70091f842d63d47ba871475ac880452f6ec08c201d8666449cdc4c124a8bed9697159", + "90da54038a61986e9b356fc39bb2e4b0ee138653b4e6109fa48bcc1bf289962b131fafd1abee954c148cffaa361c9aae7a47b4f2709ecb6bff4d4661aeb279aa", + "b93540b5e9c87837bef6047a2a11f4234a69cab3259cb41c00a5db1f04deb3d610af53afef8bbba808e8ca2e066a45f43ea649450fe3161e759a09c4ddbc149e", + "de0410e886585ee9f2773615735f6594e57fa6c7411110dabde1b9765ff6dccf25997920b6969ab7ec4f253a4e067bb71f805e502449062c02352b619f98e7b6", + "82e8010dd79cebd8142b86f53513b84d5b61a8f616fe5b9e4d97319c4f6d374bad6cc49cf4f2fee34e6f2cbe5f680c643e6003a3ce86cc5042d9ef255cd9c143", + "d0141cf052c04e6a576681911e86a979a8ab998860c2c6acaa5df558aa4d2ff7c2093ce2d022951e5113a3f2ca33b7c173a76162f9ee73beed50c44be76065d7", + "c011de8d1205af45201e58317693e4499bc78bba93ca3ce305b2fed2db61ab48a23070fd5d82f4b686c090ba209a603b0d70a7d03d853e5412ef033911562636", + "60a4e50ce5aa52a461ad07a5e3cd0b4be604454ce1f8fd12053b7acef5822743eb55ecf2d716e18a872b247c2c2882eb68af1d314cae9711dfc424c97518dc98", + "9dc6ec60223bb53e4f9e15886b0191073091f4da55cdac9327682c6477fe2f6683030126216e7d72e7eeb6af1f497060099658eb5ea094eaa29142336873db88", + "5bd3b863bb0e70b940716d30f0d7a9abcc6779ee94f0e73858ca66c947ba743c8a42d271956ed0b6f7bf4e43b682d71fc80236666c5bdeda1ac9a9f959422c88", + "c672dca4220a8eaa389c16ce92b0d8531f8bdf301217d8a318a8136a029bcdd52382122ac33bb255f53695dd6f8f2a431fb7b27e4bc7978b5d9613e8aba20d20", + "6f68374e561e5d23603b8f3a69baa514293232e4d95bb85c1a77c60063985c67a4d8b48b95d1160229bd493cc6af6160ef35fa0386969be4c84c331e7ebd91af", + "4155f64f6d8c58f214d0ab410023faf687b5848163d110dd28121c8bc8cd7a5a9232d7f0533774dd610e095d61f23d0b889bd3c7a4b94535299272045b969e47", + "4b18e2d845caba2b50b0f0b8b0554b3b9087ff55045e0fbd03338c18c1d789e6d92eab000526c9f027a1cc7aac821d6e535ecaca6cfdbfc49393229026cb5a5f", + "b724549133ab768f59975f70485c1bea56b57c7004cd25ab07b67a184089aca6c06b33579d36637ac931335db4741c553f240aedfac088362af6b363e40053af", + "9482b018283803dcc525230f2e2ab1d5ea9a071457a874bfb094b078fd27c1864b666e0ab35ccf5e53b81d5fdf7a4c282205060e8fe3803d5f52030d912050ce", + "9b37398e4eb6ac51da5a966c4a5f1a98e3c28be1dcc5f95fa3ea359b5ddd7bf992b8deecf9a64fe54aa9de1cfaf1e372a741cc279965b7e6ca86df0539081610", + "157cb06309447d677744bcf76070bb833275e6570ca716a80b1eb021a9d74ee0e56d940a97f4bc9061a72ea69548c5a833fbd355dfdf56bb7cbc86e74caa1cde", + "cc74cc63bcfdd888ad1014e83164332141fcec71eb130ea53b0d4a59f8bec299ed771af1afa8c930bddd55cc8e302b4ed692f48ca67828369439177415c780c2", + "a9905ff964d1746258644dcd8a740eee86b85c67846f2db02420d6c4fad66e5a43519c41dd01feb5c096ed0c83117af96167e566f532f470c67103e238bd0262", + "63b4eb48320b572f5e3ff060ab4ce5c0939abb81f0afd2164c0f7041836204dde4834921e0cabf1af0c8717f151a33f95c882a51cb9fd6f071e2ed60f356677c", + "51f9b3afd9650636ab1fe5dce91db23b2e4b6d255db50cc25185790227b13466249b2983fef28635d5350f4ce6d020a39403e24916d52371be2e97ca000ee9b3", + "ce8cd972c9c3df3c19af505b839dc2d56ddad806280eb0aff2c129a214dfacb380d765d6c45fa8955d50635c7eaecf117ac81621fd339785da5edfcac7e7c3d0", + "cd65495d36bb3b3e1cc90f3b0b843acbc63dacce995abf856b70653fe4a8410d2554189e9f0c1a22d4e9b514d4904e39dbe50e81cd6832f21f32879dc4b63d90", + "23dff7dc81c14d6d0daf7bfe8b3709bb149f2419ed73e3edd78447e21dc5ee559d143a1ee31c7118f6e44e5d770afc5b482cd5bedb4a2738516dd9c80235b958", + "72b1eb25769ea8d88424b1be264be3f61b6f119c9aa8cbe2d4e9bdd564dd4d92a16d1af41e43e5ff9caf353dd25cd4c8e5a17fee1fe8a9b30b7dad993c9e632d", + "578e4bdb433d45ccacbbf2c33dc88e7dbf1d4fb9943b7faeaf8d8fc559cd528e75b48902a18925921e50fb8f6b57cab03c813fb671d461afcc1d7d670d4f8f93", + "4d6ff3ec25242d1acbcf803c49e7cec8f1b1d0c71696d19092b47c3c94f2d0e60351ad326c849559b571b68cea80198e9de224b7dd4f8d631a106d5d9e954f85", + "4c0383c6af0a2eb8a97c1a39d1cdc4f26934f09ae2cb9adad858a9edef9904fef72405054602caad3b1071d3061f126484692774465a6b20c3183302a8acb3ac", + "c0850a5d9e1cba2c754f3cb1c32bad97abba11b8ca92e2e10f8df158adbd50e29e90eec4206f9e619d3e5deb3938c42cb78f8eb999349c9c0320e8dd35f57921", + "74a262b9fb6318920ecd45ae5bd48c934bf911406b5cebb8a61c5ffebee5e917ea3dce7e88d3ebadc97ba9773735bcea3002df8506defd38fef2678971619e6f", + "3ef5e8ec44d99674ba757611d5dd4258f4b3d24640464732c7e2240732e2fe339ad4abd79afc4fc2b0bb0a9d95c3254bf310087fc5d8d318aed7d73d6cd9ed22", + "55ad18009ca70ec725efddb0aaf96a794a679747cb1678cb03c85630f6ab32f4d2b8e31ec6fb9623abce58536f84699746c70e8d1d826a691771f2d98671fbc2", + "70c51b79c1f56a4d6c05447462ecddb9c994a89f331b9f1e2ab22b2f9148134429de45a77397017c2f977b9f59f8fd7d0b003a81036db15e1a3e385b1fd11766", + "ce2f82c937c459a01cf69ffe11d0c288aa70f9f216b32880e10decf4fb9c7e23a080509003d5662bb7b869258813fd4e5090c93caa1fcbd521c6a0fe9089cb25", + "d77255fcd63f95617072451b3a67643e608e9b58b76521bfae08397ccbc72baca7aa7511ed4a99232d02a472c6b6d095f6de26fe17d4f91ea6483ea0ab9e1929", + "8639eeb9311a5d19a817a7e209d55d8f29b696696f3a8174beaa98016b4aa7f2e776c009cc797493e4ca7de59e8d6bfcf46a76fff70a3133c57e9c929e893c56", + "828eeddab0bff8d4540346954290f6cfdfaf22f274b6dce68556fb06c36f799d3e592f595dfddb21e7f6740a8133a4d08ad9c3cb90d56663565f553180f5d09a", + "aaae195953437814ddbb6ae0cd48f1da6c47745934cce777b6eeecf477c4f6ec89c4cae355166f120d113931d42cc98da2beafeffae457835a98721a28bb0940", + "e52861a5bc026e2d100fb2177c0f80c2bab7cd4e8bfbfdba14f36b325c4b3ee6a2b468ffbd78b9811ccfc4f7bd48e1ed405e26cc33424de21dad5f6af8ad7e2b", + "b1fc2f5605e2787103e0bf5f78e4017410e9c087dc29215993324ee0789469ce99dd3f7e879a7fca2ebfeabf0ab6eb3ef1af18921121ce7c8a97f4629df6b711", + "008045b53154c8bc9139ac56cb07794ab6bda64cedf5be424e57ba3fa21458704a23717fefc1628fa1cf2906ed01984f98d2a3a9b6f66113a6ef7305910b1e57", + "49e6e5322ef245f2497e7f9e287505ddcdf925a2332e7d2b58235e0d1502908115424c9ad7cfcda5075e4cf662f3d61c257df41299979f273bbfec0a78d60bd1", + "54fff5cd21f2959d3a47f4f914fc44316e4dd97b4afeb997b9b17e2376af9e9518d6e2dbe4b41bdae8c4b4b6da475ec71575e8888d6d79fbcaf978e871d493e0", + "e8a9dd361a6752906a3e1a917480afefc65c5ddb83697866b4848c19193d8a2b20d2f9f6c8e09c21bbc0101c5c868b65d4f6d1844722050f11b6961d80621ad7", + "1df06cc91bb24dd34fc731f8082d0c89296ef8f1aa6fd458884c90a56cb8f2b9f1f7948126ff2bf0c5777ce8887bd1ee2e3de6b3caba64de25a22dee5f91b6d6", + "2c248ffdf8e86b32e2d1a6d0ecf2af64965efe56007bbfc21ce77a8df33100d56ab90effed8b35e4c090fb8142effaf940c786f12fa82719733daa2c7994a59d", + "326cd82bdd6e56f804ff67cf5ca616d70da461538852c9762b0f7b9a85e6807937565d781d37366e5adf0256e22b912c74438ea5cfd35dc7962760b5a0700976", + "9aacb0f6e446b42b881af55b5452839ebeed356a76fde6778495cb1f20f6037054bfd250c001ef911433e4ef600e292cb9f57bbae08d21cf4b021260ffff6ae1", + "2b0abac8beef0e340d824c593bda2b199d5f93e086b17332fc26b289efd819e3115f5cd820716d9329fdf7a078a0ae8c7335b0f978d5b2eb9245f9ee27aad72e", + "ef8258901acdb51cadbb8a830f3c4b35d987d7774185b2445adda941d4c6a999a8ad4a5bc5407dd80a0c969a8e63064c304351892bf7817b2b10cce8d9deda7e", + "20811d3b209c7bb5a666a0e520f452f2d6f17f4344783c92dfd9cd494fb6041994ba173f83067bd01cead848dc1f696b8b54c08a3fc98f6042ef3d469b88d1cb", + "97fd69f907687d2242fe1686b01a44b1eb549425e0550ab35cdf3e1cdeb55f9373e4c2333cc31096df74960ab5a69ab92dfcddea191ce6e20a5d2e202688aa4a", + "e50981094c5f916d172cbeae80f794052e88f58049f14e9acc42539c47eaefb727e15daca5c6aabf1ca064170658e63f4f2845e9ea74c5656b0c4d43fe91ef23", + "8b3ea2ad35c58f5777efad899bb91fe25dcf50e5f028ff6b3e448cc626575f713752e6985300eaed2078b2bf04cddbd9730f1dc4c66deda05bfd6f07ef17af75", + "18f0f9d1f9545ad267251c4ffc3e86ce3823683840bd58a9a86b26a341637491220f65371ec990a8720b42774fd4cd01a620c03b409bb7283b8892ddd17aaeea", + "030918c70e5f06cc58a93e8e632bbdc416dac362bae6267de7b4b2bdec2fd7873da10b557524229451ac1ddce7ddec8170e601eac1afc6cb3e386a694e2750d1", + "89f77a9af357fc4e1bec538c3035f71a46502852d8a85b5ec533071688060a774c32aaffe75354ec93a63402b9337f562e7bf8d4c5aaa307fdaaf0a2e08f97ce", + "d4189b2c8122d08d89b82bd1dd91cd2ee2aae0282fab602657f618503be98508b4fb285d6b62c2a051ad2b746cfaae5c1b9027dec73db55761923bd9cea43122", + "a17bb9f4f70d312de80fef0c32e21fc9d10522b52553fc1a51524d00fe68df40f66f1f2d72c8a62822dabeed29393cd546046abe4fa06f541122fdaa32fc0ca8", + "e1a6d10543c312679c191960443221af315708f297ea9c5d328d03c632c6c78d96c6e80c7abce8aff6795afc1d6f6643ae17fa51328e0631c69031bca2cd3112", + "719d487286491d2909df02c18fec02e0ec55f62e5b7b3e8fde656e2c5a91fcf7ae696d46d940f0950dc5cac1bb90ad0f76c9b7f051d2c7fc90922bf4ed4ed394", + "22b6c3263046ed0807458b636d6dfac476968c12f92718ea0dec939fbceba7d23ad7758080908dfba1778f24f56c43a14b757d28b158205552cc94333dc0f7b5", + "c50f803ff59e7d9f08463d128ea9eac8d44fd7d54b58865a3f3b7f64518a3cc057bbf1dd20abdbff3c01abae4f2f226ac58bd17d58489b43a2d3b9e416f6c06d", + "a3b6548e022bfd101ca18d32dc879c2ace87049fd62191a71cbae78b853da902007ef73de1b83976a2541c9076b0663c2be65fcda85d7477ab0874a1d6c33718", + "01669002c51d36741e21bb32f55376b516a48f708ed38a4f0324b47e563711f3d0e1ed1f6d3f612a31db08c342292b37abb10cf1d958e2b1aac900791d165892", + "275918660c78f6875d323eb8e6199b71c9c6905dac4ea748443d53d8a4a5e2d39ff34e0a5d4ff0a6da0b0b2e693907f733f905b8018069dda8934690a9a3ce5a", + "4129c6878cba4e725f3233b7416e8b450c3e5a9f6a00da88b2f3c2743e649460106f4030c2f8d975e4d82c14a5c2267f914d433ea158e0ada8c1e63dca4b913b", + "1e3e6e60b3664c7cedd3a5bc5441f0a719e97ce96ab17a9c956eb7263874589b62bbac93fc085439567d349efe7649fc2d26eea5f5f676fdf69c6057162108b4", + "a9fe458ae06866ca64c1f561a140b1bc56bccfacb03a54a8b0d491d54fa20a85c2b2e4cd1dd6730d526c40453faeee7550e360de988c66c1813375d79a3cb5b9", + "76bc5751da9eeeb1182f08da72393a20e53ee63edfc3f61617d8851a9019dd566ca79279d2749bca7170449fd6d680a5bcfc74149cde2b22c1121a42ac1a95bd", + "8dcfdc47fd3691086ee35b3ead3db096bc171430a5fbb96317b2e413ecdd810b8a2a6072574ab9dc04bba52319f7e00ae552e0de423a9906c6475826cc963c4d", + "f8f13040cffdba238d06aa5153c8d85b0154533e050007e3029a859d77269f8182fe139b618e730aa6bd858ae30ec5b499ba5dff51b1b96e26d41e879920a4a8", + "6aecd795232fae8603d11ef0c15be409cd2c7d1ed21c7ea68207d5e467c59f0ac14d872f05388c1ef956b2f748382d7608377f4350fde676c12f1b52384b1963", + "c688efb19ed78bf81f881c555fc40859550c34e1fa7c8ea682929f257a33c9a46b4ebb508e5d57127361086ab3edef255fb1e4e7b458b1bb9c1dd3a456ed24d4", + "92c1ee79a08bc3f82ee009a9c8dc1dd156cd769ffc88e00c08310752525f47365b857bfa61ac72734a2d2fa51c214a9fb66cdf783274db65154a687415ea8e97", + "7527b3fd396ddd341d379357b6a830402248ec85fb3d79d2cd728d59e056774b987de459c0fdbfc7a9daacb56264509551aa980a54b71cc6aa13bd6d89bad448", + "8405894f29013c6c0c794e14a4f23c2324a4beb0b6bab1935e7f9ce886b3b4ff2bcdd32bf67854e044330571ce8dbd5948d76c2905bc01ededb1fb3592b8ab70", + "e914c9225112204ab43029bb1cb2d742b8a8ad849c642620c375c70e9e96147de9dd1c17e8e3e21252b6bfd7a0ed210ea9143987655fc1ba34e610ccec640bfe", + "b1f581c66a9d63fd0eca2293068edbbbed2dfdac6c358075b169705dbdda1823b9b37a7ec81bdd3d5bf04219c15effcc0cb3ea669fdbec73bc67064e7e01690c", + "93c7e973b94d7f53dd2e40e55261a2ab38216a04639cced3043329be55982af1105ae1eeb528e2ba92b4a5fa77ddf0314e98947984caf30716ba7840f04fec36", + "78772a0a16044a077cb6d525cc1b0720021e367b0ee1a56141d6a6cbd61ebd891f845645374e2881ee0d8eaf5e83b695155efea561145d43d0ac4a88bc1156af", + "977ec96c23688393f34139252fa3bbcf40dd7fd5a23e3cf8d62c0d303fc03b3757f7cf897ad558e25e1fc1d4e3023902115acf5f8f1c00e2d7258db356f3e89a", + "d00d013f7c1b46f1bbcac3e564b2de9860ee836e9ff1a74c5cf9d2b6c47a3563d9c5f1088dce59c5ddac97cfd6e0c4c58509a44d7116d36f805108e6a6a41f53", + "f0f66aed41b4a338e964518c9e25d9c75a98c5f430fd2395be98a53a1e62e3c755d7833fab9f1655343bd2450de4163141b58be8b40c772ebd610184450f439c", + "21790840debf32fcf91411453f135437593fcc008fecda47ec7f8e00cf538509d473819fba26abe11bfec63c168a7d0088bc603db1ed5d528552b5490f97e4fc", + "aefddd94f7bb0a7138c7391eab42b08101e55c9e7cb5a69b78e2a1530b1ac6936453c8e6cdf3efc5e138f7017d890a5d23bd65ed6cb4e5925298b01dc8f4ef2c", + "c770d86ed915368b1d7b2adbae80d56505685e63730459c45e56945369f1f94238b3da437c836cb985ab7f94eee250726d26c6c42eedf9a04906d6a6456b71be", + "ed24eef467c1d8d8dde33451855dc5fddbf985dd5665bdfb08f1b173f1b55394c5d6549fc372cdb5ed1e664231965a2b08c76512b28f15172ee4fd9a0ce1a3eb", + "3fe7c3d766ed1fbce0ce913a32dc69143f6b4d58ef198b055fa8ed516544171debdddb078a789b77ce9ce249c4266a1dc812852379297c95a4ab86031ad43c82", + "c0e3895317540e9f52e9d69fe01f4db198f3afe5c249cbd4b60e5d88fa9d6cf033bbfb1e1824e33a447db419220eb3a159e90aab90a8c728183548a172f5ce21", + "be62294de66bc742496231da09639e63061c9431cf7d0c037c5d2753157e5cfe888886eaae8734f441384a875e735301d3614823e74bb9ff2dba66b6fec4763d", + "096bf2ae428f3539791a44f0eda76e6eb40b974384dfe73b97ea6f8c8e3aaf7f1d1104a93db195ca87c4b7382e2eba34f21394afb6ce823eb6f44ef9d427db5d", + "84873e7602bcc51bacdb6739a55566d2289e1ae10f978cb74ac29286fa4f1286aef00189f5cd4d1cd0c7c18fa6d01799eedb7f1059d327356b2279d16f8d6e35", + "cb3aa08b531b131490ee47660b3c3cb798224cd8d53286c46260d95e57ccff4d33b20372ef2eb5120ad6b1b8e551c4cc12a2142730261f03d88e97620ff59130", + "85b7d8a27ebe298a5dde020f39b9d80fd5d544ed06518be74e3eb028fedc320ec87f37d9db7faf7dff7b4a8a16269428a293e5a3cbd3c5fb1a4fe854b1b6b38a", + "84f31ec20b0901c3b00e5216890e187a6d2b351f0f83bc01225dfd79cf70e712f04af7e7d2a6118fa02aebdd59ca84e6e36a9e58b01a639bd1fa84d61fab5a60", + "5627b461291f6627b29f015df17070d37c9adb54c3c395680eea63734cfea490f8393eca9b14083d81a95f0ae58e857e9ad9625a244b6ec66ce042573ab72108", + "98bd293844fd968c8ea74734ee79c25f05c62c2ec66630fec752ca256e69173519dbd462c22c122e1527eafa912e78a552584acd0b878421914a3270d3e53c45", + "3d35c988460d16f2727536c089be2683a4b933946f4f0ec68f9d9c6a17b8a4e833c93422ab87bef7d5a6acd768bf83da3c16f2edf23ecfba6514b133395aa060", + "29c98bad60754f6b402018c115d2aaee1bd2a79fceec243c616ec6fcb2af0416d53b74d9cb75ecb47bc702eb897a62a2975edcc351d208224f6a4e39aa9c0c88", + "a23f5e918f712b72f6166509cece483bdd6e008644e6ddb71ca5e2255a49a14467bef7228abde046151143b19f3dd41a4d63560b3dd399fe6fdc08c7dace814b", + "e3646cbe68fae56b11072c06be1a9fb8018ddeabdafb9e090f86126eded266622ca862b6343569f90d102dbd347285a1fb333c6e45bce053e7391bb2c493ccc5", + "9bfee65eb915bb72e8c3b213399c4f6b3f26466ddf7df39773a0e08ed2066419d4c68f8480f7d79522a244f9a1c73b1f1ed2ef8ad8bb73167b2be438810f65fd" + ] +} \ No newline at end of file diff --git a/pkgs/pow/corpus/groestl.json b/pkgs/pow/corpus/groestl.json deleted file mode 100644 index ef1815e6..00000000 --- a/pkgs/pow/corpus/groestl.json +++ /dev/null @@ -1,258 +0,0 @@ -{ - "0": "6d3ad29d279110eef3adbd66de2a0345a77baede1557f5d099fce0c03d6dc2ba8e6d4a6633dfbd66053c20faa87d1a11f39a7fbe4a6c2f009801370308fc4ad8", - "8": "b23eeeb675c272c6e37a6ee9ab4dc505c9d6a10020f6bed3948205d04cdd1e90b06e494d186ef4f19266d7da200c89dc009e2b1a538cdea199e773fc076f802e", - "16": "272ba3fd8a6e392278f234e5053411e8267375a4f9b05d960afd2e664a67448f500f8bcdd5b8a68d0bddf3baf873cddde5c235943c58353ad90aed79a6c39cf3", - "24": "413907c17d8ca9e5477de5491914dc4eb621f35c96267f8e807affc0335dd8f6781c053ced249ff3c8c5a4d4ac62fe3d9e6660b30cc09621de7162e6c271d3c7", - "32": "4726d760203c1eaf847f6837c74c16adcef5b55ead5768a7c13e21a33d0d7b740f52de8c81356da63daba791da6680af015deb81246550201f232822bb087ce5", - "40": "9cbd9bdc5786ee3e8bda3960ddc89cfd41b2bebd1f42b9a16b390d15026db6bf817c81c079906c2f4810a8b5cc5df5d80aeafa8247a9ca47d45fd2f018e7df05", - "48": "e44a8d25cf351f81aebaf5a0fcc464c22778813b998268bb422b58c7147f5bfd021302db33236344bedcfe83485171bb2c3707628938a9ef7c1918e0ef95bb23", - "56": "2eda0e85c70122155190c52280b4587a9035c479514493848372d72d5d74707a6272c879a8c3e6cefe2566caa72c38b0c369b6b84a019bf8f97a84e9304a097e", - "64": "75d6ae946bc0d3c56d23d0ab0bb85ee1eb4904970ea85225471e54d19e026f4092ea2f4705fc1da2bfafccfce268e5f864dabf246539821da19c3f544180a103", - "72": "4877af9fa9a1446a0d16c0c92da3ea8fadb587c20da0ab644213d2d3ad57dc55043c468ca6ddcd598ff592b1e65342f64468c81dd8b0b5663a93ce7d6002b0f5", - "80": "ce2519bb31b0e34468b7ce259021731b7e0d9f66deef3f3fb6c49c4b939b4a305261e4f0b5bc719c40b5991c75e2e52da72388afe5dd8d163852c4c71b261490", - "88": "bb907d1e2543545b4b50f036ab9de37439213e8913572f0997f840213b1b02b1259191e7a103dff8390adaaf7a0af3bea29a656142e59d4d33310131849a0342", - "96": "a6522e121344cd6adffc4fb2d92f4b50d514a5285b9e2607cbb7933f5d10f6facdd316d3b6bc189fbb0ee1fb673be661805df0f3a4318b8baed2a2724b443b23", - "104": "c5ecc59553f49f4f930fc70f0ad4bd7cd11de2e3f85a0ecc2fdd4d67e94a39763d52eecec4f49f11c002aff6d5e209fc7399d21baa906b3ca31ebb8a9668cf5a", - "112": "d9f81334f27c6940c82e94edae802af34b6b00b742fb98690e298981e1d0c51ee5f64aeb6becd440ee4872ad7f903eab50158f93eda1545f3da4ef6f209df689", - "120": "221a1d3550d014917fb9f5bdba9c9431dc793a708ef49df3870600c86132c8651459dd89d90077e160111b03a17cd7e36e9995978575dd0106d8bd4a79a6b8b2", - "128": "34a2449cf43cb8c943266eba68a960f98d90811191bb707a01e9f358e8ca26796443ffd4158fd26977b13be9cf1adfc3dd8a72745c593d3875921e511c00b559", - "136": "8cd831960fe9726055f7b3693cc5639db7d01edda045ae41e877853111c4cf53d26d5b4e135118571721c247aca6607979a4df73849d1477365f7db0149fbc9f", - "144": "eead1b02353c6a37038edbddf9c7ef5260e5af24b30953925688d05773ea6a1e74e54b4b35ebda784b0f2236c4de0e81f769f714e8e087c740e4b5b16e7146a0", - "152": "6488d99b72121bdd56e6188e8a2e62d9bfeb8e440d1ce5826100841c39e2cf8e408dd6aebc8a20a590afce5a4f8ac9c58975cfc3d737abbf1c1579f69700bf2e", - "160": "36a7af77c148a3df13c348a6fbacb214469929a95a7e76a161aaac2e6f3825d82b3078d9cf9fe32d86e9e549cefbc7dc8e04800f962eb5d6336391dfa219c8b5", - "168": "92ec4a3342202ad2aeac13bb38c16158642c504a9adb0ff1c1daed5113629ce9ab7e242fe0c43391dea640cb319c64d03c9daa21a40b00a7c52ad587bb1d3fa9", - "176": "21fca6b61a4eaf0096a6464672fc14eb4acd81bd92a2f08c4f3779cd6aef6dad010a1774a012c7ea2d352c962a0a6d2715a82f149a50317f164e565d721f73bf", - "184": "c5dbe093ea88dd36fa754a494408ef1dee70f14896f366da224b5661eeb1813ee2a6dd4682a3ddbad9a82160e7ab31d8691c0c3ca24826665b2ceeaf371f54d4", - "192": "64585f6f6e062ccc299319e5afd27c05fe9eb484fcef4396d17108f2ec5ab5f6a2acfed5de3a2df24765e8e12ed699a21aeaa8914d859ba8bf3ab913ce80d4a6", - "200": "c0003ac9ded29aa359522f259bbe45c726592783278baaf0fd3a90ae485acba3f2bb330b7519459fa4a4e14663651c5213707503a30dd5ebe9da57f9b0740bc5", - "208": "1f740096cafbfef310ffd347965fe6a0fd515d73e4b46729c3a4af6149616716559b2328fe094f0e713c9734453bed193e4506441d7abc706a47ebb90f3af98a", - "216": "2e344bec0b0a97af32f0118357eb12559acc1490be7f41c3a52b1aa8ccb88fb667d04fc634cb5f8662db28c1956caecd579ba04fe912e210a63fbd00fc2f025a", - "224": "fb3156f051998f894fc77f6013eebdf0f92e6f43acd006ac27fb0485e855698b8e1e0df3002b4e339fa7860f7373d2151f86dfe33ef8af72c0134271bb52925b", - "232": "e30bcc7df8c8a22fa667f9fe9dccd9314a658322b72f8aff257526f027d08bda5ec6af6f0cfabfcc83d621e9501dfb9afb881e8ef55ab0def7abe0f0f84b4418", - "240": "1f7001a168ec684fb29f2da30531701a1fc1e0df4ad13fdcd1728372e9bc7f3e3841b65fe449a0096e98e24638fba0b68dca23f62863cf5bfaccc594f190ca4f", - "248": "f97ed8b77eaa25fac230f36bd503b186c8322c4c6468be64bbc98e197014dcf7223b3b0102510ddce8dc8c004b68808ba0d547a92c99c1249726f2639ac3b531", - "256": "2f84cfc1ea8e271e47e66bdea3cac8015b5b881c3e6cc074ab311bb436ac6cf59ddecb75bcd6989e9c97d89bde523a8c53c837494a77e7b73481b2e89dbd7fd6", - "264": "1e01ca9fe25fdbd7ed53d203ab4479f2ceb85bdee454739b935f1365660f5cb7ef5d31f3ff3d795a7352ed7e5988be9331c70136c8db4d498d5fd5dffa8227ba", - "272": "5ca73067cd59003e028076a1a3a89f9169dbbb8970f9ed854ebb6b0b2f4e32b829285f16b18ee6d9534c0070a178835133eeae354e5003356331b1021331d9e4", - "280": "6b8237f804f0d485b1fe609107d199ef4524c2cd1f89110f8f37cc93ab8aa683bc61356a1ab05186f8a6e2d759369dacfc5c228940f68f5e8667051c78f36347", - "288": "12ba146fc5b1d298680235741220e3d331a178b0600b5366739454636b7fb464ec3324e16c035bda45b32dd16d436b72c31430c34841cdfc727ee2c1a367ce41", - "296": "ac0ecc9aed16bcddba4f72d99676376362d1dcf18cfec3e0354af755dbcf4429ffb24f53b55572f6d5708d4f8effae29c65b93283fbc8d5a5dcaff04f6520d2c", - "304": "8165c64a8555cafa331750b3a783de1ff04ff2e7b8bf23a47fa1f62844eb7f320ae04170078fbf6fbb44bf69de6ec4d678c57c2529e15c87b64f54f755778501", - "312": "837f3adb89ee57d6e9a8ac9a6ca8645003e3cc5b2039004c37d0f5e9631c2e0278d628afca0086574cbcf8ce3d910b81e6d9ab1c81216df4a5b8a75f4492fbca", - "320": "09e7a07bfe39d992d8a6db8f1f0514f45cd584aca2f7ae841f9154051afa6536d3ac356a4c6e3e921cc1c1a75bb52bf069e95c6ebedba91b3928fb6aa26d586c", - "328": "0060adc3109f19c05dcb402faff91ac588a1324a147a514920b0a1aefe66591b4c93cbb4a97674db22e7d0355897f61888ac10a7387a4e5299712125aaf03eb5", - "336": "433be3d286dcd6744c784b755ca49d5db64cd947edf90d339c8b36a37881bdc2394520daa2bc401e8b5b780c151830770ef9722c72d409165115d72fc2d643c3", - "344": "5d339ae6f3a9afc05fe9e7f0b02f51f51d954f41a3c1eeb17cd3a1aaffa176b1d4338108130cb215f4e36e2d599a7fdc769cfb79ab2fc4054b8389a7bf2be8ae", - "352": "6ff23414ce4781e9354094c01cc6258694ac918dfba4d5d3a262157cec0b57124632bc54e2023baecea4d697a18739fc8a678461334e77367a81108540879d2a", - "360": "ce24486770d443b423274dd30af746ea4080065393d13df0535709e260cf14b033ccd190a9fa5f81705178eb656031a6f1465a5a993be62be8d43931950bd5db", - "368": "5fd63fd02e17844651cebf211a6c56c4294b69186454651a17e1f41b3ffe78b8ed321e4c2776b6c64bd54f190e1ca9c5a80664247364a8bbf20f927d88800f71", - "376": "47cc2920e3f2431f35f9019a410ea8db3a0b02168f3dd862d23013616dcde2363b96ef2a86b6c9dfffc4caff40846529ebb5452498bc62787f2c0b46f51a8d7e", - "384": "78890c54ee8e6290e10e358e778bd34e5291b53fa1f611234169666700fc8fc689b4fdc0fc04fe55e6e305603e1e11f972b7d67bdcb61f5c7880b584b8202a38", - "392": "1416459ef20a92bd002301ef6bceea55cfd85d6e75f9666f68b4dba6c14514b302f4b53d91d74e4613c430298b79d140957ff7c9a462d81d1196aef6b7078e15", - "400": "3341b08be56fd16cc7f9c4e69a08ce959b8aec776076a7937460b0f9ba546841e6ee75bc0c690a73f1b0b3c0e94fda759b5b0c378d526f93216dc51d02713cfb", - "408": "8839de1ec93b8b1250011dc300b55d886856132640c794cb016512cf69e06a02bcf7aeb867473d9425bb73652a71819ead42f13d9150a74262eee721b2bdf4c4", - "416": "c68268afc50aa489b8008d37eab51d4896182869723303ffd7dc77cf5559452fcfbaa6d0b4aa21897515b33d52a9b77c5a09427da7dbd009205e7fb7c7d1eb99", - "424": "c835c0d50e4f8cb6d69627d7d31ab360d4f87fced9b340f5bd8eb995e7326f8900b17561ef30087fb1d69f9b4ed60e0ad6a6475d2fbe3f2650460aa90ad4a8f6", - "432": "d9f73f954a14a7f677e0a0e76475a8cb702b35512a750db55a8e6cb3d8e05c0cf8033c3a006ed2519f73ff9d59ce9e19eb631eec43c75d7d2cff353d804e3f03", - "440": "8d0b18a616a31af5f8bd3eb8715ab0019233586e79668439d36fcca7c01b76ebf4f1b729e34fc0c078c893c76908322cb6921c272c624a3ba735463e099dc8ec", - "448": "8e150575425c26620c42672e1f32864c0b6fac1f23cb8062b4e2977390f5f971ee7079aba920cba14adb4465ade9cc556900c8524e8df1c80327c92e9caf7493", - "456": "f7891bd7843905842e8b5073196472d7a0c70fbc3dd57d5950edbc041089dbb92dce299551e09ca5a91ab9e201bd3d709c7a1b4911b52e141d3ad212810c8456", - "464": "7cc65b5a4e5151aebd7a0442d22002f9e0bbb2aab0775c14c9d5062e7b922e6ee76a8ba471af81ab0405520592cacabfd20dcaddbd31c1da34c98df2618bc610", - "472": "b2a99a0b383a887c0d3641056681068354f0ac2070c71abac6acf2380117880e5fce79e5eb0f4249304eef46179d6a81e399aac91fc92c012255637d3948e50a", - "480": "9c37edb73267de9a75fab17d4f2c475cecdc56ced897cb49b89736d508ff559fa07922cfd9fded4a40af013270cad4f685cfa9498aba984dfad70867a2707c44", - "488": "a490cea47a982814043183dc421bb375f1047630d12d0373a40a665b07ce8cd14ca6395034903ea7e3d6442f551af0705d749e4b0cd5d59a25e591f7c216bbfe", - "496": "f0ef05f01015d1bf7492b557f4112ff441d2e0da176e03db4e0c9f4db4e23eb85a202708bad81d1671e8c0e2094851c9e4513b95d6f7901504227b8807c7de1e", - "504": "84749515e7aa1d096117c35a02fe35e2f0487cc1ce44c9e89e2b28c228c436908f312011a04d5363a6370ff98180f1c14ed62ac61218ee474cf91314af4ff412", - "512": "e8eeddef7104f8ee0a93c4be5028db073b7ac44b73787b3adcafdb8aade084c19550ebb1d968e2b26b9f99ba48d5686e1d7658725f6934a845cb5ee475b8b7f0", - "520": "bfaa03df75ac02f44035efd9d1a232c0092031398b8827eb578065330a93d0d132a93da651529021d805e2ce531c59b18e65f51c735bbfcd5272f4eadf7dd57d", - "528": "fec25f912b6aad68df909645ee05610069f7900aeeaf1934a817ee079c1deaf54a6336353e188d982fe4463c6f5abd3f31229b0a10475a8e599179d857be9898", - "536": "5b20114ec07ab6e04b046ba7fc90d5ecf286fde53a2145d7dad8be7b389d2d0d6618bcd131888a2b7e6ac5a264aca3b5d74f0f565cca001c40717165e6d64402", - "544": "4600414e8fde9639c6f6b27c9c36e285c2a4c847bf2bdd43b1182c41992bbcc9501e728670d3424642af31c874985d9896559e22869588f42f016754298d32af", - "552": "8dcb4d2724eae4fda7d9927ecba0982f884e0b3905385aa33f1743878af56768bd8cc3f9873ede1c543ca97676f714fd35bb39d5ab492c49c0f4829f5609f739", - "560": "2bc4c6da6c241f5c94383ce418e5a21b2def264878afae1a7d7d10266684919a50289bdeba1e0ab8ff94085cdc101ed4e36308442732a8defbf346b7963bfa1e", - "568": "25ec284308776f6b7b4215ce8a4d52301f09d3faa6f7be6044321dbaf029397c5e79bbeb4cfca35128fa49975eec51026bb51893a9e4956d5b38e39012805200", - "576": "2a4930b4e4b2ec21d9232b8f42c69405a37de5dd3a51f421dab7c77163cacdc8915f9f4a27313b5c9f7a2d0efbb4b4b7b48c9dd7439a91dd2cef61bb5b1f491e", - "584": "251290cf85a752f4854e36433ccb1d84c4e9fc98988f2c19649137e8f5d641a58bf76ee11f27b03cee106f96c6db2f786907f4b0aa347fdcce6ceabb7357ede4", - "592": "87c4d32f541470dcbf87f80e511f0437a35d29a59b7fcfb91832d1516148459590f5ef3efe590d7a59cb2a2411fed8d866d7218cd470f74f2af909b9e67cbf02", - "600": "0f66d60ff5bc25844ca7b515cae9747a053d5a3b903ad25d189f063c5aa1fa61549bd8a930c0caa3d93575f93e77c857e7db1436c30974e224505f2ae423ab98", - "608": "75726516b12405309b0e5ef2f6ad13a96fe876b8b2fe9fde547d05901cc18b2a971c6621e23c3a865f8cb2065223a94e4f3caa79ac0f609cd28a078e9f6410c3", - "616": "0a2064235c3b7ddc4621ff7a2bb31c6a78627ea020522ccd33f8734dff0e74ff3ed0f2d96b813c3649466cd31d73d8735a3cf2244cd2949e12e567afc4bf27fc", - "624": "16188221d4f9a67e0042330dedb552fe1e1b087d49b4a13dc798519406383c7d8bdec4b5042bb402409d2a5615cc5ec1973f94da6d131b701c8d935266dd984f", - "632": "450ca6a4374afd3657d4e067d293ea7d9ddb60063787e0894d70e8c44ca2946a653606a1dd6c2845e698c5199c47f4a05d146ce59fbc415430b4bf2c909211ea", - "640": "cc4f22049e9b963545313754144adc7979b8ece6926d2638496b5bc56a6924058fd6b48fc8c8b8e6624230dbdf806c666668a23e2ad3a5094bf8dc1fd3a470fb", - "648": "381a45c240a17d44731d0b3e5e3361ca01737b245757de62e9eea1602c74aa7cfe7d5184bc3d006dbd6a6cb4fa8a49735cae6af93fd2a1a35f148964c9db7dc9", - "656": "ecdd58c7b8debbe3f070c06404b474da0859776d444696d18ade78866a65cf45fae2687c8b0dd735ff493d8c460294e0a4f64d1c4137db64de4b76b60190ee8a", - "664": "8d3fec9ec276a93e7f5686446c79614007de85640a3526321672d7b022a6d92a03657a721b63ccc1637e5ef6889bec13b93d0d257d04346157ad6c07db9f74aa", - "672": "ab8f4c724af08231e53a798c888ce65e5745b287aab5ea710ff5b709973e26b5404830d968f022350a3f4765efb4e5ad19f9efac54498036ac519296ee09d998", - "680": "3cf0aacf006b3d5ef6f6da2cfa7a8a1a80c7b5d137d7f7a213b3e6ad0cc448280eba78d9a61cbd00ffa571dc8e7d0790780312cd5a4f91b505e93a09a12dbc5a", - "688": "986d0a2c4fea364f1c172ea1a4dfec1413a8d6e8cc1b09ce4d70ef8235f8efb0428d6a6a71dae4bd8cd2811e5c2d74209b2489b83033ab7e6086e7a13ddbc02b", - "696": "24ace1e2a16e2ac245ff9ee4253dd8154af8eee181ff528d8e2d6abcf5bb29f4e637bb2c1d17f0872acb356f3c1f5ffce13b0e23fe5e2a0530319107eda6483d", - "704": "83b66c2fba79d4239bd40d6b3fe30f2e26e0fa35f794c8c7051338af3ae1325ea7ea8b34286b18240cb84d41aaf13f078e68fc053c73cb1e983feddcacbf0d56", - "712": "b8711c2837f0d741198a14799a3cb943b9c2c1d1a4229bdfaf3bf9ed752e95d3d7ec6faa22b6fde21ae9762deb9098753603c7e8e0270abe50dc9249df22ad21", - "720": "cdbf523876e09ddf3109adaeea510b04afd4f8344161baaf4e06b41902e6472679ad024629806f8fba96e3e4f6e0ee3a9527ab35a244daee6467af88afa6fe1f", - "728": "690589810fdeb08745661060773bba352b62fde0fdc4b1fd9b7ec3b1093fcd375eec8545cbc99fd1d7767570e4fc050cf33430ae57b9384a49f7b9dd2b3cae65", - "736": "bc8614dbc81bd6247126239eb08f86fd56fdc956cf9cde7a3b1396a09576cad3e856670ed3a8b3c17667c6a0fd20027dbd320b839461e0252e741deb26b43698", - "744": "0af56bf5ee6c2a523da8a021b365d83c7f7179ab5c1dfcac85432305cb09576bd86c9e1ddcae4b528e1bff8d0f46a1854b3586311ed52bc1046ea2c818442a54", - "752": "ded66ee7cdb2acee3786505f7235396991fadd76116cf64faf28a1287898acb7b3aa45bac217a292a2e6cd2a4f7c2318a892ebd5ee5d460f009e5fedf385efdf", - "760": "a30ab661d67bb9915f97bee775355c566e97b6c1b439b4fa924df4f07e22dcb528a8c2332a724abbaa167062f128da84c93e84bd576ada8ec0bfb34c55c4cdb2", - "768": "9abcb635f87d3cd3b67635a881c504215ff22d2eac9b482c521c80584361e66523de99c3fce00207f85a88dd319621f8f145d2a0583e7a5faece46fdbcb0d0d4", - "776": "c013d08c8d3b0173bbe56e981e2d8b404e8c561748b3b604b7b6f8dc6d0f51afaeadd81c4453025c24d3f948dee0f789089f86dcaa650e979aeac32c711cdfc6", - "784": "aba40caa04b3c83eff7658b5aa4dce84328a37d907eaa02cc675ba3e6d1cdf22ba7e4794aa345508675afaaecc0bf6d7a7dc1117677086df7fa4e937ef3bb2d7", - "792": "b76fe28cd3c06ba6d5c62781c73d568a18e0bc5fbae816cfc3268f4c3237cb89519257006300087e808a0bf578e679ec77e71919f5cc08fb596ab711fe9eebbe", - "800": "e1da9cc78ad6e1b2266e2d63e884361907036079f8e4f8cb2b065e79ce627e67234965db2ee47351aa8cd8cb8d7c64fead569ba406f8c55d983657e7aff4857d", - "808": "a508a2f1f2f28ece64cfa2f9d39d6219ed503141a1be42b2bb71ad34a6f4508dd409050429557955161661d9acbc3640d36a8a84508f0de86ec7a907212c3d03", - "816": "9f6c1c83eb600879550e84b47dd4fd7f5e47efee1c58468618972e57aa3a60ecd164a34d5ebe2804292c4d074c036ff691a55e85273f54e74a41e8620f4f14d8", - "824": "c2244c28efe45d0808e20c5efa2b3c78f2adc3bf064973a2a70ff102e56697e66e13d5c21c7c08c9b2a913fd91e257e6d610ae0b76db5998724c2f2b0917fed0", - "832": "fed7552763c3b35a07003dde26aaaa3479139f09682b2f64f40216dd23052780fd13a0c4b29f8685fd8e4aee204def15e8e4a5c30ce684ecf2dfaffe839c18c2", - "840": "e4fb76f997291aadd6db4affdc288f6cf45ae42f9976297fdf166569ac021b7be7d66588c36fa64b122ffd4bfb1b089d57937d5e414a7a38006a3cd0576112b6", - "848": "578078efa39b99e68f367ec03d410abbf98b7dd02f89475a0be9a424b32df1260617aedda3a17a0626b48c440eddbf004fcd152f2a7aaf682c55cef09523d64b", - "856": "86881ce092e9d0a3f73af2c917780659d1fa3cb8d94118c0fa313af777913c106b791311e19d985268521698b7c5c2e0d3dda5b7a2b62d1cae405154b4e0959b", - "864": "1adea73617c729dbcc0e9a6225ff52f2565d01cad22d52c98458475508a0ba2309c8ef8a18e63eeea16f3a834c356fcba605cd55bf3668e977c2c19431ee1f8e", - "872": "8f34c5f6abaa5af5e4405cd37cd1bde6e11b38635c9bdb9b8ea7f3632c6df5b4d6d7db77908d54440c9641d4ead4812a6a8927d3394a819e8999754ad40fdb9a", - "880": "a292a425e05566e166f83e1196c5881ebf6a35dcbd0d3ffe25003085cfb6a0e0469c68f17edcb2137514dc339edaba666cdd134f5505036f4ff1a88b8dd88a88", - "888": "814a596249ac113cf394a5e348df55293bce8401bf9f0ec34114bb55ea1a047283af655d45ac45717c60f66398a36cd1f7f354ae6fd327d6f50f1c978c704433", - "896": "064811fc74ca13d2a6dac05c9617a369d77071f4ab5c0d3d563bdf33fb9f1d8e05c6c261d32ffb7bb0e2037d0b934fc16183346c644b8926c2ae0719d2ec06a1", - "904": "3b5738ce167d128d016bc9a7787a1429b41c81e784894aa4215bc63c6a66762be6b7e0c61867694ad2365b9d644cf7d82b459a8521b8493b9cdd3687019a7729", - "912": "f346c1ba93c766786e5c450d972d7b7d1e18a32465660a41d1beccf803cc1c965568d5bd218ac33f73fcb76c776bed7a28d9b5a00696ae3de086c1cee0c9e554", - "920": "9953dad045f05c9d44d610c46230bbefd9d529f49383834c2e134e9c31ff4f98c3d9930cd26ab3a69cc257dafeb2cc63a7a79b332fa8d6710b8786d9fcd964a2", - "928": "aa1e4b9720935a8c05c5910b4b75f030a4f76ea21ddac077eecf618d7c8053c4b01143d42149b1bb48079eb6a1898bb175f3dd0fc1823e512f30076ffe469bb4", - "936": "1543a66fb000efec82544b04bb8fbbc50e46e87a1103fa535f35393138612c69783b53cc66e9e18915e291605443b0fabfaf7c97cd77071ea81921938a9f88a5", - "944": "47341a6b621fe268ac3be13c717784dc79e4c45531c7fd32f17b31c6efd6fed491b4f910446e108ff159b8d28ae5de4c8766c17f0b81946811a308cd4ab78c73", - "952": "427af58871bec7fadc342e40805abb7b3e47ab2a4c7fe529ffa20207d7b7f3c1b53e050ff64498f0ad028fe1f9f4d075eb88f8a59fa4bc25922a1cd21547b09e", - "960": "5146d9b44b0bf31099b11835cc8bb4bc3b6370de7932cd77c6d4468b0a847de13758de22f3f223522e7fe9d722ae044b13012ec5dd7c34a9fa0d3c61cb9398b9", - "968": "78880098f42afe8df4478c74d58018d8150d39827383b786c06bf9836fd7502d3323f9fd9a079ca35cfaf57862476e445d2601e4bcf6d3ab486f3e299dd0720c", - "976": "008a31f0b0fff06f8a1ac9c2417226d6d8867745cd4d73f945872222757590fd166dd4a86705e747a21fa5b23c767aff1dce32653fb8db199ae2d5ad4b235b05", - "984": "1f6e790daacc00e76b684bec670a6b35573b4aafcbd3c4e43017b2ae461405174de04589051b8e6e7bd1506a630dcc27409384bbb8226b57324308444e2e7226", - "992": "c173d6aae997a0589e9830652fc0437965129ffb1b5b757ea1d602581e4b0b41dd13243a47d549d9ce84166f237843b4865e427de180670227f473cb4f39f37d", - "1000": "67ec79c7fba50fb51e67e6069e3edfc4ffa6f758420642d303a1e157263126866125f17a048a8d2cc1d5447e15ae83d7c7cacc75553c20a5f4fe7f4f939f016d", - "1008": "17cf0c57886342458d789573ec7aa10c2615b5da4d642e34134687c324d4119b3aae2a6cff0c5d54f3fea51f70af25828e5f9fbbf85e32c5cd598eb340a3e3a9", - "1016": "f42aa4043d0774e05de406181f2936b7ba91fb1a68e209174e1d3974abb185c79932c5ea4bca3798b68c303b77aa682df57fed6635201bf01d345782b1fa58c6", - "1024": "ff410b511135dbc0b8644c28efa3ec632326feb98e50edc6390c441610d7c514acdf0a61a0bf01aa9dc1f55d92e085248eba1c24ee23978b4986af41c13a6176", - "1032": "847992e94af5cd116a194cdca4e12c09136d3fc9bfdc53fcbf79d87ea1e787460a3d246f4ea55d098798739cfad34affa3448f18326aba973db79dce6a88e704", - "1040": "758d23e0354e59a6c6f19426235e688cc81656023fd968f9814d1d5e4f6b37bdbb5402f0bcbbee67b05867d9ddd74b3839d3ca63c096af162237554ff6d8e4b9", - "1048": "3d191690f3fa49fbf74897f9e6fcdbd3ced0cb94aed91f33c347a54231095e6dec8681ba461423d18bd030e81392e459253d8f6c6dabb158ae54823b87f57b61", - "1056": "ced1be5fc97bd76e967173cd3da49227072d46811a6a22b53053a8752c300a571eb17c6efd6770079300ebcf8f856a487d13daa609503d05ea4fe072c2f69add", - "1064": "8efc6b1ee3c44c2d371c9f506e5102e14595768858183f27fd8d660cd734df4c991ad460197a66628f58fc1f0a92baba1e3ba680c97c95e78d9bc0b3cbf260f7", - "1072": "d655f85d2e940fce4f116d048ebda23b2cbd2ef3c7e608291d09f652d0917fa2398ac59b5bc702e964203baba793d984cba585d10b4c7e9cb4bb3a7effbaa24e", - "1080": "cc7b0a117637daf37a6b54c8d0c95f8a027ac40a66785d95ac8742b1f98658bd36573288c07d98d3a2dc8498befb3d4d928460215fb95e99a127ecf3339b7466", - "1088": "7c0d3a758d3f0799325449330d95b6fc715332363825c8373ef53172524ddc58465de0a7cf35a0bdaab55b655ca9c93dfec9b1329c2dc8afa2c3f0e9c80a4331", - "1096": "064718b79ca2bce9820c794c4b3b1b3d458351b50f4359cae9eec04144325ce7186e3137ac69c5369b3478f95c164a08901aa49a0f9cbbb8ff70afee7fad979a", - "1104": "c135b9f54490667e4b667cfc1e278f26682dfd914a6fe160443b435c5fda91cb93f49b5dd96aa6d2ce724665353d5e2534e1c7b2d15135de36904fd296b174e0", - "1112": "7690b707e4b8d06accebd204a8f7cc9635a64a6e018929b0c69fa829650a3a7d86cb630f9b248c9e6e9b550f7fe028c556fb8a279e722227c9e8edf6d47b2229", - "1120": "e467319f1928b947296164fb5a1077d0021c7481f87ef134481f0751da69e45b96cb22c390d89ccd7931dac7ab941180de69be7d1184c21bbb18c7a9115b9468", - "1128": "b31197994213b4b985693f59327a8e45958222c3b469fabf151ad2818948c676ec5613393dfa576af2d57b03c2ed52e6ac8484daf05a8dd9987d14efecb6d526", - "1136": "b69ed33dbb14b11901a355e4626061f7ba12c463ccab079831cdf3e0389e498f9c59122b335134d74693a86c0af645bbe9b39a8b692efc5a35087c9c61d7c57b", - "1144": "29d69a3cd278927cde9facb1892d402dfe5a3396b74797eebb551b7ed0f446fb573d5922e7ddf19e6d05ecb1d653fdec85178a6233b52b5058f1d0526a9297fe", - "1152": "bb6e42f68aaa6f93ab604893681b32446a615a7f9e29506b2ce5b435bb8795a99b68881e8700cf64ad72cfac474fc7903dcf5b36309e7cd74a22abc678519c46", - "1160": "2b0bc225cd6d03d5b91eaf5ed5b0035679550cc4fab078d3fd13f58adf2b604f6317a58592e4bc70d68ffb8cb4fe0f8d8a217c4076e7faa0343a287c301a993c", - "1168": "d551f4f92b0d7b916ee6a0e122d7ba014336b3fe266924d65506452319d1be87b240c27289fe55998e810dde4608cd7562f65c8ed85aae881e51f54083e26497", - "1176": "ed8d5440bc1d3af1cb3c725b4b0fb063c47328447569a7d131eab6236c7f18e00f055bcf027b6fe18855b294105cbefbe56d08c951a9e7e4295512a1cfa910c6", - "1184": "a37db48434091b355d77d5c6eec1532226a5a7aba78b25d74b681a43f5b3b2cb2981d6c704b3686aa7a35fdd339d2bcd6eb7cabb1b63ae568a44707d9d2d039f", - "1192": "6c8ae60e545b4fb8422ce37b1cded480e743d80ed6e305ab94e63d3eaf5eaa10b992fb3624bae2070bb0e517266b7bb38537536c7a8cc90e1ffe01ae03896882", - "1200": "bbd8ccafd8872fa97408323c64a19c2da1218acb011f6a2c69540453244a5337d0e011088b0b527c64593889839a7c6e159a6738dd9f9c6aa06ea3586cf4c33c", - "1208": "7500abe8787b24b3ad2b20cae2d9d4f4ac7cdf6d2ed3096497055fed9bd4b9aac5ecf99d5d1bb17ec332deea64ba3a8fc3ca152cec48cf1ebf7cdb39f818c519", - "1216": "c05ba595ff427153509802708422051d814ea709dad0ae8afb322e31462df20fa2d6aa12eaa0e652014f8e7d6b58a416bdc53beab8cc49f07bac710589b7d85d", - "1224": "a2af4a4b4263aaefbccb039f0761fcc8824b3f6930e2ca909b54808a2a93df20af50cb0e16628a0b8f5b4ef2a9d7498ac014e5370978ee8ba100c58b76eae765", - "1232": "eeb85a28e3b7d2723fc091f0da9403b015db6a3f7dfc55b4986156632f052ee187bb054cef94ecb62aa538b7fd14480aae79c9c5ca99f3eaaeb0af7898a75814", - "1240": "951d40e837a2df63637c12d877a2fa6210ed8ebc8e326971f6828673c82913cb353cfe079376518950319263d7e3290aacb3998eb29adb5db4d62f92e433924a", - "1248": "60a218b76fcbe2865f93c01e02509f11426d7305e7061cbbbba4fdad90468b438adcc23d4d5aa48b880bab62a39a241b76467f7f3aeb47ad0f4dc543f9cadb46", - "1256": "d435a7457de0913ca61c4fcec659c33fa99f2cdcd4e3f64dcbb45334802ea7e45e7da7f36d38ea10be40a2175224d728721fa59f1faf618691f4b5d71739a3e9", - "1264": "cb26dd0b88476fd7764a201fd23c8c1b79559d723ea4c59859bf83bb619c7f5d1bb03512d86683dba5903e9f652dbbf4a9db77bc15fb7b83eb208a4e0e649294", - "1272": "6bbfce1113f87570af45e4dd17ad64057590dde17fe4565e73428c113c944d927f5d208b691f30d70dd89d7d9e5aa031824835fa0722ebff11ef08fe751c3d63", - "1280": "b835fd1597c5d327ae926a7edd50a50a8b1d0f0fdff5aad2d42a28a7be77726b09aab80536bff57d292a35fe0994889dffa21b004b869cc940c18b843db032d0", - "1288": "efc29a5a881437db5239c8dc21d5fc54a00dd9a12e3848c571b68ae4808c4113319107eff8988c33e95040006ca0c986a54dbd915882cea3058448fffa5c17c7", - "1296": "503259cfbcbe95057ec109750458cae40f207e2a50068ed534e43b8faf31cda7566046de57d2c679ff5c599ae9c0bb5f3d38b04301a0459b03df0f5618953a40", - "1304": "e0630afcbaba299b8da6463965f21a04dbc97c2d89ef78ffda9f94d3ac01c12f584c5f2cfc6539705426245e9c96d7c9901944c77777b9b471128ed9ffcc064e", - "1312": "6eebde85d900d789e3b0641488d82946aeda3fe9985090b242b1f3432a2cabada0e75b94598eff3481ce7b6879cb86730cc4e15df45d9ad89fa8e78c2e29e5b8", - "1320": "7f9b56e373f796e8ac467142fc5f4a8f41a7b2588f328be6456e0a2b24850d1fdeaa23a1eaf14ae3ef4d3fa9d2f9ad524e466d3d6acd6d41308db297c81adc3f", - "1328": "6a1c4bfc89666e44fba549b9318744b925d25207595fd1e1356dfe7c9cfd7e1d7eecbb768229931c87e3329fe7292f598720796154621f5f569235658037602b", - "1336": "92abdea03a5fd0db5497462fa9dee854d0d2f2b0e150f777f7ec41e6a998e0fde477fc9c4088524e7c948c4b9f9b55516c89ddb0d1f45528ab0512008f752301", - "1344": "fe1f2d6ed12e2e427799d9cb6e1c254d6983cfd37f21dbf70413d004bc3ae3207631f3aea13cebdb7829e58ebb343c40e4aab0f4cd2b2750ca7c02804e1b4bbd", - "1352": "4d71790e62563eaa999aa81ba4e9f695c6c39a8756988bbe4d35a160c2486036a8b81f9876d04fdb43607efd362affa9d055bd8a112607ff528d02d37f9b8f9a", - "1360": "0c41d84909cf9fbc9094d4d81c7bc53fd3837dcdd5c01c023b01bf3745cb90e19700d3988d802e7b998569fd9d5a5e9bb094abfeb3354cd76e5a4e6f5fe0b814", - "1368": "ab57206d892f16a45ef2aaa7d4e63b91a7db4957f1c90fbfe34e03bf3d67bedcd041eb634c43e58b79c9a2520e9f9c817d011b4784f0008f8e854b25487e82ac", - "1376": "a2b7ca274db7543d9a46075124773cce3479abc1efc8612e4d24b03e253602386f15ae5434bb6e3d29f7dab02d5c0889f680833a077109f789a9df4948c04875", - "1384": "f7e183b0ad55dc410702ccb4c3495c33b4d7363520f36daebf107fdef871e10df22ac3b4257694cea6f9d6c914a7cbea3dd82a24df471be87b55efa9da43d15c", - "1392": "d029830ff2219770574eb7f342538608d4db424b602dde02d89074425821af054f320d4cab2b53e918221d4882163bba46361bf55f48f1d7a2d7dde92458a9bd", - "1400": "5793ede9bd2dddc94e13501753d1749823de60355fb3c07734cb4f3c2de744ffd2395f4c6ad45aca0ba7b93823b30733ca1828604594749f6c8d41f95ee7361f", - "1408": "575aea41a351ee168b16e3675d080fcd264db20ab39fa578f3e9aed908b664c2056661184248bcb363896491fe43e8606ad47d756287ed8115ac902c8b662791", - "1416": "514f845b79c0d52f53870d05e302b4c6a246e622565a41176a1ba07b404cf032b4b08154029ecbb4e4ad0dc320f6ca46da1db687806508aa8614e92a207c2373", - "1424": "59cea1b59a5773d18b28dca04c92e740c88ca81f35a77f374cb254928731000fb13bfa187c01aa95c4eb40b312f3e38e0599e2ee61ab2722deb28ba6338ce001", - "1432": "4ae98e319e5b22adb09ad20eb55ac8a90d74de466bccdecf7849ba459a88ad53e14636be302f17e49f1cea56a196ac1bd901ba014e52a181209dc7660d398e4b", - "1440": "52858e1285b39a8e6751c3a090ccdf9d983aa8d0bc9d18ee64b07b4d443d39650b44c76fa7a5b0be9eb868b87b53dcbb29c46357be10c07584044062e67c7ce8", - "1448": "a4aa862d267feff52f61bd98d16d75f160f4b256c4c6c59df9df325fc278e1906fa8983bfd2e3c390fe20b8a70bf9ba7d5dc562adb9765311658aed17c5d3b12", - "1456": "b02f0f1d4f957e0cbfe7b6790b94af9962e096fc8d27612b0b37a62b18b8af8f5c5fd346a87ac6bfd13adef5732cf55fc81c91af90027357c43b242f2c84f4a5", - "1464": "74ea4c91e6b51f5519697f59fc9d18a73f83589d6f7766c1683e751898f363cd5e9bc9a409353011bd6ad913ee097f882c45dd653dfa722916ff7f23169d252c", - "1472": "c564639706534cad463ed481496a0dd8ea8feee93de5f85290fefd6b4dc94fb2fcf6c3e6595068ca2f30789685b477dc75f8467cdd56754e64a488da41e6098f", - "1480": "5fe9d102bb4fdea52008b91bf30d5c8c64fbe2542ee08a073e51d7ad0b0de7608b64cb58ec391061d782a607a30e3a0181dfa9bfee63645c2033ed0b1e1f6ae6", - "1488": "8fb53cec21bc9d049f9c54d30666da7a7c29288401f1da5d491f4bb0f677356bd1737a71a99d76f268b360604e51f86a5d6b04a50e2b3d5def3344b393a1164b", - "1496": "55b0b057301427c876d866214c34fade4a5954839c52ab150387269ada54fbd2d4a39a41b5f5ecb58778fc38be05fa1638f9042070b941e0c0d833bea16ca615", - "1504": "905ef4d7bd609d29d4f6377164e57f4570a6f0c00874f15dbb2c32930e1694290756c7223869e0a59319c4599afdb933ba150f4fd26bc72d5ac79460b5ddd84b", - "1512": "1b14c3de1a18b937fe0e0ca1fec1759bc315edcd7eca94cdd978c08693cad1a4edaf1310000ca5ae05d6414e24e29b9dd09d13fe643d5c40bbabd4021eeca03d", - "1520": "fcb278f8064f9d1d0614ce7b35e8f6116d0c173005e47e14a352fef743071908ebd703b61a786ed70e0d9db3066c786ed523d213485874c42bca00f87bbe32ff", - "1528": "a32bd1e9a450d94422c6290d33d73993fa32907c1f3b6915077f56e639fb975a04ed67aba2f477ed41812fe0ff477741d72007e7bf0d1492cddbac147494c7bd", - "1536": "21ada79d638b48657e03fc9db9ce375fa7a409ea1ec3239b28ec83baaf9913d785ac0ed7daf1cb06115edae304137e59655ed6bf0ecf9d987137d7423fe26ebd", - "1544": "a9c2120ee30429f997bccaf074d2b35214c81c8e434cf1b02d3d21f7efcb622daa62917a90f36f0ec2ff7108ce9a90d9dfe64011786bf6ed0c9159702d5cec17", - "1552": "99487ee9ddbb60ace606f9bf40402b2ce6bc715b4967d3ef5079b75456a53ddc7bf8df37ba33579686d11009e26e6111112adc4635e9b6751acde8130461ed11", - "1560": "6dbf121328df0098059cd0daea4c6b3b83869e395364d4e1706e4cb14f592053ec2d8817629fb4a5863eaf4099d40534f8e99c011feb3677f2c73bb39f787bc2", - "1568": "f33c96f400785f58da3401f96e99a6957ae75ae2c5707fa41a1b892a177cef835b73b9864aec9904f0e0a9d1fff3b733b04cd0ea8ab9fd357d7bd72a83959c00", - "1576": "997efa360f804e2dab60f31e3bf6c8f3ec8dc377496c87c1d298033cc6db2f1d696f33d1c94e853c411211aeeaaee6c01fbc728cfb4c326b4806c674177eb97a", - "1584": "a0d24fc86d7f7ecc7104aa01cfe009fc7af547d6e48b83fb97d9c2adc596149ef3bde6dfb9ae202f364cd91d529422729eca9ee1103f3c2a17ecd56c8efc51d7", - "1592": "f926ae6e2696c3c94b4dfd990486e6097ec7fde7d60fe18c455903f442ae7a26d5ecdebd5e048b8776a26f75b624279c09f2e21beaea6bb0dc508b0bfb459b57", - "1600": "cd21a8bc35b8e8ba0255bb4ffc53263003566b203710401c4accaca06f85b56620e8b08787278ce8dfdd1446e47344a94926598d2d3bc06787aa2f1b72bc804c", - "1608": "217b538cf9ba96e9a462bf0af1f54f8cb2a62b3d46f1813d12a8fbc70560535ae246010d9900cbafdd1744f9e883ac73e750742dbae65d4c24d247e0a8206a2d", - "1616": "8ec4dc8e214987ec95e962e6fe343cb561608e0f6295e15ef7c06b84b7613fa88d43f49425794025bea131c3b9c328b14887a0c7beb353c945b05dfb07a973c3", - "1624": "c6110d41ff9cbbf930a102fc84f47880720c6b5b7a348377d0fd1a9c2b8006b73c9ba11d8445cbb414f31e0b20bd4d6b54fe505d5ed0128f7d00f3c3b5be0b54", - "1632": "cfe11ecf3e147f39f97a1bdd4ae1d43e90f40a0a4c00809a752009fc40f6748a5f65c925ba9b2f78be1dc044b7d27beafc5154f8f97089068e2aabd73316cf8e", - "1640": "3ae2aabd659c5844c923fd171ca36431a7e606eca52a21b96a0f5e8cd1fa24141bedaadf58608781dfabc103fe929cd2eade8d6fbd6185d4f4b855dca610d7a0", - "1648": "a547ec43bbc13aa17561066cadaa2b8c0ea6aa2217c0540814b37d6527517f92bf5b9df2b6d56bfc6daed0d73ae182f9637971443a93eb7189c21de3e393d0ac", - "1656": "565bce22d56d739b6d70b839c93b7413d8c7c966b53ee2f4354e820c03d0004733f8227b6fd24dc72cd869059476da6a0b5d9751987965720067335c65d92340", - "1664": "a4a70e2e41c7525728df1f4b35865dafdf23370cc74a86cc2789e4a1d80bffe5bb5d46ff96b5b179d56941cf0544e7fe5fdfb7371987d1a2244c49f7e8b97751", - "1672": "84e2b26493e80f09036d0466d3f0fbacea031f912b37ed9cb824f6db5f6c69a1f4261786e36a5a6dfbaf1b8cf6855b297b07e2196ecf7dcaa8cf641f2eb90496", - "1680": "f5eee01aee124e63a7fa2bbc7ea27b99827ce0f27908c2e37e5bf5232d32cc8daa9b92641ef83c2947ac52c4368a709857513286bbbf85b099346bc428551403", - "1688": "95fe9aeb3920f10183c3814af8daa63751c1bd55874cf19bf6666e6b79d8aa6bc711903cd5cf94db85a0e24330183c2b24c4fa4d7de512a49aa80bd0adf2dc47", - "1696": "9eb196d044bdda0ecd35b555bce61ef8727b4cf4d5d3de222fec3d20d7c21c22225774526518d52ca699bad1f50a2fc77fb0717747f31943704f0ad344a8f26d", - "1704": "d5f95d3e80e5a29196d378ff39b2700e0b31066afd679e070178217dac2642e397b4cd80da4ea1a180488ccb65cbf27429ac8851dbdb668ed785a43afa44f280", - "1712": "47938b4da7b058fcf903d9deda896aa63fb7cb911ffe3eafecf052bcca0ebd7d0dca671903de2f7897dce40c37e84f49b3190bcb415e2ab733cf847c8aa30ca6", - "1720": "947432d5c98ceb5855970a2968befa71794e4a30ee333e8a2dcd2bda43d1903e1992bbf0cde472433cfb42b02386abca320d80259af010d3401195c3f986af4e", - "1728": "3edf30ebd3e0005180506bcc60edd61df8b586920cd1a36499697f5426e3d44163162cecf57e20a3f7c08653f8262c49ccc56882208f80954efce4fbfea3118e", - "1736": "976c1543c4f8097147692345feb1120c082eff1aeb6b02d0b82dd81a005e726018fb6142f90d83b6a73655ac5764cd4f39e709ce9bcb0aeffb958a84592b0818", - "1744": "a432af9e209dbb4999ddfc6362135adfc0722d7b808a024ad5e68d44cb8cc81307290936e73dc3b9d2bd5f5b19c27ddb20509b572de18b7a7b80cd5e17a83318", - "1752": "38506c1905a8a3e9900da16cc9a17e7e509075270305b02a439c2000dc0754a32bb8c4bf0c3e9f0f01ba039584af6d5213ff932ffb9256d49a551272a66c594d", - "1760": "08b60660325552d17dc823ed9d057652ec5a08b3ab6486442b796bfb8175cf06590e03c502f37ee3774a158794c43fdf1b4bacfced492d8ba39e5b45f0eefed4", - "1768": "f5ec9be35b52927597b42ff9db455b433d6b142122aa9e86293699ceeb6ba57a04bccc1c73af4a013c6b0fbca9ef450eb2c15ab5d8448686b938d6c0e37b58a6", - "1776": "f61b1fdaeb39b91cb27c68e8f8adbec68a6729cc620147ee889b18744714a7e32589bc6c7104cdc7e06bc277ac7c34ae25045858b8d47b1b590f8ce297f70949", - "1784": "a3be94160de9d968417eeedc03f47c07be2f06d0af7f76b0793d69678469d3e8309c0172b3667f5f95e8c8510f70c5d86c25189c81e68c26deb9a7d186726dd4", - "1792": "3cafd0c784ff1f34afe4a3d434c2c31927f7c4b795a1801764d2a0fa39fa89d08a36fd884fd151227168bd936a7e39b4f269326bc6b3a52e6a5153280c1070ff", - "1800": "9b6e65abf528271dcb93186d7bead7d15873a0ee5288a0a95b0c2ac58935465c791e59e0f8288da352cdb2d8a772768ad8832a0746c785e0f7a968072c485019", - "1808": "008975f6bfb8aeff7d10318095fa06ea30a7f3fa0f801021a5d381c7725c2f4176d7f5c10b92098b8f0de64cb1146583067cbe164db61a91381badbec2d40e53", - "1816": "70c3574ff83b7c6fb9cbb36ff9a257e3208f13d7113c36b17f57f1d2427ab8bf1480fb2e03ca111c2a1491c090963ba4c29747529993672070eeb0c29f9f1083", - "1824": "02a5c90bbde16587faae340f6d7398c8d30986c1ba98236538ab79c62c85eedb365311357e6462ad623d04ea45a33c1831e7ff879c41c9274ee5767f346f8bb6", - "1832": "e15198ff527c6b4761bda50ff8b23d9a38c532bf7a0a2439494fe4f1bb04f88ad4058ae9b2c0bfb4a41e660a070214360edad73e8de6b2e58677fcdb6710194e", - "1840": "b3ac8550328c8487c2f2360d293bb2ce4c0ea4d104bdc474f5fd1d90a032f0c8a2590100081cca8ffe85e21c63deacad1e0a225e05df244c9663248a5b14940f", - "1848": "f6b983761ec05d7c3b2e63c1b41aa3ecca8f41bed343178dffe0f13051fcfe93abc072c90d9e2db20e4108303e7c5f5a96f7923cc665ed7f48fcca6612d0b2e6", - "1856": "a94c48ff9be2573d76423989eca5c5d43be7094595341e9ba0eca7846b4dee447ec49964cf7e66bdac2bec4de93072fa4fd33919644e48c70bbde84914480192", - "1864": "9b269ba0db265f8d4bd63cf951b9bed19f496accdd78a149972a4245bd15a579c6b2eb1a4c25e29b0e0554b63480fd04fd4a62ad504c0ba53237bc1e4d048e53", - "1872": "5b604ce9e277b44d35b92bfb51cb342d7b7257aa54527c6f3b4a70600a2f10c0e633ccfc47eb43b039d141e7fb28acf5290f03b9246182f085da208bb05b257e", - "1880": "392008d54d3a093f4b2dee265d655fa76809fe040933e5ef2513d3de8e849045fb31be4e7d74b9f3c89faa018ccbd2089e40db93098c17148f86546c7476a053", - "1888": "563658d7553ab83d0e25fc79810f36d699c584609810266c03e2b08e5a7d0946c779347e2e3fb6555ccec18bb0f6d3e93382c75aa94e2baace6b0009417b35e8", - "1896": "433e5d2670332094675623deec010413149a785b3e62cb76fe6ad7134fac40be80d96f1fd21f641fd8b24b9cf85636e0d4d9b323ab3c78f187ad78a47f4ac8d1", - "1904": "b121dc8b52c5588c1720299b58bcd0d99dae179904de1c4a67b91af72eb751e8e6ad66944890aeeed589003df160c23da7e8928dccd3b492745a5fd4cd2bce7d", - "1912": "e40a07978297bec715985fa7db581b7904bf971ba8fd0a6338539a3e7975ecfc87c2f89ed4da93d360fa9ae7e64c8dd8521e551d7c2c64e63c0fa84719a0f11d", - "1920": "c7ff949b60d75eb812a424304843cc9461b16d6f9711364b0959675fd7a16518284814873d67c9b5b75f603aa6541fe19779f7197d6fdb9e10f68ea754224d40", - "1928": "763ef9478da166944387d4152c2b60c062b64cd0f14d56014b744e83ab6e0fb42efad471dc4e3f4cbb368c624e5c0b865f6dcc38fcaa94dbe735333321fd15f3", - "1936": "614d24329d82654fd9a8d093796fa61a2310a41d70d8ab25c988f700e79632e038ecf5aa3e9c4b05e864fd7ca0785af39ae333f28de7f729efebe07930927e37", - "1944": "168d37183cb884c0e4f5b5958634339058871110254fb7bfdbc043276d19940d25c4e6281b7a2be7c50c785098c2b001c96b93e315d0a54af49e88788624a2c6", - "1952": "f0a1f05cd7a6599e96f4345b78b77273503043adfc911fab9f53aa62589dccf9b38580207d3814ada34d69bc23cc56b9cdb68f068ebecf08993fc5b49a7c6c97", - "1960": "7d780b511ae36924aa5b1562c43c0578f1676e4df8b21884cefd7ab876321ac1f4809d61381fba2ec447ba59f5a4db96b73651f8b732c5c0ac04a2d0b08d1ad5", - "1968": "3a002340802ea069ff7b33f5b78c2d754e17418f12db7008495f2604042e7c4c7935bb6ef19c81d357079a1db13f3c315bbbc844a0c83803daeae1aee4e7890c", - "1976": "a22f8d8a290c52d7f1010347279ff8b4b8140f3d8fa030e02f315b9a5ad7729349ebc1056b065368cddc5bb7abef0ba645db2dab8fa8033ca792f8bf7b2654fb", - "1984": "77f4376bc673f090b45b4049a471943f42aef5251b7726c8ac5a68930a74d90ec0fdfcda6ff08dc0808b97f60152155e47abb67e7dfa7face37de743bbbbfb2a", - "1992": "91aaabc935881db3e99975559176f2b2538d1d6eb10802529aa684597c2576f552a1305eba13f0da212d87c77622d559ebfe061c02735db9e81af98986ca005b", - "2000": "d0bf37a4eed8bafac4606147aedb816495ea6f1eb538495114cca8f4cc9fb84e5b7ba060da3cbcae4a41f0b0a5e41091b3e7a1937675c77faeaff2ee45ffce32", - "2008": "38dba9139ece5e6f2f943a7ad0a38e366fa154fc103851e114eb96f2cb67c22e1ebfdaca5b55ea84e9aa1593641db36bc31c2789c8891c7beaff4d3c2a55608b", - "2016": "2c594ac09c17e695bd6d981116f00dc7ed8d66463293b98f2788b94206f5244df25c948cae94561754bb2f1c30ad3b74d5bb4b4f0427dff8c46e0d88533838cd", - "2024": "689ec2b1292435bac7c5083f020f4d2d028bfc5edce2c79364cd77bb512e04d0c298f61ec56f8cfccc3d46ca85db68683775c8066d170280ccc9a22c572acc1e", - "2032": "54e3a7ae5d39ed0314a999177c32c7fe4fda34de35e034e0a52a62d900a638c64aa68e317a9880584e34b62d3a9a49185cbaef75d8eaed748497d6dad28f3986", - "2040": "42edfe5595c0c5df6a02eead0feb4092d970c54147bd781023afa29452d96884db3047c72a1395d12c12c713b11cf0a3e478950f473fe2d47d253f0203ba5c6a" -} diff --git a/pkgs/pow/corpus/groestl.json5 b/pkgs/pow/corpus/groestl.json5 new file mode 100644 index 00000000..d490cc3c --- /dev/null +++ b/pkgs/pow/corpus/groestl.json5 @@ -0,0 +1,260 @@ +{ + "nist": [ + "6d3ad29d279110eef3adbd66de2a0345a77baede1557f5d099fce0c03d6dc2ba8e6d4a6633dfbd66053c20faa87d1a11f39a7fbe4a6c2f009801370308fc4ad8", + "b23eeeb675c272c6e37a6ee9ab4dc505c9d6a10020f6bed3948205d04cdd1e90b06e494d186ef4f19266d7da200c89dc009e2b1a538cdea199e773fc076f802e", + "272ba3fd8a6e392278f234e5053411e8267375a4f9b05d960afd2e664a67448f500f8bcdd5b8a68d0bddf3baf873cddde5c235943c58353ad90aed79a6c39cf3", + "413907c17d8ca9e5477de5491914dc4eb621f35c96267f8e807affc0335dd8f6781c053ced249ff3c8c5a4d4ac62fe3d9e6660b30cc09621de7162e6c271d3c7", + "4726d760203c1eaf847f6837c74c16adcef5b55ead5768a7c13e21a33d0d7b740f52de8c81356da63daba791da6680af015deb81246550201f232822bb087ce5", + "9cbd9bdc5786ee3e8bda3960ddc89cfd41b2bebd1f42b9a16b390d15026db6bf817c81c079906c2f4810a8b5cc5df5d80aeafa8247a9ca47d45fd2f018e7df05", + "e44a8d25cf351f81aebaf5a0fcc464c22778813b998268bb422b58c7147f5bfd021302db33236344bedcfe83485171bb2c3707628938a9ef7c1918e0ef95bb23", + "2eda0e85c70122155190c52280b4587a9035c479514493848372d72d5d74707a6272c879a8c3e6cefe2566caa72c38b0c369b6b84a019bf8f97a84e9304a097e", + "75d6ae946bc0d3c56d23d0ab0bb85ee1eb4904970ea85225471e54d19e026f4092ea2f4705fc1da2bfafccfce268e5f864dabf246539821da19c3f544180a103", + "4877af9fa9a1446a0d16c0c92da3ea8fadb587c20da0ab644213d2d3ad57dc55043c468ca6ddcd598ff592b1e65342f64468c81dd8b0b5663a93ce7d6002b0f5", + "ce2519bb31b0e34468b7ce259021731b7e0d9f66deef3f3fb6c49c4b939b4a305261e4f0b5bc719c40b5991c75e2e52da72388afe5dd8d163852c4c71b261490", + "bb907d1e2543545b4b50f036ab9de37439213e8913572f0997f840213b1b02b1259191e7a103dff8390adaaf7a0af3bea29a656142e59d4d33310131849a0342", + "a6522e121344cd6adffc4fb2d92f4b50d514a5285b9e2607cbb7933f5d10f6facdd316d3b6bc189fbb0ee1fb673be661805df0f3a4318b8baed2a2724b443b23", + "c5ecc59553f49f4f930fc70f0ad4bd7cd11de2e3f85a0ecc2fdd4d67e94a39763d52eecec4f49f11c002aff6d5e209fc7399d21baa906b3ca31ebb8a9668cf5a", + "d9f81334f27c6940c82e94edae802af34b6b00b742fb98690e298981e1d0c51ee5f64aeb6becd440ee4872ad7f903eab50158f93eda1545f3da4ef6f209df689", + "221a1d3550d014917fb9f5bdba9c9431dc793a708ef49df3870600c86132c8651459dd89d90077e160111b03a17cd7e36e9995978575dd0106d8bd4a79a6b8b2", + "34a2449cf43cb8c943266eba68a960f98d90811191bb707a01e9f358e8ca26796443ffd4158fd26977b13be9cf1adfc3dd8a72745c593d3875921e511c00b559", + "8cd831960fe9726055f7b3693cc5639db7d01edda045ae41e877853111c4cf53d26d5b4e135118571721c247aca6607979a4df73849d1477365f7db0149fbc9f", + "eead1b02353c6a37038edbddf9c7ef5260e5af24b30953925688d05773ea6a1e74e54b4b35ebda784b0f2236c4de0e81f769f714e8e087c740e4b5b16e7146a0", + "6488d99b72121bdd56e6188e8a2e62d9bfeb8e440d1ce5826100841c39e2cf8e408dd6aebc8a20a590afce5a4f8ac9c58975cfc3d737abbf1c1579f69700bf2e", + "36a7af77c148a3df13c348a6fbacb214469929a95a7e76a161aaac2e6f3825d82b3078d9cf9fe32d86e9e549cefbc7dc8e04800f962eb5d6336391dfa219c8b5", + "92ec4a3342202ad2aeac13bb38c16158642c504a9adb0ff1c1daed5113629ce9ab7e242fe0c43391dea640cb319c64d03c9daa21a40b00a7c52ad587bb1d3fa9", + "21fca6b61a4eaf0096a6464672fc14eb4acd81bd92a2f08c4f3779cd6aef6dad010a1774a012c7ea2d352c962a0a6d2715a82f149a50317f164e565d721f73bf", + "c5dbe093ea88dd36fa754a494408ef1dee70f14896f366da224b5661eeb1813ee2a6dd4682a3ddbad9a82160e7ab31d8691c0c3ca24826665b2ceeaf371f54d4", + "64585f6f6e062ccc299319e5afd27c05fe9eb484fcef4396d17108f2ec5ab5f6a2acfed5de3a2df24765e8e12ed699a21aeaa8914d859ba8bf3ab913ce80d4a6", + "c0003ac9ded29aa359522f259bbe45c726592783278baaf0fd3a90ae485acba3f2bb330b7519459fa4a4e14663651c5213707503a30dd5ebe9da57f9b0740bc5", + "1f740096cafbfef310ffd347965fe6a0fd515d73e4b46729c3a4af6149616716559b2328fe094f0e713c9734453bed193e4506441d7abc706a47ebb90f3af98a", + "2e344bec0b0a97af32f0118357eb12559acc1490be7f41c3a52b1aa8ccb88fb667d04fc634cb5f8662db28c1956caecd579ba04fe912e210a63fbd00fc2f025a", + "fb3156f051998f894fc77f6013eebdf0f92e6f43acd006ac27fb0485e855698b8e1e0df3002b4e339fa7860f7373d2151f86dfe33ef8af72c0134271bb52925b", + "e30bcc7df8c8a22fa667f9fe9dccd9314a658322b72f8aff257526f027d08bda5ec6af6f0cfabfcc83d621e9501dfb9afb881e8ef55ab0def7abe0f0f84b4418", + "1f7001a168ec684fb29f2da30531701a1fc1e0df4ad13fdcd1728372e9bc7f3e3841b65fe449a0096e98e24638fba0b68dca23f62863cf5bfaccc594f190ca4f", + "f97ed8b77eaa25fac230f36bd503b186c8322c4c6468be64bbc98e197014dcf7223b3b0102510ddce8dc8c004b68808ba0d547a92c99c1249726f2639ac3b531", + "2f84cfc1ea8e271e47e66bdea3cac8015b5b881c3e6cc074ab311bb436ac6cf59ddecb75bcd6989e9c97d89bde523a8c53c837494a77e7b73481b2e89dbd7fd6", + "1e01ca9fe25fdbd7ed53d203ab4479f2ceb85bdee454739b935f1365660f5cb7ef5d31f3ff3d795a7352ed7e5988be9331c70136c8db4d498d5fd5dffa8227ba", + "5ca73067cd59003e028076a1a3a89f9169dbbb8970f9ed854ebb6b0b2f4e32b829285f16b18ee6d9534c0070a178835133eeae354e5003356331b1021331d9e4", + "6b8237f804f0d485b1fe609107d199ef4524c2cd1f89110f8f37cc93ab8aa683bc61356a1ab05186f8a6e2d759369dacfc5c228940f68f5e8667051c78f36347", + "12ba146fc5b1d298680235741220e3d331a178b0600b5366739454636b7fb464ec3324e16c035bda45b32dd16d436b72c31430c34841cdfc727ee2c1a367ce41", + "ac0ecc9aed16bcddba4f72d99676376362d1dcf18cfec3e0354af755dbcf4429ffb24f53b55572f6d5708d4f8effae29c65b93283fbc8d5a5dcaff04f6520d2c", + "8165c64a8555cafa331750b3a783de1ff04ff2e7b8bf23a47fa1f62844eb7f320ae04170078fbf6fbb44bf69de6ec4d678c57c2529e15c87b64f54f755778501", + "837f3adb89ee57d6e9a8ac9a6ca8645003e3cc5b2039004c37d0f5e9631c2e0278d628afca0086574cbcf8ce3d910b81e6d9ab1c81216df4a5b8a75f4492fbca", + "09e7a07bfe39d992d8a6db8f1f0514f45cd584aca2f7ae841f9154051afa6536d3ac356a4c6e3e921cc1c1a75bb52bf069e95c6ebedba91b3928fb6aa26d586c", + "0060adc3109f19c05dcb402faff91ac588a1324a147a514920b0a1aefe66591b4c93cbb4a97674db22e7d0355897f61888ac10a7387a4e5299712125aaf03eb5", + "433be3d286dcd6744c784b755ca49d5db64cd947edf90d339c8b36a37881bdc2394520daa2bc401e8b5b780c151830770ef9722c72d409165115d72fc2d643c3", + "5d339ae6f3a9afc05fe9e7f0b02f51f51d954f41a3c1eeb17cd3a1aaffa176b1d4338108130cb215f4e36e2d599a7fdc769cfb79ab2fc4054b8389a7bf2be8ae", + "6ff23414ce4781e9354094c01cc6258694ac918dfba4d5d3a262157cec0b57124632bc54e2023baecea4d697a18739fc8a678461334e77367a81108540879d2a", + "ce24486770d443b423274dd30af746ea4080065393d13df0535709e260cf14b033ccd190a9fa5f81705178eb656031a6f1465a5a993be62be8d43931950bd5db", + "5fd63fd02e17844651cebf211a6c56c4294b69186454651a17e1f41b3ffe78b8ed321e4c2776b6c64bd54f190e1ca9c5a80664247364a8bbf20f927d88800f71", + "47cc2920e3f2431f35f9019a410ea8db3a0b02168f3dd862d23013616dcde2363b96ef2a86b6c9dfffc4caff40846529ebb5452498bc62787f2c0b46f51a8d7e", + "78890c54ee8e6290e10e358e778bd34e5291b53fa1f611234169666700fc8fc689b4fdc0fc04fe55e6e305603e1e11f972b7d67bdcb61f5c7880b584b8202a38", + "1416459ef20a92bd002301ef6bceea55cfd85d6e75f9666f68b4dba6c14514b302f4b53d91d74e4613c430298b79d140957ff7c9a462d81d1196aef6b7078e15", + "3341b08be56fd16cc7f9c4e69a08ce959b8aec776076a7937460b0f9ba546841e6ee75bc0c690a73f1b0b3c0e94fda759b5b0c378d526f93216dc51d02713cfb", + "8839de1ec93b8b1250011dc300b55d886856132640c794cb016512cf69e06a02bcf7aeb867473d9425bb73652a71819ead42f13d9150a74262eee721b2bdf4c4", + "c68268afc50aa489b8008d37eab51d4896182869723303ffd7dc77cf5559452fcfbaa6d0b4aa21897515b33d52a9b77c5a09427da7dbd009205e7fb7c7d1eb99", + "c835c0d50e4f8cb6d69627d7d31ab360d4f87fced9b340f5bd8eb995e7326f8900b17561ef30087fb1d69f9b4ed60e0ad6a6475d2fbe3f2650460aa90ad4a8f6", + "d9f73f954a14a7f677e0a0e76475a8cb702b35512a750db55a8e6cb3d8e05c0cf8033c3a006ed2519f73ff9d59ce9e19eb631eec43c75d7d2cff353d804e3f03", + "8d0b18a616a31af5f8bd3eb8715ab0019233586e79668439d36fcca7c01b76ebf4f1b729e34fc0c078c893c76908322cb6921c272c624a3ba735463e099dc8ec", + "8e150575425c26620c42672e1f32864c0b6fac1f23cb8062b4e2977390f5f971ee7079aba920cba14adb4465ade9cc556900c8524e8df1c80327c92e9caf7493", + "f7891bd7843905842e8b5073196472d7a0c70fbc3dd57d5950edbc041089dbb92dce299551e09ca5a91ab9e201bd3d709c7a1b4911b52e141d3ad212810c8456", + "7cc65b5a4e5151aebd7a0442d22002f9e0bbb2aab0775c14c9d5062e7b922e6ee76a8ba471af81ab0405520592cacabfd20dcaddbd31c1da34c98df2618bc610", + "b2a99a0b383a887c0d3641056681068354f0ac2070c71abac6acf2380117880e5fce79e5eb0f4249304eef46179d6a81e399aac91fc92c012255637d3948e50a", + "9c37edb73267de9a75fab17d4f2c475cecdc56ced897cb49b89736d508ff559fa07922cfd9fded4a40af013270cad4f685cfa9498aba984dfad70867a2707c44", + "a490cea47a982814043183dc421bb375f1047630d12d0373a40a665b07ce8cd14ca6395034903ea7e3d6442f551af0705d749e4b0cd5d59a25e591f7c216bbfe", + "f0ef05f01015d1bf7492b557f4112ff441d2e0da176e03db4e0c9f4db4e23eb85a202708bad81d1671e8c0e2094851c9e4513b95d6f7901504227b8807c7de1e", + "84749515e7aa1d096117c35a02fe35e2f0487cc1ce44c9e89e2b28c228c436908f312011a04d5363a6370ff98180f1c14ed62ac61218ee474cf91314af4ff412", + "e8eeddef7104f8ee0a93c4be5028db073b7ac44b73787b3adcafdb8aade084c19550ebb1d968e2b26b9f99ba48d5686e1d7658725f6934a845cb5ee475b8b7f0", + "bfaa03df75ac02f44035efd9d1a232c0092031398b8827eb578065330a93d0d132a93da651529021d805e2ce531c59b18e65f51c735bbfcd5272f4eadf7dd57d", + "fec25f912b6aad68df909645ee05610069f7900aeeaf1934a817ee079c1deaf54a6336353e188d982fe4463c6f5abd3f31229b0a10475a8e599179d857be9898", + "5b20114ec07ab6e04b046ba7fc90d5ecf286fde53a2145d7dad8be7b389d2d0d6618bcd131888a2b7e6ac5a264aca3b5d74f0f565cca001c40717165e6d64402", + "4600414e8fde9639c6f6b27c9c36e285c2a4c847bf2bdd43b1182c41992bbcc9501e728670d3424642af31c874985d9896559e22869588f42f016754298d32af", + "8dcb4d2724eae4fda7d9927ecba0982f884e0b3905385aa33f1743878af56768bd8cc3f9873ede1c543ca97676f714fd35bb39d5ab492c49c0f4829f5609f739", + "2bc4c6da6c241f5c94383ce418e5a21b2def264878afae1a7d7d10266684919a50289bdeba1e0ab8ff94085cdc101ed4e36308442732a8defbf346b7963bfa1e", + "25ec284308776f6b7b4215ce8a4d52301f09d3faa6f7be6044321dbaf029397c5e79bbeb4cfca35128fa49975eec51026bb51893a9e4956d5b38e39012805200", + "2a4930b4e4b2ec21d9232b8f42c69405a37de5dd3a51f421dab7c77163cacdc8915f9f4a27313b5c9f7a2d0efbb4b4b7b48c9dd7439a91dd2cef61bb5b1f491e", + "251290cf85a752f4854e36433ccb1d84c4e9fc98988f2c19649137e8f5d641a58bf76ee11f27b03cee106f96c6db2f786907f4b0aa347fdcce6ceabb7357ede4", + "87c4d32f541470dcbf87f80e511f0437a35d29a59b7fcfb91832d1516148459590f5ef3efe590d7a59cb2a2411fed8d866d7218cd470f74f2af909b9e67cbf02", + "0f66d60ff5bc25844ca7b515cae9747a053d5a3b903ad25d189f063c5aa1fa61549bd8a930c0caa3d93575f93e77c857e7db1436c30974e224505f2ae423ab98", + "75726516b12405309b0e5ef2f6ad13a96fe876b8b2fe9fde547d05901cc18b2a971c6621e23c3a865f8cb2065223a94e4f3caa79ac0f609cd28a078e9f6410c3", + "0a2064235c3b7ddc4621ff7a2bb31c6a78627ea020522ccd33f8734dff0e74ff3ed0f2d96b813c3649466cd31d73d8735a3cf2244cd2949e12e567afc4bf27fc", + "16188221d4f9a67e0042330dedb552fe1e1b087d49b4a13dc798519406383c7d8bdec4b5042bb402409d2a5615cc5ec1973f94da6d131b701c8d935266dd984f", + "450ca6a4374afd3657d4e067d293ea7d9ddb60063787e0894d70e8c44ca2946a653606a1dd6c2845e698c5199c47f4a05d146ce59fbc415430b4bf2c909211ea", + "cc4f22049e9b963545313754144adc7979b8ece6926d2638496b5bc56a6924058fd6b48fc8c8b8e6624230dbdf806c666668a23e2ad3a5094bf8dc1fd3a470fb", + "381a45c240a17d44731d0b3e5e3361ca01737b245757de62e9eea1602c74aa7cfe7d5184bc3d006dbd6a6cb4fa8a49735cae6af93fd2a1a35f148964c9db7dc9", + "ecdd58c7b8debbe3f070c06404b474da0859776d444696d18ade78866a65cf45fae2687c8b0dd735ff493d8c460294e0a4f64d1c4137db64de4b76b60190ee8a", + "8d3fec9ec276a93e7f5686446c79614007de85640a3526321672d7b022a6d92a03657a721b63ccc1637e5ef6889bec13b93d0d257d04346157ad6c07db9f74aa", + "ab8f4c724af08231e53a798c888ce65e5745b287aab5ea710ff5b709973e26b5404830d968f022350a3f4765efb4e5ad19f9efac54498036ac519296ee09d998", + "3cf0aacf006b3d5ef6f6da2cfa7a8a1a80c7b5d137d7f7a213b3e6ad0cc448280eba78d9a61cbd00ffa571dc8e7d0790780312cd5a4f91b505e93a09a12dbc5a", + "986d0a2c4fea364f1c172ea1a4dfec1413a8d6e8cc1b09ce4d70ef8235f8efb0428d6a6a71dae4bd8cd2811e5c2d74209b2489b83033ab7e6086e7a13ddbc02b", + "24ace1e2a16e2ac245ff9ee4253dd8154af8eee181ff528d8e2d6abcf5bb29f4e637bb2c1d17f0872acb356f3c1f5ffce13b0e23fe5e2a0530319107eda6483d", + "83b66c2fba79d4239bd40d6b3fe30f2e26e0fa35f794c8c7051338af3ae1325ea7ea8b34286b18240cb84d41aaf13f078e68fc053c73cb1e983feddcacbf0d56", + "b8711c2837f0d741198a14799a3cb943b9c2c1d1a4229bdfaf3bf9ed752e95d3d7ec6faa22b6fde21ae9762deb9098753603c7e8e0270abe50dc9249df22ad21", + "cdbf523876e09ddf3109adaeea510b04afd4f8344161baaf4e06b41902e6472679ad024629806f8fba96e3e4f6e0ee3a9527ab35a244daee6467af88afa6fe1f", + "690589810fdeb08745661060773bba352b62fde0fdc4b1fd9b7ec3b1093fcd375eec8545cbc99fd1d7767570e4fc050cf33430ae57b9384a49f7b9dd2b3cae65", + "bc8614dbc81bd6247126239eb08f86fd56fdc956cf9cde7a3b1396a09576cad3e856670ed3a8b3c17667c6a0fd20027dbd320b839461e0252e741deb26b43698", + "0af56bf5ee6c2a523da8a021b365d83c7f7179ab5c1dfcac85432305cb09576bd86c9e1ddcae4b528e1bff8d0f46a1854b3586311ed52bc1046ea2c818442a54", + "ded66ee7cdb2acee3786505f7235396991fadd76116cf64faf28a1287898acb7b3aa45bac217a292a2e6cd2a4f7c2318a892ebd5ee5d460f009e5fedf385efdf", + "a30ab661d67bb9915f97bee775355c566e97b6c1b439b4fa924df4f07e22dcb528a8c2332a724abbaa167062f128da84c93e84bd576ada8ec0bfb34c55c4cdb2", + "9abcb635f87d3cd3b67635a881c504215ff22d2eac9b482c521c80584361e66523de99c3fce00207f85a88dd319621f8f145d2a0583e7a5faece46fdbcb0d0d4", + "c013d08c8d3b0173bbe56e981e2d8b404e8c561748b3b604b7b6f8dc6d0f51afaeadd81c4453025c24d3f948dee0f789089f86dcaa650e979aeac32c711cdfc6", + "aba40caa04b3c83eff7658b5aa4dce84328a37d907eaa02cc675ba3e6d1cdf22ba7e4794aa345508675afaaecc0bf6d7a7dc1117677086df7fa4e937ef3bb2d7", + "b76fe28cd3c06ba6d5c62781c73d568a18e0bc5fbae816cfc3268f4c3237cb89519257006300087e808a0bf578e679ec77e71919f5cc08fb596ab711fe9eebbe", + "e1da9cc78ad6e1b2266e2d63e884361907036079f8e4f8cb2b065e79ce627e67234965db2ee47351aa8cd8cb8d7c64fead569ba406f8c55d983657e7aff4857d", + "a508a2f1f2f28ece64cfa2f9d39d6219ed503141a1be42b2bb71ad34a6f4508dd409050429557955161661d9acbc3640d36a8a84508f0de86ec7a907212c3d03", + "9f6c1c83eb600879550e84b47dd4fd7f5e47efee1c58468618972e57aa3a60ecd164a34d5ebe2804292c4d074c036ff691a55e85273f54e74a41e8620f4f14d8", + "c2244c28efe45d0808e20c5efa2b3c78f2adc3bf064973a2a70ff102e56697e66e13d5c21c7c08c9b2a913fd91e257e6d610ae0b76db5998724c2f2b0917fed0", + "fed7552763c3b35a07003dde26aaaa3479139f09682b2f64f40216dd23052780fd13a0c4b29f8685fd8e4aee204def15e8e4a5c30ce684ecf2dfaffe839c18c2", + "e4fb76f997291aadd6db4affdc288f6cf45ae42f9976297fdf166569ac021b7be7d66588c36fa64b122ffd4bfb1b089d57937d5e414a7a38006a3cd0576112b6", + "578078efa39b99e68f367ec03d410abbf98b7dd02f89475a0be9a424b32df1260617aedda3a17a0626b48c440eddbf004fcd152f2a7aaf682c55cef09523d64b", + "86881ce092e9d0a3f73af2c917780659d1fa3cb8d94118c0fa313af777913c106b791311e19d985268521698b7c5c2e0d3dda5b7a2b62d1cae405154b4e0959b", + "1adea73617c729dbcc0e9a6225ff52f2565d01cad22d52c98458475508a0ba2309c8ef8a18e63eeea16f3a834c356fcba605cd55bf3668e977c2c19431ee1f8e", + "8f34c5f6abaa5af5e4405cd37cd1bde6e11b38635c9bdb9b8ea7f3632c6df5b4d6d7db77908d54440c9641d4ead4812a6a8927d3394a819e8999754ad40fdb9a", + "a292a425e05566e166f83e1196c5881ebf6a35dcbd0d3ffe25003085cfb6a0e0469c68f17edcb2137514dc339edaba666cdd134f5505036f4ff1a88b8dd88a88", + "814a596249ac113cf394a5e348df55293bce8401bf9f0ec34114bb55ea1a047283af655d45ac45717c60f66398a36cd1f7f354ae6fd327d6f50f1c978c704433", + "064811fc74ca13d2a6dac05c9617a369d77071f4ab5c0d3d563bdf33fb9f1d8e05c6c261d32ffb7bb0e2037d0b934fc16183346c644b8926c2ae0719d2ec06a1", + "3b5738ce167d128d016bc9a7787a1429b41c81e784894aa4215bc63c6a66762be6b7e0c61867694ad2365b9d644cf7d82b459a8521b8493b9cdd3687019a7729", + "f346c1ba93c766786e5c450d972d7b7d1e18a32465660a41d1beccf803cc1c965568d5bd218ac33f73fcb76c776bed7a28d9b5a00696ae3de086c1cee0c9e554", + "9953dad045f05c9d44d610c46230bbefd9d529f49383834c2e134e9c31ff4f98c3d9930cd26ab3a69cc257dafeb2cc63a7a79b332fa8d6710b8786d9fcd964a2", + "aa1e4b9720935a8c05c5910b4b75f030a4f76ea21ddac077eecf618d7c8053c4b01143d42149b1bb48079eb6a1898bb175f3dd0fc1823e512f30076ffe469bb4", + "1543a66fb000efec82544b04bb8fbbc50e46e87a1103fa535f35393138612c69783b53cc66e9e18915e291605443b0fabfaf7c97cd77071ea81921938a9f88a5", + "47341a6b621fe268ac3be13c717784dc79e4c45531c7fd32f17b31c6efd6fed491b4f910446e108ff159b8d28ae5de4c8766c17f0b81946811a308cd4ab78c73", + "427af58871bec7fadc342e40805abb7b3e47ab2a4c7fe529ffa20207d7b7f3c1b53e050ff64498f0ad028fe1f9f4d075eb88f8a59fa4bc25922a1cd21547b09e", + "5146d9b44b0bf31099b11835cc8bb4bc3b6370de7932cd77c6d4468b0a847de13758de22f3f223522e7fe9d722ae044b13012ec5dd7c34a9fa0d3c61cb9398b9", + "78880098f42afe8df4478c74d58018d8150d39827383b786c06bf9836fd7502d3323f9fd9a079ca35cfaf57862476e445d2601e4bcf6d3ab486f3e299dd0720c", + "008a31f0b0fff06f8a1ac9c2417226d6d8867745cd4d73f945872222757590fd166dd4a86705e747a21fa5b23c767aff1dce32653fb8db199ae2d5ad4b235b05", + "1f6e790daacc00e76b684bec670a6b35573b4aafcbd3c4e43017b2ae461405174de04589051b8e6e7bd1506a630dcc27409384bbb8226b57324308444e2e7226", + "c173d6aae997a0589e9830652fc0437965129ffb1b5b757ea1d602581e4b0b41dd13243a47d549d9ce84166f237843b4865e427de180670227f473cb4f39f37d", + "67ec79c7fba50fb51e67e6069e3edfc4ffa6f758420642d303a1e157263126866125f17a048a8d2cc1d5447e15ae83d7c7cacc75553c20a5f4fe7f4f939f016d", + "17cf0c57886342458d789573ec7aa10c2615b5da4d642e34134687c324d4119b3aae2a6cff0c5d54f3fea51f70af25828e5f9fbbf85e32c5cd598eb340a3e3a9", + "f42aa4043d0774e05de406181f2936b7ba91fb1a68e209174e1d3974abb185c79932c5ea4bca3798b68c303b77aa682df57fed6635201bf01d345782b1fa58c6", + "ff410b511135dbc0b8644c28efa3ec632326feb98e50edc6390c441610d7c514acdf0a61a0bf01aa9dc1f55d92e085248eba1c24ee23978b4986af41c13a6176", + "847992e94af5cd116a194cdca4e12c09136d3fc9bfdc53fcbf79d87ea1e787460a3d246f4ea55d098798739cfad34affa3448f18326aba973db79dce6a88e704", + "758d23e0354e59a6c6f19426235e688cc81656023fd968f9814d1d5e4f6b37bdbb5402f0bcbbee67b05867d9ddd74b3839d3ca63c096af162237554ff6d8e4b9", + "3d191690f3fa49fbf74897f9e6fcdbd3ced0cb94aed91f33c347a54231095e6dec8681ba461423d18bd030e81392e459253d8f6c6dabb158ae54823b87f57b61", + "ced1be5fc97bd76e967173cd3da49227072d46811a6a22b53053a8752c300a571eb17c6efd6770079300ebcf8f856a487d13daa609503d05ea4fe072c2f69add", + "8efc6b1ee3c44c2d371c9f506e5102e14595768858183f27fd8d660cd734df4c991ad460197a66628f58fc1f0a92baba1e3ba680c97c95e78d9bc0b3cbf260f7", + "d655f85d2e940fce4f116d048ebda23b2cbd2ef3c7e608291d09f652d0917fa2398ac59b5bc702e964203baba793d984cba585d10b4c7e9cb4bb3a7effbaa24e", + "cc7b0a117637daf37a6b54c8d0c95f8a027ac40a66785d95ac8742b1f98658bd36573288c07d98d3a2dc8498befb3d4d928460215fb95e99a127ecf3339b7466", + "7c0d3a758d3f0799325449330d95b6fc715332363825c8373ef53172524ddc58465de0a7cf35a0bdaab55b655ca9c93dfec9b1329c2dc8afa2c3f0e9c80a4331", + "064718b79ca2bce9820c794c4b3b1b3d458351b50f4359cae9eec04144325ce7186e3137ac69c5369b3478f95c164a08901aa49a0f9cbbb8ff70afee7fad979a", + "c135b9f54490667e4b667cfc1e278f26682dfd914a6fe160443b435c5fda91cb93f49b5dd96aa6d2ce724665353d5e2534e1c7b2d15135de36904fd296b174e0", + "7690b707e4b8d06accebd204a8f7cc9635a64a6e018929b0c69fa829650a3a7d86cb630f9b248c9e6e9b550f7fe028c556fb8a279e722227c9e8edf6d47b2229", + "e467319f1928b947296164fb5a1077d0021c7481f87ef134481f0751da69e45b96cb22c390d89ccd7931dac7ab941180de69be7d1184c21bbb18c7a9115b9468", + "b31197994213b4b985693f59327a8e45958222c3b469fabf151ad2818948c676ec5613393dfa576af2d57b03c2ed52e6ac8484daf05a8dd9987d14efecb6d526", + "b69ed33dbb14b11901a355e4626061f7ba12c463ccab079831cdf3e0389e498f9c59122b335134d74693a86c0af645bbe9b39a8b692efc5a35087c9c61d7c57b", + "29d69a3cd278927cde9facb1892d402dfe5a3396b74797eebb551b7ed0f446fb573d5922e7ddf19e6d05ecb1d653fdec85178a6233b52b5058f1d0526a9297fe", + "bb6e42f68aaa6f93ab604893681b32446a615a7f9e29506b2ce5b435bb8795a99b68881e8700cf64ad72cfac474fc7903dcf5b36309e7cd74a22abc678519c46", + "2b0bc225cd6d03d5b91eaf5ed5b0035679550cc4fab078d3fd13f58adf2b604f6317a58592e4bc70d68ffb8cb4fe0f8d8a217c4076e7faa0343a287c301a993c", + "d551f4f92b0d7b916ee6a0e122d7ba014336b3fe266924d65506452319d1be87b240c27289fe55998e810dde4608cd7562f65c8ed85aae881e51f54083e26497", + "ed8d5440bc1d3af1cb3c725b4b0fb063c47328447569a7d131eab6236c7f18e00f055bcf027b6fe18855b294105cbefbe56d08c951a9e7e4295512a1cfa910c6", + "a37db48434091b355d77d5c6eec1532226a5a7aba78b25d74b681a43f5b3b2cb2981d6c704b3686aa7a35fdd339d2bcd6eb7cabb1b63ae568a44707d9d2d039f", + "6c8ae60e545b4fb8422ce37b1cded480e743d80ed6e305ab94e63d3eaf5eaa10b992fb3624bae2070bb0e517266b7bb38537536c7a8cc90e1ffe01ae03896882", + "bbd8ccafd8872fa97408323c64a19c2da1218acb011f6a2c69540453244a5337d0e011088b0b527c64593889839a7c6e159a6738dd9f9c6aa06ea3586cf4c33c", + "7500abe8787b24b3ad2b20cae2d9d4f4ac7cdf6d2ed3096497055fed9bd4b9aac5ecf99d5d1bb17ec332deea64ba3a8fc3ca152cec48cf1ebf7cdb39f818c519", + "c05ba595ff427153509802708422051d814ea709dad0ae8afb322e31462df20fa2d6aa12eaa0e652014f8e7d6b58a416bdc53beab8cc49f07bac710589b7d85d", + "a2af4a4b4263aaefbccb039f0761fcc8824b3f6930e2ca909b54808a2a93df20af50cb0e16628a0b8f5b4ef2a9d7498ac014e5370978ee8ba100c58b76eae765", + "eeb85a28e3b7d2723fc091f0da9403b015db6a3f7dfc55b4986156632f052ee187bb054cef94ecb62aa538b7fd14480aae79c9c5ca99f3eaaeb0af7898a75814", + "951d40e837a2df63637c12d877a2fa6210ed8ebc8e326971f6828673c82913cb353cfe079376518950319263d7e3290aacb3998eb29adb5db4d62f92e433924a", + "60a218b76fcbe2865f93c01e02509f11426d7305e7061cbbbba4fdad90468b438adcc23d4d5aa48b880bab62a39a241b76467f7f3aeb47ad0f4dc543f9cadb46", + "d435a7457de0913ca61c4fcec659c33fa99f2cdcd4e3f64dcbb45334802ea7e45e7da7f36d38ea10be40a2175224d728721fa59f1faf618691f4b5d71739a3e9", + "cb26dd0b88476fd7764a201fd23c8c1b79559d723ea4c59859bf83bb619c7f5d1bb03512d86683dba5903e9f652dbbf4a9db77bc15fb7b83eb208a4e0e649294", + "6bbfce1113f87570af45e4dd17ad64057590dde17fe4565e73428c113c944d927f5d208b691f30d70dd89d7d9e5aa031824835fa0722ebff11ef08fe751c3d63", + "b835fd1597c5d327ae926a7edd50a50a8b1d0f0fdff5aad2d42a28a7be77726b09aab80536bff57d292a35fe0994889dffa21b004b869cc940c18b843db032d0", + "efc29a5a881437db5239c8dc21d5fc54a00dd9a12e3848c571b68ae4808c4113319107eff8988c33e95040006ca0c986a54dbd915882cea3058448fffa5c17c7", + "503259cfbcbe95057ec109750458cae40f207e2a50068ed534e43b8faf31cda7566046de57d2c679ff5c599ae9c0bb5f3d38b04301a0459b03df0f5618953a40", + "e0630afcbaba299b8da6463965f21a04dbc97c2d89ef78ffda9f94d3ac01c12f584c5f2cfc6539705426245e9c96d7c9901944c77777b9b471128ed9ffcc064e", + "6eebde85d900d789e3b0641488d82946aeda3fe9985090b242b1f3432a2cabada0e75b94598eff3481ce7b6879cb86730cc4e15df45d9ad89fa8e78c2e29e5b8", + "7f9b56e373f796e8ac467142fc5f4a8f41a7b2588f328be6456e0a2b24850d1fdeaa23a1eaf14ae3ef4d3fa9d2f9ad524e466d3d6acd6d41308db297c81adc3f", + "6a1c4bfc89666e44fba549b9318744b925d25207595fd1e1356dfe7c9cfd7e1d7eecbb768229931c87e3329fe7292f598720796154621f5f569235658037602b", + "92abdea03a5fd0db5497462fa9dee854d0d2f2b0e150f777f7ec41e6a998e0fde477fc9c4088524e7c948c4b9f9b55516c89ddb0d1f45528ab0512008f752301", + "fe1f2d6ed12e2e427799d9cb6e1c254d6983cfd37f21dbf70413d004bc3ae3207631f3aea13cebdb7829e58ebb343c40e4aab0f4cd2b2750ca7c02804e1b4bbd", + "4d71790e62563eaa999aa81ba4e9f695c6c39a8756988bbe4d35a160c2486036a8b81f9876d04fdb43607efd362affa9d055bd8a112607ff528d02d37f9b8f9a", + "0c41d84909cf9fbc9094d4d81c7bc53fd3837dcdd5c01c023b01bf3745cb90e19700d3988d802e7b998569fd9d5a5e9bb094abfeb3354cd76e5a4e6f5fe0b814", + "ab57206d892f16a45ef2aaa7d4e63b91a7db4957f1c90fbfe34e03bf3d67bedcd041eb634c43e58b79c9a2520e9f9c817d011b4784f0008f8e854b25487e82ac", + "a2b7ca274db7543d9a46075124773cce3479abc1efc8612e4d24b03e253602386f15ae5434bb6e3d29f7dab02d5c0889f680833a077109f789a9df4948c04875", + "f7e183b0ad55dc410702ccb4c3495c33b4d7363520f36daebf107fdef871e10df22ac3b4257694cea6f9d6c914a7cbea3dd82a24df471be87b55efa9da43d15c", + "d029830ff2219770574eb7f342538608d4db424b602dde02d89074425821af054f320d4cab2b53e918221d4882163bba46361bf55f48f1d7a2d7dde92458a9bd", + "5793ede9bd2dddc94e13501753d1749823de60355fb3c07734cb4f3c2de744ffd2395f4c6ad45aca0ba7b93823b30733ca1828604594749f6c8d41f95ee7361f", + "575aea41a351ee168b16e3675d080fcd264db20ab39fa578f3e9aed908b664c2056661184248bcb363896491fe43e8606ad47d756287ed8115ac902c8b662791", + "514f845b79c0d52f53870d05e302b4c6a246e622565a41176a1ba07b404cf032b4b08154029ecbb4e4ad0dc320f6ca46da1db687806508aa8614e92a207c2373", + "59cea1b59a5773d18b28dca04c92e740c88ca81f35a77f374cb254928731000fb13bfa187c01aa95c4eb40b312f3e38e0599e2ee61ab2722deb28ba6338ce001", + "4ae98e319e5b22adb09ad20eb55ac8a90d74de466bccdecf7849ba459a88ad53e14636be302f17e49f1cea56a196ac1bd901ba014e52a181209dc7660d398e4b", + "52858e1285b39a8e6751c3a090ccdf9d983aa8d0bc9d18ee64b07b4d443d39650b44c76fa7a5b0be9eb868b87b53dcbb29c46357be10c07584044062e67c7ce8", + "a4aa862d267feff52f61bd98d16d75f160f4b256c4c6c59df9df325fc278e1906fa8983bfd2e3c390fe20b8a70bf9ba7d5dc562adb9765311658aed17c5d3b12", + "b02f0f1d4f957e0cbfe7b6790b94af9962e096fc8d27612b0b37a62b18b8af8f5c5fd346a87ac6bfd13adef5732cf55fc81c91af90027357c43b242f2c84f4a5", + "74ea4c91e6b51f5519697f59fc9d18a73f83589d6f7766c1683e751898f363cd5e9bc9a409353011bd6ad913ee097f882c45dd653dfa722916ff7f23169d252c", + "c564639706534cad463ed481496a0dd8ea8feee93de5f85290fefd6b4dc94fb2fcf6c3e6595068ca2f30789685b477dc75f8467cdd56754e64a488da41e6098f", + "5fe9d102bb4fdea52008b91bf30d5c8c64fbe2542ee08a073e51d7ad0b0de7608b64cb58ec391061d782a607a30e3a0181dfa9bfee63645c2033ed0b1e1f6ae6", + "8fb53cec21bc9d049f9c54d30666da7a7c29288401f1da5d491f4bb0f677356bd1737a71a99d76f268b360604e51f86a5d6b04a50e2b3d5def3344b393a1164b", + "55b0b057301427c876d866214c34fade4a5954839c52ab150387269ada54fbd2d4a39a41b5f5ecb58778fc38be05fa1638f9042070b941e0c0d833bea16ca615", + "905ef4d7bd609d29d4f6377164e57f4570a6f0c00874f15dbb2c32930e1694290756c7223869e0a59319c4599afdb933ba150f4fd26bc72d5ac79460b5ddd84b", + "1b14c3de1a18b937fe0e0ca1fec1759bc315edcd7eca94cdd978c08693cad1a4edaf1310000ca5ae05d6414e24e29b9dd09d13fe643d5c40bbabd4021eeca03d", + "fcb278f8064f9d1d0614ce7b35e8f6116d0c173005e47e14a352fef743071908ebd703b61a786ed70e0d9db3066c786ed523d213485874c42bca00f87bbe32ff", + "a32bd1e9a450d94422c6290d33d73993fa32907c1f3b6915077f56e639fb975a04ed67aba2f477ed41812fe0ff477741d72007e7bf0d1492cddbac147494c7bd", + "21ada79d638b48657e03fc9db9ce375fa7a409ea1ec3239b28ec83baaf9913d785ac0ed7daf1cb06115edae304137e59655ed6bf0ecf9d987137d7423fe26ebd", + "a9c2120ee30429f997bccaf074d2b35214c81c8e434cf1b02d3d21f7efcb622daa62917a90f36f0ec2ff7108ce9a90d9dfe64011786bf6ed0c9159702d5cec17", + "99487ee9ddbb60ace606f9bf40402b2ce6bc715b4967d3ef5079b75456a53ddc7bf8df37ba33579686d11009e26e6111112adc4635e9b6751acde8130461ed11", + "6dbf121328df0098059cd0daea4c6b3b83869e395364d4e1706e4cb14f592053ec2d8817629fb4a5863eaf4099d40534f8e99c011feb3677f2c73bb39f787bc2", + "f33c96f400785f58da3401f96e99a6957ae75ae2c5707fa41a1b892a177cef835b73b9864aec9904f0e0a9d1fff3b733b04cd0ea8ab9fd357d7bd72a83959c00", + "997efa360f804e2dab60f31e3bf6c8f3ec8dc377496c87c1d298033cc6db2f1d696f33d1c94e853c411211aeeaaee6c01fbc728cfb4c326b4806c674177eb97a", + "a0d24fc86d7f7ecc7104aa01cfe009fc7af547d6e48b83fb97d9c2adc596149ef3bde6dfb9ae202f364cd91d529422729eca9ee1103f3c2a17ecd56c8efc51d7", + "f926ae6e2696c3c94b4dfd990486e6097ec7fde7d60fe18c455903f442ae7a26d5ecdebd5e048b8776a26f75b624279c09f2e21beaea6bb0dc508b0bfb459b57", + "cd21a8bc35b8e8ba0255bb4ffc53263003566b203710401c4accaca06f85b56620e8b08787278ce8dfdd1446e47344a94926598d2d3bc06787aa2f1b72bc804c", + "217b538cf9ba96e9a462bf0af1f54f8cb2a62b3d46f1813d12a8fbc70560535ae246010d9900cbafdd1744f9e883ac73e750742dbae65d4c24d247e0a8206a2d", + "8ec4dc8e214987ec95e962e6fe343cb561608e0f6295e15ef7c06b84b7613fa88d43f49425794025bea131c3b9c328b14887a0c7beb353c945b05dfb07a973c3", + "c6110d41ff9cbbf930a102fc84f47880720c6b5b7a348377d0fd1a9c2b8006b73c9ba11d8445cbb414f31e0b20bd4d6b54fe505d5ed0128f7d00f3c3b5be0b54", + "cfe11ecf3e147f39f97a1bdd4ae1d43e90f40a0a4c00809a752009fc40f6748a5f65c925ba9b2f78be1dc044b7d27beafc5154f8f97089068e2aabd73316cf8e", + "3ae2aabd659c5844c923fd171ca36431a7e606eca52a21b96a0f5e8cd1fa24141bedaadf58608781dfabc103fe929cd2eade8d6fbd6185d4f4b855dca610d7a0", + "a547ec43bbc13aa17561066cadaa2b8c0ea6aa2217c0540814b37d6527517f92bf5b9df2b6d56bfc6daed0d73ae182f9637971443a93eb7189c21de3e393d0ac", + "565bce22d56d739b6d70b839c93b7413d8c7c966b53ee2f4354e820c03d0004733f8227b6fd24dc72cd869059476da6a0b5d9751987965720067335c65d92340", + "a4a70e2e41c7525728df1f4b35865dafdf23370cc74a86cc2789e4a1d80bffe5bb5d46ff96b5b179d56941cf0544e7fe5fdfb7371987d1a2244c49f7e8b97751", + "84e2b26493e80f09036d0466d3f0fbacea031f912b37ed9cb824f6db5f6c69a1f4261786e36a5a6dfbaf1b8cf6855b297b07e2196ecf7dcaa8cf641f2eb90496", + "f5eee01aee124e63a7fa2bbc7ea27b99827ce0f27908c2e37e5bf5232d32cc8daa9b92641ef83c2947ac52c4368a709857513286bbbf85b099346bc428551403", + "95fe9aeb3920f10183c3814af8daa63751c1bd55874cf19bf6666e6b79d8aa6bc711903cd5cf94db85a0e24330183c2b24c4fa4d7de512a49aa80bd0adf2dc47", + "9eb196d044bdda0ecd35b555bce61ef8727b4cf4d5d3de222fec3d20d7c21c22225774526518d52ca699bad1f50a2fc77fb0717747f31943704f0ad344a8f26d", + "d5f95d3e80e5a29196d378ff39b2700e0b31066afd679e070178217dac2642e397b4cd80da4ea1a180488ccb65cbf27429ac8851dbdb668ed785a43afa44f280", + "47938b4da7b058fcf903d9deda896aa63fb7cb911ffe3eafecf052bcca0ebd7d0dca671903de2f7897dce40c37e84f49b3190bcb415e2ab733cf847c8aa30ca6", + "947432d5c98ceb5855970a2968befa71794e4a30ee333e8a2dcd2bda43d1903e1992bbf0cde472433cfb42b02386abca320d80259af010d3401195c3f986af4e", + "3edf30ebd3e0005180506bcc60edd61df8b586920cd1a36499697f5426e3d44163162cecf57e20a3f7c08653f8262c49ccc56882208f80954efce4fbfea3118e", + "976c1543c4f8097147692345feb1120c082eff1aeb6b02d0b82dd81a005e726018fb6142f90d83b6a73655ac5764cd4f39e709ce9bcb0aeffb958a84592b0818", + "a432af9e209dbb4999ddfc6362135adfc0722d7b808a024ad5e68d44cb8cc81307290936e73dc3b9d2bd5f5b19c27ddb20509b572de18b7a7b80cd5e17a83318", + "38506c1905a8a3e9900da16cc9a17e7e509075270305b02a439c2000dc0754a32bb8c4bf0c3e9f0f01ba039584af6d5213ff932ffb9256d49a551272a66c594d", + "08b60660325552d17dc823ed9d057652ec5a08b3ab6486442b796bfb8175cf06590e03c502f37ee3774a158794c43fdf1b4bacfced492d8ba39e5b45f0eefed4", + "f5ec9be35b52927597b42ff9db455b433d6b142122aa9e86293699ceeb6ba57a04bccc1c73af4a013c6b0fbca9ef450eb2c15ab5d8448686b938d6c0e37b58a6", + "f61b1fdaeb39b91cb27c68e8f8adbec68a6729cc620147ee889b18744714a7e32589bc6c7104cdc7e06bc277ac7c34ae25045858b8d47b1b590f8ce297f70949", + "a3be94160de9d968417eeedc03f47c07be2f06d0af7f76b0793d69678469d3e8309c0172b3667f5f95e8c8510f70c5d86c25189c81e68c26deb9a7d186726dd4", + "3cafd0c784ff1f34afe4a3d434c2c31927f7c4b795a1801764d2a0fa39fa89d08a36fd884fd151227168bd936a7e39b4f269326bc6b3a52e6a5153280c1070ff", + "9b6e65abf528271dcb93186d7bead7d15873a0ee5288a0a95b0c2ac58935465c791e59e0f8288da352cdb2d8a772768ad8832a0746c785e0f7a968072c485019", + "008975f6bfb8aeff7d10318095fa06ea30a7f3fa0f801021a5d381c7725c2f4176d7f5c10b92098b8f0de64cb1146583067cbe164db61a91381badbec2d40e53", + "70c3574ff83b7c6fb9cbb36ff9a257e3208f13d7113c36b17f57f1d2427ab8bf1480fb2e03ca111c2a1491c090963ba4c29747529993672070eeb0c29f9f1083", + "02a5c90bbde16587faae340f6d7398c8d30986c1ba98236538ab79c62c85eedb365311357e6462ad623d04ea45a33c1831e7ff879c41c9274ee5767f346f8bb6", + "e15198ff527c6b4761bda50ff8b23d9a38c532bf7a0a2439494fe4f1bb04f88ad4058ae9b2c0bfb4a41e660a070214360edad73e8de6b2e58677fcdb6710194e", + "b3ac8550328c8487c2f2360d293bb2ce4c0ea4d104bdc474f5fd1d90a032f0c8a2590100081cca8ffe85e21c63deacad1e0a225e05df244c9663248a5b14940f", + "f6b983761ec05d7c3b2e63c1b41aa3ecca8f41bed343178dffe0f13051fcfe93abc072c90d9e2db20e4108303e7c5f5a96f7923cc665ed7f48fcca6612d0b2e6", + "a94c48ff9be2573d76423989eca5c5d43be7094595341e9ba0eca7846b4dee447ec49964cf7e66bdac2bec4de93072fa4fd33919644e48c70bbde84914480192", + "9b269ba0db265f8d4bd63cf951b9bed19f496accdd78a149972a4245bd15a579c6b2eb1a4c25e29b0e0554b63480fd04fd4a62ad504c0ba53237bc1e4d048e53", + "5b604ce9e277b44d35b92bfb51cb342d7b7257aa54527c6f3b4a70600a2f10c0e633ccfc47eb43b039d141e7fb28acf5290f03b9246182f085da208bb05b257e", + "392008d54d3a093f4b2dee265d655fa76809fe040933e5ef2513d3de8e849045fb31be4e7d74b9f3c89faa018ccbd2089e40db93098c17148f86546c7476a053", + "563658d7553ab83d0e25fc79810f36d699c584609810266c03e2b08e5a7d0946c779347e2e3fb6555ccec18bb0f6d3e93382c75aa94e2baace6b0009417b35e8", + "433e5d2670332094675623deec010413149a785b3e62cb76fe6ad7134fac40be80d96f1fd21f641fd8b24b9cf85636e0d4d9b323ab3c78f187ad78a47f4ac8d1", + "b121dc8b52c5588c1720299b58bcd0d99dae179904de1c4a67b91af72eb751e8e6ad66944890aeeed589003df160c23da7e8928dccd3b492745a5fd4cd2bce7d", + "e40a07978297bec715985fa7db581b7904bf971ba8fd0a6338539a3e7975ecfc87c2f89ed4da93d360fa9ae7e64c8dd8521e551d7c2c64e63c0fa84719a0f11d", + "c7ff949b60d75eb812a424304843cc9461b16d6f9711364b0959675fd7a16518284814873d67c9b5b75f603aa6541fe19779f7197d6fdb9e10f68ea754224d40", + "763ef9478da166944387d4152c2b60c062b64cd0f14d56014b744e83ab6e0fb42efad471dc4e3f4cbb368c624e5c0b865f6dcc38fcaa94dbe735333321fd15f3", + "614d24329d82654fd9a8d093796fa61a2310a41d70d8ab25c988f700e79632e038ecf5aa3e9c4b05e864fd7ca0785af39ae333f28de7f729efebe07930927e37", + "168d37183cb884c0e4f5b5958634339058871110254fb7bfdbc043276d19940d25c4e6281b7a2be7c50c785098c2b001c96b93e315d0a54af49e88788624a2c6", + "f0a1f05cd7a6599e96f4345b78b77273503043adfc911fab9f53aa62589dccf9b38580207d3814ada34d69bc23cc56b9cdb68f068ebecf08993fc5b49a7c6c97", + "7d780b511ae36924aa5b1562c43c0578f1676e4df8b21884cefd7ab876321ac1f4809d61381fba2ec447ba59f5a4db96b73651f8b732c5c0ac04a2d0b08d1ad5", + "3a002340802ea069ff7b33f5b78c2d754e17418f12db7008495f2604042e7c4c7935bb6ef19c81d357079a1db13f3c315bbbc844a0c83803daeae1aee4e7890c", + "a22f8d8a290c52d7f1010347279ff8b4b8140f3d8fa030e02f315b9a5ad7729349ebc1056b065368cddc5bb7abef0ba645db2dab8fa8033ca792f8bf7b2654fb", + "77f4376bc673f090b45b4049a471943f42aef5251b7726c8ac5a68930a74d90ec0fdfcda6ff08dc0808b97f60152155e47abb67e7dfa7face37de743bbbbfb2a", + "91aaabc935881db3e99975559176f2b2538d1d6eb10802529aa684597c2576f552a1305eba13f0da212d87c77622d559ebfe061c02735db9e81af98986ca005b", + "d0bf37a4eed8bafac4606147aedb816495ea6f1eb538495114cca8f4cc9fb84e5b7ba060da3cbcae4a41f0b0a5e41091b3e7a1937675c77faeaff2ee45ffce32", + "38dba9139ece5e6f2f943a7ad0a38e366fa154fc103851e114eb96f2cb67c22e1ebfdaca5b55ea84e9aa1593641db36bc31c2789c8891c7beaff4d3c2a55608b", + "2c594ac09c17e695bd6d981116f00dc7ed8d66463293b98f2788b94206f5244df25c948cae94561754bb2f1c30ad3b74d5bb4b4f0427dff8c46e0d88533838cd", + "689ec2b1292435bac7c5083f020f4d2d028bfc5edce2c79364cd77bb512e04d0c298f61ec56f8cfccc3d46ca85db68683775c8066d170280ccc9a22c572acc1e", + "54e3a7ae5d39ed0314a999177c32c7fe4fda34de35e034e0a52a62d900a638c64aa68e317a9880584e34b62d3a9a49185cbaef75d8eaed748497d6dad28f3986", + "42edfe5595c0c5df6a02eead0feb4092d970c54147bd781023afa29452d96884db3047c72a1395d12c12c713b11cf0a3e478950f473fe2d47d253f0203ba5c6a" + ] +} \ No newline at end of file diff --git a/pkgs/pow/corpus/jh.json b/pkgs/pow/corpus/jh.json deleted file mode 100644 index 5649cd88..00000000 --- a/pkgs/pow/corpus/jh.json +++ /dev/null @@ -1,258 +0,0 @@ -{ - "0": "90ecf2f76f9d2c8017d979ad5ab96b87d58fc8fc4b83060f3f900774faa2c8fabe69c5f4ff1ec2b61d6b316941cedee117fb04b1f4c5bc1b919ae841c50eec4f", - "8": "277c93806945992a7f10102f28471af2783fe32003b3f63320810e74f1bc233bf8669ab4b922db9ef13fcdcd4d31193b731eedde98fc87c129c04a4a1071f66f", - "16": "5d80be996ba553a0c68fd539ff3859ced2d1fa627afadde83464a9f67cab6d66a32749b5228482a5f4a11332d62974547cb8ff90eba9ddf03272f873457563f0", - "24": "fd745541f728856a4fe34d53ec2b17a03c9b83c321ea69e708c354198821aafd98ef2062b566308374763a55aa0291f99a42d9cdbe36952ff58d00a689c2e6a9", - "32": "6027c238eb7b1d60b64b72ea11713c52db49fbe9582b6fe9383d0d6f9d120ed85710c2fce6ff2d5a173c5ae7766ed286c0896330df7f308638dab6fc915fc86b", - "40": "e334b2946942583370ce0b840d31752f35de5087f5ab3405872087b496db14c8cdc2c138b3a26a3191d7b9134dd5acf8ebcfea0d2bded060ed3290a4a33fc3fc", - "48": "f30360b24e1a66fe2fab043779a2fc0313069b55ee2d763e7fd125368befa27059acc55b1ae016881df31faed7e758c03d9a77863f98f1290f64cbdea25c0a36", - "56": "5c52ee79194e100c7a75c7f85ec808a1a981a912c56e0689af5d1329d9bafe76e8a12526b83b8c541e86fd59489ce42af304f64596d925c9f5e942a5673e192e", - "64": "11893879dbc8e810d3abba8f38f07895c5b76c038d3bcdbce71edffb803233dd71066a7bad4f4de667c2f4197731dc37736604ebf6825d716c491c8441674e9c", - "72": "c453e7b2de4ffdcc36459db3e0133a8e535b2dde7d94d13974e1122b1376278150921a70578fa9cd2eb532fde947ecd3c5947c579afedf955f37443e4fb85628", - "80": "dc2ac1cd7b21817827fd01bf23bb38979f9541f1220ce16fb59da43ca77ab5c6f4faf69e78ff6b85a995acecf9873ef12dd48c7b9d20b5e439504de7449d70f3", - "88": "c6bebe231a6cd5f49a7b5557567946fbf9c1221f92112cc429e0f223fb54323ddea7b6d326b5e84beb72c4f813036a0036da5ce8df6b135204a4efb4a49b0e03", - "96": "b43cd3a0d7ed1cfc2c555db7823edf4dd6027928e702dd935f76dc4454f15bac86fdb031de899e8226a5489f0da287e7255fe006e7cd280aeebff049e48fcd01", - "104": "835e40f508379bca36f567d7dbb111e2955466a39f8a816b59ba75d84faacbd212ce325651d6db124428e51de6adbd8db331b2a88c93a4876b58975e6ce4da80", - "112": "15f660049688c927b85a9e57cbce4a5553bad5aa7d7e2df17da715558490965012494b44abfe6bd528d6b56541a8cb3c8fa21ecd6ac9834d014a4bb9097ae64a", - "120": "5820186ad15f14c1d74694617bc6ff2a8484b6c61abc224df9dbbb4fd022b3c47e621f0548f40443df8b38dd9c0634c310b7a289cd306f8a995c76880d75d4e2", - "128": "f23649fbccd45292e396893e5c04d98c9f76164fd32371afe72212b706cf7e5f661663826c4e034d69f84b363b1344d3219625c2ca9a3bfb95671017587d1255", - "136": "2ccda24e158131ed4f285f077382e354d98e84ea9895a7ccf88eb7a3990b8e69d3661b96fd845a6f3071791d5e1976f7ef1380ce8ff98a024ed6e1f92c728a15", - "144": "53dac43ed24b8d173ef3def41b9d8863dfd5f0f48c20e41aaf9a18d8a3a0f644fbb67936aa1d62ac8913946b74a4c42ca7326f54f6e643a010e1bd300bedf743", - "152": "5773557ba65fb676320aacd40539c63298dc572ca242c957dcccd1a1658725dfdcbbb9fd504410181238f95b1965a7ff1706de13fce34197152124cdf5a85411", - "160": "6cde03cb40f94765b632004f92e8cf9ecaac88a9ade7cb9dbe239720f6847c7cceb61db1bbec25d314ba4a85442aef23e7086bb9e05d34d66f6e334f132ba1c8", - "168": "7af7cdd077a1a77b0a91de6d3a80b576cbc0acadc8aea7cb20e03f2ee6facdae787da1e4838afc89d810efa234bae3a82b0ccc14ab87a33e713c7b728428975c", - "176": "40d1a295a3b53e236f98ec9bdd050e7a112e6361d884f1470877e3f42326c98e1175725b89d5d2bd8d20de25f34fdcb3de39f5d45bf4ae47dd3f9759401f861c", - "184": "e06989515db2c818d5c40531cf8fe32aa7c7a844894e6e076245bed9cc91a32637fdc412e223ea898aae67741cacfffa00e2bdc8b42b0593522f21f147cbe745", - "192": "a3333ee37a33d9ff11a7833ee9816119eb64aa01dc7aef271a47f539909704efa9d02472421b682d8a2c9bc8380c875c16756e507ccd76122be7ccea5d3a4d0b", - "200": "44c195f05e87530addb0e22d4b3ba7c1c4ea115f694999b7ed4fe944a896ee4c7f4ff084e3c72508bbaad73b696af0c81797538da19488c194ba3d122c1d2554", - "208": "808d15d73ce63b56ffe0881b90d7f0edaeb3f0ffb6545ffce4144033096fd54eca798a84335a9d22ede3e38ae3e4f056e1065fa1de6fec4bcb2221973e7b293c", - "216": "2f3de924f6d3bef9984b139da7cae714dde509d747a21625802ad68939484990fac337c429e1328f91ba08736f4282b21a4612ddac6e1cb0da7f78088fbdfb9c", - "224": "622b50269d36ad846d009cd7af70cb739815956b526843c2a2bee313bb27ab3939a4474b14f7d5959f707e44a695ca506cbabb891588ae81be0a939f14ec2e68", - "232": "0b40beb4fa2592d7ef66c19cc5fe372eb5ecf730bac30be5201120e4c92edebb0350e34cc983aa5f94f0e60edaa7a510d282b87f5604883fb45a6b2b958af57d", - "240": "9ec2e33745d40e3b79cc76682371f7b9264ffd73c82483c1792fb55f2923e9b672809779498ef6da3e4469b43f58e588a923f406d03ee64d505676ec9172d4f3", - "248": "f69d13907bb6453a5582457e4919de099b75e561de956230a34c5905f535232128e5044eee3537fe0945b871be842c91ddf47322d28dd0866426b8e26cf8df77", - "256": "f33d0a4f425b0919e2c7e67a2484cbd8d9adc7a025acffa8dd3b8494b132d24821505eb305259a727e314a085f256d513952d2cfdb68209549d6c27380241e0a", - "264": "ca02d765ecce6f0959e397cd1402d2646f35013ecc4cc8ca4c77e889e2e443a3a0e14a7588ed35b093775d910e2b82e8c576a1ffea60106e132083669479a449", - "272": "b0f57212572e6bbabc2573b23ff1bab3f2e59617a0c34693b65540f4179b77490fd2b897ba6ce3043e66b01001340fde483a7fc6a504cf61e8aed042b90cbf13", - "280": "e418d8c18ec26909cb1f9faecfca8fd61586a9130be876e564792d47c01f106b6286a17edf0534b1a5805a7fd11c7bec83de475839984e0933921455b6eda5d3", - "288": "d6619e8a4d35de79d606e4e63ab4ab082a7c72de3da677fe3a4b28ee955aaf88f835231644733b5eb84eec718010f61ba7ce4bd4bc65d5059b572199a7f6c9e3", - "296": "e6021a69ca5dd965da1bd0deeb5b28597bc1691ceaab55930ed7bc40a978a102708adb8819571e1e91acbd5f3132f2431564e5cb58a7ec6e4767ac3572ad622d", - "304": "47be34e4853a85ab534d380c928f350f22681c46353dfd37328522e979ddf34f3eaf54fd96a721532e1d3c5443cbe08284fd2cce2d035a1bcbfd415213126960", - "312": "ad8644339e949e96f99d40bb8f368278905d3b207ea3f1410ecab795a4690a2ba25a728b1a6d44e5b0e738784b9e0167f96f25f07eebef9dfb4de74dd808784d", - "320": "40f90b4d39d4aa79f82c493fdcb21011e8466764ddb715479cf682ea2185d5abd3710e9545e5a2b1a27c9eb6e71f60241063efb7ac87d380b6248b1d316b0edc", - "328": "c7d290c6556c2bd6bce952271231fbcb164988c7c57f4e7738c588e68949611fa7996f708cb52bcaf146bdb876164e53aef9ec339bb356d21033ac4d9c0dd828", - "336": "5c8f2663230411e434ef2390fa3750a11c7cc26361f41013fd73c998a76356cac67f15a373e59de4687ef9606858741115292990150488957dbe4972826bb917", - "344": "1b8006756c278262bbe01bb865ebe3ab853ecf80efe1c203b599bbcaf0e6cd0365dec6a8245d8b6461c198fba9ee3dcc4553ad4d7f460d5adbec2408881c6028", - "352": "b260b7bdf1979b61aee5688fbd21f219e8d622350643c058cacf0a743b5e87e2f73ad33ced61792572725365c0892c37da138adb01c29ffeca8e261632876559", - "360": "d0299a1c2731571d94c829e3644d3c048e74dec78ab8b44740e29cf60416500df15e03cad775181739979348b8f0cac95211e8b53bc128d184e4524d37e87199", - "368": "0299c222d2f977801453c16cdd166284d736692ca3d0dfd909ce8d6979f433d6d67c4f0467a2f410a7f7b3fcd1e6555a980b47b290ecb75a95eac10c043fb6f4", - "376": "38029e274ceeaa89e53e50254c331f18c483cd1f3f69a0a9379d80a39ba2bc5c6374d7211ef8b053528f07a1de47bfcc7a18c752e6e7d99f06a64e77773f1760", - "384": "4e91392daeee58c42daf9d05cc001cf06efe8911ca3a12f90d091821bae4f29a72ac84113bf7421fe493dda4de34e1166b2de05761660ee38118e01c3d37101d", - "392": "576a02797d4c386f01233c9a83b48ffe7b282ba377bab3ad30358a040d646b3fe02ca83618a5a82a4554e97b0fd30671b22a399fac16cebcbd973fe31b2ac1da", - "400": "62fcf27c1183249c8cc74cd18c87dcc1aaa4b6c5eb3b393cef15538741bf6630f6095274e275e0c3847d75f4b6e657175b16ef9e4a063089f15c7a07582d015c", - "408": "64570c4aa1dc3b24c9e65068c937f2a83b644fa164a40d7f3c396b9877718a9caf5e62044a38a41449f38c2cc0dd9424828e8275a17b9faed97ff664aefaab01", - "416": "325b3bea25b595d1d8a1446423e8fc354c05ed5b7002a8d41da19d92e935e36af7ac49c16325cb0741e887898ab1c06bd2a0b1f983e67e095f9eedef819b42c7", - "424": "9f7cf41aaa6d8e15c4c86250d9341b7addebc5b146463b22f5b19143395bafa2f13854af17a472817a9ecc2dc1e3d45820778d3c549e6c4ab1f08d11d83bcd46", - "432": "c9dc282f213a5c0faeb7ee83bd4f2c52f3f0d9c5e7cc2702d6ac8ee229f588de18d463cb2c45420add250bb667f09e435e7515f8bebd0b80c99ed1bdf7429bf0", - "440": "dd2d76998b7048d63f4c23070de09e216a446fbbfcdefa6e6b7504e35efe470b6b919b023efffcd169f7e953b62e51709e1c88f1e9cfbead1500ab099d06fae7", - "448": "5b0d347113a9862cac078d6eea684f50f049260741cbf8063eb78347d5222fddc0b81f563a489093d75fe10229ee0444f5863e8ea0503ec68da600cd82bfdabf", - "456": "a5a070a1956a29a07acce706233779e43a39ba0eac60db230cfb45a1c16f1a2f48732f4ec4a8f05480dc313de2f1f9c2801486c813d7fcd09df4afc8e33127bf", - "464": "3c75371b6317c6516b6b8831b66e2d9994a2fb5ca40740d5fa44c12b68b338c2882b6eda59b28c99fca54e23679ba13d803bb34d2d9127f46a30162bfe6607a6", - "472": "55c56d004437d4e42dc2a63e5e3bfff90623e1ce1d659f056b2cb2098514baf287a0a5b091c5c7a88d26516dbf5b87c1fa1671377d3b1b9aac651c171d463672", - "480": "c6fa19e3659ed4b3a83c50e94f3d3f8593eb2929343fb1cddcac821de550735b9ff6f5c9f38e1af30c87fb4a8cdc12415c705b2fd5ccf25b84677a2d8e4bb90f", - "488": "6bb95c831f2e43ca3d1bf10fef2b65e37ca4696947fc2d1b664706235f6197acd450cb5de86ac47b41edd74dcb474e243d4ffd19ecf9efdf570b298c9b02826b", - "496": "ef4320ecbf2ffc7cb71dcc889824aa1a68cce65c6e69ff63a5bb4f9e0366dbf71f73476d5fd89ec83eaf1addfe40dcc6132bf2f8a7efdb904c2899c7c17c3548", - "504": "197514abfb2c85c94566b72beeb9b95f6a4fb2d19306579f1e64241c4751b3df09a04dc77d7cb19d38baba36d23d73438a7c92bcbace65fad3586f9b7621205a", - "512": "d1dbacb16c6a88bea992cd34f92d1375f05215037cf989e155d324d6d1e4204320cf18c1ad6bf11019cdd112bac3c7cb73e41a94254b8c5af3db8245318ffc70", - "520": "726a9b558ee790de5f0f9b7f6a06c163c1f2352f2a5a61e4316e5a17174be886d9b0d0e194cc05eca1708e4e1f42749ac279ccf42d97a86b917141357bce8db3", - "528": "fb26d1fff6bf790b4db1bd26deb1391a2263119246917a2a5ef8fcc3c74a2ae68856dcabc7a93795613422d71c13defb7fda0ffc49bca6d491b80a8ae3e0ad26", - "536": "557d095ae9f69752d1b38d5632355a6e5dde4abd718b7d89d33578bdf69f0fa630e83c403b782c086ae849966adecf647148d84538b363450cda65dcb94f8878", - "544": "150deae20c89949d9101a4d64fa5df890fc3319ce232527bbb946cf0a05799f86e770910b1cc4d2b8e77b384c34aaece276654086007bee9829f315997bc820c", - "552": "646d27378f9e5654867b6550a80616f50ad43eff50156bd94bd78be545851fe57ca2ed9a27c7663f7cc029f2b742953c4afa8448a04047f121a26b03392000a5", - "560": "9a80ea1d6aa97286dbe15a4ab5573d342992dd481218b2efff2a0f65f672a2f88483a75ef57595f1cc5888396f7ed0da51d1e52722dff84cc9501bbbd3ace1cc", - "568": "6b225aa75d47a8517214870698da70497a565e470e61c7f6659f61e735b464092160a73424d525bbf34afa2791c1999e700f1f1b8325fd6cf99c143d338bf3ac", - "576": "602d3ec56c8c44f4823ab254b9f18f6a126ad96d79e618dbfb1532117d49d92fe3319c222d945a9a18b841844efa40e4465f2bcb12843a0fb40f43a17b10a19a", - "584": "ad3db83586aebbb3809cb360de9ffdf220a9c217d0b96cfc8911cf8277bb103d1a0e46b29941f350ff02522cd7045dfb2961c2b95b75ca7a63c9bc85240f9392", - "592": "992263f397e926291d8487a0d6e67564347c2afeb8960933fccab02d30d56c163363dd70156e9dcdf5a372dd7cc986a8cb74a49c3d94439f4e427a4e0aaf5cbb", - "600": "36748f39dd77ddc825647cd87b20e23ddf0fee37b7892c7b3432af7154fbde206efaa734a70d918d79c753c53af84064c683ebd515f2e2f8666579d6969d3e42", - "608": "d445edde07107b9b56ae99889cbf551c76afba598b0f042af0ea38a25cf88c16a1f7e4d2fb8c38c0b523f3e6ef6a3f9dc8cec8107661d26c6ddb71632b0dbffd", - "616": "b535eb675926d047a0d3bd4804c3cc014ba38d194740a8c31a99a22b76b5aa49e6f2be9255aa8f06ccde453c97329d90eb28ff4aa3d50a6ac9bab2bd9be759a5", - "624": "42dde1c53a78097514042b16e4e09dc3b6af21069e10fd8ca41c366fd900d2814ee9ae9ae0532be286a9bdb558690a5f5152f4f1d2053150dbb6660e6117a832", - "632": "74637f653653d33352c9972415bd9a0622090bdefe7df762f3bb69d611c7de5f0e509b5a3d51874558c1cbfbd5e282acaeac3edf3f6452271711ec4bf8f1a90e", - "640": "f61a8b9d8e7bc97f08bef2ea34acd5f9d849620cd11cfdc29b56efbf8d1b55e12bb0be2b3a63f38c68694766a174f0366ebcb00031612186ba7f33bd427aee4b", - "648": "5a1591975efffd3ec1437de6f169d4512208a134a039fb146ddcbb21d16ae282753044a12d243a4eeb25a22b87ee3728102df6696b2e4ff8d6ea10f40ce320c0", - "656": "7601a61cb1b975d04143499c875ae97bf19c3388560661ec64f2d3c619d9c092c372fccd14f002f87da9a71f064b4705caba72bbe8ccbe7aea9226face0ef389", - "664": "2564721e403c3cca58511c4ae6fc6dac89e41624c69fd4672264f779f916492a76de1ace1b1f32c091cd221201bdfc53a9f8a03f86ca64b08c411e4973609067", - "672": "d54388a47150ccf8453597a32d6e7ecf641feccbb5f2e053e333ffba3602245dd8efb88785ee12bb5b23ad9501b522e0af46d13648f188f4229596b10a734be5", - "680": "be18330d113fd669380abcb3c1c9f531e2245214a686cdd319dfd39c43356c9f71c136c8d6e8d31767d655ed6804dafbd1c0a7c89d1b407ca6610b7299ee565a", - "688": "efe5c37175d16148adf7feeabd63f8382c5d559fbeff07dccde749dd482bd05aa77a3a94e397c2170e743e19649671154ffe1a4ae43e439612425ad50b2df266", - "696": "f2586ec9ec36adb0407ccfeaaad07d7a348a70e68c1f3519c910f226130e4d8863c0be0aeeb0c60a1a492132a902f78664d0b97cee9b90ff5672879d5eec60e0", - "704": "c9492269ad84ae3c8bb4d1c2424e26123ff24f1086355a2b4e3bef80281d8f28b40972efad322a6b5474bc3411965fd7d8c72c35e5db47304e6e5e906dfb4f7d", - "712": "e86e8f1f51a4cf7a20f22a486ecd9f2071bca879d84fedb432adc2cba2b98599145957c457e86a1e61908333206269044c04cd48dcb8845d44cfe2a014d5d4d6", - "720": "4aac7c0e7ec5a3a66257a71bbe227224ae69a2f3da12c5ae4cd02e7c903ae817804c4e9ab8f4555e18d5b621b151245046fa94b6df1d3e38e7724efa94c36c9e", - "728": "5caa23dce9f4ca5ab81d77406b9690c6d3b7ecf9f60479a1a0c4a5cd27a66371f5de73367f873b7e17d1bd7a784ffaa6eff2e5e56bd26fd0389aa79858442964", - "736": "5132a037b5c746aa1fa90dd53c98493f35260d6f708d30faecda7b08c4985a02f8ad1f961d35cccd8edc455a97c587ebf45f4ef2cccd6f393b6a50967a5edf12", - "744": "1fdb0c3b2d0fa22be33305c21cc445257aed4cf51be76d7a88863954e67f113fd0cdd718bd0520c0baaf40b9b68f3866a4df94017efc469f7391d56eeec21cce", - "752": "e46ede17fd6541b1402588253a2e399bb516fdcd3dc08e3653c24b968d8c7b3b474f544aa4dfe5a3d2a46cf1b9b5c9709746d35585a9286b3c0553a0b46251c2", - "760": "1537049b2494323b9ae239b804fd76d6a77db973a8592d570658d68deb9c0295d5ebe5e3d6790696208795c00a51055b904cfda0879630ae4b91e3bda298ba89", - "768": "7eca01ed545ebafdf9faaaa769975c18d4219124d47c2b97cc60db9b29ce13ce0db0eecb83efabd3c4118200812c6e140a1b831b78666a5227cbe155ca561f20", - "776": "b249173945abb9a8d5878918f73cc156ee504c1ae780e6a65532c3a9a3ccf60a2d27e39cd5997d1779485fa5ef87d05cbfd9633e0902496e2a3b44033bb1ea0e", - "784": "681f9517a864ca65e5ac3a176628274239846f4539bd354705dccfb154f9317ad6a2c7677de8507a54ad6e1449a893a1f61cb1a5ee8216703cb94ea793217008", - "792": "460b59a081905db18eb4d49de6ca029c8382936fcb965c2080a61690a65c18ccbce879a3c2766444910d32c50935c1055deceb96a065ba7a37f7f4e31877bfa9", - "800": "e7e98123c05700a8eeb27133f3718ff6b8beaa646de97614f36a90546aea803b9eba7ee5f9d72ba7ebc752a5536db9331ccbac06165017681bf4ea49dcf7eecb", - "808": "d601e7ed24d96e6b96dc1ba6496dc3964dfa26ba68007db7aa697ffb0d09167c50c0a0a04e4360cf9831d5c82e09c1e18b192ad8a63dd34c1ac3b6643697d852", - "816": "a9f1b7924dbf1d6a19dff841ef27dfae293174b2cb9ba9202f748564cbba64292554c43da7ac067b71e6da21129c12ec85f169759a78183b312bcfc73146d275", - "824": "31fcce153a39bea3cca411018459ec5ae795ea003ff7ccbd5f7952c85d498423f31894d18a46a095d4b3c7a1226c5619a45a4ed1b8b53802ddb5cab09aebd96a", - "832": "d031021f813a0b88180af1a6f8bafd82d1995776987865185fa266f86ca2c51efb9ba6b142b80c3a784bef41034adaf052ebf23a2248b1f5abb551d0d5ce9d05", - "840": "b4328ae6af8bdfedea1180435c9ff424b2beaa119a616325d50238aed80736db4f646ce0eee044ed3eeca03d0cbc2bd98be7c527915939e272d754964c1b6164", - "848": "6c20170716a067a0989fd4602139cedb24460aca9449da363f142d3b09077546b2365300ffae368c94de26ac9e9ea04a88e2908b2d4cfb69838c805df2d8ee2d", - "856": "23ffe6204410fb4bda4f832c7ab57737ae884ab0416d6dd1a819ab8eb1b8eb16ae658582593fd6afffe00dad4c15bd4d35c9d06e31a4b35d78932a03b8174cf6", - "864": "c0b79c3e9ba1ce631b0e4519761853ceddce269381b47de7fdc94e9220635b8606ea7f20415b0892e41e70f396305013348c2bab62619915cb848aefd992e180", - "872": "1b803fd71a338427abaaf28ac105b76ef704787c7b338dd4d61ef546279c48ea6f2e0e17605792ecd93aac86c0a67c6f3fe97ca51958420e3dcb876c3847f151", - "880": "7024ff7522631096e884311c7ae126668cc1ab1f3b87ac592ada76bf475d31548f4221d6051ac24494a553f4a621e68cee500568246d3d8c3faaf5d911e62300", - "888": "9c7288ed5156d330df00b7189f0fd32ca6e2203abe1877d6cbe13b0c1b2dff593a7cad6bf0af0b1ff6eab035d611e0edfac74fec014b6a7f68a4fffc6aeb7c72", - "896": "97873a28cdf97bd5438463b82ea80412728db35c53322bcf42b597d0775fe0c48c1a9703b2b5c2f9fdd096b5167efef5f221b9e04b4f7c49defa5b0fce9cc79d", - "904": "147f2e0a84e2ee268a102a1e0b673de4159ac9f187e4430d822f705e6087bcc825d925d81688ffaa1cb901160f2989a0faf7d3cb3021c29a15ba187c9c5f451b", - "912": "48072bb7049e8ed8ab019e0f27fced0a47a95e83847e9844b81f0442e0e5ef2a8b0574f7d3c46369afec691fefd36f949c0273397edb5fe64ba6d38f8883e1ce", - "920": "cd62089e25b42422c0b13a8dc98e8c729d67d384ca52f39490b0281c0ba14dbbfe3fe9d981fc909e899422128fca19b3b29989f9c6ebee164fa41c92fb14baaf", - "928": "e56b76ac9fba361b4cc7f16c6b56a7399019a70cc58a1d25a5b26a45a9a0953fb1d2eb796931a15745d75ff95577d0c8fcaa17e3d8d3c752229675d0ef0e6dfe", - "936": "c7f96200c190efc615f41d8a8277d0f4775d9f073e87b60f1db9ef7945d8082c324a7d1aa313f739cc9b78f099f1e2dfd0e2e319661e1b8d732843f14a813efd", - "944": "dda0bf503301c207aae5316d91ce78daa970c720eea6c2ed4abaf40070a034a4a8a49f669e3c80826ca8cdb084f762500c26bb7a782f772998fd13f0bdad5dc3", - "952": "c32802d79a3d03199b35490de200f143aadf2e5816c32f56f0a0b8fc225b6b248d4d3868ba25daac331a40dc1fa8fbd5280e92037c2837e8d28dd23c9eeab151", - "960": "2fb80ec16c5cc73b4b85c7621ef5f3f5e7a4474f795a0e673dc0d268f3cfd6153f0822890d591f399d04baf4760de1cc6802e934d7feb15bc3e2e48ee443f010", - "968": "895f5a0c49ba94353d60407b3149a7a26117028cf45cc5f1ce36bac76affbea62dfc61e88e1a3ae3b5b8f550bd0b10b9c696f813abf7f7a0666ca3c4d60b6349", - "976": "1419d3771bf8d3937ad995757c0c549e29dc10f9f06acff3f3cf0cc86e3051d3f7c65ffd21c1ee068178a24b410515a1e359f106128ca529c0960e8a821e6679", - "984": "595ad0d32a95a6f7b6e62cf916573bbcedce2c6f64b6ce1cec9b36ebdd98f87d33411a87cd5d8eef42402e1d6aa6a2624d55b1a5ef5dd7cfdd0e9b28c3a561f4", - "992": "69fa01aa1c4484ac028e3204e4d2f2bfe1258c83da09b435d0a5df07f9f9d5ac15f898ada055a33e8f498252732be97390ab3731321fec84341634f9e2b0e0bc", - "1000": "87c90e04895b2fb8704632f32fe2e113a3950b41f2be837d26a718accdaef409f8777d1bb42a99df7a76155f64ac8c74071f2f35a6d581c515a647ebcc48679e", - "1008": "4214fea481c5adec4517763e1f5763bcaa7ba6e54658cda725846b90c5c7adfb5fa3a3abe5e5a4686e3b8590e511e53fa1bf3bf1cb443f08b7b0a569a6190223", - "1016": "72c91078e9237b996f7ddc0936a4e69ba28c37fff2d11061601cf04915ff5dec31e530a3aefa09141fc9061b3baf2fb2ee7a841d5350b16dbe63ed50897fa2f7", - "1024": "9ec6669f30f482a65d93fe7811923b6bdf3a1bde032502e0b1a064c9d893c03507576fc4fbc745d458c1402ba76f7d4c4539c4dfed7c058596fa270416865162", - "1032": "f07daf4903af6f58306ae9bd480ab4cf1abdd6ae9f3be176fc6e52367b142b3f7546f2bff486404c5fc303014cf93ef4681541b22f3cb809d1eecb0ff09e72e8", - "1040": "bdba52b4cee3aaec9780c80f7ccd9c7856f57f8b780a7827bcdc9fdf37685bc9d18bd33db1b5aafaf9a8553a2fbce972532020ed274798f975f82e4bca67984b", - "1048": "970ba3caf5f2afae99b7f430f2a349808d8ee378874cbd3826b8569f24cf13cc043e94a1a7075db1f9363d3943971919370dc834d8cdc4ce92a36a1db58e8149", - "1056": "c3b26c2d811cf8a2a3b4d979d1e8b82921ce410ce968bdfe64f8120bce19522e0a0f8deabc1a080ea74d9b631ae7c21c4520550b8dd2e39b61a8b3effcd29ee7", - "1064": "3d493c5bbdbe78d61a4b4f9c6867ab6505e37e28d2fabe242748a47a9474587e401687ec5bf0a9801180b5f2aaf5fb79c4951dc83eb74344cf582bfd22abfe5e", - "1072": "abc78064f5fc2c59a68061acf3b6a7476e3ff27d8e6a475729e8f7612eb6036397e7c0a35e14c9060434664fb3539f816210d431216f67a83f7c924388b27b8f", - "1080": "46c54e86d4722927e17aac3ab6ae7a8350c6025a9ec067f3b75dd5227dd4f25f6c525a0dc7b817cfa752d36422af1ebaf00a0fa50a272c30dfc73267c129e80a", - "1088": "e99d612c7a8293d8ba444e37bfdf80765fb9cc499a25a76469462c858498ce0e2b820b630a92816c988c82b308758036b36fd7d17e3be303cf3f0f5e2f014d57", - "1096": "5bc8ce97b23cf0127be69d3b6bd3680749ccedbe7e3cd40fa525cd6751de1f3fab595a1e9135bad2c02daab432e60849a135e46997d9e23db47866a1a9f33659", - "1104": "9c6cbf896f8f8fd8df827ddfc6b49ed71fe3c5301be23516fa46ef6e12a50a1d6b40233b0ac356e636cb9f463541f07545e6192936934ec07e1a664ff8d629cb", - "1112": "d154ee426da1c9d584550c2d949ff5a5329878d683480ab432920af733307117874a53362d1faf0f0d3e3ed76131d3e8cafe4fd1f7507ee4501e38c4fa09ccdd", - "1120": "7df68830de75dd31437b6d50deb04dcb4b9ae2325378e2c758199e413808485a5a85867509af91b722d948a700f10c587c18883ea44fd63befe6ff23401c4fb1", - "1128": "f837acfa02158f5c822f4d340f190e5571950f6b3a8b921567ac535ed0fde7537749e7d925b9792f672ef3b39ac6b8247b6aba17b708720fb3fc2d56e7c86786", - "1136": "053f4433059c73483084c980175168f64c6047cbcefb90f12bf99534e53e8bf2dc308d3acafaff612f9e697e3572fd58173b4037e714ab94fd294488080916df", - "1144": "a156dbc4bcf9cf9ba37923f7b05760f0d58a547708e0e45f54fefbb83756aa87469cdbe72d153945035c8264b863975187eca3088a1ffedf0f03762e0fa444d8", - "1152": "2177cd920d7dc270e3d9b49e7006f42e1b86020868610730a450d2a5d45fe32776a1efed3a557ac6423bb6ea6d2869ba9ca5b3570f80d2e7f0492cab4423a388", - "1160": "b15b9a67d242b97c680b7cfeb07ab21172cd603e4129e15447f6483bf95edcad6b63da2ad4923f85952bd88b919204bf7ffb81a1b0026ae95651e09bff6944e6", - "1168": "6276a468ee98b2c8f625f766637760961824b28c731d2f84d2e1728053a507736f2cc91f5c4895839a3b67993db02fdcf9097de46798c350bcdbf84d15840cb2", - "1176": "c446ac82fba83f84f736e37ac93759ad59175bc10b51edeb634b2c29fa4b9b3f4d3d3fd0f037adaa27b97e84c83c077e5f40e9d9cd57b93099d4d0bd4d9b2992", - "1184": "e33f2ebf7fbc09d3c3a859af9587da4d9140cf7abf5dc6393d84ec1851d725d034c8944f905036cbb88f2b4db6737161530e59a240bf3e095ef0681f924a9f54", - "1192": "dca9e15c65d85d62d611a46b8fa9c162042b08b5939e49483bab0c7dfb4a847d202416b73669e6759481ae499b002a5bcda6ae1736dfce8ded28f8cba88cdc86", - "1200": "3a82ecc1394087b91409ac7a03d0e1f44ab833163240fd71219067ca3103d3c8bfee73af05351fdef2806ef943b4c50a98dcbf993584f4c520b3517e914bf0cf", - "1208": "ce57151b9040c1bfbf22ab59c8a763aecbc2cd839997665592b9bd442fa29db67f110e2fbc8c00889acca7202e5d23a1948b41c17e1e195cdea0bfb7946e42e9", - "1216": "b9a61027a96f3d7fed61812898802ef4b62c893d5e6ab6e22f8530b4d05b53acf1129d91557dc5d9554f431ebf738826dee5434b0913ec201d1d3a6bbc499d6c", - "1224": "e2cf96f9b82daf64cb1fe771e0f4755640de0a94dd4f61627c2a125a752b6df6740cce444f5097cddd6c8c5f531d124889d8c4988a34bd5f683d3584169ff810", - "1232": "a920bc6b0322405bb7e45a1243184c71948f19fb2cd5882776bbeaf31e26f940f2337c820827f8ff431f2f696bd2e307e231b340a7e3452e3ba738e1e39692f3", - "1240": "a8e9a6c9fe4b952a9625898b465a875d48ca58e4fc0f150bedb24d0173211ae19093fc47ac5cda740235af35290bd960d983dc2c597f5dfc2d13876d1ca6779f", - "1248": "6efd02f52f091cae1b47e9a962b2b3ceb8f3868fbd0ade2d09c16b3b63a2eac34b137b49bc311b62ee8238b32866de28f1834e56cb625cbf094f61fc29ea5b26", - "1256": "1289ad6cf026ada0cd08677c157007237233a673e66c379f4e025a01bbb4627e21307778da6976f8c42cd5b95dc2d23b1b88fe826939b50c80e65a3d2d014800", - "1264": "e8bf0daae31f79ba2f0988f5f8ce4b3cfe5bb613da398d9dbde59a9b9f439e9967f8aaace64ffd57fe51b53a4370aca84344a4172c0611ab2889311a64b1a295", - "1272": "47700529d81d7c92b27af51924cb18817aa662b6dc4401c780e622fa69f73566e0df22a04e7da34227691e86764f10bd69d37821472c7b557ffc2d2888725ae3", - "1280": "1ec36f413f6dac894f5dbb14a6f69f131931618f38716945a07f1fe15faa27754c81a49c07027cf5213d2179aeacfdb27816921937b0db6a063f7ad05165f234", - "1288": "e9cb5252083270ccd5c8d068e07142b45910b457c99fc0542a14266c67f39136ddc8e114185b5e171b6056f7f7817707dbbbe1aadc98da1234c571589ae2e018", - "1296": "24a8b3c80c4cc5ed187fbfeb364f80c5dd35c3b845dd539567bcda3cb6b3681e12bdb04a2d3116d3dcfdab34b3c4a13b64274d67213335e198564c3bcfd50105", - "1304": "4881a47d4bfacedd5f2b8a89cdd4e6dcec2e691c22569e5503177c4700ab8d03202f4e2a4c1afa0e4a8e00ec961a0baca4310ecb766dc8d994f84af47010405b", - "1312": "2cabe4f00393222bb1996ba57f80defa5f611e9aad2dfe3d9851699468360287ea7e142133fa5f00f3c4b097f7402ef8f29de9fd7f69554505427994469a648c", - "1320": "79a598d31304ec817333f1affba8a2c86f93543bcad86c9a0d80d0670819deebea241fe7926c2a4637339399dcc9a690f1983fe0fcf83008c3eff6fa9eaf4a92", - "1328": "21d02b3def70a19d9c25df5d1b3fd02029129d182817cbcd2eede1d32d9f3ebbad8ea42a7e3bdcbc79f87de3b6fc23fb3400e289ee3f482bc3e82396072549e7", - "1336": "cae5dc2dde35316dd47cc5b3466d10f6fdef460981c62d5d6621690edfefb8acf23314f82740df021c7dfdab7e6a0f7d20ed2028562a2149c24912e0880e8c10", - "1344": "978f48684401e63c5717124dc9db41ab86ddaaaf6240eba6abfb70b71f48476f0bfc7a43dbfcc411ce89d9f4284c8ed22a6626fd0405641961d15f18dcfc742c", - "1352": "156fdb4529e3ad0951c1af5495e64ef8005b50da4624a3b0f3848e9ab6aae76ced8083b11a0b1acffb61cc79b2e073e31adfee1c98cb285a40b0d65592a14754", - "1360": "da087362c0533d9024e8b6d8e52f99b1320266244b8666ab5ff563e37d53502850c71548f30ef267959856da9e3f79aec05978032636c5e8428b0b45a95c4a42", - "1368": "89154a910209bf0a3056d591e1d3642042cdebac2d42c9f180a13c82aed11f425621522f23dec3ebf8dbaa95b4e3e9860959f2ab66652085a72f76ff3914f2fa", - "1376": "c621ccd703e2bdd039eab00e121cacc7c3549e06757dbaa4a57410d26c8a2f1ecd7ab0d4cba1b23b87cc004ecf31ba92f96011f33b812942822139c96a63d306", - "1384": "c4196cbfa57bff0d2c4da3c5f22bdca8c9b2dc10de2f1f4227be71241d14edffe9741fb71283079c25caa6a58c58a199e4ab0736cc4c51c463ff8e831f9a00c4", - "1392": "62344314dacc9c253ace5a7be1b11917dcf01b810d2e199dd56ca64318b09cde23850d5c5bcc44b7b0eccc24ad9dd98d9f2f3d40c8912e0b53f92f6bc5638cd8", - "1400": "11d2fdc0724a4a792b7002f2feb036064296b3426ff6dfc4f9042b814862c0f30e43aaea4a471dbe2f62d7b87e3d5ea047004e9cc097694ce067cb4d1a6f1479", - "1408": "246b1b99762fb65d86d5cc2578a2d30de1bd8cce8feff1d7608e66a81a6cc5dd070b67c6120b9f41cfe3afc88885461e5cdd90ff05b41df0f60d7cc96969c093", - "1416": "dde71c9cf3547c506182f3eeedf44356fa92d60f7688146f0353c36507f8f49ca33fa059e48be62ae67f69527d0f88426762b0607bf8538dc7f29dac417a987b", - "1424": "ffb85f34573593b4b748bfb58d321e252c7ca9654d9e47bd729139d02403d4d55889a7fa1759b7aa4dd73f59f818cb9b7058d074717e200efdb6d8efc916cb34", - "1432": "8785102f470232625f1029449f4c0e0aa75c5f0a9e5e48cc778ecf52625bb3117281d051587d6d190d7b91c447bf1832785564441d11d8d6c79f0eb2437cdc5c", - "1440": "9ce0d072797296853c4951e9a25c53f824ecaf81ea2393b33a06ed002ce912b18838cc47a123735fd62ba8deed7c420547de003d4d9a0d0e189f87258edb3faf", - "1448": "a025f3fe15cdcda298601e92149be2eb13b937e0d7332f51edde88179206bbd23d039467d1e41acfe4381210e7b46c72e17a0f0728f6045b45578ead52fb0195", - "1456": "acbd0ecd7f491aadd77079d31d4e5238ef256e3f9352b1b09f3489e233e3b7240b0cf27d0eb11805f708bffef559b1e544f1017d8e571f13dc4118e71449608e", - "1464": "c9a07ef3c8a0c47eb55c9587563c8a5b558707e0668ffbce70449f035ca01c1f505675c8d25a7eca951ab4ede2a824e13a0b7573ea8ebec6757517edd48f9466", - "1472": "229c7fde92213026f8738f4b59f0f52369680ecf8efec167c5bf7b3a12d3ae7dbc7993ce13d169e7196e63870e34a3245996f8cc6866e42b25e97e89764e6682", - "1480": "d042a9f805da9ca746d8d9f7ed03a5c6d90e427eca12959d056f803dfb9f5b8de27326b35604b47684d489189b8b65ec1ea13b79adc4e2ba939101e2bdf61509", - "1488": "214be6b127ae85053f066f1ca1e2b2edfded1da498c5e43379f3eebf62c3933b59e1b5cc5b3700ecc792f45a4dd7d06c4b04181e044982cef2003ec62e9c7051", - "1496": "6b5768b1959333104fccaed593bd34d8dd058dfa5cba9655d3b63e95c07b9745996f3831706b62cd5d2b8257736d94c7048ad02ce0e00cd90134716bad6167f6", - "1504": "900bfb2cc3a1757f6e03cd597cba905c714eb3623a5fff78371cd1b9eb442d2f6329b0a368d7959c27c0dec720294fb3d410ed8ceed4b8a2f5b8cf92935cb523", - "1512": "1c89b4206845e084fbf40162b97c584460fa1a65d296d0ce034b125678ce5556a00e96cd2c7d0c535c2547b317e330a1238d0ecf8f00d2b534651b6045fde686", - "1520": "9310676bb310571fdab1694d9dde07e67947164869dd69afa20085bf1d227e3952a857a5273db969a95e49127282974d75ba6c088507fdf1582f7ddb890af1e7", - "1528": "2d01b2897324f7d1d245e9d1123b1bd908d144cf935b8d2e00a3291efbef1a17b21108015c22dea02949bc4db1bfa4f42afd3c9538baed06c01451a59bff8624", - "1536": "e209fd816bc9aa133ebb7ac6b2df0b1997adf23c8d79a4cfcd63944e09ca982357a5efa687ea21d913a31c520516e5f0c373a17040ea86f6d66aab17322792db", - "1544": "03d73a23a593f09b3b9e169cb9c9fd8a19878d50f015177abbf2f26778b526792dd96d6ffe3f5e7694f4757f4d607e48f924e6b184f5ef081956b8ea4fda2927", - "1552": "839c6f2dcab0d98727c37c0ed9b989523cb3d06819b005ee583794ae497a668d36f807203e23c6a3a4f380712fda8498423eddd14d6ed862a2985017c1f1c9ca", - "1560": "bcf744e1332eea61625e08ab0476e29988726cee4088418453d24c3f0ca475167e786e1e2e1f0096b6c528e67e31c350d742797dd02736cc061b7c2c0d799812", - "1568": "89a45a3bb24bb088dc0d3a3b9501faec4a187bdf751d6262f995d6fcc9f43f739c8c61b7586aa2c271408f61d0a814387183255b76cc3b4e0d74500216a689e8", - "1576": "05198244c8d54c705dda95d26c9c275c048d1e9d4366516c1214ccfd00b034a621190401eb2176162a450214078166356158ffc77aa35d00920b3337423c0367", - "1584": "ee19c5e009f81fbdf5af2db03c3512f596c56188e1427d742608a32c3e8834c3e0beb9bfc0dd95412b80363cb3178f502953be50777f5995b5a1e0c39ecd620c", - "1592": "bd8e2eb9662f50b74e7e37ff72eaa430358c89c2d67b599f92e1e460c4d5989b0948653c6f0c0edcd9976990fb56766d87b6ac9e01380cdcec87bcb9b9019174", - "1600": "598b79981ec49e93c1bfa7af343d3c5b18c798200e4f774ddfca64dfd17c0dff5038710d51fc1777f89541a454f967688cbab1eaf498993821493022025420f4", - "1608": "9cbd3e9e73a05e974588b3230e63900cb99c2f45de0a214aa9850b4e555ee9a4b4343e34efd63f14170c810354e9f63e52ae300434c8727f9d3a75756974cfc0", - "1616": "8a15803f5b64bea1a4ed31ed78d53a3dcbb87b2e8c5b6b468728c42bf652c81cb9a8139072108491336ee15625a6370443e0ff3d78291ea446214a1ce089ab76", - "1624": "9985189feb7759e35a687fd88ca28f84485de5c85c57078a315d30136aa60215af030b044263e9eab11ecbb020ccabe1cade432fc1efefb4fdfc44066d7fe03a", - "1632": "004e06b91c32faf90398e7bed9526cb908cdb34fde769b212373a149d8d98e7d4a9fc7f4b0cc62f674fcc2c9e1d2f621e3488cf13d4f861c0cf15d6127eea783", - "1640": "a2f19762a102fb0805dcaf0c6183c410ee77522127eec836ae80b6ef4ffef5481b9cb859b70cc065033c3bc9e1c5636521ebe110f7e9dfffdf5cd3cd044f5a36", - "1648": "cf072a8ba6821d26e91bad7bc45abc3f635a301c64d3d085d456a7dbeaa2fb26d5767363ce889a36c88b35b34862ccc45f03ce4d58a132130ce0372bdbb12086", - "1656": "f954ce84933c5aaf5c7b06d854da8125861b68432e5f77c06736848a83a93f53aa8abf642b387f4a844e3c067e2f0d081d81055e15c8142944df786f5d69751c", - "1664": "ba337dd2ffb26a06958e0990f30140bfe0a57f8c72bf6afdef91c35b878374f8ba079b8c3cf82ce65b83dd7624baf5537cabe92f06674430b7ddc58db5d887cf", - "1672": "73914e28879abd1ffd28334a06605512a6e648d734c39be98ace9b136d1ae4c4dad8e04a562e015e736b94b8016bff49c6be981ae4e6be8c7cc613a424c39f69", - "1680": "e85263dd5514fea127f78e15a71e4a4080380fc75d4b5c48c9075674e3184d897ef36fc74a417fe69baf397d41eeb034c9b4c3ff7cb061eadcdcec7e671b0a69", - "1688": "c28318180d58ebe6dc4f5011f6a3b2c5ae09717c2090486ba4c99522c590fa2ebcf8ee866fd7e8419d80135e341b8cd9f3d15db3a369e0d18e44528fbb66a60f", - "1696": "cba2b6bba748513f3fd59e5ae78c30cd3b4540d3e3b0ee4145d406f7b37aea4aaa6af50257932d81db565f12c6e1a66cd872f4c33a58eb280895f5ab2a2a74a2", - "1704": "2651af294a2201975b18de774d9391c1d9668dd6c96a7f88333760c21593e7546d3231e017cd26e98a310ba11110507428b597d85fa1f9fc1fd521a8bd988f88", - "1712": "fe3940760e0662c233ca9d080a92c3cc99fb9d15567d1470ad9307100b5a804e9dc69e4870a316c4d3ad60c5f5d41e3f5f4833cf540d6ac2b9b1aab007e39fef", - "1720": "a08aac8cf5da3946a948f41e85a81d6bada75248c33d5bcd17df5a476365f4f8627adb9ee70a6fa70a27517fef5b4757222497f2d31420db614be1f2b1165338", - "1728": "e34a5c6dae6697f12b18c3204ede21420736f0eb5c1e6c0d7152e3e06ce1859fa5d9837f68390f1fa248bcf2862bee8c2945223ee56e58e1358c78b40c07b8e9", - "1736": "79b5d72daf7a7df1ef99e9e672b380d45b1b443ba9d133a6cbfe614d80bd83b8a3ce1af99e532211467c8772ff91fdca1a05c700cbcb3901b24c56952cc98b54", - "1744": "d8a7efb62361691b77c4931e153afa202b89117c15b6329cfdb0db1effdff26378954fa58480b14ba5d8786e0d734623cb0d6602531b93734ff514cd1f50698f", - "1752": "b53366587c09d834be5b452040a40cde452c8a06f859f43630a2b91d65a9421e7d96c4205ec43486e42bf1d48f53b2a6fcb44e368d0ff39e2532837f49ebab0a", - "1760": "314a43a60100afeec53da17942b64ed9da917757569cd5989b81965dabffc1d8405b1f489518257f31d7420ef8f4811ce02559795e036a20ecea73f611830e4c", - "1768": "06be5aac6de6c7c697181cf52b40abc86f2ff59c408efb29cbeb7c2bb06c2f7d90a908cdcecb2843b9c984b7defbb1b9b381427f21979e97ea86cb5590c1f2b1", - "1776": "4a0f1a6da03bb41bff75360f53e47e8a28eeb2d58be959a4df5e4f7802326faf9bab3dfa487aacb63b132ce62b1f4861ff63000fcbe2e5789eb72ee640c7a336", - "1784": "be37c1277dd13a289fdc819775b6501071ae6866d7ed97be5d38d0c83b7c232dcd2db900f664556d7f090536108a989c05abd4440802487fc7a748472b71b1c9", - "1792": "e61dacc0ac19e9b180c80bf84ce82bd080eabe6b25e25a3b125207f5e4ff10f1e87a55b564a601b2ccf64b976e287466c21a787219a10f72c49eef8444f39c07", - "1800": "34e81060a506a289a6392e0408f2062cf846ab2606259c09871428098f6bd9a65761e5ccd52762e88ad47c1957f65a76ff3890c596e59ac4aa22c6ab98473ea5", - "1808": "0d5c2f775ed4330f69f4e59aac43923f8bce243b5547353ec29bdb21acf0a521b0f19ac79baca682f2b1e78f40e5d60c5aa8fb2cbc14ae0a406af2f2e2ebe49f", - "1816": "5d43f3dd0786636334a73958ec8fd61eeff350298b229b2ed020db65297cb17c05da7029a8273f247d00043c111957f08c8d6940b399d573c92c0c810ee444b3", - "1824": "81f9a6ece83a44eec2284b6f5b590a68b69721073aa0f8324d0068d4af2392fd5105cfd7312d68cddae7e96078a5c39e14fa6f38f7097a33872ae4d49dbb13bb", - "1832": "902c0d6b4d4ab02d8ac8942ea4d10b52740c879f970c9fd2381efd7a62d652a6506fa92f08dd2ecf4d06ceadad231094ef7fe7ddceee5a32e754e858c8f75497", - "1840": "32437e2a7ed3f17cc0634441b4d281cbbb174552145345fd1d4c9992b58fc2e7266db3f21b24c377a02c2fdd9f04e615f58ce42a2efb72271f84055354f77e50", - "1848": "6c4f72119149f76abc8707028beeaa8d53b33421cf98f972bc7ca283292855b9d197a1104a1677a484ed3f4fca57aedb31d45905e0f65bf35489b69fa9793bc6", - "1856": "af1415c882bccdd50baad8b9c2df1cbe36e86450c2e267c6bcc0b583556f307b83b987f94139c864a2d02e61e5f09e53a65c85e456938d65a1bfff3fb25041cf", - "1864": "3766f93c45e7f5c2d1cbe4ceee14e4c5097c5cdb0acf8fc9ddfc2b3b9f1e22c63450fcdd3666ec61a4d75163c636e865ab1bf2ee042c0483e4b4874db69a68a6", - "1872": "4c33f2d641ab315d104487f19deb28be20cdc754024fe94e5559d4ff45908a2b83cd274fc8f8fb9dab6384bcb8e2fff16afaba5dd7642e52d26da3dd31acd223", - "1880": "88da7c5b8a6629398559f9fce707ceb5e14cd26f7c59551afc72bed3fbed3c81c4846dfc0bf60375d158a34c25f41b88a1c2f1280712f3b3fb1ffd27fa05de6c", - "1888": "fd53f2cb2acc7c13aea0e6c81ab3645b0d3e878e198a9e331b08bca43410c58a386d697e22c62355a74e9b6f4876322d314842058908995e14f9b30f2e5ed0a4", - "1896": "a79df201f9165978029f0913d202c9d798c434d522afbccf2ecf0dd01669302603014231be754fe57de1f0798e1676ccef1629899e2e4dbc83dfa2ff5f1ac7c2", - "1904": "a1d65c8b1510786502aeeb275ee4c4dfa31b0af8cf298714c4745f380953db14dea965f71044fbb4e343e28ecd4f1bf865e2385cc556bf423a0a388df5da4365", - "1912": "ef4a18a37db271fbe52f5b5cf6f100dc474cb46b71d837be0b568a9a3500f730b1fa5e7f2f6c02db586b19adccd4bc85b785aa7c1236f482b9a995d5b1299812", - "1920": "e9b96b8027b81b79cfbd090bdbc5d38c6ef143ac7ece5a12e9bfdf185c0d45d480ac3113b7e2ee538f9cac90fe112d06790e588cfbbb7a554ad055aa3c9a2cef", - "1928": "13d8e616fec9392773d0fbeb0f1e00c38bbbd46ab89c06c76241bebac03c0b2f9ec3a3dbbd806cf142362d636c696cf42fac60f3a5704611979a7f9e87d1db75", - "1936": "87862a15184b3034018a09b98aadc611966a6cb20817d90fc8ba951f9ab8f3ba566332a9fe4d269b57c8310160be7075d80c3a09f531b72692df2650eadbe6e8", - "1944": "64a475fa0750c6afbe20c65b477a091a5122f80c7cf5a03a72218d24ef8f81f2fb2be9101d32877378191d7191e2a01872750effeb2a118503fb0bfa1ab19ab3", - "1952": "0ed050e5a718fe65cba6911f481b5193694ddb93a2f4d32b97663ba84bdf76c6b88eea0adc015c6c0c153dba9fc00e8a699a63123ec0b6367d0b859e9023535f", - "1960": "37f61410d01b3191bb8184e100ab189fbcbf3adac9847f8098db198b08e626350691dda81304464af64cfbc30149d77ef39d23783ca5157cffb3da679e49988e", - "1968": "d42347660651117cd0b849f8e64e64ca213b0d67b7ee84eb5024eebf77d9db01e1dd551bce664a1b84663e16fb4f466342582bee0ee0dc65a361bbba89c30934", - "1976": "45ddc5971fdd99060dddd4076cf76ac708f54217477422d4ea5f0f04969749c5e3937f7c20bc5279a6d9c7875e4d59ebfab4e1a75d36356d96791ab10f1f0e7b", - "1984": "ccc741aa9793f75698e209769efed32f9fda60e478a5300f5afb5cf2e5c222be92632968071e49d90a5287e4ba07ecd357f35d274e544dac30a2be5edd252a53", - "1992": "4408681c638e2a2c52fda45a00e2721caab3cde33bc1af0436e31e8357c330849eede6627c398bd7cf99554a74abbc1b6dc8570584adde7268ec0973d464c70f", - "2000": "dc85d7730aa63f00d95b303dfa352b6b4fc73a74407576f9959028c697bde6e205247d23f789e76b3a63c31fab487ec9d812b73d6dfa45b6e3bf9a1aebd97aec", - "2008": "995494a29548923ca052e70d09ff5b755892b9221e6707610993142c52ffaad8750b7cca79632d0a17d37b4183c7fad04114d695702983ac1bb0844151f6007a", - "2016": "6378ff2f7e4769b3a5ae12c397ceb51e7585c9d842dd31288114f6fc5ca330ef94782338f87dda19fe9fad0e1e3d961c0f4c312991f094c6c32779c9d3f9b758", - "2024": "8ed4d11ffc65fa5ec0d60a95e909ddf3856fcfe0dae0ff3ac79ede38e2b0fa773bc0a5d485b401d88c7497af0603a5addbd90fa4780b1c63d7be6f9761d5bbc0", - "2032": "3e58f6f70be82b13aa7fa496181bf8d8adf32441c411be2c1e81fd15ef7bc6159ebeb5622595ce246b36cd5ebb2cefb9da0a6e0cc384da52bbb76452a0a2093a", - "2040": "f9eaf9be02ed767289802372d67ab3b19ea9422cad9efa1a420e4b011c123ba906ee1d4852e12914752d648c432ef34a2bb3960574fefc56f96ca76d9f619218" -} diff --git a/pkgs/pow/corpus/jh.json5 b/pkgs/pow/corpus/jh.json5 new file mode 100644 index 00000000..920a9756 --- /dev/null +++ b/pkgs/pow/corpus/jh.json5 @@ -0,0 +1,260 @@ +{ + "nist": [ + "90ecf2f76f9d2c8017d979ad5ab96b87d58fc8fc4b83060f3f900774faa2c8fabe69c5f4ff1ec2b61d6b316941cedee117fb04b1f4c5bc1b919ae841c50eec4f", + "277c93806945992a7f10102f28471af2783fe32003b3f63320810e74f1bc233bf8669ab4b922db9ef13fcdcd4d31193b731eedde98fc87c129c04a4a1071f66f", + "5d80be996ba553a0c68fd539ff3859ced2d1fa627afadde83464a9f67cab6d66a32749b5228482a5f4a11332d62974547cb8ff90eba9ddf03272f873457563f0", + "fd745541f728856a4fe34d53ec2b17a03c9b83c321ea69e708c354198821aafd98ef2062b566308374763a55aa0291f99a42d9cdbe36952ff58d00a689c2e6a9", + "6027c238eb7b1d60b64b72ea11713c52db49fbe9582b6fe9383d0d6f9d120ed85710c2fce6ff2d5a173c5ae7766ed286c0896330df7f308638dab6fc915fc86b", + "e334b2946942583370ce0b840d31752f35de5087f5ab3405872087b496db14c8cdc2c138b3a26a3191d7b9134dd5acf8ebcfea0d2bded060ed3290a4a33fc3fc", + "f30360b24e1a66fe2fab043779a2fc0313069b55ee2d763e7fd125368befa27059acc55b1ae016881df31faed7e758c03d9a77863f98f1290f64cbdea25c0a36", + "5c52ee79194e100c7a75c7f85ec808a1a981a912c56e0689af5d1329d9bafe76e8a12526b83b8c541e86fd59489ce42af304f64596d925c9f5e942a5673e192e", + "11893879dbc8e810d3abba8f38f07895c5b76c038d3bcdbce71edffb803233dd71066a7bad4f4de667c2f4197731dc37736604ebf6825d716c491c8441674e9c", + "c453e7b2de4ffdcc36459db3e0133a8e535b2dde7d94d13974e1122b1376278150921a70578fa9cd2eb532fde947ecd3c5947c579afedf955f37443e4fb85628", + "dc2ac1cd7b21817827fd01bf23bb38979f9541f1220ce16fb59da43ca77ab5c6f4faf69e78ff6b85a995acecf9873ef12dd48c7b9d20b5e439504de7449d70f3", + "c6bebe231a6cd5f49a7b5557567946fbf9c1221f92112cc429e0f223fb54323ddea7b6d326b5e84beb72c4f813036a0036da5ce8df6b135204a4efb4a49b0e03", + "b43cd3a0d7ed1cfc2c555db7823edf4dd6027928e702dd935f76dc4454f15bac86fdb031de899e8226a5489f0da287e7255fe006e7cd280aeebff049e48fcd01", + "835e40f508379bca36f567d7dbb111e2955466a39f8a816b59ba75d84faacbd212ce325651d6db124428e51de6adbd8db331b2a88c93a4876b58975e6ce4da80", + "15f660049688c927b85a9e57cbce4a5553bad5aa7d7e2df17da715558490965012494b44abfe6bd528d6b56541a8cb3c8fa21ecd6ac9834d014a4bb9097ae64a", + "5820186ad15f14c1d74694617bc6ff2a8484b6c61abc224df9dbbb4fd022b3c47e621f0548f40443df8b38dd9c0634c310b7a289cd306f8a995c76880d75d4e2", + "f23649fbccd45292e396893e5c04d98c9f76164fd32371afe72212b706cf7e5f661663826c4e034d69f84b363b1344d3219625c2ca9a3bfb95671017587d1255", + "2ccda24e158131ed4f285f077382e354d98e84ea9895a7ccf88eb7a3990b8e69d3661b96fd845a6f3071791d5e1976f7ef1380ce8ff98a024ed6e1f92c728a15", + "53dac43ed24b8d173ef3def41b9d8863dfd5f0f48c20e41aaf9a18d8a3a0f644fbb67936aa1d62ac8913946b74a4c42ca7326f54f6e643a010e1bd300bedf743", + "5773557ba65fb676320aacd40539c63298dc572ca242c957dcccd1a1658725dfdcbbb9fd504410181238f95b1965a7ff1706de13fce34197152124cdf5a85411", + "6cde03cb40f94765b632004f92e8cf9ecaac88a9ade7cb9dbe239720f6847c7cceb61db1bbec25d314ba4a85442aef23e7086bb9e05d34d66f6e334f132ba1c8", + "7af7cdd077a1a77b0a91de6d3a80b576cbc0acadc8aea7cb20e03f2ee6facdae787da1e4838afc89d810efa234bae3a82b0ccc14ab87a33e713c7b728428975c", + "40d1a295a3b53e236f98ec9bdd050e7a112e6361d884f1470877e3f42326c98e1175725b89d5d2bd8d20de25f34fdcb3de39f5d45bf4ae47dd3f9759401f861c", + "e06989515db2c818d5c40531cf8fe32aa7c7a844894e6e076245bed9cc91a32637fdc412e223ea898aae67741cacfffa00e2bdc8b42b0593522f21f147cbe745", + "a3333ee37a33d9ff11a7833ee9816119eb64aa01dc7aef271a47f539909704efa9d02472421b682d8a2c9bc8380c875c16756e507ccd76122be7ccea5d3a4d0b", + "44c195f05e87530addb0e22d4b3ba7c1c4ea115f694999b7ed4fe944a896ee4c7f4ff084e3c72508bbaad73b696af0c81797538da19488c194ba3d122c1d2554", + "808d15d73ce63b56ffe0881b90d7f0edaeb3f0ffb6545ffce4144033096fd54eca798a84335a9d22ede3e38ae3e4f056e1065fa1de6fec4bcb2221973e7b293c", + "2f3de924f6d3bef9984b139da7cae714dde509d747a21625802ad68939484990fac337c429e1328f91ba08736f4282b21a4612ddac6e1cb0da7f78088fbdfb9c", + "622b50269d36ad846d009cd7af70cb739815956b526843c2a2bee313bb27ab3939a4474b14f7d5959f707e44a695ca506cbabb891588ae81be0a939f14ec2e68", + "0b40beb4fa2592d7ef66c19cc5fe372eb5ecf730bac30be5201120e4c92edebb0350e34cc983aa5f94f0e60edaa7a510d282b87f5604883fb45a6b2b958af57d", + "9ec2e33745d40e3b79cc76682371f7b9264ffd73c82483c1792fb55f2923e9b672809779498ef6da3e4469b43f58e588a923f406d03ee64d505676ec9172d4f3", + "f69d13907bb6453a5582457e4919de099b75e561de956230a34c5905f535232128e5044eee3537fe0945b871be842c91ddf47322d28dd0866426b8e26cf8df77", + "f33d0a4f425b0919e2c7e67a2484cbd8d9adc7a025acffa8dd3b8494b132d24821505eb305259a727e314a085f256d513952d2cfdb68209549d6c27380241e0a", + "ca02d765ecce6f0959e397cd1402d2646f35013ecc4cc8ca4c77e889e2e443a3a0e14a7588ed35b093775d910e2b82e8c576a1ffea60106e132083669479a449", + "b0f57212572e6bbabc2573b23ff1bab3f2e59617a0c34693b65540f4179b77490fd2b897ba6ce3043e66b01001340fde483a7fc6a504cf61e8aed042b90cbf13", + "e418d8c18ec26909cb1f9faecfca8fd61586a9130be876e564792d47c01f106b6286a17edf0534b1a5805a7fd11c7bec83de475839984e0933921455b6eda5d3", + "d6619e8a4d35de79d606e4e63ab4ab082a7c72de3da677fe3a4b28ee955aaf88f835231644733b5eb84eec718010f61ba7ce4bd4bc65d5059b572199a7f6c9e3", + "e6021a69ca5dd965da1bd0deeb5b28597bc1691ceaab55930ed7bc40a978a102708adb8819571e1e91acbd5f3132f2431564e5cb58a7ec6e4767ac3572ad622d", + "47be34e4853a85ab534d380c928f350f22681c46353dfd37328522e979ddf34f3eaf54fd96a721532e1d3c5443cbe08284fd2cce2d035a1bcbfd415213126960", + "ad8644339e949e96f99d40bb8f368278905d3b207ea3f1410ecab795a4690a2ba25a728b1a6d44e5b0e738784b9e0167f96f25f07eebef9dfb4de74dd808784d", + "40f90b4d39d4aa79f82c493fdcb21011e8466764ddb715479cf682ea2185d5abd3710e9545e5a2b1a27c9eb6e71f60241063efb7ac87d380b6248b1d316b0edc", + "c7d290c6556c2bd6bce952271231fbcb164988c7c57f4e7738c588e68949611fa7996f708cb52bcaf146bdb876164e53aef9ec339bb356d21033ac4d9c0dd828", + "5c8f2663230411e434ef2390fa3750a11c7cc26361f41013fd73c998a76356cac67f15a373e59de4687ef9606858741115292990150488957dbe4972826bb917", + "1b8006756c278262bbe01bb865ebe3ab853ecf80efe1c203b599bbcaf0e6cd0365dec6a8245d8b6461c198fba9ee3dcc4553ad4d7f460d5adbec2408881c6028", + "b260b7bdf1979b61aee5688fbd21f219e8d622350643c058cacf0a743b5e87e2f73ad33ced61792572725365c0892c37da138adb01c29ffeca8e261632876559", + "d0299a1c2731571d94c829e3644d3c048e74dec78ab8b44740e29cf60416500df15e03cad775181739979348b8f0cac95211e8b53bc128d184e4524d37e87199", + "0299c222d2f977801453c16cdd166284d736692ca3d0dfd909ce8d6979f433d6d67c4f0467a2f410a7f7b3fcd1e6555a980b47b290ecb75a95eac10c043fb6f4", + "38029e274ceeaa89e53e50254c331f18c483cd1f3f69a0a9379d80a39ba2bc5c6374d7211ef8b053528f07a1de47bfcc7a18c752e6e7d99f06a64e77773f1760", + "4e91392daeee58c42daf9d05cc001cf06efe8911ca3a12f90d091821bae4f29a72ac84113bf7421fe493dda4de34e1166b2de05761660ee38118e01c3d37101d", + "576a02797d4c386f01233c9a83b48ffe7b282ba377bab3ad30358a040d646b3fe02ca83618a5a82a4554e97b0fd30671b22a399fac16cebcbd973fe31b2ac1da", + "62fcf27c1183249c8cc74cd18c87dcc1aaa4b6c5eb3b393cef15538741bf6630f6095274e275e0c3847d75f4b6e657175b16ef9e4a063089f15c7a07582d015c", + "64570c4aa1dc3b24c9e65068c937f2a83b644fa164a40d7f3c396b9877718a9caf5e62044a38a41449f38c2cc0dd9424828e8275a17b9faed97ff664aefaab01", + "325b3bea25b595d1d8a1446423e8fc354c05ed5b7002a8d41da19d92e935e36af7ac49c16325cb0741e887898ab1c06bd2a0b1f983e67e095f9eedef819b42c7", + "9f7cf41aaa6d8e15c4c86250d9341b7addebc5b146463b22f5b19143395bafa2f13854af17a472817a9ecc2dc1e3d45820778d3c549e6c4ab1f08d11d83bcd46", + "c9dc282f213a5c0faeb7ee83bd4f2c52f3f0d9c5e7cc2702d6ac8ee229f588de18d463cb2c45420add250bb667f09e435e7515f8bebd0b80c99ed1bdf7429bf0", + "dd2d76998b7048d63f4c23070de09e216a446fbbfcdefa6e6b7504e35efe470b6b919b023efffcd169f7e953b62e51709e1c88f1e9cfbead1500ab099d06fae7", + "5b0d347113a9862cac078d6eea684f50f049260741cbf8063eb78347d5222fddc0b81f563a489093d75fe10229ee0444f5863e8ea0503ec68da600cd82bfdabf", + "a5a070a1956a29a07acce706233779e43a39ba0eac60db230cfb45a1c16f1a2f48732f4ec4a8f05480dc313de2f1f9c2801486c813d7fcd09df4afc8e33127bf", + "3c75371b6317c6516b6b8831b66e2d9994a2fb5ca40740d5fa44c12b68b338c2882b6eda59b28c99fca54e23679ba13d803bb34d2d9127f46a30162bfe6607a6", + "55c56d004437d4e42dc2a63e5e3bfff90623e1ce1d659f056b2cb2098514baf287a0a5b091c5c7a88d26516dbf5b87c1fa1671377d3b1b9aac651c171d463672", + "c6fa19e3659ed4b3a83c50e94f3d3f8593eb2929343fb1cddcac821de550735b9ff6f5c9f38e1af30c87fb4a8cdc12415c705b2fd5ccf25b84677a2d8e4bb90f", + "6bb95c831f2e43ca3d1bf10fef2b65e37ca4696947fc2d1b664706235f6197acd450cb5de86ac47b41edd74dcb474e243d4ffd19ecf9efdf570b298c9b02826b", + "ef4320ecbf2ffc7cb71dcc889824aa1a68cce65c6e69ff63a5bb4f9e0366dbf71f73476d5fd89ec83eaf1addfe40dcc6132bf2f8a7efdb904c2899c7c17c3548", + "197514abfb2c85c94566b72beeb9b95f6a4fb2d19306579f1e64241c4751b3df09a04dc77d7cb19d38baba36d23d73438a7c92bcbace65fad3586f9b7621205a", + "d1dbacb16c6a88bea992cd34f92d1375f05215037cf989e155d324d6d1e4204320cf18c1ad6bf11019cdd112bac3c7cb73e41a94254b8c5af3db8245318ffc70", + "726a9b558ee790de5f0f9b7f6a06c163c1f2352f2a5a61e4316e5a17174be886d9b0d0e194cc05eca1708e4e1f42749ac279ccf42d97a86b917141357bce8db3", + "fb26d1fff6bf790b4db1bd26deb1391a2263119246917a2a5ef8fcc3c74a2ae68856dcabc7a93795613422d71c13defb7fda0ffc49bca6d491b80a8ae3e0ad26", + "557d095ae9f69752d1b38d5632355a6e5dde4abd718b7d89d33578bdf69f0fa630e83c403b782c086ae849966adecf647148d84538b363450cda65dcb94f8878", + "150deae20c89949d9101a4d64fa5df890fc3319ce232527bbb946cf0a05799f86e770910b1cc4d2b8e77b384c34aaece276654086007bee9829f315997bc820c", + "646d27378f9e5654867b6550a80616f50ad43eff50156bd94bd78be545851fe57ca2ed9a27c7663f7cc029f2b742953c4afa8448a04047f121a26b03392000a5", + "9a80ea1d6aa97286dbe15a4ab5573d342992dd481218b2efff2a0f65f672a2f88483a75ef57595f1cc5888396f7ed0da51d1e52722dff84cc9501bbbd3ace1cc", + "6b225aa75d47a8517214870698da70497a565e470e61c7f6659f61e735b464092160a73424d525bbf34afa2791c1999e700f1f1b8325fd6cf99c143d338bf3ac", + "602d3ec56c8c44f4823ab254b9f18f6a126ad96d79e618dbfb1532117d49d92fe3319c222d945a9a18b841844efa40e4465f2bcb12843a0fb40f43a17b10a19a", + "ad3db83586aebbb3809cb360de9ffdf220a9c217d0b96cfc8911cf8277bb103d1a0e46b29941f350ff02522cd7045dfb2961c2b95b75ca7a63c9bc85240f9392", + "992263f397e926291d8487a0d6e67564347c2afeb8960933fccab02d30d56c163363dd70156e9dcdf5a372dd7cc986a8cb74a49c3d94439f4e427a4e0aaf5cbb", + "36748f39dd77ddc825647cd87b20e23ddf0fee37b7892c7b3432af7154fbde206efaa734a70d918d79c753c53af84064c683ebd515f2e2f8666579d6969d3e42", + "d445edde07107b9b56ae99889cbf551c76afba598b0f042af0ea38a25cf88c16a1f7e4d2fb8c38c0b523f3e6ef6a3f9dc8cec8107661d26c6ddb71632b0dbffd", + "b535eb675926d047a0d3bd4804c3cc014ba38d194740a8c31a99a22b76b5aa49e6f2be9255aa8f06ccde453c97329d90eb28ff4aa3d50a6ac9bab2bd9be759a5", + "42dde1c53a78097514042b16e4e09dc3b6af21069e10fd8ca41c366fd900d2814ee9ae9ae0532be286a9bdb558690a5f5152f4f1d2053150dbb6660e6117a832", + "74637f653653d33352c9972415bd9a0622090bdefe7df762f3bb69d611c7de5f0e509b5a3d51874558c1cbfbd5e282acaeac3edf3f6452271711ec4bf8f1a90e", + "f61a8b9d8e7bc97f08bef2ea34acd5f9d849620cd11cfdc29b56efbf8d1b55e12bb0be2b3a63f38c68694766a174f0366ebcb00031612186ba7f33bd427aee4b", + "5a1591975efffd3ec1437de6f169d4512208a134a039fb146ddcbb21d16ae282753044a12d243a4eeb25a22b87ee3728102df6696b2e4ff8d6ea10f40ce320c0", + "7601a61cb1b975d04143499c875ae97bf19c3388560661ec64f2d3c619d9c092c372fccd14f002f87da9a71f064b4705caba72bbe8ccbe7aea9226face0ef389", + "2564721e403c3cca58511c4ae6fc6dac89e41624c69fd4672264f779f916492a76de1ace1b1f32c091cd221201bdfc53a9f8a03f86ca64b08c411e4973609067", + "d54388a47150ccf8453597a32d6e7ecf641feccbb5f2e053e333ffba3602245dd8efb88785ee12bb5b23ad9501b522e0af46d13648f188f4229596b10a734be5", + "be18330d113fd669380abcb3c1c9f531e2245214a686cdd319dfd39c43356c9f71c136c8d6e8d31767d655ed6804dafbd1c0a7c89d1b407ca6610b7299ee565a", + "efe5c37175d16148adf7feeabd63f8382c5d559fbeff07dccde749dd482bd05aa77a3a94e397c2170e743e19649671154ffe1a4ae43e439612425ad50b2df266", + "f2586ec9ec36adb0407ccfeaaad07d7a348a70e68c1f3519c910f226130e4d8863c0be0aeeb0c60a1a492132a902f78664d0b97cee9b90ff5672879d5eec60e0", + "c9492269ad84ae3c8bb4d1c2424e26123ff24f1086355a2b4e3bef80281d8f28b40972efad322a6b5474bc3411965fd7d8c72c35e5db47304e6e5e906dfb4f7d", + "e86e8f1f51a4cf7a20f22a486ecd9f2071bca879d84fedb432adc2cba2b98599145957c457e86a1e61908333206269044c04cd48dcb8845d44cfe2a014d5d4d6", + "4aac7c0e7ec5a3a66257a71bbe227224ae69a2f3da12c5ae4cd02e7c903ae817804c4e9ab8f4555e18d5b621b151245046fa94b6df1d3e38e7724efa94c36c9e", + "5caa23dce9f4ca5ab81d77406b9690c6d3b7ecf9f60479a1a0c4a5cd27a66371f5de73367f873b7e17d1bd7a784ffaa6eff2e5e56bd26fd0389aa79858442964", + "5132a037b5c746aa1fa90dd53c98493f35260d6f708d30faecda7b08c4985a02f8ad1f961d35cccd8edc455a97c587ebf45f4ef2cccd6f393b6a50967a5edf12", + "1fdb0c3b2d0fa22be33305c21cc445257aed4cf51be76d7a88863954e67f113fd0cdd718bd0520c0baaf40b9b68f3866a4df94017efc469f7391d56eeec21cce", + "e46ede17fd6541b1402588253a2e399bb516fdcd3dc08e3653c24b968d8c7b3b474f544aa4dfe5a3d2a46cf1b9b5c9709746d35585a9286b3c0553a0b46251c2", + "1537049b2494323b9ae239b804fd76d6a77db973a8592d570658d68deb9c0295d5ebe5e3d6790696208795c00a51055b904cfda0879630ae4b91e3bda298ba89", + "7eca01ed545ebafdf9faaaa769975c18d4219124d47c2b97cc60db9b29ce13ce0db0eecb83efabd3c4118200812c6e140a1b831b78666a5227cbe155ca561f20", + "b249173945abb9a8d5878918f73cc156ee504c1ae780e6a65532c3a9a3ccf60a2d27e39cd5997d1779485fa5ef87d05cbfd9633e0902496e2a3b44033bb1ea0e", + "681f9517a864ca65e5ac3a176628274239846f4539bd354705dccfb154f9317ad6a2c7677de8507a54ad6e1449a893a1f61cb1a5ee8216703cb94ea793217008", + "460b59a081905db18eb4d49de6ca029c8382936fcb965c2080a61690a65c18ccbce879a3c2766444910d32c50935c1055deceb96a065ba7a37f7f4e31877bfa9", + "e7e98123c05700a8eeb27133f3718ff6b8beaa646de97614f36a90546aea803b9eba7ee5f9d72ba7ebc752a5536db9331ccbac06165017681bf4ea49dcf7eecb", + "d601e7ed24d96e6b96dc1ba6496dc3964dfa26ba68007db7aa697ffb0d09167c50c0a0a04e4360cf9831d5c82e09c1e18b192ad8a63dd34c1ac3b6643697d852", + "a9f1b7924dbf1d6a19dff841ef27dfae293174b2cb9ba9202f748564cbba64292554c43da7ac067b71e6da21129c12ec85f169759a78183b312bcfc73146d275", + "31fcce153a39bea3cca411018459ec5ae795ea003ff7ccbd5f7952c85d498423f31894d18a46a095d4b3c7a1226c5619a45a4ed1b8b53802ddb5cab09aebd96a", + "d031021f813a0b88180af1a6f8bafd82d1995776987865185fa266f86ca2c51efb9ba6b142b80c3a784bef41034adaf052ebf23a2248b1f5abb551d0d5ce9d05", + "b4328ae6af8bdfedea1180435c9ff424b2beaa119a616325d50238aed80736db4f646ce0eee044ed3eeca03d0cbc2bd98be7c527915939e272d754964c1b6164", + "6c20170716a067a0989fd4602139cedb24460aca9449da363f142d3b09077546b2365300ffae368c94de26ac9e9ea04a88e2908b2d4cfb69838c805df2d8ee2d", + "23ffe6204410fb4bda4f832c7ab57737ae884ab0416d6dd1a819ab8eb1b8eb16ae658582593fd6afffe00dad4c15bd4d35c9d06e31a4b35d78932a03b8174cf6", + "c0b79c3e9ba1ce631b0e4519761853ceddce269381b47de7fdc94e9220635b8606ea7f20415b0892e41e70f396305013348c2bab62619915cb848aefd992e180", + "1b803fd71a338427abaaf28ac105b76ef704787c7b338dd4d61ef546279c48ea6f2e0e17605792ecd93aac86c0a67c6f3fe97ca51958420e3dcb876c3847f151", + "7024ff7522631096e884311c7ae126668cc1ab1f3b87ac592ada76bf475d31548f4221d6051ac24494a553f4a621e68cee500568246d3d8c3faaf5d911e62300", + "9c7288ed5156d330df00b7189f0fd32ca6e2203abe1877d6cbe13b0c1b2dff593a7cad6bf0af0b1ff6eab035d611e0edfac74fec014b6a7f68a4fffc6aeb7c72", + "97873a28cdf97bd5438463b82ea80412728db35c53322bcf42b597d0775fe0c48c1a9703b2b5c2f9fdd096b5167efef5f221b9e04b4f7c49defa5b0fce9cc79d", + "147f2e0a84e2ee268a102a1e0b673de4159ac9f187e4430d822f705e6087bcc825d925d81688ffaa1cb901160f2989a0faf7d3cb3021c29a15ba187c9c5f451b", + "48072bb7049e8ed8ab019e0f27fced0a47a95e83847e9844b81f0442e0e5ef2a8b0574f7d3c46369afec691fefd36f949c0273397edb5fe64ba6d38f8883e1ce", + "cd62089e25b42422c0b13a8dc98e8c729d67d384ca52f39490b0281c0ba14dbbfe3fe9d981fc909e899422128fca19b3b29989f9c6ebee164fa41c92fb14baaf", + "e56b76ac9fba361b4cc7f16c6b56a7399019a70cc58a1d25a5b26a45a9a0953fb1d2eb796931a15745d75ff95577d0c8fcaa17e3d8d3c752229675d0ef0e6dfe", + "c7f96200c190efc615f41d8a8277d0f4775d9f073e87b60f1db9ef7945d8082c324a7d1aa313f739cc9b78f099f1e2dfd0e2e319661e1b8d732843f14a813efd", + "dda0bf503301c207aae5316d91ce78daa970c720eea6c2ed4abaf40070a034a4a8a49f669e3c80826ca8cdb084f762500c26bb7a782f772998fd13f0bdad5dc3", + "c32802d79a3d03199b35490de200f143aadf2e5816c32f56f0a0b8fc225b6b248d4d3868ba25daac331a40dc1fa8fbd5280e92037c2837e8d28dd23c9eeab151", + "2fb80ec16c5cc73b4b85c7621ef5f3f5e7a4474f795a0e673dc0d268f3cfd6153f0822890d591f399d04baf4760de1cc6802e934d7feb15bc3e2e48ee443f010", + "895f5a0c49ba94353d60407b3149a7a26117028cf45cc5f1ce36bac76affbea62dfc61e88e1a3ae3b5b8f550bd0b10b9c696f813abf7f7a0666ca3c4d60b6349", + "1419d3771bf8d3937ad995757c0c549e29dc10f9f06acff3f3cf0cc86e3051d3f7c65ffd21c1ee068178a24b410515a1e359f106128ca529c0960e8a821e6679", + "595ad0d32a95a6f7b6e62cf916573bbcedce2c6f64b6ce1cec9b36ebdd98f87d33411a87cd5d8eef42402e1d6aa6a2624d55b1a5ef5dd7cfdd0e9b28c3a561f4", + "69fa01aa1c4484ac028e3204e4d2f2bfe1258c83da09b435d0a5df07f9f9d5ac15f898ada055a33e8f498252732be97390ab3731321fec84341634f9e2b0e0bc", + "87c90e04895b2fb8704632f32fe2e113a3950b41f2be837d26a718accdaef409f8777d1bb42a99df7a76155f64ac8c74071f2f35a6d581c515a647ebcc48679e", + "4214fea481c5adec4517763e1f5763bcaa7ba6e54658cda725846b90c5c7adfb5fa3a3abe5e5a4686e3b8590e511e53fa1bf3bf1cb443f08b7b0a569a6190223", + "72c91078e9237b996f7ddc0936a4e69ba28c37fff2d11061601cf04915ff5dec31e530a3aefa09141fc9061b3baf2fb2ee7a841d5350b16dbe63ed50897fa2f7", + "9ec6669f30f482a65d93fe7811923b6bdf3a1bde032502e0b1a064c9d893c03507576fc4fbc745d458c1402ba76f7d4c4539c4dfed7c058596fa270416865162", + "f07daf4903af6f58306ae9bd480ab4cf1abdd6ae9f3be176fc6e52367b142b3f7546f2bff486404c5fc303014cf93ef4681541b22f3cb809d1eecb0ff09e72e8", + "bdba52b4cee3aaec9780c80f7ccd9c7856f57f8b780a7827bcdc9fdf37685bc9d18bd33db1b5aafaf9a8553a2fbce972532020ed274798f975f82e4bca67984b", + "970ba3caf5f2afae99b7f430f2a349808d8ee378874cbd3826b8569f24cf13cc043e94a1a7075db1f9363d3943971919370dc834d8cdc4ce92a36a1db58e8149", + "c3b26c2d811cf8a2a3b4d979d1e8b82921ce410ce968bdfe64f8120bce19522e0a0f8deabc1a080ea74d9b631ae7c21c4520550b8dd2e39b61a8b3effcd29ee7", + "3d493c5bbdbe78d61a4b4f9c6867ab6505e37e28d2fabe242748a47a9474587e401687ec5bf0a9801180b5f2aaf5fb79c4951dc83eb74344cf582bfd22abfe5e", + "abc78064f5fc2c59a68061acf3b6a7476e3ff27d8e6a475729e8f7612eb6036397e7c0a35e14c9060434664fb3539f816210d431216f67a83f7c924388b27b8f", + "46c54e86d4722927e17aac3ab6ae7a8350c6025a9ec067f3b75dd5227dd4f25f6c525a0dc7b817cfa752d36422af1ebaf00a0fa50a272c30dfc73267c129e80a", + "e99d612c7a8293d8ba444e37bfdf80765fb9cc499a25a76469462c858498ce0e2b820b630a92816c988c82b308758036b36fd7d17e3be303cf3f0f5e2f014d57", + "5bc8ce97b23cf0127be69d3b6bd3680749ccedbe7e3cd40fa525cd6751de1f3fab595a1e9135bad2c02daab432e60849a135e46997d9e23db47866a1a9f33659", + "9c6cbf896f8f8fd8df827ddfc6b49ed71fe3c5301be23516fa46ef6e12a50a1d6b40233b0ac356e636cb9f463541f07545e6192936934ec07e1a664ff8d629cb", + "d154ee426da1c9d584550c2d949ff5a5329878d683480ab432920af733307117874a53362d1faf0f0d3e3ed76131d3e8cafe4fd1f7507ee4501e38c4fa09ccdd", + "7df68830de75dd31437b6d50deb04dcb4b9ae2325378e2c758199e413808485a5a85867509af91b722d948a700f10c587c18883ea44fd63befe6ff23401c4fb1", + "f837acfa02158f5c822f4d340f190e5571950f6b3a8b921567ac535ed0fde7537749e7d925b9792f672ef3b39ac6b8247b6aba17b708720fb3fc2d56e7c86786", + "053f4433059c73483084c980175168f64c6047cbcefb90f12bf99534e53e8bf2dc308d3acafaff612f9e697e3572fd58173b4037e714ab94fd294488080916df", + "a156dbc4bcf9cf9ba37923f7b05760f0d58a547708e0e45f54fefbb83756aa87469cdbe72d153945035c8264b863975187eca3088a1ffedf0f03762e0fa444d8", + "2177cd920d7dc270e3d9b49e7006f42e1b86020868610730a450d2a5d45fe32776a1efed3a557ac6423bb6ea6d2869ba9ca5b3570f80d2e7f0492cab4423a388", + "b15b9a67d242b97c680b7cfeb07ab21172cd603e4129e15447f6483bf95edcad6b63da2ad4923f85952bd88b919204bf7ffb81a1b0026ae95651e09bff6944e6", + "6276a468ee98b2c8f625f766637760961824b28c731d2f84d2e1728053a507736f2cc91f5c4895839a3b67993db02fdcf9097de46798c350bcdbf84d15840cb2", + "c446ac82fba83f84f736e37ac93759ad59175bc10b51edeb634b2c29fa4b9b3f4d3d3fd0f037adaa27b97e84c83c077e5f40e9d9cd57b93099d4d0bd4d9b2992", + "e33f2ebf7fbc09d3c3a859af9587da4d9140cf7abf5dc6393d84ec1851d725d034c8944f905036cbb88f2b4db6737161530e59a240bf3e095ef0681f924a9f54", + "dca9e15c65d85d62d611a46b8fa9c162042b08b5939e49483bab0c7dfb4a847d202416b73669e6759481ae499b002a5bcda6ae1736dfce8ded28f8cba88cdc86", + "3a82ecc1394087b91409ac7a03d0e1f44ab833163240fd71219067ca3103d3c8bfee73af05351fdef2806ef943b4c50a98dcbf993584f4c520b3517e914bf0cf", + "ce57151b9040c1bfbf22ab59c8a763aecbc2cd839997665592b9bd442fa29db67f110e2fbc8c00889acca7202e5d23a1948b41c17e1e195cdea0bfb7946e42e9", + "b9a61027a96f3d7fed61812898802ef4b62c893d5e6ab6e22f8530b4d05b53acf1129d91557dc5d9554f431ebf738826dee5434b0913ec201d1d3a6bbc499d6c", + "e2cf96f9b82daf64cb1fe771e0f4755640de0a94dd4f61627c2a125a752b6df6740cce444f5097cddd6c8c5f531d124889d8c4988a34bd5f683d3584169ff810", + "a920bc6b0322405bb7e45a1243184c71948f19fb2cd5882776bbeaf31e26f940f2337c820827f8ff431f2f696bd2e307e231b340a7e3452e3ba738e1e39692f3", + "a8e9a6c9fe4b952a9625898b465a875d48ca58e4fc0f150bedb24d0173211ae19093fc47ac5cda740235af35290bd960d983dc2c597f5dfc2d13876d1ca6779f", + "6efd02f52f091cae1b47e9a962b2b3ceb8f3868fbd0ade2d09c16b3b63a2eac34b137b49bc311b62ee8238b32866de28f1834e56cb625cbf094f61fc29ea5b26", + "1289ad6cf026ada0cd08677c157007237233a673e66c379f4e025a01bbb4627e21307778da6976f8c42cd5b95dc2d23b1b88fe826939b50c80e65a3d2d014800", + "e8bf0daae31f79ba2f0988f5f8ce4b3cfe5bb613da398d9dbde59a9b9f439e9967f8aaace64ffd57fe51b53a4370aca84344a4172c0611ab2889311a64b1a295", + "47700529d81d7c92b27af51924cb18817aa662b6dc4401c780e622fa69f73566e0df22a04e7da34227691e86764f10bd69d37821472c7b557ffc2d2888725ae3", + "1ec36f413f6dac894f5dbb14a6f69f131931618f38716945a07f1fe15faa27754c81a49c07027cf5213d2179aeacfdb27816921937b0db6a063f7ad05165f234", + "e9cb5252083270ccd5c8d068e07142b45910b457c99fc0542a14266c67f39136ddc8e114185b5e171b6056f7f7817707dbbbe1aadc98da1234c571589ae2e018", + "24a8b3c80c4cc5ed187fbfeb364f80c5dd35c3b845dd539567bcda3cb6b3681e12bdb04a2d3116d3dcfdab34b3c4a13b64274d67213335e198564c3bcfd50105", + "4881a47d4bfacedd5f2b8a89cdd4e6dcec2e691c22569e5503177c4700ab8d03202f4e2a4c1afa0e4a8e00ec961a0baca4310ecb766dc8d994f84af47010405b", + "2cabe4f00393222bb1996ba57f80defa5f611e9aad2dfe3d9851699468360287ea7e142133fa5f00f3c4b097f7402ef8f29de9fd7f69554505427994469a648c", + "79a598d31304ec817333f1affba8a2c86f93543bcad86c9a0d80d0670819deebea241fe7926c2a4637339399dcc9a690f1983fe0fcf83008c3eff6fa9eaf4a92", + "21d02b3def70a19d9c25df5d1b3fd02029129d182817cbcd2eede1d32d9f3ebbad8ea42a7e3bdcbc79f87de3b6fc23fb3400e289ee3f482bc3e82396072549e7", + "cae5dc2dde35316dd47cc5b3466d10f6fdef460981c62d5d6621690edfefb8acf23314f82740df021c7dfdab7e6a0f7d20ed2028562a2149c24912e0880e8c10", + "978f48684401e63c5717124dc9db41ab86ddaaaf6240eba6abfb70b71f48476f0bfc7a43dbfcc411ce89d9f4284c8ed22a6626fd0405641961d15f18dcfc742c", + "156fdb4529e3ad0951c1af5495e64ef8005b50da4624a3b0f3848e9ab6aae76ced8083b11a0b1acffb61cc79b2e073e31adfee1c98cb285a40b0d65592a14754", + "da087362c0533d9024e8b6d8e52f99b1320266244b8666ab5ff563e37d53502850c71548f30ef267959856da9e3f79aec05978032636c5e8428b0b45a95c4a42", + "89154a910209bf0a3056d591e1d3642042cdebac2d42c9f180a13c82aed11f425621522f23dec3ebf8dbaa95b4e3e9860959f2ab66652085a72f76ff3914f2fa", + "c621ccd703e2bdd039eab00e121cacc7c3549e06757dbaa4a57410d26c8a2f1ecd7ab0d4cba1b23b87cc004ecf31ba92f96011f33b812942822139c96a63d306", + "c4196cbfa57bff0d2c4da3c5f22bdca8c9b2dc10de2f1f4227be71241d14edffe9741fb71283079c25caa6a58c58a199e4ab0736cc4c51c463ff8e831f9a00c4", + "62344314dacc9c253ace5a7be1b11917dcf01b810d2e199dd56ca64318b09cde23850d5c5bcc44b7b0eccc24ad9dd98d9f2f3d40c8912e0b53f92f6bc5638cd8", + "11d2fdc0724a4a792b7002f2feb036064296b3426ff6dfc4f9042b814862c0f30e43aaea4a471dbe2f62d7b87e3d5ea047004e9cc097694ce067cb4d1a6f1479", + "246b1b99762fb65d86d5cc2578a2d30de1bd8cce8feff1d7608e66a81a6cc5dd070b67c6120b9f41cfe3afc88885461e5cdd90ff05b41df0f60d7cc96969c093", + "dde71c9cf3547c506182f3eeedf44356fa92d60f7688146f0353c36507f8f49ca33fa059e48be62ae67f69527d0f88426762b0607bf8538dc7f29dac417a987b", + "ffb85f34573593b4b748bfb58d321e252c7ca9654d9e47bd729139d02403d4d55889a7fa1759b7aa4dd73f59f818cb9b7058d074717e200efdb6d8efc916cb34", + "8785102f470232625f1029449f4c0e0aa75c5f0a9e5e48cc778ecf52625bb3117281d051587d6d190d7b91c447bf1832785564441d11d8d6c79f0eb2437cdc5c", + "9ce0d072797296853c4951e9a25c53f824ecaf81ea2393b33a06ed002ce912b18838cc47a123735fd62ba8deed7c420547de003d4d9a0d0e189f87258edb3faf", + "a025f3fe15cdcda298601e92149be2eb13b937e0d7332f51edde88179206bbd23d039467d1e41acfe4381210e7b46c72e17a0f0728f6045b45578ead52fb0195", + "acbd0ecd7f491aadd77079d31d4e5238ef256e3f9352b1b09f3489e233e3b7240b0cf27d0eb11805f708bffef559b1e544f1017d8e571f13dc4118e71449608e", + "c9a07ef3c8a0c47eb55c9587563c8a5b558707e0668ffbce70449f035ca01c1f505675c8d25a7eca951ab4ede2a824e13a0b7573ea8ebec6757517edd48f9466", + "229c7fde92213026f8738f4b59f0f52369680ecf8efec167c5bf7b3a12d3ae7dbc7993ce13d169e7196e63870e34a3245996f8cc6866e42b25e97e89764e6682", + "d042a9f805da9ca746d8d9f7ed03a5c6d90e427eca12959d056f803dfb9f5b8de27326b35604b47684d489189b8b65ec1ea13b79adc4e2ba939101e2bdf61509", + "214be6b127ae85053f066f1ca1e2b2edfded1da498c5e43379f3eebf62c3933b59e1b5cc5b3700ecc792f45a4dd7d06c4b04181e044982cef2003ec62e9c7051", + "6b5768b1959333104fccaed593bd34d8dd058dfa5cba9655d3b63e95c07b9745996f3831706b62cd5d2b8257736d94c7048ad02ce0e00cd90134716bad6167f6", + "900bfb2cc3a1757f6e03cd597cba905c714eb3623a5fff78371cd1b9eb442d2f6329b0a368d7959c27c0dec720294fb3d410ed8ceed4b8a2f5b8cf92935cb523", + "1c89b4206845e084fbf40162b97c584460fa1a65d296d0ce034b125678ce5556a00e96cd2c7d0c535c2547b317e330a1238d0ecf8f00d2b534651b6045fde686", + "9310676bb310571fdab1694d9dde07e67947164869dd69afa20085bf1d227e3952a857a5273db969a95e49127282974d75ba6c088507fdf1582f7ddb890af1e7", + "2d01b2897324f7d1d245e9d1123b1bd908d144cf935b8d2e00a3291efbef1a17b21108015c22dea02949bc4db1bfa4f42afd3c9538baed06c01451a59bff8624", + "e209fd816bc9aa133ebb7ac6b2df0b1997adf23c8d79a4cfcd63944e09ca982357a5efa687ea21d913a31c520516e5f0c373a17040ea86f6d66aab17322792db", + "03d73a23a593f09b3b9e169cb9c9fd8a19878d50f015177abbf2f26778b526792dd96d6ffe3f5e7694f4757f4d607e48f924e6b184f5ef081956b8ea4fda2927", + "839c6f2dcab0d98727c37c0ed9b989523cb3d06819b005ee583794ae497a668d36f807203e23c6a3a4f380712fda8498423eddd14d6ed862a2985017c1f1c9ca", + "bcf744e1332eea61625e08ab0476e29988726cee4088418453d24c3f0ca475167e786e1e2e1f0096b6c528e67e31c350d742797dd02736cc061b7c2c0d799812", + "89a45a3bb24bb088dc0d3a3b9501faec4a187bdf751d6262f995d6fcc9f43f739c8c61b7586aa2c271408f61d0a814387183255b76cc3b4e0d74500216a689e8", + "05198244c8d54c705dda95d26c9c275c048d1e9d4366516c1214ccfd00b034a621190401eb2176162a450214078166356158ffc77aa35d00920b3337423c0367", + "ee19c5e009f81fbdf5af2db03c3512f596c56188e1427d742608a32c3e8834c3e0beb9bfc0dd95412b80363cb3178f502953be50777f5995b5a1e0c39ecd620c", + "bd8e2eb9662f50b74e7e37ff72eaa430358c89c2d67b599f92e1e460c4d5989b0948653c6f0c0edcd9976990fb56766d87b6ac9e01380cdcec87bcb9b9019174", + "598b79981ec49e93c1bfa7af343d3c5b18c798200e4f774ddfca64dfd17c0dff5038710d51fc1777f89541a454f967688cbab1eaf498993821493022025420f4", + "9cbd3e9e73a05e974588b3230e63900cb99c2f45de0a214aa9850b4e555ee9a4b4343e34efd63f14170c810354e9f63e52ae300434c8727f9d3a75756974cfc0", + "8a15803f5b64bea1a4ed31ed78d53a3dcbb87b2e8c5b6b468728c42bf652c81cb9a8139072108491336ee15625a6370443e0ff3d78291ea446214a1ce089ab76", + "9985189feb7759e35a687fd88ca28f84485de5c85c57078a315d30136aa60215af030b044263e9eab11ecbb020ccabe1cade432fc1efefb4fdfc44066d7fe03a", + "004e06b91c32faf90398e7bed9526cb908cdb34fde769b212373a149d8d98e7d4a9fc7f4b0cc62f674fcc2c9e1d2f621e3488cf13d4f861c0cf15d6127eea783", + "a2f19762a102fb0805dcaf0c6183c410ee77522127eec836ae80b6ef4ffef5481b9cb859b70cc065033c3bc9e1c5636521ebe110f7e9dfffdf5cd3cd044f5a36", + "cf072a8ba6821d26e91bad7bc45abc3f635a301c64d3d085d456a7dbeaa2fb26d5767363ce889a36c88b35b34862ccc45f03ce4d58a132130ce0372bdbb12086", + "f954ce84933c5aaf5c7b06d854da8125861b68432e5f77c06736848a83a93f53aa8abf642b387f4a844e3c067e2f0d081d81055e15c8142944df786f5d69751c", + "ba337dd2ffb26a06958e0990f30140bfe0a57f8c72bf6afdef91c35b878374f8ba079b8c3cf82ce65b83dd7624baf5537cabe92f06674430b7ddc58db5d887cf", + "73914e28879abd1ffd28334a06605512a6e648d734c39be98ace9b136d1ae4c4dad8e04a562e015e736b94b8016bff49c6be981ae4e6be8c7cc613a424c39f69", + "e85263dd5514fea127f78e15a71e4a4080380fc75d4b5c48c9075674e3184d897ef36fc74a417fe69baf397d41eeb034c9b4c3ff7cb061eadcdcec7e671b0a69", + "c28318180d58ebe6dc4f5011f6a3b2c5ae09717c2090486ba4c99522c590fa2ebcf8ee866fd7e8419d80135e341b8cd9f3d15db3a369e0d18e44528fbb66a60f", + "cba2b6bba748513f3fd59e5ae78c30cd3b4540d3e3b0ee4145d406f7b37aea4aaa6af50257932d81db565f12c6e1a66cd872f4c33a58eb280895f5ab2a2a74a2", + "2651af294a2201975b18de774d9391c1d9668dd6c96a7f88333760c21593e7546d3231e017cd26e98a310ba11110507428b597d85fa1f9fc1fd521a8bd988f88", + "fe3940760e0662c233ca9d080a92c3cc99fb9d15567d1470ad9307100b5a804e9dc69e4870a316c4d3ad60c5f5d41e3f5f4833cf540d6ac2b9b1aab007e39fef", + "a08aac8cf5da3946a948f41e85a81d6bada75248c33d5bcd17df5a476365f4f8627adb9ee70a6fa70a27517fef5b4757222497f2d31420db614be1f2b1165338", + "e34a5c6dae6697f12b18c3204ede21420736f0eb5c1e6c0d7152e3e06ce1859fa5d9837f68390f1fa248bcf2862bee8c2945223ee56e58e1358c78b40c07b8e9", + "79b5d72daf7a7df1ef99e9e672b380d45b1b443ba9d133a6cbfe614d80bd83b8a3ce1af99e532211467c8772ff91fdca1a05c700cbcb3901b24c56952cc98b54", + "d8a7efb62361691b77c4931e153afa202b89117c15b6329cfdb0db1effdff26378954fa58480b14ba5d8786e0d734623cb0d6602531b93734ff514cd1f50698f", + "b53366587c09d834be5b452040a40cde452c8a06f859f43630a2b91d65a9421e7d96c4205ec43486e42bf1d48f53b2a6fcb44e368d0ff39e2532837f49ebab0a", + "314a43a60100afeec53da17942b64ed9da917757569cd5989b81965dabffc1d8405b1f489518257f31d7420ef8f4811ce02559795e036a20ecea73f611830e4c", + "06be5aac6de6c7c697181cf52b40abc86f2ff59c408efb29cbeb7c2bb06c2f7d90a908cdcecb2843b9c984b7defbb1b9b381427f21979e97ea86cb5590c1f2b1", + "4a0f1a6da03bb41bff75360f53e47e8a28eeb2d58be959a4df5e4f7802326faf9bab3dfa487aacb63b132ce62b1f4861ff63000fcbe2e5789eb72ee640c7a336", + "be37c1277dd13a289fdc819775b6501071ae6866d7ed97be5d38d0c83b7c232dcd2db900f664556d7f090536108a989c05abd4440802487fc7a748472b71b1c9", + "e61dacc0ac19e9b180c80bf84ce82bd080eabe6b25e25a3b125207f5e4ff10f1e87a55b564a601b2ccf64b976e287466c21a787219a10f72c49eef8444f39c07", + "34e81060a506a289a6392e0408f2062cf846ab2606259c09871428098f6bd9a65761e5ccd52762e88ad47c1957f65a76ff3890c596e59ac4aa22c6ab98473ea5", + "0d5c2f775ed4330f69f4e59aac43923f8bce243b5547353ec29bdb21acf0a521b0f19ac79baca682f2b1e78f40e5d60c5aa8fb2cbc14ae0a406af2f2e2ebe49f", + "5d43f3dd0786636334a73958ec8fd61eeff350298b229b2ed020db65297cb17c05da7029a8273f247d00043c111957f08c8d6940b399d573c92c0c810ee444b3", + "81f9a6ece83a44eec2284b6f5b590a68b69721073aa0f8324d0068d4af2392fd5105cfd7312d68cddae7e96078a5c39e14fa6f38f7097a33872ae4d49dbb13bb", + "902c0d6b4d4ab02d8ac8942ea4d10b52740c879f970c9fd2381efd7a62d652a6506fa92f08dd2ecf4d06ceadad231094ef7fe7ddceee5a32e754e858c8f75497", + "32437e2a7ed3f17cc0634441b4d281cbbb174552145345fd1d4c9992b58fc2e7266db3f21b24c377a02c2fdd9f04e615f58ce42a2efb72271f84055354f77e50", + "6c4f72119149f76abc8707028beeaa8d53b33421cf98f972bc7ca283292855b9d197a1104a1677a484ed3f4fca57aedb31d45905e0f65bf35489b69fa9793bc6", + "af1415c882bccdd50baad8b9c2df1cbe36e86450c2e267c6bcc0b583556f307b83b987f94139c864a2d02e61e5f09e53a65c85e456938d65a1bfff3fb25041cf", + "3766f93c45e7f5c2d1cbe4ceee14e4c5097c5cdb0acf8fc9ddfc2b3b9f1e22c63450fcdd3666ec61a4d75163c636e865ab1bf2ee042c0483e4b4874db69a68a6", + "4c33f2d641ab315d104487f19deb28be20cdc754024fe94e5559d4ff45908a2b83cd274fc8f8fb9dab6384bcb8e2fff16afaba5dd7642e52d26da3dd31acd223", + "88da7c5b8a6629398559f9fce707ceb5e14cd26f7c59551afc72bed3fbed3c81c4846dfc0bf60375d158a34c25f41b88a1c2f1280712f3b3fb1ffd27fa05de6c", + "fd53f2cb2acc7c13aea0e6c81ab3645b0d3e878e198a9e331b08bca43410c58a386d697e22c62355a74e9b6f4876322d314842058908995e14f9b30f2e5ed0a4", + "a79df201f9165978029f0913d202c9d798c434d522afbccf2ecf0dd01669302603014231be754fe57de1f0798e1676ccef1629899e2e4dbc83dfa2ff5f1ac7c2", + "a1d65c8b1510786502aeeb275ee4c4dfa31b0af8cf298714c4745f380953db14dea965f71044fbb4e343e28ecd4f1bf865e2385cc556bf423a0a388df5da4365", + "ef4a18a37db271fbe52f5b5cf6f100dc474cb46b71d837be0b568a9a3500f730b1fa5e7f2f6c02db586b19adccd4bc85b785aa7c1236f482b9a995d5b1299812", + "e9b96b8027b81b79cfbd090bdbc5d38c6ef143ac7ece5a12e9bfdf185c0d45d480ac3113b7e2ee538f9cac90fe112d06790e588cfbbb7a554ad055aa3c9a2cef", + "13d8e616fec9392773d0fbeb0f1e00c38bbbd46ab89c06c76241bebac03c0b2f9ec3a3dbbd806cf142362d636c696cf42fac60f3a5704611979a7f9e87d1db75", + "87862a15184b3034018a09b98aadc611966a6cb20817d90fc8ba951f9ab8f3ba566332a9fe4d269b57c8310160be7075d80c3a09f531b72692df2650eadbe6e8", + "64a475fa0750c6afbe20c65b477a091a5122f80c7cf5a03a72218d24ef8f81f2fb2be9101d32877378191d7191e2a01872750effeb2a118503fb0bfa1ab19ab3", + "0ed050e5a718fe65cba6911f481b5193694ddb93a2f4d32b97663ba84bdf76c6b88eea0adc015c6c0c153dba9fc00e8a699a63123ec0b6367d0b859e9023535f", + "37f61410d01b3191bb8184e100ab189fbcbf3adac9847f8098db198b08e626350691dda81304464af64cfbc30149d77ef39d23783ca5157cffb3da679e49988e", + "d42347660651117cd0b849f8e64e64ca213b0d67b7ee84eb5024eebf77d9db01e1dd551bce664a1b84663e16fb4f466342582bee0ee0dc65a361bbba89c30934", + "45ddc5971fdd99060dddd4076cf76ac708f54217477422d4ea5f0f04969749c5e3937f7c20bc5279a6d9c7875e4d59ebfab4e1a75d36356d96791ab10f1f0e7b", + "ccc741aa9793f75698e209769efed32f9fda60e478a5300f5afb5cf2e5c222be92632968071e49d90a5287e4ba07ecd357f35d274e544dac30a2be5edd252a53", + "4408681c638e2a2c52fda45a00e2721caab3cde33bc1af0436e31e8357c330849eede6627c398bd7cf99554a74abbc1b6dc8570584adde7268ec0973d464c70f", + "dc85d7730aa63f00d95b303dfa352b6b4fc73a74407576f9959028c697bde6e205247d23f789e76b3a63c31fab487ec9d812b73d6dfa45b6e3bf9a1aebd97aec", + "995494a29548923ca052e70d09ff5b755892b9221e6707610993142c52ffaad8750b7cca79632d0a17d37b4183c7fad04114d695702983ac1bb0844151f6007a", + "6378ff2f7e4769b3a5ae12c397ceb51e7585c9d842dd31288114f6fc5ca330ef94782338f87dda19fe9fad0e1e3d961c0f4c312991f094c6c32779c9d3f9b758", + "8ed4d11ffc65fa5ec0d60a95e909ddf3856fcfe0dae0ff3ac79ede38e2b0fa773bc0a5d485b401d88c7497af0603a5addbd90fa4780b1c63d7be6f9761d5bbc0", + "3e58f6f70be82b13aa7fa496181bf8d8adf32441c411be2c1e81fd15ef7bc6159ebeb5622595ce246b36cd5ebb2cefb9da0a6e0cc384da52bbb76452a0a2093a", + "f9eaf9be02ed767289802372d67ab3b19ea9422cad9efa1a420e4b011c123ba906ee1d4852e12914752d648c432ef34a2bb3960574fefc56f96ca76d9f619218" + ] +} \ No newline at end of file diff --git a/pkgs/pow/corpus/keccak.json b/pkgs/pow/corpus/keccak.json deleted file mode 100644 index 48df0455..00000000 --- a/pkgs/pow/corpus/keccak.json +++ /dev/null @@ -1,258 +0,0 @@ -{ - "0": "0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e", - "8": "8630c13cbd066ea74bbe7fe468fec1dee10edc1254fb4c1b7c5fd69b646e44160b8ce01d05a0908ca790dfb080f4b513bc3b6225ece7a810371441a5ac666eb9", - "16": "551da6236f8b96fce9f97f1190e901324f0b45e06dbbb5cdb8355d6ed1dc34b3f0eae7dcb68622ff232fa3cece0d4616cdeb3931f93803662a28df1cd535b731", - "24": "eb7f2a98e00af37d964f7d8c44c1fb6e114d8ee21a7b976ae736539efdc1e3fe43becef5015171e6da30168cae99a82c53fa99042774ef982c01626a540f08c0", - "32": "952d4c0a6f0ef5ce438c52e3edd345ea00f91cf5da8097c1168a16069e958fc05bad90a0c5fb4dd9ec28e84b226b94a847d6bb89235692ef4c9712f0c7030fae", - "40": "2e76d93affd62b92fc4f29cb83efbe4ba21d88426aa7f075bfc20960ea258787898172e17045af43ab1fe445532be0185fbea84d9be788b05f14dbf4856a5254", - "48": "40fa8074e1e509b206448fbe757d9494b9b51e8d6e674a67f53c11ef92e96c3ea08b95ebd4172b020010cd6cf29539a34d6bfa002a2042787aa8d879a0f5b54c", - "56": "d1116786a3c1ea46a8f22d82abb4c5d06dc0691b2e747ac9726d0b290e6959f7b23428519a656b237695e56403855ec4c98db0cf87f31b6ceabf2b9b8589b713", - "64": "f326c7c126ddc277922760feef77c9bab6fb5d3430f652593703d7c5e30135cd0b0575257509a624184330d6ab1f508a666391b5d4690426b4e05301891df897", - "72": "1f5b8a6e8d94f5e2535d46842b9ced467c39c2db323963d3f3d937e9dda76fbc17072dda2ab4771cd7a645145a2aec1b5749bf9efe0cde006cc3ef8936438e0d", - "80": "2aeee7a720c030a820cd7baa8570d72cb90b7a238c38c358676358a7ae9a5cf26635b2320d61c1284899e654f0bfdd0a3a9c343ffbd11838b57465e6c3ad3a57", - "88": "7b1c1bef3b4deb4b4812c81a6e7b3f2c66fa95157fa3b9d2959dc56b8add100170d3c8d1745fd230a31f89fa17889c4c58946b5d746e47b71ed0394b66d1bdb2", - "96": "ee41401af509d6fc0944cd4a0bb29d2dce0dcc862606e669e31381e5d6cecb463143645d696d14e40169cdc71c75686d6e8732b432092626421cc6cc196f80bf", - "104": "9b53b410b9f5dce90a77244db407a3d0f4898d112d0044a8f66af933e26666de63ebd2a4322d8fe525ab354ce9676b6a14d0ce6b3d24e6cd5832bea0c5153cef", - "112": "2b53fe6583fc24ee8a63801067e4d3bd6e6934ef16bc822fc3a69f4ee13a404d9a3ce2bb4a12c77382bfde4d843f87fd06ed8aecc234a3a24cedfe60bfc06933", - "120": "80946ca68e8c16a9667cd8339d1c5b00f1e0d401d0ecc79458754794838f3ae2949a8cc5fe5584033bca9c5be62c7c08f402ef02f727cefa43bbd374c2a67c52", - "128": "4b39d3da5bcdf4d9b769015995644311c14c435bf72b1009d6dd71b01a63b97cfb596418e8e42342d117e07471a8914314ba7b0e264dadf0cea381868cbd43d1", - "136": "c37c9dc2e20d8e2f0ae588d7d45a807ccfa000fc948ac42a8ed63bb14f318fc3d4b963f7305980e6a0fd2316b55b63142373b1a29002264855c716c5c9f17f4c", - "144": "9073c62555e6095f17df71ad02babb9100288633898489b21c906a3190875baeaccc83be80abd11466fec371ba2c4623d07f0131defaec13a8c732a9f8417163", - "152": "23e9352856718e1e2d68a21d56d93117ced7628e984ff04ed8c0cb9b10539e4ede284f94fa71bf4b83bbb493435fd6be26eddb09deac39680e6b05acc87b8c4e", - "160": "909d753426b1dee09fc474f18cf810d5d5aadbf8a09af495bf6c22aca0c673021bfc5d2ad94f50b24e1569e956694b21cf2cc8b4f3c7ee4cf195e4424cc415dd", - "168": "046c6019fc4d628ae0da7092f9910f269b853d3b57052039ad1375c665405f9fd79d57579f42c4fff249bb85ae65113a9f4276cede73e9ccb0c24753935a006e", - "176": "51c909a6528949baddaf1ba0b154ea9c33fde5074359505b76d4b7ed54352dd893d40b142a5f802f378cba7b8c3782ecf2a048542be6c5936822214846a8d5e4", - "184": "efc8917e1247742a2d4ec29afeddf1e6ece377b3d8ac6e58c9851ce9c99bd599adebfed657baacd1793fc91b04df2957bf6f1888869286002dc4ad9ac7f76793", - "192": "fcef88bcc7ef70d8c3973429ac5139155f9ba643b431013f1817ecd2ff3ab287880f9ea54df7503cb3f73d7cf2b87d2e9bdbd203378fae74ca4bd2667a4aa706", - "200": "470bdd8d709875c8e6f88591b97d6486c5f03b54bfc905757483e013f63a6c56984d4518d45c2d2298eadb44af3a0c35a76b573d452f5747844d3ad8f84a2e85", - "208": "429fd438b390ad0224028975467ec228f9adcde71e1738005e3717c58f727aa2b7c61780bf0c5f8b766cc6d34551d87d22a130b8c215614204e607aa82ff8469", - "216": "790a010aeb6f13e019a1dc35574b1219e74ff5db6fbd8746733664ffdbcfe1cc6e8ab39117e3244c4fa3c0a962c9f50030aef88e193e7e0d4c4747345f30cb54", - "224": "aaf7a391600270f7b5a2a3bbc7474ac4154ebeac03a790a57fdad96cea2d043c9fa5f6916790b92f8032d668ed9a07112dc5b2373ec816aabca6f577ce60415e", - "232": "3e2880a974e50f98bd6cc0f9d769af348ce3b7e8fa38cf0ca2da5fd704c9c0e57d5500bea3cb7477927f9c394aa3f9bbc01824350291b9a0a0cbf094bb37da55", - "240": "48e55e0340f20466881a732aa88459ad4bcdef364c3bd045ae099f953d89f15957aef204265c3915ba42fe4235196be3d0f564676227c3c0deacfbaf68f9e717", - "248": "9d8098d8d6edbbaa2bcfc6fb2f89c3eac67fec25cdfe75aa7bd570a648e8c8945ff2ec280f6dcf73386109155c5bbc444c707bb42eab873f5f7476657b1bc1a8", - "256": "1eafedce7292ba73b80ae6151745f43ac95bfc9f31694d422473abca2e69d695cb6544db65506078cb20dbe0762f84aa6afd14a60ab597955be73f3f5c50f7a8", - "264": "9a7688e31aaf40c15575fc58c6b39267aad3722e696e518a9945cf7f7c0fea84cb3cb2e9f0384a6b5dc671ade7fb4d2b27011173f3eeeaf17cb451cf26542031", - "272": "ada5ca5630660003c4d16149f235faeb78132f7f773a631f820cc5c654b08eab4206bb4ea1389d1cf74d3b60b86e484c90c817cdb5dd5dbf327163b4646f7213", - "280": "71a0801d32587980b09963a0f547b8b6ee3bade224671bf44f12e3da4f21778bac37fcc73ef45fee1c96688baf9020f487b1a16e3ac91b504845d6fba879134f", - "288": "eba678b7a0e5669dc7fa5eca5d5f19fe625e113e5028da5efb138923cd444757b06078e0ba064b36c72ca2187ab9dd31dda6f24668f46c32f8ec21ac59aafa24", - "296": "12df92d889d7ba0df05bcd02d9de58c97f4813126967ff78bdf759c66c4cbe9df68ab31a0256c776730bb25deecf91f0997868ac8bb86df7a0fc110cb0a4de5d", - "304": "b8c7ce2be4cb32c140e75b75474248c1dd77d19b0cbca31a3ecc2a35c532e4fa3ed4abbcda27aa68a9dda06b245443e5903a65652a94ed3af15065d3e7736e47", - "312": "a0ae9dfb56831fe4a3223c501b697bd8243c471e8343acfd37a6b587feac74571c23deebc9b94a540a02f1b1e2251e01229c9d58c4279f155d5566fb18e81295", - "320": "631e7847124a70fe6eb293a44a25c50600b5e7e975ca9fab5ae64ab86c7e42c912dd6ec093f01a8debc6e1f5e487af97dc3fd6c53002765050be963ffcd4d989", - "328": "b989263bb4e0424f95fdc9a49c83a3769fbf31dcedda7e005ab5f22f43d2718debd39085971f7eb7822c9fa0f67f776cec4e35a9a8b8c835ef4e9ebda1922e4d", - "336": "ff6adcb9e1546798d396db78452df1a375b65ee3d54fcc915a8ca3da693e24931999b0fc8a4eb92f6ff85e42bb4cfd9ce7d7863eee709c9ef37642b696174474", - "344": "1051b7ff77274b784e7fb7823e756f0c4355047e489775bbedaa7ce5a75efac331492c016ce02eb2be8ba2fe6b735b9a1484e73ac06de573c5d0b4a58822a36a", - "352": "5639a2824297ca099ecf2a81eef1753f6314cb663d860f05a39e3e801ff82060bba10628e2c0d9e0a84dd05ed637fc0b65ba03bb66e46fb256f2a5b28d3f41d2", - "360": "97f9d642507e6dd179d56f4b815e92d0d486826f273ec711b8f9cb76afc79f900816fdbc13dd3a59fbecba1f3b6953f879f27c8987b24c6ff8557a2c834076b9", - "368": "afef2af5a01b89be190a0e6e796aa51f1f8c356772c6fc7731f08aab8bd81aee1287c70d564f4f169e37b07f28202a85f468281b4cdc1273cf61eb30e3bdcee1", - "376": "f467cca67c387ffc9f1b173a084c451095d01ad0bf3953ac103a76f0f1bc86167305a926a941a53417f1611a505aaa205bcfccbfd343465dad8a6c1e80609a9d", - "384": "4b389a2a0df5e295ea9444f2739b5492f290c4467b0b4cdc1cc9ed2cefa7a9e527e0627cdaf0bda58f17d13f94af7d2deff6fc5d53dd9157674475527fbb4f86", - "392": "6590fffb7311ab7dab370fb518ccc19baa9af7c84179adb002f8facd3c44af2830a84df1e2c2402368cc36614a6ea22903063e57d00ec511a46a9a03fe3819f7", - "400": "895796b2a0824c55f030d82e794925c38d8459f38cf848519f120ff6a9d5a03ebf006c3ea5021e8f3b3408ff12f01bcddf7a085ba0a9a58944fec1f554836df8", - "408": "e4bbd54bfb99d345471f8ab94271b4b748f5ce70c21c28ae6559e03ee7890a2c814043e624a6bd2944350756b37fa8208fc7473a67b310ceebc17d965ed688b2", - "416": "80d862ad05428a299213e65b50310463fd22c505e693dd4719e0a120eeaa35c5fc1608a08d22e2ccddeca49878bc26abe55a3c9a546347439a942ed0c1a6a23e", - "424": "021b3b392deccb9075559f88c0c229026a2048cef8eeb2d4f94803dcf2da0a73e004d7f14e9fd662670b59229ab3883c340f4e3a8c42624ccb90bec1156f95d4", - "432": "97bf33a5254c8aca27486428440b1034aaafac8b498ecb830c2581dc68518079b65fb0c595997693ddb8d68d9564ea98dc43cd287e2e018db7dfaaaa205c547a", - "440": "c05fd9c3fa73f80956ff1c3b89160eb520ca640e201b3fe5e6e296220e81b59d530476010d3784ca08692b8c716a3be982b37450a96d30a401d3ba3c390d9de3", - "448": "b980e657c13726dbadb6570ea3a9e633869cadb798eb35c482697a04cb712f1c1e8c5d0bd67e43e52da294e82d5e80a695a74a3d27c0c672adcfe2c928859a6d", - "456": "6adfc561835fddd70a9feb57c513165d12aeb3283f0dd7774dd58852da9e969abdaf20dd44856fa60e11bdfa2dbb7e3347669fff7a57a8d8d37431c2b309972d", - "464": "0e7459bdc857b949cc59a9c649b9625268bf9a11ea81eeefa4ecdd410e2f6fd2c78289c01365f99034ff8fa8c115ddcebefa26a8d6468f5030e641745950061e", - "472": "2a8ce9df40879b24dadf61c9131f694e5531ade6b7ab071ca10abdd3c2e4a22c868a52986a329f880137ee76109770927d2658e63eb486d880290ac0782cf5bf", - "480": "a83ce5a6a58376d57db4c58da1b46c131ff1bf8ff2de5e8617fb37e5098398edb53f9888b8752a8aff19178f2f6bd7a33fd36c59e4a631906280907fc1c5ab07", - "488": "9ebfcea2db1676eee6b103119543c6049debd8fb8f1e01a5ab5b348e2919e14c8cfe8e542f2ab747b0fd4a4c3eee4019bb046e24bfe2091fb9c65dca527b71ad", - "496": "97b08be7653e9df1b5afa459ea750a3ac9bf3577bcc7e5344fc861184880926def354e4c65b20ec66c47b7affd3e7493958bab0a90724d3d8dd9e1d561fa60c2", - "504": "ef8aaf08159bbcb88efac49a33a5248b7ed0544960d8dd54d748a91c0d84c69f308bb54cb5ec97d3f81cdf76e68e0320815b93f2a00942f2168cbc18e8377708", - "512": "c0a4d8dca967772dbf6e5508c913e7beba1b749a2b1ac963d0676e6f1dcd4ebaa3f909ef87dd849882dc8253347a5f6520b5b9f510973f443976455f923cfcb9", - "520": "cf03c946eb7022f60fb5439462ac22684e47eaacbffe19b797760b4a24a5238be9d90e17d40ea6fe7b2885cef7dfb8bb489401caa94f2dd6e04592e33e76b9d1", - "528": "2c35f1a57a17cb29403a2b40fc307bde10ba8f7fec7b94e1e42eb4eeb952aad00ec46a26646cd51db0c6b238189d7d470e21c29bf8710423cb5602cab75e29e7", - "536": "505e6e607c90c57bbe7ce52bb42df3d90bc32de554025730c84ed0f89a0132885d7a40fadff7a4b01de4d29735aefe0e0469f4f172b62a0daba889e152308fc4", - "544": "7be2c95413c589ec5ad69f8d80bfe9f26540d5c1832c7a49a31a8f5655d9ce8b47d97c69cccd693c211904142a5403da7ad09fbdb825698fe201988fcccd2bb2", - "552": "8aac9201d76df13424a32552f04390e499b6168711b70c875789ddaa9b115f8b8259a60d17835e2587f8901c3ca782da9afb28ba87b9fcbe05a47a42f48fcd48", - "560": "aa52587d84586317028fb7d3c20892e0288bfe2feabd76d7f89155ffe9ccbf1a09fa0ffb0553e83f79ae58bd30a35fa54892b6aba0093a012427ddab71cdf819", - "568": "48fc282f37a3e1fb5df4d2da1f7197ec899ae573ca08df550e61ee847eeb1d24c074ff46bcaee224ec7d8cea4256154f0c4d434e682834f6d827bfbdf75112f5", - "576": "6b4b0f126863552a6f40f45e295dc79b9ba2a88ea7c3b2f607ac1a8431a97844c2a7b664443fb23c05739df5494fe9824db80b7f3e67872142f17e2c5544e1ef", - "584": "7eec7b730056b1bd4f6ffc186fb45591e50cd93cf6e4fc958889f82d3f32c5c74d03a4bcf7d2754298f134698af4559b0e29baaa365cc00db0d51d407179c56d", - "592": "79cb925aca072ebb3b49a9d0e59bb07dd1c223c1f26c91768b929472c51b977f85c6ceeb54bce89cf9ff6155d7fe8091540f1348ce9592a6403f92105477870e", - "600": "b5d1ed8f039044bcfef41e99b2f564f45991b329b503fc91fa29d2408512f8711e9db66f8ae172164650545ae9e3db32aa369ec47e81a77111276e6ca38e4d92", - "608": "782c008a9ee3dda0a182267185c995a2af737ba8cb2f6179f2cdf52505f8d933e712fc4e56d10e175ec8cdd62de6529ce1f078bfa0dc7a5284f8c565182f85d9", - "616": "91a0241eda8ca597cbb0f703ab7dbaaf859cff77b20401ad46230ce3b2beef6685775de37576014d8da1ba672d47aad95fb53c590b650634cebb43a175738569", - "624": "00b02dbcb7a3bc117701f2f159fc4492923c437d3369833a9bd09e78e260d48d37168d36c49777b2e68e6fe9846106a6ab8768c3971fab31fd922aacb87d1cac", - "632": "3dedf819b357dfab1c7092abd872a1554dd0962e9944eef9f7f8bce830f2d74f1d9ba2b748bbc6ee0b7600be8cb0ffcb79924d9f51cdb9b06bd6fd37f3050229", - "640": "5fbe194557b0426f96ba60712176df073eafe04f2a50515455412ea3d80c116758ad952598f48031612181d82a16efe4668ffb3bcce9563a772fe416ff6db3b3", - "648": "2e8ab1619859c11473dc7c474ce8b0ae44b1c38417816fd95b9e0614f31e51ebb1dd16d1cbb584c4ebd28aa99f4a68e09dfe3ad462487f2608124b7528293045", - "656": "db2d182bdbac6ac866537e24712332cae74dc3d36168982e4453dd6e009658345255013bc0a54fca17aeedcc4beb79bdee192cfab516d24591c8699f7c758179", - "664": "90a2c05f7001d985b587a046b488bf4ed29d75cc03a745731b5b0ce51bb86387c4ce34018a6d906eb7beb41a09afe9fedd99aacc41b4556f75229c8688c7fca2", - "672": "ea3991c4a8a5f0146402de4ae235054c78a48dca340a7d4ad8753995f82347ecfc0054d64eb4f20abc4f415c54701cbc61a7b239a7c221b833d9ea9f94b154e8", - "680": "1313023b753ed1727f13cc67a64b989a8bf6548324df9854d8d5a963ed3d860257fe6522b9c6d6cb1bcadf322c985601ba36f7e67110192094aa8f9869a458a8", - "688": "9bca2a1a5546a11275bf42f0b48492868359c78d94785a0ee12dc1c3d70a8e97eb462148faed1ffa4dab0e91519bd36c0c5c5fe7cfcff3e180680318e1fcf75b", - "696": "8492f5e621e82fdbff1976b1beecff7d137805b5736ab49216122a95396b863a0481212b6daba8b05e29e287bb0e2f588f86407c84dbfb894e6acfc6f6b2e571", - "704": "eebe4ec0fe3e0266527f4d9f57a017637eab92377d82b15856a55a22b008df67f27aa5ac04e1deeeb2c819ce41db07dbf6dcaf17a192a4371a1e92badf1e6389", - "712": "9e36e6291bc2296cb4ba71109cedcc2a3f0b4f1ae5e5406dc4b3e594551d5c70e6f814d2c9b8413103ef07535886b4ac518aaf7aed64abed7a5b0a26f7171425", - "720": "f1089483a00b2601be9c16469a090efc49fcb70e62ac0ffea2d1e508083cd5d41dcf2daae1e0eac217859e5feaddcb782ac471c01d7266136185d37b568e9606", - "728": "d063ea794cfd2ed9248665a6084a7b99051c1051e41b7d9dcb1537a1c79cba6deb4d844c6a618e43c7ca020d16976999684feb084616f707209f75c4bd584d86", - "736": "424a86d746c87c85dabd1dae298a488e4ca2183de692d1d01c4b7994ee5124f9004bea84933c311cc38ea6f604a7769ee178e1ec160a9891c42c462a13a62286", - "744": "a9403c26a96de2c3d359ee29f3fd1c581154852d19ad12884b79e7082d2da22ec83553baba2bdff2a2fa15947a8e6acd5f5d113ec091bfd1962a0a10401d2c98", - "752": "3d23632ee4c2d4f4118a02a677b5a32427c72ba54899ba2e6ccd22ec3defe0fcb052e3f83d35786cea2080eed148a0a94628e735202e6b2809994c5f5bdafdd6", - "760": "d8fa886884ce577a7282deceacf4786e7c68fc69b141137ff5dc7cb3c5f8abc845716dd27397e8bd5ce245107a984a3f8b21f19f99ed40118621dc85303a30b4", - "768": "c768cd313602fabb2193f9edbf667b4cdabd57d5ff60bdc22ba7bad5319ea04e7cbec5d4b4c4560ad52609fdd22750b618951796376ed41b2a8eaffdd9927722", - "776": "8562ce9399806623b2695712266af3d4c14f77d2449143379246962c22398c813544a7dee4c4847f09d3cbe437349b7fc6738ac97075b5dd9e2add6ecaa610f4", - "784": "99ade7b13e8e79aea6ed01a25e10e401cd1d055884575eab3e66b2294f03f8d5dbf72ab1ae39103189383ebfd2e43258510c124a894a793b206fac752c035789", - "792": "d12831ba39dbcd41f56bc7fc071bdaabfb6e7572d08b2fda3bddfc6fa5662f4bdbfa431ca2e38b18172709072e50120db6be93e86cb4ace3c11dd0e1f3f5c712", - "800": "527d28e341e6b14f4684adb4b824c496c6482e51149565d3d17226828884306b51d6148a72622c2b75f5d3510b799d8bdc03eaede453676a6ec8fe03a1ad0eab", - "808": "cacdcf8bf855040e9795c422069d8e37b6286066a2197a320bd934061f66995227be6b85fd928b834d3ca45e1ac3844d9dc66d61581e7799ccfde008639ab3dd", - "816": "f454a953501e191a12a80c7a5398f081cef738e25d48b076a52f77fb09ef0bc2325116020bb06c2c585da9f115bd9d8f13b50e8e1fb1664450fae690b7783400", - "824": "5f968cc6ecf71c588a3c3ba68858bbff96861f66c0733fd61fa91a479a49618df22d9490219df8008dc78840ae022c5d41af2b890d0214e562da8df0cb3f8522", - "832": "e7149461f9cd00b71c216c50041b3eda9707d7360d4c21740c44c212256a31da398fe09708e450ea4e2826b7ec20bef76cd2fbd9d096af6f77f84abc2e4fb093", - "840": "77097413caa5a2d38259d47ec078871fa09ee5614d4c14feb7a95c921c0aae93b8737a6dc89e57693be8a0710206664b80b657a1079605a0ff9664bbcb0722d6", - "848": "55d8e5202360d7d5841419362f864cc900e11c582fd0cab2ff5f1680f6ce927b5379e27a335ebafe1286b9d4a172ab761a36eade60f10468eac4ceafbf63c7cc", - "856": "effb03b497add6230a0ed99122ea868138644ab81e861491e526fae37c39872ca731804a0004599849478a787bc7fce21903ed551d7db881d2a2c367b6168547", - "864": "a2269a6ef2ea8f1cf8bc3394d27657b0db996c55e7c47784c0b451202fc5279679d79e06f8dbaa9a63665fd0e914d13c6e056ea006daaf4cb61d2629468e3d25", - "872": "5a2970d5ec346a8e4e1d5d1e57dc22f6875ddf1ce3626b49a91109e0de991033e932f883b6a795016d5014e268304abe2f7577505aab00956911781f075d113a", - "880": "2b4356a64df31936b27f4530f076ee73e71e4e48abde04ff1f548e0727f4a5810b71874187fd96ed510d0d6886af11960a0b3bad1ee75dda4cdc148e162edae9", - "888": "edcb59984267bb00402a78f2ca345ef2494956172e10927ee63aff23d0c834bca50c47cdbffd8995036307e9ed4b143e853450367d0e14afc8490073653cd850", - "896": "d0b453fbe709c69125dc8fe9e8ae9245211612970373b454f8656a755e8435b321dd3a980fa28719641747e254dc42c9bf012b4d6dbd7ed13020a83b44c504aa", - "904": "fe97c011e525110e03149fac4179891afcb6304e1cfd9d84cb7389755554ee723571d76b80b9333a695884192340b3fe022d4a233b7aa8e8c7686745cfe75e67", - "912": "1bc4ac8d979ca62a7fc81c710cedf65af56c9b652eec356aa92da924d370fdebdf076f91ba4fe1ec5cd78fc4c8885ea4304ba2e8e64944ab4bf4d1b3d7dee745", - "920": "76e970e9449d868067cd23b1a202cbdc99693ff6fa74ba644ec41cbf8fd139cb0f5d1106fcd6c871c315ff41c3eaf99c636288f0fcf6a40b480cb881d87e098f", - "928": "871666b230c5ad75b96d63be22870621c68fd0899655ba7dc0e0e5299915af252c226dd7217601d3a6880d55ee5a20b10820e21c74f730eea9d47fe26debe006", - "936": "7e3ef62552b28a2b18a71ceef2dd8659c8bdf291385ad02fed353775e01594f27cc28cc78663e17cb8b39fd4ea48d494ad0bd7aee9277ec9b21e46523812736e", - "944": "0b87f6ebaa293ff79c873820846c0fcc943e3a83bd8111931ff03ff3b0bf785c961ca84cf3fd40e0d831dbaea595498fc12da88cc507de720a35c01d73fc9595", - "952": "681babbd2e351501c285812e06f20940fd865516cf028b4787d1ffccd0d537705e8e9b73c608d5a8dc4f08eee0902ac12936ddb8c7b29228c6aaf8d0b909c30d", - "960": "c46d2262f186421d07fd740f922306d99b1e3826f6a32486be5a91dc298f177f50915e17eb4ea2e45494c501736cefb0e22acd989da41ac7bb7be56b04bfb5e1", - "968": "0b3dbc770332823e686470d842104d3b3c1452f64f1bcc71c5f3fad1c0d93f21efbd48d73c7d4909227b06b06d54057a74e03c36d9c106eba79411f1e6e1cffe", - "976": "ca46276b0dc2ec4424bb7136eae1af207bd6e5cd833691c7d37b2caeaf4f484b96a3476fc25feb206ad37cf975383dd522ca0cc6200a3867fee7f178d6953fef", - "984": "815b44668bf3751a3392940fca54c1e3e4ef5227b052332afe6eb7a10ac8ad6438ce8a0277aa14bcc41590f6d6a10b6b1babe6bb4f8d777ea576d634b0be41c0", - "992": "f47799a8547fc9c07d0f808029e7335607d72224be286e118657bd13a2c51d0374426d9eeb7693bde5ec6181574c1404df29bf96941862ba1a0a9a5903319498", - "1000": "8a0ae12a9e797fb7bd46cbb910076a32873bffcb9ad98b4fc37316aed681ec49c65abbb9586405ff96cc80da4bb8fa73be1ba9e737595b2307cf369d61baf59c", - "1008": "a3c6d58872bafdedfdd50c0309089240d6977d4d3d59fb3f2be133c57d2dfcfcc7c027296f74fe58b2a9a6cb7e5d70088934d051cba57001fe27965cfa071a6f", - "1016": "11e0e521b55f02befc7207c06444fcc0c16dcf6f34962921b709a322f35e2193477b0dfa21f213f209705ff3958531a75d94346075feb29a288b62e2315ae270", - "1024": "aebba57c8ed5af6ec93f4aa45772ff5167b7ea88dfa71364f37d8fc5fdb7dc3b2c8331a08023f21d110b7d821e2dc7e860826235e7e6291912ac521384747354", - "1032": "2df1e09540b53a17222dab66275cebeceb1f8a5db26b0c41f955fa0549f3367e82299e0cd673958af7dfa04d741aa63ba2c1ad351764dc9228d215f22c24ca58", - "1040": "8299cfcea5f00c93a5eb8a84a13628a68b26796d53fb6a986c95b0b1c248920fb946d8af98343d14efc74a4611c53ccc27c5f14c7237af28364346ca5cd70d1a", - "1048": "af57bea357fcba0579c4204c0f8dff181bc8a473014bae78df76069de478b2f2a390327a65bdd24be926551c78f70b0d5f1c8f4b970997d557f06336a315a749", - "1056": "b299e421061ef26c32bb4f50ee669d05feb2ccba3297289c30e6434057b3ea7f617bbbf7a5555328fc291f794987577f458350df99af3a5778300be0bd80164f", - "1064": "cbdfb0d0e720f87259dd0d0b4e9c5319e7f88aaef7f7ab2fa1ca639afa0160822f96b3c357a4894ce53cd713fab23ad052e8565fa3b3a523cb9ce39a6bd535cc", - "1072": "059a181c83a22bff0aa9baa22d872bdf23cbe341032cf0bf57997a4a1924d24fbae9dca14b6d290692b6a6b6344cbe531734f58ad0224c6e39bd1e87f870aad6", - "1080": "9edeeb10ee1b7bb8f16a280d8cc3eda5e909c554419ddc523b69ecedf2adf3b3c9bc66fef365342471c458126f083a3b8e7c0c9d9d77e9f90196b71f9aadf492", - "1088": "a6054ffc3d81591be964c4b004a3a21142365b59ee98b2873d488293f93a8d7154bf72100012c60d3c9418f6af8ea66372cb4703f5f6381de6d4b9b98cff1e90", - "1096": "b0e54a12fdba0738898f1bbf0ba81f81de77648d8d14c20bdd5d90f300d382e069f5dba7eec6b23168b008b9f39c2b93fd742a5902a5e02728f57712d6a61d4e", - "1104": "3ce96077eb17c6a9c95a9a477748876c6451098dbea2b3261e6d75b64a988e1c75d7eac73bc2402afc726543e2a5bdb76689c0931ff762818dd2d3fe57a50fa9", - "1112": "c9acd6d98a349512b952d151ed501562f04ea4bb4b8965812510b9b842531a2b41a0108ac129cf9c9517be790921df64ad1dfc0b93ddba3415eebaf0da72f6a0", - "1120": "26b4e5c4fa85cb33359450e7f7158fb6a0739984565e9d9ebe6ad65b118296e9c1098c11541c871eb1b89853f1fa73ad8702ebf4fc9be4d0ab057e4391df964e", - "1128": "913bba5c0c13cc49d8310014cf5af1b63ba3d5db8a27699fcfc573688f0e826fb5a7b5d10d3a1de693aa66e08c0915e7278f61b5fa30f1263b134f016f74841f", - "1136": "e5d53e81866283179012d9239340b0cbfb8d7aebce0c824dc6653a652bb1b54e0883991be2c3e39ad111a7b24e95daf6f7d9a379d884d64f9c2afd645e1db5e2", - "1144": "5da83b7e221933cd67fa2af8c9934db74ce822212c99e0ee01f5220b4fe1e9b0388e42e328a1d174e6368f5773853042543a9b493a94b625980b73df3f3fccbb", - "1152": "72de9184beb5c6a37ea2c395734d0d5412991a57cffcc13ff9b5fa0f2046ee87c61811fe8ef2470239d5066c220173de5ebe41885ed8acae397fb395e6ca9aee", - "1160": "b678fa7655584970dedbbc73a16d7840935b104d06dcb468ddd9814d6cf443fa6f9245824dbff3ab5fffef24b29cb2978796f37e7b49b1682d59f79e3c169e81", - "1168": "66c64d5b0585dd8c40becd456e4b0188061ae8059f03e79fe04c40925442ba93b052f52087b30bdbfd4816bbd148696d4fa6c61f216253d7ac178b39ec44c770", - "1176": "a7bd506db9c0509ad47413af4b0e3948b47c18278f15f5b19fbb0b76e2c1c1f19db9438528eb6d87b0b4a509567db39f32641e2944365780914296cf3e48cecf", - "1184": "2e681f9ddbd7c77eab0d225e2ad1f72256be239df25933bcd6cedd757269b35e2a5352b3298a4cda0542ff7d3add2b0cf42f10fbe05a67c8763d54a78a43aea7", - "1192": "fd9be24763f682043243525e5e0780534a82ad5e83b65eb4acaf5353313a4cc7c5eea9da141de570232cb4126287e5c77657ca8d6a16b5be53f470343e722fd6", - "1200": "14ea33bb33fdf0426e0dfb12de1c613ba97141454c8971bcce25c6d87a6c2403ccfad1e8a6c15754c3cc5ac1718b7f7f1ec003c1b98d70968c5dbb95540b4a17", - "1208": "3b4b395514e0cab04fc9f9d6c358006ce06c93831e8948fb9bd2a863f3fa064e78eb57c76dd2d058d09ab3d105c28c2dacaebd4a473f1fa023053cc15366082f", - "1216": "2d7d28c4311e0424d71e7f9d267a2e048aa175455fcb724cf0b13debf448b59b0f28265b0f010f4e4f4065004904a7c2687a5a1b30ab593bc44f698dff5dde33", - "1224": "cb665ec69abd75743c8713034e9e41736f8c1ce2c77a8518e50388c411e6284d9aadcd4d3bd5a9eb74672325e41e8a67acf380d1e8a61684f0e501f5663a031d", - "1232": "4515a104fc68094d244b234d9dc06a0243b71d419d29a95c46e3cba6f51e121abe049b34535db3ccbf2ad68d83fc36331f615b3e33deb39a3381dfbcb798fe4d", - "1240": "cee3e60a49f7caed9387f3ea699524c4ccafd37c1a7e60d2f0ab037720649f108cce8769f70b0c5d049359eeb821022f17c4b5f646b750e3070558ec127057f1", - "1248": "e6ed6f060906d1a772f47e83907507f88a151de401ed79acb56be57c2596792dc0bc5a9dc1045e37c6a31da1c36200214e4f5698aa2754eeb2caecfc03bec39d", - "1256": "9ed4eee87f56ae2741e8e4d65623e4d1fa3aa111f64a85f66e99093baed990fe1d788d6a4be1a72a6615281eb45e1b6fb60afefdd93987f794084bda962fac7f", - "1264": "23139bdd84e9f43a6cc615f0f036199328d39807bec9e786d4251b83b30800f9dbe8edc0b910fcd9d9f204c2ddd4d3b92bc26a0cfaabe764bfb90a1444733cd0", - "1272": "ec69397000aed63cb7e86b4fb0bfd3dcee8a6f6a1cfe01a324da13484b73599fcd37ad392662d4c41d90baca66be4d6e3424efd35d7ff4cb07cbdfbebddb7b50", - "1280": "2ea3ea00e6e9305ced0fc160e004265221306a2be9613474126825aa3c3170ae07e5ea42f6b74f0b2c1bd2a6cd4d26eb1e04c67c9a4afefc1dd0cb57c2a9f4c7", - "1288": "6a7addb28f4f2c23cf0c264579fba5f892e010689f837b84d006d91402fbfe9ba44b9126f8b5de1ec6bbe194a3e3854235056a09901d18e8d6f1727dd430212a", - "1296": "2c0ee8a165bf88c44c8601c6372e522da9ecf42544dcdc098698f50df8e70eb7440cab2953bb490cd2a5e0887beeae3482192da95e5098d3b318f16fc08d1e1e", - "1304": "ddd4ff117231eca0445eada7c7f1d84686520daa70e160c87dbbb3fb32bb9e2f4cc53db5413d4e88de18a0118570318bd6d0e5264d779339ac6f4f4a95546a53", - "1312": "a9744efa42887df292fc09dfeb885f1e801855ded09dc2f97cbfcbd019751878619da1bc9573201c7cc050e2aa1d453e951366d81c188d329b3cb861c1d78f92", - "1320": "89cae46246efedad1147eb1868c23a6be54f6bac75f0c98a9aefc6bf3ccb89ae012f2e88a9c838b55e57b232cb3c80bc3c2e9fb3fc9768c6226e93284e208bf2", - "1328": "e80a63faf248ae762d13887afe8e1954f97327edd9641ce563f4148f9796669827b3a12b06ebd710d4171b86e21bc13360a541845354e0f4934e6fbbd7acbf2d", - "1336": "09c10c4818a6821c170d6780d006f7e853e30fe2d9a4e96545673704ec0a1a3e356375715994e1ac1d8cb0e56dbdb2f77dc558ed228fb56ee62217e63455fd0b", - "1344": "d1cab5979eb7f53c97dca5d725d8b33008906d7759fd3ebb8401ee2fff01db895495a0a062d47f251bc3fc13988607c6798969d213c941efc152e7db1da68e72", - "1352": "96ad163869ae2ffdb89b96f4dc700ece27d1f4daafbc5fb81a8e9513c6ea5e2b6a8bccf4e49a294af326f872740661629ab780581155810e492424c24f8d1dd3", - "1360": "fd2e7a6e11e5d00278099eaf403054d617acac5bd3d0a4908191782c89f9217a3f0118bc2b284fdbce803f66b78dd795eb18dc16ba85e19cb6393dc56c06ecca", - "1368": "ae53776d969a9b285641998a9f2c70ca71856c956a3c430a32a1e03a8e08d544f16511a27cfa59f6b8275a2357f8efa6544b1cd0c00a9460f47954a146429e49", - "1376": "d4748c8e17f4117bf2bf71557abb559247552126c36192c5df5c6c3e307d879b703c3fcd7099ddab243e2f1d5ae5066990a7b38d3f2cd7fb115aa6d135e7261d", - "1384": "d8ff0481a63890f0e5a536ebba2f253fa2cfa19c0f353587af4bdc3190e4f8f54d17d665e8b2011121d444bfadfff3e192d97fa03b849d63f36db20f4cf88a74", - "1392": "52d771b5016c6b1b93d3bf6a13f718a7b4741d528798609308b54cea6037862d923751fddce10580a7d6431bf208df17c1b825f7c7401ccbd6d806b744241acf", - "1400": "36d472a8ae13d1e70e1fd275117ffe34063befccf6706fab0816e1b81f7fe7f2ddb2a122f1f52c9950644659430f81bcedad5d833df4814cf60ae6c542cc4478", - "1408": "e504ad7f33d65b8d3487b28805d478778c901c0aff5f889ae95e2919b4f431a80116a8993469e822895f3c21a41d67afda93a5b29b6250f76335a76fe8919274", - "1416": "1dca53be0a34114447d1c1443b92b69dfded705956eae60bbab39178ccb11f526a302aae83720652ef4c5dd450a3647df7b77c4664717d935b4f5b20f206fefe", - "1424": "cb1b03b180e04021e0099050eb6b7eb9092c5bd5c445e9d31ee39c724f038e9f619a96d3a2812ca7f208feb2d074c3f817262f7504705623e635b9f273e37a59", - "1432": "f0482f098b93624bcde1aab58097198649a8dc84421826d1c1011ad41b948384c8ed5a97c64c134b38a0075812a35f9ce3cb200972c2ecdfc408714139b9bff0", - "1440": "a3188426cea0c18cb638bcc45c4337c40be41f6e03cd2d7c4fee26025c5ca281cfbb3ad1554d45edc2eb03e2ebe3de02f57d36d5b6a88a3c61a6aaede62180d0", - "1448": "0b14693e6320668d64ebb3bf6eeb81aafcdb7320ecde80a245786d1b0a808a15c717dc8e8813bf64bf4aa57c29c33e913d6ce1879e52e1919fb83e4a208edaa4", - "1456": "a9abc3f554c1e717935d28c28e7c26aa9dc5bd6d7b02ed7dc6afe21a0ea027a8801ae076f2872d08635ee81420711862edc4e448c85513289438b3c8be456b5b", - "1464": "04dd83d20f58e854d857f24720c50a4b5f83dbc8cabd460d379417cd4813772aa85591b90462f34db3faa4dcae335fb1252bf41162e24975a0dbd308c41a4a6b", - "1472": "ce76b25c928cb75c09c0674e8fcd22089654182cd3d84b85cc44b186a8b1a7cc1bb66f389da6d744a24a7b02bf5c85542d1ba8ef0db4a86d2fc394471b396519", - "1480": "02d1671981c2e85d0455ee85f41b8e9c32b1c80221dd432b8bcb5fcefe0996f32fe9fc3eeb3f1f557ae1632750b92d05239af857c42d59a3daeb9629e1158bec", - "1488": "6b8bc6211fe5001e07b7d20e0c49d314211e3893a39da241b8839bb3a494f9a2fd8561009d22cca1330a69362b386e715f1dbe6291dbeecfadf196da47e53198", - "1496": "d00e919dafff3d5e51ad3a3046f5e59d64b69cbcda223cb28bc370201d2c722bae74dfe0086b0eb47bdcb62fabee870c3340d46e55d8cfedf2dd3ced8a8db3f2", - "1504": "cf63f28f107a509a416f9a92c4e4db4dbf00fb52c2e16d8bb9694e09f9142a904c34e1e960bd97b8cfb2c53e7660c79b841d1565cdab83293234026a23a56d12", - "1512": "f21b8d45b6a857ce663c074c18cc54d914cdd5eb0d968e6153a5f70069345d205ddf4370ec473fc80b05f937d014c0a464582cb4a73b1b72041c5c99f576a41e", - "1520": "92287f42ab1a2123669c4d35f18257d3a536445f0e4d2c801e99f8529cd9e2a79205982c280c7a6cdddef24ce960ec6ca9a35f590aeebc40448c389e915fc4e0", - "1528": "74a9d8f9f72908c7502d1c41212cd86cf4344721a6f02d390346f2baec6e6137421e6516c3235443bc2337b3a77630712a12f11b7ba24b2d7085499ba74bcb90", - "1536": "7432861132e6894bb6ae5115398198317e12cc73c0c5dfc61cb189ff5aa9fb0d62224cbb1bfa8b105784405718e6f8e15e041dad80d11ae507b33c15c6cac824", - "1544": "6af4ff4c423051e3306ace812e5cfa85532b73deef0dfe601d2630632389d0fab2a109214d32508d2391775665b87a94d1df29db1214cb48dec10dbd3d8cf591", - "1552": "4648d263b608cf28ca65b28a361ebb00e0784c65ab1d55c46a785737b6c8d83dd52e3367d898921ea36dada42d893800d0bfcf86554cdf5e7630d60a2e8ee29f", - "1560": "dbd3732440010595ab26f84efeb07732227a7b7b52d6ff339c7ff1b6442249202ae33a0aef5167f5b0474d74a5b50cdb033d6c5c72894a3686fe6ecb36e357f3", - "1568": "c24d4054110889290cbc40b82ad8599229d8e86e4ce76bddbbb6f5386223512c9d7e00973c706442b2c80edd20904067af8e4e681aecbfadc6aa15a2ebfe7ddd", - "1576": "4a6404d278a0ba70488c18d7d1861cde26fd57d66a9affe74f1e646e616003a52fe42520504ac4ace5ca6665cf9155f44ecaa05d55f80fe9794ade17871c5728", - "1584": "fffd1b1e31377dff00b492295bccc735733b021f47bb4afba6549ea6c1ba3832e8587099ad0cc216af5899ac683eb7c246871e21c30feef9bceedfc78d0c966c", - "1592": "33c8f40e1bd1eb1a3a70d2071d27460ef0f6b2d3ece373743842d6b928f3771e4b7446a9ecfbbf552c064f6b26095401097581c38b95e9551119a1fdcb3d58e7", - "1600": "2a11cb6921ea662a39ddee7982e3cf5b317195661d5505ad04d11ee23e178ed65f3e06a7f096f4eaf1ff6a09239cf5a0a39dc9f4c92af63fdf7211e1cf467653", - "1608": "9196bbbd194541ffee7edbab970738bdd3aadbd6b73d1c85b580afac1232ae8077f743ce8b5b6f2b418b5134cccd4f83645e8631885b14fbbcb909a9836c374c", - "1616": "1959cae3600f128f72e1821c337d841b14cbbfef3a6d22286f18bdfc3ef63528c11bffa841a6d2208afeb5664d524de83090ab0db07cd47ef52f4d2eaa8454ce", - "1624": "a913ddc5bb089c121ff093be529225148df787d48f4f61699eff9fc2910282a898a81a38d66be9b06428d6466a614ca822a872c1c2c4d503d434d3b1d6942102", - "1632": "f10b91564ad93d734743281949bacef065a6432a455236f1bf798de9aec6ccac9b8d373b07c5acfbd676ef21e4a3a9e0f7c38e8756d177d0a5c283d520844b4d", - "1640": "ef26a1baf33d4de047bdd2ce34736e042ecd33aa569ffc0cb81ecfa66e9f87da8d025ecba24bcb187e4201046fb99a02dfa6f1bf88ec2b88de216cf759fac41d", - "1648": "f8e079a6dc5a6a7e7f32ff7e8015d1b26d43b54f166f2111cfb2b1eb238cabee58630ef845e0db00ddf1d800ad67ce7b2b658b42118cc15c8ef3bc9fb252db64", - "1656": "a5bfaa52499a688d9c8d3ddc0ba06decdf3829be5d444acfa412f4c6e863f4786be9935805310734e4f0affe05558999807408e97e100fadd0c93ff160f8b11b", - "1664": "ccea9fcf1ad93270ac4690e96b875122c5b5ec20d2cc27079cbf893126c44e0208a8bfa139057d72bd2638059ec8da8a720499af9d4c117f86799d7515dfc6e0", - "1672": "2efc5dfe028a35503a25bdf8b2164d86ca7496b7c5ded09c5d414b6977adbb4a6988ab9939d1ec65f46bcc99c1dcd5f19e035d8d3dc387361200e4da80c80671", - "1680": "e80d7a934fdaf17db8dbb1dc6c42e90e139211c2f599890c06b15d6248fdbe682d77d4e05f26d72852f7492bce118ce7c36950bd2c50f9699bb47d89c3115377", - "1688": "c414b29fd07720f46c351f5c80be2094e95d13ad97bdd1f7c5207b695693cd5e1e0169b1aa2e271115bd5171fec51d04b71e3e7ce1618fbfeb382f56f65f7eff", - "1696": "a4679a4cbee6292203bafba8913245f30e046aba6c0937b407c00b73d17d8d696690ee25ba1b39deb3db93525a8fbcfd88173ba9c7a65b4406d0550ba9b6cc07", - "1704": "5f49d6594da939987d1906294b33a037f63c79e078531dfa7e6ce67279d4d5dbeb650ff8690f23b63b7e9c48ea8791b80fdb34ef66dcf0cefe45842ecff4ad1d", - "1712": "b77fb79669ea52c738e58a9ef3ed1501bbe7974478afb5a8bed44549d6232ff8d7aa9eeeaf02f6755327951093243110d7bcfc0e51299db793856b57a77e8420", - "1720": "caca0ff43107f730a7fbe6869fba5af1e626c96303be3bc95155164199c88922194511b24c48911186f647ca246427f2ce7ba747271cd8d7c5e1d127c21f1eaa", - "1728": "e5106b2a0d49d6d1e13e3323232101cea5da71caa24e70efcac57e0ccf156cdf4c2492b03ce0e13437018dab76b9c989883bea69e849f33bb937a397b84ada6a", - "1736": "faee462e4bced12ad54d3757d644396ed9203037741661aea32bccadae568c4bdc925eda76610e964fbe3fb26b33bc0bc123ddf9b528715317ce5c92e00ac96f", - "1744": "fbe25b43e540104a3aade897838c63511928af5add4f952f1e6d4c39e70c923df191faa36f46b21f827d9b437996ff7206f73337cf20c6b0db748a707455b420", - "1752": "0a41a004573e0a983fe9c93bd57439a20c8f99b800a60d4a07117e8d9b25c0ee38bab3cdb6fc9216b8e07f0ccdd028c418ef97b6d7e15decde7425497644e2e4", - "1760": "ff081507f979f69c6743e42ee758858713b570cb48ff85ef0d728c4e1bb5456d035e498c05ea4cebd820e134bb252ac76ba4949a4fad76871a9972ae2fccceea", - "1768": "03444ae8319ebd121e7707b9cdfd1fdfd52f3d6b3d4bcb2748af421a3c8666c22d8c0d8a096767b1cd16a8d54738c5f67a6f9d48c90827be71691a42be87108b", - "1776": "5ee0a4459724037b7318815a80147c172d6c8f8874c9a0057706fb3e300fe936815f07672e6447b771de699dfadf345c3bb5974cf019315fadd5534dff6a079c", - "1784": "54085a2f9c327e5d8ee225eff5bd2c2837e44e8057cf1691e6202050079d26851061c4da8d88fc19237e5b658950e66866e92019d9e425e2416240a59d25a6cf", - "1792": "3ea49b6abd39cdf04bccd648fb7e1f8ae3dae9d3e3a5eab9ce29be356defbbbeb1bb93ae40d31cc1f011dcc6c6ac85b102f2654e2dbbac47333bcdb4758a1a28", - "1800": "b3851790ca47575dbf988f82c3b501dc8390a8e8598698166167567a0332913ccc8868584db4acfb2c9dc0f0a6833292f4dcedc47cf003217689bc2422b53b93", - "1808": "a710cb26c632f289504cd0039ba6ab9b4d3524c52b286d466e2f8939f8684e3f18dca298a2ba67eb710997b7bb10ae279438b9b4868d0adb248f282bb440a130", - "1816": "8f677a8089052b47be60c0bb7666e403a5daa5e28a2b632f2e496c587f1fdca0ee33d9e78daa4ef575b13389748b8c24110053b0b96a082c06c3f80ebe8de976", - "1824": "ce631e6f2c2dc5738c0fa958571773b58af130b94824331419ee57e2691ce5f29db3d8fe456cd1e7cdc07f6105fa1b6fd729c2b419008ccd889169c3385db1b9", - "1832": "fff677bb58909c158ea677be704253505b106af934f639abfec63bd0c63097aa4bf032fe924149dd991d335e1c44c0220e4d13cbc41b6a98fb5a05faa3fe15b3", - "1840": "451ee587226c99989f5ec10050983b1fd661228a4ab48618f1d1173c94fac39ecfd3c26c16653633b26097e31a0f2213b4f1153a57cb48a70d2af1adeb1bbc06", - "1848": "f9d6ad8686125e71fe0856e806d68ba97ef123443938d28283387f33e3ac6e2a7de042a3ee5f7994c1eecc5b6f22cbae1349cab2fb7a0a0125ec2320320858d4", - "1856": "f26f3268fd620fc476a49aac3ed1580864934a2f6ba881ed8c8fb757aaaa64bcdf501e1913de600bbef6f12c949fea8fd68c645086d5e30c9253588ffbd19be5", - "1864": "080845d6fd22a00b30fa01a4b4f81fdc7b46ca4c6a676ad5863a9dbf6611ba97f24fb59bb5bac4e376b3b8b3357166782876b701273ff351bc8c5805532767d4", - "1872": "2678a8715fc7e538522dd7608d769508b63017d9eb6cc48f1cb07d14e741066936c8316bf3211e09f62611e140ddd14a07f97f9f372e99c084ffe289eb302bd8", - "1880": "aa03eb09417435da9e6e7803f3b6eab66faa3d59cc622950d61f9b962b69145ac2255cd752cb9607742092697b1a79d124817ae26421e61d1176764832ed354c", - "1888": "d3012f2fb56845b258d7598c0bbb2c97d53b602deae9326dc3678b2228454a1e29f28848ed140c70be85cdea9f99a8dc347deabd46d362ed1afb231146a0255d", - "1896": "b50c896f2cdf7f105de751ff6cf664e592fab752d652b06898b9b288052df22f721ad87e702af043e6b1e88929850cbd5698a9172c3932400b2538e401a6f081", - "1904": "a34a2f27c32f993a7e7007867733547481293c391255ffd0e5ccbe91e1cc749b13525af6adfa0c2d1d64bf87dd65b996ada9111c5df55bff8a5742e54b8444f6", - "1912": "dd5f4b167175d9566dca6c5b1b54a33d02efd02e25e23bb6fb02d878a4415e5e8682c209beac04e9882a272d01e8eb435caa5bcd74fc825c6b9082d041dff333", - "1920": "a43ae5dad936697564ae1bd9b8624c5c31cc36607322af40e253f10c285467afd0d08252d2bad76efa52e4775c9c26761abe38212855a80112fe02623fbf0a13", - "1928": "a5ac23d4a0d533cb9d8a68873f5cb749228458d43ce6bd0536c8733777b5e6e3f28fd36bffe69002a0777ba74fef22de3fac4c818b4842816c6094496f968555", - "1936": "07f3bcacf5f78816d515cedf1cbba4ffc58d83aa8687b0e7252faab43e7f59a7ff7415727addf9a22560adb5755a2c6df8c7e6dcaceb53106a714d807aaadbf3", - "1944": "13a592b73ede487036c8816bd6fc6cdc04dc6133409a6ee990584160518f9ef573264cf04d38a3ba75d150f4f026f6df8936e13c8f4f3ecc9ecbc43fdfc488a4", - "1952": "c2fb590ab74e230b8fe159892f94de04ef7adaa02b918d4994f996538d257f5a80c9b3be8f410170b0c5cac3f507401220881c5e08d8bf0a13247170d39085bc", - "1960": "02951596a13a1a41188a4a1d6346f7eafb60a2051ea67c63237d1a9b79ec4733f33ecec223dedd946b78387b6f2df5e9ab6af7dfbabaf80f4fcc94fa087275e8", - "1968": "5aa4e32f0ea3e853929bf64acc9565a01300bc007063b939f6dbbe9cae0545ea95fbcac32575aa0727ee4d937071e6b3be74e23fe76fd63ec05c7f7d8a407af0", - "1976": "495b2aa2103159d9a937e9dd56b059aca98a5e3cb7b59bb690dedc00c692e9d7a18614a73d12e07634b209cc630d1818b09f1076a941ff80474493e3d42b9812", - "1984": "217b5a985bed80008274470e254443238c5aeacbc7ee2289f0e63b7afe6d0f395e2361fd6d9dc33b4f54f03ff56f6b264976161d80091788ee9d262f147a35fc", - "1992": "293c551e753bba7f314dcb93a0fad94f3f5dee6ed45d765a708e6fd277601f03f6c905d7e1eaeaec513cbbbd672b817f6d60fbf02c20167d7f4b7b84afeeb3f6", - "2000": "89fe6314a0246eff3bfd07a95fe239bd5071467f53799175b226daf6c3db618cad4ca1c1af64bf5793f03254f560e6335beaaa86bcb9e961f214b2ae97b47af0", - "2008": "7690f703e894ee22d4dff55a7f8d5021d5f17b729f95a59c4d55cfb225c67be105f2e7cdf56d140e566648e9e9c39bbed96f985a6dae1f21d8ba500f7fd40edf", - "2016": "65e415c7958a47fca9eed3846fd1283afeb38e5130f57ecd99dcb21bedda856e3b5fb9f839e579c5ea386eaca8cdc0a9549eaaf6ec452dd6cb5212b709bf5c59", - "2024": "d6542a2f0654b9b874a627d3d53764a65b1df2c0cec3bcd0b4b088faa1095e54f1799757c4371f8d544e298d600e21e11b2f90d295712621231a09c58b05a704", - "2032": "ec983e787628b94c87fff8d57d2d058667d12f5af458bce79bb7844fb41d9c55920f593c8d8730eb8d54ff1d51cd8ad2f1c2a0f7d6b299a21266744e47d142b2", - "2040": "81950e7096d31d4f22e3db71cac725bf59e81af54c7ca9e6aeee71c010fc5467466312a01aa5c137cfb140646941556796f612c9351268737c7e9a2b9631d1fa" -} diff --git a/pkgs/pow/corpus/keccak.json5 b/pkgs/pow/corpus/keccak.json5 new file mode 100644 index 00000000..54a694bd --- /dev/null +++ b/pkgs/pow/corpus/keccak.json5 @@ -0,0 +1,260 @@ +{ + "nist": [ + "0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e", + "8630c13cbd066ea74bbe7fe468fec1dee10edc1254fb4c1b7c5fd69b646e44160b8ce01d05a0908ca790dfb080f4b513bc3b6225ece7a810371441a5ac666eb9", + "551da6236f8b96fce9f97f1190e901324f0b45e06dbbb5cdb8355d6ed1dc34b3f0eae7dcb68622ff232fa3cece0d4616cdeb3931f93803662a28df1cd535b731", + "eb7f2a98e00af37d964f7d8c44c1fb6e114d8ee21a7b976ae736539efdc1e3fe43becef5015171e6da30168cae99a82c53fa99042774ef982c01626a540f08c0", + "952d4c0a6f0ef5ce438c52e3edd345ea00f91cf5da8097c1168a16069e958fc05bad90a0c5fb4dd9ec28e84b226b94a847d6bb89235692ef4c9712f0c7030fae", + "2e76d93affd62b92fc4f29cb83efbe4ba21d88426aa7f075bfc20960ea258787898172e17045af43ab1fe445532be0185fbea84d9be788b05f14dbf4856a5254", + "40fa8074e1e509b206448fbe757d9494b9b51e8d6e674a67f53c11ef92e96c3ea08b95ebd4172b020010cd6cf29539a34d6bfa002a2042787aa8d879a0f5b54c", + "d1116786a3c1ea46a8f22d82abb4c5d06dc0691b2e747ac9726d0b290e6959f7b23428519a656b237695e56403855ec4c98db0cf87f31b6ceabf2b9b8589b713", + "f326c7c126ddc277922760feef77c9bab6fb5d3430f652593703d7c5e30135cd0b0575257509a624184330d6ab1f508a666391b5d4690426b4e05301891df897", + "1f5b8a6e8d94f5e2535d46842b9ced467c39c2db323963d3f3d937e9dda76fbc17072dda2ab4771cd7a645145a2aec1b5749bf9efe0cde006cc3ef8936438e0d", + "2aeee7a720c030a820cd7baa8570d72cb90b7a238c38c358676358a7ae9a5cf26635b2320d61c1284899e654f0bfdd0a3a9c343ffbd11838b57465e6c3ad3a57", + "7b1c1bef3b4deb4b4812c81a6e7b3f2c66fa95157fa3b9d2959dc56b8add100170d3c8d1745fd230a31f89fa17889c4c58946b5d746e47b71ed0394b66d1bdb2", + "ee41401af509d6fc0944cd4a0bb29d2dce0dcc862606e669e31381e5d6cecb463143645d696d14e40169cdc71c75686d6e8732b432092626421cc6cc196f80bf", + "9b53b410b9f5dce90a77244db407a3d0f4898d112d0044a8f66af933e26666de63ebd2a4322d8fe525ab354ce9676b6a14d0ce6b3d24e6cd5832bea0c5153cef", + "2b53fe6583fc24ee8a63801067e4d3bd6e6934ef16bc822fc3a69f4ee13a404d9a3ce2bb4a12c77382bfde4d843f87fd06ed8aecc234a3a24cedfe60bfc06933", + "80946ca68e8c16a9667cd8339d1c5b00f1e0d401d0ecc79458754794838f3ae2949a8cc5fe5584033bca9c5be62c7c08f402ef02f727cefa43bbd374c2a67c52", + "4b39d3da5bcdf4d9b769015995644311c14c435bf72b1009d6dd71b01a63b97cfb596418e8e42342d117e07471a8914314ba7b0e264dadf0cea381868cbd43d1", + "c37c9dc2e20d8e2f0ae588d7d45a807ccfa000fc948ac42a8ed63bb14f318fc3d4b963f7305980e6a0fd2316b55b63142373b1a29002264855c716c5c9f17f4c", + "9073c62555e6095f17df71ad02babb9100288633898489b21c906a3190875baeaccc83be80abd11466fec371ba2c4623d07f0131defaec13a8c732a9f8417163", + "23e9352856718e1e2d68a21d56d93117ced7628e984ff04ed8c0cb9b10539e4ede284f94fa71bf4b83bbb493435fd6be26eddb09deac39680e6b05acc87b8c4e", + "909d753426b1dee09fc474f18cf810d5d5aadbf8a09af495bf6c22aca0c673021bfc5d2ad94f50b24e1569e956694b21cf2cc8b4f3c7ee4cf195e4424cc415dd", + "046c6019fc4d628ae0da7092f9910f269b853d3b57052039ad1375c665405f9fd79d57579f42c4fff249bb85ae65113a9f4276cede73e9ccb0c24753935a006e", + "51c909a6528949baddaf1ba0b154ea9c33fde5074359505b76d4b7ed54352dd893d40b142a5f802f378cba7b8c3782ecf2a048542be6c5936822214846a8d5e4", + "efc8917e1247742a2d4ec29afeddf1e6ece377b3d8ac6e58c9851ce9c99bd599adebfed657baacd1793fc91b04df2957bf6f1888869286002dc4ad9ac7f76793", + "fcef88bcc7ef70d8c3973429ac5139155f9ba643b431013f1817ecd2ff3ab287880f9ea54df7503cb3f73d7cf2b87d2e9bdbd203378fae74ca4bd2667a4aa706", + "470bdd8d709875c8e6f88591b97d6486c5f03b54bfc905757483e013f63a6c56984d4518d45c2d2298eadb44af3a0c35a76b573d452f5747844d3ad8f84a2e85", + "429fd438b390ad0224028975467ec228f9adcde71e1738005e3717c58f727aa2b7c61780bf0c5f8b766cc6d34551d87d22a130b8c215614204e607aa82ff8469", + "790a010aeb6f13e019a1dc35574b1219e74ff5db6fbd8746733664ffdbcfe1cc6e8ab39117e3244c4fa3c0a962c9f50030aef88e193e7e0d4c4747345f30cb54", + "aaf7a391600270f7b5a2a3bbc7474ac4154ebeac03a790a57fdad96cea2d043c9fa5f6916790b92f8032d668ed9a07112dc5b2373ec816aabca6f577ce60415e", + "3e2880a974e50f98bd6cc0f9d769af348ce3b7e8fa38cf0ca2da5fd704c9c0e57d5500bea3cb7477927f9c394aa3f9bbc01824350291b9a0a0cbf094bb37da55", + "48e55e0340f20466881a732aa88459ad4bcdef364c3bd045ae099f953d89f15957aef204265c3915ba42fe4235196be3d0f564676227c3c0deacfbaf68f9e717", + "9d8098d8d6edbbaa2bcfc6fb2f89c3eac67fec25cdfe75aa7bd570a648e8c8945ff2ec280f6dcf73386109155c5bbc444c707bb42eab873f5f7476657b1bc1a8", + "1eafedce7292ba73b80ae6151745f43ac95bfc9f31694d422473abca2e69d695cb6544db65506078cb20dbe0762f84aa6afd14a60ab597955be73f3f5c50f7a8", + "9a7688e31aaf40c15575fc58c6b39267aad3722e696e518a9945cf7f7c0fea84cb3cb2e9f0384a6b5dc671ade7fb4d2b27011173f3eeeaf17cb451cf26542031", + "ada5ca5630660003c4d16149f235faeb78132f7f773a631f820cc5c654b08eab4206bb4ea1389d1cf74d3b60b86e484c90c817cdb5dd5dbf327163b4646f7213", + "71a0801d32587980b09963a0f547b8b6ee3bade224671bf44f12e3da4f21778bac37fcc73ef45fee1c96688baf9020f487b1a16e3ac91b504845d6fba879134f", + "eba678b7a0e5669dc7fa5eca5d5f19fe625e113e5028da5efb138923cd444757b06078e0ba064b36c72ca2187ab9dd31dda6f24668f46c32f8ec21ac59aafa24", + "12df92d889d7ba0df05bcd02d9de58c97f4813126967ff78bdf759c66c4cbe9df68ab31a0256c776730bb25deecf91f0997868ac8bb86df7a0fc110cb0a4de5d", + "b8c7ce2be4cb32c140e75b75474248c1dd77d19b0cbca31a3ecc2a35c532e4fa3ed4abbcda27aa68a9dda06b245443e5903a65652a94ed3af15065d3e7736e47", + "a0ae9dfb56831fe4a3223c501b697bd8243c471e8343acfd37a6b587feac74571c23deebc9b94a540a02f1b1e2251e01229c9d58c4279f155d5566fb18e81295", + "631e7847124a70fe6eb293a44a25c50600b5e7e975ca9fab5ae64ab86c7e42c912dd6ec093f01a8debc6e1f5e487af97dc3fd6c53002765050be963ffcd4d989", + "b989263bb4e0424f95fdc9a49c83a3769fbf31dcedda7e005ab5f22f43d2718debd39085971f7eb7822c9fa0f67f776cec4e35a9a8b8c835ef4e9ebda1922e4d", + "ff6adcb9e1546798d396db78452df1a375b65ee3d54fcc915a8ca3da693e24931999b0fc8a4eb92f6ff85e42bb4cfd9ce7d7863eee709c9ef37642b696174474", + "1051b7ff77274b784e7fb7823e756f0c4355047e489775bbedaa7ce5a75efac331492c016ce02eb2be8ba2fe6b735b9a1484e73ac06de573c5d0b4a58822a36a", + "5639a2824297ca099ecf2a81eef1753f6314cb663d860f05a39e3e801ff82060bba10628e2c0d9e0a84dd05ed637fc0b65ba03bb66e46fb256f2a5b28d3f41d2", + "97f9d642507e6dd179d56f4b815e92d0d486826f273ec711b8f9cb76afc79f900816fdbc13dd3a59fbecba1f3b6953f879f27c8987b24c6ff8557a2c834076b9", + "afef2af5a01b89be190a0e6e796aa51f1f8c356772c6fc7731f08aab8bd81aee1287c70d564f4f169e37b07f28202a85f468281b4cdc1273cf61eb30e3bdcee1", + "f467cca67c387ffc9f1b173a084c451095d01ad0bf3953ac103a76f0f1bc86167305a926a941a53417f1611a505aaa205bcfccbfd343465dad8a6c1e80609a9d", + "4b389a2a0df5e295ea9444f2739b5492f290c4467b0b4cdc1cc9ed2cefa7a9e527e0627cdaf0bda58f17d13f94af7d2deff6fc5d53dd9157674475527fbb4f86", + "6590fffb7311ab7dab370fb518ccc19baa9af7c84179adb002f8facd3c44af2830a84df1e2c2402368cc36614a6ea22903063e57d00ec511a46a9a03fe3819f7", + "895796b2a0824c55f030d82e794925c38d8459f38cf848519f120ff6a9d5a03ebf006c3ea5021e8f3b3408ff12f01bcddf7a085ba0a9a58944fec1f554836df8", + "e4bbd54bfb99d345471f8ab94271b4b748f5ce70c21c28ae6559e03ee7890a2c814043e624a6bd2944350756b37fa8208fc7473a67b310ceebc17d965ed688b2", + "80d862ad05428a299213e65b50310463fd22c505e693dd4719e0a120eeaa35c5fc1608a08d22e2ccddeca49878bc26abe55a3c9a546347439a942ed0c1a6a23e", + "021b3b392deccb9075559f88c0c229026a2048cef8eeb2d4f94803dcf2da0a73e004d7f14e9fd662670b59229ab3883c340f4e3a8c42624ccb90bec1156f95d4", + "97bf33a5254c8aca27486428440b1034aaafac8b498ecb830c2581dc68518079b65fb0c595997693ddb8d68d9564ea98dc43cd287e2e018db7dfaaaa205c547a", + "c05fd9c3fa73f80956ff1c3b89160eb520ca640e201b3fe5e6e296220e81b59d530476010d3784ca08692b8c716a3be982b37450a96d30a401d3ba3c390d9de3", + "b980e657c13726dbadb6570ea3a9e633869cadb798eb35c482697a04cb712f1c1e8c5d0bd67e43e52da294e82d5e80a695a74a3d27c0c672adcfe2c928859a6d", + "6adfc561835fddd70a9feb57c513165d12aeb3283f0dd7774dd58852da9e969abdaf20dd44856fa60e11bdfa2dbb7e3347669fff7a57a8d8d37431c2b309972d", + "0e7459bdc857b949cc59a9c649b9625268bf9a11ea81eeefa4ecdd410e2f6fd2c78289c01365f99034ff8fa8c115ddcebefa26a8d6468f5030e641745950061e", + "2a8ce9df40879b24dadf61c9131f694e5531ade6b7ab071ca10abdd3c2e4a22c868a52986a329f880137ee76109770927d2658e63eb486d880290ac0782cf5bf", + "a83ce5a6a58376d57db4c58da1b46c131ff1bf8ff2de5e8617fb37e5098398edb53f9888b8752a8aff19178f2f6bd7a33fd36c59e4a631906280907fc1c5ab07", + "9ebfcea2db1676eee6b103119543c6049debd8fb8f1e01a5ab5b348e2919e14c8cfe8e542f2ab747b0fd4a4c3eee4019bb046e24bfe2091fb9c65dca527b71ad", + "97b08be7653e9df1b5afa459ea750a3ac9bf3577bcc7e5344fc861184880926def354e4c65b20ec66c47b7affd3e7493958bab0a90724d3d8dd9e1d561fa60c2", + "ef8aaf08159bbcb88efac49a33a5248b7ed0544960d8dd54d748a91c0d84c69f308bb54cb5ec97d3f81cdf76e68e0320815b93f2a00942f2168cbc18e8377708", + "c0a4d8dca967772dbf6e5508c913e7beba1b749a2b1ac963d0676e6f1dcd4ebaa3f909ef87dd849882dc8253347a5f6520b5b9f510973f443976455f923cfcb9", + "cf03c946eb7022f60fb5439462ac22684e47eaacbffe19b797760b4a24a5238be9d90e17d40ea6fe7b2885cef7dfb8bb489401caa94f2dd6e04592e33e76b9d1", + "2c35f1a57a17cb29403a2b40fc307bde10ba8f7fec7b94e1e42eb4eeb952aad00ec46a26646cd51db0c6b238189d7d470e21c29bf8710423cb5602cab75e29e7", + "505e6e607c90c57bbe7ce52bb42df3d90bc32de554025730c84ed0f89a0132885d7a40fadff7a4b01de4d29735aefe0e0469f4f172b62a0daba889e152308fc4", + "7be2c95413c589ec5ad69f8d80bfe9f26540d5c1832c7a49a31a8f5655d9ce8b47d97c69cccd693c211904142a5403da7ad09fbdb825698fe201988fcccd2bb2", + "8aac9201d76df13424a32552f04390e499b6168711b70c875789ddaa9b115f8b8259a60d17835e2587f8901c3ca782da9afb28ba87b9fcbe05a47a42f48fcd48", + "aa52587d84586317028fb7d3c20892e0288bfe2feabd76d7f89155ffe9ccbf1a09fa0ffb0553e83f79ae58bd30a35fa54892b6aba0093a012427ddab71cdf819", + "48fc282f37a3e1fb5df4d2da1f7197ec899ae573ca08df550e61ee847eeb1d24c074ff46bcaee224ec7d8cea4256154f0c4d434e682834f6d827bfbdf75112f5", + "6b4b0f126863552a6f40f45e295dc79b9ba2a88ea7c3b2f607ac1a8431a97844c2a7b664443fb23c05739df5494fe9824db80b7f3e67872142f17e2c5544e1ef", + "7eec7b730056b1bd4f6ffc186fb45591e50cd93cf6e4fc958889f82d3f32c5c74d03a4bcf7d2754298f134698af4559b0e29baaa365cc00db0d51d407179c56d", + "79cb925aca072ebb3b49a9d0e59bb07dd1c223c1f26c91768b929472c51b977f85c6ceeb54bce89cf9ff6155d7fe8091540f1348ce9592a6403f92105477870e", + "b5d1ed8f039044bcfef41e99b2f564f45991b329b503fc91fa29d2408512f8711e9db66f8ae172164650545ae9e3db32aa369ec47e81a77111276e6ca38e4d92", + "782c008a9ee3dda0a182267185c995a2af737ba8cb2f6179f2cdf52505f8d933e712fc4e56d10e175ec8cdd62de6529ce1f078bfa0dc7a5284f8c565182f85d9", + "91a0241eda8ca597cbb0f703ab7dbaaf859cff77b20401ad46230ce3b2beef6685775de37576014d8da1ba672d47aad95fb53c590b650634cebb43a175738569", + "00b02dbcb7a3bc117701f2f159fc4492923c437d3369833a9bd09e78e260d48d37168d36c49777b2e68e6fe9846106a6ab8768c3971fab31fd922aacb87d1cac", + "3dedf819b357dfab1c7092abd872a1554dd0962e9944eef9f7f8bce830f2d74f1d9ba2b748bbc6ee0b7600be8cb0ffcb79924d9f51cdb9b06bd6fd37f3050229", + "5fbe194557b0426f96ba60712176df073eafe04f2a50515455412ea3d80c116758ad952598f48031612181d82a16efe4668ffb3bcce9563a772fe416ff6db3b3", + "2e8ab1619859c11473dc7c474ce8b0ae44b1c38417816fd95b9e0614f31e51ebb1dd16d1cbb584c4ebd28aa99f4a68e09dfe3ad462487f2608124b7528293045", + "db2d182bdbac6ac866537e24712332cae74dc3d36168982e4453dd6e009658345255013bc0a54fca17aeedcc4beb79bdee192cfab516d24591c8699f7c758179", + "90a2c05f7001d985b587a046b488bf4ed29d75cc03a745731b5b0ce51bb86387c4ce34018a6d906eb7beb41a09afe9fedd99aacc41b4556f75229c8688c7fca2", + "ea3991c4a8a5f0146402de4ae235054c78a48dca340a7d4ad8753995f82347ecfc0054d64eb4f20abc4f415c54701cbc61a7b239a7c221b833d9ea9f94b154e8", + "1313023b753ed1727f13cc67a64b989a8bf6548324df9854d8d5a963ed3d860257fe6522b9c6d6cb1bcadf322c985601ba36f7e67110192094aa8f9869a458a8", + "9bca2a1a5546a11275bf42f0b48492868359c78d94785a0ee12dc1c3d70a8e97eb462148faed1ffa4dab0e91519bd36c0c5c5fe7cfcff3e180680318e1fcf75b", + "8492f5e621e82fdbff1976b1beecff7d137805b5736ab49216122a95396b863a0481212b6daba8b05e29e287bb0e2f588f86407c84dbfb894e6acfc6f6b2e571", + "eebe4ec0fe3e0266527f4d9f57a017637eab92377d82b15856a55a22b008df67f27aa5ac04e1deeeb2c819ce41db07dbf6dcaf17a192a4371a1e92badf1e6389", + "9e36e6291bc2296cb4ba71109cedcc2a3f0b4f1ae5e5406dc4b3e594551d5c70e6f814d2c9b8413103ef07535886b4ac518aaf7aed64abed7a5b0a26f7171425", + "f1089483a00b2601be9c16469a090efc49fcb70e62ac0ffea2d1e508083cd5d41dcf2daae1e0eac217859e5feaddcb782ac471c01d7266136185d37b568e9606", + "d063ea794cfd2ed9248665a6084a7b99051c1051e41b7d9dcb1537a1c79cba6deb4d844c6a618e43c7ca020d16976999684feb084616f707209f75c4bd584d86", + "424a86d746c87c85dabd1dae298a488e4ca2183de692d1d01c4b7994ee5124f9004bea84933c311cc38ea6f604a7769ee178e1ec160a9891c42c462a13a62286", + "a9403c26a96de2c3d359ee29f3fd1c581154852d19ad12884b79e7082d2da22ec83553baba2bdff2a2fa15947a8e6acd5f5d113ec091bfd1962a0a10401d2c98", + "3d23632ee4c2d4f4118a02a677b5a32427c72ba54899ba2e6ccd22ec3defe0fcb052e3f83d35786cea2080eed148a0a94628e735202e6b2809994c5f5bdafdd6", + "d8fa886884ce577a7282deceacf4786e7c68fc69b141137ff5dc7cb3c5f8abc845716dd27397e8bd5ce245107a984a3f8b21f19f99ed40118621dc85303a30b4", + "c768cd313602fabb2193f9edbf667b4cdabd57d5ff60bdc22ba7bad5319ea04e7cbec5d4b4c4560ad52609fdd22750b618951796376ed41b2a8eaffdd9927722", + "8562ce9399806623b2695712266af3d4c14f77d2449143379246962c22398c813544a7dee4c4847f09d3cbe437349b7fc6738ac97075b5dd9e2add6ecaa610f4", + "99ade7b13e8e79aea6ed01a25e10e401cd1d055884575eab3e66b2294f03f8d5dbf72ab1ae39103189383ebfd2e43258510c124a894a793b206fac752c035789", + "d12831ba39dbcd41f56bc7fc071bdaabfb6e7572d08b2fda3bddfc6fa5662f4bdbfa431ca2e38b18172709072e50120db6be93e86cb4ace3c11dd0e1f3f5c712", + "527d28e341e6b14f4684adb4b824c496c6482e51149565d3d17226828884306b51d6148a72622c2b75f5d3510b799d8bdc03eaede453676a6ec8fe03a1ad0eab", + "cacdcf8bf855040e9795c422069d8e37b6286066a2197a320bd934061f66995227be6b85fd928b834d3ca45e1ac3844d9dc66d61581e7799ccfde008639ab3dd", + "f454a953501e191a12a80c7a5398f081cef738e25d48b076a52f77fb09ef0bc2325116020bb06c2c585da9f115bd9d8f13b50e8e1fb1664450fae690b7783400", + "5f968cc6ecf71c588a3c3ba68858bbff96861f66c0733fd61fa91a479a49618df22d9490219df8008dc78840ae022c5d41af2b890d0214e562da8df0cb3f8522", + "e7149461f9cd00b71c216c50041b3eda9707d7360d4c21740c44c212256a31da398fe09708e450ea4e2826b7ec20bef76cd2fbd9d096af6f77f84abc2e4fb093", + "77097413caa5a2d38259d47ec078871fa09ee5614d4c14feb7a95c921c0aae93b8737a6dc89e57693be8a0710206664b80b657a1079605a0ff9664bbcb0722d6", + "55d8e5202360d7d5841419362f864cc900e11c582fd0cab2ff5f1680f6ce927b5379e27a335ebafe1286b9d4a172ab761a36eade60f10468eac4ceafbf63c7cc", + "effb03b497add6230a0ed99122ea868138644ab81e861491e526fae37c39872ca731804a0004599849478a787bc7fce21903ed551d7db881d2a2c367b6168547", + "a2269a6ef2ea8f1cf8bc3394d27657b0db996c55e7c47784c0b451202fc5279679d79e06f8dbaa9a63665fd0e914d13c6e056ea006daaf4cb61d2629468e3d25", + "5a2970d5ec346a8e4e1d5d1e57dc22f6875ddf1ce3626b49a91109e0de991033e932f883b6a795016d5014e268304abe2f7577505aab00956911781f075d113a", + "2b4356a64df31936b27f4530f076ee73e71e4e48abde04ff1f548e0727f4a5810b71874187fd96ed510d0d6886af11960a0b3bad1ee75dda4cdc148e162edae9", + "edcb59984267bb00402a78f2ca345ef2494956172e10927ee63aff23d0c834bca50c47cdbffd8995036307e9ed4b143e853450367d0e14afc8490073653cd850", + "d0b453fbe709c69125dc8fe9e8ae9245211612970373b454f8656a755e8435b321dd3a980fa28719641747e254dc42c9bf012b4d6dbd7ed13020a83b44c504aa", + "fe97c011e525110e03149fac4179891afcb6304e1cfd9d84cb7389755554ee723571d76b80b9333a695884192340b3fe022d4a233b7aa8e8c7686745cfe75e67", + "1bc4ac8d979ca62a7fc81c710cedf65af56c9b652eec356aa92da924d370fdebdf076f91ba4fe1ec5cd78fc4c8885ea4304ba2e8e64944ab4bf4d1b3d7dee745", + "76e970e9449d868067cd23b1a202cbdc99693ff6fa74ba644ec41cbf8fd139cb0f5d1106fcd6c871c315ff41c3eaf99c636288f0fcf6a40b480cb881d87e098f", + "871666b230c5ad75b96d63be22870621c68fd0899655ba7dc0e0e5299915af252c226dd7217601d3a6880d55ee5a20b10820e21c74f730eea9d47fe26debe006", + "7e3ef62552b28a2b18a71ceef2dd8659c8bdf291385ad02fed353775e01594f27cc28cc78663e17cb8b39fd4ea48d494ad0bd7aee9277ec9b21e46523812736e", + "0b87f6ebaa293ff79c873820846c0fcc943e3a83bd8111931ff03ff3b0bf785c961ca84cf3fd40e0d831dbaea595498fc12da88cc507de720a35c01d73fc9595", + "681babbd2e351501c285812e06f20940fd865516cf028b4787d1ffccd0d537705e8e9b73c608d5a8dc4f08eee0902ac12936ddb8c7b29228c6aaf8d0b909c30d", + "c46d2262f186421d07fd740f922306d99b1e3826f6a32486be5a91dc298f177f50915e17eb4ea2e45494c501736cefb0e22acd989da41ac7bb7be56b04bfb5e1", + "0b3dbc770332823e686470d842104d3b3c1452f64f1bcc71c5f3fad1c0d93f21efbd48d73c7d4909227b06b06d54057a74e03c36d9c106eba79411f1e6e1cffe", + "ca46276b0dc2ec4424bb7136eae1af207bd6e5cd833691c7d37b2caeaf4f484b96a3476fc25feb206ad37cf975383dd522ca0cc6200a3867fee7f178d6953fef", + "815b44668bf3751a3392940fca54c1e3e4ef5227b052332afe6eb7a10ac8ad6438ce8a0277aa14bcc41590f6d6a10b6b1babe6bb4f8d777ea576d634b0be41c0", + "f47799a8547fc9c07d0f808029e7335607d72224be286e118657bd13a2c51d0374426d9eeb7693bde5ec6181574c1404df29bf96941862ba1a0a9a5903319498", + "8a0ae12a9e797fb7bd46cbb910076a32873bffcb9ad98b4fc37316aed681ec49c65abbb9586405ff96cc80da4bb8fa73be1ba9e737595b2307cf369d61baf59c", + "a3c6d58872bafdedfdd50c0309089240d6977d4d3d59fb3f2be133c57d2dfcfcc7c027296f74fe58b2a9a6cb7e5d70088934d051cba57001fe27965cfa071a6f", + "11e0e521b55f02befc7207c06444fcc0c16dcf6f34962921b709a322f35e2193477b0dfa21f213f209705ff3958531a75d94346075feb29a288b62e2315ae270", + "aebba57c8ed5af6ec93f4aa45772ff5167b7ea88dfa71364f37d8fc5fdb7dc3b2c8331a08023f21d110b7d821e2dc7e860826235e7e6291912ac521384747354", + "2df1e09540b53a17222dab66275cebeceb1f8a5db26b0c41f955fa0549f3367e82299e0cd673958af7dfa04d741aa63ba2c1ad351764dc9228d215f22c24ca58", + "8299cfcea5f00c93a5eb8a84a13628a68b26796d53fb6a986c95b0b1c248920fb946d8af98343d14efc74a4611c53ccc27c5f14c7237af28364346ca5cd70d1a", + "af57bea357fcba0579c4204c0f8dff181bc8a473014bae78df76069de478b2f2a390327a65bdd24be926551c78f70b0d5f1c8f4b970997d557f06336a315a749", + "b299e421061ef26c32bb4f50ee669d05feb2ccba3297289c30e6434057b3ea7f617bbbf7a5555328fc291f794987577f458350df99af3a5778300be0bd80164f", + "cbdfb0d0e720f87259dd0d0b4e9c5319e7f88aaef7f7ab2fa1ca639afa0160822f96b3c357a4894ce53cd713fab23ad052e8565fa3b3a523cb9ce39a6bd535cc", + "059a181c83a22bff0aa9baa22d872bdf23cbe341032cf0bf57997a4a1924d24fbae9dca14b6d290692b6a6b6344cbe531734f58ad0224c6e39bd1e87f870aad6", + "9edeeb10ee1b7bb8f16a280d8cc3eda5e909c554419ddc523b69ecedf2adf3b3c9bc66fef365342471c458126f083a3b8e7c0c9d9d77e9f90196b71f9aadf492", + "a6054ffc3d81591be964c4b004a3a21142365b59ee98b2873d488293f93a8d7154bf72100012c60d3c9418f6af8ea66372cb4703f5f6381de6d4b9b98cff1e90", + "b0e54a12fdba0738898f1bbf0ba81f81de77648d8d14c20bdd5d90f300d382e069f5dba7eec6b23168b008b9f39c2b93fd742a5902a5e02728f57712d6a61d4e", + "3ce96077eb17c6a9c95a9a477748876c6451098dbea2b3261e6d75b64a988e1c75d7eac73bc2402afc726543e2a5bdb76689c0931ff762818dd2d3fe57a50fa9", + "c9acd6d98a349512b952d151ed501562f04ea4bb4b8965812510b9b842531a2b41a0108ac129cf9c9517be790921df64ad1dfc0b93ddba3415eebaf0da72f6a0", + "26b4e5c4fa85cb33359450e7f7158fb6a0739984565e9d9ebe6ad65b118296e9c1098c11541c871eb1b89853f1fa73ad8702ebf4fc9be4d0ab057e4391df964e", + "913bba5c0c13cc49d8310014cf5af1b63ba3d5db8a27699fcfc573688f0e826fb5a7b5d10d3a1de693aa66e08c0915e7278f61b5fa30f1263b134f016f74841f", + "e5d53e81866283179012d9239340b0cbfb8d7aebce0c824dc6653a652bb1b54e0883991be2c3e39ad111a7b24e95daf6f7d9a379d884d64f9c2afd645e1db5e2", + "5da83b7e221933cd67fa2af8c9934db74ce822212c99e0ee01f5220b4fe1e9b0388e42e328a1d174e6368f5773853042543a9b493a94b625980b73df3f3fccbb", + "72de9184beb5c6a37ea2c395734d0d5412991a57cffcc13ff9b5fa0f2046ee87c61811fe8ef2470239d5066c220173de5ebe41885ed8acae397fb395e6ca9aee", + "b678fa7655584970dedbbc73a16d7840935b104d06dcb468ddd9814d6cf443fa6f9245824dbff3ab5fffef24b29cb2978796f37e7b49b1682d59f79e3c169e81", + "66c64d5b0585dd8c40becd456e4b0188061ae8059f03e79fe04c40925442ba93b052f52087b30bdbfd4816bbd148696d4fa6c61f216253d7ac178b39ec44c770", + "a7bd506db9c0509ad47413af4b0e3948b47c18278f15f5b19fbb0b76e2c1c1f19db9438528eb6d87b0b4a509567db39f32641e2944365780914296cf3e48cecf", + "2e681f9ddbd7c77eab0d225e2ad1f72256be239df25933bcd6cedd757269b35e2a5352b3298a4cda0542ff7d3add2b0cf42f10fbe05a67c8763d54a78a43aea7", + "fd9be24763f682043243525e5e0780534a82ad5e83b65eb4acaf5353313a4cc7c5eea9da141de570232cb4126287e5c77657ca8d6a16b5be53f470343e722fd6", + "14ea33bb33fdf0426e0dfb12de1c613ba97141454c8971bcce25c6d87a6c2403ccfad1e8a6c15754c3cc5ac1718b7f7f1ec003c1b98d70968c5dbb95540b4a17", + "3b4b395514e0cab04fc9f9d6c358006ce06c93831e8948fb9bd2a863f3fa064e78eb57c76dd2d058d09ab3d105c28c2dacaebd4a473f1fa023053cc15366082f", + "2d7d28c4311e0424d71e7f9d267a2e048aa175455fcb724cf0b13debf448b59b0f28265b0f010f4e4f4065004904a7c2687a5a1b30ab593bc44f698dff5dde33", + "cb665ec69abd75743c8713034e9e41736f8c1ce2c77a8518e50388c411e6284d9aadcd4d3bd5a9eb74672325e41e8a67acf380d1e8a61684f0e501f5663a031d", + "4515a104fc68094d244b234d9dc06a0243b71d419d29a95c46e3cba6f51e121abe049b34535db3ccbf2ad68d83fc36331f615b3e33deb39a3381dfbcb798fe4d", + "cee3e60a49f7caed9387f3ea699524c4ccafd37c1a7e60d2f0ab037720649f108cce8769f70b0c5d049359eeb821022f17c4b5f646b750e3070558ec127057f1", + "e6ed6f060906d1a772f47e83907507f88a151de401ed79acb56be57c2596792dc0bc5a9dc1045e37c6a31da1c36200214e4f5698aa2754eeb2caecfc03bec39d", + "9ed4eee87f56ae2741e8e4d65623e4d1fa3aa111f64a85f66e99093baed990fe1d788d6a4be1a72a6615281eb45e1b6fb60afefdd93987f794084bda962fac7f", + "23139bdd84e9f43a6cc615f0f036199328d39807bec9e786d4251b83b30800f9dbe8edc0b910fcd9d9f204c2ddd4d3b92bc26a0cfaabe764bfb90a1444733cd0", + "ec69397000aed63cb7e86b4fb0bfd3dcee8a6f6a1cfe01a324da13484b73599fcd37ad392662d4c41d90baca66be4d6e3424efd35d7ff4cb07cbdfbebddb7b50", + "2ea3ea00e6e9305ced0fc160e004265221306a2be9613474126825aa3c3170ae07e5ea42f6b74f0b2c1bd2a6cd4d26eb1e04c67c9a4afefc1dd0cb57c2a9f4c7", + "6a7addb28f4f2c23cf0c264579fba5f892e010689f837b84d006d91402fbfe9ba44b9126f8b5de1ec6bbe194a3e3854235056a09901d18e8d6f1727dd430212a", + "2c0ee8a165bf88c44c8601c6372e522da9ecf42544dcdc098698f50df8e70eb7440cab2953bb490cd2a5e0887beeae3482192da95e5098d3b318f16fc08d1e1e", + "ddd4ff117231eca0445eada7c7f1d84686520daa70e160c87dbbb3fb32bb9e2f4cc53db5413d4e88de18a0118570318bd6d0e5264d779339ac6f4f4a95546a53", + "a9744efa42887df292fc09dfeb885f1e801855ded09dc2f97cbfcbd019751878619da1bc9573201c7cc050e2aa1d453e951366d81c188d329b3cb861c1d78f92", + "89cae46246efedad1147eb1868c23a6be54f6bac75f0c98a9aefc6bf3ccb89ae012f2e88a9c838b55e57b232cb3c80bc3c2e9fb3fc9768c6226e93284e208bf2", + "e80a63faf248ae762d13887afe8e1954f97327edd9641ce563f4148f9796669827b3a12b06ebd710d4171b86e21bc13360a541845354e0f4934e6fbbd7acbf2d", + "09c10c4818a6821c170d6780d006f7e853e30fe2d9a4e96545673704ec0a1a3e356375715994e1ac1d8cb0e56dbdb2f77dc558ed228fb56ee62217e63455fd0b", + "d1cab5979eb7f53c97dca5d725d8b33008906d7759fd3ebb8401ee2fff01db895495a0a062d47f251bc3fc13988607c6798969d213c941efc152e7db1da68e72", + "96ad163869ae2ffdb89b96f4dc700ece27d1f4daafbc5fb81a8e9513c6ea5e2b6a8bccf4e49a294af326f872740661629ab780581155810e492424c24f8d1dd3", + "fd2e7a6e11e5d00278099eaf403054d617acac5bd3d0a4908191782c89f9217a3f0118bc2b284fdbce803f66b78dd795eb18dc16ba85e19cb6393dc56c06ecca", + "ae53776d969a9b285641998a9f2c70ca71856c956a3c430a32a1e03a8e08d544f16511a27cfa59f6b8275a2357f8efa6544b1cd0c00a9460f47954a146429e49", + "d4748c8e17f4117bf2bf71557abb559247552126c36192c5df5c6c3e307d879b703c3fcd7099ddab243e2f1d5ae5066990a7b38d3f2cd7fb115aa6d135e7261d", + "d8ff0481a63890f0e5a536ebba2f253fa2cfa19c0f353587af4bdc3190e4f8f54d17d665e8b2011121d444bfadfff3e192d97fa03b849d63f36db20f4cf88a74", + "52d771b5016c6b1b93d3bf6a13f718a7b4741d528798609308b54cea6037862d923751fddce10580a7d6431bf208df17c1b825f7c7401ccbd6d806b744241acf", + "36d472a8ae13d1e70e1fd275117ffe34063befccf6706fab0816e1b81f7fe7f2ddb2a122f1f52c9950644659430f81bcedad5d833df4814cf60ae6c542cc4478", + "e504ad7f33d65b8d3487b28805d478778c901c0aff5f889ae95e2919b4f431a80116a8993469e822895f3c21a41d67afda93a5b29b6250f76335a76fe8919274", + "1dca53be0a34114447d1c1443b92b69dfded705956eae60bbab39178ccb11f526a302aae83720652ef4c5dd450a3647df7b77c4664717d935b4f5b20f206fefe", + "cb1b03b180e04021e0099050eb6b7eb9092c5bd5c445e9d31ee39c724f038e9f619a96d3a2812ca7f208feb2d074c3f817262f7504705623e635b9f273e37a59", + "f0482f098b93624bcde1aab58097198649a8dc84421826d1c1011ad41b948384c8ed5a97c64c134b38a0075812a35f9ce3cb200972c2ecdfc408714139b9bff0", + "a3188426cea0c18cb638bcc45c4337c40be41f6e03cd2d7c4fee26025c5ca281cfbb3ad1554d45edc2eb03e2ebe3de02f57d36d5b6a88a3c61a6aaede62180d0", + "0b14693e6320668d64ebb3bf6eeb81aafcdb7320ecde80a245786d1b0a808a15c717dc8e8813bf64bf4aa57c29c33e913d6ce1879e52e1919fb83e4a208edaa4", + "a9abc3f554c1e717935d28c28e7c26aa9dc5bd6d7b02ed7dc6afe21a0ea027a8801ae076f2872d08635ee81420711862edc4e448c85513289438b3c8be456b5b", + "04dd83d20f58e854d857f24720c50a4b5f83dbc8cabd460d379417cd4813772aa85591b90462f34db3faa4dcae335fb1252bf41162e24975a0dbd308c41a4a6b", + "ce76b25c928cb75c09c0674e8fcd22089654182cd3d84b85cc44b186a8b1a7cc1bb66f389da6d744a24a7b02bf5c85542d1ba8ef0db4a86d2fc394471b396519", + "02d1671981c2e85d0455ee85f41b8e9c32b1c80221dd432b8bcb5fcefe0996f32fe9fc3eeb3f1f557ae1632750b92d05239af857c42d59a3daeb9629e1158bec", + "6b8bc6211fe5001e07b7d20e0c49d314211e3893a39da241b8839bb3a494f9a2fd8561009d22cca1330a69362b386e715f1dbe6291dbeecfadf196da47e53198", + "d00e919dafff3d5e51ad3a3046f5e59d64b69cbcda223cb28bc370201d2c722bae74dfe0086b0eb47bdcb62fabee870c3340d46e55d8cfedf2dd3ced8a8db3f2", + "cf63f28f107a509a416f9a92c4e4db4dbf00fb52c2e16d8bb9694e09f9142a904c34e1e960bd97b8cfb2c53e7660c79b841d1565cdab83293234026a23a56d12", + "f21b8d45b6a857ce663c074c18cc54d914cdd5eb0d968e6153a5f70069345d205ddf4370ec473fc80b05f937d014c0a464582cb4a73b1b72041c5c99f576a41e", + "92287f42ab1a2123669c4d35f18257d3a536445f0e4d2c801e99f8529cd9e2a79205982c280c7a6cdddef24ce960ec6ca9a35f590aeebc40448c389e915fc4e0", + "74a9d8f9f72908c7502d1c41212cd86cf4344721a6f02d390346f2baec6e6137421e6516c3235443bc2337b3a77630712a12f11b7ba24b2d7085499ba74bcb90", + "7432861132e6894bb6ae5115398198317e12cc73c0c5dfc61cb189ff5aa9fb0d62224cbb1bfa8b105784405718e6f8e15e041dad80d11ae507b33c15c6cac824", + "6af4ff4c423051e3306ace812e5cfa85532b73deef0dfe601d2630632389d0fab2a109214d32508d2391775665b87a94d1df29db1214cb48dec10dbd3d8cf591", + "4648d263b608cf28ca65b28a361ebb00e0784c65ab1d55c46a785737b6c8d83dd52e3367d898921ea36dada42d893800d0bfcf86554cdf5e7630d60a2e8ee29f", + "dbd3732440010595ab26f84efeb07732227a7b7b52d6ff339c7ff1b6442249202ae33a0aef5167f5b0474d74a5b50cdb033d6c5c72894a3686fe6ecb36e357f3", + "c24d4054110889290cbc40b82ad8599229d8e86e4ce76bddbbb6f5386223512c9d7e00973c706442b2c80edd20904067af8e4e681aecbfadc6aa15a2ebfe7ddd", + "4a6404d278a0ba70488c18d7d1861cde26fd57d66a9affe74f1e646e616003a52fe42520504ac4ace5ca6665cf9155f44ecaa05d55f80fe9794ade17871c5728", + "fffd1b1e31377dff00b492295bccc735733b021f47bb4afba6549ea6c1ba3832e8587099ad0cc216af5899ac683eb7c246871e21c30feef9bceedfc78d0c966c", + "33c8f40e1bd1eb1a3a70d2071d27460ef0f6b2d3ece373743842d6b928f3771e4b7446a9ecfbbf552c064f6b26095401097581c38b95e9551119a1fdcb3d58e7", + "2a11cb6921ea662a39ddee7982e3cf5b317195661d5505ad04d11ee23e178ed65f3e06a7f096f4eaf1ff6a09239cf5a0a39dc9f4c92af63fdf7211e1cf467653", + "9196bbbd194541ffee7edbab970738bdd3aadbd6b73d1c85b580afac1232ae8077f743ce8b5b6f2b418b5134cccd4f83645e8631885b14fbbcb909a9836c374c", + "1959cae3600f128f72e1821c337d841b14cbbfef3a6d22286f18bdfc3ef63528c11bffa841a6d2208afeb5664d524de83090ab0db07cd47ef52f4d2eaa8454ce", + "a913ddc5bb089c121ff093be529225148df787d48f4f61699eff9fc2910282a898a81a38d66be9b06428d6466a614ca822a872c1c2c4d503d434d3b1d6942102", + "f10b91564ad93d734743281949bacef065a6432a455236f1bf798de9aec6ccac9b8d373b07c5acfbd676ef21e4a3a9e0f7c38e8756d177d0a5c283d520844b4d", + "ef26a1baf33d4de047bdd2ce34736e042ecd33aa569ffc0cb81ecfa66e9f87da8d025ecba24bcb187e4201046fb99a02dfa6f1bf88ec2b88de216cf759fac41d", + "f8e079a6dc5a6a7e7f32ff7e8015d1b26d43b54f166f2111cfb2b1eb238cabee58630ef845e0db00ddf1d800ad67ce7b2b658b42118cc15c8ef3bc9fb252db64", + "a5bfaa52499a688d9c8d3ddc0ba06decdf3829be5d444acfa412f4c6e863f4786be9935805310734e4f0affe05558999807408e97e100fadd0c93ff160f8b11b", + "ccea9fcf1ad93270ac4690e96b875122c5b5ec20d2cc27079cbf893126c44e0208a8bfa139057d72bd2638059ec8da8a720499af9d4c117f86799d7515dfc6e0", + "2efc5dfe028a35503a25bdf8b2164d86ca7496b7c5ded09c5d414b6977adbb4a6988ab9939d1ec65f46bcc99c1dcd5f19e035d8d3dc387361200e4da80c80671", + "e80d7a934fdaf17db8dbb1dc6c42e90e139211c2f599890c06b15d6248fdbe682d77d4e05f26d72852f7492bce118ce7c36950bd2c50f9699bb47d89c3115377", + "c414b29fd07720f46c351f5c80be2094e95d13ad97bdd1f7c5207b695693cd5e1e0169b1aa2e271115bd5171fec51d04b71e3e7ce1618fbfeb382f56f65f7eff", + "a4679a4cbee6292203bafba8913245f30e046aba6c0937b407c00b73d17d8d696690ee25ba1b39deb3db93525a8fbcfd88173ba9c7a65b4406d0550ba9b6cc07", + "5f49d6594da939987d1906294b33a037f63c79e078531dfa7e6ce67279d4d5dbeb650ff8690f23b63b7e9c48ea8791b80fdb34ef66dcf0cefe45842ecff4ad1d", + "b77fb79669ea52c738e58a9ef3ed1501bbe7974478afb5a8bed44549d6232ff8d7aa9eeeaf02f6755327951093243110d7bcfc0e51299db793856b57a77e8420", + "caca0ff43107f730a7fbe6869fba5af1e626c96303be3bc95155164199c88922194511b24c48911186f647ca246427f2ce7ba747271cd8d7c5e1d127c21f1eaa", + "e5106b2a0d49d6d1e13e3323232101cea5da71caa24e70efcac57e0ccf156cdf4c2492b03ce0e13437018dab76b9c989883bea69e849f33bb937a397b84ada6a", + "faee462e4bced12ad54d3757d644396ed9203037741661aea32bccadae568c4bdc925eda76610e964fbe3fb26b33bc0bc123ddf9b528715317ce5c92e00ac96f", + "fbe25b43e540104a3aade897838c63511928af5add4f952f1e6d4c39e70c923df191faa36f46b21f827d9b437996ff7206f73337cf20c6b0db748a707455b420", + "0a41a004573e0a983fe9c93bd57439a20c8f99b800a60d4a07117e8d9b25c0ee38bab3cdb6fc9216b8e07f0ccdd028c418ef97b6d7e15decde7425497644e2e4", + "ff081507f979f69c6743e42ee758858713b570cb48ff85ef0d728c4e1bb5456d035e498c05ea4cebd820e134bb252ac76ba4949a4fad76871a9972ae2fccceea", + "03444ae8319ebd121e7707b9cdfd1fdfd52f3d6b3d4bcb2748af421a3c8666c22d8c0d8a096767b1cd16a8d54738c5f67a6f9d48c90827be71691a42be87108b", + "5ee0a4459724037b7318815a80147c172d6c8f8874c9a0057706fb3e300fe936815f07672e6447b771de699dfadf345c3bb5974cf019315fadd5534dff6a079c", + "54085a2f9c327e5d8ee225eff5bd2c2837e44e8057cf1691e6202050079d26851061c4da8d88fc19237e5b658950e66866e92019d9e425e2416240a59d25a6cf", + "3ea49b6abd39cdf04bccd648fb7e1f8ae3dae9d3e3a5eab9ce29be356defbbbeb1bb93ae40d31cc1f011dcc6c6ac85b102f2654e2dbbac47333bcdb4758a1a28", + "b3851790ca47575dbf988f82c3b501dc8390a8e8598698166167567a0332913ccc8868584db4acfb2c9dc0f0a6833292f4dcedc47cf003217689bc2422b53b93", + "a710cb26c632f289504cd0039ba6ab9b4d3524c52b286d466e2f8939f8684e3f18dca298a2ba67eb710997b7bb10ae279438b9b4868d0adb248f282bb440a130", + "8f677a8089052b47be60c0bb7666e403a5daa5e28a2b632f2e496c587f1fdca0ee33d9e78daa4ef575b13389748b8c24110053b0b96a082c06c3f80ebe8de976", + "ce631e6f2c2dc5738c0fa958571773b58af130b94824331419ee57e2691ce5f29db3d8fe456cd1e7cdc07f6105fa1b6fd729c2b419008ccd889169c3385db1b9", + "fff677bb58909c158ea677be704253505b106af934f639abfec63bd0c63097aa4bf032fe924149dd991d335e1c44c0220e4d13cbc41b6a98fb5a05faa3fe15b3", + "451ee587226c99989f5ec10050983b1fd661228a4ab48618f1d1173c94fac39ecfd3c26c16653633b26097e31a0f2213b4f1153a57cb48a70d2af1adeb1bbc06", + "f9d6ad8686125e71fe0856e806d68ba97ef123443938d28283387f33e3ac6e2a7de042a3ee5f7994c1eecc5b6f22cbae1349cab2fb7a0a0125ec2320320858d4", + "f26f3268fd620fc476a49aac3ed1580864934a2f6ba881ed8c8fb757aaaa64bcdf501e1913de600bbef6f12c949fea8fd68c645086d5e30c9253588ffbd19be5", + "080845d6fd22a00b30fa01a4b4f81fdc7b46ca4c6a676ad5863a9dbf6611ba97f24fb59bb5bac4e376b3b8b3357166782876b701273ff351bc8c5805532767d4", + "2678a8715fc7e538522dd7608d769508b63017d9eb6cc48f1cb07d14e741066936c8316bf3211e09f62611e140ddd14a07f97f9f372e99c084ffe289eb302bd8", + "aa03eb09417435da9e6e7803f3b6eab66faa3d59cc622950d61f9b962b69145ac2255cd752cb9607742092697b1a79d124817ae26421e61d1176764832ed354c", + "d3012f2fb56845b258d7598c0bbb2c97d53b602deae9326dc3678b2228454a1e29f28848ed140c70be85cdea9f99a8dc347deabd46d362ed1afb231146a0255d", + "b50c896f2cdf7f105de751ff6cf664e592fab752d652b06898b9b288052df22f721ad87e702af043e6b1e88929850cbd5698a9172c3932400b2538e401a6f081", + "a34a2f27c32f993a7e7007867733547481293c391255ffd0e5ccbe91e1cc749b13525af6adfa0c2d1d64bf87dd65b996ada9111c5df55bff8a5742e54b8444f6", + "dd5f4b167175d9566dca6c5b1b54a33d02efd02e25e23bb6fb02d878a4415e5e8682c209beac04e9882a272d01e8eb435caa5bcd74fc825c6b9082d041dff333", + "a43ae5dad936697564ae1bd9b8624c5c31cc36607322af40e253f10c285467afd0d08252d2bad76efa52e4775c9c26761abe38212855a80112fe02623fbf0a13", + "a5ac23d4a0d533cb9d8a68873f5cb749228458d43ce6bd0536c8733777b5e6e3f28fd36bffe69002a0777ba74fef22de3fac4c818b4842816c6094496f968555", + "07f3bcacf5f78816d515cedf1cbba4ffc58d83aa8687b0e7252faab43e7f59a7ff7415727addf9a22560adb5755a2c6df8c7e6dcaceb53106a714d807aaadbf3", + "13a592b73ede487036c8816bd6fc6cdc04dc6133409a6ee990584160518f9ef573264cf04d38a3ba75d150f4f026f6df8936e13c8f4f3ecc9ecbc43fdfc488a4", + "c2fb590ab74e230b8fe159892f94de04ef7adaa02b918d4994f996538d257f5a80c9b3be8f410170b0c5cac3f507401220881c5e08d8bf0a13247170d39085bc", + "02951596a13a1a41188a4a1d6346f7eafb60a2051ea67c63237d1a9b79ec4733f33ecec223dedd946b78387b6f2df5e9ab6af7dfbabaf80f4fcc94fa087275e8", + "5aa4e32f0ea3e853929bf64acc9565a01300bc007063b939f6dbbe9cae0545ea95fbcac32575aa0727ee4d937071e6b3be74e23fe76fd63ec05c7f7d8a407af0", + "495b2aa2103159d9a937e9dd56b059aca98a5e3cb7b59bb690dedc00c692e9d7a18614a73d12e07634b209cc630d1818b09f1076a941ff80474493e3d42b9812", + "217b5a985bed80008274470e254443238c5aeacbc7ee2289f0e63b7afe6d0f395e2361fd6d9dc33b4f54f03ff56f6b264976161d80091788ee9d262f147a35fc", + "293c551e753bba7f314dcb93a0fad94f3f5dee6ed45d765a708e6fd277601f03f6c905d7e1eaeaec513cbbbd672b817f6d60fbf02c20167d7f4b7b84afeeb3f6", + "89fe6314a0246eff3bfd07a95fe239bd5071467f53799175b226daf6c3db618cad4ca1c1af64bf5793f03254f560e6335beaaa86bcb9e961f214b2ae97b47af0", + "7690f703e894ee22d4dff55a7f8d5021d5f17b729f95a59c4d55cfb225c67be105f2e7cdf56d140e566648e9e9c39bbed96f985a6dae1f21d8ba500f7fd40edf", + "65e415c7958a47fca9eed3846fd1283afeb38e5130f57ecd99dcb21bedda856e3b5fb9f839e579c5ea386eaca8cdc0a9549eaaf6ec452dd6cb5212b709bf5c59", + "d6542a2f0654b9b874a627d3d53764a65b1df2c0cec3bcd0b4b088faa1095e54f1799757c4371f8d544e298d600e21e11b2f90d295712621231a09c58b05a704", + "ec983e787628b94c87fff8d57d2d058667d12f5af458bce79bb7844fb41d9c55920f593c8d8730eb8d54ff1d51cd8ad2f1c2a0f7d6b299a21266744e47d142b2", + "81950e7096d31d4f22e3db71cac725bf59e81af54c7ca9e6aeee71c010fc5467466312a01aa5c137cfb140646941556796f612c9351268737c7e9a2b9631d1fa" + ] +} \ No newline at end of file diff --git a/pkgs/pow/corpus/luffa.json b/pkgs/pow/corpus/luffa.json deleted file mode 100644 index 05e23e52..00000000 --- a/pkgs/pow/corpus/luffa.json +++ /dev/null @@ -1,258 +0,0 @@ -{ - "0": "6e7de4501189b3ca58f3ac114916654bbcd4922024b4cc1cd764acfe8ab4b7805df133eab345ffdb1c414564c924f48e0a301824e2ac4c34bd4efde2e43da90e", - "8": "91f1b09b2842871bc2f069e5d278d2d707ddafabfe3ced5154faf841e96781908290e6533d146183e8b7ec298f6da20e0cfb1d41f4f711a3050faa8dd4641f7f", - "16": "3448d8766e1c8cf84ca83d0882305a8ebcab3f9c5b87f8f1bb94ec8abbe86320e6d33024fbe9363595ed3b36bf49a5440a1248f0606940aec1321fc74dbb6be5", - "24": "327ed73e847b90a1d098250020e45915ce4991b686e3920043ab17f026b2d3c77f9fed996673d527e4a1f628fb2f4f05949d3eabb0b00d9967063877e4370015", - "32": "d6c06a024d386a58a01d9c5852229593f2197bd9f3afc9eb3f3230807d99c06d8eeb7aa36d7eea74fda69ec1356191985cadedb24bf0c312ba1db9e974442b16", - "40": "7b576d395d624f6ffff5e97954b56b9e5bcdd6f50beaedd2a0e24e2439cb48f1e567b1d7442eb3d60c95be6c366967689b9b59d79a5794e764c2708386e5a8e2", - "48": "08e6c3b2b275005ba963ea7a06d16a4397f9895b635956ff8c5fc53fdc3684f3883297743e2776690f69669ab816e7cfdcbffad427026f6e7f22eef93832dfe0", - "56": "9851c57d40c270a591e1ae43bec788ade7dbe0457d33aa04d606989b298285bb98c80a16931b915d76f3f57d3d4f4a1c90a4032473fd2ce888e1f68d3789326f", - "64": "ad830c702679ca7fe84433d12ed53fd9aa66156b0eb52caa995562ef5e8ebbc76379c5f0aaab163c24734ef7ad839d4f410d3bad9f70586c3361378207b511df", - "72": "2d0288e2090f0d306a033c96c2d17d6cf6d9803d682e01f40c83890156e872152a24dd26a9812b2b7bdbb31670d22a2f8c492e592ed5c2a9076ebb2a55014772", - "80": "b5a3c5ab94a5ef494f661a293e08887e11b88494205b2509f08f80865da88081a3a617c262f04d02fd27dc14c1c1148c42c461bfad549796b844eeff40049c68", - "88": "69e208680961bcf7494eb2ad39814cbeec2c9268fe36fd3a8544ea3a0195ef5175e060ff547b0f7c626358168114040d026747eec4aa21d3068a5c6e8e5395f0", - "96": "40244bedd3d17b5d59b56ed2db0891b4cb7af510ba2b28064691d15aa8ac2eeab04c0aeb70ce2b385878e313bc5c68938d6b6797d2e6bf9eb7f7d28992a036df", - "104": "e8955edd828e3bf0db896e394aefc9ca7ee0e39622ca7649023506500d2d673fcbb1ba341ca35713ff1f07d45c2503b966ddef23ec5a4e8bce61f1dd0492e32d", - "112": "e72e941ff72b4fc0af23e0bd26fc091482f835c07602cdaede6e4ccba090f106a4bc90b39449c3f29987af3daa29dc0960b73593299a8927651de9e4d229b402", - "120": "6871089aa1edf7ce1aee06eb67db3fffb9f29ddf829cb456eb86eb6c2a2b75bdd78316fd77be821c3d397af0135f3218ffc5a8a937f1b50cb96a970e995e8d3d", - "128": "575eace1ac1a16b1f16ee6b8b5fa48713125a5f842e9238b1f2ddf79a25146831085786418ea8f4b51b3d2b48a715170e59cbdd951c47732eb24df2a6651b0f5", - "136": "b0ab1ccbe68b22e9db2965167823ebc8c0a583f22ca364d36e62b533d1f7ead625786d05373aa1d187306ddeacba095222c32be3b277f461efb9f32c822b9558", - "144": "0e27c1cd3107b8ca95e65e823a2a2fbd609a191a0636ba98d9ab4d3e8e414c1d11a93cfcf1f30cc359a00dd7900dc3bf02c3403f730b6bfd414bac761f82678c", - "152": "9cb8887ec665e0e1a90e2d2c7f442fa4c2617446f5bb5b59b1aab4e09aa1dacf3e97fa1f58567a7b53d36b08f0970ba19412c3cc9713081a099b4b3fa0e7c568", - "160": "4942b78508cae719dda5785b2571fe70301a63c38bd497913ed807946a77fa95920daad6ffc45939b21b8471ed2685490d2c1c6fd2c0ae2b16c4e494741dfe2a", - "168": "730fff7f3a49b3602b9d242363b8e5a34864c4c20c0d432ac2bbfdf7a6d37646218827e541c600f3e50b45757058a69a89b6f011190247ad6f3c3b3df856a93e", - "176": "6ca5c58bfa1926944efd1f9ae424943113723d8fe47612b8f0c180c01b6bda241490d51be3f4efc5dc1b4b77ec34e1ed555d93005bb2feac8441bab4624a4708", - "184": "437e0f52bf9d00e95417ecad1a1dc4ab7b08e2b5cc5d4b910d960213e3ef8a3ace82500ce01b014c0a8db1cc91e22f0c85fdb057f01d50f0e2916d3ae09683f8", - "192": "78ad8a9b487907c61ff260707b31f743ff1b5dfbb812649d096cc619930d2010b9496f299d0bc36e5962f53a085a8981a9ce624d4624bd782c8269fbd994b236", - "200": "73a90fd7a44c4cf6dd4cb1c0c6b19cad555e42b5ab7656dd4853170a83a48984643de31a07452d402cf4a918633bd2aaf792f4b2f3cd13f0d26636d676182c20", - "208": "dc8e61e71ebca8a192261c58b89d68c9cd835a0e645f8dd0c7ebda540c57fd8de08f9de43592f2137799c7a1b5b4e1810878a51c468eb2e602f174732b47d5ee", - "216": "9668efbe7be895a5a1266515e4c7d20eb7a8ed00a445ee36eaa0a8bcd487eaee5aae8941a52c4d6a2fe6553c225634da769512dde2e3b03d973ad671802ef801", - "224": "710531d66d7fe05830bbf9da7c513a6a8513fdb5c0519bbe44700ee5646f00301628b438c8004475a5109dc50c823e0b11b5bfeea246bb8e6cd7fa31863e657f", - "232": "810d2c6c277acc914cec0b98c89abf84d98449472915771fa2fab1f9af96eb5518d796c6cb1c7f4631ed7f4fce2a8a20d0a97c6871a9646e02d7158a376f92b3", - "240": "3e0c4bf565f63ae391cfb164dfb30439ce81edfef6eee1da3767740916288bd4a2ea783ac32874c5f939156bd045515369c03cfa50db62f79ead4932f2b6117f", - "248": "8c423ef68e6ebc93711884e2ce53c5dfdb9e4ce52fdce4c11143985f204df2949e15c908a14e807aaa409f90a0c0fefbb7436af034339f9d9f229a9c5de05b43", - "256": "ccf8e56977551f2e8d69122fb6f2ae4db6ac44198898aa2cc9af01c373b02822f46c872f22eac53cdbacfabd87f8165a94d121fe58f670cf38affb73e6e22619", - "264": "8a9ce6fa86ce71456fda0cc3c67f0830a2f2012c6e63142d363c6f549f1124a10eaf196d8e44757e51847d7fda4fdbde31e74cd747fc57226d14eacf302b7dc5", - "272": "ea711ecd5d6d29680379a01d61b9aabdc271cc73c531a7e9fae4708e18c0f7177924acd913cb49dead9e60ab1a10f8f8f37137072084c4b8768bd493fd8862a8", - "280": "b215df95dcd3aa20001d1eaa3ae6a88506d1a897795c9b5b736a26c0595343feac5e57d602316458d77cc4952249a1e48fad5219677903d37352036ba4fc74d7", - "288": "1726be6a7b9fca0a43e6350272631eaf24119ef7f8acce8b3489e46fb68ef5623dce5b3473c062fe5414d8462477efd10dd4526cfb70b67116ba4d2859fbe5ea", - "296": "1bdaba0419cf95c66943dd3fc8b7e23aabe970482aa9467ee6d8cfb73e1653eb0adb4c7145dddce546cc05a1f7746a02519265136b759da3dc670e5559590c4b", - "304": "aed0743f6de0ef70b7610f3f4f4eafe67d9f80f01de9bad0970435cb41de796aef7f2d19d8c965a9bbb6dea9cd87f1bf2faa5d73717dab948bac6808ae186bf5", - "312": "7a918e7d7ca5e165f1ab76a091da9de7b73469ffefb79a6a09ad99c7d0eaa37aa035d7feb1b1f92a78fc895a419b1ca7fa6a4c4a37200cbf53510bb6d376f594", - "320": "c1ecf8daff34596ba651cf9034495bfd277409dfac5360d9149ab1bade8c2d1174368960454d8b1183ab141f36dc71f8722b318de37644b75db098cf69070999", - "328": "01e7023cc6864bd2982fde528801652a7bc28f2928854efc18b782672bffa5275ae24ec3ebde3b4c251f61036dfdf94c6b75725ac2fc05272d61dae67bf3d156", - "336": "183f86ad1dd7b0ab9327858b1d0eba337a14fc856b1a5276e60b1746234c17ab116b07102a4d747502c6337f49535b960c8e75b223a735d8b17a7e3c222ba780", - "344": "ebb9747b256674d4e70b383a49de10c63541b3dde85e6de1642e72ba4402292e16f38b7da3f20ce02d39597d8294c1a80c7dee5f4234922bb86ec45bfaa857c3", - "352": "62741b52443d54c898a70dc88e5be7a796b014a94bbdc8d87a0dc326fb88b7e54155dc0c8bde7c3ea0fb6841902c8b32286156279f1006d661c9297f171855c5", - "360": "a9d068a8ac64dbab2a7c608e2d6984d1747f654c2a2788fcb8d964621a74a1faf3cdc06e7609da121baab53d3a6ee7564a29311d1d363989406aef88c74fcf0b", - "368": "8f18bb3723dce6bab11c297ce8f9de6bd055808649ee2282b79e8097291dc5dbaf9c0f773273497383a9bcb2ea33aa4efbf63b73279ffc643728e8583fa1cb9f", - "376": "39076a478874b64c5f869f343d9224286d581d79e038e0f61aaada077d67fb095fca54b126ddd5f7be561a7a7d6c1a704eaab605ea20a0a618f7b63084f34497", - "384": "7f7c889e9e8d72d5123eb80f2c96633ebcdd7baec0a6f47d8dc30f844d34e4407b93076506f74ccfd226ae2c4f6278507de606c6398594132ac03ec54d1a3a93", - "392": "a946194ae6362f5d37659d3cf625779847dc890eba942e4ccc3422edca22458beb717af2699d5e4b7bac319974e9a87512c28790d92f28d1df9f5995fb07911d", - "400": "0ad9cce6a271f42a78a5f0f1ce9f1251a1e8304a2f9b0685c0a508462555d05f33f4f44fabe0ae54d2a58ea19350b825dd25444c5c07616fb4ab741469ebc1b1", - "408": "39d0d70c9703e551e9435b2c8c64d98c341c5b842842f8de88cb2424dd13d77f188b13086b45de9868c5f71359a3dbdf9ccefb9ffc87b10d30932870bf1f1766", - "416": "caf30faf0d446fc8bc52b7050d7c49a60e8e40bb1ec26ff0a0a9b75edd7475a605bed2f8624d6c8e3f83744a6c2e65490ea1ec39765a93dc4a3608906c315df4", - "424": "e22d89cfd14c01ab7e659f731b7a8364fbb1115fc626e930a990112c4e3144b189cb74c4f2e094deaebc4f0c35eda4bc6e517fc2871147419da6e477341b4a9c", - "432": "575307712f2425d3e9640dc43d2d7c8618e62b1d017c0c19068c2db98501243b18177431f586f43ba5ff4617ac2918fefc39144b45c96d7241b501786fb7fb50", - "440": "30ffdcb029e5a11805c465329d05b0b39cdd564444f245e067a6d8b31a7c8fb5ee3246fafadf63bfd411f9394511a520e32f2c5cf87ba265a4f64e1a2c56669b", - "448": "a071071928b7fb529f7f2ebd72287a6a77fbcef5654a19e68335e0b575845d7b9f52a870060bc92e115181de96389aef2b4d8bf748f5f81438f2119c375f9acd", - "456": "c57282ba2493ca6277851165048f690454dd97a8da0a100c7b483024815fe14afe7e023db8852b1603039d44cfcbe16ef537a349a5196ae044247a7d677724cc", - "464": "c27062a0c9c27cc11d3f4ae6612340a6ad88f874a249f24669f712ca3ab1cf1ff66794dd262a67c04a822b2c8a6a85382b9c81c867cfa469c6012e56529dcf45", - "472": "0d253f2d01ce47c10919f06526e1400f373137c1902bd7e71177efc5d8e673c009d85ec9b16bdd1a2d2690040d6f25847ab20a0bea9d8590d56645057170b89d", - "480": "529e8eca9b0275a6c6178e8764d14cd660b2651f47a67b296296fb81080678dbb38d57d2bd367e60e9f59c2a736eff5209b1b9d4ce2e80847c5d62cfe96bc0d2", - "488": "d49efefec450e46e9c3d9efea0e8839361c477af1c671fa515c27608b8064a0c7497529e6253e0a8e8d00a4c24113010fb5f02dbdffc29d716be0096ca03ec79", - "496": "2365557868737474eb9734982c1381da7e35b9391e632b2339027775504c4e86a7a45709a64ee06e97819da0bf95d5fa62ca6f0658be4945b67a74ba02385628", - "504": "5f685015ccbdb4affe23d2d985e7931380ea79c7c44d8834820a6b6eb7af552bc4ae788adeaf42bcc8403dd3ac559d48e88644e2040e404551794b520660f72f", - "512": "e18b08234bed8586b8d40314dc2854086d8d85ddf83b321800b4039bf162fc4ab9229ca3d34f5c554e8409ef70a50c13164d00094142a6139b36e3ab911c81de", - "520": "64e3ce3acec24013749dc8f8854eea890c1a714879d35967d89f9df12fcd068956e9c230040fb7c405ff98c962173da4218684a766113615a7924ca20ebffbb0", - "528": "5c1482084a214f77cd90ab0dc96cbe726e1df208f79562d3514e07bcc14027f0213a091d0ee337a502d2611346385f37894b13fbe145f5963804483cbb932be6", - "536": "d52772799d7563737a377da549f9227f5f2708ff74f6320122bf6bafe268b927fd726147e17a7fcf77cc483957f3ffe5c3f61edeee2db0e76698435549757990", - "544": "b11d01a32b72f715a530567e0a672a9f97c59b3cc9337955c95d8e1d0f7d75f5535cf5e20e2080162e447f8a8d5c37f0116336c4dd0946323af728e4b80fd8f5", - "552": "ce5fecb999ca6283ed980bd85d4ebe75431529adfce3a74e658cb4af5c8fe65d603f0c7ab183485d8360cfe2a505de4aee026288c6845e88f1a4b5a6e069acf3", - "560": "ec624ed0d48d3dc3c7dddf4d6b6217c815addda9b9b45f9bc38189f7794214bc21eff46cb48b4cfad225b9e78397fb9ac91a193906febc94e0fc7129f0525d24", - "568": "e3f1ee07db5b282078e93f676b1e446de698b7728c3f4945973f6cdf395672fa57156cb540ca14b490652de83773838f8f8805c0442e30c0a8093800a88beb84", - "576": "88301303d72bbedc571f0c5cd0b8e67109561cf758b7eed31a3c9529b1f92aa973073416e4086914d99dfeb6593c2dedd2b5b2d1efc684354cb4e2be4292ca56", - "584": "09bb14a0a3d922ced3420756d162a59fabc931681a2b800cc81aca148c22244986bbfd001890cfc11232680af503b013772c60dd8f2f4f720fea928057b438f2", - "592": "9847497f9014f3f6dc051a48f1c45f34b0dbb8ac66280ca7827dd01021ae9783c0851eaffec9c5e80b44cc2cbd5d20aa28f4eba5c22bcda94eebaa34198827a1", - "600": "0e7b2af163cf728d83f2ab026ab55f9bd63e8ce30eef09bf50fb242281af296da4515190a5d6b485c1455b727f67fd7fc8144846459dc85d4663108b9ebc7ef9", - "608": "52c5d20d11d124fc8ee99d66122a016fe7c550b0067dc7d20e564402f9e95b44c4a2010672a80705c93afd625eac7217f4ee1d4adbb74c51ad23967c464c9b7d", - "616": "0f864c055f7c8d5f9b01e93ca4dae9c1dd63d04eb1a83ce56dd5cb829aef4b310b497a5f008ad0c45539fb1f05ae26c81d7521501069bb1f6bc3db8021ef3fe5", - "624": "cc7ac4017ffea67b075deb50a073be86511ca285405d073364bc65a8eda654cc9239ae6f15e494fe5ac3367a9a7d7aa98496c9154698454d3c28e559cde352ed", - "632": "2c2b54b3918c3477a3c5d1412ae57c9445ffd79a88fee9fdf6c7fde103cab2617703da9f1fb4f62974c537234d77002c36f2716e62365af31fc563bd7133a69e", - "640": "8718f640d34988db1992c0d3df959a1387556fa837f2f81ca3a38f49651514e0e49852d3c3d56b169b3ac5c6ad264bebb1ee25c055bc6f4ef140a11db1d8cdbf", - "648": "ea944585fab4862e4722123fa41d374791b8a14b1cd8bb75ce1b5142ee3041b302b0825f13219571e85732fce4af63a7ac018c94581cfcb73b1701ad16af7e6e", - "656": "5f93f95ea4c1005b45f78eea3c0ad16c29b6ca38263a3df2b30e320c2388bac036602c728ed99f8df3d7756abd880d727a924b35b663cefd18e7ede75f4e8361", - "664": "503deddada69defb43c1a1617bb098ce082e90790a7b3c6987896b011dcd9d1887f2d741a4945cd55cf514a50f1a2ca6051c80a7d6f0bab33205aeb95d9696d0", - "672": "172905b480a8f8d2c28509f3e4acecdf06a6b105006bfc92db0fc036e2ee9bcd172e6d619ba80b3b6296f44718d7e34c34a9524b9085d7a7fc4ba497d4b87aa6", - "680": "06a7252e575465216342e9221a87cfebc66d6d7ede8afb618813eb5151057af42bc3b1b25db590585ae5410880a8b587a9f509b4180356f0e7af1da28ce83f83", - "688": "9e7bc5bb5fe85d70a9d43ab2a0978a1385f6a648c17d3c853ceabb4a97df2b362bd5c4da170fdc7e7c34a8b606a5701e675f308fcd9eff37b57d84bf576e838b", - "696": "79ca97814a59966a23a709a3173370c143b2ca0568c22d79c98767400c9e47cb09d68c3ee24b52861da2a630b3189f39ec339b0c6ac9f12a4b07a7a26dd91523", - "704": "39b62117e2c28d1bc95dcc6e07cbd2b867b1ec731781e771fc850861e57f087ba04f3301efcc3f1aab58259e494560b4e1435f1d19eaa4d602193449170ad3a8", - "712": "521ebde88d13c6207a706f91f0a4eabb99a5e95a734c9d02add8bc141461224e0c8d2386a91c4140a6823bb8d18d08ad5746ee92ec842bd10a98d66ed17274f4", - "720": "f2099daaacc0721841731827c4a77c5775505e96e78729c64143d7a3e0f572be407f657ab83682b9bf2446550c7e935d1372fef5a00ca5e540b14f979e393265", - "728": "e240a21daf2a6c566a080bab3680b361b022e22686cbddefeab7874ea61133d083ab33748c492442d61e511a19c1d8f58f5d7a5dfb3dfe50420b144e79136428", - "736": "93d67bf6c041cff5b41c23e768f2edaebffbe36a124eb342d0ac7d800e1d6dcc96cdcf10c36ce9813c755a8100087f394bdb16d408920ee5187ca1180026dc4a", - "744": "ee2d51c5d38ace00b54ea6f49c96817e70c99e7d3193a45807a6a2f491513d39e93e955089fb34f314883ceb47c2db88cb9e0a021cd3eb1d4de86d9c2b4b8bac", - "752": "d91c41629fbdcaf8c8f1eb06ffbbbfa5d3f9546fee1255c3bfc42020a3cdfb22d4c384597d213fe490df6e9c53f1a554d51cb32bd2ee58a05d013e84107ba925", - "760": "e7896dbdcc95e3d47fdb941a374e35c6939ae567f24b956e8f4e2e76722af7ee17332f55afbb20f97d4938084e6dfbe0508f098e6db28b48dff68ca58f22286f", - "768": "fda0652083c309a0bf8a0145ce6fd96278b23f79ac11920d912231ec8668f4b3c9f7ce2540a236456a2f0dca1e45a9b9347f4a8bc24693c7e53407212f591f04", - "776": "84021338708882268aaf153ca2b5e087807e58734d5f4bdafb24b53edf90cf813bac9b834a5f51a4bd3bc6c4b9db8a167a22a09c98554cebb856b99db5e98491", - "784": "dd34f5876b879c87ca7e0bcb2a50831d61d54bce675363154f2952f37ac8a99b452752950c0fc29d9ff63d5e2d2401efbce6bfc3ea29d6a5eeeadb753038104c", - "792": "f0b42625f8074e8ab44c5ccb731847f803918aaa6fa177f971be7990d1249f8a01797cb80e8bd9802dd3e04be825bc94f593f232e00c0a3fb17acf7e866c73ab", - "800": "8202ab66b7e7c5654ee3ae4385084908a43030b7ae1f4823d25bb058a4ef48872dec29400e0f8d49a9ad0f492a852c42c39a358aa399907ce6dbfdc5bd9f13ae", - "808": "96aa4cf9e46fc88032e2d48a2a96b5e394c342b5e5575e041b645829bdcd232f1383822e82b385213c859fd73032e19ccece7a34e9962bc1f9b36d6cd9134c35", - "816": "eeec2011825cc1d283abccaff580e9b3025517a61fde26f0bb8871cab391b471b5b654820e8d1877e20da84d973b203007e1e685da6aea5a9ab304732f0dad8c", - "824": "b28cb73d6ace94dcc47c6e0d7d9f0f39473195be5b729b089211c15f847037a1ee7e6ef23f2bdbb9882ba8d42bb3eaf02817b899efffe7d72bebb6d6c85191ed", - "832": "8cd14fc1f62c7dcdd772c71ed11b6630e0caaf47c9f178863db8e7cdb62c9898dd879ff6166e399a19def6dddd66a7db942d4505c621a48e97f4bf358692fb94", - "840": "4540e9f83efc4b6e1c7b7f42fc753e79bbe95b963ecaf59b1642b84904d8ed727ca0bcf1be7a4991e62871c4c2be83656180c84ff176414f9d23383f60b9bcd0", - "848": "9930faba5f0a3cf858452cab820971182c66685dec218c2a958e3f32ed582c2f1e543d9af182c7f1d3a24936162df724631fb61470ee0967cd7bc631493f329a", - "856": "570e3dd127dedf0d9994257c60c738e6262749122c1ba0a3ad090c4c5e057046f6f3e30636888c52234af6191a8f87ae829ce02149dbea5e352ccdc5f63b6884", - "864": "673dce81cc3a884f257caa3dfcc2895c15002a22edc75b5273580c58210383d4acaa720131300d75259439e2efda78b5ff656b08ce004e728940bf128fd34bd1", - "872": "554f9b51bbdb2821e28195819d3e7e21106669a72e76896c55e3ddd3af745ec7d7bdd4d6b9148a6b50e5592de2c07bda38a819d9fb18bce44ac9698247cf1e7d", - "880": "e7737fdcb63a5df99b760106e49807a15135273c06ab5a42ed20466a97a398a43c084724fded3e24b68124290c3e4a687b3c118c637fbedc456af177ef3396fe", - "888": "b729a24847ea95b79c356bee189abb9a4e14b03408dbc8244b6b97cd43c3bbd484bc4c874d0ec8d14bf56af4499a84472d51657d3d77c767cd6f8fb6b4a97d07", - "896": "6c097522c507fc82aa75d58cb48ebf7a00d1fe8de3a6576a472bf75c4e8732ce4421ef388544dcfc4ba63cbafcb41ce13f617e2e0dffbf3a193bd3cffffdd371", - "904": "916395cff6b68a2b0696a3587f14d166525c14b75ff4b2cade5069003be74f26ea4e76be2a6ca081f21fe91491f9aa8e8fee4849476388db7fc0ae96750b9e60", - "912": "ceab1836c79118c41a33c2bae6c5b7a2c20509c2951290de1f4fe8ae6d33d920634834ded25f29741db83ff4eb510f53b7870b2f5c9627ba438b062264deb691", - "920": "fd7f48ef67c879f759763ebece05a2fff161f273ff1b64dd8250863be47a2e13a40c5b0168cf726a43479bede0ffa32258cd7db32675d00035eb4d9838c360b6", - "928": "cbb14e5ee97c7007aa0220ddf8c1f59a4fe7bbb9804f3c54be154659e02b82c9f62c36b5a2de7e804f14a2cdaa0ee9567a7ffe5af730f83c01ed59076427e8eb", - "936": "1a0a82975306b7345bd5813335b151174eab32461a172ae14cf851d3d9452ab13151ef3de04f872edefcd48584eb8a48bc9c61a1bb7571effa54ec856df0068f", - "944": "a033f38d419cbbb8c9ff15a3e383518a3ce02fbc0eb2411467b04cf110e04a7504ca23a595374169ba81e35fc0c35095bad82ad76528b4d336fefe62c3e85863", - "952": "76fb9334b8ea8cb3417482a29bebf2f2d36cd0292594872ceda4ab8e47e7e4509848949c71916bf221935edcf2645081d3fb25af6f4d20536a28777ff661387d", - "960": "3c1bcfb979bc98da0fa5447f01168d421a58a7e41928eb778e3d9d4f08adecbcdd42d5e8ab7470ded3c92dfaf5c035b213291a9eb0df44fbbeb50bc5056a6ed9", - "968": "adab5b47f883ae4bb8ef4c97f8aa3a6c167ec8826b5a2dde1790362ddef98cf5af9741eb61315710582248129051578828f2dd898c623eb1ebb02b150c08480d", - "976": "f8031aa8931c7a714a0128fae1dfdfd5fdbba343ec2d2d5490322daac3c95c116f97d7f97a6d17ae2746c5b3ea6dad596555fd42be33c2539ba1f9b8de07a179", - "984": "74aebb38f7460e931b96a34b1dcce35d4a0aad2f38bbded8adc2dc455dc66dbaa19e72f63df4186ae64d9c01cf0476dc157bf246ed1a83fb69e59920f49ffc0f", - "992": "6cc3a4ba56e5988de486e127234889985cafa87aabe476e6622cb294b9a7afe263a72ca53d5f50e62a2b98597f4f624307666dfde6e1898bebef2d8473dd70aa", - "1000": "47ebffe3bec3a72fecc198cc23a3cc5bcbd4b00dfeab8b699f2b0858e5d04e56e72212f3761ffbee0cd17c5f787908519921aeaf15757be17b92ca69a1d049de", - "1008": "476da8160d6019b08b11bb71b8e2e38bab0e52de28742e0dbcc9a91f6a6ce9283243d8265505483970fd63331dfb6268b7f41a0cd53d536ee944768e124518a8", - "1016": "f091d9180ff59e430282ca646df5a2c1c99be52c9a826d89c17b5c35d9fdef9c8033451386b0b60d42210b7368559df06844bcfd856b8ffc7c9067bb3f180ba3", - "1024": "b5ed1243b49849be8e841ba314242ae3b769cfcaf7678358e2bac83f1e08e3c83f53b202ab693e4c390683252d2793d89686670bd474e7b5f542e10949834e33", - "1032": "25dfae26d570e623883731eae7fa5ab465f64dc6c3d84e95a892ea07dda48d98d84d902f229d1894f9113dc2bc2e4521176bb88ab7d00d5edb414ba0ea25ce81", - "1040": "b6e60a66fe25ca3707ee134eb4f5a8d31d05140e0e239c4db1edd8308332b078253be5e7139ef14e89fb3d0c37f3a351ba716b063efee2f7a1d44ad17c2eb9f9", - "1048": "db3de8f67e0e83710f1067d3440dd8b9245faf81a67a93e7b1093277782c1d13ed9c037d10e311af903b224cf9d9f673d6029ee7b32533c6882318b5930ff7c3", - "1056": "e4617e72ad1407bc1b597f5e4ff9efe66f81d4b6a87d84873a0c7fb1e310f6a0032acff8319ec8d9d445c3a7df2c634d19803ffb29456223a9ef2375c4b8809b", - "1064": "7778e1c33f93fb38612d67e58083de32b066988a382a9f6e323a32bc572d89732193d7438d361d09a2e14be2a8bb4eb984de147771aa3ef723fdbf356301fc1b", - "1072": "59998c54c0084e29260262f074977e99b1e89872dec6290f2e4c23582826adbcc2281b979ed3d0f55fafc9e7f8071f7b1d5cea6ab01f27334573164a12326400", - "1080": "b2f601d7f7bbdd547f4170b7522f3ed8efc0c4b65ec8e9b223b3e650e5748f3411277dddeefc933d68d9211416d805dc0915134c168da3c87b2a1381fa5a6746", - "1088": "5c313b95f6947238e5ed162ecf1e6659cb4ab4b8c115bba0d89f0be010c360fb660853c7dccf6362bd5d07debf86739e75b4ff6ce040a32f26589528eab7e27b", - "1096": "66e5a182fb0df5744f84c492dbc92d9fb12e526447fe85de0fb8550b1bca30e28c8bc6108795ad009fe099f791d3294600be11996cd5d762fba16ff946bb80bd", - "1104": "414e5c0f8516fb59b243c8262d7d9c7b12615709c2e371c4b10dac2798c75c7d496871908b13c23432a6443db3a3ce2c0bc0ba2568a06b90c50b9b165db9a09d", - "1112": "6300474114eabe5b154d86bc3d71481afba4b9c949c18cfc7f08a8c94a81186fa114347cffb48f26953ded3b9c3cc09f47f8ea7fcace79320f561bbd961bd00d", - "1120": "b806dd8bd917d4020efb8cb07d9357e34b65bf3196c35b37ba61107dd77e8b0b0d46a0a23e19dbf747adaa243c2672679dd5c65feb537bca9690ab85cf4dbd04", - "1128": "4e4c28e6c9d8c69dd4d4f0111cb6b708aed6a0b4cea3a24fb86b3c3ac403cc3ccd82a8c542d7c134489db65f26a7c33495b42f710fde2e889390a9c1cf83fd76", - "1136": "10f94832cec6dbed5b151f3492d849bc7d3dcf41bbefcd047d36b5142020b7551d60ff2a6197c92ece963ad92a2cb0d7bb4827082145e45a4ed12da20503e37b", - "1144": "32afdc4156ae8c2ad689190f0dc634a7564fd04ce578c8196d33b91a63483dc6982c14aec076e3a405c90b64c30ff39358e7d2a0c72c0a1513625613a64f8aac", - "1152": "b5164ee623d4d78fa62938e46feddcbe81e11b2adc40f61b4abdbb2f9877f4d4c7c63c8581bd7475ffe3a175ba5b8768285b8e7f8d8a7eef8931fe3621b3e3b0", - "1160": "3200c1169e6e63f31f7c1b9970e0c259539246958b2eced41623e00b20c877a67d60bf4684e2b929b995944024e7c5608fe94eafc2b15290c5b11a7cda32d38b", - "1168": "d473424d87156ff0760e12c3edc3125cc791179c0a00cc11f01763cb1e82323fcf5c2cd18e94043fc169adc39e756ef5a47244d9c6b1a40a14f5cbe3fb943aeb", - "1176": "f221d1362c8de86227b0b467419b88d8b7b8c86ace1b88970e0721ad2aa1ed811e71d89a7938f64d3275ccd41c00a1b2a6096ab6ed3840ca0a8453c0b75df950", - "1184": "128c7830bda40e8ddd722301d78488fa4cdf9548ead7b490ccc4ef40a133b5852f6048faf8851e3c3169a5ac214dcec85d2f0840306105a28820030f4d3283c8", - "1192": "9cc966fa234e816f6b47cc9cae9e6340430b214c54dc8e7d2659c8d6fe42ebee08164085e13bf7bfc1cc6c639f91ff190a225a384b1108fa8634776ef1ffaafb", - "1200": "22c42c74263cc0022a9881e82d77bef40264fc3b5a0e643a27a1d0b6ecad419e2fbc7b06e3d5e9cfa178380404cabcec808a5b91d651fd529bfa6058c202abaf", - "1208": "1471ef906dd4338301bd6e029a7aab405b8e374eb5a4df4c1b3a5ec6173a7b35a35b61c37b7535044cf5c56c1aa072d9f2153ac3137e9ffb865b106b37c10d3c", - "1216": "97eaac381c438dbf13d57cdf6e7b7d50e4e08638ea4f82bd3c3b8d5fe0ce164b62fea9568f6fc18d6253ea9aa98c0f4baee46a9b5a015fb079e07667d02b71ca", - "1224": "0268fa467f46e0af80ff743079f04af06185d4d42462a1222569a2e6b6ee3ebf150ae1a630124dd3138213a0e96110adc82148239e51ccd7fcd25b01474a961e", - "1232": "d15101303cda52cca7d36003c0c1116da900b50fba8f6a7d7731949c831dce9801f82b74860ff1db6c2b3d624580c107ae05af6afbe1b618b4c6ca27637e2e30", - "1240": "87dc2114f4ab1c4d6eb6be26851cdf8fe02d89c5e0390451e4eaff8d9788aa6b5451e24e0d4adc77bc839bc2f1d557c209457f289294717fc513df1ece883a63", - "1248": "042137c73fc8e16d133e4b174852bf7f4b56c51e7f9fa4231e59b3cd87f5ac341066571297a9f9463e19c077947083a64664274854fed54817d7358c2389f52e", - "1256": "231afd8989c7300d1484955fbad5e98245a7a7558c1169d982fa69deb7af3f9da669167357b18fc96a17c17c4d0368e21f2c4650c376ab13f19f036bf31a2ff9", - "1264": "7787badb95b00f2f53d3086024c2df76cbe9960423e6c79b739ffadda386b4d28cb5b220f1be4e20229544ddc5b40fb9f279490d55ef73e7fc0b2a152565a8d9", - "1272": "2dd525653d526823a1076e4ed62c807928982a0c99246af9253ac5a65169b5cafb5a7fb267f29f0943d58698c5132c52db914b8a03f3912a91bd49bd2ec95728", - "1280": "e74187294f5e1963178f053eea6b987b1f9884052d7f57eb8ae69f59989518898d4fa45642b7b877103d4d4480de441935c76a4590d18c952a62c87826e5eae2", - "1288": "9a57aac93dc136140cdede35e6dc6ed6f0a9f6fffc6609e4715a1f451f392c81676c2240a1a6d8979ffd411631f2f7ace0c5eaddaf267b4d34740f04f2d5e6d6", - "1296": "a34ba74f5be8b0f8e9154d12bcab0be154a12a99a7339f22c306d4e6d9a030668d31fe9f80533e730383d49ae266dd0d45b84728e3f98e1b3c814aec20bf1b7e", - "1304": "35083bf35c8509c2c42b76e251fb8ab5fd9c58906a87c033c70988e192f42b00459784c7f3baecefe5f4b7f6d48abe841a3c091f623297439e8d7466536381db", - "1312": "78db4961f6ca3a833316381d80557322bcbfcfc0c13bb2d508ac7c2f3302147c86b95711abcf91e888d88d838b4f82018cbcaf4e16f56a0c7bebef39a6f7f303", - "1320": "5d49884c40333702b0d3698548cadbe41ecd117b51ea965d701a50ce95be5d90b53837365d5da7b69e984953b6a7b151e1d64dd7cd0b0147c15e35a858535a94", - "1328": "20cd5bd9fb57ace8d8e3f9ada16788c36b7f1836793f1cb97cc77af355d31f934cadf43b848c2086498928c9519966bdcb485c1f25635e95729f2dc325a7b7fc", - "1336": "06fcfebfa15ad5a877b3369f60c59b3356c8bfde902b723d2b9e02104248eb08d1f4f488266b120c2dfbc034413349d70bd54a94627eba9dc7934db30a238d58", - "1344": "ade370db83790d06bd3aa794335ea841de3c1359aa3ebd2c98ac6a54fe0cf3c1e3b61725380fb6bb461657edf1a31111c4f6828aa15407f46410b77e3363ccdf", - "1352": "ef33b20df3383a2b2fbb47a56fdd7f29eae14422c3d6df1d3eec7e47cadd2d0ce36b1cc317f6025bc3aee46af222f27dbdcc6fd6e79d98898f6ef2ee6b8a0322", - "1360": "ee1108036defbd7269c7c42c04cc5ff1d8fa41147935a837b63751867be9cc27441b9b52b8fcbbaa7d587bf38e48f67092cb8de6ecf3abeabcaf2db586d06877", - "1368": "83c3f751b4e12080c16c6e4d043f43ad8c7bf92d91ba7ee1652e6c65808574a9fbc8e0b622424dc158ad6b4dfd046f546e99ec0bbbc56e8ad6ebb89bc07e518c", - "1376": "3ddb4ed0eb514ee4a045a2688ee5d0dd0c8ff96606e8bbe90a73e5f5d9fc742b91a6dd27ba09c3d60b7dfcd89c99d320f3ded70ac9ff5658cc544d594b047abc", - "1384": "583a4dfa35261dada300d9b9de72b2632bc503153e716ebed1f62214a2238135a4fccfc9f97fcd1e5cc31d69dc9f65916010b902bb55d55cea29497cf22ed299", - "1392": "032e6c50329fa95652d2b2203ef713913f2724d58c91914be29b47f8a85174f9b2c85451f0d40b2569d2c8a8c49b65251f3e3a68eb37f183fdfc3ebc599da4ea", - "1400": "caee147101f0cf1246609b8e675225bab1367db66e3873eddfa0e3bcec88fdb425147a3b086f11f4108b4dfff2ad30cea14ade286b53bfbab7efc703ba979341", - "1408": "cdc17763e984e02f82c81ad2b93341731f44927c2e11bfbb7a772ce454e37519d8b93386fb2b0b09633b30a88c8f70f17eefd3695172b1ffe7610eac76d399c3", - "1416": "4275139249d82f9ea038d37bb17780a308d380c1da4bb22c8c55b1d7988f1ba302448b52189c11a1462f3842284b7151c082f28a4ea6a6c47195d4acf616cffb", - "1424": "d4234730ce81d38bc5f228e4bf4e317b44b1bc6a73933c140e5df9bfd5103ce9d6c4699d8c59be46c48c38c7ff022ad336f90d5004eec4aca3bac1fea99aaf66", - "1432": "019109b1bb4b604ca12154153ea7c707d7046c56bedb44c436ed525d3d3e120bfbb5e8b454991a18fe7fe42c14a6c975a7c46d6e7bbf95c252d4f860493e2c70", - "1440": "7545b91125394e58bec54fe04835a9a1731d842de972be8761190ce2f3268b76c6f35ea74eace559495cfe1db23301cab31f1e9484f83466995a5a41467133e1", - "1448": "905353c2de95260bae6f5d93dc540afe05602ba9619956398d9077cb4354c179dcbc9bacb936d6936b857d9c5b4fd4d6bd5a76fd3bdd18acd4e587723762d9ba", - "1456": "1df0aa95f706e3f3ddd75a8301ac62be1526eddac4576b453c59fcfcae73015516b32e6d23b8fb26307a4fb28809e239a36875ce5ae4434be1739e711d288b32", - "1464": "f5067d1d4bb731a0988cccb89f75c30567c584fce464f67f8c7af89237145f4c155393c77f7fc53d8b37161c48462e78694111b6f74e23bdd592906f72735536", - "1472": "9174b14f2e73226caf4ef83a1252187736accfdd471826c17faaf69f54aeaee8a83f2c6c9a17ff3e9cb5a006f708311b41e7875357c3e2c1dc66dcb0e135e1c1", - "1480": "af55bd72d057ab5f23410aaeff04e4f49b9e1a310b91e3ab2a999ec7ad98f2207a4e7d756c5515a0f2aea4cf0b3641a79018bf085a12dd65889cf37efe45f668", - "1488": "7e44b51abc64b8c863416ba15d2ae746df81d2c7c4a9d076cc3524cf49ce835b685944805b70709f78f75b20ad7505d8b46215a50a4b79cca463346a291924c4", - "1496": "b7560cb112897107076cec805f66ea96c3db9053dfbf3afb20ff11d48b65fe3ce3143ecf4f53abffc22f2e361c1d5888a66cd7f6c16b2d732d9c70627dc77d33", - "1504": "d1eee7eb549fb630615278c86bc5bf6ee9cee8fc076be624b33d7c1c54a1ed7e85383606a0132684f8243e3ceee0d35d777eba63ac7d53d7d3cc99fd6c92a528", - "1512": "0294029a59642a4468f3cdcf12bccf42a124d00b43d1eb769cf147fe97d3e6bca94341d44cda6e62fca947be85d21e56dc6c1d79f1857ac2f77f80f345a9befd", - "1520": "8f0b4ec494e0b5c7724ff7c550d2120f1a44ac72751ffd3ffb699ff06b3379c27ee9b9a66589bceadd96a6e3edf84db77b385b3592fdb258c673bd9bf72ed5d9", - "1528": "42c575905cde56226bcb98904e34e55b61ed5415aab1447e7cc8518a438d63c2e32824d4a76a262d1f615b6571238503a2553891e45f14e6d5576c9498b9c358", - "1536": "315865c4a6f88ce47c38427273d4445914ed45d6bed2027afdcc058348c4474700f0b71ba76211ee9ec99c1f46c426476263691db5e491f6e9121ab2c1c804ac", - "1544": "7968bd39730161325977dd8a3d281670ae65f02bd7fe72e1356642e13c339dbbe6e6ef43e6a398b1d3242f14fcace63f11fbd8493b5ff809fde08070be4df360", - "1552": "55154f452fc68aa6bfa72a2d4adbf5fd94916824b4d3215aff226f5109d8b2041b0cd518b246b1c2ceef48850665acd4ec231b68842c903562b0efdfddb1eb8a", - "1560": "ffa9f26d68fc52554af61b49fcb570b1638704335d0f2e34bb2a1cbf50e079598c269122609dab4818e1d45c742e5962676a9d1350e3f773cbea1ebf609665be", - "1568": "ea84774f6c337669a3af4066a49708d1a80976951733b3c13628e40bbcfec86584b6981551a432ca83ece139cee147284074aa60e64dfd51d084be0c08d39043", - "1576": "abb3bb0062a8935d5b32739223dbab190ca239b4404404e41bb2537b5f3ccd476e3bd14920522f702717a5dc5d1ee90c42de57f7b354fcfef34175383fab144c", - "1584": "1e624edefa8e4f5574a487555f673b2ef1fbdde90fd3cf0613f6a142cd925fe78eb863c111688afa5f6ae79e22947ac8ab6525aab0a81a69f9a75e508f331af6", - "1592": "2cf37db39bc73431e1a596b1a3cde264f775e550ed094f039eaf68f0238a3e8bb73809e52bc7c426d555ff011d567cb754b8b8f5c77602ec9b0519c4fd8384a9", - "1600": "09d97d6122812b8e3616e16d63f231c48ae88c95425a5d3a2eba5705ad80a082ee910f738b1adae28ad0a02e5042aa03f124f2127402ff7e4763f874cdf3db14", - "1608": "9a7aa151fd97e752578e722bf7cf9d6df3c881a9fbce11284b41387b7421f3175039167d3a2c7c4ffb9e10cbbf68189ba378ed858e3ccf3b025304440e4202a9", - "1616": "25b5d8f2f8e5f6d6618e312ff57614b9e91bf46ecdb6698b1dc512ae5a9bd614b4c001a9a7e7c68a3dd90834a129b67706e1d021d39733e1c1c60881826d0f8a", - "1624": "8ea0eeadb4a51a6f1eefd458630e0b8e797f2def11248a8d8e419f866f883f254a28c320f725c408de5a4106e57a630b24ddb74710c5fd43fd0e7ff14329de11", - "1632": "1c1b3c5f4d899f0e6d78f379cdaf3b71326964f724471ef74e4a1066e2bedc19de7f0f673848114a741cee0c4bff8379ca5631224e08eb095a7fc3b62db2de11", - "1640": "cf611a3bc1c48c8c0ea757b801e73469658754b04ab36d100841b6e3c9a439b34e41d76aa6d3900c88745710baca3d2d1c446fce087ada2e7a14175d27a190bb", - "1648": "487fab1619b3be26615e7c78bf354b761719dc0969a4ba55e8fc6e8cb06b9ec04dce8b7ef0b2906a8103da0a208b31be10186c33d85051fea71f12b6b74cc0c3", - "1656": "f7986e211838d9674e38f0237e017c84d395c869b3e4d7512aa6839c3afe86f90f75a0cfa81f47e35f4ee62394779d0dfd73f1f942f3f028083375f342eea36e", - "1664": "bd7bf4208c94665e0b5d987130327db3c2275d9d76f1c87f53027b16e3e0ebac86dccf126404cb89bc0b6e222fda625df6d9bd10a9abb277fb96c19bb7c4d362", - "1672": "dbf1cc285be183a0e775465c3ad2e81a7fbf368656a734d2899fe752753002020c27f629f63c4826328f38ee14bfee3316ff1e022fe2a4d1d187b711b4ef7a85", - "1680": "279c585aa8a0042f5b7655b849d37bbf161eebf296b3500ab73ada8bf12945e2e27f2055125d01ab5cde0d3c4aa69f8f9e12e4e17bb2419e5c6a4b96a1dea1d8", - "1688": "31cf2acd8e19d47c15d77d6ffa0cb64d84ef9e16693a8003391d8df06b8f8db7d52a86aeda134eb588079e8cd7dca3beb40b11c2473cf3b604b7da70448bff17", - "1696": "479d51f4860a69b28a9ec746035573205d958ac9947967a68fcd37b0db0a05afb812581850b287925dae13f02447f60f3559efcf8cbdeeaed22a105b4a781b9b", - "1704": "e925dac362a0cf875607a0aefb2ab04b38f71b026c468a214737ceaae436b937ca246722cfe9328b38b1120320a5d63c90fd0f454eda9cae4dc3999b32b70095", - "1712": "101f67b73833a5844fc54222fd727c72547c0f65e90d803c1b1b690cf235c1e0af14b7999ad5a962593c6df6e9e993844f5300f95614ab11c2a1f52ce139ab68", - "1720": "e43d50204285e011e2d4cc66e9500af544278610eb9c726488d27c799ee433a39773190140aca1133c8080bfb14704e8fa72bda49084b5da70181d993c9cbc0c", - "1728": "9361ed6472d6faa9c0d4f8344378f100f86467f401980e2ed7f9be51ced459e930789857321c858d2dbdc5edbc30988a55f45263e039eee7c0f69b05a21f1b30", - "1736": "ad2b8ff7953aea5c1294aadf2a95697a7c8940af7b767f37cebd18c706fe059da5bc372979561252fd6808c3102b13ef309fcff8e31e012963977290100d1010", - "1744": "9406441b0f9fd9bb89d8faabd16718237b43c399f1d23d5fef3493e88ab69100fc27f9af9baf54b52510a309fc02a26b434f1f1ca5df1c35609ca11bb6ec17ad", - "1752": "4df7bde8dfcac57d23122a646c2707b946d4e0464405327f2853f08792dd7197d42bf277919e65d0d4dc15e84a8902e7f5e54de237184bce545da85dfce68fcf", - "1760": "ee767971d5836dc82be981971dd151b7b9b9f63c0f6a0cdea04721306f88ee26198fe657524eaacfd404ddadb76c5856b97ed8e1125e262b85a5e98cecebbaaf", - "1768": "6d7f36aa5ce259e84e96b4c83563c4177a0928a8312dea61f0c45572cd4ad856ca7324403a50b88ce07004d003a6ddd9b5df12bcd3c041ba0b07b55744c66ae1", - "1776": "9488c49a06f3947445618ed520ac8e288a2a7f69b9253564e9cd18446d00cfb2c6e1694c4462d1a05b35b4d9913166fc14d34a319bfeb1af8b6871c329ae16a8", - "1784": "3ea6d5304a0c4f383bd1f16d2dd5f4cf40bc89f1e554cc5d742bb2e0143a227e1a331c6e1b73ae9c3315c29cd22144fbb83507e65ec7437e9ff6ff4f6f1b0b10", - "1792": "3e973bf06429c78ad3f3df91b815096993b2b2b100bfd92de0984c98ed0ed5b591a7f23b11fee072f50fb182ac5c31b74862b2321aa5069d0d96d83f151f249b", - "1800": "4bc6e634da64cb4b653088d14b86110da292d2dab41b0cb8a56ffaa427cfe94b57a63a254038735a5eebe4132ec14b409db3d0d9381dc00bccccff1f06738c93", - "1808": "37ce2ec417c169a9eb2588252fb8db87a6c6f681ad0978d9a0f63ad2fb3955765ae3e0c089bab9f05146c21bbf25de5bf1938b953b899a9ec064cdb42bce959a", - "1816": "0b6ed960680743adabab1c851245de989fb853b9667a261fe37b1797158fd27c9d7b62f617ad914a2266c8f09c64de0ad2db6d3a8f6e1ae11eed9963137ea6af", - "1824": "965ebfafe094c55eb4e235ed0e9728328fe3c1348f581b3a65cacaede5036dd7e41fbdec324142fb3221023d5ef9d11105bf64744a4d1397c2bc9c5e9b279040", - "1832": "e35444436569c890e80131278b40f3062fca3709ee3c231200e5ea68b21796ad5d8a40db8fb27a80a1579d651bed1d83cc751913ec41c3386d18440b673f68a6", - "1840": "2c82dc4d2e7a089932fa0cf66c059b1383044a3e4f3360f44e54b99b7036fc8d14656d38fdadf7ef222ee0889dfea487263ee90a1b3d0684c5393dace1914564", - "1848": "569070277a7414affb1167d3a60167db189c38f1550f677646646da0035173e59805a1d35354c29c352ade998c5df2f8a87be8a95533337b02336159ca9a130b", - "1856": "315357f280fe668c740f22e47a4d25ca8e2ee9116722dccafa8599320b7a5f8955ee5808e60da4c067e889ca1beb88186c2de3fa4ef20e42b46b8bb7dd35614b", - "1864": "9e91ab54ccca791114e2f9ddfa1d84a145b108cc697181a82503245f32e90e1f826617db820e54a4204a0113b228ce9ebc84e5ed1ec85f0e37d2607032924cb5", - "1872": "6406c9eb41f190d051b5e6dfb5caad8a7a84698eae54ee4997444c145e779a5f577b60d434d4514f8e6214513524f69f7634bffdb388ec73ef2f450c420d6597", - "1880": "6a1ceca80c11358542875980624691c46627d7c9dea0783fc07bbb469c7869986ffbe9f1f5c87309d134849651078015ce8196bea30011e1c6a484c4ec2a8666", - "1888": "68086b5266e3b5426bdfbfd01ed1df179333ca9050ab3370339d51e7eef813ba8ed3b285f077b67d2c5647c577b6b7f2083d3bfc9a5cdadeecf13b5097c40575", - "1896": "607218ab49572304f5e1c56829f65b07893e1cb811ea5d79f7995c2b7cbf340bb11a25980a8bdead6678da01aa12cdfdcd9af894d8ffdde116852322d1676076", - "1904": "8cc3fa561bb5ebf48ff80f16fda49ece21e388823347fbd56e37c2dbee77eff3b1c6d310ead3b6f8b3c695cec6ecfa9faa354e33d82c3ec02b5661e9f0051625", - "1912": "1fc94ff09a162fcd87674326d394f0005c5f3ce0c8ab6cca18a2f06c8b16e9e81ef696f6e896336228aca4779328e5458e580c631c47b2d0bdb63c2c76d54213", - "1920": "6f85a5a9d282d170c69996a88d8a72aa127a214d54064a79a75701442b616ef38e4bc3dc4f017e7e8f38f287c0ccc2015ebdfe362ef6d2f515a6959a48c935c3", - "1928": "558ed180abd9288457cba0733c3fba91c1d642c80f527d4d03ad667e6ce01991f3a5e3d592f9fdb75d4e00c50983559b1d94180941767a8414867de713a48778", - "1936": "b68bf33e7e52bcf273a9caa8d0b2415fe339b883635aae943f25502f42535c9d5eab6e74d13dd1ec5355f4562f172dbd46b698f17fc7537781481494543662db", - "1944": "9b12cc40ace443fc7383f9e0b9dfef64c05f181a425ae3d8ed41a58a104b53c11a66e2fadce82e75dd5c6abf1523322e9e23b401c80d39b721b4c1ffbfd88dc8", - "1952": "9c36854691f0c727f3d8d83fd4b2095345373959d85b7a49d01da5c1b87bf42869fe2a2752686fbf192943c641f54dafe933eb9402f0011fd4559c83ce0e00df", - "1960": "94daa8f7cc9bb3a74f6e8f2015d90b900c684efdc1938f1c8d530a632c7b437dc6b934bc3636dae1c8822abeec97022dbb8391c49576d97bd04351d1cc49cac0", - "1968": "d16d447c722d788e6f538679add7d251f6c19233c53b84b975792ab46c840ab745230b93f98586db5431faefbb26e9aa83d5e29fea35b0d0a75d0ef6975fa7b0", - "1976": "e42a46e95c9d205005f6b3c1e82173c2ab6ae774740bc1f22a018c221cd4dfbc6c236166908beec0ceff652b880c58e53cccd332730cb3c70c34666631dbadb9", - "1984": "b2c587b28330b8c8d38154c62dc267066e595def0df57c72c14bc192f6e27483eaf15e237f236d7f84a81413bb795a1a79a68b95d27bdb4f33c6183f6a10619c", - "1992": "6ca6718e1d27448099911ee4790db88571ab09a6ba6751079950db3adff77aa67c0750a4127c5baecff8dae8665343c66cdd17f46f4bd746b8b45c0dd48746cc", - "2000": "742f7d600c15786b9ad88db96f8e0f3c2fbebcb500bd1ee1f20253ecf68fcec2ae9542fd52172ad68db7431466118f6bd1927f13343fb4d8c9f60e3badab06c2", - "2008": "33336aaaafa6221b5d956eb667663cacd1cb34bca0e26ccd1f94285fb7e8f9e1b1a43bfb96dcefba84c76cf5b9a044dd035555b33c09c685f4bfdd63381b529f", - "2016": "267a312c475d4a2a3e1aa210355dc6034422ec435fa7b5df1d6cc96d15b83c79207a76c993d77a86918318e21e0b318746e6e03ee9ad8445993fbba7e54df0d6", - "2024": "d5630cd98120bc89b061811debd15f56dee59047240cbf1d0fd3c982496e2fc06e55d30575b482ae385b9821ca9b9d7eca144823b0d16152dac0615d612edba9", - "2032": "3bd3b8ab4f6d5efda1410735d3f5d6e6e5331320e8c05d5881c736da44d8850fa33980154b77925ed92c9726370f68c10a10269c6b5dfe469badfe4de3f047d8", - "2040": "4c0f5e7f48e3807eba34b57e899314d8ae4cba98c975f9f785339751f23910c9d156d251f2402f0c0e4e86d9d3ad0f637a1d93760fbd1761c6e40b28e04a8d55" -} diff --git a/pkgs/pow/corpus/luffa.json5 b/pkgs/pow/corpus/luffa.json5 new file mode 100644 index 00000000..3dac4571 --- /dev/null +++ b/pkgs/pow/corpus/luffa.json5 @@ -0,0 +1,260 @@ +{ + "nist": [ + "6e7de4501189b3ca58f3ac114916654bbcd4922024b4cc1cd764acfe8ab4b7805df133eab345ffdb1c414564c924f48e0a301824e2ac4c34bd4efde2e43da90e", + "91f1b09b2842871bc2f069e5d278d2d707ddafabfe3ced5154faf841e96781908290e6533d146183e8b7ec298f6da20e0cfb1d41f4f711a3050faa8dd4641f7f", + "3448d8766e1c8cf84ca83d0882305a8ebcab3f9c5b87f8f1bb94ec8abbe86320e6d33024fbe9363595ed3b36bf49a5440a1248f0606940aec1321fc74dbb6be5", + "327ed73e847b90a1d098250020e45915ce4991b686e3920043ab17f026b2d3c77f9fed996673d527e4a1f628fb2f4f05949d3eabb0b00d9967063877e4370015", + "d6c06a024d386a58a01d9c5852229593f2197bd9f3afc9eb3f3230807d99c06d8eeb7aa36d7eea74fda69ec1356191985cadedb24bf0c312ba1db9e974442b16", + "7b576d395d624f6ffff5e97954b56b9e5bcdd6f50beaedd2a0e24e2439cb48f1e567b1d7442eb3d60c95be6c366967689b9b59d79a5794e764c2708386e5a8e2", + "08e6c3b2b275005ba963ea7a06d16a4397f9895b635956ff8c5fc53fdc3684f3883297743e2776690f69669ab816e7cfdcbffad427026f6e7f22eef93832dfe0", + "9851c57d40c270a591e1ae43bec788ade7dbe0457d33aa04d606989b298285bb98c80a16931b915d76f3f57d3d4f4a1c90a4032473fd2ce888e1f68d3789326f", + "ad830c702679ca7fe84433d12ed53fd9aa66156b0eb52caa995562ef5e8ebbc76379c5f0aaab163c24734ef7ad839d4f410d3bad9f70586c3361378207b511df", + "2d0288e2090f0d306a033c96c2d17d6cf6d9803d682e01f40c83890156e872152a24dd26a9812b2b7bdbb31670d22a2f8c492e592ed5c2a9076ebb2a55014772", + "b5a3c5ab94a5ef494f661a293e08887e11b88494205b2509f08f80865da88081a3a617c262f04d02fd27dc14c1c1148c42c461bfad549796b844eeff40049c68", + "69e208680961bcf7494eb2ad39814cbeec2c9268fe36fd3a8544ea3a0195ef5175e060ff547b0f7c626358168114040d026747eec4aa21d3068a5c6e8e5395f0", + "40244bedd3d17b5d59b56ed2db0891b4cb7af510ba2b28064691d15aa8ac2eeab04c0aeb70ce2b385878e313bc5c68938d6b6797d2e6bf9eb7f7d28992a036df", + "e8955edd828e3bf0db896e394aefc9ca7ee0e39622ca7649023506500d2d673fcbb1ba341ca35713ff1f07d45c2503b966ddef23ec5a4e8bce61f1dd0492e32d", + "e72e941ff72b4fc0af23e0bd26fc091482f835c07602cdaede6e4ccba090f106a4bc90b39449c3f29987af3daa29dc0960b73593299a8927651de9e4d229b402", + "6871089aa1edf7ce1aee06eb67db3fffb9f29ddf829cb456eb86eb6c2a2b75bdd78316fd77be821c3d397af0135f3218ffc5a8a937f1b50cb96a970e995e8d3d", + "575eace1ac1a16b1f16ee6b8b5fa48713125a5f842e9238b1f2ddf79a25146831085786418ea8f4b51b3d2b48a715170e59cbdd951c47732eb24df2a6651b0f5", + "b0ab1ccbe68b22e9db2965167823ebc8c0a583f22ca364d36e62b533d1f7ead625786d05373aa1d187306ddeacba095222c32be3b277f461efb9f32c822b9558", + "0e27c1cd3107b8ca95e65e823a2a2fbd609a191a0636ba98d9ab4d3e8e414c1d11a93cfcf1f30cc359a00dd7900dc3bf02c3403f730b6bfd414bac761f82678c", + "9cb8887ec665e0e1a90e2d2c7f442fa4c2617446f5bb5b59b1aab4e09aa1dacf3e97fa1f58567a7b53d36b08f0970ba19412c3cc9713081a099b4b3fa0e7c568", + "4942b78508cae719dda5785b2571fe70301a63c38bd497913ed807946a77fa95920daad6ffc45939b21b8471ed2685490d2c1c6fd2c0ae2b16c4e494741dfe2a", + "730fff7f3a49b3602b9d242363b8e5a34864c4c20c0d432ac2bbfdf7a6d37646218827e541c600f3e50b45757058a69a89b6f011190247ad6f3c3b3df856a93e", + "6ca5c58bfa1926944efd1f9ae424943113723d8fe47612b8f0c180c01b6bda241490d51be3f4efc5dc1b4b77ec34e1ed555d93005bb2feac8441bab4624a4708", + "437e0f52bf9d00e95417ecad1a1dc4ab7b08e2b5cc5d4b910d960213e3ef8a3ace82500ce01b014c0a8db1cc91e22f0c85fdb057f01d50f0e2916d3ae09683f8", + "78ad8a9b487907c61ff260707b31f743ff1b5dfbb812649d096cc619930d2010b9496f299d0bc36e5962f53a085a8981a9ce624d4624bd782c8269fbd994b236", + "73a90fd7a44c4cf6dd4cb1c0c6b19cad555e42b5ab7656dd4853170a83a48984643de31a07452d402cf4a918633bd2aaf792f4b2f3cd13f0d26636d676182c20", + "dc8e61e71ebca8a192261c58b89d68c9cd835a0e645f8dd0c7ebda540c57fd8de08f9de43592f2137799c7a1b5b4e1810878a51c468eb2e602f174732b47d5ee", + "9668efbe7be895a5a1266515e4c7d20eb7a8ed00a445ee36eaa0a8bcd487eaee5aae8941a52c4d6a2fe6553c225634da769512dde2e3b03d973ad671802ef801", + "710531d66d7fe05830bbf9da7c513a6a8513fdb5c0519bbe44700ee5646f00301628b438c8004475a5109dc50c823e0b11b5bfeea246bb8e6cd7fa31863e657f", + "810d2c6c277acc914cec0b98c89abf84d98449472915771fa2fab1f9af96eb5518d796c6cb1c7f4631ed7f4fce2a8a20d0a97c6871a9646e02d7158a376f92b3", + "3e0c4bf565f63ae391cfb164dfb30439ce81edfef6eee1da3767740916288bd4a2ea783ac32874c5f939156bd045515369c03cfa50db62f79ead4932f2b6117f", + "8c423ef68e6ebc93711884e2ce53c5dfdb9e4ce52fdce4c11143985f204df2949e15c908a14e807aaa409f90a0c0fefbb7436af034339f9d9f229a9c5de05b43", + "ccf8e56977551f2e8d69122fb6f2ae4db6ac44198898aa2cc9af01c373b02822f46c872f22eac53cdbacfabd87f8165a94d121fe58f670cf38affb73e6e22619", + "8a9ce6fa86ce71456fda0cc3c67f0830a2f2012c6e63142d363c6f549f1124a10eaf196d8e44757e51847d7fda4fdbde31e74cd747fc57226d14eacf302b7dc5", + "ea711ecd5d6d29680379a01d61b9aabdc271cc73c531a7e9fae4708e18c0f7177924acd913cb49dead9e60ab1a10f8f8f37137072084c4b8768bd493fd8862a8", + "b215df95dcd3aa20001d1eaa3ae6a88506d1a897795c9b5b736a26c0595343feac5e57d602316458d77cc4952249a1e48fad5219677903d37352036ba4fc74d7", + "1726be6a7b9fca0a43e6350272631eaf24119ef7f8acce8b3489e46fb68ef5623dce5b3473c062fe5414d8462477efd10dd4526cfb70b67116ba4d2859fbe5ea", + "1bdaba0419cf95c66943dd3fc8b7e23aabe970482aa9467ee6d8cfb73e1653eb0adb4c7145dddce546cc05a1f7746a02519265136b759da3dc670e5559590c4b", + "aed0743f6de0ef70b7610f3f4f4eafe67d9f80f01de9bad0970435cb41de796aef7f2d19d8c965a9bbb6dea9cd87f1bf2faa5d73717dab948bac6808ae186bf5", + "7a918e7d7ca5e165f1ab76a091da9de7b73469ffefb79a6a09ad99c7d0eaa37aa035d7feb1b1f92a78fc895a419b1ca7fa6a4c4a37200cbf53510bb6d376f594", + "c1ecf8daff34596ba651cf9034495bfd277409dfac5360d9149ab1bade8c2d1174368960454d8b1183ab141f36dc71f8722b318de37644b75db098cf69070999", + "01e7023cc6864bd2982fde528801652a7bc28f2928854efc18b782672bffa5275ae24ec3ebde3b4c251f61036dfdf94c6b75725ac2fc05272d61dae67bf3d156", + "183f86ad1dd7b0ab9327858b1d0eba337a14fc856b1a5276e60b1746234c17ab116b07102a4d747502c6337f49535b960c8e75b223a735d8b17a7e3c222ba780", + "ebb9747b256674d4e70b383a49de10c63541b3dde85e6de1642e72ba4402292e16f38b7da3f20ce02d39597d8294c1a80c7dee5f4234922bb86ec45bfaa857c3", + "62741b52443d54c898a70dc88e5be7a796b014a94bbdc8d87a0dc326fb88b7e54155dc0c8bde7c3ea0fb6841902c8b32286156279f1006d661c9297f171855c5", + "a9d068a8ac64dbab2a7c608e2d6984d1747f654c2a2788fcb8d964621a74a1faf3cdc06e7609da121baab53d3a6ee7564a29311d1d363989406aef88c74fcf0b", + "8f18bb3723dce6bab11c297ce8f9de6bd055808649ee2282b79e8097291dc5dbaf9c0f773273497383a9bcb2ea33aa4efbf63b73279ffc643728e8583fa1cb9f", + "39076a478874b64c5f869f343d9224286d581d79e038e0f61aaada077d67fb095fca54b126ddd5f7be561a7a7d6c1a704eaab605ea20a0a618f7b63084f34497", + "7f7c889e9e8d72d5123eb80f2c96633ebcdd7baec0a6f47d8dc30f844d34e4407b93076506f74ccfd226ae2c4f6278507de606c6398594132ac03ec54d1a3a93", + "a946194ae6362f5d37659d3cf625779847dc890eba942e4ccc3422edca22458beb717af2699d5e4b7bac319974e9a87512c28790d92f28d1df9f5995fb07911d", + "0ad9cce6a271f42a78a5f0f1ce9f1251a1e8304a2f9b0685c0a508462555d05f33f4f44fabe0ae54d2a58ea19350b825dd25444c5c07616fb4ab741469ebc1b1", + "39d0d70c9703e551e9435b2c8c64d98c341c5b842842f8de88cb2424dd13d77f188b13086b45de9868c5f71359a3dbdf9ccefb9ffc87b10d30932870bf1f1766", + "caf30faf0d446fc8bc52b7050d7c49a60e8e40bb1ec26ff0a0a9b75edd7475a605bed2f8624d6c8e3f83744a6c2e65490ea1ec39765a93dc4a3608906c315df4", + "e22d89cfd14c01ab7e659f731b7a8364fbb1115fc626e930a990112c4e3144b189cb74c4f2e094deaebc4f0c35eda4bc6e517fc2871147419da6e477341b4a9c", + "575307712f2425d3e9640dc43d2d7c8618e62b1d017c0c19068c2db98501243b18177431f586f43ba5ff4617ac2918fefc39144b45c96d7241b501786fb7fb50", + "30ffdcb029e5a11805c465329d05b0b39cdd564444f245e067a6d8b31a7c8fb5ee3246fafadf63bfd411f9394511a520e32f2c5cf87ba265a4f64e1a2c56669b", + "a071071928b7fb529f7f2ebd72287a6a77fbcef5654a19e68335e0b575845d7b9f52a870060bc92e115181de96389aef2b4d8bf748f5f81438f2119c375f9acd", + "c57282ba2493ca6277851165048f690454dd97a8da0a100c7b483024815fe14afe7e023db8852b1603039d44cfcbe16ef537a349a5196ae044247a7d677724cc", + "c27062a0c9c27cc11d3f4ae6612340a6ad88f874a249f24669f712ca3ab1cf1ff66794dd262a67c04a822b2c8a6a85382b9c81c867cfa469c6012e56529dcf45", + "0d253f2d01ce47c10919f06526e1400f373137c1902bd7e71177efc5d8e673c009d85ec9b16bdd1a2d2690040d6f25847ab20a0bea9d8590d56645057170b89d", + "529e8eca9b0275a6c6178e8764d14cd660b2651f47a67b296296fb81080678dbb38d57d2bd367e60e9f59c2a736eff5209b1b9d4ce2e80847c5d62cfe96bc0d2", + "d49efefec450e46e9c3d9efea0e8839361c477af1c671fa515c27608b8064a0c7497529e6253e0a8e8d00a4c24113010fb5f02dbdffc29d716be0096ca03ec79", + "2365557868737474eb9734982c1381da7e35b9391e632b2339027775504c4e86a7a45709a64ee06e97819da0bf95d5fa62ca6f0658be4945b67a74ba02385628", + "5f685015ccbdb4affe23d2d985e7931380ea79c7c44d8834820a6b6eb7af552bc4ae788adeaf42bcc8403dd3ac559d48e88644e2040e404551794b520660f72f", + "e18b08234bed8586b8d40314dc2854086d8d85ddf83b321800b4039bf162fc4ab9229ca3d34f5c554e8409ef70a50c13164d00094142a6139b36e3ab911c81de", + "64e3ce3acec24013749dc8f8854eea890c1a714879d35967d89f9df12fcd068956e9c230040fb7c405ff98c962173da4218684a766113615a7924ca20ebffbb0", + "5c1482084a214f77cd90ab0dc96cbe726e1df208f79562d3514e07bcc14027f0213a091d0ee337a502d2611346385f37894b13fbe145f5963804483cbb932be6", + "d52772799d7563737a377da549f9227f5f2708ff74f6320122bf6bafe268b927fd726147e17a7fcf77cc483957f3ffe5c3f61edeee2db0e76698435549757990", + "b11d01a32b72f715a530567e0a672a9f97c59b3cc9337955c95d8e1d0f7d75f5535cf5e20e2080162e447f8a8d5c37f0116336c4dd0946323af728e4b80fd8f5", + "ce5fecb999ca6283ed980bd85d4ebe75431529adfce3a74e658cb4af5c8fe65d603f0c7ab183485d8360cfe2a505de4aee026288c6845e88f1a4b5a6e069acf3", + "ec624ed0d48d3dc3c7dddf4d6b6217c815addda9b9b45f9bc38189f7794214bc21eff46cb48b4cfad225b9e78397fb9ac91a193906febc94e0fc7129f0525d24", + "e3f1ee07db5b282078e93f676b1e446de698b7728c3f4945973f6cdf395672fa57156cb540ca14b490652de83773838f8f8805c0442e30c0a8093800a88beb84", + "88301303d72bbedc571f0c5cd0b8e67109561cf758b7eed31a3c9529b1f92aa973073416e4086914d99dfeb6593c2dedd2b5b2d1efc684354cb4e2be4292ca56", + "09bb14a0a3d922ced3420756d162a59fabc931681a2b800cc81aca148c22244986bbfd001890cfc11232680af503b013772c60dd8f2f4f720fea928057b438f2", + "9847497f9014f3f6dc051a48f1c45f34b0dbb8ac66280ca7827dd01021ae9783c0851eaffec9c5e80b44cc2cbd5d20aa28f4eba5c22bcda94eebaa34198827a1", + "0e7b2af163cf728d83f2ab026ab55f9bd63e8ce30eef09bf50fb242281af296da4515190a5d6b485c1455b727f67fd7fc8144846459dc85d4663108b9ebc7ef9", + "52c5d20d11d124fc8ee99d66122a016fe7c550b0067dc7d20e564402f9e95b44c4a2010672a80705c93afd625eac7217f4ee1d4adbb74c51ad23967c464c9b7d", + "0f864c055f7c8d5f9b01e93ca4dae9c1dd63d04eb1a83ce56dd5cb829aef4b310b497a5f008ad0c45539fb1f05ae26c81d7521501069bb1f6bc3db8021ef3fe5", + "cc7ac4017ffea67b075deb50a073be86511ca285405d073364bc65a8eda654cc9239ae6f15e494fe5ac3367a9a7d7aa98496c9154698454d3c28e559cde352ed", + "2c2b54b3918c3477a3c5d1412ae57c9445ffd79a88fee9fdf6c7fde103cab2617703da9f1fb4f62974c537234d77002c36f2716e62365af31fc563bd7133a69e", + "8718f640d34988db1992c0d3df959a1387556fa837f2f81ca3a38f49651514e0e49852d3c3d56b169b3ac5c6ad264bebb1ee25c055bc6f4ef140a11db1d8cdbf", + "ea944585fab4862e4722123fa41d374791b8a14b1cd8bb75ce1b5142ee3041b302b0825f13219571e85732fce4af63a7ac018c94581cfcb73b1701ad16af7e6e", + "5f93f95ea4c1005b45f78eea3c0ad16c29b6ca38263a3df2b30e320c2388bac036602c728ed99f8df3d7756abd880d727a924b35b663cefd18e7ede75f4e8361", + "503deddada69defb43c1a1617bb098ce082e90790a7b3c6987896b011dcd9d1887f2d741a4945cd55cf514a50f1a2ca6051c80a7d6f0bab33205aeb95d9696d0", + "172905b480a8f8d2c28509f3e4acecdf06a6b105006bfc92db0fc036e2ee9bcd172e6d619ba80b3b6296f44718d7e34c34a9524b9085d7a7fc4ba497d4b87aa6", + "06a7252e575465216342e9221a87cfebc66d6d7ede8afb618813eb5151057af42bc3b1b25db590585ae5410880a8b587a9f509b4180356f0e7af1da28ce83f83", + "9e7bc5bb5fe85d70a9d43ab2a0978a1385f6a648c17d3c853ceabb4a97df2b362bd5c4da170fdc7e7c34a8b606a5701e675f308fcd9eff37b57d84bf576e838b", + "79ca97814a59966a23a709a3173370c143b2ca0568c22d79c98767400c9e47cb09d68c3ee24b52861da2a630b3189f39ec339b0c6ac9f12a4b07a7a26dd91523", + "39b62117e2c28d1bc95dcc6e07cbd2b867b1ec731781e771fc850861e57f087ba04f3301efcc3f1aab58259e494560b4e1435f1d19eaa4d602193449170ad3a8", + "521ebde88d13c6207a706f91f0a4eabb99a5e95a734c9d02add8bc141461224e0c8d2386a91c4140a6823bb8d18d08ad5746ee92ec842bd10a98d66ed17274f4", + "f2099daaacc0721841731827c4a77c5775505e96e78729c64143d7a3e0f572be407f657ab83682b9bf2446550c7e935d1372fef5a00ca5e540b14f979e393265", + "e240a21daf2a6c566a080bab3680b361b022e22686cbddefeab7874ea61133d083ab33748c492442d61e511a19c1d8f58f5d7a5dfb3dfe50420b144e79136428", + "93d67bf6c041cff5b41c23e768f2edaebffbe36a124eb342d0ac7d800e1d6dcc96cdcf10c36ce9813c755a8100087f394bdb16d408920ee5187ca1180026dc4a", + "ee2d51c5d38ace00b54ea6f49c96817e70c99e7d3193a45807a6a2f491513d39e93e955089fb34f314883ceb47c2db88cb9e0a021cd3eb1d4de86d9c2b4b8bac", + "d91c41629fbdcaf8c8f1eb06ffbbbfa5d3f9546fee1255c3bfc42020a3cdfb22d4c384597d213fe490df6e9c53f1a554d51cb32bd2ee58a05d013e84107ba925", + "e7896dbdcc95e3d47fdb941a374e35c6939ae567f24b956e8f4e2e76722af7ee17332f55afbb20f97d4938084e6dfbe0508f098e6db28b48dff68ca58f22286f", + "fda0652083c309a0bf8a0145ce6fd96278b23f79ac11920d912231ec8668f4b3c9f7ce2540a236456a2f0dca1e45a9b9347f4a8bc24693c7e53407212f591f04", + "84021338708882268aaf153ca2b5e087807e58734d5f4bdafb24b53edf90cf813bac9b834a5f51a4bd3bc6c4b9db8a167a22a09c98554cebb856b99db5e98491", + "dd34f5876b879c87ca7e0bcb2a50831d61d54bce675363154f2952f37ac8a99b452752950c0fc29d9ff63d5e2d2401efbce6bfc3ea29d6a5eeeadb753038104c", + "f0b42625f8074e8ab44c5ccb731847f803918aaa6fa177f971be7990d1249f8a01797cb80e8bd9802dd3e04be825bc94f593f232e00c0a3fb17acf7e866c73ab", + "8202ab66b7e7c5654ee3ae4385084908a43030b7ae1f4823d25bb058a4ef48872dec29400e0f8d49a9ad0f492a852c42c39a358aa399907ce6dbfdc5bd9f13ae", + "96aa4cf9e46fc88032e2d48a2a96b5e394c342b5e5575e041b645829bdcd232f1383822e82b385213c859fd73032e19ccece7a34e9962bc1f9b36d6cd9134c35", + "eeec2011825cc1d283abccaff580e9b3025517a61fde26f0bb8871cab391b471b5b654820e8d1877e20da84d973b203007e1e685da6aea5a9ab304732f0dad8c", + "b28cb73d6ace94dcc47c6e0d7d9f0f39473195be5b729b089211c15f847037a1ee7e6ef23f2bdbb9882ba8d42bb3eaf02817b899efffe7d72bebb6d6c85191ed", + "8cd14fc1f62c7dcdd772c71ed11b6630e0caaf47c9f178863db8e7cdb62c9898dd879ff6166e399a19def6dddd66a7db942d4505c621a48e97f4bf358692fb94", + "4540e9f83efc4b6e1c7b7f42fc753e79bbe95b963ecaf59b1642b84904d8ed727ca0bcf1be7a4991e62871c4c2be83656180c84ff176414f9d23383f60b9bcd0", + "9930faba5f0a3cf858452cab820971182c66685dec218c2a958e3f32ed582c2f1e543d9af182c7f1d3a24936162df724631fb61470ee0967cd7bc631493f329a", + "570e3dd127dedf0d9994257c60c738e6262749122c1ba0a3ad090c4c5e057046f6f3e30636888c52234af6191a8f87ae829ce02149dbea5e352ccdc5f63b6884", + "673dce81cc3a884f257caa3dfcc2895c15002a22edc75b5273580c58210383d4acaa720131300d75259439e2efda78b5ff656b08ce004e728940bf128fd34bd1", + "554f9b51bbdb2821e28195819d3e7e21106669a72e76896c55e3ddd3af745ec7d7bdd4d6b9148a6b50e5592de2c07bda38a819d9fb18bce44ac9698247cf1e7d", + "e7737fdcb63a5df99b760106e49807a15135273c06ab5a42ed20466a97a398a43c084724fded3e24b68124290c3e4a687b3c118c637fbedc456af177ef3396fe", + "b729a24847ea95b79c356bee189abb9a4e14b03408dbc8244b6b97cd43c3bbd484bc4c874d0ec8d14bf56af4499a84472d51657d3d77c767cd6f8fb6b4a97d07", + "6c097522c507fc82aa75d58cb48ebf7a00d1fe8de3a6576a472bf75c4e8732ce4421ef388544dcfc4ba63cbafcb41ce13f617e2e0dffbf3a193bd3cffffdd371", + "916395cff6b68a2b0696a3587f14d166525c14b75ff4b2cade5069003be74f26ea4e76be2a6ca081f21fe91491f9aa8e8fee4849476388db7fc0ae96750b9e60", + "ceab1836c79118c41a33c2bae6c5b7a2c20509c2951290de1f4fe8ae6d33d920634834ded25f29741db83ff4eb510f53b7870b2f5c9627ba438b062264deb691", + "fd7f48ef67c879f759763ebece05a2fff161f273ff1b64dd8250863be47a2e13a40c5b0168cf726a43479bede0ffa32258cd7db32675d00035eb4d9838c360b6", + "cbb14e5ee97c7007aa0220ddf8c1f59a4fe7bbb9804f3c54be154659e02b82c9f62c36b5a2de7e804f14a2cdaa0ee9567a7ffe5af730f83c01ed59076427e8eb", + "1a0a82975306b7345bd5813335b151174eab32461a172ae14cf851d3d9452ab13151ef3de04f872edefcd48584eb8a48bc9c61a1bb7571effa54ec856df0068f", + "a033f38d419cbbb8c9ff15a3e383518a3ce02fbc0eb2411467b04cf110e04a7504ca23a595374169ba81e35fc0c35095bad82ad76528b4d336fefe62c3e85863", + "76fb9334b8ea8cb3417482a29bebf2f2d36cd0292594872ceda4ab8e47e7e4509848949c71916bf221935edcf2645081d3fb25af6f4d20536a28777ff661387d", + "3c1bcfb979bc98da0fa5447f01168d421a58a7e41928eb778e3d9d4f08adecbcdd42d5e8ab7470ded3c92dfaf5c035b213291a9eb0df44fbbeb50bc5056a6ed9", + "adab5b47f883ae4bb8ef4c97f8aa3a6c167ec8826b5a2dde1790362ddef98cf5af9741eb61315710582248129051578828f2dd898c623eb1ebb02b150c08480d", + "f8031aa8931c7a714a0128fae1dfdfd5fdbba343ec2d2d5490322daac3c95c116f97d7f97a6d17ae2746c5b3ea6dad596555fd42be33c2539ba1f9b8de07a179", + "74aebb38f7460e931b96a34b1dcce35d4a0aad2f38bbded8adc2dc455dc66dbaa19e72f63df4186ae64d9c01cf0476dc157bf246ed1a83fb69e59920f49ffc0f", + "6cc3a4ba56e5988de486e127234889985cafa87aabe476e6622cb294b9a7afe263a72ca53d5f50e62a2b98597f4f624307666dfde6e1898bebef2d8473dd70aa", + "47ebffe3bec3a72fecc198cc23a3cc5bcbd4b00dfeab8b699f2b0858e5d04e56e72212f3761ffbee0cd17c5f787908519921aeaf15757be17b92ca69a1d049de", + "476da8160d6019b08b11bb71b8e2e38bab0e52de28742e0dbcc9a91f6a6ce9283243d8265505483970fd63331dfb6268b7f41a0cd53d536ee944768e124518a8", + "f091d9180ff59e430282ca646df5a2c1c99be52c9a826d89c17b5c35d9fdef9c8033451386b0b60d42210b7368559df06844bcfd856b8ffc7c9067bb3f180ba3", + "b5ed1243b49849be8e841ba314242ae3b769cfcaf7678358e2bac83f1e08e3c83f53b202ab693e4c390683252d2793d89686670bd474e7b5f542e10949834e33", + "25dfae26d570e623883731eae7fa5ab465f64dc6c3d84e95a892ea07dda48d98d84d902f229d1894f9113dc2bc2e4521176bb88ab7d00d5edb414ba0ea25ce81", + "b6e60a66fe25ca3707ee134eb4f5a8d31d05140e0e239c4db1edd8308332b078253be5e7139ef14e89fb3d0c37f3a351ba716b063efee2f7a1d44ad17c2eb9f9", + "db3de8f67e0e83710f1067d3440dd8b9245faf81a67a93e7b1093277782c1d13ed9c037d10e311af903b224cf9d9f673d6029ee7b32533c6882318b5930ff7c3", + "e4617e72ad1407bc1b597f5e4ff9efe66f81d4b6a87d84873a0c7fb1e310f6a0032acff8319ec8d9d445c3a7df2c634d19803ffb29456223a9ef2375c4b8809b", + "7778e1c33f93fb38612d67e58083de32b066988a382a9f6e323a32bc572d89732193d7438d361d09a2e14be2a8bb4eb984de147771aa3ef723fdbf356301fc1b", + "59998c54c0084e29260262f074977e99b1e89872dec6290f2e4c23582826adbcc2281b979ed3d0f55fafc9e7f8071f7b1d5cea6ab01f27334573164a12326400", + "b2f601d7f7bbdd547f4170b7522f3ed8efc0c4b65ec8e9b223b3e650e5748f3411277dddeefc933d68d9211416d805dc0915134c168da3c87b2a1381fa5a6746", + "5c313b95f6947238e5ed162ecf1e6659cb4ab4b8c115bba0d89f0be010c360fb660853c7dccf6362bd5d07debf86739e75b4ff6ce040a32f26589528eab7e27b", + "66e5a182fb0df5744f84c492dbc92d9fb12e526447fe85de0fb8550b1bca30e28c8bc6108795ad009fe099f791d3294600be11996cd5d762fba16ff946bb80bd", + "414e5c0f8516fb59b243c8262d7d9c7b12615709c2e371c4b10dac2798c75c7d496871908b13c23432a6443db3a3ce2c0bc0ba2568a06b90c50b9b165db9a09d", + "6300474114eabe5b154d86bc3d71481afba4b9c949c18cfc7f08a8c94a81186fa114347cffb48f26953ded3b9c3cc09f47f8ea7fcace79320f561bbd961bd00d", + "b806dd8bd917d4020efb8cb07d9357e34b65bf3196c35b37ba61107dd77e8b0b0d46a0a23e19dbf747adaa243c2672679dd5c65feb537bca9690ab85cf4dbd04", + "4e4c28e6c9d8c69dd4d4f0111cb6b708aed6a0b4cea3a24fb86b3c3ac403cc3ccd82a8c542d7c134489db65f26a7c33495b42f710fde2e889390a9c1cf83fd76", + "10f94832cec6dbed5b151f3492d849bc7d3dcf41bbefcd047d36b5142020b7551d60ff2a6197c92ece963ad92a2cb0d7bb4827082145e45a4ed12da20503e37b", + "32afdc4156ae8c2ad689190f0dc634a7564fd04ce578c8196d33b91a63483dc6982c14aec076e3a405c90b64c30ff39358e7d2a0c72c0a1513625613a64f8aac", + "b5164ee623d4d78fa62938e46feddcbe81e11b2adc40f61b4abdbb2f9877f4d4c7c63c8581bd7475ffe3a175ba5b8768285b8e7f8d8a7eef8931fe3621b3e3b0", + "3200c1169e6e63f31f7c1b9970e0c259539246958b2eced41623e00b20c877a67d60bf4684e2b929b995944024e7c5608fe94eafc2b15290c5b11a7cda32d38b", + "d473424d87156ff0760e12c3edc3125cc791179c0a00cc11f01763cb1e82323fcf5c2cd18e94043fc169adc39e756ef5a47244d9c6b1a40a14f5cbe3fb943aeb", + "f221d1362c8de86227b0b467419b88d8b7b8c86ace1b88970e0721ad2aa1ed811e71d89a7938f64d3275ccd41c00a1b2a6096ab6ed3840ca0a8453c0b75df950", + "128c7830bda40e8ddd722301d78488fa4cdf9548ead7b490ccc4ef40a133b5852f6048faf8851e3c3169a5ac214dcec85d2f0840306105a28820030f4d3283c8", + "9cc966fa234e816f6b47cc9cae9e6340430b214c54dc8e7d2659c8d6fe42ebee08164085e13bf7bfc1cc6c639f91ff190a225a384b1108fa8634776ef1ffaafb", + "22c42c74263cc0022a9881e82d77bef40264fc3b5a0e643a27a1d0b6ecad419e2fbc7b06e3d5e9cfa178380404cabcec808a5b91d651fd529bfa6058c202abaf", + "1471ef906dd4338301bd6e029a7aab405b8e374eb5a4df4c1b3a5ec6173a7b35a35b61c37b7535044cf5c56c1aa072d9f2153ac3137e9ffb865b106b37c10d3c", + "97eaac381c438dbf13d57cdf6e7b7d50e4e08638ea4f82bd3c3b8d5fe0ce164b62fea9568f6fc18d6253ea9aa98c0f4baee46a9b5a015fb079e07667d02b71ca", + "0268fa467f46e0af80ff743079f04af06185d4d42462a1222569a2e6b6ee3ebf150ae1a630124dd3138213a0e96110adc82148239e51ccd7fcd25b01474a961e", + "d15101303cda52cca7d36003c0c1116da900b50fba8f6a7d7731949c831dce9801f82b74860ff1db6c2b3d624580c107ae05af6afbe1b618b4c6ca27637e2e30", + "87dc2114f4ab1c4d6eb6be26851cdf8fe02d89c5e0390451e4eaff8d9788aa6b5451e24e0d4adc77bc839bc2f1d557c209457f289294717fc513df1ece883a63", + "042137c73fc8e16d133e4b174852bf7f4b56c51e7f9fa4231e59b3cd87f5ac341066571297a9f9463e19c077947083a64664274854fed54817d7358c2389f52e", + "231afd8989c7300d1484955fbad5e98245a7a7558c1169d982fa69deb7af3f9da669167357b18fc96a17c17c4d0368e21f2c4650c376ab13f19f036bf31a2ff9", + "7787badb95b00f2f53d3086024c2df76cbe9960423e6c79b739ffadda386b4d28cb5b220f1be4e20229544ddc5b40fb9f279490d55ef73e7fc0b2a152565a8d9", + "2dd525653d526823a1076e4ed62c807928982a0c99246af9253ac5a65169b5cafb5a7fb267f29f0943d58698c5132c52db914b8a03f3912a91bd49bd2ec95728", + "e74187294f5e1963178f053eea6b987b1f9884052d7f57eb8ae69f59989518898d4fa45642b7b877103d4d4480de441935c76a4590d18c952a62c87826e5eae2", + "9a57aac93dc136140cdede35e6dc6ed6f0a9f6fffc6609e4715a1f451f392c81676c2240a1a6d8979ffd411631f2f7ace0c5eaddaf267b4d34740f04f2d5e6d6", + "a34ba74f5be8b0f8e9154d12bcab0be154a12a99a7339f22c306d4e6d9a030668d31fe9f80533e730383d49ae266dd0d45b84728e3f98e1b3c814aec20bf1b7e", + "35083bf35c8509c2c42b76e251fb8ab5fd9c58906a87c033c70988e192f42b00459784c7f3baecefe5f4b7f6d48abe841a3c091f623297439e8d7466536381db", + "78db4961f6ca3a833316381d80557322bcbfcfc0c13bb2d508ac7c2f3302147c86b95711abcf91e888d88d838b4f82018cbcaf4e16f56a0c7bebef39a6f7f303", + "5d49884c40333702b0d3698548cadbe41ecd117b51ea965d701a50ce95be5d90b53837365d5da7b69e984953b6a7b151e1d64dd7cd0b0147c15e35a858535a94", + "20cd5bd9fb57ace8d8e3f9ada16788c36b7f1836793f1cb97cc77af355d31f934cadf43b848c2086498928c9519966bdcb485c1f25635e95729f2dc325a7b7fc", + "06fcfebfa15ad5a877b3369f60c59b3356c8bfde902b723d2b9e02104248eb08d1f4f488266b120c2dfbc034413349d70bd54a94627eba9dc7934db30a238d58", + "ade370db83790d06bd3aa794335ea841de3c1359aa3ebd2c98ac6a54fe0cf3c1e3b61725380fb6bb461657edf1a31111c4f6828aa15407f46410b77e3363ccdf", + "ef33b20df3383a2b2fbb47a56fdd7f29eae14422c3d6df1d3eec7e47cadd2d0ce36b1cc317f6025bc3aee46af222f27dbdcc6fd6e79d98898f6ef2ee6b8a0322", + "ee1108036defbd7269c7c42c04cc5ff1d8fa41147935a837b63751867be9cc27441b9b52b8fcbbaa7d587bf38e48f67092cb8de6ecf3abeabcaf2db586d06877", + "83c3f751b4e12080c16c6e4d043f43ad8c7bf92d91ba7ee1652e6c65808574a9fbc8e0b622424dc158ad6b4dfd046f546e99ec0bbbc56e8ad6ebb89bc07e518c", + "3ddb4ed0eb514ee4a045a2688ee5d0dd0c8ff96606e8bbe90a73e5f5d9fc742b91a6dd27ba09c3d60b7dfcd89c99d320f3ded70ac9ff5658cc544d594b047abc", + "583a4dfa35261dada300d9b9de72b2632bc503153e716ebed1f62214a2238135a4fccfc9f97fcd1e5cc31d69dc9f65916010b902bb55d55cea29497cf22ed299", + "032e6c50329fa95652d2b2203ef713913f2724d58c91914be29b47f8a85174f9b2c85451f0d40b2569d2c8a8c49b65251f3e3a68eb37f183fdfc3ebc599da4ea", + "caee147101f0cf1246609b8e675225bab1367db66e3873eddfa0e3bcec88fdb425147a3b086f11f4108b4dfff2ad30cea14ade286b53bfbab7efc703ba979341", + "cdc17763e984e02f82c81ad2b93341731f44927c2e11bfbb7a772ce454e37519d8b93386fb2b0b09633b30a88c8f70f17eefd3695172b1ffe7610eac76d399c3", + "4275139249d82f9ea038d37bb17780a308d380c1da4bb22c8c55b1d7988f1ba302448b52189c11a1462f3842284b7151c082f28a4ea6a6c47195d4acf616cffb", + "d4234730ce81d38bc5f228e4bf4e317b44b1bc6a73933c140e5df9bfd5103ce9d6c4699d8c59be46c48c38c7ff022ad336f90d5004eec4aca3bac1fea99aaf66", + "019109b1bb4b604ca12154153ea7c707d7046c56bedb44c436ed525d3d3e120bfbb5e8b454991a18fe7fe42c14a6c975a7c46d6e7bbf95c252d4f860493e2c70", + "7545b91125394e58bec54fe04835a9a1731d842de972be8761190ce2f3268b76c6f35ea74eace559495cfe1db23301cab31f1e9484f83466995a5a41467133e1", + "905353c2de95260bae6f5d93dc540afe05602ba9619956398d9077cb4354c179dcbc9bacb936d6936b857d9c5b4fd4d6bd5a76fd3bdd18acd4e587723762d9ba", + "1df0aa95f706e3f3ddd75a8301ac62be1526eddac4576b453c59fcfcae73015516b32e6d23b8fb26307a4fb28809e239a36875ce5ae4434be1739e711d288b32", + "f5067d1d4bb731a0988cccb89f75c30567c584fce464f67f8c7af89237145f4c155393c77f7fc53d8b37161c48462e78694111b6f74e23bdd592906f72735536", + "9174b14f2e73226caf4ef83a1252187736accfdd471826c17faaf69f54aeaee8a83f2c6c9a17ff3e9cb5a006f708311b41e7875357c3e2c1dc66dcb0e135e1c1", + "af55bd72d057ab5f23410aaeff04e4f49b9e1a310b91e3ab2a999ec7ad98f2207a4e7d756c5515a0f2aea4cf0b3641a79018bf085a12dd65889cf37efe45f668", + "7e44b51abc64b8c863416ba15d2ae746df81d2c7c4a9d076cc3524cf49ce835b685944805b70709f78f75b20ad7505d8b46215a50a4b79cca463346a291924c4", + "b7560cb112897107076cec805f66ea96c3db9053dfbf3afb20ff11d48b65fe3ce3143ecf4f53abffc22f2e361c1d5888a66cd7f6c16b2d732d9c70627dc77d33", + "d1eee7eb549fb630615278c86bc5bf6ee9cee8fc076be624b33d7c1c54a1ed7e85383606a0132684f8243e3ceee0d35d777eba63ac7d53d7d3cc99fd6c92a528", + "0294029a59642a4468f3cdcf12bccf42a124d00b43d1eb769cf147fe97d3e6bca94341d44cda6e62fca947be85d21e56dc6c1d79f1857ac2f77f80f345a9befd", + "8f0b4ec494e0b5c7724ff7c550d2120f1a44ac72751ffd3ffb699ff06b3379c27ee9b9a66589bceadd96a6e3edf84db77b385b3592fdb258c673bd9bf72ed5d9", + "42c575905cde56226bcb98904e34e55b61ed5415aab1447e7cc8518a438d63c2e32824d4a76a262d1f615b6571238503a2553891e45f14e6d5576c9498b9c358", + "315865c4a6f88ce47c38427273d4445914ed45d6bed2027afdcc058348c4474700f0b71ba76211ee9ec99c1f46c426476263691db5e491f6e9121ab2c1c804ac", + "7968bd39730161325977dd8a3d281670ae65f02bd7fe72e1356642e13c339dbbe6e6ef43e6a398b1d3242f14fcace63f11fbd8493b5ff809fde08070be4df360", + "55154f452fc68aa6bfa72a2d4adbf5fd94916824b4d3215aff226f5109d8b2041b0cd518b246b1c2ceef48850665acd4ec231b68842c903562b0efdfddb1eb8a", + "ffa9f26d68fc52554af61b49fcb570b1638704335d0f2e34bb2a1cbf50e079598c269122609dab4818e1d45c742e5962676a9d1350e3f773cbea1ebf609665be", + "ea84774f6c337669a3af4066a49708d1a80976951733b3c13628e40bbcfec86584b6981551a432ca83ece139cee147284074aa60e64dfd51d084be0c08d39043", + "abb3bb0062a8935d5b32739223dbab190ca239b4404404e41bb2537b5f3ccd476e3bd14920522f702717a5dc5d1ee90c42de57f7b354fcfef34175383fab144c", + "1e624edefa8e4f5574a487555f673b2ef1fbdde90fd3cf0613f6a142cd925fe78eb863c111688afa5f6ae79e22947ac8ab6525aab0a81a69f9a75e508f331af6", + "2cf37db39bc73431e1a596b1a3cde264f775e550ed094f039eaf68f0238a3e8bb73809e52bc7c426d555ff011d567cb754b8b8f5c77602ec9b0519c4fd8384a9", + "09d97d6122812b8e3616e16d63f231c48ae88c95425a5d3a2eba5705ad80a082ee910f738b1adae28ad0a02e5042aa03f124f2127402ff7e4763f874cdf3db14", + "9a7aa151fd97e752578e722bf7cf9d6df3c881a9fbce11284b41387b7421f3175039167d3a2c7c4ffb9e10cbbf68189ba378ed858e3ccf3b025304440e4202a9", + "25b5d8f2f8e5f6d6618e312ff57614b9e91bf46ecdb6698b1dc512ae5a9bd614b4c001a9a7e7c68a3dd90834a129b67706e1d021d39733e1c1c60881826d0f8a", + "8ea0eeadb4a51a6f1eefd458630e0b8e797f2def11248a8d8e419f866f883f254a28c320f725c408de5a4106e57a630b24ddb74710c5fd43fd0e7ff14329de11", + "1c1b3c5f4d899f0e6d78f379cdaf3b71326964f724471ef74e4a1066e2bedc19de7f0f673848114a741cee0c4bff8379ca5631224e08eb095a7fc3b62db2de11", + "cf611a3bc1c48c8c0ea757b801e73469658754b04ab36d100841b6e3c9a439b34e41d76aa6d3900c88745710baca3d2d1c446fce087ada2e7a14175d27a190bb", + "487fab1619b3be26615e7c78bf354b761719dc0969a4ba55e8fc6e8cb06b9ec04dce8b7ef0b2906a8103da0a208b31be10186c33d85051fea71f12b6b74cc0c3", + "f7986e211838d9674e38f0237e017c84d395c869b3e4d7512aa6839c3afe86f90f75a0cfa81f47e35f4ee62394779d0dfd73f1f942f3f028083375f342eea36e", + "bd7bf4208c94665e0b5d987130327db3c2275d9d76f1c87f53027b16e3e0ebac86dccf126404cb89bc0b6e222fda625df6d9bd10a9abb277fb96c19bb7c4d362", + "dbf1cc285be183a0e775465c3ad2e81a7fbf368656a734d2899fe752753002020c27f629f63c4826328f38ee14bfee3316ff1e022fe2a4d1d187b711b4ef7a85", + "279c585aa8a0042f5b7655b849d37bbf161eebf296b3500ab73ada8bf12945e2e27f2055125d01ab5cde0d3c4aa69f8f9e12e4e17bb2419e5c6a4b96a1dea1d8", + "31cf2acd8e19d47c15d77d6ffa0cb64d84ef9e16693a8003391d8df06b8f8db7d52a86aeda134eb588079e8cd7dca3beb40b11c2473cf3b604b7da70448bff17", + "479d51f4860a69b28a9ec746035573205d958ac9947967a68fcd37b0db0a05afb812581850b287925dae13f02447f60f3559efcf8cbdeeaed22a105b4a781b9b", + "e925dac362a0cf875607a0aefb2ab04b38f71b026c468a214737ceaae436b937ca246722cfe9328b38b1120320a5d63c90fd0f454eda9cae4dc3999b32b70095", + "101f67b73833a5844fc54222fd727c72547c0f65e90d803c1b1b690cf235c1e0af14b7999ad5a962593c6df6e9e993844f5300f95614ab11c2a1f52ce139ab68", + "e43d50204285e011e2d4cc66e9500af544278610eb9c726488d27c799ee433a39773190140aca1133c8080bfb14704e8fa72bda49084b5da70181d993c9cbc0c", + "9361ed6472d6faa9c0d4f8344378f100f86467f401980e2ed7f9be51ced459e930789857321c858d2dbdc5edbc30988a55f45263e039eee7c0f69b05a21f1b30", + "ad2b8ff7953aea5c1294aadf2a95697a7c8940af7b767f37cebd18c706fe059da5bc372979561252fd6808c3102b13ef309fcff8e31e012963977290100d1010", + "9406441b0f9fd9bb89d8faabd16718237b43c399f1d23d5fef3493e88ab69100fc27f9af9baf54b52510a309fc02a26b434f1f1ca5df1c35609ca11bb6ec17ad", + "4df7bde8dfcac57d23122a646c2707b946d4e0464405327f2853f08792dd7197d42bf277919e65d0d4dc15e84a8902e7f5e54de237184bce545da85dfce68fcf", + "ee767971d5836dc82be981971dd151b7b9b9f63c0f6a0cdea04721306f88ee26198fe657524eaacfd404ddadb76c5856b97ed8e1125e262b85a5e98cecebbaaf", + "6d7f36aa5ce259e84e96b4c83563c4177a0928a8312dea61f0c45572cd4ad856ca7324403a50b88ce07004d003a6ddd9b5df12bcd3c041ba0b07b55744c66ae1", + "9488c49a06f3947445618ed520ac8e288a2a7f69b9253564e9cd18446d00cfb2c6e1694c4462d1a05b35b4d9913166fc14d34a319bfeb1af8b6871c329ae16a8", + "3ea6d5304a0c4f383bd1f16d2dd5f4cf40bc89f1e554cc5d742bb2e0143a227e1a331c6e1b73ae9c3315c29cd22144fbb83507e65ec7437e9ff6ff4f6f1b0b10", + "3e973bf06429c78ad3f3df91b815096993b2b2b100bfd92de0984c98ed0ed5b591a7f23b11fee072f50fb182ac5c31b74862b2321aa5069d0d96d83f151f249b", + "4bc6e634da64cb4b653088d14b86110da292d2dab41b0cb8a56ffaa427cfe94b57a63a254038735a5eebe4132ec14b409db3d0d9381dc00bccccff1f06738c93", + "37ce2ec417c169a9eb2588252fb8db87a6c6f681ad0978d9a0f63ad2fb3955765ae3e0c089bab9f05146c21bbf25de5bf1938b953b899a9ec064cdb42bce959a", + "0b6ed960680743adabab1c851245de989fb853b9667a261fe37b1797158fd27c9d7b62f617ad914a2266c8f09c64de0ad2db6d3a8f6e1ae11eed9963137ea6af", + "965ebfafe094c55eb4e235ed0e9728328fe3c1348f581b3a65cacaede5036dd7e41fbdec324142fb3221023d5ef9d11105bf64744a4d1397c2bc9c5e9b279040", + "e35444436569c890e80131278b40f3062fca3709ee3c231200e5ea68b21796ad5d8a40db8fb27a80a1579d651bed1d83cc751913ec41c3386d18440b673f68a6", + "2c82dc4d2e7a089932fa0cf66c059b1383044a3e4f3360f44e54b99b7036fc8d14656d38fdadf7ef222ee0889dfea487263ee90a1b3d0684c5393dace1914564", + "569070277a7414affb1167d3a60167db189c38f1550f677646646da0035173e59805a1d35354c29c352ade998c5df2f8a87be8a95533337b02336159ca9a130b", + "315357f280fe668c740f22e47a4d25ca8e2ee9116722dccafa8599320b7a5f8955ee5808e60da4c067e889ca1beb88186c2de3fa4ef20e42b46b8bb7dd35614b", + "9e91ab54ccca791114e2f9ddfa1d84a145b108cc697181a82503245f32e90e1f826617db820e54a4204a0113b228ce9ebc84e5ed1ec85f0e37d2607032924cb5", + "6406c9eb41f190d051b5e6dfb5caad8a7a84698eae54ee4997444c145e779a5f577b60d434d4514f8e6214513524f69f7634bffdb388ec73ef2f450c420d6597", + "6a1ceca80c11358542875980624691c46627d7c9dea0783fc07bbb469c7869986ffbe9f1f5c87309d134849651078015ce8196bea30011e1c6a484c4ec2a8666", + "68086b5266e3b5426bdfbfd01ed1df179333ca9050ab3370339d51e7eef813ba8ed3b285f077b67d2c5647c577b6b7f2083d3bfc9a5cdadeecf13b5097c40575", + "607218ab49572304f5e1c56829f65b07893e1cb811ea5d79f7995c2b7cbf340bb11a25980a8bdead6678da01aa12cdfdcd9af894d8ffdde116852322d1676076", + "8cc3fa561bb5ebf48ff80f16fda49ece21e388823347fbd56e37c2dbee77eff3b1c6d310ead3b6f8b3c695cec6ecfa9faa354e33d82c3ec02b5661e9f0051625", + "1fc94ff09a162fcd87674326d394f0005c5f3ce0c8ab6cca18a2f06c8b16e9e81ef696f6e896336228aca4779328e5458e580c631c47b2d0bdb63c2c76d54213", + "6f85a5a9d282d170c69996a88d8a72aa127a214d54064a79a75701442b616ef38e4bc3dc4f017e7e8f38f287c0ccc2015ebdfe362ef6d2f515a6959a48c935c3", + "558ed180abd9288457cba0733c3fba91c1d642c80f527d4d03ad667e6ce01991f3a5e3d592f9fdb75d4e00c50983559b1d94180941767a8414867de713a48778", + "b68bf33e7e52bcf273a9caa8d0b2415fe339b883635aae943f25502f42535c9d5eab6e74d13dd1ec5355f4562f172dbd46b698f17fc7537781481494543662db", + "9b12cc40ace443fc7383f9e0b9dfef64c05f181a425ae3d8ed41a58a104b53c11a66e2fadce82e75dd5c6abf1523322e9e23b401c80d39b721b4c1ffbfd88dc8", + "9c36854691f0c727f3d8d83fd4b2095345373959d85b7a49d01da5c1b87bf42869fe2a2752686fbf192943c641f54dafe933eb9402f0011fd4559c83ce0e00df", + "94daa8f7cc9bb3a74f6e8f2015d90b900c684efdc1938f1c8d530a632c7b437dc6b934bc3636dae1c8822abeec97022dbb8391c49576d97bd04351d1cc49cac0", + "d16d447c722d788e6f538679add7d251f6c19233c53b84b975792ab46c840ab745230b93f98586db5431faefbb26e9aa83d5e29fea35b0d0a75d0ef6975fa7b0", + "e42a46e95c9d205005f6b3c1e82173c2ab6ae774740bc1f22a018c221cd4dfbc6c236166908beec0ceff652b880c58e53cccd332730cb3c70c34666631dbadb9", + "b2c587b28330b8c8d38154c62dc267066e595def0df57c72c14bc192f6e27483eaf15e237f236d7f84a81413bb795a1a79a68b95d27bdb4f33c6183f6a10619c", + "6ca6718e1d27448099911ee4790db88571ab09a6ba6751079950db3adff77aa67c0750a4127c5baecff8dae8665343c66cdd17f46f4bd746b8b45c0dd48746cc", + "742f7d600c15786b9ad88db96f8e0f3c2fbebcb500bd1ee1f20253ecf68fcec2ae9542fd52172ad68db7431466118f6bd1927f13343fb4d8c9f60e3badab06c2", + "33336aaaafa6221b5d956eb667663cacd1cb34bca0e26ccd1f94285fb7e8f9e1b1a43bfb96dcefba84c76cf5b9a044dd035555b33c09c685f4bfdd63381b529f", + "267a312c475d4a2a3e1aa210355dc6034422ec435fa7b5df1d6cc96d15b83c79207a76c993d77a86918318e21e0b318746e6e03ee9ad8445993fbba7e54df0d6", + "d5630cd98120bc89b061811debd15f56dee59047240cbf1d0fd3c982496e2fc06e55d30575b482ae385b9821ca9b9d7eca144823b0d16152dac0615d612edba9", + "3bd3b8ab4f6d5efda1410735d3f5d6e6e5331320e8c05d5881c736da44d8850fa33980154b77925ed92c9726370f68c10a10269c6b5dfe469badfe4de3f047d8", + "4c0f5e7f48e3807eba34b57e899314d8ae4cba98c975f9f785339751f23910c9d156d251f2402f0c0e4e86d9d3ad0f637a1d93760fbd1761c6e40b28e04a8d55" + ] +} \ No newline at end of file diff --git a/pkgs/pow/corpus/shavite.json b/pkgs/pow/corpus/shavite.json deleted file mode 100644 index ccd71494..00000000 --- a/pkgs/pow/corpus/shavite.json +++ /dev/null @@ -1,258 +0,0 @@ -{ - "0": "a485c1b2578459d1efc5dddd840bb0b4a650ac82fe68f58c4442ccda747da006b2d1dc6b4a4eb7d84ff91e1f466fef429d259acd995dddcad16fa545c7a6e5ba", - "8": "3fe519289541f0ec62f2247b55844f9dfce6d008c9062e4ae2821a0dd9e47b7e37e9b859e1b2d0e0cf1090c68223034c94314a190b92bf71f3810ee32b2732e6", - "16": "8def5b88bc6d60da48f14e88ef66dde72ad2dfffa51fe5ab2a165598b2b4698c46bedc79f4f147bb033e9ec8fd2697596db4329b9c524885b313559bbe2f8e7f", - "24": "eea90031f7e5954f8d65a58480dd29e7014e03bbe24fefa9b0f3dd37a3e6f9a1cf4803584c0e19155732c100eecf3f035e00f7debec7f90ce386a9ecd363c3f6", - "32": "dcfd5938d89f88ebaff8d724e59ffc9144b565cf42678773feb3756a5a756ac52e53402a676e20d526d4513e8251dc7413b760b31563f4f206b6578ab9e118b9", - "40": "4087d632e2424e6a0197b1594a7dfaa60964b699e4cc6ac36e6f969fc851f8879be24b2994fc4770ef60b6f074ab8d6305a06570f8d2808b1ae9248f73c3580d", - "48": "3075666e1feb7925459ec558ac433f9527b4c0af2a0a9f61b650dc96c02bb7b0c6f64175edb9a6d2639aa9a38e80002c42138468634395adfd789784feea88b6", - "56": "9e0503c8d9f44a7b9ef049476f07d4a7a99d0d64ef33e51318b85b6c399b622d74a202c6f0f2ad9afcd30f5b60ec82587a7b68cfa3deac71d47ecaf9df3d0651", - "64": "7bad470c2cba3a5fb5629c2886368a5aa2b3b09fd4253bdc88f419102313acf1129c83da4373bab408cf940ff60e43fd502ee0edb37d471f22bfdbd027a6d009", - "72": "a2a86a68f5a1d175dd2dc81270b6fce4ee88be260d33d40e6a65cb9c476942af60648c3762997108d408d47e9ac22b90db6999840855534a470d62f7875701a9", - "80": "fe4385325c4580601a43faa31c4f2edee2dbac726b85371f7be982f812c6fa687ec91aca3bd1824a143d4ded0753085e0f70e4cf9bbad24794a05509e89ed33b", - "88": "1ab45563b4c6230aae97b6b68d5f7a5948f6b7b00491021a79fd8a9cce6f8d6fe57a4f27da658153b165ae464e189723996ebd1436e6d96a9b4917b2264a1057", - "96": "946db2dc18c46a710687a86438a2064b2996be8700e58b2adb97c4e7deb9e2bb08f87899704635d53514a464a8d3cbd9f7a3d1c49449b8805b7d0bfc8c3bd064", - "104": "8187d8b9e67757e4b231aa11f3c3cef702942224e9b7b3000a2cf67743e03b807d5772ebaf2d06f6d6e8bf1e7a7892ba3a2a6688331d31020cbcd05d0e4cd51a", - "112": "05cd34ef418eb7591b00d15465a3a77a570348fc4d82e3d30dd6d438794d6c10962b07653636fdb295d3d4d6507f018c75235286de42de672d072ab4d1463966", - "120": "f0b84410fb89c3f7788fee678efac17991caa701bb163171b1dad471ebe8ebb95a285120b41c703607eab961d07514bf41856854ea216b5b198e96d5acc0ee3f", - "128": "7786176a579c87ec88dfd79e5e8761772dc13e52a56d16877d64ed9cc5aae88ef508b444db04ed501ca05fd0a501283d63cb98cb7df3dd68fec625fc9fdb24f0", - "136": "0d0ef431ab944b5c2c8ac3f91ef24c415a901429169098d5a2d83091a1bf1c3768cadc0c61ec6b8f00ebc30afb6da2368d53a67a47f7dacca70dd2184b7b4b96", - "144": "937b6a416212b4b967861f069dbe4c867c295f10a85fe020f9281c34ddb5d3f5a1bd30671df4ba3ae2a4aad69ff07eb29d6427510692508eff12fc6eeebbf635", - "152": "56c65086f3af280499d4a962907e58ad80785986b1bd14c707f4a94f592c188f0c9a63f409805b4deecc68623ae6dab54a23226bcfa3c756383bcad2e5d1caa5", - "160": "2ad037f20012a0dc4155f25412a61601b726e6f1e511997f8d9a2c710d01cc2d4ee5109cb658076649874ce9c3c4090b786f984abe20c9f7f4379e5c9763e28b", - "168": "078b1b7a072d456d6d76d31b9f557feab8bc4d0bd3da2b7e9cab3a0d6dbc93cea7eb9b42502c1abd9b758abb73f62d195785155fb72815dc120eb3d3a8e4b051", - "176": "092b7f79f103a48e3657cbcd7df274fa6de95bc9b5f13b057e54c29ec6fabd612476d7e042b63c8ad05a59c88b099fb3e6d9bc33d4d4a9323dec2193750b07e4", - "184": "1e0b45201fe1a2084c397c3bb75cba1327f25d47a4c02cf51069b08831cbf7d3d7377b3f670138b03758de3dc76662817f94463f29424440a739341b8cd09bd9", - "192": "14dd0daf73fb7af39a00dba0c4910c77d551dfff7441514b8f2f395df60d0c449484700a5c5f8fe073eabb3085d2a15382a40d4e5d0887c5c3891344c7ca1050", - "200": "4b6a29bc627dd7eb8b006f52aab092cd5f96a015ffd72edae67b9727f15fecce48a57319da6646af54ca19912fc14d223fdadedf99bef30205011d637fd1acb9", - "208": "a252ad1f05529e66b6193f70847a1a76396f5fde43e8b419dd15d171849e1c08c0b1e0bb7b9b6a07d31c9ac857373c63e0732ab589b5e0b77e9668bd94564e79", - "216": "53e1db809de2bd57e980f5c9826448911ed40faf66158a894c15e3cfa33e8a363863b1c33b88a75fc81d4f0f33420a245b7fdb7b4981fe78f751fefad922b7fa", - "224": "149d38ad0ea09bb6a0b2d21ef0f8ab13ba0d49200cbe1ed0309b45f2b82e1b7326653708c25a75c449733372e93c9912463a555176c52cc853cb6f9a2898b886", - "232": "2e28809f8d5d75caedb6126a0d05a3615989048ae6507e3d0e36302bfe3ce5eccdfe3ad8b3bf49af6c6dcd5d0a10415ab4c1b905c941825d7a066014b8a6a041", - "240": "6d9ee19a92b7d0826098cadd5931d5edfb27648cb83692a8fa9bd8cd162baf655d89acf1c5d7dca5bef3d0625b083722a20946040df3cc601fc3d457a7bf1866", - "248": "3c4599fe90f49a699ca7bc2381644b3377172ee8c0f84d9dad25a8e621c910c8640716673cb6094b6dda8c0c1b91205061787e2cb3277e040ba41adf58dc41b7", - "256": "377106f78e09b8281269af888f1c61af7e04c3d715c70bb27843e854a799c359ea89d3c1236f220f1b4ebed213d43dfea88ffbef610333367979d3456ec18205", - "264": "1a0fe826c6442315c825cb1b6f3cb6332f5c72cc97764b4d8a779f614a00818573cf1edf5ed286d7f7ac0f37da8e922773dbf6fca21a38002a57ba8fd34de1f5", - "272": "2b7d2c9ed7590a74eff320af4cf45e32426f0c68b8e913c869cf6851ba0d1af17488ee138f927a6b72eff2ce23cb920b73429a2119a2e66c6029b60a7ece4084", - "280": "2ce403e921d027dd2556a0efd9ab31c45ece8d37b01cb0ab01209d92696763a7a69883bac39be3c889905bd738d6218c1549bc041e94d41e734bf75d7f91b5d6", - "288": "9a263267a9975ac2dee6a5d492fb3d9570ab0ba2dd99aa2eea2beb3decd1d2121667e60a07cc82b8456a0c499b0dd576918547a3310f5b5691c7e054ce2b0c69", - "296": "7f412b90342b0afda15f512cbb50ce6b13035435a9020c8a160fd7d5816727f6a4ce9b5b4b2a4097a77d2ae4161e856f13db151d11b2551619982101b7621e74", - "304": "30a0e0c9f408dad84de6df5a4debe13500b487a9efff7f21e30070c32feacc2ea45bd219d9d20c14edcc06ce708a04f7bdd26f0648ce1949bc7215967f6772ca", - "312": "b18396c8b0822d3e085c28f90a4509e90a064bc9b88f9e2dd18b8078554b6bde8ae157ac828353d6250ee79a4f1e2c51fb8d6c5ccd16309df5124684df67de92", - "320": "64ff28dde415feb61c6a09575b645632de091f586d19da8f995f23a877a76499e2e520e470401393d1e750881e0b6390d4b0aa6c32dfe5ee799ed99c4de1e33d", - "328": "e3ea93a52226e576fabae223e1c71ec6f826f1e7ec02f705e09c42e9e4f0efb039a8958682852148951a39b103bdf7b94058d302031510747725e1df833a7f92", - "336": "e1b48781c274940a5fe674f4c14a413e184d16c6b650fa69f2d55d3cbdd1f3534b870012b624d749b4c2658ef55bdf47837c6effba24fb305c817b962f3ed6ab", - "344": "bf1f084b9b966c03c632c6b955f86934e94f81fafead15eabf50f4c81c87188223ec2490976a8d692d50765e216492391e75808edbd4da99904456ad947a19b4", - "352": "979cfde66a038b3282b2e2ac985bea3f0b6ece6f0c88322ef54e381a18f9f0cbf57b6f30e6f1018b43269c731f53c7790a1ad18a09e787bb41c3a3f79fd66a10", - "360": "a0d2333407a72ccc424d98fab4adb74041fbc4f642b3867073e80f9fa65cc4357b8bbade729b5f8ea5b81573250926cc5d7ae6d9f1f637735adaf79a6526fdf0", - "368": "374b42a4a6dc03c38eff8b592354f4c277fc5dcd88e31114ee7f5912dd28e961485c882539dcd2b0e8094b5c00c7cc0700bd9faa26ff2b14ce45ab704dd7134f", - "376": "31449e13816d156f9c888758f2279606a17001791605666b73e68026df4028247818a43e3fc4d032d73d5a52a4419fb478d47aeaf79f85f943e1c4038cd22215", - "384": "7134f393c29163c39d3e8d3753264496da4b9ccc076aac336eeafcb3aac80b22ebb092098aa2710a6720b63339ee49320e9273d8054895ddc38a648010874d2c", - "392": "09dc902ac79e746162f5374664c3198e7549388edde71737512a421c36e9a36adc37cb9a4da2d6858bd4510eadedc29af56fee68de731a1d815aa04a7cf42537", - "400": "1f005df69379b7d410808c19934172660b958fdd2a2aaba3a408c5772858d516fde73a3c5e161bf9e7500b2e876b6e9016f304e730235843322cdd96ca44afc8", - "408": "62ef10a48a87ef3ab1b049e0856d17d1d7d3f3d45588310f3d39dc28282145304290aaff15fbdd8e2d6e4d51ab5991a610f87f1f24323af5de8f0eb98558076d", - "416": "b872d1254cf30496b090305261a9eadcce04b5d55fbf34a0a9b092c64baf297a9e93475fea253895d04192e28851349a653a196949547a356712cf6f019c7649", - "424": "ab9bda90f5aa6362764f81aa30c7bca477eb4d61558481a5781a901bddbff7f5df647d68bd969da272d547edca80328208c384868f1af59ba76e3393df492ed8", - "432": "04ddb23e82f7afbbf860151bae22324602f6bf60779a01b974f55ceccc5bee90ccfeefed49ef6520fd0cba503ce8c7e8bb7a26fbf70e22d52f25006cf757b539", - "440": "beb3db36b02a79842a33ffb89481b29982a81db4f6cf48eecfe951bc4b588aeb9ed178c6373d00ecba96f786f7a3fb5c8daa8880286c7b95c5aa2e6448449779", - "448": "a2cfa8e3310a45c09be03b3afc66f6059c353ad04001abca42cff4d3f718d452f993b2200049f1e467ec1ab7532eddfc452a403154301beeba0639fd6d32c6a7", - "456": "4c7c3bd43aa839d89fbf47add1e3d9fb72874b5fbcbdb3ea83558a0c04cd0e7eb6303bcf7dca6c29038ce31ea808800082f6584999fafc3c6b8bc2739644fc5d", - "464": "9afb51609adcb2e4ae3b8b663fbe3d129a10a580b0943d832719704b65d9ef088cf22f70392034ef8bd65906f2418c1151313e3c463f59bc5ad038c08106f0d0", - "472": "138ad91d1b0ff189663935e3bb764cdd59e5dcec03782383be4551b473a2473b1d312425c8936b7f9dde874a2688fb1ce4dbf53ecff38263f6e63535c0c61092", - "480": "c480b7c3dd0c6578aff7c4221b3284d4505b44db429506d59517826320e346eaeededf57acac07186628bdf666bc1001b8a5f946282b1c80b2393b53d4c9cb0e", - "488": "0ba4cc0e2b3e39d05909ace7e9dff7e276f3bdb74d1f5d0d218f0c0afc1d1657454ad2f72292c0cdaf9071a66e2978fdac829fe8454aacc0f518dd5d0394f480", - "496": "02d9698de69997d28941fd1dcc781b40ba5d04fbf4a8019800849d6c8f8ad303dfef372127b4ff7cd0361f9ac23f559ef7486d2f74c395d1c106f7b8c44d329a", - "504": "3ac25e698e481a3168e2e4fb6b38a7fa10709a7f8659434dc9580cfa7f83d534a34fc7d0e838daf42308cd8b8914b3abe500c6ec5ae9a60f3fbe3dc60604c16f", - "512": "70c537a050bfba2d977148e5bf5475774aa6438c0141994bb0f484c00e310d11517511b92a6af06462ba5c89165633efd4ff2ba101e75c171de23e162bb13dff", - "520": "3ca072cf726ab7ace9e3da8f64b1327b3d8fbdb0413402183690b4461ea06a6ba7260026899267c1e2a03cc207e2a1fd73fc1fdb08bf010a759267129eba956c", - "528": "5ba057ed8a3a540d4d34ea062e7ca8b91bf37826c24bce02884adfe514f84a1cfe0bc6d18fab84980825f4c874dfa7434a371f34a2b0e57925b60b26da9494ab", - "536": "c14ea4030981ea8e1ea6a2b6c9aa34833da47092d983995224c8d9d8db85a03757df50440c3e46b1b9b1b4c4c09e1d21c5c26eb6d2875f24d0d3d5c2fa9e6ec5", - "544": "8a9513575d9d64d6c3cae61102145c6cf767fd485a7832bc601c0e4715eb382ef458edaa617396913cc5fd97e38d9f5931840c212f38f2bbe65f187ff61747ea", - "552": "589de2062062146a3036e74306a1f743e0261033d8efaf022fe4af7bdc5f4c14eb685355ab6e8a684759d02a9ecf8c86bdef652ed03ab00c6548db24b6414914", - "560": "21f3fb0521790364c9d4f9186f95769efa3c5956bbc05f353b670d44a5aa48f3d11e85a06e2fa99a783ac58994dca8b4e57aeabb84f45898b4758a7900850826", - "568": "f8c89b00a85353069a0df4045e1fbff98fbeccde39e2422aa59b779c1cda549d30fd4c2ad5daa8cb16f52e6b403a21c468d29e51b1d398df80c44c40e9a898b1", - "576": "885841378bb53299458709cf0d1e1b4d438bbc3c41da7f24591d22aa6a240a9f0877383b4813588eb4f3658bbdeebc37dcffe92d0a4e7dffbeb833fde61c234b", - "584": "e9c12db9af433eff8e029b07eabce1ee1d8b20d8ecb6471ace7381e304a4e236c9cf3cb76572603acffdc3df8c83aec163652f3cfe9e726e9187e9c26d535d3c", - "592": "19640f749c366a4ab4eab2a12feb2da72d246d80dbc776933cc12bd788488d1a41d27630bd9a7983a276fa80c9773d99543439f2e838468dc11ae2944dcfc3d5", - "600": "7503f4031aa3c2789c90b9fa97ea2d2c7e8f55db816dc4fd3ba8b14a0b35e9e72d506ee3afae8d4c4b980b89bc874bff84903904b3728bab5f2d9167aa41c964", - "608": "4a3afbd18c0ef5b445a8a7f72b8ddd5553201462ce7727cc6aab9ac545eb161c3c67a66be7bcf2c6561be7372729724a9de4a1ff28a74f1b991c3a37b2359902", - "616": "5586a19b4529ce8a36b64ba5025ffe1931f81ce112aa5cdf26a181f6c8ecb7a33284722eb4f9a5bc827026edebf6dccf48c2e65509aa13127f67f55bad266be4", - "624": "27d376120d671877cc34ad58d88d2c202f5786e7451a86faddc1c96846b0de0f0e3e62a5070cffc83bccd1a87625c2a0b7c0f423c750a1352eebe80ae4086d1c", - "632": "fb50e1ad66f9c9501aef84202f1431bce20a1799c7313d15d2cdc205d69140f1fe38007a45df0a5258f46583be8495ef572107732fb767d6731cfa7fe1502f51", - "640": "adecf698b0133cd08c96c86dc70a6cbb76846d42e6cbe863ebeb638f46bbd494f1717066476540dcc23282f6e9cf17bd9b758716d5a1b971c410000bb9a1e81d", - "648": "8ca5a9d2e40436e730d1e9eba04a332f63727d8228e26833419b11730720950132e548e1ac72344bf6db2210f7cb0ea4887d94870361053bfc2042d005fa2951", - "656": "0fdd6f35a5148257f4368f2b1a4b3db1db513fc01ce86dde3b3093e5d2547ec184ef81fff5a2a794294b8953b083277f18fc894e57a464a5f6f7a4c097c74833", - "664": "7c1f91f261510ef0c58f56942d5fad1923b7940faf827428516aba22129b7a4b7e07cbee87b22ddc5acedf7b6ed67b0bdf48f7a69f08afe9ae18d0329ba481f2", - "672": "aaf4b22332e3a8c4d8274eb33ab47ac15d6d545579c697ed84c8b3d11fde24447099ee23f8e78672cf6d1738d6648b61699facac31250aac7c07964c109364cf", - "680": "a7bcfaa5ef4706b91c6e51fe6bab4a0f011e39078125060333af52fd1f08e5056a73054a674de6581a706eb532d7afc11678811d83d73ede8d33ed1b5f2ed021", - "688": "b2d21d83c85e644953b857c0c6c9a39e59ab5da76e5b44bdcb783bb60c725f654c63522c808e6a1fda5f4133ceb303d3e67bc091ac5efd0fd376d96a5058dc7d", - "696": "509a535350f06bde703aa85cab0f8b90bd18f6ce4d41274e40b06573ad7c8954fd206f65890cf02286b1bc0c3e78ca1053b777027e7a4a1694a540d0f0242513", - "704": "d7d261fdc1c76effbb0928ca37bf719b71fa88cafb85fe44a231cf6a9bcb39ce16b3f90c63a787f13cbd070c90c2fcdc379d2da8efdd84e8482ffe37f950fa56", - "712": "6c4770eb41db3388588152422f3da32d50e31df3c67b8d05a772438313ead71b0e90befa598d82697ace75ad06276b4cab01ec125a5b6f765899a6a465f39743", - "720": "c3cde6567dde412bbd323b53b70ec1d1cdeb1f5a08b25ada5f88984e4a6b0695a1705bf43078ad117d200597aa22de125ec2c1293987538f49d9f206f300c37c", - "728": "a654007765beb2345c6eeaf47118802583887b31d36c779c6e21f1edad0c717cb6801a53ea34cef29c6b25c5cd46f610a8e7613c534d725476103de468e10064", - "736": "b58ad354ff3d8d17bdf79ba8625c33520277159a5c55aca7f6897d5a9e98a35c44670498cda8e094715eea3c0d6b78e6cfead8644c6bf42730aa0cc793faa26e", - "744": "04f4928beb8194c05f151a4c5c517ca0576a8e567ff0c814a93a1d007d777c3484a3177e1b66d43edbf2048b5ea9a3d453c9314615955651f8ff67798893390f", - "752": "0968c3a0793ddb8ec64970c411248d93363026d5e1ae6158717c4c356ea4911de681f753ef01f39121975cb70b79805fd7fe7e66b7fe84daf8ac6d918533acf8", - "760": "931d668bf32f2329684494f147eb857a5d8dd58ffe2a1043bcd398b6a149dd0cb48fc397ee9fcf700f1218239223c6035a52e5452ca779eab737708bed0cb712", - "768": "84bbaa99e567a42549d28eab86547d6e31a81ec88ff43068cbdfc60c8679ec81733bbdf1380af83c085b006e5516a2c54862067d13f3551440c1169425296b29", - "776": "d7dbfba989234e7aa373bcd2a89b35bd1f3a8b62ed7fd9a0fbea984062f315688776051ee4e9d30c09b5b3fb9403a53d23e7bb39905a920304bf736131b257c3", - "784": "5b09b067db68386f6f5c6989b7d05415b970699e029a8c9bca99b910b44e53127ad3bfa02ef62fdf2c1102557a9b2e536b2f5bc9283edc25d294559e0c910083", - "792": "9360c158176cf171ddeaa17c788dc1b6533c65f61e501558638d8394ea7e7b03ec5e711755d6ebc9b14bdf052936e6339ad8d18cc01ce2791bb75f7c70b1e9eb", - "800": "e66c5bcd53f6b3d564e093864c68ce112ff9e5e3d3b5214b96fb7d58d9def1503a581afce3cac5717028826991fd038ff63b5994e45b4e9ee6b65c9cb05526b2", - "808": "b6065ce3a49f5082c8d6c723c7f44bfb75cecefd0b4593dce3193bfb3928da09c55b1130607b4ef4e1bf1642a7e3faef3158dede405fd51608f3d5a8f4a4b8a6", - "816": "6d936c8f99400a280333c657d0ded0e04ed4dd82443f7470804af07cca746d8abb3bad3e5cf016def38168a324578e2c244e28eafa71f26944e1910e5441b7c3", - "824": "63d1a311635fe4dc00849e1256e2efd28f3104548f644923a26510a26f04173245d6f1673148d1bf331d1b89e03e87c1268cec3e9c29e38a3903ed419eecc871", - "832": "fa6c610d533be9917c38252fc540f5e04b4a0078242a5bf046bd56e3445bcc78b4edaae903dc268f05c0670c36c122cdc3b2ff564b1aa8519676de0e5a18a857", - "840": "541ddb0c87c81026efc8679b96236b3668c08bac001906767fa6df6e77545e3e7054c0320b10273eab1c9fe3f2da8ba6dfdcd0a58f00807d5fabfec0e9c2c86f", - "848": "174390b7f53f4846b99ed4a18da3e65b6bae2601f437c21873d66ac77ee4d9d0c27aa3e7a0634c8bf90c4258eab5edbe417c567f1dfbcb4614477286644019a1", - "856": "87730833741aa86002f703f32ad91de3d4377efa0de3d48caa3397d33c69d8b81818e3364fcf8137567155e36e0e2466f8c00d61fdf56182d13e975eb12fbe2f", - "864": "b68cf933145fb68caef1e0b9f9e4147ae50da64a77f3be8c37c2ec86050cc7bfc0242f4a2c51a4441d2e76d65337c733fb87a0d84aaa52075658ee93d89bad6d", - "872": "2ae750ab73b8defc32509fb0423cf404f1f991a98321c51a51bea35d3c3a8c31ad5fc78474115c34dd9dccd654bc794d97480942134f1110607a9359eb771cd2", - "880": "b9ee163164e70cff525eac5352391796421a994ecbcf38c7a001e7c7509e472b66a9e21f9bf7f8e5b477e26d0049be0c118d8eb990bc9f326d99681d087cbdc6", - "888": "6a8ddfe336f42cb9717f4482bf50ba8488501f39bc66cdfda00cc1157c32098e1cfded37dc23f515fb988d445c99dbd25ad7f51d756179b5b014aa4f8980739b", - "896": "b9a167b5804fec4d07e7c45091abf03f27c315569041c42b60d7ebd8380701eaeae6e375cc57fb937c24691fc87801ef4defebc55bd904921581364d13f50646", - "904": "379df667bc2f621936e11f2f8f534b6734a38bad3a17c5a3f6d950d424524310dc59cb4efe962338d8a2108156905673a2ad8c3490142fe2e8ab61fd5f019072", - "912": "d18aa7137b52d034c7fd36ad07bb24c0215d81b54052f4c82a81d3203ebe8629f3440994859a54046e23bbb283abfb7c23065f2e4e515a182740ec0eace9806d", - "920": "b8b5abadc83d9900c1d1c14de6775f503d88d402ff677900817e3ac8d2486b829b289517981d3b36d1a384566acdacd9fef28992e34fcfec794eb16f68d65d4d", - "928": "7d9f605d6598e445be942af4356c1147bdcc0fa4415e7d58f879270764d25debdc1225e437c34d9101fb0b9565b7b442073758466358b07a1660b206a05e3c78", - "936": "399b5bd1b3883f2d071da957db2f665b6d28a1abbd6374094503ce376fa6dbc18c3485b5991217bedd94cde9ff334bd3bb04df00bcf9cb36a5aa948c5d638e98", - "944": "333ad01bfda7f0a6e4fce2f96d7ab1afe0ba6518a20fbeed0d1f1fafb4a9085abaa4e6423b0c53ddb24c169354d4d9120414e61aeb20f4617f240c5bfc5410b4", - "952": "af7d07f76c10532afd9f5255c403c87ef08abb2054096235cab98af1563d32e30874d28930b82baa8be6b181cb44bf1ec77fffe16e98cc5fdbb8bcb7963b5b26", - "960": "82c9135b49ce635df19c30648c1505c15eea9dab7c8fb6ff8eb299df1bf634500841ed6160d7a1e9cb259093b90a46c4f4a817a175b3bb1dabb5971c3ccf5a02", - "968": "8289c29a19120ab6cc1e7c0311ab8cedaaf3082615cc491f8a21dded57392c7d051886f06ff28973df047a2d61f5533ed78110a90aef77e6b126dcdee17ee6e3", - "976": "9937d5e0e32840d460c128989ac25dc07f11d61b5fbde0300e6dfd59b9c394f50062d530c860fc9561fa631c3102fda8eb4d98d0ce863804ec12dbe315df49c6", - "984": "57ac04da5092b768de2ef4a925576196226d94c94a1ac37d2db30c644f33c21c365cc012064fe2637c3a17ca5237278fb3aaadd5bfb1622eba7987314d1583ba", - "992": "231e9d2e005c4f715104e7ba66a6b582336f188a56421da23d3056684b080d9429826c2a05fe94acb2ebdbf807bfa8b3961b960040222458749c1d43065a62eb", - "1000": "da7d561b60e3c2e232bc5b6e1941e4af18b3f880f76953e490bef55f5c0ae662aff44c7f1f6347e4d3d7b72f8465823aacd486bd1d099cbd5054d53643949829", - "1008": "9549e8b484a20075200baffa8aa60c8e16848fdd746901fa1c260ce486be1c43eeaf66a00429721a523f653eaf1d5bd23f0378bf9d3af4ded2cd9384b34de731", - "1016": "dc67098514edc61407e6fda1cc38e5d08275ce6db06f443813ce50bc74dc76052525ae8d1b916d92147229c86af898ea966cb40b5b72fab4924573146115f122", - "1024": "14732b9fbf23b86b9ec182a29893de5c58d91f61361cbbedec03220afa974538ac891de4408a0d82de63319fdf23364ea0768920cfab82563358d924b6977ce3", - "1032": "6cafb1f0826526f17467cb4a908882676ebfaf352f3f104b8ec48dda7953489c293044da9dc3c885cfd356ce74de2167ef3a92f081ff36b7742cd85fbf1c8f9a", - "1040": "0178f987bb2284c2a026de9201533cd619a4839f121f19f3dab12a101ae5b84a02832cd067ed84197ca0fe69e909dc4c2f49f490268afe832f0107c7b6626c4e", - "1048": "3d9d4c7dab3a7a3efed093463ca45cbeb73fa47b9c4157c6507b744fb60a4f856d3e489feae62a8ad7ec9d3fed77feb91ae74347673ef1b07e39fb5391c7fc35", - "1056": "7dcbffa0406a7d3482214aa29adc82ed231fb88cad6c74f78c3eaed1ddd438f9ad9cd45aafe0da23d4f611b0f9b017d383d3fb8b11f721386bc802b5b3c561b7", - "1064": "d39cd6eff3eef7caf4d4a85ee0c00eb5e135880c949148b128bb2d535c3c444fd371d86ae4d12244542ad5565982a33c645c70c7f081abd3e3f09f8cafc814ef", - "1072": "37b2e4d44fb7fd9467dd1c3a57657f735ceeaa01ee8b569f150d8b459d5c8b7b75edbde1026c8bb311aa1360df60b233b1088aa7dbb3dc50ad636ba3ac1d89e4", - "1080": "5817ed576a37ecbd5091139394970802ca005ae2f2afc4a591bbd7c17647bdd29a1f7048ed55e415419d4fb9e2c9606c5aee91cd22252efd82fb283ea1751480", - "1088": "714631e2b869cdd2c7291e5028c1e8db4aa9e2be0ebbe7cd9b42e84286b2d0e0252128405304f1322ec7af3df56b2bd37bcc1f1bf7ac527e786e97cf8c04b2d6", - "1096": "74ae25a85057dc6edf397d1be4278fe885762dd1b4d6d85d597756f981bb2746ba5fce68d781270270dae8fcd5e93412575f67838c0b9e131a4ceb2aa6b88616", - "1104": "34ff6d80167ee2c08dbb0591f561fe0df75caf492d51b61952fbfc878effcd274321170ae934b7f927e8f6ad53342b87a7716f4f0910b2b5458c0ad996b79d63", - "1112": "a15b2bd7bbff3c22a7aa704edd2eaf6f3c97381c3c0379bb2fe50b94e34a8899d5b3d9fc6291091e542fbc0a300ad9117246665061b938c882037abe7d99be3b", - "1120": "137ffcf74b2c8b8ebf25e533e7a1da2d4634d1378dde22f6a227d5f4aa47e3a2f6f0767c518dfe4dfbad5f83b787c27fc9cbde7d3c87532e092fe5032bb1bed2", - "1128": "c6f6bb3e282b9b919e22eb5e9883f1fa4165666c807de1323eee05697d0ef9956e6dfe5c3d1713c5c4a8c9dcde2e18f088b4c6d1a07cfe7c999243941b5445e5", - "1136": "aadaa084f8370fee8f3c938c83df7424fe811beb1d7b0342d68d82cbf1a4fb73edbfd38e3fb08839afc23b0cdceea95b8f8752c4df3a72328e9dcf1e5dd39c9b", - "1144": "143c0acea346ee364cd0c524eb65feabda03659d8ef9d10d6c25a0d427552f96b9637ebb4e0d46cd2a1c18e75ff3b9c8331d6e9fdfaeb8994ccc9b2e94a31f58", - "1152": "867e6c08d05a2662a52515148a541cb522f6594bea4cd7177ab499b79dc28d7c38c88690cd33aa8d987879ff5ad54ec2a3304216eff0175c87def5af966307fb", - "1160": "2ec36f87e86600858e073bf53620a1d3e56b0b329281e859188377919755447daa486bf54f33890b963e4354d177918a55a271ee71135a276ad58377a41811e7", - "1168": "8c062fe41b5ad706eddc6be0fd00ccfa2cae9b8bd9bb0ea5523ee973a40f27c7d4f3a77bf749cb53eeb22816d581ec84381b57ec2ff1902486e51e074c700950", - "1176": "a2a87069c4058165b9de7c7e76dc3b2a38ca15b260185c2fd27e6157cd2d82b1176278d4d3e04e0430831c361cad543b905beb639e2e9ff138986e13d61d8d20", - "1184": "21396f8211648ed9ae2c7f22307d9a8797c507ec6532c0bf0bba1299b348d68928e24e444ac50927f2848546b21d4dda9a32e2a2abf109a0a57b0d30a1e7c579", - "1192": "a96ee6e43ae0ccbad8396f6b017458c1936a9921621c0c4cee538556eb5ac39e640e4f1aa8e49c36af40cd1b37b3bee50ba52735238c9a79e0068892031c1a9a", - "1200": "296a27f62179e2b508974292b7722a62a760efa56324b02f8306b70fc24feaec66762394cdecc920bb24784f1d85498cd93a2a1489a7a103e45ff4ae94893b4f", - "1208": "7f7a54d74d871333a002235d2e46256df3751c991888b983b03fbe5085947d78cf944faaf8677405f77abc8670bd12eac66116504260d2cef92b57f531e16250", - "1216": "4efca43af1fa81736ce163e05e6fa5f5bf1fb87961646d05f9596d84c375182010f6c5a0705d52c337e45bc58cf4abbae196a5ed02bb8b014359a0b8197a8b92", - "1224": "fbdd4a42f4c62ff385eebecf2028a5f8a33ecd4d596e4c6068d69904d991bbb1f8be1cbd0e8cffeaa9496325e4ab582e86920b76b4e15f930f8e44e7e0d67596", - "1232": "9641649a608bee72b45cfe6b359872162b74a3b233b3c15066e14dc0750c43ffe515ee9110e23761eabeb268daa78f528eefd3929a28ea8ce97fe2dc73d40baf", - "1240": "f63816de834fdee7318e691a96113b9754a497f99603024690a54ecb0dee65b13f5e1d3afa13e5b22b890bbd3ac17701fa959a6ca43b7eafe1e199541bb08513", - "1248": "9ba41ef26c33ec0feec6e20d21515298e4fc4a086c90cfb04e7259042bba4a6a9556a81b4b93e349d71fce329c460fec33c65b553a10e1d0eb4068d1d7be1091", - "1256": "8f51f54bec29974c1a47cd347e1d9914fa0870aa03b0c4c268df9c1b1f4a3ead018b9a0b7de49c1c7c2d8c5798daf8947251d2bb1d588e76a38b57348478d021", - "1264": "b814d38c430c3bcb7050dfb5e91d394cf79e8c1cf76c29a64ff5ec1dd4ff96412d5681c34e99e1bc53ffab6e62baf5c67a1063e790a14d235277d0f7c8383e0b", - "1272": "96721800457ef9089f357262dd168b0a221344d1ad17bfe05b9af0e7176e1569a19a0b3e5fb5c3fc1162c930bb35d510598e5cab3ac5fea1f8673f7e7ea50557", - "1280": "d34deab63887d21e1aa25840effdded90316046b7a4b5ee3ca0a8f974eb1cc333652259159046ec7ebfbcbd3e7eb7b9684fb85ddbf39d38623a2318870bfb603", - "1288": "3054914b67fb0d2bac93918f018dd6851aadaba1477a380373f08e0a1a8b68661e6d4268865735111f054bbe0c5beabfdec9d1f2fef5bfe5d8d12639d93da169", - "1296": "dd1ee762d46607bb1a132a4f6d49edd3329fbeee99e7caafd162d927cab498964c0c24260351bbaecaa57393050cb08c90f4ea26a0c0fb1a89b3dd8b3ef8abe2", - "1304": "9f64f90755168251447f1e091a976fa7eb47f8b11f03b614e853799afbcfd26ffc8d1e473ef3cf8dcd09b23358cf98a0cb433c2571bc11023ea496dfcb60c725", - "1312": "1aadf6b190a159278529932495a5487bde3301ce908383f1b9f2dce03233db9c04661f72f675de1f8fdd116fd55cf814cb1dc50f8799002ccea1c23f614095e1", - "1320": "b313761b7c1a56eefaeaae318c1fa95b6416e6f10fb8b364117a9d1cc80ed6530d8bda5328dbf867cfa967447636d2412a893cb0b891ca3143aea8c0bae80f0b", - "1328": "58ddca02ee6d6817cd8cf8c4e40982b7e9ada6cb1080d8f292822d0da9efd68cdc9ece92d5d1b2f7f4fd000d4a94e79d401988e919791e9c3e70c0aa808bc3a4", - "1336": "793219390cdf21293cbbd5dae347f06a36b099776d4254c769b06243ed35cb9b2d94a0cd67457883c4efed51f87834b3cf992a4b330f57e1407f4964b6cd09a5", - "1344": "7ca8a651bac66092dc484fa178f801611f317796397f15e7ef389876ad9c206e5e6eaa016d6e62b47037bc8fd7651124bbad5858f6caf63853550452faf69662", - "1352": "28fa367cdd01c6b21153370f348ce7ed4c810867d70b2d41349015ccef8618679d230863a0538e00fdf0aaba1cf96cf96d7885aa826d03a65375db61a7d3f10d", - "1360": "2d65dc8c5eb56b5e9ea99a5113e8a44187e3ca91a0ec5cc7b87396590846821c43e19c09c78f510b2635d972b4c1ff799c25b03a51a776bafb717bee757bf216", - "1368": "c828f1769f08ffe8b32856d8f74a1013a5130d0df5d05ae202aa559ebcde9b35343f196839c28990ee6724bb9a385ed305944b6de29c61981f33496b614994ef", - "1376": "67e9675f14ad7a716fa264f15398420220baeaea205d14980c80c752bee06882980a6aeab07a9ea49daae6505c1584dffdf8473420da76d45927da9821bb9a1e", - "1384": "c1fe237d37eb2f4e027d84b5f84df2e43d06eca24dc2c9bb4c422c7ef614c2d67f5351bed3f4edf077a1d6961cb51de01053adc2181f8b82a3ca1aafab7204de", - "1392": "39bdff19af0f1193bfe9602ea91289d33e642c7422fe0d9447c9b91b8294238f06b63bc0492b390e5f7637e2a618aece6634baf7b746bb54fdc5b82f5bb45c97", - "1400": "89db02d59444042ae44b6ccba940c448f49596fe3478d4690e4900877ade3948e002a87d7f1baa0ce1521577941c37ec21cdd2abb1c39f5cf9a2be0040ec2c49", - "1408": "06b86234a5b3ab4f63d51a6ce8bc25ca20de9263ae881500d48a0b52394a90e9bd3b55ea210ed8fe8ab4f2962d558be29fab98f7358f5fbfc86c2c2279ea989b", - "1416": "7e90bc43b56fad43867af8fd4bf1297ac0f8687cc40023fa777bb1119fa52a5eae1b3def399b441831e53fe4ca36646cd9a74639af718524217fc6f1194d076f", - "1424": "211306217ffcaa13d0900ab172febfbf60604ae2c1eb52d9db23259c74c6fb616b7fe790417c0c9cfb3bda23ce92bcb5f258973eae0d8e09e930ccc31dfb91d3", - "1432": "9bd58616df7ced2a623760e6b6340544a107069a7aef1282b6f55c31f624cd22b883f84ecfb98d3eabab63538e713206981092c96735e2423fabee7b4b2983e0", - "1440": "275b94948f1d3d626956a5c14deba2b8f6d5913b87647c13f829597261cd86f05fbc66d1559f186c2d58ba52ead7d219da89da83629088d44ee0278db34831cc", - "1448": "847032617f6a011f0da4981aa0e8dacdd1e1284da68ae38e9192c93c7d91f836617370cb5a26875ecbc45a88377dfc9812c64d984d43aca1ba188f251016553b", - "1456": "4fc809e414e8eaff752d0f772fb506793b7e7eaf8eca29edea080020c5d77f897f1930e591fe67484fd6d608fc1b020690f4879f91e90d0815147eae265b9406", - "1464": "35688b15df73b183eb19be2fae70ce0a63d59ae4ebeb24814c952b3e71405f41cf0b3d1a567281ebf770fd0281da2d54375d9e21ebddd0c4f9a28c0a4bc43bf6", - "1472": "f199cd9b78cd0ac0d04fe957210b1176c527a317e2d88ff8cdb4675111e5c2dbea03747f762c5b8af4eeb91694d45a658549b75049e2aaa4e5537cb8539176fb", - "1480": "d00714d6755237e0b21ae0eae2dd0317afb920a7e6e61278315cd6c710036daf1d53c677ce1c76ff2fc1f714f734a68a88fdd26e340e93f3aaf37a2b340e6669", - "1488": "a75e56fa3a83b946131b6c49223af683d9a1fbcecacfd1806051aece426d3e070a8860d817a085318e1c9c95c764661d445fa5c566200d33733ad030369cbcdf", - "1496": "85c58f6a23810e72acfd74be201994538f54ba27968ad47ca540843d482bab6d47d65a7617aeae14e5dfea97265979c99ac40dc0f73c6a8ba7e5a0e7e9386110", - "1504": "9733cb43b599400e44d2f30a2a8c332c6f6769259c3f8d0ef7c79b1fc15bb8ee3febb9beca3d78cb171d214ad379eee38e70918d9e24b013fb9cbda1ea9da659", - "1512": "b4052529ff1ea7f679fd34c6fc54d2894c848c7a36ed26f31a4580f71cb11e4274813b60b5fc31da55ca8be641d77ffdebd59e5d813c4f62d4dba20467e18690", - "1520": "02ba5587b4942a9b2e7a31d5e40362a91e4ff8a2abefef3c83e8b0b387aaf3888d4d5d52d7ba41cfba19bf9211298b1cb2bd885061ee32c64ec67f2b4f596c2c", - "1528": "cc0f4927b00542274593a4aa8f349f6e87fb5f83a4404521002014c276681798106d8ebe32690171154c3b2af030a8ddcb088daef65c8a354d4ecbe42a2f00ea", - "1536": "0a8a91e3f39f0bedd6d0e38a068ba31ac3fa39074e7e5f4c9ac59954329cfd5a934322ddb72154230abb4c1313033d4d771399df36c74c162f1a39cb9ad390f1", - "1544": "8737746fe25aa336265a1856855294bc2e81a09d8e3906877d48f9ca8c062ff38fbaae7b7bf8dcf698e5b75b657196cfbd7c9d8afad28b0d51ab7fec38ac166e", - "1552": "4bc5aa45f5b254f2c00d028d093a11e2a3c5eb736b9d3e2ef3ab038e2a4c46950c22aa20e9706e436ee59029567d5621df683b421536db86edf0e00ca9d0fa3d", - "1560": "490c819382e5df0ac2804a422dad6d43dd24e4303b3d3de379e3a5137b2c95c15636653a3008211770ca6494e7cbb42ec3c8462705727c97df90a5e27091d7c1", - "1568": "b16996215d749d7a183b4756964fc90746f472214bb7ffa4d1019071a8a732ac7fcd9870af3228d521694a00dbc041658d26f484ab9d21e3d5f428feebecc1cd", - "1576": "e63d348fb069ecbafc34361179d20da75567d5f645ad0c57c8370234255508eb6e5ae0c743686ddb767fe174eb9eda3f7d4d78229a2a6f70da6e7c9334b7e602", - "1584": "adf1b3e7ad5605f160daa24e3f0a2b7b597d2514065f7cf259df00bc5b5af2f8b944bcb59448639583858c66d5a9c27c46a1c76588abcb1d3ae9f16a025f97c3", - "1592": "df6a9e541c2dfa261e6890de85780505875f9e6fe6880e79317d90d8b1249d6f3bac45999a319a1736fec2b5ce006b8e5448b451bbfae596159100f16e39892b", - "1600": "6f401649ddcd3bcb4049a6ddd903eb64292a25991e0cc2baf175b405914f75a165d5ef32be27a728d6b8d8de2825a2f86880315c379dec93d447bffbfa57f897", - "1608": "d2a748745ede7249276d2786e9a06c3270f37c523035273df2966a279e9dfe69a86c54bf65d673a970da66dd4b39dcae18b2a118022dc488e0fac5b5ed3e7549", - "1616": "feb17584ea9bc976fc07b5c2212babe6af6cb32e5c07cbd3d439e84acbdf37b78ee5663c64d0479a21a29cc3bf1c878fcde71720436488cbad45284a4c3ecca1", - "1624": "d8532e0efb0e457b8f64e47e59a562c89694704995ce17fd47e6ffe497f1c25618b88f98c1e4eac1d4a49ccc4b2e482e4cda1c730eead8b51032f12260ec44f3", - "1632": "72760bbaff206ce2c31fbf9d958cfe1fcac75f6745bbb9a379709d68df355191e4873085e4af1d559ad6bd9fccaa00d2a2d65444eea66dcec7b6d36acf2bccbe", - "1640": "322116a98a2ad74ecf48ff3b09c181e18792a840edbc9f1021dfbb93025d55402c1306512d7f644e4ccc4e0384915bd88babc842eaea43386267a0350f9f293f", - "1648": "07554f12bf3670df815dd77c5381c0e94d51c40b2cff9057ecea48c1b51b8589f54462dce392c5e3b47592d22d2fdd3fc90a64637644ca3038e83c9c671a2cb7", - "1656": "7b75790fc230afa5127409c979caced6b2b18884f41130696f891a7f9ee46078b9ca780a42a19375e27c4e3dfe21804d74ae37a7d17658ae1a257d29a31b4839", - "1664": "b0bac1a862d0a5f365e937bd766df554b3527c26981f226356c8758b063c6edc5dec9d200b24bee250c8d80e79b3045e9ed78081779eb973b95d8fc1092e2525", - "1672": "635cf059549dd09296068b15d3e383ccccb7f9a0fe24df82b267cfc3121cf3efb7fc7c6aa2041fed1dbfd18a5993cf95a452725109a6acdcd409ab9cbbc82648", - "1680": "f3352d5e960eb7bc60385358cad43f6b78ee6c3804edacee212a72de0399ba2b59c581ae14789bde6309b6ec8bf453e626daac6c7fd581763df78aa3342bb72b", - "1688": "13eecfbc2c2737e6b2b44ae0f2bd884e87d85742e1469e217e1670d9fa7cc7ffe396497453f0ab77696a529d90b9fdd1c0e6a07fe06515b98b97556f0fbe114e", - "1696": "1198ed58bd19179822b159c027884db5794717ab7a3cd83d2f1462e386ef8ff8d11ebc2b88606275d8c846aec7d4d5a110da304f29c97367a588825c88e906c9", - "1704": "fe6e0783752006b64511cafd337665efcd2b20c08924e95e2eb112be8e40d3944880a7bc4a62639775b1c20943d125e81a6b3113f4ac48f43292cc33052b89a5", - "1712": "ef314ac2cee0ddd3f29fd07e00fd77a08b97a6549b8f36acd5284ea34d351727a3be8cd3324ead59918ce9b3fd3d9f5d7b20a5f16aaf2f28eacc0bafc3a4731f", - "1720": "9d6f6215fc91181ba5a13c520a8b4284fd8231f3130582a52452184f4bdfce04013ca3b016324c14d25fb5ee34b917536ad4fdd3303781eeb9a876a856ac3128", - "1728": "f5524ddbcd41288c79a55a009955b5ad72f4a8698a971ed404071ffbf74599798a779afb195a604b0d4ebfc05d43b8ca948c1eb92be367355e618ded75af2043", - "1736": "2588b445f84b5de502d66f2cc67fb311badb86bcaad444c8e6b5bdea78a24c209dc61e9dd115f94bbffe36bafb9d5cbe631b9f74568408f36e2001b76dede29a", - "1744": "d7a97d5fd1d56f94bd863b66ed21dd64ad07b262ead6e50083a72abbd6dde0361ceca1796d993326238d00c2c9e2d55068f50783da1a243f05a54fa307ed4273", - "1752": "8cdb1c2aa07c1f85ff8bdab775a3f378c125ecfc29817b756e96ccdcb33802c45e80be5c0c5da9ac1d973a62e7865687cfa4a9c2924eb0a38f4f65d69cbd0415", - "1760": "ca10191997db6aacac4272eae62c5d3c7d7c6ade164beb305843c85abd787f910e991c98460598f3f3b7aea235de5042b9f3fd1808759bdbbe326b4875e7145c", - "1768": "402d5763072e8d83df96eb7934e403fa6d6d1190704e9288beda1dabbcb1328d1c2c5c59d3f997a9bf1e2e8535d0da9d2cfd7d6176f8338fad679884792105b9", - "1776": "b5253c3258e495df9bf2756ababab45fcc37b5ac48fdedfda044c7e325aeb88f468c4ed8ae6b537195229620bf36bd62cc6571ae4052999fc33c0fff61be1ecb", - "1784": "185ca6e2c894209124ad1df759fccb1a3ba912cccff87f923a540ce09c6d5fb3dc2c0b126a19cc941db28f26c991d01dc6c13ea82692aca66ef7c3dd308474c7", - "1792": "ed3ce28df2c1c2b5b351304e27be171d452f22db517fb4ef5786049ded716f02dfd7800e01d2ac0e8cacba6ec76c8fcaff6410c165ac5de06277ec051a88f5ee", - "1800": "b07bc0f24483ac57dca6863fc67ff7f18fdfd5c2414fe8167e729fdeb55c83a594d6b431e013a26488935b5e7253ccb30e5519ddc3c89aaab4c0888d56020690", - "1808": "f576b79744b1d8a682cd7c16904f5b35aba830cde6c6ad90c72b3a81827664b9d7142443685eccdad8556850fd0a62df42ecd40266ddeb75dd07829918c871fe", - "1816": "893c36d75092b33fe2c74cd97a44f9b03633570e2de87150b8c9aa5b750da078e045d1bba4594dac01659c808fccdb896b63b1a94244c9a635fc773ba28f60d4", - "1824": "739633581c5e77656b90504c7a739b26e9bf4bf594ccec739f5c0103b842edafd110dc1b69f9575f8592b0d10936d896689862d1a6ea8d2c8b23c442915a15e2", - "1832": "da463d6a4d3798dcbb9d9086179e5604cf8d135224f4c0e1eddf097d184403c899d916583688ffd2fdf272e3d4d55a7ec6c178f3792b648cfc8fbaf5a45eef0f", - "1840": "b5e214b1465cda68136230c372c11a0ef44d9bdbe83fd654d1ee4c5722e584f4ef55705c1904a7883a6a30bb956087b488826a054f7e516177ab653c3c779d24", - "1848": "b04ec2165177a1aec04412eb05600085d0c69ff4054e48c89f1bb01e8866961c4b103915c83476c43eb9de0a7a2d6df1ba37b0a59dcbf656d014d9fb3cbab520", - "1856": "8bd99fa27aed9cef441b43c1be58df3898fb752925e7b7ac00bca5ed1bc21bf4b5bdac79f04188677d4961ac6f070f606c9959ac78f53282aa0a36c2d223928c", - "1864": "6c51991daea73177ddec9dce6cac6a7e62b6e19c99514606bbfd02f4edb7f91781a19bd902a3d1b981bf4196200971974a823c29f9e50163f6aeb50c620016e3", - "1872": "f043e13a1def109bfadcf1c7ce2813c2a0458125c65a4265f494b7f4ebfdaa98cf06b2679edf71809ef32b3f73c71cc868b82d186c0558842a02bd151b9b1be7", - "1880": "2fc23045214a07a71740679d00a12d936ab6da8f76387ab6662f0223f956dc3eae3ecec0671327833768b5d891a786c591431774e0b937c92a1a09da40c095f0", - "1888": "70399b6d571790518b1af47beb7b9f0eff2eb0496a516ed2d95d3a882cfdb46742d41ff4394d361e4f5606a8a169993f0fbe3763070a29d70c4b58f00f2e2cfa", - "1896": "e796d3e017bab3b85f5dd4d0ca34d9bc0c3a8736ae3e422ccda89c2ae904e94f43e3daf2e8f0d3fa03388556c860d17674f6fad0a559c1b69ec34896283f65af", - "1904": "23665d21a1faf0c5710d99a6277b65e00065f0c522a02a8354d1177a1e8cc1d821b84edb48a033ecf24ac8af699c2e8a56d80c653888642caf03182c067d835d", - "1912": "fa65636f1a7e68c641a4a65a90c4c653aba5a9bfebf7b3082c2d43eaa9a27eefd33899372432d69ada110284540c5976f6b6c0dceeeca3b9c03d3f3b3b7ce68a", - "1920": "00ee91c7539a32c5cfeafb193d31b97e87a49e8ff553c165b385fadd8e259b86e3d32e297e597be0d921cd2eaa1bb7924a57ecf9e0dc81f662a0fd0770ab507f", - "1928": "010fba9ced1cea6a9afcd61dbfcc4b75badf802450421d5d6cfad118415a9e2094a3e5fc6941946294c2a586d2dd5730276d955c5f013b1bc4f09b09ea583fe3", - "1936": "64939f254515da3d0f81c05078ba7e5ec8315f707ada3351dd7761cbebaf350d9d2ace757131d3ef3ff1b994fb323e16254f72a38b1cc7d2cc1f66766bd94815", - "1944": "6f6486ef97435f52e29d9cc309997604a8250046c9d0ad2dc3ac6f93544a6ad704939141f035daeb7e0c54909483963ed47342aa5d830752575b592b063a344a", - "1952": "57ead84bc03be99a07ed78093b4762c75af3c70906917dba1ed1dc57b36ad53ea767ce68999112b55a632e27ac37b8ceb0fff2e8221f767edb980d15cf1d1773", - "1960": "30fef48cfff23f480baa65f623056122b5bf130452ee546fb5e40c4fdc5ee5dfd45dddd02f30fe47b361dd080e98040daf19a192c2c031b50720c5440f6d9c06", - "1968": "c48d1937ddca118d9266ca87ba573b2a42a28c72fa5628ebb3a7a3e8f8403590058afed6c1c9bd6b4f10ef8a012f16bece9adf457f33f6e88d7a8a18049e1b39", - "1976": "d2b7b459a6c4fb2393bc91020a83459b2227f2598a8168bd91298e4322c701363784db3ab315401e4f2d4b7cd540ba0861775cae3aad5cb7682a8e4a939f2d6f", - "1984": "5c18d56fe7991c1fe21af7e31409e615b3ceef514f9d0f4524030cde961e4ce57f095355b24daab2a955928359410a505142941e70c72a37d0af56b8e3ad830d", - "1992": "475feedb26b00890254da616589fa14c6592b989908b5f0c05fbc88df04b3c3cf6c3bef8cce2661748469687f903572abc9454af741dbd610c08e507640e1d9f", - "2000": "40ddcb456e83dbc2067e6ea21118b7c70a870a61b08f06c28a866b5dcdf0078004ebb7f22c3af255207ddda2d19e428e90abeb9e9717968475f4ed90a6aa44a1", - "2008": "060ad1ef15d4e3e55959efb42d2b6a41fc7c19f2a3ad9b791d3e3d9dce9a223efe71231f7886ba2318368eda87b8bb23e5a28b17b275a4b989c918043cab0bc1", - "2016": "1b4bed58d04466d1bbe7277030a4842659822163b2b51850301016c11609eb146002c290b4183cb7e0ad055129f0527797f809c6dee548b7e2dd881f9b90aea8", - "2024": "4827359dcfbf5abd32374fd67003c0683d4491543c7c4c4f910d7c58a68704b8237af088c9d8212089dd8b023549f271c943ea41f9c5bef3aefb18d69d99a00e", - "2032": "a826330701d2f228315852dfa305e4254e40d8492742c90954eef2697f2f2a8bb8e0ffb7458f9c6c51dc3d0dea6f1fece8376dbc620d1761e99a1df8915a84a0", - "2040": "e74db7957ad8573bf14f5adbaaca6cce1eda7ede890c16ec8f6a5b3676de7da0d8273b442f1a9becf5bfc8889ee0f3d01e242e99725b35dd2409d1be26243b7d" -} diff --git a/pkgs/pow/corpus/shavite.json5 b/pkgs/pow/corpus/shavite.json5 new file mode 100644 index 00000000..a095bfd1 --- /dev/null +++ b/pkgs/pow/corpus/shavite.json5 @@ -0,0 +1,260 @@ +{ + "nist": [ + "a485c1b2578459d1efc5dddd840bb0b4a650ac82fe68f58c4442ccda747da006b2d1dc6b4a4eb7d84ff91e1f466fef429d259acd995dddcad16fa545c7a6e5ba", + "3fe519289541f0ec62f2247b55844f9dfce6d008c9062e4ae2821a0dd9e47b7e37e9b859e1b2d0e0cf1090c68223034c94314a190b92bf71f3810ee32b2732e6", + "8def5b88bc6d60da48f14e88ef66dde72ad2dfffa51fe5ab2a165598b2b4698c46bedc79f4f147bb033e9ec8fd2697596db4329b9c524885b313559bbe2f8e7f", + "eea90031f7e5954f8d65a58480dd29e7014e03bbe24fefa9b0f3dd37a3e6f9a1cf4803584c0e19155732c100eecf3f035e00f7debec7f90ce386a9ecd363c3f6", + "dcfd5938d89f88ebaff8d724e59ffc9144b565cf42678773feb3756a5a756ac52e53402a676e20d526d4513e8251dc7413b760b31563f4f206b6578ab9e118b9", + "4087d632e2424e6a0197b1594a7dfaa60964b699e4cc6ac36e6f969fc851f8879be24b2994fc4770ef60b6f074ab8d6305a06570f8d2808b1ae9248f73c3580d", + "3075666e1feb7925459ec558ac433f9527b4c0af2a0a9f61b650dc96c02bb7b0c6f64175edb9a6d2639aa9a38e80002c42138468634395adfd789784feea88b6", + "9e0503c8d9f44a7b9ef049476f07d4a7a99d0d64ef33e51318b85b6c399b622d74a202c6f0f2ad9afcd30f5b60ec82587a7b68cfa3deac71d47ecaf9df3d0651", + "7bad470c2cba3a5fb5629c2886368a5aa2b3b09fd4253bdc88f419102313acf1129c83da4373bab408cf940ff60e43fd502ee0edb37d471f22bfdbd027a6d009", + "a2a86a68f5a1d175dd2dc81270b6fce4ee88be260d33d40e6a65cb9c476942af60648c3762997108d408d47e9ac22b90db6999840855534a470d62f7875701a9", + "fe4385325c4580601a43faa31c4f2edee2dbac726b85371f7be982f812c6fa687ec91aca3bd1824a143d4ded0753085e0f70e4cf9bbad24794a05509e89ed33b", + "1ab45563b4c6230aae97b6b68d5f7a5948f6b7b00491021a79fd8a9cce6f8d6fe57a4f27da658153b165ae464e189723996ebd1436e6d96a9b4917b2264a1057", + "946db2dc18c46a710687a86438a2064b2996be8700e58b2adb97c4e7deb9e2bb08f87899704635d53514a464a8d3cbd9f7a3d1c49449b8805b7d0bfc8c3bd064", + "8187d8b9e67757e4b231aa11f3c3cef702942224e9b7b3000a2cf67743e03b807d5772ebaf2d06f6d6e8bf1e7a7892ba3a2a6688331d31020cbcd05d0e4cd51a", + "05cd34ef418eb7591b00d15465a3a77a570348fc4d82e3d30dd6d438794d6c10962b07653636fdb295d3d4d6507f018c75235286de42de672d072ab4d1463966", + "f0b84410fb89c3f7788fee678efac17991caa701bb163171b1dad471ebe8ebb95a285120b41c703607eab961d07514bf41856854ea216b5b198e96d5acc0ee3f", + "7786176a579c87ec88dfd79e5e8761772dc13e52a56d16877d64ed9cc5aae88ef508b444db04ed501ca05fd0a501283d63cb98cb7df3dd68fec625fc9fdb24f0", + "0d0ef431ab944b5c2c8ac3f91ef24c415a901429169098d5a2d83091a1bf1c3768cadc0c61ec6b8f00ebc30afb6da2368d53a67a47f7dacca70dd2184b7b4b96", + "937b6a416212b4b967861f069dbe4c867c295f10a85fe020f9281c34ddb5d3f5a1bd30671df4ba3ae2a4aad69ff07eb29d6427510692508eff12fc6eeebbf635", + "56c65086f3af280499d4a962907e58ad80785986b1bd14c707f4a94f592c188f0c9a63f409805b4deecc68623ae6dab54a23226bcfa3c756383bcad2e5d1caa5", + "2ad037f20012a0dc4155f25412a61601b726e6f1e511997f8d9a2c710d01cc2d4ee5109cb658076649874ce9c3c4090b786f984abe20c9f7f4379e5c9763e28b", + "078b1b7a072d456d6d76d31b9f557feab8bc4d0bd3da2b7e9cab3a0d6dbc93cea7eb9b42502c1abd9b758abb73f62d195785155fb72815dc120eb3d3a8e4b051", + "092b7f79f103a48e3657cbcd7df274fa6de95bc9b5f13b057e54c29ec6fabd612476d7e042b63c8ad05a59c88b099fb3e6d9bc33d4d4a9323dec2193750b07e4", + "1e0b45201fe1a2084c397c3bb75cba1327f25d47a4c02cf51069b08831cbf7d3d7377b3f670138b03758de3dc76662817f94463f29424440a739341b8cd09bd9", + "14dd0daf73fb7af39a00dba0c4910c77d551dfff7441514b8f2f395df60d0c449484700a5c5f8fe073eabb3085d2a15382a40d4e5d0887c5c3891344c7ca1050", + "4b6a29bc627dd7eb8b006f52aab092cd5f96a015ffd72edae67b9727f15fecce48a57319da6646af54ca19912fc14d223fdadedf99bef30205011d637fd1acb9", + "a252ad1f05529e66b6193f70847a1a76396f5fde43e8b419dd15d171849e1c08c0b1e0bb7b9b6a07d31c9ac857373c63e0732ab589b5e0b77e9668bd94564e79", + "53e1db809de2bd57e980f5c9826448911ed40faf66158a894c15e3cfa33e8a363863b1c33b88a75fc81d4f0f33420a245b7fdb7b4981fe78f751fefad922b7fa", + "149d38ad0ea09bb6a0b2d21ef0f8ab13ba0d49200cbe1ed0309b45f2b82e1b7326653708c25a75c449733372e93c9912463a555176c52cc853cb6f9a2898b886", + "2e28809f8d5d75caedb6126a0d05a3615989048ae6507e3d0e36302bfe3ce5eccdfe3ad8b3bf49af6c6dcd5d0a10415ab4c1b905c941825d7a066014b8a6a041", + "6d9ee19a92b7d0826098cadd5931d5edfb27648cb83692a8fa9bd8cd162baf655d89acf1c5d7dca5bef3d0625b083722a20946040df3cc601fc3d457a7bf1866", + "3c4599fe90f49a699ca7bc2381644b3377172ee8c0f84d9dad25a8e621c910c8640716673cb6094b6dda8c0c1b91205061787e2cb3277e040ba41adf58dc41b7", + "377106f78e09b8281269af888f1c61af7e04c3d715c70bb27843e854a799c359ea89d3c1236f220f1b4ebed213d43dfea88ffbef610333367979d3456ec18205", + "1a0fe826c6442315c825cb1b6f3cb6332f5c72cc97764b4d8a779f614a00818573cf1edf5ed286d7f7ac0f37da8e922773dbf6fca21a38002a57ba8fd34de1f5", + "2b7d2c9ed7590a74eff320af4cf45e32426f0c68b8e913c869cf6851ba0d1af17488ee138f927a6b72eff2ce23cb920b73429a2119a2e66c6029b60a7ece4084", + "2ce403e921d027dd2556a0efd9ab31c45ece8d37b01cb0ab01209d92696763a7a69883bac39be3c889905bd738d6218c1549bc041e94d41e734bf75d7f91b5d6", + "9a263267a9975ac2dee6a5d492fb3d9570ab0ba2dd99aa2eea2beb3decd1d2121667e60a07cc82b8456a0c499b0dd576918547a3310f5b5691c7e054ce2b0c69", + "7f412b90342b0afda15f512cbb50ce6b13035435a9020c8a160fd7d5816727f6a4ce9b5b4b2a4097a77d2ae4161e856f13db151d11b2551619982101b7621e74", + "30a0e0c9f408dad84de6df5a4debe13500b487a9efff7f21e30070c32feacc2ea45bd219d9d20c14edcc06ce708a04f7bdd26f0648ce1949bc7215967f6772ca", + "b18396c8b0822d3e085c28f90a4509e90a064bc9b88f9e2dd18b8078554b6bde8ae157ac828353d6250ee79a4f1e2c51fb8d6c5ccd16309df5124684df67de92", + "64ff28dde415feb61c6a09575b645632de091f586d19da8f995f23a877a76499e2e520e470401393d1e750881e0b6390d4b0aa6c32dfe5ee799ed99c4de1e33d", + "e3ea93a52226e576fabae223e1c71ec6f826f1e7ec02f705e09c42e9e4f0efb039a8958682852148951a39b103bdf7b94058d302031510747725e1df833a7f92", + "e1b48781c274940a5fe674f4c14a413e184d16c6b650fa69f2d55d3cbdd1f3534b870012b624d749b4c2658ef55bdf47837c6effba24fb305c817b962f3ed6ab", + "bf1f084b9b966c03c632c6b955f86934e94f81fafead15eabf50f4c81c87188223ec2490976a8d692d50765e216492391e75808edbd4da99904456ad947a19b4", + "979cfde66a038b3282b2e2ac985bea3f0b6ece6f0c88322ef54e381a18f9f0cbf57b6f30e6f1018b43269c731f53c7790a1ad18a09e787bb41c3a3f79fd66a10", + "a0d2333407a72ccc424d98fab4adb74041fbc4f642b3867073e80f9fa65cc4357b8bbade729b5f8ea5b81573250926cc5d7ae6d9f1f637735adaf79a6526fdf0", + "374b42a4a6dc03c38eff8b592354f4c277fc5dcd88e31114ee7f5912dd28e961485c882539dcd2b0e8094b5c00c7cc0700bd9faa26ff2b14ce45ab704dd7134f", + "31449e13816d156f9c888758f2279606a17001791605666b73e68026df4028247818a43e3fc4d032d73d5a52a4419fb478d47aeaf79f85f943e1c4038cd22215", + "7134f393c29163c39d3e8d3753264496da4b9ccc076aac336eeafcb3aac80b22ebb092098aa2710a6720b63339ee49320e9273d8054895ddc38a648010874d2c", + "09dc902ac79e746162f5374664c3198e7549388edde71737512a421c36e9a36adc37cb9a4da2d6858bd4510eadedc29af56fee68de731a1d815aa04a7cf42537", + "1f005df69379b7d410808c19934172660b958fdd2a2aaba3a408c5772858d516fde73a3c5e161bf9e7500b2e876b6e9016f304e730235843322cdd96ca44afc8", + "62ef10a48a87ef3ab1b049e0856d17d1d7d3f3d45588310f3d39dc28282145304290aaff15fbdd8e2d6e4d51ab5991a610f87f1f24323af5de8f0eb98558076d", + "b872d1254cf30496b090305261a9eadcce04b5d55fbf34a0a9b092c64baf297a9e93475fea253895d04192e28851349a653a196949547a356712cf6f019c7649", + "ab9bda90f5aa6362764f81aa30c7bca477eb4d61558481a5781a901bddbff7f5df647d68bd969da272d547edca80328208c384868f1af59ba76e3393df492ed8", + "04ddb23e82f7afbbf860151bae22324602f6bf60779a01b974f55ceccc5bee90ccfeefed49ef6520fd0cba503ce8c7e8bb7a26fbf70e22d52f25006cf757b539", + "beb3db36b02a79842a33ffb89481b29982a81db4f6cf48eecfe951bc4b588aeb9ed178c6373d00ecba96f786f7a3fb5c8daa8880286c7b95c5aa2e6448449779", + "a2cfa8e3310a45c09be03b3afc66f6059c353ad04001abca42cff4d3f718d452f993b2200049f1e467ec1ab7532eddfc452a403154301beeba0639fd6d32c6a7", + "4c7c3bd43aa839d89fbf47add1e3d9fb72874b5fbcbdb3ea83558a0c04cd0e7eb6303bcf7dca6c29038ce31ea808800082f6584999fafc3c6b8bc2739644fc5d", + "9afb51609adcb2e4ae3b8b663fbe3d129a10a580b0943d832719704b65d9ef088cf22f70392034ef8bd65906f2418c1151313e3c463f59bc5ad038c08106f0d0", + "138ad91d1b0ff189663935e3bb764cdd59e5dcec03782383be4551b473a2473b1d312425c8936b7f9dde874a2688fb1ce4dbf53ecff38263f6e63535c0c61092", + "c480b7c3dd0c6578aff7c4221b3284d4505b44db429506d59517826320e346eaeededf57acac07186628bdf666bc1001b8a5f946282b1c80b2393b53d4c9cb0e", + "0ba4cc0e2b3e39d05909ace7e9dff7e276f3bdb74d1f5d0d218f0c0afc1d1657454ad2f72292c0cdaf9071a66e2978fdac829fe8454aacc0f518dd5d0394f480", + "02d9698de69997d28941fd1dcc781b40ba5d04fbf4a8019800849d6c8f8ad303dfef372127b4ff7cd0361f9ac23f559ef7486d2f74c395d1c106f7b8c44d329a", + "3ac25e698e481a3168e2e4fb6b38a7fa10709a7f8659434dc9580cfa7f83d534a34fc7d0e838daf42308cd8b8914b3abe500c6ec5ae9a60f3fbe3dc60604c16f", + "70c537a050bfba2d977148e5bf5475774aa6438c0141994bb0f484c00e310d11517511b92a6af06462ba5c89165633efd4ff2ba101e75c171de23e162bb13dff", + "3ca072cf726ab7ace9e3da8f64b1327b3d8fbdb0413402183690b4461ea06a6ba7260026899267c1e2a03cc207e2a1fd73fc1fdb08bf010a759267129eba956c", + "5ba057ed8a3a540d4d34ea062e7ca8b91bf37826c24bce02884adfe514f84a1cfe0bc6d18fab84980825f4c874dfa7434a371f34a2b0e57925b60b26da9494ab", + "c14ea4030981ea8e1ea6a2b6c9aa34833da47092d983995224c8d9d8db85a03757df50440c3e46b1b9b1b4c4c09e1d21c5c26eb6d2875f24d0d3d5c2fa9e6ec5", + "8a9513575d9d64d6c3cae61102145c6cf767fd485a7832bc601c0e4715eb382ef458edaa617396913cc5fd97e38d9f5931840c212f38f2bbe65f187ff61747ea", + "589de2062062146a3036e74306a1f743e0261033d8efaf022fe4af7bdc5f4c14eb685355ab6e8a684759d02a9ecf8c86bdef652ed03ab00c6548db24b6414914", + "21f3fb0521790364c9d4f9186f95769efa3c5956bbc05f353b670d44a5aa48f3d11e85a06e2fa99a783ac58994dca8b4e57aeabb84f45898b4758a7900850826", + "f8c89b00a85353069a0df4045e1fbff98fbeccde39e2422aa59b779c1cda549d30fd4c2ad5daa8cb16f52e6b403a21c468d29e51b1d398df80c44c40e9a898b1", + "885841378bb53299458709cf0d1e1b4d438bbc3c41da7f24591d22aa6a240a9f0877383b4813588eb4f3658bbdeebc37dcffe92d0a4e7dffbeb833fde61c234b", + "e9c12db9af433eff8e029b07eabce1ee1d8b20d8ecb6471ace7381e304a4e236c9cf3cb76572603acffdc3df8c83aec163652f3cfe9e726e9187e9c26d535d3c", + "19640f749c366a4ab4eab2a12feb2da72d246d80dbc776933cc12bd788488d1a41d27630bd9a7983a276fa80c9773d99543439f2e838468dc11ae2944dcfc3d5", + "7503f4031aa3c2789c90b9fa97ea2d2c7e8f55db816dc4fd3ba8b14a0b35e9e72d506ee3afae8d4c4b980b89bc874bff84903904b3728bab5f2d9167aa41c964", + "4a3afbd18c0ef5b445a8a7f72b8ddd5553201462ce7727cc6aab9ac545eb161c3c67a66be7bcf2c6561be7372729724a9de4a1ff28a74f1b991c3a37b2359902", + "5586a19b4529ce8a36b64ba5025ffe1931f81ce112aa5cdf26a181f6c8ecb7a33284722eb4f9a5bc827026edebf6dccf48c2e65509aa13127f67f55bad266be4", + "27d376120d671877cc34ad58d88d2c202f5786e7451a86faddc1c96846b0de0f0e3e62a5070cffc83bccd1a87625c2a0b7c0f423c750a1352eebe80ae4086d1c", + "fb50e1ad66f9c9501aef84202f1431bce20a1799c7313d15d2cdc205d69140f1fe38007a45df0a5258f46583be8495ef572107732fb767d6731cfa7fe1502f51", + "adecf698b0133cd08c96c86dc70a6cbb76846d42e6cbe863ebeb638f46bbd494f1717066476540dcc23282f6e9cf17bd9b758716d5a1b971c410000bb9a1e81d", + "8ca5a9d2e40436e730d1e9eba04a332f63727d8228e26833419b11730720950132e548e1ac72344bf6db2210f7cb0ea4887d94870361053bfc2042d005fa2951", + "0fdd6f35a5148257f4368f2b1a4b3db1db513fc01ce86dde3b3093e5d2547ec184ef81fff5a2a794294b8953b083277f18fc894e57a464a5f6f7a4c097c74833", + "7c1f91f261510ef0c58f56942d5fad1923b7940faf827428516aba22129b7a4b7e07cbee87b22ddc5acedf7b6ed67b0bdf48f7a69f08afe9ae18d0329ba481f2", + "aaf4b22332e3a8c4d8274eb33ab47ac15d6d545579c697ed84c8b3d11fde24447099ee23f8e78672cf6d1738d6648b61699facac31250aac7c07964c109364cf", + "a7bcfaa5ef4706b91c6e51fe6bab4a0f011e39078125060333af52fd1f08e5056a73054a674de6581a706eb532d7afc11678811d83d73ede8d33ed1b5f2ed021", + "b2d21d83c85e644953b857c0c6c9a39e59ab5da76e5b44bdcb783bb60c725f654c63522c808e6a1fda5f4133ceb303d3e67bc091ac5efd0fd376d96a5058dc7d", + "509a535350f06bde703aa85cab0f8b90bd18f6ce4d41274e40b06573ad7c8954fd206f65890cf02286b1bc0c3e78ca1053b777027e7a4a1694a540d0f0242513", + "d7d261fdc1c76effbb0928ca37bf719b71fa88cafb85fe44a231cf6a9bcb39ce16b3f90c63a787f13cbd070c90c2fcdc379d2da8efdd84e8482ffe37f950fa56", + "6c4770eb41db3388588152422f3da32d50e31df3c67b8d05a772438313ead71b0e90befa598d82697ace75ad06276b4cab01ec125a5b6f765899a6a465f39743", + "c3cde6567dde412bbd323b53b70ec1d1cdeb1f5a08b25ada5f88984e4a6b0695a1705bf43078ad117d200597aa22de125ec2c1293987538f49d9f206f300c37c", + "a654007765beb2345c6eeaf47118802583887b31d36c779c6e21f1edad0c717cb6801a53ea34cef29c6b25c5cd46f610a8e7613c534d725476103de468e10064", + "b58ad354ff3d8d17bdf79ba8625c33520277159a5c55aca7f6897d5a9e98a35c44670498cda8e094715eea3c0d6b78e6cfead8644c6bf42730aa0cc793faa26e", + "04f4928beb8194c05f151a4c5c517ca0576a8e567ff0c814a93a1d007d777c3484a3177e1b66d43edbf2048b5ea9a3d453c9314615955651f8ff67798893390f", + "0968c3a0793ddb8ec64970c411248d93363026d5e1ae6158717c4c356ea4911de681f753ef01f39121975cb70b79805fd7fe7e66b7fe84daf8ac6d918533acf8", + "931d668bf32f2329684494f147eb857a5d8dd58ffe2a1043bcd398b6a149dd0cb48fc397ee9fcf700f1218239223c6035a52e5452ca779eab737708bed0cb712", + "84bbaa99e567a42549d28eab86547d6e31a81ec88ff43068cbdfc60c8679ec81733bbdf1380af83c085b006e5516a2c54862067d13f3551440c1169425296b29", + "d7dbfba989234e7aa373bcd2a89b35bd1f3a8b62ed7fd9a0fbea984062f315688776051ee4e9d30c09b5b3fb9403a53d23e7bb39905a920304bf736131b257c3", + "5b09b067db68386f6f5c6989b7d05415b970699e029a8c9bca99b910b44e53127ad3bfa02ef62fdf2c1102557a9b2e536b2f5bc9283edc25d294559e0c910083", + "9360c158176cf171ddeaa17c788dc1b6533c65f61e501558638d8394ea7e7b03ec5e711755d6ebc9b14bdf052936e6339ad8d18cc01ce2791bb75f7c70b1e9eb", + "e66c5bcd53f6b3d564e093864c68ce112ff9e5e3d3b5214b96fb7d58d9def1503a581afce3cac5717028826991fd038ff63b5994e45b4e9ee6b65c9cb05526b2", + "b6065ce3a49f5082c8d6c723c7f44bfb75cecefd0b4593dce3193bfb3928da09c55b1130607b4ef4e1bf1642a7e3faef3158dede405fd51608f3d5a8f4a4b8a6", + "6d936c8f99400a280333c657d0ded0e04ed4dd82443f7470804af07cca746d8abb3bad3e5cf016def38168a324578e2c244e28eafa71f26944e1910e5441b7c3", + "63d1a311635fe4dc00849e1256e2efd28f3104548f644923a26510a26f04173245d6f1673148d1bf331d1b89e03e87c1268cec3e9c29e38a3903ed419eecc871", + "fa6c610d533be9917c38252fc540f5e04b4a0078242a5bf046bd56e3445bcc78b4edaae903dc268f05c0670c36c122cdc3b2ff564b1aa8519676de0e5a18a857", + "541ddb0c87c81026efc8679b96236b3668c08bac001906767fa6df6e77545e3e7054c0320b10273eab1c9fe3f2da8ba6dfdcd0a58f00807d5fabfec0e9c2c86f", + "174390b7f53f4846b99ed4a18da3e65b6bae2601f437c21873d66ac77ee4d9d0c27aa3e7a0634c8bf90c4258eab5edbe417c567f1dfbcb4614477286644019a1", + "87730833741aa86002f703f32ad91de3d4377efa0de3d48caa3397d33c69d8b81818e3364fcf8137567155e36e0e2466f8c00d61fdf56182d13e975eb12fbe2f", + "b68cf933145fb68caef1e0b9f9e4147ae50da64a77f3be8c37c2ec86050cc7bfc0242f4a2c51a4441d2e76d65337c733fb87a0d84aaa52075658ee93d89bad6d", + "2ae750ab73b8defc32509fb0423cf404f1f991a98321c51a51bea35d3c3a8c31ad5fc78474115c34dd9dccd654bc794d97480942134f1110607a9359eb771cd2", + "b9ee163164e70cff525eac5352391796421a994ecbcf38c7a001e7c7509e472b66a9e21f9bf7f8e5b477e26d0049be0c118d8eb990bc9f326d99681d087cbdc6", + "6a8ddfe336f42cb9717f4482bf50ba8488501f39bc66cdfda00cc1157c32098e1cfded37dc23f515fb988d445c99dbd25ad7f51d756179b5b014aa4f8980739b", + "b9a167b5804fec4d07e7c45091abf03f27c315569041c42b60d7ebd8380701eaeae6e375cc57fb937c24691fc87801ef4defebc55bd904921581364d13f50646", + "379df667bc2f621936e11f2f8f534b6734a38bad3a17c5a3f6d950d424524310dc59cb4efe962338d8a2108156905673a2ad8c3490142fe2e8ab61fd5f019072", + "d18aa7137b52d034c7fd36ad07bb24c0215d81b54052f4c82a81d3203ebe8629f3440994859a54046e23bbb283abfb7c23065f2e4e515a182740ec0eace9806d", + "b8b5abadc83d9900c1d1c14de6775f503d88d402ff677900817e3ac8d2486b829b289517981d3b36d1a384566acdacd9fef28992e34fcfec794eb16f68d65d4d", + "7d9f605d6598e445be942af4356c1147bdcc0fa4415e7d58f879270764d25debdc1225e437c34d9101fb0b9565b7b442073758466358b07a1660b206a05e3c78", + "399b5bd1b3883f2d071da957db2f665b6d28a1abbd6374094503ce376fa6dbc18c3485b5991217bedd94cde9ff334bd3bb04df00bcf9cb36a5aa948c5d638e98", + "333ad01bfda7f0a6e4fce2f96d7ab1afe0ba6518a20fbeed0d1f1fafb4a9085abaa4e6423b0c53ddb24c169354d4d9120414e61aeb20f4617f240c5bfc5410b4", + "af7d07f76c10532afd9f5255c403c87ef08abb2054096235cab98af1563d32e30874d28930b82baa8be6b181cb44bf1ec77fffe16e98cc5fdbb8bcb7963b5b26", + "82c9135b49ce635df19c30648c1505c15eea9dab7c8fb6ff8eb299df1bf634500841ed6160d7a1e9cb259093b90a46c4f4a817a175b3bb1dabb5971c3ccf5a02", + "8289c29a19120ab6cc1e7c0311ab8cedaaf3082615cc491f8a21dded57392c7d051886f06ff28973df047a2d61f5533ed78110a90aef77e6b126dcdee17ee6e3", + "9937d5e0e32840d460c128989ac25dc07f11d61b5fbde0300e6dfd59b9c394f50062d530c860fc9561fa631c3102fda8eb4d98d0ce863804ec12dbe315df49c6", + "57ac04da5092b768de2ef4a925576196226d94c94a1ac37d2db30c644f33c21c365cc012064fe2637c3a17ca5237278fb3aaadd5bfb1622eba7987314d1583ba", + "231e9d2e005c4f715104e7ba66a6b582336f188a56421da23d3056684b080d9429826c2a05fe94acb2ebdbf807bfa8b3961b960040222458749c1d43065a62eb", + "da7d561b60e3c2e232bc5b6e1941e4af18b3f880f76953e490bef55f5c0ae662aff44c7f1f6347e4d3d7b72f8465823aacd486bd1d099cbd5054d53643949829", + "9549e8b484a20075200baffa8aa60c8e16848fdd746901fa1c260ce486be1c43eeaf66a00429721a523f653eaf1d5bd23f0378bf9d3af4ded2cd9384b34de731", + "dc67098514edc61407e6fda1cc38e5d08275ce6db06f443813ce50bc74dc76052525ae8d1b916d92147229c86af898ea966cb40b5b72fab4924573146115f122", + "14732b9fbf23b86b9ec182a29893de5c58d91f61361cbbedec03220afa974538ac891de4408a0d82de63319fdf23364ea0768920cfab82563358d924b6977ce3", + "6cafb1f0826526f17467cb4a908882676ebfaf352f3f104b8ec48dda7953489c293044da9dc3c885cfd356ce74de2167ef3a92f081ff36b7742cd85fbf1c8f9a", + "0178f987bb2284c2a026de9201533cd619a4839f121f19f3dab12a101ae5b84a02832cd067ed84197ca0fe69e909dc4c2f49f490268afe832f0107c7b6626c4e", + "3d9d4c7dab3a7a3efed093463ca45cbeb73fa47b9c4157c6507b744fb60a4f856d3e489feae62a8ad7ec9d3fed77feb91ae74347673ef1b07e39fb5391c7fc35", + "7dcbffa0406a7d3482214aa29adc82ed231fb88cad6c74f78c3eaed1ddd438f9ad9cd45aafe0da23d4f611b0f9b017d383d3fb8b11f721386bc802b5b3c561b7", + "d39cd6eff3eef7caf4d4a85ee0c00eb5e135880c949148b128bb2d535c3c444fd371d86ae4d12244542ad5565982a33c645c70c7f081abd3e3f09f8cafc814ef", + "37b2e4d44fb7fd9467dd1c3a57657f735ceeaa01ee8b569f150d8b459d5c8b7b75edbde1026c8bb311aa1360df60b233b1088aa7dbb3dc50ad636ba3ac1d89e4", + "5817ed576a37ecbd5091139394970802ca005ae2f2afc4a591bbd7c17647bdd29a1f7048ed55e415419d4fb9e2c9606c5aee91cd22252efd82fb283ea1751480", + "714631e2b869cdd2c7291e5028c1e8db4aa9e2be0ebbe7cd9b42e84286b2d0e0252128405304f1322ec7af3df56b2bd37bcc1f1bf7ac527e786e97cf8c04b2d6", + "74ae25a85057dc6edf397d1be4278fe885762dd1b4d6d85d597756f981bb2746ba5fce68d781270270dae8fcd5e93412575f67838c0b9e131a4ceb2aa6b88616", + "34ff6d80167ee2c08dbb0591f561fe0df75caf492d51b61952fbfc878effcd274321170ae934b7f927e8f6ad53342b87a7716f4f0910b2b5458c0ad996b79d63", + "a15b2bd7bbff3c22a7aa704edd2eaf6f3c97381c3c0379bb2fe50b94e34a8899d5b3d9fc6291091e542fbc0a300ad9117246665061b938c882037abe7d99be3b", + "137ffcf74b2c8b8ebf25e533e7a1da2d4634d1378dde22f6a227d5f4aa47e3a2f6f0767c518dfe4dfbad5f83b787c27fc9cbde7d3c87532e092fe5032bb1bed2", + "c6f6bb3e282b9b919e22eb5e9883f1fa4165666c807de1323eee05697d0ef9956e6dfe5c3d1713c5c4a8c9dcde2e18f088b4c6d1a07cfe7c999243941b5445e5", + "aadaa084f8370fee8f3c938c83df7424fe811beb1d7b0342d68d82cbf1a4fb73edbfd38e3fb08839afc23b0cdceea95b8f8752c4df3a72328e9dcf1e5dd39c9b", + "143c0acea346ee364cd0c524eb65feabda03659d8ef9d10d6c25a0d427552f96b9637ebb4e0d46cd2a1c18e75ff3b9c8331d6e9fdfaeb8994ccc9b2e94a31f58", + "867e6c08d05a2662a52515148a541cb522f6594bea4cd7177ab499b79dc28d7c38c88690cd33aa8d987879ff5ad54ec2a3304216eff0175c87def5af966307fb", + "2ec36f87e86600858e073bf53620a1d3e56b0b329281e859188377919755447daa486bf54f33890b963e4354d177918a55a271ee71135a276ad58377a41811e7", + "8c062fe41b5ad706eddc6be0fd00ccfa2cae9b8bd9bb0ea5523ee973a40f27c7d4f3a77bf749cb53eeb22816d581ec84381b57ec2ff1902486e51e074c700950", + "a2a87069c4058165b9de7c7e76dc3b2a38ca15b260185c2fd27e6157cd2d82b1176278d4d3e04e0430831c361cad543b905beb639e2e9ff138986e13d61d8d20", + "21396f8211648ed9ae2c7f22307d9a8797c507ec6532c0bf0bba1299b348d68928e24e444ac50927f2848546b21d4dda9a32e2a2abf109a0a57b0d30a1e7c579", + "a96ee6e43ae0ccbad8396f6b017458c1936a9921621c0c4cee538556eb5ac39e640e4f1aa8e49c36af40cd1b37b3bee50ba52735238c9a79e0068892031c1a9a", + "296a27f62179e2b508974292b7722a62a760efa56324b02f8306b70fc24feaec66762394cdecc920bb24784f1d85498cd93a2a1489a7a103e45ff4ae94893b4f", + "7f7a54d74d871333a002235d2e46256df3751c991888b983b03fbe5085947d78cf944faaf8677405f77abc8670bd12eac66116504260d2cef92b57f531e16250", + "4efca43af1fa81736ce163e05e6fa5f5bf1fb87961646d05f9596d84c375182010f6c5a0705d52c337e45bc58cf4abbae196a5ed02bb8b014359a0b8197a8b92", + "fbdd4a42f4c62ff385eebecf2028a5f8a33ecd4d596e4c6068d69904d991bbb1f8be1cbd0e8cffeaa9496325e4ab582e86920b76b4e15f930f8e44e7e0d67596", + "9641649a608bee72b45cfe6b359872162b74a3b233b3c15066e14dc0750c43ffe515ee9110e23761eabeb268daa78f528eefd3929a28ea8ce97fe2dc73d40baf", + "f63816de834fdee7318e691a96113b9754a497f99603024690a54ecb0dee65b13f5e1d3afa13e5b22b890bbd3ac17701fa959a6ca43b7eafe1e199541bb08513", + "9ba41ef26c33ec0feec6e20d21515298e4fc4a086c90cfb04e7259042bba4a6a9556a81b4b93e349d71fce329c460fec33c65b553a10e1d0eb4068d1d7be1091", + "8f51f54bec29974c1a47cd347e1d9914fa0870aa03b0c4c268df9c1b1f4a3ead018b9a0b7de49c1c7c2d8c5798daf8947251d2bb1d588e76a38b57348478d021", + "b814d38c430c3bcb7050dfb5e91d394cf79e8c1cf76c29a64ff5ec1dd4ff96412d5681c34e99e1bc53ffab6e62baf5c67a1063e790a14d235277d0f7c8383e0b", + "96721800457ef9089f357262dd168b0a221344d1ad17bfe05b9af0e7176e1569a19a0b3e5fb5c3fc1162c930bb35d510598e5cab3ac5fea1f8673f7e7ea50557", + "d34deab63887d21e1aa25840effdded90316046b7a4b5ee3ca0a8f974eb1cc333652259159046ec7ebfbcbd3e7eb7b9684fb85ddbf39d38623a2318870bfb603", + "3054914b67fb0d2bac93918f018dd6851aadaba1477a380373f08e0a1a8b68661e6d4268865735111f054bbe0c5beabfdec9d1f2fef5bfe5d8d12639d93da169", + "dd1ee762d46607bb1a132a4f6d49edd3329fbeee99e7caafd162d927cab498964c0c24260351bbaecaa57393050cb08c90f4ea26a0c0fb1a89b3dd8b3ef8abe2", + "9f64f90755168251447f1e091a976fa7eb47f8b11f03b614e853799afbcfd26ffc8d1e473ef3cf8dcd09b23358cf98a0cb433c2571bc11023ea496dfcb60c725", + "1aadf6b190a159278529932495a5487bde3301ce908383f1b9f2dce03233db9c04661f72f675de1f8fdd116fd55cf814cb1dc50f8799002ccea1c23f614095e1", + "b313761b7c1a56eefaeaae318c1fa95b6416e6f10fb8b364117a9d1cc80ed6530d8bda5328dbf867cfa967447636d2412a893cb0b891ca3143aea8c0bae80f0b", + "58ddca02ee6d6817cd8cf8c4e40982b7e9ada6cb1080d8f292822d0da9efd68cdc9ece92d5d1b2f7f4fd000d4a94e79d401988e919791e9c3e70c0aa808bc3a4", + "793219390cdf21293cbbd5dae347f06a36b099776d4254c769b06243ed35cb9b2d94a0cd67457883c4efed51f87834b3cf992a4b330f57e1407f4964b6cd09a5", + "7ca8a651bac66092dc484fa178f801611f317796397f15e7ef389876ad9c206e5e6eaa016d6e62b47037bc8fd7651124bbad5858f6caf63853550452faf69662", + "28fa367cdd01c6b21153370f348ce7ed4c810867d70b2d41349015ccef8618679d230863a0538e00fdf0aaba1cf96cf96d7885aa826d03a65375db61a7d3f10d", + "2d65dc8c5eb56b5e9ea99a5113e8a44187e3ca91a0ec5cc7b87396590846821c43e19c09c78f510b2635d972b4c1ff799c25b03a51a776bafb717bee757bf216", + "c828f1769f08ffe8b32856d8f74a1013a5130d0df5d05ae202aa559ebcde9b35343f196839c28990ee6724bb9a385ed305944b6de29c61981f33496b614994ef", + "67e9675f14ad7a716fa264f15398420220baeaea205d14980c80c752bee06882980a6aeab07a9ea49daae6505c1584dffdf8473420da76d45927da9821bb9a1e", + "c1fe237d37eb2f4e027d84b5f84df2e43d06eca24dc2c9bb4c422c7ef614c2d67f5351bed3f4edf077a1d6961cb51de01053adc2181f8b82a3ca1aafab7204de", + "39bdff19af0f1193bfe9602ea91289d33e642c7422fe0d9447c9b91b8294238f06b63bc0492b390e5f7637e2a618aece6634baf7b746bb54fdc5b82f5bb45c97", + "89db02d59444042ae44b6ccba940c448f49596fe3478d4690e4900877ade3948e002a87d7f1baa0ce1521577941c37ec21cdd2abb1c39f5cf9a2be0040ec2c49", + "06b86234a5b3ab4f63d51a6ce8bc25ca20de9263ae881500d48a0b52394a90e9bd3b55ea210ed8fe8ab4f2962d558be29fab98f7358f5fbfc86c2c2279ea989b", + "7e90bc43b56fad43867af8fd4bf1297ac0f8687cc40023fa777bb1119fa52a5eae1b3def399b441831e53fe4ca36646cd9a74639af718524217fc6f1194d076f", + "211306217ffcaa13d0900ab172febfbf60604ae2c1eb52d9db23259c74c6fb616b7fe790417c0c9cfb3bda23ce92bcb5f258973eae0d8e09e930ccc31dfb91d3", + "9bd58616df7ced2a623760e6b6340544a107069a7aef1282b6f55c31f624cd22b883f84ecfb98d3eabab63538e713206981092c96735e2423fabee7b4b2983e0", + "275b94948f1d3d626956a5c14deba2b8f6d5913b87647c13f829597261cd86f05fbc66d1559f186c2d58ba52ead7d219da89da83629088d44ee0278db34831cc", + "847032617f6a011f0da4981aa0e8dacdd1e1284da68ae38e9192c93c7d91f836617370cb5a26875ecbc45a88377dfc9812c64d984d43aca1ba188f251016553b", + "4fc809e414e8eaff752d0f772fb506793b7e7eaf8eca29edea080020c5d77f897f1930e591fe67484fd6d608fc1b020690f4879f91e90d0815147eae265b9406", + "35688b15df73b183eb19be2fae70ce0a63d59ae4ebeb24814c952b3e71405f41cf0b3d1a567281ebf770fd0281da2d54375d9e21ebddd0c4f9a28c0a4bc43bf6", + "f199cd9b78cd0ac0d04fe957210b1176c527a317e2d88ff8cdb4675111e5c2dbea03747f762c5b8af4eeb91694d45a658549b75049e2aaa4e5537cb8539176fb", + "d00714d6755237e0b21ae0eae2dd0317afb920a7e6e61278315cd6c710036daf1d53c677ce1c76ff2fc1f714f734a68a88fdd26e340e93f3aaf37a2b340e6669", + "a75e56fa3a83b946131b6c49223af683d9a1fbcecacfd1806051aece426d3e070a8860d817a085318e1c9c95c764661d445fa5c566200d33733ad030369cbcdf", + "85c58f6a23810e72acfd74be201994538f54ba27968ad47ca540843d482bab6d47d65a7617aeae14e5dfea97265979c99ac40dc0f73c6a8ba7e5a0e7e9386110", + "9733cb43b599400e44d2f30a2a8c332c6f6769259c3f8d0ef7c79b1fc15bb8ee3febb9beca3d78cb171d214ad379eee38e70918d9e24b013fb9cbda1ea9da659", + "b4052529ff1ea7f679fd34c6fc54d2894c848c7a36ed26f31a4580f71cb11e4274813b60b5fc31da55ca8be641d77ffdebd59e5d813c4f62d4dba20467e18690", + "02ba5587b4942a9b2e7a31d5e40362a91e4ff8a2abefef3c83e8b0b387aaf3888d4d5d52d7ba41cfba19bf9211298b1cb2bd885061ee32c64ec67f2b4f596c2c", + "cc0f4927b00542274593a4aa8f349f6e87fb5f83a4404521002014c276681798106d8ebe32690171154c3b2af030a8ddcb088daef65c8a354d4ecbe42a2f00ea", + "0a8a91e3f39f0bedd6d0e38a068ba31ac3fa39074e7e5f4c9ac59954329cfd5a934322ddb72154230abb4c1313033d4d771399df36c74c162f1a39cb9ad390f1", + "8737746fe25aa336265a1856855294bc2e81a09d8e3906877d48f9ca8c062ff38fbaae7b7bf8dcf698e5b75b657196cfbd7c9d8afad28b0d51ab7fec38ac166e", + "4bc5aa45f5b254f2c00d028d093a11e2a3c5eb736b9d3e2ef3ab038e2a4c46950c22aa20e9706e436ee59029567d5621df683b421536db86edf0e00ca9d0fa3d", + "490c819382e5df0ac2804a422dad6d43dd24e4303b3d3de379e3a5137b2c95c15636653a3008211770ca6494e7cbb42ec3c8462705727c97df90a5e27091d7c1", + "b16996215d749d7a183b4756964fc90746f472214bb7ffa4d1019071a8a732ac7fcd9870af3228d521694a00dbc041658d26f484ab9d21e3d5f428feebecc1cd", + "e63d348fb069ecbafc34361179d20da75567d5f645ad0c57c8370234255508eb6e5ae0c743686ddb767fe174eb9eda3f7d4d78229a2a6f70da6e7c9334b7e602", + "adf1b3e7ad5605f160daa24e3f0a2b7b597d2514065f7cf259df00bc5b5af2f8b944bcb59448639583858c66d5a9c27c46a1c76588abcb1d3ae9f16a025f97c3", + "df6a9e541c2dfa261e6890de85780505875f9e6fe6880e79317d90d8b1249d6f3bac45999a319a1736fec2b5ce006b8e5448b451bbfae596159100f16e39892b", + "6f401649ddcd3bcb4049a6ddd903eb64292a25991e0cc2baf175b405914f75a165d5ef32be27a728d6b8d8de2825a2f86880315c379dec93d447bffbfa57f897", + "d2a748745ede7249276d2786e9a06c3270f37c523035273df2966a279e9dfe69a86c54bf65d673a970da66dd4b39dcae18b2a118022dc488e0fac5b5ed3e7549", + "feb17584ea9bc976fc07b5c2212babe6af6cb32e5c07cbd3d439e84acbdf37b78ee5663c64d0479a21a29cc3bf1c878fcde71720436488cbad45284a4c3ecca1", + "d8532e0efb0e457b8f64e47e59a562c89694704995ce17fd47e6ffe497f1c25618b88f98c1e4eac1d4a49ccc4b2e482e4cda1c730eead8b51032f12260ec44f3", + "72760bbaff206ce2c31fbf9d958cfe1fcac75f6745bbb9a379709d68df355191e4873085e4af1d559ad6bd9fccaa00d2a2d65444eea66dcec7b6d36acf2bccbe", + "322116a98a2ad74ecf48ff3b09c181e18792a840edbc9f1021dfbb93025d55402c1306512d7f644e4ccc4e0384915bd88babc842eaea43386267a0350f9f293f", + "07554f12bf3670df815dd77c5381c0e94d51c40b2cff9057ecea48c1b51b8589f54462dce392c5e3b47592d22d2fdd3fc90a64637644ca3038e83c9c671a2cb7", + "7b75790fc230afa5127409c979caced6b2b18884f41130696f891a7f9ee46078b9ca780a42a19375e27c4e3dfe21804d74ae37a7d17658ae1a257d29a31b4839", + "b0bac1a862d0a5f365e937bd766df554b3527c26981f226356c8758b063c6edc5dec9d200b24bee250c8d80e79b3045e9ed78081779eb973b95d8fc1092e2525", + "635cf059549dd09296068b15d3e383ccccb7f9a0fe24df82b267cfc3121cf3efb7fc7c6aa2041fed1dbfd18a5993cf95a452725109a6acdcd409ab9cbbc82648", + "f3352d5e960eb7bc60385358cad43f6b78ee6c3804edacee212a72de0399ba2b59c581ae14789bde6309b6ec8bf453e626daac6c7fd581763df78aa3342bb72b", + "13eecfbc2c2737e6b2b44ae0f2bd884e87d85742e1469e217e1670d9fa7cc7ffe396497453f0ab77696a529d90b9fdd1c0e6a07fe06515b98b97556f0fbe114e", + "1198ed58bd19179822b159c027884db5794717ab7a3cd83d2f1462e386ef8ff8d11ebc2b88606275d8c846aec7d4d5a110da304f29c97367a588825c88e906c9", + "fe6e0783752006b64511cafd337665efcd2b20c08924e95e2eb112be8e40d3944880a7bc4a62639775b1c20943d125e81a6b3113f4ac48f43292cc33052b89a5", + "ef314ac2cee0ddd3f29fd07e00fd77a08b97a6549b8f36acd5284ea34d351727a3be8cd3324ead59918ce9b3fd3d9f5d7b20a5f16aaf2f28eacc0bafc3a4731f", + "9d6f6215fc91181ba5a13c520a8b4284fd8231f3130582a52452184f4bdfce04013ca3b016324c14d25fb5ee34b917536ad4fdd3303781eeb9a876a856ac3128", + "f5524ddbcd41288c79a55a009955b5ad72f4a8698a971ed404071ffbf74599798a779afb195a604b0d4ebfc05d43b8ca948c1eb92be367355e618ded75af2043", + "2588b445f84b5de502d66f2cc67fb311badb86bcaad444c8e6b5bdea78a24c209dc61e9dd115f94bbffe36bafb9d5cbe631b9f74568408f36e2001b76dede29a", + "d7a97d5fd1d56f94bd863b66ed21dd64ad07b262ead6e50083a72abbd6dde0361ceca1796d993326238d00c2c9e2d55068f50783da1a243f05a54fa307ed4273", + "8cdb1c2aa07c1f85ff8bdab775a3f378c125ecfc29817b756e96ccdcb33802c45e80be5c0c5da9ac1d973a62e7865687cfa4a9c2924eb0a38f4f65d69cbd0415", + "ca10191997db6aacac4272eae62c5d3c7d7c6ade164beb305843c85abd787f910e991c98460598f3f3b7aea235de5042b9f3fd1808759bdbbe326b4875e7145c", + "402d5763072e8d83df96eb7934e403fa6d6d1190704e9288beda1dabbcb1328d1c2c5c59d3f997a9bf1e2e8535d0da9d2cfd7d6176f8338fad679884792105b9", + "b5253c3258e495df9bf2756ababab45fcc37b5ac48fdedfda044c7e325aeb88f468c4ed8ae6b537195229620bf36bd62cc6571ae4052999fc33c0fff61be1ecb", + "185ca6e2c894209124ad1df759fccb1a3ba912cccff87f923a540ce09c6d5fb3dc2c0b126a19cc941db28f26c991d01dc6c13ea82692aca66ef7c3dd308474c7", + "ed3ce28df2c1c2b5b351304e27be171d452f22db517fb4ef5786049ded716f02dfd7800e01d2ac0e8cacba6ec76c8fcaff6410c165ac5de06277ec051a88f5ee", + "b07bc0f24483ac57dca6863fc67ff7f18fdfd5c2414fe8167e729fdeb55c83a594d6b431e013a26488935b5e7253ccb30e5519ddc3c89aaab4c0888d56020690", + "f576b79744b1d8a682cd7c16904f5b35aba830cde6c6ad90c72b3a81827664b9d7142443685eccdad8556850fd0a62df42ecd40266ddeb75dd07829918c871fe", + "893c36d75092b33fe2c74cd97a44f9b03633570e2de87150b8c9aa5b750da078e045d1bba4594dac01659c808fccdb896b63b1a94244c9a635fc773ba28f60d4", + "739633581c5e77656b90504c7a739b26e9bf4bf594ccec739f5c0103b842edafd110dc1b69f9575f8592b0d10936d896689862d1a6ea8d2c8b23c442915a15e2", + "da463d6a4d3798dcbb9d9086179e5604cf8d135224f4c0e1eddf097d184403c899d916583688ffd2fdf272e3d4d55a7ec6c178f3792b648cfc8fbaf5a45eef0f", + "b5e214b1465cda68136230c372c11a0ef44d9bdbe83fd654d1ee4c5722e584f4ef55705c1904a7883a6a30bb956087b488826a054f7e516177ab653c3c779d24", + "b04ec2165177a1aec04412eb05600085d0c69ff4054e48c89f1bb01e8866961c4b103915c83476c43eb9de0a7a2d6df1ba37b0a59dcbf656d014d9fb3cbab520", + "8bd99fa27aed9cef441b43c1be58df3898fb752925e7b7ac00bca5ed1bc21bf4b5bdac79f04188677d4961ac6f070f606c9959ac78f53282aa0a36c2d223928c", + "6c51991daea73177ddec9dce6cac6a7e62b6e19c99514606bbfd02f4edb7f91781a19bd902a3d1b981bf4196200971974a823c29f9e50163f6aeb50c620016e3", + "f043e13a1def109bfadcf1c7ce2813c2a0458125c65a4265f494b7f4ebfdaa98cf06b2679edf71809ef32b3f73c71cc868b82d186c0558842a02bd151b9b1be7", + "2fc23045214a07a71740679d00a12d936ab6da8f76387ab6662f0223f956dc3eae3ecec0671327833768b5d891a786c591431774e0b937c92a1a09da40c095f0", + "70399b6d571790518b1af47beb7b9f0eff2eb0496a516ed2d95d3a882cfdb46742d41ff4394d361e4f5606a8a169993f0fbe3763070a29d70c4b58f00f2e2cfa", + "e796d3e017bab3b85f5dd4d0ca34d9bc0c3a8736ae3e422ccda89c2ae904e94f43e3daf2e8f0d3fa03388556c860d17674f6fad0a559c1b69ec34896283f65af", + "23665d21a1faf0c5710d99a6277b65e00065f0c522a02a8354d1177a1e8cc1d821b84edb48a033ecf24ac8af699c2e8a56d80c653888642caf03182c067d835d", + "fa65636f1a7e68c641a4a65a90c4c653aba5a9bfebf7b3082c2d43eaa9a27eefd33899372432d69ada110284540c5976f6b6c0dceeeca3b9c03d3f3b3b7ce68a", + "00ee91c7539a32c5cfeafb193d31b97e87a49e8ff553c165b385fadd8e259b86e3d32e297e597be0d921cd2eaa1bb7924a57ecf9e0dc81f662a0fd0770ab507f", + "010fba9ced1cea6a9afcd61dbfcc4b75badf802450421d5d6cfad118415a9e2094a3e5fc6941946294c2a586d2dd5730276d955c5f013b1bc4f09b09ea583fe3", + "64939f254515da3d0f81c05078ba7e5ec8315f707ada3351dd7761cbebaf350d9d2ace757131d3ef3ff1b994fb323e16254f72a38b1cc7d2cc1f66766bd94815", + "6f6486ef97435f52e29d9cc309997604a8250046c9d0ad2dc3ac6f93544a6ad704939141f035daeb7e0c54909483963ed47342aa5d830752575b592b063a344a", + "57ead84bc03be99a07ed78093b4762c75af3c70906917dba1ed1dc57b36ad53ea767ce68999112b55a632e27ac37b8ceb0fff2e8221f767edb980d15cf1d1773", + "30fef48cfff23f480baa65f623056122b5bf130452ee546fb5e40c4fdc5ee5dfd45dddd02f30fe47b361dd080e98040daf19a192c2c031b50720c5440f6d9c06", + "c48d1937ddca118d9266ca87ba573b2a42a28c72fa5628ebb3a7a3e8f8403590058afed6c1c9bd6b4f10ef8a012f16bece9adf457f33f6e88d7a8a18049e1b39", + "d2b7b459a6c4fb2393bc91020a83459b2227f2598a8168bd91298e4322c701363784db3ab315401e4f2d4b7cd540ba0861775cae3aad5cb7682a8e4a939f2d6f", + "5c18d56fe7991c1fe21af7e31409e615b3ceef514f9d0f4524030cde961e4ce57f095355b24daab2a955928359410a505142941e70c72a37d0af56b8e3ad830d", + "475feedb26b00890254da616589fa14c6592b989908b5f0c05fbc88df04b3c3cf6c3bef8cce2661748469687f903572abc9454af741dbd610c08e507640e1d9f", + "40ddcb456e83dbc2067e6ea21118b7c70a870a61b08f06c28a866b5dcdf0078004ebb7f22c3af255207ddda2d19e428e90abeb9e9717968475f4ed90a6aa44a1", + "060ad1ef15d4e3e55959efb42d2b6a41fc7c19f2a3ad9b791d3e3d9dce9a223efe71231f7886ba2318368eda87b8bb23e5a28b17b275a4b989c918043cab0bc1", + "1b4bed58d04466d1bbe7277030a4842659822163b2b51850301016c11609eb146002c290b4183cb7e0ad055129f0527797f809c6dee548b7e2dd881f9b90aea8", + "4827359dcfbf5abd32374fd67003c0683d4491543c7c4c4f910d7c58a68704b8237af088c9d8212089dd8b023549f271c943ea41f9c5bef3aefb18d69d99a00e", + "a826330701d2f228315852dfa305e4254e40d8492742c90954eef2697f2f2a8bb8e0ffb7458f9c6c51dc3d0dea6f1fece8376dbc620d1761e99a1df8915a84a0", + "e74db7957ad8573bf14f5adbaaca6cce1eda7ede890c16ec8f6a5b3676de7da0d8273b442f1a9becf5bfc8889ee0f3d01e242e99725b35dd2409d1be26243b7d" + ] +} \ No newline at end of file diff --git a/pkgs/pow/corpus/simd.json b/pkgs/pow/corpus/simd.json deleted file mode 100644 index f066c7fc..00000000 --- a/pkgs/pow/corpus/simd.json +++ /dev/null @@ -1,258 +0,0 @@ -{ - "0": "51a5af7e243cd9a5989f7792c880c4c3168c3d60c4518725fe5757d1f7a69c6366977eaba7905ce2da5d7cfd07773725f0935b55f3efb954996689a49b6d29e0", - "8": "6fd2d5e6104bd3966283321234cd40f4ed380cb53a03911b610746466c10a93e41c9b745c79dfde3275980fe82fc8372efc406a9b0bdc8c63a375954e63436e2", - "16": "6dae77bb11d866244840b90196d8268d7b4564593fcaf1ce925e672eb878f8c0ac4fdbe547c4524275a5c982a483c97d4d92ef975447f454c2049139c71bd13c", - "24": "a15ef9ab0143bf37807c1d5f654106fe1e877adf94aed7e1746f452374359e904f3f996812e6ab16ffcc7c358357dc4e97fbaaaaefdeb02b8e12d59c88be44bd", - "32": "a4e5c8f1b1ed3dd14ccaba9f2d974d529e97acc476fe6fe2f0a2ace9272be66452096b561e57541cf16c85a6565401f55bbf9bac0dfc6f957d63966112ef1aa7", - "40": "1255f276d2d4ab8f15941c0cefb66d1c037c69980355900d3a17b67fc1fd2e873176582ac5c340ea8c4bd96b5b99e656899b18edb135c6ccdc076c5513d4f9e9", - "48": "f4d4cf80bef947f7851e055c3deb5d54e321805ed3229993ca4adbb36cb1ee55e6e548092dc62805f7f34a02a45880d23c82c8ef0a29a61f4fa65e2022f8dc46", - "56": "c5090134c4719ddec9e6d2b81f80396b8097a3131367e6ee1707f0ea972d68a80d170e9ee91f2c9060a6ab8c6711bc1e7c6788d1b3dd728c1f58cf12acddad6c", - "64": "d847662833b67704845fcf0462555277f6989d5756f2bb8259b1573484f1c6f5cb491b3838af95bf3a7c269c50c3c8de3bf0b2b7bedd134ea825c33e3caf4e0c", - "72": "26999df82b465a272d5cf97114876dc7fc356126bb129026d800234c5fd20930e9cd1dc57633c5bbde62a282eca53c861353543b7cdbb2ea7ee041d77f5dd659", - "80": "bf127ca475adb903536c96b0a129eda116a8501160f0737c2c5554ba280a75084f2c82b80ee03a6261074c378b27d29cf2d59d653bb517253f2ad542bb21b386", - "88": "3d8ac089020640cad27d99f90f5b217789725185a8cdae7cf5383afc1fccfd1a36995ea3ef78ac23872e70c98ef805753a932c5e8b6fe1e275e8e98c0246ae9a", - "96": "444513ec2c9f69912edbe6dca5f2d399c304991e0822d69fda31df1f2ba6b7f3af3b51160e3a35e504af7ee99157c4695387a42efd0b591073b5475d488c5848", - "104": "76aa046b22a8ea25a7e90c32ee755b285c246e9bb7be9f7b95cd0f7cf8d2edf79ae910b28c81640844fa076e24a9bd7e7042d17600eb132058d92f12e453e698", - "112": "7c9c0099e98a2f9800ff6d3817f63b8fba9f1c9bb73f63fade9723640a0006faa91f85742f15b84ff8dc03b11baff45b729efc53430ab956dd74b0c2541355cc", - "120": "947778fa75b2ff95f61c1f4cd4fdf243c9a84569e688e864ed6f2bacda09aeed1ce80f81c42097346a0addb219810fee8044a482e613187a9407f0404979a1ab", - "128": "bb7df15995bdd2877a89bd8b49fed6ebd9e207048747ae934e3ccdd73301fce2f82f730f686e66344fb87cea952fc13bb2caac1daf5188c927cea93cc5792c53", - "136": "ef008701b7788acd3af39596640d7d4813d44eb25c616c3f7d30707bcb1bcadaa87cdaff9f8e2eb60a10bfefbee8c7dddc05770c4363925331db4eccd6051329", - "144": "d363b8474922b3404d96c73b4024fdc553a5d0ecb357c9349398f139499c208a2f01e58e25bed90422f783081e130f630366dfa3ef86dac2d42c80198b8bd3d3", - "152": "c2e23345c6fe48335f27efe080998009de92dcaa0d647f95d124cbf8300dc3612a2162054f47662f143d289a168e11bb497341bf9d0e64bf96ee049769d328f3", - "160": "f7e3c491b98fcf330c03fcf5cdab58fc59c2c81e4226d68f1895f98a517f43cfb5c1c69683a07b84c8ce9a452329099cbe349d9c53b640f6a5f66e90176f482d", - "168": "45af2457bd500ac6a0a5267641f47d7428930072eda65596f240d85b76edfa3c8c41188681c4606b43f8341d70d0a4af962a0c78d8defa3fdf5095d856e51f2d", - "176": "735968ec18b347cb97017baa580c9fe56e1b59b36cbfa92bde2b42ac717efaf8c1d0597557657643bb2fdba262a0756d38fb2575d22bb522e4d44e778b4312e3", - "184": "1e3d1e9fa106b1a6ead56a1b7670f383a9114f2a8253cfbc434b7bc791881e2a1db0fcbfd4d8a78794b653a23a134c816b5a46f1d4209be9a256649a04947608", - "192": "4b7ff1321158b4175b4d118a4ec4cd385443cad1adb02955128e79a76441cb2db8bd1f7d84788bce55aa0ca8537da7ef66e2721dad1574ccdb02bf27e9fba918", - "200": "ebfa744977d00a28d807f9391c64278eead9c7040c63f978e58c9e73a4d7cb6c4993cb7fe22db06bb24477ab2fb71d2b0ae87dd77301143b55c65ce4f1ef3665", - "208": "23a610c403e4010541f3d04454ef12e409502b5159f090ee4843c9492c2f9cd3e1b8024e76f5c514c686203085c2206e85d29603ed9e8a12257e2e172e460a49", - "216": "47c8efcc9d9b70ee0e706a9f35bdbc4bd5af8f678a3d99e8149839efb682bf424b17b57e3ffb9de8b2ec0b057bc7605d73c0967a2e25398e15d3ba79702e6f8c", - "224": "74e86409be67edae17d227cfe19920b4b8c60d5bb64a6107fca9a352cbb6a81eefa6d2b2337fc182f11bec9dcf95897334855b8d47f075052e0bec62b1b05b66", - "232": "e72aa8f6e9580132e199ef089c759a2112737efc05c69b5f5ab1a835ed5dc1f01253faa4f374cdbe93f6dccc8c027e093a13e1b8c364c96cdb686a5b7a05fedd", - "240": "5b220d643ef39e65a26526279b99cfb5b2c63debb232c36c1cc6b9847ba3a70257e2fae38462c30e82942b400c649006d7fc750bf92fe75df9da214d67550be1", - "248": "83fe9ccf157b014a33a3b3b7bd92e3852903f3b2cfa5d333aef7773baacae15ee462d0449748b60f297142ba50a1d2872419fb2d243195c49783c9be721ddddb", - "256": "7377ce2d64c09673931abf6eef15c61b4fcd860acace072f77fe0fe0f5942e5a87eea324105958f0762c597b4747bdafaec52dfabad669cb2ff4f097722e119e", - "264": "742f5bb38e9c0c6cd85f53371992c733405b4df4ea56e865f6b3c0be6bd25beff201059e1ae40de7ddb3522f5e48174565792db5ac0294d522def7e310e89a47", - "272": "45b7e534e9516d37c5f9f4ee320c10cc64086adac551da7938cc3d878ee5a2af522830d8cb7903bf7079162e62ce3d55d48c813ee4f246bd0e4d145bcf124c2e", - "280": "a766f8cd24b1a357443a8a120f9675547253f3437b46f78cb527c89799e65085c32cf9fcbcd7800efcac17923ebfe6ab1ec39c27d8f7566c0b171decfdde20f3", - "288": "800f43294b4f7e8284ef6bf1c0b67272f8c72fce8ac6611a775f87821c9958be25e5fde338a328757b246ac624a893b21ed745b6207129c59d6b93ab01a84d57", - "296": "ce11519b364f6afeddbaea586934989626addc0224e7ca7db9e71eea24c7d1e1c61664cb4a29aa4e1fb197b9b941392323e40dd1630810433570940c6b626ff0", - "304": "71b55bac9db48f08e21574a4cfa7ad725d86503c0b1c281fe8b6cab7e797f69feb7ec94508ede5e5220af156f4d254ca8c0fed85d49e4e365ec51c82d2409593", - "312": "9e859144d0ae266276f31236a963ae4276df08a18a73b7bd82bf9cdce901009ebcf15a7117178a637587f573fd5a9445498f3053cfe6a38225ead26b56a1e3f6", - "320": "c5444b9972c4fcf05e9f7c8b1a677bb18c107d0fc8c22b2fd2796e1345f2a870664f765ae4e1c798a8170962fcc7ac98405f5552e283bf9b465363bebafc18d3", - "328": "364042b76ab491599c1e526162cd7b74b9951c1a2d709305f1d5ef4f042a83a79601db389fd3e5eec31b77771fe0d40ad3de7bb1be264e931a2a15e59f7ff8b6", - "336": "86815e06340991f7c08fdddccfcd7cbb5e726f58e59304de88bfcf211f59e9eec50fb78b4f4ae6b01247ffaeeae299fbddf16fbc5a821741a81d2ebf4c14103f", - "344": "ee11b3e3123637cd7d956e8c798dfb5956985b15432bb1df3aea09127e5f0737c9ef6cf65f1e87d17d0839ad126a313c3705d8503cb0bcf8cd890b20c8bb4745", - "352": "4a201ca4e8b1aec19882201090505055d3def3013ce9554a1c5727e630eedbe86142332982c2b872f5e7fa65011861b31be99150c30e3fd3b9e8f94ec5108c5d", - "360": "5189f39a3834a6650a70cbe9ad95ecbfc754ff9e9323339e8970bd821192002488ab01cf2c3c3063384e08bb3e20cf6a6ff5c69dc1d03fe21c134affffce6448", - "368": "923ab97a48fac2ad6ee986ea9b536820b77f687cea1b339897ab7cd67034e712bcb8aedeb7f4ffe009740d63ae92743164a699541df25900a6314ff3bd570a34", - "376": "78f281f0b2b688fa72a76ffec48be6ab804d8298e8145ea1ec54cb63eb26800a0e3c0dbbc6fb055977b15a8045891af6c563acbf048db7d56b7a15c2fb1102c0", - "384": "bdd5d51f2bb70e2ea7b0f13672c89425c2f541e0d0c06a84cf78acd4476f030bf6335e453ce30c89f3e4e8a0bed0005ce63f2e83114ca569d37a724381de25c5", - "392": "9b7227e2d357ef1ad91942a4903d9743a9ad7d782357918218399024b2c3e8dd55c6aa720c1c97efc89775894c32173b57693c63819fe84068ffecf614fbd9ec", - "400": "1ac11f1e1a6269b31672e496c2473376e0334bd6932ec34b3e5d723fe117e366c6383260bbefe1b7b36e023fb8cf0286142556e365a68b5386c060e58ca3664e", - "408": "c4f1a0dee46fc03ab10db739954429b82a46fffdb74936ff15f36293c5f4ede313f1609ed275badacf38a66589cf43a96b90520a4bdabd1f4936d832a12f936c", - "416": "4dcf2165de2d4e75062c68f716b87a2502a5c31ec24c05b6294d3044375581bec390a922732f88b036b258fad6ef359ec6276076e4031801853a4c69b1433010", - "424": "02cc09e41b319c30823858d36ee90c5c38d7c601f2450ae690b6f4582ea0113121539d8dcb8d92fb8b0311a1e6b1dd6c0179bd8d54d783e3dd5b1c700fbbb405", - "432": "cbf51d6416ea564366895ab92de33dc9528bf41fe228ef995476ed1100c6cf7fd9169acfac44b210912befaa4aed1603e03ec4ccff02f2ce9d13c2259cfd0d8a", - "440": "5b825361b0b717dafeae4bc4cbc85724fa0da00c22d24f9852188da49b3d029a526b61062eaf3f6093f8aa614cba3a59325686b6267ef4304737f8f363f65f7c", - "448": "88195771239a73841896421da5109ea3f38c478d3c6345f9c485d893bfd356bd55599ac4da213675b5fa66cbe64d7cd3b8ee966f4c69fe8af774864131338294", - "456": "ed251b31d11cf7037da859bb03329379ee2de9e964889497387931e63f3f7ab62ae11952c396ea6a63b5849da1bb68fe735a5ddc57d6d6c93600398095c5dbea", - "464": "faa04fadfd7986a2120581ee4e82c75f96fc69213c64a04ff067b112f52de934599f20b86ae22ed960958dffd29d9c8f88ecff7b46864ab6646b73da67ce28e6", - "472": "2d9af5a3f46852d068e08d7e9aa63059e688cca454f5a4a0633157f71c2f55a09cebc6c98b464efb911a988153dd9d65e42b00976c541f3f132f8bc5e42e3434", - "480": "f9cfca44696eadb1a58ed8c1fd6e5b9e3e90d1fb107829b85b60f71ba8288d8c885a3e01eb8a471b3d33be026fdcbb1d5722290e354a42cdd9e3fae4c638e7f8", - "488": "e3b1674baf0c55f578786a20895273926f6089020488180c14d202d805bfb7cec977aa0e0fe124b3dbf8d6ef3ef72595ccd055b4c2adf6ba4d669a9429985a68", - "496": "18eb6537ceff7304b9f25db91a58cb5f97fc5a125d6835634c4687e71f8e01e8a116e846aabaf2c39967a1b203cc17fca09d9bb8c335df7840165855706f1c33", - "504": "90ef3bcece1726088d0521ec848a9cb75d7a6e5013dc7d8dabe6be1c37f50fd080cc19c552f82e38b3880db8bdd96ab6e946247bf7ae171de353020ac73d467d", - "512": "f1c23c1573c37f1491606318203057fea497cc96edd0b307365e76f4f80624dc618c1726b37896f79a19ee48801dfe17cbce495c77c2b4ea5d9baee6b3c3f19e", - "520": "3f70591d6934723a6d997462b9523515cd8a6fe27c07e3c44fe014c58980ff90e439c46260ed34183e29e6b913b524dd93086e44a82d7063f0ef243f5a3c7235", - "528": "b70db1d13a6ba7c7b2d64a67003059be0180c0ffd4417fd319c4f77d11ac6a46809abe7753f8c219e9c34b7a3cab980e87787429b0a31d687c90a495ada04eb6", - "536": "46d8de2589cb70003961c912330262063959eea7955e9a9dbd7063c3ce6819aeb3f4552556ffce1683b45393e3552dd675c5400df3dd3f777e186ed805c43561", - "544": "9387a83d195213af6eae1a1a8bc0680938f8d408bbdbeaa4a3453572a510f1212c5da9dc853286849ccf00d567b1ae0a3729c57e27b4f9d1268fc344d524aebd", - "552": "05ebbfc92a254b282dfa9a9588a59886f2f74c9ec2617209654d4ccad53e812d776effc1e8c638d800426dc80df871c1a5ccc9fc04bacee60bb4c483c8c7ef82", - "560": "fd925c663604af23660cdc20e001e870209640a1b773ef82ce84779fd72ff0f0fac4c0318b9adc07d70fb12dd106ecd6c7cb8b45077d34b6dde2e164acf996f4", - "568": "a8de0c680e94466d3cfe19a5068d4796c33f6e2baf7609a077d996d621bfc38762b878e0f82eaa95b9fcca5204c5de6552cf99ec6f806a9fa9d6676095e3a4bf", - "576": "673c2849f0ca63dd1a078f5009aad7c88f4010bac635287dab7142ff71f28ad97065d6a698f0a8d50c34d2113257c000e472e119775c94ed6b96c99cd76b81b8", - "584": "3527da5ef06a1b59065987d79294d6620938b8e832a6f2276fd4990d9bddaff5b19b7c88e9ef73e77d0860f17f85f9c22759a3a786633e43382634739d07b86d", - "592": "011cf28114ac6433d69ad367262de17636b8e0f70ab27f12f40e3bb490f369c7f20e7b8a3779e7ead73bdffb428603140cb96354f020280b230530d6578a18bb", - "600": "36587b6e81255e7e627503376ec6a54ca1420bee542fabd81ca6a519c8ae1f0f8880025cffde82343582001e9cbc915eb7a483202ff416dac10bd539ac42b738", - "608": "685d1402d4f3ee31d67388b7eda6269c7ef9ac9d6b908449793e46760a77a522b5604f397193c7d081fb06b030482195e3e7497b0f66c2583eeec5716bfb998a", - "616": "0c3cbcba21ac3d6190617e84438b75359f10dbd7d3693bce81066d6a9e6af3ad9c278930bcf7af6eb6689db328ec5e983930316a0a1f10156785c394b932f9b3", - "624": "dc808ac503d7aaa186ab9a5ab75b32002a9416fa34a787a693e0a7ef519a2774ac47ff3a2841d8b89e6616b9e4d8756a3b3985dc5535cd7925668eed356a83cf", - "632": "d3e42342b4cfe3201be483158f0f2879028468decd4c87e0e76d383346de2eb9df528da714fc7bdd0e46a97945109809a000fab1041003fe623740edd80707c3", - "640": "c51e398199bb616416c123694386c896d34bda64d63adfc41fb469865ec2727580671311d780613b8f36290cca8d87ec339f090aebf376af3fc2d6f6cdc88305", - "648": "4cc7e846463215fb8e0855b733ed6fc41e5d2c27d0c087119a91b5bae4ccc14cd85cebce5e5929cb5f84d7038b35318346f725417f05a1f7615020e4fc6d67a9", - "656": "8d6fab5d2c5e859048ebff61eba20488b4df787fec8143ba48c4aba2c79a8d8c4aa35400bc5d09ebbd206317bceb742ef3b362f0367f9e794e99f92d29cdbb12", - "664": "5fd0fc10cf0a20a1d13325a46450c9678eb26582041907ad063073a2eb09bbcbb92f234295aa26fd1d4d41f08f63258a0dfb65c453fb4c42ee83fdea1184e4b6", - "672": "c67830d808123b57d6b02831c7db78a25da52ef9f3c157f4e579257de062c4441909bbed22f68d913859f902ce9b408226243cf69bc7106815f8b6bc57edd08a", - "680": "c80f8c47d84adc1b7df6b5f0575f5a7a78a4b5366f06420d205e887fd3b5a7c3f7fb36fe1ecf9dce6871e6eef42766904e6164849a410b7403dbdc94392ca036", - "688": "b0165b517a4a1d8c7ffdb612a9b4795647a8e82e352f32a1e858d577d79221b2a675dc0d8a0f258407556131c49297248978da95169e8341f7f5046b9ba8cd52", - "696": "9a15adcbca581dee82869beb8f2df91e7b7e496063d620f35705bb9f132214b5aa467d242559a5e7fda48791f5787d12cfd1dfadfc3894683839382da186428b", - "704": "271ffde774199c16ca8ad81ac38aa9fb69be167f0e1ce4a8b6265675b7c217dcaaf5893abfb98b4b75989ec2e3d489b3c2ac6ae478947d731d7a777ed8689a95", - "712": "b18521abd3b88549a0f2cc6ae65ce68056e0500e18ed7bc3f52b260b199def4b2c91509fe18108d1774e10966cd91de332b836f37fa03a60a1fa2606324ca6e8", - "720": "f25fe00cf0cb4f83aafe177cb53767dbc3af0a12255303a4d7fa9e41e947817f3cf56e45a144e74ec8460ee7c337e55545d70f5c23450ec2954a13621c400564", - "728": "db2d1eaf52470f6cedc3ece1f8c2ebb50bdb14d9c8d9afbd12091ca30e1b765dea91a5bfd79b47a61877f3ea47b591b3004f9a441141cb08de39b0026ebfb3ad", - "736": "75153d37bdabaaa502ab005e801a7344c41afe689932f1e8c7dcc5c47f946aa478793cf7c04043d6854680f72b45151167b327ca5ea5247b701abb0d71304ef8", - "744": "2bd52fa6932533c2e9fa41a6ab48ff908dbaa29f20e129b1d044bfcb62e13cf4fc2b8947d5244eb07ef21477f7e570a66c66f4f5b340d97b5c28dd1800bb93c2", - "752": "f63e61d9efe8398a6e3614f0d54674646b179a77defbbbdf88520d06a5f5f785664b1c75127b9d01ad329aaebf13f69a7efb123bf54180d147cb032bebcd355d", - "760": "ca3edfbc690e91dab644e20a1ce7679ad9b9fe4da3ccd903a22d85d21700b99ce3a393b6478b8d9e41300615c2a4a767649109f6cebfe2ddbfdb3217363fbf78", - "768": "81942e44402138d1cf8e67f4149fa3c99be40a901ca7770d90cbde792ea847afa9ecb6fbdc9071aa631b1717fa553aa10a10642abd99a5476e7b43379a39e005", - "776": "2d2e194354d69b3e2d8c8afcd995979103ad49852c50b905ac3ee6e653f933a78259585abcf8b28df075f067536a2ac6c7deb61226e345887cef97349ad309ac", - "784": "bc0b017dce435d060092a30bae0ed453ad5472ea2594234cf0ddd0bd446fa661fca44c3f4f7de12469b5e399f984daa584237301e7671d74d28f598f38c9d8ff", - "792": "b7c1a56ef4ed384f52e0b848eef8d052749329e8d46f83e093839b3ee401506f4559e2ab5a77acec56885962d9a412f7f039e9f69f92b7c0ee9a97dab8e285a3", - "800": "58ede723c23c51b3b25c00a45c9ca43159d0d937ad0011b9775138cb5f88c21b1241a8253516003758e51e6962522534a01f1bbaa57ee151be7cb066fe8e520e", - "808": "520515c44c2c6fcbc977cc87ed950e243fe22804a84b78752066474acfd04fa47b584afa4593f91736998a85dd7a1fac4fc438bcc5bf67153623f8cad4d0c43a", - "816": "78d0cf1d23991ba1f5020117ea83c42307afe09beb08c6f254703d2c06a4e1f62bcd5d4b5871d5ea6844b0d4fec40742bc1b9ee0bce2dc25b3f8bf91e0bfa730", - "824": "38b12b60a8b3ecd720e694662b57c2d26703313769b424757c56c59c6a0100d0d77acab57d1782d0e26cab8604c7342d22e9b866e874600e792b9d2e6f4c0e9e", - "832": "600b9e2ee7b495dadf7eb943f5c19b6a8507bef1155d8789d7ec3659878245d5deda63cce5f053f710ae52bac0de3c056dc34f343384aa951d1acb7b27608a43", - "840": "a98b15a7df8b7137fff94ec7ffb5e30b80306059b84dea1d5e1e740e06a9489fc0e971f1f7e49935aa3f6e138174f72d45b354ee63162f7ff26837f1cbdfcdee", - "848": "35ce6234f7daaaa0f6df306368d4ff0a5469d5265b54f9d8125d7195d337cd531dc012f5ebf24992b22777f7b3a089c198165c4282ca688b7b3850c76acd01a9", - "856": "dd304b3a00a57fd2d39b9dc2b9e131ace01b871a070836c30cad32c30e898420227e745e125e3126a2a6d5988c18c77e7824e5337c13a1d9f163d7f6779c7ab4", - "864": "5bae2ca1cdfbead824ce983fbc15e7b030ab0f7fcd9d18e07c065e459f57f17e91bc1f57fa34b6704ee56cfe40b9a88bf98529768ca2ccfd72d3c4a370a03c4c", - "872": "7f94e7724c5d6b8c5ec2c7ebdd3158537e554ad714edb8e4d6c9f40cdd53fe686952bac06380fa165ad54daaf94305e9da4b8be7bee55ef80b8c25adfdc5aa73", - "880": "3a574b7b8dc9de0d591214e90e7608232dab53998f7a587db3524888516986ee6b0d788782b66da371c2fe7e6be3b8be55b48d00a470b738b7b8588326171365", - "888": "a91b39d8d765ca803db306a7cddcfa290c8cbc012d971a185c817fab5adf1add23e5a949ac22dd1885ac3bee5302b6507b7a5910fff5f859c92027f8d3e489f4", - "896": "50cba77a8e5e8857633a34af67eac9abfc6005e619deab916fe38ff0d454288ca9b61ae00cba786f710ba7d961c5dd5587fb904a4b1fee17aa33cc0b9496ed25", - "904": "f8a298b12acf21bde6a61692efcf95c2b423498fd1100e3a5e589d24ffc5266b0999b526d731f0a697ffab0aa7a3315704a3855354ce6cb2d18ca6a1dc227bd5", - "912": "eb432513e27fd85d45f9c62b57cf24e2b217af41c4094e72760ca2bd18bdca7f60802771b21fc966234a3107227d5563d4ac1f740b5127207039643ed4245af9", - "920": "5a12ef8451b686fe09aa5db2c6d5acd900793eae6b7eb25e5f7d86812868a8760cb1f3dfe13160607085fa19bdd98412ada8d3178c37abfdea0ff083df15f9f9", - "928": "eee794e6842d87ea13aa9fac4f3e9fe8dbdb93a37f0e5288aedab0ecb1287e1723800cd289f43de0e967c59e95c90856e5a1371a3171515311515f7e2a845efa", - "936": "e3a9a65d1d7836400189a0f002371ade43accf69d535b14a7aeef27d4ebe7e17d84f294a64cc713372481ff6d272be8fa737976817c106e138a532c907240c38", - "944": "e5d3f3338168e309b4d46d55a38cadf7be83d9845d726d278f3531672b9fc13e42520ce5efa1ab0bf3d5db51adf8e62cae9eb0b7b45d358459591660e3aff41d", - "952": "609880fd653f1dc3360be237204b0651ce02f90af4103a3dfb4d0b157e7e2408a942d51a9b7e906c964f2e246f5789e0ce9adce53da39dab93db3dbd28890982", - "960": "54ae2d6aa6722afac3e3ac1a0d03584a30762a830fca2235aa63ff529a27d4ad8bcd25b8feeb9f49d2b2faf04a8222562f4b7592a573af22a433238b4e156f09", - "968": "b3a5424501c42ef16d103a450c0625b3d61871030e0c5d741e8e3ac9a7b4709b0e16ff81e8bbf615db0aaa2f600e9fa94aaee4f94e97302368c1da53c00ebb36", - "976": "a881eb168c60a8a900e756f922afa7bf5897263de1d3a0556d959bb0d4d6473baa5e9bf89b1e94c7d2084ec1ab6b6df754eac89099728605817ac88c1f43e67f", - "984": "857e42fb2f4fb65c36969c9d57cf5677379ef9d808fbf097a76f28a1be555bf6173c4b9c3b35b40754f424fcbb5a54102a1311714d2d89210c801fcda20391c6", - "992": "5100b5ab268650c0ef6a394c10e8f92192ceffc152365c0dc7949ec2d4e4f8b21b5d33f0acdcbcd3f4550dc80bbb98630f2d6b8bfdecd7124e888efd257a7f1e", - "1000": "86072f6c98ab0d467509db37170e426eef8a84668a8b3bf3dbdf7f4676f99194b923d2f3fac0c4e766fe66eb34c0d3e88dd752e28583f1dd57cd0f14f2f9b3cc", - "1008": "b269fee7d69bcc0d35b818053da3c9e56abbf184135b7ec075da843da2508bb6acfa552907796032dd6bbd83e19f477b42334a0aff671491983a71b1b9005ae1", - "1016": "9e3d4e077146316aa59afe04f35a2438d0effda3ff015ef3c64c1620af9b8f0c5174689424d178cfe646a2ca33b1c889e0e97a6c040708390da3cc4bef9b7fe1", - "1024": "71dde0f958761d254257b2c1517f5f57c12d78a5f62b830124d99241eb536c7d9a1421d226b92522b287566f26b28670da96cdce7d5179d9ad3c470d98dfad5e", - "1032": "46499ad2a5cba333b788c26c514c2a73b45469ea3a59dee7225ec48eef5cdb7513f451139fe0555a6c26a8ce66abe27896b37bdc4d5d6b80f06a046d14fb8152", - "1040": "9508670897bb9e59a1ac5b924b7bc92c731b3d44f6de15f621e39761087aa6578afe285ee111133d9978d15018d07053d980b0ef69c7fbbe37d417d9ef06b712", - "1048": "d666bb195b8b3a63a1dad6e3967eccbf33ce1555d8a4b8cf53ef581b58d579ebcbafad97231e2b4633017af87a5d07d3f98387e38d75f9e17b53e9ce0bf10323", - "1056": "7250097d03311deea0eeb1099eaf6caf7502981238190c2fa2d96c702c5f9deae7cd24db564edc1ffc4e39155b36b55f7b8a9ddbb6d95c74122a16729e1affa4", - "1064": "e1b2b0c54e3d12fdd47ea2e1dcaaac15f02c62d7c30d7fdac30fee64ccee46faef524398eb21d34b6205e34e86294d652ec3f868b3f76b889ce781afe9ac4597", - "1072": "a921d12d99e1fdfb0d60bd6d37a9f2d6d320c263c162e96e6d7c6e00c1f9a1e2b8d803d74f285d0a9f8e15712e8bd62b4910666d5aff7b9630dcd93560837c54", - "1080": "10c77b0d0ac3337a765f599a9ba53e4b44f9f19376b35516da7019f558d3a042aa19bbaff087697009ec1a992b511aa07e14ff38aaba91a7239b8d4b368448de", - "1088": "f44f263402a586291f23cd9cd1219e412b9fb9c07efbd0227f15bbe65ce0a2fa91537eff0189e678c66baaaa73aa4bf4aaa4f19dc0a2db30cafc6d24f39494da", - "1096": "c778dd7edf92ba5d02e9eed706a884dbd65423f22a1d9275c7a0d500c9c67c9dd1c11e10d63e2f702e023d7c48c189a16624646ac8856d3b73ce824e93f81b08", - "1104": "a13ae3366e52dd8a56b39c76ea695eaa7317d51f3443c4dcd6b15b7176c0020bc36ec778ac0a021731be91c531d761c309663c835a8f5671e0f93e91b4302b31", - "1112": "8947f32daa46a67d36f671f0fe93d60c56214a18b32506d0592bb28ddc75d3ed1db16e2189cba28e398cdf9c0e44ffb005f1dbeb6da7c56882670fa8ccb71b23", - "1120": "7e0cedca34255a58e6dd90a9e3d08d33c8890775087f67689ea308cfa9936a1970e73a2c0f46a5d29c5fc13e98fa07d453345c7edfdbb9d70d90835d5c5a3050", - "1128": "c080f46a5c52f651a969153f5f07c20cf5ea07efc05afb68cc58962a7af8ac93ace97285edc9595db1d238787644f5e44d3899c839cf257642adf7efef4b8a1b", - "1136": "99f4897ad9e4279c1bbfd81b6004b6164d80e18db2085bd627887face7b2adb07ce65e4fcfaae4e328961d27a7ec873f57266bf467768ac84e03ba9f739bb861", - "1144": "92852944e5236f0947ddd8ba90a03570f9b437376b77bd17553c178fac91e2466c04cb82ca8a9a3b63687e7b718cbef0a0ae123baaba095da73fdff9d1b8c86d", - "1152": "4b806decf9c6c9a5ac2d202d7a8d86362f989ce96be36aa90f085f6fb87e3364c5bd462627c0c86d282dd6381139eac8d714b77dd57073bae32bd71abf69bb6e", - "1160": "24c04671101f817e96d88594beaa9dcc806ca04a81de7070c414f6998feea13ae83be02371afca3f7f0401406c02853346a9621f6fab9ce3e667cfad19d09908", - "1168": "4ca88b4291e5112a9d43db890ccf0339d07ab435e8a560a2ba6bc006b99a2149c249b12976d299ca40be948ee552995103cef38119880c0a1bf1f6d8eb4c49bd", - "1176": "d44875eebc4ebaeafd3b9d9d1ca9750573214d09072387ef0d2cb01eb26a7db4df67c28248a233ba85bd37846b69d2fce2cd8cef61da49d5a13f5e21ad0daede", - "1184": "d96b753f6887ba96dd36baf76f1e79b13f42861ae5d3f7d90efdbfa4b03f7e8cd79b0e4f88c7a1cc73599c900beb014c38242bd4650a6e705b82047a68baa0ee", - "1192": "d7742777571eefc8816f35d15ea8e38b74aa4e9b060a17420331009c9b28ecbd1e47702a370c60ce5f156e68bda4372594206bb1eadb5b6affebd22ef04a7286", - "1200": "141db2867a0a3b544b4f81a118c19342c56c437d7037a988c596b1e85b75f76441eab9edad53b971ac47ca350e08b0bdaaa026ee1b6288365157ccf6c5363c38", - "1208": "6c96fcb3e70625a674e9d25b4589e4b39103307aed4be45b1d2e473d6d74f4575dfe565289fd18cfc9236ec949a994b47fe0b056d6014619f8530e8d39e239f2", - "1216": "d78f2314b0ae23fdbedb047e164a3e6c69b8dae5399d16cd7ff7f8c96a83986e91c3d0a82d46353c03b3aff5fe8af0d7284e7b29c68b94238d42eb3fa2e854f1", - "1224": "90e06ed6fb339ec78cb3cf279ba7c391b25001bcc20c31a56c660c5d77d155ffd0e4a22e9f227b05d0c9ce2afd7bac87d63a08854a83a9e439ea27bd242d3aa4", - "1232": "d78c1be9e519bf1c05aa286ffd251f91dacda70171e8cb584d1268fe00216c9de5a8d957ff537e5a44138db909f979021dcb8e4f6f4e2716c3f420d9139ed5e9", - "1240": "ecef615fadedee9f5ca8b37b3581bf14273a7c86ec1b739fec75edaac23504cd6ec4fe95e3bc1ed93063ed1266317e756ec2cf3daf9c70d9b1ef4a07fe43a2a3", - "1248": "da6352a7cba79ec03af328925f2af897519a05ac0ef2aeee709c4146550ed6ab74e904b4c1d06ecad2acd65e5bdde9e951e47dd30fe3091159e2ee78d6ae098c", - "1256": "55d957b01023529f53978914073d0afbd20fdb23b1945975105209e6ba7e322534ba9746fc1b6421420dcbc7377423dcfab2148ba1d5df38bfcb4ee3e73e6c3d", - "1264": "ee6fa325e2d53ff3f39932ec2d9ee7acc1ba72138e7f48ed7f10da00a11b3cff80f44b0b6852065b46e775a688fbaca49d11e60e5f401c0312468eb0430fc2f2", - "1272": "243dad22f1d60d7b1c242ec44a378f70712c2e073f38450ae9f4d8f5618460578209bf59191651925f9023f0e12a847220075946d5cb771885be6b30719638a6", - "1280": "e92773f80c2b7eb37dc1f555037d94e7037aac82e04a853ac900865b280560021a1d4a812a79fbf3d3396e886d0856206827176aa8ee745dd997f77f01d18ca6", - "1288": "6d1d558016f944fee2dc92ff378f08784f64ca94162ae21d3e2986e4a310a5ddb7cc4242d424f89def677f70f736a55951fe50720d9cc694012bbbcfde5565d0", - "1296": "fae5cde8849c942f6fb39d95c441e8b283ec04e197cb47444863b36d04b3c55517bae2100349f8343a92ddb99d7a283696ef8e5923f181e60928121fb7623254", - "1304": "108ec7e1574d33960df7dd86729c1f238965ebb88836da4b4a9bb279dc653e5b53dede232892199cc54b0bc06c4ec28b400b4c8ba94d70ab0062faf787f804e7", - "1312": "5c3c1b585b66413f146678258c102ae294d9eea3968f81c7577d634f8e254b93d7ebfc8f99ffadcc240122900358e74d54d86ea12225f66daa9c598489c984cd", - "1320": "462a569f2a47dee3eddd98b21bb39341bf51953979c37a4a96727ea9ba7658992696477ace446f05536647cbc87f40539029f8e8951c7646cdf8520f072cc5e4", - "1328": "c7873768f3900f7bab82991d17f1828c9a9aae694dd516cf7c8421a4c79ba5ec05fc4fe674863d6ed27257f49bc977e19cee7348607a1ccb1e0359149300dd38", - "1336": "704c2bdde0745d42d2c9d858705d71b69cda063a621a21528f587bc0a824deedcb8f146afca44a02c5a42ce56625f2c06409487ede3d19df47286977fcc0ce84", - "1344": "91b0b9220c353ea7bc41ff404450308f4fca209b27c71c465dc4a8b90da2f733e913609f78074e9052681bf0c3c38f0a31b97043da71a2f99882a049f9643313", - "1352": "7397bfc1a34604742a6a91289c6e10bb8b1afdeeda3adaf29b9dfd19c6f3b64e324a4f9c8330d092956cfc0202e9b38e33bb4f7073fa16ad26ecb6ed9404c0ea", - "1360": "bb2c8feb52c397329eabba27e05fb2d8fac59a9db94d3ed705f41ca739b6dc348d26df35bf6514d87fa65261d626d73e40e0b8ed66180a64017df77648e292d9", - "1368": "36d3360c03583c6038578913c46effbbf55456fa1cc83075204fde00c84e2ccc83f00ce0b3f816e68d6428f4a236a053d18e5f507a88d3345e929bec0dffd3af", - "1376": "5b969fd98ad479a45404878d67c436bcb620bb9bbffcd05ddd0f31191e90f5828e7d6fda906db4c3ddba583cfea112356a66dd1de2e160c11d3642928c99404f", - "1384": "5bd3668b08ec420ee4ae0a93026e60a4c1e8f7ca92623c808c95598142c3b56b1caebb020352c2f8e84277582e85d3f4013befd4edb9ea3dc35a59330ea6fb79", - "1392": "93d5d197e24e374fe667ee6674e510fce164d624af55acd12753891cb5f2125363d22b3051300a6279b8ec7f50fdebd4b95306b06afb9e974111862fcf5ad1d3", - "1400": "f6c35b93c716c4fda86fd587d51bd3f121a4c187e1cef2a08169c357d273378d0ca6e450b2f2e1a0fe46436249a11629f8dd8fce608540d2211ac356afb1f3cd", - "1408": "30db9d4f87d1ab1bd14675db13988c529bd6685a2bc75cdb45bd8729bcef6b71f70298f1d5dc332e8b0746e132bdd152107d4c71129d684c7617935586aff4ec", - "1416": "46e058778ccb2cce7b6e0b34e052e3466e8484bb76695066b3a89ba008e019cee5f3de0eb8588118367d29461b13d2768f504028e0719a3450f3601c91254b88", - "1424": "f80af5d0ff64156f0e3197cbe2e55fa5fb18e8d27420216cf2a88b1291ec7aac64f888590f719d0b4fe038a8caaeb5157e5235a09778d5ff709e9c1ca51633ba", - "1432": "d8a7d41cbca08005af8e9f4b2484bf853f4774426b92a1cca2368d1ab5acf6c6d9c4a9f64b418b945426406dc61ab826e01aa6fa1c589b9583a3f1708c6df879", - "1440": "66a91e576c23359ecf57a9ee2b6f5ae0528b16a9ea0aad0174db0eff6424f80e045c437ce9cd1dfde46e83e883e56102d151db6e99f7aa6ce1179a72f39563cb", - "1448": "5099d4cb4261ba728d2472bdda898bd064996d657de8b8df20e44fd7e54eb10b8ee170f5e16bec8d13fa1600d93547d0f45e15f3ba260533638327a75451e2b5", - "1456": "66c199d0c1f837c45568fa6a770489544f5217bf57c5f5e4b3e35b6d5ab6f71c3dafff2e77c1548c605bdf989c88e11ebaae395c0053b5aa9370174fc011f0e9", - "1464": "72dc657304a15e6aef791d78b5a049059ccfcb72c551d76969badc1db5b0d6e8afdf448317074b60aca0818feceeccee22eadb05c8c256c5d042db6c1db65690", - "1472": "30fdda65b981f88576004cdfc6b884a8493bbd535a7a96ae4069f3f9e8ad65ecdb37eb71de9834458af7df1116ce56bd0b1d66bafe0e83b9a9bd14c75e974b5d", - "1480": "35fa6894e2d0552b52f4152c01dc488df5941fec9d35a50d45db2b478fede0228fdab3b306e5c3b2f80d1a68e57f2f21b7e13030e2f04ba7454d403777436ecf", - "1488": "3fbdc7a11aeda7a8ffe45d3b1092680f199fdc1427e8c3e75fb441bb45d3ff19b082129794d8e3834907869721edd41f53b54dd12cf22b9d1f255b31087492fc", - "1496": "16f2dba6bedfc2650b77180d24a0ec30c2fa44b5e0cbb8b4460cb8cdb85199618d2bc85c7798bdde0c1564c0e89ec507fe7d422025660a0b45d91e90a79ce475", - "1504": "69670cd7508544d66333c55c2072dd73b0a5434246383e21ab94fcbdd5954605c98134a9c816a806276f9ac62d5e3295702b36b42234c71f9a939e96bdbf1f3c", - "1512": "8dacb982297db76acb8ff8bd9fc56ae6869f381e7af03391b2f06df98f8cacf54806f6cd287e5034530729d98e9d09495677806c6ac22a135acad51526d09fe1", - "1520": "24289e581e8109f6e02fbe93dc01c77b17228a70c41337d185be476714fadb418fbafa90eab52250204ea7698b491915e5254537b9330549a49a2cac8f4976a8", - "1528": "4a423dc696e3dfa70e1a1aae4de9f635cdf929d7e7ea26a63ce78fe3287913bf90b25ceb118e7a7344348e6b3d6936c1dd0030039aedfbf915490b977e57442a", - "1536": "10a47f96cfd49ce3b69e3a4cdffc6c19c415dd942a4fb3c97a7aa6cda36e6febbedb20b4360f111b7a74464dbf03af4edceb04bd4472e65f627de5cf1f3f4c1a", - "1544": "83243558fbb96fcef43673d0ef8e4263c47bd7d84af0f21e69182d9954845eaedfd00996eec1efdbdda9c96e6efca98213ea23fb16455c8dfa7eeaab1af48f1b", - "1552": "8088ef112008ea0743df55f1dbf9cf5365026d768f7e342e780b44402ada96c113dc372170a7be1cc44d013e5a916c60f81b37754a778611d476dfd23acf43d9", - "1560": "8e8d1d497f48922bb3c054d7358abf0156a049d5b09fe98b0adeb3857f16efecc09e76cbf0c1478f67387f1a539777c81ba501b672f121e8d8258f90826ba3ec", - "1568": "21ff8e66d6a8b7ea4020e5bbb1686d24e097dce089c897d5b8820d6c69595e2fbce293720ceb676646c6a0d5975a119b99b51e5d2e5485a2ea1dd218ff6d2fce", - "1576": "31c6c9f852093eda2d6bd64fd7cc9ed1ca7213be4471a3e3e200d539821ce610ecf6d1e2b82b198ee7906ee46df2c1ebaf7d306df5e3d6a809950bba67d9e662", - "1584": "7c9c9034450b3550106cf524de388d7176aba7f05a8a74f0da2568992122e0b6570e4c6ac69da29556de59feb2655671b75cab7eb0712eb0ef6f630a2296dcf2", - "1592": "101270d1b4b245f0c4202120a2c0241a600f11ed96faf263f1bf2c6961f548d00592a8c1fdd36c11e41dbfe68e4bf6f8cb44b0dd57c2c06dcc59fdbdcf2556cf", - "1600": "98190338466352f5065473580d613aee82cb3aa2347267c3567138747c2efacacee6447937e183603b44b5cc7e3a86980f03e6ee5f51ce576e3c7d4260fee18c", - "1608": "b820208c1798abe54208761576eb0ffb0c60e37c4917c82a27cbf48e138a069d2b6d797db5f98523a8f41007e86a24efb29044c66151d80f71ac3bac18506f2d", - "1616": "04927292d77603c118b7640201a8c37e7c53063658a356f9e90bbd064c904cf6e9c3c7df6b108357c9853d27f8227d68bfb657b10f7cfdb2f9ab359e3818a607", - "1624": "2b28af09dc4fd6c5277d78d0fb3eeb15ae41153ad528a9d87cc2cbda84e2131caec0d0489fba1710cacd928f1417de63d69e7c2a1483d45bdd164c16ca36c80c", - "1632": "32d737f5287959eda3df7e0f433167f231ce342e1e2df4cab4f1e9ee26e7e3549220fb822a67306f5bb1e3faa7c0189b06cf1d9b5b02250bcc47e3fa7c3bd275", - "1640": "b002334f1090ced4945f2ec4592ad49f5e344cda64474f783c6bd5211372966d2cd090cfeb2b940395f321b2bbb5d0e6cd7bd6f5ff614732f1e2f245697a7d77", - "1648": "352d74055afb639e1fc6b5505e3f471cfc909fdc417241b46c130098129a1ffa3951c0766e1c95573232b180cab91cc0a37a477d552694e65833c2d9db2f87e3", - "1656": "60b3a05c2d29a0c3d97f5b556e0748e7916bd8ee542e8cddc848ec5b712d23505edc734a84dc1f5ea291684046fed68d8fa4bc93ec0b4c69e81f2095fa24c546", - "1664": "f78295ff94c0f4f16d57cdd17b692b84d7ab1c2d5e250fdf1952cab19f5a867d242ad4376bc8150b7a28440aed34e37fc6e28604a124f8519d382317805c5747", - "1672": "2ddb128811d7a185e231395115de1ca2df46b0ffbf7552e1cad09b0b4a62a36901565ba157437aac7593bb30869585461169c79e6e17703268800bae1c145f44", - "1680": "b95e525a39ab8834947b5e2d06ae3d875008203f89ad3587d364799023c7d6dd09dc365f9095de81d9771e33c94f34629aab0a619dfe567e96fa0cf0b867bc5d", - "1688": "757d320fc803218cebd466c84777e98c32b9c5e214703b3a62bc95abd0e2bac809a5eee4d2d23b711bb4ad07b8ff8b2d1c78b4b54855edad4a0f679d836aaf06", - "1696": "2471382c3d21e88aa01b9e192ed214fa4cfdb70deba74c74b0120a8e1314daf207ae5577e0650f031e583ba25df826de63bb87bbf3adf867c34f87177f8fcd7e", - "1704": "3ade44b75cedb96f717dbb324a4b132760447b2d3029111c32b228d388b3688a6c95277f6bb1f52b55a131e370a3b7c1d28d9b21f377e1fb0cb3985ee4f246b0", - "1712": "e40ec388329719a4ad6c7ef6bc5858e7aff7e4d604dd02b7d843b1eccd8dcdd4a4d728998c53758d15e798264559cf62725dbf9d520b428eb2f61e01cdaaafb6", - "1720": "cabe9ac40d1d515894082106599daeeb141bdd70affdd517ba3b2ae3ee796fba2ffbbeb2b93dc68d2c0c67f836a44e77e8c4ad2e54332d9ba43596471f74f762", - "1728": "c84222fd39c4ec826e0dbb70eb6a8b7e18d11436a73f0966b5eae1446e6e83c04f0a38495749ed2402c4b8f9a0ce8ec81068d914249097244cb5f6d19830333f", - "1736": "48ea0ba7e2945a4f684cb0bd933c642e59d597e6186ced1f89d34dc287eebe9a2398eb87d3876d8e58d432169200d8c52830b75f234ce2477644cd0e298817a1", - "1744": "f996965dd542705915de23978f09e8ff776f0c90182cc0b7bc5cb31683ab090fec106b7d084cc1ddc13d91a971fe3d4c17df2555f63605531cb79d44780ad0e9", - "1752": "d614df5e660126baae64c6ee8f3429b006a5d698a7972949bdf699c1d13aea638ea3fe63ee1150dd49962441a9a651c09e2101d805afaa801ef1b1e23c2de715", - "1760": "be23430294433a39c7327149c60186259d713c1e80d75e224c71f486c1b349bd61cb6d6a9c601d055af9081481155bbdd785e7fb1ecc14567db4f66923497c68", - "1768": "a0254a5e97e80b3e57509cefe54d5b64c716a676b7409000babe1de4b55a5cce05ebc01ce114c8294faad8652505749b32e7a64f6e6d27c02b24e8b7112e28e1", - "1776": "6828e84989c1f0c700cfcecfd3820945a663b5b2b4c2df1a8e1057a23a3a2d1b93e553953c6d72966a7e104f8aa61bb39f27251fa923c0510bfffcb22f35b02b", - "1784": "02e6d1c0575abc2856236b62d065068d5f9d9040ab84c1741b1e241135ff0c2c9d7061049f19c7add0ebe6611a9dfdd5f671c64262398c84390e1c9bf2bfb3af", - "1792": "64a7aca9c92428de5016c0c8c3e136ec5ab9d1c5cd7df2e1e1031cb4b1fdb9db714f5e4a6c36906a2b37b5f50b0c2eead3e11cfa47fbe11051a8c7256d85e311", - "1800": "d0f2a24bdbe0b54b933455fce07faa562de6be6b86484a36b3f44c4e2364a708f4018bb3e814ed964fa9c9fa59aed2bfac750836340d4e6bdd203825165dd223", - "1808": "822ce820fe6349cf23f8e3cc38eaf79d54303103cf2b5c06fe4f61dcffd861c388fe0df2d6e93e158d2ae7685b843808dfdcb076cebc7b1ab319b9ae7fc6a804", - "1816": "d7aa08abc86c46a3b831abf4be411e0741ce5318753f42b52a93dd45ffe29253028875dded162cbe82526a4f1a4a69015a3bd6fe4e69d59b184c6f3a46b0abaf", - "1824": "d4372fcaab6ef5f1e0d5835fba552f0403f4b5663f639f4a150f2f393c454068eabd747248877c90975d1eecd611144e8cd44381d6662617ce3717c3d93ec6f6", - "1832": "369699f310f34765bf21624591c8a9e82677df04586e869cf5462c888cf70453ab5233b9a38ba90dbe439e16af969cbc35afc3625b88b1a7c45932bafc7da0ea", - "1840": "9f7478927808e6a541e0bd3e75d8cef9b7ef4c45349cf22928d7bdac76d4a5de2702515e4962bdc55575a28cbb9f6c81e68794f9e2c4c11c2ec0922520279526", - "1848": "3dd5e153b1c33b4d3962eb603b412a6d5a9191f50128414cb6d6a8d423ff7f36c4c86c299e09ad50fda1578bb54f50bca6b2eb373d828e8a4e33ce0e03788409", - "1856": "2fbf2a755f0abb249ecc1bb2c1d0cee851d9340aa7b4687f72996a21c195a2be30e9a17e412af10026fa334e1e4a1534e9ea7d03c3a85127ce645bcf51d6f60e", - "1864": "6693e576c6909ca31b431dcaa957c4e10b6c5c28aa8744766ea6830df7eb88f4e4dfae3791781cebfa61797b3ef3dccc6e8d1ff1a4fb5ebec52a9a9eafd7cede", - "1872": "d9b35e5a03406235d6ba726408f1fe96edaf42393b49693ec5bf9e42ca16f1d494bce5b2a423494c89ae4dc0079f07afe81c9d012a0e5443a0d9c7fbaef8af62", - "1880": "c12a6cc263f5a9ef2b8f5540caa81b1fb0735318272927fead8d468a593c21de303ea7f78d3f51d4677567f21967e3abbd66091a0cdd85c178d10adfc18bfba5", - "1888": "380e94cc9087c0cba882db5ee7e15de26bf8d73e94cc634c57f9974d36512b2b989d35707b7d2fa783888f654c47adceb5d864b1882877beaec4e461456e937c", - "1896": "5fc99fe0029ead702b0aa6584d2c0e20f79fbfd10e53845f905d467bd464d788670faa1457a4ef7ed1993a90e27f33a444c6f8d1a8c298694f4c95e53e21c7dd", - "1904": "5d7827074c55620bbefd2ee67e311b2b4c283c2825617f48cd551f6a635f3de50ba9a3643b713d60feae580fc7444485c082c9d735300f367fb0f420b8dd75c1", - "1912": "58694fd4c59b5c4db1890ff5ef2e52b104bed7e181e4301d6e8071561258a150b196f728219bd57bb0d4eaddb1e7739642a9d677826adb32d03970d12f1f74c2", - "1920": "a5dc204956907453eb6758b2b927100fbd699998e4c4421fbe34f61cb775de8a58b98b726cc5c3608188e7b373901abb8c338907a2e806deb6160af618f62c72", - "1928": "9cd20d618c957a938361146e5cdf2e8a29ef1db685b45c3a9e54f52ff559649284ac9ae4e6c1b27637acdd020c6120a26c1b907334665fa5bda3079ae4375dc6", - "1936": "02307748c4a3306f7d6da9aaf64ba60a11a390f5e30a72450670a0a7a341747902501bb42bba177b4e3bb80343d203279b3dd9721973ac62830c3587a025041e", - "1944": "9544aa7350c04af7f1bf1216f347b8131921ec32fb9aa5a70b265f2ceb1b462815edc55f8133fd5f27865a9449b69e1ac415aba8f5b83fbb9bb4bb4cdad7f1df", - "1952": "b2374539ef02789bcd3c9209dfbe48a9fbc4c259505d798c47f04d34b5a5bdda5ba029f20a0ec9346c39de7b553c7fcda7571296b4d5221eb9560ae580deecd3", - "1960": "f406bd014788dbf3027e812f3e9178ae9bdc808c387e54118972506e159714a62fe4a0dc6dffb069f1a4f78e52387cac798bfc93257db704837599584f253479", - "1968": "c1ac6f400a75948e8ec2d282222ab43355774f16206767410f7c475b988091f1f1be52f30a1dcf4e9d6b63ff343f9370da95a2fba8c5d44d0f4970199e8075cf", - "1976": "ff94a8b4008719979f8f16218d76c6e7770fd3be67ac7c979c87605caabd935b82f221858ab03af18d774bdb9e5bf1942aa5c3980353129bcf674c8cef11268e", - "1984": "d4629a36bc61e1c2a967e452d05bdcc926a13927301b905dde24fc0ef600cd12e8a03daa01fe465b6408ae5345010fc306c026a063841eee91088a0c6643b78f", - "1992": "313c8870b4ca5372242d7a411f169900d44e1f62b463bb0440d77158bea2f7b4f048835a5da8ec0e41bed0500a1a4aaaab253487e7fbe9c6332572604553051c", - "2000": "0a75e90d93b3ecd75132c250f4102698f3e4c35cc267490ead55e5b4e7b0f07f6cb04ac85346e75647a241fbb745bf42f632ec594ab4de1519a10cec270dbc91", - "2008": "951665b413c9a261593a69e903c1f03abee8f3bbc7c626fb2e22d4d28cbbed75e660ec21fe4100e07b8865ed749b0134a59e22aadbbd7d07118178232de0659a", - "2016": "b6797b37b5b94a9ccdad24d1d86e1a9def9465443b74aece8ff775f72842aae10891a92e4adfeafbd16a443da758528b4cdef8c1361be07e7f1f2b97536ec57a", - "2024": "e68bd2b485e44761724dea1f89147f8b3e7cee8eb555f38df05c0e4ac19586cf96006dee2bc6e57dbdf7447f72a4fac823c44b0538c07afaa2854e2c1a997761", - "2032": "35f2743324d7347d0a4e38639b04249967c3b16dd302b0c96b712f1cdeb903ece309f97ab1bb7820e042d3bc1fff1ec0a9995b6e8b7cdca6e0555c8a662b5eed", - "2040": "8532f096207980408feba3b0fe457f305d57975b2d2b8950b30baaff88fb3c315eb533eb9aa351fa5d4dbaba9136d31dcb71f3d0f2bad1484ea0ca2e15706e2d" -} diff --git a/pkgs/pow/corpus/simd.json5 b/pkgs/pow/corpus/simd.json5 new file mode 100644 index 00000000..1713891c --- /dev/null +++ b/pkgs/pow/corpus/simd.json5 @@ -0,0 +1,260 @@ +{ + "nist": [ + "51a5af7e243cd9a5989f7792c880c4c3168c3d60c4518725fe5757d1f7a69c6366977eaba7905ce2da5d7cfd07773725f0935b55f3efb954996689a49b6d29e0", + "6fd2d5e6104bd3966283321234cd40f4ed380cb53a03911b610746466c10a93e41c9b745c79dfde3275980fe82fc8372efc406a9b0bdc8c63a375954e63436e2", + "6dae77bb11d866244840b90196d8268d7b4564593fcaf1ce925e672eb878f8c0ac4fdbe547c4524275a5c982a483c97d4d92ef975447f454c2049139c71bd13c", + "a15ef9ab0143bf37807c1d5f654106fe1e877adf94aed7e1746f452374359e904f3f996812e6ab16ffcc7c358357dc4e97fbaaaaefdeb02b8e12d59c88be44bd", + "a4e5c8f1b1ed3dd14ccaba9f2d974d529e97acc476fe6fe2f0a2ace9272be66452096b561e57541cf16c85a6565401f55bbf9bac0dfc6f957d63966112ef1aa7", + "1255f276d2d4ab8f15941c0cefb66d1c037c69980355900d3a17b67fc1fd2e873176582ac5c340ea8c4bd96b5b99e656899b18edb135c6ccdc076c5513d4f9e9", + "f4d4cf80bef947f7851e055c3deb5d54e321805ed3229993ca4adbb36cb1ee55e6e548092dc62805f7f34a02a45880d23c82c8ef0a29a61f4fa65e2022f8dc46", + "c5090134c4719ddec9e6d2b81f80396b8097a3131367e6ee1707f0ea972d68a80d170e9ee91f2c9060a6ab8c6711bc1e7c6788d1b3dd728c1f58cf12acddad6c", + "d847662833b67704845fcf0462555277f6989d5756f2bb8259b1573484f1c6f5cb491b3838af95bf3a7c269c50c3c8de3bf0b2b7bedd134ea825c33e3caf4e0c", + "26999df82b465a272d5cf97114876dc7fc356126bb129026d800234c5fd20930e9cd1dc57633c5bbde62a282eca53c861353543b7cdbb2ea7ee041d77f5dd659", + "bf127ca475adb903536c96b0a129eda116a8501160f0737c2c5554ba280a75084f2c82b80ee03a6261074c378b27d29cf2d59d653bb517253f2ad542bb21b386", + "3d8ac089020640cad27d99f90f5b217789725185a8cdae7cf5383afc1fccfd1a36995ea3ef78ac23872e70c98ef805753a932c5e8b6fe1e275e8e98c0246ae9a", + "444513ec2c9f69912edbe6dca5f2d399c304991e0822d69fda31df1f2ba6b7f3af3b51160e3a35e504af7ee99157c4695387a42efd0b591073b5475d488c5848", + "76aa046b22a8ea25a7e90c32ee755b285c246e9bb7be9f7b95cd0f7cf8d2edf79ae910b28c81640844fa076e24a9bd7e7042d17600eb132058d92f12e453e698", + "7c9c0099e98a2f9800ff6d3817f63b8fba9f1c9bb73f63fade9723640a0006faa91f85742f15b84ff8dc03b11baff45b729efc53430ab956dd74b0c2541355cc", + "947778fa75b2ff95f61c1f4cd4fdf243c9a84569e688e864ed6f2bacda09aeed1ce80f81c42097346a0addb219810fee8044a482e613187a9407f0404979a1ab", + "bb7df15995bdd2877a89bd8b49fed6ebd9e207048747ae934e3ccdd73301fce2f82f730f686e66344fb87cea952fc13bb2caac1daf5188c927cea93cc5792c53", + "ef008701b7788acd3af39596640d7d4813d44eb25c616c3f7d30707bcb1bcadaa87cdaff9f8e2eb60a10bfefbee8c7dddc05770c4363925331db4eccd6051329", + "d363b8474922b3404d96c73b4024fdc553a5d0ecb357c9349398f139499c208a2f01e58e25bed90422f783081e130f630366dfa3ef86dac2d42c80198b8bd3d3", + "c2e23345c6fe48335f27efe080998009de92dcaa0d647f95d124cbf8300dc3612a2162054f47662f143d289a168e11bb497341bf9d0e64bf96ee049769d328f3", + "f7e3c491b98fcf330c03fcf5cdab58fc59c2c81e4226d68f1895f98a517f43cfb5c1c69683a07b84c8ce9a452329099cbe349d9c53b640f6a5f66e90176f482d", + "45af2457bd500ac6a0a5267641f47d7428930072eda65596f240d85b76edfa3c8c41188681c4606b43f8341d70d0a4af962a0c78d8defa3fdf5095d856e51f2d", + "735968ec18b347cb97017baa580c9fe56e1b59b36cbfa92bde2b42ac717efaf8c1d0597557657643bb2fdba262a0756d38fb2575d22bb522e4d44e778b4312e3", + "1e3d1e9fa106b1a6ead56a1b7670f383a9114f2a8253cfbc434b7bc791881e2a1db0fcbfd4d8a78794b653a23a134c816b5a46f1d4209be9a256649a04947608", + "4b7ff1321158b4175b4d118a4ec4cd385443cad1adb02955128e79a76441cb2db8bd1f7d84788bce55aa0ca8537da7ef66e2721dad1574ccdb02bf27e9fba918", + "ebfa744977d00a28d807f9391c64278eead9c7040c63f978e58c9e73a4d7cb6c4993cb7fe22db06bb24477ab2fb71d2b0ae87dd77301143b55c65ce4f1ef3665", + "23a610c403e4010541f3d04454ef12e409502b5159f090ee4843c9492c2f9cd3e1b8024e76f5c514c686203085c2206e85d29603ed9e8a12257e2e172e460a49", + "47c8efcc9d9b70ee0e706a9f35bdbc4bd5af8f678a3d99e8149839efb682bf424b17b57e3ffb9de8b2ec0b057bc7605d73c0967a2e25398e15d3ba79702e6f8c", + "74e86409be67edae17d227cfe19920b4b8c60d5bb64a6107fca9a352cbb6a81eefa6d2b2337fc182f11bec9dcf95897334855b8d47f075052e0bec62b1b05b66", + "e72aa8f6e9580132e199ef089c759a2112737efc05c69b5f5ab1a835ed5dc1f01253faa4f374cdbe93f6dccc8c027e093a13e1b8c364c96cdb686a5b7a05fedd", + "5b220d643ef39e65a26526279b99cfb5b2c63debb232c36c1cc6b9847ba3a70257e2fae38462c30e82942b400c649006d7fc750bf92fe75df9da214d67550be1", + "83fe9ccf157b014a33a3b3b7bd92e3852903f3b2cfa5d333aef7773baacae15ee462d0449748b60f297142ba50a1d2872419fb2d243195c49783c9be721ddddb", + "7377ce2d64c09673931abf6eef15c61b4fcd860acace072f77fe0fe0f5942e5a87eea324105958f0762c597b4747bdafaec52dfabad669cb2ff4f097722e119e", + "742f5bb38e9c0c6cd85f53371992c733405b4df4ea56e865f6b3c0be6bd25beff201059e1ae40de7ddb3522f5e48174565792db5ac0294d522def7e310e89a47", + "45b7e534e9516d37c5f9f4ee320c10cc64086adac551da7938cc3d878ee5a2af522830d8cb7903bf7079162e62ce3d55d48c813ee4f246bd0e4d145bcf124c2e", + "a766f8cd24b1a357443a8a120f9675547253f3437b46f78cb527c89799e65085c32cf9fcbcd7800efcac17923ebfe6ab1ec39c27d8f7566c0b171decfdde20f3", + "800f43294b4f7e8284ef6bf1c0b67272f8c72fce8ac6611a775f87821c9958be25e5fde338a328757b246ac624a893b21ed745b6207129c59d6b93ab01a84d57", + "ce11519b364f6afeddbaea586934989626addc0224e7ca7db9e71eea24c7d1e1c61664cb4a29aa4e1fb197b9b941392323e40dd1630810433570940c6b626ff0", + "71b55bac9db48f08e21574a4cfa7ad725d86503c0b1c281fe8b6cab7e797f69feb7ec94508ede5e5220af156f4d254ca8c0fed85d49e4e365ec51c82d2409593", + "9e859144d0ae266276f31236a963ae4276df08a18a73b7bd82bf9cdce901009ebcf15a7117178a637587f573fd5a9445498f3053cfe6a38225ead26b56a1e3f6", + "c5444b9972c4fcf05e9f7c8b1a677bb18c107d0fc8c22b2fd2796e1345f2a870664f765ae4e1c798a8170962fcc7ac98405f5552e283bf9b465363bebafc18d3", + "364042b76ab491599c1e526162cd7b74b9951c1a2d709305f1d5ef4f042a83a79601db389fd3e5eec31b77771fe0d40ad3de7bb1be264e931a2a15e59f7ff8b6", + "86815e06340991f7c08fdddccfcd7cbb5e726f58e59304de88bfcf211f59e9eec50fb78b4f4ae6b01247ffaeeae299fbddf16fbc5a821741a81d2ebf4c14103f", + "ee11b3e3123637cd7d956e8c798dfb5956985b15432bb1df3aea09127e5f0737c9ef6cf65f1e87d17d0839ad126a313c3705d8503cb0bcf8cd890b20c8bb4745", + "4a201ca4e8b1aec19882201090505055d3def3013ce9554a1c5727e630eedbe86142332982c2b872f5e7fa65011861b31be99150c30e3fd3b9e8f94ec5108c5d", + "5189f39a3834a6650a70cbe9ad95ecbfc754ff9e9323339e8970bd821192002488ab01cf2c3c3063384e08bb3e20cf6a6ff5c69dc1d03fe21c134affffce6448", + "923ab97a48fac2ad6ee986ea9b536820b77f687cea1b339897ab7cd67034e712bcb8aedeb7f4ffe009740d63ae92743164a699541df25900a6314ff3bd570a34", + "78f281f0b2b688fa72a76ffec48be6ab804d8298e8145ea1ec54cb63eb26800a0e3c0dbbc6fb055977b15a8045891af6c563acbf048db7d56b7a15c2fb1102c0", + "bdd5d51f2bb70e2ea7b0f13672c89425c2f541e0d0c06a84cf78acd4476f030bf6335e453ce30c89f3e4e8a0bed0005ce63f2e83114ca569d37a724381de25c5", + "9b7227e2d357ef1ad91942a4903d9743a9ad7d782357918218399024b2c3e8dd55c6aa720c1c97efc89775894c32173b57693c63819fe84068ffecf614fbd9ec", + "1ac11f1e1a6269b31672e496c2473376e0334bd6932ec34b3e5d723fe117e366c6383260bbefe1b7b36e023fb8cf0286142556e365a68b5386c060e58ca3664e", + "c4f1a0dee46fc03ab10db739954429b82a46fffdb74936ff15f36293c5f4ede313f1609ed275badacf38a66589cf43a96b90520a4bdabd1f4936d832a12f936c", + "4dcf2165de2d4e75062c68f716b87a2502a5c31ec24c05b6294d3044375581bec390a922732f88b036b258fad6ef359ec6276076e4031801853a4c69b1433010", + "02cc09e41b319c30823858d36ee90c5c38d7c601f2450ae690b6f4582ea0113121539d8dcb8d92fb8b0311a1e6b1dd6c0179bd8d54d783e3dd5b1c700fbbb405", + "cbf51d6416ea564366895ab92de33dc9528bf41fe228ef995476ed1100c6cf7fd9169acfac44b210912befaa4aed1603e03ec4ccff02f2ce9d13c2259cfd0d8a", + "5b825361b0b717dafeae4bc4cbc85724fa0da00c22d24f9852188da49b3d029a526b61062eaf3f6093f8aa614cba3a59325686b6267ef4304737f8f363f65f7c", + "88195771239a73841896421da5109ea3f38c478d3c6345f9c485d893bfd356bd55599ac4da213675b5fa66cbe64d7cd3b8ee966f4c69fe8af774864131338294", + "ed251b31d11cf7037da859bb03329379ee2de9e964889497387931e63f3f7ab62ae11952c396ea6a63b5849da1bb68fe735a5ddc57d6d6c93600398095c5dbea", + "faa04fadfd7986a2120581ee4e82c75f96fc69213c64a04ff067b112f52de934599f20b86ae22ed960958dffd29d9c8f88ecff7b46864ab6646b73da67ce28e6", + "2d9af5a3f46852d068e08d7e9aa63059e688cca454f5a4a0633157f71c2f55a09cebc6c98b464efb911a988153dd9d65e42b00976c541f3f132f8bc5e42e3434", + "f9cfca44696eadb1a58ed8c1fd6e5b9e3e90d1fb107829b85b60f71ba8288d8c885a3e01eb8a471b3d33be026fdcbb1d5722290e354a42cdd9e3fae4c638e7f8", + "e3b1674baf0c55f578786a20895273926f6089020488180c14d202d805bfb7cec977aa0e0fe124b3dbf8d6ef3ef72595ccd055b4c2adf6ba4d669a9429985a68", + "18eb6537ceff7304b9f25db91a58cb5f97fc5a125d6835634c4687e71f8e01e8a116e846aabaf2c39967a1b203cc17fca09d9bb8c335df7840165855706f1c33", + "90ef3bcece1726088d0521ec848a9cb75d7a6e5013dc7d8dabe6be1c37f50fd080cc19c552f82e38b3880db8bdd96ab6e946247bf7ae171de353020ac73d467d", + "f1c23c1573c37f1491606318203057fea497cc96edd0b307365e76f4f80624dc618c1726b37896f79a19ee48801dfe17cbce495c77c2b4ea5d9baee6b3c3f19e", + "3f70591d6934723a6d997462b9523515cd8a6fe27c07e3c44fe014c58980ff90e439c46260ed34183e29e6b913b524dd93086e44a82d7063f0ef243f5a3c7235", + "b70db1d13a6ba7c7b2d64a67003059be0180c0ffd4417fd319c4f77d11ac6a46809abe7753f8c219e9c34b7a3cab980e87787429b0a31d687c90a495ada04eb6", + "46d8de2589cb70003961c912330262063959eea7955e9a9dbd7063c3ce6819aeb3f4552556ffce1683b45393e3552dd675c5400df3dd3f777e186ed805c43561", + "9387a83d195213af6eae1a1a8bc0680938f8d408bbdbeaa4a3453572a510f1212c5da9dc853286849ccf00d567b1ae0a3729c57e27b4f9d1268fc344d524aebd", + "05ebbfc92a254b282dfa9a9588a59886f2f74c9ec2617209654d4ccad53e812d776effc1e8c638d800426dc80df871c1a5ccc9fc04bacee60bb4c483c8c7ef82", + "fd925c663604af23660cdc20e001e870209640a1b773ef82ce84779fd72ff0f0fac4c0318b9adc07d70fb12dd106ecd6c7cb8b45077d34b6dde2e164acf996f4", + "a8de0c680e94466d3cfe19a5068d4796c33f6e2baf7609a077d996d621bfc38762b878e0f82eaa95b9fcca5204c5de6552cf99ec6f806a9fa9d6676095e3a4bf", + "673c2849f0ca63dd1a078f5009aad7c88f4010bac635287dab7142ff71f28ad97065d6a698f0a8d50c34d2113257c000e472e119775c94ed6b96c99cd76b81b8", + "3527da5ef06a1b59065987d79294d6620938b8e832a6f2276fd4990d9bddaff5b19b7c88e9ef73e77d0860f17f85f9c22759a3a786633e43382634739d07b86d", + "011cf28114ac6433d69ad367262de17636b8e0f70ab27f12f40e3bb490f369c7f20e7b8a3779e7ead73bdffb428603140cb96354f020280b230530d6578a18bb", + "36587b6e81255e7e627503376ec6a54ca1420bee542fabd81ca6a519c8ae1f0f8880025cffde82343582001e9cbc915eb7a483202ff416dac10bd539ac42b738", + "685d1402d4f3ee31d67388b7eda6269c7ef9ac9d6b908449793e46760a77a522b5604f397193c7d081fb06b030482195e3e7497b0f66c2583eeec5716bfb998a", + "0c3cbcba21ac3d6190617e84438b75359f10dbd7d3693bce81066d6a9e6af3ad9c278930bcf7af6eb6689db328ec5e983930316a0a1f10156785c394b932f9b3", + "dc808ac503d7aaa186ab9a5ab75b32002a9416fa34a787a693e0a7ef519a2774ac47ff3a2841d8b89e6616b9e4d8756a3b3985dc5535cd7925668eed356a83cf", + "d3e42342b4cfe3201be483158f0f2879028468decd4c87e0e76d383346de2eb9df528da714fc7bdd0e46a97945109809a000fab1041003fe623740edd80707c3", + "c51e398199bb616416c123694386c896d34bda64d63adfc41fb469865ec2727580671311d780613b8f36290cca8d87ec339f090aebf376af3fc2d6f6cdc88305", + "4cc7e846463215fb8e0855b733ed6fc41e5d2c27d0c087119a91b5bae4ccc14cd85cebce5e5929cb5f84d7038b35318346f725417f05a1f7615020e4fc6d67a9", + "8d6fab5d2c5e859048ebff61eba20488b4df787fec8143ba48c4aba2c79a8d8c4aa35400bc5d09ebbd206317bceb742ef3b362f0367f9e794e99f92d29cdbb12", + "5fd0fc10cf0a20a1d13325a46450c9678eb26582041907ad063073a2eb09bbcbb92f234295aa26fd1d4d41f08f63258a0dfb65c453fb4c42ee83fdea1184e4b6", + "c67830d808123b57d6b02831c7db78a25da52ef9f3c157f4e579257de062c4441909bbed22f68d913859f902ce9b408226243cf69bc7106815f8b6bc57edd08a", + "c80f8c47d84adc1b7df6b5f0575f5a7a78a4b5366f06420d205e887fd3b5a7c3f7fb36fe1ecf9dce6871e6eef42766904e6164849a410b7403dbdc94392ca036", + "b0165b517a4a1d8c7ffdb612a9b4795647a8e82e352f32a1e858d577d79221b2a675dc0d8a0f258407556131c49297248978da95169e8341f7f5046b9ba8cd52", + "9a15adcbca581dee82869beb8f2df91e7b7e496063d620f35705bb9f132214b5aa467d242559a5e7fda48791f5787d12cfd1dfadfc3894683839382da186428b", + "271ffde774199c16ca8ad81ac38aa9fb69be167f0e1ce4a8b6265675b7c217dcaaf5893abfb98b4b75989ec2e3d489b3c2ac6ae478947d731d7a777ed8689a95", + "b18521abd3b88549a0f2cc6ae65ce68056e0500e18ed7bc3f52b260b199def4b2c91509fe18108d1774e10966cd91de332b836f37fa03a60a1fa2606324ca6e8", + "f25fe00cf0cb4f83aafe177cb53767dbc3af0a12255303a4d7fa9e41e947817f3cf56e45a144e74ec8460ee7c337e55545d70f5c23450ec2954a13621c400564", + "db2d1eaf52470f6cedc3ece1f8c2ebb50bdb14d9c8d9afbd12091ca30e1b765dea91a5bfd79b47a61877f3ea47b591b3004f9a441141cb08de39b0026ebfb3ad", + "75153d37bdabaaa502ab005e801a7344c41afe689932f1e8c7dcc5c47f946aa478793cf7c04043d6854680f72b45151167b327ca5ea5247b701abb0d71304ef8", + "2bd52fa6932533c2e9fa41a6ab48ff908dbaa29f20e129b1d044bfcb62e13cf4fc2b8947d5244eb07ef21477f7e570a66c66f4f5b340d97b5c28dd1800bb93c2", + "f63e61d9efe8398a6e3614f0d54674646b179a77defbbbdf88520d06a5f5f785664b1c75127b9d01ad329aaebf13f69a7efb123bf54180d147cb032bebcd355d", + "ca3edfbc690e91dab644e20a1ce7679ad9b9fe4da3ccd903a22d85d21700b99ce3a393b6478b8d9e41300615c2a4a767649109f6cebfe2ddbfdb3217363fbf78", + "81942e44402138d1cf8e67f4149fa3c99be40a901ca7770d90cbde792ea847afa9ecb6fbdc9071aa631b1717fa553aa10a10642abd99a5476e7b43379a39e005", + "2d2e194354d69b3e2d8c8afcd995979103ad49852c50b905ac3ee6e653f933a78259585abcf8b28df075f067536a2ac6c7deb61226e345887cef97349ad309ac", + "bc0b017dce435d060092a30bae0ed453ad5472ea2594234cf0ddd0bd446fa661fca44c3f4f7de12469b5e399f984daa584237301e7671d74d28f598f38c9d8ff", + "b7c1a56ef4ed384f52e0b848eef8d052749329e8d46f83e093839b3ee401506f4559e2ab5a77acec56885962d9a412f7f039e9f69f92b7c0ee9a97dab8e285a3", + "58ede723c23c51b3b25c00a45c9ca43159d0d937ad0011b9775138cb5f88c21b1241a8253516003758e51e6962522534a01f1bbaa57ee151be7cb066fe8e520e", + "520515c44c2c6fcbc977cc87ed950e243fe22804a84b78752066474acfd04fa47b584afa4593f91736998a85dd7a1fac4fc438bcc5bf67153623f8cad4d0c43a", + "78d0cf1d23991ba1f5020117ea83c42307afe09beb08c6f254703d2c06a4e1f62bcd5d4b5871d5ea6844b0d4fec40742bc1b9ee0bce2dc25b3f8bf91e0bfa730", + "38b12b60a8b3ecd720e694662b57c2d26703313769b424757c56c59c6a0100d0d77acab57d1782d0e26cab8604c7342d22e9b866e874600e792b9d2e6f4c0e9e", + "600b9e2ee7b495dadf7eb943f5c19b6a8507bef1155d8789d7ec3659878245d5deda63cce5f053f710ae52bac0de3c056dc34f343384aa951d1acb7b27608a43", + "a98b15a7df8b7137fff94ec7ffb5e30b80306059b84dea1d5e1e740e06a9489fc0e971f1f7e49935aa3f6e138174f72d45b354ee63162f7ff26837f1cbdfcdee", + "35ce6234f7daaaa0f6df306368d4ff0a5469d5265b54f9d8125d7195d337cd531dc012f5ebf24992b22777f7b3a089c198165c4282ca688b7b3850c76acd01a9", + "dd304b3a00a57fd2d39b9dc2b9e131ace01b871a070836c30cad32c30e898420227e745e125e3126a2a6d5988c18c77e7824e5337c13a1d9f163d7f6779c7ab4", + "5bae2ca1cdfbead824ce983fbc15e7b030ab0f7fcd9d18e07c065e459f57f17e91bc1f57fa34b6704ee56cfe40b9a88bf98529768ca2ccfd72d3c4a370a03c4c", + "7f94e7724c5d6b8c5ec2c7ebdd3158537e554ad714edb8e4d6c9f40cdd53fe686952bac06380fa165ad54daaf94305e9da4b8be7bee55ef80b8c25adfdc5aa73", + "3a574b7b8dc9de0d591214e90e7608232dab53998f7a587db3524888516986ee6b0d788782b66da371c2fe7e6be3b8be55b48d00a470b738b7b8588326171365", + "a91b39d8d765ca803db306a7cddcfa290c8cbc012d971a185c817fab5adf1add23e5a949ac22dd1885ac3bee5302b6507b7a5910fff5f859c92027f8d3e489f4", + "50cba77a8e5e8857633a34af67eac9abfc6005e619deab916fe38ff0d454288ca9b61ae00cba786f710ba7d961c5dd5587fb904a4b1fee17aa33cc0b9496ed25", + "f8a298b12acf21bde6a61692efcf95c2b423498fd1100e3a5e589d24ffc5266b0999b526d731f0a697ffab0aa7a3315704a3855354ce6cb2d18ca6a1dc227bd5", + "eb432513e27fd85d45f9c62b57cf24e2b217af41c4094e72760ca2bd18bdca7f60802771b21fc966234a3107227d5563d4ac1f740b5127207039643ed4245af9", + "5a12ef8451b686fe09aa5db2c6d5acd900793eae6b7eb25e5f7d86812868a8760cb1f3dfe13160607085fa19bdd98412ada8d3178c37abfdea0ff083df15f9f9", + "eee794e6842d87ea13aa9fac4f3e9fe8dbdb93a37f0e5288aedab0ecb1287e1723800cd289f43de0e967c59e95c90856e5a1371a3171515311515f7e2a845efa", + "e3a9a65d1d7836400189a0f002371ade43accf69d535b14a7aeef27d4ebe7e17d84f294a64cc713372481ff6d272be8fa737976817c106e138a532c907240c38", + "e5d3f3338168e309b4d46d55a38cadf7be83d9845d726d278f3531672b9fc13e42520ce5efa1ab0bf3d5db51adf8e62cae9eb0b7b45d358459591660e3aff41d", + "609880fd653f1dc3360be237204b0651ce02f90af4103a3dfb4d0b157e7e2408a942d51a9b7e906c964f2e246f5789e0ce9adce53da39dab93db3dbd28890982", + "54ae2d6aa6722afac3e3ac1a0d03584a30762a830fca2235aa63ff529a27d4ad8bcd25b8feeb9f49d2b2faf04a8222562f4b7592a573af22a433238b4e156f09", + "b3a5424501c42ef16d103a450c0625b3d61871030e0c5d741e8e3ac9a7b4709b0e16ff81e8bbf615db0aaa2f600e9fa94aaee4f94e97302368c1da53c00ebb36", + "a881eb168c60a8a900e756f922afa7bf5897263de1d3a0556d959bb0d4d6473baa5e9bf89b1e94c7d2084ec1ab6b6df754eac89099728605817ac88c1f43e67f", + "857e42fb2f4fb65c36969c9d57cf5677379ef9d808fbf097a76f28a1be555bf6173c4b9c3b35b40754f424fcbb5a54102a1311714d2d89210c801fcda20391c6", + "5100b5ab268650c0ef6a394c10e8f92192ceffc152365c0dc7949ec2d4e4f8b21b5d33f0acdcbcd3f4550dc80bbb98630f2d6b8bfdecd7124e888efd257a7f1e", + "86072f6c98ab0d467509db37170e426eef8a84668a8b3bf3dbdf7f4676f99194b923d2f3fac0c4e766fe66eb34c0d3e88dd752e28583f1dd57cd0f14f2f9b3cc", + "b269fee7d69bcc0d35b818053da3c9e56abbf184135b7ec075da843da2508bb6acfa552907796032dd6bbd83e19f477b42334a0aff671491983a71b1b9005ae1", + "9e3d4e077146316aa59afe04f35a2438d0effda3ff015ef3c64c1620af9b8f0c5174689424d178cfe646a2ca33b1c889e0e97a6c040708390da3cc4bef9b7fe1", + "71dde0f958761d254257b2c1517f5f57c12d78a5f62b830124d99241eb536c7d9a1421d226b92522b287566f26b28670da96cdce7d5179d9ad3c470d98dfad5e", + "46499ad2a5cba333b788c26c514c2a73b45469ea3a59dee7225ec48eef5cdb7513f451139fe0555a6c26a8ce66abe27896b37bdc4d5d6b80f06a046d14fb8152", + "9508670897bb9e59a1ac5b924b7bc92c731b3d44f6de15f621e39761087aa6578afe285ee111133d9978d15018d07053d980b0ef69c7fbbe37d417d9ef06b712", + "d666bb195b8b3a63a1dad6e3967eccbf33ce1555d8a4b8cf53ef581b58d579ebcbafad97231e2b4633017af87a5d07d3f98387e38d75f9e17b53e9ce0bf10323", + "7250097d03311deea0eeb1099eaf6caf7502981238190c2fa2d96c702c5f9deae7cd24db564edc1ffc4e39155b36b55f7b8a9ddbb6d95c74122a16729e1affa4", + "e1b2b0c54e3d12fdd47ea2e1dcaaac15f02c62d7c30d7fdac30fee64ccee46faef524398eb21d34b6205e34e86294d652ec3f868b3f76b889ce781afe9ac4597", + "a921d12d99e1fdfb0d60bd6d37a9f2d6d320c263c162e96e6d7c6e00c1f9a1e2b8d803d74f285d0a9f8e15712e8bd62b4910666d5aff7b9630dcd93560837c54", + "10c77b0d0ac3337a765f599a9ba53e4b44f9f19376b35516da7019f558d3a042aa19bbaff087697009ec1a992b511aa07e14ff38aaba91a7239b8d4b368448de", + "f44f263402a586291f23cd9cd1219e412b9fb9c07efbd0227f15bbe65ce0a2fa91537eff0189e678c66baaaa73aa4bf4aaa4f19dc0a2db30cafc6d24f39494da", + "c778dd7edf92ba5d02e9eed706a884dbd65423f22a1d9275c7a0d500c9c67c9dd1c11e10d63e2f702e023d7c48c189a16624646ac8856d3b73ce824e93f81b08", + "a13ae3366e52dd8a56b39c76ea695eaa7317d51f3443c4dcd6b15b7176c0020bc36ec778ac0a021731be91c531d761c309663c835a8f5671e0f93e91b4302b31", + "8947f32daa46a67d36f671f0fe93d60c56214a18b32506d0592bb28ddc75d3ed1db16e2189cba28e398cdf9c0e44ffb005f1dbeb6da7c56882670fa8ccb71b23", + "7e0cedca34255a58e6dd90a9e3d08d33c8890775087f67689ea308cfa9936a1970e73a2c0f46a5d29c5fc13e98fa07d453345c7edfdbb9d70d90835d5c5a3050", + "c080f46a5c52f651a969153f5f07c20cf5ea07efc05afb68cc58962a7af8ac93ace97285edc9595db1d238787644f5e44d3899c839cf257642adf7efef4b8a1b", + "99f4897ad9e4279c1bbfd81b6004b6164d80e18db2085bd627887face7b2adb07ce65e4fcfaae4e328961d27a7ec873f57266bf467768ac84e03ba9f739bb861", + "92852944e5236f0947ddd8ba90a03570f9b437376b77bd17553c178fac91e2466c04cb82ca8a9a3b63687e7b718cbef0a0ae123baaba095da73fdff9d1b8c86d", + "4b806decf9c6c9a5ac2d202d7a8d86362f989ce96be36aa90f085f6fb87e3364c5bd462627c0c86d282dd6381139eac8d714b77dd57073bae32bd71abf69bb6e", + "24c04671101f817e96d88594beaa9dcc806ca04a81de7070c414f6998feea13ae83be02371afca3f7f0401406c02853346a9621f6fab9ce3e667cfad19d09908", + "4ca88b4291e5112a9d43db890ccf0339d07ab435e8a560a2ba6bc006b99a2149c249b12976d299ca40be948ee552995103cef38119880c0a1bf1f6d8eb4c49bd", + "d44875eebc4ebaeafd3b9d9d1ca9750573214d09072387ef0d2cb01eb26a7db4df67c28248a233ba85bd37846b69d2fce2cd8cef61da49d5a13f5e21ad0daede", + "d96b753f6887ba96dd36baf76f1e79b13f42861ae5d3f7d90efdbfa4b03f7e8cd79b0e4f88c7a1cc73599c900beb014c38242bd4650a6e705b82047a68baa0ee", + "d7742777571eefc8816f35d15ea8e38b74aa4e9b060a17420331009c9b28ecbd1e47702a370c60ce5f156e68bda4372594206bb1eadb5b6affebd22ef04a7286", + "141db2867a0a3b544b4f81a118c19342c56c437d7037a988c596b1e85b75f76441eab9edad53b971ac47ca350e08b0bdaaa026ee1b6288365157ccf6c5363c38", + "6c96fcb3e70625a674e9d25b4589e4b39103307aed4be45b1d2e473d6d74f4575dfe565289fd18cfc9236ec949a994b47fe0b056d6014619f8530e8d39e239f2", + "d78f2314b0ae23fdbedb047e164a3e6c69b8dae5399d16cd7ff7f8c96a83986e91c3d0a82d46353c03b3aff5fe8af0d7284e7b29c68b94238d42eb3fa2e854f1", + "90e06ed6fb339ec78cb3cf279ba7c391b25001bcc20c31a56c660c5d77d155ffd0e4a22e9f227b05d0c9ce2afd7bac87d63a08854a83a9e439ea27bd242d3aa4", + "d78c1be9e519bf1c05aa286ffd251f91dacda70171e8cb584d1268fe00216c9de5a8d957ff537e5a44138db909f979021dcb8e4f6f4e2716c3f420d9139ed5e9", + "ecef615fadedee9f5ca8b37b3581bf14273a7c86ec1b739fec75edaac23504cd6ec4fe95e3bc1ed93063ed1266317e756ec2cf3daf9c70d9b1ef4a07fe43a2a3", + "da6352a7cba79ec03af328925f2af897519a05ac0ef2aeee709c4146550ed6ab74e904b4c1d06ecad2acd65e5bdde9e951e47dd30fe3091159e2ee78d6ae098c", + "55d957b01023529f53978914073d0afbd20fdb23b1945975105209e6ba7e322534ba9746fc1b6421420dcbc7377423dcfab2148ba1d5df38bfcb4ee3e73e6c3d", + "ee6fa325e2d53ff3f39932ec2d9ee7acc1ba72138e7f48ed7f10da00a11b3cff80f44b0b6852065b46e775a688fbaca49d11e60e5f401c0312468eb0430fc2f2", + "243dad22f1d60d7b1c242ec44a378f70712c2e073f38450ae9f4d8f5618460578209bf59191651925f9023f0e12a847220075946d5cb771885be6b30719638a6", + "e92773f80c2b7eb37dc1f555037d94e7037aac82e04a853ac900865b280560021a1d4a812a79fbf3d3396e886d0856206827176aa8ee745dd997f77f01d18ca6", + "6d1d558016f944fee2dc92ff378f08784f64ca94162ae21d3e2986e4a310a5ddb7cc4242d424f89def677f70f736a55951fe50720d9cc694012bbbcfde5565d0", + "fae5cde8849c942f6fb39d95c441e8b283ec04e197cb47444863b36d04b3c55517bae2100349f8343a92ddb99d7a283696ef8e5923f181e60928121fb7623254", + "108ec7e1574d33960df7dd86729c1f238965ebb88836da4b4a9bb279dc653e5b53dede232892199cc54b0bc06c4ec28b400b4c8ba94d70ab0062faf787f804e7", + "5c3c1b585b66413f146678258c102ae294d9eea3968f81c7577d634f8e254b93d7ebfc8f99ffadcc240122900358e74d54d86ea12225f66daa9c598489c984cd", + "462a569f2a47dee3eddd98b21bb39341bf51953979c37a4a96727ea9ba7658992696477ace446f05536647cbc87f40539029f8e8951c7646cdf8520f072cc5e4", + "c7873768f3900f7bab82991d17f1828c9a9aae694dd516cf7c8421a4c79ba5ec05fc4fe674863d6ed27257f49bc977e19cee7348607a1ccb1e0359149300dd38", + "704c2bdde0745d42d2c9d858705d71b69cda063a621a21528f587bc0a824deedcb8f146afca44a02c5a42ce56625f2c06409487ede3d19df47286977fcc0ce84", + "91b0b9220c353ea7bc41ff404450308f4fca209b27c71c465dc4a8b90da2f733e913609f78074e9052681bf0c3c38f0a31b97043da71a2f99882a049f9643313", + "7397bfc1a34604742a6a91289c6e10bb8b1afdeeda3adaf29b9dfd19c6f3b64e324a4f9c8330d092956cfc0202e9b38e33bb4f7073fa16ad26ecb6ed9404c0ea", + "bb2c8feb52c397329eabba27e05fb2d8fac59a9db94d3ed705f41ca739b6dc348d26df35bf6514d87fa65261d626d73e40e0b8ed66180a64017df77648e292d9", + "36d3360c03583c6038578913c46effbbf55456fa1cc83075204fde00c84e2ccc83f00ce0b3f816e68d6428f4a236a053d18e5f507a88d3345e929bec0dffd3af", + "5b969fd98ad479a45404878d67c436bcb620bb9bbffcd05ddd0f31191e90f5828e7d6fda906db4c3ddba583cfea112356a66dd1de2e160c11d3642928c99404f", + "5bd3668b08ec420ee4ae0a93026e60a4c1e8f7ca92623c808c95598142c3b56b1caebb020352c2f8e84277582e85d3f4013befd4edb9ea3dc35a59330ea6fb79", + "93d5d197e24e374fe667ee6674e510fce164d624af55acd12753891cb5f2125363d22b3051300a6279b8ec7f50fdebd4b95306b06afb9e974111862fcf5ad1d3", + "f6c35b93c716c4fda86fd587d51bd3f121a4c187e1cef2a08169c357d273378d0ca6e450b2f2e1a0fe46436249a11629f8dd8fce608540d2211ac356afb1f3cd", + "30db9d4f87d1ab1bd14675db13988c529bd6685a2bc75cdb45bd8729bcef6b71f70298f1d5dc332e8b0746e132bdd152107d4c71129d684c7617935586aff4ec", + "46e058778ccb2cce7b6e0b34e052e3466e8484bb76695066b3a89ba008e019cee5f3de0eb8588118367d29461b13d2768f504028e0719a3450f3601c91254b88", + "f80af5d0ff64156f0e3197cbe2e55fa5fb18e8d27420216cf2a88b1291ec7aac64f888590f719d0b4fe038a8caaeb5157e5235a09778d5ff709e9c1ca51633ba", + "d8a7d41cbca08005af8e9f4b2484bf853f4774426b92a1cca2368d1ab5acf6c6d9c4a9f64b418b945426406dc61ab826e01aa6fa1c589b9583a3f1708c6df879", + "66a91e576c23359ecf57a9ee2b6f5ae0528b16a9ea0aad0174db0eff6424f80e045c437ce9cd1dfde46e83e883e56102d151db6e99f7aa6ce1179a72f39563cb", + "5099d4cb4261ba728d2472bdda898bd064996d657de8b8df20e44fd7e54eb10b8ee170f5e16bec8d13fa1600d93547d0f45e15f3ba260533638327a75451e2b5", + "66c199d0c1f837c45568fa6a770489544f5217bf57c5f5e4b3e35b6d5ab6f71c3dafff2e77c1548c605bdf989c88e11ebaae395c0053b5aa9370174fc011f0e9", + "72dc657304a15e6aef791d78b5a049059ccfcb72c551d76969badc1db5b0d6e8afdf448317074b60aca0818feceeccee22eadb05c8c256c5d042db6c1db65690", + "30fdda65b981f88576004cdfc6b884a8493bbd535a7a96ae4069f3f9e8ad65ecdb37eb71de9834458af7df1116ce56bd0b1d66bafe0e83b9a9bd14c75e974b5d", + "35fa6894e2d0552b52f4152c01dc488df5941fec9d35a50d45db2b478fede0228fdab3b306e5c3b2f80d1a68e57f2f21b7e13030e2f04ba7454d403777436ecf", + "3fbdc7a11aeda7a8ffe45d3b1092680f199fdc1427e8c3e75fb441bb45d3ff19b082129794d8e3834907869721edd41f53b54dd12cf22b9d1f255b31087492fc", + "16f2dba6bedfc2650b77180d24a0ec30c2fa44b5e0cbb8b4460cb8cdb85199618d2bc85c7798bdde0c1564c0e89ec507fe7d422025660a0b45d91e90a79ce475", + "69670cd7508544d66333c55c2072dd73b0a5434246383e21ab94fcbdd5954605c98134a9c816a806276f9ac62d5e3295702b36b42234c71f9a939e96bdbf1f3c", + "8dacb982297db76acb8ff8bd9fc56ae6869f381e7af03391b2f06df98f8cacf54806f6cd287e5034530729d98e9d09495677806c6ac22a135acad51526d09fe1", + "24289e581e8109f6e02fbe93dc01c77b17228a70c41337d185be476714fadb418fbafa90eab52250204ea7698b491915e5254537b9330549a49a2cac8f4976a8", + "4a423dc696e3dfa70e1a1aae4de9f635cdf929d7e7ea26a63ce78fe3287913bf90b25ceb118e7a7344348e6b3d6936c1dd0030039aedfbf915490b977e57442a", + "10a47f96cfd49ce3b69e3a4cdffc6c19c415dd942a4fb3c97a7aa6cda36e6febbedb20b4360f111b7a74464dbf03af4edceb04bd4472e65f627de5cf1f3f4c1a", + "83243558fbb96fcef43673d0ef8e4263c47bd7d84af0f21e69182d9954845eaedfd00996eec1efdbdda9c96e6efca98213ea23fb16455c8dfa7eeaab1af48f1b", + "8088ef112008ea0743df55f1dbf9cf5365026d768f7e342e780b44402ada96c113dc372170a7be1cc44d013e5a916c60f81b37754a778611d476dfd23acf43d9", + "8e8d1d497f48922bb3c054d7358abf0156a049d5b09fe98b0adeb3857f16efecc09e76cbf0c1478f67387f1a539777c81ba501b672f121e8d8258f90826ba3ec", + "21ff8e66d6a8b7ea4020e5bbb1686d24e097dce089c897d5b8820d6c69595e2fbce293720ceb676646c6a0d5975a119b99b51e5d2e5485a2ea1dd218ff6d2fce", + "31c6c9f852093eda2d6bd64fd7cc9ed1ca7213be4471a3e3e200d539821ce610ecf6d1e2b82b198ee7906ee46df2c1ebaf7d306df5e3d6a809950bba67d9e662", + "7c9c9034450b3550106cf524de388d7176aba7f05a8a74f0da2568992122e0b6570e4c6ac69da29556de59feb2655671b75cab7eb0712eb0ef6f630a2296dcf2", + "101270d1b4b245f0c4202120a2c0241a600f11ed96faf263f1bf2c6961f548d00592a8c1fdd36c11e41dbfe68e4bf6f8cb44b0dd57c2c06dcc59fdbdcf2556cf", + "98190338466352f5065473580d613aee82cb3aa2347267c3567138747c2efacacee6447937e183603b44b5cc7e3a86980f03e6ee5f51ce576e3c7d4260fee18c", + "b820208c1798abe54208761576eb0ffb0c60e37c4917c82a27cbf48e138a069d2b6d797db5f98523a8f41007e86a24efb29044c66151d80f71ac3bac18506f2d", + "04927292d77603c118b7640201a8c37e7c53063658a356f9e90bbd064c904cf6e9c3c7df6b108357c9853d27f8227d68bfb657b10f7cfdb2f9ab359e3818a607", + "2b28af09dc4fd6c5277d78d0fb3eeb15ae41153ad528a9d87cc2cbda84e2131caec0d0489fba1710cacd928f1417de63d69e7c2a1483d45bdd164c16ca36c80c", + "32d737f5287959eda3df7e0f433167f231ce342e1e2df4cab4f1e9ee26e7e3549220fb822a67306f5bb1e3faa7c0189b06cf1d9b5b02250bcc47e3fa7c3bd275", + "b002334f1090ced4945f2ec4592ad49f5e344cda64474f783c6bd5211372966d2cd090cfeb2b940395f321b2bbb5d0e6cd7bd6f5ff614732f1e2f245697a7d77", + "352d74055afb639e1fc6b5505e3f471cfc909fdc417241b46c130098129a1ffa3951c0766e1c95573232b180cab91cc0a37a477d552694e65833c2d9db2f87e3", + "60b3a05c2d29a0c3d97f5b556e0748e7916bd8ee542e8cddc848ec5b712d23505edc734a84dc1f5ea291684046fed68d8fa4bc93ec0b4c69e81f2095fa24c546", + "f78295ff94c0f4f16d57cdd17b692b84d7ab1c2d5e250fdf1952cab19f5a867d242ad4376bc8150b7a28440aed34e37fc6e28604a124f8519d382317805c5747", + "2ddb128811d7a185e231395115de1ca2df46b0ffbf7552e1cad09b0b4a62a36901565ba157437aac7593bb30869585461169c79e6e17703268800bae1c145f44", + "b95e525a39ab8834947b5e2d06ae3d875008203f89ad3587d364799023c7d6dd09dc365f9095de81d9771e33c94f34629aab0a619dfe567e96fa0cf0b867bc5d", + "757d320fc803218cebd466c84777e98c32b9c5e214703b3a62bc95abd0e2bac809a5eee4d2d23b711bb4ad07b8ff8b2d1c78b4b54855edad4a0f679d836aaf06", + "2471382c3d21e88aa01b9e192ed214fa4cfdb70deba74c74b0120a8e1314daf207ae5577e0650f031e583ba25df826de63bb87bbf3adf867c34f87177f8fcd7e", + "3ade44b75cedb96f717dbb324a4b132760447b2d3029111c32b228d388b3688a6c95277f6bb1f52b55a131e370a3b7c1d28d9b21f377e1fb0cb3985ee4f246b0", + "e40ec388329719a4ad6c7ef6bc5858e7aff7e4d604dd02b7d843b1eccd8dcdd4a4d728998c53758d15e798264559cf62725dbf9d520b428eb2f61e01cdaaafb6", + "cabe9ac40d1d515894082106599daeeb141bdd70affdd517ba3b2ae3ee796fba2ffbbeb2b93dc68d2c0c67f836a44e77e8c4ad2e54332d9ba43596471f74f762", + "c84222fd39c4ec826e0dbb70eb6a8b7e18d11436a73f0966b5eae1446e6e83c04f0a38495749ed2402c4b8f9a0ce8ec81068d914249097244cb5f6d19830333f", + "48ea0ba7e2945a4f684cb0bd933c642e59d597e6186ced1f89d34dc287eebe9a2398eb87d3876d8e58d432169200d8c52830b75f234ce2477644cd0e298817a1", + "f996965dd542705915de23978f09e8ff776f0c90182cc0b7bc5cb31683ab090fec106b7d084cc1ddc13d91a971fe3d4c17df2555f63605531cb79d44780ad0e9", + "d614df5e660126baae64c6ee8f3429b006a5d698a7972949bdf699c1d13aea638ea3fe63ee1150dd49962441a9a651c09e2101d805afaa801ef1b1e23c2de715", + "be23430294433a39c7327149c60186259d713c1e80d75e224c71f486c1b349bd61cb6d6a9c601d055af9081481155bbdd785e7fb1ecc14567db4f66923497c68", + "a0254a5e97e80b3e57509cefe54d5b64c716a676b7409000babe1de4b55a5cce05ebc01ce114c8294faad8652505749b32e7a64f6e6d27c02b24e8b7112e28e1", + "6828e84989c1f0c700cfcecfd3820945a663b5b2b4c2df1a8e1057a23a3a2d1b93e553953c6d72966a7e104f8aa61bb39f27251fa923c0510bfffcb22f35b02b", + "02e6d1c0575abc2856236b62d065068d5f9d9040ab84c1741b1e241135ff0c2c9d7061049f19c7add0ebe6611a9dfdd5f671c64262398c84390e1c9bf2bfb3af", + "64a7aca9c92428de5016c0c8c3e136ec5ab9d1c5cd7df2e1e1031cb4b1fdb9db714f5e4a6c36906a2b37b5f50b0c2eead3e11cfa47fbe11051a8c7256d85e311", + "d0f2a24bdbe0b54b933455fce07faa562de6be6b86484a36b3f44c4e2364a708f4018bb3e814ed964fa9c9fa59aed2bfac750836340d4e6bdd203825165dd223", + "822ce820fe6349cf23f8e3cc38eaf79d54303103cf2b5c06fe4f61dcffd861c388fe0df2d6e93e158d2ae7685b843808dfdcb076cebc7b1ab319b9ae7fc6a804", + "d7aa08abc86c46a3b831abf4be411e0741ce5318753f42b52a93dd45ffe29253028875dded162cbe82526a4f1a4a69015a3bd6fe4e69d59b184c6f3a46b0abaf", + "d4372fcaab6ef5f1e0d5835fba552f0403f4b5663f639f4a150f2f393c454068eabd747248877c90975d1eecd611144e8cd44381d6662617ce3717c3d93ec6f6", + "369699f310f34765bf21624591c8a9e82677df04586e869cf5462c888cf70453ab5233b9a38ba90dbe439e16af969cbc35afc3625b88b1a7c45932bafc7da0ea", + "9f7478927808e6a541e0bd3e75d8cef9b7ef4c45349cf22928d7bdac76d4a5de2702515e4962bdc55575a28cbb9f6c81e68794f9e2c4c11c2ec0922520279526", + "3dd5e153b1c33b4d3962eb603b412a6d5a9191f50128414cb6d6a8d423ff7f36c4c86c299e09ad50fda1578bb54f50bca6b2eb373d828e8a4e33ce0e03788409", + "2fbf2a755f0abb249ecc1bb2c1d0cee851d9340aa7b4687f72996a21c195a2be30e9a17e412af10026fa334e1e4a1534e9ea7d03c3a85127ce645bcf51d6f60e", + "6693e576c6909ca31b431dcaa957c4e10b6c5c28aa8744766ea6830df7eb88f4e4dfae3791781cebfa61797b3ef3dccc6e8d1ff1a4fb5ebec52a9a9eafd7cede", + "d9b35e5a03406235d6ba726408f1fe96edaf42393b49693ec5bf9e42ca16f1d494bce5b2a423494c89ae4dc0079f07afe81c9d012a0e5443a0d9c7fbaef8af62", + "c12a6cc263f5a9ef2b8f5540caa81b1fb0735318272927fead8d468a593c21de303ea7f78d3f51d4677567f21967e3abbd66091a0cdd85c178d10adfc18bfba5", + "380e94cc9087c0cba882db5ee7e15de26bf8d73e94cc634c57f9974d36512b2b989d35707b7d2fa783888f654c47adceb5d864b1882877beaec4e461456e937c", + "5fc99fe0029ead702b0aa6584d2c0e20f79fbfd10e53845f905d467bd464d788670faa1457a4ef7ed1993a90e27f33a444c6f8d1a8c298694f4c95e53e21c7dd", + "5d7827074c55620bbefd2ee67e311b2b4c283c2825617f48cd551f6a635f3de50ba9a3643b713d60feae580fc7444485c082c9d735300f367fb0f420b8dd75c1", + "58694fd4c59b5c4db1890ff5ef2e52b104bed7e181e4301d6e8071561258a150b196f728219bd57bb0d4eaddb1e7739642a9d677826adb32d03970d12f1f74c2", + "a5dc204956907453eb6758b2b927100fbd699998e4c4421fbe34f61cb775de8a58b98b726cc5c3608188e7b373901abb8c338907a2e806deb6160af618f62c72", + "9cd20d618c957a938361146e5cdf2e8a29ef1db685b45c3a9e54f52ff559649284ac9ae4e6c1b27637acdd020c6120a26c1b907334665fa5bda3079ae4375dc6", + "02307748c4a3306f7d6da9aaf64ba60a11a390f5e30a72450670a0a7a341747902501bb42bba177b4e3bb80343d203279b3dd9721973ac62830c3587a025041e", + "9544aa7350c04af7f1bf1216f347b8131921ec32fb9aa5a70b265f2ceb1b462815edc55f8133fd5f27865a9449b69e1ac415aba8f5b83fbb9bb4bb4cdad7f1df", + "b2374539ef02789bcd3c9209dfbe48a9fbc4c259505d798c47f04d34b5a5bdda5ba029f20a0ec9346c39de7b553c7fcda7571296b4d5221eb9560ae580deecd3", + "f406bd014788dbf3027e812f3e9178ae9bdc808c387e54118972506e159714a62fe4a0dc6dffb069f1a4f78e52387cac798bfc93257db704837599584f253479", + "c1ac6f400a75948e8ec2d282222ab43355774f16206767410f7c475b988091f1f1be52f30a1dcf4e9d6b63ff343f9370da95a2fba8c5d44d0f4970199e8075cf", + "ff94a8b4008719979f8f16218d76c6e7770fd3be67ac7c979c87605caabd935b82f221858ab03af18d774bdb9e5bf1942aa5c3980353129bcf674c8cef11268e", + "d4629a36bc61e1c2a967e452d05bdcc926a13927301b905dde24fc0ef600cd12e8a03daa01fe465b6408ae5345010fc306c026a063841eee91088a0c6643b78f", + "313c8870b4ca5372242d7a411f169900d44e1f62b463bb0440d77158bea2f7b4f048835a5da8ec0e41bed0500a1a4aaaab253487e7fbe9c6332572604553051c", + "0a75e90d93b3ecd75132c250f4102698f3e4c35cc267490ead55e5b4e7b0f07f6cb04ac85346e75647a241fbb745bf42f632ec594ab4de1519a10cec270dbc91", + "951665b413c9a261593a69e903c1f03abee8f3bbc7c626fb2e22d4d28cbbed75e660ec21fe4100e07b8865ed749b0134a59e22aadbbd7d07118178232de0659a", + "b6797b37b5b94a9ccdad24d1d86e1a9def9465443b74aece8ff775f72842aae10891a92e4adfeafbd16a443da758528b4cdef8c1361be07e7f1f2b97536ec57a", + "e68bd2b485e44761724dea1f89147f8b3e7cee8eb555f38df05c0e4ac19586cf96006dee2bc6e57dbdf7447f72a4fac823c44b0538c07afaa2854e2c1a997761", + "35f2743324d7347d0a4e38639b04249967c3b16dd302b0c96b712f1cdeb903ece309f97ab1bb7820e042d3bc1fff1ec0a9995b6e8b7cdca6e0555c8a662b5eed", + "8532f096207980408feba3b0fe457f305d57975b2d2b8950b30baaff88fb3c315eb533eb9aa351fa5d4dbaba9136d31dcb71f3d0f2bad1484ea0ca2e15706e2d" + ] +} \ No newline at end of file diff --git a/pkgs/pow/corpus/skein.json b/pkgs/pow/corpus/skein.json deleted file mode 100644 index 47084946..00000000 --- a/pkgs/pow/corpus/skein.json +++ /dev/null @@ -1,258 +0,0 @@ -{ - "0": "bc5b4c50925519c290cc634277ae3d6257212395cba733bbad37a4af0fa06af41fca7903d06564fea7a2d3730dbdb80c1f85562dfcc070334ea4d1d9e72cba7a", - "8": "26d8382ebdc39072293ddcdda6568b4add2449a05424a12dfbf11595228e9fbf7c542f25ec0f7348b19ad23ef5e97d45e5cff7bb9969be332923f33be53a6d09", - "16": "258f3ceebd9c01271d75abe73e90085390f54cd318b4d5fa71e8813a541dd96e9de5a119d053a913296929e263267a3710b3675ab99c42a3f67d96fbe6ca8451", - "24": "72dda5ab6840dbd44cb2cc8220c2e0fb5c435878e00ebbdacf2a5ad2784860becb731c821d19e28133320aca0cc9e41aa9dbf1469f6388c4f74a900ea38a9f5c", - "32": "af443e00d6c8ba0a533f9fb284cc69ea9e17787f2b10fa0013bf86d60a4ec0f7e9785fb74dc97a779832fcebc931f362b5dd5bb4b4a980d7609a7e0bee0d6020", - "40": "c41a9ab3e5b6edb0c2d05dce88c16b2a787a514e7c6fa97da8735462b25d338046153732d038f64852a451dc57426f1d5352028a0a19723c514c532dae4aca9a", - "48": "a8bfc5daed08c05725e3ecb19ffb34ab8c4c09b6f2f518a6cb320b877be8c3ce349a100e5ed9f5af0bebcc3c07ac42e55c91ebe9ea3daa88f5217e6696b167ff", - "56": "90e135f85ceab5ac9314c4dc2af88585d44a6e395b6bd81365bc2cfa9ecc38240453bcc543e7a787874b728fe57b6e343c1db36027a0c87e9b47e803c8217fa4", - "64": "981bea36316696b7b171ac9db6a4686a895a50c0ed1b8caf1d7975f9a7ad27f9cc27f116892da744bf9a63a354c3fa8f8c22d5fa9bae936c616bf304df185cbc", - "72": "893241922416de44d3d59003765633d0e67c9d8ef9781f41cc5aa2660fb31fedeeb64324347aa6d071ebb14668d11837f130c46fb291289525cf50b251d08353", - "80": "3f312715e82dfe72c02fa2a28fbf35a4d0b5d7c1945e58823157dff5e49e621da8e8bbab4030e2d0510cf31bb1a425e8fbd388004d4a799f2d7685e422cddc8a", - "88": "70f487f0e5c35b8a9fa623f321296fe230f71b78814329a2b7713f123b00672f1ac73184db5e484cdb2af46b9807383629730b8473f519925c3f7aba799f8b44", - "96": "de15a598296a36b058f59dfa688c15f8a92433710345fd18aa3bb90a38ad956501ecfca1b70b00ea0a567b915d4cf6446402ac1e8bf5fe621d2e7f6114094d9f", - "104": "c62e943ac8257354d221b1350648b38f0f6f3dce21ebd6f67fe1b578015749e1e4ba26eee57ff80013514a31a6aca6da770884945d1eef0e2d1473e0d5ae3964", - "112": "724fd538802b6a11bc9c856a55bb4eec7ad88738c0614d026e24f4883d873aa3d8ec05ce38f68cb983dbf3770797f62cbd0f263b3c58f0b4c14a3e8691e2d6f9", - "120": "dcf9470309678cb649f9ab976c5b68a4904c5a4fc1b270c68865f3f906cd5095c63890479b7bbc086354a8eec19fa14c67328073a75d7274201e88a3e78104a0", - "128": "ca2866302b25f886b6a8a82fe84a40dfa5496602e665d3df0153134e3f6faa37526a160ec41540e357347252d99ad1ee29762c4663f282c153e63fd7e68d9f18", - "136": "31b22976c33ecf524576854357717faea05d3a399a8c6ef29538969132f2d3ff8f91ee7372e89c4429189f8c20fe7030d9a6e9d757192f4263719730832830d9", - "144": "456437d984258c4e35dd2557c5a76d4d160f20bac68c527b1e0db30f9556586e46425639c7f95bdfad6c212bf1575165a3658855dcbae7084297f6b30fc0847e", - "152": "76330b4267b5d26d2858b4740c317675eac8603f525b1adfddcb4ae9e87b81cf9226bda0ad7a3043b3a6de7e65d92972aa1a2dc894f3b4df6d0080daf42e48c1", - "160": "d48bcfb92ac2671e854c8d23218640bed8c096e05fedb9505db438806e6a487ed257b205e0dfeafe0a7712d6b78e19b4a81b5fcf26cc2cf34a1010c26f416223", - "168": "50d4671d3737f716647ee911c947443ffb6ab86980bf480fed5eada0ac43db11ba812ea7c5135bed9ebd5e3ed64c2370ecfb4c01630c48a0157807e56b76c363", - "176": "94d1e4f3569bf071c876584f64c7a9ff5acdc7b6c00557a07221f29f16d5ea4a5daf3c427de279eeb5c1f5b6c4c164709075d701879307421ef85a86dadd4a43", - "184": "5d8b12e9344fc266a237e91d919cd3a7079c7aa6b15198b44c73b5b77cc0191f60234e0dd0d89086ed7e7df86d0bcf3130321fcb340194942a990c2a3045c820", - "192": "b1a228247e67bb27f5cb44e18d2aa0d8cd2f1ad5f21ad7d9b2f86cc736433cfd46b954c009cfc1b42b87570e0c14f57708ede98ea09312d66e4714d46ab0ee44", - "200": "d36b86f247d80e3f475cdc115cf4659bbdcf560e8197641f1590b3554759e3630d54aa33c8393e2ba1336c8450736db04daf38ef6c532a9a1189043a0cf8c83e", - "208": "8813b67754b4dea9b90036f8bb4fa9beed36681250a2c1a91564c76ef6c1c91738ff206c787da82bfa79f280c2f1d9e086ca8ada8198e379ec5637835a0b9fc6", - "216": "d8f858496d6e56ed38418383c762fc1572ede99aa48dae2e557fb624ceee7515e57ff3fe72ec98ecace3b140f502d9c7a2b5891bb80eb5349b5a594470d3031c", - "224": "1407a2ad0cc06efa064aae9e7d4186f7b3d991531691d0dc13b2c81a8687b03467ee1f27d000ffe0d8e9fe0dce85ad5779e0f827c97a5777d2ec0694ec6dde44", - "232": "5366674adb264eaac4824109bc2f923817a2df058fa3bce6d91920ccb7e5a0442bf3126688edf444c1d6cc13ac950ee88a389726a53316e1df6bce7ff077afeb", - "240": "e99a1aefcc3582d6acb3ec75fda02d074db5d015f84c945c994a92dd2e818711309effb6f271a9774233bb9a630df317dcfabe1eb9fe4ff6f14e8bdbb68d416b", - "248": "8744c1a732aac29af53f55b887dcb340fadef26cf853c2cef6ac20e6f278e3deb5af9c78e6c0b59e2d791cabeb1dfb321104135e0f9f749e6786be4f4b19ad9f", - "256": "386223818a80ad962e3d79edaeb76a7faa6ffa2f464abf247335dd75c763d6c1213c0a695cb4dfa3b3e9d284cb4b9a2fc2a1113b3b6a072200614bc10886d44a", - "264": "7f18283782aed5776f2e28edf83d067db193260340fcfb08ba2eef5c8147823f07c00ebafbb8447967392b17e2b4d6249fb6e454d45bfcb615a80cb503f269c6", - "272": "50050698334a42ba1dd6aa5ad0eaf8cccada992f4a4b14e5229a3ad6a561dc15e06d26a899f3cf6977c1dfbb5815f23461abc29a2a09fe5190de5e2f63cacd3a", - "280": "211121ce41bded281fc05f7426daed575198c307ae107318a282a173b25cf64131874216a71d5c4e5b66c9b78d8d266dac1aa7773633d4cf5c41c521af1a3191", - "288": "55bcdc136a42e740c172545dfd8225c008d31ba2b9b5de16c36a14d6932adba3565549a3b3043c8c8ef7f4db0bb655a9f7087ee7e0ab4201598aa4ea46f4d256", - "296": "ee8b6a342667cb994d579cf80d5be9d4f816ffff03ba97b75c9b601fca358dea4da189d8be7809c248d75600a19973684e2b2065752a31af386f94e03cd28bd6", - "304": "8c84f238abefd36fadbbe91253434dde7a6cf0a77eeabd2d5dfaecca4442441b498be287ba65c0f76ead4eaa1df115a3a6a0d4dd0453246e486798587b31b140", - "312": "e0d4f5c59f616b29c683b9e6618887ae567dca178d81e8be0dd0a52c54d625af6d6cc9f86e1b0b7df25b82f3d7cac58c9875b474cdf9e9b4cb0d4573ecad90ce", - "320": "69dcbda2a00fd0b92ee7e5b4f36981beb97e132c8f2e0d7b2b9cd455725e79800ab9864698b1c0845cceeea5e285b45cce4b4264c0d1febe874534170f691094", - "328": "b99d4bdc59b2f4eb7ec578a6866a88dd1e848bb7d19d9447bab656c143e7fda912959a767e721882a66491299b96db396f392a688b38dcb020805b8f87168790", - "336": "f5528d909e8f70c9329989ec9f7a1b5dff6695467447418d70c63e16e7eef184064963c4e05b2a2a28d7c30a93e3f54fe63a4288b727d2f13495cbd9734ccd5e", - "344": "90d7925a328822063a33df2d74db9692bd668fe06f2a4156404ce252f29b50cc81af12b49eef25525fec69eb010c3a127668aab32494b6624104e748b2565519", - "352": "ebbf87270fa3ddcf816905b74ac0694e354dee3952e6e27efcab42d74b15f3fe49a2434416932a3942aafb90c5622d608c86275741d35040e375b000de899403", - "360": "73282c3df72197fc83ade5e4d263173d4b8fef58749bca410c48485dc19b8e6d34d42bbabb5cc8964e3d8e8f9db60356c9884495ce889bc90972091a065ee4e3", - "368": "63dce6fd63ae437494c6f68b3d9249322ab3bb6ab2b9ebd156f22434dd91c463d0d11c5484835bfe34252a0b3674914fd89c25e3eecc374cc20b7c0a397c649e", - "376": "b175a67928a446645732f22d10ee101eea9aadd83bd2bea38c9e25e1d1f4ff18865578e3115303eee7857b9d9decc59ab66f42f2aa70ea8192fe9abced5eeb68", - "384": "de5d2a161b5fe2e087476cbf15f8df9c35e4be11e9a9ec01edc3818b88c4998eb0b4d405e7f4c924ddb3b077410ca73d2e7cd3ed6d87ad126190e445cb97d323", - "392": "eb994a487424e5edb1ec536e9cb93aeda329c983f484c7e4f1bedd7cd1142b85191a9829e9ac098313feb9bfb9dc69f12b2fb348ad3903a170ee4567d13ce815", - "400": "48a20d309e2f8f57c6ea2e0ba7cfab190c1da0e0e0ae1fce67d1d9aac18e81a1b7642a3714a355a0fab20266d67e3170bd0f8d09f8382760ac4758279ac49cb6", - "408": "0ed3a9ecae74da1fef8d0a589487b0ec4427c7d6ce39860d13b26747195cd272dc093c40fc4b655406fffbdeae9311371fa2628ec9983b0b57af62b285bb6c6d", - "416": "fcc42400748c3911ab68c19ffbb6c7849acfe78b524285143f4c136154bc516476b57144462cf89eaf1ed18ba1c1e4c56f75eb688d686046b8efe7e26373812e", - "424": "55f603adc026859c471a94e0c1b604a9ff080d0609ee3c0bf9484bb8fbbd7c8f54f4b8ec470b77025c63ba5a02528b715562627268ac42f04b8143d26eeb05f5", - "432": "1129594301d1df777fe7998448dad08ad3a8e4fda94c35aeade6615aa1982a5ca07669c873a58e623c0c386dc72630a350b0fa5520e7cda8d36bd506d5b24dbf", - "440": "9f56190d40c0964f698c06d824a4c402ad47c95418c6fdf43aceb9ad7d092f7f62ff9d3f0625e15cde1ce3e6118861449390b5afe73b1865ec4f1f3fdba89bf8", - "448": "c74b2d83470edf076accbed486888ccbb98e6693f9bcb54210cdd181a834cfe9e848270d985f883232d682f05fd225bd283e90eabd8a493ec713408ebaf34ae3", - "456": "f1bfa1067feb68df42c69cf4944e2f57bf17291086adbad592cc0c80c4dc0a97d2a9b001ba57aea4d81e892f54bba9387ffbdf3a86250e81e5d12406e2ed57de", - "464": "c4915196aec17b0cd50c64d214cd4d20cb7add653db9c623b76363c8d14b8fefe0b883b3f36c39c3f9e18958b0558f0d86fc6d4a52bac59b74cb58a68d4c8d8b", - "472": "edda51e38622c3da0f007566f51f311ae06492c9d87f3190b0d74dc44348b1d2a8a6179afb293c0205c3eda1b5669cd951f477f885573a1c8c8d322bdd7ed5d2", - "480": "66ec650cf34f084fe71fdf06fb3bf4bd17e1ebd545e878984125c31f862b939a3af25b37d17732c3dea4c2a8845ef1c49935f0473af0551ab54950a8b92980a7", - "488": "51fe1efc5c659e5b7f94bbbf06078e119f4bbe8a40526f9a692ae970a58a0d24c8e67b94411109ce0445f425e24c94a52df48338e3943952142a4dba625f4ba0", - "496": "a22e76813ad33d1cd84f1bc536fce8cfeda449e02a67d4b58f96c9689389ea40688a785991b90420f4a60244fbba85cf9677d519fe7ace300199b0cace944d46", - "504": "ab7a725bd93ab805d89d81eb6766e46e1a0045e654b82b389e6b481eaa7d26fe39a471ccf99b6e87eb8e2a9c0d7cadad4b2cb401ffe5bd85de8d0235e8b5bdfd", - "512": "2df35398690d99075bc67bde85d7cdf512df9f05fff16cfd1aef3f7e641961e60daf81fd8f9a625fe9149866fdc69f73c58aae9f758ab5ea3011c67649e3f0b0", - "520": "342b05f8a6ba4899e48153c11a90d3635aca67a5852e706ecf2eb425d41372a7e62ba8efea5a6d5c1a338b060c3299a134d1d9139e3d96f4566a6cf15582de22", - "528": "81119f5333d909808f37f4d9c00dd2c9b7f9b32608c6a517881155387a51141bfb945285f29ffcd79799b6e76265fd1940ccdec9a591cbbbe19204374a533343", - "536": "f8225f85838f81b6114f30b69ddd4668d7bd8ba357d283b4df178380d8aaa0b8f10b6e85afb7356c206b43e4ef2e1b1ee0073a4be042af3f94c489902ae9c5aa", - "544": "436067709b778cd3b60934649c8942d1930d74c36f8308686fb18b39e01decfcc34edb363d7ef2fd51353d571be1019f119ee79a5da61898927e6db5be909d69", - "552": "dc4dce2dbec1a6e2bfc964c6f7d2a58f0a0718b0146bb3e0611d6d8b7269c357c508bf5f1a3723ec373a7b225d9b9941134b2f6d649ebf0e8e1b69e344072b62", - "560": "c382a4ac5f26f5c77bd8908af7ac65c596bccd16f08d74b5c9cff3582a1b8b05c7ab4dc81c564a856e1f364fd2089ddeb5652c695a5d567177463dadf8f5872b", - "568": "54bdafe6e565e86c38d28f6c9a39b4152033f87206c50b6a78f9ce41501f5a7b1de3baf6b1a41251f95a859f0106ce5b9226ca73bdfe39e947aed902b5038715", - "576": "c326014cbaad2173d04c15c8f33c864efd5a9683a360db013387c85b0127705302db83affa28790aedb2ee9ab88da895e2f4b0f50180444f13564903d853f989", - "584": "6560bbb2164b7a1d0b322618aaba50c12b331f82c2a2cfb5a3237ed9d51a19f7a0d4e6ccfe13c6c068b18ab38a3a635e2548f705cba60176fd6f2d22f32c4791", - "592": "f9ee46172fb8f055afd51fd591c3eb21083d21d6c5b6ee4061ca8a54bedd5a75e4e086f962fd9d9ae62fcf9390ac55858af2e94216a3426febb5ed17d148ea88", - "600": "b1c25a6252ac357cecdcf955ef97defc6161e1b813eaeb502ae4cedd0329eff954a037fdb7c32d7f4b1bb93057a5503d617768e0a7fa6de9c3876f43f2b36fc8", - "608": "2ca0d306ed30d5b37f7af61e7f2ae1e9485ebe90167d7c270572d57703823b7e63ea55d90d4197a6fbb7a7a1fc383fcefe9f7b291722f50f566d4d4edec36748", - "616": "d87cdc2deb84e484322c08d2cd8c841b0e2e8a06510188c42724ebc7f92ac2f972849c963839fc20625fddc74ddfe730beb7f1ac22cfeb9c08083ffec5f7c171", - "624": "6d7181f90bd05ce2ce59a4ab86253bd919f8155381e70b2885bed000c31713283390f147805e8556bf9c9cb6399236166c82cb8572b1a3146adc4ee679aa3f17", - "632": "ff5b17ee99e24c74058f479257cce7a381daf407cd967903c801647ea60ebf1fe910922788471bf1e0b609280ae7a7943966ff2836fda6989057e04f07a46498", - "640": "06ef93e8d37636f73d67f4230160914ed05cd0cdbade77bd69b32e02c6a419fc220f6e71e1b269a76a1f7f4c4e3cb49c0e4c3ca3466c58c25e2930c71dd1bf0c", - "648": "f52a2bc9dc33eeacc30211f4b92e882ab8dd761394b1d09e22a91684319eeab4feaa71c24cfa11da3add047672f19d47b48c90d50c9dbf5e2c0a50b995cf57ae", - "656": "ed3d326e1e618d140bc3ac49db60c96b4d04252de2d44de3b414d8f96c05a6e37c82b1dc515df1cf784aade0201259cab249924776c7c4e0612240f30ddefbde", - "664": "a811affa9ecd8d88b51ab201f0fc33a137ed91f0953e819f9bacfa19bbace50644dfea77823bb9bae5d6fd79b81b0ac7f202a386cff6eff9e7731553645975b9", - "672": "fc3ae8d1c50a634d96334e5a2371cec832557b0c870ca70e08dfde59226880086e2a38a483fd1ce68c2085f804fc0c29417203cb5223f69a6df20292df13721e", - "680": "507d99cf8498582388396e9da2103f885eee826349ebd8639b37b133877108abb1c34af892d1676f507ee40171de00502a71aae08e5222858ba4f330d2aa0393", - "688": "29b639522730db5e24feee90619bb57274871ef65ffc8c98b57cf6eea0394a2b7eaf3c177108e5dbda22165c9c80bb0ba408f1e66603d0f9d48f22b3907e2122", - "696": "aac3a8fed5d9d887edfddc24477a9043ce1a66bc58324ab1539c5d8e8225933277ac3f8f99e69233f12d8cba7642a50c9d12d314027385d8d2b743c884b27d50", - "704": "04b926518d363b85967cab6a9cf36435eb6e06d987a023f50d8a6849219ed452760a2997e7c7e4b9a4d2818b617cf81e7f406aec7d0799939b6369390cf47d8c", - "712": "c70c68fd238dbfb07c9ce17def173a1d5bd41b49dff3d401fa096b421e449926c7aa366892301f2c17fb6eff3c1c7ae8637af2f4a739a748aecbe1463ff5f0d7", - "720": "21cf4a6b86445f9bd8ad570abe6bbab75f6ecfc3fa6c935be968a7f6e8a00f15c4683300fd07dbd245250cde363d9478cb8f73fa0443956f666bbafad7f05190", - "728": "2915d4d41fc7ad3ebbb2720e8d2789984f800e5ebae0c9376d0197b95b81e064120d9a040d2a7a6320b4cf06c6676e5923472b8fa5b9034a01aefa48f41db008", - "736": "1df71071b1815dcbd17c3b486fa0328d95d648dd58c9ede85cd6aa0574e74d35151ca6a984c8d46b0cc1b9310e22092627d8a831ab9551798963a6301420f9d0", - "744": "b29a8b98e99e794b841d7525f4dbc88b52982642884b367f316ad2c611d1e3cfa5d0547ba9fa654a4a345ae7f2c39736959c217aa1a07dd8d6d0224f4bc6b385", - "752": "6233238eddd88518dd42db92974c53386350172a3ee9d84ac898bcfa6d8c148dd3edeeabadb9a37d1fc95ab991f737131748cb969fb6f60c57826fb48ce90df0", - "760": "7b13bd46e765b6bfcb652b4e8cf60abc47ce6adc26264017f906eafd45ff7b5aece954205f6f74eb696dedd0c8b24ab7b5d86f4e21f2ab5e82c42ccb3139bf6c", - "768": "11ce4d9928e218504f4823b98bd9c90ea4aade88b34cda898c3470e0f8277db516a16e5a890860fd353de84c81cbb2d78443a4338582b98d26b33d516abea998", - "776": "af2a7eab5ef18f204497d6b764937ee14eee7a28c37dd9cb816e8f937530aefcb8a225e3255518a4199270d4f5477e577b68fd0e7fe4b886e173a5b84106780b", - "784": "58b2878c79a8cd7afd1ff815204dc38b4b483e5e543c16c5e45b55eeeb037552fd50b08d43abba3af6e25c49617ad8170c8fc0a5b9593c6a0cee8c767ed032eb", - "792": "c2fa1be8aed5582f8e39e922c3917a4e030c8fbe07cdcd1b8888e9590dd31649de2b03da03fd4f15825ccff82dbd6d600c69b4872a843e2b121981bc65e0a20b", - "800": "3b06e7d687e0f3c2f6a7645281f467d50853afb2a87bc73408ba7951598bf4869598681c05b941049c1b106256b412ca6107200858570032e68104318bc5341b", - "808": "765637b71f0546aeb0394bb91fdb8fef6dd85adfde6e06a321da24033ee8e3b0403646f863f97c6bb9ca5b8702c6bcc691db182d38db19ba2b8595776f5d775e", - "816": "278351d6f90b051ac4804c8d85a30c56a242fdf1df556773f7a1a67b6bde8d6e49625d70ec13c9fd974d36c782e24bdd70cabc84b4d7d7607719e6ccb88f5611", - "824": "252c064c54a56f4c21888ca2f1b8cd3f56d46c7a8bd65ccf30674001fe58ecf52fc0f571b8ffef4c8970a227f39f8e61cd2068dfaa79ff86cee6032e020c1d0a", - "832": "31cd4b1bc499be3923d020290e49a9b24fc4a0a7b974ab0bf2447394e193854b9c575d4f8df12c96a9a1ce2e74b6bb0d731d26cccd7044ce1d6d7580ce440a4d", - "840": "a1ec50cc515d21489a34bd69c88f2c45ee97b0a39b9aaac83d3b008fd856ecd5661a78a46dc73d87145a3de34d702e1e6f08b9b4e52e5a0042f4c71865448c74", - "848": "c0f9653a4bc7526dfa97e4edb6672b04864195bae6fc0a1113a3b83dbd2c8855b576845f948302947e7efd983f49aa802a21dff605ec22465b47e92593b7699d", - "856": "6dfa000a05db40b04f271ad4e92cddb5283a69d0fdd6b6aab44930082fa594d5d5f399256953cbbe58679d97ba976c25c766bb1e599bc0b53d3d2b16a7944bc5", - "864": "5f6dc10f5c7794d94999445a479b1df6c18e418e0c746f7e7c5c2cd07ce7bae3723c9146375fd53c31d30b77ba8929ecb4f3f9826171471c5a0060874dbe9221", - "872": "be3af3dbf048265e9a4d4cf2be74fdaf4919fddfc787dde35724c50eed60248059539fa0d291c7fa0782a8bc97fedf4bc77b3359eb0a6a21a7cb1e157d261a6a", - "880": "ecab693d40c8312bbd410a6242020071943ab43aa4229d0881a947c607dcb4821a3fe66742e5ddf9ac5041da9b1606906957c29cc487e36437be176bbc4222c6", - "888": "059858c913729529293d386929071854485c703bf352a0fca529779e1207cb505a8265868347322c303a08940202d386aa6e88753697d7476ef3a7a638db71d9", - "896": "c742b9b057466c8a36da533ac0b518d9c650a9ff6e58e9698fac412d8f30037361dea5e178f0bc789778804b1976d8f8dc1a65b68212ec5a6f6edb1a5de88951", - "904": "7123ce99542416a1db471cdc46cf2120c78de65114e14d0e91e5fd8c323d58b66a7d78be1030904aa1e4f157d9adb333c01c02f84c0c49d91073178a9f677976", - "912": "b5dba1e9d437d57d6d8f676a89760b1147454e9e492092ce192f5bde015fa8c54361c3e651f76621332817e6b7b9081da9818f07b3daac9c9e34b6f65f349adc", - "920": "e69b0a4a096714de5972e51831d6a0a47bf0dcf390325c283b1a78fbb0aed2a49c3d0efedc048985eb5b256d8bc6e1b19cd42aba2bc18b16ff6b9ccdf45d15ef", - "928": "ad134be6908cfb23ffb8920a7993f803b750695ad7195667b9bd2a09accceca68b67de2d3312c8fb04482f543be20f4f1b216887f6221a452b1d93ce246ad384", - "936": "a6d9a83b9a6a258f012844abb76b5a53b5b06e0e2a2802cbeb7b29074645b736a023ff8cc71627915fcacf734c8bbb6f68dd6fd0e76e73c7556dd5e8d8eee6f6", - "944": "1ca44ffd7c894f103cfc3143c94ffcc6bf3b5c9e65bc6e5410d446ed5c72bd666197cf3ea58688bf06c4bfe3e73f9a3f8caa5d6cd284e4a5e03e1313ed670b6e", - "952": "7652a71ee36ca1e3d99ad8868d2268ba933314e1f2d1ece6e3dc599b9fdc46753c94bf2b3f76587b13582d5f75c29bdd2bb2fbb957ae5e4fd0f368e64e377d3f", - "960": "f6bf19e74abea64ae336bb1f425ec1d58f743ba700b56ee7a22ddffdbed3fbade27fcf7b9a2797d2b374e769d632fb245a9e6457151e5d63012b9b0b292ceb93", - "968": "1f7ab9a67b8664d588c3b798322fee18abc43f9c064b82c3394409096901e38063024e638d1f4f4ac95a22d0b0165a3efa5633a8ed301eb861f908ad91d2af5f", - "976": "4f44285fafbda04fddea743b76c3c4dd3c9a0155060a666e3df796a5322dcb9c055971b5fd61323b8ae8a6b64680a7d71c5077afef83056b01f57f426cd17399", - "984": "1a088a13768ff64f5a63ef623e245bc68a0ac64a2b1fe9eab756a051cc9cb8773056736c20e4e51c17cc83c69dbc544bb4f095593d406066b16c15a53a8a22c7", - "992": "a7b7b719aa7c335b2c96890c1f40be4fa63278c6396c9a244556d039aa16a862aabf60b417e95003da542983c2730a8fbcb2d9be81eee58d33b488ceea986005", - "1000": "7cc4a1f7b43334e2bacc0c2dda214a4302db5021f176c23518cfeb5f9ffd8b149217c297a83affb0e18671fcc82094d14ac7c08ef17872cb3b4e4f380fbb75a0", - "1008": "c12761f00a8d1daed752fbc278ff9fb6cc2366f07db2f7a569ec4c4aa70571bbee078ff0d306c2b9ff50f14f6480bca6b9855f2a2b477f025adef29736df8154", - "1016": "40c3e38bcd69664a45c84a848c676cd489bc420abb6140dbcd14aeb82f3a52664fd025f26b4dfb52c99b2d88f734df113b3ed32884e272c0c68a2c18e2005e56", - "1024": "832fa35e6ad63ab4c1ac025496b38891ab95986a7ae6dedede9a528d3f0ecc93a8c5aa04863487c827a057abeacafe3ce411bd49fffea012f90c086a7e55825e", - "1032": "591a7fbaf0b560a42c7525552afdeae41b380fd9701105976bd5701234f6ec7d1f800b35744995ccdc79aef4004c8704a4b3eccd700fb68c40e4d40633a2bfcd", - "1040": "fd13f95a40175a4dabfed7c47b07599bdc6755b83c68cf391a6742e838e590da126d8f1d7d69a9ae69993f51ad5f17bc8c895063490aca07339a281d9ffa6fda", - "1048": "0cd73d5e4dafc2c8f1470ccf0d91ebed9772e5e2a125d79b135cd0a86771457cfc025d6abf6de194bce518f47a5bc839f8288eb55286478b724d1a9ad6aef7e9", - "1056": "0235c1c7d31efedad8823f40a52516aa7145aee88d4250b0c850d9f7da31afc2d7d500d81c69149d57ae2353a8d85d898e405528a7de8001c42081fd76519839", - "1064": "aa46f3cf5b63b99cd18bc0530a2c07234897a8c46ae5b0d2cc86ecedd79f2824845e2b4a60b51c925f152643da4b3824a1ef30bdc43d85f9b7e1f9a1f3c6aa15", - "1072": "922642eeba89cadadedf8c38f1744c01726fdfb3b55ae4a5476b54254b7cd9a180725f3381a6454549338157565ebac088b29738885b4f1ff8fc1ebac7d56da4", - "1080": "430921b199b2c4180c841eb09ef3ccdc7dc80793e43d94410cda5b64a251422ad787f33075e0f6bb18e1f7e84b1a7e7386b7c65352aea14bd67add03f09a004e", - "1088": "173bf476e53b69168626ad53cb84fffa6ae8e369499c25d38599c3b3ffed96b539a5471a31e5f4c0457603fa880b7509356931c166784af0bdac4f68684bca29", - "1096": "1ea4be40cb78e3c756ea962e4eeba36c3469ecffa40d892109fa888b5271855ae37baa5be9a0d907ad081d1644929ca0dd16b7a8bbd0c3d1b6c3515bd557608c", - "1104": "d57dd56f6f4d55d3db07030f91f165086647bedc07240c66203f6bd328f7fcf46459689568db402ea6f29da1646ef2576876090e656200b4489f408b55dcfc99", - "1112": "8d75401d0c8f186789832acf148f4fa1da028bf0efaabd51dacbc1678afea1aebb4fc0ea546d176d83205a9b7ce9a249faf88dbe51cf0f92db4a104df36dd82f", - "1120": "aa91a3a6f5690587fe1ea55f02be20945dc1ec839ea1486da2707cda5964e8f8bdcdee1d521932675049442e1b8350ff6c2a20c24f302be5c9d1bc8b03494050", - "1128": "31a4c95ce728866cfaf05dbc65ed97119cec99a624b191ac5b1eb998914b7b29fc09f71ff2e01510e88f74d04bb58cd741d3efbbe5f1166b5c9a2045dd84a9c5", - "1136": "d1a28fa6ff25a8eb4239887c3d845eddfac6cbf1339ff91fe83663da1a5e5a849f32d136973c38fe9c54230f970d19857d972a3eb86e2d64b2b302c0defa64fd", - "1144": "9f022f46b468702350612a04a8e42e89452558fae89ff2dc1aecd210f4c221204a51fa55012d22ff690c955d618b2819dd5d861ef59e17d41693b4fd2d70b981", - "1152": "4f8707ff2d414f80a4dd66ab12a8ebf1564ac406a5872aa6857b8bbfa00dff6057fe75e53e0562d9243101f2094e68194789a202c5a47655a6d2dd1b426c5ec8", - "1160": "e8fe68b74a9922464e45ad08493e2e7462afec671c4b7425ee5e873bea5339f59e009e26272291093223b3482ffedc5ecfd2832a78569d7de49b68c51813bcfe", - "1168": "08b9d5ddc2f758631c065e553b0743308a1fb943937cb0ae15f75ecc07c40cf3f2d274d2c916fbfbec1c262b07507532b8330497ab5e27facab58616647257f3", - "1176": "b05977f9c735add58dcb98b1bb0340babbc0392a2629639df4fa2096072ae8852219bd23163d9f68a523c88b57de5c1ff0bfa548de552bc9e1d1eebb12e1b068", - "1184": "20adb45ee45e35ccc5570f3caeea09b1e921cb0dd22536a69cdf20d39b608f28da161d17fee70e0064886a5522ee26a1cf215f63802cd0478ae017f5f6db4ed0", - "1192": "18b458490ebf71727ce479bd7cd8f692cb93cbcdd104e371d4fcb12aa3ea2efa8fd779c58ecd1c321e2edcf991a4aa4dbb8c35c8de98b52d898aa0f6087a82ea", - "1200": "15bca0a37f93998cffc0aa8a306e76b2376c7d03bffc3f274ba8e53f726a427680c2ac88cb02d48708fc5026c8d656bb5863a96748fdd04c438cff925863f7dc", - "1208": "a75fa73be8f031538e968bf59dfd1565eda3d35fd168c37bb9b2f289871ff7758bc29a58357486cd875c59fd41f7b484ed7c2580d158176ba452805cbd9302b9", - "1216": "327f1487a412b861e53047f755b2d6ffbb119ac289a40e4b9861e47b2c2c0922342a4005bd85aadb9c48cd899db55e156f13c409034d88aa1fcac59fdfbe06b8", - "1224": "74c782a54600c154b0336297058646f0ee85a531bf0c8d356f0fc96d90421d47014fff9f81eaeea6dc90ba4860d6e14e1a42635b893ce64461a4d44cd92cd48f", - "1232": "4603ea28dc3a5c1c8e083726202c51c1b763f7d09bbed5b8fbab0ef0f816e27e4e0675fe8b64c7dc356cb248c1214d40239fcdc1fb49b77b94f2a01a4b1f247d", - "1240": "41bc57357d866202927db08f16dccfdff89a16498316bdef586d5d92757319bc189386c763ea2961d10c2fd0068c1c2c73419c309547a21ea9854e11275a0e2e", - "1248": "2c811ec09d88f5debbb908e06d7972f536e704e6cdcc389b1f54d7b34a727b402c0779e4d41ccef9f4d9e3f93767dbe1462ab109604f95acc89c418e8dd40c8e", - "1256": "deeecac666ad939b3a8f1a00063b26ff8aecf97dddfd0aff77a63847ca7db09e279bd725e072b40bc2ff511c2a20146eb4b292fea9f8aa2e4652f894121c2257", - "1264": "490f734eb6640c36498a1af2f941a6791dbdd2b1faafdaaf6db82aadec20a650b750dcea117a3f009aef83cb4262348f97b3ae01098694bf857a4c78c19ba56c", - "1272": "aeeb225218faae867f637dc9e7134d8213a73ca5d91b5512d38c553d8329d7970a590d4f864b371f94c5b3a1ed815d443cb24bf0d6932782e24df80ba53feee2", - "1280": "ed668af5c6ef4115a4bedfdbe8204bb379a65ed35b2f4eb5f26ef605b93bf3c0046cd5c5c2f00bf8d8b99a07c86a489fa333057dde1a3c41ebf77d2c88e11beb", - "1288": "da465f237a360ddd2cf8e75e60721481f082ffe4c17478f2d0ebf70865de57430445c5940b1361fff0d9ead681a0b1f3600d05383bb25e53ed6f5e5595a87adf", - "1296": "be6ff2738afb06ee4fe46c11629196106ff3d8d9fe9871688b4ba4e988527652f6bd6b4eba4007ca3a6334998fdbc4d63ca5809104334095b23841af69601209", - "1304": "0d4115fb73c9351f4884c23543283ed210451a04ac3b176e9ae5afc5cccefec84af6d576c92c07451e76ab7e61eb6abec182d864dd50cb161f6f9e832f65d9bb", - "1312": "42b6a6a777578717590252d66a09839ddccc8331bd8a795138a62b8ca5c711226713b68da855233aa2d2ac0660c11f29f80f8dbf13335d0be35301c1968f081d", - "1320": "3f40b9fb411c50279f73ec33332330c216580a5c3169d7188f6b1de0892d8cc6e80c7bf1eea707a71d267ed48a137961fc329a0a32050ee915706c235e487153", - "1328": "5b1d609d50ce4ff4362ef96e32e0798385780c9365b5b1b465eec5c0fe400167a2557f64806dde296c3deddd4b18e5eb90bd1bb71ae2fdbd081d10003fd83960", - "1336": "ddd1a7f1d75ab14d1fc1dc6a3e865b688db53de4dad80be67a10aaa97cef308c8b57371946b200e795c9e74ef1dcbf43a24771ed0cf2a58f602bddff6bb88345", - "1344": "e3977556da6a520e8a862dac38ab14e67695d9ae3a55aa52af9252fd8f36bea109a6a7cf2da9ea64721d471bd666f0bbdf96447b0b8d4c1f03decb5bd418f7ca", - "1352": "fc4662db69023866d710713e2f634e0ec99b0288b7b1496fcf3c726af175994dd5ad71e90c3c174eb598f998117655f07bb474910110985ae85d14420af97b1f", - "1360": "6b14336aea148fcf74c6ef17fa36264dca5cc116ad6d6a9254e329248684bc7cce81e4ad67d334d668805b9e6298b7c886cbb06c028fba6a0b075b71a40455b0", - "1368": "2bb8562945a3cea1384a4c7e1471614b9fa6bc79bdac7595b3cac498f624d9d1ccbe08239ae30b7547c1bba549371a85c8f7bbc7910fe55d7a5f92a6a39da8e3", - "1376": "19af9add1d377d23e11e55ea8a39a79b5553809868f9ab79e177ccd912657cddd7e02853cf25a315f22264c93136bed99a42b098397bcaf1dbbf876863f988dc", - "1384": "662e04b018416b89e6977558b11772dd7a7450fbad3b47810e54c30f077a7d374afa18753c39101b73df363daddcc5c2333cbc39ad73165a1a8ec0e8ecd26e37", - "1392": "a9e7ad88b63fae09049e4aedbd23e5219cbf5db4695ec3f2c1167c6a7970c9e231131ec76fb19657bb35445981cc085831390c9d756928b865c2156b072246f6", - "1400": "76e5180b485838be4eed6f329a25088ef8360475763145da0868f813c7d16e2fbd2dac307c6f94990687410b478679dc31c1a5afb7a5f056b818b7340dd43e9c", - "1408": "913c9fd00d3abf9f66df204d7d2c08868640f4999ebac116e300937d4caaa63a4ac736089e23e5255485387605418329069a0867370805f3b5372241d8c2933a", - "1416": "847aad7aa005ee45ca8d68953f2790bcfc51e52d7db650d77cb8560d8a7c25f20f56959f965677645360f7cc86354ed79876f71d78fa2de734ba28323a76e2e9", - "1424": "f5dd8a5b24b8f34f43d52f256ea4880afe6efb182d550d3a62d77670f1e84d97d6d88b2492777bc74d6065448dbdae16b5ed054d86a29b82cae61943c2112746", - "1432": "6b7cdd664cfd5f4d13db3a1caf9f8847c72b8d73c8524af2ded9a74c1c9b6844dd4c50d6d5ccab6c0edb18e7a30415f244af371ea046c06abd6b82653b79b717", - "1440": "ca8c2c59a7cfe208f6642edf1404e558773e5e7925793cb7e266cfc23dc581633fd197228bf4b5f6d6eeec1788be7f304d915e8e52a66c143b816591d4be7058", - "1448": "777f0fa0dd1ca6aace4c4b8aaed1205b843acfe729892208e52444d865d4f0eac297041a936ce940b64b770f43944ad990f31ab2e921e0e77c846a8cdccd0df4", - "1456": "9adf9dd8ad75ba78d42c9e5a99f980ef4e3ffe0f96a606fb738a6ebb4030cef4bcca674e67689170cef3b68a7f2b2cca7092cfd7cef62eaaa0905dd9ee46df5d", - "1464": "71de400d939e8254d60533184a354622e9d5a5d05a601d554718aa73f8beccdf21acd9265ed8652836f82af9977217fdfa02713ff5558d661d02a39df05a1ecb", - "1472": "052cac93f83f78046b26e411e32185296f87879cc73b58f0c2b32a94582c3355a52b3cc65b680f1277f78b7792bf07bfefbbf5060eefb78807760b8de9a0837c", - "1480": "80ce5c83d94450857a0a513bef37b4d0760469a66267b72ea264305da3b3659796cf01f0569397f4c8d3127de708a2c0c2c6e3c0f53bb0c01d11cf6b68da820c", - "1488": "576e8cbc0c416da1617867681c8c3210bf1b43b3fa125cf90176ac2ec48b0f62b23227a08ad8d79f447de80546342d98d1370d5c806d1d42069c8a6e381ded0c", - "1496": "bacfd238dcb9e69c42bb3b53b0f8d64fc6d163411d1c483421c28cc7b738d1f0f87d314c0fa7573648d27d05d38a1f7e658839ef398c8972e8ff3e8c91b5dc62", - "1504": "202c0b54fa9bbb1f22c23dba786acc1b658c3012c9fa8925ca8df190b99b5940a961b9e70f044186ce45f1d65372d1b0e642a43faf7d033de5733403030143c6", - "1512": "42493bfcf21054ad1cd1c92cf92ee60d23588afc1e362a8241c9c13e23603757fc3fc0098b467876cbfddfaec0ec586bb3e7badd1fd934917a073cff153a828e", - "1520": "3f7f95e06980f15cedb62b4949479d673917591f07645ccb69bf6ef188463dad76fee3c9f6bb87139153b178776653f9a42be67978361456a5e36ff80079a4df", - "1528": "47852b6535f9b21407d93acdc448370c963e3b927ee561354611da1a9863425ccae5ef32c6d29fe2f46975d11f86099d2a9f785549348ff1554c5f9ef8ff1878", - "1536": "aefb3fb01d5a5566117841b70ed2eca0ce6e4a7d453ae8a11d9e39dfaf25753bb53ef1d9c388ab6238975616b64dfdd88b3df97397fd671930b4d28f33cb3931", - "1544": "d41356634cf634d78315c18351f0c132c854c768b2192a0475388414d46ae3a11be790ff0d286030e58d2f8b7f0730efad51eed135f9f67764fd4e1d78fc4fc6", - "1552": "90e82fd6b8caa4bbed1601832f022cd42ef5d2aa0c9c2646acb1862a606c9bf65305cfbd8dc70ddcfaa0679ba6a374b9016895502c89966d42bbe538a941f40a", - "1560": "df68a8a39dccd310ea7489d178b84e8afb5410011effdb4ae044a0ba1932a79c1f8d20c20b7504ad1d76553d5af3f18ab81fc095f98a97a95e61437b07b88204", - "1568": "e70450f1439d6cafdbbd6934ce8163769b2c5055fe1d4ec196ab093b2229849b3f58c8a74161fa0516c45ac406b1a73588cb6ba5de24a9e792d35953c3f01780", - "1576": "5d4d81e795be45c75c8f44d51a9f8762f0d0b6edc49d1cbd14056876bcf10058d1b72c06c8790c10168f0f42b9c9c9829bc5224ab5e2031de7464ecb74822cf4", - "1584": "5252ea0bf90d43e68d167411f3d171614c11b6830ddba8ab20ea126f70ab89b120f4db0bfc9e8a05d45b4da7b884c7eec51d4c079d021cef9b02d8e856895573", - "1592": "8a38da71a86a3f26a211d1d0662e13b5a3dfd0e9f719489b814d38ed1675147791720ed349d754fa5a6b260f2736f66db991c407664eb97fa6e936f08b9ef1f6", - "1600": "74f8af73f27d644bb937ebc0f58b8884a5f8c5c8be34d26cf7d0ebbfe724663e121b36b64fd42b61132d424b185e4093e91e517ee7bd1e106d8f9e74b8057564", - "1608": "cfc4825aca4ed0b0888647a6ebd37ac1ef1721806c35a462eff091f14e3950a23e508f821e65edc7ff8879e4d454e137429666342365cac8087346d11356ffd2", - "1616": "bb3566825ad58fd9d5aabe8b1e6c53f7f8e176f401ec327ad1455c20fe40b9a01012748df19885f1660ca77d3fce3a8d8f017e49cde3f36bcd7be3c776148b40", - "1624": "859d25e201724c1cd4f961a2cffa4d2d860c465c4941930d3c77b84f799c09a4a53ee1194f9404161eba23c869589d65183c4fa96ecd12cc9fcfcef059f0b4a8", - "1632": "38ee279be412ed11553578f7980ef4e17898acdbd774f5c98f9cbceba75e394dbc49357e9463e2ebecbae687d344f9059445716d3b3ac044e41537db00e9c12e", - "1640": "280f21678fd84e142ced7376105df2b088144d246f1c4802d3aa550f7b04afa2a226541255fab2ad36b67d2cae7aa42878464d3a4fe5945c820a1107073b8662", - "1648": "986651fdbdf3a65911fb73d5bb132de19f1060549e76811e05dc80afc8012f77fa965a7ffa380163eafad2d495fa2f07ce7d7a7d4a94eeb0505b64f7c429f849", - "1656": "53d548018056a72fe24ab630f7dc9c89de4891d83260767a403cc2ea3f8921458ec7ea45fbfbf38c4083a4aae3badb5f5d0422eb9e525b7b8b4cd5be0acb758d", - "1664": "4c84e9b4dc2f3c60bae0c3c11a0fd6d992567dc45695e5c8daaaf5955f6dc91bda8a1581a93462370c29212d7157588417ccea1f9ae8cad47635d1f837871869", - "1672": "140278e6bf4a3e62e5fffe20034dcedcf88afd11fa9d3dffa6eac8bc1e82b8d22458e8623126e4da646d1866218aa99140f110a1259a306132a4dd3292b5cadd", - "1680": "910ce76be8c967718fd1e1ef7969e7a56f1354c06fabeda892e07fbb659f936955e9ae9d75d5e3bba81e8455b775bf4cef2a4647e3c7c340f364a46f8857a72b", - "1688": "8e120865b61ed74c25a3ea9805e286bfaac7f75c37ab763c45e325e882e2b55d7fe2776a62c9da46915dc27881990560648cc6dac1226442adac95c4ab8cbe3b", - "1696": "dd073e6362674b8d090c505b14bc4b110c086a655264b2d0e917c3bd2f5e43305e4b034afcbd7abd991c38946fa601fe11af342b29c36e180b27081c37384765", - "1704": "2c1ff25c2128e3b59fc8ccc59d738523656a2a3a0c28f3bda52c49243bac3b42e26f8fc39da0d864040dd08ca4f608abab45afe38fc187882eb9bc3c46409d9a", - "1712": "805746e78c228c7a99b1fbae93bbf4c1f81dbf14c3ef7dbf70e9fa1fb5e611c5328e0a374fb2ca67a95161d5bf3f2d6c12c8a90e1cd4af6abbd00e37775d524d", - "1720": "c2e4138cf6d5df8997649c4324e06451218f575730c6ade1825067587022ea3220a7f049c412f42fa5a73313956165525fd3d3a753dcdccae1d29524043f2be4", - "1728": "7bb7aa3c574f6cf20740b77c4f349d405d815a949ab74eb4439638c9521694a448cee4729a1b88c5c6230ee0a6388d1a7ba8e909a990145aec951996462e62d7", - "1736": "32761245645a67adef404906f3e29233a1c09b98785a38d6f02477f90d242c5be71a4f9fe272e5a2c7ac644d245167a06d8162f01880dad6684a8c7e27044a7d", - "1744": "72c59b8caf93e65ff374bb129f7221b30dae35205c3455d4d268657c6d27926c940096d004737daf4306f321c840e402d35be5dae71cf48ff64f424a3cecf62d", - "1752": "77867fce5437f2bbb52accb44140df9d235023333031dda334525dcc9178877f96b0216d007f5e3718e55e233e43c146a6942fac5d815a892eb53f4bfeffe17b", - "1760": "37f2bf50d2e8757dac08977b2882baf7cd98e54fe12c57f9a5addc9ee5a77f8cda29864f70179a4cf473cc505c1e25837443b94ce4fa817101bfde224b5df107", - "1768": "acb477957256d5e134873b0a4f804a2a492a72468eaefe80f0de23dd55862fb7ce5aeb58fe9e1fcec12bfa7ed92d5e19d89075d11860315445250735811499e3", - "1776": "f5178b231491395b863f570b96268b27a403502cf228173a94989e13b78615e7a07087ed7422696c295a2d25b4c075ed5cbfb3765f67f60047014f4554dc5103", - "1784": "60a65939e7472f42ab9d9fef54da531c9576bf1f740e62e04feabc96d67c744c461a0ef4ab4c90bfb0c42f2a7724006218da38d1bdf0ddee536a11d2c0b2a6b7", - "1792": "b0b2699cd59779ee8903b952410b43e607de0514fb5d9722233fa363f686e5c0f02f2f4866b850f3294b9172fbbc5d6be0407fcda88a70bf62634f1246b7b48b", - "1800": "fa3d438287356a9ff72904a3a7e4e143f3dedf0104f8ea1a8851dbf401f5f767511ab18c629aab16b0fc7f42f96af244cf797713f3a2936e78c435e01e09a599", - "1808": "1527f8e417b736aadaecfd3331b56e0e2ad7ded6e621aac34a5289c77d0228370025d42d065f2141e8513c841ef6b7222d2b138f3b236500d92d782d30aa0c7f", - "1816": "4288ce417ac9bfbd79624ff3b6d372b27291bc41038f7d27658052ed9bfac9505593d7d7ff87620e43ddafc9d3152dde7bb572a035ba4af6d6163dedef761981", - "1824": "70eb09d44b47385081714872b8f37c5e10dbcb3173c752debab0fe9e7fa2ea33888696a85c30b3703b149a48bc08c9d0dc5c2d4ce2d50270b6bcfb38bdb2d738", - "1832": "b8d59524a0b510adf31c2be3c28d9bbfde3522425d7cc5e9985db21adef17a392683d0d9865beae4fe52e59212c3df4026df0d507bfd31796ba235c34fdf6eb4", - "1840": "cafc4468370b21bbb40d207d55fd79d4e753e4693075ccabbd8152dd2fc8be77c81ef5ecad93d0cf67fecf96d4ce401d1012a78fe5af1575d430b4e98bdb0dab", - "1848": "db9f9d60468d2aca0e907666bfe59d44aefaeffea0f9b5faf3f54a10f33441e0a8775d618d1dc05e454b4469acd393b1938381443eef27f98cea2aaf29faa504", - "1856": "fd298ee7689557cbb1d2db73661d535f88ef035339da8cdef3031f6f9247453dfa9c620865b9102903ccd7675a69ec4123ae4841c97c69ec8673830010169776", - "1864": "0dfad082d280839a2d3d54080f44e2826d554a3382a024a8b8f89125864d27f5ac75f8ca3d80c1b725005687a33817ef54b53c596e2d300b6464efdf25860bbc", - "1872": "9b15ded0185f1529ae4c75b56060a13484bf6db0b7113f8d440c5bcf91a9d95e7abd458d5d1d758a2019aa0a9a9ca18da108314ed4269b7752f95d241c8dd95e", - "1880": "9876b0fc3269b25129b2beedde7d2f342e22351723bedd3dcc5f225d8a480e0c596c99a7ffa5780e0a40f09bb342ab9e87682f8a7aec50bff19947e00bf66e6b", - "1888": "612452d85cc2af10f1aa9ced95eaa447c34a4a1236a27e8324037e9e9c7f983b8bbbb2bc168de5f86d161c940da2c86008a59c77ead4aa13630ebe882d73066b", - "1896": "55c0f0c1d6fd781c85e85464bf3afb4867cd46667e49d1c369beabd3194f4d5c237cb34027af805a0b369459c6524e633625dbf72c5ab88292b08a59bb7633f3", - "1904": "7ff37874dd828fd1b4cede7e0ae6bab8e366bb033b19892404b6546f2b7ac98ecd03e94fac5bf810c3b86cd8eb2a3c2485a31ba7e34472de14e406c0998c38b9", - "1912": "f5c2e8e12abc3765e9ae3682db57e2f8b766f6ecc8d0bcd50b8e237e427a2ac1e66b7212def66a5561ba1347aea507da088f4dd0f9f887354e6bf6b7dc267933", - "1920": "7f10aa2696ab43ce01e3658148b37ebe3c957345655f820f4d6176d2d0fb366561b25a185a845341986cbddd1b1dc33d48f48ec7cae99cbb016ca09595ae05cf", - "1928": "0d7ccd471a38bce93cb11b673260f9691d4f1cb7663d44b51eb3bd7b0f1bc45ec4382cbdef8d852424558615c554fe06405e3a1dfb88b97d8aca74192c804328", - "1936": "b17b646a2179d20b55e2763a189545896e861291e9321643dbebfbfd7951cee2e53283c2d9b54ba23b124c68098bc5229e31076198678ad124b8a8a56b848384", - "1944": "51d322a34629629f2f9c6a9d53c7205e8c7421da2e742c93e413e6985467885c6db5174472292c614a5833c8ce98fd222d8a924e98098282300e000f1977b1cb", - "1952": "aaba6ff7ab56a145141244bd68314072a96ef4c83d0f0cc883082f7158fbcd22d99c46308fd8472bfb4afc92510effe673fca3ac5906990130db540ecc346e92", - "1960": "0ce918b049a465f707b524f5cc1b0351682238078e8acf52006931daed402a5d584f7e3e7695b0b03076c1a09eea098bc9cde640e318a0527ce36ac92d8331e4", - "1968": "6b4d98b9d0287c6983df4e267bd638a9119b48e2f2e6cd010f98aece27e12174c317caccfb0bee9b3993c8c844e00e781448a5fd5ebf8c01e5c7d1114742fc9b", - "1976": "43c69deb892acd8b887966b88903c24b87b5abb38bae41bdd843bd753a04761897021382316fa657aeb17ddd9340cb81238708bdbe7efba88f1050f46ad2d6bb", - "1984": "2037cee5fc0e67a655ae13407e321619521c5f24409077bd06db0eb41c7b1972d5dfb43d5c40713989ed4a493bccca49a3ecad98dcdae5b97419ea86a0268266", - "1992": "ae52ba93bd7df6982d7bcb158b323331d27eb4cc71429c675709b0ef257fd3bcc1b66b3877f83fd418eff1eed019794f3a45299d865fbb3cf4ebbf814de6f3dc", - "2000": "72b6c1eaaf98e4643ec3e6348988c7c5ba8ae0a4bb2edc65409b7c4cbf37b3d6096de4967fc0d0b22b7e709531bf9f65ee0203bfd9925bbb2a8aac509ad762b4", - "2008": "87c56badccb0d0feabfbced93088bd0bd06840bd194e4c665d5045bf221a04839f0be03aa61f86aff8c403cbe08fedb76837a2c71cea50620ec0c488c4003785", - "2016": "7228261b12052a13ca19ec70ba1d7497f03f2f7fc208a1fc499a01d2f9d1177c9ae9ba46e6f418d6088e4dfa8d8d8a27ea99b4abc4236967054cdc60ed603e1a", - "2024": "c37c08d3a8c35c1c6d645b1dffd7ff4082efc21700d4c029e796620168abbfafe8af0f421417dd357855d8b131f49aa09795842d7d298845321bee7700ecda3c", - "2032": "657c140e3c895bdf7096ac866b2910d22b42ed6d038a39d3e50bb923eb0a70f1d06ebdf68a668cf91aef5a204063a765782b1d6489ece1885de1bda7bd581c55", - "2040": "1704129d4cabead74c1ab7ac89d773dc50a88ee71937c25fc3dfa5f4fdf791695040755f15894e6a56380f713c23aa5acac8da8cba4f356ff18ae72aa5e78902" -} diff --git a/pkgs/pow/corpus/skein.json5 b/pkgs/pow/corpus/skein.json5 new file mode 100644 index 00000000..c2a5a999 --- /dev/null +++ b/pkgs/pow/corpus/skein.json5 @@ -0,0 +1,260 @@ +{ + "nist": [ + "bc5b4c50925519c290cc634277ae3d6257212395cba733bbad37a4af0fa06af41fca7903d06564fea7a2d3730dbdb80c1f85562dfcc070334ea4d1d9e72cba7a", + "26d8382ebdc39072293ddcdda6568b4add2449a05424a12dfbf11595228e9fbf7c542f25ec0f7348b19ad23ef5e97d45e5cff7bb9969be332923f33be53a6d09", + "258f3ceebd9c01271d75abe73e90085390f54cd318b4d5fa71e8813a541dd96e9de5a119d053a913296929e263267a3710b3675ab99c42a3f67d96fbe6ca8451", + "72dda5ab6840dbd44cb2cc8220c2e0fb5c435878e00ebbdacf2a5ad2784860becb731c821d19e28133320aca0cc9e41aa9dbf1469f6388c4f74a900ea38a9f5c", + "af443e00d6c8ba0a533f9fb284cc69ea9e17787f2b10fa0013bf86d60a4ec0f7e9785fb74dc97a779832fcebc931f362b5dd5bb4b4a980d7609a7e0bee0d6020", + "c41a9ab3e5b6edb0c2d05dce88c16b2a787a514e7c6fa97da8735462b25d338046153732d038f64852a451dc57426f1d5352028a0a19723c514c532dae4aca9a", + "a8bfc5daed08c05725e3ecb19ffb34ab8c4c09b6f2f518a6cb320b877be8c3ce349a100e5ed9f5af0bebcc3c07ac42e55c91ebe9ea3daa88f5217e6696b167ff", + "90e135f85ceab5ac9314c4dc2af88585d44a6e395b6bd81365bc2cfa9ecc38240453bcc543e7a787874b728fe57b6e343c1db36027a0c87e9b47e803c8217fa4", + "981bea36316696b7b171ac9db6a4686a895a50c0ed1b8caf1d7975f9a7ad27f9cc27f116892da744bf9a63a354c3fa8f8c22d5fa9bae936c616bf304df185cbc", + "893241922416de44d3d59003765633d0e67c9d8ef9781f41cc5aa2660fb31fedeeb64324347aa6d071ebb14668d11837f130c46fb291289525cf50b251d08353", + "3f312715e82dfe72c02fa2a28fbf35a4d0b5d7c1945e58823157dff5e49e621da8e8bbab4030e2d0510cf31bb1a425e8fbd388004d4a799f2d7685e422cddc8a", + "70f487f0e5c35b8a9fa623f321296fe230f71b78814329a2b7713f123b00672f1ac73184db5e484cdb2af46b9807383629730b8473f519925c3f7aba799f8b44", + "de15a598296a36b058f59dfa688c15f8a92433710345fd18aa3bb90a38ad956501ecfca1b70b00ea0a567b915d4cf6446402ac1e8bf5fe621d2e7f6114094d9f", + "c62e943ac8257354d221b1350648b38f0f6f3dce21ebd6f67fe1b578015749e1e4ba26eee57ff80013514a31a6aca6da770884945d1eef0e2d1473e0d5ae3964", + "724fd538802b6a11bc9c856a55bb4eec7ad88738c0614d026e24f4883d873aa3d8ec05ce38f68cb983dbf3770797f62cbd0f263b3c58f0b4c14a3e8691e2d6f9", + "dcf9470309678cb649f9ab976c5b68a4904c5a4fc1b270c68865f3f906cd5095c63890479b7bbc086354a8eec19fa14c67328073a75d7274201e88a3e78104a0", + "ca2866302b25f886b6a8a82fe84a40dfa5496602e665d3df0153134e3f6faa37526a160ec41540e357347252d99ad1ee29762c4663f282c153e63fd7e68d9f18", + "31b22976c33ecf524576854357717faea05d3a399a8c6ef29538969132f2d3ff8f91ee7372e89c4429189f8c20fe7030d9a6e9d757192f4263719730832830d9", + "456437d984258c4e35dd2557c5a76d4d160f20bac68c527b1e0db30f9556586e46425639c7f95bdfad6c212bf1575165a3658855dcbae7084297f6b30fc0847e", + "76330b4267b5d26d2858b4740c317675eac8603f525b1adfddcb4ae9e87b81cf9226bda0ad7a3043b3a6de7e65d92972aa1a2dc894f3b4df6d0080daf42e48c1", + "d48bcfb92ac2671e854c8d23218640bed8c096e05fedb9505db438806e6a487ed257b205e0dfeafe0a7712d6b78e19b4a81b5fcf26cc2cf34a1010c26f416223", + "50d4671d3737f716647ee911c947443ffb6ab86980bf480fed5eada0ac43db11ba812ea7c5135bed9ebd5e3ed64c2370ecfb4c01630c48a0157807e56b76c363", + "94d1e4f3569bf071c876584f64c7a9ff5acdc7b6c00557a07221f29f16d5ea4a5daf3c427de279eeb5c1f5b6c4c164709075d701879307421ef85a86dadd4a43", + "5d8b12e9344fc266a237e91d919cd3a7079c7aa6b15198b44c73b5b77cc0191f60234e0dd0d89086ed7e7df86d0bcf3130321fcb340194942a990c2a3045c820", + "b1a228247e67bb27f5cb44e18d2aa0d8cd2f1ad5f21ad7d9b2f86cc736433cfd46b954c009cfc1b42b87570e0c14f57708ede98ea09312d66e4714d46ab0ee44", + "d36b86f247d80e3f475cdc115cf4659bbdcf560e8197641f1590b3554759e3630d54aa33c8393e2ba1336c8450736db04daf38ef6c532a9a1189043a0cf8c83e", + "8813b67754b4dea9b90036f8bb4fa9beed36681250a2c1a91564c76ef6c1c91738ff206c787da82bfa79f280c2f1d9e086ca8ada8198e379ec5637835a0b9fc6", + "d8f858496d6e56ed38418383c762fc1572ede99aa48dae2e557fb624ceee7515e57ff3fe72ec98ecace3b140f502d9c7a2b5891bb80eb5349b5a594470d3031c", + "1407a2ad0cc06efa064aae9e7d4186f7b3d991531691d0dc13b2c81a8687b03467ee1f27d000ffe0d8e9fe0dce85ad5779e0f827c97a5777d2ec0694ec6dde44", + "5366674adb264eaac4824109bc2f923817a2df058fa3bce6d91920ccb7e5a0442bf3126688edf444c1d6cc13ac950ee88a389726a53316e1df6bce7ff077afeb", + "e99a1aefcc3582d6acb3ec75fda02d074db5d015f84c945c994a92dd2e818711309effb6f271a9774233bb9a630df317dcfabe1eb9fe4ff6f14e8bdbb68d416b", + "8744c1a732aac29af53f55b887dcb340fadef26cf853c2cef6ac20e6f278e3deb5af9c78e6c0b59e2d791cabeb1dfb321104135e0f9f749e6786be4f4b19ad9f", + "386223818a80ad962e3d79edaeb76a7faa6ffa2f464abf247335dd75c763d6c1213c0a695cb4dfa3b3e9d284cb4b9a2fc2a1113b3b6a072200614bc10886d44a", + "7f18283782aed5776f2e28edf83d067db193260340fcfb08ba2eef5c8147823f07c00ebafbb8447967392b17e2b4d6249fb6e454d45bfcb615a80cb503f269c6", + "50050698334a42ba1dd6aa5ad0eaf8cccada992f4a4b14e5229a3ad6a561dc15e06d26a899f3cf6977c1dfbb5815f23461abc29a2a09fe5190de5e2f63cacd3a", + "211121ce41bded281fc05f7426daed575198c307ae107318a282a173b25cf64131874216a71d5c4e5b66c9b78d8d266dac1aa7773633d4cf5c41c521af1a3191", + "55bcdc136a42e740c172545dfd8225c008d31ba2b9b5de16c36a14d6932adba3565549a3b3043c8c8ef7f4db0bb655a9f7087ee7e0ab4201598aa4ea46f4d256", + "ee8b6a342667cb994d579cf80d5be9d4f816ffff03ba97b75c9b601fca358dea4da189d8be7809c248d75600a19973684e2b2065752a31af386f94e03cd28bd6", + "8c84f238abefd36fadbbe91253434dde7a6cf0a77eeabd2d5dfaecca4442441b498be287ba65c0f76ead4eaa1df115a3a6a0d4dd0453246e486798587b31b140", + "e0d4f5c59f616b29c683b9e6618887ae567dca178d81e8be0dd0a52c54d625af6d6cc9f86e1b0b7df25b82f3d7cac58c9875b474cdf9e9b4cb0d4573ecad90ce", + "69dcbda2a00fd0b92ee7e5b4f36981beb97e132c8f2e0d7b2b9cd455725e79800ab9864698b1c0845cceeea5e285b45cce4b4264c0d1febe874534170f691094", + "b99d4bdc59b2f4eb7ec578a6866a88dd1e848bb7d19d9447bab656c143e7fda912959a767e721882a66491299b96db396f392a688b38dcb020805b8f87168790", + "f5528d909e8f70c9329989ec9f7a1b5dff6695467447418d70c63e16e7eef184064963c4e05b2a2a28d7c30a93e3f54fe63a4288b727d2f13495cbd9734ccd5e", + "90d7925a328822063a33df2d74db9692bd668fe06f2a4156404ce252f29b50cc81af12b49eef25525fec69eb010c3a127668aab32494b6624104e748b2565519", + "ebbf87270fa3ddcf816905b74ac0694e354dee3952e6e27efcab42d74b15f3fe49a2434416932a3942aafb90c5622d608c86275741d35040e375b000de899403", + "73282c3df72197fc83ade5e4d263173d4b8fef58749bca410c48485dc19b8e6d34d42bbabb5cc8964e3d8e8f9db60356c9884495ce889bc90972091a065ee4e3", + "63dce6fd63ae437494c6f68b3d9249322ab3bb6ab2b9ebd156f22434dd91c463d0d11c5484835bfe34252a0b3674914fd89c25e3eecc374cc20b7c0a397c649e", + "b175a67928a446645732f22d10ee101eea9aadd83bd2bea38c9e25e1d1f4ff18865578e3115303eee7857b9d9decc59ab66f42f2aa70ea8192fe9abced5eeb68", + "de5d2a161b5fe2e087476cbf15f8df9c35e4be11e9a9ec01edc3818b88c4998eb0b4d405e7f4c924ddb3b077410ca73d2e7cd3ed6d87ad126190e445cb97d323", + "eb994a487424e5edb1ec536e9cb93aeda329c983f484c7e4f1bedd7cd1142b85191a9829e9ac098313feb9bfb9dc69f12b2fb348ad3903a170ee4567d13ce815", + "48a20d309e2f8f57c6ea2e0ba7cfab190c1da0e0e0ae1fce67d1d9aac18e81a1b7642a3714a355a0fab20266d67e3170bd0f8d09f8382760ac4758279ac49cb6", + "0ed3a9ecae74da1fef8d0a589487b0ec4427c7d6ce39860d13b26747195cd272dc093c40fc4b655406fffbdeae9311371fa2628ec9983b0b57af62b285bb6c6d", + "fcc42400748c3911ab68c19ffbb6c7849acfe78b524285143f4c136154bc516476b57144462cf89eaf1ed18ba1c1e4c56f75eb688d686046b8efe7e26373812e", + "55f603adc026859c471a94e0c1b604a9ff080d0609ee3c0bf9484bb8fbbd7c8f54f4b8ec470b77025c63ba5a02528b715562627268ac42f04b8143d26eeb05f5", + "1129594301d1df777fe7998448dad08ad3a8e4fda94c35aeade6615aa1982a5ca07669c873a58e623c0c386dc72630a350b0fa5520e7cda8d36bd506d5b24dbf", + "9f56190d40c0964f698c06d824a4c402ad47c95418c6fdf43aceb9ad7d092f7f62ff9d3f0625e15cde1ce3e6118861449390b5afe73b1865ec4f1f3fdba89bf8", + "c74b2d83470edf076accbed486888ccbb98e6693f9bcb54210cdd181a834cfe9e848270d985f883232d682f05fd225bd283e90eabd8a493ec713408ebaf34ae3", + "f1bfa1067feb68df42c69cf4944e2f57bf17291086adbad592cc0c80c4dc0a97d2a9b001ba57aea4d81e892f54bba9387ffbdf3a86250e81e5d12406e2ed57de", + "c4915196aec17b0cd50c64d214cd4d20cb7add653db9c623b76363c8d14b8fefe0b883b3f36c39c3f9e18958b0558f0d86fc6d4a52bac59b74cb58a68d4c8d8b", + "edda51e38622c3da0f007566f51f311ae06492c9d87f3190b0d74dc44348b1d2a8a6179afb293c0205c3eda1b5669cd951f477f885573a1c8c8d322bdd7ed5d2", + "66ec650cf34f084fe71fdf06fb3bf4bd17e1ebd545e878984125c31f862b939a3af25b37d17732c3dea4c2a8845ef1c49935f0473af0551ab54950a8b92980a7", + "51fe1efc5c659e5b7f94bbbf06078e119f4bbe8a40526f9a692ae970a58a0d24c8e67b94411109ce0445f425e24c94a52df48338e3943952142a4dba625f4ba0", + "a22e76813ad33d1cd84f1bc536fce8cfeda449e02a67d4b58f96c9689389ea40688a785991b90420f4a60244fbba85cf9677d519fe7ace300199b0cace944d46", + "ab7a725bd93ab805d89d81eb6766e46e1a0045e654b82b389e6b481eaa7d26fe39a471ccf99b6e87eb8e2a9c0d7cadad4b2cb401ffe5bd85de8d0235e8b5bdfd", + "2df35398690d99075bc67bde85d7cdf512df9f05fff16cfd1aef3f7e641961e60daf81fd8f9a625fe9149866fdc69f73c58aae9f758ab5ea3011c67649e3f0b0", + "342b05f8a6ba4899e48153c11a90d3635aca67a5852e706ecf2eb425d41372a7e62ba8efea5a6d5c1a338b060c3299a134d1d9139e3d96f4566a6cf15582de22", + "81119f5333d909808f37f4d9c00dd2c9b7f9b32608c6a517881155387a51141bfb945285f29ffcd79799b6e76265fd1940ccdec9a591cbbbe19204374a533343", + "f8225f85838f81b6114f30b69ddd4668d7bd8ba357d283b4df178380d8aaa0b8f10b6e85afb7356c206b43e4ef2e1b1ee0073a4be042af3f94c489902ae9c5aa", + "436067709b778cd3b60934649c8942d1930d74c36f8308686fb18b39e01decfcc34edb363d7ef2fd51353d571be1019f119ee79a5da61898927e6db5be909d69", + "dc4dce2dbec1a6e2bfc964c6f7d2a58f0a0718b0146bb3e0611d6d8b7269c357c508bf5f1a3723ec373a7b225d9b9941134b2f6d649ebf0e8e1b69e344072b62", + "c382a4ac5f26f5c77bd8908af7ac65c596bccd16f08d74b5c9cff3582a1b8b05c7ab4dc81c564a856e1f364fd2089ddeb5652c695a5d567177463dadf8f5872b", + "54bdafe6e565e86c38d28f6c9a39b4152033f87206c50b6a78f9ce41501f5a7b1de3baf6b1a41251f95a859f0106ce5b9226ca73bdfe39e947aed902b5038715", + "c326014cbaad2173d04c15c8f33c864efd5a9683a360db013387c85b0127705302db83affa28790aedb2ee9ab88da895e2f4b0f50180444f13564903d853f989", + "6560bbb2164b7a1d0b322618aaba50c12b331f82c2a2cfb5a3237ed9d51a19f7a0d4e6ccfe13c6c068b18ab38a3a635e2548f705cba60176fd6f2d22f32c4791", + "f9ee46172fb8f055afd51fd591c3eb21083d21d6c5b6ee4061ca8a54bedd5a75e4e086f962fd9d9ae62fcf9390ac55858af2e94216a3426febb5ed17d148ea88", + "b1c25a6252ac357cecdcf955ef97defc6161e1b813eaeb502ae4cedd0329eff954a037fdb7c32d7f4b1bb93057a5503d617768e0a7fa6de9c3876f43f2b36fc8", + "2ca0d306ed30d5b37f7af61e7f2ae1e9485ebe90167d7c270572d57703823b7e63ea55d90d4197a6fbb7a7a1fc383fcefe9f7b291722f50f566d4d4edec36748", + "d87cdc2deb84e484322c08d2cd8c841b0e2e8a06510188c42724ebc7f92ac2f972849c963839fc20625fddc74ddfe730beb7f1ac22cfeb9c08083ffec5f7c171", + "6d7181f90bd05ce2ce59a4ab86253bd919f8155381e70b2885bed000c31713283390f147805e8556bf9c9cb6399236166c82cb8572b1a3146adc4ee679aa3f17", + "ff5b17ee99e24c74058f479257cce7a381daf407cd967903c801647ea60ebf1fe910922788471bf1e0b609280ae7a7943966ff2836fda6989057e04f07a46498", + "06ef93e8d37636f73d67f4230160914ed05cd0cdbade77bd69b32e02c6a419fc220f6e71e1b269a76a1f7f4c4e3cb49c0e4c3ca3466c58c25e2930c71dd1bf0c", + "f52a2bc9dc33eeacc30211f4b92e882ab8dd761394b1d09e22a91684319eeab4feaa71c24cfa11da3add047672f19d47b48c90d50c9dbf5e2c0a50b995cf57ae", + "ed3d326e1e618d140bc3ac49db60c96b4d04252de2d44de3b414d8f96c05a6e37c82b1dc515df1cf784aade0201259cab249924776c7c4e0612240f30ddefbde", + "a811affa9ecd8d88b51ab201f0fc33a137ed91f0953e819f9bacfa19bbace50644dfea77823bb9bae5d6fd79b81b0ac7f202a386cff6eff9e7731553645975b9", + "fc3ae8d1c50a634d96334e5a2371cec832557b0c870ca70e08dfde59226880086e2a38a483fd1ce68c2085f804fc0c29417203cb5223f69a6df20292df13721e", + "507d99cf8498582388396e9da2103f885eee826349ebd8639b37b133877108abb1c34af892d1676f507ee40171de00502a71aae08e5222858ba4f330d2aa0393", + "29b639522730db5e24feee90619bb57274871ef65ffc8c98b57cf6eea0394a2b7eaf3c177108e5dbda22165c9c80bb0ba408f1e66603d0f9d48f22b3907e2122", + "aac3a8fed5d9d887edfddc24477a9043ce1a66bc58324ab1539c5d8e8225933277ac3f8f99e69233f12d8cba7642a50c9d12d314027385d8d2b743c884b27d50", + "04b926518d363b85967cab6a9cf36435eb6e06d987a023f50d8a6849219ed452760a2997e7c7e4b9a4d2818b617cf81e7f406aec7d0799939b6369390cf47d8c", + "c70c68fd238dbfb07c9ce17def173a1d5bd41b49dff3d401fa096b421e449926c7aa366892301f2c17fb6eff3c1c7ae8637af2f4a739a748aecbe1463ff5f0d7", + "21cf4a6b86445f9bd8ad570abe6bbab75f6ecfc3fa6c935be968a7f6e8a00f15c4683300fd07dbd245250cde363d9478cb8f73fa0443956f666bbafad7f05190", + "2915d4d41fc7ad3ebbb2720e8d2789984f800e5ebae0c9376d0197b95b81e064120d9a040d2a7a6320b4cf06c6676e5923472b8fa5b9034a01aefa48f41db008", + "1df71071b1815dcbd17c3b486fa0328d95d648dd58c9ede85cd6aa0574e74d35151ca6a984c8d46b0cc1b9310e22092627d8a831ab9551798963a6301420f9d0", + "b29a8b98e99e794b841d7525f4dbc88b52982642884b367f316ad2c611d1e3cfa5d0547ba9fa654a4a345ae7f2c39736959c217aa1a07dd8d6d0224f4bc6b385", + "6233238eddd88518dd42db92974c53386350172a3ee9d84ac898bcfa6d8c148dd3edeeabadb9a37d1fc95ab991f737131748cb969fb6f60c57826fb48ce90df0", + "7b13bd46e765b6bfcb652b4e8cf60abc47ce6adc26264017f906eafd45ff7b5aece954205f6f74eb696dedd0c8b24ab7b5d86f4e21f2ab5e82c42ccb3139bf6c", + "11ce4d9928e218504f4823b98bd9c90ea4aade88b34cda898c3470e0f8277db516a16e5a890860fd353de84c81cbb2d78443a4338582b98d26b33d516abea998", + "af2a7eab5ef18f204497d6b764937ee14eee7a28c37dd9cb816e8f937530aefcb8a225e3255518a4199270d4f5477e577b68fd0e7fe4b886e173a5b84106780b", + "58b2878c79a8cd7afd1ff815204dc38b4b483e5e543c16c5e45b55eeeb037552fd50b08d43abba3af6e25c49617ad8170c8fc0a5b9593c6a0cee8c767ed032eb", + "c2fa1be8aed5582f8e39e922c3917a4e030c8fbe07cdcd1b8888e9590dd31649de2b03da03fd4f15825ccff82dbd6d600c69b4872a843e2b121981bc65e0a20b", + "3b06e7d687e0f3c2f6a7645281f467d50853afb2a87bc73408ba7951598bf4869598681c05b941049c1b106256b412ca6107200858570032e68104318bc5341b", + "765637b71f0546aeb0394bb91fdb8fef6dd85adfde6e06a321da24033ee8e3b0403646f863f97c6bb9ca5b8702c6bcc691db182d38db19ba2b8595776f5d775e", + "278351d6f90b051ac4804c8d85a30c56a242fdf1df556773f7a1a67b6bde8d6e49625d70ec13c9fd974d36c782e24bdd70cabc84b4d7d7607719e6ccb88f5611", + "252c064c54a56f4c21888ca2f1b8cd3f56d46c7a8bd65ccf30674001fe58ecf52fc0f571b8ffef4c8970a227f39f8e61cd2068dfaa79ff86cee6032e020c1d0a", + "31cd4b1bc499be3923d020290e49a9b24fc4a0a7b974ab0bf2447394e193854b9c575d4f8df12c96a9a1ce2e74b6bb0d731d26cccd7044ce1d6d7580ce440a4d", + "a1ec50cc515d21489a34bd69c88f2c45ee97b0a39b9aaac83d3b008fd856ecd5661a78a46dc73d87145a3de34d702e1e6f08b9b4e52e5a0042f4c71865448c74", + "c0f9653a4bc7526dfa97e4edb6672b04864195bae6fc0a1113a3b83dbd2c8855b576845f948302947e7efd983f49aa802a21dff605ec22465b47e92593b7699d", + "6dfa000a05db40b04f271ad4e92cddb5283a69d0fdd6b6aab44930082fa594d5d5f399256953cbbe58679d97ba976c25c766bb1e599bc0b53d3d2b16a7944bc5", + "5f6dc10f5c7794d94999445a479b1df6c18e418e0c746f7e7c5c2cd07ce7bae3723c9146375fd53c31d30b77ba8929ecb4f3f9826171471c5a0060874dbe9221", + "be3af3dbf048265e9a4d4cf2be74fdaf4919fddfc787dde35724c50eed60248059539fa0d291c7fa0782a8bc97fedf4bc77b3359eb0a6a21a7cb1e157d261a6a", + "ecab693d40c8312bbd410a6242020071943ab43aa4229d0881a947c607dcb4821a3fe66742e5ddf9ac5041da9b1606906957c29cc487e36437be176bbc4222c6", + "059858c913729529293d386929071854485c703bf352a0fca529779e1207cb505a8265868347322c303a08940202d386aa6e88753697d7476ef3a7a638db71d9", + "c742b9b057466c8a36da533ac0b518d9c650a9ff6e58e9698fac412d8f30037361dea5e178f0bc789778804b1976d8f8dc1a65b68212ec5a6f6edb1a5de88951", + "7123ce99542416a1db471cdc46cf2120c78de65114e14d0e91e5fd8c323d58b66a7d78be1030904aa1e4f157d9adb333c01c02f84c0c49d91073178a9f677976", + "b5dba1e9d437d57d6d8f676a89760b1147454e9e492092ce192f5bde015fa8c54361c3e651f76621332817e6b7b9081da9818f07b3daac9c9e34b6f65f349adc", + "e69b0a4a096714de5972e51831d6a0a47bf0dcf390325c283b1a78fbb0aed2a49c3d0efedc048985eb5b256d8bc6e1b19cd42aba2bc18b16ff6b9ccdf45d15ef", + "ad134be6908cfb23ffb8920a7993f803b750695ad7195667b9bd2a09accceca68b67de2d3312c8fb04482f543be20f4f1b216887f6221a452b1d93ce246ad384", + "a6d9a83b9a6a258f012844abb76b5a53b5b06e0e2a2802cbeb7b29074645b736a023ff8cc71627915fcacf734c8bbb6f68dd6fd0e76e73c7556dd5e8d8eee6f6", + "1ca44ffd7c894f103cfc3143c94ffcc6bf3b5c9e65bc6e5410d446ed5c72bd666197cf3ea58688bf06c4bfe3e73f9a3f8caa5d6cd284e4a5e03e1313ed670b6e", + "7652a71ee36ca1e3d99ad8868d2268ba933314e1f2d1ece6e3dc599b9fdc46753c94bf2b3f76587b13582d5f75c29bdd2bb2fbb957ae5e4fd0f368e64e377d3f", + "f6bf19e74abea64ae336bb1f425ec1d58f743ba700b56ee7a22ddffdbed3fbade27fcf7b9a2797d2b374e769d632fb245a9e6457151e5d63012b9b0b292ceb93", + "1f7ab9a67b8664d588c3b798322fee18abc43f9c064b82c3394409096901e38063024e638d1f4f4ac95a22d0b0165a3efa5633a8ed301eb861f908ad91d2af5f", + "4f44285fafbda04fddea743b76c3c4dd3c9a0155060a666e3df796a5322dcb9c055971b5fd61323b8ae8a6b64680a7d71c5077afef83056b01f57f426cd17399", + "1a088a13768ff64f5a63ef623e245bc68a0ac64a2b1fe9eab756a051cc9cb8773056736c20e4e51c17cc83c69dbc544bb4f095593d406066b16c15a53a8a22c7", + "a7b7b719aa7c335b2c96890c1f40be4fa63278c6396c9a244556d039aa16a862aabf60b417e95003da542983c2730a8fbcb2d9be81eee58d33b488ceea986005", + "7cc4a1f7b43334e2bacc0c2dda214a4302db5021f176c23518cfeb5f9ffd8b149217c297a83affb0e18671fcc82094d14ac7c08ef17872cb3b4e4f380fbb75a0", + "c12761f00a8d1daed752fbc278ff9fb6cc2366f07db2f7a569ec4c4aa70571bbee078ff0d306c2b9ff50f14f6480bca6b9855f2a2b477f025adef29736df8154", + "40c3e38bcd69664a45c84a848c676cd489bc420abb6140dbcd14aeb82f3a52664fd025f26b4dfb52c99b2d88f734df113b3ed32884e272c0c68a2c18e2005e56", + "832fa35e6ad63ab4c1ac025496b38891ab95986a7ae6dedede9a528d3f0ecc93a8c5aa04863487c827a057abeacafe3ce411bd49fffea012f90c086a7e55825e", + "591a7fbaf0b560a42c7525552afdeae41b380fd9701105976bd5701234f6ec7d1f800b35744995ccdc79aef4004c8704a4b3eccd700fb68c40e4d40633a2bfcd", + "fd13f95a40175a4dabfed7c47b07599bdc6755b83c68cf391a6742e838e590da126d8f1d7d69a9ae69993f51ad5f17bc8c895063490aca07339a281d9ffa6fda", + "0cd73d5e4dafc2c8f1470ccf0d91ebed9772e5e2a125d79b135cd0a86771457cfc025d6abf6de194bce518f47a5bc839f8288eb55286478b724d1a9ad6aef7e9", + "0235c1c7d31efedad8823f40a52516aa7145aee88d4250b0c850d9f7da31afc2d7d500d81c69149d57ae2353a8d85d898e405528a7de8001c42081fd76519839", + "aa46f3cf5b63b99cd18bc0530a2c07234897a8c46ae5b0d2cc86ecedd79f2824845e2b4a60b51c925f152643da4b3824a1ef30bdc43d85f9b7e1f9a1f3c6aa15", + "922642eeba89cadadedf8c38f1744c01726fdfb3b55ae4a5476b54254b7cd9a180725f3381a6454549338157565ebac088b29738885b4f1ff8fc1ebac7d56da4", + "430921b199b2c4180c841eb09ef3ccdc7dc80793e43d94410cda5b64a251422ad787f33075e0f6bb18e1f7e84b1a7e7386b7c65352aea14bd67add03f09a004e", + "173bf476e53b69168626ad53cb84fffa6ae8e369499c25d38599c3b3ffed96b539a5471a31e5f4c0457603fa880b7509356931c166784af0bdac4f68684bca29", + "1ea4be40cb78e3c756ea962e4eeba36c3469ecffa40d892109fa888b5271855ae37baa5be9a0d907ad081d1644929ca0dd16b7a8bbd0c3d1b6c3515bd557608c", + "d57dd56f6f4d55d3db07030f91f165086647bedc07240c66203f6bd328f7fcf46459689568db402ea6f29da1646ef2576876090e656200b4489f408b55dcfc99", + "8d75401d0c8f186789832acf148f4fa1da028bf0efaabd51dacbc1678afea1aebb4fc0ea546d176d83205a9b7ce9a249faf88dbe51cf0f92db4a104df36dd82f", + "aa91a3a6f5690587fe1ea55f02be20945dc1ec839ea1486da2707cda5964e8f8bdcdee1d521932675049442e1b8350ff6c2a20c24f302be5c9d1bc8b03494050", + "31a4c95ce728866cfaf05dbc65ed97119cec99a624b191ac5b1eb998914b7b29fc09f71ff2e01510e88f74d04bb58cd741d3efbbe5f1166b5c9a2045dd84a9c5", + "d1a28fa6ff25a8eb4239887c3d845eddfac6cbf1339ff91fe83663da1a5e5a849f32d136973c38fe9c54230f970d19857d972a3eb86e2d64b2b302c0defa64fd", + "9f022f46b468702350612a04a8e42e89452558fae89ff2dc1aecd210f4c221204a51fa55012d22ff690c955d618b2819dd5d861ef59e17d41693b4fd2d70b981", + "4f8707ff2d414f80a4dd66ab12a8ebf1564ac406a5872aa6857b8bbfa00dff6057fe75e53e0562d9243101f2094e68194789a202c5a47655a6d2dd1b426c5ec8", + "e8fe68b74a9922464e45ad08493e2e7462afec671c4b7425ee5e873bea5339f59e009e26272291093223b3482ffedc5ecfd2832a78569d7de49b68c51813bcfe", + "08b9d5ddc2f758631c065e553b0743308a1fb943937cb0ae15f75ecc07c40cf3f2d274d2c916fbfbec1c262b07507532b8330497ab5e27facab58616647257f3", + "b05977f9c735add58dcb98b1bb0340babbc0392a2629639df4fa2096072ae8852219bd23163d9f68a523c88b57de5c1ff0bfa548de552bc9e1d1eebb12e1b068", + "20adb45ee45e35ccc5570f3caeea09b1e921cb0dd22536a69cdf20d39b608f28da161d17fee70e0064886a5522ee26a1cf215f63802cd0478ae017f5f6db4ed0", + "18b458490ebf71727ce479bd7cd8f692cb93cbcdd104e371d4fcb12aa3ea2efa8fd779c58ecd1c321e2edcf991a4aa4dbb8c35c8de98b52d898aa0f6087a82ea", + "15bca0a37f93998cffc0aa8a306e76b2376c7d03bffc3f274ba8e53f726a427680c2ac88cb02d48708fc5026c8d656bb5863a96748fdd04c438cff925863f7dc", + "a75fa73be8f031538e968bf59dfd1565eda3d35fd168c37bb9b2f289871ff7758bc29a58357486cd875c59fd41f7b484ed7c2580d158176ba452805cbd9302b9", + "327f1487a412b861e53047f755b2d6ffbb119ac289a40e4b9861e47b2c2c0922342a4005bd85aadb9c48cd899db55e156f13c409034d88aa1fcac59fdfbe06b8", + "74c782a54600c154b0336297058646f0ee85a531bf0c8d356f0fc96d90421d47014fff9f81eaeea6dc90ba4860d6e14e1a42635b893ce64461a4d44cd92cd48f", + "4603ea28dc3a5c1c8e083726202c51c1b763f7d09bbed5b8fbab0ef0f816e27e4e0675fe8b64c7dc356cb248c1214d40239fcdc1fb49b77b94f2a01a4b1f247d", + "41bc57357d866202927db08f16dccfdff89a16498316bdef586d5d92757319bc189386c763ea2961d10c2fd0068c1c2c73419c309547a21ea9854e11275a0e2e", + "2c811ec09d88f5debbb908e06d7972f536e704e6cdcc389b1f54d7b34a727b402c0779e4d41ccef9f4d9e3f93767dbe1462ab109604f95acc89c418e8dd40c8e", + "deeecac666ad939b3a8f1a00063b26ff8aecf97dddfd0aff77a63847ca7db09e279bd725e072b40bc2ff511c2a20146eb4b292fea9f8aa2e4652f894121c2257", + "490f734eb6640c36498a1af2f941a6791dbdd2b1faafdaaf6db82aadec20a650b750dcea117a3f009aef83cb4262348f97b3ae01098694bf857a4c78c19ba56c", + "aeeb225218faae867f637dc9e7134d8213a73ca5d91b5512d38c553d8329d7970a590d4f864b371f94c5b3a1ed815d443cb24bf0d6932782e24df80ba53feee2", + "ed668af5c6ef4115a4bedfdbe8204bb379a65ed35b2f4eb5f26ef605b93bf3c0046cd5c5c2f00bf8d8b99a07c86a489fa333057dde1a3c41ebf77d2c88e11beb", + "da465f237a360ddd2cf8e75e60721481f082ffe4c17478f2d0ebf70865de57430445c5940b1361fff0d9ead681a0b1f3600d05383bb25e53ed6f5e5595a87adf", + "be6ff2738afb06ee4fe46c11629196106ff3d8d9fe9871688b4ba4e988527652f6bd6b4eba4007ca3a6334998fdbc4d63ca5809104334095b23841af69601209", + "0d4115fb73c9351f4884c23543283ed210451a04ac3b176e9ae5afc5cccefec84af6d576c92c07451e76ab7e61eb6abec182d864dd50cb161f6f9e832f65d9bb", + "42b6a6a777578717590252d66a09839ddccc8331bd8a795138a62b8ca5c711226713b68da855233aa2d2ac0660c11f29f80f8dbf13335d0be35301c1968f081d", + "3f40b9fb411c50279f73ec33332330c216580a5c3169d7188f6b1de0892d8cc6e80c7bf1eea707a71d267ed48a137961fc329a0a32050ee915706c235e487153", + "5b1d609d50ce4ff4362ef96e32e0798385780c9365b5b1b465eec5c0fe400167a2557f64806dde296c3deddd4b18e5eb90bd1bb71ae2fdbd081d10003fd83960", + "ddd1a7f1d75ab14d1fc1dc6a3e865b688db53de4dad80be67a10aaa97cef308c8b57371946b200e795c9e74ef1dcbf43a24771ed0cf2a58f602bddff6bb88345", + "e3977556da6a520e8a862dac38ab14e67695d9ae3a55aa52af9252fd8f36bea109a6a7cf2da9ea64721d471bd666f0bbdf96447b0b8d4c1f03decb5bd418f7ca", + "fc4662db69023866d710713e2f634e0ec99b0288b7b1496fcf3c726af175994dd5ad71e90c3c174eb598f998117655f07bb474910110985ae85d14420af97b1f", + "6b14336aea148fcf74c6ef17fa36264dca5cc116ad6d6a9254e329248684bc7cce81e4ad67d334d668805b9e6298b7c886cbb06c028fba6a0b075b71a40455b0", + "2bb8562945a3cea1384a4c7e1471614b9fa6bc79bdac7595b3cac498f624d9d1ccbe08239ae30b7547c1bba549371a85c8f7bbc7910fe55d7a5f92a6a39da8e3", + "19af9add1d377d23e11e55ea8a39a79b5553809868f9ab79e177ccd912657cddd7e02853cf25a315f22264c93136bed99a42b098397bcaf1dbbf876863f988dc", + "662e04b018416b89e6977558b11772dd7a7450fbad3b47810e54c30f077a7d374afa18753c39101b73df363daddcc5c2333cbc39ad73165a1a8ec0e8ecd26e37", + "a9e7ad88b63fae09049e4aedbd23e5219cbf5db4695ec3f2c1167c6a7970c9e231131ec76fb19657bb35445981cc085831390c9d756928b865c2156b072246f6", + "76e5180b485838be4eed6f329a25088ef8360475763145da0868f813c7d16e2fbd2dac307c6f94990687410b478679dc31c1a5afb7a5f056b818b7340dd43e9c", + "913c9fd00d3abf9f66df204d7d2c08868640f4999ebac116e300937d4caaa63a4ac736089e23e5255485387605418329069a0867370805f3b5372241d8c2933a", + "847aad7aa005ee45ca8d68953f2790bcfc51e52d7db650d77cb8560d8a7c25f20f56959f965677645360f7cc86354ed79876f71d78fa2de734ba28323a76e2e9", + "f5dd8a5b24b8f34f43d52f256ea4880afe6efb182d550d3a62d77670f1e84d97d6d88b2492777bc74d6065448dbdae16b5ed054d86a29b82cae61943c2112746", + "6b7cdd664cfd5f4d13db3a1caf9f8847c72b8d73c8524af2ded9a74c1c9b6844dd4c50d6d5ccab6c0edb18e7a30415f244af371ea046c06abd6b82653b79b717", + "ca8c2c59a7cfe208f6642edf1404e558773e5e7925793cb7e266cfc23dc581633fd197228bf4b5f6d6eeec1788be7f304d915e8e52a66c143b816591d4be7058", + "777f0fa0dd1ca6aace4c4b8aaed1205b843acfe729892208e52444d865d4f0eac297041a936ce940b64b770f43944ad990f31ab2e921e0e77c846a8cdccd0df4", + "9adf9dd8ad75ba78d42c9e5a99f980ef4e3ffe0f96a606fb738a6ebb4030cef4bcca674e67689170cef3b68a7f2b2cca7092cfd7cef62eaaa0905dd9ee46df5d", + "71de400d939e8254d60533184a354622e9d5a5d05a601d554718aa73f8beccdf21acd9265ed8652836f82af9977217fdfa02713ff5558d661d02a39df05a1ecb", + "052cac93f83f78046b26e411e32185296f87879cc73b58f0c2b32a94582c3355a52b3cc65b680f1277f78b7792bf07bfefbbf5060eefb78807760b8de9a0837c", + "80ce5c83d94450857a0a513bef37b4d0760469a66267b72ea264305da3b3659796cf01f0569397f4c8d3127de708a2c0c2c6e3c0f53bb0c01d11cf6b68da820c", + "576e8cbc0c416da1617867681c8c3210bf1b43b3fa125cf90176ac2ec48b0f62b23227a08ad8d79f447de80546342d98d1370d5c806d1d42069c8a6e381ded0c", + "bacfd238dcb9e69c42bb3b53b0f8d64fc6d163411d1c483421c28cc7b738d1f0f87d314c0fa7573648d27d05d38a1f7e658839ef398c8972e8ff3e8c91b5dc62", + "202c0b54fa9bbb1f22c23dba786acc1b658c3012c9fa8925ca8df190b99b5940a961b9e70f044186ce45f1d65372d1b0e642a43faf7d033de5733403030143c6", + "42493bfcf21054ad1cd1c92cf92ee60d23588afc1e362a8241c9c13e23603757fc3fc0098b467876cbfddfaec0ec586bb3e7badd1fd934917a073cff153a828e", + "3f7f95e06980f15cedb62b4949479d673917591f07645ccb69bf6ef188463dad76fee3c9f6bb87139153b178776653f9a42be67978361456a5e36ff80079a4df", + "47852b6535f9b21407d93acdc448370c963e3b927ee561354611da1a9863425ccae5ef32c6d29fe2f46975d11f86099d2a9f785549348ff1554c5f9ef8ff1878", + "aefb3fb01d5a5566117841b70ed2eca0ce6e4a7d453ae8a11d9e39dfaf25753bb53ef1d9c388ab6238975616b64dfdd88b3df97397fd671930b4d28f33cb3931", + "d41356634cf634d78315c18351f0c132c854c768b2192a0475388414d46ae3a11be790ff0d286030e58d2f8b7f0730efad51eed135f9f67764fd4e1d78fc4fc6", + "90e82fd6b8caa4bbed1601832f022cd42ef5d2aa0c9c2646acb1862a606c9bf65305cfbd8dc70ddcfaa0679ba6a374b9016895502c89966d42bbe538a941f40a", + "df68a8a39dccd310ea7489d178b84e8afb5410011effdb4ae044a0ba1932a79c1f8d20c20b7504ad1d76553d5af3f18ab81fc095f98a97a95e61437b07b88204", + "e70450f1439d6cafdbbd6934ce8163769b2c5055fe1d4ec196ab093b2229849b3f58c8a74161fa0516c45ac406b1a73588cb6ba5de24a9e792d35953c3f01780", + "5d4d81e795be45c75c8f44d51a9f8762f0d0b6edc49d1cbd14056876bcf10058d1b72c06c8790c10168f0f42b9c9c9829bc5224ab5e2031de7464ecb74822cf4", + "5252ea0bf90d43e68d167411f3d171614c11b6830ddba8ab20ea126f70ab89b120f4db0bfc9e8a05d45b4da7b884c7eec51d4c079d021cef9b02d8e856895573", + "8a38da71a86a3f26a211d1d0662e13b5a3dfd0e9f719489b814d38ed1675147791720ed349d754fa5a6b260f2736f66db991c407664eb97fa6e936f08b9ef1f6", + "74f8af73f27d644bb937ebc0f58b8884a5f8c5c8be34d26cf7d0ebbfe724663e121b36b64fd42b61132d424b185e4093e91e517ee7bd1e106d8f9e74b8057564", + "cfc4825aca4ed0b0888647a6ebd37ac1ef1721806c35a462eff091f14e3950a23e508f821e65edc7ff8879e4d454e137429666342365cac8087346d11356ffd2", + "bb3566825ad58fd9d5aabe8b1e6c53f7f8e176f401ec327ad1455c20fe40b9a01012748df19885f1660ca77d3fce3a8d8f017e49cde3f36bcd7be3c776148b40", + "859d25e201724c1cd4f961a2cffa4d2d860c465c4941930d3c77b84f799c09a4a53ee1194f9404161eba23c869589d65183c4fa96ecd12cc9fcfcef059f0b4a8", + "38ee279be412ed11553578f7980ef4e17898acdbd774f5c98f9cbceba75e394dbc49357e9463e2ebecbae687d344f9059445716d3b3ac044e41537db00e9c12e", + "280f21678fd84e142ced7376105df2b088144d246f1c4802d3aa550f7b04afa2a226541255fab2ad36b67d2cae7aa42878464d3a4fe5945c820a1107073b8662", + "986651fdbdf3a65911fb73d5bb132de19f1060549e76811e05dc80afc8012f77fa965a7ffa380163eafad2d495fa2f07ce7d7a7d4a94eeb0505b64f7c429f849", + "53d548018056a72fe24ab630f7dc9c89de4891d83260767a403cc2ea3f8921458ec7ea45fbfbf38c4083a4aae3badb5f5d0422eb9e525b7b8b4cd5be0acb758d", + "4c84e9b4dc2f3c60bae0c3c11a0fd6d992567dc45695e5c8daaaf5955f6dc91bda8a1581a93462370c29212d7157588417ccea1f9ae8cad47635d1f837871869", + "140278e6bf4a3e62e5fffe20034dcedcf88afd11fa9d3dffa6eac8bc1e82b8d22458e8623126e4da646d1866218aa99140f110a1259a306132a4dd3292b5cadd", + "910ce76be8c967718fd1e1ef7969e7a56f1354c06fabeda892e07fbb659f936955e9ae9d75d5e3bba81e8455b775bf4cef2a4647e3c7c340f364a46f8857a72b", + "8e120865b61ed74c25a3ea9805e286bfaac7f75c37ab763c45e325e882e2b55d7fe2776a62c9da46915dc27881990560648cc6dac1226442adac95c4ab8cbe3b", + "dd073e6362674b8d090c505b14bc4b110c086a655264b2d0e917c3bd2f5e43305e4b034afcbd7abd991c38946fa601fe11af342b29c36e180b27081c37384765", + "2c1ff25c2128e3b59fc8ccc59d738523656a2a3a0c28f3bda52c49243bac3b42e26f8fc39da0d864040dd08ca4f608abab45afe38fc187882eb9bc3c46409d9a", + "805746e78c228c7a99b1fbae93bbf4c1f81dbf14c3ef7dbf70e9fa1fb5e611c5328e0a374fb2ca67a95161d5bf3f2d6c12c8a90e1cd4af6abbd00e37775d524d", + "c2e4138cf6d5df8997649c4324e06451218f575730c6ade1825067587022ea3220a7f049c412f42fa5a73313956165525fd3d3a753dcdccae1d29524043f2be4", + "7bb7aa3c574f6cf20740b77c4f349d405d815a949ab74eb4439638c9521694a448cee4729a1b88c5c6230ee0a6388d1a7ba8e909a990145aec951996462e62d7", + "32761245645a67adef404906f3e29233a1c09b98785a38d6f02477f90d242c5be71a4f9fe272e5a2c7ac644d245167a06d8162f01880dad6684a8c7e27044a7d", + "72c59b8caf93e65ff374bb129f7221b30dae35205c3455d4d268657c6d27926c940096d004737daf4306f321c840e402d35be5dae71cf48ff64f424a3cecf62d", + "77867fce5437f2bbb52accb44140df9d235023333031dda334525dcc9178877f96b0216d007f5e3718e55e233e43c146a6942fac5d815a892eb53f4bfeffe17b", + "37f2bf50d2e8757dac08977b2882baf7cd98e54fe12c57f9a5addc9ee5a77f8cda29864f70179a4cf473cc505c1e25837443b94ce4fa817101bfde224b5df107", + "acb477957256d5e134873b0a4f804a2a492a72468eaefe80f0de23dd55862fb7ce5aeb58fe9e1fcec12bfa7ed92d5e19d89075d11860315445250735811499e3", + "f5178b231491395b863f570b96268b27a403502cf228173a94989e13b78615e7a07087ed7422696c295a2d25b4c075ed5cbfb3765f67f60047014f4554dc5103", + "60a65939e7472f42ab9d9fef54da531c9576bf1f740e62e04feabc96d67c744c461a0ef4ab4c90bfb0c42f2a7724006218da38d1bdf0ddee536a11d2c0b2a6b7", + "b0b2699cd59779ee8903b952410b43e607de0514fb5d9722233fa363f686e5c0f02f2f4866b850f3294b9172fbbc5d6be0407fcda88a70bf62634f1246b7b48b", + "fa3d438287356a9ff72904a3a7e4e143f3dedf0104f8ea1a8851dbf401f5f767511ab18c629aab16b0fc7f42f96af244cf797713f3a2936e78c435e01e09a599", + "1527f8e417b736aadaecfd3331b56e0e2ad7ded6e621aac34a5289c77d0228370025d42d065f2141e8513c841ef6b7222d2b138f3b236500d92d782d30aa0c7f", + "4288ce417ac9bfbd79624ff3b6d372b27291bc41038f7d27658052ed9bfac9505593d7d7ff87620e43ddafc9d3152dde7bb572a035ba4af6d6163dedef761981", + "70eb09d44b47385081714872b8f37c5e10dbcb3173c752debab0fe9e7fa2ea33888696a85c30b3703b149a48bc08c9d0dc5c2d4ce2d50270b6bcfb38bdb2d738", + "b8d59524a0b510adf31c2be3c28d9bbfde3522425d7cc5e9985db21adef17a392683d0d9865beae4fe52e59212c3df4026df0d507bfd31796ba235c34fdf6eb4", + "cafc4468370b21bbb40d207d55fd79d4e753e4693075ccabbd8152dd2fc8be77c81ef5ecad93d0cf67fecf96d4ce401d1012a78fe5af1575d430b4e98bdb0dab", + "db9f9d60468d2aca0e907666bfe59d44aefaeffea0f9b5faf3f54a10f33441e0a8775d618d1dc05e454b4469acd393b1938381443eef27f98cea2aaf29faa504", + "fd298ee7689557cbb1d2db73661d535f88ef035339da8cdef3031f6f9247453dfa9c620865b9102903ccd7675a69ec4123ae4841c97c69ec8673830010169776", + "0dfad082d280839a2d3d54080f44e2826d554a3382a024a8b8f89125864d27f5ac75f8ca3d80c1b725005687a33817ef54b53c596e2d300b6464efdf25860bbc", + "9b15ded0185f1529ae4c75b56060a13484bf6db0b7113f8d440c5bcf91a9d95e7abd458d5d1d758a2019aa0a9a9ca18da108314ed4269b7752f95d241c8dd95e", + "9876b0fc3269b25129b2beedde7d2f342e22351723bedd3dcc5f225d8a480e0c596c99a7ffa5780e0a40f09bb342ab9e87682f8a7aec50bff19947e00bf66e6b", + "612452d85cc2af10f1aa9ced95eaa447c34a4a1236a27e8324037e9e9c7f983b8bbbb2bc168de5f86d161c940da2c86008a59c77ead4aa13630ebe882d73066b", + "55c0f0c1d6fd781c85e85464bf3afb4867cd46667e49d1c369beabd3194f4d5c237cb34027af805a0b369459c6524e633625dbf72c5ab88292b08a59bb7633f3", + "7ff37874dd828fd1b4cede7e0ae6bab8e366bb033b19892404b6546f2b7ac98ecd03e94fac5bf810c3b86cd8eb2a3c2485a31ba7e34472de14e406c0998c38b9", + "f5c2e8e12abc3765e9ae3682db57e2f8b766f6ecc8d0bcd50b8e237e427a2ac1e66b7212def66a5561ba1347aea507da088f4dd0f9f887354e6bf6b7dc267933", + "7f10aa2696ab43ce01e3658148b37ebe3c957345655f820f4d6176d2d0fb366561b25a185a845341986cbddd1b1dc33d48f48ec7cae99cbb016ca09595ae05cf", + "0d7ccd471a38bce93cb11b673260f9691d4f1cb7663d44b51eb3bd7b0f1bc45ec4382cbdef8d852424558615c554fe06405e3a1dfb88b97d8aca74192c804328", + "b17b646a2179d20b55e2763a189545896e861291e9321643dbebfbfd7951cee2e53283c2d9b54ba23b124c68098bc5229e31076198678ad124b8a8a56b848384", + "51d322a34629629f2f9c6a9d53c7205e8c7421da2e742c93e413e6985467885c6db5174472292c614a5833c8ce98fd222d8a924e98098282300e000f1977b1cb", + "aaba6ff7ab56a145141244bd68314072a96ef4c83d0f0cc883082f7158fbcd22d99c46308fd8472bfb4afc92510effe673fca3ac5906990130db540ecc346e92", + "0ce918b049a465f707b524f5cc1b0351682238078e8acf52006931daed402a5d584f7e3e7695b0b03076c1a09eea098bc9cde640e318a0527ce36ac92d8331e4", + "6b4d98b9d0287c6983df4e267bd638a9119b48e2f2e6cd010f98aece27e12174c317caccfb0bee9b3993c8c844e00e781448a5fd5ebf8c01e5c7d1114742fc9b", + "43c69deb892acd8b887966b88903c24b87b5abb38bae41bdd843bd753a04761897021382316fa657aeb17ddd9340cb81238708bdbe7efba88f1050f46ad2d6bb", + "2037cee5fc0e67a655ae13407e321619521c5f24409077bd06db0eb41c7b1972d5dfb43d5c40713989ed4a493bccca49a3ecad98dcdae5b97419ea86a0268266", + "ae52ba93bd7df6982d7bcb158b323331d27eb4cc71429c675709b0ef257fd3bcc1b66b3877f83fd418eff1eed019794f3a45299d865fbb3cf4ebbf814de6f3dc", + "72b6c1eaaf98e4643ec3e6348988c7c5ba8ae0a4bb2edc65409b7c4cbf37b3d6096de4967fc0d0b22b7e709531bf9f65ee0203bfd9925bbb2a8aac509ad762b4", + "87c56badccb0d0feabfbced93088bd0bd06840bd194e4c665d5045bf221a04839f0be03aa61f86aff8c403cbe08fedb76837a2c71cea50620ec0c488c4003785", + "7228261b12052a13ca19ec70ba1d7497f03f2f7fc208a1fc499a01d2f9d1177c9ae9ba46e6f418d6088e4dfa8d8d8a27ea99b4abc4236967054cdc60ed603e1a", + "c37c08d3a8c35c1c6d645b1dffd7ff4082efc21700d4c029e796620168abbfafe8af0f421417dd357855d8b131f49aa09795842d7d298845321bee7700ecda3c", + "657c140e3c895bdf7096ac866b2910d22b42ed6d038a39d3e50bb923eb0a70f1d06ebdf68a668cf91aef5a204063a765782b1d6489ece1885de1bda7bd581c55", + "1704129d4cabead74c1ab7ac89d773dc50a88ee71937c25fc3dfa5f4fdf791695040755f15894e6a56380f713c23aa5acac8da8cba4f356ff18ae72aa5e78902" + ] +} \ No newline at end of file diff --git a/pkgs/pow/tests/blake.rs b/pkgs/pow/tests/blake.rs index 47f74f93..24cbb52a 100644 --- a/pkgs/pow/tests/blake.rs +++ b/pkgs/pow/tests/blake.rs @@ -6,8 +6,6 @@ //! Blake-512 tests. -#![expect(clippy::panic, reason = "test code")] - mod common; #[cfg(feature = "simd")] diff --git a/pkgs/pow/tests/bmw.rs b/pkgs/pow/tests/bmw.rs index 606920e3..c36806ea 100644 --- a/pkgs/pow/tests/bmw.rs +++ b/pkgs/pow/tests/bmw.rs @@ -6,8 +6,6 @@ //! BMW-512 tests. -#![expect(clippy::panic, reason = "test code")] - mod common; #[cfg(feature = "simd")] diff --git a/pkgs/pow/tests/common/mod.rs b/pkgs/pow/tests/common/mod.rs index a955736f..8e3f761d 100644 --- a/pkgs/pow/tests/common/mod.rs +++ b/pkgs/pow/tests/common/mod.rs @@ -7,11 +7,8 @@ //! Shared NIST KAT helpers. #![allow(dead_code, reason = "usage dependent on build flags")] -#![expect(clippy::expect_used, reason = "test code")] -use hex_conservative::FromHex; - -use std::collections::HashMap; +use dash_dev::{arr_from_hex, Corpus}; const NIST_MSG_BLOB: &[u8] = include_bytes!("../../corpus/nist_msg.bin"); @@ -25,36 +22,20 @@ pub fn nist_input(byte_len: usize) -> &'static [u8] { &NIST_MSG_BLOB[off..off + byte_len] } -/// Expected 64-byte digest, parsed from a JSON5 file. -pub type NistVectors = HashMap; +/// Expected digests indexed by input length, as hex. +pub type NistVectors = Vec; /// Loads a corpus file by name and returns the parsed vectors. pub fn load(name: &str) -> NistVectors { - let path = format!("{}/corpus/{}.json", env!("CARGO_MANIFEST_DIR"), name,); - let data = std::fs::read_to_string(&path).unwrap_or_else(|e| panic!("cannot read {path}: {e}")); - let raw: HashMap = serde_json::from_str(&data).unwrap_or_else(|e| panic!("cannot parse {path}: {e}")); - raw - .into_iter() - .map(|(k, v)| { - let bit_len: usize = k.parse().expect("key must be numeric"); - assert_eq!(bit_len % 8, 0, "only byte-aligned vectors supported"); - let bytes = Vec::::from_hex(&v).expect("invalid hex in test vector"); - assert_eq!(bytes.len(), 64, "digest must be 64 bytes"); - let mut arr = [0u8; 64]; - arr.copy_from_slice(&bytes); - (bit_len / 8, arr) - }) - .collect() + Corpus::open(env!("CARGO_MANIFEST_DIR"), name).vectors("nist") } /// Runs all NIST KAT vectors for a given hash function. pub fn run_nist_kat(name: &str, vectors: &NistVectors, hash_fn: fn(&[u8]) -> dash_num::Hash512) { - let mut byte_lens: Vec = vectors.keys().copied().collect(); - byte_lens.sort(); - for byte_len in byte_lens { + for (byte_len, digest) in vectors.iter().enumerate() { let input = nist_input(byte_len); - let expected = vectors[&byte_len]; + let expected: [u8; 64] = arr_from_hex(digest); let got = hash_fn(input); - assert_eq!(got.to_bytes(), expected, "{name}: mismatch at byte_len={byte_len}",); + assert_eq!(got.to_bytes(), expected, "{name}: mismatch at byte_len={byte_len}"); } } diff --git a/pkgs/pow/tests/cubehash.rs b/pkgs/pow/tests/cubehash.rs index 3a965065..cd35747b 100644 --- a/pkgs/pow/tests/cubehash.rs +++ b/pkgs/pow/tests/cubehash.rs @@ -6,7 +6,6 @@ //! CubeHash-16/32-512 tests. -#![expect(clippy::panic, reason = "test code")] #![cfg_attr(feature = "simd", feature(portable_simd))] mod common; diff --git a/pkgs/pow/tests/echo.rs b/pkgs/pow/tests/echo.rs index 40bde047..f468c178 100644 --- a/pkgs/pow/tests/echo.rs +++ b/pkgs/pow/tests/echo.rs @@ -6,8 +6,6 @@ //! Echo-512 tests. -#![expect(clippy::panic, reason = "test code")] - mod common; #[cfg(feature = "simd")] diff --git a/pkgs/pow/tests/groestl.rs b/pkgs/pow/tests/groestl.rs index 4ce9e726..ee6acbdc 100644 --- a/pkgs/pow/tests/groestl.rs +++ b/pkgs/pow/tests/groestl.rs @@ -6,7 +6,6 @@ //! Groestl-512 tests. -#![expect(clippy::panic, reason = "test code")] #![cfg_attr(feature = "simd", feature(portable_simd))] mod common; diff --git a/pkgs/pow/tests/jh.rs b/pkgs/pow/tests/jh.rs index 18ae48c4..731376b2 100644 --- a/pkgs/pow/tests/jh.rs +++ b/pkgs/pow/tests/jh.rs @@ -6,8 +6,6 @@ //! JH-512 tests. -#![expect(clippy::panic, reason = "test code")] - mod common; #[cfg(feature = "simd")] diff --git a/pkgs/pow/tests/keccak.rs b/pkgs/pow/tests/keccak.rs index 4c9a40e5..91644e07 100644 --- a/pkgs/pow/tests/keccak.rs +++ b/pkgs/pow/tests/keccak.rs @@ -6,8 +6,6 @@ //! Keccak-512 tests. -#![expect(clippy::panic, reason = "test code")] - mod common; #[cfg(feature = "simd")] diff --git a/pkgs/pow/tests/luffa.rs b/pkgs/pow/tests/luffa.rs index 93f69c59..468143eb 100644 --- a/pkgs/pow/tests/luffa.rs +++ b/pkgs/pow/tests/luffa.rs @@ -6,8 +6,6 @@ //! Luffa-512 tests. -#![expect(clippy::panic, reason = "test code")] - mod common; #[cfg(feature = "simd")] diff --git a/pkgs/pow/tests/shavite.rs b/pkgs/pow/tests/shavite.rs index b995681b..d53d984d 100644 --- a/pkgs/pow/tests/shavite.rs +++ b/pkgs/pow/tests/shavite.rs @@ -6,8 +6,6 @@ //! SHAvite-3-512 tests. -#![expect(clippy::panic, reason = "test code")] - mod common; #[cfg(feature = "simd")] diff --git a/pkgs/pow/tests/simd_hash.rs b/pkgs/pow/tests/simd_hash.rs index 61b25038..7f08edb8 100644 --- a/pkgs/pow/tests/simd_hash.rs +++ b/pkgs/pow/tests/simd_hash.rs @@ -6,8 +6,6 @@ //! SIMD-512 tests. -#![expect(clippy::panic, reason = "test code")] - mod common; #[cfg(feature = "simd")] diff --git a/pkgs/pow/tests/skein.rs b/pkgs/pow/tests/skein.rs index a6aa8464..0ca1dca0 100644 --- a/pkgs/pow/tests/skein.rs +++ b/pkgs/pow/tests/skein.rs @@ -6,8 +6,6 @@ //! Skein-512 tests. -#![expect(clippy::panic, reason = "test code")] - mod common; #[cfg(feature = "simd")] diff --git a/pkgs/primitives/Cargo.toml b/pkgs/primitives/Cargo.toml index 3778fb42..a3c0ae8b 100644 --- a/pkgs/primitives/Cargo.toml +++ b/pkgs/primitives/Cargo.toml @@ -59,7 +59,6 @@ dash-dev = { version = "0.0.0", path = "../dev", features = ["full"] } hex-literal = "0.4" rstest = "0.25" serde = { version = "1", features = ["derive"] } -serde_json = "1" [lints] workspace = true diff --git a/pkgs/primitives/src/block.rs b/pkgs/primitives/src/block.rs index 204b267c..b977f3bf 100644 --- a/pkgs/primitives/src/block.rs +++ b/pkgs/primitives/src/block.rs @@ -242,13 +242,13 @@ impl fmt::Display for Block { mod tests { use super::*; - use dash_dev::{assert_serde_rt, check_wire, load_corpus_file, read_corpus}; + use dash_dev::{assert_serde_rt, check_wire, Corpus}; use rstest::rstest; #[rstest] fn corpus_block() { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), "blocks"); - let items = read_corpus::(&text, "blocks", |raw, details, label| { + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "blocks"); + let items = corpus.entries::("blocks", |raw, details, label| { check_wire(raw, details, label); if let Some(e) = details.check() { panic!("{label}: check: {e}"); diff --git a/pkgs/primitives/src/gov.rs b/pkgs/primitives/src/gov.rs index 851408e4..b00f035a 100644 --- a/pkgs/primitives/src/gov.rs +++ b/pkgs/primitives/src/gov.rs @@ -464,21 +464,21 @@ impl Checkable for Proposal { mod tests { use super::*; - use dash_dev::{assert_serde_rt, check_wire, load_corpus_file, read_corpus}; + use dash_dev::{assert_serde_rt, check_wire, from_json_slice, Corpus, Value}; use rstest::rstest; use serde::{Deserialize, Serialize}; #[rstest] fn corpus_govobjvote() { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), "govobjvote"); - let items = read_corpus::(&text, "govobjvote", check_wire); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "govobjvote"); + let items = corpus.entries::("govobjvote", check_wire); assert_serde_rt("govobjvote", &items); } #[rstest] fn corpus_govobj_wire() { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), "govobj"); - read_corpus::(&text, "govobj", |raw, _, label| { + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "govobj"); + corpus.entries::("govobj", |raw, _, label| { let decoded = GovObject::decode(&mut &raw[..]).unwrap(); let mut encoded = Vec::new(); decoded.encode(&mut encoded); @@ -501,7 +501,7 @@ mod tests { masternode_outpoint: OutPoint, #[serde(with = "dash_types::serialize::hex")] sig: Vec, - data: serde_json::Value, + data: Value, } impl GovCorpusDetails { @@ -517,7 +517,7 @@ mod tests { ); assert_eq!(self.sig, obj.sig, "{label}: sig"); - let wire_data: serde_json::Value = serde_json::from_slice(&obj.data).unwrap(); + let wire_data: Value = from_json_slice(&obj.data); assert_eq!(self.data, wire_data, "{label}: data"); } } @@ -526,14 +526,13 @@ mod tests { #[case("proposals")] #[case("triggers")] fn corpus_govobj(#[case] section: &str) { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), section); - let items = read_corpus::(&text, section, |raw, details, label| { + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), section); + let items = corpus.entries::(section, |raw, details, label| { let obj = GovObject::decode(&mut &raw[..]).unwrap(); details.assert_matches(&obj, label); if obj.object_type == GovObjectType::Proposal { - let proposal: Proposal = - serde_json::from_slice(&obj.data).unwrap_or_else(|e| panic!("{label}: proposal json: {e}")); + let proposal: Proposal = from_json_slice(&obj.data); if let Some(e) = proposal.check() { panic!("{label}: proposal check: {e}"); } diff --git a/pkgs/primitives/src/payload/assetlock.rs b/pkgs/primitives/src/payload/assetlock.rs index cc69ad05..f928ed0c 100644 --- a/pkgs/primitives/src/payload/assetlock.rs +++ b/pkgs/primitives/src/payload/assetlock.rs @@ -102,13 +102,13 @@ impl fmt::Display for AssetLock { mod tests { use super::*; - use dash_dev::{assert_serde_rt, check_sptx, load_corpus_file, read_corpus}; + use dash_dev::{assert_serde_rt, check_sptx, Corpus}; use rstest::rstest; #[rstest] fn corpus_assetlock() { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), "assetlock"); - let items = read_corpus::(&text, "assetlock", check_sptx); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "assetlock"); + let items = corpus.entries::("assetlock", check_sptx); assert_serde_rt("assetlock", &items); } } diff --git a/pkgs/primitives/src/payload/assetunlock.rs b/pkgs/primitives/src/payload/assetunlock.rs index 025a3e85..14fef65b 100644 --- a/pkgs/primitives/src/payload/assetunlock.rs +++ b/pkgs/primitives/src/payload/assetunlock.rs @@ -87,13 +87,13 @@ impl fmt::Display for AssetUnlock { mod tests { use super::*; - use dash_dev::{assert_serde_rt, check_sptx, load_corpus_file, read_corpus}; + use dash_dev::{assert_serde_rt, check_sptx, Corpus}; use rstest::rstest; #[rstest] fn corpus_assetunlock() { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), "assetunlock"); - let items = read_corpus::(&text, "assetunlock", check_sptx); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "assetunlock"); + let items = corpus.entries::("assetunlock", check_sptx); assert_serde_rt("assetunlock", &items); } } diff --git a/pkgs/primitives/src/payload/cbtx.rs b/pkgs/primitives/src/payload/cbtx.rs index f5f5708a..66904dce 100644 --- a/pkgs/primitives/src/payload/cbtx.rs +++ b/pkgs/primitives/src/payload/cbtx.rs @@ -157,13 +157,13 @@ impl fmt::Display for CoinbaseCommitment { mod tests { use super::*; - use dash_dev::{assert_serde_rt, check_sptx, load_corpus_file, read_corpus}; + use dash_dev::{assert_serde_rt, check_sptx, Corpus}; use rstest::rstest; #[rstest] fn corpus_cbtx() { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), "cbtx"); - let items = read_corpus::(&text, "cbtx", check_sptx); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "cbtx"); + let items = corpus.entries::("cbtx", check_sptx); assert_serde_rt("cbtx", &items); } } diff --git a/pkgs/primitives/src/payload/mnhftx.rs b/pkgs/primitives/src/payload/mnhftx.rs index 302f2458..f8dc28ca 100644 --- a/pkgs/primitives/src/payload/mnhftx.rs +++ b/pkgs/primitives/src/payload/mnhftx.rs @@ -84,13 +84,13 @@ impl fmt::Display for MnHardFork { mod tests { use super::*; - use dash_dev::{assert_serde_rt, check_sptx, load_corpus_file, read_corpus}; + use dash_dev::{assert_serde_rt, check_sptx, Corpus}; use rstest::rstest; #[rstest] fn corpus_mnhftx() { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), "mnhftx"); - let items = read_corpus::(&text, "mnhftx", check_sptx); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "mnhftx"); + let items = corpus.entries::("mnhftx", check_sptx); assert_serde_rt("mnhftx", &items); } } diff --git a/pkgs/primitives/src/payload/proregtx.rs b/pkgs/primitives/src/payload/proregtx.rs index 6d7b6fff..fec668aa 100644 --- a/pkgs/primitives/src/payload/proregtx.rs +++ b/pkgs/primitives/src/payload/proregtx.rs @@ -271,13 +271,13 @@ hash_impl!(PlatformNodeId); mod tests { use super::*; - use dash_dev::{assert_serde_rt, check_sptx, load_corpus_file, read_corpus}; + use dash_dev::{assert_serde_rt, check_sptx, Corpus}; use rstest::rstest; #[rstest] fn corpus_proregtx() { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), "proregtx"); - let items = read_corpus::(&text, "proregtx", check_sptx); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "proregtx"); + let items = corpus.entries::("proregtx", check_sptx); assert_serde_rt("proregtx", &items); } } diff --git a/pkgs/primitives/src/payload/proupregtx.rs b/pkgs/primitives/src/payload/proupregtx.rs index d5a1752f..4d69d98b 100644 --- a/pkgs/primitives/src/payload/proupregtx.rs +++ b/pkgs/primitives/src/payload/proupregtx.rs @@ -94,13 +94,13 @@ impl fmt::Display for ProUpRegTx { mod tests { use super::*; - use dash_dev::{assert_serde_rt, check_sptx, load_corpus_file, read_corpus}; + use dash_dev::{assert_serde_rt, check_sptx, Corpus}; use rstest::rstest; #[rstest] fn corpus_proupregtx() { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), "proupregtx"); - let items = read_corpus::(&text, "proupregtx", check_sptx); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "proupregtx"); + let items = corpus.entries::("proupregtx", check_sptx); assert_serde_rt("proupregtx", &items); } } diff --git a/pkgs/primitives/src/payload/prouprevtx.rs b/pkgs/primitives/src/payload/prouprevtx.rs index 2d36ef46..b9107b66 100644 --- a/pkgs/primitives/src/payload/prouprevtx.rs +++ b/pkgs/primitives/src/payload/prouprevtx.rs @@ -71,13 +71,13 @@ impl fmt::Display for ProUpRevTx { mod tests { use super::*; - use dash_dev::{assert_serde_rt, check_sptx, load_corpus_file, read_corpus}; + use dash_dev::{assert_serde_rt, check_sptx, Corpus}; use rstest::rstest; #[rstest] fn corpus_prouprevtx() { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), "prouprevtx"); - let items = read_corpus::(&text, "prouprevtx", check_sptx); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "prouprevtx"); + let items = corpus.entries::("prouprevtx", check_sptx); assert_serde_rt("prouprevtx", &items); } } diff --git a/pkgs/primitives/src/payload/proupservtx.rs b/pkgs/primitives/src/payload/proupservtx.rs index 92c92f99..027f8b3f 100644 --- a/pkgs/primitives/src/payload/proupservtx.rs +++ b/pkgs/primitives/src/payload/proupservtx.rs @@ -188,13 +188,13 @@ impl fmt::Display for ProUpServTx { mod tests { use super::*; - use dash_dev::{assert_serde_rt, check_sptx, load_corpus_file, read_corpus}; + use dash_dev::{assert_serde_rt, check_sptx, Corpus}; use rstest::rstest; #[rstest] fn corpus_proupservtx() { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), "proupservtx"); - let items = read_corpus::(&text, "proupservtx", check_sptx); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "proupservtx"); + let items = corpus.entries::("proupservtx", check_sptx); assert_serde_rt("proupservtx", &items); } } diff --git a/pkgs/primitives/src/payload/quorum.rs b/pkgs/primitives/src/payload/quorum.rs index 606101b8..d64e7c82 100644 --- a/pkgs/primitives/src/payload/quorum.rs +++ b/pkgs/primitives/src/payload/quorum.rs @@ -187,13 +187,13 @@ impl fmt::Display for FinalCommitment { mod tests { use super::*; - use dash_dev::{assert_serde_rt, check_sptx, load_corpus_file, read_corpus}; + use dash_dev::{assert_serde_rt, check_sptx, Corpus}; use rstest::rstest; #[rstest] fn corpus_qctx() { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), "qctx"); - let items = read_corpus::(&text, "qctx", check_sptx); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), "qctx"); + let items = corpus.entries::("qctx", check_sptx); assert_serde_rt("qctx", &items); } } diff --git a/pkgs/primitives/src/transaction.rs b/pkgs/primitives/src/transaction.rs index 8b86597a..2c997081 100644 --- a/pkgs/primitives/src/transaction.rs +++ b/pkgs/primitives/src/transaction.rs @@ -394,7 +394,7 @@ impl fmt::Display for Transaction { mod tests { use super::*; - use dash_dev::{assert_serde_rt, check_tx, load_corpus_file, read_corpus}; + use dash_dev::{assert_serde_rt, check_tx, Corpus}; use rstest::rstest; #[rstest] @@ -402,8 +402,8 @@ mod tests { #[case("coinbase")] #[case("data")] fn corpus_tx(#[case] section: &str) { - let text = load_corpus_file(env!("CARGO_MANIFEST_DIR"), section); - let items = read_corpus::(&text, section, check_tx); + let corpus = Corpus::open(env!("CARGO_MANIFEST_DIR"), section); + let items = corpus.entries::(section, check_tx); assert_serde_rt(section, &items); } } diff --git a/pkgs/types/Cargo.toml b/pkgs/types/Cargo.toml index e3be31e4..8cfc51de 100644 --- a/pkgs/types/Cargo.toml +++ b/pkgs/types/Cargo.toml @@ -24,7 +24,6 @@ serde = { version = "1", default-features = false, features = [ [dev-dependencies] serde = { version = "1", features = ["derive"] } -serde_json = "1" [lints] workspace = true